针对SDI视频信号中彩条检测方法的新方向探索及实现
- 来源:传播与制作 smarty:if $article.tag?>
- 关键字:广电,SDI,100%幅度彩条 smarty:/if?>
- 发布时间:2013-11-29 13:19
【摘要】本文针对广电系统中必须的图像故障辨识技术,以彩条为例,在考虑效率性和通用性的前提下,针对传统图像彩条判定方式的不足,我们使用一种全新的方法对彩条信号进行判别,这是视频检测技术的新方向探讨。
【关键词】SDI 75%幅度彩条 100%幅度彩条
一.SDI信号的基本特征
目前标准清晰度SDI信号由SMPTE定义,采用270M/S的码率。它是对图像的亮度和色差电平值按照4:2:2取样量化的结果,其取样字长为10位,即取样的电平有1024个台阶。由于设备存储器每字节都只有8位,只能将这10个位的数据存入2个字节中,按照Y,Cr(U),Y,Cb(V)的顺序排列,传输过程中需要将这10位并行的数字信号通过串行转换。
二.需要进行彩条检测的原因和传统彩条检测方式
随着电视播出系统安全级别的不断提高,出于播出安全考虑,一般省级电视台都需要有能对图像进行自动判断的设备或工具,减少播出事故时间,以达到高质量,不间断的播出效果。例如,对黑场,静帧,彩条等等图像错误,都需要有相应的设备自动分析是否是属于正常播出内容,以便辅助监播人员判定和排除播出过程中可能出现的错误。但是,此类自动检测设备对故障的判断都依赖于参数的设置,其一般使用的传统方法在某些特异情况下,往往不能完成检测任务。
以彩条为例,目前业内广泛使用的彩条检测方法,就是将SDI并行信号随机抽取一定行数的亮度量化值,通过与彩条标准特征值相比对(表1,表2),计算差值,如果差值为0或者小于规定的值(表3),则认为这个点符合彩条的条件。当所有点都符合彩条条件或者规定比例的点符合彩条条件以后,则认为这一帧图像为彩条。但是彩条在广播电视领域有两种格式。一种是75%彩条,一种是100%彩条。两种彩条的特征值是不同的,虽然国家规定使用75%幅度、100%饱和度信号作为标准彩条信号,但是在非编系统生成节目时,仍然可以加入100%幅度的彩条信号作为节目源,所以在彩条检测中,需要对两种都进行判断。即需要存储两组相应的取值(表1和表2)来对两种规格的彩条信号进行判断。
三.新检测方式的形成原因和原理
在实际应用中,源设备所产生的彩条有可能与彩条标准值规定的有偏差。在节目生产线上产生了检测报警器无法检测的彩条,会导致最后的彩条检测报警器无法检测到彩条的出现。
为了规避这样的问题,在我们自己设计生产的报警检测装置中,使用了一种新的彩条检测方法。新的彩条检测方法不使用彩条的标准值对彩条进行判断,而是从彩条本身的图像波形特点来进行判断。通过示波器看到,不管是75%彩条或者100%彩条,Y波形呈现出阶梯状变化。在彩条的颜色临界处,会产生阶梯的下降沿,彩条Y波形一共有7个下降沿。下降沿的产生时由于邻接的两个点亮度数据的较大差异,上升沿也是如此。这种较大差异与一个整条的数据相比(即白黄青绿紫红蓝黑),有明显的特征性边缘。正常的图像,是一个较复杂的图像,边缘的数量会明显的大于7。当一帧图像或一个区域被的图像边缘等于或小于7时,这个图像就是一个彩条图像。因此,通过判断一帧图像或一个区域的图像的边缘的个数,就可以判断彩条图像。
算法的基本思路是,在每次抽样的一行图像中,依次取紧邻的3个偶数点,算出其间的差值,取绝对值后,记录下差值先上升马上又下降的两组,获取其坐标取中间值,就是取值发生跳变的边缘,再通过限制总数和控制长度等手段来防止误判断。
核心算法实现如下:
1.在每次抽取的一行图像值中,得到最左边三个点的Y值,xxY1、xxY2、xxY3。
//024下标偶数是因为只检测CbY,见bt656格式的图像
xxY1=(pClrPix[0]>>8)&
0x0ff;
xxY2=(pClrPix[2]>>8)&
0x0ff;
xxY3=(pClrPix[4]>>8)&
0x0ff;
2.得到三个邻接点的两两之间的亮度变化差值,DIFFx_Y0、DIFFx_Y1。
DIFFx_Y0=xxY2-xxY1;//
一阶差分
DIFFx_Y1=xxY3-xxY2;//
一阶差分
3.取差值的绝对值
if(DIFFx_Y0<0){
DIFFx_Y0=-DIFFx_Y0;
}
if(DIFFx_Y1<0){
DIFFx_Y1=-DIFFx_Y1;
}
4.判断相邻差值的变化。边缘处会出现差值先变大然后又减少的特征。
//一阶差分取绝对值后,彩条的边缘处应该有峰值
if(DIFFx_Y0<=2&&DIFFx_
Y1>2){
//差值上升
pos_bar_edge[iClrIndex]=iX;
//得到差值上升坐标
up_flag=1;
}
if(DIFFx_Y0>2&&DIFFx_Y1<=2
&&up_flag){
//差值下降
pos_bar_edge[iClrIndex]=2+
(pos_bar_edge[iClrIndex]+iX)/2;
//差值下降和差值上升的坐标取中值,得到边缘坐标
iClrIndex++;
up_flag=0;
}
5.判断边缘的个数。如果大于7个边缘,则图像不是彩条。
if(iClrIndex>8){//7个边缘的峰值已经找到,出错
IsColorbarFrame=0;
break;
}
6.判断边缘之间的宽度。避免因监测区域宽度值过小导致的误判。
Edge_count=iClrIndex;
if(IsColorbarFrame){
//过滤掉只有一个下降沿的图像,可能是纯色
if(Edge_count<=1){
IsColorbarFrame=0;
}
else{
for(iClrIndex=1;iClrIndex<
Edge_count;iClrIndex++){
XDAS_Int16width
=pos_bar_edge[iClrIndex]-pos_
bar_edge[iClrIndex-1];
//宽度在80-95之间的,才认为是一个标准彩条,否则过滤。
if(width>95||width<80){
IsColorbarFrame=0;
break;
}
}
}
}
7.数据移位。图像数据往右移动两个像素。
xxY1=xxY2;
xxY2=xxY3;//xxY2是当前点
xxY3=((*pClrPix)>>8)&0x0ff;
pClrPix+=2;
依照算法,75%和100%彩条都能够明显的符合条件,由于界定了边缘个数和边缘宽度属性,除了标准的彩条信号之外,还能够很好的适应各种特异性情况。例如,非标准彩条的大面积色块(非正常图像),被压缩的彩条等等,特别要指出的是,由于不需要对应标准特征值,该算法对非全屏的彩条信号,也能很好的适应,并且,在算法上改进后,更能实现多区域的彩条信号检测,即无论在屏幕的哪个位置出现部分彩条信号(非正常图像),都能够很好的检测出来。见图1,图2。
总结
通过这样的检测方法,我们设计生产的SDI视频信号检测装置能够灵敏的对所有标准彩条信号以及多区域的彩条信号作出判断,其准确度甚至已经超过了一些昂贵的视频检测设备。并且由于能够进行区域彩条的判定,该装置的实用范围有所提高,对于字幕机等设备误操作产生的区域性彩条也能立即做出报警提示,效果明显,极大的减小了播出过程中由于这方面问题带来的播出隐患。
洪科
