CN113873256B - Hevc中邻近块的运动矢量存储方法及系统 - Google Patents

Hevc中邻近块的运动矢量存储方法及系统 Download PDF

Info

Publication number
CN113873256B
CN113873256B CN202111233758.6A CN202111233758A CN113873256B CN 113873256 B CN113873256 B CN 113873256B CN 202111233758 A CN202111233758 A CN 202111233758A CN 113873256 B CN113873256 B CN 113873256B
Authority
CN
China
Prior art keywords
regs
information
coding block
tree coding
register set
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
CN202111233758.6A
Other languages
English (en)
Other versions
CN113873256A (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.)
Mouxin Technology Shanghai Co ltd
Original Assignee
Mouxin Technology Shanghai 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 Mouxin Technology Shanghai Co ltd filed Critical Mouxin Technology Shanghai Co ltd
Priority to CN202111233758.6A priority Critical patent/CN113873256B/zh
Publication of CN113873256A publication Critical patent/CN113873256A/zh
Application granted granted Critical
Publication of CN113873256B publication Critical patent/CN113873256B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods 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/423Methods 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 characterised by memory arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods 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/43Hardware specially adapted for motion estimation or compensation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/96Tree coding, e.g. quad-tree coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本发明公开了一种HEVC中邻近块的运动矢量存储方法及系统,涉及视频解码技术领域。所述方法包括:初始化步骤,通过树编码块行缓存上记载的前述当前树编码块的上侧树编码块的运动矢量MV信息初始化上侧寄存器组;解析步骤,解析当前树编码块,对树编码块内部的CU信息进行动态更新,通过不同的寄存器组分别动态存储解析过程中每个CU的上侧MV信息、左侧MV信息信息、内部MV信息和左上侧MV信息和右上侧MV信息;其中,采用动态回收机制将该CU左上侧PU的MV信息写入相应位置的左上寄存器组。本发明通过采用回收机制,能够利用较小的寄存器资源实现HEVC帧间解码时邻近MV的存储,显著降低了存储MV时的占用资源。

Description

HEVC中邻近块的运动矢量存储方法及系统
技术领域
本发明涉及视频解码技术领域,尤其涉及一种HEVC中邻近块的运动矢量存储方法、系统及应用。
背景技术
随着4K/8K超高清视频技术的到来,一种更先进的视频压缩标准HEVC(HighEfficiency Video Coding)应用越来越广泛。HEVC是High Efficiency Video Coding的缩写,其作为H.264的继承者,通常也被称作H.265。相对于H264,在同样的视觉质量下,HEVC能够节省高达50%的压缩流比特率。HEVC做了很多功能特性的升级,其中最显著的就是扩展了预测块大小,从最小4x4到最大64×64。
相对于H .264编码标准中的宏块MB,HEVC的不同点是引入了自适应四叉树结构的树编码块(coding TRee unit, 简称CTU,或称树编码单元)作为预测、变换、量化、熵编码的基本单元。根据不同的编码设置,树编码块的尺寸(即包含的像素数)可以被设置为64×64、32×32或16×16。一般来说,更大的树编码块在很多场景上可以提供更高的压缩效率。每个树编码块可以按四叉树结构递归并最终分割为32×32、16×16、8×8的编码子块(CodingUnit,简称CU,也称编码单元)。参见图1所示,作为举例,示例了一个32×32树编码块CTU的分区示例,其中实线代表编码子块CU的分割,如图示该CTU32x32共分割出CU0(16x16)、CU1(16x16)、CU2(8x8)、CU 3(8x8)、CU4(8x8)、CU 5(8x8)、CU6(16x16)共7个编码子块。编码子块CU可进一步向下分割成预测单元(Prediction Unit,简称PU)及转换单元(TRansformUnit,简称TU)。图1中虚线代表编码子块CU内的预测单元PU的分割,比如编码子块CU1(16x16)被分割成4个预测单元PU(8x8),编码子块CU2(8x8)被分割成2个预测单元PU(8x4)。
一个帧间编码单元CU通常可以使用以下八种帧间预测模式中的一种来分割预测单元PU,参见图2所示。在帧间编码单元CU分割形成预测单元PU时,可以使用对称方式分割或者使用非对称的方式分割,比如图2中的2N×2N,2N×N,N×2N,N×N为对称方式分割,图2中的2N×nU、2N×nD、nL×2N、nR×2N为非对称方式分割,预测单元PU是运动矢量对应的最小单元。
得益于更灵活的编码块、预测块划分,HEVC将传统基于块的视频编码模式推向更高的效率水平。然而,在提高视频编码性能的同时,也增加了编码解码过程的复杂性,为HEVC编解码的硬件实现带来较大的难度。尤其的,在现有的解码器设计中,为了在某个标准(level)下全范围兼容各种HEVC特性,往往需考在设计时考虑各种场景,编码单元块、预测单元块的灵活多变给存储邻近块的运动矢量(Motion Vector,简称MV)带来较大的困难。目前,HEVC基于空间的运动矢量预测引入了自适应运动矢量预测选择机制(Advanced MVPrediction ,简称AMVP)和合并(Merge)两种模式,两种模式本质都是从空间域和时间域选择最相近的运动矢量MV作为运动矢量预测值MVP,然后跟当前块MV作比较,根据MV差值(MVD)来得到最终的预测模式。相应的,在解码端,解码器首先根据解析到的预测模式,按相应的规则获取邻近运动矢量候选列表并最终计算得到当前块的MV值,从而由MV值读取相应的参考帧像素,实现运动补偿后完成像素重建。具体的,根据解析到的运动矢量预测残差值(MVD ,Merge模式下MVD为0)计算得到MV值,然后通过MV值、参考帧索引、像素值预测残差根据预测方向最终得到运动补偿后像素值。无论是Merge模式还是AMVP模式,在空间域上均需要获取图3中所示a0、a1、b0、b1、b2共5处邻近运动矢量MV值。由于编码子块CU、预测单元PU块分割方式多种多样,设计上需要高效动态的记录所有a0、a1、b0、b1、b2的 MV信息,以确保在解析CTU内逐个PU块时,其相邻5处MV信息均已知。
目前,较常用的做法参见图4所示:按最小4x4块粒度(最小预测单元PU的尺寸)切割树编码单元CTU,每解完一个编码子块CU,将其所覆盖的4x4块MV信息存储下来,当解析到当前块时,根据当前块基于4x4的物理偏移位置搜寻相邻块MV值即可。对于CTUQ(尺寸为Q×Q)上述方案共需要存储(QxQ)/(4x4)组MV数据,以Q=32为例,CTU32共需要存储(32x32)/(4x4)=64组MV数据,对寄存器硬件资源的占用较大。
综上所述,在HEVC解码器设计中,运动矢量MV值计算是影响最终性能的一个重要因素,在解码时如何降低硬件资源占用同时快速高效的提供邻近块MV值是当前亟需解决的技术问题。
发明内容
本发明的目的在于:克服现有技术的不足,提供了一种HEVC中邻近块的运动矢量存储方法、系统及应用。本发明通过采用回收机制,能够利用较小的寄存器资源实现HEVC帧间解码时邻近MV的存储,,显著降低了存储邻近MV时的占用资源,一方面为硬件快速MV解析及运动补偿提供了可能,另一方面还可向下兼容H264。
为实现上述目标,本发明提供了如下技术方案:
一种HEVC中邻近块的MV存储方法,包括:
初始化步骤:根据待解析的当前树编码块,通过树编码块行缓存CTU line buf上记载的前述当前树编码块的上侧树编码块的运动矢量MV信息初始化上侧寄存器组Top_regs;所述树编码块行缓存CTU line buf用于存储上一行树编码块最底部的预测单元PU的MV信息;
解析步骤:解析当前树编码块,对树编码块内部的编码单元CU信息进行动态更新,通过不同的寄存器组分别动态存储解析过程中每个CU的上侧MV信息、左侧MV信息信息、内部MV信息和左上侧MV信息和右上侧MV信息;其中,
每完成一个CU的MV计算后,将该CU最下侧PU的MV信息写入相应位置的上侧寄存器组Top_regs上,将该CU最右侧PU的MV信息写入相应位置的左侧寄存器组Left_regs上,采用动态回收机制将该CU左上侧PU的MV信息写入相应位置的左上寄存器组TL_regs,将树编码块的右上侧PU的MV信息写入相应位置的右上寄存器组TR_regs上,直至完成整个树编码块的解析;各CU内部的PU的MV信息通过内部寄存器组Inn_regs存储。
进一步,通过左上寄存器组TL_regs存储CU左上侧PU的b2区域 MV信息,b2表示左上区域;
所述PU模式采用N×N对称模式, PU0的b2区域MV信息通过TL_regs存储,PU1的b2区域MV信息通过Top_regs存储,PU2的b2区域MV信息通过Left_regs存储,PU3的b2区域MV信息通过Inn_regs存储。
进一步,对于设定尺寸为Q×Q的CTUQ,基于PU尺寸lxm,l表示PU宽度,m表示PU高度,Top_regs至多需要N1=Q/l组存储块,Left_regs至多需要N2=Q/m组存储块。
进一步,令TL_regs包括n组存储块,记为TL_R[n], n为大于等于3的整数, CTUQ被划分为w个CU,记为CU[w], w为大于等于4的整数;
采用动态回收机制动态记录CU左上侧PU的MV信息的步骤为:根据Top_regs和Left_regs中存储的MV信息初始化TL_R[n];编码单元CU[j]的b2 区域的MV参考TL_R[i],解析完成后,回收并更新TL_R[i]为CU[j]对应区域PU的 MV值,其中,i=0,……,n-1; j=0,……,w-1。
进一步,当Q=32,PU采用最小尺寸4×4时,Top_regs至多需要8组存储块,记为T_R[8];Left_regs至多需要8组存储块,记为L_R[8];Inn_regs至多需要4组存储块,记为I_R[4]; 当前树编码块CTU32被划分为16个CU8,包括CU8[j],j=0,……,15;
获取用户设置的n值,采用TL_R[n]进行动态回收机制动态记录CU左上侧PU的MV信息的步骤为:
S1,根据Top_regs和Left_regs各存储块中存储的MV信息初始化TL_R[n],包括各存储块TL_R[i], i=0,……,n-1;
S2,CU8[0]的b2 区域的MV参考TL_R[0],解析完成后,回收并更新TL_R[0]为CU8[0]右下PU的MV值;
S3,CU8[1]的b2 区域的MV参考TL_R[1],解析完成后,回收并更新TL_R[1]为T_R[3]的 MV值;
S4,CU8[2]的b2区域的 MV参考TL_R[2],解析完成后,回收并更新TL_R[2]为L_R[3]的MV值;
S5,CU8[3]的b2区域的 MV参考步骤S2中更新的TL_R[0],解析完成后,回收并更新TL_R[0]为CU8[1]右下PU的 MV值;
S6,CU8[4]的b2区域的 MV参考步骤S3中更新的TL_R[1],解析完成后,回收并更新TL_R[1]为T_R[5]的 MV值;
S7,CU8[5]的b2 区域的MV参考步骤S6中更新的TL_R[1],解析完成后,不做任何操作;
S8,CU8[6]的b2区域的 MV参考步骤S5中更新的TL_R[0],解析完成后,回收并更新TL_R[0]为CU8[4]右下PU 的MV值;
S9,CU8[7]的b2 区域的MV参考步骤S8中更新的TL_R[0],解析完成后, 不做任何操作;
S10,将步骤S4中TL_R[2]值存储到TL_R[0],并根据Top_regs和Left_regs各存储块中存储的MV信息再次初始化TL_R[1]、TL_R[2],按照CU8[0]至CU8[7]的MV值的回收更新方法进行CU8[8]至CU8[15]的MV值的回收更新。
进一步,所述树编码块行缓存CTU line buf采用静态随机存取存储器,树编码块行缓存CTU line buf的大小由视频图像宽度设置。
进一步,上侧寄存器组Top_regs、左侧寄存器组Left_regs、内部寄存器组Inn_regs、左上寄存器组TL_regs和右上寄存器组TR_regs采用寄存器堆
本发明还提供了一种HEVC中邻近块的MV存储系统,包括:
树编码块行缓存CTU line buf,用于记录上一行树编码块最底部PU的MV信息;
上侧寄存器组Top_regs,用于动态记录每个CU下最新的最上侧PU的MV信息;
左侧寄存器组Left_regs:用于动态记录每个CU下最新的最左侧PU的MV信息;
内部寄存器组Inn_regs:用于动态记录每个CU内部各PU的MV信息;
左上寄存器组TL_regs,用于动态记录每个CU下最新的左上侧PU的MV信息;
右上寄存器组TR_regs: 用于动态记录每个树编码块最新的右上侧PU的MV信息;
在解析一个树编码块之前,通过树编码块行缓存CTU line buf上记载的上侧树编码块的运动矢量MV信息初始化上侧寄存器组Top_regs;
在解析当前树编码块时,树编码块内部基于CU动态更新,每完成一个CU的MV计算后,将该CU最下侧PU的MV信息写入相应位置的上侧寄存器组Top_regs上,将该CU最右侧PU的MV信息写入相应位置的左侧寄存器组Left_regs上,采用动态回收机制将该CU左上侧PU的MV信息写入相应位置的左上寄存器组TL_regs,将树编码块的右上侧PU的MV信息写入相应位置的右上寄存器组TR_regs上,直至完成整个树编码块的解析。
进一步,对于设定尺寸为Q×Q的CTUQ,基于PU尺寸lxm,l表示PU宽度,m表示PU高度,Top_regs至多需要N1=Q/l组存储块,Left_regs至多需要N2=Q/m组存储块。
进一步,令TL_regs包括n组存储块,记为TL_R[n], n为大于等于3的整数, CTUQ被划分为w个CU,记为CU[w], w为大于等于4的整数;
采用动态回收机制动态记录CU左上侧PU的MV信息的步骤为:根据Top_regs和Left_regs中存储的MV信息初始化TL_R[n];编码单元CU[j]的b2 区域的MV参考TL_R[i],解析完成后,回收并更新TL_R[i]为CU[j]对应区域PU的 MV值,其中,i=0,……,n-1; j=0,……,w-1。
本发明由于采用以上技术方案,与现有技术相比,作为举例,具有以下的优点和积极效果:本发明通过采用回收机制,能够利用较小的寄存器资源实现HEVC帧间解码时邻近MV的存储,显著降低了存储邻近MV时的占用资源,一方面为硬件快速MV解析及运动补偿提供了可能,另一方面还可向下兼容H264。
附图说明
图1为一种树编码块CTU32的典型CU分区示例图。
图2为现有技术中提供的8种PU分割模式。
图3为现有技术中提供的帧间预测时需要记录的a0、a1、b0、b1、b2区域的相邻块的5处运动矢量信息,其中a0、a1、b0、b1、b2分别表示左下、左边、右上、上边和左上区域。
图4为现有技术中提供的最小4x4块粒度(最小PU尺寸)切割树编码块CTU32的示例。
图5为本发明实施例提供的各存储结构的存储MV信息示意图。
图6为本发明实施例提供的树编码块CTU32的b2区域MV存储示意图。
图7为本发明实施例提供的采用TL_regs记录树编码块CTU32的CU左上侧PU的MV信息的过程示意图。
具体实施方式
以下结合附图和具体实施例对本发明公开的HEVC中邻近块的运动矢量存储方法、系统及应用作进一步详细说明。应当注意的是,下述实施例中描述的技术特征或者技术特征的组合不应当被认为是孤立的,它们可以被相互组合从而达到更好的技术效果。在下述实施例的附图中,各附图所出现的相同标号代表相同的特征或者部件,可应用于不同实施例中。因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
需说明的是,本说明书所附图中所绘示的结构、比例、大小等,均仅用以配合说明书所揭示的内容,以供熟悉此技术的人士了解与阅读,并非用以限定发明可实施的限定条件,任何结构的修饰、比例关系的改变或大小的调整,在不影响发明所能产生的功效及所能达成的目的下,均应落在发明所揭示的技术内容所能涵盖的范围内。本发明的优选实施方式的范围包括另外的实现,其中可以不按所述的或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为授权说明书的一部分。在这里示出和讨论的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它示例可以具有不同的值。
实施例
一种HEVC中邻近块的MV存储方法,包括初始化步骤和解析步骤。
S100,初始化步骤:根据待解析的当前树编码块,通过树编码块行缓存CTU linebuf上记载的前述当前树编码块的上侧树编码块的运动矢量MV信息初始化上侧寄存器组Top_regs;所述树编码块行缓存CTU line buf用于存储上一行树编码块最底部的预测单元PU的MV信息。
S200,解析步骤:解析当前树编码块,对树编码块内部的编码单元CU信息进行动态更新,通过不同的寄存器组分别动态存储解析过程中每个CU的上侧MV信息、左侧MV信息信息、内部MV信息和左上侧MV信息和右上侧MV信息。
其中,树编码块CTU内部基于CU动态更新。具体的,在每完成一个CU的MV计算后,将该CU最下侧PU的MV信息写入相应位置的上侧寄存器组Top_regs上,将该CU最右侧PU的MV信息写入相应位置的左侧寄存器组Left_regs上,采用动态回收机制将该CU左上侧PU的MV信息写入相应位置的左上寄存器组TL_regs,将树编码块的右上侧PU的MV信息写入相应位置的右上寄存器组TR_regs上,直至完成整个树编码块的解析;各CU内部的PU的MV信息通过内部寄存器组Inn_regs存储。
本实施例中,对于设定尺寸为Q×Q的CTUQ,基于PU尺寸lxm,l表示PU宽度,m表示PU高度,此时,Top_regs至多需要N1=Q/l组存储块,Left_regs至多需要N2=Q/m组存储块。Q的值可以取为64、32、16,分别对应尺寸(包含的像素)为64×64、 32×32、16×16的树编码块。l和m一般取4。
在CU分割形成预测单元PU时,可以使用对称分割模式,比如2N×2N,2N×N,N×2N,N×N,也可以非对称分割模式,比如2N×nU、2N×nD、nL×2N、nR×2N等,预测单元PU是运动矢量对应的最小单元。
本实施例中,优选的,可以令TL_regs包括n组存储块,记为TL_R[n], n为大于等于3的整数, CTUQ被划分为w个CU,记为CU[w], w为大于等于4的整数。
采用动态回收机制动态记录CU左上侧PU的MV信息的步骤为:根据Top_regs和Left_regs中存储的MV信息初始化TL_R[n];编码单元CU[j]的b2 区域的MV参考TL_R[i],解析完成后,回收并更新TL_R[i]为CU[j]对应区域PU的 MV值,其中,i=0,……,n-1; j=0,……,w-1。
本实施例中,树编码块行缓存CTU line buf优选的由静态随机存取存储器SRAM实现,其负责存储上一行树编码块CTU最底部PU的MV信息。
上侧寄存器Top_regs优选由寄存器堆register file实现,该寄存器阵列负责动态记录每个CU视角下最新的上侧MV信息。
左侧寄存器组Left_regs优选由寄存器堆register file实现,该寄存器阵列负责动态记录每个CU视角下最新的左侧MV信息。
内部寄存器组Inn_regs优选由寄存器堆register file实现,该寄存器阵列动态记录每个CU内各PU MV信息。
左上寄存器组TL_regs优选由寄存器堆register file实现,该寄存器阵列负责动态记录每个CU视角下最新的左上侧MV信息,该部分设计最为复杂。
右上寄存器组TR_regs优选由寄存器堆register file实现,该寄存器阵列负责动态记录每个CTU视角下最新的右上侧MV信息,该部分最为简单。
下面以树编码块CTU32x32,PU尺寸为4x4为例,详细描述本实施例的具体实施过程。当然,本领域技术人员应知晓,根据树编码块CTU尺寸的不同,以及PU的尺寸的不同,前述TL_R[n]和CU[w]中的n和w可以根据需要进行适应性调整。
树编码块行缓存CTU line buf:一个CTU32需要存储8组MV数据,则对于宽度为W的图像,CTU line buf共需要W/32 * 8组数据。CTU line buf在每个CTU解析完成后,由上侧寄存器组Top_regs数据将其更新。
上侧寄存器Top_regs:由于最小PU宽度为4,对于CTU32,Top_regs至多需要含8组MV信息(每组粒度对应宽度为4的PU),标记为T_R[8]。Top_regs在开始一个CTU解析前,需要先用CTU line buf上记载的上侧CTU的MV数据将其初始化,之后开始解析当前CTU; CTU内部基于CU动态更新,即完成一个CU MV计算后,将该CU最下侧PU的MV写入相应位置的Top_regs组上直至完成一个CTU解析。
左侧寄存器组Left_regs:由于最小PU高度为4,对于CTU32,left regs至多需要含8组MV信息(每组粒度对应高度为4的PU),标记为L_R[8]。类似的,Left_regs在一个CTU内部同样基于CU动态更新,即完成一个CU MV计算后,将该CU最右侧PU MV写入相应位置的Left_regs组上,完成一个CTU解析后,跨CTU更新同样遵循此规则。
内部寄存器组Inn_regs:即CU internal regs,所述内部是相对于编码单元的边界来说的,因为Top_regs、Left_regs是基于整个CU更新的,其作用域在CU的边界上,对于CU内部的各PU的MV信息,则可以通过Inn_regs来暂存。根据前述PU分割模式,Inn_regs最多需要四组MV信息,记为I_R[4] 。
左上寄存器组TL_regs:该寄存器阵列负责动态记录每个CU视角下最新的左上侧MV信息。
本实施例中左上寄存器组TL_regs采用动态回收机制动态记录CU左上侧PU的MV信息。
参见图6所示,对于CTU32,上侧寄存器Top_regs、左侧寄存器组Left_regs基于CU动态更新,当解析到图5中的CU3(8x8)时,T_R[8] 、L_R[8]最新存储MV数据如图6所示。
内部PU不管采用哪种分割模式,只有CU内左上处PU对应的b2 区域的MV信息需要用左上寄存器组TL_regs另行存储。
以PU采用NxN对称分割为例,各PU块b2 区域的MV所在存储块见下表所示。
下面结合图7,以CTU32划分成16个CU8(包括CU8[j],j=0,……,15)为例详细描述动态回收机制,图7中圆圈内数字i代表TL_R[i]。
获取用户设置的n值,n为大于等于3的整数。采用TL_R[n]进行动态回收机制动态记录CU左上侧PU的MV信息的步骤为:
S1,根据Top_regs和Left_regs各存储块中存储的MV信息初始化TL_R[n],包括各存储块TL_R[i], i=0,……,n-1;
S2,CU8[0]的b2 区域的MV参考TL_R[0],解析完成后,回收并更新TL_R[0]为CU8[0]右下PU 的MV值;
S3,CU8[1]的b2 区域的MV参考TL_R[1],解析完成后,回收并更新TL_R[1]为T_R[3]的 MV值;
S4,CU8[2]的b2区域的 MV参考TL_R[2],解析完成后,回收并更新TL_R[2]为L_R[3]的MV值;
S5,CU8[3]的b2区域的 MV参考步骤S2中更新的TL_R[0],解析完成后,回收并更新TL_R[0]为CU8[1]右下PU的 MV值;
S6,CU8[4]的b2区域的 MV参考步骤S3中更新的TL_R[1],解析完成后,回收并更新TL_R[1]为T_R[5]的 MV值;
S7,CU8[5]的b2 区域的MV参考步骤S6中更新的TL_R[1],解析完成后,不做任何操作;
S8,CU8[6]的b2区域的 MV参考步骤S5中更新的TL_R[0],解析完成后,回收并更新TL_R[0]为CU8[4]右下PU 的MV值;
S9,CU8[7]的b2 区域的MV参考步骤S8中更新的TL_R[0],解析完成后, 不做任何操作;
S10,将步骤S4中TL_R[2]值存储到TL_R[0],并根据Top_regs和Left_regs各存储块中存储的MV信息再次初始化TL_R[1]、TL_R[2],按照CU8[0]至CU8[7]的MV值的回收更新方法进行CU8[8]至CU8[15]的MV值的回收更新。
综上所述,总结TL_R[3]应用、回收过程如下表:
可选的,在步骤S10后,还可以根据前述步骤使用的存储块TL_R[i]的最大i值,向用户输出n的建议值n=i+1,以便后期根据n值向TL_regs分配合适组数的存储块,降低存储块闲置率。当然,当用户初始设置的n值分配的存储块数量不足以完成一个CTU的MV数据的动态回收机制时,向用户输出提醒以提示用户增大n值,并根据增大后的n值重新分配存储块的数量。
右上寄存器组TR_regs:由于CTU内部b1(b1表示上边区域)区域都能从top regs得到,因此TR regs寄只需要一组MV数据记录每个CTU右上侧MV信息,记为TR_R[1] 。
本实施例提供的上述技术方案,可以显著降低存储MV时的硬件资源占用。以CTU32为例,本方案存储HEVC CTU上所有PU用到的邻近5处MV信息共需要用到T_R[8] 、L_R[8] 、I_R[4] 、TL_R[3] 、TR_R[1]共8+8+4+3+1=24组MV数据,相比于背景技术中的现有方案的64组MV数据,降低了62.5%的硬件资源使用。
本发明的另一实施例,还提供了一种HEVC中邻近块的MV存储系统。
所述系统包括如下组件:
树编码块行缓存CTU line buf,用于记录上一行树编码块最底部PU的MV信息。
上侧寄存器组Top_regs,用于动态记录每个CU下最新的最上侧PU的MV信息。
左侧寄存器组Left_regs:用于动态记录每个CU下最新的最左侧PU的MV信息。
内部寄存器组Inn_regs:用于动态记录每个CU内部各PU的MV信息。
左上寄存器组TL_regs,用于动态记录每个CU下最新的左上侧PU的MV信息。
右上寄存器组TR_regs: 用于动态记录每个树编码块最新的右上侧PU的MV信息。
在解析一个树编码块之前,通过树编码块行缓存CTU line buf上记载的上侧树编码块的运动矢量MV信息初始化上侧寄存器组Top_regs。
在解析当前树编码块时,树编码块内部基于CU动态更新,每完成一个CU的MV计算后,将该CU最下侧PU的MV信息写入相应位置的上侧寄存器组Top_regs上,将该CU最右侧PU的MV信息写入相应位置的左侧寄存器组Left_regs上,采用动态回收机制将该CU左上侧PU的MV信息写入相应位置的左上寄存器组TL_regs,将树编码块的右上侧PU的MV信息写入相应位置的右上寄存器组TR_regs上,直至完成整个树编码块的解析。
本实施例中,对于设定尺寸为Q×Q的CTUQ,基于PU尺寸lxm,l表示PU宽度,m表示PU高度,Top_regs至多需要N1=Q/l组存储块,Left_regs至多需要N2=Q/m组存储块。
优选的,令TL_regs包括n组存储块,记为TL_R[n], n为大于等于3的整数, CTUQ被划分为w个CU,记为CU[w], w为大于等于4的整数。
采用动态回收机制动态记录CU左上侧PU的MV信息的步骤为:根据Top_regs和Left_regs中存储的MV信息初始化TL_R[n];编码单元CU[j]的b2 区域的MV参考TL_R[i],解析完成后,回收并更新TL_R[i]为CU[j]对应区域PU的 MV值,其中,i=0,……,n-1; j=0,……,w-1。
其它技术特征参考在前实施例,在此不再赘述。
在上面的描述中,本发明的公开内容并不旨在将其自身限于这些方面。而是,在本公开内容的目标保护范围内,各组件可以以任意数目选择性地且操作性地进行合并。另外,像“包括”、“囊括”以及“具有”的术语应当默认被解释为包括性的或开放性的,而不是排他性的或封闭性,除非其被明确限定为相反的含义。所有技术、科技或其他方面的术语都符合本领域技术人员所理解的含义,除非其被限定为相反的含义。在词典里找到的公共术语应当在相关技术文档的背景下不被太理想化或太不实际地解释,除非本公开内容明确将其限定成那样。本发明领域的普通技术人员根据上述揭示内容做的任何变更、修饰,均属于权利要求书的保护范围。

Claims (10)

1.一种HEVC中邻近块的MV存储方法,其特征在于包括:
初始化步骤:根据待解析的当前树编码块,通过树编码块行缓存CTU line buf上记载的前述当前树编码块的上侧树编码块的运动矢量MV信息初始化上侧寄存器组Top_regs;所述树编码块行缓存CTU line buf用于存储上一行树编码块最底部的预测单元PU的MV信息;
解析步骤:解析当前树编码块,对树编码块内部的编码单元CU信息进行动态更新,通过不同的寄存器组分别动态存储解析过程中每个CU的上侧MV信息、左侧MV信息信息、内部MV信息和左上侧MV信息和右上侧MV信息;其中,
每完成一个CU的MV计算后,将该CU最下侧PU的MV信息写入相应位置的上侧寄存器组Top_regs上,将该CU最右侧PU的MV信息写入相应位置的左侧寄存器组Left_regs上,采用动态回收机制将该CU左上侧PU的MV信息写入相应位置的左上寄存器组TL_regs,将树编码块的右上侧PU的MV信息写入相应位置的右上寄存器组TR_regs上,直至完成整个树编码块的解析;各CU内部的PU的MV信息通过内部寄存器组Inn_regs存储。
2.根据权利要求1所述的方法,其特征在于:通过左上寄存器组TL_regs存储CU左上侧PU的b2区域 MV信息,b2表示左上区域;
所述PU模式采用N×N对称模式, PU0的b2区域MV信息通过TL_regs存储,PU1的b2区域MV信息通过Top_regs存储,PU2的b2区域MV信息通过Left_regs存储,PU3的b2区域MV信息通过Inn_regs存储。
3.根据权利要求1所述的方法,其特征在于:对于设定尺寸为Q×Q的CTUQ,基于PU尺寸lxm,l表示PU宽度,m表示PU高度,Top_regs至多需要N1=Q/l组存储块,Left_regs至多需要N2=Q/m组存储块。
4.根据权利要求3所述的方法,其特征在于:令TL_regs包括n组存储块,记为TL_R[n],n为大于等于3的整数, CTUQ被划分为w个CU,记为CU[w], w为大于等于4的整数;
采用动态回收机制动态记录CU左上侧PU的MV信息的步骤为:根据Top_regs和Left_regs中存储的MV信息初始化TL_R[n];编码单元CU[j]的b2 区域的MV参考TL_R[i],解析完成后,回收并更新TL_R[i]为CU[j]对应区域PU的 MV值,其中,i=0,……,n-1; j=0,……,w-1。
5.根据权利要求4所述的方法,其特征在于:当Q=32,PU采用最小尺寸4×4时,Top_regs至多需要8组存储块,记为T_R[8];Left_regs至多需要8组存储块,记为L_R[8];Inn_regs至多需要4组存储块,记为I_R[4]; 当前树编码块CTU32被划分为16个CU8,包括CU8[j],j=0,……,15;
获取用户设置的n值,采用TL_R[n]进行动态回收机制动态记录CU左上侧PU的MV信息的步骤为:
S1,根据Top_regs和Left_regs各存储块中存储的MV信息初始化TL_R[n],包括各存储块TL_R[i], i=0,……,n-1;
S2,CU8[0]的b2 区域的MV参考TL_R[0],解析完成后,回收并更新TL_R[0]为CU8[0]右下PU 的MV值;
S3,CU8[1]的b2 区域的MV参考TL_R[1],解析完成后,回收并更新TL_R[1]为T_R[3]的MV值;
S4,CU8[2]的b2区域的 MV参考TL_R[2],解析完成后,回收并更新TL_R[2]为L_R[3]的MV值;
S5,CU8[3]的b2区域的 MV参考步骤S2中更新的TL_R[0],解析完成后,回收并更新TL_R[0]为CU8[1]右下PU的 MV值;
S6,CU8[4]的b2区域的 MV参考步骤S3中更新的TL_R[1],解析完成后,回收并更新TL_R[1]为T_R[5]的 MV值;
S7,CU8[5]的b2 区域的MV参考步骤S6中更新的TL_R[1],解析完成后,不做任何操作;
S8,CU8[6]的b2区域的 MV参考步骤S5中更新的TL_R[0],解析完成后,回收并更新TL_R[0]为CU8[4]右下PU 的MV值;
S9,CU8[7]的b2 区域的MV参考步骤S8中更新的TL_R[0],解析完成后,不做任何操作;
S10,将步骤S4中TL_R[2]值存储到TL_R[0],并根据Top_regs和Left_regs各存储块中存储的MV信息再次初始化TL_R[1]、TL_R[2],按照CU8[0]至CU8[7]的MV值的回收更新方法进行CU8[8]至CU8[15]的MV值的回收更新。
6.根据权利要求1所述的方法,其特征在于:所述树编码块行缓存CTU line buf采用静态随机存取存储器,树编码块行缓存CTU line buf的大小由视频图像宽度设置。
7.根据权利要求1所述的方法,其特征在于:上侧寄存器组Top_regs、
左侧寄存器组Left_regs、内部寄存器组Inn_regs、左上寄存器组TL_regs和右上寄存器组TR_regs采用寄存器堆。
8.一种HEVC中邻近块的MV存储系统,其特征在于包括:
树编码块行缓存CTU line buf,用于记录上一行树编码块最底部PU的MV信息;
上侧寄存器组Top_regs,用于动态记录每个CU下最新的最上侧PU的MV信息;
左侧寄存器组Left_regs:用于动态记录每个CU下最新的最左侧PU的MV信息;
内部寄存器组Inn_regs:用于动态记录每个CU内部各PU的MV信息;
左上寄存器组TL_regs,用于动态记录每个CU下最新的左上侧PU的MV信息;
右上寄存器组TR_regs: 用于动态记录每个树编码块最新的右上侧PU的MV信息;
在解析一个树编码块之前,通过树编码块行缓存CTU line buf上记载的上侧树编码块的运动矢量MV信息初始化上侧寄存器组Top_regs;
在解析当前树编码块时,树编码块内部基于CU动态更新,每完成一个CU的MV计算后,将该CU最下侧PU的MV信息写入相应位置的上侧寄存器组Top_regs上,将该CU最右侧PU的MV信息写入相应位置的左侧寄存器组Left_regs上,采用动态回收机制将该CU左上侧PU的MV信息写入相应位置的左上寄存器组TL_regs,将树编码块的右上侧PU的MV信息写入相应位置的右上寄存器组TR_regs上,直至完成整个树编码块的解析。
9.根据权利要求8所述的系统,其特征在于:对于设定尺寸为Q×Q的CTUQ,基于PU尺寸lxm,l表示PU宽度,m表示PU高度,Top_regs至多需要N1=Q/l组存储块,Left_regs至多需要N2=Q/m组存储块。
10.根据权利要求9所述的系统,其特征在于:令TL_regs包括n组存储块,记为TL_R[n],n为大于等于3的整数, CTUQ被划分为w个CU,记为CU[w], w为大于等于4的整数;
采用动态回收机制动态记录CU左上侧PU的MV信息的步骤为:根据Top_regs和Left_regs中存储的MV信息初始化TL_R[n];编码单元CU[j]的b2 区域的MV参考TL_R[i],解析完成后,回收并更新TL_R[i]为CU[j]对应区域PU的 MV值,其中,i=0,……,n-1; j=0,……,w-1。
CN202111233758.6A 2021-10-22 2021-10-22 Hevc中邻近块的运动矢量存储方法及系统 Active CN113873256B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111233758.6A CN113873256B (zh) 2021-10-22 2021-10-22 Hevc中邻近块的运动矢量存储方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111233758.6A CN113873256B (zh) 2021-10-22 2021-10-22 Hevc中邻近块的运动矢量存储方法及系统

Publications (2)

Publication Number Publication Date
CN113873256A CN113873256A (zh) 2021-12-31
CN113873256B true CN113873256B (zh) 2023-07-18

Family

ID=78997110

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111233758.6A Active CN113873256B (zh) 2021-10-22 2021-10-22 Hevc中邻近块的运动矢量存储方法及系统

Country Status (1)

Country Link
CN (1) CN113873256B (zh)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111901590A (zh) * 2020-06-29 2020-11-06 北京大学 一种用于帧间预测的细化运动矢量存储方法及装置
CN112385210A (zh) * 2018-06-20 2021-02-19 联发科技股份有限公司 用于视频编解码系统的运动向量缓冲器管理的方法及装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10602180B2 (en) * 2017-06-13 2020-03-24 Qualcomm Incorporated Motion vector prediction

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112385210A (zh) * 2018-06-20 2021-02-19 联发科技股份有限公司 用于视频编解码系统的运动向量缓冲器管理的方法及装置
CN111901590A (zh) * 2020-06-29 2020-11-06 北京大学 一种用于帧间预测的细化运动矢量存储方法及装置

Also Published As

Publication number Publication date
CN113873256A (zh) 2021-12-31

Similar Documents

Publication Publication Date Title
ES2660663T3 (es) Procedimiento de codificación de imágenes en movimiento, procedimiento de descodificación de imágenes en movimiento y aparatos de los mismos
CN104244007B (zh) 一种图像编码方法和装置及解码方法和装置
RU2564252C2 (ru) Кодирование и декодирование видео
WO2016192662A1 (en) Method and apparatus for resource sharing between intra block copy mode and inter prediction mode in video coding systems
US8565308B2 (en) Interframe prediction processor with address management mechanism for motion vector storage
CN116708838A (zh) 编解码和发送方法及存储介质
EP3285488A1 (en) Video decoding data storage method and motion vector data computation method
US20060133504A1 (en) Deblocking filters for performing horizontal and vertical filtering of video data simultaneously and methods of operating the same
US20030202602A1 (en) Compression of images and image sequences through adaptive partitioning
WO2015052273A1 (en) Method and apparatus for displacement vector component prediction in video coding and decoding
US20070071099A1 (en) External memory device, method of storing image data for the same, and image processor using the method
CN116708836A (zh) 图像编码/解码方法、存储介质和数据发送方法
EP3355585A1 (en) Image encoding method and device, and image decoding method and device
US20100149202A1 (en) Cache memory device, control method for cache memory device, and image processing apparatus
JP2014123830A (ja) 動画像圧縮伸張装置
CN112333446B (zh) 一种帧内块复制参考块压缩方法
CN111669597B (zh) 调色板解码装置和方法
CN100405851C (zh) 多模标准解码器中运动矢量预测复用设计方法
US9706221B2 (en) Motion search with scaled and unscaled pictures
US20070092008A1 (en) Context-aware frame memory scheme for motion compensation in video decoding
US20050047510A1 (en) Data processing device for MPEG
CN113873256B (zh) Hevc中邻近块的运动矢量存储方法及系统
TWI418219B (zh) 用於動態補償系統之資料映像方法及快取記憶體系統
US8179964B1 (en) Efficient transcoding between formats using macroblock buffer
JP5053774B2 (ja) 動画像符号化装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant