AV1:为互联网提供开放、免费的视频编解码工具

2023-10-28


从学术研究到进入工业界,Zoe Liu一直在算法和音视频领域,目前在谷歌编解码团队为编解码器AV1做开发支持。Zoe畅谈了评定编解码器的标准,以及AV1的最新进度。本文是『下一代编码器』系列采访之一,欢迎自荐或推荐技术人加入『下一代编码器』系列采访,请邮件editors@livevideostack.com。


文 / Ant


LiveVideoStack:请简要介绍下自己,以及目前主要的工作方向,对哪些技术或领域感兴趣?10多年来一直做多媒体相关的研发,是巧合吗,还是兴趣使然?


Zoe Liu:我目前在谷歌(Google)做软件工程师,主要从事视频编码与视频通信算法设计与实现。曾在美国贝尔实验室(Bell Labs), 诺基亚研究中心(Nokia Research Center), 以及惠普实验室(HP Labs)等处从事理论算法研究,后转入工业届,参与了如下视频通话产品的设计与推出:苹果(Apple)的FaceTime,谈客 (TangoMe)Video Calls,以及 谷歌眼镜(Google Glass)专属Hangouts Video Calls。目前在谷歌从事下一代开源免版权费(Open Source, Royalty Free)的AV1视频编码的标准制作。从学校到现在一直从事视屏编码跟视频通信方面的工作,有机缘巧合,也有兴趣使然。


LiveVideoStack:什么样的编解码器是一个好的编解码器?视频质量、码率、算法复杂度、对数据丢失或错误的鲁棒性等。


Zoe Liu:视频编解码发展的根本还是在于视频压缩效率的不断提高,也就是在一定视频质量下追求最低可能的码率,亦或在一定视频码率下追求最佳视频质量。视频质量的评测,传统上还是使用峰值信噪比,尽管这一指标在很多情形下与人眼主观的评测结果不能够一致的吻合。视频质量评测本身就是一个非常活跃的研究领域。


视频产品不同的应用场景,决定了视频编解码器的评估策略也不尽相同。在视频广播,视频直播等领域,解码器的解码效率和性能是关键环节之一。在视频通话,视频会议等应用场景,编码器的效率跟性能同样关键。目前视频码流都有关键帧的周期性嵌入。关键帧均采用帧内预测,其编解码是与其他帧独立,因此可以用于同步帧,有效的恢复纠错,但通常也会消耗大量的码率。除关键帧的采用之外,另一比较有效的容错策略是利用数据链路层的ACK/NACK结合视频编码的长距离参考帧,一旦网络出现错误(由于网络拥塞造成的包丢失),可利用确认成功传送的参考帧做帧间预测产生同步帧,编码效率会显著提升。但ACK/NACK的发送与接收取决于网络的往返延迟时间等状态参数。其他容错传输,比如向前纠错编码(FEC),在网络丢包概率小于一定限度的情形下十分有效,丢包严重时纠错性能则大大下降。编解码器的编码效率与其容错能力通常是相互矛盾的。编码效率的算法大多得益于多种预测与基于上下文(context-based)的编码工具的采用,而这些工具对于网络错误非常敏感。所以任何一款编解码器的研制,都会以牺牲一定的编码效率来增强其容错能力。


LiveVideoStack:你在LiveVideoStackCon上的分享AOM联盟以及AV1编解码器,能否在这里review一下?


Zoe Liu:首先介绍了我们在谷歌的视频编码团队。我们团队隶属于Chrome Media部门。Chrome Media的工作使命在于为互联网上的多媒体应用提供开放和免费的多媒体压缩技术。视频方面,我们的产品主要有VP8,VP9,以及AV1,其中AV1是目前和开放媒体联盟(AOM)的合作伙伴共同开发的。除视频之外,我们的产品还包括静态图像压缩标准WebP,音频编码器Opus,以及专门为3D图形数据研发的Draco编码软件。


多样化的视频应用在近几年呈现井喷的趋势,目前视频应用提供者的背景也是千差万别,在考虑压缩软件时,对成本和需求的考量也变得多样化了,这就是为什么压缩行业在单一的国际标准之外也需要产品的多元化,让用户来作出适合自己的选择。


谷歌一直以来都在坚持一个理念:所有奠基互联网应用的技术,应该是开放的、免费的,比如Chrome浏览器,Android系统就是这一理念下的实例。先进的开源、免费视频编解码技术,可以带来视频相关领域最大可能的发展,尤其为小型内容所有者以及相应企业在互联网激烈的竞争年代,提供更多平等的机会,与运营的大型公司平等抗衡,从而促进更加丰富、多样化的互联网络市场的发展。


2013年,VP9的诞生,在压缩效率上达到与H264相比节约50%的码率性能,除了基本的8比特、420格式外,同时支持更高像素精度和多种颜色空间采样格式。到现在为止,数十亿的终端设备支持VP9;Chrome,火狐,Edge,以及Opera等浏览器均支持VP9;在手机上,4.4或更高版本的安卓系统也支持VP9。在电视、游戏机、数字电视棒等家庭娱乐设备上VP9也有非常广泛的支持。


VP9最初的客户是谷歌的视频分享网站YouTube。从2013年到现在,除了大幅降低带宽成本外,VP9给YouTube的业务创造了更多的机会。在投入使用的第一年,基于VP9压缩的视频在YouTube上播放时长即达到25亿小时。目前YouTube上VP9视频用户,日均观看达到20多亿次。采用VP9压缩,使得播放起始延迟时间(首屏耗时)大大降低(平均降低15%),与此同时,缓冲效率大大提高。在成熟的在线视频消费市场,VP9使得YouTube市场占有率提高了25%,在尚未成熟的市场则提高了100%。特别是在受制于带宽限制、尚未成熟的市场中,YouTube高清视频在VP9成为主导编解码后,播放数量提升高达25%。


2015年,谷歌推进了开放媒体联盟(AOM)的创立,致力于开发开源、免费版权的新一代媒体格式,以及相应的编解码技术。目前,AOM董事会成员已经涵盖了Adobe,Amazon,AMD,Broadcom,Cisco,Facebook,Google,Hulu,IBM,Intel,Microsoft,Mozilla,nVIDIA,Netflix,nVidia等33家以上的技术巨头。


LiveVideoStack:对于应届生或从其他研发领域转行学习编解码、多媒体开发的技术人,有哪些建议?能否推荐一些系统学习编解码、多媒体开发的图书、资料?


Zoe Liu:目前流行编解码技术的基本框架是帧间运动矢量预测+二维变换+熵编码。当然人工智能的发展会不可避免的更新或者颠覆这一框架。了解编解码技术,国内在微博、微信以及知乎平台上都有很好的总结性文章,深入浅出,比阅读书籍会上手快许多。如果需要进一步了解编解码的各个模块与技术细节,最好具备图像处理、信号处理、信息理论的一些基本知识。建议可以阅读IEEE期刊上的一些关于H264/HEVC/VP9的总结性论文。目前视频编码开源代码很多,可以下载试运行,从而对编解码有更加直观的概念。


关于受访者


谷歌(Google)软件工程师,主要致力于视频编码与视频通信的算法设计与实现。曾在美国贝尔实验室(Bell Labs), 诺基亚研究中心(Nokia Research Center), 以及惠普实验室(HP Labs)等处从事理论算法研究,后转入工业届,尤其参与了如下视频通话产品的设计与推出:苹果(Apple)的FaceTime,谈客 (TangoMe)Video Calls,以及 谷歌眼镜(Google Glass)专属Hangouts Video Calls。目前在谷歌从事下一代开源无版权费(Open Source, Royalty Free)的AV1视频编码的标准制作。


Zoe Liu 谷歌(Google)软件工程师


本文是『下一代编码器』系列采访的第五篇,该系列采访将围绕视频编解码器领域的工业界与学术界的工程师,探讨编解码器的演进与应用。欢迎自荐或推荐技术人加入『下一代编码器』系列采访,请邮editors@livevideostack.com


LiveVideoStack招募社区编辑


LiveVideoStack是专注在音视频、多媒体开发的技术社区,通过传播最新技术探索与应用实践,帮助技术人员成长,解决企业应用场景中的技术难题。如果你有意为音视频、多媒体开发领域发展做出贡献,欢迎成为LiveVideoStack社区编辑的一员。你可以翻译、投稿、采访、提供内容线索等。


通过contribute@livevideostack.com联系,或在LiveVideoStack公众号回复『社区编辑』了解详情。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

AV1:为互联网提供开放、免费的视频编解码工具 的相关文章

  • (休息几天)读曼昆之微观经济学——税收归宿

    当政府对某商品征税时 谁是税收的真正承担者 是买方还是卖方承担了税收 或者是买卖双方分摊了税收负担 如果是 决定税收分摊比例的因素是什么 政府规定税收在买卖双方中的分摊比例 比如本例中的镇长建议的 是否可行 这些问题的回答需要使用到一个叫作
  • 区块链技术在应用过程中的安全问题主要体现哪些方面?

    区块链技术在快速应用的同时 其安全隐患也不容忽视 中企通宝区块链技术研究负责人认为 区块链在应用过程中的安全问题主要体现在三个方面 一是区块链系统本身的安全问题 包括智能合约的安全漏洞以及区块链平台的安全漏洞问题 二是网络资产的基础安全问题
  • Vijava 学习笔记之 HostSystem(内存总大小、内存已使用容量和CPU个数)

    package com vmware util import com vmware vim25 mo ServiceInstance import java net URL Created by vixuan 008 on 2015 4 1
  • STM32读取RS485传感器数据,但接收到的数据开头总是多一个字节或少一个一字节,有人能告诉我哪里出问题了吗

    STM32读取RS485传感器数据 但接收到的数据开头总是多一个字节或少一个一字节 有人能告诉我哪里出问题了吗
  • windows server 2012 防火墙 安全策略 限制ip远程及访问mysql

    今天在服务器上设置安全策略 有个奇葩的设置试了很多次 仍然不太理解 但按照以下方法是起作用的 目标 开启防火墙 限制服务器A上的MySQL数据库只能通过B访问 实现 1 首先设置A上的入站规则 添加更改后远程端口可访问 然后开启防火墙 如果
  • uniapp表单数据为“多级结构”,如何做校验

    开发项目的时候使用uniapp的表单 表单数据为多级结构 也就是对象里面嵌套对象 如何做校验 其实针对 多级结构数据 可以使用 动态表单校验 给单个uni forms item添加rule 给name绑定数组形式 代码如下
  • 四大坐标系转换和相机标定以及结果评估

    四大坐标系转换和相机标定以及结果评估 四大坐标系 坐标系转换 相机标定 matlab和python 标定结果评估 相机成像过程涉及坐标变换 包含世界坐标系 Xw Yw Zw 相机坐标 Xc Yc Zc 平面坐标 x y 像素坐标 u v 一
  • spring cloud config 中的application.yml 和 bootstrap.yml

    bootstrap yml 在 application yml 之前加载 bootstrap yml可以理解成系统级别的一些参数配置 这些参数一般是不会变动的 一般使用bootstrap yml是由于有远程配置需要load到本地 一般它会包
  • 基于cubemx的stm32f103指纹模块(AS608)

    寒假这段时间自己做了个指纹锁玩 在这里写一下指纹模块的用法 一 测试 新到手的AS608模块 可以在软件中测试一下功能是否正常 在使用这个配套软件的时候 注意要搭配TTL转串口使用 连接电源线和串口线四根就可以了 注意在测试的时候 要找对C
  • OSPF矢量图及不规则区域设计理论

    任何一台路由器勾画出一个区域的连接 都是通过矢量图的方式来表示 在根据树型结构算法 来计算去往非直连网络的路径信息 路由在勾画连接只包含三个参数 两类节点和节点之间的链路 节点 路由器节点 stub节点 pc所在的网络 环回口连接的网络 网
  • 规则引擎调研报告

    背景 我们公司由于业务的极具扩大 每天经过系统的金额也达到了20亿美金左右 这个时候对资金的管控就不能像以前那样分散在不同的系统 由不同的部门负责了 所以说 我们成立了风控部门 必须成立了专门的研发团队负责风控需求 要开始做风控了 我受命去
  • JS 防抖与节流

    防抖与节流 1 防抖 debounce 1 1 定义 在连续的多次触发同一事件的情况下 给定一个固定的时间间隔 假设 300 ms 该时间间隔内若存在新的触发 则清除之前的定时器并重新计时 重新计时 300 ms 表现为在短时间多次触发同一
  • OnNotify与OnChildNotify以及CStatic的DrawItem实现源代码

    OnNotify是用于子控件向父窗口发送消息用的 该消息的接收对象是父窗口 OnChildNotify是子控件向父窗口发送消息后 父窗口反射消息给子窗口用的 该消息的接收对象是子窗口 如 CDialog上有一个CStatic 在CStati
  • Could not determine which ”make“ command to run. Check the ”make“ step in the build configuration.报错

    一般情况下 工具 gt 选项 gt 构建和运行 gt 构建套件 Kit 在编译器里选择一个合适的编译器即可 but 可能由于我下载了很多次qt 文件夹位置被我搞坏了 可以检查一下项目里的构建设置 构建目录里是否在红色部分构建目录下有所示文件
  • linux查询java进程的指令,查询内存的指令,查看JVM参数

    参看所有java进程占内存 CPU使用情况 top b n 1 grep java awk print PID 1 mem 6 CPU percent 9 mem percent 10 查看java中的进程 这个指令可以查到PID和包名字
  • 系统故障-asp.net环境有误

    外播要用电子分call系统 所以他们要安装电子分call系统 去了一看 他们的系统有些问题问题现象 1 所有的toolbar控件 所有的客户端都无法显示这个控件 但只有两个客户端可以显示 经分析是asp组件有问题 所以重新安装asp net
  • 在Vue中使用QRCode生成二维码

    首先安装依赖包 npm cnpm install save qrcode 下面是qrcode vue文件 在script标签导入qrcode import QRCode from qrcode 我一般是写在mounted里面 如果需要什么条
  • 解决springboot使用logback日志出现LOG_PATH_IS_UNDEFINED文件夹的问题

    application properties 加入以下配置 logback home logging path D logs esb producer logback xml
  • SQL server 数据类型转换

    在 SQL Server 中 CONVERT 和 PARSE 函数可以用于将一个数据值从一种数据类型转换为另一种数据类型 它们与 CAST 函数一样是 SQL Server 中常见的数据类型转换函数 CONVERT 函数 CONVERT 函
  • Scala学习(三)---函数式编程

    文章目录 1 面向对象编程 2 函数式编程是什么 3 函数定义 4 函数参数的特殊用法 5 函数至简原则 6 匿名函数 6 1 匿名函数化简原则 7 高阶函数 7 1 函数可以作为值进行传递 7 2 函数可以作为参数进行传递 7 3 函数可

随机推荐

  • Received fatal alert:handshake_failure 异常解决方法

    目录 1 背景 2 报错信息 3 问题分析 4 解决方法 1 背景 PCI认证 要求安全传输层协议由之前的TLS v1 0 TLS v1 1升级到TLS v1 2 2 报错信息 java lang Exception 接口调用失败 at c
  • 配置Tomcat成为系统服务

    配置Tomcat成为系统服务 这里已tomcat6为例 下载Zip版Tomcat 选择 32 bit Windows zip pgp md5 下载解压文件到指定目录 如 D ProgramFiles Tomcat6 进入D ProgramF
  • Python 微信公众号文章爬取

    Python 微信公众号文章爬取 一 思路 二 接口分析 三 实现 第一步 第二步 1 请求获取对应公众号接口 取到我们需要的fakeid 2 请求获取微信公众号文章接口 取到我们需要的文章数据 四 总结 一 思路 我们通过网页版的微信公众
  • Docker搭建私有仓库

    Docker搭建私有仓库 一 私有仓库搭建 1 拉取私有仓库镜像 docker pull registry 2 启动私有仓库容器 docker run name registry p 5000 5000 registry 3 打开浏览器输入
  • Python判断一个整数是否是回文数的三种方法

    方法一 逐位判断 原理 用一个while循环 将一个数每次都取出首位和末位 判断是否相等 只要有一次不相等退出即可 回文数的判断条件 加入一个变量位数 如果这个数是奇数 位数为1时 即最中间那一位数 此时退出即可 同理 偶数 位数为0时 退
  • LIN诊断实现MCU本地OTA升级

    一 目标 通过PC端上位机实现MCU本地的OTA升级 本篇文章对实现的目的 需要用到的第三方工具 LIN诊断帧 升级协议 MCU端升级过程以及PC端升级过程做详细说明 二 目的 最近在做MCU项目时需要将样机寄给客户进行验证 在客户的验证过
  • 二叉树 level order 遍历问题汇总

    一 如何确定层结束 1 维护一个levelEnd 如果当前结点等于level end 更新levelEnd 为queue back 注意先判断queue是否empty 最后一层结束后 queue就空了 2 维护一个curLevelNum 和
  • 【Kubernetes】Kubernetes的yaml文件中command的使用

    command就是将命令在创建的容器中执行 有这些命令去完成一些工作 command用法和dockerfile中的cmd差不多 command可以单独写 也可以分成command和参数args 可以参考之前的CMD去理解 例如下面的写法都可
  • 超分辨率重建——(一)何为超分和分类

    图像超分辨重建 图像超分辨率 SR 是计算机视觉中提高图像和视频分辨率的一类重要技术 图像超分辨率重建 Super resolution Reconstruction SR 是由一张或多张低分辨率图像得到高分辨率图像的过程 存在问题 传统图
  • 刷脸支付营销广告一站式便捷的应用

    刷脸支付收银系统的应用让消费者自助购物 正规购物过程更加便捷了 同时对于商户来说 还可以通过收银系统的会员管理 会员管理 营销 会员加广告以及服务 为商户提供了收银 店铺管理 营销加广告等一站式便捷的闭环应用 刷脸支付 智慧医疗 智慧校园
  • ETL与ELT理解

    ETL ETL Extract Transform Load 用来描述将数据从来源端经过抽取 Extract 转换 Transform 加载 Load 至目的端的过程 ETL模式适用于小数据量集 如果在转换过程中需要处理的数据量达到千万上亿
  • yum使用报错:Cannot find a valid baseurl for repo: base/$releasever/x86_64

    转自 https www cnblogs com qa freeroad p 13888980 html 背景 项目有几台机器 centos7 时间不准 为了让时间能够定时同步 需要安装ntpdate 然而 我在使用yum安装ntpdate
  • Call From hadoop102/192.168.10.102 to hadoop102:8020 failed on connection exception: java.net.Connec

    错误 which no hbase in opt modules jdk1 8 0 212 bin opt modules jdk1 8 0 212 bin usr local bin usr bin usr local sbin usr
  • STM32 电机教程 24 - ST MCLIB实战之无感变绝对式位置传感器

    前言 上一节给大讲演示了如何用ST MotorControl Workbench创建基本STM32F103C8T6芯片的FOC工程并根据实际电路成功创建了工程 但是实际电路使用的是绝对式磁编码器作为电机位置及速度检测传感器 而ST Moto
  • 学习笔记 JavaScript ES6 箭头函数

    学习内容 this指向定义时所在的对象 而不是调用时所在的对象 不可以当作构造函数 不可以使用arguments对象 1 this指向定义时所在的对象 而不是调用时所在的对象 先来回顾一下ES5当中如何定义函数 function sum x
  • SQL Server是什么?SQL Server详细介绍

    一 SQL Server数据库简介 SQL Server数据库是Microsoft开发设计的一个关系数据库智能管理系统 RDBMS 现在是全世界主流数据库之一 SQL Server数据库具备方便使用 可伸缩性好 相关软件集成程度高等优势 能
  • centos7修改服务器密码忘记,Centos7忘记root密码怎么修改

    Centos7忘记root密码怎么修改 一 reboot重启机器 当出现引导界面时 按e进入内核编辑界面 二 往下翻 到LANG zh CN UTF 8后面添加 rd break 别忘了空格 三 修改完成后 按下Ctrl X组合键来运行这个
  • gcc,pkg-config,libyaml and etc..

    order of lib imports in gcc lib are importants the order of lib imports in gcc lib are importants I used to have this co
  • Java并发编程实战——你真的了解final吗?

    文章目录 final的简介 平时使用的final final修饰变量 final修饰方法 final修饰类 多线程中你真的了解final吗 final域基本数据类型的重排序规则 写final域的重排序规则 读final域的重排序规则 fin
  • AV1:为互联网提供开放、免费的视频编解码工具

    从学术研究到进入工业界 Zoe Liu一直在算法和音视频领域 目前在谷歌编解码团队为编解码器AV1做开发支持 Zoe畅谈了评定编解码器的标准 以及AV1的最新进度 本文是 下一代编码器 系列采访之一 欢迎自荐或推荐技术人加入 下一代编码器