网站公告列表

  没有公告

加入收藏
设为首页
联系站长
您现在的位置: 61IC中国电子在线 >> DSP >> C6000文章 >> C64X系列 >> 文章正文
  x264中不同帧类型的编码顺序         ★★★ 【字体:
x264中不同帧类型的编码顺序
作者:iAzure    文章来源:本站原创    点击数:    更新时间:2007-8-27    
h中同时定义了下面几个帧数组用以实现帧的管理

      /* store the sequence of b frame being encoded */ 
      x264_frame_t *bframe_current[X264_BFRAME_MAX]; 

      /* store the next sequence of frames to be encoded */
      x264_frame_t *frame_next[X264_BFRAME_MAX+1];       //
下一个帧, 不一定是B

      /* store unused frames */ 
      x264_frame_t *frame_unused[X264_BFRAME_MAX+1];

      同时还有下面4个函数(定义在\ENCODER\encoder.c). 

     
x264_encoder_frame_put_from_picture(); 
     
x264_encoder_frame_put(); 
     
x264_encoder_frame_get(); 
     
x264_frame_copy_picture(); 

     
3个数组和4个函数可以说完成了整个帧的类型的判定问题.但此处代码里if, else语句较多,容易使人迷惑.需要把握下面一个实质: 在不对P帧进行编码之前, 不对B帧进行编码, 只是把B帧放进缓冲区(就是前面提到的数组).

      比如视频序列
: I  B  B  P  B  B  P
      
     
先确立第一个帧的类型
, 然后进行编码. 然后是2B, 把它放进缓冲区数组. 然后是P, 可以判定它的类型并进行编码. 同时, 将缓冲区的B帧放进h->bframe_current[i], 不过这时P帧前的两个B帧并没有编码. 当读到P帧后面的第一个B帧时, 实际上才将h->bframe_current数组中的第一个B帧编码, 也就是将在I帧后面的第一个B(说成P帧前面的第一个B帧容易误解)编码.

               欢迎点击进入:TI德州中文网   (国内唯一针对TI应用的中文技术网站)    文章录入:admin    责任编辑:admin 
  • 上一篇文章:

  • 下一篇文章:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    最新热点 最新推荐 相关文章
    4×4 residual transform an…
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    站长:61IC 湘ICP备05002478号