MPEG4 编码器流程
- 格式:doc
- 大小:259.80 KB
- 文档页数:7
高清编解码器测试说明测试时间:10.26-11.6本次测试联系了NTT、汤姆逊、tandberg和哈雷四家编、解码器厂家。
在测试限定期限内,NTT公司送测一台支持MPEG2和H.264 格式高清编码器HVE9100 设备。
汤姆逊公司送测一台支持MPEG2和H.264 格式高清解码器RD3000设备。
Tandberg 和哈雷公司未参加测试。
本次测试信源是由传输部提供千兆光纤信号,其中包含三路MPEG2高清信源。
信源经过千兆交换机将光信号转为电信号送入高清解码器。
汤姆逊高清解码器设备支持MPEG2和H.264两种格式高清信源的解码,操作简便并且解码配置自适应。
经过测试,该产品能够满足我方技术要求。
NTT高清编码器设备支持MPEG2和H.264两种格式高清信源的编码。
通过测试,该产品基本能够满足我方技术要求,注:本次测试配合收录系统一并测试,MPEG2格式编码输出的节目经过收录-编辑-转码-VOD播出整个流程测试通过。
H.264格式编码输出的节目经过收录-VOD播出失败。
4.7高清编码器技术要求1)投标人提供的编码器必须符合以下标准:●视频编码标准符合MPEG4-AVC和 MPEG-2标准●音频编码标准符合MPEG-1LayerII, Dolby Digital(AC3) 2.0/DolbyDigital(AC3)5.1, AAC LC或 HE2.0和5.12)编码器视频编码格式支持HD MPEG-2 4:2:0 MP@HL,音频支持MPEG-1 LayeⅡ编码,音频编码模式single/dual/ stereo可选。
3)编码器视频编码格式支持H.264 HP@4.0/4.2(High profile, Level 4.2/4.0),MP@3.0(Main profile, Level 3.0) ,BP(Baseline profile) 。
音频支持MPEG-1 Layer Ⅱ编码,音频编码模式single/dual/ stereo可选。
音频编解码·实战篇1PCM转至AACAAC编码这里利用FAAC来实现AAC编码。
1 下载安装FAAC 这里的安装过程是在Mac 和Linux 上实现的Windows可以类似参考。
wget /faac/faac-1.28.tar.gz tar zxvffaac-1.28.tar.gz cd faac-1.28 ./configure make sudo make install 如果才用默认的configure 中的prefix path那么安装后的lib 和.h 文件分别在/usr/local/lib和/usr/local/include后面编译的时候会用到。
如果编译过程中发现错误mpeg4ip.h:126: error: new declaration ‘char strcasestrconst char const char’ 解决方法从123行开始修改此文件mpeg4ip.h到129行结束。
修改前ifdef __cplusplus extern C endif char strcasestrconst char haystack const char needle ifdef __cplusplus endif 修改后ifdef __cplusplus extern C endif const char strcasestrconst char haystack const char needle ifdef __cplusplus endif 2 FAAC API 2.1 Open FAAC engine Prototype: faacEncHandle faacEncOpen // 返回一个FAAC的handle unsigned long nSampleRate // 采样率单位是bps unsigned long nChannels // 声道1为单声道2为双声道unsigned long nInputSamples // 传引用得到每次调用编码时所应接收的原始数据长度unsigned long nMaxOutputBytes // 传引用得到每次调用编码时生成的AAC数据的最大长度 2.2 Get/Set encoding configuration Prototype: 获取编码器的配置faacEncConfigurationPtr faacEncGetCurrentConfiguration // 得到指向当前编码器配置的指针faacEncHandle hEncoder // FAAC的handle 设定编码器的配置int FAACAPI faacEncSetConfiguration faacDecHandle hDecoder // 此前得到的FAAC的handle faacEncConfigurationPtr config // FAAC编码器的配置 2.3 Encode Prototype: int faacEncEncode faacEncHandle hEncoder // FAAC的handle short inputBuffer // PCM原始数据unsigned int samplesInput // 调用faacEncOpen时得到的nInputSamples 值unsigned char outputBuffer// 至少具有调用faacEncOpen时得到的nMaxOutputBytes字节长度的缓冲区unsigned int bufferSize // outputBuffer缓冲区的实际大小 2.4 Close FAAC engine Prototype void faacEncClose faacEncHandle hEncoder // 此前得到的FAAC handle 3 流程3.1 做什么准备采样率声道数双声道还是单声道还有你的PCM的单个样本是8位的还是16位的 3.2 开启FAAC编码器做编码前的准备1. 调用faacEncOpen开启FAAC编码器后得到了单次输入样本数nInputSamples和输出数据最大字节数nMaxOutputBytes 2. 根据nInputSamples和nMaxOutputBytes分别为PCM数据和将要得到的AAC数据创建缓冲区3. 调用faacEncGetCurrentConfiguration获取当前配置修改完配置后调用faacEncSetConfiguration设置新配置。
FFmpeg编解码流程一、简介FFmpeg是一个开源跨平台的音视频处理工具,它提供了一套完整的音视频编解码解决方案。
本文将深入探讨FFmpeg的编解码流程,重点介绍其原理和各个步骤。
二、FFmpeg编解码流程概述FFmpeg的编解码过程可以分为以下几个步骤: 1. 读取输入文件 2. 解封装 3. 视频/音频解码 4. 音视频处理 5. 视频/音频编码 6. 封装输出文件下面将逐一介绍每个步骤的具体内容。
2.1 读取输入文件编解码过程的第一步是读取输入文件。
FFmpeg支持多种音视频格式,可以通过指定输入格式来读取不同类型的文件。
通过读取输入文件,FFmpeg可以获取到音视频的基本信息。
2.2 解封装解封装是将输入文件中的音视频数据提取出来的过程。
FFmpeg支持各种常见的封装格式,如AVI、MP4、FLV等。
解封装的目的是将音视频数据从封装格式中分离出来,方便后续的解码和处理。
2.3 视频/音频解码解码是将音视频数据从原始的二进制数据转换为可读取的格式的过程。
FFmpeg支持的视频解码器包括H.264、H.265、MPEG-4等,音频解码器包括AAC、MP3、WAV 等。
解码过程中,FFmpeg将原始数据解析成具体的像素、采样等信息,以供后续处理使用。
2.4 音视频处理音视频处理是对解码后的音视频数据进行各种处理操作的过程。
包括视频的裁剪、旋转、缩放、滤镜效果的添加等,音频的混音、音量调整、变速变调等。
FFmpeg 提供了丰富的滤镜效果和处理函数,可以满足各种需求。
2.5 视频/音频编码编码是将处理后的音视频数据重新转换为压缩格式的二进制数据的过程。
FFmpeg 支持的视频编码器包括H.264、H.265、MPEG-4等,音频编码器包括AAC、MP3、WAV等。
编码过程中,FFmpeg将处理后的音视频数据压缩成较小的体积,减少文件的大小。
2.6 封装输出文件封装输出文件是将编码后的音视频数据重新封装为指定格式的文件的过程。
mpeg4格式转换器2篇第一篇:MPEG4格式转换器的基本概述MPEG4格式转换器是一种用于转换视频文件格式的工具。
它可以将视频文件从一种格式转换为另一种格式,以适应不同的播放设备或实现特定的需求。
本文将介绍MPEG4格式转换器的基本原理、使用方法和相关注意事项。
一、MPEG4格式转换器的基本原理MPEG4是一种常用的视频压缩格式,它可以将大文件压缩成较小的文件,而且画质损失较小。
MPEG4格式转换器的基本原理就是将不同格式的视频文件解码为原始的视频数据,然后对这些数据进行格式转换,最后再编码为目标格式的视频文件。
这个过程中需要借助于专业的算法和编解码器,以保证转换的质量和效率。
二、MPEG4格式转换器的使用方法使用MPEG4格式转换器,需要先下载并安装该软件。
一般来说,这些转换器提供了用户友好的界面,使得操作相对简单。
具体步骤如下:1. 打开转换器软件,并选择要转换的源文件。
可以通过拖拽文件到转换器窗口,或者点击软件界面中的"添加文件"按钮,选择文件。
2. 选择目标格式。
通常,MPEG4格式转换器提供了多种输出格式供选择,如MP4、AVI、MOV等。
在这一步中,用户可以根据自己的需求选择合适的目标格式。
3. 配置转换参数。
一些转换器还提供了进一步的参数设置,如分辨率、帧率、编码方式等。
用户可以根据具体需求进行调整。
4. 开始转换。
点击软件界面中的"开始转换"按钮,转换器将会开始转换过程。
转换时间长度取决于原始视频文件的大小和电脑性能。
5. 完成转换。
转换器会在转换完成后弹出提示,此时用户就可以在指定的输出目录中找到转换后的视频文件。
三、MPEG4格式转换器的注意事项在使用MPEG4格式转换器时,需要注意以下几个问题:1. 转换质量。
由于转换过程中的编码和解码,会导致一定的画质损失。
选择转换器时,要注意其对转换质量的保证,以免导致转换后的视频画质无法接受。
TCC8900 VPU分析——常见视频编解码格式及RGB和YUV存储格式预研一、常见视频编解码格式1视频文件类别常言道:物以类聚,人以群分。
视频文件也不例外,细细算起来,视频文件可以分成两大类:其一是影像文件,比如说常见的VCD便是一例。
其二是流式视频文件,这是随着国际互联网的发展而诞生的后起视频之秀,比如说在线实况转播,就是构架在流式视频技术之上的。
1.1影像格式 日常生活中接触较多的VCD、多媒体CD光盘中的动画……这些都是影像文件。
影像文件不仅包含了大量图像信息,同时还容纳大量音频信息。
所以,影像文件的“身材”往往不可小觑。
1)AVI格式2)MOV格式3)MPEG/MPG/DAT格式1.2流式视频格式 目前,很多视频数据要求通过Internet来进行实时传输,前面我们曾提及到,视频文件的体积往往比较大,而现有的网络带宽却往往比较“狭窄”,千军万马要过独木桥,其结果当然可想而知。
客观因素限制了视频数据的实时传输和实时播放,于是一种新型的流式视频(Streaming Video)格式应运而生了。
这种流式视频采用一种“边传边播”的方法,即先从服务器上下载一部分视频文件,形成视频流缓冲区后实时播放,同时继续下载,为接下来的播放做好准备。
这种“边传边播”的方法避免了用户必须等待整个文件从Internet上全部下载完毕才能观看的缺点。
到目前为止,Internet上使用较多的流式视频格式主要是以下三种:1)RM(Real Media)格式 RM格式是RealNetworks公司开发的一种新型流式视频文件格式,它麾下共有三员大将:RealAudio、RealVideo和RealFlash。
RealAudio用来传输接近CD音质的音频数据,RealVideo用来传输连续视频数据,而RealFlash则是RealNetworks公司与Macromedia公司新近合作推出的一种高压缩比的动画格式。
RealMedia可以根据网络数据传输速率的不同制定了不同的压缩比率,从而实现在低速率的广域网上进行影像数据的实时传送和实时播放。
MPEG-4视频压缩基础MPEG(活动图象专家组)成立于1988年,是国际标准化组织ISO(The International Organization for Standardization)和IEC (International Electrotechnical Commission)联合工作委员会(JTC1)在信息技术方面的下属研究小组(ISO/IECJTC1/SC29/WG11),其任务是研究低速率下的视频音频编码标准方案。
1998年颁布的MPEG-4标准则主要针对互联网及无线信道的应用,充分考虑了这2种传输条件的特点并提供了一些关键技术。
MPEG-4不是一个单纯的视频音频编解码标准,它更多定义的是一种格式和框架,而不是具体的算法,它的出发点是希望建立一个更自由的通信与研发环境,人们可以在系统中加入新算法,从而提供一个更广泛的平台。
一.背景MPEG-4最初是为提供适应极低码率音频/视频(AV)编码系统的国际标准。
如在PSTN传送可视电话及监控,在移动网上各种可能的AV业务,以及多媒体电子邮件、电子报纸、交互式多媒体数据库等。
随着研究的深入,它包含的内容和将要起的作用已经远超过了最初的设计思想。
二.特点及优越性1.基于内容的AV编码以前AV信息被看作纯粹的数据,编码时没有结合自身包含的内容,例如视频序列被认为是象素的组合。
MPEG-4采用了对象的概念,不同的数据源被视作不同的对象,分别编码。
数据的接收者不再是被动的,他可以对不同的对象进行自己的操作:删除、添加、移动等。
语音、图像、视频等可以作为单独存在的对象,也可以集合成一个更高层的对象,我们称之为场景。
举例说明,MPEG-4在编码前首先要对视频序列进行分析和理解以提取目标,其码流信息首先应给出各个目标的场景描述。
想象一幅“人在旅途”的场景:“枯藤老树昏鸦,小桥流水人家,古道西风瘦马,夕阳西下,断肠人在天涯。
”其场景可分解(或分割)成多个多媒体目标组成。
H.264 MPEG4H.264概览1. 引言数字电视和DVD-video的出现使得广播电视和家庭娱乐发生了彻底的变革.越来越多的这些应用成为可能随着视频压缩技术的标准化.MPGE系列的下一个标准,MPEG4,正使得新一代的基于因特网的视频应用成为可能.而现在视频压缩的ITU-T H.263标准被广泛的应用于视频会议系统.MPEG4(视频)和H.263都是基于视频压缩(视频编码)技术的标准(大约从1995年开始).运动图像专家组和视频编码专家组(MPEG和VCEG)致力于开发一个比MPEG4和H.263有更好性能的新标准,有着高品质,低比特视频流的特性一个更好的视频图像压缩方法.新标准"高级视频编码"(A VC)的历史可追溯到7年前.1995年,为了通过电话线传输视频信号而制定的H.263标准定稿以后.ITU-T视频编码专家组(VCEG)就开始工作在两个更深入的发展领域:一个是"短期"的努力去增加H.263的额外特性(制定出标准的版本2),还有一个"长期"的努力,去开发一个适用于低比低率下可视通信的新标准,提供比之前的ITU-T标准更有效,明显更好的视频压缩方法.2001年,ISO运动图像专家组(MPEG)意识到H.26L的潜在优点,就组成了视频联合工作组(JVT),包括MPEG和VCEG的的专家.JVT的主要任务就是将H.26L"模式"草案发展成为一个完全的国际标准.实际上,结果产生了两个标准:ISO MPEG4第10部分和ITU-T H.264. 新标准的官方命名是"高级视频编码"(A VC);然而,旧的命名H.26L和以ITU文档号命名的IH.264[1]更广为人知.2. H.264 编解码器和之前的标准一样(如MPEG1,MPEG2和MPEG4),H.264标准草案并没有明确定义一个编解码器.在一定程度上,标准定义了视频比特流编码和与之相对应的解码方法的语法.然而实际上,一个符合的编码和解码器一般包括如图Figure 2-1 和Figure 2-2中所示的功能模块.同时这些图中所示功能通常是必须的,但编解码器还是可以有相当多的变种.基本的功能模块(预测,传输,量化,熵编码)与之前的标准(MPEG1,MPEG2,MPEG4,H.261,H.263)差不多.H.264的最重要的变化是在这些功能模块的实现细节上.编码器包括两个数据流路径.一个"前向"路径(从左到右,以蓝色表示)和一个"重构"路径(从右到左,以洋红色表示).解码器的数据流路径以从右到左的方式表示,以此来说明编码器和解码器之间的相同点.2.1编码器(前向路径)当一个输入帧Fn被提交编码。
四路数字音频编码器使用说明书目录1安全注意事项12概述22.1产品功能及用途22.2外形尺寸(1U机箱)23主要特点34技术规格与指标34.1音频接口特性34.2数据接口44.2.1DVB ASI输入/输出接口44.3网络管理接口44.4辐射及安全要求45系统组成及工作原理45.1系统组成46安装指南66.1安装准备66.2设备安装流程76.3环境条件要求76.4接地要求86.4.1机柜接地86.4.2设备接地86.5线缆的连接86.5.1电源线的连接86.5.2信号线的连接97前面板操作指南97.1键盘功能97.2菜单选择107.2.1锁定状态显示107.2.2主菜单显示107.2.3编码器设置107.2.4复用设置117.2.5音频设置117.2.6系统设置137.2.7ASI输入157.2.8输出设置157.2.9网络设置167.2.10保存当前设置177.2.11加载设置177.2.12版本号177.2.13选择语言种类(中文和英文)187.2.14错误信息187.3系统运行错误及排除187.3.1指示灯状态187.3.2常见故障排除198网络管理器操作指南198.1NMS登陆208.2添加频点218.3添加设备228.4修改设备238.5查看和设置设备参数268.5.1输出设置268.5.2音频参数278.5.3系统设置288.5.4ASI输入298.5.5NIT编辑30网管软件公共功能31前言感谢您选用本公司的产品。
本手册详细介绍了产品的性能、安装及操作方法,无论您是第一次使用该产品,还是以前接触过很多类似产品,都必须在使用前仔细阅读本手册。
收货检查打开设备包装箱校验物品,务必检查小部件的包装材料,对照产品装箱清单或者下列项目检查包装箱中的物品:四路数字音频编码器1台交流输入电源插线1根ASI线2根平衡数字音频线 4根如果这些项目与清单不符合,请立即通知我公司。
阅读用户手册请仔细阅读用户手册,并遵从所有操作及其它说明事项。
编码器的使用方法
编码器是一种用于将大量数据进行压缩和转换的工具。
以下是使用编码器的一般步骤:
1. 导入编码器库:根据编码器的类型,导入相应的编码器库。
例如,如果使用Base64编码器,可以导入base64库。
2. 准备待编码的数据:将要编码的数据存储在一个变量中,或从文件或其他数据源读取。
确保数据格式与所选编码器兼容。
3. 调用编码器函数:根据编码器库提供的API,调用适当的编码器函数。
传入待编码的数据作为参数。
编码器函数通常会返回编码后的数据。
4. 处理编码后的数据:根据需求处理编码后的数据。
例如,可以将编码后的数据写入文件,发送给其他系统,或在其他地方使用。
5. 解码数据(可选):如果需要将编码后的数据解码回原始格式,则可以使用相应的解码器来执行解码操作。
解码器的使用方法与编码器类似。
需要注意的是,具体编码器的使用方法可能因编码器的类型和库而异。
因此,请参考相应的编码器文档或库文档,以了解特定编码器的使用方法和更多细节。
一、MPEG4 编码器流程MPEG-4视频编码器的实现步骤首先读取一帧数据,取一个宏块,根据编码控制选择编码类型,是intra 帧内编码,还是inter 帧间编码。
如果是I 帧,所有宏块都是intra 帧内编码,则读取的宏块数据直接进入DCT 、Q(量化)、DC/AC 预测(直流系数与交流系数)、RLC(行程编码)并与其他信息一起合成形成码流;如果是P 帧,先进行ME(运动估计),然后判断是intra 帧内编码,还是inter 帧间编码。
如果是intra 帧内编码,则直接利用宏块本身进行DCT 等一系列数据处理;如果是inter 帧间编码,则将经过运动估计得到的运动矢量MV 传送给MC(运动补偿)单元,结合帧缓存中的上一帧的重建帧数据与当前宏块的像素值做运算,得到残差数据,然后对残差值进行DCT 等处理。
在编码过程中,有一个重建图像的过程,其得到的数据存放在帧缓存中,作为下一帧的参考帧。
二、各层参数(一)MPEG-4视频数据流结构:其位流语法从上到下大致可以分为:视觉对象序列(Visual Object Sequence),视觉对象(Visual Object),视频对象层(Video Object Layer),视频对象平面层(Group of Video Object Plane ) 帧缓存VLC 多路复合编码控制MVME MCDCT Q IQIDCTRLC intrainter 编码模式量化参数DC/AC 预测扫描取一个宏块读取一帧数据视频对象平面(Video Object Plane)。
VS(Visual Object Sequence):由一系列VO视频对象组成。
场景是一个或多个声视频对象的组合。
场景的逻辑结构可以用一棵树表示,树中的节点是声视频对象。
MPEG4系统用二进制场景格式BIFS描述场景中声视频对象的空间和时间位置及它们之间的关系。
MPEG4的视频比特流提供了对场景的分层描述。
在比特流中,表示场景的层是可视对象序列VS(VideoObjectSequence),它是一个完整的MPEG4场景,其中可能包含自然对象或合成的对象以及它们的增强层。
VO(Video Object):是可视场景中景物的抽象描述,从用户的角度,它代表画面中任何有意义的物理实体。
视频对象是MPEG-4编码的独立单元,由时间上连续的许多帧构成。
VO的构成依赖于工具的应用和系统实际所处的环境,在超低比特率的情况下,VO可以是一个矩形帧,与MPEG-1、H.263兼容;对于基于内容的应用,VO可能是场景中的某一物体,也可能是计算机产生的二维、三维图形等。
每一个VO有3类信息描述:形状信息、运动信息和纹理信息。
VOL(Video Object Layer):属于同一VO的形状、运动和纹理信息被编码成一个单独的结构,称为视频对象层(VOL)。
它的引入主要是用来实现VO的视域或者空域分级(Scalable)。
对同一个VO,可以用不同的空间或时间分辨率编码多层结构,从一个基础层开始,用增加一些增强层次的方法,以分层的方式重建视频。
每个视频对象可以编码成可伸缩(多层)或不可伸缩(单层)的视频流,用哪一种方式编码取决于应用。
GOV:VOP(Video Object Plane):VO在某一个时刻的表象即某一帧的VO,称为VOP。
假设输入的视频序列的每一帧都被分割成多个任意形状的VOP(在MPEG-1、MPEG-2及H.263中,被处理的图像总是矩形),每个VOP定义场景中特定的视频内容。
各个VOP的形状和位置可随帧变化。
属于场景中同一实际物体连续的有着任意形状任意位置的VOP序列就是视频对象VO。
VOP是MPEG4中编码的基本单位。
每个VOP可以独立地编码,也可以使用运动补偿技术相互依赖地编码。
传统的视频帧也可以用矩形VOP表示。
VOP包含了视频对象的运动参数、形状信息和纹理等数据。
VOP既是一个空间概念也是一个时间概念。
从另一个角度说,VOP是视频对象VO在特定时刻的取样。
因此,属于场景中同一个物理对象的连续的VOP就代表了一个视频对象VO。
从编码的角度来看,VO实际上是由一组同一实体的任意形状和位置的VOP序列组成的。
VOP包括主体对象、背景对象以及文字图形三类。
3 MPEG-4视频压缩编码框架一个序列是多个VO的集合,每个VO由三类信息来描述:运动信息、形状信息和纹理信息。
所以编码也是针对该时刻的VO的形状、运动、纹理这三类信息进行的。
由于VO是以VOP的形式出现的,所以在这里介绍VOP编码结构。
从图2.2可以看到,MPEG-4视频编码器的输入是VOP。
VOP包含了三部分信息:视频对象的纹理信息、运动信息和形状信息。
在传统的运动、纹理可变长编码之外,MPEG-4视频编码器增加了一种新的模块即形状编码模块。
1) 形状编码与MPEG-2相比,MPEG-4引入了形状编码算法。
目前的标准中采用矩阵的形式来表示二值或灰度形状信息,称之为位图(或阿尔法平面)编码的形状信息有两类:二值形状信息(binaryshapeinformation)和灰度级形状信息(grayscaleshapeinformation)。
形状信息就是透明程度。
(1)二值形状信息就是用l表示编码VOP的形状区域,0表示非VOP区域。
二值形状信息的编码采用基于运动补偿的技术,可以是无损或有损编码。
二进制 平面事实上是一个矩形,该矩形将视频对象完全包含在内,且其水平与垂直方向的长度均为16的整数倍。
矩形内属于视频对象的像素值置为255,称为不透明像素,反之置为0,称为透明像素。
纹理编码可变长编码纹理编码场景分析对象分割帧存储器运动编码复接形状编码视频输入纹理信息运动信息形状信息二值形状编码的方法是检测其色彩变化多端的像素(从255变0,或者相反)并计算相邻变化像素之间地距离。
如果一个形状块中所有像素具有相同的色彩而不进行编码,只需将一个标志传送给解码器,以告诉解码器这个形状块的形状信息是全部透明(0)还是全部黑暗的(255)。
对于二值形状编码,如果使用有失真的编码,则二值的形状信息可以进行尺寸转换(既亚采样)。
目前的亚采样率分别是4∶1和16∶1。
有失真的形状编码对整个数码率的影响无法直接估计,因为有失真的形状将影响用来表示有失真重建VOP纹理和运动信息所需的比特数。
在设计编码级的控制机制时,这是应该意识到的一个重要问题(2)灰度级形状信息可取值0~255,用0~255之间的数值来表示VOP的透明程度。
0表示非VOP 区域即表示完全透明(相当于二值形状信息中的0);l ~255表示VOP 编码区域的透明程度,255表示完全不透明(相当于二值形状信息中的1)。
对灰度形状信息的编码是分别对二值形状及像素亮度值进行编码。
对像素亮度值的编码是以16×16亮度宏块为单元用纹理编码技术进行编码(基于块的运动补偿DCT 方法),属于有损编码。
目前的标准中采用矩阵的形式来表示二值或灰度形状信息,称之为位图(或阿尔法平面)。
图2.2 VOP 编码结构(3)VOP 的形状编码是这样实现的:首先将二进制α平面分割成16×16的宏块,称这样的宏块为二进制α块,简称BAB ,再逐个对BAB 分别进行编码。
对BAB 的编码方法是类似于纹理宏块的编码方法,如搜索匹配、运动估计、变换编码等。
需要注意的是:BAB 的变换编码使用的是算术编码。
同时由于BAB 的特殊性(其内部像素值只可取值为0或255),因而BAB 有更多可选的编码模式。
2)运动编码由于在现实中实现任意形状的视频对象的分割是很难的,因而事实上在很多情况下MPEG-4运动估计与运动补偿的作用就是通过去除运动图像序列的帧间相关性来实现数据的压缩,也就是通常所说的运动补偿帧间预测。
一般情况下,活动图像相邻帧之间,内容变化很小(场景切换等除外),只是其中少部分图像运动,因而相邻帧之间有较大的相关性(时域相关)。
利用这一特点,将当前数据与参考数据进行比较,确定运动部分的运动情况,即进行运动估计ME(Motion Estimation),并把结果表示成运动矢量。
再根据运动矢量,由参考图像数据预测当前图像数据,获得预测图像数据。
预测图像数据与当前图像数据之差就是需要传送的帧差信号,这一过程即为运动补偿MC(Motion Compensation)。
运动估计越准确,帧差信号就越小,从而得以有效地去除视频信号在时间方向的重复信息,达到数据压缩的目的。
MPEG-4利用运动估计和补偿技术来去除帧间的冗余度,这些运动信息的编码技术可视为现有标准由向任意形状的VOP的延伸。
通过对已知图像的一块像素值重新定位,来预测当前图像中相应块的像素值MPEG-4与其他标准(MPEG1、MPEG2)的主要区别在于MPEG-4采用的是VOP结构(基于任意形状的VOP),而不是基于块的技术。
VOP有3种编码模式: 即帧内(Intra-Frame)编码模式(I-VOP),帧间(Inter-Frame)预测编码模式(P-VOP),帧间双向(directionally)编码模式(B-VOP),其中P-VOP和B-VOP编码时需要运动补偿。
MPEG4的运动估计和补偿采用H263中的“半像素搜索”和“重叠运动补偿”。
✧IVOP与其它标准的I帧一样只采用帧内压缩,与其它任何VOP无关;I帧不使用运动补偿,提供中等压缩比;随机存取的入点,解码中的基准帧;一个图像以I帧开头,6:1压缩,不产生模糊现象;一秒2个I帧。
利用图像自身相关性压缩,是P,B帧的参考图像,DCT后每个像素为1~2bit。
✧PVOP和BVOP编码时需要运动估计与运动补偿,PVOP基于另一个先被解码的VOP作出预测;根据前面的I帧或P帧进行预测(向前预测);使用运动补偿压缩数据量达I帧的三分之一左右;P帧为对前后的B帧和后继P帧进项解码的基准帧;本身有误差,若前一帧为P帧会造成误差传播。
✧BVOP则基于当前VOP的前面和后面的VOP作出预测,故BVOP称为双向插值VOP,是基于IVOP或PVOP的插值帧,基于前后的两个I,P帧或P,P帧;双向预测,数据量平均可达I 帧的九分之一左右;本身不作为基准,可以在提高压缩比时不传播误差。
解码器的输入顺序 I0 P3 B1 B2 P6 B4 B5①如果一个宏块完全位于一个VOP 内,就采用一般的基于16×16像素宏块或8×8像素块运动估计,运动矢量以半点精度进行运算②如果一个宏块只有一部分位于VOP 内,就采用修正的块匹配技术估计运动矢量,需要采用图像填充(ImagePadding)技术和多边形匹配(PolygonMatch-ing)技术,而这些运动信息的编码技术可视为现有标准向任意形状的 VOP的延伸。