高清主流视频编解码参数分析

随着网络、终端设备的蓬勃发展,视频类业务呈两级分化态势发展,一方面是短视频的爆发,有效填充了用户的碎片时间,取得了非常客观的用户量及点击率;而另一方面则是沉浸式殿堂级别视频,诸如我们所熟知的4K视频、蓝光视频等。对于这两类发展目标完全不同的视频业务来说,他们的编解码也呈现出两级的发展:极致效率和极致体验。本文想通过对现在主流的编解码技术/参数做一定的总结、分析,一定程度上引导运营方选择恰当的编解码参数来生产目标业务视频。

视频编码与视频格式的区别

常常会有人遇到手机上明明可以播放某个mkv视频,但却无法播放另一个mkv视频,是这个视频本身有问题?还是另有玄机呢?

视频格式又可称之为视频容器,一般情况下,通过视频文件的后缀名就能看出,比如mp4,mkv,avi等等。而每个视频容器中至少包括两个流,视频流及音频流,而视频编码方式则是指视频容器中视频流的压缩编码方式,例如H264,MPEG-4等等。简单概括,一部完整的视频就是通过某种视频格式,存放由视频编码及音频编码压缩的视频流及音频流。要想播放这样一部视频,不仅仅要支持打开这个视频容器,还要能够支持解码视频流及音频流。这样基本就可以解答我们上面的问题了,有时我们使用某些播放器播放视频发现只有画面,没有声音,其实也是相同的道理,因为这款播放器不支持对音频流的解码。

图片

然而视频编码与视频格式之间是独立的关系吗?非也,他们之间也是有协议规定的,特定的编码格式的视频流能够存放在特定的视频容器中。反之,特定的视频容器,只支持特定的视频流编码格式。举个例子,我们所熟悉的mp4格式视频,对于视频流的编码只支持:MPEG4、HEVC、AVC。而avi格式视频,对于视频流的编码支持:MPEG4、HEVC、AVC、MSMPEG4、WMV2、FLV1、MPEG2、MPEG等等。

【题外话】对于直播类视频就不存在容器的概念了,因为它不需要存下来,这也就是为什么我们对于广播电视而言,只关心编码格式,而不关心视频格式了。

主流的点播视频格式

视频格式千千万,针对网络视频传播,我们要如何做到弱水三千只取一瓢呢?第一原则是兼容性,网络终端成千上万,能够在更多的设备上进行视频传播成了网络视频格式选取的关键要素,就目前而言mp4格式得兼容性最为出色,通过H264编码的mp4视频几乎能够被所有的播放设备所识别,同时mp4文件能够几乎无损的切片成为若干个ts文件及一个m3u8文件,方便CDN网络的分发,大大降低视频首帧时延以及拖拽时延。

故对于点播业务,我们首选的视频格式就是mp4,这也是其他各大厂家共同的选择。

【题外话】2000年左右,RMVB格式视频红极一时,他的编码格式RV10也是当年最好的编码格式之一,我们现在所熟悉的TS视频格式就是其标准的容器格式。但就是因为Real Network公司始终坚持着不开放、收取高昂专利费的策略,使得后来H264逐步取代RV10,成为了时代的选择,而RV及RMVB也逐渐消失在我们的视野里。

主流的视频编码

还是那句话,视频编码千千万……。废话不多说,直接给出答案,目前使用最广泛的视频编码格式是H.264 (AVC),其原因是极其优异的兼容性以及其开源免费的政策。但与视频格式不同,视频编码表示着视频生产力,我认为其重要性远超视频格式,所以下面准备简单叙述下视频编码的过去,现在及未来。

图片

我们看一下国际视频编码标准演进的情况,一般认为第一代标准是ISO/IEC组织的MPEG2,MPEG2的典型应用就是标清视频,比如说DVD,传统的广播电视都是MPEG2。到第二代标准就是以ITU-T组织的H264为代表的,它的应用是高清视频的传输,在这代中,我们之前提到的RV曾是AVC的有力竞争者,但最终还是败在了开源及免费上。值得一提的是,由我国自主研发的AVS1标准也出现在了第二代视频编码的名单上,但由于种种因素,类似于移动通信中的TD-SCDMA一样,没有得到良好的传播及应用。到现在是第三代标准,是以H.265为代表的,它的目标是传输超高清的视频,而在这代标准中,出现了几个新的挑战者,包括Google主导的AV1,也包括我们国家制订的AVS2的标准,我们希望AVS2能够像TD-LTE一样,取得累累硕果。现在国际上MPEG和ITO正在联合制订第四代,叫H.266/VVC,实际上国内的AVS工作组也在制订下一代的标准AVS3。

看了这样的历史发展,大家一定会问,既然现在H.265的性能全面超越H264,那为何普及如此缓慢,以至于H.264依然是现在最广泛的编码呢?这里面有个主要的原因就是H.265的知识产权的政策跟H.264有很大的不同,这张图给出了目前已经知道的H.265的专利权所有者:

图片

这个里面有三个圈,这三个圈代表三个不同的专利池,所谓的专利池就是说大家组团收专利费的意思。在MPEG2和H.264时代没有这么多专利池,只有一个MPEG LA的专利池,专利池的好处就是对一个标准的使用者来说,它交这个专利费,只要符合专利池的政策,按照专利池的政策收费标准来缴费就可以了,他不用去跟每个专利权人单独去谈。但是到了H.265这个标准以后就有一个很大的变化,有一些专利权人不再对MPEG LA制订的收费政策感到那么满意了,他们想再搞一套自己的收费政策,所以就出现了HEVC Advance,Velos Media两个新的专利池。除了这两个专利池以外,还有大概15家公司不在这三个专利池里,他们试图单独的来授权,但是在这么多专利拥有者中,只有MPEG  LA,和HEVC  Advance目前公开了他们的收费政策,Velos Media和另外15家公司始终是没有公开他们的收费政策的。从MPEG LA和HEVC Advance公开的收费政策看,他们的收费价格已经比H264基本上高一倍了,剩下的还没有公布如何收费的,不知道应该交多少钱,也就造成了H.265专利收费的乱局,这在国际上引起了广泛的忧虑。

码率

视频码率就是数据传输时单位时间传送的数据位数,一般我们用的单位是kbps即千位每秒。通俗一点的理解就是取样率,单位时间内取样率越大,精度就越高,处理出来的文件就越接近原始文件。超过原始文件码率的转码是无意义的。

码率控制方法

在编码中对于码率的控制方法有四种,分别是CBR,VBR,CVBR以及ABR。

CBR(Constant Bit Rate)是以恒定比特率方式进行编码,有运动场景发生时,由于码率恒定,只能通过增大QP来减少码字大小,图像质量变差,当场景静止时,图像质量又变好,因此图像质量不稳定。这种算法优先考虑码率(带宽)。

VBR(Variable Bit Rate)动态比特率,其码率可以随着图像的复杂程度的不同而变化,因此其编码效率比较高,运动发生时,马赛克很少。码率控制算法根据图像内容确定使用的比特率,图像内容比较简单则分配较少的码率(似乎码字更合适),图像内容复杂则分配较多的码字,这样既保证了质量,又兼顾带宽限制。这种算法优先考虑图像质量,最终生成的整体视频大小无法保证。

CVBR(Constrained VariableBit Rate),这样翻译成中文就比较难听了,它是VBR的一种改进方法。但是Constrained又体现在什么地方呢?这种算法对应的Maximum bitRate恒定或者Average BitRate恒定。这种方法的兼顾了以上两种方法的优点:在图像内容静止时,节省带宽,有Motion发生时,利用前期节省的带宽来尽可能的提高图像质量,达到同时兼顾带宽和图像质量的目的。这种方法通常会让用户输入最大码率和最小码率,静止时,码率稳定在最小码率,运动时,码率大于最小码率,但是又不超过最大码率。

ABR (Average Bit Rate) 在一定的时间范围内达到设定的码率,但是局部码率峰值可以超过设定的码率,平均码率恒定。

每种码率控制有着不同的优缺点,综合来看未来的发展方向是在CVBR上,既能够保证视频的整体大小,又能解决运动场景中CBR马赛克的问题。

图像的表示方法(RGB模型与YUV模型)

光的三原色是红、绿、蓝。现代的显示器技术就是通过组合不同强度的三原色,来达成几乎任何一种可见光的颜色。图像储存中,通过记录每个像素红绿蓝强度,来记录图像的方法,称为RGB模型。YUV模型通过对RGB数据的合理转换,得到另一种表示方式。YUV模型下,还有不同的实现方式。举个用的比较多的YCbCr模型:它把RGB转换成一个亮度(Y),和 蓝色色度(Cb) 以及 红色色度(Cr)。【题外话】为什么YUV省掉了绿色?色彩三原色中是红黄蓝,并没有绿色,所以绿色是可转换的。

在图像视频的加工与储存中,YUV格式一般更受欢迎,理由如下:

1、人眼对亮度的敏感度远高于色度,因此人眼看到的有效信息主要来自于亮度。YUV模型可以将绝大多数的有效信息分配到Y通道。UV通道相对记录的信息少的多。相对于RGB模型较为平均的分配,YUV模型将多数有效信息集中在Y通道,不但减少了冗余信息量,还为压缩提供了便利

2、保持了对黑白显示设备的向下兼容

3、图像编辑中,调节亮度和颜色饱和度,在YUV模型下更方便。

几乎所有的视频格式,以及广泛使用的JPEG图像格式,都是基于YCbCr模型的。播放的时候,播放器需要将YCbCr的信息,通过计算,转换为RGB。这个步骤称为渲染(Rendering)

YUV采样

主要的采样格式有YCbCr 4:2:0、4:2:2和4:4:4。

(1)4:4:4,YUV三个信道抽样率相同,因此在生成的图像里,每个像素三个分量信息完整,经过8比特量化后,未经压缩占用3字节。(平均每个点3字节)

(2)4:2:2,每个色差信道的抽样率是亮度信道的一半,所以水平方向的色度抽样率只有4:4:4的一半。对非压缩的8比特量化的图像来说,每个由两个水平方向相信的像素组成的宏像素需要占用4字节内存。(平均每个点2字节)

(3)4:2:0,并不意味着只有Y、Cb而没有Cr分量。它指的是对每行扫描线来说,只有一种色度分量以2:1的抽样率存储,它指的是对每行扫描线来说,只有一种色度分量以2:1的抽样率存储。相邻的扫描行存储不同的色度分量,也就是说,如果一行是4:2:0和话,下一行就是4:0:2,再下一行是4:2:0….,以此类推。对每个色度分量来说,水平方向和竖直方向的抽样率都是2:1,所以可以说色度的抽样率是4:1。对非压缩的8比特量化的视频来说,每个由2*2个2行2列相邻的像素组成的宏像素需要占用6字节内存。(平均每个点1.5字节)

简单来说,YUV 4:4:4具有最高的色彩细腻度,但占用内存较大,而YUV 4:2:0具有较高的压缩比,单色彩较粗。鉴于平衡性,大多网络视频的YUV采样是4:2:0。

色深

色深(bit-depth),就是我们通常说的8bit和10bit,是指每个通道的精度。8bit就是每个通道用一个8bit整数(0~255)代表,10bit就是用10bit整数(0~1023)来显示。16bit则是0~65535(注意,但值得注意的是,视频在编码的时候,并非一定能用到0~255的所有范围,而是可能有所保留,只用到一部分,比如16~235。

如果使用8bit显示器,播放10bit的视频,那么在最终输出是8bit RGB的前提下,10bit YUV比起8bit YUV依旧具有精度优势。事实上,8bit YUV转换后,覆盖的精度大概相当于8bit RGB的26%,而10bit转换后的精度大约可以覆盖97%。简单来说,输出设备的色深是用来展现的,而视频的色深是用来精度计算的,虽然8bit屏在展现范围上有所不足,但是10bit色深的视频能够让计算更精确,并最终在8bit屏的像素上选出更适合的那个色彩。

另外,10bit的优势不只在于显示精度的提高,在提高视频压缩率,减少失真方面,相对8bit也有优势,所以10bit是超高清视频的优选。

帧率

视频帧率(Frame rate)是用于测量显示帧数的量度。所谓的测量单位为每秒显示帧数(Frames per Second,简:FPS)或“赫兹”(Hz)。由于人类眼睛的特殊生理结构,如果所看画面之帧率高于16的时候,就会认为是连贯的,此现象称之为视觉停留。这也就是为什么电影胶片是一格一格拍摄出来,然后快速播放的。

每秒的帧数(fps)或者说帧率表示图形处理器处理场时每秒钟能够更新的次数。高的帧率可以得到更流畅、更逼真的动画。一般来说30fps就是可以接受的,但是将性能提升至60fps则可以明显提升交互感和逼真感,但是一般来说超过75fps一般就不容易察觉到有明显的流畅度提升了。

帧率会直接线性地影响视频的大小,所以当前网络视频的帧率大多使用30帧,具有较高的效率及观赏性。对于体育类动态赛事,建议使用50帧来增加运动画面的平滑感。

【题外话】帧率超过显示器刷新率是没有意义的,而我们现在的电视机大多刷新率未50Hz或60Hz,所以一般超高清视频的帧率也就订到50比较适合,再高就浪费了。

HDR

高动态范围图像(High-Dynamic Range,简称HDR),相比普通的图像,可以提供更多的动态范围和图像细节,根据不同的曝光时间的LDR(Low-Dynamic Range)图像,利用每个曝光时间相对应最佳细节的LDR图像来合成最终HDR图像,能够更好的反映出真实环境中的视觉效果。简单来说就是HDR使图像该亮的地方亮,该暗的地方暗。

HDR并非是通过单一环节就能够解决的技术,需要在视频内容制作时,采用HDR 的编码方式对内容进行编码和压缩(源片摄影时就要支持HDR);在解码端按照HDR的格式解码,还原高动态的信号内容(中间转码需要支持HDR,播放也需要支持HDR)。

呈现完美的HDR需要两个条件,第一是高对比度,第二是卓越的色彩表现力。目前市面上的支持HDR的液晶电视并非完全支持,液晶电视能表现的最低亮度为0.1nits,最亮为500到1000nits之间,对比度只有5000比1,如果把亮度提高两倍到1000nits,也只能达到10000比1,而HDR需要对比度达到百万比1以上对比度时才能够完美的展现。

所以HDR的普及难点在于终端侧,对于内容厂商来说,可以推HDR概念,但是绝对无法通过一己之力将大部分视频升级成为HDR,因为这是一条端到端的产业链。

版权声明:本文内容转自互联网,本文观点仅代表作者本人。本站仅提供信息存储空间服务,所有权归原作者所有。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至1393616908@qq.com 举报,一经查实,本站将立刻删除。

(0)

相关推荐

发表回复

登录后才能评论