CN110650343B - 图像的编码、解码方法及装置、电子设备及系统 - Google Patents

图像的编码、解码方法及装置、电子设备及系统 Download PDF

Info

Publication number
CN110650343B
CN110650343B CN201810681664.7A CN201810681664A CN110650343B CN 110650343 B CN110650343 B CN 110650343B CN 201810681664 A CN201810681664 A CN 201810681664A CN 110650343 B CN110650343 B CN 110650343B
Authority
CN
China
Prior art keywords
coefficient
parameter
size
value
block
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201810681664.7A
Other languages
English (en)
Other versions
CN110650343A (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.)
ZTE Corp
Original Assignee
ZTE Corp
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 ZTE Corp filed Critical ZTE Corp
Priority to CN201810681664.7A priority Critical patent/CN110650343B/zh
Priority to US17/255,044 priority patent/US11647196B2/en
Priority to EP19826712.2A priority patent/EP3817385A4/en
Priority to KR1020217002590A priority patent/KR102569844B1/ko
Priority to PCT/CN2019/088325 priority patent/WO2020001210A1/zh
Priority to JP2020571788A priority patent/JP7271580B2/ja
Publication of CN110650343A publication Critical patent/CN110650343A/zh
Application granted granted Critical
Publication of CN110650343B publication Critical patent/CN110650343B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/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/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/117Filters, e.g. for pre-processing or post-processing
    • 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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/147Data rate or code amount at the encoder output according to rate distortion criteria
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/18Methods 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 set of transform coefficients
    • 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
    • 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/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

本发明提供了一种图像的编码、解码方法及装置、电子设备及系统。其中,图像的编码方法包括:确定编码块的预测值,计算所述编码块与所述预测值的预测差值;对所述预测差值进行一次或者多次的变换,得到变换数据,使用所述变换数据确定变换系数;确定所述变换系数的扫描方式和系数组的大小,将所述变换系数划分成一个或多个系数组,根据所述扫描方式扫描每个所述系数组中包含的变换系数,将所述变换系数转换为一个或多个语法元素;对所述系数组的大小和所述语法元素的取值进行编码,将编码比特写入码流。通过本发明,有效降低系数组标志位的编码开销,提高了对变换系数的编码效率。

Description

图像的编码、解码方法及装置、电子设备及系统
技术领域
本发明涉及通信领域,具体而言,涉及一种图像的编码、解码方法及装置、电子设备及系统。
背景技术
数字视频(Video)和图像(Picture)的压缩编码技术利用视频和图像中像素点采样值之间的相关性来去除视频和图像中存在的冗余。图像压缩利用图像中相邻像素点(Pixel)样值(Sample)之间的空间域相关性,通过使用相邻已编码像素点预测待编码像素点的方法,降低了空间域相邻像素点之间的冗余。这类方法通常称为帧内预测(IntraPrediction)。数字视频由一系列连续图像组成。数字视频压缩除利用单帧图像中空间域相邻像素点之间相关性外,还利用了时域相邻图像之间的相关性,例如,使用运动估计(Motion Estimation)和运动补偿(Motion Compensation)的方法,使用已编码图像作为参考对当前编码图像进行预测。这类方法通常称为帧间预测(Inter Prediction)。
在编码过程中,编码器使用帧内预测、帧间预测的方法,确定编码块的预测值,计算所述编码块样值与所述预测值之间的差值,将其作为所述编码块的预测差值(Residual)。为进一步降低预测差值中存在的空间域冗余,编码器可以对预测差进行变换(Transformation)。通常,所述编码块的预测差可以表示为一个M x N的二维矩阵,其中,M和N均为正整数,M和N可以相等,也可以不相等。编码器对该二维矩阵进行变换,并对变换后得到的二维矩阵中的数据进行处理,得到待进行熵编码的变换系数(Coefficient),例如,H.265/HEVC标准中,所述处理可以是对所述数据进行量化(Quantization),也可以是不对所述数据进行量化。编码器对二维矩阵表示的变换系数进行扫描,对变换系数进行编码。在H.265/HEVC标准中,编码器变换系数的二维矩阵分割成一个或多个4x4固定大小的系数组(Coefficient Group,CG)。编码器使用指定的扫描顺序,依次对4x4块中的变换系数进行编码。这种方法存在如下主要缺陷是采用了固定大小的系数组,致使编码器无法根据二维矩阵中变换系数的分布情况选择最有效的编码系数编码方式,例如,系数组的大小固定为4x4块时,按照系数扫描顺序(实际上是逆序),从包含最后一个非0系数的系数组开始,需要为每个系数组编码一个用于表示该系数组中是否包含非0变换系数的标志位,这样,当变换系数矩阵中存在数量较多的非0系数时,该标志位的编码开销较大。
发明内容
本发明实施例提供了一种图像的编码、解码方法及装置、电子设备及系统,以至少解决相关技术中固定大小的系数组,致使编码器无法根据二维矩阵中变换系数的分布情况选择最有效的编码系数编码方式的问题。
根据本发明的一个实施例,提供了一种图像编码方法,包括:确定编码块的预测值,计算所述编码块与所述预测值的预测差值;对所述预测差值进行一次或者多次的变换,得到变换数据,使用所述变换数据确定变换系数;确定所述变换系数的扫描方式和系数组的大小,将所述变换系数划分成一个或多个系数组,根据所述扫描方式扫描每个所述系数组中包含的变换系数,将所述变换系数转换为一个或多个语法元素;对所述系数组的大小和所述语法元素的取值进行编码,将编码比特写入码流。
可选地,确定所述编码块的预测值,包括以下方法的至少之一:将一个或者多个已编码的图像作为参考图像,确定编码块的预测值;或,将所述编码块所在的图像中的已编码部分作为参考,确定所述编码块的预测值。
可选地,使用所述变换数据确定变换系数,包括:当判断对所述变换数据进行量化时,对所述变换数据进行量化处理,得到所述变换系数;当判断不对所述变换数据进行量化时,使用所述变换数据设置所述变换系数。
可选地,确定所述变换系数的系数组的大小,包括:根据其预设的候选值确定所述变换系数的系数组的大小。
可选地,根据预设的所述候选值确定所述变换系数的系数组的大小,包括:使用率失真优化的方法,从所述候选值中确定所述变换系数的系数组的大小。
可选地,计算使用所述候选值中的数值作为系数组的大小时所述变换系数的编码比特数,选择可使得所述编码比特数最小的所述候选值中的数值作为所述变换系数的系数组的大小。
可选地,根据预设的所述候选值确定所述变换系数的系数组的大小,包括:根据所述变换系数的分布情况确定所述变换系数的系数组的大小。
可选地,所述变换系数的分布情况是对所述变换系数进行扫描后检测所述变换系数中非0系数的集中程度,其中,所述非0系数的集中程度指的是所述变换系数的非0系数之间0值系数的数量,所述0值系数的数量越小表示非0系数的集中程度越高;从所述候选值中选择可使得所述集中程度最高的所述候选值中的数值作为所述变换系数的系数组的大小。
可选地,所述候选值包括至少之一:一个或多个固定数值;配置的一个或多个数值;所述编码块相邻已编码块使用的系数组的大小的取值。
可选地,所述系数组的大小的预设的候选值是所述配置的一个或多个数值时,所述方法还包括:将所述候选值标识参数写入所述码流的一个或多个数据单元中,其中,所述标识参数用于指示所述配置的所述候选值;所述码流中的数据单元包含以下至少之一:一个或多个参数集,分片头,块层数据单元。
可选地,所述系数组的大小的预设的候选值的标识参数,包括以下至少之一:系数组的大小,系统组的边长,系统组的宽度和高度。
可选地,使用以下一种或多种方法,将所述标识参数写入所述码流,包括:将所述标识参数的最大值和最小值写入所述码流;将所述标识参数的最大值和所述系数组的最大划分层次写入所述码流;将所述标识参数的最大值和所述系数组的大小的最大值与最小值之间的差值写入所述码流;将所述标识参数的最小值和所述系数组的最大向上划分层次写入所述码流;将所述标识参数的最小值和所述系数组的大小的最大值与最小值之间的差值写入所述码流。
可选地,使用以下一种或多种方法将所述标识参数写入所述码流,还包括:将所述标识参数的默认值写入所述码流。
可选地,所述系数组的大小的预设的候选值的标识参数,包括:所述标识参数是一个或多个标志位,指示对应的系数组的大小是否是所述候选值中包含的系数组的大小。
可选地,所述系数组的大小的预设的候选值的标识参数,包括:所述标识参数指示预设的一个或多个预测模式对应的一个或多个系数组的大小。
可选地,所述系数组的大小的预设的候选值的标识参数,包括:所述标识参数指示预设的一次或多次变换对应的一个或多个系数组的大小。
可选地,所述系数组的大小的预设的候选值的标识参数,包括:所述标识参数指示预设的一个或多个变换类型对应的一个或多个系数组的大小。
可选地,所述系数组的大小的预设的候选值的标识参数,包括:所述标识参数指示预设的一个或多个量化参数对应的一个或多个系数组的大小;或者,所述标识参数指示预设的一个或多个量化参数取值范围对应的一个或多个系数组的大小。
可选地,所述系数组的大小的预设的候选值的标识参数,包括:所述标识参数指示预设的档次/等级/级别Profile/Tier/Level对应的一个或多个系数组的大小。
可选地,所述确定所述变换系数的系数组的大小,包括:根据所述编码块的第一编码参数,将所述编码块中所述变换系数的系数组的大小设置为所述编码参数对应的系数组的大小,其中,所述第一编码参数至少包括以下其中之一:所述编码块中包含的变换块的大小、所述编码块的预测模式、所述编码块中包含的变换块使用的变换类型、量化参数。
可选地,根据所述编码块的第一编码参数,将所述编码块中所述变换系数的系数组的大小设置为所述编码参数对应的系数组的大小,包括:当所述编码块中包含的变换块的大小等于第一预设值时,将所述系数组的大小设置为所述第一预设值对应的系数组的大小。
可选地,根据所述编码块的第一编码参数,将所述编码块中所述变换系数的系数组的大小设置为所述编码参数对应的系数组的大小,包括:当所述编码块的预测模式等于第一预设模式时,将所述系数组的大小设置为所述第一预设模式对应的系数组的大小。
可选地,根据所述编码块的第一编码参数,将所述编码块中所述变换系数的系数组的大小设置为所述编码参数对应的系数组的大小,包括:当所述编码块中包含的变换块使用的变换类型等于第一变换类型时,将所述系数组的大小设置为所述第一变换类型对应的系数组的大小。
可选地,根据所述编码块的第一编码参数,将所述编码块中所述变换系数的系数组的大小设置为所述编码参数对应的系数组的大小,包括:当所述量化参数的取值等于第二预设值时,将所述系数组的大小设置为所述第二预设值对应的系数组的大小;或者,当所述量化参数的取值在第一预设取值范围内时,将所述系数组的大小设置为所述第一预设取值范围对应的系数组的大小。
可选地,所述确定所述变换系数的扫描方式,包括:根据预设的候选扫描方式为所述变换系数确定扫描方式,其中,所述扫描方式为对所述变换系数的二维矩阵中元素的处理顺序。
可选地,根据预设的候选扫描方式为所述变换系数确定扫描方式,包括:使用率失真优化的方法,从所述候选扫描方式中确定所述变换系数的扫描方式。
可选地,计算使用所述候选扫描方式中的扫描方式时所述变换系数的编码比特数,选择可使得所述编码比特数最小的所述候选扫描方式中的扫描方式作为所述变换系数的扫描方式。
可选地,根据预设的候选扫描方式为所述变换系数确定扫描方式,包括:根据所述变换系数的分布情况确定所述变换系数的扫描方式。
可选地,所述变换系数的分布情况是对所述变换系数进行扫描后检测所述变换系数中非0系数的集中程度,其中,所述非0系数的集中程度指的是所述变换系数的非0系数之间0值系数的数量,所述0值系数的数量越小表示非0系数的集中程度越高;从所述候选扫描方式中选择可使得所述集中程度最高的所述候选值中的扫描方式作为所述变换系数的扫描方式。
可选地,所述候选扫描方式包括至少之一:一个或多个固定扫描方式;配置的一个或多个扫描方式;所述编码块相邻已编码块使用的扫描方式。
可选地,所述候选扫描方式是所述配置的一个或多个扫描方式时,所述方法还包括:将所述候选扫描方式参数写入所述码流的一个或多个数据单元中,其中,所述候选扫描方式参数用于指示所述配置的所述候选扫描方式;所述码流中的数据单元包含以下至少之一:一个或多个参数集,分片头,块层数据单元。
可选地,所述候选扫描方式参数,还包括:所述变换系数的二维矩阵中元素的处理顺序。
可选地,所述候选扫描方式参数,还包括:所述扫描方式参数的默认值。
可选地,所述候选扫描方式参数,包括:所述候选扫描方式参数是一个或多个标志位,指示对应的扫描方式是否包含在所述候选扫描方式中。
可选地,所述候选扫描方式参数,包括:所述候选扫描方式参数指示预设的一个或多个预测模式对应的一个或多个扫描方式。
可选地,所述候选扫描方式参数,包括:所述候选扫描方式参数指示预设的一次或多次变换对应的一个或多个扫描方式。
可选地,所述候选扫描方式参数,包括:所述候选扫描方式参数指示预设的一个或多个变换类型对应的一个或多个扫描方式。
可选地,所述候选扫描方式参数,包括:所述候选扫描方式参数指示预设的一个或多个量化参数对应的一个或多个扫描方式;或者,所述候选扫描方式参数指示预设的一个或多个量化参数取值范围对应的一个或多个扫描方式。
可选地,所述候选扫描方式参数,包括:所述候选扫描方式参数指示预设的Profile/Tier/Level对应的一个或多个扫描方式。
可选地,所述确定所述变换系数的扫描方式,包括:根据所述变换块的第二编码参数,将所述编码块中所述变换系数的扫描方式设置为所述第二编码参数对应的系数组的扫描方式;其中,所述第二编码参数至少包括以下其中之一:所述编码块中包含的变换块的大小、所述编码块的预测模式、所述编码块中包含的变换块使用的变换类型、所述编码块的大小;所述扫描方式为对所述变换系数的二维矩阵中元素的处理顺序。
可选地,根据所述变换块的第二编码参数,将所述编码块中所述变换系数的扫描方式设置为所述第二编码参数对应的系数组的扫描方式,包括:当所述编码块中包含的变换块的大小等于第三预设值时,将所述变换系数的扫描方式设置为所述第三预设值对应的扫描方式。
可选地,根据所述变换块的第二编码参数,将所述编码块中所述变换系数的扫描方式设置为所述第二编码参数对应的系数组的扫描方式,包括:当所述编码块的预测模式等于第二预设模式时,将所述变换系数的扫描方式设置为所述第二预设模式对应的扫描方式。
可选地,根据所述变换块的第二编码参数,将所述编码块中所述变换系数的扫描方式设置为所述第二编码参数对应的系数组的扫描方式,包括:当所述编码块中包含的变换块使用的变换类型等于第二变换类型时,将所述变换系数的扫描方式设置为所述第二变换类型对应的扫描方式。
可选地,根据所述变换块的第二编码参数,将所述编码块中所述变换系数的扫描方式设置为所述第二编码参数对应的系数组的扫描方式,包括:当所述编码块的大小等于第四预设值时,将所述变换系数的扫描方式设置为所述第四预设值对应的扫描方式。
可选地,所述确定所述变换系数的扫描方式和系数组的大小,包括:使用率失真优化的方法,联合确定所述变换系数的系数组的大小和扫描方式。
可选地,所述将所述变换系数转换为一个或多个语法元素,包括:根据所述系数组的大小和扫描方式,将所述变换系数划分成一个或多个系数组,根据所述扫描方式扫描所述系数组中包含的变换系数,将所述变换系数表示为以下语法元素的至少之一:指示非0系数起始位置的语法元素;指示系数组中包含非0系数的语法元素;指示系数组中非0系数位置的语法元素;指示系数组中非0系数取值的语法元素。
可选地,所述对所述系数组的大小和所述语法元素的取值进行编码,将编码比特写入码流,包括:将所述变换系数使用的系数组的大小使用以下之一的方法进行编码:编码所述系数组的大小;编码所述系数组的大小对应的索引序号的取值;设置所述系数组的大小对应的标志位,编码所述标志位的取值。
可选地,所述对所述系数组的大小和所述语法元素的取值进行编码,将编码比特写入码流,包括:将编码比特写入码流中的数据单元,所述码流中的数据单元包含以下至少之一:一个或多个参数集,分片头,块层数据单元。
根据本发明的另一个实施例,提供了一种图像的解码方法,包括:解析码流,确定解码块的预测值;解析所述码流,确定所述解码块中变换系数的扫描方式、系数组的大小和变换系数相关的语法元素的取值;根据所述扫描方式和所述系数组的大小,对所述解码块中的系数组进行处理,将所述语法元素转换为所述系数组中的变换系数;对所述变换系数进行处理,得到变换系数的恢复值;对所述变换系数的恢复值进行一次或多次变换,得到所述解码块的预测差值;使用所述预测值和所述预测差确定所述解码块的恢复值。
可选地,解析所述码流,确定所述解码块的预测值,包括以下方法的至少之一:解析所述码流,获取所述解码块的帧间预测参数;根据所述帧间预测参数,将一个或者多个已解码的图像作为参考图像,确定所述解码块的预测值。或,解析所述码流,获取所述解码块的帧内预测参数;根据所述帧内预测参数,将所述解码块所在的图像中的已解码部分作为参考,确定所述解码块的预测值。
可选地,解析所述码流,确定所述解码块中变换系数的系数组的大小,包括:解析所述码流,从所述码流中的数据单元获取第一系数组参数,根据所述第一系数组参数确定所述系数组的大小;其中,所述码流中的数据单元包含以下至少之一:一个或多个参数集,分片头,块层数据单元。
可选地,根据所述第一系数组参数确定所述系数组的大小,包括:使用所述第一系数组参数设置所述系数组的大小。
可选地,根据所述第一系数组参数确定所述系数组的大小,包括:所述第一系数组参数指示了所述解码块的相邻已解码块,使用所述相邻已解码块的系数组的大小设置所述系数组的大小。
可选地,根据所述第一系数组参数确定所述系数组的大小,包括:根据所述第一系数组参数从系数组的大小的候选值中确定所述解码块的变换系数的系数组的大小。
可选地,所述第一系数组参数包含索引序号,使用所述索引序号在所述候选值中对应的系数组的大小设置所述系数组的大小。
可选地,所述第一系数组参数包含标志位,使用所述标志位在所述候选值中对应的系数组的大小设置所述系数组的大小。
可选地,所述系数组的大小的候选值是一个或多个固定数值。
可选地,所述第一系数组参数中包含标识参数,使用所述标识参数配置所述系数组的大小的候选值。
可选地,所述标识参数包括以下至少之一:系数组的大小,系统组的边长,系统组的宽度和高度。
可选地,使用以下一种或多种方法,使用所述标识参数配置所述系数组的大小的候选值,包括:获得所述标识参数的最大值和最小值,按照预设的划分方式确定所述标识参数除所述最大值和最小值之外的取值,使用所述标识参数的取值设置所述候选值;获得所述标识参数的最大值和所述系数组的最大划分层次,按照所述预设的划分方式确定所述标识参数的最大值之外的取值,使用所述标识参数的取值设置所述候选值;获得所述标识参数的最大值和所述系数组的大小的最大值与最小值之间的差值,按照所述预设的划分方式确定所述标识参数的最大值之外的取值,使用所述标识参数的取值设置所述候选值;获得所述标识参数的最小值和所述系数组的最大向上划分层次,按照所述预设的划分方式确定所述标识参数的最小值之外的取值,使用所述标识参数的取值设置所述候选值;获得所述标识参数的最小值和所述系数组的大小的最大值与最小值之间的差值,按照所述预设的划分方式确定所述标识参数的最小值之外的取值,使用所述标识参数的取值设置所述候选值。
可选地,所述预设的划分方式包括以下至少之一:四分式划分,三分式划分,二分式划分。
可选地,使用所述标识参数配置所述系数组的大小的候选值,包括:使用所述标识参数的默认值设置所述候选值。
可选地,使用所述标识参数配置所述系数组的大小的候选值,包括:所述标识参数是一个或多个指示对应的系数组的大小是否包含在所述候选值中的标志位,根据所述标识参数设置所述候选值中包含的系数组的大小。
可选地,使用所述标识参数配置所述系数组的大小的候选值,包括:所述标识参数指示预设的Profile/Tier/Level对应的一个或多个系数组的大小,根据所述标识参数设置所述候选值中包含的系数组的大小。
可选地,根据所述第一系数组参数确定所述系数组的大小,包括:所述第一参数组参数中包含所述解码块的第一解码参数,根据所述解码块的第一解码参数,将所述系数组的大小设置为所述第一解码参数对应的系数组的大小,其中,所述第一解码参数至少包括以下其中之一:所述解码块中包含的变换块的大小、所述解码块的预测模式、所述解码块中包含的变换块使用的变换类型、量化参数。
可选地,所述将所述系数组的大小设置为所述第一解码参数对应的系数组的大小,包括:当所述解码块中包含的变换块的大小等于第一预设值时,将所述系数组的大小设置为所述第一预设值对应的系数组的大小。
可选地,根据所述第一参数组参数,获得与所述第一预设值相对应的系数组的大小。
可选地,所述将所述系数组的大小设置为所述第一解码参数对应的系数组的大小,包括:当所述解码块的预测模式等于第一预设模式时,将所述系数组的大小设置为所述第一预设模式对应的系数组的大小。
可选地,根据所述第一参数组参数,获得与所述第一预设模式相对应的系数组的大小。
可选地,所述将所述系数组的大小设置为所述第一解码参数对应的系数组的大小,包括:当所述解码块中包含的变换块使用的变换类型等于第一变换类型时,将所述系数组的大小设置为所述第一变换类型对应的系数组的大小。
可选地,根据所述第一参数组参数,获得与所述第一变换类型相对应的系数组的大小。
可选地,所述将所述系数组的大小设置为所述第一解码参数对应的系数组的大小,包括:当所述量化参数的取值等于第二预设值时,将所述系数组的大小设置为所述第二预设值对应的系数组的大小;或者,当所述量化参数的取值在第一预设取值范围内时,将所述系数组的大小设置为所述第一预设取值范围对应的系数组的大小。
可选地,根据所述第一参数组参数,获得与所述第二预设值相对应的系数组的大小。或者,根据所述第一参数组参数,获得与所述第一预设取值范围相对应的系数组的大小。
可选地,所述对所述码流进行解析,确定所述变换系数的扫描方式,包括:解析所述码流中的数据单元获取第一扫描方式参数,根据所述第一扫描方式参数确定所述变换系数的扫描方式;其中,所述扫描方式为对所述变换系数的二维矩阵中元素的处理顺序;所述码流中的数据单元包含以下至少之一:一个或多个参数集,分片头,块层数据单元。
可选地,解析所述码流中的数据单元获取第一扫描方式参数,根据所述第一扫描方式参数确定所述变换系数的扫描方式,包括:使用所述第一扫描方式参数指示的扫描方式作为所述变换系数的扫描方式。
可选地,使用所述第一扫描方式参数指示的扫描方式作为所述变换系数的扫描方式,包括:所述第一扫描方式参数指示了所述解码块的相邻已解码块,使用所述相邻已解码块的扫描方式设置所述变换系数的扫描方式。
可选地,使用所述第一扫描方式参数指示的扫描方式作为所述变换系数的扫描方式,还包括:根据所述第一扫描方式参数从候选扫描方式中确定所述变换系数的扫描方式。
可选地,所述第一扫描方式参数包含扫描方式索引序号,使用所述扫描方式索引序号在所述候选扫描方式中对应的扫描方式设置所述变换系数的扫描方式。
可选地,还包括:所述第一扫描方式参数包含扫描方式指示标志位,使用所述扫描方式指示标志位在所述候选扫描方式中对应的扫描方式设置所述变换系数的扫描方式。
可选地,所述候选扫描方式包括至少之一:一个或多个固定扫描方式;使用所述第一扫描方式参数配置所述候选扫描方式。
可选地,使用所述第一扫描方式参数配置所述候选扫描方式,包括:所述第一扫描方式参数包含默认扫描方式,使用所述默认扫描方式设置所述候选扫描方式。
可选地,使用所述第一扫描方式参数配置所述候选扫描方式,包括:所述第一候选扫描方式参数包含一个或多个候选扫描方式指示标志位,使用所述候选扫描方式指示标志位对应的扫描方式设置所述候选扫描方式。
可选地,使用所述第一扫描方式参数配置所述候选扫描方式,包括:使用所述第一扫描方式参数指示预设的Profile/Tier/Level对应的一个或多个扫描方式设置所述候选扫描方式。
可选地,使用所述第一扫描方式参数配置所述候选扫描方式,包括:使用所述第一扫描方式参数指示的所述变换系数的位置与扫描后的变换系数的位置之间的对应关系设置所述候选扫描方式。
可选地,解析所述码流中的数据单元获取第一扫描方式参数,根据所述第一扫描方式参数确定所述变换系数的扫描方式;包括:所述第一扫描方式参数包含所述解码块的第二解码参数;根据所述第二解码参数,确定所述变换系数的扫描方式,其中所述第二解码参数至少包括以下其中之一:所述解码块中包含的变换块的大小、所述解码块的预测模式、所述解码块中包含的变换块使用的变换类型、所述解码块的大小。
可选地,根据所述第二解码参数,将所述变换系数的扫描方式设置为所述第二解码参数对应的扫描方式,包括:当所述解码块中包含的变换块的大小等于第三预设值时,将所述变换系数的扫描方式设置为所述第三预设值对应的扫描方式。
可选地,根据所述第一参数组参数,获得与所述第三预设值相对应的扫描方式。
可选地,根据所述第二解码参数,将所述变换系数的扫描方式设置为所述第二解码参数对应的扫描方式,包括:当所述解码块的预测模式等于第二预设模式时,将所述变换系数的扫描方式设置为所述第二预设模式对应的扫描方式。
可选地,根据所述第一参数组参数,获得与所述第二预设模式相对应的扫描方式。
可选地,根据所述第二解码参数,将所述变换系数的扫描方式设置为所述第二解码参数对应的扫描方式,包括:当所述解码块中包含的变换块使用的变换类型等于第二变换类型时,将所述变换系数的扫描方式设置为所述第二变换类型对应的扫描方式。
可选地,根据所述第一参数组参数,获得与所述第二变换类型相对应的扫描方式。
可选地,根据所述第二解码参数,将所述变换系数的扫描方式设置为所述第二解码参数对应的扫描方式,包括:当所述解码块的大小等于第四预设值时,将所述变换系数的扫描方式设置为所述第四预设值对应的扫描方式。
可选地,根据所述第一参数组参数,获得与第四预设值相对应的扫描方式。
可选地,解析所述码流,确定变换系数相关的语法元素的取值,包括:所述语法元素包括以下至少之一:指示非0系数起始位置的语法元素;指示系数组中包含非0系数的语法元素;指示系数组中非0系数位置的语法元素;指示系数组中非0系数取值的语法元素。
可选地,所述对所述变换系数进行处理,得到变换系数的恢复值,包括:当判断对所述变换系数进行伸缩Scaling处理时,对所述变换数据进行伸缩处理,得到所述变换系数的恢复值;当判断不对所述变换数据进行伸缩处理时,使用所述变换系数设置所述变换系数的恢复值。
可选地,所述对所述变换系数进行处理之前,所述方法还包括:解析所述码流,获取用于构造所述解码块的预测差值的恢复值的第三参数;根据所述第三参数,判断是否对所述变换系数进行伸缩处理。
可选地,使用所述预测值和所述预测差值确定所述解码块的恢复值,所述方法还包括:对所述预测值和所述预测差值的和值进行环路滤波处理。
根据本发明的另一个实施例,提供了一种图像的编码装置,包括:第一确定模块,用于确定编码块的预测值,计算所述编码块与所述预测值的预测差值;变换模块,用于对所述预测差值进行一次或者多次的变换,得到变换数据,使用所述变换数据确定变换系数;第二确定模块,用于确定所述变换系数的扫描方式和系数组的大小,将所述变换系数划分成一个或多个系数组,根据所述扫描方式扫描每个所述系数组中包含的变换系数,将所述变换系数转换为一个或多个语法元素;编码模块,用于对所述系数组的大小和所述语法元素的取值进行编码,将编码后的比特写入码流。
根据本发明的另一个实施例,提供了一种图像的解码装置,包括:解码模块,用于对码流进行解析,确定所述解码块的预测值,所述解码块中变换系数的扫描方式、系数组的大小和变换系数相关的语法元素的取值;转换模块,用于根据所述扫描方式和所述系数组的大小,对所述解码块中的系数组进行处理,将所述语法元素转换为所述系数组中的变换系数;处理模块,用于对所述变换系数进行处理,得到变换系数的恢复值;变换模块,用于对所述变换系数进行处理,并将处理后的数据进行一次或多次变换,得到所述解码块的预测差值;计算模块,用于使用所述预测值和所述预测差确定所述解码块的恢复值。
根据本发明的另一个实施例,提供了一种电子设备,包括:上述的编码装置,采集设备以及存储设备;其中,所述采集设备,用于采集所述编码块对应的图像,并对所述图像进行预处理后输出;所述存储设备,用于接收输出的码流,并在对所述码流进行系统层处理后进行存储。
根据本发明的另一个实施例,提供了一种电子设备,包括:上述的解码装置,接收设备以及显示设备,其中,所述接收设备,用于对码流进行接收;所述显示设备,用于将恢复后的图像进行显示。
根据本发明的又一个实施例,还提供了一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
通过本发明,由于允许使用非固定大小的系数组对变换系数矩阵进行编码和解码,同时因此,可以解决固定大小的系数组,致使编码器无法根据二维矩阵中变换系数的分布情况选择最有效的编码系数编码方式的问题,从而有效降低系数组标志位的编码开销,提高了对变换系数的编码效率。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是本发明实施例的一种图像的编码方法的移动终端的硬件结构框图;
图2是根据本发明实施例的一种图像的编码方法的流程图;
图3是根据本发明实施例的一种编码系数组的大小的数据处理流程图;
图4是根据本发明实施例的一种编码扫描方式参数的数据处理流程图;
图5是根据本发明实施例的一种图像的解码的流程图;
图6是根据本发明实施例的一种解析系数组的大小的数据处理流程图;
图7是根据本发明实施例的一种解析扫描方式参数的数据处理流程图;
图8是根据本发明实施例的一种图像的编码装置的结构框图;
图9是根据本发明实施例的另一种图像的编码装置的结构框图;
图10是根据本发明实施例的一种图像的解码装置的结构框图;
图11是根据本发明实施例的另一种图像的解码装置的结构框图;
图12是一种包含上述所示图像的编码装置的电子设备图;
图13是一种包含上述所示图像的解码装置的电子设备图;
图14是一种包含上述所示电子设备的电子系统。
具体实施方式
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
下述实施例中,视频指的是由图像组成的图像序列。所述码流指的是视频编码器对视频进行编码产生的码流,也指对视频编码器编码视频产生的码流经过系统层处理后得到的包含所述视频编码器编码视频产生的码流的传输流和/或媒体文件,对所述码流进行解码可以获得视频。所述系统层处理是对视频码流进行的封装操作,例如,将视频码流作为数据载荷封装成传输流,或将视频码流作为载荷封装成媒体文件。所述系统层处理也包括将包含视频码流的传输流或媒体文件作为数据载荷封装成用于传输的流或者用于存储的文件。所述系统层处理生成的数据单元也称为系统层数据单元,在所述系统层处理封装数据载荷过程中在所述系统层数据单元中添加的信息(例如系统层数据单元的头信息等)称为系统层信息。所述子码流指的是从码流中进行抽取操作得到的部分码流,对所述子码流进行解码可以获得视频图像,该视频图像可以是比解码所述码流获得的视频图像的分辨率低的图像,也可以是比解码所述码流获得视频的帧率低的图像,该视频图像包含的可以是解码所述码流获得的视频图像中的部分内容。
实施例1
本申请实施例一所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。以运行在移动终端上为例,图1是本发明实施例的一种图像的编码方法的移动终端的硬件结构框图。如图1所示,移动终端10可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)和用于存储数据的存储器104,可选地,上述移动终端还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述移动终端的结构造成限定。例如,移动终端10还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本发明实施例中的一种图像的编码方法方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至移动终端10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括移动终端10的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
在本实施例中提供了一种运行于上述移动终端的图像的编码方法方法,图2是根据本发明实施例的一种图像的编码方法的流程图,如图2所示,该流程包括如下步骤:
步骤S202,确定编码块的预测值,计算所述编码块与所述预测值的预测差值;
步骤S204,对所述预测差值进行一次或者多次的变换,得到变换数据,使用所述变换数据确定变换系数;
步骤S206,确定所述变换系数的扫描方式和系数组的大小,将所述变换系数划分成一个或多个系数组,根据所述扫描方式扫描每个所述系数组中包含的变换系数,将所述变换系数转换为一个或多个语法元素;
步骤S208,对所述系数组的大小和所述语法元素的取值进行编码,将编码比特写入码流。
可选地,确定所述编码块的预测值,包括以下方法的至少之一:将一个或者多个已编码的图像作为参考图像,确定编码块的预测值;或,将所述编码块所在的图像中的已编码部分作为参考,确定所述编码块的预测值。
可选地,使用所述变换数据确定变换系数,包括:当判断对所述变换数据进行量化时,对所述变换数据进行量化处理,得到所述变换系数;当判断不对所述变换数据进行量化时,使用所述变换数据设置所述变换系数。
可选地,确定所述变换系数的系数组的大小,包括:根据其预设的候选值确定所述变换系数的系数组的大小。
可选地,根据预设的所述候选值确定所述变换系数的系数组的大小,包括:使用率失真优化的方法,从所述候选值中确定所述变换系数的系数组的大小。
可选地,计算使用所述候选值中的数值作为系数组的大小时所述变换系数的编码比特数,选择可使得所述编码比特数最小的所述候选值中的数值作为所述变换系数的系数组的大小。
可选地,根据预设的所述候选值确定所述变换系数的系数组的大小,包括:根据所述变换系数的分布情况确定所述变换系数的系数组的大小。
可选地,所述变换系数的分布情况是对所述变换系数进行扫描后检测所述变换系数中非0系数的集中程度,其中,所述非0系数的集中程度指的是所述变换系数的非0系数之间0值系数的数量,所述0值系数的数量越小表示非0系数的集中程度越高;从所述候选值中选择可使得所述集中程度最高的所述候选值中的数值作为所述变换系数的系数组的大小。
可选地,所述候选值包括至少之一:一个或多个固定数值;配置的一个或多个数值;所述编码块相邻已编码块使用的系数组的大小的取值。
可选地,所述系数组的大小的预设的候选值是所述配置的一个或多个数值时,所述方法还包括:将所述候选值标识参数写入所述码流的一个或多个数据单元中,其中,所述标识参数用于指示所述配置的所述候选值;所述码流中的数据单元包含以下至少之一:一个或多个参数集,分片头,块层数据单元。
可选地,所述系数组的大小的预设的候选值的标识参数,包括以下至少之一:系数组的大小,系统组的边长,系统组的宽度和高度。
可选地,使用以下一种或多种方法,将所述标识参数写入所述码流,包括:将所述标识参数的最大值和最小值写入所述码流;将所述标识参数的最大值和所述系数组的最大划分层次写入所述码流;将所述标识参数的最大值和所述系数组的大小的最大值与最小值之间的差值写入所述码流;将所述标识参数的最小值和所述系数组的最大向上划分层次写入所述码流;将所述标识参数的最小值和所述系数组的大小的最大值与最小值之间的差值写入所述码流。
可选地,使用以下一种或多种方法将所述标识参数写入所述码流,还包括:将所述标识参数的默认值写入所述码流。
可选地,所述系数组的大小的预设的候选值的标识参数,包括:所述标识参数是一个或多个标志位,指示对应的系数组的大小是否是所述候选值中包含的系数组的大小。
可选地,所述系数组的大小的预设的候选值的标识参数,包括:所述标识参数指示预设的一个或多个预测模式对应的一个或多个系数组的大小。
可选地,所述系数组的大小的预设的候选值的标识参数,包括:所述标识参数指示预设的一次或多次变换对应的一个或多个系数组的大小。
可选地,所述系数组的大小的预设的候选值的标识参数,包括:所述标识参数指示预设的一个或多个变换类型对应的一个或多个系数组的大小。
可选地,所述系数组的大小的预设的候选值的标识参数,包括:所述标识参数指示预设的一个或多个量化参数对应的一个或多个系数组的大小;或者,所述标识参数指示预设的一个或多个量化参数取值范围对应的一个或多个系数组的大小。
可选地,所述系数组的大小的预设的候选值的标识参数,包括:所述标识参数指示预设的档次/等级/级别Profile/Tier/Level对应的一个或多个系数组的大小。
可选地,所述确定所述变换系数的系数组的大小,包括:根据所述编码块的第一编码参数,将所述编码块中所述变换系数的系数组的大小设置为所述编码参数对应的系数组的大小,其中,所述第一编码参数至少包括以下其中之一:所述编码块中包含的变换块的大小、所述编码块的预测模式、所述编码块中包含的变换块使用的变换类型、量化参数。
可选地,根据所述编码块的第一编码参数,将所述编码块中所述变换系数的系数组的大小设置为所述编码参数对应的系数组的大小,包括:当所述编码块中包含的变换块的大小等于第一预设值时,将所述系数组的大小设置为所述第一预设值对应的系数组的大小。
可选地,根据所述编码块的第一编码参数,将所述编码块中所述变换系数的系数组的大小设置为所述编码参数对应的系数组的大小,包括:当所述编码块的预测模式等于第一预设模式时,将所述系数组的大小设置为所述第一预设模式对应的系数组的大小。
可选地,根据所述编码块的第一编码参数,将所述编码块中所述变换系数的系数组的大小设置为所述编码参数对应的系数组的大小,包括:当所述编码块中包含的变换块使用的变换类型等于第一变换类型时,将所述系数组的大小设置为所述第一变换类型对应的系数组的大小。
可选地,根据所述编码块的第一编码参数,将所述编码块中所述变换系数的系数组的大小设置为所述编码参数对应的系数组的大小,包括:当所述量化参数的取值等于第二预设值时,将所述系数组的大小设置为所述第二预设值对应的系数组的大小;或者,当所述量化参数的取值在第一预设取值范围内时,将所述系数组的大小设置为所述第一预设取值范围对应的系数组的大小。
可选地,所述确定所述变换系数的扫描方式,包括:根据预设的候选扫描方式为所述变换系数确定扫描方式,其中,所述扫描方式为对所述变换系数的二维矩阵中元素的处理顺序。
可选地,根据预设的候选扫描方式为所述变换系数确定扫描方式,包括:使用率失真优化的方法,从所述候选扫描方式中确定所述变换系数的扫描方式。
可选地,计算使用所述候选扫描方式中的扫描方式时所述变换系数的编码比特数,选择可使得所述编码比特数最小的所述候选扫描方式中的扫描方式作为所述变换系数的扫描方式。
可选地,根据预设的候选扫描方式为所述变换系数确定扫描方式,包括:根据所述变换系数的分布情况确定所述变换系数的扫描方式。
可选地,所述变换系数的分布情况是对所述变换系数进行扫描后检测所述变换系数中非0系数的集中程度,其中,所述非0系数的集中程度指的是所述变换系数的非0系数之间0值系数的数量,所述0值系数的数量越小表示非0系数的集中程度越高;从所述候选扫描方式中选择可使得所述集中程度最高的所述候选值中的扫描方式作为所述变换系数的扫描方式。
可选地,所述候选扫描方式包括至少之一:一个或多个固定扫描方式;配置的一个或多个扫描方式;所述编码块相邻已编码块使用的扫描方式。
可选地,所述候选扫描方式是所述配置的一个或多个扫描方式时,所述方法还包括:将所述候选扫描方式参数写入所述码流的一个或多个数据单元中,其中,所述候选扫描方式参数用于指示所述配置的所述候选扫描方式;所述码流中的数据单元包含以下至少之一:一个或多个参数集,分片头,块层数据单元。
可选地,所述候选扫描方式参数,还包括:所述变换系数的二维矩阵中元素的处理顺序。
可选地,所述候选扫描方式参数,还包括:所述扫描方式参数的默认值。
可选地,所述候选扫描方式参数,包括:所述候选扫描方式参数是一个或多个标志位,指示对应的扫描方式是否包含在所述候选扫描方式中。
可选地,所述候选扫描方式参数,包括:所述候选扫描方式参数指示预设的一个或多个预测模式对应的一个或多个扫描方式。
可选地,所述候选扫描方式参数,包括:所述候选扫描方式参数指示预设的一次或多次变换对应的一个或多个扫描方式。
可选地,所述候选扫描方式参数,包括:所述候选扫描方式参数指示预设的一个或多个变换类型对应的一个或多个扫描方式。
可选地,所述候选扫描方式参数,包括:所述候选扫描方式参数指示预设的一个或多个量化参数对应的一个或多个扫描方式;或者,所述候选扫描方式参数指示预设的一个或多个量化参数取值范围对应的一个或多个扫描方式。
可选地,所述候选扫描方式参数,包括:所述候选扫描方式参数指示预设的Profile/Tier/Level对应的一个或多个扫描方式。
可选地,所述确定所述变换系数的扫描方式,包括:根据所述变换块的第二编码参数,将所述编码块中所述变换系数的扫描方式设置为所述第二编码参数对应的系数组的扫描方式;其中,所述第二编码参数至少包括以下其中之一:所述编码块中包含的变换块的大小、所述编码块的预测模式、所述编码块中包含的变换块使用的变换类型、所述编码块的大小;所述扫描方式为对所述变换系数的二维矩阵中元素的处理顺序。
可选地,根据所述变换块的第二编码参数,将所述编码块中所述变换系数的扫描方式设置为所述第二编码参数对应的系数组的扫描方式,包括:当所述编码块中包含的变换块的大小等于第三预设值时,将所述变换系数的扫描方式设置为所述第三预设值对应的扫描方式。
可选地,根据所述变换块的第二编码参数,将所述编码块中所述变换系数的扫描方式设置为所述第二编码参数对应的系数组的扫描方式,包括:当所述编码块的预测模式等于第二预设模式时,将所述变换系数的扫描方式设置为所述第二预设模式对应的扫描方式。
可选地,根据所述变换块的第二编码参数,将所述编码块中所述变换系数的扫描方式设置为所述第二编码参数对应的系数组的扫描方式,包括:当所述编码块中包含的变换块使用的变换类型等于第二变换类型时,将所述变换系数的扫描方式设置为所述第二变换类型对应的扫描方式。
可选地,根据所述变换块的第二编码参数,将所述编码块中所述变换系数的扫描方式设置为所述第二编码参数对应的系数组的扫描方式,包括:当所述编码块的大小等于第四预设值时,将所述变换系数的扫描方式设置为所述第四预设值对应的扫描方式。
可选地,所述确定所述变换系数的扫描方式和系数组的大小,包括:使用率失真优化的方法,联合确定所述变换系数的系数组的大小和扫描方式。
可选地,所述将所述变换系数转换为一个或多个语法元素,包括:根据所述系数组的大小和扫描方式,将所述变换系数划分成一个或多个系数组,根据所述扫描方式扫描所述系数组中包含的变换系数,将所述变换系数表示为以下语法元素的至少之一:指示非0系数起始位置的语法元素;指示系数组中包含非0系数的语法元素;指示系数组中非0系数位置的语法元素;指示系数组中非0系数取值的语法元素。
可选地,所述对所述系数组的大小和所述语法元素的取值进行编码,将编码比特写入码流,包括:将所述变换系数使用的系数组的大小使用以下之一的方法进行编码:编码所述系数组的大小;编码所述系数组的大小对应的索引序号的取值;设置所述系数组的大小对应的标志位,编码所述标志位的取值。
可选地,所述对所述系数组的大小和所述语法元素的取值进行编码,将编码比特写入码流,包括:将编码比特写入码流中的数据单元,所述码流中的数据单元包含以下至少之一:一个或多个参数集,分片头,块层数据单元。
可选地,图像可以被划分成多个最大编码单元。最大编码单元是一个正方形的图像区域。图像可以划分成一个或多个分片(Slice),每个分片中可以包含整数个最大编码单元,也可以包含非整数个最大编码单元。可选地,图像还可以划分成一个或多个瓦片(Tile),每个瓦片中可以包含整数个最大编码单元,也可以包含非整数个最大编码单元。划分单元201可以被配置为按照固定的方式对图像进行划分,也可以被配置为动态调整图像的划分方式。例如,为了适配网络的最大传输单元(Maximum Transmission Unit,MTU),采用动态分片划分的方法,保证每个分片的编码比特数不超过MTU的限制。
可选地,将最大编码单元划分为一个或多个编码块,划分得到的编码块可以进一步进行划分成更多的编码块。划分方式可以采用四叉树划分、二叉树划分、三叉树划分中的一种或多种。
可选地,使用常用的率失真优化(Rate-Distortion Optimization,RDO)的方法,确定编码块的预测值以及得到该预测值使用的帧间预测、帧内预测相关的输出参数.
可选地,对一个或多个已解码图像作为参考图像,确定编码块的帧间预测值。首先使用所述参考图像,构造一个或多个参考图像列表(Reference List),每个参考图像列表中包含一个或多个参考图像,确定编码块在所述参考图像中的匹配块。使用所述匹配块构造编码块的预测值,并且计算编码块与所述预测值之间的差值(即预测差)。的输出用于指示匹配块位置的参数,包括参考图像列表指示、参考图像索引(Reference Index)、运动矢量(Motion Vector,MV)等,其中,参考图像列表指示用于指示包含匹配块的参考图像所在的参考图像列表,参考图像索引用于指示参考图像列表中包含匹配块的参考图像,MV用于指示编码块与匹配块在同一个图像像素点坐标系下相互之间的相对位置偏移量。
可选地,以所述编码块相邻的已恢复像素作为滤波器的输入值来计算编码块的预测值,这里,所述的滤波器可以是插值滤波器,也可以是低通滤波器(例如用于计算DC值的滤波器)。特殊地,在所述编码块所在图像中已经部分恢复的部分中搜索所述编码块的匹配块,将匹配块作为所述编码块的预测值。使用率失真优化RDO的方法确定用于计算所述编码块预测值的方法(即帧内预测模式)以及预测值。上述过程中的输出参数包括用于指示帧内预测模式的参数。
可选地,还用于计算编码块的原始值与预测值之间的预测差。所述预测差可以表示为一个N x M的二维矩阵,其中,N和M均为正整数,N和M可以相等,也可以不相等
可选地,从信号处理的角度,一种变换方法可以用一个变换矩阵来表示。可以使用与所述编码块大小和形状相同的矩形块(这里,正方形是矩形的一种特例)作为预测差的变换块,也可以将所述预测差值划分成多个矩形块(包括高度或宽度为一个像素的情况)并分别对矩形块依次进行变换处理。
可选地,使用标量量化器对所述数据进行量化,量化器的量化参数(QuantizationParameter,QP)由的控制单元确定。例如,控制单元可以使用已有的码率控制方法,确定量化器的量化步长,并根据中量化步长与QP的对应关系确定QP。经过量化过程输出的是系数的量化值(即“Level”值),通常可以使用一个二维矩阵进行表示。
可选地,还可以使用与量化过程中相同的QP,对所述系数的量化值进行缩放(Scaling)操作,得到系数的恢复值。
可选地,当确定不对所述编码块进行量化时(例如,使用RDO的方法确定是否对所述编码块进行量化),所述将预测差进行变换后得到的数据直接进行反变换。
可选地,当通过逆变换对所述系数的恢复值进行处理,得到预测差的恢复值
可选地,还用于进行滤波。具体地,在本实施例中海包括由去方块滤波(Deblocking)和采样值自适应加性偏移量补偿滤波器(Sample Adaptive Offset,SAO)两个滤波器级联构成的滤波器进行的滤波方法。在该过滤器中也可以包括神经网络滤波器。可选地,对图像缓冲区中的数据进行滤波的操作可以在图像层进行操作,即等待所述图像中的全部编码块的恢复值均写入了图像缓冲区后,对图像缓冲区中的数据进行滤波处理。可选地,对所述图像缓冲区中的数据进行滤波的操作可以在块层进行操作,即当某个编码块的恢复数据不再用做后续编码块的参考数据时,对该编码块的恢复数据进行滤波处理。使用RDO方法确定滤波器参数,并将其作为滤波过程的输出参数。所述滤波器参数包括所使用的滤波器的指示信息、滤波器系数、滤波器的控制参数。
可选地,对图像的编码数据进行二值化和熵编码,将参数转换为符合标准的由一个或多个“0”、“1”比特组成的字段,并根据标准中码流语法结构(Syntax Structure)将字段组织成码流。所述的编码数据包括图像的纹理数据和非纹理数据。其中,所述纹理数据主要是编码块的变换系数;非纹理数据包括除纹理数据外的其他所有数据,包括前述中各个处理过程中的输出参数、以及参数集、头信息、辅助信息等参数。
可选地,处理的纹理数据是以M x N二维矩阵形式表示的变换系数,其中,其中,M和N是正整数,M和N可以相等,M和N也可以不相等。所述二维矩阵可以对应于一个变换块,以下叙述中使用“变换块”指代所述以M x N二维矩阵形式表示的变换系数。这里,在所述对所述编码块使用量化的情况下,所述变换系数是量化过程中输出的是系数的量化值(即“Level”值);反之,在所述不对所述编码块使用量化的情况下,所述变换系数是变换过程中输出的是所述预测差进行变换后得到的数据。
可选地,能够确定系数组的大小。系数组包含W x H个变换系数,其中,W和H是正整数,W和H可以相等,W和H也可以不相等,并且W≤M、H≤N。为变换块从该预设的候选值中确定所使用的系数组的大小。预设的候选值可以是固定的值,也可以是可配置的值。在预设的候选值是可以配置的值的情况下,可以在以下一个或多个数据单元中编码与系数组的大小相关的标识信息并将其写入码流,所述标识信息用于指示所述设置的可使用的系数组的大小,包括:一个或多个参数集(Parameter Set)、分片头(Slice Header)、编码单元(CodingUnit)。
可选地,可以使用隐含推导的方式确定所述变换块的系数组的大小。可以根据所述变换块所在编码块的编码模式、变换块大小、量化参数、变换块使用的变换类型等一个或多个编码参数,选择预先设定的对应系数组的大小。下述示例中,设置为可以使用4x4和8x8两种系数组的大小。所述方法可以扩展到使用更多系数组的大小的情况。可以使用下述示例中的一种方法或联合使用多种方法确定系数组的大小
例如,设定当编码块中变换块的大小大于16x16时将系数组的大小设置为8x8,设定当编码块中变换块的大小小于或等于16x16时将系数组的大小设置为4x4。对于非正方形的矩形变换块,可以根据变换块的高度和宽度来设定对应使用的系数组的大小,例如,当变换块的高度和宽度中的较小值大于16时,使用高度和宽度中的较小值等于8的矩形系数组,反之,使用高度和宽度中的较小值等于4的矩形系数组。
例如,设定帧间预测模式的编码块中的变换块对应使用的系数组的大小是8x8(设定8x8和4x4的变换块使用的系数组的大小是4x4),设定帧内预测模式的编码块中的变换块对应使用的系数组的大小是8x8(设定16x16、8x8和4x4的变换块使用的系数组的大小是4x4)。
例如,通常情况下,量化参数较大时,二维矩阵中存在更多的0值变换系数,由于每个系数组都会有一个对应标志位来标识该系数组中的变换系数是否都是0(或者是标识该系数组中是否包含非0变换系数),因此,采用较大的系数组时,其中包含可能都是0值系数,使用1个所述标志位即可表示。较之使用较小的系数组的情况,在量化参数较大时采用较大的系数组可以有效降低了所述标志位的编码开销。以H.265/HEVC标准中量化参数的设置方式为例,一种实施方式时,当量化参数的取值大于或等于37时,将系数组的大小设置为8x8(设定8x8和4x4的变换块使用的系数组的大小是4x4);反之,将系数组的大小设置为4x4。
例如,对于使用基于离散余弦变换(Discrete Cosine Transform,DCT)设计的变换的编码块,将系数组的大小设置为8x8(设定8x8和4x4的变换块使用的系数组的大小是4x4)。对于使用基于离散正弦变换(Discrete Sine Transform,DST)设计的变换的编码块,将系数组的大小设置为4x4。对于使用基于卡胡南-洛夫变换(Karhunen-Loève Transform,KLT)设计的变换的编码块,将系数组的大小设置为8x8(设定8x8和4x4的变换块使用的系数组的大小是4x4)。对于使用二次或多次变换的编码块,将系数组的大小设置为8x8(设定8x8和4x4的变换块使用的系数组的大小是4x4)。
可选地,还能够用于确定变换块中变换系数的扫描方式。所述扫描方式指的是对变换系数二维矩阵中元素的处理顺序。通常情况下,按照扫描方式所指示的顺序依次读取一个M行N列的二维矩阵中的元素,可以等价得到一个1行M x N列(或者M x N行1列)的一维矩阵。可以预设一种或多种变换系数矩阵的扫描方式,例如,“之”(Zig-zag)扫描顺序、水平扫描(Horizontal scan)顺序、垂直扫描(Vertical scan)、对角扫描(Diagonal scan)顺序(例如对角右上扫描(Diagonal up-right scan)顺序,等。为变换块从预设的扫描方式中选择扫描方式。可以为变换块中的系数组、系数组中的变换系数使用相同的扫描方式,也可以为变换块中的系数组、系数组中的变换系数使用不同的扫描方式。
可选地,可以使用隐含推导的方式确定所述变换块的变换系数矩阵的扫描方式。可以根据所述变换块所在编码块的编码模式、变换块大小等一个或多个编码参数,选择预先设定的对应扫描方式。例如,设定帧间预测模式对应使用对角右上扫描方式,设定编码块的大小大于8x8时的帧内预测模式对应使用对角右上扫描方式,设定编码块大小小于等于8x8时的帧内预测模式对应使用帧内预测方向指示方向的扫描方式、直流(DC)模式和平面(Planar)模式等不使用方向性预测的模式使用对角右上扫描方式。为减少预设的扫描方式数量,可以将帧内预测方向进行分类,各类对应不同的扫描方式,例如,垂直方向以及垂直方向上左右偏移指定角度的帧内预测方向对应使用垂直扫描方式,水平方向以及水平方向上上下偏移指定角度的帧内预测方向对应使用水平扫描方式,还可以包括45度角度以及角度方向上上下偏移指定角度的帧内预测方向使用对角扫描方式。根据所述编码模式、编码块大小等一个或多个编码参数,为所述编码块选择扫描方式。
可选地,在已经确定了变换块的系数组的大小的情况下,根据变换块中变换系数的分布情况确定所述变换块的扫描方式。所述分布情况指的是使用扫描方式对变换块中的变换系数进行扫描(或逆扫描顺序),检测变换块中非0系数的集中程度。通常情况下,按照扫描顺序(或逆扫描顺序)非0系数之间0值系数越少认为非0系数的集中程度越高。从候选扫描模式中选择可使得非0系数集中程度最高的扫描方式作为所述变换块的扫描方式。另一种实施方式是,在已经确定了变换块中系数组的大小的情况下,依次采用可用候选扫描方式作为所述变换块的扫描方式,计算变换块中变换系数的编码比特数,选择可使得编码比特数最小的候选扫描方式作为所述变换块的扫描方式。其中,所述可用候选扫描方式指的是预设的扫描方式中,可用于编码所述变换块的扫描方式。例如,可以配置针对特定预测模式的编码块,不使用指定的一种或多种扫描方式;例如,可以配置对于某一个或多个特定的编码块或变换块的大小,不使用指定的一种或多种扫描方式。在以下一个或多个数据单元中编码用于指示变换块使用的扫描方式的信息并将其写入码流,包括:一个或多个参数集、分片头、编码单元、变换块数据单元。
可选地,可以为变换块确定自适应的扫描方式。在前述方法中,使用的各种扫描方式均是按照固定的顺序处理变换块中的系数组、系数组中的变换系数,不同的扫描方式定义不同的扫描顺序。这里所述的“自适应的扫描方式”,指的是对变换块中的系数组采用灵活而非固定的处理顺序,对系数组中的变换系数采用灵活而非固定的处理顺序。一种实施方法是,根据变换块中变换系数的分布情况,构造一种扫描方式,使得变换块中非0系数的集中程度最高。通常情况下,按照扫描顺序(或逆扫描顺序)非0系数之间0值系数越少认为非0系数的集中程度越高。另一种实施方法是,在已经确定了变换块中系数组的大小的情况下,构造一种扫描方式可使得变换块中变换系数的编码比特数与编码该扫描方式的开销比特数之和最小。在确定了扫描方式后,需要对扫描方式进行编码,一种方法是编码变换块中变换系数的位置与扫描后的位置之间的对应关系表,例如,变换块中坐标位置等于(m,n)的变换系数(或者是索引序号等于m×nTbS+n,其中nTbS是变换块的宽度)对应的扫描后序号位置等于k。需要说明的是,码流中所述对应关系表指示的等价信息是:解析码流获得的位置序号等于k的变换系数在变换块中的位置坐标是(m,n)(或者是索引序号等于m×nTbS+n,其中nTbS是变换块的宽度)。在以下一个或多个数据单元中编码变换块使用的扫描方式的信息并将其写入码流,包括:一个或多个参数集、分片头、编码单元、变换块数据单元。
可选地,根据系数组的大小,将变换块中的变换系数划分成一个或多个系数组,按照所确定扫描方式对变换系数矩阵中的元素进行处理。使用扫描方式的正序或逆序,依次对变换系数矩阵中的系数组进行处理。对于每个系数组,使用扫描方式的正序或逆序,依次对该系数组中的变换系数进行处理。这里,对系数组的扫描顺序和对系数组中变换系数的扫描顺序可以是相同的,也可以是不同的。将编码所述变换块产生的比特写入码流,所述比特表示以下一项或多项信息:变换块使用的系数组的大小、变换块使用的扫描方式、变换块中的变换系数。
图3是根据本发明实施例的一种编码系数组的大小的数据处理流程图;所述处理流程的输出是对系数组的大小相关参数进行编码后的码流。
步骤301,在参数集数据单元中编码系数组的大小。对系数组的大小的设置参数在参数集数据单元中进行编码。
所述参数集数据单元指的是用于携载适用于整个序列的参数数据的参数集数据单元,例如,H.265/HEVC标准中的视频参数集(Video Parameter Set,VPS)、序列参数集(Sequence Parameter Set,SPS)。所述参数集数据单元还可以包括用于携载适用于图像的参数数据的参数集数据单元,例如,适配参数集(Adaptive Parameter Set,APS)、H.265/HEVC标准中的图像参数集(Picture Parameter Set,PPS)。特别地,当APS或PPS中的参数对整个序列中的每个图像都保持不变,即APS或PPS中的参数适用于整个序列中的每个图像时,这种情况下的APS或PPS相当于携载了适用于整个序列的参数数据的参数集数据单元。可选地,特别地,可以设置、或采用默认设置的方法,使用适用于图像的参数集数据单元中的数据覆盖适用于序列的参数集数据单元中的对应数据。
根据配置文件设置参数集数据单元中与系数组的大小相关的字段的取值,对这些字段进行编码,将编码比特写入参数集数据单元对应的码流。这里,所述配置文件中记载的是用于对进行初始化过程中的参数设置。
在参数集数据单元中设置是否允许使用多种系数组的大小的标志位。当该标志位指示“允许使用”时,对编码块进行编码的过程中,可以从多于一种的候选系数组的大小选择用于编码所述编码块变换系数的系数组的大小。当该标志为指示“不允许使用”时,仅使用默认设定的系数组的大小对变换系数进行编码。
可以在参数集数据单元中编码系数组的大小的默认值。例如,当设置最小的变换块大小是8x8时,根据所述配置文件中的参数设置,将4x4或8x8作为系数组的大小的默认值在参数集数据单元中进行编码。可选地,一种编码方法是,对系数组的大小的默认值的编码可以不依赖于任何标志位;可选地,另一种编码方法是,在前述标志位指示“不允许使用多种系数组的大小”的情况下,在参数集数据单元中编码系数组的大小的默认值。
当前述标志位指示“允许使用多种系数组的大小”时,对允许使用的系数组的大小进行编码。
可选地,一种编码方法是,在参数集数据单元中编码最大和最小允许使用的系数组的大小,对其他可允许使用的系数组的大小,可以按照设定的从最大到最小的推导方式(例如按照四叉树方式)进行隐含推导,例如,设置并编码最大和最小允许使用的系数组的大小分别是32x32和4x4,那么根据前述的四叉树方式,参数集数据单元的字段所指示的可允许使用的系数组的大小包括:32x32、16x16、8x8和4x4。第二种编码方法是,在参数集数据单元中编码最大允许使用的系数组的大小和按照划分方式(例如四叉树方式)的最大划分层次,例如,设置并编码最大允许使用的系数组的大小是32x32,设定最多容许的划分层次是3层,那么参数集数据单元的字段所指示的可允许使用的系数组的大小包括:32x32、16x16、8x8和4x4,可替换地,可使用最大和最小允许使用的系数组的大小之间的差值替代最大划分层次,在上述示例中,可将所述最大和最小允许值之间的差值表示为log232–log24=3。第三种编码方法是,在参数集数据单元中编码最小允许使用的系数组的大小和按照划分方式(例如四叉树方式)的最大向上层次,例如,设置并编码最小允许使用的系数组的大小是4x4,设定最多向上层次是3层,那么参数集数据单元的字段所指示的可允许使用的系数组的大小包括:32x32、16x16、8x8和4x4,可替换地,可使用最大和最小允许使用的系数组的大小之间的差值替代最大向上层次,在上述示例中,可将所述最大和最小允许值之间的差值表示为log232–log24=3。
可选地,一种编码方法是,在参数集数据单元中编码最大和最小允许使用的系数组的边长,对其他可允许使用的系数组的大小,可以按照设定的边长从最大到最小的推导方式(例如按照二分方式)进行隐含推导,例如,设置并编码最大和最小的边长分别是16和4,那么参数集数据单元的字段所指示的可允许使用的系数组的可用边长包括16、8和4,对应指示的系数组的大小(以“宽度x高度”的形式表示)包括:16x16、16x8、16x4、8x16、8x8、8x4、4x16、4x8和4x4。第二种编码方法是,在参数集数据单元中编码最大允许使用的系数组的边长和按照划分方式(例如二分方式)的最大划分层次,例如,设置并编码最大允许使用的系数组的边长为16、最大划分层次为2,那么参数集数据单元的字段所指示的可允许使用的系数组的可用边长包括16、8、4,对应指示的系数组的大小包括:16x16、16x8、16x4、8x16、8x8、8x4、4x16、4x8和4x4,可替换地,可使用最大和最小允许使用的系数组的边长之间的差值替代最大划分层次,在上述示例中,可将所述最大和最小允许值之间的差值表示为log216–log24=2。第三种编码方法是,在参数集数据单元中编码最小允许使用的系数组的边长和按照划分方式(例如二分方式)的最大向上层次,例如,设置并编码最小允许使用的系数组的边长为4、最大向上层次为2,那么参数集数据单元的字段所指示的可允许使用的系数组的可用边长包括16、8、4,对应指示的系数组的大小包括:16x16、16x8、16x4、8x16、8x8、8x4、4x16、4x8和4x4,可替换地,可使用最大和最小允许使用的系数组的边长之间的差值替代最大向上层次,在上述示例中,可将所述最大和最小允许值之间的差值表示为log216–log24=2。第四种编码方法是,在参数集数据单元中为可用的边长分别设置标志位,所述标志位用于指示是否允许使用其对应的边长,例如,当可用的边长包括32、16、8和4而允许使用的边长是16、8和4时,在参数集数据单元中将“边长32”对应的标志位设置为“不允许使用”并编码,将“边长16、8和4”对应的3个标志位设置为“允许使用”并编码,那么参数集数据单元的字段所指示的可允许使用的系数组的可用边长包括16、8、4,对应指示的系数组的大小包括:16x16、16x8、16x4、8x16、8x8、8x4、4x16、4x8和4x4。
可选地,一种编码方法是,在参数集数据单元中编码系数组的宽度和高度的最大和最小允许使用的值,对其他可允许使用的系数组的大小,可以按照设定的宽度和高度从最大到最小的推导方式(例如按照二分方式)进行隐含推导,例如,设置并编码系数组的宽度的最大和最小的允许使用值分别是16和4、设置并编码系数组的高度的最大和最小允许使用的值分别是8和4,那么参数集数据单元的字段所指示的可允许使用的系数组的宽度包括16、8和4,指示的可允许使用的系数组的高度包括8和4,对应指示的系数组的大小(以“宽度x高度”的形式表示)包括:16x8、16x4、8x8、8x4、4x8和4x4。第二种编码方法是,在参数集数据单元中编码最大允许使用的系数组的宽度和按照划分方式(例如二分方式)的最大划分层次,编码最大允许使用的系数组的高度和按照划分方式(例如二分方式)的最大划分层次,例如,设置并编码最大允许使用的系数组的宽度为16、最大划分层次为2,设置并编码最大允许使用的系数组的高度为8、最大划分层次为1,那么参数集数据单元的字段所指示的可允许使用的系数组的宽度包括16、8和4,指示的可允许使用的系数组的高度包括8和4,对应指示的系数组的大小(以“宽度x高度”的形式表示)包括:16x8、16x4、8x8、8x4、4x8和4x4,可替换地,可使用最大和最小允许使用的系数组的宽度之间的差值替代最大划分层次,在上述示例中,可将所述最大和最小允许值之间的差值表示为log216–log24=2,可替换地,可使用最大和最小允许使用的系数组的高度之间的差值替代最大划分层次,在上述示例中,可将所述最大和最小允许值之间的差值表示为log28–log24=1。第三种编码方法是,在参数集数据单元中编码最小允许使用的系数组的宽度和按照划分方式(例如二分方式)的最大向上层次,编码最小允许使用的系数组的高度和按照划分方式(例如二分方式)的最大向上层次,例如,设置并编码最小允许使用的系数组的宽度为4、最大向上层次为2,设置并编码最小允许使用的系数组的高度为4、最大向上层次为1,那么参数集数据单元的字段所指示的可允许使用的系数组的宽度包括16、8和4,指示的可允许使用的系数组的高度包括8和4,对应指示的系数组的大小(以“宽度x高度”的形式表示)包括:16x8、16x4、8x8、8x4、4x8和4x4,可替换地,可使用最大和最小允许使用的系数组的宽度之间的差值替代最大向上层次,在上述示例中,可将所述最大和最小允许值之间的差值表示为log216–log24=2,可替换地,可使用最大和最小允许使用的系数组的高度之间的差值替代最大向上层次,在上述示例中,可将所述最大和最小允许值之间的差值表示为log28–log24=1。第四种编码方法是,在参数集数据单元中为可用的宽度和高度分别设置标志位,所述标志位用于指示是否允许使用其对应的宽度和高度,例如,当可用的宽度和高度均包括32、16、8和4,而允许使用的宽度是16、8和4、允许使用的高度是8和4时,在参数集数据单元中将“宽度32”对应的标志位设置为“不允许使用”并编码,将“宽度16、8和4”对应的3个标志位设置为“允许使用”并编码,将“高度32和16”对应的2个标志位设置为“不允许使用”并编码,将“高度8和4”对应的2个标志位设置为“允许使用”并编码,那么参数集数据单元的字段所指示的可允许使用的系数组的宽度包括16、8和4,指示的可允许使用的系数组的高度包括8和4,对应指示的系数组的大小(以“宽度x高度”的形式表示)包括:16x8、16x4、8x8、8x4、4x8和4x4。
可选地,一种编码方法是,在参数集数据单元中为可用的系数组的大小分别设置标志位,所述标志位用于指示是否允许使用其对应的参数组的大小。例如,当可用的系数组的大小包括16x16、16x8、16x4、8x16、8x8、8x4、4x16、4x8和4x4时,在允许使用16x8、16x4、8x8、8x4、4x8和4x4时,在参数集数据单元中将这6种系数组的大小对应的标志位设置为“允许使用”并编码,将其他16x16、8x16和4x16这3种系数组的大小对应的标志位设置为“不允许使用”并编码。
可选地,在参数集数据单元中,可以使用上述的方法分别为使用不同编码模式的编码块设置允许使用的系数组的大小。例如,为帧内模式编码块设置的允许使用的系数组的大小为8x8和4x4并编码、为帧间模式编码块设置的允许使用的系数组的大小为16x16、8x8和4x4并编码,那么,参数集数据单元的字段所指示的对于使用帧内预测模式编码块中的变换块可允许的系数组的大小是8x8和4x4,对于使用帧间预测模式编码块中的变换块可允许的系数组的大小是16x16、8x8和4x4。
可选地,在参数集数据单元中,可以使用上述的方法分别为使用不同变换次数的变换块设置允许使用的系数组的大小。例如,为使用一次变换的变换块设置的允许使用的系数组的大小为8x8和4x4并编码、为使用多次变换的变换块设置的允许使用的系数组的大小为16x16、8x8和4x4并编码,那么,参数集数据单元的字段所指示的对于使用一次变换的变换块可允许的系数组的大小是8x8和4x4,对于使用多次变换的变换块可允许的系数组的大小是16x16、8x8和4x4。
可选地,在参数集数据单元中,可以使用上述的方法分别为使用不同变换方式的变换块设置允许使用的系数组的大小。例如,为使用以DCT为基础设计的变换的变换块设置的允许使用的系数组的大小为8x8和4x4并编码、为使用以DST为基础设计的变换的变换块设置的允许使用的系数组的大小为16x16、8x8和4x4并编码,为使用以KLT为基础设计的变换的变换块设置的允许使用的系数组的大小为32x32、16x16、8x8和4x4并编码,那么,参数集数据单元的字段所指示的对于使用以DCT为基础设计的变换的变换块可允许的系数组的大小是8x8和4x4,对于使用以DST为基础设计的变换的变换块可允许的系数组的大小是16x16、8x8和4x4,对于使用以KLT为基础设计的变换的变换块可允许的系数组的大小是32x32、16x16、8x8和4x4。
可选地,在参数集数据单元中,设置并编码用于切换可允许使用的系数组的大小的控制参数。例如,当使用量化参数作为切换可允许使用的系数组的大小的控制参数时,如以H.265/HEVC标准中量化参数的定义方式,当量化参数大于等于37时,允许使用的系数组的大小是16x16、8x8和4x4;当量化参数取值小于37但大于等于27时,允许使用的系数组的大小是8x8;当量化参数取值小于27时,允许使用的系数组的大小是4x4,使用前述方法在参数集数据单元中设置量化参数的划分区间、以及各区间中允许使用的系数组的大小,并编码。
可选地,将可使用的系数组的大小预先设定在档次/等级/级别(Profile/Tier/Level)中,对于不同的Profile/Tier/Level,设置一种或多种取值的可使用的系数组的大小。例如,对于较低的Level(例如对应于编码640x480及其以下分辨率的视频),使用默认值等于4x4的系数组的大小;对于较高的Level(例如对应于编码720p、1080p、2K等较大分辨率的视频),可使用8x8、4x4两种系数组的大小;对于最高的Level(例如对应于编码4K、8K等超大分辨率的视频),可使用16x16、8x8、4x4三种系数组的大小。在参数集数据单元中,编码Profile/Tier/Level的指示信息。
使用上述方法,的一种可选用的码流组织方法如下,用于允许使用的编码系数组的大小。所述码流组织方法的字段位于一个或多个参数集数据单元中。所述码流组织方法生成的码流所包含的字段如下:
表1.参数集数据单元中的码流组织
表1中各语法元素(Syntax element)的语义(semantics)如下:
log2_min_cg_side_length表示系数组的最小边长。系数组的最小边长等于(1<<log2_min_cg_side_length)。其中,“<<”是算数右移位运算符。log2_min_cg_side_length使用ue(v)的方法进行熵编码。
log2_diff_max_cg_side_length表示系数组的最大边长与最小边长之间的差值。系数组的最大边长等于(1<<(log2_min_cg_side_length+log2_diff_max_cg_side_length))。log2_diff_max_cg_side_length使用ue(v)的方法进行熵编码。
对表1中的参数设置方法如下示例。例如,当配置文件中,仅使用默认大小是4x4的系数组时,将log2_min_cg_side_length的取值设置为2,将log2_diff_max_cg_side_length设置为0,使用ue(v)的方法对两个字段进行编码,将编码比特写入码流。
例如,当配置文件中,使用最小为4x4的系数组、最大为16x16的系数组时,将log2_min_cg_side_length的取值设置为2,将log2_diff_max_cg_side_length的取值设置为2,使用ue(v)的方法对两个字段进行编码,将编码比特写入码流。如前实施方法所述,参数集数据单元的字段所指示的可允许使用的系数组的可用边长包括16、8、4,对应指示的系数组的大小包括:16x16、16x8、16x4、8x16、8x8、8x4、4x16、4x8和4x4。
使用上述方法,的另一种可选用的码流组织方法如下,用于编码使用帧间模式、帧内模式的编码块中变换块的允许使用的系数组的大小。所述码流组织方法的字段位于一个或多个参数集数据单元中。所述码流组织方法生成的码流所包含的字段如下:
表2.参数集数据单元中的码流组织
表2中各语法元素(Syntax element)的语义(semantics)如下:
log2_min_cg_side_length表示系数组的最小边长。系数组的最小边长等于(1<<log2_min_cg_side_length)。其中,“<<”是算数右移位运算符。log2_min_cg_side_length使用ue(v)的方法进行熵编码。
log2_diff_max_inter_cg_side_length表示使用帧间预测模式的编码块中变换块的系数组的最大边长与最小边长之间的差值。系数组的最大边长等于(1<<(log2_min_cg_side_length+log2_diff_max_cg_side_length))。log2_diff_max_cg_side_length使用ue(v)的方法进行熵编码。
log2_diff_max_intra_cg_side_length表示使用帧内预测模式的编码块中变换块的系数组的最大边长与最小边长之间的差值。系数组的最大边长等于(1<<(log2_min_cg_side_length+log2_diff_max_cg_side_length))。log2_diff_max_cg_side_length使用ue(v)的方法进行熵编码。
对表2中的参数设置方法如下示例。例如,当配置文件中,仅使用默认大小是4x4的系数组时,将log2_min_cg_side_length的取值设置为2,将log2_diff_max_inter_cg_side_length和log2_diff_max_intra_cg_side_length的取值均设置为0,使用ue(v)的方法对两个字段进行编码,将编码比特写入码流。这种情况下,对帧间预测模式的编码块和帧内预测模式的编码块使用的系数组的大小均为4x4。
例如,当配置文件中,使用最小为4x4的系数组、最大为16x16的系数组时,将log2_min_cg_side_length的取值设置为2,将log2_diff_max_inter_cg_side_length和log2_diff_max_intra_cg_side_length的取值均设置为2,使用ue(v)的方法对三个字段进行编码,将编码比特写入码流。如前实施方法所述,参数集数据单元的字段所指示的可允许使用的系数组的可用边长包括16、8、4,对应指示的系数组的大小包括:16x16、16x8、16x4、8x16、8x8、8x4、4x16、4x8和4x4。在这种情况下,对帧间预测模式的编码块和帧内预测模式的编码块中的变换块使用相同的允许使用的系数组。
例如,当配置文件中,使用最小为4x4的系数组、帧间预测模式的编码块允许使用最大为16x16的系数组、帧内预测模式的编码块允许使用最大为8x8的系数组时,将log2_min_cg_side_length的取值设置为2,将log2_diff_max_inter_cg_side_length的取值设置为2,将log2_diff_max_intra_cg_side_length的取值均设置为1,使用ue(v)的方法对三个字段进行编码,将编码比特写入码流。如前实施方法所述,参数集数据单元的字段所指示的帧间模式的编码块可允许使用的系数组的可用边长包括16、8和4,对应指示的系数组的大小包括:16x16、16x8、16x4、8x16、8x8、8x4、4x16、4x8和4x4,参数集数据单元字段所指示的帧内预测模式的编码块可允许使用的系数组的可用边长包括8和4,对应指示的系数组的大小包括:8x8、8x4、4x8和4x4。在这种情况下,对帧间预测模式的编码块和帧内预测模式的编码块中的变换块使用不完全相同的允许使用的系数组。
步骤S302,在分片头信息数据单元中编码系数组的大小。对系数组的大小的设置参数在分片头信息数据单元中进行编码。
在分片头信息数据单元中编码所述分片引用(refer to)的参数集的参数集索引序号(parameter set identifier)。对所述分片进行编码的过程中,可以使用所引用的参数集中设定的可使用的系数组的大小。
可选地,特别地,可以在分片头信息中编码可使用的系数组的大小的信息来对应覆盖所述分片引用的参数集中的对应参数设置。使用的编码方法与步骤S301中除通过编码Profile/Tier/Level指示系数组的大小的方法外的其他在参数集中编码系数组的大小的方法相同,但编码比特写入分片头信息数据单元的码流。
可选地,当所述分片引用的参数集中没有包含系数组的大小相关参数时,可以在分片头信息中编码可使用的系数组的大小。使用的编码方法与步骤S301中除通过编码Profile/Tier/Level指示系数组的大小的方法外的其他在参数集中编码系数组的大小的方法相同,但编码比特写入分片头信息数据单元的码流。
步骤S303,在块层数据单元中编码系数组的大小。对系数组的大小的参数在块层数据单元中进行编码。
在块层数据单元中,编码用于指示编码块中变换块使用的系数组的大小的参数。例如,一种编码方法是,在块层数据单元中编码所使用的系数组的大小,如系数组的宽度和高度。例如,一种编码方法是,在块层数据单元中编码一个索引取值,该索引取值对应于一个系数组的大小。例如,一种编码方法是,在块层数据单元中编码一个或多个标志信息,所述标志信息用于指示所述编码块中的变换块所使用的系数组的大小与所述标志信息指示的已编码的一个变换块相同,所述已编码的变换块可以是与所述变换块位于同一个图像中的已编码变换块(如上相邻块、左相邻块等),也可以是所述变换块不在同一个图像中的已编码块(即时域相邻块),如在块层数据单元中编码“与上相邻变换块的系数组的大小相同”的标志信息。
图4是根据本发明实施例的一种编码扫描方式参数的数据处理流程图。
可选地,所述处理流程的输出是对扫描方式相关参数进行编码后的码流。
步骤S401,在参数集数据单元中编码扫描方式参数。对扫描方式参数在参数集数据单元中进行编码。
在参数集数据单元中编码允许使用的扫描方式的指示信息。其中,扫描方式可以是预设的固定路径的扫描方式,也可以是非固定路径的扫描方式。当使用非固定路径的扫描方式时,可选地,在参数集数据单元中编码变换系数在扫描前后的坐标对应关系。例如,变换块中坐标位置等于(m,n)的变换系数(或者是索引序号等于m×nTbS+n,其中nTbS是变换块的宽度)对应的扫描后序号位置等于k。
可选地,将可使用的系数组的大小预先设定在档次/等级/级别(Profile/Tier/Level)中,对于不同的Profile/Tier/Level,设置一种或多种可使用的扫描方式。例如,对于较低的Level(例如对应于编码640x480及其以下分辨率的视频),使用默认的对角右上、水平和垂直扫描方式;对于较高的Level(例如对应于编码720p、1080p、2K等较大分辨率的视频),除前述对较低Level使用的默认的三种扫描方式外,还可使用Zig-zag扫描方式、其他对角扫描方式(例如对角右下、对角左下等);对于最高的Level(例如对应于编码4K、8K等超大分辨率的视频),除前述的扫描方式外,还可以使用非固定扫描路径的扫描方式。在参数集数据单元中,编码Profile/Tier/Level的指示信息。对于非固定路径扫描方式,在参数集数据单元中,编码变换系数在扫描前后的坐标对应关系。例如,变换块中坐标位置等于(m,n)的变换系数(或者是索引序号等于m×nTbS+n,其中nTbS是变换块的宽度)对应的扫描后序号位置等于k。
步骤S402,在分片头信息数据单元中编码扫描方式参数。对扫描方式参数在分片头信息数据单元中进行编码。
在分片头信息数据单元中编码所述分片引用(refer to)的参数集的参数集索引序号(parameter set identifier)。对所述分片进行编码的过程中,可以使用所引用的参数集中设定的可使用的扫描方式。
可选地,特别地,可以在分片头信息中编码可使用的扫描方式参数来对应覆盖所述分片引用的参数集中的对应参数设置。使用的编码方法与步骤S401中除通过编码Profile/Tier/Level指示扫描方式的方法外的其他在参数集中编码扫描方式参数的方法相同,但编码比特写入分片头信息数据单元的码流。
可选地,当所述分片引用的参数集中没有包含扫描方式参数时,可以在分片头信息中编码可使用的扫描方式参数。使用的编码方法与步骤S401中除通过编码Profile/Tier/Level指示扫描方式的方法外的其他在参数集中在参数集中编码扫描方式参数的方法相同,但编码比特写入分片头信息数据单元的码流。
可选地,在分片头信息数据单元中编码变换系数在扫描前后的坐标对应关系。例如,变换块中坐标位置等于(m,n)的变换系数(或者是索引序号等于m×nTbS+n,其中nTbS是变换块的宽度)对应的扫描后序号位置等于k。
步骤S403,在块层数据单元中编码扫描方式参数。对扫描方式参数在块层数据单元中进行编码。
在块层数据单元中,编码用于指示编码块中变换块使用的扫描方式参数。例如,一种编码方法是,在块层数据单元中编码一个索引取值,该索引取值对应于一个扫描方式。例如,一种编码方法是,在块层数据单元中编码变换系数在扫描前后的坐标对应关系。例如,变换块中坐标位置等于(m,n)的变换系数(或者是索引序号等于m×nTbS+n,其中nTbS是变换块的宽度)对应的扫描后序号位置等于k。例如,一种编码方法是,在块层数据单元中编码一个或多个标志信息,所述标志信息用于指示所述编码块中的变换块所使用的扫描方式与所述标志信息指示的已编码的一个变换块相同,所述已编码的变换块可以是与所述变换块位于同一个图像中的已编码变换块(如上相邻块、左相邻块等),也可以是所述变换块不在同一个图像中的已编码块(即时域相邻块),如在块层数据单元中编码“与上相邻变换块的扫描方式相同”的标志信息。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
实施例2
在本实施例中提供了一种运行于上述移动终端的图像的解码方法,图5是根据本发明实施例的一种图像的解码的流程图,如图5所示,该流程包括如下步骤:
步骤S502,解析码流,确定解码块的预测值;
步骤S504,解析所述码流,确定所述解码块中变换系数的扫描方式、系数组的大小和变换系数相关的语法元素的取值;
步骤S506,:根据所述扫描方式和所述系数组的大小,对所述解码块中的系数组进行处理,将所述语法元素转换为所述系数组中的变换系数;
步骤S508,对所述变换系数进行处理,得到变换系数的恢复值;
步骤S510,对所述变换系数的恢复值进行一次或多次变换,得到所述解码块的预测差值;
步骤S512,使用所述预测值和所述预测差确定所述解码块的恢复值。
可选地,解析所述码流,确定所述解码块的预测值,包括以下方法的至少之一:解析所述码流,获取所述解码块的帧间预测参数;根据所述帧间预测参数,将一个或者多个已解码的图像作为参考图像,确定所述解码块的预测值。或,解析所述码流,获取所述解码块的帧内预测参数;根据所述帧内预测参数,将所述解码块所在的图像中的已解码部分作为参考,确定所述解码块的预测值。
可选地,解析所述码流,确定所述解码块中变换系数的系数组的大小,包括:解析所述码流,从所述码流中的数据单元获取第一系数组参数,根据所述第一系数组参数确定所述系数组的大小;其中,所述码流中的数据单元包含以下至少之一:一个或多个参数集,分片头,块层数据单元。
可选地,根据所述第一系数组参数确定所述系数组的大小,包括:使用所述第一系数组参数设置所述系数组的大小。
可选地,根据所述第一系数组参数确定所述系数组的大小,包括:所述第一系数组参数指示了所述解码块的相邻已解码块,使用所述相邻已解码块的系数组的大小设置所述系数组的大小。
可选地,根据所述第一系数组参数确定所述系数组的大小,包括:根据所述第一系数组参数从系数组的大小的候选值中确定所述解码块的变换系数的系数组的大小。
可选地,所述第一系数组参数包含索引序号,使用所述索引序号在所述候选值中对应的系数组的大小设置所述系数组的大小。
可选地,所述第一系数组参数包含标志位,使用所述标志位在所述候选值中对应的系数组的大小设置所述系数组的大小。
可选地,所述系数组的大小的候选值是一个或多个固定数值。
可选地,所述第一系数组参数中包含标识参数,使用所述标识参数配置所述系数组的大小的候选值。
可选地,所述标识参数包括以下至少之一:系数组的大小,系统组的边长,系统组的宽度和高度。
可选地,使用以下一种或多种方法,使用所述标识参数配置所述系数组的大小的候选值,包括:获得所述标识参数的最大值和最小值,按照预设的划分方式确定所述标识参数除所述最大值和最小值之外的取值,使用所述标识参数的取值设置所述候选值;获得所述标识参数的最大值和所述系数组的最大划分层次,按照所述预设的划分方式确定所述标识参数的最大值之外的取值,使用所述标识参数的取值设置所述候选值;获得所述标识参数的最大值和所述系数组的大小的最大值与最小值之间的差值,按照所述预设的划分方式确定所述标识参数的最大值之外的取值,使用所述标识参数的取值设置所述候选值;获得所述标识参数的最小值和所述系数组的最大向上划分层次,按照所述预设的划分方式确定所述标识参数的最小值之外的取值,使用所述标识参数的取值设置所述候选值;获得所述标识参数的最小值和所述系数组的大小的最大值与最小值之间的差值,按照所述预设的划分方式确定所述标识参数的最小值之外的取值,使用所述标识参数的取值设置所述候选值。
可选地,所述预设的划分方式包括以下至少之一:四分式划分,三分式划分,二分式划分。
可选地,使用所述标识参数配置所述系数组的大小的候选值,包括:使用所述标识参数的默认值设置所述候选值。
可选地,使用所述标识参数配置所述系数组的大小的候选值,包括:所述标识参数是一个或多个指示对应的系数组的大小是否包含在所述候选值中的标志位,根据所述标识参数设置所述候选值中包含的系数组的大小。
可选地,使用所述标识参数配置所述系数组的大小的候选值,包括:所述标识参数指示预设的Profile/Tier/Level对应的一个或多个系数组的大小,根据所述标识参数设置所述候选值中包含的系数组的大小。
可选地,根据所述第一系数组参数确定所述系数组的大小,包括:所述第一参数组参数中包含所述解码块的第一解码参数,根据所述解码块的第一解码参数,将所述系数组的大小设置为所述第一解码参数对应的系数组的大小,其中,所述第一解码参数至少包括以下其中之一:所述解码块中包含的变换块的大小、所述解码块的预测模式、所述解码块中包含的变换块使用的变换类型、量化参数。
可选地,所述将所述系数组的大小设置为所述第一解码参数对应的系数组的大小,包括:当所述解码块中包含的变换块的大小等于第一预设值时,将所述系数组的大小设置为所述第一预设值对应的系数组的大小。
可选地,根据所述第一参数组参数,获得与所述第一预设值相对应的系数组的大小。
可选地,所述将所述系数组的大小设置为所述第一解码参数对应的系数组的大小,包括:当所述解码块的预测模式等于第一预设模式时,将所述系数组的大小设置为所述第一预设模式对应的系数组的大小。
可选地,根据所述第一参数组参数,获得与所述第一预设模式相对应的系数组的大小。
可选地,所述将所述系数组的大小设置为所述第一解码参数对应的系数组的大小,包括:当所述解码块中包含的变换块使用的变换类型等于第一变换类型时,将所述系数组的大小设置为所述第一变换类型对应的系数组的大小。
可选地,根据所述第一参数组参数,获得与所述第一变换类型相对应的系数组的大小。
可选地,所述将所述系数组的大小设置为所述第一解码参数对应的系数组的大小,包括:当所述量化参数的取值等于第二预设值时,将所述系数组的大小设置为所述第二预设值对应的系数组的大小;或者,当所述量化参数的取值在第一预设取值范围内时,将所述系数组的大小设置为所述第一预设取值范围对应的系数组的大小。
可选地,根据所述第一参数组参数,获得与所述第二预设值相对应的系数组的大小。或者,根据所述第一参数组参数,获得与所述第一预设取值范围相对应的系数组的大小。
可选地,所述对所述码流进行解析,确定所述变换系数的扫描方式,包括:解析所述码流中的数据单元获取第一扫描方式参数,根据所述第一扫描方式参数确定所述变换系数的扫描方式;其中,所述扫描方式为对所述变换系数的二维矩阵中元素的处理顺序;所述码流中的数据单元包含以下至少之一:一个或多个参数集,分片头,块层数据单元。
可选地,解析所述码流中的数据单元获取第一扫描方式参数,根据所述第一扫描方式参数确定所述变换系数的扫描方式,包括:使用所述第一扫描方式参数指示的扫描方式作为所述变换系数的扫描方式。
可选地,使用所述第一扫描方式参数指示的扫描方式作为所述变换系数的扫描方式,包括:所述第一扫描方式参数指示了所述解码块的相邻已解码块,使用所述相邻已解码块的扫描方式设置所述变换系数的扫描方式。
可选地,使用所述第一扫描方式参数指示的扫描方式作为所述变换系数的扫描方式,还包括:根据所述第一扫描方式参数从候选扫描方式中确定所述变换系数的扫描方式。
可选地,所述第一扫描方式参数包含扫描方式索引序号,使用所述扫描方式索引序号在所述候选扫描方式中对应的扫描方式设置所述变换系数的扫描方式。
可选地,还包括:所述第一扫描方式参数包含扫描方式指示标志位,使用所述扫描方式指示标志位在所述候选扫描方式中对应的扫描方式设置所述变换系数的扫描方式。
可选地,所述候选扫描方式包括至少之一:一个或多个固定扫描方式;使用所述第一扫描方式参数配置所述候选扫描方式。
可选地,使用所述第一扫描方式参数配置所述候选扫描方式,包括:所述第一扫描方式参数包含默认扫描方式,使用所述默认扫描方式设置所述候选扫描方式。
可选地,使用所述第一扫描方式参数配置所述候选扫描方式,包括:所述第一候选扫描方式参数包含一个或多个候选扫描方式指示标志位,使用所述候选扫描方式指示标志位对应的扫描方式设置所述候选扫描方式。
可选地,使用所述第一扫描方式参数配置所述候选扫描方式,包括:使用所述第一扫描方式参数指示预设的Profile/Tier/Level对应的一个或多个扫描方式设置所述候选扫描方式。
可选地,使用所述第一扫描方式参数配置所述候选扫描方式,包括:使用所述第一扫描方式参数指示的所述变换系数的位置与扫描后的变换系数的位置之间的对应关系设置所述候选扫描方式。
可选地,解析所述码流中的数据单元获取第一扫描方式参数,根据所述第一扫描方式参数确定所述变换系数的扫描方式;包括:所述第一扫描方式参数包含所述解码块的第二解码参数;根据所述第二解码参数,确定所述变换系数的扫描方式,其中所述第二解码参数至少包括以下其中之一:所述解码块中包含的变换块的大小、所述解码块的预测模式、所述解码块中包含的变换块使用的变换类型、所述解码块的大小。
可选地,根据所述第二解码参数,将所述变换系数的扫描方式设置为所述第二解码参数对应的扫描方式,包括:当所述解码块中包含的变换块的大小等于第三预设值时,将所述变换系数的扫描方式设置为所述第三预设值对应的扫描方式。
可选地,根据所述第一参数组参数,获得与所述第三预设值相对应的扫描方式。
可选地,根据所述第二解码参数,将所述变换系数的扫描方式设置为所述第二解码参数对应的扫描方式,包括:当所述解码块的预测模式等于第二预设模式时,将所述变换系数的扫描方式设置为所述第二预设模式对应的扫描方式。
可选地,根据所述第一参数组参数,获得与所述第二预设模式相对应的扫描方式。
可选地,根据所述第二解码参数,将所述变换系数的扫描方式设置为所述第二解码参数对应的扫描方式,包括:当所述解码块中包含的变换块使用的变换类型等于第二变换类型时,将所述变换系数的扫描方式设置为所述第二变换类型对应的扫描方式。
可选地,根据所述第一参数组参数,获得与所述第二变换类型相对应的扫描方式。
可选地,根据所述第二解码参数,将所述变换系数的扫描方式设置为所述第二解码参数对应的扫描方式,包括:当所述解码块的大小等于第四预设值时,将所述变换系数的扫描方式设置为所述第四预设值对应的扫描方式。
可选地,根据所述第一参数组参数,获得与第四预设值相对应的扫描方式。
可选地,解析所述码流,确定变换系数相关的语法元素的取值,包括:所述语法元素包括以下至少之一:指示非0系数起始位置的语法元素;指示系数组中包含非0系数的语法元素;指示系数组中非0系数位置的语法元素;指示系数组中非0系数取值的语法元素。
可选地,所述对所述变换系数进行处理,得到变换系数的恢复值,包括:当判断对所述变换系数进行伸缩Scaling处理时,对所述变换数据进行伸缩处理,得到所述变换系数的恢复值;当判断不对所述变换数据进行伸缩处理时,使用所述变换系数设置所述变换系数的恢复值。
可选地,所述对所述变换系数进行处理之前,所述方法还包括:解析所述码流,获取用于构造所述解码块的预测差值的恢复值的第三参数;根据所述第三参数,判断是否对所述变换系数进行伸缩处理。
可选地,使用所述预测值和所述预测差值确定所述解码块的恢复值,所述方法还包括:对所述预测值和所述预测差值的和值进行环路滤波处理。
可选地,对输入码流进行解析(Parsing),使用标准中规定的熵解码方法和二值化方法,将码流中各字段对应的一个或多个“0”、“1”比特串转换成对应参数的取值。根据所述参数的取值,推导得到其他参数的取值,例如,当码流中的标志位取值指示解码块是图像中的第一个解码块时,将用于指示所述解码块所在分片中第一个解码块在图像中的地址参数设置为0。
可选地,用于构造解码块预测差恢复值的参数是可以用M x N二维矩阵形式表示的变换系数,其中,M和N是正整数,M和N可以相等,M和N也可以不相等。所述二维矩阵可以对应于一个变换块,以下叙述中使用“变换块”指代所述以M x N二维矩阵形式表示的变换系数。这里,当解析码流获得指示信息指示对所述变换块进行伸缩(Scaling)操作的情况下,恢复的所述变换系数对应于实施例1中编码器中量化过程中输出的量化值(即“Level”值);反之,当解析码流获得指示信息指示不对所述变换块进行伸缩操作的情况下,恢复的所述变换系数对应于前述编码器对所述预测差进行变换后得到的数据。
可选地,确定系数组的大小,系数组包含W x H个变换系数,其中,W和H是正整数,W和H可以相等,W和H也可以不相等,并且W≤M、H≤N。一个或多个系数组组成变换块
可选地,使用的系数组的大小可以是预设的固定值,也可以通过解析码流中的以下一个或多个数据单元获得可使用的系数组的大小,包括:一个或多个参数集(ParameterSet)、分片头(Slice Header)、编码单元(Coding Unit)。
可选地,可以使用隐含推导的方式确定系数组的大小。可以根据解析码流获得的所述变换块所在解码块的编码模式(Coding Mode)、变换块大小、量化参数、变换块使用的变换类型等一个或多个参数,确定所述变换块的系数组的大小。下述示例中,与前述编码器实施例向对应,设置为可以使用4x4和8x8两种系数组的大小。所述方法可以扩展到使用更多系数组的大小的情况。可使用的系数组的大小可以是通过解析码流获得的参数,也可以是固定配置的值。可以使用下述示例中的一种方法或联合使用多种方法确定系数组的大小。
例如,设定当解码块中变换块的大小大于16x16时将系数组的大小设置为8x8,设定当解码块中变换块的大小小于或等于16x16时将系数组的大小设置为4x4。对于非正方形的矩形变换块,可以根据变换块的高度和宽度来设定对应使用的系数组的大小,例如,当变换块的高度和宽度中的较小值大于16时,使用高度和宽度中的较小值等于8的矩形系数组,反之,使用高度和宽度中的较小值等于4的矩形系数组。
例如,设定帧间预测模式的解码块中的变换块对应使用的系数组的大小是8x8(设定8x8和4x4的变换块使用的系数组的大小是4x4),设定帧内预测模式的解码块中的变换块对应使用的系数组的大小是8x8(设定16x16、8x8和4x4的变换块使用的系数组的大小是4x4)。
例如,根据解码块的量化参数确定其包含的变换块使用的系数组的大小的取值。以H.265/HEVC标准中量化参数的设置方式为例,一种实施方式时,当量化参数的取值大于或等于37时,将系数组的大小设置为8x8(设定8x8和4x4的变换块使用的系数组的大小是4x4);反之,将系数组的大小设置为4x4。
例如,对于使用基于离散余弦变换(Discrete Cosine Transform,DCT)设计的变换的解码块,将系数组的大小设置为8x8(设定8x8和4x4的变换块使用的系数组的大小是4x4)。对于使用基于离散正弦变换(Discrete Sine Transform,DST)设计的变换的解码块,将系数组的大小设置为4x4。对于使用基于卡胡南-洛夫变换(Karhunen-Loève Transform,KLT)设计的变换的解码块,将系数组的大小设置为8x8(设定8x8和4x4的变换块使用的系数组的大小是4x4)。对于使用二次或多次变换的解码块,将系数组的大小设置为8x8(设定8x8和4x4的变换块使用的系数组的大小是4x4)。
可选地,解析所述码流中的以下一个或多个数据单元,获得用于指示所述变换块的系数组的大小的标识信息,包括:一个或多个参数集、分片头、编码单元、变换块数据单元。
可选地,确定变换系数的扫描方式。在实施例1中前述编码器的处理流程中,所述扫描方式指示了对变换系数二维矩阵中元素的处理顺序,通常情况下,该处理顺序也对应于前述编码器将变换系数写入码流的顺序。因此,对应地,在的处理流程中,与其他相关参数(例如非0系数标志位等)相结合,按照通过解析码流获得码流中变换系数的先后顺序,所述扫描方式指示了各变换系数在变换块中的位置。例如,按照扫描顺序,前述编码器的编码器对变换块中坐标位置是(m,n)的变换系数以第k个顺序写入码流在从码流中获得第k个变换系数后,将该变换系数设置为变换块中坐标位置是(m,n)的元素。通常情况下,在前述编码器的处理流程中,按照扫描方式所指示顺序(正序或逆序)依次读取一个M行N列的二维矩阵中的元素,可以等价得到一个1行M x N列(或者M x N行1列)的一维矩阵。对应地,按照扫描方式指示的顺序(正序或逆序),可以将解码码流得到的所述1行M x N列(或者M x N行1列)的一维矩阵,重新排列成与编码器的输入矩阵一致的M行N列的二维矩阵。与前述编码器相同,可以使用预设的一种或多种变换系数矩阵的扫描方式,例如,“之”(Zia-zag)扫描顺序、水平扫描(Horizontal scan)顺序、垂直扫描(Vertical scan)、对角扫描(Diagonalscan)顺序(例如对角右上扫描(Diagonal up-right scan)顺序,等。
可选地,可以使用隐含推导的方式确定所述变换块的变换系数矩阵的扫描方式。可以根据解析码流获得的所述变换块所在解码块的编码模式(Coding Mode)、解码块大小、变换块大小等一个或多个参数,确定所述变换块的扫描方式。
例如,设定帧间预测模式对应使用对角右上扫描方式,设定解码块的大小大于8x8时的帧内预测模式对应使用对角右上扫描方式,设定解码块大小小于等于8x8时的帧内预测模式对应使用帧内预测方向指示方向的扫描方式、直流(DC)模式和平面(Planar)模式等不使用方向性预测的模式使用对角右上扫描方式。可选地,可以将帧内预测方向进行分类,各类对应不同的扫描方式,例如,垂直方向以及垂直方向上左右偏移指定角度的帧内预测方向对应使用垂直扫描方式,水平方向以及水平方向上上下偏移指定角度的帧内预测方向对应使用水平扫描方式,还可以包括45度角度以及角度方向上上下偏移指定角度的帧内预测方向使用对角扫描方式。
可选地,解析所述码流中的以下一个或多个数据单元,获得指示变换块使用的扫描方式的信息,包括:一个或多个参数集、分片头、编码单元、变换块数据单元。
可选地,解析所述码流中的以下一个或多个数据单元,获得扫描方式的信息,包括:一个或多个参数集、分片头、编码单元、变换块数据单元。根据所述扫描方式信息,确定所述变换块的扫描方式。所述扫描方式信息的一种表示方法是:变换块中变换系数的位置与扫描后的位置之间的对应关系表,需要说明的是,在前述编码器中,该对应关系表指示的是变换块中坐标位置等于(m,n)的变换系数(或者是索引序号等于m×nTbS+n,其中nTbS是变换块的宽度)对应的扫描后序号位置等于k。;相对应地,在本实施例中,该对应关系表指示的等价信息是解析码流获得的位置序号等于k的变换系数在变换块中的位置坐标是(m,n)(或者是索引序号等于m×nTbS+n,其中nTbS是变换块的宽度)。特别说明的,与所述方法相比较地,在前述方法中,确定的各种扫描方式均是按照固定的顺序处理变换块中的系数组、系数组中的变换系数,不同的扫描方式定义不同的扫描顺序。
可选地,解析变换块中的变换系数。根据变换块的大小和系数组的大小,确定变换块包含的各系数组的位置。所述系数组的位置可以表示为系数组中左上角系数在变换块(或解码图像)中的位置坐标。根据所述扫描方式指示的顺序,依次对系数组进行处理。对于一个系数组,根据所述扫描方式指示的顺序,将系数组中对应元素的取值设置为解析码流获得的变换系数取值。特别地,当解析码流得到指示一个系数组中包含的变换系数均为0(或等价于系数组中不包含非0变换系数)时,解析单元将该系数组中包含的系数全部设置为0。这里,对变换块中系数组的处理顺序和对系数组中变换系数的处理顺序可以是相同的,也可以是不同的。
可选地,所述还用于根据所述用于构造解码块预测值的参数构造所述解码块的预测值。所述通过当前解码图像中已经部分恢复的部分解码图像缓冲区中存储的已解码图像。
当所述参数指示所述解码块使用帧间预测时,所述构造一个或多个参考图像列表,每个参考图像列表中包含一个或多个参考图像,参考图像来包括:参考图像列表指示、参考图像索引、运动矢量,在参考图像中确定所述解码块的一个或多个匹配块,将输出的帧间预测值作为所述解码块的预测值。
可选地,使用解码块所在的当前解码图像作为参考图像,获得所述解码块的帧内预测值。这里,帧内预测指的是仅使用解码块所在图像中的数据作为参考得到的预测值。在这种情况下,使用的是当前解码图像中已经部分恢复的部分。
可选地,当所述参数指示所述解码块使用帧内预测时,通过与实施一类似的方法确定所述解码块的相邻已恢复像素点,用做帧内预测的的参考像素点。根据所述用于构造解码块预测值的参数,确定帧内预测模式,使用与实施例一相同的方法计算所述解码块的帧内预测值。特殊地,所述用于构造解码块预测值的参数指示了所述解码块的匹配块在当前部分解码图像中的位置时,将匹配块作为所述解码块的帧内预测值。将确定的帧内预测值作为所述解码块的预测值。
可选地,将所述用于构造解码块预测差恢复值的参数中QP和系数的量化值(即“Level”值)作为缩放操作(Scaling)的输入。通过使用量化参数QP,对所述系数的量化值进行缩放操作,得到变换系数的恢复值。因此,中的反量化单元也可以称为缩放单元。
可选地,将获取到的所述变换系数的恢复值、用于构造解码块预测差恢复值的参数中的变换参数。需要说明的是,当所述根据输出的用于构造解码块预测差恢复值的参数判断对当前解码块不使用缩放操作时,所述将输出的变换系数用于反变换。
基于与实施例一类似的方法,算得到所述解码块的预测差的恢复值。这里需要说明的是,这里所述的“反变换”是相对于编码器中的“变换”来说的。在视频编码标准中,规定变换方法,即将变换系数的恢复值转换为预测差的恢复值所使用的变换方法。
可选地,计算所述解码块的恢复值,并将所述解码块的恢复值存储至图像缓冲区。所述图像缓冲区可以是对图像解码过程中单独分配的一段存储空间。
获取滤波器参数。所述滤波器参数包括所使用的滤波器的指示信息、滤波器系数、滤波器的控制参数。通过使用滤波器结合所述滤波器参数对所述图像缓冲区中的数据进行滤波处理,得到所述图像的解码图像。需要指出的是本实施例中的滤波器可以是一种或多种滤波器级联构成。例如,在H.265/HEVC标准中,由去方块滤波(Deblocking)和采样值自适应加性偏移量补偿滤波器(Sample Adaptive Offset,SAO)两个滤波器级联构成。也可以包括神经网络滤波器。可选地,对所述图像缓冲区中的数据进行滤波的操作可以在图像层进行操作,即等待所述图像中的全部解码块的恢复值均写入了所述图像缓冲区后,对图像缓冲区中的数据进行滤波处理。可选地,对所述图像缓冲区中的数据进行滤波的操作可以在块层进行操作,即当某个解码块的恢复数据不再用做后续解码块的参考数据时,对该解码块的恢复数据进行滤波处理。
图6是根据本发明实施例的一种解析系数组的大小的数据处理流程图。如图6所示,
步骤S601,解析参数集数据单元中的系数组的大小。解析数据流中参数集数据单元对应的码流,获得解码过程中可使用的系数组的大小。
可选地,所述参数集数据单元指的是用于携载适用于整个序列的参数数据的参数集数据单元,例如,H.265/HEVC标准中的视频参数集(Video Parameter Set,VPS)、序列参数集(Sequence Parameter Set,SPS)。所述参数集数据单元还可以包括用于携载适用于图像的参数数据的参数集数据单元,例如,适配参数集(Adaptive Parameter Set,APS)、H.265/HEVC标准中的图像参数集(Picture Parameter Set,PPS)。特别地,当APS或PPS中的参数对整个序列中的每个图像都保持不变,即APS或PPS中的参数适用于整个序列中的每个图像时,这种情况下的APS或PPS相当于携载了适用于整个序列的参数数据的参数集数据单元。可选地,特别地,可以根据解析数据流中的码流获得的指示信息、或采用默认设置的方法,使用适用于图像的参数集数据单元中的数据覆盖适用于序列的参数集数据单元中的对应数据。
可选地,解析数据流中参数集数据单元的码流,在参数集数据单元中获得指示是否允许使用多种系数组的大小的标志位。当该标志位指示“允许使用”时,对解码块进行解码的过程中,可以从多于一种的候选系数组的大小中确定用于解码所述解码块变换系数的系数组的大小。当该标志为指示“不允许使用”时,仅使用默认设定的系数组的大小对变换系数进行解码。
可选地,解析数据流中参数集数据单元的码流,可以在参数集数据单元中获得系数组的大小的默认值。获得用于指示系数组的大小的默认值的参数,所述参数可以是直接指示系数组的大小的参数,也可以是用于指示对应的系数组的大小是否是系数组的大小的默认值的标志位。可选地,在已获得的标志位指示“不允许使用多种系数组的大小”的情况下,继续解析该标志位之后的字段,获得系数组的大小的默认值。
可选地,当前述标志位指示“允许使用多种系数组的大小时,对允许使用的系数组的大小进行解析。
可选地,一种解析方法是,解析参数集数据单元获取最大和最小允许使用的系数组的大小,对其他可允许使用的系数组的大小,可以按照设定的从最大到最小的推导方式(例如按照四叉树方式)进行隐含推导,例如,解析并获得最大和最小允许使用的系数组的大小分别是32x32和4x4,那么根据前述的四叉树方式,参数集数据单元的字段所指示的可允许使用的系数组的大小包括:32x32、16x16、8x8和4x4。第二种解析方法是,解析参数集数据单元获取最大允许使用的系数组的大小和按照划分方式(例如四叉树方式)的最大划分层次,例如,解析并获得最大允许使用的系数组的大小是32x32,解析并获得最多容许的划分层次是3层,那么参数集数据单元的字段所指示的可允许使用的系数组的大小包括:32x32、16x16、8x8和4x4,可替换地,最大和最小允许使用的系数组的大小之间的差值也可以以最大划分层次出现在码流中,在上述示例中,解析获得的所述最大和最小允许值之间的差值等于3时,将最小允许使用的系数组的大小设置为4x4(即2(log232-3)=4)。第三种解析方法是,解析参数集数据单元获取最小允许使用的系数组的大小和按照划分方式(例如四叉树方式)的最大向上层次,例如,解析并获取最小允许使用的系数组的大小是4x4,解析并获取最大向上层次是3层,那么参数集数据单元的字段所指示的可允许使用的系数组的大小包括:32x32、16x16、8x8和4x4,可替换地,解析获得最大和最小允许使用的系数组的大小之间的差值等于3,将最大允许使用的系数组的大小设置为32x32(即2(log24+3)=32)。
可选地,一种解析方法是,解析参数集数据单元获取最大和最小允许使用的系数组的边长,对其他可允许使用的系数组的大小,可以按照设定的边长从最大到最小的推导方式(例如按照二分方式)进行隐含推导,例如,解析并获取最大和最小的边长分别是16和4,那么参数集数据单元的字段所指示的可允许使用的系数组的可用边长包括16、8和4,对应指示的系数组的大小(以“宽度x高度”的形式表示)包括:16x16、16x8、16x4、8x16、8x8、8x4、4x16、4x8和4x4。第二种解析方法是,解析参数集数据单元获取最大允许使用的系数组的边长和按照划分方式(例如二分方式)的最大划分层次,例如,解析并获取最大允许使用的系数组的边长为16、最大划分层次为2,那么参数集数据单元的字段所指示的可允许使用的系数组的可用边长包括16、8和4,对应指示的系数组的大小包括:16x16、16x8、16x4、8x16、8x8、8x4、4x16、4x8和4x4,可替换地,最大和最小允许使用的系数组的边长之间的差值也可以以最大划分层次出现在码流中,在上述示例中,解析获得的所述最大和最小允许值之间的差值等于2时,将最小允许使用的系数组的大小设置为4x4(即2(log216-2)=4)。第三种解析方法是,解析参数集数据单元获取最小允许使用的系数组的边长和按照划分方式(例如二分方式)的最大向上层次,例如,解析并获取最小允许使用的系数组的边长为4、最大向上层次为2,那么参数集数据单元的字段所指示的可允许使用的系数组的可用边长包括16、8和4,对应指示的系数组的大小包括:16x16、16x8、16x4、8x16、8x8、8x4、4x16、4x8和4x4,可替换地,最大和最小允许使用的系数组的边长之间的差值也可以以最大向上层次出现在码流中,在上述示例中,解析获得的所述最大和最小允许值之间的差值等于2时,将最大允许使用的系数组的大小设置为16x16(即2(log24+2)=16)。第四种解析方法是,解析参数集数据单元获取对应于可用的边长的标志位,所述标志位用于指示是否允许使用其对应的边长,例如,当的可用的边长包括32、16、8和4时,解析参数集数据单元获得“边长32”对应的标志位指示“不允许使用”、“边长16、8和4”对应的3个标志位指示“允许使用”,那么参数集数据单元的字段所指示的可允许使用的系数组的可用边长包括16、8、4,对应指示的系数组的大小包括:16x16、16x8、16x4、8x16、8x8、8x4、4x16、4x8和4x4。
可选地,一种解析方法是,解析参数集数据单元获取系数组的宽度和高度的最大和最小允许使用的值,对其他可允许使用的系数组的大小,可以按照设定的宽度和高度从最大到最小的推导方式(例如按照二分方式)进行隐含推导,例如,解析并获取系数组的宽度的最大和最小的允许使用值分别是16和4、解析并获取系数组的高度的最大和最小允许使用的值分别是8和4,那么参数集数据单元的字段所指示的可允许使用的系数组的宽度包括16、8和4,指示的可允许使用的系数组的高度包括8和4,对应指示的系数组的大小(以“宽度x高度”的形式表示)包括:16x8、16x4、8x8、8x4、4x8和4x4。第二种解析方法是,解析参数集数据单元获取最大允许使用的系数组的宽度和按照划分方式(例如二分方式)的最大划分层次,获取最大允许使用的系数组的高度和按照划分方式(例如二分方式)的最大划分层次,例如,解析并获取最大允许使用的系数组的宽度为16、最大划分层次为2,解析并获取最大允许使用的系数组的高度为8、最大划分层次为1,那么参数集数据单元的字段所指示的可允许使用的系数组的宽度包括16、8和4,指示的可允许使用的系数组的高度包括8和4,对应指示的系数组的大小(以“宽度x高度”的形式表示)包括:16x8、16x4、8x8、8x4、4x8和4x4,可替换地,最大和最小允许使用的系数组的宽度之间的差值也可以以最大划分层次出现在码流中,在上述示例中,解析参数集数据单元获取所述最大和最小允许宽度值之间的差值等于2时,将最小允许使用的系数组的宽度设置为4(即2(log216-2)=4),可替换地,最大和最小允许使用的系数组的高度之间的差值也可以以最大划分层次出现在码流中,在上述示例中,解析参数集数据单元获取所述最大和最小允许高度值之间的差值等于1时,将最小允许使用的系数组的宽度设置为4(即2(log28-1)=4)。第三种解析方法是,解析参数集数据单元获取最小允许使用的系数组的宽度和按照划分方式(例如二分方式)的最大向上层次,获取最小允许使用的系数组的高度和按照划分方式(例如二分方式)的最大向上层次,例如,解析并获取最小允许使用的系数组的宽度为4、最大向上层次为2,解析并获取最小允许使用的系数组的高度为4、最大向上层次为1,那么参数集数据单元的字段所指示的可允许使用的系数组的宽度包括16、8和4,指示的可允许使用的系数组的高度包括8和4,对应指示的系数组的大小(以“宽度x高度”的形式表示)包括:16x8、16x4、8x8、8x4、4x8和4x4,可替换地,最大和最小允许使用的系数组的宽度之间的差值也可以以最大向上层次出现在码流中,在上述示例中,解析参数集数据单元获取所述最大和最小允许宽度值之间的差值等于2时,将最大允许使用的系数组的宽度值设置为16(即2(log24+2)=16),可替换地,最大和最小允许使用的系数组的高度之间的差值也可以以最大向上层次出现在码流中,在上述示例中,解析参数集数据单元获取所述最大和最小允许高度值之间的差值等于1时,将最大允许使用的系数组的高度值设置为8(即2(log24+1)=8)。第四种解析方法是,解析参数集数据单元获取可用的宽度和高度分别对应的标志位,所述标志位用于指示解码过程中是否允许使用其对应的宽度和高度,例如,当的可用的宽度和高度均包括32、16、8和4时,解析参数集数据单元获得“宽度32”对应的标志位指示“不允许使用”、“宽度16、8和4”对应的3个标志位均指示“允许使用”、“高度32和16”对应的2个标志位均指示“不允许使用”、“高度8和4”对应的2个标志位均指示“允许使用”,那么参数集数据单元的字段所指示的可允许使用的系数组的宽度包括16、8和4,指示的可允许使用的系数组的高度包括8和4,对应指示的系数组的大小(以“宽度x高度”的形式表示)包括:16x8、16x4、8x8、8x4、4x8和4x4。
可选地,一种解析方法是,解析参数集数据单元获取可用的系数组的大小对应的标志位,所述标志位用于指示是否允许使用其对应的参数组的大小。例如,当中设置的可用的系数组的大小包括16x16、16x8、16x4、8x16、8x8、8x4、4x16、4x8和4x4时,解析参数集数据单元获取获取的9个标志位分别指示了“16x16不允许使用、16x8允许使用、16x4允许使用、8x16不允许使用、8x8允许使用、8x4允许使用、4x16不允许使用、4x8允许使用和4x4允许使用”时,将16x8、16x4、8x8、8x4、4x8和4x4作为解码过程中允许使用的系数组的大小。
可选地,解析参数集数据单元,可以使用上述的方法获得使用不同编码模式(Coding mode)的解码块允许使用的系数组的大小。例如,解析参数集数据单元获得信息指示对于使用帧内预测模式解码块中的变换块可允许的系数组的大小是8x8和4x4,获得信息指示对于使用帧间预测模式解码块中的变换块可允许的系数组的大小是16x16、8x8和4x4。
可选地,解析参数集数据单元,可以使用上述的方法获得使用不同变换次数的变换块允许使用的系数组的大小。例如,解析参数集数据单元获得指示对于使用一次变换的变换块可允许的系数组的大小是8x8和4x4,对于使用多次变换的变换块可允许的系数组的大小是16x16、8x8和4x4。
可选地,解析参数集数据单元,可以使用上述的方法获得使用不同变换方式的变换块允许使用的系数组的大小。例如,解析参数集数据单元获得指示对于使用以DCT为基础设计的变换的变换块可允许的系数组的大小是8x8和4x4,对于使用以DST为基础设计的变换的变换块可允许的系数组的大小是16x16、8x8和4x4,对于使用以KLT为基础设计的变换的变换块可允许的系数组的大小是32x32、16x16、8x8和4x4。
可选地,解析参数集数据单元,获得用于切换可允许使用的系数组的大小的控制参数。例如,当使用量化参数作为切换可允许使用的系数组的大小的控制参数时,使用前述方法解析参数集数据单元获得量化参数的划分区间、以及各区间中允许使用的系数组的大小,获得的切换方式的一种示例是:如H.265/HEVC标准中量化参数的定义方式,当量化参数大于等于37时,允许使用的系数组的大小是16x16、8x8和4x4;当量化参数取值小于37但大于等于27时,允许使用的系数组的大小是8x8;当量化参数取值小于27时,允许使用的系数组的大小是4x4,
可选地,将可使用的系数组的大小预先设定在档次/等级/级别(Profile/Tier/Level)中,对于不同的Profile/Tier/Level,设置一种或多种取值的可使用的系数组的大小。例如,对于较低的Level(例如对应于解码640x480及其以下分辨率的视频码流),使用默认值等于4x4的系数组的大小;对于较高的Level(例如对应于解码720p、1080p、2K等较大分辨率的视频码流),可使用8x8、4x4两种系数组的大小;对于最高的Level(例如对应于解码4K、8K等超大分辨率的视频码流),可使用16x16、8x8、4x4三种系数组的大小。解析参数集数据单元,获得Profile/Tier/Level的指示信息,确定可使用的系数组的大小。
一种可选用的示例码流组织方法如下(该码流组织方法与表1所示方法相同),所述码流组织方法的字段位于一个或多个参数集数据单元中。使用上述方法,解析表3中的码流字段,获得解码过程中允许使用的系数组的大小。
表3.参数集数据单元中的码流组织
表3中各语法元素(Syntax element)的语义(semantics)如下:
log2_min_cg_side_length表示系数组的最小边长。系数组的最小边长等于(1<<log2_min_cg_side_length)。其中,“<<”是算数右移位运算符。码流解析过程中,对log2_min_cg_side_length使用ue(v)的方法进行熵解码。
log2_diff_max_cg_side_length表示系数组的最大边长与最小边长之间的差值。系数组的最大边长等于(1<<(log2_min_cg_side_length+log2_diff_max_cg_side_length))。码流解析过程中,对log2_diff_max_cg_side_length使用ue(v)的方法进行熵解码。
解析表3中语法元素在码流中对应的字段,确定系数组的大小的示例如下。例如,使用ue(v)的方法解析log2_min_cg_side_length获得其取值等于2,使用ue(v)的方法解析log2_diff_max_cg_side_length获得其取值等于0,确定在解码过程仅使用默认大小是4x4的系数组。
例如,使用ue(v)的方法解析log2_min_cg_side_length获得其取值等于2,使用ue(v)的方法解析log2_diff_max_cg_side_length获得其取值等于2,确定解码过程中可允许使用的系数组的可用边长包括16、8、4,对应指示的可用的系数组的大小包括:16x16、16x8、16x4、8x16、8x8、8x4、4x16、4x8和4x4。
一种可选用的示例码流组织方法如下(该码流组织方法与表2所示方法相同),所述码流组织方法的字段位于一个或多个参数集数据单元中。使用上述方法,解析表4中的码流字段,获得解码过程中允许使用的系数组的大小。表4中的码流字段可以指示使用帧间模式、帧内模式的解码块中变换块的允许使用不同的系数组的大小。
表4.参数集数据单元中的码流组织
表4中各语法元素(Syntax element)的语义(semantics)如下:
log2_min_cg_side_length表示系数组的最小边长。系数组的最小边长等于(1<<log2_min_cg_side_length)。其中,“<<”是算数右移位运算符。码流解析过程中,对log2_min_cg_side_length使用ue(v)的方法进行熵解码。
log2_diff_max_inter_cg_side_length表示使用帧间预测模式的解码块中变换块的系数组的最大边长与最小边长之间的差值。系数组的最大边长等于(1<<(log2_min_cg_side_length+log2_diff_max_cg_side_length))。码流解析过程中,对log2_diff_max_cg_side_length使用ue(v)的方法进行熵解码。
log2_diff_max_intra_cg_side_length表示使用帧内预测模式的解码块中变换块的系数组的最大边长与最小边长之间的差值。系数组的最大边长等于(1<<(log2_min_cg_side_length+log2_diff_max_cg_side_length))。码流解析过程中,对log2_diff_max_cg_side_length使用ue(v)的方法进行熵解码。
解析表4中语法元素在码流中对应的字段,确定系数组的大小的示例如下。例如,使用ue(v)的方法解析log2_min_cg_side_length获得其取值等于2,使用ue(v)的方法分别解析log2_diff_max_inter_cg_side_length和log2_diff_max_intra_cg_side_length获得两个语法元素的取值均设置为0,确定在解码过程对帧间预测模式的解码块和帧内预测模式的解码块均仅使用默认大小是4x4的系数组。
例如,使用ue(v)的方法解析log2_min_cg_side_length获得其取值等于2,使用ue(v)的方法分别解析log2_diff_max_inter_cg_side_length和log2_diff_max_intra_cg_side_length获得的取值均等于2。如前实施方法所述,确定解码过程中可允许使用的系数组可用边长包括16、8、4,对应指示的系数组的大小包括:16x16、16x8、16x4、8x16、8x8、8x4、4x16、4x8和4x4。在这种情况下,对帧间预测模式的解码块和帧内预测模式的解码块中的变换块使用相同的允许使用的系数组。
例如,使用ue(v)的方法解析log2_min_cg_side_length获得其取值设置等于2,使用ue(v)的方法解析log2_diff_max_inter_cg_side_length获得其取值设置等于2,使用ue(v)的方法解析log2_diff_max_intra_cg_side_length获得其取值均等于1。如前实施方法所述,确定解码过程中对帧间模式的解码块可允许使用的系数组的可用边长包括16、8和4,对应指示的系数组的大小包括:16x16、16x8、16x4、8x16、8x8、8x4、4x16、4x8和4x4,确定解码过程中对帧内预测模式的解码块可允许使用的系数组的可用边长包括8和4,对应指示的系数组的大小包括:8x8、8x4、4x8和4x4。在这种情况下,对帧间预测模式的解码块和帧内预测模式的解码块中的变换块使用不完全相同的允许使用的系数组。
步骤S602,解析分片头信息数据单元中的系数组的大小。解析数据流中分片头信息数据单元对应的码流,获得解码过程中可使用的系数组的大小。
解析所述分片引用(refer to)的参数集的参数集索引序号(parameter setidentifier),激活所引用的参数集,获得参数集中设定的可使用的系数组的大小。
可选地,特别地,解析分片头信息数据单元中可使用的系数组的大小相关的语法单元对应的字段,获得解码所述分片过程中可使用的系数组的大小,对应覆盖从所述分片引用的参数集中获得的对应参数。使用的解析方法与步骤S601中除通过解析Profile/Tier/Level获得系数组的大小的方法外的其他解析参数集数据单元获得系数组的大小的方法相同。
可选地,当所述分片引用的参数集中没有包含系数组的大小相关参数时,解析分片头信息中可使用的系数组的大小相关的语法单元对应的字段,获得解码所述分片过程中可使用的系数组的大小。使用的解析方法与步骤S601中除通过解析Profile/Tier/Level获得系数组的大小的方法外的其他解析参数集数据单元获得系数组的大小的方法相同。
步骤S603,解析块层数据单元中的系数组的大小。解析数据流中块层数据单元对应的码流,获得解码过程中可使用的系数组的大小。
解析块层数据单元,获得用于指示解码块中变换块使用的系数组的大小的参数。例如,一种解析方法是,解析块层数据单元中指示解码变换块使用的系数组的大小的语法元素对应的字段,如系数组的宽度和高度。例如,一种解析方法是,解析块层数据单元获得一个或多个索引取值,该索引取值对应于一个系数组的大小。例如,一种解析方法是,解析块层数据单元获得一个或多个标志信息,所述标志信息用于指示所述解码块中的变换块所使用的系数组的大小与所述标志信息指示的已解码的一个变换块相同,所述已解码的变换块可以是与所述变换块位于同一个图像中的已解码变换块(如上相邻块、左相邻块等),也可以是所述变换块不在同一个图像中的已解码块(即时域相邻块),所述标志信息的一个示例可以是指示“与上相邻变换块的系数组的大小相同”的标志信息。
图7是根据本发明实施例的一种解析扫描方式参数的数据处理流程图。所述处理流程的输入是数据流中的扫描方式相关的码流,所述处理流程的输出是解码过程中可允许使用的扫描方式和对解码块中变换块进行解码过程中使用的扫描方式。
步骤S701,解析参数集数据单元中的扫描方式参数。解析数据流中参数集数据单元对应的码流,获得解码过程中可使用的扫描方式。
解析参数集数据单元中允许使用的扫描方式的指示信息。其中,扫描方式可以是在中预设的固定路径的扫描方式,也可以是非固定路径的扫描方式。对于非固定路径的扫描方式时,可选地,解析参数集数据单元获得变换系数在扫描前后的坐标对应关系。例如,变换块中坐标位置等于(m,n)的变换系数(或者是索引序号等于m×nTbS+n,其中nTbS是变换块的宽度)对应的扫描后序号位置等于k。
可选地,将可使用的系数组的大小预先设定在档次/等级/级别(Profile/Tier/Level)中,对于不同的Profile/Tier/Level,设置一种或多种可使用的扫描方式。例如,对于较低的Level(例如对应于编码640x480及其以下分辨率的视频),使用默认的对角右上、水平和垂直扫描方式;对于较高的Level(例如对应于编码720p、1080p、2K等较大分辨率的视频),除前述对较低Level可使用的默认的三种扫描方式外,还可使用Zig-zag扫描方式、其他对角扫描方式(例如对角右下、对角左下等);对于最高的Level(例如对应于编码4K、8K等超大分辨率的视频),除前述对较高Level可使用的扫描方式外,还可以使用非固定扫描路径的扫描方式。解析参数集数据单元中,获得Profile/Tier/Level的指示信息,确定解码过程中可使用的扫描方式。对于非固定路径扫描方式,解析参数集数据单元,获得变换系数在扫描前后的坐标对应关系。例如,变换块中坐标位置等于(m,n)的变换系数(或者是索引序号等于m×nTbS+n,其中nTbS是变换块的宽度)对应的扫描后序号位置等于k。
步骤S702,解析分片头信息单元中的扫描方式参数。解析数据流中分片头信息数据单元对应的码流,获得解码过程中可使用的扫描方式。
解析分片头信息数据单元中参数集索引序号(parameter set identifier),获得所述分片引用(refer to)的参数集。对所述分片进行解码的过程中,可以使用所引用的参数集中设定的可使用的扫描方式。
可选地,特别地,解析分片头信息,获得可使用的扫描方式参数,对应覆盖从所述分片引用的参数集中获得的扫描方式参数。可选地,使用的解析方法与步骤S701中除通过解析Profile/Tier/Level获得扫描方式的方法外的其他解析参数集获得扫描方式参数的方法相同。
可选地,当所述分片引用的参数集中没有包含扫描方式参数时,解析分片头信息获得解码所述分片过程中可使用的扫描方式参数。使用的解析方法与步骤S701中除通过解析Profile/Tier/Level获得扫描方式的方法外的其他解析参数集获得扫描方式参数的方法相同。
可选地,解析分片头信息数据单元获得变换系数在扫描前后的坐标对应关系。例如,变换块中坐标位置等于(m,n)的变换系数(或者是索引序号等于m×nTbS+n,其中nTbS是变换块的宽度)对应的扫描后序号位置等于k。
步骤S703,解析块层数据单元中的扫描方式参数。解析数据流中块层数据单元对应的码流,获得解码一个解码块的过程中使用的扫描方式。
解析块层数据单元,获得用于指示所述解码块中变换块使用的扫描方式参数。例如,一种解析方法是,解析块层数据单元中的一个或多个索引取值,该索引取值对应于一个扫描方式。例如,一种解析方法是,解析块层数据单元中变换系数在扫描前后的坐标对应关系,如变换块中坐标位置等于(m,n)的变换系数(或者是索引序号等于m×nTbS+n,其中nTbS是变换块的宽度)对应的扫描后序号位置等于k。例如,一种解析方法是,解析块层数据单元中的一个或多个标志信息,所述标志信息用于指示所述解码块中的变换块所使用的扫描方式与所述标志信息指示的已解码的一个变换块相同,所述已解码的变换块可以是与所述变换块位于同一个图像中的已解码变换块(如上相邻块、左相邻块等),也可以是所述变换块不在同一个图像中的已解码块(即时域相邻块),所述标志信息的一个示例可以是指示“与上相邻变换块的扫描方式相同”的标志信息。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
实施例3
在本实施例中还提供了一种图像的编码装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图8是根据本发明实施例的一种图像的编码装置的结构框图,如图8所示,该装置包括:第一确定模块82,变换模块84,第二确定模块86以及编码模块88。
第一确定模块82,用于确定编码块的预测值,计算所述编码块与所述预测值的预测差值;
变换模块84,用于对所述预测差值进行一次或者多次的变换,得到变换数据,使用所述变换数据确定变换系数;
第二确定模块86,用于确定所述变换系数的扫描方式和系数组的大小,将所述变换系数划分成一个或多个系数组,根据所述扫描方式扫描每个所述系数组中包含的变换系数,将所述变换系数转换为一个或多个语法元素;
编码模块88,用于对所述系数组的大小和所述语法元素的取值进行编码,将编码后的比特写入码流。
图9是根据本发明实施例的另一种图像的编码装置的结构框图,如图9所示,在包括图8中的所有模块外,第二确定模块86还包括:CG大小确定单元92、扫描方式确定单元94以及变换系数处理单元96。编码模块88还包括:码流生成单元98。
第二确定模块86,用于确定变换块的系数组的大小和扫描方式。如图9所示第二确定模块86的输入数据包括数据流900和数据流901,输出数据是数据流903。数据流900是第一确定模块82的输出数据(包括所述变换块所在编码块的大小、编码模式)、变换模块84的输出数据(包括变换块的大小、量化参数)。数据流901是所述变换块中的变换系数,在不对所述变换块使用量化的情况下,数据流901的变换系数是前述编码器中变换模块84的输出数据;在对所述变换块使用量化情况下,数据流901的变换系数是变换模块84中经过量化后的输出数据。数据流902是第二确定模块86中的内部数据流,是CG大小确定单元92与扫描方式确定单元94之间的双向数据流。CG大小确定单元92将系数组的大小通过数据流902传递给扫描方式确定单元94;扫描方式确定单元94将指示扫描方式的参数通过数据流902传递给CG大小确定单元92。数据流903是第二确定模块86的输出数据,是对所述变换块进行熵编码使用的系数组的大小和指示扫描方式的参数。数据流903中还包括是否需要对所述变换块使用的系数组的大小、指示扫描方式的参数进行编码的标志信息。
第二确定模块86中,CG大小确定单元92实施例1中所述的确定系数组的大小的方法,确定系数组的大小,将系数组的大小的取值包括进数据流903。CG大小确定单元92使用的参数来自于数据流900、数据流901中传递的参数,以及在需要时从数据流902中获得扫描方式参数。扫描方式确定单元94使用实施例1中所述的确定变换块中变换系数的扫描方式的方法,确定扫描方式,将指示扫描方式的参数包括进数据流903。扫描方式确定单元94使用的参数来自于数据流900、数据流901中传递的参数,以及在需要时从数据流902中获得系数组的大小的取值。
可选地,第二确定模块86可以使用RDO的方法,联合确定变换块使用的系数组的大小和变换块中变换系数的扫描方式。一种可选用的实施方法是,第二确定模块86将扫描方式确定单元94的各候选扫描方式,依次通过数据流902传递给CG大小确定单元92;CG大小确定单元92确定各候选扫描方式下所述变换块的系数组的大小;第二确定模块86计算使用各候选扫描模式与变换块的系数组的大小对所述变换块进行编码所产生的编码比特数;第二确定模块86选择编码比特数最小值对应的候选扫描方式和系数组的大小,将指示扫描方式的参数和系数组的大小的取值包括进数据流903。
可选地,第二确定模块86可以使用RDO的方法,联合确定变换块使用的系数组的大小和变换块中变换系数的扫描方式。另一种可选用的实施方法是,第二确定模块86将CG大小确定单元92的各候选系数组的大小的取值,依次通过数据流902传递给扫描方式确定单元94;扫描方式确定单元94确定各候选系数组的大小下所述变换块的扫描方式;第二确定模块86计算使用各候选系数组的大小与扫描方式对所述变换块进行编码所产生的编码比特数;第二确定模块86选择编码比特数最小值对应的候选系数组的大小和扫描方式,将系数组的大小的取值指示和扫描方式的参数包括进数据流903。
变换系数处理单元96对变换块中的变换参数进行参数化表示。变换系数处理单元96的输入数据是数据流901和数据流903,输出是数据流904。变换系数处理单元96根据数据流903中系数组的大小,将数据流901中变换块的变换系数划分成一个或多个系数组;根据数据流903中指示扫描方式的参数,对变换块中的变换系数进行扫描,将变换系数进行参数化表示。变换系数处理单元96使用数据流903中指示扫描方式的参数所指示的扫描顺序,依次对变换系数矩阵中的系数组进行处理。对于每个系数组,变换系数处理单元96使用数据流903中指示扫描方式的参数所指示的扫描顺序,依次对该系数组中的变换系数进行处理。这里,变换系数处理单元96对系数组的扫描顺序和对系数组中变换系数的扫描顺序可以是相同的,也可以是不同的。在扫描的过程中,变换系数处理单元96记录最后一个非0变换系数的位置,将指示该位置的数据包含进数据流904。变换系数处理单元96从包含最后一个非0变换系数的系数组开始,按照数据流903中指示扫描方式的参数所指示的扫描顺序,依次确定用于指示各系数组中的系数是否全部是0值变换系数(或指示各系数组中是否包含非0变换系数)的标志位,将该标志位的取值包含进数据流904。对于前述标志位指示对应系数组中存在非0变换系数的系数组,变换系数处理单元96按照数据流903中指示扫描方式的参数所指示的扫描顺序,依次确定所述系数组中各变换系数的取值是否为0的标志位,并将该标志位包含进数据流904。变换系数处理单元96对于取值不等于0的变换系数,确定用于指示该变换系数符号(用于指示正值还是负值)的符号参数,将变换系数取值转换为其绝对值,将符号参数和变换系数的绝对值包含进入数据流904。另外,当数据流903中所述标志信息指示需要对所述变换块使用的系数组的大小进行编码时,变换系数处理单元96将数据流903中的系数组的大小包含进数据流904;当数据流903中所述标志信息指示需要对所述变换块使用的扫描方式进行编码时,变换系数处理单元96将数据流903中的指示扫描方式的参数包含进数据流904。数据流904是变换系数处理单元96的输出数据。
码流生成单元98对表示变换块中变换系数的参数进行编码,生成二进制编码比特,并将编码比特写入码流。码流生成单元的输入数据是数据流904和数据流905,输出是数据流906。数据流905是来自于编码器配置参数中的系数组的大小、扫描方式等一个或多个参数,所述配置参数用于指示变换块可以使用的系数组的大小,所述配置参数还可以用于指示变换块可以使用的扫描方式。特别地,如果编码器上可使用的系数组的大小的数量和取值是固定的,码流生成单元98不需要对数据流905中包含的与可使用的系数组的大小相关参数进行编码。特别地,如果编码器上可使用的扫描方式是固定的,码流生成单元98不需要对数据流905中包含的与可使用的扫描方式相关参数进行编码。码流生成单元98使用熵编码的方法,对数据流904和数据流905中的数据进行编码,得到二进制编码比特,将编码比特写入码流,得到数据流906。其中,所述码流中各字段的组织方式由视频编码标准定义。码流生成单元98可使用的熵编码方法包括等长编码、不等长编码、算数编码等。
需要说明的是,数据流指的是软件实现上函数的入口参数和返回参数,硬件实现上总线上传递的数据、存储单元之间共享的数据(包括寄存器共享数据)等。
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
实施例4
在本实施例中还提供了一种图像的解码装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图10是根据本发明实施例的一种图像的解码装置的结构框图,如图10所示,该装置包括:解码模块1002,转换模块1004,处理模块1006、变换模块1008以及计算模块1010。
解码模块1002,用于对码流进行解析,确定所述解码块的预测值,所述解码块中变换系数的扫描方式、系数组的大小和变换系数相关的语法元素的取值;
转换模块1004,用于根据所述扫描方式和所述系数组的大小,对所述解码块中的系数组进行处理,将所述语法元素转换为所述系数组中的变换系数;
处理模块1006,用于对所述变换系数进行处理,得到变换系数的恢复值;
变换模块1008,用于对所述变换系数进行处理,并将处理后的数据进行一次或多次变换,得到所述解码块的预测差值;
计算模块1010,用于使用所述预测值和所述预测差值确定所述解码块的恢复值。
图11是根据本发明实施例的另一种图像的解码装置的结构框图,如图11所示,
解码模块1002确定变换块的系数组的大小和扫描方式。解码模块1002的输入数据包括数据流11000,输出数据是数据流11001。数据流11000是码流,是解码器的输入数据。解码模块1002按照视频编码标准中定义的码流组织结构和各字段的熵解码方法,对数据流11000进行解析,获得一个或多个参数集数据单元、一个或多个分片数据单元(包括分片头(Slice header)数据单元和分片数据(Slice data)数据单元)。解码模块1002解析分片数据数据单元中,获得一个或多个解码块的块层数据单元。解码模块1002获得的数据单元中包含的与系数组大小和扫描方式相关的参数,将当前解码块中包含的变换块使用的系数组的大小和扫描方式参数包含进数据流11001。数据流11001是解码模块1002的输出数据。解码模块1002可使用的熵解码方法包括:对使用等长编码产生的码字进行熵解码的方法、对使用不等长编码产生的码字进行熵解码的方法、对使用算数编码产生的码字进行熵编码的方法。
解码模块1002从所获得的数据单元中读取相关参数,确定用于解码变换块中变换系数的系数组的大小。可选地,根据数据流11000中各数据单元所包含的字段数据,解码模块1002在参数集数据单元中,可以获得与可使用的系数组的大小相关的参数,确定解码过程中可使用的候选系数组的大小。可选地,根据数据流11000中各数据单元所包含的字段数据,解码模块1002在分片头信息数据单元中,可以获得与可使用的系数组的大小相关的参数,确定解码过程中可使用的候选系数组的大小,特别地,解码模块1002可以从分片头信息数据单元中获得的系数组的大小相关的参数,对应覆盖从参数集数据单元中获得的参数作为解码所述分片过程中可使用的系数组的大小的参数。解码模块1002使用块层数据单元中的参数,确定解码块中变换块所使用系数组的大小。解码模块1002将系数组的大小包含进入数据流11001。
解码模块1002从所获得的数据单元中读取相关参数,确定用于解码变换块中变换系数的扫描方式。可选地,根据数据流11000中各数据单元所包含的字段数据,解码模块1002在参数集数据单元中,可以获得与可使用的扫描方式相关的参数,确定解码过程中可使用的扫描方式。解码模块1002在参数集数据单元中获得的可使用扫描方式可以是固定路径的扫描方式,即在解码器中已经预先设定了扫描路径的扫描方式。特别地,解码模块1002在参数集数据单元中获得的可使用扫描方式可以是非固定路径的扫描方式,即由前述实施例3中写入参数集数据单元码流中的扫描路径。解码模块1002在参数集数据单元获得扫描方式相关的参数,可选地,所述参数转描述的是变换系数在扫描前后的坐标对应关系,例如,变换块中坐标位置等于(m,n)的变换系数(或者是索引序号等于m×nTbS+n,其中nTbS是变换块的宽度)对应的扫描后序号位置等于k。可选地,根据数据流11000中各数据单元所包含的字段数据,解码模块1002在分片头信息数据单元中,可以获得与可使用的扫描方式相关的参数,确定解码过程中可使用的候选扫描方式,特别地,解码模块1002可以从分片头信息数据单元中获得的扫描方式相关的参数,对应覆盖从参数集数据单元中获得的参数作为解码所述分片过程中可使用的扫描方式。解码模块1002使用块层数据单元中的参数,确定解码块中变换块所使用扫描方式。解码模块1002将解码过程中可使用的扫描方式参数进入数据流11001。
特别地,如果解码器上可使用的系数组的大小的数量和取值是固定的,解码模块1002不需要通过解析码流,而是通过读取解码器中预先存储的信息获得可使用的系数组的大小的数量和取值。特别地,如果解码器上可使用的扫描方式是固定的,解码模块1002不需要通过解析码流,而是通过读取解码器中预先存储的信息获得可使用的扫描方式。
解码模块1002解析码流中变换块对应的数据单元,除系数组的大小和扫描方式外,还获得与变换系数相关的参数,包括指示以下一个或多个信息的参数:变换块中最后一个非0系数的位置,系数组中包含的变换系数是否均为0(或等价于系数组中是否包含非0变换系数),变换系数的取值(或者变换系数的符号、变换系数的绝对值)。解码模块1002也将上述参数包含进数据流11001。
处理模块1006确定变换块中变换系数的恢复值。变换系数恢复单元的输入数据是数据流11001,输出是数据流11002。数据流11002中包含的是解码块中变换块的变换系数。数据流11002中,变换系数可以用M x N二维矩阵形式表示,其中,M和N是正整数,M和N可以相等,M和N也可以不相等。所述二维矩阵可以对应于一个变换块,以下叙述中使用“变换块”指代所述以M x N二维矩阵形式表示的变换系数。这里,当解码模块1002解析码流获得指示信息指示对所述变换块进行伸缩(Scaling)(也可称为反量化)操作的情况下,处理模块1006输出数据流11002中包含的所述变换系数恢复值对应于前述编码器中量化单元209输出的是系数的量化值(即“Level”值),解码器将数据流11002作为反量化单元305的输入数据;反之,当解码模块1002解析码流获得指示信息指示不对所述变换块进行伸缩操作的情况下,处理模块1006输出数据流11002中包含的所述变换系数恢复值对应于前述编码器中变换单元84输出的是所述预测差进行变换后得到的数据,解码器将数据流11002作为反变换单元306的输入数据。
处理模块1006根据变换块的大小和系数组的大小,确定变换块包含的各系数组的位置。所述系数组的位置可以表示为系数组中左上角系数在变换块(或解码图像)中的位置坐标。处理模块1006根据数据流11001中扫描方式指示的顺序,依次对系数组进行处理。对于一个系数组,处理模块1006根据所述扫描方式指示的顺序,将系数组中对应元素的取值设置为解析码流获得的变换系数取值。特别地,当处理模块1006从数据流11001中得到指示一个系数组中包含的变换系数均为0(或等价于系数组中不包含非0变换系数)时,解析单元将该系数组中包含的系数全部设置为0。特别地,当处理模块1006从数据流11001中获得了最后一个非0系数位置时,按照扫描顺序,处理模块1006将最后一个非0系数位置后的其他系数的取值设置为0。特别地,这里,处理模块1006对变换块中系数组的处理顺序和对系数组中变换系数的处理顺序可以是相同的,也可以是不同的。处理模块1006将恢复的变换块(即以二维矩阵形式(或可等价于二维矩阵的其他数据形式)表示的变换系数)包含进数据流11002。
需要说明的是,数据流指的是软件实现上函数的入口参数和返回参数,硬件实现上总线上传递的数据、存储单元之间共享的数据(包括寄存器共享数据)等。
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
实施例5
图12是一种包含上述所示图像的编码装置的电子设备图。如图12所示,该装置包括:采集单元1202,图像的编码装置1204以及存储或发送单元1206。
采集单元1202采集视频或图像。采集单元1202可以是包含至少一个摄像头用于采集自然视频或自然图像;可选择地,采集单元1202还可以配置用于采集深度视频或深度图像的摄像头;可选择地,采集单元还可以配置红外摄像头;可选择地,采集单元还可以配置遥感摄像头。采集单元1202可以是包含通过放射线透射或扫描产生视频或图像的装置或设备。
可选择地,采集单元1202中可以对输入视频或图像进行前处理,例如,自动聚焦、自动白平衡、自动曝光、背光补偿、降噪、锐化、拼接、提升或降低图像分辨率、提升或降低视频帧率、虚拟视图合成等。
采集单元1202也可以接收其它设备或单元输出的视频或图像,例如,采集单元1202可以是转码器(Transcoder)中的一个组成单元,Transcoder将部分解码的图像输入采集单元1202。例如,采集单元1202接收通过数据连接从其他设备传递过来的视频或图像。
需要说明的是,除视频或图像外,采集单元1202也可以采集其他媒体信息,例如音频。采集单元1202也可以接收人工产生的信息,例如文字、字幕、计算机产生的图片或视频等。
图像的编码装置1204是图2所示的编码器。图像的编码装置1204的输入是采集单元1202输出的视频或图像。图像的编码装置1204对视频或图像进行编码,输出视频或图像码流。
存储或发送单元1206接收图像的编码装置1204输出的视频或图像码流,对其进行系统层处理,例如,按照传输协议、媒体文件格式等标准进行打包(Encapsulation)。存储或发送单元1206将系统层处理后的得到的传输流或媒体文件存储至所述电子设备的存储器中,或者通过有线、无线网络进行发送。
需要说明的是,除图像的编码装置1204输出的视频或图像码流外,存储或发送单元1206的输入还可以包括音频码流、文字、字幕、图片等。存储或发送单元1206按照媒体文件格式、传输协议等标准将这些输入与图像的编码装置1204输出的码流打包在传输流或媒体文件中。
本实施例所述的电子设备可以是视频通信应用中能够生成或处理视频或图像码流的设备,例如,手机、计算机、媒体服务器、便携式移动终端、数字摄像机、数字照相机、电视广播系统设备、内容分发网络设备、监控摄像头、会议电视系统设备等。
实施例6:
图13是一种包含上述所示图像的解码装置的电子设备图。如图13所示,包括:
接收单元1302接收视频或图像码流。接收单元1302从有线、无线网络接收视频或图像码流,或者读取所述电子设备存储器获得视频或图像码流,或者接收通过数据连接从其他设备传递过来的视频或图像码流。
接收单元1302的输入还可以是包含视频或图像码流的传输流或媒体文件。接收单元1302根据传输协议、媒体文件格式等标准从接收到的传输流或媒体文件中提取视频或图像码流。
接收单元1302将视频或图像码流输出给图像的解码装置1304。
需要说明的是,除视频或图像码流外,接收单元1302的输出还可以包括音频码流、文字、字幕、图片等。接收单元1302将这些输出传递给所述电子设备中对应的处理单元。例如,接收单元1302将音频码流输出给所述电子设备中包含的音频解码器。
图像的解码装置1304是图3所示的解码器。图像的解码装置1304的输入是接收单元1302输出的视频或图像码流。图像的解码装置1304对视频或图像码流进行解码,输出解码恢复的视频或图像。
呈现(Rendering)单元1306接收图像的解码装置1304输出的解码恢复的视频或图像。呈现单元1306将解码恢复的视频或图像呈现给观看者(Viewer)。呈现单元1306可以是所述电子设备的一个组成部分,例如显示屏;也可以是通过数据连接与所述电子设备连接的独立设备,例如投影机、显示器等。可选择地,呈现单元1306可以对解码恢复的视频或图像进行后处理,例如自动调焦、自动白平衡、自动曝光调整、背光补偿、降噪、锐化、拼接、提升或降低图像分辨率、提升或降低视频帧率、虚拟视图合成等。
需要说明的是,除所述解码恢复的视频或图像外,呈现单元1306的输入还可以包括来自所述电子设备其他单元输出的媒体数据,例如音频、文字、字幕、图片,等。呈现单元1306的输入还包括人工产生的数据,例如远程教育应用中本地授课者对重点内容的划线等标注数据。呈现单元1306将输入的媒体数据进行叠合后显示给观看者。
本实施例所述的电子设备可以是视频通信应用中能够解码或处理视频或图像码流的设备,例如,手机、计算机、机顶盒、电视机、播放器、媒体服务器、便携式移动终端、数字摄像机、数字照相机、电视广播系统设备、内容分发网络设备、会议电视系统设备等。
实施例7
图14是一种包含上述所示电子设备的电子系统。如图14所示,
信源设备1402是图12所示的电子设备。
存储或传输网络1404可以包括设备或电子系统的存储器、通过数据连接进行数据读写操作的外部存储器;也可以包括有线网络、无线网络组成的数据传输网络。存储或传输网络1404为信源设备1402中存储或发送单元803提供了存储器或数据传输网络。
信宿设备1406是图13所示的电子设备。信宿设备1406中接收单元901接收存储或传输网络1404提供视频或图像码流、包含视频或图像码流的传输流或者包含视频或图像码流的媒体文件。
本实施例所述的电子系统可以是视频通信应用中能够生成、存储或传输和解码视频或图像码流的系统或设备,例如,手机、计算机、IPTV系统、OTT系统、互联网多媒体系统、数字电视广播系统、监控系统、便携式移动终端、数字摄像机、数字照相机、会议电视系统设备等
实施例8
本发明的实施例还提供了一种存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (18)

1.一种图像的解码方法,其特征在于,包括:
解析码流,确定解码块的预测值;
解析所述码流,确定所述解码块中变换系数的扫描方式、系数组的大小和变换系数相关的语法元素的取值;
根据所述扫描方式和所述系数组的大小,对所述解码块中的系数组进行处理,将所述语法元素转换为变换系数;
对所述变换系数进行处理,得到变换系数的恢复值;
对所述变换系数的恢复值进行一次或多次变换,得到所述解码块的预测差值;
使用所述预测值和所述预测差确定所述解码块的恢复值;
其中,解析所述码流,确定所述系数组的大小,包括:
解析所述码流,从所述码流中的数据单元获取第一系数组参数,根据所述第一系数组参数确定所述系数组的大小;其中,所述码流中的数据单元包含以下至少之一:一个或多个参数集,分片头,块层数据单元;
其中,第一参数组参数中包含所述解码块的第一解码参数,根据所述第一系数组参数确定所述系数组的大小包括:
根据所述解码块的第一解码参数,将所述系数组的大小设置为所述第一解码参数对应的系数组的大小,其中,所述第一解码参数至少包括以下其中之一:所述解码块的预测模式、所述解码块中包含的变换块使用的变换类型、量化参数;
其中,所述第一解码参数对应的系数组的大小为W x H,W和H是正整数,所述解码块中的变换系数被划分至少一个系数组,每个系数组包括W x H个变换系数。
2.根据权利要求1所述的方法,其特征在于,所述解析码流,确定所述解码块的预测值,包括以下方法的至少之一:
解析所述码流,获取所述解码块的帧间预测参数;根据所述帧间预测参数,将一个或者多个已解码的图像作为参考图像,确定所述解码块的预测值;
或,解析所述码流,获取所述解码块的帧内预测参数;根据所述帧内预测参数,将所述解码块所在的图像中的已解码部分作为参考,确定所述解码块的预测值。
3.根据权利要求1所述的方法,其特征在于,根据所述第一系数组参数确定所述系数组的大小,包括:
根据所述第一系数组参数从系数组的大小的候选值中确定所述解码块的变换系数的系数组的大小。
4.根据权利要求3所述的方法,其特征在于,包括:
所述第一系数组参数中包含标识参数,使用所述标识参数配置所述系数组的大小的候选值。
5.根据权利要求4所述的方法,其特征在于,使用以下一种或多种方法,使用所述标识参数配置所述系数组的大小的候选值,包括:
获得所述标识参数的最大值和最小值,按照预设的划分方式确定所述标识参数除所述最大值和最小值之外的取值,使用所述标识参数的取值设置所述候选值;
获得所述标识参数的最大值和所述系数组的最大划分层次,按照所述预设的划分方式确定所述标识参数的最大值之外的取值,使用所述标识参数的取值设置所述候选值;
获得所述标识参数的最大值和所述系数组的大小的最大值与最小值之间的差值,按照所述预设的划分方式确定所述标识参数的最大值之外的取值,使用所述标识参数的取值设置所述候选值;
获得所述标识参数的最小值和所述系数组的最大向上划分层次,按照所述预设的划分方式确定所述标识参数的最小值之外的取值,使用所述标识参数的取值设置所述候选值;
获得所述标识参数的最小值和所述系数组的大小的最大值与最小值之间的差值,按照所述预设的划分方式确定所述标识参数的最小值之外的取值,使用所述标识参数的取值设置所述候选值。
6.根据权利要求1所述的方法,其特征在于,所述将所述系数组的大小设置为所述第一解码参数对应的系数组的大小,包括:
当所述量化参数的取值等于第二预设值时,将所述系数组的大小设置为所述第二预设值对应的系数组的大小;
或者,
当所述量化参数的取值在第一预设取值范围内时,将所述系数组的大小设置为所述第一预设取值范围对应的系数组的大小。
7.根据权利要求1所述的方法,其特征在于,所述对所述码流进行解析,确定所述变换系数的扫描方式,包括:
解析所述码流中的数据单元获取第一扫描方式参数,根据所述第一扫描方式参数确定所述变换系数的扫描方式;其中,所述扫描方式为对所述变换系数的二维矩阵中元素的处理顺序;所述码流中的数据单元包含以下至少之一:一个或多个参数集,分片头,块层数据单元。
8.根据权利要求7所述的方法,其特征在于,解析所述码流中的数据单元获取第一扫描方式参数,根据所述第一扫描方式参数确定所述变换系数的扫描方式,包括:
使用所述第一扫描方式参数指示的扫描方式作为所述变换系数的扫描方式。
9.根据权利要求8所述的方法,其特征在于,使用所述第一扫描方式参数指示的扫描方式作为所述变换系数的扫描方式,还包括:
根据所述第一扫描方式参数从候选扫描方式中确定所述变换系数的扫描方式。
10.根据权利要求9所述的方法,其特征在于,所述候选扫描方式包括至少之一:
一个或多个固定扫描方式;使用所述第一扫描方式参数配置所述候选扫描方式。
11.根据权利要求7所述的方法,其特征在于,解析所述码流中的数据单元获取第一扫描方式参数,根据所述第一扫描方式参数确定所述变换系数的扫描方式;包括:
所述第一扫描方式参数包含所述解码块的第二解码参数;
根据所述第二解码参数,确定所述变换系数的扫描方式,其中所述第二解码参数至少包括以下其中之一:所述解码块中包含的变换块的大小、所述解码块的预测模式、所述解码块中包含的变换块使用的变换类型、所述解码块的大小。
12.根据权利要求11所述的方法,其特征在于,根据所述第二解码参数,将所述变换系数的扫描方式设置为所述第二解码参数对应的扫描方式,包括:
当所述解码块的预测模式等于第二预设模式时,将所述变换系数的扫描方式设置为所述第二预设模式对应的扫描方式。
13.根据权利要求11所述的方法,其特征在于,根据所述第二解码参数,将所述变换系数的扫描方式设置为所述第二解码参数对应的扫描方式,包括:
当所述解码块中包含的变换块使用的变换类型等于第二变换类型时,将所述变换系数的扫描方式设置为所述第二变换类型对应的扫描方式。
14.根据权利要求11所述的方法,其特征在于,根据所述第二解码参数,将所述变换系数的扫描方式设置为所述第二解码参数对应的扫描方式,包括:
当所述解码块的大小等于第四预设值时,将所述变换系数的扫描方式设置为所述第四预设值对应的扫描方式。
15.根据权利要求1所述的方法,其特征在于,解析所述码流,确定变换系数相关的语法元素的取值,包括:
所述语法元素包括以下至少之一:
指示非0系数起始位置的语法元素;
指示系数组中包含非0系数的语法元素;
指示系数组中非0系数位置的语法元素;
指示系数组中非0系数取值的语法元素。
16.根据权利要求1所述的方法,其特征在于,所述对所述变换系数进行处理,得到变换系数的恢复值,包括:
当判断对所述变换系数进行伸缩Scaling处理时,对所述变换数据进行伸缩处理,得到所述变换系数的恢复值;
当判断不对所述变换数据进行伸缩处理时,使用所述变换系数设置所述变换系数的恢复值。
17.根据权利要求16所述的方法,其特征在于,所述对所述变换系数进行处理之前,所述方法还包括:
解析所述码流,获取用于构造所述解码块的预测差值的恢复值的第三参数;
根据所述第三参数,判断是否对所述变换系数进行伸缩处理。
18.一种图像的解码装置,其特征在于,包括:
解码模块,用于对码流进行解析,确定解码块的预测值,所述解码块中变换系数的扫描方式、系数组的大小和变换系数相关的语法元素的取值;
转换模块,用于根据所述扫描方式和所述系数组的大小,对所述解码块中的系数组进行处理,将所述语法元素转换为所述系数组中的变换系数;
处理模块,用于对所述变换系数进行处理,得到变换系数的恢复值;
变换模块,用于对所述变换系数进行处理,并将处理后的数据进行一次或多次变换,得到所述解码块的预测差值;
计算模块,用于使用所述预测值和所述预测差值确定所述解码块的恢复值;
其中,所述解码模块还用于按照如下方式对码流进行解析以确定所述系数组的大小:解析所述码流,从所述码流中的数据单元获取第一系数组参数,根据所述第一系数组参数确定所述系数组的大小;其中,所述码流中的数据单元包含以下至少之一:一个或多个参数集,分片头,块层数据单元;
其中,第一参数组参数中包含所述解码块的第一解码参数,所述解码模块还用于按照如下方式根据所述第一系数组参数确定所述系数组的大小:
根据所述解码块的第一解码参数,将所述系数组的大小设置为所述第一解码参数对应的系数组的大小,其中,所述第一解码参数至少包括以下其中之一:所述解码块的预测模式、所述解码块中包含的变换块使用的变换类型、量化参数;
其中,所述第一解码参数对应的系数组的大小为W x H,W和H是正整数,所述解码块中的变换系数被划分至少一个系数组,每个系数组包括W x H个变换系数。
CN201810681664.7A 2018-06-27 2018-06-27 图像的编码、解码方法及装置、电子设备及系统 Active CN110650343B (zh)

Priority Applications (6)

Application Number Priority Date Filing Date Title
CN201810681664.7A CN110650343B (zh) 2018-06-27 2018-06-27 图像的编码、解码方法及装置、电子设备及系统
US17/255,044 US11647196B2 (en) 2018-06-27 2019-05-24 Method and apparatus for encoding image, method and apparatus for decoding image, electronic device, and system
EP19826712.2A EP3817385A4 (en) 2018-06-27 2019-05-24 PICTURE CODING METHOD AND APPARATUS, PICTURE DECODING METHOD AND APPARATUS, ELECTRONIC DEVICE AND SYSTEM
KR1020217002590A KR102569844B1 (ko) 2018-06-27 2019-05-24 이미지 인코딩, 디코딩 방법 및 장치, 전자 설비 및 시스템
PCT/CN2019/088325 WO2020001210A1 (zh) 2018-06-27 2019-05-24 图像的编码、解码方法及装置、电子设备及系统
JP2020571788A JP7271580B2 (ja) 2018-06-27 2019-05-24 画像の符号化・復号化方法および装置、電子機器ならびにシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810681664.7A CN110650343B (zh) 2018-06-27 2018-06-27 图像的编码、解码方法及装置、电子设备及系统

Publications (2)

Publication Number Publication Date
CN110650343A CN110650343A (zh) 2020-01-03
CN110650343B true CN110650343B (zh) 2024-06-07

Family

ID=68985551

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810681664.7A Active CN110650343B (zh) 2018-06-27 2018-06-27 图像的编码、解码方法及装置、电子设备及系统

Country Status (6)

Country Link
US (1) US11647196B2 (zh)
EP (1) EP3817385A4 (zh)
JP (1) JP7271580B2 (zh)
KR (1) KR102569844B1 (zh)
CN (1) CN110650343B (zh)
WO (1) WO2020001210A1 (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112913242B (zh) * 2020-07-24 2023-02-28 深圳市大疆创新科技有限公司 编码方法和编码装置
US11722678B2 (en) * 2020-08-25 2023-08-08 Tencent America LLC Method and apparatus for transform skip coefficients coding
WO2022063040A1 (zh) * 2020-09-27 2022-03-31 腾讯科技(深圳)有限公司 视频编解码方法、装置及设备
US11876990B2 (en) * 2021-07-13 2024-01-16 Mediatek Inc. Video residual decoding apparatus using storage device to store side information and/or state information for syntax element decoding optimization and associated method
US20230099292A1 (en) * 2021-09-29 2023-03-30 Malini MANOCHA Detection and management of dysfunctions in subterranean operations
CN116074499A (zh) * 2021-11-11 2023-05-05 杭州海康威视数字技术股份有限公司 一种视频编解码方法及装置
CN116600130A (zh) * 2022-01-19 2023-08-15 杭州海康威视数字技术股份有限公司 一种系数解码方法、装置、图像解码器及电子设备
CN116095310A (zh) * 2022-03-29 2023-05-09 杭州海康威视数字技术股份有限公司 图像编解码方法、装置、电子设备及存储介质
CN117156069B (zh) * 2023-11-01 2024-01-09 南通环典计算机技术有限公司 一种软件图像数据加密传输方法

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102595113A (zh) * 2011-01-13 2012-07-18 华为技术有限公司 一种变换系数块的扫描方法、装置和系统
CN104094602A (zh) * 2012-01-19 2014-10-08 佳能株式会社 编码和解码变换单位的残差系数的有效性映射的方法、设备和系统
CN104272735A (zh) * 2013-01-16 2015-01-07 黑莓有限公司 针对视频的上下文自适应二进制熵编码的变换系数编码
CN105187829A (zh) * 2010-04-13 2015-12-23 Ge视频压缩有限责任公司 变换系数块的编码、解码装置及方法
CN105812804A (zh) * 2014-12-30 2016-07-27 浙江大华技术股份有限公司 一种确定rdoq过程中最优量化值的方法及装置
WO2016205999A1 (en) * 2015-06-23 2016-12-29 Mediatek Singapore Pte. Ltd. Adaptive coding group for image/video coding
WO2017155334A1 (ko) * 2016-03-11 2017-09-14 디지털인사이트 주식회사 비디오 코딩 방법 및 장치

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070230564A1 (en) * 2006-03-29 2007-10-04 Qualcomm Incorporated Video processing with scalability
EP2182732A1 (en) * 2008-10-28 2010-05-05 Panasonic Corporation Switching between scans in image coding
US8923390B2 (en) * 2009-06-19 2014-12-30 The Hong Kong University Of Science And Technology Scalar quantization using bit-stealing for video processing
US8929440B2 (en) * 2010-04-09 2015-01-06 Sony Corporation QP adaptive coefficients scanning and application
US9049444B2 (en) * 2010-12-22 2015-06-02 Qualcomm Incorporated Mode dependent scanning of coefficients of a block of video data
KR20120100836A (ko) * 2011-03-03 2012-09-12 한국전자통신연구원 변환 계수 스캔 방법 및 그 장치
CN102685503B (zh) * 2011-03-10 2014-06-25 华为技术有限公司 变换系数的编码方法、变换系数的解码方法,和装置
US8964849B2 (en) * 2011-11-01 2015-02-24 Blackberry Limited Multi-level significance maps for encoding and decoding
CA2773990C (en) 2011-11-19 2015-06-30 Research In Motion Limited Multi-level significance map scanning
WO2013116874A1 (en) 2012-02-05 2013-08-08 General Instrument Corporation Method of determining binary codewords for transform coefficients
CN105872539B (zh) * 2015-02-08 2020-01-14 同济大学 图像编码方法和装置及图像解码方法和装置
US10334248B2 (en) 2015-05-29 2019-06-25 Qualcomm Incorporated Coding data using an enhanced context-adaptive binary arithmetic coding (CABAC) design
CN112272298B (zh) 2015-06-23 2023-07-18 联发科技(新加坡)私人有限公司 转换系数编解码的方法及装置
US10616604B2 (en) * 2015-09-01 2020-04-07 Qualcomm Incorporated Coefficient level coding in video coding
KR102669632B1 (ko) * 2016-03-11 2024-05-28 디지털인사이트 주식회사 가변 크기의 양자화 계수 그룹을 이용한 비디오 코딩 방법 및 장치
US11228770B2 (en) * 2016-05-16 2022-01-18 Qualcomm Incorporated Loop sample processing for high dynamic range and wide color gamut video coding
CN117412044A (zh) * 2016-07-13 2024-01-16 韩国电子通信研究院 图像编码/解码方法和装置
CN110024399B (zh) * 2016-11-28 2024-05-17 韩国电子通信研究院 对图像编码/解码的方法和设备及存储比特流的记录介质

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105187829A (zh) * 2010-04-13 2015-12-23 Ge视频压缩有限责任公司 变换系数块的编码、解码装置及方法
CN102595113A (zh) * 2011-01-13 2012-07-18 华为技术有限公司 一种变换系数块的扫描方法、装置和系统
CN104094602A (zh) * 2012-01-19 2014-10-08 佳能株式会社 编码和解码变换单位的残差系数的有效性映射的方法、设备和系统
CN104272735A (zh) * 2013-01-16 2015-01-07 黑莓有限公司 针对视频的上下文自适应二进制熵编码的变换系数编码
CN105812804A (zh) * 2014-12-30 2016-07-27 浙江大华技术股份有限公司 一种确定rdoq过程中最优量化值的方法及装置
WO2016205999A1 (en) * 2015-06-23 2016-12-29 Mediatek Singapore Pte. Ltd. Adaptive coding group for image/video coding
WO2017155334A1 (ko) * 2016-03-11 2017-09-14 디지털인사이트 주식회사 비디오 코딩 방법 및 장치

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
HEVC中的变换系数熵编码优化算法;单娜娜;《计算机科学》;20170615;全文 *
Transform coefficient coding design for AVS2 video coding standard;Jing Wang;《2013 Visual Communications and Image Processing (VCIP)》;20140109;全文 *
一种H.264/AVC帧内编码算法;刘国丽;张静霞;姜颖;张斌;;微计算机信息;20100825(24);全文 *

Also Published As

Publication number Publication date
US11647196B2 (en) 2023-05-09
CN110650343A (zh) 2020-01-03
EP3817385A4 (en) 2022-07-27
JP2021532624A (ja) 2021-11-25
WO2020001210A1 (zh) 2020-01-02
JP7271580B2 (ja) 2023-05-11
KR102569844B1 (ko) 2023-08-28
KR20210024619A (ko) 2021-03-05
US20210168369A1 (en) 2021-06-03
EP3817385A1 (en) 2021-05-05

Similar Documents

Publication Publication Date Title
CN110650343B (zh) 图像的编码、解码方法及装置、电子设备及系统
US9344722B2 (en) Scanning of prediction residuals in high efficiency video coding
US9008179B2 (en) Encoding of prediction residuals for lossless video coding
CN111373753B (zh) 变换因子级别编码方法及其装置
JP7283024B2 (ja) 画像の符号化方法、復号化方法、エンコーダ、およびデコーダ
CN112655216A (zh) 基于变换的图像编码方法及装置
CN115767087A (zh) 图像编解码方法、发送比特流的方法和记录介质
CN114467310A (zh) 图像编译系统中残差数据编译的图像解码方法及其装置
CN112868233B (zh) 编码器、解码器及相应的帧间预测方法
JP7393366B2 (ja) 画像の符号化方法、復号化方法、エンコーダおよびデコーダ
CN114846789B (zh) 用于指示条带的图像分割信息的解码器及对应方法
CN114930834A (zh) 编码器、解码器及灵活档次配置的对应方法
CN113812156A (zh) 在视频编译系统中使用简化的残差数据编译解码视频的方法及其设备
CN115349258B (zh) 图像编码系统中用于残差编码的图像解码方法及其设备
CN113508587B (zh) 在视频编译系统中使用残差信息的视频解码方法及其设备
CN113273210B (zh) 用于编译关于合并数据的信息的方法和装置
CN113508587A (zh) 在视频编译系统中使用残差信息的视频解码方法及其设备

Legal Events

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