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

Wesley13
• 阅读 157

视频压缩的目标是在尽可能保证视觉效果的前提下减少视频数据率。视频压缩比一般指压缩后的数据量与压缩前的数据量之比。由于视频是连续的静态图像,因此其压缩编码算法与静态图像的压缩编码算法有某些共同之处,但是运动的视频还有其自身的特性,因此在压缩时还应考虑其运动特性才能达到高压缩的目标。在视频压缩中常需用到以下的一些基本概念:
一、有损和无损压缩:在视频压缩中有损(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
1年前
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:SQL Mode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。 全局s
Wesley13 Wesley13
1年前
74KB图片也高清,谷歌用神经网络打造图像压缩新算法
##### 萧箫 发自 凹非寺 量子位 报道 | 公众号 QbitAI 还在为图像加载犯愁吗? 最新的好消息是,谷歌团队采用了一种GANs与基于神经网络的压缩算法相结合的图像压缩方式**HiFiC**,在码率高度压缩的情况下,仍能对图像高保真还原。 > GAN(Generative Adversarial Networks,生成式对抗网络)顾名思义
Easter79 Easter79
1年前
Twitter的分布式自增ID算法snowflake (Java版)
概述 == 分布式系统中,有一些需要使用全局唯一ID的场景,这种时候为了防止ID冲突可以使用36位的UUID,但是UUID有一些缺点,首先他相对比较长,另外UUID一般是无序的。 有些时候我们希望能使用一种简单一些的ID,并且希望ID能够按照时间有序生成。 而twitter的snowflake解决了这种需求,最初Twitter把存储系统从MySQL迁移
Stella981 Stella981
1年前
Linux下V4L2捕捉画面+H264压缩视频+帧缓冲显示视频————结合三个部分工作
前面三篇文章分别介绍了视频捕获、h264视频压缩、帧缓冲显示的实现, 现在将他们结合起来 摄像头采集到的数据, 需要交给视频压缩线程、显示线程使用, 那么我采用的方法是使用队列及链表来实现: 1. 摄像头采集到数据后, 分别放入两个处理线程队列中, 并将相关信息放入链表中 2. 两个线程处理完成数据后, 调用回调函数, 从链表里找到对应的节点,然后释
Stella981 Stella981
1年前
IBC+Palette 实现屏幕内容编码优化
> 在屏幕内容编码中采用IBC+Palette编码技术可显著提升其压缩效率。本文主要介绍了腾讯屏幕内容编码优化技术探索与实践:加入IBC+Palette编码工具集,并针对屏幕内容优化ME模块等。本文由腾讯音视频实验室视频编码技术负责人,王诗涛在LiveVideoStack线上分享中的演讲内容整理而成。 文 / 王诗涛 整理 / LiveVideo
Wesley13 Wesley13
1年前
H264码流处理详解
 码流(Data Rate)是指视频文件在单位时间内使用的数据流量,也叫码率,是视频编码中画面质量控制中最重要的部分。同样分辨率下,视频文件的码流越大,压缩比就越小,画面质量就越好。 一、简介 H.264的主要目标:1.高的视频压缩比 2.良好的网络亲和性 解决方案: (1)VCL video coding layer 视频编码层。VCL:核心算法引擎,块
Stella981 Stella981
1年前
Serverless 实现视频压缩与格式转换
在 Serverless 架构的应用案例中,有这样一个非常实在的应用:视频的处理。 腾讯云的函数计算平台对这个领域的描述: > 视频应用、社交应用等场景下,用户上传的图片、音视频的总量大、频率高,对处理系统的实时性和并发能力都有较高的要求。例如:对于用户上传的视频短片,我们可以使用多个云函数对其分别处理,对应不同的清晰度(1080p、720p等),以满足
可莉 可莉
1年前
10.2【前端开发】图片文件格式:常见的图片格式对比有何优劣以及如何使用Google的webp格式?
![](https://oscimg.oschina.net/oscnet/8ad1f7ac-a1ec-422c-b409-d3cb3e47047e.gif) > **1、JPEG:** > ①支持摄影图像或写实图像的高级压缩,并且可利用压缩比例控制图像文件大小; > ②有损压缩会使图像数据质量下降, > ③JPG不适合具有大块颜色相近的
helloworld_34035044 helloworld_34035044
4个月前
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。 uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid() 或 uuid(sep)参数说明:sep 布尔值,生成的uuid中是否包含分隔符'',缺省为
为什么mysql不推荐使用雪花ID作为主键
作者:毛辰飞 # 背景 在mysql中设计表的时候,mysql官方推荐不要使用uuid或者不连续不重复的雪花id(long形且唯一),而是推荐连续自增的主键id,官方的推荐是auto_increment,那么为什么不建议采用uuid,使用uuid究