H.264编解码分析

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, 
(3)将.264文件转换为YUV文件

在命令行中进入生成264文件所在位置,然后运行命令 ldecod.exe -d decoder.cfg<

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
H.264是一种广泛使用的视频编解码标准,也被称为MPEG-4 Part 10或AVC。它是一种基于帧的压缩方法,可以将视频压缩到较小的大小,以便更轻松地存储和传输。 H.264编码器将原始视频数据转换为压缩的比特流,该比特流可以被传输到解码器进行解码并还原为原始视频数据。H.264解码器将压缩的比特流解码为视频帧,并将这些帧合并成完整的视频。 为了展示H.264编解码的结果,我们可以使用一些视频播放器或工具,如VLC,FFmpeg等。这些工具可以打开H.264比特流或已经编码的视频文件,并播放或转换成其他格式。在播放过程中,我们可以观察视频的质量、帧率、码率等信息。 在分析H.264编解码结果时,我们可以关注以下几个方面: 1. 视频质量:视频质量是最直接的指标,它可以用来评估视频编码器的性能。观察视频的清晰度、锐度、颜色饱和度等可以帮助我们判断视频的质量。 2. 帧率:帧率是指视频中每秒钟的图像数量。帧率越高,视频越流畅,但也需要更高的比特率来支持更高的图像质量和帧率。 3. 码率:码率是指视频的压缩比率,也就是每秒钟传输的比特数。更高的码率可以提供更高的视频质量和帧率,但也会导致更大的文件大小。 4. 编码速度:编码速度是指编码器将原始视频数据转换为压缩比特流的速度。更快的编码速度可以帮助我们更快地生成压缩视频数据,从而提高效率。 综上所述,H.264作为一种广泛使用的视频编解码标准,可以提供高效的视频压缩和传输方案。通过观察视频质量、帧率、码率和编码速度等指标,我们可以更好地了解H.264编解码的性能和优化方法。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值