改变音频数据编码或视频数据编码输出延迟的方法和装置的制作方法

文档序号:7621803阅读:621来源:国知局
专利名称:改变音频数据编码或视频数据编码输出延迟的方法和装置的制作方法
技术领域
本发明涉及一种改变音频数据编码或视频数据编码的输出延迟的方法并涉及改变音频数据编码或视频数据编码的输出延迟的装置。
具有相关视频编码器和音频编码器的编码系统被用于各种应用中,例如用于电视广播目的。在这种情况下,例如根据选择的位速率,视频编码器可以具有至多1.5秒的可变编码延迟。因此,由于消费产品解码器缓冲器的限制,所以,在复用和发送音频流和视频流之前,调整音频延迟和视频延迟。
在第99250009号欧洲专利申请中可以发现利用时间戳机制控制音频解码器内的延迟的基本原理。在多信道音频解码器板中,所产生的输入时间戳至少在一个输入处理级与待编码的音频数据帧链接,其中,输入时间戳或从输入时间戳获得的时间戳保持与处理过程中的不同处理级的相应处理帧数据链接,但是至少在最后处理级被输出时间戳替换。为了控制处理过程中的总延迟,可以对在每个这些处理级中与待处理的当前帧数据链接的相应的时间戳信息进行研究。
为了允许根据操作员的选择可转换视频编码器和音频编码器的位速率,例如为其它TV信道留出空间,可以要求音频编码器的延迟可转换。然而,第99250009号欧洲专利未披露如何控制这种延迟变化。
本发明的一个目的是披露一种用于改变音频数据编码或视频数据编码的输出延迟方法,具体地说是一种为了根据操作员的选择可转换视频编码器和音频编码器的位速率的方法。利用权利要求1所披露的方法可以实现此目的。
本发明的进一步目的是披露一种利用本发明方法改变音频数据编码或视频数据编码的输出延迟的装置。利用权利要求7披露的装置可以实现此目的。
总之,根据本发明方法,产生的输入时间戳与待编码的音频数据和视频数据链接并用于控制编码处理过程的延迟。通过利用数据延迟常数,输出时间戳由输入时间戳获得并被指定到编码数据用于表示输出时间。在输出之前,将具有指定输出时间戳的编码数据缓存,其中为了改变输出延迟,改变数据延迟常数。已经指定的输出时间戳保持不变。对于还未指定输出时间戳的数据,利用新数据延迟常数计算输出时间戳。
在各相关权利要求中披露了本发明方法的附加优选实施例。
典型实施例

图1示出改变输出延迟方法的原理流程图。对于音频采样率或音频率,在第一方法步骤1,链接或指定输入时间戳信息ITS。然后,在方法步骤2,对音频采样率或音频率进行编码。在方法步骤3,对它进行校验,是否需要改变用户确定的延迟D。如果需要,则在方法步骤4,改变输出时间戳的处理方程OTS=ITS+D。然后,在方法步骤5,用输出时间戳OTS代替输入时间戳信息ITS,之后,在方法步骤6进行缓存。在编码处理的输出端进行缓存,因为在输出端需要的存储量更低。因此,当音频解码器接收输入数据时,通常立即对输入数据进行编码,并在编码后,特别地以传输流数据包的形式将它们存储到延迟缓冲器。
在方法步骤7校验OTS,然后在方法步骤9将该数据送到输出端。如果在连续的OTS中产生间隙,则在方法步骤8插入填充数据或0数据。相反,如果在延迟缓冲器中发现两个具有相同或重叠的OTS数据包,则需要在方法步骤8进行特殊处理。一种可能性是将表示已经过去的输出时间的数据包丢弃。另一种可能性是先改变差时,然后对这种情况进行处理以将另外的数据写入输出延迟缓冲器,并且对所有后续数据包的OTS计算均使用新延迟时间。最后,在方法步骤9将数据送到输出端。
以下将更详细地特别说明在方法步骤8的数据处理过程,例如,延迟的增加或减少分别是0.3秒并且初始延迟为0.5秒。
对于延迟增加情况,延迟缓冲器存储等于0.5秒的当前有效延迟时间的特定数据并且此数据将被增加到0.8秒。这意味着,当输入到延迟缓冲器的数据连续时,需要将延迟缓冲器输出的编码数据有效停止0.3秒。
延迟缓冲器内的数据是代表延迟缓冲器连续的刚刚输出的已编码数据。因此,以这样的方式管理延迟缓冲器,即在请求改变延迟时间后,延迟缓冲器连续发送延迟0.5秒的数据直到延迟缓冲器内的所有数据在改变延迟时间时全部被输出。然后,延迟缓冲器停止输出,这意味着,或者将填充数据、0数据送到发射机/解码器链,或者无数据包送到发射机/解码器链。然后根据增加延迟缓冲器的内容的要求,停止持续0.3秒。
通过使用上述基于延迟控制机制的时间戳可以实现此性能。利用指示将数据包从延迟缓冲器中输出并返回到发射机时的时间点的输出时间戳来标记在给定时间保存到延迟缓冲器内的所有输出块,即TS数据包。不需要对已在延迟缓冲器内的数据包做任何改变,按要求,它们在产生时就被输出。操作员直接或间接改变音频延迟D时,立即改变输出时间戳的处理方程OTS=ITS+D,即将所有的OTS时间戳增加0.3秒。输出级将利用“旧”延迟计算的所有数据包从延迟缓冲器一个接一个地顺序输出。然后,在0.5秒后,在连续的OTS中将存在间隙,即下一个数据包将指出表示比没有改变延迟的数据包增加了0.3秒的OTS。然后,输出级可以发送填充数据或0数据甚或无数据包发送。
因此,对于用户,即在解码器一侧听的消费者,在请求改变延迟后,增加延迟的净效果将是●对于当前0.5秒的有效延迟时间,音频节目仍正常连续;●音频节目短暂静音0.3秒;以及●对于0.8秒的新延迟节目正常连续。
在操作员一侧,请求改变延迟时,发生如下情况●将已输入到编码器的所有节目部分连续发送到用户;●在延迟转换之后输入的所有音频部分将从用户侧的先前部分开始被短暂间歇分离。
操作员可以利用节目间隙或利用为了改变延迟时间在相异节目部分之间进行转换的瞬间可以实现对用户的最小刺激。
此外,减少延迟时,延迟缓冲器存储一定数量的数据。现在,可以将延迟从0.5秒减少到0.2秒。在这种情况下,当停止将另外输入数据写入延迟缓冲器时,输出处理必须正常继续进行0.3秒。因此,将在编码器的输入端可用的短时节目资料送到用户。总之,用户侧的音频节目是连续的,但是将信号分割为短段。
利用基于延迟控制的相同时间戳可以减少延迟。在发出请求改变音频延迟后,立即以这样的方式改变对输出时间戳OTS的计算,即OTS恰好指出比不改变延迟提前0.3秒的点。
如果连续将数据数据包写入延迟缓冲器,这样会导致在延迟缓冲器中发现两个具有相同或重叠的OTS。由于数据包在延迟缓冲器内顺序排列,所以在请求改变音频延迟之前,正常连续输出“旧”数据包直到延迟缓冲器内的所有数据在请求改变时被输出。之后,下一个数据包将指出以及过去的0.3秒输出时间OTS,因此,输出驱动级将丢弃这些数据包。
处理该情况的另一种方法是在开始请求改变0.3秒差时不将另外数据写入输出延迟缓冲器,并将新延迟时间用于对所有后续数据包进行OTS计算。在这种情况下,编码器的输出级将发现近乎连续的OTS序列。
因此,请求改变延迟之后,对于用户(在解码器侧听的消费者),减少延迟的净效果是●音频节目确实正常持续0.5秒的当前时间;●然后节目正常持续0.8秒的新延迟,但是具有0.3秒音频节目跳跃的延迟差。
在操作员一侧,请求改变时会发生下列情况●将已输入到编码器的所有节目部分连续发送,即正常发送到用户;●在用户侧不会听到在请求改变等于0.3秒延迟时差的后续时长之后立即送到编码器的节目资料。
●经过此0.3秒时长之后,在用户侧可以正常听到输入到编码器的所有音频节目部分。
因此,操作员可以利用节目内容转换来改变延迟时间,并且可以简单通过利用延迟时差延迟下一个节目的开始确保对于听众不丢失任何节目。利用编码器,即适当的淡入淡出可以选择性地将听众可听到的音频节目的所有断续性缓和。增加延迟在间隙之前淡出,在间隙之后淡入。减少延迟在跳跃部分之前淡出,在跳跃之后淡入。对于转换音频节目的同时改变延迟的情况,这可能没有必要,因为音频节目中可能含有这种转换。
如图2所示,本发明方法可以应用于音频编码器。编码器接收四个立体声PCM输入信号PCMA、PCMB、PCMC和PCMD。例如,MPEG音频数据是基于帧的数据,各帧含有1152个单声采样或立体声采样。图2所示的编码器操作系统中可以包括6个DSP(未示出)用于对4个MPEG信道编码。这6个DSP构成包括图2所示的技术性能的软件编码器。例如,适当类型的DSP是ADSP 21060或ADSP 21061或ADSP 21062型模拟装置。作为一种变换实施例,可以用硬件实现图2所示的技术性能。
利用其中各缓冲器被指定到一个或一些专用帧的FIFO缓冲器,可以使在6个DSP上,或在相应硬件上运行的软件实现同步。这意味着,在某个瞬时,当前帧以及先前帧、悬而未决的可以缓冲器的数目均出现在处理级。
在某些处理级之间,可以插入可以进行异步读、写操作的异步缓冲器ASBUF。在其它级之间,同步缓冲器BUF足够。PCM输入信号PCMA、PCMB、PCMC和PCMD分别经过异步缓冲器传送各自的转换器CONA、CONB、CONC和COND。在这种转换器中,对待编码的音频采样进行整数浮点表示法转换。也可以用编码器处理整数表示法音频采样。在这种转换器中,还可以计算帧中的一种或多种能级,例如,所帧有采样的能量或所有帧采样的平均能量。可以将这些能量值用于后续心理声学处理过程。
此外,在这种转换器中,可以将可能采用的编码参数与帧音频数据链接。在各自的参数编码器PENCA、PENCB、PENCC和PENCD中,如上所述,可以将初始编码参数进行转换并分别反馈到CONA、CONB、CONC和COND。
CONA、CONB、CONC和COND的输出数据通过异步缓冲器并行反馈到分波段滤波器SUBA、SUBB、SUBC和SUBD并分别送到第一左右信道心理声学计算器Psycho1A_L、Psycho1A_R、Psycho1B_L、Psycho1B_R、Psycho1C_L、Psycho1C_R、Psycho1D_L和Psycho1D_R。分波段滤波器将全部音频频谱分为可以使用FFT的频带,并且分波段滤波器还可以计算频带或子带内的最大参数或参数换算系数。可以在频带中进行归一化处理。分波段滤波器考虑上述时间戳信息以及可以从相应的上游异步缓冲器中读取的相关编码参数。第一心理声学计算器进行具有例如1024采样长度的FFT并确定当前掩蔽信息。每个第一心理声学计算器之后可以分别具有第二心理声学计算器Psycho2A_L、Psycho2A_R、Psycho2B_L、Psycho2B_R、Psycho2C_L、Psycho2C_R、Psycho2D_L和Psycho2D_R,用它们估计在分波段滤波器计算的最大参数或参数换算系数。第一和第二心理声学计算器考虑上述时间戳信息以及可以从相应的上游异步缓冲器中读取的相关编码参数。将Psycho2A_L、Psycho2A_R、Psycho2B_L、Psycho2B_R、Psycho2C_L、Psycho2C_R、Psycho2D_L和Psycho2D_R的输出信号通过缓冲器分别用于定位器和量化器Bal/Q/E_A、Bal/Q/E_B、Bal/Q/E_C和Bal/Q/E_D用于确定位数并量化相关分波段滤波器产生的音频数据系数。此外,在第二心理声学计算器内还可以计算在第一心理声学计算器内计算的内容并因此可以省去第一心理声学计算器。
最后,Bal/Q/E_A、Bal/Q/E_B、Bal/Q/E_C和Bal/Q/E_D的输出通过异步缓冲器并分别通过输出接口AES-EBU_A AES-EBU_B、AES-EBU_C和AES-EBU_D,这些输出接口分别发送编码器立体声输出信号PCM_Out_A、PCM_Out_B、PCM_Out_C和PCM_Out_D。这些输出接口符合IEC 958标准。
视频编码器包括如下几级块差级、DCT(离散余弦变换)、量化以及反馈回路内的反量化、反DCT、其输出被输入到块差级的运动补偿插值,其中量化输出可以是在最后输出之前编码并缓存的VLC(可变长度编码),并且缓冲器填充电平以这样的方式控制量化,即尽可能掩蔽编码的人为因素。
在此编码器中,需要下列单元●系统时基,提供系统定时,对包括输入级和输出级的所有级发送唯一数值;●硬件和/或软件工具,将系统时基与输入数据关联以获得足够精度的输入时间戳(ITS);●硬件和/或软件工具,根据输出时间戳(OTS),将系统时基与数据输出关联以获得足够精度的输出。
以下列方式使用这些单元a)系统的各输入接口,输入数据涉及系统定时器,即与输入数据一起获得输入数据时间戳并被指定到数据帧。因此,例如使用被采样的音频数据块或帧的第一采样的采样时刻的系统定时。
b)在具有多个输入的情况下,在输入时间戳给定的时间通过信道可以重新调整输入数据块。
例1分配到几个双信道接口的多信道音频输入。
例2通过信道,根据严格定义的时间关系将多个立体声编码器的位流输出多路传输到MPEG TS(传输流)。即相同延迟可能性。
c)根据输入时间戳ITS和预期的总延迟D,对输出数据计算输出时间戳OTS。
在上述最先说明的处理情况下,即系统对各输入数据块计算一个输出数据块,由OTS(n)=ITS(n)+D给出各输出端口的预期输出时间,n=0、1、2…代表数据块号。
在每个输入数据块产生几个输出数据块的情况下,甚或在产生的输出块为非整数情况下,可以根据相应的时间比例插入各输出块OTS。例如MPEG编码器1152采样输入,或具有一个或多个ESP(基本流数据包)的MPEG PES数据包以及其数据包具有188字节长度的MPEG TS传输流,即对于各每个采样帧,需要传输3至7个TS数据包。
d)对于它们与上述图1详细描述的本系统定时有关的相关OTS,当通过处理级将输出数据块送到输出缓冲器时,各输出接口检验输出数据块。根据应用,如果OTS指出已经通过时刻,则可以立即丢弃输出数据块或立即输出。如果OTS指向未来时刻,则输出级处于等待状态直到到达该时刻并且在等待期间或者不输出或者输出定义的填充类型。
可以使用一对相关装置,正如待执行的I/O处理所要求的那样,可以以不同的组合方式使用它们。
例如在最小硬件情况下,系统将单个通常作为各DSP一部分的硬件定时器与某种规则、受控输出驱动器软件敏化配合使用。然后,由DSP执行剩余的延迟控制。总之,需要两种定时器功能●‘getTime()’功能,该功能允许软件请求实际系统定时。收到(DMA或INT)各输入数据块的开始或结束后,getTime()’功能可以用于获得该输入数据块的ITS。
●在发送已经完成相应处理的输出块之前,输出功能需要某些延迟。这或者可以以轮询的方式实现,即如果可以使用某种周期敏化,可以通过对OTS周期控制实际系统定时实现,或者可以利用基于延迟功能的专用定时器实现,该专用定时器在可定义延迟‘interruptAfier(DELAY)’或‘threadActivityAfter(DELAY)’功能之后产生中断。
可以使用象逆向计数器一样运行、具有到0中断以及作为DSP的内置功能的输入DMA块和输出DMA块完成中断的单个硬件定时器。
单个硬件定时器可以提供‘interruptAfter(DELAY)’功能和‘getTime()’功能,其中对于getTime()’功能,将加载到定时器的后续延迟时间累加获得连续系统定时并且其中可以并行运行几个‘interruptAfter(DELAY)’功能。
在其各DSP实现自身定时,但是根据它们之间通过不同DSP的延迟要求分配输入和输出的多DSP系统情况下,存在定时器同步问题。此问题可以利用(例如10ms长度的)专用周期中断信号解决,将该专用周期中断信号施加到系统内的所有DSP并用于使系统定时重新同步。计数器输出字可以具有iiii.ffff的格式,其中可以将iiii理解为整数部分,将ffff理解为小数部分。每隔10ms,iiii递增‘1’。将此事件传送到DSP并进行计数。DELAY的最大可控值依赖于iiii的字长度。因此,中断指出重新同步时间,并且在中断期间,将此时的主值iiii从一个主DSP传送到所有其它DSP。在此瞬时,将ffff设置为0。
当在上述例子情况中说明的延迟控制仅需要最少硬件而因此将大多数工作留给(更廉价、更灵活的)软件处理时,缺点是延迟时间精度受例如中断等待时间、最长中断失效时间以及在多DSP系统情况下的总线仲裁时间的限制。如果实现的精度不能满足要求,则可以采用硬件增强的方法,硬件增强的方法可以使获得与系统定时相关的ITS和在与系统定时相关的OTS时的输出的处理过程的精度更高。利用软件确定粗略时间点而利用专用硬件建立准确时间点的组合解决方案可以实现一种在要求的DSP反应时间(与硬件比较趋于较慢)与硬件复杂性(时间越长越趋于复杂)之间的折衷方案。
通过在DSP之间进行联络可以防止在与最后处理级有关的缓冲器开始理论溢出并进入与先前处理级有关的缓冲器。
用于改变延迟的本发明方法还可以应用于单个DSP系统并可以应用于任何其它类型的实时处理。
在简化的应用中,例如在AC-3解码器中,根据对各块的处理时间必须比帧时长短的实时限制,在收到之后计算单个数据帧是通常采用的方法。可以将该方法扩展到具有更多分布处理过程的解决方案,分布处理过程包括划分为几个后续处理级,甚至分配到几个DSP。在这种情况下,可以迫使各处理级进入严格定义的‘时隙’,其中对各处理级的处理时间必须短于时隙长度。相反,对于上述首先说明的解决方案,不是单一时间限制问题,而是每个时隙/处理级会存在时间限制问题。
可以要求编码器能够根据不同的表明参数运行,因为MPEG允许例如各种采样频率和全数据速率。
本发明具有在操作员改变延迟时可以确保最短中断时长的优势。
本发明可以用于确保任意可变位速率编码器或需要可变处理时间的编码器具有固定编码延迟而非可变编码延迟。
本发明还特别可以应用于对MPEG 1、2或3层、数字视频广播DVB进行音频编码和解码的MPEG 1、2和4标准、应用于AC-3、MD以及AAC处理、应用于DVD处理以及涉及音频数据编码与解码的因特网应用。
权利要求
1.一种改变音频数据编码或视频数据编码的输出延迟的方法,其中所产生的输入时间戳与待编码的音频数据或视频数据链接并被用于控制编码过程的延迟,其中利用时间延迟常数由输入时间戳获得输出时间戳,将输出时间戳指定到编码数据用于指出输出时间,并且其中具有指定输出时间戳的编码数据在输出之前被缓存,其特征在于,为了改变输出延迟可以改变所述数据延迟常数,已指定的输出时间戳保持不变,并且对于已指定输出时间戳的数据,利用新数据延迟常数计算输出时间戳。
2.根据权利要求1所述的方法,其中在表现出延迟增加的输出时间戳序列内的间隙期间,发送填充数据或0数据。
3.根据权利要求1或2所述的方法,其中对于在延迟减少时出现的具有相同输出时间戳或重叠时间戳的数据,将后面指出已经过去的输出时间戳的数据丢弃。
4.根据权利要求1或2所述的方法,其中先请求将延迟改变对应于旧数据延迟常数与新数据延迟常数之间的差值,然后为了减少延迟,不将数据进一步写入输出延迟缓冲器,并且其中将新数据延迟常数用于对所有后续数据计算输出时间戳。
5.根据权利要求1至4之任一所述的方法,其中利用编码器可以缓和音频数据或视频数据的断续性。
6.根据权利要求1至5之任一所述的方法,其中通过在间隙或跳跃部分之前进行淡入和在间隙或跳跃部分之后进行淡出可以缓和断续性。
7.根据权利要求1至6之任一所述的方法实现的装置。
全文摘要
为了进行TV广播,可以使用与视频编码器和音频编码器相关的编码系统。在复用和发送音频流和视频流之前,调整音频延迟和视频延迟。根据时间戳机制,将所产生的输入时间戳与待编码的数据链接,并在输出之前,用通过数据延迟时间常数由输入时间戳获得的输出时间戳代替。输入时间戳用于控制编码处理过程的延迟。为了允许输出延迟可转换,可以改变时间延迟常数。已指定的输出时间戳保持不变。对于已经指定输出时间戳的数据,利用新延迟常数计算输出时间戳。
文档编号H04N7/24GK1318947SQ0111007
公开日2001年10月24日 申请日期2001年3月29日 优先权日2000年3月29日
发明者乌尔里希·施赖伯, 斯特凡娜·舒凯 申请人:德国汤姆森-布兰特有限公司, 汤姆森广播系统公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1