CN104811721B - 视频解码数据存储方法及运动向量数据的计算方法 - Google Patents
视频解码数据存储方法及运动向量数据的计算方法 Download PDFInfo
- Publication number
- CN104811721B CN104811721B CN201510275792.8A CN201510275792A CN104811721B CN 104811721 B CN104811721 B CN 104811721B CN 201510275792 A CN201510275792 A CN 201510275792A CN 104811721 B CN104811721 B CN 104811721B
- Authority
- CN
- China
- Prior art keywords
- motion vector
- data
- reference frame
- frame
- vector data
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
- H04N19/43—Hardware specially adapted for motion estimation or compensation
- H04N19/433—Hardware specially adapted for motion estimation or compensation characterised by techniques for memory access
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/513—Processing of motion vectors
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/513—Processing of motion vectors
- H04N19/517—Processing of motion vectors by encoding
- H04N19/52—Processing of motion vectors by encoding by predictive encoding
Abstract
本发明提供一种视频解码数据存储方法及运动向量的计算方法,视频解码数据存储方法包括在静态随机存储器内设置参考帧队列表格,将多个参考帧的基本信息存储在参考帧队列表格内,参考帧队列表格的每一个单元存储有一个参考帧对应在解码缓冲区内的索引信息;在解码缓冲区内存储与索引信息对应的多组帧缓冲信息,每一组帧缓冲信息包括帧显示顺序数据、运动向量存储地址信息;在动态随机存储器内存储每一参考帧的运动向量数据,运动向量存储地址信息为参考帧的对应块的编码树单元的运动向量数据存储在动态随机存储器的地址信息。应该本发明的方法可以提高视频解码的效率,并且节省硬件的开销,并节省视频解码是所占用的带宽资源。
Description
技术领域
本发明涉及图像数据处理领域,具体地,是涉及视频解码数据的存储方法以及基于这种数据存储方法实现的运动向量数据的计算方法。
背景技术
随着人们对视频图像的质量要求越来越高,传统的视频编码、解码技术已经不能满足人们的对视频图像质量的要求。随着视频图像处理技术的进步,现在的视频编码、解码技术朝着高分辨率、高帧率、高压缩率的方向发展。为此,ITU-T VCEG(Video CodingExperts Group)和ISO/IEC MPEG(Moving Picture Experts Group)联合成立了JCT-VC(Joint Collaborative Team on Video Coding)联合组织,统一制定下一代编码标准:HEVC(High Efficiency Video Coding)标准。
HEVC(又名“H.265”)标准采用了大量新的技术,比如更大的编码单元、非对称预测运动向量(AMVP)、时域预测运动向量(TMVP)、采样点自适应偏移(SAO)、并行化设计(WPP、TILE)等。
HEVC标准采用3种帧类型,即一个图像组内的I帧、B帧和P帧,可以包含帧间和帧内压缩的技术。其中I帧只包含帧内预测单元,B帧和P帧既可以包含帧内预测单元,也可以包含帧间预测单元。
HEVC标准中基本的编码单元叫做编码树单元(CTU),它有三种像素尺寸,分别是64×64、32×32、16×16。一个视频序列中编码树单元的大小是固定的。64×64的编码树单元可以向下分成32×32、16×16、8×8、4×4的编码单元(CU),同理,32×32的编码树单元也可以分别向下分成16×16、8×8、4×4的编码单元,16×16的编码树单元可以向下分解成8×8、4×4的编码单元。HEVC标准中还设有预测单元(PU),它表示在参考帧中有相应合适的块去匹配当前帧的编码单元块的预测,预测单元是由编码单元的大小向下拆分成对称或者非对称的单元,类似于2N×N、N×2N、2N×2N的单元等。
HEVC标准中包括帧内预测、帧间预测的技术,其中帧内预测是当前编码树单元的块预测信息来自它周围的像素点,帧间预测表示它预测的块预测信息来自相对于当前帧时间轴前面的帧队列或者时间轴后面的帧队列中的参考帧。每解码完成一帧后,参考帧队列中的每一帧的标识码需要重排,因为时间在移动,帧间相关性也发生了变化。帧间预测需要从时间轴前面的帧队列中或者时间轴后面的帧队列中获取预测单元块,这个过程叫做参考。因此首先要知道参考的哪一帧,需要通过每一帧的标识码来识别所参考的是哪一帧。标识码可以来自时间轴前面的帧队列,也可以来自时间轴后面的帧队列。获取哪一帧后就要知道预测单元在参考帧中的具体位置,这是一个相对位置,即相对当前编码单元块的位置,可以表示成坐标形式(X,Y),HEVC标准中表示成运动向量数据,X方向表示成MV_X,而Y方向表示成MV_Y。
HEVC标准中有前后两个参考帧队列,最多各有16帧,因此标识码除了要表示在那个队列中外还要表示的范围[0~15],因此运动向量数据的信息更是很大的数据开销。特别是在4K分辨率的视频中,MV_X或者MV_Y的信息表示的范围是[0~4096],这是个庞大的数据开销,并且这些都需要编码。
为了提高压缩率,HEVC标准中提出了一种预测运动向量(MVP)的技术。由于图像大部分运动块都是相似或者相同的,所以根据周围编码单元块或者时间轴前面或者后面的帧队列中的参考帧的已经编码过的编码单元块的运动向量数据的信息去表示当前编码单元需要编码的运动向量数据的信息,这样可以达到提高压缩率的目的。
其中有一种运动向量预测叫时域预测运动向量(TMVP),它是取时间轴对应帧中的相对应块的运动向量数据作为相对应的运动向量数据。它提供两种预测运动向量数据的候选:一种是在对应预测单元的右下角的一个16×16的块的运动向量数据,还有一种是对应的预测单元中间位置的16×16的块的运动向量数据。第一种数据的优先级较高,如果存在第一种数据有效的情况下,那么第二种数据不纳入候选列表。
HEVC标准中的时域预测运动向量虽然可以使用很较少的开销来解决与运动向量数据有关的问题,但是需要提供很多额外的信息,如时间轴对应帧的标识码、相对应块的运动向量数据的信息等。由于每解码完成一帧后需要保存其运动向量数据的信息以及一些参考的信息,当解码当前帧时需要从动态随机存取存储器中获取参考帧的运动信息数据。由于相对应块的运动向量数据非常庞大,因此,如何让硬件读取这些数据速度更加高效,不浪费额外的带宽浪费成为迫切需要解决的问题。
公告号为CN103444182的中国发明专利申请提供了一种存储运动信息的方法,该方法是将对应运动向量以及相对应块的标识码放在一起存储,这样的做法对于硬件而言标识码只要较少的比特,如4比特的数据存储,而运动向量数据需要从16比特的位置开始存储,这种数据结构不对称对于硬件而言需要读取大量没用的数据,浪费读取数据的时间。而且,对于标识码而言,由于每解码完成一帧数据后需要做参考帧的重排,计算过程是大量的排序计算,使用集成电路实现这些程序将导致电路板的面积非常大,也导致硬件消耗的功率过大。
发明内容
本发明的主要目的是提供一种提高读取运动向量数据速度的视频解码数据的存储方法。
本发明的另一目的是提供一种读取运动向量数据时占用更少带宽的运动向量计算方法。
为了实现上述的主要目的,本发明提供的视频解码数据的存储方法包括在静态随机存储器内设置参考帧队列表格,将多个参考帧的基本信息存储在参考帧队列表格内,参考帧队列表格的每一个单元存储有一个参考帧对应在解码缓冲区内的索引信息;在解码缓冲区内存储与索引信息对应的多组帧缓冲信息,每一组帧缓冲信息包括帧显示顺序数据、运动向量存储地址信息;在动态随机存储器内存储每一参考帧的运动向量数据,运动向量存储地址信息为参考帧的对应块的编码树单元的运动向量数据存储在动态随机存储器的地址信息。
由上述方案可见,在静态随机存储器内只存储参考帧队列表格、多组帧缓冲信息,通过熵解码后获得的参考帧的标识码从参考帧队列表格获取索引信息后可以获得参考帧的帧显示顺序数据、运动向量存储地址信息,再根据运动向量存储地址信息从动态随机存储器内获取相应的运动向量数据。由于参考帧队列表格、多组帧缓冲信息存储在静态随机存储器内,数据的读取速度快,而从动态随机存储器获取的运动向量数据量较少,因此视频数据解码的速度较快,对硬件的开销较小,占用的带宽也较少。
一个优选的方案是,在动态随机存储器内连续存储的运动向量数据为编码树单元的多个编码单元按列从左向右排列的运动向量数据。
由于视频解码的时候可能需要使用右边一列的运动向量数据作,因此多个编码单元的运动向量数据按列从左向右排列,可以方便地读取编码树单元右边一列的运动向量数据,减小视频解码时从动态随机存储器读取数据的量。
进一步的方案是,在编码树单元的像素小于最小存储单元像素时,在动态随机存储器内连续存储的运动向量数据为多个编码树单元按列从左向右排列的运动向量数据。
由此可见,在编码树单元的像素较小时,将多个编码树单元的运动向量数据按列从左向右排列,有利于一次读取多个编码树单元的运动向量数据,提高视频解码的效率。
进一步的方案是,运动向量数据包括运动向量索引信息,将两个编码单元或者两个编码树单元的运动向量索引信息存储在一个字内。
由此可见,由于运动向量索引信息只有0.5个字的存储容量,将两个编码单元或者两个编码树单元的运动向量索引信息存储在一个字内以节省动态随机存储器的存储空间,也可以让硬件一次读取更多的数据,提高硬件读取数据的效率。
为实现上述的另一目的,本发明提供的运动向量计算方法包括使用熵解码得到的参考帧的帧标识码在静态随机存储器的参考帧队列表格中查找对应的单元,根据该单元所存储的索引信息查找参考帧对应在解码缓冲区的帧缓冲信息,获取当前参考帧的显示顺序数据以及运动向量存储地址信息;根据运动向量存储地址信息在动态随机存储器内查找参考帧的对应块的编码树单元的运动向量数据,应用运动向量数据计算返回运动向量数据。
由上述方案可见,计算返回的运动向量过程中,需要从动态随机存储器读取的数据量仅仅是与参考帧相关的运动向量数据,而不需要将大量无关的运动向量数据读入,因此视频解码的效率得以提升,并且读取的数据量较少,可以节省占用的带宽。
一个优选的方案是,计算返回运动向量数据前,从运动向量存储地址信息对应的地址为起始地址的存储区域内读取对应帧的显示顺序数据、对应帧的参考帧的显示顺序数据、当前帧的显示顺序数据以及当前参考帧的显示顺序数据。
由于计算返回运动向量数据可能需要使用多个相关帧的显示顺序数据,因此在动态随机存储器内存储多个相关帧的显示顺序数据,可以方便地获取这些帧的显示顺序数据,提高视频解码的速度。
附图说明
图1是本发明视频解码数据存储方法实施例中对应块运动向量的结构示意图。
图2是本发明视频解码数据存储方法实施例中四个像素为16×16的编码树单元排列的结构图。
图3是本发明视频解码数据存储方法实施例中像素为32×32的编码树单元排列的结构图。
图4是本发明视频解码数据存储方法实施例中像素为16×16的编码树单元的运动向量索引单元的数据存储结构图。
图5是本发明视频解码数据存储方法实施例中像素为32×32的编码树单元的运动向量索引单元的数据存储结构图。
图6是本发明视频解码数据存储方法实施例中像素为64×64的编码树单元排列的结构图。
以下结合附图及实施例对本发明作进一步说明。
具体实施方式
本发明视频解码数据存储方法应用在H.265标准的视频编解码技术中,通过设置特殊的参考帧队列表格使得表格中的每一个单元与解码缓冲区的数据一一对应,从而减小从动态随机存储器读取的数据的量,提高视频解码的效率,也减小集成电路的面积。运动向量数据的计算方法是基于上述的视频解码数据存储方法所存储的数据来实现运动向量数据的计算,从而返回计算后的运动向量数据。
视频解码数据存储方法实施例:
由于HEVC标准中,每解码完成一帧数据并且按照显示顺序显示后,有一部分帧是不会作为参考帧并且被丢弃,但有很多帧将作为其他帧的参考帧,因此需要将可能作为参考帧的数据加入到参考帧队列中。在这些参考帧中,作为前向参考的被放入时间轴前面的帧队列中,作为后向参考的被放入时间轴后面的帧队列中,并且每一帧均有唯一的标识码。
由于每解码完成一帧数据后帧需要对参考帧队列进行重新排序,且解码完的帧可能会被作为参考帧放入参考帧队列。因此,本发明在静态随机存储器(SRAM)内设置参考帧队列表格,如表1所示。
Unit(32-bits) | bit 31:24 | bit 23:16 | bit 15:8 | bit 7:0 |
Addr 0 | List0[3] | List0[2] | List0[1] | List0[0] |
Addr 4 | List0[7] | List0[6] | List0[5] | List0[4] |
Addr 8 | List0[11] | List0[10] | List0[9] | List0[8] |
Addr 12 | List0[15] | List0[14] | List0[13] | List0[12] |
Addr 16 | List1[3] | List1[2] | List1[1] | List1[0] |
Addr 20 | List1[7] | List1[6] | List1[5] | List1[4] |
Addr 24 | List1[11] | List1[10] | List1[9] | List1[8] |
Addr 28 | List1[15] | List1[14] | List1[13] | List1[12] |
表1
参考帧队列表格包含有32个单元,每一个单元为8比特,表示一个参考帧的基本信息。在静态随机存储器中,参考帧队列表格以32比特为一组连续地排列。参考帧队列表格中List0[0]表示时间轴前面的帧队列中标识码为0的参考帧的基本信息,List1[0]表示时间轴后面的帧队列中标识码为0的参考帧的基本信息,如此类推。因此,参考帧队列表格中包含时间轴前面的帧队列的16个参考帧以及时间轴前面的帧队列的16个参考帧的基本信息。这样,视频解码过程中,解码器只需要根据熵解码出来的标识码在参考帧队列表格中查找相应的参考帧即可。
参考帧队列表格中每一个单元所存储的数据如表2所示。
bit 7 | bit 6-5 | bit 4:0 |
0:short term 1:long term | reserved | frame_buffer_index |
表2
每一个单元包含8比特的数据,其中最高位数据表示该参考帧是长期参考帧还是短期参考帧,也就是short term和long term分别表示短期参考帧和长期参考帧,使用二进制数0表示短期参考帧,使用二进制数1表示长期参考帧。短期参考帧表示当前帧在参考帧队列中所需要参考的参考帧的范围最大到16帧,而长期参考帧可以超过这个数量。
每一个单元低五位frame_buffer_index是参考帧对应在解码缓冲区内的索引信息,表示参考帧队列中的该参考帧对应到解码驱动中的缓冲区的索引标识。这样,虽然每解码完成一帧数据后,需要对参考帧队列的参考帧进行重新排列,参考帧的标识码发生改变,但是索引信息的内容不会改变,只需要改变参考帧队列中相应单元的索引信息即可。
在获取了参考帧的索引信息后,需要从动态随机存储器中读取参考帧的信息包括该参考帧的运动向量数据的信息,由于运动向量数据的存储在动态随机存储器中,需要有地址索引才能读取。因此,本发明设置了一个存储在静态随机存储器内的表格,存储有多组帧缓冲信息,每一组帧缓冲信息包括帧显示顺序数据、运动向量存储地址信息、参考帧亮度数据、参考帧色度数据等信息。一组帧缓冲信息的表格如表3所示。
表3
根据参考帧队列表格中一个单元的索引信息可以在查找到该参考帧对应在静态随机存储器的帧缓冲信息的表格的地址,因此帧缓冲信息的表格最多有32组,分别是时间轴前面的帧队列的16个参考帧的帧缓冲信息以及时间轴后面的帧队列的16个参考帧的帧缓冲信息,32组的帧缓冲信息在静态随机存储器内连续存储。这样,在解码驱动中配置好参考帧队列后,解码器获取参考帧的标识码后就可以查找到对应的索引信息,并根据索引信息查找到到帧缓冲信息。
在一组帧缓冲信息中,地址Addr00存储的Frame POC表示参考帧的显示顺序数据,地址Addr08存储的是该参考帧的运动向量存储地址信息。由于运动向量数据是存储在动态随机存储器内,因此运动向量存储地址信息是参考帧的对应块的编码树单元的运动向量数据存储在动态随机存储器的地址信息。地址Addr0c存储的是参考帧的亮度数据,地址Addr10存储的是参考帧的色度数据。
获取运动向量存储地址后,需要从动态随机存储器中读取相应的运动向量数据。下面介绍运动向量数据在动态随机存储器的存储方法。由于当前帧在时间轴上对应帧的对应块的运动向量数据是以像素为16×16的像素块为单位获取的,如果编码单元块的像素小于16×16,那么向左上角最接近的16×16的像素块的运动向量作为当前编码单元的对应块的运动向量数据。
对应块的运动向量数据有两种计算方法,如图1所示,nPsw、nPsh分别表示编码模块对应块的预测模块的宽度和高度,坐标(xPRb,yPrb)表示编码单元右下角的16×16的像素块对应块的编码单元,如果对应块的编码单元在当前对应块的编码树单元内部且在图像尺寸的内部,并在非帧内预测模式下,那么对应块的编码单元有效。否则,获取坐标(xPCtr,xPcr)的16×16的像素块作为对应块的编码单元,即预测单元中间的一个16×16的像素块。如果该像素块也无效,那么设定对应块的编码单元的值为(0,0)。
在动态随机存储器内连续存储有多个参考帧的运动向量数据,由于参考帧的编码树单元的大小可以是16×16像素块、32×32像素块、64×64像素块,对于16×16像素块的运动向量数据,需要使用2.5个字(word)来存储其运动向量数据,其中每一个字为4个字节(byte)。由于32位的动态随机存取存储器每一次读取数据的长度是8个字,为了提高16×16像素块的数据读取速度,在动态随机存储器连续存储的多个参考帧的运动向量数据为相邻的四个16×16像素块的运动向量数据。因此,对于像素为16×16的编码树单元,连续存储的运动向量数据对应的编码树单元的排列如图2所示。
从图2可见,四个像素为16×16的编码树单元按列从左向右排列,四个编码树单元在动态随机存储器内的存储结构如表4所示。
表4
从表4可见,相邻的两个编码树单元CTU0、CTU1共使用5个字来存储其运动向量数据,相邻的两个编码树单元CTU2、CTU3也是共使用5个字来存储其运动向量数据。其中,CTU0的BlkMV for list0表示编码树单元CTU0的位于时间轴前面的帧队列的对应块的运动向量基础数据,BlkMV for list1表示位于时间轴后面的帧队列的对应块的运动向量基础数据,如此类推。而Blkinfo表示两个编码树单元的运动向量索引信息。
一个对应块的运动向量基础数据如表5所示。
bit 31:16 | bit 15:0 |
MV_X | MV_Y |
表5
可见,位于时间轴前面的帧队列的对应块的运动向量基础数据、位于时间轴前面的帧队列的对应块的运动向量基础数据分别使用1个字存储,因此对应块的运动向量基础数据共需要使用2个字存储。相邻的两个编码树单元的运动向量索引信息的存储结构如图4所示,其中frm_buf_idx_lx参考帧信息保存的索引号,predFlagLx表示所参考队列为时间轴前方的队列还是后方的队列,如使用L0表示所参考队列为时间轴前方的队列,使用L1表示所参考队列为时间轴后方的队列,isLongRefLx表示是否作为长期参考帧,isBottom表示是否是底场。
从图4可见,每一个编码树单元的运动向量索引信息只占用0.5个字,将相邻的两个编码树单元的运动向量索引信息存储在一个字内,可以提高数据存储的效率,避免数据存储的浪费。
可见,当编码树单元的像素小于预先设定的最小存储单元像素时,将四个编码树单元连续排列组成一个较大的块,有利于数据的快速读取。
当编码树单元的像素大小为32×32时,可以将编码树单元向下分解成四个像素为16×16的编码单元,如图3所示,每一个编码单元为一个块(block),并且动态随机存储器内连续存储的运动向量数据是四个编码单元按列从左向右布置时的运动向量数据,此时运动向量数据存储格式如表6所示。
表6
表6中,block 0的BlkMV for list0表示block 0的位于时间轴前面的帧队列的对应块的运动向量基础数据,也是使用1个字存储其数据,BlkMV for list1表示位于时间轴后面的帧队列的对应块的运动向量基础数据,以此类推。Blkinfo表示相邻两个编码单元的运动向量索引信息,也是使用1个字存储其数据。此时,运动向量索引信息的存储结构如图5所示。
对于编码树单元的像素为64×64时,如图6所示,将编码树单元划分16个16×16的编码单元,在动态随机存储器连续存储的数据是16个编码单元是按列从左向右布置的,在动态随机存储器所存储的运动向量数据如表7所示。
表7
由于32的动态随机存储器一次突发取数是8个字,将4个对应块的编码单元的运动向量数据连续存储,可以提高数据的读取效率。而一列对应块的编码单元的运动向量数据只需要10个字来存储,如果是按照光栅扫描顺序排列对应块的编码单元,靠近左边的一列的编码单元在很多情况下由于地址非32字节对齐而需要发送2次突发取数,如果按列的方式连续存放编码单元,在大部分情况下只需要发送一次突发取数就可以满足需求,这样周围块还有可能使用到这部分数据,而不需要再次从动态随机存储器中读取数据。因此,按列从左向右排列编码单元的运动向量数据可以有效地节省带宽。
由于在计算当前帧的返回运动向量数据时,可能需要使用多个帧的显示顺序数据,如当前帧的显示顺序数据、当前参考帧的显示顺序数据、对应帧的参考帧的显示顺序数据等,因此需要在运动向量存储地址信息对应的地址为起始地址的存储区域内存储多个相关帧的显示顺序数据,这些帧的显示顺序数据的存储结构如表8所示。
Ref_idx=0 | Ref_idx=1 | Ref_idx=2 | Ref_idx=3 | Ref_idx=4 | Ref_idx=5 | Ref_idx=6 | Ref_idx=7 |
Ref_idx=8 | Ref_idx=9 | Ref_idx=10 | Ref_idx=11 | Ref_idx=12 | Ref_idx=13 | Ref_idx=14 | Ref_idx=15 |
Ref_idx=16 | Ref_idx=17 | Ref_idx=18 | Ref_idx=19 | Ref_idx=20 | Ref_idx=21 | Ref_idx=22 | Ref_idx=23 |
Ref_idx=24 | Ref_idx=25 | Ref_idx=26 | Ref_idx=27 | Ref_idx=28 | Ref_idx=29 | Ref_idx=30 | Ref_idx=31 |
表8
在动态随机存储器内存储上述多个帧的显示顺序的数据,可以方便地从动态随机存储读取这些数据并计算返回的运动向量数据。
运动向量数据的计算方法实施例:
对视频图像进行解码时,首先使用熵解码得到的参考帧的帧标识码在静态随机存储器的参考帧队列表格中查找对应的单元,由于帧标识码与参考帧队列表格中每一个单元是一一对应的,通过帧标识码可以快速地查找出对应的单元,即确定参考帧对应表1的具体单元。
然后,相对应的单元所存储的索引信息查找参考帧对应在解码缓冲区的帧缓冲信息,即根据表2的frame_buffer_index查找到存储在静态随机存储器内的表3的地址,进而根据表3获取当前参考帧的显示顺序数据以及运动向量存储地址信息,即查找到表4或者表6或者表7的数据的存储地址。这样,可以查找到参考帧的对应块的编码树单元的运动向量数据,可以计算返回运动向量数据。
由于参考帧队列表格、帧缓冲信息存储在静态随机存储器内,由于静态随机存储器的读写速度快,可以很快的将参考帧队列表格、帧缓冲信息读入。另外,从动态随机存储器所读取的数据仅仅包括参考帧的运动向量数据,数据量较少,进而减少数据读入的数据,可以减小硬件的开销,节省电路板的面积,提高视频解码的效率。
计算返回运动向量数据时,首先需要判断参考帧的参考单元所参考的是长期参考帧还是短期参考帧,由于表2中有相应的标记,从表2的标记可以得到参考帧是长期参考帧还是短期参考帧。如果是长期参考帧,返回运动向量数据即为编码树单元的运动向量数据。
如果参考帧是短期参考帧,则需要否则那么就需要用到多个帧的显示顺序数据,包括当前帧的显示数据iCurrPOC、参考帧的时间轴上对应帧的显示顺序数据iColPOC、对应帧的参考帧的显示顺序数据iColRefPOC、当前参考帧的显示顺序数据iCurrRefPOC以及对应块的预测模块的数据等计算返回运动向量数据,计算公式如下:
td=iColPOC–iColRefPOC (式1)
tb=iCurrPOC–iCurrRefPOC (式2)
tx=(16384+(Abs(td)>>1))/td (式3)
distScaleFactor=Clip3(-4096,4095,(tb×tx+32)>>6)(8-181)(式4)
mvLXCol=Sign(distScaleFactor×mvCol)×((Abs(distScaleFactor×mvCol)+127)>>8) (式5)
上述式子中,Sign表示取表达式的符号,Abs表示取表达式的绝对值,mvLXCol为返回运动向量数据。
由于当前帧的显示数据iCurrPOC、参考帧的时间轴上对应帧的显示顺序数据iColPOC、对应帧的参考帧的显示顺序数据iColRefPOC、当前参考帧的显示顺序数据iCurrRefPOC的数据存储在表8中,因此可以快速地计算返回的运动向量数据。
最后需要强调的是,本发明不限于上述实施方式,如运动向量数据中的运动向量索引数据存储格式的改变、编码树单元大小的改变等变化也应该包括在本发明权利要求的保护范围内。
Claims (10)
1.视频解码数据的存储方法,其特征在于,包括;
在静态随机存储器内设置参考帧队列表格,将多个参考帧的基本信息存储在所述参考帧队列表格内,所述参考帧队列表格的每一个单元存储有一个所述参考帧对应在解码缓冲区内的索引信息;
在所述解码缓冲区内存储与所述索引信息对应的多组帧缓冲信息,每一组所述帧缓冲信息包括帧显示顺序数据、运动向量存储地址信息;
在动态随机存储器内存储每一所述参考帧的运动向量数据,所述运动向量存储地址信息为所述参考帧的对应块的编码树单元的运动向量数据存储在所述动态随机存储器的地址信息。
2.根据权利要求1所述的视频解码数据的存储方法,其特征在于:
在所述动态随机存储器内连续存储的所述运动向量数据为所述编码树单元的多个编码单元按列从左向右排列的运动向量数据。
3.根据权利要求2所述的视频解码数据的存储方法,其特征在于:
在所述编码树单元的像素的存储空间小于最小存储单元像素的存储空间时,在所述动态随机存储器内连续存储的所述运动向量数据为多个编码树单元按列从左向右排列的运动向量数据。
4.根据权利要求3所述的视频解码数据的存储方法,其特征在于:
所述运动向量数据包括运动向量索引信息;
将两个所述编码单元或者两个所述编码树单元的所述运动向量索引信息存储在一个字内。
5.根据权利要求1至3任一项所述的视频解码数据的存储方法,其特征在于:
在所述运动向量存储地址信息对应的地址为起始地址的存储区域内存储有当前参考帧所需要参考的多个帧的显示顺序数据。
6.运动向量数据的计算方法,其特征在于:包括
使用熵解码得到的参考帧的帧标识码在静态随机存储器的参考帧队列表格中查找对应的单元,根据所述单元所存储的索引信息查找所述参考帧对应在解码缓冲区的帧缓冲信息,获取当前参考帧的显示顺序数据以及运动向量存储地址信息;
根据所述运动向量存储地址信息在动态随机存储器内查找所述参考帧的对应块的编码树单元的运动向量数据,应用所述运动向量数据计算返回运动向量数据。
7.根据权利要求6所述的运动向量数据的计算方法,其特征在于:
计算所述返回运动向量数据时,判断所述参考帧的参考单元所参考的是长期参考帧时,所述返回运动向量数据为所述编码树单元的运动向量数据。
8.根据权利要求6所述的运动向量数据的计算方法,其特征在于:
计算所述返回运动向量数据时,判断所述参考帧的参考单元所参考的是短期参考帧时,应用所述编码树单元的运动向量数据、所述参考帧的时间轴上对应帧的显示顺序数据、所述对应帧的参考帧的显示顺序数据、当前帧的显示顺序数据以及当前参考帧的显示顺序数据计算所述返回运动向量数据。
9.根据权利要求8所述的运动向量数据的计算方法,其特征在于:
计算所述返回运动向量数据前,从所述运动向量存储地址信息对应的地址为起始地址的存储区域内读取所述对应帧的显示顺序数据、所述对应帧的参考帧的显示顺序数据、当前帧的显示顺序数据以及所述当前参考帧的显示顺序数据。
10.根据权利要求6至9任一项所述的运动向量数据的计算方法,其特征在于:
在所述动态随机存储器内连续存储的所述运动向量数据为所述编码树单元的多个编码单元按列从左向右排列的运动向量数据。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510275792.8A CN104811721B (zh) | 2015-05-26 | 2015-05-26 | 视频解码数据存储方法及运动向量数据的计算方法 |
US15/576,149 US10819995B2 (en) | 2015-05-26 | 2016-04-13 | Method of storing decoded video data, method of computing motion vector data and computer device |
EP16799140.5A EP3285488B1 (en) | 2015-05-26 | 2016-04-13 | Video decoding data storage method and motion vector data computation method |
PCT/CN2016/079166 WO2016188251A1 (zh) | 2015-05-26 | 2016-04-13 | 视频解码数据存储方法及运动向量数据的计算方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510275792.8A CN104811721B (zh) | 2015-05-26 | 2015-05-26 | 视频解码数据存储方法及运动向量数据的计算方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104811721A CN104811721A (zh) | 2015-07-29 |
CN104811721B true CN104811721B (zh) | 2017-09-22 |
Family
ID=53696150
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510275792.8A Active CN104811721B (zh) | 2015-05-26 | 2015-05-26 | 视频解码数据存储方法及运动向量数据的计算方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10819995B2 (zh) |
EP (1) | EP3285488B1 (zh) |
CN (1) | CN104811721B (zh) |
WO (1) | WO2016188251A1 (zh) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104811721B (zh) * | 2015-05-26 | 2017-09-22 | 珠海全志科技股份有限公司 | 视频解码数据存储方法及运动向量数据的计算方法 |
CN105187845B (zh) | 2015-08-10 | 2018-07-03 | 珠海全志科技股份有限公司 | 视频数据解码装置及解码方法 |
CN105120296A (zh) * | 2015-08-25 | 2015-12-02 | 成都秋雷科技有限责任公司 | 一种高效视频存储方法 |
CN105072370A (zh) * | 2015-08-25 | 2015-11-18 | 成都秋雷科技有限责任公司 | 一种高稳定性视频存储方法 |
CN105072368A (zh) * | 2015-08-25 | 2015-11-18 | 成都秋雷科技有限责任公司 | 一种视频解码数据存储方法 |
CN105072369A (zh) * | 2015-08-25 | 2015-11-18 | 成都秋雷科技有限责任公司 | 一种视频数据存储方法 |
CN105120298A (zh) * | 2015-08-25 | 2015-12-02 | 成都秋雷科技有限责任公司 | 一种改进式视频存储方法 |
CN105163145A (zh) * | 2015-08-25 | 2015-12-16 | 成都秋雷科技有限责任公司 | 一种高效视频数据存储方法 |
CN105072367A (zh) * | 2015-08-25 | 2015-11-18 | 成都秋雷科技有限责任公司 | 一种新式视频数据存储方法 |
CN105163058A (zh) * | 2015-08-25 | 2015-12-16 | 成都秋雷科技有限责任公司 | 一种新式视频存储方法 |
CN105163132A (zh) * | 2015-08-25 | 2015-12-16 | 成都秋雷科技有限责任公司 | 一种改进式视频数据存储方法 |
CN105120297A (zh) * | 2015-08-25 | 2015-12-02 | 成都秋雷科技有限责任公司 | 一种视频存储方法 |
US9866862B2 (en) | 2016-03-18 | 2018-01-09 | Google Llc | Motion vector reference selection through reference frame buffer tracking |
JP6984001B2 (ja) | 2017-04-21 | 2021-12-17 | ゼニマックス メディア インク.Zenimax Media Inc. | 動きベクトル予測のためのプレイヤ入力の動き補償のためのシステムおよび方法 |
CN107231559B (zh) * | 2017-06-01 | 2019-11-22 | 珠海亿智电子科技有限公司 | 一种视频解码数据的存储方法 |
EP3925222A4 (en) * | 2019-02-20 | 2022-08-10 | Beijing Dajia Internet Information Technology Co., Ltd. | METHODS AND APPARATUS FOR ROUNDING, SHAPING AND STORING MOTION VECTOR FOR INTERPREDICTION BASED ON MANTISSA-EXPOSITOR REPRESENTATIONS |
CN111985456B (zh) * | 2020-09-10 | 2022-08-30 | 上海交通大学 | 视频实时识别分割及检测架构 |
CN113467753B (zh) * | 2020-12-31 | 2022-10-04 | 易百信息技术(上海)股份有限公司 | 一种分布式不重复随机序列生成方法和系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101309405A (zh) * | 2007-05-14 | 2008-11-19 | 华为技术有限公司 | 参考数据载入的方法及装置 |
CN101547368A (zh) * | 2009-04-24 | 2009-09-30 | 炬力集成电路设计有限公司 | 一种图像中参考帧的处理装置、方法以及解码器 |
CN102223543A (zh) * | 2011-06-13 | 2011-10-19 | 四川虹微技术有限公司 | 参考像素读取存储系统 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1286323C (zh) * | 2004-08-05 | 2006-11-22 | 联合信源数字音视频技术(北京)有限公司 | 帧场视频解码中运动矢量存取的控制装置及其方法 |
US20100020877A1 (en) | 2008-07-23 | 2010-01-28 | The Hong Kong University Of Science And Technology | Multiple reference frame motion estimation in video coding |
US9008181B2 (en) * | 2011-01-24 | 2015-04-14 | Qualcomm Incorporated | Single reference picture list utilization for interprediction video coding |
KR101961889B1 (ko) | 2011-02-09 | 2019-03-25 | 엘지전자 주식회사 | 움직임 정보 저장 방법 및 이를 이용한 시간적 움직임 벡터 예측자 유도 방법 |
KR101813768B1 (ko) * | 2011-06-30 | 2017-12-29 | 텔레폰악티에볼라겟엘엠에릭슨(펍) | 레퍼러스 픽처 시그널링 |
SG192791A1 (en) * | 2011-09-19 | 2013-09-30 | Panasonic Corp | Image coding method, image decoding method, image coding apparatus, image decoding apparatus, and image coding, and decoding apparatus |
CA2883368C (en) * | 2011-11-08 | 2017-08-29 | Samsung Electronics Co., Ltd. | Method and apparatus for motion vector determination in video encoding or decoding |
US9743079B2 (en) * | 2012-02-07 | 2017-08-22 | Panasonic Intellectual Property Management Co., Ltd. | Image processing apparatus and image processing method for the collective transfer of prediction parameters between storage units |
US20130272409A1 (en) * | 2012-04-12 | 2013-10-17 | Qualcomm Incorporated | Bandwidth reduction in video coding through applying the same reference index |
CN104854868B (zh) * | 2012-12-21 | 2018-05-01 | 索尼公司 | 图像处理设备和方法 |
US10085016B1 (en) * | 2013-01-18 | 2018-09-25 | Ovics | Video prediction cache indexing systems and methods |
US9918098B2 (en) * | 2014-01-23 | 2018-03-13 | Nvidia Corporation | Memory management of motion vectors in high efficiency video coding motion vector prediction |
CN104811721B (zh) * | 2015-05-26 | 2017-09-22 | 珠海全志科技股份有限公司 | 视频解码数据存储方法及运动向量数据的计算方法 |
-
2015
- 2015-05-26 CN CN201510275792.8A patent/CN104811721B/zh active Active
-
2016
- 2016-04-13 WO PCT/CN2016/079166 patent/WO2016188251A1/zh active Application Filing
- 2016-04-13 EP EP16799140.5A patent/EP3285488B1/en active Active
- 2016-04-13 US US15/576,149 patent/US10819995B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101309405A (zh) * | 2007-05-14 | 2008-11-19 | 华为技术有限公司 | 参考数据载入的方法及装置 |
CN101547368A (zh) * | 2009-04-24 | 2009-09-30 | 炬力集成电路设计有限公司 | 一种图像中参考帧的处理装置、方法以及解码器 |
CN102223543A (zh) * | 2011-06-13 | 2011-10-19 | 四川虹微技术有限公司 | 参考像素读取存储系统 |
Also Published As
Publication number | Publication date |
---|---|
US10819995B2 (en) | 2020-10-27 |
EP3285488A4 (en) | 2018-12-26 |
US20180139462A1 (en) | 2018-05-17 |
EP3285488A1 (en) | 2018-02-21 |
CN104811721A (zh) | 2015-07-29 |
EP3285488B1 (en) | 2021-03-03 |
WO2016188251A1 (zh) | 2016-12-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104811721B (zh) | 视频解码数据存储方法及运动向量数据的计算方法 | |
CN104335586B (zh) | 运动向量舍入 | |
CN103975597B (zh) | 纹理及深度视图分量当中的内部视图运动预测 | |
CN104012089B (zh) | 用于设置时间合并候选的参考画面索引的方法和设备 | |
KR101863487B1 (ko) | 인트라 블록 카피 모드 부호화를 위한 블록 벡터 예측 방법 | |
CN105637878B (zh) | 在视频译码中用于基于子解码图片缓冲器(sub-dpb)的dpb操作的传信 | |
CN106576171B (zh) | 一种对视频数据进行编码、解码的方法以及装置 | |
CN104365103B (zh) | 视频译码中的视差向量选择 | |
CN105379288B (zh) | 处理对视频译码的照明补偿 | |
AU728469B2 (en) | Intra-macroblock DC and AC coefficient prediction for interlaced digital video | |
CN104904218B (zh) | 视差矢量推导 | |
CN104904217B (zh) | 用于视频译码扩展的时间运动向量预测 | |
CN112005551B (zh) | 一种视频图像预测方法及装置 | |
CN104838658A (zh) | 具有不对称空间分辨率的纹理和深度视图分量当中的内部视图运动预测 | |
CN104170381A (zh) | 在高效率视频译码及其扩展中的运动矢量译码及双向预测 | |
CN102572422A (zh) | 视频序列编码方法及视频序列编码装置 | |
CN104322070A (zh) | 用于高效率视频译码的高级别语法扩展 | |
JP2016531488A (ja) | ビデオ情報のスケーラブルコーディングのためのデバイスおよび方法 | |
SA515360467B1 (ar) | دعم منخفض التعقيد لطبقات متعددة من امتدادات hevc في تشفير الفيديو | |
CN105580374A (zh) | Mv-hevc中的视图间相依性类型 | |
CN101563927A (zh) | 用于对视频图像的块进行解码的方法 | |
US20230396760A1 (en) | Inter prediction encoding and decoding method using combination of prediction blocks, and computer-readable storage medium bitstream to be decoded thereby | |
CN111698515B (zh) | 帧间预测的方法及相关装置 | |
US20230199208A1 (en) | Video coding with triangular shape prediction units | |
CN104956676A (zh) | 层间语法预测控制 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |