CN102497546A - 一种屏幕图像压缩装置及压缩方法 - Google Patents

一种屏幕图像压缩装置及压缩方法 Download PDF

Info

Publication number
CN102497546A
CN102497546A CN2011103854058A CN201110385405A CN102497546A CN 102497546 A CN102497546 A CN 102497546A CN 2011103854058 A CN2011103854058 A CN 2011103854058A CN 201110385405 A CN201110385405 A CN 201110385405A CN 102497546 A CN102497546 A CN 102497546A
Authority
CN
China
Prior art keywords
coding
pixel
unit
decoding
combination
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN2011103854058A
Other languages
English (en)
Other versions
CN102497546B (zh
Inventor
林涛
王淑慧
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tongji University
Original Assignee
Tongji University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tongji University filed Critical Tongji University
Priority to CN201110385405.8A priority Critical patent/CN102497546B/zh
Publication of CN102497546A publication Critical patent/CN102497546A/zh
Application granted granted Critical
Publication of CN102497546B publication Critical patent/CN102497546B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本发明提供一种屏幕图像压缩装置及压缩方法,所述压缩装置使用若干套互补的编码工具组合,并且以具有一定像素的编码单元为编码单位,对同一编码单元,同时使用多套编码工具组合进行预编码,然后选择其中率-失真特性最优的组合对此编码单元进行压缩。同时,本发明提供与此压缩装置与压缩方法所对应的解压装置及解压方法,通过分析输入的压缩码流数据,选择与其相对应的解码工具组合对其进行解码并进行图像重构,本发明的屏幕图像压缩效果比现有技术有显著的提高。

Description

一种屏幕图像压缩装置及压缩方法
技术领域
本发明涉及一种图像处理技术,尤其是涉及一种屏幕图像压缩装置及压缩方法。
技术背景
随着“云计算”、“云渲染”与“云片-屏计算”的快速发展和普及,多计算机之间及主机与其他数字设备之间的互联已经成为现实并越来越成为一种主流趋势。这使得服务器端(“云”或“云片”)到用户端的实时屏幕传输成为当前的迫切需求。由于需要传输的屏幕视频数据量很大,以1920*1200像素分辨率且60帧/秒刷新率的24位真彩色屏幕图像为例,需要传输的数据超过每秒3千兆比特,如此多的数据要想在当前的网络条件下实现实时传输是不可能的,因此有效的数据压缩必不可少。
计算机屏幕图像的突出特点是包含文字、背景、图形及自然图像的复合图像(compoundimage)。其中,文字、背景、图形一般由计算机生成,具有非连续色调的特性,而自然图像是由摄像机拍摄得到的,具有连续色调的特性。当前,对自然图像和视频的压缩编码已经比较成熟,有许多既定的标准可采用。这些标准基本采用预测编码与变换编码结合的混合编码的框架,但他们对复合图像的压缩效果较差,必须寻求更适合于复合图像压缩的算法来实现有效压缩。
“云片-屏计算”中屏幕图像编码的另一个关键指标是极小的编码-解码延迟。从编码器收到一帧图像的第一个像素(一般在左上角位置)的时间算起,到解码器完成一帧图像的最后一个复原(也称重构)像素(一般在右下角位置)的解码的时间为止,期间经历的总延迟,即编码延迟+传输延迟(假定为零)+解码延迟,一般需要限制在20毫秒之内。
另一方面,对具有非连续色调特性的离散数据,基于串匹配的字典编码与熵编码结合的字典-熵压缩方法是一种有效的方法。常见的字典-熵压缩方法有gzip方法、LZMA方法等。
在针对自然图像的混合编码框架中,一帧图像被分割成N×N像素的“编码单元(CodingUnit简称CU)”,每个CU都有一个序号,然后按照序号从小到大对一个一个CU进行编码。在MPEG-1/2/4,H.264以及HEVC等国际标准中,8≤N≤64,最常见的是N=16(16x16像素,称为宏块)。以CU为基本单位进行编码,编码器只要输入一个CU的像素就能开始编码,而不需要等到输入了整帧图像再开始编码。同样,解码器只要收到一个CU的压缩图像数据,就可以开始解码。这样,以CU为单位进行编码和解码,比以一帧图像为单位进行编码和解码,编码+解码延迟可以大大减小。
另一方面,在字典-熵压缩方法中,数据量越大,字典越大,压缩效果就越好。所以使用gzip方法或LZMA方法对一帧图像进行压缩时,都是将一帧图像按光栅扫描的次序一行一行排列起来,然后对整帧图像进行压缩。如果把一帧图像分成CU再分别进行编码,则压缩效果将大大降低。
计算机屏幕图像中既有连续色调的区域,也有非连续色调的区域。屏幕图像的这种多样性,决定了需要使用多种编码方法对其进行压缩,才能得到最好的压缩效果。现有技术中,通常是对一幅图像先进行预处理,把一幅图像分成两幅(也可称为两层),一幅(层)含连续色调的区域,另一幅(层)含非连续色调的区域。然后对两幅(层)图像分别使用两种有针对性的编码方法进行编码,编码的结果再组成一段码流。在这样的方法中,由于是以一幅图像而不是以一个CU为单位进行编码和解码,编码延迟+解码延迟都会超过20毫秒。
发明内容
鉴于以上所述现有技术的缺点,针对由计算机产生的非连续色调的各种文字、背景、图形和由摄像机产生的连续色调的自然图像混合组成的内容丰富多样且性质各异的计算机屏幕图像或多幅这样的图像组成的视频序列,本发明的目的在于提供一种屏幕图像压缩装置及方法,以保证图像压缩过程中具有较好压缩效果的同时又具有较小的延迟。
为实现上述目的及其他相关目的,本发明提供一种屏幕图像压缩装置,所述压缩装置至少包括:预编码模块组,包括多套互补的编码工具组合编码模块,用于接收从一外部装置输入的图像像素组成的编码单元并分别独立地对其进行编码;各套组合率-失真特性计算模块,连接于所述预编码模块组,用于对所述各编码工具组合编码模块的编码结果进行率-失真特性计算;最优编码工具组合选择模块,连接于所述各套组合率-失真特性计算模块,用于对所述率-失真特性计算结果进行分析,并选择出最优编码工具组合编码模块及其对应的压缩码流数据;码流暂存输出模块,连接于所述最优编码工具组合选择模块,用于暂存所述最优编码工具组合编码模块所产生的压缩码流数据,并在特定的时间,把所述的压缩码流数据输出到压缩码流。
在本发明的屏幕图像压缩装置中,所述预编码模块组包括的编码工具组合编码模块为2~8套。
在本发明的屏幕图像压缩装置中,所述编码工具组合为变换编码、量化编码、向量量化编码、预测编码、像素串匹配编码、宽像素串匹配编码、编码中间数据串匹配编码、游程编码、二维游程编码、可变长编码、算术编码及区间编码12种编码工具按特定数量与特定规则的组合。优选地,至少有一套编码工具组合选取像素串匹配编码工具。
优选地,各该编码工具组合包含的编码工具为2~5种。
在本发明的屏幕图像压缩装置中,所述编码工具组合的组成规则必须同时满足:1)如果选取了变换编码或量化编码或向量量化编码,就不能选取精确无损的像素串匹配编码或宽像素串匹配编码,但可以选取有损的像素串匹配编码或宽像素串匹配编码,反之,如果选取了精确无损的像素串匹配编码或宽像素串匹配编码,就不能选取变换编码或量化编码或向量量化编码,但是,如果选取了有损的像素串匹配编码或宽像素串匹配编码,则仍可选取变换编码或量化编码或向量量化编码;2)从预测编码、变换编码、量化编码、向量量化编码、像素串匹配编码、宽像素串匹配编码、编码中间数据串匹配编码7种编码工具中,必须选取至少一种;3)可变长编码、算术编码、区间编码中,只能选一种,而且必须选一种;4)像素串匹配编码和编码中间数据串匹配编码中,只能选一种;5)游程编码和二维游程编码中,只能选一种。
在本发明的屏幕图像压缩装置中,任一所述编码工具组合编码模块包含具有像素串匹配编码工具、宽像素串匹配编码工具及像素预测编码(即预测的对象是像素而不是其他编码中间数据)之一或其组合,则各该包含具有像素串匹配编码工具、宽像素串匹配编码工具及像素预测编码之一或其组合的编码工具组合编码模块包括一共享的历史像素暂存区,用以暂存已经完成编码的编码单元的像素,作为搜索匹配串或预测值时的候选像素。
优选地,在预编码时,所述编码单元的原始输入像素已经放入历史像素暂存区,且所述最优编码工具组合为有损编码,则所述的预编码模块组还包括一历史像素暂存区更新单元,用以把所述已经放入历史像素暂存区的原始输入像素替换为所述编码单元通过所述最优编码工具组合进行编码后重构的像素。
在本发明的屏幕图像压缩装置中,任一所述编码工具组合编码模块包含编码中间数据串匹配编码工具及编码中间数据预测编码(即预测的对象不是像素而是其他编码中间数据)工具之一或其组合,则各该包含编码中间数据串匹配编码工具及编码中间数据预测编码(即预测的对象不是像素而是其他编码中间数据)工具之一或其组合的编码工具组合编码模块还包含一历史中间数据暂存区,一部分编码单元和一部分解码单元。
在本发明的屏幕图像压缩装置中,任一所述编码工具组合编码模块包含像素串匹配编码工具及宽像素串匹配编码工具之一或其组合,则各该含像素串匹配编码工具及宽像素串匹配编码工具之一或其组合的编码工具组合编码模块至少还包括:历史像素暂存区单元,用以暂存已经完成编码的编码单元的像素;像素重排序映射单元,连接于所述历史像素暂存区单元,包括多个像素重排序映射子单元,用以提供多种不同排列方式的像素给一串匹配编码单元;串匹配编码单元,连接于所述像素重排序映射单元,使用像素串匹配编码单元或宽像素串匹配编码单元对具有不同排列方式的所述编码单元的像素进行编码;率-失真特性计算估计和最优排列方式选择单元,连接于所述串匹配编码单元,用以计算或估计各种排列方式的串匹配编码结果的率-失真特性并选择出最优的排列方式;本编码工具组合编码模块的其他各编码单元,连接于所述的率-失真特性计算估计和最优排列方式选择单元,用以实现本编码工具组合编码模块中所包含的其他编码工具的编码任务,并输出预编码结果。
优选地,所述各该编码工具组合编码模块的其中之一为有损编码且被选择为最优编码工具组合编码模块,且在预编码时,所述编码单元的原始输入像素已经放入历史像素暂存区,则所述的预编码模块组还包括一历史像素暂存区更新单元,用以把所述已经放入历史像素暂存区的原始输入像素替换为所述编码单元通过所述最优编码工具组合进行编码后重构的像素。
在本发明的屏幕图像压缩装置中,任一所述编码工具组合编码模块包含像素串匹配编码工具、宽像素串匹配编码工具或编码中间数据串匹配编码工具之一或其组合,则各该包含像素串匹配编码工具、宽像素串匹配编码工具或编码中间数据串匹配编码工具之一或其组合的编码工具组合编码模块还各自包含一序号差计算单元,用以决定前一个选择该包含序号差计算单元的编码工具组合编码模块为最优编码工具组合编码模块的编码单元是否需要与当前编码单元紧接着排列在一起进行所述前一个编码单元的最后一个匹配串的跨越编码单元边界的串匹配搜索和编码。
优选地,所述各该包含像素串匹配编码工具、宽像素串匹配编码工具或编码中间数据串匹配编码工具之一或其组合的编码工具组合编码模块的任何一个编码模块都还包括一个用以暂存该编码工具组合编码模块被选择为最优编码工具组合时该最优编码工具组合编码模块所产生的编码数据和结果的暂存区。所述码流暂存输出模块还包括一压缩码流数据缓存单元,用以放置所有与当前编码单元对应的最优编码工具组合所产生但未输出到压缩码流的编码单元的压缩码流数据。
在本发明的屏幕图像压缩装置中,任一所述编码工具组合编码模块包含区间编码工具,则各该包含区间编码工具的编码工具组合编码模块还包括一序号差计算单元,用以决定前一个选择该包含序号差计算单元的编码工具组合编码模块为最优编码工具组合编码模块的编码单元是否需要与当前编码单元紧接着排列在一起进行所述前一个编码单元的最后一个区间编码字节的跨越编码单元边界的区间编码。
优选地,所述各该包含区间编码工具的编码工具组合编码模块的任何一个编码模块都还包括一个用以暂存该编码工具组合编码模块被选择为最优编码工具组合时该最优编码工具组合编码模块所产生的编码数据和结果的暂存区。所述码流暂存输出模块还包括一压缩码流数据缓存单元,用以放置所有与当前编码单元对应的最优编码工具组合所产生但未输出到压缩码流的编码单元的压缩码流数据。
在本发明的屏幕图像压缩装置中,任一所述编码工具组合编码模块包含串匹配编码工具及区间编码工具,且该编码工具组合编码模块对所述编码单元先进行串匹配编码后进行区间编码,则各该编码工具组合编码模块还包括一序号差计算单元,用以决定前一个选择该包含序号差计算单元的编码工具组合编码模块为最优编码工具组合编码模块的编码单元是否需要与当前编码单元紧接着排列在一起进行所述前一个编码单元的跨越编码单元边界的串匹配搜索和编码以及区间编码,及一选择该包含序号差计算单元的编码工具组合编码模块为最优编码工具组合编码模块的编码单元的编码数据与结果暂存区,用以暂存选择该包含序号差计算单元的编码工具组合编码模块为最优编码工具组合编码模块的编码单元的编码数据与结果,以使串匹配搜索能跨越编码单元边界且区间编码能跨越匹配串边界。所述码流暂存输出模块还包括一压缩码流数据缓存单元,用以放置所有与当前编码单元对应的最优编码工具组合所产生但未输出到压缩码流的编码单元的压缩码流数据。
在本发明的屏幕图像压缩装置中,所述预编码模块组包括:编码工具组合1编码模块:包括预测编码单元、变换编码单元、量化编码单元、游程编码单元、算术编码单元;编码工具组合2编码模块:包括像素串匹配编码单元、算术编码单元;编码工具组合3编码模块:包括预测编码单元、游程编码单元、编码中间数据串匹配编码单元、算术编码单元;编码工具组合4编码模块:包括向量量化编码单元、算术编码单元;编码工具组合5编码模块:包括像素串匹配编码单元、变换编码单元、量化编码单元、游程编码单元及算术编码单元。
在本发明的屏幕图像压缩装置中,所述预编码模块组包括:编码工具组合1编码模块:包括预测编码单元、变换编码单元、量化编码单元、重构单元、游程编码单元、算术编码单元及码率控制单元;编码工具组合2编码模块:包括历史像素暂存区和历史像素暂存区更新单元、行排列方式像素重排序映射单元、列排列方式像素重排序映射单元、Hilbert排列方式像素重排序映射单元、像素串匹配编码单元、率-失真特性计算估计和最优排列方式选择单元及算术编码单元;编码工具组合3编码模块:包括预测编码单元、量化编码单元、重构单元、游程编码单元、算术编码单元及码率控制单元。
在本发明的屏幕图像压缩装置中,所述预编码模块组包括:编码工具组合1编码模块:包括预测编码单元、变换编码单元、量化编码单元、重构单元、游程编码单元、算术编码单元及码率控制单元;编码工具组合2编码模块:包括用以决定前一个选择本模块编码工具组合为最优编码工具组合的编码单元是否需要与当前编码单元紧接着排列在一起进行所述前一个编码单元的最后一个匹配串的跨越编码单元边界的串匹配搜索和编码的序号差计算单元、历史像素暂存区和历史像素暂存区更新单元、像素串匹配编码单元、算术编码单元以及选择本模块编码工具组合作为最优编码工具组合的编码单元的编码数据和结果的暂存区。
在本发明的屏幕图像压缩装置中,所述预编码模块组包括:编码工具组合1编码模块:包括预测编码单元、变换编码单元、量化编码单元、重构单元、游程编码单元、算术编码单元及码率控制单元;编码工具组合2编码模块:包括用以决定前一个选择本模块编码工具组合为最优编码工具组合的编码单元是否需要与当前编码单元紧接着排列在一起进行所述前一个编码单元的最后一个区间编码字节及其所涉及的匹配串的跨越编码单元边界的串匹配搜索和编码以及区间编码的序号差计算单元、历史像素暂存区和历史像素暂存区更新单元、像素串匹配编码单元、区间编码单元以及选择本模块编码工具组合作为最优编码工具组合的编码单元的编码数据和结果的暂存区。
本发明还提供一种屏幕图像解压装置,所述解压装置至少包括:码流编码工具组合解析模块,用于接收从一外部装置输入的压缩码流,解析出所述压缩码流数据编码时所使用的编码工具组合,选择相对应的解码工具组合并把所述码流段数据输出;解码模块组,连接于所述解析模块,包括多套解码工具组合解码模块,用于对来自所述码流编码工具组合解析模块的输入压缩码流数据,使用与其相对应的一套解码工具组合进行解码,并重构出与所述压缩码流数据相应的编码单元的像素;重构图像暂存模块,连接于所述的解码模块组,用以暂存重构的一幅或多幅图像,并在预设的时间按照图像的显示顺序,把图像输出;重构图像输出模块,连接于所述的重构图像暂存模块,用于把所述解码模块组解码与重构的图像按照图像和视频显示格式,输出到一外部装置。
在本发明的屏幕图像解压装置中,所述解码模块组包括的解码工具组合解码模块为2~8套。
在本发明的屏幕图像解压装置中,所述解码工具组合为逆变换解码、反量化解码、向量反量化解码、预测解码、像素串匹配解码、宽像素串匹配解码、编码中间数据串匹配解码、游程解码、二维游程解码、可变长解码、算术解码、区间解码12种解码工具按特定数量与特定规则的组合。
优选地,各该解码工具组合包含的解码工具为2~5种。
在本发明的屏幕图像解压装置中,任一所述解码工具组合解码模块包含像素串匹配解码工具、宽像素串匹配解码工具及像素预测解码工具之一或其组合,则各该包含具有像素串匹配解码工具、宽像素串匹配解码工具及像素预测解码工具之一或其组合的解码工具组合解码模块包括一共享的历史像素暂存区,用以暂存经过解码重构的编码单元的像素。
优选地,所述各该包含像素串匹配解码工具、宽像素串匹配解码工具及像素预测解码工具之一或其组合的解码工具组合解码模块包括一共享的历史像素暂存区更新单元,用以更新所述的历史像素暂存区。
在本发明的屏幕图像解压装置中,任一所述解码工具组合解码模块包含解码中间数据串匹配解码工具及解码中间数据预测解码工具之一或其组合,则各该包含解码中间数据串匹配解码工具及解码中间数据预测解码工具之一或其组合的解码工具组合解码模块还包含一历史中间数据暂存区和一部分编码单元。
在本发明的屏幕图像解压装置中,任一所述解码工具组合解码模块包含像素串匹配解码工具及宽像素串匹配解码工具之一或其组合,则各该含像素串匹配解码工具及宽像素串匹配解码工具之一或其组合的解码工具组合解码模块至少还包括:历史像素暂存区和历史像素暂存区更新单元,用以暂存解码重构的编码单元的像素,并在需要时对其进行更新;排列方式解析单元,用以从码流数据中解析出当前解码中编码单元在串匹配编码时采用的排列方式;串匹配解码前其他各编码工具的解码单元;像素重排序映射单元,包括多个像素重排序映射子单元,用以提供多种不同排列方式的像素给一串匹配解码单元;串匹配解码单元,使用像素串匹配解码单元或宽像素串匹配解码单元按照所述排列方式解析单元解析出的排列方式进行解码;串匹配解码后其他各编码工具的解码单元,用以完成串匹配解码后的解码工作,并输出当前解码中编码单元的重构像素。
在本发明的屏幕图像解压装置中,任一所述解码工具组合解码模块包含像素串匹配解码工具、宽像素串匹配解码工具或解码中间数据串匹配解码工具之一或其组合,则各该包含像素串匹配解码工具、宽像素串匹配解码工具或解码中间数据串匹配解码工具之一或其组合的解码工具组合解码模块还各自包含一当前编码单元重构像素累计单元,用以累计解码得到的当前编码单元重构像素的个数并判定哪些重构像素确实属于当前编码单元哪些重构像素属于后续编码单元。
优选地,各该包含像素串匹配解码工具、宽像素串匹配解码工具或解码中间数据串匹配解码工具之一或其组合的解码工具组合解码模块还各自包含一串匹配编码跨越编码单元边界的超出部分像素缓存区,用以暂存超出当前编码单元重构像素数量后的后续编码单元重构像素。
在本发明的屏幕图像解压装置中,任一所述解码工具组合解码模块包含区间解码工具,则各该包含区间解码工具的解码工具组合解码模块还包括一当前编码单元重构像素累计单元,用以累计解码得到的当前编码单元重构像素的个数并判定哪些重构像素确实属于当前编码单元哪些重构像素属于后续编码单元。
优选地,各该包含区间解码工具的解码工具组合解码模块还包括一区间编码字节跨越编码单元边界的超出部分像素缓存区,用以暂存超出当前编码单元重构像素数量后的后续编码单元重构像素。
在本发明的屏幕图像解压装置中,任一所述解码工具组合解码模块包含串匹配解码工具及区间解码工具,且该解码工具组合解码模块对所述编码单元先进行区间解码后进行串匹配解码,则各该包含串匹配解码工具及区间解码工具的解码工具组合解码模块还包括一当前编码单元重构像素累计单元,用以累计解码得到的当前编码单元重构像素的个数并判定哪些重构像素确实属于当前编码单元哪些重构像素属于后续编码单元。
优选地,各该包含串匹配解码工具及区间解码工具的解码工具组合解码模块还包括一区间编码字节与匹配串跨越编码单元边界的超出部分像素缓存区,用以暂存超出当前编码单元重构像素数量后的后续编码单元重构像素。
在本发明的屏幕图像解压装置中,所述解码模块组包括:解码工具组合1解码模块:包括算术解码单元、游程解码单元、反量化单元、逆变换单元及预测解码单元;解码工具组合2解码模块:包括算术解码单元及像素串匹配解码单元;解码工具组合3解码模块:包括算术解码单元、编码中间数据串匹配解码单元、游程解码单元及预测解码单元;解码工具组合4解码模块:包括算术解码单元、向量反量化单元;解码工具组合5解码模块:包括算术解码单元、游程解码单元、反量化单元、逆变换单元及像素串匹配解码单元。
在本发明的屏幕图像解压装置中,所述解码模块组包括:解码工具组合1解码模块:包括算术解码单元、游程解码单元、反量化单元、逆变换单元及预测解码单元;解码工具组合2解码模块:包括历史像素暂存区和历史像素暂存区更新单元、排列方式解析单元、算术解码单元、行排列方式像素重排序映射单元、列排列方式像素重排序映射单元和Hilbert排列方式像素重排序映射单元及像素串匹配解码单元;解码工具组合3解码模块:包括算术解码单元、游程解码单元、反量化单元及预测解码单元。
在本发明的屏幕图像解压装置中,所述解码模块组包括:解码工具组合1解码模块:包括算术解码单元、游程解码单元、反量化单元、逆变换单元及预测解码单元;解码工具组合2解码模块:包括历史像素暂存区和历史像素暂存区更新单元、算术解码单元、像素串匹配解码单元、当前编码单元的重构像素个数的累计单元以及匹配串跨越编码单元边界的超出部分像素缓存区。
在本发明的屏幕图像解压装置中,所述解码模块组包括:解码工具组合1解码模块:包括算术解码单元、游程解码单元、反量化单元、逆变换单元及预测解码单元;解码工具组合2解码模块:包括历史像素暂存区和历史像素暂存区更新单元、区间解码单元、像素串匹配解码单元、当前编码单元的重构像素个数的累计单元以及匹配串跨越编码单元边界的超出部分像素缓存区。
本发明还提供一种屏幕图像压缩方法,所述压缩方法至少包括以下步骤:1)预编码步骤,接收从一外部装置输入的图像像素组成的编码单元,并利用多个不同互补的编码工具组合同时对所述编码单元进行编码;2)率-失真特性计算步骤,对所述编码步骤的各套编码工具组合的编码结果分别进行率-失真特性计算;3)最优编码工具组合选择步骤,对所述率-失真特性的计算结果进行分析,然后选择出最优的编码工具组合及其对应的压缩码流数据;4)码流暂存输出步骤,暂存所述最优的编码工具组合所产生的压缩码流数据,并在特定的时间,把所述压缩码流数据输出到压缩码流;5)重复步骤,对一幅图像或一个视频序列中需要对其进行编码的所有编码单元,重复所述步骤1)~4)进行编码直至一幅图像或一个视频序列编码结束。
在本发明的屏幕图像压缩方法中,所述编码工具组合为变换编码、量化编码、向量量化编码、预测编码、像素串匹配编码、宽像素串匹配编码、编码中间数据串匹配编码、游程编码、二维游程编码、可变长编码、算术编码及区间编码12种编码工具按特定数量与特定规则的组合。
在本发明的屏幕图像压缩方法中,所述编码工具组合单元的组成必须同时满足:1)如果选取了变换编码或量化编码或向量量化编码,就不能选取精确无损的像素串匹配编码或宽像素串匹配编码,但可以选取有损的像素串匹配编码或宽像素串匹配编码,反之,如果选取了精确无损的像素串匹配编码或宽像素串匹配编码,就不能选取变换编码或量化编码或向量量化编码,但是,如果选取了有损的像素串匹配编码或宽像素串匹配编码,则仍可选取变换编码或量化编码或向量量化编码;2)从预测编码、变换编码、量化编码、向量量化编码、像素串匹配编码、宽像素串匹配编码、编码中间数据串匹配编码7种编码工具中,必须选取至少一种;3)可变长编码、算术编码、区间编码中,只能选一种,而且必须选一种;4)像素串匹配编码和编码中间数据串匹配编码中,只能选一种;5)游程编码和二维游程编码中,只能选一种。
在本发明的屏幕图像压缩方法中,所述预编码步骤中,任一编码工具组合使用了像素串匹配编码工具、宽像素串匹配编码工具或像素预测编码工具之一或其组合,则所述压缩方法还包括将已经完成编码的编码单元的像素放入历史像素暂存区的步骤。
优选地,在预编码时,所述编码单元的原始输入像素已经放入历史像素暂存区,且所述最优编码工具组合为有损编码,则所述的压缩方法还包括把所述历史像素暂存区的原始输入像素替换为通过所述最优编码工具组合编码重构的像素的步骤。
在本发明的屏幕图像压缩方法中,任一所述编码工具组合使用了编码中间数据串匹配编码工具及编码中间数据预测编码(即预测的对象不是像素而是其他编码中间数据)工具之一或其组合,则所述压缩方法还包括对已经完成编码的编码单元进行部分的编码中间数据串匹配编码或部分的编码中间数据预测编码(即预测的对象不是像素而是其他编码中间数据)后,把编码中间数据保存到历史中间数据暂存区,作为搜索匹配串或预测值时的候选中间数据的步骤,具体地,该步骤包括:
在预编码时,使用编码中间数据串匹配编码或编码中间数据预测编码的编码工具组合,没有把该编码单元的相应的中间数据放入了相应的历史中间数据暂存区,那么就需要使用最优编码工具组合产生的此编码单元的重构像素再次经过部分编码产生出中间数据并把这些中间数据放入历史中间数据暂存区;
在预编码时,使用编码中间数据串匹配编码或编码中间数据预测编码的编码工具组合,已经把该编码单元的相应的中间数据放入了相应的历史中间数据暂存区,但是最优编码工具组合是有损编码,那么就需要使用最优编码工具组合产生的此编码单元的重构像素再次经过部分编码产生出中间数据,或者如果最优编码工具组合恰好是该使用编码中间数据串匹配编码或编码中间数据预测编码的编码工具组合,也可以对该编码单元的压缩码流数据进行部分解码来产生中间数据,并用这些中间数据替换历史中间数据暂存区的该编码单元预编码时放入的中间数据;
在预编码时,使用编码中间数据串匹配编码或编码中间数据预测编码的编码工具组合,已经把该编码单元的相应的中间数据放入了相应的历史中间数据暂存区,并且最优编码工具组合是无损编码,那么就不必要使用最优编码工具组合产生的此编码单元的重构像素再次经过部分编码产生出中间数据并再次放入历史中间数据暂存区。
在本发明的屏幕图像压缩方法中,任一所述编码工具组合使用了像素串匹配编码工具及宽像素串匹配编码工具之一或其组合,则所述压缩方法还包括把已经完成编码的编码单元的像素放入历史像素暂存区,并且把所述历史像素暂存区以及当前编码图像中像素数据以整幅图像为对象的平面排列方式排列、以整幅图像为对象的套装排列方式排列、以编码单元为对象的平面排列方式排列或以编码单元为对象的套装排列方式排列的步骤。
优选地,所述历史像素暂存区以及当前编码图像中像素数据的排列方式至少包括:行扫描排列方式、列扫描排列方式、之字形扫描排列方式、希尔伯特扫描排列方式。
在本发明的屏幕图像压缩方法中,任一所述编码工具组合使用了像素串匹配编码工具及宽像素串匹配编码工具之一或其组合,则所述预编码步骤中,对所述编码单元的像素数据同时采用至少两种排列方式进行预编码,并自适应地选择出最优的排列方式作为此编码工具组合预编码的排列方式。
优选地,所述预编码步骤包括以下子步骤:1)对所述编码单元,采用多种排列方式同时进行串匹配编码;2)计算或估计各排列方式下串匹配编码的率-失真特性,选择最优的排列方式作为此预编码步骤最后采纳的排列方式;3)完成此预编码步骤的其余各项编码子步骤,并输出此预编码步骤的结果。
在本发明的屏幕图像压缩方法中,任一所述编码工具组合使用了像素串匹配编码工具、宽像素串匹配编码工具或编码中间数据串匹配编码工具之一或其组合,则所述压缩方法包括以下步骤:
步骤一,输入当前编码单元m及部分下一个编码单元m+1的像素,其中,m为当前编码单元的序号;
步骤二,对当前编码单元m,采用多套编码工具组合,同时进行预编码,包括以下步骤:
1)使用含串匹配编码工具的编码工具组合对当前编码单元m进行预编码,包括以下子步骤:
1a)计算当前编码单元m与前一个选择所述含串匹配编码工具的编码工具组合为最优组合的编码单元的序号差i;
1b)判别是否i≤I+1,若否则跳到步骤1d),否则顺序执行,其中,I为一预先设定的正整数,其值小于一整行像素涉及的编码单元的个数的10倍;
1c)i≤I时,把编码单元m-i与编码单元m尾首相接排列在一起,使用所述含串匹配编码工具的编码工具组合完成编码单元m-i的涉及到编码单元m-i最后一个匹配串的可含编码单元m的像素的全部预编码;i=I+1时,强行把编码单元m-i的最后一个匹配串限制在编码单元m-i内,使用所述含串匹配编码工具的编码工具组合完成编码单元m-i的最后一个匹配串的不含编码单元m的像素的全部预编码;
1d)使用所述含串匹配编码工具的编码工具组合对编码单元m进行可跨越编码单元m与编码单元m+1边界的预编码;
2)使用除所述含串匹配编码工具的编码工具组合之外的其余编码工具组合对当前编码单元m进行预编码;
步骤三,比较各套组合产生的率-失真特性,选择率-失真特性最优的最优编码工具组合;
步骤四,判别最优编码工具组合是否是所述含串匹配编码工具的编码工具组合,若否则跳到步骤七,否则顺序执行;
步骤五,将前一个选择所述含串匹配编码工具的编码工具组合为最优编码工具组合的编码单元m-i的压缩数据输出到压缩码流;
步骤六,将所述含串匹配编码工具的编码工具组合产生的当前编码单元m编码结果暂存,用于把当前编码单元m逐个与后续编码的编码单元尾首相接排列在一起进行涉及到编码单元m的最后一个匹配串的预编码,然后跳至步骤八;
步骤七,将当前编码单元m的最优编码工具组合产生的压缩数据输出到压缩码流;
步骤八,重复步骤一至步骤七,直至一幅图像或一个视频序列编码结束。
在本发明的屏幕图像压缩方法中,任一所述编码工具组合使用了区间编码工具,则所述压缩方法包括以下步骤:
步骤一,输入当前编码单元m及部分下一个编码单元m+1的像素,其中,m为当前编码单元的序号;
步骤二,对当前编码单元m,采用多套编码工具组合,同时进行预编码,包括以下步骤:
1)使用含区间编码工具的编码工具组合对当前编码单元m进行预编码,包括以下子步骤:
1a)计算当前编码单元m与前一个选择所述含区间编码工具的编码工具组合为最优组合的编码单元的序号差i;
1b)判别是否i≤I+1,若否则跳到步骤1d),否则顺序执行,其中,I为一预先设定的正整数,其值小于一整行像素涉及的编码单元的个数的10倍;
1c)i≤I时,把编码单元m-i与编码单元m尾首相接排列在一起,使用所述含区间编码工具的编码工具组合完成编码单元m-i的涉及到编码单元m-i最后一个区间编码字节的可含编码单元m的像素的全部预编码;i=I+1时,在编码单元m-i内强行结束编码单元m-i的区间编码,使用所述含区间编码工具的编码工具组合完成编码单元m-i的不含编码单元m的像素的全部预编码;
1d)使用所述含区间编码工具的编码工具组合对编码单元m进行可跨越编码单元m与编码单元m+1边界的预编码;
2)使用除所述含区间编码工具的编码工具组合之外的其余编码工具组合对当前编码单元m进行预编码;
步骤三,比较各套组合产生的率-失真特性,选择率-失真特性最优的最优编码工具组合;
步骤四,判别最优编码工具组合是否是所述含区间编码工具的编码工具组合,若否则跳到步骤七,否则顺序执行;
步骤五,将前一个选择所述含区间编码工具的编码工具组合为最优编码工具组合的编码单元m-i的压缩数据输出到压缩码流;
步骤六,将所述含区间编码工具的编码工具组合产生的当前编码单元m编码结果暂存,用于把当前编码单元m逐个与后续编码的编码单元尾首相接排列在一起进行涉及到编码单元m的最后一个区间编码字节的预编码,然后跳至步骤八;
步骤七,将当前编码单元m的最优编码工具组合产生的压缩数据输出到压缩码流;
步骤八,重复步骤一至步骤七,直至一幅图像或一个视频序列编码结束。
在本发明的屏幕图像压缩方法中,任一所述编码工具组合使用了像素串匹配编码工具、宽像素串匹配编码工具或编码中间数据串匹配编码工具之一或其组合、以及区间编码工具,且该编码工具组合对所述编码单元先进行串匹配编码后进行区间编码,则所述压缩方法包括以下步骤:
步骤一,输入当前编码单元m及部分下一个编码单元m+1的像素,其中,m为当前编码单元的序号;
步骤二,对当前编码单元m,采用多套编码工具组合,同时进行预编码,包括以下步骤:
1)使用含串匹配编码和区间编码工具的编码工具组合对当前编码单元m进行预编码,包括以下子步骤:
1a)计算当前编码单元m与前一个选择所述含串匹配编码和区间编码工具的编码工具组合为最优组合的编码单元的序号差i;
1b)判别是否i≤I+1,若否则跳到步骤1d),否则顺序执行,其中,I为一预先设定的正整数,其值小于一整行像素涉及的编码单元的个数的10倍;
1c)i≤I时,把编码单元m-i与编码单元m尾首相接排列在一起,使用所述含串匹配编码和区间编码工具的编码工具组合完成编码单元m-i的涉及到编码单元m-i最后多个匹配串及跨越所述多个匹配串的最后一个区间编码字节的可含编码单元m的像素的全部预编码;i=I+1时,强行把编码单元m-i的最后一个匹配串限制在编码单元m-i内并且在编码单元m-i内强行结束编码单元m-i的区间编码和输出最后一个区间编码字节,使用所述含串匹配编码和区间编码工具的编码工具组合完成编码单元m-i的不含编码单元m的像素的全部预编码;
1d)使用所述含串匹配编码和区间编码工具的编码工具组合对编码单元m进行可跨越编码单元m与编码单元m+1边界的预编码;
2)使用除所述含串匹配编码和区间编码工具的编码工具组合之外的其余编码工具组合对当前编码单元m进行预编码;
步骤三,比较各套组合产生的率-失真特性,选择率-失真特性最优的最优编码工具组合;
步骤四,判别最优编码工具组合是否是所述含串匹配编码和区间编码工具的编码工具组合,若否则跳到步骤七,否则顺序执行;
步骤五,将前一个选择所述含串匹配编码和区间编码工具的编码工具组合为最优编码工具组合的编码单元m-i的压缩数据输出到压缩码流;
步骤六,将所述含串匹配编码和区间编码工具的编码工具组合产生的当前编码单元m编码结果暂存,用于把当前编码单元m逐个与后续编码的编码单元尾首相接排列在一起进行涉及到编码单元m与后续编码单元边界部分的预编码,然后跳至步骤八;
步骤七,将当前编码单元m的最优编码工具组合产生的压缩数据输出到压缩码流;
步骤八,重复步骤一至步骤七,直至一幅图像或一个视频序列编码结束。
在本发明的屏幕图像压缩方法中,所述预编码步骤包括:预编码子步骤1:包括预测编码、变换编码、量化编码、游程编码及算术编码步骤;预编码子步骤2:包括像素串匹配编码及算术编码步骤;预编码子步骤3:包括预测编码、游程编码、编码中间数据串匹配编码及算术编码步骤;预编码子步骤4:包括向量量化编码及算术编码步骤;预编码子步骤5:包括像素串匹配编码、变换编码、量化编码、游程编码及算术编码步骤。
在本发明的屏幕图像压缩方法中,所述预编码步骤包括:预编码子步骤1:包括预测编码、变换编码、量化编码、重构、游程编码、算术编码及码率控制步骤;预编码子步骤2:包括行排列方式像素重排序映射、列排列方式像素重排序映射、Hilbert排列方式像素重排序映射、分别使用所述三种排列方式的像素串匹配编码、率-失真特性计算估计和最优排列方式选择及算术编码,并把通过编码后的编码单元像素放入历史像素暂存区,并在需要时对所述历史像素暂存区进行更新的步骤;预编码子步骤3:包括预测编码、量化编码、重构、游程编码、算术编码及码率控制步骤。
在本发明的屏幕图像压缩方法中,所述预编码步骤包括:预编码子步骤1:包括预测编码、变换编码、量化编码、重构、游程编码、算数编码及码率控制步骤;预编码子步骤2:包括对当前编码单元与前一个选择该预编码子步骤2中所使用的编码工具组合为最优编码工具组合的编码单元进行序号差计算,以确定匹配串能否跨越编码单元的边界的步骤、将当前编码单元的原始输入像素放入历史像素暂存区的步骤、像素串匹配编码步骤、算术编码步骤以及把最优工具组合组合产生的编码单元的编码数据和结果放入暂存区的步骤。所述压缩方法还包括以下步骤:如果最优编码工具组合是所述预编码子步骤1中所使用的编码工具组合,则将在预编码子步骤2中已经放入历史像素暂存区的当前编码单元的原始输入像素替换为当前编码单元通过所述最优编码工具组合进行编码后重构的像素。
在本发明的屏幕图像压缩方法中,所述预编码步骤包括:
预编码子步骤1:包括预测编码、变换编码、量化编码、重构、游程编码、算数编码及码率控制步骤;
预编码子步骤2:包括对当前编码单元与前一个选择该预编码子步骤2中所使用的编码工具组合为最优编码工具组合的编码单元进行序号差计算,以确定区间编码字节及其所涉及的匹配串能否跨越编码单元的边界的步骤、将当前编码单元的原始输入像素放入历史像素暂存区的步骤、像素串匹配编码步骤、区间编码步骤以及把最优工具组合组合产生的编码单元的编码数据和结果放入暂存区的步骤。
所述压缩方法还包括以下步骤:如果最优编码工具组合是所述预编码子步骤1中所使用的编码工具组合,则将在预编码子步骤2中已经放入历史像素暂存区的当前编码单元的原始输入像素替换为当前编码单元通过所述最优编码工具组合进行编码后重构的像素。
本发明还提供一种屏幕图像解压方法,所述解压方法至少包括以下步骤:解析步骤,接收从一外部装置输入的压缩码流,解析出所述码流段数据在压缩过程中所使用的编码工具组合,并选择一与所述编码工具组合对应的解码工具组合把所述码流段数据输出;解码步骤,采用所述解析步骤所选择的解码工具组合对所述码流段数据进行解码,并重构出与所述码流段数据相应的编码单元的像素;重构图像暂存输出步骤,对压缩码流所含的所有编码单元,重复所述解析步骤和解码步骤,重构所述解码步骤输入的图像像素组成的编码单元的像素并暂存重构后的一幅或多幅图像,并按照图像和视频显示格式输出重构后的整幅图像或整个视频序列。
在本发明的屏幕图像解压方法中,所述解码工具组合由逆变换解码、反量化解码、向量反量化解码、预测解码、像素串匹配解码、宽像素串匹配解码、编码中间数据串匹配解码、游程解码、二维游程解码、可变长解码、算术解码、区间解码12种解码工具按照特定的数量与特定的规则组成。
在本发明的屏幕图像解压方法中,任一所述解码工具组合解码模块使用了像素串匹配解码工具、宽像素串匹配解码工具及像素预测解码之一或其组合,则所述解码步骤还包括把经过解码重构的编码单元的像素放入历史像素暂存区的步骤。
在本发明的屏幕图像解压方法中,任一所述解码工具组合使用了解码中间数据预测解码或解码中间数据串匹配解码之一或其组合,则所述解码步骤还包括把所述编码单元重构像素经过部分编码后的中间数据放入历史中间数据暂存区的步骤。
在本发明的屏幕图像解压方法中,任一所述解码工具组合用了像素串匹配解码工具及宽像素串匹配解码工具之一或其组合,则所述解码步骤包括以下子步骤:1)从码流数据中解析出所述编码单元的串匹配编码采用了哪种排列方式;2)完成此解码步骤进行串匹配解码前所需要完成的各项解码子步骤;3)选择采用与串匹配编码排列方式对应的串匹配解码器对所述编码单元的压缩码流段数据进行串匹配解码;4)完成此解码步骤其余各项解码子步骤,并输出所述编码单元的重构像素。
在本发明的屏幕图像解压方法中,任一所述解码工具组合使用了像素串匹配解码工具、宽像素串匹配解码工具或解码中间数据串匹配解码工具之一或其组合,则所述解码步骤对编码单元的压缩码流数据段进行解码时,还包括通过累计解码得到的重构像素的个数以判断重构像素是属于当前编码单元的像素还是属于下一采用该同样解码工具组合进行解码的编码单元的像素的步骤以及把属于下一编码单元的部分像素放入一匹配串跨越编码单元边界的超出部分像素缓存区的步骤。
在本发明的屏幕图像解压方法中,任一所述解码工具组合使用了区间解码工具,则所述解码步骤对编码单元的压缩码流数据段进行解码时,还包括通过累计解码得到的重构像素的个数以判断重构像素是属于当前编码单元的像素还是属于下一采用该同样解码工具组合进行解码的编码单元的像素的步骤以及把属于下一编码单元的部分像素放入一区间编码字节跨越编码单元边界的超出部分像素缓存区的步骤。
在本发明的屏幕图像解压方法中,任一所述解码工具组合使用了像素串匹配解码工具、宽像素串匹配解码工具或解码中间数据串匹配解码工具之一或其组合、以及区间解码工具,且该解码工具组合对所述编码单元先进行区间解码后进行串匹配解码,则所述解码步骤对编码单元的压缩码流数据段进行解码时,还包括通过累计解码得到的重构像素的个数以判断重构像素是属于当前编码单元的像素还是属于下一采用该同样解码工具组合进行解码的编码单元的像素的步骤以及把属于下一编码单元的部分像素放入一区间编码字节及匹配串跨越编码单元边界的超出部分像素缓存区的步骤。
在本发明的屏幕图像解压方法中,所述解码步骤包括:解码子步骤1:包括算术解码、游程解码、反量化、逆变换及预测解码步骤;解码子步骤2:包括算术解码及像素串匹配解码步骤;解码子步骤3:包括算术解码、编码中间数据串匹配解码、游程解码及预测解码步骤;解码子步骤4:包括算术解码及向量反量化步骤;解码子步骤5:包括算术解码、游程解码、反量化、逆变换及像素串匹配解码步骤。
在本发明的屏幕图像解压方法中,所述解码步骤包括:解码子步骤1:包括算术解码、游程解码、反量化、逆变换及预测解码步骤;解码子步骤2:包括排列方式解析、算术解码、行排列方式像素重排序映射、列排列方式像素重排序映射和Hilbert排列方式像素重排序映射及分别使用所述三种排列方式的像素串匹配解码,并把通过解码重构像素放入历史像素暂存区,并在需要时对历史像素暂存区进行更新的步骤;解码子步骤3:包括算术解码、游程解码、反量化及预测解码步骤。
在本发明的屏幕图像解压方法中,所述解码步骤包括:解码子步骤1:包括算术解码、游程解码、反量化、逆变换及预测解码步骤;解码子步骤2:包括把编码单元的重构像素放入到这个历史像素暂存区的步骤、算术解码步骤、像素串匹配解码步骤、累计当前编码单元的重构像素个数的步骤以及把匹配串跨越编码单元边界的超出部分像素放入像素缓存区的步骤。
在本发明的屏幕图像解压方法中,所述解码步骤包括:解码子步骤1:包括算术解码、游程解码、反量化、逆变换及预测解码步骤;解码子步骤2:包括把编码单元的重构像素放入到这个历史像素暂存区的步骤、区间解码步骤、像素串匹配解码步骤、累计当前编码单元的重构像素个数的步骤以及把区间编码字节及其所涉及的匹配串跨越编码单元边界的超出部分像素放入像素缓存区的步骤。
如上所述,本发明的屏幕图像压缩装置及压缩方法具有的有益效果为:
1)本发明使用若干套互补的编码工具组合,并且以具有一定像素的编码单元为编码单位,对同一编码单元,同时使用多套编码工具组合进行预编码,然后选择其中率-失真特性最好的组合对此编码单元进行压缩,然后通过分析选择与其相对应的解码工具组合对其进行解码并进行图像重构,屏幕图像的压缩效果比现有技术有显著的提高。
2)本发明在使用像素串匹配编码对编码单元进行数据压缩时,同时采用2~4种不同的排列方式进行预编码,最后采用其中一种最佳的排列方式,大大的提高了压缩效果。
3)本发明仅存储一种排列方式的像素串匹配搜索空间,其他排列方式则是通过读取像素时的地址映射来实现。不同的地址映射实现不同的“虚拟”排列方式,对降低编码器和解码器的成本有显著效果。
4)本发明提出了若干新的技术手段,使串匹配搜索空间包括了最近已经完成编码的10~100000个连续编码单元的像素或者从这些像素产生的编码中间数据。
5)本发明大大提高了以编码单元为单位使用像素串匹配编码、宽像素串匹配编码、编码中间数据串匹配编码的压缩效果。
6)本发明提出了一种新的可跨CU边界进行区间编码的方法,产生的一个码流段可以含非整数个编码单元的区间编码结果,与非区间编码产生的码流段混合放置到码流中,解决了遇到的若干问题,特别是不浪费任何比特,从而显著提高了编码效果。
附图说明
图1显示为本发明屏幕图像压缩装置的基本结构框图。
图2显示为本发明屏幕图像压缩装置附加历史像素暂存区的结构框图。
图3显示为本发明屏幕图像压缩装置附加历史中间数据暂存区的结构框图。
图4显示为本发明屏幕图像压缩装置附加CU级别的自适应最优排列方式的结构框图。
图5显示为本发明屏幕图像压缩装置附加匹配串跨越CU边界的结构框图。
图6显示为本发明屏幕图像压缩装置附加区间编码跨越CU边界的结构框图。
图7显示为本发明屏幕图像压缩装置附加匹配串跨越CU边界,区间编码跨越匹配串边界的结构框图。
图8显示为本发明屏幕图像压缩装置采用5套编码工具组合的结构框图。
图9显示为本发明屏幕图像压缩装置采用3套编码工具组合和3种像素排列方式的结构框图。
图10显示为本发明屏幕图像压缩装置附加像素串匹配编码跨越CU边界的使用2套编码工具组合的具体实施例的结构框图。
图11显示为本发明屏幕图像解压装置的基本结构框图。
图12显示为本发明屏幕图像解压装置附加历史像素暂存区的结构框图。
图13显示为本发明屏幕图像解压装置附加历史中间数据暂存区的结构框图。
图14显示为本发明屏幕图像解压装置附加CU级别的自适应最优排列方式的结构框图。
图15显示为本发明屏幕图像解压装置附加匹配串跨越CU边界的结构框图。
图16显示为本发明屏幕图像解压装置附加区间解码跨越CU边界的结构框图。
图17显示为本发明屏幕图像解压装置附加匹配串跨越CU边界,区间解码跨越匹配串边界的结构框图。
图18显示为本发明屏幕图像解压装置采用5套解码工具组合的结构框图。
图19显示为本发明屏幕图像解压装置采用3套解码工具组合和3种像素排列方式的结构框图。
图20显示为本发明屏幕图像解压装置附加像素串匹配解码跨越CU边界的使用2套解码工具组合的具体实施例的结构框图。
图21显示为本发明屏幕图像压缩方法的基本流程图。
图22显示为本发明屏幕图像压缩方法附加历史像素暂存区的流程图。
图23显示为本发明屏幕图像压缩方法附加历史中间数据暂存区的流程图。
图24显示为本发明屏幕图像压缩方法附加CU级别的自适应最优排列方式的流程图。
图25显示为本发明屏幕图像压缩方法附加匹配串跨越CU边界的流程图。
图26显示为本发明屏幕图像压缩方法附加区间编码跨越CU边界的流程图。
图27显示为本发明屏幕图像压缩方法附加匹配串跨越CU边界,区间编码跨越匹配串边界的流程图。
图28显示为本发明屏幕图像压缩方法采用5套编码工具组合的流程图。
图29a显示为本发明屏幕图像压缩方法采用3套编码工具组合和3种像素排列方式的流程图。
图29b显示为行(水平)排列方式的像素顺序,以箭头方向表示。
图29c显示为列(垂直)排列方式的像素顺序,以箭头方向表示。
图29d显示为Hilbert排列方式的像素顺序,以箭头方向表示。
图30a显示为匹配串可跨越CU边界的使用2套编码工具组合的压缩方法具体实施例的流程图。
图30b显示为连续两个CU(CU#n和CU#n+1)的编码流程和输出压缩码流数据(码流段)情况。
图30c显示为码流的组成例:组合1和组合2产生的码流段混合放置在码流中。
图31显示为本发明屏幕图像解压方法的基本流程图。
图32显示为本发明屏幕图像解压方法附加历史像素暂存区的流程图。
图33显示为本发明屏幕图像解压方法附加历史中间数据暂存区的流程图。
图34显示为本发明屏幕图像解压方法附加CU级别的自适应最优排列方式的流程图。
图35显示为本发明屏幕图像解压方法附加匹配串跨越CU边界的流程图。
图36显示为本发明屏幕图像解压方法附加区间解码跨越CU边界的流程图。
图37显示为本发明屏幕图像解压方法附加匹配串跨越CU边界,区间解码跨越匹配串边界的流程图。
图38显示为本发明屏幕图像解压方法采用5套解码工具组合的流程图。
图39显示为本发明屏幕图像解压方法采用3套解码工具组合和3种像素排列方式的流程图。
图40显示为本发明屏幕图像解压方法附加像素串匹配解码跨越CU边界的使用2套解码工具组合的具体实施例的流程图。
图41a显示为双跨越边界的码流的组成例:组合2的码流段含整数个区间编码输出字节但可能非整数个匹配串。
图41b显示为选择组合2为最优组合的图41a中5个CU(#n+1、#n+3、#n+4、#n+9、#n+10)的码流段的构成
图42显示为本发明宽像素的若干例子结构图。
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭示的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在不背离本发明的精神下进行各种修饰或改变。
本实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
请参阅图1~图10,如图所示,本发明提供一种屏幕图像压缩装置,所述压缩装置至少包括:
预编码模块组,包括多套互补的编码工具组合编码模块,用于接收从一外部装置输入的图像像素组成的编码单元并分别独立地对其进行编码,其中,所述编码单元为以N1×N2像素的编码单元(Coding Unit简称CU,水平即行方向宽度为N1像素而垂直即列方向高度为N2像素,通常N1=N2=N);
各套组合率-失真特性计算模块,连接于所述预编码模块组,用于对所述各编码工具组合编码模块的编码结果进行率-失真特性计算;
最优编码工具组合选择模块,连接于所述各套组合率-失真特性计算模块,用于对所述率-失真特性计算结果进行分析,并选择出最优编码工具组合编码模块及其对应的压缩码流数据;
码流暂存输出模块,连接于所述最优编码工具组合选择模块,用于暂存所述最优编码工具组合编码模块所产生的压缩码流数据,并在特定的时间,把所述的压缩码流数据输出到压缩码流。
在本实施例中,所述预编码模块组包括的编码工具组合编码模块为2~8个。所述编码工具组合为变换编码、量化编码、向量量化编码、预测编码、像素串匹配编码、宽像素串匹配编码、编码中间数据串匹配编码、游程编码、二维游程编码、可变长编码、算术编码及区间编码12种编码工具按特定数量与特定规则的组合。各该编码工具组合包含的编码工具为2~5种。所述编码工具组合的组成规则必须同时满足:
1)如果选取了变换编码或量化编码或向量量化编码,就不能选取精确无损的像素串匹配编码或宽像素串匹配编码,但可以选取有损的像素串匹配编码或宽像素串匹配编码,反之,如果选取了精确无损的像素串匹配编码或宽像素串匹配编码,就不能选取变换编码或量化编码或向量量化编码,但是,如果选取了有损的像素串匹配编码或宽像素串匹配编码,则仍可选取变换编码或量化编码或向量量化编码;
2)从预测编码、变换编码、量化编码、向量量化编码、像素串匹配编码、宽像素串匹配编码、编码中间数据串匹配编码7种编码工具中,必须选取至少一种;
3)可变长编码、算术编码、区间编码中,只能选一种,而且必须选一种;
4)像素串匹配编码和编码中间数据串匹配编码中,只能选一种;
5)游程编码和二维游程编码中,只能选一种。
在具体的实施过程中,对计算机屏幕图像及其组成的视频序列,采用若干套(一般2~8套)编码工具组合,以CU为编码单位同时进行预编码,从这若干套组合的预编码中,根据最优率-失真(RD)特性,选择一套组合作为最优编码工具组合,并把其产生的编码结果放入压缩码流中。每套编码工具组合由下列12种编码工具中的若干种(一般2~5种)高效无缝地结合而成:变换编码、量化编码、向量量化编码、预测编码、像素串匹配编码、宽像素串匹配编码、编码中间数据串匹配编码、游程编码、二维游程编码、可变长编码、算术编码、区间编码。从这12种编码工具中选取若干种编码工具形成某套组合时,并不是随意选取,而是有下列选取限制:
1)如果选取了变换编码或量化编码或向量量化编码,就不能选取精确无损的像素串匹配编码或宽像素串匹配编码(但可以选取有损的像素串匹配编码或宽像素串匹配编码),反之亦然。
2)从预测编码、变换编码、量化编码、向量量化编码、像素串匹配编码、宽像素串匹配编码、编码中间数据串匹配编码7种编码工具中,必须选取至少一种。
3)可变长编码、算术编码、区间编码中,只能选一种,而且必须选一种。
4)像素串匹配编码和编码中间数据串匹配编码中,只能选一种。
5)游程编码和二维游程编码中,只能选一种。
在以上限制下选取的每套组合,对某种特性的图像区域或部分有非常有效的压缩效果,而对另外的图像区域或部分则可能压缩效果不佳。用多套互补的组合同时对一幅图像进行编码,就可以全面地在整体上达到很好的压缩效果。所述的编码装置由下列模块组成:
1、编码工具组合1编码模块、编码工具组合2编码模块、.......、编码工具组合K编码模块。这些模块中的每一个,都使用一套特定的编码工具组合,对输入图像或序列的一个CU进行预编码。每套特定的编码工具组合,都由前述的12种编码工具中的若干种(一般2~5种)高效无缝地结合而成。这些模块的输出与各套组合RD特性计算模块的输入相连,把编码结果和重构结果(如果编码是有损编码)送往各套组合RD特性计算模块。
2、各套组合RD特性计算模块。计算各套组合的预编码结果的RD特性。如果编码是无损编码,那么失真(D)为零,RD特性就是比特率(R)特性,也就是压缩码流有多少比特。如果预编码是有损编码,那么此模块从原始输入CU和重构结果计算出失真,RD特性就是兼顾失真和比特率的一个综合特性。此模块分别计算出各套组合的RD特性后,输出到最优编码工具组合选择模块。
3、最优编码工具组合选择模块。根据各套组合的预编码结果的RD特性,选择一套最优的编码工具组合,作为对此CU进行正式编码的编码工具组合。
4、码流暂存输出模块。暂存此CU产生的压缩码流数据,并在适当的时候,按照压缩码流的规格,把此CU的压缩码流数据输出到压缩码流。
根据以上实施例所述,所述编码工具组合可为:
组合A:预测编码+变换编码+量化编码+游程编码+可变长编码;
组合B:变换编码+预测编码+量化编码+游程编码+可变长编码;
组合C:像素串匹配编码+可变长编码;
组合D:宽像素串匹配编码+可变长编码;
组合E:游程编码+编码中间数据串匹配编码+可变长编码;
组合F:二维游程编码+编码中间数据串匹配编码+可变长编码;
组合G:预测编码+游程编码+编码中间数据串匹配编码+可变长编码;
组合H:预测编码+量化编码+游程编码+算术编码;
组合I:预测编码+量化编码+算术编码;
组合J:预测编码+向量量化编码+游程编码+算术编码;
组合K:预测编码+向量量化编码+算术编码;
组合L:向量量化编码+游程编码+算术编码;
组合M:向量量化编码+算术编码;
组合N:预测编码+变换编码+量化编码+游程编码+编码中间数据串匹配编码+区间编码;
组合O:变换编码+预测编码+量化编码+游程编码+编码中间数据串匹配编码+区间编码;
组合P:预测编码+变换编码+量化编码+编码中间数据串匹配编码+区间编码;
组合Q:变换编码+预测编码+量化编码+编码中间数据串匹配编码+区间编码;
组合R:预测编码+变换编码+编码中间数据串匹配编码+区间编码;
组合S:变换编码+预测编码+编码中间数据串匹配编码+区间编码;
组合T:预测编码+游程编码+算术编码;
组合U:预测编码+算术编码;
组合V:像素串匹配编码(可有损)+变换编码+量化编码+游程编码+算术编码;
组合W:像素串匹配编码(可有损)+变换编码+游程编码+算术编码;
组合X:像素串匹配编码(可有损)+量化编码+游程编码+算术编码;
组合Y:像素串匹配编码(可有损)+游程编码+算术编码。
以上这些组合都各有特点,每套组合都对具有某种特定性质的图像可以达到比较好的压缩效果。有些组合在组成部分上类似或相近,但计算复杂度不同,因而压缩率也不同。压缩率较大的组合,所用编码工具比较多的组合,一般计算复杂度也较高,实现成本也较大。对可变长编码、算术编码、区间编码这三种熵编码工具,用到其中一种的地方,一般也能用另外两种,但具有不同的计算复杂度和压缩效果。在某项应用中,究竟如何来调配出几套组合,并使之具有最佳的压缩效果,又有可接受的计算复杂度,则需要通过一系列的实验和测试来确定。
由多套所述编码工具组合再进一步搭配结合而成的完整的编码模块组的构成可为:
一种有效的完整的编码模块组由7套编码工具组合构成:组合A、C、E、F、G、H、L;
另一种有效的完整的编码模块组由8套编码工具组合构成:组合A、B、C、E、F、G、H、L;
另一种有效的完整的编码模块组由5套编码工具组合构成:组合A、C、E、F、G;
另一种有效的完整的编码模块组由5套编码工具组合构成:组合B、C、E、F、G;
另一种有效的完整的编码模块组由6套编码工具组合构成:组合A、C、D、E、F、G;
另一种有效的完整的编码模块组由5套编码工具组合构成:组合A、D、E、F、G;
另一种有效的完整的编码模块组由8套编码工具组合构成:组合A、B、C、E、F、G、I、L;
另一种有效的完整的编码模块组由8套编码工具组合构成:组合A、B、C、E、F、G、H、J;
另一种有效的完整的编码模块组由8套编码工具组合构成:组合A、B、C、E、F、G、H、K;
另一种有效的完整的编码模块组由8套编码工具组合构成:组合A、B、C、E、F、G、H、M;
另一种有效的完整的编码模块组由7套编码工具组合构成:组合A、B、C、E、G、H、M;
另一种有效的完整的编码模块组由6套编码工具组合构成:组合A、B、C、G、H、M;
另一种有效的完整的编码模块组由5套编码工具组合构成:组合A、C、G、H、M;
另一种有效的完整的编码模块组由4套编码工具组合构成:组合A、C、G、M;
另一种有效的完整的编码模块组由3套编码工具组合构成:组合A、C、M;
另一种有效的完整的编码模块组由3套编码工具组合构成:组合A、C、G;
另一种有效的完整的编码模块组由2套编码工具组合构成:组合A、C;
另一种有效的完整的编码模块组由6套编码工具组合构成:组合A、C、E、F、G、N;
另一种有效的完整的编码模块组由6套编码工具组合构成:组合A、C、E、F、G、O;
另一种有效的完整的编码模块组由6套编码工具组合构成:组合A、C、E、F、G、P;
另一种有效的完整的编码模块组由6套编码工具组合构成:组合A、C、E、F、G、Q;
另一种有效的完整的编码模块组由6套编码工具组合构成:组合A、C、E、F、G、R;
另一种有效的完整的编码模块组由6套编码工具组合构成:组合A、C、E、F、G、S;
另一种有效的完整的编码模块组由6套编码工具组合构成:组合A、C、E、F、G、T;
另一种有效的完整的编码模块组由6套编码工具组合构成:组合A、C、E、F、G、U;
另一种有效的完整的编码模块组由5套编码工具组合构成:组合A、C、E、G、V;
另一种有效的完整的编码模块组由5套编码工具组合构成:组合A、C、E、G、W;
另一种有效的完整的编码模块组由5套编码工具组合构成:组合A、C、E、G、X;
另一种有效的完整的编码模块组由5套编码工具组合构成:组合A、C、E、G、Y。
图2显示为本发明屏幕图像压缩装置附加历史像素暂存区的结构框图。如图所示,在本实施例中,任一所述编码工具组合编码模块包含具有像素串匹配编码工具、宽像素串匹配编码工具及像素预测编码之一或其组合,则各该包含具有像素串匹配编码工具、宽像素串匹配编码工具及像素预测编码之一或其组合的编码工具组合编码模块包括一共享的历史像素暂存区,用以暂存已经完成编码的编码单元的像素,作为搜索匹配串或预测值时的候选像素。其中,在预编码时,所述编码单元的原始输入像素已经放入历史像素暂存区,且所述最优编码工具组合为有损编码,则所述的预编码模块组还包括一历史像素暂存区更新单元,用以把所述已经放入历史像素暂存区的原始输入像素替换为所述编码单元通过所述最优编码工具组合进行编码后重构的像素。
在具体的实施过程中,所述压缩装置由下列模块组成:
1、编码工具组合1编码模块、编码工具组合2编码模块、.......、编码工具组合K编码模块。这些模块中的每一个,都使用一套特定的编码工具组合,对输入图像或视频序列的一个CU进行预编码。每套特定的编码工具组合,都由前述的12种编码工具中的若干种(一般2~5种)高效无缝地结合而成。这些模块的输出与各套组合RD特性计算模块的输入相连,把编码结果和重构结果(如果编码是有损编码)送往各套组合RD特性计算模块。这K个模块中,至少有一个模块的编码工具组合使用了像素串匹配编码、宽像素串匹配编码或像素预测编码。因此这个模块中含有历史像素暂存区和一个历史像素暂存区更新单元。不管最优组合是内含历史像素暂存区的这套组合,还是其他任何组合,都需要将最优组合产生的此CU的重构像素放入历史像素暂存区。如果在预编码时,此CU的原始输入像素已经放入历史像素暂存区,并且最优组合是有损编码,则需要用此CU的重构像素来替换(即更新)已经放入历史像素暂存区的原始输入像素。如果有多套编码工具组合使用了像素串匹配编码、宽像素串匹配编码或像素预测编码从而都需要历史像素暂存区,这多套编码工具组合可以共享同一个历史像素暂存区。因此,整个编码装置中可以只有一个历史像素暂存区,历史像素暂存区更新单元也仅需要更新这一个历史像素暂存区。
2、各套组合RD特性计算模块。计算各套组合的预编码结果的RD特性。如果编码是无损编码,那么失真(D)为零,RD特性就是比特率(R)特性,也就是压缩码流有多少比特。如果预编码是有损编码,那么此模块从原始输入CU和重构结果计算出失真,RD特性就是兼顾失真和比特率的一个综合特性。此模块分别计算出各套组合的RD特性后,输出到最优编码工具组合选择模块。
3、最优编码工具组合选择模块。根据各套组合的预编码结果的RD特性,选择一套最优的编码工具组合,作为对此CU进行正式编码的编码工具组合。
4、码流暂存输出模块。暂存此CU产生的压缩码流数据,并在适当的时候,按照压缩码流的规格,把此CU的压缩码流数据输出到压缩码流。
图3显示为本发明屏幕图像压缩装置附加历史中间数据暂存区的结构框图。如图所示,在本实施例中,任一所述编码工具组合编码模块包含编码中间数据串匹配编码工具及编码中间数据预测编码(即预测的对象不是像素而是其他编码中间数据)工具之一或其组合,则各该包含编码中间数据串匹配编码工具及编码中间数据预测编码(即预测的对象不是像素而是其他编码中间数据)工具之一或其组合的编码工具组合编码模块还包含一历史中间数据暂存区,一部分编码单元和一部分解码单元。
在具体的实施过程中,所述压缩装置由下列模块组成:
1、编码工具组合1编码模块、编码工具组合2编码模块、.......、编码工具组合K编码模块。这些模块中的每一个,都使用一套特定的编码工具组合,对输入图像或序列的一个CU进行预编码。每套特定的编码工具组合,都由前述的12种编码工具中的若干种(一般2~5种)高效无缝地结合而成。这些模块的输出与各套组合RD特性计算模块的输入相连,把编码结果和重构结果(如果编码是有损编码)送往各套组合RD特性计算模块。这K个模块中,至少有一个模块的编码工具组合使用了编码中间数据串匹配编码或编码中间数据预测编码(即预测的对象不是像素而是其他编码中间数据)。因此这个模块中含有历史中间数据暂存区,部分编码单元和部分解码单元。这些部分编码单元和部分解码单元除了用于预编码之外,另一个用途就是在各套组合的预编码和选择最优编码工具组合完成之后,如果选择的最优组合是有损编码,则需要对此CU的重构像素再次进行部分编码以产生出此CU的编码中间数据,并把此CU的重构像素产生的编码中间数据添加到历史中间数据暂存区或者替换预编码时已经放入历史中间数据暂存区的此CU的原始输入像素产生的编码中间数据。如果选择的最优组合是有损编码,并且最优组合的编码模块恰好是这个含有历史中间数据暂存区的模块本身,那么也可以对此CU的压缩码流进行部分解码来产生所需要的中间数据,或者对此CU的其他编码单元或其他解码单元中的其他编码中间数据进行部分编码或部分解码来产生所需要的中间数据。如果有多套编码工具组合使用了编码中间数据串匹配编码或编码中间数据预测编码(即预测的对象不是像素而是其他编码中间数据),这些编码工具组合的编码模块都分别有自己专用的历史中间数据暂存区。
2、各套组合RD特性计算模块。计算各套组合的预编码结果的RD特性。如果编码是无损编码,那么失真(D)为零,RD特性就是比特率(R)特性,也就是压缩码流有多少比特。如果预编码是有损编码,那么此模块从原始输入CU和重构结果计算出失真,RD特性就是兼顾失真和比特率的一个综合特性。此模块分别计算出各套组合的RD特性后,输出到最优编码工具组合选择模块。
3、最优编码工具组合选择模块。根据各套组合的预编码结果的RD特性,选择一套最优的编码工具组合,作为对此CU进行正式编码的编码工具组合。
4、码流暂存输出模块。暂存此CU产生的压缩码流数据,并在适当的时候,按照压缩码流的规格,把此CU的压缩码流数据输出到压缩码流。
图4显示为本发明屏幕图像压缩装置附加CU级别的自适应最优排列方式的结构框图。如图所示,在本实施例中,任一所述编码工具组合编码模块包含像素串匹配编码工具及宽像素串匹配编码工具之一或其组合,则各该含像素串匹配编码工具及宽像素串匹配编码工具之一或其组合的编码工具组合编码模块至少还包括:
历史像素暂存区单元,用以暂存已经完成编码的编码单元的像素;
像素重排序映射单元,连接于所述历史像素暂存区单元,包括多个像素重排序映射子单元,用以提供多种不同排列方式的像素给一串匹配编码单元;
串匹配编码单元,连接于所述像素重排序映射单元,使用像素串匹配编码单元或宽像素串匹配编码单元对具有不同排列方式的所述编码单元的像素进行编码;
率-失真特性计算估计和最优排列方式选择单元,连接于所述串匹配编码单元,用以计算或估计各种排列方式的串匹配编码结果的率-失真特性并选择出最优的排列方式;
本编码工具组合编码模块的其他各编码单元,连接于所述的率-失真特性计算估计和最优排列方式选择单元,用以实现本编码工具组合编码模块中所包含的其他编码工具的编码任务,并输出预编码结果。
若所述各该编码工具组合编码模块的其中之一为有损编码且被选择为最优编码工具组合编码模块,且在预编码时,所述编码单元的原始输入像素已经放入历史像素暂存区,则所述的预编码模块组还包括一历史像素暂存区更新单元,用以把所述已经放入历史像素暂存区的原始输入像素替换为所述编码单元通过所述最优编码工具组合进行编码后重构的像素。
在具体的实施过程中,所述预编码模块组由下列单元组成:
1、历史像素暂存区和历史像素暂存区更新单元。不管此CU的编码最优组合是内含历史像素暂存区的本套组合,还是其他任何组合,都需要将最优组合产生的此CU的重构像素放入历史像素暂存区。如果在预编码时,此CU的原始输入像素已经放入历史像素暂存区,并且最优组合是有损编码,则需要用此CU的重构像素来替换(即更新)已经放入历史像素暂存区的原始输入像素。
2、排列方式1像素重排序映射单元、排列方式2像素重排序映射单元、.......、排列方式J像素重排序映射单元。历史像素暂存区中像素和当前编码CU像素的不同排列方式所涉及到的像素本身并没有不同的数值,所不同的只是像素排序的一维线性序号,即读取像素时的一维线性地址。对应于某种像素排列方式的像素的一维线性地址称为该排列方式的虚拟地址,简称虚拟地址,以区别于像素存放在历史像素暂存区中或当前编码CU像素的实际物理地址。所以,不同的像素排列方式实质上就是从物理地址到虚拟地址的不同的映射。这J个映射单元(2≤J≤4),就是实现了J种不同的地址映射,提供J种不同的排列方式的像素给像素串匹配编码单元或宽像素串匹配编码单元。
3、像素串匹配编码单元或宽像素串匹配编码单元(通称为串匹配编码单元)。对具有不同排列方式的此CU的像素进行像素串匹配编码或宽像素串匹配编码。此单元可以使用同一组逻辑电路或同一个中央处理器(CPU)逐个进行不同排列方式的串匹配编码,也可以使用多组逻辑电路或多个(或多核)中央处理器并行进行多种排列方式的串匹配编码。
4、RD特性计算估计和最优排列方式选择单元。计算或估计各种排列方式的串匹配编码结果的RD特性,选择最优的排列方式作为此CU此组合预编码最后采纳的排列方式。
5、本套编码工具组合的编码模块的其他各编码单元。这些单元实现本套编码工具组合中使用的其他编码工具的功能,完成本编码模块的其他各项预编码任务,并输出预编码结果。
图5显示为本发明屏幕图像压缩装置附加匹配串跨越CU边界的结构框图。如图所示,在本实施例中,任一所述编码工具组合编码模块包含像素串匹配编码工具、宽像素串匹配编码工具或编码中间数据串匹配编码工具之一或其组合,则各该包含像素串匹配编码工具、宽像素串匹配编码工具或编码中间数据串匹配编码工具之一或其组合的编码工具组合编码模块还各自包含一序号差计算单元,用以决定前一个选择该包含序号差计算单元的编码工具组合编码模块为最优编码工具组合编码模块的编码单元是否需要与当前编码单元紧接着排列在一起进行所述前一个编码单元的最后一个匹配串的跨越编码单元边界的串匹配搜索和编码。所述各该包含像素串匹配编码工具、宽像素串匹配编码工具或编码中间数据串匹配编码工具之一或其组合的编码工具组合编码模块的任何一个编码模块都还包括一个用以暂存该编码工具组合编码模块被选择为最优编码工具组合时该最优编码工具组合编码模块所产生的编码数据和结果的暂存区。所述码流暂存输出模块还包括一压缩码流数据缓存单元,用以放置所有与当前编码单元对应的最优编码工具组合所产生但未输出到压缩码流的编码单元的压缩码流数据。
在具体的实施过程中,所述的压缩装置由下列模块组成:
1、K个编码模块,分别使用K套编码工具组合对输入图像或视频序列的一个CU进行预编码。其中至少有一个编码模块的编码工具组合(称之为组合k)中含串匹配编码工具。这个模块中,除了完成各项编码任务所需要的单元外,还有一个当前编码CU与前一个选择组合k为最优组合的CU的序号差计算单元。这个序号差用来决定前一个选择组合k为最优组合的CU是否需要与当前编码CU紧接着排列在一起(尾首相接)进行前一个选择组合k为最优组合的CU的最后一个匹配串的跨越CU边界的串匹配搜索和编码。这个模块中,还有一个选择组合k为最优组合的CU的编码数据和结果的暂存区。对一个选择组合k为最优组合的CU来说,因为其最后一个匹配串可能跨越CU边界,所以这个CU的最终编码结果,在完全确定下一个选择组合k为最优组合的CU之前,是未定的。因此需要把这个CU的编码数据和结果暂存起来,用于把这个CU逐个与后续编码CU紧接着排列在一起(尾首相接)进行涉及到这个CU的最后一个匹配串的预编码。在确定了下一个选择组合k为最优组合的CU之后,这个CU的最终编码结果和压缩码流数据也就完全确定了。这时,这个暂存区就可以被清空并且把新的选择组合k为最优组合的CU的编码数据和结果放入这个暂存区。
2、各套组合RD特性计算模块。计算各套组合的预编码结果的RD特性。如果编码是无损编码,那么失真(D)为零,RD特性就是比特率(R)特性,也就是压缩码流有多少比特。如果预编码是有损编码,那么此模块从原始输入CU和重构结果计算出失真,RD特性就是兼顾失真和比特率的一个综合特性。此模块分别计算出各套组合的RD特性后,输出到最优编码工具组合选择模块。
3、最优编码工具组合选择模块。根据各套组合的预编码结果的RD特性,选择一套最优的编码工具组合,作为对此CU进行正式编码的编码工具组合。
4、码流暂存输出模块。暂存此CU产生的压缩码流数据,并在适当的时候,按照压缩码流的规格,把此CU的压缩码流数据输出到压缩码流。在各个CU的压缩码流数据是按照CU的序号依次输出到压缩码流的场合,如果某个CU选择组合k为最优组合并且其最后一个匹配串可能跨越CU边界,那么这个CU的最终编码结果和压缩码流数据,在完全确定下一个选择组合k为最优组合的CU之前,是未定的。因此,这个CU的压缩码流数据,在完全确定下一个选择组合k为最优组合的CU之前,是不能输出到压缩码流的。由此,这个CU与下一个选择组合k为最优组合的CU之间的所有未选择组合k为最优组合的CU的压缩码流数据,在完全确定下一个选择组合k为最优组合的CU之前,都不能输出到压缩码流。因此,这个码流暂存输出模块中,有一个可选的“两个选择组合k为最优组合的CU之间的CU的压缩码流数据缓存单元”,用来放置所有这些未选择组合k为最优组合的CU的压缩码流数据。当下一个选择组合k为最优组合的CU确定之后,就可以把前一个CU的压缩码流数据以及放置在这个缓存单元中的所有压缩码流数据输出到压缩码流。
图6显示为本发明屏幕图像压缩装置附加区间编码跨越CU边界的结构框图。如图所示,在本实施例中,任一所述编码工具组合编码模块包含区间编码工具,则各该包含区间编码工具的编码工具组合编码模块还包括一序号差计算单元,用以决定前一个选择该包含序号差计算单元的编码工具组合编码模块为最优编码工具组合编码模块的编码单元是否需要与当前编码单元紧接着排列在一起进行所述前一个编码单元的最后一个区间编码字节的跨越编码单元边界的区间编码。所述各该包含区间编码工具的编码工具组合编码模块的任何一个编码模块都还包括一个用以暂存该编码工具组合编码模块被选择为最优编码工具组合时该最优编码工具组合编码模块所产生的编码数据和结果的暂存区。所述码流暂存输出模块还包括一压缩码流数据缓存单元,用以放置所有与当前编码单元对应的最优编码工具组合所产生但未输出到压缩码流的编码单元的压缩码流数据。
在具体的实施过程中,所述压缩装置由下列模块组成:
1、K个编码模块,分别使用K套编码工具组合对输入图像或视频序列的一个CU进行预编码。其中至少有一个编码模块的编码工具组合(称之为组合k)中含区间编码工具。这个模块中,除了完成各项编码任务所需要的单元外,还有一个当前编码CU与前一个选择组合k为最优组合的CU的序号差计算单元。这个序号差用来决定前一个选择组合k为最优组合的CU是否需要与当前编码CU紧接着排列在一起(尾首相接)进行前一个选择组合k为最优组合的CU的最后一个区间编码字节的跨越CU边界的区间编码。这个模块中,还有一个选择组合k为最优组合的CU的编码数据和结果的暂存区。对一个选择组合k为最优组合的CU来说,因为其最后一个区间编码字节可能跨越CU边界,所以这个CU的最终编码结果,在完全确定下一个选择组合k为最优组合的CU之前,是未定的。因此需要把这个CU的编码数据和结果暂存起来,用于把这个CU逐个与后续编码CU紧接着排列在一起(尾首相接)进行涉及到这个CU的最后一个区间编码字节的预编码。在确定了下一个选择组合k为最优组合的CU之后,这个CU的最终编码结果和压缩码流数据也就完全确定了。这时,这个暂存区就可以被清空并且把新的选择组合k为最优组合的CU的编码数据和结果放入这个暂存区。
2、各套组合RD特性计算模块。计算各套组合的预编码结果的RD特性。如果编码是无损编码,那么失真(D)为零,RD特性就是比特率(R)特性,也就是压缩码流有多少比特。如果预编码是有损编码,那么此模块从原始输入CU和重构结果计算出失真,RD特性就是兼顾失真和比特率的一个综合特性。此模块分别计算出各套组合的RD特性后,输出到最优编码工具组合选择模块。
3、最优编码工具组合选择模块。根据各套组合的预编码结果的RD特性,选择一套最优的编码工具组合,作为对此CU进行正式编码的编码工具组合。
4、码流暂存输出模块。暂存此CU产生的压缩码流数据,并在适当的时候,按照压缩码流的规格,把此CU的压缩码流数据输出到压缩码流。在各个CU的压缩码流数据是按照CU的序号依次输出到压缩码流的场合,如果某个CU选择组合k为最优组合并且其最后一个区间编码字节可能跨越CU边界,那么这个CU的最终编码结果和压缩码流数据,在完全确定下一个选择组合k为最优组合的CU之前,是未定的。因此,这个CU的压缩码流数据,在完全确定下一个选择组合k为最优组合的CU之前,是不能输出到压缩码流的。由此,这个CU与下一个选择组合k为最优组合的CU之间的所有未选择组合k为最优组合的CU的压缩码流数据,在完全确定下一个选择组合k为最优组合的CU之前,都不能输出到压缩码流。因此,这个码流暂存输出模块中,有一个可选的“两个选择组合k为最优组合的CU之间的CU的压缩码流数据缓存单元”,用来放置所有这些未选择组合k为最优组合的CU的压缩码流数据。当下一个选择组合k为最优组合的CU确定之后,就可以把前一个CU的压缩码流数据以及放置在这个缓存单元中的所有压缩码流数据输出到压缩码流。
图7显示为本发明屏幕图像压缩装置附加匹配串跨越CU边界,区间编码跨越匹配串边界的结构框图。如图所示,在本实施例中,任一所述编码工具组合编码模块包含串匹配编码工具及区间编码工具,且该编码工具组合编码模块对所述编码单元先进行串匹配编码后进行区间编码,则各该编码工具组合编码模块还包括一序号差计算单元,用以决定前一个选择该包含序号差计算单元的编码工具组合编码模块为最优编码工具组合编码模块的编码单元是否需要与当前编码单元紧接着排列在一起进行所述前一个编码单元的最后一个区间编码字节及其所涉及的匹配串的跨越编码单元边界的串匹配搜索和编码以及区间编码,及一选择该包含序号差计算单元的编码工具组合编码模块为最优编码工具组合编码模块的编码单元的编码数据与结果暂存区,用以暂存选择该包含序号差计算单元的编码工具组合编码模块为最优编码工具组合编码模块的编码单元的编码数据与结果,以使串匹配搜索能跨越编码单元边界且区间编码能跨越匹配串边界。
所述码流暂存输出模块还包括一压缩码流数据缓存单元,用以放置所有与当前编码单元对应的最优编码工具组合所产生但未输出到压缩码流的编码单元的压缩码流数据。
在具体的实施过程中,所述压缩装置由下列模块组成:
1、K个编码模块,分别使用K套编码工具组合对输入图像或视频序列的一个CU进行预编码。其中至少有一个编码模块的编码工具组合(称之为组合k)中含串匹配编码工具和区间编码工具。这个模块中,除了完成各项编码任务所需要的单元外,还有一个当前编码CU与前一个选择组合k为最优组合的CU的序号差计算单元。这个序号差用来决定前一个选择组合k为最优组合的CU是否需要与当前编码CU紧接着排列在一起(尾首相接)进行前一个选择组合k为最优组合的CU的跨越这两个CU边界的串匹配搜索和编码以及区间编码。这个模块中,还有一个选择组合k为最优组合的CU的编码数据和结果的暂存区。对一个选择组合k为最优组合的CU来说,因为其最后若干个匹配串及其区间编码字节可能跨越CU边界,所以这个CU的最终编码结果,在完全确定下一个选择组合k为最优组合的CU之前,是未定的。因此需要把这个CU的编码数据和结果暂存起来,用于把这个CU逐个与后续编码CU紧接着排列在一起(尾首相接)进行附加了后续编码CU部分像素的涉及到这个CU的最后若干个匹配串和跨越这若干个匹配串的最后一个区间编码字节的预编码。在确定了下一个选择组合k为最优组合的CU之后,这个CU的最终编码结果和压缩码流数据也就完全确定了。这时,这个暂存区就可以被清空并且把新的选择组合k为最优组合的CU的编码数据和结果放入这个暂存区。
2、各套组合RD特性计算模块。计算各套组合的预编码结果的RD特性。如果编码是无损编码,那么失真(D)为零,RD特性就是比特率(R)特性,也就是压缩码流有多少比特。如果预编码是有损编码,那么此模块从原始输入CU和重构结果计算出失真,RD特性就是兼顾失真和比特率的一个综合特性。此模块分别计算出各套组合的RD特性后,输出到最优编码工具组合选择模块。
3、最优编码工具组合选择模块。根据各套组合的预编码结果的RD特性,选择一套最优的编码工具组合,作为对此CU进行正式编码的编码工具组合。
4、码流暂存输出模块。暂存此CU产生的压缩码流数据,并在适当的时候,按照压缩码流的规格,把此CU的压缩码流数据输出到压缩码流。在各个CU的压缩码流数据是按照CU的序号依次输出到压缩码流的场合,如果某个CU选择组合k为最优组合并且其最后若干个匹配串及其区间编码字节可能跨越CU边界,那么这个CU的最终编码结果和压缩码流数据,在完全确定下一个选择组合k为最优组合的CU之前,是未定的。因此,这个CU的压缩码流数据,在完全确定下一个选择组合k为最优组合的CU之前,是不能输出到压缩码流的。由此,这个CU与下一个选择组合k为最优组合的CU之间的所有未选择组合k为最优组合的CU的压缩码流数据,在完全确定下一个选择组合k为最优组合的CU之前,都不能输出到压缩码流。因此,这个码流暂存输出模块中,有一个可选的“两个选择组合k为最优组合的CU之间的CU的压缩码流数据缓存单元”,用来放置所有这些未选择组合k为最优组合的CU的压缩码流数据。当下一个选择组合k为最优组合的CU确定之后,就可以把前一个CU的压缩码流数据以及放置在这个缓存单元中的所有压缩码流数据输出到压缩码流。
图8显示为本发明屏幕图像压缩装置采用5套编码工具组合的结构框图。如图所示,在本实施例中,所述预编码模块组包括:
编码工具组合1编码模块:包括预测编码单元、变换编码单元、量化编码单元、游程编码单元、算术编码单元;
编码工具组合2编码模块:包括像素串匹配编码单元、算术编码单元;
编码工具组合3编码模块:包括预测编码单元、游程编码单元、编码中间数据串匹配编码单元、算术编码单元;
编码工具组合4编码模块:包括向量量化编码单元、算术编码单元;
编码工具组合5编码模块:包括像素串匹配编码单元、变换编码单元、量化编码单元、游程编码单元及算术编码单元。
在具体的实施过程中,所述的压缩装置由以下模块组成:
1、编码工具组合1~5的编码模块,分别由下列单元组成:
组合1的编码模块:预测编码单元、变换编码单元、量化编码单元、游程编码单元、算术编码单元;
组合2的编码模块:像素串匹配编码单元、算术编码单元;
组合3的编码模块:预测编码单元、游程编码单元、编码中间数据串匹配编码单元、算术编码单元;
组合4的编码模块:向量量化编码单元、算术编码单元;
组合5的编码模块:像素串匹配编码(可有损)单元、变换编码单元、量化编码单元、游程编码单元、算术编码单元;
这些模块中的每一个,都使用一套特定的编码工具组合,对输入图像或序列的一个CU进行预编码。这些模块的输出与各套组合RD函数计算模块的输入相连,把编码结果和重构结果(如果编码是有损编码)送往各套组合RD函数计算模块。
2、各套组合RD函数计算模块。计算各套组合的预编码结果的RD函数。如果预编码是有损编码,那么此模块从原始输入CU和重构结果计算出失真(D),RD函数就是兼顾失真和比特率(R),也就是压缩码流在单位时间内有多少比特,的一个加权函数J=D+λ×R,其中λ是一个非负实数,称为拉格朗日乘子。如果编码是无损编码,那么失真为零,RD函数就是比特率。此模块分别计算出各套组合的RD函数后,输出到最优编码工具组合选择模块。
3、最优编码工具组合选择模块。根据各套组合的预编码结果的RD函数,选择一套最优的编码工具组合,作为对此CU进行正式编码的编码工具组合。
4、码流暂存输出模块。暂存此CU产生的压缩码流数据,并在适当的时候,按照压缩码流的规格,把此CU的压缩码流数据输出到压缩码流。
图9显示为本发明屏幕图像压缩装置采用3套编码工具组合的结构框图。如图所示,在本实施例中,所述预编码模块组包括:
编码工具组合1编码模块:包括预测编码单元、变换编码单元、量化编码单元、重构单元、游程编码单元、算术编码单元及码率控制单元;
编码工具组合2编码模块:包括历史像素暂存区和历史像素暂存区更新单元、行排列方式像素重排序映射单元、列排列方式像素重排序映射单元、Hilbert排列方式像素重排序映射单元、像素串匹配编码单元及率-失真特性计算估计和最优排列方式选择单元及算术编码单元;
编码工具组合3编码模块:包括预测编码单元、量化编码单元、重构单元、游程编码单元、算术编码单元及码率控制单元。
在具体的实施过程中,所述压缩装置包括以下模块:
1、编码工具组合1~3的编码模块,分别由下述的若干单元组成。
组合1的编码模块由下列单元组成:
1a)预测编码单元。以已经完成编码的重构图像的像素为参考,进行帧内和帧间预测搜索,得到最优预测模式和向量以及相应的预测宏块数据(预测值),计算输入编码宏块与预测宏块的差得到预测误差宏块;
1b)变换编码单元。对预测误差宏块施行变换编码,即做某种形式的变换,如DCT(离散余弦变换)变换;
1c)量化编码单元。对变换后的宏块数据施行量化编码以减小非零数据的幅值并且增加零数据的个数,得到量化后的变换量化宏块数据;
1d)重构单元。对量化后的变换量化宏块数据施行反量化和逆变换,再加上预测宏块数据后得到重构宏块和像素,在后续宏块编码时,提供给预测编码单元,作为帧内和帧间预测搜索时的参考像素;
1e)游程编码单元。对量化后的变换量化宏块数据施行游程编码,得到游程化的变换量化宏块数据;
1f)算术编码单元。对游程化的变换量化宏块数据和预测编码得到的最优预测模式和向量数据施行算术编码以达到进一步的压缩效果并产生第1套组合的最后预编码结果;
1g)码率控制单元(可选)。即根据已完成编码的宏块的编码结果及其他信息确定后续宏块编码时量化和反量化所使用的量化参数qp。这一单元是可选的,如果没有这一单元,qp就是一个预先确定的常数。
组合2的编码模块由下列单元组成:
2a)历史像素暂存区和历史像素暂存区更新单元。不管此宏块的编码最优组合是哪套组合,都需要将最优组合产生的此宏块的重构像素放入历史像素暂存区:
2b)行排列方式像素重排序映射单元、列排列方式像素重排序映射单元和Hilbert排列方式像素重排序映射单元,把存放在历史像素暂存区中的历史像素和当前编码宏块的像素的物理地址分别映射成对应于3种不同像素排列方式的虚拟地址,以提供3种不同的排列方式的像素给像素串匹配编码单元。在本实施例中,历史像素暂存区中的像素和当前编码宏块的像素本身是按照行排列方式的顺序存放的,因此,行排列方式像素重排序映射单元所做的映射就是单位映射,即虚拟地址等于物理地址。列排列方式像素重排序映射单元则是把一个宏块(历史像素暂存区中某宏块或当前编码宏块)的256个像素从1到256的列排列方式的虚拟地址(即列排列方式中像素的编号)依次被映射成下列的像素物理地址(称之为行列转换映射):
1,17,33,49,65,81,97,113,129,145,161,177,193,209,225,241,
2,18,34,50,66,82,98,114,130,146,162,178,194,210,226,242,
3,19,35,51,67,83,99,115,131,147,163,179,195,211,227,243,
4,20,36,52,68,84,100,116,132,148,164,180,196,212,228,244,
5,21,37,53,69,85,101,117,133,149,165,181,197,213,229,245,
6,22,38,54,70,86,102,118,134,150,166,182,198,214,230,246,
7,23,39,55,71,87,103,119,135,151,167,183,199,215,231,247,
8,24,40,56,72,88,104,120,136,152,168,184,200,216,232,248,
9,25,41,57,73,89,105,121,137,153,169,185,201,217,233,249,
10,26,42,58,74,90,106,122,138,154,170,186,202,218,234,250,
11,27,43,59,75,91,107,123,139,155,171,187,203,219,235,251,
12,28,44,60,76,92,108,124,140,156,172,188,204,220,236,252,
13,29,45,61,77,93,109,125,141,157,173,189,205,221,237,253,
14,30,46,62,78,94,110,126,142,158,174,190,206,222,238,254,
15,31,47,63,79,95,111,127,143,159,175,191,207,223,239,255,
16,32,48,64,80,96,112,128,144,160,176,192,208,224,240,256。
Hilbert排列方式像素重排序映射单元则是把一个宏块的256个像素从1到256的Hilbert排列方式的虚拟地址(Hilbert排列方式中像素的编号)依次被映射成下列的像素物理地址(称之为Hilbert映射):
1,17,18,2,3,4,20,19,35,36,52,51,50,34,33,49,65,66,82,81,97,113,114,98,99,115,116,100,84,83,67,68,69,70,86,85,101,117,118,102,103,119,120,104,88,87,71,72,56,40,39,55,54,53,37,3822,21,5,6,7,23,24,8,9,10,26,25,41,57,58,42,43,59,60,44,28,27,11,12,13,29,30,14,15,16,32,31,47,48,64,63,62,46,45,61,77,93,94,7879,80,96,95,111,112,128,127,126,110,109,125,124,123,107,108,92,76,75,91,90,74,73,89,105,106,122,121,137,138,154,153,169,185,186,170,171,187,188,172,156,155,139,140,141,157,158,142,143,144,160,159,175,176,192,191,190,174,173,189,205,221,222,206,207,208,224,223,239,240,256,255,254,238,237,253,252,251,235,236,220,204,203,219,218,202,201,217,233,234,250,249,248,232,231,247,246,245,229,230,214,213,197,198,199,215,216,200,184,183,167,168,152,136,135,151,150,134,133,149,165,166,182,181,180,179,163,164,148,132,131,147,146,130,129,145,161,162,178,177,192,209,210,194,195,196,212,211,227,228,244,243,242,226,225,241。
2c)像素串匹配编码单元。对具有不同排列方式的此宏块的像素进行像素串匹配编码;
2d)RD特性计算估计和最优排列方式选择单元。计算或估计3种排列方式的像素串匹配编码结果的RD特性,选择最优的排列方式作为此宏块此组合预编码最后采纳的排列方式;
2e)算术编码单元。对像素串匹配编码的结果施行算术编码以达到进一步的压缩效果并产生第2套组合的最后预编码结果。
组合3的编码模块由下列单元组成:
3a)预测编码单元。以已经完成编码的重构图像的像素为参考,进行帧内和帧间预测搜索,得到最优预测模式和向量以及相应的预测宏块数据(预测值),计算输入编码宏块与预测宏块的差得到预测误差宏块;
3b)量化编码单元。对预测误差宏块施行量化编码,得到量化后的量化宏块数据;
3c)重构单元。对量化后的量化宏块数据施行反量化,再加上预测宏块数据后得到重构宏块和像素,在后续宏块编码时,提供给预测编码单元,作为帧内和帧间预测搜索时的参考像素;
3d)游程编码单元。对量化后的量化宏块数据施行游程编码,得到游程化的量化宏块数据;
3e)算术编码单元。对游程化的量化宏块数据和预测编码得到的最优预测模式和向量数据施行算术编码以达到进一步的压缩效果并产生第3套组合的最后预编码结果;
3f)码率控制单元(可选)。即根据已完成编码的宏块的编码结果及其他信息确定后续宏块编码时量化和反量化所使用的量化参数qp。这一单元是可选的,如果没有这一单元,qp就是一个预先确定的常数。
这3个编码模块,分别使用一套特定的编码工具组合,同时对输入图像或序列的一个宏块进行预编码。这3个模块的输出都与各套组合RD特性计算模块的输入相连,把编码结果和重构结果(如果编码是有损编码)送往各套组合RD特性计算模块。
2、各套组合RD特性计算模块。此模块分别计算出各套组合的RD特性后,输出到最优编码工具组合选择模块。
3、最优编码工具组合选择模块。根据各套组合的预编码结果的RD特性,选择一套最优的编码工具组合,作为对此宏块进行正式编码的编码工具组合。
4、码流暂存输出模块。暂存此宏块产生的压缩码流数据,并在适当的时候,按照压缩码流的规格,把此宏块的压缩码流数据输出到压缩码流。
图10显示为本发明屏幕图像压缩装置附加像素串匹配编码跨越CU边界的具体实施例的结构框图。如图所示,在本实施例中,所述预编码模块组包括:
1、编码工具组合1编码模块:包括预测编码单元、变换编码单元、量化编码单元、重构单元、游程编码单元、算术编码单元及码率控制单元;
2、编码工具组合2编码模块:包括用以决定前一个选择本模块编码工具组合为最优编码工具组合的编码单元是否需要与当前编码单元紧接着排列在一起进行所述前一个编码单元的最后一个匹配串的跨越编码单元边界的串匹配搜索和编码的序号差计算单元、历史像素暂存区和历史像素暂存区更新单元、像素串匹配编码单元、算术编码单元以及选择本模块编码工具组合作为最优编码工具组合的编码单元的编码数据和结果的暂存区。
在具体的实施过程中,本实施例中像素匹配串可跨越CU边界的进行计算机屏幕图像或视频序列压缩的编码装置由下列模块组成:
1、编码模块组合1的编码模块由下列单元组成:
1a)预测编码单元。以已经完成编码的重构图像的像素为参考,进行帧内和帧间预测搜索,得到最优预测模式和向量以及相应的预测CU数据(预测值),计算输入编码CU与预测CU的差得到预测误差CU;
1b)变换编码单元。对预测误差CU施行变换编码,即做某种形式的变换,如DCT(离散余弦变换)变换;
1c)量化编码单元。对变换后的CU数据施行量化编码以减小非零数据的幅值并且增加零数据的个数,得到量化后的变换量化CU数据;
1d)重构单元。对量化后的变换量化CU数据施行反量化和逆变换,再加上预测CU数据后得到重构CU和像素,在后续CU编码时,提供给预测编码单元,作为帧内和帧间预测搜索时的参考像素;
1e)游程编码单元。对量化后的变换量化CU数据施行游程编码,得到游程化的变换量化CU数据;
1f)算术编码单元。对游程化的变换量化CU数据和预测编码得到的最优预测模式和向量数据施行算术编码以达到进一步的压缩效果并产生第1套组合的最后预编码结果;
1g)码率控制单元(可选)。即根据已完成编码的CU的编码结果及其他信息确定后续CU编码时量化和反量化所使用的量化参数qp。这一单元是可选的,如果没有这一单元,qp就是一个预先确定的常数。
2、编码工具组合2的编码模块。此模块由下列单元组成:
2a)当前编码CU与前一个选择组合2为最优组合的CU的序号差计算单元。这个序号差用来决定前一个选择组合2为最优组合的CU是否需要与当前编码CU紧接着排列在一起(尾首相接)进行前一个选择组合2为最优组合的CU的最后一个匹配串的跨越CU边界的串匹配搜索和编码;
2b)历史像素暂存区和历史像素暂存区更新单元。不管当前编码CU的编码最优组合是哪套组合,都需要将最优组合产生的当前编码CU的重构像素放入历史像素暂存区;
2c)像素串匹配编码单元。对输入的当前编码CU及部分下一个CU的像素进行像素串匹配编码;
2d)算术编码单元。对像素串匹配编码的结果施行算术编码以达到进一步的压缩效果并产生编码工具组合2的最后预编码结果;
2e)选择组合2为最优组合的CU的编码数据和结果的暂存区。对一个选择组合2为最优组合的CU来说,因为其最后一个匹配串可能跨越CU边界,所以这个CU的最终编码结果,在完全确定下一个选择组合2为最优组合的CU之前,是未定的。因此需要把这个CU的编码数据和结果暂存起来,用于把这个CU逐个与后续编码CU紧接着排列在一起(尾首相接)进行像素串匹配搜索,以得到最后一个且可能跨越CU边界的最优匹配串。在确定了下一个选择组合2为最优组合的CU之后,这个CU的最终编码结果和压缩码流数据也就完全确定了。这时,这个暂存区就可以被清空并且把新的选择组合2为最优组合的CU的编码数据和结果放入这个暂存区。
3、各套组合RD特性计算模块。此模块分别计算出2套组合的RD特性后,输出到最优编码工具组合选择模块。
4、最优编码工具组合选择模块。根据各套组合的预编码结果的RD特性,选择一套最优的编码工具组合,作为对此CU进行正式编码的编码工具组合,也称最优组合。
5、码流暂存输出模块。暂存此CU产生的压缩码流数据,并在适当的时候,按照压缩码流的规格,把此CU的压缩码流数据输出到压缩码流。在各个CU的压缩码流数据是按照CU的序号依次输出到压缩码流的场合,如果某个CU选择组合2为最优组合并且其最后一个匹配串可能跨越CU边界,那么这个CU的最终编码结果和压缩码流数据,在完全确定下一个选择组合2为最优组合的CU之前,是未定的。因此,这个CU的压缩码流数据,在完全确定下一个选择组合2为最优组合的CU之前,是不能输出到压缩码流的。由此,这个CU与下一个选择组合2为最优组合的CU之间的所有未选择组合2为最优组合的CU的压缩码流数据,在完全确定下一个选择组合2为最优组合的CU之前,都不能输出到压缩码流。因此,这个码流暂存输出模块中,有一个可选的“两个选择组合2为最优组合的CU之间的所有CU的压缩码流数据缓存单元”,用来放置所有这些未选择组合2为最优组合的CU的压缩码流数据。当下一个选择组合2为最优组合的CU确定之后,就可以把前一个CU的压缩码流数据以及放置在这个缓存单元中的所有压缩码流数据输出到压缩码流。
在另一具体的实施过程中,所述预编码模块组包括:
编码工具组合1编码模块:包括预测编码单元、变换编码单元、量化编码单元、重构单元、游程编码单元、算术编码单元及码率控制单元;
编码工具组合2编码模块:包括用以决定前一个选择本模块编码工具组合为最优编码工具组合的编码单元是否需要与当前编码单元紧接着排列在一起进行所述前一个编码单元的最后一个匹配串的跨越编码单元边界的串匹配搜索和编码的序号差计算单元、历史像素暂存区和历史像素暂存区更新单元、像素串匹配编码单元、区间编码单元以及选择本模块编码工具组合作为最优编码工具组合的编码单元的编码数据和结果的暂存区。
请参阅图11~图20,如图所示,本发明还提供一种屏幕图像解压装置,所述解压装置至少包括:
码流编码工具组合解析模块,用于接收从一外部装置输入的压缩码流,解析出所述压缩码流数据编码时所使用的编码工具组合,选择相对应的解码工具组合并把所述码流段数据输出;
解码模块组,连接于所述解析模块,包括多个解码工具组合解码模块,用于对来自所述码流编码工具组合解析模块输入的压缩码流数据并使用与其相对应的一套解码工具组合进行解码,并重构出与所述压缩码流数据相应的编码单元的像素;
重构图像暂存模块,连接于所述的解码模块组,用以暂存重构的一幅或多幅图像,并在预设的时间按照图像的显示顺序,把图像输出;
重构图像输出模块,连接于所述的重构图像暂存模块,用于把所述解码模块组解码与重构的图像按照图像和视频显示格式,输出到一外部装置。
在本实施例中,所述解码模块组包括的解码工具组合解码模块为2~8个。所述解码工具组合为逆变换解码、反量化解码、向量反量化解码、预测解码、像素串匹配解码、宽像素串匹配解码、编码中间数据串匹配解码、游程解码、二维游程解码、可变长解码、算术解码、区间解码12种解码工具按特定数量与特定规则的组合。各该解码工具组合包含的解码工具为2~5种。
在具体的实施过程中,所述的解压装置由下列模块组成:
1、码流编码工具组合解析模块。从接收到的压缩码流中解析出此码流段数据对应的CU在编码时是使用哪套编码工具组合进行编码的。把此码流段数据输出到与此套编码工具组合对应的解码模块。
2、解码工具组合1解码模块、解码工具组合2解码模块、.......、解码工具组合K解码模块。这些模块中的每一个,都使用一套与特定的编码工具组合相对应的解码工具组合,对来自码流编码工具组合解析模块的输入码流段进行解码,重构出相应的CU的像素。这些模块的输出都与重构图像暂存模块的输入相连,把重构CU的像素输出到重构图像暂存模块。
3、重构图像暂存模块。暂存重构的一幅或多幅图像,并在适当的时候,按照图像的显示顺序,把图像送往重构图像输出模块。
4、重构图像输出模块。把解码和重构的图像,按照图像和视频显示格式,输出到显示装置。
图12显示为本发明屏幕图像解压装置附加历史像素暂存区的结构框图。如图所示,在本实施例中,任一所述解码工具组合解码模块包含像素串匹配解码工具、宽像素串匹配解码工具及像素预测解码之一或其组合,则各该包含具有像素串匹配解码工具、宽像素串匹配解码工具及像素预测解码之一或其组合的解码工具组合解码模块包括一共享的历史像素暂存区,用以暂存经过解码重构的编码单元的像素。所述各该包含像素串匹配解码工具、宽像素串匹配解码工具及像素预测解码之一或其组合的解码工具组合解码模块还包括一共享的历史像素暂存区更新单元,用以更新所述的历史像素暂存区。
在具体的实施过程中,所述解压装置由下列模块组成:
1、码流编码工具组合解析模块。从接收到的压缩码流中解析出此码流段数据对应的CU在编码时是使用哪套编码工具组合进行编码的。把此码流段数据输出到与此套编码工具组合对应的解码模块。
2、解码工具组合1解码模块、解码工具组合2解码模块、…….、解码工具组合K解码模块。这些模块中的每一个,都使用一套与特定的编码工具组合相对应的解码工具组合,对来自码流编码工具组合解析模块的输入压缩码流段进行解码,重构出相应的CU的像素。这些模块的输出都与重构图像暂存模块的输入相连,把重构CU的像素输出到重构图像暂存模块。这K个模块中,至少有一个模块的编码(及对应的解码)工具组合使用了像素串匹配编码、宽像素串匹配编码或像素预测编码。因此这个模块中含有历史像素暂存区和一个历史像素暂存区更新单元。不管使用哪套组合的解码器,都需要把此CU的重构像素放入到这个历史像素暂存区中。如果此CU的编码(及对应的解码)工具组合恰好是含这个历史像素暂存区的这套组合并且相应的解码模块中的历史像素暂存区在解码此CU过程中已经被放入了此CU的重构像素,则历史像素暂存区就不必再被更新。反之,就需要在此CU解码完毕之后,把此CU的重构像素添加到历史像素暂存区中。与编码装置中的情形一样,如果有多套编码工具组合使用了像素串匹配编码、宽像素串匹配编码或像素预测编码从而都需要历史像素暂存区,这多套编码工具组合的解码模块可以共享同一个历史像素暂存区。因此,整个解码装置中可以只有一个历史像素暂存区,历史像素暂存区更新单元也仅需要更新这一个历史像素暂存区。
3、重构图像暂存模块。暂存重构的一幅或多幅图像,并在适当的时候,按照图像的显示顺序,把图像送往重构图像输出模块。
4、重构图像输出模块。把解码和重构的图像,按照图像和视频显示格式,输出到显示装置。
图13显示为本发明屏幕图像解压装置附加历史中间数据暂存区的结构框图。如图所示,任一所述解码工具组合解码模块包含解码中间数据串匹配解码工具及解码中间数据预测解码工具之一或其组合,则各该包含解码中间数据串匹配解码工具及解码中间数据预测解码工具之一或其组合的解码工具组合解码模块还包含一历史中间数据暂存区和一部分编码单元。
在具体的实施过程中,所述解压装置包括以下模块:
1、码流编码工具组合解析模块。从接收到的压缩码流中解析出此码流段数据对应的CU在编码时是使用哪套编码工具组合进行编码的。把此码流段数据输出到与此套编码工具组合对应的解码模块(称为当前CU解码模块)。
2、解码工具组合1解码模块、解码工具组合2解码模块、…….、解码工具组合K解码模块。这些模块中的每一个,都使用一套与特定的编码工具组合相对应的解码工具组合,对来自码流编码工具组合解析模块的输入码流段进行解码,重构出相应的CU的像素。这些模块的输出都与重构图像暂存模块的输入相连,把重构CU的像素输出到重构图像暂存模块。这K个模块中,至少有一个模块的相应的编码工具组合使用了编码中间数据串匹配编码或编码中间数据预测编码(即预测的对象不是像素而是其他编码中间数据)。因此这个模块中含有历史中间数据暂存区和一个部分编码单元。不管解码此CU时使用了哪套组合的解码器,都需要把此CU的重构像素经过部分编码后的中间数据放入到这个历史中间数据暂存区中。特别是,如果当前CU解码模块不是含历史中间数据暂存区的那个解码模块,就需要在当前CU的解码和重构完成之后,使用部分编码单元对此CU的重构像素再进行一次部分编码以产生中间数据并把此中间数据放入历史中间数据暂存区。如果当前CU解码模块恰好是含历史中间数据暂存区的那个解码模块,则此CU的中间数据在解码此CU过程中已经产生,只要把产生的中间数据放入历史中间数据暂存区就可以了,不需要再进行一次部分编码以产生中间数据。与编码装置中的情形一样,如果有多套编码工具组合使用了编码中间数据串匹配编码或编码中间数据预测编码(即预测的对象不是像素而是其他编码中间数据),这些编码工具组合对应的解码模块都分别有自己专用的历史中间数据暂存区。
3、重构图像暂存模块。暂存重构的一幅或多幅图像,并在适当的时候,按照图像的显示顺序,把图像送往重构图像输出模块。
4、重构图像输出模块。把解码和重构的图像,按照图像和视频显示格式,输出到显示装置。
图14显示为本发明屏幕图像解压装置附加CU级别的自适应最优排列方式的结构框图。如图所示,在本实施例中,任一所述解码工具组合解码模块包含像素串匹配解码工具及宽像素串匹配解码工具之一或其组合,则各该含像素串匹配解码工具及宽像素串匹配解码工具之一或其组合的解码工具组合解码模块至少还包括:
历史像素暂存区和历史像素暂存区更新单元,用以暂存解码重构的编码单元的像素,并在需要时对其进行更新;
排列方式解析单元,用以从码流数据中解析出当前解码的编码单元在串匹配编码时采用的排列方式;
串匹配解码前其他各编码工具的解码单元;
像素重排序映射单元,包括多个像素重排序映射子单元,用以提供多种不同排列方式的像素给一串匹配解码单元;
串匹配解码单元,使用像素串匹配解码单元或宽像素串匹配解码单元按照排列方式解析单元解析出的排列方式进行解码;
串匹配解码后其他各编码工具的解码单元,用以完成串匹配解码后的解码工作,并输出当前解码编码单元的重构像素。
在具体的实施过程中,所述解码模块包括以下单元:
1、历史像素暂存区和历史像素暂存区更新单元。对于任何CU的压缩码流数据,不管使用了哪套组合的解码器来完成对其的解码,都需要把此CU的重构像素放入到这个历史像素暂存区中。如果此CU的编码工具组合恰好是含这个历史像素暂存区的这套组合并且相应的解码模块中的历史像素暂存区在解码此CU过程中已经被放入了此CU的重构像素,则历史像素暂存区就不必再被更新。反之,就需要在此CU解码完毕之后,把此CU的重构像素添加到历史像素暂存区中。
2、排列方式解析单元。从码流数据中解析出当前解码CU的串匹配编码采用了哪种排列方式。
3、串匹配解码前其他各编码工具的解码单元。本解码模块包括了对应的编码工具组合中所有编码工具的解码单元。其中有些解码单元,其所需要完成的解码工作,必须在进行串匹配解码之前完成。这些解码单元被称为串匹配解码前其他各编码工具的解码单元。
4、排列方式1像素重排序映射单元、排列方式2像素重排序映射单元、.......、排列方式J像素重排序映射单元。这J个映射单元(2≤J≤4),实现J种从物理地址到虚拟地址的不同的地址映射,提供J种不同的排列方式的像素给像素串匹配解码单元或宽像素串匹配解码单元。当排列方式解析单元确定了当前解码CU的串匹配编码采用的是哪种排列方式之后,也就确定了使用哪个映射单元来给像素串匹配解码单元或宽像素串匹配解码单元提供正确排序的历史像素。
5、像素串匹配解码单元或宽像素串匹配解码单元(通称为串匹配解码单元)。使用排列方式解析单元确定的当前解码CU的那种排列方式以及相应的像素重排序映射单元,进行当前解码CU的像素串匹配解码或宽像素串匹配解码。
6、串匹配解码后其他各编码工具的解码单元。这些解码单元,在串匹配解码完成之后,继续完成其他各项解码工作,并输出当前解码CU的重构像素。
图15显示为本发明屏幕图像解压装置附加匹配串跨越CU边界的结构框图。如图所示,在本实施例中,任一所述解码工具组合解码模块包含像素串匹配解码工具、宽像素串匹配解码工具或解码中间数据串匹配解码工具之一或其组合,则各该包含像素串匹配解码工具、宽像素串匹配解码工具或解码中间数据串匹配解码工具之一或其组合的解码工具组合解码模块还各自包含一当前编码单元重构像素累计单元,用以累计解码得到的当前编码单元重构像素的个数。各该包含像素串匹配解码工具、宽像素串匹配解码工具或解码中间数据串匹配解码工具之一或其组合的解码工具组合解码模块还各自包含一串匹配编码跨越编码单元边界的超出部分像素缓存区,用以暂存超出当前编码单元重构像素数量后的后续编码单元重构像素。
在具体的实施过程中,所述解压装置包括以下模块:
1、码流编码工具组合解析模块。从接收到的压缩码流中解析出此码流段数据对应的CU在编码时是使用哪套编码工具组合进行编码的。把此码流段数据输出到与此套编码工具组合对应的解码模块。
2、K个解码工具组合解码模块。这些模块中的每一个,都使用一套与特定的编码工具组合相对应的解码工具组合,对来自码流编码工具组合解析模块的输入码流段进行解码,重构出相应的CU的像素。这K个模块中,至少有一个模块的解码工具组合(称之为组合k)使用了串匹配解码工具。由于编码时对应的编码工具组合k容许一个匹配串跨越CU边界,所以这套组合k的解码模块,也必须能够对CU的最后一个匹配串跨越CU边界的压缩码流数据进行解码并且分辩出重构像素中的哪些像素属于当前CU哪些像素属于下一个选择组合k为最优组合的CU。为此,这个解码模块中,除了完成组合k的各项解码任务所需要的单元外,还有一个当前CU的重构像素的累计单元,用来累计解码得到的此当前CU的重构像素的个数。如果个数超过N2,超出的部分像素就是属于下一个选择组合k为最优组合的CU的像素。当完整地解码完一个匹配串后此累计个数超过N2时,也表明此当前CU的全部重构像素都已经得到,对此当前CU码流数据的解码已经全部完成。超出的这部分像素是属于下一个选择组合k为最优组合的CU的,所以这些像素必须暂时保存起来。因此这个解码模块中,还有一个“匹配串跨越CU边界的超出部分像素缓存区”,用来暂时存放这些像素。
3、重构图像暂存模块。暂存重构的一幅或多幅图像,并在适当的时候,按照图像的显示顺序,把图像送往重构图像输出模块。
4、重构图像输出模块。把解码和重构的图像,按照图像和视频显示格式,输出到显示装置。
图16显示为本发明屏幕图像解压装置附加区间解码跨越CU边界的结构框图。如图所示,在本实施例中,任一所述解码工具组合解码模块包含区间解码工具,则各该包含区间解码工具的解码工具组合解码模块还包括一当前编码单元重构像素累计单元,用以累计解码得到的当前编码单元重构像素的个数。各该包含区间解码工具的解码工具组合解码模块还包括一区间编码字节跨越编码单元边界的超出部分像素缓存区。
在具体的实施过程中,所述解压装置包括以下模块:
1、码流编码工具组合解析模块。从接收到的压缩码流中解析出此码流段数据对应的CU在编码时是使用哪套编码工具组合进行编码的。把此码流段数据输出到与此套编码工具组合对应的解码模块。
2、K个解码工具组合解码模块。这些模块中的每一个,都使用一套与特定的编码工具组合相对应的解码工具组合,对来自码流编码工具组合解析模块的输入码流段进行解码,重构出相应的CU的像素。这K个模块中,至少有一个模块的解码工具组合(称之为组合k)使用了区间解码工具。由于编码时对应的编码工具组合k容许一个区间编码字节跨越CU边界,所以这套组合k的解码模块,也必须能够对CU的最后一个区间编码字节跨越CU边界的压缩码流数据进行解码并且分辩出重构像素中的哪些像素属于当前CU哪些像素属于下一个选择组合k为最优组合的CU。为此,这个解码模块中,除了完成组合k的各项解码任务所需要的单元外,还有一个当前CU的重构像素的累计单元,用来累计解码得到的此当前CU的重构像素的个数。如果个数超过N2,超出的部分像素就是属于下一个选择组合k为最优组合的CU的像素。当完整地解码完一个区间编码字节后此累计个数超过N2时,也表明此当前CU的全部重构像素都已经得到,对此当前CU码流数据的解码已经全部完成。超出的这部分像素是属于下一个选择组合k为最优组合的CU的,所以这些像素必须暂时保存起来。因此这个解码模块中,还有一个“区间编码跨越CU边界的超出部分像素缓存区”,用来暂时存放这些像素。
3、重构图像暂存模块。暂存重构的一幅或多幅图像,并在适当的时候,按照图像的显示顺序,把图像送往重构图像输出模块。
4、重构图像输出模块。把解码和重构的图像,按照图像和视频显示格式,输出到显示装置。
图17显示为本发明屏幕图像解压装置附加匹配串跨越CU边界,区间解码跨越匹配串边界的结构框图。如图所示,在本实施例中,任一所述解码工具组合解码模块包含串匹配解码工具及区间解码工具,且该解码工具组合解码模块对所述编码单元先进行区间解码后进行串匹配解码,包括一当前编码单元重构像素累计单元,用以累计解码得到的当前编码单元重构像素的个数。各该包含串匹配解码工具及区间解码工具的解码工具组合解码模块还包括一区间编码字节与匹配串跨越CU边界的超出部分像素缓存区。
在具体的实施过程中,所述解压装置包括以下模块:
1、码流编码工具组合解析模块。从接收到的压缩码流中解析出此码流段数据对应的CU在编码时是使用哪套编码工具组合进行编码的。把此码流段数据输出到与此套编码工具组合对应的解码模块。
2、K个解码工具组合解码模块。这些模块中的每一个,都使用一套与特定的编码工具组合相对应的解码工具组合,对来自码流编码工具组合解析模块的输入码流段进行解码,重构出相应的CU的像素。这K个模块中,至少有一个模块的解码工具组合(称之为组合k)使用了区间解码工具和串匹配解码工具。由于编码时对应的编码工具组合k容许一个匹配串或者区间编码字节跨越CU边界,所以这套组合k的解码模块,也必须能够对CU的最后若干个匹配串或者其区间编码字节跨越CU边界的压缩码流数据进行解码并且分辩出重构像素中的哪些像素属于当前CU哪些像素属于下一个选择组合k为最优组合的CU。为此,这个解码模块中,除了完成组合k的各项解码任务所需要的单元外,还有一个当前CU的重构像素的累计单元,用来累计解码得到的此当前CU的重构像素的个数。如果个数超过N2,超出的部分像素就是属于下一个选择组合k为最优组合的CU的像素。当完整地解码完一个区间编码字节及其所含的匹配串后此累计个数超过N2时,也表明此当前CU的全部重构像素都已经得到,对此当前CU码流数据的解码已经全部完成。超出的这部分像素是属于下一个选择组合k为最优组合的CU的,所以这些像素必须暂时保存起来。因此这个解码模块中,还有一个“区间编码字节及匹配串跨越CU边界的超出部分像素缓存区”,用来暂时存放这些像素。
3、重构图像暂存模块。暂存重构的一幅或多幅图像,并在适当的时候,按照图像的显示顺序,把图像送往重构图像输出模块。
4、重构图像输出模块。把解码和重构的图像,按照图像和视频显示格式,输出到显示装置。
图18显示为本发明屏幕图像解压装置采用5套解码工具组合的结构框图。如图所示,在本实施例中,所述解码模块组包括:
解码工具组合1解码模块:包括算术解码单元、游程解码单元、反量化单元、逆变换单元及预测解码单元;
解码工具组合2解码模块:包括算术解码单元及像素串匹配解码单元;
解码工具组合3解码模块:包括算术解码单元、编码中间数据串匹配解码单元、游程解码单元及预测解码单元;
解码工具组合4解码模块:包括算术解码单元、向量反量化单元;
解码工具组合5解码模块:包括算术解码单元、游程解码单元、反量化单元、逆变换单元及像素串匹配解码单元。
在具体的实施过程中,所述解压装置包括:
1、码流编码工具组合解析模块。从接收到的压缩码流中解析出此码流段数据对应的CU在编码时是使用哪套编码工具组合进行编码的。把此码流段数据输出到与此套编码工具组合对应的解码模块。
2、解码工具组合1~5的解码模块、,分别由下列单元组成:
组合1的解码模块:算术解码单元、游程解码单元、反量化单元、逆变换单元、预测解码单元;
组合2的解码模块:算术解码单元、像素串匹配解码单元;
组合3的解码模块:算术解码单元、编码中间数据串匹配解码单元、游程解码单元、预测解码单元;
组合4的解码模块:算术解码单元、向量反量化单元;
组合5的解码模块:算术解码单元、游程解码单元、反量化单元、逆变换单元、像素串匹配解码(可有损)单元;
这些模块中的每一个,都使用一套与特定的编码工具组合相对应的解码工具组合,对来自码流编码工具组合解析模块的输入码流段进行解码,重构出相应的CU的像素。这些模块的输出都与重构图像暂存模块的输入相连,把重构CU的像素输出到重构图像暂存模块。
3、重构图像暂存模块。暂存重构的一幅或多幅图像,并在适当的时候,按照图像的显示顺序,把图像送往重构图像输出模块。
4、重构图像输出模块。把解码和重构的图像,按照图像和视频显示格式,输出到显示装置。
图19显示为本发明屏幕图像解压装置采用3套解码工具组合的结构框图。如图所示,在本实施例中,所述解码模块组包括:
解码工具组合1解码模块:包括算术解码单元、游程解码单元、反量化单元、逆变换单元及预测解码单元;
解码工具组合2解码模块:包括历史像素暂存区和历史像素暂存区更新单元、排列方式解析单元、算术解码单元、行排列方式像素重排序映射单元、列排列方式像素重排序映射单元和Hilbert排列方式像素重排序映射单元及像素串匹配解码单元;
解码工具组合3解码模块:包括算术解码单元、游程解码单元、反量化单元及预测解码单元。
在具体的实施过程中,所述解压装置包括:
1、码流编码工具组合解析模块。从接收到的压缩码流中解析出此码流段数据对应的宏块在编码时是使用哪套编码工具组合进行编码的。把此码流段数据输出到与此套编码工具组合对应的解码模块。
2、解码工具组合1~3的解码模块,分别由下述的若干单元组成。
组合1的解码模块由下列单元组成:
1a)算术解码单元。对此宏块的压缩码流数据施行算术解码,得到此宏块的最优预测模式和向量数据、游程化的变换量化宏块数据和码流中的其他信息;
1b)游程解码单元。对游程化的变换量化宏块数据施行游程解码,得到变换量化宏块数据;
1c)反量化单元。对变换量化宏块数据施行反量化,得到变换后的宏块数据;
1d)逆变换单元。对变换后的宏块数据施行逆变换,得到预测误差宏块数据;
1e)预测解码单元。根据算术解码得到的最优预测模式和向量数据,获得预测宏块数据(预测值),并与预测误差宏块数据相加,得到重构宏块和像素。
组合2的解码模块由下列单元组成:
2a)历史像素暂存区和历史像素暂存区更新单元。对于任何宏块的压缩码流数据,不管使用了哪套组合的解码器来完成对其的解码,都需要把此宏块的重构像素放入到这个历史像素暂存区中:
2b)排列方式解析单元。从码流数据中解析出当前解码宏块的串匹配编码采用了哪种排列方式;
2c)算术解码单元。继续对此宏块的码流数据施行算术解码,得到像素串匹配编码的结果;
2d)行排列方式像素重排序映射单元、列排列方式像素重排序映射单元和Hilbert排列方式像素重排序映射单元,把存放在历史像素暂存区中的历史像素和当前解码宏块的像素的物理地址分别映射成对应于3种不同像素排列方式的虚拟地址,以提供3种不同的排列方式的像素给像素串匹配解码单元。当排列方式解析单元确定了当前解码宏块的串匹配编码采用的是哪种排列方式之后,也就确定了使用哪个映射单元来给像素串匹配解码单元提供正确排序的历史像素。在本实施例中,历史像素暂存区中的像素和当前解码宏块的像素本身是按照行排列方式的顺序存放的,因此,行排列方式像素重排序映射单元所做的映射就是单位映射,列排列方式像素重排序映射单元所做的映射就是前述的行列转换映射,Hilbert排列方式像素重排序映射单元所做的映射就是前述的Hilbert映射;
2e)像素串匹配解码单元。使用2b)的排列方式解析单元确定的那种排列方式(行排列或列排列或Hilbert排列之一)以及相应的像素重排序映射单元,对像素串匹配编码的结果施行像素串匹配解码,得到重构宏块和像素。
组合3的解码模块由下列单元组成:
3a)算术解码单元。对此宏块的压缩码流数据施行算术解码,得到此宏块的最优预测模式和向量数据、游程化的量化宏块数据和码流中的其他信息;
3b)游程解码单元。对游程化的量化宏块数据施行游程解码,得到量化宏块数据;
3c)反量化单元。对量化宏块数据施行反量化,得到预测误差宏块数据;
3d)预测解码单元。根据算术解码得到的最优预测模式和向量数据,获得预测宏块数据(预测值),并与预测误差宏块数据相加,得到重构宏块和像素。
这3个解码模块,都使用一套与特定的编码工具组合相对应的解码工具组合,对来自码流编码工具组合解析模块的输入码流段数据进行解码,重构出相应的宏块的像素。这些模块的输出都与重构图像暂存模块的输入相连,把重构宏块的像素输出到重构图像暂存模块。
3、重构图像暂存模块。暂存重构的一幅或多幅图像,并在适当的时候,按照图像的显示顺序,把图像送往重构图像输出模块。此外,不管使用了哪套组合的解码模块完成对一个宏块的解码,都需要把此解码宏块的重构像素放入到组合2的解码模块的历史像素暂存区中。
4、重构图像输出模块。把解码和重构的图像,按照图像和视频显示格式,输出到显示装置。
图20显示为本发明屏幕图像解压装置附加像素串匹配解码跨越CU边界的具体实施例的结构框图。如图所示,在本实施例中,所述解码模块组包括:
解码工具组合1解码模块:包括算术解码单元、游程解码单元、反量化单元、逆变换单元及预测解码单元;
解码工具组合2解码模块:包括历史像素暂存区和历史像素暂存区更新单元、算术解码单元、像素串匹配解码单元、当前编码单元的重构像素个数的累计单元以及匹配串跨越编码单元边界的超出部分像素缓存区。
在具体的实施过程中,所述的压缩装置至少包括:
1、解码工具组合1的解码模块包括:
1a)算术解码单元。对此CU的压缩码流数据施行算术解码,得到此CU的最优预测模式和向量数据、游程化的变换量化CU数据和码流中的其他信息;
1b)游程解码单元。对游程化的变换量化CU数据施行游程解码,得到变换量化CU数据;
1c)反量化单元。对变换量化CU数据施行反量化,得到变换后的CU数据;
1d)逆变换单元。对变换后的CU数据施行逆变换,得到预测误差CU数据;
1e)预测解码单元。根据算术解码得到的最优预测模式和向量数据,获得预测CU数据(预测值),并与预测误差CU数据相加,得到重构CU和像素。
2、解码工具组合2的解码模块。此模块由下列单元组成:
2a)历史像素暂存区和历史像素暂存区更新单元。对于任何CU的压缩码流数据,不管使用了哪套组合的解码器来完成对其的解码,都需要把此CU的重构像素放入到这个历史像素暂存区中;
2b)算术解码单元。对此CU的码流数据施行算术解码,得到像素串匹配编码的结果;
2c)像素串匹配解码单元。对像素串匹配编码的结果施行像素串匹配解码,得到重构CU和像素;
2d)当前CU的重构像素个数的累计单元。由于编码时对应的编码工具组合2容许一个匹配串跨越CU边界,所以组合2的解码模块,也必须能够对CU的最后一个匹配串跨越CU边界的压缩码流数据进行解码并且分辩出重构像素中的哪些像素属于当前CU哪些像素属于下一个选择组合2为最优组合的CU。本单元用来累计解码得到的此当前CU的重构像素的个数。如果个数超过N2,超出的部分像素就是属于下一个选择组合2为最优组合的CU的像素。当完整地解码完一个匹配串后此累计个数超过N2时,也表明此当前CU的全部重构像素都已经得到,对此当前CU码流数据的解码已经全部完成;
2e)匹配串跨越CU边界的超出部分像素缓存区。解码当前CU的最后一个且跨越CU边界的匹配串时,超出的这部分像素是属于下一个选择组合2为最优组合的CU的,所以这些像素必须暂时保存起来。本缓存区单元就是用来暂时存放这些像素。
3、重构图像暂存模块。暂存重构的一幅或多幅图像,并在适当的时候,按照图像的显示顺序,把图像送往重构图像输出模块。此外,不管使用了哪套组合的解码模块完成对一个CU的解码,都需要把此解码CU的重构像素放入到组合2的解码模块的历史像素暂存区中。
4、重构图像输出模块。把解码和重构的图像,按照图像和视频显示格式,输出到显示装置。
在另一种实施过程中,所述解码模块组包括:
解码工具组合1解码模块:包括算术解码单元、游程解码单元、反量化单元、逆变换单元及预测解码单元;
解码工具组合2解码模块:包括历史像素暂存区和历史像素暂存区更新单元、区间解码单元、像素串匹配解码单元、当前编码单元的重构像素个数的累计单元以及匹配串跨越编码单元边界的超出部分像素缓存区。
请参阅图21~图30,如图所示,本发明还提供一种屏幕图像压缩方法,所述压缩方法至少包括以下步骤:
1)预编码步骤,接收从一外部装置输入的图像像素组成的编码单元,并利用多个不同互补的编码工具组合同时对所述编码单元进行编码;
2)率-失真特性计算步骤,对所述编码步骤的各套编码工具组合的编码结果分别进行率-失真特性计算;
3)最优编码工具组合选择步骤,对所述率-失真特性的计算结果进行分析,然后选择出最优的编码工具组合及其对应的压缩码流数据;
4)码流暂存输出步骤,暂存所述最优的编码工具组合所产生的压缩码流数据,并在特定的时间,把所述压缩码流数据输出到压缩码流;
5)重复步骤,对一幅图像或一个视频序列中需要对其进行编码的所有编码单元,重复所述步骤1)~4)进行编码直至一幅图像或一个视频序列编码结束。
在本实施例中,所述编码工具组合为变换编码、量化编码、向量量化编码、预测编码、像素串匹配编码、宽像素串匹配编码、编码中间数据串匹配编码、游程编码、二维游程编码、可变长编码、算术编码及区间编码12种编码工具按特定数量与特定规则的组合。所述编码工具组合单元的组成必须同时满足:
1)如果选取了变换编码或量化编码或向量量化编码,就不能选取精确无损的像素串匹配编码或宽像素串匹配编码,但可以选取有损的像素串匹配编码或宽像素串匹配编码,反之,如果选取了精确无损的像素串匹配编码或宽像素串匹配编码,就不能选取变换编码或量化编码或向量量化编码,但是,如果选取了有损的像素串匹配编码或宽像素串匹配编码,则仍可选取变换编码或量化编码或向量量化编码;
2)从预测编码、变换编码、量化编码、向量量化编码、像素串匹配编码、宽像素串匹配编码、编码中间数据串匹配编码7种编码工具中,必须选取至少一种;
3)可变长编码、算术编码、区间编码中,只能选一种,而且必须选一种;
4)像素串匹配编码和编码中间数据串匹配编码中,只能选一种;
5)游程编码和二维游程编码中,只能选一种。
在具体的实施过程中,所述的压缩步骤包括:
(1)输入一幅图像或一个视频序列中的一个N1xN2(8≤N1≤256,8≤N2≤256)像素大小的CU(N1=N2=N=16时,称为宏块);
(2)对此CU,采用K套编码工具组合,同时进行预编码。其中每套组合有以上限制1)~5);
(3)比较各套组合产生的RD特性,选择RD特性最优的那套组合,称为此CU的最优编码工具组合,简称最优组合;
(4)将最优组合产生的压缩数据输出到压缩码流;
(5)重复(1)~(4)直至一幅图像或一个视频序列编码结束。
根据以上实施例所述,所述编码工具组合可为:
组合A:预测编码+变换编码+量化编码+游程编码+可变长编码;
组合B:变换编码+预测编码+量化编码+游程编码+可变长编码;
组合C:像素串匹配编码+可变长编码;
组合D:宽像素串匹配编码+可变长编码;
组合E:游程编码+编码中间数据串匹配编码+可变长编码;
组合F:二维游程编码+编码中间数据串匹配编码+可变长编码;
组合G:预测编码+游程编码+编码中间数据串匹配编码+可变长编码;
组合H:预测编码+量化编码+游程编码+算术编码;
组合I:预测编码+量化编码+算术编码;
组合J:预测编码+向量量化编码+游程编码+算术编码;
组合K:预测编码+向量量化编码+算术编码;
组合L:向量量化编码+游程编码+算术编码;
组合M:向量量化编码+算术编码;
组合N:预测编码+变换编码+量化编码+游程编码+编码中间数据串匹配编码+区间编码;
组合O:变换编码+预测编码+量化编码+游程编码+编码中间数据串匹配编码+区间编码;
组合P:预测编码+变换编码+量化编码+编码中间数据串匹配编码+区间编码;
组合Q:变换编码+预测编码+量化编码+编码中间数据串匹配编码+区间编码;
组合R:预测编码+变换编码+编码中间数据串匹配编码+区间编码;
组合S:变换编码+预测编码+编码中间数据串匹配编码+区间编码;
组合T:预测编码+游程编码+算术编码;
组合U:预测编码+算术编码;
组合V:像素串匹配编码(可有损)+变换编码+量化编码+游程编码+算术编码;
组合W:像素串匹配编码(可有损)+变换编码+游程编码+算术编码;
组合X:像素串匹配编码(可有损)+量化编码+游程编码+算术编码;
组合Y:像素串匹配编码(可有损)+游程编码+算术编码。
以上这些组合都各有特点,每套组合都对具有某种特定性质的图像可以达到比较好的压缩效果。有些组合在组成部分上类似或相近,但计算复杂度不同,因而压缩率也不同。压缩率较大的组合,所用编码工具比较多的组合,一般计算复杂度也较高,实现成本也较大。对可变长编码、算术编码、区间编码这三种熵编码工具,用到其中一种的地方,一般也能用另外两种,但具有不同的计算复杂度和压缩效果。在某项应用中,究竟如何来调配出几套组合,并使之具有最佳的压缩效果,又有可接受的计算复杂度,则需要通过一系列的实验和测试来确定。
由多套所述编码工具组合再进一步搭配结合而成的编码方案的构成可为:
一种有效的编码方案由7套编码工具组合构成:组合A、C、E、F、G、H、L;
另一种有效的编码方案由8套编码工具组合构成:组合A、B、C、E、F、G、H、L;
另一种有效的编码方案由5套编码工具组合构成:组合A、C、E、F、G;
另一种有效的编码方案由5套编码工具组合构成:组合B、C、E、F、G;
另一种有效的编码方案由6套编码工具组合构成:组合A、C、D、E、F、G;
另一种有效的编码方案由5套编码工具组合构成:组合A、D、E、F、G;
另一种有效的编码方案由8套编码工具组合构成:组合A、B、C、E、F、G、I、L;
另一种有效的编码方案由8套编码工具组合构成:组合A、B、C、E、F、G、H、J;
另一种有效的编码方案由8套编码工具组合构成:组合A、B、C、E、F、G、H、K;
另一种有效的编码方案由8套编码工具组合构成:组合A、B、C、E、F、G、H、M;
另一种有效的编码方案由7套编码工具组合构成:组合A、B、C、E、G、H、M;
另一种有效的编码方案由6套编码工具组合构成:组合A、B、C、G、H、M;
另一种有效的编码方案由5套编码工具组合构成:组合A、C、G、H、M;
另一种有效的编码方案由4套编码工具组合构成:组合A、C、G、M;
另一种有效的编码方案由3套编码工具组合构成:组合A、C、M;
另一种有效的编码方案由3套编码工具组合构成:组合A、C、G;
另一种有效的编码方案由2套编码工具组合构成:组合A、C;
另一种有效的编码方案由6套编码工具组合构成:组合A、C、E、F、G、N;
另一种有效的编码方案由6套编码工具组合构成:组合A、C、E、F、G、O;
另一种有效的编码方案由6套编码工具组合构成:组合A、C、E、F、G、P;
另一种有效的编码方案由6套编码工具组合构成:组合A、C、E、F、G、Q;
另一种有效的编码方案由6套编码工具组合构成:组合A、C、E、F、G、R;
另一种有效的编码方案由6套编码工具组合构成:组合A、C、E、F、G、S;
另一种有效的编码方案由6套编码工具组合构成:组合A、C、E、F、G、T;
另一种有效的编码方案由6套编码工具组合构成:组合A、C、E、F、G、U;
另一种有效的编码方案由5套编码工具组合构成:组合A、C、E、G、V;
另一种有效的编码方案由5套编码工具组合构成:组合A、C、E、G、W;
另一种有效的编码方案由5套编码工具组合构成:组合A、C、E、G、X;
另一种有效的编码方案由5套编码工具组合构成:组合A、C、E、G、Y。
图22显示为本发明屏幕图像压缩方法附加历史像素暂存区的流程图。如图所示,在本实施例中,任一编码工具组合使用了像素串匹配编码工具、宽像素串匹配编码工具或像素预测编码(即预测的对象是像素而不是其他编码中间数据)工具之一或其组合,则所述压缩方法还包括将已经完成编码的编码单元的像素放入一共享的历史像素暂存区的步骤。在预编码时,所述编码单元的原始输入像素已经放入历史像素暂存区,且所述最优编码工具组合为有损编码,则所述的压缩方法还包括把所述历史像素暂存区的原始输入像素替换为通过所述最优编码工具组合编码重构的像素的步骤。
在具体的实施过程中,所述压缩方法包括步骤:
(1)输入一幅图像或一个视频序列中的一个N×N(N=2B,3≤B≤8)像素大小的CU(B=4时,称为宏块);
(2)对此CU,采用K套编码工具组合,同时进行预编码;
(3)比较各套组合产生的RD特性,选择RD特性最优的那套组合,称为此CU的最优编码工具组合,简称最优组合;
(4)将最优组合产生的压缩数据输出到压缩码流;
(5)将最优组合产生的重构像素(如果最优组合是无损编码,则重构像素就是原始输入像素。如果最优组合是有损编码,则重构像素与原始输入像素不同)放入历史像素暂存区。如果在预编码时,此CU的原始输入像素已经放入历史像素暂存区,并且最优组合是有损编码,则需要用此CU的重构像素来替换已经放入历史像素暂存区的原始输入像素;
(6)重复(1)~(5)直至一幅图像或一个视频序列编码结束。
图23显示为本发明屏幕图像压缩方法附加历史中间数据暂存区的流程图。如图所示,在本实施例中,任一所述编码工具组合使用了编码中间数据串匹配编码工具及编码中间数据预测编码(即预测的对象不是像素而是其他编码中间数据)工具之一或其组合,则所述压缩方法还包括对已经完成编码的编码单元进行部分的编码中间数据串匹配编码或部分的编码中间数据预测编码(即预测的对象不是像素而是其他编码中间数据)后,把编码中间数据保存到历史中间数据暂存区,作为搜索匹配串或预测值时的候选中间数据的步骤,具体地,该步骤包括:
在预编码时,使用编码中间数据串匹配编码或编码中间数据预测编码的编码工具组合,没有把该编码单元的相应的中间数据放入了相应的历史中间数据暂存区,那么就需要使用最优编码工具组合产生的此编码单元的重构像素再次经过部分编码产生出中间数据并把这些中间数据放入历史中间数据暂存区;
在预编码时,使用编码中间数据串匹配编码或编码中间数据预测编码的编码工具组合,已经把该编码单元的相应的中间数据放入了相应的历史中间数据暂存区,但是最优编码工具组合是有损编码,那么就需要使用最优编码工具组合产生的此编码单元的重构像素再次经过部分编码产生出中间数据,或者如果最优编码工具组合恰好是该使用编码中间数据串匹配编码或编码中间数据预测编码的编码工具组合,也可以对该编码单元的压缩码流数据进行部分解码来产生中间数据,并用这些中间数据替换历史中间数据暂存区的该编码单元预编码时放入的中间数据;
在预编码时,使用编码中间数据串匹配编码或编码中间数据预测编码的编码工具组合,已经把该编码单元的相应的中间数据放入了相应的历史中间数据暂存区,并且最优编码工具组合是无损编码,那么就不必要使用最优编码工具组合产生的此编码单元的重构像素再次经过部分编码产生出中间数据并再次放入历史中间数据暂存区。
在具体的实施过程中,所述压缩方法包括步骤:
(1)输入一幅图像或一个视频序列中的一个N×N(8≤N≤256)像素大小的CU;
(2)对此CU,采用K套编码工具组合,同时进行预编码;
(3)比较各套组合产生的RD特性,选择RD特性最优的那套组合,称为此CU的最优编码工具组合,简称最优组合;
(4)将最优组合产生的压缩数据输出到压缩码流;
(5)将最优组合产生的此CU的重构像素经过部分编码(含历史中间数据暂存区的那套编码工具组合的部分编码)后的中间数据放入历史中间数据暂存区。有3种可能情况:
1)如果在预编码时,使用编码中间数据串匹配编码或编码中间数据预测编码(即预测的对象不是像素而是其他编码中间数据)的那套组合,没有把该CU的相应的中间数据放入了相应的历史中间数据暂存区,那么就需要使用最优组合产生的此CU的重构像素(与原始输入像素可能完全相同也可能不相同)再次经过部分编码产生出中间数据并把这些中间数据放入历史中间数据暂存区。
2)如果在预编码时,使用编码中间数据串匹配编码或编码中间数据预测编码(即预测的对象不是像素而是其他编码中间数据)的那套组合,已经把该CU的相应的中间数据放入了相应的历史中间数据暂存区,但是最优组合是有损编码,那么就需要使用最优组合产生的此CU的重构像素(与原始输入像素不相同)再次经过部分编码产生出中间数据并用这些中间数据替换历史中间数据暂存区的该CU预编码时放入的中间数据。如果最优组合恰好是含历史中间数据暂存区的某套组合,那么其中间数据除了可以对重构像素进行部分编码来产生,也可以对此CU的压缩码流进行部分解码来产生,也可以对此CU的其他编码中间数据进行部分编码或部分解码来产生。
3)如果在预编码时,使用编码中间数据串匹配编码或编码中间数据预测编码(即预测的对象不是像素而是其他编码中间数据)的那套组合,已经把该CU的相应的中间数据放入了相应的历史中间数据暂存区,并且最优组合是无损编码,那么就不必要使用最优组合产生的此CU的重构像素(实际上与原始输入像素完全相同)再次经过部分编码产生出中间数据并再次放入历史中间数据暂存区。
如果有多套编码工具组合使用了编码中间数据串匹配编码或编码中间数据预测编码(即预测的对象不是像素而是其他编码中间数据)从而都需要历史中间数据暂存区,由于这多套编码工具组合的编码中间数据是互不相同的,所以不能共享同一个历史中间数据暂存区。也就是每套这样的组合都有自己专用的历史中间数据暂存区,最优组合产生的此CU的重构像素经过各套组合不同的部分编码产生出不同的中间数据后,分别放入各套组合的历史中间数据暂存区。
(6)重复(1)~(5)直至一幅图像或一个视频序列编码结束。
在本实施例中,任一所述编码工具组合使用了像素串匹配编码工具及宽像素串匹配编码工具之一或其组合,则所述压缩方法还包括把已经完成编码的编码单元的像素放入历史像素暂存区,并且把所述历史像素暂存区以及当前编码图像中像素数据以整幅图像为对象的平面排列方式排列、以整幅图像为对象的套装排列方式排列、以编码单元为对象的平面排列方式排列或以编码单元为对象的套装排列方式排列的步骤。所述历史像素暂存区以及当前编码图像中像素数据的排列方式至少包括:行扫描排列方式、列扫描排列方式、之字形扫描排列方式、希尔伯特扫描排列方式。
像素串匹配编码或宽像素串匹配编码都需要比较大的历史像素暂存区,也就是比较多的搜索匹配串的候选(也习惯称为参考)像素,才能得到比较高的压缩效率。历史像素暂存区至少有1000个像素,最多可达1亿个像素。在历史像素比较多并且又是以CU为基本单位进行编码的情况下,历史像素暂存区以及当前编码图像中像素数据的排列方式,对数据的匹配程度,从而对串匹配编码的压缩效率,有很大的影响。因此,选择一种合适的排列方式,对提高压缩效率,非常重要。
像素的排列方式,首先与像素的数字表示格式有直接关系。像素的表示格式有多种。像素的表示通常是基于某个颜色空间的。RGB和YCbCr是常用的两个颜色空间。R、G、B分别代表红、绿、蓝三种颜色分量,Y代表亮度分量,Cb和Cr代表两个色度分量,分别是蓝色差和红色差。像素在RGB颜色空间中的表示格式称为像素的RGB格式。在YCbCr颜色空间中,两个色度分量可以取与亮度分量Y相同的空间分辨率,也可以取更低的空间分辨率,这称为色度的二次采样。根据色度二次采样的不同,形成不同的像素表示格式。如果两个色度分量与亮度分量Y的空间分辨率相同,称为YUV444表示格式,简称YUV格式;如果在垂直方向上两个色度分量的采样率与亮度分量Y的采样率相同,但水平方向上两个色度分量的采样率是亮度分量Y的采样率的一半,则称为YUV422格式;如果在水平和垂直方向上两个色度分量相对亮度分量都进行一半的采样,则称为YUV420格式。因此,最常用的像素表示格式有RGB格式、YUV格式、YUV222格式和YUV420格式。每个像素有三个分量,每个分量用5~16比特表示,最常用的是8比特即1个字节。三个分量的比特数可以相同也可以不同。一幅像素分辨率为W×H(即宽度或行或横坐标方向为W像素,高度或列或纵坐标方向为H像素)的图像,可用一个二维向量数组p[x][y],1≤x≤W,1≤y≤H,来表示,其中p[x][y]是一个有3个分量的向量:
p[x][y]={r[x][y],g[x][y],b[x][y]}
p[x][y]={y[x][y],u[x][y],v[x][y]},
而r[x][y]、g[x][y]、b[x][y]就是像素p[x][y]在RGB颜色空间的红、绿、蓝分量,y[x][y]、u[x][y]、v[x][y]就是像素p[x][y]在YCbCr颜色空间的亮度分量和两个色度分量。
一幅图像的像素的排列方式,如果根据像素的三个分量是分成三个平面排列还是套装起来排列,可分为平面(planar)排列方式和套装(packed)排列方式。例如,以像素的RGB格式p[x][y]={r[x][y],g[x][y],b[x][y]}为例,一种平面排列方式为:
r[1][1],r[2][],...,r[W-1][1],r[W][1],r[1][2],r[2][2],...,r[W][2],...,...,r[1][H],...,r[W-1][H],r[W][H],g[1][1],g[2][1],...,g[W-1][1],g[W][1],g[1][2],g[2][2],...,g[W][2],...,...,g[1][H],...,g[W][H],b[1][1],b[2][1],...,b[W-1][1],b[W][1],b[1][2],b[2][2],...,b[W][2],...,...,b[1][H],...,b[W][H]。另一种平面排列方式为g[x][y]在先,r[x][y]在中间,b[x][y]在最后。一种套装排列方式为:r[1][1],g[1][1],b[1][1],r[2][1],g[2][1],b[2][1],...,r[W-1][1],g[W-1][1],b[W-1][1],r[W][1],g[W][1],b[W][1],r[1][2],g[1][2],b[1][2],r[2][2],g[2][2],b[2][2],...,r[W][2],g[W][2],b[W][2],...,...,r[1][H],g[1][H],b[1][H],r[2][H],g[2][H],b[2][H],...,r[W][H],g[W][H],b[W][H]。这种套装排列方式也可以简化地表示为:
p[1][1],p[2][1],...,p[W-1][1],p[W][1],p[1][2],p[2][2],...,p[W][2],...,...,p[1][H],...,p[W][H]。
另一种套装排列方式为g[x][y]在先,r[x][y]在中间,b[x][y]在最后。按照三个分量的顺序,还可以有其他种平面排列方式和套装排列方式。
一幅图像的像素的排列方式,不管是平面排列方式还是套装排列方式,还可以进一步按照像素是先沿着行(横坐标方向)来扫描还是先沿着列(纵坐标方向)来扫描,分为行(横向)扫描排列方式和列(纵向)扫描排列方式。以上列举的一种平面排列方式和一种套装排列方式都是行扫描排列方式。一种套装列扫描排列方式为:
p[1][1],p[1][2],...,p[1][W-1],p[1][W],p[2][1],p[2][2],...,p[2][W],...,...,p[H][1],...,p[H][W]。
按照像素的扫描顺序,除了有行(水平)扫描排列方式和列(垂直)扫描排列方式外,还有之字形(zigzag)扫描排列方式和希尔伯特(Hilbert)扫描排列方式。
一幅图像内像素的排列方式,除了以整幅图像为对象,从一种角度分为平面排列方式和套装排列方式,或者从另一种角度分为行扫描排列方式、列扫描排列方式、之字形扫描排列方式、希尔伯特扫描排列方式和其他各种扫描排列方式之外,也可以先把整幅图像划分为一个一个以某种顺序排列的CU,然后以CU为对象,把CU内的像素,按照平面排列方式或者套装排列方式来排列,同时以CU为对象,进一步按照行扫描排列方式、列扫描排列方式、之字形扫描排列方式、希尔伯特扫描排列方式或其他扫描排列方式来排列。
对于由多幅图像组成的视频序列,其排列方式是首先以一定的顺序(如图像的显示顺序或图像的编码顺序)给每幅图像定一个序列号,将所有图像按序列号排列,每幅图像内,再按照上述排列方式,对像素进行排列。
本发明采用多套互补的编码工具组合进行计算机屏幕图像或视频序列压缩的方法和装置中,如果至少有一套组合使用了像素串匹配编码或宽像素串匹配编码从而需要比较大的历史像素暂存区,那么历史像素暂存区以及当前编码图像中像素数据的排列方式,可以是以整幅图像为对象的平面排列方式或套装排列方式,也可以是以CU为对象的平面排列方式或套装排列方式,不管是平面还是套装排列方式,都可以以整幅图像为对象或者以CU为对象,采用行扫描排列方式、列扫描排列方式、之字形扫描排列方式、希尔伯特扫描排列方式或其他扫描排列方式来排列。在某项应用中,究竟采用何种排列方式才能达到比较好的压缩效率,则需要通过一系列的实验和测试来确定。
图24显示为本发明屏幕图像压缩方法附加CU级别的自适应最优排列方式的流程图。如图所示,在本实施例中,任一所述编码工具组合使用了像素串匹配编码工具及宽像素串匹配编码工具之一或其组合,则所述预编码步骤中,对所述编码单元的像素数据同时采用至少两种排列方式进行预编码,并自适应地选择出最优的排列方式作为此编码工具组合预编码的排列方式。所述预编码步骤包括以下子步骤:
1)对所述编码单元,采用多种排列方式同时进行串匹配编码;
2)计算或估计各排列方式下串匹配编码的率-失真特性,选择最优的排列方式作为此预编码步骤最后采纳的排列方式;
3)完成此预编码步骤的其余各项编码子步骤,并输出此预编码步骤的结果。
在具体的实施过程中,采用多套互补的编码工具组合进行计算机屏幕图像或视频序列压缩的技术方案中,如果至少有一套组合使用了像素串匹配编码或宽像素串匹配编码从而需要比较大的历史像素暂存区,那么历史像素暂存区以及当前编码图像中像素数据究竟用什么排列方式才能达到最高的压缩效率,就是一个十分关键的技术难题。本发明是以CU为基本单位进行编码,一幅高清分辨率图像通常被划分成上千甚至近万个CU,例如,1920×1200的图像被划分成16×16的CU,就有120×75=9000个CU。对内容丰富多样且性质各异的计算机屏幕图像来说,不同的CU有不同的特性,如果整幅图像的所有CU都采用同一种排列方式的话,常常达不到理想的压缩效率。本发明的一个附加特征就是在使用含像素串匹配编码或宽像素串匹配编码的编码工具组合对一个CU进行预编码时,同时采用两种或两种以上排列方式进行预编码,然后自适应地从中选择RD特性最优的排列方式作为此组合的预编码的排列方式。以编码工具组合1内含历史像素暂存区为例,这一步的编码步骤可分解为如下子步骤:
(1)对此CU,采用J种排列方式(2≤J≤4)同时进行串匹配编码;
(2)计算或估计各排列方式下串匹配编码的RD特性,选择最优的排列方式作为此CU此组合预编码最后采纳的排列方式;
(3)完成此组合的其余各项编码子步骤,并输出此组合的预编码结果。
图25显示为本发明屏幕图像压缩方法附加匹配串跨越CU边界的流程图。如图所示,在本实施例中,任一所述编码工具组合使用了像素串匹配编码工具、宽像素串匹配编码工具或编码中间数据串匹配编码工具之一或其组合,则所述预编码步骤进行串匹配编码时,还包括对当前编码单元与前一个选择该预编码步骤中所使用的编码工具组合为最优编码工具组合的编码单元进行序号差计算,以确定匹配串能否跨越编码单元的边界的步骤。
在具体的实施过程中,以CU为基本单位进行编码时,像素串匹配编码、宽像素串匹配编码、编码中间数据串匹配编码(在本附加特征的讨论中,通称为串匹配编码)的压缩效果,不仅取决于历史数据(即串匹配搜索空间)的大小和数据排列方法,也取决于匹配串的最大可能长度。如果一个匹配串总是被限制在一个CU内,即到达CU的边界就必须被强行终止,就会降低串匹配编码的压缩效果。本发明一个可选的附加特征就是一个匹配串可能跨越CU边界,达到最大可能的匹配串长度,从而达到最高的压缩效果。采用多套互补的编码工具组合进行计算机屏幕图像或视频序列压缩时,如果其中有一套组合(设为组合k)含有串匹配编码工具,那么所谓“一个匹配串可能跨越CU边界”就是说,在CU#m(序号为m的CU)选择的最优组合是组合k,下一个选择组合k作为最优组合的CU是CU#m+i(i≥1,即CU#m和CU#m+i之间的CU都是选择了非组合k作为最优组合而i=1就意味着这两个CU之间没有选择非组合k作为最优组合的CU)的情况下,CU#m的最后若干像素或编码中间数据(简称为中间数据)与CU#m+i的前部若干像素或中间数据是紧接着排列在一起(尾首相接)进行串匹配搜索的,因此搜索得到的最优或最长匹配串中,可能有部分像素或中间数据属于CU#m而另外部分像素或中间数据属于CU#m+i。更进一步,如果CU#m+i+1选择的最优组合也是组合k,那么搜索得到的最优或最长匹配串可能进一步包括CU#m+i的全部像素或中间数据以及CU#m+i+1的起始若干像素或中间数据。
在一个实际编码方案中,通常对i有一个限制,不能超过某个预先确定的最大值I,如I=20或I=一整行像素涉及的CU的个数。如果i>I,就强行把CU#m的最后一个匹配串限制在CU#m内,不能跨越CU#m的边界。这样做的目的是不要延迟太长的时间(i越大,延迟越长)才完成对CU#m的编码并输出产生的压缩码流数据,从而把编码和解码延迟控制在一定范围内。
匹配串可能跨越CU边界的使用多套编码工具组合的计算机屏幕图像或视频序列压缩方法的编码步骤如下:
(1)输入当前CU#m及部分下一个CU#m+1的像素,即下一个CU#m+1的前部若干像素,以便搜索最优匹配串时,最后一个匹配串能够跨越CU边界进入下一个CU#m+1;
(2)对当前CU#m,采用K套编码工具组合,同时进行预编码。这一步骤可分为两部分:
1)使用含串匹配编码工具的组合k对当前CU#m进行预编码,进一步可分为下列子步骤:
1a)计算当前CU#m与前一个选择组合k为最优组合的CU(这里所说的前一个并不是指与当前CU直接相邻的前一个)的序号差i。显然,前一个选择组合k为最优组合的CU的序号是#m-i,即此前一个CU就是CU#m-i;
1b)判别是否i≤I+1。若否则跳到步骤1d),否则顺序执行;
1c)i≤I时,把CU#m-i与CU#m紧接着排列在一起(尾首相接),使用组合k完成CU#m-i的涉及到CU#m-i最后一个匹配串(可能含CU#m像素)的全部预编码;i=I+1时,强行把CU#m-i的最后一个匹配串限制在CU#m-i内,使用组合k完成CU#m-i的最后一个匹配串(不含CU#m像素)的全部预编码;
1d)使用组合k对CU#m(除了属于CU#m-i的最后一个匹配串的那部分CU#m的像素)进行预编码。显然,如果i=I+1,那么总是从当前CU(CU#m)的第一个像素开始进行预编码,即实际上并没有匹配串跨越CU#m-i与CU#m的边界。在这过程中,其中串匹配编码的最后一个匹配串可能含有下一个CU#m+1的前部若干像素甚至是全部像素;
2)使用除组合k之外的其余K-1套编码工具组合对当前CU#m进行预编码;
(3)比较各套组合产生的RD特性,选择RD特性最优的那套组合,称为此CU的最优编码工具组合,简称最优组合;
(4)判别最优组合是否是含串匹配编码工具的那套组合k。若否则跳到步骤(7),否则顺序执行;
(5)将前一个选择组合k为最优组合的CU#m-i的压缩数据输出到压缩码流。因为CU#m-i与当前CU#m都已确定选择含串匹配编码工具的组合k为最优组合,所以CU#m-i已经完成其最后一个匹配串跨越CU边界的串匹配编码和其他所有组合k的编码,因此可以将CU#m-i的压缩数据输出到压缩码流;
(6)将组合k产生的当前CU#m编码结果暂存,用于把当前CU#m逐个与后续编码CU紧接着排列在一起(尾首相接)进行涉及到CU#m的最后一个匹配串的预编码。实际上,暂存的这个CU,对后续编码CU来说,就是在上面步骤1c)中涉及到的CU#m-i。跳到步骤(8);
(7)将当前CU#m的最优组合产生的压缩数据输出到压缩码流;
(8)重复(1)~(7)直至一幅图像或一个视频序列编码结束。
图26显示为本发明屏幕图像压缩方法附加区间编码跨越CU边界的流程图。如图所示,在本实施例中,任一所述编码工具组合使用了区间编码工具,则所述预编码步骤进行区间编码时,还包括对当前编码单元与前一个选择该预编码步骤中所使用的编码工具组合为最优编码工具组合的编码单元进行序号差计算,以确定区间编码及其字节输出能否跨越编码单元边界的步骤。
在具体的实施过程中,区间编码的特点是以固定的多个比特(如4个比特或一个字节)为基本单元产生并输出编码结果。在以下本附加特征的讨论中,这个区间编码输出的基本单元设为字节,但本附加特征的所有内容都适合于这个基本单元为其他固定的多个比特的情形。本发明中,编码的基本单位是CU。如果一个CU产生的区间编码结果,不恰好是一个字节的话,就要浪费几个比特,强行凑成一个字节后输出。这样才能一个CU产生的编码结果严格对应于一个码流数据段,被放置到码流中,使解码器能够从码流中逐个区分出和重构出CU和此CU的像素。这样浪费的比特数严重影响到压缩效果。为了提高区间编码的压缩效果,本发明的一个可选的附加特征就是区间编码及其输出字节可以跨越CU边界,即对一个CU进行编码时,可以附加地对下一个CU的部分像素也进行编码,以达到正好产生出整数个区间编码字节的目的,并且这样产生的码流数据段可以与不含区间编码的编码工具组合产生的码流数据段混合放置到压缩码流中。在这个可选的附加特征中,虽然含区间编码的编码工具组合产生的含非整数个CU的码流数据段与不含区间编码的编码工具组合产生的含整数个CU的码流数据段混合放置在压缩码流中,解码器仍然能够正确地解出各个CU,区别出哪些像素属于哪个CU,重构出所有CU的像素。
采用多套互补的编码工具组合进行计算机屏幕图像或视频序列压缩时,如果其中有一套组合(设为组合k)含有区间编码工具,那么所谓“一个区间编码字节(简称为字节)可能跨越CU边界”就是说,在CU#m选择的最优组合是组合k,下一个选择组合k作为最优组合的CU是CU#m+i(i≥1,即CU#m和CU#m+i之间的CU都是选择了非组合k作为最优组合而i=1就意味着这两个CU之间没有选择非组合k作为最优组合的CU)的情况下,CU#m的最后若干像素或中间数据与CU#m+i的前部若干像素或中间数据是紧接着排列在一起(尾首相接)进行区间编码,因此,此CU#m的区间编码得到的最后一个字节中,可能也包括了部分属于CU#m+i的像素或中间数据的区间编码结果,从而所谓CU#m编码产生的码流数据段,实际也可能含有对CU#m+i的部分像素的编码结果。更进一步,如果CU#m+i+1选择的最优组合也是组合k,那么这最后一个字节中可能进一步包括CU#m+i的全部像素或中间数据以及CU#m+i+1的起始若干像素或中间数据的区间编码结果,从而所谓CU#m编码产生的码流数据段,实际也可能含有对CU#m+i的全部像素以及CU#m+i+1的部分像素的编码结果。
在一个实际编码方案中,通常对i有一个限制,不能超过某个预先确定的最大值I,如I=20或I=一整行像素涉及的CU的个数。如果i>I,就强行把CU#m的最后字节输出,不能跨越CU#m的边界。这样做的目的是不要延迟太长的时间(i越大,延迟越长)才完成对CU#m的编码并输出产生的压缩码流数据,从而把编码和解码延迟控制在一定范围内。
区间编码字节可能跨越CU边界的使用多套编码工具组合的计算机屏幕图像或视频序列压缩方法的编码步骤如下:
(1)输入当前CU#m及部分下一个CU#m+1的像素,即下一个CU#m+1的前部若干像素,以便区间编码时,最后一个输出字节能够跨越CU边界涉及到下一个CU#m+1;
(2)对当前CU#m,采用K套编码工具组合,同时进行预编码。这一步骤可分为两部分:
1)使用含区间编码工具的组合k对当前CU#m进行预编码,进一步可分为下列子步骤:
1a)计算当前CU#m与前一个选择组合k为最优组合的CU(这里所说的前一个并不是指与当前CU直接相邻的前一个)的序号差i。显然,前一个选择组合k为最优组合的CU的序号是#m-i,即此前一个CU就是CU#m-i;
1b)判别是否i≤I+1。若否则跳到步骤1d),否则顺序执行;
1c)i≤I时,把CU#m-i与CU#m紧接着排列在一起(尾首相接),使用组合k完成CU#m-i的涉及到CU#m-i最后一个区间编码字节(可能含CU#m像素)的全部预编码;i=I+1时,在CU#m-i内强行结束CU#m-i的区间编码(不含CU#m像素)并且完成CU#m-i的全部预编码;
1d)使用组合k对CU#m(除了属于CU#m-i最后一个区间编码字节的那部分CU#m的像素)进行预编码。显然,如果i=I+1,那么总是从当前CU(CU#m)的第一个像素开始进行预编码,即实际上并没有区间编码字节跨越CU#m-i与CU#m的边界。在这过程中,其中区间编码的最后一个字节可能跨越CU边界涉及下一个CU#m+1的前部若干像素;
2)使用除组合k之外的其余K-1套编码工具组合对当前CU#m进行预编码;
(3)比较各套组合产生的RD特性,选择RD特性最优的那套组合,称为此CU的最优编码工具组合,简称最优组合;
(4)判别最优组合是否是含区间编码工具的那套组合k。若否则跳到步骤(7),否则顺序执行;
(5)将前一个选择组合k为最优组合的CU#m-i的压缩数据输出到压缩码流。因为CU#m-i与当前CU#m都已确定选择含区间编码工具的组合k为最优组合,所以CU#m-i已经完成其最后一个输出字节跨越CU边界的区间编码和其他所有组合k的编码,因此可以将CU#m-i的压缩数据输出到压缩码流;
(6)将组合k产生的当前CU#m编码结果暂存,用于把当前CU#m逐个与后续编码CU紧接着排列在一起(尾首相接)进行涉及到CU#m的最后一个区间编码字节的预编码。实际上,暂存的这个CU,对后续编码CU来说,就是在上面步骤1c)中涉及到的CU#m-i。跳到步骤(8);
(7)将当前CU#m的最优组合产生的压缩数据输出到压缩码流;
(8)重复(1)~(7)直至一幅图像或一个视频序列编码结束。
图27显示为本发明屏幕图像压缩方法附加匹配串跨越CU边界,区间编码跨越匹配串边界的流程图。在本实施例中,任一所述编码工具组合使用了像素串匹配编码工具、宽像素串匹配编码工具或编码中间数据串匹配编码工具之一或其组合、以及区间编码工具,且该编码工具组合对所述编码单元先进行串匹配编码后进行区间编码,则所述预编码步骤对所述编码单元进行编码时,还包括对当前编码单元与前一个选择该预编码步骤中所使用的编码工具组合为最优编码工具组合的编码单元进行序号差计算,以确定串匹配搜索能否跨越编码单元边界及区间编码及其字节输出能否跨越匹配串边界的步骤。
在具体的实施过程中,采用多套互补的编码工具组合进行计算机屏幕图像或视频序列压缩时,如果其中有一套组合(设为组合k)含有像素串匹配编码或宽像素串匹配编码或编码中间数据串匹配编码(在本附加特征的讨论中,通称为串匹配编码)工具,并且在串匹配编码之后,再进行区间编码(在本附加特征的讨论中,区间编码输出的基本单元设为字节,但本附加特征的所有内容都适合于这个基本单元为其他固定的多个比特的情形),那么,为了达到最大的压缩效率,必须使匹配串能够跨越CU边界(两个或两个以上CU)并且区间编码字节能够跨越匹配串边界(两个或两个以上匹配串)。
匹配串可跨越CU边界并且区间编码字节可跨越匹配串边界(以下简称双跨越边界)的使用多套编码工具组合的计算机屏幕图像或视频序列压缩方法的编码步骤如下:
(1)输入当前CU#m及部分下一个CU#m+1的像素,即下一个CU#m+1的前部若干像素,以便在对CU#m进行编码时,可跨越CU#m边界附加地对下一个CU#m+1的部分像素也进行编码,以达到最长匹配串和最优整数个区间编码字节的最大压缩效率目的。因此,在对CU#m进行编码,搜索最优匹配串和输出区间编码字节时,最后若干个匹配串(即跨越CU#m与CU#m+1边界的那个匹配串和紧接其后的几个匹配串)和跨越这若干个匹配串的最后一个区间编码字节可能涉及下一个CU#m+1的部分像素;
(2)对当前CU#m,采用K套编码工具组合,同时进行预编码。这一步骤可分为两部分:
1)使用含串匹配编码和区间编码工具的组合k对当前CU#m进行预编码,进一步可分为下列子步骤:
1a)计算当前CU#m与前一个选择组合k为最优组合的CU(这里所说的前一个并不是指与当前CU直接相邻的前一个)的序号差i。显然,前一个选择组合k为最优组合的CU的序号是#m-i,即此前一个CU就是CU#m-i;
1b)判别是否i≤I+1。若否则跳到步骤1d),否则顺序执行;
1c)i≤I时,把CU#m-i与CU#m紧接着排列在一起(尾首相接),使用组合k完成CU#m-i的附加了CU#m部分像素的涉及到CU#m-i最后若干个匹配串(即跨越CU#m-i与CU#m边界的那个匹配串和紧接其后的几个匹配串)和跨越这若干个匹配串的最后一个区间编码字节的全部预编码;i=I+1时,强行把CU#m-i的最后一个匹配串限制在CU#m-i内并且在CU#m-i内强行结束CU#m-i的区间编码和输出最后一个区间编码字节,使用组合k完成CU#m-i的不含任何CU#m像素的全部预编码;
1d)使用组合k对CU#m(除了以上i≤I时对CU#m-i与CU#m边界结合部分进行编码的子步骤中已经涉及到的那部分CU#m的像素)进行预编码。显然,如果i=I+1,那么总是从当前CU#m的第一个像素开始进行预编码,即实际上并没有发生跨越CU#m-i与CU#m边界的编码。在这过程中,可跨越CU#m边界附加地对下一个CU#m+1的部分像素也进行预编码,以达到最长匹配串和最优整数个区间编码字节的最大压缩效率目的;
2)使用除组合k之外的其余K-1套编码工具组合对当前CU#m进行预编码;
(3)比较各套组合产生的RD特性,选择RD特性最优的那套组合,称为此CU的最优编码工具组合,简称最优组合;
(4)判别最优组合是否是含串匹配编码和区间编码工具的那套组合k。若否则跳到步骤(7),否则顺序执行;
(5)将前一个选择组合k为最优组合的CU#m-i的压缩数据输出到压缩码流。因为CU#m-i与当前CU#m都已确定选择含串匹配编码和区间编码工具的组合k为最优组合,所以CU#m-i已经完成其跨越CU#m-i与CU#m边界的串匹配编码、区间编码和其他所有组合k的编码,因此可以将CU#m-i的压缩数据输出到压缩码流;
(6)将组合k产生的当前CU#m编码结果暂存,用于把当前CU#m逐个与后续编码CU紧接着排列在一起(尾首相接)进行涉及到当前CU#m与后续编码CU边界部分的预编码。实际上,暂存的这个CU,对后续编码CU来说,就是在上面步骤1c)中涉及到的CU#m-i。跳到步骤(8);
(7)将当前CU#m的最优组合产生的压缩数据输出到压缩码流;
(8)重复(1)~(7)直至一幅图像或一个视频序列编码结束。
在一具体实施过程中,所述预编码步骤包括:
预编码子步骤1:包括预测编码、变换编码、量化编码、重构、游程编码、算数编码及码率控制步骤;
预编码子步骤2:包括对当前编码单元与前一个选择该预编码子步骤2中所使用的编码工具组合为最优编码工具组合的编码单元进行序号差计算,以确定区间编码字节及其所涉及的匹配串能否跨越编码单元边界的步骤、将最优编码工具组合产生的当前编码编码单元的重构像素放入历史像素暂存区的步骤、像素串匹配编码步骤、区间编码步骤以及把最优工具组合组合产生的编码单元的编码数据和结果放入暂存区的步骤。
图41a为本实施例中码流的组成例,由11个CU的输出压缩码流数据(码流段)组成,其中6个CU选择本实施例预编码子步骤1中的编码工具(称为组合1)作为最优组合,5个CU选择本实施例预编码子步骤2中的编码工具(称为组合2)作为最优组合,组合1和组合2产生的码流段混合交错放置在码流中。组合2的码流段,总是含整数个区间编码输出字节。但这整数个区间编码输出字节可能是对非整数个最优匹配串的编码结果,也包含多个选择组合2作为最优组合的CU的像素。
图41b揭示了图41a中选择组合2为最优组合的5个CU(#n+1、#n+3、#n+4、#n+9、#n+10)的码流段的构成的一个例子。对CU#n+1进行像素串匹配编码的结果是5个最优匹配串(匹配串1~5),其中第4个匹配串跨越CU#n+1和CU#n+3的边界,含有CU#n+1的若干像素和CU#n+3的若干像素,而第5个匹配串则都是CU#n+3的像素。对这5个最优匹配串进行区间编码的结果是4个输出字节。这4个输出字节包括了对4个匹配串的完整编码和对第5个匹配串的部分编码。因此这4个字节包含了对CU#n+1的全部像素的编码,可以作为对CU#n+1进行了完整最终编码的CU#n+1码流段,输出到压缩码流中。同样,对CU#n+3、CU#n+4、CU#n+9、CU#n+10进行像素串匹配编码的结果分别是2个最优匹配串(匹配串6~7)、3个最优匹配串(匹配串8~10)、3个最优匹配串(匹配串11~13)、2个最优匹配串(匹配串14~15)。而CU#n+3、CU#n+4、CU#n+9、CU#n+10的最终区间编码结果的输出字节分别3个字节(字节5~7)、3个字节(字节8~10)、4个字节(字节11~14)、2个字节(字节15~16)。
图28显示为本发明屏幕图像压缩方法采用5套编码工具组合的流程图。如图所示,在本实施例中,所述预编码步骤包括:
预编码子步骤1:包括预测编码、变换编码、量化编码、游程编码及算术编码步骤;
预编码子步骤2:包括像素串匹配编码及算术编码步骤;
预编码子步骤3:包括预测编码、游程编码、编码中间数据串匹配编码及算术编码步骤;
预编码子步骤4:包括向量量化编码及算术编码步骤;
预编码子步骤5:包括像素串匹配编码、变换编码、量化编码、游程编码及算术编码步骤。
在具体的实施过程中,对计算机屏幕图像及其组成的视频序列,采用5套编码工具组合,以CU为编码单位同时进行预编码。本实施例中,编码一幅图像或一个视频序列的编码步骤如下:
(1)输入一幅图像或一个视频序列中的一个N×N(8≤N≤256)像素大小的CU(N=16时,称为宏块);
(2)对此CU,采用5套编码工具组合,同时进行预编码。这5套编码工具和每套内编码流程的子步骤为:
预编码子步骤1:包括预测编码、变换编码、量化编码、游程编码及算术编码步骤;
预编码子步骤2:包括像素串匹配编码及算术编码步骤;
预编码子步骤3:包括预测编码、游程编码、编码中间数据串匹配编码及算术编码步骤;
预编码子步骤4:包括向量量化编码及算术编码步骤;
预编码子步骤5:包括像素串匹配编码、变换编码、量化编码、游程编码及算术编码步骤。
以上编码工具中,预测编码(所谓预测可以是帧内预测也可以是帧间预测)、变换编码、量化编码、游程编码、算术编码都是本领域技术人员熟悉的工具,在此就不再详细叙述。本实施例中的像素串匹配编码就是以像素为编码对象数据的串匹配编码。而一般的数据串匹配编码也是本领域技术人员熟悉的工具,例如zip,gzip,7zip等常见文件压缩软件中使用的在已经完成编码的“历史数据”中搜索最优(通常是匹配长度最长而在位置上最接近)匹配串,以很少的比特数来表示这些匹配串从而达到压缩效果的编码工具。特别要说明的是本发明中使用的串匹配编码可以是精确无损的串匹配编码,也可以是有损的串匹配编码。由于匹配的结果可能不是完全精确,而是有一定误差,所以可能需要对匹配误差再进行编码,如以上第5套编码工具中使用变换编码、量化编码、游程编码、算术编码对匹配误差再进行编码。本实施例中的编码中间数据串匹配编码就是以游程编码的结果为编码对象数据的串匹配编码。本实施例中的向量量化编码也是本领域技术人员熟悉的工具,有多种形式,一种形式是把若干像素(或像素组)看成若干向量,然后把这些向量用少数仔细选择的向量来表示,以达到压缩效果。向量量化编码也可能是有损的。
(3)比较各套组合产生的RD函数J=D+λ×R(其中D是失真,R是编码产生的比特数或比特率,λ是一个非负实数,称为拉格朗日乘子),选择RD函数最优的那套组合,称为此CU的最优编码工具组合,简称最优组合。在根据各套组合产生的RD函数选择最优组合时,也可以采用不同的变种或快速确定方法,比如:
第一种:比较各有损压缩的组合,确定最优的有损压缩组合;比较各无损压缩的组合,确定最优的无损压缩组合;然后比较最优的有损压缩组合和最优的无损压缩组合,确定最终的最优组合;
第二种:如果某个组合的RD函数小于一个预先确定的阈值,就提前结束比较过程,确定此组合为最优组合。
第三种:对无损压缩,失真D设为一个适当的正数,以使选择更偏向有损压缩组合。
第四种:对无损压缩,失真D设为一个适当的负数,以使选择更偏向无损压缩组合;
(4)将最优组合产生的压缩数据输出到压缩码流;
(5)重复(1)~(4)直至一幅图像或一个视频序列编码结束。
图29a~图29d显示为本发明屏幕图像压缩方法采用3套编码工具组合的流程图。如图所示,在本实施例中,所述预编码步骤包括:
预编码子步骤1:包括预测编码、变换编码、量化编码、重构、游程编码、算术编码及码率控制步骤;
预编码子步骤2:包括行排列方式像素重排序映射、列排列方式像素重排序映射、Hilbert排列方式像素重排序映射、像素串匹配编码及率-失真特性计算估计和最优排列方式选择及算术编码,并把通过编码后的编码单元像素放入历史像素暂存区,并在需要时对所述历史像素暂存区进行更新的步骤;
预编码子步骤3:包括预测编码、量化编码、重构、游程编码、算术编码及码率控制步骤。
在具体的实施过程中,对计算机屏幕图像及其组成的视频序列,采用3套编码工具组合,以宏块为编码单位同时进行预编码。其中一套编码工具组合使用的含历史像素暂存区的像素串匹配编码中,以宏块为单位自适应地选择3种排列方式之一为最优排列方式。本实施例中,编码一幅图像或一个视频序列的编码步骤如下:
(1)输入一幅图像或一个视频序列中的一个宏块;
(2)对此输入编码宏块,采用下列3套编码工具组合,同时进行预编码;
第1套:预测编码→变换编码→量化编码→游程编码→算术编码
第2套:像素串匹配编码→算术编码
第3套:预测编码→量化编码→游程编码→算术编码
其中第1、3套组合是有损编码组合,而第2套组合使用精确的像素串匹配因而是无损编码组合。第1套编码工具组合的编码流程子步骤为:
1a)预测编码。以已经完成编码的重构图像的像素为参考,进行帧内和帧间预测搜索,得到最优预测模式和向量以及相应的预测宏块数据(预测值),计算输入编码宏块与预测宏块的差得到预测误差宏块;
1b)变换编码。对预测误差宏块数据施行变换编码;
1c)量化编码。对变换后的宏块数据施行量化编码得到量化后的变换量化宏块数据;
1d)重构。对量化后的变换量化宏块数据施行反量化和逆变换,再加上预测宏块数据后得到重构宏块和像素,作为后续编码宏块的预测编码子步骤1a)的参考像素;
1e)游程编码。对量化后的变换量化宏块数据施行游程编码,得到游程化的变换量化宏块数据;
1f)算术编码。对游程化的变换量化宏块数据和预测编码得到的最优预测模式和向量数据施行算术编码以达到进一步的压缩效果并产生第1套组合的最后预编码结果;
1g)码率控制(可选)。即根据已完成编码的宏块的编码结果及其他信息确定后续宏块编码时量化和反量化所使用的量化参数qp。这一子步骤是可选的,如果不选这一子步骤,qp就是一个预先确定的常数。
第2套编码工具组合的编码流程子步骤为:
2a)对此宏块,采用下列3种排列方式同时进行像素串匹配编码:
2a-1)行(水平)排列方式,即一个宏块中的16×16=256个像素按照下列方式排列:首先是第1行的像素按照从左到右的顺序排列并表示为p[1],p[2],p[3],p[4],p[5],p[6],p[7],p[8],p[9],p[10],p[11],p[12],p[13],p[14],p[15],p[16],或简洁地表示为p[i],1≤i≤16,接着是第2行的像素按照从左到右的顺序排列并表示为p[16+i],1≤i≤16,依此类推,第3、4、5、6、7、8、9、10、11、12、13、14、15、16行的像素分别按照从左到右的顺序排列并表示为p[2×16+i],1≤i≤16、p[3×16+i],1≤i≤16、p[4×16+i],1≤i≤16、p[5×16+i],1≤i≤16、p[6×16+i],1≤i≤16、p[7×16+i],1≤i≤16、p[8×16+i],1≤i≤16、p[9×16+i],1≤i≤16、p[10×16+i],1≤i≤16、p[11×16+i],1≤i≤16、p[12×16+i],1≤i≤16、p[13×16+i],1≤i≤16、p[14×16+i],1≤i≤16、p[15×16+i],1≤i≤16。
2a-2)列(垂直)排列方式,即一个宏块中的256个像素按照下列方式排列:首先是第1列的像素按照从上到下的顺序排列,接着是第2列的像素按照从上到下的顺序排列,依此类推,第3、4、5、6、7、8、9、10、11、12、13、14、15、16列的像素分别按照从上到下的顺序依次排列。如果使用以上的行排列时各个像素的表示符号p[i],1≤i≤256来表示各个像素,那么,列排列方式中,排在第1列从上到下的像素依次是p[1],p[17]=p[1+16],p[1+2×16],p[1+3×16],p[1+4×16],p[1+5×16],p[1+6×16],p[1+7×16],p[1+8×16],p[1+9×16],p[1+10×16],p[1+11×16],p[1+12×16],p[1+13×16],p[1+14×16],p[1+15×16],或简洁地表示为p[1+i×16],0≤i≤15,接着排在第2列从上到下的像素依次是p[2+i×16],0≤i≤15,依此类推,排在第3、4、5、6、7、8、9、10、11、12、13、14、15、16列从上到下的像素依次是p[3+i×16],0≤i≤15、p[4+i×16],0≤i≤15、p[5+i×16],0≤i≤15、p[6+i×16],0≤i≤15、p[7+i×16],0≤i≤15、p[8+i×16],0≤i≤15、p[9+i×16],0≤i≤15、p[10+i×16],0≤i≤15、p[11+i×16],0≤i≤15、p[12+i×16],0≤i≤15、p[13+i×16],0≤i≤15、p[14+i×16],0≤i≤15、p[15+i×16],0≤i≤15、p[16+i×16],0≤i≤15。
2a-3)Hilbert排列方式,其特点是线性排列后任意两个相邻的像素也都是原宏块中位置相邻(水平相邻或垂直相邻)的两个像素。如果使用以上的行排列时各个像素的编号i,1≤i≤256来表示,Hilbert排列方式中像素的编号的排列顺序就是:
1,17,18,2,3,4,20,19,35,36,52,51,50,34,33,49,65,66,82,81,97,113,114,98,99,115,116,100,84,83,67,68,69,70,86,85,101,117,118,102,103,119,120,104,88,87,71,72,56,40,39,55,54,53,37,3822,21,5,6,7,23,24,8,9,10,26,25,41,57,58,42,43,59,60,44,28,27,11,12,13,29,30,14,15,16,32,31,47,48,64,63,62,46,45,61,77,93,94,7879,80,96,95,111,112,128,127,126,110,109,125,124,123,107,108,92,76,75,91,90,74,73,89,105,106,122,121,137,138,154,153,169,185,186,170,171,187,188,172,156,155,139,140,141,157,158,142,143,144,160,159,175,176,192,191,190,174,173,189,205,221,222,206,207,208,224,223,239,240,256,255,254,238,237,253,252,251,235,236,220,204,203,219,218,202,201,217,233,234,250,249,248,232,231,247,246,245,229,230,214,213,197,198,199,215,216,200,184,183,167,168,152,136,135,151,150,134,133,149,165,166,182,181,180,179,163,164,148,132,131,147,146,130,129,145,161,162,178,177,192,209,210,194,195,196,212,211,227,228,244,243,242,226,225,241。
对此宏块采用3种排列方式进行像素串匹配编码时,像素串匹配搜索的历史像素都来自同一个历史像素暂存区。
2b)计算或估计各排列方式下的RD特性,选择最优的排列方式作为此宏块此组合预编码最后采纳的排列方式;
2c)算术编码。对像素串匹配编码的结果施行算术编码以达到进一步的压缩效果并产生第2套组合的最后预编码结果。
第3套编码工具组合的编码流程子步骤为:
3a)预测编码。以已经完成编码的重构图像的像素为参考,进行帧内和帧间预测搜索,得到最优预测模式和向量以及相应的预测宏块数据(预测值),计算输入编码宏块与预测宏块的差得到预测误差宏块;
3b)量化编码。对预测误差宏块数据施行量化编码得到量化后的量化宏块数据;
3c)重构。对量化后的量化宏块数据施行反量化,再加上预测宏块数据后得到重构宏块和像素,作为后续编码宏块的预测编码子步骤3a)的参考像素;
3d)游程编码。对量化后的量化宏块数据施行游程编码,得到游程化的量化宏块数据;
3e)算术编码。对游程化的量化宏块数据和预测编码得到的最优预测模式和向量数据施行算术编码以达到进一步的压缩效果并产生第3套组合的最后预编码结果;
3f)码率控制(可选)。即根据已完成编码的宏块的编码结果及其他信息确定后续宏块编码时量化和反量化所使用的量化参数qp。这一子步骤是可选的,如果不选这一子步骤,qp就是一个预先确定的常数。
(3)比较3套组合产生的RD特性,选择RD特性最优的那套组合,称为此宏块的最优编码工具组合,简称最优组合;
(4)将最优组合产生的压缩数据输出到压缩码流;
(5)将最优组合产生的重构像素放入历史像素暂存区;
(6)重复(1)~(5)直至一幅图像或一个视频序列编码结束。
图30a~图30c显示为本发明屏幕图像压缩方法附加像素串匹配编码跨越CU边界的具体实施例的流程图。如图所示,在本实施例中,所述预编码步骤包括:
预编码子步骤1:包括预测编码、变换编码、量化编码、重构、游程编码、算术编码及码率控制步骤;
预编码子步骤2:包括对当前编码单元与前一个选择该预编码子步骤2中所使用的编码工具组合为最优编码工具组合的编码单元进行序号差计算,以确定匹配串能否跨越编码单元的边界的步骤、将最优编码工具组合产生的当前编码编码单元的重构像素放入历史像素暂存区的步骤、像素串匹配编码步骤、算术编码步骤以及把最优工具组合组合产生的编码单元的编码数据和结果放入暂存区的步骤。
在具体的实施过程中,采用2套编码工具组合同时进行预编码。其中一套编码工具组合使用的像素串匹配编码中,所有CU都采用1种固定排列方式(如列排列方式或其他任何一种排列方式),并且搜索最优匹配串时可以跨越CU边界来进行搜索,即一个匹配串可能跨越CU边界,以达到最大可能的匹配串长度,从而达到最高的压缩效果。本实施例中,编码一幅图像或一个视频序列的编码步骤如下:
(1)输入当前CU#m及部分下一个CU#m+1的像素,即下一个CU#m+1中排在前面的若干像素,以便搜索最优匹配串时,最后一个匹配串能够跨越CU边界进入下一个CU#m+1;
(2)对输入CU#m,采用下列2套编码工具组合,同时进行预编码:
第1套:(组合1)预测编码→变换编码→量化编码→游程编码→算术编码
第2套:(组合2)像素串匹配编码→算术编码
第1套编码工具组合的编码流程子步骤预测编码。以已经完成编码的重构图像的像素为参考,进行帧内和帧间预测搜索,得到最优预测模式和向量以及相应的预测CU数据(预测值),计算输入编码CU与预测CU的差得到预测误差CU;
1a)变换编码。对预测误差CU数据施行变换编码;
1b)量化编码。对变换后的CU数据施行量化编码得到量化后的变换量化CU数据;
1c)重构。对量化后的变换量化CU数据施行反量化和逆变换,再加上预测CU数据后得到重构CU和像素,作为后续编码CU的预测编码子步骤1a)的参考像素;
1d)游程编码。对量化后的变换量化CU数据施行游程编码,得到游程化的变换量化CU数据;
1e)算术编码。对游程化的变换量化CU数据和预测编码得到的最优预测模式和向量数据施行算术编码以达到进一步的压缩效果并产生第1套组合的最后预编码结果;
1f)码率控制(可选)。即根据已完成编码的CU的编码结果及其他信息确定后续CU编码时量化和反量化所使用的量化参数qp。这一子步骤是可选的,如果不选这一子步骤,qp就是一个预先确定的常数。
第2套编码工具组合的编码流程子步骤为:
2a)计算当前CU#m与前一个选择组合2为最优组合的CU(这里所说的前一个并不是指与当前CU直接相邻的前一个)的序号差i。显然,前一个选择组合2为最优组合的CU的序号是#m-i,即此前一个CU就是CU#m-i;
2b)判别是否i≤I+1。若否则跳到步骤1d),否则顺序执行;
2c)i≤I时,把CU#m-i与CU#m紧接着排列在一起(尾首相接),搜索CU#m-i的最后一个最优匹配串(可能含CU#m像素);i=I+1时,强行把CU#m-i的最后一个匹配串终止、限制在CU#m-i内,不含CU#m的像素;
2d)对CU#m(除了属于CU#m-i的最后一个匹配串的那部分CU#m的像素)进行像素串匹配编码。显然,如果i=I+1,那么总是从当前CU(CU#m)的第一个像素开始进行像素串匹配编码,即实际上并没有匹配串跨越CU#m-i与CU#m的边界。在这过程中,像素串匹配编码的最后一个匹配串可能含有下一个CU#m+1的排在前面的若干像素甚至是全部像素;
2e)算术编码。对像素串匹配编码的结果施行算术编码以达到进一步的压缩效果并产生第2套组合的最后预编码结果;
2f)把CU#m的像素放入历史像素暂存区。
(3)比较2套组合产生的RD特性,选择RD特性最优的那套组合,称为此CU的最优编码工具组合,简称最优组合;
(4)判别最优组合是否是组合2。若否则跳到步骤(7),否则顺序执行;
(5)将前一个选择组合2为最优组合的CU#m-i的压缩数据输出到压缩码流。因为CU#m-i与当前CU#m都已确定选择组合2为最优组合,所以CU#m-i已经完成其最后一个匹配串跨越CU边界的像素串匹配编码和算术编码,因此可以将CU#m-i的压缩数据输出到压缩码流;
(6)将组合2产生的当前CU#m编码结果暂存。当前CU#m的最后一个尚未完成的匹配串,将用于逐个与后续编码CU紧接着排列在一起(尾首相接)进行像素串匹配搜索,以得到最后一个且可能跨越CU边界的最优匹配串。实际上,暂存的这个CU,对后续编码CU来说,就是在上面步骤1c)中涉及到的CU#m-i。跳到步骤(9);
(7)将当前CU#m的最优组合产生的压缩数据输出到压缩码流;
(8)将组合1产生的当前CU#m重构像素替换在子步骤1f)中放入历史像素暂存区的CU#m原始像素;
(9)重复(1)~(8)直至一幅图像或一个视频序列编码结束。
图42为本发明的几个宽像素的例子,在本实施例中,宽像素是把若干相邻像素看成是一个“大像素”或称“宽像素”。一个宏块有16x16个像素(单像素)。
如果水平相邻2个单像素组成1个宽像素,那么1个宏块就有8x16个宽像素。
如果垂直相邻2个单像素组成1个宽像素,那么1个宏块就有16x8个宽像素。
如果水平垂直相邻4个单像素组成1个宽像素,那么1个宏块就有8x8个宽像素。
本发明中所有涉及到像素(单像素)串匹配编码的装置和方法,都可以将其中的“像素”置换成“宽像素”而变成涉及到宽像素串匹配编码的装置和方法。
请参阅图31~图40,如图所示,本发明还提供一种屏幕图像解压方法,所述解压方法至少包括以下步骤:
解析步骤,接收从一外部装置输入的压缩码流,解析出所述码流段数据在压缩过程中所使用的编码工具组合,并选择一与所述编码工具组合对应的解码工具组合把所述码流段数据输出;
解码步骤,采用所述解析步骤所选择的解码工具组合对所述码流段数据进行解码,并重构出与所述码流段数据相应的编码单元的像素;
重构图像暂存输出步骤,对压缩码流所含的所有编码单元,重复所述解析步骤和解码步骤,重构所述解码步骤输入的图像像素组成的编码单元的像素并暂存重构后的一幅或多幅图像,并按照图像和视频显示格式输出重构后的整幅图像或整个视频序列。
在本实施例中,所述解码工具组合由逆变换解码、反量化解码、向量反量化解码、预测解码、像素串匹配解码、宽像素串匹配解码、编码中间数据串匹配解码、游程解码、二维游程解码、可变长解码、算术解码、区间解码12种解码工具按照特定的数量与特定的规则组成。
在具体的实施过程中,所述解码和重构步骤如下:
(1)从输入的压缩码流中读出一个CU的码流数据;
(2)从码流数据中解析出此CU的最优编码工具组合是哪套组合k;
(3)使用编码工具组合k的解码器对此CU进行解码;
(4)输出解码和重构得到的CU的像素;
(5)重复(1)~(4)直至压缩码流内的所有CU都解码完毕,重构出整幅图像或整个视频序列。
以上解码流程和步骤中,所谓某套编码工具组合的解码器,是由各编码工具所对应的解码工具组成。以下是本发明中使用的12种编码工具所对应的解码工具:
逆变换解码:对应于变换编码
反量化解码:对应于量化编码
向量反量化解码:对应于向量量化编码
预测解码:对应于预测编码
像素串匹配解码:对应于像素串匹配编码
宽像素串匹配解码:对应于宽像素串匹配编码
编码中间数据串匹配解码:对应于编码中间数据串匹配编码
游程解码:对应于游程编码
二维游程解码:对应于二维游程编码
可变长解码:对应于可变长编码
算术解码:对应于算术编码
区间解码:对应于区间编码
例如,对应于编码工具组合“预测编码+变换编码+量化编码+游程编码+可变长编码”的解码器就是解码工具组合“预测解码+逆变换解码+反量化解码+游程解码+可变长解码”。
图32显示为本发明屏幕图像解压方法附加历史像素暂存区的流程图。如图所示,在本实施例中,任一所述解码工具组合使用了像素串匹配解码工具、宽像素串匹配解码工具及像素预测解码之一或其组合,则所述解码步骤还包括把解码重构的编码单元的像素放入历史像素暂存区的步骤并按照图像和视频显示格式输出重构后的整幅图像或整个视频序列。
在具体的实施过程中,所述解码和重构步骤如下:
(1)从输入的压缩码流中读出一个CU的码流数据;
(2)从码流数据中解析出此CU的最优编码工具组合是哪套组合k;
(3)使用编码工具组合k的解码器对此CU进行解码;
(4)输出解码和重构得到的此CU的像素;
(5)不管解码此CU时使用了哪套组合k的解码器,都把此CU的重构像素放入历史像素暂存区;
(6)重复(1)~(5)直至压缩码流内的所有CU都解码完毕,重构出整幅图像或整个视频序列。
图33显示为本发明屏幕图像解压方法附加历史中间数据暂存区的流程图。如图所示,在本实施例中,任一所述解码工具组合使用了解码中间数据预测解码或解码中间数据串匹配解码之一或其组合,则所述解码步骤还包括把所述编码单元重构像素经过部分编码后的中间数据放入历史中间数据暂存区的步骤。
在具体的实施过程中,解码和重构步骤如下:
(1)从输入的压缩码流中读出一个CU的码流数据;
(2)从码流数据中解析出此CU的最优编码工具组合是哪套组合k;
(3)使用编码工具组合k的解码器对此CU进行解码;
(4)输出解码和重构得到的此CU的像素;
(5)不管解码此CU时使用了哪套组合k的解码器,都将此CU的重构像素经过部分编码后的中间数据放入历史中间数据暂存区。特别是,如果组合k不是含历史中间数据暂存区的那套组合,就需要对此CU的重构像素再进行一次部分编码以产生中间数据并把此中间数据放入历史中间数据暂存区,否则此CU的中间数据可能已经存在,就不一定需要再进行一次部分编码以产生中间数据,只要把已经存在的中间数据放入历史中间数据暂存区就可以了;
(6)重复(1)~(5)直至压缩码流内的所有CU都解码完毕,重构出整幅图像或整个视频序列。
图34显示为本发明屏幕图像解压方法附加CU级别的自适应最优排列方式的流程图。如图所示,在本实施例中,任一所述解码工具组合用了像素串匹配解码工具及宽像素串匹配解码工具之一或其组合,则所述解码步骤包括以下子步骤:
1)从码流数据中解析出所述编码单元的串匹配编码采用了哪种排列方式;
2)完成此解码步骤进行串匹配解码前所需要完成的各项解码子步骤;
3)选择采用与串匹配编码排列方式对应的串匹配解码器对所述编码单元的压缩码流段数据进行串匹配解码;
4)完成此解码步骤其余各项解码子步骤,并输出所述编码单元的重构像素。
图35显示为本发明屏幕图像解压方法附加匹配串跨越CU边界的流程图。如图所示,在本实施例中,任一所述解码工具组合使用了像素串匹配解码工具、宽像素串匹配解码工具或解码中间数据串匹配解码工具之一或其组合,则所述解码步骤对编码单元的压缩码流数据段进行解码时,还包括通过累计解码得到的重构像素的个数以判断重构像素是属于当前编码单元的像素还是属于下一采用该同样解码工具组合进行解码的编码单元的像素的步骤以及把属于下一编码单元的部分像素放入一匹配串跨越编码单元边界的超出部分像素缓存区的步骤。
在具体的实施过程中,在匹配串跨越CU边界(即选择含串匹配编码工具的那套组合k为最优组合的某个CU#m-i的最后一个匹配串不但有CU#m-i的像素而且也有下一个选择组合k为最优组合的CU#m的像素)的情况下,CU#m-i的对应压缩码流段中,不但有CU#m-i的像素而且也有CU#m的像素。因此,对CU#m-i的对应压缩码流段进行解码时,不但能得到CU#m-i的重构像素,也能得到CU#m的部分重构像素。同样,对CU#m的对应压缩码流段进行解码时,不但能得到CU#m的重构像素,也能得到再下一个选择组合k为最优组合的CU的部分重构像素。因此在对这样的CU的对应压缩码流段进行解码时,必须分清楚得到的重构像素哪些是本CU的,哪些是下一个CU的。由于每个CU的像素的个数(以下用N2表示)是预先确定的,所以在解码过程中,可以通过累计解码得到的重构像素的个数来判断哪些像素是本CU的,哪些像素是下一个CU的。匹配串可能跨越CU边界的使用多套编码工具组合的计算机屏幕图像或视频序列压缩方法的解码步骤如下:
(1)从输入的压缩码流中读出一个CU的码流数据;
(2)从码流数据中解析出此CU的最优编码工具组合是哪套组合;
(3)使用(2)解析出的那套组合的解码器对此CU进行解码。这一步骤可分为两种情况:
1)(2)解析出的那套组合是含串匹配编码工具的组合k。本步骤可进一步分为下列子步骤:
1a)使用含串匹配编码工具的组合k的解码器对此CU码流数据进行解码。如果此CU的最后一个匹配串跨越CU的边界,那么解码得到的重构像素中就有一部分属于下一个选择组合k为最优组合的CU;
1b)累计解码得到的此当前CU的重构像素的个数。如果个数超过N2,超出的部分像素就是属于下一个选择组合k为最优组合的CU的像素。当完整地解码完一个匹配串后此累计个数超过N2时,也表明此当前CU的全部重构像素都已经得到,对此当前CU码流数据的解码已经全部完成;
1c)把超出的部分像素放入下一个选择组合k为最优组合的CU的像素缓存区。当对下一个选择组合k为最优组合的CU码流数据进行解码时,这个像素缓存区内的像素就是下一个选择组合k为最优组合的CU的重构像素的一部分;
2)(2)解析出的那套组合不是含串匹配编码工具的组合k。使用除组合k之外的其余各套编码工具组合的解码器之一对此CU进行解码
(4)输出解码和重构得到的CU的像素;
(5)重复(1)~(4)直至压缩码流内的所有CU都解码完毕,重构出整幅图像或整个视频序列。
图36显示为本发明屏幕图像解压方法附加区间解码跨越CU边界的流程图。如图所示,在本实施例中,任一所述解码工具组合使用了区间解码工具,则所述解码步骤对编码单元的压缩码流数据段进行解码时,还包括通过累计解码得到的重构像素的个数以判断重构像素是属于当前编码单元的像素还是属于下一采用该同样解码工具组合进行解码的编码单元的像素的步骤以及把属于下一编码单元的部分像素放入一区间编码字节跨越编码单元边界的超出部分像素缓存区的步骤。
在具体的实施过程中,在区间编码跨越CU边界(即选择含区间编码工具的那套组合k为最优组合的某个CU#m-i的最后一个区间编码字节不但有CU#m-i的像素而且也有下一个选择组合k为最优组合的CU#m的像素)的情况下,CU#m-i的对应压缩码流段中,不但有CU#m-i的像素而且也有CU#m的像素。因此,对CU#m-i的对应压缩码流段进行解码时,不但能得到CU#m-i的重构像素,也能得到CU#m的部分重构像素。同样,对CU#m的对应压缩码流段进行解码时,不但能得到CU#m的重构像素,也能得到再下一个选择组合k为最优组合的CU的部分重构像素。因此在对这样的CU的对应压缩码流段进行解码时,必须分清楚得到的重构像素哪些是本CU的,哪些是下一个CU的。由于每个CU的像素的个数(以下用N2表示)是预先确定的,所以在解码过程中,可以通过累计解码得到的重构像素的个数来判断哪些像素是本CU的,哪些像素是下一个CU的。区间编码可能跨越CU边界的使用多套编码工具组合的计算机屏幕图像或视频序列压缩方法的解码步骤如下:
(1)从输入的压缩码流中读出一个CU的码流数据;
(2)从码流数据中解析出此CU的最优编码工具组合是哪套组合;
(3)使用(2)解析出的那套组合的解码器对此CU进行解码。这一步骤可分为两种情况:
1)(2)解析出的那套组合是含区间编码工具的组合k。本步骤可进一步分为下列子步骤:
1a)使用含区间编码工具的组合k的解码器对此CU码流数据进行解码。如果此CU的最后一个区间编码字节跨越CU的边界,那么解码得到的重构像素中就有一部分属于下一个选择组合k为最优组合的CU;
1b)累计解码得到的此当前CU的重构像素的个数。如果个数超过N2,超出的部分像素就是属于下一个选择组合k为最优组合的CU的像素。当完整地解码完一个区间编码字节后此累计个数超过N2时,也表明此当前CU的全部重构像素都已经得到,对此当前CU码流数据的解码已经全部完成;
1c)把超出的部分像素放入下一个选择组合k为最优组合的CU的像素缓存区。当对下一个选择组合k为最优组合的CU码流数据进行解码时,这个像素缓存区内的像素就是下一个选择组合k为最优组合的CU的重构像素的一部分;
2)(2)解析出的那套组合不是含区间编码工具的组合k。使用除组合k之外的其余各套编码工具组合的解码器之一对此CU进行解码
(4)输出解码和重构得到的CU的像素;
(5)重复(1)~(4)直至压缩码流内的所有CU都解码完毕,重构出整幅图像或整个视频序列。
图37显示为本发明屏幕图像解压方法附加匹配串跨越CU边界,区间解码跨越匹配串边界的流程图。如图所示,在本实施例中,任一所述解码工具组合使用了像素串匹配解码工具、宽像素串匹配解码工具或解码中间数据串匹配解码工具之一或其组合、以及区间解码工具,且该解码工具组合对所述编码单元先进行区间解码后进行串匹配解码,则所述解码步骤对编码单元的压缩码流数据段进行解码时,还包括通过累计解码得到的重构像素的个数以判断重构像素是属于当前编码单元的像素还是属于下一采用该同样解码工具组合进行解码的编码单元的像素的步骤以及把属于下一编码单元的部分像素放入一区间编码字节及匹配串跨越编码单元边界的超出部分像素缓存区的步骤。
在具体的实施过程中,在匹配串和区间编码字节跨越CU边界(即选择含串匹配编码和区间编码工具的那套组合k为最优组合的某个CU#m-i的最后若干个匹配串及其区间编码输出字节不但有CU#m-i的像素而且也有下一个选择组合k为最优组合的CU#m的像素)的情况下,CU#m-i的对应压缩码流段中,不但有CU#m-i的像素而且也有跨越CU#m-i边界附加地对CU#m的部分像素进行编码而附加的CU#m的部分像素。因此,对CU#m-i的对应压缩码流段进行解码时,不但能得到CU#m-i的重构像素,也能得到CU#m的部分重构像素。同样,对CU#m的对应压缩码流段进行解码时,不但能得到CU#m的重构像素,也能得到再下一个选择组合k为最优组合的CU的部分重构像素。因此在对这样的CU的对应压缩码流段进行解码时,必须分清楚得到的重构像素哪些是本CU的,哪些是下一个CU的。由于每个CU的像素的个数(以下用N2表示)是预先确定的,所以在解码过程中,可以通过累计解码得到的重构像素的个数来判断哪些像素是本CU的,哪些像素是下一个CU的。双跨越边界的使用多套编码工具组合的计算机屏幕图像或视频序列压缩方法的解码步骤如下:
(1)从输入的压缩码流中读出一个CU的码流数据;
(2)从码流数据中解析出此CU的最优编码工具组合是哪套组合;
(3)使用(2)解析出的那套组合的解码器对此CU进行解码。这一步骤可分为两种情况:
1)(2)解析出的那套组合是含串匹配编码工具和区间编码工具的组合k。本步骤可进一步分为下列子步骤:
1a)使用含串匹配编码工具和区间编码工具的组合k的解码器对此CU码流数据进行解码。如果此CU的最后若干个匹配串及其区间编码字节跨越CU的边界,那么解码得到的重构像素中就有一部分属于下一个选择组合k为最优组合的CU;
1b)累计解码得到的此当前CU的重构像素的个数。如果个数超过N2,超出的部分像素就是属于下一个选择组合k为最优组合的CU的像素。当完整地解码完一个区间编码字节及其所含的匹配串后此累计个数超过N2时,也表明此当前CU的全部重构像素都已经得到,对此当前CU码流数据的解码已经全部完成;
1c)把超出的部分像素放入下一个选择组合k为最优组合的CU的像素缓存区。当对下一个选择组合k为最优组合的CU码流数据进行解码时,这个像素缓存区内的像素就是下一个选择组合k为最优组合的CU的重构像素的一部分;
2)(2)解析出的那套组合不是含串匹配编码工具和区间编码工具的组合k。使用除组合k之外的其余各套编码工具组合的解码器之一对此CU进行解码
(4)输出解码和重构得到的CU的像素;
(5)重复(1)~(4)直至压缩码流内的所有CU都解码完毕,重构出整幅图像或整个视频序列。
图38显示为本发明屏幕图像解压方法采用5套解码工具组合的流程图。如图所示,在本实施例中,所述解码步骤包括:
解码子步骤1:包括算术解码、游程解码、反量化、逆变换及预测解码步骤;
解码子步骤2:包括算术解码及像素串匹配解码步骤;
解码子步骤3:包括算术解码、编码中间数据串匹配解码、游程解码及预测解码步骤;
解码子步骤4:包括算术解码及向量反量化步骤;
解码子步骤5:包括算术解码、游程解码、反量化、逆变换及像素串匹配解码步骤。
在具体的实施过程中,解码和重构步骤如下:
(1)从输入的压缩码流中读出一个CU的码流数据;
(2)从码流数据中解析出此CU的最优编码工具组合是哪套组合;
(3)使用(2)解析出的那套组合(下列5套组合之一)的解码器对此CU的码流数据按照下列解码流程的子步骤进行解码:
解码子步骤1:包括算术解码、游程解码、反量化、逆变换及预测解码步骤;
解码子步骤2:包括算术解码及像素串匹配解码步骤;
解码子步骤3:包括算术解码、编码中间数据串匹配解码、游程解码及预测解码步骤;
解码子步骤4:包括算术解码及向量反量化步骤;
解码子步骤5:包括算术解码、游程解码、反量化、逆变换及像素串匹配解码步骤。
(4)输出解码和重构得到的CU的像素;
(5)重复(1)~(4)直至压缩码流内的所有CU都解码完毕,重构出整幅图像或整个视频序列。
图39显示为本发明屏幕图像解压方法采用3套解码工具组合的流程图。如图所示,在本实施例中,所述解码步骤包括:
解码子步骤1:包括算术解码、游程解码、反量化、逆变换及预测解码步骤;
解码子步骤2:包括排列方式解析、算术解码、行排列方式像素重排序映射、列排列方式像素重排序映射和Hilbert排列方式像素重排序映射及像素串匹配解码,并把通过解码重构像素放入历史像素暂存区,并在需要时对历史像素暂存区进行更新的步骤;
解码子步骤3:包括算术解码、游程解码、反量化及预测解码步骤。
在具体的实施例中,解码和重构步骤如下:
(1)从输入的压缩码流中读出一个宏块的码流数据;
(2)从码流数据中解析出此宏块的最优编码工具组合是哪套组合;
(3)使用(2)解析出的那套组合(下列3套组合之一)的解码器对此宏块的码流数据进行解码:
第1套:算术解码→游程解码→反量化→逆变换→预测解码
第2套:算术解码→像素串匹配解码
第3套:算术解码→游程解码→反量化→预测解码
其中第1套组合的的解码流程的子步骤为:
1a)算术解码。对此宏块的压缩码流数据施行算术解码,得到此宏块的最优预测模式和向量数据、游程化的变换量化宏块数据和码流中的其他信息;
1b)游程解码。对游程化的变换量化宏块数据施行游程解码,得到变换量化宏块数据;
1c)反量化。对变换量化宏块数据施行反量化,得到变换后的宏块数据;
1d)逆变换。对变换后的宏块数据施行逆变换,得到预测误差宏块数据;
1e)预测解码。根据算术解码得到的最优预测模式和向量数据,获得预测宏块数据(预测值),并与预测误差宏块数据相加,得到重构宏块和像素。
第2套组合的的解码流程的子步骤为:
2a)从码流数据中解析出此宏块的像素串匹配编码采用了哪种排列方式:
2b)继续对此宏块的码流数据施行算术解码,得到像素串匹配编码的结果;
2c)选择采用2a)解析出的那种排列方式(行排列或列排列或Hilbert排列之一)的像素串匹配解码工具的解码器对像素串匹配编码的结果施行像素串匹配解码,得到重构宏块和像素。
第3套组合的解码流程的子步骤为:
3a)算术解码。对此宏块的压缩码流数据施行算术解码,得到此宏块的最优预测模式和向量数据、游程化的量化宏块数据和码流中的其他信息;
3b)游程解码。对游程化的量化宏块数据施行游程解码,得到量化宏块数据;
3c)反量化。对量化宏块数据施行反量化,得到预测误差宏块数据;
3d)预测解码。根据算术解码得到的最优预测模式和向量数据,获得预测宏块数据(预测值),并与预测误差宏块数据相加,得到重构宏块和像素。
(4)输出解码和重构得到的宏块的像素;
(5)不管解码此宏块时使用了哪套组合的解码器,都把此宏块的重构像素放入第2套组合的历史像素暂存区;
(6)重复(1)~(5)直至压缩码流内的所有宏块都解码完毕,重构出整幅图像或整个视频序列。
图40显示为本发明屏幕图像解压方法附加像素串匹配解码跨越CU边界的具体实施例的流程图。如图所示,在本实施例中,所述解码步骤包括:
解码子步骤1:包括算术解码、游程解码、反量化、逆变换及预测解码步骤;
解码子步骤2:包括把编码单元的重构像素放入到这个历史像素暂存区的步骤、算术解码步骤、像素串匹配解码步骤、累计当前编码单元的重构像素个数的步骤以及把匹配串跨越编码单元边界的超出部分像素放入像素缓存区的步骤。
在具体的实施过程中,解码和重构步骤如下:
(1)从输入的压缩码流中读出一个CU的码流数据;
(2)从码流数据中解析出此CU的最优编码工具组合是哪套组合;
(3)使用(2)解析出的那套组合(下列2套组合之一)的解码器对此宏块的码流数据进行解码:
第1套:(组合1)算术解码→游程解码→反量化→逆变换→预测解码
第2套:(组合1)算术解码→像素串匹配解码
第1套组合的解码流程子步骤其中第1套组合的的解码流程的子步骤为:
1a)算术解码。对此CU的压缩码流数据施行算术解码,得到此CU的最优预测模式和向量数据、游程化的变换量化CU数据和码流中的其他信息;
1b)游程解码。对游程化的变换量化CU数据施行游程解码,得到变换量化CU数据;
1c)反量化。对变换量化CU数据施行反量化,得到变换后的CU数据;
1d)逆变换。对变换后的CU数据施行逆变换,得到预测误差CU数据;
1e)预测解码。根据算术解码得到的最优预测模式和向量数据,获得预测CU数据(预测值),并与预测误差CU数据相加,得到重构CU和像素。
第2套组合的解码流程子步骤为:
2a)对此CU的码流数据施行算术解码,得到像素串匹配编码的结果;
2b)对像素串匹配编码的结果施行像素串匹配解码。如果此CU的最后一个匹配串跨越CU的边界,那么解码得到的重构像素中就有一部分属于下一个选择组合2为最优组合的CU;
2c)累计解码得到的此当前CU的重构像素的个数。如果个数超过一个CU所含像素的总个数(以下用N2表示),超出的部分像素就是属于下一个选择组合2为最优组合的CU的像素。当完整地解码完一个匹配串后此累计个数超过N2时,也表明此当前CU的全部重构像素都已经得到,对此当前CU码流数据的解码已经全部完成;
2d)把超出的部分像素放入下一个选择组合2为最优组合的CU的像素缓存区。当对下一个选择组合2为最优组合的CU码流数据进行解码时,这个像素缓存区内的像素就是下一个选择组合2为最优组合的CU的重构像素的一部分。
(4)输出解码和重构得到的CU的像素;
(5)重复(1)~(4)直至压缩码流内的所有CU都解码完毕,重构出整幅图像或整个视频序列。
在另一具体实施过程中,所述解码步骤包括:
解码子步骤1:包括算术解码、游程解码、反量化、逆变换及预测解码步骤;
解码子步骤2:包括把编码单元的重构像素放入到这个历史像素暂存区的步骤、区间解码步骤、像素串匹配解码步骤、累计当前编码单元的重构像素个数的步骤以及把区间编码字节及其所涉及的匹配串跨越编码单元边界的超出部分像素放入像素缓存区的步骤。
综上所述,本发明的屏幕图像压缩装置及压缩方法具有的有益效果为:本发明把变换编码、量化编码、向量量化编码、预测编码、像素串匹配编码、宽像素串匹配编码、编码中间数据串匹配编码、游程编码、二维游程编码、可变长编码、算术编码、区间编码等多种无损或有损编码工具中的若干种编码工具(一般2~8种)高效无缝地结合成一套编码工具组合(简称为组合),使用2~8套这样的组合,同时对计算机屏幕图像或多幅这样的图像组成的视频序列,以N1xN2像素的编码单元(Coding Unit简称CU,水平即行方向宽度为N1像素而垂直即列方向高度为N2像素,通常N1=N2=N)为编码基本单位进行预编码,从多套组合的预编码中,根据最优“率-失真特性”(即RD特性,其中R=Rate,就是比特率或比特数,D=Distortion,就是失真)选择一套组合(称为最优编码工具组合),并把其产生的编码结果放入压缩码流中。以CU为编码单位是为了与绝大多数编码国际和国内标准兼容,同时达到最小的编码和解码延迟。本发明在像素串匹配编码中,同时采用多种像素排列方式,并以CU为单位选择一种最优的排列方式。像素串匹配可以是精确匹配,也可以是基于某个阈值的近似匹配。搜索匹配时使用的历史像素是最近完成编码的L个像素(L是一个CU的数据字节数的10~100000倍),这些历史像素可以是编码前的原始像素,也可以是经过编码和重构的像素。本发明在像素串匹配编码、宽像素串匹配编码、编码中间数据串匹配编码中,搜索得到的匹配串在一定条件下可以跨越CU的边界,以达到最高的串匹配编码的压缩效率。本发明在区间编码中,一个区间编码码流段可以包含非整数个CU的区间编码结果,以达到最高的区间编码的压缩效率。
本发明的新颖性在于:
1)把变换编码、量化编码、向量量化编码、预测编码、像素串匹配编码、宽像素串匹配编码、编码中间数据串匹配编码、游程编码、二维游程编码、可变长编码、算术编码、区间编码等多种编码工具中的若干种编码工具(一般2~8种)高效无缝地结合成一套编码工具组合(简称为组合),使用2~8套这样的组合,同时对计算机屏幕图像以CU为编码单位进行预编码;
2)从对CU的多套组合的预编码中,根据RD特性选择最优的一套组合(称为最优编码工具组合),并把其产生的编码结果放入压缩码流中;
3)在像素串匹配编码中,同时采用多种像素排列方式,并以CU为单位,选择一种最优的排列方式;
4)像素串匹配编码中的不同排列,由以CU为单位的固定排列和CU内部数据的不同排列构成,而CU内部数据的不同排列是通过某种固定物理排列的不同映射来实现的虚拟排列;
5)在像素串匹配编码、宽像素串匹配编码、编码中间数据串匹配编码中,搜索匹配时使用的“历史”数据(即串匹配搜索空间),并不仅限于当前编码CU的数据,而是包括了最近已经完成编码的多个(10~100000个)连续CU的像素或者从这些像素产生的编码中间数据。这些连续的“历史”像素及其产生的编码中间数据,并不一定是编码前的原始像素,也可以是经过相应CU的最优编码工具组合编码和重构的像素及其产生的编码中间数据。
6)在像素串匹配编码、宽像素串匹配编码、编码中间数据串匹配编码中,搜索得到的匹配串可以跨越CU的边界,即一个匹配串的像素或中间结果,可以分别属于两个或两个以上不同的CU。
7)在区间编码中,一个区间编码码流段可以包含非整数个CU的区间编码结果。
本发明的创造性在于:
1)屏幕图像含丰富多样且性质各异的内容,需要自适应地使用有针对性的不同编码工具的组合对不同内容进行编码。如果单纯地把前述12种编码工具按一定次序组合起来,总共有13亿种(套)不同的组合。按照普通知识和常规手段组成的一套或几套编码工具组合,对屏幕图像的压缩效果都不理想。本发明在深入分析和大量实验基础上,找出了若干套互补的编码工作组合,对屏幕图像的压缩效果比现有技术有显著的提高。比如,对一些典型屏幕图像的进行压缩时,信噪比提高10dB以上,压缩比提高2~10倍(请问代理人:是否需要加上具体彩色图像和表格?)。
2)以往30年的现有图像压缩技术中,都是通过某种形式的预处理,计算出图像区域的若干种特性,来识别一幅图像可以分成几种不同性质的区域,对不同区域使用不同的编码方法。以往30年的现有图像压缩技术中,RD特性也只是在预测编码工具中用来选择一个最优的预测方向(水平方向、垂直方向、30度对角方向、60度对角方向等等)。本发明则以CU为编码单位,对同一CU,同时使用多套编码工具组合进行预编码,然后选择其中RD特性最好的组合对此CU进行压缩(简单地说,就是CU+预编码+RD特性这3个关键特征)。此方案使用统一的RD特性,简单明了,却产生了意想不到的效果:使用统一的RD特性就能比现有技术中使用各种复杂的方法还能更好地识别出每个CU具有的特有性质,甚至是细微的特征,并对症下药地使用最有效的编码工具组合对此CU进行压缩,取得最优的压缩效果。
3)在使用游程编码、像素串匹配编码、编码中间数据串匹配编码等工具进行图像压缩时,首先需要把平面2维图像排列成1维的像素串。现有技术中,使用像素串匹配编码时,都是将一幅图像一行一行排列起来。本领域现有的技术共识是像素的排列方式对图像的编码效率没有什么影响。在现有以宏块(16x16像素的CU)为单位的变换编码中,对变换后的宏块数据(一种编码中间数据),现有的技术共识是使用之字形(zigzag)排列方式最为有效。本发明在深入理论分析和大量实验基础上发现,在使用像素串匹配编码以CU为单位进行数据压缩时,CU内部的像素排列方式对压缩效果有很大影响,并且由于不同的CU有不同的特性,其达到最佳压缩效果的最佳排列方式也各不相同。本发明在使用像素串匹配编码对CU进行数据压缩时,一种提高压缩效果的手段就是同时采用2~4种不同的排列方式进行预编码,最后采用其中一种最佳的排列方式。
4)对CU内部的数据采用不同排列方式进行预编码时,不但当前编码CU的像素需要有不同排列方式,而且已经经过编码和重构的用作像素串匹配搜索空间的所有“历史”CU的像素都需要有不同排列方式。像素串匹配搜索空间占用的存储空间可高达几兆甚至几百兆字节。如果每种排列方式的像素串匹配搜索空间(“历史”CU的像素)都单独存储,则存储空间将成倍增加,大大增加编码器和解码器的成本。本发明仅存储一种排列方式的像素串匹配搜索空间,其他排列方式则是通过读取像素时的地址映射来实现。不同的地址映射实现不同的“虚拟”排列方式,对降低编码器和解码器的成本有显著效果。
5)像素串匹配编码、宽像素串匹配编码、编码中间数据串匹配编码的压缩效果与串匹配搜索空间(“历史”像素)的大小有密切关系。对全高清像素分辨率1920x1080且每个像素用3个字节表示的图像来说,把一幅图像(或几幅图像组成的视频序列)作为一个整体来进行串匹配编码,其串匹配搜索空间可达6兆(一幅图像)或18兆(三幅图像)字节,可以达到很好的压缩效果。如果把一幅图像分割成一个一个宏块(16x16像素的CU,仅有768字节),来分别进行串匹配编码,则压缩效果非常差,压缩比有时不到对一幅图像整体进行编码的压缩比的三分之一。因此现有技术中,一般都是对一幅或若干幅图像整体进行编码。如前所述,这样的编码方法有很大的编码和解码延迟,不适用于屏幕编码的场合。现有技术中,即使以CU为单位进行串匹配编码,串匹配搜索空间也不跨越多个连续的CU,搜索得到的匹配串更是完全被限制在一个CU内,绝对不能跨越CU的边界。现有技术中,串匹配搜索空间不能跨越多个连续的CU的原因在于并不是每个CU都是采用串匹配方法进行编码的,有的是采用另外的甚至有损的方法进行编码的,因此这些CU涉及到的原始像素、重构像素和编码中间数据,都是独立于串匹配编码过程和串匹配编码的“历史”像素(串匹配搜索空间)的,本质上与串匹配编码是不相容的,这些数据甚至可能根本就不存在。现有技术中,搜索得到的匹配串绝对不能跨越CU边界的另一个原因是编码的最终结果是严格以CU为单位放置在压缩后的码流中的。一个码流段严格对应于一个CU,否则,如果一个码流段含非整数个CU而接着的一个码流段含整数个CU,那么解码器就无法正确地从码流中区分出和重构出各个CU及其所属的像素。本发明提出了若干新的技术手段,使串匹配搜索空间包括了最近已经完成编码的10~100000个连续CU的像素(可以是编码前的原始像素,也可以是经过相应CU的最优编码工具组合编码和重构的像素)或者从这些像素产生的编码中间数据。
6)此外,本发明也解决了在搜索得到的匹配串及其产生的最终编码结果跨越CU边界的情况下,如何把跨CU的一个码流段写入码流中,并且在解码器中能正确地解码和重构出CU的像素的问题。由于5)和6),本发明大大提高了以CU为单位使用像素串匹配编码、宽像素串匹配编码、编码中间数据串匹配编码的压缩效果。
7)区间编码的特点是以固定的多个比特(如4个比特或一个字节)为单元产生并输出编码结果。在现有技术中,以区间编码的输出单元是一个字节为例,如果一个CU产生的区间编码结果,不恰好是一个字节的话,就要浪费几个比特,强行凑成一个字节后输出。这样才能一个CU产生的编码结果严格对应于一个码流段,被放置到码流中,使解码器能够从码流中逐个区分出和重构出CU和此CU的像素。这样浪费的比特数严重影响到编码效果。本发明提出了一种新的可跨CU边界进行区间编码的方法,产生的一个码流段可以含非整数个CU的区间编码结果,与非区间编码产生的码流段混合放置到码流中。在这方面,本发明的一个显著特点是,虽然区间编码产生的含非整数个CU的码流段与非区间编码产生的含整数个CU的码流段混合放置在码流中,解码器仍然能够正确地解出各个CU,区别出哪些像素属于哪个CU,重构出所有CU的像素。本发明使区间编码能够应用到以CU为单位的编码中,解决了遇到的若干问题,特别是不浪费任何比特,从而显著提高了编码效果。
上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。

Claims (70)

1.一种屏幕图像压缩装置,其特征在于:所述压缩装置至少包括:
预编码模块组,包括多套互补的编码工具组合编码模块,用于接收从一外部装置输入的图像像素组成的编码单元并分别独立地对其进行编码;
各套组合率-失真特性计算模块,连接于所述预编码模块组,用于对所述各编码工具组合编码模块的编码结果进行率-失真特性计算;
最优编码工具组合选择模块,连接于所述各套组合率-失真特性计算模块,用于对所述率-失真特性计算结果进行分析,并选择出最优编码工具组合编码模块及其对应的压缩码流数据;
码流暂存输出模块,连接于所述最优编码工具组合选择模块,用于暂存所述最优编码工具组合编码模块所产生的压缩码流数据,并在特定的时间,把所述的压缩码流数据输出到压缩码流。
2.根据权利要求1所述的屏幕图像压缩装置,其特征在于:所述预编码模块组包括的编码工具组合编码模块为2~8套。
3.根据权利要求1所述的屏幕图像压缩装置,其特征在于:所述编码工具组合为变换编码、量化编码、向量量化编码、预测编码、像素串匹配编码、宽像素串匹配编码、编码中间数据串匹配编码、游程编码、二维游程编码、可变长编码、算术编码及区间编码12种编码工具按特定数量与特定规则的组合。
4.根据权利要求3所述的屏幕图像压缩装置,其特征在于:至少有一套编码工具组合选取像素串匹配编码工具。
5.根据权利要求3所述的屏幕图像压缩装置,其特征在于:各该编码工具组合包含的编码工具为2~5种。
6.根据权利要求3所述的屏幕图像压缩装置,其特征在于:所述编码工具组合的组成规则必须同时满足:
1)如果选取了变换编码或量化编码或向量量化编码,就不能选取精确无损的像素串匹配编码或宽像素串匹配编码,但可以选取有损的像素串匹配编码或宽像素串匹配编码,反之,如果选取了精确无损的像素串匹配编码或宽像素串匹配编码,就不能选取变换编码或量化编码或向量量化编码,但是,如果选取了有损的像素串匹配编码或宽像素串匹配编码,则仍可选取变换编码或量化编码或向量量化编码;
2)从预测编码、变换编码、量化编码、向量量化编码、像素串匹配编码、宽像素串匹配编码、编码中间数据串匹配编码7种编码工具中,必须选取至少一种;
3)可变长编码、算术编码、区间编码中,只能选一种,而且必须选一种;
4)像素串匹配编码和编码中间数据串匹配编码中,只能选一种;
5)游程编码和二维游程编码中,只能选一种。
7.根据权利要求1所述的屏幕图像压缩装置,其特征在于:任一所述编码工具组合编码模块包含具有像素串匹配编码工具、宽像素串匹配编码工具及像素预测编码之一或其组合,则各该包含具有像素串匹配编码工具、宽像素串匹配编码工具及像素预测编码之一或其组合的编码工具组合编码模块包括一共享的历史像素暂存区,用以暂存已经完成编码的编码单元的像素,作为搜索匹配串或预测值时的候选像素。
8.根据权利要求7所述的屏幕图像压缩装置,其特征在于:在预编码时,所述编码单元的原始输入像素已经放入历史像素暂存区,且所述最优编码工具组合为有损编码,则所述的预编码模块组还包括一历史像素暂存区更新单元,用以把所述已经放入历史像素暂存区的原始输入像素替换为所述编码单元通过所述最优编码工具组合进行编码后重构的像素。
9.根据权利要求1所述的屏幕图像压缩装置,其特征在于:任一所述编码工具组合编码模块包含编码中间数据串匹配编码工具及编码中间数据预测编码工具之一或其组合,则各该包含编码中间数据串匹配编码工具及编码中间数据预测编码工具之一或其组合的编码工具组合编码模块还包含一历史中间数据暂存区,一部分编码单元和一部分解码单元。
10.根据权利要求1所述的屏幕图像压缩装置,其特征在于:任一所述编码工具组合编码模块包含像素串匹配编码工具及宽像素串匹配编码工具之一或其组合,则各该含像素串匹配编码工具及宽像素串匹配编码工具之一或其组合的编码工具组合编码模块至少还包括:
历史像素暂存区单元,用以暂存已经完成编码的编码单元的像素;
像素重排序映射单元,连接于所述历史像素暂存区单元,包括多个像素重排序映射子单元,用以提供多种不同排列方式的像素给一串匹配编码单元;
串匹配编码单元,连接于所述像素重排序映射单元,使用像素串匹配编码单元或宽像素串匹配编码单元对具有不同排列方式的所述编码单元的像素进行编码;
率-失真特性计算估计和最优排列方式选择单元,连接于所述串匹配编码单元,用以计算或估计各种排列方式的串匹配编码结果的率-失真特性并选择出最优的排列方式;
本编码工具组合编码模块的其他各编码单元,连接于所述的率-失真特性计算估计和最优排列方式选择单元,用以实现本编码工具组合编码模块中所包含的其他编码工具的编码任务,并输出预编码结果。
11.根据权利要求10所述的屏幕图像压缩装置,其特征在于:各该编码工具组合编码模块的其中之一为有损编码且被选择为最优编码工具组合编码模块,且在预编码时,所述编码单元的原始输入像素已经放入历史像素暂存区,则所述的预编码模块组还包括一历史像素暂存区更新单元,用以把所述已经放入历史像素暂存区的原始输入像素替换为所述编码单元通过所述最优编码工具组合进行编码后重构的像素。
12.根据权利要求1所述的屏幕图像压缩装置,其特征在于:任一所述编码工具组合编码模块包含像素串匹配编码工具、宽像素串匹配编码工具或编码中间数据串匹配编码工具之一或其组合,则各该包含像素串匹配编码工具、宽像素串匹配编码工具或编码中间数据串匹配编码工具之一或其组合的编码工具组合编码模块还各自包含一序号差计算单元,用以决定前一个选择该包含序号差计算单元的编码工具组合编码模块为最优编码工具组合编码模块的编码单元是否需要与当前编码单元紧接着排列在一起进行所述前一个编码单元的最后一个匹配串的跨越编码单元边界的串匹配搜索和编码。
13.根据权利要求12所述的屏幕图像压缩装置,其特征在于:各该包含像素串匹配编码工具、宽像素串匹配编码工具或编码中间数据串匹配编码工具之一或其组合的编码工具组合编码模块的任何一个编码模块都还包括一个用以暂存该编码工具组合编码模块被选择为最优编码工具组合编码模块时,该最优编码工具组合编码模块所产生的编码数据和结果的暂存区。
14.根据权利要求12所述的屏幕图像压缩装置,其特征在于:所述码流暂存输出模块还包括一压缩码流数据缓存单元,用以放置所有与当前编码单元对应的最优编码工具组合所产生但未输出到压缩码流的编码单元的压缩码流数据。
15.根据权利要求1所述的屏幕图像压缩装置,其特征在于:任一所述编码工具组合编码模块包含区间编码工具,则各该包含区间编码工具的编码工具组合编码模块还包括一序号差计算单元,用以决定前一个选择该包含序号差计算单元的编码工具组合编码模块为最优编码工具组合编码模块的编码单元是否需要与当前编码单元紧接着排列在一起进行所述前一个编码单元的最后一个区间编码字节的跨越编码单元边界的区间编码。
16.根据权利要求15所述的屏幕图像压缩装置,其特征在于:各该包含区间编码工具的编码工具组合编码模块的任何一个编码模块都还包括一个用以暂存该编码工具组合编码模块被选择为最优编码工具组合编码模块时,该最优编码工具组合编码模块所产生的编码数据和结果的暂存区。
17.根据权利要求15所述的屏幕图像压缩装置,其特征在于:所述码流暂存输出模块还包括一压缩码流数据缓存单元,用以放置所有与当前编码单元对应的最优编码工具组合所产生但未输出到压缩码流的编码单元的压缩码流数据。
18.根据权利要求1所述的屏幕图像压缩装置,其特征在于:任一所述编码工具组合编码模块包含串匹配编码工具及区间编码工具,且该编码工具组合编码模块对所述编码单元先进行串匹配编码后进行区间编码,则各该编码工具组合编码模块还包括一序号差计算单元,用以决定前一个选择该包含序号差计算单元的编码工具组合编码模块为最优编码工具组合编码模块的编码单元是否需要与当前编码单元紧接着排列在一起进行所述前一个编码单元的跨越编码单元边界的串匹配搜索和编码以及区间编码,及一选择该包含序号差计算单元的编码工具组合编码模块为最优编码工具组合编码模块的编码单元的编码数据与结果暂存区,用以暂存选择该包含序号差计算单元的编码工具组合编码模块为最优编码工具组合编码模块的编码单元的编码数据与结果,以使串匹配搜索能跨越编码单元边界且区间编码能跨越匹配串边界。
19.根据权利要求18所述的屏幕图像压缩装置,其特征在于:所述码流暂存输出模块还包括一压缩码流数据缓存单元,用以放置所有与当前编码单元对应的最优编码工具组合所产生但未输出到压缩码流的编码单元的压缩码流数据。
20.根据权利要求1所述的屏幕图像压缩装置,其特征在于:所述预编码模块组包括:
编码工具组合1编码模块:包括预测编码单元、变换编码单元、量化编码单元、游程编码单元、算术编码单元;
编码工具组合2编码模块:包括像素串匹配编码单元、算术编码单元;
编码工具组合3编码模块:包括预测编码单元、游程编码单元、编码中间数据串匹配编码单元、算术编码单元;
编码工具组合4编码模块:包括向量量化编码单元、算术编码单元;
编码工具组合5编码模块:包括像素串匹配编码单元、变换编码单元、量化编码单元、游程编码单元及算术编码单元。
21.根据权利要求10或11所述的屏幕图像压缩装置,其特征在于:所述预编码模块组包括:
编码工具组合1编码模块:包括预测编码单元、变换编码单元、量化编码单元、重构单元、游程编码单元、算术编码单元及码率控制单元;
编码工具组合2编码模块:包括历史像素暂存区和历史像素暂存区更新单元、行排列方式像素重排序映射单元、列排列方式像素重排序映射单元、Hilbert排列方式像素重排序映射单元、像素串匹配编码单元、率-失真特性计算估计和最优排列方式选择单元及算术编码单元;
编码工具组合3编码模块:包括预测编码单元、量化编码单元、重构单元、游程编码单元、算术编码单元及码率控制单元。
22.根据权利要求12、13或14所述的屏幕图像压缩装置,其特征在于:所述预编码模块组包括:
编码工具组合1编码模块:包括预测编码单元、变换编码单元、量化编码单元、重构单元、游程编码单元、算术编码单元及码率控制单元;
编码工具组合2编码模块:包括用以决定前一个选择本模块编码工具组合为最优编码工具组合的编码单元是否需要与当前编码单元紧接着排列在一起进行所述前一个编码单元的最后一个匹配串的跨越编码单元边界的串匹配搜索和编码的序号差计算单元、历史像素暂存区和历史像素暂存区更新单元、像素串匹配编码单元、算术编码单元以及选择本模块编码工具组合作为最优编码工具组合的编码单元的编码数据和结果的暂存区。
23.根据权利要求18或19所述的屏幕图像压缩装置,其特征在于:所述预编码模块组包括:
编码工具组合1编码模块:包括预测编码单元、变换编码单元、量化编码单元、重构单元、游程编码单元、算术编码单元及码率控制单元;
编码工具组合2编码模块:包括用以决定前一个选择本模块编码工具组合为最优编码工具组合的编码单元是否需要与当前编码单元紧接着排列在一起进行所述前一个编码单元最后一个区间编码字节及其所涉及的匹配串跨越编码单元边界的串匹配搜索和编码以及区间编码的序号差计算单元、历史像素暂存区和历史像素暂存区更新单元、像素串匹配编码单元、区间编码单元以及选择本模块编码工具组合作为最优编码工具组合的编码单元的编码数据和结果的暂存区。
24.一种屏幕图像解压装置,其特征在于,所述解压装置至少包括:
码流编码工具组合解析模块,用于接收从一外部装置输入的压缩码流,解析出所述压缩码流数据编码时所使用的编码工具组合,选择相对应的解码工具组合并把所述码流段数据输出;
解码模块组,连接于所述解析模块,包括多套解码工具组合解码模块,用于对来自所述码流编码工具组合解析模块的输入压缩码流数据,使用与其相对应的一套解码工具组合进行解码,并重构出与所述压缩码流数据相应的编码单元的像素;
重构图像暂存模块,连接于所述的解码模块组,用以暂存重构的一幅或多幅图像,并在预设的时间按照图像的显示顺序,把图像输出;
重构图像输出模块,连接于所述的重构图像暂存模块,用于把所述解码模块组解码与重构的图像按照图像和视频显示格式,输出到一外部装置。
25.根据权利要求24所述的屏幕图像解压装置,其特征在于:所述解码模块组包括的解码工具组合解码模块为2~8套。
26.根据权利要求24所述的屏幕图像解压装置,其特征在于:所述解码工具组合为逆变换解码、反量化解码、向量反量化解码、预测解码、像素串匹配解码、宽像素串匹配解码、编码中间数据串匹配解码、游程解码、二维游程解码、可变长解码、算术解码、区间解码12种解码工具按特定数量与特定规则的组合。
27.根据权利要求26所述的屏幕图像解压装置,其特征在于:各该解码工具组合包含的解码工具为2~5个。
28.根据权利要求24所述的屏幕图像解压装置,其特征在于:任一所述解码工具组合解码模块包含像素串匹配解码工具、宽像素串匹配解码工具及像素预测解码工具之一或其组合,则各该包含具有像素串匹配解码工具、宽像素串匹配解码工具及像素预测解码工具之一或其组合的解码工具组合解码模块包括一共享的历史像素暂存区,用以暂存经过解码重构的编码单元的像素。
29.根据权利要求28所述的屏幕图像解压装置,其特征在于:所述各该包含像素串匹配解码工具、宽像素串匹配解码工具及像素预测解码工具之一或其组合的解码工具组合解码模块包括一共享的历史像素暂存区更新单元,用以更新所述的历史像素暂存区。
30.根据权利要求24所述的屏幕图像解压装置,其特征在于:任一所述解码工具组合解码模块包含解码中间数据串匹配解码工具及解码中间数据预测解码工具之一或其组合,则各该包含解码中间数据串匹配解码工具及解码中间数据预测解码工具之一或其组合的解码工具组合解码模块还包含一历史中间数据暂存区和一部分编码单元。
31.根据权利要求24所述的屏幕图像解压装置,其特征在于:任一所述解码工具组合解码模块包含像素串匹配解码工具及宽像素串匹配解码工具之一或其组合,则各该含像素串匹配解码工具及宽像素串匹配解码工具之一或其组合的解码工具组合解码模块至少还包括:
历史像素暂存区和历史像素暂存区更新单元,用以暂存解码重构的编码单元的像素,并在需要时对其进行更新;
排列方式解析单元,用以从码流数据中解析出当前解码中编码单元在串匹配编码时采用的排列方式;
串匹配解码前其他各编码工具的解码单元;
像素重排序映射单元,包括多个像素重排序映射子单元,用以提供多种不同排列方式的像素给一串匹配解码单元;
串匹配解码单元,使用像素串匹配解码单元或宽像素串匹配解码单元按照所述排列方式解析单元解析出的排列方式进行解码;
串匹配解码后其他各编码工具的解码单元,用以完成串匹配解码后的解码工作,并输出当前解码中编码单元的重构像素。
32.根据权利要求24所述的屏幕图像解压装置,其特征在于:任一所述解码工具组合解码模块包含像素串匹配解码工具、宽像素串匹配解码工具或解码中间数据串匹配解码工具之一或其组合,则各该包含像素串匹配解码工具、宽像素串匹配解码工具或解码中间数据串匹配解码工具之一或其组合的解码工具组合解码模块还各自包含一当前编码单元重构像素累计单元,用以累计解码得到的当前编码单元重构像素的个数并判定哪些重构像素确实属于当前编码单元哪些重构像素属于后续编码单元。
33.根据权利要求32所述的屏幕图像解压装置,其特征在于:各该包含像素串匹配解码工具、宽像素串匹配解码工具或解码中间数据串匹配解码工具之一或其组合的解码工具组合解码模块还各自包含一串匹配编码跨越编码单元边界的超出部分像素缓存区,用以暂存超出当前编码单元重构像素数量后的后续编码单元重构像素。
34.根据权利要求24所述的屏幕图像解压装置,其特征在于:任一所述解码工具组合解码模块包含区间解码工具,则各该包含区间解码工具的解码工具组合解码模块还包括一当前编码单元重构像素累计单元,用以累计解码得到的当前编码单元重构像素的个数并判定哪些重构像素确实属于当前编码单元哪些重构像素属于后续编码单元。
35.根据权利要求34所述的屏幕图像解压装置,其特征在于:各该包含区间解码工具的解码工具组合解码模块还包括一区间编码字节跨越编码单元边界的超出部分像素缓存区,用以暂存超出当前编码单元重构像素数量后的后续编码单元重构像素。
36.根据权利要求24所述的屏幕图像解压装置,其特征在于:任一所述解码工具组合解码模块包含串匹配解码工具及区间解码工具,且该解码工具组合解码模块对所述编码单元先进行区间解码后进行串匹配解码,则各该包含串匹配解码工具及区间解码工具的解码工具组合解码模块还包括一当前编码单元重构像素累计单元,用以累计解码得到的当前编码单元重构像素的个数并判定哪些重构像素确实属于当前编码单元哪些重构像素属于后续编码单元。
37.根据权利要求36所述的屏幕图像解压装置,其特征在于:各该包含串匹配解码工具及区间解码工具的解码工具组合解码模块还包括一区间编码字节与匹配串跨越编码单元边界的超出部分像素缓存区,用以暂存超出当前编码单元重构像素数量后的后续编码单元重构像素。
38.根据权利要求24所述的屏幕图像解压装置,其特征在于:所述解码模块组包括:
解码工具组合1解码模块:包括算术解码单元、游程解码单元、反量化单元、逆变换单元及预测解码单元;
解码工具组合2解码模块:包括算术解码单元及像素串匹配解码单元;
解码工具组合3解码模块:包括算术解码单元、编码中间数据串匹配解码单元、游程解码单元及预测解码单元;
解码工具组合4解码模块:包括算术解码单元、向量反量化单元;
解码工具组合5解码模块:包括算术解码单元、游程解码单元、反量化单元、逆变换单元及像素串匹配解码单元。
39.根据权利要求31所述的屏幕图像解压装置,其特征在于:所述解码模块组包括:
解码工具组合1解码模块:包括算术解码单元、游程解码单元、反量化单元、逆变换单元及预测解码单元;
解码工具组合2解码模块:包括历史像素暂存区和历史像素暂存区更新单元、排列方式解析单元、算术解码单元、行排列方式像素重排序映射单元、列排列方式像素重排序映射单元和Hilbert排列方式像素重排序映射单元及像素串匹配解码单元;
解码工具组合3解码模块:包括算术解码单元、游程解码单元、反量化单元及预测解码单元。
40.根据权利要求32或33所述的屏幕图像解压装置,其特征在于:所述解码模块组包括:
解码工具组合1解码模块:包括算术解码单元、游程解码单元、反量化单元、逆变换单元及预测解码单元;
解码工具组合2解码模块:包括历史像素暂存区和历史像素暂存区更新单元、算术解码单元、像素串匹配解码单元、当前编码单元的重构像素个数的累计单元以及匹配串跨越编码单元边界的超出部分像素缓存区。
41.根据权利要求36或37所述的屏幕图像解压装置,其特征在于:所述解码模块组包括:
解码工具组合1解码模块:包括算术解码单元、游程解码单元、反量化单元、逆变换单元及预测解码单元;
解码工具组合2解码模块:包括历史像素暂存区和历史像素暂存区更新单元、区间解码单元、像素串匹配解码单元、当前编码单元的重构像素个数的累计单元以及区间编码字节与匹配串跨越编码单元边界的超出部分像素缓存区。
42.一种屏幕图像压缩方法,其特征在于:所述压缩方法至少包括以下步骤:
1)预编码步骤,接收从一外部装置输入的图像像素组成的编码单元,并利用多套不同互补的编码工具组合同时对所述编码单元进行编码;
2)率-失真特性计算步骤,对所述编码步骤的各套编码工具组合的编码结果分别进行率-失真特性计算;
3)最优编码工具组合选择步骤,对所述率-失真特性的计算结果进行分析,然后选择出最优的编码工具组合及其对应的压缩码流数据;
4)码流暂存输出步骤,暂存所述最优的编码工具组合所产生的压缩码流数据,并在特定的时间,把所述压缩码流数据输出到压缩码流
5)重复步骤,对一幅图像或一个视频序列中需要对其进行编码的所有编码单元,重复所述步骤1)~4)进行编码直至一幅图像或一个视频序列编码结束。
43.根据权利要求42所述的屏幕图像压缩方法,其特征在于:所述编码工具组合为变换编码、量化编码、向量量化编码、预测编码、像素串匹配编码、宽像素串匹配编码、编码中间数据串匹配编码、游程编码、二维游程编码、可变长编码、算术编码及区间编码12种编码工具按特定数量与特定规则的组合。
44.根据权利要求42所述的屏幕图像压缩方法,其特征在于:所述编码工具组合单元的组成必须同时满足:
1)如果选取了变换编码或量化编码或向量量化编码,就不能选取精确无损的像素串匹配编码或宽像素串匹配编码,但可以选取有损的像素串匹配编码或宽像素串匹配编码,反之,如果选取了精确无损的像素串匹配编码或宽像素串匹配编码,就不能选取变换编码或量化编码或向量量化编码,但是,如果选取了有损的像素串匹配编码或宽像素串匹配编码,则仍可选取变换编码或量化编码或向量量化编码;
2)从预测编码、变换编码、量化编码、向量量化编码、像素串匹配编码、宽像素串匹配编码、编码中间数据串匹配编码7种编码工具中,必须选取至少一种;
3)可变长编码、算术编码、区间编码中,只能选一种,而且必须选一种;
4)像素串匹配编码和编码中间数据串匹配编码中,只能选一种;
5)游程编码和二维游程编码中,只能选一种。
45.根据权利要求42所述的屏幕图像压缩方法,其特征在于:所述预编码步骤中,任一编码工具组合使用了像素串匹配编码工具、宽像素串匹配编码工具或像素预测编码工具之一或其组合,则所述压缩方法还包括将已经完成编码的编码单元的像素放入历史像素暂存区的步骤。
46.根据权利要求45所述的屏幕图像压缩方法,其特征在于:在预编码时,所述编码单元的原始输入像素已经放入历史像素暂存区,且所述最优编码工具组合为有损编码,则所述的压缩方法还包括把所述历史像素暂存区的原始输入像素替换为通过所述最优编码工具组合编码重构的像素的步骤。
47.根据权利要求42所述的屏幕图像压缩方法,其特征在于:任一所述编码工具组合使用了编码中间数据串匹配编码工具及编码中间数据预测编码工具之一或其组合,则所述压缩方法还包括对已经完成编码的编码单元进行部分的编码中间数据串匹配编码或部分的编码中间数据预测编码后,把编码中间数据保存到历史中间数据暂存区,作为搜索匹配串或预测值时的候选中间数据的步骤,具体地,该步骤包括:
在预编码时,使用编码中间数据串匹配编码或编码中间数据预测编码的编码工具组合,没有把该编码单元的相应的中间数据放入了相应的历史中间数据暂存区,那么就需要使用最优编码工具组合产生的此编码单元的重构像素再次经过部分编码产生出中间数据并把这些中间数据放入历史中间数据暂存区;
在预编码时,使用编码中间数据串匹配编码或编码中间数据预测编码的编码工具组合,已经把该编码单元的相应的中间数据放入了相应的历史中间数据暂存区,但是最优编码工具组合是有损编码,那么就需要使用最优编码工具组合产生的此编码单元的重构像素再次经过部分编码产生出中间数据,或者如果最优编码工具组合恰好是该使用编码中间数据串匹配编码或编码中间数据预测编码的编码工具组合,也可以对该编码单元的压缩码流数据进行部分解码来产生中间数据,并用这些中间数据替换历史中间数据暂存区的该编码单元预编码时放入的中间数据;
在预编码时,使用编码中间数据串匹配编码或编码中间数据预测编码的编码工具组合,已经把该编码单元的相应的中间数据放入了相应的历史中间数据暂存区,并且最优编码工具组合是无损编码,那么就不必要使用最优编码工具组合产生的此编码单元的重构像素再次经过部分编码产生出中间数据并再次放入历史中间数据暂存区。
48.根据权利要求42所述的屏幕图像压缩方法,其特征在于:任一所述编码工具组合使用了像素串匹配编码工具及宽像素串匹配编码工具之一或其组合,则所述压缩方法还包括把已经完成编码的编码单元的像素放入历史像素暂存区,并且把所述历史像素暂存区以及当前编码图像中像素数据以整幅图像为对象的平面排列方式排列、以整幅图像为对象的套装排列方式排列、以编码单元为对象的平面排列方式排列或以编码单元为对象的套装排列方式排列的步骤。
49.根据权利要求48所述的屏幕图像压缩方法,其特征在于:所述历史像素暂存区以及当前编码图像中像素数据的排列方式至少包括:行扫描排列方式、列扫描排列方式、之字形扫描排列方式、希尔伯特扫描排列方式。
50.根据权利要求42所述的屏幕图像压缩方法,其特征在于:任一所述编码工具组合使用了像素串匹配编码工具及宽像素串匹配编码工具之一或其组合,则所述预编码步骤中,对所述编码单元的像素数据同时采用至少两种排列方式进行预编码,并自适应地选择出最优的排列方式作为此编码工具组合预编码的排列方式。
51.根据权利要求50所述的屏幕图像压缩方法,其特征在于:所述预编码步骤包括以下子步骤:
1)对所述编码单元,采用多种排列方式同时进行串匹配编码;
2)计算或估计各排列方式下串匹配编码的率-失真特性,选择最优的排列方式作为此预编码步骤最后采纳的排列方式;
3)完成此预编码步骤的其余各项编码子步骤,并输出此预编码步骤的结果。
52.根据权利要求42所述的屏幕图像压缩方法,其特征在于:任一所述编码工具组合使用了像素串匹配编码工具、宽像素串匹配编码工具或编码中间数据串匹配编码工具之一或其组合,则所述压缩方法包括以下步骤:
步骤一,输入当前编码单元m及部分下一个编码单元m+1的像素,其中,m为当前编码单元的序号;
步骤二,对当前编码单元m,采用多套编码工具组合,同时进行预编码,包括以下步骤:
1)使用含串匹配编码工具的编码工具组合对当前编码单元m进行预编码,包括以下子步骤:
1a)计算当前编码单元m与前一个选择所述含串匹配编码工具的编码工具组合为最优组合的编码单元的序号差i;
1b)判别是否i≤I+1,若否则跳到步骤1d),否则顺序执行,其中,I为一预先设定的正整数,其值小于一整行像素涉及的编码单元的个数的10倍;
1c)i≤I时,把编码单元m-i与编码单元m尾首相接排列在一起,使用所述含串匹配编码工具的编码工具组合完成编码单元m-i的涉及到编码单元m-i最后一个匹配串的可含编码单元m的像素的全部预编码;i=I+1时,强行把编码单元m-i的最后一个匹配串限制在编码单元m-i内,使用所述含串匹配编码工具的编码工具组合完成编码单元m-i的最后一个匹配串的不含编码单元m的像素的全部预编码;
1d)使用所述含串匹配编码工具的编码工具组合对编码单元m进行可跨越编码单元m与编码单元m+1边界的预编码;
2)使用除所述含串匹配编码工具的编码工具组合之外的其余编码工具组合对当前编码单元m进行预编码;
步骤三,比较各套组合产生的率-失真特性,选择率-失真特性最优的最优编码工具组合;
步骤四,判别最优编码工具组合是否是所述含串匹配编码工具的编码工具组合,若否则跳到步骤七,否则顺序执行;
步骤五,将前一个选择所述含串匹配编码工具的编码工具组合为最优编码工具组合的编码单元m-i的压缩数据输出到压缩码流;
步骤六,将所述含串匹配编码工具的编码工具组合产生的当前编码单元m编码结果暂存,用于把当前编码单元m逐个与后续编码的编码单元尾首相接排列在一起进行涉及到编码单元m的最后一个匹配串的预编码,然后跳至步骤八;
步骤七,将当前编码单元m的最优编码工具组合产生的压缩数据输出到压缩码流;
步骤八,重复步骤一至步骤七,直至一幅图像或一个视频序列编码结束。
53.根据权利要求42所述的屏幕图像压缩方法,其特征在于:任一所述编码工具组合使用了区间编码工具,则所述压缩方法包括以下步骤:
步骤一,输入当前编码单元m及部分下一个编码单元m+1的像素,其中,m为当前编码单元的序号;
步骤二,对当前编码单元m,采用多套编码工具组合,同时进行预编码,包括以下步骤:
1)使用含区间编码工具的编码工具组合对当前编码单元m进行预编码,包括以下子步骤:
1a)计算当前编码单元m与前一个选择所述含区间编码工具的编码工具组合为最优组合的编码单元的序号差i;
1b)判别是否i≤I+1,若否则跳到步骤1d),否则顺序执行,其中,I为一预先设定的正整数,其值小于一整行像素涉及的编码单元的个数的10倍;
1c)i≤I时,把编码单元m-i与编码单元m尾首相接排列在一起,使用所述含区间编码工具的编码工具组合完成编码单元m-i的涉及到编码单元m-i最后一个区间编码字节的可含编码单元m的像素的全部预编码;i=I+1时,在编码单元m-i内强行结束编码单元m-i的区间编码,使用所述含区间编码工具的编码工具组合完成编码单元m-i的不含编码单元m的像素的全部预编码;
1d)使用所述含区间编码工具的编码工具组合对编码单元m进行可跨越编码单元m与编码单元m+1边界的预编码;
2)使用除所述含区间编码工具的编码工具组合之外的其余编码工具组合对当前编码单元m进行预编码;
步骤三,比较各套组合产生的率-失真特性,选择率-失真特性最优的最优编码工具组合;
步骤四,判别最优编码工具组合是否是所述含区间编码工具的编码工具组合,若否则跳到步骤七,否则顺序执行;
步骤五,将前一个选择所述含区间编码工具的编码工具组合为最优编码工具组合的编码单元m-i的压缩数据输出到压缩码流;
步骤六,将所述含区间编码工具的编码工具组合产生的当前编码单元m编码结果暂存,用于把当前编码单元m逐个与后续编码的编码单元尾首相接排列在一起进行涉及到编码单元m的最后一个区间编码字节的预编码,然后跳至步骤八;
步骤七,将当前编码单元m的最优编码工具组合产生的压缩数据输出到压缩码流;
步骤八,重复步骤一至步骤七,直至一幅图像或一个视频序列编码结束。
54.根据权利要求42所述的屏幕图像压缩方法,其特征在于:任一所述编码工具组合使用了像素串匹配编码工具、宽像素串匹配编码工具或编码中间数据串匹配编码工具之一或其组合、以及区间编码工具,且该编码工具组合对所述编码单元先进行串匹配编码后进行区间编码,则所述压缩方法包括以下步骤:
步骤一,输入当前编码单元m及部分下一个编码单元m+1的像素,其中,m为当前编码单元的序号;
步骤二,对当前编码单元m,采用多套编码工具组合,同时进行预编码,包括以下步骤:
1)使用含串匹配编码和区间编码工具的编码工具组合对当前编码单元m进行预编码,包括以下子步骤:
1a)计算当前编码单元m与前一个选择所述含串匹配编码和区间编码工具的编码工具组合为最优组合的编码单元的序号差i;
1b)判别是否i≤I+1,若否则跳到步骤1d),否则顺序执行,其中,I为一预先设定的正整数,其值小于一整行像素涉及的编码单元的个数的10倍;
1c)i≤I时,把编码单元m-i与编码单元m尾首相接排列在一起,使用所述含串匹配编码和区间编码工具的编码工具组合完成编码单元m-i的涉及到编码单元m-i最后多个匹配串及跨越所述多个匹配串的最后一个区间编码字节的可含编码单元m的像素的全部预编码;i=I+1时,强行把编码单元m-i的最后一个匹配串限制在编码单元m-i内并且在编码单元m-i内强行结束编码单元m-i的区间编码和输出最后一个区间编码字节,使用所述含串匹配编码和区间编码工具的编码工具组合完成编码单元m-i的不含编码单元m的像素的全部预编码;
1d)使用所述含串匹配编码和区间编码工具的编码工具组合对编码单元m进行可跨越编码单元m与编码单元m+1边界的预编码;
2)使用除所述含串匹配编码和区间编码工具的编码工具组合之外的其余编码工具组合对当前编码单元m进行预编码;
步骤三,比较各套组合产生的率-失真特性,选择率-失真特性最优的最优编码工具组合;
步骤四,判别最优编码工具组合是否是所述含串匹配编码和区间编码工具的编码工具组合,若否则跳到步骤七,否则顺序执行;
步骤五,将前一个选择所述含串匹配编码和区间编码工具的编码工具组合为最优编码工具组合的编码单元m-i的压缩数据输出到压缩码流;
步骤六,将所述含串匹配编码和区间编码工具的编码工具组合产生的当前编码单元m编码结果暂存,用于把当前编码单元m逐个与后续编码的编码单元尾首相接排列在一起进行涉及到编码单元m与后续编码单元边界部分的预编码,然后跳至步骤八;
步骤七,将当前编码单元m的最优编码工具组合产生的压缩数据输出到压缩码流;
步骤八,重复步骤一至步骤七,直至一幅图像或一个视频序列编码结束。
55.根据权利要求42所述的屏幕图像压缩方法,其特征在于:所述预编码步骤包括:
预编码子步骤1:包括预测编码、变换编码、量化编码、游程编码及算术编码步骤;
预编码子步骤2:包括像素串匹配编码及算术编码步骤;
预编码子步骤3:包括预测编码、游程编码、编码中间数据串匹配编码及算术编码步骤;
预编码子步骤4:包括向量量化编码及算术编码步骤;
预编码子步骤5:包括像素串匹配编码、变换编码、量化编码、游程编码及算术编码步骤。
56.根据权利要求50或51所述的屏幕图像压缩方法,其特征在于:所述预编码步骤包括:
预编码子步骤1:包括预测编码、变换编码、量化编码、重构、游程编码、算术编码及码率控制步骤;
预编码子步骤2:包括行排列方式像素重排序映射、列排列方式像素重排序映射、Hilbert排列方式像素重排序映射、分别使用所述三种排列方式的像素串匹配编码、率-失真特性计算估计和最优排列方式选择及算术编码,并把通过编码后的编码单元像素放入历史像素暂存区,并在需要时对所述历史像素暂存区进行更新的步骤;
预编码子步骤3:包括预测编码、量化编码、重构、游程编码、算术编码及码率控制步骤。
57.根据权利要求52所述的屏幕图像压缩方法,其特征在于:
1)所述预编码步骤包括:
预编码子步骤1:包括预测编码、变换编码、量化编码、重构、游程编码、算数编码及码率控制步骤;
预编码子步骤2:包括对当前编码单元与前一个选择该预编码子步骤2中所使用的编码工具组合为最优编码工具组合的编码单元进行序号差计算,以确定匹配串能否跨越编码单元的边界的步骤、将当前编码单元的原始输入像素放入历史像素暂存区的步骤、像素串匹配编码步骤、算术编码步骤以及把最优编码工具组合产生的编码单元的编码数据和结果放入暂存区的步骤;
2)所述压缩方法还包括以下步骤:如果最优编码工具组合是所述预编码子步骤1中所使用的编码工具组合,则将在预编码子步骤2中已经放入历史像素暂存区的当前编码单元的原始输入像素替换为当前编码单元通过所述最优编码工具组合进行编码后重构的像素。
58.根据权利要求54所述的屏幕图像压缩方法,其特征在于:
1)所述预编码步骤包括:
预编码子步骤1:包括预测编码、变换编码、量化编码、重构、游程编码、算数编码及码率控制步骤;
预编码子步骤2:包括对当前编码单元与前一个选择该预编码子步骤2中所使用的编码工具组合为最优编码工具组合的编码单元进行序号差计算,以确定区间编码字节及其所涉及的匹配串能否跨越编码单元的边界的步骤、将当前编码单元的原始输入像素放入历史像素暂存区的步骤、像素串匹配编码步骤、区间编码步骤以及把最优编码工具组合产生的编码单元的编码数据和结果放入暂存区的步骤;
2)所述压缩方法还包括以下步骤:如果最优编码工具组合是所述预编码子步骤1中所使用的编码工具组合,则将在预编码子步骤2中已经放入历史像素暂存区的当前编码单元的原始输入像素替换为当前编码单元通过所述最优编码工具组合进行编码后重构的像素。
59.一种屏幕图像解压方法,其特征在于:所述解压方法至少包括以下步骤:
解析步骤,接收从一外部装置输入的压缩码流,解析出所述码流段数据在压缩过程中所使用的编码工具组合,并选择一与所述编码工具组合对应的解码工具组合把所述码流段数据输出;
解码步骤,采用所述解析步骤所选择的解码工具组合对所述码流段数据进行解码,并重构出与所述码流段数据相应的编码单元的像素;
重构图像暂存输出步骤,对压缩码流所含的所有编码单元,重复所述解析步骤和解码步骤,重构所述解码步骤输入的图像像素组成的编码单元的像素并暂存重构后的一幅或多幅图像,并按照图像和视频显示格式输出重构后的整幅图像或整个视频序列。
60.根据权利要求59所述的屏幕图像解压方法,其特征在于,所述解码工具组合由逆变换解码、反量化解码、向量反量化解码、预测解码、像素串匹配解码、宽像素串匹配解码、编码中间数据串匹配解码、游程解码、二维游程解码、可变长解码、算术解码、区间解码12种解码工具按照特定的数量与特定的规则组成。
61.根据权利要求59所述的屏幕图像解压方法,其特征在于:任一所述解码工具组合使用了像素串匹配解码工具、宽像素串匹配解码工具及像素预测解码之一或其组合,则所述解码步骤还包括把解码重构的编码单元的像素放入历史像素暂存区的步骤。
62.根据权利要求59所述的屏幕图像解压方法,其特征在于:任一所述解码工具组合使用了解码中间数据预测解码或解码中间数据串匹配解码之一或其组合,则所述解码步骤还包括把所述编码单元重构像素经过部分编码后的中间数据放入历史中间数据暂存区的步骤。
63.根据权利要求59所述的屏幕图像解压方法,其特征在于:任一所述解码工具组合用了像素串匹配解码工具及宽像素串匹配解码工具之一或其组合,则所述解码步骤包括以下子步骤:
1)从码流数据中解析出所述编码单元的串匹配编码采用了哪种排列方式;
2)完成此解码步骤进行串匹配解码前所需要完成的各项解码子步骤;
3)选择采用与串匹配编码排列方式对应的串匹配解码器对所述编码单元的压缩码流段数据进行串匹配解码;
4)完成此解码步骤其余各项解码子步骤,并输出所述编码单元的重构像素。
64.根据权利要求59所述的屏幕图像解压方法,其特征在于:任一所述解码工具组合使用了像素串匹配解码工具、宽像素串匹配解码工具或解码中间数据串匹配解码工具之一或其组合,则所述解码步骤对编码单元的压缩码流数据段进行解码时,还包括通过累计解码得到的重构像素的个数以判断重构像素是属于当前编码单元的像素还是属于下一采用该同样解码工具组合进行解码的编码单元的像素的步骤以及把属于下一编码单元的部分像素放入一匹配串跨越编码单元边界的超出部分像素缓存区的步骤。
65.根据权利要求59所述的屏幕图像解压方法,其特征在于:任一所述解码工具组合使用了区间解码工具,则所述解码步骤对编码单元的压缩码流数据段进行解码时,还包括通过累计解码得到的重构像素的个数以判断重构像素是属于当前编码单元的像素还是属于下一采用该同样解码工具组合进行解码的编码单元的像素的步骤以及把属于下一编码单元的部分像素放入一区间编码字节跨越编码单元边界的超出部分像素缓存区的步骤。
66.根据权利要求59所述的屏幕图像解压方法,其特征在于:任一所述解码工具组合使用了像素串匹配解码工具、宽像素串匹配解码工具或解码中间数据串匹配解码工具之一或其组合、以及区间解码工具,且该解码工具组合对所述编码单元先进行区间解码后进行串匹配解码,则所述解码步骤对编码单元的压缩码流数据段进行解码时,还包括通过累计解码得到的重构像素的个数以判断重构像素是属于当前编码单元的像素还是属于下一采用该同样解码工具组合进行解码的编码单元的像素的步骤以及把属于下一编码单元的部分像素放入一区间编码字节及匹配串跨越编码单元边界的超出部分像素缓存区的步骤。
67.根据权利要求59所述的屏幕图像解压方法,其特征在于:所述解码步骤包括:
解码子步骤1:包括算术解码、游程解码、反量化、逆变换及预测解码步骤;
解码子步骤2:包括算术解码及像素串匹配解码步骤;
解码子步骤3:包括算术解码、编码中间数据串匹配解码、游程解码及预测解码步骤;
解码子步骤4:包括算术解码及向量反量化步骤;
解码子步骤5:包括算术解码、游程解码、反量化、逆变换及像素串匹配解码步骤。
68.根据权利要求63所述的屏幕图像解压方法,其特征在于:所述解码步骤包括:
解码子步骤1:包括算术解码、游程解码、反量化、逆变换及预测解码步骤;
解码子步骤2:包括排列方式解析、算术解码、行排列方式像素重排序映射、列排列方式像素重排序映射和Hilbert排列方式像素重排序映射及分别使用所述三种排列方式的像素串匹配解码,并把通过解码重构像素放入历史像素暂存区,并在需要时对历史像素暂存区进行更新的步骤;
解码子步骤3:包括算术解码、游程解码、反量化及预测解码步骤。
69.根据权利要求64所述的屏幕图像解压方法,其特征在于:所述解码步骤包括:
解码子步骤1:包括算术解码、游程解码、反量化、逆变换及预测解码步骤;
解码子步骤2:包括把编码单元的重构像素放入到这个历史像素暂存区的步骤、算术解码步骤、像素串匹配解码步骤、累计当前编码单元的重构像素个数的步骤以及把匹配串跨越编码单元边界的超出部分像素放入像素缓存区的步骤。
70.根据权利要求66所述的屏幕图像解压方法,其特征在于:所述解码步骤包括:
解码子步骤1:包括算术解码、游程解码、反量化、逆变换及预测解码步骤;
解码子步骤2:包括把编码单元的重构像素放入到这个历史像素暂存区的步骤、区间解码步骤、像素串匹配解码步骤、累计当前编码单元的重构像素个数的步骤以及把区间编码字节及其所涉及的匹配串跨越编码单元边界的超出部分像素放入像素缓存区的步骤。
CN201110385405.8A 2011-11-28 2011-11-28 一种屏幕图像压缩装置及压缩方法 Expired - Fee Related CN102497546B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201110385405.8A CN102497546B (zh) 2011-11-28 2011-11-28 一种屏幕图像压缩装置及压缩方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110385405.8A CN102497546B (zh) 2011-11-28 2011-11-28 一种屏幕图像压缩装置及压缩方法

Publications (2)

Publication Number Publication Date
CN102497546A true CN102497546A (zh) 2012-06-13
CN102497546B CN102497546B (zh) 2014-03-05

Family

ID=46189329

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110385405.8A Expired - Fee Related CN102497546B (zh) 2011-11-28 2011-11-28 一种屏幕图像压缩装置及压缩方法

Country Status (1)

Country Link
CN (1) CN102497546B (zh)

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104378644A (zh) * 2013-08-16 2015-02-25 上海天荷电子信息有限公司 定宽度变长度像素样值串匹配增强的图像压缩方法和装置
CN104581177A (zh) * 2013-10-12 2015-04-29 上海天荷电子信息有限公司 一种结合块匹配和串匹配的图像压缩方法和装置
CN104699821A (zh) * 2015-03-30 2015-06-10 四川空间信息产业发展有限公司 地理信息数据压缩处理算法
CN104835135A (zh) * 2014-02-12 2015-08-12 联发科技(新加坡)私人有限公司 图像数据处理方法及其装置
CN104853209A (zh) * 2014-02-16 2015-08-19 同济大学 图像编码、解码方法及装置
CN104853211A (zh) * 2014-02-16 2015-08-19 上海天荷电子信息有限公司 使用多种形式的参考像素存储空间的图像压缩方法和装置
WO2016082699A1 (zh) * 2014-11-28 2016-06-02 同济大学 图像编码方法、解码方法、编码装置和解码装置
WO2016172994A1 (zh) * 2015-04-30 2016-11-03 同济大学 图像编码、解码方法及装置
WO2016197893A1 (zh) * 2015-06-08 2016-12-15 同济大学 图像编码及解码方法、图像处理设备、计算机存储介质
CN106254865A (zh) * 2015-06-08 2016-12-21 同济大学 一种图像编码及解码方法、图像处理设备
CN107431805A (zh) * 2014-12-22 2017-12-01 三星电子株式会社 编码方法和装置以及解码方法和装置
CN107770544A (zh) * 2016-08-21 2018-03-06 上海天荷电子信息有限公司 采用多类匹配参数及前参数缓冲区的数据压缩方法和装置
CN108271024A (zh) * 2013-12-28 2018-07-10 同济大学 图像编码、解码方法及装置
CN108322753A (zh) * 2017-01-15 2018-07-24 上海天荷电子信息有限公司 动态调整最近编码参数数组的元素的数据压缩方法和装置
CN108347602A (zh) * 2017-01-22 2018-07-31 上海澜至半导体有限公司 用于无损压缩视频数据的方法和装置
CN108431835A (zh) * 2015-12-24 2018-08-21 皇家飞利浦有限公司 确定相关历史的长度的设备和方法
CN109479135A (zh) * 2016-08-10 2019-03-15 松下电器(美国)知识产权公司 编码装置、解码装置、编码方法及解码方法
CN111800640A (zh) * 2013-06-13 2020-10-20 上海天荷电子信息有限公司 方向交替变换来回扫描串匹配的图像编码解码方法和装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101083767A (zh) * 2006-05-30 2007-12-05 华为技术有限公司 一种视频编解码方法
CN101783952A (zh) * 2010-03-01 2010-07-21 广东威创视讯科技股份有限公司 图像优化编码方法及优化编码装置
WO2010151018A2 (ko) * 2009-06-26 2010-12-29 에스케이텔레콤 주식회사 다차원 정수 변환을 이용한 영상 부호화/복호화 장치 및 방법
CN102098507A (zh) * 2010-06-08 2011-06-15 同济大学 图像统合压缩方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101083767A (zh) * 2006-05-30 2007-12-05 华为技术有限公司 一种视频编解码方法
WO2010151018A2 (ko) * 2009-06-26 2010-12-29 에스케이텔레콤 주식회사 다차원 정수 변환을 이용한 영상 부호화/복호화 장치 및 방법
CN101783952A (zh) * 2010-03-01 2010-07-21 广东威创视讯科技股份有限公司 图像优化编码方法及优化编码装置
CN102098507A (zh) * 2010-06-08 2011-06-15 同济大学 图像统合压缩方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
董鹏宇: "基于H.264的无再损帧内编码", 《电子与信息学报》, vol. 32, no. 1, 31 January 2010 (2010-01-31), pages 117 - 122 *

Cited By (52)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111800641A (zh) * 2013-06-13 2020-10-20 上海天荷电子信息有限公司 同模式采用不同种类重构像素的图像编码解码方法和装置
CN111800640A (zh) * 2013-06-13 2020-10-20 上海天荷电子信息有限公司 方向交替变换来回扫描串匹配的图像编码解码方法和装置
CN111800641B (zh) * 2013-06-13 2023-08-25 上海天荷电子信息有限公司 同模式采用不同种类重构像素的图像编码解码方法和装置
CN111800640B (zh) * 2013-06-13 2023-11-10 上海天荷电子信息有限公司 方向交替变换来回扫描串匹配的图像编码解码方法和装置
CN105745926A (zh) * 2013-08-16 2016-07-06 同济大学 定宽度变长度像素样值串匹配增强的图像压缩方法和装置
CN112383781A (zh) * 2013-08-16 2021-02-19 上海天荷电子信息有限公司 参考块的位置决定其重构阶段的块匹配编解码方法和装置
CN112383780A (zh) * 2013-08-16 2021-02-19 上海天荷电子信息有限公司 点匹配参考集和索引来回扫描串匹配的编解码方法和装置
CN112383780B (zh) * 2013-08-16 2023-05-02 上海天荷电子信息有限公司 点匹配参考集和索引来回扫描串匹配的编解码方法和装置
CN104378644A (zh) * 2013-08-16 2015-02-25 上海天荷电子信息有限公司 定宽度变长度像素样值串匹配增强的图像压缩方法和装置
CN110913222A (zh) * 2013-10-12 2020-03-24 洪学文 一种结合块匹配和串匹配的图像压缩方法
CN110708543A (zh) * 2013-10-12 2020-01-17 洪学文 结合块匹配和串匹配的图像压缩装置
CN104581177A (zh) * 2013-10-12 2015-04-29 上海天荷电子信息有限公司 一种结合块匹配和串匹配的图像压缩方法和装置
CN110691250A (zh) * 2013-10-12 2020-01-14 洪学文 结合块匹配和串匹配的图像压缩装置
CN110691250B (zh) * 2013-10-12 2022-04-08 广州中广国科测控技术有限公司 结合块匹配和串匹配的图像压缩装置
CN104581177B (zh) * 2013-10-12 2020-03-31 中投国信(北京)科技发展有限公司 一种结合块匹配和串匹配的图像压缩方法和装置
CN110830803B (zh) * 2013-10-12 2022-04-19 深圳艺慧影视传媒有限公司 结合块匹配和串匹配的图像压缩方法
CN110913216A (zh) * 2013-10-12 2020-03-24 洪学文 一种结合块匹配和串匹配的图像压缩方法
CN110691252A (zh) * 2013-10-12 2020-01-14 洪学文 结合块匹配和串匹配的图像压缩装置
CN110830803A (zh) * 2013-10-12 2020-02-21 洪学文 结合块匹配和串匹配的图像压缩方法
CN108271024A (zh) * 2013-12-28 2018-07-10 同济大学 图像编码、解码方法及装置
CN108271024B (zh) * 2013-12-28 2021-10-26 同济大学 图像编码、解码方法及装置
CN104835135B (zh) * 2014-02-12 2018-02-23 联发科技(新加坡)私人有限公司 图像数据处理方法及其装置
CN104835135A (zh) * 2014-02-12 2015-08-12 联发科技(新加坡)私人有限公司 图像数据处理方法及其装置
WO2015120823A1 (zh) * 2014-02-16 2015-08-20 同济大学 使用多种形式的参考像素存储空间的图像压缩方法和装置
WO2015120818A1 (zh) * 2014-02-16 2015-08-20 同济大学 图像编码、解码方法及装置
CN104853209B (zh) * 2014-02-16 2020-09-29 同济大学 图像编码、解码方法及装置
CN104853211A (zh) * 2014-02-16 2015-08-19 上海天荷电子信息有限公司 使用多种形式的参考像素存储空间的图像压缩方法和装置
CN104853209A (zh) * 2014-02-16 2015-08-19 同济大学 图像编码、解码方法及装置
US11451835B2 (en) 2014-05-06 2022-09-20 Tongji University Method and device for entropy coding and decoding using mapping of matching relationship parameters
CN105704491A (zh) * 2014-11-28 2016-06-22 同济大学 图像编码方法、解码方法、编码装置和解码装置
US10341651B2 (en) 2014-11-28 2019-07-02 Tongji University Image coding method, decoding method, coding device and decoding device
WO2016082699A1 (zh) * 2014-11-28 2016-06-02 同济大学 图像编码方法、解码方法、编码装置和解码装置
CN107431805A (zh) * 2014-12-22 2017-12-01 三星电子株式会社 编码方法和装置以及解码方法和装置
CN107431805B (zh) * 2014-12-22 2020-08-18 三星电子株式会社 编码方法和装置以及解码方法和装置
CN104699821A (zh) * 2015-03-30 2015-06-10 四川空间信息产业发展有限公司 地理信息数据压缩处理算法
US10834428B2 (en) 2015-04-30 2020-11-10 Tongji University Image coding and decoding method and device
WO2016172994A1 (zh) * 2015-04-30 2016-11-03 同济大学 图像编码、解码方法及装置
WO2016197893A1 (zh) * 2015-06-08 2016-12-15 同济大学 图像编码及解码方法、图像处理设备、计算机存储介质
CN106254865A (zh) * 2015-06-08 2016-12-21 同济大学 一种图像编码及解码方法、图像处理设备
US11917168B2 (en) 2015-06-08 2024-02-27 Tongji University Image encoding and decoding methods, image processing device, and computer storage medium
CN106254865B (zh) * 2015-06-08 2020-06-09 同济大学 一种图像编码及解码方法、图像处理设备
CN108431835A (zh) * 2015-12-24 2018-08-21 皇家飞利浦有限公司 确定相关历史的长度的设备和方法
CN108431835B (zh) * 2015-12-24 2021-12-10 皇家飞利浦有限公司 确定相关历史的长度的设备和方法
US11297322B2 (en) 2016-08-10 2022-04-05 Panasonic Intellectual Property Corporation Of America Encoder, decoder, encoding method, and decoding method
CN109479135A (zh) * 2016-08-10 2019-03-15 松下电器(美国)知识产权公司 编码装置、解码装置、编码方法及解码方法
US10951896B2 (en) 2016-08-10 2021-03-16 Panasonic Intellectual Property Corporation Of America Encoder, decoder, encoding method, and decoding method
CN109479135B (zh) * 2016-08-10 2021-10-15 松下电器(美国)知识产权公司 编码装置、解码装置、编码方法及解码方法
CN107770544A (zh) * 2016-08-21 2018-03-06 上海天荷电子信息有限公司 采用多类匹配参数及前参数缓冲区的数据压缩方法和装置
CN107770544B (zh) * 2016-08-21 2023-12-08 上海天荷电子信息有限公司 采用多类匹配参数及前参数缓冲区的数据压缩方法和装置
CN108322753A (zh) * 2017-01-15 2018-07-24 上海天荷电子信息有限公司 动态调整最近编码参数数组的元素的数据压缩方法和装置
CN108322753B (zh) * 2017-01-15 2024-04-12 上海天荷电子信息有限公司 动态调整最近编码参数数组的元素的数据压缩方法和装置
CN108347602A (zh) * 2017-01-22 2018-07-31 上海澜至半导体有限公司 用于无损压缩视频数据的方法和装置

Also Published As

Publication number Publication date
CN102497546B (zh) 2014-03-05

Similar Documents

Publication Publication Date Title
CN102497546B (zh) 一种屏幕图像压缩装置及压缩方法
CN104378644B (zh) 定宽度变长度像素样值串匹配增强的图像压缩方法和装置
CN111800640B (zh) 方向交替变换来回扫描串匹配的图像编码解码方法和装置
US9787996B2 (en) Encoding/decoding method and apparatus using a tree structure
US9813710B2 (en) Method and apparatus for encoding/decoding video using split layer
CN104811707B (zh) 对视频进行解码的设备
CN104737540B (zh) 用于下一代视频的视频编解码器架构
CN104853209B (zh) 图像编码、解码方法及装置
CN109417623A (zh) 视频编码的色度分量的增强帧内预测的方法与装置
CN104853211A (zh) 使用多种形式的参考像素存储空间的图像压缩方法和装置
WO2015078422A1 (zh) 图像编码、解码方法及装置
CN105491376A (zh) 图像编码、解码方法及装置
CN103650496A (zh) 用于在hevc中编码的基于像素的帧内预测
CN104754362B (zh) 使用精细划分块匹配的图像压缩方法
CN105100814A (zh) 图像编码、解码方法及装置
CN109068142A (zh) 基于纹理特征的360度视频帧内预测快速决策
CN109716767A (zh) 使用基于变换的残差编码的预测图像编码
CN105049849B (zh) 图像解码装置
CN104811731A (zh) 多层次子块匹配图像压缩方法
CN110505488B (zh) 扩展预测像素数组的图像编码或解码方法
CN104918050B (zh) 使用动态排列重组的参考像素样值集的图像编解码方法
CN112565750B (zh) 一种视频编码方法、电子设备和存储介质
KR20230147149A (ko) 인트라 예측 방법, 인코더, 디코더 및 저장 매체

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20140305

Termination date: 20171128

CF01 Termination of patent right due to non-payment of annual fee