CN114079780A - 视频解码方法、视频编码方法、装置、设备及存储介质 - Google Patents

视频解码方法、视频编码方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN114079780A
CN114079780A CN202010841108.9A CN202010841108A CN114079780A CN 114079780 A CN114079780 A CN 114079780A CN 202010841108 A CN202010841108 A CN 202010841108A CN 114079780 A CN114079780 A CN 114079780A
Authority
CN
China
Prior art keywords
string
string length
current
value
decoding
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
CN202010841108.9A
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 CN202010841108.9A priority Critical patent/CN114079780A/zh
Priority to EP21857559.5A priority patent/EP4113999A4/en
Priority to PCT/CN2021/112133 priority patent/WO2022037464A1/zh
Publication of CN114079780A publication Critical patent/CN114079780A/zh
Priority to US17/939,767 priority patent/US20230020127A1/en
Pending legal-status Critical Current

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/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • 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/182Methods 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 pixel
    • 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/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • 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/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for 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/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/124Quantisation
    • 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/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/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • 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/53Multi-resolution motion estimation; Hierarchical motion estimation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding

Abstract

本申请提供了一种视频解码方法、视频编码方法、装置、设备及存储介质,涉及视频编解码技术领域。所述方法包括:从码流中解码得到当前串的串长度信息的二元符号串;根据当前串的串长度分辨率对二元符号串进行反二值化处理,得到串长度信息;根据串长度信息确定当前串的串长度。本申请可限制编解码块内像素串的长度为串长度分辨率的倍数,提升了像素串的整齐度,使得编解码端能够在内存对齐的条件下编解码,提升了像素串的编解码效率。另外,本申请考虑到串长度分辨率对串长度信息编解码的影响,提出了针对串长度信息的二值化和反二值化处理的方法,该方法改进了不同串长度分辨率下串长度信息的编解码方式,有利于编解码性能的提升。

Description

视频解码方法、视频编码方法、装置、设备及存储介质
技术领域
本申请实施例涉及视频编解码技术领域,特别涉及一种视频解码方法、视 频编码方法、装置、设备及存储介质。
背景技术
在目前的视频编解码标准中,如VVC(Versatile Video Coding,通用视频编 码)和AVS3(Audio Video coding Standard 3,音视频编码标准3)中,引入了 ISC(IntraString Copy,帧内串复制)预测技术。
相关的帧内串复制技术中,是按照某种扫描顺序将一个编码块分成一系列 像素串或未匹配像素,实质上便是允许编码块划分为任意整像素长度的像素串, 比如一个未匹配像素便可认为是长度为1的像素串。这样,像素串的长度可以 是1、2、3、4等任意的正整数。
相关技术中存在编解码效率低的问题。
发明内容
本申请实施例提供了一种视频解码方法、视频编码方法、装置、设备及存 储介质,能够提升像素串的编解码效率。所述技术方案如下:
根据本申请实施例的一个方面,提供了一种视频解码方法,所述方法包括:
从码流中解码得到当前串的串长度信息的二元符号串,所述串长度信息包 括与所述当前串的串长度相关的信息;
根据当前串的串长度分辨率对所述二元符号串进行反二值化处理,得到所 述串长度信息;
根据所述串长度信息确定所述当前串的串长度。
根据本申请实施例的一个方面,提供了一种视频编码方法,所述方法包括:
确定当前串的串长度;
基于所述当前串的串长度确定所述当前串的串长度信息,所述串长度信息 包括与所述当前串的串长度相关的信息;
根据所述当前串的串长度分辨率对所述串长度信息进行二值化处理,得到 所述串长度信息的二元符号串。
根据本申请实施例的一个方面,提供了一种视频解码装置,所述装置包括:
二元符号获取模块,用于从码流中解码得到当前串的串长度信息的二元符 号串,所述串长度信息包括与所述当前串的串长度相关的信息;
反二值化处理模块,用于根据当前串的串长度分辨率对所述二元符号串进 行反二值化处理,得到所述串长度信息;
串长度确定模块,用于根据所述串长度信息确定所述当前串的串长度。
根据本申请实施例的一个方面,提供了一种视频编码装置,所述装置包括:
串长度确定模块,用于确定当前串的串长度;
长度信息确定模块,用于基于所述当前串的串长度确定所述当前串的串长 度信息,所述串长度信息包括与所述当前串的串长度相关的信息;
二值化处理模块,用于根据所述当前串的串长度分辨率对所述串长度信息 进行二值化处理,得到所述串长度信息的二元符号串。
根据本申请实施例的一个方面,提供了一种计算机设备,所述计算机设备 包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代 码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集 由所述处理器加载并执行以实现上述视频解码方法。
根据本申请实施例的一个方面,提供了一种计算机设备,所述计算机设备 包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代 码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集 由所述处理器加载并执行以实现上述视频编码方法。
根据本申请实施例的一个方面,提供了一种计算机可读存储介质,所述计 算机可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集, 所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并 执行以实现上述视频解码方法。
根据本申请实施例的一个方面,提供了一种计算机可读存储介质,所述计 算机可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集, 所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并 执行以实现上述视频编码方法。
根据本申请实施例的一个方面,提供了一种计算机程序产品或计算机程序, 该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机 可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指 令,处理器执行该计算机指令,使得该计算机设备执行上述视频解码方法。
根据本申请实施例的一个方面,提供了一种计算机程序产品或计算机程序, 该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机 可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指 令,处理器执行该计算机指令,使得该计算机设备执行上述视频编码方法。
本申请实施例提供的技术方案可以包括如下有益效果:
通过将串长度分辨率作为像素串的划分与编解码依据,可限制编解码块内 像素串的长度为串长度分辨率的倍数,提升了像素串的整齐度,使得编解码端 能够在内存对齐的条件下进行编解码,提升了像素串的编解码效率。
另外,本申请考虑到串长度分辨率对串长度信息编解码的影响,提出了根 据串长度分辨率对串长度信息进行二值化和反二值化处理的方法,该方法改进 了不同串长度分辨率下串长度信息的编解码方式。具体来讲,编码端在对串长 度信息的值进行二值化处理时,可以先采用串长度分辨率对该值进行压缩,然 后对压缩后的值(即对该值除以串长度分辨率得到的商)进行二值化处理,而 不是直接对该值进行二值化处理。相应地,解码端在进行反二值化处理时,通 过反二值化恢复得到的是压缩后的值,然后基于该压缩后的值和串长度分辨率 (即将压缩后的值与串长度分辨率相乘)得到该串长度信息的值。这样,能够减少二值化表示所需的字符数量,从而能够降低编解码复杂度,有利于编解码 性能的提升。
附图说明
图1是本申请示例性示出的一种视频编码过程的基本流程图;
图2是本申请一个实施例提供的帧间预测模式的示意图;
图3是本申请一个实施例提供的候选运动矢量的示意图;
图4是本申请一个实施例提供的帧内块复制模式的示意图;
图5是本申请一个实施例提供的帧内串复制模式的示意图;
图6是本申请一个实施例提供的通信系统的简化框图;
图7是本申请示例性示出的视频编码器和视频解码器在流式传输环境中的 放置方式的示意图;
图8是本申请一个实施例提供的视频解码方法的流程图;
图9是本申请一个实施例提供的视频编码方法的流程图;
图10是本申请一个实施例提供的视频解码装置的框图;
图11是本申请一个实施例提供的视频编码装置的框图;
图12是本申请一个实施例提供的计算机设备的结构框图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请 实施方式作进一步地详细描述。
在对本申请实施例进行介绍说明之前,首先结合图1对视频编码技术进行 简单介绍。图1示例性示出了一种视频编码过程的基本流程图。
视频信号是指包括多个帧的图像序列。帧(frame)是视频信号空间信息的 表示。以YUV模式为例,一个帧包括一个亮度样本矩阵(Y)和两个色度样本 矩阵(Cb和Cr)。从视频信号的获取方式来看,可以分为摄像机拍摄到的以及 计算机生成的两种方式。由于统计特性的不同,其对应的压缩编码方式也可能 有所区别。
在一些主流的视频编码技术中,如H.265/HEVC(High Efficient Video Coding,高效率视频压缩编码)、H.266/VVC(Versatile Video Coding,通用视频编码) 标准、AVS(Audio Video coding Standard,音视频编码标准)(如AVS3)中, 采用了混合编码框架,对输入的原始视频信号进行如下一系列的操作和处理:
1、块划分结构(block partition structure):输入图像划分成若干个不重叠 的处理单元,每个处理单元将进行类似的压缩操作。这个处理单元被称作CTU (Coding TreeUnit,编码树单元),或者LCU(Large Coding Unit,最大编码单 元)。CTU再往下,可以继续进行更加精细的划分,得到一个或多个基本编码 的单元,称之为CU。每个CU是一个编码环节中最基本的元素。以下描述的是 对每一个CU可能采用的各种编码方式。
2、预测编码(Predictive Coding):包括了帧内预测和帧间预测等方式,原 始视频信号经过选定的已重建视频信号的预测后,得到残差视频信号。编码端 需要为当前CU决定在众多可能的预测编码模式中,选择最适合的一种,并告知 解码端。其中,帧内预测是指预测的信号来自于同一图像内已经编码重建过的 区域。帧间预测是指预测的信号来自已经编码过的,不同于当前图像的其他图 像(称之为参考图像)。
3、变换编码及量化(Transform&Quantization):残差视频信号经过DFT(Discrete Fourier 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,自适应格型滤波器)等滤波器,可以有效的降低量化所产生的失真程度。 由于这些经过滤波后的重建图像,将作为后续编码图像的参考,用于对将来的 信号进行预测,所以上述的滤波操作也被称为环路滤波,及在编码环路内的滤 波操作。
根据上述编码过程可以看出,在解码端,对于每一个CU,解码器获得压缩 码流后,先进行熵解码,获得各种模式信息及量化后的变换系数。各个系数经 过反量化及反变换,得到残差信号。另一方面,根据已知的编码模式信息,可 获得该CU对应的预测信号,两者相加之后,即可得到重建信号。最后,解码图 像的重建值,需要经过环路滤波的操作,产生最终的输出信号。
一些主流的视频编码标准中,如HEVC、VVC、AVS3等标准中,均采用基 于块的混合编码框架。它们将原始的视频数据分成一系列的编码块,结合预测、 变换和熵编码等视频编码方法,实现视频数据的压缩。其中,运动补偿是视频 编码常用的一类预测方法,运动补偿基于视频内容在时域或空域的冗余特性, 从已编码的区域导出当前编码块的预测值。这类预测方法包括:帧间预测、帧 内块复制预测、帧内串复制预测等,在具体的编码实现中,可能单独或组合使 用这些预测方法。对于使用了这些预测方法的编码块,通常需要在码流显式或 隐式地编码一个或多个二维的位移矢量,指示当前块(或当前块的同位块)相 对它的一个或多个参考块的位移。
需要注意的是,在不同的预测模式下及不同的实现,位移矢量可能有不同 的名称,本文统一按照以下方式进行描述:1)帧间预测模式中的位移矢量称为 运动矢量(Motion Vector,简称MV);2)IBC(Intra Block Copy,帧内块复制) 预测模式中的位移矢量称为块矢量(Block Vector,简称BV);3)ISC(Intra String Copy,帧内串复制)预测模式中的位移矢量称为串矢量(String Vector,简称SV)。 帧内串复制也称作“串预测”或“串匹配”等。
MV是指用于帧间预测模式的位移矢量,由当前图像指向参考图像,其值为 当前块和参考块之间的坐标偏移量,其中,当前块与参考块在两个不同图像中。 在帧间预测模式中,可以引入运动矢量预测,通过对当前块的运动矢量进行预 测,得到当前块对应的预测运动矢量,对当前块对应的预测运动矢量与实际运 动矢量之间的差值进行编码传输,相较于直接对当前块对应的实际运动矢量进 行编码传输,有利于节省比特开销。在本申请实施例中,预测运动矢量是指通 过运动矢量预测技术,得到的当前块的运动矢量的预测值。
BV是指用于IBC预测模式的位移矢量,其值为当前块和参考块之间的坐标 偏移量,其中,当前块与参考块均在当前图像中。在IBC模式中,可以引入块 矢量预测,通过对当前块的块矢量进行预测,得到当前块对应的预测块矢量, 对当前块对应的预测块矢量与实际块矢量之间的差值进行编码传输,相较于直 接对当前块对应的实际块矢量进行编码传输,有利于节省比特开销。在本申请 实施例中,预测块矢量是指通过块矢量预测技术,得到的当前块的块矢量的预 测值。
SV是指用于ISC预测模式的位移矢量,其值为当前串和参考串之间的坐标 偏移量,其中,当前串与参考串均在当前图像中。在ISC模式中,可以引入串 矢量预测,通过对当前串的串矢量进行预测,得到当前串对应的预测串矢量, 对当前串对应的预测串矢量与实际串矢量之间的差值进行编码传输,相较于直 接对当前串对应的实际串矢量进行编码传输,有利于节省比特开销。在本申请 实施例中,预测串矢量是指通过串矢量预测技术,得到的当前串的串矢量的预 测值。
下面对几种不同的预测模式进行介绍:
一、帧间预测模式
如图2所示,帧间预测利用视频时间域的相关性,使用邻近已编码图像的 像素预测当前图像的像素,以达到有效去除视频时域冗余的目的,能够有效节 省编码残差数据的比特。其中,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。
Merge模式建立的MV候选列表中包含了空域和时域的两种情形,对于B Slice(B帧图像),还包含组合列表的方式。其中,空域最多提供4个候选MV, 它的建立如图3中的(a)部分所示。空域列表按照A1→B1→B0→A0→B2的顺 序建立,其中B2为替补,即当A1,B1,B0,A0中有一个或多个不存在时, 则需要使用B2的运动信息;时域最多只提供1个候选MV,它的建立如图3中 的(b)部分所示,由同位PU的MV按下式伸缩得到:
curMV=td*colMV/tb;
其中,curMV表示当前PU的MV,colMV表示同位PU的MV,td表示当 前图像与参考图像之间的距离,tb表示同位图像与参考图像之间的距离。若同 位块上D0位置PU不可用,则用D1位置的同位PU进行替换。对于B Slice中 的PU,由于存在两个MV,其MV候选列表也需要提供两个MVP(Motion Vector Predictor,预测运动矢量)。HEVC通过将MV候选列表中的前4个候选MV进 行两两组合,产生了用于B Slice的组合列表。
类似的,AMVP模式利用空域和时域邻近块的MV相关性,为当前PU建 立MV候选列表。与Merge模式不同,AMVP模式的MV候选列表中选择最优 的预测MV,与当前待编码块通过运动搜索得到的最优MV进行差分编码,即 编码MVD=MV-MVP,其中MVD为运动矢量残差(Motion Vector Difference); 解码端通过建立相同的列表,仅需要MVD与MVP在该列表中的序号即可计算 当前解码块的MV。AMVP模式的MV候选列表也包含空域和时域两种情形,不同的是AMVP模式的MV候选列表长度仅为2。
如上所述,在HEVC的AMVP模式中,需要对MVD(Motion Vector Difference, 运动矢量残差)进行编码。在HEVC中,MVD的分辨率由slice_header中的 use_integer_mv_flag控制,当该标志的值为0,MVD以1/4(亮度)像素分辨率进 行编码;当该标志的值为1,MVD采用整(亮度)像素分辨率进行编码。VVC中 使用了一种自适应运动矢量精度(AdaptiveMotion Vector Resolution,简称AMVR) 的方法。该方法允许每个CU自适应的选择编码MV的分辨率。在普通的AMVP 模式中,可选的分辨率包括1/4,1/2,1和4像素分辨率。对于具有至少一个非 零MVD分量的CU,首先编码一个标志指示是否将四分之一亮度采样MVD精 度用于CU。如果该标志为0,则当前CU的MVD采用1/4像素分辨率进行编码。 否则,需要编码第二个标志,以指示CU使用了1/2像素分辨率或其他MVD分 辨率。否则,编码第三个标志以指示对于CU是否使用1像素分辨率或4像素分 辨率。
二、IBC预测模式
IBC是HEVC屏幕内容编码(Screen Content Coding,简称SCC)扩展中采 纳的一种帧内编码工具,它显著的提升了屏幕内容的编码效率。在AVS3和VVC 中,也采纳了IBC技术以提升屏幕内容编码的性能。IBC利用屏幕内容视频在 空间的相关性,使用当前图像上已编码图像像素预测当前待编码块的像素,能 够有效节省编码像素所需的比特。如图4所示,在IBC中当前块与其参考块之 间的位移,称为BV(块矢量)。H.266/VVC采用了类似于帧间预测的BV预测 技术进一步节省编码BV所需的比特,并允许使用1或4像素分辨率编码BVD(Block Vector Difference,块矢量残差)。
三、ISC预测模式
ISC技术按照某种扫描顺序(如光栅扫描、往返扫描和Zig-Zag扫描等)将 一个编码块分成一系列像素串或未匹配像素。类似于IBC,每个串在当前图像已 编码区域中寻找相同形状的参考串,导出当前串的预测值,通过编码当前串像 素值与预测值之间残差,代替直接编码像素值,能够有效节省比特。图5给出 了帧内串复制的示意图,深灰色的区域为已编码区域,白色的28个像素为串1, 浅灰色的35个像素为串2,黑色的1个像素表示未匹配像素。串1与其参考串 之间的位移,即为图4中的串矢量1;串2与其参考串之间的位移,即为图4中 的串矢量2。
帧内串复制技术需要编码当前编码块中各个串对应的SV、串长度以及是否 有匹配串的标志等。其中,SV表示待编码串到其参考串的位移。串长度表示该 串所包含的像素数量。在不同的实现方式中,串长度的编码有多种方式,以下 给出几种示例(部分示例可能组合使用):1)直接在码流中编码串的长度;2) 在码流中编码处理该串后续的待处理像素数量,解码端则根据当前块的大小N, 已处理的像素数量N1,解码得到的待处理像素数量N2,计算得到当前串的长 度,L=N-N1-N2;3)在码流中编码一个标志指示该串是否为最后一个串,如果 是最后一个串,则根据当前块的大小N,已处理的像素数量N1,计算得到当前串的长度L=N-N1。如果一个像素在可参考的区域中没有找到对应的参考,将直 接对未匹配像素的像素值进行编码。
在2020年6月份的AVS工作组第73次会议中,串预测技术被采纳到标准 中。以下给出当前方案中串预测的解码流程(带下划线加粗的字段表示需要解 码的语法元素,无下划线首字母大写的字段表示变量,变量的值可由语法元素 解码得到,以下流程省略了一些与本申请无关的细节):
Figure BDA0002641470150000101
相关语义描述:
1、串复制帧内预测的匹配类型标志isc_match_type_flag[i]
二值变量。值为‘1’表示当前编码单元的第i部分为一个串;值为‘0’表示当 前编码单元的第i部分为一个未匹配像素。IscMatchTypeFlag[i]等于 isc_match_type_flag[i]的值。如果位流中不存在isc_match_type_flag[i], IscMatchTypeFlag[i]的值为0。
2、串复制帧内预测的最后标志isc_last_flag[i]
二值变量。值为‘1’表示当前编码单元的第i部分为当前编码单元最后一部 分,该部分的长度StrLen[i]等于NumTotalPixel-NumCodedPixel;值为‘0’表示当 前编码单元的第i部分不为当前编码单元最后一部分,该部分的长度StrLen[i] 等于NumTotalPixel-NumCodedPixel-NumRemainingPixelMinus1[i]-1。 IscLastFlag[i]等于isc_last_flag[i]的值。
3、下一个剩余像素数量next_remaining_pixel_in_cu[i]
next_remaining_pixel_in_cu[i]的值表示完成当前编码单元第i部分的解码之后当前编码单元中剩余的尚未完成解码的像素的数目。 NextRemainingPixelInCu[i]的值等于next_remaining_pixel_in_cu[i]的值。
4、串复制帧内预测未匹配像素Y分量值isc_unmatched_pixel_y[i]
串复制帧内预测未匹配像素U分量值isc_unmatched_pixel_u[i]
串复制帧内预测未匹配像素V分量值isc_unmatched_pixel_v[i]
10位无符号整数。当前编码单元第i部分的未匹配像素的Y,Cb或Cr分量 的值。IscUnmatchedPixelY[i],IscUnmatchedPixelU[i]和IscUnmatchedPixelV[i] 分别等于isc_unmatched_pixel_y[i],isc_unmatched_pixel_u[i]和 isc_unmatched_pixel_v[i]的值。
为了解码端能够获知当前串的串长度,编码端需要对当前串的串长度信息 (包括与串长度相关的信息,如上文介绍的语法元素next_remaining_pixel_in_cu) 进行编码。在编码过程中,编码端会对当前串的串长度信息进行二值化处理, 得到相应的二元符号串,然后将该二元符号串添加至码流中发送给解码端。相 应地,解码端在对当前串的串长度进行解码时,从码流中获取上述二元符号串, 然后对该二元符号串进行反二值化处理,得到当前串的串长度信息,据此进一 步确定出当前串的串长度。
下面,对AVS3标准中串长度信息的反二值化方法进行介绍说明。
1、采用截断一元码的反二值化方法
由二元符号串根据0得到synElVal的值(即经过反二值化处理恢复得到的 值)。
表1 synElVal与二元符号串的关系(截断一元码)
Figure BDA0002641470150000121
2、采用一元码的反二值化方法
由二元符号串根据0得到synElVal的值(即经过反二值化处理恢复得到的 值)。
表2 synElVal的值与二元符号串的关系(一元码)
Figure BDA0002641470150000122
3、next_remaining_pixel_in_cu的反二值化方法
如果NumTotalPixel–NumCodedPixel等于1,位流中不存在 next_remaining_pixel_in_cu,NextRemainingPixelInCu的值为0;否则(即 NumPixelInCu–NumCodedPixel大于1),next_remaining_pixel_in_cu的反二值 化方法如下:
next_remaining_pixel_in_cu的二元符号串由三部分组成。
第一步进行第一部分的反二值化。首先,根据以下方法计算maxValPrefix:
if((NumTotalPixel–NumCodedPixel)<=5)maxValPrefix=1
else if((NumTotalPixel–NumCodedPixel)<=21)maxValPrefix=2
else if((NumTotalPixel–NumCodedPixel)<=277)maxValPrefix=3
else maxValPrefix=4
其中,maxValPrefix是指需要通过反二值化处理恢复的参数(在本示例中即 为next_remaining_pixel_in_cu)的最大值所属数值区间的索引。
由第一部分和maxVal=maxValPrefix查0得到synElVal的值并设定a等于synElVal的值。
如果a等于0,码流中不存在第二部分和第三部分, next_remaining_pixel_in_cu的值为0(那么当前串的串长度为NumTotalPixel– NumCodedPixel);否则(即a大于0),继续执行下一步骤。
第二步进行第二部分的反二值化。首先,根据以下方法计算maxValInfix:
Figure BDA0002641470150000131
其次,计算n=Ceil(Log(maxValInfix+1))。然后,由第二部分和len=n-1查 0得到synElVal的值b。当len<1时,二元符号串为空(即实际上不存在于位流 中,故无需真正解析位流)。
表3 synElVal与二元符号串的关系(长度为len的定长码)
Figure BDA0002641470150000141
第三步进行第三部分的反二值化。如果b小于2n-maxValInfix-1或者maxValInfix等于0,k的值设定为0,否则,k的值设定为1。然后,由第三部 分和len=k查0得到synElVal的值c。
最后,从d,b,c,k,n和maxValInfix的值,根据以下方法计算 next_remaining_pixel_in_cu的值:
next_remaining_pixel_in_cu=d+(b<<k)+c-(2n-maxValInfix-1)×k。
对于编码端来说,next_remaining_pixel_in_cu的二值化过程主要如下:
1、根据剩余的最大像素数量max_remaining_pixel_in_cu确定一系列数值区 间(如包括区间1,2,....,N),并记录next_remaining_pixel_in_cu的值所在 区间的索引。其中,next_remaining_pixel_in_cu等于0时,将索引设置为0。将 索引值记串长度的第1部分;
2、将max_remaining_pixel_in_cu减去所在分组的起始值记为maxValInfix, 计算n=Ceil(Log(maxValInfix+1))。将next_remaining_pixel_in_cu减去所在分 组的起始值记为valInfix。然后根据n和2n-maxValInfix-1的值,将valInfix分成 第2部分和第3部分进行编码(此处略去具体的步骤)。
目前的帧内串复制方案中串长度的分辨率为1像素,允许编码单元划分为 任意整像素长度的子串(即允许编码的串长度可以是1,2,3,…)。该方案下 编码单元可能划分为较细粒度的像素串,且像素串的位置可能与内存不对齐, 导致像素串重建时需要频繁的进行内存访问,影响编码效率。例如,假设内存 单元可同时并行处理4个像素对应的数据,若当前串的串长度是7的话,可能 会存在当前串中的像素对应的数据被分配在两个或者三个内存单元的情况,此 种情况下,解码端需要访问2次或者3次内存单元才可完成对当前串的解码。
为了提升像素串的整齐度以及像素串的解码效率,本申请提出了一种视频 解码方法以及一种视频编码方法。通过将串长度分辨率作为像素串的划分与编 解码依据,可限制编解码块内像素串的长度为串长度分辨率的倍数,提升了像 素串的整齐度,使得编解码端能够在内存对齐的条件下进行编解码,提升了像 素串的编解码效率。例如,假设内存单元可同时并行处理4个像素对应的数据, 相应的设置串长度分辨率为4,那么像素串的长度只能是4的整数倍,不会出现 与内存单元不对齐的情况。假设当前串的串长度是8,那么当前串中像素的数据 只会存在两个内存单元中,并且是全部占满,不可能被分配在三个内存单元而 导致需要解码端多访问一次内存单元。
在此基础上,本申请考虑到串长度分辨率对串长度信息编解码的影响,提 出了根据串长度分辨率对串长度信息进行二值化和反二值化处理的方法,该方 法改进了不同串长度分辨率下串长度信息的编解码方式。具体来讲,编码端在 对串长度信息的值进行二值化处理时,可以先采用串长度分辨率对该值进行压 缩,然后对压缩后的值(即对该值除以串长度分辨率得到的商)进行二值化处 理,而不是直接对该值进行二值化处理。相应地,解码端在进行反二值化处理 时,通过反二值化恢复得到的是压缩后的值,然后基于该压缩后的值和串长度 分辨率(即将压缩后的值与串长度分辨率相乘)得到该串长度信息的值。这样, 能够减少二值化表示所需的字符数量,从而能够降低编解码复杂度,有利于编 解码性能的提升。
如图6所示,其示出了本申请一个实施例提供的通信系统的简化框图。通 信系统600包括多个设备,所述设备可通过例如网络650彼此通信。举例来说, 通信系统600包括通过网络650互连的第一设备610和第二设备620。在图6的 实施例中,第一设备610和第二设备620执行单向数据传输。举例来说,第一 设备610可对视频数据例如由第一设备610采集的视频图片流进行编码以通过 网络650传输到第二设备620。已编码的视频数据以一个或多个已编码视频码流 形式传输。第二设备620可从网络650接收已编码视频数据,对已编码视频数 据进行解码以恢复视频数据,并根据恢复的视频数据显示视频图片。单向数据 传输在媒体服务等应用中是较常见的。
在另一实施例中,通信系统600包括执行已编码视频数据的双向传输的第 三设备630和第四设备640,所述双向传输可例如在视频会议期间发生。对于双 向数据传输,第三设备630和第四设备640中的每个设备可对视频数据(例如 由设备采集的视频图片流)进行编码,以通过网络650传输到第三设备630和 第四设备640中的另一设备。第三设备630和第四设备640中的每个设备还可 接收由第三设备630和第四设备640中的另一设备传输的已编码视频数据,且 可对所述已编码视频数据进行解码以恢复视频数据,且可根据恢复的视频数据 在可访问的显示装置上显示视频图片。
在图6的实施例中,第一设备610、第二设备620、第三设备630和第四设 备640可为服务器、个人计算机和智能电话等计算机设备,但本申请公开的原 理可不限于此。本申请实施例适用于PC(Personal Computer,个人计算机)、 手机、平板电脑、媒体播放器和/或专用视频会议设备。网络650表示在第一设 备610、第二设备620、第三设备630和第四设备640之间传送已编码视频数据 的任何数目的网络,包括例如有线连线的和/或无线通信网络。通信网络650可 在电路交换和/或分组交换信道中交换数据。该网络可包括电信网络、局域网、 广域网和/或互联网。出于本申请的目的,除非在下文中有所解释,否则网络650 的架构和拓扑对于本申请公开的操作来说可能是无关紧要的。
作为实施例,图7示出视频编码器和视频解码器在流式传输环境中的放置 方式。本申请所公开主题可同等地适用于其它支持视频的应用,包括例如视频 会议、数字TV(电视)、在包括CD(Compact Disc,光盘)、DVD(Digital Versatile Disc,数字通用光盘)、存储棒等的数字介质上存储压缩视频等等。
流式传输系统可包括采集子系统713,所述采集子系统可包括数码相机等视 频源701,所述视频源创建未压缩的视频图片流702。在实施例中,视频图片流 702包括由数码相机拍摄的样本。相较于已编码的视频数据704(或已编码的视 频码流),视频图片流702被描绘为粗线以强调高数据量的视频图片流,视频 图片流702可由电子装置720处理,所述电子装置720包括耦接到视频源701 的视频编码器703。视频编码器703可包括硬件、软件或软硬件组合以实现或实 施如下文更详细地描述的所公开主题的各方面。相较于视频图片流702,已编码 的视频数据704(或已编码的视频码流704)被描绘为细线以强调较低数据量的已编码的视频数据704(或已编码的视频码流704),其可存储在流式传输服务 器705上以供将来使用。一个或多个流式传输客户端子系统,例如图7中的客 户端子系统706和客户端子系统708,可访问流式传输服务器705以检索已编码 的视频数据704的副本707和副本709。客户端子系统706可包括例如电子装置 730中的视频解码器710。视频解码器710对已编码的视频数据的传入副本707 进行解码,且产生可在显示器712(例如显示屏)或另一呈现装置(未描绘)上 呈现的输出视频图片流711。在一些流式传输系统中,可根据某些视频编码/压 缩标准对已编码的视频数据704、视频数据707和视频数据709(例如视频码流) 进行编码。
应注意,电子装置720和电子装置730可包括其它组件(未示出)。举例 来说,电子装置720可包括视频解码器(未示出),且电子装置730还可包括 视频编码器(未示出)。其中,视频解码器用于对接收到的已编码视频数据进 行解码;视频编码器用于对视频数据进行编码。
需要说明的一点是,本申请实施例提供的技术方案可以应用于H.266/VVC 标准、H.265/HEVC标准、AVS(如AVS3)或者下一代视频编解码标准中,本 申请实施例对此不作限定。
还需要说明的一点是,本申请实施例提供的视频解码方法,各步骤的执行 主体可以是解码端设备。本申请实施例提供的视频编码方法,各步骤的执行主 体可以是编码端设备。在ISC模式下的视频解码过程中,可以采用本申请实施 例提供的解码方案,解码得到当前串的串长度。在ISC模式下的视频编码过程 中,可以采用本申请实施例提供的编码方案,对当前串的串长度进行编码。解 码端设备和编码端设备均可以是计算机设备,该计算机设备是指具备数据计算、 处理和存储能力的电子设备,如PC、手机、平板电脑、媒体播放器、专用视频 会议设备、服务器等等。
另外,本申请所提供的方法可以单独使用或以任意顺序与其他方法合并使 用。基于本申请所提供方法的编码器和解码器,可以由1个或多个处理器或是1 个或多个集成电路来实现。下面,通过几个实施例对本申请技术方案进行介绍 说明。
请参考图8,其示出了本申请一个实施例提供的视频解码方法的流程图。该 方法可应用于解码端设备中。该方法可以包括如下几个步骤(801~803):
步骤801,从码流中解码得到当前串的串长度信息的二元符号串。
码流是指视频经过编码后生成的数据流,其可以采用一系列的二进制数据0 和1进行表示。在一些标准中,码流也称为位流(bitstream),是编码图像所形 成的二进制数据流。
当前串是指当前解码的像素串。像素串是指一定数量的像素组成的像素序 列。可选地,像素串是有限个二进制位的数据构成的有序序列。在ISC模式中, 一个CU可以被划分成若干个像素串。对于视频解码来讲,为了恢复像素串中各 个像素的像素值,需要先确定各个像素串的串长度。
串长度信息是指码流中与像素串的串长度相关的信息,用于确定像素串的 串长度。可选地,当前串的串长度信息包括与当前串的串长度相关的信息,用 于确定当前串的串长度。
串长度信息的二元符号串是指对串长度信息进行二值化处理后得到的一个 二进制串,该二元符号串中可能出现的字符只有0和1。
步骤802,根据当前串的串长度分辨率对二元符号串进行反二值化处理,得 到串长度信息。
在本申请实施例中,在进行反二值化处理时,考虑到了串长度分辨率对串 长度信息编解码的影响。串长度分辨率(String Length Resolution,简称SLR) 是将CU划分为像素串的最小串长度,也即串长度所允许的最小值。例如,串长 度分辨率为4,表示像素串的最小串长度为4。可选地,串长度分辨率可以用N 表示,N为正整数。可选地,N为大于1的整数。当串长度分辨率为N时,像 素串的串长度为N的整数倍,例如像素串的串长度可以是N、2N、3N、4N、5N 等,以此类推。比如,串长度分辨率为4时,像素串的串长度可以是4、8、12、16、20等。
可选地,步骤802可以包括如下两个子步骤:
1、对二元符号串进行反二值化处理,得到基于串长度分辨率压缩后的串长 度信息;
2、根据压缩后的串长度信息和串长度分辨率,确定串长度信息。
例如,编码端在对串长度信息的值进行二值化处理时,可以先采用串长度 分辨率对该值进行压缩,然后对压缩后的值(即对该值除以串长度分辨率得到 的商)进行二值化处理,而不是直接对该值进行二值化处理。相应地,解码端 在进行反二值化处理时,通过反二值化恢复得到的是压缩后的值,然后基于该 压缩后的值和串长度分辨率(即将压缩后的值与串长度分辨率相乘)得到该串 长度信息的值。
另外,在本申请实施例中,提供了多种对二元符号串进行反二值化处理, 得到基于串长度分辨率压缩后的串长度信息的方式,具体请参见下文实施例中 的介绍说明。
步骤803,根据串长度信息确定当前串的串长度。
当前串的串长度是指当前串中所包含的像素的数量。
在一个示例中,当前串的串长度信息即包括当前串的串长度。
在另一个示例中,当前串的串长度信息包括当前串所属解码块中,在解码 当前串后的剩余像素数量。那么,解码端可以获取当前串所属解码块的总像素 数量,以及获取当前串所属解码块的已解码像素数量,然后基于总像素数量、 已解码像素数量以及解码当前串后的剩余像素数量,确定当前串的串长度。假 设总像素数量记为M、已解码像素数量记为M2以及解码当前串后的剩余像素数 量记为M1,则当前串的串长度L=M-M1-M2
综上所述,本申请实施例提供的技术方案,通过将串长度分辨率作为像素 串的划分与编解码依据,可限制编解码块内像素串的长度为串长度分辨率的倍 数,提升了像素串的整齐度,使得编解码端能够在内存对齐的条件下进行编解 码,提升了像素串的编解码效率。
另外,本申请考虑到串长度分辨率对串长度信息编解码的影响,提出了根 据串长度分辨率对串长度信息进行二值化和反二值化处理的方法,该方法改进 了不同串长度分辨率下串长度信息的编解码方式。具体来讲,编码端在对串长 度信息的值进行二值化处理时,可以先采用串长度分辨率对该值进行压缩,然 后对压缩后的值(即对该值除以串长度分辨率得到的商)进行二值化处理,而 不是直接对该值进行二值化处理。相应地,解码端在进行反二值化处理时,通 过反二值化恢复得到的是压缩后的值,然后基于该压缩后的值和串长度分辨率 (即将压缩后的值与串长度分辨率相乘)得到该串长度信息的值。这样,能够减少二值化表示所需的字符数量,从而能够降低编解码复杂度,有利于编解码 性能的提升。
下面,对解码端在解码过程中,确定当前串的串长度分辨率的方式进行介 绍说明。在本申请实施例中,示例性提供了以下几种确定当前串的串长度分辨 率的方式。
方式一:将第一预设值确定为当前串的串长度分辨率。上述第一预设值是 指预先设置好的串长度分辨率的数值,例如,该第一预设值可以在协议中进行 预定义。解码端在对当前串进行解码时,将第一预设值确定为当前串的串长度 分辨率,无需从码流中获取当前串的串长度分辨率。
方式二:从当前串所属图像序列的序列头中,解码得到当前串的串长度分 辨率。在一些标准中,上述图像序列又称视频序列(sequence),是编码位流的 最高层语法结构,包括一个或多个连续的编码图像。可选地,图像序列由第一 个序列头开始,序列结束码或视频编辑码表明了一个图像序列的结束。图像序 列的第一个序列头到第一个出现的序列结束码或视频编辑码之间的序列头为重 复序列头。可选地,每个序列头后面跟着一个或多个编码图像,每幅图像之前 应有图像头。可选地,编码图像在位流中按位流顺序排列,位流顺序应与解码 顺序相同。解码顺序可与显示顺序不相同。上述图像序列的序列头中包含一些 用于解码该图像序列相关的信息。例如,图像序列的序列头可以是附加在上述 图像序列在码流中对应的数据序列前面的、定义位长度的特殊保留字段。在本 示例中,图像序列的序列头中还包括串长度分辨率。可选地,当前串所属图像 序列中包含的各个串的串长度分辨率相同,均为从该图像序列的序列头中解码 得到的串长度分辨率。在一个示例中,解码端在图像系统的序列头中解码一个 指示信息(如索引、语法元素或者其他指示信息),该指示信息指示了该图像 序列中所有串的串长度分辨率。
方式三:从当前串所属图像的图像头中,解码得到当前串的串长度分辨率。 上述图像是指视频中的单个图像帧。在一些标准中,一幅图像可以是一帧或者 一场。可选地,上述图像是编码图像,上述编码图像是一幅图像的编码表示。 上述图像的图像头中包含一些用于解码该图像相关的信息。例如,图像的图像 头是附加在上述图像在码流中对应的数据序列前面的、定义位长度的特殊保留 字段。在本示例中,图像的图像头中还包括串长度分辨率。可选地,当前串所 属图像中包含的各个串的串长度分辨率相同,均为从该图像的图像头中解码得 到的串长度分辨率。在一个示例中,解码端在图像的图像头中解码一个指示信 息(如索引、语法元素或者其他指示信息),该指示信息指示了该图像中所有 串的串长度分辨率。
方式四:从当前串所属片的片头中,解码得到当前串的串长度分辨率。上 述片(patch)是指按光栅扫描顺序排列的相邻若干最大编码单元。上述光栅扫 描(rasterscan)是指将二维矩形光栅映射到一维光栅,一维光栅的入口从二维 光栅的第一行开始,然后扫描第二行、第三行,依次类推。光栅中的行从左到 右扫描。上述片的片头中包含一些用于解码该图像相关的信息。例如,片的片 头是附加在上述片在码流中对应的数据序列前面的、定义位长度的特殊保留字 段。在本示例中,片的片头还包括串长度分辨率。可选地,当前串所属片中包 含的各个串的串长度分辨率相同,均为从该片的片头中解码得到的串长度分辨 率。在一个示例中,解码端在片的片头中解码一个指示信息(如索引、语法元 素或者其他指示信息),该指示信息指示了该片中所有串的串长度分辨率。
方式五:从当前串所属最大编码单元LCU的编码信息中,解码得到当前串 的串长度分辨率。在一些标准中,LCU包括一个L*L的亮度样值块和对应的色 度样值块,由图像划分得到。上述LCU的编码信息中包含一些用于解码该LCU 相关的信息。例如,上述LCU的编码信息是附加在上述LCU在码流中对应的 数据序列前面的、定义位长度的特殊保留字段。一个LCU可以包括多个CU。 在本示例中,上述LCU的编码信息还包括串长度分辨率。可选地,当前串所属 LCU中包含的各个串的串长度分辨率相同,均为从LCU的编码信息中解码得到 的串长度分辨率。在一个示例中,解码端在LCU的编码信息中解码一个指示信 息(如索引、语法元素或者其他指示信息),该指示信息指示了该LCU中所有 串的串长度分辨率。
方式六:从当前串所属编码单元CU的编码信息中,解码得到当前串的串 长度分辨率。上述CU的编码信息中包含一些用于解码该CU相关的信息。例如, 上述CU的编码信息是附加在上述CU在码流中对应的数据序列前面的、定义位 长度的特殊保留字段。在本示例中,上述CU的编码信息还包括串长度分辨率。 可选地,当前串所属CU中包含的各个串的串长度分辨率相同,均为从CU的编 码信息中解码得到的串长度分辨率。在一个示例中,解码端在CU的编码信息中 解码一个指示信息(如索引、语法元素或者其他指示信息),该指示信息指示 了该CU中所有串的串长度分辨率。
方式七:从当前串的编码信息中,解码得到当前串的串长度分辨率。上述 当前串的编码信息中包含一些用于解码当前串相关的信息。例如,当前串的编 码信息是附加在当前串在码流中对应的数据序列前面的、定义位长度的特殊保 留字段。在本示例中,当前串的编码信息还包括当前串的串长度分辨率。在一 个示例中,解码端在当前串的编码信息中解码一个指示信息(如索引、语法元 素或者其他指示信息),该指示信息指示了当前串的串长度分辨率。这样,不 同串的串长度分辨率可以在各自的编码信息中分别进行指示,较为灵活。
方式八:根据当前串所属解码块的尺寸,确定当前串的串长度分辨率。在 一些标准中,上述解码块(block)是一个M*N(M列N行)的样值矩阵或者 变换系数矩阵。可选地,当前串所属解码块可以是当前串所属CU。可选地,获 取当前串所属解码块的尺寸,其中当前串所属解码块的尺寸包括当前串所属解 码块的高度或者宽度。在一个示例中,对于大小为4x4的块,串长度分辨率N=1; 对于大小为16x16的块,串长度分辨率N=2;对于面积(宽x高)大于128的 块,串长度分辨率N=2。
方式九:根据当前串对应的颜色分量和色度格式,确定当前串的串长度分 辨率。上述色度格式是指像素采用的颜色编码格式。在一些标准中,色度格式 (chroma_format)是2位无符号整数,规定色度分量的格式。上述颜色分量是 指在色度格式下像素的色度分量。可选地,当前视频中像素采用RGB格式或者 YUV格式。在一个示例中,在YUV 4:2:0格式的视频中,若已确定亮度分量 的串长度分辨率N=4,则色度分量的串长度分辨率N=2。
方式十:若当前串所属CU中已解码串的数量大于或等于第一阈值,则将 第二预设值确定为当前串的串长度分辨率。上述第一阈值是预设值,是本方式 中用于确定当前串的串长度分辨率的依据。可选地,上述第一阈值可根据CU的 规格来确定,不同规格的CU对应的第一阈值可以相同,也可以不同。上述第二 预设值是指预先设置好的串长度分辨率的数值,适用于当前串所属CU中已解码 串的数量大于或等于第一阈值的情况,该第二预设值可以在协议中预先规定。 在一个示例中,假设当前CU中已解码串的数量为N1,如果N1大于或等于第 一阈值,则可确定当前串的串长度分辨率为第二预设值4。另外,若当前串所属 CU中已解码串的数量小于第一阈值,则可以采用本申请实施例介绍的其他方式 确定当前串的串长度分辨率,或者也可以将不同于第二预设值的另一预设值确 定为当前串的串长度分辨率,本申请实施例对此不作限定。
方式十一:若当前串所属CU中已解码未匹配像素的数量大于或等于第二 阈值,则将第三预设值确定为当前串的串长度分辨率。上述未匹配像素是指未 匹配成功的像素,即与当前串的参考串中相应位置上的像素不匹配的像素。上 述第二阈值是预设值,是本方式中用于判断当前串的串长度分辨率的依据。可 选地,上述第二阈值可根据当前串所属CU中已解码未匹配像素的数量来确定, 不同CU中数量的CU对应的第二阈值可以相同,也可以不同。上述第三预设值 是指预先设置好的串长度分辨率的数值,适用于当前串所属CU中已解码未匹配 像素的数量大于或等于第二阈值的情况,该第三预设值可以在协议中预先规定。在一个示例中,假设当前CU中已解码未匹配像素的数量为N2,如果N2大于 或等于第二阈值,则可判断当前串的串长度分辨率为第三预设值。另外,若当 前串所属CU中已解码未匹配像素的数量小于第二阈值,则可以采用本申请实施 例介绍的其他方式确定当前串的串长度分辨率,或者也可以将不同于第三预设 值的另一预设值确定为当前串的串长度分辨率,本申请实施例对此不作限定。
方式十二:若当前串所属CU中未解码像素的数量小于或等于第三阈值, 则将第四预设值确定为当前串的串长度分辨率。上述第三阈值是预设值,是本 方式中用于判断当前串的串长度分辨率的依据。可选地,上述第三阈值可根据 当前串所属CU中已解码未匹配像素的数量来确定,不同CU中数量的CU对应 的第三阈值可以相同,也可以不同。上述第四预设值是指预先设置好的串长度 分辨率的数值,适用于当前串所属CU中未解码像素的数量小于或等于第三阈值 的情况,该第四预设值可以在协议中预先规定。另外,若当前串所属CU中未解 码像素的数量大于第三阈值,则可以采用本申请实施例介绍的其他方式确定当前串的串长度分辨率,或者也可以将不同于第四预设值的另一预设值确定为当 前串的串长度分辨率,本申请实施例对此不作限定。
下面介绍对当前串的串长度信息的二元符号串进行反二值化处理,得到基 于串长度分辨率压缩后的串长度信息的方式进行介绍说明。在本申请实施例中, 示例性提供了以下几种反二值化处理的方式。
方式一,令压缩后的串长度信息的最大值为max_val,可以包括如下几个步 骤:
1、确定压缩后的串长度信息的最大值,根据该最大值确定多个数值区间;
上述多个数值区间是一系列数值为整数的区间。可选地,上述多个数值区 间可以记为R0,R1,R2,…,Rn。其中,第x个数值区间Rx的索引为x,且 第x个数值区间Rx表示为[Rx_start,Rx_end),x为正整数。最大值max_val的 值满足Rn_start≤max_val<Rn_end。
2、从码流中解码得到压缩后的串长度信息的索引x;
在本申请实施例中,假设从码流中解码得到压缩后的串长度信息的索引记 为x,该索引指示的是待恢复的数值val所在的数值区间。
可选地,采用截断一元码的方式从码流中解码得到压缩后的串长度信息的 索引。
3、根据索引x所对应的数值区间Rx,确定压缩后的串长度信息的第一部 分的值为Rx_start;
在本申请实施例中,串长度信息的第一部分记为val_part1。
可选地,如果数值区间Rx中只有一个整数值,即Rx_end-Rx_start的值等 于1,则val=val_part1,结束反二值化过程。
可选地,索引采用CABAC的方式进行熵解码,索引的每个二进制位具有 对应的上下文模型。
可选地,根据压缩后的串长度信息的最大值(即max_val的值),确定压 缩后的串长度信息(即val)的索引的上下文模型,该上下文模型用于对索引采 用CABAC的方式进行熵解码。例如,根据max_val所在的数值区间选择一套上 下文模型。
4、根据最大值以及第一部分的值,计算得到最大值余量和最大值余量的位 数;
其中,最大值余量max_val_infix=max_val-Rx_start和最大值余量的位数n =Ceil(Log(max_val_infix+1));其中,Ceil()表示向上取整,Log()表示取对数。 最大值余量的位数n是指用定长码的方式来编码该最大值余量所需要的比特数 目。
5、基于最大值余量的位数确定第一比特长度;
第一比特长度len=n-1。
6、如果第一比特长度小于1,则确定压缩后的串长度信息的第二部分的值 为0;
在本申请实施例中,串长度信息的第二部分记为val_part2。
如果第一比特长度len<1,则确定val_part2=0。
7、如果第一比特长度大于等于1,则从码流中解码第一比特长度的数据, 按照定长码的方式对第一比特长度的数据进行反二值化处理,得到压缩后的串 长度信息的第二部分的值;
如果第一比特长度len≥1,则从码流中解码len位比特,按照定长码的方式 对该len位比特进行反二值化处理,得到val_part2的值。
8、如果第二部分的值满足第一条件或者最大值余量等于0,则将目标值设 定为0;否则,将所述目标值设定为1;
可选地,如果val_part2<2n-max_val_infix-1或者max_val_infix=0,则将目标值k的值设定为0;否则,k的值设定为1。
9、如果目标值k=0,则确定压缩后的串长度信息的第三部分的值为0;
在本申请实施例中,串长度信息的第三部分记为val_part3。
10、如果目标值k=1,则确定第二比特长度为1,从码流中解码第二比特长 度的数据,按照定长码的方式对该第二比特长度的数据进行反二值化处理,得 到压缩后的串长度信息的第三部分的值;
设第二比特长度len=1,从码流中解码len位比特,按照定长码的方式对该 len位比特进行反二值化处理,得到val_part3的值。
11、根据第一部分的值、第二部分的值、第三部分的值、目标值、最大值 余量的位数和最大值余量,计算压缩后的串长度信息的值。
即,根据val_part1、val_part2、val_part3、k、n和max_val_infix,计算压 缩后的串长度信息的值。
可选地,压缩后的串长度信息的值val=val_part1+(val_part2<<k)+ val_part3-(2n-max_val_infix-1)×k;其中,<<为左移符号。
方式二,令压缩后的串长度信息的最大值为max_val,可以包括如下几个步 骤:
1、确定压缩后的串长度信息的最大值和最大值的位数;
压缩后的串长度信息的最大值max_val,该最大值max_val的位数n=Ceil(Log(max_val+1))。
2、基于最大值的位数确定第三比特长度;
第三比特长度len=n-1。
3、如果第三比特长度小于1,则确定压缩后的串长度信息的第一部分的值 为0;
在本申请实施例中,串长度信息的第一部分记为val_part1。
如果len<1,则确定val_part1=0。
4、如果第三比特长度大于等于1,则从码流中解码第三比特长度的数据, 按照定长码的方式对该第三比特长度的数据进行反二值化处理,得到压缩后的 串长度信息的第一部分的值;
如果len≥1,则从码流中解码len位比特,按照定长码的方式对len位比特 进行反二值化处理,得到val_part1的值。
5、根据最大值以及第一部分的值,计算得到最大值余量;
其中,最大值余量max_val_infix=max_val-val_part1。
6、如果第一部分的值满足第二条件或者最大值余量等于0,则将目标值设 定为0;否则,将目标值设定为1;
如果val_part1<2n-max_val_infix-1或者max_val_infix=0,则将目标值k的值设定为0;否则,k的值设定为1。
7、如果目标值k=0,则确定压缩后的串长度信息的第二部分的值为0;
在本申请实施例中,串长度信息的第二部分记为val_part2。
如果k=0,则确定val_part2=0。
8、如果目标值k=1,则确定第四比特长度为1,从码流中解码第四比特长 度的数据,按照定长码的方式对该第四比特长度的数据进行反二值化处理,得 到压缩后的串长度信息的第二部分的值;
设第四比特长度len=1,从码流中解码len位比特,按照定长码的方式对len 位比特进行反二值化处理,得到val_part2的值;
9、根据第一部分的值、第二部分的值、目标值、最大值的位数和最大值, 计算压缩后的串长度信息的值。
即,根据val_part1、val_part2、k、n和max_val,计算所述压缩后的串长度 信息的值。
可选地,压缩后的串长度信息的值val=(val_part1<<k)+val_part2-(2n- max_val-1)×k;其中,<<为左移符号。
方式三,按照k阶指数哥伦布码的方式对二元符号串进行反二值化处理, 得到压缩后的串长度信息。
K阶指数哥伦布码,主要的编码格式为【前缀0】【1】【bit信息】的结构。 分别计算出了前缀0的长度(即前缀有多少个0)、1的个数以及bit信息,就 完成了整个编码。编码步骤如下:
(1)将待编码的数据以二进制的形式表示,去掉最低位的k个比特,然后 加1,得到新的值T1,查看T1含多少个bit,将该值减1,得到的便是前缀0的 个数;
(2)将第(1)步中去掉的最低K个比特位加到T1后,暂称其为T2;
(3)在T2前增加前缀0,至此编码完成。
另外,K阶指数哥伦布码的反二值化方法如下:
解析k阶指数哥伦布码时,首先从位流的当前位置开始寻找第一个非零位, 并将找到的零位个数记为leadingZeroBits,然后根据leadingZeroBits计算 CodeNum。用伪代码描述如下:
leadingZeroBits=-1;
for(b=0;!b;leadingZeroBits++)
b=read_bits(1)
CodeNum=2leadingZeroBits+k–2k+read_bits(leadingZeroBits+k)
给出了0阶、1阶、2阶和3阶指数哥伦布码的结构。指数哥伦布码的位串 分为“前缀”和“后缀”两部分。前缀由leadingZeroBits个连续的‘0’和一个 ‘1’构成。后缀由leadingZeroBits+k个位构成,即表中的xi串,xi的值为‘0’ 或‘1’。
表4 k阶指数哥伦布码表
Figure BDA0002641470150000271
Figure BDA0002641470150000281
方式四,按照一元码或截断一元码的方式对二元符号串进行反二值化处理, 得到压缩后的串长度信息。
一元码的编码规则是,对于待编码的符号“x”>=0,编码为x个“1”再加一个 “0”编码组成。如果编码端按照一元码对压缩后的串长度信息进行二值化处理, 则可以在确定出压缩后的串长度信息的值val(val=synElVal)之后,查询上述表 2得到相应的二元符号串;相应地,解码端解码得到上述二元符号串之后,查询 上述表2恢复出压缩后的串长度信息的值val。
截断一元码属于一元码的变体,用在已知待编码的语法元素的最大值Max 的情况下,此处的最大值Max即为压缩后的串长度信息的最大值max_val。假 设待编码符号为x:如果0≤x<Max,x二值化采用一元码的方式;如果x= Max,x二值化的二进制串全部由1组成,长度为Max。如果编码端按照截断一 元码对压缩后的串长度信息进行二值化处理,则可以在确定出压缩后的串长度 信息的值val(val=synElVal)之后,查询上述表1得到相应的二元符号串;相应 地,解码端解码得到上述二元符号串之后,查询上述表1恢复出压缩后的串长 度信息的值val。
方式五,按照n位定长码的方式对二元符号串进行反二值化处理,得到压 缩后的串长度信息;其中,n为压缩后的串长度信息的最大值的位数,n为正整 数。示例性地,n=Ceil(Log(max_val+1)),max_val表示压缩后的串长度信息的 最大值。
如果编码端按照n位定长码的方式对压缩后的串长度信息进行二值化处理, 则可以在确定出压缩后的串长度信息的值val(val=synElVal)之后,查询上述表 3得到相应的二元符号串;相应地,解码端解码得到上述二元符号串之后,查询 上述表3恢复出压缩后的串长度信息的值val。其中,len等于n。
方式六,压缩后的串长度信息的值基于多个部分确定,令压缩后的串长度 信息的值为val,val由n部分组成,即 val=val_part_1+val_part_2+val_part_3+…+val_part_n,记 max_val_n=max_val-val_part_1+val_part_2+val_part_3+…+val_part_n-1),其中, max_val为val的最大值。该反二值化方式可以包括如下几个步骤:
1、确定压缩后的串长度信息的最大值,根据该最大值确定多个数值区间;
上述多个数值区间是一系列数值为整数的区间。可选地,上述多个数值区 间可以记为R0,R1,R2,…,Rn。其中,第x个数值区间Rx的索引为x,且 第x个数值区间Rx表示为[Rx_start,Rx_end),x为正整数。max_val的值满足 Rn_start≤max_val<Rn_end。
2、从码流中解码得到压缩后的串长度信息的索引x;
在本申请实施例中,假设从码流中解码得到压缩后的串长度信息的索引记 为x,该索引指示的是待恢复的数值val所在的数值区间。
例如,解码端可以按照上述方式一至五中的任一种反二值化方式,从码流 中解码得到压缩后的串长度信息的索引。
3、根据索引x所对应的数值区间Rx,确定压缩后的串长度信息的第一部 分的值为Rx_start;
4、依次确定压缩后的串长度信息的其余部分的值;
例如,解码端可以按照上述方式一至五中的任一种反二值化方式,确定 val_part_2、val_part_3、…、val_part_n的值。
5、根据第一部分的值和其余部分的值,确定压缩后的串长度信息的值。
其中,压缩后的串长度信息的值 val=val_part_1+val_part_2+val_part_3+…+val_part_n。
在示例性实施例中,解码端可以结合实际情况,从多种反二值化处理方式 中选择合适的方式。该多种反二值化处理方式可以包括上文介绍的多种方式。
例如,解码端根据当前串的串长度分辨率,从多种反二值化处理方式中选 择对二元符号串进行反二值化处理的方式。
又例如,解码端根据串长度信息的最大值,从多种反二值化处理方式中选 择对二元符号串进行反二值化处理的方式。
又例如,解码端根据当前串所属解码块的剩余像素数量的最大值与当前串 的串长度分辨率的商,从多种反二值化处理方式中选择对二元符号串进行反二 值化处理的方式。
又例如,根据当前串所属解码块的尺寸,从多种反二值化处理方式中选择 对二元符号串进行反二值化处理的方式。
本申请实施例提供了多种二值化/反二值化处理方式,依据待二值化处理的 值的大小不同,采用不同方式的编解码复杂度以及二元字符串的长度会相应有 所不同。通过上述方式,直接或者间接地基于串长度分辨率来选择合适的二值 化/反二值化处理方式,能够灵活选择编解码性能最优的二值化/反二值化处理方 式。
下面,通过几个示例对几种不同串长度信息的确定方式,以及相应确定串 长度的方式进行介绍说明。
在一个示例中,压缩后的串长度信息包括当前串的串长度编码,记为L0。 相应地,串长度信息包括当前串的串长度。解码端将当前串的串长度编码与串 长度分辨率相乘,得到当前串的串长度。在一个示例中,解码端从码流中解码 得到当前串的串长度编码L0的二元符号串,解码端对该二元符号串进行反二值 化处理,恢复得到当前串的串长度编码L0,然后将当前串的串长度编码L0与串 长度分辨率N相乘,得到当前串的串长度L,即L=L0*N。其中,串长度编码也 可以称为经分辨率压缩后的串长度,也即串长度的真实值除以串长度分辨率N 得到的商。在编码过程中,对串长度编码进行二值化表示所需的字符数量,相 比于对串长度的真实值进行二值化表示所需的字符数量要少,因此能够降低编 解码复杂度,提升编解码性能。
在此示例中,压缩后的串长度信息包括当前串的串长度编码L0,解码端可 以采用下文实施例介绍的反二值化处理的方式,解码得到一数值(记为val), L0的值等于val。
另外,在此示例中,令数值val的最大值为max_val,当前串所属解码块的 剩余未解码像素数量为max_val_tmp,当前串的串长度分辨率为N;其中,max_val_tmp=NumTotalPixel–NumCodedPixel。NumTotalPixel表示当前串所属 解码块的总像素数量,NumCodedPixel表示当前串所属解码块的已解码像素数量。 由于当前串有可能是当前解码块中的最后一个串(也有可能不是),因此当前 串的串长度L的取值范围即为[N,max_val_tmp]。将当前串的串长度L经过串长 度分辨率N压缩(也即L/N)之后,得到当前串的串长度编码L0的取值范围为 [1,max_val_tmp/N]。因此,如果压缩后的串长度信息包括当前串的串长度编码 L0,max_val应该设置为一个大于等于max_val_tmp/N的整数值。在一个示例中, max_val=max_val_tmp/N,有助于提升编解码效率。
在本申请实施例中,将剩余未解码像素数量基于串长度分辨率压缩后进行 二值化处理编码至码流中,相比于直接对剩余未解码像素数量的真实值进行二 值化处理编码至码流中,能够减少字符数,从而降低编解码复杂度,提升编解 码性能。
在另一个示例中,压缩后的串长度信息包括当前串的串长度编码减1,记为 L0-1。相应地,串长度信息包括当前串的串长度。解码端将当前串的串长度编码 减1加上1,得到当前串的串长度编码L0,然后将当前串的串长度编码L0与串 长度分辨率N相乘,得到当前串的串长度L,即L=L0*N。
在此示例中,压缩后的串长度信息包括当前串的串长度编码减1(即L0-1), 解码端可以采用下文实施例介绍的反二值化处理的方式,解码得到一数值(记 为val),L0的值等于val+1。
在上一示例中已经介绍,L0的最小值为1,所以压缩后的串长度信息中也可 以包括L0-1,L0-1的取值范围为[0,max_val_tmp/N-1]。因此,如果压缩后的串 长度信息包括L0-1,max_val应该设置为一个大于等于max_val_tmp/N-1的整数 值。在一个示例中,max_val=max_val_tmp/N-1,有助于提升编解码效率。
在另一个示例中,压缩后的串长度信息包括当前串所属解码块中,在解码 当前串后的剩余像素数量编码。相应地,串长度信息包括当前串所属解码块中, 在解码当前串后的剩余像素数量。当前串所属解码块中在解码当前串后的剩余 像素数量,是指解码当前串后,当前串所属解码块中剩余的未解码像素的数量。 该剩余像素数量编码也可以称为经分辨率压缩后的剩余像素数量,也即剩余像 素数量的真实值除以串长度分辨率N得到的商。解码端将剩余像素数量编码与 串长度分辨率相乘,得到当前串所属解码块中,在解码当前串后的剩余像素数 量。在编码过程中,对剩余像素数量编码进行二值化表示所需的字符数量,相 比于对剩余像素数量的真实值进行二值化表示所需的字符数量要少,因此能够 降低编解码复杂度,提升编解码性能。
可选地,上述剩余像素数量编码存储在码流中的数据序列的序列头中,上 述数据序列可以是当前串所属图像在码流中对应的数据序列,也可以是当前串 在码流中对应的数据序列,还可以是当前串所属CU在码流中对应的数据序列等 等,本申请实施例对此不作限定。在一个示例中,当前串所属解码块中各个串 的串长度分辨率为4,解码端在解码当前串后,假设当前串所属解码块中剩余的 未解码像素的数量为4,即二进制数100,则其对应的编码表示(即剩余像素数 量编码)为1。可选地,将上述剩余像素数量编码记为M0
可选地,上述步骤803可以包括如下几个子步骤(8031~8033):
步骤8031,获取当前串所属解码块的总像素数量。
可选地,解码块的总像素数量通过解码块的高度和宽度相乘得到。可选地, 当前串所属解码块的总像素数量记为M。
步骤8032,获取当前串所属解码块的已解码像素数量。
可选地,上述已解码像素数量可以通过解码端对已解码的像素串的长度进 行累加得到。可选地,当前串所属解码块的已解码像素数量记为M2
步骤8033,基于总像素数量、已解码像素数量以及解码当前串后的剩余像 素数量,确定当前串的串长度。
可选地,解码端将剩余像素数量编码M0与串长度分辨率N相乘,得到当前 串所属解码块中,在解码当前串后的剩余像素数量M1,即M1=M0*N。
可选地,从上述总像素数量中减去已解码像素数量和剩余像素数量,得到 当前串的串长度L,即L=M-M1-M2
在此示例中,压缩后的串长度信息包括当前串所属解码块中,在解码当前 串后的剩余像素数量编码M0,解码端可以采用下文实施例介绍的反二值化处理 的方式,解码得到一数值(记为val),M0的值等于val。
另外,在此示例中,令数值val的最大值为max_val,当前串所属解码块的 剩余未解码像素数量为max_val_tmp,当前串的串长度分辨率为N;其中, max_val_tmp=NumTotalPixel–NumCodedPixel。NumTotalPixel表示当前串所属 解码块的总像素数量,NumCodedPixel表示当前串所属解码块的已解码像素数量。 由于当前串有可能是当前解码块中的最后一个串(也有可能不是),因此当前 串的串长度L的取值范围为[N,max_val_tmp],所以在解码当前串后的剩余像素 数量M1的取值范围即为[0,max_val_tmp-N]。将解码当前串后的剩余像素数量 M1经过串长度分辨率N压缩(也即M1/N)之后,得到解码当前串后的剩余像 素数量编码M0的取值范围为[0,max_val_tmp/N-1]。因此,如果压缩后的串长度 信息包括解码当前串后的剩余像素数量编码M0,max_val应该设置为一个大于 等于max_val_tmp/N-1的整数值。在一个示例中,max_val=max_val_tmp/N-1, 有助于提升编解码效率。
在本申请实施例中,将解码当前串后的剩余像素数量基于串长度分辨率压 缩后进行二值化处理编码至码流中,相比于直接对该剩余像素数量的真实值进 行二值化处理编码至码流中,能够减少字符数,从而降低编解码复杂度,提升 编解码性能。
在另一个示例中,压缩后的串长度信息包括第一标志,该第一标志用于指 示当前串是否为当前串所属解码块中的最后一个串。
可选地,第一标志是二值变量,用一位二进制数表示。可选地,若第一标 志为0,则当前串为当前串所属解码块中的最后一个串;若第一标志为1,则当 前串不是当前串所属解码块中的最后一个串。
可选地,若根据第一标志确定当前串不是所述最后一个串,则获取当前串 所属解码块中,在解码当前串后的剩余像素数量编码;其中,串长度信息还包 括当前串所属解码块中,在解码当前串后的剩余像素数量编码;或者,串长度 信息还包括当前串所属解码块中,在解码当前串后的剩余像素数量编码减1。之 后,将剩余像素数量编码与串长度分辨率相乘,得到当前串所属解码块中,在 解码当前串后的剩余像素数量。
可选地,上述步骤803可以包括如下几个子步骤(803a~803d):
步骤803a,获取当前串所属解码块的总像素数量。
步骤803b,获取当前串所属解码块的已解码像素数量。
步骤803c,若当前串是最后一个串,则将总像素数量与已解码像素数量相 减,得到当前串的串长度。
可选地,将总像素数量M与已解码像素数量M2相减,得到当前串的串长 度L,即L=M-M2
步骤803d,若当前串不是最后一个串,则基于总像素数量、已解码像素数 量以及解码当前串后的剩余像素数量,确定当前串的串长度。
可选地,将上述剩余像素数量编码减1后的编码记为M0。可选地,将剩余 像素数量编码减1后的编码M0加1之后与串长度分辨率相乘,得到当前串所属 解码块中,在解码当前串后的剩余像素数量M1,即M1=(M0+1)*N。可选地, 从上述总像素数量减去上述已解码像素数量以及上述剩余像素数量,得到当前 串的串长度L,即L=M-M1-M2
在此示例中,以压缩后的串长度信息包括当前串所属解码块中,在解码当 前串后的剩余像素数量编码M0-1为例,解码端可以采用下文实施例介绍的反二 值化处理的方式,解码得到一数值(记为val),M0的值等于val+1。
另外,在此示例中,通过第一标志来指示当前串是/不是当前解码块中的最 后一个串。如果当前串不是最后一个串,码流中会包含解码该当前串后的剩余 像素数量的相关信息。因此,在当前串不是最后一个串的情况下,当前串的串 长度L的取值范围是[N,max_val_tmp-N],在解码当前串后的剩余像素数量M1的取值范围即为[N,max_val_tmp-N]。将解码当前串后的剩余像素数量M1经过 串长度分辨率N压缩(也即M1/N)之后,得到解码当前串后的剩余像素数量编 码M0的取值范围为[1,max_val_tmp/N-1]。M0的最小值为1,所以压缩后的串长 度信息中也可以包括M0-1,M0-1的取值范围为[0,max_val_tmp/N-2]。因此,如 果压缩后的串长度信息包括M0-1,max_val应该设置为一个大于等于 max_val_tmp/N-2的整数值。在一个示例中,max_val=max_val_tmp/N-2,有助 于提升编解码效率。
在本申请实施例中,将解码当前串后的剩余像素数量基于串长度分辨率压 缩后进行二值化处理编码至码流中,相比于直接对该剩余像素数量的真实值进 行二值化处理编码至码流中,能够减少字符数,从而降低编解码复杂度,提升 编解码性能。
请参考图9,其示出了本申请一个实施例提供的视频编码方法的流程图。该 方法可应用于编码端设备中。该方法可以包括如下几个步骤(901~903):
步骤901,确定当前串的串长度。
步骤902,基于当前串的串长度确定当前串的串长度信息,该串长度信息包 括与当前串的串长度相关的信息。
在一个示例中,串长度信息包括当前串的串长度。
在另一个示例中,串长度信息包括当前串所属编码块中,在编码当前串后 的剩余像素数量。
编码端获取当前串所属编码块的总像素数量,以及获取当前串所属编码块 的已编码像素数量;基于总像素数量、已编码像素数量以及当前串的串长度, 确定当前串所属编码块中,在编码当前串后的剩余像素数量。
步骤903,根据当前串的串长度分辨率对串长度信息进行二值化处理,得到 串长度信息的二元符号串。
可选地,根据串长度信息和串长度分辨率,确定压缩后的串长度信息;对 压缩后的串长度信息进行二值化处理,得到串长度信息的二元符号串。
二值化处理可以采用与上文介绍的反二值化处理相对应的方式,本实施例 对此不再赘述。
可选地,如果串长度信息包括当前串的串长度,那么编码端可以将当前串 的串长度除以串长度分辨率,得到当前串的串长度编码。相应地,压缩后的串 长度信息可以包括当前串的串长度编码,也可以包括当前串的串长度编码减1。
可选地,如果串长度信息包括当前串所属编码块中,在编码当前串后的剩 余像素数量,那么编码端可以将该剩余像素数量除以串长度分辨率,得到剩余 像素数量编码。相应地,压缩后的串长度信息可以包括当前串所属编码块中, 在编码当前串后的剩余像素数量编码,也可以包括当前串所属编码块中,在编 码当前串后的剩余像素数量编码减1。
在示例中实施例中,编码端可以选择合适的二值化处理方式:
例如,编码端根据当前串的串长度分辨率,从多种二值化处理方式中选择 对串长度信息进行二值化处理的方式。
又例如,编码端根据串长度信息的最大值,从多种二值化处理方式中选择 对串长度信息进行二值化处理的方式。
又例如,编码端根据当前串所属编码块的剩余像素数量的最大值与当前串 的串长度分辨率的商,从多种二值化处理方式中选择对串长度信息进行二值化 处理的方式。
又例如,编码端根据当前串所属编码块的尺寸,从多种二值化处理方式中 选择对串长度信息进行二值化处理的方式。
在示例性实施例中,提供了以下几种确定当前串的串长度分辨率的方式。
方式一:当前串的串长度分辨率为第一预设值;
方式二:当前串所属图像序列中包含的各个串的串长度分辨率相同,当前 串的串长度分辨率编码后添加在当前串所属图像序列的序列头中;
方式三:当前串所属图像中包含的各个串的串长度分辨率相同,当前串的 串长度分辨率编码后添加在当前串所属图像的图像头中;
方式四:当前串所属片中包含的各个串的串长度分辨率相同,当前串的串 长度分辨率编码后添加在当前串所属片的片头中;
方式五:当前串所属LCU中包含的各个串的串长度分辨率相同,当前串的 串长度分辨率编码后添加在当前串所属LCU的编码信息中;
方式六:当前串所属编码单元CU中包含的各个串的串长度分辨率相同, 当前串的串长度分辨率编码后添加在当前串所属CU的编码信息中;
方式七:当前串的串长度分辨率编码后添加在当前串的编码信息中;
方式八:当前串的串长度分辨率根据当前串所属解码块的尺寸确定;
方式九:当前串的串长度分辨率根据当前串对应的颜色分量和色度格式确 定;
方式十:若当前串所属CU中已解码串的数量大于或等于第一阈值,则当 前串的串长度分辨率为第二预设值;
方式十一:若当前串所属CU中已解码未匹配像素的数量大于或等于第二 阈值,则当前串的串长度分辨率为第三预设值;
方式十二:若当前串所属CU中未解码像素的数量小于或等于第三阈值, 则当前串的串长度分辨率为第四预设值。
综上所述,本申请实施例提供的技术方案,通过将串长度分辨率作为像素 串的划分与编解码依据,可限制编解码块内像素串的长度为串长度分辨率的倍 数,提升了像素串的整齐度,使得编解码端能够在内存对齐的条件下进行编解 码,提升了像素串的编解码效率。
另外,本申请考虑到串长度分辨率对串长度信息编解码的影响,提出了针 对串长度信息的二值化和反二值化处理的方法,该方法改进了不同串长度分辨 率下串长度信息的编解码方式,有利于编解码性能的提升。
下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请 装置实施例中未披露的细节,请参照本申请方法实施例。
请参考图10,其示出了本申请一个实施例提供的视频解码装置的框图。该 装置具有实现上述视频解码方法示例的功能,所述功能可以由硬件实现,也可 以由硬件执行相应的软件实现。该装置可以是上文介绍的计算机设备,也可以 设置在计算机设备上。该装置1000可以包括:二元符号获取模块1010、反二值 化处理模块1020和串长度确定模块1030。
二元符号获取模块1010,用于从码流中解码得到当前串的串长度信息的二 元符号串,所述串长度信息包括与所述当前串的串长度相关的信息。
反二值化处理模块1020,用于根据当前串的串长度分辨率对所述二元符号 串进行反二值化处理,得到所述串长度信息。
串长度确定模块1030,用于根据所述串长度信息确定所述当前串的串长度。
在示例性实施例中,所述反二值化处理模块1020,包括:
反二值化处理单元,用于对所述二元符号串进行反二值化处理,得到基于 所述串长度分辨率压缩后的串长度信息;
长度信息确定单元,用于根据所述压缩后的串长度信息和所述串长度分辨 率,确定所述串长度信息。
在示例性实施例中,所述反二值化处理单元,具体用于:
确定所述压缩后的串长度信息的最大值,根据所述最大值确定多个数值区 间,其中,第x个数值区间Rx的索引为x,且第x个数值区间Rx表示为[Rx_start, Rx_end),x为正整数;
从所述码流中解码得到所述压缩后的串长度信息的索引x;
根据所述索引x所对应的数值区间Rx,确定所述压缩后的串长度信息的第 一部分的值为Rx_start;
根据所述最大值以及所述第一部分的值,计算得到最大值余量和所述最大 值余量的位数;
基于所述最大值余量的位数确定第一比特长度;
如果所述第一比特长度小于1,则确定所述压缩后的串长度信息的第二部分 的值为0;
如果所述第一比特长度大于等于1,则从所述码流中解码所述第一比特长度 的数据,按照定长码的方式对所述第一比特长度的数据进行反二值化处理,得 到所述压缩后的串长度信息的第二部分的值;
如果所述第二部分的值满足第一条件或者所述最大值余量等于0,则将目标 值设定为0;否则,将所述目标值设定为1;
如果所述目标值等于0,则确定所述压缩后的串长度信息的第三部分的值为 0;
如果所述目标值等于1,则确定第二比特长度为1,从所述码流中解码所述 第二比特长度的数据,按照定长码的方式对所述第二比特长度的数据进行反二 值化处理,得到所述压缩后的串长度信息的第三部分的值;
根据所述第一部分的值、所述第二部分的值、所述第三部分的值、所述目 标值、所述最大值余量的位数和所述最大值余量,计算所述压缩后的串长度信 息的值。
在示例性实施例中,所述反二值化处理单元,还用于根据所述压缩后的串 长度信息的最大值,确定所述压缩后的串长度信息的索引的上下文模型,所述 上下文模型用于对所述索引采用CABAC的方式进行熵解码。
在示例性实施例中,所述反二值化处理单元,具体用于:
确定所述压缩后的串长度信息的最大值和所述最大值的位数;
基于所述最大值的位数确定第三比特长度;
如果所述第三比特长度小于1,则确定所述压缩后的串长度信息的第一部分 的值为0;
如果所述第三比特长度大于等于1,则从所述码流中解码所述第三比特长度 的数据,按照定长码的方式对所述第三比特长度的数据进行反二值化处理,得 到所述压缩后的串长度信息的第一部分的值;
根据所述最大值以及所述第一部分的值,计算得到最大值余量;
如果所述第一部分的值满足第二条件或者所述最大值余量等于0,则将目标 值设定为0;否则,将所述目标值设定为1;
如果所述目标值等于0,则确定所述压缩后的串长度信息的第二部分的值为 0;
如果所述目标值等于1,则确定第四比特长度为1,从所述码流中解码所述 第四比特长度的数据,按照定长码的方式对所述第四比特长度的数据进行反二 值化处理,得到所述压缩后的串长度信息的第二部分的值;
根据所述第一部分的值、所述第二部分的值、所述目标值、所述最大值的 位数和所述最大值,计算所述压缩后的串长度信息的值。
在示例性实施例中,所述反二值化处理单元,具体用于按照k阶指数哥伦 布编码的方式对所述二元符号串进行反二值化处理,得到所述压缩后的串长度 信息。
在示例性实施例中,所述反二值化处理单元,具体用于按照一元码或截断 一元码的方式对所述二元符号串进行反二值化处理,得到所述压缩后的串长度 信息。
在示例性实施例中,所述反二值化处理单元,具体用于按照n位定长码的 方式对二元符号串进行反二值化处理,得到所述压缩后的串长度信息;其中,n 为所述压缩后的串长度信息的最大值的位数,n为正整数。
在示例性实施例中,所述压缩后的串长度信息的值基于多个部分确定;所 述反二值化处理单元,具体用于:
确定所述压缩后的串长度信息的最大值,根据所述最大值确定多个数值区 间,其中,第x个数值区间Rx的索引为x,且第x个数值区间Rx表示为[Rx_start, Rx_end),x为正整数;
从所述码流中解码得到所述压缩后的串长度信息的索引x;
根据所述索引x所对应的数值区间Rx,确定所述压缩后的串长度信息的第 一部分的值为Rx_start;
依次确定所述压缩后的串长度信息的其余部分的值;
根据所述第一部分的值和所述其余部分的值,确定所述压缩后的串长度信 息的值。
在示例性实施例中,所述压缩后的串长度信息包括所述当前串的串长度编 码;
所述长度信息确定单元,具体用于将所述当前串的串长度编码与所述串长 度分辨率相乘,得到所述当前串的串长度。
在示例性实施例中,所述压缩后的串长度信息包括所述当前串的串长度编 码减1;
所述长度信息确定单元,具体用于将所述当前串的串长度编码减1加上1, 得到所述当前串的串长度编码;将所述当前串的串长度编码与所述串长度分辨 率相乘,得到所述当前串的串长度。
在示例性实施例中,所述压缩后的串长度信息包括所述当前串所属解码块 中,在解码所述当前串后的剩余像素数量编码;
所述长度信息确定单元,用于将所述剩余像素数量编码与所述串长度分辨 率相乘,得到所述当前串所属解码块中,在解码所述当前串后的剩余像素数量。
相应地,所述串长度确定模块1030,用于获取所述当前串所属解码块的总 像素数量;获取所述当前串所属解码块的已解码像素数量;基于所述总像素数 量、所述已解码像素数量以及解码所述当前串后的所述剩余像素数量,确定所 述当前串的串长度。
在示例性实施例中,所述压缩后的串长度信息包括第一标志,所述第一标 志用于指示所述当前串是否为所述当前串所属解码块中的最后一个串;
所述长度信息确定单元,用于若根据所述第一标志确定所述当前串不是所 述最后一个串,则获取所述当前串所属解码块中,在解码所述当前串后的剩余 像素数量编码;其中,所述串长度信息还包括所述当前串所属解码块中,在解 码所述当前串后的剩余像素数量编码;或者,所述串长度信息还包括所述当前 串所属解码块中,在解码所述当前串后的剩余像素数量编码减1;将所述剩余像 素数量编码与所述串长度分辨率相乘,得到所述当前串所属解码块中,在解码 所述当前串后的剩余像素数量。
相应地,所述串长度确定模块1030,用于获取所述当前串所属解码块的总 像素数量;获取所述当前串所属解码块的已解码像素数量;若所述当前串是所 述最后一个串,则将所述总像素数量与所述已解码像素数量相减,得到所述当 前串的串长度;若所述当前串不是所述最后一个串,则基于所述总像素数量、 所述已解码像素数量以及解码所述当前串后的所述剩余像素数量,确定所述当 前串的串长度。
在示例性实施例中,所述装置1000还包括分辨率确定模块,用于:
将第一预设值确定为所述当前串的串长度分辨率;
或者,从所述当前串所属图像序列的序列头中,解码得到所述当前串的串 长度分辨率,其中,所述当前串所属图像序列中包含的各个串的串长度分辨率 相同;
或者,从所述当前串所属图像的图像头中,解码得到所述当前串的串长度 分辨率,其中,所述当前串所属图像中包含的各个串的串长度分辨率相同;
或者,从所述当前串所属片的片头中,解码得到所述当前串的串长度分辨 率,其中,所述当前串所属片中包含的各个串的串长度分辨率相同;
或者,从所述当前串所属最大编码单元LCU的编码信息中,解码得到所述 当前串的串长度分辨率,其中,所述当前串所属LCU中包含的各个串的串长度 分辨率相同;
或者,从所述当前串所属编码单元CU的编码信息中,解码得到所述当前 串的串长度分辨率,其中,所述当前串所属编码单元CU中包含的各个串的串长 度分辨率相同;
或者,从所述当前串的编码信息中,解码得到所述当前串的串长度分辨率。
在示例性实施例中,所述装置1000还包括方式选择模块,用于:
根据所述当前串的串长度分辨率,从多种反二值化处理方式中选择对所述 二元符号串进行反二值化处理的方式;
或者,根据所述串长度信息的最大值,从多种反二值化处理方式中选择对 所述二元符号串进行反二值化处理的方式;
或者,根据所述当前串所属解码块的剩余像素数量的最大值与所述当前串 的串长度分辨率的商,从多种反二值化处理方式中选择对所述二元符号串进行 反二值化处理的方式;
或者,根据所述当前串所属解码块的尺寸,从多种反二值化处理方式中选 择对所述二元符号串进行反二值化处理的方式。
请参考图11,其示出了本申请一个实施例提供的视频编码装置的框图。该 装置具有实现上述视频编码方法示例的功能,所述功能可以由硬件实现,也可 以由硬件执行相应的软件实现。该装置可以是上文介绍的计算机设备,也可以 设置在计算机设备上。该装置1100可以包括:串长度确定模块1110、长度信息 确定模块1120和二值化处理模块1130。
串长度确定模块1110,用于确定当前串的串长度。
长度信息确定模块1120,用于基于所述当前串的串长度确定所述当前串的 串长度信息,所述串长度信息包括与所述当前串的串长度相关的信息。
二值化处理模块1130,用于根据所述当前串的串长度分辨率对所述串长度 信息进行二值化处理,得到所述串长度信息的二元符号串。
在示例性实施例中,所述二值化处理模块1130,包括:
长度信息确定单元,用于根据串长度信息和串长度分辨率,确定压缩后的 串长度信息;
二值化处理单元,用于对压缩后的串长度信息进行二值化处理,得到串长 度信息的二元符号串。
可选地,二值化处理可以采用与上文介绍的反二值化处理相对应的方式, 本实施例对此不再赘述。
可选地,如果串长度信息包括当前串的串长度,那么长度信息确定单元可 用于将当前串的串长度除以串长度分辨率,得到当前串的串长度编码。相应地, 压缩后的串长度信息可以包括当前串的串长度编码,也可以包括当前串的串长 度编码减1。
可选地,如果串长度信息包括当前串所属编码块中,在编码当前串后的剩 余像素数量,那么长度信息确定单元可用于将该剩余像素数量除以串长度分辨 率,得到剩余像素数量编码。相应地,压缩后的串长度信息可以包括当前串所 属编码块中,在编码当前串后的剩余像素数量编码,也可以包括当前串所属编 码块中,在编码当前串后的剩余像素数量编码减1。
在示例性实施例中,采用以下任意一种方式确定当前串的串长度分辨率:
方式一:当前串的串长度分辨率为第一预设值;
方式二:当前串所属图像序列中包含的各个串的串长度分辨率相同,当前 串的串长度分辨率编码后添加在当前串所属图像序列的序列头中;
方式三:当前串所属图像中包含的各个串的串长度分辨率相同,当前串的 串长度分辨率编码后添加在当前串所属图像的图像头中;
方式四:当前串所属片中包含的各个串的串长度分辨率相同,当前串的串 长度分辨率编码后添加在当前串所属片的片头中;
方式五:当前串所属LCU中包含的各个串的串长度分辨率相同,当前串的 串长度分辨率编码后添加在当前串所属LCU的编码信息中;
方式六:当前串所属编码单元CU中包含的各个串的串长度分辨率相同, 当前串的串长度分辨率编码后添加在当前串所属CU的编码信息中;
方式七:当前串的串长度分辨率编码后添加在当前串的编码信息中;
方式八:当前串的串长度分辨率根据当前串所属解码块的尺寸确定;
方式九:当前串的串长度分辨率根据当前串对应的颜色分量和色度格式确 定;
方式十:若当前串所属CU中已解码串的数量大于或等于第一阈值,则当 前串的串长度分辨率为第二预设值;
方式十一:若当前串所属CU中已解码未匹配像素的数量大于或等于第二 阈值,则当前串的串长度分辨率为第三预设值;
方式十二:若当前串所属CU中未解码像素的数量小于或等于第三阈值,则 当前串的串长度分辨率为第四预设值。
在示例中实施例中,所述装置1100还包括方式选择模块,用于:
根据当前串的串长度分辨率,从多种二值化处理方式中选择对串长度信息 进行二值化处理的方式;
或者,根据串长度信息的最大值,从多种二值化处理方式中选择对串长度 信息进行二值化处理的方式;
或者,根据当前串所属编码块的剩余像素数量的最大值与当前串的串长度 分辨率的商,从多种二值化处理方式中选择对串长度信息进行二值化处理的方 式;
或者,根据当前串所属编码块的尺寸,从多种二值化处理方式中选择对串 长度信息进行二值化处理的方式。
需要说明的是,上述实施例提供的装置,在实现其功能时,仅以上述各功 能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由 不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以 上描述的全部或者部分功能。另外,上述实施例提供的装置与方法实施例属于 同一构思,其具体实现过程详见方法实施例,这里不再赘述。
请参考图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 (20)

1.一种视频解码方法,其特征在于,所述方法包括:
从码流中解码得到当前串的串长度信息的二元符号串,所述串长度信息包括与所述当前串的串长度相关的信息;
根据当前串的串长度分辨率对所述二元符号串进行反二值化处理,得到所述串长度信息;
根据所述串长度信息确定所述当前串的串长度。
2.根据权利要求1所述的方法,其特征在于,所述根据当前串的串长度分辨率对所述二元符号串进行反二值化处理,得到所述串长度信息,包括:
对所述二元符号串进行反二值化处理,得到基于所述串长度分辨率压缩后的串长度信息;
根据所述压缩后的串长度信息和所述串长度分辨率,确定所述串长度信息。
3.根据权利要求2所述的方法,其特征在于,所述对所述二元符号串进行反二值化处理,得到基于所述串长度分辨率压缩后的串长度信息,包括:
确定所述压缩后的串长度信息的最大值,根据所述最大值确定多个数值区间,其中,第x个数值区间Rx的索引为x,且第x个数值区间Rx表示为[Rx_start,Rx_end),x为正整数;
从所述码流中解码得到所述压缩后的串长度信息的索引x;
根据所述索引x所对应的数值区间Rx,确定所述压缩后的串长度信息的第一部分的值为Rx_start;
根据所述最大值以及所述第一部分的值,计算得到最大值余量和所述最大值余量的位数;
基于所述最大值余量的位数确定第一比特长度;
如果所述第一比特长度小于1,则确定所述压缩后的串长度信息的第二部分的值为0;
如果所述第一比特长度大于等于1,则从所述码流中解码所述第一比特长度的数据,按照定长码的方式对所述第一比特长度的数据进行反二值化处理,得到所述压缩后的串长度信息的第二部分的值;
如果所述第二部分的值满足第一条件或者所述最大值余量等于0,则将目标值设定为0;否则,将所述目标值设定为1;
如果所述目标值等于0,则确定所述压缩后的串长度信息的第三部分的值为0;
如果所述目标值等于1,则确定第二比特长度为1,从所述码流中解码所述第二比特长度的数据,按照定长码的方式对所述第二比特长度的数据进行反二值化处理,得到所述压缩后的串长度信息的第三部分的值;
根据所述第一部分的值、所述第二部分的值、所述第三部分的值、所述目标值、所述最大值余量的位数和所述最大值余量,计算所述压缩后的串长度信息的值。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
根据所述压缩后的串长度信息的最大值,确定所述压缩后的串长度信息的索引的上下文模型,所述上下文模型用于对所述索引采用基于上下文的二值化算术编码CABAC的方式进行熵解码。
5.根据权利要求2所述的方法,其特征在于,所述对所述二元符号串进行反二值化处理,得到基于所述串长度分辨率压缩后的串长度信息,包括:
确定所述压缩后的串长度信息的最大值和所述最大值的位数;
基于所述最大值的位数确定第三比特长度;
如果所述第三比特长度小于1,则确定所述压缩后的串长度信息的第一部分的值为0;
如果所述第三比特长度大于等于1,则从所述码流中解码所述第三比特长度的数据,按照定长码的方式对所述第三比特长度的数据进行反二值化处理,得到所述压缩后的串长度信息的第一部分的值;
根据所述最大值以及所述第一部分的值,计算得到最大值余量;
如果所述第一部分的值满足第二条件或者所述最大值余量等于0,则将目标值设定为0;否则,将所述目标值设定为1;
如果所述目标值等于0,则确定所述压缩后的串长度信息的第二部分的值为0;
如果所述目标值等于1,则确定第四比特长度为1,从所述码流中解码所述第四比特长度的数据,按照定长码的方式对所述第四比特长度的数据进行反二值化处理,得到所述压缩后的串长度信息的第二部分的值;
根据所述第一部分的值、所述第二部分的值、所述目标值、所述最大值的位数和所述最大值,计算所述压缩后的串长度信息的值。
6.根据权利要求2所述的方法,其特征在于,所述对所述二元符号串进行反二值化处理,得到基于所述串长度分辨率压缩后的串长度信息,包括:
按照k阶指数哥伦布码的方式对所述二元符号串进行反二值化处理,得到所述压缩后的串长度信息。
7.根据权利要求2所述的方法,其特征在于,所述对所述二元符号串进行反二值化处理,得到基于所述串长度分辨率压缩后的串长度信息,包括:
按照一元码或截断一元码的方式对所述二元符号串进行反二值化处理,得到所述压缩后的串长度信息。
8.根据权利要求2所述的方法,其特征在于,所述对所述二元符号串进行反二值化处理,得到基于所述串长度分辨率压缩后的串长度信息,包括:
按照n位定长码的方式对二元符号串进行反二值化处理,得到所述压缩后的串长度信息;
其中,n为所述压缩后的串长度信息的最大值的位数,n为正整数。
9.根据权利要求2所述的方法,其特征在于,所述压缩后的串长度信息的值基于多个部分确定;
所述对所述二元符号串进行反二值化处理,得到基于所述串长度分辨率压缩后的串长度信息,包括:
确定所述压缩后的串长度信息的最大值为,根据所述最大值确定多个数值区间,其中,第x个数值区间Rx的索引为x,且第x个数值区间Rx表示为[Rx_start,Rx_end),x为正整数;
从所述码流中解码得到所述压缩后的串长度信息的索引x;
根据所述索引x所对应的数值区间Rx,确定所述压缩后的串长度信息的第一部分的值为Rx_start;
依次确定所述压缩后的串长度信息的其余部分的值;
根据所述第一部分的值和所述其余部分的值,确定所述压缩后的串长度信息的值。
10.根据权利要求2所述的方法,其特征在于,所述压缩后的串长度信息包括所述当前串的串长度编码;
所述根据所述压缩后的串长度信息和所述串长度分辨率,确定所述串长度信息,包括:
将所述当前串的串长度编码与所述串长度分辨率相乘,得到所述当前串的串长度。
11.根据权利要求2所述的方法,其特征在于,所述压缩后的串长度信息包括所述当前串的串长度编码减1;
所述根据所述压缩后的串长度信息和所述串长度分辨率,确定所述串长度信息,包括:
将所述当前串的串长度编码减1加上1,得到所述当前串的串长度编码;
将所述当前串的串长度编码与所述串长度分辨率相乘,得到所述当前串的串长度。
12.根据权利要求2所述的方法,其特征在于,所述压缩后的串长度信息包括所述当前串所属解码块中,在解码所述当前串后的剩余像素数量编码;
所述根据所述压缩后的串长度信息和所述串长度分辨率,确定所述串长度信息,包括:
将所述剩余像素数量编码与所述串长度分辨率相乘,得到所述当前串所属解码块中,在解码所述当前串后的剩余像素数量;
所述根据所述串长度信息确定所述当前串的串长度,包括:
获取所述当前串所属解码块的总像素数量;
获取所述当前串所属解码块的已解码像素数量;
基于所述总像素数量、所述已解码像素数量以及解码所述当前串后的所述剩余像素数量,确定所述当前串的串长度。
13.根据权利要求2所述的方法,其特征在于,所述压缩后的串长度信息包括第一标志,所述第一标志用于指示所述当前串是否为所述当前串所属解码块中的最后一个串;
所述根据所述压缩后的串长度信息和所述串长度分辨率,确定所述串长度信息,包括:
若根据所述第一标志确定所述当前串不是所述最后一个串,则获取所述当前串所属解码块中,在解码所述当前串后的剩余像素数量编码;其中,所述串长度信息还包括所述当前串所属解码块中,在解码所述当前串后的剩余像素数量编码;或者,所述串长度信息还包括所述当前串所属解码块中,在解码所述当前串后的剩余像素数量编码减1;
将所述剩余像素数量编码与所述串长度分辨率相乘,得到所述当前串所属解码块中,在解码所述当前串后的剩余像素数量;
所述根据所述串长度信息确定所述当前串的串长度,包括:
获取所述当前串所属解码块的总像素数量;
获取所述当前串所属解码块的已解码像素数量;
若所述当前串是所述最后一个串,则将所述总像素数量与所述已解码像素数量相减,得到所述当前串的串长度;
若所述当前串不是所述最后一个串,则基于所述总像素数量、所述已解码像素数量以及解码所述当前串后的所述剩余像素数量,确定所述当前串的串长度。
14.根据权利要求1至13任一项所述的方法,其特征在于,所述方法还包括:
将第一预设值确定为所述当前串的串长度分辨率;
或者,从所述当前串所属图像序列的序列头中,解码得到所述当前串的串长度分辨率,其中,所述当前串所属图像序列中包含的各个串的串长度分辨率相同;
或者,从所述当前串所属图像的图像头中,解码得到所述当前串的串长度分辨率,其中,所述当前串所属图像中包含的各个串的串长度分辨率相同;
或者,从所述当前串所属片的片头中,解码得到所述当前串的串长度分辨率,其中,所述当前串所属片中包含的各个串的串长度分辨率相同;
或者,从所述当前串所属最大编码单元LCU的编码信息中,解码得到所述当前串的串长度分辨率,其中,所述当前串所属LCU中包含的各个串的串长度分辨率相同;
或者,从所述当前串所属编码单元CU的编码信息中,解码得到所述当前串的串长度分辨率,其中,所述当前串所属编码单元CU中包含的各个串的串长度分辨率相同;
或者,从所述当前串的编码信息中,解码得到所述当前串的串长度分辨率。
15.根据权利要求1至13任一项所述的方法,其特征在于,所述方法还包括:
根据所述当前串的串长度分辨率,从多种反二值化处理方式中选择对所述二元符号串进行反二值化处理的方式;
或者,
根据所述串长度信息的最大值,从多种反二值化处理方式中选择对所述二元符号串进行反二值化处理的方式;
或者,
根据所述当前串所属解码块的剩余像素数量的最大值与所述当前串的串长度分辨率的商,从多种反二值化处理方式中选择对所述二元符号串进行反二值化处理的方式;
或者,
根据所述当前串所属解码块的尺寸,从多种反二值化处理方式中选择对所述二元符号串进行反二值化处理的方式。
16.一种视频编码方法,其特征在于,所述方法包括:
确定当前串的串长度;
基于所述当前串的串长度确定所述当前串的串长度信息,所述串长度信息包括与所述当前串的串长度相关的信息;
根据所述当前串的串长度分辨率对所述串长度信息进行二值化处理,得到所述串长度信息的二元符号串。
17.一种视频解码装置,其特征在于,所述装置包括:
二元符号获取模块,用于从码流中解码得到当前串的串长度信息的二元符号串,所述串长度信息包括与所述当前串的串长度相关的信息;
反二值化处理模块,用于根据当前串的串长度分辨率对所述二元符号串进行反二值化处理,得到所述串长度信息;
串长度确定模块,用于根据所述串长度信息确定所述当前串的串长度。
18.一种视频编码装置,其特征在于,所述装置包括:
串长度确定模块,用于确定当前串的串长度;
长度信息确定模块,用于基于所述当前串的串长度确定所述当前串的串长度信息,所述串长度信息包括与所述当前串的串长度相关的信息;
二值化处理模块,用于根据所述当前串的串长度分辨率对所述串长度信息进行二值化处理,得到所述串长度信息的二元符号串。
19.一种计算机设备,其特征在于,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如权利要求1至15任一项所述的方法,或者实现如权利要求16所述的方法。
20.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如权利要求1至15任一项所述的方法,或者实现如权利要求16所述的方法。
CN202010841108.9A 2020-08-20 2020-08-20 视频解码方法、视频编码方法、装置、设备及存储介质 Pending CN114079780A (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN202010841108.9A CN114079780A (zh) 2020-08-20 2020-08-20 视频解码方法、视频编码方法、装置、设备及存储介质
EP21857559.5A EP4113999A4 (en) 2020-08-20 2021-08-11 VIDEO DECODING METHOD AND APPARATUS, VIDEO ENCODING METHOD AND APPARATUS, DEVICE, AND STORAGE MEDIUM
PCT/CN2021/112133 WO2022037464A1 (zh) 2020-08-20 2021-08-11 视频解码方法、视频编码方法、装置、设备及存储介质
US17/939,767 US20230020127A1 (en) 2020-08-20 2022-09-07 Video decoding method and apparatus, video coding method and apparatus, device, and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010841108.9A CN114079780A (zh) 2020-08-20 2020-08-20 视频解码方法、视频编码方法、装置、设备及存储介质

Publications (1)

Publication Number Publication Date
CN114079780A true CN114079780A (zh) 2022-02-22

Family

ID=80281936

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010841108.9A Pending CN114079780A (zh) 2020-08-20 2020-08-20 视频解码方法、视频编码方法、装置、设备及存储介质

Country Status (4)

Country Link
US (1) US20230020127A1 (zh)
EP (1) EP4113999A4 (zh)
CN (1) CN114079780A (zh)
WO (1) WO2022037464A1 (zh)

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102404571A (zh) * 2011-11-22 2012-04-04 浙江大学 视频图像编解码中的二进制化的方法和装置
JP6352452B2 (ja) * 2014-06-20 2018-07-04 寰發股▲ふん▼有限公司HFI Innovation Inc. ビデオ符号化における構文の2値化とコンテキスト適応型符号化の方法と装置
KR102470831B1 (ko) * 2014-10-01 2022-11-28 주식회사 케이티 비디오 신호 처리 방법 및 장치
WO2016119726A1 (en) * 2015-01-30 2016-08-04 Mediatek Inc. Method and apparatus for entropy coding of source samples with large alphabet
CN105973287B (zh) * 2016-05-04 2018-07-06 广东工业大学 一种多轨绝对光栅尺图像编码解码方法
US10747819B2 (en) * 2018-04-20 2020-08-18 International Business Machines Corporation Rapid partial substring matching
CN113727108B (zh) * 2020-05-26 2024-03-01 腾讯科技(深圳)有限公司 视频解码方法、视频编码方法及相关设备
CN114900690B (zh) * 2020-07-29 2023-09-01 腾讯科技(深圳)有限公司 视频解码方法、视频编码方法、装置、设备及存储介质

Also Published As

Publication number Publication date
EP4113999A4 (en) 2023-09-27
WO2022037464A1 (zh) 2022-02-24
US20230020127A1 (en) 2023-01-19
EP4113999A1 (en) 2023-01-04

Similar Documents

Publication Publication Date Title
CN111866512B (zh) 视频解码方法、视频编码方法、装置、设备及存储介质
CN109565599B (zh) 使用解耦树结构的视频内译码
CN109565603B (zh) 使用解耦树结构的视频内译码
EP2820845B1 (en) Scan-based sliding window in context derivation for transform coefficient coding
RU2623884C2 (ru) Группирование элементов синтаксиса с кодированием в режиме обхода в кодировании видео
CN113728650A (zh) 自适应环路滤波器集合索引信令
JP2023156438A (ja) データ符号化方法及び装置、データ復号化方法及び装置、画像処理装置
CN114402604A (zh) 用于视频编解码的简化调色板预测器更新
US20230068657A1 (en) Selecting a coding method for suffix values for displacement vector differences based on value intervals
CN110868587A (zh) 一种视频图像预测方法及装置
WO2020023280A1 (en) Rounding of motion vectors for adaptive motion vector difference resolution and increased motion vector storage precision in video coding
CN116508321A (zh) 视频译码期间基于联合分量神经网络的滤波
CN111770345A (zh) 编码单元的运动估计方法、装置、设备及存储介质
CN112335251B (zh) 以分组的旁路位元的系数编码
KR20220024658A (ko) 비디오 데이터의 변환-스킵 잔차 코딩
EP3883244A1 (en) Inter-frame prediction method and related device
CN113132731A (zh) 视频解码方法、装置、设备及存储介质
CN114079780A (zh) 视频解码方法、视频编码方法、装置、设备及存储介质
CN114071158A (zh) 视频编解码中的运动信息列表构建方法、装置及设备
KR20220136436A (ko) 필터 가용 정보를 선택적으로 시그널링 하는 영상 부호화/복호화 방법, 장치 및 비트스트림을 전송하는 방법
CN111770338B (zh) 编码单元的索引值确定方法、装置、设备及存储介质
CN114079782A (zh) 视频图像重建方法、装置、计算机设备及存储介质
CN114390289A (zh) 参考像素候选列表构建方法、装置、设备及存储介质
WO2022213122A1 (en) State transition for trellis quantization in video coding
WO2023132991A1 (en) Signaling general constraints information for video coding

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: 40065466

Country of ref document: HK