码率控制方法及码率控制器的制作方法

文档序号:7765898阅读:410来源:国知局
专利名称:码率控制方法及码率控制器的制作方法
技术领域
本发明涉及码率控制领域,具体而言,涉及一种码率控制方法及码率控制器。
背景技术
数字存储媒体、电视广播以及通信等应用领域对于运动图像及其伴音的通用编码 方法的要求日益增大,MPEG-2标准的视频部分即应这种要求而产生。它的用处在于可以使 运动视频数据作为一种计算机可处理的数据形式,并且可以存储在各种存储媒体上,可以 在现存或未来的网络上发送、接收,并且可以在现存或未来的广播信道上传播。MPEG-2的视 频标准目前已成为一个通用的应用于较广范围的比特率、分辨率、质量和服务的标准。随着人们生活水平的日益提高,对电视节目的种类的需求伴随着提高。对数字电 视供应商、运营商来说,如何能够在有限的带宽限制范围内,提供更多种类的节目,实为大 势所趋。而如果通过卫星电视传播信号,带宽就更加紧迫,视频码率压缩尤其可贵。对于编码节目进行视频码率压缩,是转码的一类方式,即为转换码率。传统的方案 是解码器和编码器级联,硬件复杂度太高,不实用。另外一种方案是在延用编码节目的运动 矢量和宏块类型,对已编码节目进行部分解码,在变换域完成视频码率的压缩,之后再进行 部分编码。这种方案省掉了视频编码中最耗时的运动估计和宏块类型选择等模块,以及解 码中的运动补偿等模块,大大降低了计算复杂度,以上方案称为快速转码。码率控制是转码 的一个组成部分,输出码率分为固定比特率(Constant Bit Rate,简称为CBR)和可变比特 率(Variable Bit Rate,简称为VBR)两种模式。VBR模式常用在多节目共享一个复用带宽 的情况下,根据节目的复杂程度动态调整节目的输出码率,可以同时达到带宽的利用率和 节目的图像质量都比较理想。但是,输出码率也要考虑到接收设备(解码器或者机顶盒) 的接收能力,保证数据处理之后能够在合适的时间到达解码器正常解码,到达解码器过早 或者过晚都会引起解码缓冲区的溢出,导致数据不能够正常解码。针对相关技术中往往因解码缓冲区的溢出而导致不能正常解码的问题,目前尚未 提出有效的解决方案。

发明内容
针对相关技术中往往因解码缓冲区的溢出而导致不能正常解码的问题而提出本 发明,为此,本发明的主要目的在于提供一种码率控制方法及码率控制器,以解决上述问题。为了实现上述目的,根据本发明的一个方面,提供了 一种码率控制方法。该码率控 制方法包括给源帧转码后的数据包加上解码时间戳(Decoding Time Stamp,简称为DTS) 戳;通过所述DTS戳的大小来控制输出码率的范围。为了实现上述目的,根据本发明的另一方面,提供了 一种码率控制器。该控制器包 括添加模块,用于给源帧转码后的数据包加上DTS戳;控制模块,用于通过所述DTS戳的 大小来控制输出码率的范围。
通过本发明,采用给源帧转码后的数据包加上DTS戳;以及通过所述DTS戳的大小 来控制输出码率的范围,解决了相关技术中往往因解码缓冲区的溢出而导致不能正常解码 的问题,进而达到了抑制解码缓冲区溢出,保证视频数据能够正常解码的效果。


此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发 明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中图1是根据本发明实施例的码率控制方法的流程图;图2是根据本发明实施例的视频转码的流程图;图3是根据本发明实施例的码率控制的流程图;以及图4是根据本发明实施例的码率控制器的示意图。
具体实施例方式需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相 互组合。下面将参考附图并结合实施例来详细说明本发明。根据本发明的实施例,提供了 一种码率控制方法及码率控制器。图1是根据本发明实施例的码率控制方法的流程图。如图1所示,该方法包括如 下的步骤步骤S10,给源帧转码后的数据包加上DTS戳;以及其中,在给源帧转码后的数据包加上DTS戳之前,还包括计算待发送数据包的 DTS 戳。计算待发送数据包的DTS戳包括对相邻数据包之间的DTS间隔进行调整;以及, 将调整后的值作为初值,根据该初值得到数据包的DTS戳。优选地,在计算待发送数据包的DTS戳之前,还包括计算相邻数据包之间的DTS 间隔。计算相邻数据包之间的DTS间隔包括计算相邻帧之间的DTS间隔;计算源帧转 码后的数据包的数量M ;以及,根据相邻帧之间的DTS间隔和数量M计算相邻数据包之间的 DTS间隔。例如,可以采用以下公式计算源帧转码后的数据包的数量M M =BITSframe+188*8-1/188*8,其中,BITSframe为当前处理帧的比特数。步骤S12,通过DTS戳的大小来控制输出码率的范围。优选地,在通过DTS戳的大小来控制输出码率的范围包括首先计算最小最大包 率,然后根据最小最大包率来修正码率分配的包数。可以通过以下方法来计算最小最大包率计算当预测包相对于最小等待时间的第 一冗余;计算当预测包相对于最大等待时间的第二冗余;以及,根据第一冗余和第二冗余 计算最小时隙最小最大包率。在上述方法中,在第一冗余小于零时,立即发送数据包;在第一冗余大于等于零时,且第二冗余小于等于零时,在第一时间内发送数据包;以及,在第二冗余大于零时,以第 一速率发送数据包。图2是根据本发明实施例的视频转码的流程图。如图2所示,该视频转码的方法 包括部分解码,码率控制,部分编码。图3是根据本发明实施例的码率控制的流程图。如图3所示,本发明提供一种转 码中根据DTS来控制输出码率范围的方法。本方案的处理流程见附图3,包括以下几个环节部分解码头数据和离散余弦变换(Discrete Cosine Transform,简称为DCT)数 据的解码。头数据沿用编码流携带的信息,DCT数据解到变换域。码率控制通过改变视频图像的编码比特数来控制输出码率。和发射控制器之间存在反馈。部分编码头数据和DCT数据的编码。使用码率控制计算得到的编码量化级。DTS戳生成器对BUF里的编码数据包生成DTS,用于发送控制。发射控制器按照一定的标准控制发送速率,使数据到达解码器时DTS可控。使用的变量如下PCR (Program Clock Reference)本地程序时钟参考。DTSpes 源 PES (Program Elementary Stream)分组里携带的解码时间戳。DTSpes_adapt 调整后PES分组里携带的解码时间戳。DTSi 处理帧打包后第i个包的解码时间戳。DTS_DELTAframe 处理帧打包后相邻帧之间的DTS间隔。DTS_DELTAts 处理帧打包后相邻包之间的DTS间隔。Decode_Min31 到达解码器的最小等待时间(单位ms),小于这个值会引起解码 缓冲区的下溢。Decode_Max31 到达解码器的最大等待时间(单位ms),大于这个值会引起解码 缓冲区的上溢。Pmax_timeslice 单时隙内能够发送的最大包数,和输出的系统码率有关。N 帧率。BITSframe 编码帧的比特数。Tc:时隙宽度。(单位ms)Timel 当前预测包相对于最小等待时间的冗余。Time2 当前预测包相对于最大等待时间的冗余。Nbuf =BUF里的有效包数。Pmin 当前时隙的最小发送包数Pmax 当前时隙的最大发送包数本发明只涉及到DTS戳生成器和发射控制器两部分。码率控制模块和发射控制器 之间有关联。关联的部分包括码率控制模块提供Tc间隔内的发包参考值P,根据发射控制 器修正后,实际发送的包数为P’。码率控制模块获取Buf的状态和P’,用来反馈到随后视 频图像的编码量化级,码率控制模块的作用是保证Buf和编码量化级的平稳。DTS戳生成器
产生转码后视频数据包的DTS戳。快速转码环节不改变编码流的PES结构,解码时可以获取编码流的PES信息,其中 包括解码时间戳和显示时间戳,这里只用到解码时间戳DTSpes。由于本地PCR和源PCR之 间的差异,打包前需要对解码时间戳和显示时间戳进行调整,调整后的PES分组里携带的 解码时间戳为DTSpes_adapt。Buf里以188字节为基本存储单位,便于发送时传输。当编码比特不是188字节的 整数倍时,加入填充数据0转化成整包数。当前处理帧的比特数为BITSframe,可以得到存 储时的TS包(188字长)数为M
权利要求
一种码率控制方法,其特征在于,包括给源帧转码后的数据包加上DTS戳;以及通过所述DTS戳的大小来控制输出码率的范围。
2.根据权利要求1所述的方法,其特征在于,在给源帧转码后的数据包加上DTS戳之 前,还包括计算待发送数据包的DTS戳,包括对相邻数据包之间的DTS间隔进行调整;以及将调整后的值作为初值,根据该初值得到所述数据包的DTS戳。
3.根据权利要求2所述的方法,其特征在于,在计算待发送数据包的DTS戳之前,还包括计算相邻数据包之间的DTS间隔,包括 计算相邻帧之间的DTS间隔; 计算所述源帧转码后的数据包的数量M ;以及根据所述相邻帧之间的DTS间隔和所述数量M计算相邻数据包之间的DTS间隔。
4.根据权利要求3所述的方法,其特征在于,采用以下公式计算 所述源帧转码后的数据包的数量M Μ — ·—+188*8-1 , ~ 188*8 ‘其中,所述BITSftame为当前处理帧的比特数。
5.根据权利要求1所述的方法,其特征在于,在通过所述DTS戳的大小来控制输出码率 的范围包括计算最小最大包率,根据所述最小最大包率来修正码率分配的包数。
6.根据权利要求5所述的方法,其特征在于,通过以下方法来得到所述最小最大包率 计算当预测包相对于最小等待时间的第一冗余;计算所述当预测包相对于最大等待时间的第二冗余;以及 根据所述第一冗余和所述第二冗余计算最小时隙最小最大包率。
7.根据权利要求6所述的方法,其特征在于,还包括 在所述第一冗余小于零时,立即发送所述数据包;在所述第一冗余大于等于零时,且所述第二冗余小于等于零时,在第一时间内发送所 述数据包;以及在所述第二冗余大于零时,以第一速率发送所述数据包。
8.—种码率控制器,其特征在于,包括添加模块,用于给源帧转码后的数据包加上DTS戳;以及 控制模块,用于通过所述DTS戳的大小来控制输出码率的范围。
9.根据权利要求8所述的码率控制器,其特征在于,还包括第一计算模块,用于计算待发送数据包的DTS戳,其中,首先对相邻数据包之间的DTS 间隔进行调整,然后根据调整后的值作为初值,得到所述数据包的DTS戳。
10.根据权利要求8所述的码率控制器,其特征在于,还包括第二计算模块,用于计算最小最大包率,其中,所述控制模块还用于根据所述最小最大包率来控制输出码率的范围。
全文摘要
本发明公开了一种码率控制方法及码率控制器。其中,该码率控制方法包括给源帧转码后的数据包加上DTS戳;以及通过所述DTS戳的大小来控制输出码率的范围。通过本发明,解决了相关技术中往往因解码缓冲区的溢出而导致不能正常解码的问题,进而达到了抑制解码缓冲区溢出,保证视频数据能够正常解码的效果。
文档编号H04N7/50GK101984667SQ201010552460
公开日2011年3月9日 申请日期2010年11月19日 优先权日2010年11月19日
发明者王智 申请人:北京数码视讯科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1