对循环播放的传输流进行控制和调整的方法 技术领域
本发明涉及对循环播放的传输流进行控制、调整的场合,尤其涉及对循环播放含音/视频信息的传输流进行控制和调整的场合。
背景技术
采用现有技术循环播放音/视频传输流时,普遍存在循环播放首尾链接处出现画面残损、抖动、失步,因而影响图像、声音质量的问题。
发明内容
为克服现有技术的不足,提供一种首尾链接处画面完整、连续、平滑,同步稳定的循环播放传输流,本发明采用地技术方案是:
对循环播放的传输流依下列步骤,进行控制和调整:
自传输流头部向后,找到第一个完整、有效的节目关联表;
剪切该节目关联表,将其重复数次;
按节目关联表找到并剪切完整、有效的全部节目映射表,附在前一步骤得到的传输流后;
找到第一个图组头部,去掉其前面的部分,设置为解码器不解码该图组中I帧后紧随的B帧状态,接在前一步骤得到的传输流后;
自传输流尾部,逆向找到第一个图组头部,保留其后I帧之后紧随的B帧,删除后面的传输流;
自传输流尾部,逆向找到第一个完整有效的节目关联表,将其设置为下一个节目关联表有效;
循环播放传输流时,检查传输流数据包的同步字,确认进入包同步状态;
按特定的传输流数据包识别符恢复正确的节目关联表;
由节目关联表查到节目映射表所在传输流数据包的识别符,提取节目映射表;
由节目关联表查到节目时钟基准所在传输流数据包的识别符,确定节目时钟基准的位置;
检测节目时钟基准在传输流数据包中的位置,并通过添加空传输流数据包,使节目时钟基准自输出缓存器大小值的整数倍位置离开;
使整个传输流长度为输出缓存器大小值的整数倍;
重新计算、设置定时参数节目时钟基准、视频流解码时间标记和显示时间标记的值,记录节目时钟基准、视频流解码时间标记、显示时间标记的位置及数值,生成参数报告文件;
循环播放中按照前一步骤得到的参数报告文件,更新节目时钟基准、视频流解码时间标记和显示时间标记值;
对传输流中的音频包不做其它处理。
其中,所述的输出缓存器大小值为63KB;所述数据包的同步字是0x47,所述检查数据包的同步字,确认进入包同步状态是指检测到5个数据包同步字,且彼此相距188字节。
由于本发明采用了前述步骤,因而实现首尾链接处画面完整、连续、平滑,同步稳定的效果。
附图说明
图1为传输流时钟基准字段值的分布图
图2为视频流解码时间标记值和显示时间标记值的分布图
图3为音/视频流时钟基准值和视频流解码时间标记值的分布图
图4为经本发明处理后的传输流示意图
图5为本发明定时参数更新流程图
具体实施方式
下面结合附图和实施例,进一步说明本发明。
图1为数据包节目时钟基准PCR字段值的分布,其值按随传输流TS数据包线性增长计算。
图2为视频流解码时间标记和显示时间标记值的分布。随数据包序号增加,视频流的解码时间标记DTS值按等量增长计算,显示时间标记PTS值按图示的阶跃状变化计算,图2所示的解码时间标记DTS、显示时间标记PTS值的平均变化率与图1所示节目时钟基准PCR的平均变化率相同。
图3为音/视频流节目时钟基准PCR、解码时间标记DTS值的分布。音频流的显示时间标记PTS等于解码时间标记DTS,该图使用点划线标明了音频流解码时间标记DTS值随传输流TS数据包序号增长。随传输流TS数据包序号增加,各音/视频数据的解码时间标记DTS值,对相应的节目时钟基准PCR值,按不等滞后量计算,解码时间标记DTS的平均变化率与节目时钟基准PCR的变化率相同。
图4为首尾处理后的传输流TS示意图。它始于节目关联表PAT,剪切该节目关联表,将其重复数次,节目映射表PMT紧随其后,再后找到第一个图组头部,去掉其前面的部分,设置为解码器不解码该图组中I帧后紧随的B帧状态,其后为一系列传输流TS数据包。自传输流TS尾部,逆向找到第一个完整有效的节目关联表,将其设置为下一版本节目关联表有效。处理后的传输流TS尾部结束于经此处理后的节目关联表PAT,其前为含图组头部及其后装载非P帧数据的传输流TS数据包。
然后,对经首尾处理的上述传输流TS数据包进行定时参数实时更新:检测节目时钟基准PCR在传输流数据包中的位置,并通过添加空传输流TS数据包,使节目时钟基准PCR自输出缓存器大小值的整数倍位置离开,并使整个传输流TS文件长度为输出缓存器大小值整数倍。
对恒定码率传输流TS数据文件,由其大小,计算播放一次节目时钟基准PCR增量,每次循环,实时累加、更新节目时钟基准PCR;
循环播放中,显示时间标记PTS、解码时间标记DTS实时累加,更新相应增量;
在不能或不需要实时进行上述全部处理情况下,作为信号源,可部分预处理,预先生成报告文件,再按其实时更新定时参数。
在本实施例中采用机顶盒STB接收和解码。
首播首尾处理后的传输流TS时,机顶盒STB连续检测到5个同步字0x47,彼此间隔188字节,确定传输流TS数据包进入包同步状态;
获取完整、有效的节目关联表;
机顶盒STB按节目关联表找到各节目之完整、有效的节目映射表PMT;
机顶盒STB从完整的图组,由I帧开始,依次重建不含前一图组图像的解码图像序列;
机顶盒STB解码到TS尾部,结束于I帧或属于前一图组的B帧;
因数据文件尾部已拷贝原传输流TS末尾完整、有效节目关联表PAT,且将其设置为下一版本节目关联表PAT有效,故无论原传输流TS中节目关联表PAT版本有无变化,循环到文件头部时,必启用第一个节目关联表PAT;
由于机顶盒STB依处理后的传输流TS中之节目时钟基准PCR恢复本地时基,进而确认音视频帧的解码时间标记DTS和显示时间标记PTS值,从而实现音视频同步。
在研究数字电视制式、开发数字电视产品、监测数字电视系统运行、维修数字电视设备时,需提供图像格式不同、扫描和编码参数不一的多种传输流TS,而且需将其循环播放。为此,本发明提供了传输流TS定时参数节目时钟基准PCR、解码时间标记DTS和显示时间标记PTS的计算、实施方法,以及传输流TS循环播放中的首尾处理和实时定时更新其它定时参数的可行方案。本发明不仅给出了循环播放传输流TS时,其首尾处理和实时更新其定时参数的方法,从而使首尾链接画面完整、连续、平滑,同步稳定、可靠,而且对解决数字音视频系统困难的同步问题,具有普遍意义,因而本发明具有很高的实用价值。