怎么自己免费做网站,网站建设shzanen,如何做企业网站的排名,嘉兴高档网站建设功能:完成将已编码数据参数和待编码数据装入到h-mb.cache中,下图是BUF中存储的数据在以MB为单位的时候的存储顺序
x264_macroblock_cache_load( h, i_mb_x, i_mb_y );//是把当前宏块的up宏块和left宏块的intra4x4_pred_mode#xff0c;non_zero_count加载进来#xff0c…功能:完成将已编码数据参数和待编码数据装入到h-mb.cache中,下图是BUF中存储的数据在以MB为单位的时候的存储顺序
x264_macroblock_cache_load( h, i_mb_x, i_mb_y );//是把当前宏块的up宏块和left宏块的intra4x4_pred_modenon_zero_count加载进来放到一个数组里面这个数组用来直接得到当前宏块的左侧和上面宏块的相关值.要想得到当前块的预测值要先知道上面左面的预测值它的目的是替代getneighbour函数 ----------------------计算各种类型宏块的位置-------------------------------
int i_mb_xy i_mb_y * h-mb.i_mb_stride i_mb_x;
--得到MB位置其中h-mb.i_mb_stride为原始数据以MB为单位的宽度 int i_mb_4x4 4*(i_mb_y * h-mb.i_b4_stride i_mb_x);
--得到4x4MB位置其中h-mb.i_b4_stride为原始数据以4x4MB为单位的宽度 int i_mb_8x8 2*(i_mb_y * h-mb.i_b8_stride i_mb_x);
----得到8x8MB位置其中h-mb.i_b8_stride为原始数据以8x8MB为单位的宽度 int i_top_y i_mb_y - (1 h-mb.b_interlaced);
--得到当前MB上一个MB的Y坐标 int i_top_xy i_top_y * h-mb.i_mb_stride i_mb_x;
--得到当前MB上面一个MB的位置 int i_top_4x4 (4*i_top_y3) * h-mb.i_b4_stride 4*i_mb_x;
--得到当前4x4MB上面一个4x4MB的位置
int i_top_8x8 (2*i_top_y1) * h-mb.i_b8_stride 2*i_mb_x;
--得到当前8x8MB上面一个8x8MB的位置 ----------------------------装入周围宏块的参数--------------------------------- --装入TOP-MB的相关参数 h-mb.i_mb_type_top i_top_type h-mb.type[i_top_xy];
--得到TOP-MB的类型 h-mb.cache.i_cbp_top h-mb.cbp[i_top_xy];
--得到TOP-MB的CBP h-mb.i_neighbour | MB_TOP;
--标注当前MB的TOP-MB可用
MEM4(h-mb.cache.intra4x4_pred_mode[x264_scan8[0] - 8]) MEM4(h-mb.intra4x4_pred_mode[i_top_xy][0]);
--装入TOP-MB临近当前MB的4个4X4子块的预测模式 MEM4(h-mb.cache.non_zero_count[x264_scan8[0] - 8]) MEM4(h-mb.non_zero_count[i_top_xy][12]);
--装入TOP-MB临近当前MB的nzc编码值 } else {--没有有效的TOP-MB,则相关参数设置为不可用 h-mb.i_mb_type_top -1; h-mb.cache.i_cbp_top -1; /* load intra4x4 */ h-mb.cache.intra4x4_pred_mode[x264_scan8[0] - 8] h-mb.cache.intra4x4_pred_mode[x264_scan8[1] - 8] h-mb.cache.intra4x4_pred_mode[x264_scan8[4] - 8] h-mb.cache.intra4x4_pred_mode[x264_scan8[5] - 8] -1; /* load non_zero_count */ h-mb.cache.non_zero_count[x264_scan8[0] - 8] h-mb.cache.non_zero_count[x264_scan8[1] - 8] h-mb.cache.non_zero_count[x264_scan8[4] - 8] h-mb.cache.non_zero_count[x264_scan8[5] - 8] h-mb.cache.non_zero_count[x264_scan8[160] - 8] h-mb.cache.non_zero_count[x264_scan8[161] - 8] h-mb.cache.non_zero_count[x264_scan8[1640] - 8] h-mb.cache.non_zero_count[x264_scan8[1641] - 8] 0x80; }
--装入LEFT-MB相关参数
--装入MB_TOPRIGHT相邻MB的信
--装入MB_TOPLEFT相邻MB的信 --------------------------装入编码图像块和参考图像数据----------------------------------
--搬移重建数据到参考数据位置见《宏块的原始编码数据和重建数据的存储结构》中的说明
行方向的参考数据未搬移 --调用x264_macroblock_load_pic_pointers函数
完成以下功能 1 设置象素分量行宽度指扩展之后的宽度
2 从h-fenc-plane[i][i_pix_offset]中将原始数据读到h-mb.pic.p_fenc[i]中
3、 将行参考数据搬移到h-mb.pic.p_fdec[i]数组中在数组中的偏移量将《宏块的原始编码数据和重建数据的存储结构》中的说明
4、 从参考图像中得到对应于当前MB的参考宏块数据指针存储到h-mb.pic.p_fref[0][j][k]中其中0表示为前向参考图像J表示是第几个参考图像K表示为不同的象素分量推测[0]-Y,[1/2/3]为滤波后的[4]-cr,[5]-cb ------------------------运动向量、参考图像装入---------