烟台网站建设方案策划,大连网络推广广告代理,seo服务合同,中国科技成就有哪些在这里和下一级别的分析中有必要先讲一下这个h-mb.cache#xff08;没法讲#xff0c;就是cache!#xff09;。
x264_macroblock_cache_load将参考帧中某位置的#xff08;重建后#xff09;数据保存进cache#xff0c;供参考和反复使用。
x264_macroblock_cache_s…在这里和下一级别的分析中有必要先讲一下这个h-mb.cache没法讲就是cache!。
x264_macroblock_cache_load将参考帧中某位置的重建后数据保存进cache供参考和反复使用。
x264_macroblock_cache_save在分析和编码后将当前块写进cache。
在这些操作里面会有一个很让人看不懂得地方这时候需要知道它保存时按照什么保存的。x264设计了一个相当nice的一块内存来存放并且为其编配了一个索引这样又能直观的理解又能节省空间增加效率。索引如下: static const int x264_scan8[162*43]
{ /* Luma */ 41*8, 51*8, 42*8, 52*8, 61*8, 71*8, 62*8, 72*8, 43*8, 53*8, 44*8, 54*8, 63*8, 73*8, 64*8, 74*8, /* Cb */ 11*8, 21*8, 12*8, 22*8, /* Cr */ 14*8, 24*8, 15*8, 25*8, /* Luma DC */ 45*8, /* Chroma DC */ 55*8, 65*8
}; cache中所有数据的存放都是按照上图中位置存放的黄色和绿色是当前编码的Luma(Y) 和chroma(UV)而白色部分是从list0/1中取出参考帧并且在x264_macroblock_cache_load时将对应块存放到这个空间里面去。cache里面包含一切有用的信息这个设计真的很赞的