音视频编码解码研究.docx
- 文档编号:7684163
- 上传时间:2023-01-25
- 格式:DOCX
- 页数:20
- 大小:243.96KB
音视频编码解码研究.docx
《音视频编码解码研究.docx》由会员分享,可在线阅读,更多相关《音视频编码解码研究.docx(20页珍藏版)》请在冰豆网上搜索。
音视频编码解码研究
摘要
编码要紧有三方面的含义:
模拟信号的数字化进程、数据的紧缩进程和数据的加密进程。
本文所研究的范围是音频、视频的紧缩编码和解紧缩解码问题。
本文目的是在研究已有的音视频编码解码基础上,尝试将无损紧缩应用于音频、视频的编码和解码,开发出一种新的编解码方式,并在新方式的研究进程中对已有的编解码原理进行验证加深明白得,并探讨音视频编解码在实际生活中运用的意义,理论与实际相结合的价值。
本文先对已有的视频、音频的编解码原理、机制和主流编解码框架进行了整理和研究,然后依照已有原理尝试应用新的思想开发了一种音视频编码解码方式,通过运用DirectShow和VC++作为开发工具,引用Zlib函数库来实现了这种音视频编码解码方式,并通过运行测试对新的编解码方式对CPU运行的阻碍、编码后的文件大小和网络传输时刻的花费三方面进行了测试和总结。
通过研究开发出了这种新的编解码方式,经测试发觉新的编码方式较未编码时花费较多的CPU资源,编码后的文件大小大约是未编码文件时的1/2左右,网络传输时刻的花费也较少。
通过研究证明音视频的编码解码进程确实是音视频紧缩与解紧缩的进程。
无损紧缩也能较好的对音频和图像数据进行紧缩。
无损紧缩音视频的编码方式可应用于关于图像还原有较高要求的领域。
关键词:
音频;视频;编码;解码
TheResearchonAudioandVideoEncodingandDecoding
Abstract
Therearethreemaincodingmeaning:
thedigitalsimulationsignalprocess,datacompressionprocessanddataencryptionprocess.ThispaperstudiestherangeofaudioandvideoEncodingandDecoding.Thepurposeistoresearchthatbasisontheexistingofvideoencodinganddecoding,trytobeappliedtoaudioandvideowithnondestructivecompressedvideoencodinganddecoding,developedanewkindofencodinganddecodingmethod,intheprocessofencodinganddecodingprinciple,verifyandexploredeeperunderstandingaudioandvideocodecusedinreallife,thevalueofcombiningtheorywithpractice.Thispaperfirsttoresearchandsummarizethevideoandaudiocodecprinciple,mechanismandmainstreamdecodingframe,andthenbasedontheprincipleandnewideastodevelopanaudioandvideocodecencodinganddecodingmethod,usingVC++,DirectShowasdevelopmenttools,citingafunctionofZlibtorealizethismethod,andthroughtheoperationofthenewtestmethodofencodinganddecodingCPUrunaftertheimpact,thecodeofthefilesizeandnetworktransmissiontimespentthreeaspectsweretestedandsummarized.
Throughtheresearchanddevelopthenewdecodingmethod,thenewmethodoftestingcodespendmoreresourcesthanwhentheCPUisnotcoding,thecodefilesizeisaboutthe1/2ofthefileswithoutcode,andnetworktransmissionspentlesstime.
Throughtheresearchofaudioandvideoencodinganddecodingprocessistocompressionanduncompressprocess.nondestructivecompressalsocanbettercompressionconditionofaudioandimagedata.Audioandvideocompressionconditioncanbeappliedtothecodingmethodforimagestillhigherrequirementoforiginal.
KeyWords:
Audio;Video;Encoding;Decoding
一、引言
20世纪90年代,多媒体技术随着人类进入信息时期而取得了迅速进展。
大量的音视频数据被普遍利用,如常见的VCD、DVD都是将大量的音、视频数据通过处置后供用户利用的。
音、视频相关技术在一些行业领域也取得了专门好的应用,如平安监控系统中对现场进行音视频录制,以便存档、查看、取证等。
由于音、视频数据量超级大,假设未通过处置,其寄存、网络传输都存在专门大问题。
为此,需要将它们进行编码(紧缩),如DVD光盘的内容确实是通过编码处置的;待用户利历时进行解码(解紧缩)即可,如DVD播放机确实是将光盘内容解码后进行音、视频播放的。
为了紧缩音、视频数据,显现了各类不同的编码方式,并都取得了必然成效。
可是被普遍认可的是由ISO组织公布的MPEG技术和由ITU-T组织公布的技术。
在过去的20年里,需要存储、传输和处置的信息数量成指数级的增加。
这主若是两项技术的进展,一是多媒体系统在众多领域普遍应用,过去运算机只能处置数字和文本,此刻已经能够处置声音、图像、电影;另一项为哪一项Internet的大进展,它使信息能够被许多人共享;二者结合产生了多媒体网络技术[1]。
第一,硬件方面的革新使这些方面进展成为可能。
CPU、磁盘、传输信道的性能都迅猛进展。
可是从以下事实仍能够看出,编码技术仍有一段路要走。
(1)存储一幅中等大小的未紧缩图像,比如说512×512pixel(像素)24位真彩色,需要的空间(512×512×3=)。
(2)一段10秒钟的音频取样频率为44KHz的16位立体声WAV格式音频需要的空间(WAV格式文件所占容量(bit)=取样频率×量化位数×声道×时刻/8即44K×16×2×10/8=KB)。
由此可见,不管是从经济仍是技术的角度,光靠硬件的支持并非能知足人们的需要。
信息紧缩的动机是很明显的,若是能用一种紧缩了的形式来表示信息,将会有以下几点益处:
节省存储空间、节省CPU时刻、节省传输时刻。
本文拟在研究已有的音视频编解码的基础上,通过应用新的编码思想开发一种新的音视频紧缩编码技术对已有的音视频编解码原理进行验证,并加深明白得。
二、音视频编解码原理
(一)视频编码原理
所谓视频编码确实是指通过特定的紧缩技术,将某个视频格式的文件转换成另一种视频格式文件的方式。
视频图像数据有极强的相关性,也确实是说有大量的冗余信息。
其中冗余信息可分为帧域冗余信息和时域冗余信息。
视频编码技术确实是将数据中的冗余信息去掉(去除数据之间的相关性),视频编码技术包括帧内图像数据紧缩技术、帧间图像数据紧缩技术和熵编码紧缩技术[2]。
1.去时域冗余信息
利用帧间编码技术可去除时域冗余信息,它包括以下三部份:
(1)运动补偿
运动补偿是通过先前的局部图像来预测、补偿当前的局部图像,它是减少帧序列冗余信息的有效方式。
运动补偿是一种描述相邻帧(相邻在那个地址表示在编码关系上相邻,在播放顺序上两帧未必相邻)不同的方式,具体来讲是描述前面一帧(相邻在那个地址表示在编码关系上的前面,在播放顺序上未必在当前帧前面)的每一个小块如何移动到当前帧中的某个位置去。
这种方式常常被视频紧缩/视频编解码器用来减少视频序列中的空域冗余。
(2)运动表示
不同区域的图像需要利用不同的运动矢量来描述运动信息。
运动矢量通过熵编码进行紧缩。
(3)运动估量
运动估量是从视频序列中抽取运动信息的一整套技术。
运动估量的大体思想是将图像序列的每一帧分成许多互不重叠的宏块,并以为宏块内所有象素的位移量都相同,然后对每一个宏块到参考帧某一给定特定搜索范围内依照必然的匹配准那么找出与当前块最相似的块,即匹配块,匹配块与当前块的相对位移即为运动矢量。
视频紧缩的时候,只需保留运动矢量和残差数据就能够够完全恢复出当前块。
运动估量算法是视频紧缩编码的核心算法之一。
高质量的运动估量算法是高效视频编码的前提和基础。
2.去帧域冗余信息
要紧利用帧内编码技术和熵编码技术:
(1)变换编码
帧内图像和预测差分信号都有很高的空域冗余信息。
变换编码将空域信号变换到另一正交矢量空间,使其相关性下降,数据冗余度减小。
变换编码不是直接对空域图像信号进行编码,而是第一将空域图像信号映射变换到另一个正交矢量空间(变换域或频域),产生一批变换系数,然后对这些变换系数进行编码处置。
其中关键问题是在时域或空域描述时,数据之间相关性大,数据冗余度大,通过变换在变换域中描述,数据有关性大大减少,数据冗余量减少,参数独立,数据量少,如此再进行量化,编码就能够取得较大的紧缩比。
目前经常使用的正交变换有:
傅立叶(Fouries)变换、沃尔什(Walsh)变换、哈尔(Haar)变换、斜(Slant)变换、余弦变换、正弦变换、K-L(Karhunen-Loeve)变换等。
(2)量化编码
通过变换编码后,产生一批变换系数,对这些系数进行量化,使编码器的输出达到必然的位率。
这一进程致使精度的降低。
(3)熵编码
熵编码是无损编码。
它对变换、量化后取得的系数和运动信息,进行进一步的紧缩[3]。
在视频编码中,熵编码把一系列用来表示视频序列的元素符号转变成一个用来传输或是存储的紧缩码流。
输入的符号可能包括量化的变换系数,运动向量(关于每一个运动补偿块的向量值x和y),标记(在序列顶用来表示重同步位的点),头(宏块头,图象头,序列的头等)和附加信息(关于正确解码来讲不重要的信息)。
(二)视频编码机制
编码机制通常能够分为有损编码,无损编码两种。
无损编码通经常使用于文本文件的紧缩中,其中没有信息损失的数据精准度重建是让人们关切的问题。
关于有损编码,许诺编码后产生质量上的误差。
有损编码机制的优势是能够取得比无损编码加倍高的紧缩比,可是它只能用近似的数据代替原始数据,而这种相似数据由市容易被紧缩的。
举例来讲,若是图像与原始图像在视觉上没有区别,那么它就能够够看做是原始图像的近似图像。
任何编码机制的目的都是去除数据中存在的相关性。
所谓相关性,确实是依照给出的一部份数据来判定出其相邻的数据。
实际中存在着很多种数据有关性。
那个地址列出常见的几种。
(1)空间相关性:
能够依照图像中的某一点的像素值推断出其相邻点的像素值。
(2)频率相关性:
一个信号的傅立叶变换一般是滑腻的,这意味着能够依照某一部份的频率来推断其相邻部份的频率。
(3)时刻相关性:
在数字视频中,在时刻上相邻的两帧图像的大部份像素值转变很小。
有损编码的标准进程是变换编码,即用上一个和原先不相同的数学基来表示数据,其数据的相关性能够显露出来或被拆开。
在这种新的基下,大部份的系数都接近于零,能够忽略,于是能够将余下的信息存储在一个较小的数据包中。
紧缩是通过数据变换,把域值以下的系数置零,对非零的数据进行无损的编码来实现。
1.无损编码
(1)行程编码(Run-Length)技术
行程编码是相对简单的一种编码,是指在一行扫描的像素中,比较相邻像素的幅度(如亮度)。
当幅度有一个显著的转变时,就说明有一个行程存在。
(2)Huffman编码紧缩
Huffman编码是一种长度不均的、平均码能够接近信息源熵值的一种编码。
该编码关于显现概率大的信息采纳短字长的码,关于显现概率小的信号用长字长的码,以达到缩短平均码长,从而实现数据紧缩的目的[4]。
(3)字典紧缩方式
目前普遍采纳的字典紧缩方式包括两种类型。
一种是在数据紧缩的进程中,寻觅当前等待进行紧缩处置的数据串中显现过,若是确实曾经显现过,那么利用指向已经进行处置数据串中的指针代替当前等待紧缩的数据串。
第二种是为输入数据创建一个短语字典,若是在当前等待进行紧缩的数据流中发觉字典,那么利用该短语在字典中的索引值代替原始数据。
(4)算数紧缩算法
算数紧缩算法与Huffman编码方式相似,都是利用比较短的代码取代图像数据中显现比较频繁的数据,而利用比较长的代码取代图像数据中利用频率比较低的数据,从而达到数据紧缩的目的。
2.有损编码
(1)预测编码方式
若是已知图像一个像素离散值,利用其相邻像素的相关性,预测它下一个像素(水平方向或垂直方向)的可能性,求其二者差,再量化、编码,这种方式称为预测编码方式简称预测法。
预测编码中典型的紧缩方式有脉冲编码调制(PCM,PulseCodeModulation)、差分脉冲编码调制(DPCM,DifferentialPulseCodeModulation)、自适应差分脉冲编码调制(ADPCM,AdaptiveDifferentialPulseCodeModulation)等,它们较适合于声音、图像数据的紧缩,因为这些数据由采样取得,相邻样值之间的差相差可不能专门大,能够用较少位来表示。
(2)转变编码
图像通过正交变换后,能够实现图像数据紧缩的物理本质在于通过量为坐标系的适当坐标旋转和变换,能够把散布在各个坐标轴上的原始图像数据,在新的坐标系中集中到少数坐标轴上,因此有可能用较少的编码比特数来表示一副子图像,实现图像的紧缩编码。
(3)金字塔编码
把原图像分解成许多不同的分辨率的子图像,并把高分辨率(尺寸较大)的图像放在基层,把分辨率低(尺寸较小)的子图像放在上层,从而组成一个金字塔,对图像,借助于拉普拉斯金字塔[5],对图像的每一曾别离量化、编码,并对是绝不灵敏的层粗化,用较少的码字编码,从而达到紧缩的目的。
(4)子带编码
子带编码先将先将原图用数字滤波器分解成不同频率的成份的分量,在对这些分量进行亚抽样,形成子带图像,最后对不同的子带图像别离用与其相匹配的方式进行编码。
(三)主流视频编码框架
目前视频流传输中最为重要的编解码标准有国际电联的、,国际标准化组织运动图像专家组的MPEG系列标准,另外在互联网上被普遍应用的还有Real-Networks的RealVideo、微软公司的WMV和Apple公司的QuickTime等。
1.MPEG
MPEG由ISO(国际标准组织机构)下属的MPEG(运动图象专家组)开发。
视频编码方面主若是Mpeg1(VCD利用)、Mpeg2(DVD利用)、Mpeg4(此刻的DVDRIP利用的都是它的变种,如:
DIVX,XVID等)、Mpeg4AVC[6];
音频编码方面主若是MPEGAudioLayer1/二、MPEGAudioLayer3(mp3利用)、MPEG-2AAC、MPEG-4AAC等等。
2.
系列:
由ITU(国际电传视讯联盟)主导,偏重网络传输。
包括、、、+、++、(MPEG4和AVC合作的结晶)。
3.微软windowsmedia
视频编码有Mpeg-4v1/v2/v3(基于MPEG4,DIVX3的来源)、WindowsMediaVideo7/8/9/10。
音频编码有WindowsMediaaudiov1/v2/7/8/9系列。
4.QuickTime
视频编码有SorensonVideo3、AppleMPEG-4、Apple。
音频编码有QDesignMusic二、AppleMPEG-4AAC。
5.RealMedia
RealMedia是RealNetworks公司制造出来的一种互联网流媒体魄式的统称,它的要紧特点是针对低带宽应用(最低)进行动态(声音、视频)媒体传输。
包括RealAudio,RealVideo。
(四)视频解码原理
视频解码确实是将编码后的文件或数据流,没有损失的或最大限度的还原成原始图像。
其解码进程大体上是其对应编码进程的逆运算。
视频解码地址法一样包括熵解码,反量化,反变换,插值,重建,滤波,参考帧插入等。
(五)音频编码原理
自然界中的声音超级复杂,波形极为复杂,通常咱们采纳的是脉冲代码调制编码,即PCM编码。
PCM通过采样、量化、编码三个步骤将持续转变的模拟信号转换为数字编码[7]。
(六)音频编码机制
依照采样率和采样大小能够得知,相对自然界的信号,音频编码最多只能做到无穷接近,至少目前的技术只能做到如此,相对自然界的信号,任何数字音频编码方案都是有损的,因为无法完全还原。
在运算机应用中,能够达到最高保真水平的确实是PCM编码,被普遍用于素材保留及音乐欣赏,CD、DVD和咱们常见的WAV文件中均有应用。
因此,PCM约定俗成了无损编码,因为PCM代表了数字音频中最正确的保真水准,并非意味着PCM就能够够确保信号绝对保真,PCM也只能做到最大程度的无穷接近。
咱们而适应性的把MP3列入有损音频编码范围,是相对PCM编码的。
强调编码的相对性的有损和无损,是想证明要做到真正的无损是困难的,就像用数字去表达圆周率,不管精度多高,也只是无穷接近,而不是真正等于圆周率的值。
(七)主流音频编码框架
1.WAVE
WAV文件格式是一种由微软和IBM联合开发的用于音频数字存储的标准,它采纳RIFF文件格式结构,超级接近于AIFF和IFF格式。
多媒体应用中利用了多种数据,包括位图、音频数据、视频数据和外围设备操纵信息等。
2.MP3
MP3音乐的编码原理说得简单些,确实是将音频文件紧缩成MP3文件,其实确实是找到并删除音频文件中人耳听不到的声音。
正常的人耳只能听到频率在20赫兹至2万赫兹的声音,音频文件中包括的一些声音可能超出了人耳所能听到的范围,另外还有一些细微的声音可能被更大的声音掩盖,还有一些音乐中的声音可能全然确实是多余的。
编码软件能将代表这种声音的文件找出来并加以删除。
如此,原先臃肿的音频文件就变小了。
紧缩音乐文件时,人们通常会说以多大的紧缩比率进行紧缩,紧缩比率的单位为Kbps(千字节/秒)。
被选择较高的紧缩比率时(如128Kbps),原始文件中被去除的数据将会比较少,音质比较好,但紧缩后的文件比较大,有时会致使文件无法利用;相反,被选择的紧缩比率较低时(如64Kbps),被去除的数据会比较多,如此做尽管缩小了文件,但却会造成音质损失。
3.OGG
OggVorbis的要紧算法是利用MDCT(修饰离散余弦变换ModifiedDiscreteCosineTransform)而不是用此刻比较时兴的小波(wavelet)技术。
Ogg采纳可交织通道技术(channelinterleaving)和极性矩阵映射技术(squarepolarmapping)两种技术组成的多通道编码技术,统称为立体声通道耦合(StereoChannelCoupling)。
与其他会造成立体空间感减弱的编码模型相较,这两种技术都能够在维持编码器的灵活性的同时而不损害本来的立体声空间音像,而且实现的复杂程度比联合立体声方式要低。
Ogg的编码中的比特率选项要紧有ABR、VBR和Quality三种,Ogg的比特率是可变的,推荐利用设置简单Quality模式,能知足大多数人要求。
4.WMA
WMA(WindowsMediaAudio),它是微软公司推出的与MP3格式齐名的一种新的音频格式。
由于WMA在紧缩比和音质方面都超过了MP3,更是远胜于RA(RealAudio),即便在较低的采样频率下也能产生较好的音质。
一样利用WindowsMediaAudio编码格式的文件以WMA作为扩展名,一些利用WindowsMediaAudio编码格式编码其所有内容的纯音频ASF文件也利用WMA作为扩展名。
5.RA
RA确实是RealAudio格式,大部份音乐网站的在线试听都是采纳了RealAudio,这种格式完全针对的确实是网络上的媒体市场,支持超级丰硕的功能。
最大的闪烁点确实是这种格式能够依照听众的带宽来操纵自己的码率,在保证流畅的前提下尽可能提高音质。
RA能够支持多种音频编码,包括ATRAC3。
(八)音频解码原理
音频解码一样是音频编码的逆进程,它将对应编码格式的数码流解码成PCM数码流,数码流传送的是的是量化实际音频信息而取得的频率系数,数码流的大体单位是同步帧。
解码的一样进程要通过同步、误码检测、运行比特流解包、指数解码、比特分派、解耦合,反变换、输出PCM码流等步骤。
三、音视频编码解码实现
通过以上研究,本文将探讨新的一种音视频编码解码,对音视频编码原理进行验证,并加深对音视频编码解码原理的明白得。
(一)系统分析
1.开发工具及函数
(1)Zlib[8]是提供资料紧缩之用的函式库,由Jean-loupGailly与MarkAdler所开发,第一版版在1995年5月1日发表。
zlib利用抽象化的DEFLATE算法,最初是为libpng函式库所写的,后来普遍为许多软件所利用。
目前zlib仅支持一个LZ77的变种算法,DEFLATE的算法。
那个算法利用很少的系统资源,对各类数据提供专门好的紧缩成效[7]。
(2)DirectShow(有时缩写如DS或DShow),是一种由微软公司开发的能够让软件开发者对媒体文件执行各类不同处置的应用程序设计接口。
它是微软公司对早先Windows视频科技的一次更新[9]。
基于微软公司Windows组成对象模型(COM)框架,DirectShow为大部份微软公司程序设计语言提供了一个媒体的普遍接口,而且是一个可扩展的,能在用户或开发者的命令下播放或记录媒体文件的,以Filter为基础的框架。
能够实现高质量的音视频搜集、编辑、编码、解码、格式转换、播放。
它解决了网络音频及视频信息传输中数据量大、数据源种类多、客户端软硬件环境不确信、视频音频需要同步等问题,因此有着普遍的应用。
工作模型
DirectShow利用模块化的体系结构,最要紧的组件是过滤器(Filter)把一系列过滤器组合起来形成DirectShow应用程序。
每一个过滤器提供一种功能,如获取数据源、编码、解码、播放等。
DirectShow提供了很多标准过滤器,用户能够直接利用。
但由于媒体魄式、紧缩方式、硬件属性等方面的特殊要求,用户常常需要自行开发过滤器来知足具体需求。
DirectShow应用程序中要紧包括以下5种过滤器:
源过滤器(SourceFilter)、转换过滤器(TransformFilter)、呈现过滤器(RenderFilter),别离负责获取数据流、处
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 视频 编码 解码 研究