1 导言
计算机多媒体技能和网络技能飞速开展使得依据流媒体的多媒体运用也被运用在多种范畴,特别是网络可视电话、长途监控、视频点播范畴。伴随着计算机多媒体紧缩技能的老练和网络传输技能的开展,开发实时牢靠、多功能、数字化、操作简略的依据计算机网络通讯技能和多媒体运用的网络化流媒体播映器已成为计算机、通讯、消费电子产品范畴(3C 工业-Computer、Communication、Consumer Electronics)技能开展的首要方向之一。
2 体系硬件规划
本文运用TQ2440 开发板作为硬件渠道。
S3C2440AL 是操控中心,担任操控一切辅佐设备。存储器选用SDRAM 和Flash 两种类型,能满意体系运转和调试的需求。根本端口包括以太网接口、USB 接口、两个RS232 的串口。A/D 和D/A 模块首要用于现场数据的收集与操控信号的输出。DC/DC 模块首要担任整个体系的供电。
S3C 2440AL 是三星公司规划开发的依据精简指令集的ARM9 核的CPU, 作业频率可以到达400MHz,且具有丰厚的内部设备,其间首要包括:存储器办理单元MMU、16kB 的指令缓冲器和16kB 数据缓冲器、存储器操控器(SDRAM 操控器)、NANDFlash 和NOR Flash 操控器、4 通道的外部DMA 恳求操控、3 个串行口、SD 存储卡读取接口、USB 主机、USB 设备、5 个脉宽调拟定时器。现在,S3C2440AL 已广泛地运用于PDA、智能手机、数字多媒体等方面。
3 体系的软件规划
体系的软件组成包括:嵌入式Linux 操作体系、设备驱动程序、图形界面和浏览器程序,这些仅仅IPTV 机顶盒软件组成的要害部分。
3.1 嵌入式操作体系的挑选及移植
本体系选用Linux 作为操作体系,并选用Linux2.6内核在嵌入式微处理器S3C2410 上移植,详细移植办法如下:
(1)预备Linux2.6 内核移植所必需的文件(内核紧缩包linux-2.6.tar.bz2 及穿插编译器arm -linuxgcc-3.4.1.tar.bz2),这些文件可到Linux 官方网站免费下载。
(2)运用Linux 指令(mkdir,tar,mv 及export)装置穿插编译器arm-linux-gcc-3.4.1.
(3)修正Makefile 文件及相关硬件文件。因为内核的编译是依据Makefile 文件的指示进行的,Makefile 文件来安排内核的各模块之间的联络,记录了各个模块之间的彼此联络和依靠联络。所以,开发人员要首要修正Linux2.6 根目录下的Makfile 文件,修正的首要内容是方针代码的类型和为编译内核指定一个编译器。
(4)运用Make 指令编译内核生成内核镜像文件zImage 文件,经过相应的固化软件把这个文件固化在体系相应的存储器中,完结Linux2.6 内核在ARM 微处理器上的移植。
3.2 媒体播映器的整体架构
体系完成原理:在嵌入式微处理器S3C2440AL的操控下,TQ2440 开发板经过网络接口接纳来自内容服务供给商的音视频播送信息,之后运转图形界面程序获取音视频信息,并在此基础上生成音视频节目清单,将信号传至显现屏进行显现,将节目出现给用户。用户运用显现体系供给的图形界面和浏览器运用键盘、鼠标进行操控,观看节目,其整体架构如图1 所示。
图1 媒体播映器的整体架构
3.2.1 媒体播映器与网络接口的完成
媒体播映器播映网络上的多媒体文件时最大的特点是边下载边播映的“流式”特性。在IPTV 运用中,因为多媒体数据的流式特性需求媒体播映器与媒体服务器之间进行信息交互,所以它们之间须一起遵从一个交互协议规范。本体系播映器选用RTSP 协议与服务器之间树立及办理RTSP 会话,经过网络传输协议接纳来自网络上的媒体数据。媒体播映器数据接纳流程如图2 所示。
图2 媒体播映器数据接纳流程
3.2.2 TS 流解析完成
在MPEG-2 体系中依据传输媒体的质量不同界说了两种复合信息流:传送流(TS:Transport Stream)和节目流(PS:Program Stream)。TS 流与PS 流的差异在于TS 流的包结构是固定长度的,而PS 流的包结构是可变长度的。PS 包TS 包在结构上的这种差异,致使TS 流比PS 流对传输误码的反抗才能更强,因此在本规划中的网络多媒体数据选用了TS 的封装格局。TS 包的结构如图3 所示,由包头和包数据两部分组成,包头长度占4B,自适应区和包数据共占184B,整个TS 包长度相当于4 个ATM 包长。
图3 TS 包的结构
因为在TS 流里可以填入许多东西,所以拟定TS流规范的组织就规则了PSI (Program SpecificInformation)表,其作用是从一个带着多个节目的某一个TS 流中正确找到特定的节目。
PSI 表包括以下四个表:
(1)PAT 表(Program Association Table)即节目相关表,它的首要作用是指出该传输流ID,以及该路传输流中所对应的几路节目流的MAP 表和网络信息表的PID.
(2)PMT 表(Program Map Table)即节目映射表,该表的PID 由PAT 供给,经过该表可以得到一路节目中包括的信息。
(3)CAT 表(Conditional Access Table)即条件拜访表,PID 是0x01.CAT 带着的是服务器的私有信息(CA 体系就需求运用该表格完成节目的解密)。
(4)NIT 表(Network Information Table) 即网络信息表,该表包括数字电视网中一切的传输流的物理传输网信息,包括节目的频道调谐参数、频率、符号率等,这些信息使得接纳机可以依照用户的挑选以很少的延时或无延时地改动频道、调谐参数,正确地解码出TS。
所以TS 流解析流程如图4所示:先接纳一个负载里为PAT 的数据包,在整个数据包里找到一个PMT 包的ID.然后再接纳一个含有PMT 的数据包,在这个数据包里找到有关填入数据类型的ID.之后就在接纳到的TS 包里找到含有这个ID 的负载内容便是填入的信息。依据填入的数据类型的ID 的不同,在TS 流复合多种信息,解有这些信息的传输包即可解出音视频的PES 包,终究解出音频流和视频流。
图4 TS 流解析流程
因为时刻和资源有限,本规划中移植老练的QT/Embedded 库到机顶盒的嵌入式体系,作为其图形界面类库。Qt/Embedded 选用frame buffer (帧缓冲)作为底层图形接口。一起,将外部输入设备笼统为keyboard 和mouse 输入事情。Qt/Embedded 的运用程序可以直接写内核缓冲帧,这防止开发者运用繁琐的XLIB/Server 体系。界面程序流程图如图5 所示。
图5 界面程序流程图
4 结语
本体系运用TQ2440 硬件渠道的优势,将Linux2.6.14 内核移植到开发板中,规划完成了一款依据嵌入式Linux 的机顶盒流媒体播映器,完结了其与网络接口的完成,经过TS 流的解析完成,供给了对干流的MPEG-2、MPEG-4、H.264 等格局文件的支撑。该体系具有杰出的可移植性和可扩展性,可以满意市场需求的不断改变。