要了解什么是视频编解码,首先我们需要了解什么是视频。

视频归根结底是一系列连续的图像帧,当这些图像以一定速率播放时,人眼就会判断其是连续活动的,这样就构成了视频。

那为什么要进行视频编解码呢,因为视频信号数字化后数据量巨大,如果以这样的数据量进行网络传输或者存储时,会占用大量的带宽和存储空间,造成浪费。已当前主流的 1080P 分辨率,一秒 30 帧的视频举例

1080P 图像的高和宽分别为 1080 和 1920,每个像素用三原色 RGB 表示(即每个像素三个字节),因此每帧图像的数据量为 1080*1920*3*8=49766400,每秒 30 帧,则需要乘以 30,49766400*30 = 1,492,992,000bps。因此视频编解码技术因此而诞生。

为什么视频可以压缩呢,我们分两个方面看这个问题:

1 在一副图像中,往往有相近的颜色区域,这样就蕴含了大量的冗余信息,可以基于变化编码和量化编码进行冗余信息处理,达到压缩的可能。

2 两幅图像之间,肯定也存在大量相同以及相似的部分,因此产生了运动补偿及运动估计来描述运动矢量来进行图像间冗余信息压缩的可能。

基于图像内预测编码和图像间预测编码原理,诞生了众多的视频编解码。

H.26X 系列,从 H.261,H.263,到当前主流的 H.264,及 H.265,当前最新制定标准的 H.266;H.26X 系列的发展宗旨为使用技术优化压缩数据量不能够达到更好的视频质量;像 H.265 旨仅需原先的一半带宽即可播放相同质量的视频。它与 H.264 有着相类似的算法架构,并同时对一些相关技术加以改进而大幅提高视频质量。

Mpeg 系列,Mpeg1,Mpeg2,Mpeg4(Mpeg4 之后与 H.264 融合);

VP 系列,VP8,VP9;VP 系列是 Google 自研并开源的编解码系列,Google 创建 VP 系列编解码的原因也是 H.264 需要专利费用,即如果 WebRTC 使用 H.264,则需要按浏览器支付相关的专利费用(当然由于 H.264 广泛支持性,主要原因还是 cisco 开源了 OpenH64),VP8 即对标 H.264,除了在 WebRTC 领域,其知名度和支持度则相对有限;VP9 则对标 H.265,VP9 的目标之一是在保证相同质量的情况下相对于 VP8 可以减少 50%左右的码率,换句话说,相同的码率,VP9 能比 VP8 画质有非常明显的提高;

国产系列,AVS 标准,AVS1.0,AVS2.0;AVS 是我国具备自主知识产权的第二代信源编码标准。AVS2.0,属于与 H.265 和 VP9 同级的新一代标准;虽然 AVS 的使用和知名度貌似不高,但说明我国已经注意到这个领域并发力;

SVAC 标准,我国一个应用于视频监控领域的编解码,特点在于加密认证高安全:规定了加密和认证接口及数据格式,保证数据的安全性、完整性、非否认性;感兴趣区域(ROI)编码:图像分为若干个感兴趣区域和一个背景区域,在重点监控区域保证实时视频信息,帧率较高,节省非感兴趣区域的开销; 视频信息嵌入,可将声音识别特征参数、特殊事件、时间等信息都可嵌入编码里,在不解开视频的前提下,可针对性的提取、快速检索、分类查询;可伸缩性视频解码(SVC):对视频数据分层编码,满足不同传输网络宽带和数据存储环境的需求,普通编码程序传输有主码流、子码流,占用带宽较大,SVAC 传输只有一类码流,对码流分层就可获得不同分辨率的图片信息。

WebRTC 最初由 Google 提出,主要是基于浏览器的 RTC 通讯,故此叫做 WebRTC;初期几大浏览器在 WebRTC 及其视频编解码支持的力度上也是不一的,像 Mozilla 阵营的 Chrome,FireFox,Opera 初期也不一样,Chrome 初期只支持 VP 系列,原因上面介绍过,后续逐渐延伸到 H.264,由于原有的 RTC 通讯领域大都使用 H.264 编解码,因此 H.264 的支持对于跨领域 RTC 互通提供了很大便利,我觉得也一定程度上加速了 WebRTC 的发展,比如浏览器和手机同时加入到视频会议;或者浏览器跟当前的 SIP 终端点点通话,由于 H.264 的支持,大大减少了转码的要求,做视频的转码是非常消耗性能的,或者使用专用硬件实现。

当然后续越来越多厂家加入了 WebRTC 领域,像 Agora 声网的 RTC 系统,已经超过了 WebRTC,像他的各种硬件芯片平台的 SDK 适配,SD-RTN 系统(优先路径选择确保高的传输质量,毕竟通讯不是纯终端侧的功能,网络对通讯质量,视频或者音频的影响也是 juda),优异的弱网对抗算法,可以抵御 70%的视频丢包确保通话流畅。

当前随着物联网的发展,除了人们的通话通讯,音视频会议之外,RTC 越来越广泛的应用各个领域;像安防监控,智能硬件终端,视频处理所处的硬件设备越来越小型甚至微型化,原有的基于软件进行编解码,无论从内存,CPU,性能等资源占用方面,都显示出很大劣势;众多厂家也意识到这个情况,因此越来越多的专业芯片干专业事情的趋势越发明显。像监控领域,华为海思 ARM+专业视频处理单元,占据了国内视频 70%以上的市场;NVIDIA 推出了 Jeston 系列芯片,应对边缘计算场景,ARM+GPU 的处理方式更通用,同时由于 ARM 的低功耗,可以使得边缘侧设备具备视频处理,机器视觉处理,AI 分析能力,大大丰富了智能物联网的应用。

由于这两年的疫情,在线教育,直播的发展,Web 实时通讯带来了非常大的发展机会,其商业化成功也为技术发展持续注入了活力;伴随着 5G 的火热,VR/AR、自动驾驶等新应用场景的出现,必将为 WebRTC 技术带来新的动力,催动着基于互联网的实时音视频通信技术的发展。

【经验分享】RTC 技术系列之视频编解码的更多相关文章

  1. 视频编解码的理论和实践2:Ffmpeg视频编解码

    近几年,视频编解码技术在理论及应用方面都取得了重大的进展,越来越多的人想要了解编解码技术.因此,网易云信研发工程师为大家进行了归纳梳理,从理论及实践两个方面简单介绍视频编解码技术. 相关阅读推荐 &l ...

  2. [转帖]AVS音视频编解码技术了解

    AVS高清立体视频编码器 电视技术在经历了从黑白到彩色.从模拟到数字的技术变革之后正在酝酿另一场技术革命,从单纯观看二维场景的平面电视跨越到展现三维场景的立体电视3DTV.3DTV系统的核心问题之一是 ...

  3. 【H.264/AVC视频编解码技术具体解释】十三、熵编码算法(4):H.264使用CAVLC解析宏块的残差数据

    <H.264/AVC视频编解码技术具体解释>视频教程已经在"CSDN学院"上线,视频中详述了H.264的背景.标准协议和实现,并通过一个实战project的形式对H.2 ...

  4. 音视频编解码技术(一):MPEG-4/H.264 AVC 编解码标准

    一.H264 概述 H.264,通常也被称之为H.264/AVC(或者H.264/MPEG-4 AVC或MPEG-4/H.264 AVC) 1. H.264视频编解码的意义 H.264的出现就是为了创 ...

  5. 集显也能硬件编码:Intel SDK && 各种音视频编解码学习详解

    http://blog.sina.com.cn/s/blog_4155bb1d0100soq9.html INTEL MEDIA SDK是INTEL推出的基于其内建显示核心的编解码技术,我们在播放高清 ...

  6. 【miscellaneous】各种音视频编解码学习详解

    编解码学习笔记(一):基本概念 媒体业务是网络的主要业务之间.尤其移动互联网业务的兴起,在运营商和应用开发商中,媒体业务份量极重,其中媒体的编解码服务涉及需求分析.应用开发.释放license收费等等 ...

  7. 【FFMPEG】各种音视频编解码学习详解 h264 ,mpeg4 ,aac 等所有音视频格式

    目录(?)[-] 编解码学习笔记二codec类型 编解码学习笔记三Mpeg系列Mpeg 1和Mpeg 2 编解码学习笔记四Mpeg系列Mpeg 4 编解码学习笔记五Mpeg系列AAC音频 编解码学习笔 ...

  8. 视频编解码学习之路(H264)

    学习视频编解码技术很难吗?视频编解码技术的未来是什么? 明了的说,无论是软件还是硬件设计,视频编解码技术有很多难点,都需要很长一段时间积累才行. 从一开始接触MPEG-2到最新的H.264标准,可算走 ...

  9. 几个平台环境里视频编解码和图像scale的硬件加速的方法

    记录一下遇到几个平台里的视频编解码和图像scale的硬件加速的方法 1,intel平台当包含GEN系列的集成GPU时,可用libva实现视频codec.颜色空间转换和图像scale的硬件加速,具体可使 ...

  10. 121-基于TI DSP TMS320DM8148的全高清1080P 60fs的视频编解码系统 机器人主板

    基于TI DSP TMS320DM8148的全高清1080P 60fs的视频编解码系统 一.板卡概述 本系统基于最先进的DSP技术,构建一个全高清的视频编解码系统,采用TI的芯片.借助TI的DaVin ...

随机推荐

  1. Linux 第二节(基本命令)

    www.linuxcool.com 一.ifconfig 1.Ip 地址 2.MAC地址 3.收到的数据包(RX) 4.发送的数据包(Tx) 二.uname uname -a    //查看系统内核及 ...

  2. docker命令、简单创建镜像、dockerfile实战、Dockerfile语法、镜像分层、Volume介绍

    docker的常用命令: docker pull 获取imagedocker build 创建imagedocker images 列出imagedocker run 运行containerdocke ...

  3. python 时间戳转日期 不自动补零 without zero-padding

    1. 时间戳转日期 代码 import time timestamp = 1568171336 time_format = "%Y-%m-%d %H:%M:%S" time_loc ...

  4. 微信小程序开发遇到的注意事项及奇怪事

    1.wx.uploadFile上传文件时只支持本地文件(相册或者拍摄的),网络文件不可以,可以将网络文件用wx.downloadFile下载到本地在下载,下载以后会返回一个微信临时地址然后再下载 2. ...

  5. 查看Linux 日志

    # 直接定位到第100行 less +100g xx.log   # 定位到最后一行 less +GG xx.log   # 定位到第100个字节的位置 less +100P xx.log   # 直 ...

  6. homework1(1)

    来自桂林理工大学物联网工程2019届的April 没参与过什么比赛项目但是课程学习能力还行,主要是快速学习之后很快就会忘记,接下来应该好好的总结并熟练记住运用知识完成对生活等各种的实践. 对课程的希望 ...

  7. Think in UNL其一

    书中提到世界本质上为离散的,由一个一个对象组成.其实这个观点并不难理解,因为在公元前5世纪芝诺就有了类似的思考,著名的阿基里斯悖论早已经被推翻,现代物理学已经证明了时间和空间不是可以无限分割的,所以总 ...

  8. 20181224《网络攻防技术》Exp 8 Web综合

    20181224<网络攻防技术>Exp 8 Web综合 目录 20181224<网络攻防技术>Exp 8 Web综合 相关知识点总结 web前端 web后端 数据库编程 实验内 ...

  9. C#发送字符串转字节含空格与0x需删去

    主要作用:清除发送字符串转字节中的空格和16进制前缀0x, 字节转换按两位字符转换为一个字节,多余一位按一位字符转换一个字节 //清除空格和16进制前缀发送 String sendstr;// = n ...

  10. P3366 模板最小生成树

    题目描述 如题,给出一个无向图,求出最小生成树,如果该图不连通,则输出orz. 输入格式 第一行包含两个整数N,M,表示该图共有N个结点和M条无向边. 接下来M行每行包含三个整数 Xi,Yi,Zi,表 ...