x264_scan8 的存储方式

x264_scan8 的存储方式 分享 标签: x264_macroblock_cache_load 中的问题 分类: 技术 2008-12-04 16:48 问: 请教x264里面这样定义的宏块位置 MB_LEFT = 0x01, MB_TOP = 0x02, MB_TOPRIGHT = 0x04, MB_PRIVATE = 0x10, MB_PRIVATE 具体是指哪个位置的mb阿? ---有没有人知道x264里这个东西是什么意思 0 1 2 3 4 5 6 7 0 1 B B L L L L 2 B B L L L L 3 L L L L 4 R R L L L L    5 R R   用它定义的数组是x264_scan8 应该是和ffmpeg相关的,哪位看过的高人指点一下? 答: MB_LEFT、MB_TOP、MB_TOPRIGHT 用来判断左、上、右上块是否存在 MB_PRIVATE 用来判断右上4×4块是否已编码 ^_^ 这个问题已经是第三个人问我了 摘自蓝风车,风车实在太强了。 x264_scan8 的存储方式,不是那个注释很清楚么? /* 0 1 2 3 4 5 6 7 0 1 B B L L L L 2 B B L L L L 3 L L L L 4 R R L L L L 5 R R */ L是16个亮度块,B是4个Cb分量块,R是4个Cr分量块。注意其L、B、R上边、左边都空有位置,用来保存上边宏块最后一行、左边宏块最右一列4×4块的nz信息。 这样,程序中就用下面的表达式得到左边块和上边块的nc值,从而得到4×4预测模式。 const int ma = h->mb.cache.intra4x4_pred_mode[x264_scan8[idx] - 1]; const int mb = h->mb.cache.intra4x4_pred_mode[x264_scan8[idx] - 8]; const int m = X264_MIN( ma, mb );

你可能感兴趣的:(cache,存储)