论文部分内容阅读
视频解码之前是什么?
现在的视频内容无一例外都是数字格式的,如果只是原始的视频数字内容,其庞大的体积是无法实现网络传输的,这就需要编码将其有序地压缩成合适大小,再进行传输。
实际上,一如MP3格式的数字音乐一样,目前主流的视频编码算法均属于有损编码,通过对视频造成有限而可以容忍的损失,获取相对更高的编码效率。在编码过程中造成信息损失的部分被称作变换量化。
这个量化过程通过对视频内容中低频区的系数进行细量化,高频区的系数进行粗量化,去除了人眼不敏感的高频信息,从而降低信息传送量。因此,量化是一个有损压缩的过程,而且是视频压缩编码中质量损伤的主要原因。
当然,实际上各种编码格式对视频的压缩方法技术有很多细节,笔者只是粗浅的解读一下方便读者理解。
编码完成的视频,无论是下载还是在线直接播放,都需要我们的设备进行相应格式的解码,才能将数字信息“转化”为我们能看到的图像,继而播放。
这个解码过程就需要GPU的参与了,所以我们的显卡GPU中,实际上都有专门的单元负责视频的编解码工作。只不过,这些单元都是固化在GPU内部,你的GPU能够支持何种格式的视频编解码从一开始就已经确定,无法通过软件升级的方式获得新的编解码能力。
而CPU也不是不可以進行编解码工作,我们通常会说CPU解码为软解码,GPU解码为硬解码。这是因为CPU是通过软件计算的方式,将CPU资源“挪用”来处理视频的编解码格式。这样做的好处是在GPU不支持某些视频编码格式的时候,我们依旧能够依靠CPU软解码正常播放。缺点自然是对CPU的资源占用颇高,影响电脑性能。
以英伟达显卡为例,NVIDIA Codec硬件编解码的性能不是CPU软解可以匹敌的,特别是多路编码的情况下,软件调用显卡去编解码会大大提高效率,节省时间。其次,CPU在进行编解码时,硬件占用率会很高,这样就会影响其他应用的正常运行,特别是在做图形设计或者游戏过程中,编码占用太多CPU资源就会导致应用卡顿。而使用显卡编码不会占用太多系统资源,不会影响应用的使用性能。
最流行的编码格式是什么?
目前最流行的编码格式主要集中在H.264和HEVC两种,这也是目前最为主要的视频编码格式,包括常见的1080P、4K格式视频文件,甚至不少在线视频网站也采用这些格式。此外,还有一个冉冉升起的新兴AV1编码,很有可能实现跨越式的发展,成为日后的主流视频编码格式——原因无它,没有专利费用。
H.264我最流行!
H.264,又称为MPEG-4第10部分的高级视频编码(MPEG-4 Part10,Advanced Video Coding,缩写为MPEG-4 AVC),是一种基于运动补偿的视频编码标准 。到2014年,它已经成为高精度视频录制、压缩和发布的最常用视频编码格式之一了。而且,H.264更因其是蓝光盘的其中一种编解码标准而著名,所有蓝光盘播放器都必须能解码H.264。另外, 因为它具有极高的压缩比,也成为诸多在线视频网站的首选视频编码格式。
H.264的最大优势是数据压缩率高,在相同的条件下,H. 26 4压缩图像的质量比是MPEG-2的2倍以上,是MPEG-4的1.5倍~2倍。例如,如果原始视频文件的大小是100GB,采用MPEG2压缩标准会压缩成一个4GB的文件,压缩比为25∶1,而采用H.264编码处理这个100GB的视频,则能压缩成980MB的大小,压缩比达到惊人的102∶1。 不仅如此,H.26 4还提供了非常出色的网络适应性能力——H.264拥有网络抽象层,简言之,可以在不够稳定的网络下(如移动网络)连续提供稳定的画面,因此也非常适合在线视频的传输。
当然,最重要的还是H.264可以提供高质量的视频画面,即便是低码率下也可以清晰显示,这比以往的视频流媒体视频编码要好很多。
不过这一切都是有代价的,H.264编码需要付费才能使用。而且,它对系统的要求较高——读者朋友有兴趣可以尝试一下切换播放器采用CPU软解码播放H.264视频,CPU占用率足以说明一切。
HEVC:4K没我不行!
在FHD(1080P)时代,H.264无疑是最合适的视频编码,但是到了4K时代,H.264的不足就显现出来了——提高4倍分辨率,意味着数据量呈几何增长,即便拥有如此优秀的压缩比,H.264也不足以应对4K时代的视频了。因此,开发了H.264视频编码的JCT-VC(Joint Collaborative Team on Video Coding,视频编码联合协作小组)又推出了HEVC编码标准。
HEVC也稱为H.265,是为最新一代高分辨率视频而设计的视频压缩标准。它是广泛使用的H.264编解码器(也称为AVC或MPEG-4 Part 10)的继承者,它对H.264的压缩方案进行了一些重大改进。HEVC压缩视频的效率比H.264要高出两倍,也就是说相同视觉质量的视频只占用相当于H.264编码压缩视频容量的一半,或者具有相同文件大小和比特率的视频可以呈现更好的质量。这也为在线播放超清视频提供了可能,毕竟带宽消耗更小一些。
严格意义上来说,HEVC也不算太新的视频编码标准了,但是一个视频编码标准的普及程度,还是取决于设备是否支持,例如哔哩哔哩在2020年才将HEVC纳入其中。显然,HEVC是近年才开始普及的。
未来之星AV1
HEVC固然是4K的好搭档,但是面对8K视频时它一样会显得力不从心。另外一个问题在于,HEVC和H.264编码一样,都是需要付费使用的。对于服务提供商来说,如果采用H.264或者HEVC编码,就必须支付相应的权利金。2015年,以谷歌为首的诸多厂商自行组建了一个联盟:开放媒体联盟(AOM),目标只有一个:设计一个免费、高效的视频编码格式!
AV1就是在这个情况下诞生的。AV1的全称是AOMedia Video 1。它是由谷歌开发的VP9视频编码格式衍生而来,主要目标就是和HEVC编码展开竞争。为何它从一开始就备受关注?除了非常重要的零权利金这一点优势之外,更为重要的是,它可以提供比HEVC最高多20%的压缩比!
随着移动互联网的广泛发展,视频逐渐成为互联网产品的主要需求,未来超过80%的互联网流量将会被视频占据。这使得压缩率更高、更清晰的视频编码被开发出来,目前在互联网上被广泛应用视频编码格式有H.264、H.265、VP9(只有不足5%的视频网站采用)。
AV1是一款开源、免版权费的视频编码格式,出自谷歌主导的开放媒体联盟。相比目前的H.265(HEVC)编码,不仅能保持原视频的分辨率、帧率、比特率,视频体积还能再缩小20%,相比于VP9压缩率也高出30%。这就意味着在同等带宽下可以传输更高清的画质。其实AV1可以算作是VP9编码的继任者,因为这两款编码都是由谷歌主导并开发的。但AV1是一款要在技术上能够与H.265叫板,又兼具VP9免费开源、浏览器友好性等优势的视频编码,同时开发维护权在AOM这样的非盈利标准组织手里。
新一代的视频编码用更高的编解码复杂度,换取视频压缩效率的提升,这使得新一代视频编码十分依赖硬件解码。不管是AV1还是H.265的编码复杂度都远远高于H.264,光靠软解高清视频,哪怕是PC端处理器占用也居高不下。作为直播视频流时还要解决延迟问题,目前H.265已经有实用的8K直播方案(100Mbps码率左右),而使用AV1,码率还会进一步降低,高带宽的占用问题将得到有效缓解。
编码之后是解码
视频经过编码后,就可以实现播放了,播放的过程自然是通过调用硬件资源(GPU或者CPU)对视频进行解码,这样才可以正常播放。目前市场上在售的绝大部分GPU,实际上都可以完成最高HEVC编码的视频解码工作,但是能实现AV1编码硬解的,那就要少多了。
目前市场上可以实现AV1解码的GPU主要集中在去年乃至今年发布的新一代产品上,包括NVIDIA 30系列显卡、AMD的6000系列显卡,以及Intel 11代酷睿处理器采用的UHD 750系列显卡上(包括Xe独显)。拥有它们的电脑才能提供对AV1硬件编解码的支持,其他电脑只能依靠电脑的CPU进行软解——软解时CPU的占用率极有可能是100%,这个系统资源的消耗多数人恐怕还是难以接受的。
而从电视盒子采用的解决方案看,目前已经上市的产品中,晶晨科技的S905X4芯片方案属于先行者,它可以完整支持AV1解码工作(包括HEVC解码),其他厂商的产品预计年底也将陆续上市。
在视频来源方面,目前已知的是爱奇艺平台已经部分采用AV1编码视频,哔哩哔哩网站也将推出AV1的编码视频。视频文件方面,2021年末开始,采用AV1编码的视频文件即将登场,并逐步取代HEVC成为新时代的宠儿。
如何播放AV1编码视频?
在Windows 10中,如果想要播放AV1编码的视频,会发现自带的播放器是不支持的,这是由于我们需要专门对应的编码器才能让系统“知道”这个视频是AV1格式的。要想使用Windows 10播放AV1编码视频,可以点击开始菜单,找到“Microsoft Store”并打开。
在Microsoft Store的搜索中,输入“AV1Video Extension”,匹配到扩展插件后,点击AV1 Video Extension的“获取”按钮,系统将自动安装。安装完毕,默认自带的播放器就可以正常播放AV1格式的视频了。