(电路与系统专业论文)基于嵌入式实时操作系统视频CODEC的实现及优化[电路与系统专业优秀论文].pdf_第1页
(电路与系统专业论文)基于嵌入式实时操作系统视频CODEC的实现及优化[电路与系统专业优秀论文].pdf_第2页
(电路与系统专业论文)基于嵌入式实时操作系统视频CODEC的实现及优化[电路与系统专业优秀论文].pdf_第3页
(电路与系统专业论文)基于嵌入式实时操作系统视频CODEC的实现及优化[电路与系统专业优秀论文].pdf_第4页
(电路与系统专业论文)基于嵌入式实时操作系统视频CODEC的实现及优化[电路与系统专业优秀论文].pdf_第5页
已阅读5页,还剩64页未读 继续免费阅读

(电路与系统专业论文)基于嵌入式实时操作系统视频CODEC的实现及优化[电路与系统专业优秀论文].pdf.pdf 免费下载

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

文档简介

中国科学技术大学硕士论文 摘要 随着信息时代的来临,视频压缩技术应用在越来越多的领域: h d t v 、监控、数字电视等等。而d s p 相对于通用c p u 在处理海量多媒 体数据时的绝对优势,使得视频压缩在d s p 上的应用逐渐成为研究的 焦点。开源的视频压缩算法在向此类d s p 平台上移植时,大多都存在 程序结构设计不合理、数据结构冗余等问题,导致缓存命中率下降, d s p 的利用率降低。文中简要的介绍了h 2 6 3 压缩算法的一般流程, 讨论了p n x l 3 0 0 芯片针对视频压缩所采取的硬件设计方案的优势所 在,通过对c a c h em i s s 、指令跳转等等降低d s p 效率的不利因素的 分析,并配合对p n x l 3 0 0 芯片功能结构及c a c h e 体系结构的理解,重 新设计了h 2 6 3 编码器整体软件框架,在d c t 、量化、预测等模块采 取重新定义数据结构、改进算法、采用d s p 专用指令优化等一系列措 施来提高c a c h e 命中率,减少跳转指令,提高d s p 的有效利用率,使 得优化后的h 2 6 3 编码器在保持较高清晰度的情况下,可以对c i f 格 式的视频序列进行实时处理。 关键词:h 2 6 3 编码器,优化,高速缓存 中国科学技术大学硕十论文 a b s t r a c t t h ea p p l i c a t i o no fv i d e op r o c e s sb a s e do nd s fb e c o m e sm o r ea n d m o r ea b r o a d h o w e v e r , b e c a u s eo fi n a p p r o p r i a t ed e s i g no fp r o g r a m s t r u c t u r ea n dt h eu s eo f r e d u n d a n td a t as t r u c t u r e ,w h e nv i d e oc o m p r e s s i o n a l g o r i t h mi st r a n s p l a n t e dt ot h e s ek i n d so fd s pp l a t f o r m s t h ec a c h e h i t r a t i oi sl o wa n dt h ee f f i c i e n c yo fd s pd e c r e a s e d t h i sa r t i c l ea u g m e n t e d t h ea l g o r i t h mb ya n a l y z i n gt h er e a s o no fc a c h em i s sa n df r e q u e n tj u m p o p e r a t i o n ,a n dr e d e f i n e dt h ed a t as t r u c t u r e ,i m p r o v e dt h ea r i t h m e t i c ,u s e d t h ep n x l 3 0 0 si n s t r u c t i o ns e ti nd c t ,q u a n t i z a t i o n ,m e ,c o d i n gm o d u l e o fh 2 6 3t oi n c r e a s et h ec a c h eh i tr a t e ,e l i m i n a t et h ef r e q u e n tj u m p o p e r a t i o n t h ei m p r o v e dh 2 6 3e n c o d e rc a l lc o m p r e s sc i f f o r m a tv i d e o s e q u e n c ea tr e a l t i m ew j 廿1h i g hd e f i n i t i o n k e yw o r d s :h 2 6 3e n c o d e lo p t i m i z a t i o n ,c a c h e 中国科学技术大学硕士论文 专用名词翻译中英文对照 d e b l o c k i n gf ii t e r c a c h e c a c h em i s s c a c h el i n e c a c h eb a n k s l o t c u s t o mo p e r a t i o n i m a g ec o p r o c e s s o r ( i c p ) v l d d e c i s i o nt r e e i n s t r u c t i o nl e v e lp a r a l l e l i s m ( i l p ) l o o pu n r o l l g r a f t i n g 块效应滤波器 高速缓存 缓存未命中缓存失配 缓存块缓存线 缓存分区 槽( 5 个操作分别在5 个槽中执行) 定制操作 图像协处理器 变长解码器 判决树 并行度 循环展开 嫁接 中国科学技术大学颂十论文 1 1 编码标准发展概要 1 绪论 人们通过感观收集各类信息,其中最主要的是视觉信息,因为视觉信息最能 给人以深刻的印象,视觉信息量大,直观、生动,是人类的主要信息来源。据统 h 一,人类依靠视觉获得的信息占全部信息的7 0 以上。在当今信息社会里,视频 图像信息有着广泛的应用,在我们的曰常生活中可以随时看到,比如:广播电视 领域里的高清晰电视h d t v ,交互式电视和数字卫星电视;通信领域的视频会议 可视电话、视频点播、视频数据库;计算机领域的虚拟现实技术等,图像通信已 经成为人类最重要的通信手段之一,有理由相信“2 1 世纪将是图像通信的世纪”。 在视频信息中,一般来说,视频信号是宽带的,例如电视信号的频带带宽多 达6 m h z ,这相当于9 6 0 路电话的信道带宽。即使是可视电话,其频率宽度也达 1 m h z 。同时,视频图像信号数字化后,数据量也是很大的。如帧频率为3 0 h z 的 c i f 格式的图像序列,数字化后其数据量高达3 4 8 m s ,一路h d t v 视频信号,其 数据量约1 g b p s ,由于信道容量或实际媒体的限制,这些未经过压缩的视频图像 是无法进行传输或存储的,视频编码的一个主要任务就是引入图像编码技术,对 视频数据进行压缩。图像压缩编码技术的进步,推动了视频图像信息的广泛麻用。 虽然数字化的视频图像数据非常大,但视频图像数据是高度相关的。一幅图 像内部或者图像序列中相邻图像之间有大量的冗余信息,这其中有时间冗余、空 间冗余,是视频图形编码压缩图像数据的出发点,视频压缩目的就是要在保证一 定视频图像质量的前提下,尽可能地消除这些冗余信息,以降低传输或存储所需 的数据量。视频图像编码技术发展到今天,各种图像压缩编码技术层出不穷,迄 今人类已经在视频压缩技术取得了引人瞩目的新进展,从编码技术的发展来讲, 对图像压缩编码技术的分类按不同的出发点有不同的方法,有的文献把编码技术 分为传统的编码技术和现代图像编码技术,本文也采用这种方法,具体分类如表 1 1 。 f 编码技术分类l 编码类型f 编码方法编码基础 中国科学技术大学硕士论文 h u f f m a n 编码 概率的分布特性 算术编码随源数据符号不断缩小的数据区域 冗余压缩 游程编码游程长度 经典图像压缩 熵编码 概率的分布特性 轮廓编码区域边界迹线及其属性 预测编码相邻象素之间的相关性 熵压缩 变换编码变换域 混合编码 象素相关性和变换域的有机结合 分形编码利用整体、局部相似性,建立分形库 神经网络编码 能跟踪特征的自适应网络 现代图像压缩 小波变换良好的频率多尺度性 模型压缩编码基于模型的分析和综合技术 表1 1 视频图像压缩编码方法 另一方面,作为对视频图像压缩技术成果和方法的总结,编码标准也随着编 码技术的发展而发展,而且图像压缩标准化对电视广播、视频通信、多媒体计算 机和视听工业具有非常重要的意义。所以人类通过实际应用的检验,已经制定了 一系列的视觉图像压缩标准,它们逐步成为了研究和生产领域的规范。 1 2i t u th2 6 3 ”1 视频标准简介 i t u t ( t h ei t ut e l e c o m m u n i c a t i o ns t a n d a r d i z a t i o ns e c t o r )与 i s o i e c ( i n t e r n a t i o n a lo r g a n i z a t i o n f o r s t a n d a r d i z a t i o n t h e i n t e r n a t i o n a le l e c t r ot e c h n i c a lc o m m is s i o n ) 是制定视频编码标准的两大组 织,i t u t 的标准包括h 2 6 1 ”1 、h 2 6 3 、h 2 6 4 ,主要应用于实时视频通信领域, 如会议电视;m p e g 系列标准是由i s o i e c 制定的,主要应用于视频存储( d v d ) 、 广播电视、因特网或无线网上的流媒体等,具体情况如表1 2 所示。 标准名称主要用途制定组织通过时间 h 2 6 l p 6 4 k b p s 的视频压缩如视频会议系统 i t u t1 9 9 0 1 2 h2 6 3 低于6 4 k b p s 的p s t n 和窄带可视电话系统 i t u t1 9 9 6 0 3 j p e g用于静止图像的压缩i s o i e c 1 9 9 i 0 3 m p e g 一1 1 5 m b p s 码率的视频压缩和v h s 质量的电视 i s o i e c1 9 9 2 0 l m p e g 一2 儿兆剑儿中兆的砚频地辅布u 向精电砚i s o i e c1 9 9 4 1 1 m p e g 一4 窄带可视电话和交互式视频通信i s o i e c1 9 9 8 1 0 h 2 6 4 甚低码率、高清晰的视频传输和存储 i t u ti s o2 0 0 3 0 5 表1 2 主要视频压缩标准 1 9 9 6 年,i t u t 颁布了h2 6 3 甚低比特率视频编解码标准,主要应用于低于 中国科学技术人学硕士论文 6 4 k b s 的窄带通信信道,它是在h 2 6 1 基础上发展起来的,其标准输入图像格 式可以是s - q c i f 、q c i f 、c i f 、4 c i f 或者1 6 c i f 的彩色4 :2 :0 皿取样图像。该 标准除了沿用j p e g 静止图像压缩标准的帧内编码技术、m p e g 一1 、m p e g 一2 动态图 像压缩标准的帧间预测技术外,并于1 9 9 8 陆续做了一些改进,改进后的版本被 称为h2 6 3 + 、 l2 6 3 + + 。h 2 6 3 与h 2 6 1 相比采用了半象素的运动补偿,并增加 了4 种有效的压缩编码模式。 1 无限制的运动矢量模式允许运动矢量指向图像以外的区域。当某一运动 矢量所指的参考宏块位于编码图像之外时,就用其边缘的图像象素值来代替。当 存在跨边界的运动时,这种模式能取得很大的编码增益,特别是对小图像而言。 另外,这种模式包括了运动矢量范围的扩展,允许使用更大的运动矢量,这对摄 像机运动特别有利。 2 基于句法的算术编码模式使用算术编码代替霍夫曼编码,可在信噪比和 重建图像质量相同的情况下降低码率。 3 先进的预测模式允许一个宏块中4 个8x8 亮度块各对应一个运动矢量, 从而提高了预测精度;两个色度块的运动矢量则取这4 个亮度块运动矢量的平均 值。补偿时,使用重叠的块运动补偿,8x8 亮度块的每个象素的补偿值由3 个 预测值加权平均得到。使用该模式可以产生显著的编码增益,特别是采用蕈叠的 块运动补偿,会减少块效应,提高主观质量。 4 p b 一帧模式规定一个p b 一帧包含作为一个单元进行编码的两帧图像。p b 一 帧模式可在码率增加不多的情况下,使帧率加倍。 而1 9 9 8 年制定的h2 6 3v e r s i o n 2 标准( h 2 6 3 + ) 主要是要求提供更广的应 用范围,以及更好的压缩效率。和h 2 6 3 相比,其主要特点如下: 1 输入图像格式不再局限五种格式,其它如图像大小,c l o c kf r e q u e n c y 等 均可自定而不再受限。 2 s c a l a b i l i t y :t e m p o r a ls c a l a b i l i t y ,s p a t i a ls c a l a b i l i t y ,a n d8 n r s c a l a b i l i t y 本类模式应用于当计算机效能不佳或频宽不足时,可以利用这种方式对视频 序列进行调整以降低需求,我们可以借助s n r 、空间轴、和时间轴来做处理。 3 i m p r o v e dp b - - f r a m e s 他有三个模式,一个为根据前一张作预测,一个根据后一张,一个根据前后 4 中国科学技术大学倾士论文 两张作预测,这种方式比较聪明,可以判断哪种方法能达到最好的效果,换句话 说,如果只根据前一张或后一张作预测,m o t i o nv e c t o r 就只需要一个,由此可 知,此种方法比之前的p b f r a m e sm o d eb i tr a t e 更低,品质提高。 4 a d v a n c e d 、i n t r ac o d i n g 此模式会自动判断图像性质,而改变其z i gz a gs c a n 的方式,借此达到更 好的品质和压缩率。 5 d e b l o c k i n gf ilt e r d e b l o c k i n gf i l t e r 其实就是一种低通滤波器,它可以改善块效应的不利影 响,使得影像所得到的效果提高。 7 a 1 t e r n a t i v ei n t e rv l c 此选项会改进i n t e r 的编码效率,将i n t r a 的v l cc o d i n g 给i n t e r 使用。 由此来增加视频的s n r 值。 8 m o d i f i e dq u a n t i z a t i o n 以m a c r o b l o k ( 1 6 x 1 6 ) 为单位,改变色差量化的步长,进而更加精确地控制 比特率。增加错误侦测效率,通过禁止某些不合理的系数来降低解码复杂度。 假如给出一个标准的h 2 6 3 码流( 二进制码流) ,我们如何对它进行解码呢? 显然,我需要知道这个码流中的每一位究竟是什么含义,只有这样,我才能对它 进行解码,i t u th 2 6 3 标准就是定义了一个标准2 6 3 码流中的每一位的具体含 义。h 2 6 3 码流的组织形式如图1 1 所示( 其实对很多标准的码流都是这样的) : 图1 1 码流的分层组织 如图1 1 所示,h 2 6 3 的码流就是按照这种分层的形式组织起来的,码流头首先 是一个在码流中其它地方不会出现的一个比较长的特殊序列,又叫起始码宁,然 中国科学技术人学顶十论文 后是具体的头信息,它定义了整个码流的一些特征,这些特征将会对你如何对这 个码流进行解码产生影响。例如,帧的长度利宽度,该码流用到哪些技术,没用 哪些技术等。帧头首先是帧起始码字,然后是具体的帧头信息,它定义了当前帧 的一些特征,例如当前帧使用的量化值等,这些信息决定了你该如何解码当前帧。 从宏块头开始就是具体的数据了,宏块头并没有一个宏块起始码字,它紧跟在 g o b 信息后面。 按照上面给出的定义,只要给我一个符合h 2 6 3 标准的码流,就能按照标准 定义的码流规范对这个码流解析并进行解码。首先,搜索码流起始码字,由于起 始码字唯一,只要码流正确,肯定能搜索到,找到起始码字后,就可以对码流头 信息进行解析,并把对后面的解码有影响的码字保存下来;接着,寻找帧头起始 码宁,找到后,对帧头信息进行解析,并存储对解码过程有影响的码字;最后, 从码流中读出宏块数据,并进行解码,恢复为原来的图像。对这个过程可以暂时 不用深究,只要大体知道这么一个概念就好了。 标准没定义什么? 常常有一个错误的认识,以为标准既然规定了什么,那么 编码器就应该照做。实际上这个理解是错误的,标准规定了符合这个标准的码流 应该是按照什么样的形式组织的,但是这个码流中的好多地方仍然是可选的,譬 如,一个码流可以支持无限制运动预测,也可以不支持,冈此,编码器对原始图 像进行编码的时候是有很大的灵活性的,它可以只是编码当前标准码流的一个子 集,当然,这个子集肯定也是符合标准的。其次,标准没有规定具体的实现技术, 譬如d c t ,既可以有浮点算法来实现,也可以用定点算法来实现;既可以有矩阵 乘来实现,亦可以用快速算法来实现,只要能保证建议所要求的精度就行。 还有其他一些特性,在标准中也只是作为一个建议给出来的,并没有强调一 定要这样做,这里不再详细一一列出。 1 3 硬件开发环境简介 p n x l 3 0 0 “3 是一种具高质量数字视频和音频应用处理能力的媒体处理器。它 支持超长指令字。1 ( v l i w ) ,并拥有独立于d s pc p u 的d m a 方式t 作的音视频输入 输出接口,3 2 位高带宽数据总线将所有的片上模块单元连接,如p c i 、s d r a m 、 图像协处理器( i f p ) 等,使数据处理极为快速方便。另外,其强大的面向多媒体 6 中国科学技术大学硕士论文 应用的指令系统和丰富的库函数使开发者能快速完成软件编程。 本系统是一种嵌入式系统,它能完成视频和音频数据的采集与输出功能,并 能通过高速网络传递压缩编码后的音视频数据流。p n x l 3 0 0 具有强大的多媒体数 据处理能力,它在系统中可以完成音视频数据的压缩编码或解码,同时处理网络 数据的收发,并可以通过p s o s 实时操作系统协调和调度整个系统的任务,从而 形成强大的多媒体音视频数据处理和传输系统。 p n x l 3 0 0 开发板的结构示意图如图1 2 所示, 图1 2 开发板功能模块示意图 本系统与视频处理相关的部分主要有以下几个模块: s a a 7 1 1 3 视频编码模块( a i ) 模块) ,负责编码采集到模拟视频数据; s d r a m ,负责存储采集进来的大量视频数据; p n x l 3 0 0d s pc p u ,主要负责从s d r a m 读取原始视频数据并进行压缩; s a a 7 1 2 1 视频解码模块( d a 模块) ,从内存读取解码重建的图像数 据,并显示到屏幕; v l d 协处理器,负责对编码过的h u f f m a n 码进行解码; 图像协处理器,负责对采集到的或者即将输出的图像进行一些简单 7 中国科学技术大学倾士论文 的缩放变换,减轻d s p 的负担。 其中,p n x l 3 0 0d s pc p u 支持d m a 操作。这使得s a a 7 1 1 3 s a a 7 1 2 1 模块可以 直接将数据搬进搬出s d r a m ,而无须占用d s p 资源,从而将更多的c p u 资源留 给非常耗时的视频压缩过程。 p n x l 3 0 0 的p c i x i o 接口控制和复用逻辑使其可以用于为p c 机环境设计的 p c i 音视频处理加速卡,也可以用于独立t 作的嵌入式系统。在系统设计中,既 可以访问p c i 外设,如p c i 网络接口芯片,又可以访问各种8 位外设,如r o m 、 8 位m c u 、程序存储器f l a s hm e m o r y 等。 基于此开发平台的次典型的图像处理过程为:s a a 7 1 1 3 通过摄像头采集原 始的视频信号,进行模数转换,存储在内存区指定的位置,然后给d s p 一个中断 信号,d s p 调度图像协处理器对视频格式大小进行转换,来适应编码器的要求。 d s p 启动编码器程序对内存区中的视频数据进行编码压缩,压缩后的数据等待本 地解码显示或者通过网络、串口传输到其它终端显示。d s p 接收到本地或者通过 通过网络、串口传输来的编码数据后,调用解码器进行解码( 有可能会启动v l d 协处理器辅助解码) ,解码后的视频图像存储在指定内存区,由s a a 7 1 2 1 进行数 模转换并显示到屏幕上。 中国科学技术大学硕士论文 2 h 2 6 3 视频编码算法原理 2 1 视频质量的评价标准 视频图像是一种载有一定信息量的载体,根据信息论,信息载体的信息量大 小可以用熵来表示,视频图像的熵的表达式如下: n 、 ( x ) = 一尸( 一) l o g p ( x , ) ( 2 1 ) i - i 式中h ( x ) 的单4 立j , j 比特字符,图像象素灰度级集合x = f x ik ,h ,起始 对应的概率分别为p ( x ,) ,k ,p ( h ) ,图像熵表示为图像灰度级集合的比特平均数, 单位比特象素,也描述了图像信源的平均信息量。 按照信息论中无干绕的编码定理,在无干扰的情况下,存在着一种无失真的 编码方法,使得编码的平均长度与信源的熵任意地接近。在这基础上,定义了某 种编码方法的效率和冗余度分别为: r l 日( z ) z ( x ) ( 2 2 ) y = 1 一r l = ( 三( x ) 一( x ) ) l ( x ) ( 2 3 ) 其中,z ( x ) 为编码的平均码字长,q 为编码效率。从式中看出,信息量的 大小与图像信源的概率分布有直接的关系,当n = 2 时,即图像信源各象素灰度 出现的概率相等,均为1 2 ,则此时的熵最大,等于l 比特。此时用普通等长自 然二进制码就可以达到编码效率为1 ,在不等概率分布时,熵h f x ) 小于上,如 采用和概率分布相适应的不等长编码可以使平均码长小于l ,实现数据压缩。也 就是说明图像信源数据中包含着冗余,采用不等长编码后的信源熵尽可能接近最 大值,只要信源不是等概率分布的,就存在数据压缩的可能。冈此得到一种图像 数据压缩的方法,就是尽可能的改变信源的概率分布,使得其非均匀,再采用变 长编码后,使图像数据得到压缩,而且压缩编码后的信息熵接近最大值。 由于视频图像数据另一个显著的特点是它的数据在空间、时间上的相关性, 包含了许多冗余的信息,消除这部分冗余信息,也可以达到压缩的目的,这又提 中国科学技术大学钡士论文 供了一种视频数据压缩的途径,就是可以通过一些方法,尽可能地消除图像信源 数据中的相关性,使之尽可能成为非相关图像信源,达到压缩目的。 图像压缩编码可以看作是码率和图像质量视觉感知失真之间的一种折中,图 像质量视觉感知失真的正确评价关系到图像压缩算法的设计和优化。通常视频压 缩是有损压缩,有的是为了提高压缩比而损失了图像信息,降低了图像的质量, 在视频图像通信应用系统中,人们常对压缩造成的视频图像的失真度有一定的要 求,因此必须提出一系列对图像或视频压缩性能综合评价的主客观标准。 常用的客观评价标准如下: 1 压缩比 压缩前信源数据量与压缩后数据量之比。这是衡量压缩效率的一个重要指 标。常用的压缩比公式为: p :兰盘( 2 4 ) 厶 式中,t 为数据源的代码长度,l 。为压缩后的代码长度,p 为压缩比。 对于静态图像压缩编码而言,另一个普遍采用的衡量指标是压缩后的数据平 均为每象素所分配的比特数,即为b p p ,如表2 1 所示 码率( 比特象素)图像质量 0 2 5 一o 5 0 中等至好 o 5 0 o 7 5 好至很好 o 7 5 1 5 极其好 1 5 2 0 与原始图像几乎一样 表2 1 按比特码率划分的质量标准 2 信噪比 直接反映压缩造成的信号失真度的大小情况,记为s n r ( s i g n a lt on o i s e r a t i o ) 。公式如下: s n r ( d g ) :1 0 i o g 。( 罢) ( 2 5 ) o d 式中为源图像的均方值,2 为源图像与重构图像之差的均方值。 通常,因为象素值7 , j 非g t 数,在上式采用象素的最大值o - 。代替吒,则得 到峰值信噪比。对彩色信号一般取其亮度分量来计算信噪比。在h 2 6 3 标准中, 信源图像的亮度分量的精度为8 比特,故公式可以写为: 中国科学技术大学硕士论文 l o g “旁o - l 圳1 o g i 。i 磊2 5 5 舅* 2 5 5 磊心6 ) w i 出h 4 h e i g h f 台鼍“q 式中,w i d t h 为图像每行的象素数,h e w r 为图像的行数,d f 掰j 为源图像与 重构图像在i 、j 处的亮度差值。 3 图像连续性 图像画面的连续性对于视频图像压缩编码而言也是评价的一个重要指标。可 以用每秒播放的图像帧数f p s ( f r a m ep e rs e c o n d ) 来衡量,按照人类视觉暂留特 性,3 0 以上的帧速率已经达到极好的连续性,如f p s 过低,此时的图像画 叮会 给一种明显的跳跃不连续的感觉。因此,在许多通信应用领域都对指标有严格的 要求,综合性能比较好的视频压缩系统都能达到5 f p s 以上。在实际情况中,如 果要保证设计的编码器该项指标不能太低,可以使用专用的d s p 实现,也可以通 过下面的途径来提高:1 、减小图像画面的分辨率;2 、寻求复杂度更低的压缩算 主观评价标准: 在对视频图像压缩性能的综合评价中,除了采用客观指标进行定量的分析评 价外,人类的主观评价也是不可或缺的。主要基于两点考虑:客观评价指标并非 十分系统、完善的反映压缩编码的某些特定性能,譬如:在某些情况p s n r 很高, 但并没有真是反映出观察者对图像失真的视觉感受,图像质量也不能让人满意。 主观评价实际上是融入人类视觉系统,对不同频率响应而产生的感觉加权, 对图像视频的主观评价有许多方式,相应的测试标准和测试过程也不同。日前大 多数采用c c i r 推荐的典型分级标准,如表2 2 所示。 妨碍尺度质量尺度 5 丝毫看不出图像质量变坏5 非常好 4 能看出图像质量变化,不妨碍观看4 好 3 清楚的看出图像质量变坏,对观看者有妨碍3 一般 2 对观看有妨碍2 差 1 非常严重妨碍观看1 非常差 表2 2 图像质量主观评价尺度 对于一套基于d s p 实现的图像视频压缩系统的性能综合评价,也需要进行主、 客观的综合评价,两者缺一不可。通常,客观指标多用于对算法优劣的比较,而 对最终的图像质量的评价还是要取决于人类的视觉,也就是要依靠主观评价的结 中国科学技术人学坝十论文 果,因此本文的应用系统就必须正确使用主客观标准来衡量和评价。 2 2 图像处理的一些相关概念 1 帧的概念 一帧图像有三个整数矩阵构成:一个亮度矩阵( y ) ,两个色度矩阵( 一个u , 一个v ) 。亮度矩阵的大小也被称为当前帧的大小,而色度矩阵的大小为亮度矩 阵的1 4 ,即长度和宽度都为亮度矩阵的一半。下面我们简单说说y ,u ,v 的 由来: 一个原始的彩色图像可以由r ,g ,b 二个矩阵合成而来,这三个矩阵大小都 等于当前图像的大小。由这三个矩阵经过一个变换可以得到y ,u ,v ,这 三个矩阵的大小也是原始图像的大小。经过从r g b 到y u v 的变换后,图像 中比较重要的信息,也就是对人类视觉影响比较大的信息都集中在y 矩阵中, 而u v 矩阵中的图像信息比较小,因此,为了节约比特数,我们可以“i 用对 整个的u v 矩阵进行编码,可以对u v 矩阵首先进行一个下采样,使得 u v 图像的长度宽度都为原来的一般,这样就得到我们视频编码时常常看到的 4 :2 :0 的y u v 图像格式。我们对标准的码流进行解码之后得到也是4 :2 :0 的y u v 矩阵,当然还需要对这个矩阵进行上采样,使得y u v 矩阵都为原始图像大小,然 后再变换到r g b 就可以显示了。 2 逐行扫描与隔行扫描 通过摄像头进来的图像是模拟的,我们要对它进行采样,并把它转化为数字 信号。通常,采样是按行进行的,有两种方式,一种是从上到下,逐行采样,得 到的图像称为逐行扫描图像;还有一种是隔行进行的,即首先采样奇数行( 或者 偶数行) ,接着再采样偶数行( 奇数行) ,这样得到的图像称为隔行图像。注意, 这两种采样方式得到的图像是不一样的,因为摄像头进来的图像是动态变化的。 对逐行图像,第一行图像和第二行图像之间的采样时间差别很少;而对隔行图像, 第一行采样和第二行采样之间,已经相差了半帧的时间。对隔行图像,如果图像 运动比较厉害的话,图像会走样。 3 帧的编码类型 帧编码类型有四种: 中国科学技术_ 人学硕士论文 内部编码( ip i c t u r e ) ,只用到当前帧的信息编码; 单向预测( pp i c t u r e ) ,利用它前面的ip i c t u r e 或者pp i c t u r e 利用运动 补偿技术来编码; 双向预测( bp i c t u r e ) ,利用前面和后面的ip i c t u r e 或者pp i c t u r e 利用 运动补偿技术来编码; p b 及改进的p b 帧,包含作为一个单元进行编码的两帧图像。 4 宏块( m a c r o b l o c k ) 一个宏块包括亮度成分和对应的色度成分。对我们上面说到4 :2 :0 格式的帧, 亮度块的大小为1 6 x1 6 ,色度块的大小为8 8 ,如图2 1 所示: 口口 y c b c r 图2 14 :2 :0 宏块结构 为了统一起见,我们把亮度块分成四个块,大小为8 x 8 ,这样一个宏块就由 六个块组成,每个块的大小都为8 x8 ,并且在编码时用到的离散余弦变换,量 化等都是基于块来实现的。 h 2 6 3 建议规定的压缩过程如图2 2 所示,在接下来几节里,我们将重点介 绍一下d c t 变化、量化、预测、码流形成等关节技术。 中国科学技术人学侦士论文 2 3d o t 变换 图2 2h 2 6 3 视频压缩流程图 余弦变换是傅立叶变换的一种特殊情况。当傅立叶级数展开式中,被展开的 的函数是实偶函数,那么,其傅立叶级数中只包含余弦项,由此可导出余弦变换 的名字,或称之为离散余弦变换( d c t d i s c r e t ec o s i n et r a n s f o r m ) 。假如已知 函数厂( x ) 0 0 ) ,并非实偶函数,人为地把它对称扩展到x 3 l 口p b f c g dh 0 z垅 , 胛 ko ,p 图3 3 对内存中连续存放的一个4 4 矩阵进行转置 考虑到矩阵元的数据结构和将要实现的功能,假如使用最直接的方法来实 现:我们需要执行1 2 次字节读取指令( 有4 个字节位置不需要改变) ,然后再1 2 次宁节存储指令把字节存储到新的内存位置,存取数据本身就是比较耗时的,因 此,进行2 4 次这样的操作,耗时是很严重的。或者我们采取另外一种方法,把 四个字节看成一个3 2 比特字读取出来,之后在寄存器中完成转置工作,这样, 我们需要执行4 次字读取存储指令,但在寄存器中转置时,需要大量的移位、 m a s k 比特操作,耗时情况还是不容乐观。能不能采取一种方法使得存取次数少, 而且不需要涉及到字节操作呢? 答案是肯定的。p n x l 3 0 0 指令中包含相当一部分 合并打包字节的定制操作,在这个例子中,我们需要使用到其中的4 个: m e r g e m s b 、m e r g e l s b 、p a c k l 6 l s b 、p a c k l 6 n s b ( 如图3 4 所示) 。 中国科学技术大学硕士论文 o3 1 p a c k l 6 l s b p a c k l6 m s b 03 l o m e r g e l s b m e r g e m s b 图3 4 四种定制操作功能简图 具体的实现代码如下: c h a rm a t r i x 4 4 j i n t8 m = ( i n f * ) m a t r i x t e m p o = m e r g e m s b ( m o m 1 1 】) : t e r h p l = m e r g e m s b ( m 2 m 1 3 ) ) : t e m p 2 = m e r g e l s b ( m 氓m l l 】) ; i e m p 3 = m e r g e m s b ( m 1 2 ) m ( 3 】: m f 0 j = p a c k l 6 m s b ( t e m p o , t e m p l ) ; m i l l = p a c k l 6 l s b ( t e m p o , t e m p l ) , m 1 2 j = p a c k l 6 m s b ( r e m p 2 洄叩3 ) : m ( 3 j = p a c k l 6 l s b ( t e m p 2 , t e m p 3 ) ; 由p n x l 3 0 0 定制操作来实现,仅需要4 次l o a d 操作,4 次s t o r e 操作,8 次 寄存器到寄存器操作,且这些寄存器到寄存器操作仅耗时一个时钟周期。 3 4 高速缓存结构 p n x l 3 0 0c p u 及其对d m a 的支持和协处理器单元都能够快速的对音、视频信 号进行处理,这种优势是建立在它设计合理的存储结构基础之上的。为了让c p u 以及协处理器能够满负荷运转,存储单元必须能够非常快速的存取数据满足它们 的需要。为了达到这一曰标,存储单元的设计必须在低开销、简单的系统实现和 中国科学技术火学硕十论文 高性能之间取一个折中。由于多媒体视频数据通常需要临时的大存储空间来存储 数据,冈此,外部的d r a m ( s d r a m ) 必不可少。p n x l 3 0 0 的存储单元通过片上c a c h e 和外部r a m 的同步连接来实现一个高性能的存储体系。c a c h e 允许c p u 以极快的 速度读取指令或存取数据,如果没有c a c h e ,受限于外部内存的存取速度,c p u 不可能达到它的潜在运算能力。1 0 0 m h z 的p n x l 3 0 0c p u 的吞吐能力如表3 4 所 示。 i 吞吐速度类别 2 8 0 0m b s指令读取带宽( 2 2 4 比特指令) 8 0 0m b s 数据存取带宽( 2 个3 2 比特接口) 4 0 0m b s 片外内存( 一个3 2 比特接口) 表3 4 1 0 0 m h zp n x l 3 0 0c p u 的吞吐能力 由表格数据可以看出,虽然片外内存的吞吐能力高达4 0 0 m b s ,但是与c p u 的最 高吞吐能力( 包括指令、数据) 相比,远远不能满足其需要。而片上c a c h e 的存在, 极大的缓解了这种需求彳i 平衡的矛盾。 3 个 指令分枝单元 3 2 k b ,8 路l h 一 指令解码器 捂令c a c h e i 1 外部3 2 m v l i w s d r a m c p u 1 两个内存单元 1 6 k b ,8 路l 一 数据c a c h e p n x l 3 0 0d s p c p u 图3 5p n x l 3 0 0 处理器的片上c a c h e 结构 p n x l 3 0 0d s pc p u 的片上c a c h e 结构如图3 5 所示,片上c a c h e 包括3 2 k b 的指令c a c h e 和1 6 k b 的数据c a c h e 。 其中,指令c a c h e 分成6 4 个组,每组包含8 个c a c h e 块,每个块6 4 字节大 小。考虑到指令存储的效率,编译出来的二进制可执行代码以压缩格式存储在内 存及指令c a c h e 里面,在传递给d s pc p u 之前,必须经过指令解码单元进行解码, c p u 才能正确识别并执行。此外,与指令c a c h e 相关的还包括3 个指令分枝单元, 可并行处理3 路的程序分枝操作,每个分枝单元由分枝操作码、标记位、分枝跳 中国科学技术_ 人学硕士论文 转条件和跳转目标地址四部分组成,而实际上程序最终只需且只能选择其中的一 个“标记位和分枝跳转条件皆为真”的跳转分枝进行跳转操作。这样一来,就在 一定程度上减少了选择跳转分枝所造成的d s p 效率降低的情况。 数据c a c h e 被分成3 2 个组,每组8 个c a c h e 块,每块大小也是6 4 b 。与数 据c a c h e 相关的是两个内存单元,每次p n x l 3 0 0d s pc p u 可由c a c h e 读取存储 2 个3 2 b i t s 的数据单元,也允许d s p 在一个周期内同时执行读写操作,这就提 高了d s p 的数据吞吐能力。 关于数据c a c h e ,有几点特性值得一提:l 、c a c h e 加“锁”,数据c a c h e 允 许1 2 的c a c h e 空间被加锁,也就是说,在p n x l 3 0 0 上,8 k b 的c a c h e 可以被当 作高速片上内存使用,每组的8 个块中,只有4 个块可以被加锁。被锁定的c a c h e 块内容固定,除非锁定状态被软件解除或者对该块执行i n v a l i d 操作。这种机制 允许程序设计者把一些使用率非常高的数据在程序执行期问永久的储存在c a c h e 中,就像使用内存一样使用这些c a c h e ,从而提高程序读写这些数据的时间。2 、 c a c h e 的预取指令,该指令在c p u 执行其它运算的同时,从内存读取一个c a c h e 块( 线) 的内容到c a c h e 中,如果所要读取的数据已经在c a c h e 中了,那么该条指 令刁i 进行任何操作。如果目标c a c h e 块不需要拷贝回内存,则c p u 需要停转3 个 周期来完成该操作,否则需要至少1 1 个周期。预取指令使得程序设计者可以在 计算尚未使用到某些数据的时候,提前把数据放入c a c h e 中,等到使用这些数据 的时候,c p u 就不会再停转从内存中读取。在数据量不是很多的时候,我们可以 一次性把所需数据预取到c a c h e 中,避免c p u 频繁停转情况的发生,提高c p u 执 行效率。 c a c h e 跟内存相比,容量是非常小的,不可能一次性把整个工程需要的指令、 数据全部放进去,因此,在不考虑预取的情况下,每次只能读进来当前需要的指 令、数据,在所有的c a c h e 块都用完了情况下,就需要采取措施把某些块的内容 替换成新的要被使用到的内容。替换那些c a c h e 块? 我们需要一个判断的准则。 p n x l 3 0 0 采用的措施是l r u ( 最近最不常使用) 准则。在每次需要丢弃一个c a c h e 块时,把那些最近没有使用的给覆盖掉。 前面介绍过,指令和数据c a c h e 都是分成组的,每组均为8 个块,这8 个块 被分成4 对,p n x l 3 0 0 对4 对c a c h e 采用4 路l r u 法则,对每对所包含的2 个块 则采用2 路l r u 法则,这样做的优势后面将做介绍。当发生c a c h em i s s 时,用 中国科学技术火学硕士论文 到的数据必须被读入c a c h e ,l r u 法则负责选出最近最卅i 经常使用的块。首先 依据4 路l r u 法则从4 对c a c h e 中选出 出正确的块。 一般来讲,n 路l r u 法则需要n 水( n 对,接着依据2 路l r u 法则从该对中选 1 ) 2 个比特来存储相关信息,比如n - 2 则只需要一个比特来记录最近使用情况:第一个块被使用,该比特置1 ,第二个 块被使用则置0 ,直接查看该比特的值,就可以知道最近被使用的块。在p n x l 3 0 0 体系结构中,如果直接采用8 路l r u ,需要2 8 个比特,采用4 路+ 2 路的方式, 需要6 + 4 1 = 1 0 个比特。 对4 路l r u 法则,需要6 个比特来记录最近使用情况,为了处理方便,这6 个比特用一个4 4 矩阵下三角( 去掉对角线) 的6 个矩阵元来替代,如图3 6 灰 色格子所示:r 1 0 ,r 2 0 ,r 3 0 ,r 2 1 ,r 3 1 ,r 3 2 。当第 k ( 0 k 7 ) 块被使用时,矩阵的k 2 ( 取整) 行置l ,k 2 列置0 ,在需要找出最 近最不常使用的一对c a c h e 时,该矩阵中行元素全为0 ( 或者没有) ,对应列全为 1 ( 或者没有) 的就是符合条件的那对c a c h e 。此外,还需要用4 个比特2 _ w a y 0 2 _ w a y 3 来记录对应4 对c a c h e 的使用情况,对应比特置为1 一( km o d2 ) ,比特 为0 ,说明最近刚使用过第二个块,为1 说明刚使用过第一个块。 举个例子,假设我们依次使用了6 1 4 3c a c h e 块,那么相关的1 0 个比 特的改变情况如何呢? 闺盛 图3 6 记录4 个c a c h e 对的矩阵及初始化示意图 首先要对1 0 个比特初始化: r 【1 】 o 】= r 2 】 o 】= r 3 】 o = 1 ; r 【2 】【1 = r 3 】 1 】_ r 【3 】【2 卜o ; 2 _ w a y 3 2 2 _ w a y 2 2 2 _ w a y 1 - 2 _ w a y 3 2 0 ; 第一步,访问b l o

温馨提示

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

评论

0/150

提交评论