X264支持输入NV12格式

X264支持输入NV12格式

一般编码器(例如JM)输入格式是YUV420(YV12),H.264标准也介绍的是YUV420的输入。X264编码器的输入也一般是YUV420格式,但是在内部帧的存储方式上x264采用的是NV12。因为一般编码器对U,V两通道的处理方式是相同的,例如他们有相同的QP,宏块划分,参考帧ID,运动矢量。因此对于U,V两通道的数据读取是一致的,这样NV12 UV两通道交织存储比YV12 UV两通道分别存储在数据访问上具有更高的效率。基于这样的考虑,x264内部帧(包括输入编码帧,参考帧)采用了NV12的存储方式。对于YUV422的输入采用NV16的格式
函数 int x264_frame_copy_picture( x264_t *h, x264_frame_t *dst, x264_picture_t *src )里面会将src->img.i_csp 转换成NV12等相对应的存储格式。
输入                         输出  
NV12, I420, YV12          => NV12
NV16, I422, YV16, V210    => NV16
I444, YV24,BGR,BGRA,RGB => I444

因此x264可以直接输入NV12的视频数据格式(一些移动端摄像头的输出为NV12),并且比输入YUV420的效率还更高一些。
具体代码为:

    x264_picture_init( &pH264Enc->pic );
    if(chroma_fmt == X264_CSP_NV12){
        pH264Enc->pic
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值