JM8.6中enc_frame_picture, enc_pictures的理解
JM8.6中enc_frame_picture, enc_pictures的理解
在frame_picture函数中有这么一句:
同样在field_picture中有这么一句:
从上面我们似乎可以看出一点东西, enc_picture就是指的图像, 这个图像的含义比较广, 包括了frame_picture, top_picture和bottom_picture. 所以我们看到在代码中有将enc_frame_picture, enc_top_picture和enc_bottom_picture分别赋值给enc_picture. 我们猜想, 因为在frame_picture() 和field_picture() 两个函数中最终都是调用的code_a_picture()函数, 不管是帧图像, 顶场, 还是底场, 都是利用这个函数来进行编码的, 所以我们猜想其实enc_picture在以后的编码过程中一定会经常用到, 并且对于enc_frame_picture, enc_top_picture和enc_bottom_picture这三个函数只是在frame_picture() 和field_picture()两个函数中出现, 其他函数中应该不多了
- enc_frame_picture的出场
通过上面的图我们可以发现, 虽然enc_frame_picture在其他函数也有出现, 但是在其他函数中有时是进行内存分配或释放,有时是作为一个判断的依据(enc_picture!= enc_frame_picture),这些都不是理解enc_frame_picture 的关键, 关键在于对enc_frame_picture的赋值操作基本全部出现在frame_picture()函数中, 从上面的红框中可以看出来, 这也印证了我们的猜想.
- enc_top_picture的出场
可以发现enc_top_picture与enc_frame_picture类似,
- enc_bottom_picture的出场
这个更不用说了,和enc_top_picture是一样的,
通过上面的分析, 可以发现我们的猜想是正确的.真正有用,担任中坚力量的是enc_picture函数啦
2011年4月11日9:56:11
JM8.6中函数frame_picture()和函数field_picture()的对比分析
从上图中的标注我们可以看出frame_picture()和field_picture()是基本上对应的, 并且对enc_frame_picture, enc_top_picture和enc_bottom_picture三个变量的操作也是类似的,
2011年4月11日10:50:10
JM8.6中init_frame()函数和init_field()函数对比分析
通过对比我们可以发现这两个函数是类似的