(信号与信息处理专业论文)基于philips数字视频平台的mpeg4视频编码系统设计.pdf_第1页
(信号与信息处理专业论文)基于philips数字视频平台的mpeg4视频编码系统设计.pdf_第2页
(信号与信息处理专业论文)基于philips数字视频平台的mpeg4视频编码系统设计.pdf_第3页
(信号与信息处理专业论文)基于philips数字视频平台的mpeg4视频编码系统设计.pdf_第4页
(信号与信息处理专业论文)基于philips数字视频平台的mpeg4视频编码系统设计.pdf_第5页
已阅读5页,还剩65页未读 继续免费阅读

下载本文档

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

文档简介

中文摘要 本篇论文进行系统设计时的主要思想就是要将p h i l i p s 数字视 频平台和m p e g 一4 视频编码算法结合起来,充分利用m p e g 一4 视频编码 算法的先进性以及p h i l i p s 数字视频平台所具有的高效多媒体数据 处理能力和先进的流软件结构,在p h i l i p s 数字视频平台上开发出高 效的、具有一定实际应用价值的m p e g 一4 视频编码系统。由于在系统 的设计与实现过程中,我们注意最大限度的保持了该系统的开放性和 视频编码算法的完整性,因此该视频编码系统也可以作为本课题组所 要进行的些后续视频应用研究( 如嵌入式系统中的视频信息隐藏) 的基础性实验平台。 本篇论文在组织结构上,首先介绍了p h i l i p s 数字视频平台的硬 件和软件环境,然后介绍了在构建整个视频应用系统时,需要使用到 的视频子系统功能组件以及p h i l i p s 数字视频平台的t s s a 流软件结 构。在此之后,论文重点阐述了我们在该系统的设计与实现中所进行 的三方呵主要工作,即流模式下m p e g 一4 视频编码系统的构建,t s s a 视频编码组件的设计和视频编码内核的移植与优化。 关键词:p h i l i p s 数字视频平台t r i m e d i a 处理器 t s s am p e g 一4x v i d a b s t r a c t t h em a i ni d e ao f0 1 1 rd e s i g ni nt h i st h e s i si st oi m p l e m e n tm p e g 4v i d e oc o d i n go n p h i l i p sd i g i t a lv i d e op l a t f o r m ( d v p ) ,m a k i n gg o o du s eo fa d v a n c e dm p e o - 4v i d e o c o d i n ga l g o r i t h m sa n de f f i c i e n tm u l t i m e d i ad a t ap r o c e s s i n ga n ds t r e a ms o f i l l w a r e a r c h i t e c t u r eo f p h i l i p sd v p , a n di n t h ee n dt ow o r ko u ta l l a p p l i c a b l ev i d e o a p p l i c a t i o ns y s t e mo np h i f i p sd v rb e c a u s ew et r yt ok e e pt h ei n t e g r i t yo ft h ev i d e o c o d i n ga l g o r i t h m sa n dt h ee x p a n s i b i l i t yo ft h ev i d e os y s t e mw h e nw ed e s i g na n d i m p l e m e n tt h es y s t e m s ot h es y s t e mc b eu s e da st h eb a s i ce x p e r i m e n t mp l a t f o r m f o rs o m e o t h e r v i d e oa p p l i c a t i o n r e s e a r c h e so f o u r p r o j e c t t e a m a tt h eb e g i n n i n g ,t h et h e s i si n t r o d u c e st h es o f t w a r ea n dh a r d w a r ee n v i r o n m e n to f p h i l i p sd i 西t a lv i d e op l a t f o r ma n dd e s c r i b e st h et s s as t r e a ms o f t w a r ea r c h i t e c t u r ea s w e l la st h ev i d e os u b s y s t e mf u n c t i o n a lc o m p o n e n t sw eu s et ob u i l dt h ew h o l ev i d e o a p p l i c a t i o ns y s t e m n i ef o l l o v “n gp a r to ft h et h e s i si sm a i n l yc o n c e r n e dw i t ht h e w o r kw e v ed o n ei nt h i sp r o j e c t t h a ti st oc o n s t r u c tt h ev i d e oa p p l i c a t i o ns y s t e mi n t h es t r e a mm o d e ,t od e s i g nt s s av i d e oc o d i n gc o m p o n e n t ,a n dt ot r a n s p l a n ta n d o p t i m i z et h ex v i dv i d e oc o d i n gc o r e k e y w o r d :p h i l i p sd i g i t a lv i d e op l a t f o r m t r i m e d i ap r o c e s s o r t s s am p e g - 4x v i d 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作和取得的 研究成果,除了文中特别加以标注和致谢之处外,论文中不包含其他人已经发表 或撰写过的研究成果,也不包含为获得叁鲞盘生或其他教育机构的学位或证 书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中 作了明确的说明并表示了谢意。 学位论文作者签名签字日期:2 一r 年矿月卅日 学位论文版权使用授权书 本学位论文作者完全了解鑫鲞盘鲎有关保留、使用学位论文的规定。 特授权盘盗盘生可以将学位论文的全部或部分内容编入有关数据库进行检 索,并采用影e l i 、缩印或扫描等复制手段保存、汇编以供查阅和借阅。同意学校 向国家有关部门或机构送交论文的复印件和磁盘。 ( 保密的学位论文在解密后适用本授权说明) 学位论文作者签名:i 习辱 导师签名罗钐锄 f 签字同期:2 。坫年1 月l i 同 签字日期: 矿年月玉e l 第章绪论 第一章绪论 1 1 本文研究的背景与意义 2 l 世纪的人类社会是信息化的社会数字化信息特别是数字化多媒体信息 的数据海量性,迫使我们必须要开发出有效的数字多媒体数据压缩算法,m p e g 系列多媒体压缩标准就是在这种技术背景下出现的。m p e g 一4 视频压缩标准作为 m p e g 系列标准中的新成员,具有较之m p e g 一1 和m p e g 一2 更高的视频压缩效率, 并且支持一些新的特性,如编码系统的开放性、基于内容的访问与检索等等。 m p e g 一4 视频编码已经成为近期视频编码领域研究的一个热点,一些商业和民间 组织也在不断地为我们提供着各种不同版本的m p e 6 4 视频编码实现。 p h i l i p s 公司作为多媒体数据处理领域中领先的技术和方案提供商,其所开 发的t r i m e d i a 系列处理器具有强大的多媒体数据处理功能和处理效率,以 t r i m e d i a 处理器为核心的p h i l i p s 数字视频平台也成为了进行视频应用开发的 理想平台。 本篇论文的设计思想就是要将m p e g 一4 视频编码算法与p h i l i p s 数字视频平 台结合起来,充分发挥它们二者各自的优势,在p h i l i p s 数字视频平台j 二进行高 效的m p e g 一4 视频编码应用系统的开发,并最终实现一具有视频采集、编码、存 储和对采集图像进行同步显示功能的视频应用系统。另外,由于该系统具有良好 的开放性,因此也可以作为本课题组进行其它视频应用研究的基础性实验平台。 1 2 本文作者所做的工作 本文作者所做的工作主要集中在该视频应用系统的软件设计与实现方面,根 据软件开发层次的不同,本文作者所做的工作主要分为以下三个方面: 1 ) 以p h i l i p s 数字视频平台为基础,组织和构建起一个完整的流模式下的 视频应用系统,并且该系统应该具有视频采集、编码、存储和对采集图 像进行同步显示的功能。 2 ) 设计并实现一个符合t s s a 规范的m p e g4 视频编码组件。 3 ) m p e g 一4 视频编码内核的移植、调试与优化工作。 第二章p h i l i p s 数字视频平台硬件结构 第二章p h i ii p s 数字视频平台硬件结构 p h i l i p s 数字视频平台硬件环境以t r i m e d i a 处理器为核心。本篇论文中的 视频应用开发所使用的硬件平台是一块t m l 3 0 0i r e f 开发板,该开发板的核心是 一块t r i m e d i at m l 3 0 0 处理器,且符合p h i l i p s 数字视频平台的硬件规范。 2 1t m l 3 0 0l r e f 开发板 t m l 3 0 0i r e f 开发板 i 1 是由m o m e n t u md a t as y s t e m s 公司出品的一款专门用 于视频和音频处理的p c i 总线型开发板。该电路板的核心是一块p h i l i p st m l 3 0 0 多媒体处理器,该处理器的主频为1 3 3 m h z ,是一块3 2 位定点浮点超长指令集 ( v l i w ) 处理器,并集成有视频、音频片内周边设备。t m l 3 0 0i r e f 开发板可以 提供c v b s 和s v i d e o 格式的视频i 0 ,多声道音频i 0 ,并可通过m o d e m 接口和 d a a 实现通信i o 。 图2 - 1t m l 3 0 0i r e f 开发板结构 上图所示为t m l 3 0 0i r e f 开发板的具体结构。t m l 3 0 0i r e f 开发板在视频i 0 部分使用了p h i l i p s 的s a a 7 1 1 3 视频输入处理器和s a a 7 1 2 1 数字视频输出编码 器,支持c v b s 复合视频信号和s - v i d e o 两种视频输入输出格式。s a a 7 11 3 负责 对输入的模拟视频信号( s - v i d e o 或c v b s ) 进行模数转换,并将数字化之后的 第二章p h i l l p s 敛字视频平台硬件结构 第二章p h i ii p s 数字视频平台硬件结构 p h i l i p s 数字视频平台硬件环境以t r i m e d i a 处理器为核心。本篇论文中的 视频应用开发所使用的硬件平台是一块t m l 3 0 0i r e f 开发板,该开发扳的核心是 一块t r i m e d i at m l 3 0 0 处理器,且符合p h i l i p s 数字视频平台的硬件规范。 2 ,1t m l 3 0 0j r e f 开发板 t 、1 1 3 0 0i r e f 开发板【i 】是由m o m e n t u md a t as y s i e m s 公司出品的一款专门用 于视频和音频处理的p c i 总线型开发板。该电路板的核心是一块p h i l i p st m l 3 0 0 多媒体处理器,该处理器的主频为1 3 3 m h z ,是一块3 2 位定点浮点超长指令集 ( v l i w ) 处理器,并集成有视频、音频片内周边设备。t m 3 0 0i r e f 开发板可以 提供c v b s 和s v ld e o 格式的视频i o ,多声道音频i o ,并可通过m o d e m 接口和 i ) a a 实现通信i o 。 图2 - 1t m l 3 0 0 r e f 开发板结构 上图所示为t m l 3 0 0i r e f 开发板的具体结构。t m l 3 0 0i r e f 开发板在视频i o 部分使用了p h i l i p s 的s a a 7 31 3 视频输入处理器和s a a 7 1 2 1 数字视频输出编码 器,支持c v b s 复台视频信号和s - v i d e o 两种视频输入输出格式。s a a 7 11 3 负责 对输入的模拟视频信号( s - v i d e o 或c v b s ) 进行模数转换,并将数字化之后的 对输入的模拟视频信号( s - v i d e o 或c v b s ) 进行模数转换,并将数字化之后的 第二章p h i l i p s 数字视频平台硬件结构 y u v 数据输入给t m1 3 0 0 处理器的v i 单元。s a a 7 1 2 i 负责对由t m1 3 0 0 处理器 v i d e oo u t 单元输出的y j v 数据进行数模转换,并将结果以sv i d e o 或c v b s 的 格式输出。因此,在相应软件的支持下,我们一方面可以通过视频采集设备,把 外界视频图像以r g b y u v 视频数据的形式采集到i r e f 板的主处理器t m l 3 0 0 中, 并进行视频数字图像处理;另一方面,也能够把处理器t m l 3 0 0 中的r g b y u v 视 频数据经视频编码器处理后送到外接的p a l n t s c 监视器上显示。 t m l 3 0 0 处理器具有内建的p c i 总线接口,r m l 3 0 0i r e f 将其外接到开发板的 p c i 接头,这使得t m l 3 0 0i r e f 开发板能够与主机上的c p u 或是其他p c i 设备通 过p c i 接口进行数据通信。p c i 总线拥有较高的数据传输速率( d m a 模式下 1 3 2 m b s ) ,能够适应视频、音频等多媒体应用开发对于高速数据传输的要求。 t m 1 3 0 0 处理器与主机之间通过p c i 总线的通信是通过t r i m e d i am a n a g e ra p i f o rw i n d o w s ( t n ) 软件模块来实现的。对p c i 总线通信的支持都被封装在 n d k 或是i a d k 支持软件库中,用户只需调用相应的支持函数即可。 d e b u g g e r ( t f o n e x e t m g m o n e x e ) 和l o a d e r ( t m r u n e x e t 涨p r u n e x e )等 t r i m e d i a 程序调试工具也都需要通过调用t m m a n 3 2 d l l 动态连接库中的函数来 实现其功能。 2 2t ri m e d i at m l 3 0 0 多媒体处理器 t r i m e d i a 系列多媒体处理芯片是p h i l i p s 公司推出的种面向多媒体应用 的高性能处理器,该处理器能够实现高质量的音频、视频处理和网络通信,现已 推出的处理器系列包括:t m l 0 0 0 系列、t i d l1 0 0 系列、t m l 3 0 0 系列和t m l 5 0 0 系 列。以t r i m e d i a 处理器为核心,我们可以进行m p e g4 、m p e g 一2 、h 2 6 3 、h p 3 和 d o l b yd i g i t a l 等多种类型的多媒体数据处理,并可以该处理器为基础,开发出 各种类型的多媒体通信终端设备和高质量的音频、视频处理设备。 t m l 3 0 0i r e f 开发板中采用的t r i m e d i at m l 3 0 0 处理器口1 是一主频为1 3 3 m h z 的3 2 位多媒体处理器,它具有v l i w 结构并使用专门优化的c c + + 编译器。v l i w 结构允许c p u 核在一个时钟周期内并行执行五条指令、并行使用t m l 3 0 0c p u 核 中2 7 个功能单元中的5 个,这可以在很大程度上提高处理器的执行效率。为v l i w 结构专门进行了优化的c c + + 编译器,可以在编译源程序时最大限度的利用 t r i m e d i a 处理器的这种并行指令指行机制。此外,t m l 3 0 0 处理器的指令集中还 包括专门用于多媒体数据处理的d s p 汇编指令。在程序设计时合理的使用这些指 令,町以明显的提高t r i m e d i a 程序的执行效率。在对本篇论文中的视频编码程 3 墨三兰! 墅尘! 墼量望塑羔鱼堡堡筻塑 序进行优化时,我们也使用到了t r i m e i d a 处理器的这些d s p 汇编指令。 t m l 3 0 0 处理器集成有片内i 0 单元和协处理单元。i 0 单元用于数据流的输 入、输出和格式转换,主要包括v i d e oi o 、a u d i oi o 和s p d i fo u t p u t 单元。 v i 单元用于接收y u v 格式或是r a w 格式的数据,并可以对数据的格式进行简单 的处理。v o 单元负责数据流的输出,输出数据流的格式可以是y u v 或是r a w 。 t m l 3 0 0 处理器具有两个片内协处理器单元图像协处理单元( i c p ) 和变长码 解码单元( v l d ) 。i c p 单元可咀完成对图像的各种滤波处理和格式变换,而v l d 单元可以实现对m p e g i 2 码流的h u f f m a n 解码。 图2 2t r i m e d i at m l 3 0 0 处理器内核及其片内周边 从上面的介绍中我们可以看到,t “m e d i a 处理器之所以具有优越的多媒体 信号处理能力足因为: ( i ) t r i m e d i a 处理器具有v l i w 结构的处理器内核 ( 2 ) t r i m e d i a 处理器具有针对多媒体信号处理的专用汇编指令集 ( 3 ) t r i m e d i a 处理器具有片内的协处理单元( i c p 和v l d ) 与通用的d s p 相比,t m l 3 0 0 处理器片内集成有专门的视频接口、音频接口、 i2 c 总线接口和p c i 总线接口。这些都为以t m l 3 0 0 处理器为核心进行多媒体应用 的方案设计带来了方便,同时也可以在很大程度上简化系统外围电路设计。此外, t m l 3 0 0 处理器还通过支持p s o s 嵌入式微内核实现了对系统资源的分配和组件任 务的管理。 4 第三章p h i l i p s 数字视频平台软件框架 第三章p h - | i p s 数字视频平台软件框架 3 1p h ili p s 数字视频平台软件框架的结构 p h i l i p s 数字视频平台( d i g i t a lv i d e op l a t f o r m 缩写为d v p ) 软件框架支 持所有完全符合p h i li p s 数字视频平台标准的d v p 硬件平台,并且支持基于d v p 硬件平台进行各种数字视频应用的开发。 p h i l i p s 数字视频平台软件框架对基于3 v p 硬件的视频应用开发的各个层次 都给予了支持。例如,从对底层的设备驱动开发到对中间件开发的完整的系统级 软件支持、同时支持单处理器和多处理器的d v p 硬件平台、支持d v p 硬件平台的 s t a n d a lo d e 模式等等。另外,p h i l i p s 数字视频平台软件结构还通过对处理器、 硬件平台和操作系统之间依赖关系的抽象,实现了开发组件的可重用,并且支持 多种嵌入式操作系统,如p s o s 、v x w o r k s 、w i n c e 等。 3 1 1p h ilip s 数字视频平台软件分层结构 从层次化的角度来看,d v p 软件框架可以被看作是由一系列的构建模块组成 的。详细的i ) v p 软件框架分层结构如下图所示f3 】: 图3 - 1d v p 软件框架的分层结构 第三章p h i l i p s 数字视频平台软件框架 上图中所示的这些构建模块分布于d v p 软件框架的各个层次,从最接近硬件 的底层模块到同用户应用层相关的上层模块。 1 ) 引导管理器( b o o tm a n a g e r ) 引导管理器是第一个被执行的软件代码,它负责操作系统的引导过程,这其 中就包括对c p u 和周边设备的初始化。引导管理器同时负责准备d v p 系统引导和 配置信息供板级支持与核心层使用。 2 ) 板级支持与核心( b o a r ds u p p o r ta n dk e r n e l ) 该层负责启动板级电路并将板级信息提供给更高层。板级支持与核心层通常 是以板级支持包( b o a r ds u p p o r tp a c k a g e ) 或是板级支持库( b o a r ds u p p o r t l i b r a r y ) 的形式提供。 3 ) 基础结构( i n f r a s t r u c t u r e ) 该模块负责提供一些独立于操作系统的功能,如任务管理、计时管理、中断 管理、内存管理以及任务间和处理器间通信( 通过事件、信号量、互斥等机制) 等功能。 4 ) h w a p i 和b s l 设备层( h w a p ia n d b s ld e v i c el a y e r ) h w a p i 设各层负责对t r i m e d i a 处理片上周边的操作,b s l 设备层负责对片外 周边的操作。通过提供单独的一层来实现对硬件的操作,可以屏蔽掉上层对硬件 的依赖,从而实现了上层的可重用性。这一层的组件是依赖于操作系统的并且不 提供对设备共享、同步等功能的支持。 5 ) 设各库层( d e v i c el i b r a r yl a y e r ) 该层负责对h w a p i 和b s l 组件提供同步和中断处理支持,设备库层需要使 用基础结构( i n f r a s t r u c t u r e ) 提供的服务,如使用o s a l 来实现操作系统无关 性,使用m m l 来实现内存管理。这一层的组件通常可钭向上层提供设备无关的接 口。 6 ) 流层( s t r e a m i n gl a y e r ) 这一层负责提供对多媒体数据流的支持,多媒体信息可以是音频、视频和数 据。d v p 流结构提供了设计、实现和连接流组件的机制。这里所说的流结构指的 就是t r i m e d i a 流软件结构( t r i m e d i as t r e a m i n gs o f t w a r ea r c h i t e c t u r e 缩写 为t s s a ) 。t s s a 提供了用以实现多媒体流的各种机制,如流组件任务的包u 建与连 接,流组件之间数据的交换等等。t s s a 使用基础结构( i n f r a s t r u c t u r e ) 提供 的服务( o s a l ,m m l ) 来实现各种数据流功能。所有的流组件都必须遵循t s s a 流 第三章p h i l i p s 数字视频平台软件框架 组件实现规则。 7 ) 应用层( a p p l i c a t i o nl a y e r ) 应用层负责构建起一个完整的视频应用系统,其主要任务是进行多媒体流组 件的配置和连接并启动组件任务,以实现用户所要求的系统功能。 本篇论文所进行的开发主要集中在d v p 软件结构中的流层和应用层。具体来 说即为: ( 1 ) 在应用层编写代码来组织、配置和连接各t s s a 功能组件,构建起流模式下 的视频编码系统 ( 2 ) 在流层编写代码来设计和实现符合t s s a 标准的m p e g4 编码组件 3 1 2p h ii i p s 数字视频平台软件子系统结构 从子系统的角度来看,d v p 软件框架足由一系列相互联系的功能子系统所构 成的,具体的d v p 平台软件子系统结构如下图所示川: 图3 - 2d v p 软件子系统结构 图3 - 2 显示了d v p 软件框架中所应包含或可能包含( 根据需要) 的各种功能 子系统。在这些子系统内部仍然采用了一种层次化的结构。对各种功能子系统的 操作都是通过d v p 应用程序接口( a p i ) 来实现的。 1 ) i r d m 子系统 i r 蹦( i n j e c t o rr o u t e ro e m u l t i p l e x e rm u l t i p l e x e r ) 包含一系列d v p 功 能组件,i r d m 子系统用以实现如下一些功能: 1 从存储设备、外部1 3 9 4 设备等源设备中接收媒体流。 7 第三章p h j l l p s 数字视频平台软件框架 2 对传输流进行解多路复用以便满足d t v 标准( 如d v b 、a t s c ) 的要求。 3 m p e g 系统处理,包括从m p e g 流中提取出音频、视频和数据流以供其它 的子系统进行后续的处理。 4 产生单一程序传输流( s i n g l ep r o g r a mt r a n s p o r ts t r e a m ) 。 2 ) 音频子系统 音频子系统负责提供以下功能: 1 对外部的模拟音源输入进行数字化。 2 对各种音频格式( 如 p e ga u d i o ) 进行解码,并以p c m 格式输出。 3 后处理( p o s t p r o c e s s i n g ) 功能。 4 音频输出 3 视频子系统 视频子系统负责提供以下功能 1 对外部的模拟视频源输入进行数字化。 2 对各种视频格式( 如m p e g ) 进行解码。 3 后处理功能。 4 将视频输出到显示设备。 视频子系统的功能是通过一系列相互独立的t s s a 流组件的形式来提供的。 这在很大程度上增加了视频处理的灵活性和代码的可重用性。 4 、存储子系统 该子系统用以实现对多媒体数据进行有效地存储与读取。存储子系统负责提 供以下功能: 1 文件系统支持 2 对多媒体数据的存储与读取。 3 支持多种存储介质 5 1 图形子系统 图形子系统主要是用来实现应用层对二维图形处理硬件模块的控制。 6 、周边子系统 d v p 平台软件结构中的各种功能子系统所使用的周边设备都是由周边子系 统负责组织的。共有两种类型的周边设备:b s l 周边设备,即片下周边( 如闪存) 和h w a p i 周边设备,即片上周边( 如l f c 、u d m a 、g p i o 、p c i x i o 等) 。 在进行本篇论文中的视频编码系统设计时,我们使用到了由数字视频平台视 频子系统和存储子系统提供的功能,如视频信号的采集、视频图像的变换和显示、 第三章p n l i p s 数字视频平台软件框架 数据的存储等等,这些功能模块都是以t s s a 流组件的形式来提供的。 3 2p h iii p s 数字视频平台视频子系统 本篇论文在进行m p e g 一4 编码系统的设计时,使用到了由d v p 视频子系统提 供的一些功能组件,正确的理解这些组件的结构和正确的使用这些组件所提供的 功能,不论是对于我们构建整个视频应用系统,还是对于设计和实现我们自己的 m p e g 一4 视频编码组件,都是非常重要的。由于我们使用的开发工具是n d k2 2 $ p 1 ,它只是p h l li p si a d t ( 软件丌发包的最小功能子集,一些子系统功能组件在 n d k 中并没有提供( 需另付费购买) ,因此在这里我们只重点介绍一些基本的、 在构建本文中的视频编码系统列使用到了的视频子系统功能组件。 3 2 1 视频采集组件 视频采集组件是一种符合s a 标准的视频输入组件。它既支持a l 层应用 也支持o l 层应用。它将采集到的视频数据通过a l 层或是o l 层传递给与其相连 的其它t s s a 组件。 8 b - d d u r eo f t h # v h d m 图3 - 3 视频采集组件 视频采集组件使用视频输入设备库,该库负责驱动具体的视频采集硬件设备 和板上的模数转换设备。视频采集组件是硬件相关的,运行于硬件中断。 图3 4 视频采集组件的调用层次 第三章p h i l i p s 数字视频平台软件框架 视频采集组件o l 层: 之所以要介绍t s s a 组件的o l 层,是因为后面我们要采用流模式来建立整个 视频编码系统,这就要涉及到如何在o l 层使用t s s a 组件以及了解组件0 l 层的 函数调用关系。 图35 视频采集组件o l 层控制流 应用层必须首先调用视频采集组件的t m o l v d i g v i g e t c a p a b i l i t i e s 以得到 组件的属性( c a p a b i l i t i e s ) 。得到的属性信息被传递给格式管理器( f o r a m t m a n a g e r ) ,格式管理器完成对视频采集组件输出格式的确认,以确保组件之间相 互连接的兼容性。然后需要调用视频采集组件的t m o l v d i g v i o d e n 来创建一个组 件实例,调用组件的t m 0 1 v d i g v i g e t i n s t a n c e s e t u p 可以得到一个指向视频采集 组件实例的实例安装结构( i n s t a n c es e t u ps t r u c t u r e ) ,该结构在组件实例被 刨建时自动牛成,我们可以通过修改该结构中的些配置信息来完成对视频采集 组件实例的配置。之后我们就可以通过调用t m o l v d i g v i i n s t a n c e s e t u p 完成对配 置后的组件实例的安装。一般情况下,视频采集组件使用t s a d e f a u l t s 库提供的 默认d a t a o u t 回调函数进行数据流操作。t m o l v d i g v i s t a r t 和t m o l v d i g v l s t o p 分别用于开启和停止视频采集功能,而t m o l v d i g v l c l o g e 用来最终释放视频采集 组件实例及其相关资源。 视频采集组件的输出: 视频采集组件作为视频源设备只具有输出端。我们可以通过调用视频采集组 件的i n s t a n c e s e t u p 函数来指定组件的具体输出格式。我们要做的工作就是在应 第三章p h i l i p s 数字视频平台软件框架 用层根据需要填写一个t m v i d e o f o r m a t t 结构,并将该结构赋给i n s t a n c e s e t u p 结构的p o u t p u t f o r m a t 成员。在a l 层,应用层必须提供一个d a t a o u t 回调函数, 并将此函数指定给i n s t a n c e s e t u p 结构,d a t a o u t 函数由视频输入设备的中断服 务程序调用;在o l 层,如果没有指定d a t a o u t 函数,视频采集组件就会使用由 t s a d e f a u l t s 库提供的默认d a t a o u t 回调函数。 视频采集组件的配置: 我们可以在安装视频采集组件实例时通过设置i n s t a n c e s e t u p 结构对其进 行配置,也可以在组件运行期间通过调用t m a l v d i g v i i n s t a n c e c o n f g 或 t m o l v d i g v i i n s t a n c e c o n f i g 对其进行动态配置。我们采用的是前一种方式,即 在初始化阶段对视频采集组件进行配置,并且没有为组件提供对其进行动态配置 所需的命令队列。 3 2 2 图像变换组件 图像变换组件 6 1 负责对视频图像进行滤波和变换处理。图像变换组件既支持 向板载的s d r a m 输出同时也支持通过p c i 总线的d r 输出( 此时图像可以被输出 到p c 的监视器。图像变换组件先对视频图像进行y u v 到r g b 的颜色转换,然后 通过p c i 总线将其输出至p c 监视器) 。图像变换组件支持t s s a 的0 l 层和a l 层。 图像变换组件的功能包括y i j v 到y u v 的水平放缩、y u v 到y u v 的垂直放缩、y u v 到r g b 的水平放缩及颜色转换、s d r a m 或p c i 输出、解交织、y u v 抗抖动滤波和 y u v 4 2 2 到y u v 4 2 0 颜色变换等等。 图3 - 6 图像变换组件 图像变换组件o l 层: 同视频采集组件一样,我们剐图像变换组件的调用也主要集中在其0 l 层 _ f 图显示了图像变换组件的o l 层控制流: 第二章p h i l i p s 数字视频平台软件框架 y c u r a o p l l o a d o n 图3 7 图像变换组件的o l 层控制流 首先,应用层通过调用t m o l v t r a n s t :p ( ) p e n 创建图像变换组件实例,然后调 用组件的t m o l v t r a n s i c p g e t i n s t a n c e s e t u p 函数得到i n t a n c e s e t u p 结构,通过 对i n s t a n c e s e t u p 结构进行设置,我们可以完成对图像变换组件实例的初始化配 置,最后再调用t m 0 1 v t r a n s i c p i n s t a n c e s e t u p 完成对图像变换组件实例的安装。 t m o l v t r a n s i c p s t a r t 函数负责初始化组件实例并为该组件实例创建一个单独的 任务。我们可以在应用层调用组件的t m o v t r a n s i c p i n s t a n c e c o n f i g 函数对视频 变换组件进行动态配置。t m o l v t r u n s i c p s t o p 和t m o l v t r a n s i c p c i o s e 函数分别 用来挂起图像变换组件任务和释放图像变换组件实例及其相关资源。 图像变换组件的数据包格式: 在本文建赢的视频应用系统中,图像变换组件的输入来自于视频采集组件, 在将组件进行连接之前,我们必须要能够确定这两个组件之间的兼容性:这首先 就是要保证组件之间交换的数据包的兼容性。图像变换组件使用标准的p a c k e t 结构,该结构能够同时支持y u v 和r g b 格式的视频数据。对于r g b 数据,p a c k e t 使用一个缓冲区来存储r g b 数据;对于y u v 数据,p a c k e t 使用三个缓冲区 b u f f e r 0 、b t l f f e r 1 j 和b u f f e r 2 米分别存储y 、u 和v 图像分量。每一个p a c k e t 都有一个头用来存储该p a c k e t 中的数据信息。头中的一个重要成员是f o r m a t , 它是一个t m v i d e o f o r m a tt 结构指针,用于提供视频格式信息。在本文所述的系 统中,我们将视频输出格式设置为y u v 4 2 0 以便和视频编码内核的要求相一致。 3 2 3 视频显示组件 视频显不组件 7 1 是一个符合i l s s a 流框架的视频输出模块,支持0 l 层和a l 第三章p h i l i p s 数宁视频平台软件框架 层,同视频采集组件一样,视频显示组件是硬件相关的,运行于硬件中断,没有 相应的操作系统任务。视频显示组件的结构和调用层次如下图所示: 视频显示组件的o l 层: a p p l i c a t i o n l r 。e 。n d h e r e 拍r ,“啪呵 恻”馏盘掣啪 d 0 u t 口b 饵ll b r r y 、,i d g o o u h a r d 岫旧 图3 8 视频显示组件及其调用层次 图3 - 9 视频显示组件的o l 层控制流 视频显示组件的o l 层主要负责数据流操作。我们通过调用t m o l v r e n d v o o p e n 来创建视频显示组件的实例。在一个符合t s s a 规范的视频系统中,视频显示组 件的实例只能有一个。之后通过调用组件的t m o l v r e n d v o g e t c a p a b i l i t i e s 函数 来获取视频显示组件的属t 陛( c a p a b i l i t i e s ) 信息。格式管理器( f o r m a tm a n a g e r ) 通过这些信息来确保两个将要被连接的组件之间的兼容性。调用组件的 t m o i v r e n d v o g e t i n s t a n c e s e t u p 函数可以得到组件的实例安装结构,通过对这个 结构进行帽应的设置,我们可以完成对视频显示组件实例的初始化配置。 第三章p h i l i p s 数字视频平台软件框架 t m o l v r e n d v o s t a r t 用于启动视频显示组件,之后d a t a jn 回调函数就会自动从与 该组件相连接的另一组件处获取数据包,并完成对图像的显示。在显示任务完成 后依次调用组件的t m o l v r e n d v o s t o p 和t m 0 1 v r e n d v o c l o s e 函数来停止显示和释 放视频显示组件实例。 3 3t r i m e d i a 流软件结构 d v p 平台作为专门的多媒体信号处理平台,提供有流模式的软件结构专门用 以实现多媒体信息的数据流操作,这种流软件结构就是t s s a 。t s s a 是t r i m e d i a s t r e a m i n gs o f t w a r ea r c h i t e c t u r e 的缩写,是d v p 平台软件结构的一个重要组 成部分。t s s a 为基于d v p 平台的多媒体应用开发提供了一套标准化的方法,这 有利于提高组件的互连性和重用性,也有利于软件设计人员之间的协作开发。具 体来说,t s s a 就是创建和连接组件的一种标准方法,t s s a 组件都是基于任务或 是中断的,并且在这些组件之间存在着数据交换。当组件都是按照t s s a 标准设 计和实现的时候,我们在应用层就可以很容易的配置和连接这些组件,并使用这 些组件构建起一个完整的视频应用系统。 图3 - i 0 流模式下的( t s s a ) 多媒体信号处理系统 3 3 1t s s a 通用结构 t s s a 定义了所有组件都要使用的标准结构,使用标准化的结构对于组件之 间的通信是非常有利的。t s s a 定义的标准d v p 数据结构都在t m a v f o r m a t h 头文 件中。在我们编写应用层代码来创建流模式下的视频编码系统的时候,以下的这 些数据结构都是必须要使用到的。 1 ) 和数据包相关的结构嘲 t m a v p a c k e t t 结构: t s s a 组件之间交换数据的单位是数据包,在t s s a 中数据包被表示为一个 第三章p h i l i p s 数字视频甲台软件框架 t m a v p a e k e t t 结构,其中存储着该数据包的数据信息和数据类型信息。下图显 示了一个数据包结构的构成: 图3 1 l 数据包结构的构成 有一点需要说明的是,默认晴况下t l l n v p a c k e t t 结构中只包含一个b u f f e r 由于我们使用的是y u v 格式的视频信号,y u v 分量要分别存储在一个b u f f e r 中 因此我们要在t m a v p a c k e t t 结构中定义三个b u f f e r 。 t m a v h e a d e r t 结构: 几乎所有的t s s a 组件在处理数据包时,都需要首先获取该数据包的头信息 在t s s a 中,数据包头被表示为一个t m a v h e a d e r t 结构。 t n 】a v b u f f e r d e s e r i p t o r t 结构: 一个数据包可以拥有任意多个b u f f e r 。通常,一个数据包中就包含一个 b u f f e r ,但对于y u v 格式的视频,一个数据包中要包含三个b u f f e r 咀便分别存 储y 、u 和v 信息。t m a v b u f f e r d e s c r i p t o r 结构就是用来描述数据包的b u f f e r 信息的。 对于只含有一个b u f f e r 的数据包,我们可以静态地进行分配,因为在数据 包结构的定义中,默认的b u f f e r 数量就是1 。在本篇论文设计的视频编码系统 中,由于我们使用的是y u v 格式的图像数据,其y 、u 和v 分量要各自分别占用 一个b u f f e r ,也就是说一个数据包中要含有三个缓冲区,因此对这样的数据包 进行内存分配时我们采用了如下的方式: 第三章p h i l i p s 数宁视频平台软件框架 p t m a v e a e k e t _ tp a c k e t2m a l l o c ( ( o 凰e t o f ( _ i i l a v p a c k e t _ t , b u f f e o + (

温馨提示

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

评论

0/150

提交评论