对几个重要问题的阐述——城里汉子.doc

对几个重要问题的阐述——城里汉子.doc

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
对几个重要问题的阐述——城里汉子.doc

对几个重要问题的阐述——城里汉子 由于DPB中间的参考帧的MV都是以4X4块为单位,现在以8X8块作Direct mode模式,所以必须对子块的MV作合并, JM采用的东西是如下图的方式: x o | o x o o | o o - - - - - o o | o o x o | o x 每8X8块取外角上的4X4块的MV. 算法如下: ?? b8Mode是帧间预测中对8X8块的再次细分,称为亚宏块级模式,划分定在表格b8_mode_table中 const int??b8_mode_table[6]??= {0, 4, 5, 6, 7}; 其中0是8X8 Direct模式,只对B帧,4,8X8,5,8X4,6,4X8,7,4X4,以上5中模式在宏块级中统称为P8X8模式,这个可以在码流TRACE文件中可以应证。 264标准中可以对宏块级语法元素按照重要的等级进行分区,可以分为分区A,B,C, 这个数据分区可以根据数组映射获得264时如何处理分区得.涉及到3个数组. typedef enum?? { ??SE_HEADER, ??SE_PTYPE, ??SE_MBTYPE, ??SE_REFFRAME, ??SE_INTRAPREDMODE, ??SE_MVD, ??SE_CBP_INTRA, ??SE_LUM_DC_INTRA, ??SE_CHR_DC_INTRA, ??SE_LUM_AC_INTRA, ??SE_CHR_AC_INTRA, ??SE_CBP_INTER, ??SE_LUM_DC_INTER, ??SE_CHR_DC_INTER, ??SE_LUM_AC_INTER, ??SE_CHR_AC_INTER, ??SE_DELTA_QUANT_INTER, ??SE_DELTA_QUANT_INTRA, ??SE_BFRAME, ??SE_EOS, ??SE_MAX_ELEMENTS??//! number of maximum syntax elements } SE_type;? ?? ?? ?// substituting the definitions in elements.h 以上定义了264宏块级编码要用到的语法元素,当然不是所有的宏块编码都有以上元素,根据帧内,帧间,实际编码过程中,等有所不同。 关于以上的元素具体含义,参考JM或标准可以获得,不过有些元素似乎在JM中并没有利用到,比如SE_EOS,不知道最新版如何? int assignSE2partition_NoDP[SE_MAX_ELEMENTS] = ??{??0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; int assignSE2partition_DP[SE_MAX_ELEMENTS] = ??{??0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 2, 2, 2, 2, 0, 0, 0, 0 } ; 上面元素0,代表DPA,1代表DPB,2代表DPC,可以看出来假如没有定义数据分区得话:所有的语法元素都是DPA, 定义了数据分区,那么帧内系数是分区B,帧间系数是分区C,其他的元素都是分区A.可以看得出来,遭遇信道丢包时, 光有DPB或DPC,没有DPA是无法解出码流的,假如没有DPB,DPC的话,还可以根据DPA的元素获得近似值。 那么JM是如何实现宏块级数据分区管理的呢,这个由Slice里面的datapartition数组管理,第一个成员为DPA, 第二个为DPB,第三个为DPC,可以根据语法元素切换输出到A,B,C中. ?? 把编码方式切换到CAVLC,其实在foreman测试序列,个人觉得CABAC,CAVLC编码压缩效率差别不大 SNR更是差不多,但是CAVLC要简单很多。 经过一个晚上的艰苦战斗,初步得出结论,SKIP模式对B,P帧而言,DIRECT模式只对B而言, 个人觉得DIRECT模式,SKIP模式,这种说法有些让人困惑。 下面讲B帧的DIRECT,SKIP模式: DIRECT,SKIP,模式相同的是,他们的宏块类型都是0,运动向量残差都为0,因为MVD可以通过临块预测方式得到 但是SKIP模式的cbp为0,也就是没有残差传输,它是双向预测,参考帧在LIST0,LIST1中的 序号也是根据临块的参考帧情况获得(注意不一定序号非的是0),所以连参考帧都不用传输., SKIP模式有更严格的要求,CBP为0,也就是没有残差系数,达到最大的压缩效率。 再讲P帧的SKIP模式,但前象预测,参考帧为LIS

文档评论(0)

gshshxx + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档