5. 视频处理子系统 (VPSS)
DM6437 VPSS提供一个VPFE输入接口,连接外部设备如图像传感器,视频解码器等,以及一个VPBE输出接口,连接显示设备,如analog SDTV显示器,数字LCD面板,HDTV视频编码器等。VPSS相关寄存器有PID,PCR(VPSS control reg)等。
a. VPFE
VPFE包括CCD控制器(CCDC),Preview Engine, Resizer, Hardware 3A(H3A) Statistic Generator, Histogram blocks. 这些模块给DM6437提供了灵活有力的前端接口,大致描述如下:
> CCDC提供一个图像传感器和数字视频源接口
> Preview Engine是一个带参数的硬件图像处理模块,它用于原始彩色数据的转换:从Bayer类型转换到YUV422
> Resizer模块缩放输入图像数据,以满足显示播放霍视频编码程序希望的分辨率
> H3A模块控制Auto Focus(AF),Auto White Balance(AWB), Auto Exposure(AE)
> 直方图模块处理彩色象素获取统计信息,提供给H3A模块实现各种3A算法,以平滑最终的输出图像/视频
VPFE相关寄存器有: CCDC(controller), PREV(preview engine/image signal processor), RESZ(resizer), HIST(Histogram), H3A(AF/AWB/AE), VPSS(VPSS Shared Buffer Logic Reg)
CCDC:
CCDC从传感器(CMOS,CCD)接收图像/视频数据或从视频解码器设备接收各种格式的YUV数据。这个模块支持以下功能特征:
> 常用的Bayer类型格式
> 产生HD/VD计时信号
> 提供至逐行和隔行传感器的接口
> 支持REC656/CCIR-656 标准(YCbCr 4:2:2 format, either 8- or 16-bit).
> 支持YCbCr 4:2:2格式,8- 或16-bit的离散H和VSYNC信号
> 支持高达16-bit的输入
> 快门信号控制
> Digital clamping and black level compensation.
> 支持10-bit到8-bit的A-law压缩
> 写SDRAM前做低通滤波。如果此滤波功能被启用,则输出图像每行最左右2个象素点被裁剪掉了
> 输出数据范围从16-bit到8-bit(按8-bit输出要节省一半的存储空间)
> 支持可编程的下采样
> 通过一个外部写使能信号控制向DDR2的输出
> 水平和垂直方向都支持高达16k象素的图像尺寸
CCDC相关寄存器的内存映射212,没有位域说明。
Preview Engine:
Preview Engine将来自传感器(CMOS/CCD)的未压缩的原始图像/视频数据转变成YCbCr 4:2:2数据。Preview Engine的输出可以用于视频压缩和外部显示设备,如NTSC/PAL模拟编码器或数字LCD显示。总括支持以下特点:
> 接受传统的Bayer类型格式(Bayer pattern formats是什么格式?)
> 获取来自CCD/CMOS控制器或DDR2内存的图像/视频数据
> 支持1280象素宽的输出
> 若执行边界处理,可实现自动/强制的象素/行裁剪。如果所有相应模块被使能,则输出图像的左右各7列象素及上下各4行象素被裁剪
> 对超过1280象素宽度的输入图像做简单的水平均值化(均值因子2,4或8)
> 捕捉Dark帧存储到DDR2
> 从DDR2获取Dark Frame,对每个输入的原始帧数据做Dark帧减操作,逐象素的改善视频帧质量
> 镜头阴影补偿。每个输入象素乘以一个相应的8-bit增益值,结果做右移处理,右移位数可编程(0-7 bits)
> 通过A-LAW解压缩将8-bit非线性数据转换成10-bit的线性数据。这个特性使得保存至DDR2的数据可以是8-bit宽,由此若从DDR2读取数据到preview engine,则可以节省一般的空间
> 通过水平均值滤波来减小温度变化导致的象素噪声
> 支持可编程的噪声滤波器
> 支持数字增益与白平衡
> 可编程的CFA插值,一次操作5x5的象素块
> 常规的Bayer pattern RGB和带补偿的色度传感器
> 支持图像水平和垂直方向下采样,采样比率为2
> 可编程的RGB-to-RGB混合矩阵(3x3矩阵的9个系数)
> 支持可编程的伽马纠正
> 可编程的颜色分量转换(RGB to YUV)系数(3x3矩阵的9个系数)
> 支持亮度分量增强(非线性)以及色度分量抑制和偏移处理
Preview Engine相关寄存器地址映射214。
Resizer:
resizer模块可以从preview engine或DDR2接收图像/视频数据,输出发送到DDR2. 支持以下特性:
> 输出水平象素宽度达1280
> 从外部DDR2接收输入
> 支持高达4倍的上采样(图像数字变焦)
> 支持Bi-cubic插值(4-tap水平,4-tap垂直),滤波器系数可编程实现
> 支持8阶滤波系数
> 支持色度分量的双线性插值
> 支持高达1/4x的下采样
> 8阶的4-tap水平和4-tap垂直滤波系数做1x至1/2x的下采样
> 对YUV 4:2:2的16-bit打包数据或DDR内连续的8-bit的独立颜色分量数据做缩放处理
> 支持水平和垂直方向独立的缩放尺度因子
> 支持的上/下采样率: 256/N (N从64到1024)
> 水平缩放后和垂直缩放前,可对亮度分量做可编程的锐化处理
Resizer相关的寄存器地址映射215.
Hardware 3A(H3A):
H3A模块提供对自动对焦AF,自动白平衡AWB和自动曝光AE的循环控制,该模块包含2个主要部分:AF引擎和AE&AWB引擎。
AF引擎从输入图像/视频数据中提取红/绿/蓝数据并做滤波,并针对特点范围的数据段提供累加或峰值数据,这个特点范围的数据段是一个2维的数据块,在AF中称为"paxel".
AE/AWB引擎对视频数据的亚抽样提供累加值并对其饱和值做检查。在AE/AWB中这个2维数据块称为"window". AF paxel及AE/AWB window的数目、维数和起始点位置可分别编程决定。
H3A相关寄存器地址映射以及各个模块支持的特性216.
Histogram:
Histogram模块接收原始图像/视频数据,对象素值(和颜色独立分量)做直方图处理。象素值本身不做存储,但是每个直方图bin包含该级灰度值象素的数目。Histogram接收的原始数据通常来自CCD/CMOS传感器(通过CCDC模块)或来自DDR2,可以选择而定。Histogram模块相关特性及寄存器地址映射218。
b. VPBE
VPBE包含On-Screen Display(OSD)模块,带数字LCD和模拟DAC接口的Video Encoder(VENC)。VENC生成模拟视频输出。DLCD控制器产生数字RGB/YCbCr输出数据及时间信号。VPBE相关寄存器有PID及PCR(设备控制寄存器)
为了确保NTSC和PAL与输出视频兼容,输入时钟源的稳定性非常重要。TI推荐的时钟源晶振是27-MHz,50-ppm.不建议使用陶瓷振荡器。NTSC/PAL副载波频率由27-MHz时钟源导出,因此,如果27-MHz时钟源发生漂移,则NTSC/PAL颜色分量副载波频率也会发生漂移。为确保颜色分量副载波频率不会漂移太严重,必须满足输入晶振的需要。若不采用27M时钟源,改用VPBECLK或VPFE时钟源作为输入,则必须保证这些输入时钟频率的稳定性在±50 ppm范围内,以确保NTSC/PAL与输出视频兼容。
OSD:
OSD模块的主要功能是先收集和调配视频数据及display/bitmap数据,然后以YCbCr格式将数据送入VENC。视频及display/bitmap数据从外部内存读入,通常如DDR2。OSD可以通过控制和参数寄存器进行编程配置。支持以下特性:
> 支持同时显示两个视频窗口和两个OSD窗口(VIDWIN0/VIDWIN1 and OSDWIN0/OSDWIN1)
>>每个窗口分别使能
>>每个窗口的高、宽、起始点坐标都可编程
>>每个窗口均有外部内存地址和偏移寄存器可配置
>>支持水平和垂直方向x2 和 x4 缩放
>>OSDWIN1可以用作OSDWIN0的特性窗
>>每个窗都支持帧/场(interlaced/progressive)模式
>>OSD和视频窗口都支持VGA到NTSC/PAL(640x480 to 720x576)的缩放处理
>>从外部内存读取422的YCbCr数据,并可以按32-bit字交换CbCr分量的顺序(与两视频窗口相关)
>>VIDWIN0窗支持乒乓buffer操作(可以从DDR2的两个不同地址读取视频数据)
>>每个OSD窗口(不能两个同时)都能够读取RGB数据(16-bitRGB565数据),但不能读取严格限制在最大8-bit的YCbCr格式位图数据
>>OSD位图数据宽度在1,2,4,8-bit中可选
>>通过VPBE的wrapper接口间接支持24-bit RGB数据输入(会被转换成16-bit YCbCr视频窗口数据)
>支持矩形光标窗口和可编程的背景颜色选择
>>显示优先顺序为:矩形光标框 > OSDWIN1 > OSDWIN0 > VIDWIN1 > VIDWIN0 > background color
OSD模块存在以下限制:
>两个OSD窗口及VIDWIN1都应该完全包含在VIDWIN0中
>当一个OSD窗口被设置成RGB模式,则它不能与VIDWIN1窗口重叠
>OSD只可读取YCbCr 4:2:2隔行数据,其他格式,独立存储的颜色分量数据或4:4:4/4:2:0隔行数据不被支持
>如果有一个视频窗口的垂直缩放滤波器被使能,则最大水平窗口宽不能超过720
>不能同时使用两个CLUT ROMs,但是可以一个窗口使用RAM,同时另一个使用ROM
>24-bit RGB输入模式只对两个视频窗之一有效(具体对哪个可编程决定),不能用于OSD窗口
OSD相关寄存器映射223。
VENC:
VENC的模拟/DACs接口支持以下特性:
> Master时钟输入27MHz(x2 Upsampling)
> SDTV支持:
>>Composite NTSC-M, PAL-B/D/G/H/I
>>S-Video (Y/C)
>>Component YPbPr (SMPTE/EBU N10, Betacam, MII)
>>RGB
>>non-interlace
>>CGMS/WSS
>>可编程的SC-H phase
>HDTV支持:
>>逐行输出(525p/625p)
>>Component YPbPr
>>RGB
>>CGMS/WSS
>4个10-bit over-sampling D/A转换器
>可编程的Luma延时
>Master/Slave 操作
>Internal Color Bar Generation (100%/75%)
VENC的数字LCD控制器(DLCD)支持以下特性:
> 可编程的DCLK
> 多种输出格式: YCbCr 16bit/ YCbCr 8bit/ ITU-R BT. 656/ parallel RGB 24bit
> 数字RGB输出的低通滤波
> 可编程的时间信号发生器
> Master/Slave 操作
> Internal Color Bar Generation (100%/75%)
VENC寄存器映射包括数字LCD和DACs 225.