serena

视频数据处理解码

0
阅读(2952)

视频采集输出进入FPGA的是CCIR656标准的串行YCrCb(4:2:2)视频数据。我们需要对视频数据进行ITUR656解码。ITUR656解码程序主要完成以下工作:

(1) 串行数据转化为并行数据;

(2) 对YCrCb(4:2:2)视频数据进行插值,得到YCrCb(4:4:4)视频数据;

(3) 对27MHz时钟分频得到13.5MHz的像素时钟。

ITUR656解码主要分两个大部分,一部分为时序设计,另一部分为结果仿真部分。

一、 时序设计部分

第1步:根据SAV字节,判断有效数据的开始。

525 60场的CCIR656标准的行数据流格式.jpg

由上图可知,当连续三个字节为FF0000,而紧接着一个字节的第四位为0时,意味着接下来的就是有效数据了。本系统使用移位寄存器R1,R2,R3,将连续的三个字节数据存放在R1,R2,R3中。当R3,R2和R1的值为FF0000,即可知SAV或EAV的到来,接着的判断第四个字节的数据的第四位,若为0,即表示有效数据开始(START信号)。

第2步:对YCrCb(4:2:2)插值,得到YCrCb(4:4:4)数据和13.5MHz的像素时钟。

在一行4:2:2的YCrCb的视频数据中,采样时钟为27MHz,亮度Y有720个,色度Cb,Cr各360个。即Y的采样时钟为13.5MHz,Cb,Cr的采样时钟为6.25MHz。在4个27MHz CLOCK中Y 被改变了2次,而Cb,Cr被赋值一次。读的时候读两次就变4:4:4,而像素时钟变为13.5MHz 。

第3步:对获取到的YCrCb(4:4:4)数据进行解交织处理。

由于获取的视频是隔行扫描的,需要进行解交织处理。本系统中的解交织是将一行数据读取两次,变成两行数据。这样,一场就变成两场。要将一行变成两行,我们将TD_HS进行倍频,生成HSX2。本系统倍频的实现是通过在TD_HS的起始和中间插入两个低脉冲来实现的。然后将YCbCr以13.5MHz的时钟分别写入到三个1K字节的双口RAM中,同时以27MHz的时钟读取出来。这样,重复一行的数据,将一行变成两行,实现了解交织。

二、 仿真结果

上述时序设计,在Quartus II下用逻辑分析仪进行了观察。下图1为判断SAV信号的时序图,START表示有效数据的开始。图2为HS和HSX2时序关系图

判断SAV信号的时序图.jpg

图1 判断SAV信号的时序图

HS HSx2信号.JPG

图2 HS HSX2信号时序

视频采集输出进入FPGA的是CCIR656标准的串行YCrCb(4:2:2)视频数据。我们需要对视频数据进行ITUR656解码。ITUR656解码程序主要完成以下工作:

(1) 串行数据转化为并行数据;

(2) 对YCrCb(4:2:2)视频数据进行插值,得到YCrCb(4:4:4)视频数据;

(3) 对27MHz时钟分频得到13.5MHz的像素时钟。

ITUR656解码主要分两个大部分,一部分为时序设计,另一部分为结果仿真部分。

一、 时序设计部分

第1步:根据SAV字节,判断有效数据的开始。

525 60场的CCIR656标准的行数据流格式.jpg

由上图可知,当连续三个字节为FF0000,而紧接着一个字节的第四位为0时,意味着接下来的就是有效数据了。本系统使用移位寄存器R1,R2,R3,将连续的三个字节数据存放在R1,R2,R3中。当R3,R2和R1的值为FF0000,即可知SAV或EAV的到来,接着的判断第四个字节的数据的第四位,若为0,即表示有效数据开始(START信号)。

第2步:对YCrCb(4:2:2)插值,得到YCrCb(4:4:4)数据和13.5MHz的像素时钟。

在一行4:2:2的YCrCb的视频数据中,采样时钟为27MHz,亮度Y有720个,色度Cb,Cr各360个。即Y的采样时钟为13.5MHz,Cb,Cr的采样时钟为6.25MHz。在4个27MHz CLOCK中Y 被改变了2次,而Cb,Cr被赋值一次。读的时候读两次就变4:4:4,而像素时钟变为13.5MHz 。

第3步:对获取到的YCrCb(4:4:4)数据进行解交织处理。

由于获取的视频是隔行扫描的,需要进行解交织处理。本系统中的解交织是将一行数据读取两次,变成两行数据。这样,一场就变成两场。要将一行变成两行,我们将TD_HS进行倍频,生成HSX2。本系统倍频的实现是通过在TD_HS的起始和中间插入两个低脉冲来实现的。然后将YCbCr以13.5MHz的时钟分别写入到三个1K字节的双口RAM中,同时以27MHz的时钟读取出来。这样,重复一行的数据,将一行变成两行,实现了解交织。

二、 仿真结果

上述时序设计,在Quartus II下用逻辑分析仪进行了观察。下图1为判断SAV信号的时序图,START表示有效数据的开始。图2为HS和HSX2时序关系图

判断SAV信号的时序图.jpg

图1 判断SAV信号的时序图

HS HSx2信号.JPG

图2 HS HSX2信号时序

(转自Altera FPGA小组,作者:youzizhile )