一种使用块匹配的图像压缩方法和装置制造方法

文档序号:7813450阅读:287来源:国知局
一种使用块匹配的图像压缩方法和装置制造方法
【专利摘要】本发明提供一种图像压缩方法和装置。对编码块进行编码时,在已重构参考像素样值集之中,按照预定的评估准则,搜索得到一个或多个最优匹配块(参考块或预测块)。本发明的图像压缩方法和装置的特征是匹配块(参考块或预测块)与被匹配块(编码块或解码块或重构块)可有重叠部分,匹配块不一定全部都在已重构参考像素样值集之中,即仅匹配块的一部分在已重构参考像素样值集之中。因此,在编码器搜索匹配块以及编码器和解码器用匹配块来复原被匹配块时,必须补全所述匹配块中不在已重构参考像素样值集之中的那部分的像素样值。
【专利说明】一种使用块匹配的图像压缩方法和装置

【技术领域】
[0001] 本发明涉及一种数字视频压缩编码及解码系统,特别是计算机屏幕图像和视频的 编码及解码的方法和装置。

【背景技术】
[0002] 随着以远程桌面为典型表现形式的新一代云计算与信息处理模式及平台的发展 和普及,多台计算机之间、计算机主机与智能电视、智能手机、平板电脑等其他数字设备之 间及各种各类数字设备之间的互联已经成为现实并日趋成为一种主流趋势。这使得服务器 端(云)到用户端的实时屏幕传输成为当前的迫切需求。由于需要传输的屏幕视频数据量很 大,以平板电脑2048x1536像素分辨率且60帧/秒刷新率的24位真彩色屏幕图像为例,需 要传输的数据达每秒2048x1536x60x24=4320兆比特,如此多的数据要想在现实的网络条 件下实现实时传输是不可能的,因此对于计算机屏幕图像的有效的数据压缩必不可少。
[0003] 充分利用计算机屏幕图像的特点,对计算机屏幕图像进行超高效率的压缩,也是 正在制定中的最新国际视频压缩标准HEVC (High Efficiency Video Coding)和其他若干 国际标准、国内标准、行业标准的一个主要目标。
[0004] 计算机屏幕图像的一个显著特点是同一帧图像内通常会有很多相似甚至完全相 同的像素图样(pixel pattern)。例如,计算机屏幕图像中常出现的中文或外文文字,都 是由少数几种基本笔划所构成,同一帧图像内可以找到很多相似或相同的笔划。计算机 屏幕图像中常见的菜单、图标等,也具有很多相似或相同的图样。现有的图像和视频压缩 技术中采用的帧内预测(intra prediction)方式,仅参考相邻的像素样值,无法利用一帧 图像中的相似性或相同性来提高压缩效率。现有技术中的巾贞内运动补偿(intra motion compensation)方式,用几种固定大小(如4x4,8x8,16x16,32x32,64x64像素)的块来进行 块匹配(block matching)编码,但固定大小的匹配块必须完全在已重构参考像素样值集之 中,因而与正在编码中尚未重构的被匹配块不能重叠,特别当匹配块比较大时,匹配块与被 匹配块的对应像素样值之间距离就很远,也就是无法进行距离相近的匹配,大大影响块匹 配编码的效率。因此,必须突破现有技术,特别是解决现有匹配编码技术中匹配块与被匹配 块不能重叠的难题,以大幅度提高压缩效果。
[0005] 屏幕图像的数字视频信号的自然形式是图像的序列。一帧图像通常是由若干像素 组成的矩形区域,如果一个数字视频信号每秒有50帧图像,那么一段30分钟的数字视频信 号就是一个由30x60x50 = 90000帧图像组成的视频图像序列,有时也简称为视频序列或序 列。对数字视频信号进行编码就是对一帧一帧图像进行编码。在任一时刻,正在编码中的 那一帧图像称为当前编码图像。同样,对数字视频信号的压缩码流(码流也称为比特流)进 行解码就是对一帧一帧图像的压缩码流进行解码。在任一时刻,正在解码中的那一帧图像 称为当前解码图像。当前编码图像或当前解码图像都统称为当前图像。
[0006] 最新国际视频压缩标准HEVC中,对一帧图像进行编码时,把一帧图像划分成若干 块MxM像素的子图像,称为"编码单元(CodingUnit简称⑶)",以⑶为基本编码单位,对 子图像一块一块进行编码。常用的M的大小是4,8,16,32,64。因此,对一个视频图像序列 进行编码就是对各帧图像的各个编码单元即CU依次进行编码。在任一时刻,正在编码中的 ⑶称为当前编码⑶。同样,解码时也是对各个编码单元即⑶依次进行解码,最终重构出整 个视频图像序列。在任一时刻,正在解码中的CU称为当前解码CU。当前编码CU或当前解 码⑶都统称为当前⑶。
[0007] 为适应一帧图像内各部分图像内容与性质的不同,有针对性地进行最有效的编 码,一帧图像内各CU的大小可以是不同的,有的是8x8,有的是64x64,等等。为了使不同大 小的CU能够无缝拼接起来,一帧图像总是先划分成大小完全相同具有AW像素的"最大编 码单元(LargestCodingUnit简称IXU)",也称为深度为0的⑶。然后,一个深度为0的 ⑶可划分成4个大小完全相同具有

【权利要求】
1. 一种图像编码方法,其特征在于:对一个编码块,搜索得到一个参考块,所述参考块 有下列两种情形之一: 所述参考块是原始完整已重构参考块,即完整地在已重构参考像素样值集内 或者 所述参考块是部分已重构参考块,即由在已重构参考像素样值集内的已重构部分和不 在已重构参考像素样值集内的未重构部分这两部分构成; 所述参考块与所述编码块具有同样形状和大小;使用所述参考块作为预测块来构造所 述编码块;把在预测编码过程中产生的与预测解码有关的参数放入压缩码流。
2. 根据权利要求1所述的编码方法,其特征在于包括但不限于以下步骤的全部或部 分: 步骤1)输入一个当前编码块的位置和大小,同时输入若干个在预定的搜索范围内的 候选的参考块的位置和大小,对于所述编码块和所述若干个候选的参考块中的每一个参考 块,执行下列步骤:从所述编码块的位置和大小以及所述参考块的位置和大小判断出所述 参考块是否整体在重构参考像素样值暂存区(即已重构参考像素样值集)内,如果是,顺序 执行下一步骤,否则,跳至步骤3); 步骤2)从所述重构参考像素样值暂存区内取出原始完整已重构参考块,并选择所述原 始完整已重构参考块作为后续步骤5)中移动矢量搜索的输入参考块;跳至步骤5); 步骤3)从所述重构参考像素样值暂存区内取出部分已重构参考块,把所述部分已重构 参考块中的全部或部分已重构像素样值和/或所述部分已重构参考块的邻近的部分已重 构像素样值的数值赋值予所述部分已重构参考块中的未重构部分,产生填充补全已重构参 考块; 步骤4)选择所述填充补全已重构参考块作为后续步骤5)中移动矢量搜索的输入参考 块; 步骤5)以所述若干个所述参考块(即步骤2的所述输入参考块或者步骤4的所述输入 参考块)作为参考和候选对象,对所述编码块进行移动矢量搜索以找到最优参考块和最优 移动矢量并且进行编码的其余步骤。
3. -种图像解码方法,其特征在于:解析压缩码流,获取与预测解码有关的参数;根据 所述参数的部分或全部,获取与一个解码块对应的一个参考块,所述参考块有下列两种情 形之一: 所述参考块是原始完整已重构参考块,即完整地在已重构参考像素样值集内 或者 所述参考块是部分已重构参考块,即由在已重构参考像素样值集内的已重构部分和不 在已重构参考像素样值集内的未重构部分这两部分构成。
4. 根据权利要求3所述的解码方法,其特征在于:所述参数包括但不限于有关所述解 码块的位置的参数,有关所述解码块的大小的参数,有关所述参考块的位置的参数,有关所 述参考块的大小的参数。
5. 根据权利要求3所述的解码方法,其特征在于:在部分已重构参考块的情形,构造所 述参考块的所述未重构部分,构造方式包括但不限于下列方式之一或其组合: 所述未重构部分的全部或部分数值被直接或间接设置为等于所述参考块的所述重构 部分内的部分或全部已重构参考像素样值的数值 或者 所述未重构部分的全部或部分数值被直接或间接设置为等于所述参考块的所述重构 部分内的部分或全部已重构参考像素样值的数值按照预先规定的方式进行外插运算得到 的数值 或者 所述未重构部分的全部或部分数值被直接或间接设置为等于所述参考块的所述重构 部分外但邻近的已重构参考像素样值的数值 或者 所述未重构部分的全部或部分数值被直接或间接设置为等于所述参考块的所述重构 部分外但邻近的已重构参考像素样值的数值按照预先规定的方式进行外插运算得到的数 值 或者 所述未重构部分的全部或部分数值被直接或间接设置为等于预先规定的数值。
6. 根据权利要求5所述的解码方法,其特征在于:在部分已重构参考块的情形,把所述 参考块的所述重构部分和构造后的所述参考块的所述未重构部分的数值直接或间接赋值 予所述解码块。
7. 根据权利要求3所述的解码方法,其特征在于:对所述已重构参考像素样值集进行 扩展,构成所述已重构参考像素样值集的扩展部分;扩展已重构参考像素样值集的方式包 括但不限于下列方式之一或其组合: 扩展部分的像素样值的数值被直接或间接设置为等于所述已重构参考像素样值集内 的一部分已重构参考像素样值的数值; 或者 扩展部分的像素样值的数值被直接或间接设置为等于所述已重构参考像素样值集内 的与扩展部分邻接的一部分已重构参考像素样值的数值; 或者 扩展部分的像素样值的数值被直接或间接设置为等于对所述已重构参考像素样值集 内的一部分已重构参考像素样值的数值按照预先规定的方式进行外插运算得到的数值; 或者 扩展部分的像素样值的数值被直接或间接设置为等于对所述已重构参考像素样值集 内的与扩展部分邻接的一部分已重构参考像素样值的数值按照预先规定的方式进行外插 运算得到的数值; 或者 扩展部分的像素样值的数值被直接或间接设置为等于预先规定的数值; 或者 所有可能的扩展部分用预先规定的数值来填充。
8. 根据权利要求7所述的解码方法,其特征在于:在部分已重构参考块的情形,构造所 述参考块的所述未重构部分,构造方式包括但不限于:所述参考块的所述未重构部分的全 部或部分数值被直接或间接设置为等于所述参考块的在扩展部分内的像素样值的数值。
9. 根据权利要求8所述的解码方法,其特征在于:在部分已重构参考块的情形,把所述 参考块的所述重构部分和构造后的所述参考块的所述未重构部分的数值直接或间接赋值 予所述解码块。
10. 根据权利要求3所述的解码方法,其特征在于:在部分已重构参考块的情形,把所 述参考块的所述已重构部分的数值直接或间接赋值予所述解码块的与所述参考块的所述 已重构部分对应的部分,对所述解码块的与所述参考块的所述未重构部分对应的部分进行 赋值,赋值的方法包括但不限于下列方式之一或其组合: 把所述参考块的所述重构部分内的部分或全部已重构参考像素样值的数值直接或间 接赋值予所述解码块的与所述参考块的所述未重构部分对应的部分 或者 把所述参考块的所述重构部分内的部分或全部已重构参考像素样值的数值按照预先 规定的方式进行外插运算得到的数值直接或间接赋值予所述解码块的与所述参考块的所 述未重构部分对应的部分 或者 把所述参考块的所述重构部分外但邻近的已重构参考像素样值的数值直接或间接赋 值予所述解码块的与所述参考块的所述未重构部分对应的部分 或者 把所述参考块的所述重构部分外但邻近的已重构参考像素样值的数值按照预先规定 的方式进行外插运算得到的数值直接或间接赋值予所述解码块的与所述参考块的所述未 重构部分对应的部分 或者 把预先规定的数值直接或间接赋值予所述解码块的与所述参考块的所述未重构部分 对应的部分。
11. 根据权利要求7所述的解码方法,其特征在于:在部分已重构参考块的情形,把所 述参考块的所述已重构部分的数值直接或间接赋值予所述解码块的与所述参考块的所述 已重构部分对应的部分,把所述参考块的在扩展部分内的像素样值的数值直接或间接赋值 予所述解码块的与所述参考块的所述未重构部分对应的部分,即把所述参考块,包括所述 已重构部分和在所述扩展部分内的像素样值部分这两部分的数值,直接或间接赋值予所述 解码块。
12. 根据权利要求3所述的解码方法,其特征在于包括但不限于以下步骤的全部或部 分: 步骤1)根据所述参数的部分或全部,判断出与当前解码位置上解码块对应的参考块是 否整体在重构参考像素样值暂存区内,如果是,顺序执行下一步骤,否则,跳至步骤3); 步骤2)选择所述重构参考像素样值暂存区中根据所述参数的部分或全部确定的原始 完整已重构参考块作为后续步骤5)中所使用的参考块;跳至步骤5); 步骤3)把所述重构参考像素样值暂存区中根据所述参数的部分或全部确定的部分已 重构参考块中的全部或部分已重构像素样值和/或所述部分已重构参考块的邻近的部分 已重构像素样值的数值和/或预先规定的数值直接或间接赋值予所述部分已重构参考块 中的未重构部分,产生填充补全已重构参考块; 步骤4)选择所述填充补全已重构参考块作为后续步骤5)中所要复制的参考块; 步骤5)把所述参考块,即步骤2的所述参考块或者步骤4的所述参考块,的数值赋值 予所述解码块,然后进行解码其余步骤。
13. 根据权利要求3所述的解码方法,其特征在于包括但不限于以下步骤的全部或部 分: 步骤1)根据所述参数的部分或全部,判断出与当前解码位置上解码块对应的参考块是 否整体在重构参考像素样值暂存区内,如果是,顺序执行下一步骤,否则,跳至步骤3); 步骤2)把所述重构参考像素样值暂存区中根据所述参数的部分或全部确定的原始完 整已重构参考块的数值赋值予所述解码块;跳至步骤5); 步骤3)把所述重构参考像素样值暂存区中根据所述参数的部分或全部确定的部分已 重构参考块中的已重构像素样值的数值赋值予所述解码块的相应部分; 步骤4)把全部或部分所述已重构像素样值和/或所述部分已重构参考块的邻近的部 分已重构像素样值的数值和/或预先规定的数值直接或间接赋值予所述解码块中未被以 上步骤3)赋值到的部分,完成整个解码块的全部赋值; 步骤5)进行解码其余步骤。
14. 一种图像编码装置,其特征在于包括但不限于以下各模块的全部或部分:参考块 是否整体在重构参考像素样值暂存模块内的判断模块,构造未重构部分模块。
15. 根据权利要求14所述的编码装置,其特征在于包括但不限于以下各模块的全部或 部分: 模块1)参考块是否整体在重构参考像素样值暂存模块内的判断模块:本模块输入包 括一个当前编码块的位置和大小,本模块输入还包括在预定的搜索范围内的一个候选的参 考块的位置和大小,本模块从所述编码块的位置和大小以及所述参考块的位置和大小判断 出所述参考块是否整体在重构参考像素样值暂存模块内; 模块2)重构参考像素样值暂存模块:暂存到当前编码中编码块的位置为止的所有 以前已重构像素样值,用作当前编码中编码块的参考像素样值(即候选的参考块的像素样 值); 模块3)构造未重构部分模块:从所述重构参考像素样值暂存模块中取出部分已重构 参考块,把所述部分已重构参考块中的全部或部分已重构像素样值和/或所述部分已重构 参考块的邻近的部分已重构像素样值的数值赋值予所述部分已重构参考块中的未重构部 分,产生填充补全的参考块; 模块4)移动矢量搜索模块;本模块的功能是对于一个输入的当前编码块,在已重构参 考像素样值集即所述重构参考像素样值暂存模块中,按照预定的评估准则,在一个预定的 搜索范围内,搜索得到一个最优参考块以及对应的最优移动矢量;所述最优参考块可以是 来自所述重构参考像素样值暂存模块的原始完整已重构参考块,也可以是来自所述用已重 构部分赋值予未重构部分模块的填充补全的参考块; 模块5)其余编码运算模块:施行对编码块,所述编码块所在的当前编码CU和当前编码 IXU的其余编码运算。
16. -种图像解码装置,其特征在于包括但不限于以下各模块的全部或部分:参考块 是否整体在重构参考像素样值暂存模块内的判断模块,构造未重构部分模块,把部分已重 构参考块的数值赋值予解码块的模块。
17. 根据权利要求16所述的解码装置,其特征在于包括但不限于以下各模块的全部或 部分: 模块1)参考块是否整体在重构参考像素样值暂存模块内的判断模块:本模块输入包 括但不限于从压缩码流中获取的与预测解码有关的参数的部分或全部,本模块从所述参数 的部分或全部和当前解码中解码块的位置与大小判断出对应的参考块是否整体在重构参 考像素样值暂存模块内; 模块2)重构参考像素样值暂存模块:暂存到当前解码中解码块的位置为止的所有以 前已重构像素样值,用作当前解码中解码块的参考像素样值(即所述参考块的像素样值); 模块3)构造未重构部分模块:把所述重构参考像素样值暂存模块中由所述参数的部 分或全部确定的部分已重构参考块中的全部或部分已重构像素样值和/或所述部分已重 构参考块的邻近的部分已重构像素样值的数值和/或预先规定的数值直接或间接赋值予 所述部分已重构参考块中的未重构部分,产生填充补全的参考块; 模块4)把参考块的数值赋值予解码块的模块:本模块的功能是把所述重构参考像素 样值暂存模块中由所述参数确定的原始完整已重构参考块或者模块3)产生的填充补全的 参考块的数值和/或预先规定的数值直接或间接赋值予当前解码中解码块; 模块5)其余解码运算模块:施行对所述当前解码中解码块,所述当前解码中解码块所 在的当前解码CU和当前解码LCU的其余解码运算。
18. 根据权利要求16所述的解码装置,其特征在于包括但不限于以下各模块的全部或 部分: 模块1)参考块是否整体在重构参考像素样值暂存模块内的判断模块:本模块输入包 括但不限于从压缩码流中获取的与预测解码有关的参数的部分或全部,本模块从所述参数 的部分或全部和当前解码中解码块的位置与大小判断出对应的参考块是否整体在重构参 考像素样值暂存模块内; 模块2)重构参考像素样值暂存模块:暂存到当前解码中解码块的位置为止的所有以 前已重构像素样值,用作当前解码中解码块的参考像素样值; 模块3)把原始完整已重构参考块的数值赋值予解码块的模块:本模块的功能是把所 述重构参考像素样值暂存模块中由所述参数的部分或全部确定的原始完整已重构参考块 的数值赋值予所述当前解码中解码块; 模块4)把部分已重构参考块的数值赋值予解码块的模块:本模块的功能是1)把所述 重构参考像素样值暂存模块中由所述参数确定的部分已重构参考块的已重构像素样值的 数值赋值予所述解码块的相应部分,2)把全部或部分所述已重构像素样值和/或所述部分 已重构参考块的邻近的部分已重构像素样值的数值和/或预先规定的数值直接或间接赋 值予所述解码块中尚未被赋值到的部分,完成整个解码块的全部赋值; 模块5)其余解码运算模块:施行对所述当前解码中解码块,所述当前解码中解码块所 在的当前解码CU和当前解码LCU的其余解码运算。
19. 根据权利要求1至18中任一权利要求所述的编码方法或解码方法或编码装置或解 码装置,其特征在于:所述部分已重构匹配块(即参考块或预测块)是满足|Xr - Xc|〈Nx 并且|Yr - Yc|〈Ny的匹配块,其中(Xc,Yc)是所述被匹配块(即编码块或解码块)的最 左上像素样值相对于一帧图像的一个预先设定的原点的坐标,(Xr,Yr)是所述匹配块的最 左上像素样值相对于所述原点的坐标,Nx是所述被匹配块和所述匹配块的宽度,Ny是所述 被匹配块和所述匹配块的高度;即所述匹配块与所述被匹配块在位置上有重叠部分。
20. 根据权利要求19所述的编码方法或解码方法或编码装置或解码装置,其特征在 于:所述部分已重构匹配块是满足Xc - Nx〈 Xr彡Xc并且Yc - Ny〈 Yr彡Yc但其中 两个等号不能同时成立的匹配块;把所述部分已重构匹配块的数值P (X,Y)赋值予所述被 匹配块P (X,Y)的赋值语句包括但不限于下列赋值语句之任一或其组合: for (y=0; y<Ny; ++y) for (x=0; x〈Nx; ++x) P(Xc + x, Yc + y) = P (Xr + x, Yr + y) 或者 for (y=0; y<Ny; ++y) for (x=0; x〈Nx; ++x) P(Xc + Nx - 1 - x, Yc + y) = P(Xr + Nx - 1 - x, Yr + y) 或者 for (x=0; x〈Nx; ++x) for (y=0; y<Ny; ++y) P(Xc + x, Yc + y) = P(Xr + x, Yr + y) 或者 for (x=0; x〈Nx; ++x) for (y=0; y<Ny; ++y) P(Xc + x, Yc + Ny - 1 - y) = P(Xr + x, Yr + Ny - 1 - y)。
21. 根据权利要求20所述的编码方法或解码方法或编码装置或解码装置,其特征在 于:所述部分已重构匹配块是满足Xr = Xc并且Yc - Ny〈 Yr〈 Yc的上下部分自匹配的 垂直匹配条或者满足Xc - Nx〈 Xr〈 Xc并且Yr = Yc的左右部分自匹配的水平匹配条; 把所述部分已重构匹配条的数值P (X,Y)赋值予所述被匹配条P (X,Y)的赋值语句包括 但不限于: 上下部分自匹配的赋值语句 for (y=0; y<Ny; ++y) P(Xc, Yc + y) = P(Xr, Yr + y) 左右部分自匹配的赋值语句 for (x=0; x〈Nx; ++x) P(Xc + x, Yc) = P(Xr + x, Yr) 〇
22. 根据权利要求19所述的编码方法或解码方法或编码装置或解码装置,其特征在 于:所述匹配块是匹配串,像素样值的坐标(X,Y)成为一个1维地址K,地址为K的像素样 值P的数值是P (K);-个长度为L的被匹配串的第一个像素样值的地址是Kc,而一个匹 配串(必定有与被匹配串完全相同的长度)的第一个像素样值的地址是Kr ;所述部分已重构 匹配块是满足Kc 一 L〈 Kr〈 Kc的部分已重构匹配串;把所述部分已重构匹配串的数值P (K)赋值予所述被匹配串P (K)的赋值语句包括但不限于: for(k=0; k<L; ++k) P (Kc + k) = P (Kr + k)。
23.根据权利要求1至18中任一权利要求或权利要求20或21或22所述的编码方法 或解码方法或编码装置或解码装置,其特征在于所述编码块或解码块或参考块或预测块是 (但不限于)下列情况之一: 编码单元(Coding Unit简称⑶) 或 预测单兀(Prediction Unit简称PU) 或 最大编码单元(Largest Coding Unit简称LQJ) 或 编码树单兀(Coding Tree Unit简称CTU) 或 由像素样值组成的一个矩形区域 或 由像素样值组成的一个正方形区域 或 由像素样值组成的一个三边形区域 或 由像素样值组成的一个四边形区域 或 由像素样值组成的一个多边形区域 或 由像素样值组成的一个垂直条形区域(宽度为1的矩形区域) 或 由像素样值组成的一个水平条形区域(高度为1的矩形区域) 或 由像素样值组成的一个任意角度条形区域(区域中任一像素样值没有上下相邻的像素 样值或者没有左右相邻的像素样值的线条形区域) 或 由像素样值组成的一个串形区域 或 由像素样值组成的一个由一个或多个条形区域构成的区域。
【文档编号】H04N19/70GK104427338SQ201410450596
【公开日】2015年3月18日 申请日期:2014年9月5日 优先权日:2013年9月7日
【发明者】林涛 申请人:上海天荷电子信息有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1