5、视频压缩编码的基本概念

Wesley13
• 阅读 515

视频压缩的目标是在尽可能保证视觉效果的前提下减少视频数据率。视频压缩比一般指压缩后的数据量与压缩前的数据量之比。由于视频是连续的静态图像,因此其压缩编码算法与静态图像的压缩编码算法有某些共同之处,但是运动的视频还有其自身的特性,因此在压缩时还应考虑其运动特性才能达到高压缩的目标。在视频压缩中常需用到以下的一些基本概念:
一、有损和无损压缩:在视频压缩中有损(Lossy)和无损(Lossless)的概念与静态图像中基本类似。无损压缩也即压缩前和解压缩后的数据完全一致。多数的无损压缩都采用RLE行程编码算法。有损压缩意味着解压缩后的数据与压缩前的数据不一致。在压缩的过程中要丢失一些人眼和人耳所不敏感的图像或音频信息,而且丢失的信息不可恢复。几乎所有高压缩的算法都采用有损压缩,这样才能达到低数据率的目标。丢失的数据率与压缩比有关,压缩比越小,丢失的数据越多,解压缩后的效果一般越差。此外,某些有损压缩算法采用多次重复压缩的方式,这样还会引起额外的数据丢失。
二、帧内和帧间压缩:帧内(Intraframe)压缩也称为空间压缩(Spatial compression)。当压缩一帧图像时,仅考虑本帧的数据而不考虑相邻帧之间的冗余信息,这实际上与静态图像压缩类似。帧内一般采用有损压缩算法,由于帧内压缩时各个帧之间没有相互关系,所以压缩后的视频数据仍可以以帧为单位进行编辑。帧内压缩一般达不到很高的压缩。
采用帧间(Interframe)压缩是基于许多视频或动画的连续前后两帧具有很大的相关性,或者说前后两帧信息变化很小的特点。也即连续的视频其相邻帧之间具有冗余信息,根据这一特性,压缩相邻帧之间的冗余量就可以进一步提高压缩量,减小压缩比。帧间压缩也称为时间压缩(Temporal compression),它通过比较时间轴上不同帧之间的数据进行压缩。帧间压缩一般是无损的。帧差值(Frame differencing)算法是一种典型的时间压缩法,它通过比较本帧与相邻帧之间的差异,仅记录本帧与其相邻帧的差值,这样可以大大减少数据量。
三、对称和不对称编码:对称性(symmetric)是压缩编码的一个关键特征。对称意味着压缩和解压缩占用相同的计算处理能力和时间,对称算法适合于实时压缩和传送视频,如视频会议应用就以采用对称的压缩编码算法为好。而在电子出版和其它多媒体应用中,一般是把视频预先压缩处理好,尔后再播放,因此可以采用不对称(asymmetric)编码。不对称或非对称意味着压缩时需要花费大量的处理能力和时间,而解压缩时则能较好地实时回放,也即以不同的速度进行压缩和解压缩。一般地说,压缩一段视频的时间比回放(解压缩)该视频的时间要多得多。例如,压缩一段三分钟的视频片断可能需要10多分钟的时间,而该片断实时回放时间只有三分钟。
目前有多种视频压缩编码方法,但其中最有代表性的是MPEG数字视频格式和AVI数字视频格式。
MPEG数字视频
MPEG(Moving Picture Experts Group)是1988年成立的一个专家组。这个专家组在1991年制定了一个MPEG-1国际标准,其标准名称为“动态图像和伴音的编码--用于速率小于每秒约1.5兆比特的数字存储媒体(Coding of moving picture and associated audio--for digital storage media at up to about 1.5Mbit / s)”。这里的数字存储媒体指一般的数字存储设备如CD-ROM、硬盘和可擦写光盘等。MPEG的最大压缩可达约1:200,其目标是要把目前的广播视频信号压缩到能够记录在CD光盘上并能够用单速的光盘驱动器来播放,并具有VHS的显示质量和高保真立体伴音效果。MPEG采用的编码算法简称为MPEG算法,用该算法压缩的数据称为MPEG数据,由该数据产生的文件称MPEG文件,它以MPG为文件后缀。
MPEG数字视频格式 MPEG采用有损和不对称的压缩编码算法。MPEG标准详细地说明了视频图像的压缩和解压缩方法,以及播放MPEG数据所需的图像与声音的同步。MPEG标准包括三个部分:MPEG视频(Video)、MPEG音频(Audio)和MPEG系统(System)。
一、MPEG视频:MPEG视频是标准的核心。MPEG-1是为了适应在数字存储媒体如CD-ROM上有效地存取视频图像而制定的标准。CD-ROM驱动器的数据传输率不会低于150KB/s=1.2Mb/s(单倍速),而容量不会低于650MB,MPEG-1算法就是针对这个速率开发的。MPEG-1的的视窗尺寸为CCIR 601定义分辨率的二分之一,可达到30fps或25fps的帧率,它采用多种压缩算法,压缩后的数据率为1.2-3MB/s。因此可以实时播放存储在光盘上的数字视频图像。
二、MPEG音频:MPEG-1标准支持高压缩的音频数据流,其采样率为44、22和11KHz,16位量化。还原后声音质量接近于原来的声音质量,如CD-DA的音质。CA-DA音质的音频数据率为每分钟约10兆字节(10MB/min),等价于每秒约1.4兆位(1.4Mb/s),这是单速CD-ROM的整个带宽!采用MPEG-1音频压缩算法可以把单声道位速率降到0.192Mb/s,甚至更低,而声音的质量又无明显的下降。MPEG-1支持两个声道,可设置成单声道(mono)、双声道(dual)、立体声(stereo)等。 目前在网络上广泛使用的MP3音频文件,就是利用 MPEG-3的音频技术, 实现了1:10 甚至 1:12 的压缩率,而且失真很小。
三、MPEG系统:这部分是有关同步和多路复合技术,用来把数字电视图像和伴音复合成单一的、位速率为1.5Mb/s的数据位流。MPEG的数据位流分成内外两层,外层为系统层,内层为压缩层。系统层提供在一个系统中使用MPEG数据位流所必须的功能,包括定时、复合和分离视频图像和伴音,以及在播放期间图像和伴音的同步。压缩层包含压缩的视频和伴音数据位流。 在多种视频压缩算法中,MPEG是可提供低数据率和高质量的最好算法。MPEG-1已经为广大用户所采用,如VCD或小影碟的发行等。其播放质量可以达到家用录像机的水平。采用不同的编码参数,得到的MPEG-1数据的质量也是不同的。同时,MPEG专家组在1993年又制定了MPEG-2标准,DVD就是采用的这种标准。
MPEG-1数据的回放 由于MPEG采用非对称的压缩算法,在PC机上用软件来进行MPEG压缩编码是很费机时的,即使编码几个视频片断也要花费好几小时。因此,一般用专门的MPEG编码卡,用硬件实现MPEG压缩编码。要回放压缩的MPEG数据,首先要对其进行解码,然后把解压缩后的大量数字视频数据送往显示缓存进行屏幕显示。因此,影响回放效果的因素主要有两点:一是解码的速率,二是显示的速率。解码的速度比编码的速度快得多,因此在不同的MPC硬件基础上可以采用软件解码和硬件解码两种方式。
一、MPEG-1软件解码:软件解码即采用软件算法的方式读取MPEG压缩数据,对其进行解压缩并把解压缩后的大量数字视频数据送往显示缓存进行屏幕显示。所以MPEG解压缩软件也称为MPEG播放软件。采用软件解码的优点是它无需额外硬件的支持,在MPC机上就可以播放MPEG数字视频,使用方便;其缺点是解码的速度和解码后的视频质量完全取决于MPC的处理能力。 如果MPC的处理速度和显示速度不够快,采用软件解码播放MPEG数据时可能出现帧率不够、图像和伴音不同步或者图像的“马赛克”现象(图像呈块状)。因此,在一定的硬件条件下,尽可能地利用MPC的系统资源是达到较好回放效果的关键。
二、MPEG-1硬解压卡:MPEG硬解压卡(简称解压卡)是专用于MPEG数据的解压和回放的硬件设备,解压卡的核心是一块解压芯片。采用硬件解压的优点是其解压和回放的速率不受MPC主机速率的影响,达到全屏实时回放,播放VCD时其稳定性和色彩效果也较好。但其缺点是需额外的硬件设备,并且其安装调试也较麻烦。因此,硬件解压卡一般用于处理速度不够高的MPC中。
解压卡需插入MPC主机的扩展槽中,把端口与MPC相应的端口相连,设置好系统参数,利用解压卡自带的播放软件就可以进行MPEG-1的回放了。
虽然MPEG-1具有标准化、高压缩、视频质量好的特点,但是它生成的MPEG文件需要用专门的解压软件或硬件来回放,解压软件的回放效果取决于系统的处理能力,而解压硬件又需额外的设备,不利于用户在自己开发的软件中应用。此外,为了获得高压缩,MPEG采用帧间压缩算法,由于帧间压缩时每一帧仅存储与前一帧信息的差值,对帧进行编辑时就非常困难。MPEG文件只能用解压软件或硬件解压后回放,而不能用绝大多数的视频编辑软件进行编辑。因此,除了MPEG数字视频以外,目前较为流行的还有AVI数字视频。

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Stella981 Stella981
3年前
Linux下V4L2捕捉画面+H264压缩视频+帧缓冲显示视频————结合三个部分工作
前面三篇文章分别介绍了视频捕获、h264视频压缩、帧缓冲显示的实现,现在将他们结合起来摄像头采集到的数据,需要交给视频压缩线程、显示线程使用,那么我采用的方法是使用队列及链表来实现:1.摄像头采集到数据后,分别放入两个处理线程队列中,并将相关信息放入链表中2.两个线程处理完成数据后,调用回调函数,从链表里找到对应的节点,然后释
Stella981 Stella981
3年前
IBC+Palette 实现屏幕内容编码优化
在屏幕内容编码中采用IBCPalette编码技术可显著提升其压缩效率。本文主要介绍了腾讯屏幕内容编码优化技术探索与实践:加入IBCPalette编码工具集,并针对屏幕内容优化ME模块等。本文由腾讯音视频实验室视频编码技术负责人,王诗涛在LiveVideoStack线上分享中的演讲内容整理而成。文/王诗涛整理/LiveVideo
Wesley13 Wesley13
3年前
H264码流处理详解
 码流(DataRate)是指视频文件在单位时间内使用的数据流量,也叫码率,是视频编码中画面质量控制中最重要的部分。同样分辨率下,视频文件的码流越大,压缩比就越小,画面质量就越好。一、简介H.264的主要目标:1.高的视频压缩比2.良好的网络亲和性解决方案:(1)VCLvideocodinglayer视频编码层。VCL:核心算法引擎,块
可莉 可莉
3年前
10.2【前端开发】图片文件格式:常见的图片格式对比有何优劣以及如何使用Google的webp格式?
!(https://oscimg.oschina.net/oscnet/8ad1f7aca1ec422cb409d3cb3e47047e.gif)1、JPEG:①支持摄影图像或写实图像的高级压缩,并且可利用压缩比例控制图像文件大小;②有损压缩会使图像数据质量下降,③JPG不适合具有大块颜色相近的
为什么mysql不推荐使用雪花ID作为主键
作者:毛辰飞背景在mysql中设计表的时候,mysql官方推荐不要使用uuid或者不连续不重复的雪花id(long形且唯一),而是推荐连续自增的主键id,官方的推荐是auto_increment,那么为什么不建议采用uuid,使用uuid究
H5直播技术起航
视频格式就是通常所说的.mp4,.flv,.ogv,.webm等。简单来说,它其实就是一个盒子,用来将实际的视频流以一定的顺序放入,确保播放的有序和完整性。视频压缩格式和视频格式具体的区别就是,它是将原始的视频码流变为可用的数字编码。因为,原始的视频流非常大,打个比方就是,你直接使用手机录音,你会发现你几分钟的音频会比市面上出现的MP3音频大小大很多,这就是压缩格式起的主要作用。
如何修改 SDK 默认的图片与视频压缩配置?
在使用Android/iOS客户端IMLib/IMKitSDK发送图片与小视频时,SDK有以下默认行为:图片:SDK会以原图30%质量生成符合标准大小要求的大图后再上传和发送。压缩后最长边不超过240px。缩略图用于在聊天界面中展示。图片:发送消息时如未选