14.2.1 MPEG-4编/解码设计与剖析(10)
④ decoder_mbinter对Inter块实现解码
Inter块解码支持1/2像素精度,Inter块的decoder_mbinter()的流程如图14-10所示。
|
| 图14-10 decoder_mbinter () 流程图 |
void decoder_mbinter(DECODER * dec, const MACROBLOCK * pMB, |
上述代码实现Inter块的解码,首先作运动补偿,然后根据cbp编码模式决定是否做宏块解码。
⑥ decoder_mb_decode实现宏块的实际解码工作
首先VLD熵解码、反量化和IDCT变换,最后根据CBP编码模式决定块是否更新到当前解码帧图像。
Inter块的decoder_ mb_decode ()的流程如图14-11所示。
|
| 图14-11 decoder_mb_decode()流程图 |
根据该流程,代码实现如下。
void decoder_mb_decode(DECODER * dec, const uint32_t cbp, Bitstream * bs, |
上述代码实现Inter块的解码工作,根据cbp值决定是否做解码。首先解码宏块空间block清零,VLD熵解码,然后反量化、反变换。最后根据cbp值决定是否更新当前解码帧图像。
为了提高解码器解码速度,解码器的最底层模块get_inter_block、dequant_h263_inter、idct、transfer_16to8add等,要使用平台的汇编来优化和设计。下一节将介绍这些核心模块的MMX/SSE/DM642汇编优化。
【责任编辑:云霞 TEL:(010)68476606】
| 回书目 上一节 下一节 |

