发明内容
本发明以下结合附图描述了自动识别模拟输入信号的格式的系统和方法的一个或多个实施例。
根据本发明的一个方面,本发明提供了一种自动识别视频信号的格式的方法,所述视频信号包括水平同步(HSync)脉冲、垂直同步(VSync)脉冲和视频显示数据,所述方法包括:
接收视频信号;
从视频信号中提取HSync脉冲和VSync脉冲的时序和宽度特征;
根据提取出的信息确定视频信号的格式。
优选地,根据提取出的信息确定视频数据的格式包括:
将提取出的信息与多个不同格式的特征信息进行比较;
根据提取出的信息与选择的格式的特征信息的相关度来选择一个格式。
优选地,所述多个不同格式的特征信息包括与各个不同格式所使用的HSync脉冲的极性、VSync脉冲的极性、扫描线长度、每场的扫描线数目以及各个不同格式是否使用逐行或隔行扫描相关的信息。
优选地,所述方法进一步包括在从视频信号中提取HSync脉冲和VSync脉冲的时序和宽度信息之前,对接收到的信号的偏置电平进行归一化。
优选地,所述方法进一步包括在在从视频信号中提取HSync脉冲和VSync脉冲的时序和宽度信息之前,对接收到的信号的增益进行归一化。
优选地,所述视频信号是从标准清晰度ATSC(Advanced TelevisionSystems Committee,即高级电视系统委员会)视频信号和高清晰度ATSC视频信号中选出的,所述方法进一步包括根据提取出的信息确定所述信号的格式是否对应于标准清晰度信号或ATSC信号。
优选地,所述方法进一步包括:
通过低通滤波器对接收到的信号进行滤波;
通过匹配滤波器对接收到的信号进行滤波。
优选地,所述方法进一步包括通过匹配滤波器对接收到的信号进行滤波,其中所述匹配滤波器与预先确定的HSync脉冲宽度相匹配。
优选地,所述方法进一步包括配置视频解码器以处理输入的信号并以确定的格式输出输出信号给显示设备。
优选地,所述方法进一步包括:
通过低通滤波器对接收到的信号进行滤波;
对经过滤波后的信号的偏置电平进行归一化;
对经过偏置电平归一化的信号的第一增益进行归一化;
从经过第一增益归一化后的信号中提取关于HSync脉冲和VSync脉冲的特征的第一信息;
根据提取出的第一信息确定假设的第一格式;
对经过偏置电平归一化的信号的第二增益进行归一化;
用匹配滤波器对经过第二增益归一化的信号进行滤波,其中所述匹配滤波器与预先确定的HSync脉冲宽度相匹配;
从经过匹配滤波后的信号中提取关于HSync脉冲和VSync脉冲的特征的第二信息;
根据提取的第二信息确定假设的第二格式;
根据预先确定的查找表选择假设的第一格式或假设的第二格式作为所述输入信号的格式。
根据本发明的一个方面,本发明提供了一种自动识别视频信号的格式的系统,所述视频信号包括HSync脉冲、VSync脉冲和视频显示数据,所述系统包括:
第一偏置和补偿电路,用来接收视频信号并调节该信号的偏置电平和增益电平,以使调节后的输入信号的最小和最大电平符合预先确定的最小和最大电平;
第二偏置和补偿电路,用来接收视频信号并调节该信号的偏置电平和增益电平,以使调节后的输入信号的最小和最大电平符合预先确定的最小和最大电平;
匹配滤波器,接收经第二偏置和补偿电路调节后的输入信号,并经调谐后根据预先确定的接收信号内的HSync脉冲宽度来对接收信号滤波;
同步脉冲检测电路,用来检测经第一偏置和补偿电路调节后的输入信号中的HSync脉冲和VSync脉冲,并检测经过滤波后的信号中的HSync脉冲和VSync脉冲;
度量提取电路,用来提取与被检测的HSync脉冲和VSync脉冲的时序和宽度特征相关的信息;
格式识别电路,用来根据提取出的信息与预先确定的已知格式的特征的比较来识别视频信号的格式。
优选地,所述系统位于单个芯片上。
优选地,所述系统进一步包括用于在调节信号的偏置电平和增益电平之前对输入信号进行滤波的低通滤波器。
优选地,所述系统进一步包括:
用来检测经第一偏置和补偿电路调节后的输入信号中的HSync脉冲和VSync脉冲的第一同步脉冲检测电路,和用来检测经过滤波后的信号中的HSync脉冲和VSync脉冲的第二同步脉冲检测电路;
用来提取与被第一同步脉冲检测电路检测的HSync脉冲和VSync脉冲的时序和宽度特征相关的信息的第一度量提取电路,和用来提取与被第二同步脉冲检测电路检测的HSync脉冲和VSync脉冲的时序和宽度特征相关信息的第二度量提取电路;
用来根据提取出的与被第一同步脉冲检测电路检测的HSync脉冲和VSync脉冲的时间和宽度特征相关的信息与已知的第一格式的特征的比较来识别视频信号的格式的第一格式识别电路,和用来根据提取出的与被第二同步脉冲检测电路检测的HSync脉冲和VSync脉冲的时间和宽度特征相关的信息与已知的第二格式的特征的比较来识别视频信号的格式的第二格式识别电路。
优选地,所述已知的第二格式包括标准清晰度格式。
优选地,所述系统进一步包括用来在第一格式识别电路识别出的格式和第二格式识别电路识别出的格式之间进行仲裁的格式仲裁器。
优选地,所述预先确定的特征包括与不同的格式所使用的HSync脉冲的极性、VSync脉冲的极性、扫描线长度、每场的扫描线数目以及不同的格式是否采用逐行或隔行扫描相关的信息。
优选地,所述视频信号是从标准清晰度ATSC视频信号和高清晰度ATSC视频信号中选择出的,所述格式识别电路进一步根据提取出的信息确定信号的格式是对应于标准清晰度信号还是ATSC信号。
根据本发明的一个方面,本发明提供了一种自动识别视频信号的格式的系统,所述视频信号包括HSync脉冲、VSync脉冲和视频显示数据,所述系统包括:
第一偏置和补偿电路,用来接收视频信号并调节该信号的偏置电平和增益电平,以使调节后的输入信号的最小和最大电平符合预先确定的最小和最大电平;
第二偏置和补偿电路,用来接收视频信号并调节该信号的偏置电平和增益电平,以使调节后的输入信号的最小和最大电平符合预先确定的最小和最大电平;
滤波器,接收经第二偏置和补偿电路调节后的输入信号,并经调谐后根据预先确定的接收信号内的HSync脉冲宽度来对接收信号滤波;
用来检测经第一偏置和补偿电路调节后的输入信号中的HSync脉冲和VSync脉冲的第一同步脉冲检测电路,和用来检测经过滤波后的信号中的HSync脉冲和VSync脉冲的第二同步脉冲检测电路;
用来提取与被第一同步脉冲检测电路检测的HSync脉冲和VSync脉冲的时序和宽度特征相关的信息的第一度量提取电路,和用来提取与被第二同步脉冲检测电路检测的HSync脉冲和VSync脉冲的时序和宽度特征相关信息的第二度量提取电路;
用来根据提取出的与被第一同步脉冲检测电路检测的HSync脉冲和VSync脉冲的时间和宽度特征相关的信息与已知的第一格式的特征的比较来识别视频信号的格式的第一格式识别电路,和用来根据提取出的与被第二同步脉冲检测电路检测的HSync脉冲和VSync脉冲的时间和宽度特征相关的信息与已知的第二格式的特征的比较来识别视频信号的格式的第二格式识别电路。
优选地,所述第一格式识别电路识别高清晰度ATSC视频信号的格式,所述第二格式识别电路识别标准清晰度ATSC视频信号的格式。
具体实施方式
可由无线电磁信号或有线传输(例如,来自视频磁带记录器或来自个人电脑的处理器)的模拟视频信号携带着视频显示数据,该视频显示数据将被转换成显示装置上的视频图象。视频信号还携带有其它信息,告知显示硬件一帧的显示何时结束,下一帧何时开始,以及帧内一行扫描线的显示何时结束,下一扫描线何时开始。此信息可以垂直同步(“VSync”)脉冲和水平同步脉冲(“HSync”)脉冲的形式给出。不同视频格式信号具有不同的VSync和HSync脉冲时序和宽度特征,因此,精确地检测VSync和HSync脉冲的时序和宽度特征便可用来自动确定视频信号的格式。
图1是自动识别出模拟视频输入信号102的格式并根据识别出的输入格式输出视频信号给显示装置104的系统100的结构示意图。输入信号102发送到格式识别模块106,其可自动识别出输入的格式并将识别出的格式传送到处理器108。处理器108配置视频解码器(“VDEC”)110来处理输入信号102并以与显示装置104兼容的格式输出输出信号112给显示装置104。输出信号112可选地被一个或更多额外的视频处理器114处理。
表1(见下文)展示了17种不同的先进电视系统委员会(“ATSC”)模拟视频格式并给出了每种格式的特征信息。表的第一列列出了格式的名字。表的第二列列出了视频输出的帧率,此处的帧率是用每秒的时钟周期(Hz)来测量的。使用60Hz帧率的逐行扫描或30Hz的隔行扫描的格式通常适用于美国,使用50Hz帧率的逐行扫描或25Hz的隔行扫描的格式适用于欧洲。第三列列出了“象素时钟”(“pixel clock”)值,也就是显示各个象素的速率,以MHz为单位。象素时钟的值等于帧率和每条扫描线上的象素个数(列在第四列)以及每场的扫描线的条数(列在第七列)的乘积。第六列列出了扫描线周期,是对显示一条扫描线所需的时间(以微秒为单位)的度量,第九列是“扫描线的长度”,是显示出一条扫描线所需的108MHz的时钟周期的个数。第五列列出了“同步时间”(“sycn time”),它是对显示每条扫描线(一般是在扫描线的开始或结束)时HSync脉冲所占据的时间的度量,此值以象素时钟(第三列)的数目给出。第八列列出了“同步宽度”(sync width),它是以恒定的测量单位(108MHz时钟周期)度量的“同步时间”。因为至少一个独立于象素时钟的参数可将表1中的特定格式与列出的所有其它格式区别开来,对表1中给出的参数的测量可用来唯一地标识出表1中展示的17种不同的ATSC视频格式。
格式 |
帧率 |
象素时钟 |
象素/扫描线 |
同步时间 |
扫描线周期 |
扫描线/场 |
同步宽度 |
扫描线长度 |
逐行(PROG)/隔行(INT) |
H/V极性 |
1080p |
50 |
148.5 |
2376 |
66 |
16.000 |
1250 |
48 |
1728 |
PROG |
不适用 |
1080p |
50 |
148.5 |
2640 |
44 |
17.778 |
1125 |
32 |
1920 |
PROG |
1080p |
60 |
148.5 |
2200 |
44 |
14.815 |
1125 |
32 |
1600 |
PROG |
1080p |
30 |
74.25 |
2200 |
44 |
29.630 |
1125 |
64 |
3200 |
PROG |
1080p |
25 |
74.25 |
2640 |
44 |
35.556 |
1125 |
64 |
3840 |
PROG |
1080p |
24 |
74.25 |
2750 |
44 |
37.037 |
1125 |
64 |
4000 |
PROG |
720p |
50 |
74.25 |
1980 |
40 |
26.667 |
750 |
58 |
2880 |
PROG |
720p |
60 |
74.25 |
1650 |
40 |
22.222 |
750 |
58 |
2400 |
PROG |
1080i |
25 |
74.25 |
2376 |
66 |
32.000 |
625 |
96 |
3456 |
INT |
576p |
50 |
27 |
864 |
63 |
32.000 |
625 |
252 |
3456 |
PROG |
1080i |
25 |
74.25 |
2640 |
44 |
35.556 |
562/563 |
64 |
3840 |
INT |
1080i |
30 |
74.25 |
2200 |
44 |
29.630 |
562/563 |
64 |
3200 |
INT |
480p |
60 |
27 |
858 |
63 |
31.778 |
525 |
252 |
3432 |
PROG |
576i |
25 |
13.5 |
864 |
63 |
64.000 |
312/313 |
504 |
6912 |
INT |
288p |
25 |
13.5 |
864 |
63 |
64.000 |
313 |
504 |
6912 |
PROG |
480i |
30 |
13.5 |
858 |
63 |
63.556 |
262/263 |
504 |
6864 |
INT |
240p |
60 |
13.5 |
858 |
63 |
63.556 |
263 |
504 |
6864 |
PROG |
表1
表2(见下文)展示了32个不同的用来显示个人电脑(“PC”)视频格式的模拟信号视频格式并提供了与表1中给出的相似的关于每种格式的信息。此外,表2有两列列出了视频信号的VSync和HSync脉冲的极性。不同的格式可基于这些Sync脉冲的极性进行分组。例如,VSync和HSync脉冲的极性均为负的PC格式属于第一组。VSync脉冲的极性为正而HSync脉冲的极性为负的PC格式则属于第二组。VSync和HSync脉冲的极性均为正的PC格式属于第三组。VSync脉冲的极性为负而HSync脉冲的极性为正的PC格式则属于第四组。表2中列出的参数的不同值使得每个PC格式可被唯一地识别出。具体而言,表1和2中列出的不同格式可根据它们是否是ATSC格式或PC格式、HSync和VSync脉冲的极性(对于PC格式来说)、扫描线/场的个数、扫描线的长度、格式是否是逐行或隔行格式以及格式中所使用的HSync的Sync宽度来识别出。
分组 |
格式 |
帧率 |
象素时钟 |
象素/扫描线 |
同步时间 |
扫描线周期 |
扫描线/场 |
同步宽度 |
扫描线长度 |
V极性 |
H极性 |
1 |
1024x768 |
70 |
75 |
1328 |
136 |
17.707 |
806 |
195 |
1912 |
负 |
负 |
1024x768 |
60 |
65 |
1344 |
136 |
20.677 |
806 |
225 |
2233 |
负 |
负 |
640x480 |
60 |
25.175 |
800 |
96 |
31.778 |
525 |
411 |
3431 |
负 |
负 |
640x480 |
72 |
31.5 |
832 |
40 |
26.413 |
520 |
137 |
2852 |
负 |
负 |
640x480 |
85 |
36 |
832 |
56 |
23.111 |
509 |
168 |
2496 |
负 |
负 |
640x480 |
75 |
31.5 |
840 |
64 |
26.667 |
500 |
219 |
2880 |
负 |
负 |
2 |
1400x1050 |
75 |
156 |
1895 |
144 |
12.150 |
1097 |
99 |
1312 |
正 |
负 |
1400x1050 |
60 |
121.75 |
1864 |
144 |
15.314 |
1088 |
127 |
1653 |
正 |
负 |
1280x768 |
85 |
117.5 |
1712 |
136 |
14.577 |
807 |
124 |
1574 |
正 |
负 |
1280x768 |
75 |
102.25 |
1695 |
128 |
16.583 |
804 |
135 |
1791 |
正 |
负 |
1280x768 |
60 |
79.5 |
1663 |
128 |
20.92 |
796 |
173 |
2259 |
正 |
负 |
720x400 |
85 |
35.5 |
936 |
72 |
26.366 |
446 |
219 |
2847 |
正 |
负 |
640x400 |
85 |
31.5 |
832 |
64 |
26.413 |
445 |
219 |
2852 |
正 |
负 |
3 |
1600x1200 |
60 |
162 |
2160 |
192 |
13.333 |
1250 |
102 |
1440 |
正 |
正 |
1280x1024 |
85 |
157.5 |
1728 |
160 |
10.971 |
1072 |
109 |
1184 |
正 |
正 |
1280x1024 |
75 |
135 |
1688 |
144 |
12.504 |
1066 |
115 |
1350 |
正 |
正 |
280x1024 |
60 |
108 |
1688 |
112 |
15.630 |
1066 |
112 |
1688 |
正 |
正 |
1280x960 |
85 |
148.5 |
1728 |
160 |
11.636 |
1011 |
116 |
1256 |
正 |
正 |
1280x960 |
60 |
108 |
1800 |
112 |
16.667 |
1000 |
112 |
1800 |
正 |
正 |
1152x864 |
75 |
108 |
1600 |
128 |
14.815 |
900 |
128 |
1600 |
正 |
正 |
1024x768 |
85 |
94.5 |
1376 |
96 |
14.561 |
808 |
109 |
1572 |
正 |
正 |
1024x768 |
75 |
78.75 |
1312 |
96 |
16.667 |
800 |
131 |
1800 |
正 |
正 |
1360x768 |
60 |
85.5 |
1792 |
112 |
20.964 |
795 |
141 |
2264 |
正 |
正 |
800x600 |
72 |
50 |
1040 |
120 |
20.800 |
666 |
259 |
2246 |
正 |
正 |
800x600 |
85 |
56.25 |
1048 |
64 |
18.631 |
631 |
122 |
2012 |
正 |
正 |
800x600 |
60 |
40 |
1056 |
128 |
26.400 |
628 |
345 |
2851 |
正 |
正 |
800x600 |
75 |
49.5 |
1056 |
80 |
21.333 |
625 |
174 |
2304 |
正 |
正 |
800x600 |
56 |
36 |
1024 |
72 |
28.444 |
625 |
216 |
3072 |
正 |
正 |
640x350 |
85 |
31.5 |
832 |
64 |
26.413 |
445 |
219 |
2852 |
正 |
正 |
1024x768i |
43 |
44.9 |
1264 |
176 |
28.151 |
408/409 |
423 |
3040 |
正 |
正 |
4 |
1400x1050 |
60 |
101.0 |
1561 |
32 |
15.456 |
1078 |
34 |
1669 |
负 |
正 |
1280x768 |
60 |
68.25 |
1440 |
32 |
21.097 |
790 |
50 |
2278 |
负 |
正 |
表2
图2是自动识别模拟视频输入信号的格式的格式识别模块106的结构示意图。模块106用于在系统时钟对信号进行采样时,根据从输入视频信号的HSync和VSync信号提取出的信息来识别视频信号格式。该输入到模块106的视频信号可具有多种不同的格式。如果输入信号是PC格式,关于供显示的图象的信息、关于HSync脉冲的信息和关于VSync脉冲的信息被输入在不同的扫描线上。在此种情况,相对直接地提取出相关的HSync和VSync脉冲的信息。HSync信号202和VSync信号204可通过多路复用器206发送到度量提取模块208,提取出关于HSync和VSync脉冲的相关信息,以用来表征输入信号的格式。在这些度量被提取出来之后,它们被输入到格式识别模块210中,在此模块中根据提取出的度量确定输入的格式。
然而,输入信号也可以是复合同步(CSync)信号,在其中视频显示数据、HSync脉冲和VSync脉冲都嵌入在单个信号中(例如,在ATSC格式中常有的)。区分CSync信号中的不同的同步类型及其时序要比与PC格式有关的用专门的HSync和VSync信号更为困难。CSync信号(即包括有视频显示数据、HSync脉冲和VSync脉冲的信号)即可用于分量(component)视频信号又可用于复合(composite)视频信号,其中,分量信号指包括一种颜色的视频显示数据的信号,复合信号指包括有编码了三色空间视频显示数据的信息的信号。因此,复合同步信号(CSync)是指HSync数据、VSync数据和一些视频显示数据的合并,但CSync信号可与分量(即一种颜色)视频信号或复合(即三种颜色)视频信号一起使用。格式识别模块106针对分量信号和复合信号以类似的方式工作。
为了从相对高噪声的CSync信号(例如,标准清晰度(“SD”)信号)提取此信息,格式识别模块106可模拟VDEC前端的功能来识别和表征嵌入在CSync中的HSync和VSync脉冲。例如,模块106可用DC还原(“DCR”)模块214来对输入信号的偏移进行归一化,可用自动增益控制(“AGC”)模块对信号的增益进行归一化,并可通过用匹配滤波器对该信号执行准PLL锁定来锁定到CSync信号中的HSync分量。对于高噪声的CSync信号,可在将经归一化的信号传送给匹配滤波器之前,使用SD-AGC模块216对该信号的增益进行归一化。然后,将经归一化和滤波后的信号通过阈值检测器218(也称为限幅器)来检测到HSync和VSync脉冲。一旦Sync脉冲被检测到,在度量提取模块220中提取出有关Sync脉冲的度量,并且输入信号的格式可在格式识别模块210中根据提取出的度量来确定。
然而,为了从相对较低噪声的CSync信号中提取相关的信息,在DCR模块中对该信号的偏移进行了归一化之后,可在将经归一化的该信号传送给识别Sync脉冲的限幅器224之前,将该信号发送到Gen-AGC模块222中对其增益进行归一化。一旦Sync脉冲被检测到,在度量提取模块208中提取出有关Sync脉冲的度量,并且输入信号的格式可在格式识别模块210中根据提取出的度量来确定。
由于很难事先确定CSync信号是高噪声还是低噪声信号,并且由于信号的噪声水平可改变,所以将CSync信号既发给包括SD-AGC模块216的高噪声通路,也发给包括Gen-AGC模块222的低噪声通路,并且根据每个通路中执行的分析进行格式的识别。最后,格式仲裁器226在两个通路识别出的格式之间仲裁。仲裁结果的格式就输出到寄存器228,以供视频信号处理软件使用。
为了提取表征CSync输入信号212的有关HSync和VSync脉冲的信息,需要识别出嵌入在输入信号中的Sync脉冲。例如,如图3所示,输入信号包括Sync脉冲,其显示为输入信号中的周期性负极性脉冲,具有一定的幅度和宽度。Sync脉冲的幅度定义为基线消隐电平和最大负尖峰电平之间的幅度。在Sync脉冲之间,输入信号包含有输出给显示装置104的视频显示数据。输入视频信号内的Sync脉冲的幅度和尖峰电平可不经归一化处理,因此在从信号中提取HSync和VSync度量之前,其可用于通过DCR电路214来归一化尖峰电平和通过AGC电路216和/或222来归一化消隐电平。例如,在一个实施中,当模拟输入信号以108MHz的时钟频率采样并且信号的幅度被数字化成256个电平时,尖峰电平可归一化成大约16个单位的幅度,消隐电平可被归一化成具有240个单位的电平。
参考图2,当CSync信号输入到格式识别模块106时,该信号可发送到低通滤波器(“LPF”)230,其可用来清除模拟CSync输入。LPF230可以是具有固定系数的无限脉冲响应滤波器(“IIR”)。LPF的一个例子的频率响应在图4中画出,此处的x-轴以108MHz采样率为单位,y-轴的衰减以分贝为单位。
在通过LPF230之后,CSync信号的尖峰电平在尖峰测量电路232中测出,DCR电路214用来归一化CSync信号的偏置电平,如图2中的左上部所示。如下面将要更详细描述的,DCR电路214输出模拟误差信号,也就是“拉上/拉下”信号,反馈给输入的CSync信号212的模拟形式来将输入信号的基线驱动到目标值,同时格式识别模块106识别出CSync信号的格式。为了从CSync信号212提取出关于Sync脉冲的信息,格式识别模块106调准输入信号(也就是,设定偏置电平)以使尖峰电平略高于零。然而,参考图1,在确定了输入信号的格式之后,当VDEC110对信号解码时,VDEC110调准输入信号,以使消隐电平处于期望值,因此在Sync脉冲之间出现的视频显示数据具有最大的分辨率,但这也导致尖峰值不是处于略高于零处。因此,处理器108可配置系统100,使格式识别模块106能控制输入信号的DCR值,直至信号格式被识别出,并且一旦格式被识别出,DCR值的控制就转交给VDEC110。
在格式识别过程中,格式识别模块106识别出尖峰电平,此操作可以在不知道输入格式的情况下进行,因为尖峰值给出了信号的局部最小值。为了减轻识别尖峰值时噪声的影响,可将CSync信号如上所述那样通过LPF230,滤波器的输出可经过32采样移动平均器,局部测量到的最小值可在一个可编程延迟(例如,大约32k个采样)之后消除掉。
输入信号的尖峰值可通过比较信号的局部最小值和平均器的输出来确定。局部最小值可以稳定的方式重置来捕捉信号的尖峰电平中的任何漂移。结果得到的尖峰电平然后可用来调节DCR值,并可从输入的CSync信号212中将其减去。不管是VDEC110还是格式识别模块106在控制DCR值,此相减将使信号偏移到确定的尖峰值周围。
在一个实现中,如图5所示,可用局部最小(1ocal_min)502和在前最小(prev_min)504两阶浮点运算(flop)来测量尖峰值,以便重置最小值而没有任何瞬时峰值。从local_min浮点运算502输出的信号可跟踪输入采样样本的最小值。在每个可编程延迟周期过去之后(例如,每32k个样本之后),系统可将local_min浮点运算502的输出移到prev_min浮点运算504,用最近的采样样本的值来覆盖local_min的值。这种尖峰值的“消除”(“flushing”)意味着每n条扫描线便更新一次尖峰值,此处的n取决于格式,但总是大于1。
因此,图6展示了简化的示例中两阶“消除”的效果。在图6中,输入信号以实线表示,local_min浮点运算的输出用虚线表示,prev_min浮点运算的输出以点划线表示。双点划线表示响应输入和消除尖峰(flush_tip)命令而输出的最小值。为了清楚起见,这些线相互之间在垂直方向上偏移开。具体而言,输入信号(实线)在垂直方向上偏移3个单位,local_min浮点运算的值(虚线)偏移2个单位。prev_min浮点运算的值(点划线)偏移一个单位。
local_min的值设定为每次消除尖峰时输入信号的瞬时值,然后又稳定为输入信号的实际尖峰值。local_min的值的稳定被输出的最小值(双点划线)所抑制,因为输出的最小值总是小于local_min的值和prev_min的值。prev_min的值给出稳定的默认值,因为它已经稳定下来。注意,在第二和第三flush_tip箭头之间的这种情况下,prev_min的值使尖峰值过度偏移。这即可以帮助消除噪声的影响,也可迫使prev_min的值滞后于尖峰值的总上升趋势。任意一种情况下,此影响一直持续,直到下一个flush_tip脉冲。应该注意到,图6是示意图,在实际中,flush_tip可分布在比图6中示出的几个尖峰值更多尖峰值上。
图2左上方的DCR模块可接收尖峰值并产生拉上/拉下信号,来归一化输入信号的偏置。图7是DCR模块的更详细的模块示意图。如图7中所示,接收到测得的尖峰值702后,将其与参考值704相比较,尖峰值与尖峰参考值(tipref)之间的差值在比较器706中比较,输出误差信号708,该信号在调整器(scaler)710中调整后,在每个“尖峰消除”周期输出到IIR滤波器712(例如,用图5中的测量尖峰模块所使用的同样的控制信号714)。IIR滤波器712将反馈信号平滑化,使尖峰值等于尖峰参考值。脉冲宽度调制器(“PWM”)716可根据IIR滤波器712输出的误差信号的指示产生拉上脉冲或拉下脉冲,并且拉上/拉下脉冲的持续时间用IIR滤波器712输出的信号的幅度来定义。拉上信号或拉下信号然后从DCR模块214输出并反馈回CSync输入信号的模拟输入中,用来将输入信号的偏置驱动到一个电平,使得测得的尖峰值等于尖峰参考值。
经过尖峰归一化的信号然后传送给图2所示的Gen AGC模块222和SDAGC模块216,此处进行增益归一化来确保尖峰电平和消隐电平之间的幅度被标准化。如图8所示,格式识别模块可通过将较低值范围分成一系列的段(bin)然后确定每个段中信号出现的次数来测量sync电平。段的分布可用来识别尖峰电平和消隐电平。AGC模块222和216可用来缩放信号来达到定义的段分布。图8示出了叠加于段分布范围上的示例波形。右侧是落入每个段中的采样样本的分布图。
图9是“Gen AGC”(一般AGC)模块222和“调节增益”模块902的示意图,其用来维持段计数,并且可用来识别出尖峰电平和消隐电平之间的段的数目,这在图8中已有描述。一般AGC模块222被分成三级。第一级904接收当前输入信号906,该输入信号的偏置电平已通过偏置电平电路908、乘法器910、偏置补偿电路912调节成零上16个单位。第二级914求出输入信号906所处的段,来确定当前的消隐电平和计算误差信号,该误差信号输出到第三级902中进行累加和钳位,以用于缩放调整该输入信号。第三级902可接收误差信号,并将其乘以乘法器916中的缩放调整信号。
“Gen AGC”模块222和“调节增益”模块902可得到合适的增益,以用模拟信号的统计值来适当地缩放输入信号,这是通过将CSync信号的幅度划分为多个离散的段来实现的,段的数量为NUM_OF_SBINS(例如,选用12个)。每个段(例如,“bin_acc[j]”)可将一定的最小和最大电平之间的输入CSync幅度电平累加,其中最大电平减去最小电平的值便是通过参数预先定义的,即“SBIN_WIDTH”(例如,名义上取成32个单位)。累加CSync信号幅度电平的算法可用下面的伪码描述:
PRE-DEFINED_WINDOW =(nominally)32678(32K)
PRE-DEFINED_THRESHOLD=(nominally)32678(32K)
DELTA_AGC =(nominally)0.002(~2-9)
BLANK_THRESHOLD =(nominally)2000(2K)
for(j=0;j<NUM_OF_SBINS;j++)
{ //将滤波后的输入分配到合适的段中
if(j<NUM_OF_SBINS-1)
{
if((state_mc_input>=tip_out+(j*SBIN_WIDTH))&&
(state_mc_input<tip_out+
((j+1)*SBIN_WIDTH)))++bin_acc[j];
}
else //最后一个段累加所有超过1023-SBIN_WIDTH的值
{
if(state_mc_input>=1023-SBIN_WIDTH)
++bin_acc[NUM_OF_SBINS-1];
}
}
// 下一步
然后,可得到包含非零值的最小段索引(即第一非零索引first_nzero_index)和包含最大值的段索引(即最大值索引max_index)。此后,包含消隐电平的段索引(即消隐索引blank_index)可根据下列伪码的指令来得到:
// 为了得到对应于消隐电平的索引
for(j=1;((j<NUM_OF_SBINS)&&((bin_acc_out[j]<
BLANK_THRESHOLD)||(bin_acc_out[j]<
0.5*bin_acc_out[first_nzero_index])));j++);
blank_index=j+1;
如果需要的话,根据下列伪码的指令,可将这些段归一化:
if(bin_acc[max_index]>=PRE_DEFINED_THRESHOLD)
{
for(j=0;j<NUM_OF_SBINS;j++)
{ //将段累加器减半
bin_aacccc[j]=bin_accj/2;
}
}
如果到达累加器窗口的末端,则可将每个段的当前值缓存起来。
用此调整方法,可定义具有16个单位电平值的合适的尖峰,并可定义具有240个单位电平值的合适的消隐电平。因此,所有的尖峰可累加到bin_acc[0]并且所有的消隐电平累加到bin_acc[7],假定SBIN_WIDTH=32。这种条件产生了一种简单的方法来确定“agc_gain”的值,如下列伪码所表示的:
if(sample_count%PRE-DEFINED_WINDOW==0)
{ //下一步,更新段累加器输出缓冲器
for(j=0; j<NUM_OF_SBINS;j++)
{
bin_acc_out[j]=bin_acc[j];
}
//最后,计算AGC缩放调整比例
if(bin_acc_out[NUM_OF_SBINS-1]<
(bin_acc_out[0]+bin_acc_out[1]+
bin_acc_out[2]))
agc_gain=agc_gain+DELTA_AGC*(7.0-(blank_index-
first_nzero_index));
else
agc_gain=agc_gain-DELTA_AGC;
}
因此,在“稳态”,累加尖峰电平的第一非零索引的值,应当是0,并且累加消隐电平的消隐索引的值应当是7。采用分段的概念,这些技术可扩展来计算粗略的DCR值以用来设定信号的偏置量,如上所描述的。DCR值可通过设置dcr_offset=dcr_offset+(average(tip)-16)×DELTA_DCR在称为dcr_offset的寄存器内累加,此处,DELTA_DCR名义上选为0.0004(即,约为1.6×2-12)。
局部的AGC回路可用来调节采样的CSync信号的幅度,然后对其进行分析以用于识别信号的格式。为了建立此回路,计算出进入的CSync采样样本的柱状图,所有的进入的信号的样本被分类到预先定义的多个级(即段)当中。接下来,期望的AGC条件便是其内的尖峰值接近零(例如,大约16个单位)而消隐电平接近于最大值(例如,当最大信号电平是256单位时为240个单位)的那一个。例如,如果进入的样本被分到12个段中(bin_acc[0]至bin_acc[11]),且每个段是32个单位宽,那么所有的尖峰值可在bin_acc[0]当中累加,该段将电平在[0,31]之间的所有采样样本都累加起来。类似地,所有的消隐电平可累加到bin_acc[7]中,该段将在[224,255]之间的所有采样样本都累加起来。然后,包含尖峰值的段被识别为包含非零内容的第一段,其索引值可设定为第一非零索引(first_nzero_index)变量。最终在稳定状态,第一非零索引由于DCR模块的调节而等于0。
然后,包含消隐电平的段可根据下列规则来识别出:
如果(bin_acc[j]>BLANK_THRESHOLD
且
如果(bin_acc[j]>
0.5*bi_acc[first_nzero_index]),
那么,对应段“j”的索引值就设定为blank_index
最后在稳定状态,blank_index的值将等于BLANK_LEVEL变量的值。
变量BLANK_THRESHOLD定义出对应于消隐电平的输入信号的最小样本数。在国家电视系统委员会(“NTSC”)格式的信号情况下,此值不能小于每条扫描线的“前沿”(front porch)和“后沿”(back porch)的组合长度。一条扫描线的信号的“前沿”部分是插入在视频数据的每条扫描线的末端和下一个HSync脉冲的开始边沿之间的一段短暂的周期(例如,大约1.5微秒)。它的目的是为了稳定在较旧的电视机中电压电平的稳定,防止在图画扫描线之间的干扰。扫描线的“后沿”是指每条扫描线内在HSync脉冲的结束端(上升沿)和有效视频数据的开始端之间的部分。后沿最初是设计来使早期电视内的慢的电子器件能够响应同步脉冲并准备好有效扫描线周期。因此,在NTSC信号的情况下,BLANK_THRESHOLD等于大约6.5微秒,或大约为108MHz采样时钟的702个样本乘上发生累加的扫描线的数目(ACC_WINDOW设定来定义的)的值。
使用这两个识别出来的段,可按如下控制AGC回路:agc_gain=agc_gain+DELTA_AGC*(BLANK_LEVEL-(blank_index-first_nzero_index)),此处的DELTA_AGC是预先定义的标量回路增益。为了确保没有段溢出,可周期性地对各段进行归一化处理。
控制AGC功能的寄存器可根据下面的表3的字段描述的来定义。
字段名 |
字段描述 |
字段赋值 |
NUM_OF_BINS[3:0] |
采样的ATSC信号为统计而分成的电平数或“段”数 |
推荐值是12 |
SBIN_WIDTH[5:0] |
定义每个段的宽度 |
推荐值是32。因此,如果ATSC输入样本在[0,31]之间则属于段0,如果在[32,63]之间则属于段1,等等。 |
ACC_WINDOW[6:0] |
定义在其上对连续监测到的段统计值归一化的窗口的大小 |
推荐值是32678(32K)。窗口大小是用下式计算的:ACC WINDOW*1024 |
BLANK_THRESHOLD[12:0] |
定义用于识别包含消隐电平的段的阈值 |
推荐值是2000 |
AGC_GAIN[3:0] |
控制AGC回路的增益。实际增益=AGC_GAIN*2-11 |
推荐值是4(注意:值0将使AGC回路不能工作) |
BLANK_LEVEL[3:0] |
定义对应于消隐电平的目标段索引 |
推荐值是7 |
表3
尽管上面参考图8和图9描述的一般的AGC算法和技术足够用于干净的和低噪声信号,但它们会由于具有太大噪声或失真的信号以及标准清晰度(“SD”)信号(例如,表1中列出的格式576i、288i、480i和240i)而产生误判。
因此,除了传送给图2中的Gen AGC模块222,经尖峰归一化的CSync信号也发送到图2中展示的包括SD专用AGC模块232,其包括有SD AGC模块216和匹配滤波器模块234。SD专用AGC模块232可用来在分析信号以提取用来识别信号格式的参数之前,对高噪声的输入CSync信号进行调节。
SD专用AGC模块232假定CSync输入具有与SD信号相关的HSync宽度。例如,如表1所示,每个SD格式,但除开别的格式,具有504个时钟周期的HSync宽度。如果此假定是错误的,信号应该由经过Gen AGC模块222的一般AGC通路进行处理。然而,如果假设是正确的话,便可使用SD专用AGC模块232实现更精确的消隐电平测量和调整,因为匹配滤波器可锁定在HSync脉冲内的信息上而拒绝HSync脉冲的之间的信号。
如图10中所示,SD AGC模块216可使用对HSync宽度和回扫区(fly backregion)的已知限制,通过延迟信号并将其与自身相加,使HSync尖峰与消隐电平重叠。在图10中,输入信号1002可用延迟模块延迟来产生延迟信号1004,延迟信号1004在求和电路1006中与输入信号1002相加来产生组合信号1008。当延迟信号1004的尖峰值与未延迟的输入信号1002的消隐电平重叠时,所产生的组合信号波形1008出现最小值并从寄存器1010中输出。因为尖峰值可被图2的“测量尖峰”模块236确定,如在上面结合图5-图7更详细描述的那样,通过简单地将组合信号1008的最小值中减去已知的尖峰值然后与预期的参考消隐电平值进行比较,便可推出消隐电平值。然后,可调节增益来归一化消隐电平,使其等于预期的参考消隐电平。
图2中所示的匹配滤波器的频率响应可基于对NTSC信号、隔行扫描线(“PAL”)信号和顺序传送彩色与存储(“SECAM”)信号的“理想”的HSync光栅的假设来定义,其中HSync脉冲宽度是512个采样(以108MHz的时钟提供的采样率)。如图11所示,当扫描线中对应于HSync脉冲的部分乘以1,而扫描线中非-HSync的部分乘以0时,匹配滤波器的输出减少到512个采样的移动平均值(running average)。因此,通过匹配滤波器之后,Sync脉冲可很容易地从CSync信号中识别出来。
因此,如上所解释的,输入的CSync信号可认为属于以下两类中的一种:高噪声或低噪声的SD信号(例如,表1中列出的格式240p、480i、288p或576i所定义的);或低噪声的ATSC信号(例如,表1中列出的240p、480i、288p或576i格式所定义的),其可以是SD或HD信号。图2中给出了用于处理这样的每一种情况的两条同路:包括Gen AGC模块222和简单的限幅器224以用于低噪声信号的通路,和包括SD AGC模块222、匹配滤波器234和限幅器218以用于高噪声信号的通路。
一旦低噪声的情况被过滤和偏置(用DCR模块214和Gen AGC模块222),可使用可编程限幅器电平来识别出CSync信号内的同步尖峰。对高噪声信号的分析使用了如下事实:所有的可使用的格式针对同步宽度具有类似的或相同的时序。因此,与此HSync宽度匹配的固定采样率的固定匹配滤波器可用来识别同步区。
图2中的限幅器218和224可用来从低噪声和高噪声路径中经归一化和滤波后的信号中检测到同步脉冲。限幅器用作阈值检测器,它们接收输入信号并当输入电平低于预先确定的阈值时输出正的信号,否则将输出电平设定为0。图2所示的限幅器不区分HSync脉冲和VSync脉冲。然而,此分析可由图2中所示的度量提取模块208和230来执行。
可从嵌入在CSync信号内的HSync和VSync脉冲中确定并可用来在格式识别模块240或242中唯一地识别格式的度量包括:HSync和VSync的极性(针对PC输入)、HSync的宽度、扫描线的长度、扫描线/场的数目、场是逐行的还是隔行的。在计算每个度量时,可使用命中(一致)计数器,如果测得的度量与之前对同一度量的测量值一致的话计数器就递增。一旦命中计数器超过了VALID_THRESHOLD值,该度量就被认为是锁定了。如果命中计数器改变并低于INVALID_THRESHOLD值,每个度量都被认为是未锁定的。因此,度量提取模块中设置有滞后器来维护度量的锁定状态,确保没有过早建立锁定状态。
度量提取模块208和220可识别关于输入信号的多个特征度量。例如,HSync脉冲和VSync脉冲的极性可通过监测HSync和VSync扫描线的活动得到。同步尖峰极性可定义为显示帧过程中使用时间少于45%的极性。其它的度量(即HSync的宽度、扫描线长度、扫描线/场的数目、场是逐行的还是隔行的)可通过监测直接来自数字H和V信道202和204(即对于表2所示的PC格式信号)或从一个同步检测(限副器)子模块224或218的输出的HSync和VSync脉冲来得到。确定HSync宽度和线长可由数字HSync或限幅器输出直接给出。扫描线长度可通过测量两个上升沿之间的距离来确定,并且HSync宽度可通过测量上升沿和下降沿之间的距离来确定。来自限幅器224的ATSC输入信号可因VSync脉冲的“同步宽度”的增加而将VSync脉冲和HSync脉冲区别开来。VSync脉冲可以是一系列脉冲(例如,多于4个脉冲),其中的每个脉冲比所建立的HSync脉冲宽度的若干倍(例如4倍)还长。或者,VSync脉冲可识别为比建立的扫描线还长的单同步脉冲。这些扩展的同步脉冲不会随同步极性的改变而相混淆,因为ATSC CSync信号具有固定的极性。每一场的扫描线的数目是通过用建立的扫描线长度去除两个VSync(场长度)之间的采样个数来计算得到的。显示是逐行的还是隔行的,可通过计数每一场的第一VSync和第一HSync之间的采样个数来确定。如果数目是稳定的,图象就是逐行的,但如果数目发生改变,图象就是隔行的。
图12是度量提取模块的结构示意图。沿着图12的左侧,从顶至下,是用于计数两个HSync边沿之间的时间的计数器1202(H计数)和用于计数两个VSync边沿之间的时间的计数器1204(V计数)。当边沿检测器1206或1208检测到对应于HSync和VSync脉冲出现的每个边沿时,用一个合适的值来比较扫描线长度度量模块1210、HSync宽度度量模块1212、帧长度度量模块1214或VSync宽度度量模块1216中之前的值,以确定测量值的一致性以及该值是否被“锁定”。下面结合图13会给出更详细的解释。图12中余下的部件用来处理VSync识别(对于ATSC输入)、逐行/隔行的确定和最终的度量计算。
如图12中所示,所有的计数都可依据采样计数来衡量。场的长度容限可用n条扫描线长度作为单位(llng)。对于ATSC输入信号,VSync输入可被忽略,因为VSync信号是嵌入在分配给HSync输入端口的CSync信号内的。因为HSync和VSync极性对于ATSC来说是已知的,因此这些端口对于ATSC输入可以忽略。VSync宽度可用来测量VSync极性,但它不用于ATSC输入。输出度量可按如下计算:每帧的扫描线的数目通过flng除以llng来得到,即lines_per_f=flng/llng。HSync极性可通过比较hwidth和扫描线长度的一半来确定(HSync_polarity=hwidth<llng/2),而VSync极性可通过比较vwidth和帧长的一半来确定(VSync_polarity=vwidth<flng/2)。从图12中得到的各种度量的容限如下面的表4所示。
字段名称 |
字段描述 |
字段设定 |
LLENGTH_TOLERANCE[3:0] |
定义采样中的平均LLNG测量值的允许的容限 |
测得的LLNG的有效范围定义为:{LLNG-LLENGTH_TOLERANCE,LLNG+LLENGTH_TOLERANCE} |
HWIDTH_TOLERANCE[3:0] |
定义采样中的平均HWIDTH测量值的允许的容限 |
测得的HWIDTH的有效范围定义为:{HWIDTH-HWIDTH_TOLERANCE,HWIDTH+WIDTH_TOLERANCE} |
FLENGTH_TOLERANCE[3:0] |
定义采样中的平均FLNG测量值的允许的以LLNG为单位的容限 |
测得的FLNG的有效范围定义为:{FLNG-FLENGTH_TOLERANCE*LLNG,FLNG+FLENGTH_TOLERANCE*LLNG} |
VWIDTH_TOLERANCE[3:0] |
定义采样中的平均LLNG测量值的允许的容限 |
测得的VWIDTH的有效范围定义为:{VWIDTH-VWIDTH_TOLERANCE,VWIDTH+VWIDTH_TOLERANCE} |
表4(度量容限)
图13展示了对于F_length或VSync_width(例如,图13中识别为“X”度量)参数,新的度量值如何与前面的值相比较。注意,浮点运算使用了“负载”信号来简化图。图13中的子模块1302接收两个输入:度量输入1304,其提供新值;边沿输入1306,其触发对新值的计算。该系统可以在“未锁定”模式和“锁定”模式下运行。在这些模式中,可将新值分别与之前的值或之前被定为“匹配”的n个值的平均值相比较,其中n可选择为8、4或2。该平均值可用平均模块1308来计算。当新值位于旧参考值的容限范围内就称为存在匹配。“命中”计数器1309在每次匹配时递增,在每次不匹配时递减。第三个输入即“溢出”1310可用来递减该命中计数。此特征仅被F_length度量用来确保恒定的输入最终不锁定F_length。通过如下面表5中所列出的寄存器设定来控制时,锁定状态可由命中计数器的值来定义。图13中展示的子模块1312报告度量是否被锁定,另一个模块1314报告匹配的发生。
图14展示了略为不同的一个模块,用来将度量与前面的L_length和HSync_width参数值作比较。除了以下所述的以外,此图类似于图13。首先,图14中没有溢出逻辑。第二,命中计数器1402不是在边沿更新的。代替的是,“匹配”测试的结果是在边沿触发的。之后,当“拍打”计数器(beat counter)1220(图12中所示的)溢出时,匹配计数器1404的状态可用来使命中计数器递增(设定匹配)或递减(清除匹配)。
字段名称 |
字段描述 |
字段赋值 |
METRIC_HIT_MAX[6:0] |
定义度量命中计数器的饱和值 |
推荐值是127 |
AVERAGE_SIZE[1:0] |
定义用于求平均的移位寄存器的元素个数0-两个元素1-四个元素2-八个元素3-十六个元素 |
推荐值是3 |
VALID_THRESHOLD[6:0] |
定义“开启”滞后阈值。在度量命中记数器达到此值时,将之前计算出的度量数据保存起来。 |
推荐值是16 |
INVALID_THRESHOLD[6:0] |
定义“关闭”滞后阈值。在度量碰撞记数器达到此值时,允许更新之前计算出的度量数据。 |
推荐值是0 |
表5
参考图14,为了分析VSync脉冲,我们注意到有两种类型的ATSC VSyncs。标准的VSync可以有一系列的NUM_SERR连续锯齿脉冲,其中锯齿用下列测量到的值定义的,HSync width>SERR*avg_HSync_width(hwidth),此处NUMM_SERR是可编程的整数值(见图14底部)。VCR VSync具有HSyncwidth=NUM_LINE*line_length(llng),其可通过比较HCount值以及通过确定HSync输入仍然为低来计算得到,此处的NUM_LINE是可编程的整数值(见图14的顶部)。
“连续锯齿脉冲”的含义是指计数锯齿脉冲的数目而之间没有一对HSyncs。这对于将HSyncs放在锯齿脉冲之间的三层格式是必需的。图15描述了如何用HSync和锯齿累加器来维护这一计数。对于每个锯齿脉冲,HSync累加器可清零而锯齿累加器可递增。基于每个“匹配的HSync”,HSync累加器递增。如果HSync累加器的值达到2,锯齿累加器的值就可清零。如果锯齿累加器被允许累加到特定的NUM_SERR值,便可产生Std VSync信号。
可引入额外的状态机来在VCR VSync脉冲和标准的VSync脉冲之间选择,从而一旦遇到CR VSync脉冲,标准的VSync脉冲就被忽略,因为它们可招致噪声猝发。应该继续接收VSync脉冲,直到过了没有VCR VSync脉冲发生的3个标准场长度。就此而言,可用标准的VSync脉冲来还原。图16描述了在此情况下的期望的波形。如图16所示,一旦检测到VCR VSync脉冲,系统可断言只允许VCR的模式,因为其将Vcount信号重置至零。每次出现额外的VCR VSync脉冲时,Vcount脉冲便可重置为零。Vcount信号对VCR VSync之间的采样进行计数,并当Vcount超过了预定的数目(例如,6480000(0x62e080))时,VCR唯一模式被解除,从而允许标准的VSync脉冲来设定ATSC VSync。
输入信号内的光栅类型可通过监测检测到VSync脉冲和第一次检测到HSync脉冲之间的时间来识别出来。该时间可通过获取VSync脉冲之后的第一HSync脉冲的上升沿上的Vcount信号值来确定。算出此次测量和前次测量之间的差值,如果该差值在+/-1/4扫描线的范围内,光栅类型就被认为是逐行的。虽然此测量方法在伪流(trick stream)期间可能会错误地识别光栅类型,ATSC输入的光栅类型的准确识别可推迟到VDEC处,因其具有更精细的场识别系统。
最终的度量可用类似于下面的表6展示的寄存器赋值来报告出来。该寄存器可双缓冲并可在任何时刻被软件读取,并且每次检测到VSync脉冲时都可更新该寄存器。
字段名 |
字段描述 |
字段赋值 |
HSYNC_POLARITY |
定义输入的HSync信号的极性。正极性对应于比“低电平”短的高电平信号。 |
0-正1-负 |
VSYNC_POLARITY |
定义输入的Vync信号的极性。正极性对应于比“低电平”短的高电平信号。 |
0-正1-负 |
LINES_PER_FIELD[14:0] |
定义每场的扫描线的数量为该场的长度除以在前场中测量到的平均扫描线长度所得的商 |
数字11.4代表4个小数的二进制数字的精度。隔行格式应该具有4b’1000或相近的分数位,逐行格式应该具有4b’0000或相近的分数位。注意:1250i/50格式是例外。 |
LINE_LENGTH[9:0] |
在前场中测得的平均扫描线长度 |
13位的数表示依据多个系统时钟周期测得的平均扫描线长度 |
HSYNC_WIDTH[9:0] |
在前场中测得的平均HSync宽度 |
10位的数表示依据多个系统时钟周期测得的平均HSync宽度 |
RASTER_TYPE |
定义光栅类型(隔行vs.逐行) |
0-逐行1-隔行 |
表6
如上所描述的,一旦度量被测量到,该度量可用来识别输入的模拟视频流的格式。格式识别可包括3个步骤:确定何时格式已经改变;查找新的格式;在用于低噪声输入信号的Gen-AGC路径所识别出的格式和用于高噪声信号的SD-AGC路径所识别出的格式之间进行仲裁。
对于ATSC格式的输入信号和PC格式的输入信号,格式改变的定义是不同的。这些不同要求的基础是,PC格式需要Sync极性值和光栅类型识别(即,逐行或隔行扫描)而ATSC信号不需要。因此,对于ATSC信号,如果扫描线长度和场长度都存在增益锁定,然后扫描线长度或场长度失去锁定,或当前度量不再匹配识别出的格式的话,可定义为ATSC信号存在格式的改变。对于PC信号,如果hwidth、扫描线长度、vwidth、场长度和光栅类型存在增益锁定,然后hwidth、扫描线长度、vwidth、场长度和光栅类型失去锁定,或当前度量不再匹配识别出的格式,可定义为PC信号存在格式的改变。
如果格式改变是由于上述的度量失去锁定而造成的结果,该格式就被列为“MISSING_INPUT”。如果需要的度量被锁住了,新的格式索引可通过比较当前度量和一列格式属性(类似于下面的表7中所列出的值)来识别出。当前度量和一组属性之间的第一次匹配可识别出一种格式。该格式索引被记录下来并报告给软件。另外,在本地复制该格式属性以跟踪与选定格式的后续一致性。如果没有格式属性组描述了当前的度量,该格式就被列为“UNKNOW”。
字段名 |
字段描述 |
字段赋值 |
FT_HSYNC_POLARITY |
仅用于PC格式。ATSC信号格式识别情况下,此字段的值被忽略。 |
1-正0-负 |
FT_VSYNC_POLARITY |
仅用于PC格式。ATSC信号格式识别情况下,此字段的值被忽略。 |
1-正0-负 |
FT_LINES_PER_FIELD[14:0] |
定义给定格式下每场的扫描线数量。如果设为“0”值,此字段在格式识别过程中就被忽略。 |
4个lsb位表示小数值。这些位应该设为:4b’0000用于逐行格式和1250/50;4b’1000用于除1250/50外的隔行格式, |
FT_DELTA_LPF[3:0] |
定义测得的LINES_PER_FIELD值对比FT_LINES_PER_FIELD的允许容限 |
LINES_PER_FIELD的有效范围定义为:{FT_LINES_PER_FIELD-FT_DELTA_LPF,FT_LINES_PER_FIELD+FT_DELTA_LPF} |
FT_LINE_LENGTH[12:0] |
定义给定格式下的扫描线长度。如果设为“0”值,此字段在格式识别过程中就被忽略。 |
此数值在系统时钟采样中给出。 |
FT_DELTA_LL[3:0] |
定义测得的LINE_LENGHT值对比FT_LINE_LENGHT值的允许容限。 |
LINE_LENGHT的有效范围定义为:{FT_LINE_LENGHT-FT_DELTA_LL,FT_LINE_LENGHT+FT_DELTA_LL} |
FT_HSYNC_WIDTH[9:0] |
定义给定格式下的HSync宽度。如果设为“0”值,此字段在格式识别过程中就被忽略。 |
此数值在系统时钟采样中给出。 |
FT_DELTA_HW[3:0] |
定义测得的LINE_LENGHT值对比FT-LINE_LENGTH值的允许容限 |
HSYNC_WIDTH的有效范围定义为:{FT_HSYNC_WIDTH-FT_DELTA_HW,FT_HSYNC_WIDTH+FT_DELTA_HW} |
FT_RASTER_TYPE[1:0] |
定义光栅类型(隔行vs.逐行) |
2-隔行1-逐行0-不在乎 |
表7
格式属性表可存储在存储器中,并可通过FORMAT_START存储器地址和FORMAT_COUNT数值来存取。FROMAT_COUNT=0可唤醒系统,表示没有格式可比较。一旦软件设定了表的值和存储器指针,计数器就可设定为合适的值。
在决定查找新的格式时,通过表中的FORMAT_COUNT条目可获得第一元素。如果属性是非零的话,表中的每个属性可与相应的度量做比较。如果对应于非零属性的每个度量,位于该属性的范围内,则选择的格式就是对的。完成了每个格式识别周期之后,可对表8的元素进行更新。
字段名 |
字段描述 |
字段赋值 |
FORMAT_INDEX[9:0] |
定义输入格式的索引。支持的最大格式数量为1023个。 |
被SW用来识别格式并产生合适的VDEC设置。0=未知1->1023=有效格式只读寄存器字段 |
MISSING_INPUT |
表示度量没有锁定 |
1=不稳定的度量0=锁定的度量只读寄存器字段 |
NEW_FORMAT |
向SW表示格式识别处理完成了。即使没有识别出有效的格式,此位也会被置值。 |
读:1=READY(就绪)0=NOT_READY(未就绪)写1=RESET(重置)0=NOAction(无动作) |
表8(格式就绪寄存器)
为了在高噪声匹配滤波器路径和低噪声Gen AGC路径中识别出的可能的格式之间仲裁,可使用图2中的格式仲裁器244。如果在一段可编程的时间之后,度量提取模块208和220内提取出的度量仍然是未锁定的,则输入格式就可确定是“浮动输入(floating input)”。如果度量锁定了,格式仲裁器244通过基于存储在存储器中的可编程格式表的一系列比较来确定格式。格式识别可从存储器中读取一个条目,其列出了针对每个度量的值和容限。描述当前度量在定义的容限内的第一条目可识别为模拟输入信号格式。如果读完整个表都没有匹配的,则将当前的格式标记为“未定义的/无效的”。
如果高噪声、匹配滤波路径和低噪声、Gen AGC路径都产生了锁定在某格式的度量的话,格式仲裁器244就选择首先锁定的格式来在系统100中使用。或者,在高噪声、匹配滤波器路径和低噪声、Gen AGC路径识别出的格式产生冲突的情况下,格式仲裁器244可选择由预先确定的路径识别出的格式。
在此描述的各种技术的实施例可以用数字电路实施,或者用计算机硬件、韧件、软件及其组合来实施。实施例可作为计算机程序产品来实施,也就是,可触知地嵌入在信息载体中(例如,机器可读存储设备或者传播的信号)的计算机程序,用于被数据处理设备执行或者控制数据处理设备的操作,所述数据处理设备是例如可编程处理器、计算机、或者多个计算机。计算机程序,如上所述的计算机程序,可以以任何形式的编程语言编写,包括编译或解释语言,且可以以任何形式使用,包括例如独立程序,或者模块、组件、子程序或适于在计算环境中使用的其它单元。计算机程序可被用于在一个计算机或者多个计算机上运行,所述多个计算机可以位于同一地点或者分布在多个地点并通过通信网络交互。
方法步骤可以由一个或多个可编程处理器执行,该可编程处理器运行计算机程序,以通过对输入数据进行操作并生成输出数据来执行功能.方法步骤也可以由专用逻辑电路来执行,设备也可实施为专用逻辑电路,例如FPGA(现场可编程门阵列)或者ASIC(专用集成电路)。
适于执行计算机程序的处理器包括,例如通用和专用微处理器,以及任何种类的数字计算机的任何一个或多个处理器。通常,处理器会从只读存储器或随机存取存储器或两者中接收指令和数据。计算机的元件包括用于执行指令的至少一个处理器以及用于存储指令和数据的一个或多个存储设备。通常,计算机也可包括一个或多个用于存储数据的大容量存储设备,或者可操作地连接到一个或多个用于存储数据的大容量存储设备,以从中接收数据或向其发射数据,所述大容量存储设备是例如,磁盘、磁光盘、或者光盘。适于包含计算机程序指令和数据的信息载体包括所有形式的非易失存储器,包括例如EPROM、EEPROM和闪存之类的半导体存储设备,内部硬盘或可移动磁盘之类的磁盘,磁光盘,以及CD-ROM和DVD-ROM光盘。处理器和存储器可以由专用逻辑电路来实施,或者结合到专用逻辑电路中。
为了提供与用户的交互,可在以下计算机上实现:具有显示设备例如阴极射线管(CRT)或液晶显示(LCD)监视器,以显示信息给用户;具有键盘和指示器件,例如鼠标或跟踪球,以供用户提供输入给计算机。其它的各种器件也可用来提供与用户的交互,例如,提供给用户的反馈可以是任何类型的感官反馈,例如,视觉反馈、听觉反馈或触觉反馈;来自用户的输入可以任何形式接收,包括声音的、语言的或触觉的输入。
虽然在此已经描述了所述实施例的某些特征,本技术领域的人员可以做出很多修改、替换、更改和等同。因此,可以理解,权利要求用于覆盖落入本发明的实施例的实质范围内的所有这些修改和更改。