【Atlas500】入门到放弃(六)——【DVPP】浅析HFBC格式数据存在的意义

转载自:https://bbs.huaweicloud.com/blogs/156199, 作者:山人

【摘要】 HFBC格式是一种数据压缩格式,是VDEC解码后输出的每一帧数据的格式(Hisi Frame Buffer Compress),而对此格式进行解压缩由VPC完成,因VDEC和VPC是两个独立模块,所以用户在使用过程中可以看到HFBC数据。

HFBC格式是一种数据压缩格式,是VDEC解码后输出的每一帧数据的格式(Hisi Frame Buffer Compress),而对此格式进行解压缩由VPC完成,因VDEC和VPC是两个独立模块,所以用户在使用过程中可以看到HFBC数据。

为什么要有HFBC格式呢?

因为VDEC解码每一帧后,将此帧图像进行HFBC压缩之后再写入内存,既可以降低写入内存的数据量,又可以减少输出此帧的耗时,从而获取更高解码性能。

举例:如下图,比如此帧图像分辨率为19201080,正常一帧图像大小为19201080*3/2=3110400‬B,所以需要写入内存的数据量为3110400B,而经过HFBC压缩后(一般压缩率为50%),写入内存数据量仅有1555200B,所以既减少了写入内存的数量,也减少了写入内存的耗时,从而性能更高。

在这里插入图片描述

怎么使用HFBC格式更优?

因用户最终需要的是YUV数据,而VDEC输出的是HFBC数据,所以用户需要调用VPC模块对HFBC数据进行解压缩得到YUV数据。而一般场景下,用户最终想要的是送入网络大小的图(比如224x224),并不是原始图像(比如1920x1080),所以当VDEC解码后输出每帧HFBC数据后,用户可以将HFBC数据送入VPC并同时配置好resize/crop参数,驱使VPC直接输出需要的图像数据,即一次性完成【HFBC解压缩+resize/crop】操作,这样是最佳使用方式。

若用户需要原始图像,则VDEC输出HFBC格式相比VDEC直接输出YUV格式并没有优势(因为VDEC输出HFBC后,还需要VPC读入HFBC数据解压缩后再输出YUV数据),但当前芯片VDEC不能直接输出YUV数据,所以只能使用HFBC格式数据给VPC进行处理。

在这里插入图片描述

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值