CN100428799C - 视频解码图像存储空间管理方法 - Google Patents
视频解码图像存储空间管理方法 Download PDFInfo
- Publication number
- CN100428799C CN100428799C CNB2006100989052A CN200610098905A CN100428799C CN 100428799 C CN100428799 C CN 100428799C CN B2006100989052 A CNB2006100989052 A CN B2006100989052A CN 200610098905 A CN200610098905 A CN 200610098905A CN 100428799 C CN100428799 C CN 100428799C
- Authority
- CN
- China
- Prior art keywords
- frame
- decoding
- image
- fifo
- memory space
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本发明涉及一种用于视频解码器中视频解码图像存储空间管理方法。本发明的视频解码图像存储空间的管理方法存储两个完整I或者P帧和一个B帧的一部分,这一部分可以是一个场也可以是一个场的一部分,总的存储空间需求量最多只有2.5帧。本发明有效减少了对于存储空间的需求量,同时满足各种播放调整需要。使用时可以根据解码实时性的不同可以把存储解码图像在2~2.5帧的范围内调节。
Description
技术领域
本发明属于视频解码技术领域,特别涉及一种用于视频解码器中视频解码图像存储空间管理方法。
背景技术
MPEG(运动图像专家组)-2视频压缩标准由于能够在运算复杂度适中的前提下提供高压缩比与高质量的图像,因而在近年来得到了大力的发展与广泛的运用,如DVD,数字电视等。MPEG-2标准对于运动图像的压缩能力很大程度上归因于它所采用的运动补偿算法,然而在对符合MPEG-2标准的码流进行解码时,必须要以选定的参考帧为基础才能正确解码所有的视频帧图像。因此,在解码过程中始终要保存最多两幅参考帧(在双向运动补偿时)。除了存储参考帧以外,在解码过程中还需要保存当前正在被解码的帧以及正在被显示的帧。由于图像数据的数据量很大,在视频解码系统中一般会选用同步动态随机存储器(SDRAM)来保存上述的图像。
根据不同的运动补偿方式,编码图像可以分成为I、P、B图。B图不能做编码参考图像,由于B图的存在,图像的编码顺序和显示顺序变得不一致,解码器必须在解码后对图像进行重排再显示。假设图像编码序列为I0、P3、B1、B2、P6、B4、B5…按照场图格式编码,图1表示了传统的解码器中解码、显示的顺序和帧存位置的关系。图中102、104、106表示SDRAM中的存储空间,F、L表示图象的第一、二场。102、104两个位置用来存放解码后的I、P图,只有他们不再作为后续图像的参考帧时,他们的位置才被新解码的图像覆盖,而106的位置用来存放B图,他们在显示后不再作为参考图所以可以立即被新解码的B图覆盖,而后一幅的B图是在前一B图的第一场显示完成而第二场开始显示后才开始写入的。由此可见,传统的解码器需要至少三帧的视频存储空间。
在众所周知的美国国家电视制式委员(NTSC)协议中,图像大小为每帧720×480像素,则数据量达到3.96Mbit/帧,三帧共11.88Mbit。对于逐行倒相制(PAL)协议,图像大小为每帧720×576,则数据量达到4.75Mbit/帧,三帧共14.25Mbit。接近这一存储量的普通商用SDRAM大小为16Mbit,显然剩余的存储容量对于解码器其他功能的实现是不足够的。在当今消费电子产品成本压力日渐增大的形式下,有必要寻找一种新的图像存储空间的管理方法,以有效地减少图像存储的数据量,同时处理好解码与播放之间的关系。
发明内容
本发明的目的是针对现有技术的不足,提供一种改进的视频解码图像存储空间的管理方法,减少解码图像对存储空间的大小要求,从而降低解码器中的存储器的大小和成本。
为了实现上述目的,本发明的存储空间管理方法包括以下步骤:
1.解码单元读入视频压缩流,寻找图像序列头,解码并存储该序列头后面第一个I帧,并将前向参考帧指针指向该帧;
2.解码单元读入新的视频压缩流,如果随后的图像类型为I或者P帧,则解码并存储该帧,并将后向参考帧指针指向该帧;如果随后的图像类型为B帧则跳过该帧,不进行解码;
3.解码单元读入新的视频压缩流,如果随后的图像类型为I或者P帧,则解码并存储该帧,并将后向参考帧指针的值赋予前向参考帧指针,然后把后向参考帧指针指向该帧;如果后续帧为B帧则解码并存储该B帧,它的两个参考帧由前向参考帧指针和后向参考帧指针决定;解码单元重复步骤3直到解码结束;
4.存储管理单元与解码单元一起工作,检测帧存储单元中有空余的存储空间时,才允许解码单元把解码图像存放到帧存储单元中的相应位置,如果帧存储单元中没有空余的存储空间则通知解码单元暂停解码并进入等待状态;
5.显示FIFO与解码单元一起工作,当开始解码时显示FIFO由空开始,首先将作为前向帧的I帧放入显示FIFO中,然后将后面的B帧放入显示FIF0中,在该B帧显示完毕后,如果找到的下一个图像为I或者P帧则把前面最近解出的一个P帧放入显示FIFO中,如果找到的下一个图像为B帧则把该B帧放入显示FIFO中;
6.如果播放控制单元检测到显示FIFO非空,则根据显示FIFO的指示从帧存储单元中读出解码图像并输出到显示设备,显示完该帧后把它从显示FIFO中移出;如果播放控制单元检测到显示FIFO为空,则重复输出刚刚播放出的图像到显示设备。
其中步骤3中解码并存储B帧的具体方法为:
3.1当解码单元解码到B帧的帧头后存储管理单元就将其放入步骤5所述的显示FIFO中,并把当前需要播放的该B帧的一个场存入帧存储单元中;
3.2当解码的该B帧数据量达到一个门限值时开始播放该B帧,该门限值的设定只要能保证图像显示的速度不超过图像解码后回写至存储器的速度即可;
3.3当完成B帧当前场的显示之后再显示另一场,解码单元重新解码该B帧,解出该B帧的另一个场存入帧存储单元中。
其中步骤4具体为:I帧或者P帧在存放完整的两帧图像并且在显示完毕后即释放所占用的存储空间,允许后续解码的I帧或者P帧数据写入;B帧则只存放当前需要播放的场,并且在显示完毕后即释放所占用的存储空间,允许该B帧另一场或者新的B帧的第一场的数据写入。
本发明的视频解码图像存储空间的管理方法存储两个完整I或者P帧和一个B帧的一部分,这一部分可以是一个场也可以是一个场的一部分,总的存储空间需求量最多只有2.5帧。所以有效减少了对于存储空间的需求量,同时满足各种播放调整需要。使用时可以根据解码实时性的不同可以把存储解码图像在2~2.5帧的范围内调节。
附图说明
图1是传统存储方式下解码、显示的顺序和帧存位置的关系示意图;
图2是本发明一实施例的各功能单元的结构框图;
图3是图2的图像在帧存储单元中的存储位置示意图;
图4是图2的存储管理单元中显示FIFO示意图;
图5是图2的解码单元对B图进行多次解码的示意图;
图6是图2的播放控制单元对图像进行帧率转换的示意图。
具体实施方式
图2所示是本发明中各功能单元的结构框图,下面将以此为例说明本发明的视频解码图像存储空间管理方法。其中解码单元接收压缩数据流进行视频图像解码,帧存储单元用于存放作为参考帧和播放的解码图像数据,存储管理单元用于管理解码图像的存储位置和调整显示重排顺序,播放控制单元用于进行播放时帧率转换的控制。
图3是本发明中帧存储单元中解码图像存储位置的一个实例。帧存储单元选用单片16Mbit的商用SDRAM,解码后的图像数据参照本发明中需要存储的最大情况的2.5帧,其中两帧I/P图,0.5帧(1场)B图。按照每帧图中的一场为单位来存放在SDRAM中的不同Bank中,其中第一帧I/P图像的顶场存放在图示302中,第一帧I/P图像的底场存放在图示304中,第二帧I/P图像的顶场存放在图示312中,第二帧I/P图像的底场存放在图示314中,B图的一场(顶场或底场)存放在图示306中。按照PAL制规定的图像大小为720×576像素来计算,在4∶2∶0的格式下,对于亮度信息Y:一场为720×288像素,每两个相邻像素点存放在SDRAM的相同地址空间中,需要720×288/512=405行。对于色度信息CrCb:一场为360×144像素,对应的CrCb像素点存放在SDRAM相同的地址空间,Cr存在高8bit,Cb存在低8bit,需要360×144×2/512=203行。故每场图像存放各需要405+203=608行的SDRAM空间。对小于720×576的图像,也按720×576的最大规格存放,行内不足720的数据空间空闲,不足576的数据空间空闲。图中308和316中的空间可以用来存放压缩数据和实现解码器其他功能所需要存储的数据。
结合图4说明本发明中的存储管理单元对于存储空间的管理。当压缩数据流进入解码单元后,首先解码402的I帧,由于它是视频序列中的第一帧并且需要被存储作为后续帧的参考图像,所以将其顶场和底场分别存储在图3帧存储单元中的302和304位置中,并且将前向帧指针412指向它,表示它作为后续P图解码的参考帧和B图解码的前向参考帧。接下来解码序列中的第二个帧即404的P帧,它以前向参考帧I帧为参考图像来解码,故解码该P帧时,需要从帧存储单元中读取I帧中的参考宏块,解码后将404的P帧的顶场和底场分别存放在图3的312和314位置中,将后向帧指针414指向它,表示它作为后续P图解码的参考帧和B图解码的后向参考帧。然后解码406的B帧时,它的双向预测的参考帧分别由前向帧和后向帧的指针412和414指示,即需要从帧存储单元中读取已经解码的I帧和P帧中的参考宏块,B帧解码后只存放其中的一场或一场中的部分数据到图3的306位置中,同一场中已经存储的数据待播放完毕后被同一场中未存储的数据所覆盖,而当存储的一场数据播放完后再将该B图的第二场存储到306的位置,覆盖已经不再需要播放或用作参考的第一场,B图的第二场解码按照该B图的编码类型判断可能需要第二次解码,第二次解码是本发明中多次解码的一种情况,在下文中将有说明。随后解码408的P图时,它以后向帧指针414指向的P图为参考图像,此时存储在302和304空间的I帧已经被显示过并且不再作为后续帧的参考图像,故408的P图解码后其顶场和底场分别存放到302和304的位置中去,并将后向帧指针414指向它,而前向帧指针412指向原来后向帧指针指向的404的P帧。而后到来的410的B图仍然参考前向帧指针412和后向帧指针414指向的参考帧来解码,并且只存储一场或一场中的部分数据到306的位置,处理方式与406的B图相同。
如图4解释了本发明中存储管理单元中显示重排FIFO的工作机制。416的FIFO由空开始,当402的I帧解码并存储后,首先将其放入FIFO中等待播放。404的P帧解码并存储后,但随后发现其后续的是406的B帧,故显示的顺序需要重排,404的P帧作为406的B帧的参考帧,在其解码后不马上显示。按照重排的规则,是在406的B帧解码后先显示B帧,又由于B帧只存储了一场或一场中的部分数据在帧存储单元中,故解码到406的B帧的图像头后该B帧就先进入FIFO中。播放控制方面,待帧存储单元中的B图存储到一定量后才可以开始播放,以保证播放的速度不超过解码单元回写图像的速度,B图的一场播放完毕后,解码另一场来存储并播放,视其图像类型决定是否是需要第二次解码。在406的B图两场都显示完毕后并解码到下一帧为408的P帧后,404的P帧可以进入显示的FIFO中。当408的P帧解码后,将覆盖前向帧402的存储空间,并将后向帧的指针指向它,而前向帧指针指向404的P帧。同样的,当发现后续的是410的B帧时,408的P帧也需要等待B帧播放完毕后才进入显示FIFO。
如图5所示解释了本发明中关于多次解码的定义。如果压缩数据流中的图像头指明待解码的图像是B帧图,那么视频解码器通过信号B_multi指示该图像是B帧图,同时计算出该B帧图像起始码到指示该帧是B帧图的字段之间的数据位数bit_count。解码单元第一次解码该B帧时,根据其他的编码信息向帧存储单元中只回写这一帧中需要先播放的那一场数据,而丢弃后播放的另一场数据。解码单元第一次解完该B帧图像数据后,根据播放控制单元指示的该B图需要重复解码的次数B_repeat信号开始第二次解码该帧,根据信号B_multi和bit_count回退读取数据压缩流,重新寻找B图像头,第二次解码该B帧,根据其他的编码信息向帧存储单元中只回写这一帧中需要后播放的那一场数据,而丢弃先播放的另一场数据。当第二次解码该B帧完成后,再次根据播放控制单元的B_repeat信号判断是否需要再次解码该B帧:若播放控制单元不再需要重复显示该B图,则解码器发出B_over信号,表示该B帧解码全部过程结束;若播放控制单元需要重复显示该B图,则再重复上述的解码过程,并存储播放控制单元要求重复播放的那一场图像。若图像序列中的B图是场图,与上述过程不同的是,当解码完一场并播放该B场图时,播放控制单元指示解码单元暂停解码新的其他场或者帧图像数据,只有播放控制单元需要重复播放该场B图时才需要多次解码。
当播放按照与编码不同的制式来进行时,需要在播放控制单元中采取特殊策略来完成帧率转换。有两种按场为单位做帧率转换的情况,分别是25fps->30fps和24fps->30fps。25fps->30fps时每播放5场重复一场,24fps->30fps时每播放4场重复一场。由此可见,B图也有可能需要重复播放多次,而本发明中虽然只存储一场或一场中的部分数据的B图,但可以通过多次解码来保证该B图可以被正确的重复。两种帧率转换的实现如图5所示。图中播放的场指的是当前播放的是哪一场,实际的数据是指当前播放的数据来自某帧的哪一场。如图6(a)是25->30fps的情况,可见,1、2场来自同一帧,3、4场来自同一帧,5、6、7场来自同一帧,8、9场来自同一帧,10、11、12场来自同一帧。6,12场是重复的场,即5、6场是同一帧的同一场,11、12场是同一帧的同一场。如图6(b)是24fps->30的情况,1、2场来自同一帧,3、4、5场来自同一帧,6、7场来自同一帧,8、9、10场来自同一帧,5、10场是重复的场。
而当按帧为单位来做帧率转换时,I/P帧的重复可以与按场重复同样的操作,对于B帧的重复则由于只存储了一场或一场中的部分图像而需要通过多次解码来实现。当帧存储单元中只存储了一场中的部分图像而少于完整一场时,在显示完该B图的两场后肯定需要多次解码该B图来实现B图的重复播放;当帧存储单元存储了完整的一场B图示时,除了通过多次解码的方法外,也可以通过顶场、顶场、底场、底场的顺序或者顶场、底场、底场、底场的顺序来近似重复该B图。对于这两种情况,本发明都有完整的机制去满足按帧为单位来做帧率转换的要求。
如上所述,本发明提出了一种改进的视频解码图像存储空间的管理方法,减少解码图像对存储空间的大小要求,处理好解码和播放之间的关系,并且可以根据图像类型和播放制式选择性地调整存储空间的管理。
尽管本发明是参照其优选实施例来具体描述的,但本领域的技术人员应该理解,在不脱离有所附权利要求限定的本发明的精神和范围的情况下,可以对其进行形式和细节的各种修改。
Claims (3)
1、视频解码图像存储空间管理方法,其特征在于该方法包括以下步骤:
(1)解码单元读入视频压缩流,寻找图像序列头,解码并存储该序列头后面第一个I帧,并将前向参考帧指针指向该帧;
(2)解码单元读入新的视频压缩流,如果随后的图像类型为I或者P帧,则解码并存储该帧,并将后向参考帧指针指向该帧;如果随后的图像类型为B帧,则跳过该帧,不进行解码;
(3)解码单元读入新的视频压缩流,如果随后的图像类型为I或者P帧,则解码并存储该帧,并将后向参考帧指针的值赋予前向参考帧指针,然后把后向参考帧指针指向该帧;如果后续帧为B帧则解码并存储该B帧,它的两个参考帧由前向参考帧指针和后向参考帧指针决定;解码单元重复步骤(3)直到解码结束;
(4)存储管理单元与解码单元一起工作,检测帧存储单元中有空余的存储空间时,才允许解码单元把解码图像存放到帧存储单元中的相应位置,如果帧存储单元中没有空余的存储空间则通知解码单元暂停解码并进入等待状态;
(5)显示FIFO与解码单元一起工作,当开始解码时显示FIFO由空开始,首先将作为前向帧的I帧放入显示FIFO中,然后将后面的B帧放入显示FIFO中,在该B帧显示完毕后,如果找到的下一个图像为I或者P帧则把前面最近解出的一个P帧放入显示FIFO中,如果找到的下一个图像为B帧则把该B帧放入显示FIFO中;
(6)如果播放控制单元检测到显示FIFO非空,则根据显示FIFO的指示从帧存储单元中读出解码图像并输出到显示设备,显示完该帧后把它从显示FIFO中移出;如果播放控制单元检测到显示FIFO为空,则重复输出刚刚播放出的图像到显示设备。
2、如权利要求1所述的视频解码图像存储空间管理方法,其特征在于所述的步骤(3)中解码并存储B帧的具体方法为:
3.1当解码单元解码到B帧的帧头后存储管理单元就将其放入步骤(5)所述的显示FIFO中,并把当前需要播放的该B帧的一个场存入帧存储单元中;
3.2当解码的该B帧数据量达到一个门限值时开始播放该B帧,该门限值的设定只要能保证图像显示的速度不超过图像解码后回写至存储器的速度即可;
3.3当完成B帧当前场的显示之后再显示另一场,解码单元重新解码该B帧,解出该B帧的另一个场存入帧存储单元中。
3、如权利要求1所述的视频解码图像存储空间管理方法,其特征在于所述的步骤(4)具体为:I帧或者P帧在存放完整的两帧图像并且在显示完毕后即释放所占用的存储空间,允许后续解码的I帧或者P帧数据写入;B帧则只存放当前需要播放的场,并且在显示完毕后即释放所占用的存储空间,允许该B帧另一场或者新的B帧的第一场的数据写入。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2006100989052A CN100428799C (zh) | 2006-07-14 | 2006-07-14 | 视频解码图像存储空间管理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2006100989052A CN100428799C (zh) | 2006-07-14 | 2006-07-14 | 视频解码图像存储空间管理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1878306A CN1878306A (zh) | 2006-12-13 |
CN100428799C true CN100428799C (zh) | 2008-10-22 |
Family
ID=37510571
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2006100989052A Active CN100428799C (zh) | 2006-07-14 | 2006-07-14 | 视频解码图像存储空间管理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100428799C (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103581671A (zh) * | 2012-07-20 | 2014-02-12 | 晨星软件研发(深圳)有限公司 | 影像处理装置与影像处理方法 |
CN112004094A (zh) * | 2019-05-27 | 2020-11-27 | 北京君正集成电路股份有限公司 | 一种像素存储空间的节省方法 |
CN111787330B (zh) * | 2020-06-16 | 2022-03-08 | 眸芯科技(上海)有限公司 | 支持解码压缩帧缓存自适应分配的编码方法及应用 |
CN113824965A (zh) * | 2021-09-22 | 2021-12-21 | 北京百度网讯科技有限公司 | 一种视频编码方法、装置及电子设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1192106A (zh) * | 1997-02-26 | 1998-09-02 | 迪维安公司 | Mpeg解码器存储器管理器 |
CN1199906A (zh) * | 1997-03-19 | 1998-11-25 | 索尼公司 | 视频数据解码装置和方法与视频信号重现装置和方法 |
US20030123554A1 (en) * | 2001-12-29 | 2003-07-03 | Kim Eung Tae | Video decoding system |
-
2006
- 2006-07-14 CN CNB2006100989052A patent/CN100428799C/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1192106A (zh) * | 1997-02-26 | 1998-09-02 | 迪维安公司 | Mpeg解码器存储器管理器 |
CN1199906A (zh) * | 1997-03-19 | 1998-11-25 | 索尼公司 | 视频数据解码装置和方法与视频信号重现装置和方法 |
US20030123554A1 (en) * | 2001-12-29 | 2003-07-03 | Kim Eung Tae | Video decoding system |
Also Published As
Publication number | Publication date |
---|---|
CN1878306A (zh) | 2006-12-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100508585C (zh) | 用于控制数字视频比特流逆向播放的装置和方法 | |
CN103310820B (zh) | 一种对多媒体播放器进行优化的方法 | |
CN101072339B (zh) | 一种控制播放帧率同步的方法及系统 | |
CN1156154C (zh) | 视频数据排列的方法及相应的视频处理器 | |
CN100579225C (zh) | 图像数据的存取和解码方法及解码装置 | |
CN101212674B (zh) | 图像在存储器中的地址映射方法 | |
US20030133506A1 (en) | Image processor controlling b-picture memory | |
CN101031052B (zh) | 图像在存储器中的地址映射方法 | |
JPH08237662A (ja) | ビデオ・デコンプレッション・プロセッサのための画素内挿フィルタ | |
WO1998042138A3 (en) | Hdtv video decoder and related method | |
US7515761B2 (en) | Encoding device and method | |
EP0729276B1 (en) | Memory control system and video decoder using the same | |
CN100428799C (zh) | 视频解码图像存储空间管理方法 | |
CN101662608B (zh) | 一种储存数据的方法 | |
US6181746B1 (en) | Image data decoding method and apparatus using memory for storing decoded data | |
EP1147671B1 (en) | Method and apparatus for performing motion compensation in a texture mapping engine | |
US7218676B2 (en) | Method and a decoder for decoding MPEG video | |
CN101778280B (zh) | 一种基于avs运动补偿亮度插值运算的电路及方法 | |
JPH10178644A (ja) | 動画像復号装置 | |
EP2154900A1 (en) | Dynamic image decoding method, dynamic image decoding device, and electronic apparatus | |
TW317619B (zh) | ||
JP2863096B2 (ja) | 並列処理による画像復号装置 | |
CN101389033A (zh) | 帧场自适应解码模式下解码器缓存控制方法 | |
US7346112B2 (en) | Method of and apparatus for decoding and displaying video that improves quality of the video | |
CN101472172A (zh) | 一种在视频解码中滤波前期的数据处理方法及解码器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C56 | Change in the name or address of the patentee | ||
CP03 | Change of name, title or address |
Address after: No. 90, Wensanlu Road, Hangzhou, Zhejiang, Xihu District Patentee after: Hangzhou National Chip Science & Technology Co., Ltd. Address before: 5A, Neusoft building, No. 99 Huaxing Road, Hangzhou, Zhejiang, Xihu District Patentee before: Hangzhou Guoxin Science & Technology Co., Ltd. |