----------------------计算各种类型宏块的位置-------------------------------
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_y+3) * h->mb.i_b4_stride + 4*i_mb_x;
--得到当前4x4MB上面一个4x4MB的位置
int i_top_8x8 = (2*i_top_y+1) * 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[16+0] - 8] =
h->mb.cache.non_zero_count[x264_scan8[16+1] - 8] =
h->mb.cache.non_zero_count[x264_scan8[16+4+0] - 8] =
h->mb.cache.non_zero_count[x264_scan8[16+4+1] - 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;
------------------------运动向量、参考图像装入---------
相关推荐
详细分析x264_macroblock_analyse中的代码指令
用visio版的流程图 关于H.264 Jm software里重要函数encode_one_macroblock.
JM代码核心函数encode_one_macroblock函数分析,初学者的有力参考工具
介绍函数void encode_one_macroblock () 运动估计部分总体思路 (主要是在运动估计部分)!
JM86主要函数流程图,bmp格式,包括main函数,encode_one_frame函数,frame_picture函数,code_a_picture函数,encode_one_slice函数,encode_one_macroblock函数,每个函数单独一个文件。供初学者参考。
Contents Page 0 Introduction.................................................................................................................................................................
A novel macroblock-tree algorithm for high-performance optimization of.pdf
h.264视频编解码源代码.rar 详细说明:h.264标准代码,用于视频编码!可以实现各种视频的编码和解码,可以在这个代码的基础上进行各种开发,比如算法的优化,转码技术,实现各种分辨了的转码-h.264 standard code, ...
介绍了H.264所使用的差错控制和错误隐藏技术,重点讨论了基于灵活宏块重排(Flexible Macroblock Ordering,FMO)的差错控制技术,及基于整帧丢失的帧拷贝(Frame Copy)和运动矢量拷贝(Motion Copy)错误隐藏技术...
Macroblock用无声差错侦测-MBI5039扩展了其恒流LED驱动器产品线,定位于LED显示器应用。对于竞争性商业LED显示器市场而言,有两件事情越来越重要:视频图像质量和全LED显示器实时差错侦测。通过观察LED显示器市场...
In traditional video encoders, macroblock row wavefront (MRW).parallelism was widely adopted. However the performance of MRW is limited by workload unbalance.and computing resource unbalance among ...
A fast macroblock mode selection algorithm is proposed to reduce the computational complexity of multiview depth video coding. The proposed algorithm, implementing on a joint coding scheme, combines ...
聚积科技(Macroblock)针对高功率LED照明市场,推出输出电流达1安培的驱动IC MBI1801;该IC的高输出电流特号称可与不同的照明产品结合,并提供恒电流予高功率LED,可避免过大电流烧坏昂贵高功率LED等突发状况。 MBI...
mbSize : Size of the macroblock p : Search parameter (read literature to find what this means) Ouput motionVect : the motion vectors for each integral macroblock in imgP TSScomputations: The ...
提出RMSP(Random Matrix Sequence Permutation)方法,同时完成帧内宏块(MacroBlock,MB )之间、块内VLC(Variable Length Coding)码字之间双重互补的乱序加密,并利用随机序列生成随机乱序密钥矩阵序列,供每帧和每块...
MacroBlock聚积科技的LED驱动芯片,MBI5024 DataSheet
代码:与Arduino对话的代码,并配置Macroblock MBI5030 PWM LED驱动器。 确保获取最新的数据表。 您至少需要2009年1月的版本。 2006版本在许多地方过时且具有误导性/错误。 解压缩整个文件夹并将其复制到Arduino-...
MacroBlock 聚积科技的LED驱动芯片DataSheet文件,目前通用LED驱动芯片。
10-bit DCT DC precision, non-linear macroblock scale quantizer, intra VLC tables, improved IDCT mismatch control) were adopted which have a moderate improvement in coding efficiency.......
This paper proposes a unified ... By defining coding modes, a macroblock level control mechanism is developed to achieve a better trade-off between low drifting errors and high coding efficiency.