CN102724500B - 一种视频数据的压缩/解压缩方法及系统 - Google Patents
一种视频数据的压缩/解压缩方法及系统 Download PDFInfo
- Publication number
- CN102724500B CN102724500B CN201210182969.6A CN201210182969A CN102724500B CN 102724500 B CN102724500 B CN 102724500B CN 201210182969 A CN201210182969 A CN 201210182969A CN 102724500 B CN102724500 B CN 102724500B
- Authority
- CN
- China
- Prior art keywords
- data block
- data
- quantization parameter
- budget
- elementary cell
- 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.)
- Expired - Fee Related
Links
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明公开了一种视频数据的压缩/解压缩方法及系统,该方法包括:将视频数据分割为多个具有统一规格的基本单元,每个所述基本单元包括至少一个数据块;读取所述基本单元,对读取的所述基本单元中的各个数据块按照各自的指定压缩预算并行地进行压缩编码,获得所述各个数据块的压缩数据,其中每个数据块的压缩数据的长度与该数据块的指定的压缩预算一致,根据每个数据块的压缩预算确定每个数据块的压缩数据在输出缓冲器中的位置,从而将读取的基本单元中的各个数据块的压缩数据并行地分配到输出缓冲器中;所述输出缓冲器串行输出所述各个数据块的压缩数据,从而获得读取的基本单元的压缩数据。
Description
技术领域
本发明属于视频处理技术领域,特别涉及一种视频数据的压缩/解压缩方法及系统。
背景技术
现有的视频数据压缩方法设计的重点主要在数据压缩的效率,主要应用于视频数据的存储和传输领域,目的是降低视频数据存储所需要的空间和视频数据在网络传输过程中所需要的带宽。
然而在多媒体ASIC设计中,ASIC内部的主要带宽需求和带宽瓶颈集中在视频数据的读写阶段,例如视频解码获得的重建视频图像数据的写出,视频解码获得的重建图像数据的显示等等都会占用大量的片内带宽资源。如果对输出的视频数据先进行压缩编码再写出,在读取视频数据时先进行解码处理再显示,将有效地降低数据在ASIC内部各模块之间传输的带宽。
现有的以压缩效率为设计目标的视频数据的压缩方法,自然会导致压缩后的数据的上下文之间具有很强的数据相关性,难以实现精确到宏块级别、甚至块级别等小尺度的视频数据的随机存取,因此难于应用于上述场合。
现有的以压缩效率为设计目标的视频数据的压缩方法,由于各块之间压缩数据相互关联,生成码流的尺寸也各不相同,难以实现各编码单元块之间的完全并行压缩和无缝码流装配。
发明内容
本发明的目的是提供一种视频数据的压缩/解压缩方法及系统,以解决现有技术中在视频数据读写阶段的带宽瓶颈。
本发明的技术方案是,一种视频数据的压缩方法,该方法包括步骤:
A1,将视频数据分割为多个具有统一规格的基本单元,每个所述基本单元包括至少一个数据块;
A2,读取所述基本单元,
A3,对读取的所述基本单元中的各个数据块按照各自的指定压缩预算并行地进行压缩编码,获得所述各个数据块的压缩数据,其中每个数据块的压缩数据的长度与该数据块的指定的压缩预算一致,
A4,根据每个数据块的压缩预算确定每个数据块的压缩数据在输出缓冲器中的位置,从而将读取的基本单元中的各个数据块的压缩数据并行地分配到输出缓冲器中;
A5,所述输出缓冲器串行输出所述各个数据块的压缩数据,从而获得读取的基本单元的压缩数据;以及
其中,在步骤A3中,针对每个数据块的压缩编码又包括步骤:
A3.1,对数据块进行离散余弦变换得到系数矩阵,并对系数矩阵中的系数进行量化得到多个量化系数;以及
A3.2,对所述多个量化系数逐个进行编码,并监控该数据块的压缩预算的使用状态,当已完成的量化系数的编码结果达到该数据块的压缩预算时,停止当前量化系数的编码,并丢弃未进行编码的量化系数,以已完成的量化系数的编码结果作为数据块的压缩数据。
优选的,在步骤A3.1中,对所述系数矩阵进行分层,并对各层中的系数采取不同的量化分辨率进行量化以获得量化系数。
优选的,步骤A3.2包括:
A3.2a,判断剩余的压缩预算是否为0,如果剩余的压缩预算为0,则立即停止对当前量化系数的编码,并输出已经完成的量化系数的编码结果作为数据块的压缩数据;如果剩余的压缩预算不为0,则进入步骤A3.2b;
A3.2b,判断剩余的压缩预算是否大于或等于当前量化系数的编码结果的长度,如果剩余的压缩预算大于或等于当前量化系数的编码结果的长度,则完成当前量化系数的编码,记录剩余的压缩预算,并返回步骤A3.2a,否则进入步骤A3.2c;
A3.2c,以剩余压缩预算的长度截断当前量化系数的编码结果,并输出所有完成的量化系数的编码结果作为数据块的压缩数据。
优选的,采用熵编码的方法对量化系数进行编码,并将符号位布置在表项前端。
优选的,以固定的压缩比例对基本单元进行压缩,得到具有统一尺寸的基本单元的压缩数据。
本发明的另一方面,一种视频数据的压缩系统,该系统包括:
存储器,存储分割为多个具有统一规格的基本单元的视频数据,每个所述基本单元包括至少一个数据块;
输入寄存器,读取并保存所述基本单元中的各个数据块;
压缩装置,包括至少一个编码器,通过所述至少一个编码器对读取的所述基本单元中的各个数据块按照各自的指定压缩预算并行地进行压缩编码,获得所述各个数据块的压缩数据,其中每个数据块的压缩数据的长度与该数据块的指定的压缩预算一致;
预算分配控制器,为压缩装置中的每个编码器指定压缩预算,并根据该压缩预算确定每个数据块的压缩数据在输出缓冲器中的位置,从而将读取的基本单元中的各个数据块的压缩数据并行地分配到输出缓冲器中;
输出缓冲器,串行输出所述各个数据块的压缩数据,从而获得读取的基本单元的压缩数据;以及
其中,每个所述编码器对数据块进行离散余弦变换得到系数矩阵,并对系数矩阵中的系数进行量化得到多个量化系数;以及对每个数据块的所述多个量化系数逐个进行编码,同时监控该数据块的压缩预算的使用状态,当已完成的量化系数的编码结果达到压缩预算时,停止当前量化系数的编码,并丢弃未进行编码的量化系数,以已经完成的量化系数的编码结果作为数据块的压缩数据。
优选的,所述编码器对所述系数矩阵进行分层,并对各层中的系数采取不同的量化分辨率进行量化以获得量化系数。
优选的,所述编码器执行以下操作:
Ba,判断剩余的压缩预算是否为0,如果剩余的压缩预算为0,则立即停止对当前量化系数的编码,并输出已经完成的量化系数的编码结果作为数据块的压缩数据;如果剩余的压缩预算不为0,则进入步骤Bb;
Bb,判断剩余的压缩预算是否大于或等于当前量化系数的编码结果的长度,如果剩余的压缩预算大于或等于当前量化系数的编码结果的长度,则完成当前量化系数的编码,记录剩余的压缩预算,并返回步骤Ba,否则进入步骤Bc;
Bc,以剩余压缩预算的长度截断当前量化系数的编码结果,并输出所有完成的量化系数的编码结果作为数据块的压缩数据。
优选的,采用熵编码的方法对量化系数进行编码,并将符号位布置在表项前端。
优选的,以固定的压缩比例对基本单元进行压缩,得到具有统一尺寸的基本单元的压缩数据。
本发明的另一方面,一种视频数据的解压缩方法,该方法包括:
C1,从存储器中读取基本单元的压缩数据,所述基本单元的压缩数据是通过权利要求1到4中任意一项的方法对基本单元进行压缩而获得的;
C2,根据所述基本单元的压缩数据中的每个数据块的压缩数据的相应的压缩预算确定每个数据块的压缩数据在输入缓冲器中的位置,从而将各个数据块的压缩数据并行地从输入缓冲器分配到各个解码器;
C3,通过各个解码器对各个数据块的压缩数据并行地进行解压缩,获得所述各个数据块的解压缩数据;
C4,输出所述各个数据块的解压缩数据,从而获得解压缩后的基本单元;
其中,在步骤C3中对每个数据块的解压缩包括步骤:
C3.1,对数据块的压缩数据中的量化系数的编码结果逐个进行解码,并监控该数据块的压缩预算的使用状态,当已完成对应于预定压缩预算的数据块的压缩数据的解码时,停止对该数据块的解码;
C3.2,对完成解码的量化系数进行反量化得到系数矩阵,并进行离散余弦逆变换得到数据块的解压缩数据。
优选的,步骤C3.1包括:
C3.1a,判断剩余的压缩预算是否为0,如果剩余的压缩预算为0,则立即停止对该数据块的量化系数的解码;如果剩余的压缩预算不为0,则进入步骤C3.1b;
C3.1b,断剩余的压缩预算是否大于或等于当前要解码的量化系数的编码结果长度,如果剩余的压缩预算是否大于或等于当前要解码的量化系数的编码结果长度,则对当前要解码的量化系数进行解码,记录剩余的压缩预算,并返回步骤C3.1a,否则进入步骤C3.1c;
C3.1c,判断剩余的压缩预算对应的编码结果是否包含符号位,如果包含符号位,则将该编码结果在编码过程中被丢弃的比特位以0补齐后进行解码,得到最后一个量化系数的解码结果,如果不包含符号位,则将该最后一个量化系数的解码结果设为0。
本发明的另一方面,一种视频数据的解压缩系统,该系统包括:
存储器,存储基本单元的压缩数据,所述基本单元的压缩数据是通过前述压缩系统对基本单元进行压缩而获得的;
输入缓冲器,读取并缓冲所述基本单元的压缩数据;
预算分配控制器,根据所述基本单元的压缩数据中的每个数据块的压缩数据的相应的压缩预算确定每个数据块的压缩数据在输入缓冲器中的位置,从而将各个数据块的压缩数据并行地从输入缓冲器分配到各个解码器;
解压缩装置,包括至少一个解码器,通过各个解码器对各个数据块的压缩数据并行地进行解压缩,获得所述各个数据块的解压缩数据并提供给输出寄存器;
输出寄存器,接收并输出所述各个数据块的解压缩数据,从而获得解压缩后的基本单元;
其中,每个所述解码器对数据块的压缩数据中的量化系数的编码结果逐个进行解码,并监控该数据块的压缩预算的使用状态,当已完成对应于预定压缩预算的数据块的压缩数据的解码时,停止对该数据块的解码,对完成解码的量化系数进行反量化得到系数矩阵,并进行离散余弦逆变换得到数据块的解压缩数据。
优选的,所述解码器执行以下操作:
Da,判断剩余的压缩预算是否为0,如果剩余的压缩预算为0,则立即停止对该数据块的量化系数的解码;如果剩余的压缩预算不为0,则进入步骤Db;
Db,断剩余的压缩预算是否大于或等于当前要解码的量化系数的编码结果长度,如果剩余的压缩预算是否大于或等于当前要解码的量化系数的编码结果长度,则对当前要解码的量化系数进行解码,记录剩余的压缩预算,并返回步骤Da,否则进入步骤Dc;
Dc,判断剩余的压缩预算对应的编码结果是否包含符号位,如果包含符号位,则将该编码结果在编码过程中被丢弃的比特位以0补齐后进行解码,得到最后一个量化系数的解码结果,如果不包含符号位,则将该最后一个量化系数的解码结果设为0。
本发明的方法和系统实现了可随机访问的视频数据压缩和解压缩,优化了多媒体ASIC数据读写环节的带宽,且可以实现对各压缩数据单元的随机读写以及压缩数据单元之间完全并行的压缩处理和无缝码流装配。有效降低多媒体ASIC设计中视频数据的传输带宽,提高了性能,同时节省了保存该类数据的内存空间。
由于每个数据块的编解码相互独立进行,并具有预先已知的压缩预算分配信息。便于并行编解码和码流装配的高效实现方案,编码器的性能得到显著提高。
附图说明
图1显示了根据本发明的视频数据的压缩方法的一个实施例的流程图;
图2显示了根据本发明的视频数据的压缩方法中系数矩阵的分层量化的示意图;
图3显示了根据本发明的视频数据的压缩方法中对每个数据块的量化系数进行编码的一个实施例的流程;
图4显示了根据本发明的视频数据的压缩装置的一个实施例的结构图;
图5显示了根据本发明的视频数据的解压缩方法的一个实施例的流程图;
图6显示了根据本发明的视频数据的解压缩方法中对每个数据块的量化系数进行解码的一个实施例的流程图;
图7显示了根据本发明的视频数据的解压缩装置的一个实施例的结构图。
具体实施方式
本发明的原理在于,将视频数据分割为具有统一尺寸的基本单元(TILE),以该基本单元作为压缩或解压缩处理的基本对象,对每个基本单元独立地进行压缩或解压缩操作,使得每个基本单元的压缩或解压缩结果之间不具备相关性,从而实现对每个基本单元的随机访问。具有统一尺寸的每个基本单元可由多个数据块组成,在对每个基本单元进行压缩或解压缩的过程中,并行地对每个数据块进行压缩或解压缩,并为每个数据块设定压缩预算,从而实现对每个基本单元所包含的所有数据块的完全并行处理和无缝码流装配。
图1显示了根据本发明的视频数据的压缩方法的一个实施例的流程图,在该实施例中,该方法包括:
S101,将视频数据分割为多个具有统一规格的基本单元,每个所述基本单元包括至少一个数据块;
S102,读取所述基本单元,
S103,对读取的所述基本单元中的各个数据块按照各自的指定压缩预算并行地进行压缩编码,获得所述各个数据块的压缩数据,其中每个数据块的压缩数据的长度与该数据块的指定的压缩预算一致,
S104,根据每个数据块的压缩预算确定每个数据块的压缩数据在输出缓冲器中的位置,从而将读取的基本单元中的各个数据块的压缩数据并行地分配到输出缓冲器中;
S105,所述输出缓冲器串行输出所述各个数据块的压缩数据,从而获得读取的基本单元的压缩数据;以及
其中,在步骤S103中针对每个数据块的压缩编码包括:
S1031,对数据块进行离散余弦变换得到系数矩阵,并对系数矩阵中的系数进行量化得到多个量化系数;以及
S1032,对所述多个量化系数逐个进行编码,并监控该数据块的压缩预算的使用状态,当已完成的量化系数的编码结果达到该数据块的压缩预算时,停止当前量化系数的编码,并丢弃未进行编码的量化系数,以已完成的量化系数的编码结果作为数据块的压缩数据。
所述基本单元中的各个数据块的压缩预算的总和等于基本单元的压缩数据的长度,优选地,该压缩预算的总和与基本单元的数据长度之比(即基本单元的压缩比)为固定值,即得到的基本单元的压缩数据的长度固定且相等,从而实现基本单元的压缩数据的简单寻址和随机存取。
在该实施例中,由于每个基本单元具有统一的规格,并且对每个基本单元的压缩独立于其他基本单元,因此可实现对任意基本单元的随机存取。
优选地,所述基本单元中的数据块具有一定的排列顺序,这种排列顺序可取决于所采用的视频编解码标准等应用背景。在步骤S105中,可按照所述排列顺序串行地输出各个数据块的压缩数据,从而获得所述基本单元的压缩数据。
优选地,可根据实际应用需要来选择所述基本单元的统一规格,例如统一的尺寸,统一的数据结构等。并且可根据实际应用需要来选择每个基本单元所包含的至少一个数据块的数量、尺寸、排列顺序、和数据内容等。举例来说,对于符合H.264标准的视频数据,其常规的视频数据处理最小单元为4×4数据矩阵,因此可以4×4数据矩阵作为数据块,对于符合JPEG标准的视频数据来说则可以8×8数据矩阵作为数据块。每个基本单元可由任意数量的数据块组成,每个基本单元中的数据块可具有相同的尺寸或不同的尺寸。
在步骤S103中的通过编码器对各个数据块分别进行并行压缩编码的过程中,为每个数据块预先分配了压缩预算,也就是说,每个数据块经过相应的编码器编码之后所得的压缩数据的长度(或称为压缩预算)是预先指定的,优选地,每个数据块的压缩预算可以相同也可以不同。该实施例的优点是,由于每个数据块的压缩预算已被预先指定,即每个数据块的压缩数据的长度是可预知的。由于预先知道了每个数据块的压缩数据的长度,也就预先知道了每个数据块的压缩数据在输出缓冲器中的起点和终点,也就是说,每个数据块的压缩数据在输出缓冲器中的位置是可以预知的,因此可以自动地、无缝地、并行地将所有数据块的压缩数据分配到输出缓冲器中的相应位置,并由输出缓冲器串行输出。该实施例可实现压缩数据的无缝装配,大大提高该压缩方法的工作效率。
优选地,在步骤S1031中,可按照一定的原则对系数矩阵进行分层,并对各层中的系数采取不同的量化分辨率进行量化以获得量化系数。图2以4×4的系数矩阵为例,描述了对系数矩阵进行分层的示意图。图2的实施例是按照系数的重要性进行分层的,其中以不同的灰度表示了系数矩阵中具有不同重要性的系数,以系数0作为第一层,系数1-5作为第二层,系数6-9作为第三层,系数10-15作为第四层。由离散余弦变换(DCT)的原理可知,在一个4×4的数据块经过DCT变换后的到的4×4的系数矩阵中,系数0的信息量最大,其重要性也最高,系数矩阵中远离系数0的位置上的系数的重要性较低。因此,从第一层到第四层,系数的重要性逐渐降低,因此可为第一层指定较高的量化分辨率,进行较“细”的量化,并从第二层到第五层逐渐降低量化分辨率,进行较“粗”的量化,得到16个量化系数,从而在达到预定压缩预算的条件下,实现最佳的压缩效果。尽管图中以4×4的系数矩阵为例,事实上数据块以及系数矩阵的尺寸并不限于4×4,也可根据需要选择8×8或其他尺寸,系数矩阵的分层方式也不限于图2所示的特定方式,而可以是任意其他方式,只要其能实现对系数矩阵进行分层量化,以尽可能改善压缩效果的目的。
在步骤S1032中,对量化系数逐个进行编码,并在编码的过程中监控压缩预算的使用状态,并根据该状态判断是否进行当前量化系数的编码。可以通过记录已得到的编码结果占用的压缩预算,或记录可用的剩余的压缩预算等各种方式来监控压缩预算的使用状态,只要能够通过监控使得对每个数据块的编码结果等于预定的压缩预算即可。
图3描述了该过程的一个优选实施方式,该实施例采用了监控剩余的压缩预算的方式,当前数据块的预定的压缩预算与该数据块的目前已完成的编码结果的长度(即已经用掉的压缩预算)之差,即为剩余的压缩预算。在图3的实施例中,对每个待编码的当前量化系数进行编码之前,先判断剩余的压缩预算是否为0(步骤S301),如果剩余的压缩预算为0(步骤S301:是),则立即停止对当前量化系数的编码,并输出已经完成的量化系数的编码结果作为数据块的压缩数据(S302);如果剩余的压缩预算不为0(步骤S301:否),则判断剩余的压缩预算是否大于或等于当前量化系数的编码结果的长度(步骤S303),该编码结果的长度可以通过查找编码表中的对应表项得到;如果剩余的压缩预算大于或等于当前量化系数的编码结果的长度(步骤S303:是),则完成当前量化系数的编码,记录剩余的压缩预算,并返回步骤S301(S304);否则(步骤S303:否),则以剩余压缩预算的长度截断当前量化系数的编码结果,并输出所有完成的量化系数的编码结果作为数据块的压缩数据(步骤S305)。
由于图3所示的实施例采用了“截断”最后一个量化系数的编码结果的方法来保证预定的压缩预算,也就是说,在判断出最后一个量化系数的编码结果会导致压缩数据的总长度超出压缩预算时,仅保留最后一个量化系数的编码结果中排在前面的(例如高位)与压缩压缩预算长度相等的比特位,抛弃剩余的比特位,因此,若采用该实施例的方法,优选地,可在编码码表中将代表量化系数的符号位等重要信息的编码数据尽量排在表项的前面,以避免后续解码过程中最后一个量化系数的重建误差。
优选地,采用熵编码的方法对量化系数进行编码,以进一步提高压缩效果。更优选地,在设计熵编码码表时,可将符号位等重要信息在码字中尽量提前,以避免后续解码过程中在固定压缩预算条件下最后一个量化系数的重建误差。
图4显示了根据本发明的视频数据的压缩系统的一个实施例的结构框图,在该实施例中,该系统包括:
存储器401,存储分割为多个具有统一规格的基本单元的视频数据,每个所述基本单元包括至少一个数据块;
输入寄存器402(REG0,REG1,REG2),读取并保存所述基本单元中的各个数据块;
压缩装置403,包括至少一个编码器(ENC0,ENC1,ENC2),通过所述至少一个编码器(ENC0,ENC1,ENC2)对读取的所述基本单元中的各个数据块按照各自的指定压缩预算并行地进行压缩编码,获得所述各个数据块的压缩数据,其中每个数据块的压缩数据的长度与该数据块的指定的压缩预算一致;
预算分配控制器404,为压缩装置403中的每个编码器指定压缩预算,并根据该压缩预算确定每个数据块的压缩数据(BUD0,BUD1,BUD2)在输出缓冲器中的位置,从而将读取的基本单元中的各个数据块的压缩数据并行地分配到输出缓冲器中;
输出缓冲器405,串行输出所述各个数据块的压缩数据,从而获得读取的基本单元的压缩数据;以及
其中,每个所述编码器(ENC0,ENC1,ENC2)对数据块进行离散余弦变换得到系数矩阵,并对系数矩阵中的系数进行量化得到多个量化系数;以及对每个数据块的所述多个量化系数逐个进行编码,同时监控该数据块的压缩预算的使用状态,当已完成的量化系数的编码结果达到压缩预算时,停止当前量化系数的编码,并丢弃未进行编码的量化系数,以已经完成的量化系数的编码结果作为数据块的压缩数据。
优选地,所述编码器(ENC0,ENC1,ENC2)可按照一定的原则对系数矩阵进行分层,并对各层中的系数采取不同的量化分辨率进行量化以获得量化系数,从而进一步提高压缩效果。
优选地,编码器(ENC0,ENC1,ENC2)对量化系数逐个进行编码,并在编码的过程中监控压缩预算的使用状态,并根据该状态判断是否进行当前量化系数的编码。可以通过记录已得到的编码结果占用的压缩预算,或记录可用的剩余的压缩预算等各种方式来监控压缩预算的使用状态,只要能够通过监控使得对每个数据块的编码结果等于预定的压缩预算即可。优选地,编码器可采用图3所示的过程对数据块进行基于预定压缩比的压缩编码。
优选地,编码器采用熵编码的方法对量化系数进行编码,以进一步提高压缩效果。更优选地,在设计熵编码码表时,可将符号位信息在码字中尽量提前,以避免后续解码过程中在固定压缩预算条件下最后一个量化系数的重建误差。
图5显示了根据本发明的视频数据的解压缩方法的一个实施例的流程图,在该实施例中,该方法包括:
S501,从存储器中读取基本单元的压缩数据,所述基本单元的压缩数据是通过图1的实施例中的方法对基本单元进行压缩而获得的;
S502,根据所述基本单元的压缩数据中的每个数据块的压缩数据的相应的压缩预算确定每个数据块的压缩数据在输入缓冲器中的位置,从而将各个数据块的压缩数据并行地从输入缓冲器分配到各个解码器;
S503,通过各个解码器对各个数据块的压缩数据并行地进行解压缩,获得所述各个数据块的解压缩数据;
S504,输出所述各个数据块的解压缩数据,从而获得解压缩后的基本单元;
其中,在步骤5403中对每个数据块的解压缩包括:
S5031,对数据块的压缩数据中的量化系数的编码结果逐个进行解码,并监控该数据块的压缩预算的使用状态,当已完成对应于预定压缩预算的数据块的压缩数据的解码时,停止对该数据块的解码;
S5032,对完成解码的量化系数进行反量化得到系数矩阵,并进行离散余弦逆变换得到数据块的解压缩数据。
优选地,在步骤S5031中,逐一对数据块的压缩数据中的每个量化系数的编码结果进行解码,并在解码的过程中监控该数据块的压缩预算的使用状态,这里的压缩预算实际上就是数据块的压缩数据的长度。可以通过监控已完解码的压缩数据长度(已完成的压缩预算),或监控剩余的未解码的压缩数据长度(剩余的压缩预算)等各种方式来监控压缩预算的使用状态,只要能达到通过监控保证完成对预定压缩预算的压缩数据的解码即可。
图6描述了对每个数据块的量化系数进行解码的过程的一个优选实施方式,在图6的实施例中,对每个待解码当前量化系数进行解码之前,先判断剩余的压缩预算是否为0(步骤S601),如果剩余的压缩预算为0(步骤S601:是),则立即停止对该数据块的量化系数的解码(S602),以该数据块的目前完成的量化系数的解码结果作为后续反量化和逆变换的对象;如果剩余压缩预算不为0(S601:否),则判断剩余压缩预算是否大于或等于当前要解码的量化系数的编码结果长度(S603),如果大于或等于(S603:是),则对当前要解码的量化系数进行解码,记录剩余的压缩预算,并返回步骤S601(S604),如果小于(S603:否),再判断剩余的压缩预算对应的编码结果是否包含符号位或其他重要信息(S605),如果包含符号位或其他重要信息(步骤S605:是),则将该编码结果在编码过程中被丢弃的比特位以0补齐后进行解码,得到最后一个量化系数的解码结果(S606),如果不包含符号位(步骤605:否),则将该最后一个量化系数的解码结果设为0(S607)。完成最后一个量化系数的解码结果之后,以目前完成的该数据块的所有量化系数的解码结果作为后续反量化和逆变换的对象,从而得到数据块的解压缩结果。
由于在编码过程中,对于最后一个量化系数的编码结果可能进行了“截断”,因此在图6所示的实施例中,最后一个量化系数的编码结果可能是不完整的,其可能包含符号位或不包含符号位,对于不包含符号位的编码结果,由于其丢弃了重要信息因此将其解码结果设为0,对于包含符号位的编码结果,尽管数据不完整,仍可“以0补齐”在编码过程中被“截断”丢弃的比特位,并对补齐后的编码结果进行解码,作为最后一个量化系数的解码结果。因此,在编码码表中,可将量化系数的符号位等重要信息尽量排在表项的前面,以避免后续解码过程中最后一个量化系数的重建误差。
优选地,采用熵编码的方法对量化系数进行编码,以进一步提高压缩效果。更优选地,在设计熵编码码表时,可将符号位信息在码字中尽量提前,以避免后续解码过程中在固定压缩预算条件下最后一个量化系数的重建误差。
图7显示了根据本发明的视频数据的解压缩系统的一个实施例的结构框图,在该实施例中,该系统包括:
存储器701,存储基本单元的压缩数据,所述基本单元的压缩数据是通过图4的实施例中的系统对基本单元进行压缩而获得的;
输入缓冲器702,读取并缓冲所述基本单元的压缩数据;
预算分配控制器703,根据所述基本单元的压缩数据中的每个数据块的压缩数据的相应的压缩预算确定每个数据块的压缩数据(BUD0,BUD1,BUD2)在输入缓冲器中的位置,从而将各个数据块的压缩数据并行地从输入缓冲器分配到各个解码器;
解压缩装置704,包括至少一个解码器(DEC0,DEC1,DEC2),通过各个解码器(DEC0,DEC1,DEC2)对各个数据块的压缩数据并行地进行解压缩,获得所述各个数据块的解压缩数据并提供给输出寄存器705;
输出寄存器705(REG0,REG1,REG2),接收并输出所述各个数据块的解压缩数据,从而获得解压缩后的基本单元;
其中,每个所述解码器(DEC0,DEC1,DEC2)对数据块的压缩数据中的量化系数的编码结果逐个进行解码,并监控该数据块的压缩预算的使用状态,当已完成对应于预定压缩预算的数据块的压缩数据的解码时,停止对该数据块的解码;对完成解码的量化系数进行反量化得到系数矩阵,并进行离散余弦逆变换得到数据块的解压缩数据。
优选地,在每个解码器中,逐一对数据块的压缩数据中的每个量化系数的编码结果进行解码,并在解码的过程中监控该数据块的压缩预算的使用状态,这里的压缩预算实际上就是数据块的压缩数据的长度。可以通过监控已完解码的压缩数据长度(已完成的压缩预算),或监控剩余的未解码的压缩数据长度(剩余的压缩预算)等各种方式来监控压缩预算的使用状态,只要能达到通过监控保证完成对预定压缩预算的压缩数据的解码即可。解码器可采用如图6所示的方式进行基于固定压缩预算的解码。
优选地,采用熵编码的方法对量化系数进行编码,以进一步提高压缩效果。更优选地,在设计熵编码码表时,可将符号位信息在码字中尽量提前,以避免后续解码过程中在固定压缩预算条件下最后一个量化系数的重建误差。
Claims (8)
1.一种视频数据的压缩方法,其特征在于,该方法包括步骤:
A1,将视频数据分割为多个具有统一规格的基本单元,每个所述基本单元包括至少一个数据块;
A2,读取所述基本单元,
A3,对读取的所述基本单元中的各个数据块按照各自的指定压缩预算并行地进行压缩编码,获得所述各个数据块的压缩数据,其中每个数据块的压缩数据的长度与该数据块的指定的压缩预算一致,
A4,根据每个数据块的压缩预算确定每个数据块的压缩数据在输出缓冲器中的位置,从而将读取的基本单元中的各个数据块的压缩数据并行地分配到输出缓冲器中;
A5,所述输出缓冲器串行输出所述各个数据块的压缩数据,从而获得读取的基本单元的压缩数据;以及
其中,在步骤A3中,针对每个数据块的压缩编码又包括步骤:
A3.1,对数据块进行离散余弦变换得到系数矩阵,并对系数矩阵中的系数进行量化得到多个量化系数;以及
A3.2,对所述多个量化系数逐个进行编码,并监控该数据块的压缩预算的使用状态,当已完成的量化系数的编码结果达到该数据块的压缩预算时,停止当前量化系数的编码,并丢弃未进行编码的量化系数,以已完成的量化系数的编码结果作为数据块的压缩数据;
在步骤A3.1中,对所述系数矩阵进行分层,并对各层中的系数采取不同的量化分辨率进行量化以获得量化系数;
步骤A3.2还包括:
A3.2a,判断剩余的压缩预算是否为0,如果剩余的压缩预算为0,则立即停止对当前量化系数的编码,并输出已经完成的量化系数的编码结果作为数据块的压缩数据;如果剩余的压缩预算不为0,则进入步骤A3.2b;
A3.2b,判断剩余的压缩预算是否大于或等于当前量化系数的编码结果的长度,如果剩余的压缩预算大于或等于当前量化系数的编码结果的长度,则完成当前量化系数的编码,记录剩余的压缩预算,并返回步骤A3.2a,否则进入步骤A3.2c;
A3.2c,以剩余压缩预算的长度截断当前量化系数的编码结果,并输出所有完成的量化系数的编码结果作为数据块的压缩数据。
2.根据权利要求1所述的视频数据的压缩方法,其特征在于,采用熵编码的方法对量化系数进行编码,并将符号位布置在表项前端。
3.根据权利要求1所述的视频数据的压缩方法,其特征在于,以固定的压缩比例对基本单元进行压缩,得到具有统一尺寸的基本单元的压缩数据。
4.一种视频数据的压缩系统,其特征在于,该系统包括:
存储器,存储分割为多个具有统一规格的基本单元的视频数据,每个所述基本单元包括至少一个数据块;
输入寄存器,读取并保存所述基本单元中的各个数据块;
压缩装置,包括至少一个编码器,通过所述至少一个编码器对读取的所述基本单元中的各个数据块按照各自的指定压缩预算并行地进行压缩编码,获得所述各个数据块的压缩数据,其中每个数据块的压缩数据的长度与该数据块的指定的压缩预算一致;
预算分配控制器,为压缩装置中的每个编码器指定压缩预算,并根据该压缩预算确定每个数据块的压缩数据在输出缓冲器中的位置,从而将读取的基本单元中的各个数据块的压缩数据并行地分配到输出缓冲器中;
输出缓冲器,串行输出所述各个数据块的压缩数据,从而获得读取的基本单元的压缩数据;以及
其中,每个所述编码器对数据块进行离散余弦变换得到系数矩阵,并对系数矩阵中的系数进行量化得到多个量化系数;以及对每个数据块的所述多个量化系数逐个进行编码,同时监控该数据块的压缩预算的使用状态,当已完成的量化系数的编码结果达到压缩预算时,停止当前量化系数的编码,并丢弃未进行编码的量化系数,以已经完成的量化系数的编码结果作为数据块的压缩数据;
所述编码器对所述系数矩阵进行分层,并对各层中的系数采取不同的量化分辨率进行量化以获得量化系数;
所述编码器执行以下操作:
Ba,判断剩余的压缩预算是否为0,如果剩余的压缩预算为0,则立即停止对当前量化系数的编码,并输出已经完成的量化系数的编码结果作为数据块的压缩数据;如果剩余的压缩预算不为0,则进入步骤Bb;
Bb,判断剩余的压缩预算是否大于或等于当前量化系数的编码结果的长度,如果剩余的压缩预算大于或等于当前量化系数的编码结果的长度,则完成当前量化系数的编码,记录剩余的压缩预算,并返回步骤Ba,否则进入步骤Bc;
Bc,以剩余压缩预算的长度截断当前量化系数的编码结果,并输出所有完成的量化系数的编码结果作为数据块的压缩数据。
5.根据权利要求4所述的视频数据的压缩系统,其特征在于,采用熵编码的方法对量化系数进行编码,并将符号位布置在表项前端。
6.根据权利要求4所述的视频数据的压缩系统,其特征在于,以固定的压缩比例对基本单元进行压缩,得到具有统一尺寸的基本单元的压缩数据。
7.一种视频数据的解压缩方法,其特征在于,该方法包括:
C1,从存储器中读取基本单元的压缩数据,所述基本单元的压缩数据是通过权利要求1到3中任意一项的方法对基本单元进行压缩而获得的;
C2,根据所述基本单元的压缩数据中的每个数据块的压缩数据的相应的压缩预算确定每个数据块的压缩数据在输入缓冲器中的位置,从而将各个数据块的压缩数据并行地从输入缓冲器分配到各个解码器;
C3,通过各个解码器对各个数据块的压缩数据并行地进行解压缩,获得所述各个数据块的解压缩数据;
C4,输出所述各个数据块的解压缩数据,从而获得解压缩后的基本单元;
其中,在步骤C3中对每个数据块的解压缩包括步骤:
C3.1,对数据块的压缩数据中的量化系数的编码结果逐个进行解码,并监控该数据块的压缩预算的使用状态,当已完成对应于预定压缩预算的数据块的压缩数据的解码时,停止对该数据块的解码;
C3.2,对完成解码的量化系数进行反量化得到系数矩阵,并进行离散余弦逆变换得到数据块的解压缩数据;
步骤C3.1还包括:
C3.1a,判断剩余的压缩预算是否为0,如果剩余的压缩预算为0,则立即停止对该数据块的量化系数的解码;如果剩余的压缩预算不为0,则进入步骤C3.1b;
C3.1b,判断剩余的压缩预算是否大于或等于当前要解码的量化系数的编码结果长度,如果剩余的压缩预算大于或等于当前要解码的量化系数的编码结果长度,则对当前要解码的量化系数进行解码,记录剩余的压缩预算,并返回步骤C3.1a,否则进入步骤C3.1c;
C3.1c,判断剩余的压缩预算对应的编码结果是否包含符号位,如果包含符号位,则将该编码结果在编码过程中被丢弃的比特位以0补齐后进行解码,得到最后一个量化系数的解码结果,如果不包含符号位,则将该最后一个量化系数的解码结果设为0。
8.一种视频数据的解压缩系统,其特征在于,该系统包括:
存储器,存储基本单元的压缩数据,所述基本单元的压缩数据是通过权利要求4所述的系统对基本单元进行压缩而获得的;
输入缓冲器,读取并缓冲所述基本单元的压缩数据;
预算分配控制器,根据所述基本单元的压缩数据中的每个数据块的压缩数据的相应的压缩预算确定每个数据块的压缩数据在输入缓冲器中的位置,从而将各个数据块的压缩数据并行地从输入缓冲器分配到各个解码器;
解压缩装置,包括至少一个解码器,通过各个解码器对各个数据块的压缩数据并行地进行解压缩,获得所述各个数据块的解压缩数据并提供给输出寄存器;
输出寄存器,接收并输出所述各个数据块的解压缩数据,从而获得解压缩后的基本单元;
其中,每个所述解码器对数据块的压缩数据中的量化系数的编码结果逐个进行解码,并监控该数据块的压缩预算的使用状态,当已完成对应于预定压缩预算的数据块的压缩数据的解码时,停止对该数据块的解码,对完成解码的量化系数进行反量化得到系数矩阵,并进行离散余弦逆变换得到数据块的解压缩数据;
所述解码器执行以下操作:
Da,判断剩余的压缩预算是否为0,如果剩余的压缩预算为0,则立即停止对该数据块的量化系数的解码;如果剩余的压缩预算不为0,则进入步骤Db;
Db,判断剩余的压缩预算是否大于或等于当前要解码的量化系数的编码结果长度,如果剩余的压缩预算大于或等于当前要解码的量化系数的编码结果长度,则对当前要解码的量化系数进行解码,记录剩余的压缩预算,并返回步骤Da,否则进入步骤Dc;
Dc,判断剩余的压缩预算对应的编码结果是否包含符号位,如果包含符号位,则将该编码结果在编码过程中被丢弃的比特位以0补齐后进行解码,得到最后一个量化系数的解码结果,如果不包含符号位,则将该最后一个量化系数的解码结果设为0。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210182969.6A CN102724500B (zh) | 2012-06-05 | 2012-06-05 | 一种视频数据的压缩/解压缩方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210182969.6A CN102724500B (zh) | 2012-06-05 | 2012-06-05 | 一种视频数据的压缩/解压缩方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102724500A CN102724500A (zh) | 2012-10-10 |
CN102724500B true CN102724500B (zh) | 2015-10-14 |
Family
ID=46950145
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210182969.6A Expired - Fee Related CN102724500B (zh) | 2012-06-05 | 2012-06-05 | 一种视频数据的压缩/解压缩方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102724500B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103581673A (zh) * | 2012-08-07 | 2014-02-12 | 上海算芯微电子有限公司 | 视频数据的压缩/解压缩方法及系统 |
CN103384884B (zh) * | 2012-12-11 | 2016-11-16 | 华为技术有限公司 | 一种文件压缩方法、文件解压缩方法、装置及服务器 |
CN104113759B (zh) * | 2013-04-17 | 2018-03-23 | 展讯通信(上海)有限公司 | 视频系统、视频帧缓存再压缩/解压缩方法与装置 |
CN103399763B (zh) * | 2013-07-23 | 2016-12-28 | 北京昆腾微电子有限公司 | 下载用于芯片的程序文件的方法和装置 |
CN103984528A (zh) * | 2014-05-15 | 2014-08-13 | 中国人民解放军国防科学技术大学 | 基于飞腾处理器平台的多线程并发数据压缩方法 |
CN105553937B (zh) * | 2015-12-03 | 2018-12-07 | 华为技术有限公司 | 数据压缩的系统和方法 |
CN105743509B (zh) * | 2016-01-26 | 2019-05-24 | 华为技术有限公司 | 数据压缩装置及方法 |
CN108241718B (zh) * | 2016-12-27 | 2022-02-11 | 腾讯科技(北京)有限公司 | 一种数据并行处理的方法及服务器 |
CN106713928B (zh) * | 2016-12-29 | 2020-04-10 | 深圳Tcl数字技术有限公司 | 视频编码与解码方法及装置 |
CN118277348A (zh) * | 2024-05-31 | 2024-07-02 | 天津南大通用数据技术股份有限公司 | Lzo压缩文件的加载方法及系统 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08256337A (ja) * | 1995-03-16 | 1996-10-01 | Toshiba Corp | 動画像符号化装置 |
EP1271926B1 (en) * | 2001-06-18 | 2015-08-12 | Canon Kabushiki Kaisha | Image processing method, apparatus and computer program for compression-encoding |
JP4555257B2 (ja) * | 2006-06-06 | 2010-09-29 | パナソニック株式会社 | 画像符号化装置 |
CN101686388B (zh) * | 2008-09-24 | 2013-06-05 | 国际商业机器公司 | 视频流编码装置及其方法 |
-
2012
- 2012-06-05 CN CN201210182969.6A patent/CN102724500B/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN102724500A (zh) | 2012-10-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102724500B (zh) | 一种视频数据的压缩/解压缩方法及系统 | |
CN101031086B (zh) | 视频信息编码方法及设备和视频信息解码方法及设备 | |
RU2503138C2 (ru) | Кодирование встраиваемой графики для изображений с разреженными гистограммами | |
CN100463488C (zh) | 用于渐进地变换并编码数字数据的系统和方法 | |
CN101420614B (zh) | 一种混合编码与字典编码整合的图像压缩方法及装置 | |
CN103404141A (zh) | 使用变换的视频编码和解码 | |
CN104272735A (zh) | 针对视频的上下文自适应二进制熵编码的变换系数编码 | |
US9036711B1 (en) | Visual data compression algorithm with parallel processing capability | |
CN102289829A (zh) | 图像存储、还原的方法、装置及图像处理系统 | |
CN101751440A (zh) | 一种数据压缩/解压缩方法及其装置 | |
US9510008B2 (en) | Video decoder memory bandwidth compression | |
CN102845065A (zh) | 用于重排并行熵编码和解码的方法和设备 | |
CN101252694A (zh) | 基于块的视频解码的帧存储压缩和地址映射系统 | |
CN103581680A (zh) | 由量化控制改良解码器性能的方法与系统 | |
CN101546434A (zh) | 一种bmp图片文件的压缩、解压缩方法及系统 | |
CN104704825A (zh) | 分段图像数据的无损压缩 | |
CN103581673A (zh) | 视频数据的压缩/解压缩方法及系统 | |
CN103841424A (zh) | 随机存取存储器中压缩数据的系统及方法 | |
CN103716634A (zh) | 使用误差平面编码的数据压缩方法及装置 | |
CN1240090A (zh) | 数字图像信号处理器的数据高效量化表 | |
CN115150628B (zh) | 具有超先验引导模式预测的由粗到细深度视频编码方法 | |
CN101657973B (zh) | 采用位精度的编码装置和编码方法 | |
CN102740075B (zh) | 一种视频数据的压缩/解压缩方法及系统 | |
CN102238376B (zh) | 图像处理系统及方法 | |
CN103581675A (zh) | 视频数据的压缩/解压缩方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20151014 Termination date: 20210605 |
|
CF01 | Termination of patent right due to non-payment of annual fee |