Matrix 精选
Matrix 是少数派的写作社区,我们主张分享真实的产品体验,有实用价值的经验与思考。我们会不定期挑选 Matrix 最优质的文章,展示来自用户的最真实的体验和观点。
文章代表作者个人观点,少数派仅对标题和排版略作修改。
更新日志
[2020.0708 13:00] 更新了 Fraunhofer HHI 最新发布的 H.266/VVC 编码标准的相关介绍。
你在 Netflix 上看的《怪奇物语》、在爱奇艺上看的《延禧攻略》、在腾讯视频上看的《三生三世》……这些剧集无论画面多么壮美震撼,色彩多么瑰丽怡人,背后决定它们最终呈现形态的,几乎都是看上去并不怎么浪漫的数字信号。
对视频内容而言,我们常常把视频信号分为两种:模拟信号和数字信号。模拟信号是指时间上和数值上均连续的信号,数字信号则是时间上和数值上均离散的信号(李永乐老师讲解过 模拟信号与数字信号的区别 感兴趣的可以看看)。
而具体到电影和视频,🎞️胶片电影(光敏材料记录)、以前的 CRT 电视📺(连续的电信号)、VHS 录像带📼这些都是采用模拟信号的代表;如今我们在网络上看到的大部分视频,在手机、电脑上保存的影片则大多是数字视频,它们借助摄像机进行采集并借助编码完成数字化,随后计算机用 0 和 1 存储、传播,最后再解码呈现到我们的屏幕上。
这个从信号到图像的转化过程中,视频编解码起着至关重要的作用。
什么是编码
自上个世纪末计算机逐渐普及开始,视频和电影从拍摄、剪辑到传播、呈现,都在不断完成向数字化的转变,视频编码在这个过程中发挥的作用尤为关键。
严格来说我们所说的视频编码全名其实叫做视频编解码器,英文名叫 codec,是 encoder 和 decoder 的缩写,我们拍摄、剪辑、转码时候会将图像的光信号处理完成 encoder 的过程;播放时则会借助 decoder 将信号中的视频信息呈现出来。
视频编码与我们平常见到的 .mp4
、.flv
等视频的拓展名并没有必然的联系,你可以将这些拓展名格式看作是一个个容器(container),每个容器里都可以包含了不同编码的视频、不同编码的音频、图片、字幕等等。
而目前大家接触比较多的视频编码主要有下面 5 种:
H.264/AVC
无论是叫 H.264、AVC、MPEG-4 Part 10 还是 Advanced Video Coding,都是指的这一个。
这是在 2003 年就由 MPEG(Moving Picture Experts Group 动态影像专家组)发布了的、至今为止已经有 17 年历史的视频编码,也是迄今为止最流行、最通用的视频编码。
H.264 的适应范围非常广,不同系统的电脑、浏览器、手机、电视、数码相机、流媒体、播放器、剪辑软件等几乎都有在使用这种编码。
H.265/HEVC
无论是叫 H.265、HEVC(High Efficiency Video Coding)还是 MPEG-H Part 2,指的都是这个编码。
H.265 可以说是 H.264 的继任者,它主要解决了 H.264 存在的两个问题:
首先是效率。H.265 的效率要高很多,相同画质下 H.265 比 H.264 节省了大约一倍的带宽(1080P 下节省了 57% 左右,4K UHD 下更是能节省大约 64% 的带宽 ),这对于一众流媒体视频网站的诱惑可以说是十分巨大,因为视频网站往往有一半甚至更多的开销得花费在带宽上面;不过还是有缺点的,播放 H.265 编码的视频内容的设备需要更好的性能,因而目前很多设备往往也并不支持 H.265 视频的播放,这时候就要在服务端放两份,一份 H.264 的一份 H.265 的,然后分发给不同的客户端。
另一方面,目前 4K 已经比较普及,很多专业设备甚至手机都能拍摄 8K 的内容,很多 8K 电视也已经开卖。而 H.264 因为有最高只支持 4K 分辨率这个限制存在,已经不太适合更高质量视频的拍摄、制作、和播放了,H.265 支持 8K 更能满足当前的需求。
H.265 最大的坏处是收费,并且比 H.264 更贵了。
H.266/VVC
7 月 7 日,德国电信通讯研究所 Fraunhofer HHI(弗劳恩霍夫协会)正式宣布 与 Apple、Intel、华为、微软合作推出新一代视频编码标准 H.266/VCC。
据介绍,相比上一代视频编码标准(H.265/HEVC),H.266/VCC 的视频压缩效率提高了 50%,一部 10GB 的 H.265/HEVC 高清视频,在 H.266/VCC 下只需要 5GB 即可,大幅节省传输带宽,更加适合 4K、8K 的超高清流媒体视频传输。Fraunhofer HHI 表示,首款支持 H.266/VVC 编码与解码的软件将于今年秋季推出。
VP9
上面提到无论是 H.264 还是 H.265 都有一个非常大的问题就是收费,并且非常昂贵,厂商随随便便一用一年就是几百万刀的钱。
于是像 Google 这种优秀青年就会想了,我又有技术又有钱,为啥不自己造个轮子?于是 2009 年 Google 花了 106.5 万美元收购了视频编码公司 On2 并很快推出了免费的 VP8 视频编码。不过彼时天下早已经是 H.264 的了,VP8 本身的编码效率也不够好,除了 YouTube 和少数几家浏览器支持外并没有被特别大规模地使用过。
所以 2010 年 Google 又进一步推出了 VP9,目标直指 H.265,这一次不仅有 YouTube、Netflix 等视频网站巨头的相继支持,除了 Safari 以外的主流浏览器也纷纷加入,另外,这也是你的 Safari 看 YouTube 没有 1080p 以上选项的根本原因。
根据 Netflix 分享过的对比测试,VP9 相比较 H.265 在 1080P 往上分辨率的视频流播中有着不小的优势。
AV1
虽然 Google 的 VP9 效果还不错,但仍有几家巨头不怎么愿意使用,毕竟在 Google 手里的项目他们也不太放心,比如 Apple 就始终未支持 VP9/VP8,很多买了 Apple TV 的朋友也因此无法观看 4K 分辨率的 YouTube。
所以 Apple、亚马逊、思科、 Google、英特尔、 微软、Mozilla 以及 Netflix 等厂商又共同组建了 Alliance for Open Media(开放媒体联盟)并在 2018 年推出了对抗 H.265 的新视频编码 AV1(AOMedia Video 1)。
你没看错,Google 也贡献出了自己的 VP9 作为基础,AV1 比起 VP9 又能节省约 20% 的带宽,同时依然免收版权费。
不过最重要的一点,这个联盟拥有非常强大的号召力,上图中的公司都加入了这个联盟,Netflix、YouTube 这些大家常见的视频平台也因此陆续开始分发 AV1 编码的视频了。
Apple ProRes
与上述几种帧间编码的视频编码不同,多用于专业相机拍摄的编码 Apple ProRes 属于帧内编码。根据「帧内压缩只参考本帧数据,压缩率小;帧间压缩要参考其他帧数据,压缩率大」 这个原理,Apple ProRes 这种帧内编码的视频编码的体积会比帧间编码的大很多,一般的数码相机、微单也很少使用这种编码。
不过 Apple ProRes 这种帧内编码的好处也是有的,这种编码往往会使用更大的体积保存更多的信息;因为是帧内编码不需要计算出其它帧,剪辑的时候对性能的要求也要低很多,即使用低配置的电脑剪辑高分辨率的视频也会很流畅。
此外很多专业级别的拍摄设备也会开发 Apple ProRes 这样的自有编码,甚至有些会记录「无损」的数据方便后期处理。这些专业拍摄设备一般用户不会接触到,网络视频传播基本也不会使用帧内编码,正如上面所说,采用这类编码的视频体积实在太大了,既烧钱又不利于传播。
如果你对这些感兴趣可以看看:
- H.264 vs H.265 H.265 会主宰市场吗?
- 【省带宽、压成本专题】深入解析 H.265 编码模式,带你了解 Apple 全面推进 H.265 的原因
- 视频编码的终结?
- HEVC (H.265) 是啥,我们需要关注什么?
- aomedia 官网
- 2016年 Netflix 在 Android 上分发 VP9 内容
- AVC 编码详解
- HEVC 授权价格
- HEVC VP9 未来的视频编码
视频拍摄的编码选择
针对拍摄,大部分设备我们都是没法选择视频录制编码的,但 iPhone 可以。所以这里我们以 iPhone 为例。
iPhone 在「设置 > 相机 > 格式」中提供了高效(H.265 即 HEVC)和兼容性最佳(H.264 即 AVC)两种视频拍摄编码选项,在上述对比图中不难看出视频编码对最终体积的影响真的很大。
选择高效自然会碰见兼容性问题,类似的案例你可以参考广告导演 @flypig 的 微博,碰见这种问题一般你可以选择将 H.265 的素材转成 H.264 或者检查自己的系统和剪辑软件是不是最新的。
拍摄、剪辑、和导出上传我自然是门外汉了(别的也是),推荐你们可以看看影视飓风的这几期视频,讲的很清楚。
视频分发的编码选择
相同的电影剧集,影响最终看起来清晰不清晰的除了分辨率、码率,视频编码也是非常重要的一部分,但这个因素常常被我们所忽视。
国际上比较主流的视频网站都采用了多种视频编码来应对不同平台、不同内容甚至不同网络环境的播放情况,下面是我个人总结的一些(可能会不完整):
Netflix 目前正在使用 4 种不同的编码,分别是
- H.264(AVC):这是 Netflix 使用较多的一种编码格式,在 Safari、iOS、电视客户端等都在使用。
- H.265(HEVC):Netflix 一般仅为 4K 的内容提供 H.265 的编码,并且一般只有在能看 4K 的客户端上使用此编码。我这里说的是 4K 的内容并不是你看 4K 的时候才会使用 H.265 编码,举个例子:你在 Fire TV 4K 或者 Windows Edge 浏览器上观看 《爱尔兰人》等有 4K 版本的内容时,即使你观看的分辨率是 480P 或者 720P,视频都会以 H.265 编码呈现。
- AV1:Netflix 在不久前宣布 Android 上正式开始使用这种编码,在这之前一直使用的是 VP9,不过 AV1 只有在使用流量并开启「节省数据」开关的选项后才会启用。
- VP9: Netflix 目前在 Android、Chrome 等 Google 系软件和硬件上一直使用这种编码。这里也很容易解释为啥你在 iOS 下载相同的内容和 Android 下载的体积不一样(iOS 客户端下载的普遍体积更小)。
YouTube 目前主要使用 VP9、H.264、以及 AV1 视频编码,不过值得注意的是 1080P 以上的内容 YouTube 都不会使用 H.264 编码,这也导致了 Apple 全系产品目前没法观看 YouTube 4K。好在 YouTube 已经开始支持 AV1 编码了(开启页面),而 AV1 也有 Apple 的一部分贡献,所以上面这个问题在未来几年内应该能解决。
至于 Apple TV+、Disney+ 也都在 4K 内容上采用了 H.265 编码,并且码率还要比 Netflix 的 16Mbps 要高些许,相比国内爱奇艺、bilibili 只使用 H.264 并且码率也要低很多,「看上去」的差距自然就会十分明显了。
总结下,大家经常说国外的流媒体比国内的清晰、看起来更好主要有下面三个原因:
- 编码:国外的大部分流媒体的分发尤其是 4K 的内容都采用了 H.265 编码(Dolby Vision 主要也是 H.265 编码),国内的基本都还是 H.264。
- 码率:就像我们常用图片的文件大小来判断清晰不清晰一样,一个视频采用相同或者类似的编码,码率大小会直接影响清晰。Netflix 一般 16Mbps 左右,国内的一般在 4、5Mbps 。如果算上编码的差异这个差距还得乘以2。
- 色彩文件(HDR):国内的像爱奇艺即使你观看 HDR 的内容实际播放的也是 BT709 8bit SDR 的内容,并没有好好利用到你电视更广的色彩显示和更亮更优秀的屏幕,相比之下,Netflix 即使是非 HDR 内容也是 10bit 的色彩深度。
另外,如果你也使用 Fire TV,想看详细播放内容详细信息可以按照这个步骤开启开发者模式:
- 遥控器:在方向盘上,按住「 中央」按钮一秒钟;然后(仍然按住居中),也按下「 向下」按钮。按住两个按钮约3-4秒。
- 然后释放两个按钮,然后按遥控器的菜单按钮。
(如果这不起作用,请尝试同时按住「 Center」和「 Down」,而不要交错放置。)
尾巴
胶片电影时我们的视频是一秒 24 张照片的魔法,到电视我们的视频是「不稳定」的模拟电信号,再到如今借助网络力量高速传播的数字信号。视频编码看不见也摸不着,它的进步却让我们的视频变得越来越清晰、生动,播放下载也更加便捷流畅。
文章写的杂乱,很多说的很糙很杂,如果有不对欢迎您指正。
> 下载少数派 客户端、关注 少数派公众号,每天了解科技圈的新鲜事 📰