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代码阅读笔记

笔记说明 为便于阅读,特约定如下: 紫色: 未解决问题; 浅蓝色:强调/突出重点内容; 关键知识点和难点:难点/复杂问题; 黄色: 推测/需要进一步确认和验证的结论; E_mail: auberon_china@ 2007-12-09 INTRA代码研读 I 在intra4x4预测过程中,数据结构img-mprr保存不同预测模式(共9种)下的预测值,即img-mprr[9][16][16]。同时,从全局变量可以获得原始视频像素值,二者之差存入数据结构img-〉m7中。可以对这些数据进行处理,例如计算SAD值、SATD值或者SSE值,用于进一步确定mode时的参考。其中,计算SATD由文件me_distortion.c中函数HadamardSAD4x4()实现。 II img-pix_x指向当前MB的水平坐标,img-pix_y指向当前MB的垂直坐标。如果要对block8x8和block4x4进行处理,可以引入b8和b4。以像素为坐标的换算关系为 具体见文件rdopt.c中函数Mode_Decision_for_4x4IntraBlocks()。 III 对intra4x4块的相邻block4x4块的可用性是如何判断的?相关数据结构的定义是如何实现的? 解答:关于intra4x4块相邻块的可用性信息是通过函数intra、intrapred_luma()等实现的。 IV 补充知识: main()中的图像编码模块 for (img-number=0; img-number input-no_frames; img-number++) 这个循环体内部的最后一个函数是process_2nd_IGOP(); 而process_2nd_IGOP()函数的代码 可以推测,新的IGOP的首frame应该为IDR。 那么,如何判断其为IDR呢? 首先,在文件image.c中函数体code_a_picture内部,img-currentPicture-idr_flag = ((!IMG_NUMBER) (!(img-structure==BOTTOM_FIELD))) || (input-idr_enable intra_refresh (img-type == I_SLICE || img-type==SI_SLICE) (!(img-structure==BOTTOM_FIELD))); V 补充问题: 1 关于薛全的算法的问题; 2 GOP中图像的存储问题; 3 在intra编码MB后是否保存其intra模式信息; 4 img-mprr和img-mpr的区别是什么? 2007-12-18 MB INTER预测编码代码研读 I 函数init_enc_mb_params(),所在文件为mode_decision.c。该函数对MB编码参数进行初始化,主要是对一个结构体变量enc_mb进行赋值处理;另外,对于数组listX的处理有几处不明白。当MB为自适应field/frame编码时,针对field MB和frame MB,比如如下代码,在针对frame MB时, enc_mb-list_offset[LIST_0],所代表含义是什么? 解答:推测为预测参考图象frame index;但对于enc_mb-list_offset[LIST_1]和enc_mb-list_offset[LIST_0]的关系则仍不清楚。 II mb16x16_cost_frame数组的定义在global.h文件。作用是什么? 解答:推测为当前编码frame的各MB的cost数组,该变量在函数get_initial_mb16x16_cost()被调用。[注:get_initial_mb16x16_cost()函数出现在文件mode_decision.c中]另外,与之伴随出现的一个术语是Context Adaptive Lagrange Multiplier (CALM),即自适应拉格朗日多项式。但具体的计算是怎样的? III函数PartitionMotionSearch()在文件mv-search.c中定义。形参为 但其含义和字面意义不同。注意,block8x8并非一定是block8x8块;比如,它可以为mode=1,此时对应一个block16x16;也可以为mode=2,此时block8x8可以为0或1,对应两个16x8的partition;也可以为mode=3,此时对应block8x8实际上对应两个8x16的partition。实际上,是通过blocktype和block8x8联合确定了block8x8的确切含义。在函数体内部,的确是按block8x8处理的。 IV 函数函数PartitionMotionSearch()分析。 解答: 甲 m

文档评论(0)

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

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

版权声明书
用户编号:7065136142000003

1亿VIP精品文档

相关文档