APP下载

数字电视节目切换方法的研究及应用系统设计

2012-06-29杨秀芝郭文进

电视技术 2012年22期
关键词:码流音视频支路

杨秀芝,郭文进

(1.福州大学物理与信息工程学院,福建 福州 350108;2.福建睿能电子有限公司,福建 福州 350003)

责任编辑:魏雨博

数字电视是近十几年发展起来的高新技术,其在声像质量、抗干扰性及传送节目的数量等方面有模拟电视无法比拟的优点。数字电视的开播,不但使观众可以欣赏更多的优质节目,同时也为电视运营商提供了巨大的商机。电视台在播出节目时出于运营的目的经常需要在一路码流中插入自制节目、广告、片花等其他音视频TS流来覆盖原来的某个节目[1]。在进行两路节目源的切换时,如果直接停止当前播放的节目源,插入切换后的目标节目源,就会在切换瞬间出现黑屏、马赛克,有些甚至会出现解码错误、不能正常播放等情况[1-2]。国内外对数字电视码流的实时拼接也有相关的研究,例如文献[1-2]对拼接点的选择进行了研究,提出了采用基于基本层(数据帧)的拼接方法,文献[3]对两路单节目进行了讨论,着重研究了拼接点的问题。本文针对数字电视节目实时插播的需要,提出了一种在多节目码流中实时插播一套单节目的新的节目切换方法,不仅考虑插播点的选择,而且考虑两路码流都是可变码率时的缓存选取和两路数据在丢包最少情况下的合成,保证插播系统的正常播放。

1 无缝切换技术的研究

1.1 拼接点的选择

目前使用的视频压缩标准无论是H.264,AVS还是MPEG-2,都在视频层中规定了I帧、P帧、B帧3种帧类型[4]。I帧为帧内编码,P帧为前向预测帧,B帧是双向预测帧。下面以MPEG-2标准为例,介绍拼接点的选择。视频数据流在编解码时,是以1个视频图像组或者视频序列为单位来进行的(图像组一般为15帧结构),视频图像组头或者视频序列头第1个编码帧即是I帧。因此需要检测替换源节目的图像组头(标志位0x000001B3)即可找到I帧[4]。同时由于后向预测的引入,使得编码后不再按原来视频数据流的顺序进行,所以解码后需进行帧重排,因此必须使被替换的视频流的图像组完整通过,才能正确显示替换之前的图像,否则会产生马赛克现象[3]。

因此无缝拼接点的选择必须为被替换源视频流图像组的结束位和替换源节目视频流图像组的开始位。

1.2 音视频数据的二级缓存

为了进行无缝切换,在音视频数据合成缓存器之前还需要加入一级缓存控制。由于替换源和非替换源节目数据到达时间是随机的,且两路节目的音视频组包的大小也可能不一样,如在检测到替换源节目视频信号的I帧包头后,不一定能立即检测到被替换源视频信号B帧的包尾,此时需要将替换源I帧数据暂时存储起来,等待被替换源1个视频组包数据结束后再将替换源数据插入,以保证电视画面的无间断显示。

缓存容量的大小应保证存储的实时码流不上溢,它与替换源和被替换源的实际传输码率和采用的压缩标准有关。当二者都是标清节目时,设节目码率为3~5 Mbit/s;当采用MPEG-2标准的IBBPBBP编码方式时,缓存容量应大于0.8~1.4 Mbit/s。

1.3 PCR调整

由于两路TS流的时间基准点不同,从而导致切换后码流中的PCR不连续。因此需要对切换后的PCR进行修正。修正的方法是找到拼接点前被替换节目的最后1个PCR和拼接点后替换源节目中的第1个PCR,求出偏移量,然后再替换源节目的PCR,DTS,PTS上加上相应的偏移量,来保证PCR的连续[2]。

1.4 数据的合成

切换时的另一个关键技术是数据的合成,这里利用复用的方法将替换源数据和被替换源中其他节目数据合成一路TS流。

首先将两路码流的PSI信息、替换源音视频数据、被替换源其他节目的音视频数据、PCR数据包等各自存入1个FiFo先进先出缓存器中。由于各路输入码流一般是可变速率的,因此本文采用不同码率的两种调度策略方式,使各个输入流对固定的输出总带宽进行动态分享[5]。

两级调度算法模型如图1所示。

第一级调度使用大码率(27 Mbit/s),根据先进先出及数据量多的先出两种算法进行调度,将各路码流合成一路传输流。

第二级使用预先设定的固定的输出总带宽,根据先进先出的原则将码流均匀地输出。

1.4.1 第一级调度

第一级调度同时使用先进先出及数据包数多的先出两种算法,这两种算法使用权重进行统一,权值最大者得到调度的机会。具有相同数据包数的支路具有相同的优先级,如果有多个支路具有相同优先级,则采用先进先出算法。调度器根据优先级来确定一级权值,同时调度器会为拥有同一级权值的支路根据先后顺序分配一个二级权值。包数最多且数据最早到来的支路权值最大,将得到调度机会[4]。采用这两种策略可以减小传输数据流的时延,同时还可以减小缓冲器容量的使用。

第一级调度的具体实现过程如下:

1)各路合成缓冲器有包进入时,通知调度器该路的优先级,调度器根据优先级为该包分配一个权值,最早到来的包二级权值最大,并依次减1。

2)调度器从各支路获取目前最高优先级的支路。处于最高优先级的支路根据调度器分配的二级权值,判断自己是否是权值最大者,若是,则发出调度使能信号给调度模块,调度模块对该路进行调度。

3)权值最大者调度出去后,该最高优先级内的各输入的二级权值相应加1,使处于该优先级的第2个数据包获得调度机会,依此类推进行调度。

设有N(N=5)路输入,各个输入的缓存为M个包,则上述过程可描述为对一个N×M的表进行调度,调度图如图2所示。

图2中括号外的n-2,n-1,n分别表示当前各路的优先权值,括号内数字表示下一时刻的调度优先权值。设当前ts1,ts2,ts3支路分别存储有一个数据包,到来的顺序为3,2,1,调度器给出优先级“1”,第3路判断自己的二级权值为n,因此通知调度器来读数据。该包输出后,处于“1”优先级支路的二级权值加1,此时由于第1路收到了第2个数据包,则最高优先级变为“2”,如虚线所示,因此第1路的第1个包获得调度机会,若此时各路都没包进来,则接下来调度的数据包顺序为第2路的第1个包,第1路的第2个包。在各路输入码率比较均匀且输出码率大于等于各路码率之和时,各个输入的缓冲只需2个数据包的容量即可,考虑到输入码率的不均匀性,各路合成缓冲器应留有一定余量。由于本设计中第一级调度使用的码流的最高处理时钟为27 MHz,因此合成缓冲器选择4个TS数据包的容量大小,即188×8 bit。这种方法可以实现无丢包的第一级调度。

1.4.2 第二级调度

第二级调度由于只有1个缓冲区,直接按照设置的码率使用先进先出策略调度即可。其缓冲区能容纳的包数设置为N×M个。当缓冲区将满时,则将要进入的下个数据包丢掉。当缓冲区中存储的数据不到1个TS包时,则插入1个空包输出,保证缓冲区不会发生上溢和下溢。缓冲区容量越大,丢包的数量越少。

2 系统设计方案

该系统由1块FPGA芯片实现。其实现原理框如图3所示。包括码流同步模块、节目匹配检测模块、节目过滤模块、SI信息生成模块、FiFo控制模块和复用调度模块。本设计有两个输入,一个为多节目源输入(被替换源),另一个为单节目源输入(替换源)。当不进行切换时,多节目源直接输出不做任何修改;需要切换时,则先进行匹配检测是否符合替换要求,若符合,则输出该单节目,并过滤多节目中被替换的节目,同时重新生成新的服务信息表,若不符合,则不进行切换。各路码流通过复用合成一路码流输出。

在进行节目数据的替换前,首先要对节目进行匹配检测。节目匹配检测主要有两个功能,一个是进行标识符的匹配,检测该单节目是否符合切换要求;另一个是进行过滤节目的匹配,检测多节目源中是否有与待替换节目相同的PID值。

为了进行无缝切换,在各支路数据合成缓存器(合成FiFo)之前加入了一级替换缓存和缓存器控制电路。当选择切换时,进行标识符匹配的单节目码流在FiFo控制模块的控制下并不进入合成缓存器中,此时复用输出的为原多节目码流的全部数据。当检测到的标识符匹配时,发出过滤使能信号给节目过滤模块,同时FiFo控制模块1在检测到替换源节目的视频组包头后让该单节目的数据进入替换缓存器;节目过滤模块在接收到过滤使能信号后过滤多节目数据包,过滤掉被替换的那一套节目,并将检测到的服务信息表送入服务信息生成模块进行节目信息的修改。当节目切换停止(即由切换状态返回不切换状态)时,FiFo控制模块1在确定进入合成缓存器的数据包是音视频组包的包尾时即停止该路数据的输入,同时停止过滤使能,并将匹配检测模块中电路复位,不影响下次切换。此时过滤模块对输入的多节目流不做任何处理,多节目全部数据被送到下一级缓存区中被调度和传输。

3 结果验证

在用Altera公司FPGA搭建的开发平台上实现了上述节目切换系统,并利用计算机仿真和硬件测试两种手段对系统进行了实际验证。

仿真测试时,替换源码流和被替换源码流数据由软件实时产生。切换系统用替换源中PID值为0x65的节目覆盖被替换源TS流中PID值为0x66的节目,结果如图4所示。

图4中clk27为系统时钟,clr_mend为异步清零,C1为切换使能,c1_cni_in为替换源TS包字节计数,c1_data_in为替换源TS包数据,douten为切换输出有效信号,dout为切换后合成一路码流的数据输出。可看出,在douten=1后,原dout中PID值为0x66的节目有效数据(均为0)改变为了PID值为0x65节目中的有效数据。仿真结果验证了该系统的正确性。

硬件测试时两路输入均采用从数字电视卫星接收机接收的节目数据,其中一路经过复用器变为单节目流作为替换源,另一路包含6套电视节目,作为被替换源,选择被替换节目PID后,开始节目替换。经多次实际测试,在按下替换按钮后,电视屏幕上能够很快转为播放替换源节目,转换过程中没有黑屏和马赛克现象。

4 总结

本文通过对基于MEPG-2标准的传送流TS的研究,分析了无缝切换数字电视节目中经常会出现的黑屏和马赛克现象的原因,阐述了相应的解决方法,并利用Altera公司的FPGA芯片实现了数字电视节目切换系统。该系统通过时序仿真验证和硬件实际测试能够流畅的进行电视节目的替换,即用一路单节目数据覆盖另一路多节目中选定的节目数据,实现自制节目或广告的插播,并且节目切换的过程中没有黑屏和马赛克现象。切换前后多节目码流中各节目的所有标识符不变,不影响码流中其他节目播放,实现了数字电视节目的无缝切换。电视节目插播的效果与专业级设备插播效果相比,在视觉上看不到差异,但用该方案实现的切换系统切换简单、时延小、成本低、具有较高的实用价值。

[1]郑冰洋.TS流无缝拼接技术研究[D].天津:天津大学,2006.

[2]崔巍,李煜.MPEG-2TS流无缝拼接的研究与实现[J].电视技术,2004,28(10):65-67.

[3]谢志华,邹道文,汪胜前.一种新的数字电视TS流无缝拼接处理技术[J].广播与电视技术,2006(2):80-82.

[4]ISO/IEC13818-1,Generic coding of moving pictures and associated audio:systems[S].1994.

[5]曹理宇,杨格兰,何建新.基于权重的多路媒体流复用调度算法[J].湖南工程学院学报,2007,17(4):41-45.

猜你喜欢

码流音视频支路
分布式码流实时监控与录制系统的设计与实现
数字电视TS码流协议简要分析
基于限流可行方案边界集的最优支路投切
3KB深圳市一禾音视频科技有限公司
WIFI音视频信号传输的关键问题探究
高速公路整合移动音视频系统应用
多支路两跳PF协作系统的误码性能
利用支路参数的状态估计法辨识拓扑错误
一种比较ASN.1码流差异的方法
多并联支路型可控电抗器短路电抗对支路电抗和电流的影响