代码可以从H264AVCDecoderLibTest.cpp或者H264AVCEncoderLibTest.cpp的main函数开始入手,
这里是一个调用实际解码库和编码库的测试函数,我是先把编码部分大致看了一下,这部分的主线如下:
H264AVCEncoderTest::go() ->
CreaterH264AVCEncoder::process() ->
PicEncoder::process() -> (2)
PicEncoder::xEncodePicture() ->
SliceEncoder::encodeSlice() ->
MbEncoder::encodeMacroblock()
有关宏块的帧内和帧间预测,和各种模式代价的计算,然后最佳模式的选择都在MbEncoder::encodeMacroblock()中,从这里可以索引到各种运动估计的算法,在MotionEstimation::estimateBlockWithStart中,这里也许是很多研究人员关注的热点,已经看到若干篇inter-view运动估计的文章。