CN113727108A - 视频解码方法、视频编码方法及相关设备 - Google Patents

视频解码方法、视频编码方法及相关设备 Download PDF

Info

Publication number
CN113727108A
CN113727108A CN202110764257.4A CN202110764257A CN113727108A CN 113727108 A CN113727108 A CN 113727108A CN 202110764257 A CN202110764257 A CN 202110764257A CN 113727108 A CN113727108 A CN 113727108A
Authority
CN
China
Prior art keywords
string
current
decoded
pixels
resolution
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.)
Granted
Application number
CN202110764257.4A
Other languages
English (en)
Other versions
CN113727108B (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 CN202110764257.4A priority Critical patent/CN113727108B/zh
Publication of CN113727108A publication Critical patent/CN113727108A/zh
Application granted granted Critical
Publication of CN113727108B publication Critical patent/CN113727108B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/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/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/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/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/172Methods 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 picture, frame or field
    • 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/174Methods 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 slice, e.g. a line of blocks or a group of 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/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/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/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/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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

Landscapes

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

Abstract

本公开提供了一种视频解码方法、视频编码方法及相关设备。该方法包括:获取待解码码流,所述待解码码流包括当前解码块,所述当前解码块采用串复制帧内模式,所述当前解码块包括当前串;确定所述当前串的串长度编码分辨率;解码所述待解码码流,获得所述当前串对应的已编码串长度;根据所述当前串的串长度编码分辨率及其对应的已编码串长度,获得所述当前串的串长度;其中,所述当前串的串长度编码分辨率为以下其中至少一项:至少一个预设值,每个预设值为大于或者等于1的整数像素;所述当前解码块的宽度或者高度。本公开实施例中提供的方案能够提高编码效率。

Description

视频解码方法、视频编码方法及相关设备
本公开是申请日为2020年5月26日、申请号为202010457090.2、发明名称为《视频解码方法、视频编码方法及相关设备》的专利申请的分案申请。
技术领域
本公开涉及视频编解码技术领域,具体而言,涉及一种视频解码方法、视频编码方法、电子设备和计算机可读存储介质。
背景技术
一方面,互联网即将进入5G(5th generation mobile networks或5thgeneration wireless systems、5th-Generation,第五代移动通信技术)新时代,各种互联网应用中出现的图像(视频)已经成为互联网带宽的主要消耗者。特别是移动互联网图像流量与日俱增,在5G时代更将有爆发式的增长,将给图像编解码技术的加速发展注入全新的强大推动力。与此同时,也对图像编解码技术提出了诸多过去未曾遇到的严峻的新挑战。5G时代,万物互联,各类新兴应用中产生的新型互联网图像具有多样性和差异性。因此,如何针对具有多样性和差异性的新型互联网图像的特点,研究高效的图像编解码技术成为了迫切需求。
另一方面,用于描绘即使相对较短影片所需的视频数据量也可能相当大,当数据为流式或者以其它方式通过具有有限带宽容量的通信网进行传送时,这可能产生困难。因此,在通过现代电信网络进行传送之前,视频数据通常进行压缩。在传输之前,视频压缩设备通常使用在源侧的软件和/或硬件来对视频数据进行编码,从而减少了用于表示数字视频图像所需的数据量。随后由视频解压缩设备在目的地接收压缩数据,所述视频解压缩设备对视频数据进行解码。在有限的网络资源以及对较高视频质量的需求不断增加的情况下,需要提高图像质量而不会增加位速率的改进的压缩和解压缩技术。
相关技术中的串预测方案(也可称之为串复制帧内技术或者串匹配技术)在对串长度编码时,默认使用1像素分辨率(即允许编码的串长度可以是1,2,3,…),导致串长度的编码成本较高。
因此,需要一种新的视频解码方法、视频编码方法、电子设备和计算机可读存储介质。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解。
发明内容
本公开实施例提供一种视频解码方法、视频编码方法、电子设备和计算机可读存储介质,允许使用不同的分辨率编码串长度,从而能够提高串长度的编码效率。
本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。
本公开实施例提供一种视频解码方法,所述方法包括:获取待解码码流,所述待解码码流包括当前解码块,所述当前解码块采用串复制帧内模式,所述当前解码块包括当前串;确定所述当前串的串长度编码分辨率;解码所述待解码码流,获得所述当前串对应的已编码串长度;根据所述当前串的串长度编码分辨率及其对应的已编码串长度,获得所述当前串的串长度。其中,所述当前串的串长度编码分辨率为以下其中至少一项:至少一个预设值,每个预设值为大于或者等于1的整数像素;所述当前解码块的宽度或者高度。
本公开实施例提供一种视频编码方法,所述方法包括:获取当前编码块;对所述当前编码块采用串复制帧内模式,将所述当前编码块分成串;确定所述当前编码块的串长度编码分辨率;根据所述串长度编码分辨率编码所述串的串长度;其中,所述串长度编码分辨率为以下其中至少一项:至少一个预设值,每个预设值为大于或者等于1的整数像素;所述当前编码块的宽度或者高度。
本公开实施例提供一种视频解码装置,所述装置包括:待解码码流获取单元,用于获取待解码码流,所述待解码码流包括当前解码块,所述当前解码块采用串复制帧内模式,所述当前解码块包括当前串;编码分辨率确定单元,用于确定所述当前串的串长度编码分辨率;码流解码单元,用于解码所述待解码码流,获得所述当前串对应的已编码串长度;串长度获得单元,用于根据所述当前串的串长度编码分辨率及其对应的已编码串长度,获得所述当前串的串长度。其中,所述当前串的串长度编码分辨率为以下其中至少一项:至少一个预设值,每个预设值为大于或者等于1的整数像素;所述当前解码块的宽度或者高度。
本公开实施例提供一种视频编码装置,所述装置包括:当前编码块获取单元,用于获取当前编码块;串划分单元,用于对所述当前编码块采用串复制帧内模式,将所述当前编码块分成串;编码分辨率确定单元,用于确定所述当前编码块的串长度编码分辨率;串长度编码单元,用于根据所述串长度编码分辨率编码所述串的串长度;其中,所述串长度编码分辨率为以下其中:至少一个预设值,每个预设值为大于或者等于1的整数像素;所述当前编码块的宽度或者高度。
本公开实施例提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如上述实施例中所述的视频解码方法或者视频编码方法。
本公开实施例提供了一种电子设备,包括:至少一个处理器;存储装置,配置为存储至少一个程序,当所述至少一个程序被所述至少一个处理器执行时,使得所述至少一个处理器实现如上述实施例中所述的视频解码方法或者视频编码方法。
在本公开的一些实施例所提供的技术方案中,通过允许使用不同的分辨率对串长度进行编码,一方面,能够提高串长度的编码效率,从而提高视频数据的整体编码效率;另一方面,能够控制串的最小长度,限制所有串长度都为串长度编码分辨率的整数倍,可以增大内存访问的粒度,有利于硬件实现。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1示意性示出了相关技术中的一种视频编码基本框图;
图2示意性示出了相关技术中的帧间预测的示意图;
图3示意性示出了相关技术中的帧间预测的Merge(合并)模式的空域的候选MVP的位置示意图;
图4示意性示出了相关技术中的帧间预测的Merge模式的时域的候选MVP的位置示意图;
图5示意性示出了相关技术中的帧内块复制的示意图;
图6示意性示出了相关技术中的串复制帧内的示意图;
图7示意性示出了根据本公开的一实施例的视频解码方法的示意图;
图8示意性示出了根据本公开的一实施例的视频编码方法的示意图;
图9示出了适于用来实现本公开实施例的电子设备的结构示意图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本公开的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本公开的各方面。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在至少一个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
首先对本公开实施例中涉及的部分术语进行说明。
AVS:Audio Video Coding Standard,音视频编码标准。
HEVC:High Efficiency Video Coding,高效视频编码,也称之为H.265。
VVC:Versatile Video Coding,多功能视频编码,也称之为H.266。
Intra(picture)Prediction:帧内预测。
Inter(picture)Prediction:帧间预测。
SCC:screen content coding,屏幕内容/图像编码。
Loop Filtering:环路滤波。
QP:Quantization Parameter,量化参数。
LCU:Largest Coding Unit,最大编码单元。
CTU:Coding Tree Unit,编码树单元,一般由最大编码单元开始往下划分。
CU:Coding Unit,编码单元。
PU:Prediction Unit,预测单元。
MV:Motion Vector,运动矢量。
MVP:Motion Vector Prediction,运动矢量预测值。
MVD:Motion Vector Difference,MVP与MV的真正估值之间的差值。
AMVP:Advanced Motion Vector Prediction,高级运动矢量预测。
ME:Motion Estimation,运动估计,得到运动矢量MV的过程称作为运动估计,作为运动补偿(Motion Compensation,MC)中的技术。
MC:根据运动矢量和帧间预测方法,求得当前图像的估计值过程。运动补偿是一种描述相邻帧(相邻在这里表示在编码关系上相邻,在播放顺序上两帧未必相邻)差别的方法,具体来说是描述前面一帧的每个小块怎样移动到当前帧中的某个位置去。这种方法经常被视频压缩/视频编解码器用来减少视频序列中的空域冗余。相邻的帧通常很相似,也就是说,包含了很多冗余。使用运动补偿的目的是通过消除这种冗余,来提高压缩比。
BV:Block Vector,块位移矢量/块矢量。
BVP:Block Vector Prediction,块矢量预测值。
BVD:Block Vector Difference,BVP与BV的真正估值之间的差值。
I Slice:Intra Slice,帧内条带/片。可以把图像分成一帧(frame)或两场(field),而帧又可以分成一个或几个片(Slice)。
视频信号,从信号的获取方式看,可以包括摄像机拍摄到的以及计算机生成的两种方式。由于统计特性的不同,其对应的压缩编码方式也可能有所区别。
部分视频编码技术例如HEVC,VVC以及AVS,采用了混合编码框架,如图1所示,对输入的原始视频信号(input video)中的图像(pictures)按顺序编码,进行了如下一系列的操作和处理:
1)块划分结构(block partition structure):将输入图像划分成若干个不重叠的处理单元,对每个处理单元将进行类似的压缩操作。这个处理单元可以称之为CTU或者LCU。CTU或者LCU再往下,可以继续进行更加精细的划分,得到至少一个基本编码的单元,称之为CU。每个CU是一个编码环节中最基本的元素。以下描述的是对每一个CU可能采用的各种编码方式。
2)预测编码(Predictive Coding):包括了帧内预测和帧间预测等方式,原始视频信号经过选定的已重建视频信号的预测后,得到残差视频信号。编码端需要为当前CU决定在众多可能的预测编码模式中,选择最适合的一种,并告知解码端。
a.帧内预测:预测的信号来自于同一图像内已经编码重建过的区域。
其中,帧内预测的基本思想就是利用相邻像素的相关性去除空间冗余。在视频编码中,相邻像素指的就是当前CU周围的已编码CU的重建(reconstructed)像素。
b.帧间预测:预测的信号来自已经编码过的,且不同于当前图像的其他图像(称之为参考图像)。
3)变换编码及量化(Transform&Quantization):残差视频信号经过DFT(DiscreteFourier Transform,离散傅里叶变换),DCT(Discrete Cosine Transform,离散余弦变换)等变换操作,将残差视频信号转换到变换域中,称之为变换系数。在变换域中的残差视频信号,进一步的进行有损的量化操作,丢失掉一定的信息,使得量化后的信号有利于压缩表达。
在一些视频编码标准中,可能有多于一种变换方式可以选择,因此,编码端也需要为待编码的当前CU选择其中的一种变换,并告知解码端。
其中,量化的精细程度通常由量化参数(Quantization Parameters,QP)来决定,QP取值较大时,表示更大取值范围的变换系数将被量化为同一个输出,因此通常会带来更大的失真及较低的码率;相反,QP取值较小时,表示较小取值范围的变换系数将被量化为同一个输出,因此通常会带来较小的失真,同时对应较高的码率。
4)熵编码(Entropy Coding)或统计编码:量化后的变换域信号,将根据各个值出现的频率,进行统计压缩编码,最后输出二值化(0或者1)的压缩码流(bitstream)。
同时,编码产生其他信息,例如选择的编码模式(coding modes),运动矢量等,也需要进行熵编码以降低码率。
其中,统计编码是一种无损编码方式,可以有效的降低表达同样的信号所需要的码率。常见的统计编码方式有变长编码(Variable Length Coding,VLC)或者基于上下文的二值化算术编码(Content Adaptive Binary Arithmetic Coding,CABAC)。
5)环路滤波(Loop Filtering):已经编码过的图像,经过反量化,反变换及预测补偿的操作(上述步骤2)~4)的反向操作),可获得重建的解码图像(decoded picture)。重建的解码图像与原始的输入图像相比,由于存在量化的影响,部分信息与原始的输入图像有所不同,产生失真(Distortion)。对重建的解码图像进行滤波操作,例如去块效应滤波(deblocking),SAO(Sample Adaptive Offset,样点自适应补偿)或者ALF(Adaptive LoopFilter,自适应环路滤波)等滤波器,可以有效的降低量化所产生的失真程度。由于这些经过滤波后的重建的解码图像,将做为后续编码图像的参考,用于对将来的信号进行预测,所以上述的滤波操作也称为环路滤波,及在编码环路内的滤波操作。
图1展示了一个视频编码器的基本流程图。图1中以第k个CU(标记为sk[x,y])为例进行举例说明。其中,k为大于或等于1且小于或等于输入的当前图像中的CU的数量的正整数,sk[x,y]表示第k个CU中坐标为[x,y]的像素点,x表示像素点的横坐标,y表示像素点的纵坐标。sk[x,y]经过运动补偿或者帧内预测等中的一种较优处理后获得预测信号
Figure BDA0003150369710000081
sk[x,y]与
Figure BDA0003150369710000082
相减得到残差信号uk[x,y],然后对该残差信号uk[x,y]进行变换和量化,量化输出的数据有两个不同的去处:一个是送给熵编码器进行熵编码,编码后的码流输出到一个缓冲器(buffer)中保存,等待传送出去;另一个应用是进行反量化和反变换后,得到信号u'k[x,y]。将信号u'k[x,y]与
Figure BDA0003150369710000083
相加得到新的预测信号s* k[x,y],并将s* k[x,y]送至当前图像的缓冲器中保存。s* k[x,y]经过帧内-图像预测获得f(s* k[x,y])。s* k[x,y]经过环路滤波后获得s'k[x,y],并将s'k[x,y]送至解码图像缓冲器中保存,以用于生成重建视频。s'k[x,y]经过运动-补偿预测后获得s'r[x+mx,y+my],s'r[x+mx,y+my]表示参考块,mx和my分别表示运动矢量的水平和竖直分量。
一些视频编码标准,如HEVC,VVC,AVS3,均采用基于块的混合编码框架。它们将原始的视频数据分成一系列的编码块,结合预测、变换和熵编码等视频编码方法,实现视频数据的压缩。其中,运动补偿是视频编码常用的一类预测方法,运动补偿基于视频内容在时域或空域的冗余特性,从已编码的区域导出当前编码块的预测值。这类预测方法包括:帧间预测、帧内块复制预测、串复制帧内预测等。在具体的编码实现中,可能单独或组合使用这些预测方法。对于使用了这些预测方法的编码块,通常需要在码流中显式或隐式的编码至少一个二维的位移矢量,指示当前块(或当前块的同位块)相对它的至少一个参考块的位移。
其中,在不同的预测模式及不同的实现下,位移矢量可能有不同的名称,本公开实施例中统一按照以下方式进行描述:1)帧间预测中的位移矢量称为运动矢量(MV);2)帧内块复制中的位移矢量称为块矢量或者块位移矢量(BV);3)串复制帧内中的位移矢量称为串矢量(String Vector,简称SV)。
以下先对帧间预测和帧内块复制预测中相关的技术进行介绍。
图2示意性示出了相关技术中的帧间预测的示意图。
如图2所示,帧间预测利用视频时间域的相关性,使用邻近已编码图像像素预测当前图像的像素,以达到有效去除视频时域冗余的目的,能够有效节省编码残差数据的比特。其中,P为当前帧,Pr为参考帧,B为当前待编码块,Br是B的参考块。B’与B在图像中的坐标位置相同。
假设Br坐标为(xr,yr),B’坐标为(x,y)。当前待编码块B与其参考块Br之间的位移,称为运动向量(MV),即:
MV=(xr-x,yr-y) (1)
考虑到时域或空域邻近块具有较强的相关性,可以采用MV预测技术进一步减少编码MV所需要的比特。在H.265/HEVC中,帧间预测包含Merge和AMVP两种MV预测技术。
其中,Merge模式会为当前PU建立一个MV候选列表,其中存在5个候选MV(及其对应的参考图像)。遍历这5个候选MV,选取率失真代价最小的作为最优MV。若编解码器依照相同的方式建立MV候选列表,则编码器只需要传输最优MV在MV候选列表中的索引即可。
需要注意的是,HEVC的MV预测技术还有一种skip(跳过)模式,是merge模式的一种特例。在merge模式找到最优MV后,如果当前待编码块和参考块基本一样,那么不需要传输残差数据,只需要传送MV的索引和一个skip flag(指示编码是否是skip模式的标志)。
其中,Merge模式建立的MV候选列表中包含了空域和时域两种情形。
其中,空域最多提供4个候选MV,它的建立如图3所示。当前块空域上的MV候选列表按照A1->B1->B0->A0->B2的顺序建立,其中B2为替补,即当A1,B1,B0,A0中有至少一个不存在时,则需要使用B2的运动信息。即MV候选列表的大小为5,但HEVC中至多使用其中4个(即使五个都存在),并且当其中某一个不可用时,顺序用下一个。
其中,类比空域,空域用相邻块,则时域用相邻帧的同位(对应位置)PU的MV来推测当前位置的MV。时域最多只提供1个候选MV,它的建立如图4所示。帧间预测的图像都要有参考图像,像B帧参考它之前的图像。当前图像叫cur,当前图像的参考图像叫cur_ref,当前图像的同位图像叫col,同位图像的参考图像叫col_ref。假设同位图像col与其参考图像col_ref之间的距离为tb,从当前图像cur与其参考图像cur_ref之间的距离为td,具体实现中,tb可以为同位图像与其参考图像的序号(picture order count,POC)的差值,td可以为当前图像与其参考图像的序号(picture order count,POC)的差值,可以由同位PU的MV按下式伸缩得到:
curMV=td*colMV/tb (2)
其中,curMV和colMV分别表示当前PU和同位PU的MV,这样就能由col(同位)图像推导出当前图像的MV。若同位块上D0位置PU不可用,则用D1位置的同位PU进行替换。
其中,Merge模式建立的MV候选列表中包含了上述空域和时域两种情形,对于BSlice,还包含组合列表的方式。对于B帧,就是需要参考前向帧MV又需要后向帧MV的帧,它有两个MV列表,list0,list。因此,对于B Slice中的PU,由于存在两个MV,其MV候选列表也需要提供两个MVP。HEVC通过将MV候选列表中的前4个候选MV进行两两组合,产生了用于BSlice的组合列表。
上文中提到的merge模式下直接使用MVP作为MV。AMVP模式,类似merge模式,利用空域和时域邻近块的MV相关性,先为当前PU建立候选预测MV列表。AMVP可以利用空间、时间上运动向量的相关性,分别建立空域候选列表以及时域候选列表,再从候选列表中选取最终的MVP。与Merge模式不同,AMVP模式下从候选预测MV列表中选择最有的预测MV即MVP,与当前待编码块通过运动搜索得到的最优MV(即真正的MV)进行差分编码,即编码MVD=MV-MVP。解码端通过建立相同的列表,仅需要MVD与MVP在该列表中的序号,即可计算当前解码块的MV。AMVP候选预测MV列表也包含空域和时域两种情形,不同的是AMVP列表长度仅为2。
如上所述,在HEVC的AMVP模式中,需要对MVD进行编码。在HEVC中,MVD的分辨率由slice_header(片头或者条带头或者切片数据头)中的use_integer_mv_flag控制,当该标志的值为0,MVD以1/4(亮度)像素分辨率进行编码;当该标志的值为1,MVD采用整(亮度)像素分辨率进行编码。
VVC中使用了一种自适应运动矢量精度(Adaptive motion vector resolution,简称AMVR)的方法。该方法允许每个CU自适应的选择编码MVD的分辨率。在普通的AMVP模式中,可选的分辨率包括1/4,1/2,1和4像素。对于具有至少一个非零MVD分量的CU,首先编码一个标志指示是否将四分之一亮度采样MVD精度用于CU。如果该标志为0,则当前CU的MVD采用1/4像素分辨率进行编码。否则,需要编码第二个标志,以指示CU使用了1/2像素分辨率或其他MVD分辨率。否则,编码第三个标志以指示对于CU是否使用1像素分辨率或4像素分辨率。在Affine AMVP模式中,可选的分辨率包括1/16像素,1/4(亮度)像素,1像素。
屏幕图像即由电脑、手机、电视等电子设备产生的图像,主要包含两类内容:一类是计算机生成的非连续色调的内容,包含大量小而尖的线条形状,如文字、图标、按钮和网格等;另一类是摄像机拍摄的包含大量连续色调的内容,例如电影、电视片段、自然图像视频等。相关技术中的基于块的混合编码方式的视频编码标准例如AVS、HEVC,对于包含大量连续内容的自然图像和视频有很高的压缩比,但是对于包含非连续色调内容的屏幕图像压缩效果并不好。
伴随着云计算、移动通信技术和无线显示技术的快速发展,如何在低码率下使屏幕图像在各类电子终端设备上高质量显示,是SCC需要解决的问题。为提高屏幕图像编码性能,开发HEVC标准的SCC版本,并已经采用了一些有利于屏幕图像编码的工具,例如IBC(intra block copy,帧内块复制)。
IBC是HEVC屏幕内容编码(SCC)扩展中采纳的一种帧内编码工具,它显著的提升了屏幕内容的编码效率。在AVS3,VVC中,也采纳了IBC技术以提升屏幕内容编码的性能。IBC利用屏幕内容视频在空间的相关性,使用当前图像上已编码图像像素预测当前待编码块(图5中称之为当前块)的像素,能够有效节省编码像素所需的比特。
如图5所示,在IBC中当前块与其参考块之间的位移,称为块矢量(BV)。VVC采用了类似于帧间预测中的AMVP模式对BV进行预测,并允许使用1或4像素分辨率编码BVD。
串复制帧内技术(Intra String Copy,ISC)/串预测技术较好地提高了屏幕图像编码效果,其将二维图像逐个编码单元CU一维化。ISC按照某种扫描顺序(光栅扫描、往返扫描和Zig-Zag扫描等)将一个编码块分成一系列像素串或未匹配像素。类似于IBC,每个串在当前图像的已编码区域中寻找相同形状的参考串,导出当前串的预测值,通过编码当前串的像素值与预测值之间残差,代替直接编码像素值,能够有效节省比特。
图6给出了串复制帧内的示意图,深色的区域为已编码区域,白色的28个像素为串1,浅色的35个像素为串2,黑色的1个像素表示未匹配像素。如果一个像素在可参考的区域中没有找到对应的参考,即称之为未匹配像素,也称为孤立点,未匹配像素的像素值被直接编码,而不是通过参考串的预测值导出。
ISC技术需要编码当前编码块中各个串对应的串矢量(String Vector,SV)、串长度以及是否有匹配的参考串的标志等。其中,串矢量(SV)表示待编码串(当前串,即当前待编码串)到其参考串的位移。串长度表示该待编码串所包含的像素数量。
在2020年3月份的AVS标准会议中,ISC技术被采纳到参考软件中。目前的ISC方案在对串长度编码时,默认使用1像素分辨率(即允许编码的串长度可以是1,2,3,…),导致串长度的编码成本较高。本公开实施例提出了一种视频编码方法,允许使用不同的分辨率对串长度进行编码,提高了串长度的编码效率。本公开实施例还提出了一种视频解码方法,对采用不同的分辨率对串长度进行编码的码流进行解码时,可以提高串长度的解码效率。
本公开实施例提供的方法可以应用到使用了ISC的视频编解码器或视频压缩的产品中,可以适用于有损数据压缩的编码和解码,也可以适用于无损数据压缩的编码和解码。其中,编码和解码过程中所涉及到的数据是指以下例举之一或者其组合:
1)一维数据;
2)二维数据;
3)多维数据;
4)图形;
5)图像;
6)图像的序列;
7)视频;
8)三维场景;
9)持续变化的三维场景的序列;
10)虚拟现实的场景;
11)持续变化的虚拟现实的场景的序列;
12)像素形式的图像;
13)图像的变换域数据;
14)二维或二维以上字节的集合;
15)二维或二维以上比特的集合;
16)像素的集合;
17)三分量像素(Y,U,V)的集合;
18)三分量像素(Y,Cb,Cr)的集合;
19)三分量像素(Y,Cg,Co)的集合;
20)三分量像素(R,G,B)的集合;
21)四分量像素(C,M,Y,K)的集合;
22)四分量像素(R,G,B,A)的集合;
23)四分量像素(Y,U,V,A)的集合;
24)四分量像素(Y,Cb,Cr,A)的集合;
25)四分量像素(Y,Cg,Co,A)的集合。
当数据为上述列举出的图像、或者图像的序列、或者视频时,编码块是图像的一个编码区域,应当至少包括以下一种:一组图像、预定数目的若干幅图像、一幅图像、一帧图像、一场图像、图像的子图像、条带、宏块、最大编码单元LCU、编码树单元CTU、编码单元CU。
图7示意性示出了根据本公开的一实施例的视频解码方法的示意图。图7实施例以解码端为例进行介绍。如图7所示,本公开实施例提供的方法可以包括以下步骤。
在步骤S710中,获取待解码码流,所述待解码码流包括当前解码块,所述当前解码块采用串复制帧内模式,所述当前解码块包括当前串。
本公开实施例,在编码端,对编码块进行编码时,编码块是子图像,至少包括以下之一:CU、PU、TU,在下面的举例说明中,均以CU为例进行举例说明,但本公开并不限定于此。对编码块中的像素采用串复制帧内模式进行编码,用SV和/或串长度表示对应参考串通过预定运算获得当前像素的预测值,即产生ISC的编码信息压缩数据码流,并将ISC的编码信息压缩数据码流传输至解码端,作为解码端的待解码码流。
解码端解析上述待解码码流,获得表示编码块采用ISC的信息,对当前解码块(当前待解码的块)内的像素采用ISC进行解码。其中,当前串是当前解码块中当前待解码的串。
在步骤S720中,确定所述当前串的串长度编码分辨率。
其中,所述当前串的串长度编码分辨率为以下其中至少一项:至少一个预设值,每个预设值为大于或者等于1的整数像素;所述当前解码块的宽度或者高度。
需要说明的是,本公开实施例中,在解码端,当前CU对应的是当前解码块;在编码端,当前CU对应的是当前编码块。
在示例性实施例中,所述至少一个预设值可以包括1个整数像素,2个整数像素,4个整数像素。但本公开并不限定于此。
例如,假设当前编码块大小为8x8,则串长度的取值范围为[1,64]。如果采用上述相关技术中默认的定长编码的方式编码串长度,在1像素分辨率的情况下,需要6个比特。而采用本公开实施例提供的4像素分辨率的情况下,则只需要4个比特。另外本公开实施例提供的方案还能够控制串的最小长度,例如限制所有串长度都为4的整数倍,这种方式增大了内存访问的粒度,有利于硬件实现。
本公开实施例中,在ISC中增加了一种限制:允许编码的串长度的值为N的整数倍,其中N是一个正整数,称为串长度的基本单位。N也可以称之为串长度编码分辨率或者串长度分辨率(String Length Resolution,SLR)。
本公开实施例中,N的可选范围可按以下方式设置:
a)串长度的基本单位N可为至少一个预设值,如1个,2个或4个整数像素。在视频编码标准里,“像素”也可以使用“样本”这个表述。
b)串长度的基本单位N为当前CU的宽度或高度。
例如,若采用为每个CU解码索引的方式,对于大小为8x8的块,N取值为8个整数像素;对于8x16的块,则N可以取值是8或16个整数像素。
再例如,若采用图像头(或者片头,序列头等控制范围大于一个CU的标志(flag))解码索引的方式,根据编码器/编码端允许的块尺寸来设置N。
c)根据当前CU使用的扫描方向,确认串长度的基本单位N。
例如,采用沿着水平方向的扫描方式(称之为水平扫描,例如可以包括raster-scan(光栅扫描),traverse-scan(横向扫描)等)时,以CU块宽度作为基本单位N;采用沿着竖直方向的扫描方式(称之为竖直扫描,例如可以包括raster-scan,traverse-scan等)时,以CU块高度为基本单位N。
上述a)、b)、c)三种取值方式都能带来好处,可以根据编码性能及硬件实现来判断优劣。在编码端,在面对一个具体的当前串时,选择其中一种或多种的组合。
在编码端存在搜索当前串的最优串长度和对当前串的最优串长度编码这两个过程。使用本公开实施例提供的方案时,要编码的串长度都为N的整数倍。例如,在N=1的情况下,编码端首先经过分析,将8x8块分为2个串,长度分别为23和41,然后对23和41编码;在N=4的情况下,编码端分析得到不同的串数量和串长度(串长度的数值都为N的整数倍),然后再对串长度编码。
一般来说,N值越大,串长度所需要编码的比特数越少,内存访问的粒度越大,更有利于硬件实现(还要考虑字节对齐的问题)。但N变大的同时,也限制了编码块划分为串的方式,例如对于8x8大小的块,划分为串长度23和41能取得较好的编码性能,限制N=4后就没法实现这种划分。
在示例性实施例中,确定所述当前串的串长度编码分辨率,可以包括:若所述当前串的串长度编码分辨率为所述当前解码块的宽度或者高度,则确定所述当前解码块对应的当前编码块在采用所述串复制帧内时所使用的扫描方式;根据所述扫描方式确定所述当前串的串长度编码分辨率。
在示例性实施例中,根据所述扫描方式确定所述当前串的串长度编码分辨率,可以包括:若所述扫描方式为水平扫描,则确定所述当前串的串长度编码分辨率为所述当前解码块的宽度;若所述扫描方式为竖直扫描,则确定所述当前串的串长度编码分辨率为所述当前解码块的高度。
在示例性实施例中,确定所述当前串的串长度编码分辨率,可以包括:设置所有串的串长度编码分辨率为第一目标预设值,所述第一目标预设值为所述至少一个预设值中的任意一个。
在示例性实施例中,所述待解码码流对应的视频序列的序列头包括第一串长度编码分辨率索引,所述第一串长度编码分辨率索引指示所述视频序列中的串的串长度编码分辨率。其中,确定所述当前串的串长度编码分辨率,可以包括:解码所述序列头中的所述第一串长度编码分辨率索引,获得所述视频序列中的串的串长度编码分辨率。其中,所述视频序列中的串包括所述当前串。
在示例性实施例中,所述当前解码块对应的当前图像的图像头可以包括第二串长度编码分辨率索引,所述第二串长度编码分辨率索引指示所述当前图像中的串的串长度编码分辨率。其中,确定所述当前串的串长度编码分辨率,可以包括:解码所述图像头中的所述第二串长度编码分辨率索引,获得所述当前图像中的串的串长度编码分辨率。其中,所述当前图像中的串包括所述当前串。
在示例性实施例中,所述当前解码块对应的当前条带的片头包括第三串长度编码分辨率索引,所述第三串长度编码分辨率索引指示所述当前条带中的串的串长度编码分辨率。其中,确定所述当前串的串长度编码分辨率,可以包括:解码所述片头中的所述第三串长度编码分辨率索引,获得所述当前条带中的串的串长度编码分辨率。其中,所述当前条带中的串包括所述当前串。
在示例性实施例中,所述待解码码流可以包括所述当前解码块对应的最大编码单元及其第四串长度编码分辨率索引,所述第四串长度编码分辨率索引指示所述当前解码块对应的最大编码单元中的串的串长度编码分辨率。其中,确定所述当前串的串长度编码分辨率,可以包括:解码所述第四串长度编码分辨率索引,获得所述当前解码块对应的最大编码单元中的串的串长度编码分辨率。其中,所述当前解码块对应的最大编码单元中的串包括所述当前串。
在示例性实施例中,所述待解码码流可以包括所述当前解码块的第五串长度编码分辨率索引,所述第五串长度编码分辨率索引指示所述当前解码块中的串的串长度编码分辨率。其中,确定所述当前串的串长度编码分辨率,可以包括:解码所述第五串长度编码分辨率索引,获得所述当前解码块中的串的串长度编码分辨率。其中,所述当前解码块中的串包括所述当前串。
在示例性实施例中,所述待解码码流可以包括所述当前串的第六串长度编码分辨率索引,所述第六串长度编码分辨率索引指示所述当前串的串长度编码分辨率。其中,确定所述当前串的串长度编码分辨率,可以包括:解码所述第六串长度编码分辨率索引,获得所述当前串的串长度编码分辨率。
在示例性实施例中,确定所述当前串的串长度编码分辨率,可以包括:获得所述当前解码块的大小;根据所述当前解码块的大小,确定所述当前串的串长度编码分辨率。
在示例性实施例中,所述当前解码块的大小可以包括所述当前解码块的面积,所述当前解码块的面积等于所述当前解码块的宽度与高度的乘积。
在示例性实施例中,根据所述当前解码块的大小,确定所述当前串的串长度编码分辨率,可以包括:若所述当前解码块的面积小于或等于第一预设阈值(例如16,32等中的任意一个),则确定所述当前串的串长度编码分辨率为1个整数像素;或者,若所述当前解码块的宽度小于或等于第二预设阈值(例如4,8等中的任意一个)且所述当前解码块的高度小于或等于第三预设阈值(例如4,8等中的任意一个),则确定所述当前串的串长度编码分辨率为1个整数像素。
在示例性实施例中,根据所述当前解码块的大小,确定所述当前串的串长度编码分辨率,还可以包括:若所述当前解码块的面积大于所述第一预设阈值,则确定所述当前串的串长度编码分辨率为2个整数像素;或者,若所述当前解码块的宽度大于所述第二预设阈值或所述当前解码块的高度大于所述第三预设阈值,则确定所述当前串的串长度编码分辨率为2个整数像素。
在示例性实施例中,确定所述当前串的串长度编码分辨率,可以包括:获得所述待解码码流对应的视频序列的格式;根据所述视频序列的格式,确定所述当前串的相应通道分量的串长度编码分辨率。
在示例性实施例中,根据所述视频序列的格式,确定所述当前串的相应通道分量的串长度编码分辨率,可以包括:若所述视频序列的格式为YUV4:2:0,则确定所述当前串的相应通道分量包括亮度分量和色度分量;确定所述当前串的亮度分量的串长度编码分辨率为4个整数像素;确定所述当前串的色度分量的串长度编码分辨率为2个整数像素。
在示例性实施例中,确定所述当前串的串长度编码分辨率,可以包括:获得所述当前解码块中已解码串数量;若所述已解码串数量大于或等于已解码串阈值,则确定所述当前串的串长度编码分辨率为第二目标预设值,所述第二目标预设值为所述至少一个预设值中的任意一个。
在示例性实施例中,所述已解码串阈值可以为1、2或者3。
在示例性实施例中,所述方法还可以包括:获得所述当前解码块的大小;根据所述当前解码块的大小设置所述已解码串阈值。
在示例性实施例中,确定所述当前串的串长度编码分辨率,可以包括:获得所述当前解码块中已解码未匹配像素数量;若所述已解码未匹配像素数量大于或等于已解码未匹配像素阈值,则确定所述当前串的串长度编码分辨率为第三目标预设值,所述第三目标预设值为所述至少一个预设值中的任意一个。
在示例性实施例中,确定所述当前串的串长度编码分辨率,可以包括:获得所述当前解码块中包括所述当前串的剩余像素数量;若所述剩余像素数量小于或等于剩余像素阈值,则确定所述当前串的串长度编码分辨率为第四目标预设值,所述第四目标预设值为所述至少一个预设值中的任意一个。
在示例性实施例中,所述剩余像素阈值的取值范围为大于或等于1且小于或等于所述当前解码块的大小。
在示例性实施例中,确定所述当前串的串长度编码分辨率,可以包括:获得所述当前解码块中包括所述当前串的剩余像素数量;根据所述剩余像素数量,确定所述当前串的串长度编码分辨率。
在示例性实施例中,所述至少一个预设值可以包括第一预设值(例如1个整数像素)、第二预设值(例如2个整数像素)和第三预设值(例如4个整数像素),所述第一预设值小于所述第二预设值,所述第二预设值小于所述第三预设值。其中,根据所述剩余像素数量,确定所述当前串的串长度编码分辨率,可以包括:若所述剩余像素数量大于或等于第一剩余阈值,则确定所述当前串的串长度编码分辨率为所述第一预设值、所述第二预设值和所述第三预设值中的任意一个;若所述剩余像素数量小于所述第一剩余阈值且大于或等于第二剩余阈值,则确定所述当前串的串长度编码分辨率为所述第一预设值和所述第二预设值中的任意一个;若所述剩余像素数量小于所述第二剩余阈值且大于或等于第三剩余阈值,则确定所述当前串的串长度编码分辨率为所述第一预设值;其中,所述第一剩余阈值大于所述第二剩余阈值,所述第二剩余阈值大于所述第三剩余阈值。
在示例性实施例中,所述当前串对应的已编码串长度可以包括所述当前串的编码串长度。其中,根据所述当前串的串长度编码分辨率及其对应的已编码串长度,获得所述当前串的串长度,可以包括:根据所述当前串的串长度编码分辨率及其编码串长度,获得所述当前串的串长度。
本公开实施例中,在编码端,可分析对每个串采用哪种串长度编码分辨率是最好的。当SLR或者N存在多个可选的值时,在编码端可以编码一个index(索引)指示为当前串选中的是哪一个,并将该编码后的索引放入编码信息压缩数据码流中传输至解码端,作为待解码码流中的信息。解码端确认当前串的SLR,可采用以下一种方式或多种方式的组合:
a)所有串的SLR为上述至少一个预设值中的任意一个。
在编码端,可以根据对编码性能及硬件的影响,选择上述至少一个预设值中的至少一个作为第一目标预设值,并确定所有串的SLR为该第一目标预设值。
b)在序列头解码一个索引(可以称之为第一串长度编码分辨率索引),指示该序列头对应的视频序列中所有串的SLR。
上述实施例中已经给出了N的可选范围,假如允许的串长度为{1,2,4}个整数像素,若解码的索引为0,则表示SLR为1个整数像素;若解码的索引为1,则表示SLR为2个整数像素;若解码的索引为2,则表示SLR为4个整数像素。
c)在图像头解码一个索引(可以称之为第二串长度编码分辨率索引),指示该图像头对应的当前图像中所有串的SLR。
d)在片头解码一个索引(可以称之为第三串长度编码分辨率索引),指示该片头对应的片或者条带中所有串的SLR。
e)为每个最大编码单元(LCU)解码一个索引(可以称之为第四串长度编码分辨率索引),指示每个LCU中所有串的SLR。
f)如果当前CU的预测模式为ISC,则为当前CU解码一个索引(可以称之为第五串长度编码分辨率索引),指示当前CU中所有串的SLR。
g)如果当前CU的预测模式为ISC,则为每个串解码一个索引(可以称之为第六串长度编码分辨率索引),指示每个串的SLR。
h)可结合解码块的大小,为不同块选择N。
例如,假设允许的串长度编码分辨率为{1,2}个整数像素,则对于大小为4x4的块,可以设置N=1;对于大小为16x16的块,可以设置N=2;对于面积(宽x高)大于128的块,可以设置N=2等。
i)可结合色彩分量选择N。
例如,在YUV4:2:0格式的视频中,若已确定亮度分量的串长编码度分辨率N=4;则可以设置色度分量的串长编码度分辨率N=2。
j)假设当前CU中已解码串数量为N_S1(为大于或等于0的整数),如果N_S1大于或等于预设的已解码串阈值,则可以设置SLR上述至少一个预设值中的任意一个。
例如,N_S1可以为1、2或者3,但本公开并不限定于此。
再例如,可以根据当前CU的尺寸决定N_S1的取值,如假设当前CU的尺寸为W*H,则可以设置N_S1=W*H/8,但本公开并不限定于此。
其中,不同已解码串阈值的性能复杂度不一样,可以根据需要选择。
k)假设当前CU中已解码未匹配像素数量为N_S2(为大于或等于0的整数),如果N_S2大于或等于预设的已解码未匹配像素阈值,则可以设置SLR上述至少一个预设值中的任意一个。
l)如果当前CU中剩余像素数量(这里的剩余像素数量包括当前串中的像素数量,即预测模式为ISC的当前CU中,按扫描顺序对像素进行解码,当前还未解码的像素称为“剩余像素”)小于或等于剩余像素阈值T,则可以直接将SLR设置为上述至少一个预设值中的任意一个。
本公开实施例中,剩余像素阈值T的取值范围可为[1,当前CU的像素数量],当前CU的像素数量即为当前解码块的大小。
假设允许SLR为{1,4}个整数像素,剩余像素阈值T=8,假设剩余像素数量较少(例如小于剩余像素阈值8),设置N=4带来的好处较小,则直接设置N=1。例如,若剩余像素数量为3,则N不取值为4个整数像素,直接设置N=1个整数像素。
本公开实施例中,还可以根据剩余像素数量,调整SLR的可选范围。例如,当剩余数量数量>=32(第一剩余阈值)时,SLR可为{1,2,4}个整数像素;当剩余数量数量>=8(第二剩余阈值)时,SLR可为{1,2}个整数像素;当剩余数量数量>=4(第三剩余阈值)时,SLR为{1}个整数像素。
在步骤S730中,解码所述待解码码流,获得所述当前串对应的已编码串长度。
在步骤S740中,根据所述当前串的串长度编码分辨率及其对应的已编码串长度,获得所述当前串的串长度。
在示例性实施例中,所述当前串对应的已编码串长度可以包括第一待解码像素数量,所述第一待解码像素数量为所述当前解码块中除所述当前串外,将未解码像素数量按照所述当前串的串长度分辨率编码后减去一获得的。其中,根据所述当前串的串长度编码分辨率及其对应的已编码串长度,获得所述当前串的串长度,可以包括:获得所述当前解码块的大小;获得所述当前解码块中的已解码像素数量;根据所述第一待解码像素数量和所述当前串的串长度分辨率,获得所述当前解码块中除所述当前串外的未解码像素数量;根据所述当前解码块的大小、所述已解码像素数量和所述未解码像素数量,获得所述当前串的串长度。
相关技术中,ISC的解码流程如下所述:
Figure BDA0003150369710000211
Figure BDA0003150369710000221
上述解码过程中,带“_”的字段表示需要解码的语法元素,无“_”且首字母大写的字段表示变量,变量的值可由语法元素解码得到,上述流程中省略了一些本公开实施例无关的细节。
根据上述解码过程中,解码过程中解码的是剩余像素数量减1,因此,本公开实施例中第一待解码像素数量为所述当前解码块中不包括所述当前串的未解码像素数量按照所述当前串的串长度分辨率编码后减去一获得的。即如果串长度为0,不需要对串长度编码,因此可编码串长度-1以取得更好的编码或者解码性能。
在示例性实施例中,所述当前串对应的已编码串长度可以包括第二待解码像素数量,所述第二待解码像素数量为所述当前解码块中除所述当前串外的未解码像素数量按照所述当前串的串长度分辨率编码获得的。其中,根据所述当前串的串长度编码分辨率及其对应的已编码串长度,获得所述当前串的串长度,可以包括:获得所述当前解码块的大小;获得所述当前解码块中的已解码像素数量;根据所述第二待解码像素数量和所述当前串的串长度分辨率,获得所述当前解码块中除所述当前串外的未解码像素数量;根据所述当前解码块的大小、所述已解码像素数量和所述未解码像素数量,获得所述当前串的串长度。
在示例性实施例中,所述方法还可以包括:解码所述待解码码流,获得目标标识;若所述目标标识指示所述当前串为所述当前解码块中的最后一个串,则获得所述当前解码块的大小和所述当前解码块的已解码像素数量;根据所述当前解码块的大小和所述当前解码块的已解码像素数量,获得所述当前串的串长度。
本公开实施例中,从待解码码流中导出当前串的串长度L(L为大于1的正整数),为以下可选方式的一种或多种的组合:
a)从待解码码流中解码得到所述当前串的编码串长度L0,导出L=L0*N;
b)是上述步骤a)的另一种实现方式,从待解码码流中解码后,可以推导出当前串的串长度L。
例如,若从待解码码流中解码得到“处理该当前串后剩余像素数量减1(即第一待解码像素数量)”,记为M0,M0为大于或等于0的整数,根据SLR计算M1=(M0+1)*N,其中M1是当前解码块中不包括当前串的未解码像素数量,M1为大于或等于0的整数。解码端则根据当前解码块的大小M(可由该当前解码块的高度*宽度表示),假设当前解码块中已解码像素数量为M2,M2为大于或等于0的整数,则可以计算当前串的串长度L=M-M1-M2。
再例如,若从待解码码流中解码得到“处理该当前串后剩余像素数量(即第二待解码像素数量)”,记为N0,N0为大于或等于0的整数,根据SLR计算M1=N0*N,其中M1是当前解码块中不包括当前串的未解码像素数量。解码端则根据当前解码块的大小为M,假设当前解码块中已解码像素数量为M2,则可以计算当前串的串长度L=M-M1-M2。
c)在待解码码流中编码一个目标标识(例如上述解码过程中的sp_special_len_flag)指示该当前串是否为所述当前解码块中的最后一个串,如果是最后一个串,则根据当前解码块的大小为M,当前解码块中已解码像素数量为M2,计算得到当前串的串长度L=M-M2。
在示例性实施例中,所述当前解码块还可以包括待解码未匹配像素。其中,所述方法还可以包括:确定所述待解码未匹配像素的像素值编码分辨率;解码所述待解码码流,获得所述待解码未匹配像素的已编码像素值;根据所述像素值编码分辨率及其已编码像素值,获得所述待解码未匹配像素的像素值。
在示例性实施例中,所述待解码未匹配像素的像素值编码分辨率可以等于所述当前串的串长度编码分辨率。
在示例性实施例中,所述待解码未匹配像素的像素值编码分辨率为所述至少一个预设值中的任意一个。
在示例性实施例中,未匹配像素的基本单位也可以设置为N,例如,若N=4,则表示未匹配像素的像素值以长度为4的整数倍出现,未匹配像素的基本单位N的取值:可以直接取上述至少一个预设值中的任意一个;或者同串长度的串长度编码分辨率SLR。
在示例性实施例中,所述当前解码块还包括待解码未匹配像素;其中,所述方法还包括:确定所述待解码未匹配像素的编码分辨率;若解码所述待解码码流获得匹配标志为第一值,则从所述待解码码流中解码对应所述编码分辨率数值的至少一个待解码未匹配像素的像素值。
在示例性实施例中,所述待解码未匹配像素的编码分辨率等于所述当前串的串长度编码分辨率;或者,所述待解码未匹配像素的编码分辨率为所述至少一个预设值中的任意一个。
具体的,可以限制待解码码流中的待解码未匹配像素以长度为N的整数倍出现。参见上述解码流程,当解码sp_is_matched_flag为第一值例如0时,解码待解码未匹配像素的像素值。例如假设N=4,则可以解码4个待解码未匹配像素的像素值。
图8示意性示出了根据本公开的一实施例的视频解码方法的示意图。图8实施例以编码端为例进行介绍。如图8所示,本公开实施例提供的方法可以包括以下步骤。
在步骤S810中,获取当前编码块。
本公开实施例中,当前编码块可以是待编码的原始视频序列中的按顺序编码的当前图像中的子图像,至少包括以下之一:CU、PU、TU,在下面的举例说明中,均以CU为例进行举例说明,但本公开并不限定于此。这里假设当前编码块例如当前CU的最佳编码模式为ISC,则编码ISC对应的语法元素。
在步骤S820中,对所述当前编码块采用串复制帧内模式,将所述当前编码块分成串。
按照某种扫描顺序对当前CU内的全部像素寻找匹配的参考串,这种扫描顺序可以是水平的或者垂直的,或者其他顺序。由于ISC是在一维字典(一维搜索缓存)里对当前CU内的像素寻找匹配的参考串,因此,必须在搜索之前,按照既定的水平扫描顺序,将当前CU的像素经过重排序(由二维格式转为一维格式)存入字典,字典里已经保存的历史像素数据,即已经编码的CU的重建像素,也已经过水平扫描顺序重排序。
其中,搜索缓存就是字典,在编码器/编码端里用于匹配的参考串搜索,在解码器中用于匹配的参考串重建,凡是已经编码的CU重建像素,都可以用来搜索当前CU的像素。
需要说明的是,上述例举的字典只是其中一种实现方式,本公开并不限定于此,例如还可以直接在当前已编码区域中找到与当前ISC块下一个待处理像素匹配的参考像素,然后根据扫描顺序依次计算下一个像素是否在预设阈值范围内,由此获得一个串。
在步骤S830中,确定所述当前编码块的串长度编码分辨率。
其中,所述串长度编码分辨率为以下其中至少一项:至少一个预设值,每个预设值为大于或者等于1的整数像素;所述当前编码块的宽度或者高度。
在一些实施例中,可以先将当前编码块分串,然后再根据串长度确定串长度编码分辨率。具体的,可以先将当前编码块分为一系列的串,然后根据每个串的串长度,将串长度编码分辨率设置为最大能整除对应串长度的值,一个当前编码块里可以包含多种不同的串长度编码分辨率。
在一些实施例中,也可以先确定串长度编码分辨率,然后根据串长度编码分辨率对当前编码块进行分串。
本公开实施例中,采用ISC对当前CU进行编码时,在ISC中增加了一种限制:允许编码的串长度的值为N的整数倍,其中N是一个正整数,称为串长度的基本单位。N也可以称之为串长度编码分辨率或者串长度分辨率(String Length Resolution,SLR)。
本公开实施例中,N的可选范围可按以下方式设置:
a)串长度的基本单位N可为至少一个预设值,如1个,2个或4个整数像素。在视频编码标准里,“像素”也可以使用“样本”这个表述。
b)串长度的基本单位N为当前CU的宽度或高度。
例如,若采用为每个CU解码索引的方式,对于大小为8x8的块,N取值为8个整数像素;对于8x16的块,则N可以取值是8或16个整数像素。
再例如,若采用图像头(或者片头,序列头等控制范围大于一个CU的标志(flag))解码索引的方式,根据编码器/编码端允许的块尺寸来设置N。
c)根据当前CU使用的扫描方向,确认串长度的基本单位N。
例如,采用沿着水平方向的扫描方式(称之为水平扫描,例如可以包括raster-scan(光栅扫描),traverse-scan(横向扫描)等)时,以CU块宽度作为基本单位N;采用沿着竖直方向的扫描方式(称之为竖直扫描,例如可以包括raster-scan,traverse-scan等)时,以CU块高度为基本单位N。
上述a)、b)、c)三种取值方式都能带来好处,可以根据编码性能及硬件实现来判断优劣。在编码端,在面对一个具体的当前串时,选择其中一种或多种的组合。
在步骤S840中,根据所述串长度编码分辨率编码所述串的串长度。
包含ISC的HEVC编码,按照CU自适应的方式,每个输入的CU经过帧间、帧内、IBC、ISC编码后,通过HEVC的率失真优化选择机制,选择率失真代价函数(Rate Distortioncost,RD cost)最小的编码模式,将编码结果放入码流。ISC编码流程可以为:1)以CU为单位,对CU内的像素,在搜索缓存内,寻找尽可能长的匹配的参考串。进行水平方向搜索,后进行竖直方向搜索,串的串长度L最小值为1,最大值为CU内像素总和。2)如果找到匹配的参考串,则保存串长度L和匹配位置P;如果在搜索范围内没有找到匹配的参考串,则保存当前像素,称为未匹配像素Pix;3)更新散列表,从下一个位置的像素继续搜索;4)整个CU搜索完成之后,对搜索的结果,即搜索顺序(水平或垂直)、(P,L)和Pix进行熵编码,根据RD cost进行HEVC模式选择。
对应的ISC解码流程:1)码流经过熵解码,得到搜索顺序以及(P,L)和Pix等语法元素。2)在重建缓存内,根据以上语法元素恢复当前CU。即如果有匹配的参考串,则根据匹配位置P,在重建缓存内找到相应位置,按照搜索顺序,依据串长度L复制相应像素到当前位置;如果没有匹配的参考串,则将解码得到的未匹配像素Pix直接填充到当前位置。
采用基于散列表的搜索,可以实现快速搜索,根据每个像素的YUV分量计算得到散列值,将像素在图像中的位置存入散列表,采用拉链开散列的方法处理散列冲突。搜索的时候,只需要根据当前像素的散列值从散列表中对应的链上得到搜索位置,进行尝试匹配,然后从链上得到下一个搜索位置,继续尝试匹配,直到找到最佳匹配,或者在限定的搜索次数内,没有找到匹配。
经过熵编码产生的ISC码流,可以包括以下语法元素:匹配标志(标识在搜索缓存中是否搜索到匹配的参考串)、未匹配像素(Pix)、匹配位置P、串长度L、八元组标识(最近使用的8个距离值存放在一个数组中,称为八元组)、八元组索引(0-7)。对这些语法元素进行熵编码。
其中匹配标志、八元组标识,八元组索引的二值化均可以采用定长编码(fixedlength,FL),例如分别为FL(1)、FL(1)和FL(3)。
串长度L表示匹配的参考串的长度,取值范围是1-当前编码块的大小例如64*64。
进一步的,本公开实施例还提供一种视频解码装置,所述装置可以包括:待解码码流获取单元,可以用于获取待解码码流,所述待解码码流可以包括当前解码块,所述当前解码块采用串复制帧内模式,所述当前解码块可以包括当前串;编码分辨率确定单元,可以用于确定所述当前串的串长度编码分辨率;码流解码单元,可以用于解码所述待解码码流,获得所述当前串对应的已编码串长度;串长度获得单元,可以用于根据所述当前串的串长度编码分辨率及其对应的已编码串长度,获得所述当前串的串长度。其中,所述当前串的串长度编码分辨率可以为以下其中至少一项:至少一个预设值,每个预设值为大于或者等于1的整数像素;所述当前解码块的宽度或者高度。
在示例性实施例中,所述至少一个预设值可以包括1个整数像素,2个整数像素,4个整数像素。
在示例性实施例中,编码分辨率确定单元可以包括:扫描方式确定单元,可以用于若所述当前串的串长度编码分辨率为所述当前解码块的宽度或者高度,则确定所述当前解码块对应的当前编码块在采用所述串复制帧内时所使用的扫描方式;串长度分辨率确定单元,可以用于根据所述扫描方式确定所述当前串的串长度编码分辨率。
在示例性实施例中,串长度分辨率确定单元可以包括:水平串长度分辨率确定单元,可以用于若所述扫描方式为水平扫描,则确定所述当前串的串长度编码分辨率为所述当前解码块的宽度;竖直串长度分辨率确定单元,可以用于若所述扫描方式为竖直扫描,则确定所述当前串的串长度编码分辨率为所述当前解码块的高度。
在示例性实施例中,编码分辨率确定单元可以包括:第一串长度分辨率预设单元,可以用于设置所有串的串长度编码分辨率为第一目标预设值,所述第一目标预设值为所述至少一个预设值中的任意一个。
在示例性实施例中,所述待解码码流对应的视频序列的序列头可以包括第一串长度编码分辨率索引,所述第一串长度编码分辨率索引指示所述视频序列中的串的串长度编码分辨率。其中,编码分辨率确定单元可以包括:第一索引解码单元,可以用于解码所述序列头中的所述第一串长度编码分辨率索引,获得所述视频序列中的串的串长度编码分辨率。其中,所述视频序列中的串包括所述当前串。
在示例性实施例中,所述当前解码块对应的当前图像的图像头可以包括第二串长度编码分辨率索引,所述第二串长度编码分辨率索引指示所述当前图像中的串的串长度编码分辨率。其中,编码分辨率确定单元可以包括:第二索引解码单元,可以用于解码所述图像头中的所述第二串长度编码分辨率索引,获得所述当前图像中的串的串长度编码分辨率。其中,所述当前图像中的串包括所述当前串。
在示例性实施例中,所述当前解码块对应的当前条带的片头可以包括第三串长度编码分辨率索引,所述第三串长度编码分辨率索引指示所述当前条带中的串的串长度编码分辨率。其中,编码分辨率确定单元可以包括:第三索引解码单元,可以用于解码所述片头中的所述第三串长度编码分辨率索引,获得所述当前条带中的串的串长度编码分辨率。其中,所述当前条带中的串包括所述当前串。
在示例性实施例中,所述待解码码流可以包括所述当前解码块对应的最大编码单元及其第四串长度编码分辨率索引,所述第四串长度编码分辨率索引指示所述当前解码块对应的最大编码单元中的串的串长度编码分辨率。其中,编码分辨率确定单元可以包括:第四索引解码单元,可以用于解码所述第四串长度编码分辨率索引,获得所述当前解码块对应的最大编码单元中的串的串长度编码分辨率。其中,所述当前解码块对应的最大编码单元中的串包括所述当前串。
在示例性实施例中,所述待解码码流可以包括所述当前解码块的第五串长度编码分辨率索引,所述第五串长度编码分辨率索引指示所述当前解码块中的串的串长度编码分辨率。其中,编码分辨率确定单元可以包括:第五索引解码单元,可以用于解码所述第五串长度编码分辨率索引,获得所述当前解码块中的串的串长度编码分辨率。其中,所述当前解码块中的串包括所述当前串。
在示例性实施例中,所述待解码码流可以包括所述当前串的第六串长度编码分辨率索引,所述第六串长度编码分辨率索引指示所述当前串的串长度编码分辨率。其中,编码分辨率确定单元可以包括:第六索引解码单元,可以用于解码所述第六串长度编码分辨率索引,获得所述当前串的串长度编码分辨率。
在示例性实施例中,编码分辨率确定单元可以包括:解码块大小获得单元,可以用于获得所述当前解码块的大小;串长度编码分辨率获得单元,可以用于根据所述当前解码块的大小,确定所述当前串的串长度编码分辨率。
在示例性实施例中,所述当前解码块的大小可以包括所述当前解码块的面积,所述当前解码块的面积等于所述当前解码块的宽度与高度的乘积。
在示例性实施例中,串长度编码分辨率获得单元可以包括:第一串长度编码分辨率获得单元,可以用于若所述当前解码块的面积小于或等于第一预设阈值,则确定所述当前串的串长度编码分辨率为1个整数像素;或者,若所述当前解码块的宽度小于或等于第二预设阈值且所述当前解码块的高度小于或等于第三预设阈值,则确定所述当前串的串长度编码分辨率为1个整数像素。
在示例性实施例中,串长度编码分辨率获得单元还可以包括:第二串长度编码分辨率获得单元,可以用于若所述当前解码块的面积大于所述第一预设阈值,则确定所述当前串的串长度编码分辨率为2个整数像素;或者若所述当前解码块的宽度大于所述第二预设阈值或所述当前解码块的高度大于所述第三预设阈值,则确定所述当前串的串长度编码分辨率为2个整数像素。
在示例性实施例中,编码分辨率确定单元可以包括:视频格式获得单元,可以用于获得所述待解码码流对应的视频序列的格式;通道分量串长度编码分辨率确定单元,可以用于根据所述视频序列的格式,确定所述当前串的相应通道分量的串长度编码分辨率。
在示例性实施例中,通道分量串长度编码分辨率确定单元可以包括:通道分量确定单元,可以用于若所述视频序列的格式为YUV4:2:0,则确定所述当前串的相应通道分量包括亮度分量和色度分量;亮度分量串长度分辨率确定单元,可以用于确定所述当前串的亮度分量的串长度编码分辨率为4个整数像素;色度分量串长度分辨率确定单元,可以用于确定所述当前串的色度分量的串长度编码分辨率为2个整数像素。
在示例性实施例中,编码分辨率确定单元可以包括:已解码串数量获得单元,可以用于获得所述当前解码块中已解码串数量;第二串长度分辨率预设单元,可以用于若所述已解码串数量大于或等于已解码串阈值,则确定所述当前串的串长度编码分辨率为第二目标预设值,所述第二目标预设值为所述至少一个预设值中的任意一个。
在示例性实施例中,所述已解码串阈值可以为1、2或者3。
在示例性实施例中,所述装置还可以包括:解码块大小获取单元,可以用于获得所述当前解码块的大小;已解码串阈值设置单元,可以用于根据所述当前解码块的大小设置所述已解码串阈值。
在示例性实施例中,编码分辨率确定单元可以包括:已解码未匹配像素数量获得单元,可以用于获得所述当前解码块中已解码未匹配像素数量;第三串长度分辨率预设单元,可以用于若所述已解码未匹配像素数量大于或等于已解码未匹配像素阈值,则确定所述当前串的串长度编码分辨率为第三目标预设值,所述第三目标预设值为所述至少一个预设值中的任意一个。
在示例性实施例中,编码分辨率确定单元可以包括:第一剩余像素数量获得单元,可以用于获得所述当前解码块中包括所述当前串的剩余像素数量;第四串长度分辨率预设单元,可以用于若所述剩余像素数量小于或等于剩余像素阈值,则确定所述当前串的串长度编码分辨率为第四目标预设值,所述第四目标预设值为所述至少一个预设值中的任意一个。
在示例性实施例中,所述剩余像素阈值的取值范围为大于或等于1且小于或等于所述当前解码块的大小。
在示例性实施例中,编码分辨率确定单元可以包括:第二剩余像素数量获得单元,可以用于获得所述当前解码块中包括所述当前串的剩余像素数量;串长度分辨率调整单元,可以用于根据所述剩余像素数量,确定所述当前串的串长度编码分辨率。
在示例性实施例中,所述至少一个预设值可以包括第一预设值、第二预设值和第三预设值,所述第一预设值小于所述第二预设值,所述第二预设值小于所述第三预设值。其中,串长度分辨率调整单元可以包括:第一分辨率选择范围调整单元,可以用于若所述剩余像素数量大于或等于第一剩余阈值,则确定所述当前串的串长度编码分辨率为所述第一预设值、所述第二预设值和所述第三预设值中的任意一个;第二分辨率选择范围调整单元,可以用于若所述剩余像素数量小于所述第一剩余阈值且大于或等于第二剩余阈值,则确定所述当前串的串长度编码分辨率为所述第一预设值和所述第二预设值中的任意一个;第三分辨率选择范围调整单元,可以用于若所述剩余像素数量小于所述第二剩余阈值且大于或等于第三剩余阈值,则确定所述当前串的串长度编码分辨率为所述第一预设值。其中,所述第一剩余阈值大于所述第二剩余阈值,所述第二剩余阈值大于所述第三剩余阈值。
在示例性实施例中,所述当前串对应的已编码串长度包括所述当前串的编码串长度。其中,串长度获得单元可以包括:第一串长度计算单元,可以用于根据所述当前串的串长度编码分辨率及其编码串长度,获得所述当前串的串长度。
在示例性实施例中,所述当前串对应的已编码串长度可以包括第一待解码像素数量,所述第一待解码像素数量为所述当前解码块中除所述当前串外,将未解码像素数量按照所述当前串的串长度分辨率编码后减去一获得的。其中,串长度获得单元可以包括:解码块尺寸确定单元,可以用于获得所述当前解码块的大小;第一已解码像素数量获得单元,可以用于获得所述当前解码块中的已解码像素数量;第一未解码像素数量获得单元,可以用于根据所述第一待解码像素数量和所述当前串的串长度分辨率,获得所述当前解码块中除所述当前串外的未解码像素数量;第二串长度计算单元,可以用于根据所述当前解码块的大小、所述已解码像素数量和所述未解码像素数量,获得所述当前串的串长度。
在示例性实施例中,所述当前串对应的已编码串长度可以包括第二待解码像素数量,所述第二待解码像素数量为所述当前解码块中除所述当前串外的未解码像素数量按照所述当前串的串长度分辨率编码获得的。其中,串长度获得单元可以包括:解码块尺寸获得单元,可以用于获得所述当前解码块的大小;第二已解码像素数量获得单元,可以用于获得所述当前解码块中的已解码像素数量;第二未解码像素数量获得单元,可以用于根据所述第二待解码像素数量和所述当前串的串长度分辨率,获得所述当前解码块中除所述当前串外的未解码像素数量;第三串长度计算单元,可以用于根据所述当前解码块的大小、所述已解码像素数量和所述未解码像素数量,获得所述当前串的串长度。
在示例性实施例中,所述装置还可以包括:目标标识获得单元,可以用于解码所述待解码码流,获得目标标识;解码块信息获得单元,可以用于若所述目标标识指示所述当前串为所述当前解码块中的最后一个串,则获得所述当前解码块的大小和所述当前解码块的已解码像素数量;第四串长度计算单元,可以用于根据所述当前解码块的大小和所述当前解码块的已解码像素数量,获得所述当前串的串长度。
在示例性实施例中,所述当前解码块还可以包括待解码未匹配像素。其中,所述装置还可以包括:未匹配像素分辨率确定单元,可以用于确定所述待解码未匹配像素的像素值编码分辨率;已编码像素值获得单元,可以用于解码所述待解码码流,获得所述待解码未匹配像素的已编码像素值;未匹配像素像素值获得单元,可以用于根据所述像素值编码分辨率及其已编码像素值,获得所述待解码未匹配像素的像素值。
在示例性实施例中,所述待解码未匹配像素的像素值编码分辨率可以等于所述当前串的串长度编码分辨率。
在示例性实施例中,所述待解码未匹配像素的像素值编码分辨率可以为所述至少一个预设值中的任意一个。
在示例性实施例中,所述当前解码块还可以包括待解码未匹配像素。其中,所述装置还可以包括:未匹配像素编码分辨率确定单元,可以用于确定所述待解码未匹配像素的编码分辨率;分辨率个未匹配像素解码单元,可以用于若解码所述待解码码流获得匹配标志为第一值,则从所述待解码码流中解码对应所述编码分辨率数值的至少一个待解码未匹配像素的像素值。
在示例性实施例中,所述待解码未匹配像素的编码分辨率等于所述当前串的串长度编码分辨率;或者,所述待解码未匹配像素的编码分辨率为所述至少一个预设值中的任意一个。
本公开实施例提供的视频解码装置中的各个单元的具体实现可以参照上述视频解码方法中的内容,在此不再赘述。
进一步的,本公开实施例还提供一种视频编码装置,所述装置可以包括:当前编码块获取单元,可以用于获取当前编码块;串划分单元,可以用于对所述当前编码块采用串复制帧内模式,将所述当前编码块分成串;编码分辨率确定单元,可以用于确定所述当前编码块的串长度编码分辨率;串长度编码单元,可以用于根据所述串长度编码分辨率编码所述串的串长度。其中,所述串长度编码分辨率可以为以下其中至少一项:至少一个预设值,每个预设值为大于或者等于1的整数像素;所述当前编码块的宽度或者高度。
本公开实施例提供的视频解码装置中的各个单元的具体实现可以参照上述视频解码方法和视频编码方法中的内容,在此不再赘述。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多单元的特征和功能可以在一个单元中具体化。反之,上文描述的一个单元的特征和功能可以进一步划分为由多个单元来具体化。
本公开实施例提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如上述实施例中所述的视频解码方法。
本公开实施例提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如上述实施例中所述的视频编码方法。
本公开实施例提供了一种电子设备,包括:至少一个处理器;存储装置,配置为存储至少一个程序,当所述至少一个程序被所述至少一个处理器执行时,使得所述至少一个处理器实现如上述实施例中所述的视频解码方法。
本公开实施例提供了一种电子设备,包括:至少一个处理器;存储装置,配置为存储至少一个程序,当所述至少一个程序被所述至少一个处理器执行时,使得所述至少一个处理器实现如上述实施例中所述的视频编码方法。
图9示出了适于用来实现本公开实施例的电子设备的结构示意图。
需要说明的是,图9示出的电子设备900仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图9所示,电子设备900包括中央处理单元(CPU,Central Processing Unit)901,其可以根据存储在只读存储器(ROM,Read-Only Memory)902中的程序或者从储存部分908加载到随机访问存储器(RAM,Random Access Memory)903中的程序而执行各种适当的动作和处理。在RAM 903中,还存储有系统操作所需的各种程序和数据。CPU 901、ROM 902以及RAM 903通过总线904彼此相连。输入/输出(input/output,I/O)接口905也连接至总线904。
以下部件连接至I/O接口905:包括键盘、鼠标等的输入部分906;包括诸如阴极射线管(CRT,Cathode Ray Tube)、液晶显示器(LCD,Liquid Crystal Display)等以及扬声器等的输出部分907;包括硬盘等的储存部分908;以及包括诸如LAN(Local Area Network,局域网)卡、调制解调器等的网络接口卡的通信部分909。通信部分909经由诸如因特网的网络执行通信处理。驱动器910也根据需要连接至I/O接口905。可拆卸介质911,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器910上,以便于从其上读出的计算机程序根据需要被安装入储存部分908。
特别地,根据本公开的实施例,下文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读存储介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分909从网络上被下载和安装,和/或从可拆卸介质911被安装。在该计算机程序被中央处理单元(CPU)901执行时,执行本申请的方法和/或装置中限定的各种功能。
需要说明的是,本公开所示的计算机可读存储介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有至少一个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM(Erasable Programmable Read Only Memory,可擦除可编程只读存储器)或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读存储介质,该计算机可读存储介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF(Radio Frequency,射频)等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本公开各种实施例的方法、装置和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含至少一个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现,所描述的单元也可以设置在处理器中。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。
作为另一方面,本申请还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被一个该电子设备执行时,使得该电子设备实现如下述实施例中所述的方法。例如,所述的电子设备可以实现如图7或图8所示的各个步骤。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、触控终端、或者网络设备等)执行根据本公开实施方式的方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。

Claims (11)

1.一种视频解码方法,其特征在于,包括:
获取待解码码流,所述待解码码流包括当前解码块,所述当前解码块采用串复制帧内模式,所述当前解码块包括当前串;
确定所述当前串的串长度编码分辨率;
解码所述待解码码流,获得所述当前串对应的待解码像素数量,所述待解码像素数量是通过将所述当前解码块中除所述当前串外的未解码像素数量按照当前串的串长度分辨率编码获得的;
根据所述待解码像素数量和所述当前串的串长度编码分辨率,获得所述当前解码块中除所述当前串外的未解码像素数量;
根据当前解码块的大小、当前解码块中的已解码像素数量和所述未解码像素数量,获得所述当前串的串长度。
2.根据权利要求1所述的视频解码方法,其特征在于,根据所述待解码像素数量和所述当前串的串长度编码分辨率,获得所述当前解码块中除所述当前串外的未解码像素数量,包括:
将所述待解码像素数量和所述当前串的串长度编码分辨率的乘积作为所述未解码像素数量。
3.根据权利要求1或2任一项所述的视频解码方法,其特征在于,所述当前串的串长度编码分辨率为4个整数像素。
4.根据权利要求1所述的视频解码方法,其特征在于,根据所述当前解码块的大小、所述已解码像素数量和所述未解码像素数量,获得所述当前串的串长度,包括:
获得所述当前解码块的大小减去所述已解码像素数量的结果;
将所述结果减去所述未解码像素数量,得到所述当前串的串长度。
5.根据权利要求1所述的视频解码方法,其特征在于,所述当前解码块还包括待解码未匹配像素;其中,所述方法还包括:
确定所述待解码未匹配像素的像素值编码分辨率;
解码所述待解码码流,获得所述待解码未匹配像素的已编码像素值;
根据所述像素值编码分辨率及已编码像素值,获得所述待解码未匹配像素的像素值。
6.根据权利要求1所述的视频解码方法,其特征在于,所述当前解码块还包括待解码未匹配像素;其中,所述方法还包括:
确定所述待解码未匹配像素的编码分辨率;
若解码所述待解码码流获得匹配标志为第一值,则从所述待解码码流中解码对应所述编码分辨率数值的至少一个待解码未匹配像素的像素值。
7.根据权利要求5或6任一项所述的视频解码方法,其特征在于,所述待解码未匹配像素的像素值编码分辨率为4个整数像素。
8.根据权利要求1所述的视频解码方法,其特征在于,所述解码所述待解码码流进一步包括:
获取匹配标志,用于指示在搜索缓存中是否搜索到匹配的参考串。
9.一种视频编码方法,其特征在于,包括:
获取当前编码块;
对所述当前编码块采用串复制帧内模式,将所述当前编码块划分成一个或多个串;
确定所述当前编码块的串长度编码分辨率为4个整数像素;
根据所述串长度编码分辨率编码所述串的串长度。
10.一种电子设备,其特征在于,包括:
至少一个处理器;
存储装置,配置为存储至少一个程序,当所述至少一个程序被所述至少一个处理器执行时,使得所述至少一个处理器实现如权利要求1至8中任一项所述的视频解码方法或者如权利要求9所述的视频编码方法。
11.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至8中任一项所述的视频解码方法或者如权利要求9所述的视频编码方法。
CN202110764257.4A 2020-05-26 2020-05-26 视频解码方法、视频编码方法及相关设备 Active CN113727108B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110764257.4A CN113727108B (zh) 2020-05-26 2020-05-26 视频解码方法、视频编码方法及相关设备

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202010457090.2A CN112543332B (zh) 2020-05-26 2020-05-26 视频解码方法、视频编码方法及相关设备
CN202110764257.4A CN113727108B (zh) 2020-05-26 2020-05-26 视频解码方法、视频编码方法及相关设备

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN202010457090.2A Division CN112543332B (zh) 2020-05-26 2020-05-26 视频解码方法、视频编码方法及相关设备

Publications (2)

Publication Number Publication Date
CN113727108A true CN113727108A (zh) 2021-11-30
CN113727108B CN113727108B (zh) 2024-03-01

Family

ID=75013440

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202110764257.4A Active CN113727108B (zh) 2020-05-26 2020-05-26 视频解码方法、视频编码方法及相关设备
CN202010457090.2A Active CN112543332B (zh) 2020-05-26 2020-05-26 视频解码方法、视频编码方法及相关设备

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN202010457090.2A Active CN112543332B (zh) 2020-05-26 2020-05-26 视频解码方法、视频编码方法及相关设备

Country Status (4)

Country Link
US (1) US20230017193A1 (zh)
EP (1) EP4099696A4 (zh)
CN (2) CN113727108B (zh)
WO (1) WO2021239160A1 (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113727108B (zh) * 2020-05-26 2024-03-01 腾讯科技(深圳)有限公司 视频解码方法、视频编码方法及相关设备
CN114900690B (zh) * 2020-07-29 2023-09-01 腾讯科技(深圳)有限公司 视频解码方法、视频编码方法、装置、设备及存储介质
CN114079780A (zh) * 2020-08-20 2022-02-22 腾讯科技(深圳)有限公司 视频解码方法、视频编码方法、装置、设备及存储介质
CN117356094A (zh) * 2021-04-02 2024-01-05 抖音视界有限公司 用于视频处理的方法、设备和介质
CN113422964A (zh) * 2021-06-04 2021-09-21 绍兴市北大信息技术科创中心 一种串长度参数编解码方法和装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105491376A (zh) * 2014-10-06 2016-04-13 同济大学 图像编码、解码方法及装置
EP3211900A1 (en) * 2014-11-28 2017-08-30 Tongji University Image coding method, decoding method, coding device and decoding device
EP3310059A1 (en) * 2015-06-09 2018-04-18 Tongji University Image encoding and decoding method, image processing device, and computer storage medium
CN110636302A (zh) * 2019-09-27 2019-12-31 腾讯科技(深圳)有限公司 视频解码、编码方法和装置、存储介质及解码器、编码器
CN110636288A (zh) * 2019-09-27 2019-12-31 腾讯科技(深圳)有限公司 视频解码、编码方法和装置及电子设备

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015029224A1 (ja) * 2013-08-30 2015-03-05 富士通株式会社 データ圧縮装置、方法およびプログラム
US20170155899A1 (en) * 2013-09-07 2017-06-01 Tongji University Image compression method and apparatus using matching
CN110708544B (zh) * 2013-12-19 2022-07-05 三星电子株式会社 视频编码方法和设备以及视频解码方法和设备
WO2016052977A1 (ko) * 2014-10-01 2016-04-07 주식회사 케이티 비디오 신호 처리 방법 및 장치
WO2016119726A1 (en) * 2015-01-30 2016-08-04 Mediatek Inc. Method and apparatus for entropy coding of source samples with large alphabet
CN107071450B (zh) * 2016-02-10 2021-07-27 同济大学 数据压缩的编码、解码方法及装置
CN107483941A (zh) * 2016-06-08 2017-12-15 上海天荷电子信息有限公司 划分取值范围进行串位移矢量编码的数据压缩方法和装置
CN113727108B (zh) * 2020-05-26 2024-03-01 腾讯科技(深圳)有限公司 视频解码方法、视频编码方法及相关设备
CN114900690B (zh) * 2020-07-29 2023-09-01 腾讯科技(深圳)有限公司 视频解码方法、视频编码方法、装置、设备及存储介质
CN112565749B (zh) * 2020-12-06 2022-08-09 浙江大华技术股份有限公司 一种视频编码方法、装置、系统及计算机可读存储介质

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105491376A (zh) * 2014-10-06 2016-04-13 同济大学 图像编码、解码方法及装置
EP3211900A1 (en) * 2014-11-28 2017-08-30 Tongji University Image coding method, decoding method, coding device and decoding device
US20170332073A1 (en) * 2014-11-28 2017-11-16 Tongji University Image Coding Method, Decoding Method, Coding Device and Decoding Device
EP3310059A1 (en) * 2015-06-09 2018-04-18 Tongji University Image encoding and decoding method, image processing device, and computer storage medium
CN110636302A (zh) * 2019-09-27 2019-12-31 腾讯科技(深圳)有限公司 视频解码、编码方法和装置、存储介质及解码器、编码器
CN110636288A (zh) * 2019-09-27 2019-12-31 腾讯科技(深圳)有限公司 视频解码、编码方法和装置及电子设备

Also Published As

Publication number Publication date
CN112543332B (zh) 2021-08-17
EP4099696A1 (en) 2022-12-07
US20230017193A1 (en) 2023-01-19
EP4099696A4 (en) 2023-06-14
WO2021239160A1 (zh) 2021-12-02
CN112543332A (zh) 2021-03-23
CN113727108B (zh) 2024-03-01

Similar Documents

Publication Publication Date Title
US11218694B2 (en) Adaptive multiple transform coding
CN112543332B (zh) 视频解码方法、视频编码方法及相关设备
KR102167350B1 (ko) 동화상 부호화 장치 및 그 동작 방법
CN112913250B (zh) 编码器、解码器及对任意ctu尺寸使用ibc搜索范围优化的对应方法
WO2012172668A1 (ja) 動画像符号化方法及び装置並びに動画復号化方法及び装置
KR102616714B1 (ko) 광학 흐름 정제를 위한 조기 종료
CN115037945B (zh) 用于视频译码中的参考图像重采样的多个图像大小和符合性窗口的处理
CN111801944B (zh) 视频图像编码器、解码器以及对应的运动信息编码方法
JP2023090864A (ja) エンコーダ、デコーダ、及びデブロッキングフィルタの境界強度導出の対応する方法
CN114902661A (zh) 用于跨分量线性模型预测的滤波方法和装置
KR20230150284A (ko) 효율적인 비디오 인코더 아키텍처
CN113170176B (zh) 视频编码器、视频解码器及相应方法
CN114913249A (zh) 编码、解码方法和相关设备
US20220224888A1 (en) Video encoding method, video decoding method, and related device
CN113615173A (zh) 对仿射译码块进行光流预测修正的方法及装置
CN112565767B (zh) 视频解码方法、视频编码方法及相关设备
CN113170118A (zh) 视频译码中进行色度帧内预测的方法及装置
CN112532989B (zh) 视频编码方法、视频解码方法及相关设备
CN112543333B (zh) 视频解码方法、视频编码方法及相关设备
US20130195180A1 (en) Encoding an image using embedded zero block coding along with a discrete cosine transformation
WO2023239992A9 (en) Systems and methods for motion vector predictor list improvements
CN114079782A (zh) 视频图像重建方法、装置、计算机设备及存储介质
WO2023239391A1 (en) Adjacent spatial motion vector predictor candidates improvement
WO2023224651A1 (en) Adjacent spatial motion vector predictor candidates improvement
WO2023224650A1 (en) Reference motion vector candidates bank improvements

Legal Events

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