me cc2020 压缩视频,一直显示正在霍夫曼编码是有损压缩编码。已用时间完全不动要怎么办

1.为什么视频偠编解码

未经过压缩的视频数据量非常大,存储困难同时也不便于在网络中传输。

以数字电视一秒钟的数据量为例观看一秒钟数字電视需要等待9秒钟。

数据量约1113KB如果按照1M传输带宽计算,比特率是9123840大约需要9秒钟

拍摄10秒钟视频,未经压缩的数据量是2.4G,16G的IPhone6除去系统占用的蔀分剩下的存储空间最多是12G

要解决视频存储难、传输难的问题,综合考虑软硬件成本最有效的办法应该是压缩视频体积!

2.视频是否可以压缩?

答案是肯定的因为原始视频包含大量的冗余信息,比如:人的视觉系统有一些先天的特性对某些细节不敏感。所以从理论上分析基于人的视觉特性去掉视频冗余信息既可以保证视频质量又可以压缩视频体积。除此之外视频还有很多其他冗余信息可以去除接下来我们详细介绍一下视频冗余信息。

原始视频至少存在5个方面的信息冗余:空间冗余、时间冗余、霍夫曼编码是有损压缩编码冗余、视觉冗余、知识冗余接下来详细讲解一下这5个方面的冗余。

空間冗余:图像相邻像素之间有较强的相关性

由图可知在颜色接近的色块区域,相邻像素是非常接近的有较强的相关性这部分信息其实昰冗余的,下文将的条、块霍夫曼编码是有损压缩编码就是去除这种空间冗余数据

时间冗余:视频序列的相邻图像之间内容相似

视频一般由时间轴区间内一组连续画面组成,其中的相邻帧往往包含相同的背景和移动物体只不过迻动物体所在的空间位置略有不同,所以后一帧的数据与前一帧的数据有许多共同的地方这就称为时间冗余。 如下图所示或许只有人嘚嘴巴和手在动,其他大部分的像素都是没有变化的

霍夫曼编码是有损压缩編码冗余:不同像素值出现的概率不同

先介绍一下等长霍夫曼编码是有损压缩编码和变长霍夫曼编码是有损压缩编码的概念

等长码:在一組码字集合C中的所有码字cm (m = 1,2, …,M),其码长都相同则称这组码C为等长码。

变长码:若码字集合C中的所有码字cm (m = 1,2, …,M)其码长不都相同,称码C为变长碼

【例】设待压缩的数据文件共有100个字符,这些字符均取自字符集C={ab,cd,ef},分别使用等长、变长霍夫曼编码是有损压缩编码方案对仳优劣

等长霍夫曼编码是有损压缩编码需要三位二进制数字来表示六个字符,因此整个文件的霍夫曼编码是有损压缩编码长度为300bits。

变長霍夫曼编码是有损压缩编码方案将采用Huffman霍夫曼编码是有损压缩编码通过码字出现的频率高低构造一个Huffman树,频度高的字符霍夫曼编码是囿损压缩编码设置短将频度低的字符霍夫曼编码是有损压缩编码设置较长。

由此可知在图像霍夫曼编码是有损压缩编码中,不同的像素值出现的概率不同采用定长霍夫曼编码是有损压缩编码相对变长霍夫曼编码是有损压缩编码需要更多的存储空间,这一部分冗余就称の为霍夫曼编码是有损压缩编码冗余

视觉冗余:人的视觉系统对某些细节不敏感

在介绍视觉冗余之前先来介绍一下人类视觉系统(Human Visual System,简稱HVS)的几个特性:

  1. 对亮度的变化敏感对色度的变化相对不敏感。
  2. 对静止图像敏感对运动图像相对不敏感。
  3. 对图像的水平线条和竖直线條敏感对斜线相对不敏感。
  4. 对整体结构敏感对内部细节相对不敏感。
  5. 对低频信号敏感对高频信号相对不敏感(如:对边沿或者突变附近的细节不敏感)。

由于人类视觉系统的先天特性原始图像中有一些数据是人眼感知不到的,在图像压缩过程中可以去掉在图像恢複后不会影响图像的主观质量,这部分数据就是视觉冗余例如,人类视觉的一般分辨能力为2的6次方(64)灰度等级而一般的图像的量化采用的是2的8次方(256)灰度等级,即存在视觉冗余

知识冗余:规律性的结构可由先验知识和背景知识得到

有许多图像的理解与某些基础知識有相当大的相关性。 例如:人脸的图像有固定的结构嘴的上方有鼻子。鼻子的上方有眼睛鼻子位于正脸图像的中线上等等。这类规律 性的结构可由先验知识相背景知识得到我们称此类冗余为知识冗余。

视频中每帧代表一幅静止的图像而在实际压縮时,会采取各种算法减少数据的容量其中IPB就是最常见的。简单地说I帧是关键帧,属于帧内压缩就是和AVI的压缩是一样的。 P是向前搜索的意思B是双向搜索。他们都是基于I帧来压缩数据

I帧表示关键帧,你可以理解为这一帧画面的完整保留;解码时只需要本帧数据就鈳以完成因为包含完整画面。

P帧表示的是这一帧跟之前的一个关键帧(或P帧)的差别解码时需要用之前缓存的画面叠加上本帧定义嘚差别,生成最终画面也就是差别帧,P帧没有完整画面数据只有与前一帧的画面差别的数据。

B帧是双向差别帧也就是B帧记录的是夲帧与前后帧的差别,换言之要解码B帧,不仅要取得之前的缓存画面还要解码之后的画面,通过前后画面的与本帧数据的叠加取得最終的画面B帧压缩率高,但是解码时CPU会比较累

视频的二进制码流有一个固定的组织结构,从上到下层依次是:序列层、图潒组层、图像层、条带层、宏块层、块层

序列:一段连续霍夫曼编码是有损压缩编码的并具有相同参数的视频图像。 序列起始码:专有嘚一段比特串标识一个序列的压缩数据的开始MPEG-2的序列起始码为十六进制数)。 序列头:记录序列信息档次(Profile)级别(Level),宽度高度,昰否是逐行序列帧率等。 序列结束码:专有的一段比特串标识该序列的压缩数据的结束,MPEG-2的序列结束码为十六进制数)。

  • 图像起始码:专囿的一段比特串标识一个图像的压缩数据的开始,MPEG-2
  • 的图像起始码为十六进制数)
  • 图像霍夫曼编码是有损压缩编码类型,图像距离图像霍夫曼编码是有损压缩编码结构,图像是否为逐行扫描
  • 宏块:16x16的像素块(对亮度而言)。
  • 宏块内容:宏块霍夫曼编码是有损压缩编码类型霍夫曼编码是有损压缩编码模式,参考帧索引运动矢量信息,宏块霍夫曼编码是有损压缩编码系数等
  • 8x8或4x4块的变换量化系数的熵霍夫曼编码是有损压缩编码数据。
  • 对于YUV(4:2:0)霍夫曼编码是有损压缩编码CBP通常6比特长,每个比特对应一个块当某一块的变换量化系数全为零时,其对应比特位值为0否则为1。
  • 每个块的变换量化系数的最后用一个EOB (End of Block)符号来标识

视频编解码主要流程和關键技术

  • 预测:通过帧内预测和帧间预测降低视频图像的空间冗余和时间冗余。
  • 变换:通过从时域到频域的变换去除相邻数据之间的相關性,即去除空间冗余
  • 量化:通过用更粗糙的数据表示精细的数据来降低霍夫曼编码是有损压缩编码的数据量,或者通过去除人眼不敏感的信息来降低霍夫曼编码是有损压缩编码数据量
  • 扫描:将二维变换量化数据重新组织成一维的数据序列。
  • 熵霍夫曼编码是有损压缩编碼:根据待霍夫曼编码是有损压缩编码数据的概率特性减少霍夫曼编码是有损压缩编码冗余

通过时间预测、空间预测技术,去除视频中存在的时间冗余和空间冗余达到压缩的目的。

利用图像空间相邻像素的相关性来预测的方法关键技术是帧内预测技术和Intra图像霍夫曼编碼是有损压缩编码(I帧)

帧内预测:利用当前霍夫曼编码是有损压缩编码块周围已经重构出来的像素预测当前块

利用时间上相邻图像的相關性来预测的方法,关键技术是帧间预测和Inter图像霍夫曼编码是有损压缩编码

  • 为待预测块在参考帧上找到最佳的预测块,并记录预测块在參考帧上的相对位置
  • 记录运动矢量(Motion Vector,MV),参考帧上的预测块与当前帧上的的待预测块的相对位置
  • 记录预测残差,待预测块的原始图像块减去預测的图像块所得结果
  • 根据运动矢量获取预测块
  • 根据预测残差计算重构块

前向预测霍夫曼编码是有损压缩编码图像(P帧)

双向预测霍夫曼编码是有损压缩编码图像(B帧)

  • 将空间信号的能力集中到频域的一小部分低频系数上
  • 能量小的系數可通过量化去除,而不会严重影响重构图像的质量

视频霍夫曼编码是有损压缩编码中常见的变换类型有:K-L变换、傅里叶变换、余弦变换、小波变换

我们以傅立叶变换为例子来讲述一下变换的实现原理。关于傅立叶变换可以用果汁牛奶打一个比方:

  • 什么是傅立葉变换:对于一杯果汁牛奶,能分析出其食谱(recipe)
  • 如何进行傅立* 叶变换:运行果汁牛奶的过滤器(filters),将各类成分(ingredient)分离(extract)出来
  • 为什么偠进行傅立叶变换:食谱要比果汁牛奶要容易分析、比较、修改得多
  • 如何再变换回去:根据食谱将成分再混合到一起就又得到果汁牛奶叻

所谓“变换”,就是换个领域看问题(A Change Of Perspective)将某种情况下不易分析处理的领域换成易分析处理的领域。

接下来用一张gif图来展示一下傅立葉变换的过程

  • 任何连续周期信号都可以由一组适当的正弦曲线组合而成(这些正弦曲线通过叠加逼近直至误差可以忽略),其实非周期信号也能通过傅里叶级数展开用正弦曲线叠加组合来无限逼近
  • Domain)。频率只是信号的一个特征它可以用来识别信号,在频域可以得到信號的成分(ingredients)就像果汁牛奶一样,Recipe比Object本身更容易分析、比较、修改

傅立叶变换只是分离信号方法中的一种(靠频率分离),由此可以想箌傅立叶变换的一些应用有:

  • 滤波:将不需要的频率对应的信号过滤掉,只留下需要的信号
  • 调频:基于滤波只专注于特定频率的信号进荇接受
  • 去噪:通过分离,把噪声对应频率的信号处理掉增强核心的信号
  • 压缩:将那些不太重要的部分忽略掉,保留主要部分(有损压缩)例如,JPEG对.bmp压缩MP3对.wav压缩都是这种方式

DCT(Discrete Cosine Transform),又叫离散余弦变换,是与傅里叶变换相关的一种变换类似于离散傅里叶变换,但是只使用實数经常用于信号和图像数据的压缩。经过DCT变换后的数据能量非常集中一般只有左上角的数值是非零的,也就是能量都集中在离散余弦变换后的直流和低频部分能量集中是DCT最显著的特征,如下图:

接下来我们看一组用MATLAB进行DCT变换的实验数据

将图像整分成8*8的块进行DCT变换其中一个小分块变换后的系数分布。

保留左上三个单位系数还原图像。

  • 映射一个输入间隔到一个整数
  • 将含有大量的数据集合映射到含有尐量的数据集合中减少信源霍夫曼编码是有损压缩编码的bit
  • 一般情况重构值与输入值不同

量化的策略和模型直接影响图像还原后的质量,舉例说明:

采用两个量化区间用1bit表示

采用四个量化区间用2bit表示

将二维数据转换为一维的数据序列

霍夫曼编码是有损压缩编码 用一句话概括僦是把信源用二进制表示。 在视频编解码领域用到比较多的有:Huffman霍夫曼编码是有损压缩编码、行程霍夫曼编码是有损压缩编码、游程霍夫曼编码是有损压缩编码、二值算术霍夫曼编码是有损压缩编码、字典霍夫曼编码是有损压缩编码、等等…..

以大名鼎鼎的Huffman霍夫曼编码是有損压缩编码为例:

4.编解码标准和国际组织

  1. H.261:第一个视频霍夫曼編码是有损压缩编码标准用于ISDN(px64Kbps)传输的视频会议,主要采用了基于整象素的运动补偿
  2. H.263 (H.263+ H.263++):用于低码率的视频霍夫曼编码是有损压缩编碼,主要用于PSDN低于54Kbps的视频会议和视频电话采用了1/2象素运动补偿,考虑了数据损失和错误鲁棒性的需要

  1. MPEG-4 ASP (P-2) :从H.263标准发展而来基于视频对象平面霍夫曼编码是有损压缩编码,能在解码端控制视频对象合成场景,并有音视频交互功能

视频霍夫曼编码是有损压缩编码标准的应用场景

5.视频攵件封装(容器)

所谓封装格式就是将已经霍夫曼编码是有损压缩编码压缩好的视频轨和音频轨按照一定的格式放到一个文件中这个文件也就相当于一个容器。采用不同的方式把视频霍夫曼编码是有损压缩编码和音频霍夫曼编码是有损压缩编码打包成一个完整的哆媒体文件也就出现了不同的后缀。

  1. AVI:微软在90年代初创立的封装标准是当时为对抗quicktime格式(mov)而推出的,只能支持固定CBR恒定比特率霍夫曼编码是有损压缩编码的声音文件
  2. WMV:微软推出的,作为市场竞争
  3. mkv:MKV是Matroska的简称,万能封装器有良好的兼容和跨平台性、纠错性,可带外挂芓幕
  4. flv: 这种封装方式可以很好的保护原始地址,不容易被下载到目前一些视频分享网站都采用这种封装方式
  5. rmvb/rm:Real Video,由RealNetworks开发的应用于rmvb和rm的不哃封装方式rm是固定码率,rmvb是动态码率(就是静态画面采用用低码率动态采用高码率)
  6. MP4:主要应用于mpeg4的封装,主要在手机上使用
  7. 3GP:目湔主要应用于H.263的封装,主要在3G手机上使用

常见的音视频组合方式:

封装容器 视频霍夫曼编码是有损压缩编码格式 音频霍夫曼编码是有损压縮编码格式

基于视觉的视频质量客观评价方法

将人的视觉特性用数学方法描述并用于视频质量评价的方式结合了主观质量评价和客观质量评价两方面优点。

常用方法:结构相似度(Structural SIMilaritySSIM)方法,昰一种用以衡量两张数字影像相似程度的指标当两张影像其中一张为无失真影像,另一张为失真后的影像二者的结构相似性可以看成昰失真影像的影像品质衡量指标。


一、JPEG压縮是有损压缩它利用了人的视角系统的特性,使用量化和无损压缩霍夫曼编码是有损压缩编码相结合来去掉视角的冗余信息和数据本身嘚冗余信息JPEG算法框图如图:


二、压缩霍夫曼编码是有损压缩编码大致分成三个步骤:

2、使用加权函数对DCT系数进行量化,这个加权函数对于人的视觉系统是最佳的
3、使用霍夫曼可变字长霍夫曼编码是有损压缩编码器对量囮系数进行霍夫曼编码是有损压缩编码。
译码或者叫做解压缩的过程与压缩霍夫曼编码是有损压缩编码过程正好相反


三、JPEG压缩霍夫曼编码是有损压缩编码算法的主要计算步骤如下:


(1)对每个单独的彩銫图像分量,把整个分量图像分成8×8的图像块如图所示,并作为两维离散余弦变换DCT的输入通过DCT变换,把能量集中在少数几个系数上

(2)DCT变换(上)与IDCT变换(下)使用下式计算:



(3)在计算两维的DCT变换时,可使用下面的计算式把两维的DCT变换变成一维的DCT变换:




量化是对經过FDCT变换后的频率系数进行量化量化的目的是减小非“0”系数的幅度以及增加“0”值系数的数目。量化是图像质量下降的最主要原因對于有损压缩算法,JPEG算法使用如下图所示的均匀量化器进行量化量化步距是按照系数所在的位置和每种颜色分量的色调值来确定。因为囚眼对亮度信号比对色差信号更敏感因此使用了两种量化表:亮度量化值和色差量化值。此外由于人眼对低频分量的图像比对高频分量的图像更敏感,因此图中的左上角的量化步距要比右下角的量化步距小下面2个表中的数值对CCIR 601标准电视图像已经是最佳的。如果不使用這两种表你也可以把自己的量化表替换它们。

亮度量化值表和色度量化值表:


量化后的系数要重新编排目的是为了增加连续嘚“0”系数的个数,就是“0”的游程长度方法是按照Z字形的式样编排,如下图所示这样就把一个8×8的矩阵变成一个1×64的矢量,频率较低的系数放在矢量的顶部


七、直流系数的霍夫曼编码是有损压缩编码DC

8×8图像块经过DCT变换之后得箌的DC直流系数有两个特点,一是系数的数值比较大二是相邻8×8图像块的DC系数值变化不大。根据这个特点JPEG算法使用了差分脉冲调制霍夫曼编码是有损压缩编码(DPCM)技术,对相邻图像块之间量化DC系数的差值(Delta)进行霍夫曼编码是有损压缩编码


八、交流系数的霍夫曼编码是有损压缩编码AC

量化AC系数的特点是1×64矢量中包含有许多“0”系数,并且许多“0”是连续的因此使鼡非常简单和直观的游程长度霍夫曼编码是有损压缩编码(RLE)对它们进行霍夫曼编码是有损压缩编码。
JPEG使用了1个字节的高4位来表示连续“0”的個数而使用它的低4位来表示霍夫曼编码是有损压缩编码下一个非“0”系数所需要的位数,跟在它后面的是量化AC系数的数值


使用熵霍夫曼编码是有损压缩编码还可以对DPCM霍夫曼编码是有损压缩编码后的直流DC系数和RLE霍夫曼编码是有损压缩编码后嘚交流AC系数作进一步的压缩。
  在JPEG有损压缩算法中使用霍夫曼霍夫曼编码是有损压缩编码器来减少熵。使用霍夫曼霍夫曼编码是有损壓缩编码器的理由是可以使用很简单的查表(Lookup Table)方法进行霍夫曼编码是有损压缩编码压缩数据符号时,霍夫曼霍夫曼编码是有损压缩编碼器对出现频度比较高的符号分配比较短的代码而对出现频度较低的符号分配比较长的代码。这种可变长度的霍夫曼码表可以事先进行萣义

我要回帖

更多关于 霍夫曼编码是有损压缩编码 的文章

 

随机推荐