CN1271864C - 视频解码缓冲区控制装置及方法 - Google Patents

视频解码缓冲区控制装置及方法 Download PDF

Info

Publication number
CN1271864C
CN1271864C CN 200410070028 CN200410070028A CN1271864C CN 1271864 C CN1271864 C CN 1271864C CN 200410070028 CN200410070028 CN 200410070028 CN 200410070028 A CN200410070028 A CN 200410070028A CN 1271864 C CN1271864 C CN 1271864C
Authority
CN
China
Prior art keywords
image
control module
address
decoding
display
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
Application number
CN 200410070028
Other languages
English (en)
Other versions
CN1589018A (zh
Inventor
解晓东
吴迪
贾惠柱
生滨
郑俊浩
张鹏
邓磊
张力
张帧睿
王忠立
高文
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Spreadtrum Communications Shanghai Co Ltd
Original Assignee
National Source Coding Center Digital Audio And Video Frequency Technology (beijing) Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by National Source Coding Center Digital Audio And Video Frequency Technology (beijing) Co Ltd filed Critical National Source Coding Center Digital Audio And Video Frequency Technology (beijing) Co Ltd
Priority to CN 200410070028 priority Critical patent/CN1271864C/zh
Publication of CN1589018A publication Critical patent/CN1589018A/zh
Application granted granted Critical
Publication of CN1271864C publication Critical patent/CN1271864C/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明公开了一种视频解码缓冲区控制装置及方法,所述的装置包括缓冲区控制模块、参考帧获取控制模块、解码帧存储控制模块、显示帧获取控制模块、显示控制模块,其中,所述的缓冲区控制模块用于计算获得当前解码图像存储地址、当前参考图像地址、显示图像地址,并将以上地址分别对应发送到参考帧获取控制模块、解码帧存储控制模块、显示帧获取控制模块;本发明通过小容量的缓冲区实现对解码图像、参考图像及显示图像的协同管理,协调控制视频的解码、显示,不需占用大量的RAM空间从而降低解码芯片的成本。

Description

视频解码缓冲区控制装置及方法
技术领域
本发明涉及数字图像处理技术和SOC技术,特别是涉及数字图像的编解码技术,更具体地说,涉及一种视频解码显示缓冲区控制的方法及装置。
背景技术
目前,流行的视频编解码标准几乎都采用一种混合编码/解码方式,例如MPEG-1、MPEG-2、MPEG-4、H.26x及中国正在推出的AVS标准。这种编码/解码结构采用了时间及空间的运动预测补偿、变换、量化和熵(变长编码)编/解码方法,它们多数都包含如下三种图像编码模式:
1、帧内编码(I图像/I帧):仅使用图像本身信息编码,不参照其他图像解码;
2、前向预测编码(P图像/P帧):P图像向前预测一个或多个I图像或者P图像,因此若前面的某个参考I图像或者P图像不存在,则该图像就不能解码;
3、双向预测编码(B图像/B帧):它可以同时向前和向后预测一帧或多帧已解码I图像或者P图像。所以在解码B图像时,需要先解码得到在显示顺序上位于其后的I图像或者P图像数据方可进行解码,从而导致解码顺序与显示顺序的不一致。
由于有B图像的存在,因此在解码时,需要对解码图像进行重排序后方可输出显示,当前,多数解决办法是在解码器中设置两个缓冲区,一个用来缓存解码图像,并为运动补偿提供参考图像;另一个用来缓存按照显示顺序进行重排序后的解码图像。
典型的解码结构如附图1所示。输入的视频码流经过熵解码、反量化、反变换后,若是按照帧内编码模式进行的编码,则需要进行帧内预测补偿处理,否则进行运动补偿,在所得的解码数据进行去块效应滤波之后,存储到解码图像缓冲区中。若当前解码图像是B图像,则直接复制当前解码图像到显示缓冲区中进行显示,否则若是I或者P帧,则复制前一个解码的I或者P帧数据到显示缓冲区中。但是,这种方式需要复制大量的RAM数据,即需要将每帧的解码数据从解码缓冲区复制到显示缓冲区中,而且既需要为解码图像开辟足够大的缓冲区,还需要为显示图像开辟足够大的缓冲区,这些都将给解码芯片带来高的代价。
由于解码图像缓冲区与显示缓冲区中的数据是重复的,因此可以考虑将它们合并进行统一管理,不过此时它们的管理就变得很复杂。例如在解码图像缓冲区中的某个解码图像没有被显示之前是不能将其覆盖的;有些标准,如H.264(JVT)和AVS都采用了多帧参考策略,即一个P帧或B帧可以参考多个图像,此时即便某个解码图像已被复制到显示缓冲区进行显示,但由于其还需要其作为其他图像的参考图像而不能被覆盖。
发明内容
本发明所要解决的技术问题在于,针对现有技术的不足,提出一种视频解码显示缓冲区的控制装置,该装置通过小容量的缓冲区实现对解码图像、参考图像及显示图像的协同管理,协调控制视频的解码、显示,降低解码芯片的成本。
本发明所要解决的另一个技术问题在于,针对现有技术的不足,提出一种视频解码缓冲区的控制方法,通过一个小容量的缓冲区来实现解码图像数据的存储、显示及为核心解码模块提供参考图像,不需复制大量的RAM数据。
本发明是通过如下的技术方案实现的:
一种视频解码缓冲区控制装置,包括缓冲区控制模块、参考帧获取控制模块、解码帧存储控制模块、显示帧获取控制模块、显示控制模块,其中,所述的缓冲区控制模块用于计算获得当前解码图像存储地址、当前参考图像地址、显示图像地址,并将以上地址分别对应发送到参考帧获取控制模块、解码帧存储控制模块、显示帧获取控制模块;
所述的参考帧获取控制模块根据缓冲区控制模块发送来的地址,从解码图像缓冲区获得参考图像,并发送到解码核心模块中的运动补偿模块,进行解码;
所述的解码帧存储控制模块根据缓冲区控制模块发送来的地址,将从解码核心模块输出的当前解码数据存放在该地址中;
所述的显示帧获取控制模块根据缓冲区控制模块发送来的地址,从解码图像缓冲区获得显示图像,并将其发送到显示控制模块;
所述的显示控制模块控制接收到的显示图像在显示器上显示,同时将显示图像的地址写入显示状态寄存器。
本发明所述的装置可通过小容量的缓冲区实现对解码图像、参考图像及显示图像的协同管理,协调控制视频的解码、显示,不需要复制大量的数据,可以满足要求的缓冲区容量小,降低了解码芯片的成本。
本发明还提出一种视频解码缓冲区的控制方法,包括如下的步骤:
步骤1、缓冲区控制模块根据当前解码图像缓冲区的图像数据及该图像数据的状态获得当前解码图像存储地址、当前参考图像地址、显示图像地址;
步骤2、缓冲区控制模块将所述当前参考图像地址发送给参考帧获取控制模块,所述参考帧获取控制模块根据缓冲区控制模块发送过来的参考图像地址从解码图像缓冲区中获取参考图像数据,并将其发送到解码核心模块中的运动补偿模块,进行解码;
步骤3、缓冲区控制模块判断所述的解码图像存储地址对应的图像是否已被显示,若没有被显示,则继续检测解码图像存储地址对应的图像是否已被显示,若已经显示,执行下一步骤;
步骤4、缓冲区控制模块将当前解码图像的存储地址发送给解码帧存储控制模块;解码帧存储控制模块根据该存储地址,将从解码核心模块输出的解码数据存入解码图像缓冲区;
步骤5、缓冲区控制模块将显示图像地址发送给显示帧获取控制模块,并同时将所述的显示图像地址写入显示图像地址仿真FIFO缓冲区;显示帧获取控制模块根据所述的显示图像地址从解码图像缓冲区中读取显示图像数据并将其发送到显示控制模块;
步骤6、显示控制模块接收并控制所述的显示图像数据在显示器上显示,同时显示控制模块将此显示数据的起始地址写入显示状态寄存器。
本发明所述的方法只用一个容量很小的缓冲区就可实现对解码图像、参考图像及显示图像的协同管理,协调控制视频的解码、显示,可以使解码速度与显示速度同步。
附图说明
图1为典型的解码模块的结构示意图;
图2为本发明所述装置的工作原理示意图;
图3为本发明所述方法的流程图。
具体实施方式
以下通过附图和具体的实施例对本发明进行详细的说明。
参见图2,为本发明所述装置的工作原理示意图。
从图中可知,本装置包括缓冲区控制模块1、参考帧获取控制模块2、解码帧存储控制模块3、显示帧获取控制模块4、显示控制模块5,该装置控制从解码核心模块8输出的解码数据存储在解码图像缓冲区9中,并从解码图像缓冲区9取出显示图像送到显示器6中进行显示。
其中,所述的缓冲区控制模块1是整个缓冲区的控制核心部分,计算获得当前解码图像需要使用的参考图像的地址,并发送给参考帧获取控制模块2,以便为解码当前图像获取参考数据;
计算获得当前解码图像的存储地址,并发送给解码帧存储控制模块3进行解码数据存储的控制;
计算下一图像需要显示的解码图像地址,并发送给显示帧获取控制模块4,显示帧获取控制模块4再通过该地址获得显示数据传送给显示控制模块5,该显示控制模块5控制该显示数据在显示器6上显示,同时显示控制模块5将当前显示图像的地址存储在当前显示状态寄存器7中,缓冲区控制模块1通过存储在当前显示状态寄存器中的当前显示地址判断已经计算的存储地址中的数据是否已经被显示来决定是否继续该图像的解码,若已被显示,则继续解码,否则等待,直到该地址被显示为止。地址是否冲突的具体判断策略如下:
本发明所述的装置的缓冲区控制模块1中还包括一显示图像地址仿真FIFO,所述的显示图像地址仿真FIFO用于存储缓冲区控制模块发送给显示帧获取控制模块但还没有被显示的显示图像地址,缓冲区控制模块1每向显示控制模块发送一个显示地址,就向该缓冲区中写入该地址;而且在计算获得存储图像地址之后,缓冲区控制模块将获取当前显示状态寄存器中的当前显示地址,去掉显示图像地址仿真FIFO中位于该显示地址之前的所有显示地址,因为在该显示地址之前的图像已经被显示;
在显示图像地址仿真FIFO中剩下的显示地址中搜索计算的解码图像存储地址,若有相等的地址出现,则说明该地址的图像还没有被显示(主要由于解码速度大于显示速度),若没有相等的地址出现,说明该地址的图像已显示。
所述的参考帧获取控制模块2根据缓冲区控制模块1发送过来的参考图像地址从解码图像缓冲区(RAM)中获取参考图像数据发送到解码核心模块8中供运动补偿时使用;
解码帧存储控制模块3根据缓冲区控制模块1发送过来的存储地址,向解码图像缓冲区9存储解码数据;
显示帧获取控制模块4根据缓冲区控制模块1发送过来的显示图像地址从解码图像缓冲区9中获取显示图像数据提供给显示控制模块5,由显示控制模块5控制该显示数据在显示器6上显示;
显示控制模块5控制获取的显示图像数据在显示器6上正常显示,并通过当前显示状态寄存器向缓冲区控制模块反馈当前显示图像地址信息。当显示帧获取控制模块没有向显示控制模块发送地址信息时,显示控制模块将控制重复显示前一显示图像的数据。
解码帧存储控制模块3在将从核心解码芯片中输出的解码数据向解码图像缓冲区9存储之前要判断是否有解码数据可以存储,为了判断出是否有解码数据可以存储,可以有多种方式,如:
解码帧存储控制模块可以包括一解码数据FIFO,所述的解码数据FIFO用于缓存从解码核心模块输出的当前解码数据,在判断是否有解码数据可以存储时,只有检索该解码数据FIFO是否为空即可;或者所述的解码帧存储控制模块与解码核心模块的去块效应滤波器连接,接收去块效应滤波器发送来的是否有解码数据输出的信号,根据该信号即可判断是否有解码数据可以存储。
本发明还提供一种视频解码缓冲区的控制方法,如图3所示,包括如下的步骤:
步骤1、缓冲区控制模块根据当前缓冲区的图像数据及该图像数据的状态获得当前解码图像存储地址、当前参考图像地址、显示图像地址;
步骤2、缓冲区控制模块将所述当前参考图像地址发送给参考帧获取控制模块,所述参考帧获取控制模块根据缓冲区控制模块发送过来的参考图像地址从解码图像缓冲区(RAM)中获取参考图像数据,并将其发送到解码核心模块的运动补偿模块;
步骤3、缓冲区控制模块判断所述的解码图像存储地址对应的图像是否已被显示,若没有被显示,则进行冲突检测,若已经显示,执行下一步骤;
步骤4、缓冲区控制模块将当前解码图像的存储地址发送给解码帧存储控制模块;解码帧存储控制模块根据该存储地址,将从解码核心模块输出的解码数据存入解码图像缓冲区;
步骤5、缓冲区控制模块将显示图像地址发送给显示帧获取控制模块,并同时写入显示图像地址仿真FIFO,显示帧获取控制模块根据该显示图像地址从解码图像缓冲区中读取显示图像数据并将其发送到显示控制模块,显示控制模块控制该显示图像数据在显示器上显示,同时显示控制模块将此时显示数据的起始地址写入显示状态寄存器。
其中,解码帧存储控制模块判断是否仍有解码数据从解码核心模块输出,如有,继续存储,在解码完一帧图像后返回步骤1,如没有,则解码帧存储控制模块进入空闲状态,等待下一次数据的到来。
本发明所用的缓冲区容量由下式确定:
S=(RefNum+φ)×PictureSize
其中RefNum是标准规定的最大参考图像数,例如AVS标准中为2;φ是一个权值,根据具体的流水设计结构而定,它表示缓冲区中除了用来存储参考图像的空间外,存储当前解码图像可再利用的空间。例如在AVS标准中,若缓冲区大小为4,则除了2个参考图像的空间外,还有2个图像的空间可以提供给解码帧存储控制模块和显示控制模块使用。对于AVS标准,其参考图像个数为2个,这两个位置必须保留以便其它图像来参考。而存储和显示至少需要一个存储空间,如果只有一个空间,在解码处理时会出现相互等待,即该位置的解码图像还未显示,而又必须往这个缓冲区位置存入后面的解码数据。此时解码器停下来等显示结束,再进行下一图像的解码处理,从而影响整体性能。而采用4个缓冲区,则可较好地解决这个问题。一般为2即可进行正常的流水作业;
PictureSize是解码图像的大小。
上述的参考图像地址、解码图像的存储地址,显示图像地址通过如下的公式得到:
Addr=Base+Pos×PictureSize,
其中,Pos的值时指该地址在DPB(Decoded Picture Buffr,解码图像缓冲区,简称DPB)缓冲区的位置编号,Base是指DPB缓冲区基址。
所述的参考图像地址中的Pos值通过如下的过程获得:
根据当前DPB缓冲区中图像的状态信息,对于AVS标准来说,分析当前DPB缓冲区中4个图像的状态信息,选择其中具有最大图像编号的非B图像(即I或P图像)的位置(0~3)做为参考图像地址中的Pos值,对于AVS标准来说,选择其中具有最大图像编号的两个非B图像(即I或P图像)的位置(0~3)做为参考图像地址中的Pos值。
所述的解码图像的存储地址中的Pos值通过如下的过程获得:
如果当前DPB缓冲区中有多于参考图像个数的非B图像,取图像编号最小的非B图像位置的值作为解码图像的存储地址中的Pos值,对于AVS标准来说,因为DPB的4个缓冲区里必然有2个是参考图像,它们都是非B图像,另外2个可以是任意组合的图像。如果另外的2个中有一个是非B图像,也就是说,当前DPB缓冲区有3个非B图像,此时,编号最小的非B图像已经没有使用意义了,这个空间可以再次使用,便将该编号最小的非B图像的位置的值作为解码图像的存储地址中的Pos值;
如果DPB缓冲区中有除参考图像的个数外的其他图像为B图像,则选取B图像中图像编号最小的位置的值作为解码图像的存储地址中的Pos值。所述的显示图像地址的Pos值通过如下的过程获得:
搜索当前DPB缓冲区的图像状态,分别找到当前没有被显示的具有最小图像编号的非B图像和B图像位置。如果DPB缓冲区中所有B图像都已显示,则取最小编号的非B图像的位置的值作为显示图像地址中的Pos值;如果B图像和非B图像都有还未显示的,此时如果最小编号的非B图像是最小编号的B图像的前向参考图像,则取非B图像的位置值作为存储地址中的Pos值,如果最小编号的非B图像不是最小编号的B图像的前向参考图像,则取B图像的位置的值作为存储地址中的Pos值。
步骤3所述的缓冲区控制模块判断所述的解码图像存储地址对应的图像是否已被显示的过程为:缓冲区控制模块读取显示状态寄存器中存放的当前显示图像的地址,去掉显示图像地址仿真FIFO中位于该显示地址之前的所有显示地址,因为在该显示地址之前的图像已经被显示,在显示图像地址仿真FIFO剩下的显示地址中搜索计算的解码图像存储地址,若发现有相等的地址出现,则说明该解码图像存储地址中的图像还没有显示,若没有相等的地址出现,说明该解码图像存储地址中的图像已经显示。
以AVS Video 1.0编码标准为例进行说明,AVS 1.0标准中,参考图像数最大为2,两个非B图像间B图像的个数只能是0、1和2三种数值,以下通过两个非B图像间有2个B图像的码流次序为实施例进行说明。
一个典型的解码器输入次序如下:
I0P1B2B3P4B5B6P7B8B9P10B11B12P13B14B15P16B17B18P19
对应的显示输出次序如下:
I0B2B3P1B5B6P4B8B9P7B11B12P10B14B15P13B17B18P16
缓冲区管理的过程由下表所示:
  DPB   Store   MC   Display
  Cur   0   1   2   3   S0   N0   N1   ref0   ref1   D0
  I0   I0[0]   0   I0   N   N   N
  P1   I0[0]   P1[0]   1   P1   0   N   I0
  Bx   I0[1]   P1[0]   B2[0]   2   B2   0   1   I0   P1   0   I0
  B3   I0[1]   P1[0]   B2[0]   B3[0]   3   B3   0   1   I0   P1   2   B2
  P4   I0[1]   P1[0]   P4[0]   B3[0]   2   P4   0   1   I0   P1   3   B3
  B5   B5[0]   P1[0]   P4[0]   B3[1]   0   B5   1   2   P1   P4   1   P1
  B6   B5[0]   P1[1]   P4[0]   B6[0]   3   B6   1   2   P1   P4   0   B5
  P7   P7[0]   P1[1]   P4[0]   B6[0]   0   P7   1   2   P1   P4   3   B6
  B8   P7[0]   B8[0]   P4[0]   B6[1]   1   B8   2   0   P4   P7   2   P4
  B9   P7[0]   B8[0]   P4[1]   B9[0]   3   B9   2   0   P4   P7   1   B8
  P10   P7[0]   P10[0]   P4[1]   B9[0]   1   P10   2   0   P4   P7   3   B9
  B11   P7[0]   P10[0]   B11[0]   B9[1]   2   B11   0   1   P7   P10   0   P7
  B12   P7[1]   P10[0]   B11[0]   B12[0]   3   B12   0   1   P7   P10   2   B11
  P13   P7[1]   P10[0]   P13[0]   B12[0]   2   P13   0   1   P7   P10   3   B12
  B14   B14[0]   P10[0]   P13[0]   B12[1]   0   B14   1   2   P10   P13   1   P10
  B15   B14[0]   P10[1]   P13[0]   B15[0]   3   B15   1   2   P10   P13   0   B14
  P16   P16[0]   P10[1]   P13[0]   B15[0]   0   P16   1   2   P10   P13   3   B15
  B17   P16[0]   B17[0]   P13[0]   B15[1]   1   B17   2   0   P13   P16   2   P13
  B18   P16[0]   B17[0]   P13[1]   B18[0]   3   B18   2   0   P13   P16   1   B17
  P19   P16[0]   P19[0]   P13[1]   B18[0]   1   P19   2   0   P13   P16   3   B18
  0   P16
表各项的意义解释如下,结合一行为例。
  DPB   Store   MC   Display
  Cur   0   1   2   3   S0   N0   N1   ref0   ref1   D0
  P10   P7[0]   P10[0]   P4[1]   B9[0]   1   P10   2   0   P4   P7   3   B9
  B11   P7[0]   P10[0]   B11[0]   B9[1]   2   B11   0   1   P7   P10   0   P7
  P7[1]   P10[0]   B11[0]   2   B11
Cur表示当前解码器输入的图像,如B11,即第11个图像,其类型是B图像。DPB的0、1、2和3分别表示缓冲区的4个存储位置,如P7 P10 B11 B9,即当前存储的4个图像分为两个P图像和两个B图像,其图像编号分为7、10、11和9。其中B11是刚刚存入的图像。Store表示存储的位置以及对应的图像,如表所示将输入B11存入2位置。MC表示参考图像的位置,如上B11的参考图像为P7和P10,它们对应的存储位置为0和1。Display表示将显示位置2的B11图像。每一位置后的[]表示该Pos处图像是否已经显示,1表示已经显示,0表示没有显示。这里的显示表示是已将地址送入了图像地址仿真FIFO,图像是否真正被显示需要查看图像显示模块返回的显示地址寄存器信息。
视频解码缓冲区的控制方法过程如下:
步骤1、当前缓冲区内容为P7 P10 P4 B9,缓冲区控制模块查看4个位置的状态信息,具体如下:
P4已经显示,其它3个图像都未送显。
B9的前后向参考图像分别是前向为P4,后向为P7
根据公式计算参考图像地址、解码图像存储的地址、显示图像的地址,其中,所述的公式为:
Addr=Base+Pos×PictureSize,
式中的Base是指DPB缓冲区基址,Pos的值是指其在DPB缓冲区的位置编号;
其中,确定参考图像的位置:选取具有最大图像编号的两个P图像,即P7和P10为当前解码图像B11的参考图像,其位置是0和1,根据该位置的值得到参考图像的地址;
确定解码图像存储的位置:因为此时有3个P图像,所以应该存入到最小图像编号的图像位置,即P4位置2,故可以将B11写入DPB的位置2。根据该位置的值得到解码图像存储的地址;
确定显示图像的位置:分别找到具有最小图像编号的两个未显示非B图像和B图像,即P10和B11,因为P10是B11的后向参考图像,所以此时应该显示B11。即B11解码完毕即可通知显示模块开始显示此图像,根据该位置的值得到显示图像的地址;
步骤2、缓冲区控制模块将所述当前参考图像地址发送给参考帧获取控制模块,所述参考帧获取控制模块根据缓冲区控制模块发送过来的参考图像地址从解码图像缓冲区(RAM)中获取参考图像数据P7和P10,并将其发送到解码核心模块的运动补偿模块进行解码;
步骤3、缓冲区控制器读取显示状态寄存器中存放的当前显示图像的地址,去掉显示图像地址仿真FIFO中位于该显示地址之前的所有显示地址,因为在该显示地址之前的图像已经被显示,在仿真FIFO中剩下的显示地址中搜索计算的解码图像存储地址,由于P4的地址没有在显示图像地址仿真FIFO中,所以说明该解码图像存储地址中的图像P4已经显示。
步骤4、缓冲区控制模块将当前解码图像的存储地址发送给解码帧存储控制模块;解码帧存储控制模块判断是否仍有解码数据从解码核心模块输出,如没有,则解码帧存储控制模块进入空闲状态,等待下一次数据的到来;如有,根据该存储地址,将从解码核心模块输出的当前解码数据存入解码图像缓冲区中原来P4的位置,在本实施例中由于有当前解码数据B11,所以将B11存入解码图像缓冲区中原来P4的位置,此时缓冲区变为P7 P10 B11 B9
步骤5、缓冲区控制模块将显示图像地址发送给显示帧获取控制模块,并同时将该地址写入显示图像地址仿真FIFO,显示帧获取控制模块根据该显示图像地址从解码图像缓冲区中读取显示图像数据B11,并将其发送到显示控制模块,显示控制模块控制该显示图像数据B11在显示器上显示,同时显示控制模块将此时显示数据了解的起始地址写入显示状态寄存器。
此时,当前解码数据B11的解码、显示处理完成,接下来重复上述步骤处理下一个图像数据。
在实现策略管理时,可以采用一个简单的结构来实现对应信息的统计。
typedef struct
{
  int pictype;
  int number;
  int disped;
  int motion[2];
}DPBMap_T;
DPBMap_T g_arrDPBMap[4];
与上面分析所用到信息对应,通过g_arrDPBMap数组来分别记录DPB的4个位置的各项数据,包括pictype表示图像类型,number表示图像编号,disped表示是否显示,motion分别记录当前图像的两个参考图像位置。通过维护这个结构数组,就能获得所有所需的策略分析信息。
采用对应的策略可以保证在4个缓冲区的范围内,有效管理各个图像存储。这个策略不但适用IPBB序列,对于IPPP序列,IPB序列,或者IPBBPBPBBPBP序列都是可以适用的。因为管理策略是从图像之间的关系来确定的,与具体的图像类型出现次序没有关系。
最后所应说明的是:以上实施例仅用以说明而非限制本发明的技术方案,尽管参照上述实施例对本发明进行了详细说明,本领域的普通技术人员应当理解:依然可以对本发明进行修改或者等同替换,而不脱离本发明的精神和范围的任何修改或局部替换,其均应涵盖在本发明的权利要求范围当中。

Claims (19)

1、一种视频解码缓冲区控制装置,其特征在于,包括缓冲区控制模块、参考帧获取控制模块、解码帧存储控制模块、显示帧获取控制模块、显示控制模块,其中,所述的缓冲区控制模块用于计算获得当前解码图像存储地址、当前参考图像地址、显示图像地址,并将以上地址分别对应发送到参考帧获取控制模块、解码帧存储控制模块、显示帧获取控制模块;
所述的参考帧获取控制模块根据缓冲区控制模块发送来的地址,从解码图像缓冲区获得参考图像,并发送到解码核心模块中的运动补偿模块,用于解码;
所述的解码帧存储控制模块根据缓冲区控制模块发送来的地址,将从解码核心模块输出的当前解码数据存放在解码图像缓冲区的所述发送来的地址中;
所述的显示帧获取控制模块根据缓冲区控制模块发送来的地址,从解码图像缓冲区获得显示图像,并将其发送到显示控制模块;
所述的显示控制模块控制接收到的显示图像在显示器上显示,同时将显示图像的地址写入显示状态寄存器。
2、根据权利要求1所述的视频解码缓冲区控制装置,其特征在于,所述的缓冲区控制模块还包括一显示图像地址仿真FIFO,所述的显示图像地址仿真FIFO用于存储缓冲区控制模块发送给显示帧获取控制模块但还没有真正显示的显示图像地址。
3、根据权利要求1所述的视频解码缓冲区控制装置,其特征在于,所述的解码帧存储控制模块包括一解码数据FIFO,所述的解码数据FIFO用于缓存从解码核心模块输出的当前解码数据。
4、根据权利要求1所述的视频解码缓冲区控制装置,其特征在于,所述的解码帧存储控制模块与解码核心模块的去块效应滤波器连接,接收去块效应滤波器发送来的是否有解码数据输出的信号。
5、一种视频解码缓冲区的控制方法,其特征在于,包括如下的步骤:
步骤1、缓冲区控制模块根据当前解码图像缓冲区的图像数据及该图像数据的状态获得当前解码图像存储地址、当前参考图像地址、显示图像地址;
步骤2、缓冲区控制模块将所述当前参考图像地址发送给参考帧获取控制模块,所述参考帧获取控制模块根据缓冲区控制模块发送过来的参考图像地址从解码图像缓冲区中获取参考图像数据,并将其发送到解码核心模块中的运动补偿模块,用于解码;
步骤3、缓冲区控制模块判断所述的解码图像存储地址对应的图像是否已被显示,若没有被显示,则继续检测解码图像存储地址对应的图像是否已被显示,若已经显示,执行下一步骤;
步骤4、缓冲区控制模块将当前解码图像的存储地址发送给解码帧存储控制模块;解码帧存储控制模块根据该存储地址,将从解码核心模块输出的解码数据存入解码图像缓冲区;
步骤5、缓冲区控制模块将显示图像地址发送给显示帧获取控制模块,并同时将所述的显示图像地址写入显示图像地址仿真FIFO缓冲区;显示帧获取控制模块根据所述的显示图像地址从解码图像缓冲区中读取显示图像数据并将其发送到显示控制模块;
步骤6、显示控制模块接收并控制所述的显示图像数据在显示器上显示,同时显示控制模块将此显示图像数据的起始地址写入显示状态寄存器。
6、根据权利要求5所述的视频解码缓冲区控制方法,其特征在于,所述步骤1中的解码图像缓冲区的容量由下式确定:
S=(RefNum+φ)×PictureSize
其中,S表示解码图像缓冲区的容量,RefNum是对图像解码时运用的标准规定的最大参考图像数;φ是一个权值,根据具体的流水设计结构而定;PictureSize是解码图像的大小。
7、根据权利要求6所述的视频解码缓冲区控制方法,其特征在于,所述的RefNum为AVS标准中规定的最大参考图像数2,φ为2。
8、根据权利要求5或6所述的视频解码缓冲区控制方法,其特征在于,所述的步骤1中获得当前解码图像存储地址、当前参考图像地址、显示图像地址通过如下的公式得到:
Addr=Base+Pos×PictureSize,
其中,Base为DPB缓冲区基址;Pos的值为该地址在解码图像缓冲区的位置编号。
9、根据权利要求8所述的视频解码缓冲区控制方法,其特征在于,当前参考图像地址中的Pos值的获取过程为:按照解码标准中的参考图像个数,在DPB缓冲区中从最大非B图像的图像编号开始顺次选取参考图像个数的非B图像的位置作为参考图像地址中的Pos值。
10、根据权利要求9所述的视频解码缓冲区控制方法,其特征在于,所述的标准为AVS标准,所述的参考图像个数为2个。
11、根据权利要求8所述的视频解码缓冲区控制方法,其特征在于,所述的当前解码图像存储地址中的Pos值获取的过程为:
判断当前DPB缓冲区中除参考图像以外的图像如果有一个非B图像,取图像编号最小的非B图像位置的值作为当前解码图像的存储地址中的Pos值;如果DPB缓冲区中除参考图像以外的其他图像为B图像,则选取B图像中图像编号最小的位置的值作为当前解码图像的存储地址中的Pos值。
12、根据权利要求10所述的视频解码缓冲区控制方法,其特征在于,所述的当前解码图像存储地址中的Pos值获取的过程为:判断当前DPB缓冲区中的非B图像个数是否是3个,如果是3个,取图像编号最小的非B图像位置的值作为当前解码图像的存储地址中的Pos值;如果不是3个,是2个,另外的2个是B图像,取B图像中图像编号最小的位置的值作为当前解码图像的存储地址中的Pos值。
13、根据权利要求8所述的视频解码缓冲区控制方法,其特征在于,所述显示图像地址中的Pos值获取的过程为:
搜索当前DPB缓冲区状态信息,从状态信息中找出当前没有显示的具有最小图像编号的非B图像和B图像位置,如果DPB缓冲区中所有B图像都已显示,则取最小编号的非B图像的位置的值作为显示图像地址中的Pos值;如果还有B图像和非B图像都有还未显示,如果最小编号的非B图像是最小编号的B图像的前向参考图像,则取非B图像的位置的值作为显示图像地址中的Pos值,如果最小编号的非B图像不是最小编号的B图像的前向参考图像,则取B图像的位置的值作为显示图像地址中的Pos值。
14、根据权利要求5所述的视频解码缓冲区控制方法,其特征在于,所述的方法还包括:缓冲区控制模块读取显示状态寄存器中存放的当前显示图像的地址,去掉显示图像地址仿真FIFO中位于显示状态寄存器中存放的当前显示图像地址之前的所有显示图像地址。
15、根据权利要求14所述的视频解码缓冲区控制方法,其特征在于,所述步骤3中缓冲区控制模块判断所述的解码图像存储地址对应的图像是否已被显示的过程为:缓冲区控制模块搜索显示图像地址仿真FIFO中的显示地址是否有与计算的解码图像存储地址相等的地址,如果有,则说明该解码图像存储地址中的图像还没有显示,如果没有,说明该解码图像存储地址中的图像已经显示。
16、根据权利要求5所述的视频解码缓冲区控制方法,其特征在于,所述步骤4中解码帧存储控制模块根据所述的存储地址将从解码核心模块输出的解码数据存入解码图像缓冲区之前,首先判断是否有可以存入解码图像缓冲区中的解码数据,如果有,则将该解码数据按照所述的存储地址存入解码图像缓冲区中,如果没有,则解码帧存储控制模块进入空闲状态,等待下一个解码数据从解码核心模块输出。
17、根据权利要求16所述的视频解码缓冲区控制方法,其特征在于,所述解码帧存储控制模块将从解码核心模块输出的解码数据存入其内部的解码数据FIFO,解码帧存储控制模块根据所述的解码数据FIFO是否为空,判断是否有可以存入解码图像缓冲区中的解码数据,如果有,则将该解码数据按照所述的存储地址存入解码图像缓冲区中,如果没有,则解码帧存储控制模块进入空闲状态,等待下一个解码数据从解码核心模块输出。
18、根据权利要求16所述的视频解码缓冲区控制方法,其特征在于,所述解码帧存储控制模块接收解码核心模块中的去块效应滤波器发送来的是否有解码数据输出的信号,根据该信号判断是否有可以存入解码图像缓冲区中的解码数据。
19、根据权利要求5所述的视频解码缓冲区控制方法,其特征在于,所述步骤6中若显示控制模块将显示图像数据显示在显示器后没有收到显示帧获取控制模块发送过来的显示图像数据,控制所述的显示图像数据重复在显示器上显示。
CN 200410070028 2004-08-05 2004-08-05 视频解码缓冲区控制装置及方法 Active CN1271864C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 200410070028 CN1271864C (zh) 2004-08-05 2004-08-05 视频解码缓冲区控制装置及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 200410070028 CN1271864C (zh) 2004-08-05 2004-08-05 视频解码缓冲区控制装置及方法

Publications (2)

Publication Number Publication Date
CN1589018A CN1589018A (zh) 2005-03-02
CN1271864C true CN1271864C (zh) 2006-08-23

Family

ID=34604395

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 200410070028 Active CN1271864C (zh) 2004-08-05 2004-08-05 视频解码缓冲区控制装置及方法

Country Status (1)

Country Link
CN (1) CN1271864C (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101523920B (zh) * 2006-10-16 2013-12-04 汤姆森许可贸易公司 在视频操作期间使用网络抽象层单元以信号方式指示即时解码刷新的方法
CN105120286B (zh) * 2015-06-26 2019-01-18 福州瑞芯微电子股份有限公司 一种视频解码参考帧取数方法及设备
CN106713927B (zh) * 2016-11-14 2019-08-13 珠海格力电器股份有限公司 一种图像输出装置、方法及解码器

Also Published As

Publication number Publication date
CN1589018A (zh) 2005-03-02

Similar Documents

Publication Publication Date Title
CN1658675A (zh) 一种应用硬件实现运动估计时的搜索窗数据读取方法
CN1574943A (zh) 用于控制数字视频比特流逆向播放的装置和方法
CN101076119A (zh) Mpeg视频再现装置以及mpeg视频再现方法
CN1921625A (zh) 去块效应滤波器的滤波方法与系统
CN1595994A (zh) 共享动态影像压缩的缓冲器的方法及装置
CN1874516A (zh) 基于avs的去块效应滤波器vlsi实现装置
CN1589028A (zh) 基于像素流水的帧内预测装置及预测方法
CN1852442A (zh) 一种分层运动估计方法和超大规模集成电路
CN1214648C (zh) 用于在纹理映射引擎中执行运动补偿的方法与设备
CN1271859C (zh) 图像处理装置
CN1703094A (zh) 1/4像素插值应用于1/2像素插值结果的图象插值装置和方法
CN1271864C (zh) 视频解码缓冲区控制装置及方法
CN1306824C (zh) 图像边界像素扩展系统及其实现方法
CN1268136C (zh) 基于图像切片结构的帧场自适应编码方法
CN1286323C (zh) 帧场视频解码中运动矢量存取的控制装置及其方法
CN1925616A (zh) 一种宏块对级帧场自适应编解码方法
Liu et al. An 865-μW H. 264/AVC video decoder for mobile applications
CN1874512A (zh) 用于avs视频解码器的高效流水线系统
CN1306819C (zh) 一种视频解码控制方法及装置
CN1745587A (zh) 用于手持装置的视频编码方法
CN1306821C (zh) 一种视频图像中运动矢量预测生成的方法及其装置
CN1449197A (zh) 视频编码系统中的b图象模式确定方法与装置
CN1306825C (zh) 视频解码芯片中基于行缓冲的参考存储方法
CN1284380C (zh) 一种参考图像缓冲区管理方法
CN1881190A (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
ASS Succession or assignment of patent right

Owner name: ZHANXUN COMMUNICATIONS (SHANGHAI) CO., LTD.

Free format text: FORMER OWNER: UNITED XINYUAN DIGITAL AUDIO-VIDEO TECHNOLOGY (BEIJING) CO., LTD.

Effective date: 20070615

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20070615

Address after: 201203 Shanghai city Zuchongzhi road Pudong Zhangjiang hi tech park, Spreadtrum Center Building 1, Lane 2288

Patentee after: SPREADTRUM COMMUNICATIONS (SHANGHAI) Co.,Ltd.

Address before: 100080 North building, room 6, 140 South Road, Haidian District Academy of Sciences, Beijing

Patentee before: UNITED XINYUAN DIGITAL AUDIO V

TR01 Transfer of patent right

Effective date of registration: 20190315

Address after: 101399 Building 8-07, Ronghui Garden 6, Shunyi Airport Economic Core Area, Beijing

Patentee after: Xin Xin finance leasing (Beijing) Co.,Ltd.

Address before: 201203 Shanghai city Zuchongzhi road Pudong Zhangjiang hi tech park, Spreadtrum Center Building 1, Lane 2288

Patentee before: SPREADTRUM COMMUNICATIONS (SHANGHAI) Co.,Ltd.

TR01 Transfer of patent right
EE01 Entry into force of recordation of patent licensing contract

Application publication date: 20050302

Assignee: SPREADTRUM COMMUNICATIONS (SHANGHAI) Co.,Ltd.

Assignor: Xin Xin finance leasing (Beijing) Co.,Ltd.

Contract record no.: X2021110000008

Denomination of invention: Video decoding buffer control device and method

Granted publication date: 20060823

License type: Exclusive License

Record date: 20210317

EE01 Entry into force of recordation of patent licensing contract
TR01 Transfer of patent right

Effective date of registration: 20221018

Address after: 201203 Shanghai city Zuchongzhi road Pudong New Area Zhangjiang hi tech park, Spreadtrum Center Building 1, Lane 2288

Patentee after: SPREADTRUM COMMUNICATIONS (SHANGHAI) Co.,Ltd.

Address before: 101399 Building 8-07, Ronghui Garden 6, Shunyi Airport Economic Core Area, Beijing

Patentee before: Xin Xin finance leasing (Beijing) Co.,Ltd.

TR01 Transfer of patent right