差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录 前一修订版
后一修订版
前一修订版
上一修订版 两侧同时换到之后的修订记录
book_excise_video_if [2021/08/24 11:24]
zili
book_excise_video_if [2021/08/24 11:37]
zili
行 16: 行 16:
 目前主流的模拟彩色电视标准分为PAL、NTSC和SECAM三种。 每一种标准对应的CVBS信号的格式又各不相同,所以在模拟领域各种标准之间电视节目互相转换比较困难,为了方便各个标准的节目的交换,国际无线电咨询委员会就制定了相应的数字标准,具体将在章节2.2内介绍。 目前主流的模拟彩色电视标准分为PAL、NTSC和SECAM三种。 每一种标准对应的CVBS信号的格式又各不相同,所以在模拟领域各种标准之间电视节目互相转换比较困难,为了方便各个标准的节目的交换,国际无线电咨询委员会就制定了相应的数字标准,具体将在章节2.2内介绍。
  
 +#### 2.1 ITU-R 601和ITU-R 656数字电视标准
  
 +##### 2.1.1 ITU-R 601介绍
 +1982年CCIR(International Radio Consultative Committee国际无线电咨询委员会)制定了彩色视频数字化标准,称为CCIR601标准,现改为ITU-R 601标准。该标准规定了彩色视频转换成数字图像时使用的采样频率,RGB和YCbCr两个彩色空间之间的转换关系等。
 +为了便于国际间的节目交换,为消除数字设备之间的制式差别,以及为了 625行电视系统(PAL)与 525行电视系统(NTSC)之间兼容,向着数字电视广播系统参数统一化、标准化迈出,在 1982年2月国际无线电咨询委员会(CCIR)第15次全会上,通过了601号建议,确定以分量编码为基础,即以亮度分量Y和两个色差分量R-Y、B-Y为基础进行编码,作为电视演播室数字编码的国际标准,601号建议单独规定了电视演播室的编码标准。该标准规定:
 +➢ 不论是PAL制,还是 NTSC制电视,Y、R-Y、B-Y三分量的抽样频率分别为13.5MHz、6.75MHz、6.75MHz。
 +➢ 抽样后采用线性量化,同时规定了每个样点的量化比特数,用于演播室的量化位数为10bit,用于传输为8bit。
 +➢ Y、R-Y、B-Y三分量样点之间比例为4:​2:​2。亮度信号的抽样频率为13.5MHz,每个色差信号的抽样频率为6.75MHz,其抽样频率之比为4:​2:​2,或者说,每数字有效行亮度信号的取样点数是720个,而每个色差信号的取样点数是360个,其取样点数之比也为4:​2:​2,这就是数字分量编码的4:​2:​2标准,也称为4:​2:​2格式,用作演播室数字设备及其联接或国际节目交换时的数字化标准。如图 19-2所示。
 +{{ :​图19-2.png |图19-2 4:​2:​2图像格式含义}}
 +<WRAP centeralign>​
 +**图19-2 4:​2:​2图像格式含义**
 +</​WRAP>​
  
 +➢ 进一步明确了模拟与数字行的对应关系,并规定从数字有效行末尾至基准时间样点的间隔,对 525行、60场/秒制式(NTSC)来说为16个样点,对625行、50场/​秒制式(PAL)则为12 个样点。不论625行/50场或525行/60场,其数字有效行的亮度样点数都是720,色差信号的样点数均是360,这是为了便于制式转换。若亮度样点数被2除,就得到色差信号的数据。
 +
 +##### 2.2.2 采样频率
 +为了保证信号的同步,采样频率必须是电视信号行频的倍数。CCIR为NTSC、PAL和SECAM制式制定的共同的电视图像采样标准:
 +<WRAP centeralign>​
 +**fs=13.5MHz**
 +</​WRAP>​
 +
 +这个采样频率正好是PAL、SECAM制行频的864倍,NTSC制行频的858倍,可以保证采样时采样时钟与行同步信号同步。对于4:​2:​2的采样格式,亮度信号用13.5MHz频率采样,两个色差信号分别用fs/2=6.75MHz的频率采样。除了标准的4:​2:​2格式之外,还有将色差信号的抽样频率取为3.375MHz的较低标准的4:​1:​1和4:​2:​0格式。另外还有为适合更高图像质量要求而将色差信号抽样频率取为13.5MHz的更高标准的4:​4:​4格式。 ​
 +
 +##### 2.2.3 分辨率 ​
 +根据采样频率,可算出对于PAL和SECAM制式,每一扫描行采样864个样本点;对于NTSC制则是858个样本点。由于电视信号中每一行都包括一定的同步信号和回扫信号,故有效的图像信号样本点并没有那么多,CCIR 601规定对所有的制式,其每一行的有效样本点数为720点。不同的制式其每帧的有效行数不同,PAL和SECAM制为576行,NTSC制为484行。
 +
 +##### 2.2.4 数据比特率
 +CCIR 601规定,每个样本点都按8位数字化,也即有256个等级。但实际上亮度信号占220级,色度信号占225级,其它位作同步、编码等控制用。如果按fs的采样率4:​2:​2的格式采样,则数字视频的数据比特率为:
 +<WRAP centeralign>​
 +**13.5(MHz)×8(bit)+2×6.75(MHz)×8(bit) = 27Mbyte/s**
 +</​WRAP>​
 +
 +##### 2.2.5 ITU-R BT.601与ITU-R BT.656的区别 ​
 +ITU-R BT.601是16位数据传输,Y、U、V信号同时传输。ITU-R BT.656是YUV串行传输,不需要同步信号,8位数据传输,传输速率是601的2倍,​先传Y,后传UV。656输出的是串行数据,行场同步信号嵌入在数据流中,也即是嵌入到图3所示的AV信号内,通过分析AV8bit数据可以得到行场同步信号;而601是并行数据,行场同步有单独输出。具体如图 19-3所示。其中行起始、结束的标准位为:FF 00 00 XX,根据该标准可以检出行同步。
 +{{ :​图19-3.jpg |图19-3 ​ ITU-R 601和ITU-R 656之间的区别}}
 +<WRAP centeralign>​
 +**图19-3 ​ ITU-R 601和ITU-R 656之间的区别**
 +</​WRAP>​
 +
 +##### 2.2.6 将视频信号从隔行扫描转为逐行扫描
 +隔行扫描就是每一帧被分割为两场,每一场包含了一帧中所有的奇数扫描行或者偶数扫描行,通常是先扫描奇数行得到第一场,然后扫描偶数行得到第二场。由于视觉暂留效应,人眼将会看到平滑的运动而不是闪动的半帧半帧的图像。模拟数字电视信号均是隔行扫描信号,而目前大部分VGA显示器均使用的是逐行扫描,而在本实验中需要在VGA显示数字化后的模拟电视信号,所以需要将电视信号从隔行转换为逐行扫描。具体转换算法有很多种,在不同场合适应不同算法,在此采用了一种最简单的隔行转为逐行的算法:就是通过简单的重复每一行,每一场扩大为完整的一帧。
 +
 +##### 2.2.7 ADV7181简介
 +ADV7181是美国ADI公司生产的一款低功耗的多功能数字视频解码芯片。它可以自动检测 NTSC、 PAL和 SECAM等标准的复合电视信号并将其转换为 16位或 8位的 IT U-R BT.656 YUV 4:​2:​2的视频数据输出格式。
 +
 +ADV7181内部共有 240个控制寄存器用来对该芯片的功能和状态进行设置和查询。这些寄存器的取值对ADV7181的功能和状态的影响的详细内容可以参考 ADV7181的数据手册。 ADV7181的寄存器的取值分为默认值和设置值。它对应芯片设计的初始化功能状态;默认值是芯片复位后的寄存器缺省取值,设置值是通过I2C总线配置方式对这些控制寄存器的默认值进行修改,以达到重新设定 ADV7181的各种功能的目的。具体的向ADV7181的读写时序如图 19-4所示,其中A(s)是传输8bit数据后的ACK信号,此时该信号应该被拉低。
 +
 +{{ :​图19-4.png |图19-4 ADV7181的读写时序}}
 +<WRAP centeralign>​
 +**图19-4 ADV7181的读写时序**
 +</​WRAP>​
  
 \\ \\
 \\ \\
 ### 3. 程序设计 ### 3. 程序设计
 +#### 3.1 总体架构
 +
 +整个程序由6个模块组成(图 19-5):\\
 +1. TE3_DVD2VGA是顶层模块,将各子模块实例化并连接各模块。\\
 +2. I2C_AV_Config模块负责配置ADV7181。\\
 +3. TV_to_VGA模块生成VGA所需的场合同步信号。\\
 +4. itu_r656_decoder模块根据ITU-R 656标准解码ADV7181给出的数据流,并将隔行扫描的信号转为逐行扫描的信号。\\
 +5. dul_port_c1024利用FPGA内部的双口RAM将一行信号重复转为两行信号。\\
 +6. YCbCr2RGB模块将YCbCr色度空间的数据转为RGB色度空间的数据。
 +
 +{{ :​图19-5.png |图19-5 程序总体架构}}
 +<WRAP centeralign>​
 +**图19-5 程序总体架构**
 +</​WRAP>​
 +
 +#### 3.2 TE3_DVD2VGA模块(TE3_DVD2VGA.v)
 +TE3_DVD2VGA是顶层模块,主要是起连接作用,将各个模块连接起来,其接口如下所示:
  
 +<code verilog> ​
  
 +input OSC_27;​ //​27 MHz时钟接口
 +input OSC_50;​ //​50 MHz时钟接口
 +input    RESET;​ //​全局复位信号
 +inout I2C_SDAT;​ //​I2C接口数据线
 +output I2C_SCLK;​ //​I2C接口时钟线
 +output VGA_CLK; ​  ​ //​VGA接口时钟信号
 +output VGA_HS;​ //​VGA接口行同步信号
 +output VGA_VS;​ //​VGA接口场同步信号
 +output VGA_BLANK;​ //​VGA接口场消隐信号
 +output VGA_SYNC;​ //​VGA接口同步信号
 +output [9:​0] VGA_R; ​  ​ //​VGA Red[9:0]
 +output [9:​0] VGA_G;​ //VGA Green[9:0]
 +output [9:​0] VGA_B; ​  ​ //​VGA Blue[9:0]
 +input [7:​0] TD_DATA; ​   //TV Decoder的8bit数据信号
 +input TD_HS;​ //​TV Decoder行同步信号
 +input TD_VS;​ //​TV Decoder场同步信号
 +output TD_RESET;​ //​TV Decoder复位信号
  
 +</​code>​
  
 \\ \\