JM代码阅读笔记之三.docVIP

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

笔记说明 (auberon_china@) 为便于阅读,特约定如下: 紫色: 未解决问题; 浅蓝色:强调/突出重点内容; 关键知识点和难点:难点/复杂问题; 黄色: 推测/需要进一步确认和验证的结论; 2007-11-24 INTER预测代码研究 I 为研究inter预测编码过程,以高复杂度为例,选择在high complexity模式下进行分析。此时,对于MB级的实现来说,集中体现在函数encode_one_macroblock_high()。因此,首先分析此函数以及函数体内部调用的关键函数。那么,其实现是怎样的? 解答: 甲 在encode_one_macroblock_high()函数体内部,调用函数PartitionMotionSearch(),而它又进一步调用BlockMotionSearch()函数—具体的inter预测过程实现就在此函数中完成。 乙 对PartitionMotionSearch()函数的分析: 乙-1 输入参数说明 blocktype block8x8 lambda_factor 2007-11-25 INTER预测代码研究 I参考图像管理和inter预测密切相关,因此,需要研究参考图像的相关知识点。这些集中体现在白皮书8.2中。那么,相关知识点包括几部分,各部分的作用分别是什么? 解答: II 函数BlockMotionSearch()代码分析。 解答: 甲 其中调用的主要函数包括: FullPelBlockMotionSearch()函数; SubPelBlockMotionSearch()函数; 乙 FullPelBlockMotionSearch()函数分析: 该函数是在全搜索模式下的搜索处理函数。该函数主要使用了数据结构(存储搜索位置信息)。 2007-11-26 INTER预测代码研究 I (续)BlockMotionSearch()函数分析。 解答: 甲 在函数体内部,出现数据结构imgY_org和imgUV_org,分别用于亮度和色度数据处理。其中,imgY_org的赋值过程如下:首先,通过read()函数(注:该函数是非标准ansi函数,定义在io.h文件)通过输入文件句柄把原始数据复制到buf中,然后通过buf再赋值给imgY_org。色度数据的赋值类似。 乙 该函数有一个形参ref,实参为ref(从ref list中遍历得到的参考图像序号)。由此,也可以看出计算量惊人。 II 在encode_one_macroblock_high()函数内部,intra预测的代码是在哪里实现的?并分析其主要编码过程。 解答: 甲 intra预测过程中,对当前MB或partition或subPartition进行预测时,所采用的参考像素值是从原始像素值中获取还是从重建值中获取?从重建数据中获取。 乙 SetModesAndRefframeForBlocks()函数中包含了对inter和intra模式的处理过程。该函数通过 丙 RDCost_for_macroblocks()函数包含了对intra模式的处理。而该函数被 compute_mode_RD_cost()函数调用。在encode_one_macroblock_high()函数体内部,调用compute_mode_RD_cost()进行处理。 III JM中关于模式定义是怎样规定的? 解答:从文件defines.h可以推知, 0:Direct mode(B slice)/ Skip mode(P slice)? 1:16x16 inter mode; 2:16x8 inter mode; 3: 8x16 inter mode; 4: 8x8 inter mode; 5: 8x4 inter mode; 6: 4x8 inter mode; 7: 4x4 inter mode; 8: P8x8 inter mode; 9:I4MB; 10:I16MB; 11:IBLOCK; 12:SI_SLICE; 13: I8MB; 14: IPCM; 15: MAXMODE; 注:模式8表示一组类型;8x8,8x4,4x8,4x4 IV 在函数中存在如下代码 best8x8mode[k]代表的含义是什么? 解答: 2007-11-27 INTER预测代码研究 I RDCost_for_macroblocks()函数分析。 解答:函数的功能非常重要,通过一系列调用,完成包括intra和inter预测处理后的主要过程(此时,通过搜索引擎获取的预测运动偏移信息已经得到)。 在该函数的实现中,有如下语句 从上图中,可以看出,对于inter预测后的处理,是在蓝色框图中实现。 其中,绿色框表示函数十分重要,对intra模式预测集中在这个

文档评论(0)

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

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

1亿VIP精品文档

相关文档