CN112565768B - 一种帧间预测方法、编解码系统及计算机可读存储介质 - Google Patents

一种帧间预测方法、编解码系统及计算机可读存储介质 Download PDF

Info

Publication number
CN112565768B
CN112565768B CN202011401872.0A CN202011401872A CN112565768B CN 112565768 B CN112565768 B CN 112565768B CN 202011401872 A CN202011401872 A CN 202011401872A CN 112565768 B CN112565768 B CN 112565768B
Authority
CN
China
Prior art keywords
candidate
information
motion information
block
coding block
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
CN202011401872.0A
Other languages
English (en)
Other versions
CN112565768A (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.)
Zhejiang Dahua Technology Co Ltd
Original Assignee
Zhejiang Dahua Technology 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 Zhejiang Dahua Technology Co Ltd filed Critical Zhejiang Dahua Technology Co Ltd
Priority to CN202011401872.0A priority Critical patent/CN112565768B/zh
Publication of CN112565768A publication Critical patent/CN112565768A/zh
Application granted granted Critical
Publication of CN112565768B publication Critical patent/CN112565768B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • 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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/573Motion compensation with multiple frame prediction using two or more reference frames in a given prediction direction

Abstract

本申请公开了一种帧间预测方法、编解码系统及计算机可读存储介质,包括:获取当前编码块的至少一个候选运动信息和与候选运动信息对应的候选双向梯度修正信息,其中,候选双向梯度修正信息与候选运动信息自同一编码块获得;基于每个候选运动信息对当前编码块进行运动补偿以获取至少一个第一预测值;分别利用每个候选运动信息对应的候选双向梯度修正信息对第一预测值进行修正,以得到当前编码块的最终预测值。通过本申请所提供的技术方案,可以获得更为准确的最终预测值,提高了帧间预测的准确性,进而实现提升编解码的性能。

Description

一种帧间预测方法、编解码系统及计算机可读存储介质
技术领域
本申请涉及视频编解码技术领域,特别是涉及一种帧间预测方法、编解码系统及计算机可读存储介质。
背景技术
由于视频图像数据量比较大,通常需要对其进行编码压缩,压缩后的数据称之为视频码流,视频码流通过有线或者无线网络传输至用户端,再进行解码观看。
整个视频编码流程包括预测、变换、量化、编码等过程。其中预测分为帧内预测和帧间预测两部分。帧间预测用的是图像帧间的时域相关性来对图像进行压缩。在现有的帧间预测中的预测值的准确度受到较多因素的影响,如所采用的预测模式的种类,视频码流的数量等,故需要一种可以提升帧间预测准确性的技术方案。
发明内容
本申请主要解决的技术问题是提供一种帧间预测方法、视频编解码系统及计算机可读存储介质,可较好地提升帧间预测的准确性,进而提升编解码的性能。
为解决上述技术问题,本申请采用的一个技术方案是:提供一种帧间预测方法,所述方法包括:
获取当前编码块的至少一个候选运动信息和与所述候选运动信息对应的候选双向梯度修正信息,其中,所述候选双向梯度修正信息与所述候选运动信息自同一编码块获得;
基于每个所述候选运动信息对所述当前编码块进行运动补偿以获取至少一个第一预测值;
分别利用每个所述候选运动信息对应的所述候选双向梯度修正信息对所述第一预测值进行修正,以得到所述当前编码块的最终预测值。
为解决上述技术问题,本申请采用的另一个技术方案是:提供一种视频编解码系统,视频编解码系统包括存储器和处理器;所述存储器中存储有计算机程序,所述处理器用于执行所述计算机程序以实现如上所述方法的步骤。
为解决上述技术问题,本申请采用的又一个技术方案是:提供一种计算机可读存储介质,所述存储介质存储有能够被处理器运行的计算机程序,所述计算机程序被处理器执行时实现如上述方法的步骤。
本申请的有益效果是:区别于现有技术的情况,本申请所提供的技术方案,通过获取当前编码块的至少一个候选运动信息和与候选运动信息对应的候选双向梯度修正信息,其中,候选双向梯度修正信息与候选运动信息自同一编码块获得,基于每个候选运动信息对当前编码块进行运动补偿以获取至少一个第一预测值;分别利用每个候选运动信息对应的候选双向梯度修正信息对第一预测值进行修正进而得到当前编码块的最终预测值,本申请所提供的方案通过获取与候选运动信息对应的候选双向梯度修正信息,并利用候选双向梯度修正信息对运动补偿后所得的第一预测值进行修正,进而可以获得更为准确的最终预测值,由于本申请所提供的技术方案适用于编码端和解码端,进而无需在编码端和解码端之间传输双向梯度修正信息的句法元素,实现无需改变编码端与解码端之间所需传输的码流数据的数量,进而提高了帧间预测的准确性,进而实现提升编解码的性能。
附图说明
图1为本申请一种帧间预测方法一实施例中的流程示意图;
图2具体展示了一实施例中梯度修正技术中的语法元素;
图3为本申请一种帧间预测方法另一实施例中的流程示意图;
图4为本申请一种帧间预测方法一实施例中的应用场景示意图;
图5为本申请一种帧间预测方法又一实施例中的流程示意图;
图6为本申请一种帧间预测方法一实施例中的应用场景示意图;
图7为本申请一种帧间预测方法一实施例中的查重示意图;
图8为本申请一种帧间预测方法一实施例中的填充示意图;
图9为本申请一种帧间预测方法另一实施例中的流程示意图;
图10为本申请一种帧间预测方法一实施例中的应用场景示意图;
图11为本申请一种帧间预测方法另一实施例中的流程示意图;
图12为本申请一种帧间预测方法又一实施例中的应用场景示意图;
图13为本申请一种视频编解码系统一实施例中的结构示意图;
图14为本申请一种计算机可读存储介质一实施例结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。可以理解的是,此处所描述的具体实施例仅用于解释本申请,而非对本申请的限定。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
在视频传输领域中,由于视频图像的数据量比较大,视频编码的主要作用是将视频像素数据压缩成为视频码流,从而降低视频的数据量,实现降低传输视频的过程中的网络带宽,同时还可以减少存储空间。视频编码的流程主要包括视频采集、预测、变换、量化和熵编码几大部分。其中,预测包括帧内预测和帧间预测两部分,分别是为了去除视频图像在空间和时间上的冗余。
在视频编码中,最常用颜色编码方法有YUV和RGB等,本申请所采用的颜色编码方法为YUV。其中,Y表示明亮度,也就是图像的灰度值,U和V(即Cb和Cr)表示色度,作用是描述图像色彩及饱和度。每个Y亮度块都对应一个Cb和Cr色度块,每个色度块也只对应一个亮度块。视频中的图像帧分为I帧、P帧、B帧三种。I帧为帧内编码帧,进行帧内预测;P帧和B帧为帧间编码帧,需要进行帧间预测。帧内预测用的是一个图像帧内的空域相关性对图像进行压缩,而帧间预测用的是图像帧间的时域相关性来对图像进行压缩。
由于时间上相邻帧像素点的亮度和色度信号值比较接近,具有强相关性,而帧间预测正是基于上述相关性通过运动搜索等方法在参考帧中寻找与当前编码块最为接近的匹配块,并记录当前编码块与匹配块间的运动信息。其中,运动信息包括运动矢量MV(motion vector)和参考帧索引,在其他实施例中运动信息还可以包括其他类型的信息,在此不做限定。获得运动信息之后,对运动信息进行编码并传输到解码端。在解码端,解码器只要通过相应句法元素解析出当前编码块的MV,就可找到当前编码块在参考帧中的匹配块,并将匹配块的像素值拷贝到当前编码块,即为当前编码块的帧间预测值。
在本申请所提供的技术方案中,帧间预测的过程是指获取当前编码块(在下述一些实施例中会用当前块代指当前编码块)的运动矢量MV的过程。由于连续的图像帧中的某一物体运动一般不会发生突然变化,所以可以用时域上前面的图像帧和后面图像帧的运动信息来预测当前图像帧的运动信息。其中,P帧用的是前向预测,即用它前向的P帧或I帧作为参考帧,获取参考帧中对应块的运动矢量信息来对当前P帧中的当前编码块进行预测;B帧用的是双向预测,即用它前向的P帧或I帧以及后向的P帧作为参考帧,获取参考帧中对应编码块的运动矢量信息来对当前B帧中的当前编码块进行预测。首先在进行帧间预测时会构建两个参考帧列表list0和list1,用于存放当前帧的参考帧。
请参见图1,图1为本申请一种帧间预测方法一实施例中的流程示意图。在当前实施例中,首先需要说明的是,本申请所提供的帧间预测方法可采用运动矢量角度预测模式(MVAP:Motion Vector Angle Prediction)、时域运动矢量预测模式(TMVP:temporalmotion vector prediction)、子块时域运动矢量预测模式(subTMVP:sub temporalmotion vector prediction)和增强型时域运动矢量预测模式(ETMVP:Enhanced temporalmotion vector prediction)中的一种或多种。本申请所提供的方法包括:
S110:获取当前编码块的至少一个候选运动信息和与候选运动信息对应的候选双向梯度修正信息。
在对当前编码块进行帧间预测时,首先获取当前编码块的至少一个候选运动信息和与候选运动信息对应的候选双向梯度修正信息。其中,当前编码块为当前需要进行编码处理,通过帧间预测获取到运动信息的编码块。候选运动信息为用于获取当前编码块运动信息的、且具有参考意义的运动信息,候选运动信息可以为参考帧中与当前编码块对应的时域同位块运动信息或与该时域同位块相关的编码块的运动信息,也可以为当前编码块在当前帧中的相邻编码块的运动信息,还可以是当前编码块在参考帧中时域同位块的相邻编码块的运动信息,具体可根据所采用的预测模式确定,在此不做限定。
进一步地,编码块为用于编解码的单元,在此对于编码块的大小不做特别限定,具体根据协议的定义进行确定。运动信息至少包括运动矢量信息和参考帧索引信息。候选双向梯度修正信息为用于修正运动补偿所得的预测值的信息,候选双向梯度修正信息与候选运动信息自同一编码块获得,具有一一对应关系,用于对候选运动信息所对应的第一预测值进行修正。在一些实施例中,利用BGC(BGC:bi-directional gradient correction)简称双向梯度修正信息。
进一步地,由于所采用的帧间预测模式的不同,故获取候选运动信息的方式也不相同。如:在一实施例中,当帧间预测采用子块时域运动矢量预测模式或增强型时域运动矢量预测模式,步骤S110中可以是分别获取当前编码块所包括的子块的候选运动信息和与候选运动信息对应的候选双向梯度修正信息,对应的下述步骤S120和步骤S130中则会对应以当前编码块的子块为单元进行执行。
当步骤S110中获取的是当前编码块所包括的子块的至少一个候选运动信息和候选双向梯度修正信息,步骤S120中则会对应基于每个子块的候选运动信息对当前编码块的子块进行运动补偿以获取该子块的至少一个第一预测值,步骤S130中则是分别利用子块的每个候选运动信息对应的候选双向梯度修正信息对第一预测值进行修正,进而获取得到当前编码块中所包括的子块的最终预测值。如,当前编码块可以被划分为四个相同大小的子块,则对应的步骤S110中则是分别获取当前编码块所包括的四个子块的候选运动信息和四个子块的候选运动信息所对应的候选双向梯度修正信息。
进一步地,如上所述,本申请所提供的帧间预测方法可以采用运动矢量角度预测模式(MVAP:Motion Vector Angle Prediction)、时域运动矢量预测模式(TMVP:temporalmotion vector prediction)、子块时域运动矢量预测模式(subTMVP:sub temporalmotion vector prediction)和增强型时域运动矢量预测模式(ETMVP:Enhanced temporalmotion vector prediction)中的一种或多种,故在执行步骤S110之前,本申请所提供的方法还包括:确定当前所采用的帧间预测模式,然后基于所采用的帧间预测模式确定获取候选运动信息和候选双向梯度修正信息的方式,进而确定所获取的候选运动信息的数量和所获取的候选运动信息的出处。如,当帧间预测方法采用的是MAVP时,则步骤S110也可以理解为构建运动信息候选列表和双向梯度修正信息候选列表;若当前帧间预测方法采用的是ETMVP,则步骤S110则是通过在参考帧中确定当前编码块的匹配块,并对匹配块进行划分获得若干子块,并获取划分所得的子块的候选运动信息和候选双向梯度修正信息。
S120:基于每个候选运动信息对当前编码块进行运动补偿以获取至少一个第一预测值。
在获取到当前编码块的至少一个候选运动信息和与候选运动信息对应的候选双向梯度修正信息之后,进一步基于所获取的候选运动信息对当前编码块进行运动补偿以获取至少一个第一预测值。其中,利用候选运动信息对当前编码块进行运动补偿的方式可以参见下文不同预测模式中的阐述,也可以对应参考现有运动补偿的技术细节,在此不做过多阐述。
在当前实施例中,第一预测值为利用候选运动信息对编码块进行运动补偿后所得的值,第一预测值的数量与候选运动信息的数量对应,如在一实施例中,步骤S110中获取到当前编码块有n个候选运动信息,则步骤S120中则会对应获得n个第一预测值。
S130:分别利用每个候选运动信息对应的候选双向梯度修正信息对第一预测值进行修正,以得到当前编码块的最终预测值。
在基于每个候选运动信息对当前编码块进行运动补偿获取到至少一个第一预测值之后,进一步分别利用每个候选运动信息各自所对应的候选双向梯度修正信息,分别对每个第一预测值进行修正进而获取到每个编码块的最终预测值。其中,进行修正的单位与进行运动补偿的单位相同,即如若步骤S110和步骤S120中是以当前编码块为单位进行执行,则步骤S130中则是对当前编码块的第一预测值进行修正;如若步骤S110中获取的是当前编码块所包括的子块的候选运动信息和候选双向梯度修正信息时,则步骤S130中则是利用该子块的候选双向梯度修正信息对第一预测值进行修正。
进一步地,当帧间预测方法是用于对编码端进行帧间预测时,则上述步骤S130还包括:分别利用每个候选运动信息对应的候选双向梯度修正信息对相对应的第一预测值进行修正,进而获取到至少一个第二预测值。在获取到至少一个第二预测值后,进一步比较所有第二预测值的代价值,将代价值最小的第二预测值作为当前编码块的最终预测值。其中,第二预测值为利用候选双向梯度修正信息对第一预测值进行修正后所得的值,第二预测值与第一预测值一一对应,每个当前编码块的最终预测值的数量为一个。
更进一步地,当协议规定对编码端进行帧间预测,且帧间预测的模式存在多种预测模式,则上述步骤比较所有第二预测值的代价值,将代价值最小的第二预测值作为当前编码块的最终预测值进一步包括:比较所有第二预测值的代价值,并将最小代价值的第二预测值作为当前预测模式的预测值。在当前实施例中,在分别完成对各个第一预测值的修正后获得第二预测值后,进一步计算求得各个第二预测值所对应的代价值,然后基于各个第二预测值所对应的代价值确定各个预测模式的预测值。其中,代价值至少包括率失真代价(RD-cost),但不限定于此。
可以理解的是,如若只存在一个候选运动信息时,则直接将该候选运动信息对应的第二预测值直接输出作为当前预测模式的预测值。
在当前实施例中,帧间预测可以采用多种不同的预测模式,故本申请所提供的方法进一步包括:比较所有预测模式的预测值的代价值,并将代价值最小的预测模式的预测值输出为当前编码块的最终预测值。
在求取得到每个预测模式的预测值(该预测模式下具有最小代价值的第二预测值)以及每个预测模式的预测值的代价值后,进一步将当前所有预测模式的预测值的代价值进行比较大小,以获取代价值最小的预测模式,并将代价值最小的预测模式对应的预测值(即该预测模式下代价值最小的第二预测值)输出作为当前编码块的最终预测值。其中,预测模式的代价值用于表示预测所得的值与实际的值之间的距离,在一些实施例中也可以将预测模式的代价值理解为一种表示当前预测模式的预测值准确度的量,故在本申请所提供的技术方案中会选取代价值最小第二预测值为每个预测模式的预测值,也会在多个不同模式中选取代价值最小的预测模式对应的预测值作为当前编码块的最终预测值,进而实现可以获得更为准确的预测值,进一步提升编解码性能。
对应的,当帧间预测方法是应用于解码端时,则不包括上述比较第二预测值的代价值,并将代价值最小的第二预测值作为当前编码块的最终预测值的步骤。
进一步地,利用候选双向梯度修正信息(双向梯度修正信息)对第一预测值进行修正的流程如下:
首先需要说明的是,利用双向梯度修正信息对预测值进行修正仅用于双向预测领域。对于一个编码块,其在进行双向预测的运动补偿后,得到两个方向的单向亮度Y(或U、V)分量预测值pred0和pred1,设双向帧间梯度修正前的双向预测值为predBI。其中,predBI为pred0和pred1的均值。
bgc_flag为二值变量,当bgc_flag为0表示不进行梯度修正,当bgc_flag为1表示进行梯度修正。
bgc_idx为二值变量,当bgc_idx为0时,则进行梯度修正后的预测值Pred计算方式如下:Pred=predBI+(pred1-pred0)>>k。
当bgc_idx为1时,则进行梯度修正后的预测值Pred计算方式如下:Pred=predBI+(pred0-pred1)>>k。
其中,k表示修正强度,修正后的预测值为Pred,综上,修正后的预测值Pred计算方式如下:
Figure BDA0002812757400000071
进一步地,在一实施例中,k可以设为固定值3。同时可以通过添加序列级语法元素bgc_enable_flag标识是否开启梯度修正技术。其中,bgc_enable_flag为二值变量,当bgc_enable_flag为0时,则表示不使用梯度修正技术,当bgc_enable_flag为1时则表示使用梯度修正技术。在当前实施例中,通过bgc_enable_flag可以实现灵活开启或关闭梯度修正技术。
请同时结合图2,图2具体展示了一实施例中梯度修正技术中的语法元素。其中,V1,V2,V3公式分别对应bgc_flag=1、bgc_idx=0,和bgc_flag=0,以及bgc_flag=1、bgc_idx=1三种不同情况下的语法元素。
如图2所示意的,V1=(R0+R1+1)>>1+(R0-R1)>>k;V2=(R0+R1+1)>>1,V3=(R0+R1+1)>>1+(R0-R1)>>k,其中,R0和R1标识的是编码块的亮度值或色度值。V2对应为上述pred=predB1的句法元素,V1对应为上述Pred=predBI+(pred1-pred0)>>k的句法元素,V3对应为上述Pred=predBI+(pred0-pred1)>>k的句法元素。
需要说明的是,本申请所提供的技术方案中,当协议中定义了包括运动矢量角度预测模式(MVAP:Motion Vector Angle Prediction)、时域运动矢量预测模式(TMVP:temporal motion vector prediction)、子块时域运动矢量预测模式(subTMVP:subtemporal motion vector prediction)和增强型时域运动矢量预测模式(ETMVP:Enhancedtemporal motion vector prediction)中的多个预测模式时,则本申请所提供的技术方案中,可以是仅设定其中任意一种预测模式中包括梯度修正的技术,也可以是设定多种预测模式中包括梯度修正技术,还可以是设定所有预测模式中均包括梯度修正技术。其中,当某一个预测模式中包括梯度修正技术,则代表会同时获取当前编码块的候选双向梯度修正信息,进而在利用候选运动信息对当前编码块进行运动补偿后得到第一预测值后,进一步利用候选双向梯度修正信息对第一预测值进行修正,以获得最终预测值。
需要说明的是,本申请图1所对应的实施例中所提供的技术方案,在编码端和解码端均适用,且获取的候选双向梯度修正信息与候选运动信息是自同一编码块获得,具体地,在当前实施例中是利用已编码的编码块获取到候选双向梯度修正信息,这样就实现在确定最终预测值之后无需想解码端传输候选双向修正信息的语法元素,进而使得编码端与解码端之间不会额外增加码流比特数,从一定程度上改善预测值,提高了帧间预测的准确性,从而提升编码性能。
本申请图1所提供的技术方案,通过获取当前编码块的至少一个候选运动信息和与候选运动信息对应的候选双向梯度修正信息,其中,候选双向梯度修正信息与候选运动信息自同一编码块获得,基于每个候选运动信息对当前编码块进行运动补偿以获取至少一个第一预测值;分别利用每个候选运动信息对应的候选双向梯度修正信息对第一预测值进行修正进而得到当前编码块的最终预测值,本申请所提供的方案通过获取与候选运动信息对应的候选双向梯度修正信息,并利用候选双向梯度修正信息对运动补偿后所得的第一预测值进行修正,进而可以获得更为准确的最终预测值,提高了帧间预测的准确性,进而实现提升编解码的性能。
进一步请继续参见图1,在另一实施例中,本申请所提供的帧间预测方法还包括步骤S140和/或S150。
S140:将当前编码块内所有子块的运动信息保存至当前帧的运动信息地图,将当前编码块内所有子块的双向梯度修正信息保存至当前帧的双向梯度修正信息地图。
在分别利用每个候选运动信息对应的候选双向梯度修正信息对第一预存值进行修正,并得到当前编码块的最终预测值后,进一步将当前编码块内所有子块的运动信息保存至当前帧的运动信息地图。同理,也会将当前编码块内所有子块的双向梯度修正信息对应保存至当前帧的双向梯度修正信息地图,供后续编码块进行编解码时使用,进而候选利用已编码的编码块的运动信息和双向梯度修正信息进行帧间预测提高了技术基础。
其中,当前编码块的子块的运动信息为该子块的最终预测值对应的运动信息,运动信息包括运动矢量信息和参考帧索引,当前编码块内所有子块的双向梯度修正信息为与最终预测值对应的双向梯度修正信息。换而言之,当前编码块的子块的运动信息为该子块的最佳运动信息。运动信息地图和双向梯度修正信息地图与每个视频帧相对应,即在对视频帧进行编码时会对应为每个视频帧构建运动信息地图和双向梯度修正信息地图,然后获得当前编码块的运动信息和双向梯度修正信息后,则会进一步将当前编码块的运动信息和双向梯度修正信息(或当前编码块内所有子块的运动信息和子块的双向梯度修正信息)分别对应保存至运动信息地图和双向梯度修正信息地图,以供后续编码块编解码时使用。
S150:将当前编码块的运动信息更新至HMVP的运动信息候选列表,并将当前编码块内的任意一个子块的双向梯度修正信息更新至HMVP的双向梯度修正信息候选列表。
在分别利用每个候选运动信息对应的候选双向梯度修正信息对第一预存值进行修正,并得到当前编码块的最终预测值后,同时还会将当前编码块的运动信息更新至HMVP的运动信息候选列表,并对应将当前编码块内的任意一个子块的双向梯度修正信息更新至HMVP的双向梯度修正信息候选列表。其中,在将当前编码块的运动信息更新至HMVP的运动信息候选列表时,是将当前编码块的运动信息对应更新至当前编码块在HMVP的运动信息候选列表中对应的位置,同理将当前编码块内任意一个子块的双向梯度修正信息对应更新至该子块在双向梯度修正信息候选列表对应位置处。
如在一实施例中,可以是选取当前编码块的左上角的子块的BGC信息进行更新至HMVP中。在另一实施例中,也可以是选取当前编码块右下角最后一个子块的BGC信息更新至HMVP中。可以理解的是,本申请所提供的技术方案中,还可以根据实际设定选取当前编码块内任意一个子块BGC信息,在此不做限定。
其中,当前实施例中当前编码块的子块可以为4*4大小,在其他实施例中,编码块的子块也可以为8*8或其他尺寸,具体不做限定,以协议预先设定为准。
其中,HMPV(History-based Motion Vector Prediction)为历史运动矢量角度预测。当前编码块的运动信息为当前编码块的最终预测值,子块的双向梯度修正信息为与最终预测值对应的候选双向梯度修正信息。
其中,需要说明的是,在此并不限定步骤S140和步骤S150的执行顺序,在一些实施例中,可以是先执行步骤S150,再执行步骤S140,又或者也可以是同时执行步骤S140和步骤S150,再或者也可以是先执行步骤S140和步骤S150。
请参见图3,图3为本申请一种帧间预测方法另一实施例中的流程示意图。图3所示意的是当前帧间预测方法采用运动矢量角度预测模式时,本申请所提供的方法包括的具体步骤。
首先需要说明的是,上述步骤S110获取当前编码块的至少一个候选运动信息和与候选运动信息对应的候选双向梯度修正信息,在当前实施例中进一步包括步骤S301。
S301:分别为每个预设角度方向构建当前编码块的运动信息候选列表和双向梯度修正信息候选列表。
为每个预设角度方向构建当前编码块的运动信息候选列表,同时还会为每个角度方向对应构建当前编码块的双向梯度修正信息候选列表,即运动信息候选列表中包括每个预设角度方向的候选运动信息,同理双向梯度修正信息候选列表中包括每个预设角度方向的候选双向梯度修正信息。其中,每个候选运动信息对应一个候选双向梯度修正信息,且具有对应关系的候选运动信息与候选双向梯度修正信息是自同一个编码块获取得到,故构建所得的运动信息候选列表和双向梯度修正信息候选列表中所包括的信息元素具有一一对应关系,即运动信息候选列表中任意一个候选运动信息在双向梯度修正信息候选列表中仅仅具有一个对应的候选双向梯度修正信息。如若无法获取到运动信息对应的候选双向梯度修正信息,则会填0至运行信息在双向梯度修正信息候选列表的对应位置。
其中,双向梯度修正信息候选列表和运动信息候选列表长度相等或大小相等。进一步地,在一些实施例中,也可以理解为双向梯度修正信息候选列表中所包括的候选梯度修正信息的数量与运动信息候选列表所包括的候选运动信息的数量相等。其中,运动信息候选列表和双向梯度修正信息候选列表的尺寸可以是根据预先设定的长度进行构建,也可以是根据当前编码块的宽和高进行构建。如,当帧间预测方法采用的是图3所示意的MAVP预测模式,则步骤S301进一步包括:根据当前编码块的宽和高为每个预设角度方向构建当前编码块的运动信息候选列表和双向梯度修正信息候选列表。当在其他实施例中,帧间预测方法采用的是其他预测模式时,则可以是构建与当前预测模式相对应的设定尺寸的运动信息候选列表和双向梯度修正信息候选列表。
请同时结合图4,上述预设角度方向包括水平向下、水平、水平向上、垂直和垂直向右中的至少一个。可以理解的是,在其他实施例中根据预先设定,预设角度方向还可以包括其他类型方向,在此不一一列举。
请参见图4,图4为本申请一种帧间预测方法一实施例中的应用场景示意图。如图4所示意的是,当预设角度方向包括水平向下、水平、水平向上、垂直和垂直向右五个时,则步骤S301是构建包括水平向下、水平、水平向上、垂直和垂直向右五个方向候选运动信息的运动信息候选列表和和包括五个方向的候选双向梯度修正信息的双向梯度修正信息候选列表。
进一步地,请参见图5,图5为本申请一种帧间预测方法又一实施例中的流程示意图。在当前实施例中S301进一步包括步骤S501至步骤S503。
S501:按照预设角度方向确定当前编码块的空域邻块。
按照预设角度方向确定当前编码块的空域邻块。其中,空域邻块指的是当前编码块的在当前帧中的邻块。具体地如图4所示意的是A1至AN、B1至BN、D1至DN、E和C1均是图示8×8子块的空域邻块。
进一步地,如上所述,预设角度方向包括水平向下、水平、水平向上、垂直和垂直向右,故在执行步骤S501时是可以依次按照水平向下、水平、水平向上、垂直和垂直向右的顺序确定当前编码块的空域邻块。可以理解的是,在其他实施例中,也可以是按照其他的顺序确定当前编码块的空域邻块,在此不一一列举。
S502:将每个空域邻块的空域运动信息作为候选运动信息,分别填至运动信息候选列表中与空域邻块对应的位置,进而构建得到预设角度方向的运动信息候选列表。
在确定当前编码块的空域邻块之后,进一步将每个空域邻块的空域运动信息作为候选运动信息分别填至运动信息候选列表中与空域邻块对应的位置,进而构建得到预设角度方向的运动信息候选列表。
其中,若空域邻块不可用,则将预设运动信息填至运动信息候选列表中与空域邻块对应的位置。其中,预设运动信息包括0。
S503:将每个空域邻块的空域双向梯度修正信息作为候选双向梯度修正信息,分别填至双向梯度修正信息候选列表中与空域邻块对应的位置,进而构建获得预设的角度方向的双向梯度修正信息候选列表。
其中,需要说明的是,本申请所提供的方法中,并不限定步骤S502至步骤S503的先后执行顺序。在一些实施例中,可以是先执行步骤S502再执行步骤S503;在其他实施例中,也可以是先执行步骤S503再执行步骤S502;又或者是可以是同时执行步骤S502和步骤S503。
其中,若空域邻块不可用,则将预设双向梯度修正信息填至双向梯度修正信息候选列表中与空域邻块对应的位置。预设双向梯度修正信息包括0。
上述步骤S120基于每个候选运动信息对当前编码块进行运动补偿以获取至少一个第一预测值,在当前实施例中进一步包括步骤S302至步骤S303。
S302:为当前编码块中的每个第一预设尺寸子块分配对应的预设角度方向的运动信息候选列表中的候选运动信息。
请同时参见图6,图6为本申请一种帧间预测方法一实施例中的应用场景示意图,图6中具体展示的是以水平方向为例,为当前编码块中的每个第一预测尺寸子块分配水平方向的运动信息候选列表中的候选运动信息的应用场景。
在一实施例中,第一预设尺寸为8×8,图6所示意的每个小格子代表4×4,则图6中所示意的4个小格子(包括横向2个小格子,以及沿着该横向2小格子向下延伸的且与横向2个小格子相邻的纵向两个小格子)为第一预设尺寸的子块。其中,A1至AN为水平方向运动信息候选列表中的候选运动信息(和/或水平方向双向梯度修正信息候选列表中的候选双向梯度修正信息),则对应的将A1所对应的候选运动信息分配给与A1相邻的第一预设尺寸子块(以A1右侧的第一个小格子为左上角的第一预设尺寸子块),将A2所对应的候选运动信息分配给A2相邻的第一预设尺寸子块,同理,在下述步骤S304中为当前编码块中每个第一预设尺寸子块分配对应的预设角度方向的双向梯度修正信息候选列表中的候选双向梯度修正信息也同样参照上述分配规则。依次类推,同样在其他预设角度方向的候选运动信息和候选双向梯度修正信息分配也适用上述分配规则,在此不一举例。
S303:利用当前编码块中的每个第一预设尺寸子块的候选运动信息,分别对每个第一预设尺寸子块进行运动补偿,以获取到每个第一预设尺寸子块的第一预测值。
在确定了编码块中的每个第一预设尺寸子块的候选运动信息后,进一步利用当前编码块中的每个第一预设尺寸子块的候选运动信息,分别对每个第一预设尺寸子块进行运动补偿,以获取到每个第一预设尺寸子块的第一预测值。
上述步骤S130分别利用每个候选运动信息对应的候选双向梯度修正信息对第一预测值执行修正过程,在当前实施例中进一步包括步骤S304至步骤S305。
S304:为当前编码块中的每个第一预设尺寸子块分配对应的预设角度方向的双向梯度修正信息候选列表中的候选双向梯度修正信息。
请结合图6,A1至AN还用于示意水平方向双向梯度修正信息候选列表中的候选双向梯度修正信息,则对应的将A1所对应的候选双向梯度修正信息分配给与A1相邻的第一预设尺寸子块(以A1右侧的第一个小格子为左上角的第一预设尺寸子块),将A2所对应的候选双向梯度修正信息分配给A2相邻的第一预设尺寸子块,依次类推,同样在其他预设角度方向的候选双向梯度修正信息分配也适用上述分配规则,在此不一举例。
需要说明是的,在此并不限定步骤S304一定是在步骤S303之后执行,在一些实施例中,步骤S304中的内容可以是与步骤S302同时执行。
S305:利用当前编码块中的每个第一预设尺寸子块的候选双向梯度修正信息,分别对每个第一预设尺寸子块的第一预测值进行修正。
在完成为当前编码块中的每个第一预设尺寸子块分配对应的预设角度方向的双向梯度修正信息候选列表中的候选双向梯度修正信息,且利用当前编码块中的每个第一预设尺寸子块的候选运动信息,分别对每个第一预设尺寸子块进行运动补偿,以获取到每个第一预设尺寸子块的第一预测值之后,进一步利用当前编码块中的每个第一预设尺寸子块的候选双向梯度修正信息,分别对每个第一预设尺寸子块的第一预测值进行修正,进而得到第二预测值。
在一实施例中,请同时结合图3至图6,在将BGC拓展到MVAP技术的实施例中,首先,无论是编码端还是解码端均会将编码完的每个编码块的BGC信息保存起来,保存方式与每个编码块的运动信息保存方式一致,故在采用MVAP预测模式进行帧间预测的实施例中,会有已保存的一个表示空域已编码的编码块的BGC信息地图,以便在MVAP预测模式中进行BGC的拓展方案,进而实现在获取到最终预测值后只需要传输所需要传输的码流数据即可,解码端只需要依据自身保存的已编码的编码块的BGC信息执行修正过程,无需在编码端和解码端传输BGC信息的句法元素,无需在码流数据中增加BGC信息的句法元素,即本申请所提供的将BGC拓展方案不会增加编码端与解码端之间的码流数据量,可以一定程度提升增加帧间预测的准确性。
以16x16大小的编码块为例,其进行MVAP预测模式时,结合BGC拓展方案如下:
构建运动信息候选列表:首先找出图4所示意的五个角度方向的空域邻块,并进一步判断该空域邻块是否为可用块,该空域邻块在列表中的位置,其中先以该空域邻块的空域的运动信息进行赋值;若该空域邻块不可用,按预设运动信息赋值,即运动矢量信息赋值为0,前后向参考帧索引赋值为-1。
在构建运动信息候选列表的同时,构建BGC信息候选列表:找出图4所示意的五个角度方向的空域邻块,并进一步判断该空域邻块是否为可用块,该空域邻块在列表中的位置,其中先以该空域邻块的空域的BGC信息(BGC信息包括bgc_flag和bgc_idx)进行赋值;若该空域邻块不可用,则利用预设双向梯度修正信息进行赋值,即分别将bgc_flag和bgc_idx设置为0。
然后,进行查重以获取有效的角度方向。当五个角度方向在对应的候选列表中,五个方向均存在不同邻块中有不同的运动信息,则认为该五个方向是有效的,否则此方向是无效的。请同时结合图7,图7为本申请一种帧间预测方法查重示意图。具体地,MVAP技术采用以下采样查重方式,如图7所示,每个方向只查重相隔等距的相邻块,水平方向查重A1和Ak,垂直方向查重B1和Bk,水平向下查重Ak和C1以及C1和Ck,垂直向右方向查重Bk和D1以及D1和Dk,水平向上查重A1和E以及B1和E,总共查重八次。将某个方向两个邻块记为nei_b1和nei_b2进行查重的具体步骤主要如下:
(i)查nei_b1的前向参考帧和后向参考帧是否存在,即索引大于或等于0,若其中一个存在则进行步骤(ii),否则都不存在,则判定此方向为无效。
(ii)查nei_b2的前向参考帧和后向参考帧是否存在,即索引大于或等于0,若其中一个存在则进行步骤(iii),否则都不存在,则判定此方向为无效。
(iii)判断nei_b1和nei_b2的前向参考帧索引是否相同,若相同,则进行步骤(iv),否则,此方向为有效。
(iv)判断nei_b1的前向参考帧是否存在,并且nei_b1和nei_b2的前向参考运动矢量是否相同,若存在并且不相同,则此方向为有效,否则进行步骤(v)。
(v)判断nei_b1和nei_b2的后向参考帧索引是否相同,若相同,则进行步骤(vi),否则,此方向为有效。
(vi)判断nei_b1的后向参考帧是否存在,并且nei_b1和nei_b2的后向参考运动矢量是否相同,若存在并且不相同,则此方向为有效,否则进行步骤(vii)。
(vii)此方向判定为无效。
请参见图8,图8为本申请一种帧间预测一实施例中的填充示意图。执行完成上述查重步骤最后得到有效的角度方向的数量和索引,然后对运动信息候选列表中没有运动信息的邻块进行填充运动信息:按照水平向下,水平,水平向上,垂直,垂直向右的方向,依次对不可用块进行填充,填充的方式如图8所示,取运动信息候选列表中当前邻块的上一个邻块的运动信息进行填充,若运动信息候选列表中第一个邻块是不可用块,那么将此邻块的运动矢量和前向参考帧索引置零,后向参考帧索引置-1(无效)。
同时对BGC候选列表中没有运动信息的邻块填充BGC信息:同样按照水平向下,水平,水平向上,垂直,垂直向右的方向,依次对不可用块进行填充,填充的方式同样如图8所示,取BGC候选列表中当前邻块的上一个邻块的BGC信息进行填充,若BGC候选列表中第一个邻块是不可用块,那么则bgc_flag和bgc_idx设置为0。
完成查重和填充后,则执行预测过程。MVAP是对当前编码块中每个8x8子块进行运动补偿,然后对每个角度方向进行率失真优化,按照代价值由小到大将角度方向索引放入模式列表中。具体细节如下述步骤(i)至步骤(iii)。
(i)首先,为当前编码块中每个8x8子块分配对应角度方向的运动信息候选列表中邻块的运动信息。如图6,以水平方向为例,将A1的运动信息分配到水平向右的所有8x8子块中去,同时将BGC的候选列表的BGC信息也按照该方式分配到当前编码块的8x8子块。
(ii)在当前编码块的所有8x8子块中,利用运动信息进行运动补偿得到第一预测值,再利用BGC信息对第一预测值进行BGC过程(即对第一预测值进行修正过程),得到修正后的第二预测值。
(iii)得到当前编码块所有第二预测值后,与原始值进行计算率失真代价,并遍历所有的有效角度方向的代价值,通过比较将代价值从小到大的角度方向索引放入模式列表中,与其他帧间模式一起进行率失真优化,最后得出最佳的帧间模式,并将最佳的帧间模式的第二预测值输出为当前编码块的最终预测值。
对于当前CU(编码块)编码的预测模式完成后,会将该CU内所有4x4子块的运动信息保存到当前帧的运动信息地图;同时,BGC信息也会保存到当前帧的BGC信息地图,供后续CU编码使用。
同时在当前CU编码的预测模式完成后,会将该CU的运动信息更新到HMVP的候选列表;同时,当前CU内某一个4x4块的BGC信息也会更新到HMVP的BGC信息候选列表。在当前实施例中,取CU的左上角第一个4x4子块的BGC信息进行更新。
请参见图9,图9为本申请一种帧间预测方法另一实施例中的流程示意图。在图9所对应的实施例中,主要阐述了帧间预测方法采用时域运动矢量预测模式或子块时域运动矢量预测模式情况下所包括的步骤。
在当前实施例中,上述步骤S110获取当前编码块的至少一个候选运动信息和与所述候选运动信息对应的候选双向梯度修正信息,进一步包括步骤S901至步骤S902。
S901:构建当前编码块的运动信息候选列表和与运动信息候选列表对应的双向梯度修正信息候选列表。
如上所述,运动信息候选列表和与运动信息候选列表对应的双向梯度修正信息候选列表的大小相等,即运动信息候选列表和双向梯度修正信息候选列表所包括的信息数量相同。
需要说明的是,在本申请所提供的TMVP/SubTMVP的技术方案中,首先会将编码完的每个编码块的BGC信息保存起来,保存方式与每个编码块的运动信息保存方式一致,故在采样TMVP/SubTMVP模式时,会有已保存的两个表示时域参考帧已编码的编码块的BGC信息地图,供TMVP/SubTMVP模式进行BGC过程时调用,同理,在解码端也会对应将已解码的编码块的BGC信息保存起来,保存方式与每个编码块的运动信息保存方式一致。
S902:获取当前编码块在参考帧中的时域同位块的运动信息和双向梯度修正信息,将时域同位块的运动信息作为候选运动信息对应填入至运动信息候选列表,将双向梯度修正信息作为候选双向梯度修正信息对应填入至双向梯度修正信息候选列表。
其中,若时域同位块的运动信息不可用,则将当前编码块的若干设定位置的空域相邻块运动信息的加权结果作为候选运动信息,对应填入运动信息候选列表的第一个位置。
基于当前编码块的若干设定位置的空域相邻块的双向梯度修正信息确定候选双向梯度修正信息,并将其对应填写至双向梯度修正信息候选列表的第一个位置。
进一步地,上述基于当前编码块的若干设定位置的空域相邻块的双向梯度修正信息确定候选双向梯度修正信息,并将其对应填写至双向梯度修正信息候选列表的第一个位置,进一步包括:
若当前编码块的若干设定位置的空域相邻块的双向梯度修正信息均相等,则直接将当前编码块的若干设定位置的空域相邻块的双向梯度修正信息作为候选双向梯度修正信息填入双向梯度修正信息候选列表的第一个位置。否则,若当前编码块的若干设定位置的空域相邻块的双向梯度修正信息并不全部相等,将预设双向梯度修正信息填至双向梯度修正信息候选列表的第一个位置。
在构建得到当前编码块的运动信息候选列表和与运动信息候选列表对应的双向梯度修正信息候选列表之后,进一步执行基于每个候选运动信息对当前编码块进行运动补偿以获取至少一个第一预测值,分别利用每个候选运动信息对应的候选双向梯度修正信息对第一预测值进行修正,以得到当前编码块的最终预测值,然后基于最终预测值得到当前编码块的码流数据,并将码流数据传输至解码端。
本申请所提供的技术方案是通过将BGC拓展到TMVP/SubTMVP,具体通过进行TMVP候选列表构建、获取子块MV、以及预测过程中,同时添加BGC的信息,使得当前CU可以进行BGC过程,进而获取到更为准确的预测值,进一步提升编码的性能。请同时结合图10,图10为本申请一种帧间预测方法一实施例中的应用场景示意图。在当前实施例中,本申请所提供的一种帧间预测方法一实施例中的采用TMVP进行帧间预测的流程如下:
1)构建MVP候选列表,获取时域运动信息,同时构建BGC信息的候选列表,BGC信息候选列表和MVP候选列表长度大小相等,且一一对应,其中,BGC信息是由时域同位块中获取而来。若时域运动信息不可用,则按照TMVP空域信息方式获取其相邻块a,b,c的空域BGC信息,其中,相邻块a,b,c与当前块的分布如图10所示。如若根据邻块a,b,c仍无法获取BGC信息,则填0至BGC信息候选列表。具体地过程如下:
2)执行预测过程和BGC过程。在本申请所提供的技术方案中,做运动补偿的CU,都会使用BGC候选列表中的对应的BGC信息,进行其运动补偿后的BGC过程,进而获取到第二预测值,然后再基于进行BGC过程后的第二预测值获得当前编码块的最终预测值。
3)保存运动信息和BGC信息。具体地,对于当前CU编码的预测模式完成后,会将该CU内所有4x4子块的运动信息保存到当前帧的运动信息地图;同时,BGC信息也会保存到当前帧的BGC信息地图,供后续CU编码使用。在解码端,同样会将解码的编码块的运动信息和BGC信息对应保存至当前帧的运动信息地图和BGC信息地图。
4)将运动信息和BGC信息更新到HMVP。当前CU编码的预测模式完成后,会将该CU的运动信息更新到HMVP的候选列表;同时,当前CU内某一个4x4块的BGC信息也会更新到HMVP的BGC信息候选列表。进一步地,这里可以取当前编码块的左上角第一个4x4子块的BGC信息进行更新。在另一实施例中,也可以是选取当前编码块右下最后一个4x4块的BGC信息,或当前编码块内任意一个4x4块的BGC信息更新至HMVP的BGC信息候选列表。
本申请所提供的一种帧间预测方法另一实施例中的采用SubTMVP进行帧间预测的流程如下:
1)构建MVP候选列表,获取时域运动信息,同时构建BGC信息的候选列表。具体可以参见上文TMVP中的构建过程。
2)然后对当前编码块进行分割,以获取子块。
3)获取子块MV(MV:运动信息),同时获取该子块的时域同位块BGC信息。若无法获取BGC信息,则填0至BGC信息候选列表。
4)预测过程,做运动补偿的CU子块,都会使用BGC候选列表填充的BGC信息,进行其运动补偿后的BGC过程。
5)将运动信息保存至当前帧的运动信息地图,并BGC信息保存至当前帧的BGC信息地图。对于当前CU编码的预测模式完成后,会将该CU内所有4x4子块的运动信息保存到当前帧的运动信息地图;同时,BGC信息也会保存到当前帧的BGC信息地图,供后续CU编码使用。
6)将运动信息和BGC信息更新至HMVP。当前CU编码的预测模式完成后,会将该CU的运动信息更新到HMVP的候选列表;同时,当前CU内某一个4x4块的BGC信息也会更新到HMVP的BGC信息候选列表。更新方式具体可以参见上文TMVP中所阐述的方式。
具体地,以一个B帧编码的16x16的编码块为例,在对其进行本申请所提供的结合了BGC方案的TMVP预测模式时,方案如下:
①构建skip/direct下的MVP候选列表:获取后向参考帧列表的index0帧中找到时域同位块的运动信息,同时获取该时域同位块的BGC信息(BGC信息已预先在时域已编码CU中保存),填入BGC的候选列表。若时域同位块的MV不可用时,则MVP列表的第一个位置用图10所示意的空域相邻块a,b,c的加权MV当做TMVP填入MVP候选列表的第一个位置。此时,BGC信息也由空域相邻块a,b,c中的BGC信息中填入进去。其中,填入方式有多种,本实施例方式为:若空域相邻块a,b,c中的BGC信息完全相等,即它们的bgc_flag和bgc_idx值均相等,则将该BGC信息填入BGC候选列表第一个位置,否则,该列表位置的bgc_flag和bgc_idx设置为0。
②运动补偿:对候选列表中的MVP进行遍历,遍历到原先的TMVP时,即MVP候选列表第一个位置,采用该运动信息进行运动补偿,同时,遍历到BGC候选列表第一个位置,并将该BGC信息用于当前块运动补偿后的BGC过程。
③运动信息保存:对于当前CU编码的预测模式完成后,会将该CU内所有4x4子块的运动信息保存到当前帧的运动信息地图;同时,BGC信息也会保存到当前帧的BGC信息地图,供后续CU编码使用。
④运动信息更新到HMVP:当前CU编码的预测模式完成后,会将该CU的运动信息更新到HMVP的候选列表;同时,当前CU内某一个4x4块的BGC信息也会更新到HMVP的BGC信息候选列表。这里取CU的左上角第一个4x4子块的BGC信息进行更新。
请参见图11,图11为本申请一种帧间预测方法另一实施例中的流程示意图。图11着重展示的是帧间预测方法是采用增强型时域运动矢量预测模式时所包括的步骤。
在当前实施例中,上述步骤S110获取当前编码块的至少一个候选运动信息和与候选运动信息对应的候选双向梯度修正信息,进一步包括:
S1101:在参考帧中确定当前编码块的匹配块。
其中,匹配块包括原始匹配块和若干衍生匹配块,原始匹配块为参考帧中与当前编码块坐标相同的编码块,衍生匹配块为原始匹配块偏移衍生得到的时域块。
S1102:分别将所有匹配块划分成第二预设尺寸子块。
其中,在一实施例中,第二预设尺寸为4×4,可以理解的是,在其他实施例中,根据协议规定第二预设尺寸还可以包括其他类型的尺寸。在当前实施例中,是分别将所有匹配均分若干第二预设尺寸子块。如,在一实施例中,也可以是十字均分成4个4×4的子块。
S1103:遍历每个匹配块中的每个第二预设尺寸子块,以获取第二预设尺寸子块所对应的时域块的运动信息和双向梯度修正信息,并将时域块的运动信息作为当前编码块中对应第二预设尺寸子块的候选运动信息,将时域块的双向梯度修正信息作为当前编码块中对应第二预设尺寸子块的候选双向梯度修正信息。其中,第二预设尺寸子块所对应的时域块是指第二预设尺寸子块在其对应的参考帧中的坐标相同的编码块。
在当前实施例中,对于获取到的候选运动信息和与候选运动信息对应的候选双向梯度修正信息的数量均不做限定。
进一步地,请同时参见图12,图12为本申请一种帧间预测方法又一实施例中的应用场景示意图。若无法获取到子块对应的时域块的运动信息和/或双向梯度修正信息,则方法还包括:获取位于当前编码块的左下角的邻块的运动信息,并缩放到参考帧后作为子块的候选运动信息;和/或,获取当前编码块的左下角的邻块的双向梯度修正信息并输出为子块的候选双向梯度修正信息。其中,当前编码块的左下角的邻块如图12所示意,图12中F即为当前编码块(当前块)的左下角的邻块,将F块的双向梯度修正信息输出为该子块的候选双向梯度修正信息。
更进一步地,若当前编码块的左下角的邻块不存在或运动信息不可用,则将预设运动信息输出为子块的候选运动信息,并将预设双向梯度修正信息输出为候选双向梯度修正信息。
在将BGC拓展到ETMVP技术中时,首先会将每一帧编码完的每个CU的BGC信息保存起来,保存方式与每个CU的运动信息保存方式一致,故在进行ETMVP模式下,会有已保存的一个表示空域已编码CU的BGC信息地图,以及两个表示时域参考帧已编码CU的BGC信息地图,供在采用ETMVP模式进行帧间预测时可以执行BGC的过程,同理,在解码端也会将已经解码的编码块的运动信息和候选运动信息利用上述方式进行保存。BGC拓展到ETMVP则是对其在进行获取子块时域MV、以及预测过程中,同时添加BGC的信息,使得当前CU可以进行BGC过程。
具体地,经由BGC拓展后的ETMVP流程如下:
1)参考帧中找到当前CU的原始匹配块位置。
2)确定衍生匹配块的位置。
3)获取子块时域MV,同时获取该子块的BGC信息,若时域子块MV获取不到,则采用空域相邻左下角F块的BGC信息作为该子块的BGC信息。若仍无法获取BGC信息,则填0至BGC信息候选列表。
4)然后执行预测过程和BGC过程。对做运动补偿的CU子块,都会使用BGC候选列表填充的BGC信息,进行其运动补偿后的BGC过程。
5)运动信息保存,对于当前CU编码的预测模式完成后,会将该CU内所有4x4子块的运动信息保存到当前帧的运动信息地图;同时,BGC信息也会保存到当前帧的BGC信息地图,供后续CU编码使用。
6)运动信息更新到HMVP,当前CU编码的预测模式完成后,会将该CU的运动信息更新到HMVP的候选列表;同时,当前CU内某一个4x4块的BGC信息也会更新到HMVP的BGC信息候选列表。在当前实施例中,可以取CU的左上角第一个4x4子块的BGC信息进行更新。在其他实施例中也可以是右下最后一个4x4块,又或者选取CU内任意一个4x4块BGC信息。
在一实施例中,以一个B帧编码的16x16的编码块为例,其进行ETMVP预测模式时,结合BGC拓展方案如下:
1)参考帧中找到当前CU的原始匹配块位置:在list1的index0参考帧中找原始匹配块的位置。
2)确定衍生匹配块的位置:原始匹配块的位置只是n个时域块位置中的1个,还可以基于原始匹配块进行偏移衍生出最多4个时域块位置。这4个偏移矢量为:(8,0),(-8,0),(0,8),(0,-8)。判断可用性,将可用的偏移矢量(包括(0,0))放到一个列表中,顺序优先级为:(0,0),(0,8),(8,0),(0,-8),(-8,0)。然后根据可用的偏移矢量对原始匹配块进行偏移,在和原始匹配块的同一帧内得到最多4个衍生匹配块。
3)获取子块时域MV:遍历所有的匹配块(包括原始匹配块和衍生匹配块)。对每一个匹配块,都要划分为4*4的子块,对每一个子块,同样需要用上述的时域MV获取方法获取对应时域块位置,并在匹配块的同一帧中获取该时域块位置的MV作为当前块中当前子块对应的时域MV,同时,获取该时域子块的BGC信息。
若当前块中某一子块的时域MV获取不到,则用当前块空域相邻左下角位置的F块的MV(F块位置如下图,我们简称baseMV),缩放到参考帧列表中index0的参考帧后,作为该子块的MV。同时,获取该F块的BGC信息取代时域子块的BGC信息。若F块不存在或MV不可用,则此时子块默认填0,且bgc_flag和bgc_idx设置为0。
4)运动补偿:由于每个子块获取的MV可能不同,但是子块时域MV的获取根据上述时域MV获取方法得到的,按8*8子块为单元进行运动补偿。同时取左上的4x4块的BGC信息作为当前8x8子块的BGC信息,并进行运动补偿,并再根据BGC信息进行BGC过程,得到修正后的预测值。
5)运动信息保存:对于当前CU编码的预测模式完成后,会将该CU内所有4x4子块的运动信息保存到当前帧的运动信息地图;同时,BGC信息也会保存到当前帧的BGC信息地图,供后续CU编码使用。
6)运动信息更新到HMVP:当前CU编码的预测模式完成后,会将该CU的运动信息更新到HMVP的候选列表;同时,当前CU内某一个4x4块的BGC信息也会更新到HMVP的BGC信息候选列表。这里取CU的左上角第一个4x4子块的BGC信息进行更新。
本申请所提供的技术方案中,分别将BGC技术拓展到运动矢量角度预测模式、时域运动矢量预测模式或子块时域运动矢量预测模式、增强型时域运动矢量预测模式中等预测模式中的至少部分,通过获取当前编码块的至少一个候选运动信息和与候选运动信息对应的候选双向梯度修正信息,其中,候选双向梯度修正信息与候选运动信息自同一编码块获得,基于每个候选运动信息对当前编码块进行运动补偿以获取至少一个第一预测值;分别利用每个候选运动信息对应的候选双向梯度修正信息对第一预测值进行修正进而得到当前编码块的最终预测值,进而提升帧间预测的准确性,同时在本申请所提供的技术方案中通过将已编码(或已解码)的编码块的BGC信息保存以供后续编码块进行帧间预测时调用,使得解码端在解码时只需调用自身保存的对应帧的已解码的编码块的BGC信息即可,实现在编码过程中无需在编码端和解码端传输BGC信息的句法元素,在提高帧间预测准确性的同时无需改变码流数据的数量,进而在一定程度上提高了编码的准确度。
请参见图13,图13为本申请一种视频编解码系统一实施例中的结构示意图。在当前实施例中,本申请所提供的视频编解码系统1300包括耦接的处理器1301和存储器1302。其中,视频编解码系统1300可以执行图1至图12及其对应的任意一个实施例中所述的流体力学模拟的方法。
其中,存储器1302包括本地储存(图未示),且存储有计算机程序,计算机程序被执行时可以实现图1至图12及其所对应的任意一个实施例中所述的方法。
处理器1301与存储器1302耦接,处理器1301用于运行计算机程序,以执行如上图1至图12及其对应的任意一个实施例中所述的方法。
参见图14,图14为本申请一种计算机可读存储介质一实施例结构示意图。该计算机存储介质1400存储有能够被处理器运行的计算机程序1401,该计算机程序1401用于实现如上图1至图12及其对应的任意一个实施例中所描述的方法。具体地,上述存储介质1400可以是存储器、个人计算机、服务器、网络设备,或者U盘等其中的一种,具体在此不做任何限定。
以上所述仅为本申请的实施方式,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。

Claims (13)

1.一种帧间预测方法,其特征在于,所述方法包括:
获取当前编码块的至少一个候选运动信息和与所述候选运动信息对应的候选双向梯度修正信息,其中,所述候选双向梯度修正信息与所述候选运动信息自同一参考编码块获得;
基于每个所述候选运动信息对所述当前编码块进行运动补偿以获取至少一个第一预测值;
分别利用每个所述候选运动信息对应的所述候选双向梯度修正信息对所述第一预测值进行修正,以得到所述当前编码块的最终预测值。
2.根据权利要求1所述的方法,其特征在于,所述帧间预测方法是采用运动矢量角度预测模式,所述获取当前编码块的至少一个候选运动信息和与所述候选运动信息对应的候选双向梯度修正信息,进一步包括:
分别为每个预设角度方向构建所述当前编码块的运动信息候选列表和双向梯度修正信息候选列表;
其中,所述双向梯度修正信息候选列表中所包括的所述候选双向梯度修正信息的数量与所述运动信息候选列表所包括的所述候选运动信息的数量相等,所述预设角度方向包括水平向下、水平、水平向上、垂直和垂直向右中的至少一个。
3.根据权利要求2所述的方法,其特征在于,所述分别为每个预设角度方向构建所述当前编码块的运动信息候选列表和双向梯度修正信息候选列表,进一步包括:
按照所述预设角度方向确定所述当前编码块的空域邻块;
将每个所述空域邻块的空域运动信息作为所述候选运动信息,分别填至所述运动信息候选列表中与所述空域邻块对应的位置,进而构建得到所述预设角度方向的所述运动信息候选列表;其中,若所述空域邻块不可用,则将预设运动信息填至所述运动信息候选列表中与所述空域邻块对应的位置;
将每个所述空域邻块的空域双向梯度修正信息作为所述候选双向梯度修正信息,分别填至所述双向梯度修正信息候选列表中与所述空域邻块对应的位置,进而构建获得所述预设的角度方向的所述双向梯度修正信息候选列表;其中,若所述空域邻块不可用,则将预设双向梯度修正信息填至所述双向梯度修正信息候选列表中与所述空域邻块对应的位置。
4.根据权利要求3所述的方法,其特征在于,所述基于每个所述候选运动信息对所述当前编码块进行运动补偿以获取至少一个第一预测值,进一步包括:
为所述当前编码块中的每个第一预设尺寸子块分配对应的所述预设角度方向的运动信息候选列表中的候选运动信息;
利用所述当前编码块中的每个第一预设尺寸子块的候选运动信息,分别对所述每个第一预设尺寸子块进行运动补偿,以获取到每个第一预设尺寸子块的第一预测值;
所述分别利用每个所述候选运动信息对应的所述候选双向梯度修正信息对所述第一预测值执行修正过程,进一步包括:
为所述当前编码块中的每个第一预设尺寸子块分配对应的所述预设角度方向的双向梯度修正信息候选列表中的候选双向梯度修正信息;
利用所述当前编码块中的每个第一预设尺寸子块的候选双向梯度修正信息,分别对所述每个第一预设尺寸子块的第一预测值进行修正。
5.根据权利要求1所述的方法,其特征在于,所述帧间预测方法是采用时域运动矢量预测模式或子块时域运动矢量预测模式,所述获取当前编码块的至少一个候选运动信息和与所述候选运动信息对应的候选双向梯度修正信息,进一步包括:
构建所述当前编码块的运动信息候选列表和与所述运动信息候选列表对应的双向梯度修正信息候选列表;
获取所述当前编码块在参考帧中的时域同位块的运动信息和双向梯度修正信息,将所述时域同位块的运动信息作为所述候选运动信息对应填入至所述运动信息候选列表,将所述双向梯度修正信息作为所述候选双向梯度修正信息对应填入至所述双向梯度修正信息候选列表;
其中,若所述时域同位块的运动信息不可用,则将所述当前编码块的若干设定位置的空域相邻块运动信息的加权结果作为所述候选运动信息,对应填入所述运动信息候选列表的第一个位置;基于所述当前编码块的若干设定位置的空域相邻块的双向梯度修正信息确定所述候选双向梯度修正信息,并将其对应填写至所述双向梯度修正信息候选列表的第一个位置。
6.根据权利要求5所述的方法,其特征在于,所述基于所述当前编码块的若干设定位置的空域相邻块的双向梯度修正信息确定所述候选双向梯度修正信息,并将其对应填写至所述双向梯度修正信息候选列表的第一个位置,进一步包括:
若所述当前编码块的若干设定位置的空域相邻块的双向梯度修正信息均相等,则直接将所述当前编码块的若干设定位置的空域相邻块的双向梯度修正信息作为所述候选双向梯度修正信息填入所述双向梯度修正信息候选列表的第一个位置;
否则,将预设双向梯度修正信息填至所述双向梯度修正信息候选列表的第一个位置。
7.根据权利要求1所述的方法,其特征在于,所述帧间预测方法是采用增强型时域运动矢量预测模式,所述获取当前编码块的至少一个候选运动信息和与所述候选运动信息对应的候选双向梯度修正信息,进一步包括:
在参考帧中确定所述当前编码块的匹配块,所述匹配块包括原始匹配块和若干衍生匹配块,所述原始匹配块为参考帧中与当前编码块坐标相同的编码块,所述衍生匹配块为所述原始匹配块偏移衍生得到的时域块;
分别将所有所述匹配块划分成第二预设尺寸子块;
遍历每个匹配块中的每个第二预设尺寸子块,以获取所述第二预设尺寸子块所对应的时域块的所述运动信息和所述双向梯度修正信息,并将所述时域块的所述运动信息作为所述当前编码块中对应所述第二预设尺寸子块的所述候选运动信息,将所述时域块的所述双向梯度修正信息作为所述当前编码块中对应所述第二预设尺寸子块的所述候选双向梯度修正信息。
8.根据权利要求7所述的方法,其特征在于,若无法获取到所述子块对应的时域块的所述运动信息和/或所述双向梯度修正信息,则所述方法还包括:
获取位于所述当前编码块的左下角的邻块的运动信息,并缩放到参考帧后作为所述子块的所述候选运动信息;和/或
获取所述当前编码块的左下角的邻块的双向梯度修正信息并输出为所述子块的所述候选双向梯度修正信息;
若所述当前编码块的左下角的邻块不存在或运动信息不可用,则将预设运动信息输出为所述子块的所述候选运动信息,并将预设双向梯度修正信息输出为所述候选双向梯度修正信息。
9.根据权利要求1所述的方法,其特征在于,所述分别利用每个所述候选运动信息对应的所述双向梯度修正信息对所述第一预测值执行修正过程,以确定所述当前编码块的最终预测值之后,所述方法还包括:
将所述当前编码块内所有子块的运动信息保存至当前帧的运动信息地图,将所述当前编码块内所有子块的双向梯度修正信息保存至所述当前帧的双向梯度修正信息地图,其中,所述运动信息包括运动矢量信息和参考帧索引;和/或
将所述当前编码块的运动信息更新至HMVP的运动信息候选列表,并将所述当前编码块内的任意一个子块的双向梯度修正信息更新至所述HMVP的双向梯度修正信息候选列表,所述当前编码块的运动信息为与所述最终预测值对应的运动信息,所述子块的双向梯度修正信息为与所述最终预测值对应的所述双向梯度修正信息。
10.根据权利要求1所述的方法,其特征在于,所述方法用于对编码端进行帧间预测,所述分别利用每个所述候选运动信息对应的所述候选双向梯度修正信息对所述第一预测值进行修正,以得到所述当前编码块的最终预测值,进一步包括:
分别利用每个所述候选运动信息对应的所述候选双向梯度修正信息对对应的所述第一预测值进行修正,进而获取到第二预测值;
比较所有所述第二预测值的代价值,将代价值最小的第二预测值作为所述当前编码块的最终预测值。
11.根据权利要求10所述的方法,其特征在于,所述对编码端进行帧间预测的模式存在多种预测模式,所述比较所有所述第二预测值的代价值,将代价值最小的第二预测值输出为所述当前编码块的最终预测值,进一步包括:
比较所有所述第二预测值的代价值,并将最小代价值的所述第二预测值作为当前预测模式的预测值;
比较所有预测模式的预测值的代价值,并将所述代价值最小的预测模式的预测值输出为所述当前编码块的最终预测值。
12.一种视频编解码系统,其特征在于,所述视频编解码系统包括存储器和处理器;所述存储器中存储有计算机程序,所述处理器用于执行所述计算机程序以实现如权利要求1-11中任一项所述方法的步骤。
13.一种计算机可读存储介质,其特征在于,所述存储介质存储有能够被处理器运行的计算机程序,所述计算机程序被处理器执行时实现如权利要求1-11中任一项所述方法的步骤。
CN202011401872.0A 2020-12-02 2020-12-02 一种帧间预测方法、编解码系统及计算机可读存储介质 Active CN112565768B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011401872.0A CN112565768B (zh) 2020-12-02 2020-12-02 一种帧间预测方法、编解码系统及计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011401872.0A CN112565768B (zh) 2020-12-02 2020-12-02 一种帧间预测方法、编解码系统及计算机可读存储介质

Publications (2)

Publication Number Publication Date
CN112565768A CN112565768A (zh) 2021-03-26
CN112565768B true CN112565768B (zh) 2023-02-28

Family

ID=75048333

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011401872.0A Active CN112565768B (zh) 2020-12-02 2020-12-02 一种帧间预测方法、编解码系统及计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN112565768B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11582474B2 (en) * 2020-08-03 2023-02-14 Alibaba Group Holding Limited Systems and methods for bi-directional gradient correction
CN113382248B (zh) * 2021-04-20 2022-09-06 浙江大华技术股份有限公司 帧间预测值修正方法、编码器及计算机可读存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020096279A (ja) * 2018-12-12 2020-06-18 シャープ株式会社 予測画像生成装置、動画像復号装置および動画像符号化装置
CN111818342A (zh) * 2020-08-28 2020-10-23 浙江大华技术股份有限公司 帧间预测方法及预测装置
CN112004091A (zh) * 2020-07-31 2020-11-27 浙江大华技术股份有限公司 帧间预测方法及其相关装置
CN112004097A (zh) * 2020-07-30 2020-11-27 浙江大华技术股份有限公司 帧间预测方法、图像处理装置以及计算机可读存储介质

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108541375B (zh) * 2016-02-03 2022-04-12 夏普株式会社 运动图像解码装置、运动图像编码装置、以及预测图像生成装置
WO2018169099A1 (ko) * 2017-03-13 2018-09-20 엘지전자(주) 인터 예측 모드 기반 영상 처리 방법 및 이를 위한 장치

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020096279A (ja) * 2018-12-12 2020-06-18 シャープ株式会社 予測画像生成装置、動画像復号装置および動画像符号化装置
CN112004097A (zh) * 2020-07-30 2020-11-27 浙江大华技术股份有限公司 帧间预测方法、图像处理装置以及计算机可读存储介质
CN112004091A (zh) * 2020-07-31 2020-11-27 浙江大华技术股份有限公司 帧间预测方法及其相关装置
CN111818342A (zh) * 2020-08-28 2020-10-23 浙江大华技术股份有限公司 帧间预测方法及预测装置

Also Published As

Publication number Publication date
CN112565768A (zh) 2021-03-26

Similar Documents

Publication Publication Date Title
KR102436983B1 (ko) 비디오 신호 처리 방법 및 장치
JP7137008B2 (ja) 1つまたは複数のルックアップテーブルを使用して、以前コーディングされた動き情報を順に記憶させてそれらを後続のブロックのコーディングに使用する概念
CN110419220B (zh) 用于图像运动补偿的方法和装置
CN110809887B (zh) 用于多参考预测的运动矢量修正的方法和装置
TWI679879B (zh) 用於視訊編解碼的子預測單元時間運動向量預測
TW202025752A (zh) 用於仿射模式之以歷史為基礎之運動向量預測
JP2022501912A (ja) インター予測に基づいて、ビデオ信号を処理するための方法及び装置
CN110572645A (zh) 非对称加权双向预测Merge
KR102081945B1 (ko) 비디오 신호 처리 방법 및 장치
CN110740327B (zh) 一种处理视频数据的方法、装置和可读介质
CN105075265A (zh) 3d视频译码中针对跳过和直接模式的视差向量导出
KR20200051068A (ko) 움직임 정보 저장 방법 및 이를 이용한 시간적 움직임 벡터 예측자 유도 방법
KR20090046826A (ko) 신호처리방법 및 장치
MX2014000160A (es) Metodo y aparato para codificar informacion de movimento y metodo y aparato para decodificar la misma.
CN111357290A (zh) 视频图像处理方法与装置
WO2022104498A1 (zh) 帧内预测方法、编码器、解码器以及计算机存储介质
CN111818342B (zh) 帧间预测方法及预测装置
CN112055203B (zh) 帧间预测方法、视频编码方法及其相关装置
CN114503584A (zh) 基于历史的运动矢量预测
CN110677668A (zh) 空间运动压缩
CN112565768B (zh) 一种帧间预测方法、编解码系统及计算机可读存储介质
KR20200083357A (ko) 화면 간 예측 부호화 및 복호화 방법 및 장치
CN112055208A (zh) 视频编码方法、设备及存储装置
KR100794855B1 (ko) 이미지 정보 변이값의 예측 방법과 이를 이용한 다시점영상의 부호화/복호화 방법 및 장치
CN112565769B (zh) 块划分方法、帧间预测方法、视频编码方法及相关装置

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