CN113473139B - 一种图像处理方法和图像处理装置 - Google Patents
一种图像处理方法和图像处理装置 Download PDFInfo
- Publication number
- CN113473139B CN113473139B CN202010246679.8A CN202010246679A CN113473139B CN 113473139 B CN113473139 B CN 113473139B CN 202010246679 A CN202010246679 A CN 202010246679A CN 113473139 B CN113473139 B CN 113473139B
- Authority
- CN
- China
- Prior art keywords
- coefficient
- transform
- decoded
- image
- transform coefficient
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/13—Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N1/00—Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
- H04N1/41—Bandwidth or redundancy reduction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/129—Scanning of coding units, e.g. zig-zag scan of transform coefficients or flexible macroblock ordering [FMO]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/17—Methods 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/172—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/17—Methods 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/176—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/18—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/63—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets
- H04N19/64—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets characterised by ordering of coefficients or of bits for transmission
- H04N19/645—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets characterised by ordering of coefficients or of bits for transmission by grouping of coefficients into blocks after the transform
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
- H04N19/91—Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression Of Band Width Or Redundancy In Fax (AREA)
Abstract
本申请实施例公开了一种图像处理方法和图像处理装置,适用于视频图像的处理场景,用于提高图像压缩效率,降低图像编码信息的存储成本。本申请实施例提供一种图像处理方法,包括:获取至少两个变换系数块,所述至少两个变换系数块中的每个变换系数块包括:至少两个变换系数,其中,一个变换系数块中的各个变换系数对应于不同的频率点;按照预设的频率点扫描次序确定一个频率点对应的所述至少两个变换系数块中的变换系数;按照预设的系数扫描次序对所述一个频率点对应的各个变换系数进行编码,以得到图像编码信息。
Description
技术领域
本申请涉及图像处理领域,尤其涉及一种图像处理方法和图像处理装置。
背景技术
目前,电子设备中的图像存储以及传输成为必不可少的处理方式,图像压缩在节省传输宽带和存储设备上愈发重要。
应用于图像压缩的国际标准有多种,例如联合图像专家组织(jointphotographic experts group,JPEG)、JPEG2000、H.264帧内编码、H.265帧内编码等。例如,JPEG标准广泛应用于视频监控摄像头等硬件设备中,产生的图像文件也能够被电子设备解码后进行播放。
例如,在基于JPEG的图像压缩方案中,编码端首先对图像块进行变换,变换使用的方法包括离散余弦变换(discrete cosine transform,DCT)。图像块经过DCT后,图像块的低频分量都集中在图像的左上角,高频分量分布在图像的右下角,图像块中第一行第一列的系数为直流(direct coefficient,DC)系数,即图像块的平均值,图像块中的其它63个系数是交流(alternate coefficient,AC)系数。然后对DC系数和AC系数进行量化,得到量化后的DC系数和AC系数。接下来对量化后的DC系数和AC系数进行压缩。编码端输出的图像压缩数据被传输至解码端之后,解码端将压缩图像数据进行解码、反量化、反变换后,可以得到重构出的图像块。
对于上述的图像压缩方法,存在图像压缩效率低的问题。另外,上述图像压缩方法产生的压缩文件消耗大量解码端的存储资源,增加了解码端的存储资源开销。
发明内容
本申请实施例提供了一种图像处理方法和图像处理装置,用于提高图像压缩效率,降低图像编码信息的存储成本。
为解决上述技术问题,本申请实施例提供以下技术方案:
第一方面,本申请实施例提供一种图像处理方法,包括:获取至少两个变换系数块,所述至少两个变换系数块中的每个变换系数块包括:至少两个变换系数,其中,一个变换系数块中的各个变换系数对应于不同的频率点;按照预设的频率点扫描次序确定一个频率点对应的所述至少两个变换系数块中的变换系数;按照预设的系数扫描次序对所述一个频率点对应的各个变换系数进行编码,以得到图像编码信息。在本申请实施例中,可以预先设置或者配置频率点扫描次序,基于该频率点扫描次序确定一个频率点,该频率点可以是任意一个频率点,每一个频率点对应于至少两个变换系数块中每个变换系数块中的一个变换系数,即一个频率点对应于多个变换系数,这多个变换系数来源于不同的变换系数块,可以预先设置或者配置系数扫描次序,基于该系数扫描次序对一个频率点对应的各个变换系数进行编码,最终可以得到图像编码信息。本申请实施例中针对至少两个变换系数块中相同频率点对应的变换系数,只需要按照系数扫描次序进行编码就可以得到图像编码信息,因此针对相同频率点对应的多个变换系数可以实现编码,提高图像压缩效率,且本申请实施例中图像编码信息是按照系数扫描次序对至少两个变换系数块中相同频率点对应的变换系数进行编码得到,编码后的图像编码信息的文件减小,降低图像编码信息的存储成本,最终节省存储资源。
在一种可能的实现方式中,所述按照预设的频率点扫描次序确定一个频率点对应的所述至少两个变换系数块中的变换系数,包括:从所述至少两个变换系数块中获取至少两个二维子带系数阵列,其中,一个二维子带系数阵列包括所述至少两个变换系数块中相同频率点对应的变换系数,不相同的二维子带系数阵列包括的变换系数对应于不同的频率点;按照预设的频率点扫描次序确定所述至少两个二维子带系数阵列中的第一二维子带系数阵列;所述按照预设的系数扫描次序对所述一个频率点对应的各个变换系数进行编码,包括:按照预设的系数扫描次序确定所述第一二维子带系数阵列中的第一变换系数;根据所述第一变换系数对应的上下文区域对所述第一变换系数进行熵编码。在该方案中,编码端可以按照预设的系数扫描次序确定第一二维子带系数阵列中的第一变换系数,第一变换系数可以是第一二维子带系数阵列中的任意一个变换系数,编码端可以分别对第一二维子带系数阵列中的每个变换系数进行无损编码,例如可以对根据第一变换系数对应的上下文区域对第一变换系数进行熵编码。本申请实施例中通过对二维子带系数阵列中的变换系数进行编码,可以得到图像编码信息,实现对图像的压缩处理。
在一种可能的实现方式中,所述按照预设的频率点扫描次序确定一个频率点对应的所述至少两个变换系数块中的变换系数,包括:从所述至少两个变换系数块中获取至少两个二维子带系数阵列,其中,一个二维子带系数阵列包括所述至少两个变换系数块中相同频率点对应的变换系数,不相同的二维子带系数阵列包括的变换系数对应于不同的频率点;按照预设的频率点扫描次序对所述至少两个二维子带系数阵列进行组合,以得到三维子带系数阵列;按照预设的三维子带系数扫描次序确定所述三维子带系数阵列中的第一二维子带系数阵列;所述按照预设的系数扫描次序对所述一个频率点对应的各个变换系数进行编码,包括:按照预设的系数扫描次序确定所述第一二维子带系数阵列中第一变换系数;根据所述第一变换系数对应的上下文区域对所述第一变换系数进行熵编码。在该方案中,三维子带系数扫描次序是对三维子带系数阵列进行扫描的次序。编码端在确定出第一二维子带系数阵列之后,编码端可以按照预设的系数扫描次序分别对第一二维子带系数阵列中的每个变换系数进行熵编码。本申请实施例中通过对二维子带系数阵列中的变换系数进行编码,可以得到图像编码信息,实现对图像的压缩处理。
在一种可能的实现方式中,所述按照预设的频率点扫描次序确定一个频率点对应的所述至少两个变换系数块中的变换系数,包括:按照预设的频率点扫描次序对所述至少两个变换系数块进行排序,得到排序后的至少两个变换系数块;从所述排序后的至少两个变换系数块中获取不同频率点对应的多个二维子带系数阵列;对所述不同频率点对应的多个二维子带系数阵列进行组合,以得到三维子带系数阵列;按照预设的三维子带系数扫描次序从所述三维子带系数阵列中确定第一二维子带系数阵列;所述按照预设的系数扫描次序对所述一个频率点对应的各个变换系数进行编码,包括:按照预设的系数扫描次序确定所述第一二维子带系数阵列中第一变换系数;根据所述第一变换系数对应的上下文区域对所述第一变换系数进行熵编码。在该方案中,编码端在确定出第一二维子带系数阵列之后,编码端可以按照预设的系数扫描次序分别对第一二维子带系数阵列中的每个变换系数进行熵编码。本申请实施例中通过对二维子带系数阵列中的变换系数进行编码,可以得到图像编码信息,实现对图像的压缩处理。
在一种可能的实现方式中,所述三维子带系数扫描次序,包括:预设的水平位置索引的变化次序;或者,预设的竖直位置索引的变化次序;或者,预设的频率索引的变化次序。在该方案中,三维子带系数阵列中的每个变换系数具有一个水平位置索引、一个竖直位置索引和一个频率索引,例如每个变换系数可以表示为C(bx,by,fs),其中,bx是水平位置索引,by是竖直位置索引,fs是频率点对应的频率索引。三维子带系数扫描次序是对三维子带系数阵列进行扫描的次序。例如,三维子带系数扫描次序以水平位置索引的变化次序从大到小(或者从小到大)确定三维子带系数阵列中的多个二维子带系数阵列,在每确定出一个二维子带系数阵列之后,再按照前述的系数扫描次序确定该二维子带系数阵列中的一个变换系数,即三维子带系数扫描次序可以用于指示依次对三维子带系数阵列中不同水平位置索引对应的二维子带系数阵列进行编码。
在一种可能的实现方式中,所述按照预设的频率点扫描次序确定一个频率点对应的所述至少两个变换系数块中的变换系数,包括:按照预设的频率点扫描次序确定所述至少两个变换系数块中由相同频率点对应的变换系数构成的第一二维子带系数阵列;所述按照预设的系数扫描次序对所述一个频率点对应的各个变换系数进行编码,包括:按照预设的系数扫描次序确定所述第一二维子带系数阵列中的第一变换系数;根据所述第一变换系数对应的上下文区域对所述第一变换系数进行熵编码。在该方案中,编码端无需组合出三维子带系数阵列。编码端在确定出第一二维子带系数阵列之后,编码端可以按照预设的系数扫描次序分别对第一二维子带系数阵列中的每个变换系数进行编码。例如,编码端按照预设的系数扫描次序确定第一二维子带系数阵列中的第一变换系数,根据第一变换系数对应的上下文区域对第一变换系数进行熵编码。本申请实施例中通过对二维子带系数阵列中的变换系数进行编码,可以得到图像编码信息,实现对图像的压缩处理。
在一种可能的实现方式中,所述按照预设的频率点扫描次序确定一个频率点对应的所述至少两个变换系数块中的变换系数,包括:按照预设的频率点扫描次序确定一个频率子带包括的所述至少两个变换系数块中的变换系数,所述一个频率子带包括的所述至少两个变换系数块中的变换系数对应于相同的频率点;所述按照预设的系数扫描次序对所述一个频率点对应的各个变换系数进行编码,包括:按照预设的系数扫描次序确定所述一个频率子带包括的第一变换系数;根据所述第一变换系数对应的上下文区域对所述第一变换系数进行熵编码。在该方案中,第一变换系数可以是一个频率子带包括的多个变换系数中的任意一个变换系数,根据第一变换系数对应的上下文区域对第一变换系数进行熵编码。本申请实施例中通过对频率子带中的变换系数进行编码,可以得到图像编码信息,实现对图像的压缩处理。
在一种可能的实现方式中,所述根据所述第一变换系数对应的上下文区域对所述第一变换系数进行熵编码,包括:从所述第一变换系数对应的上下文区域中获取所述第一变换系数的上下文信息,其中,所述第一变换系数的上下文信息包括:所述第一变换系数对应的上下文区域中的已编码变换系数;根据所述第一变换系数的上下文信息对所述第一变换系数进行估计,以得到所述第一变换系数的概率分布信息;根据所述第一变换系数的概率分布信息对所述第一变换系数进行算术编码。在该方案中,编码端根据第一变换系数的上下文信息对第一变换系数进行概率估计,以得到第一变换系数的概率分布,然后编码端根据第一变换系数的概率分布对第一变换系数进行算术编码,以得到第一变换系数对应的图像编码信息。
在一种可能的实现方式中,所述第一变换系数对应的上下文区域包括如下至少一种:所述第一变换系数的空间邻域,所述第一变换系数的子带邻域,所述第一变换系数的三维邻域。
在一种可能的实现方式中,所述根据所述第一变换系数对应的上下文区域对所述第一变换系数进行熵编码,包括:当所述第一变换系数为多个变换系数时,从所述多个变换系数对应的上下文区域中获取所述多个变换系数的上下文信息,其中,所述多个变换系数的上下文信息包括:所述多个变换系数对应的上下文区域中的已编码变换系数;根据所述多个变换系数的上下文信息对所述多个变换系数并行的进行估计,以得到所述多个变换系数的概率分布信息;根据所述多个变换系数的概率分布信息对所述多个变换系数并行的进行算术编码。在该方案中,编码端可以获取到多个的变换系数,编码端根据多个的变换系数的上下文信息并行的对多个的变换系数进行熵编码,通过并行的熵编码,可以提高图像编码效率。举例说明如下,编码端在获取系数的概率分布时,也可以对多个变换系数的概率分布并行的进行概率估计,即一次获取多个变换系数的概率分布,然后再按对多个变换系数并行的进行算术编码,提高编码效率。
在一种可能的实现方式中,所述多个变换系数对应的上下文区域包括如下至少一种:所述多个变换系数的空间邻域,所述多个变换系数的子带邻域,所述多个变换系数的三维邻域。
在一种可能的实现方式中,所述按照预设的频率点扫描次序确定一个频率点对应的所述至少两个变换系数块中的变换系数,包括:从所述至少两个变换系数块中获取至少两个二维子带系数阵列,其中,一个二维子带系数阵列包括所述至少两个变换系数块中相同频率点对应的变换系数,不相同的二维子带系数阵列包括的变换系数对应于不同的频率点;按照预设的频率点扫描次序确定所述至少两个二维子带系数阵列对应的至少两个子带图像;所述按照预设的系数扫描次序对所述一个频率点对应的各个变换系数进行编码,包括:按照预设的系数扫描次序对所述至少两个子带图像中的变换系数进行编码。在该方案中,编码端在获取到至少两个二维子带系数阵列之后,编码端采用对子带图像进行无损编码的方式,以至少两个二维子带系数阵列作为至少两个子带图像,按照预设的频率点扫描次序对至少两个子带图像中的变换系数进行图像无损编码,编码端在T恤无损编码时可以将二维子带系数阵列作为一个子带图像进行编码,简化了无损编码的实现流程。
在一种可能的实现方式中,所述获取至少两个变换系数块,包括:获取至少两个图像块的变换系数编码信息;对所述变换系数编码信息进行熵解码,以得到所述至少两个变换系数块。在该方案中,变换系数编码信息可以是至少两个图像块对应的变换系数编码信息,例如,至少两个图像块可以是JPEG文件中的图像块,图像处理装置可以使用哈夫曼解码方法对JPEG文件中的所有图像块的变换系数编码信息进行熵解码,得到至少两个图像块对应的至少两个变换系数块。本申请实施例中通过对变换系数编码信息进行熵解码,以得到至少两个变换系数块,对该变换系数块进行编码,可以得到图像编码信息,实现对图像的压缩处理。
在一种可能的实现方式中,所述获取至少两个变换系数块,包括:将原始图像区域划分为至少两个图像块,所述原始图像区域包括:像素图像区域或者残差图像区域;对所述至少两个图像块进行变换和量化,以得到所述至少两个变换系数块。在该方案中,通过对图像块的变换和量化可以生成变换系数块,从而可以对该变换系数块进行编码,可以得到图像编码信息,实现对图像的压缩处理。
第二方面,本申请实施例还提供一种图像处理方法,包括:获取图像编码信息;按照预设的频率点扫描次序确定所述图像编码信息中一个频率点对应的待解码变换系数;按照预设的系数扫描次序对所述一个频率点对应的待解码变换系数进行解码,以得到至少两个变换系数块,其中,所述至少两个变换系数块中的每个变换系数块包括:至少两个变换系数,一个变换系数块中的各个变换系数对应于不同的频率点。在本申请实施例中,可以预先设置或者配置频率点扫描次序,基于该频率点扫描次序确定图像编码信息中一个频率点对应的待解码变换系数,该频率点可以是任意一个频率点,可以预先设置系数扫描次序,基于系数扫描次序至少对一个频率点对应的待解码变换系数进行解码,以得到至少两个变换系数块,至少两个变换系数块中的每个变换系数块包括:至少两个变换系数,一个变换系数块中的各个变换系数对应于不同的频率点。本申请实施例中针对图像编码信息中相同频率点对应的待解码变换系数进行无损解码,只需要按照系数扫描次序进行解码就可以得到至少两个变换系数块,因此针对相同频率点对应的多个变换系数可以实现解码,且本申请实施例中图像编码信息是按照系数扫描次序对至少两个变换系数块中相同频率点对应的变换系数进行编码得到,编码后的图像编码信息的文件减小,降低图像编码信息的存储成本,最终节省存储资源。
在一种可能的实现方式中,所述按照预设的频率点扫描次序确定所述图像编码信息中一个频率点对应的待解码变换系数,包括:按照预设的频率点扫描次序确定所述图像编码信息中的第一待解码二维子带系数阵列,所述第一待解码二维子带系数阵列包括:所述图像编码信息中一个频率点对应的待解码变换系数;所述按照预设的系数扫描次序对所述一个频率点对应的待解码变换系数进行解码,包括:按照预设的系数扫描次序确定所述第一待解码二维子带系数阵列中的第一待解码变换系数;根据所述第一待解码变换系数对应的上下文区域对所述第一待解码变换系数进行熵解码。在该方案中,解码端采用与编码端相对应的图像解码方式,若编码端执行步骤C1至C4所示的编码方法,则在解码端收到的图像编码信息中可以包括至少两个待解码二维子带系数阵列。频率点扫描次序是待解码二维子带系数阵列的扫描次序,按照预设的频率点扫描次序从至少两个待解码二维子带系数阵列中获取第一待解码二维子带系数阵列,该第一待解码二维子带系数阵列中包括多个待解码变换系数。
在一种可能的实现方式中,所述按照预设的频率点扫描次序确定所述图像编码信息中一个频率点对应的待解码变换系数,包括:按照预设的频率点扫描次序确定所述图像编码信息中的待解码三维子带系数阵列,所述待解码三维子带系数阵列包括:所述图像编码信息中所有频率点分别对应的待解码变换系数;按照预设的三维子带系数扫描次序确定所述待解码三维子带系数阵列中的第一待解码二维子带系数阵列,所述第一待解码二维子带系数阵列包括:所述图像编码信息中一个频率点对应的待解码变换系数;所述按照预设的系数扫描次序对所述一个频率点对应的待解码变换系数进行解码,包括:按照预设的系数扫描次序确定所述第一待解码二维子带系数阵列中的第一待解码变换系数;根据所述第一待解码变换系数对应的上下文区域对所述第一待解码变换系数进行熵解码。在该方案中,解码端采用与编码端相对应的图像解码方式,在编码端采用生成三维子带系数阵列的情况下,解码端预设的系数扫描次序对第二二维子带系数阵列进行无损解码,以得到所述至少两个变换系数块。
在一种可能的实现方式中,所述三维子带系数扫描次序,包括:预设的水平位置索引的变化次序;或者,预设的竖直位置索引的变化次序;或者,预设的频率索引的变化次序。
在一种可能的实现方式中,所述按照预设的频率点扫描次序确定所述图像编码信息中一个频率点对应的待解码变换系数,包括:按照预设的频率点扫描次序确定所述图像编码信息中一个频率子带包括的待解码变换系数,所述一个频率子带包括的待解码变换系数对应于相同的频率点;所述按照预设的系数扫描次序对所述一个频率点对应的待解码变换系数进行解码,包括:按照预设的系数扫描次序确定所述一个频率子带中的第一待解码变换系数;根据所述第一待解码变换系数对应的上下文区域对所述第一待解码变换系数进行熵解码。在该方案中,解码端获取多个频率子带对应的图像编码信息,解码端采用对频率子带进行无损解码的方式,以至少两个二维子带系数阵列作为至少两个频率子带,按照预设的系数扫描次序对至少两个频率子带对应的图像编码信息进行无损解码,解码端在无损解码时可以将二维子带系数阵列作为一个频率子带进行解码,简化了无损解码的实现流程。
在一种可能的实现方式中,所述根据所述第一待解码变换系数对应的上下文区域对所述第一待解码变换系数进行熵解码,包括:从所述第一待解码变换系数对应的上下文区域中获取所述第一待解码变换系数的上下文信息,其中,所述第一待解码变换系数对应的上下文区域包括:所述第一待解码变换系数对应的上下文区域中的已解码变换系数;根据所述第一待解码变换系数的上下文信息对所述第一待解码变换系数进行估计,以得到所述第一待解码变换系数的概率分布信息;根据所述第一待解码变换系数的概率分布信息对所述第一待解码变换系数进行算术解码,以得到解码后的第一变换系数,所述解码后的第一变换系数属于所述至少两个变换系数块。在该方案中,解码端在获取到第一变换系数的上下文信息之后,解码端根据第一变换系数的上下文信息对第一变换系数进行熵解码,以得到解码后的第一变换系数。解码端执行的熵解码可以包括概率估计和算术解码。具体的,解码端根据第一变换系数的上下文信息对第一变换系数进行概率估计,以得到第一变换系数的概率分布,然后解码端根据第一变换系数的概率分布对第一变换系数进行算术解码,以得到第一变换系数对应的图像解码信息。
在一种可能的实现方式中,所述第一待解码变换系数对应的上下文区域包括如下至少一种:所述第一待解码变换系数的空间邻域,所述第一待解码变换系数的子带邻域,所述第一待解码变换系数的三维邻域。
在一种可能的实现方式中,所述根据所述第一待解码变换系数对应的上下文区域对所述第一待解码变换系数进行熵解码,包括:当所述第一待解码变换系数为多个待解码变换系数时,从所述多个待解码变换系数对应的上下文区域中获取所述多个待解码变换系数的上下文信息,其中,所述多个待解码的上下文信息包括:所述多个待解码变换系数对应的上下文区域中的已解码变换系数;根据所述多个待解码变换系数的上下文信息对所述多个待解码变换系数并行的进行估计,以得到所述第一待解码变换系数的概率分布信息;根据所述多个待解码变换系数的概率分布信息对所述多个待解码变换系数并行的进行算术解码,以得到解码后的第一变换系数,所述解码后的第一变换系数属于所述至少两个变换系数块。在该方案中,解码端采用与编码端相对应的图像解码方式,编码端在编码时可以并行的进行编码,则在解码端通过并行的解码,可以提高图像解码效率。
在一种可能的实现方式中,所述多个待解码变换系数对应的上下文区域包括如下至少一种:所述多个待解码变换系数的空间邻域,所述多个待解码变换系数的子带邻域,所述多个待解码变换系数的三维邻域。
在一种可能的实现方式中,所述按照预设的频率点扫描次序确定所述图像编码信息中一个频率点对应的待解码变换系数,包括:按照预设的频率点扫描次序确定所述图像编码信息中的第一子带图像,所述第一子带图像包括:所述图像编码信息中的一个频率点对应的待解码变换系数;所述按照预设的系数扫描次序对所述一个频率点对应的待解码变换系数进行解码,包括:按照预设的系数扫描次序对所述第一子带图像的待解码系数进行解码,以得到所述至少两个变换系数块。在该方案中,解码端采用针对子带图像无损解码,得到多个变换系数之后,解码端采用对子带图像进行无损解码的方式,以至少两个二维子带系数阵列作为至少两个子带图像,按照预设的系数扫描次序对至少两个子带图像对应的图像编码信息进行无损解码,解码端在无损解码时可以将二维子带系数阵列作为一个子带图像进行解码,简化了无损解码的实现流程。
在一种可能的实现方式中,所述得到至少两个变换系数块之后,所述方法还包括:对所述至少两个变换系数块进行熵编码,以得到变换系数编码信息;根据所述变换系数编码信息生成至少两个图像块;根据所述至少两个图像块还原出原始图像区域,所述原始图像区域包括:像素图像区域或者残差图像区域。在该方案中,解码端采用与编码端相对应的图像解码方式,若编码端通过对变换系数编码信息进行熵解码得到变换系数块,并对变换系数块进行编码,则解码端可以对至少两个变换系数块进行熵编码,以得到变换系数编码信息。本申请实施例中根据变换系数编码信息生成至少两个图像块,再根据至少两个图像块还原出原始图像区域,从而可以完成图像的解压缩处理。
在一种可能的实现方式中,所述得到至少两个变换系数块之后,所述方法还包括:对所述至少两个变换系数块进行反量化和反变换,以得到至少两个图像块;根据所述至少两个图像块还原出原始图像区域,所述原始图像区域包括:像素图像区域或者残差图像区域。在该方案中,解码端在生成至少两个变换系数块之后,解码端根据该至少两个变换系数块生成至少两个图像块。其中,解码端可以通过反变换和反量化的方式对至少两个变换系数块进行处理,从而可以生成至少两个图像块。
第三方面,本申请实施例提供一种图像处理装置,包括:收发模块,用于获取至少两个变换系数块,所述至少两个变换系数块中的每个变换系数块包括:至少两个变换系数,其中,一个变换系数块中的各个变换系数对应于不同的频率点;处理模块,用于按照预设的频率点扫描次序确定一个频率点对应的所述至少两个变换系数块中的变换系数;按照预设的系数扫描次序对所述一个频率点对应的各个变换系数进行编码,以得到图像编码信息。在本申请实施例中,可以预先设置或者配置频率点扫描次序,基于该频率点扫描次序确定一个频率点,该频率点可以是任意一个频率点,每一个频率点对应于至少两个变换系数块中每个变换系数块中的一个变换系数,即一个频率点对应于多个变换系数,这多个变换系数来源于不同的变换系数块,可以预先设置或者配置系数扫描次序,基于该系数扫描次序对一个频率点对应的各个变换系数进行编码,最终可以得到图像编码信息。本申请实施例中针对至少两个变换系数块中相同频率点对应的变换系数,只需要按照系数扫描次序进行编码就可以得到图像编码信息,因此针对相同频率点对应的多个变换系数可以实现编码,提高图像压缩效率,且本申请实施例中图像编码信息是按照系数扫描次序对至少两个变换系数块中相同频率点对应的变换系数进行编码得到,编码后的图像编码信息的文件减小,降低图像编码信息的存储成本,最终节省存储资源。
在一种可能的实现方式中,所述处理模块,用于从所述至少两个变换系数块中获取至少两个二维子带系数阵列,其中,一个二维子带系数阵列包括所述至少两个变换系数块中相同频率点对应的变换系数,不相同的二维子带系数阵列包括的变换系数对应于不同的频率点;按照预设的频率点扫描次序确定所述至少两个二维子带系数阵列中的第一二维子带系数阵列;按照预设的系数扫描次序确定所述第一二维子带系数阵列中的第一变换系数;根据所述第一变换系数对应的上下文区域对所述第一变换系数进行熵编码。
在一种可能的实现方式中,所述处理模块,用于从所述至少两个变换系数块中获取至少两个二维子带系数阵列,其中,一个二维子带系数阵列包括所述至少两个变换系数块中相同频率点对应的变换系数,不相同的二维子带系数阵列包括的变换系数对应于不同的频率点;按照预设的频率点扫描次序对所述至少两个二维子带系数阵列进行组合,以得到三维子带系数阵列;按照预设的三维子带系数扫描次序确定所述三维子带系数阵列中的第一二维子带系数阵列;按照预设的系数扫描次序确定所述第一二维子带系数阵列中第一变换系数;根据所述第一变换系数对应的上下文区域对所述第一变换系数进行熵编码。
在一种可能的实现方式中,所述处理模块,用于按照预设的频率点扫描次序对所述至少两个变换系数块进行排序,得到排序后的至少两个变换系数块;从所述排序后的至少两个变换系数块中获取不同频率点对应的多个二维子带系数阵列;对所述不同频率点对应的多个二维子带系数阵列进行组合,以得到三维子带系数阵列;按照预设的三维子带系数扫描次序从所述三维子带系数阵列中确定第一二维子带系数阵列;按照预设的系数扫描次序确定所述第一二维子带系数阵列中第一变换系数;根据所述第一变换系数对应的上下文区域对所述第一变换系数进行熵编码。
在一种可能的实现方式中,所述三维子带系数扫描次序,包括:预设的水平位置索引的变化次序;或者,预设的竖直位置索引的变化次序;或者,预设的频率索引的变化次序。
在一种可能的实现方式中,所述处理模块,用于按照预设的频率点扫描次序确定所述至少两个变换系数块中由相同频率点对应的变换系数构成的第一二维子带系数阵列;按照预设的系数扫描次序确定所述第一二维子带系数阵列中的第一变换系数;根据所述第一变换系数对应的上下文区域对所述第一变换系数进行熵编码。
在一种可能的实现方式中,所述处理模块,用于按照预设的频率点扫描次序确定一个频率子带包括的所述至少两个变换系数块中的变换系数,所述一个频率子带包括的所述至少两个变换系数块中的变换系数对应于相同的频率点;按照预设的系数扫描次序确定所述一个频率子带包括的第一变换系数;根据所述第一变换系数对应的上下文区域对所述第一变换系数进行熵编码。
在一种可能的实现方式中,所述处理模块,用于从所述第一变换系数对应的上下文区域中获取所述第一变换系数的上下文信息,其中,所述第一变换系数的上下文信息包括:所述第一变换系数对应的上下文区域中的已编码变换系数;根据所述第一变换系数的上下文信息对所述第一变换系数进行估计,以得到所述第一变换系数的概率分布信息;根据所述第一变换系数的概率分布信息对所述第一变换系数进行算术编码。
在一种可能的实现方式中,所述第一变换系数对应的上下文区域包括如下至少一种:所述第一变换系数的空间邻域,所述第一变换系数的子带邻域,所述第一变换系数的三维邻域。
在一种可能的实现方式中,所述处理模块,用于当所述第一变换系数为多个变换系数时,从所述多个变换系数对应的上下文区域中获取所述多个变换系数的上下文信息,其中,所述多个变换系数的上下文信息包括:所述多个变换系数对应的上下文区域中的已编码变换系数;根据所述多个变换系数的上下文信息对所述多个变换系数并行的进行估计,以得到所述多个变换系数的概率分布信息;根据所述多个变换系数的概率分布信息对所述多个变换系数并行的进行算术编码。
在一种可能的实现方式中,所述多个变换系数对应的上下文区域包括如下至少一种:所述多个变换系数的空间邻域,所述多个变换系数的子带邻域,所述多个变换系数的三维邻域。
在一种可能的实现方式中,所述处理模块,用于从所述至少两个变换系数块中获取至少两个二维子带系数阵列,其中,一个二维子带系数阵列包括所述至少两个变换系数块中相同频率点对应的变换系数,不相同的二维子带系数阵列包括的变换系数对应于不同的频率点;按照预设的频率点扫描次序确定所述至少两个二维子带系数阵列对应的至少两个子带图像;按照预设的系数扫描次序对所述至少两个子带图像中的变换系数进行编码。
在一种可能的实现方式中,所述收发模块,用于获取至少两个图像块的变换系数编码信息;对所述变换系数编码信息进行熵解码,以得到所述至少两个变换系数块。
在一种可能的实现方式中,所述收发模块,用于将原始图像区域划分为至少两个图像块,所述原始图像区域包括:像素图像区域或者残差图像区域;对所述至少两个图像块进行变换和量化,以得到所述至少两个变换系数块。
在本申请的第三方面中,图像处理装置的组成模块还可以执行前述第一方面以及各种可能的实现方式中所描述的步骤,详见前述对第一方面以及各种可能的实现方式中的说明。
第四方面,本申请实施例还提供一种图像处理装置,包括:收发模块,用于获取图像编码信息;处理模块,用于按照预设的频率点扫描次序确定所述图像编码信息中一个频率点对应的待解码变换系数;按照预设的系数扫描次序对所述一个频率点对应的待解码变换系数进行解码,以得到至少两个变换系数块,其中,所述至少两个变换系数块中的每个变换系数块包括:至少两个变换系数,一个变换系数块中的各个变换系数对应于不同的频率点。
在一种可能的实现方式中,所述处理模块,用于按照预设的频率点扫描次序确定所述图像编码信息中的第一待解码二维子带系数阵列,所述第一待解码二维子带系数阵列包括:所述图像编码信息中一个频率点对应的待解码变换系数;按照预设的系数扫描次序确定所述第一待解码二维子带系数阵列中的第一待解码变换系数;根据所述第一待解码变换系数对应的上下文区域对所述第一待解码变换系数进行熵解码。
在一种可能的实现方式中,所述处理模块,用于按照预设的频率点扫描次序确定所述图像编码信息中的待解码三维子带系数阵列,所述待解码三维子带系数阵列包括:所述图像编码信息中所有频率点分别对应的待解码变换系数;按照预设的三维子带系数扫描次序确定所述待解码三维子带系数阵列中的第一待解码二维子带系数阵列,所述第一待解码二维子带系数阵列包括:所述图像编码信息中一个频率点对应的待解码变换系数;按照预设的系数扫描次序确定所述第一待解码二维子带系数阵列中的第一待解码变换系数;根据所述第一待解码变换系数对应的上下文区域对所述第一待解码变换系数进行熵解码。
在一种可能的实现方式中,所述三维子带系数扫描次序,包括:预设的水平位置索引的变化次序;或者,预设的竖直位置索引的变化次序;或者,预设的频率索引的变化次序。
在一种可能的实现方式中,所述处理模块,用于按照预设的频率点扫描次序确定所述图像编码信息中一个频率子带包括的待解码变换系数,所述一个频率子带包括的待解码变换系数对应于相同的频率点;按照预设的系数扫描次序确定所述一个频率子带中的第一待解码变换系数;根据所述第一待解码变换系数对应的上下文区域对所述第一待解码变换系数进行熵解码。
在一种可能的实现方式中,所述处理模块,用于从所述第一待解码变换系数对应的上下文区域中获取所述第一待解码变换系数的上下文信息,其中,所述第一待解码变换系数对应的上下文区域包括:所述第一待解码变换系数对应的上下文区域中的已解码变换系数;根据所述第一待解码变换系数的上下文信息对所述第一待解码变换系数进行估计,以得到所述第一待解码变换系数的概率分布信息;根据所述第一待解码变换系数的概率分布信息对所述第一待解码变换系数进行算术解码,以得到解码后的第一变换系数,所述解码后的第一变换系数属于所述至少两个变换系数块。
在一种可能的实现方式中,所述第一待解码变换系数对应的上下文区域包括如下至少一种:所述第一待解码变换系数的空间邻域,所述第一待解码变换系数的子带邻域,所述第一待解码变换系数的三维邻域。
在一种可能的实现方式中,所述处理模块,用于当所述第一待解码变换系数为多个待解码变换系数时,从所述多个待解码变换系数对应的上下文区域中获取所述多个待解码变换系数的上下文信息,其中,所述多个待解码的上下文信息包括:所述多个待解码变换系数对应的上下文区域中的已解码变换系数;根据所述多个待解码变换系数的上下文信息对所述多个待解码变换系数并行的进行估计,以得到所述第一待解码变换系数的概率分布信息;根据所述多个待解码变换系数的概率分布信息对所述多个待解码变换系数并行的进行算术解码,以得到解码后的第一变换系数,所述解码后的第一变换系数属于所述至少两个变换系数块。
在一种可能的实现方式中,所述多个待解码变换系数对应的上下文区域包括如下至少一种:所述多个待解码变换系数的空间邻域,所述多个待解码变换系数的子带邻域,所述多个待解码变换系数的三维邻域。
在一种可能的实现方式中,所述处理模块,用于按照预设的频率点扫描次序确定所述图像编码信息中的第一子带图像,所述第一子带图像包括:所述图像编码信息中的一个频率点对应的待解码变换系数;按照预设的系数扫描次序对所述第一子带图像的待解码系数进行解码,以得到所述至少两个变换系数块。
在一种可能的实现方式中,所述处理模块,还用于得到至少两个变换系数块之后,对所述至少两个变换系数块进行熵编码,以得到变换系数编码信息;根据所述变换系数编码信息生成至少两个图像块;根据所述至少两个图像块还原出原始图像区域,所述原始图像区域包括:像素图像区域或者残差图像区域。
在一种可能的实现方式中,所述处理模块,还用于得到至少两个变换系数块之后,对所述至少两个变换系数块进行反量化和反变换,以得到至少两个图像块;根据所述至少两个图像块还原出原始图像区域,所述原始图像区域包括:像素图像区域或者残差图像区域。
在本申请的第四方面中,图像处理装置的组成模块还可以执行前述第二方面以及各种可能的实现方式中所描述的步骤,详见前述对第二方面以及各种可能的实现方式中的说明。
第五方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述第一方面或第二方面所述的方法。
第六方面,本申请实施例提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面或第二方面所述的方法。
第七方面,本申请实施例提供一种图像处理装置,该图像处理装置可以包括图像编码装置或者图像解码装置或者芯片等实体,所述图像处理装置包括:处理器。该图像处理还可以包括存储器;所述存储器用于存储指令;所述处理器用于执行所述存储器中的所述指令,使得所述图像处理装置执行如前述第一方面或第二方面中任一项所述的方法。
第八方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述第一方面或第二方面所述的方法。
第九方面,本申请实施例提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面或第二方面所述的方法。
第十方面,本申请提供了一种芯片系统,该芯片系统包括处理器,用于支持图像编码装置或者图像解码装置实现上述第一方面或第二方面中所涉及的功能,例如,发送或处理上述方法中所涉及的数据和/或信息。在一种可能的设计中,所述芯片系统还包括存储器,所述存储器,用于保存图像编码装置或者图像解码装置必要的程序指令和数据。该芯片系统,可以由芯片构成,也可以包括芯片和其他分立器件。
附图说明
图1为本申请实施例提供的图像处理系统的组成结构示意图;
图2为本申请实施例提供的图像编码装置和图像解码装置应用于终端设备的示意图;
图3为本申请实施例提供的图像编码装置和图像解码装置之间的一种交互流程示意图;
图4为本申请实施例提供的一种图像编码流程的示意图;
图5为本申请实施例提供的获取变换系数块的示意图;
图6为本申请实施例提供的获取二维子带系数阵列的示意图;
图7为本申请实施例提供的变换系数块的示意图;
图8为本申请实施例提供的一种图像解码流程的示意图;
图9为本申请实施例提供的二维子带系数阵列和变换系数块之间的对应关系的示意图;
图10为本申请实施例提供的一种图像编码流程的示意图;
图11a为本申请实施例提供的三维子带系数阵列的示意图;
图11b为本申请实施例提供的变换系数的三维邻域的示意图;
图12为本申请实施例提供的一种图像解码流程的示意图;
图13为本申请实施例提供的一种图像编码流程的示意图;
图14为本申请实施例提供的一种图像编码流程的示意图;
图15为本申请实施例提供的一种图像编码流程的示意图;
图16为本申请实施例提供的一种图像解码流程的示意图;
图17为本申请实施例提供的一种图像编码装置的组成结构示意图;
图18为本申请实施例提供的一种图像解码装置的组成结构示意图;
图19为本申请实施例提供的另一种图像编码装置的组成结构示意图;
图20为本申请实施例提供的另一种图像解码装置的组成结构示意图。
具体实施方式
本申请实施例提供了一种图像处理方法和图像处理装置,用于提高图像压缩效率,降低图像编码信息的存储成本。
下面结合附图,对本申请的实施例进行描述。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的术语在适当情况下可以互换,这仅仅是描述本申请的实施例中对相同属性的对象在描述时所采用的区分方式。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,以便包含一系列单元的过程、方法、系统、产品或设备不必限于那些单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它单元。
本申请实施例的技术方案可以应用于各种的图像处理系统,如图1所示,为本申请实施例提供的图像处理系统的组成结构示意图。图像处理系统100可以包括:图像编码装置101和图像解码装置102。其中,图像编码装置101可用于根据至少两个变换系数块生成图像编码信息,例如,至少两个变换系数块可以根据原始图像区域对应的至少两个图像块生成。其中,原始图像区域可以是整幅图像或一个矩形图像区域,或者其它形状的图像区域,此次不做限定,例如原始图像区域包括:像素图像区域或者残差图像区域。另外,图像编码信息可以是图像编码码流(也可以称为压缩码流),然后该图像编码信息可以通过图像传输通道传输给图像解码装置102,图像解码装置102可以接收到图像编码信息,然后图像解码装置102可以对该图像编码信息进行解码,得到至少两个变换系数块。例如,至少两个变换系数块还可以用于还原出原始图像。
在本申请的实施例中,该图像编码装置可以应用于各种有图像通信需要的终端设备、有图像转码需要的无线设备与核心网设备,例如图像编码装置可以是上述终端设备或者无线设备或者核心网设备的图像编码器。同样的,该图像解码装置可以应用于各种有图像通信需要的终端设备、有图像转码需要的无线设备与核心网设备,例如图像解码装置可以是上述终端设备或者无线设备或者核心网设备的图像解码器。
例如,图像编码装置具体图像编码器,图像解码装置具体为图像解码器。终端设备可以包括:图像编码器和信道编码器,或者终端设备可以包括图像解码器和信道解码器。具体的,信道编码器用于对图像信号进行信道编码,信道解码器用于对图像信号进行信道解码,图像编码器用于对原始图像区域进行编码,例如图像编码器具有无损编码功能。图像解码器用于对图像编码信息进行解码,例如图像解码器具有无损解码功能。例如可使用的无损编码方法包括熵编码、哈夫曼(Huffman)编码等。例如可使用的无损解码方法包括熵解码、哈夫曼解码等。
如图2所示,为本申请实施例提供的图像编码装置和图像解码装置应用于终端设备的示意图。在第一终端设备20中可以包括:图像编码器201和信道编码器202。在第二终端设备21中可以包括:图像解码器211和信道解码器212。第一终端设备20连接无线或者有线的第一网络通信设备22,第一网络通信设备22和无线或者有线的第二网络通信设备23之间通过数字信道连接,第二终端设备21连接无线或者有线的第二网络通信设备23。其中,上述无线或者有线的网络通信设备可以泛指信号传输设备,例如通信基站,数据交换设备等。
在图像通信中,作为发送端的终端设备对采集到的图像信号进行图像编码,再进行信道编码后,通过无线网络或者核心网进行在数字信道中传输。而作为接收端的终端设备根据接收到的信号进行信道解码,以得到图像信号编码码流,然后经过图像解码恢复出图像信号,由接收端的终端设备进回放。
本申请实施例提供针对原始图像区域对应的变换系数块的编码,提高图像编码性能,最终节省存储资源,进一步提高图像的编码效率。例如,目前的熵编码产生的压缩文件消耗大量服务器侧的存储资源,本申请实施例可应用于熵编码图像的高效转码。本申请实施例还可以应用于服务器端,对熵编码产生的压缩文件进行转码,提高图像编码性能,最终节省存储资源。
接下来基于前述的系统架构以及图像编码装置和图像解码装置,对本申请实施例提供的图像处理方法进行说明。如图3所示,为本申请实施例中图像编码装置和图像解码装置之间的一种交互流程示意图,其中,下述步骤301至步骤303可以由图像编码装置(如下简称编码端)执行,下述步骤311至步骤313可以由图像解码装置(如下简称解码端)执行,主要包括如下过程:
301、获取至少两个变换系数块,至少两个变换系数块中的每个变换系数块包括:至少两个变换系数,其中,一个变换系数块中的各个变换系数对应于不同的频率点。
其中,至少两个变换系数块中的每个变换系数块包括:至少两个变换系数,一个变换系数块中的各个变换系数对应于不同的频率点,即对于每一个变换系数块,该变换系数块中的所有变换系数都具有不同的频率点,对于每个变换系数都包括频率点信息,每个变换系数除了包括频率点,还可以包括位置信息。
对于一个变换系数的频率点可以用(fx,fy)表示,fx和fy表示频率点对应的二维频率坐标取值,一个变换系数的位置信息可以用(bx,by)表示,bx和by表示变换系数的二维位置坐标取值,变换系数块中的每个变换系数可以用表示。另外,还可以为不同的频率点设置频率索引,例如频率索引为fs。
在本申请的一些实施例中,步骤301获取至少两个变换系数块,包括:
A1、将原始图像区域划分为至少两个图像块,原始图像区域包括:像素图像区域或者残差图像区域;
A2、对至少两个图像块进行变换和量化,以得到至少两个变换系数块。
其中,原始图像区域(也可以简称为原始图像)可以是整幅图像或一个矩形图像区域,或者其它形状的图像区域。该原始图像区域是待编码(或者称为待处理)的图像。编码端将待处理图像或者图像区域划分为相同预置大小的至少两个图像块,例如,预置大小的子图像块的尺寸可以是4×4、8×8、16×16、32×32、64×64、128×128和256×256等。本申请实施例中图像块是通过对原始图像进行划分得到的,或者该图像块是通过编码端的外接设备传输给编码端得到。其中,图像块也可以称为子图像,或者子图像块等。
需要说明的是,本申请实施例中,图像块包括的图像数据可以包括亮度分量、色度分量,R分量、G分量、B分量等。
在本申请实施例中,编码端将待处理的原始图像区域划分为预置大小的图像块之后,可以对每个图像块进行变换和量化,以得到至少两个变换系数块。例如,编码端获取到至少两个图像块之后,编码端根据至少两个图像块获取至少两个变换系数块,其中,每个图像块可以生成一个变换系数块,图像块和变换系数块是一一对应的。变换系数块是多个变换系数组成的数据块,例如变换系数块可以通过对图像块进行离散余弦变换(discretecosine transform,DCT)得到。例如,在DCT变换中,fm表示的是某个频率点(例如频率点m)对应的变换系数,k=0,…,n-1,k表示的是像素点的位置,xk表示k位置的像素值,
本申请实施例中通过对图像块的变换和量化可以生成变换系数块,从而可以对该变换系数块进行编码,可以得到图像编码信息,实现对图像的压缩处理。
在本申请的一些实施例中,步骤301获取至少两个变换系数块,包括:
B1、获取至少两个图像块的变换系数编码信息;
B2、对变换系数编码信息进行熵解码,以得到至少两个变换系数块。
其中,变换系数编码信息可以是至少两个图像块对应的变换系数编码信息,例如,至少两个图像块可以是JPEG文件中的图像块,图像处理装置可以使用哈夫曼解码方法对JPEG文件中的所有图像块的变换系数编码信息进行熵解码,得到至少两个图像块对应的至少两个变换系数块。本申请实施例中通过对变换系数编码信息进行熵解码,以得到至少两个变换系数块,对该变换系数块进行编码,可以得到图像编码信息,实现对图像的压缩处理。
302、按照预设的频率点扫描次序确定一个频率点对应的至少两个变换系数块中的变换系数。
303、按照预设的系数扫描次序对一个频率点对应的各个变换系数进行编码,以得到图像编码信息。
在本申请实施例中,频率点扫描次序可以是在编码端中预设的或者预先配置的,频率点扫描次序是指扫描频率点的先后顺序,至少两个变换系数块中的每个变换系数块包括:至少两个变换系数,其中,一个变换系数块中的各个变换系数对应于不同的频率点,因此针对所有的频率点可以设置频率点扫描次序,通过该频率点扫描次序确定出一个频率点,同样的通过该频率点扫描次序可以依次确定出不同的频率点,步骤302和步骤303中以针对一个频率点的编码处理流程为例,对于其他频率点的编码处理流程都可以基于步骤302和步骤303以及针对步骤302和步骤303包括的详细流程来实现。
本申请实施例中,至少两个变换系数块可以是N个变换系数块,一个频率点对应的至少两个变换系数块中的变换系数可以是一个频率点对应于N个变换系数块中的每一个变换系数块中的一个变换系数,则一个频率点对应于N个变换系数,这N个变换系数分别来源于N个变换系数块中的每一个变换系数块中,N的取值可以为正整数,例如N为大于或等于2的整数。
在本申请实施例中,系数扫描次序可以是在编码端中预设的或者预先配置的,系数扫描次序是指变换系数的扫描次序,按照预设的系数扫描次确定一个频率点对应的一个变换系数,再对确定出的该变换系数进行编码,基于步骤303中的系数扫描次序可以依次确定出一个频率点对应的其他变换系数,再对依次确定出的变换系数进行编码,最终可以图像编码信息。
在本申请实施例中,编码端获取到至少两个变换系数块之后,对于至少两个变换系数块中相同频率点对应的多个变换系数可以进行编码。例如可使用的无损编码方法包括熵编码、哈夫曼(Huffman)编码等。不限定的是,本申请实施例中熵编码采用的是深度网络,对于深度网络的结构不做限定。
在某一个频率点对应的所有变换系数编码完成之后,按照预设的频率点扫描次序确定下一个频率点,再针对该下一个频率点对应的多个变换系数进行编码,按照该频率点扫描次序依次获取到所有的频率点,当所有频率点对应的变换系数都完成无损编码之后,编码端可以生成图像编码信息。编码端生成图像编码信息之后,编码端可以将图像编码信息写入码流,然后编码端向解码端发送该码流。
其中,频率点扫描次序是编码时选择频率点的先后顺序,频率点扫描次序在后续实施例中简称为“预置次序”或者“预置次序一”。频率点扫描次序有多种实现方式,例如可以是按照之字(zig-zag)扫描得到的处理次序,还可以使用其他扫描方法得到处理次序,例如逐行扫描、逐列扫描、对角扫描、水平反向扫描和垂直反向扫描等。其中逐行扫描是指从图像的第一行一直连续扫描到最后一行,逐列扫描是指从图像的第一列一直连续扫描到最后一列。对角扫描是指从图像的第一行按照对角方式连续扫描到最后一行。水平反向扫描是指从图像的最后一行按照水平方向一直连续扫描到第一行,垂直反向扫描是指从图像的最后一行按照垂直方向一直连续扫描到第一行。系数扫描次序是编码时选择变换系数的先后顺序,系数扫描次序在后续实施例中简称为“预置次序”或者“预置次序二”。系数扫描次序有多种实现方式,例如可以是按照之字(zig-zag)扫描得到的处理次序,还可以使用其他扫描方法得到处理次序,例如逐行扫描、逐列扫描、对角扫描、水平反向扫描和垂直反向扫描等。
其中,频率点扫描次序和系数扫描次序为相同的图像扫描次序;或者,频率点扫描次序和系数扫描次序为不相同的图像扫描次序,此处不做限定。
举例说明如下,先按照频率点扫描次序获取频率点(fx=0,fy=0)对应的所有变换系数,接下来按照系数扫描次序获取频率点(fx=0,fy=0)对应的一个变换系数,对该变换系数进行编码,然后按照系数扫描次序获取频率点(fx=0,fy=0)对应的下一个变换系数,对该下一个变换系数进行编码,直至按照系数扫描次序编码完频率点(fx=0,fy=0)对应的所有变换系数。对频率点(fx=0,fy=0)对应的所有变换系数编码完成之后,接下来再获取频率点(fx=0,fy=1)对应的所有变换系数,对频率点(fx=0,fy=1)对应的所有变换系数进行编码,按照频率点扫描次序依次确定出所有频率点对应的变换系数进行编码,当所有频率点对应的变换系数都完成编码之后,编码端可以输出图像编码信息。
在本申请的一些实施例中,步骤302按照预设的频率点扫描次序确定一个频率点对应的所述至少两个变换系数块中的变换系数,包括:
C1、从至少两个变换系数块中获取至少两个二维子带系数阵列,其中,一个二维子带系数阵列包括至少两个变换系数块中相同频率点对应的变换系数,不相同的二维子带系数阵列包括的变换系数对应于不同的频率点。
C2、按照预设的频率点扫描次序确定至少两个二维子带系数阵列中的第一二维子带系数阵列。
步骤303按照预设的系数扫描次序对一个频率点对应的各个变换系数进行编码,包括:
C3、按照预设的系数扫描次序确定第一二维子带系数阵列中的第一变换系数;
C4、根据第一变换系数对应的上下文区域对第一变换系数进行熵编码。
其中,编码端可以根据频率点的不同对至少两个变换系数块进行排列,从而得到至少两个二维子带系数阵列。同一个二维子带系数阵列中包括相同频率点对应的变换系数块中的变换系数,不同的二维子带系数阵列具有不同的频率点,即编码端可以将相同频率点对应的至少两个变换系数块中的变换系数归属到一个二维子带系数阵列中,因此存在多少个频率点,就可以得到多个频率点对应的二维子带系数阵列。
举例说明如下,获取图像中8x8的变换系数块中指定频率点的变换系数值,构成该频率点的二维子带系数阵列。在获取图像中所有8x8的变换系数块中频率点的变换系数值得到的二维子带系数阵列之后,同样的,获取剩余的频率点的二维子带系数阵列。一个8x8的变换系数块共有64个频率点,因此可获得当前编码图像的64个二维子带系数阵列。
编码端将至少两个变换系数块按照不同的频率点对变换系数进行组合,可以得到为至少两个二维子带系数阵列,按照预设的频率点扫描次序从至少两个二维子带系数阵列中获取第一二维子带系数阵列,第一二维子带系数阵列为至少两个二维子带系数阵列中的一个二维子带系数阵列,该第一二维子带系数阵列是按照频率点扫描次序得到的一个二维子带系数阵列,该第一二维子带系数阵列中包括多个变换系数,编码端可以按照预设的系数扫描次序确定第一二维子带系数阵列中的第一变换系数,第一变换系数可以是第一二维子带系数阵列中的任意一个变换系数,编码端可以分别对第一二维子带系数阵列中的每个变换系数进行无损编码,例如可以对根据第一变换系数对应的上下文区域对第一变换系数进行熵编码。本申请实施例中通过对二维子带系数阵列中的变换系数进行编码,可以得到图像编码信息,实现对图像的压缩处理。
其中,频率点扫描次序可以是扫描二维子带系数阵列的先后次序,系数扫描次序是二维子带系数阵列中的变换系数的扫描次序。频率点扫描次序在后续实施例中简称为“预置次序一”,系数扫描次序在后续实施例中简称为“预置次序二”。
在本申请的一些实施例中,步骤302按照预设的频率点扫描次序确定一个频率点对应的所述至少两个变换系数块中的变换系数,包括:
D1、从至少两个变换系数块中获取至少两个二维子带系数阵列,其中,一个二维子带系数阵列包括至少两个变换系数块中相同频率点对应的变换系数,不相同的二维子带系数阵列包括的变换系数对应于不同的频率点;
D2、按照预设的频率点扫描次序对至少两个二维子带系数阵列进行组合,以得到三维子带系数阵列;
D3、按照预设的三维子带系数扫描次序确定三维子带系数阵列中的第一二维子带系数阵列。
步骤303按照预设的系数扫描次序对一个频率点对应的各个变换系数进行编码,包括:
D4、按照预设的系数扫描次序确定第一二维子带系数阵列中第一变换系数;
D5、根据第一变换系数对应的上下文区域对第一变换系数进行熵编码。
其中,步骤D1至D5的场景与前述步骤C1至C4的场景的区别在于,在步骤D1至D5的场景中需要生成三维子带系数阵列,且针对三维子带系数阵列中的第一二维字段系数阵列中的第一变换系数进行编码,而步骤C1至C4的场景中没有生成三维子带系数阵列。
具体的,接下来对步骤D1至D5进行说明。编码端在生成至少两个二维子带系数阵列之后,按照预设的频率点扫描次序对至少两个二维子带系数阵列进行组合,以得到三维子带系数阵列,即一个频率点对应一个二维子带系数阵列,按照预设的频率点扫描次序可以将所有频率点分别对应的二维子带系数阵列组合在一起,得到三维子带系数阵列。
三维子带系数阵列中包括多个二维子带系数阵列,编码端首先根据预设的三维子带系数扫描次序从三维子带系数阵列中确定出一个二维子带系数阵列,例如确定出第一二维子带系数阵列,第一二维子带系数阵列为三维子带系数阵列中的一个二维子带系数阵列。其中,三维子带系数扫描次序是对三维子带系数阵列进行扫描的次序。编码端在确定出第一二维子带系数阵列之后,编码端可以按照预设的系数扫描次序分别对第一二维子带系数阵列中的每个变换系数进行熵编码。本申请实施例中通过对二维子带系数阵列中的变换系数进行编码,可以得到图像编码信息,实现对图像的压缩处理。
在本申请的一些实施例中,步骤302按照预设的频率点扫描次序确定一个频率点对应的所述至少两个变换系数块中的变换系数,按照预设的系数扫描次序对一个频率点对应的各个变换系数进行编码,包括:
E1、按照预设的频率点扫描次序对至少两个变换系数块进行排序,得到排序后的至少两个变换系数块;
E2、从排序后的至少两个变换系数块中获取不同频率点对应的多个二维子带系数阵列;
E3、对不同频率点对应的多个二维子带系数阵列进行组合,以得到三维子带系数阵列;
E4、按照预设的三维子带系数扫描次序从三维子带系数阵列中确定第一二维子带系数阵列。
步骤303按照预设的系数扫描次序对一个频率点对应的各个变换系数进行编码,包括:
E5、按照预设的系数扫描次序确定第一二维子带系数阵列中第一变换系数;
E6、根据第一变换系数对应的上下文区域对第一变换系数进行熵编码。
其中,步骤E1至E6的场景与前述步骤D1至D5的场景的区别在于,在步骤E1至E6的场景中生成三维子带系数阵列的方式与前述步骤D1至D5中生成三维子带系数阵列的方式不相同。即步骤E1至E6的场景中先对至少两个变换系数块进行排序,然后按照不同的频率点确定不同频率点对应的多个二维子带系数阵列,对不同频率点对应的多个二维子带系数阵列进行组合,以得到三维子带系数阵列。
具体的,接下来对步骤E1至E6进行说明。编码端获取到多个二维子带系数阵列之后,进行组合,以得到三维子带系数阵列,三维子带系数阵列中包括多个二维子带系数阵列,编码端首先根据预设的三维子带系数扫描次序从三维子带系数阵列中确定出一个二维子带系数阵列,例如确定出第一二维子带系数阵列,第一二维子带系数阵列为三维子带系数阵列中的一个二维子带系数阵列。其中,三维子带系数扫描次序是对三维子带系数阵列进行扫描的次序。编码端在确定出第一二维子带系数阵列之后,编码端可以按照预设的系数扫描次序分别对第一二维子带系数阵列中的每个变换系数进行熵编码。本申请实施例中通过对二维子带系数阵列中的变换系数进行编码,可以得到图像编码信息,实现对图像的压缩处理。
举例说明如下,编码端按频率点扫描次序分别对变换系数块(后续简称为系数块)中的每个变换系数进行排序,然后再获取相同频率点的系数进行组合,得到三维子带系数阵列。例如变换系数块可以是8x8的变换系数块。按照频率点扫描次序排列8x8的变换系数块中的每个变换系数,得到排序后的8x8的变换系数块。获取图像中8x8的变换系数块中指定频率点的变换系数值,构成该频率点的二维子带系数阵列,将多个频率点对应的二维子带系数阵列组合,得到三维子带系数阵列。在获取到三维子带系数阵列之后,编码端还可以对三维子带系数阵列中的每个变换系数进行编码处理,详见后续实施例中对编码流程的举例说明。
进一步的,在本申请的一些实施例中,三维子带系数扫描次序,包括:
预设的水平位置索引的变化次序;或者,
预设的竖直位置索引的变化次序;或者,
预设的频率索引的变化次序。
其中,三维子带系数阵列中的每个变换系数具有一个水平位置索引、一个竖直位置索引和一个频率索引,例如每个变换系数可以表示为C(bx,by,fs),其中,bx是水平位置索引,by是竖直位置索引,fs是频率点对应的频率索引。三维子带系数扫描次序是对三维子带系数阵列进行扫描的次序。例如,三维子带系数扫描次序以水平位置索引的变化次序从大到小(或者从小到大)确定三维子带系数阵列中的多个二维子带系数阵列,在每确定出一个二维子带系数阵列之后,再按照前述的系数扫描次序确定该二维子带系数阵列中的一个变换系数,即三维子带系数扫描次序可以用于指示依次对三维子带系数阵列中不同水平位置索引对应的二维子带系数阵列进行编码。
又如,三维子带系数扫描次序以竖直位置索引的变化次序从大到小(或者从小到大)确定三维子带系数阵列中的多个二维子带系数阵列,在每确定出一个二维子带系数阵列之后,再按照前述的系数扫描次序确定该二维子带系数阵列中的一个变换系数,即三维子带系数扫描次序可以用于指示依次对三维子带系数阵列中不同竖直位置索引对应的二维子带系数阵列进行编码。
又如,三维子带系数扫描次序以频率索引的变化次序从大到小(或者从小到大)确定三维子带系数阵列中的多个二维子带系数阵列,在每确定出一个二维子带系数阵列之后,再按照前述的系数扫描次序确定该二维子带系数阵列中的一个变换系数,即三维子带系数扫描次序可以用于指示依次对三维子带系数阵列中不同频率索引对应的二维子带系数阵列进行编码。具体可以根据应用场景确定三维子带系数扫描次序的具体实现方式,此次不做限定。
三维子带系数扫描次序的实现方式有多种,举例说明如下:
三维子带系数阵列表示为C(bx,by,fs),(bx,by)表示变换系数块水平位置索引和竖直位置索引,bx=0,…,M-1,by=0,…,N-1,其中,M为以单个图像块为单位的水平方向上的最大图像块个数,N为以单个图像块为单位的竖直方向上的最大图像块个数,W表示当前图像的宽度值,H表示当前图像的高度值,subW表示当前图像中图像块的宽度值,subH表示当前图像中图像块的高度值。(fx,fy)表示变换系数块中每个变换系数的频率点,fs表示每个频率点对应的频率索引,其中,fx=0,..,subW-1,fy=0,..,subH-1。
方法一:对三维子带系数阵列C(bx,by,fs)中的每个变换系数进行处理时,依次对fs=0到subW×subH-1层的二维系数子带阵列进行处理,在处理每一层的二维系数子带阵列时,按照前述的系数扫描次序处理二维系数子带阵列C(bx,by)中的每个变换系数。
方法二:对三维子带系数阵列C(bx,by,fs)中的每个变换系数进行处理时,依次对bx=0到M-1层的二维系数子带阵列进行处理,在处理每一层的二维系数子带阵列时,按照前述的系数扫描次序处理二维系数子带阵列C(by,fs)中的每个变换系数。
方法三:对三维子带系数阵列C(bx,by,fs)中的每个变换系数进行处理时,依次对by=0到N-1层的二维系数子带阵列进行处理,在处理每一层的二维系数子带阵列时,按照预置的系数扫描次序处理二维系数子带阵列C(bx,fs)中的每个变换系数。
需要说明的是,预置的系数扫描次序可以是zig-zag扫描次序、逐行扫描次序和逐列扫描次序等。
在本申请的一些实施例中,步骤302按照预设的频率点扫描次序确定一个频率点对应的所述至少两个变换系数块中的变换系数,包括:
F1、按照预设的频率点扫描次序确定至少两个变换系数块中由相同频率点对应的变换系数构成的第一二维子带系数阵列。
步骤303按照预设的系数扫描次序对一个频率点对应的各个变换系数进行编码,包括:
F2、按照预设的系数扫描次序确定第一二维子带系数阵列中的第一变换系数;
F3、根据第一变换系数对应的上下文区域对第一变换系数进行熵编码。
具体的,编码端在获取到至少两个变换系数块之后,编码端还可以按照预设的频率点扫描次序从至少两个变换系数块中获取相同频率点对应的变换系数构成的第一二维子带系数阵列。编码端无需组合出三维子带系数阵列。编码端在确定出第一二维子带系数阵列之后,编码端可以按照预设的系数扫描次序分别对第一二维子带系数阵列中的每个变换系数进行编码。例如,编码端按照预设的系数扫描次序确定第一二维子带系数阵列中的第一变换系数,根据第一变换系数对应的上下文区域对第一变换系数进行熵编码。本申请实施例中通过对二维子带系数阵列中的变换系数进行编码,可以得到图像编码信息,实现对图像的压缩处理。
举例说明如下,编码端首先按照频率点扫描次序分别对至少两个变换系数块中的每个变换系数进行扫描,例如按照频率点扫描次序确定一个频率点(该频率点的频率索引为fs),获取至少两个变换系数块中指定的频率索引fs分别对应的一个变换系数块中的一个变换系数,构成一个频率点的二维子带系数阵列。在确定出一个二维子带系数阵列之后,可以按照预设的系数扫描次序处理该二维子带系数阵列中的每一个变换系数,例如可以采用熵编码对二维子带系数阵列中的每一个变换系数进行编码,以得到图像编码信息。
在本申请的一些实施例中,步骤302按照预设的频率点扫描次序确定一个频率点对应的所述至少两个变换系数块中的变换系数,包括:
G1、按照预设的频率点扫描次序确定一个频率子带包括的至少两个变换系数块中的变换系数,一个频率子带包括的至少两个变换系数块中的变换系数对应于相同的频率点。
步骤303按照预设的系数扫描次序对一个频率点对应的各个变换系数进行编码,包括:
G2、按照预设的系数扫描次序确定一个频率子带包括的第一变换系数;
G3、根据第一变换系数对应的上下文区域对第一变换系数进行熵编码。
其中,前述应用场景中编码端需要生成二维子带系数阵列或者生成三维子带系数阵列,在步骤G1中,编码端还可以采用不生成二维子带系数阵列,也不生成三维子带系数阵列的方式,编码端按照预设的频率点扫描次序确定一个频率子带包括的至少两个变换系数块中的变换系数,一个频率子带包括的至少两个变换系数块中的变换系数对应于相同的频率点,编码端按照预设的系数扫描次序分别对一个频率子带对应的至少两个变换系数块中的变换系数进行编码,例如按照预设的系数扫描次序确定一个频率子带包括的第一变换系数,第一变换系数可以是一个频率子带包括的多个变换系数中的任意一个变换系数,根据第一变换系数对应的上下文区域对第一变换系数进行熵编码。本申请实施例中通过对频率子带中的变换系数进行编码,可以得到图像编码信息,实现对图像的压缩处理。
在本申请的一些实施例中,以编码端对前述的第一变换系数进行熵编码的具体过程进行说明,对于第一二维子带系数阵列中的其它变换系数的编码过程或者一个频率子带包括的其它变换系数的编码过程,都可以按照第一变换系数的熵编码过程来实现。例如,前述的步骤C4、D5、E6、F3、G3中的根据第一变换系数对应的上下文区域对第一变换系数进行熵编码,包括:
H1、从第一变换系数对应的上下文区域中获取第一变换系数的上下文信息,其中,第一变换系数的上下文信息包括:第一变换系数对应的上下文区域中的已编码变换系数。
具体的,第一变换系数对应的上下文区域可以是预置的,例如根据当前的第一变换系数的水平位置索引、竖直位置索引和频率索引确定第一变换系数对应的上下文区域,该第一变换系数对应的上下文区域中的已编码变换系数,该已编码变换系数是在第一变换系数进行熵编码之前就已经完成熵编码的变换系数,因此从第一变换系数对应的上下文区域中获取第一变换系数的上下文信息。
在本申请的一些实施例中,第一变换系数对应的上下文区域包括如下至少一种:第一变换系数的空间邻域,第一变换系数的子带邻域,第一变换系数的三维邻域。
其中,第一变换系数对应的上下文区域具有多种实现方式,例如可以包括第一变换系数的空间邻域,或第一变换系数的子带邻域,或第一变换系数的三维邻域。其中,第一变换系数的空间邻域是指与第一变换系数处于同一个水平空间或者竖直空间的相邻区域,第一变换系数的子带邻域是指与第一变换系数处于同一个子带的相邻区域,的三维邻域是指与第一变换系数处于同一个三维空间的相邻区域。在第一变换系数的空间邻域,或第一变换系数的子带邻域,或第一变换系数的三维邻域中都可以包括已编码的变换系数,从而编码端可以获取到第一变换系数的上下文信息。
H2、根据第一变换系数的上下文信息对第一变换系数进行估计,以得到第一变换系数的概率分布信息。
H3、根据第一变换系数的概率分布信息对第一变换系数进行算术编码。
在本申请实施例中,编码端在获取到第一变换系数的上下文信息之后,编码端根据第一变换系数的上下文信息对第一变换系数进行熵编码,以得到第一变换系数对应的图像编码信息。编码端执行的熵编码过程可以包括概率估计和算术编码。具体的,编码端根据第一变换系数的上下文信息对第一变换系数进行概率估计,以得到第一变换系数的概率分布,然后编码端根据第一变换系数的概率分布对第一变换系数进行算术编码,以得到第一变换系数对应的图像编码信息。
举例说明如下,在处理每个二维子带系数阵列时,按照系数扫描次序处理每个二维子带系数阵列中的每个变换系数。选择预置上下文区域中已处理的系数作为上下文,并将上下文信息输入概率估计网络,对当前系数的概率分布进行估计,从而获得当前系数的概率分布,并使用该概率分布对当前系数进行算术编码得到当前系数的编码信息。预置上下文区域可以包括该系数的空间邻域和/或子带邻域。
具体的,对当前系数的概率分布进行估计的方法包括:概率估计网络根据该系数的动态取值范围直接对取值范围内的值进行概率估计,得到一个概率向量,概率向量中包括取值范围内每个的值的概率值,其中所有概率值的和为1。又如,对当前系数的概率分布进行估计的方法包括:使用概率分布模型来获得概率向量。例如使用单高斯模型(gaussiansingle model,GSM)或者混合高斯模型(gaussian mixture model,GMM)建模,使用概率估计网络估计得到模型参数,将模型参数代入概率分布模型中,得到概率向量。
举例说明如下,获得第一变换系数的三维邻域内的已编码系数作为上下文信息后,将上下文信息输入概率估计网络,对该第一变换系数进行概率估计得到该第一变换系数的概率分布,使用该概率分布对当前的第一变换系数进行算术编码,得到该第一变换系数的编码信息。概率估计网络中使用的概率分布估计方法包括基于深度学习网络的概率分布估计方法,例如循环神经网络(recurrent neural network,RNN)和逐像素卷积神经网络(pixel convolutional neural network,PixelCNN)等。
在本申请的一些实施例中,以编码端对前述的第一变换系数进行熵编码的具体过程进行说明,对于第一二维子带系数阵列中的其它变换系数的编码过程或者一个频率子带包括的其它变换系数的编码过程,都可以按照第一变换系数的熵编码过程来实现。例如,前述的步骤C4、D5、E6、F3、G3中的根据第一变换系数对应的上下文区域对第一变换系数进行熵编码,包括:
I1、当第一变换系数为多个变换系数时,从多个变换系数对应的上下文区域中获取多个变换系数的上下文信息,其中,多个变换系数的上下文信息包括:多个变换系数对应的上下文区域中的已编码变换系数;
I2、根据多个变换系数的上下文信息对多个变换系数并行的进行估计,以得到多个变换系数的概率分布信息;
I3、根据多个变换系数的概率分布信息对多个变换系数并行的进行算术编码。
其中,步骤I1至步骤H3的应用场景与前述步骤I1至步骤I3的应用场景的区别在于,步骤I1至步骤I3是针对第一变换系数为多个变换系数,此时可以并行的进行的概率分布的估计以及并行的算术编码。其中,编码端可以获取到多个的变换系数,编码端根据多个的变换系数的上下文信息并行的对多个的变换系数进行熵编码,通过并行的熵编码,可以提高图像编码效率。举例说明如下,编码端在获取系数的概率分布时,也可以对多个变换系数的概率分布并行的进行概率估计,即一次获取多个变换系数的概率分布,然后再按对多个变换系数并行的进行算术编码。
在本申请的一些实施例中,多个变换系数对应的上下文区域包括如下至少一种:多个变换系数的空间邻域,多个变换系数的子带邻域,多个变换系数的三维邻域。
其中,多个变换系数对应的上下文区域具有多种实现方式,例如可以包括多个变换系数的空间邻域,或多个变换系数的子带邻域,或多个变换系数的三维邻域。其中,多个变换系数的空间邻域是指与多个变换系数处于同一个水平空间或者竖直空间的相邻区域,多个变换系数的子带邻域是指与多个变换系数处于同一个子带的相邻区域,的三维邻域是指与第一变换系数处于同一个三维空间的相邻区域。在多个变换系数的空间邻域,或多个变换系数的子带邻域,或多个变换系数的三维邻域中都可以包括已编码的变换系数,从而编码端可以获取到多个变换系数的上下文信息。
本申请的一些实施例中,步骤302按照预设的频率点扫描次序确定一个频率点对应的所述至少两个变换系数块中的变换系数,包括:
J1、从至少两个变换系数块中获取至少两个二维子带系数阵列,其中,一个二维子带系数阵列包括至少两个变换系数块中相同频率点对应的变换系数,不相同的二维子带系数阵列包括的变换系数对应于不同的频率点;
J2、按照预设的频率点扫描次序确定至少两个二维子带系数阵列对应的至少两个子带图像。
步骤303按照预设的系数扫描次序对一个频率点对应的各个变换系数进行编码,包括:
J3、按照预设的系数扫描次序对至少两个子带图像中的变换系数进行编码。
其中,编码端编码端可以根据频率点的不同对至少两个变换系数块进行排列,从而得到至少两个二维子带系数阵列。同一个二维子带系数阵列中包括相同频率点对应的变换系数块中的变换系数,不同的二维子带系数阵列具有不同的频率点,即编码端可以将相同频率点对应的至少两个变换系数块中的变换系数归属到一个二维子带系数阵列中,因此存在多少个频率点,就可以得到多个频率点对应的二维子带系数阵列。
编码端在获取到至少两个二维子带系数阵列之后,编码端采用对子带图像进行无损编码的方式,以至少两个二维子带系数阵列作为至少两个子带图像,按照预设的频率点扫描次序对至少两个子带图像中的变换系数进行图像无损编码,编码端在T恤无损编码时可以将二维子带系数阵列作为一个子带图像进行编码,简化了无损编码的实现流程。
通过前述对图像处理方法的说明可知,本申请实施例中可以获取至少两个变换系数块,从而针对至少两个变换系数块中相同频率点对应的变换系数,只需要按照频率点扫描次序进行编码就可以得到图像编码信息,因此针对同一个频率点对应的多个变换系数可以同时进行编码,提高图像压缩效率,降低图像编码信息的存储成本,最终节省存储资源。
在本申请实施例中,编码端可以生成图像编码信息之后,编码端可以通过图像传输通道向解码端发送,例如编码端发送压缩码流,该压缩码流中包括图像编码信息。该图像编码信息由编码端对至少两个变换系数块进行编码后得到,解码端需要采用与编码端相应的图像处理方法进行解码。具体的,解码端执行后续步骤311至步骤313。
311、获取图像编码信息。
在本申请实施例中,解码端首先从编码端获取图像编码信息。例如解码端从编码端接收到压缩码流,然后解析该压缩码流,可以得到图像编码信息。
312、按照预设的频率点扫描次序确定图像编码信息中一个频率点对应的待解码变换系数。
313、按照预设的系数扫描次序对一个频率点对应的待解码变换系数进行解码,以得到至少两个变换系数块。
其中,至少两个变换系数块中的每个变换系数块包括:至少两个变换系数,一个变换系数块中的各个变换系数对应于不同的频率点。
在本申请实施例中,解码端获取到图像编码信息之后,图像编码信息中对应于同一个频率点的待解码变换系数进行解码,其中,待解码变换系数又可以称为待解码的变换系数。例如可使用的解码方法包括熵解码、哈夫曼(Huffman)解码等。在得到某一个频率点对应的所有变换系数之后,按照预设的频率点扫描次序确定下一个频率点,再通过解码得到下一个频率点对应的多个变换系数,按照该频率点扫描次序依次获取到所有的频率点,当通过解码得到所有频率点对应的变换系数之后,解码端可以生成至少两个变换系数块,至少两个变换系数块中的每个变换系数块包括:至少两个变换系数,其中,一个变换系数块中的各个变换系数对应于不同的频率点。对于变换系数块、频率点扫描次序和系数扫描次序的说明,详见前述编码端中的举例。
在本申请的一些实施例中,在编码端执行步骤C1至C4所示的编码的情况下,解码端执行相应的解码方法,具体的,步骤312按照预设的频率点扫描次序确定图像编码信息中一个频率点对应的待解码变换系数,包括:
K1、按照预设的频率点扫描次序确定图像编码信息中的第一待解码二维子带系数阵列,第一待解码二维子带系数阵列包括:图像编码信息中一个频率点对应的待解码变换系数。
步骤就313按照预设的系数扫描次序对一个频率点对应的待解码变换系数进行解码,包括:
K2、按照预设的系数扫描次序确定第一待解码二维子带系数阵列中的第一待解码变换系数;
K3、根据第一待解码变换系数对应的上下文区域对第一待解码变换系数进行熵解码。
具体的,解码端采用与编码端相对应的图像解码方式,若编码端执行步骤C1至C4所示的编码方法,则在解码端收到的图像编码信息中可以包括至少两个待解码二维子带系数阵列。频率点扫描次序是待解码二维子带系数阵列的扫描次序,按照预设的频率点扫描次序从至少两个待解码二维子带系数阵列中获取第一待解码二维子带系数阵列,该第一待解码二维子带系数阵列中包括多个待解码变换系数。
在本申请的一些实施例中,在编码端执行步骤D1至D5所示的编码的情况下,解码端执行相应的解码方法,具体的,步骤312按照预设的频率点扫描次序确定图像编码信息中一个频率点对应的待解码变换系数,包括:
L1、按照预设的频率点扫描次序确定图像编码信息中的待解码三维子带系数阵列,待解码三维子带系数阵列包括:图像编码信息中所有频率点分别对应的待解码变换系数;
L2、按照预设的三维子带系数扫描次序确定待解码三维子带系数阵列中的第一待解码二维子带系数阵列,第一待解码二维子带系数阵列包括:图像编码信息中一个频率点对应的待解码变换系数。
步骤就313按照预设的系数扫描次序对一个频率点对应的待解码变换系数进行解码,包括:
L3、按照预设的系数扫描次序确定第一待解码二维子带系数阵列中的第一待解码变换系数;
L4、根据第一待解码变换系数对应的上下文区域对第一待解码变换系数进行熵解码。
具体的,解码端采用与编码端相对应的图像解码方式,解码端收到的图像编码信息中可以包括待解码三维子带系数阵列。解码端按照预设的三维子带系数扫描次序从待解码三维子带系数阵列中可以获取到至少两个二维子带系数阵列。其中,同一个二维子带系数阵列中包括相同频率点对应的至少两个变换系数块中的变换系数,不同的二维子带系数阵列具有不同的频率点。
其中,三维子带系数阵列中包括多个二维子带系数阵列,解码端首先根据预设的三维子带系数扫描次序从三维子带系数阵列中确定出一个二维子带系数阵列,例如确定出第一二维子带系数阵列,第一二维子带系数阵列为三维子带系数阵列中的一个二维子带系数阵列。三维子带系数扫描次序是对三维子带系数阵列进行扫描的次序。
解码端采用与编码端相对应的图像解码方式,在编码端采用生成三维子带系数阵列的情况下,解码端预设的系数扫描次序对第二二维子带系数阵列进行无损解码,以得到所述至少两个变换系数块。例如,无损解码可以包括熵解码。
在本申请的一些实施例中,三维子带系数扫描次序,包括:
预设的水平位置索引的变化次序;或者,
预设的竖直位置索引的变化次序;或者,
预设的频率索引的变化次序。
详见前述实施例中对三维子带系数扫描次序的说明。
在本申请的一些实施例中,在编码端执行步骤G1至G3所示的编码的情况下,解码端执行相应的解码方法。具体的,步骤312按照预设的频率点扫描次序确定图像编码信息中一个频率点对应的待解码变换系数,包括:
M1、按照预设的频率点扫描次序确定图像编码信息中一个频率子带包括的待解码变换系数,一个频率子带包括的待解码变换系数对应于相同的频率点。
步骤就313按照预设的系数扫描次序对一个频率点对应的待解码变换系数进行解码,包括:
M2、按照预设的系数扫描次序确定一个频率子带中的第一待解码变换系数;
M3、根据第一待解码变换系数对应的上下文区域对第一待解码变换系数进行熵解码。
其中,解码端采用与编码端相对应的图像解码方式,编码端在编码时可以将二维子带系数阵列作为一个频率子带进行编码,则在解码端收到的图像编码信息中可以包括多个频率子带对应的待解码变换系数。解码端按照频率点扫描次序从图像编码信息中获取一个频率子带对应的待解码变换系数。
解码端可以采用不生成子带系数阵列的方式,例如不生成二维子带系数阵列,也不生成三维子带系数阵列。解码端先确定出第一频率子带,第一频率子带对应的至少两个变换系数块中的变换系数对应于同一个频率点。解码端根据预设的系数扫描次序对第一频率子带对应的图像编码信息进行无损解码,并采样这种方式分别对多个频率子带对应的图像编码信息进行无损解码,以得到多个变换系数。
具体的,解码端获取多个频率子带对应的图像编码信息,解码端采用对频率子带进行无损解码的方式,以至少两个二维子带系数阵列作为至少两个频率子带,按照预设的系数扫描次序对至少两个频率子带对应的图像编码信息进行无损解码,解码端在无损解码时可以将二维子带系数阵列作为一个频率子带进行解码,简化了无损解码的实现流程。
在本申请的一些实施例中,前述步骤K3、L4和M3中的根据第一待解码变换系数对应的上下文区域对第一待解码变换系数进行熵解码,包括:
N1、从第一待解码变换系数对应的上下文区域中获取第一待解码变换系数的上下文信息,其中,第一待解码变换系数对应的上下文区域包括:第一待解码变换系数对应的上下文区域中的已解码变换系数;
N2、根据第一待解码变换系数的上下文信息对第一待解码变换系数进行估计,以得到第一待解码变换系数的概率分布信息;
N3、根据第一待解码变换系数的概率分布信息对第一待解码变换系数进行算术解码,以得到解码后的第一变换系数,解码后的第一变换系数属于至少两个变换系数块。
其中,解码端根据的无损解码可以是熵解码,接下来以第一变换系数的熵解码过程进行说明,对于第一二维子带系数阵列中的其它变换系数的解码过程,都可以按照第一变换系数的熵解码过程来实现。
在本申请实施例中,解码端在获取到第一变换系数的上下文信息之后,解码端根据第一变换系数的上下文信息对第一变换系数进行熵解码,以得到解码后的第一变换系数。解码端执行的熵解码可以包括概率估计和算术解码。具体的,解码端根据第一变换系数的上下文信息对第一变换系数进行概率估计,以得到第一变换系数的概率分布,然后解码端根据第一变换系数的概率分布对第一变换系数进行算术解码,以得到第一变换系数对应的图像解码信息。
举例说明如下,对熵编码后的编码信息进行熵解码时,使用与编码端相同的处理次序对每个码元进行解码。在处理每个码元时,将待解码码元的预置上下文区域内已解码的码元作为上下文输入概率估计网络,估计获得当前码元的概率分布,并使用该概率分布对当前码元进行解码得到当前码元的变换系数。将每个码元解码后,得到二维子带系数阵列。
解码端根据的无损解码可以是熵解码,接下来以第一变换系数的熵解码过程进行说明,对于第一二维子带系数阵列中的其它变换系数的解码过程,都可以按照第一变换系数的熵解码过程来实现。
在本申请实施例中,解码端在获取到第一变换系数的上下文信息之后,解码端根据第一变换系数的上下文信息对第一变换系数进行熵解码,以得到解码后的第一变换系数。解码端执行的熵解码可以包括概率估计和算术解码。具体的,解码端根据第一变换系数的上下文信息对第一变换系数进行概率估计,以得到第一变换系数的概率分布,然后解码端根据第一变换系数的概率分布对第一变换系数进行算术解码,以得到第一变换系数对应的图像解码信息。
举例说明如下,对熵编码后的编码信息进行熵解码时,使用与编码端相同的处理次序对每个码元进行解码。在处理每个码元时,将待解码码元的预置上下文区域内已解码的码元作为上下文输入概率估计网络,估计获得当前码元的概率分布,并使用该概率分布对当前码元进行解码得到当前码元的变换系数。将每个码元解码后,得到二维子带系数阵列。
在本申请的一些实施例中,第一待解码变换系数对应的上下文区域包括如下至少一种:第一待解码变换系数的空间邻域,第一待解码变换系数的子带邻域,第一待解码变换系数的三维邻域。
在本申请的一些实施例中,前述步骤K3、L4和M3中的根据第一待解码变换系数对应的上下文区域对第一待解码变换系数进行熵解码,包括:
P1、当第一待解码变换系数为多个待解码变换系数时,从多个待解码变换系数对应的上下文区域中获取多个待解码变换系数的上下文信息,其中,多个待解码的上下文信息包括:多个待解码变换系数对应的上下文区域中的已解码变换系数;
P2、根据多个待解码变换系数的上下文信息对多个待解码变换系数并行的进行估计,以得到第一待解码变换系数的概率分布信息;
P3、根据多个待解码变换系数的概率分布信息对多个待解码变换系数并行的进行算术解码,以得到解码后的第一变换系数,解码后的第一变换系数属于至少两个变换系数块。
解码端采用与编码端相对应的图像解码方式,编码端在编码时可以并行的进行编码,则在解码端通过并行的解码,可以提高图像解码效率。
在本申请的一些实施例中,多个待解码变换系数对应的上下文区域包括如下至少一种:多个待解码变换系数的空间邻域,多个待解码变换系数的子带邻域,多个待解码变换系数的三维邻域。
在本申请的一些实施例中,在编码端执行步骤G1至G3所示的编码的情况下,解码端执行相应的解码方法,具体的,步骤312按照预设的频率点扫描次序确定图像编码信息中一个频率点对应的待解码变换系数,包括:
Q1、按照预设的频率点扫描次序确定图像编码信息中的第一子带图像,第一子带图像包括:图像编码信息中的一个频率点对应的待解码变换系数。
步骤就313按照预设的系数扫描次序对一个频率点对应的待解码变换系数进行解码,包括:
Q2、按照预设的系数扫描次序对第一子带图像的待解码系数进行解码,以得到至少两个变换系数块。
具体的,解码端采用与编码端相对应的图像解码方式,编码端在编码时可以将二维子带系数阵列作为一个子带图像进行编码,则在解码端收到的图像编码信息中可以包括多个子带图像对应的待解码变换系数。解码端按照频率点扫描次序从图像编码信息中获取第一子带图像对应的待解码变换系数。
解码端采用针对子带图像无损解码,得到多个变换系数之后,解码端采用对子带图像进行无损解码的方式,以至少两个二维子带系数阵列作为至少两个子带图像,按照预设的系数扫描次序对至少两个子带图像对应的图像编码信息进行无损解码,解码端在无损解码时可以将二维子带系数阵列作为一个子带图像进行解码,简化了无损解码的实现流程。
在本申请的一些实施例中,步骤313得到至少两个变换系数块之后,本申请实施例提供的方法还包括:
R1、对至少两个变换系数块进行熵编码,以得到变换系数编码信息;
R2、根据变换系数编码信息生成至少两个图像块;
R3、根据至少两个图像块还原出原始图像区域,原始图像区域包括:原始像素图像区域或者残差图像区域。
其中,解码端采用与编码端相对应的图像解码方式,若编码端通过对变换系数编码信息进行熵解码得到变换系数块,并对变换系数块进行编码,则解码端可以对至少两个变换系数块进行熵编码,以得到变换系数编码信息。本申请实施例中根据变换系数编码信息生成至少两个图像块,再根据至少两个图像块还原出原始图像区域,从而可以完成图像的解压缩处理。
在本申请的一些实施例中,步骤313得到至少两个变换系数块之后,本申请实施例提供的方法还包括:
S1、对至少两个变换系数块进行反量化和反变换,以得到至少两个图像块;
S2、根据至少两个图像块还原出原始图像区域,原始图像区域包括:原始像素图像区域或者残差图像区域。
在本申请实施例中,解码端在生成至少两个变换系数块之后,解码端根据该至少两个变换系数块生成至少两个图像块。其中,解码端可以通过反变换和反量化的方式对至少两个变换系数块进行处理,从而可以生成至少两个图像块。
对相同频率点对应的至少两个变换系数块中的变换系数进行反变换和反量化,得到至少两个图像块;或,对相同频率点对应的至少两个变换系数块中的变换系数进行熵编码,得到至少两个图像块。
在本申请实施例中,解码端在生成至少两个图像块之后,解码端根据该至少两个图像块还原出原始图像,多个图像块可以通过拼接的方式得到原始图像。
通过前述对图像处理方法的说明可知,本申请实施例中根据预设的频率点扫描次序和频率点扫描次序对图像编码信息中相同频率点对应的待解码变换系数进行解码,就可以得到至少两个变换系数块,由于一个变换系数块中的各个变换系数对应于不同的频率点,因此针对图像编码信息的解码,可以得到同一个频率点对应的不同变换系数,提高图像解压缩效率,降低图像编码信息的存储成本,最终节省存储资源。
为便于更好的理解和实施本申请实施例的上述方案,下面举例相应的应用场景来进行具体说明。
本申请实施例提出一种视频图像压缩中的块变换与系数编码方案,本申请实施例提高图像编码性能,最终节省存储资源,提高视频图像的编码效率。例如,熵编码产生的压缩文件消耗大量服务器侧的存储资源,本申请实施例可应用于熵编码图像的高效无损转码过程中,本申请实施例还可以应用于服务器端,对熵编码产生的压缩文件进行无损转码,提高图像编码性能,最终节省存储资源。
接下来通过五个不同的实施例对本申请实施例提供的图像处理方法进行详细说明,在每个实施例中,先从编码端介绍图像编码过程,在编码端生成图像编码码流之后,编码端向解码端发送,解码端接收到图像编码码流之后,解码端对图像编码码流进行解码,从而还原出原始图像。
实施例一
本实施例涉及一种图像编码方案,首先获取变换系数块(简称为系数块),再对系数块使用进行无损编码,得到编码后的图像数据。本实施例提供整个编码的流程,例如可以包括对图像区域进行变换和量化,再对量化后的系数进行无损编码,得到编码后的图像数据。如图4所示,图像编码流程主要包括:
步骤401、获取变换系数块。
方法一:将待处理图像区域划分为预置大小的图像块,并对每个图像块进行变换和量化,得到变换系数块,该变换系数块具体可以是变换系数阵列C(bx,by,fx,fy)。
首先,将待处理图像或者图像区域划分为相同预置大小的子图像块,预置大小的子图像块的尺寸可以是4x4、8x8、16x16、32x32、64x64、128x128和256x256等。
如图5所示,为本申请实施例提供的获取变换系数块的示意图。对预置大小的子图像块进行DCT变换,得到变换系数块。可选的,对变换系数块进行量化,得到量化后的系数阵列C(bx,by,fx,fy),系数阵列中的每个变换系数可以用表示。其中,(bx,by)表示系数块水平和竖直的位置索引,bx=0,…,M-1,by=0,…,N-1,其中,M和N分别为以子图像块为单位时的图像宽和高,W和H分别表示当前图像的宽和高,subW和subH分别表示当前图像中子图像块的宽和高。(fx,fy)表示系数块中每个频率点相对于左上顶点的频率点的频率索引,其中,fx=0,..,subW-1,fy=0,..,subH-1。本申请实施例中,预置大小的子图像块的尺寸以8x8为例,即子图像块的宽和高均为8,即subW和subH的值均为8,后续不再赘述。
例如图5所示,(bx=0,by=0)表示第一个系数块,(bx=0,by=1)表示第一行的第二个系数块,依此类推。(fx=0,fy=1)表示系数块中相对于左上顶点的频率点的坐标为(0,1)的频率索引。表示系数块(bx=1,by=0)内的位置为(fx=3,fy=2)表示的系数值。
方法二:对熵编码后的图像数据进行熵解码,得到图像中8x8块的变换系数(简称为系数)。
使用哈夫曼解码方法对JPEG文件中的所有子图像块的变换系数编码信息进行熵解码,得到一个或者多个子图像块的变换系数块,系数块的每个变换系数记做其中,(bx,by)表示系数块的水平和竖直的位置索引,bx=0,…,M-1,by=0,…,N-1,其中,M和N分别为以子图像块为单位的图像宽和高,W和H分别表示当前图像的宽和高,subW和subH分别表示当前图像中子图像块的宽和高。(fx,fy)表示系数块中每个频率点相对于左上顶点的频率点的频率索引,其中,fx=0,..,subW-1,fy=0,..,subH-1。在本申请实施例中,JPEG文件中的所有子图像块的宽和高均为8,即subW和subH的值均为8,后续不再赘述。不限定的是,本申请实施例中所描述的技术方案也可应用于subW和subH的取值不为8的情况,例如subW不等于subH。
例如,如图5所示,(bx=0,by=0)表示第一个系数块,(bx=0,by=1)表示第一行的第二个系数块,依此类推。(fx=0,fy=1)表示系数块中相对于左上顶点的频率点的坐标为(0,1)的频率索引。表示系数块(bx=0,by=1)内的位置为(fx=3,fy=2)表示的系数值。
步骤402、获取图像中8x8的变换系数块(简称8x8系数块)中指定频率点的变换系数值,构成该频率点的二维子带系数阵列。
具体的,如图6所示,为本申请实施例提供的获取二维子带系数阵列的示意图。获取图像中8x8的变换系数块中指定频率点(fx,fy)的变换系数值,得到该频率点的二维子带系数阵列Cfx,fy(bx,by)。
例如,获取图像中所有8x8的变换系数块中频率点(fx=0,fy=0)的变换系数值得到的二维子带系数阵列如图6的第一个图所示,同样的,获取剩余频率点的二维子带系数阵列。一个8x8的变换系数块共有64个频率点,因此可获得当前编码图像的64个二维子带系数阵列。
步骤403、按照预置次序一处理每个二维子带系数阵列,在处理每个二维子带系数阵列中的每个变换系数时,按照预置次序二处理每个变换系数,在处理每个变换系数时,选择预置的空间邻域和子带邻域中已处理的系数作为上下文估计获得当前系数的概率分布,并使用该概率分布对当前系数进行算术编码,得到当前系数的编码信息。
需要说明的是,按照预置次序一处理每个二维子带系数阵列是指按照预置次序一确定每个二维子带系数阵列,照预置次序二处理每个变换系数是指照预置次序二对每个变换系数进行编码。
步骤403.1、按照预置次序一处理每个二维子带系数阵列。
如图7所示,为本申请实施例提供的变换系数块的示意图。设置指定频率点(fx,fy)的二维子带系数阵列的频率索引为fs,每个索引的值对应一个二维子带系数阵列。首先获取图像中的任意一个8x8的变换系数块,按照预置次序一对该系数块内指定频率点(fx,fy)的变换系数进行扫描,则指定频率点(fx,fy)的二维子带系数阵列的索引fs与该频率点在该系数块内的扫描次序相同,按照fs的大小顺序处理fs对应的二维子带系数阵列Cfx,fy(bx,by)。以系数块(bx=0,by=0)为例,若预置次序一为Z字扫描,则fs=0对应频率点(fx=0,fy=0)的二维子带系数阵列,fs=1对应频率点(fx=1,fy=0)的二维子带系数阵列,fs=2对应频率点(fx=0,fy=1)的二维子带系数阵列,按照fs的大小顺序来处理对应频率点的二维子带系数阵列。其中,fs为整数,取值范围为0,…,subW×subH-1。
步骤403.2、处理每个二维子带系数阵列中的每个变换系数。
在处理每个二维子带系数阵列时,按照预置次序二处理每个二维子带系数阵列中的每个变换系数。选择预置上下文区域中已处理的系数作为上下文,并将上下文信息输入概率估计网络,对当前系数的概率分布进行估计,从而获得当前系数的概率分布,并使用该概率分布对当前系数进行算术编码得到当前系数的编码信息。预置上下文区域(如下文解释)可以包括该系数的空间邻域和/或子带邻域,或者是后续实施例中定义的三维邻域。需要说明的是,在获取系数的概率分布时,也可以对系数的概率分布并行的进行概率估计,即一次获取多个系数的概率分布,然后再按照预置次序二对每个变换系数进行无损编码,或者对多个系数并行的进行无损编码。
具体的,对当前系数的概率分布进行估计的方法如下:方法一:概率估计网络根据该系数的动态取值范围直接对取值范围内的值进行概率估计,得到一个概率向量,概率向量中包括取值范围内每个的值的概率值,其中所有概率值的和为1。方法二:还可以使用概率分布模型来获得概率向量。例如使用单高斯模型或者混合高斯模型建模,使用概率估计网络估计得到模型参数,将模型参数代入概率分布模型中,得到概率向量。
首先,获得该系数预置上下文区域中的系数作为上下文后,将上下文信息输入概率估计网络,对该系数进行概率估计得到该系数的概率分布,使用该概率分布对当前系数进行无损编码,得到该系数的编码信息。概率估计网络中使用的概率分布估计方法可以包括基于深度学习网络的概率分布估计方法,例如循环神经网络和卷积神经网络等。
其中,若系数所在的坐标为(bx0,by0,fs0),若预置上下文区域内任一坐标位置(bx1,by1,fs1)满足bx0-M1≤bx1≤bx0+N1,且by0-M2≤by1≤by0+N2,且fs1=fs0,则(bx1,by1,fs1)位置的系数在该系数的子带邻域内。
若预置上下文区域内任一坐标位置(bx1,by1,fs1)满足bx1=bx0,且by0-M2≤by1≤by0+N2,且fs0-N3≤fs1≤fs0,或者满足bx0-M1≤bx1≤bx0+N1,且by1=by0,且fs0-N3≤fs1≤fs0,则(bx1,by1,fs1)位置的系数在该系数的空间邻域内。其中,M1,M2,N1,N2和N3为大于或者等于0的整数,取值可以相等,也可以互不相等,在此不做限定,例如可取值为1,2,3,4或者5。
其中,预置次序一和预置次序二可以是按照之字(zig-zag或者称为Z字)扫描得到的处理次序,还可以使用其他扫描方法得到处理次序,例如逐行扫描、逐列扫描、对角扫描、水平反向扫描和垂直反向扫描等。其中逐行扫描是指从图像的第一行一直连续扫描到最后一行,逐列扫描是指从图像的第一列一直连续扫描到最后一列。
步骤404、获得转码输出文件。
将熵编码后的编码信息输出,得到压缩后的文件。
如图8所示,为本申请实施例提供的一种图像解码流程的示意图。主要包括:
步骤801、获取熵编码后的编码信息,对编码信息进行熵解码得到系数阵列。
对熵编码后的编码信息进行熵解码时,使用与编码端相同的处理次序对每个码元进行解码。即首先按照预置次序一处理已编码的每个二维子带系数阵列,在处理每个已编码的二维子带系数阵列时,按照预置次序二处理每个二维子带系数阵列中的每个已编码的系数。在本实施例中,已编码的系数可以理解为码元。在处理每个码元时,将待解码码元的预置上下文区域内已解码的码元作为上下文输入概率估计网络,估计获得当前码元的概率分布,并使用该概率分布对当前码元进行解码得到当前码元的变换系数。将每个码元解码后,得到多个图像的8x8的变换系数块或系数阵列C(bx,by,fx,fy)。
步骤802、获得解码后的图像数据。
方法一:对应步骤401中的方法一的解码:对系数阵列C(bx,by,fx,fy)进行反变换和反量化,得到解码后的图像数据。
方法二:对应步骤401中的方法二的解码:对8x8的变换系数块进行熵编码,得到熵编码后的图像数据。
本实施例一提供的编码方案中,将输入的图像块划分成预置大小的图像块,然后进行变换和量化,得到变换系数阵列。按照预置次序来处理变换系数阵列中的每个变换系数,并在对其中一个系数做算术编码时,使用该系数邻域已处理的系数作为上下文来估计该系数值的概率分布。本申请实施例可以提高图像的压缩率,减少服务器端的存储资源。
实施例二
本实施例涉及一种图像编码方案,首先获取变换系数块(简称为系数块),再对系数块使用进行无损编码,得到编码后的图像数据。本实施例提供整个编码的流程,例如可以包括对图像区域进行变换和量化,再对量化后的系数进行无损编码,得到编码后的图像数据。如图9所示,图像编码流程主要包括:
步骤901、获取变换系数块。
本步骤同实施例一的步骤401。
步骤902、获取图像中8x8的变换系数块中指定频率点的变换系数值,构成该频率点的二维子带系数阵列。
本步骤同实施例一的步骤402。
步骤903、按预置次序一排列二维子带系数阵列,得到三维子带系数阵列。
如图10所示,按照预置次序一排列指定频率点(fx,fy)的二维子带系数阵列Cfx,fy(bx,by),并设置排序后的二维子带系数阵列的频率索引为fs。首先,获取图像中的任意一个8x8的变换系数块,按照预置次序一对该系数块内指定频率点(fx,fy)的变换系数进行排序,则指定频率点(fx,fy)的二维子带系数阵列的排序索引与其在该系数块内的排序索引相同,从而确定出指定频率点(fx,fy)的二维子带系数阵列Cfx,fy(bx,by)的频率索引fs。以系数块(bx=0,by=0)为例,若预置次序一为之字扫描,则fs=0对应频率点(fx=0,fy=0)的二维子带系数阵列,fs=1对应频率点(fx=1,fy=0)的二维子带系数阵列,fs=2对应频率点(fx=0,fy=1)的二维子带系数阵列。并将所述二维子带系数阵列Cfx,fy(bx,by)组合在一起,得到如图8所示的三维子带系数阵列C(bx,by,fs)。其中,一维频率索引fs取值为0,…,subW×subH-1中的整数。可以理解的是,频率索引fs是经过预置次序对二维子带系数阵列排序后的索引。
其中,预置次序一可以是按照之字(zig-zag)扫描得到的排列次序,还可以使用其他扫描方法得到预置次序,例如:逐行扫描、逐列扫描和对角扫描等。其中逐行扫描是指从图像的第一行一直连续扫描到最后一行,逐列扫描是指从图像的第一列一直连续扫描到最后一列。
如图11a所示,为本申请实施例提供的三维子带系数阵列的示意图。三维子带系数阵列C(bx,by,fs)可以包括三个维度的数据:bx、by和fs。
需要说明的是,本实施例的步骤901和步骤902同实施例一的步骤401和步骤402相同。不同之处在于,实施例二中增加了将二维子带系数阵列按照预置次序组合成三维子带系数阵列的步骤。
步骤904:对三维子带系数阵列中的每个变换系数进行处理,在处理每一个系数时,使用该系数三维邻域内的已处理系数作为上下文估计获得当前系数的概率分布,并使用该概率分布对当前系数进行算术编码得到当前系数的编码信息。
如图11b所示,为本申请实施例提供的三维的变换系数的示意图。以图中黑色填充的1个方块表示当前处理的变换系数,横线填充的方块表示未编码的变换系数,白色的方块表示已编码的变换系数,则当前处理的变换系数的三维邻域中可以包括已编码的变换系数。
步骤9041、设置三维子带系数阵列C(bx,by,fs)中每个变换系数的处理次序。
具体的,可以使用以下方法中的一种来设置每个变换系数的处理次序,其中方法一是最优方法。
方法一:对三维子带系数阵列C(bx,by,fs)中的每个变换系数进行处理时,依次对fs=0到subW×subH-1层的二维系数子带阵列进行处理,在处理每一层的二维系数子带阵列时,按照预置次序二处理二维系数子带阵列C(bx,by)中的每个变换系数。
方法二:对三维子带系数阵列C(bx,by,fs)中的每个变换系数进行处理时,依次对bx=0到M-1层的二维系数子带阵列进行处理,在处理每一层的二维系数子带阵列时,按照预置次序二处理二维系数子带阵列C(by,fs)中的每个变换系数。
方法三:对三维子带系数阵列C(bx,by,fs)中的每个变换系数进行处理时,依次对by=0到N-1层的二维系数子带阵列进行处理,在处理每一层的二维系数子带阵列时,按照预置次序二处理二维系数子带阵列C(bx,fs)中的每个变换系数。
需要说明的是,预置次序二可以使用zig-zag扫描、逐行扫描和逐列扫描等处理次序,含义与步骤三中的“预置次序一”相同,在此不做赘述。
步骤9042、获取该系数的概率分布。
在处理一个系数时,使用该系数三维邻域内的已处理系数作为上下文,估计获得该系数的概率分布,并使用该概率分布对当前系数进行算术编码得到当前系数的编码信息。
其中,该系数的三维邻域内的系数可以根据以下方法获取:若系数所在的坐标为(bx0,by0,fs0),若坐标位置(bx1,by1,fs1)满足bx0-M1≤bx1≤bx0+N1,且by0-M2≤by1≤by0+N2,且fs0-N3≤fs1≤fs0,则(bx1,by1,fs1)位置的系数在该系数的三维邻域内,其中M1,M2,N1,N2和N3为大于或者等于0的整数,取值可以相等,也可以互不相等,在此不做限定,例如可取值为1,2,3,4或者5。因此,该系数三维邻域内的已处理系数还包括了该系数二维邻域内的已处理系数,在此不做限定。特别地,当fs1=fs0时,当选取的上下文与待处理系数处于同一个二维邻域,此时更利于并行编码,即对多个系数并行的进行概率估计,同时得到多个系数的概率分布,提高了编码效率。
需要说明的是,在获取系数的概率分布时,也可以对系数的概率分布并行的进行概率估计,即一次获取多个系数的概率分布,然后再按照预置次序二对每个变换系数进行无损编码,或者对多个系数并行的进行无损编码。
首先,获得该系数的三维邻域内的系数作为上下文后,将上下文信息输入概率估计网络,对该系数进行概率估计得到该系数的概率分布,使用该概率分布对当前系数进行无损编码,得到该系数的编码信息。概率估计网络中使用的概率分布估计方法包括基于深度学习网络的概率分布估计方法,例如循环神经网络和逐像素卷积神经网络等。
具体的,对系数的概率分布进行估计的方法如下:方法一:概率估计网络根据该系数的动态取值范围直接对取值范围内的值进行概率估计,得到一个概率向量,概率向量中包括取值范围内每个的值的概率值,其中所有概率值的和为1。方法二:还可以使用概率分布模型来获得概率向量。例如使用单高斯模型或者混合高斯模型建模,使用概率估计网络估计得到模型参数,将模型参数代入概率分布模型中,得到概率向量。
步骤905、获得转码输出文件。
将熵编码后的编码信息输出,得到转码输出文件。
如图12所示,为本申请实施例提供的一种图像解码流程的示意图。主要包括:
步骤1201、获取熵编码后的编码信息,对编码信息进行熵解码得到解码后的变换系数。
对熵编码后的编码信息进行熵解码时,使用与编码端相同的处理次序对每个码元进行解码,例如相同的处理次序指的是先按照频率点扫描次序确定图像编码信息中一个频率点对应的待解码系数,再按照系数扫描次序对一个频率点对应的待解码系数进行解码。在处理每个码元时,将待解码码元输入与编码端相同的概率估计网络,使用该码元三维邻域内的已处理码元作为上下文估计获得当前码元的概率分布,并使用该概率分布对当前码元进行解码得到当前码元的变换系数。将每个码元解码后,得到变换系数块或系数阵列C(bx,by,fx,fy)。
步骤1202、获得解码后的图像数据。
方法一:对应步骤401中的方法一的解码:对系数阵列C(bx,by,fx,fy)进行反变换和反量化,得到解码后的图像数据。
方法二:对应步骤401中的方法二的解码:对8x8的变换系数块进行熵编码,得到熵编码后的图像数据。
本实施例二提供的编码方案中,本实施例将变换系数按频率分量组合得到三维系数阵列C(bx,by,fs),并在对其中一个系数做算术编码时,使用该系数邻域已处理的系数作为上下文来估计该系数值的概率分布。本申请实施例可以提高图像的压缩率,减少服务器端的存储资源。
实施例三
本实施例涉及一种图像编码方案,首先获取变换系数块(简称为系数块),再对系数块使用进行无损编码,得到编码后的图像数据。本实施例提供整个编码的流程,例如可以包括对图像区域进行变换和量化,再对量化后的系数进行无损编码,得到编码后的图像数据。
本实施例使用实施例一的步骤401中的方法,获取得到变换系数阵列C(bx,by,fx,fy)后,有以下两种编码方法:
方法一、先按预置次序一分别对系数块中的每个变换系数进行排序,然后再获取相同频率点的系数,进行组合,得到三维子带系数阵列(简称为三维系数阵列)。如图13所示,图像编码流程主要包括:
步骤1301、获取变换系数块。
本步骤同实施例一的步骤401。
步骤1302、按照预置次序一排列8x8的变换系数块中的每个变换系数,得到排序后的8x8的变换系数块。
步骤1303、获取图像中8x8的变换系数块中指定频率点的变换系数值,构成该频率点的二维子带系数阵列,将二维子带系数阵列组合,得到三维子带系数阵列。
步骤1304、对三维子带系数阵列中的每个变换系数进行处理,在处理每一个系数时,使用该系数三维邻域内的已处理系数作为上下文估计获得当前系数的概率分布,并使用该概率分布对当前系数进行算术编码得到当前系数的编码信息。具体的,与实施例二的步骤904相同。
方法二、本方法的实施方案与实施例一类似,无需组合为三维子带系数阵列。
先按预置次序一分别对8x8的变换系数块中的每个变换系数进行扫描,得到频率索引fs,然后再获取8x8的变换系数块中指定频率点的变换系数值,构成该频率点的二维子带系数阵列。
按照fs处理每个二维子带系数阵列,在处理每个二维子带系数阵列中的每个变换系数时,按照预置次序二处理每个二维子带系数阵列中的每个变换系数,在处理每个变换系数时,选择预置的空间邻域和子带邻域中已处理的系数作为上下文估计获得当前系数的概率分布,并使用该概率分布对当前系数进行算术编码得到当前系数的编码信息。
本实施例三提供的编码方案中,本实施例对每个变换系数处理时的处理次序与实施例一和实施例二的处理次序不同。
如图12所示,为本申请实施例提供的一种图像解码流程的示意图。主要包括:
步骤1201、获取熵编码后的编码信息,对编码信息进行熵解码得到解码后的变换系数。
对熵编码后的编码信息进行熵解码时,使用与编码端相同的处理次序对每个码元进行解码,例如相同的处理次序指的是先按照频率点扫描次序确定图像编码信息中一个频率点对应的待解码系数,再按照系数扫描次序对一个频率点对应的待解码系数进行解码。在处理每个码元时,将待解码码元输入与编码端相同的概率估计网络,使用该码元三维邻域内的已处理码元作为上下文估计获得当前码元的概率分布,并使用该概率分布对当前码元进行解码得到当前码元的变换系数。将每个码元解码后,得到变换系数块或系数阵列C(bx,by,fx,fy)。
步骤1202、获得解码后的图像数据。
方法一:对应步骤401中的方法一的解码:对系数阵列C(bx,by,fx,fy)进行反变换和反量化,得到解码后的图像数据。
方法二:对应步骤401中的方法二的解码:对8x8的变换系数块进行熵编码,得到熵编码后的图像数据。
本实施例三提供的编码方案中,本实施例将变换系数按频率分量组合得到三维系数阵列C(bx,by,fs),并在对其中一个系数做算术编码时,使用该系数邻域已处理的系数作为上下文来估计该系数值的概率分布。本申请实施例可以提高图像的压缩率,减少服务器端的存储资源。
实施例四
本实施例涉及一种图像编码方案,首先获取变换系数块(简称为系数块),再对系数块使用进行无损编码,得到编码后的图像数据。本实施例提供整个编码的流程,例如可以包括对图像区域进行变换和量化,再对量化后的系数进行无损编码,得到编码后的图像数据。如图14所示,图像编码流程主要包括:
步骤1401、获取变换系数块。
本步骤同实施例一的步骤401。
步骤1402、获取图像中8x8的变换系数块中指定频率点的变换系数值,构成该频率点的二维子带系数阵列。
需要说明的是,本实施例的步骤1401和步骤1402同实施例一的步骤401和步骤402相同。不同之处在于,实施例四中熵编码时,将二维子带系数阵列作为一个子带图像进行编码。
步骤1403、将该频率点对应的二维子带系数阵列作为一个子带图像,在处理一个系数时,使用图像无损编码方法进行编码。
将指定频率点对应的二维子带系数阵列Cfx,fy(bx,by)作为一个子带图像,按照预置次序处理子带图像,并设置子带图像处理次序索引为fs。在处理子带图像的一个系数时,使用已有的无损图像处理方法进行编码。例如,H.264与H.265等标准方案中的无损编码模式,如算术编码方法。
其中,处理次序索引fs的获取方法包括:首先获取图像中的任意一个8x8的变换系数块,按照预置次序一对该系数块内指定频率点(fx,fy)的变换系数进行排序,则指定频率点(fx,fy)的二维子带系数阵列的处理次序索引fs与其在该系数块内的排序索引相同。
所述预置次序与实施例一中的含义相同,在此不做赘述。
本实施例四提供的编码方案中,熵编码时,将二维子带系数阵列作为一个子带图像进行编码,方案实现起来更加简单。
实施例五
本实施例涉及一种图像编码方案,首先获取变换系数块(简称为系数块),再对系数块使用进行无损编码,得到编码后的图像数据。本实施例提供整个编码的流程,例如可以包括对图像区域进行变换和量化,再对量化后的系数进行无损编码,得到编码后的图像数据。如图15所示,图像编码流程主要包括:
步骤1500(图中未示出)、获取变换系数块。
本步骤同实施例一的步骤401。
步骤1501、将待处理图像区域划分为预置大小的图像块,并对每个图像块进行变换和量化,得到变换系数阵列。
首先,将待处理图像或者图像区域划分为相同预置大小的子图像块,所述预置大小的子图像块的尺寸可以是4x4、8x8、16x16、32x32、64x64、128x128和256x256等。
如图5所示,对预置大小的子图像块进行DCT变换,得到变换系数块。可选的,对变换系数块进行量化,得到量化后的变换系数阵列C(bx,by,fx,fy),系数阵列中的每个变换系数可以用表示。其中,(bx,by)表示系数块水平和竖直的位置索引,bx=0,…,M-1,by=0,…,N-1,其中,M和N分别为以子块计的图像宽和高,W和H分别表示当前图像的宽和高,subW和subH分别表示当前图像中子图像块的宽和高。(fx,fy)表示系数块中每个频率点相对于左上顶点的频率点的频率索引,其中,fx=0,..,subW-1,fy=0,..,subH-1。本申请实施例中,预置大小的子图像块的尺寸以8x8为例,即子图像块的宽和高均为8,即subW和subH的值均为8,后续不再赘述。
例如,如图5所示,(bx=0,by=0)表示第一个系数块,(bx=0,by=1)表示第一行的第二个系数块,依此类推。(fx=0,fy=1)表示系数块中相对于左上顶点的频率点的坐标为(0,1)的频率索引。表示系数块(bx=1,by=0)内的位置为(fx=3,fy=2)表示的系数值。
本实施例五与实施例一到四的区别在于,在对每个变换系数进行处理时,没有构建二维子带系数阵列这个动作,也没有构建三维系数阵列这个动作,直接将步骤1501获得的系数块按照预置次序一和预置次序二进行处理,实现上较为简单,复杂度更低。
不限定的是,前述步骤1501可以替换为如下步骤:对熵编码后的图像数据进行熵解码,得到图像中8x8块的变换系数。
使用哈夫曼解码方法对JPEG文件中的所有子图像块的变换系数编码信息进行熵解码,得到一个或者多个子图像块的变换系数,简称系数块,系数块的每个变换系数记做其中,(bx,by)表示系数块水平和竖直的位置索引,bx=0,…,M-1,by=0,…,N-1,M=W/subW,N=H/subH,其中M和N分别为以子块计的图像宽和高,W和H分别表示当前图像的宽和高,subW和subH分别表示当前图像中子图像块的宽和高。(fx,fy)表示系数块中每个频率点相对于左上顶点的频率点的频率索引,其中,fx=0,..,subW-1,fy=0,..,subH-1。在本申请实施例中,JPEG文件中的所有子图像块的宽和高均为8,即subW和subH的值均为8,后续不再赘述。不限定的是,本申请实施例中所描述的技术方案也可应用于subW和subH的取值不为8的情况,甚至subW不等于subH。
例如,如图5所示,(bx=0,by=0)表示第一个系数块,(bx=0,by=1)表示第一行的第二个系数块,依此类推。(fx=0,fy=1)表示系数块中相对于左上顶点的频率点的坐标为(0,1)的频率索引。表示系数块(bx=0,by=1)内的位置为(fx=3,fy=2)表示的系数值。
步骤1502、按照预置次序一处理当前图像的系数块的每个频率子带,并按照预置次序二处理每个频率子带中的变换系数。在处理每个变换系数时,选择预置上下文区域中已处理的系数作为上下文估计获得当前系数的概率分布,并使用该概率分布对当前系数进行算术编码得到当前系数的编码信息。
不限定的是,前述步骤1502可以替换为如下的步骤:按照预置次序一处理当前图像的系数块中的一个频率点对应的变换系数,并按照预置次序二处理每个频率点对应的各个变换系数。在处理每个变换系数时,选择预置上下文区域中已处理的系数作为上下文估计获得当前系数的概率分布,并使用该概率分布对当前系数进行算术编码得到当前系数的编码信息。
例如,频率子带为8x8的变换系数块中指定频率点(fx,fy)的系数的集合Cfx,fy(bx,by),本实施例中有64个频率子带。首先获取图像中的任意一个8x8的变换系数块,按照预置次序一对该系数块内指定频率点(fx,fy)的系数进行扫描,则指定频率点(fx,fy)的频率子带的索引fs与该频率点在该系数块内的扫描次序相同,按照fs的大小顺序处理fs对应的频率子带。其中,fs为整数,取值范围为0,…,subW×subH-1。
然后,在处理每个频率子带时,按照预置次序二处理频率子带中的每个变换系数。在处理每个变换系数时,选择预置上下文区域中已处理的系数作为上下文,并将上下文信息输入概率估计网络,对系数的概率分布进行估计,从而获得当前系数的概率分布,并使用该概率分布对当前系数进行算术编码得到当前系数的编码信息。预置上下文区域可以包括该系数的空间邻域和/或子带邻域,或者是实施例二中定义的三维邻域。
具体的,对系数的概率分布进行估计的方法如下:方法一:概率估计网络根据该系数的动态取值范围直接对取值范围内的值进行概率估计,得到一个概率向量,概率向量中包括取值范围内每个的值的概率值,其中所有概率值的和为1。方法二:还可以使用概率分布模型来获得概率向量。例如使用单高斯模型或者混合高斯模型建模,使用概率估计网络估计得到模型参数,将模型参数代入概率分布模型中,得到概率向量。
首先,获得该系数的三维邻域内的系数作为上下文后,将上下文信息输入概率估计网络,对该系数进行概率估计得到该系数的概率分布,使用该概率分布对当前系数进行无损编码,得到该系数的编码信息。概率估计网络中使用的概率分布估计方法包括基于深度学习网络的概率分布估计方法,例如循环神经网络和卷积神经网络等。
其中,若系数所在的坐标为(bx0,by0,fs0),若预置上下文区域内任一坐标位置(bx1,by1,fs1)满足bx0-M1≤bx1≤bx0+N1,且by0-M2≤by1≤by0+N2,且fs1=fs0,则(bx1,by1,fs1)位置的系数在该系数的子带邻域内。
若预置上下文区域内任一坐标位置(bx1,by1,fs1)满足bx1=bx0,且by0-M2≤by1≤by0+N2,且fs0-N3≤fs1≤fs0,或者满足bx0-M1≤bx1≤bx0+N1,且by1=by0,且fs0-N3≤fs1≤fs0,则(bx1,by1,fs1)位置的系数在该系数的空间邻域内;其中M1,M2,N1,N2和N3为大于或者等于0的整数,取值可以相等,也可以互不相等,在此不做限定,例如,为1,2,3,4或者5。
其中,预置次序一和预置次序二可以是按照之字(zig-zag)扫描得到的处理次序,还可以使用其他扫描方法得到处理次序,例如:逐行扫描、逐列扫描、对角扫描、水平反向扫描和垂直反向扫描等。其中逐行扫描是指从图像的第一行一直连续扫描到最后一行,逐列扫描是指从图像的第一列一直连续扫描到最后一列。
步骤1503、获得转码输出文件。
将熵编码后的编码信息输出,得到转码输出文件。
如图16所示,为本申请实施例提供的一种图像解码流程的示意图。主要包括:
步骤1601、获取熵编码后的编码信息,对编码信息中的每个码元进行熵解码得到解码后的变换系数。
对熵编码后的编码信息进行熵解码,使用与编码端相同的处理次序解码每个码元。首先根据频率子带的索引或者预置次序一获取每个频率子带,再根据预置次序二处理每个频率子带中的码元。在处理每个码元时,将该码元的预置上下文区域内已解码的码元作为上下文输入概率估计网络,获得当前码元的概率分布,并使用该概率分布对当前码元进行解码得到当前码元的变换系数。依次对编码端输出的每个码元进行熵解码得到每个码元的变换系数,从而得到图像的系数块。
步骤1602、获得解码后的图像数据。
方法一:对应步骤401中的方法一的解码:对系数块进行反变换和反量化,得到解码后的图像数据。
方法二:对应步骤401中的方法二的解码:对8x8的变换系数块进行熵编码,得到熵编码后的图像数据。
本实施例五提供的编码方案中,不需要生成二维子带系数阵列,而是直接对频率子带进行编码,方案实现起来更加简单。
本申请实施例涉及视频图像压缩中的块变换与系数编码,变换系数按指定频率点组合得到三维系数阵列C(bx,by,fs),并对每个频率索引fs对应的系数子图像进行无损编码。变换系数按指定频率点组合得到三维系数阵列C(bx,by,fs),并在对其中一个系数做算术编码时,使用该系数三维邻域已处理的系数作为上下文来估计该系数值的概率分布。按照预置次序一处理每个二维子带系数阵列Cfx,fy(bx,by),在处理每个二维子带系数阵列中的每个变换系数时,按照预置次序二处理每个二维子带系数阵列中的每个变换系数,使用该系数邻域已处理的系数作为上下文来估计该系数值的概率分布。获取指定频率点的二维子带系数阵列Cfx,fy(bx,by)。将该频率点对应的二维子带系数阵列作为一个子带图像,在处理每个子带图像时,按照预置次序一处理每个子带图像。在处理子带图像的每个变换系数时,使用图像无损编码方法进行编码。按照预置次序一处理当前图像的每个频率子带,并按照预置次序二处理每个频率子带中的变换系数。所述频率子带为8x8的变换系数块中指定频率点(fx,fy)的系数的集合Cfx,fy(bx,by)。
通过上述举例说明可知,本申请实施例中将待处理图像区域划分为预置大小的图像块,并对每个图像块进行变换和量化,得到变换系数阵列C(bx,by,fx,fy)。然后按预置次序对其中每一个系数做熵编码,所述预置次序会优先处理每一个频率索引对应的所有系数块的系数。在对每一个系数做熵编码时,按照系数的空间邻近关系与系数的频率分量邻近关系,选择邻近区域已处理的系数作为上下文估计得到当前系数的概率分布,基于该概率分布对当前系数做后续的编码操作。本申请实施例可进一步减小压缩文件的大小,降低服务器侧的视频图像文件存储成本。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本邻域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本邻域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
为便于更好的实施本申请实施例的上述方案,下面还提供用于实施上述方案的相关装置。
请参阅图17所示,本申请实施例提供的一种图像编码装置1700,可以包括:收发模块1701、处理模块1702,其中,
收发模块,用于获取至少两个变换系数块,所述至少两个变换系数块中的每个变换系数块包括:至少两个变换系数,其中,一个变换系数块中的各个变换系数对应于不同的频率点;
处理模块,用于按照预设的频率点扫描次序确定一个频率点对应的所述至少两个变换系数块中的变换系数;按照预设的系数扫描次序对所述一个频率点对应的各个变换系数进行编码,以得到图像编码信息。在本申请实施例中,可以预先设置或者配置频率点扫描次序,基于该频率点扫描次序确定一个频率点,该频率点可以是任意一个频率点,每一个频率点对应于至少两个变换系数块中每个变换系数块中的一个变换系数,即一个频率点对应于多个变换系数,这多个变换系数来源于不同的变换系数块,可以预先设置或者配置系数扫描次序,基于该系数扫描次序对一个频率点对应的各个变换系数进行编码,最终可以得到图像编码信息。本申请实施例中针对至少两个变换系数块中相同频率点对应的变换系数,只需要按照系数扫描次序进行编码就可以得到图像编码信息,因此针对相同频率点对应的多个变换系数可以实现编码,提高图像压缩效率,且本申请实施例中图像编码信息是按照系数扫描次序对至少两个变换系数块中相同频率点对应的变换系数进行编码得到,编码后的图像编码信息的文件减小,降低图像编码信息的存储成本,最终节省存储资源。
在一种可能的实现方式中,所述处理模块,用于从所述至少两个变换系数块中获取至少两个二维子带系数阵列,其中,一个二维子带系数阵列包括所述至少两个变换系数块中相同频率点对应的变换系数,不相同的二维子带系数阵列包括的变换系数对应于不同的频率点;按照预设的频率点扫描次序确定所述至少两个二维子带系数阵列中的第一二维子带系数阵列;按照预设的系数扫描次序确定所述第一二维子带系数阵列中的第一变换系数;根据所述第一变换系数对应的上下文区域对所述第一变换系数进行熵编码。
在一种可能的实现方式中,所述处理模块,用于从所述至少两个变换系数块中获取至少两个二维子带系数阵列,其中,一个二维子带系数阵列包括所述至少两个变换系数块中相同频率点对应的变换系数,不相同的二维子带系数阵列包括的变换系数对应于不同的频率点;按照预设的频率点扫描次序对所述至少两个二维子带系数阵列进行组合,以得到三维子带系数阵列;按照预设的三维子带系数扫描次序确定所述三维子带系数阵列中的第一二维子带系数阵列;按照预设的系数扫描次序确定所述第一二维子带系数阵列中第一变换系数;根据所述第一变换系数对应的上下文区域对所述第一变换系数进行熵编码。
在一种可能的实现方式中,所述处理模块,用于按照预设的频率点扫描次序对所述至少两个变换系数块进行排序,得到排序后的至少两个变换系数块;从所述排序后的至少两个变换系数块中获取不同频率点对应的多个二维子带系数阵列;对所述不同频率点对应的多个二维子带系数阵列进行组合,以得到三维子带系数阵列;按照预设的三维子带系数扫描次序从所述三维子带系数阵列中确定第一二维子带系数阵列;按照预设的系数扫描次序确定所述第一二维子带系数阵列中第一变换系数;根据所述第一变换系数对应的上下文区域对所述第一变换系数进行熵编码。
在一种可能的实现方式中,所述三维子带系数扫描次序,包括:预设的水平位置索引的变化次序;或者,预设的竖直位置索引的变化次序;或者,预设的频率索引的变化次序。
在一种可能的实现方式中,所述处理模块,用于按照预设的频率点扫描次序确定所述至少两个变换系数块中由相同频率点对应的变换系数构成的第一二维子带系数阵列;按照预设的系数扫描次序确定所述第一二维子带系数阵列中的第一变换系数;根据所述第一变换系数对应的上下文区域对所述第一变换系数进行熵编码。
在一种可能的实现方式中,所述处理模块,用于按照预设的频率点扫描次序确定一个频率子带包括的所述至少两个变换系数块中的变换系数,所述一个频率子带包括的所述至少两个变换系数块中的变换系数对应于相同的频率点;按照预设的系数扫描次序确定所述一个频率子带包括的第一变换系数;根据所述第一变换系数对应的上下文区域对所述第一变换系数进行熵编码。
在一种可能的实现方式中,所述处理模块,用于从所述第一变换系数对应的上下文区域中获取所述第一变换系数的上下文信息,其中,所述第一变换系数的上下文信息包括:所述第一变换系数对应的上下文区域中的已编码变换系数;根据所述第一变换系数的上下文信息对所述第一变换系数进行估计,以得到所述第一变换系数的概率分布信息;根据所述第一变换系数的概率分布信息对所述第一变换系数进行算术编码。
在一种可能的实现方式中,所述第一变换系数对应的上下文区域包括如下至少一种:所述第一变换系数的空间邻域,所述第一变换系数的子带邻域,所述第一变换系数的三维邻域。
在一种可能的实现方式中,所述处理模块,用于当所述第一变换系数为多个变换系数时,从所述多个变换系数对应的上下文区域中获取所述多个变换系数的上下文信息,其中,所述多个变换系数的上下文信息包括:所述多个变换系数对应的上下文区域中的已编码变换系数;根据所述多个变换系数的上下文信息对所述多个变换系数并行的进行估计,以得到所述多个变换系数的概率分布信息;根据所述多个变换系数的概率分布信息对所述多个变换系数并行的进行算术编码。
在一种可能的实现方式中,所述多个变换系数对应的上下文区域包括如下至少一种:所述多个变换系数的空间邻域,所述多个变换系数的子带邻域,所述多个变换系数的三维邻域。
在一种可能的实现方式中,所述处理模块,用于从所述至少两个变换系数块中获取至少两个二维子带系数阵列,其中,一个二维子带系数阵列包括所述至少两个变换系数块中相同频率点对应的变换系数,不相同的二维子带系数阵列包括的变换系数对应于不同的频率点;按照预设的频率点扫描次序确定所述至少两个二维子带系数阵列对应的至少两个子带图像;按照预设的系数扫描次序对所述至少两个子带图像中的变换系数进行编码。
在一种可能的实现方式中,所述收发模块,用于获取至少两个图像块的变换系数编码信息;对所述变换系数编码信息进行熵解码,以得到所述至少两个变换系数块。
在一种可能的实现方式中,所述收发模块,用于将原始图像区域划分为至少两个图像块,所述原始图像区域包括:像素图像区域或者残差图像区域;对所述至少两个图像块进行变换和量化,以得到所述至少两个变换系数块。
在本申请的第三方面中,图像处理装置的组成模块还可以执行前述第一方面以及各种可能的实现方式中所描述的步骤,详见前述对第一方面以及各种可能的实现方式中的说明。
请参阅图18所示,本申请实施例提供的一种图像解码装置1800,可以包括:收发模块1801、处理模块1802,其中,
收发模块,用于获取图像编码信息;
处理模块,用于按照预设的频率点扫描次序确定所述图像编码信息中一个频率点对应的待解码变换系数;按照预设的系数扫描次序对所述一个频率点对应的待解码变换系数进行解码,以得到至少两个变换系数块,其中,所述至少两个变换系数块中的每个变换系数块包括:至少两个变换系数,一个变换系数块中的各个变换系数对应于不同的频率点。
在一种可能的实现方式中,所述处理模块,用于按照预设的频率点扫描次序确定所述图像编码信息中的第一待解码二维子带系数阵列,所述第一待解码二维子带系数阵列包括:所述图像编码信息中一个频率点对应的待解码变换系数;按照预设的系数扫描次序确定所述第一待解码二维子带系数阵列中的第一待解码变换系数;根据所述第一待解码变换系数对应的上下文区域对所述第一待解码变换系数进行熵解码。
在一种可能的实现方式中,所述处理模块,用于按照预设的频率点扫描次序确定所述图像编码信息中的待解码三维子带系数阵列,所述待解码三维子带系数阵列包括:所述图像编码信息中所有频率点分别对应的待解码变换系数;按照预设的三维子带系数扫描次序确定所述待解码三维子带系数阵列中的第一待解码二维子带系数阵列,所述第一待解码二维子带系数阵列包括:所述图像编码信息中一个频率点对应的待解码变换系数;按照预设的系数扫描次序确定所述第一待解码二维子带系数阵列中的第一待解码变换系数;根据所述第一待解码变换系数对应的上下文区域对所述第一待解码变换系数进行熵解码。
在一种可能的实现方式中,所述三维子带系数扫描次序,包括:预设的水平位置索引的变化次序;或者,预设的竖直位置索引的变化次序;或者,预设的频率索引的变化次序。
在一种可能的实现方式中,所述处理模块,用于按照预设的频率点扫描次序确定所述图像编码信息中一个频率子带包括的待解码变换系数,所述一个频率子带包括的待解码变换系数对应于相同的频率点;按照预设的系数扫描次序确定所述一个频率子带中的第一待解码变换系数;根据所述第一待解码变换系数对应的上下文区域对所述第一待解码变换系数进行熵解码。
在一种可能的实现方式中,所述处理模块,用于从所述第一待解码变换系数对应的上下文区域中获取所述第一待解码变换系数的上下文信息,其中,所述第一待解码变换系数对应的上下文区域包括:所述第一待解码变换系数对应的上下文区域中的已解码变换系数;根据所述第一待解码变换系数的上下文信息对所述第一待解码变换系数进行估计,以得到所述第一待解码变换系数的概率分布信息;根据所述第一待解码变换系数的概率分布信息对所述第一待解码变换系数进行算术解码,以得到解码后的第一变换系数,所述解码后的第一变换系数属于所述至少两个变换系数块。
在一种可能的实现方式中,所述第一待解码变换系数对应的上下文区域包括如下至少一种:所述第一待解码变换系数的空间邻域,所述第一待解码变换系数的子带邻域,所述第一待解码变换系数的三维邻域。
在一种可能的实现方式中,所述处理模块,用于当所述第一待解码变换系数为多个待解码变换系数时,从所述多个待解码变换系数对应的上下文区域中获取所述多个待解码变换系数的上下文信息,其中,所述多个待解码的上下文信息包括:所述多个待解码变换系数对应的上下文区域中的已解码变换系数;根据所述多个待解码变换系数的上下文信息对所述多个待解码变换系数并行的进行估计,以得到所述第一待解码变换系数的概率分布信息;根据所述多个待解码变换系数的概率分布信息对所述多个待解码变换系数并行的进行算术解码,以得到解码后的第一变换系数,所述解码后的第一变换系数属于所述至少两个变换系数块。
在一种可能的实现方式中,所述多个待解码变换系数对应的上下文区域包括如下至少一种:所述多个待解码变换系数的空间邻域,所述多个待解码变换系数的子带邻域,所述多个待解码变换系数的三维邻域。
在一种可能的实现方式中,所述处理模块,用于按照预设的频率点扫描次序确定所述图像编码信息中的第一子带图像,所述第一子带图像包括:所述图像编码信息中的一个频率点对应的待解码变换系数;按照预设的系数扫描次序对所述第一子带图像的待解码系数进行解码,以得到所述至少两个变换系数块。
在一种可能的实现方式中,所述处理模块,还用于得到至少两个变换系数块之后,对所述至少两个变换系数块进行熵编码,以得到变换系数编码信息;根据所述变换系数编码信息生成至少两个图像块;根据所述至少两个图像块还原出原始图像区域,所述原始图像区域包括:像素图像区域或者残差图像区域。
在一种可能的实现方式中,所述处理模块,还用于得到至少两个变换系数块之后,对所述至少两个变换系数块进行反量化和反变换,以得到至少两个图像块;根据所述至少两个图像块还原出原始图像区域,所述原始图像区域包括:像素图像区域或者残差图像区域。
需要说明的是,上述装置各模块/单元之间的信息交互、执行过程等内容,由于与本申请方法实施例基于同一构思,其带来的技术效果与本申请方法实施例相同,具体内容可参见本申请前述所示的方法实施例中的叙述,此处不再赘述。
本申请实施例还提供一种计算机存储介质,其中,该计算机存储介质存储有程序,该程序执行包括上述方法实施例中记载的部分或全部步骤。
接下来介绍本申请实施例提供的另一种图像编码装置,请参阅图19所示,图像编码装置1900包括:
接收器1901、发射器1902、处理器1903和存储器1904(其中图像编码装置1900中的处理器1903的数量可以一个或多个,图19中以一个处理器为例)。在本申请的一些实施例中,接收器1901、发射器1902、处理器1903和存储器1904可通过总线或其它方式连接,其中,图19中以通过总线连接为例。
存储器1904可以包括只读存储器和随机存取存储器,并向处理器1903提供指令和数据。存储器1904的一部分还可以包括非易失性随机存取存储器(non-volatile randomaccess memory,NVRAM)。存储器1904存储有操作系统和操作指令、可执行模块或者数据结构,或者它们的子集,或者它们的扩展集,其中,操作指令可包括各种操作指令,用于实现各种操作。操作系统可包括各种系统程序,用于实现各种基础业务以及处理基于硬件的任务。
处理器1903控制图像编码装置的操作,处理器1903还可以称为中央处理单元(central processing unit,CPU)。具体的应用中,图像编码装置的各个组件通过总线系统耦合在一起,其中总线系统除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都称为总线系统。
上述本申请实施例揭示的方法可以应用于处理器1903中,或者由处理器1903实现。处理器1903可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器1903中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器1903可以是通用处理器、数字信号处理器(digital signal processing,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现场可编程门阵列(field-programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本邻域成熟的存储介质中。该存储介质位于存储器1904,处理器1903读取存储器1904中的信息,结合其硬件完成上述方法的步骤。
接收器1901可用于接收输入的数字或字符信息,以及产生与图像编码装置的相关设置以及功能控制有关的信号输入,发射器1902可包括显示屏等显示设备,发射器1902可用于通过外接接口输出数字或字符信息。
本申请实施例中,处理器1903用于执行前述实施例图3所示的由图像编码装置执行的图像处理方法。
接下来介绍本申请实施例提供的另一种图像解码装置,请参阅图20所示,图像解码装置2000包括:
接收器2001、发射器2002、处理器2003和存储器2004(其中图像解码装置2000中的处理器2003的数量可以一个或多个,图20中以一个处理器为例)。在本申请的一些实施例中,接收器2001、发射器2002、处理器2003和存储器2004可通过总线或其它方式连接,其中,图20中以通过总线连接为例。
存储器2004可以包括只读存储器和随机存取存储器,并向处理器2003提供指令和数据。存储器2004的一部分还可以包括NVRAM。存储器2004存储有操作系统和操作指令、可执行模块或者数据结构,或者它们的子集,或者它们的扩展集,其中,操作指令可包括各种操作指令,用于实现各种操作。操作系统可包括各种系统程序,用于实现各种基础业务以及处理基于硬件的任务。
处理器2003控制图像解码装置的操作,处理器2003还可以称为CPU。具体的应用中,图像解码装置的各个组件通过总线系统耦合在一起,其中总线系统除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都称为总线系统。
上述本申请实施例揭示的方法可以应用于处理器2003中,或者由处理器2003实现。处理器2003可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器2003中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器2003可以是通用处理器、DSP、ASIC、FPGA或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本邻域成熟的存储介质中。该存储介质位于存储器2004,处理器2003读取存储器2004中的信息,结合其硬件完成上述方法的步骤。
本申请实施例中,处理器2003,用于执行前述实施例图3所示的由图像解码装置执行的图像处理方法。
在另一种可能的设计中,当图像处理装置或者图像处理装置为终端内的芯片时,芯片包括:处理单元和通信单元,所述处理单元例如可以是处理器,所述通信单元例如可以是输入/输出接口、管脚或电路等。该处理单元可执行存储单元存储的计算机执行指令,以使该终端内的芯片执行上述第一方面任意一项的无线通信方法。可选地,所述存储单元为所述芯片内的存储单元,如寄存器、缓存等,所述存储单元还可以是所述终端内的位于所述芯片外部的存储单元,如只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)等。
其中,上述任一处提到的处理器,可以是一个通用中央处理器,微处理器,ASIC,或一个或多个用于控制上述第一方面或第二方面方法的程序执行的集成电路。
另外需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本申请提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。
通过以上的实施方式的描述,所属邻域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件的方式来实现,当然也可以通过专用硬件包括专用集成电路、专用CPU、专用存储器、专用元器件等来实现。一般情况下,凡由计算机程序完成的功能都可以很容易地用相应的硬件来实现,而且,用来实现同一功能的具体硬件结构也可以是多种多样的,例如模拟电路、数字电路或专用电路等。但是,对本申请而言更多情况下软件程序实现是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘、U盘、移动硬盘、ROM、RAM、磁碟或者光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。
所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘(Solid State Disk,SSD))等。
Claims (20)
1.一种图像处理方法,其特征在于,包括:
获取至少两个变换系数块,所述至少两个变换系数块中的每个变换系数块包括:至少两个变换系数,其中,一个变换系数块中的各个变换系数对应于不同的频率点;
按照预设的频率点扫描次序确定一个频率点对应的所述至少两个变换系数块中的变换系数;
按照预设的系数扫描次序对所述一个频率点对应的各个变换系数同时进行编码,以得到图像编码信息;
其中,所述按照预设的系数扫描次序对所述一个频率点对应的各个变换系数同时进行编码包括:
根据预设的系数扫描顺序,从至少两个二维子带系数阵列中的第一二维子带系数阵列中确定第一变换系数;基于与第一变换系数对应的上下文区域对第一变换系数进行熵编码,一个二维子带系数阵列包括所述至少两个变换系数块中相同频率点对应的变换系数,不相同的二维子带系数阵列包括的变换系数对应于不同的频率点;或,
按照预设的系数扫描次序确定一个频率子带包括的第一变换系数,并根据所述第一变换系数对应的上下文区域对所述第一变换系数进行熵编码,所述一个频率子带包括的所述至少两个变换系数块中的变换系数对应于相同的频率点。
2.根据权利要求1所述的方法,其特征在于,所述按照预设的频率点扫描次序确定一个频率点对应的所述至少两个变换系数块中的变换系数,包括:
从所述至少两个变换系数块中获取至少两个二维子带系数阵列,其中,一个二维子带系数阵列包括所述至少两个变换系数块中相同频率点对应的变换系数,不相同的二维子带系数阵列包括的变换系数对应于不同的频率点;
按照预设的频率点扫描次序确定所述至少两个二维子带系数阵列中的第一二维子带系数阵列。
3.根据权利要求1所述的方法,其特征在于,所述按照预设的频率点扫描次序确定一个频率点对应的所述至少两个变换系数块中的变换系数,包括:
从所述至少两个变换系数块中获取至少两个二维子带系数阵列,其中,一个二维子带系数阵列包括所述至少两个变换系数块中相同频率点对应的变换系数,不相同的二维子带系数阵列包括的变换系数对应于不同的频率点;
按照预设的频率点扫描次序对所述至少两个二维子带系数阵列进行组合,以得到三维子带系数阵列;
按照预设的三维子带系数扫描次序确定所述三维子带系数阵列中的第一二维子带系数阵列。
4.根据权利要求1所述的方法,其特征在于,所述按照预设的频率点扫描次序确定一个频率点对应的所述至少两个变换系数块中的变换系数,包括:
按照预设的频率点扫描次序对所述至少两个变换系数块进行排序,得到排序后的至少两个变换系数块;
从所述排序后的至少两个变换系数块中获取不同频率点对应的多个二维子带系数阵列;
对所述不同频率点对应的多个二维子带系数阵列进行组合,以得到三维子带系数阵列;
按照预设的三维子带系数扫描次序从所述三维子带系数阵列中确定第一二维子带系数阵列。
5.根据权利要求3或4所述的方法,其特征在于,所述三维子带系数扫描次序,包括:
预设的水平位置索引的变化次序;或者,
预设的竖直位置索引的变化次序;或者,
预设的频率索引的变化次序。
6.根据权利要求1所述的方法,其特征在于,所述按照预设的频率点扫描次序确定一个频率点对应的所述至少两个变换系数块中的变换系数,包括:
按照预设的频率点扫描次序确定所述至少两个变换系数块中由相同频率点对应的变换系数构成的第一二维子带系数阵列。
7.根据权利要求2至4中任一项所述的方法,其特征在于,所述根据所述第一变换系数对应的上下文区域对所述第一变换系数进行熵编码,包括:
当所述第一变换系数为多个变换系数时,从所述多个变换系数对应的上下文区域中获取所述多个变换系数的上下文信息,其中,所述多个变换系数的上下文信息包括:所述多个变换系数对应的上下文区域中的已编码变换系数;
根据所述多个变换系数的上下文信息对所述多个变换系数并行的进行估计,以得到所述多个变换系数的概率分布信息;
根据所述多个变换系数的概率分布信息对所述多个变换系数并行的进行算术编码。
8.根据权利要求7所述的方法,其特征在于,所述多个变换系数对应的上下文区域包括如下至少一种:所述多个变换系数的空间邻域,所述多个变换系数的子带邻域,所述多个变换系数的三维邻域。
9.根据权利要求1至4中任一项所述的方法,其特征在于,所述获取至少两个变换系数块,包括:
获取至少两个图像块的变换系数编码信息;
对所述变换系数编码信息进行熵解码,以得到所述至少两个变换系数块。
10.根据权利要求1至4中任一项所述的方法,其特征在于,所述获取至少两个变换系数块,包括:
将原始图像区域划分为至少两个图像块,所述原始图像区域包括:像素图像区域或者残差图像区域;
对所述至少两个图像块进行变换和量化,以得到所述至少两个变换系数块。
11.一种图像处理方法,其特征在于,包括:
获取图像编码信息;
按照预设的频率点扫描次序确定所述图像编码信息中一个频率点对应的待解码变换系数;
按照预设的系数扫描次序对所述一个频率点对应的待解码变换系数同时进行解码,以得到至少两个变换系数块,其中,所述至少两个变换系数块中的每个变换系数块包括:至少两个变换系数,一个变换系数块中的各个变换系数对应于不同的频率点;
其中,所述按照预设的系数扫描次序对所述一个频率点对应的待解码变换系数同时进行解码,包括:
按照预设的系数扫描次序确定至少两个待解码二维子带系数阵列中的第一待解码二维子带系数阵列中的第一待解码变换系数;
根据所述第一待解码变换系数对应的上下文区域对所述第一待解码变换系数进行熵解码,一个待解码二维子带系数阵列包括所述至少两个变换系数块中相同频率点对应的变换系数,不相同的待解码二维子带系数阵列包括的变换系数对应于不同的频率点;或,按照预设的系数扫描次序确定一个频率子带中的第一待解码变换系数,并根据所述第一待解码变换系数对应的上下文区域对所述第一待解码变换系数进行熵解码,所述一个频率子带包括的所述至少两个变换系数块中的变换系数对应于相同的频率点。
12.根据权利要求11所述的方法,其特征在于,所述按照预设的频率点扫描次序确定所述图像编码信息中一个频率点对应的待解码变换系数,包括:
按照预设的频率点扫描次序确定所述图像编码信息中的第一待解码二维子带系数阵列,所述第一待解码二维子带系数阵列包括:所述图像编码信息中一个频率点对应的待解码变换系数。
13.根据权利要求11所述的方法,其特征在于,所述按照预设的频率点扫描次序确定所述图像编码信息中一个频率点对应的待解码变换系数,包括:
按照预设的频率点扫描次序确定所述图像编码信息中的待解码三维子带系数阵列,所述待解码三维子带系数阵列包括:所述图像编码信息中所有频率点分别对应的待解码变换系数;
按照预设的三维子带系数扫描次序确定所述待解码三维子带系数阵列中的第一待解码二维子带系数阵列,所述第一待解码二维子带系数阵列包括:所述图像编码信息中一个频率点对应的待解码变换系数。
14.根据权利要求13所述的方法,其特征在于,所述三维子带系数扫描次序,包括:
预设的水平位置索引的变化次序;或者,
预设的竖直位置索引的变化次序;或者,
预设的频率索引的变化次序。
15.根据权利要求12至14中任一项所述的方法,其特征在于,所述根据所述第一待解码变换系数对应的上下文区域对所述第一待解码变换系数进行熵解码,包括:
当所述第一待解码变换系数为多个待解码变换系数时,从所述多个待解码变换系数对应的上下文区域中获取所述多个待解码变换系数的上下文信息,其中,所述多个待解码变换系数的上下文信息包括:所述多个待解码变换系数对应的上下文区域中的已解码变换系数;
根据所述多个待解码变换系数的上下文信息对所述多个待解码变换系数并行的进行估计,以得到所述第一待解码变换系数的概率分布信息;
根据所述多个待解码变换系数的概率分布信息对所述多个待解码变换系数并行的进行算术解码,以得到解码后的第一变换系数,所述解码后的第一变换系数属于所述至少两个变换系数块。
16.根据权利要求15所述的方法,其特征在于,所述多个待解码变换系数对应的上下文区域包括如下至少一种:所述多个待解码变换系数的空间邻域,所述多个待解码变换系数的子带邻域,所述多个待解码变换系数的三维邻域。
17.根据权利要求11所述的方法,其特征在于,所述按照预设的频率点扫描次序确定所述图像编码信息中一个频率点对应的待解码变换系数,包括:
按照预设的频率点扫描次序确定所述图像编码信息中的第一子带图像,所述第一子带图像包括:所述图像编码信息中的一个频率点对应的待解码变换系数。
18.根据权利要求11至14中任一项所述的方法,其特征在于,所述得到至少两个变换系数块之后,所述方法还包括:
对所述至少两个变换系数块进行反量化和反变换,以得到至少两个图像块;
根据所述至少两个图像块还原出原始图像区域,所述原始图像区域包括:像素图像区域或者残差图像区域。
19.一种图像处理装置,其特征在于,所述图像处理装置包括:处理器和存储器,所述处理器用于与所述存储器耦合,读取并执行所述存储器中的指令,执行如权利要求1至10、或者权利要求11至18中任一项所述的方法。
20.一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行如权利要求1至10、或者权利要求11至18中任意一项所述的方法。
Priority Applications (4)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202010246679.8A CN113473139B (zh) | 2020-03-31 | 2020-03-31 | 一种图像处理方法和图像处理装置 |
| PCT/CN2021/082657 WO2021197158A1 (zh) | 2020-03-31 | 2021-03-24 | 一种图像处理方法和图像处理装置 |
| EP21779779.4A EP4117289A4 (en) | 2020-03-31 | 2021-03-24 | IMAGE PROCESSING METHOD AND IMAGE PROCESSING DEVICE |
| US17/954,861 US12022078B2 (en) | 2020-03-31 | 2022-09-28 | Picture processing method and apparatus |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202010246679.8A CN113473139B (zh) | 2020-03-31 | 2020-03-31 | 一种图像处理方法和图像处理装置 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN113473139A CN113473139A (zh) | 2021-10-01 |
| CN113473139B true CN113473139B (zh) | 2025-01-03 |
Family
ID=77865740
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202010246679.8A Active CN113473139B (zh) | 2020-03-31 | 2020-03-31 | 一种图像处理方法和图像处理装置 |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US12022078B2 (zh) |
| EP (1) | EP4117289A4 (zh) |
| CN (1) | CN113473139B (zh) |
| WO (1) | WO2021197158A1 (zh) |
Families Citing this family (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US12230001B2 (en) * | 2022-01-14 | 2025-02-18 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Encoder, decoder and related methods |
| WO2024208149A1 (en) * | 2023-04-01 | 2024-10-10 | Douyin Vision Co., Ltd. | Method, apparatus, and medium for visual data processing |
| WO2024237804A1 (en) * | 2023-05-18 | 2024-11-21 | Huawei Cloud Computing Technologies Co., Ltd. | Method and device for image re-compression |
Family Cites Families (10)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5500678A (en) * | 1994-03-18 | 1996-03-19 | At&T Corp. | Optimized scanning of transform coefficients in video coding |
| WO2004030368A1 (en) * | 2002-09-27 | 2004-04-08 | Koninklijke Philips Electronics N.V. | Scalable video encoding |
| CN101039421A (zh) * | 2006-03-16 | 2007-09-19 | 华为技术有限公司 | 在编解码中的实现量化的方法和装置 |
| CN100551060C (zh) * | 2006-05-30 | 2009-10-14 | 华为技术有限公司 | 一种视频编解码方法 |
| CA2675891C (en) * | 2007-01-18 | 2013-04-16 | Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. | Quality scalable video data stream |
| CN100539700C (zh) * | 2008-04-30 | 2009-09-09 | 华为技术有限公司 | 图像编码方法和装置 |
| EP2182732A1 (en) * | 2008-10-28 | 2010-05-05 | Panasonic Corporation | Switching between scans in image coding |
| US9877048B2 (en) * | 2014-06-09 | 2018-01-23 | Qualcomm Incorporated | Entropy coding techniques for display stream compression (DSC) |
| CN104270641B (zh) * | 2014-09-30 | 2018-12-14 | 杭州华为数字技术有限公司 | 变换系数的处理方法和装置 |
| US10362310B2 (en) * | 2015-10-21 | 2019-07-23 | Qualcomm Incorporated | Entropy coding techniques for display stream compression (DSC) of non-4:4:4 chroma sub-sampling |
-
2020
- 2020-03-31 CN CN202010246679.8A patent/CN113473139B/zh active Active
-
2021
- 2021-03-24 WO PCT/CN2021/082657 patent/WO2021197158A1/zh not_active Ceased
- 2021-03-24 EP EP21779779.4A patent/EP4117289A4/en active Pending
-
2022
- 2022-09-28 US US17/954,861 patent/US12022078B2/en active Active
Also Published As
| Publication number | Publication date |
|---|---|
| WO2021197158A1 (zh) | 2021-10-07 |
| EP4117289A1 (en) | 2023-01-11 |
| US12022078B2 (en) | 2024-06-25 |
| US20230039840A1 (en) | 2023-02-09 |
| EP4117289A4 (en) | 2023-08-30 |
| CN113473139A (zh) | 2021-10-01 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN109842803B (zh) | 一种图像压缩的方法及装置 | |
| JP6339099B2 (ja) | 次世代ビデオのパーティションデータのコンテンツ適応的エントロピーコーディング | |
| EP3523965B1 (en) | Method and device for context-adaptive binary arithmetic coding a sequence of binary symbols representing a syntax element related to picture data | |
| CN113767636B (zh) | 帧内模式编解码的方法和系统 | |
| CN110800299B (zh) | 用于对图像数据的块进行熵代码化的扫描顺序自适应 | |
| US12022078B2 (en) | Picture processing method and apparatus | |
| CN104581177B (zh) | 一种结合块匹配和串匹配的图像压缩方法和装置 | |
| JP2011125038A (ja) | 適応係数スキャン順序付け | |
| CN110383695B (zh) | 用于对数字图像或视频流进行编码和解码的方法和装置 | |
| TW202135530A (zh) | 用於編碼和解碼視訊樣本區塊的方法、設備及系統 | |
| WO2016172994A1 (zh) | 图像编码、解码方法及装置 | |
| CN112106365B (zh) | 用于视频编码和解码中的自适应上下文建模的方法和设备 | |
| US11818397B2 (en) | Sparse matrix representation using a boundary of non-zero coefficients | |
| KR102380579B1 (ko) | 비디오 데이터에 관련된 신택스 엘리먼트를 나타내는 이진 심볼들의 시퀀스의 컨텍스트-적응적 이진 산술 코딩을 위한 방법 및 디바이스 | |
| JP2003032496A (ja) | 画像符号化装置および方法 | |
| CN121262374A (zh) | 选择对残差块进行编码/解码的编码模式的方法和装置 | |
| CN118317079A (zh) | 视频编解码的方法和系统 | |
| Yang et al. | A fast and efficient codec for multimedia applications in wireless thin-client computing | |
| WO2025148996A1 (en) | Method and apparatus for residual coefficient coding in video coding | |
| Islam et al. | A proposed modification of baseline JPEG standard image compression technique | |
| HK40073695B (zh) | 点云数据的解码方法、编码方法、装置、设备及存储介质 | |
| WO2025059287A1 (en) | Systems and methods for content adaptive multi-scale feature layer filtering | |
| WO2025080750A1 (en) | Systems and methods for content adaptive multi-scale feature layer filtering and redundant channel processing | |
| WO2026002547A1 (en) | Ordering the coefficients of a local attribute transform for point cloud compression | |
| JPH0435361A (ja) | 画像符号化装置および画像符号化・複合化装置 |
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 |