(微电子学与固体电子学专业论文)嵌入式视频编码器与码率控制算法的实现.pdf_第1页
(微电子学与固体电子学专业论文)嵌入式视频编码器与码率控制算法的实现.pdf_第2页
(微电子学与固体电子学专业论文)嵌入式视频编码器与码率控制算法的实现.pdf_第3页
(微电子学与固体电子学专业论文)嵌入式视频编码器与码率控制算法的实现.pdf_第4页
(微电子学与固体电子学专业论文)嵌入式视频编码器与码率控制算法的实现.pdf_第5页
已阅读5页,还剩53页未读 继续免费阅读

(微电子学与固体电子学专业论文)嵌入式视频编码器与码率控制算法的实现.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘要 摘要 随着数字通信与网络技术的发展,信息时代的重要产物多媒体正在日新 月异地发展,嵌入式视频编码器作为多媒体技术的重要应用,已经成为目前多媒 体领域的研究热点,其应用领域也越来越广泛。但是在多媒体业务的推广过程中 出现了重要障碍,即视频编码码流的传输与实际信道带宽以及网络状态很难匹配, 于是码率控制技术应运而生。所以如何实现嵌入式视频编码器与码率控制算法显 得尤为重要与实用。 首先,在深入研究m p e g - 4 视频压缩标准之后,基于多媒体硬件平台 o m a p 5 9 1 0 的d s p 核,实现了m p e g - 4 视频编码器。为了提高编码器的编码速度 和d s p 的运行效率,从算法选择,数据通道安排、图像处理函数库、编译器、c 语言技巧等各个方面对m p e g 4 视频编码器进行了大量的优化工作,通过实验验 证该m p e g - 4 视频编码器可以实时编码并且压缩比很高。然后,研究了码率控制 算法的基本原理,理解现有典型的码率控制技术,结合人眼视觉特性,实现了基 于上述编码器的自适应码率控制算法,并得到实验验证证明码率控制算法的可行 性。 关键词:m p e g - 4 编码器o m a p 5 9 1 0码率控制 a b s t r a c t i i a b s t r a c t w i t l lt h e d e v e l o p m e n to fd i g i t a lc o m m u n i c a t i o na n dn e t w o r kt e c h n o l o g y , m u l t i m e d i aa sa ni m p o r t a n to u t c o m eo ft h ei n f o r m a t i o na g e ,h a sb e e np r o g r e s s i n g r a p i d l y e m b e d d e dv i d e oe n c o d e ri so n eo ft h ei m p o r t a n ta p p l i c a t i o n so fm u l t i m e d i a i t h a sb e e nt h eh o tt o p i ci nt h i sf i e l da n dh a sb e e nu s e di na l lk i n d so ff i e l d b u ti nt h e p r o c e s so fm u l t i m e d i as p r e a d i n g ,t h e r e sc o m i n gas i g n i f i c a n to b s t a c l et h a tt h e t r a n s m i s s i o no fc o d es t r e a mi sn o te a s yt om a t c hw i t ht h eb a n d w i d t ho fa c t u a ln e t w o r k s t a t i o n r a t ec o n t r o li sak i n do fp o p u l a rt e c h n o l o g yt os o l v et h i sp r o b l e m s oi th a s b e e nm o r ea n dm o r ei m p o r t a n ta n dn e c e s s a r yt or e a l i z ee m b e d d e dv i d e oe n c o d e ra n d r a t ec o n t r 0 1 f i r s t l y , t h em p e g - 4v i d e oc o m p r e s ss t a n d a r di sd e s c r i b e da n dav i d e oe n c o d e ri s s e tu po nt h eb a s i so ft h ed s po ft h ep l a t f o r mo fo m a p 5 910 i no r d e rt oi m p r o v et h e s p e e do ft h ee n c o d e ra n dt h ef u n c t i o ne f f i c i e n c yo fd s p , al o to fo p t i m i z a t i o nm e t h o d s a l eu s e ds u c ha sa l g o r i t h mc h o o s i n g ,d a t af l o wa r r a n g i n g ,i m a g el i b r a r y , c o m p i l e r , s k i l l s o fcl a n g u a g ea n ds oo n a n dt h ee x p e r i m e n t sp r o v et h a tt h ee n c o d e rc a nw o r ki nr e a l t i m ea n dt h ec o m p r e s s i o nr a t i oi sm g h s e c o n d l y , t h eb a s i ct h e o r yo fr a t ec o n t r o l t e c h n o l o g yi ss t u d i e da n da na d a p t i v er o t ec o n t r o la l g o r i t h mi sr e a l i z e di nt h em p e g - 4 e n c o d e ro nc o n s i d e r i n go f t h et y p i c a lr a t ec o n t r o ls t r a t e g i e sa n dv i s i o nc h a r a c t e r i s t i c s i n t h ee n d , s o m et e s tr e s u l t sa l eg i v e no u ta n dp r o v et h ef e a s i b i l i t yo ft h er a t ec o n t r o l a l g o r i t h m k e y w o r d :m p e g 4 e n e o d e ro m a p 5 9 1 0r a t ec o n t r o l 西安电子科技大学 学位论文独创性( 或创新性) 声明 本人声明所呈交的论文是我个人在导师指导下进行的研究工作及取得的研究 成果。尽我所知,除了文中特别加以标注和致谢中所罗列的内容以外,论文中不 包含其他人已经发表或撰写过的研究成果;也不包含为获得西安电子科技大学或 其它教育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做 的任何贡献均已在论文中做了明确的说明并表示了谢意。 申请学位论文与资料若有不实之处,本人承担一切相关责任。 本人签名: 西安电子科技大学 关于论文使用授权的说明 本人完全了解西安电子科技大学有关保留和使用学位论文的规定,即:研究 生在校攻读学位期间论文工作的知识产权单位属西安电子科技大学。本人保证毕 业离校后,发表论文或使用论文( 与学位论文相关) 工作成果时署名单位仍然为 西安电子科技大学。学校有权保留送交论文的复印件,允许查阅和借阅论文;学 校可以公布论文的全部或部分内容,可以允许采用影印、缩印或其它复制手段保 存论文。 :蓁茎i 辫 o 一甘 导师签名:篷兰堂j 日期! z ! :丝 第一章绪论 第一章绪论 1 1 视频压缩及其方法分类 人类已经步入信息时代,信息时代的重要特征是信息的数字化,而数字化的 多媒体信息特别是视频信息的数据量之大是惊人的。这样视频信息传输带宽急剧 增加,成为数据传输与通信技术的瓶颈。解决这种难题的重要方法就是对原始视 频数据进行压缩,减少视频序列的码率,以便能够在给定的通信信道上实时传输 视频。因此数字视频压缩技术是使数字信息走向实用化的关键技术。 从信息论观点来看,图像是一个信源,描述信源的数据是信息量和信息冗余 量之和。信息冗余量有许多种,如空间冗余、时间冗余、结构冗余、知识冗余、 视觉冗余等,视频压缩实质上是减少这些冗余量。可见减少冗余量是减少信源中 的冗余信息而不是减少信源中的信息量。另外在一些情况下,允许图像有一定的 失真而并不妨碍图像的实际应用,那么数据压缩的可能性就更大了。 目前已经有大量的数字压缩系统,还不断有新的方法出现,这就需要对已有 的和新的压缩方法进行规范。j p e g 、m j p e g 、m p e g 1 、m p e g 2 、m p e g - 4 、h 2 6 1 、 h 2 6 3 以及h 2 6 4 等一系列视频压缩编码国际标准应需要诞生了。视频压缩方法有 许多种,从不同的角度出发有不同的分类方法,从信息论角度出发可分为两大类: 1 冗余度压缩编码 也称信息保持编码或熵编码,具体说就是解码图像和压缩编码前的图像严格 相同,没有失真,从数学上讲是一种可逆运算。 2 信息量压缩编码 也称失真度编码或熵压缩编码,也就是说解码图像和原始图像是有差别的, 允许有一定的失真。 从压缩编码算法原理上也可以分为两大类: 1 无损压缩编码 哈夫曼编码、算术编码、行程编码、l z w ( l e m p ez i vw e l c h ) 编码。 2 有损压缩编码 预测编码:d p c m ( d i f f e r e n t i a lp u l s ec o d em o d u l a t i o n 微分预测编码) 、运动补 偿; 频率域方法:正交变换编码、子带编码; 空间域方法:统计分块编码; 模型方法:分形编码、模型基编码; 基于重要性:滤波、子采样、比特分配、矢量量化。 2 嵌入式视频编码器与码率控制算法的实现 衡量一个压缩编码方法优越的重要指标是:压缩比要高,有几倍、几十倍, 也有几百乃至几千倍;压缩与解压缩要快,算法要简单,硬件实现容易;解压缩 的图像质量要好。 另外选用编码方法时一定要考虑视频信源本身的统计特征、多媒体系统( 硬件 和软件产品) 的适应能力、应用环境以及技术标准,最终确定哪种编码方法更适合 特定的需要。 1 2 码率控制技术及其分类 码率控制技术是影响视频编码器编码码流在实际信道下传输的一个重要因 素。 为了提高压缩效率,常见的视频压缩技术( 如m p e g 、h 2 6 3 ) 都采用了变长编码 的方式,所谓变长编码是指将出现频率高的字符用较长的比特数表示,出现频率 低的字符用较短的比特数表示。所以一个视频序列经过压缩编码之后所得到的码 流是变速率的,即每帧编码所用的比特数是不相等的。然而解码后的视频质量和 编码器的输出码率是相互影响的。当要求视频质量越好,编码器的输出比特数就 应越高,但由于受带宽或存储容量大小的限制,在视频编码端需要将输出的比特 数控制在一定的范围内,以便在满足带宽或存储容量限制的同时,尽可能获得最 佳的视频质量,这就是码率控制技术的最基本的目的。可见,码率控制技术是视 频通信成功与否的关键因素之一。目前视频压缩标准虽然规定了视频编码的核心 算法、基本流程以及压缩码流的语法结构,但对算法的具体实现并没有严格限定, 这种开放式的框架使得人们可以根据各自的应用背景来设计不同的编码方案。其 中码率控制作为标准的开放部分之一,因其直接关系着视频图像的重建质量与传 输延时,多年来一直是视频编码领域的研究热点。 根据用户网络接口选择的信道码率是否恒定,视频码率控制算法可以分为基 于c b r ( c o n s t a n tb i tr a t e 恒定码率) 与v b r ( v a r i a b l eb i tr a t e 可变码率) 两类控制 算法。c b r 常用于电路交换网( c i r c u i ts w i t c h i n gn e t w o r k ) ,v b r 贝j j 适用于包交换网 ( p a c k e ts w i t c h i n gn e t w o r k ) ,j t h a t m 。有研究表明【3 j ,经a t m 传输的v b r 码流比经 电路交换网传输的c b r 码流具有更好的图像质量、更短的系统延时和更高的 s m g ( s t a t i s t i c a lm u l t i p l e x i n gg a i n 统计复合增益) ,但获得这些优点的前提条件是 必须有适当的信源与信道码率控制来满足a t m 对v b r 的约束,且这些码率控制技 术含量非常高,模型建立也非常复杂。对于c b r 码流来说,由于码流输出速率是 恒定的,通常只需根据给定的信道码率进行相应的信源码率控制,算法相对比较 简单,但由于要将编码器输出的v b r 码流平滑成c b r 码流,所需的缓存器尺寸较 大,由此造成的系统延时也较长。虽然解码后的图像质量比之v b r 技术要略差些, 第一章绪论 但是由于图像信噪比的降低在人眼可接受范围之内,且很多视频系统的接受对象 是人,所以c b r 技术有很大的应用价值。在嵌入式系统平台上,由于资源有限, 同时又要实现实时控制编码器输出码流的功能,基于c b r 技术的码率控制算法就 体现了其应用价值。 根据是否需要参考视频信源信息,码率控制算法可分为两类:前向控制【1 3 。1 4 】 与后向控n t b - 1 6 ,分别如图1 1 、1 2 所示。 前向控制算法是通过对各编码单位编码输出比特数的预测或用试验迭代的方 法来确定相应的量化步长。后向控制方法则主要依据发送缓存容量和信道速率来 动态调整各编码单位的量化步长,简单而直接,能有效地保证编码器的码率输出 与信道码率相适应,但是会引起量化参数较大的波动,从而导致图像质量的起伏。 前向控制算法与后向码率控制方法相比,由于考虑了图像的具体内容,特别是一 些算法还利用了人的视觉特性因而得到的图像质量较好,但是其运算量明显增大 而且也不能保证预测的完全准确。因此,在实际的码率控制策略中,往往是两种 算法的综合运用。 视频 输出 图1 1 前向控制原理框图 图1 2 后向控制原理框图 4 嵌入式视频编码器与码率控制算法的实现 1 3 论文的组织结构与作者的工作 作为信息时代重要技术之一的数字视频压缩具有许多编码方案,不仅需要追 求高效率的编码功能,同时还要求编码压缩之后的码流传输能够最大限度地适应 网络带宽的变化,针对实际信道码流传输的特点,对编码码流的产生进行控制。 这两个问题是当今多媒体领域的研究热点,也是本文考虑的重点。本文基于 o m a p 5 9 1 0 嵌入式开发平台,实现了m p e g - 4 视频编码器并做了大量优化工作同 时基于已完成的编码器实现了基于c b r 的码率控制算法。 本文各个章节的安排如下: 第二章阐述m p e g 4 视频压缩标准的基本概念,给出了m p e g - 4 视频压缩编 码的原理框图,并对各个编码部分做了简单介绍,为m p e g - 4 视频编码器的实现 打下了基础。 第三章首先引出嵌入式开发平台o m a p 5 9 1 0 ,简要介绍编码过程中使用到的 软硬件资源。然后详细讲解m p e g - 4 视频编码器的实现过程以及关键算法的实现 方式,接着对编码器的优化工作做了总结,最后给出实验验证结果。 第四章基于已完成的m p e g - 4 视频编码器,建立适合本系统的码率控制方案, 详细讲解码率控制的模型建立、算法流程和数据流走向,并给出实验分析结果证 明码率控制算法的可行性。 作者在硕士学习阶段,主要做了以下方面的工作t 1 深入学习m p e g 4 视频压缩标准,阅读大量相关文献,为以后的各项工作 打下厚实的基础。 2 收集大量有关码率控制算法的国内外资料并进行分析比较,得出适合嵌入 式系统的码率控制算法。 3 学习o m a p 5 9 1 0 的相关软硬件知识,掌握d s p 的开发原理及其软硬件开 发环境c c s ,熟练使用开发工具,实现了基于d s p 的m p e g - 4 视频编码器,针对 视频编码算法的特点和开发平台的结构对编码器进行了大量的优化工作,提高了 编码器的运行速度。 4 基于m p e g 4 视频编码器,在d s p 上实现了自适应的码率控制算法。 第二章m p e g - 4 视频压缩标准 5 第二章e g 4 视频压缩标准 m p e g 4 1 1 1 是新一代基于内容的视频压缩编码国际标准,它不再是单纯的视音 频编解码标准,更多定义的是一种格式和框架,而不是具体的算法,从而为多媒 体数据压缩提供了一个更广泛的平台。它以视听媒体对象为基本单元,采用基于 内容的压缩编码,以实现数字视音频、图形合成应用及交互式多媒体的集成。 2 1m p e g 4 基本概念 m p e g - 4 标准通过定义类( p r o f i l e ) 、级( l e v e l ) 、算法( a l g o r i t h r n ) 和工具( t o o b g 马 层结构来描述m p e g 一4 在某一具体应用中的编码方案。 工具:被定义为通过m s d l ( m p e g - 4s y n t a c t i cd e s c r i p t i o nl a n g u a g e ) 得到的一 种方法,例如如何进行运动估计或者轮廓描述。 算法:被定义为可提供一个或者多个功能的工具的集合,例如m p e g 1 音频、 视频或者m p e g 2 系统等。 类:被定义为解决特定编码或者功能需求的标注方法,用于确定m p e g - 4 元 素( 工具和算法) 如何配置、组合为一个编码器或者解码器,以完成特定的应用。 m p e g 4 包括视频、音频、图形、场景描述、m p e g j 与对象描述六大类,每一类 下面又分为一个或者多个级,用来限制计算的复杂度。这种类与级的分类方法使 得任何符合规定的器件,不管是计算机软件、手机还是机顶盒,都可以正常工作。 在m p e g 4 中把连续活动的画面及伴音的整体称之为一个场景。m p e g - 4 的场 景采用层次化树型结构,如图2 1 所示。叶节点为a v o ( a u d i ov i d e oo b j e c t ) ,多个 a v o 经过组合构成复合a v o ,多个复合a v o 按时空关系组合成场景。a v o 被分 别编码,并与场景描述信息和其他同步控制信息合成比特流。 图2 1m p e g - 4 场景层次化树型结构 6 嵌入式视频编码器与码率控制算法的实现 视频作为其中一个重要的叶节点,其位流语法从上到下大致可以分为:视觉 对象序列( v i s u a lo b j e c ts e q u e n c e ) ,视觉对象( v i s u a lo b j e c t ) ,视频对象( v i d e o o b j e c t ) ,视频对象层( v i d e oo b j e c tl a y e r ) ,视频对象平面( v i d e oo b j e c tp l a n e ) 。 v s ( v i s u a lo b j e c ts e q u e n c e ) :由一系列v o 视频对象组成。 v o ( v i d e oo b j e c t ) :是可视场景中景物的抽象描述,从用户的角度,它代表画 面中任何有意义的物理实体。视频对象是m p e g 4 编码的独立单元,由时间上连 续的许多帧构成。v o 的构成依赖于工具的应用和系统实际所处的环境,在超低比 特率的情况下,v o 可以是一个矩形帧,与m p e g 1 、h 2 6 3 兼容;对于基于内容 的应用,v o 可能是场景中的某一物体,也可能是计算机产生的二维、三维图形等。 每一个v o 有3 类信息描述:形状信息、运动信息和纹理信息。 v o l ( v i d e oo b j e c tl a y e r ) :属于同一v o 的形状、运动和纹理信息被编码成一 个单独的结构,称为视频对象层( v o l ) 。它的引入主要是用来实现v o 的视域或者 空域分级( s c a l a b l e ) 。对同一个v o ,可以用不同的空间或时间分辨率编码多层结构, 从一个基础层开始,用增加一些增强层次的方法,以分层的方式重建视频。每个 视频对象可以编码成可伸缩( 多层) 或不可伸缩( 单层) 的视频流,用哪一种方式编码 取决于应用。 v o p ( v i d e oo b j e c tp l a n e ) :v o 在某一个时刻的表象即某一帧的v o ,称为v o p 。 假设输入的视频序列的每一帧都被分割成多个任意形状的v o p ( 在i v p e g 1 、 m p e g 2 及h 2 6 3 中,被处理的图像总是矩形) ,每个v o p 定义场景中特定的视频 内容。各个v o p 的形状和位置可随帧变化。属于场景中同一实际物体连续的有着 任意形状任意位置的v o p 序列就是视频对象。 2 2m p e g 4 视频压缩编码框架 一个序列是多个v o 的集合,每个v o 由三类信息来描述:运动信息、形状信 息和纹理信息。所以编码也是针对该时刻的v o 的形状、运动、纹理这三类信息 进行的。由于v o 是以v o p 的形式出现的,所以在这里介绍v o p 编码结构。 从图2 2 可以看到,m p e g 4 视频编码器的输入是v o p 。v o p 包含了三部分 信息:视频对象的纹理信息、运动信息和形状信息。 在传统的运动、纹理可变长编码之外,m p e g - 4 视频编码器增加了一种新的模 块即形状编码模块。 2 2 1 形状编码 v o p 的形状信息被称为口平面。m p e g - 4 视频编码器的形状编码就是对口平 第二章m p e g - 4 视频压缩标准 7 面进行编码。有两种口平面:二进制口平面和灰度口平面。灰度口平面用来表示 视频对象的透明度,编码方法类似于纹理编码。二进n a 平面事实上是一个矩形, 该矩形将视频对象完全包含在内,且其水平与垂直方向的长度均为1 6 的整数倍。 矩形内属于视频对象的像素值置为2 5 5 ,称为不透明像素,反之置为0 ,称为透明 像素。 图2 2v o p 编码结构 v o p 的形状编码是这样实现的:首先将二进制口平面分割成1 6 1 6 的宏块, 称这样的宏块为二进制口块,简称b a b ,再逐个对b a b 分别进行编码。对b a b 的编码方法是类似于纹理宏块的编码方法,如搜索匹配、运动估计、变换编码等。 需要注意的是:b a b 的变换编码使用的是算术编码。同时由于b a b 的特殊性( 其 内部像素值只可取值为o 或2 5 5 ) ,因而b a b 有更多可选的编码模式。 由于在现实中实现任意形状的视频对象的分割是很难的,因而事实上在很多 情况下m p e g - 4 的视频编码器并没有形状编码的功能。本文实现的m p e g - 4 编码 器是基于s p ( s i m p l ep r o f i l e ) 级的,没有形状编码这一功能。 2 2 2 运动编码 运动编码主要就是包括运动估计和运动补偿。 运动估计与运动补偿的作用就是通过去除运动图像序列的帧间相关性来实现 数据的压缩,也就是通常所说的运动补偿帧间预测一般情况下,活动图像相邻 帧之间,内容变化很小( 场景切换等除外) ,只是其中少部分图像运动,因而相邻帧 之间有较大的相关性( 时域相关) 。利用这一特点,将当前数据与参考数据进行比较, 确定运动部分的运动情况,即进行运动估计m e ( m o t i o ne s t i m a t i o n ) ,并把结果表 示成运动矢量。再根据运动矢量,由参考图像数据预测当前图像数据,获得预测 图像数据。预测图像数据与当前图像数据之差就是需要传送的帧差信号,这一过 8 嵌入式视频编码器与码率控制算法的实现 程即为运动补偿m c ( m o t i o nc o m p e n s a t i o n ) 。运动估计越准确,帧差信号就越小, 从而得以有效地去除视频信号在时间方向的重复信息,达到数据压缩的目的。 m p e g 4 与其它标准的主要区别就是其他标准采用的是基于块的技术,而 m p e g 4 采用的是v o p 结构。v o p 有三种编码模式:i - v o p 、p v o p 、b v o p 。 m p e g 4 的运动估计和补偿采用h 2 6 3 中的“半像素搜索和“重叠运动补偿 。 如果一个宏块只有一部分位于v o p 内,为了能使h 2 6 3 运动估计和补偿算法 能适用于任意形状的v o p ,引入了“图像填充( i m a g ep a d d i n g ) 和“多边形匹配 ( p o l y g o nm a t c h i n g ) ”技术。图像填充技术利用v o p 内部的像素值来外推v o p 外 的像素值,以此获得运动预测的参考值。多边形匹配技术则将v o p 的轮廓宏块的 活跃部分包含在多边形值之内,以此来增加运动估计的有效性。如果二个宏块完 全位于v o p 内,就和h 2 6 3 一样。 2 2 3 纹理编码 和h 2 6 3 一样,仍采用基于块的纹理编码。对纹理信息编码时,采用标准的 基于8 8 像素块的d c t ( d i s c r e t ec o s i n et r a n s f o r m 离散余弦变换) 方法。 d c t 其实就是目前应用最为广泛的变换编码的一种。变换编码的基本思想是 将通常的欧几里德几何空间( 空间域) 描述的图像信号,变换到另外的正交向量空间 ( 变换域) 中进行描述。在d c t 变换中就是将空间域的图像信号变换到频域中。空 间域的8 8 个像素组成的像素块,经正交变换,把能量集中在少数几个低频系数 上,从而消除空间域数据间的相关性,且变换后数据按低频到高频顺序排列,由 于人的感觉器官对高频分量不敏感,利用量化技术可以将高频分量去除,从而达 到数据压缩的目的。 在图像信号处理中,d c t 变换因其具有变换效果好且易于实现等优势被认为 是一种准最佳变换,近年颁布的一系列视频压缩编码的国际标准建议中,都把d c t 作为其中的基本处理模块。广泛用于j p e g 、m p e g 1 、m p e g 2 、m p e g 4 和h 2 6 x 1 6 j 等图像压缩系统上。 8 8 矩阵二维d c t 变换公式如式( 2 1 ) : f ( u ,v ) = l 4 c ( “) c ( v ) 厂( x ,y ) c o s 防( 2 x + 1 ) “1 6 】c o s 防( 2 y + 1 ) _ l ,1 6 ) 】( 2 1 ) x - - oy = o f 为8 8 的像素矩阵,f 为8 8 d c t 域矩阵,c 为余弦系数矩阵,则二维d c t 可简化表示为 f = c f c 2( 2 - 2 ) 二维d c t 实际上可分解为两个一维d c t :即先以x 为变量,对f - ( x ,y ) 逐列进 第二章m p e g - 4 视频压缩标准 9 行一维d c t 得到一中间结果;再对中间结果以y 为变量,逐行进行第二个一维 d c t ,得到最终的二维d c t 变换,分解过程如图2 3 所示。 - - _ _ - - _ _ ll 2 2 4 可变长编码 图2 3 二维d c t 分解为一维行、列d c t 变换 可变长编码是一种统计编码,该编码属于无损压缩编码。可变长编码的思想 是根据概率统计,用较短的码字来代替出现频率高的系数,而用较长的码字来表 示出现频率低的系数,以达到信息熵较小的目的。在m p e g - 4 中,通常使用行程 编码来作为可变长编码的实现算法。 2 3 小结 本章主要引入了m p e g 4 视频压缩的概念,介绍了m p e g - - 4 视频压缩标准的 基本概念。对m p e g - 4 视频压缩编码框架进行了解释,与传统的视频压缩标准的 不同之处在于它在视频编码发展史上第一次把编码对象从图像帧拓展到具有实际 意义的任意形状的视频对象,然而现实生活中任意形状的视频对象很难分割,事 实上在很多情况下m p e g 4 视频编码器并没有实现形状编码的功能,这样, m p e g 4 视频编码器就回归了传统的视频编码器。 第三章嵌入式m p e g - 4 视频编码器的实现 1 1 第三章嵌入式m p e g 4 视频编码器的实现 在嵌入式系统中,d s p ( d i g i t a ls i g n a lp r o c e s s o r 数字信号处理器) 得到了广泛的 应用。由于早期d s p 速度和性能的限制,使得m p e g - 4 算法很难在嵌入式开发平 台上实现,随着t i 公司新推出的o m a p ( o p e nm u l t i m e d i a a p p l i c a t i o n sp l a t f o r m 开 放式多媒体应用平台) 系列视频专用d s p 芯片,在嵌入式开发平台上实现实时编码 成为可能。这一章主要阐述如何在t it m s 3 2 0 c 5 5 xd s p 上实现m p e g - 4 视频编码 器以及如何对视频编码器做优化使得编码器可以实时编码。 3 1o m a p 5 9 1 0 平台简介 为了满足多媒体领域日益增加的新应用,t 1 公司提出了o m a p 体系结构,并 设计了o m a p 系列芯片。它采用一种独特的双核结构,把高性能、低功耗的d s p 核与控制性能强的a r m ( a d v a n c e dr i s cm i c r o p r o c e s s o r ) 微处理器结合起来,成为 一颗高度整合性的s o c ( s y s t e mo nc h i p 片上系统) 。它是一种开放式的、可编程的 基于d s p 的体系结构。由于运算处理能力强、功耗低,o m a p 在多媒体信号处理 方面具有明显的优势。 o m a p 5 9 1 0 1 2 是o m a p 系列芯片中的一个,它集成了t m s 3 2 0 c 5 5 x 数字信号 处理器和a r m 9r i s c ( r e d u c e di n s t r u c t i o ns e tc o m p u t i n g 精简指令运算集) 微处理 器。r i s c 极其适合处理控制代码,如:用户界面、o s ( o p e r a t i n gs y s t e m 操作系统) 和高级应用,而d s p 更适合实时信号处理。 3 1 1o m a p 5 9 1 0 硬件构架 o m a p 5 9 1 0 的硬件构架主要由a r m 核、d s p 核以及交通控制器( t r a 伍c c o n t r o l l e r ) 组成。集成了控制能力优越的a r m 9 2 5 t 内核、数字信号处理能力极强 的新一代c 5 5 xd s p 以及高吞吐率的输入输出部件。其结构框图如图3 1 。 以下几节将对o m a p 5 9 1 0 的主要模块:a r m 子系统和d s p 子系统进行分析。 1 2 嵌入式视频编码器与码率控制算法的实现 外部存储器 7 、x 一一 一 哆 7 v 外围设备 3 1 2 a r m 子系统 图3 1o m a p 5 9 1 0 结构框图 a r m 9 2 5 t 是o m a p 5 9 10 的主控微处理器,由a r m 9 t d m i 核、缓存、内存处 理单元等组成。 删9 2 5 核是a r mr i s c 体系结构的先进代表,是一个具有五阶段流水线的 3 2 位精简指令集处理器核,指令存取总线和数据存取总线相互独立,是典型的哈 佛总线结构。工作主频为1 7 5 m h z 。它包括存储器管理单元、1 6 k 字节的高速指令 缓冲存储器、8 k 字节的数据高速缓冲存储器和1 7 个字的写缓冲器。片内有1 5 m b 的内部s r a m ,为液晶显示等应用提供大量的数据和代码存储空间。它有1 3 个内 部中断和1 9 个外部中断,采用两级中断管理。此外,核内还有a r mc p l 5 协处理 器和保护模块。 a r m 9 2 5 t 的主要作用是负责支持应用操作系统及外围设备的系统管理等以 控制为核心的应用处理。 3 1 3d s p 子系统 c 5 5 xd s p 具有极佳的功耗性能比,它采用了三项关键的革新技术:增大的空 闲省电区域、变长指令和扩大的并行机制。其结构对于多媒体应用高度优化,适 合低功耗的实时语音图像处理。c 5 5 xd s p 核增加了处理运动估计、d c t ( d i s c r e t e c o s i n et r a n s f o r m 离散余弦变换) 、i d c t ( 逆d c r ) 和半像素插值的硬件加速器( h w a , 第三章嵌入式m p e g - 4 视频编码器的实现 1 3 h a r d w a r ea c c e l e r a t o r s ) ,降低了视频处理的功耗。c 5 5 xd s p 核内部有3 2 k 字的双 存取s 删,4 8 k 字的单存取s r a m 和1 2 k 字的高速指令缓存。此外,核内还包 含存储器管理单元和6 通道d m a 控制器直接存储器访问单元。 下面将对d s p 子系统的主要模块作详细的介绍。 1 d s p 内核 d s p 的性能特点: ( 1 ) 时钟频率可以达到2 0 0 m h z 。( 在o m a p 上,由于需要d s p 时钟与a r m 以 及内存控制器的时钟同步,时钟频率最高为1 5 0 m h z ) ; ( 2 ) 多总线结构。1 条程序内存总线( 包括1 条3 2 b i t 数据总线和1 条2 4 - b i t 地 址总线) ,5 条数据内存总线( 包括5 条1 6 _ b i t 数据总线和5 条2 3 - b i t 地址总线,3 条用于读,2 条用于写) ; ( 3 ) 程序内存和数据内存采用统一的物理内存空间和统一的地址空间; ( 4 ) 两个1 7 b i t 1 7 b i t - - - - 4 0 b i t 的乘法( 乘加) 器,每时钟周期可以完成两次乘法( 乘 a n ) 运算; ( 5 ) 8 个辅助寄存器( a r 0 - a r 7 ) 可以实现多种寻址和地址更新操作; ( 6 ) 8 m 1 6 b i t ( 1 6 m 字节) 地址空间; ( 7 ) 单指令或多指令重复操作、条件执行指令; ( 8 ) 7 级流水线结构。 2 硬件加速单元【4 】 t m s 3 2 0 c 5 5 xd s p 是基于开放式结构设计的,因此,它可以附加用于特殊应 用的硬件加速单元。c 5 5 x 上的硬件扩展单元,可以实现f d c t i d c t 、半像素插值 和运动估计的算法,使这些算法的运算速度有显著提高,如表3 1 所示。 表3 1 使用硬件扩展单元的性能提高 硬件扩展单元速度提高倍数 运动估计5 2 f d c t i d c t4 1 半像素插值7 3 t i 还提供了使用该硬件扩展的相关的宏( 用于汇编语言) 和函数( 可被c 语言调 用) 及其源代码,并封装在c 5 5 x 系列的i m g l i b 中,使开发人员可以方便地使用, 以提高d s p 的工作效率。 3 内存管理单元 o m a p 5 9 1 0 上的d s p c 5 5 x 的内存空间分为两部分一数据程序空间和i o 1 4 嵌入式视频编码器与码率控制算法的实现 空间。数据程序空间包括以下几部分: ( 1 ) m e m o r ym a p p e dr e g i s t e r s ( m m r ) m m r 的地址空间是从地址o x 0 0 0 0 0 0 到0 x 0 0 0 0 7 f ( 1 6 b i tw o r d 地址,如未特别 说明,本章所提到的d s p 地址均为1 6 b i tw o r d 地址) ,2 5 6 字节。用于存放d s p 内 核寄存器的值,改变m m r 中某些特定地址的值,可以改变相应的d s p 寄存器的 值。 ( 2 ) 双访问内存( d a r a m ) d a r a m 的地址空间是从地址o x 0 0 0 0 8 0 到0 x 0 0 7 f f f ,6 4 k 字节。每时钟周期 可以进行两次读写操作。通常用于存放使用频率高,或有读写操作的数据。在编 写汇编指令时,某些汇编指令必须在d a r a m 中寻址,涉及到这些指令的数据, 也应存放在d a r a m 中。 ( 3 ) 单访问内存( s a r a m ) s a r a m 的地址空间是从0 x 0 0 8 0 0 0 到o x 0 1 3 f f f ,9 6 k 字节。每时钟周期只能 进行_ 次读写操作。通常用于存放程序代码,以及使用频率低或只读的数据。 ( 4 ) 只读存储器内存空间( p d r o m ) p d r o m 的地址空间是从0 x 7 f c 0 0 0 到o x t f f f f f ,用来存放事先烧录在d s p 上的只读存储器中的代码,通常不需要用户进行修改。 ( 5 ) 扩展内存空间 从地址0 x 0 1 4 0 0 0 到0 x 7 f b f f f 的地址空间,这段地址空间没有d s p 片内的物 理内存与之对应。这段地址空间可以通过d s pm m u 映射到d s p 外的物理内存, 如s d r a m ,f l a s h 等。 d s p 的i o 地址空间是从0 x 0 0 0 0 到o x f f f f ,映射到d s p 的外设控制寄存器。 通过对特定y o 空间的地址的访问,可以实现对d s p 外设的控制和访问。 4 d m a ( d i r e c tm e m o 巧a c c e s s ) 控制器 d s p 的d m a 控制器可以实现以下功能: ( 1 ) 独立于m p u 进行数据传输; ( 2 ) 4 个标准通道口,分别用于:d a r a m ,s a r a m ,e m i f 和t i p b ; ( 3 ) 一个附加的通道口,用于m p u i 和内存之间的数据传输; ( 4 ) 6 个d m a 通道,可以分别独立传输6 块数据; ( 5 ) 可以实现与事件同步传输,由事件触发d m a 传输的开始: ( 6 ) 每个通道在传输过程中或传输结束时可以产生d m a 中断: ( 7 ) 可以通过软件设置选择源地址和目标地址的更新模式。 第三章嵌入式m p e g - 4 视频编码器的实现 1 5 3 2d s p 集成开发环境c c s 简介 c c s ( c o d ec o m p o s es t u d i o ) 是一个完整的d s p 集成开发环境,也是目前使用最 为广泛的d s p 开发软件之一。c c s 主要包含以下功能: 1 集成可视化代码编解界面,可直接编写c 、汇编等; 2 集成代码生成工具,包括汇编器、优化c 编译器、连接器等; 3 基本调试工具; 4 数据的图形的显示工具,可绘制各种图形; 5 提供d s p b i o s 工具,增强对代码的实时分析能力、调度程序执行的优先 级、方便管理或使用系统资源,从而减少了开发人员对硬件资源的熟悉程度的依 赖。 可见,c c s 具有实时、多任务、可视化的软件开发特点,已经成为t id s p 家 族的程序设计、制作、调试、优化的利器。 3 3m p e g 4 视频编码器的实现 3 3 1m p e g - 4 视频编码器的数据流程 m p e g 4 视频编码器的数据流程框图如图3 2 所示。 图像压缩国际标准中,一般将图像分为3 种类型:i 帧、p 帧和b 帧。由于本 文实现的m p e g 4 视频编码器是基于s p ( s i m p l ep r o f i l e ) 级的,所以图像编码类型 只有i 帧和p 帧。对于i 帧和p 帧,编码器的处理方式是不一样的,如图3 2 中, 阴影部分的数据处理只是针对p 帧而言,i 帧并没有运动估计和运动补偿运算。 原始图像数据存放在d s p 的片外内存s d r a m 中,d s p 将数据搬移到其片内内存 d a r a m 中进行处理,d s p 将编好的码流再存放到片外内存s d r a m 中。参考图 像数据为上一帧编码时重构后的图像,用于当前帧的运动估计和运动补偿。重构 图像数据是当前帧编码时,对量化后的数据进行逆量化、i d c t 及逆运动补偿后的 图像数据,作为下一帧图像编码时的参考帧。当数据由片外内存读入片内内存中, 或者由片内内存写到片外内存中的时候,数据是以d m a 的方式进行读或者写的操 作,这样可以充分利用d s p 的硬件资源,进行数据块的搬移,加快编码器的进程。 1 6 嵌入式视频编码器与码率控制算法的实现 片外内存( s d r a m ) 原始图像数据参考图像数据重构图像数据编码后的码流 i _ v i - 原始宏块数据 1 r 萱 匀后的换新摇i 上 口、m m l i 运髦估计 h 嚣鬻1 r 运动补偿 1 f 参考宏块数据;叫 袖 ;荨予1 量k l 尝 层堪u 个i 扫譬 f d c td c t + 量化逆量化 + d c a c 预测 扫描 游程编码 编码后的数据 片内内存( d a r a m ) 通过d m a 传输数据 - 数据传送数据操作 数据 图3 2m p e g - 4 编码器的数据流图 3 3 2m p e g - 4 视频编码器的实现步骤 图3 3 所示是m p e g - 4 视频编码器的具体实现框图。 首先读取一帧数据,取一个宏块,根据编码控制选择编码类型,是i n t r a 帧内

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论