(信号与信息处理专业论文)基于dm642的h264网络视频编码器.pdf_第1页
(信号与信息处理专业论文)基于dm642的h264网络视频编码器.pdf_第2页
(信号与信息处理专业论文)基于dm642的h264网络视频编码器.pdf_第3页
(信号与信息处理专业论文)基于dm642的h264网络视频编码器.pdf_第4页
(信号与信息处理专业论文)基于dm642的h264网络视频编码器.pdf_第5页
已阅读5页,还剩67页未读 继续免费阅读

(信号与信息处理专业论文)基于dm642的h264网络视频编码器.pdf.pdf 免费下载

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

文档简介

摘要 摘要 在多媒体技术和网络通信技术飞速发展的今天,嵌入式系统中的多媒体传输 得到了越来越广泛的应用。研究和开发嵌入式视频通信系统具有非常大的科研意 义和应用价值。超大规模集成电路的发展使得在单d s p 芯片上运行高的计算复杂 度的视频压缩编码和网络传输功能成为了可能。使用目前先进的h 2 6 4 视频编码 压缩标准进行压缩,使用t c p i p 协议栈传输视频数据成为嵌入式视频通信系统的 最佳方案之一。 本文在深入研究h 2 6 4 标准和t c p i p 协议的基础上,基于t i 公司生产的 t m s 3 2 0 d m 6 4 2 芯片上,搭建了一套视频压缩编码传输平台。编写了底层驱动程序, 设计和实现了精简化的小型t c p i p 协议栈,编写s e r v e r c l i e n t 程序,使用摄像头 采集模拟电视信号,采样后输入编码器,将h 2 6 4 的编码数据使用r t p 包发送到 p c 端进行解码播放。该协议栈具有占用代码量小,速度快,可灵活修改等特点, 并且针对h 2 6 4 码流的特点做了一些改进措施。 在编码器方面,从算法级到程序级进行了优化,提出一种帧内快速预测算法, 减少了候选模式的数量,在降低很小信噪比和码率提高不多的情况下提高了编码 速度,并使用快速s k i p 模式判断来减小帧间预测的复杂度。完善了编码器的流程 框架,结合d s p 的特点,对内存的分配,变量定义,软件流水,内联函数等进行 了优化措施。 经过实验和验证,本文设计和实现的h 2 6 4 视频编码传输平台可以进行实时 视频采集编码传输的功能,为相关的应用,如作视频监控,电视会议等系统的重 要模块,提供了有益的参考。 关键词:t c p i p ,h 2 6 4 ,d m 6 4 2 ,帧内帧间预测 a b s t r a c t t o d a y , w i t ht h ef a s td e v e l o p m e n to fm u l t i m e d i aa n dn e t w o r kc o r n m u n i c a t i o n t e c h n o l o g i e s ,e m b e d d e dm u l t i m e d i at r a n s m i s s i o ns y s t e mg e tm o r ea n dm o r ee x t e n s i v e a p p l i c a t i o n s 1 1 1 er e s e a r c ha n dd e v e l o p m e n to fe m b e d d e dv i d e oc o m m u n i c a t i o ns y s t e m h a v eav e r yl a r g es c i e n t i f i cv a l u ea n dp r a c t i c a ls i g n i f i c a n c e w i mt h ed e v e l o p m e n to f v l s i ,i ti sp o s s i b l et or u nh i 曲c o m p u t a t i o n a lc o m p l e x i t yo fv i d e oc o m p r e s s i o na n d n e t w o r kt r a n s m i s s i o no no n es i n g l ed s p c h i p u s i n gt h ec u r r e n ta d v a n c e dv i d e oc o d i n g c o m p r e s s i o ns t a n d a r dh 2 6 4f o rc o m p r e s s i o n ,u s et c p i pp r o t o c o ls t a c kf o rt r a n s f e r i n g v i d e od a t aa c ta so n eo ft h eb e s ts c h e m e so ft h ee m b e d d e dv i d e oc o m m u n i c a r l o n s y s t e m o nt h eb a s eo fd e e ps t u d yo ft h eh 2 6 4s t a n d a r da n dt h et c p i pp r o t o c o ls t a c k ,a v i d e oc o d i n gt r a n s m i s s i o ns y s t e mw h i c hi sb a s e do nt e x a si n s t r u m e n t sc o r p o r a t i o n s t m s 3 2 0 d m 6 4 2d s pc h i pw a sp r o p o s e d t h ed r i v e ro fn e t w o r kp h y s i c a ld e v i c ew a s p r o g r a m m e d ,as m a l la n ds i m p l et c p i pp r o t o c o ls t a c kw a sd e s i g n e da n dc o n s t r u c t e d , a n ds e r v e r c l i e n tp r o g r a mw a sc o m p l e t e d 1 1 1 ec a m e r ac a p t u r e da n a l o gt vs i g n a l ,a f t e r d o w ns a m p l i n gt h es i g n a l ,t h eh 2 6 4e n c o d e rp a c k e dc o m p r e s s e dv i d e od a t au s i n gt h e r t p p a c k e t s ,s e n tt op c t od e c o d e t h i st c p i pp r o t o c o ls t a c kh a st h ec h a r a c t e r i s t i c so f as m a l ln u m b e ro fc o d e s ,f a s tr a t e ,f l e x i b l et om o d i f y , a n dm a k es o m ei m p r o v e m e n t si n v i e wo ft h ec h a r a e t e r i s t i e so ft h eh 2 6 4s t r e a m a tl a s t ,t h eh 2 6 4e n c o d e rh a sb e e no p t i m i z e df r o mt h ea l g o r i t h ml e v e lt ot h e p r o g r a ml e v e l af a s ti n t r ap r e d i c t i o na l g o r i t h mw a sp r o p o s e d ,r e d u c e dt h ec a n d i d a t e m o d e sa n dg r e a t l yi n c r e a s e dt h ee n c o d i n gs p e e dw i t hb a r e l yp s n rd e c l i n ea n ds m a l l r a t ei n c r e a s ea n dt h ef a s ts k i pm o d ej u d g et or e d u c et h ec o m p l e x i t yo fi n t e rp r e d i c t i o n e n c o d e rp r o c e s sf r a m e w o r kw a sm o d i f i e d ,a n dc o m b i n e dw i t ht h ec h a r a c t e r i s t i c so f d m 6 4 2 ,o p t i m i z a t i o nm e a s u r e ss u c h a sm e m o r ya l l o c a t i o n ,v a r i a b l er e d e f i n i t i o n , s o f t w a r ep i p e l i n i n g ,i n l i n ef u n c t i o n sw a si n t r o d u c e d ,n l eh 2 6 4v i d e oe n c o d i n ga n dt r a n s m i s s i o ns y s t e mw i t haf e a t u r eo fr e a l t i m e v i d e oc a p t u r ea n dt r a n s m i s s i o nc a nb eu s e da st h ec o r em o d u l eo ft h ev i d e os u r v e i l l a n c e s y s t e m , v i d e oc o n f e r e n c es y s t e ma n d e t c k e y w o r d :t c p i p , h 2 6 4 ,d m 6 4 2 ,i n t r a i n t e r 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工 作及取得的研究成果。据我所知,除了文中特别加以标注和致谢的地 方外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含 为获得电子科技大学或其它教育机构的学位或证书而使用过的材料。 与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明 确的说明并表示谢意。 签名: 日期:幼年于月膨日 论文使用授权 本学位论文作者完全了解电子科技大学有关保留、使用学位论文 的规定,有权保留并向国家有关部门或机构送交论文的复印件和磁 盘,允许论文被查阅和借阅。本人授权电子科技大学可以将学位论文 的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或 扫描等复制手段保存、汇编学位论文。 ( 保密的学位论文在解密后应遵守此规定) 签名:垒幽导师签名:型圭 日期:加o 年,月净日 第一章绪论 第一章绪论 2 1 世纪的基本技术特征是数字化、网络化和信息化,伴随着知识经济的不断 兴起,信息技术革命的浪潮已经席卷全球,人类已真正步入信息时代。视频信息 占人类获取信息的7 0 ,具有准确、直观、具体、高效、应用广泛及信息量大等 特点。而视频信号的传输也成为研究热点。视频信号特点是数据量大,如果不经 压缩,用于可视电话的q c i f 格式,帧率2 5 f p s 至少需要带宽7 6 m b p s ,高清电视 h d t v 不压缩需要带宽1 g b p s ,用m p e g 2 压缩需要2 0 m b p s ,显然视频信号必须 经过压缩才能传输。h 2 6 4 相较h 2 6 3 和m p e g - 4 在相同的视频质量下,码率下降 一半,传输成本降为原来的i 4 。并且h 2 6 4 有良好的网络亲和性,i p 技术传输视 频信号已经得到广泛的利用。 1 1 视频压缩编码综述 视频信号是由连续的多幅图像组成的,每幅图像的相邻像素之间有很强的相 关性,因此可以对像素值进行预测,仅传送预测值与当前值的差值,这样视频信 号就被压缩,称之为帧内预测编码。而相邻帧之间时间相关性更高,可以获得比 帧内预测更高的压缩效率。视频信号包含在能量上占主要部分的直流和低频成分 ( 即平坦部分) ,还有少量高频部分,即图像细节。因此可以将图像通过数学变化, 除去低频和直流成分高频的少量,其余均为零值,不用码传送,这样完成压缩称 之变换编码【l j 。 视频编码方法根据所采用的信源模型不同分为以下三种。 基于波形的编码:采用把预测编码和变换编码结合起来得到基于像素和块的 混合编码方法,易于操作。1 1 r u - t 发布的h 2 6 1 ,h 2 6 3 ,h 2 6 3 + ,h 2 6 4 ,i s o 下 属的运动图像专家组( m p e g ) 的m p e g 1 ,m p e g 2 ,m p e g - 4 等均属于此种编码。 基于内容的编码:由于视频内容被人为划分为许多固定大小的块,当包含边 界的块属于不同物体时不能用同一运动矢量表示,这种块将产生高的预测误差和 失真,严重影响编码质量,因此将视频帧分成对应不同物体的区域,对不同物体 形状、运动和纹理分别编码。m p e g - 4 包含了此种编码方法1 2 。 三维视频编码:其数据来源为多视点( 多摄像机) 视频,以及其对应的深度信息, 电子科技大学硕士学位论文 同样分为基于波形和基于物体的编码。由于其数据量巨大,并且应用范围非常广 泛,因此其压缩技术成为了近几年研究的热点。 1 2 视频编码传输系统的实现 由于互联网的广泛使用,视频应用的大部分使用口技术传输,例如可视电话, 电视会议,流媒体服务器等。包括视频监控系统,使用口网络传输非常快速,并 且能够方便的接入互联网以扩展功能,相比较其他的传输方案,使用口网络传输 具有很强的适用范围,并且传输稳定性和容错性都有大量的研究和方案。整个系 统的实现分为编码器和传输部分。编码器的实现方法在2 3 小节,协议栈的实现方 法在3 3 小节。而整个系统实现平台可以有以下几种: 1 通用c p u :此方案灵活性大,开发周期短,开发费用低,并且有很多现成 的编码器和协议栈的方案,但是由于依赖于p c 平台,应用的范围受到很大的限制。 2 f p g a :使用硬件描述语言( v e r i l o g h d l 、v h d l ) 等在f p g a ( 现场可编程门阵 列) 上通过编程,以硬件逻辑实现编码算法,由于f p g a 的并行计算,可以达到很 高的速率,由于目前f p g a 主要做一些辅助的运算,复杂的编码需要大量的门阵 列,需要对硬件有深入了解,并且开发周期较长,不易调试。 3 a s i c :视频专用芯片,由于全部使用硬件逻辑实现,是视频编码算法中速 度最快的一种方式。但是由于针对的是某种特定的编码,通用性不强,并且开发 周期很长,系统升级很不灵活,并且开发成本过高,只能由一些专业的大公司来 完成开发。 4 d s p :视频编码的实质是数字信号处理,因此d s p 中很多的硬件乘法器、累 加器等都适用于编码中的很多计算过程。并且几大d s p 生产厂商都推出了专用于 视频信号处理的d s p 芯片,可供参考的开发方案多,成本低,开发周期短,开发 难度不大,因此成为嵌入式视频编码方案的首选。 1 3 选题背景及意义 多媒体技术用途非常广泛,发展非常迅速,对人们的生活和生产产生了巨大 的影响【3 1 。多媒体的编码和传输是多媒体技术的重点。在嵌入式视频通信领域,使 用何种编码标准能够达到令人满意的编码效果,数字视频在p 网络上传输使用什 么协议栈,通过什么协议传输,能够在嵌入式系统的有限内存空间实现高效快速 2 第一章绪论 的编码器和通畅稳定的视频流传输,都是非常具有研究价值的。 视频编码标准的选择需要能够有很强的网络亲和性,有很高的压缩效率,并 且能够方便的使用嵌入式硬件来实现。h 2 6 4 标准正符合上述要求。h 2 6 4 的分层 结构能够将编码器的输出码流方便的适配到i p 网络中,并且比较前一代的视频编 码标准相同信噪比情况下码率下降一半,使用了很多关键技术提高系统的抗误码 和错误恢复的能力,基本档次适合实时通信的低延时要求,能够比较方便的使用 数字信号处理器d s p 来实现。 d s p 平台具有其他平台没有的优点:开发周期短,开发语言简单,能够快速 的验证编码和传输的效果,便于修改和优化,一块d s p 芯片可以做多路的视频编 码,并且由于大规模集成电路的高速发展,速度越来越快,针对视频应用和i p 网 络传输的芯片也越来越多,因此,使用d s p 芯片为核心的视频编码传输系统得到 了最广泛的开发和研究。 正是在上述背景下,使用h 2 6 4 编码视频信号,通过i p 网络传输的方案有着 非常广泛的应用前景和研究价值。 1 4 论文的主要内容和安排 本文的主要工作内容是结合d s p 的硬件特性,选择一个新的方案构建h 2 6 4 的传输系统,通过d s p 和p c 对连验证传输系统的可靠性和有效性,并且在对h 2 6 4 标准进行研究的基础上,在d m 6 4 2 平台上作编码器的优化工作以提高编码速度。 首先熟悉h 2 6 4 的编解码框架以及t c p i p 协议栈,在参考其他常用协议栈下 构建了一个精简的协议栈进行数据传输测试,然后设计接口连接编码器和解码播 放器进行传输测试,最后针对编码器进行一系列的优化工作,从算法级到程序级 对编码流程和模块进行优化,然后根据d m 6 4 2 的硬件特点进行了一些针对性的优 化,有效的降低了编码器的计算量,提高了编码速度。 本论文安排如下: 第一章是绪论,主要阐述课题的背景,方案的实现和本文的主要内容。 第二章第三章分别介绍系统的编码标准h 2 6 4 和传输协议t c p i p 协议栈。 第四章介绍了基于h 2 6 4 的传输系统的实现方法,如何构建底层驱动和协议 栈,如何连接编码器和解码器接口,如何进行测试等。 第五章是对编码器代码进行结构调整,从算法级到程序级的一些优化措施。 第六章总结本文完成的工作,并对未来提出展望。 3 电子科技大学硕士学位论文 第二章h 2 6 4 视频编码标准简介 i t u th 2 6 4 建议是m p e g ( m o v i n gp i c t u r ee x p e r t sg r o u p ) 和v c e g ( v i d e o c o d i n ge x p e r t sg r o u p ) 联合开发的,比早期的m p e g 和h 2 6 3 性能更好的视频压缩 编码标准,命名为a v c ( a d v a n c e dv i d e oc o d i n g ) ,也被称为m p e g 4 的第1 0 部分 的标准。h 2 6 4 拥有极高的压缩率,一路h d t v 用m p e g 2 压缩,需要2 0 m b i 讹 的带宽,用h 2 6 4 大概只需5 m b i t s 的带宽,比较h 2 6 3 ,m p e g 4 为他们的两倍。 并且具有良好的网络亲和性,非常适合实时通信,如会议电视、可视电话、远程 教学等场合,并且具有较好的抗误码和抗丢包的能力【l 】。 2 1h 2 6 4 编码器框架 h 2 6 4 并不明确规定一个编解码器如何实现,而是规定了一个编码的视频比特 流的句法,和该比特流的解码方法,各个厂商的编解码器在此框架下应能够互通, 在实现上具有较大的灵活性,而且有利于相互竞争f 2 1 。 h 2 6 4 编码框架如图2 1 所示。 ici+ 。厂、久 量化 x 重熵 捧编 i 兰苎竺i 厂 一广 序码 厂瓦 一婴一 l 兰要竺i l 旦= o l li , k 1 1 - 。i厂、 反l 反 xi 量 i 苎塞竺r l 二二j 丫 换化 图2 - 1h 2 6 4 编码器 h 2 6 4 编码器和以前的视频编码标准一样,采用时频变换d c t ( d i s c r e t ec o s i n e t r a n s f o r m ) 编码和d p c m ( d i f f e r e n t i a lp u l s e - c o d em o d u l a t i o n ) 的差分脉码调制的混 合编码结构。其中包括两条数据流向,一条是编码路径,一条是重构路径。 4 第二章h 2 6 4 视频编码标准简介 在编码路径中,e 为编码帧场,一。为参考帧场。输入的原始视频数据以宏 块为单位处理。首先由当前帧通过帧内或者帧间进行不同的预测模式选择得到预 测值,然后和原始宏块的数据相减,得到的残差经过变换后得到一组系数,量化, 熵编码,加上解码必需的一些句法元素,封装成n a l 单元供传输或者存储。 在重构路径中,变换量化系数经过反量化反变换,得到残差值反,残差值和 预测值相加,得到l 一,经过环路滤波,去除方块后输出的为重构图像,存储并 作为之后编码的参考帧。 h 2 6 4 分四个档次,基本档次,主要档次,扩展档次和高清档次,每个档次支 持不同的编码功能,并由不同的参数决定性能。其中,基本档次( b a s e l i n ep r o f i l e ) 主要用于可视电话,会议电视,无线通信等实时视频通信。主要档次( m a i np r o f i l e ) 用于数字广播电视和数字视频存储,扩展档次( e x t e n d e dp r o f i l e ) 用于网络视频流。 高清档次( h i 曲p r o f i l e ) 用于高清电视【5 j 。基本档次无需版权,并且在计算复杂度和 编码性能之间有合适的权衡,适用于本系统的要求,故本文主要研究的是基本档 次。 2 2h 2 6 4 关键技术 h 2 6 4 标准主要采用的几项技术与h 2 6 3 和m p e g 4 类似,包括将图像分成 1 6 1 6 宏块,利用时间相关性的运动估计和运动补偿,利用空间相关性的帧内预 测,利用时频域变换降低冗余。 主要的不同之处在于: 1 运动估计和运动补偿:h 2 6 4 采用树状结构的运动补偿。块尺寸范围更广( 从 1 6 x1 6 到4 x 4 ) 、亚像素运动矢量的使用( 亮度采用1 4 像素精度m y ) 及多 参考帧的使用。每个宏块( 1 6 1 6 像素) 可以4 种方式分割:一个1 6 x1 6 , 两个1 6 8 ,两个8 1 6 ,四个8 8 。其运动补偿也相应有四种。而8 8 模式的每个子宏块还可以四种方式分割:一个8 8 ,两个4 x 8 或两个8 4 及4 个4 x 4 。这些分割和子宏块大大提高了各宏块之间的关联性。大 的分割尺寸适合平坦区域,而小尺寸适合多细节区域【l 】。 2 帧内预测:以往标准中i 图像( 即只采用帧内编码) 直接把像素块的数值进 行变换,压缩效率不高,h 2 6 4 利用相邻像素的相关性,采用9 种4 x 4 块 和4 种1 6 1 6 块对当前像素块进行预测,只编码原始像素和预测值的残 差数据,因此大大减小了码率。 5 电子科技大学硕士学位论文 3 整数变换:h 2 6 4 放弃了m p e g 2 和m p e g - 4 采用的8 8 离散余弦变换 d c t ( d i s e r e t ec o s i n e t r a n f o r m ) 的浮点数变换,而采用类似于4 4 d c t 的 整数变换,由于只需加法和移位运算,速度快,反变换过程中不会出现失 配问题,并且由于变换块减小,降低了块效应和振铃效应【2 】。 4 变换系数量化:在h 2 6 4 中,变换系数通过无扩展的分级量化进行量化。 过去的标准中,量化步长每次递增一个常量,h 2 6 4 每个宏块的量化步长 由量化参数( q p ) 决定。q p 每增加1 ,量化步长增加1 2 5 。并且将变换和 量化融合在一起,有效减少了压缩编码的运算量【2 】。 5 熵编码:h 2 6 4 采用了基于上下文的变长编码( c a v l c ) - 与普通变字长编码 u v l c 相结合的熵编码和基于上下文的自适应算术二迸制编码( c a b a c ) 。 以往的标准都是采用u v l c 的。u v l c 中所有的符号都采用一张仅从概率 统计分布模型得出的码表,其概率分布可能不够符合实际情况,概率分布 是静止的,忽略了符号相关性,没有利用条件概率,码字必须要有整数个 比特,这些都影响了u v l c 在中高码率时的压缩效果。而c a v l c 根据已 编码句法元素的情况动态调整编码中使用的码表,取得了极高的压缩比【l 】。 6 分层结构:为了适应各种传输网络,h 2 6 4 的功能分为两层,即视频编码 层( v i d e oc o d i n gl a y e r ,v c l ) 和网络提取层( n a l ,n e t w o r ka b s t r a c t i o n l a y e r ) 。v c l 提供高效率的视频压缩功能,表示被压缩编码后的视频数据 序列。n a l 负责网络的适配,以恰当的方式针对不同的网络对数据( v c l 数据、组帧、逻辑信道信令、定时信息、序列结束标识等) 进行打包和传送, 其码流结构能够很好的适应m 和无线网络。两者之间有一个基于分组方式 的接口,在传输过程中,无需因为不同的网络环境再对v c l 的比特流进 行重组或者再编码。因此,h 2 6 4 视频非常适合在r t p u d p i p 、h 3 2 4 及 h 3 2 0 等网络上传输【2 1 。如图2 2 所示。 i l r t p kn a l 头 r b s p l 图2 - 2h 2 6 4 的分层结构 图2 3n a l 单元封装格式 6 第二章h 2 6 4 视频编码标准简介 每个n a l 单元包括一个原始字节序列负荷( r b s p ) 、一组对应于视频编码数据 的n a l 头信息。将n a l 单元,包括其头部,放进r t p 的净荷部分。按照r t p 的 打包规则设置r t p 的头信息,然后将包发送出去。如图2 3 所示。 7 其他一些新技术:如去块滤波,码流切换时使用的s p 和s i 片,帧场自适应 模式,基于语法的数据分割等。 2 3h 2 6 4 的实现 h 2 6 4 高效的压缩性能和良好的网络亲和性,受到学术界和产业界的一致欢 迎。目前h 2 6 4 的编解码器有非常多,有j m ,x 2 6 4 ,v s s ,e n v i v i o ,m o o n l i g h t ,n e r o d i 西t a l ,a p p l eq u i c k t i m e7 ,m a i n c o n c e p th 2 6 4e n c o d s o r e n s o ns q u e e z e4 2 , c y b e r l i n kp o w e r e n c o d e r , m p e g a b l e ,s e n t i v i s i o nh 2 6 4d e c o d e r ,f r a u n h o f e ri i s a v c h - i 2 6 4 ,d s p r ,a t e m e ,e l e c a r d ,f a s t v d o ,h d o t 2 6 4 ,t 2 6 4 等2 0 款编解码器,其 中开源编码器主要有j m ,x 2 6 4 ,t 2 6 4 三种。 1 j m :j m 是h 2 6 4 的官方测试源码,由德国的h h i 研究所负责开发,实现了 h 2 6 4 的所有档次和特性。学术研究往往基于j m 并且和j m 进行对比。其代码冗 长结构复杂,只考虑引入各种新特性以提高编码性能,忽视了编码复杂度,因此 必须经过大量的修改和优化才能在d s p 平台上使用。好处在于开发资料很多,可 供参考的研究课题也非常多。 2 x 2 6 4 :x 2 6 4 是由法国巴黎中心学校( e c o l ec e n t r a l ep a r i s ,e c p ) 的中心研究 所( c e n t r a l er 6 s e a u x ) 的学生于2 0 0 4 年6 月发起的的一个开源项目,后来吸引了一 大批热爱视频编码的成员共同完成这个项目。x 2 6 4 的目标是实现一个实用的2 6 4 编码器,所以它引入了很多m m x ,s s e 等汇编指令来提高编码速度,同时摒弃了 一些耗时但对编码性能提高微小的模块,如多参考帧、帧间预测中不必要的块模 式、c a b a c 等。目前,基于x 2 6 4 的d v d r i p ( d v d 转压) 已经开始流行,由于x 2 6 4 的编码性能在很多情况下优于d i v x 和x v i d ,x 2 6 4 在d v d r i p 中所占的份额开始 明显增长。x 2 6 4 没有解码器,在低码率时的编码速度比高码率时快。 3 t 2 6 4 - t 2 6 4 是中国视频编码自由组织联合开发的2 6 4 编解码器,解码器只 能解由t 2 6 4 编码器生成的码流。虽然编码速度比x 2 6 4 更快,但编码性能下降太 大,并不实用。 7 电子科技大学硕士学位论文 3 1 计算机网络基础 第三章网络通信基础 计算机网络有以下几个类别: 广域网w a n :( w i d e a r e an e t w o r k ) 因特网的核心部分,长距离( 几十到几千公 里) 传输主机发送的数据,具有较大的通信容量。 城域网m a n :( m e t r o p o l i t a na r e an e t w o r k ) 用来讲多个局域网互连,很多采用 以太网技术,作用距离5 n 5 0 k m 。 局域网l a n :( l o c a la r e an e t w o r k ) 微型计算机或工作站通过高速通信线路相 连,速率通常在1 0 m b s 以上,距离为l k m 左右。 个人区域网p a n :( p e r s o n a la r e an e t w o r k ) 在个人工作地点把属于个人使用的 电子设备用无线技术连接起来,也称w p a n ( w i r e l e s sp a n ) ,范围1 0 m 左右。 以上是通过距离划分,还可根据不同使用者划分为公用网和专用网,用来把 用户接入因特网的网络a n ( a c c e s sn e t w o r k ) ,拨号或者宽带接入【4 】。 为了协调相互通信的两个计算机系统,设计最初的a r p a n e t 网络时使用了 分层的结构。在计算机网络发展早期,各公司有自己的体系结构,但互相连通就 成了障碍。o s i 提出的七层参考协议用于全世界计算机网络都能够方便互联和交换 数据,但是由于层次划分不太合理,实现过分复杂并且效率很低,标准指定周期 太长等原因,并未得到市场的认可,而t c p i p 则成为事实上的国际标准【5 j 。 t c p 口是一个四层的体系结构,从上到下为应用层、运输层、网际层和网络 接口层,实质上是最上面三层。 应用层:直接为应用进程提供服务。如支持万维网应用的h t t p ,支持电子邮 件的s m t p ,支持文件传送的f t p 等协议。 运输层:负责向两个主机中进程之间的通信提供服务,包括传输控制协议 t c p ( t r a n s m i s s i o nc o n t r o lp r o t o c 0 1 ) ,提供面向连接的可靠交付,和用户数据报协议 u d p c o s o l d a t a g r a mp r o t o c 0 1 ) ,无连接不保证可靠交付。 网络层:负责为分组交换网上的不同主机提供通信服务,将运输层的数据报 封装成分组或包传送,在t c p i p 体系中,网络层使用p 协议。 网络接口层包括数据链路层和物理层。链路层将网络层交下来的d 数据报组 8 第三章网络通信基础 装成帧传送,每帧包括数据和必要的控制信息。而物理层则直接传送比特流。通 常使用曼切斯特编码作为以太网的传输。 物理媒体,如双绞线光缆和无线信道则被称为第0 层。 本文中使用到的主要的三种数据帧结构如下图3 1 所示,其中帧头的具体格式 参考计算机网络的书籍。 字节8 i p 数 以太网数据报路层 图3 - 1t c p i p 协议层级结构图 其中运输层协议以本文主要使用的u d p 协议为示例,以太网帧格式是使用得 最多的是d i xe t h e m e tv 2 标准【4 1 。f c s 是帧检验序列( 使用c r c 检验) ,可以省略。 每层协议将上层数据封装帧头并递交给下层协议。 3 2 网络编程及套接字简介 网络编程分为三个大类:1 基于t c p i p 协议栈2 基于w w w 应用3 基于n e t 框架的w e bs e r v i c e s 。其中第一种是最基本的网络编程方式,主要使用各种编程语 言,利用操作系统提供的套接字网络编程接口,直接开发各种网络应用程序。由 于直接使用的是网络协议栈提供的服务,所以层次比较低,编程有较大的灵活性。 第二种主要基于网站的应用,使用各种网页制作工具制作动态服务器页面。第三 种支持建立更高效、更可靠、更安全的软件平台,用于电子商务、数字校园企业 垂奎【6 】 寸。 网络中的两个应用程序互相通信,一般使用的是客户机朋艮务器模式,简称 c s ( c l i e n t s e r v e r 模式) 。客户机向服务器发出服务请求,服务器接收到请求后,提 供相应的服务。客户机和服务器都是运行于计算机中网络协议栈之上的应用进程, 借助网络协议栈进行通信。 由于t c p i p 标准并没有定义应用程序用来与该协议进行交互的应用程序编程 9 电子科技大学硕士学位论文 接口( a p i ) ,而只是建议某个操作在应用程序发送数据时是需要的,而由应用程序 编程接口来定义具体的函数名和每个参数的类型。加州大学伯克利分校开发的包 括t c p i p 的u n i x ( b s dt r n l x ) ,套接字( s o c k e t ) 编程接口是其中一部分。由于其 广泛的使用,后来的操作系统都选择支持套接字编程。各种编程语言都支持套接 字,因此成为事实上的工业标准,广泛应用于网络编程 6 1 。 套接字的使用,可以将网络复杂的层次型体系结构隐藏,作为一个通路两端 的连接设备来与应用进程通信,两个应用进程分别连接到自己端的套接字,就能 方便地通过计算机网络进行通信。套接字向上连接应用程序,向下连接网络协议 栈。套接字有3 种类型,数据报套接字( d a t a g r a ms o c k e t ) ,用于提供无连接的、不 可靠的服务( u d p ) ;流式套接字( s t r e a ms o c k e t ) 提供有连接的、可靠的数据流传输 服务( t c p ) ,原始式套接字( r a ws o c k e t ) 允许访问较低层次的协议( i p 、i c m p 等) , 用于检验新的协议的实现【7 1 。本文主要使用的是u d p 传输,因此仅叙述数据报套 接字的大致过程,如图3 2 ,3 3 所示,其他类型的参考相关网络编程的书籍。 仓建数据报套接 字:s o c k e t 0 t 一 i 皇 绑定套接字: b i n d ( ) 二= 厂一 主 接收数据报: r e c v f r o m ( ) _ _ _ _ _ _ - _ - - 。- _ _ - _ 。_ _ _ 。- _ 主 进行数据处理,应 答客户机,发送数 据报:s e n d t 0 0 关闭套接字: e l o s e s o c k e t0 图3 - 2 服务器端流程( u d p ) 图3 - 3客户端流程( u d p ) 创建套接字时,由操作系统对该套接字分配合适的系统资源,指定套接字的 类型( s o c k _ d g r a i v l ) ,通信协议类型等。然后绑定本地地址与套接字,指定 s o e k a d d r 结构的套接字地址,发送数据报,指定发送数据的缓冲区,要发送的字节 数,接收端等待接收数据的缓冲区,要接受的数据字节数,接收数据报,类似于 发送数据报,最后关闭套接字。 1 0 孚蕈姜 第三章网络通信基础 由于本系统的验证测试过程首先在p c 平台下进行,因此使用的是w i n d o w s 操作系统下的s o c k e t ( w i n s o e k ) 。w i n s o c k 使用异步选择机制来实现非阻塞方式,即 套接字在调用后该函数会立即返回,调用该函数的进程可以继续执行。在项目工 程中加入w s o c k 3 2 1 i b 即可使用。 需要注意的是,由于i n t e m e t 中存在多种类型的网络和计算机,不同类型计算 机表示数据的字节顺序不同,分别为大端模式( 网络字节序,h o s 0 和小端模式( 主机 字节序,n e t w o r k ) ,大端是高位字节位于内存低地址,地位字节位于内存高地址, 小端模式反之。网络协议中的数据采用统一的网络字节顺序。鉴于该系统需要在 p c 平台和d s p 平台转换,由程序的可移植性要求,需要在传输数据之前调用字节 序抓换函数,以便程序移植后能够正确执行。以下是几个常用的字节序转换函数: h t o n s ,n t o h s 用于1 6 位无符号短整型,h t o n l ,n t o h l 用于3 2 位无符号长整型【6 1 。 3 3 常用的t o p lp 协议栈 协议栈一般分为操作系统内包含的协议栈,商业公司开发的协议栈和独立开 源协议栈。 操作系统自带的协议栈,如l i n u x 内核中的协议栈。由于l i n u x 是开源系统, 因此协议栈也可见可修改。b s d ( b e r k e l e ys o f t w a r ed i s t r i b u t i o n ,伯克利软件套件, 是u n i x 的衍生系统) t c p i p 协议栈,历史上是其他商业栈的起点,大多数专业 t c p i p 栈( v x w o r k s 内嵌的t c p i p 栈) 是b s d 栈派生的,提供了这些专业栈的雏形。 同时,b s d 也是许多t c p i p 协议中的创新( 如广域网中的拥塞控制和避免) 的开始 点。 而开源协议栈中,一些常见的如l w l p ,u l p ,t i n y t c p 。 l w i v ( l i g h tw e i g h ti v ) 是瑞士计算机科学院( s w e d i s hi n s t i t u t eo fc o m p u t e r s c i e n c e ) 的a d a md u n k e l s 等开发的一套用于嵌入式系统的开放源代码t c p i p 协议 栈。l w l p 可以移植到操作系统上,也可以在无操作系统的情况下独立运行。l w i p 一般只需几十k 的r a m 和4 0 k 左右的r o m 就可以运行,非常适合在低端嵌入 式系统中使用。l w i p 有以下特点:支持多网络接口下的m 转发,支持i c m p 协议, 包括实验性扩展的t r a p ( 用户数据报协议) ,包括阻塞控制,i m 估算和快速恢复 和快速转发的t c p ( 传输控制协议) ,提供专门的内部回调接i z l ( r a wa p i ) 用于提高 应用程序性能,并提供了可选择的b e r k e l e y 接口a p i 。 u l p 同样是由a d a md u n k e l s 专门为8 位和1 6 位控制器设计的一个非常小的 电子科技大学硕士学位论文 t c p i p 栈。完全用c 编写,因此可移植到各种不同的结构和操作系统上,一个编 译过的栈可以在几k br o m 或几百字节r a m 中运行。u l p 中还包括一个h t t p 服 务器作为服务内容。有b s d 的许可证。并且在2 0 0 8 年加入了i p v 6 。 t i n y t c p 栈是t c p i p 的一个非常小和简单的实现。t i n y t e p 是为了烧入r o m 设计的。t i n y t c p 也包括一个简单的以太网驱动器用于3 c o m 多总线卡。 t i 公司结合其c 6 0 0 0 系列芯片推出了t c p i pn d k ( n e t w o r kd e v e l o p e r sk i 0 开发套件,用以加速其高档d s p 的网络化进程。 n d k 主要的组件包括:( 1 ) 支持t c p 厂r p 协议栈程序库。其中主要包含的库有: 支持t c p i p 网络工具的库,支持t c p i p 协议栈与d s p b i o s 平台的库,网络控制 以及线程调度的库( 包括协议栈的初始化以及网络相关任务的调度) 。( 2 ) 示范程序。 其中主要包括d h c p t e l n e t 客户端,h r r p 数据服务器示范等。( 3 ) 支持文档包括 用户手册、程序员手册和平台适应手册瞵j 。 n d k 采用紧凑的设计方法,实现了用较少的资源耗费来支持t c p i p 。从实用 效果看,n d k 仅用2 0 0 - - - 2 5 0 k 程序空间和9 5 k 数据空间即可支持常规的t c p i p 服务,包括应用层的t e l n e t 、d h c p 、h t t p 等。为了最大限度地减少资源消耗, t i 为其n d k 采用了许多特殊的技巧,重要的有:( 1 ) u d ps o c k e t 和r a ws o c k e t 不 使用发送或接收缓冲区:( 2 ) t c ps o c k e t 使用发送缓冲区,接收缓冲区依配置文件 而定;( 3 ) 低层驱动程序与协议栈之间通过指针传递数据,不对包进行复制拷贝;4 、 设置专门的线程清除存储器中的碎片和检查存储器泄露【引。因此,n d k 很适合目 前嵌入式系统的硬件环境,是实现d s p 联网通信的重要支撑工具。 n d k 的软件开发环境是t i 的开发工具c c s ( c o d ec o m p o s e rs t u d

温馨提示

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

评论

0/150

提交评论