CN118354094A - 视频图像编解码方法及装置、电子设备及计算机存储介质 - Google Patents
视频图像编解码方法及装置、电子设备及计算机存储介质 Download PDFInfo
- Publication number
- CN118354094A CN118354094A CN202410625758.8A CN202410625758A CN118354094A CN 118354094 A CN118354094 A CN 118354094A CN 202410625758 A CN202410625758 A CN 202410625758A CN 118354094 A CN118354094 A CN 118354094A
- Authority
- CN
- China
- Prior art keywords
- image
- block
- sub
- data
- coding
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
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/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/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/186—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 colour or a chrominance component
-
- 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/44—Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本发明提供一种视频图像编解码方法及装置、电子设备和计算机存储介质,包括:将原始视频图像划分为若干个图像子块;对图像子块进行压缩以得到宏块编码数据;构建元数据表,储存宏块编码数据;获取待取视频图像的图像坐标;根据元数据表和图像坐标提取宏块编码数据;对宏块编码数据进行解码以得到图像数据。通过对原始视频图像进行编解码压缩,能够有效减少图像数据量,从而减少了系统读写图像数据所消耗的带宽;该解编码方案无需参考宏块和参考帧数据,能够有效减少编解码过程所消耗的带宽和算力;还可以根据需求只解码部分图像数据,使得在解码时所消耗的带宽和算力较小,解决了现有视频图像压缩技术系统带宽和缓存消耗较大的问题。
Description
技术领域
本发明涉及图像处理技术领域,特别涉及一种视频图像编解码方法及装置、电子设备和计算机存储介质。
背景技术
随着视频图像的分辨率越来越高,视频图像对应处理需求也越来越复杂,所需要处理的原始图像数据量也越来越大,使得在不同的处理模块以及存储介质之间传输数据逐渐成为视频图像处理系统的瓶颈,因此通常会对视频图像进行压缩以减少系统带宽的消耗。
目前各类视频图像压缩技术大都是基于帧间预测算法或帧内预测算法进行的。帧间预测算法是根据当前画面的前一帧或后一帧来预测当前处理宏块的像素值;帧内预测算法是根据当前图像其他宏块的像素信息来预测当前处理宏块的像素值,并使用熵编码将频繁出现的符号分配较短码字,同时将较少出现的符号分配较长码字。
然而,现有的视频图像压缩技术,帧间预测算法在编解码过程中依赖前后多帧数据,需要消耗较大的带宽和缓存;帧内预测算法在编解码过程中需要图像多个不同位置的数据,在解码时还需要重新构建参考帧,也会消耗较大的带宽和缓存。此外,现有常规的视频图像压缩算法大都是按照图像帧作为编码分界单位,编码码流中缺乏定位具体宏块编码信息的手段,无法从编码中间位置开始解码,因此在对部分图像进行处理时需要从头开始解码出整帧图像,不利于减少系统整体算力和带宽消耗。
发明内容
本发明的目的在于提供一种视频图像编解码方法及装置、电子设备和计算机存储介质,以解决现有视频图像压缩技术系统带宽和缓存消耗较大的问题。
为解决上述技术问题,本发明提供一种视频图像编解码方法,包括:
视频图像编码,其中包括:
获取原始视频图像;
将原始视频图像划分为若干个宏块,其中每一宏块包括若干个图像子块;
对每一图像子块按照同样的方式进行压缩,以得到宏块编码数据;
构建元数据表;
储存元数据表,并按图像坐标连续储存宏块编码数据;
和/或,视频图像解码,其中包括:
获取待取视频图像的图像坐标;
根据元数据表和图像坐标提取宏块编码数据;
对宏块编码数据进行解码,以得到图像数据。
可选的,在所述的视频图像编解码方法中,所述将原始视频图像划分为若干个宏块的方法包括:
将原始视频图像划分为若干个图像子块,其中每一图像子块包括n×n个像素;
按照预设顺序,将多个图像子块构成一个宏块,以使原始视频图像被划分为多个宏块。
可选的,在所述的视频图像编解码方法中,所述将原始视频图像划分为若干个图像子块的方法还包括:
若图像子块中的像素不足n×n,则在图像子块的右下部补零,以使补零后的图像子块中的像素满足n×n;
按照从左至右的顺序,每m个图像子块构成一个宏块;
若最右侧的宏块中的图像子块个数不足m,则按照实际的图像子块个数构成最右侧的宏块。
可选的,在所述的视频图像编解码方法中,所述对每一图像子块按照同样的方式进行压缩,以得到宏块编码数据的方法包括:
对图像子块中的每个像素进行编号,以得到像素的图像坐标;
对图像坐标进行离散余弦变换,以得到像素对应的二维数组;
对二维数组按照预设方式扫描重新排列,以得到子块序列,所述子块序列的首个值为DC系数,其余的值为AC系数;
利用宏块中每一图像子块所对应的子块序列构建宏块序列;
将宏块序列的长度补齐至预设长度,以得到宏块编码数据。
可选的,在所述的视频图像编解码方法中,所述利用宏块中每一图像子块所对应的子块序列构建宏块序列的方法包括:
计算宏块中相邻图像子块的DC系数的残差值,并利用DC系数和残差值构建宏块DC序列;
对宏块DC序列中的每个DC系数的比特数和系数值进行哈夫曼编码,以得到DC编码序列;
对宏块中每一图像子块所对应的子块序列进行游程编码,以得到图像子块所对应的符号对;
使用哈夫曼编码表对符号对和非零AC系数进行编码,并选取长度最短的编码序列作为AC编码序列;
按照先DC编码序列后AC编码序列的顺序组成宏块序列。
可选的,在所述的视频图像编解码方法中,所述对每一图像子块按照同样的方式进行压缩,以得到宏块编码数据的方法包括:
对图像子块中的每个像素进行编号,以得到像素的图像坐标;
根据图像坐标求取每个像素的参考坐标;
计算每一像素的图像坐标和参考坐标的残差;
按照预设扫描顺序将残差转换为一维序列;
利用一维序列得到图像子块的子块编码数据;
对宏块中每一图像子块所对应的子块编码数据按照预设顺序排列,以得到宏块序列;
将宏块序列的长度补齐至预设长度,以得到宏块编码数据。
可选的,在所述的视频图像编解码方法中,所述根据图像坐标求取每个像素的参考坐标的方法包括:
对于图像子块中最左侧的一列像素,将其上一行的像素的图像坐标作为自己的参考坐标;
对于图像子块中其他像素,将其左一列的像素的图像坐标作为自己的参考坐标。
可选的,在所述的视频图像编解码方法中,所述利用一维序列得到图像子块的子块编码数据的方法包括:
将一维序列按照指数哥伦布编码,得到三个编码序列;
从三个编码序列中选择长度最短的编码序列作为图像子块的子块编码数据;
若子块编码数据长度大于预设值,则利用图像子块的原始数据的逐行扫描序列作为子块编码数据。
可选的,在所述的视频图像编解码方法中,所述构建元数据表的方法包括:
对宏块编码数据的编码类型和编码长度设定编码值;
计算宏块的相对偏移地址;
利用宏块编码数据和相对偏移地址构成元数据表。
为解决上述技术问题,本发明还提供一种视频图像编解码装置,用于实现如上任一项所述的视频图像编解码方法,所述视频图像编解码装置包括:
数据获取模块,用于获取原始视频图像或待取视频图像的图像坐标;
解编码模块,用于对获取的原始视频图像进行编码以得到宏块编码数据,或用于根据图像坐标提取宏块编码数据,并对宏块编码数据进行解码以得到图像数据;
数据存储模块,配置有元数据表,所述元数据表用于存储宏块编码数据。
为解决上述技术问题,本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并能够由所述处理器运行的可执行程序;所述处理器运行所述可执行程序时执行如上任一项所述的视频图像编解码方法。
为解决上述技术问题,本发明还提供一种计算机存储介质,所述计算机存储介质存储有可执行程序;所述可执行程序被执行时,实现如上任一项所述的视频图像编解码方法。
本发明提供的视频图像编解码方法及装置、电子设备和计算机存储介质,包括:视频图像编码,其中包括:获取原始视频图像;将原始视频图像划分为若干个宏块,其中每一宏块包括若干个图像子块;对每一图像子块按照同样的方式进行压缩,以得到宏块编码数据;构建元数据表,并将宏块编码数据按图像坐标连续储存入元数据表中;和/或,视频图像解码,其中包括:获取待取视频图像的图像坐标;根据元数据表和图像坐标提取宏块编码数据;对宏块编码数据进行解码,以得到图像数据。通过对原始视频图像进行编解码压缩,能够有效减少图像数据量,从而减少了系统读写图像数据所消耗的带宽;本发明提出的解编码方案无需参考宏块和参考帧数据,能够有效减少编解码过程所消耗的带宽和算力;此外本发明提出的解编码方案可以根据需求只解码部分图像数据,使得在解码时所消耗的带宽和算力较小,解决了现有视频图像压缩技术系统带宽和缓存消耗较大的问题。
附图说明
图1为本实施例提供的视频图像编解码方法的流程图;
图2为本实施例提供的视频图像编码的过程流程框图;
图3为本实施例提供的视频图像解码的过程流程框图;
图4为本实施例提供的视频图像编解码装置的结构示意图。
具体实施方式
以下结合附图和具体实施例对本发明提出的视频图像编解码方法及装置、电子设备、计算机存储介质和芯片模组作进一步详细说明。需说明的是,附图均采用非常简化的形式且均使用非精准的比例,仅用以方便、明晰地辅助说明本发明实施例的目的。此外,附图所展示的结构往往是实际结构的一部分。特别的,各附图需要展示的侧重点不同,有时会采用不同的比例。
需要说明的是,本发明的说明书和权利要求书及附图说明中的“第一”、“第二”等是用于区别类似的对象,以便描述本发明的实施例,而不用于描述特定的顺序或先后次序,应该理解这样使用的结构在适当情况下可以互换。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
本实施例提供一种视频图像编解码方法,如图1所示,包括:
A,视频图像编码,其中包括:
A1,获取原始视频图像;
A2,将原始视频图像划分为若干个宏块,其中每一宏块包括若干个图像子块;
A3,对每一图像子块按照同样的方式进行压缩,以得到宏块编码数据;
A4,构建元数据表;
A5,储存元数据表,并按图像坐标连续储存宏块编码数据;
和/或,B,视频图像解码,其中包括:
B1,获取待取视频图像的图像坐标;
B2,根据元数据表和图像坐标提取宏块编码数据;
B3,对宏块编码数据进行解码,以得到图像数据。
本实施例提供的视频图像编解码方法,通过对原始视频图像进行编解码压缩,能够有效减少图像数据量,从而减少了系统读写图像数据所消耗的带宽;本发明提出的解编码方案无需参考宏块和参考帧数据,能够有效减少编解码过程所消耗的带宽和算力;此外本发明提出的解编码方案可以根据需求只解码部分图像数据,使得在解码时所消耗的带宽和算力较小,解决了现有视频图像压缩技术系统带宽和缓存消耗较大的问题。
由于解码过程和编码过程是相对应的,可以将解码过程看做是编码过程的逆过程,因此本实施例重点对编码过程进行重点说明,解码过程的具体实现过程是本领域技术人员可以根据本实施例提供的编码过程和现有公知技术所能获得的。此外,本实施例提供的编码方法和解码方法可以独立拆分使用,但在进行解码时,与解码所对应的编码应当采用本实施例提供的编码方法;以及,在采用本实施例提供的编码方法编码后,在解码时应当采用本实施例提供的解码方法。
进一步的,在本实施例中,步骤A2,将原始视频图像划分为若干个宏块的方法包括:
A21,将原始视频图像划分为若干个图像子块,其中每一图像子块包括n×n个像素。
例如,可以将原始视频图像划分为若干个8×8像素大小的图像子块,即在本实施例中,n为8。需要说明的是,对于YUV422/420图像格式,UV通道依据对应关系按4×4像素大小划分图像子块,以确保图像子块之间无依赖关系。
若图像子块中的像素不足n×n,则在图像子块的右下部补零,以使补零后的图像子块中的像素满足n×n。
A22,按照预设顺序,将多个图像子块构成一个宏块,以使原始视频图像被划分为多个宏块。
具体的,在本实施例中,按照水平方向从左到右的顺序,每m个图像子块构成一个宏块。例如,从左到右,将4个图像子块构成一个宏块,即在本实施例中,m为4。
若最右侧的宏块中的图像子块个数不足m,则按照实际的图像子块个数构成最右侧的宏块。例如,从左到右依次划分了多个宏块后,最后剩余了3个图像子块,而3个图像子块不满足一个宏块需要4个图像子块的需求,但是仍将3个图像子块作为一个宏块处理。
进一步的,在本实施例中,步骤A3,对每一图像子块按照同样的方式进行压缩,以得到宏块编码数据的方法包括:
A301,对图像子块中的每个像素进行编号,以得到像素的图像坐标。
具体的,在本实施例中,每个图像子块中的每个像素的编号可以表示为p(i,j),其中i=0,1,2…n-1,j=0,1,2…n-1。
A302,对图像坐标进行离散余弦变换DCT,以得到像素对应的二维数组。
具体的,在本实施例中,对图像坐标进行n×n的DCT变换,得到的二维数组可以表示为f(i,j),其中i=0,1,2…n-1,j=0,1,2…n-1。
离散余弦变换(DCT)经常被用于信号处理和图像处理,用于对信号和图像(包括静止图像和运动图像)进行有损数据压缩。对图像坐标进行离散余弦变换以得到二维数组的方式为本领域技术人员所熟知的,本申请对此不再赘述。
A303,对二维数组按照预设方式扫描重新排列,以得到子块序列,所述子块序列的首个值为DC系数,其余的值为AC系数。
具体的,在本实施例中,可以按照从左至右、从上至下的方式扫描重新排列,得到的子块序列可以表示为Xu,其中u=0,1,2…n×n-1。例如,当图像子块的大小为8×8时,子块序列Xu中u的取值为0,1,2…63,共64个值。
子块序列的首个值为DC系数,即每个子块序列X0为DC系数。
本实施例采用DC系数和AC系数获得宏块编码数据,由于在一副图像中像素之间的灰度或色差信号变化缓慢,相邻的图像子块之间有更强的相关性,因此相邻图像子块的DC系数值很接近,对量化后的前后两个图像子块的DC系数残差进行编码,可以使用较少的比特数,从而能够有效减少图像数据量,进而能够有效减少编码过程所消耗的带宽和算力。
A304,利用宏块中每一图像子块所对应的子块序列构建宏块序列。
具体的,在本实施例中,构建宏块序列的方法包括:
首先,计算宏块中相邻图像子块的DC系数的残差值,并利用DC系数和残差值构建宏块DC序列。在本实施例中,宏块DC序列表示为Dv,其中,D0=X0(0),Dv=X0(v)-X0(v-1),v=0,1,2…m-1;X0(v)表示宏块中第v个图像子块的子块序列的首个值,即第v个图像子块的DC系数。例如,当宏块中有4个图像子块时,第4个图像子块的宏块DC序列为D3=X0(3)-X0(2)。
然后,对宏块DC序列中的每个DC系数的比特数和系数值进行哈夫曼编码,以得到DC编码序列。哈夫曼编码的具体实现方式为本领域技术人员所熟知的,本申请对此不再赘述,本实施例采用哈夫曼编码方式,能够依据字符出现概率来构造异字头的平均长度最短的码字,从而能够有效减少图像数据量,进而能够有效减少编码过程所消耗的带宽和算力。
接着,对宏块中每一图像子块所对应的子块序列进行游程编码,以得到图像子块所对应的符号对。其中,进行游程编码的子块序列为AC系数,即对子块序列Xu中u的取值为1,2…63的子块序列进行游程编码。得到的符号对表示为(M,N),其中,M为两个非零AC系数之间连续零的个数,N为非零AC系数的比特数。
较佳的,本实施例还遵照JPEG标准额外设置了两项有关于符号对的规则,以提高编码处理的效率:①若两个非零AC系数之间超出16个连续零,则在第16个零之后,插入符号对(15,0)表示此处有连续16个零,并对符号对(15,0)之后的零重新计算个数;②在最后一个非零AC系数后,插入符号对(0,0)表示后续系数全部为零。
之后,使用哈夫曼编码表对符号对和非零AC系数进行编码,并选取长度最短的编码序列作为AC编码序列,并记录子块编码类型。
最后,按照先DC编码序列后AC编码序列的顺序组成宏块序列。具体的,在本实施例中,宏块序列表示为E,则E=DC+AC(0)+AC(1)+…+AC(m-1),其中,DC表示DC编码序列(由宏块DC序列经哈夫曼编码得到),AC(v)表示第v个图像子块的AC编码序列(由子块序列经游程编码得到)。
A305,将宏块序列的长度补齐至预设长度,以得到宏块编码数据。
具体的,在本实施例中,当图像子块的大小为8×8、每个宏块中图像子块的个数为4时,若宏块序列E的长度不是64bit的倍数,则将宏块序列E的长度补齐至64bit的倍数,并使用此序列作为宏块编码数据。需要注意的是,此时宏块编码数据的数据长度不可大于512bit×m,在本实施例中,宏块编码数据的数据长度不可大于2048bit,即不可大于256byte。当然,在其他实施例中,可以根据实际的图像子块的大小、数据处理量的大小等因素合理设置宏块编码数据的数据长度。
上述步骤A301至步骤A305是一种有损压缩的方法。本实施例还提供一种无损压缩的方法:步骤A3,对每一图像子块按照同样的方式进行压缩,以得到宏块编码数据的方法包括:
A311,对图像子块中的每个像素进行编号,以得到像素的图像坐标。
具体的,在本实施例中,与有损压缩方法相似的,每个图像子块中的每个像素的编号可以表示为p(i,j),其中i=0,1,2…n-1,j=0,1,2…n-1。
A312,根据图像坐标求取每个像素的参考坐标。
具体的,在本实施例中,将参考坐标记为r(i,j)。其中,r(0,0)=128;对于图像子块中最左侧的一列像素,将其上一行的像素的图像坐标作为自己的参考坐标,即参考坐标r(0,j)=p(0,j-1),其中i=1,2…n-1;以及,对于图像子块中其他像素,将其左一列的像素的图像坐标作为自己的参考坐标,即参考坐标r(i,j)=p(i-1,j),其中i=1,2…n-1,j=0,1,2…n-1。
需要说明的是,r(0,0)=128是针对常见的8bit图像,8bit图像的像素的取值范围为(0~255),则其减去均值后的残差的取值范围为(-128~127)。对于其他bit数的图像,本领域技术人员能够通过8bit图像所对应的参考坐标r(0,0)获得其对应的参考坐标r(0,0)。
A313,计算每一像素的图像坐标和参考坐标的残差。
具体的,在本实施例中,当前像素的图像坐标和参考坐标的残差记为diff(i,j)=p(i,j)-r(i,j),对于常见的8bit图像,残差diff(i,j)的取值范围为(-255~255)。
A314,按照预设扫描顺序将残差转换为一维序列。
具体的,在本实施例中,可以按照从左到右、从上到下的扫描顺序将残差diff(i,j)转换为一维序列Xu,其中u=0,1,2…n×n-1。例如,当图像子块的大小为8×8时,子块序列Xu中u的取值为0,1,2…63,共64个值。由于本实施例采用指数哥伦布编码方式,而指数哥伦布编码方式不依赖上下文,因此,在其他实施例中,也可以采用不同的扫描顺序得到一维序列。
A315,利用一维序列得到图像子块的子块编码数据。
具体的,在本实施例中,获得子块编码数据的方法包括:
首先,将一维序列按照指数哥伦布编码,得到三个编码序列Sa,Sb和Sc。指数哥伦布编码是一种无损数据压缩方法,其硬件实现简单,无需事先建立和存储码表,不但可以通过硬件计算快速产生码字,而且可以根据信源PDF函数灵活调整级数k,因而可以达到很高的编码效率。指数哥伦布编码的具体实现方式为本领域技术人员所熟知的,本申请对此不做赘述。
然后,从三个编码序列中选择长度最短的编码序列作为图像子块的子块编码数据S,并记录子块编码类型。
最后,若子块编码数据长度大于预设值,则利用图像子块的原始数据的扫描序列作为子块编码数据,其中扫描序列是从左至右、从上到下的扫描顺序获得的序列。
具体的,在本实施例中,当图像子块的大小为8×8时,预设值为512bit。当然,在其他实施例中,可以根据实际的图像子块的大小、数据处理量的大小等因素合理设置预设值。
A316,对宏块中每一图像子块所对应的子块编码数据按照预设顺序排列,以得到宏块序列。
具体的,在本实施例中,将各个图像子块所对应的子块编码数据从左到右依次排列,组成宏块序列E,宏块序列E=S(0)+S(1)+…+S(m-1)。
A317,将宏块序列的长度补齐至预设长度,以得到宏块编码数据。
具体的,在本实施例中,当图像子块的大小为8×8、宏块中图像子块的个数为4时,若宏块序列E的长度不是64bit的倍数,则将宏块序列E的长度补齐至64bit的倍数,并使用此序列作为宏块编码数据。需要注意的是,此时宏块编码数据的数据长度不可大于512bit×m,在本实施例中,宏块编码数据的数据长度不可大于2048bit,即不可大于256byte。当然,在其他实施例中,可以根据实际的图像子块的大小、数据处理量的大小等因素合理设置宏块编码数据的数据长度。
需要说明的是,不论采用有损压缩的方式还是无损压缩的方式,在对同一原始视频图像处理时,应当采用统一的压缩方式,即一张原始视频图像在处理时,只可采用一种压缩方式进行编码处理,以保证数据的一致性。
进一步的,在本实施例中,步骤A4,构建元数据表的方法包括:
A41,对宏块编码数据的编码类型和编码长度设定编码值。
具体的,在本实施例中,每个宏块编码数据按照图像子块的子块编码类型大小2bit×m和5bit编码长度构成。参见下表1和下表2,本实施例给出了编码类型和编码长度所对应的编码值定义:
表1.编码类型对应的编码值定义
编码值 | 宏块编码长度(bit) |
0 | 64 |
1 | 128 |
… | … |
31 | 2048 |
表2.宏块编码长度对应的编码值定义
在本实施例中,表2中的编码值定义时,编码长度定义为宏块编码数据按照64bit计算的长度-1。
本申请仅以上述示例(m=4,即有4个宏块)说明本实施例提出的编码值的实现方式,但保护范围不应当以此为限。在其他具体实施例中,可以根据实际需要,对编码值做出不同的定义。
A42,计算宏块的相对偏移地址。
具体的,在本实施例中,每行按宏块分组计算相对偏移地址。其中,相对偏移地址为宏块编码数据按图像坐标连续存储时,当前宏块编组中首个宏块编码数据的储存地址相对当前图像色彩通道首个宏块的偏移地址。在本实施例中,偏移地址按照64bit计算,地址长度为24bit。
A43,利用宏块编码元数据和相对偏移地址构成元数据表。
具体的,在本实施例中,首先,宏块编码元数据与相对偏移地址构成元数据单元,其中,元数据单元的格式表示为:24bit偏移地址+2×m×e bit宏块编码类型+5×e bit宏块长度=128bit;其中e表示当前图像每行的宏块个数。对于行尾不满e个宏块编码的,在对应位置补零(无效宏块)以补足e个宏块。在本实施例中,e为8。然后,利用元数据单元构成当前图像当前色彩通道的元数据表,例如,对于1920×1080像素大小的图像,每行有8个(1920/32/8=7.5,向上取整)128bit的元数据单元,总计有1080/8×8=1080个128bit的元数据,共计17280bytes。若图像含多个色彩通道,则继续编入其他通道的元数据表,构成总表。对于YUV图像,总表大小为17280*3=51840bytes。
得到元数据表后,将元数据表进行储存。具体的,可以将元数据表加载至一硬件模块内部缓存或者高速缓存中,从而加快解码速度。
以及,在本实施例中,按图像坐标连续储存宏块编码数据的方法可以包括按照先水平W、再垂直H、最后色彩通道C的方式连续储存宏块编码数据。具体的,宏块编码数据可以放置在外部DDR或硬盘等慢速存储设备中,从而减少编码过程所占用的缓存资源。
本实施例提供的编码方式,每个宏块编组生成的元数据单元为128bit,即在128位总线下1个时钟周期便可以传输完成,便于系统读写,从而能够有效提高编解码效率;此外,根据元数据表所存储的编码数据不依赖所对应宏块编组之外的数据,从而能够有效减少编解码过程所消耗的带宽和算力。
在一具体实施例中,如图2所示,编码过程大致包括:首先,对图像进行预处理以得到像素数据,其中,可以根据应用需求,进行行缓存、色彩空间转换和减均值等预处理操作,从而得到处理后的像素数据;然后,通过有损编码或无损编码的方式对像素数据进行压缩编码,其中,有损编码器输出图像子块的DC/AC哈夫曼编码数据和编码长度,无损编码器输出图像子块的残差指数哥伦布编码数据集编码长度;接着,根据压缩模式,将图像子块压缩编码数据组成宏块编码数据,并生成对应的宏块元数据;最后,将得到的元数据和编码数据存储在存储介质中。
进一步的,与编码相对应的,本实施例提供一种视频图像解码方法,其中包括:
B1,获取待取视频图像的图像坐标;
B2,根据元数据表和图像坐标提取宏块编码数据;
B3,对宏块编码数据进行解码,以得到图像数据。
具体的,如图3所示,解码过程主要包括:首先,根据图像坐标计算当前元数据地址,并根据元数据地址获取当前宏块元数据;然后,根据宏块元数据中的宏块组偏移量和宏块编码长度计算待加载宏块编码数据地址,然后,获取当前宏块编码数据;接着,通过有损解码或无损解码对宏块编码数据进行解码,其中,有损解码将编码数据根据子块编码类型进行DC/AC哈夫曼解码,输出对应的子块像素数据,无损解码将编码数据根据子块编码类型进行指数哥伦布解码,输出对应的子块像素数据;最后,根据应用需求,可以进行逐行缓存、色彩空间转换等后处理操作,将子块像素数据按照逐行扫描或分块格式输出。
本实施例还提供一种视频图像编解码装置,用于实现如上所述的视频图像编解码方法,如图4所示,所述视频图像编解码装置包括:数据获取模块,用于获取原始视频图像或待取视频图像的图像坐标;解编码模块,用于对获取的原始视频图像进行编码以得到宏块编码数据,或用于根据图像坐标提取宏块编码数据,并对宏块编码数据进行解码以得到图像数据;数据存储模块,配置有元数据表,所述元数据表用于存储宏块编码数据。
本实施例提供的视频图像编解码装置,共用各个功能模块,能够实现对图像的编码和解码。在实际应用中,可以根据实际需求,设置视频图像编解码装置的具体功能,本申请对此不做限制。本实施例提供的视频图像编解码装置,通过对原始视频图像进行编解码压缩,能够有效减少图像数据量,从而减少了系统读写图像数据所消耗的带宽,解决了现有视频图像压缩技术系统带宽和缓存消耗较大的问题。
具体的,本实施例提供的视频图像编解码装置,在进行编码时,其解编码模块包括图像预处理单元、编码单元和裁决组帧单元。图像预处理单元用于根据应用需求,进行行缓存、色彩空间转换和减均值等预处理操作,并输出处理后的像素数据至编码单元。编码单元包括有损编码器和/或无损编码器,其中,有损编码器用于将像素数据按照上述的有损压缩模式压缩编码,输出子块的DC/AC哈夫曼编码数据及编码长度;无损编码器用于将像素数据按照上述的无损压缩模式压缩编码,输出子块的残差指数哥伦布编码数据及编码长度。裁决组帧单元用于根据压缩模式,将子块压缩编码数据组成宏块编码数据,并生成对应宏块元数据。
以及,本实施例提供的视频图像编解码装置,在进行解码时,其解编码模块包括元数据加载单元、宏块加载单元、解码单元和图像后处理单元。元数据加载单元用于根据图像坐标计算当前元数据地址,获取当前宏块元数据。宏块加载单元用于根据宏块元数据中宏块组偏移量及宏块编码长度计算待加载数据地址,并获取当前宏块编码数据。解码单元包括有损解码器和无损解码器,其中,有损解码器用于将编码数据根据子块编码类型进行DC/AC哈夫曼解码,输出对应子块像素数据;无损解码器用于将编码数据根据子块编码类型进行指数哥伦布解码,输出对应子块像素数据。图像后处理模块用于根据应用需求,可以对子块像素数据进行逐行缓存、色彩空间转换等后处理操作,像素按照逐行扫描或分块格式输出。
本实施例还提供一种电子设备,包括存储器、处理器及存储在存储器上并能够由所述处理器运行的可执行程序;所述处理器运行所述可执行程序时执行如上所述的视频图像编解码方法。
以及,本实施例还提供一种计算机存储介质,所述计算机存储介质存储有可执行程序;所述可执行程序被执行时,实现如上所述的视频图像编解码方法。
需要说明的是,本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可,此外,各个实施例之间不同的部分也可互相组合使用,本发明对此不作限定。
本实施例提供的视频图像编解码方法及装置、电子设备和计算机存储介质,包括:视频图像编码,其中包括:获取原始视频图像;将原始视频图像划分为若干个宏块,其中每一宏块包括若干个图像子块;对每一图像子块按照同样的方式进行压缩,以得到宏块编码数据;构建元数据表,并将宏块编码数据按图像坐标连续储存入元数据表中;和/或,视频图像解码,其中包括:获取待取视频图像的图像坐标;根据元数据表和图像坐标提取宏块编码数据;对宏块编码数据进行解码,以得到图像数据。通过对原始视频图像进行编解码压缩,能够有效减少图像数据量,从而减少了系统读写图像数据所消耗的带宽;本发明提出的解编码方案无需参考宏块和参考帧数据,能够有效减少编解码过程所消耗的带宽和算力;此外本发明提出的解编码方案可以根据需求只解码部分图像数据,使得在解码时所消耗的带宽和算力较小,解决了现有视频图像压缩技术系统带宽和缓存消耗较大的问题。
上述描述仅是对本发明较佳实施例的描述,并非对本发明范围的任何限定,本发明领域的普通技术人员根据上述揭示内容做的任何变更、修饰,均属于权利要求书的保护范围。
Claims (12)
1.一种视频图像编解码方法,其特征在于,包括:
视频图像编码,其中包括:
获取原始视频图像;
将原始视频图像划分为若干个宏块,其中每一宏块包括若干个图像子块;
对每一图像子块按照同样的方式进行压缩,以得到宏块编码数据;
构建元数据表;
储存元数据表,并按图像坐标连续储存宏块编码数据;
和/或,视频图像解码,其中包括:
获取待取视频图像的图像坐标;
根据元数据表和图像坐标提取宏块编码数据;
对宏块编码数据进行解码,以得到图像数据。
2.根据权利要求1所述的视频图像编解码方法,其特征在于,所述将原始视频图像划分为若干个宏块的方法包括:
将原始视频图像划分为若干个图像子块,其中每一图像子块包括n×n个像素;
按照预设顺序,将多个图像子块构成一个宏块,以使原始视频图像被划分为多个宏块。
3.根据权利要求2所述的视频图像编解码方法,其特征在于,所述将原始视频图像划分为若干个图像子块的方法还包括:
若图像子块中的像素不足n×n,则在图像子块的右下部补零,以使补零后的图像子块中的像素满足n×n;
按照从左至右的顺序,每m个图像子块构成一个宏块;
若最右侧的宏块中的图像子块个数不足m,则按照实际的图像子块个数构成最右侧的宏块。
4.根据权利要求2所述的视频图像编解码方法,其特征在于,所述对每一图像子块按照同样的方式进行压缩,以得到宏块编码数据的方法包括:
对图像子块中的每个像素进行编号,以得到像素的图像坐标;
对图像坐标进行离散余弦变换,以得到像素对应的二维数组;
对二维数组按照预设方式扫描重新排列,以得到子块序列,所述子块序列的首个值为DC系数,其余的值为AC系数;
利用宏块中每一图像子块所对应的子块序列构建宏块序列;
将宏块序列的长度补齐至预设长度,以得到宏块编码数据。
5.根据权利要求4所述的视频图像编解码方法,其特征在于,所述利用宏块中每一图像子块所对应的子块序列构建宏块序列的方法包括:
计算宏块中相邻图像子块的DC系数的残差值,并利用DC系数和残差值构建宏块DC序列;
对宏块DC序列中的每个DC系数的比特数和系数值进行哈夫曼编码,以得到DC编码序列;
对宏块中每一图像子块所对应的子块序列进行游程编码,以得到图像子块所对应的符号对;
使用哈夫曼编码表对符号对和非零AC系数进行编码,并选取长度最短的编码序列作为AC编码序列;
按照先DC编码序列后AC编码序列的顺序组成宏块序列。
6.根据权利要求2所述的视频图像编解码方法,其特征在于,所述对每一图像子块按照同样的方式进行压缩,以得到宏块编码数据的方法包括:
对图像子块中的每个像素进行编号,以得到像素的图像坐标;
根据图像坐标求取每个像素的参考坐标;
计算每一像素的图像坐标和参考坐标的残差;
按照预设扫描顺序将残差转换为一维序列;
利用一维序列得到图像子块的子块编码数据;
对宏块中每一图像子块所对应的子块编码数据按照预设顺序排列,以得到宏块序列;
将宏块序列的长度补齐至预设长度,以得到宏块编码数据。
7.根据权利要求6所述的视频图像编解码方法,其特征在于,所述根据图像坐标求取每个像素的参考坐标的方法包括:
对于图像子块中最左侧的一列像素,将其上一行的像素的图像坐标作为自己的参考坐标;
对于图像子块中其他像素,将其左一列的像素的图像坐标作为自己的参考坐标。
8.根据权利要求6所述的视频图像编解码方法,其特征在于,所述利用一维序列得到图像子块的子块编码数据的方法包括:
将一维序列按照指数哥伦布编码,得到三个编码序列;
从三个编码序列中选择长度最短的编码序列作为图像子块的子块编码数据;
若子块编码数据长度大于预设值,则利用图像子块的原始数据的逐行扫描序列作为子块编码数据。
9.根据权利要求1所述的视频图像编解码方法,其特征在于,所述构建元数据表的方法包括:
对宏块编码数据的编码类型和编码长度设定编码值;
计算宏块的相对偏移地址;
利用宏块编码数据和相对偏移地址构成元数据表。
10.一种视频图像编解码装置,用于实现如权利要求1~9任一项所述的视频图像编解码方法,其特征在于,所述视频图像编解码装置包括:
数据获取模块,用于获取原始视频图像或待取视频图像的图像坐标;
解编码模块,用于对获取的原始视频图像进行编码以得到宏块编码数据,或用于根据图像坐标提取宏块编码数据,并对宏块编码数据进行解码以得到图像数据;
数据存储模块,配置有元数据表,所述元数据表用于存储宏块编码数据。
11.一种电子设备,其特征在于,包括存储器、处理器及存储在存储器上并能够由所述处理器运行的可执行程序;所述处理器运行所述可执行程序时执行如权利要求1~9任一项所述的视频图像编解码方法。
12.一种计算机存储介质,其特征在于,所述计算机存储介质存储有可执行程序;所述可执行程序被执行时,实现如权利要求1~9任一项所述的视频图像编解码方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410625758.8A CN118354094A (zh) | 2024-05-20 | 2024-05-20 | 视频图像编解码方法及装置、电子设备及计算机存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410625758.8A CN118354094A (zh) | 2024-05-20 | 2024-05-20 | 视频图像编解码方法及装置、电子设备及计算机存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118354094A true CN118354094A (zh) | 2024-07-16 |
Family
ID=91821194
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410625758.8A Pending CN118354094A (zh) | 2024-05-20 | 2024-05-20 | 视频图像编解码方法及装置、电子设备及计算机存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118354094A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118741117A (zh) * | 2024-08-29 | 2024-10-01 | 中国兵工物资集团有限公司 | 图像数据包的生成方法和基于图像数据包还原图像的方法 |
-
2024
- 2024-05-20 CN CN202410625758.8A patent/CN118354094A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118741117A (zh) * | 2024-08-29 | 2024-10-01 | 中国兵工物资集团有限公司 | 图像数据包的生成方法和基于图像数据包还原图像的方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102683408B1 (ko) | 적응적 트리 선택을 사용한 이진 집합의 비디오 인코딩 및 디코딩을 위한 방법 및 장치 | |
JP5733590B2 (ja) | 変換係数レベルを符号化するコンテキストモデリング技法 | |
US8767823B2 (en) | Method and apparatus for frame memory compression | |
US8532192B2 (en) | Video processing apparatus and a method of processing video data | |
CN103813167B (zh) | 一种量化转换参数处理方法及装置 | |
CN101321283B (zh) | 兼容不同大小块变换的编解码方法及编解码器 | |
US9510008B2 (en) | Video decoder memory bandwidth compression | |
CN115150628B (zh) | 具有超先验引导模式预测的由粗到细深度视频编码方法 | |
CN103716634B (zh) | 使用误差平面编码的数据压缩方法及装置 | |
CN102014283A (zh) | 一阶差分前缀表示的图像数据无损压缩的编码方法 | |
BR112020000415B1 (pt) | Método para compactar, método para descompactar, conjunto de dados compactados correspondente a um conjunto de dados não compactados, dispositivo para compactar, e dispositivo para descompactar | |
CN118354094A (zh) | 视频图像编解码方法及装置、电子设备及计算机存储介质 | |
US11388439B2 (en) | Sparse matrix representation using a boundary of non-zero coefficients | |
KR20100079121A (ko) | 이미지 인코더 및 이미지 인코딩 방법 | |
CN103581676B (zh) | 视频编码变换系数的解码方法及装置 | |
JP4061104B2 (ja) | コンテキストモデルによるラン・スキップカウントに基づくメモリアクセス及びスキッピング | |
KR102219133B1 (ko) | 컴팩트한 비트 평면(bit-plane) 데이터 압축을 위한 인코더, 디코더 및 부호화 방법 | |
KR20100089546A (ko) | 단계적인 영상 부호화, 복호화 방법 및 장치 | |
Arora et al. | Review of image compression techniques | |
US10728578B2 (en) | Bias minimization for successive image reconstruction based on embedded codec circuitry | |
CN100399833C (zh) | 使用最后非零检测电路的高速图像压缩设备 | |
KR20120038355A (ko) | 계층 구조의 영상 처리를 위한 엔트로피 인코딩/디코딩 방법 및 장치와 이를 위한 심볼 인코딩/디코딩 방법 및 장치 | |
CN118317115A (zh) | 等比特精度预测、映射和分段编码的数据解码方法和装置 | |
KR100195715B1 (ko) | 가변 길이 복호기 | |
KR100195717B1 (ko) | 가변 길이 복호기 |
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 |