视频编码 订阅
所谓视频编码方式就是指通过压缩技术,将原始视频格式的文件转换成另一种视频格式文件的方式。视频流传输中最为重要的编解码标准有国际电联的H.261、H.263、H.264,运动静止图像专家组的M-JPEG和国际标准化组织运动图像专家组的MPEG系列标准,此外在互联网上被广泛应用的还有Real-Networks的RealVideo、微软公司的WMV以及Apple公司的QuickTime等。 展开全文
所谓视频编码方式就是指通过压缩技术,将原始视频格式的文件转换成另一种视频格式文件的方式。视频流传输中最为重要的编解码标准有国际电联的H.261、H.263、H.264,运动静止图像专家组的M-JPEG和国际标准化组织运动图像专家组的MPEG系列标准,此外在互联网上被广泛应用的还有Real-Networks的RealVideo、微软公司的WMV以及Apple公司的QuickTime等。
信息
类    别
压缩技术
分    类
H.26x系列,MPEG系列,AVS,RMVB
原    理
去冗余,空域,时域
中文名
视频编码
基    础
图像编码
外文名
Video Encoding
视频编码简介
视频是连续的图像序列,由连续的帧构成,一帧即为一幅图像。由于人眼的视觉暂留效应,当帧序列以一定的速率播放时,我们看到的就是动作连续的视频。由于连续的帧之间相似性极高,为便于储存传输,我们需要对原始的视频进行编码压缩,以去除空间、时间维度的冗余。 [1]  视频压缩技术是计算机处理视频的前提。视频信号数字化后数据带宽很高,通常在20MB/秒以上,因此计算机很难对之进行保存和处理。采用压缩技术通常数据带宽降到1-10MB/秒,这样就可以将视频信号保存在计算机中并作相应的处理。常用的算法是由ISO制订的,即JPEG和MPEG算法。JPEG是静态图像压缩标准,适用于连续色调彩色或灰度图像,它包括两部分:一是基于DPCM(空间线性预测)技术的无失真编码,一是基于DCT(离散余弦变换)和哈夫曼编码的有失真算法,前者压缩比很小,主要应用的是后一种算法。在非线性编辑中最常用的是MJPEG算法,即Motion JPEG。它是将视频信号50帧/秒(PAL制式)变为25帧/秒,然后按照25帧/秒的速度使用JPEG算法对每一帧压缩。通常压缩倍数在3.5-5倍时可以达到Betacam的图像质量。MPEG算法是适用于动态视频的压缩算法,它除了对单幅图像进行编码外还利用图像序列中的相关原则,将冗余去掉,这样可以大大提高视频的压缩比。前MPEG-I用于VCD节目中,MPEG-II用于VOD、DVD节目中。AVS音视频编码是中国支持制订的新一代编码标准,压缩效率比MPEG-2增加了一倍以上,能够使用更小的带宽传输同样的内容。AVS已经成为国际上三大视频编码标准之一,AVS标准在广电总局正式全面推广,率先在广电行业普及。中国第一颗AVS编码芯片,由北京博雅华录公司设计,于2012年在北京诞生。
收起全文
精华内容
下载资源
问答
  • 视频编码全角度详解.pdf 文档,清晰度一般,不介意的请下载。
  • 可以调用不同的编码器直接将Mat编码为压缩的封装视频格式,支持x264编码
  • Android视频编码和直播推流教程

    千人学习 2018-07-26 01:12:14
    Android音视频编码和推流功能视频培训教程,该课程内容包括:OpenGL ES教程、Android视频滤镜、图片生成视频、添加水印、音频和视频合成、剪切音乐合成视频、利用摄像头实现RTMP直播推流等。
  • 最简单的基于FFMPEG的视频编码

    热门讨论 2014-05-09 22:24:56
    因此特地分离出了一个简单的视频编码器供学习之用。 该视频编码器实现了YUV420P像素数据编码为H.264码流 尽管该视频编码器的代码十分简单,但是几乎包含了使用FFMPEG编码一个视频所有必备的API。十分适合FFmpeg的...
  • 新一代高效视频编码H.265HEVC原理、标准与实现 [万帅,杨付正 编著] 2014年版pdf版本,积分最低哦!
  • 因此特地分离出了一个简单的视频编码器供学习之用。 此前做过一个YUV420P像素数据编码为H.264码流的例子。对这个例子进行了升级。升级后编码器实现了YUV420P像素数据编码为H.265码流。 尽管该视频编码器的代码十分...
  • 视频编码技术详解

    万次阅读 多人点赞 2020-04-18 14:06:53
     如今我们所处的时代,是移动互联网时代,也可以说是视频时代。从快播到抖音,从“三生三世”到“延禧攻略”,我们的生活,被越来越多的视频元素所影响。    而这一切,离不开视频拍摄技术的不断升级,还有...

    1、引言

      如今我们所处的时代,是移动互联网时代,也可以说是视频时代。从快播到抖音,从“三生三世”到“延禧攻略”,我们的生活,被越来越多的视频元素所影响。

      

     

      而这一切,离不开视频拍摄技术的不断升级,还有视频制作产业的日益强大。

      

     

      此外,也离不开通信技术的飞速进步。试想一下,如果还是当年的56K Modem拨号,或者是2G手机,你还能享受到现在动辄1080P甚至4K的视频体验吗?

      除了视频拍摄工具和网络通信技术升级之外,我们能享受到视频带来的便利和乐趣,还有一个重要因素,就是视频编码技术的突飞猛进。

      视频编码技术涉及的内容太过专业和庞杂,市面上的书籍或博客多数都只是枯燥的技术概念罗列,对于新手来说读完依旧蒙逼是常态,本文将借此机会,专门给大家做一个关于视频编码的零基础科普。

      2、图像基础知识

      2.1 什么是像素?

      说视频之前,先要说说图像。图像,大家都知道,是由很多“带有颜色的点”组成的。这个点,就是“像素点”。

      

     

      像素点的英文叫Pixel(缩写为PX)。这个单词是由 Picture(图像) 和 Element(元素)这两个单词的字母所组成的。

      

     

      ▲ 电影《像素大战(Pixels)》,2015年

      像素是图像显示的基本单位。我们通常说一幅图片的大小,例如是1920×1080,就是长度为1920个像素点,宽度为1080个像素点。乘积是2,073,600,也就是说,这个图片是两百万像素的。

      1920×1080,这个也被称为这幅图片的分辨率。

      

     

      ▲ 分辨率也是显示器的重要指标

      2.2 什么是PPI?

      那么,我们经常所说的PPI又是什么东西呢?

      PPI,就是“Pixels Per Inch”,每英寸像素数。也就是,手机(或显示器)屏幕上每英寸面积,到底能放下多少个“像素点”。这个值当然是越高越好啦!PPI越高,图像就越清晰细腻。

      

     

      以前的功能机,例如诺基亚,屏幕PPI都很低,有很强烈的颗粒感。

      

     

      后来,苹果开创了史无前例的“视网膜”(Retina)屏幕,PPI值高达326(每英寸屏幕有326像素),画质清晰,再也没有了颗粒感。

      

     

      2.3 颜色在计算机里是如何表示的?

      像素点必须要有颜色,才能组成缤纷绚丽的图片。那么,这个颜色,又该如何表示呢?

      大家都知道,我们生活中的颜色,可以拥有无数种类别。

      

     

      ▲ 光是妹纸们的口红色号,就足以让我们这些屌丝瞠目结舌。。。

      在计算机系统里,我们不可能用文字来表述颜色。不然,就算我们不疯,计算机也会疯掉的。在数字时代,当然是用数字来表述颜色。这就牵出了“彩色分量数字化”的概念。

      以前我们美术课学过,任何颜色,都可以通过红色(Red)、绿色(Green)、蓝色(Blue)按照一定比例调制出来。这三种颜色,被称为“三原色”。

      

     

      在计算机里,R、G、B也被称为“基色分量”。它们的取值,分别从0到255,一共256个等级(256是2的8次方)。所以,任何颜色,都可以用R、G、B三个值的组合表示。

      

     

      ▲ RGB=(183,67,21)

      通过这种方式,一共能表达多少种颜色呢?256×256×256=16,777,216种,因此也简称为1600万色。RGB三色,每色有8bit,这种方式表达出来的颜色,也被称为24位色(占用24bit)。这个颜色范围已经超过了人眼可见的全部色彩,所以又叫真彩色。再高的话,对于我们人眼来说,已经没有意义了,完全识别不出来。

      

     

      3、视频编码基础知识

      3.1 视频和图像和关系

      好了,刚才说了图像,现在,我们开始说视频。所谓视频,大家从小就看动画,都知道视频是怎么来的吧?没错,大量的图片连续起来,就是视频。

      

     

      衡量视频,又是用的什么指标参数呢?最主要的一个,就是帧率(Frame Rate)。在视频中,一个帧(Frame)就是指一幅静止的画面。帧率,就是指视频每秒钟包括的画面数量(FPS,Frame per second)。

      

     

      帧率越高,视频就越逼真、越流畅。

      3.2 未经编码的视频数据量会有多大?

      有了视频之后,就涉及到两个问题:

      一个是存储;

      二个是传输。

      

     

      而之所以会有视频编码,关键就在于此:一个视频,如果未经编码,它的体积是非常庞大的。

      以一个分辨率1920×1280,帧率30的视频为例:

      共:1920×1280=2,073,600(Pixels 像素),每个像素点是24bit(前面算过的哦);

      也就是:每幅图片2073600×24=49766400 bit,8 bit(位)=1 byte(字节);

      所以:49766400bit=6220800byte≈6.22MB。

      这是一幅1920×1280图片的原始大小,再乘以帧率30。

      也就是说:每秒视频的大小是186.6MB,每分钟大约是11GB,一部90分钟的电影,约是1000GB。。。

      吓尿了吧?就算你现在电脑硬盘是4TB的(实际也就3600GB),也放不下几部大姐姐啊!不仅要存储,还要传输,不然视频从哪来呢?如果按照100M的网速(12.5MB/s),下刚才那部电影,需要22个小时。。。再次崩溃。。。

      正因为如此,屌丝工程师们就提出了,必须对视频进行编码。

      3.3 什么是编码?

      编码:就是按指定的方法,将信息从一种形式(格式),转换成另一种形式(格式)。视频编码:就是将一种视频格式,转换成另一种视频格式。

      

     

      编码的终极目的,说白了,就是为了压缩。各种五花八门的视频编码方式,都是为了让视频变得体积更小,有利于存储和传输。

      我们先来看看,视频从录制到播放的整个过程,如下:

      

     

      首先是视频采集。通常我们会使用摄像机、摄像头进行视频采集。限于篇幅,我就不打算和大家解释CCD成像原理了。

      

     

      采集了视频数据之后,就要进行模数转换,将模拟信号变成数字信号。其实现在很多都是摄像机(摄像头)直接输出数字信号。信号输出之后,还要进行预处理,将RGB信号变成YUV信号。

      前面我们介绍了RGB信号,那什么是YUV信号呢?

      简单来说,YUV就是另外一种颜色数字化表示方式。视频通信系统之所以要采用YUV,而不是RGB,主要是因为RGB信号不利于压缩。在YUV这种方式里面,加入了亮度这一概念。在最近十年中,视频工程师发现,眼睛对于亮和暗的分辨要比对颜色的分辨更精细一些,也就是说,人眼对色度的敏感程度要低于对亮度的敏感程度。

      所以,工程师认为,在我们的视频存储中,没有必要存储全部颜色信号。我们可以把更多带宽留给黑—白信号(被称作“亮度”),将稍少的带宽留给彩色信号(被称作“色度”)。于是,就有了YUV。

      YUV里面的“Y”,就是亮度(Luma),“U”和“V”则是色度(Chroma)。

      大家偶尔会见到的Y'CbCr,也称为YUV,是YUV的压缩版本,不同之处在于Y'CbCr用于数字图像领域,YUV用于模拟信号领域,MPEG、DVD、摄像机中常说的YUV其实就是Y'CbCr。

      

     

      ▲ YUV(Y'CbCr)是如何形成图像的

      YUV码流的存储格式其实与其采样的方式密切相关。(采样,就是捕捉数据)

      主流的采样方式有三种:

      1)YUV4:4:4;

      2)YUV4:2:2;

      3)YUV4:2:0。

      

     

      具体解释起来有点繁琐,大家只需记住,通常用的是YUV4:2:0的采样方式,能获得1/2的压缩率。

      这些预处理做完之后,就是正式的编码了。

      有关视频编码的更多专业知识,可以详细阅读以下文章:

      《即时通讯音视频开发(一):视频编解码之理论概述》

      《即时通讯音视频开发(二):视频编解码之数字视频介绍》

      《即时通讯音视频开发(三):视频编解码之编码基础》

      《即时通讯音视频开发(四):视频编解码之预测技术介绍》

      《即时通讯音视频开发(五):认识主流视频编码技术H.264》

      4、视频编码的实现原理

      4.1 视频编码技术的基本原理

      前面我们说了,编码就是为了压缩。要实现压缩,就要设计各种算法,将视频数据中的冗余信息去除。当你面对一张图片,或者一段视频的时候,你想一想,如果是你,你会如何进行压缩呢?

      

     

      ▲ 对于新垣女神,我一bit也不舍得压缩…

      我觉得,首先你想到的,应该是找规律。是的,寻找像素之间的相关性,还有不同时间的图像帧之间,它们的相关性。

      举个例子:如果一幅图(1920×1080分辨率),全是红色的,我有没有必要说2073600次[255,0,0]?我只要说一次[255,0,0],然后再说2073599次“同上”。

      

     

      如果一段1分钟的视频,有十几秒画面是不动的,或者,有80%的图像面积,整个过程都是不变(不动)的。那么,是不是这块存储开销,就可以节约掉了?

      

     

      ▲ 以上图为例,只有部分元素在动,大部分是不动的

      是的,所谓编码算法,就是寻找规律,构建模型。谁能找到更精准的规律,建立更高效的模型,谁就是厉害的算法。

      通常来说,视频里面的冗余信息包括:

      

     

      

     

      视频编码技术优先消除的目标,就是空间冗余和时间冗余。

      接下来,就和大家介绍一下,究竟是采用什么样的办法,才能干掉它们。以下内容稍微有点高能,不过我相信大家耐心一些还是可以看懂的。

      4.2 视频编码技术的实现方法

      视频是由不同的帧画面连续播放形成的。

      这些帧,主要分为三类,分别是:

      1)I帧;

      2)B帧;

      3)P帧。

      I帧:是自带全部信息的独立帧,是最完整的画面(占用的空间最大),无需参考其它图像便可独立进行解码。视频序列中的第一个帧,始终都是I帧。

      P帧:“帧间预测编码帧”,需要参考前面的I帧和/或P帧的不同部分,才能进行编码。P帧对前面的P和I参考帧有依赖性。但是,P帧压缩率比较高,占用的空间较小。

      

     

      ▲ P帧

      B帧:“双向预测编码帧”,以前帧后帧作为参考帧。不仅参考前面,还参考后面的帧,所以,它的压缩率最高,可以达到200:1。不过,因为依赖后面的帧,所以不适合实时传输(例如视频会议)。

      

     

      ▲ B帧

      通过对帧的分类处理,可以大幅压缩视频的大小。毕竟,要处理的对象,大幅减少了(从整个图像,变成图像中的一个区域)。

      

     

      如果从视频码流中抓一个包,也可以看到I帧的信息,如下:

      

     

      我们来通过一个例子看一下。

      这有两个帧:

      

     

      好像是一样的?

      不对,我做个GIF动图,就能看出来,是不一样的:

      

     

      人在动,背景是没有在动的。

      第一帧是I帧,第二帧是P帧。两个帧之间的差值,就是如下:

      

     

      也就是说,图中的部分像素,进行了移动。移动轨迹如下:

      

     

      这个,就是运动估计和补偿。

      

     

      当然了,如果总是按照像素来算,数据量会比较大,所以,一般都是把图像切割为不同的“块(Block)”或“宏块(MacroBlock)”,对它们进行计算。一个宏块一般为16像素×16像素。

      

     

      ▲ 将图片切割为宏块

      好了,我来梳理一下。

      对I帧的处理,是采用帧内编码方式,只利用本帧图像内的空间相关性。对P帧的处理,采用帧间编码(前向运动估计),同时利用空间和时间上的相关性。简单来说,采用运动补偿(motion compensation)算法来去掉冗余信息。

      

     

      需要特别注意,I帧(帧内编码),虽然只有空间相关性,但整个编码过程也不简单。

      

     

      如上图所示,整个帧内编码,还要经过DCT(离散余弦变换)、量化、编码等多个过程。限于篇幅,加之较为复杂,今天就放弃解释了。

      那么,视频经过编码解码之后,如何衡量和评价编解码的效果呢?

      一般来说,分为客观评价和主观评价。客观评价,就是拿数字来说话。例如计算“信噪比/峰值信噪比”。

      

     

      信噪比的计算,我就不介绍了,丢个公式,有空可以自己慢慢研究...

      

     

      除了客观评价,就是主观评价了。主观评价,就是用人的主观感知直接测量,额,说人话就是——“好不好看我说了算”。

      

     

      5、视频编码的国际标准

      5.1 视频编码格式的标准化

      接下来,我们再说说标准(Standard)。任何技术,都有标准。自从有视频编码以来,就诞生过很多的视频编码标准。

      提到视频编码标准,先介绍几个制定标准的组织。

      首先,就是大名鼎鼎的ITU(国际电信联盟)。

      

     

      ITU是联合国下属的一个专门机构,其总部在瑞士的日内瓦。

      ITU下属有三个部门:

      1)分别是ITU-R(前身是国际无线电咨询委员会CCIR);

      2)ITU-T(前身是国际电报电话咨询委员会CCITT);

      3)ITU-D。

      

     

      除了ITU之外,另外两个和视频编码关系密切的组织,是ISO/IEC。

      

     

      ISO大家都知道,就是推出ISO9001质量认证的那个“国际标准化组织”。IEC,是“国际电工委员会”。1988年,ISO和IEC联合成立了一个专家组,负责开发电视图像数据和声音数据的编码、解码和它们的同步等标准。这个专家组,就是大名鼎鼎的MPEG,Moving Picture Expert Group(动态图像专家组)。

      

     

      三十多年以来,世界上主流的视频编码标准,基本上都是它们提出来的:

      1)ITU提出了H.261、H.262、H.263、H.263+、H.263++,这些统称为H.26X系列,主要应用于实时视频通信领域,如会议电视、可视电话等;

      2)ISO/IEC提出了MPEG1、MPEG2、MPEG4、MPEG7、MPEG21,统称为MPEG系列。

      ITU和ISO/IEC一开始是各自捣鼓,后来,两边成立了一个联合小组,名叫JVT(Joint Video Team,视频联合工作组)。

      

     

      JVT致力于新一代视频编码标准的制定,后来推出了包括H.264在内的一系列标准。

      

     

      ▲ 压缩率对比

      

     

      ▲ 视频编码标准的发展关系

      大家特别注意一下上图里面的HEVC,也就是现在风头正盛的H.265。

      

     

      作为一种新编码标准,相比H.264有极大的性能提升,目前已经成为最新视频编码系统的标配。

      

     

      最后,我再说说封装。

      5.2 视频数据的封装

      对于任何一部视频来说,只有图像,没有声音,肯定是不行的。所以,视频编码后,加上音频编码,要一起进行封装。

      封装:就是封装格式,简单来说,就是将已经编码压缩好的视频轨和音频轨按照一定的格式放到一个文件中。再通俗点,视频轨相当于饭,而音频轨相当于菜,封装格式就是一个饭盒,用来盛放饭菜的容器。

      目前主要的视频容器有如下:MPG、VOB、MP4、3GP、ASF、RMVB、WMV、MOV、Divx、MKV、FLV、TS/PS等。

      封装之后的视频,就可以传输了,你也可以通过视频播放器进行解码观看。

     

    转载自:

    http://www.easemob.com/news/3614

    展开全文
  • 最简单的基于FFMPEG的视频编码器(修正)

    千次下载 热门讨论 2014-06-08 16:43:09
    因此特地分离出了一个简单的视频编码器供学习之用。 该视频编码器实现了YUV420P像素数据编码为H.264码流 尽管该视频编码器的代码十分简单,但是几乎包含了使用FFMPEG编码一个视频所有必备的API。十分适合FFmpeg的...
  • 本例程通过调用RK3399的MPP库,实现从USB摄像头采集视频数据,并编码输出为h264帧的视频文件。
  • H.264视频编码基本知识

    千次阅读 2020-09-22 20:45:22
    一、视频编码技术的发展历程  视频编码技术基本是由ISO/IEC制定的MPEG-x和ITU-T制定的H.26x两大系列视频编码国际标准的推出。从H.261视频编码建议,到 H.262/3、MPEG-1/2/4等都有一个共同的不断追求的目标,即在尽...

    一、视频编码技术的发展历程
       视频编码技术基本是由ISO/IEC制定的MPEG-x和ITU-T制定的H.26x两大系列视频编码国际标准的推出。从H.261视频编码建议,到 H.262/3、MPEG-1/2/4等都有一个共同的不断追求的目标,即在尽可能低的码率(或存储容量)下获得尽可能好的图像质量。而且,随着市场对图像传输需求的增加,如何适应不同信道传输特性的问题也日益显现出来。于是IEO/IEC和ITU-T两大国际标准化组织联手制定了视频新标准H.264来 解决这些问题。
        H.261是最早出现的视频编码建议,目的是规范ISDN网上的会议电视和可视电话应用中的视频编码技术。它采用的算法结合了可减少时间冗余的帧间预测和可减少空间冗余的DCT变换的混合编码方法。和ISDN信道相匹配,其输出码率是p×64kbit/s。p取值较小时,只能传清晰度不太高的图像,适合于面对面的电视电话;p取值较大时(如 p>6),可以传输清晰度较好的会议电视图像。H.263 建议的是低码率图像压缩标准,在技术上是H.261的改进和扩充,支持码率小于64kbit/s的应用。但实质上H.263以及后来的H.263+和 H.263++已发展成支持全码率应用的建议,从它支持众多的图像格式这一点就可看出,如Sub-QCIF、QCIF、CIF、4CIF甚至16CIF等格式。
        MPEG-1标准的码率为1.2Mbit/s左右,可提供30帧CIF(352×288)质量的图像,是为CD-ROM光盘的视频存储和播放所制定的。MPEG-l标准视频编码部分的基本算法与H.261/H.263相似,也采用运动补偿的帧间预测、二维DCT、VLC游程编码等措施。此外还引入了帧内帧(I)、预测帧(P)、双向预测帧(B)和直流帧(D)等概念,进一步提高了编码效率。在MPEG-1的基础上,MPEG-2标准在提高图像分辨率、兼容数字电视等方面做了一些改进,例如它的运动矢量的精度为半像素;在编码运算中(如运动估计和DCT)区分"帧"和"场";引入了编码的可分级性技术,如空间可分级性、时间可分级性和信噪比可分级性等。近年推出的MPEG-4标准引入了基于视听对象(AVO:Audio-Visual Object)的编码,大大提高了视频通信的交互能力和编码效率。 MPEG-4中还采用了一些新的技术,如形状编码、自适应DCT、任意形状视频对象编码等。但是MPEG-4的基本视频编码器还是属于和H.263相似的 一类混合编码器。
        总之,H.261建议是视频编码的经典之作,H.263是其发展,并将逐步在实际上取而代之,主要应用于通信方面,但 H.263众多的选项往往令使用者无所适从。MPEG系列标准从针对存储媒体的应用发展到适应传输媒体的应用,其核心视频编码的基本框架是和H.261一致的,其中引人注目的MPEG-4的"基于对象的编码"部分由于尚有技术障碍,目前还难以普遍应用。因此,在此基础上发展起来的新的视频编码建议 H.264克服了两者的弱点,在混合编码的框架下引入了新的编码方式,提高了编码效率,面向实际应用。同时,它是两大国际标准化组织的共同制定的,其应用前景应是不言而喻的。

    二、H.264介绍
      H.264是ITU-T的VCEG(视频编码专家组)和ISO/IEC的 MPEG(活动图像编码专家组)的联合视频组(JVT:joint video team)开发的一个新的数字视频编码标准,它既是ITU-T的H.264,又是ISO/IEC的MPEG-4的第10 部分。1998年1月份开始草案征集,1999年9月,完成第一个草案,2001年5月制定了其测试模式TML-8,2002年6月的 JVT第5次会议通过了H.264的FCD板。2003年3月正式发布。
        H.264和以前的标准一样,也是DPCM加变换编码的混合编码 模式。但它采用"回归基本"的简洁设计,不用众多的选项,获得比H.263++好得多的压缩性能;加强了对各种信道的适应能力,采用"网络友好"的结构和语法,有利于对误码和丢包的处理;应用目标范围较宽,以满足不同速率、不同解析度以及不同传输(存储)场合的需求;它的基本系统是开放的,使用无需版权。
        在技术上,H.264标准中有多个闪光之处,如统一的VLC符号编码,高精度、多模式的位移估计,基于4×4块的整数变换、分层的编码语法等。这些措施使得 H.264算法具有很的高编码效率,在相同的重建图像质量下,能够比H.263节约50%左右的码率。H.264的码流结构网络适应性强,增加了差错恢复能力,能够很好地适应IP和无线网络的应用。

    三、H.264的技术亮点
    1、分层设计
      H.264的算法在概念上可以分为两层:视频编码层(VCL:Video Coding Layer)负责高效的视频内容表示,网络提取层(NAL:Network Abstraction Layer)负责以网络所要求的恰当的方式对数据进行打包和传送。在VCL和NAL之间定义了一个基于分组方式的接口,打包和相应的信令属于NAL的一部分。这样,高编码效率和网络友好性的任务分别由VCL和NAL来完成。
        VCL层包括基于块的运动补偿混合编码和一些新特性。与前面的视频编码标准一样,H.264没有把前处理和后处理等功能包括在草案中,这样可以增加标准的灵活性。
        NAL负责使用下层网络的分段格式来封装数据,包括组帧、逻辑信道的信令、定时信息的利用或序列结束信号等。例如,NAL支持视频在电路交换信道上的传输 格式,支持视频在Internet上利用RTP/UDP/IP传输的格式。NAL包括自己的头部信息、段结构信息和实际载荷信息,即上层的VCL数 据。(如果采用数据分割技术,数据可能由几个部分组成)。


    2、高精度、多模式运动估计
       H.264支持1/4或1/8像素精度的运动矢量。在1/4像素精度时可使用6抽头滤波器来减少高频噪声,对于1/8像素精度的运动矢量,可使用更为复杂的8抽头的滤波器。在进行运动估计时,编码器还可选择"增强"内插滤波器来提高预测的效果。
        在H.264的运动预测中,一个宏块(MB)可以按图2被分为不同的子块,形成7种不同模式的块尺寸。这种多模式的灵活和细致的划分,更切合图像中实际运动 物体的形状,大大提高了运动估计的精确程度。在这种方式下,在每个宏块中可以包含有1、2、4、8或16个运动矢量。
        在H.264中,允许编码器使用多于一帧的先前帧用于运动估计,这就是所谓的多帧参考技术。例如2帧或3帧刚刚编码好的参考帧,编码器将选择对每个目标宏块能给出更好的预测帧,并为每一宏块指示是哪一帧被用于预测。


    3、4×4块的整数变换
        H.264与先前的标准相似,对残差采用基于块的变换编码,但变换是整数操作而不是实数运算,其过程和DCT基本相似。这种方法的优点在于:在编码器中和解码器中允许精度相同的变换和反变换,便于使用简单的定点运算方式。也就是说,这里没有"反变换误差"。 变换的单位是4×4块,而不是以往常用的8×8块。由于用于变换块的尺寸缩小,运动物体的划分更精确,这样,不但变换计算量比较小,而且在运动物体边缘处 的衔接误差也大为减小。为了使小尺寸块的变换方式对图像中较大面积的平滑区域不产生块之间的灰度差异,可对帧内宏块亮度数据的16个4×4块的DC系数 (每个小块一个,共16个)进行第二次4×4块的变换,对色度数据的4个4×4块的DC系数(每个小块一个,共4个)进行2×2块的变换。
        H.264为了提高码率控制的能力,量化步长的变化的幅度控制在12.5%左右,而不是以不变的增幅变化。变换系数幅度的归一化被放在反量化过程中处理以减少计算的复杂性。为了强调彩色的逼真性,对色度系数采用了较小量化步长。


    4、统一的VLC
        H.264中熵编码有两种方法,一种是对所有的待编码的符号采用统一的VLC(UVLC :Universal VLC),另一种是采用内容自适应的二进制算术编码(CABAC:Context-Adaptive Binary Arithmetic Coding)。CABAC是可选项,其编码性能比UVLC稍好,但计算复杂度也高。UVLC使用一个长度无限的码字集,设计结构非常有规则,用相同的码 表可以对不同的对象进行编码。这种方法很容易产生一个码字,而解码器也很容易地识别码字的前缀,UVLC在发生比特错误时能快速获得重同步。


    5、帧内预测
        在先前的H.26x系列和MPEG-x系列标准中,都是采用的帧间预测的方式。在H.264中,当编码 Intra图像时可用帧内预测。对于每个4×4块(除了边缘块特别处置以外),每个像素都可用17个最接近的先前已编码的像素的不同加权和(有的权值可为 0)来预测,即此像素所在块的左上角的17个像素。显然,这种帧内预测不是在时间上,而是在空间域上进行的预测编码算法,可以除去相邻块之间的空间冗余 度,取得更为有效的压缩。
        
    6、面向IP和无线环境
        H.264 草案中包含了用于差错消除的工具,便于压缩视频在误码、丢包多发环境中传输,如移动信道或IP信道中传输的健壮性。
        为 了抵御传输差错,H.264视频流中的时间同步可以通过采用帧内图像刷新来完成,空间同步由条结构编码(slice structured coding)来支持。同时为了便于误码以后的再同步,在一幅图像的视频数据中还提供了一定的重同步点。另外,帧内宏块刷新和多参考宏块允许编码器在决定 宏块模式的时候不仅可以考虑编码效率,还可以考虑传输信道的特性。
        除了利用量化步长的改变来适应信道码率外,在H.264中,还常利用数 据分割的方法来应对信道码率的变化。从总体上说,数据分割的概念就是在编码器中生成具有不同优先级的视频数据以支持网络中的服务质量QoS。例如采用基于 语法的数据分割(syntax-based data partitioning)方法,将每帧数据的按其重要性分为几部分,这样允许在缓冲区溢出时丢弃不太重要的信息。还可以采用类似的时间数据分割 (temporal data partitioning)方法,通过在P帧和B帧中使用多个参考帧来完成。
        在无线通信的应用中,我们可 以通过改变每一帧的量化精度或空间/时间分辨率来支持无线信道的大比特率变化。可是,在多播的情况下,要求编码器对变化的各种比特率进行响应是不可能的。 因此,不同于MPEG-4中采用的精细分级编码FGS(Fine Granular Scalability)的方法(效率比较低),H.264采用流切换的SP帧来代替分级编码。

    四、H.264的性能比较
        TML- 8为H.264的测试模式,用它来对H.264的视频编码效率进行比较和测试。测试结果所提供的PSNR已清楚地表明,相对于MPEG- 4(ASP:Advanced Simple Profile)和H.263++(HLP:High Latency Profile)的性能,H.264的结果具有明显的优越性。
        H.264的PSNR比MPEG-4(ASP)和H.263++(HLP) 明显要好,在6种速率的对比测试中,H.264的PSNR比MPEG-4(ASP)平均要高2dB,比H.263(HLP)平均要高3dB。6个测试速率 及其相关的条件分别为:32 kbit/s速率、10f/s帧率和QCIF格式;64 kbit/s速率、15f/s帧率和QCIF格式;128kbit/s速率、15f/s帧率和CIF格式;256kbit/s速率、15f/s帧率和 QCIF格式;512 kbit/s速率、30f/s帧率和CIF格式;1024 kbit/s速率、30f/s帧率和CIF格式。

    展开全文
  • 【视频】视频文件格式和视频编码

    千次阅读 2019-06-14 18:06:47
    首先大家要清楚两个概念,视频文件格式和视频编码方式。 平常我们所看的视频文件后缀都有诸如mp4、rmvb、mkv、avi等等,这些是文件的扩展名,也就是视频文件格式,这些格式又叫做容器格式(container form...

    我们经常在电脑、电视、手机或者其他终端产品看视频,我们对视频有个大概了解,比如清晰度、大小、视频类型等,但是对于视频内部结构我们应该一无所知,现在我们来一步一步解开视频的神秘面纱。
    首先大家要清楚两个概念,视频文件格式和视频编码方式。
    平常我们所看的视频文件后缀都有诸如mp4、rmvb、mkv、avi等等,这些是文件的扩展名,也就是视频文件格式,这些格式又叫做容器格式(container format),顾名思义就是用来装东西的,你可以把它想象成为一个便当盒,或者野餐篮。通常我们从网上下载的电影都是有声音的,所以容器格式中一般至少包含有两个数据流(stream)(有时还包括字幕),一个视频流,一个音频流,就好比是一个便当盒里装着的配菜和米饭。以下是通过ffmpeg获取的视频详细信息:

    {'streams': [{'index': 0, 'codec_name': 'h264', 'codec_long_name': 'H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10', 'profile': 'High', 'codec_type': 'video', 'codec_time_base': '9007/531600', 'codec_tag_string': 'avc1', 'codec_tag': '0x31637661', 'width': 540, 'height': 960, 'coded_width': 544, 'coded_height': 960, 'has_b_frames': 1, 'pix_fmt': 'yuv420p', 'level': 31, 'color_range': 'tv', 'color_space': 'bt709', 'color_transfer': 'bt709', 'color_primaries': 'bt709', 'chroma_location': 'left', 'refs': 1, 'is_avc': 'true', 'nal_length_size': '4', 'r_frame_rate': '30000/1001', 'avg_frame_rate': '265800/9007', 'time_base': '1/600', 'start_pts': 0, 'start_time': '0.000000', 'duration_ts': 9007, 'duration': '15.011667', 'bit_rate': '1219445', 'bits_per_raw_sample': '8', 'nb_frames': '443', 'disposition': {'default': 1, 'dub': 0, 'original': 0, 'comment': 0, 'lyrics': 0, 'karaoke': 0, 'forced': 0, 'hearing_impaired': 0, 'visual_impaired': 0, 'clean_effects': 0, 'attached_pic': 0, 'timed_thumbnails': 0}, 'tags': {'creation_time': '2019-06-12T09:23:40.000000Z', 'language': 'und', 'handler_name': 'Core Media Video'}}, {'index': 1, 'codec_name': 'aac', 'codec_long_name': 'AAC (Advanced Audio Coding)', 'profile': 'LC', 'codec_type': 'audio', 'codec_time_base': '1/44100', 'codec_tag_string': 'mp4a', 'codec_tag': '0x6134706d', 'sample_fmt': 'fltp', 'sample_rate': '44100', 'channels': 1, 'channel_layout': 'mono', 'bits_per_sample': 0, 'r_frame_rate': '0/0', 'avg_frame_rate': '0/0', 'time_base': '1/44100', 'start_pts': 0, 'start_time': '0.000000', 'duration_ts': 661427, 'duration': '14.998345', 'bit_rate': '48711', 'max_bit_rate': '48000', 'nb_frames': '648', 'disposition': {'default': 1, 'dub': 0, 'original': 0, 'comment': 0, 'lyrics': 0, 'karaoke': 0, 'forced': 0, 'hearing_impaired': 0, 'visual_impaired': 0, 'clean_effects': 0, 'attached_pic': 0, 'timed_thumbnails': 0}, 'tags': {'creation_time': '2019-06-12T09:23:40.000000Z', 'language': 'und', 'handler_name': 'Core Media Audio'}}], 'format': {'filename': 'F:\\PythonProject\\PythonLession\\RecordModule\\ffmpeg\\1.mp4', 'nb_streams': 2, 'nb_programs': 0, 'format_name': 'mov,mp4,m4a,3gp,3g2,mj2', 'format_long_name': 'QuickTime / MOV', 'start_time': '0.000000', 'duration': '15.011678', 'size': '2390314', 'bit_rate': '1273842', 'probe_score': 100, 'tags': {'major_brand': 'mp42', 'minor_version': '1', 'compatible_brands': 'mp41mp42isom', 'creation_time': '2019-06-12T09:23:40.000000Z'}}} 


    视频编码方式则是指容器格式中视频流数据的压缩编码方式,而视频数据采用了何种编码方式是无法单单从文件格式的后缀上看出来的。就是说你无法从一个盖着盖子的便当盒外面看出里面装了什么配菜。
    H.264就是视频编码,aaC、mp3等是音频编码,我们把用H.264视频编码和MP3音频编码按照mkv的封装标准封装起来,这样我们看到的就是mkv格式的视频文件。封装格式并不影响画质,它只负责把内部的视频轨和音频轨集成在一起,并不对内容造成影响。不过值得一提的是,封装标准虽然不影响视频质量,不过不同的封装标准依然有不同的特点,比较早的avi格式只能封装一条视频和一条音频,而且不支持流媒体播放,未来avi格式可能会慢慢被淘汰。而MP4是MPEG官方指定的封装格式,可以封装多种多条编码的视频和音频,也可以封装字幕。而mkv除了具有mp4的特点外,还支持流媒体播放功能,因此受到市场的广泛欢迎。
    视频编码可以说是一个视频文件的核心所在,而这也是我们大多数用户通常并不关注的。视频编码主流上有两个标准,一个是H.26X系列。另一个是MPEG系列。H.26X包括H.261、H.262、H.263、H.264、H.265。H.261、H.262主要用在视频会议和视频电话中,而H.264编码则是被广泛使用在视频的录制与压缩。H.265则是在H.264的基础上进一步提升了图像质量,并且在压缩率上是H.264的两倍,被普遍认为是下一代编码标准。


    而MPEG则包括MPEG-1第二部分、MPEG-2第二部分、MPEG-4第二部分、MPEG-4第十部分,MPEG-1第二部分主要用在VCD,而MPEG-2第二部分一般在数字电视和广播系统中应用的比较多,MPEG-4第二部分则可以用在网络传输上,在压缩性能上也比前两代高。这里面MPEG-4第十部分和H.264的标准十分接近,两个编码组织甚至合作,为这个标准命名为H.264/AVC,这也是目前主流的编码格式,我们所看的很多视频都是采用H.264编码。


    如果你想播放一个视频文件,第一步你的播放器(不论是软件的还是硬件的)要能够解析相应的容器格式,这一步也叫做解复用(demux),第二步你的播放器要能够解码其中所包含视频流和音频流。这样影片才能播放出来。
    打个不太恰当的比方,播放器好比你雇用的一个试菜员,由他来品尝便当(视频文件),然后告诉你便当里装了什么东西。
    所以试菜员首先要懂得如何打开便当盒,还要知道吃的出来便当盒里装了什么配菜,这样你才能获得你想要的信息。


    编码器MPEG-4、MPEG-4/AVC、H.264之间的联系与区别 
    在视频编解码技术定义方面有两大标准机构。一个是国际电信联盟 (ITU) 致力于电信应用,已经开发了用于低比特率视频电话的 H.26x 标准,其中包括 H.261、H.262、H.263 与 H.264;另一个是国际标准化组织 (ISO) 主要针对消费类应用,已经针对运动图像压缩定义了 MPEG 标准。MPEG 标准包括 MPEG1、MPEG2 与 MPEG4。
    1、关于MPEG4
    MPEG1、MPEG2技术当初制定时,它们定位的标准均为高层媒体表示与结构,但随着计算机软件及网络技术的快速发展,MPEG1、MPEG2技术的弊端就显示出来了:交互性及灵活性较低,压缩的多媒体文件体积过于庞大,难以实现网络的实时传播。
    而MPEG4技术的标准是对运动图像中的内容进行编码,其具体的编码对象就是图像中的音频和视频,术语称为"AV对象",高效率地编码、组织、存储、传输AV对象是MPEG4标准的基本内容。在视频编码方面,MPEG4支持对自然和合成的视觉对象的编码。(合成的视觉对象包括2D、3D动画和人面部表情动画等)。在音频编码上,MPEG4可以在一组编码工具支持下,对语音、音乐等自然声音对象和具有回响、空间方位感的合成声音对象进行音频编码。 MPEG4的技术规范如下表所示:
    2、关于H.264
    以制订国际通讯标准为主的国际电信联盟ITU-T,在完成H.263(针对视频会议之用的串流视频标准)后,与ISO/IEC机构连手合作,由两机构共同成立一个名为JVT(Joint Video Team)的联合工作小组,以MPEG-4技术为基础进行更适于视频会议(Video Conference)运用的衍生发展,联合制订了一个新的标准。
    这个标准,ITU-T方面称之为H.264。但ISO/IEC的则将这个新标准归纳于MPEG系列,称为MPEG-4 Part 10(第10部分,也叫ISO/IEC 14496-10),MPEG-4 Part 10的另一个代称是MPEG-4 AVC(Advanced Video Coding,先进视频编码)。
    从这里可以看出,所谓的H.264其实与MPEG-4/AVC就是同一回事,即H.264=MPEG-4 Part 10=ISO/IEC 14496-10=MPEG-4 AVC。
    3、H.264与MPEG-4的区别
    既然有了MPEG-4 Part 2,为什么ISO/IEC还要与ITU-T一起H.264呢?H.264到底与MPEG-4有何差别?或者说MPEG-4 Part 10与MPEG-4 Part 2有何差别?
    虽然MPEG-4已针对Internet传送而设计,提供比MPEG-2更高的视频压缩效率,更灵活与弹性变化的播放取样率,但就视频会议而言总希望有更进一步的压缩,所以才需要出现了H.264。
    H.264最具价值的部分无疑是更高的数据压缩比。在同等的图像质量条件下,H.264的数据压缩比能比当前DVD系统中使用的MPEG-2高2-3倍,比MPEG-4高1.5-2倍。
    正因为如此,经过H.264压缩的视频数据,在网络传输过程中所需要的带宽更少,也更加经济。在 MPEG-2需要6Mbps的传输速率匹配时,H.264只需要1Mbps-2Mbps的传输速率。
    要知道H.264好在哪?我们可以将MPEG-2、MPEG-4(MPEG-4 Part 2)、H.264(MPEG-4 AVC、MPEG-4 Part10)三者进行分辨率表现与所用带宽的比较,
    无论MPEG-2、MPEG-4、H.264,三者都能达1920×1080i(非交错)的高清晰度(HighDefinition,HD)、24fps(每秒更新24张画面)的影像画质,但传输带宽上MPEG-2需要12~20Mbps,相对的H.264只要7~8Mbps,而MPEG-4则介于两者间,更直接地说,若把MPEG-2的带宽用作基准的100%,MPEG-4要达相同效果只需要60%带宽,H.264更是低至40%,约为原MPEG-2的1/2~1/3。

    展开全文
  • 最简单的视频编码器示例

    千次下载 热门讨论 2014-12-21 21:46:43
    该解决方案包含了几个常见的编码器的使用...simplest_vpx_encoder:最简单的基于libvpx的视频编码器 simplest_x264_encoder:最简单的基于libx264的视频编码器 simplest_x265_encoder:最简单的基于libx265的视频编码
  • 本文由华为云资深产品专家左雯在LiveVideoStackCon2020线上峰会的演讲内容整理而成,本文从视频编解码技术的趋势、难点和挑战以及华为云视频产品的编解码关键技术实践与成果两方...

    本文由华为云资深产品专家左雯在LiveVideoStackCon2020线上峰会的演讲内容整理而成,本文从视频编解码技术的趋势、难点和挑战以及华为云视频产品的编解码关键技术实践与成果两方面介绍下一代视频编解码技术优化应用的探索。

    文 / 左雯

    整理 / LiveVideoStack

    大家下午好,非常荣幸参加LiveVideoStack首届音视频线上峰会。先自我介绍一下,我叫左雯,来自华为云,是云视频服务的产品经理。在做产品经理之前,一直从事视频编解码算法研究优化、转码产品架构设计等工作!今天参加这个专题目的有两个,一个是想通过这次峰会,向大家分享一下华为云视频对下一代视频编码技术发展的想法和应用成果,另一个是像各位专家学习,相互交流,促进下一代视频编码技术的快速发展,推动云视频这个行业的发展。

    今天分享的主题包括三个部分,首先是华为云视频对视频行业发展趋势的一些看法,以及这些趋势对下一代视频编码技术提出的挑战;其次从标准角度来介绍下一代视频编码技术以及华为相关工作;最后从云视频应用角度来具体介绍华为云在视频编码技术上的一些实践和探索。希望能给大家带来干货和技术启发。

    1

    视频行业趋势

    5G、云、AI已经成为ICT行业甚至是整个社会的发展趋势,促使整个视频行业需求和技术不断演进,推动整个视频行业不断升级。如图所示,视频生命周期的每个环节都在更新升级,包括视频生产、视频处理、视频传输和视频消费。

    • 视频生产:多源数据的采集,包括超高清、VR、自由视角、3D建模和视频渲染。

    • 视频处理:基于AI让视频处理更实时、智能和准确,包括各种编码方式。

    • 视频传输:超低时延的传输,云边协同等等。

    • 视频消费:智能终端的深度结合提供视频服务的最佳体验。

    视频行业本质是对媒体数据的处理,背后是算力、存储、网络、AI的支撑,同时视频行业又推动着5G、云、AI的不断前行,相辅相成!

    视频演进带动了算力、存储、带宽需求的大幅增长。简单来看,视频分辨率越来越高,从高清到超高清再到8K/VR。算力增长 24倍,存储增长12倍,带宽增长 20倍。这些需求通过云,也只有通过云才能很好的满足,实现高质量的视频体验。云原生视频是行业趋势,视频将成为云的基础服务能力。

    前面说的是行业的整体趋势,下面说一下具体场景。互联网视频发展已经历两个阶段,第一阶段从08年到13年,以长视频VOD、点播观看为热点;第二阶段,从13年到19年,也就是去年,其实还在延续,以直播、短视频为热点;第三阶段,也就是下一代会以什么为热点?我们认为因为5G、云、AI的推动,视频将进入实时互动、VR/AR时代。

    互动视频方式从IM向实时音视频过渡。直播连麦,主播PK,直播带货,视频分发方式的升级,百毫秒级超低时延实时互动视频成为趋势。

    VR/AR,360度视角带来沉浸式体验革命,用户从看视频向玩视频过渡,体验提升的同时,视频传输能力也从兆级向十兆甚至百兆级单流带宽提升。

    RTC实时音视频会成为5G时代基础设施的核心控制点,RTC应用很广泛,它的市场年增长率是30%左右,而且这项技术不仅能赋能直播、游戏等泛娱乐行业,更能在在线医疗、教育、金融等大视频行业渗透。现有的实时音视频市场正处于爆发期,玩家很多,但由于它是非云厂商,难以持续发展。原因之一是它的技术门槛比较高,特别是像音视频编码或者整个RTC网络的构建,另一点是目前各家均采用私有协议的方式接入,各家互通、客户的自由切换都比较困难。在RTC视频业务产品上,我们认为音视频编码处理将是各家构建技术壁垒和性能差异化竞争力的关键之一。

    另外一个应用场景就是Cloud VR,我们一直认为VR是5G技术发展下的关键场景。VR发展是一波三折的,但在目前来看,之前碰到的一些问题正在逐渐改善。从终端的角度来看,之前的终端很贵,但是目前千元终端机已经逐渐来临,而且体验也会越来越好。除了设备终端,VR此前还面临内容缺失的重大问题,而VR直播很大程度上缓解了内容缺乏的问题。

    虽然困境在逐步改善,但VR目前还面临着新的问题。互联网VR业务很难形成商业闭环,主要原因在于VR业务带来了收入增加,但与此同时带宽增加更多,VR追求的高质量体验需要通过更高带宽来实现,高带宽势必会带来高成本,而高成本就会导致商业无法闭环。在这样的前提下,很多玩家都会通过降低体验来开展VR,比如说内容采用4K以下,码率采用10兆以下,终端采用卡片机来体验VR,虽然这样可以将VR的业务打通,但体验效果是很差的,也导致付费用户非常少,产业发展比较缓慢。所以在VR的发展上,我们认为通过视频压缩编码以降低带宽是关键,是可以帮助实现商业闭环的一个环节。

    从前面讲述视频行业趋势不难看出,用户体验升级、视频产业升级、商业成本等驱动着视频全方位升级,分辨率从高清到8K,帧频从30帧到120帧,视场角从不到90度到360度,SDR到HDR等,这些参数升级推动视频压缩编码技术不断演进,追求压缩比是永恒不变的!

    另外,前车之鉴,HEVC/H.265,其实是很优秀的编码技术,但因为前期不友好的专利政策,市场占有率一直不高13%。还好目前有所好转!整个行业急需压缩比更高、生态更完善、专利政策更合理的视频编码技术。

    提升压缩比有两条路线,这也是各厂商正在做的。

    • 标准技术路线,作为基础内核,H.266、AV1、AVS3、AI编码

    • 非标技术路线,依赖基础标准,结合人眼感知特征,感知编码、内容编码、ROI编码

    2

    下一代视频编码技术

    下面将从这两个角度来介绍华为云视频在下一代视频编码技术上的一些工作。这些技术得力于华为2012媒体技术院全力支持。

    2.1 下一代视频编码标准技术

    从上图看出,下一代的视频编码标准大概分为三个阵营或者三个类型:

    • 国际标准:由MPEG、VVC联合推动的像VVC/H.266还有EVC;

    • 国内标准:国内标准组织正在推出或已经推出的AVS3的phase1、AVS3的phase2,两者主要差别在于AVS3的第1阶段标准瞄准H.266,第二阶段的标准则是瞄准未来,可能会加入一些智能编码的技术;

    • 谷歌牵头的AOM联盟推出的AV1,是一个开源技术。

    下一代的视频编码技术仍是采用传统的演进思路——在经典架构上做模块增强。在H.266CFP时,华为联合其他几家公司提了P41提案,在PSNR和MOS评估方面都是排名第一,这个提案也是后面基础。华为在VVC里的核心专利数量已属于第一阵营,这是一个了不起的成就,也说明了国内的视频压缩编码基础研究实际上不弱于欧美传统的公司。

    上图是以VVC为例,对其新增的增强工具进行盘点。纵轴是每个工具的压缩收益,横轴是每个工具编解码复杂度,编码复杂度的权重可能会更高一点。VVC在块划分、帧内预测、帧间预测、熵编码、变换量化等多个模块上进行了增强,其中主要的增强是帧内、帧间预测、块划分、滤波的增强以及机器学习工具演进带来的收益。VVC暂时没有引入深度学习这一类编码工具。

    图中还有三个用红圈标出来的工具,这是VVC中公认trade off比较好的三个工具点。蓝色的是ALF,这是大家比较熟悉的自适应环路滤波,其实它在H.265的时代就已经有了, H.266将它引入标准中;绿色的是仿射运动预测,这个主要是由华为提出的;橙色的是量化技术。

    EVC标准的提出某种程度是因为H.265/H.266的专利政策不友好,有可能导致H.266的落地都比较困难。MPEG希望能通过一个新的专利友好的标准来推动落地,同时也促使改变H.266、H.265的专利授权政策。EVC由华为、三星、高通等共同提出推动,华为在这里面加入了很多技术。在标准立项时期望它比H.265的压缩性能提升20%,实测在4K娱乐视频上相比H.265压缩效率提升达30%以上,目前已经进入了最终的标准投票阶段。

    AVS3是国内提出的标准,它的phase1是瞄准H.266标准的,并且在2019年3月份就已经制定完成率先推出,在2019年9月份,华为海思也同步推出了AVS3 8K的解码芯片,AVS3相对H.265性能提升了20%以上,并且针对娱乐视频和监控视频做了很多针对性的设计,性能上还可进一步提升。

    H.266实际已经基本定稿,它的压缩效率在4K视频场景下相较于H.265能提升40%左右,其解码复杂度相对提升60%,目前看最大的问题还是专利政策不够透明,而且专利费可能比较高,推广节奏可能相对比较慢。

    EVC也基本定稿,而且其压缩效率也能提升30%左右,解码复杂度相对H.265增加60%。其专利收费可能相对比较低,第二是他的专利收费比较透明和明确,目前主要依靠三星、华为、高通来做产业的推动和生态的构建。

    AVS3在2019年3月份推出,在性能上还是有保证的,压缩效率能够提升25%,复杂度增加相对较低,其专利收费也是比较低的,正通过互联网等行业做产业的推动和生态构建,目前实际上有很多联盟和和公司正在做推动,我们也希望AVS3尽快落地。

    表格中没有列举AV1的数据,这主要是因为它和其他三个标准不太一样,AV1开源软件实际上是瞄准商用化去做的,大家也比较清楚其压缩效率和解码复杂度。AV1有个很大的优势就是没有专利费,这是AOM联盟的承诺。在产业落地方面AV1做的很好,生态构建走的较前。

    2.2 AI编码

    下一代视频编码标准还有一个趋势就是AI编码,这一块实际上从HEVC、VVC标准制定就有提出,但因为考虑计算复杂度以及AI硬件普适性,都暂时搁置了。但这是个技术趋势。

    AI编码包括两个演进思路,第一个是全新架构,类似于图像编码,实际上AI的图像编码已经取得了不错的成效,谷歌牵头的AI图像编码技术都已经得到了很好地应用,但针对视频中的应用还在探索过程中。所谓的全新架构,就是不用传统架构,视频进入黑盒后会得出一个压缩过的视频,这个视频可能没有块划分,也没有各种其他的方式,它的压缩效率会非常高,但这一切还处于研究的过程中。

    另外一个思路是基于经典架构,对每个架构里的模块做增强。例如针对块划分、变换、矢量量化、帧内预测做不同的AI网络适应和增强。实际上华为也在做这方面的研究,未来可能会提出一些AI编码方面的论文或提案。并且我们认为AI编码的这两种思路,最终将是融合设计的过程,不会呈相互独立的状态。

    3

    华为云视频应用和实践

    3.1 云视频简介

    上面简单介绍了下一代视频编码标准技术,下面介绍一下从实际商用及非标角度,介绍一下华为云视频在视频编码技术上的应用和实践。

    首先介绍一下华为云视频,华为云视频是从2017年开始构建的,目前包括两大类业务,一种是比较传统的直播、点播、媒体处理以及监控业务,另一种是整个行业正在新晋的服务,比如RTC、VR/AR以及超高清制播。华为云视频面向很多的场景,例如娱乐直播、短视频、在线教育、企业直播、4K直播、4K制作等等,我们致力于帮助行业客户、伙伴、开发者、ISV快速上线应用,并帮他们构建差异化的竞争力,实现商业闭环。这里需要重点提一下RTC,RTC是华为云视频对下一代视频的理解并作出了实际的推动,针对RTC,我们重点构建超低时延、音视频质量等差异化竞争力。

    3.2 视频编码技术

    3.2.1 视频编码框架

    结合今天的主题,下面重点讲解华为云视频在视频编码技术上的一些工作。这些技术得力于华为2012媒体技术院全力支持。上图比较直观地表达了这点。图中黄框表示了编码器的内核,所有的华为云视频编码的编码能力、编码服务都是基于编码内核。编码内核采用了一个标准的编码器,类似于前面提到的H.264、H.265、AVS3、H.266或者EVC这一类,在这个编码内核的基础上,我们面向不同的场景做了不同的编码技术的优化和实践。比如 面向RTC实时音视频场景,采用低时延编码技术;面向VR场景,采用FOV tile编码;面向多视角场景,采用空间云边协同编码;面向监控场景,采用智能语义编码;面向直播、点播,采用感知编码和画质增强等;另外,华为云视频借助鲲鹏、昇腾两大专有硬件,加速视频编转码效率。鲲鹏主要面向CPU这类计算,昇腾主要面向AI方面的加速。

    3.2.2 标准编码内核

    接下来分别介绍一下视频编码的技术,第一是编码内核,华为云在商用编码器上面也有很多的技术积累。比如说近几年在MSU的大赛上,HW265编码器连续两年获得多项测评的第1名,今年我们也会向MSU推出新的编码器。

    3.2.3 高清低码

    第二个技术是高清低码,高清低码目前在各个厂商或者商业领域里是大家比较默认的技术,也就是说在基于标准编码内核的基础上,能降低码率的同时保证主观质量没有下降,但实际上高清低码理论可行性是现有视频编码是基于香农定理,它的率失真模型都是连续的,但是人眼视觉模型是阶梯性非连续的,在这个阶梯上存在一个降码率的空间。

    高清低码一般情况下包括三个模块,第一是基于人眼JND模型,就是说如何找出JND,第二是基于JND去做感知编码,第三就是通过感知编码来控制标准编码内核输出,在主观质量不变的情况下大幅降低码率。华为云视频在这方面做了很多的工作,目前针对不同的应用场景,能达到30~50%的码率降低。

    高清低码技术现在也走到了一个瓶颈期,原有高清低码的考虑仅来源于编码与传输信道,随着AI技术的发展,是否还有进一步的发展空间?华为提出了一种新的思路:在原有的率失真模型上,加入一个接收端(解码端)复杂度的因子,也就是在发送端主动退化,把它通过时域或者空域的下采样变成一个相对数据量比较小的视频,这样做使得编码的码率相对更低,达到有效降低码率的目标。通过一些辅助信息再加上低码率、低分辨率的编码码流,在接收端通过AI技术进行超分、插帧或者是增强,将视频还原,如此整个链路上传输的码率会大幅下降,我们初步试验发现至少能降低60%以上的码率。

    3.2.4 超低时延编码

    RTC场景是我们面向下一代视频产业重点打造的服务能力,RTC场景下主要是超低时延的编码,我们提出了一个综合的超低时延方案,比如编码和渲染联合优化、编码的内核以及分层编码和信源信道协同等技术手段,面向不同的实时场景会做不同的组合或者应用,我们初步试验发现在1080P这种场景下进行编码和解码,整体的时延能达到十毫秒级别。

    3.2.5 VR FOV编码

    面向VR场景,特别是面向360°场景,我们提出来FOV TWS的编码技术。这个技术原理是将高分辨率的全景视频分片,多个FOV的小分片加上一路4K的背景流,这样4K终端的播放器就能通过相应的视角FOV分片和4K全景背景流实现8K VR全景视频播放,同时还能保证MTP,不会出现眩晕感。该技术已经写入OMAF的标准。整体体验上也得到了用户的认可。

    3.2.6 智能语义编码

    当面向监控场景的时候,我们提出了一种智能语义的编码,主要通过背景建模加上视频内容和运动分析,再加上端侧的一些实时超分、插帧来构建智能语义编码的方案。监控场景的画面往往有很多细节,各种机器分析的识别率不能降低,如果压的太狠,识别率可能就会下降。初步的原型结果显示能做到在人和机器的识别率都不降低的前提下,达到70%以上的码率节省。

    3.2.7 空间视频云边协同编码

    另外一个技术是空间视频编码,所谓空间视频就是是自由视角或多视角,这也是以后技术发展的一个方向。人们不再满足于一个固定视角视频观看,希望多视点或者自由视角的观看视频。在空间视频的编解码当中,我们提出一种云边协同编码,通过这种编码可以在边缘非常短的时间内按需动态的生成任意时刻的切换流,大幅减少一般方案中切换流的码率,初步试验发现至少能降低60%左右的带宽成本。

    3.2.8 AI视频增强

    视频质量、视频码率是视频产业最关键的两个指标。前面讲的技术,不管是标准的技术、还是非标的技术,都是追求在同等画质的前提下,如何降低码率。

    硬币的另一面则是,在同等码率下,如何追求视频主观体验质量。我们在这方面也做了很多尝试,根据不同的场景特征,基于云端、终端AI能力,从分辨率、帧频动态范围等维度对视频进行修复、增强和重建。并且考虑真实场景中往往是包含多种混合失真的等因素,我们提出一种面向混合失真的多任务视频增强框架,能够很好地适应不同场景和不同需求。

    以上内容介绍的是华为云视频在视频编解码上的一些实践和探索,希望能带给大家一些干货或者启发。谢谢大家!

    LiveVideoStackCon 2020 北京

    2020年10月31日-11月1日

    点击【阅读原文】了解更多详细信息

    展开全文
  • 新一代视频编码标准:VVC、AVS3

    千次阅读 2020-12-29 22:20:32
    本文来自北京大学信息科学技术学院教授马思伟在LiveVideoStackCon 2018大会上的演讲,详细介绍了最新一代VVC和AVS3视频编码标准进展,包括关键技术特色以及未来的应用展望。 文 / 马思伟 整理 / ...
  • 视频编码中编码块划分

    万次阅读 2019-05-10 10:56:37
    现在的视频编码都是基于块进行的,将一帧视频划分成不同的块,然后对每个块再分别进行编码处理。由于原始YUV格式视频有3个通道,一个亮度通道Y,两个色度通道UV,这里块的划分以亮度通道Y为例,色度通道类似。 在H....
  • Android音视频编码基础一

    万次阅读 2019-01-17 19:10:30
    视频编码基础知识 关于视频常听码率,帧率,分辨率,它们分别是什么呢? 码率: 码率或码流率也就码流(Data Rate)是指视频文件在单位时间内使用的数据流量,通俗一点的理解就是取样率,是视频编码中画面质量控制中...
  • 深度学习赋能视频编码

    千次阅读 2019-07-18 19:59:15
    深度学习赋予了诸如计算机视觉等领域新的研究契机,其应用也获得了视频编码领域的诸多关注。在LiveVideoStack线上分享中北京大学信息技术学院 助理研究员王苫社详细介...
  • 常见视频编码格式解析

    万次阅读 多人点赞 2017-12-15 14:12:56
    常见视频编码格式解析 常见视频编码格式解析 1.MPEG2-TS编码技术 1.1.MPEG-TS简介 1.2.基本概念及TS流概述 1.3.基本流程 1.4.TS流传输包(简称TS包)结构分析 1.4.1.TS包包头 1.4.2.TS包净荷部分 1.5.PS节目流 ...
  • 视频编码格式】全面解析

    万次阅读 多人点赞 2017-11-04 12:46:34
    视频编码格式全面解析 我们在详解各种主流的视频格式之前,先抛开各种视频格式的定义,来讨论这样一件事情:你觉得目前的视频格式编码混乱吗?相信这个问题问出来,许多、、不同知识层次的人有不同的思考,但是答案...
  • 视频编码:H.264编码

    千次阅读 2020-02-22 17:28:37
    本文参考毕厚杰老师《新一代视频压缩编码标准-----H.264/AVC》一书以及雷霄骅博客《视音频编解码技术零基础学习方法》整理。 1.概念部分: H.264编码视频编解码技术有两套标准,国际电联(ITU-T)的标准H.261、H....
  • MPEG2视频编码简介

    千次阅读 2019-04-20 17:42:17
    MPEG-2视频编码简介 MPEG-2是一组用于视音频压缩编码及其数据流封装的国际标准。它定义了编解码技术及数据流的传输协议;制定了MPEG-2解码器之间的共同标准。编码是MPEG-2标准的核心内容之一,其涉及到MPEG-2视频流...
  • 视频编码综述

    千次阅读 2017-12-14 14:24:54
    伴随着用户对高清视频的需求量的增加,使得视频多媒体的视频数据量也在不断加大。如果未经压缩,这些视频很难应用于实际的存储和传输。视频压缩解码技术可以帮助有效地去除视频数据中冗余信息,实现视频数据在互联网...
  • 常用视频编码格式

    千次阅读 2021-03-02 19:07:07
    1. 常见视频编码格式 1. 常见视频编码格式 1.1. 视频 1.1.1. MPEG-2 1.1.2. H264(AVC)/H265(HEVC) 1.1.3. VP8/VP9 1.1.4. WebM 1.1.5. AV1 1.1.6. H266(VVC) 1.1.7. EVC 1.1.8. LCEVC 1.2. 音频 1.2.1. Vorbis...
  • 作者:张清,腾讯多媒体实验室高级研究员。作为一款实时音视频通信产品,腾讯会议里面有海量的音视频数据需要进行实时传输,比如我们的摄像头画面,屏幕分享的数据等。这些数据量非常庞大,通常需要经...
  • 视频编码基本原理

    千次阅读 2018-05-21 21:25:56
    视频编码基本原理(1) 视频信号的冗余信息以记录数字视频的YUV分量格式为例,YUV分别代表亮度与两个色差信号。例如对于现有的PAL制电视系统,其亮度信号采样频率为13.5MHz;色度信号的频带通常为亮度信号的一半或...
  • 视频编码格式对比

    千次阅读 2019-05-27 22:35:09
    视频编码 时间上的冗余信息 在视讯资料中,相邻的帧(frame)与帧之间通常有很强的关连性,这样的关连性即为时间上的冗余信息。即帧间压缩。 空间上的冗余信息 在同一张帧之中,相邻的像素之 间通常有很强...
  • 走进音视频的世界——音视频编码

    万次阅读 2020-09-19 00:00:45
    但是,本篇文章讨论的主角是音视频编码,常见的视频编码有h264、h265、vp9、mpeg4、mjpeg、wmv3、av1(Alliance for Open Media Video 1,由开放媒体联盟推出,对标h265,旨在成为下一代视频编码技术标准),常见的...
  • 颜色空间和视频编码

    千次阅读 2017-07-08 15:48:05
    由于现存视频编码标准(如MPEG-1、MPEG-2、H.261、H.263)都只能在帧级水平处理视频信号,因此不能对视频码流中的单个物体进行独立的编码、解码和操纵等,而MPEG-4却能支持对数字音频、...
  • 音视频基础知识---视频编码格式

    千次阅读 2019-04-25 23:15:17
    音视频基础知识---视频编码格式 音视频基础知识---音频编码格式 音视频基础知识---像素格式RGB 音视频基础知识---像素格式YUV 1.为什么要进行视频编码 未经编码的数据数字视频的数据量很大 ...
  • Android视频编码的坑

    千次阅读 2017-09-12 10:02:41
    视频开发是一个核心方向,那Camera开发一直是Android的一个核心,笔者做过Camera HAL,也做过Camera App, 同时也开发过Camera 滤镜,这个过程中也遇到和解决过很多棘手的问题,也一直想总结一篇,看到这篇后感觉总结...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 283,884
精华内容 113,553
关键字:

视频编码

友情链接: 1.rar