Free Essay

Set Box Based on Davinci

In:

Submitted By snowy060
Words 3399
Pages 14
[pic] [pic]
毕业论文(设计)

论文(设计)题目:
基于Davinci平台的数字电视机顶盒播放设计与实现

姓 名 马衍庆 学 号 20071201140 学 院 信息科学与工程学院 专 业 集成电路设计与集成系统 年 级 2007级 指导教师 刘 琚

2010 年 5月28日

目录
中文摘要 1
ABSTRACT 2
第1章 前言 3 1.1 选题背景及意义 3 1.2 机顶盒概述 4 1.2.1 机顶盒的分类 4 1.2.2 数字电视机顶盒关键技术 4 1.2.3 我国数字电视机顶盒的发展现状 5 1.3 本文研究的主要内容及内容安排 5 1.4 本章小结 6
第2章 数字电视相关标准 7 2.1 MPEG-2标准简介 7 2.1.1 MPEG-2标准概述 7 2.1.2 数字电视系统中MPEG-2双复用原理 7 2.1.3 PSI简介 9 2.2 DVB标准简介 10 2.2.1 DVB联盟 10 2.2.2 SI介绍 10 2.3 本章小结 12
第3章 基于Davinci技术的数字机顶盒硬件系统 13 3.1 Davinci数字多媒体技术概述 13 3.1.1 Davinci技术 13 3.1.2 Davinci多媒体芯片TMS320DM646X 14 3.1.3 Davinci技术及其芯片应用和开发前景 14 3.2 基于Davinci技术的多媒体芯片架构 15 3.2.1 TMS320DM6467的特点 15 3.2.2 TMS320DM6467结构框架 17 3.2.3 ARM子系统 18 3.2.4 TMS320C64X+DSP子系统 19 3.2.5视频处理子系统(VPSS) 21 3.2.5.1视频处理前端 21 3.2.5.2视频处理后端 22 3.2.6 VICP模块 23 3.2.7 外部存储器接口 23 3.3本章小结 23
第4章 DVB-C数字电视机顶盒的软件系统设计 24 4.1数字电视机顶盒的基本原理 24 4.2 DM6467的软件框架 24 4.3 ARM端内核开发 25 4.3.1设备驱动程序介绍 25 4.3.2字符设备驱动程序的开发 26 4.3.2.1字符型设备驱动的框架 27 4.3.2.2 Framebuffer的驱动程序 28 4.4 ARM端应用程序 30 4.4.1线程介绍 30 4.4.2 Linux下的多线程编程 31 4.4.3 Codec Engine的介绍 33 4.4.4 视频解码应用程序 35 4.5 本章小结 37
第5章 机顶盒应用程序设计 38 5.1 从数据传输、处理的角度分析有线电视机顶盒的设计 38 5.2 机顶盒解码应用程序 39 5.3 本章小结 40
第6章 总结与展望 41 6.1 系统的性能指标 41 6.2 本论文完成的工作 45 6.3 研究展望 45
致谢 46
参考文献 47

中文摘要 数字化是一场全世界范围内的产业技术革命,数字技术已经广泛渗透到社会生活的各个领域。作为数字技术重要分支的数字电视技术是继黑白电视和彩色电视后的第三代电视技术。由于从模拟电视到数字电视的转换需要一个较长的过渡时期,为了使现有的模拟电视机能够接收数字电视信号,需要一种转换装置,数字电视机顶盒应运而生。数字机顶盒是一种能够接收数字电视信号、完成相应处理并输出模拟的音视频信号,通过模拟电视机播出节目的家用电子产品。 当前全世界的数字电视产业正处于一个飞速发展的时期,我国也正在大规模推广数字电视,由于我国现有4亿多的模拟电视,所以采用模拟电视加上数字电视机顶盒收看数字节目的方式比较适合我国现有的国情。 正是在这种背景下,数字电视机顶盒的研究相当有意义。本课题中我们选用了TI公司的TMS320DM6467系统解决方案,设计并实现了符合MPEG-2和DVB-C标准的有线数字电视机顶盒的播放功能。为完成数字电视机顶盒的设计,本论文从以下几个方面进行了研究: 第一,介绍数字电视以及机顶盒的研究背景,说明了研究机顶盒相关技术具有重大的意义。 第二,介绍了与数字电视机顶盒相关的两个主要标准—MPEG-2和DVB。分析了MPEG-2标准的系统部分,重点分析MPEG-2中TS流(传输流)的打包格式及双复用过程;分析DVB标准中与电子节目指南(EPG)相关的SI信息。 第三,介绍了Davinci平台的硬件结构和软件工程搭建 第四,详细说明了机顶盒的软件设计,其中包括多线程的实现。 第五,经过软硬件的调试,实现机顶盒的预期功能,对全文进行总结,并展望机顶盒的应用前景。

关键字:数字电视广播、机顶盒、Davinci平台、TS流、多线程、

ABSTRACT

Digitalization is a worldwide industrial technology innovation,and digital technology has been touching most fields of our social lives. From 90’s of 20th century,the technology of digital television,as one of important branches of digital technology,develops fast and enters an applied phase,with the rapid progress of the technology of semiconductor and computer. DTV (Digital TV) is in a period of rapid development in the world. There are about 400 million of analog TV sets in China,therefore it is a good choice to use existing analog TV sets equipped with STB (Set Top Box) during the transition. Under the background, it is very meaningful to research on STB of DTV. In this issue, we selected the TI’s TMS320DM6467 system solutions, designed and implemented STB of DTV in line with the MPEG-2 and DVB-C standard. For the completion of the design of the digital TV set-top box, the paper from the following aspects has been studied: Firstly, it introduces the research background of the digital TV and set-top box and explains the great significance of the relevant research techniques of STB. Secondly, introducing a digital TV set-top box associated with the two main standards – MPEG-2 and DVB. Analysis of the MPEG-2 standard part of the system, focusing on analysis of MPEG-2 streams in TS format and double-packaged reusable process; Analysis of SI information in DVB standards related to electronic program guides (EPG). Thirdly, it introduces hardware structure of the Davinci platform and how to build up the software engineering. Fourthly, it introduces the software design of STB in detail, which includes the realization of multithread. Finally, through software and hardware debugging, it realized the expected functions of STB, summarized the paper and conceived the future applicaton prospect of STB.

Keyword: DVB (Digital Video Broadcast), Set-Top Box, Davinci work platform, Transport Stream,Multithread

第1章 前言

1.1 选题背景及意义

近几年来,数字电视技术、网络技术、信息技术以及智能化技术的迅猛发展
给全球的政治、经济、文化和社会生活领域带来了广泛而深刻的影响。其中数字
技术的普及是信息领域最大的一次革命,这场革命不仅改变了信息传递方式,而
且也改变了人类的生产方式、生活方式和思维方式。作为高新技术应用部门的广
播电视领域也发生了巨大的变化,并逐步进入数字化时代。 自1996年4月法国开播了第一个欧洲商业化数字电视广播以来,数字电视
在世界范围内的需求已有很大的增长,数字电视市场在国际上己经全面启动。美国在1998年首次开通卫星高清晰度电视,以推动地面高清晰数字电视的发展。1999年7月,美国已有分布在大中城市69个电视台播出数字电视节目,覆盖了
50%的美国人口;英国全国由模拟电视向数字电视过渡的时间从2006年开始,预计2010年结束;日本2001年开播6套卫星高清晰度数字电视,但地面高清晰度电视要在2003年才会在主要的大城市开播。 我国也一直非常关注数字电视技术的发展,从上个世纪的80年代开始跟踪
国际技术发展动态,90年代完成数字电视关键技术的理论储备。目前我国中央
电视台和众多省市、地方电视台都已实现了电视节目的数字卫星传输,电视台的
发送和接收设备正在逐步实现数字化。1995年,经国家高清晰度电视研究开贫
协调领导小组批准,成立了国家高清晰度电视(HDTV)研究总体组。1996年7月,由总体组负责,组织实施了“九五”国家重大科技产业工程项目“高清晰度电
视功能样机系统研究与开发工程”。经总体组和全国多所大学、研究所以及企业
的共同努力,于1998年6月,成功地研制出了我国第一台数字高清晰度电视功
能样机系统。1998年9月,利用该功能样机系统在北京中央电视台进行了开路
演示,取得了很好的效果。在1999年10月1日,中华人民共和国建国50周年
之际,对天安门广场的国庆大典进行了现场直播,获得了成功。2008年初国家
颁布了地面数字电视标准,并利用地面数字电视技术全程直播了08年北京奥运
会。《广播影视科技“十五”计划和2010年远景规划》也明确提出:到2005年我国有线数字电视用户超过3000万户,2010年全面实现数字广播电视,2015年停
止模拟广播电视的播出。正是由于这一规划的提出以及近几年数字电视技术的飞
速发展,使得我国数字电视有了长足的进步:从2004年数字电视规模只有125
万户发展到2008年11月底的4756.2814万户;有68个城市完成有线电视数字化整体转换工作。 数字电视就是将模拟电视信号经过取样、量化和编码转化成二进制形式的数
字电视信号,或是利用数字摄像机、数字录像机、数字摄录机等设备直接产生数
字电视信号,然后进行一系列针对数字信号的处理、传输、存储和记录,然后实
施发送、广播,供观众接收、播放的视听系统。严格意义上的数字电视系统是从
节目摄制、节目编辑、节目制作、信号发射、信号传输,信号接收到节目显示完
全数字化的电视系统。
数字电视的出现决定了数字电视机顶盒(STB,Set Top Box)的出现,因为数字电视用的是数字技术,而无论以前的模拟电视还是现在的数字处理电视都不具备对数字电视信号进行解码的功能(一体机除外),而我国模拟电视的现有量在4亿台左右,各大电视机厂商也从未停止过模拟电视机的生产和销售,因此不可能在一时之间完成数字化的改造,但为了使广大模拟电视机用户能够收看数字电视节目,需要一种转换装置,于是数字电视机顶盒应运而生。它充当着电视台发送的数字电视信号与用户的显示设备二者之间桥梁的一种接收装置,是随着数字电视广播的发展而出现的。本文正是在这样的背景下的,学习了解有线电视接入网、数字电视的标准和我国国情等方面的情况后,参与了DVB-C数字电视机顶盒的设计与实现。

1.2 机顶盒概述

1.2.1 机顶盒的分类

根据传输媒体的不同,机顶盒分为数字卫星机顶盒(DVB-S)、地面数字电视机顶盒(DVB-T)和有线数字电视机顶盒(DVB-C)三种,三种机顶盒的硬件结构主要区别在解调部分。目前应用较为广泛的是数字卫星机顶盒和有线数字电视机顶盒。本文主要介绍的是有线数字电视机顶盒。根据功能的不同又把机顶盒分为基本型机顶盒、IP机顶盒、双模机顶盒、双模双向机顶盒。基本型机顶盒就是完成最基本的接收数字电视信号的功能;IP机顶盒是接收通过因特网传输来的数字电视信号,完成数字电视的观看,同时还可以实现上网功能;双模机顶盒就是同时具有上述两种机顶盒的功能,就是可以通过广播网和因特网两种网络来收看数字电视;双模双向机顶盒是在双模机顶盒的基础上实现了互动的功能,用户可以自己点播自己想要收看的内容。

1.2.2 数字电视机顶盒关键技术

数字电视机顶盒是数字技术发展的产物,具有很高的技术含量,它集中反映
了多媒体、计算机、数字压缩编码、加解扰算法、加解密算法、通信技术以及网
络技术的发展水平。目前数字电视机顶盒的核心技术主要有以下几方面: (l)信号处理技术 我国的CATV网络以同轴电缆入户,而且数字电视机现在还未普及,目前使用最广泛的仍然是模拟电视,所以想利用模拟电视来收看数字电视节目,则机顶盒必须对信号进行处理。 (2)信道解调技术 国际、国内标准对各种数字电视标准的调制方式均有规定,在CATV网络中传输的数字电视采用的是QAM调制方式,其中16QAM、32QAM、64QAM必选,128QAM和256QAM可选。而且由于CATV网络信道质量好,只用RS编码作为纠错编码。 (3)信源解码技术 模拟信号数字化后,信息量剧增,而网络的带宽有限,因此必须采用相应的
压缩标准。前端对数据进行压缩后,作为接收端的机顶盒来说,则必然要对数据
进行还原,这就需要信源解码技术了。数字电视广播系统采用MPEG-2视频压缩
标准,适用于多种清晰度。音频目前则有AC-3和MPEG-2两种标准。信源解码器必须适应不同编码原则,以正确还原音视频数据。
(4)大规模集成芯片技术 为实现实时的解复用和数据信息的处理,目前的系统大多采用专用芯片,将CPU内核与MPEG-2传输流解复用器、DVB通用解扰器、MPEG音视频解码器、NTSC/PAL解码器集成,形成机顶盒的核心芯片。 (5)嵌入式系统 机顶盒是一个软实时嵌入式系统,是嵌入式系统在信息家电方面的典型应用。它是计算机技术、通信技术、半导体技术、微电子技术等技术与具体应用相结合的产物,技术含量相当高,它一般包括嵌入式芯片、嵌入式操作系统、嵌入式软件以及嵌入式系统开发工具四个方面。 (6)中间件技术 中间件是机顶盒软件的核心组成部分,它存在于硬件和应用层软件之间,是应用软件和系统硬件以及实时操作系统之间的桥梁。并且,中间件能大大提高应用软件的可移植性,减少上层软件对硬件的依赖性。电子节目指南就是中间件一个部分。 (7)条件接收系统 条件接收是指允许用户在满足一定条件的情况下,接收指定的视频节目,这是付费电视业务的关键。它需要解决两大问题,即管理用户收费问题和阻止用户收看那些未经授权的付费频道。CA系统是一个独立的系统,一般由专门的公司开发,它涉及到数据加解扰算法、加解密算法、智能卡技术以及用户管理、收费管理、节目管理等技术。

1.2.3 我国数字电视机顶盒的发展现状

目前我国数字电视处于一个普及推广阶段,近几年国家政策和资金的扶持使得数字电视近几年有了长足的进步,但在国内仍没有得到广泛的应用,尤其是农村,其原因主要是各地域之间采用的标准有些不同、数字电视节目源有限等现在大部分的大城市已经基本完成了数字电视的改造,甚至有些地区已经现了某些高级功能,例如通过机顶盒上网、视频点播、各种增值业务等。但整体来说数字电视的发展还有很远的路要走,包括整个数字电视的普及、各种高级功能的应用以及整个网络的改造等。

1.3 本文研究的主要内容及内容安排

本课题主要研究的是开发符合DVB-C标准的有线数字电视机顶盒的播放实现。本课题采用的是TI公司提供的Davinci工作平台TMS320DM646X解决方案,通过软硬件的各自开发和配合,完成机顶盒的研制。 我主要依据Davinci平台从软件方面对数字机顶盒的播放实现进行开发,主要工作分为以下两个方面: (1)解析TS流,还原出PSI/SI,为制作EPG做好准备。 (2)调用Davinci的引擎CE,建立音视频解码算法,实现视频播放功能。 本文分为六章,各章安排如下: 第一章 引言 介绍数字电视以及机顶盒的研究背景,说明了研究机顶盒相关技术具有重大的意义。 第二章 数字电视相关标准简介 介绍了与数字电视机顶盒相关的两个主要
标准MPEG-2和DVB,并且对PSI/SI进行了介绍。
第三章 基于Davinci技术的数字机顶盒硬件系统 首先介绍了Davinci数字多媒体技术,然后介绍了多媒体芯片TMS320DM6467芯片的总体架构,其中包括ARM子系统、TMS320C64X+DSP子系统和VPSS子系统,同时说明了一下DSP上的VICP模块和外部存储器。 第四章 DVB-C数字电视机顶盒的软件系统设计 对Davinci平台的软件系统详细说明,并分析和设计机顶盒的软件实现方法。 第五章 调试软硬件系统,展示实验结果,并分析结果。 第六章 结束语总结在整个数字电视机顶盒研发过程中的工作并对以后的研发进行了展望。

1.4 本章小结

通过本章的介绍,我们了解了数字电视的发展概况,认识到我国已经走入数字电视时代的过渡时期,而数字电视机顶盒正是在这样的背景下产生的。从模拟电视过渡到数字电视决定了机顶盒的产生;随着数字电视技术的成熟,成本下降以及大量资金的投入,数字电视机顶盒必将退出历史舞台。但是其核心技术可以部分或者全部用于数字电视,所以目前研究机顶盒的相关技术仍然具有重大的意义。

第2章 数字电视相关标准

2.1 MPEG-2标准简介

2.1.1 MPEG-2标准概述

MPEG的全名为Moving Pictures Experts Group,即运动图像专家组。MPEG标准主要有以下五个,MPEG-1、MPEG-2、MPEG-4、MPEG-7及MPEG-21。该专家组建于1988年,其目标是建立活动图像编码及其相关音频编码的国际标准。这个专家组的任务是给数字存储介质、电视广播和通信的运动图像及伴音制定一种通用的编码方法。符合这种编码方法的视频可以作为计算机数据的形式加以管理,可以存储于各种存储媒体,可以在现有的或将来的网络上进行传送和接收,也可以在现有的和将来的广播频道中分配。 MPEG-2标准包括8个部分,即系统、视频、音频、符合性测试、软件模拟、DSM-CC扩展的完全软件实现及系统解码的实时接口扩展。其中13818-1系统部分定义规范了系统编码,定义了复合视频和音频数据的复用结构,定义了实时应用中重放同步序列所需的表示定时信息的方法;13818-2视频部分定义了视频数据的编码表示和重建图像所要求的解码过程;13818-3音频部分定义了音频数据的编码表示:13818-4一致性部分定义确定编码码流的特性和使用13818-1,13818-2,13818-3陈述的要求一致性测试的进程。在本课题中主要涉及系统部分。 MPEG-2专家组为广播方面的应用制定了MPEG-2标准,MPEG-2规定的图像格式符合ITU-RBT.601建议(NTSC:720×480,PAL:720×576),规定的码率为4Mb/s~8Mb/s。另外,MPEG-2中不仅有逐行扫描,也有隔行扫描,16:9宽高比,在一个系统码流中可以有多个视频信道。此外,MPEG-2也包含了HDTV标准。MPEG-2已经被国际上公认为HDTV信源压缩编码的标准,它被广泛用于DVD、广播电视、多媒体、信息高速公路、电子影院等多种领域中。

2.1.2 数字电视系统中MPEG-2双复用原理

MPEG-2系统规范不仅采用了 PS(Program Stream,节目流)、TS(Transport Stream,传输流)和 PES(Packetized Element Stream,打包基本流)三种数据包,而且也涉及PS和TS两种可以互相转换的数据流。其中TS传送流是将有多个独立时间基点的多路节目合成一个独立的数据流,其中属于同一路节目的各个原始数据流的打包基本流分组具有相同的时间基点,适用于误码率较高的环境,传送流的数据包长度固定为188字节(若包含RS校验字段每包长度为204字节),一般应用于数字电视广播;节目流也由PES组成,但是用于误码率相对较小的环境,节目流的PES包长度可辨也相对较长,一般应用于DVD的存储和播放。MPEG-2系统部分为传送流和节目流提供了必要的和充分的编码语法,解决多个音频、视频和数据基本流的组合问题,保证同步译码和显示音频、视频信息,同时确保译码缓冲区既不上溢也不下溢。因此,数字电视系统就采用了MPEG-2系统中的TS和PES两种数据包和TS数据流形成了数字电视系统前端的双复用。图2-1和2-2分别给出了PES和TS两种数据包的格式。
[pic]
图 2-1 基本流(PES)包的组成
[pic]
图 2-2 传输流(TS)包的结构

图2-3说明了数字电视前端的双复用过程,第一层系统复用层:符合ITU-R.601数字视频数据和数字音频数据分别通过图像编码和声音编码之后,生成视频基本流(ES)和音频基本流(ES);然后,再分别通过各自的数据包形成器将相应的ES打包成打包基本流(PES)包,并由PES包构成PES流;最后复用器分别将视频PES和音频PES及其它数据组合成相应的传输流(TS)包,并且由T包构成TS流。第二层多节目复用层:将多个TS流和其它数据经过复用器再复用形成复用TS流。
[pic]
图 2-3 双复用结构图

2.1.3 PSI简介

正是由于上面的打包封装、复用等过程,使得在终端接收这些数据后要进行解复用、数据包的解封以及识别这些数据包中所含的信息。于是在MPEG-2中,专门定义了PSI(Program Specific Information,特别节目信息),以便终端根据这些PSI信息从一个携带多个节目的复用TS流中正确找到特定的节目。 PSI用于说明:1个节目是由多少个ES组成的;1个节目是由哪些ES组成等。这对于由不同的数据流复用成1个合成的TS是一个决定性的条件。为了重建原来的ES,就要追踪从不同ES来的TS包及其PID。因此,一些映射结构(Mapping Mechanism),如节目关联表(PAT,Program Association Table)和节目映射表(PMT,Program Map Table)两种映射结构,会以打包的形式存在于TS上,即借助于PSI传输一串描述了各种ES的表格来实现。为此MPEG-2采用了4个不同的表格: (l)节目关联表(PAT,Program Association Table) 针对复用的每一路业务,PAT提供了相应的节目映射表(PMT)的位置(传输流(TS)包的包标识符(PID)的值),同时还提供网络信息表(NIT)的位置。 (2)条件接收表(CAT,Conditional Access Table) 条件接收表提供了在复用流中条件接收系统的有关信息。这些信息属于专用数据,并依赖于条件接收系统。当有EMM时,它还包括了EMM流的位置。 (3)节目映射表(PMT,Program Map Table) 节目映射表标识并指示了组成每路业务的流的位置,及每路业务的节目时钟参考(PCR)字段的位置。 (4)网络信息表(NIT,Network Information Table) 在PSI中的PID由PAT提供,内容由用户定义。PSI中只定义NIT的名称,其语法结构是在DVB-SI中定义的。

2.2 DVB标准简介

2.2.1 DVB联盟

1995年,欧洲150个组织成立了DVB(Digital video Broadcasting,数字视频广播)联盟,这个联盟现在已经拥有近200个成员。DVB联盟发表了一系列数据广播技术标准,统称为DVB标准,包括卫星数字电视传输标准DVB-S、有线电视传输系统标准DVB-C和地面传输标准DVB-T,为卫星、有线和地面电视频道传送高速数据铺平了道路。其中,DVB-S规定了卫星数字广播调制标准,使原来传送一套PAL(Phase Alternating Line,逐行倒相)制节目的频道可以传播四套数字电视节目,大大提高了卫星的效率。DVB-C规定了在有线电视网中传播数字电视的调制标准,使原来传送一套PAL制节目的频道可以传播四至六套数字电视节目。

2.2.2 SI介绍

在MPEG-2标准中定义提供了相关节目组成和相互关系的PSI信息,它指定了如何从一个携带多个节目的传送流中正确找到特定的节目。但是PSI只提供了解码一个传送流所需的特定信息,为了引导数字电视机顶盒从传送流中搜寻节目,DVB标准就在PSI的基础上对其进行扩充增加了一些额外的信息,所有这些信息就被称为业务信息(SI,Service Information),SI是数字电视广播系统向接收设备传递与业务相关的信息,是数字电视广播系统为在整个广播网络中接收某个特定业务并提供业务相关描述信息而定义的。DVB-SI信息中提供了更加详细的与传送流和节目相关的信息,接收机可以从传送流中获得业务和事件的内容,经分析之后组织成有用的信息提交给用户使用,保证接收机能够实现自动选择业务的功能,也为EPG的实现提供了基础。SI添加了以下的一些信息表: (l)业务组关联表(BAT,Bouquet Association Table): 业务群关联表提供了业务群相关的信息,给出了业务群的名称以及每个业务群中的业务列表。 (2)业务描述表(SDT,Service Description Table): 业务描述表包含了描述系统中业务的数据,例如业务名称、业务提供者等。 (3)事件信息表(EIT,Event Information Table): 事件信息表包含了与事件或节目相关的数据,例如事件名称、起始时间、持续时间等。不同的描述符用于不同类型的事件信息的传输,例如不同的业务类型。 (4)运行状态表(RST,Running Status Table): 运行状态表给出了事件的状态(运行/非运行)。运行状态表更新这些信息,允许自动适时切换事件。 (5)时间和日期表(TDT,Time and Date Table): 时间和日期表给出了与当前的时间和日期相关的信息。由于这些信息频繁更新,所以需要使用一个单独的表。 (6)时间偏移表(TOT,Time Offset Table): 时间偏移表给出了与当前的时间、日期和本地时间偏移相关的信息。由于时间信息频繁更新,所以需要使用一个单独的表。 (7)填充表(ST,Stuffing Table): 填充表用于使现有的段无效,例如在一个传输系统的边界。 (8)选择信息表(SIT,Selection Information Table): 选择信息表仅用于码流片段中,它包含了描述该码流片段的业务信息的概要数据。 (9)间断信息表(DIT,Discontinuity Information Table): 间断信息表仅用于码流片段中,它将插入到码流片段业务信息间断的地方。 上述的SI及前面提到的PSI在TS流中是根据流中每个包头中PID来区分的,为此DVB标准对PID做出了如下的分配规定:
表2-1 PSI/SI的PID分配表 [pic]

从表2-1可见,有些PID的传输包能传送多种SI表(如PID为0x0011的传输包
可以负载SDT和BAT),在这种情况下,接收机就需要根据表中的table_id来区
分不同的表。table_id值的分配见表2-2:

表2-2 table_id值分配表
[pic]

2.3 本章小结

本文主要介绍了两个与数字电视机顶盒相关的标准:MPEG-2与DVB。在MPEG-2标准介绍中主要涉及到TS流的复用及PSI信息。在DVB标准介绍中着重介绍了DVB在MPEG-2基础上增加的SI信息。

第3章 基于Davinci技术的数字机顶盒硬件系统

3.1 Davinci数字多媒体技术概述

3.1.1 Davinci技术

达芬奇(Davinci)技术是TI推出的最新的针对数字多媒体应用而定制的基于DSP的系统解决方案组件的集合,为多媒体设备供应商简化设计并加速产品创新提供集成的处理器、软件与工具。达芬奇技术由以下各部分组成: 优化的应用软件:具有互操作性的现成的视频编解码器充分利用了集成加速器、公开发布的API以及基于各种实时操作系统的专用框架--所有这一切使工程师能够快速的完成设计。 开发工具:完整的开发系统、参考设计以及全面的ARM/DSP系统级集成开发环境、可加速任何数字视频应用的设计开发。 集成硅芯片:专门为数字视频应用定制的片上系统处理器,达芬奇处理器集成了业界最好的DSP平台-TMS320C6000和ARM的高端系列处理器ARM926EJ-S,同时集成优化的视频处理硬件加速器与丰富外设,以全方位满足各种数字视频终端设备对价格、性能以及功能等多方面的需求。 达芬奇技术充分利用了TI的25年的数字信号处理与集成电路专业技术来提供系统级芯片(SOC),系统针对灵活的数字视频实施而进行了精心优化,拥有业界领先的性能并集成了可编程的数字信号处理器DSP内核、ARM处理器以及视频加速协处理器。凭借高效的处理能力、存储器、I/O带宽、平衡的内部互连以及专用外设组合,基于达芬奇技术的SOC能够以最低的成本为视频多媒体应用提供理想的核心动力。 达芬奇技术使开发人员能够摆脱数字视频的具体技术细节,即开发人员不再需要了解其视频应用中实施具体CODEC引擎(如:MPEG-2,H.264)的细节。利用允许开发人员无需修改代码即可以使用理想CODEC的API,可以显著简化视频CODEC处理的具体低层次细节。因此达芬奇技术会以TI的DSP为基础来提供应用加速。开发人员不再需要了解各种音频、视频、影像以及语音CODEC背后的机制。通过提供可随时投产的软件,如硬件驱动器、人工优化的CODEC以及用于管理网络中音频/视频同步和数据流的应用代码,达芬奇技术使开发人员无需了解如何编程DSP即可实现一流的视频功能。

3.1.2 Davinci多媒体芯片TMS320DM646X

TMS320DM646X是一款高集成度的片上系统SOC,集成了数字视频应用所需的许多外部部件,使硬件成本降低了50%。DM646X建立在TI性能卓越的TMS320C64X+DSP处理器基础之上,并对ARM926处理器、视频加速器、网络外设及外部存储器/存储器接口等都专门为视频功能进行了调节。 TMS320DM6467特别适合视频编码与解码,其专门的视频处理前端添加了视频编码功能,能够捕捉各种数字视频格式的视频数据。 DM646X架构的结构特点: ●高性能处理器:采用低功耗、高性能的TMS320C64X+处理器和ARM926EJ-S处理器,工作频率分别高达594MHz和297MHz;支持多媒体处理技术,采用的DSP内核,增强了对视频和音频的解码能力。 ●专用的视频图像处理器和视频处理子系统:专用的视频图像处理器用于对视频数据的处理;视频处理子系统包括一个视频前端输入接口和一个视频末端输出接口。 ●存储器容量:支持256MB的32位DDR2 SDRAM存储空间,128MB的
16位Flash存储空间。
●丰富的外设:64通道增强型DMA控制器;串行端口(3UARTs、SPI、音频串口);3个64位通用定时器;10/100M以太网;USB2.0端;支持MMC/SD/CF等多媒体卡。

3.1.3 Davinci技术及其芯片应用和开发前景

由于达芬奇技术成功的实现数字视频需要四大要素的最新进步:处理器、开发工具、软件以及系统专业技术,因此达芬奇技术为数字视频的变革打下了基础。达芬奇技术的优势如下: 显著降低系统成本。达芬奇技术利用数字信号处理与集成电路专业技术来提供高集成度的SOC,集成了可编程数字信号处理器内核、ARM处理器、视频加速协处理器、存储器、IO带宽、平衡的内部互连以及专用外设组合、使硬件材料成本降低50%。 集成代码的数字视频子系统的硬件和软件。为了真正意义上地让开发人员克服最初的障碍并加速实现产品上市进程完整的达芬奇软件架构涵盖了低级的OS驱动程序乃至应用API,使开发人员无需投入过多的力量编写及优化编解码或进行DSP编程,即能够实现数字视频功能,从而使开发人员能够集中精力到开发可最大化附加值的产品中来。而最初的API基于Linux操作系统,使开发人员实施编解码器时不用接触复杂的软硬件细节,开发人员不需要修改应用代码就可以实现多媒体编解码器互换。在创建应用时,开发人员能够利用OS开发环境编写符合业界标准的API,实现存储、网络及视频接口功能,使开发人员能够充分利用SOC的性能,并致力于开发算法及其自身增值特性。 TI的Davinci技术是一种基于DSP的系统解决方案,专门为高效而强大的数字视频而量身定制,Davinci技术可以实现用于手持、家居及车载的数字视频设备上的技术惊人创意。Davinci平台包括基于单片系统的SOC的数字信号处理器DSP的硬件以及多媒体数字信号编解码器CODEC、应用程序接口、应用框架及开发工具等软件,所有软硬件均优化以创新数字视频系统。Davinci技术将缩短产品的开发时间,降低系统成本以激发新一轮的数字视频变革。

3.2 基于Davinci技术的多媒体芯片架构

德州仪器(TI)推出的数字媒体片上系统(Digital Media SOC)双核处理器,针对高端视频多媒体系统的需求而设计,该系列的TMS320DM6467,采用了TI的Davinci技术。TMS320DM6467的双核架构兼具DSP和RISC技术的优势,集成了时钟频率高达594MHz的C64X+DSP内核和297MHz的ARM926EJ-S内核。新一代的C64X+DSP是TMS320C6000系列DSP平台中性能最高的定点DSP,并建立在TI开发的第二代高性能高级VLIW架构的增强版之上,可以更好的完成视频处理功能。TMS320DM6467具有片上内存,两级高速缓存和丰富的视频处理外设,包含一个视频/影像协处理器(VICP),用于减轻相关算法的DSP内核繁重的视频与影像处理负担,使更多的MIPS能用于视频后处理或者其他并行运行等任务。

3.2.1 TMS320DM6467的特点

TMS320DM6467数字媒体片上系统芯片的特点如下:
● 高性能数字媒体片上系统 √ C64X+DSP处理器主频高达594MHz,运算速度可达4752MIPS √ 每个时钟周期运行8个32bit的C64X+指令 √ ARM926EJ-S高端处理器主频高达297MHz
● 先进的TMS320C64X+的DSP内核的超长指令字技术 √ 8个高性能的独立功能单元 ◆ 6个ALUs,支持单时钟周期单个32bit、双16bit,或4个8bit的算术运算 ◆ 2个乘法器支持单个时钟周期4个16×16bit的乘法操作或者8个8×8bit的乘法操作 √ 64个32bit的通用寄存器 √ 支持指令打包减小代码大小、所有指令均为条件指令
● C64X+指令集特性 √ 字节寻址、8bit溢出保护 √ 位提取、配置、清零 √ 归一化、饱和、位计数 √ 紧凑16bit指令、支持复数乘法操作指令
● C64X+L1/L2高速缓存架构 √ 32KB的L1P程序RAM/Cache、80KB的L1D数据RAM/Cache √ 64KB的L2统一映射的RAM/Cache
● ARM926EJ-S内核 √ 支持32bit和16bit指令集 √ DSP指令扩展和单周期乘累加操作
● ARM9的内部存储器资源 √ 16KB的指令高速缓存Cache、8KB的数据高速缓存Cache √ 16KB的RAM、16KB的ROM
● 视频处理子系统 √ 视频处理前端 ◆ 支持CCD和CMOS图像采集接口 ◆ 支持BT601/BT656数字YCbCr=4:2:2接口 ◆ 支持自动曝光、自动白均衡和自动对焦 ◆ 支持调焦:1/4x~4x;独立的水平/垂直控制 √ 视频处理后端 ◆ 硬件支持OSD功能 ◆ 4个54MHz的DACs支持复合NTSC/PAL、S端子和PbPr/RGB视频 ◆ 支持8/16bit的YVU或者24bitRGB数字输出 ◆ 支持HD分辨率视频、2个视频窗
● 外部存储器资源,32bit的DDR2控制器,支持256MB寻址空间
● Flash/多媒体卡接口 √ 多媒体存储卡(MMC)/SD卡接口 √ CompactFlash控制器支持TrueIDE模式、智能卡接口
● 64通道的增强型的DMA控制器(EDMA)
● 2个64bit的通用定时器和1个看门狗定时器
● 3个UART通道、1个SPI接口、主从I2C总线
● 音频串行接口(ASP)
● 10/100M以太网网卡(EMAC),符合IEEE802.3
● VLYNQ接口(FPGA接口)
● 集成物理层的USB2.0接口
● 3个脉宽调制输出口(PWM)
● ATA/ATAPI硬盘接口
● 独立的ARM/DSP省电工作模式
● 灵活的PLL时钟发生器
● 多达71个通用I/O口(GPIO)
● 33V和18V的I/O,12V的内核电压

3.2.2 TMS320DM6467结构框架

TMS320DM6467的双核架构集成了高性能的TMS320C64X+DSP核和采用
精简指令集技术的ARM926EJ-S核。
ARM926EJ-S是采用管道化流水线的32位的精简指令集处理器,可以执行32bit/16bit指令集,处理32bit、16bit、8bit数据。ARM通过使用协处理器CP15和保护模块使体系结构得到增强,并提供数据和程序存储管理单元。为了保证内核周期的存取指令和数据,提供了独立的16KB的指令Cache和8KB的数据Cache,指令和数据Cache都是通过VIVT四路链接。TMS320C64X+DSP是TMS320C6000系列里最高性能的定点DSP平台,基于第二代高性能先进超长指令字结构,使其更适合数字多媒体的应用。TMS320DM6467功能框图如图3-1所
示:
[pic]
图3-1 TMS320DM6467功能结构框图

由图3-1示,TMS320C64X+DSP处理器集成了64个32位通用寄存器、8个高性能独立功能单元—2个乘法器和6个算术逻辑单元。TMS320DM6467采用二级Cache结构,L1程序Cache为256Kbit直接映射Cache、L1数据Cache为640Kbit的双向配置Cache、L2存储/Cache包含一个512Kbit的存储器空间由程序和数据共享,L2存储空间可以配置为存储空间、Cache或者存储空间与Cache。 TMS320DM6467除了包含一个297MHz的ARM926EJ-S核和594MHz的C64X+DSP核外,还包含有一个视频处理子系统(4个DACs、一个视频编码器和一个OSD引擎)。此外,TMS320DM6446有丰富的外设资源:USB2.0接口、以太网MAC、DDR2控制器、存储卡接口、IDE接口等等。

3.2.3 ARM子系统

ARM子系统部分集成了ARM926EJ-S处理器,ARM子系统设计思路为由ARM处理器作为设备的主控处理器。ARM子系统用于设备的配置和控制,其中包括对DSP子系统、视频处理子系统和其他丰富外设和外部存储空间的控制。 多媒体片上系统中,ARM用于处理诸如系统级初始化、配置、用户接口、用户命令执行、DSP子系统的控制接口和其他系统控制的系统功能。ARM能够完成以上功能,是由于ARM支持更大的程序存储空间、更好的程序上下文切换能力,因而更适合完成复杂的多任务的通用控制任务。 ARM子系统主要包括以下特性:
● ARM926EJ-S精简指令集处理器(RISC) √ 协处理器15(CP15) √ 存储器管理单元(MMU) √ 16KB的指令Cache和8KB的数据Cache √ 写缓冲功能
● ARM内部存储空间 √ 16KB的内部RAM(32位位宽) √ 16KB的内部ROM
● 系统级外设控制 √ ARM中断控制器 √ PLL控制器 √ 电源和Sleep控制器
● ARM管理和控制以下外设 √ DDR2控制器、异步外部存储器接口控制器 √ EDMA控制器、UART、定时器、PWM、I2C通信控制器 √ 多媒体卡控制器、CF卡控制器 √ 音频串口ASP、串口接口SPI、USB控制器 √ ATA控制器、EMAC以太网控制器 √ 视频处理前端和视频处理后端
ARM子系统框图如图3-2所示:
[pic]
图3-2 ARM子系统结构框图

由图3-2示,数字多媒体片上系统通过两组总线系统实现各个系统间的数据传输: 1.DMA总线:用于各子系统和模块间的数据传输 2.CFG配置总线:用于各块的外设寄存器的配置 ARM926EJ-S核集成了单周期32×16的乘累加单元MAC,增强了16bit的定点运算处理器的性能。ARM926EJ-S处理器支持32位ARM指令集和16位THUMB指令集,使用户可以在高效性能和高代码率之间平衡,支持ARMv5tej指令集支持JAVA字节代码执行。

3.2.4 TMS320C64X+DSP子系统

数字多媒体片上系统的DSP子系统包含了一个高性能的TMS320C64X+DSP、多个内部存储器块(L1P、L1D和L2)。DSP子系统主要包含以下部分:
● TMS320C64X+CPU
● 内部存储器控制器 √ 程序存储空间控制器PMC、数据存储空间控制器DMC √ 统一的存储空间控制器UMC、外部存储空间控制器EMC √ 内部DMA控制器IDMA
● 内部外设控制器 √ 中断控制器 √ 电源控制器 TMS320C64X+DSPCPU是TMS320C6000系列的高性能的处理器,每个时钟周期运行8条32bit指令。TMS320C64X+DSPCPU包含64个32位通用寄存器和8个功能单元(2个乘法器和6个算术逻辑单元)。TMS320C64X+DSP内核构建在VelociTI2.0体系结构的基础上,使VelociTI系统结构的进一步增强,以其C64X+内核的先进超长指令字结构,可以获得当前应用设备所需的极高的性能。 DSP子系统架构图如图3-3所示:
[pic]
图3-3 DSP子系统结构框图 由图3-3示,TMS320C64X+DSPCPU的主要特点如下:
● C64X+片内2个数据通道、8个功能单元和2个一般目的寄存器文件A和B;8个功能单元和2个寄存器文件分为两个组,每组占用一个数据通道;两个数据通道之间包含两个数据交叉通路;
● C64X+DSP采用超长指令字VLIW,即在每个时钟周期最高可提供8条32位指令,总字长为256位的指令包同时分配到8个并行处理单元。在594MHz时钟频率下,当片内8个处理单元同时运行时,其最大处理能力可达4752MIPS;
● C64X+DSP具有双16bit扩充功能,芯片能在一个周期内完成双16位的乘法、加减法、比较、移位等操作;
● C64X+DSP通过将DSP运算压缩在较小的时间周期里,加速通信和图像处理。在增强并行的扩展中,四组8位/两组16位指令允许每秒进行约90亿次8位乘累加运算。

3.2.5视频处理子系统(VPSS)

TMS320DM6446视频处理子系统为视频处理应用提供了视频处理前端VPFE
输入接口和视频处理后端接口VPBE。
视频处理子系统详细框图如图3-4所示:
[pic]
图3-4 视频处理子系统结构框图

3.2.5.1视频处理前端

视频处理前端主要由CCD控制器、图像预处理引擎ISP、硬件自动曝光/白均衡/自动聚焦(3A)模块、缩放、直方图统计模块构成。 视频处理子系统视频处理前端的各个主要部分:
● CCD控制器:为图像传感器和数字视频源提供输入接口,可以接受CCD/CMOS传感器采集的原始图像或视频数据和视频解码器输出的各种格式的YVU的视频数据。CCDC的输出需要做图像处理操作将原始图象数据转换为最终处理后的数据,处理过程可以在预处理模块中完成也可以由DSP端程序和图像协处理器子系统实现,图像处理过程中,进入CCDC的原始数据可以进行H3A和直方图统计操作。
● 预处理模块:预处理模块是一个图像处理模块,可以支持各种传感器类型的图像质量和视频帧率用于数码相机图像预览和视频记录。预处理模块将传感器采集的未压缩的图像/视频数据转换为YCbCr4:2:2格式,预处理输出可以用于进一步的视频压缩处理和连接外部数字或者模拟显示设备进行显示输出。
● 缩放模块:缩放模块可以将输入的视频图像数据缩放至预定的显示大小或者视频编码需要的分辨率,缩放能力可达10倍。缩放模块的输入数据来自预处理模块或者DDR2,而输出至DDR2中以进行进一步的处理。H3A模块:H3A模块提供了自动聚焦、自动白均衡、自动曝光功能。
● 直方图模块:直方图模块依据采集的原始图像/视频数据和输入的色彩像素的幅度值,进行相应的统计以完成H3A模块需要的参数,调整视频的输出。

3.2.5.2视频处理后端

视频处理后端主要由OSD显示模块、视频编码模块和数字LCD控制器构成。视频编码模块包括数字LCD和模拟视频输出接口;数字LCD控制器产生数字RGB/YCbCr数据和时序信号。 视频处理后端系统的各个组成部分:
● OSD模块:OSD模块的主要功能是收集和融合显示视频数据和显示位图数据,OSD可编程配置;OSD模块有以下特性: √ 支持同时显示两个视频窗VIDWIN0/1和图形、字符OSD窗OSDWIN0/1 √ 支持一个矩形光标窗和一个可编程背景颜色可选窗 √ 各窗口的起始基点、宽、高均可编程设定 √ 支持水平/垂直方向的2-4倍的缩放 √ OSDWIN1可配置为OSDWIN0的属性窗口 √ VIDWIN0支持ping-pong机制 √ OSD位图数据可配置为1/2/4/8位 √ 显示优先级Rectangular>Cursor﹥OSDWIN0﹥OSDWIN1﹥VIDWIN1﹥VIDWIN0﹥背景
● 视频编码模块:视频编码模块产生模拟视频输出,具有以下特性: √ 支持高清、标清显示 √ 4通道10位DAC,可以产生以下组合的模拟视频输出:复合视频、分量视频、S-Video √ 内部产生彩色条
● 数字LCD控制器模块:产生数字RGB/YCbCr数据输出和时序信号,数字LCD控制器支持以下特性: √ 时钟可编程配置,高达75MHz √ 支持多种输出格式: ◆ 16位YCbCr、8位YCbCr、并行24位RGB、串行RGB ◆ BT.656格式、支持QVGA、STN显示 √ 数字RGB输出低通滤波 √ 可编程时序发生器 √ 内建EPSON/CASIOLCD显示板时序发生器 √ 支持主从操作、支持内部彩条产生

3.2.6 VICP模块

VICP(Video Imaging Coprocessor的简称)被设计用来减轻DSP在图象处理和计算密集型运算方面的负担,提高DSP在图像领域的性能。在这个系统中有两
个协处理器:iMX和VLCD。iMX主要用来做颜色空间转换、滤波、运动估计、运动补偿等计算密集型的图象处理任务,iMX的最大时钟周期为225MHZ,对本系统最高格式视频1080i(1920×1080,30帧/秒)来说,平均一个空块可支配时间为925个时钟周期,再加上其他一些控制开销完全可以达到实时要求。而VLCD则提供哈伏曼编解码,量化、反量化等静止图像,视频图像编解码常用算法。VICP还有一个简单的16位处理器Sequencer,主要用来做buffer管理,寄存器编程,循环控制等简单的控制功能。
Sequencer和iMX,VLCD都有他们自己的内存来存储数据指令和程序指令。DSP通过cpcfg总线配置VICP的配置寄存器。cpcfg总线还用来在VICP和其他系统内存间传递数据。VICP内部各存储器还可以通过LDMA高速传输。

3.2.7 外部存储器接口

TMS320DM6467中集成了多种外部存储器接口:异步EMIFA(NOR Flash、SDRAM)、NAND Flash以及CF卡等。异步EMIFA包括一个8位或16位数据线,1个24位地址线,4个片选信号,支持的存储器接口有NAND、ATA/CF、主机端接口。NAND接口包括的存储卡类型有NAND卡、SM卡和xD卡。DDR2存储及控制器用于与16位或者32位DDR2 SDRAM的连接,DDR2 SDRAM在达芬奇技术中有很重要的作用,由于数据读写的高速,它用来缓冲视频输入图像数据,并作为OSD显示数据的缓冲器,运行ARM和DSP代码等。

3.3本章小结

本章首先介绍了Davinci数字多媒体技术,然后介绍了多媒体芯片TMS320DM6467芯片的总体架构,其中包括ARM子系统、TMS320C64X+DSP子系统和VPSS子系统,同时说明了一下DSP上的VICP模块和外部存储器。

第4章 DVB-C数字电视机顶盒的软件系统设计

4.1数字电视机顶盒的基本原理

[pic]

图 4-1 机顶盒基本框架图

如上图所示,高频头接收来自有线网的高频信号并下变频为一个稳定的中频信号,经QAM解调后供给信道解码部分完成信道的前向纠错解码,最后从载波中分离出包含音、视频和其它数据信息的传送流。传送流中一般包含多个音、视频流及其它数据信息。解复用器则根据PSI/SI信息来区分不同的节目,提取相应的音、视频流和数据流,送入MPEG-2解码器和相应的解析软件,完成数字信息
的还原。对于付费电视,条件接收模块对音、视频流实施解扰,并采用含有识别用户和进行记账功能的智能卡,保证合法用户正常收看。
视频PES送入MPEG-2视频解码模块进行解码,然后输出到PAL/NTSC编码器,转化为模拟电视信号,再经过视频输出电路输出;音频PES送入音频解码模块进行解码,输出PCM音频数据到D/A变换器,转换成立体声模拟音频信号,再经过音频输出电路输出。在模拟电视上显示高质量、多声道立体声节目。

4.2 DM6467的软件框架

TI的达芬奇技术的程序设计理念由以往的单核DSP算法处理架构逐步向双核处理器RISC+DSP架构转移,实现系统级程序设计即既包括RISC端程序设计也包括DSP端算法程序的设计。TI为Davinci多媒体处理芯片及其相应的硬件平台推出了一款软件开发套件,包括eXpressDSP配置套件、基于eXpressDSP数据可视化技术的TMS320DM646xSoC分析器,以及Montavsita的Linux内核和相应的交差编译工具,利用上述套件进行开发,可以大幅度简化新一代视频应用设计工作。 基于Davinci技术的数字多媒体软件系统架构如图4-2所示:
[pic]

图4-2 的数字多媒体软件系统架构图

由图4-2示:Davinci技术软件开发主要分为三个独立的部分:
● 应用层程序(ARM端应用程序)
● I/O层程序(ARM端内核硬件驱动程序)
● 信号处理层程序(DSP端音视频编解码程序) 从程序设计角度分析,以上三个部分的程序开发彼此独立,依次对应硬件上的ARM Linux的用户空间、ARM Linux内核空间和DSP端,各部分相互之间的开发互不影响。 本论文所完成的MPEG-2视频解码播放程序开发,根据这个软件架构,秉承Davinci技术的理念,借助TI网站提供的信号处理层可执行代码,修改应用层和驱动层代码,对解码软件进行系统层集成。

4.3 ARM端内核开发

4.3.1设备驱动程序介绍

在Linux中,设备驱动程序是操作系统的内核和系统硬件之间的接口,为应用程序屏蔽了硬件细节。这样在应用程序看来,硬件设备只是一个设备文件,应用程序可以像操作普通文件一样对硬件设备进行操作。 Linux操作系统的设备分为字符设备(char device),块设备(block device)
和网络设备(network device)三种。
● 字符型设备:字符型设备是指存取时没有缓存的设备,例如键盘、鼠标、串行口等。应用程序可以像访问普通文件一样访问字符型设备,字符型设备驱动程序负责实现这些行为。字符型设备和普通文件系统之间唯一的区别是:普通文件允许在其上随机读写,而大多数字符设备仅仅是数据通道,只能顺序读写。字符型设备是最简单也是使用最多的设备。
● 块设备:块设备是文件系统的宿主,例如硬盘、软盘设备、CD--ROM等。Linux允许像字符设备那样读取块设备,允许一次传输任意数目的字节。块设备和字符设备只在内核内部的管理上有所区别,因此也就是在内核/驱动程序间的软件接口上有所区别。
● 网络设备接口:任何网络事务处理都是通过接口实现的,可以和其他宿主交换数据的设备。通常接口是一个硬件设备,但也可以像lookback(回路)接口一样是软件工具。网络接口是由内核网络子系统驱动的,它负责发送和接收数据包,而且无需了解每次事务是如何映射到实际被发送的数据包。内核和网络设备驱动程序之间的通信,与字符驱动程序和块设备驱动程序与内核间的通信是完全不一样的。 设备驱动程序是Linux操作系统内核的一部分,它完成以下的功能:设备初始化和释放;把数据传送到硬件和从硬件读取数据,完成内核和硬件之间的数据传送;读取应用程序传送给设备文件的数据和回送应用程序请求的数据,完成内核空间和用户空间(应用程序)之间的数据传送;监测和处理硬件设备出现的错误;通过特定指令操作硬件设备。 Linux的设备驱动程序主要由下面三部分组成
● 初始化:设备配置和初始化子程序,负责检测所要驱动的硬件设备是否存在和是否能正常工作。如果该设备正常,对该设备及其他的必需的条件(如中断、DMA通道等)进行申请并初始化。这部分仅在初始化时被调用一次。
● 驱动程序的上半部分(tophalf)(响应I/O请求程序):执行这部分是系统调用的结果。这部分程序在执行的时候,系统认为是和进行调用的进程属于同一进程,只是由用户空间变成内核空间,但仍具有调用此系统调用的用户程序的运行环境,因此可以在其中调用sleep()、schedule()等与进程环境有关的函数。但是由于这部分是运行在系统不安全时间内的(中断处于关闭状态),所以要求程序尽可能的快,更多的事情留给底半部分(bottomhalf)来处理。
● 驱动程序的底半部分(bottomhalf)(中断服务子程序):系统接收硬件中断,再由操作系统调用中断服务子程序。中断可以产生在任何一个进程运行的时候,因此在中断服务程序被调用的时候,不能依赖于任何进程的状态,也就不能调用任何sleep()、schedule()等与进程运行环境有关的函数。而且因为设备驱动程序一般支持同一类型的若干设备,所以一般在系统调用中断服务子程序的时候,都带有一个或者多个参数,以唯一标识请求服务的设备。

4.3.2字符设备驱动程序的开发

Linux操作系统的三种设备中,字符型设备驱动程序是最简单但也是最重要,使用最广泛的,本论文主要完成的驱动程序包括framebuffer、vpbe和dsp等,这几个设备都是字符型设备,下面对Linux下字符型设备驱动程序的设计做详细介绍。

4.3.2.1字符型设备驱动的框架

嵌入式Linux的设备管理和文件系统紧密结合的,各种设备都以文件的形式存放在/dev目录下,称为设备文件。完成对设备的操作,可以像操作普通的数据文件一样操作设备文件。为了管理这些设备,系统为设备编了号,每个设备号又分为主设备号和从设备号。主设备号用来区分不同种类的设备,而从设备号用来区分同一类型的多个设备。例如,硬盘的主设备号是3。 Linux为所有文件,包括设备文件提供了统一的操作函数接口,定义如下: struct file_operation{ int(*lseek)(structinode*inode,structfile*filp,off_toff,intpos); int(*read)(structinode*inode,structfile*filp,char*buf,intcount); int(*write)(structinode*inode,structfile*filp,char*buf,intcount); int(*readdir)(structinode*inode,structfile*filp,structdirent* dirent,intcount); int(*select)(structinode*inode,structfile*filp,intsel_type, select_table*wait); int(*ioctl)(structinode*inode,structfile*filp,unsignedintcmd, unsignedintarg); int(*mmap)(void); int(*open)(structinode*inode,structfile*filp); int(*release)(structinode*inode,structfile*filp); int(*fsync)(structinode*inode,structfile*filp);}; 结构体中的成员为一系列的函数接口,如最常用的读/写(read/write)函数,用于控制的ioctl函数等等。打开一个文件就是调用这个文件file_operation的open操作。驱动程序就是要实现这些只有函数名,而无函数体的函数接口,以便响应用户的系统调用。这样,应用程序根本不用考虑操作的是设备还是普通文件,可一律当作文件处理,具有非常清晰统一的I/O接口。主要操作函数的意义如下: √ lseek,移动文件指针的位置,显然只能用于可以随机存取的设备。 √ read,进行读操作。返回值为负表示读取操作发生错误,否则返回实际读取的字节数。 √ write,进行写操作,与read类似。 √ readdir,取得下一个目录入口点,只有与文件系统相关的驱动程序才使用。 √ select,进行选择操作,如果驱动程序没有提供select入口,select操将会认为设备准备好进行任何的I/O操作。 √ ioctl,进行读写以外的其他操作。 √ mmap,用于把设备的内存映射到地址空间,一般只能由块设备驱动程序使用,但是某些特殊的字符设备也可以使用。 √ open,打开设备准备进行操作。返回0表示打开成功,返回负数表示失败。 √ release,即close操作。 由于一个系统的外设种类繁多,操作方式也各不相同。如声音驱动要使用DMA通道,显示设备驱动要提供对framebuffer的操作,硬盘驱动要处理复杂的缓冲区结构,网络设备驱动和socket紧密联系。下面以framebuffer设备为例具体介绍字符型设备驱动程序的开发。

4.3.2.2 Framebuffer的驱动程序

FrameBuffer是在Linux内核当中的一种驱动程序接口。这种接口将显示设备抽象为帧缓冲区。用户可以将它看成是显示内存的一个映像,在将显示设备映射到进程地址空间之后,就可以直接对其进行读写操作,而写操作可以立即反应在屏幕上。 帧缓冲设备也就是Framebuffer device和目录/dev/*下的其他设备没有区别。它是一个字符设备,使用主设备号29,次设备号用于帧缓冲设备之间的区分。帧缓冲驱动程序主要依靠四个数据结构。这些结构定义在include/linux/fb.h程序内。它们分别是fb_info、fb_var_screeninfo、fb_fix_screeninfo和fb_monospecs。后三个结构可以在用户空间访问,结构fb_info只能在内核空间访问。结构fb_fix_screeninfo定义了视频显示卡硬件的某些固定的特性,这些特性在硬件初始化时就被定义了以后不得修改。在这个结构体中最重要的成员是smem_len和line_length。前者指示显存的大小,后者提供了一个显示行的字节统计数,使显存指针很方便的移到下一显示行。 结构fb_var_screeninfo定义了视频硬件一些可变的特性。这些特性在程序运行期间可以由应用程序动态改变。成员变量xres和yres定义在显示屏上真实显示的分辨率。而xres_virtual和yres_virtual是虚拟分辨率,它们定义的是显存分辨率。比如显示屏垂直分辨率是576,而虚拟分辨率是1280。这就意味着在显存中存储着1280行显示行,但是每次只能显示576行。但是显示哪576行呢由另外一个成员变量yoffset决定,当yoffset=0时,从显存0行开始显示576行,如果yoffset=50,就从显存51行开始显示到626行。 在这四个结构中最重要的结构就是fb_info,它只能在内核空间访问。其内部定义了struct fb_ops,结构fb_ops成员就是由一系列Framebuffer操作函数组成,下面对它有详细介绍。 帧缓冲设备和一般的字符设备没有区别,把视频硬件抽象成一般的字符设备,驱动程序的写法和一般的字符设备驱动一样。该驱动程序的设备文件是/dev/fb0、/dev/fb1、/dev/fb2、/dev/fb3,分别对应显示层的Video0、OSD0、Video1、OSD1。Framebuffer的驱动程序在fbmem.c和davincifb.c中完成。 字符驱动程序用函数register_chrdev向内核注册设备。register_chrdev需要三个参数,参数一是主设备号;参数二是对应与主设备号的驱动程序名;参数三用来登记驱动程序实际执行操作的函数指针,它指向struct file_operation。编写字符驱动程序的主要工作就是编写各个子函数并填写file_operation各个域。当用户进程利用系统调用对设备文件进行操作时,系统通过设备文件的主设备号找到相应的设备驱动程序。然后读取这个数据结构相应的操作函数指针,接着就把控制权交给这个函数。这就是linux驱动程序工作原理。 对于FrameBuffer,设备的注册及中断申请是在初始化函数fbmem_init()和davincifb_init()中完成的。register_chrdev(FB_MAJOR,"fb",&fb_fops)注册了设备fb,主设备号是FB_MAJOR(29),driver_register(&davincifb_driver)注册了驱动设备,request_irq (INT_IRQ_ARM_GPIO41, isr, SA_INTERRUPT, "fifo", NULL)函数注册GPIO中断,中断号为INT_IRQ_ARM_GPIO41(58),中断处理函数的指针为isr。 文件层函数接口指针为fb_fops和davincifb_ops,它们共同实现了Framebuffer设备的所有接口函数。文件层操作函数定义如下: static struct file_operations fb_fops={ .owner=THIS_MODULE, .read=fb_read, .write=fb_write, .ioctl=fb_ioctl, .mmap=fb_mmap, .open=fb_open, .release=fb_release, }; static struct fb_opsdavinci fb_ops={ owner=THIS_MODULE, .fb_check_var=davincifb_check_var, .fb_set_par=davincifb_set_par, .fb_ioctl=davincifb_ioctl, }; √ fb_open是打开设备的接口,函数实现消息队列的内存空间的分配,队列的长度为64,也就是说,该队列可以顺序存储64个未读取的数据,对应用程序来说,该队列是循环队列。 √ fb_release是关闭设备的接口,确保释放的工作空间、启动空间和队列等各种空间。 √ fb_read实现了对内存空间中的读数据的操作,该空间为操作系统动态分配的空间,从指定的位置读取,与普通文件的读操作相同。 √ fb_write实现了对的内存空间中的写数据的操作,与读相同。 √ fb_mmap实现了将framebuffer映射进内存的操作,是驱动程序的核心模块之一。工作在保护模式的应用程序有自己的虚拟地址空间,但不能直接访问物理缓冲区地址,为此可以使用mmap函数将文件的内容映射到用户空间。之后用户就可以通过读写这段虚拟地址访问屏幕缓冲区在屏幕上绘图了。在此操作完成后用户对framebuffer进行的写操作可以立即反应在显示屏幕上。 √ davincifb_check_var在运行过程中自动检测显示区每帧数据的大小,以此确定最终的显示设备。 √ davincifb_set_par根据davincifb_check_var的结果初始化显示设备,配置寄存器,并最终确定显示区大小,修改内核与显示相关的全局变量。 √ fb_ioctl和davincifb_ioctl函数实一起共同现了许多重要的操作,对应应用程序对fb设备的各种操作功能,通用功能放在fb_ioctl中,Davinci设备特有的功能都放在davincifb_ioctl中,当对fb设备进行操作时,首先进入fb_ioctl查找对应操作。

4.4 ARM端应用程序

基于Linux的高清晰度解码应用程序是一个多线程程序,解复用、音频解码、视频解码分别对应各自线程,多个线程并行执行且互不干扰,这一部分主要的工作是多线程之间的调度。

4.4.1线程介绍

线程(thread)技术早在20世纪60年代就被提出,但真正应用多线程到操作系统中去,是在80年代中期,Solaris是这方面的佼佼者。传统的Unix也支持线程的概念,但是在一个进程(process)中只允许有一个线程,这样多线程就意味着多进程。现在,多线程技术已经被许多操作系统所支持,包括Windows/NT,当然,也包括Linux。 使用多线程的理由之一是和进程相比,它是一种非常“节俭”的多任务操作方式。在Linux系统下,启动一个新的进程必须分配给它独立的地址空间,建立众多的数据表来维护它的代码段、堆栈段和数据段,这是一种“昂贵”的多任务工作方式。而运行于一个进程中的多个线程,它们彼此之间使用相同的地址空间,共享大部分数据,启动一个线程所花费的空间远远小于启动一个进程所花费的空间,而且,线程间彼此切换所需的时间也远远小于进程间切换所需要的时间。据统计,总的说来,一个进程的开销大约是一个线程开销的30倍左右,当然,在具体的系统上,这个数据可能会有较大的区别。 使用多线程的理由之二是线程间方便的通信机制。对不同进程来说,它们具有独立的数据空间,要进行数据的传递只能通过通信的方式进行,这种方式不仅费时,而且很不方便。线程则不然,由于同一进程下的线程之间共享数据空间,所以一个线程的数据可以直接为其它线程所用,这不仅快捷,而且方便。当然,数据的共享也带来其他一些问题,有的变量不能同时被两个线程所修改,有的子程序中声明为static的数据更有可能给多线程程序带来灾难性的打击,这些正是编写多线程程序时最需要注意的地方。 除了以上所说的优点外,多线程程序作为一种多任务、并发的工作方式,当然还有以下的优点: 1.提高应用程序响应。这对图形界面的程序尤其有意义,当一个操作耗时很长时,整个系统都会等待这个操作,而使用多线程技术,将耗时长的操作(time consuming)置于一个新的线程,可以避免这种尴尬的情况。 2.使多CPU系统更加有效。操作系统会保证当线程数目不大于CPU数目时不同的线程运行于不同的CPU上。 3.改善程序结构。一个既长又复杂的进程可以考虑分为多个线程,成为几个独立或半独立的运行部分,这样的程序会利于理解和修改。

4.4.2 Linux下的多线程编程

线程是多线程编程中的主编程接口。线程仅在进程内部是可见的,进程内部的线程会共享诸如地址空间、打开的文件等所有进程资源。目前线程用两种方法实现: 1.用户态线程: 由于内核并没有对多线程进程的支持,因此,内核中只有单线程进程的概念,而多线程进程是通过一个和应用程序连接的函数库实现的。由于内核没有线程的概念,它不能独立的对线程进行调度,而是由一个线程运行库来组织线程的调度,其主要工作在于在各个线程的栈之间调度。如果一个进程中的某一个线程调用了一个阻塞的系统调用,该进程就会被阻塞,当然该进程中的其他所有线程也同时被阻塞,因此Linux使用了异步I/O机制。这种机制主要的缺点在于在一个进程中的多个线程的调度中无法发挥多处理器的优势。优点是户态线程的实现方式可以被定制或修改以适应特殊应用的要求。这对于多媒体实时过程等尤其有用。另外,用户态线程可以比核心态线程实现方法的默认情况支持更多的线程。 2.核心态线程 这种线程的实现方法允许不同进程中的线程按照同一相对优先调度方法进行调度,这有利于发挥多处理器的并发优势。目前线程主要的实现方法是用户态线程。核心态线程通过允许用户代码对内核线程调度的参与,将用户态和核心态两种线程实现方法的优点结合了起来。通过提供这样一个两级调度机制,内核在保留了对处理器时间分配的控制的同时,也使一个进程可以充分利用多处理器的
优势。本系统使用的是用户态线程。
线程的属性包括线程ID、寄存器状态(包括PC和栈指针)、栈、信号掩码、优先级、线程专用存储等,由于线程可共享进程指令和大多数进程数据,因此一个线程对共享数据进行的更改对进程内其他线程是可见的。当一个线程需要与同一个进程内的其他线程交互时,该线程可以在不涉及操作系统的情况下进行此操
作。
Linux系统下的多线程遵循POSIX线程接口,称为pthread。编写Linux下的多线程程序,需要使用头文件pthread.h,连接时需要使用库libpthread.a。下面介绍一下多线程编程中常用的一些函数:
■ pthread_create,创建线程。函数原形:int pthread_create(pthread_t* restrict tidp, const pthread_attr_t *restrictattr, void *(*start_rtn)
(void), void *restrictarg),当pthread_creat成功返回时,tidp指向的内存单元被设置为新创建线程的线程ID。attr参数用于定制各种不同的线程属性。可以把它设置为NULL,创建默认的线程属性。新创建的线程从start_rtn函数的地址开始运行,该函数只有一个无类型指针参数arg,如果需要向start_rtn函数传递的参数不止一个,那么需要把这些参数放到一个结构中,然后把这个结构的地址作为arg参数传入。
■ pthread_exit,终止线程。函数原形:void pthread_exit(void *rval_ptr),线程是依进程而存在的,当进程终止时,线程也就终止了。而此函数可以在不终止整个进程的情况下停止线程的运行,rval_prt是一个无类型指针,与传给启动例程的单个参数类似。线程终止后,其他线程可以调用pthread_join函数访问到这个指针。
■ pthread_join获得线程的终止状态。函数原形:int pthread_join(pthread_t thread,void **rval_ptr),当一个线程通过调用pthread_exit退出或者简单地从启动历程中返回时,进程中的其他线程可以通过调用pthread_join函数获得进程的退出状态。调用pthread_join进程将一直阻塞,直到指定的线程调用pthread_exit,从启动例程中或者被取消。如果线程只是从它的启动历程返回,rval_ptr将包含返回码。
■ pthread_t pthread_self,得到自身的pid。函数原形:void pthread_t pthread_self(void).
■ pthread_detach把指定的线程转变为脱离状态。函数原形:int pthread_detach(pthread_t pid);一个线程或者是可汇合的(joinable,缺省值),或者是脱离的(detached)。当一个可汇合的线程终止时,它的线程ID和退出状态将留到另一个线程对它调用pthread_join。脱离线程却像守护进程:当它们终止的时,所有相关资源都被释放。
■ pthread_attr_setinheritsched,设置继承的调度策略。函数原形:int pthread_attr_setinheritsched(pthread_attr_t *tattr, int inherit); inherit值为PTHREAD_INHERIT_SCHED表示新建的线程将继承创建者线程中定义的调度策略。将忽略在pthread_create()调用中定义的所有调度属性。如果inherit使用缺省值PTHREAD_EXPLICIT_SCHED,则将使用pthread_create()调用中的属性。
■ pthread_attr_setschedpolicy,设置调度策略。函数原形:int pthread_attr_setschedpolicy(pthread_attr_t *tattr, int policy);policy有两个可选值SCHED_FIFO和SCHED_RR。SCHED_FIFO用与TS调度类线程,如果这些线程未被优先级更高的线程抢占,则会继续处理该线程,直到该线程放弃或阻塞为止。而如果调用进程具有有效的用户ID,则争用范围为系统的循环线程属于实时(RT)调度类。如果这些线程未被优先级更高的线程抢占,并且这些线程没有放弃或阻塞,则在系统确定的时间段内将一直执行这些线程,这些线程使用SCHED_RR。SCHED_FIFO和SCHED_RR在POSIX标准中是可选的,而且仅用于实时线程。
■ pthread_attr_setschedparam,设置调度参数。函数原形:int pthread_attr_setschedparam (pthread_attr_t *tattr, const struct sched_param *param);调度参数是在param结构中定义的,仅支持优先级参数,新创建的线程使用此优先级运行。 另外,在多线程编程中,线程间同步是不可避免的一个问题。Linux下的多线程编程共有四种同步模型:互斥锁、读写锁、条件变量和信号。
■ 互斥锁仅允许每次使用一个线程来执行特定的部分代码或者访问特定数据。
■ 读写锁允许对受保护的共享资源进行并发读取和独占写入。要修改资源,线程必须首先获取互斥写锁。只有释放所有的读锁之后,才允许使用互斥写锁。
■ 条件变量会一直阻塞线程,直到特定的条件为真。
■ 计数信号量通常用来协调对资源的访问。使用计数,可以限制访问某个信号的线程数量。达到指定的计数时,信号将阻塞。

4.4.3 Codec Engine的介绍

TI的达芬奇(Davinci)数字媒体技术平台包括四大部分:芯片(处理器)、开发工具或开发套件、软件及技术支持。其中软件开发涉及到操作系统、音视频编解码算法及ARM和DSP之间的分工协作,相对比较复杂。 为此TI推出了一系列软件模块和工具来建立Davinci软件开发的框架,方便在此基础上快速的开发自己的产品,这些软件模块和工具包含在TI的基于达芬奇技术的TMS320DM6446的软件开发包中。在视频应用系统中,Davinci的ARM负责操作系统应用,DSP负责运行音视频codec算法处理,ARM通过TI的Codec Engine机制调用DSP侧的codec。 对于DM6446芯片,Codec Engine分为两个不同的部分VISA(Video, Image, Speech, Audio)和EPSI(Easy Peripheral Software Interface)。应用层通过VISA API来调用DSP侧的算法,通过EPSI API来访问和操作外设,这两个部分的存在已经大大简化了集成工作的复杂程度。 如图4-3所示,Davinci的软件开发通常需要四个步骤:
[pic]

图4-3 Davinci的软件开发流程

由图4-3:达芬奇软件开发通常需要以上四个步骤。 第一步,基于DSP利用CCS开发自己的音视频编解码算法,编译生成一个编解码算法的库文件*.lib,等同于Linux环境下的*.a64P,直接在Linux环境下修改文件后缀名即可。如果要通过Codec Engine调用这个库文件中的算法函数,那么这些算法实现需要符合xDM (xDAIS (eXpress DSP Algorithm Interface Standard) for Digital Media)标准;Codec Engine机制下不符合xDM标准的算法实现需要创建算法自己的Stub和Skeleton。 第二步,生成一个在DSP上运行的可执行程序*.x64P(即.out文件),也就是DSP Server。这两步都是和DSP一侧开发紧密相关的,此处不做详细介绍了。 第三步,根据DSP Server的名字及其中包含的具体的音视频编解码算法创建Codec Engine的配置文件*.cfg。这个文件定义Engine的不同配置,包括Engine的名字、每个Engine里包括的codecs及每个codec运行在ARM还是DSP侧等等。 第四步,应用工程师收到不同的codec包、DSP Server和Engine配置文件*.cfg,把自己的应用程序通过编译、链接,最终生成ARM一侧可执行文件。 由于系统所做的视频解码程序使用的是TI提供的Demo程序库,所以开发流程中涉及到DSP Server的前两步相当于已经完成,下面主要介绍跟ARM开发紧密相关的Codec Engine部分。 Codec Engine是介于应用程序和具体算法之间的软件模块,其中的VISA API通过stub和skeleton访问Engine SPI,最终调用具体的算法,Codec Engine的工作是通过完成VISA API的任务来体现的。VISA API分为四部分VISA create/control/process/delete,下面通过VISA API的执行过程了解Codec Engine的工作原理。 在调用VISA API之前需要在应用程序中通过Engine_open()这个EngineAPI把DSP的可执行程序加载到DSP的memory,同时把DSP从复位状态释放,这时DSP开始运行DSP Server的初始化程序在DSP一侧创建一个优先级最低的任务RMS(Remote Management Server),RMS负责管理和维护对应到具体codec算法的Instances。如图4-4所示,应用程序调用VISAcreateAPI,相应的VISAcreate函数到Engine SPI中的Codectable中查到这个codec运行在远端DSP侧。
[pic]
图4-4 VISA create/delete 流程说明图

接着Engine SPI通过OSAL(Operating System Abstraction Layer)、DSP Link把VISA create的命令传到DSP侧的RMS。RMS通过DSP侧Engine SPI的codec table找到要调用的codec算法后,就会在RMS中创建一个相应的Instance(即一个DSP/BIOS系统中的任务)。VISA create会返回一个Instance的Handle,以便于给这个Instance做后续的VISA control/process/delete提供信息。VISA delete和VISA create原理类似,只是RMS删除相应的codec算法的Instance和执行codec算法的任务。 概括来说,VISA control用来动态的修改codec instance的属性,VISA process用来对算法的输入数据做处理并返回一个输出数据。如图4-5所示,应用程序在调用VISA process/control时会通过xDM Stub把传递给codec算法的参数收集起来,并且转换成DSP可以识别的物理地址。Stub把这些参数和相关的命令通过Engine SPI、OSAL和DSP Link传递到DSP侧的Instance。Instance再通过Skeleton把传递过来的参数和命令解析出来,通过DSP一侧VISA control/process对codec算法执行control/process。
[pic]

图4-5 VISA process/control 流程说明图

需要注意的是,通过调用Codec Engine的API来调用和运行的算法需要符
合xDAIS标准。并且Codec Engine的API与操作系统无关。比如Linux、VxWorks和WinCE环境下的Codec Engine API都是完全一致的。

4.4.4 视频解码应用程序

视频解码程序是一个多线程的应用程序,有六个个并行执行的线程:主线程(main.c)、音频(audio.c)、视频(video.c)、显示线程(displaye.c)、数据加载线程(Loader.c)、TS视频捕获线程(pid0.c)、TS音频捕获线程(pid1.c)。解码程序从主线程开始,在主线程中打开音频线程和视频线程,然后主线程解复用程序转化为解复用线程。除主线程外,所有线程都设定为可掩蔽,并且以解复用的线程优先级最高,然后依次是显示线程、视频线程、音频线程。多线程同步采用的是Rendezvous机制,Rendezvous在主线程中初始化,把线程数目当作参数传给Rendezvous,只有在所有线程都初始化完毕并通知Rendezvous以后,程序才能向下执行。 主线程从初始化工作开始,设定基本的解码参数,然后依次打开Codec Engine,Rendezvous和音视频等线程。其工作流程如下:

[pic]
图4-6 视频解码主线程流程图

从图4-6可知,首先初始化一个互斥锁,在多线程程序中,互斥锁可以很好的保护全局变量,单个线程在多全局变量操作前先加锁,别的线程就会被阻塞,直到解锁信号的到来;CERuntime_init和TraceUtil_start完成对Codec Engine的初始化,这两个函数是Davinci的库函数,没有原码,其应该是打开DSP并运行DSP/BIOS操作系统,必须在调用CodecEngine的API函数之前执行;Rendezvous_open打开线程同步机制,然后分别打开视频线程(videoThrFxn)和音频线程(audioThrFxn),最后主线程的任务结束转化成解复用(demuxThrFxn)。解复用线程功能比较简单,首先安装一个信号接受函数:sigaction(52,&act,NULL),接受得到码流时内核发出的实时信号52,判断得到的数据量,当数据大于1.5M时,调用demuxThrFxn()函数,进行解复用,并把音视频ES流分别放到各自的数据缓冲区。 视频线程每次从视频缓冲区读一帧数据,解码并把结果放到显示缓冲区。视频线程的工作流程如下:

[pic]

图4-7 视频线程流程图

pthread_create创建显示线程(displayThrFxn),因为显示线程只和视频线程有关,为了使视频线程和显示线程之间的通信尽量简单,显示线程并没有在主线程创建;Engine_open打开一个解码Engine实例,每个Engine实例对应DSP/BIOS的一个任务,同时返回一个hEngine指针,供以后Engine函数使用;VIDDEC_create使用hEngine指针,创建一个符合MPEG-2算法的解码实例,返回值是一个hDecode指针,这个指针供以后所有CodecEngine的API调用;Memory_contigAlloc调用一个Cmem模块,完成分配一段物理上连续的地址空间的任务,之所以加入这个模块是因为Linux系统屏蔽了应用程序对内存的直接操作,而CodecEngine要求解码前的数据必须放在物理上连续的地址上;最后在所有参数设置好了以后,调用VIDDEC_process函数进行解码,并把输出结果放在outBufDesc中,outBufDesc由显示线程提供。 音频线程实时从音频缓冲区读数据,解码后直接由AIC33输出。工作流程
与视频的线程类似,因此不再细讲。

4.5 本章小结

本章主要介绍了DM6467的软件结构,包含了ARM端内核的开发和ARM端应用程序的设计。最后以视频解码程序为例说明多线程的设计过程。

第5章 机顶盒应用程序设计

5.1 从数据传输、处理的角度分析有线电视机顶盒的设计

图5-1展示了数字机顶盒的数据传输过程和处理过程:
[pic]

图5-1 数字机顶盒的数据传输、处理过程图

1、Tuner模块是有线数字电视机顶盒的必备模块,连接有线电视同轴线,锁定由CPU设置的某一频点后,将频带搬移到中频,然后进行AD转换、QAM解调和RS信道解码,最后输出该频点的所有TS流。对于标清电视,每个频点一般由4-6套节目的TS流组成,而每套节目由一般由音频流、视频流和数据码流三路码流组成。TS流由包含188节的TS包组成,不同功能的TS包可由包内的PID字节描述。Tuner模块向主控板提供的TS流1中,除了包含各套节目码流之外,还包含一些控制码流。控制码流主要由PSI(节目专用信息)或SI(业务信息)组成,利用这些信息可以建立电子节目指南(EPG)等。这些信息中,PAT表可指明这个频点由几套节目(指定PMT的PID)组成;PMT表可指明一套节目由哪些码流(指定每种码流的PID)组成,不同PID的PMT表对应着不同节目。 2、TS流解析模块对一个频点中所有TS流进行解析,即从TS流1中提取一套节目相关的TS流2传给CPU模块。最初不知道该频点各套节目流的组成情况,需要从TS流1中提取PAT表,从PAT表获取与各个节目对应的PMT表的PID(每个频点一般有4-6个不同PID的PMT表),然后从TS流1中提取与某个PID对应的PMT表,从该PMT表中解析出构成该节目的基本码流(音频流、视频流和相关数据流)的PID值,最后将这几个PID按节目分别存储。当收看某一节目时,获取与该节目对应的几个PID值,然后从TS流1中过滤出与这几个PID值相同的TS包,最后传给CPU模块,供音视频解码器模块使用或简单处理后直接存储到硬盘。 3、音视频解码模块通过调用解码算法实现对TS流的解码。 4、解码后的音视频流在CPU的控制下实现视频的播放

5.2 机顶盒解码应用程序

图5-2展示了机顶盒解码应用程序的线程机制:
[pic]

图5-2 机顶盒的多线程设计结构图

解码程序是一个多线程的应用程序,有六个并行执行的线程:主线程(main.C)、音频解码(audio.c)、视频解码(video.c)、显示线程(display.c)、TS视频捕获线程(pidO.c)和TS音频捕获线程(pidl.c)。解码程序从主线程开始,在主线程中打开显示线程、视频线程、音频线程、TS视频捕获线程和TS音频捕获线程,然后主线程控制程序转化为控制线程。多线程同步采用的是Rendezvous机制,该机制是通过条件变量实现的,Rendezvous在主线程中初始
化,把线程数当作参数传给Rendezvous,只有在所有线程都初始化完毕并通知Rendezvous以后,程序才能向下执行。下面具体介绍各个线程的功能。
主线程从初始化工作开始,设定基本的解码参数(视频显示格式),然后依次初始化CodecEngine,创建Rendezvous同步机制和上述线程。主要工作流程为:
(1)初始化一个互斥锁,在多线程程序中,互斥锁可以很好的保护全局变量,单个线程在多全局变量操作前先加锁,别的线程就会被阻塞,直到解锁信号的到来;(2)调用CERuntime init和TraceUtil start完成对Codec Engine的初始化,必须在调用CodecEngine的API函数之前执行;(3)调用Rendezvous_open 打开线程同步机制,利用cmem模块提供的Memory_alloc函数为音视频捕获线程分配1M和5M的连续内存,然后分别打开显示线程(displayThrrm)、视频线程(videoThrFxn)、音频线程(audioThrFxn)、TS视频捕获线程(pid0ThrFxn)、TS音频捕获线程(pidlThrFxn),最后主线程的任务结束转化成控制线程(ctrlThrFxn)。其中TS视频/音频捕获线程的主要功能就是检测到中断时将已捕获到的数据分别存入上面所说的buffer中,等待处理。 由于各个线程是并行执行的关系,理论上任何一个线程的出错都不会影响其
他线程的执行。比如对于一个音频格式是AC3的TS流,解码时视频图象可以正
常输出;但是当视频线程出错时,由于视频线程是最重要的部分,所以设定这时
候程序自动退出。

5.3 本章小结

本章节主要介绍了机顶盒对TS流的数据传输和处理的过程,以及机顶盒解码应用程序的多线程设计。

第6章 总结与展望

随着中国宽带互联网、电信网、电视广播网的普及和多媒体技术的不断发展,人们提出了“三网融合”的概念。在巨大的市场潜力驱使下,作为面向数字电视广播的流媒体机顶盒产品极具发展空间。基于嵌入式的流媒体机顶盒汇聚了计算机、通信、多媒体等最新技术的发展,它将在未来现代化智能家居中起到非常重要的作用。 本课题是在基于TI公司新推出的达芬奇(Davinci)技术的TMS320DM6467数字媒体SOC的嵌入式机顶盒解决方案,本文是基于此研究基础给出了具体的实现方法和过程,实现了嵌入式流媒体机顶盒的基本功能。

6.1 系统的性能指标

机顶盒已实现的功能:
● DVB-C有线电视射频信号输入,或者读取来源于硬盘中压缩视频流
● TS实时解复用、MPEG-2实时解码(30帧/秒和60帧/秒),YPbPr和VGA输出
图6-1说明了在Linux系统上加载设备驱动和可执行文件的流程:
[pic]
图6-1 加载设备驱动和执行可执行文件的流程图

[pic]
图6-2 硬件实物连接

[pic] 图6-3 加载驱动文件

[pic]
图6-4 Tuner 锁频
[pic]
图6-5 TSIF解复用,捕获单一节目TS流并格式转换
[pic]
图6-6 视频播放

[pic]

图6-7 视频播放

6.2 本论文完成的工作

在基于达芬奇处理器TMS320DM6467的多功能多媒体处理平台的研究与开发过程中,本论文完成的主要工作总结如下: 1.学习了DM6467处理器及其外围芯片的数据手册和应用文档,对ARM和
DSP双核结构的基本工作原理有了一定理解。
2.了解达芬奇技术的软件架构,搭建软件开发环境。在开发主机上建立了
交叉编译环境,制作内核镜像并通过tftp下载到DDR2中,建立网络文件系统
(NFS),最后通过设置U-boot的导入参数,直接进行引导。 3.掌握了TS接口驱动的结构和使用,编写了TS并行入/出应用程序。 4.学习TI提供的关于Codec Engine的使用方法,掌握了VISA API的使用,
学习了Linux多线程编程的相关知识,利用VISA API开发解码应用程序,加入
解复用功能,并提供多种数据输入方式如:硬盘、从码流发生器或前端接
收TS流。

6.3 研究展望

经过半年的工作,本课题的研究工作主要完成了基于Davinci CodecEngine技术的音视频解码模块和用户接口模块设计和以及嵌入式Linux操作系统的开发与调试,在Davinci技术下建立起了一个机顶盒的基本开发平台,为项目中的应用层软件开发打下了良好的基础。由于时间和工作经验以及理论水平的限制,该课题主要完成了解码器和软件底层方面的开发及调试,而系统应用层方面还有很多工作需要继续,作者认为,为了充分发挥现有系统板上的硬件资源,以下的问题还需要进行进一步的研究与开发:
(l)需要将我国自主研究的音视频编解码算法标准——AVS移植进嵌入式机顶盒产品中
(2)根据三网融合的理念,可以将数字机顶盒开发为家庭数字网关,充分利用机顶盒的互动性,通过采集、控制和上传家庭内部所有信息,从而提供一种安全、便捷的现代室内生活。
(3)在OSD的基础上开发出更加方便和友好的人机交互界面

致谢

经过半年的学习和实践,我的毕业设计现在已接近尾声。通过做毕业设计,我发现了自己知识中的很多不足,通过与导师和师兄师姐的交流也学到了很多以前不曾接触到的新知识、新方法、新思想。没有导师的悉心指导,没有师兄师姐的耐心帮助,我都无法完成自己的本科毕业设计工作。回顾这一学期来的毕业设计学习生活,收获颇多而且受益匪浅,在此我要向所有给予我关心和帮助的老师和师兄师姐致以崇高的敬意和诚挚的感谢。 感谢指导老师刘琚教授。刘老师严谨的治学态度,渊博的学识,谦和的为人,悉心的指导都给我留下了十分深刻的印象。刘老师说的很多话对我都很有启发和指导意义。刘老师平日虽然工作很忙,却十分关心我的毕业设计,经常询问我的工作进展,并不断鼓励我做出更好的作品,从而使毕业设计的研究深度有了很大的提高。 感谢实验室的各位师兄师姐,他们对我的研究工作和论文写作有很大的帮助。尤其是陈长兵师兄、殷超师兄和李清石师兄,他们不仅在专业领域有很深的造诣和不断钻研的精神,对我的学习帮助很大,而且为人谦和,诲人不倦,可以说我的毕业设计能有现在的进展与他们的帮助有着直接的关系。此外,刘朝晨师兄、叶红姐也对我的毕业设计给予了很多帮助,在此一并致谢。 感谢本科期间的所有老师的教诲和同学们的帮助,感谢山东大学对我的培养,今后我要继续努力,取得更好的成绩。 最后衷心地感谢父母对我的辛勤抚养,感谢家人的支持和鼓励,使我能够顺利地完成本科学业,这是我拼搏向上的力量源泉。

参考文献

[1] 方涛。数字电视业务信息及其编码,国防工业出版社,2003.8
[2] 张起贵,张胜,张刚,最新DSP技术——“达芬奇”系统、框架和组件,国防工业出版社,2009
[3] TEXAS INSTRUMENTS,DaVinci™ Technology Workshop Student Guide Technical Training,2008
[4] 刘冰 ... [等],Linux C程序基础与实例讲解,清华大学出版社,2009
[5] 彭启琮,达芬奇技术——数字图像/视频信号处理新平台,电子工业出版社,2008
[6] 贾明,严世贤。Linux下的C编程,北京,人民邮电出版社,2001
[7] 谢瀚。数字电视机顶盒中间件软件的模块划分,技术前沿,2005年7月,53~55
[8] 贺玮。嵌入式DVB-C数字机顶盒的研究与开发:(硕士学位论文),武汉理工大学,2007
[9] 袁亚斌。DVB-C机顶盒软件系统的研究:(硕士学位论文),天津大学,2004
[10] 余雷,陈建新。基于嵌入式Linux操作系统的有线电视机顶盒的构建,中国有线电视,2003(18):59~59
[11] 胡恒。有线数字电视机顶盒技术研究与应用开发:(硕士学位论文),电子科技大学,2005
[12] 王小丽,高丛善,范浩明。有线数字电视机顶盒核心技术及其应用,2006国际有线电视技术研讨会,249~255
[13] 杨文涛,刘卫忠,邹雪城。基于TS格式的MPEG-2节目流文件视频信息分析实现,华中科技大学
[14] 陈学凯,嵌入式流媒体播放器的设计,杭州,浙江大学,2005
[15] 邹思铁,嵌入式Linux设计与应用,北京:清华大学出版社,2002
[16] DaVinci™ Technology Digital Video Software Development Kit, http://focus.ti.com/lit/ml/sprt396/sprt396.pdf [17] 刘宝锋,张文军。机顶盒应用软件模块的设计与实现,计算机工程2004(8):85~87
[18] 王国丰,邹建华。多媒体机顶盒结构设计及其关键技术明,电视技术,2004(4):43~45
[19] 王大鹏,万涛,朱江。数字电视机顶盒的设计和关键技术,2004国际有线电视技术研讨会,380~385

Similar Documents

Premium Essay

Technology

...common day trader, who trades from their own home or office, probably will have multiple computers and monitors at their desk. From their desk or “trade station” traders can analyze data, build charts, and place his or her trades. According to Leibfarth (2006), most day traders rely on highly expensive computers and charting software to get the results they desire. The newest phenomenon to hit the trading world is algorithmic trading or black box trading. In its simplest form, individuals can programs computers or “black boxes” automatically to place trades based on certain market conditions such as volume spikes, chart patterns, trend lines, or pivot points in the markets. Once programmed, these computers can work alone and require minimal, if any, human interaction. For example, once a computer is powered on it can be directed to buy 100 shares of International Business Machines or IBM at $87.84 per share if a technical level or multiple technical levels in the company’s stock pattern has been met. Basically, the user can create a set of rules for the computer to execute. This does not only apply to stocks but also indexes and commodity futures contracts. Inversely, these black boxes also can be programmed to sell or short a position when either a trader’s profit target has been...

Words: 1556 - Pages: 7

Premium Essay

Apa Paper

...University of Phoenix • Course Number and Course Title • Facilitator’s Name and Title (first and last, with academic title, i.e., MSN, MBA, PhD) • Date Submitted **All lines are double-spaced (no single or triple-spacing) throughout the entire document. The standards outlined in this sample paper are within APA guidelines; however, your instructor may have additional requirements. APA Writing Style APA does not permit use of the word “Introduction” as a level heading. Instead, begin the text of the paper by including the same title as the title on the title page (centered, upper, and lower case ). See APA, p. 298, 5.17 2 APA Writing Style and Mechanics Indent the first line of each paragraph. Use the tab key, which should be set at five to seven spaces, or ½ inch. See APA, p. 289. The Publication Manual of the American...

Words: 5607 - Pages: 23

Premium Essay

Robotic Surgery

...Table of Contents 1. Title Page………………………………………………………………………..1 2. Table of Contents………………………………………………………………..2 3. Abstract of Paper………………………………………………………...............3 4. Introduction……………………………………………………………………...4 5. Historical Development and Context by Rachel Ocampo………………………4 6. Political & Legal Influences by Crystal Osborne………………………………12 7. Economic Questions & Considerations by Kim Payne………………………...18 8. Psychological Considerations & Sociological Effects by Rebecca Pistillo…….26 9. Implications for the Environment by Michael Plesnarski………………………33 10. Moral & Ethical Implications by Karen Quaderer…………………………… 39 11. Bibliography…………………………………………………………………….47 Abstract In this research paper our team will look at the use of Robotic Technology in the medical field, more specifically in the surgical field as well as discuss the issues and implications surrounding the topic. Our discussion will include topics ranging from the history and development of robots that can be found in surgical rooms, political concerns regarding the Food and Drug Administration and their requirements to approve use of these robots, the legal aspect of robotic technology on how to determine which party is held liable in case of accidents or malfunctions that can lead to injury and a legal case that shows the difficulty to prove fault against a manufacturer. Also discussed will be the economic ramifications on our society, psychological, sociological, cultural,...

Words: 15077 - Pages: 61

Premium Essay

Individual: Influences of Visual Media Paper

...(c) Bedford/St. Martin's bedfordstmartins.com 1-457-62096-0 / 978-1-457-62096-6 SOUNDS AND IMAGES Movies and the Impact of Images 187 Early Technology and the Evolution of Movies 192 The Rise of the Hollywood Studio System 195 The Studio System’s Golden Age 205 The Transformation of the Studio System 209 The Economics of the Movie Business 215 Popular Movies and Democracy In every generation, a film is made that changes the movie industry. In 1941, that film was Orson Welles’s Citizen Kane. Welles produced, directed, wrote, and starred in the movie at age twenty-five, playing a newspaper magnate from a young man to old age. While the movie was not a commercial success initially (powerful newspaper publisher William Randolph Hearst, whose life was the inspiration for the movie, tried to suppress it), it was critically praised for its acting, story, and directing. Citizen Kane’s dramatic camera angles, striking film noir–style lighting, nonlinear storytelling, montages, and long deep-focus shots were considered technically innovative for the era. Over time, Citizen Kane became revered as a masterpiece, and in 1997 the American Film Institute named it the Greatest American Movie of All Time. “Citizen Kane is more than a great movie; it is a gathering of all the lessons of the emerging era of sound,” film critic Roger Ebert wrote.1 CHAPTER 6 ○ MOVIES 185 (c) Bedford/St. Martin's bedfordstmartins.com 1-457-62096-0 / 978-1-457-62096-6 MOVIES A generation later...

Words: 19373 - Pages: 78

Premium Essay

Sample Questions About Eng

...ACCUPLACER® Sample Questions for Students © 2012 The College Board. College Board, ACCUPLACER, WritePlacer and the acorn logo are registered trademarks of the College Board. All other products and services may be trademarks of their respective owners. Visit the College Board on the Web: www.collegeboard.org. Sentence Skills In an ACCUPLACER® placement test, there are 20 Sentence Skills questions of two types. • The first type is sentence correction questions that require an understanding of sentence structure. These questions ask you to choose the most appropriate word or phrase for the underlined portion of the sentence. • The second type is construction shift questions. These questions ask that a sentence be rewritten according to the criteria shown while maintaining essentially the same meaning as the original sentence. Within these two primary categories, the questions are also classified according to the skills being tested. Some questions deal with the logic of the sentence, others with whether or not the answer is a complete sentence, and still others with the relationship between coordination and subordination. 3. To walk, biking, and driving are Pat’s favorite ways of getting around. A. To walk, biking, and driving B. Walking, biking, and driving C. To walk, biking, and to drive D. To walk, to bike, and also driving 4. When you cross the street in the middle of the block, this is an example of jaywalking. A. When you cross the street in the middle of...

Words: 11195 - Pages: 45

Premium Essay

Quality Award Application

...2009 Malcolm Baldrige National Quality Award Application TABLE OF CONTENTS Glossary of Terms and Abbreviations Organizational Profile i Responses Addressing All Criteria Items Category 1: Leadership 1 Category 2: Strategic Planning 6 Category 3: Customer Focus 10 Category 4: Measurement, Analysis, and Knowledge Management 14 Category 5: Workforce Focus 18 Category 6: Process Management 23 Category 7: Results 7.1: Best Quality (Healthcare Outcomes) 27 7.2: Best Customer Service (Customer Focused Outcomes) 32 7.3: Best Financial Performance & Growth (Financial & Market Outcomes) 35 7.4: Best People and Workplace (Workforce Focused Outcomes) 38 7.5: Best 5 Bs (Process Effectiveness Outcomes) 41 7.6: Best 5 Bs (Leadership Outcomes) 45 GLOSSARY OF TERMS AND ABBREVIATIONS APP: Annual Planning Process 5Bs: AtlantiCare’s five “Bests” or performance excellence commitments – Best People and Workplace, Best Quality, Best Customer Service, Best Financial Performance, Best Growth ARMC : AtlantiCare Regional Medical Center ASC: Ambulatory Surgery Center ASPP: Annual Strategic Planning Process A AAAHC: Accreditation Association for Ambulatory Health Care AAI: AtlantiCare Administrators Incorporated AAP: Annual Action Plan B BFP: Best Financial Performance Big Dots: The system-level measurements or targets for each of the 5 Bs (performance excellence commitments). Business units...

Words: 41167 - Pages: 165

Premium Essay

Apple - the Company

...GURU NANAK KHALSA COLLEGE OF ARTS, SCIENCE & COMMERCE APPLE INC. APPLE INC. formerly Apple Computer, Inc., is a multinational corporation that creates consumer electronics, computer software, and commercial servers Under the supervision of: Sameer Velankar   Index Serial No. Particulars Page No. 1. Introduction 2. History 3 Management Board Steve Jobs 4. Apple Products 5. Apple’s comeback 6. Small Solutions & Alternatives 7. i Products 8. Acquisitions 9. SWOT Analysis 10. SWOT Analysis Conclusion & Recommendation 11. Strategic Management the Steve Jobs Way 12. PORTER’S Five Forces 13. Microsoft, Apple & Google 14. Fundamental Analysis 15. Financial History 16. Graph Analysis 17. Case Study: Apple’s lawsuit on Samsung, what happened? 18. The components of the lawsuit 19. Bibliography Apple Computer, Inc. The idea fell from a tree, literally. Steve Jobs had returned from visiting a commune like place in Oregon located in an apple or hard. Apple co-founder and jobs pals, Steve Wozniak ,picked him up from the airport. On the drive home, Jobs simply said “ I came up with a name for our company- Apple”. Wozniak said they could have tried to come up with more technical sounding names but their vision was to make computers approachable. Apple fits perfectly. INTRODUCTION APPLE INC.. , formerly Apple Computer, Inc., is a multinational corporation...

Words: 24374 - Pages: 98

Premium Essay

Bus Law

...8/6/2014 Print Property: Personal, Intellectual, and Real Learning Objectives 11 After studying this chapter, you will be able to: 1. Distinguish between personal, intellectual, and real property. 2. Explain how personal property is acquired. 3. Discuss the definition and significance of bailments. 4. Define different types of tenancies in real property. 5. Discuss the concept of eminent domain. Ryan McVay/Photodisc/Thinkstock The concept of property and ownership is one that has long been important in both society in general and law in particular. English philosopher and political theorist John Locke saw it as "the reason why men enter into society," and Walter Lippmann, the American journalist, described it as "the only dependable foundation of personal liberty." Some have gone so far as to say that the main reason for law is to protect property rights. Even if one does not subscribe to such a narrow purpose, there is no doubt that the law is much concerned with property and rights of ownership. Property can be defined as the right of an individual to exclusively possess, use, and dispose of anything that is capable of being owned. Broadly speaking, property can be divided into three separate types: personal property, intellectual property, and real property. Personal property is characterized by its portable nature; it can be carried from place to place. Furthermore, personal property can be either tangible or intangible. Tangible personal property encompasses...

Words: 21517 - Pages: 87

Free Essay

Book

...THE PLAYER Good game design is player-centric. That means that above all else, the player and her desires are truly considered. Rather than demanding that she do something via the rules, the gameplay itself should inherently motivate the player in the direction the designer wants her to go. Telling players they must travel around the board or advance to the next level is one thing. If they don’t have a reason and a desire to do it, then it becomes torture. In creating a game, designers take a step back and think from the player’s viewpoint: What’s this game about? How do I play? How do I win? Why do I want to play? What things do I need to do? MEANINGFUL DECISIONS Distilled down to its essence, game design is about creating opportunities for players to make meaningful decisions that affect the outcome of the game. Consider a game like a boxing match. So many decisions lead up to the ultimate victory. How long will I train? Will I block or will I swing? What is my opponent going to do? Where is his weakness? Jab left or right? Even those few, brief questions don’t come close to the myriad decisions a fighter must make as he progresses through a match. Games invite players into similar mental spaces. Games like Tetris and Chess keep our minds busy by forcing us to consider which one of several possible moves we want to take next. In taking these paths, we know that we may be prolonging or completely screwing up our entire game. The Sims games and those in...

Words: 111961 - Pages: 448

Premium Essay

Quality Managment

...ISBN 978‐9948‐03‐638‐8  Q uality Congress   Middle East 2 Dubai (7-9 April, 2008) Creating an Architecture of Quality and Excellence in the Middle East:  Responsibilities, Challenges and Strategies        Proceedings of Congress     Edited by  Najwa Sami Dham  &  Syed Aziz Anwar        e‐TQM College  P.O. Box 71400  Dubai  United Arab Emirates     (1) ISBN 978‐9948‐03‐638‐8  Table of Contents   Foreword ___________________________________________________________________ 6 Professor Mohamed Zairi, Chairman, Quality Congress Middle East 2 ______________________ 6 Research Papers ______________________________________________________________ 7 TQM and its Implementation in Higher Education of Iran _________________________ S.A. Siadat _____________________________________________________________________ M. Mokhtaripour _________________________________________________________________ R. Hoveida _____________________________________________________________________ 8 8 8 8 Quality: From Where to Where? ___________________________________________ 12 Alan Brown ___________________________________________________________________ 12 The Impact of Educational Quality Models on Schools’ Performance in Dubai ________ 20 Kalthoom Al Balooshi ____________________________________________________________ 20 Wafi Dawood __________________________________________________________________ 20 Management Education and Development in the United Kingdom _________________...

Words: 137918 - Pages: 552

Free Essay

Globalization

...GLOBALIZATION THE ESSENTIALS GEORGE RITZER A John Wiley & Sons, Ltd., Publication Globalization Globalization A Basic Text George Ritzer This balanced introduction draws on academic and popular sources to examine the major issues and events in the history of globalization. Globalization: A Basic Text is a substantial introductory textbook, designed to work either on its own or alongside Readings in Globalization. The books are cross-referenced and are both structured around the core concepts of globalization. 2009 • 608 pages • 978-1-4051-3271-8 • paperback www.wiley.com/go/globalization Readings in Globalization Key Readings and Major Debates Edited by George Ritzer and Zeynep Atalay This unique and engaging anthology introduces students to the major concepts of globalization within the context of the key debates and disputes. Readings in Globalization illustrates that major debates in the field are not only useful to examine for their own merit but can extend our knowledge of globalization. The volume explores both the political economy of globalization and the relationship of culture to globalization. The volume is designed so it may be used independently, or alongside George Ritzer’s Globalization: A Basic Text for a complete student resource. 2010 • 560 pages • 978-1-4051-3273-2 • paperback Order together and save! Quote ISBN 978-1-4443-2371-9 GLOBALIZATION THE ESSENTIALS GEORGE RITZER A John Wiley & Sons, Ltd., Publication This edition first...

Words: 168078 - Pages: 673

Premium Essay

Abcdeskjhjkh

...GRE Analytical Writing ISSUE Essay Topic - 1 "Important truths begin as outrageous, or at least uncomfortable, attacks upon the accepted wisdom of the time." GRE AWA Analytical Writing ISSUE Essay Sample Solution – 1 “The opposite of a correct statement is a false statement. But the opposite of a profound truth may well be another profound truth.” ― Niels Bohr[->0] This is a proven fact that truth is the initial stage of progress. However, it is also believed that truth always starts away from the traditions and conventions. Therefore, people consider truths as attacks upon their beliefs, which people are following from ages. Truth also means some new facts that are unknown to us. People do not want to deviate from the facts, which they have learnt from their ancestors, and it is true to say that shedding ones dogmas is often difficult. They feel that it is an attack on their wisdom. If we look at the history of the world, we will find many examples where truth has generated commotions in the society. Different people have different views about the existence of God, life after death and origin of earth etc. For example, people took a long time to accept that the earth is round. Religious leaders and clergymen opposed this idea as it was against what they were teaching. Similarly, when Polish astronomer, Copernicus discovered that the earth goes round the sun and not vice versa, he was opposed by churches for many years. In fact he and his supporters were...

Words: 150412 - Pages: 602