买专利,只认龙图腾
首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明授权】动态调整最近编码参数数组的元素的数据压缩方法和装置_上海天荷电子信息有限公司_201710027153.9 

申请/专利权人:上海天荷电子信息有限公司

申请日:2017-01-15

公开(公告)日:2024-04-12

公开(公告)号:CN108322753B

主分类号:H04N19/196

分类号:H04N19/196;H04N19/176;H04N19/61;H04N19/96

优先权:

专利状态码:有效-授权

法律状态:2024.04.12#授权;2020.02.18#实质审查的生效;2018.07.24#公开

摘要:本发明提供了一种动态调整最近编码参数数组的元素的位置的数据压缩方法和装置。本方法和装置,通过将出现频度高的编码参数数组元素动态调整到编码参数数组的一个特定部位同时用短的码字来表示所述特定部位的存储地址的策略,来有效减少最近参数方式所消耗的比特数,极大地提高编码效率。

主权项:1.一种对数据进行压缩的编码方法,其特征在于,至少包括完成下列功能或操作的步骤:至少采用最近编码参数数组对一种编码参数进行编码;至少使用下列方式之一或其组合,将在编码过程中出现的一个新的合格的当前编码参数更新到最近编码参数数组:方式一:至少执行以下操作对所述最近编码参数数组进行更新:如果所述当前编码参数的值等于与所述最近编码参数数组中的已有编码参数逐一比较后找到的一个已有编码参数的值,则至少调整最近编码参数数组中部分或全部已有编码参数在最近编码参数数组中的位置;否则,即所述当前编码参数的值不等于所述最近编码参数数组中的任何一个已有编码参数的值,至少将所述当前编码参数的值放入所述最近编码参数数组;方式二:至少执行以下操作对所述最近编码参数数组进行更新:如果所述当前编码参数的值等于与所述最近编码参数数组中的已有编码参数逐一比较后找到的一个已有编码参数的值,则至少将该等值已有编码参数置换至所述最近编码参数数组的最前部;否则,即所述当前编码参数的值不等于所述最近编码参数数组中的任何一个已有编码参数的值,至少将所述当前编码参数的值插入至所述最近编码参数数组的最前部,至少将所述最近编码参数数组的最后部的已有编码参数移出所述最近编码参数数组;方式三:至少执行以下操作对所述最近编码参数数组进行更新:所述最近编码参数数组有N个编码参数,标记为ROA[N]={offset_in_roa[k]:0≤kN};将标记为offset的所述当前编码参数与ROA[N]的N个元素offset_in_roa[RoaStartPos+k%N],0≤kN逐一进行比较,其中%是取模运算,RoaStartPos是所述最近编码参数数组的当前起始位置;然后,依次执行以下操作对ROA[N]进行更新:1)如果offset等于这N个元素中的第k0个元素offset_in_roa[RoaStartPos+k0%N],执行以下操作:如果k0≥1,令k从大至小依次取值k0至1并且依次执行下列k0次赋值运算:offset_in_roa[RoaStartPos+k0%N]=offset_in_roa[RoaStartPos+k0-1%N]2)否则,即offset不等于这N个元素中的任何一个,执行下列对所述最近编码参数数组的当前起始位置RoaStartPos的更新运算:RoaStartPos=RoaStartPos+1%N;3)ROA[RoaStartPos]=offset;所述合格的编码参数包括属于下列情形之一或其组合的编码参数:使用预定方式,包括最近编码参数数组方式和或相邻基元的编码参数的方式和或直接方式,进行编码的编码参数;不使用预定方式,包括最近编码参数数组方式和或相邻基元的编码参数的方式和或直接方式,进行编码的编码参数;数值落在第一个预定取值范围内的编码参数;数值落在第二个预定取值范围外的编码参数。

全文数据:动态调整最近编码参数数组的元素的数据压缩方法和装置技术领域[0001]本发明涉及一种对数据进行有损或无损压缩的编码及解码系统,特别是图像和视频数据的编码及解码的方法和装置。[0002]背景技术[0003]随着人类社会进入大数据、云计算、移动计算、云-移动计算、超高清4K和特超高清8K视频图像分辨率、4G5G通讯、虚拟现实的时代,对各种数据,包括大数据、图像数据、视频数据,进行超高压缩比和极高质量的数据压缩成为必不可少的技术。[0004]数据集是由数据的样值例如:字节、比特、像素、像素分量、空间采样点、变换域系数组成的排列成一定空间(一维、二维、或多维形状的有限数据的集合例如:一个一维数据队列、一个二维数据文件、一帧图像、一个视频序列、一个变换域、一个变换块、多个变换块、一个三维场景、一个持续变化的三维场景的序列)。对数据集,特别是二维或以上数据集进行数据压缩的编码(以及相应的解码时,通常把此数据集划分成若干具有预定形状的子集,称为编码块从解码的角度也就是解码块,统称为编解码块),以编解码块为单位,按照预定的时间顺序,一块一块进行编码或解码。在任一时刻,正在编码中的编码块称为当前编码块。在任一时刻,正在解码中的解码块称为当前解码块。当前编码块或当前解码块统称为当前编解码块或简称为当前块。正在编码或解码中的样值称为当前编码样值或当前解码样值,简称为当前样值。[0005]对于具有一定形状不一定限于正方形或矩形,可以是任何合理的其他形状)的一个编解码块,在很多场合需要将其划分成更精细的基元基本单元),按照预定的时间顺序,一个基元一个基元进行编码或解码。对一个基元内的所有样值,通常施行同一类型的编码或解码操作。在任一时刻,正在编码或解码中的基元称为当前基元。对一个基元进行编码的结果是一个或多个编码参数,最后产生含这些编码参数的压缩数据码流。对一个基元进行解码就是解析所述压缩数据码流获得一个或多个编码参数,从所述一个或多个编码参数复原出重构的数据的样值。[0006]基元的例包括编解码块整个块作为一个基元)、子块、微块、串、像素串、样值串、索引串、线条。[0007]很多常见的数据集的一个显著特点是具有很多匹配(即相似甚至完全相同)的式样。例如,图像和视频序列中通常有很多匹配的像素图样。因此,现有数据压缩技术中通常采用匹配他称为预测或补偿的方式,即用“预测值”(也称为“补偿值”或“参考样值”,例如“参考像素”)来匹配也称为预测、表示、代表、补偿、近似、逼近等)当前编码或解码中样值简称为“当前样值”)的方式来达到数据的无损或有损压缩的效果。简单地说,匹配方式的基本操作就是复制参考样值即在参考位置上的样值到当前样值的位置。因此,匹配方式或预测方式也称为复制方式。匹配方式中,已经经历过至少部分编码运算以及至少部分解码运算的重构也称重建或复原样值组成参考集也称参考集空间或参考空间或参考缓存)。参考集之中的重构样值及其位置与原始数据集中的原始样值及其位置是一一对应的。[0008]在进行一个当前块的编解码时,匹配方式将当前块划分成若干匹配也称预测基元,一个匹配基元有一个或多个匹配编码)参数也称为匹配关系或复制参数或复制关系或参考关系)来表示其特征。匹配参数中最重要的一个参数是位移矢量也称为运动矢量、位置偏移、偏移量、相对位置、位置、相对地址、地址、相对坐标、坐标、相对索引、索引等)。位移矢量表示当前基元的样值与其参考样值之间的相对位移量,相当于数据样值排列成一维数据后的一维偏移量。显然,从位移矢量可导出参考样值的参考位置所在。当前基元的位移矢量称为当前位移矢量。匹配参数的其他例:匹配类型、匹配长度、不可匹配预测)样值,等。[0009]匹配基元的例包括编解码块、子块、微块、串、像素串、样值串、索引串、线条。[0010]匹配方式(有时也称匹配类型或匹配模式)的例包括:块匹配、子块匹配、微块匹配、串匹配、像素串匹配、样值串匹配、索引串匹配、线条匹配。[0011]各种不同的匹配模式通常使用至少一种同样的编码参数。如块匹配、子块匹配、微块匹配、串匹配、像素串匹配、样值串匹配、索引串匹配、线条匹配都使用“位移矢量”这一编码参数。[0012]数据压缩中,特别是匹配方式中,尤其在匹配基元较精细的情形,常常需要对众多的同一种编码参数进行编码。为了提高对一种编码参数的编码效率,通常将最近出现的编码参数的数值存入一个“最近编码参数数组”。如果一个新的当前编码参数的数值等于最近编码参数数组中的一个元素,则仅需要编码这个元素在这个最近编码参数数组中的存储地址并将其写入压缩数据码流,而不需要直接对所述当前编码参数的数值本身进行编码并将其写入压缩数据码流。这种方式简称为最近参数方式。[0013]另一方面,为了提高最近编码参数数组的元素被选中的频度,最近编码参数数组的元素数目不能过小,这样,仍然需要消耗不少的比特数对最近编码参数数组的元素的存储地址进行编码,在很大程度上影响了最近参数方式的编码效率。[0014]发明内容[0015]为了解决数据压缩中,特别是最近参数方式中的这一问题,本发明提供了一种动态调整最近编码参数数组的元素的位置的数据压缩方法和装置。本方法和装置,通过将出现频度高的编码参数数组元素动态调整到编码参数数组的一个特定部位同时用短的码字来表示所述特定部位的存储地址的策略,来有效减少最近参数方式所消耗的比特数,极大地提局编码效率。[0016]本发明的首要技术特征是遵循预定规则对编码参数数组元素在编码参数数组中的位置进行调整。[0017]本发明的编码方法或装置的最基本的特有技术特征是在编码器中,完成对一个新的有效的当前编码参数的编码之后,遵循预定规则,如最近编码参数数组元素的出现频度、出现的时间间隔,对最近编码参数数组元素在编码参数数组中的位置进行必要的调整,如对换两个小同出现频度的元素的位置、将具有预定出现频度特性的元素移动到最近编码参数数组的特定部位。图1是本发明的编码方法或装置的一个示意图。[0018]本发明的解码方法或装置的最基本的特有技术特征是在解码器中,完成对一个新的有效的当前编码参数的解码之后,遵循预定规则,如最近编码参数数组元素的出现频度、出现的时间间隔,对最近编码参数数组元素在编码参数数组中的位置进行必要的调整,如对换两个不同出现频度的元素的位置、将具有预定出现频度特性的元素移动到最近编码参数数组的特定部位。图1也是本发明的编码方法或装置的一个示意图。[0019]根据本发明的一个方面,提供了一种对数据进行压缩的编码方法或装置或者解码方法或装置,至少包括完成下列功能和操作的步骤或模块:对一种编码参数,遵循预定规则,对所述编码参数的最近编码参数数组进行更新操作。[0020]本发明适用于有损数据压缩的编码和解码,本发明也同样适用于无损数据压缩的编码和解码。本发明适用于图像数据的编码和解码,本发明也同样适用于任何一维、二维或多维数据的编码和解码。―一[0021]本发明中,数据压缩所涉及的数据包括下列类型的数据之一或其组合1一维数据;2二维数据;3多维数据;4图像;5图像的序列;6视频;7三维场景;8持续变化的三维场景的序列;9虚拟现实的场景;10持续变化的虚拟现实的场景的序列11像素形式的图像;12图像的变换域数据;13二维或二维以上字节的集合;14二维或二维以上比特的集合;15像素的集合;16像素分量的集合。[0022]本发明中,在数据是图像、图像的序列、视频等的情形,编码块或解码块起闻编码区域或一个解码区域,包括以下至少一种:整幅图像、图像的子图像、宏块、^彳^的一个元LCU、编码树单元CTU、编码单元⑶、⑶的子区域、预测单元PU、变换单元TU。、取大编码单[0023]本发明中,基元包括下列情形之一或其组合:编解码块、子块、微块、串你、墚素串、样值串、索引串、线条。[0024]本发明中,所述编码参数包括下列情形之一或其组合:1位移矢量;2运动矢量;3位置偏移;4偏移量;5相对位置;6位置;7相对地址;8地址;9相对坐标;10坐标;11相对索引;12索引;13串位移矢量;14基元大小;15基元尺寸;16串长度。[0025]以上通过若干特定的具体实例说明本发明的技术特征。本领域技术人员可由本说明书所揭示的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在不背离本发明的精神下进行各种修饰或改变。[0026]以下是本发明的更多的实施细节或变体。[0027]实施或变体例1所述编码方法或装置或者解码方法或装置中,所述更新操作包括:对所述编码参数的最近编码参数数组元素在最近编码参数数组中的位置进行调整;和或将在编解码过程中出现的新的合格的编码参数的值放入最近编码参数数组;和或将一个或若干最近编码参数数组元素移出最近编码参数数组。[0028]实施或变体例2所述编码方法或装置或者解码方法或装置中,所述预定规则包括,根据最近编码参数数组元素的出现频度和或最近编码参数数组元素的出现间隔长短,对最近编码参数数组元素在编码参数数组中的位置进行调整。[0029]实施或变体例3所述编码方法或装置或者解码方法或装置中,每个最近编码参数数组元素都有一个关联记录器,记录该元素的出现情况,S卩编解码过程中出现的合格的编码参数的值等于该元素的值的情况。[0030]实施或变体例4实施或变体例1或实施或变体例3所述编码方法或装置或者解码方法或装置中,所述合格的编码参数包括属于下列情形之一或其组合的编码参数:1任何编码参数即所有的编码参数都是合格的编码参数);2符合一类预定条件的编码参数;3不符合一类预定条件的编码参数;4使用预定方式,包括最近编码参数数组方式和或相邻基元的编码参数的方式和或直接方式,进行编解码的编码参数;5不使用预定方式,包括最近编码参数数组方式和或相邻基元的编码参数的方式和或直接方式,进行编解码的编码参数;6数值落在一个预定取值范围内的编码参数;7数值落在一个预定取值范围外的编码参数。[0031]实施或变体例5实施或变体例3所述编码方法或装置或者解码方法或装置中,所述出现情况包括出现频度和或出现间隔长短。[0032]实施或变体例6实施或变体例1所述编码方法或装置或者解码方法或装置中,所述调整包括下列操作之一或其组合:1对换两个元素的位置;2将一个或若干元素移动到最近编码参数数组的特定部位;3将一个或若干元素移动到最近编码参数数组的前部;4将一个或若干元素移动到最近编码参数数组的后部。[0033]实施或变体例7所述编码方法或装置或者解码方法或装置中,当出现一个合格的当前编码参数时,执行以下操作对所述最近编码参数数组进行更新:如果所述当前编码参数的值等于所述最近编码参数数组中的一个元素,称为命中元素,的值,对所述编码参数的最近编码参数数组元素在最近编码参数数组中的位置进行调整;否则(即所述当前编码参数的值不等于所述最近编码参数数组中的任何一个元素的值),将所述当前编码参数的值放入最近编码参数数组。[0034]实施或变体例8所述编码方法或装置或者解码方法或装置中,当出现一个合格的当前编码参数时,执行以下操作对所述最近编码参数数组进行更新:如果所述当前编码参数的值等于所述最近编码参数数组中的一个元素,称为命中元素,的值,将所述命中元素置换至所述最近编码参数数组的最前部;否则(即所述当前编码参数的值不等于所述最近编码参数数组中的任何一个元素的值),将所述当前编码参数插入至所述最近编码参数数组的最前部,将所述最近编码参数数组的最后部的元素移出所述最近编码参数数组。[0035]实施或变体例9所述编码方法或装置或者解码方法或装置中,所述编码参数是位移矢量,所述最近编码参数数组是有N个元素的最近位移矢量数组,标记为ROA[N][2]={offset_in_roa[k]=offset_in_roa[k][0],offset_in_roa[k][1]:0^kN};当出现一个合格的位移矢量offset=offsetX,offsetY时,将offset与ROA[N][2]的N个兀素offsetjn_roa[RoaStartPos+k%N],0kN逐一进行比较,其中%是取模运算,RoaStartPos是最近位移矢量数组的当前起始位置;然后,依次执行以下操作对R〇A[N][2]进行更新:1如果offset等于这N个元素中的第k〇个元素offsetjn_roa[RoaStartPos+ko%N],执行以下操作:如果ko多1,令k从大至小依次取值ko至1并且依次执行下列k〇次赋值运算:offsetjn—roa[RoaStartPos+k0%N]=offset—in_roa[RoaStartPos+ko-1%N]2否则(即offset不等于这N个元素中的任何一个),执行下列对最近位移矢量数组的当如起始位置RoaStartPos的更新运算:RoaStartPos=RoaStartPos+1%N;3ROA[RoaStartPos]=offset。[0036]附图说明[0037]图1是本发明的编码方法或装置或者解码方法或装置的一个示意图。

权利要求:1.一种对数据进行压缩的编码方法或装置或者解码方法或装置,其特征在于,至少包括完成下列功能和操作的步骤或模块:对一种编码参数,遵循预定规则,对所述编码参数的最近编码参数数组进行更新操作。2.根据权利要求1所述的编码方法或装置或者解码方法或装置,其特征在于,所述更新操作包括:对所述编码参数的最近编码参数数组元素在最近编码参数数组中的位置进行调整;和或将在编解码过程中出现的新的合格的编码参数的值放入最近编码参数数组;和或将一个或若干最近编码参数数组元素移出最近编码参数数组。3.根据权利要求1所述的编码方法或装置或者解码方法或装置,其特征在于,所述预定规则包括,根据最近编码参数数组元素的出现频度和或最近编码参数数组元素的出现间隔长短,对最近编码参数数组元素在编码参数数组中的位置进行调整。4.根据权利要求1所述的编码方法或装置或者解码方法或装置,其特征在于,每个最近编码参数数组元素都有一个关联记录器,记录该元素的出现情况,即编解码过程中出现的合格的编码参数的值等于该元素的值的情况。5.根据权利要求2或4所述的编码方法或装置或者解码方法或装置,其特征在于,所述合格的编码参数包括属于下列情形之一或其组合的编码参数:1任何编码参数即所有的编码参数都是合格的编码参数);2符合一类预定条件的编码参数;3不符合一类预定条件的编码参数;4使用预定方式,包括最近编码参数数组方式和或相邻基元的编码参数的方式和或直接方式,进行编解码的编码参数;5不使用预定方式,包括最近编码参数数组方式和或相邻基元的编码参数的方式和或直接方式,进行编解码的编码参数;6数值落在一个预定取值范围内的编码参数;7数值落在一个预定取值范围外的编码参数。6.根据权利要求4所述的编码方法或装置或者解码方法或装置,其特征在于,所述出现情况包括出现频度和或出现间隔长短。7.根据权利要求2所述的编码方法或装置或者解码方法或装置,其特征在于,所述调整包括下列操作之一或其组合:1对换两个元素的位置;2将一个或若干元素移动到最近编码参数数组的特定部位;3将一个或若干元素移动到最近编码参数数组的前部;4将一个或若干元素移动到最近编码参数数组的后部。8.根据权利要求1所述的编码方法或装置或者解码方法或装置,其特征在于,当出现一个合格的当前编码参数时,执行以下操作对所述最近编码参数数组进行更新:如果所述当前编码参数的值等于所述最近编码参数数组中的一个元素,称为命中元素,的值,对所述编码参数的最近编码参数数组元素在最近编码参数数组中的位置进行调整;否则(即所述当前编码参数的值不等于所述最近编码参数数组•中的任何一个元素的值),将所述当前编码参数的值放入最近编码参数数组。9.根据权利要求1所述的编码方法或装置或者解码方法或装置,其特征在于,当出现一个合格的当前编码参数时,执行以下操作对所述最近编码参数数组进行更新:如果所述当前编码参数的值等于所述最近编码参数数组中的一个元素,称为命中元素,的值,将所述命中元素置换至所述最近编码参数数组的最前部;否则(即所述当前编码参数的值不等于所述最近编码参数数组中的任何一个元素的值),将所述当前编码参数插入至所述最近编码参数数组的最前部,将所述最近编码参数数组的最后部的元素移出所述最近编码参数数组。10.根据权利要求1所述的编码方法或装置或者解码方法或装置,其特征在于,所述编码参数是位移矢量,所述最近编码参数数组是有N个元素的最近位移矢量数组,标记为ROA[N][2]={offset—in一roa[k]=offset—in—roa[k][0],offset—in—roa[k][1]:0^kN};当出现一个合格的位移矢量offset=offsetX,offsetY时,将offset与ROA[N][2]的N个元素offset_in_roa[RoaStartPos+k%N],0kN逐一进行比较,其中%是取模运算,RoaStartPos是最近位移矢量数组的当前起始位置;然后,依次执行以下操作对R0A[N][2]进行更新:1如果offset等于这N个元素中的第ko个元素offsetjn_roa[RoaStartPos+ko%N],执行以下操作:如果ko彡1,令k从大至小依次取值ko至1并且依次执行下列ko次赋值运算:offset_in_roa[RoaStartPos+ko%N]=offset_in_roa[RoaStartPos+ko-1%N]2否则(即offset不等于这N个元素中的任何一个),执行下列对最近位移矢量数组的当前起始位置RoaStartPos的更新运算:RoaStartPos=RoaStartPos+1%N;3R0A[RoaStartPos]=offset。

百度查询: 上海天荷电子信息有限公司 动态调整最近编码参数数组的元素的数据压缩方法和装置

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。