影像译码与影像转码方法及系统转让专利

申请号 : CN200610142059.X

文献号 : CN101159863B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 林建佑阎大贵潘廷建

申请人 : 凌阳科技股份有限公司

摘要 :

本发明关于一种影像译码与影像转码的方法及系统,其对视频数据流进行译码、显示及转码。当上一帧译码完成时,译码程序检查是否有帧缓冲器可使用,若是,则对现行帧译码,并暂存至帧缓冲器,且设定帧标记为可使用,其中帧标记与帧缓冲器相关。当上一场显示完成时,显示程序检查是否有帧缓冲器暂存译码后的帧,若是,则读取帧缓冲器中的译码帧,并予以显示。当上一帧译码完成时,在转码程序中检查是否有帧缓冲器暂存译码后的帧,若是,则读取帧缓冲器中的译码帧,并予以转码。

权利要求 :

1.一种影像译码与影像转码方法,其对视频数据流进行译码、显示及转码,其将译码后的帧暂存于四个帧缓冲器中,该视频数据流具有一序列的帧,该每译码后的帧具有第一场及第二场,该方法包括:译码步骤,当上一帧译码完成时,检查是否有前述帧缓冲器可使用,若是,则对现行帧进行译码而暂存至该帧缓冲器,并设定与该帧缓冲器相关的帧标记为可使用;

显示步骤,当上一场显示完成时,检查是否有前述帧缓冲器暂存该译码后的帧,若是,则读取该帧缓冲器中的该译码后的帧,并予以显示;以及转码步骤,当上一帧译码完成时,检查是否有前述帧缓冲器暂存该译码后的帧,若是,则读取该帧缓冲器中的该译码后的帧进行转码。

2.根据权利要求1所述的方法,其中,在该译码步骤中,若判定该帧缓冲器不可使用,则不对该现行帧进行译码,并设定译码标记以指示该现行帧等待译码。

3.根据权利要求2所述的方法,其中,当上一场显示完成时,该显示步骤再检查该译码标记,若该译码标记已被设定,则该显示步骤触发该译码步骤。

4.根据权利要求1所述的方法,其中,在该显示步骤中,若判定该帧缓冲器没有暂存该译码后的帧,则显示先前显示的场。

5.根据权利要求1所述的方法,其中,在该显示步骤中,检查该帧缓冲器是否有暂存该译码后的帧,其利用检查与该帧缓冲器相关的该帧标记来判断。

6.根据权利要求1所述的方法,其中,在该转码步骤中,若判定该帧缓冲器没有暂存该译码后的帧,则不进行该转码步骤。

7.一种影像译码与影像转码系统,其对视频数据流进行译码、显示及转码,该视频数据流具有一序列的帧,该每译码后的帧具有第一场及第二场,该系统包含:内存,具有四个帧缓冲器,用于暂存该视频数据流译码与转码时的影像数据;

译码单元,其耦合至该内存,用于接受该视频数据流,并对该视频数据流执行译码,而产生译码后的帧,再将该译码后的帧写至该内存中指定的该帧缓冲器,其中,当上一帧译码完成时,该译码单元检查是否有前述帧缓冲器可使用,若是,则对现行帧译码,且暂存至该帧缓冲器,进而设定与该帧缓冲器相关的帧标记为可使用;

显示单元,其耦合至该内存,以由该内存中指定的前述帧缓冲器读取并显示该译码后的帧,其中,当上一场显示完成时,该显示单元检查是否有该帧缓冲器暂存该译码后的帧,若是,则读取该帧缓冲器中的该译码后的帧,并予以显示;以及转码单元,其耦合至该内存,其从设定的该帧标记对应的帧缓冲器读取数据以传送给编码单元,并执行编码动作而产生影像比特流,其中,当上一帧译码完成时,该转码单元检查是否有前述帧缓冲器暂存该译码后的帧,若有,则读取该帧缓冲器中的该译码后的帧,并予以转码。

8.根据权利要求7所述的系统,其还包含:

控制单元,其耦合至该译码单元、该显示单元及该转码单元,用于初始化及控制该译码单元、该显示单元及该转码单元的执行时序。

9.根据权利要求8所述的系统,其中,该译码单元还包含译码标记,用于当判定该帧缓冲器为不可使用时,该译码单元则不对该现行帧译码,并设定该译码标记用于指示现行帧等待译码。

10.根据权利要求9所述的系统,其中,当上一场显示完成时,该显示单元还检查该译码标记,若该译码标记已被设定,则该显示单元触发该译码单元。

11.根据权利要求8所述的系统,其中,该显示单元若判定该帧缓冲器没有暂存该译码后的帧,则显示先前显示的场。

12.根据权利要求8所述的系统,其中,该显示单元检查该帧缓冲器是否有暂存该译码后的帧,其利用检查与该帧缓冲器相关的该帧标记来判断。

13.根据权利要求8所述的系统,其中,该转码单元若判定该帧缓冲器没有暂存该译码后的帧,则该转码单元不执行转码。

14.根据权利要求8所述的系统,其中,上一帧译码完成及上一场显示完成为异步。

15.根据权利要求8所述的系统,其中,上一帧译码完成及上一场显示完成为同步。

16.一种影像译码与影像转码系统,其对视频数据流进行译码、显示及转码,该视频数据流具有一序列的帧,该每一帧译码后具有第一场及第二场,该系统包含:内存,其具有四个帧缓冲器,用于暂存该视频数据流译码与影像转码时的影像数据;

译码单元,其耦合至该内存,用于接受该视频数据流,并对该视频数据流执行译码,而产生译码后的帧,再将该译码后的帧写至该内存中指定的前述帧缓冲器;

显示单元,其耦合至该内存,以由该内存中指定的前述帧缓冲器读取并显示该译码后的帧;

转码单元,其耦合至该内存,其从设定的帧缓冲器读取数据以传送给编码单元,并执行编码动作而产生影像比特流;以及控制单元,其耦合至该译码单元、该显示单元及该转码单元,以初始化及控制该译码单元、该显示单元及该转码单元的执行时序及存取的这些帧缓冲器;

其中,该控制单元利用这些帧缓冲器的编号以控制该译码单元、该显示单元及该转码单元的执行时序,该控制单元还包含时序产生装置以产生该译码单元、该显示单元及该转码单元的触发事件,当译码完成时,该控制单元将目前正在使用中的帧缓冲器设定为下一个欲使用的帧缓冲器,当该时序产生装置产生译码周期时间的触发事件,该控制单元比较下一个欲使用的帧缓冲器是否为目前正在使用中的帧缓冲器,若否,表示尚未译码完成,若是,表示已经译码完成,当该时序产生装置产生显示周期时间的触发事件,该控制单元判断下一个欲显示的帧缓冲器的编号是否为目前正在使用中的帧缓冲器的编号,若是,表示译码未完成,显示目前使用的帧缓冲器的内容,若否,显示下一个欲显示的帧缓冲器的内容。

17.根据权利要求16所述的系统,其中,该译码单元的触发事件及该显示单元的触发事件为异步。

18.根据权利要求16所述的系统,其中,该译码单元的触发事件及该显示单元的触发事件为同步。

说明书 :

技术领域

本发明涉及影像处理的技术领域,尤其涉及一种影像译码与影像转码方法及系统。

背景技术

一般在传送一影音数据流时,由于网络频宽的限制,往往需将该影音数据流进行视频转码(video transcoding),以转换及降低影像数据流的帧率(reduced frame-rate)或分辨率(resolution),而方便于在壅塞的网络中传送。亦即,在视频转码中,常把动态影像压缩数据的帧率(frame-rate)减少成另一个动态影像压缩数据,也就是降低帧更换速率,用来进一步降低数据的位率(bit-rate),以应对频宽不足的视频传输需求。
图1示出现有的影像译码与影像转码系统的方块图。为避免复杂的控制电路,当视频数据流经由译码单元110译码后,分别存放在第一内存120以及第二内存130中。显示单元140读取第一内存120中的译码后的帧(frame)并予以显示。转码单元150读取第二内存130中的译码后帧(frame)并予以转码。为了让显示及转码运作顺畅,第一内存120以及第二内存130分别需要具有三个帧缓冲器(Frame Buffer)。此系统虽可避免复杂的控制电路,然而却需要很大的内存频宽与内存空间。
图2示出另一现有的影像译码与影像转码系统的方块图。如图2所示,该系统为解省内存,使用一个具有三个帧缓冲器的内存220。显示单元230同时将所显示的帧传送给转码单元240,故只需要一个具有三个帧缓冲器的内存220,同时只需要一次内存存取的频宽。
但是图2的影像译码与影像转码系统有其使用的限制。亦即,显示与转码的规格必须相同。当显示与转码的规格不相同时,转码时即会产生问题。例如,当显示速度为25帧/秒(frames/sec)而转码速度为30帧/秒(frames/sec)时,由于内存220仅有三个帧缓冲器,故会产生内存使用冲突的问题。而且,当显示时若调亮显示帧的亮度,则在转码时,所编码的帧亮度与原先帧亮度不相同。因此可知,现有影像译码与影像转码方法及系统仍存有诸多的缺失而有予以改进的必要。

发明内容

本发明的一个目的在于提供一种影像译码与影像转码方法及系统,从而降低降低内存大小需求,而达到节省成本的目的。
本发明的另一目的在于提供一种影像译码与影像转码方法及系统,从而解决内存使用冲突的问题。
依据本发明的特色,本发明提出一种影像译码与影像转码方法,其对视频数据流进行译码、显示及转码,其将译码后的帧暂存于多个帧缓冲器中,该视频数据流具有一序列的帧,该每译码后的帧具有第一场及第二场,该方法包括:译码程序,当上一帧译码完成时,检查是否有前述帧缓冲器可使用,若是,则对现行帧进行译码而暂存至该帧缓冲器,并设定与该帧缓冲器相关的帧标记为可使用;显示程序,当上一场显示完成时,检查是否有前述帧缓冲器暂存该译码后的帧,若是,则读取该帧缓冲器中的该译码后的帧,并予以显示;转码程序,当上一帧译码完成时,检查是否有前述帧缓冲器暂存该译码后的帧,若是,则读取该帧缓冲器中的该译码后的帧进行转码。
依据本发明的另一特色,本发明提出一种影像译码与影像转码系统,其对视频数据流进行译码、显示及转码,该视频数据流具有一序列的帧,该每译码后的帧具有第一场及第二场,该系统包含内存、译码单元、显示单元及转码单元。该内存具有多个帧缓冲器,用于暂存该视频数据流译码与转码时的影像数据;该译码单元耦合至该内存,用于接受该视频数据流,并对该视频数据流执行译码,而产生译码后的帧,再将该译码后的帧写至该内存中指定的该帧缓冲器,其中,当上一帧译码完成时,该译码单元检查是否有前述帧缓冲器可使用,若是,则对现行帧译码,且暂存至该帧缓冲器,进而设定与该帧缓冲器相关的帧标记为可使用;该显示单元耦合至该内存,以由该内存中指定的前述帧缓冲器读取并显示该译码后的帧,其中,当上一场显示完成时,该显示单元检查是否有该帧缓冲器暂存该译码后的帧,若是,则读取该帧缓冲器中该译码后的帧,并予以显示;该转码单元耦合至该内存,其从设定的该帧缓冲区读取数据以传送给编码单元,并执行编码动作而产生影像比特流,其中,当上一帧译码完成时,该转码单元检查是否有前述帧缓冲器暂存该译码后的帧,若有,则读取该帧缓冲器中该译码后的帧,并予以转码。
依据本发明的再一特色,本发明提出一种影像译码与影像转码系统,其对视频数据流进行译码、显示及转码,该视频数据流具有一序列的帧,该每一帧译码后具有第一场及第二场,该系统包含内存、译码单元、显示单元、转码单元及控制单元。该内存具有多个帧缓冲器,用于暂存该视频数据流译码与影像转码时的影像数据;该译码单元耦合至该内存,用于接受该视频数据流,并对该视频数据流执行译码,而产生译码后的帧,再将该译码后的帧写至该内存中指定的前述帧缓冲器;该显示单元耦合至该内存,以由该内存中指定的前述帧缓冲器读取并显示该译码后的帧;该转码单元耦合至该内存,其从设定的帧缓冲区读取数据以传送给编码单元,并执行编码动作而产生影像比特流;该控制单元耦合至该译码单元、该显示单元及该转码单元,以初始化及控制该译码单元、该显示单元及该转码单元的执行时序及存取的这些帧缓冲器;其中,该控制单元利用这些帧缓冲器的编号以控制该译码单元、该显示单元及该转码单元的执行时序。

附图说明

图1是一现有的影像译码与影像转码系统的方块图。
图2是另一现有的影像译码与影像转码系统的方块图。
图3是本发的明影像译码与影像转码系统的方块图。
图4是本发明的影像译码与影像转码方法的控制流程图。
图5是本发明的实施例的运作示意图。
图6是本发明的图5的时序图。
图7是本发明的另一实施例的运作示意图。
图8是本发明的图7的时序图。
图9是本发明的影像译码与影像转码系统另一实施例的方块图。
图10是本发明的控制单元控制伪码的示意图。
[主要组件符号说明]
译码单元        110    第一内存    120
第二内存        130    显示单元    140
内存            220    显示单元    230
转码单元        240
内存            310    译码单元    320
显示单元        330    转码单元    340
控制单元        350    帧缓冲器    311
帧标记          312    译码标记    321
译码程序        P410   显示程序    P420
转码程序        P430
内存            910    译码单元    920
显示单元        930    转码单元    940
控制单元        950    帧缓冲器    911
时序产生装置    951

具体实施方式

图3示出本发明的影像译码与影像转码系统的方块图。该系统对视频数据流(Video Stream)进行译码、显示及转码。该视频数据流具有一序列的帧(Frame),每一帧译码后具有第一场(Field)及第二场。其中,该第一场称为上场(Top Field),该第二场称为下场(Bottom Field)。
该系统包含内存310、译码单元320、显示单元330、转码单元340及控制单元350。该内存310具有多个帧缓冲器311(Frame Buffer),用于暂存影像译码与影像转码时的影像数据。在本实施例中,该内存310优选具有四个帧缓冲器311。
该内存310可为同步动态随机存取内存(SDRAM)或双倍数据率动态随机存取内存(Double Data Rate DRAM)。该双倍数据率动态随机存取内存(DDR DRAM)可为DDR-I、DDR-II、DDR-333、或DDR-400等等。
该译码单元320耦合至该内存310,其接受该视频数据流,并对该视频数据流执行译码,再将译码后视频数据流的帧写至该内存310中指定的帧缓冲器311。当上一帧译码完成时,该译码单元320检查是否有帧缓冲器311可使用,若是,则对现行帧译码,并暂存至该帧缓冲器311,且设定与该帧缓冲器311相关的帧标记312为可使用。
该译码单元320还包含译码标记321,用于判定当该帧缓冲器311为不可使用时,该译码单元320不对该现行帧进行译码,并设定译码标记321以指示现行帧等待译码。
该显示单元330耦合至该内存310,以由该内存310中指定的帧缓冲器311读取译码后影像数据流的帧,并予以显示。当上一场显示完成时,该显示单元330检查是否有帧缓冲器311暂存译码后的帧,若是,该显示单元330则读取该帧缓冲器311中译码后的帧,并予以显示。
该显示单元330检查帧缓冲器311是否有暂存译码后的帧,检查与该帧缓冲器311相关的帧标记312。该显示单元330若判定该帧缓冲器311没有暂存译码后的帧,则显示先前显示的场。
当上一场显示完成时,该显示单元330再检查该译码标记321。若该译码标记321已被设定,则表示有现行帧等待译码,故该显示单元330产生信号Trig以触发该译码单元320。
该转码单元340耦合至该内存310,其从设定的帧缓冲区311读取数据以传送给编码单元(图示出),并执行编码动作而产生新的影像比特流。当上一帧译码完成时,该转码单元340检查是否有帧缓冲器311暂存译码后的帧,若有,则该转码单元340读取该帧缓冲器中的译码后的帧,并予以转码。该转码单元340若判定该帧缓冲器311没有暂存译码后的帧,则该转码单元340不进行转码的相关动作。
该控制单元350耦合至该译码单元320、该显示单元330及转码单元340,以初始化并控制该译码单元320、该显示单元330及转码单元340执行时序。
图4是本发明的影像译码与影像转码方法的控制流程图。该方法是对视频数据流(Video Stream)进行译码、显示及转码,并将译码后的帧暂存于多个帧缓冲器中。该视频数据流具有一序列的帧(Frame),每一帧译码后具有第一场(Field)及第二场。其中,该第一场称为上场(TopField),该第二场称为下场(Bottom Field)。
该方法包含译码程序P410、显示程序P420及转码程序P430。当该译码单元320对上一帧译码完成时,触发该译码程序P410及转码程序P430。该显示单元330显示完一场时,触发该显示程序P420。上一场显示完成的触发事件(Event Trigger)及上一帧译码完成的触发事件可为异步或同步。此外,触发事件从一开始就产生,由于缓冲器有空,所以可以先进行译码程序P410,等译码一段时间后,缓冲器(Buffer)有译码数据,显示程序P420再执行。
在步骤S410中,当上一帧译码完成时,检查是否有帧缓冲器311可使用。若是,则对现行帧译码,并暂存至该帧缓冲器311(步骤S415),且设定与该帧缓冲器311相关的帧标记312为可使用(步骤S420)。
在步骤S410中,若判定该帧缓冲器311不可使用,则不对该现行帧译码,并设定译码标记321以指示现行帧等待译码(步骤S425)。
在步骤S430中,当上一场显示完成时,检查是否有帧缓冲器311暂存译码后的帧,若是,则读取该帧缓冲器311中的译码后的帧,并予以显示(步骤S435)。其中,步骤S430检查帧缓冲器311是否有暂存译码后的帧,检查与该帧缓冲器311相关的帧标记312。
在步骤S430中,若判定该帧缓冲器311没有暂存译码后的帧,则显示先前显示的场(步骤S440)。
该显示程序P420还在上一场显示完成时检查该译码标记321,若该译码标记321已被设定,则该显示程序P420触发该译码程序P410(步骤S445)。若该译码标记321未被设定,则不进行任何处理(步骤S450)。
在步骤S460中,当上一帧译码完成时,检查是否有帧缓冲器311暂存译码后的帧,若是,则读取该帧缓冲器311中的译码帧,并予以转码(步骤S465)。若判定该帧缓冲器311没有暂存译码后的帧,则不进行转码(步骤S470)。在步骤S460中检查与该帧缓冲器311相关的帧标记312。亦即当程序P410对一帧译码完成、且设定与该帧缓冲器311相关的帧标记312后,步骤S465方能进行转码。
图5是本发明的实施例的运作示意图。其译码顺序为:IPBBBPBBB...。I、B及P分别表示I-帧、B-帧及P-帧。数字则表示所储存帧缓冲器311的位置。例如:P1表示一个译码后的P-帧其暂存于帧缓冲器F1中。如图5所示,帧缓冲器F0及F1用于暂存I-图及P-帧,帧缓冲器F2及F3用于暂存B-帧。
图6是本发明的图5的时序图。在本实施例中,上一场译码完成的触发事件(Event Trigger)及上一帧译码完成的触发事件为同步。译码速度为30帧/秒,显示及转码速度也为30帧/秒。
图7是本发明的另一实施例的运作示意图。其译码顺序为:IPBBBPBBB...。如图7所示,帧缓冲器F0及F1用于暂存I-图及P-帧,帧缓冲器F2及F3用于暂存B-帧。
图8是本发明的图7的时序图。在本实施例中,上一场译码完成的触发事件(Event Trigger)及上一帧译码完成的触发事件为异步。译码及转码速度为30帧/秒,显示速度为25帧/秒。为了调整译码速度为30帧/秒及显示速度为25帧/秒,在显示B2帧时,只显示B2帧的上场(T2)。如此,每译码3个帧,只显示5个场,即可调整译码速度为30帧/秒及显示速度为25帧/秒的问题。
图9是本发明的影像译码与影像转码系统另一个实施例的方块图。其与图3主要差别在于图9是使用该控制单元950控制四个帧缓冲器911存取的次序。亦即,利用该控制单元950对该译码单元920、该显示单元930及转码单元940设定帧缓冲器911的相关存取。同时,该控制单元950使用时序产生装置951以产生相关的触发事件(trigger event)。如图9所示,帧缓冲器0及1用于暂存I-图及P-帧,帧缓冲器2及3用于暂存B-帧。图10是该控制单元350控制伪码的示意图。为方便说明,将该伪码加上列号。
列100~110是当译码完成时,将目前正在使用中的帧缓冲器911(current decoding buffer)设定为下一个欲使用的帧缓冲器911(nextdecoding buffer)。
在本实施例中,列130表示当该时序产生装置951产生译码周期时间的触发事件。列130比较下一个欲使用的帧缓冲器911(next decodingbuffer)是否为目前正在使用中的帧缓冲器911(current decoding buffer),若否,则表示尚未译码完成,该控制单元350执行列460~490的伪码,以等待译码完成。若是,则表示已经译码完成,该控制单元350执行列170~450的伪码。
列170执行图像译码并储存到目前正在使用中的帧缓冲器911(current decoding buffer)。列190判断下一帧属于I-帧或P-帧,若是,该控制单元350执行列200~310的伪码。若否,则该控制单元350执行列320~440的伪码。
列210判断上一次译码I-帧或P-帧所使用的帧缓冲器911的编号是否为0。若是,则设定下一译码I-帧或P-帧所使用的帧缓冲器911的编号为1,并设定上一译码I或P帧所使用的帧缓冲器911的编号为1。若否,则设定下一译码I-帧或P-帧所使用的帧缓冲器911的编号为0,并设定上一译码I-帧或P-帧所使用的帧缓冲器911的编号为0。
列320判断下一帧属于B帧,若是,则该控制单元350执行列340~430的伪码。
列340判断上一次译码B-帧所使用的帧缓冲器911的编号是否为2。若是,则设定下一译码B帧所使用的帧缓冲器911的编号为3,并设定上一译码I或P帧所使用的帧缓冲器911的编号为3。若否,则设定下一译码B帧所使用的帧缓冲器911的编号为2,并设定上一译码I-帧或P-帧所使用的帧缓冲器911的编号为2。
列520表示当该时序产生装置951产生显示周期时间的触发事件。列540判断下一个欲显示的帧缓冲器911的编号是否为目前正在使用中的帧缓冲器911的编号,若是,则表示译码未完成,显示目前使用的帧缓冲器911的内容(列560)。若否,则显示下一个欲显示的帧缓冲器911的内容(列600)。
由上述说明可知,本发明利用译码缓冲区数据共享的特性,针对所有编码影像顺序,控制影像译码的时间与译码缓冲区的更新,而达到解省内存空间与内存频宽的目的。同时解决现有技术内存使用冲突的问题。
上述实施例仅为了方便说明而举例而已,本发明所主张的权利范围自应以申请专利范围所述为准,而非仅限于上述实施例。