文章博主通过查阅资料得到,有点综述的感觉
基本知识
-
码流
码流(Data Rate)是指视频文件在单位时间内使用的数据流量,也叫码率、取样率、码流率,通俗一点的理解就是,是视频编码中画面质量控制中最重要的部分,一般我们用的单位是kb/s。 一般来说同样分辨率下,视频文件的码流越大,压缩比就越小,画面质量就越高。码流越大,说明单位时间内取样率越大,数据流,精度就越高,处理出来的文件就越接近原始文件,图像质量越好,画质越清晰,要求播放设备的解码能力也越高。
计算公式: 文件体积=时间X码率/8
举个栗子:90分钟1Mbps码流的720P RMVB文件,其体积就=5400秒×1Mb/8=675MB。(注意:文件大小和分辨率没啥直接关系,只是一般情况下,为了保证清晰度,较高的分辨率需要较高的编码率配合,所以使人产生分辨率越大的视频文件体积越大的感觉。)
-
码率设置
码率设置时, 现有的码率控制算法主要是通过调整离散余弦变换的量化参数(QP)大小输出目标码率。
-
RC
Rate control mode: constqp vbr cbr cbr_ll_hq cbr_hq vbr_hq 这就是码率控制模型。RC 算法的核心是一个定量的描述QP、实际比特率和编码复杂度代理的关系的模型。
-
VBR
而我上面说的RMVB视频中的VB就是VBR(变比特率),把较高的采样率用于复杂的动态画面(歌舞、飞车、战争、动作等),而把较低的采样率用于静态画面,合理利用资源,达到画质与体积可兼得的效果,这就是VBR的好处。
-
CBR
自然而然,这里需要提一下CBR(),当在一个带宽受限的信道中进行多媒体通讯的时候CBR是非常有用的,因为这时候受限的是最高码率,CBR可以更容易的使用这样的信道。但是CBR不适合进行存储,因为CBR将导致没有足够的码率对复杂的内容部分进行编码(从而导致质量下降),同时在简单的内容部分会浪费一些码率。请注意使用的应用场景,特别与VBR对照。
-
qp
Quantizer Parameter,量化参数,反映了空间细节压缩情况。值越小,量化越精细,图像质量越高,产生的码流也越长。如QP小,大部分的细节都会被保留;QP增大,一些细节丢失,码率降低,但图像失真加强和质量下降。我找到了两幅很棒的图。
-
编码格式
-
IDR
Instantaneous Decoding Refresh,即时解码刷新。为将首个I帧和其他I帧区别开,定义首个I帧为IDR帧。它与I帧、P帧、B帧的区别见http://blog.csdn.net/sphone89/article/details/8086071
-
GOP
介绍完IDR帧,我将引入GOP的概念。
GOP:关键帧的周期,也就是两个IDR帧之间的距离,一个帧组的最大帧数,一般而言,每一秒视频至少需要使用 1 个关键帧。增加关键帧个数可改善质量,但会增加带宽和网络负载。
需要说明的是,通过提高GOP值来提高图像质量是有限度的。在遇到场景切换的情况时,H.264编码器会自动强制插入一个I帧,此时实际的GOP值被缩短了。另一方面,在一个GOP中,P、B帧是由I帧预测得到的,当I帧的图像质量比较差时,会影响到一个GOP中后续P、B帧的图像质量,直到下一个GOP开始才有可能得以恢复,所以GOP值也不宜设置过大。
- 视频大小
(转化为kb,注意1KB = 8kb) / 视频持续时长(s) = xxxx kbps
YUV颜色空间
Y'UV, YUV, YCbCr,YPbPr等专有名词都可以称为YUV,彼此有重叠。“Y”表示明亮度(Luminance、Luma),“U”和“V”则是色度、浓度(Chrominance、Chroma)。
视频信号会分解为亮度和色度,这两个是组成色彩的元素,这类似于图像可以分解为红、绿、蓝三个元素。亮度和色度元素被称为YUV(模拟信号)或YCbCr(数字信号)而不是RGB。
这就是早期模拟和数字压缩形式的主要动因。视频信号会分解为亮度和色度,这两个是组成色彩的元素,这类似于图像可以分解为红、绿、蓝三个元素。亮度和色度元素被称为YUV(模拟信号)或YCbCr(数字信号)而不是RGB。一旦被分开,色度分辨率会通过一个叫做“色度取样”的步骤被减半或更多。结果就是在同样的广播带宽情况下,视频信号能呈现更多的细节,这是因为亮度元素对视频信号的贡献更大。
下面这个资料很清楚解释了 色度抽样(J:a:b)
https://blog.csdn.net/xueyushenzhou/article/details/40817949