前言:LCD TV属于高整合性电子产品,它覆盖了算法、软件、韧体、硬件、芯片、无线射频等领域,且许多专利仍是属于欧美公司或机构所拥有。LCD TV除了包含网络通信的功能以外,还包括OSD和缩放控制器、屏幕驱动等功能,其技术复杂度高。本文将介绍LCD TV的视频解码器技术。
与LCD TV相近的,应该是数字机顶盒(digital STB),不过,前者的技术复杂度又远远超过后者,因为LCD TV或HDTV除了包含了网络通信的功能以外,还包括OSD和缩放控制器(scalar)、屏幕驱动等功能。所以,即使设计过STB的人,也不能随便说LCD TV或HDTV的技术很简单。

LCD TV的硬件架构
点击放大
图一 LCD TV的硬件架构

 (图一)是LCD TV的硬件架构示意图。其中,比较重要的影音单元有:中央处理器、视频解码器(video decoder)、射频调谐器(RF tuner)、频道解调器(channel demodulator/decoder)、音频编解码器(audio codec)。此外,还可能包含一般常见的I/O接口与装置,例如:USB、1394、蓝牙、WLAN、IrDA、MMC/SD/CF、以太网络、数码相机、DSL或调制解调器(cable modem)、PDA等。

■视频解码器 (图二)是一个LCD TV/HDTV视频解码器与相邻芯片的间的关系。它具有下列的主要功能:
(1)可程序化的像素(pixel)输出端口:由8至30个位来决定像素的YCbCr/RGB的比例例如:4:2:2或4:4:4;
(2)支持外部的射频调谐器,具有10-bit的数字基带合成(composite)视频输入单元; (3)自动辨认和处理VCR或数字电视频道; (4)通过像素输出端口支持垂直空白间隔(vertical blank interval;VBI)数据的输出,可以用来传送字幕(closed caption;CC)资料,例如:传输实时的股市行情。其它VBI资料可以通过I2C接口传输,例如:版权产生管理系统(copy generation management system;CGMS)、宽屏幕信号(wide screen signalling)、增强分辨率电视(enhanced definition television;EDTV)、CC字幕、延伸数据服务(extended data service;XDS); (5)支持全球现有的多种色彩格式: * PAL B/D/I/G/H、PAL60、PAL M、PAL N、PAL Nc * NTSC M/J、NTSC 4.43 * SECAM B/D/G/K/L * NTSC正方像素(square pixel) (6)支持HDTV的所有输入信号,例如:525p、625p、720p和1080i,以及其它高分辨率(HD)和SMPTE(Society of Motion Picture Engineers)标准。也支持标准分辨率(SD); (7)除支持CVBS、S-Video、YPbPr、RGB以外,还支持五线的YPbPrHV/RGBHV和CSync,如(图三)。
点击放大
图二 视频解码器的位置

点击放大
图三 支持多种视频输入格式

* 视频码流的路径
(图四)是一个简易的LCD TV或数字电视接收系统的架构。它包含了上述的硬件架构,也包括了必需的软件。
点击放大
图四 简易的LCD TV系统架构

从调谐器、解调器传来的MPEG-2传输码流(transport stream;TS),经过解复用(demultiplexer)后,可以得到视频、音频、数据、子标题(subtitle)或字幕等不同的信号,再经过视频解码器(例如:MPEG-2/4或H.264)、音频解码器,得到的资料是最原始的(raw)资料。这些资料会被中央处理器送到适当的通信协议层,例如:V4L2、RTP/RTCP/RTSP、HTTP、Java应用程序等,的后通过回传通道(return channel),例如:以太网络,将这些资料送到网络上;或送至OSD、音频DAC,交给LCD和扬声器播放。 没错,数字机顶盒也具有上述的类似功能。它和LCD TV一样也都具有有条件接收(conditional access;CA)的功能。只不过,LCD TV的屏幕都是内建的,而且,一般的数字机顶盒只能通过单一的路径来取得视频,但是,LCD TV可能可以通过4种不同的路径来取得视频,这包含:卫星数字、数字地面、网络、有线数字电视。不过,就交互式电视的软件而言,数字机顶盒和LCD TV的软件是非常类似的,甚至是一样的。
在设备驱动程序(device driver)层,为了能播放数字电视信号,LCD TV的I/O端口必须要有LCD驱动程序(能够设定OSD和scalar)和音频驱动程序。为了能将互动信息传送至网络上,它也需要以太驱动程序和DSL(或有线电视)调制解调器驱动程序。外部装置也可以通过IrDA或I2C、SPI、UART等接口,将资料送给LCD TV处理。此外,接收端的视频/音频解码器的驱动程序也位于这一层。
有许多工程师不了解LCD TV或数字机顶盒的视频资料流(data flow)的行动路径,因此经常造成除错上的困扰,尤其是在经过视频解码器后,信号应交给中央处理器处理,而不是其它组件。同理,如果在图四中的信号来源换成是以太网络,而不是射频天线,在经过视频解码器解码的后的信号仍应交给中央处理器。此外,在图四中,不管是MPEG-2 TS或PS/PES,都可以将它们视为最底层的数字资料封包,其地位和角色皆如同以太封包一样,有别于模拟信号。

■解码引擎
由于视频、音频格式的多样化使用单一的解码器已经无法满足这么多的需求。于是有所谓的解码引擎(decodeengine)它可能是
一颗RISC或DSP,负责重置、停止、加载和激活韧体或微码(microcode),并处理所有与码流解码无关的工作,例如:输出声音。
每个解码引擎内部具有数个解码器,负责下列的工作:
(1)开启或关闭单一码流; (2)传送命令。例如:初始化、解除初始化、播放、暂停、停止等; (3)取得目前的状态信息。例如:播放中、已暂停等; (4)各种码流独有的特性。例如:资料格式等。
在这些RISC或DSP内部都具有许多个硬件模块,而每一个模块都具有特定的实体功能;这些功能通常可以利用寄存器(register)来设定。一般而言,这些RISC或DSP会包含下列的硬件模块:
(1)解多任务(demux)引擎:同时对视频和音频分工; (2)MPEG引擎:是一个视频DSP,内含一个视频解码器和一个子图像(subpicture)解码器; (3)音频引擎:是一个音频DSP,内含两个音频解码器和一个混频器(mixer); (4)中央处理器:CPU核心、DMA、中断处理单元。
这些RISC或DSP的软件模块是利用硬件模块来产生「执行绪(task)」。例如下列的软件模块:
(1)系统区块:PLL初始化、DRAM设定等; (2)图形加速引擎:使用图形加速命令所控制的FIFO,来加快处理速度; (3)字幕解码模块:软件的字幕解码单元; (4)I2C:软件的I2C接口,为可程序化的输出入端口(PIO); (5)内存管理模块:DRAM的配置。
■解码引擎的驱动程序 通常,视频解码引擎的驱动程序会包含下列几个单元,如(图五):
(1)与操作系统和芯片无关的应用程序接口(API):控制寄存器和DRAM的存取; (2)硬件抽象层链接库:与硬件相关,可通过XML语言来设定它,以适应特定的芯片。它不包含与操作系统相关的API,只会呼叫与操作系统和芯片无关的API; (3)最少的核心模块:它在上述(1)的上方,负责存取寄存器和处理DMA,并且处理OS核心的全部作业,例如:IRQ处理、DMA配置等; (4)核心模块:它呼叫最少的核心模块,以存取硬件。

点击放大
图五 视频解码引擎的驱动程序架构

■内存的配置
内存配置是在开发视频解码装置时,必须特别考量的。(图六)是典型的视频解码器的内存配置;(表一)是各种视频格式在解码时所需要的内存大小。
配置内存时,必须避免分割太小和太多。务必先配置大的、长时间使用的缓冲空间(buffer);在进行多信道播放时,应避免不必要的配置或释放缓冲空间。
点击放大
图六视频解码器的内存配置

点击放大
表一 各种视频格式的内存需求

完结....