CN111770338B - 编码单元的索引值确定方法、装置、设备及存储介质 - Google Patents

编码单元的索引值确定方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN111770338B
CN111770338B CN202010711029.6A CN202010711029A CN111770338B CN 111770338 B CN111770338 B CN 111770338B CN 202010711029 A CN202010711029 A CN 202010711029A CN 111770338 B CN111770338 B CN 111770338B
Authority
CN
China
Prior art keywords
coding unit
target coding
target
scanning
index value
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
CN202010711029.6A
Other languages
English (en)
Other versions
CN111770338A (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.)
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 CN202010711029.6A priority Critical patent/CN111770338B/zh
Publication of CN111770338A publication Critical patent/CN111770338A/zh
Application granted granted Critical
Publication of CN111770338B publication Critical patent/CN111770338B/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/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/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/129Scanning of coding units, e.g. zig-zag scan of transform coefficients or flexible macroblock ordering [FMO]
    • 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/136Incoming video signal characteristics or properties
    • H04N19/14Coding unit complexity, e.g. amount of activity or edge presence estimation
    • 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/186Methods 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 a colour or a chrominance component
    • 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/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

本申请提供了一种编码单元的索引值确定方法、装置、设备及存储介质,涉及视频编解码技术领域。所述方法包括:采用目标划分方式对目标编码块进行划分,得到多个编码单元;对于多个编码单元中的目标编码单元,确定目标编码单元相对于目标编码块中参考点的位置信息;获取目标编码单元对应的扫描步长,扫描步长是指扫描目标编码块所采用的步长,且扫描步长小于或等于目标编码单元的块尺寸的二分之一;根据位置信息和扫描步长,确定目标编码单元的索引值。本申请实施例提供的技术方案通过扫描建立起索引值和存储模式信息的内存位置之间的对应关系,然后根据位置信息和扫描步长,可以快速确定编码单元的索引值,提升了模式信息的访问效率。

Description

编码单元的索引值确定方法、装置、设备及存储介质
技术领域
本申请实施例涉及视频编解码技术领域,特别涉及一种编码单元的索引值确定方法、装置、设备及存储介质。
背景技术
视频信号是指包括多个帧的图像序列。由于视频信号数字化后数据带宽很高,计算机设备难以直接对之进行存储和处理,因而需要采用视频压缩技术来降低视频信号的数据带宽。
视频压缩技术是通过视频编码来实现的,在进行视频编码时,一个待编码图像块会被划分为多个图像块。在H.265/HEVC(High Efficient Video Coding,高效率视频压缩编码)标准中,一个待编码图像块可以通过QT(Quad Tree,四叉树)划分方式划分为多个CU(Coding Unit,编码单元)。在H.266/VVC(Versatile Video Coding,通用视频编码)标准中,一个待编码图像块可以通过BT(Binary Tree,二叉树)划分、TT(Ternary Tree,三叉树)划分、EQT(Extended Quad-Tree,扩展四叉树)划分等方式划分为多个CU。相关技术为了便于访问这些CU的模式信息,如MV(Motion Vector,运动矢量)、RD(Rate-Distortion,率失真)代价等,为这些CU分配了一定的内存空间,以存储这些CU的模式信息,在需要访问某一CU的模式信息时,读取该CU的内存位置上存储的信息即可。由于采用上述TT划分方式以及EQT划分方式对待编码图像块进行划分得到的CU在待编码图像块中的分布存在不规律性的特点,为了便于访问这些分布不规律的CU的模式信息,相关技术提前罗列出这些CU的所有可能位置和尺寸,然后确定这些CU的索引值,并建立索引值与内存位置之间的对应关系,在需要访问某一CU的模式信息时,根据该CU的索引值读取对应内存位置上的信息即可。
然而,相关技术在需要访问某一CU的模式信息时,还需要重新罗列出待编码图像块中所有CU的可能位置和尺寸,才能确定该CU的索引值,索引值的确定过程复杂且低效,不利于访问效率的提升。
发明内容
本申请实施例提供了一种编码单元的索引值确定方法、装置、设备及存储介质,可用于快速确定编码单元的索引值,降低了访问复杂度,提升了模式信息的访问效率。所述技术方案如下:
一方面,本申请实施例提供了一种编码单元的索引值确定方法,所述方法包括:
采用目标划分方式对目标编码块进行划分,得到多个编码单元;
对于所述多个编码单元中的目标编码单元,确定所述目标编码单元相对于所述目标编码块中参考点的位置信息;
获取所述目标编码单元对应的扫描步长,所述扫描步长是指扫描所述目标编码块所采用的步长,且所述扫描步长小于或等于所述目标编码单元的块尺寸的二分之一;
根据所述位置信息和所述扫描步长,确定所述目标编码单元的索引值。
另一方面,本申请实施例提供了一种编码单元的索引值确定装置,所述装置包括:
编码块划分模块,用于采用目标划分方式对目标编码块进行划分,得到多个编码单元;
信息确定模块,用于对于所述多个编码单元中的目标编码单元,确定所述目标编码单元相对于所述目标编码块中参考点的位置信息;
步长获取模块,用于获取所述目标编码单元对应的扫描步长,所述扫描步长是指扫描所述目标编码块所采用的步长,且所述扫描步长小于或等于所述目标编码单元的块尺寸的二分之一;
索引值确定模块,用于根据所述位置信息和所述扫描步长,确定所述目标编码单元的索引值。
再一方面,本申请实施例提供了一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现上述编码单元的索引值确定方法。
又一方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现上述编码单元的索引值确定方法。
还一方面,本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述编码单元的索引值确定方法。
本申请实施例提供的技术方案可以带来如下有益效果:
针对分布不规律的编码单元,通过设置该编码单元对应的扫描步长为该编码单元的块尺寸的二分之一,实现了根据该扫描步长扫描待编码图像块时,准确扫描出该分布不规律的编码单元。另外,本申请实施例通过设置编码单元对应的扫描步长为该编码单元的块尺寸的二分之一,实现通过扫描的方式建立分布不规律的编码单元的索引关系,也即,该编码单元的索引值与内存位置之间的对应关系,后续根据该编码单元的位置信息和该编码单元对应的扫描步长,可以快速确定该编码单元的索引值,从而明确该编码单元的内存位置,以读取该内存位置上存储的模式信息。相比于相关在存储和访问分布不规律的编码单元的模式信息时,需要一一罗列所有可能的编码单元才能确定该编码单元的索引值导致访问复杂度较高,本申请实施例提供的技术方案通过扫描建立起索引值和存储模式信息的内存位置之间的对应关系,后续根据编码单元的位置信息和扫描步长即可快速确定编码单元的索引值,进而快速确定编码单元的内存位置,降低了访问复杂度,提升了模式信息的访问效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一个实施例提供的视频编码过程的基本流程图;
图2是本申请一个实施例提供的不同划分方式的示意图;
图3是本申请一个实施例提供的划分待编码图像块的示意图;
图4是本申请一个实施例提供的光栅扫描的示意图;
图5是本申请一个实施例提供的通信***的简化框图;
图6是本申请一个实施例提供的视频编码器和视频解码器在流式传输环境中的放置方式的示意图;
图7是本申请一个实施例提供的编码单元的索引值确定方法的流程图;
图8是本申请一个实施例提供的位置信息的确定方法的示意图;
图9是本申请一个实施例提供的扫描顺序的示意图;
图10是本申请一个实施例提供的编码单元的运动估计装置的框图;
图11是本申请另一个实施例提供的编码单元的运动估计装置的框图;
图12是本申请一个实施例提供的计算机设备的结构框图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
首先,结合图1对视频编码技术进行简单介绍。请参考图1,其示出了本申请一个实施例提供的视频编码过程的基本流程图。
视频信号是指包括多个帧的图像序列。帧(frame)是视频信号空间信息的表示。以YUV模式为例,一个帧包括一个亮度样本矩阵(Y)和两个色度样本矩阵(Cb和Cr)。从视频信号的获取方式来看,可以分为摄像机拍摄到的以及计算机生成的两种方式。由于视频信号数字化后数据带宽很高,计算机设备难以直接对之进行存储和处理,因而需要采用视频压缩技术来降低视频信号的数据带宽。视频压缩技术是通过视频编码来实现的,由于统计特性的不同,其对应的视频编码方式也可能有所区别。
在一些主流的视频编码技术中,如H.265/HEVC标准、H.266/VVC标准、AVS(如AVS3)中,采用了混合编码框架,对输入的原始视频信号进行如下一系列的操作和处理:
1、块划分结构(Block Partition Structure):输入图像划分成若干个不重叠的处理单元,每个处理单元将进行类似的压缩操作。这个处理单元被称作CTU(Coding TreeUnit,编码树单元),或者LCU(Large Coding Unit,最大编码单元)。CTU再往下,可以继续进行更加细粒度的划分,得到一个或多个基本编码的单元,称之为CU(Coding Unit,编码单元)。以下描述的是对每一个CU可能采用的各种编码方式。
2、预测编码(Predictive Coding):包括了帧内预测和帧间预测等方式,原始视频信号经过选定的已重建视频信号的预测后,得到残差视频信号。编码端需要为当前CU决定在众多可能的预测编码模式中,选择最适合的一种,并告知解码端。其中,帧内预测是指预测的信号来自于同一图像内已经编码重建过的区域。帧间预测是指预测的信号来自已经编码过的,不同于当前图像的其他图像(称之为参考图像)。
3、变换编码及量化(Transform&Quantization):残差视频信号经过DFT(DiscreteFourier Transform,离散傅里叶变换)、DCT(Discrete Cosine Transform,离散余弦变换)等变换操作,将信号转换到变换域中,称之为变换系数。在变换域中的信号,进一步进行有损的量化操作,丢失掉一定的信息,使得量化后的信号有利于压缩表达。在一些视频编码标准中,可能有多于一种变换方式可以选择,因此,编码端也需要为当前CU选择其中的一种变换,并告知解码端。量化的精细程度通常由量化参数来决定。QP(Quantization Parameter,量化参数)取值较大,表示更大取值范围的系数将被量化为同一个输出,因此通常会带来更大的失真,及较低的码率;相反,QP取值较小,表示较小取值范围的系数将被量化为同一个输出,因此通常会带来较小的失真,同时对应较高的码率。
4、熵编码(Entropy Coding)或统计编码:量化后的变换域信号,将根据各个值出现的频率,进行统计压缩编码,最后输出二值化(0或者1)的压缩码流。同时,编码产生其他信息,例如选择的模式、运动矢量等,也需要进行熵编码以降低码率。统计编码是一种无损编码方式,可以有效的降低表达同样的信号所需要的码率。常见的统计编码方式有变长编码(Variable Length Coding,简称VLC)或者基于上下文的二值化算术编码(ContentAdaptive Binary Arithmetic Coding,简称CABAC)。
5、环路滤波(Loop Filtering):已经编码过的图像,经过反量化、反变换及预测补偿的操作(上述2~4的反向操作),可获得重建的解码图像。重建图像与原始图像相比,由于存在量化的影响,部分信息与原始图像有所不同,产生失真(distortion)。对重建图像进行滤波操作,例如去块效应滤波(deblocking),SAO(Sample Adaptive Offset,样本自适应偏移量)或者ALF(Adaptive Lattice Filter,自适应格型滤波器)等滤波器,可以有效的降低量化所产生的失真程度。由于这些经过滤波后的重建图像,将作为后续编码图像的参考,用于对将来的信号进行预测,所以上述的滤波操作也被称为环路滤波,及在编码环路内的滤波操作。
由上述“块划分结构”的介绍说明可知,在进行视频编码的过程中,视频信号中的一帧图像可以被分割成互不重叠的CTU,通常,可以将CTU称为待编码图像块。可选地,一个CTU的块尺寸可以设置为64×64、128×128等,本申请实施例对CTU的块尺寸大小不作限定。示例性地,块尺寸为128×128的CTU可以是包含128列的矩阵像素点阵,每一列包含128个像素,每个像素包含亮度分量和/或色度分量。CTU再往下,可以继续进行更细粒度的划分,得到一组CU,该一组CU里面可以包含一个或多个CU。对待编码图像块CTU的划分,可以采用QT、BT(如HBT(Horizontal Binary Tree,水平二叉树)、VBT(Vertical Binary Tree,垂直二叉树))、EQT(如HEQT(Horizontal Extended Quad Tree,水平扩展四叉树)、VEQT(VerticalExtended Quad Tree,垂直扩展四叉树))、TT(如HTT(Horizontal Ternary Tree,水平三叉树)、VTT(Vertical Ternary Tree,垂直三叉树))等划分方式中的一种划分方式或多种划分方式的组合。下面结合图2对这几种划分方式进行介绍说明。
针对某一编码图像块CTU,可以将该CTU作为根节点(root),划分成若干叶节点(Leaf Node)。一个节点对应于一个图像区域,如果某一节点不再继续划分,则将该节点称为叶节点,且其所对应的图像区域就形成一个CU;如果该节点继续划分,则可以采用上述一种划分方式或多种划分方式的组合将该节点划分为多个子区域,每个子区域对应一个子节点,之后需要分别确定这些子节点是否还会继续划分。示例性地,假设根节点的划分层级为0,则子节点的划分层级可以为根(父)节点的划分层级加1。在视频编码过程中,通常编码器设置有CU的最小块尺寸,在划分过程中,若某一节点的块尺寸等于该最小块尺寸,则该节点默认不再继续划分。为了便于表述,下文中将“节点对应的图像区域”简称为“节点”。
1、QT划分方式。
针对某一节点,可以采用QT划分方式将该节点划分为4个子节点。如图2(a)所示,按照QT划分方式可以将该节点划分成四个相同块尺寸的子节点(各个子节点的宽相同、高也相同,且宽为划分前节点的宽的一半,高为划分前节点的高的一半)。
例如,对于块尺寸为64×64的节点,若不再继续划分该节点,则该节点直接成为1个块尺寸为64×64的CU;若继续划分该节点,则可以按照QT划分方式将该节点划分为4个块尺寸为32×32的节点。对于这4个块尺寸为32×32的节点中的某一节点,若继续划分该节点,则产生4个块尺寸为16×16的节点。
2、BT划分方式。
针对某一节点,可以采用BT划分方式将该节点划分成2个子节点。可选地,BT划分方式包括两种类型:HBT划分方式和VBT划分方式。其中,如图2(b)所示,HBT划分方式是将节点划分成上、下两个相同块尺寸的子节点(各个子节点的宽相同、高也相同,且宽等于划分前节点的宽,高为划分前节点的高的一半);如图2(c)所示,VBT是将节点划分成左、右两个相同大小的子节点(各个子节点的宽相同、高也相同,且宽为划分前节点的宽的一半,高等于划分前节点的高)。
例如,对于块尺寸为64×64的节点,若不再继续划分该节点,则该节点直接成为1个块尺寸为64×64的CU;若继续划分该节点,则可以按照HBT划分方式将该节点划分为2个块尺寸为64×32的节点,或者按照VBT划分方式将该节点划分为2个块尺寸为32×64的节点。
3、EQT划分方式。
针对某一节点,可以采用EQT划分方式将该节点划分为4个子节点。可选地,EQT划分方式包括两种类型:HEQT划分方式和VEQT划分方式。其中,如图2(d)所示,HEQT划分方式是将节点划分为上、中、下三个子区域,并将中间的子区域水平划分为中左、中右两个子节点(上、下这两个子节点的宽等于划分前节点的宽、高为划分前节点的高的四分之一,中左、中右这两个子节点的宽为划分前节点的宽的一半、高也为划分前节点的高的一半);如图2(e)所示,VEQT划分方式是将节点划分为左、中、右三个子区域,并且将中间的子区域垂直划分为中上、中下这两个子节点(左、右这两个子节点的宽为划分前节点的宽的四分之一、高等于划分前节点的高,中上、中下这两个子节点的宽为划分前节点的宽的二分之一,高为划分前节点的高的二分之一)。
例如,对于块尺寸为64×64的节点,若不再继续划分该节点,则该节点直接成为1个块尺寸为64×64的CU;若继续划分该节点,则可以按照HEQT划分方式将该节点划分为4个节点,这4个节点的块尺寸分别为64×16、32×32、32×32以及64×16,或者按照VEQT划分方式将该节点划分为4个子节点,这4个子节点的块尺寸分别为16×64、32×32、32×32以及16×64。
4、TT划分方式。
针对某一节点,可以采用TT划分方式将该节点划分为3个子节点。可选地,TT划分方式包括两种类型:HTT划分方式和VTT划分方式。其中,如图2(f)所示,HTT划分方式是将节点划分成上、中、下三个子节点(上、下这两个子节点的宽等于划分前节点的宽、高为划分前节点的高的四分之一,中这一节点的宽等于划分前节点的宽、高为划分前节点的高的一半);如图2(g)所示,VTT是将节点划分成左、中、右三个子节点(左、右这两个子节点的宽为划分前节点的宽的四分之一、高等于划分前节点的高,中这一节点的宽为划分前节点的宽的一半、高等于划分前节点的宽)。
在视频编码过程中,可以直接使用上述一种划分方式将待编码图像块CTU递归划分形成多个CU,如图3(a)所示,使用上述QT划分方式将CTU递归划分形成多个CU,或者如图3(b)所示,使用上述EQT划分方式将CTU递归划分形成多个CU;也可以使用上述多种划分方式的组合将待编码图像块CTU划分形成多个CU,如图3(c)所示,使用上述QT划分方式和BT划分方式(以下称为“QTBT划分方式”)将CTU划分为多个CU,或者如图3(d)所示,使用上述QT划分方式和EQT划分方式将CTU划分为多个CU。在使用多种划分方式的组合对CTU进行划分的情况下,需要注意:使用BT划分方式得到的节点可以继续使用EQT划分方式,但是不可以继续使用QT划分方式。
在相关技术中,为了便于访问划分得到的CU的模式信息,如MV、RD代价等,为这些CU分配了一定的内存空间,以存储这些CU的模式信息,在需要访问某一CU的模式信息时,读取该CU对应的内存位置上存储的信息即可。通常,为了明确某一CU的内存位置,可以采用光栅扫描的方式确定该CU的索引值,并将该CU的索引值与该CU的内存位置之间对应起来,以便于后续根据该CU的索引值读取对应的内存位置上存储的模式信息。在对CTU进行光栅扫描的过程中,除了明确通过上述划分方式得到的CU的索引值之外,还会得到一些不存在的CU的索引值,针对这些CU也为其建立对应的内存位置,但这些CU的内存位置上没有存储模式信息。
针对采用QT划分方式、BT划分方式、QTBT划分方式等对CTU进行划分得到的CU中的某一块尺寸的CU,相关技术在水平方向上以该块尺寸的CU的宽为步长、在垂直方向上以该块尺寸的CU的高为步长,对该CTU进行光栅扫描,并根据光栅扫描的顺序建立起光栅扫描过程中扫描到的单元与内存位置之间的对应关系。例如,如图4(a)所示,通过QT划分方式对CTU进行划分得到多个CU,针对宽为w、高为h的CU,通过对CTU进行从左往右、从上往下的光栅扫描,得到多个扫描单元,并确定每一个扫描单元的索引值,以建立起索引值与内存位置之间的对应关系。
然而,由于采用上述TT划分方式以及EQT划分方式对待编码图像块进行划分得到的CU,在待编码图像块中的分布存在不规律性的特点,采用相关技术中在水平方向上以该CU的宽为步长、在垂直方向上以该CU的高为步长对该CTU进行光栅扫描,可能会导致扫描不到该CU的位置。如图4(b)所示,通过EQT划分方式对CTU划分得到多个CU,针对宽为w、高为h的第一CU,若水平方向上以w为步长、垂直方向上以h为步长,对CTU进行光栅扫描,将扫描不到该第一CU,进而无法明确该第一CU对应的索引值,也就无法建立起与内存位置之间的对应关系。为了便于访问这些分布不规律的CU的模式信息,相关技术提前罗列出这些CU的所有可能位置和尺寸,然后确定这些CU的索引值,并建立索引值与内存位置之间的对应关系,在需要访问某一CU的模式信息时,根据该CU的索引值读取对应内存位置上的信息即可。然而,通过罗列的形式存储模式信息,在需要访问某一CU的模式信息时,还需要重新罗列出待编码图像块中所有CU的可能位置和尺寸,才能确定该CU的索引值,索引值的确定过程复杂且低效,不利于访问效率的提升。
为了简化访问过程、提升访问效率,针对上述分布不规律的CU,本申请实施例提出了一种采用小于该CU的块尺寸的扫描步长对CTU进行扫描,以明确该CU的索引值,便于后续通过该CU的索引值确定该CU的内存位置,并读取该内存位置上存储的模式信息。
请参考图5,其示出了本申请一个实施例提供的通信***的简化框图。通信***200包括多个设备,所述设备可通过例如网络250彼此通信。举例来说,通信***200包括通过网络250互连的第一设备210和第二设备220。在图5的实施例中,第一设备210和第二设备220执行单向数据传输。举例来说,第一设备210可对视频数据例如由第一设备210采集的视频图片流进行编码以通过网络250传输到第二设备220。已编码的视频数据以一个或多个已编码视频码流形式传输。第二设备220可从网络250接收已编码视频数据,对已编码视频数据进行解码以恢复视频数据,并根据恢复的视频数据显示视频图片。单向数据传输在媒体服务等应用中是较常见的。
在另一实施例中,通信***200包括执行已编码视频数据的双向传输的第三设备230和第四设备240,所述双向传输可例如在视频会议期间发生。对于双向数据传输,第三设备230和第四设备240中的每个设备可对视频数据(例如由设备采集的视频图片流)进行编码,以通过网络250传输到第三设备230和第四设备240中的另一设备。第三设备230和第四设备240中的每个设备还可接收由第三设备230和第四设备240中的另一设备传输的已编码视频数据,且可对所述已编码视频数据进行解码以恢复视频数据,且可根据恢复的视频数据在可访问的显示装置上显示视频图片。
在图5的实施例中,第一设备210、第二设备220、第三设备230和第四设备240可为服务器、个人计算机和智能电话等计算机设备,但本申请公开的原理可不限于此。本申请实施例适用于PC(Personal Computer,个人计算机)、手机、平板电脑、媒体播放器和/或专用视频会议设备。网络250表示在第一设备210、第二设备220、第三设备230和第四设备240之间传送已编码视频数据的任何数目的网络,包括例如有线连线的和/或无线通信网络。通信网络250可在电路交换和/或分组交换信道中交换数据。该网络可包括电信网络、局域网、广域网和/或互联网。出于本申请的目的,除非在下文中有所解释,否则网络250的架构和拓扑对于本申请公开的操作来说可能是无关紧要的。
作为实施例,图6示出视频编码器和视频解码器在流式传输环境中的放置方式。本申请所公开主题可同等地适用于其它支持视频的应用,包括例如视频会议、数字TV(电视)、在包括CD(Compact Disc,光盘)、DVD(Digital Versatile Disc,数字通用光盘)、存储棒等的数字介质上存储压缩视频等等。
流式传输***可包括采集子***313,所述采集子***可包括数码相机等视频源301,所述视频源创建未压缩的视频图片流302。在实施例中,视频图片流302包括由数码相机拍摄的样本。相较于已编码的视频数据304(或已编码的视频码流),视频图片流302被描绘为粗线以强调高数据量的视频图片流,视频图片流302可由电子装置320处理,所述电子装置320包括耦接到视频源301的视频编码器303。视频编码器303可包括硬件、软件或软硬件组合以实现或实施如下文更详细地描述的所公开主题的各方面。相较于视频图片流302,已编码的视频数据304(或已编码的视频码流304)被描绘为细线以强调较低数据量的已编码的视频数据304(或已编码的视频码流304),其可存储在流式传输服务器305上以供将来使用。一个或多个流式传输客户端子***,例如图6中的客户端子***306和客户端子***308,可访问流式传输服务器305以检索已编码的视频数据304的副本307和副本309。客户端子***306可包括例如电子装置330中的视频解码器310。视频解码器310对已编码的视频数据的传入副本307进行解码,且产生可在显示器312(例如显示屏)或另一呈现装置(未描绘)上呈现的输出视频图片流311。在一些流式传输***中,可根据某些视频编码/压缩标准对已编码的视频数据304、副本307和副本309(例如视频码流)进行编码。
应注意,电子装置320和电子装置330可包括其它组件(未示出)。举例来说,电子装置320可包括视频解码器(未示出),且电子装置330还可包括视频编码器(未示出)。其中,视频解码器用于对接收到的已编码视频数据进行解码;视频编码器用于对视频数据进行编码。
需要说明的一点是,本申请实施例提供的技术方案可以应用于H.266/VVC标准、H.265/HEVC标准、AVS(如AVS3)或者下一代视频编解码标准中,本申请实施例对此不作限定。
还需要说明的一点是,本申请实施例提供的视频编解码中的编码单元的索引值确定方法,各步骤的执行主体可以是编码端设备。在视频编码的过程中,可以采用本申请实施例提供的技术方案,对编码单元的索引值进行确定。编码端设备可以是计算机设备,该计算机设备是指具备数据计算、处理和存储能力的电子设备,如PC、手机、平板电脑、媒体播放器、专用视频会议设备、服务器等等。另外,本申请所提供的方法可以单独使用或以任意顺序与其他方法合并使用。基于本申请所提供方法的编码器,可以由1个或多个处理器或是1个或多个集成电路来实现。
下面,通过几个实施例对本申请技术方案进行介绍说明。
请参考图7,其示出了本申请一个实施例提供的编码单元的索引值确定方法的流程图。为了便于说明,仅以各步骤执行主体为计算机设备进行介绍说明。该方法可以包括如下几个步骤(710~740):
步骤710,采用目标划分方式对目标编码块进行划分,得到多个编码单元。
目标编码块是指视频编码过程中的待编码图像块。由上述“块划分结构”的介绍说明可知,在进行视频编码的过程中,视频信号中的一帧图像可以被分割成互不重叠的CTU,通常,可以将CTU称为待编码图像块,也即目标编码块。本申请实施例对目标编码块的形状不作限定,通常,目标编码块为方形,也即,目标编码块的宽和高相等。本申请实施例对目标编码块的块尺寸大小不作限定,可选地,目标编码块的尺寸为64×64或128×128,实际应用中,目标编码块的尺寸可以结合视频编码器所允许的最大编码块的块尺寸确定,例如,视频编码器所允许的最大编码块的块尺寸为128×128,则目标编码块的块尺寸小于或等于128×128。
计算机设备可以采用目标划分方式将上述目标编码块(CTU)划分为多个编码单元(CU)。本申请实施例对目标划分方式的数量不作限定,可选地,目标划分方式包含一种划分目标编码块的划分方式,或者,目标划分方式包含多种划分目标编码块的划分方式。本申请实施例对目标划分方式的类型不作限定,可选地,目标划分方式为上述QT、BT、TT、EQT等划分方式中的任一种划分方式或任意数量的划分方式的组合,例如,目标划分方式为EQT划分方式;或者,目标划分方式为TT划分方式;或者,目标划分方式为QT和EQT划分方式的组合。
由上述实施例的介绍说明可知,针对采用QT划分方式、BT划分方式、QTBT划分方式等对CTU进行划分得到的CU,由于这些CU的分布存在一定的规律,对于这些CU中的某一块尺寸的CU,在水平方向上以该块尺寸的CU的宽为步长、在垂直方向上以该块尺寸的CU的高为步长,对该CTU进行光栅扫描,即可建立起该块尺寸的CU的索引值与内存位置之间的对应关系。然而,采用EQT划分和/或TT划分等得到的CU的分布没有规律性,对于这些CU中的某一块尺寸的CU,将无法通过上述扫描步长的光栅扫描的方式建立起该块尺寸的CU与内存位置之间的对应关系。因此,在一个示例中,上述目标划分方式包括以下至少一项:EQT划分方式、TT划分方式。实际应用中,通过QT划分方式、BT划分方式、QTBT划分方式得到的CU可以直接采用上述扫描步长的光栅扫描即可,出于节约内存空间和降低索引复杂度的考虑,通常这些划分方式得到的CU不采用本申请实施例提供的技术方案。
步骤720,对于多个编码单元中的目标编码单元,确定目标编码单元相对于目标编码块中参考点的位置信息。
目标编码单元包括上述多个编码单元中采用目标划分方式之外的其它划分方式无法得到的编码单元,本申请实施例对其它划分方式的具体类型不作限定,可选地,在目标划分方式包括EQT划分方式或TT划分方式的情况下,其它划分方式包括以下至少一项:QT划分方式、BT划分方式、QTBT划分方式。可选地,本申请实施例中,先采用其它划分方式对目标编码块进行划分,然后采用目标划分方式对目标编码块进行划分,对通过目标划分方式得到的多个编码单元中无法通过其它划分方式得到的目标编码单元,确定目标编码单元相对于目标编码块中参考点的位置信息。
例如,如图4(a)所示,先通过QT划分方式对目标编码块进行划分,如图4(b)所示,再采用EQT划分方式对目标编码块进行划分,通过EQT划分方式得到的CU中的第一CU,是通过其它划分方式无法得到的CU,本申请实施例将该第一CU确定为目标CU。本申请实施例对目标编码单元的数量不作限定,可选地,目标编码单元的数量为一个;或者,目标编码单元的数量为多个。在目标编码单元的数量为多个的情况下,本申请实施例对目标编码单元的块尺寸大小不作限定,可选地,该目标编码单元的块尺寸均相同;或者,该目标编码单元的块尺寸均不相同;或者,该目标编码单元中部分编码单元的块尺寸相同,部分编码单元的块尺寸不相同。在目标编码单元的数量为多个的情况下,计算机设备可以对该目标编码单元进行逐一处理,也可以并行对该目标编码单元进行处理,本申请实施例对此不作限定。下述方法实施例中,以目标编码单元的数量为一个为例进行举例说明,应理解,这并不构成对本申请的技术方案的限定。
对于目标编码单元,计算机设备可以先确定该目标编码单元相对于目标编码块中参考点的位置信息。如图8所示,在视频编码过程中,为了便于表示各个CU的位置,会为CTU建立直角坐标系,以二维坐标的形式表示各个CU的位置。通常,可以称这个直角坐标系的零点为目标编码块中参考点,则各个CU的位置即为各个CU相对于该目标编码块中参考点的位置信息。可选地,目标编码单元的位置信息,是指目标编码单元的左上角的顶点相对于目标编码块中参考点的位置信息,例如,如图8所示,目标编码单元的位置信息为目标编码单元的顶点20相对于目标编码块中参考点10的位置信息。
在一个示例中,目标编码单元的位置信息包含两方面的内容:水平位置信息和垂直位置信息,其中,水平位置信息是指目标编码单元相对于参考点在水平方向上的位移,垂直位置信息是指目标编码单元相对于参考点在垂直方向上的位移。本申请实施例对位置信息的表示方式不作限定,可选地,位置信息以坐标的形式表示,如(x,y),其中,x为水平位置信息,y为垂直位置信息;或者,位置信息以表达式的形式表示,如x=a、y=b,其中,a和b均为常数,x为水平位置信息,y为垂直位置信息。
步骤730,获取目标编码单元对应的扫描步长,扫描步长是指扫描目标编码块所采用的步长,且扫描步长小于或等于目标编码单元的块尺寸的二分之一。
计算机设备根据目标编码单元的块尺寸,可以确定目标编码单元对应的扫描步长。扫描步长是指针对目标编码单元,扫描目标编码块时所采用的步长。可选地,本申请实施例中的扫描为光栅扫描。本申请实施例对计算机设备获取扫描步长的方式不作限定,可选地,计算机设备中预先存储有CU的块尺寸与扫描步长之间的对应关系,如以列表的形式存储有块尺寸和扫描步长之间的对应关系,计算机设备从该对应关系中找到与目标编码单元的块尺寸对应的扫描步长即可;或者,计算机设备在确定了目标编码单元的块尺寸之后,根据该块尺寸即时计算扫描步长。有关扫描步长的计算过程可以参见下述实施例,此处不多赘述。
由于在对目标编码块的划分过程中,无论采用何种划分方式进行划分,总会得到一些编码单元的宽小于或等于其父节点的宽的二分之一,或者得到一些编码单元的高小于或等于其父节点的高的二分之一。因此,本申请实施例中,为了在对目标编码块进行扫描的过程中能够扫描到各种块尺寸的编码单元,目标编码单元对应的扫描步长小于或等于目标编码单元的块尺寸的二分之一。可选地,扫描步长包括水平扫描步长和垂直扫描步长,本申请实施例中,水平扫描步长小于或等于目标编码单元的块尺寸的二分之一,垂直扫描步长小于或等于目标编码单元的块尺寸的二分之一。
在一个示例中,上述方法还包括:根据目标编码单元的块尺寸确定目标编码单元对应的扫描步长;按照扫描步长对目标编码块进行扫描,得到多个扫描单元;建立目标编码单元对应的索引关系,索引关系用于指示多个扫描单元的索引值与内存位置之间的对应关系;存储目标编码单元对应的索引关系。
计算机设备在确定目标编码单元对应的扫描步长后,即可按照该扫描步长对目标编码块进行扫描,从而得到多个扫描单元。这多个扫描单元中包括实际划分得到的编码单元,还包括一些实际划分过程中没有得到的扫描单元,如图9所示,对于目标编码单元20,假设采用目标编码单元20的块尺寸的二分之一作为扫描步长对目标编码块10进行扫描,此时,除了扫描到目标编码单元20之外,还会扫描到一些不属于多个编码单元中的扫描单元,如扫描单元30。本申请实施例中,可以为所有的扫描单元划分对应的内存位置,针对实际划分得到的编码单元,其对应的内存位置上存储有该编码单元的模式信息,针对实际划分没有得到的扫描单元,其对应的内存位置上不存储信息。有关扫描步长的确定过程可以参见下述实施例,此处不多赘述。
通过在多个扫描单元的索引值与内存位置之间建立起对应关系,即可得到目标编码单元对应的索引关系。可选地,计算机设备按照扫描的顺序确定多个扫描单元的索引值。例如,如图9所示,对目标编码块的扫描是按照从左往右、从上往下的顺序,则扫描得到的扫描单元也按照从左往右、从上往下的顺序确定索引值。在确定目标编码单元对应的索引关系后,计算机设备可以存储该索引关系,以便于后续根据目标编码单元的索引值,访问该目标编码单元的模式信息。可选地,为了避免产生不必要的处理开销,本申请实施例中,针对多个编码单元中块尺寸相同的编码单元,对目标编码块进行一次扫描,建立一个索引关系即可。
步骤740,根据位置信息和扫描步长,确定目标编码单元的索引值。
在需要访问目标编码单元的模式信息的情况下,计算机设备可以根据上述位置信息和扫描步长,确定目标编码单元的索引值,通过目标编码单元的索引值,计算机设备可以访问到该目标编码单元的内存位置,以读取该内存位置上存储的模式信息。有关目标编码单元的索引值的确定过程请参见下述实施例,此处不多赘述。
在一个示例中,上述步骤740之后,还包括:获取目标编码单元对应的索引关系,索引关系用于指示索引值与内存位置之间的对应关系;从索引关系中获取与目标编码单元的索引值对应的内存位置,得到目标编码单元的内存位置。
计算机设备可以在对目标编码块进行扫描之后,存储目标编码单元对应的索引关系,在后续需要访问目标编码单元的模式信息时,从存储的信息中获取目标编码单元对应的索引关系。由于索引关系用于指示索引值与内存位置之间的对应关系,计算机设备可以从索引关系中获取与目标编码单元的索引值对应的内存位置,以得到该目标编码单元的内存位置,然后读取该内存位置上存储的模式信息。
需要说明的一点是,本申请实施例对步骤720和步骤730的执行先后顺序不作限定,可选地,计算机设备同时执行步骤720和步骤730;或者,计算机设备先执行步骤720,后执行步骤730;或者,计算机设备先执行步骤730,后执行步骤720。图7仅以计算机设备先执行步骤720,后执行步骤730为例进行举例说明,应理解,这并不构成对步骤720和步骤730的执行先后顺序的限定。
综上所述,本申请实施例提供的技术方案,针对分布不规律的编码单元,通过设置该编码单元对应的扫描步长为该编码单元的块尺寸的二分之一,实现了根据该扫描步长扫描待编码图像块时,准确扫描出该分布不规律的编码单元。另外,本申请实施例通过设置编码单元对应的扫描步长为该编码单元的块尺寸的二分之一,实现通过扫描的方式建立分布不规律的编码单元的索引关系,也即,该编码单元的索引值与内存位置之间的对应关系,后续根据该编码单元的位置信息和该编码单元对应的扫描步长,可以快速确定该编码单元的索引值,从而明确该编码单元的内存位置,以读取该内存位置上存储的模式信息。相比于相关在存储和访问分布不规律的编码单元的模式信息时,需要一一罗列所有可能的编码单元才能确定该编码单元的索引值导致访问复杂度较高,本申请实施例提供的技术方案通过扫描建立起索引值和存储模式信息的内存位置之间的对应关系,后续根据编码单元的位置信息和扫描步长即可快速确定编码单元的索引值,进而快速确定编码单元的内存位置,降低了访问复杂度,提升了模式信息的访问效率。
下面对目标编码单元的索引值的确定过程进行介绍说明。
在一个示例中,上述步骤740包括如下几个步骤:
(1)根据位置信息中的水平位置信息和扫描步长中的水平步长,确定目标编码单元的列信息。
扫描步长中的水平步长是指两次相邻的水平扫描之间的间隔,位置信息中的水平位置信息是指目标编码单元相对于目标编码块中参考点的水平间隔,计算机设备通过根据该水平位置信息和该水平步长,可以确定目标编码单元的列信息,也即,目标编码单元在扫描得到的多个扫描单元中位于某一列的信息。可选地,计算机设备将水平位置信息除以水平步长,即可得到列信息。例如,假设水平位置信息为x,水平步长为Sx,则列信息可以通过x/Sx计算得到,该计算过程对应的计算机程序代码可以表示为:x>>log2Sx
(2)根据位置信息中的垂直位置信息和扫描步长中的垂直步长,确定目标编码单元的行信息。
扫描步长中的垂直步长是指两次相邻的垂直扫描之间的间隔,位置信息中的垂直位置信息是指目标编码单元相对于目标编码块中参考点的垂直间隔,计算机设备通过根据该垂直位置信息和该垂直步长,可以确定目标编码单元的行信息,也即,目标编码单元在扫描得到的多个扫描单元中位于某一行的信息。可选地,计算机设备将垂直位置信息除以垂直步长,即可得到行信息。例如,假设垂直位置信息为y,垂直步长为Sy,则行信息可以通过y/Sy计算得到,该计算过程对应的计算机程序代码可以表示为:y>>log2Sy
(3)根据列信息和行信息,确定目标编码单元的索引值。
基于计算得到的列信息和行信息,计算机设备可以进一步确定该目标编码单元的索引值。在一个示例中,上述步骤(3)包括:获取行扫描次数;根据行信息和行扫描次数,确定初始索引值;根据初始索引值和列信息,确定目标编码单元的索引值。
其中,行扫描次数是指扫描目标编码块的一行所扫描的次数,通常,行扫描次数等于一行中包括的扫描单元的数量。可选地,上述行扫描次数可以通过如下过程确定:获取目标编码块对应的最大编码块尺寸;根据最大编码块尺寸和水平步长,确定行扫描次数。最大编码块尺寸是指划分目标编码块所能得到的最大编码单元的块尺寸,通常,最大编码块尺寸等于目标编码块的尺寸。计算机设备根据最大编码块尺寸和水平步长,可以确定行扫描次数,可选地,计算机设备将最大编码块尺寸与水平步长相除的结果减1,即可得到行扫描次数。例如,假设最大编码块尺寸为MAX_CU_SIZE,水平步长为Sx,则行扫描次数可以通过(MAX_CU_SIZE/Sx-1)得到,该计算过程对应的计算机程序代码可以表示为:1<<(log2MAX_CU_SIZE-log2Sx)-1。
确定了行扫描次数和行信息之后,计算机设备可以确定初始索引值,该初始索引值是指目标编码单元所在行第一个扫描单元的索引值。可选地,计算机设备在确定多个扫描单元的索引值时,是从第0行的第0个扫描单元开始排序的,因而将行扫描次数与行信息相乘,即可得到初始索引值。例如,通过上述行扫描次数(MAX_CU_SIZE/Sx-1)和行信息y/Sy,可以通过(y/Sy)×(MAX_CU_SIZE/Sx-1)得到初始索引值,该计算过程对应的计算机程序代码可以表示为:(y>>log2Sy)×(1<<(log2MAX_CU_SIZE-log2Sx)-1)。进一步地,计算机设备可以根据初始索引值和列信息,确定目标编码单元的索引值,可选地,计算机设备将初始索引值与列信息相加,即可得到目标编码单元的索引值。例如,通过上述初始索引值((y/Sy)×(MAX_CU_SIZE/Sx-1))和列信息x/Sx,可以通过((y/Sy)×(MAX_CU_SIZE/Sx-1)+x/Sx)得到目标编码单元的索引值,该计算过程对应的计算机程序代码可以表示为:(y>>log2Sy)
×(1<<(log2MAX_CU_SIZE-log2Sx)-1)+x/Sx
综上所述,本申请实施例提供的技术方案,通过根据位置信息和扫描步长,确定编码单元的行信息和列信息,并根据扫描步长和最大编码块尺寸,确定行扫描次数,然后根据行信息和行扫描次数确定初始索引值,最后根据初始索引值和列信息确定该编码单元的索引值,提供了一种根据位置信息和扫描步长准确确定分布不规律的编码单元的索引值的方式,通过该索引值即可定位到该编码单元的内存位置。相比于相关技术需要一一罗列所有可能的编码单元才能确定内存位置,本申请实施例提供的技术方案可以快速确定编码单元的内存位置,简化访问过程,提升访问效率。
下面对目标编码单元对应的扫描步长的获取过程进行介绍说明。
在一个示例中,上述步骤730包括如下几个步骤:
(1)将目标编码单元的宽与第一因子相乘,得到水平方向的参考扫描步长。
目标编码单元的块尺寸通常可以表示为w×h,其中,w为目标编码单元的宽,h为目标编码单元的高。计算机设备将目标编码单元的宽与第一因子相乘,即可得到水平方向的参考扫描步长。例如,第一因子为二分之一,则水平方向的参考扫描步长为w/2。本申请实施例对第一因子的确定方式不作限定,可选地,第一因子可以是计算机设备预先确定的,如计算机设备预先存储有宽和第一因子之间的对应关系,根据目标编码单元的宽,即可查询到对应的第一因子;或者,第一因子是计算机设备根据目标编码单元的宽实时确定的,有关确定过程请参见下述实施例,此处不多赘述。针对不同的编码单元的宽,第一因子可以相同,也可以不同,例如,针对较大的编码单元的宽,第一因子可以较大,针对较小的编码单元的宽,第一因子可以较小,本申请实施例对此不作限定。
(2)将目标编码单元的高与第二因子相乘,得到垂直方向的参考扫描步长。
计算机设备将目标编码单元的高与第二因子相乘,即可得到垂直方向的参考扫描步长。例如,第二因子为二分之一,则垂直方向的参考扫描步长为h/2。本申请实施例对第二因子的确定方式不作限定,可选地,第二因子可以是计算机设备预先确定的,如计算机设备预先存储有高和第二因子之间的对应关系,根据目标编码单元的高,即可查询到对应的第二因子;或者,第二因子是计算机设备根据目标编码单元的高实时确定的,有关确定过程请参见下述实施例,此处不多赘述。针对不同的编码单元的高,第二因子可以相同,也可以不同,例如,针对较大的编码单元的高,第二因子可以较大,针对较小的编码单元的高,第二因子可以较小,本申请实施例对此不作限定。可选地,本申请实施例中,第一因子和第二因子可以相同,也可以不相同,实际应用中,可以结合目标编码单元的宽和高之间的关系来确定。可选地,第一因子小于或等于二分之一,第二因子小于或等于二分之一。
(3)根据水平方向的参考扫描步长和垂直方向的参考扫描步长,确定扫描步长。
在得到参考扫描步长后,即可确定具体的扫描步长。可选地,为了准确扫描出目标编码单元,扫描步长中的水平步长小于或等于水平方向的参考扫描步长,扫描步长中的垂直步长小于或等于垂直方向的参考扫描步长。可选地,为了在确保准确扫描出目标编码单元的同时,节约内存存储空间,本申请实施例中,水平步长等于水平方向的参考扫描步长,垂直步长等于垂直方向的参考扫描步长。示例性地,针对EQT划分方式,若水平方向的参考扫描步长为w/2,垂直方向的参考扫描步长为h/2,则水平步长为w/2,垂直步长为h/2。
可选地,上述方法还包括:获取目标编码单元对应的参考编码单元,参考编码单元是指多个编码单元中划分深度与目标编码单元的划分深度相同的编码单元;确定参考编码单元的最小宽和最小高;基于目标编码单元的宽和最小宽,确定第一因子;基于目标编码单元的高和最小高,确定第二因子。
计算机设备可以根据划分深度,获取目标编码单元对应的参考编码单元。其中,划分深度也即上述实施例中的划分层级。进一步地,计算机设备可以确定参考编码单元中的最小宽和最小高,然后基于最小宽和目标编码单元的宽,确定第一因子;基于最小高和目标编码单元的高,确定第二因子,可选地,计算机设备将最小宽和目标编码单元的宽中较小的值除以较大的值,得到第一因子;将最小高和目标编码单元的高中较小的值除以较大的值,得到第二因子。
综上所述,本申请实施例提供的技术方案,通过根据目标编码单元的块尺寸,确定参考扫描步长,然后根据参考扫描步长确定扫描时采用的扫描步长,提供了扫描步长的确定依据。并且,本申请实施例通过依据与编码单元的划分深度相同的编码单元的块尺寸,充分考虑了影响扫描准确性的因素,确保准确扫描出分布不规律的编码单元。
下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。
请参考图10,其示出了本申请一个实施例提供的编码单元的索引值确定装置的框图。该装置具有实现上述编码单元的索引值确定方法示例的功能,所述功能可以由硬件实现,也可以由硬件执行相应的软件实现。该装置可以是上文介绍的计算机设备,也可以设置在计算机设备上。该装置1000可以包括:编码块划分模块1010、信息确定模块1020、步长获取模块1030和索引值确定模块1040。
编码块划分模块1010,用于采用目标划分方式对目标编码块进行划分,得到多个编码单元。
信息确定模块1020,用于对于所述多个编码单元中的目标编码单元,确定所述目标编码单元相对于所述目标编码块中参考点的位置信息。
步长获取模块1030,用于获取所述目标编码单元对应的扫描步长,所述扫描步长是指扫描所述目标编码块所采用的步长,且所述扫描步长小于或等于所述目标编码单元的块尺寸的二分之一。
索引值确定模块1040,用于根据所述位置信息和所述扫描步长,确定所述目标编码单元的索引值。
在一个示例中,如图11所示,所述索引值确定模块1040,包括:列信息确定子模块1042,用于根据所述位置信息中的水平位置信息和所述扫描步长中的水平步长,确定所述目标编码单元的列信息;行信息确定子模块1046,用于根据所述位置信息中的垂直位置信息和所述扫描步长中的垂直步长,确定所述目标编码单元的行信息;索引值确定子模块1044,用于根据所述列信息和所述行信息,确定所述目标编码单元的索引值。
在一个示例中,如图11所示,所述索引值确定子模块1044,包括:次数获取单元10442,用于获取行扫描次数,所述行扫描次数是指扫描所述目标编码块的一行所扫描的次数;初始值确定单元10444,用于根据所述行信息和所述行扫描次数,确定初始索引值,所述初始索引值是指所述目标编码单元所在行第一个扫描单元的索引值;索引值确定单元10446,用于根据所述初始索引值和所述列信息,确定所述目标编码单元的索引值。
在一个示例中,如图11所示,所述次数获取单元10442,用于:获取所述目标编码块对应的最大编码块尺寸,所述最大编码块尺寸是指划分所述目标编码块所能得到的最大编码单元的块尺寸;根据所述最大编码块尺寸和所述水平步长,确定所述行扫描次数。
在一个示例中,如图11所示,所述步长获取模块1030,用于:将所述目标编码单元的宽与第一因子相乘,得到水平方向的参考扫描步长;将所述目标编码单元的高与第二因子相乘,得到垂直方向的参考扫描步长;根据所述水平方向的参考扫描步长和所述垂直方向的参考扫描步长,确定所述扫描步长。
在一个示例中,所述扫描步长中的水平步长小于或等于所述水平方向的参考扫描步长,所述扫描步长中的垂直步长小于或等于所述垂直方向的参考扫描步长。
在一个示例中,如图11所示,所述装置1000还包括:单元获取模块1052,用于获取所述目标编码单元对应的参考编码单元,所述参考编码单元是指所述多个编码单元中划分深度与所述目标编码单元的划分深度相同的编码单元;信息确定模块1054,用于确定所述参考编码单元的最小宽和最小高;第一因子确定模块1056,用于基于所述目标编码单元的宽和所述最小宽,确定所述第一因子;第二因子确定模块1058,用于基于所述目标编码单元的高和所述最小高,确定所述第二因子。
在一个示例中,所述第一因子小于或等于二分之一,所述第二因子小于或等于二分之一。
在一个示例中,所述目标划分方式包括以下至少一项:扩展四叉树EQT划分方式、三叉树TT划分方式。
在一个示例中,所述目标编码单元为所述多个编码单元中无法通过其它划分方式得到的编码单元,所述其它划分方式包括除所述目标划分方式之外的划分方式。
在一个示例中,如图11所示,所述装置1000还包括:关系获取模块1062,用于获取所述目标编码单元对应的索引关系,所述索引关系用于指示索引值与内存位置之间的对应关系;位置确定模块1064,用于从所述索引关系中获取与所述目标编码单元的索引值对应的内存位置,得到所述目标编码单元的内存位置。
在一个示例中,如图11所示,所述装置1000还包括:编码块扫描模块1072,用于按照所述扫描步长对所述目标编码块进行扫描,得到多个扫描单元;关系建立模块1074,用于建立所述目标编码单元对应的索引关系,所述索引关系用于指示所述多个扫描单元的索引值与内存位置之间的对应关系;关系存储模块1076,用于存储所述目标编码单元对应的索引关系。
综上所述,本申请实施例提供的技术方案,针对分布不规律的编码单元,通过设置该编码单元对应的扫描步长为该编码单元的块尺寸的二分之一,实现了根据该扫描步长扫描待编码图像块时,准确扫描出该分布不规律的编码单元。另外,本申请实施例通过设置编码单元对应的扫描步长为该编码单元的块尺寸的二分之一,实现通过扫描的方式建立分布不规律的编码单元的索引关系,也即,该编码单元的索引值与内存位置之间的对应关系,后续根据该编码单元的位置信息和该编码单元对应的扫描步长,可以快速确定该编码单元的索引值,从而明确该编码单元的内存位置,以读取该内存位置上存储的模式信息。相比于相关在存储和访问分布不规律的编码单元的模式信息时,需要一一罗列所有可能的编码单元才能确定该编码单元的索引值导致访问复杂度较高,本申请实施例提供的技术方案通过扫描建立起索引值和存储模式信息的内存位置之间的对应关系,后续根据编码单元的位置信息和扫描步长即可快速确定编码单元的索引值,进而快速确定编码单元的内存位置,降低了访问复杂度,提升了模式信息的访问效率。
需要说明的是,上述实施例提供的装置,在实现其功能时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
请参考图12,其示出了本申请一个实施例提供的计算机设备的结构框图。该计算机设备可以是上文介绍的编码端设备。该计算机设备120可以包括:处理器121、存储器122、通信接口123、编码器/解码器124和总线125。
处理器121包括一个或者一个以上处理核心,处理器121通过运行软件程序以及模块,从而执行各种功能应用以及信息处理。
存储器122可用于存储计算机程序,处理器121用于执行该计算机程序,以实现上述编码单元的索引值确定方法。
通信接口123可用于与其它设备进行通信,如收发音视频数据。
编码器/解码器124可用于实现编码和解码功能,如对音视频数据进行编码和解码。
存储器122通过总线125与处理器121相连。
此外,存储器122可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,易失性或非易失性存储设备包括但不限于:磁盘或光盘,EEPROM(ElectricallyErasable Programmable Read-Only Memory,电可擦除可编程只读存储器),EPROM(Erasable Programmable Read-Only Memory,可擦除可编程只读存储器),SRAM(StaticRandom-Access Memory,静态随时存取存储器),ROM(Read-Only Memory,只读存储器),磁存储器,快闪存储器,PROM(Programmable read-only memory,可编程只读存储器)。
本领域技术人员可以理解,图12中示出的结构并不构成对计算机设备120的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
在示例性实施例中,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或所述指令集在被处理器执行时实现上述编码单元的索引值确定方法。
在示例性实施例中,还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述编码单元的索引值确定方法。
应当理解的是,在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
以上所述仅为本申请的示例性实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (14)

1.一种编码单元的索引值确定方法,其特征在于,所述方法包括:
采用目标划分方式对目标编码块进行划分,得到多个编码单元,所述目标划分方式包括以下至少一项:扩展四叉树EQT划分方式、三叉树TT划分方式;
对于所述多个编码单元中的目标编码单元,确定所述目标编码单元相对于所述目标编码块中参考点的位置信息;
获取所述目标编码单元对应的扫描步长,所述扫描步长是指扫描所述目标编码块所采用的步长,且所述扫描步长小于或等于所述目标编码单元的块尺寸的二分之一;
根据所述位置信息和所述扫描步长,确定所述目标编码单元的索引值。
2.根据权利要求1所述的方法,其特征在于,所述根据所述位置信息和所述扫描步长,确定所述目标编码单元的索引值,包括:
根据所述位置信息中的水平位置信息和所述扫描步长中的水平步长,确定所述目标编码单元的列信息;
根据所述位置信息中的垂直位置信息和所述扫描步长中的垂直步长,确定所述目标编码单元的行信息;
根据所述列信息和所述行信息,确定所述目标编码单元的索引值。
3.根据权利要求2所述的方法,其特征在于,所述根据所述列信息和所述行信息,确定所述目标编码单元的索引值,包括:
获取行扫描次数,所述行扫描次数是指扫描所述目标编码块的一行所扫描的次数;
根据所述行信息和所述行扫描次数,确定初始索引值,所述初始索引值是指所述目标编码单元所在行第一个扫描单元的索引值;
根据所述初始索引值和所述列信息,确定所述目标编码单元的索引值。
4.根据权利要求3所述的方法,其特征在于,所述获取行扫描次数,包括:
获取所述目标编码块对应的最大编码块尺寸,所述最大编码块尺寸是指划分所述目标编码块所能得到的最大编码单元的块尺寸;
根据所述最大编码块尺寸和所述水平步长,确定所述行扫描次数。
5.根据权利要求1所述的方法,其特征在于,所述获取所述目标编码单元对应的扫描步长,包括:
将所述目标编码单元的宽与第一因子相乘,得到水平方向的参考扫描步长;
将所述目标编码单元的高与第二因子相乘,得到垂直方向的参考扫描步长;
根据所述水平方向的参考扫描步长和所述垂直方向的参考扫描步长,确定所述扫描步长。
6.根据权利要求5所述的方法,其特征在于,所述扫描步长中的水平步长小于或等于所述水平方向的参考扫描步长,所述扫描步长中的垂直步长小于或等于所述垂直方向的参考扫描步长。
7.根据权利要求5所述的方法,其特征在于,所述方法还包括:
获取所述目标编码单元对应的参考编码单元,所述参考编码单元是指所述多个编码单元中划分深度与所述目标编码单元的划分深度相同的编码单元;
确定所述参考编码单元的最小宽和最小高;
基于所述目标编码单元的宽和所述最小宽,确定所述第一因子;
基于所述目标编码单元的高和所述最小高,确定所述第二因子。
8.根据权利要求5所述的方法,其特征在于,所述第一因子小于或等于二分之一,所述第二因子小于或等于二分之一。
9.根据权利要求1至8任一项所述的方法,其特征在于,所述目标编码单元为所述多个编码单元中无法通过其它划分方式得到的编码单元,所述其它划分方式包括除所述目标划分方式之外的划分方式。
10.根据权利要求1至8任一项所述的方法,其特征在于,所述根据所述位置信息和所述扫描步长,确定所述目标编码单元的索引值之后,还包括:
获取所述目标编码单元对应的索引关系,所述索引关系用于指示索引值与内存位置之间的对应关系;
从所述索引关系中获取与所述目标编码单元的索引值对应的内存位置,得到所述目标编码单元的内存位置。
11.根据权利要求1至8任一项所述的方法,其特征在于,所述方法还包括:
根据所述目标编码单元的块尺寸确定所述目标编码单元对应的扫描步长;
按照所述扫描步长对所述目标编码块进行扫描,得到多个扫描单元;
建立所述目标编码单元对应的索引关系,所述索引关系用于指示所述多个扫描单元的索引值与内存位置之间的对应关系;
存储所述目标编码单元对应的索引关系。
12.一种编码单元的索引值确定装置,其特征在于,所述装置包括:
编码块划分模块,用于采用目标划分方式对目标编码块进行划分,得到多个编码单元,所述目标划分方式包括以下至少一项:扩展四叉树EQT划分方式、三叉树TT划分方式;
信息确定模块,用于对于所述多个编码单元中的目标编码单元,确定所述目标编码单元相对于所述目标编码块中参考点的位置信息;
步长获取模块,用于获取所述目标编码单元对应的扫描步长,所述扫描步长是指扫描所述目标编码块所采用的步长,且所述扫描步长小于或等于所述目标编码单元的块尺寸的二分之一;
索引值确定模块,用于根据所述位置信息和所述扫描步长,确定所述目标编码单元的索引值。
13.一种计算机设备,其特征在于,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一段程序,所述至少一段程序由所述处理器加载并执行以实现如权利要求1至11任一项所述的编码单元的索引值确定方法。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有至少一段程序,所述至少一段程序由处理器加载并执行以实现如权利要求1至11任一项所述的编码单元的索引值确定方法。
CN202010711029.6A 2020-07-22 2020-07-22 编码单元的索引值确定方法、装置、设备及存储介质 Active CN111770338B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010711029.6A CN111770338B (zh) 2020-07-22 2020-07-22 编码单元的索引值确定方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010711029.6A CN111770338B (zh) 2020-07-22 2020-07-22 编码单元的索引值确定方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN111770338A CN111770338A (zh) 2020-10-13
CN111770338B true CN111770338B (zh) 2022-05-13

Family

ID=72727271

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010711029.6A Active CN111770338B (zh) 2020-07-22 2020-07-22 编码单元的索引值确定方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN111770338B (zh)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111277828A (zh) * 2018-12-04 2020-06-12 华为技术有限公司 视频编解码方法、视频编码器和视频解码器

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107105281B (zh) * 2010-12-14 2019-11-12 M&K控股株式会社 用于解码运动画面的设备
US10477218B2 (en) * 2014-10-20 2019-11-12 Kt Corporation Method and apparatus for predicting and restoring a video signal using palette entry
JP6105034B2 (ja) * 2015-12-17 2017-03-29 株式会社東芝 復号方法及び復号装置
CN108881909A (zh) * 2017-05-09 2018-11-23 富士通株式会社 扫描顺序生成方法和扫描顺序生成设备
CN110944179B (zh) * 2018-11-18 2022-01-25 北京达佳互联信息技术有限公司 一种视频数据解码方法及装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111277828A (zh) * 2018-12-04 2020-06-12 华为技术有限公司 视频编解码方法、视频编码器和视频解码器

Also Published As

Publication number Publication date
CN111770338A (zh) 2020-10-13

Similar Documents

Publication Publication Date Title
JP7483035B2 (ja) ビデオ復号方法並びにその、ビデオ符号化方法、装置、コンピュータデバイス及びコンピュータプログラム
AU2023202344A1 (en) Position dependent intra prediction combination extended with angular modes
EP3417614A1 (en) Predicting filter coefficients from fixed filters for video coding
CN111770345B (zh) 编码单元的运动估计方法、装置、设备及存储介质
CN111355951B (zh) 视频解码方法、装置及解码设备
CN111741299B (zh) 帧内预测模式的选择方法、装置、设备及存储介质
KR20190052097A (ko) 영상 처리 방법 및 이를 위한 장치
CN115668915A (zh) 图像编码方法、图像解码方法及相关装置
CN114902670A (zh) 用信号通知子图像划分信息的方法和装置
WO2022063035A1 (zh) 上下文模型的选择方法、装置、设备及存储介质
WO2022078339A1 (zh) 参考像素候选列表构建方法、装置、设备及存储介质
CN111770338B (zh) 编码单元的索引值确定方法、装置、设备及存储介质
CN114071158A (zh) 视频编解码中的运动信息列表构建方法、装置及设备
CN114286095B (zh) 视频解码方法、装置及设备
CN114286096B (zh) 视频解码方法、装置及设备
WO2022037458A1 (zh) 视频编解码中的运动信息列表构建方法、装置及设备
WO2022116854A1 (zh) 视频解码方法、装置、可读介质、电子设备及程序产品
WO2022063040A1 (zh) 视频编解码方法、装置及设备
WO2022037464A1 (zh) 视频解码方法、视频编码方法、装置、设备及存储介质
WO2020259330A1 (zh) 非可分离变换方法以及设备
WO2021242845A1 (en) Intra prediction
CN116418991A (zh) 处理方法及装置、视频解码方法、视频编码方法及装置
CN114079782A (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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40030130

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant