`
izuoyan
  • 浏览: 9219917 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

MPEG-2简介及MPEG-2编解码 (4)

阅读更多

MPEG-2简介及MPEG-2编解码
  所谓的压缩,就是找出冗馀内容,再从资料流中除去的技术。如之前所提,MPEG-2的视讯主要是就是利用空间上及时间上冗馀资讯的消除来达到压缩的效果。图4及图5为典型的MPEG-2编解码器,以下我们将针对其中重要的压缩技巧做解说。
  1. 空间上的冗馀去除
  视讯资料的一个特性是空间冗馀。一般来说,在同一张画面上必有一些共通特性,也许是色彩上的,也许是几何上的,或是其它特征值得到的。所谓的空间冗馀去除,就是要识别出画面中重要的元素,并移除重复且较无影响的元素的动作。
  1.1 色彩取样
  跟据实验,人眼对于亮度变化较敏感而对于色度的变化相对的较不 易查觉。依此实验,MPEG-2采用亮度色度的色彩表示格式,Y表示亮度值(Luminance),Cr及Cb表示色度值(Chrominance),并 且从降低色度取样来减少讯号量。MPEG-2中定义了4:2:0、4:2:2及4:4:4采样格式。4:2:0表示四个Y取一个Cr一个Cb;4:2:2 表示四个Y取两个Cr两个Cb;而4:4:4表示四个Y取四个Cr四个Cb,即不做任何的采度取样减少。减少色度采样可以在尽量降低对视觉的影响下达到较 大的资料缩减效果。
  1.2 离散馀弦变换
  离散馀弦变换是一个无损的,可逆的数学计算。在用于视讯压缩 时,它把空间亮度采样和相应的色度采样强度资料转化为空间频率资料。在MPEG-2的视讯压缩中,找出存在于视讯中的每张画面里的空间冗馀,就是以将图切 成8x8的区块(Block)后做离散馀弦变换来完成的。区块的色彩值转换后的离散馀弦变换系数依然是一个8x8的矩阵,左上角的系数称为DC系数,其馀 称为AC系数。DC系数往下代表着逐渐增高的垂直空间频率系数,往右代表看逐渐增高的水平空间频率系数,其他系数则代表垂直水平空间频率的不同组合。由于 图像的自然属性,一个画面中通常不会有很密集且大的波动,因此离散馀弦变换经常使代表较高空间频率的离散馀弦变换系数的值很小,甚至为零。基本上,离散馀 弦变换并不能减少数据量,但是却可以将资料转成较易找寻冗馀的表达型式。
  1.3 量化
  除了在4:2:2或4:2:0的色彩采样过程中丢失了有限数量 的资讯以外,MPEG-2的压缩能力来自对离散馀弦变换系数灵活的量化过程。简单地讲,量化(Quantization)就是减少描述各系数的位元数的过 程,亦即将各系数以较粗糙的度量单位描述之。量化的动作主要有两个功能:一是让原已很接近零的值尽量变成零,另外则是使得原来非零的系数分布范围变小,有 助于压缩。量化是一种破坏性压缩技巧,量化后的资料再还原时与原来的资料不会全然相同,因此视讯压缩后失真的程度,主要便取决于量化位阶 (Quantization Scale)的选取。由于人视觉上的特性,高空间频率的讯号往往不易察觉其变化,因此用较大的位阶表示甚至忽略之,对人眼来说亦不会造成多大的差异。
  2. 时间上的冗馀去除
  视讯资料的另一个特性是时间上的冗馀。一般播放的视讯,其实只 是一连串连续的图像序列,然而因为人类视觉的视觉暂留现象,所以会有连贯影像的错觉。而此种视讯因为画面间时间间隔甚小,因此相临的画面几无差异,大多只 是图像内容的位置变化。因为有此现象产生,所以我们可以利用除去在时间轴上画面与画面的相似性造成的冗馀来进行压缩。
  2.1动态补偿
  动态补偿(Motion Compensation,MC)便是基于上述概念所发展出来的一种视讯压缩技巧。在做动态补偿之前,首先将画面分为16x16的大区块(Macro- block,MB),然后找寻其在参考画面(Reference Picture)中近似的大区块所在位置,并将由目标大区块到参考大区块间位置的座标差记录成动态向量(Motion Vector)。参考画面在该画面之前,称为向前预测(Forward Prediction);参考画面在该画面之后,称为向后预测(Backward Prediction);而参考画面在该画面前后都有,称为双向预测(Bi-directionally Prediction)。而整个找寻动态向量的过程称为动态估计(Motion Estimation),常见的有区块匹配法(Block Match Method)及递回法(Recursive Method)。
  另外,因为预测可能不是最佳匹配且目标大区块与参考大区块间不一定完全一致,因此还要计算目标大区块与参考大区块间画面讯号的差值,称为预测误差(Prediction Error),用以在解码时做补偿之用。最后预测误差再以空间的冗馀去除的压缩法处理之。
  2.2 画面压缩
  要探讨如何压缩MPEG-2的视讯之前,首先来看看MPEG-2的视讯资料结构,由下而上依序为:
  1. 区块(Block):包含量化后的画面资料,由8x8的像素所组成,是离散馀弦转换的最小单位。
  2. 大区块(Macroblock):为一个16 x 16的大区块,是色彩取样、动态估计及动态补偿的基本单位。
  3. 片段(Slice):由数个大区块(Macro-block)所组成,主要将每张画面作水平且固定单位的切割。片段以上的各种结构都有讯号同步及错误控制能力。
  4. 画面(Picture):由数个片段(Slice)所组成,为最主要的编码单位,主要有三种影像编码的型态 I、P、B,稍后会有详细叙述。
  5. 画面群组(Group of Pictures,GOP):由一张 I 画面及数张 P 及 B 画面所组成。在MPEG-2中,画面群组的总长及P画面张数是可以动态调整的。
  6. 视讯序列(Video Sequence):由数个画面或画面群组所组成,然而一部影片可以只由一个视讯序列组成,也可以由数个视讯序列所组成。

分享到:
评论

相关推荐

    mpeg-4解码代码.rar_MP4 - MPEG-4 解码_MPEG-4解码工程_mpeg-4_mpeg-4解码

    标题中的“mpeg-4解码代码.rar”指的是一个包含MPEG-4解码器源代码的压缩文件,这种解码器是用于处理MPEG-4编码的视频流。解码过程是将已编码的数据还原成原始视频帧的过程,以便于播放或进一步处理。"MP4 - MPEG-4 ...

    mpeg-2视频解码器下载src_mpeg2.zip

    MPEG-2视频解码器是一种用于处理MPEG-2编码视频数据的软件组件,它能够将MPEG-2编码的数字视频流转换为可播放的图像序列。在这个名为"src_mpeg2.zip"的压缩包中,包含了构建和理解MPEG-2视频解码器所需的各种资源,...

    MPEG-2.rar_mpeg c++ _mpeg 测试_mpeg-4_视频 编解码

    在本文中,我们将深入探讨MPEG-2标准、C++编程在视频编解码中的应用以及MPEG-4的关联性。 MPEG-2标准是由运动图像专家组(Moving Picture Experts Group)于1994年制定的,它是MPEG-1的升级版,主要针对更高质量的...

    MPEG-4.rar_MPEG_MPEG-4编解码_mpeg-4

    在MPEG-4编解码技术中,我们主要探讨其编码和解码过程中的关键概念和技术。 编码部分: 1. **分块编码**:MPEG-4采用基于对象的编码方式,将视频流分割成不同的对象,如运动图像块、静态图像块和纹理等。每个对象...

    MPEG-2_Audio_IS.doc;MPEG-2_Systems_IS.doc; MPEG-2_Video_IS.doc

    例如,在DVD中,MPEG-2视频流、MPEG-2音频流以及字幕和其他信息会被组织在一个TS(Transport Stream)中,通过适当的打包和解包过程,实现播放器对内容的正确解码和呈现。 总的来说,MPEG-2标准是现代数字媒体技术...

    MPEG-4编解码原理

    MPEG-4编解码原理是视频处理领域中的核心技术,它以其高效的数据压缩能力和对内容的灵活处理而受到广泛应用。MPEG-4不仅关注视频的整体压缩,更强调视听对象(Audio/Video Object, AVO)的独立编码,这使得它能够...

    MPEG-4编/解码技术(VC++源代码)

    在VC++环境下实现MPEG-4编解码是一项复杂而技术含量高的任务,涉及到许多关键知识点。 首先,MPEG-4编码过程主要包括帧间预测、运动估计和补偿、熵编码、量化和离散余弦变换(DCT)等步骤。帧间预测是通过比较当前帧...

    MPEG-4播放技术MPEG-4.rar

    与之前的MPEG-1和MPEG-2标准相比,MPEG-4更注重内容表示和交互性,允许用户选择不同的视图、调整音频级别或者与视频内容进行互动。 二、MPEG-4编码技术 1. 分组视频编码(Visual Object Coding, VOC):MPEG-4将...

    MPEG-2视频编解码参考代码

    MPEG-2视频编解码参考代码是实现这一标准的软件实现,通常由C++编写,供开发者研究、学习和改进视频编码技术。 在MPEG-2视频编码过程中,主要涉及以下几个关键知识点: 1. **帧类型**:MPEG-2视频编码将连续的视频...

    基于FPGA的MPEG-4编解码芯片开发系统设计研究

    《基于FPGA的MPEG-4编解码芯片开发系统设计研究》这篇论文深入探讨了在现代数字视频处理领域中的一个重要技术——FPGA(Field-Programmable Gate Array)实现的MPEG-4编解码系统。MPEG-4是一种高效、灵活的视频编码...

    《MPEG-4_H.264视频编解码工程实践》配套CD代码

    主要内容包括:视频编解码原理及视频图像的捕获与显示、基于Visual C++2005分析MPEG-4/H.264编解码原理、基于TI DSP设计和优化开源工程(Xvid/x264/ffmpeg)、视频算法的标准接口xDAIS开发和视频监控中心软件设计等...

    MPEG-4_H.264视频编解码工程实践.rar

    《MPEG-4_H.264视频编解码工程实践》是一份深入探讨H.264视频编码技术的光盘资源。这份压缩包包含了关于H.264解码的重要参考资料,对于理解并应用这一高效视频压缩标准具有极高的价值。H.264,全称为Advanced Video ...

    MPEG-2 视频解码器1.1版.zip_MPEG_MPEg-2_mpeg 解码_视频解码器

    4. **bin**:这个目录可能包含了编译后的二进制可执行文件,用户可以直接运行来解码MPEG-2视频。 5. **par**:此目录可能包含了解码器的参数文件或其他辅助工具。 6. **verify**:可能是一些验证工具或测试用例,...

    《MPEG-4/H.264视频编解码工程实践》的配套光盘

    《MPEG-4/H.264视频编解码工程实践》的配套光盘

    CRC计算工具包括,CRC32 和 CRC-32/MPEG-2 以及CRC32/MPEG-2的计算函数

    CRC-32/MPEG-2则是专门为MPEG-2视频编码标准设计的,它在多媒体数据流的错误检测中起到关键作用。MPEG-2是数字电视和DVD视频的标准,对数据的准确性有很高要求。CRC-32/MPEG-2的计算函数可能与标准的CRC32算法有所...

    MPEG基础和协议分析指南.rar_MPEG-2压缩编码_MPEG-4 中文_MPEG-4播放器_MPEG2 协议_MPEg-2

    MPEG系列标准包括MPEG-1、MPEG-2、MPEG-4等,它们在数字媒体领域扮演着至关重要的角色。 ### MPEG-2压缩编码 MPEG-2是MPEG系列的第一个主要视频编码标准,发布于1994年,主要用于数字电视和DVD存储。MPEG-2采用了...

    MPEG-2.rar_10-2_MPEg-2_mpeg-2 dsp

    标题"MPEG-2.rar_10-2_MPEg-2_mpeg-2 dsp"指的是一个与MPEG-2音频编码技术相关的压缩包文件,其中包含版本为10.2的MPEG-2音频模拟软件分发。描述提到的是"MPEG-2 Audio Simulation Software Distribution 10",这...

    MPEG-2 协议 c 语言实现

    2. **解码流程**:按照MPEG-2标准规定的解码步骤,实现熵解码器来恢复量化系数,然后执行逆DCT,再结合运动补偿得到预测图像。 3. **缓冲管理**:处理帧间预测需要缓存前一帧或多帧的数据,因此要实现一个高效的...

    MPEG-2解码源代码

    4. **C++编程**:MPEG-2解码器的实现通常涉及大量底层计算,因此选择C++作为编程语言是因为它的性能和灵活性。C++允许程序员直接操作内存,创建高效的算法,同时提供了面向对象的特性,便于模块化设计和代码重用。 ...

    MPEG-4.rar_MPEg-2_bitstream_mpeg 测试_mpeg-4

    MPEG-2是MPEG(Moving Picture Experts Group)制定的另一个视频编码标准,主要用于DVD、有线电视和卫星电视等领域,它的编码效率相比MPEG-1有所提升,但相比MPEG-4则较低。 "MPEG_测试"意味着可能包含了一组用于...

Global site tag (gtag.js) - Google Analytics