CN112637600A - 对数据进行有损或无损压缩的编码、解码的方法或装置 - Google Patents

对数据进行有损或无损压缩的编码、解码的方法或装置 Download PDF

Info

Publication number
CN112637600A
CN112637600A CN202011465573.3A CN202011465573A CN112637600A CN 112637600 A CN112637600 A CN 112637600A CN 202011465573 A CN202011465573 A CN 202011465573A CN 112637600 A CN112637600 A CN 112637600A
Authority
CN
China
Prior art keywords
string
overlapping
strings
ysv
xsv
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
CN202011465573.3A
Other languages
English (en)
Other versions
CN112637600B (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.)
University of Shaoxing
Original Assignee
University of Shaoxing
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 University of Shaoxing filed Critical University of Shaoxing
Priority to CN202011465573.3A priority Critical patent/CN112637600B/zh
Publication of CN112637600A publication Critical patent/CN112637600A/zh
Application granted granted Critical
Publication of CN112637600B publication Critical patent/CN112637600B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/196Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本发明公开了一种对数据进行有损或无损压缩的编码、解码的方法或装置,属于编码、解码技术领域,对一个编码块进行串预测或串匹配编码时;将编码块中的重叠串至少拆分为两个连续的具有相同串矢量的不重叠串,并计算拆分后的不重叠串数量;或将编码块中至少有两个连续的具有相同串矢量的不重叠串合并为一个重叠串,计算编码块中不重叠串数量;将拆分前的重叠串或者合并后的重叠串的编码参数部分或全部信息写入压缩数据码流。本发明通过上述设置可以一次匹配到较长的重叠串,节省了重叠串搜索成本,同时将重叠串的编码参数信息写入压缩数据码流,提升了编码效率。

Description

对数据进行有损或无损压缩的编码、解码的方法或装置
技术领域
本发明属于编码、解码技术领域,特别涉及一种对数据进行有损或无损压缩的编码、解码的方法或装置。
背景技术
随着人类社会进入人工智能、大数据、虚拟现实、增强现实、混合现实、云计算、移动计算、云-移动计算、超高清(4K)和特超高清(8K)视频图像分辨率、4G/5G通讯的时代,各种数据集(包括大数据、图像数据、视频数据、以及各种新形态的数据)已经成为互联网带宽的主要消耗者,对其进行超高压缩比和极高质量的数据压缩成为必不可少的技术。
数据集是由数据的样值也称元素(例如:字节、比特、像素、像素分量、空间采样点、变换域系数)组成的排列成一定空间(一维、二维、或多维)形状的有限数据的集合(例如:一个一维数据队列、一个二维数据文件、一帧图像、一个视频序列、一个变换域、一个变换块、多个变换块、一个三维场景、一个持续变化的三维场景的序列)。对数据集,特别是二维或以上数据集进行数据压缩的编码(以及相应的解码)时,通常把此数据集划分成若干具有预定形状的子集,称为编码块(从解码的角度也就是解码块,统称为编码块或解码块),以编码块或解码块为单位,按照预定的时间顺序,一块一块进行编码或解码。在任一时刻,正在编码中的编码块称为当前编码块。在任一时刻,正在解码中的解码块称为当前解码块。当前编码块或当前解码块统称为当前编码块或解码块或简称为当前块。正在编码或解码中的样值称为当前编码样值或当前解码样值,简称为当前样值也称为当前元素。
对于具有一定形状的一个编码块或解码块,在很多场合需要将其划分成更精细的基元(基本单元),按照预定的时间顺序,一个基元一个基元进行编码或解码。对一个基元内的所有样值,通常施行同一类型的编码或解码操作。在任一时刻,正在编码或解码中的基元称为当前基元。对一个基元进行编码的结果是一个或多个编码参数,最后产生含这些编码参数的压缩数据码流。对一个基元进行解码就是解析所述压缩数据码流获得一个或多个编码参数,从所述一个或多个编码参数复原出重构的数据的样值。基元的例包括编码块或解码块(整个块作为一个基元)、子块、微块、串、字节串、alpha(阿尔法)串、像素单元串、像素串、样值串、索引串、线条。
屏幕内容是可含部分自然图像内容区域的比自然图像更具普遍性的图像或视频。屏幕内容体现出与自然图像不同的特征,主要包括:具有各种大小和形状的重复图样、非连续色调区域中编码单元内颜色数目比较少和其他若干特征(如具有尖锐、变化剧烈的内容、无噪声等)。在现有的混合编码框架中,对不同特征的图像内容的编码块,采用日益增多的不同预测模式进行编码,即对图像中的各编码单元,依次采用各种预测模式进行预编码,并计算出各模式获得的率失真值,从中选择率失真值最小的模式作为编码单元的最佳模式进行编码。最新的国际视频VVC标准和我国音视频AVS3(the third generation of AudioVideo Coding Standard)标准及之前的版本或扩展版标准中,各种预测模式主要包括帧内预测模式、帧间预测模式、串预测(String Prediction,SP)或称帧内串复制(Intra StringCopy,ISC)模式(包括其特例帧内块复制(Intra Block Copy,IBC)和Palette模式)等。
串由样值也称元素按照预定扫描方式排列而成。样值包括像素或像素分量简称分量或像素索引简称索引或像素单元。所述像素单元是mxn个像素或分量或索引组成的阵列,m和n分别是包括1、2、4、8、16的预定的正整数。当m和n取值为1时,像素单元是一个像素或一个像素分量或一个分量或一个像素索引或一个索引。
扫描方式包括光栅扫描和来回(也称弓形)扫描。在光栅扫描中,所有行或列具有相同扫描方向,一般是从左向右或从上向下。在来回扫描中,相邻行或列具有相反扫描方向,即如果一行或一列是从左向右或从上向下,则相邻行或列是从右向左或从下向上。扫描方向为从左向右或从上向下的行或列称为正向行或正向列。扫描方向为从右向左或从下向上的行或列称为反向行或反向列。
ISC模式是一种以串为基元的模式,以一个样值也称元素(如像素单元或像素)为最小的复制单元,按照预定扫描顺序,在给定参考像素集内,若能在参考像素集内找到最优参考样值(如像素单元或像素)串,用编码参数串位移矢量和长度(Length)分别表示参考样值串(简称参考串)与当前待编码样值串(也称为当前串)之间的位置关系和参考串的长度,否则编码当前不完全匹配样值(如不完全匹配像素单元,所述不完全匹配像素单元是其mxn个像素或分量或索引中存在至少一个找不到参考样值的未匹配像素或分量或索引的像素单元)。一般地,串位移矢量(Offset)等于参考串起始位置减去当前串起始位置。
现有的编码标准中,为了进一步降低解码端的复杂度,当前串和参考串不允许重叠,同时还需要满足硬件约束条件,如一个编码块或解码块中不重叠串的总数目必须小于编码块或解码块像素单元总数目的1/4。如图1和图2所述,当前串与参考串没有重叠部分,也就是参考像素都不是当前串中的像素,称为不重叠串;当前串与参考串有重叠部分,也就是一部分参考像素是当前串中在当前编码或解码位置之前的重建像素,称为重叠串。现有串预测或称串匹配技术中仅允许不重叠串。
现有串预测或称串匹配技术的编码端,至少包括完成下列功能和操作的步骤或模块:
1)对一个编码块进行串预测或称串匹配编码时,计算不重叠串的数目和/或所述编码块中不重叠串的总数目;
2)至少将表示不重叠串的编码参数的部分或全部信息写入压缩数据码流。
现有串预测或称串匹配技术的解码端,至少包括完成下列功能和操作的步骤或模块:
1)对一个解码块进行串预测或称串匹配解码时,解析压缩数据码流,至少获取表示不重叠串的编码参数的部分或全部信息;
现有技术存在以下缺陷:由于对一个编码块进行串预测或称串匹配编码时,获得的都是不重叠串,将原本一次可以匹配到的较长的参考串(重叠串)分成了多次搜到的若干个较短的参考串(不重叠串),增加了参考串搜索的成本,同时将表示不重叠串的编码参数的信息写入码流,也增加了写入压缩数据码流的串参数数目,因此损失了编码效率。
发明内容
针对现有技术存在的以上问题,本发明提供一种对数据进行有损或无损压缩的编码或解码的方法或装置。
一种对数据进行有损或无损压缩的编码方法或装置,至少包括完成下列功能和操作的步骤或模块:
对一个编码块进行串预测或串匹配编码时;
将所述编码块中的重叠串至少拆分为两个连续的具有相同串矢量的不重叠串,并计算拆分后的所述不重叠串数量;
或将所述编码块中至少有两个连续的具有相同串矢量的不重叠串合并为一个重叠串,计算所述编码块中不重叠串数量;
将拆分前的重叠串或者合并后的重叠串的编码参数部分或全部信息写入压缩数据码流。
一种对数据进行有损或无损压缩的解码方法,至少包括完成下列功能和操作的步骤或模块:
对一个解码块进行串预测或串匹配解码时;
解析所述解码块中的压缩数据码流,获取表示串的编码参数的部分或全部信息;
根据所述信息,判断串是否为重叠串,若是,则将所述重叠串至少拆分为两个连续的具有相同串矢量的不重叠串。
优选的是,所述编码块或解码块中所述不重叠串的数量不超过一个预定数;
或所述编码块或解码块中包括不完全匹配串的不重叠串的数量不超过一个预定数;
其中,所述预定数包括所述编码块或解码块总的像素数目的5/32、3/16、7/32、1/4、9/32、5/16或11/32。
优选的是,所述解码块中进行拆分操作前的匹配串的数量、未匹配像素的数量以及将所述匹配串都拆分为不重叠串后所增加的串的数量之和不超过一个预定数;
其中,所述预定数包括所述解码块总的像素数目的5/32、3/16、7/32、1/4、9/32、5/16或11/32。
优选的是,将所述重叠串拆分为至少两个连续的具有相同串矢量的不重叠串,且所述不重叠串的长度之和等于所述重叠串的长度;具体操作包括:
扫描所述重叠串,并按照扫描顺序逐个检测所述重叠串中的参考元素;
判断所述参考元素是否位于当前串上,若是,则所述参考元素之前的所有参考元素以及对应的当前元素形成一个不重叠串,并从所述重叠串中拆分出该不重叠串,拆分之后的剩余参考元素和剩余当前元素分别形成新的参考串和当前串;
继续扫描和检测,重复上述操作直至将所述重叠串全部拆分为不重叠串。
优选的是,仅允许满足预设条件的串是重叠串,即不满足预设条件的串的任意参考像素都不在当前串内,从而仅对满足预设条件的串执行拆分操作;
所述预设条件是:
在水平扫描模式中,参考串位于当前串的上方;
在垂直扫描模式中,参考串位于当前串的左方:
或所述预设条件是:
在水平扫描模式中,串矢量(xSv,ySv)的垂直分量ySv小于零;
在垂直扫描模式中,串矢量(xSv,ySv)的水平分量xSv小于零;
或所述预设条件是:
在水平扫描模式中,参考串位于当前串的正上方或左上方;
在垂直扫描模式中,参考串位于当前串的正左方或左上方:
或所述预设条件是:
在水平扫描模式中,串矢量(xSv,ySv)的垂直分量ySv小于零且水平分量xSv小于等于零;
在垂直扫描模式中,串矢量(xSv,ySv)的水平分量xSv小于零且垂直分量ySv小于等于零;
或所述预设条件是:
在水平扫描模式中,参考串位于当前串的相邻正上方;
在垂直扫描模式中,参考串位于当前串的相邻正左方:
或所述预设条件是:
在水平扫描模式中,串矢量(xSv,ySv)的垂直分量ySv等于1且水平分量xSv等于零;
在垂直扫描模式中,串矢量(xSv,ySv)的水平分量xSv等于1且垂直分量ySv等于零。
优选的是,在来回或光栅水平扫描模式中,将一个串矢量为(xSv,ySv)的重叠串按顺序拆分为第一个不重叠串、中间K个不重叠串和最后一个不重叠串;
其中,所述第一个不重叠串的长度为所述重叠串的第一行的长度加上|ySv|-1整行的长度;所述中间K个不重叠串的每个串的长度为|ySv|整行的长度;所述最后一个不重叠串的长度为所述重叠串的总长度减去所述第一个不重叠串和所述中间K个不重叠串的长度和;K≥0且K=(所述当前串高度即串的总行数+|ySv|-1)/|ySv|-2;
其中,所述最后一个不重叠串的长度为所述重叠串的最后一行的长度加上|ySv|-1整行的长度;所述中间K个不重叠串的每个的长度为|ySv|整行的长度;所述第一个不重叠串的长度为所述重叠串的总长度减去所述最后一个不重叠串和所述中间K个不重叠串的长度和;K≥0且K=(所述当前串高度即串的总行数+|ySv|-1)/|ySv|-2;
在来回或光栅垂直扫描模式中,将一个串矢量为(xSv,ySv)的重叠串按顺序拆分为第一个不重叠串、中间L个不重叠串和最后一个不重叠串;
其中,所述第一个不重叠串的长度为所述重叠串的第一列的长度加上|xSv|-1整列的长度;所述中间L个不重叠串的每个串的长度为|xSv|整列的长度;所述最后一个不重叠串的长度为所述重叠串的总长度减去所述第一个不重叠串和所述中间L个不重叠串的长度和;L≥0且L=(所述当前串宽度即串的总列数+|xSv|-1)/|xSv|-2;
其中,所述最后一个不重叠串的长度为所述重叠串的最后一列的长度加上|xSv|-1整列的长度;所述中间L个不重叠串的每个的长度为|xSv|整列的长度;所述第一个不重叠串的长度为所述重叠串的总长度减去所述第一个不重叠串和所述中间L个不重叠串的长度和;L≥0且L=(所述当前串宽度即串的总列数+|ySv|-1)/|ySv|-2;
在光栅水平扫描模式中,将一个串矢量为(xSv,ySv)的重叠串按顺序拆分为K+1个不重叠串,其中,K个不重叠串的每个串的长度为|ySv|整行的长度,另一个不重叠串的长度为所述重叠串的总长度减去所述K个不重叠串的长度和;K≥0且K=(所述当前串高度即串的总行数+|ySv|-1)/|ySv|-1;
在光栅垂直扫描模式中,将一个串矢量为(xSv,ySv)的重叠串按顺序拆分为L+1个不重叠串,其中,L个不重叠串的每个串的长度为|xSv|整列的长度,另一个不重叠串的长度为所述重叠串的总长度减去所述L个不重叠串的长度和;L≥0且L=(所述当前串宽度即串的总列数+|xSv|-1)/|xSv|-1。
优选的是,一个任意串被拆分为具有相同串矢量的NoOverlapStrNum个不重叠串,所述NoOverlapStrNum以及NoOverlapStrNum个不重叠串的长度的计算步骤包括:
令所述任意串的串矢量和长度分别为(xSv,ySv)和StrLen,当前串的起始元素坐标为(xStartPos,yStartPos),最后一个元素坐标为(xEndPos,yEndPos);所述解码块的宽和/或高分别为width和/或height;初始化NoOverlapStrNum为1,从所述任意串拆分出来的第一个不重叠串的长度NoOverlapStrLen[1]为StrLen,RemainingStrLen为StrLen;
在来回或光栅水平扫描模式的情形,
如果参考串位于当前串的上方并且串矢量至少满足|SvX|<width,则令NoOverlapStrLen[1]=min((|ySv|-1)×width+firstLineLen,RemainingStrLen),其中,若所述起始元素在反向行,则所述firstLineLen=xStartPos+1;否则所述firstLineLen=width-xStartPos;
当RemainingStrLen>NoOverlapStrLen[NoOverlapStrNum]时,重复执行下列操作I)~III):I)更新RemainingStrLen:RemainingStrLen自减NoOverlapStrLen[NoOverlapStrNum];II)NoOverlapStrNum加1;III)NoOverlapStrLen[NoOverlapStrNum]=min(|ySv|×width,RemainingStrLen);
或,在来回或光栅垂直扫描模式情形,
如果参考串位于当前串的左方并且串矢量至少满足|SvY|<height,则令NoOverlapStrLen[1]=min((|xSv|-1)×height+firstLineLen,RemainingStrLen),其中,若所述起始元素在反向列,则所述firstLineLen=yStartPos+1;否则所述firstLineLen=height-yStartPos;
当RemainingStrLen>NoOverlapStrLen[NoOverlapStrNum]时,重复执行下列操作I)~III):I)更新RemainingStrLen:RemainingStrLen自减NoOverlapStrLen[NoOverlapStrNum];II)NoOverlapStrNum加1;III)NoOverlapStrLen[NoOverlapStrNum]=min(|xSv|×height,RemainingStrLen);
或,在光栅水平扫描模式的情形,
如果参考串位于当前串的上方并且串矢量至少满足|SvX|<width,则令NoOverlapStrLen[1]=min(|ySv|×width-xSv,RemainingStrLen);
当RemainingStrLen>NoOverlapStrLen[NoOverlapStrNum]时,重复执行下列操作I)~III):I)更新RemainingStrLen:RemainingStrLen自减NoOverlapStrLen[NoOverlapStrNum];II)NoOverlapStrNum加1;III)NoOverlapStrLen[NoOverlapStrNum]=min(|ySv|×width,RemainingStrLen);
或,在光栅垂直扫描模式的情形,
如果参考串位于当前串的左方并且串矢量至少满足|SvY|<height,则令NoOverlapStrLen[1]=min(|xSv|×height-ySv,RemainingStrLen);
当RemainingStrLen>NoOverlapStrLen[NoOverlapStrNum]时,重复执行下列操作I)~III):I)更新RemainingStrLen:RemainingStrLen自减NoOverlapStrLen[NoOverlapStrNum];II)NoOverlapStrNum加1;III)NoOverlapStrLen[NoOverlapStrNum]=min(|xSv|×height,RemainingStrLen)。
优选的是,至少根据预定规则判断对一个串矢量为(xSv,ySv)的串是否执行拆分操作;
在水平扫描模式并且参考串位于当前串的上方的情形,所述预定规则包括下列规则之一或其组合:
若所述串的串矢量至少满足|SvX|小于解码块的宽度,则执行拆分操作,否则不执行拆分操作;
若所述串的高度即串的总行数大于|ySv|,则执行拆分操作,否则不执行拆分操作;
若所述串的高度即串的总行数大于|ySv|且所述串的长度大于所述解码块的宽度乘以|ySv|,则执行拆分操作,否则不执行拆分操作;
若所述串的高度即串的总行数大于|ySv|且所述串的长度大于所述解码块的宽度乘以|ySv|后减去xSv,则执行拆分操作,否则不执行拆分操作;
若所述串的高度即串的总行数大于|ySv|且所述串的长度大于所述解码块的宽度乘以|ySv|后加上xSv,则执行拆分操作,否则不执行拆分操作;
在垂直扫描模式并且参考串位于当前串的左方的情形,所述预定规则包括下列规则之一或其组合:
若所述串的串矢量至少满足|SvY|小于解码块的高度,则执行拆分操作,否则不执行拆分操作;
若所述串的宽度即串的总列数大于|xSv|,则执行拆分操作,否则不执行拆分操作;
若所述串的宽度即串的总列数大于|xSv|且所述串的长度大于所述解码块的高度乘以|xSv|,则执行拆分操作,否则不执行拆分操作;
若所述串的宽度即串的总列数大于|xSv|且所述串的长度大于所述解码块的高度乘以|xSv|后减去ySv,则执行拆分操作,否则不执行拆分操作;
若所述串的宽度即串的总列数大于|xSv|且所述串的长度大于所述解码块的高度乘以|xSv|后加上ySv,则执行拆分操作,否则不执行拆分操作。
优选的是,至少根据预定规则判断对一个串矢量为(xSv,ySv)的串是否执行拆分操作;
在水平扫描模式并且参考串位于当前串的上方的情形,所述预定规则包括下列规则之一或其组合:
1)计算获得当前串的起始像素单元的y坐标yStartPos和当前串的最后一个像素单元的y坐标yEndPos,如果yEndPos-yStartPos大于等于|ySv|,则执行拆分操作,否则不执行拆分操作;其中|ySv|表示ySv的绝对值;
2)如果串矢量至少满足|SvX|小于解码块的宽度,则执行拆分操作,否则不执行拆分操作。
在垂直扫描模式并且参考串位于当前串的左方的情形,所述预定规则包括下列规则之一或其组合:
1)计算获得当前串的起始像素单元的x坐标xStartPos和当前串的最后一个像素单元的x坐标xEndPos,如果xEndPos-xStartPos大于等于|xSv|,则执行拆分操作,否则不执行拆分操作;其中|xSv|表示xSv的绝对值;
2)如果串矢量至少满足|SvY|小于解码块的高度,则执行拆分操作,否则不执行拆分操作。
与现有技术相比,本发明的有益效果为:
本发明在编码块或解码块进行串预测或串匹配编码或解码时,通过将重叠串至少拆分为两个连续的具有相同串矢量的不重叠串,或将所述编码块中至少有两个连续的具有相同串矢量的不重叠串合并为一个重叠串,并将拆分前的重叠串或者合并后的重叠串的编码参数部分或全部信息写入压缩数据码流,这样设置可以一次匹配到较长的重叠串,节省了匹配串的搜索成本,同时将重叠串的编码参数信息写入压缩数据码流,提升了编码效果。
附图说明
图1是本发明中重叠串、不重叠串和一重叠串与多不重叠串相互转换的示意图;
图2是本发明中一重叠串与多不重叠串相互转换且参考串不位于当前串左方时的示意图;
图3是本发明中编码方法的框架示意图;
图4是本发明中解码方法的框架示意图;
图5是本发明中编码装置的框架示意图;
图6是本发明中解码装置的框架示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
在本发明的描述中,还需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
参照图3,一种对数据进行有损或无损压缩的编码方法,包括:
对一个编码块进行串预测或串匹配编码时;
将编码块中的重叠串至少拆分为两个连续的具有相同串矢量的不重叠串,并计算拆分后的不重叠串数量;
或将编码块中至少有两个连续的具有相同串矢量的不重叠串合并为一个重叠串,计算编码块中不重叠串数量;
将拆分前的重叠串或者合并后的重叠串的编码参数部分或全部信息写入压缩数据码流。
参照图5,该编码方法还包括编码装置,编码装置包括:
重叠串与不重叠串互相转化模块,用于对一个编码块进行串预测或串匹配编码时,将编码块中的重叠串至少拆分为两个连续的具有相同串矢量的不重叠串,并计算拆分后的不重叠串数量;或将编码块中至少有两个连续的具有相同串矢量的不重叠串合并为一个重叠串,计算编码块中不重叠串数量;
压缩数据码流产生模块,用于将拆分前的重叠串或者合并后的重叠串的编码参数部分或全部信息写入压缩数据码流。
参照图4,本实施还提供一种对数据进行有损或无损压缩的解码方法,包括:
对一个解码块进行串预测或串匹配解码时;
解析解码块中的压缩数据码流,获取表示串的编码参数的部分或全部信息;
根据信息,判断串是否为重叠串,若是,则将重叠串至少拆分为两个连续的具有相同串矢量的不重叠串。
参照图6,该解码方法还包括解码装置,解码装置包括:
压缩数据码流解析模块,用于对一个解码块进行串预测或串匹配解码时,解析解码块中的压缩数据码流,获取表示串的编码参数的部分或全部信息;
重叠串与不重叠串互相转化模块,用于根据信息,判断串是否为重叠串,若是,则将重叠串至少拆分为两个连续的具有相同串矢量的不重叠串。
在本实施例编码或解码的方法中,在原始数据是图像、图像的序列、视频等的情形,编码块或解码块是图像或序列的一个编码区域或者一个解码区域,包括以下情形:图像的子图像、条带slice、片块tile、片块组tile group、砖块brick、宏块、最大编码单元LCU、编码树单元CTU、编码单元CU、CU的子区域、子编码单元SubCU、预测块、预测单元PU、PU的子区域、子预测单元SubPU、变换块、变换单元TU、TU的子区域、子变换单元SubTU。
进一步地,编码块或解码块中不重叠串的总数目不超过一个预定数;或者,编码块或解码块中包括不完全匹配串的不重叠串的总数目不超过一个预定数。且预定数包括编码块或解码块总的像素数目的5/32或3/16或7/32或1/4或9/32或5/16或11/32。
再进一步地,所述解码块中进行拆分操作前的匹配串的数量、未匹配像素的数量以及将所述匹配串都拆分为不重叠串后所增加的串的数量之和不超过一个预定数;
其中,所述预定数包括所述解码块总的像素数目的5/32、3/16、7/32、1/4、9/32、5/16或11/32。
在本实施例编码或解码的方法中,将将重叠串拆分为至少两个连续的具有相同串矢量的不重叠串,且不重叠串的长度之和等于重叠串的长度;具体操作包括:
扫描重叠串,并按照扫描顺序逐个检测重叠串中的参考元素;
判断参考元素是否位于当前串上,若是,则参考元素之前的所有参考元素以及对应的当前元素形成一个不重叠串,并从重叠串中拆分出该不重叠串,拆分之后的剩余参考元素和剩余当前元素分别形成新的参考串和当前串;
继续扫描和检测,重复上述操作直至将重叠串全部拆分为不重叠串。
在本实施例中,仅允许满足预设条件的串是重叠串,即不满足预设条件的串的任意参考像素都不在当前串内,从而仅对满足预设条件的串执行拆分操作;
所述预设条件是:
在水平扫描模式中,参考串位于当前串的上方;
在垂直扫描模式中,参考串位于当前串的左方:
或所述预设条件是:
在水平扫描模式中,串矢量(xSv,ySv)的垂直分量ySv小于零;
在垂直扫描模式中,串矢量(xSv,ySv)的水平分量xSv小于零;
或所述预设条件是:
在水平扫描模式中,参考串位于当前串的正上方或左上方;
在垂直扫描模式中,参考串位于当前串的正左方或左上方:
或所述预设条件是:
在水平扫描模式中,串矢量(xSv,ySv)的垂直分量ySv小于零且水平分量xSv小于等于零;
在垂直扫描模式中,串矢量(xSv,ySv)的水平分量xSv小于零且垂直分量ySv小于等于零;
或所述预设条件是:
在水平扫描模式中,参考串位于当前串的相邻正上方;
在垂直扫描模式中,参考串位于当前串的相邻正左方:
或所述预设条件是:
在水平扫描模式中,串矢量(xSv,ySv)的垂直分量ySv等于1且水平分量xSv等于零;
在垂直扫描模式中,串矢量(xSv,ySv)的水平分量xSv等于1且垂直分量ySv等于零。
进一步地,在来回或光栅水平扫描模式中,将一个串矢量为(xSv,ySv)的重叠串按顺序拆分为第一个不重叠串、中间K个不重叠串和最后一个不重叠串;
其中,第一个不重叠串的长度为重叠串的第一行的长度加上|ySv|-1整行的长度;中间K个不重叠串的每个串的长度为|ySv|整行的长度;最后一个不重叠串的长度为重叠串的总长度减去第一个不重叠串和中间K个不重叠串的长度和;K≥0且K=(当前串高度即串的总行数+|ySv|-1)/|ySv|-2;
其中,最后一个不重叠串的长度为重叠串的最后一行的长度加上|ySv|-1整行的长度;中间K个不重叠串的每个的长度为|ySv|整行的长度;第一个不重叠串的长度为重叠串的总长度减去最后一个不重叠串和中间K个不重叠串的长度和;K≥0且K=(当前串高度即串的总行数+|ySv|-1)/|ySv|-2。
在来回或光栅垂直扫描模式中,将一个串矢量为(xSv,ySv)的重叠串按顺序拆分为第一个不重叠串、中间L个不重叠串和最后一个不重叠串;
其中,第一个不重叠串的长度为重叠串的第一列的长度加上|xSv|-1整列的长度;中间L个不重叠串的每个串的长度为|xSv|整列的长度;最后一个不重叠串的长度为重叠串的总长度减去第一个不重叠串和中间L个不重叠串的长度和;L≥0且L=(当前串宽度即串的总列数+|xSv|-1)/|xSv|-2;
其中,最后一个不重叠串的长度为重叠串的最后一列的长度加上|xSv|-1整列的长度;中间L个不重叠串的每个的长度为|xSv|整列的长度;第一个不重叠串的长度为重叠串的总长度减去第一个不重叠串和中间L个不重叠串的长度和;L≥0且L=(当前串宽度即串的总列数+|ySv|-1)/|ySv|-2;
在光栅水平扫描模式中,将一个串矢量为(xSv,ySv)的重叠串按顺序拆分为K+1个不重叠串,其中,K个不重叠串的每个串的长度为|ySv|整行的长度,另一个不重叠串的长度为重叠串的总长度减去K个不重叠串的长度和;K≥0且K=(当前串高度即串的总行数+|ySv|-1)/|ySv|-1;
在光栅垂直扫描模式中,将一个串矢量为(xSv,ySv)的重叠串按顺序拆分为L+1个不重叠串,其中,L个不重叠串的每个串的长度为|xSv|整列的长度,另一个不重叠串的长度为重叠串的总长度减去L个不重叠串的长度和;L≥0且L=(当前串宽度即串的总列数+|xSv|-1)/|xSv|-1。
具体地,一个任意串被拆分为具有相同串矢量的NoOverlapStrNum个不重叠串,NoOverlapStrNum以及NoOverlapStrNum个不重叠串的长度的计算步骤包括:
令任意串的串矢量和长度分别为(xSv,ySv)和StrLen,当前串的起始元素坐标为(xStartPos,yStartPos),最后一个元素坐标为(xEndPos,yEndPos);解码块的宽和/或高分别为width和/或height;初始化NoOverlapStrNum为1,从所述任意串拆分出来的第一个不重叠串的长度NoOverlapStrLen[1]为StrLen,RemainingStrLen为StrLen;
在来回或光栅水平扫描模式的情形,
如果参考串位于当前串的上方并且串矢量至少满足|SvX|<width,则令NoOverlapStrLen[1]=min((|ySv|-1)×width+firstLineLen,RemainingStrLen),其中,若所述起始元素在反向行,则所述firstLineLen=xStartPos+1;否则所述firstLineLen=width-xStartPos;
当RemainingStrLen>NoOverlapStrLen[NoOverlapStrNum]时,重复执行下列操作I)~III):I)更新RemainingStrLen:RemainingStrLen自减NoOverlapStrLen[NoOverlapStrNum];II)NoOverlapStrNum加1;III)NoOverlapStrLen[NoOverlapStrNum]=min(|ySv|×width,RemainingStrLen);
或,在来回或光栅垂直扫描模式情形,
如果参考串位于当前串的左方并且串矢量至少满足|SvY<height,则令NoOverlapStrLen[1]=min((|xSv|-1)×height+firstLineLen,RemainingStrLen),其中,若所述起始元素在反向列,则所述firstLineLen=yStartPos+1;否则所述firstLineLen=height-yStartPos;
当RemainingStrLen>NoOverlapStrLen[NoOverlapStrNum]时,重复执行下列操作I)~III):I)更新RemainingStrLen:RemainingStrLen自减NoOverlapStrLen[NoOverlapStrNum];II)NoOverlapStrNum加1;III)NoOverlapStrLen[NoOverlapStrNum]=min(|xSv|×height,RemainingStrLen);
或,在光栅水平扫描模式的情形,
如果参考串位于当前串的上方并且串矢量至少满足|SvX|<width,则令NoOverlapStrLen[1]=min(|ySv|×width-xSv,RemainingStrLen);
当RemainingStrLen>NoOverlapStrLen[NoOverlapStrNum]时,重复执行下列操作I)~III):I)更新RemainingStrLen:RemainingStrLen自减NoOverlapStrLen[NoOverlapStrNum];II)NoOverlapStrNum加1;III)NoOverlapStrLen[NoOverlapStrNum]=min(|ySv|×width,RemainingStrLen);
或,在光栅垂直扫描模式的情形,
如果参考串位于当前串的左方并且串矢量至少满足|SvY|<height,则令NoOverlapStrLen[1]=min(|xSv|×height-ySv,RemainingStrLen);
当RemainingStrLen>NoOverlapStrLen[NoOverlapStrNum]时,重复执行下列操作I)~III):I)更新RemainingStrLen:RemainingStrLen自减NoOverlapStrLen[NoOverlapStrNum];II)NoOverlapStrNum加1;III)NoOverlapStrLen[NoOverlapStrNum]=min(|xSv|×height,RemainingStrLen)。
在上述说明书中,一行的长度为编码块或解码块的宽度;2行的长度编码块或解码块的宽度的2倍;一列长度为编码块或解码块的高度;2列长度为编码块或解码块的高度的2倍。
在本实施例编码或解码的方法中,至少根据预定规则判断对一个串矢量为(xSv,ySv)的串是否执行拆分操作;
在水平扫描模式并且参考串位于当前串的上方的情形,所述预定规则包括下列规则之一或其组合:
1)计算获得当前串的起始像素单元的y坐标yStartPos和当前串的最后一个像素单元的y坐标yEndPos,如果yEndPos-yStartPos大于等于|ySv|,则执行拆分操作,否则不执行拆分操作;其中|ySv|表示ySv的绝对值;
2)如果串矢量至少满足|SvX|小于解码块的宽度,则执行拆分操作,否则不执行拆分操作。
在垂直扫描模式并且参考串位于当前串的左方的情形,所述预定规则包括下列规则之一或其组合:
1)计算获得当前串的起始像素单元的x坐标xStartPos和当前串的最后一个像素单元的x坐标xEndPos,如果xEndPos-xStartPos大于等于|xSv|,则执行拆分操作,否则不执行拆分操作;其中|xSv|表示xSv的绝对值;
2)如果串矢量至少满足|SvY|小于解码块的高度,则执行拆分操作,否则不执行拆分操作。
本发明适用于对数据进行有损压缩的编码和解码,本发明也同样适用于对数据进行无损压缩的编码和解码;本发明适用于一维数据如字符串数据或字节串数据或一维图形或分维图形的编码和解码,本发明也同样适用于二维或如下数据如图像或视频数据的编码和解码。
数据压缩所涉及的数据包括下列类型的数据之一或其组合:一维数据;二维数据;多维数据;图形;分维图形;图像;图像的序列;视频;三维场景;持续变化的三维场景的序列;虚拟现实的场景;持续变化的虚拟现实的场景的序列;像素形式的图像;图像的变换域数据;二维或二维以上字节的集合;二维或二维以上比特的集合;像素的集合;三分量像素(Y,U,V)的集合;三分量像素(Y,Cb,Cr)的集合;三分量像素(Y,Cg,Co)的集合;三分量像素(R,G,B)的集合;四分量像素(C,M,Y,K)的集合;四分量像素(R,G,B,A)的集合;四分量像素(Y,U,V,A)的集合;四分量像素(Y,Cb,Cr,A)的集合;四分量像素(Y,Cg,Co,A)的集合。
以上仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种对数据进行有损或无损压缩的编码方法或装置,其特征在于,至少包括完成下列功能和操作的步骤或模块:
对一个编码块进行串预测或串匹配编码时;
至少将所述编码块中的重叠串拆分为至少两个连续的具有相同串矢量的不重叠串,计算拆分后所述编码块中不重叠串的数量;
或将所述编码块中至少两个连续的具有相同串矢量的不重叠串合并为一个重叠串,计算合并前所述编码块中不重叠串的数量;
将表示拆分前的重叠串或者合并后的重叠串的编码参数的部分或全部信息写入压缩数据码流。
2.一种对数据进行有损或无损压缩的解码方法或装置,其特征在于,至少包括完成下列功能和操作的步骤或模块:
对一个解码块进行串预测或串匹配解码时;
解析所述解码块中的压缩数据码流,获取表示串的编码参数的部分或全部信息;
至少根据所述信息,判断串是否为重叠串,至少将所述重叠串拆分为至少两个连续的具有相同串矢量的不重叠串。
3.如权利要求2所述的对数据进行有损或无损压缩的解码方法或装置,其特征在于,经过拆分操作使所述解码块中所有的串都是不重叠串后,计算所述解码块中不重叠串的数量,
所述解码块中所述不重叠串的数量不超过一个预定数;
所述解码块中不完全匹配串的的数量与所述不重叠串的数量之和不超过一个预定数;
其中,所述预定数包括所述解码块总的像素数目的5/32、3/16、7/32、1/4、9/32、5/16或11/32。
4.如权利要求2所述的对数据进行有损或无损压缩的解码方法或装置,其特征在于,所述解码块中进行拆分操作前的匹配串的数量、未匹配像素的数量以及将所述匹配串都拆分为不重叠串后所增加的串的数量之和不超过一个预定数;
其中,所述预定数包括所述解码块总的像素数目的5/32、3/16、7/32、1/4、9/32、5/16或11/32。
5.如权利要求2或3或4所述的对数据进行有损或无损压缩的解码方法或装置,其特征在于,将所述重叠串拆分为至少两个连续的具有相同串矢量的不重叠串,且所述不重叠串的长度之和等于所述重叠串的长度;具体操作包括:
扫描所述重叠串,并按照扫描顺序逐个检测所述重叠串中的参考元素;
判断所述参考元素是否位于当前串上,若是,则所述参考元素之前的所有参考元素以及对应的当前元素形成一个不重叠串,并从所述重叠串中拆分出该不重叠串,拆分之后的剩余参考元素和剩余当前元素分别形成新的参考串和当前串;
继续扫描和检测,重复上述操作直至将所述重叠串全部拆分为不重叠串。
6.如权利要求2或3或4所述的对数据进行有损或无损压缩的解码方法或装置,其特征在于:仅允许满足预设条件的串是重叠串,即不满足预设条件的串的任意参考像素都不在当前串内,从而仅对满足预设条件的串执行拆分操作;
所述预设条件是:
在水平扫描模式中,参考串位于当前串的上方;
在垂直扫描模式中,参考串位于当前串的左方:
或所述预设条件是:
在水平扫描模式中,串矢量(xSv,ySv)的垂直分量ySv小于零;
在垂直扫描模式中,串矢量(xSv,ySv)的水平分量xSv小于零;
或所述预设条件是:
在水平扫描模式中,参考串位于当前串的正上方或左上方;
在垂直扫描模式中,参考串位于当前串的正左方或左上方:
或所述预设条件是:
在水平扫描模式中,串矢量(xSv,ySv)的垂直分量ySv小于零且水平分量xSv小于等于零;
在垂直扫描模式中,串矢量(xSv,ySv)的水平分量xSv小于零且垂直分量ySv小于等于零;
或所述预设条件是:
在水平扫描模式中,参考串位于当前串的相邻正上方;
在垂直扫描模式中,参考串位于当前串的相邻正左方:
或所述预设条件是:
在水平扫描模式中,串矢量(xSv,ySv)的垂直分量ySv等于1且水平分量xSv等于零;
在垂直扫描模式中,串矢量(xSv,ySv)的水平分量xSv等于1且垂直分量ySv等于零。
7.如权利要求2或3或4所述的对数据进行有损或无损压缩的解码方法或装置,其特征在于,
在来回或光栅水平扫描模式中,将一个串矢量为(xSv,ySv)的重叠串按顺序拆分为第一个不重叠串、中间K个不重叠串和最后一个不重叠串;
其中,所述第一个不重叠串的长度为所述重叠串的第一行的长度加上|ySv|-1整行的长度;所述中间K个不重叠串的每个串的长度为|ySv|整行的长度;所述最后一个不重叠串的长度为所述重叠串的总长度减去所述第一个不重叠串和所述中间K个不重叠串的长度和;K≥0且K=(所述当前串高度即串的总行数+|ySv|-1)/|ySv|-2;
其中,所述最后一个不重叠串的长度为所述重叠串的最后一行的长度加上|ySv|-1整行的长度;所述中间K个不重叠串的每个的长度为|ySv|整行的长度;所述第一个不重叠串的长度为所述重叠串的总长度减去所述最后一个不重叠串和所述中间K个不重叠串的长度和;K≥0且K=(所述当前串高度即串的总行数+|ySv|-1)/|ySv|-2;
在来回或光栅垂直扫描模式中,将一个串矢量为(xSv,ySv)的重叠串按顺序拆分为第一个不重叠串、中间L个不重叠串和最后一个不重叠串;
其中,所述第一个不重叠串的长度为所述重叠串的第一列的长度加上|xSv|-1整列的长度;所述中间L个不重叠串的每个串的长度为|xSv|整列的长度;所述最后一个不重叠串的长度为所述重叠串的总长度减去所述第一个不重叠串和所述中间L个不重叠串的长度和;L≥0且L=(所述当前串宽度即串的总列数+|xSv|-1)/|xSv|-2;
其中,所述最后一个不重叠串的长度为所述重叠串的最后一列的长度加上|xSv|-1整列的长度;所述中间L个不重叠串的每个的长度为|xSv|整列的长度;所述第一个不重叠串的长度为所述重叠串的总长度减去所述第一个不重叠串和所述中间L个不重叠串的长度和;L≥0且L=(所述当前串宽度即串的总列数+|ySv|-1)/|ySv|-2;
在光栅水平扫描模式中,将一个串矢量为(xSv,ySv)的重叠串按顺序拆分为K+1个不重叠串,其中,K个不重叠串的每个串的长度为|ySv|整行的长度,另一个不重叠串的长度为所述重叠串的总长度减去所述K个不重叠串的长度和;K≥0且K=(所述当前串高度即串的总行数+|ySv|-1)/|ySv|-1;
在光栅垂直扫描模式中,将一个串矢量为(xSv,ySv)的重叠串按顺序拆分为L+1个不重叠串,其中,L个不重叠串的每个串的长度为|xSv|整列的长度,另一个不重叠串的长度为所述重叠串的总长度减去所述L个不重叠串的长度和;L≥0且L=(所述当前串宽度即串的总列数+|xSv|-1)/|xSv|-1。
8.如权利要求2或3或4所述的对数据进行有损或无损压缩的解码方法或装置,其特征在于,一个任意串被拆分为具有相同串矢量的NoOverlapStrNum个不重叠串,所述NoOverlapStrNum以及NoOverlapStrNum个不重叠串的长度的计算步骤包括:
令所述任意串的串矢量和长度分别为(xSv,ySv)和StrLen,当前串的起始元素坐标为(xStartPos,yStartPos),最后一个元素坐标为(xEndPos,yEndPos);所述解码块的宽和/或高分别为width和/或height;初始化NoOverlapStrNum为1,从所述任意串拆分出来的第一个不重叠串的长度NoOverlapStrLen[1]为StrLen,RemainingStrLen为StrLen;
在来回或光栅水平扫描模式的情形,
如果参考串位于当前串的上方并且串矢量至少满足|SvX|<width,则令NoOverlapStrLen[1]=min((|ySv|-1)×width+firstLineLen,RemainingStrLen),其中,若所述起始元素在反向行,则所述firstLineLen=xStartPos+1;否则所述firstLineLen=width-xStartPos;
当RemainingStrLen>NoOverlapStrLen[NoOverlapStrNum]时,重复执行下列操作I)~III):I)更新RemainingStrLen:RemainingStrLen自减NoOverlapStrLen[NoOverlapStrNum];II)NoOverlapStrNum加1;III)NoOverlapStrLen[NoOverlapStrNum]=min(|ySv|×width,RemainingStrLen);
或,在来回或光栅垂直扫描模式情形,
如果参考串位于当前串的左方并且串矢量至少满足|SvY|<height,则令NoOverlapStrLen[1]=min((|xSv|-1)×height+firstLineLen,RemainingStrLen),其中,若所述起始元素在反向列,则所述firstLineLen=yStartPos+1;否则所述firstLineLen=height-yStartPos;
当RemainingStrLen>NoOverlapStrLen[NoOverlapStrNum]时,重复执行下列操作I)~III):I)更新RemainingStrLen:RemainingStrLen自减NoOverlapStrLen[NoOverlapStrNum];II)NoOverlapStrNum加1;III)NoOverlapStrLen[NoOverlapStrNum]=min(|xSv|×height,RemainingStrLen);
或,在光栅水平扫描模式情形,
如果参考串位于当前串的上方并且串矢量至少满足|SvX|<width,则令NoOverlapStrLen[1]=min(|ySv|×width-xSv,RemainingStrLen);
当RemainingStrLen>NoOverlapStrLen[NoOverlapStrNum]时,重复执行下列操作I)~III):I)更新RemainingStrLen:RemainingStrLen自减NoOverlapStrLen[NoOverlapStrNum];II)NoOverlapStrNum加1;III)NoOverlapStrLen[NoOverlapStrNum]=min(|ySv|×width,RemainingStrLen);
或,在光栅垂直扫描模式情形,
如果参考串位于当前串的左方并且串矢量至少满足|SvY|<height,则令NoOverlapStrLen[1]=min(|xSv|×height-ySv,RemainingStrLen);
当RemainingStrLen>NoOverlapStrLen[NoOverlapStrNum]时,重复执行下列操作I)~III):I)更新RemainingStrLen:RemainingStrLen自减NoOverlapStrLen[NoOverlapStrNum];II)NoOverlapStrNum加1;III)NoOverlapStrLen[NoOverlapStrNum]=min(|xSv|×height,RemainingStrLen)。
9.如权利要求2或3或4所述的对数据进行有损或无损压缩的解码方法或装置,其特征在于,至少根据预定规则判断对一个串矢量为(xSv,ySv)的串是否执行拆分操作;
在水平扫描模式并且参考串位于当前串的上方的情形,所述预定规则包括下列规则之一或其组合:
若所述串的串矢量至少满足|SvX|小于解码块的宽度,则执行拆分操作,否则不执行拆分操作;
若所述串的高度即串的总行数大于|ySv|,则执行拆分操作,否则不执行拆分操作;
若所述串的高度即串的总行数大于|ySv|且所述串的长度大于所述解码块的宽度乘以|ySv|,则执行拆分操作,否则不执行拆分操作;
若所述串的高度即串的总行数大于|ySv|且所述串的长度大于所述解码块的宽度乘以|ySv|后减去xSv,则执行拆分操作,否则不执行拆分操作;
若所述串的高度即串的总行数大于|ySv|且所述串的长度大于所述解码块的宽度乘以|ySv|后加上xSv,则执行拆分操作,否则不执行拆分操作;
在垂直扫描模式并且参考串位于当前串的左方的情形,所述预定规则包括下列规则之一或其组合:
若所述串的串矢量至少满足|SvY|小于解码块的高度,则执行拆分操作,否则不执行拆分操作;
若所述串的宽度即串的总列数大于|xSv|,则执行拆分操作,否则不执行拆分操作;
若所述串的宽度即串的总列数大于|xSv|且所述串的长度大于所述解码块的高度乘以|xSv|,则执行拆分操作,否则不执行拆分操作;
若所述串的宽度即串的总列数大于|xSv|且所述串的长度大于所述解码块的高度乘以|xSv|后减去ySv,则执行拆分操作,否则不执行拆分操作;
若所述串的宽度即串的总列数大于|xSv|且所述串的长度大于所述解码块的高度乘以|xSv|后加上ySv,则执行拆分操作,否则不执行拆分操作。
10.如权利要求2或3或4所述的对数据进行有损或无损压缩的解码方法或装置,其特征在于,至少根据预定规则判断对一个串矢量为(xSv,ySv)的串是否执行拆分操作;
在水平扫描模式并且参考串位于当前串的上方的情形,所述预定规则包括下列规则之一或其组合:
1)计算获得当前串的起始像素单元的y坐标yStartPos和当前串的最后一个像素单元的y坐标yEndPos,如果yEndPos-yStartPos大于等于|ySv|,则执行拆分操作,否则不执行拆分操作;其中|ySv|表示ySv的绝对值;
2)如果串矢量至少满足|SvX|小于解码块的宽度,则执行拆分操作,否则不执行拆分操作。
在垂直扫描模式并且参考串位于当前串的左方的情形,所述预定规则包括下列规则之一或其组合:
1)计算获得当前串的起始像素单元的x坐标xStartPos和当前串的最后一个像素单元的x坐标xEndPos,如果xEndPos-xStartPos大于等于|xSv|,则执行拆分操作,否则不执行拆分操作;其中|xSv|表示xSv的绝对值;
2)如果串矢量至少满足|SvY|小于解码块的高度,则执行拆分操作,否则不执行拆分操作。
CN202011465573.3A 2020-12-14 2020-12-14 对数据进行有损或无损压缩的编码、解码的方法或装置 Active CN112637600B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011465573.3A CN112637600B (zh) 2020-12-14 2020-12-14 对数据进行有损或无损压缩的编码、解码的方法或装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011465573.3A CN112637600B (zh) 2020-12-14 2020-12-14 对数据进行有损或无损压缩的编码、解码的方法或装置

Publications (2)

Publication Number Publication Date
CN112637600A true CN112637600A (zh) 2021-04-09
CN112637600B CN112637600B (zh) 2024-04-05

Family

ID=75312524

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011465573.3A Active CN112637600B (zh) 2020-12-14 2020-12-14 对数据进行有损或无损压缩的编码、解码的方法或装置

Country Status (1)

Country Link
CN (1) CN112637600B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113365074A (zh) * 2021-06-07 2021-09-07 同济大学 限制点预测常现位置及其点矢量数目的编解码方法及装置
CN115801196A (zh) * 2023-01-31 2023-03-14 北京云成金融信息服务有限公司 一种低延迟的数据传输方法及装置

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0870454A (ja) * 1994-05-31 1996-03-12 Internatl Business Mach Corp <Ibm> ディジタル画像におけるルミナンス情報およびクロミナンス情報の圧縮システム
DE68927625D1 (de) * 1988-10-25 1997-02-20 Nec Corp Folgenkollationierungssystem zum Suchen nach einer Charakterfolge willkürlicher Länge innerhalb eines gegebenen Abstands einer Referenzfolge
CN105704491A (zh) * 2014-11-28 2016-06-22 同济大学 图像编码方法、解码方法、编码装置和解码装置
JPWO2014045318A1 (ja) * 2012-09-21 2016-08-18 富士通株式会社 圧縮プログラム、圧縮方法及び圧縮装置
WO2017137006A1 (zh) * 2016-02-10 2017-08-17 同济大学 数据压缩的编码、解码方法及装置
CN107483961A (zh) * 2016-06-08 2017-12-15 上海天荷电子信息有限公司 使用弓形扫描串预测及串位置编码的数据压缩方法和装置
CN107770540A (zh) * 2016-08-21 2018-03-06 上海天荷电子信息有限公司 融合多种具有不同参考关系的基元的数据压缩方法和装置
CN110087090A (zh) * 2019-05-20 2019-08-02 绍兴文理学院 采用混合串匹配和帧内预测的数据编码、解码方法
US20200065097A1 (en) * 2018-08-23 2020-02-27 International Business Machines Corporation Non-overlapping substring detection within a data element string

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE68927625D1 (de) * 1988-10-25 1997-02-20 Nec Corp Folgenkollationierungssystem zum Suchen nach einer Charakterfolge willkürlicher Länge innerhalb eines gegebenen Abstands einer Referenzfolge
JPH0870454A (ja) * 1994-05-31 1996-03-12 Internatl Business Mach Corp <Ibm> ディジタル画像におけるルミナンス情報およびクロミナンス情報の圧縮システム
JPWO2014045318A1 (ja) * 2012-09-21 2016-08-18 富士通株式会社 圧縮プログラム、圧縮方法及び圧縮装置
CN105704491A (zh) * 2014-11-28 2016-06-22 同济大学 图像编码方法、解码方法、编码装置和解码装置
WO2017137006A1 (zh) * 2016-02-10 2017-08-17 同济大学 数据压缩的编码、解码方法及装置
CN107483961A (zh) * 2016-06-08 2017-12-15 上海天荷电子信息有限公司 使用弓形扫描串预测及串位置编码的数据压缩方法和装置
CN107770540A (zh) * 2016-08-21 2018-03-06 上海天荷电子信息有限公司 融合多种具有不同参考关系的基元的数据压缩方法和装置
US20200065097A1 (en) * 2018-08-23 2020-02-27 International Business Machines Corporation Non-overlapping substring detection within a data element string
CN110087090A (zh) * 2019-05-20 2019-08-02 绍兴文理学院 采用混合串匹配和帧内预测的数据编码、解码方法

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
林涛;蔡文婷;陈先义;周开伦;王淑慧;: "一种高性能低复杂度的基于串匹配的屏幕图像无损压缩算法", 电子与信息学报, no. 02 *
赵利平: "A Universal String Matching Technique for High efficiency Screen Content coding", IEEE TRANSACTIONS ON MULTIMEDIA *
赵利平等: "基于通用串预测算法的AVS2屏幕混合内容帧间编码优化", 计算机学报 *
陈国良, 林洁, 顾乃杰: "分布式存储的并行串匹配算法的设计与分析", 软件学报, no. 06 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113365074A (zh) * 2021-06-07 2021-09-07 同济大学 限制点预测常现位置及其点矢量数目的编解码方法及装置
CN113365074B (zh) * 2021-06-07 2022-11-08 同济大学 限制点预测常现位置及其点矢量数目的编解码方法及装置
CN115801196A (zh) * 2023-01-31 2023-03-14 北京云成金融信息服务有限公司 一种低延迟的数据传输方法及装置
CN115801196B (zh) * 2023-01-31 2023-07-04 北京云成金融信息服务有限公司 一种低延迟的数据传输方法及装置

Also Published As

Publication number Publication date
CN112637600B (zh) 2024-04-05

Similar Documents

Publication Publication Date Title
CN104378644B (zh) 定宽度变长度像素样值串匹配增强的图像压缩方法和装置
CN107071450B (zh) 数据压缩的编码、解码方法及装置
US6334001B2 (en) Iterative smoothing technique for pre-processing mixed raster content planes to improve the quality of a decompressed image and increase document compression ratios
JP4773678B2 (ja) 文書システム
KR101868247B1 (ko) 영상 부호화, 복호화 방법 및 장치
JP2005516553A (ja) 複合文書の圧縮のためのコーダに整合したレイヤ分離
CN110087090B (zh) 采用混合串匹配和帧内预测的数据编码、解码方法
CN104581177B (zh) 一种结合块匹配和串匹配的图像压缩方法和装置
CN112637600B (zh) 对数据进行有损或无损压缩的编码、解码的方法或装置
CN107770540B (zh) 融合多种具有不同参考关系的基元的数据压缩方法和装置
CN112565790B (zh) 一种采用最小基矢量标志的串预测编码、解码方法及装置
CN111757117B (zh) 对分量下采样格式数据进行串预测的数据编码和解码方法
KR100717002B1 (ko) 영상 부호화 및 복호화 장치와, 그 방법, 및 이를 수행하기위한 프로그램이 기록된 기록 매체
CN108989819B (zh) 各模式采用各自相应色彩空间的数据压缩方法和装置
CN112532990B (zh) 一种串长度参数编码、解码方法和装置
KR100412176B1 (ko) 문자와 이미지가 포함된 문서의 압축, 복원 시스템 및방법
CN116600107B (zh) 基于ipms-cnn和空域相邻cu编码模式的hevc-scc快速编码方法及装置
CN107770543B (zh) 多类匹配参数中按顺序递增截断值的数据压缩方法和装置
CN112672160B (zh) 融合帧内块复制和串复制编码参数的编码解码方法和装置
Yeh et al. Scalable ideal-segmented chain coding
CN107770544B (zh) 采用多类匹配参数及前参数缓冲区的数据压缩方法和装置
CN113395515B (zh) 对分量下采样格式数据进行点预测的编码解码方法及装置
CN112601086B (zh) 一种串长度参数混合编码、解码方法及装置
CN114390286A (zh) 一种自引用串的编解码方法和系统
CN108989820B (zh) 各阶段采用各自相应色度采样格式的数据压缩方法和装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant