CN103780909B - 编码器、解码器及编码方法、解码方法 - Google Patents

编码器、解码器及编码方法、解码方法 Download PDF

Info

Publication number
CN103780909B
CN103780909B CN201310495311.5A CN201310495311A CN103780909B CN 103780909 B CN103780909 B CN 103780909B CN 201310495311 A CN201310495311 A CN 201310495311A CN 103780909 B CN103780909 B CN 103780909B
Authority
CN
China
Prior art keywords
data
coding
value
decoding
coded
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.)
Active
Application number
CN201310495311.5A
Other languages
English (en)
Other versions
CN103780909A (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.)
Koninklijke Philips NV
Original Assignee
Gurulogic Microsystems Oy
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 Gurulogic Microsystems Oy filed Critical Gurulogic Microsystems Oy
Publication of CN103780909A publication Critical patent/CN103780909A/zh
Application granted granted Critical
Publication of CN103780909B publication Critical patent/CN103780909B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/94Vector quantisation
    • 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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/14Coding unit complexity, e.g. amount of activity or edge presence estimation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/04Protocols for data compression, e.g. ROHC
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/005Statistical coding, e.g. Huffman, run length coding
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/3059Digital compression and data reduction techniques where the original information is represented by a subset or similar information, e.g. lossy compression
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/3066Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction by means of a mask or a bit-map
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/60General implementation details not specific to a particular type of compression
    • H03M7/6017Methods or arrangements to increase the throughput
    • H03M7/6023Parallelization
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/60General implementation details not specific to a particular type of compression
    • H03M7/6064Selection of Compressor
    • 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
    • H04N19/103Selection of coding mode or of prediction mode
    • 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
    • H04N19/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • 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
    • H04N19/127Prioritisation of hardware or computational resources
    • 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/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/182Methods 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 a pixel

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Discrete Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computing Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)
  • Error Detection And Correction (AREA)

Abstract

一种编码器,对数据(D1)进行编码,生成相应的编码数据(E2),所述编码器包括分析单元,用于分析数据(D1)的一个或多个部分,并把一个或多个部分导向合适的一个或多个编码单元,编码单元对一个或多个部分进行编码;编码单元采用彼此不同的编码算法;至少一个编码单元计算每个部分中的数据值,把数据值再分割成至少两个集合,为给定的集合计算至少一个聚合值,保留所述部分的空间遮罩,空间遮罩和代表为至少两个数据集合所计算的数值的信息被包括在编码数据(E2)中。本发明还涉及相应的编码方法、解码器和解码方法。

Description

编码器、解码器及编码方法、解码方法
技术领域
本发明涉及编码器,用于编码对应于多种内容的数据(D1)以生成相应的编码数据(E2),所述多种内容可以是静止图像、视频内容、图形内容、音频内容、测量数据等等。本发明还涉及编码方法,用于编码对应于多种内容的数据(D1)以生成相应的编码数据(E2),所述多种内容可以是静止图像、视频内容、图形内容、音频内容、测量数据等等。此外,本发明涉及解码器,用于解码前述编码器生成的编码格式的数据(E2)。本发明也涉及对前述编码器生成的数据(E2)进行解码的方法。进一步,本发明还涉及记录在非暂时性机器可读数据存储介质上的软件产品,其中,软件产品在计算硬件上执行,实现上述方法。
背景技术
有许多当前已知的方法,对数据(D1)进行编码,生成编码数据(E2),而且对编码数据(E2)进行解码,生成解码数据(D3)。但是,缺少一种适于宽范围的内容的数据编码方法,这些内容由要被编码的数据(D1)所代表,例如,静止图像、视频内容、音频内容、或者图形数据。这些编码的主要目的是生成比相应的要被编码的数据(D1)更少占用空间的编码数据(E2)。而且,也缺少用来对这样的编码数据(E2)进行解码的相应解码器。
已知的较好适于压缩自然图像数据的图像编码方法如JPEG(联合图像专家组,一种基于DCT的有损编码,DCT的含义是离散余弦变换)、JPEG2000(基于小波的编码)、以及WebP(在编码过程中采用有损和无损压缩的图像格式编码),但它们较不适于压缩文字,或者那些颜色由仅仅几个颜色值描述并且内容具有相对高的空间频率成份的图像。另一个已知的数据编码方法是GIF(图形交换格式),它采用基于调色板(palette)的压缩算法,较好适于对能够用相对小数目的颜色值来呈现图像的图像进行编码,例如256颜色值;但是,如果要用GIF算法编码的图像中包括具有精细的空间渐变颜色变化的自然对象,GIF会产生不期望的人工处理痕迹,这种痕迹能够在相应的GIF解码图像中被注意到。当前已知的PNG(Portable Networks Graphics,便携网络图形)编码总体上类似于GIF编码,它为编码图像数据提供了更多的选项,但是仍然不能较好地适于包含小范围颜色值的图像。其它已知的编码方法,例如,在文字编码中使用OCR(光字符识别)与字符编码的组合。OCR有时是一个合适的可用方法,但它对文本在图像中的位置、文本在图像中的倾斜、文本的字体、以及文本所处的对象等因素敏感,此外,OCR的实现可能需要可观的处理能力。
更近的时候,科学出版物中提出了替代的编码方法,适于对二级数据序列格式的数据进行编码,表1列出了这些科学出版物的详细内容。
表1:对二级数据序列格式的数据进行编码的方法
前述的已知的数据编码方法,以及已知的对这些编码数据进行解码的相应的方法都不能较好地适用于这些数据所代表的宽范围内容,尽管这些已知的方法采用多类型的彼此不同的方案。为了寻找更有效的编码算法以提供改进的数据压缩,大量的研究工作持续了多年,理想的编码方法仍未被设计出来,数据压缩仍是处理流视频内容的通讯系统面临的一个具有重大意义的问题。
在美国专利申请US6151409(在计算机系统中压缩与重建彩色图像的方法,申请人:台湾台北国家科学委员会)中,披露了一种彩色图像的压缩方法,它采用可视块模式截短编码(VBPIC,visual block pattern truncation coding),其中传统的块截短编码(BTC)被用来编码初始图像。该方法根据人的视觉感知能力,定义了边缘块。如果一个块中的BTC的两个量级化的值的差大于根据视觉特性而定义的一个阈值,则该块被确定为一个边缘块。在边缘块中,比特图被适配用于计算块梯度方向,并且匹配块图案。
该方法仅适于包括仅4×4的块的图像,并且是在90度或45角的清晰边界具有DC电平的图像。此外,该方法还能够去除噪声,或者是在遮罩未准确命中目标之时去除细节。该方法完全不适于对文本或纹理(texture)进行编码,也不适于对不能用直线表示的图案,或者具有不同于45度的倍数的方向的图案进行编码。
在公开的美国专利申请US5668932(数字视频数据压缩技术,申请人:微软公司)中,描述了一种替代的方案用于压缩数字视频数据,并提供相对于传统的压缩方法有所改进的压缩。在该方案中,图像数据被分解成单元并且重复地压缩。采用最适合于单元的内容的压缩格式对单元进行压缩。首先确定一个单元与先前帧的随后单元是否大体一样。如果单元与先前帧的单元大体一样,该单元作为前一单元的副本被以压缩的方式进行编码,而且,纯色压缩方法与8色压缩方法也可以被集成于该压缩技术中。
因此,该方法为每个块、单元或者子块使用比特遮罩(bit mask)来表示一个正在被处理的给定像素是否属于较高的值,即,较亮的像素,或者属于一个较低的值,即较暗的像素。该方法还尝试对整个图像编码。
公开的PCT专利申请WO00/19374(采用4级块编码的图像数据压缩与解压缩,申请人:硅图形公司,Silicon Graphics Inc.)中,描述了一个用于压缩和解压缩图像数据的方法及装置,其压缩一个彩色单元的方法包括步骤:
(i)定义彩色单元的至少四个照度级;
(ii)为彩色单元生成比特遮罩,其中,比特遮罩具有多个记录项目,每个记录项目对应像素的各自一个,每个记录项目用于存储确定与一个像素相关联的照度级之一的数据;
(iii)计算与照度级的第一个相关联的像素的第一平均颜色;
(iv)计算与照度级的第二个相关联的像素的第二平均颜色;
(v)存储与第一平均颜色和第二平均颜色相关联的比特遮罩。
可选地,彩色单元包括4×4像素,比特遮罩包括32比特,每个颜色值包括16比特,这样,实现了每像素的4比特压缩率。该方法适于压缩纹理数据,使得纹理数据在纹理映射过程中能够被有效地缓存和移动,也可能实现照度、强度、alpha纹理的压缩。
前述的编码方法存在各种不足,使它们不适于宽泛类型的数据。
发明内容
本发明的目的之一是,提供一种改进的编码方法,对数据(D1)进行编码,生成相应的编码数据(E2),编码数据(E2)相对于其相应的未编码数据(D1)被压缩。
此外,本发明旨在提供一种编码器,该编码器采用对数据(D1)进行编码的改进的方法,生成相应的编码数据(E2),编码数据(E2)相对于其相应的未编码数据(D1)被压缩。
进一步,本发明旨在提供对生成自本发明的编码器的数据(E2)进行解码的改进的方法。
再进一步,本发明旨在提供对生成自本发明的编码器的数据(E2)进行解码的改进的解码器。
根据本发明的第一方面,提供一种编码器,用于对数据(D1)进行编码,生成相应的编码数据(E2),所述编码器包括:
分析单元,用于分析要被编码的数据(D1)的一个或多个部分,并把一个或多个部分导向合适的一个或多个编码单元,其中,一个或多个编码单元操作用于对其那里的一个或多个部分进行编码,生成编码数据(E2),其中:
一个或多个编码单元操作用于当编码一个或多个部分时采用彼此不同的编码算法;
一个或多个编码单元的至少一个编码单元操作用于计算其那里接受的每个部分中的数据值,把数据值再分割成至少两个集合,为给定的集合计算至少一个聚合值,所述聚合值从给定集合中的数据值中得出,同时保留所述部分的空间遮罩,其中,空间遮罩和代表为至少两个数据集合所计算的数值的信息被包括在编码数据(E2)中。
本发明的优点在于,编码器计算集合和遮罩的聚合值,这些值定义要被编码的数据(D1)的部分的布局,这些聚合值被包括在出自编码器的编码数据(E2)中,提供了要被编码的数据(D1)中的某些类型的内容的高效编码。
可选地,编码器包括输出编码器单元,用于接受来自一个或多个编码单元的编码输出数据,并对编码输出数据进一步编码,从编码器生成编码数据(E2)。
可选地,编码器包括输入阶段,用于当要被编码的数据(D1)不是已经被包括于一个或多个部分之中时,再分割和/或组合要被编码的数据(D1),生成一个或多个部分。
可选地,在编码器中,一个或多个编码单元的至少一个编码单元操作用于把每个部分中的数据值再分割成2至8个数据集合,或者两个或更多数据集合,例如,8个数据集合用于8比特二进制数据。
可选地,编码器操作用于在远程数据库中存储代表一个或多个部分的一个或多个遮罩的信息,用于当对由编码器生成的编码数据(E2)进行解码时由一个或多个解码器访问。
可选地,在编码器中,所述至少一个聚合值是算术平均值、偏斜平均值、对数平均值、加权平均值、平均值、最小值、最大值、众数值、或者中间数值。其它类型的计算也是可能的,例如,复杂数学方程的计算结果,如提供一种形式的聚合结果的多项式计算。其它类型的计算的一个示例涉及,用使得初始数据值与最大值最小值的均值之间距离最小化的方式来选择初始数据集合的值。这种聚合值使得数据集合中的最大误差最小化,且通常产生小的MSE。
根据本发明的第二方面,提供一种编码方法,对数据(D1)进行编码,生成相应的编码数据(E2),所述方法包括:
(a)使用分析单元,用以分析要被编码的数据(D1)的一个或多个部分,并把一个或多个部分导向合适的一个或多个编码单元,其中,一个或多个编码单元操作用于对其那里的一个或多个部分进行编码,生成编码数据(E2),其中,一个或多个编码单元操作用于当编码一个或多个部分时采用彼此不同的编码算法;
(b)使用一个或多个编码单元的至少一个编码单元,用以计算其那里接受的每个部分中的数据值,把数据值再分割成至少两个集合,为给定的集合计算至少一个聚合值,所述聚合值从给定集合中的数据值中得出,同时保留所述部分的空间遮罩,其中,空间遮罩和代表为至少两个数据集合所计算的数值的信息被包括在编码数据(E2)中。
可选地,所述方法包括,使用输出编码器单元,用以接受来自一个或多个编码单元的编码输出数据,并对编码输出数据进一步编码,生成编码数据(E2)。
可选地,所述方法包括,使用一个或多个编码单元的至少一个编码单元,把每个部分中的数据值再分割成2至8个数据集合,或者两个或更多数据集合。
可选地,所述方法包括,在远程数据库中存储代表一个或多个部分的一个或多个遮罩的信息,用于当对编码数据(E2)进行解码时由一个或多个解码器访问。
可选地,在所述方法中,编码数据(E2)被进一步编码和/或压缩。进一步的编码和/或压缩包括以下的至少一个:DPCM(差分脉冲码调制)、RLE(行程长度编码)、SRLE(Splitrun-length coding,分离行程长度编码,这是由古如罗技微系统公司于2013年3月1日提交的英国专利申请GB1303660.3中公开的一种方法)、EM(熵修正,这是由古如罗技微系统公司于2013年3月1日提交的英国专利申请GB1303658.7中公开的一种方法)、算术编码、差分编码、ODelta编码(这是由古如罗技微系统公司于2013年3月1日提交的英国专利申请GB1303661.1中公开的一种方法)、VLC(可变长度编码)、Lempel-Ziv编码(ZLIB、LZO、LZSS、LZ77)、基于Burrow-Wheeler变换的编码方法(RLE、BZIP2)、哈夫曼(Huffman)编码。
根据本发明的第三方面,提供一种解码器,用于对编码数据(E2)进行解码,生成相应的解码数据(D3),所述解码器包括:
发送单元,用于发送编码数据(E2)的一个或多个部分,并把一个或多个部分导向合适的一个或多个解码单元,其中,一个或多个解码单元操作用于对其那里的一个或多个部分进行解码,生成解码数据(D3),其中,
至少一个或多个解码单元操作用于提取包括在编码数据(E2)中的空间遮罩和代表至少两个数据集合的聚合值的信息,并根据由遮罩所定义的元素属于哪个集合把数值赋值给数据块中的元素。
可选地,解码器包括输出解码器单元,用于接受来自一个或多个解码单元的解码输出数据,并对解码输出数据进一步组合,从解码器生成全部解码数据(D3)。
可选地,解码器包括输入阶段,用以从编码数据(E2)提取一个或多个部分,以按照编码数据中的编码参数之所定义导向到一个或多个解码单元。
可选地,在解码器中,一个或多个解码单元的至少一个操作用于把数值赋值给对应于数据集合的遮罩,其中,有2至8个数据集合,或者两个或更多数据集合,例如,8个数据集合用于8比特二进制数据。
可选地,解码器操作用于,当对由编码器生成的编码数据(E2)进行解码时,从远程数据库中恢复代表一个或多个部分的一个或多个遮罩的信息。
可选地,解码器的实现是使得所述聚合值是以下的至少一个:算术平均值、偏斜平均值、对数平均值、加权平均值、平均值、最小值、最大值、众数值、或者中间数值。其它类型的计算也是可能的,例如,复杂数学方程的计算结果,如提供一种形式的聚合结果的多项式计算。其它类型的计算的一个示例涉及,用使得初始数据值与最大值最小值的均值之间距离最小化的方式来选择初始数据集合的值。这种聚合值使得数据集合中的最大误差最小化,且通常产生小的MSE。
根据本发明的第四方面,提供一种解码方法,用于对编码数据(E2)进行解码,生成相应的解码数据(D3),所述方法包括:
(a)使用发送单元,用以发送编码数据(E2)的一个或多个部分,并把一个或多个部分导向合适的一个或多个解码单元,其中,一个或多个解码单元操作用于对其那里的一个或多个部分进行解码,生成解码数据(D3),以及
(b)使用至少一个或多个解码单元,用以提取包括在编码数据(E2)中的空间遮罩和代表为至少两个数据集合计算的聚合值的信息,并根据由遮罩所定义的元素属于哪个集合把数值赋值给数据块中的元素。
可选地,所述方法包括,使用输出解码器单元,用以接受来自一个或多个解码单元的解码输出数据,并对解码输出数据进一步组合,生成全部解码数据(D3)。
可选地,所述方法包括,使用输入阶段,用以从编码数据(E2)提取一个或多个部分,以按照编码数据(E2)中的编码参数之所定义导向到一个或多个解码单元。
可选地,在所述方法中,一个或多个解码单元的至少一个解码单元操作用于把数值赋值给对应于数据集合的遮罩,其中,有2至8个数据集合,或者两个或更多数据集合,该示例有利地用于8比特二进制数据,尽管进一步的16比特、32比特等二进制数据也是可用的。
可选地,所述方法包括,当对由编码器生成的编码数据(E2)进行解码时,从远程数据库中恢复代表一个或多个部分的一个或多个遮罩的信息。
可选地,当使用所述方法时,所述聚合值的至少一个是以下的至少一个:算术平均值、偏斜平均值、对数平均值、加权平均值、平均值、最小值、最大值、众数值、或者中间数值。其它类型的计算也是可能的,例如,复杂数学方程的计算结果,如提供一种形式的聚合结果的多项式计算。其它类型的计算的一个示例涉及,用使得初始数据值与最大值最小值的均值之间距离最小化的方式来选择初始数据集合的值。这种聚合值使得数据集合中的最大误差最小化,且通常产生小的MSE。
根据本发明的第五方面,提供一个数据通讯系统,所述系统包括至少一个根据本发明的第一方面的编码器,用于对数据(D1)进行编码,生成相应的编码数据(E2),还包括至少一个根据本发明的第三方面的解码器,用于对编码数据(E2)进行解码,生成相应的解码数据(D3)。
根据本发明的第六方面,提供一种在本发明的第五方面的数据通讯系统中对数据进行通讯的方法,所述方法包括使用本发明的第二方面的方法与本发明的第四方面的方法的组合。
根据本发明的第七方面,提供记录在非暂时性机器可读数据存储介质上的软件产品,其中,软件产品在计算硬件上执行,执行根据本发明的第二方面的方法。
根据本发明的第八方面,提供记录在非暂时性机器可读数据存储介质上的软件产品,其中,软件产品在计算硬件上执行,执行根据本发明的第四方面的方法。
在不背离本发明的范围的情况下,本发明的特征还可以做各种组合。
附图说明
下面结合附图对本发明的实施例以例示的方式加以说明。
图1是编码器和解码器的示意图;
图2A是用于实现数据编码的一个方法的编码器的示意图;
图2B是解码器的示意图,解码器用于实现按照本发明的方案对已经编码的数据(E2)进行解码;
图3是图2A的编码器的第二编码阶段的示意图;
图4是用于在图2A的编码器的第二编码阶段进行编码,而将图像数据再分成数据块,即部分,的示意图;
图5是采用图2A的编码器进行编码的数据块的示意图;
图6是在计算代表图5的数据块的级的集合的聚合值之后,用于图5的数据块的遮罩的示意图;
图7是再生成的解码数据块的示意图,所述再生成的解码数据块得自由图2A的编码器生成的编码数据。
在附图中,使用带下划线的数字来代表项目,所代表的项目位于下划线数据所处的位置或接近的位置。无下划线数字所表示的项目通过指示线与无下划线数字连接,无下划线数字的关联箭头表示项目位于箭头所指的位置。
具体实施方式
概括而言,本发明是关于对数据(D1)进行编码以生成编码数据D2的改进的方法,该方法提供更高水平的编码效率。该改进的方法能够有效地对要被编码的数据(D1)所代表的多种内容进行编码,所述内容例如可以是静止图像、视频内容、图像内容、音频内容、ECG(心电图)、测震数据等。
参见图1,它提供了采用本发明的方法对数据20(D1)进行编码的编码器10的示意图。编码器10生成编码数据70(E2),数据70被存储和/或流化(streamed),以用于后续在一个或多个解码器25中被解码。一个或多个解码器25生成相应的解码数据75(D3),以被一个或多个用户所用。解码数据75(D3)可选地大体上对应于未编码数据20(D1)。至少一个编码器10和至少一个对应的解码器25的组合形成一个数据通讯系统,用5来代表,也即一个编解码装置。
参见图2A,它提供了采用本发明的方法对数据20(D1)进行编码的编码器10的示意图。编码器10采用第一阶段30,如果数据20(D1)不是已经以数据块的格式存在,它把要被编码的数据20(D1)分割成数据块40。可选地,对要被编码的数据20(D1)的这种分割的结果是,数据块40具有彼此不同的大小,即,非一致的,这取决于被包括于数据块40中的内容的性质,这不同于把数据(D1)一致地分割成相应的数据块的许多已知的编码算法。在第二阶段50,编码器10包括分析单元100和多个编码单元110(1)至110(n),它们使用各种类型的编码算法,其中,这些编码算法是彼此不同的,一些编码算法是已知的算法,例如但不限于DCT,其中,编码单元110(1)至110(n)用于选择性地处理每个数据块40。可以理解,编码单元110(1)至110(n)中所采用的一些编码算法是彼此大体相似的,但在时间方面以平行的方式被执行。编码单元110(1)至110(n)中的至少一个将存在于数据块40中的数据整理成至少两个级(level),并生成一个或更多遮罩(mask),所述遮罩描述数据块40中的哪个数据值属于哪个对应的级,所述编码单元110(1)至110(n)中的至少一个还计算被整理成每个级的数据的聚合值,例如平均值,或中间值,或类似的。有利地,遮罩被实现为一个空间比特图。第三阶段60包括对比特图进行压缩,以及压缩每个级的聚合值,以从编码器10生成编码数据70(E2),可选地,不同的压缩算法可以用于第三阶段60,如,RLE(Run-length encoding,行程长度编码)、DPCM(Differential pulse-code modulation,差分脉冲码调制)、VLC(Variable-length coding,可变长度编码)、SRLE、EM(Entropy Modifier,熵修正)、ODelta编码、距离编码,尽管其它数据压缩算法也可以替代地或补充地被采用,例如多阶数据压缩。可选地,编码器10可以与其它编码器组合使用,以取得数据20(D1)的混合编码,以生成编码数据70(E2),例如DCT、调色板、DPCM。实践中,术语“级(level)”可以对应以下中的一个或多个:色度级、照度级、颜色值、亮度、幅度、频率、强度;尽管如此,“级”还可以包括描述物理变量的其它参数,这取决于要被编码的数据20(D1)的性质。
在第一阶段30,取决于要被编码的数据20(D1)的性质,数据块40的大小可以彼此间有不同。可选地,数据20(D1)是一维的,如,音频内容、ECG数据、测震数据。替代地,数据20(D1)是多维的,如,静止图像、视频内容、图形内容、3D图像/视频/图形。此外,二维输入数据包括例如方形、三角形、圆、以及类似的元素,即,任何形式的二维几何形状。进一步,三维输入数据包括例如:立方体的、角锥、圆柱、球形的元素,等。当要被编码的数据20(D1)包括空间高频成份和仅几个级,用以定义数据20(D1)中所代表的空间元素,当前已知的编码方法尤其效率不好,但这些已知的方法在编码器10中的处理效率却是好的。可选地,编码器10所编码的数据20(D1)可以是初始数据,或者是通过预编码处理而形成的数据,如通过DPCM、运动估计、空间预测。
如前所述,在编码器10的阶段50,本发明的压缩方法被采用,如图3所示。来自第一阶段的数据块40在分析单元100中被分析,以确定一个最合适的编码方法以被采用来对数据块40进行编码;取决于仅仅由分析单元100所执行的分析,或者是分析单元100在一个或多个编码单元110(1)至110(n)的帮助下所执行的分析,数据块被导向一个或多个编码单元110(1)至110(n),其中n是整数,它描述在第二阶段50中所采用的不同编码算法的总数。可选地,不同编码算法的总数,包括已知的编码算法和根据本发明的两级编码方法,其中与所述两级相关联的计算值是得自平均数、众数、中位数,或者是得自应用于正被编码的一个给定数据块40内的数据值的一个均值计算。可以理解,两级编码算法仅是一个例子,可以采用各种多级的算法。分析单元100分析存在于数据块40中的多个不同颜色,以及存在于数据块40中的空间频率信息,从而决定哪个编码单元110合适用于对给定类型的数据块40进行编码。可选地,编码单元110采用以下一个或多个:DC(direct current,直流)编码、幻灯片编码(slide encoding,有时也被称之为“滑动编码”)、、DCT(discrete cosine transform,离散余弦变换)、小波编码、调色板编码(palette encoding)、数据库编码(databaseencoding)、VQ(ventor quantization,矢量量化)编码、比例编码(scale encoding)、线编码(line encoding)、内插值和外插值方法。在来自第二阶段50的编码数据中,包括表示哪个编码单元110已经被用于给定的数据块40的数据。编码单元110中的至少一个编码单元110(i)采用了根据本发明的编码算法,其中i是处于1至n的范围内的整数,下文会再加以描述。可选地,在提供自第一阶段30的数据流中,数据块40的大小是会有不同的,其中,提供给第二阶段50的信息中还包括空间地表示在任一个或多个给定的图像中数据块40被包括在哪里的信息,该信息被包括在提供自第二阶段50的编码数据中;表示数据块位置的数据的这种被包括,实现于英国专利申请号GB1214414.3(编码器)的方案中,该英国专利申请还具有相关的其它申请:US13/584005和EP13002521.6,它也实现于英国专利申请号GB1214400.2(解码器)的方案中,此英国专利申请还具有相关的其它申请:US13/584047和EP13002520.8,这些英国申请有及相关的美国和欧洲申请在此一并被纳入作为参考。替代地,上述的被包括还实现于第三阶段60。数据块的大小可以用数据来呈现,如,用像素表达的高×宽;数据块的空间位置可以用与图像相关的坐标来定义,如,从图像的一个角算起的x,y像素。分析单元100和第一阶段30以重复的方式工作来把要被编码的数据20(D1)分割成数据块40,其方式是在一个或多个选定的编码单元110(1)至110(n)提供最有效的数据压缩,例如,考虑不同的编码单元110(1)至110(n)对于编码器10是可用的,来选择数据20(D1)中的数据块40的空间位置和大小。编码单元110(1)至110(n)的实现,至少部分地,是以软件的形式,可以定期地进行升级,以渐进地提高编码器10的编码表现,例如,使得编码器以灵活的方式适应不同类型的数据20(D1)。
参见图2B,它示出了与编码器10相对应的解码器25。解码器25包括第一解码阶段130,用来接收编码数据70,并对编码数据70执行编码器10的第三阶段60所用的编码的逆操作,以生成用135表示的中间解码数据。所述中间解码数据包括例如哪个类型的编码单元110被对来对给定的数据块40进行编码、数据块40的遮罩、合适的聚合值,这样的信息,等等;可选地,聚合值是平均值、众数值(modal value)、中间数值,但不限于这些。解码器25进一步还包括第二阶段150,第二阶段150包括发送单元155和一个或更多解码单元160(1)至160(n),解码单元160(1)至160(n)对应于一个或更多编码单元110的逆操作装置,其中,中间解码数据135中的编码数据块被发送单元155导向至包括于第二阶段的合适的解码单元160(1)至160(n),以在解码器25内再生成数据块40。解码器25进一步还包括第三阶段170,用来应用编码器10的第一阶段中所执行的操作的逆操作,以生成与数据20(D1)和/或编码数据(E2)大体对应的解码数据75。此外,或者替代地,数据块的空间信息或大小信息被生成于第一解码阶段130。空间和位置信息被进一步发送至第二阶段150,以使得在一个或更多解码单元160(1)至160(n)所采用的方法能够与大小信息被合适地操作,空间信息和位置信息还被发送至第三阶段170以使得它将数据块放置在合适的空间位置。
根据本发明的编码算法适合用于对任何大小的数据块40进行编码,尽管它可以被有利地用于对包括8至256像素这样的元素或数值范围的数据块进行编码。此外,该算法还被方便地称作是多级编码方法。该算法的首要的和最有用的实现方式是采用两级,例如,颜色,尽管如上所述它并不限于此,它最优用于编码的主题例如是:码命令提示、文本、和其它包括两级的内容。而且,它也能够用于实现对多于两级的内容进行编码的算法,例如三级、四级,或更多级,即“多级”,有益地,数据块被编码成的级的数量显著地小于编码之前的数据块40的级的数量,例如,至少小3倍,甚至有利地小5倍,乃至更有利地小至少10倍。第二阶段50中在编码之前的数据块中的级的数量被称作是“级的初始数”,也就是代表例如图像、视频、音频、或者图形内容的数据块40中的动态级的量度。例如,参见图4,图像区域200包括2维阵列形式的1000×1000像素点,其中,该图像区域在编码器10的第一阶段被分割成100个数据块40,用210表示,其中每个块210对应于100×100像素,即总计10000个像素。每个像素用8位二进制比特所表达的颜色和/或强度来代表,如此定义了动态范围的256级。动态范围还可能被限制,级的数量可以由下面的公式进行地计算:
级数=幅度值=最大级-最小级+1
级的数量还可以用数据或数据块中的所用的不同的级的数量来描述,这样它的值就可以是等于或小于幅度值。对于级的初始数量,所有不同的公式都可以采用,但输出的级数典型地代表用在数据块中的不同级的数量。当编码单元110(i)对给定的块210编码,级的数量被减小,例如,从2至8的范围,后文将进一步描述的补充数据也一同如此。如果编码单元110(i)采用多于例如8个级,编码单元110(i)数据压缩的效率降低,它要求在数据被送给第二阶段50之前使用图像200的预处理,例如预测编码或差分编码(delta coding)。一个替代方案涉及使用比特来发送聚合值的级,以描述一个值是否在范围内,例如由最小(min)和最大(max)参数所定义的范围,用来计算级的聚合值。例如,如果聚合值是10,12,13,15,17,那么,级值的发送包括像10(=最小聚合值)、以及6至8(=后续比特的数量)、以及(1)011010(1)这样的值,以描述哪个聚合值被用于不同的级。此外,这个例示中6个比特是足够的,因为,由于两个首先发送值10和6,第一个值10和最后一个值17是已知被使用的。一个大体上类似的采用差分编码的例示产生的数值例如10和2,1,2,2,它们可以被分成例如两个数据流,以实现对最小值和差分值的更有效的熵编码。
编码单元110(i)中采用的编码算法被用于编码灰度图像或只使用一个信道的其它信息。此外,编码单元110(i)中采用的编码算法被用于颜色图像或其它多信道内容。多信道内容,例如3D颜色图像,被进行编码,使得所有的信道被类似地编码/压缩,或者,它们被使用彼此不同的方式进行编码/压缩,例如,音频信息的数据块被编码的方式不同于视频信道的方式。多个信道可以被一起编码或分开编码,例如,作为一个24比特的RGB三联体(triplet)或者3×8比特(R,G,B)颜色值。如果信道被以彼此不同的方式编码,可以使用编码单元110中的不同编码算法和数据块40的不同大小。数据块40的大小的选择,如前所述,以要被编码的数据20(D1)中的内容的类型为基础来实现。当信道被类似地但分开地编码,例如分开的R、G、B信道,基于数据内容,数据块的大小、或者所采用编码算法,也可以有所不同。
采用本发明的多级方法所产生的数据块值还可选地被转移到一个数据库,使得它们可以被后续的数据块使用。在对数据20(D1)进行编码的过程中,数据库可以在编码器10中单独地生成,并且可选地,在解码器25中在对编码数据70(E2)进行解码的过程中亦如此。替代地,编码器10和解码器25二者使用共同的数据库,数据库要么是二者中的某一个生成的,或者是某些其它的设备或者软件生成的,二者可以类似地使用该数据库。在两种情况下,编码器10和解码器25所使用的数据库是一样的,因此,所发送的数据库参考在所有的阶段中总是代表类似的数据值,即,在编码器10的计算中,在编码器10的重构中,亦在解码器25的重构中。与数据块值一起,或者不是与数据块值一起,在所述的多级方法中的采用的遮罩也可以被转移入数据库中。遮罩与数据块值二者都能够被恢复自数据库,以被用于编码未来的数据内容或者用于按照本发明的多级方法编码的数据块,从而减小要被储存和/或发送的数据的大小,进而提高在编解码装置5中可取得的压缩比。
本发明的多级方法还可以被用于例如压缩数据或者数据库中的单个数据库元素。该方法很适合于有损或无损压缩。对于存在于要被编码的数据20(D1)中的许多数据类型,如音频和图像或者视频数据,有损压缩不仅是可接受的,而且还能够针对编码数据70(E2)显著提高可取得的压缩比。尽管如此,对于一个其它类型的数据,如数据库、文件、或二进制数据,它们经常(即便不总是)需要进行无损压缩,所以,在所述的多级方法中,经常会出现使用多级的需要,或者替代地,在编解码装置5中使用更小的数据块。
下面结合图5,对编码单元110(i)中所采用的编码算法做更详细的描述。图5中,初始数据块40的一个示例用300来表示。数据块300包括具有图中所示的灰度值的4×4像素。有利地,数据块300适合于在采用本发明的算法的编码单元110(i)中有效地编码,并且在编码过程中只有小的编码误差。
在使用所述算法时,把数据分成两个数据集的数据值被首先定义,例如,在编码器10的计算硬件或专用数字硬件中,按照公式1计算块300中所有像素或元素的一个平均值。
公式1:
其中,“Mean”意为“平均值”,“All”意为“所有”。
接下来,所述算法定义级的两个集合,即Level_0和Level_1,其中,Level_0的集合包括值低于Mean All的所有像素,Level_1的集合包括值等于或高于Mean All的所有像素。这样,数据块300的像素被映射到图6所示的对应数据块320,其中,像素的空间位置被保留,但它们现在仅由于应于集合Level_0和Level_1的两个级来代表。对于每个级的集合,即Level_0和Level_1,作为聚合值的一个示例的平均值,在前述的计算硬件或专用数字硬件中,按照公式2和公式3被计算。
公式2:
公式3:
可选地,当要计算一个空间加权平均级时,上述括号内的数字均被乘以相关系数,其中,相关系数可以彼此不同。如果编码器10和解码器25使用这些系数,以及在合适的时候使用其逆变,就可以在编码和压缩时对数据加“水印”,用于例如限制对数据时进行未获授权的复制,以取得付费,例如定期的订阅费。这可以使得数据内容被某些最终用户在无成本的方式下以低质量来使用,而被另外一些最终用户以高质量来使用,从而取得订阅费的支付,或类似类型的付费。
其后,参见上述的公式2和公式3,在执行所述算法时,数据块300中的像素的一个空间呈现被作为像素遮罩320而存储,与每个级的集合的聚合值,即,MeanLevel_0和MeanLevel_1一起而存储;替代地,不是把该数据存于数据存储器中,它们可以从编码单元110(i)中被流化。虽然在前文中针对所述算法描述了算术平均值的计算,可以理解,其它类型的计算也是可能的,例如,偏斜平均值、非对称平均值、对数平均值、几何平均值、最小值、最大值、众数值、中间数值。可选地,级的每个集合的数值可以使用任何计算手段来计算,可以使用专用的数字计算硬件和/或执行软件产品的计算设备。计算聚合值的一个示例是,选择把初始数据值与最大值最小值的均值之间距离最小化的初始数据值。这样一种聚合值使得数据集合中的最大误差最小化,且通常产生更小的MSE。从解码器的角度,所采用的计算方法不是主要问题,计算手段的可选的例子包括“强力”(brute force)方法、蒙特卡洛(Monte Carlo)方法,等等,从而发现级的最优数量,以及级的集合的数值。优化方法的示例可以是率失真(Rate-Distortion)优化,从而确定在编码过程中有多少比特被使用,以及有多少误差可以在编码信息中被允许。从所述方法可以不输出两个聚合值,一个聚合值可以被输出自一个或更多其它聚合值的参考,以及一个或多个聚合值相对于参考数值的差值,如9.1818和(172.8-9.1818)。可选地,上述计算的聚合值可以被量级化(quantized),例如,量级成最近的整数值,以获得在输出自编码单元110(i)的输出数据中的更高程度的数据压缩。量级化的程度是被需要来代表数据块300的集合的多少的动态方程。上述示例的量级化成最近的整数提供的聚合值是Mean Level_0=9,Mean Level_1=173。
当从编码单元110(i)生成编码数据70(E2)时,基于像素遮罩320,以多个可能的扫描顺序,例如,图6所示的由左及右和由上及下,以“之”字形、迷宫或类似的形式扫描,像素的空间呈现,即遮罩,被输出。在一个示例中,遮罩的输出方式是由左及右和由上及下,使得遮罩在编码单元110(i)的输出数据中被表示为0000 1100 0010 0110。
当编码器10被用来编码视频内容(D1),一个序列的图像被提供给编码器10,其中,每个图像适于被分解成数据块40,然后,取决于其被分析单元100所分析的内容,使用编码单元110,数据块40被适当地进行编码。如前所述,编码器10在不同的编码单元110之间动态地切换,这取决于被提供给第二级50进行编码的数据块的性质。编码单元110的选择,如前所述,被记录在出自第二阶段50的编码数据中。第三阶段60应用进一步的编码/压缩,例如,使用以下的一个或多个编码方式:DPCM(差分脉冲码调制)、RLE(行程长度编码)、SRLE、EM(熵修正)、算术编码、差分编码、ODelta编码、VLC(可变长度编码)、Lempel-Ziv编码方法(如,ZLIB、LZO、LZSS、LZ77)、基于Burrow-Wheeler变换的编码方法(如,RLE、BZIP2)、以及哈夫曼(Huffman)编码。遮罩的发送,即,输出自第二阶段50的数据集合的扫描顺序,通过数据库来实现,例如像美国专利申请US2010/0322301(图像处理器和图像发生器以及相应的计算机程序,申请人:古如罗技微系统公司,发明人:托马斯 卡尔卡依宁)中所描述的那样,该美国专利早请在此被纳入作为参考。使用这样一个数据库,提供了遮罩被发送给解码器的路径,这能够提供一种形式的接入钥匙,例如,它可限制被编码内容在编码形式下被进行未获授权的传播(即,未获授权的文件共享)。
图5的数据块300的再生成的解码版本被示于图7,用500来表示。再生成的数据块500对应于提供自解码器25的解码输出数据75(D3)的一部分。可以理解,数据块500中的信息,相对于初始的数据块40和被输入到编码器10的300,只发生了很小的损失。
另一个示例具有测量数据的17个样本,它们可以通过使用本发明的多级方法被有效地编码。初始样本值如下:
122,153,190,198,188,156,153,119,148,122,122,153,196,120,198,152,154
平均值(=155.53)可以被用来把这些数值分成两组,但这不是对数据进行编码的最佳方案。两组包括的数值如下:
低级的组=122,153,153,119,148,122,122,153,120,152,154(均值=138)
高级的组=190,198,188,156,196,198(均值=187.66)
具有作为聚合值的平均值(138和188)的这两个级有可能导致高的再生成误差(绝对差之和(SAD)=230)。
采用以下的公式,可能找到一个更好的分割点:
(Min+Max)/2=(119+198)/2=158.5
然后,新的两个组包含如下的数值:
低级的组=122,153,156,153,119,148,122,122,153,120,152,154(均值=139.5)
高级的组=190,198,188,196,198(均值=194)
具有数据140和194的这两个级有可能导致更低的误差(SAD=204)。
两个级组(低和高)的类似划分还可以用其它的方式来计算。级组划分的一个有益方案是当数据的变化为高或最高时,将数据划分为新的级组。当数据被从相关的最低值到相关的最高值排序时,这样的最高的变化容易被发现。被排序的数据值如下:
119,120,122,122,122,148,152,153,153,153,154,156,188,190,196,198,198,
数据的最高变化发生在数值188和156之间(=32)。
有了两个级,再生成的误差仍很高,类似的划分规则可以被继续用于数据的变化为最高的组。这种情况下,第二个划分点可以在数值148和122(=26)之间找到。现在,级组的内容如下:
group(0)=119,120,122,122,122 (Mean=121)
group(1)=148,152,153,153,153,154,156(Mean=152.71)
group(2)=188,190,196,198,198 (Mean=194)
其中,“group”意为“组”,“Mean”意为“均值”。
现在,有了这三个级和聚合值121、153、194,SAD仅仅为(6+10+20)=36。
还可以为这三个级使用众数值或模值(model value),那么,聚合值如下:122、153和198。现在,SAD是(5+10+20)=35。
采用中位数作为聚合值将产生数值122、153和196。SAD现在是(5+10+18)=33。聚合值总是可以被自由地选择,为不同的组的不同的聚合值可以被用来产生最好的重构,这取决于被选择的误差标准。
如果SAD值33不足够好,还可以生成更多的级,例如,4到12个级,或者,再生成误差,即DELTA值,可以采用一个编码方法如VCL而被编码。
如果SAD值33足够好,这三个级的聚合值(122、153、196)被用于遮罩内,该遮罩描述哪个数据值属于哪个级。现在,因为级1有最多的值,那些遮罩值被置为0,级0的值被置为10,级2的值被置为11,这样,遮罩的数值呈现为如下的形式:
10,0,11,11,11,0,0,10,0,10,10,0,11,10,11,0,0
还可以用二进制遮罩的两个集合来描述将数据指定到不同级的遮罩。例如,第一个二进制遮罩指定低值(<=156)和高值(>=188)的第一划分,低值置为0,而高值置为1:
0,0,1,1,1,0,0,0,0,0,0,0,1,0,1,0,0,
第二个二进制遮罩指定group(0)的低值(<=122)和group(1)的高值(>=188)的第二划分,二者分别被置为0和1:
0,1,1,1,0,1,0,0,1,0,1,1。
划分数据为不同的集合的一个有利方案是,总把包含最高幅度的集划分,即(max-min+1)。如果多个集合具有同样的幅度,那么,选择具有最多数据值的集合来分。继续这种划分,只要最高幅度足够小,即,不超过一个阀值。然后,用众数值或中位数值,为每个集合定义聚合值。
可选地,也可以一次增加一个集合来重复集合的划分,从而使得当执行新的集合划分,总有新的聚合值生成。把所有的数据值放入其聚合值与数据值最近的集合,从而再创建新的集合。有许多有利的实现方式可用于集合的创建和聚合值的定义,但是,编码的最终结果总是采用一个或更多遮罩320和两个或更多聚合值,以及那些采用编码单元110(i)所实现的方法所输出的。
所有的示例遮罩和聚合值都可以通过多样的方法被进一步压缩,如delta、RLE、VLC、数据库,等。
编码器10和/或解码器25用专门的电子硬件来实现,如,传统的数字集成电路、场可编程门阵列(FPGA)或类似的。替代地或补充地,编码器10和/或解码器25可以通过执行一个或更多软件产品来实现,所述的软件产品存储在非暂时性(non-transitory,non-transient)机器可读数据存储介质中,在与数据存储器耦合进行数据通讯的计算硬件上执行。可选地,计算硬件被实现为高速缩减指令集处理器。编码数据70(E2)是以下的一个或多个形式:被流化的、存储在可读光盘这样的数据载体上、存储在数据存储器中,等等。
在不背离本发明范围的情况下,可以对所述的实施例进行修改。本文所用的术语“包括”、“包含”、“由......组成”应当被理解为非排它的方式,即,允许未被明示描述的项目、部件、或元素的存在。单数或“一个”的使用应当被理解为与复数有关。括号内的序号的使用是为了帮助理解内容,不应当被当作限定的作用。

Claims (17)

1.一种编码器(10),用于对数据(20,D1)进行编码,生成相应的编码数据(70,E2),所述编码器(10)包括:
分析单元(100),用于分析要被编码的数据(20,D1)的一个或多个数据块的一个或多个部分(40)中的多个不同值和空间频率信息,并且,把一个或多个部分(40)导向多个编码单元(110),其中,取决于包括于一个或多个数据块中的数据内容的性质,一个或多个数据块中的至少一个数据块相对于一个或多个数据块中的其它数据块具有不同的大小;多个编码单元(110)操作用于对一个或多个部分(40)进行编码,生成对应于一个或多个数据块的编码数据(70,E2);
多个编码单元(110),操作用于当编码一个或多个部分(40)时采用彼此不同的编码算法;多个编码单元(110)在时间上以平行的方式执行编码;以及
输出编码器单元(60),操作用于接受来自多个编码单元(110)的编码输出数据,并对编码输出数据进一步编码,从编码器(10)生成编码数据(70,E2);
其中,
多个编码单元(110)的至少一个编码单元(110(i))操作用于计算其接受的每个部分(40)中的数据值,把数据值再分割成至少两个集合,为给定的集合计算至少一个聚合值,所述至少一个聚合值从给定集合中的数据值中得出,同时保留所述部分(40)的空间遮罩(320),其中,空间遮罩(320)和代表为至少两个数据集合所计算的聚合值的信息被包括在编码数据(70,E2)中。
2.如权利要求1所述的编码器(10),其特征在于,编码器(10)包括输入阶段(30),用于当要被编码的数据(20,D1)不是已经被包括于一个或多个部分(40)之中时,再分割和/或组合要被编码的数据(20,D1),生成一个或多个部分(40)。
3.如权利要求1或2所述的编码器(10),其特征在于,编码器(10)操作用于在远程数据库中存储代表一个或多个部分的一个或多个遮罩(320)的信息,用于当对由编码器(10)生成的编码数据(70,E2)进行解码时由一个或多个解码器访问。
4.如权利要求1或2所述的编码器(10),其特征在于,所述至少一个聚合值是算术平均值、偏斜平均值、对数平均值、加权平均值、平均值、最小值、最大值、众数值、或者中间数值。
5.一种对数据(20,D1)进行编码,生成相应的编码数据(70,E2)的方法,包括:
(a)使用分析单元(100),用以分析要被编码的数据(20,D1)的一个或多个数据块一个或多个部分(40)中的多个不同值和空间频率信息,并且,把一个或多个部分(40)导向多个编码单元(110),其中,取决于包括于一个或多个数据块中的数据内容的性质,一个或多个数据块中的至少一个数据块相对于一个或多个数据块中的其它数据块具有不同的大小;多个编码单元(110)操作用于对一个或多个部分(40)进行编码,生成对应于一个或多个数据块的编码数据(70,E2),其中,多个编码单元(110)操作用于当编码一个或多个部分(40)时采用彼此不同的编码算法,多个编码单元(110)在时间上以平行的方式执行编码;
(b)使用多个编码单元(110)的至少一个编码单元(110(i)),用以计算其那里接受的每个部分(40)中的数据值,把数据值再分割成至少两个集合,为给定的集合计算至少一个聚合值,所述至少一个聚合值从给定集合中的数据值中得出,同时保留所述部分(40)的空间遮罩(320),其中,空间遮罩(320)和代表为至少两个数据集合所计算的聚合值的信息被包括在编码数据(70,E2)中;以及
(c)使用输出编码器单元(60)用于接受来自多个编码单元(110)的编码输出数据,并对编码输出数据进一步编码,从编码器(10)生成编码数据(70,E2)。
6.如权利要求5所述的方法,其特征在于,所述方法包括:在远程数据库中存储代表一个或多个部分的一个或多个遮罩(320)的信息,用于当对编码数据(70,E2)进行解码时由一个或多个解码器访问。
7.如权利要求5或6所述的方法,其特征在于,编码数据(70,E2)被进一步编码和/或压缩。
8.如权利要求7所述的方法,其特征在于,所述进一步的编码和/或压缩包括以下的至少一个:DPCM(差分脉冲码调制)、RLE(行程长度编码)、SRLE(分离行程长度编码)、EM(熵修正)、算术编码、差分编码、ODelta编码、VLC(可变长度编码)、Lempel-Ziv编码(ZLIB、LZO、LZSS、LZ77)、基于Burrow-Wheeler变换的编码方法(RLE、BZIP2)、哈夫曼编码。
9.一种解码器(25),用于对编码数据(70,E2)进行解码,生成相应的解码数据(75,D3),所述解码器(25)包括:
解码阶段(130),用于接收包括编码数据(70,E2)的一个或多个数据块的编码后版本的一个或多个部分(40),并把一个或多个部分(40)导向多个解码单元(160),其中,取决于包括于一个或多个数据块中的数据内容的性质,一个或多个数据块中的至少一个数据块相对于一个或多个数据块中的其它数据块具有不同的大小;多个解码单元(160)操作用于对一个或多个部分(40)进行解码,生成对应于一个或多个数据块的一个或多个部分的解码数据(75,D3),其中,
多个解码单元(160)在时间上以平行的方式执行解码;
多个解码单元(160)的至少一个解码单元(160(i))操作用于提取包括在编码数据(70,E2)中的空间遮罩(320)和代表至少两个数据集合的聚合值的信息,并根据由遮罩(320)所定义的元素属于哪个集合把数值赋值给数据块(500)中的元素;以及
解码器(25)包括输出解码器单元(170),用于接受来自多个解码单元(160)的解码输出数据,并对解码输出数据进一步组合,从解码器(25)生成解码数据(75,D3)。
10.如权利要求9所述的解码器(25),其特征在于,解码器(25)包括解码阶段(130),用以从编码数据(70,E2)提取一个或多个部分,以按照编码数据(70,E2)中的编码参数之所定义导向到一个或多个解码单元(160)。
11.如权利要求9或10所述的解码器(25),其特征在于,所述解码器(25)操作用于,当对由编码器(10)生成的编码数据(70,E2)进行解码时,从远程数据库中恢复代表一个或多个部分的一个或多个遮罩(320)的信息。
12.一种对编码数据(70,E2)进行解码,生成相应的解码数据(75,D3)的方法,包括:
(a)使用解码阶段(130),用以接收包括编码数据(70,E2)的一个或多个数据块的编码后版本的一个或多个部分(40),并把一个或多个部分(40)导向多个解码单元(160),其中,取决于包括于一个或多个数据块中的数据内容的性质,一个或多个数据块中的至少一个数据块相对于一个或多个数据块中的其它数据块具有不同的大小;多个解码单元(160)操作用于对一个或多个部分(40)进行解码,多个解码单元(160)在时间上以平行的方式执行解码,生成对应于一个或多个数据块的一个或多个部分的解码数据(75,D3),以及
(b)使用多个解码单元(160)中的至少一个解码单元(160(i)),用以提取包括在编码数据(70,E2)中的空间遮罩(320)和代表为至少两个数据集合计算的聚合值的信息,并根据由遮罩(320)所定义的元素属于哪个集合把聚合值赋值给数据块中的元素;以及
(c)使用输出解码器单元(170),用以接受来自多个解码单元(160)的解码输出数据,并对解码输出数据进一步组合,生成解码数据(75,D3)。
13.如权利要求12所述的方法,其特征在于,所述方法包括:使用解码阶段(130),用以从编码数据(70,E2)提取一个或多个部分,以按照编码数据(70,E2)中的编码参数之所定义导向到一个或多个解码单元(160)。
14.如权利要求12或13所述的方法,其特征在于,一个或多个解码单元(160)的至少一个解码单元(160(i))操作用于把数值赋值给对应于数据集合的遮罩(320)的元素,其中,有2至8个数据集合,或者两个或更多数据集合。
15.如权利要求12或13所述的方法,其特征在于,所述方法包括:当对由编码器(10)生成的编码数据(70,E2)进行解码时,从远程数据库中恢复代表一个或多个部分的一个或多个遮罩(320)的信息。
16.一种数据通讯系统(5),所述系统(5)包括至少一个如权利要求1所述的编码器(10),用于对数据(20,D1)进行编码,生成相应的编码数据(70,E2),所述系统(5)还包括至少一个如权利要求9所述的解码器(25),用于对编码数据(70,E2)进行解码,生成解码数据(75,D3)。
17.一种在如权利要求16所述的数据通讯系统(5)中对数据进行通讯的方法,所述方法使用如权利要求5所述的方法与如权利要求15所述的方法的组合。
CN201310495311.5A 2012-10-22 2013-10-21 编码器、解码器及编码方法、解码方法 Active CN103780909B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
GB1218942.9A GB2507127B (en) 2012-10-22 2012-10-22 Encoder, decoder and method
GB1218942.9 2012-10-22
EP13003859.9 2013-08-02
EP13003859.9A EP2723071A1 (en) 2012-10-22 2013-08-02 Encoder, decoder and method

Publications (2)

Publication Number Publication Date
CN103780909A CN103780909A (zh) 2014-05-07
CN103780909B true CN103780909B (zh) 2018-08-24

Family

ID=47359259

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310495311.5A Active CN103780909B (zh) 2012-10-22 2013-10-21 编码器、解码器及编码方法、解码方法

Country Status (10)

Country Link
US (1) US20140112589A1 (zh)
EP (1) EP2723071A1 (zh)
JP (1) JP2014087058A (zh)
KR (1) KR101687865B1 (zh)
CN (1) CN103780909B (zh)
BR (1) BR102013027082A2 (zh)
GB (1) GB2507127B (zh)
IN (1) IN2013MU03246A (zh)
RU (1) RU2567988C2 (zh)
TW (1) TWI511528B (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2528460B (en) * 2014-07-21 2018-05-30 Gurulogic Microsystems Oy Encoder, decoder and method
CN107251438B (zh) * 2015-02-16 2020-10-30 三菱电机株式会社 数据压缩装置及方法、数据解压缩装置及方法和记录介质
KR102477264B1 (ko) * 2015-09-22 2022-12-13 삼성전자주식회사 텍스쳐를 처리하는 방법 및 장치
AU2015410435B2 (en) * 2015-09-30 2021-06-17 Razer (Asia-Pacific) Pte. Ltd. Information encoding methods, information decoding methods, computer-readable media, information encoders, and information decoders
US10395356B2 (en) * 2016-05-25 2019-08-27 Kla-Tencor Corp. Generating simulated images from input images for semiconductor applications
US10559093B2 (en) * 2018-01-13 2020-02-11 Arm Limited Selecting encoding options
CN109768959B (zh) * 2018-12-06 2021-02-09 成都路行通信息技术有限公司 一种gnss设备高频采样下数据包压缩和解压的方法
CN109788293A (zh) * 2019-01-30 2019-05-21 郑州云海信息技术有限公司 一种视频编解码系统和方法
CN117714685A (zh) 2019-06-18 2024-03-15 Lg 电子株式会社 图像解码方法和装置
CN111858391A (zh) * 2020-06-16 2020-10-30 中国人民解放军空军研究院航空兵研究所 一种数据处理过程中优化压缩存储格式的方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101064848A (zh) * 2006-04-27 2007-10-31 索尼株式会社 图像数据处理装置与方法
CN101150719A (zh) * 2006-09-20 2008-03-26 华为技术有限公司 并行视频编码的方法及装置
CN101668160A (zh) * 2009-09-10 2010-03-10 深圳华为通信技术有限公司 视频图像数据处理方法、装置及视频会议系统及终端

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5544286A (en) * 1993-01-29 1996-08-06 Microsoft Corporation Digital video data compression technique
JPH09505188A (ja) * 1993-11-15 1997-05-20 ナショナル・セミコンダクター・コーポレイション 4分木構造walsh変換符号化
DE4421657A1 (de) * 1994-02-18 1996-02-01 Team Dr Knabe Ges Fuer Informa Verfahren zum Erzeugen einer Videoszene
JPH1051642A (ja) * 1996-07-31 1998-02-20 Fuji Xerox Co Ltd 画像処理装置
JPH11164150A (ja) * 1997-11-27 1999-06-18 Ricoh Co Ltd 画像処理装置
US6816618B1 (en) * 1998-03-03 2004-11-09 Minolta Co., Ltd. Adaptive variable length image coding apparatus
US6151409A (en) * 1998-03-13 2000-11-21 National Science Council Methods for compressing and re-constructing a color image in a computer system
SE521021C2 (sv) * 1998-06-18 2003-09-23 Ericsson Telefon Ab L M Förfarande och anordning vid överförande av bilder
US6567559B1 (en) * 1998-09-16 2003-05-20 Texas Instruments Incorporated Hybrid image compression with compression ratio control
US7058218B1 (en) * 1998-09-28 2006-06-06 Silicon Graphics, Inc. Method of and apparatus for compressing and uncompressing image data
EP1170956A3 (en) * 2000-06-06 2004-08-04 Kabushiki Kaisha Office Noa Method and system for compressing motion image information
US7206453B2 (en) * 2001-05-03 2007-04-17 Microsoft Corporation Dynamic filtering for lossy compression
US7027647B2 (en) * 2001-12-31 2006-04-11 Hewlett-Packard Development Company, L.P. Coder matched layer separation for compression of compound documents
US7606429B2 (en) * 2005-03-25 2009-10-20 Ati Technologies Ulc Block-based image compression method and apparatus
US7505624B2 (en) * 2005-05-27 2009-03-17 Ati Technologies Ulc Block-based image compression method and apparatus
JP2007312126A (ja) * 2006-05-18 2007-11-29 Toshiba Corp 画像処理回路
JP2008283394A (ja) * 2007-05-09 2008-11-20 Matsushita Electric Ind Co Ltd 通信装置及び通信用集積回路
CN100542298C (zh) * 2007-09-29 2009-09-16 中国科学院计算技术研究所 一种柱面全景视频编码的块尺寸计算方法和传输方法
CN101615986A (zh) * 2008-06-27 2009-12-30 华为技术有限公司 一种数据传输方法、装置及通信系统
CN101420614B (zh) * 2008-11-28 2010-08-18 同济大学 一种混合编码与字典编码整合的图像压缩方法及装置
RU2420021C2 (ru) * 2009-03-24 2011-05-27 Корпорация "САМСУНГ ЭЛЕКТРОНИКС Ко., Лтд." Способ сжатия изображений и видеопоследовательностей
FI127117B (fi) * 2009-06-17 2017-11-30 Gurulogic Microsystems Oy Kuvaprosessoija ja tietokoneohjelma
CN101848224B (zh) * 2010-05-26 2012-11-14 中国科学技术大学 一种对等网络流媒体网络编码方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101064848A (zh) * 2006-04-27 2007-10-31 索尼株式会社 图像数据处理装置与方法
CN101150719A (zh) * 2006-09-20 2008-03-26 华为技术有限公司 并行视频编码的方法及装置
CN101668160A (zh) * 2009-09-10 2010-03-10 深圳华为通信技术有限公司 视频图像数据处理方法、装置及视频会议系统及终端

Also Published As

Publication number Publication date
RU2013144665A (ru) 2015-04-20
KR20150053830A (ko) 2015-05-19
JP2014087058A (ja) 2014-05-12
GB2507127B (en) 2014-10-08
IN2013MU03246A (zh) 2015-07-10
BR102013027082A2 (pt) 2014-10-14
EP2723071A1 (en) 2014-04-23
GB2507127A (en) 2014-04-23
TW201417585A (zh) 2014-05-01
CN103780909A (zh) 2014-05-07
KR101687865B1 (ko) 2016-12-19
RU2567988C2 (ru) 2015-11-10
US20140112589A1 (en) 2014-04-24
GB201218942D0 (en) 2012-12-05
TWI511528B (zh) 2015-12-01

Similar Documents

Publication Publication Date Title
CN103780909B (zh) 编码器、解码器及编码方法、解码方法
US9245353B2 (en) Encoder, decoder and method
CN103596009B (zh) 解码器及解码方法
CN1549988A (zh) 以无损的方式编码数字图像数据的设备和方法
Nageswara et al. Image compression using discrete cosine transform
Wiseman Burrows-wheeler based JPEG
JP2006502604A (ja) 任意形状オブジェクトの画像圧縮方法
US5764808A (en) Method and device for compact representation of a discrete region contour
US9479792B2 (en) Apparatus and method for compression of image data assembled into groups
George et al. Image compression based on wavelet, polynomial and Quadtree
CN105556850B (zh) 编码器、解码器及其运行方法
EP1324618A2 (en) Encoding method and arrangement
Poolakkachalil et al. Comparative analysis of lossless compression techniques in efficient DCT-based image compression system based on Laplacian Transparent Composite Model and An Innovative Lossless Compression Method for Discrete-Color Images
CN100566419C (zh) 以无损的方式编码数字图像数据的设备和方法
Mohta et al. Image compression and gamma correction using DCT
Kumar et al. An image compression algorithm for gray scale image
Kumar et al. Aggrandize Bit Plane Coding using Gray Code Method
Kaur et al. IMAGE COMPRESSION USING DECISION TREE TECHNIQUE.
JP4331992B2 (ja) 画像符号化方法,画像復号方法,画像符号化装置,画像復号装置,それらのプログラムおよびそれらのプログラム記録媒体
Hu et al. On a predictive scheme for colour image quantization
Koc et al. Lossless compression of dithered images with the pseudo-distance technique
Jain et al. A image comparative study using DCT, fast Fourier, wavelet transforms and Huffman algorithm
CN113422964A (zh) 一种串长度参数编解码方法和装置
Bhagyashree Image compression using AMBTC technique
Liu et al. Digital Image and Video Compression Techniques

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
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20220217

Address after: Holland Ian Deho Finn

Patentee after: KONINKLIJKE PHILIPS N.V.

Address before: No. 34, Li Nan Road, Turk City, Finland, zip code 20100

Patentee before: GURULOGIC MICROSYSTEMS OY