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