我们从2011年坚守至今,只想做存粹的技术论坛。  由于网站在外面,点击附件后要很长世间才弹出下载,请耐心等待,勿重复点击不要用Edge和IE浏览器下载,否则提示不安全下载不了

 找回密码
 立即注册
搜索
查看: 942|回复: 0

基于ST20TP4的HDTV信源解码器的软硬件实现 - 通信/网络 - 电子

[复制链接]

该用户从未签到

1万

主题

1292

回帖

2万

积分

管理员

积分
29577

社区居民最爱沙发原创达人社区明星终身成就奖优秀斑竹奖宣传大使奖特殊贡献奖

QQ
发表于 2013-3-30 09:35:04 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区

您需要 登录 才可以下载或查看,没有账号?立即注册

×
科学技术的高速发展使广播电视进入了由彩色电视向高清晰度电视HDTV(High-Definition Television)跨越的过渡时代。随着HDTV在全球的兴起以及数字技术的日趋成熟,音/视频产品数字化、高清晰度化已成为未来家电视听产品的大趋势。HDTV采用了国际上流行的MPEG-2标准。MPEG-2规定了数字图像的音、视频编解码算法以及传送的码流应该符合的语法和语义,而其编解码算法又参考了听觉心理模型和视觉心理模型。HDTV的图像格式为1920×1080i,传输码率高达20Mbps,同时采用视频压缩技术可使HDTV的每一帧包含更多的信息,大大提高了图像的清晰度。HDTV在音频压缩方面采用了数字音频的编码和压缩技术。现有的数字音频编码压缩方案有MPEG-2、Dolby AC-3和美国AT&T的MPAC以及欧洲的MIX。它们都能实现5.1声道,即三个前面的声道(L、C、右声道R)、两个环绕声道(左环绕声道Ls、右环绕声道Rs)和一个低音效果声道LFE,使声音效果可以达到家庭影院的音响效果。HDTV声光效果上的优势,注定它的发展有着技术和市场的双重必然性。为了适应当前电视市场的过渡时期,需要一种即能接收数字电视信号,又能解码输出用于显示的中间设备--机顶盒,充当电视台信号与用户显示设备之间的桥梁。机顶盒是随着数字电视广播的发展而出现的,同时也必然随着数字电视广播的发展而不断发展。本文论述的信源解码器则是机顶盒的关键部件。

1 总体方案

根据本课题的任务和内容,选择了ST公司的数字高清晰度电视机顶盒系统解决方案,即ST20+Sti7000+Sti4600的三片方案。该方案采用ST20-TP4作为系统的主控制芯片,它负责将前端或LVDS板输入的TS流解复用,同时负责系统初始化和系统音、视频解码控制。为了配合ST20TP4ST20TP4的运行,需要配备一定数量的DRAM来提供运行程序的存储空间,并存储TS流、解复用后的音、视频PES流数据等。TS流经ST20TP4解复用后分两路输出:一路是解复用后的音频PES流,这路信号将被送入Sti4600STI4600进行音频解码,解码后的数字信号再通过DAC转换电路转变为模拟信号输出?另一路解复用后的视频PES流将送入Sti7000STI7000进行视频解码和格式变换。Sti7000所配的SDRAM用来缓存PES流、解码帧、显示帧、参考帧及OSD数据。解码后的图像以4:4:4的高清晰度格式送入视频DAC电路进行D/A变换。另外,为了配合实际需求,视频模拟输出要求兼容VGA(R,G,B,Hs,Vs)和Y,Pr,Pb两种接口。其中,Y,Pr,Pb信号要带有三电平或两电平同步信号。

2 硬件设计

硬件电路设计以ST20TP4为核心展开,依据主控制芯片的总线结构规划视频接口、音频接口以及各类存储器。ST20TP4有一个32位带符号的2的补码地址空间。按32位地址寻址,总的地址空间大小为4G字节。(所谓"带符号的2的补码地址空间"是指该空间地址排列是由底部MixInt#80000000向下增长至#FFFFFFFF,接着是#00000000然后增长到MaxInt#7FFFFFFF)。整个寻址空间分为四个区(每区1G字节),由地址A31、A30决定。

需要注意:3区(A31A30=01 #40000000~#7FFFFFFF)为外部存储器空间。外部存储器接口(EMI)把它又分为4组,不同的外部存储器和外部设备可以映射到其中。这4组中组0、组1和组3是通用存储器组,每一个都可以通过有关寄存器的设置来选择时序;组0和组1可以选择DRAM型或SRAM型器件,组3仅支持SRAM型器件。EMI组2(#60000000~#6FFFFFFF)指定与MPEG音视频解码芯片接口。它提供4个选通信号:两个MPEG解码器IC的片选notCS0-1;两个解码器压缩数据选通信号notCDSTRB0-1。其中notCS0-1用来请求一个MPEG解码器寄存器存取周期,而notCDSTRB0-1用来请求压缩数据写周期。这4个选通信号有效与否取决于组2的地址范围,也就是说可以依靠地址来区分不同的MPEG解码器及同一MPEG解码器的寄存器和压缩数据接收FIFO。此外,为了与各种速度的MPEG解码器件接口,当选择不同地址时,notCS0-1可以有不同的时序(可分别插入1~4个等待状态)。

3 软件编程

在机顶盒这种实时系统中,由于CPU要同时对解复用、视频解码、音频解码等多个方面的事件进行处理,其中既有通信问题,又有同步等问题。因而有必要采取多任务多进程实时操作系统的方式。应用程序可以被分割成多个相对独立的任务共享系统资源。本课题软件开发中使用的实时操作系统是ST公司的STLite/OS20。该操作系统已提供的内容包括:较完整的实时操作系统软件、部分硬件驱动和部分testtool命令。能够实现的功能包括:各种接口功能,如I2C、UART等;MPEG和AC-3音频解码、MPEG视频解码和显示、基本流解复用、section滤波、OSD测试功能、时钟恢复和SD输出等。具体如图1所示。


需要开发的部分主要有:新增加和变动的硬件模块的驱动、前端或LVDS输入的控制、节目操作和管理模块软件的开发。节目操作的软件开发中,节目信息的获取、分析、保存和更新及节目数据库的操作是非常关键的部分,这是因为:一方面,它与前端或LVDS输入模块、解复用模块、音、视频解码模块等硬件驱动层都有很大的联系;另一方面,要实现机顶盒的音、视频解码功能,就必须从码流中找到所有基本流的PID,需要对节目特定信息(PSI)进行提取和分析。 PSI(Program Specific Information)节目特殊信息包含了解码器端解复用所需要的数据。在MPEG-2系统层标准中,每路数字节目都包含一个或多个基本流,每个基本流都分配了一个PID值作为标记。节目、基本流或其中的部分内容可能会被加密,但是PSI信息作为解码的前提是不会被加密的。

传输流中的PSI信息可以分成四种表的结构,每种表又可以分成多个section。这四种表分别为:节目组合表PAT(Program Association Table)、节目映射表PMT(Program Map Table)、有条件接收表CAT(Conditional Access Table)和网络信息表NIT(Network Information Table)&#65377AT包含了所有的节目号及其相关PMT的PID值MT给出PAT表中列出的所有节目的基本流PID信息;CAT的任务在于准备解密数据组用的信息(加密系统的标识、存取权的分配及各码序的发送);NIT可以传送网络数据和频带、转发信号、通带宽度等参数,MPEG对此表的内容没有做详细规定。每个TS流中都应该有PAT表,因为所有PMT和NIT表的PID值都在PAT表中给出,PAT的PID固定为0x0000,当PAT表内容更新时,表中的版本号version_number会增1。当TS流中有一个或多个基本流被加扰,则需要在TS流里传送一个PID值固定为 0x0001的CAT,提供有关加扰了的流的信息&#65377MT也是TS流中所必需的表,它包含了各个节目的基本流PID信息,这是解复用必不可少的,PMT的PID在PAT中给出。NIT表在TS流里不是必需的,它的内容属于私有数据表(private),如果TS流里存在NIT表,则它的PID值由PAT的内容提供,且TS流中应包含若干个private section。ISO/IEC 13818-1 MPEG-2系统层标准中关于PSI信息定义了四个section结构,分别代表四个表的信息数据结构。这四个 section 结构分别为rogram Association Section、Conditional Access Section、Transport Stream Program Map Section和Private Section。对各表信息的分析实际是对这些section结构的内容进行分析。

对符合MPEG-2标准的传输流进行音、视频解码前必须先经过解复用分出音、视频基本流。为了可以解复用分出音、视频基本流,首先要分析PSI表的各 Section并从中提取基本流PID信息。寻找基本流PID主要对PAT和PMT两个表进行处理。这两个表与基本流PID的关系可以用图2表示。



解复用的过程是这样的:首先,得到完整的PAT表,根据PAT的Section结构找到所有的节目号和各节目号所对应的PMT PID;然后,分别对PAT中列出的每一个节目进行如下操作:根据该节目的PMT PID得到PMT表中对应节目号的Section,按照PMT Section的结构进行分析,进而找到所有该节目的基本流PID值加以保存。

下面以加入新频道为例,简要介绍分析PAT和PMT得到解复用所需的各基本流PID信息的过程。首先,系统会发来一个消息,要求分析最新版本的PAT,调用相应函数(PSI_ProcessForPAT)得到PAT后,调用PAT分析函数?如图3 得到各节目对应的PMT表的信息,并将信息存入指定的数据结构中;然后此任务向系统发一个消息,通知系统PAT分析完毕;接着,按照数据结构中各PMT的PID,系统会依次向本任务发送要求分析各PMT表的消息。本任务在调用相应函数(PSI_ProcessForPMT)得到所需PMT表后调用分析PMT表的函数(如图3)进行分析,得到各个基本流信息的PID,并将信息存入指定的数据结构中保存,发送消息通知系统PMT分析完毕;最后,如果需要,系统会发消息要求分析其他PSI信息,分析过程类似。


得到各基本流信息的PID后,要选择此频道的哪一个节目,只要调用驱动程序提供的pti_set_pid(pid)和pti_set_pcr_pid?pcr_pid 分别设置节目相对应的音视频PID和PCR_PID就可以驱动硬件解码了。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

公告:服务器刚移机,
大家请不要下载东西。
会下载失败


Copyright ©2011-2024 NTpcb.com All Right Reserved.  Powered by Discuz! (NTpcb)

本站信息均由会员发表,不代表NTpcb立场,如侵犯了您的权利请发帖投诉

( 闽ICP备2024076463号-1 ) 论坛技术支持QQ群171867948 ,论坛问题,充值问题请联系QQ1308068381

平平安安
TOP
快速回复 返回顶部 返回列表