HEVC变换部分总结.docVIP

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
HEVC变换部分总结

HEVC变换部分总结 1、介绍DCT 1.1、DCT矩阵的推导 4*4 DCT变换公式: , 将上式分解进行 先列变换: 再行变换: 将矩阵A中的系数乘以(根据公式:,,此时m=2),再 根据变换矩阵设计原则取近似数,就得到变换系数矩阵。 尺寸为8*8、16*16、32*32的变换系数矩阵类似。 1.2 、DCT矩阵的性质 一维DCT变换的系数公式: (1)基向量为标准正交基,变换矩阵为正交矩阵。即: for , for (2)DCT矩阵系数之间存在三角函数关系。 (3)尺寸为的DCT矩阵中包含了尺寸为的DCT矩阵。 (4)尺寸为的DCT矩阵可用个元素表示。比如:4*4可用64、83、36表示,8*8可用64、89、83、75、50、36、18表示。除了64*64系数矩阵,其余尺寸都可用第一列元素表示(第一列元素中64出现两次)。 (5)偶数行是中心对称的,奇数行是中心反对称的。 1.3、DCT矩阵的设计 设计固定的DCT矩阵是为了防止不同的生产商制作的编码器和译码器不同而产生误差。因为1.2小节提到的第4,5,6条DCT矩阵性质在实现算法的过程中可以减少大量计算量,所以必须严格保持,其他性质尽可能达到。同时,也要考虑到运算中矩阵系数的比特深度带来的运算消耗。 总结DCT矩阵设计的原则: (1)尽可能的让基向量为标准正交基。 (2)DCT矩阵保持对称性和反对称性。 (3)小尺寸的DCT矩阵嵌套在大尺寸的DCT矩阵中。 (4)8bit表示变换矩阵系数。 (5)变换后移位前不超过32bit,移位后不超过16bit。(实验表明,如果用18bit或者20bit表示只会减少0.5%的BD-rate) (6)尺寸为的DCT矩阵可用个元素表示。 1.4、DCT的作用 DCT 将原始图像信息块转换成代表不同频率分量的系数集,这有两个优点:其一,信号常将其能量的大部分集中于频率域的一个小范围内,这样一来,描述不重要的分量 只需要很少的比特数;其二,频率域分解映射了人类视觉系统的处理过程,并允许后继的量化过程满足其灵敏度的要求。DCT 后的DCT 频率系数个数与 DCT 前的像素块个数相对应,说明这个过程只是一个没有压缩作用的无损变换过程。单独一个图像的全部 DCT 系数块的频谱几乎都集中在最左上角的系数块中。DCT 输出的频率系数矩阵最左上角的直流 (DC)系数幅度最大;以 DC 系数为出发点向下、向右的其它 DCT 系数,离 DC 分量越远,频率越高,幅度值越小,即图像信息的大部分集中于直流系数及其附近的低频频谱上,离 DC 系数越来越远的高频频谱几乎不含图像信息,甚至于只含杂波。DCT 本身虽然没有压缩作用,却为以后压缩时的取、舍 奠定了必不可少的基础。 2、DCT的实现 2.1、使用中间变量存储运算结果 从32*32的DCT矩阵中抽出4*4的矩阵 进行一维列反变换 直接计算 (1) 使用中间变量 (2) (3) ADD/SUB (4) 代码如下: O[0] = g_aiT4[1][0]*src[line] + g_aiT4[3][0]*src[3*line]; O[1] = g_aiT4[1][1]*src[line] + g_aiT4[3][1]*src[3*line]; E[0] = g_aiT4[0][0]*src[0] + g_aiT4[2][0]*src[2*line]; E[1] = g_aiT4[0][1]*src[0] + g_aiT4[2][1]*src[2*line]; dst[0] = Clip3( -32768, 32767, (E[0] + O[0] + add)shift ); dst[1] = Clip3( -32768, 32767, (E[1] + O[1] + add)shift ); dst[2] = Clip3( -32768, 32767, (E[1] - O[1] + add)shift ); dst[3] = Clip3( -32768, 32767, (E[0] - O[0] + add)shift ); 前四行代码对应(2)(3)两式,即使用中间变量O[0]、O[1]、E[0]、E[1]。 后四行代码对应(4)式。 一维4*4反变换按照(1)式直接

文档评论(0)

骨干 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档