H.264编解码分析

本文详细介绍了H.264编解码的基本原理,包括帧内预测、帧间预测和变换编码等步骤。通过一系列实验,分析了不同GOP长度和码率对视频质量和编码性能的影响,探讨了率失真曲线与编码器性能的关系。实验步骤包括选择264文件解码为YUV,然后编码为不同参数的.264文件,并用码流分析软件检查编码模式和运动矢量。
摘要由CSDN通过智能技术生成

H.264编解码分析

一、关于视频编码

首先我们需要知道为什么我们需要视频编码呢?
因为视频信号所包含的信息量巨大,显然我们现在的网络情况是远远不能满足的,我们需要通过编码压缩视频,节省对传输带宽和储存空间的需求,以便于在网络上进行传送。

视频是由图像组成的。而图像则是由一个个像素组成的,而一个像素,可以通过 R/G/B 三种颜色的值来表达,也可以通过YUV表达 。其中,Y 是明亮度,用来表示像素的灰度值;U、V 分别是影像色彩与饱和度,用来表示像素的颜色。
在视频编码的过程中,视频不直接使用RGB而是用YUV作为输入,是因为YUV作为输入可以极大地去除冗余信息,节省带宽。
总的来说,视频编码流程如下:
在这里插入图片描述
在这里插入图片描述
视频编码实现的标准有很多,现在最主流的还是H.264,接下来我们着重介绍H.264的编解码原理

二、H.264编解码原理

1、编码:

在这里插入图片描述
编码器采用的仍是变换和预测的混合编码法。
在图6.1中,输入的帧或场Fn以宏块为单位被编码器处理。首先,按帧内或者帧间预测编码的方法进行处理。假设采用帧间预测编码,其预测值PRED是由当前片中前面已编码的参考图像经运动补偿(MC)后得到,当中参考图像用F’n-1表示。预测值PRED和当前块相减后,产生一个残差块Dn,经块变换、量化后产生一组量化后的变换系数X,再经熵编码,与解码所需的一些头信息一起组成压缩后的码流,经NAL(网络自适应层)供传输和存储用。

2、解码:

在这里插入图片描述

将编码器的NAL输出的H264比特流经熵解码得到量化后的一组变换系数X,再经反量化、反变换,得到残差D’n。利用从该比特流中解码出的头信息,解码器就产生一个预测块PRED,它和编码器中的原始PRED是同样的。当该解码器产生的PRED与残差D’n相加后,就得到了uF’n,再经滤波后,最后就得到滤波后的解码输出图像F’n。

三、实验步骤

1、选择两个264文件并对其进行解码,得到相应的YUV文件

(1)实验前准备

将两个mp4文件通过转换器生成两个.264格式文件,分别命名为1.2642.264

(2)修改bin目录下的decoder.cfg文件

如下,根据选择文件修改inputFileoutFile内容:

InputFile             = "1.264"       # H.264/AVC coded bitstream
OutputFile            = "1_dec.yuv"   # Output file, YUV/RGB
InputFile             = "2.264"       # H.264/AVC coded bitstream
OutputFile            = "2_dec.yuv"   # Output file, 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值