- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
LCD TV视频解码器技术概述
CD TV属于高整合性电子产品,它涵盖了演算法、软体、韧体、硬体、晶片、无线射频等领域,且许多专利仍是属于国外大厂或机构所拥有。LCD TV除了包含了网路通信的功能以外,还包括OSD和缩放控制器、萤幕驱动等功能,其技术复杂度高。本文将介绍LCD TV之视频解码器技术。
就技术层面而言,LCD TV是属于高整合性的电子产品。它涵盖了演算法、软件、韧体、硬件、晶片、无线射频等领域,而且有许多专利是属于国外大厂或机构所拥有。目前国内很缺乏熟悉这块领域的系统整合人才。曾经有一家大型的外商公司过去两年多以来一直在台湾寻找这方面的资深研发人才,想拔擢这些人来担任他们大中华地区的资深FAE。可惜至今这些外商公司仍然找不到合适的人选。
目前即使在先进国家,由于LCD TV或HDTV仍然属于最新的产品,熟悉这块领域的技术人才,其实也不多。与之相近的,应该是数字机顶盒(digital STB),不过,前者的技术复杂度又远远超过后者,因为LCD TV或HDTV除了包含了网路通信的功能以外,还包括OSD和缩放控制器(scalar)、萤幕驱动等功能。所以,即使设计过STB的人,也不敢随便说LCD TV或HDTV的技术很简单。
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的硬件架构
■视频解码器
(图二)是一个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,都可以将它们视为最底层的数字资料封包,其地位和角色皆如同乙太封包一样,有别于模拟信号。
■解码引擎
由于视频、音频格式的多样化,使用单一的解码器已经无法满足这么多的需求。于是有所谓的解码引擎(decode engine),它可能是一颗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);在进行多通道播放时,应避免不必要的配置或释放缓冲空间。
图六 视频解码器的记忆体配置
表一 各种视频格式的记忆体需求