CN116805969A - 视频编解码方法、装置、计算机可读介质及电子设备 - Google Patents

视频编解码方法、装置、计算机可读介质及电子设备 Download PDF

Info

Publication number
CN116805969A
CN116805969A CN202210260545.0A CN202210260545A CN116805969A CN 116805969 A CN116805969 A CN 116805969A CN 202210260545 A CN202210260545 A CN 202210260545A CN 116805969 A CN116805969 A CN 116805969A
Authority
CN
China
Prior art keywords
block
reference range
candidate
current block
vector
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.)
Pending
Application number
CN202210260545.0A
Other languages
English (en)
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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202210260545.0A priority Critical patent/CN116805969A/zh
Publication of CN116805969A publication Critical patent/CN116805969A/zh
Pending legal-status Critical Current

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/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
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • 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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • 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

Landscapes

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

Abstract

本申请的实施例提供了一种视频编解码方法、装置、计算机可读介质及电子设备。该视频解码方法包括:从码流中解码得到参考范围指示信息,所述参考范围指示信息用于指示帧内块复制模式所使用的目标参考范围,所述目标参考范围包括全局参考范围和局部参考范围中的至少一个;根据所述目标参考范围选择待解码的当前块的预测块矢量;基于所述当前块的预测块矢量对所述当前块进行解码处理。本申请实施例的技术方案可以针对不同的参考范围,选择对应的预测块矢量,进而可以提高块矢量预测的准确率,降低块矢量的编码代价,提升编码性能。

Description

视频编解码方法、装置、计算机可读介质及电子设备
技术领域
本申请涉及计算机及通信技术领域,具体而言,涉及一种视频编解码方法、装置、计算机可读介质及电子设备。
背景技术
在目前的音视频标准中,IBC(Intra Block Copy,帧内块复制)模式使用了全局参考范围的方案,即当前帧已重构的区域允许用作当前块的参考块。虽然在最新的音视频标准中也提出了IBC模式允许使用局部参考范围,但是默认的预测块矢量均指向全局参考范围,未考虑到当前块位于局部参考范围的情况,这种方式造成了较大的块矢量编码开销。
发明内容
本申请的实施例提供了一种视频编解码方法、装置、计算机可读介质及电子设备,进而至少在一定程度上可以针对不同的参考范围,选择对应的预测块矢量,进而可以提高块矢量预测的准确率,降低块矢量的编码代价,提升编码性能。
本申请的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本申请的实践而习得。
根据本申请实施例的一个方面,提供了一种视频解码方法,包括:从码流中解码得到参考范围指示信息,所述参考范围指示信息用于指示帧内块复制模式所使用的目标参考范围,所述目标参考范围包括全局参考范围和局部参考范围中的至少一个;根据所述目标参考范围选择待解码的当前块的预测块矢量;基于所述当前块的预测块矢量对所述当前块进行解码处理。
根据本申请实施例的一个方面,提供了一种视频编码方法,包括:在码流中编码参考范围指示信息,所述参考范围指示信息用于指示帧内块复制模式所使用的目标参考范围,所述目标参考范围包括全局参考范围和局部参考范围中的至少一个;根据所述目标参考范围选择待编码的当前块的预测块矢量;基于所述当前块的预测块矢量对所述当前块进行编码处理。
根据本申请实施例的一个方面,提供了一种视频解码装置,包括:解码单元,配置为从码流中解码得到参考范围指示信息,所述参考范围指示信息用于指示帧内块复制模式所使用的目标参考范围,所述目标参考范围包括全局参考范围和局部参考范围中的至少一个;第一选择单元,配置为根据所述目标参考范围选择待解码的当前块的预测块矢量;第一处理单元,配置为基于所述当前块的预测块矢量对所述当前块进行解码处理。
在本申请的一些实施例中,基于前述方案,所述参考范围指示信息包括第一标志位和第二标志位,所述第一标志位用于指示所述帧内块复制模式是否允许使用所述全局参考范围,所述第二标志位用于指示所述帧内块复制模式是否允许使用所述局部参考范围。
在本申请的一些实施例中,基于前述方案,所述参考范围指示信息包括第三标志位,所述第三标志位为第一值时,指示所述帧内块复制模式允许使用所述全局参考范围;所述第三标志位为第二值时,指示所述帧内块复制模式允许使用所述局部参考范围。
在本申请的一些实施例中,基于前述方案,所述参考范围指示信息包括第四标志位,所述第四标志位为第一值时,指示所述帧内块复制模式允许使用所述全局参考范围和所述局部参考范围;所述第四标志位为第二值时,指示所述帧内块复制模式允许使用所述局部参考范围。
在本申请的一些实施例中,基于前述方案,所述第一选择单元配置为:从设定的与所述目标参考范围相对应的预测块矢量集合中,选择至少一个预测块矢量作为待解码的当前块所对应的候选预测块矢量;根据所述当前块的位置信息和所述目标参考范围,从所述候选预测块矢量中选择所述当前块的预测块矢量。
在本申请的一些实施例中,基于前述方案,若所述目标参考范围为所述全局参考范围,则与所述目标参考范围相对应的预测块矢量集合包括所述全局参考范围对应的预测块矢量集合;若所述目标参考范围为所述局部参考范围,则与所述目标参考范围相对应的预测块矢量集合包括所述局部参考范围对应的预测块矢量集合;若所述目标参考范围为所述全局参考范围和所述局部参考范围,则与所述目标参考范围相对应的预测块矢量集合包括:所述全局参考范围对应的预测块矢量集合和所述局部参考范围对应的预测块矢量集合的并集。
在本申请的一些实施例中,基于前述方案,所述全局参考范围对应的预测块矢量集合包括以下预测块矢量中的至少一个:(-sb_w-D,0)、(0,-sb_h)、(sb_x-b_w-cur_x-D,0)、(0,sb_y-b_h-cur_y)、(-M×sb_w-D,-N×sb_h);
其中,sb_w表示所述当前块所在的最大编码块的宽度;sb_h表示所述当前块所在的最大编码块的高度;sb_x表示所述当前块所在的最大编码块的左上角横坐标;sb_y表示所述当前块所在的最大编码块的左上角纵坐标;b_w表示所述当前块的宽度;b_h表示所述当前块的高度;cur_x表示所述当前块的左上角横坐标;cur_y表示所述当前块的左上角纵坐标;D、M和N为设定的常数。
在本申请的一些实施例中,基于前述方案,所述局部参考范围对应的预测块矢量集合包括以下预测块矢量中的至少一个:(-b_w,0)、(0,-b_h)、(-b_w,-b_h)、(-2×b_w,0)、(0,-2×b_h)、(0,0)、(0,-vb_w)、(-vb_h,0)、(-vb_w,-vb_h);
其中,b_w表示所述当前块的宽度;b_h表示所述当前块的高度;vb_w表示预设的块宽度;vb_h表示预设的块高度。
在本申请的一些实施例中,基于前述方案,所述第一选择单元根据所述当前块的位置信息和所述目标参考范围,从所述候选预测块矢量中选择所述当前块的预测块矢量的过程,包括:根据所述当前块的位置信息和所述候选预测块矢量,确定所述当前块的候选参考块的位置信息;基于所述候选参考块的位置信息和所述目标参考范围之间的关系,从所述候选预测块矢量中选择所述当前块的预测块矢量。
在本申请的一些实施例中,基于前述方案,所述第一选择单元基于所述候选参考块的位置信息和所述目标参考范围之间的关系,从所述候选预测块矢量中选择所述当前块的预测块矢量的过程,包括:基于所述候选参考块的位置信息,确定处于所述目标参考范围之内的目标候选参考块;从所述目标候选参考块所对应的候选预测块矢量中,选择所述当前块的预测块矢量。
在本申请的一些实施例中,基于前述方案,基于所述候选参考块的位置信息,确定处于所述目标参考范围之内的目标候选参考块的过程,包括:若根据所述候选参考块的位置信息确定所述候选参考块满足以下条件中的任意一个,则将所述候选参考块作为所述目标候选参考块:
所述候选参考块的左上角横坐标大于或等于第一设定横坐标;
所述候选参考块的左上角纵坐标大于或等于第一设定纵坐标;
所述候选参考块的左上角横坐标大于或等于第一设定横坐标,且所述候选参考块的左上角纵坐标大于或等于第一设定纵坐标;
其中,若所述目标参考范围为全局参考范围,则所述第一设定横坐标与所述第一设定纵坐标为所述当前块所在片的左上角坐标;若所述目标参考范围为局部参考范围,则所述第一设定横坐标与所述第一设定纵坐标为所述当前块所在的局部参考范围的左上角坐标。
在本申请的一些实施例中,基于前述方案,基于所述候选参考块的位置信息,确定处于所述目标参考范围之内的目标候选参考块的过程,包括:若根据所述候选参考块的位置信息确定所述候选参考块满足以下条件中的任意一个,则将所述候选参考块作为所述目标候选参考块:
所述候选参考块的右下角横坐标小于或等于第二设定横坐标;
所述候选参考块的右下角纵坐标小于或等于第二设定纵坐标;
所述候选参考块的右下角横坐标小于或等于第二设定横坐标,且所述候选参考块的右下角纵坐标小于或等于第二设定纵坐标;
其中,若所述目标参考范围为全局参考范围,则所述第二设定横坐标与所述第二设定纵坐标为处于指定最大编码块所在行中的全局参考范围的右下角坐标,所述指定最大编码块为所述当前块所在的最大编码块;若所述目标参考范围为局部参考范围,则所述第二设定横坐标与所述第二设定纵坐标为所述当前块所在的局部参考范围的右下角坐标。
在本申请的一些实施例中,基于前述方案,从所述目标候选参考块所对应的候选预测块矢量中,选择所述当前块的预测块矢量的过程,包括:若所述目标候选参考块所对应的候选预测块矢量包括多个候选预测块矢量,则按照设定策略从所述多个候选预测块矢量中选择一个作为所述当前块的预测块矢量。
在本申请的一些实施例中,基于前述方案,若所述目标候选参考块所对应的候选预测块矢量包括多个候选预测块矢量,则从所述码流中解码得到预测块矢量指示信息,根据所述预测块矢量指示信息从所述多个候选预测块矢量中选择所述当前块的预测块矢量。
在本申请的一些实施例中,基于前述方案,从所述目标候选参考块所对应的候选预测块矢量中,选择所述当前块的预测块矢量的过程,包括:若所述目标候选参考块所对应的候选预测块矢量包括一个候选预测块矢量,则将所述一个候选预测块矢量作为所述当前块的预测块矢量。
在本申请的一些实施例中,基于前述方案,所述第一选择单元配置为:若基于所述候选参考块的位置信息确定不存在处于所述目标参考范围之内的目标候选参考块,则从所述当前块所对应的候选预测块矢量中选择一个作为所述当前块的预测块矢量。
在本申请的一些实施例中,基于前述方案,所述第一选择单元根据所述当前块的位置信息和所述目标参考范围,从所述候选预测块矢量中选择所述当前块的预测块矢量的过程,包括:按照所述候选预测块矢量的排列顺序依次进行判断,直至选择到满足以下任一条件的候选预测块矢量,或者剩下最后一个候选预测块矢量,将选择到的候选预测块矢量或剩下的最后一个候选预测块矢量作为所述当前块的预测块矢量:
cur_x+bvpi_x≥min_x;
cur_y+bvpi_y≥min_y;
cur_x+bvpi_x≥min_x且cur_y+bvpi_y≥min_y;
cur_x+b_w-1+bvpi_x≤max_x;
cur_y+b_h-1+bvpi_y≤max_y;
cur_x+b_w-1+bvpi_x≤max_x且cur_y+b_h-1+bvpi_y≤max_y;
其中,cur_x表示所述当前块的左上角横坐标;cur_y表示所述当前块的左上角纵坐标;b_w表示所述当前块的宽度;b_h表示所述当前块的高度;bvpi_x表示第i个候选预测块矢量的水平分量;bvpi_y表示第i个候选预测块矢量的竖直分量;若所述目标参考范围为全局参考范围,则min_x和min_y表示所述当前块所在片的左上角坐标,max_x和max_y表示处于指定最大编码块所在行中的全局参考范围的右下角坐标,所述指定最大编码块为所述当前块所在的最大编码块;若所述目标参考范围为局部参考范围,则min_x和min_y表示所述当前块所在的局部参考范围的左上角坐标,max_x和max_y表示所述当前块所在的局部参考范围的右下角坐标。
在本申请的一些实施例中,基于前述方案,所述第一处理单元配置为:将所述当前块的预测块矢量作为所述当前块的块矢量,以对所述当前块进行解码处理;或者
从所述码流中解码得到所述当前块的块矢量残差,根据所述块矢量残差和所述当前块的预测块矢量计算所述当前块的块矢量,根据所述当前块的块矢量对所述当前块进行解码处理。
根据本申请实施例的一个方面,提供了一种视频编码装置,包括:编码单元,配置为在码流中编码参考范围指示信息,所述参考范围指示信息用于指示帧内块复制模式所使用的目标参考范围,所述目标参考范围包括全局参考范围和局部参考范围中的至少一个;第二选择单元,配置为根据所述目标参考范围选择待编码的当前块的预测块矢量;第二处理单元,配置为基于所述当前块的预测块矢量对所述当前块进行编码处理。
根据本申请实施例的一个方面,提供了一种计算机可读介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上述实施例中所述的方法。
根据本申请实施例的一个方面,提供了一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述电子设备实现如上述实施例中所述的方法。
根据本申请实施例的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各种可选实施例中提供的方法。
在本申请的一些实施例所提供的技术方案中,通过从码流中解码得到参考范围指示信息,该参考范围指示信息用于指示帧内块复制模式所使用的目标参考范围,该目标参考范围包括全局参考范围和局部参考范围中的至少一个,然后根据目标参考范围选择待解码的当前块的预测块矢量,以基于当前块的预测块矢量对当前块进行解码处理,使得可以针对不同的参考范围,选择对应的预测块矢量,进而可以提高块矢量预测的准确率,降低块矢量的编码代价,提升编码性能。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1示出了可以应用本申请实施例的技术方案的示例性系统架构的示意图;
图2示出视频编码装置和视频解码装置在流式传输系统中的放置方式示意图;
图3示出了SB与B之间的关系示意图;
图4示出了一个视频编码器的基本流程图;
图5示出了帧间预测的示意图;
图6示出了帧内块复制的示意图;
图7示出了AV1中IBC的参考范围示意图;
图8示出了AV2中IBC的参考范围示意图;
图9示出了根据本申请的一个实施例的视频解码方法的流程图;
图10示出了根据本申请的一个实施例的根据目标参考范围选择待解码的当前块的预测块矢量的流程图;
图11示出了根据本申请的一个实施例的从候选预测块矢量中选择当前块的预测块矢量的流程图;
图12示出了根据本申请的一个实施例的视频编码方法的流程图;
图13示出了根据本申请的一个实施例的视频解码装置的框图;
图14示出了根据本申请的一个实施例的视频编码装置的框图;
图15示出了适于用来实现本申请实施例的电子设备的计算机系统的结构示意图。
具体实施方式
现在参考附图以更全面的方式描述示例实施方式。然而,示例的实施方式能够以各种形式实施,且不应被理解为仅限于这些范例;相反,提供这些实施方式的目的是使得本申请更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。
此外,本申请所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,有许多具体细节从而可以充分理解本申请的实施例。然而,本领域技术人员应意识到,在实施本申请的技术方案时可以不需用到实施例中的所有细节特征,可以省略一个或更多特定细节,或者可以采用其它的方法、元件、装置、步骤等。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
需要说明的是:在本文中提及的“多个”是指两个或两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
图1示出了可以应用本申请实施例的技术方案的示例性系统架构的示意图。
如图1所示,系统架构100包括多个终端装置,所述终端装置可通过例如网络150彼此通信。举例来说,系统架构100可以包括通过网络150互连的第一终端装置110和第二终端装置120。在图1的实施例中,第一终端装置110和第二终端装置120执行单向数据传输。
举例来说,第一终端装置110可对视频数据(例如由终端装置110采集的视频图片流)进行编码以通过网络150传输到第二终端装置120,已编码的视频数据以一个或多个已编码视频码流形式传输,第二终端装置120可从网络150接收已编码视频数据,对已编码视频数据进行解码以恢复视频数据,并根据恢复的视频数据显示视频图片。
在本申请的一个实施例中,系统架构100可以包括执行已编码视频数据的双向传输的第三终端装置130和第四终端装置140,所述双向传输比如可以发生在视频会议期间。对于双向数据传输,第三终端装置130和第四终端装置140中的每个终端装置可对视频数据(例如由终端装置采集的视频图片流)进行编码,以通过网络150传输到第三终端装置130和第四终端装置140中的另一终端装置。第三终端装置130和第四终端装置140中的每个终端装置还可接收由第三终端装置130和第四终端装置140中的另一终端装置传输的已编码视频数据,且可对已编码视频数据进行解码以恢复视频数据,并可根据恢复的视频数据在可访问的显示装置上显示视频图片。
在图1所示的实施例中,第一终端装置110、第二终端装置120、第三终端装置130和第四终端装置140可为服务器或者终端,但本申请公开的原理可不限于此。
服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content Delivery Network,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器。终端可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能语音交互设备、智能手表、智能家电、车载终端、飞行器等,但并不局限于此。
图1中所示的网络150表示在第一终端装置110、第二终端装置120、第三终端装置130和第四终端装置140之间传送已编码视频数据的任何数目的网络,包括例如有线和/或无线通信网络。通信网络150可在电路交换和/或分组交换信道中交换数据。该网络可包括电信网络、局域网、广域网和/或互联网。出于本申请的目的,除非在下文中有所解释,否则网络150的架构和拓扑对于本申请公开的操作来说可能是无关紧要的。
在本申请的一个实施例中,图2示出视频编码装置和视频解码装置在流式传输环境中的放置方式。本申请所公开主题可同等地适用于其它支持视频的应用,包括例如视频会议、数字TV(television,电视机)、在包括CD、DVD、存储棒等的数字介质上存储压缩视频等等。
流式传输系统可包括采集子系统213,采集子系统213可包括数码相机等视频源201,视频源创建未压缩的视频图片流202。在实施例中,视频图片流202包括由数码相机拍摄的样本。相较于已编码的视频数据204(或已编码的视频码流204),视频图片流202被描绘为粗线以强调高数据量的视频图片流,视频图片流202可由电子装置220处理,电子装置220包括耦接到视频源201的视频编码装置203。视频编码装置203可包括硬件、软件或软硬件组合以实现或实施如下文更详细地描述的所公开主题的各方面。相较于视频图片流202,已编码的视频数据204(或已编码的视频码流204)被描绘为细线以强调较低数据量的已编码的视频数据204(或已编码的视频码流204),其可存储在流式传输服务器205上以供将来使用。一个或多个流式传输客户端子系统,例如图2中的客户端子系统206和客户端子系统208,可访问流式传输服务器205以检索已编码的视频数据204的副本207和副本209。客户端子系统206可包括例如电子装置230中的视频解码装置210。视频解码装置210对已编码的视频数据的传入副本207进行解码,且产生可在显示器212(例如显示屏)或另一呈现装置上呈现的输出视频图片流211。在一些流式传输系统中,可根据某些视频编码/压缩标准对已编码的视频数据204、视频数据207和视频数据209(例如视频码流)进行编码。
应注意,电子装置220和电子装置230可包括图中未示出的其它组件。举例来说,电子装置220可包括视频解码装置,且电子装置230还可包括视频编码装置。
在本申请的一个实施例中,以国际视频编码标准HEVC(High Efficiency VideoCoding,高效率视频编码)、VVC(Versatile Video Coding,多功能视频编码),以及中国国家视频编码标准AVS为例,当输入一个视频帧图像之后,会根据一个块大小,将视频帧图像划分成若干个不重叠的处理单元,每个处理单元将进行类似的压缩操作。这个处理单元被称作CTU(Coding Tree Unit,编码树单元),或者称之为LCU(Largest Coding Unit,最大编码单元)。CTU再往下可以继续进行更加精细的划分,得到一个或多个基本的编码单元CU(Coding Unit,编码单元),CU是一个编码环节中最基本的元素。
在另一个实施例中,这个处理单元也可以被称作编码片(即Tile),是可以独立解码和编码的多媒体数据帧的矩形区域。其中,编码片再往下可以继续进行更加精细的划分,得到一个或多个最大编码块(Superblock,简称SB),SB是块划分的起点,可以继续划分为多个子块,然后最大编码块再往下划分,得到一个或多个块(Block)。每个块是一个编码环节中最基本的元素。可选地,SB与块(B)之间的关系可如图3所示,即一个SB可以包含若干个B。
以下介绍编码过程中的一些概念:
预测编码(Predictive Coding):预测编码包括了帧内预测和帧间预测等方式,原始视频信号经过选定的已重建视频信号的预测后,得到残差视频信号。编码端需要为当前编码单元(或编码块)决定选择哪一种预测编码模式,并告知解码端。其中,帧内预测是指预测的信号来自于同一图像内已经编码重建过的区域;帧间预测是指预测的信号来自已经编码过的、不同于当前图像的其它图像(称之为参考图像)。
变换及量化(Transform&Quantization):残差视频信号经过DFT(DiscreteFourier Transform,离散傅里叶变换)、DCT(Discrete Cosine Transform,离散余弦变换)等变换操作后,将信号转换到变换域中,称之为变换系数。变换系数进一步进行有损的量化操作,丢失掉一定的信息,使得量化后的信号有利于压缩表达。在一些视频编码标准中,可能有多于一种变换方式可以选择,因此编码端也需要为当前编码单元(或编码块)选择其中的一种变换方式,并告知解码端。量化的精细程度通常由量化参数(QuantizationParameter,简称QP)来决定,QP取值较大,表示更大取值范围的系数将被量化为同一个输出,因此通常会带来更大的失真及较低的码率;相反,QP取值较小,表示较小取值范围的系数将被量化为同一个输出,因此通常会带来较小的失真,同时对应较高的码率。
熵编码(Entropy Coding)或统计编码:量化后的变换域信号将根据各个值出现的频率进行统计压缩编码,最后输出二值化(0或者1)的压缩码流。同时,编码产生其他信息,例如选择的编码模式、运动矢量数据等,也需要进行熵编码以降低码率。统计编码是一种无损的编码方式,可以有效的降低表达同样信号所需要的码率,常见的统计编码方式有变长编码(Variable Length Coding,简称VLC)或者基于上下文的二值化算术编码(ContentAdaptive Binary Arithmetic Coding,简称CABAC)。
基于上下文的二值化算术编码(CABAC)过程主要包含3个步骤:二值化、上下文建模和二进制算术编码。在对输入的语法元素进行二值化处理后,可以通过常规编码模式和旁路编码模式(Bypass Coding Mode)对二元数据进行编码。旁路编码模式无须为每个二元位分配特定的概率模型,输入的二元位bin值直接用一个简单的旁路编码器进行编码,以加快整个编码以及解码的速度。一般情况下,不同的语法元素之间并不是完全独立的,且相同语法元素自身也具有一定的记忆性。因此,根据条件熵理论,利用其他已编码的语法元素进行条件编码,相对于独立编码或者无记忆编码能够进一步提高编码性能。这些用来作为条件的已编码符号信息称为上下文。在常规编码模式中,语法元素的二元位顺序地进入上下文模型器,编码器根据先前编码过的语法元素或二元位的值,为每一个输入的二元位分配合适的概率模型,该过程即为上下文建模。通过ctxIdxInc(context index increment,上下文索引增量)和ctxIdxStart(context index Start,上下文起始索引)即可定位到语法元素所对应的上下文模型。将bin值和分配的概率模型一起送入二元算术编码器进行编码后,需要根据bin值更新上下文模型,也就是编码中的自适应过程。
环路滤波(Loop Filtering):经过变化及量化的信号会通过反量化、反变换及预测补偿的操作获得重建图像。重建图像与原始图像相比由于存在量化的影响,部分信息与原始图像有所不同,即重建图像会产生失真(Distortion)。因此,可以对重建图像进行滤波操作,例如去块效应滤波(Deblocking filter,简称DB)、SAO(Sample Adaptive Offset,自适应像素补偿)或者ALF(Adaptive Loop Filter,自适应环路滤波)等滤波器,可以有效降低量化所产生的失真程度。由于这些经过滤波后的重建图像将作为后续编码图像的参考来对将来的图像信号进行预测,因此上述的滤波操作也被称为环路滤波,即在编码环路内的滤波操作。
在本申请的一个实施例中,图4示出了一个视频编码器的基本流程图,在该流程中以帧内预测为例进行说明。其中,原始图像信号sk[x,y]与预测图像信号做差值运算,得到残差信号uk[x,y],残差信号uk[x,y]经过变换及量化处理之后得到量化系数,量化系数一方面通过熵编码得到编码后的比特流,另一方面通过反量化及反变换处理得到重构残差信号u'k[x,y],预测图像信号/>与重构残差信号u'k[x,y]叠加生成图像信号图像信号/>一方面输入至帧内模式决策模块和帧内预测模块进行帧内预测处理,另一方面通过环路滤波输出重建图像信号s'k[x,y],重建图像信号s'k[x,y]可以作为下一帧的参考图像进行运动估计及运动补偿预测。然后基于运动补偿预测的结果s'r[x+mx,y+my]和帧内预测结果/>得到下一帧的预测图像信号/>并继续重复上述过程,直至编码完成。
基于上述的编码过程,在解码端针对每一个编码单元(或编码块),在获取到压缩码流(即比特流)之后,进行熵解码获得各种模式信息及量化系数。然后量化系数经过反量化及反变换处理得到残差信号。另一方面,根据已知的编码模式信息,可获得该编码单元(或编码块)对应的预测信号,然后将残差信号与预测信号相加之后即可得到重建信号,重建信号再经过环路滤波等操作,产生最终的输出信号。
目前主流的视频编码标准(如HEVC、VVC、AVS3、AV1、AV2),均采用基于块的混合编码框架。具体是将原始的视频数据分成一系列的编码块,结合预测、变换和熵编码等视频编码方法,实现视频数据的压缩。其中,运动补偿是视频编码常用的一类预测方法,运动补偿基于视频内容在时域或空域的冗余特性,从已编码的区域导出当前编码块的预测值。这类预测方法包括:帧间预测、帧内块复制预测、帧内串复制预测等,在具体的编码实现中,可能单独或组合使用这些预测方法。对于使用了这些预测方法的编码块,通常需要在码流中显式或隐式的编码一个或多个二维的位移矢量,指示当前块(或当前块的同位块)相对它的一个或多个参考块的位移。
其中,AV1的全称为Alliance for Open Media Video 1,是由开放媒体联盟制定的第一代视频编码标准;AV2的全称为Alliance for Open Media Video 2,是由开放媒体联盟制定的第二代视频编码标准。
需要注意的是,在不同的预测模式及不同的实现下,位移矢量可能有不同的名称,本申请的实施例中统一按照以下方式进行描述:1)帧间预测中的位移矢量称为运动位移矢量(Motion Vector,简称MV);2)帧内块复制中的位移矢量称为块位移矢量(Block Vector,简称BV);3)帧内串复制中的位移矢量称为串位移矢量(String Vector,简称SV)。以下对帧间预测和帧内块复制预测中相关的技术进行介绍。
如图5所示,帧间预测利用视频时间域的相关性,使用邻近已编码图像的像素预测当前图像的像素,以达到有效去除视频时域冗余的目的,能够有效节省编码残差数据的比特。其中,P表示当前帧,Pr表示参考帧,B表示当前编码块,Br表示B的参考块。B'在参考帧中的坐标与B在当前帧中的坐标位置相同,Br的坐标为(xr,yr),B'的坐标为(x,y),当前编码块与其参考块之间的位移称为运动向量(即MV),其中,MV=(xr-x,yr-y)。
考虑到时域或空域邻近块具有较强的相关性,可以采用MV预测技术进一步减少编码MV所需要的比特。在H.265/HEVC中,帧间预测包含Merge和AMVP(Advanced MotionVector Prediction,高级运动矢量预测)两种MV预测技术。Merge模式会为当前PU(prediction unit,预测单元)建立一个MV候选列表,其中存在5个候选MV(及其对应的参考图像)。遍历这5个候选MV,选取率失真代价最小的作为最优MV。若编解码器依照相同的方式建立候选列表,则编码器只需要传输最优MV在候选列表中的索引即可。需要注意的是,HEVC的MV预测技术还有一种skip模式,是Merge模式的一种特例,通过Merge模式找到最优MV后,如果当前块和参考块基本一样,那么不需要传输残差数据,只需要传送MV的索引和一个skip flag即可。
类似的,AMVP模式利用空域和时域邻近块的MV相关性,为当前PU建立候选预测MV列表。与Merge模式不同,AMVP模式候选预测MV列表中选择最优的预测MV,与当前编码块通过运动搜索得到的最优MV进行差分编码,即编码MVD=MV-MVP;解码端通过建立相同的列表,仅需要MVD(Motion Vector Difference,运动位移矢量残差)与MVP(Motion VectorPredictor,预测运动矢量)在该列表中的序号即可计算当前编码块的MV。AMVP候选MV列表也包含空域和时域两种情形,不同的是AMVP列表长度仅为2。
帧内块复制是HEVC屏幕内容编码(Screen Content Coding,简称SCC)扩展中采纳的一种编码工具,它显著提升了屏幕内容的编码效率。在AVS3和VVC中,也采纳了IBC技术以提升屏幕内容编码的性能,IBC利用屏幕内容视频在空间的相关性,使用当前图像上已编码图像的像素预测当前待编码块的像素,能够有效节省编码像素所需的比特。如图6所示,在IBC中当前块与其参考块之间的位移称为块位移矢量(Block Vector,简称BV)。
在目前的AV1标准中,IBC模式使用了全局参考范围的方案,即当前帧已重构的区域允许用作当前块的参考块。但是由于IBC使用片外存储器存储参考样本,需要增加了下列限制以解决IBC潜在的硬件实现问题:
1)如果当前图像允许使用IBC模式,则环路滤波器将被禁用,从而避免增加额外的图像存储需求,而为了降低环路滤波器关闭带来的影响,IBC模式仅允许在关键帧中使用。
2)参考块的位置需要满足硬件回写时延限制,比如当前块水平方向上的256个已重建样本的区域不允许用作参考块。
3)参考块的位置需要满足并行处理的限制。
具体可以参考图7所示的目前AV1标准中IBC参考范围的示意图,其中SB的大小为128×128,编码器按SB行进行并行编码,当前块水平方向上的256个已重建样本的区域(即两个SB大小)不允许用作参考块。
在目前正在研发的AOM(Alliance for Open Media,开放媒体联盟)下一代标准AV2中,IBC模式得到进一步的改进。如图8所示,在AV2中,IBC的参考范围由两部分组成,分别称为全局参考范围和局部参考范围。其中,全局参考范围为AV1中允许的参考范围;局部参考范围为新增的参考范围,其大小为64×64(即当前块所在的SB区域),该参考范围的像素样本存储在额外的片上存储器中,因此在仅使用该参考范围时不需要禁用环路滤波器。同时,根据帧类型的不同,IBC允许使用不同的参考范围,比如对于关键帧,IBC允许使用全局参考范围和局部参考范围,对于非关键帧IBC仅允许使用局部参考范围。
由于AV2允许使用不同类型的参考范围,那么当参考块位于不同类型的参考范围内时,块矢量的数值具有较大的变化。例如,当参考块位于局部参考范围内时,块矢量的绝对值将小于64;而当参考块位于全局参考范围时,块矢量的绝对值均大于64。但是,在当前版本的AV2中,默认预测块矢量均指向全局参考范围,未考虑到当前块位于局部参考范围的情况。对于局部参考范围内的参考块,默认预测块矢量不能提供较好的预测,将导致较大的块矢量编码开销。因此,有必要根据参考范围的不同,设计相应的块矢量预测方法,以提高块矢量预测的准确率,降低块矢量的编码代价,提升编码性能。
以下对本申请实施例的技术方案的实现细节进行详细阐述:
图9示出了根据本申请的一个实施例的视频解码方法的流程图,该视频解码方法可以由具有计算处理功能的设备来执行,比如可以由终端设备或服务器来执行。参照图9所示,该视频解码方法至少包括如下步骤:
步骤S910,从码流中解码得到参考范围指示信息,该参考范围指示信息用于指示帧内块复制模式所使用的目标参考范围,该目标参考范围包括全局参考范围和局部参考范围中的至少一个;
步骤S920,根据目标参考范围选择待解码的当前块的预测块矢量;
步骤S930,基于当前块的预测块矢量对当前块进行解码处理。
图9所示实施例的技术方案可以针对不同的参考范围,选择对应的预测块矢量,进而可以提高块矢量预测的准确率,降低块矢量的编码代价,提升编码性能。
需要说明的是:图9所示实施例的技术方案可以用于“默认”的预测块矢量的导出,即在通过标准中固定的规则导出当前块的预测块矢量的各分量均为0时,才使用图9所示的方法导出预测块矢量。当然,在本申请的其它实施例中,也可以直接使用图9所示实施例的技术方案。
以下对图9中所示的步骤S910至步骤S930的实现细节进行详细阐述:
在步骤S910中,从码流中解码得到参考范围指示信息,该参考范围指示信息用于指示帧内块复制模式所使用的目标参考范围,该目标参考范围包括全局参考范围和局部参考范围中的至少一个。
在一些可选的实施例中,参考范围指示信息可以通过两个标志位来实现,比如参考范围指示信息可以包括第一标志位和第二标志位,第一标志位用于指示帧内块复制模式是否允许使用全局参考范围,第二标志位用于指示帧内块复制模式是否允许使用局部参考范围。
可选地,比如若第一标志位的值为1,则表示帧内块复制模式允许使用全局参考范围;第一标志位的值为0,则表示帧内块复制模式不允许使用全局参考范围。若第二标志位的值为1,则表示帧内块复制模式允许使用局部参考范围;第二标志位的值为0,则表示帧内块复制模式不允许使用局部参考范围。
在一些可选的实施例中,参考范围指示信息可以通过一个标志位来实现,比如在一个实施例中,参考范围指示信息可以包括第三标志位,第三标志位为第一值(比如1)时,指示帧内块复制模式允许使用全局参考范围;第三标志位为第二值(比如0)时,指示帧内块复制模式允许使用局部参考范围。
在另一个实施例中,参考范围指示信息可以包括第四标志位,第四标志位为第一值(比如1)时,指示帧内块复制模式允许使用全局参考范围和局部参考范围;第四标志位为第二值(比如0)时,指示帧内块复制模式允许使用局部参考范围。
在步骤S920中,根据目标参考范围选择待解码的当前块的预测块矢量。
在本申请的一个实施例中,视频图像帧序列包括了一系列图像,每张图像可以被进一步划分为条带(Slice),条带又可以划分为一系列的LCU(或CTU)或者片(Tile),LCU包含有若干CU。视频图像帧在编码时是以块为单位进行编码处理,在一些新的视频编码标准中,比如在H.264标准中有宏块(macroblock,MB),宏块可进一步划分成多个可用于预测编码的预测块(prediction)。在HEVC标准中,采用编码单元CU、预测单元(prediction unit,PU)和变换单元(transform unit,TU)等基本概念,从功能上划分了多种块单元,并采用全新的基于树的结构进行描述。比如CU可以按照四叉树划分为更小的CU,而更小的CU还可以继续划分,从而形成一种四叉树结构。本申请实施例中的块可以是CU,或者是比CU更小的块,如对CU进行划分得到的更小的块。
在本申请的一个实施例中,如图10所示,根据目标参考范围选择待解码的当前块的预测块矢量的过程,可以包括如下步骤:
步骤S1010,从设定的与目标参考范围相对应的预测块矢量集合中,选择至少一个预测块矢量作为待解码的当前块所对应的候选预测块矢量。
在本申请的一个实施例中,若目标参考范围为全局参考范围,则与目标参考范围相对应的预测块矢量集合包括全局参考范围对应的预测块矢量集合。
在本申请的一个实施例中,若目标参考范围为局部参考范围,则与目标参考范围相对应的预测块矢量集合包括局部参考范围对应的预测块矢量集合。
在本申请的一个实施例中,若目标参考范围为全局参考范围和局部参考范围,则与目标参考范围相对应的预测块矢量集合包括:全局参考范围对应的预测块矢量集合和局部参考范围对应的预测块矢量集合的并集。
在一些可选的实施例中,全局参考范围对应的预测块矢量集合包括以下预测块矢量中的至少一个:(-sb_w-D,0)、(0,-sb_h)、(sb_x-b_w-cur_x-D,0)、(0,sb_y-b_h-cur_y)、(-M×sb_w-D,-N×sb_h)。可选地,这些块矢量的精度可以是整像素级的,具体实现时可以使用不同精度的表示方式。
其中,sb_w表示当前块所在的最大编码块的宽度;sb_h表示当前块所在的最大编码块的高度;sb_x表示当前块所在的最大编码块的左上角横坐标;sb_y表示当前块所在的最大编码块的左上角纵坐标;b_w表示当前块的宽度;b_h表示当前块的高度;cur_x表示当前块的左上角横坐标;cur_y表示当前块的左上角纵坐标;D、M和N为设定的常数。
在一些可选的实施例中,局部参考范围对应的预测块矢量集合包括以下预测块矢量中的至少一个:(-b_w,0)、(0,-b_h)、(-b_w,-b_h)、(-2×b_w,0)、(0,-2×b_h)、(0,0)、(0,-vb_w)、(-vb_h,0)、(-vb_w,-vb_h);其中,b_w表示当前块的宽度;b_h表示当前块的高度;vb_w表示预设的块宽度,比如可以是64、32、16、8或4;vb_h表示预设的块高度,比如可以是64、32、16、8或4。可选地,这些块矢量的精度可以是整像素级的,具体实现时可以使用不同精度的表示方式。
步骤S1020,根据当前块的位置信息和目标参考范围,从候选预测块矢量中选择当前块的预测块矢量。
在本申请的一个实施例中,步骤S1020中根据当前块的位置信息和目标参考范围,从候选预测块矢量中选择当前块的预测块矢量的过程,可以包括图11中所示的步骤S1110和步骤S1120,详细说明如下:
在步骤S1110中,根据当前块的位置信息和候选预测块矢量,确定当前块的候选参考块的位置信息。
可选地,当前块的位置信息可以是当前块在像素坐标系中的坐标,那么可以根据该坐标与候选预测块矢量,确定当前块的候选参考块的位置信息。比如根据当前块的横坐标与一个候选预测块矢量的水平分量,计算得到对应的一个候选参考块的横坐标;根据当前块的纵坐标与一个候选预测块矢量的竖直分量,计算得到对应的一个候选参考块的纵坐标。
在步骤S1120中,基于候选参考块的位置信息和目标参考范围之间的关系,从候选预测块矢量中选择当前块的预测块矢量。
在本申请的一个实施例中,步骤S1120中基于候选参考块的位置信息和目标参考范围之间的关系,从候选预测块矢量中选择当前块的预测块矢量的过程,具体可以是基于候选参考块的位置信息,确定处于目标参考范围之内的目标候选参考块,然后从目标候选参考块所对应的候选预测块矢量中,选择当前块的预测块矢量。
在一些可选的实施例中,如果根据候选参考块的位置信息确定候选参考块满足以下条件中的任意一个,则可以将该候选参考块作为处于目标参考范围之内的目标候选参考块:
候选参考块的左上角横坐标大于或等于第一设定横坐标;
候选参考块的左上角纵坐标大于或等于第一设定纵坐标;
候选参考块的左上角横坐标大于或等于第一设定横坐标,且候选参考块的左上角纵坐标大于或等于第一设定纵坐标;
其中,若目标参考范围为全局参考范围,则第一设定横坐标与第一设定纵坐标为当前块所在片的左上角坐标;若目标参考范围为局部参考范围,则第一设定横坐标与第一设定纵坐标为当前块所在的局部参考范围的左上角坐标。
在一些可选的实施例中,如果根据候选参考块的位置信息确定候选参考块满足以下条件中的任意一个,则可以将该候选参考块作为处于目标参考范围之内的目标候选参考块:
候选参考块的右下角横坐标小于或等于第二设定横坐标;
候选参考块的右下角纵坐标小于或等于第二设定纵坐标;
候选参考块的右下角横坐标小于或等于第二设定横坐标,且候选参考块的右下角纵坐标小于或等于第二设定纵坐标;
其中,若目标参考范围为全局参考范围,则第二设定横坐标与第二设定纵坐标为处于指定最大编码块所在行中的全局参考范围的右下角坐标,指定最大编码块为当前块所在的最大编码块;若目标参考范围为局部参考范围,则第二设定横坐标与第二设定纵坐标为当前块所在的局部参考范围的右下角坐标。
在本申请的一个实施例中,如果处于目标参考范围之内的目标候选参考块所对应的候选预测块矢量包括多个候选预测块矢量,那么可以按照设定策略从多个候选预测块矢量中选择一个作为当前块的预测块矢量。比如按照排列顺序,选择正序或逆序的第K1个作为当前块的预测块矢量,K1为一个预设整数,例如选择第一个满足候选预测块矢量作为当前块的预测块矢量。
在本申请的一个实施例中,如果处于目标参考范围之内的目标候选参考块所对应的候选预测块矢量包括多个候选预测块矢量,那么也可以从码流中解码得到预测块矢量指示信息,然后根据预测块矢量指示信息从多个候选预测块矢量中选择当前块的预测块矢量。比如,如果从码流中解码得到的预测块矢量指示信息指示选择第2个,那么可以从这多个候选预测块矢量中选择第2个预测块矢量作为当前块的预测块矢量。
在本申请的一个实施例中,如果处于目标参考范围之内的目标候选参考块所对应的候选预测块矢量包括一个候选预测块矢量,那么可以直接将这一个候选预测块矢量作为当前块的预测块矢量。
在本申请的一个实施例中,如果基于候选参考块的位置信息确定不存在处于目标参考范围之内的目标候选参考块,那么可以从当前块所对应的候选预测块矢量中选择一个作为当前块的预测块矢量。比如按照排列顺序,选择正序或逆序的第K2个作为当前块的预测块矢量,K2为一个预设整数,例如选择最后一个候选预测块矢量作为当前块的预测块矢量。或者也可以随机进行选择。
在本申请的一个实施例中,步骤S1020中根据当前块的位置信息和目标参考范围,从候选预测块矢量中选择当前块的预测块矢量的过程,也可以是按照候选预测块矢量的排列顺序依次进行判断,直至选择到满足以下任一条件的候选预测块矢量,或者剩下最后一个候选预测块矢量,将选择到的候选预测块矢量或剩下的最后一个候选预测块矢量作为当前块的预测块矢量:
cur_x+bvpi_x≥min_x;
cur_y+bvpi_y≥min_y;
cur_x+bvpi_x≥min_x且cur_y+bvpi_y≥min_y;
cur_x+b_w-1+bvpi_x≤max_x;
cur_y+b_h-1+bvpi_y≤max_y;
cur_x+b_w-1+bvpi_x≤max_x且cur_y+b_h-1+bvpi_y≤max_y;
其中,cur_x表示当前块的左上角横坐标;cur_y表示当前块的左上角纵坐标;b_w表示当前块的宽度;b_h表示当前块的高度;bvpi_x表示第i个候选预测块矢量的水平分量;bvpi_y表示第i个候选预测块矢量的竖直分量;若目标参考范围为全局参考范围,则min_x和min_y表示当前块所在片的左上角坐标,max_x和max_y表示处于指定最大编码块所在行中的全局参考范围的右下角坐标,指定最大编码块为当前块所在的最大编码块;若目标参考范围为局部参考范围,则min_x和min_y表示当前块所在的局部参考范围的左上角坐标,max_x和max_y表示当前块所在的局部参考范围的右下角坐标。
具体而言,以2个候选预测块矢量bvp1,bvp2为例进行说明:
如果cur_x+bvp1_x<min_x,则说明bvp1不符合条件,进而可以使用bvp2作为当前块的预测块矢量;或者
如果cur_y+bvp1_y<min_y,则说明bvp1不符合条件,进而可以使用bvp2作为当前块的预测块矢量。
类似地,如果有3个候选预测块矢量bvp1、bvp2和bvp3,那么若bvp1不符合条件,而bvp2符合条件,则可以使用bvp2作为当前块的预测块矢量。如果bvp1和bvp2均不符合条件,那么可以使用bvp3作为当前块的预测块矢量。
继续参照图9所示,在步骤S930中,基于当前块的预测块矢量对当前块进行解码处理。
在本申请的一个实施例中,步骤S930中基于当前块的预测块矢量对当前块进行解码处理的过程可以是将当前块的预测块矢量作为当前块的块矢量,以对当前块进行解码处理。
在本申请的一个实施例中,步骤S930中基于当前块的预测块矢量对当前块进行解码处理的过程可以是从码流中解码得到当前块的块矢量残差,根据块矢量残差和当前块的预测块矢量计算当前块的块矢量,根据当前块的块矢量对当前块进行解码处理。
图12示出了根据本申请的一个实施例的视频编码方法的流程图,该视频编码方法可以由具有计算处理功能的设备来执行,比如可以由终端设备或服务器来执行。参照图12所示,该视频编码方法至少包括步骤S1210至步骤S1230,详细介绍如下:
在步骤S1210中,在码流中编码参考范围指示信息,该参考范围指示信息用于指示帧内块复制模式所使用的目标参考范围,该目标参考范围包括全局参考范围和局部参考范围中的至少一个。
在步骤S1220中,根据目标参考范围选择待编码的当前块的预测块矢量。
在步骤S1230中,基于当前块的预测块矢量对当前块进行编码处理。
需要说明的是:图12中所示的视频编码方法中的实现细节与前述实施例中所述的视频解码方法的实现细节类似,不再赘述。
总体而言,本申请的实施例提供了一种基于参考范围类型的默认预测块矢量导出方法,该方法根据当前帧所允许的IBC参考范围类型,自适应地选择合适的默认预测块矢量导出方法。本申请实施例中涉及到的方法既可以单独使用,也可以组合起来一起使用。
为便于说明,在下文中,(cur_x,cur_y)表示当前块的左上角坐标;b_w和b_h分别为当前块的宽和高;(sb_x,sb_y)分别为当前块所在SB的左上角坐标;sb_w和sb_h分别为当前块所在SB的宽和高;(tile_x,tile_y)分别为当前tile左上角的坐标。以下以解码端为例进行说明:
假设存在预测块矢量集合global_bvp和local_bvp,global_bvp对应于IBC的全局参考范围,local_bvp对应于IBC的局部参考范围。
在一些可选的实施例中,global_bvp可以设置为以下中的任意一个:(-sb_w-D,0)、(0,-sb_h)、(-M×sb_w-D,-N×sb_h),D是为了满足硬件回写时延的样本数量,D的值可以设置为64的整数倍,比如可以设置为256;M和N为设定的常数,比如可以是1、2等。
在一些可选的实施例中,global_bvp可以指向上方或者左方相邻SB中的位置,例如可以是(sb_x-b_w-cur_x-D,0)、(0,sb_y-b_h-cur_y)等。
在一些可选的实施例中,local_bvp可以为(-b_w,0)、(0,-b_h)、(-b_w,-b_h)、(-2×b_w,0)、(0,-2×b_h)、(0,0)、(0,-vb_w)、(-vb_h,0)、(-vb_w,-vb_h)等数值;vb_w表示预设的块宽度,比如可以是64、32、16、8或4;vb_h表示预设的块高度,比如可以是64、32、16、8或4。
在本申请的一个实施例中,码流中可以设置2个图像级或者片级的标志allowed_global_intrabc和allowed_local_intrabc,以分别指示当前图像或者当前片中的块是否允许使用全局参考范围或局部参考范围。比如,若allowed_global_intrabc的值为1,则指示允许使用全局参考范围;若allowed_global_intrabc的值为0,则指示不允许使用全局参考范围。若allowed_local_intrabc的值为1,则指示允许使用局部参考范围;若allowed_local_intrabc的值为0,则指示不允许使用局部参考范围。
在一些可选的实施例中,码流中也可以设置1个图像级或者片级的标志,如果该标志的值为1,则指示允许使用全局参考范围,或指示允许使用全局参考范围和局部参考范围;如果该标志的值为0,则指示允许使用局部参考范围。
在本申请的一个实施例中,可以根据允许的参考范围类型确认默认预测块矢量所属集合,具体而言,如果仅允许使用全局参考范围,则默认预测块矢量为global_bvp的子集;如果仅允许使用局部参考范围,则默认预测块矢量为local_bvp的子集;如果允许使用全局和局部参考范围,则默认预测块矢量为global_bvp和local_bvp并集的子集。
在选择出默认预测块矢量之后,可以将选择出的默认预测块矢量作为候选预测块矢量,然后据此确定当前块的最终预测块矢量,以下详细进行说明:
在本申请的一个实施例中,可以根据当前块的位置和候选预测块矢量,得到候选参考块的位置,然后根据候选参考块是否位于合法的参考范围内来确认最终的预测块矢量,以下给出了a)和b)两种参考块合法性判断的方法,可以单独使用或组合使用:
a)设(min_x,min_y)为允许的参考范围的上边界,具体地,如果允许的参考范围为全局参考范围,则可以设(min_x,min_y)为当前片左上角的坐标值;如果允许的参考范围为局部参考范围,则可以设(min_x,min_y)为当前块所在SB(如64×64的大小)块的左上角坐标值。那么若满足以下条件中的任一,则说明候选参考块是符合规则的参考块,那么相应的候选预测块矢量即为符合规则的候选预测块矢量:
cur_x+bvp_x≥min_x;
cur_y+bvp_y≥min_y;
cur_x+bvp_x≥min_x且cur_y+bvp_y≥min_y。
其中,bvp_x表示候选预测块矢量的水平分量;bvp_y表示候选预测块矢量的竖直分量。cur_x+bvp_x即为候选参考块的左上角横坐标;cur_y+bvp_y即为候选参考块的左上角纵坐标。
b)设(max_x,max_y)为允许的参考范围的下边界,具体地,如果允许的参考范围为全局参考范围,则可以设(max_x,max_y)为当前块所在SB的行中合法的全局参考范围的右下角坐标;如果允许的参考范围为局部参考范围,则可以设(max_x,max_y)为当前块所在的局部参考范围的右下角坐标。那么若满足以下条件中的任一,则说明候选参考块是符合规则的参考块,那么相应的候选预测块矢量即为符合规则的候选预测块矢量:
cur_x+b_w-1+bvp_x≤max_x;
cur_y+b_h-1+bvp_y≤max_y;
cur_x+b_w-1+bvp_x≤max_x且cur_y+b_h-1+bvp_y≤max_y。
其中,bvp_x表示候选预测块矢量的水平分量;bvp_y表示候选预测块矢量的竖直分量。cur_x+b_w-1+bvp_x即为候选参考块的右下角横坐标;cur_y+b_h-1+bvp_y即为候选参考块的右下角纵坐标。
在一些可选的实施例中,如果当前块所在的局部参考范围是大小为64×64的块,那么该64×64的局部参考范围的右下角坐标(blk64_br_x,blk64_br_y)可以表示为:
blk64_br_x=blk64_tl_x+blk64_w–1;
blk64_br_y=blk64_tl_y+blk64_h–1。
其中,(blk64_tl_x,blk64_tl_y)为当前块所在的64×64块的左上角坐标,具体表示如下:
/>
其中,表示向下取整。
在一些可选的实施例中,如果通过上述的筛选,还有多个候选预测块矢量符合规则,则按照符合规则的这多个候选预测块矢量的顺序或者逆序,选择第K1个作为选用的预测块矢量,K1为一个预设整数。例如选择第1个符合规则的候选块矢量作为最终的预测块矢量。
在一些可选的实施例中,如果通过上述的筛选,还有多个候选预测块矢量符合规则,那么也可以通过在码流中包含标识位的方式,来做指示具体选择哪个候选预测块矢量作为当前的最终预测块矢量。
在一些可选的实施例中,如果通过上述的筛选,不存在符合规则的候选预测块矢量,则可以按照所有候选预测块矢量的顺序或者逆序的第K2个作为选用的预测块矢量,K2为一个预设整数。例如选择最后一个候选块矢量作为最终的预测块矢量。
在本申请的另一个实施例中,当选择出默认预测块矢量之后,可以将选择出的默认预测块矢量作为候选预测块矢量,然后对候选预测块矢量依次进行判断,直至找到满足条件的候选预测块矢量,或者剩下最后一个候选预测块矢量,之后将选择到的候选预测块矢量或剩下的最后一个候选预测块矢量作为当前块的预测块矢量。
具体而言,以当前有2个候选预测块矢量bvp1,bvp2为例进行说明:
如果cur_x+bvp1_x<min_x,则说明bvp1不符合条件,进而可以使用bvp2作为当前块的预测块矢量;或者
如果cur_y+bvp1_y<min_y,则说明bvp1不符合条件,进而可以使用bvp2作为当前块的预测块矢量;或者
如果cur_x+bvp1_x<min_x且cur_y+bvp1_y<min_y,则说明bvp1不符合条件,进而可以bvp2作为当前块的预测块矢量;或者
如果cur_x+bvp1_x<min_x或cur_y+bvp1_y<min_y,则说明bvp1不符合条件,进而可以使用bvp2作为当前块的预测块矢量。
其中,(min_x,min_y)为允许的参考范围的上边界,具体地,如果允许的参考范围为全局参考范围,则可以设(min_x,min_y)为当前片左上角的坐标值;如果允许的参考范围为局部参考范围,则可以设(min_x,min_y)为当前块所在SB(如64×64的大小)块的左上角坐标值。
在上述示例中,是以2个候选预测矢量为例进行的说明,该方法可以扩展至存在多个候选预测块矢量的情况,例如存在3个候选bvp1、bvp2和bvp3,那么可以依次对候选预测块矢量进行判断,直至找到满足条件的候选预测块矢量或剩下最后一个候选预测块矢量。
在本申请的一个实施例中,在得到当前块的预测块矢量bvp之后,可以基于该预测块矢量bvp对当前块的块矢量bv进行解码,具体方式1:bv=bvp;方式2:解码bvd,bv=bvp+bvd。
在本申请的一个具体示例中,假设global_bvp={(-sb_w-D,0),(0,-sb_h)};local_bvp={(-w,0),(0,-h)}。
如果当前帧的IBC块允许使用全局和局部参考范围或仅允许使用全局参考范围,那么存在以下情况:
a)如果cur_y-sb_h<tile_y,则bvp=(-sb_w-D,0);
b)否则bvp=(0,-sb_h)。
如果当前帧的IBC块仅允许使用局部参考范围,那么若当前块所在64×64块的左上角坐标为(b64_x,b64_y),则存在以下情况:
a)如果cur_y-h<b64_y,则bvp=(-w,0);
b)否则bvp=(0,-h)。
综上,本申请实施例的技术方案使得可以针对不同的参考范围,选择对应的预测块矢量,进而可以提高块矢量预测的准确率,降低块矢量的编码代价,提升编码性能。
以下介绍本申请的装置实施例,可以用于执行本申请上述实施例中的方法。对于本申请装置实施例中未披露的细节,请参照本申请上述的方法实施例。
图13示出了根据本申请的一个实施例的视频解码装置的框图,该视频解码装置可以设置在具有计算处理功能的设备内,比如可以设置在终端设备或服务器内。
参照图13所示,根据本申请的一个实施例的视频解码装置1300,包括:解码单元1302、第一选择单元1304和第一处理单元1306。
其中,解码单元1302配置为从码流中解码得到参考范围指示信息,所述参考范围指示信息用于指示帧内块复制模式所使用的目标参考范围,所述目标参考范围包括全局参考范围和局部参考范围中的至少一个;第一选择单元1304配置为根据所述目标参考范围选择待解码的当前块的预测块矢量;第一处理单元1306配置为基于所述当前块的预测块矢量对所述当前块进行解码处理。
在本申请的一些实施例中,基于前述方案,所述参考范围指示信息包括第一标志位和第二标志位,所述第一标志位用于指示所述帧内块复制模式是否允许使用所述全局参考范围,所述第二标志位用于指示所述帧内块复制模式是否允许使用所述局部参考范围。
在本申请的一些实施例中,基于前述方案,所述参考范围指示信息包括第三标志位,所述第三标志位为第一值时,指示所述帧内块复制模式允许使用所述全局参考范围;所述第三标志位为第二值时,指示所述帧内块复制模式允许使用所述局部参考范围。
在本申请的一些实施例中,基于前述方案,所述参考范围指示信息包括第四标志位,所述第四标志位为第一值时,指示所述帧内块复制模式允许使用所述全局参考范围和所述局部参考范围;所述第四标志位为第二值时,指示所述帧内块复制模式允许使用所述局部参考范围。
在本申请的一些实施例中,基于前述方案,所述第一选择单元1304配置为:从设定的与所述目标参考范围相对应的预测块矢量集合中,选择至少一个预测块矢量作为待解码的当前块所对应的候选预测块矢量;根据所述当前块的位置信息和所述目标参考范围,从所述候选预测块矢量中选择所述当前块的预测块矢量。
在本申请的一些实施例中,基于前述方案,若所述目标参考范围为所述全局参考范围,则与所述目标参考范围相对应的预测块矢量集合包括所述全局参考范围对应的预测块矢量集合;若所述目标参考范围为所述局部参考范围,则与所述目标参考范围相对应的预测块矢量集合包括所述局部参考范围对应的预测块矢量集合;若所述目标参考范围为所述全局参考范围和所述局部参考范围,则与所述目标参考范围相对应的预测块矢量集合包括:所述全局参考范围对应的预测块矢量集合和所述局部参考范围对应的预测块矢量集合的并集。
在本申请的一些实施例中,基于前述方案,所述全局参考范围对应的预测块矢量集合包括以下预测块矢量中的至少一个:(-sb_w-D,0)、(0,-sb_h)、(sb_x-b_w-cur_x-D,0)、(0,sb_y-b_h-cur_y)、(-M×sb_w-D,-N×sb_h);
其中,sb_w表示所述当前块所在的最大编码块的宽度;sb_h表示所述当前块所在的最大编码块的高度;sb_x表示所述当前块所在的最大编码块的左上角横坐标;sb_y表示所述当前块所在的最大编码块的左上角纵坐标;b_w表示所述当前块的宽度;b_h表示所述当前块的高度;cur_x表示所述当前块的左上角横坐标;cur_y表示所述当前块的左上角纵坐标;D、M和N为设定的常数。
在本申请的一些实施例中,基于前述方案,所述局部参考范围对应的预测块矢量集合包括以下预测块矢量中的至少一个:(-b_w,0)、(0,-b_h)、(-b_w,-b_h)、(-2×b_w,0)、(0,-2×b_h)、(0,0)、(0,-vb_w)、(-vb_h,0)、(-vb_w,-vb_h);
其中,b_w表示所述当前块的宽度;b_h表示所述当前块的高度;vb_w表示预设的块宽度;vb_h表示预设的块高度。
在本申请的一些实施例中,基于前述方案,所述第一选择单元1304根据所述当前块的位置信息和所述目标参考范围,从所述候选预测块矢量中选择所述当前块的预测块矢量的过程,包括:根据所述当前块的位置信息和所述候选预测块矢量,确定所述当前块的候选参考块的位置信息;基于所述候选参考块的位置信息和所述目标参考范围之间的关系,从所述候选预测块矢量中选择所述当前块的预测块矢量。
在本申请的一些实施例中,基于前述方案,所述第一选择单元1304基于所述候选参考块的位置信息和所述目标参考范围之间的关系,从所述候选预测块矢量中选择所述当前块的预测块矢量的过程,包括:基于所述候选参考块的位置信息,确定处于所述目标参考范围之内的目标候选参考块;从所述目标候选参考块所对应的候选预测块矢量中,选择所述当前块的预测块矢量。
在本申请的一些实施例中,基于前述方案,基于所述候选参考块的位置信息,确定处于所述目标参考范围之内的目标候选参考块的过程,包括:若根据所述候选参考块的位置信息确定所述候选参考块满足以下条件中的任意一个,则将所述候选参考块作为所述目标候选参考块:
所述候选参考块的左上角横坐标大于或等于第一设定横坐标;
所述候选参考块的左上角纵坐标大于或等于第一设定纵坐标;
所述候选参考块的左上角横坐标大于或等于第一设定横坐标,且所述候选参考块的左上角纵坐标大于或等于第一设定纵坐标;
其中,若所述目标参考范围为全局参考范围,则所述第一设定横坐标与所述第一设定纵坐标为所述当前块所在片的左上角坐标;若所述目标参考范围为局部参考范围,则所述第一设定横坐标与所述第一设定纵坐标为所述当前块所在的局部参考范围的左上角坐标。
在本申请的一些实施例中,基于前述方案,基于所述候选参考块的位置信息,确定处于所述目标参考范围之内的目标候选参考块的过程,包括:若根据所述候选参考块的位置信息确定所述候选参考块满足以下条件中的任意一个,则将所述候选参考块作为所述目标候选参考块:
所述候选参考块的右下角横坐标小于或等于第二设定横坐标;
所述候选参考块的右下角纵坐标小于或等于第二设定纵坐标;
所述候选参考块的右下角横坐标小于或等于第二设定横坐标,且所述候选参考块的右下角纵坐标小于或等于第二设定纵坐标;
其中,若所述目标参考范围为全局参考范围,则所述第二设定横坐标与所述第二设定纵坐标为处于指定最大编码块所在行中的全局参考范围的右下角坐标,所述指定最大编码块为所述当前块所在的最大编码块;若所述目标参考范围为局部参考范围,则所述第二设定横坐标与所述第二设定纵坐标为所述当前块所在的局部参考范围的右下角坐标。
在本申请的一些实施例中,基于前述方案,从所述目标候选参考块所对应的候选预测块矢量中,选择所述当前块的预测块矢量的过程,包括:若所述目标候选参考块所对应的候选预测块矢量包括多个候选预测块矢量,则按照设定策略从所述多个候选预测块矢量中选择一个作为所述当前块的预测块矢量。
在本申请的一些实施例中,基于前述方案,若所述目标候选参考块所对应的候选预测块矢量包括多个候选预测块矢量,则从所述码流中解码得到预测块矢量指示信息,根据所述预测块矢量指示信息从所述多个候选预测块矢量中选择所述当前块的预测块矢量。
在本申请的一些实施例中,基于前述方案,从所述目标候选参考块所对应的候选预测块矢量中,选择所述当前块的预测块矢量的过程,包括:若所述目标候选参考块所对应的候选预测块矢量包括一个候选预测块矢量,则将所述一个候选预测块矢量作为所述当前块的预测块矢量。
在本申请的一些实施例中,基于前述方案,所述第一选择单元1304配置为:若基于所述候选参考块的位置信息确定不存在处于所述目标参考范围之内的目标候选参考块,则从所述当前块所对应的候选预测块矢量中选择一个作为所述当前块的预测块矢量。
在本申请的一些实施例中,基于前述方案,所述第一选择单元1304根据所述当前块的位置信息和所述目标参考范围,从所述候选预测块矢量中选择所述当前块的预测块矢量的过程,包括:按照所述候选预测块矢量的排列顺序依次进行判断,直至选择到满足以下任一条件的候选预测块矢量,或者剩下最后一个候选预测块矢量,将选择到的候选预测块矢量或剩下的最后一个候选预测块矢量作为所述当前块的预测块矢量:
cur_x+bvpi_x≥min_x;
cur_y+bvpi_y≥min_y;
cur_x+bvpi_x≥min_x且cur_y+bvpi_y≥min_y;
cur_x+b_w-1+bvpi_x≤max_x;
cur_y+b_h-1+bvpi_y≤max_y;
cur_x+b_w-1+bvpi_x≤max_x且cur_y+b_h-1+bvpi_y≤max_y;
其中,cur_x表示所述当前块的左上角横坐标;cur_y表示所述当前块的左上角纵坐标;b_w表示所述当前块的宽度;b_h表示所述当前块的高度;bvpi_x表示第i个候选预测块矢量的水平分量;bvpi_y表示第i个候选预测块矢量的竖直分量;若所述目标参考范围为全局参考范围,则min_x和min_y表示所述当前块所在片的左上角坐标,max_x和max_y表示处于指定最大编码块所在行中的全局参考范围的右下角坐标,所述指定最大编码块为所述当前块所在的最大编码块;若所述目标参考范围为局部参考范围,则min_x和min_y表示所述当前块所在的局部参考范围的左上角坐标,max_x和max_y表示所述当前块所在的局部参考范围的右下角坐标。
在本申请的一些实施例中,基于前述方案,所述第一处理单元1306配置为:将所述当前块的预测块矢量作为所述当前块的块矢量,以对所述当前块进行解码处理;或者
从所述码流中解码得到所述当前块的块矢量残差,根据所述块矢量残差和所述当前块的预测块矢量计算所述当前块的块矢量,根据所述当前块的块矢量对所述当前块进行解码处理。
图14示出了根据本申请的一个实施例的视频编码装置的框图,该视频编码装置可以设置在具有计算处理功能的设备内,比如可以设置在终端设备或服务器内。
参照图14所示,根据本申请的一个实施例的视频编码装置1400,包括:编码单元1402、第二选择单元1404和第二处理单元1406。
其中,编码单元1402配置为在码流中编码参考范围指示信息,所述参考范围指示信息用于指示帧内块复制模式所使用的目标参考范围,所述目标参考范围包括全局参考范围和局部参考范围中的至少一个;第二选择单元1404配置为根据所述目标参考范围选择待编码的当前块的预测块矢量;第二处理单元1406配置为基于所述当前块的预测块矢量对所述当前块进行编码处理。
图15示出了适于用来实现本申请实施例的电子设备的计算机系统的结构示意图。
需要说明的是,图15示出的电子设备的计算机系统1500仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图15所示,计算机系统1500包括中央处理单元(Central Processing Unit,CPU)1501,其可以根据存储在只读存储器(Read-Only Memory,ROM)1502中的程序或者从存储部分1508加载到随机访问存储器(Random Access Memory,RAM)1503中的程序而执行各种适当的动作和处理,例如执行上述实施例中所述的方法。在RAM 1503中,还存储有系统操作所需的各种程序和数据。CPU 1501、ROM 1502以及RAM 1503通过总线1504彼此相连。输入/输出(Input/Output,I/O)接口1505也连接至总线1504。
以下部件连接至I/O接口1505:包括键盘、鼠标等的输入部分1506;包括诸如阴极射线管(Cathode Ray Tube,CRT)、液晶显示器(Liquid Crystal Display,LCD)等以及扬声器等的输出部分1507;包括硬盘等的存储部分1508;以及包括诸如LAN(Local AreaNetwork,局域网)卡、调制解调器等的网络接口卡的通信部分1509。通信部分1509经由诸如因特网的网络执行通信处理。驱动器1510也根据需要连接至I/O接口1505。可拆卸介质1511,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1510上,以便于从其上读出的计算机程序根据需要被安装入存储部分1508。
特别地,根据本申请的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本申请的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的计算机程序。在这样的实施例中,该计算机程序可以通过通信部分1509从网络上被下载和安装,和/或从可拆卸介质1511被安装。在该计算机程序被中央处理单元(CPU)1501执行时,执行本申请的系统中限定的各种功能。
需要说明的是,本申请实施例所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(Erasable Programmable Read Only Memory,EPROM)、闪存、光纤、便携式紧凑磁盘只读存储器(Compact Disc Read-Only Memory,CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的计算机程序。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的计算机程序可以用任何适当的介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。其中,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现,所描述的单元也可以设置在处理器中。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。
作为另一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该电子设备执行时,使得该电子设备实现上述实施例中所述的方法。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本申请的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本申请实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、触控终端、或者网络设备等)执行根据本申请实施方式的方法。
本领域技术人员在考虑说明书及实践这里公开的实施方式后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。

Claims (23)

1.一种视频解码方法,其特征在于,包括:
从码流中解码得到参考范围指示信息,所述参考范围指示信息用于指示帧内块复制模式所使用的目标参考范围,所述目标参考范围包括全局参考范围和局部参考范围中的至少一个;
根据所述目标参考范围选择待解码的当前块的预测块矢量;
基于所述当前块的预测块矢量对所述当前块进行解码处理。
2.根据权利要求1所述的视频解码方法,其特征在于,所述参考范围指示信息包括第一标志位和第二标志位,所述第一标志位用于指示所述帧内块复制模式是否允许使用所述全局参考范围,所述第二标志位用于指示所述帧内块复制模式是否允许使用所述局部参考范围。
3.根据权利要求1所述的视频解码方法,其特征在于,所述参考范围指示信息包括第三标志位,所述第三标志位为第一值时,指示所述帧内块复制模式允许使用所述全局参考范围;所述第三标志位为第二值时,指示所述帧内块复制模式允许使用所述局部参考范围。
4.根据权利要求1所述的视频解码方法,其特征在于,所述参考范围指示信息包括第四标志位,所述第四标志位为第一值时,指示所述帧内块复制模式允许使用所述全局参考范围和所述局部参考范围;所述第四标志位为第二值时,指示所述帧内块复制模式允许使用所述局部参考范围。
5.根据权利要求1所述的视频解码方法,其特征在于,根据所述目标参考范围选择待解码的当前块的预测块矢量,包括:
从设定的与所述目标参考范围相对应的预测块矢量集合中,选择至少一个预测块矢量作为待解码的当前块所对应的候选预测块矢量;
根据所述当前块的位置信息和所述目标参考范围,从所述候选预测块矢量中选择所述当前块的预测块矢量。
6.根据权利要求5所述的视频解码方法,其特征在于,若所述目标参考范围为所述全局参考范围,则与所述目标参考范围相对应的预测块矢量集合包括所述全局参考范围对应的预测块矢量集合;
若所述目标参考范围为所述局部参考范围,则与所述目标参考范围相对应的预测块矢量集合包括所述局部参考范围对应的预测块矢量集合;
若所述目标参考范围为所述全局参考范围和所述局部参考范围,则与所述目标参考范围相对应的预测块矢量集合包括:所述全局参考范围对应的预测块矢量集合和所述局部参考范围对应的预测块矢量集合的并集。
7.根据权利要求6所述的视频解码方法,其特征在于,所述全局参考范围对应的预测块矢量集合包括以下预测块矢量中的至少一个:(-sb_w-D,0)、(0,-sb_h)、(sb_x-b_w-cur_x-D,0)、(0,sb_y-b_h-cur_y)、(-M×sb_w-D,-N×sb_h);
其中,sb_w表示所述当前块所在的最大编码块的宽度;sb_h表示所述当前块所在的最大编码块的高度;sb_x表示所述当前块所在的最大编码块的左上角横坐标;sb_y表示所述当前块所在的最大编码块的左上角纵坐标;b_w表示所述当前块的宽度;b_h表示所述当前块的高度;cur_x表示所述当前块的左上角横坐标;cur_y表示所述当前块的左上角纵坐标;D、M和N为设定的常数。
8.根据权利要求6所述的视频解码方法,其特征在于,所述局部参考范围对应的预测块矢量集合包括以下预测块矢量中的至少一个:(-b_w,0)、(0,-b_h)、(-b_w,-b_h)、(-2×b_w,0)、(0,-2×b_h)、(0,0)、(0,-vb_w)、(-vb_h,0)、(-vb_w,-vb_h);
其中,b_w表示所述当前块的宽度;b_h表示所述当前块的高度;vb_w表示预设的块宽度;vb_h表示预设的块高度。
9.根据权利要求5所述的视频解码方法,其特征在于,根据所述当前块的位置信息和所述目标参考范围,从所述候选预测块矢量中选择所述当前块的预测块矢量,包括:
根据所述当前块的位置信息和所述候选预测块矢量,确定所述当前块的候选参考块的位置信息;
基于所述候选参考块的位置信息和所述目标参考范围之间的关系,从所述候选预测块矢量中选择所述当前块的预测块矢量。
10.根据权利要求9所述的视频解码方法,其特征在于,基于所述候选参考块的位置信息和所述目标参考范围之间的关系,从所述候选预测块矢量中选择所述当前块的预测块矢量,包括:
基于所述候选参考块的位置信息,确定处于所述目标参考范围之内的目标候选参考块;
从所述目标候选参考块所对应的候选预测块矢量中,选择所述当前块的预测块矢量。
11.根据权利要求10所述的视频解码方法,其特征在于,基于所述候选参考块的位置信息,确定处于所述目标参考范围之内的目标候选参考块,包括:若根据所述候选参考块的位置信息确定所述候选参考块满足以下条件中的任意一个,则将所述候选参考块作为所述目标候选参考块:
所述候选参考块的左上角横坐标大于或等于第一设定横坐标;
所述候选参考块的左上角纵坐标大于或等于第一设定纵坐标;
所述候选参考块的左上角横坐标大于或等于第一设定横坐标,且所述候选参考块的左上角纵坐标大于或等于第一设定纵坐标;
其中,若所述目标参考范围为全局参考范围,则所述第一设定横坐标与所述第一设定纵坐标为所述当前块所在片的左上角坐标;若所述目标参考范围为局部参考范围,则所述第一设定横坐标与所述第一设定纵坐标为所述当前块所在的局部参考范围的左上角坐标。
12.根据权利要求10所述的视频解码方法,其特征在于,基于所述候选参考块的位置信息,确定处于所述目标参考范围之内的目标候选参考块,包括:若根据所述候选参考块的位置信息确定所述候选参考块满足以下条件中的任意一个,则将所述候选参考块作为所述目标候选参考块:
所述候选参考块的右下角横坐标小于或等于第二设定横坐标;
所述候选参考块的右下角纵坐标小于或等于第二设定纵坐标;
所述候选参考块的右下角横坐标小于或等于第二设定横坐标,且所述候选参考块的右下角纵坐标小于或等于第二设定纵坐标;
其中,若所述目标参考范围为全局参考范围,则所述第二设定横坐标与所述第二设定纵坐标为处于指定最大编码块所在行中的全局参考范围的右下角坐标,所述指定最大编码块为所述当前块所在的最大编码块;若所述目标参考范围为局部参考范围,则所述第二设定横坐标与所述第二设定纵坐标为所述当前块所在的局部参考范围的右下角坐标。
13.根据权利要求10所述的视频解码方法,其特征在于,从所述目标候选参考块所对应的候选预测块矢量中,选择所述当前块的预测块矢量,包括:
若所述目标候选参考块所对应的候选预测块矢量包括多个候选预测块矢量,则按照设定策略从所述多个候选预测块矢量中选择一个作为所述当前块的预测块矢量;或者
若所述目标候选参考块所对应的候选预测块矢量包括多个候选预测块矢量,则从所述码流中解码得到预测块矢量指示信息,根据所述预测块矢量指示信息从所述多个候选预测块矢量中选择所述当前块的预测块矢量。
14.根据权利要求10所述的视频解码方法,其特征在于,从所述目标候选参考块所对应的候选预测块矢量中,选择所述当前块的预测块矢量,包括:
若所述目标候选参考块所对应的候选预测块矢量包括一个候选预测块矢量,则将所述一个候选预测块矢量作为所述当前块的预测块矢量。
15.根据权利要求10所述的视频解码方法,其特征在于,所述视频解码方法还包括:
若基于所述候选参考块的位置信息确定不存在处于所述目标参考范围之内的目标候选参考块,则从所述当前块所对应的候选预测块矢量中选择一个作为所述当前块的预测块矢量。
16.根据权利要求5所述的视频解码方法,其特征在于,根据所述当前块的位置信息和所述目标参考范围,从所述候选预测块矢量中选择所述当前块的预测块矢量,包括:
按照所述候选预测块矢量的排列顺序依次进行判断,直至选择到满足以下任一条件的候选预测块矢量,或者剩下最后一个候选预测块矢量,将选择到的候选预测块矢量或剩下的最后一个候选预测块矢量作为所述当前块的预测块矢量:
cur_x+bvpi_x≥min_x;
cur_y+bvpi_y≥min_y;
cur_x+bvpi_x≥min_x且cur_y+bvpi_y≥min_y;
cur_x+b_w-1+bvpi_x≤max_x;
cur_y+b_h-1+bvpi_y≤max_y;
cur_x+b_w-1+bvpi_x≤max_x且cur_y+b_h-1+bvpi_y≤max_y;
其中,cur_x表示所述当前块的左上角横坐标;cur_y表示所述当前块的左上角纵坐标;b_w表示所述当前块的宽度;b_h表示所述当前块的高度;bvpi_x表示第i个候选预测块矢量的水平分量;bvpi_y表示第i个候选预测块矢量的竖直分量;若所述目标参考范围为全局参考范围,则min_x和min_y表示所述当前块所在片的左上角坐标,max_x和max_y表示处于指定最大编码块所在行中的全局参考范围的右下角坐标,所述指定最大编码块为所述当前块所在的最大编码块;若所述目标参考范围为局部参考范围,则min_x和min_y表示所述当前块所在的局部参考范围的左上角坐标,max_x和max_y表示所述当前块所在的局部参考范围的右下角坐标。
17.根据权利要求1至16中任一项所述的视频解码方法,其特征在于,基于所述当前块的预测块矢量对所述当前块进行解码处理,包括:
将所述当前块的预测块矢量作为所述当前块的块矢量,以对所述当前块进行解码处理;或者
从所述码流中解码得到所述当前块的块矢量残差,根据所述块矢量残差和所述当前块的预测块矢量计算所述当前块的块矢量,根据所述当前块的块矢量对所述当前块进行解码处理。
18.一种视频编码方法,其特征在于,包括:
在码流中编码参考范围指示信息,所述参考范围指示信息用于指示帧内块复制模式所使用的目标参考范围,所述目标参考范围包括全局参考范围和局部参考范围中的至少一个;
根据所述目标参考范围选择待编码的当前块的预测块矢量;
基于所述当前块的预测块矢量对所述当前块进行编码处理。
19.一种视频解码装置,其特征在于,包括:
解码单元,配置为从码流中解码得到参考范围指示信息,所述参考范围指示信息用于指示帧内块复制模式所使用的目标参考范围,所述目标参考范围包括全局参考范围和局部参考范围中的至少一个;
第一选择单元,配置为根据所述目标参考范围选择待解码的当前块的预测块矢量;
第一处理单元,配置为基于所述当前块的预测块矢量对所述当前块进行解码处理。
20.一种视频编码装置,其特征在于,包括:
编码单元,配置为在码流中编码参考范围指示信息,所述参考范围指示信息用于指示帧内块复制模式所使用的目标参考范围,所述目标参考范围包括全局参考范围和局部参考范围中的至少一个;
第二选择单元,配置为根据所述目标参考范围选择待编码的当前块的预测块矢量;
第二处理单元,配置为基于所述当前块的预测块矢量对所述当前块进行编码处理。
21.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至17中任一项所述的视频解码方法,或实现如权利要求18所述的视频编码方法。
22.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述电子设备实现如权利要求1至17中任一项所述的视频解码方法,或实现如权利要求18所述的视频编码方法。
23.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机指令,所述计算机指令存储在计算机可读存储介质中,电子设备的处理器从所述计算机可读存储介质读取并执行所述计算机指令,使得所述电子设备执行如权利要求1至17中任一项所述的视频解码方法,或实现如权利要求18所述的视频编码方法。
CN202210260545.0A 2022-03-16 2022-03-16 视频编解码方法、装置、计算机可读介质及电子设备 Pending CN116805969A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210260545.0A CN116805969A (zh) 2022-03-16 2022-03-16 视频编解码方法、装置、计算机可读介质及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210260545.0A CN116805969A (zh) 2022-03-16 2022-03-16 视频编解码方法、装置、计算机可读介质及电子设备

Publications (1)

Publication Number Publication Date
CN116805969A true CN116805969A (zh) 2023-09-26

Family

ID=88079899

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210260545.0A Pending CN116805969A (zh) 2022-03-16 2022-03-16 视频编解码方法、装置、计算机可读介质及电子设备

Country Status (1)

Country Link
CN (1) CN116805969A (zh)

Similar Documents

Publication Publication Date Title
CN114827597B (zh) 视频解码方法、装置、计算机设备及存储介质
EP4246975A1 (en) Video decoding method and apparatus, video coding method and apparatus, and device
CN112543337B (zh) 视频解码方法、装置、计算机可读介质及电子设备
CN111279698B (zh) 图像编码的非对称划分装置和方法
US20240089494A1 (en) Video encoding and decoding method and apparatus, storage medium, electronic device, and computer program product
WO2022022299A1 (zh) 视频编解码中的运动信息列表构建方法、装置及设备
US20220224888A1 (en) Video encoding method, video decoding method, and related device
CN116805969A (zh) 视频编解码方法、装置、计算机可读介质及电子设备
CN115209157A (zh) 视频编解码方法、装置、计算机可读介质及电子设备
WO2022193870A1 (zh) 视频编解码方法、装置、计算机可读介质及电子设备
WO2024109099A1 (zh) 视频编解码方法、装置、计算机可读介质及电子设备
US20240144439A1 (en) Filtering method and apparatus, computer-readable medium
WO2022037458A1 (zh) 视频编解码中的运动信息列表构建方法、装置及设备
WO2022174637A1 (zh) 视频编解码方法、装置、计算机可读介质及电子设备
WO2024082632A1 (zh) 视频编解码方法、装置、计算机可读介质及电子设备
WO2023130899A1 (zh) 环路滤波方法、视频编解码方法、装置、介质及电子设备
US20240015336A1 (en) Filtering method and apparatus, computer-readable medium, and electronic device
CN117560502A (zh) 视频编码方法、装置、计算机可读介质及电子设备
CN115086656A (zh) 视频编解码方法、装置、计算机可读介质及电子设备
CN115086655A (zh) 视频编解码方法、装置、计算机可读介质及电子设备
JP2024512662A (ja) 算術符号化のためのブロック・レベルのウィンドウ・サイズ更新のための方法および装置
CN115209138A (zh) 视频编解码方法、装置、计算机可读介质及电子设备
CN114979655A (zh) 视频编解码方法、装置、计算机可读介质及电子设备
CN116962688A (zh) 环路滤波方法、视频编解码方法、装置、介质及电子设备
CN114979656A (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