CN103873863B - 编码器、解码器以及编码方法、解码方法 - Google Patents

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

Info

Publication number
CN103873863B
CN103873863B CN201310670963.8A CN201310670963A CN103873863B CN 103873863 B CN103873863 B CN 103873863B CN 201310670963 A CN201310670963 A CN 201310670963A CN 103873863 B CN103873863 B CN 103873863B
Authority
CN
China
Prior art keywords
data
databases
reference value
database
decoder
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
CN201310670963.8A
Other languages
English (en)
Other versions
CN103873863A (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.)
Gurulogic Microsystems Oy
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 CN103873863A publication Critical patent/CN103873863A/zh
Application granted granted Critical
Publication of CN103873863B publication Critical patent/CN103873863B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/02Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using spectral analysis, e.g. transform vocoders or subband vocoders
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/008Vector 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/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/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • 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/124Quantisation
    • 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/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • 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
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/236Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/434Disassembling of a multiplex stream, e.g. demultiplexing audio and video streams, extraction of additional data from a video stream; Remultiplexing of multiplex streams; Extraction or processing of SI; Disassembling of packetised elementary stream

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Spectroscopy & Molecular Physics (AREA)
  • Computational Linguistics (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Acoustics & Sound (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供编码器、解码器以及编码方法、解码方法。编码方法包括:将源数据的部分与数据库中的元素(E)进行匹配,元素(E)表示相应数据块,记录参考值(R),参考值(R)把源数据的部分相关于(E);把参考值(R)包括于编码输出数据中;把源数据分成具有唯一区域标识符(U)的区域;在区域中提取样本,在其基础上计算参考值(R);检查参考值(R)是否已经被存储在数据库中,在未被事先存储情况下,将一个新的元素(E)存储于数据库中。解码方法包括:接收包括参考值(R)的编码数据;从编码数据中解码参考值(R);从数据库访问元素(E);生成数据块以组成解码输出数据。

Description

编码器、解码器以及编码方法、解码方法
技术领域
本发明涉及编码器,用于编码源数据以生成相应的编码数据,源数据例如是捕获的图像数据和/或音频数据。本发明还涉及解码器,用于对编码数据进行解码,以生成相应的解码数据,例如表示源数据的解码数据。编码器和解码器可以使用一个或多个数据库,数据库包括信息,该信息与编码数据一起在解码器处被处理以生成解码数据;所述一个或多个数据库可以位于一个或多个数据服务器。此外,本发明还涉及对源数据进行编码以生成相应的编码数据的方法。本发明还涉及对编码数据进行解码以生成相应的解码数据的方法,解码数据例如是表示源数据的解码数据。上述的方法可以包括使用一个或多个数据库,数据库包括信息,该信息与编码数据一起被处理以生成解码数据。进一步,本发明还涉及记录在非暂时性机器可读数据存储介质上的软件产品,其中,软件产品在计算硬件上执行,实现上述方法。
背景技术
现有技术对源数据的编码,例如当前对捕获的图像数据进行MPEG编码,包括处理源数据,将一个或多个变换应用于源数据,以将源数据变换成编码数据。对编码数据的解码,包括处理编码数据,将一个或多个逆变换应用于编码数据,以将编码数据变换成相应的解码数据,例如表示源数据的解码数据。这种编码可以用于对源数据进行压缩,如,为了减小其数据大小以在数据载体上进行传输或存储。这种编码还可以用于当源数据被通过互联网这样的传输介质进行传输时提高其安全性。这种编码器和解码器通常被实现成独立完整的处理单元,例如嵌入于数字相机、DVD播放器以及类似的消费产品中。但是,随着当前数据处理设备的互联性的提高,出现了更近的做法,即,把编码器和解码器设计成通过使用软件产品来实现,这样,它们就可以被重新配置,例如,新近开发或升级的编码变换被用来生成编码数据,解码器可以被适配成能够处理这样的编码数据。
公开的美国专利US4553171描述了一种方法,它参考一个序列的码字来数字地打印数字图像,码字表示原始图像的像素块。把原始图像分成大小一致的像素块以对其编码。每个像素块被赋以一个唯一的标识,除非它与先前扫描的任何块是一样的。一样的像素块被赋以同样的标识。码字表示标识,标识表示像素块,像素块表示原始图像。当要打印原始图像时,标识被顺序地扫描,相应的像素块被顺序地存储在缓存器中,从而调制打印机以生成原始图像的打印输出。这样,原始图像被打印自包括标识的数据,标识包括块索引号,它参考存储有像素块的表达的某种形式的数据库。
美国专利US4013828描述了一种处理图像的方法,其中,图像被扫描并通过抖动处理处理成为具有预定大小的图像元素组。每个图像元素组对应于位于异地的显示板的相应的一组单元。当每个图像元素组被扫描时,由将抖动图像比特对应于图像元素组的对应关系所代表的一种模式被与存储于第一存储器中的模式库进行比对。如果所述模式不存在于第一存储器的模式库中,它被赋予一个码字并进入存储器。模式和它的码字都被传输给位于异地的显示板,在那里,它们被存储于第二存储器。然后,第二存储器被访问,对应于扫描图像的单元组中的各单个单元按照存储于第二存储器中的模式被激活。如果扫描模式与已经存储于第一存储器中的模式相同,那么,只有与该模式相关的码字被传输至异地,从而减少第一存储器与第二存储器之间的数据流量,就是说,通过再利用已经传送到第二存储器的数据来减少数据流量。但是,在传统意义上,该方法不直接压缩数据。
公开的英国专利GB2362055描述了一种对图像进行编码的方法,该方法包括:
(a)把图像分成图像块;
(b)对图像块进行编码,编码的方式是,图像块与已经存在于数据库中的图像块进行比较,从数据库中选择一个已经存在的块,该已经存在的块与步骤(a)中的图像块中相应的一个匹配足够好;
(c)参考代表已经存在的块的码,对图像块进行编码。
该方法使用了一个码库,即,数据库。但是,由于与数据库元素相应的数据彼此间没有联系,在数据库中执行搜索以发现匹配是困难的,随着数据库大小的增大,这也需要可观的计算资源。相反,当数据库小的时候,图像块与已经存在于数据库中的块的匹配程度要打折扣,这导致基于此方法生成的编码数据来构造一个图像时难以达到满意的质量水平。不过,该方法包括在无法发现足够好的匹配时生成新的元素,新元素与标识它的一个参考值被一同传送。
视频、图像、图形、音频等数字数据的使用逐年增长。由于这些应用,被存储和传输的数据量也随着时间的累积快速增长,而且,被存储和传输的数据的这种增长也需要硬件设备的更多资源,例如,需要更多的电力资源用于提供更多的处理能力、需要更大的通讯传输带宽。公开的美国专利申请US2010/322301(申请人:古如罗技微系统公司)描述了一种图像发生器,它的技术方案是关于如何利用数据库来节省字节和生成不同的图像。尽管如此,仍需要一种编码器和解码器,基于更先进的数据库的使用,操作用于以更有效的方式传送各种不同类型的数据库,以与视频、图像、图形、音频内容等各种数字数据一同使用。
发明内容
本发明的目的之一是,提供一种改进的方法,用于对源数据进行编码以生成相应的编码输出数据,以及提供用于实现对源数据编码的方法的编码器,源数据可以是捕获的图像数据、音频数据等。
本发明的目的还在于提供一种对编码数据进行解码以生成相应的解码输出数据的解码器。
根据本发明的第一方面,提供一种对源数据进行编码以生成供传输或存储的相应的编码输出数据的方法,其中,源数据包括以下至少之一:音频数据、图像数据、视频数据、图形数据、多维数据、测量数据,所述方法包括:
(a)将源数据的一个或多个部分与一个或多个数据库中一个或多个元素(E)进行匹配,其中,一个或多个元素(E)表示相应的一个或多个数据块,记录参考值(R),参考值(R)把源数据的一个或多个部分相关于一个或多个匹配的元素(E);
(b)把参考值(R)包括于编码输出数据中,以及一个或多个数据库和/或标识一个或多个数据库的信息中;
所述方法还包括:
(c)把源数据分成具有唯一区域标识符(U)的区域;
(d)在区域中提取区域特定的(area-specific)样本,在所述样本的基础上计算相应的参考值(R);
(e)检查获取自应用于源数据的计算的参考值(R)是否已经被存储在一个或多个数据库中或被传输;存储和/或传输参考值(R)或者压缩状态的参考值(R)于编码数据中,以唯一地标识元素(E);或者,存储和/或传输被编码的和/或初始的源数据于编码数据中,并可选地,在参考值(R)未被事先存储进一个或多个数据库中的情况下,将其作为一个新的元素(E)存储于一个或多个数据库中。
本发明的优点在于,它使得编解码器能够取得解码视频、图像、图形和音频内容的高质量,并且它所使用的要通讯的数据比特与已知的现有编解码器相比更少。
在步骤(c)中,唯一区域标识符(U)唯一地描述数据块的大小、形状和位置。可选地,所述的大小是固定的大小,如32数据值、8×8数据值或者是取决于数据内容的类型的大小,例如以数据块乘数据块表示的大小。区域标识符(U)或者其信息可以是被传送的或者是被预置的。
关于所述步骤(d)中的取样,在计算参考值(R)时可能会使用数据的所有样本或者只是其中的一部分。而且,可以只使用样本的一部分,以取得更快的执行以及在所选择的样本的相应区域的更大的精度。在计算参考值(R)时还可以使用样本的权重,以取得与等权重时相比更期望的效果。采样的方法可以根据个案的需要而选择,例如,需要提高鲁棒性或者增强数据的特性。
参考值(R)可以有如下的解释:
(i)为块/包计算几个数据值是可行的;其中的一个可以是整个块/包的数据值的计算得的参考值(R),此外还有子块/包的数据值的一个或多个计算得的参考值(R);
(ii)元素的参考值可以包括多个部分,如幅度值、标准方差、均值、最小值、最大值、散列值(hash)、索引等;
(iii)参考值可以用不同的精度来计算,例如,以存在于要被编码的数据中的空间细节为变量的方程。
可选地,所述方法包括采用一个或多个零平均值数据库,用来实现一个或多个数据库。零平均值数据库采用一个或多个翻译的或变换的数据值,其中,一个或多个翻译的或变换的数据值与它们在被翻译或变换之前的相应的数据值相比,使用较少的数据存储容量。例如,一个零平均值数据库的生成方式是,计算一个数据库中的一个给定数据库元素中的所有数据值的平均值,从数据值中减去平均值,使得翻译的或变换的数据值相对于一个零值变化。这样,一个或多个零平均值数据库在大小方面小些,当出现要将它们通过通讯网络进行通讯的需要之时,它们可以更有效地被压缩。一个零平均值数据库的数据库元素很少是一个零平均值。但是,它还是一个数据库元素,通过要么使其增加1要么使其减少1,可以获得一个新的平均值,新的平均值比那个数据库元素的平均值离零更远,或者至少与那个数据库元素的平均值离零一样远。它的原因如下:给定的初始数据块的平均值通常不是整数,而是个实数,即一个浮点数,因此,当整数部分被从平均值中减去,即,从元素的所有数据值中减去,那么,小数部分要么是在(-0.5...0.5]的范围,要么是在[-0.5...0.5)的范围。
零平均值数据库的目的是在一个或多个数据库中节省空间,即存储器的更好使用,而不是在数据传输中节省空间。在实践中,当使用零平均值时,一个单个块的数据大小是增大的,因为,不再是原来的动态范围,需要一个额外的比特来表示零平均值,为了每个元素值,符号比特(sign bit)是必需的。通过把一个预设的基值使用于零平均值数据库元素,实际使用符号比特的需要可以被从数据库存储中消除。数据库元素值的动态可以通过量化而减小,量化会损失一些信息。查找表可以被用于动态压缩,这种方式也导致信息损失。但是,有了零平均值元素,当平均值变化的时候,没有新的元素需要被插入数据库,而是同样的元素可被再使用,因此一个元素适合于所涉及的动态范围内的所有的平均值。如果数据库自己被传送,那么只有一个元素需要被传送,而不是例如256个元素(具有8比特动态的)。即是说,参考的平均值的变化不把新的元素插入数据库,而是,平均值与数据库中的元素一起被使用,构造最终的数据块。
可选地,一个或多个数据库处于一个或多个服务器,例如,一个或多个服务器属于一个第三方,属于一个或多个服务提供商。一个或多个数据库的使用倾向于需要付费,例如订阅费和/或按次收取使用费,付费才能访问一个或多个数据库。
当实现所述方法时,一个或多个数据库包括一个或多个静态数据库和/或非动态数据库。
参考值(R)包括在数据样本基础上被计算的值,但它还包括其它部分。参考值是一个不精确的概念。换言之,计算参考值的目的是为了快速搜索,所以,有许多参考值,它们的精度也可以很大或者很小。
关于传送的参考值(R),这是指在编码器和解码器之间单个地标识一个块的值,正是在传送的参考值(R)的基础上,元素被存储在数据库中。对于静态数据库,传送的参考值(R)典型地包括一些量化的、或者更精确的、被用在搜索中的参考值(R),以及引用顺序数的一些值。对于动态数据库,传送的参考值(R)通常仅仅是一个值,该值描述该元素的构造的顺序以及它出现的概率。
静态数据库通常是不修改的,因此,在编码器和解码器,传送的参考值(R)对每个元素(E)总是同样的。另一方面,动态数据库不断地被改变;由于一些元素(E)变得更高使用概率,它的参考值(R)不断地减小,使得它可以更在效地被压缩。可以理解,尽管动态传送的参考值(R)包括与块的样本有关的部分,但它们不是强制性的。
关于搜索动态元素(E),有了已经为每个元素(E)的被构造的相应的参考值(R),该搜索还可以进一步被加速,所述相应的参考值(R)是从块样本构造的,块样本按好的精度被存储。按概率的某种顺序来存储元素(E),经常出现的元素(E)更快地被发现,这样,动态数据库中的搜索进一步被加速。由于静态数据库的被传送的参考值(R)包括上述的引用一个顺序数的部分,该部分,尤其如果它是几个比特长,也被动态地使用,如果期望这样的话,就像上述的动态数据库的被传送的参考值(R)一样。
在给定的静态数据库中这种动态通常不是期望的性能,因为在这种情况下,整个数据流需要被编码,从它的开始到被使用的比特位置,直到它能保证哪个元素可以在任何给定的情况下被引用。所以,静态数据库的一个非常主要的优点,即,它是无歧义的和清楚的,将可能会失去。稍微更好的压缩率被实现了,但同时,由参考值(R)的动态部分取得的、相关的在解码数据时的自由跳转(hopping),将可能会失去。
鉴于此,使用动态数据库是时间受限的,这种情况下,上述的那些数据中的跳跃的执行方式是使得解码在动态数据库的重设置点(resetting point)被重新开始。静态数据库的第二个优点是,在编码被启动之前它一直是已知的,因此,它的元素(E)通常不需要被传送到解码器,也不需要传送到编码器。换言之,存在参考值(R)、量化的参考值(R)、顺序数、以及传送的参考值(R)(即,索引),其包括前者的组合,其引用数据库中一个唯一的元素(E)。
当在编码器执行搜索,越来越多的精确参考值(R)可以被使用,多于从编码器传送给一个文件或者给解码器的。编码器还可以有利地为每个数据库存储参考值(R)的一个选择,尽可能地大和精确,从而保证搜索是快速和精确的,即,只需要少数的检查,但仍很少缺失一个最好的元素(E)。
所述方法使用以下至少之一:
(a)通过从一个或多个动态数据库中选择元素,生成一个或多个静态数据库;
(b)存在于源数据的一个或多个部分中的信息被处理,生成一个或多个元素(E),以被包括在一个或多个动态数据库中;
(c)从一个或多个更早的数据库中选择元素(E),把它们包括在一个或多个动态数据库中,以与编码数据一起使用。
本发明的益处包括减小数据存储中数据的大小,例如,在数据存储器中、数据载体中、以及类似的,它节省计算资源、电能消耗、以及数据载入时间。
在所述方法中,全世界的互联网服务提供商都可以在客户局域网(LAN)提供更快的静态数据库服务器,从而保证更有效的数据传送,因为,在操作中,只有相对小量的新数据块被发送,现有的数据库参考数据块从给定的LAN中的静态数据库服务器中被接收。所述方法实现于编码器中,编码器通过通讯网络连接于一个或多个数据库。一个或多个数据库中的至少一个处于通讯网络的LAN中,与编码器的彼此类似。可选地,一个或多个数据库托管于一个或多个数据服务器。数据库服务器的实现方式是使它空间地接近实现了所述方法的编解码器,例如,实现于空间上与之接近的存储器中。
在所述方法中,参考值(R)包括被分开编码以被包括在编码数据之中的多个部分。多个部分中的一个或多个,在被编码以被包括于编码数据之中之前,被组合。所述的多个部分有关于通过使用参考值(R)来访问的一个或多个数据块的方差V、平均值M、以及幅度A特性。
可以使用标准方差,而不是方差V,而且,更多可选的最小值、最大值、众数和中值被用作新的参考值(R)。关于最小值、最大值、和幅度,只有两个是需要的,第三个可以根据另两个来计算。此外,当要搜索一个完美的击中(hit),或者当希望在块的组合中以不同于使用顺序数据的方式把否则就具有类似的参考值(R)的块彼此区分开来,各种不同的散列值和CRC值也是有效的参考值(R)。这种方法的益处在于,散列值与CRC值可以从给定数据块的数据中被计算,因而它们不取决于传送的顺序。
所有的值都可以用在搜索中,且具有完整的精度,但是,当参考值(R)被传送或者元素(E)被存储在数据中,某些参考值按一定的精度被选择(0-n个项目),还有与顺序数相关的片断或部分,它们都清楚地无歧义地标识存储的数据库元素和它们的数据值。
被传送的参考值(R)的参数的精度和数量还取决于一个质量参数(Q)。例如,从静态数据库以好的质量传送的参考值(R)包括一个8比特平均值、一个8比特标准方差值、一个6比特幅度值、一个6比特最小值、和一个8比特顺序数;对于从静态数据库以差质量传送的参考值(R),一个7比特平均值、一个7比特标准方差值、一个5比特幅度值、和一个4比特顺序数就足够了。
对于动态数据库,从动态数据库以好的质量传送的参考值(R)包括一个顺序数,用例如16比特表示,对于差质量的情况,例如10比特就够了。存储的参考值(R)和用于搜索的参考值(R)可以用16比特来表示,用于它们的平均值和标准方差,连同用来描述数据的动态的信息,例如,8比特用于幅度、最小值、最大值、众数、中值。可以理解,依赖于数据的所有参考值(R)都是从解码数据块的样本中计算得来的,既在编码器也在解码器,因此,编码器和解码器都始终能够以同样的精度计算它们,并且以它们自己期望的精度来计算。
编码器需要完全的精度用于快速搜索,而且,编码器和解码器需要甚至那些已经被计算的值,至少具有传送所必需的精度,以至于数据库元素(E)可以被存储在正确的数据库地址,为后来之用,如被传送的参考值(R)所指示的那样。可以理解,参考值(R)的量化是压缩是不同的事情,虽然二者都减小编码数据的量。压缩是可恢复的,而量化按一种期望的方式损失信息,为了使得值更容易使用,它明显地减小要被传送的数据库的大小和一定数据的数据。
在所述方法中,参考值(R)包括用于指导在一个或多个数据库中搜索相应的一个或多个元素(E)的信息。
在所述方法中,一个或多个元素(E)包括一个或多个参数,从这些参数,一个或多个相应的数据块可以通过内插值来计算。此外,内插值、其它计算方法如抽取(decimation)、外插值、剪裁(cropping)等都可能采用。这些涉及所有这样的数据库元素(E),它们通过向下或向下的缩放来被使用,或者通过把值放大成更大的块,或者通过仅使用元素的一个更小的片断。外插值和剪裁自然也需要一比特的信息,用来表示外插值发生在哪里,在块的哪一部分来执行剪裁;但内插值和抽取可以根据要被解码的块的大小与数据库元素(E)的块的大小之间的关系自动地工作。用于内插值和剪裁的方法可以被存储和/或传送给编码数据,或者它们可以被预选。
可选地,在所述方法中,一个或多个动态数据库在一个有限的时间期间被生成,在所述期间之后,它们被删除。
所述方法包括,按照数据库内访问元素(E)的频率的一个方程,构造一个或多个数据库,使得更经常被访问的元素(E)可以通过使用参考值(R)被更快地访问。
在所述方法中,当不能找到源数据的一个或多个部分与一个或多个静态数据库中的一个或多个元素(E)之间的匹配,或者当元素(E)在它们的一个或多个传送的参考值(R)中使用太多的比特时,生成一个或多个动态数据库的元素(E)。
在所述方法中,源数据的一个或多个部分与一个或多个数据库的一个或多个元素(E)之间的匹配是在一个质量阈值内成立,其中,质量阈值在参考值(R)的生成过程中是动态改变的。
在所述方法中,一个或多个参考值(R)被用于使用由一个或多个参考值(R)定义的一个或多个元素(E)来重构源数据的一个或多个相应部分,其中,在重构的一个或多个部分与源数据的相应的初始的一个或多个部分之间确定误差,所述误差被编码并被包括在编码数据中。
在所述方法中,对应于一个或多个元素(E)的一个或多个数据块是以下至少之一:1维、2维、3维、当被直观显示时是多边形的、当被直观显示时是矩形的、当被直观显示时是椭圆的、当被直观显示时是圆的、当被直观显示时是细长的、当被直观显示时是三角形的。
在所述方法中,第一数据库的一个或多个元素(E)可操作用于引用存在于一个或多个数据库的一个或多个其它的数据库中的元素(E),换言之,第一数据库的一个元素(E)可以引用第二数据库的一个元素(E),一个数据块衍生自第二数据库。
在所述方法中,被包括在编码数据中的一个或多个参考值(R)是压缩的形式。
在所述方法中,取决于存在于源数据中内容的性质,一个或多个数据库被选择和/或在大小方面不同。
根据本发明的第二方面,提供编码器,用于对源数据进行编码以生成相应的编码数据(30),其中,所述编码器包括:
(a)第一数据处理硬件,用于将源数据的一个或多个部分与一个或多个数据库中一个或多个元素(E)进行匹配,其中,一个或多个元素(E)表示相应的一个或多个数据块,记录参考值(R),参考值(R)把源数据的一个或多个部分相关于一个或多个匹配的元素(E);
(b)第二数据处理硬件,用于把参考值(R)包括于编码数据中,以及一个或多个数据库和/或标识一个或多个数据库的信息中;
其中,源数据包括以下至少之一:音频数据、图像数据、视频数据、图形数据、多维数据、测量数据;
其中,所述编码器操作用于:
(c)接收一个或多个数据块形式的源数据,把所述一个或多个数据块分成具有唯一区域标识符(U)的区域;
(d)在一个或多个数据块的区域中提取区域特定的样本,在所述样本的基础上计算相应的参考值(R);
(e)检查作为应用于一个或多个数据块的计算的结果的参考值(R)是否已经被存储在一个或多个数据库中或被传输;存储和/或传输被计算得的参考值(R)或者压缩状态的参考值(R)于编码数据中,以唯一地标识元素(E);或者,存储和/或传输被编码的和/或初始的源数据于编码数据中,并可选地,在参考值(R)未被事先存储进一个或多个数据库中的情况下,将其作为一个新的元素(E)存储于一个或多个数据库中。
可选地,在所述编码器中,一个或多个数据库包括一个或多个静态数据库和/或一个或多个动态数据库。
可选地,所述编码器使用以下至少之一:
(a)通过从一个或多个动态数据库中选择元素,生成一个或多个静态数据库;
(b)存在于源数据的一个或多个部分中的信息被处理,生成一个或多个元素(E),以被包括在一个或多个动态数据库中;
(c)从一个或多个更早的数据库中选择元素(E),把它们包括在一个或多个动态数据库中,以与编码数据一起使用。
可选地,编码器通过通讯网络连接于一个或多个数据库,其中,一个或多个数据库中的至少一个处于通讯网络的局域网(LAN)中,与编码器的彼此类似。使用一个或多个数据库服务器来实现一个或多个数据库。
可选地,在所述编码器中,第一数据处理硬件生成参考值(R),包括被分开编码以被包括在编码数据之中的多个部分。编码器在对多个部分中的一个或多个进行编码以被包括于编码数据之中之前,组合多个部分中的一个或多个。
可选地,在所述编码器中,参考值(R)包括用于指导在一个或多个数据库中搜索相应的一个或多个元素(E)的信息。
可选地,在所述编码器中,参考值(R)包括参数,从这些参数,一个或多个相应的数据块可以通过内插值来计算。可选地,或替代地,在编码器中,抽取、外插值、剪裁也被采用。这些计算有益地涉及所有这样的数据库元素(E),它们通过向下或向下的缩放来被使用,或者通过把值放大成更大的块,或者通过仅使用元素的一个更小的片断。外插值和剪裁额外地需要关于外插值发生在哪里的信息、关于在块的哪一部分来执行剪裁的信息;但内插值和抽取可以根据要被解码的块的大小与数据库元素的块的大小之间的关系自动地工作。可选地,用于内插值和剪裁的方法可以被存储和/或传送给编码数据,或者它们可以被预选。
可选地,在所述编码器中,一个或多个动态数据库在一个有限的时间期间被生成,在所述期间之后,它们被删除。
可选地,所述编码器可操作用于,按照数据库内访问元素(E)的频率的一个方程,构造一个或多个数据库,使得更经常被访问的元素(E)可以通过使用参考值(R)被更快地访问。
可选地,在所述编码器中,当不能找到源数据的一个或多个部分与一个或多个静态数据库中的一个或多个元素(E)之间的匹配,或者当元素(E)在它们的传送的参考值(R)中使用太多的比特时,生成一个或多个动态数据库的元素(E)。
可选地,在所述编码器中,源数据的一个或多个部分与一个或多个数据库的一个或多个元素(E)之间的匹配是由第一数据处理硬件在一个质量阈值内造成的,其中,质量阈值在参考值(R)的生成过程中是动态改变的。
可选地,在所述编码器中,第一数据处理硬件可操作用于使用一个或多个参考值(R),通过使用由一个或多个参考值(R)定义的一个或多个元素(E)来重构源数据的一个或多个相应的部分,其中,第一数据处理硬件可操作用于在重构的一个或多个部分与源数据的相应的初始的一个或多个部分之间确定误差,第二数据处理硬件可操作用于对所述误差进行编码并将他们包括在编码数据中。
可选地,在所述编码器中,对应于一个或多个元素(E)的一个或多个数据块是以下至少之一:1维、2维、3维、当被直观显示时是多边形的、当被直观显示时是矩形的、当被直观显示时是椭圆的、当被直观显示时是圆的、当被直观显示时是细长的、当被直观显示时是三角形的。
可选地,在所述编码器中,第一数据库的一个或多个元素(E)可操作用于引用存在于一个或多个数据库的一个或多个其它的数据库中的元素(E)。
可选地,在所述编码器中,被包括在编码数据中的一个或多个参考值(R)是压缩的形式。
可选地,在所述编码器中,第一数据处理硬件可操作用于根据存在于源数据中内容的性质,选择一个或多个数据库。
根据本发明的第三方面,提供一种对编码数据进行解码以生成相应的解码输出数据的方法,所述方法包括:
(a)接收包括参考值(R)、关于区域识别符的信息、和关于一个或多个数据库的信息的编码数据;
(b)从编码数据中解码参考值(R);
(c)按照参考值(R)的引导,从一个或多个数据库访问一个或多个元素(E),其中,一个或多个元素(E)代表一个或多个相应的数据块;
(d)生成一个或多个数据块以组成相应的总体的解码输出数据。
可选地,所述方法包括:
(e)在一个数据库中保留数据,其中,所述数据包括对应于参考值(R)的音频数据、图像数据、视频数据、图形数据、多维数据、测量数据中的至少一个;
(f)基于包括在编码数据中的关于区域识别符的信息,生成区域识别符(U);
(g)从编码数据中接收或恢复对应于一个或多个区域识别符(U)的参考值(R);
(h)基于为了相应的一个或多个区域识别符(U)的参考值(R),从数据库恢复对应于参考值(R)的数据;
(i)基于从数据库恢复的数据,生成一个数据块,基于区域识别符(U),所述数据块被组成总体的解码输出数据。
关于所述方法的步骤(c),需要注意,在解码器用于元素(E)的参考值(R)就是被用于传输的样子,即,被量化,且包括几个片断。对于同一个元素(E),可以存在几个参考值(R),因为参考值(R)可能同时在一个或多个动态数据库和/或一个或多个静态数据库中被使用。此外,好质量的数据块可能也被用于低质量的数据块。具有不同量化水平的参考值(R)的部分将产生块的不同参考值(R)。换言之,一个给定的元素(E)可能可选地具有几个参考值(R),但一个参考值(R)不能引用几个元素(E),除非它们存在于不同的数据库,或者它们被用于不同的质量,或者它们不包括元素(E)的这种特性,即,元素(E)能够清楚地无歧义地从几个选项中被选择。
例如,如果这样的元素(E)被用在平均值被省略的地方,那么,具有大的幅度、已经使用大的平均值被生成的这个块就可以被用作有小的平均值的块的否定(negation),而它仍然可以被用于这种具有大的平均值的块。如果试图在它们之间彼此切换,那么这将导致数值不在数据值的动态范围内,例如8比特的数据,对于它,没有均值、±8比特数据赋值(data-valued)数据库元素被使用。如果幅度值是200,存储的平均值1是220,使用的平均值2是30,那么,否定(negation)的使用或者不使用否定都是清楚地可推理得出的。这时,没有平均值的数据库元素的数据值可能是-170,它不能被用于与平均值2组合,但作为一个否定,所关注的数据值为+170将是有效的。所以,传送的参考值可以包含除了参考值片断或顺序号之外的其它信息,虽然实践中该其它信息通常是有利地作为一条单独的编码信息而被传送。例如,对于没有平均值的数据库,平均值自身就已经是一条一直必要的信息,它可以是参考值(R)的一部分,也可以是单独的编码信息插入。
相应地,如果期望同一个元素(E)包含旋转或翻转(rotated or flipped)的版本,那么为了不同的变化,可以在参考值(R)中有一个特殊的数字信息片断,或者,进行编码信息一个单独发送来表示这一信息。对于所有这些都共同的是,对于一个存储在数据库中的元素(E),可以产生不同的解码块,这取决于那些像平均值、旋转和翻转这样的参数是如何设置的,对于缩放、剪裁、外插值等也是类似的。
这些条信息的一部分是这样安排的,在已经接收到的其它信息的基础上,或者是在早先的解码块的基础上,正确的变化是能够推导出的,但是相应地,为了确定一个解码方法是无歧义的,它们的一部分将必须被发送,如果替代项的使用在解码器中允许的。例如,幅度与具有否定意义的平均值的关系在大幅度与小或大的平均值的情况下是推理成立的,但是,若非如此,它就是推理不成立的。相应地,在早先的解码块的基础上,基于连接性,通常可以推导出哪个旋转或翻转是正确的那个。但是,在推理不是无歧义地清楚的所有情况下,必须传送额外的信息,要么是作为参考值(R)的一部分,要么是作为单独的一条信息。
可选地,在所述方法中,一个或多个数据库包括一个或多个静态数据库和/或一个或多个动态数据库。
可选地,在所述方法中,一个或多个数据库的空间设置是,数据库位于被安排执行所述方法数据处理硬件的本地。可选地,一个或多个数据库被托管在一个LAN之中,LAN还包括所述数据处理硬件。
可选地,所述方法包括,从一个或多个静态数据库的一个或多个元素(E)和/或在编码数据中提供的信息,生成一个或多个动态数据库,其中,生成的一个或多个动态数据库用来对编码数据进行解码。
可选地,所述方法包括,从一个或多个元素(E)生成相应的一个或多个数据块,一个或多个数据块是以下至少之一:1维、2维、3维、当被直观显示时是多边形的、当被直观显示时是矩形的、当被直观显示时是椭圆的、当被直观显示时是圆的、当被直观显示时是细长的、当被直观显示时是三角形的。
根据本发明的第四方面,提供一种解码器,用于对编码数据进行解码以生成相应的解码数据,所述解码器包括:
(a)第一数据处理硬件,用于接收包括参考值(R)、关于区域识别符的信息、和关于一个或多个数据库的信息的编码数据;
(b)第二数据处理硬件,用于从编码数据中解码参考值(R);
(c)第三数据处理硬件,用于按照参考值(R)的引导,从一个或多个数据库访问一个或多个元素(E),其中,一个或多个元素(E)代表一个或多个相应的数据块;
(d)第四数据处理硬件,用于生成一个或多个数据块以组成相应的总体的解码输出数据。
可以理解,第一和第二数据处理硬件可以是同一个处理单元,也可以是分开的处理单元。类似地,可以有许多处理单元执行第一和/或第二处理硬件的功能。实现的可能性是无数的,不限于这里所描述的示例。
可选地,所述解码器被配置成用于:
(e)在一个数据参考值(R)中保留数据,其中,所述数据包括对应于参考值(R)的音频数据、图像数据、视频数据、图形数据、多维数据、测量数据中的至少一个;
(f)基于包括在编码数据中的关于区域识别符的信息,生成区域识别符(U);
(g)从编码数据中接收或恢复对应于一个或多个区域识别符(U)的参考值(R);
(h)基于为了相应的一个或多个区域识别符(U)的参考值(R),从数据库恢复对应于参考值(R)的数据;
(i)基于从数据库恢复的数据,生成一个数据块,基于区域识别符(U),所述数据块被组成总体的解码输出数据。
可选地,在所述解码器中,一个或多个数据库包括一个或多个静态数据库和/或一个或多个动态数据库。
可选地,在所述解码器中,一个或多个数据库的空间设置是,数据库位于解码器的数据处理硬件的本地。可选地,在解码器中,一个或多个数据库被托管在一个LAN之中,LAN还包括解码器的所述数据处理硬件。替代地,一个或多个数据库处于解码器中,例如,处于它的数据存储器中(RAM、ROM)。
可选地,所述解码器可操作用于,从一个或多个静态数据库的一个或多个元素(E)和/或在编码数据中提供的信息,生成一个或多个动态数据库,其中,生成的一个或多个动态数据库用来对编码数据进行解码以生成相应的解码数据。
可选地,所述解码器可操作用于,从一个或多个元素(E)生成相应的一个或多个数据块,一个或多个数据块是以下至少之一:1维、2维、3维、当被直观显示时是多边形的、当被直观显示时是矩形的、当被直观显示时是椭圆的、当被直观显示时是圆的、当被直观显示时是细长的、当被直观显示时是三角形的。
根据本发明的第五方面,提供一种编解码器,包括至少一个根据本发明的第二方面的用于对源数据进行编码以生成相应的编码数据的编码器,和至少一个根据本发明的第四方面的用于接收编码数据并对编码数据进行解码以生成相应的解码数据的解码器。
可选地,所述编解码器被包括进一个或多个消费电子产品,例如,个人计算机(PC)、视频记录仪、视频播放机、智能手机、游戏设备、科学仪器、医疗仪器、监视装置、安全装置、传感器和其它测量装置、以及数字相机。
可选地,所述编解码器的实现是使得至少一个编码器和至少一个解码器共享被包括在编码数据中的参考值(R)所引用的一个或多个数据库。
根据本发明的第六方面,提供记录在非暂时性机器可读数据存储介质上的软件产品,其中,软件产品在编码器的计算硬件上执行,实现本发明的第一方面的方法。
根据本发明的第七方面,提供记录在非暂时性机器可读数据存储介质上的软件产品,其中,软件产品在解码器的计算硬件上执行,实现本发明的第三方面的方法。
在不背离本发明的范围的情况下,本发明的特征还可以做各种组合。
附图说明
下面结合附图对本发明的实施例以例示的方式加以说明。
图1是本发明的编码器和解码器的示意图,它们共同组成一个编解码器;
图2是在图1的编解码器中一个元素被发送的示意图;
图3是在图1的编解码器内一个参考值的多个分别定义的部分被通讯的示意图。
在附图中,使用带下划线的数字来代表项目,所代表的项目位于下划线数据所处的位置或接近的位置。无下划线数字所表示的项目通过指示线与无下划线数字连接。
具体实施方式
在描述本发明的实施例时,采用表1所列出的缩写词。
表1:描述实施例所使用的缩写词
概括而言,如图1所示,本发明是关于用于对源数据20进行编码以生成相应的编码数据30的编码器10,和用于接收并解码相应的编码数据30以生成相应的解码数据60的解码器50,编码器10和解码器50共同构成编解码器5。解码器60是源数据20的呈现,源数据20例如可以是以下至少之一:音频、1维图像、2维图像、3维图像、视频内容、图形数据、捕获的音频、捕获的图像、捕获的视频、ASCII和二进制数据、以及测量数据和被生成的数据。编码器10和解码器50可操作用于使用一个或多个数据库100以对源数据20编码和对编码数据30解码。此外,一个或多个数据库100包括一个或多个静态数据库110和/或一个或多个动态数据库120,它们将在下文加以详述。可选地,一个或多个数据库110、120是通过一个或多个数据服务器来提供,数据服务器可以在空间上远离编码器10和解码器50。可选地,提供至少一个同样的数据库100共用于编码器10和解码器50。这样的安排使得多个拷贝的数据不需要在数据通讯网络之间可用,例如,在多个空间上分立的数据服务器上,以及被实现为数据服务器的对等网络,从而提供更大的数据安全性。可选地,一个或多个数据库100的安排是使得编码器10和解码器50均分别具有它自己的专用编码数据库和解码数据库,它们可被托管在一个或多个数据服务器。
可以理解,一个或多个数据库100可以以多种不同的方式来实现。当编码器10和解码器50的一个或多个需要来自一个或多个数据库100的信息,数据库100实现为一个或多个数据服务器,这些信息可以以直接的方式被提供,或者以间接的方式被提供。当以直接的方式提供时,编码器10和/或解码器50发送一个请求给数据服务器的一个或多个,请求其提供信息,然后,一个或多个数据服务器提供信息给编码器10和/或解码器50,如,加密信息、编码方式信息、解码方法信息、图像元素库等等。当以间接的方式提供时,编码器10和/或解码器50发送第一请求给服务器的一个或多个,作为响应,该一个或多个服务器提供关于在其那里有信息可用的一个或多个其它服务器的信息,然后,编码器10和/或解码器50发送第二请求给一个或多个其它数据服务器,请求其提供信息给编码器10和/或解码器50。可选地,关于数据服务器,可以采用多于两级的请求。可选地,第一请求和第二请求的至少一个是加密的,以防止未授权的编码和/或解码,如,防止未经授权的文件传送,这种未经授权的传送是当今音乐产业的一个主要问题。可选地,第一请求被发至在空间上处于异地的数据服务器,第一请求被发至在空间上处于更近距离的数据服务器。与第一请求相关的数据流量是中等的,因而容易被信息网络来接纳和处理。同是地,与响应第二请求相关的数据流量可能是可观的,因而便于在空间上接近编码器10和/或解码器50之处来接纳和处理。可选地,第一请求包括位置信息,表示编码器10和/或解码器50空间上或者在通讯网络内设置在哪里,对第一请求的响应包括信息,该信息是关于能够提供相关的编码和/或解码信息给编码器10和/或解码器50的、与编码器10和/或解码器50空间最近的合适的数据库、或者最近的适于连接的数据库,如数据服务器,的信息。可选地,对第一请求的响应为编码器10和/或解码器50提供能够供应合适信息的多个可能的数据库的选择,所述的选择是基于一个或多个技术提标,如,最快的可能的数据连接、耗能最低的数据连接、价格最低的数据连接,等。虽然这里阐述了第一请求和第二请求的情况,可以理解,在需要时,多于两个的请求是可以采用的,如多个请求,使得未经授权者更难以对编码内容进行未授权的解码。
可选地,从一个中心位置发布一个或多个访问码,所述访问码使得解码器50能够获得用于对它那里的内容数据进行解码的数据,这样,多个这样的解码器大致在同时被使能,这适用于一部新的电影大片(block-buster film)通过通讯网络被发布和传送的情形,该电影之发布和允许观赏需要被协调和控制。这种控制还使得发布之后对视频内容的审查能够实现,这可以用于例如发生了法庭禁令或者著作权侵权的情形。
本发明的实施例有益地采用美国专利申请US2010/322301(名称:图像处理器、图像发生器及计算机程序,发明人:Tuomas 申请人:Gurulogic MicrosystemsOy,2009年)所描述的图像发生器的技术,其内容在此被包括以作为参考。但本发明使用该技术,也使用其它技术,只要它们是有效的和通用的。
在本发明的实施例中,当编码数据30从编码器10被发送给解码器50时,生成了一个或多个动态数据库120及其相关元素E。而且,一个或多个静态数据库110被生成自一个或多个动态数据库120,或者被发送于编码数据30被发送给解码器50之前,或者被预安装于解码器50之中。
当数据库元素E被发送给解码器50,它们可以与一个或多个参考值R一起被发送,或者部分地与参考值R一起,或者没有参考值,这取决
于所使用的编码算法。编码器10和解码器50可以被操作用于计算给定的数据库元素E的所有的参考值,或者一部分参考值,直接从要被存储于给定数据库元素E中的数据来计算,换言之,以重构数据块的方式来计算。关于给定的数据库元素E,当给定的数据库元素E的至少一部分计算得的参考值R被在编码器10和解码器50之间发送时,可以实现一个错误检测机制。
编码器10和解码器50用于编码和解码各自的数据,这些数据的至少一部分是按照已知的编码标准被编码的,这些标准被列于表2。
表2:与在发明的实施例一同使用的编码标准
JPEG JPEG MVC Lucid AAC
JPEG2000 MP3 GIF FLAC
JPEG XR H.261 PNG Ogg Vorbis
MPEG-1 H.263 TIFF Speex
MPEG-2 H.264 BMP Opus
MPEG-4 WebP VC-1 7Zip
MPEG-4 AVC VP8 Theora HVEC
VP9 RAR ZIP
在图1中,用于一个或多个数据库100的元素E的数据被编码,以从编码器10发送给解码器50,使得数据库元素E的发送与编码图像数据或其它类型的数据的发送是同时的,所述的其它类型的数据例如音频数据、视频数据、图形数据、多维数据、测量数据、文本数据、二进制数据。通常,元素E被生成自编码数据,即解码后。来自一个或多个数据库100的元素E的编码使得编码器10和解码器50之间有效的数据库传送得以实现,即,使得用来实现解码器50的设备中有效地存储数据库100。如果采用了一个或多个静态数据库110,编码器10和解码器50被使得知晓可用的数据库,或者,编码器10和解码器50彼此通讯以确定哪个数据库是可用的。可选地,在编码数据被从编码器10通讯给解码器50之前,编码器10和解码器50二者均可以通过互相对话的方式来定义哪个数据库将要被使用,其中,数据库被用于在解码器50对编码数据30进行解码以生成解码数据60。
编码器10和解码器50被使用于各种行业的大范围的实际应用中,这些应用被列于表3。
表3:编码器10和解码器50的实际应用
有益地,表3所列的这些应用使用下述的专利所描述的编码器:英国专利申请GB1214414.3、其同族美国专利申请US13/584005、以及相应的欧洲专利申请EP13002521,它们在此被一并作为参考;这些应用还使用下述的专利所描述的解码器:英国专利申请GB1214400.2、其同族美国专利申请US13/584047、以及相应的欧洲专利申请EP13002520,它们在此被一并作为参考。下面这些专利在此也被一并作为参考:专利申请GB1218942.9、其相应同族欧洲专利申请EP13003859、GB1303658.7、GB1303661.1、GB1303660.3、GB1312815.2、GB1312818.6。
概括而言,图1的编解码器5使得被从编码器10通讯到解码器50的数字数据,如视频、图像、图形和音频内容,大部分地或全部地组建自数据库元素E,而数据库元素E是产生自一个或多个数据库100。所采用的一个或多个数据库100取决于以下因素,但不限于以下因素:
(i)所采用的一个或多个数据库100具有不同的大小,如,基于正从编码器10发送至解码器50的数据内容的类型;
(ii)所采用的一个或多个数据库100取决于所需要的在解码器50数据重构的质量;
(iii)所采用的一个或多个数据库100取决于要被从编码器10发送到解码器50的数据的大小;
(iv)所采用的一个或多个数据库100取决于可用于从编码器10向解码器50发送编码数据30的带宽;
(v)所采用的一个或多个数据库100取决于在一个或多个数据库100与解码器50和/或编码器10之间的可用带宽;
(vi)所采用的一个或多个数据库100取决于在一个或多个数据库100与解码器50和/或编码器10之间的响应时间;
(vii)所采用的一个或多个数据库100取决于从那里存取数据的成本,即费用价格;
(viii)所采用的一个或多个数据库100取决于从那里供应的数据中发生的数据错误的一个方程;
(ix)所采用的一个或多个数据库100还取决于数据库的空间(地理)位置。
在编码数据30中,所通讯的一个或多个数据库参考值R被存储和发送的,而不是编码数据块。要实现从编码器10到解码器50的这种数据通讯,一个或多个静态动态数据110和120需要尽可能地大。大数据库需要更多的存储器容量来存储它们,这些更大的数据库使得编解码器5实现解码数据60的更好的重构质量。有益地,编解码器5在数据库100之中选择,以找到它们的一种最合适的组合,以用于要被通讯的编码数据30中的给定的数据类型,例如视频、图像、图形和音频内容,即,实现数据库100的有效利用以及相应地提高压缩率。可以理解,当数据库100更大且包括更多的元素E,数据库元素E需要更多的数据比特。
为了有效地利用一个或多个数据库100,可以生成几个静态数据库110,用于共同的数字数据,如视频、图像、图形和音频内容。一个或多个静态数据库110与编码器10一同使用,针对编码数据30提供数据压缩。例如,基于要被编码的数字数据的类型来选择一个静态数据库110,取决于要被使用的存储器容量以及要在解码器50实现的所需要的重构质量,静态数据库110的大小可以有很大的不同,静态数据库110也可以在所采用的数据块的大小、所采用的数据库元素E的数目等方面各不相同。
如前所述,编码器10和解码器50一同组成编解码器5,其中,当从编码器10向解码器50发送数据时使用一个或多个动态数据库120。与静态数据库110相比,动态数据库120包括不同的数据库元素E,因为动态数据库120的数据库元素E典型地由编码器10当编码源数据20时静态数据库110中没有足够的合适的元素的时候生成。如前所述,在对源数据20进行编码和对相应的编码数据30进行解码时,编码器10和解码器50都可能需要生成一个或多个静态数据库,使得编码器10和解码器50之间的兼容性得到保证,重构的解码数据60将实质地与源数据20相匹配。一个或多个动态数据库120被生成作为临时之用,例如,当编码数据30包括视频内容时为了视频帧的定义的间隔所用,此外,一个或多个动态数据库120可以被再生成,以每秒的形式,而且,用于其后的30秒期间,然后被去除。所述的期间的长度可以在几秒到整个视频场景和电影章节长度(如几分钟的编码视频内容)之间波动。根据本发明,可以从为了先前生成的一个或多个动态数据库而产生的元素E来生成一个新的静态数据库110,作为另一种形式,生成的动态数据库120可以在其内容方面是恒定的,之后作为静态数据库110来工作。
不管采用哪种类型的数据库100,静态或动态,根据本发明的编解码器5包括编码器10和解码器50一起,当存储发送对相应于编码数据30的数据(如视频、图像、图形和音频内容)时,它能够减少处理时间,即所需要的处理资源和数据存储器容量。当编码数据30要通过例如无线通讯网和互联网这样的数据通讯网络来通讯的时候,这种益处是很重要的,因为编码数据30不再难以被通讯网络来接纳处理,例如,以实时流的方式来处理。
与公开的美国专利申请US2010/322301中描述的图像发生器相比,图1中的编解码器5能够提供在编码数据30中的更高程序的数据压缩。此改进的压缩与发送参考值(R)以及有关区域标识符(U)的信息有关。在本发明的上下文中,区域标识符(U)被用来传递空间信息,所述空间信息是关于在相应数据中(如,在原始图像中、在原始传感器数据中,或类似的)在什么地方衍生出了一个给定数据块。有益地,区域标识符(U)描述数据中数据块的大小、形状和位置。可选地,区域标识符(U)与相应的块一起发送,但这是很不有效的方法。有益地,当实现本发明的实施例时,通讯关于区域标识符(U)的信息是一种替代方式,替代仅仅通讯区域标识符(U)它们自己的方式。例如,基于与区域标识符(U)有关的信息,如,分割/组合信息,对编码数据进行解码时,获得区域标识符(U)。另一种方式,区域标识符(U)可以被预设,而且没有其它信息需要被发送。有益地,数据库不以任何方式编辑或调取区域标识符(U),而是,基于参考值(R)从数据中被恢复的元素(E)被采用,并且它们的重构的数据块被放入重构的结果数据中被区域标识符(U)指示的位置。
有时,关于区域标识符(U)的信息被预设在数据中,如,块是等大小的,它们在按一定的顺序被编码的;这种情况下,没有真正的新信息需要被传送。由于数据中没有额外的关于区域标识符(U)的信息来改变预设的方式以为了将要按照其顺序而来的编码数据块而生成区域标识符(U),所以采用预设的方式是不言而喻的。
在某种情形下,会有被传送的信息用来表示一个或多个期望的数据块大小和处理顺序,或者是发送了从几个选项中选择的一个或多个数据块大小和处理顺序。有时,编码器可以给解码器还发送定义了数据块的大小、形状、和位置、以及它们的处理顺序这样的分割/组合信息,因而,被接收和被解码的数据块(如,从数据库恢复的数据块)可以一直被无歧义地、唯一地放入重构的结果数据中的正确位置。
可以采用美国专利申请US13/584005和US13/584047中的编码方案来传送定义区域标识符(U)的这种分割/组合信息。
区域标识符(U)可以由许多种方式来生成,取决于所采用编码方法。在前述的块编码器/解码器中,区域标识符(U)可以衍生自对块进行分割/组合时的分割/组合信息,有时,区域标识符(U)是已经可用的或已知的,与区域标识符(U)有关的信息就简单地是已经可用的或已知的区域标识符(U)的信息。
有时候,由于用来传送和存储的方法,编码数据的顺序是不能被保证的。出于此原因,数据中所采用的区域标识符(U)多于真实的数据编码和数据解码所需要的,一个区域标识符(U)被插入到例如每个数据大块(chunk)以表示与该数据大块所对应的第一数据块处在哪里。类似地,有时一个顺序号被加入每个数据大块,以表示数据大块的顺序。这样,该信息避免了对区域标识符(U)的需要。可选地,本发明的实施伴随着使用美国专利US8169547作为例示描述的采用变化的和不变化的数据的方案。如果有一个方案仅发送变化的数据块,那么,区域标识符(U)需要被使用,以描述那些变化的块的位置,尤其是,如果没有其它信息唯一地描述变化的数据块的位置。
这种提高了的数据压缩在图2所示的方案中实现,此方案中,自编码器10向解码器50通讯动态数据库120的一个新的元素E200,不需要与新元素200一起发送其相应的参考值R。这一特性的实现是基于数字数据块220的元素E的所有的参考值R都能够通过使用解码器50和编码器10中的计算硬件230和230R从重构的数据块220’中被重新计算。可以理解,这种情况下,元素E就是从编码器10向解码器50发送的编码数据30的一部分。可选地,参考值R的一部分包括否则就存在于编码器10和解码器50中的信息(例如,多少数据库元素E已经在一个或多个数据库100中可用,有此有关的信息),或者否则就可能基于编码数据块(在解码之后)而计算或重计算的信息。在数量/计数之外,元素E的概率顺序能够影响参考值R的一个数值部分。前述的数量/计数或概率顺序并不总是必须指整个数据库,而是可以指被传送的参考值R的一个选定的组合,在这个数值的帮助下,所述的组合可以被给予多于一个的不同的变化。
一个或多个数据库100的元素E使用一种方法来计算尚未被它们获知的参考值R。编码器10在计算相应的参考值R之前重构,即量化或者去量化,数据块值。出于此原因,使用任何已知的有损或无损压缩算法,如表2所列举的,或者这些有损与无损压缩算法的组合,每个数据块220可以在编码器10中被编码。所以,关于所使用的带来主要数据压缩效益的压缩算法,图1所示的编解码器是通用的。这些方法包括但不限于:DC、幻灯片(slide)、线(line)、多级(multilevel)、DCT、内插值和外插值。数据库元素E还可以为任何块大小和从解码图像的任何位置而生成。有益地,参考值R包括可以独立计算的多个成分(component)部分,例如,一个成分描述块值的平均,另一个成分描述块值的方差,再一个成分描述块值的幅度,再另一个成分描述块值或包括在给定数据库100中的元素E的校验和(check-sum)。所有参考值或一部分参考值,被与编码数据30一起发送至解码器50。该信息被用来评估传送的正确度,例如,编码数据30从编码器10到解码器50的发送中产生的任何质量退化。解码器50可以把所有参考值或一部分参考值退回给编码器10,为了确认的目的和/或质量控制的目的。
当给定的数据库100更大,前述的数据库参考值R需要更多的数据比特。使用数据库100中的元素E的数量的log2值,可以计算需要用来定义一个唯一数据库参考值R的非压缩数据比特的数。所以,更大的数据库参考值R需要更多的比特,在编码数据30中可实现的压缩率针对每个现有的数据库数据块是下降的。通常,在数据库参考值R中,有一个或多个比特为未用的数据元素而预留。尽管如此,为了避免在大的静态数据库110或动态数据库120中存在过多的未用数据库元素E,一个新的小些的动态数据库120的元素E可以被生成自一个已用的静态数据库110或一个已用的动态数据库120的元素E。该新的小些的动态数据库120然后被用在解码器50中用于解码的目的,其中,与更大的初始数据库相比,新的动态数据库在它的参考值R中需要更少的比特,所述的参考值用来唯一地标识新的小的动态数据库中的元素E。
需要注意,这里所提及的参考值R准确地是发送的参考值(唯一地指定数据中的元素E的索引数),它因此收到新的小些的数据库中较小的比特计数,所述的比特计数小于初始传送的用在旧的更大的数据库中的参考值。这自然不影响用在搜索中的真正的准确的参考值R,因为那取决于元素E的真正数据值,在这里不以任何方式发生改变。
新的动态数据库中的参考值R可以是新的数据库中存在的元素E的总数。该参考值R,对应于新的动态数据库中的数据库元素E,包括真实的数据,或者它可以被连接到另一个更大的数据库。当新的动态数据库被用来编码参考值R,可以采用一个已知的编码方法,如差分编码,来有效地压缩参考值R。所以,使用新的动态数据库,可以可观地节省非压缩参考值R的比特,并且基本上不降低执行效果或者输出自解码器50的解码数据60的质量。
作为例示:
(a)如果一个给定的静态数据库110包含16百万个元素E,为了表示而使用数据的24比特用于相应的数据值R;
(b)如果一个动态数据库120只包含1024个元素E,为了表示而使用数据的10比特用于相应的数据值R;
(c)一个数据块存在于带有一定数据块索引的动态数据库120中,那么,通过动态数据120,参考值R只需要10比特来唯一地定义数据块,与之形成对比的是,如果它被包括在静态数据库110中,则需要24比特来唯一地定义数据块。在此示例中,如果一个给定的数据块被从静态数据库110传送给动态数据库120,则需要更少的比特来唯一地定义数据块,编码器10通知解码器50一个或多个数据块从静态数据库110到动态数据库120的移动或复制。取决于为了一个或多个数据块而出现在数据库的使用量,图1所示的编解码器能够操作使得一个或多个数据块从静态数据库110被移动或复制到动态数据库120。换言之,当解码参考值R经常地指向一个给定的数据块,那么,在解码器50的该数据块被有益地从一个传送给解码器50的给定的动态数据120中获得或者被使得可由解码器50访问,而不是从一个传送给解码器50的静态数据110中获得或者被使得可由解码器50访问。如前所述,数据库110和120被托管在一个或多个数据服务器,这些服务器可以属于一个多个第三方。
通过由大的静态或动态数据库100中最常用的数据库元素E来生成一个更小的静态或动态数据库,图1所示的编解码器5允许为数据库参考值R节省比特。在编解码器5中,较大的动态数据库120和/或静态数据库110为所有存在的数据块保留一个使用计数,以该使用计数信息为基础,选择元素E来生成新的数据库。这样的较小的数据库在编码器10中进行编码时生成,然后被通讯给解码器50,或者使得由解码器50可用,以对编码数据30进行解码。这样一个或被使得可用的较小的数据库可以这样安排,编码数据30包括一个URL链接,该链接指向所述较小的数据库,使其可由解码器50从一个异地的基于互联网的服务器和/或从一个客户LAN中的数据库服务器来下载,这些服务器可以托管在云计算环境,由许多这样的解码器50访问,或者是托管在解码器50的一个类似的LAN中。
当对源数据20进行编码时,编码器10可操作用于在每个时刻来选择由多少不同的数据库100、何种数据库100、以及哪个特殊的数据库100将要被用来对相应的编码数据,当在解码器50被接收到的时候,进行解码,其中,描述由编码器10做出的关于数据库100的选择的信息被通讯给解码器50。该信息可以本地地提供,即,作为依赖于应用的数据库信息,也可以全球地提供,即,总是同样的数据库信息。在某种情况下,所选择的数据库已经被解码器50知晓,这种情形下,没有具体的信息要通讯、存储和/或传送,即,所述信息是解码器50已经知道的信息。作为一种便利的方式,描述数据库100所做的数据库选择以及所使用的编码方法的选择的信息被存储在视频文件头或者编码数据30的容器中。解码器50在执行对编码数据30的解码任务之前已经配备全部的一个或多个静态数据库110。如果解码器50发现它缺少在编码数据30中定义的一个给定的数据库,解码器50向编码器10发出为了使缺失的给定数据库需要被发送的一个请求,或者,使其从一个异地的连接于网络的数据服务器对解码器50可用。异地服务器位于与解码器50相对近的位置,如,处于一个彼此类似的LAN网络,从而让缺失的数据库100快速地发送给解码器50。缺失的数据库以压缩的方式提供给解码器50,这样,解码器50对缺失的数据库进行解压,以存储在解码器50的数据存储器中。有益地,被解码器50最常用的数据块存储在小的静态数据库110中。
为了从RAM释放资源,在编码器10、解码器50、或二者中,不用的数据库元素被移除。通过计数数据库中被使用的元素E的数量,或者是保持关于数据库元素E最近一次被使用的时间的统计,来测量数据库元素E的使用情况。在图1所示的编解码器5中,所有的动态数据库120都为了清理的目的而被处理,以移除未用的元素E。对静态数据库110也可以进行清理,为了清理的目的,一个或多个静态数据库110定期地被新的静态数据库替代。旧的数据库110还可以被转移到备份存储器,使得它们还可以在以后必要的情况下被访问,回归到编码器10和/或解码器50,但并不占用静态数据库110的存储容量。备份存储器通过硬盘、闪存、外部存储器、光盘数据ROM、基于云的数据仓库等等来实现。在运行中,解码器50被告知数据库100之一的任何失常变化,使得解码器50能够请请求更新其数据库100,以应对任何这种失常。数据库100还被唯一的标识符所标识,如版本号。如果一个或多个数据库100被改变,如,在编码器10被改变,期望的是,数据库100中只有它的变化被通讯给解码器,而不是把整个数据库100发送给解码器50。一个或多个数据库100可以用编码器更新,例如,已知类型的编码器,而且,编码器被提供有相关的预载入的静态数据库110,如,存储在固态ROM。当一个或多个动态数据库120在解码器50中被更新,可以采用不同的更新模式,例如:
(i)在第一更新模式中,旧的元素E被新的元素E所覆盖;
(ii)在第二更新模式中,旧的元素E被保留,新的元素E被添加,提高了一个或多个动态数据库120的大小。
当小的动态数据库120满了,即,其所有的元素E都被分配了,检查小的动态数据库120,用一个或多个自动的软件工具在计算硬件上运行,以确定小的动态数据库120的哪个元素E是最常用的,然后,数据库120内的元素E被整理,使得最经常用的元素E被移到数据库120的开头,使得数据库120访问最经常用的元素E更快,和/或使得数据库120可以更有效地压缩,以便通过数据通讯网络(如互联网或无线数据通讯网络)从编码器10到解码器50进行通讯。小的动态数据库120的其它非经常用的元素E被释放。编码器10和解码器50均执行这样的检查,并在一个或多个数据库120满了的时候进行整理。可以通过一个从编码器10发出的指令来启动这种检查和整理。
当数据存储或数据传送被启动,编码器10可以选择哪个数据库100在接下来要被解码器50所使用,在对编码数据30进行解码开始的时候数据库100是否是空的,或者在对编码数据30进行解码开始的时候数据库100是否已经包含一些数据库元素E。例如,解码器50可以使用一个小的通用静态数据库110来开始对编码数据30进行解码,其中,解码器50用缺失的元素E为动态数据库120添加数据,所述缺失的元素E是解码器50从包括在编码数据30中的数据块确定的,然后,在必要的时候,动态数据库120按照前述的规则被清理。可选地,被生成的动态数据库120由解码器50存储成一个新的静态数据库110,为将来用于解码在解码器50收到的未来的编码数据30。
当对源数据20进行编码,源数据20对应于视频、图像、图形和音频内容的至少之一,编码器10发送一个给定数据块的参考值R,即使该数据块的数据库还在存在于解码器50中,如果编码器10知道解码器50能够从一些静态数据库存储中取得包括描述所述给定数据块的元素E的一个合适的静态数据库110,所述一些静态数据库存储是本地地被解码器50可用,如,位于与解码器50接近的一个类似的LAN、ISP、或其它服务器。这样一种方式使得一个编码器10发送同样的编码数据30给许多个具有稍微不同的数据库可用的解码器50。当采用此方法,解码器50不需要作为大的静态数据库或相关资源的宿主。如果此方法可以采用,编码器10与解码器50进行协商。为了使此方法成功,编码器10需要知晓解码器50所能够访问的公共和/或私有数据库,访问这些数据库是为解码器50提供它为了执行对发自编码器10的编码数据30进行解码所需要一个或多个数据库100。此方法很合适于当根本没必要发送编码数据的时候,此时,从另一个编码器向解码器50供应数据块是可行的,其中,另一个编码器已经在早些时候对编码数据进行了编码。可选地,来自其它编码器的数据块的通讯是以对等通讯的方式进行的。此外,此方法适于通过互联网的编码视频的实况流,这使得编码数据可以从远距离离开解码器50的异地进行流化(streamed),在这种情况下,只有关键的参考值R从远距离离开解码器50的位置被通讯。
如前所述,从数据库元素E构造一个或多个动态数据库120,所述的数据库元素E是从重构的数据块被拷贝的或生成的,要么是在编码器10或者是在解码器50。数据块可以是1维、2维、3维、或者它们的组合。数据块具有大小和形状,例如,当在显示器上观看,形状可以是多边形的、矩形的、椭圆的、圆的、细长的、三角的形式等等。
关于1维数据块,其形状可以是一组一维数据项目,当呈现在解码数据60中的时候。关于2维数据块,当呈现在解码数据60中的时候,其形状可以是方的、矩形的、三角形的、平行四边形的、或者圆的。关于3维数据块,其形状可以是多形态的,如立方、角锥、圆柱、球,等等。当解码数据60是旨在3维图形显示,如为了用户的观看而传递3维图像,这种3维数据块是有益的。通常采用的2维数据块对应于8×8像素,或者可以本发明的实施例中有益采用的类似的显示元素。有许多不同的且有效的已知编码方法,可以由编码器10在生成编码数据30之时用在8×8像素的块大小上。
为了更详细地阐述本发明的方案,下面说明编码器10中对数据块的编码。
步骤1:在理想情况下,为一个存在于源数据中的相应的给定数据块,例如存在于源数据20中的图像和/或音频的一部分,计算一个给定的数据库参考值R。如果在一个或多个数据库100中存在合适的现有元素E,即在给定的数据块和一个或多个数据库100中的现在元素E之间能够找到匹配,参考值R被计算,以从一个或多个数据库100中选择现有的元素E。匹配的确定取决于给定的数据块与现有数据块之间的误差低于一个定义的阈值,其中,定义的阈值对应于一个编码质量索引。
步骤2:如果在步骤1达成了匹配,用于被选择的现有数据块的参考值R在编码数据30中被存储或发送。被选择的现有数据块可以从多个数据库100中被搜索,其中,被存储或发送的参考值R还包括数据库100的标识符,被选择的现有数据块可以被解码器50找到。相反,如果在步骤1未找到合适的匹配,则使用DC编码、幻灯片编码(slide-encoding)、多级编码、DCT编码或任何其它合适的编码算法对数据块进行编码,为重构的数据块计算数据库参考值(R),编码的数据块被包括于编码数据30中,以在解码器50接收。
此外,编码器10检查是否存在一个合适的元素E可用于重构数据块,类似于对源数据块所做的那样。在此情况下,可以采用不同的编码质量阈值。如果某个元素E被选择用来表示重构数据块,其参考值R在编码数据30中被存储或被发送。可选地,如果无法选择合适的数据库元素E来表示重构数据块,也即重新组成的数据块,那么,采用一个最适合重构数据块(即重新组成的数据块)的编码算法来发送重构数据块或源数据20中的给定的数据块。选择一个方法,使得在编码数据30中生成较少比特、生成较少误差、或能够对用于所生成的误差的比特进行优化,例如,可以使用一些对应于RD优化的lambda(λ)系数。该编码数据块然后被加入一个或多个动态数据库120,以用于将来在编码器10和/或解码器50中对数据进行编码。
编码器10采用欧洲专利EP1787262和欧洲专利申请EP12173534.4(它们被包括于此作为参考)所描述的编码技术,当采用所述的编码技术,如对视频内容进行编码时,在数据库100中可以发现代表不变数据志的一个颜色,或者,可以检测到不变的块,并且被不同地编码。只有变化的数据块需要采用已知编码技术的编码,所述已知编码如表2所列,除表2所列之外,不同类型的编码方案也可以用,表2只描述了完整的编码方案,而未包括像内插值、外插值、多级、DCT等单一的方法。类似的功能可以提供给编码器10和解码器50二者,以在基于EP1787262和欧洲专利申请EP12173534.4(如前所述,它们被包括于此作为参考)的这个例子中对性能进行优化。其它相关专利申请,即欧洲专利申请EP13172237.3(申请日:2013年6月17日)的内容也被包括于此作为参考。
为了更详细地阐述本发明的方案,下面更详细地说明数据库100和前述的参考值R。在此引入美国专利申请US2010/322301作为参考。如前所述,有两种数据库:静态数据库110、动态数据库120。静态数据库110可以被存储于任何类型的存储器,为了更了的性能,静态数据库110可以被存储在ROM,ROM可以被写入或现场编程入硅集成电路。静态数据库110被硬编码(hard-coded)进记录在非暂时性(non-transitory或non-transient)机器可读存储介质中的经过编译的软件产品。在本发明的实施例中,如前所述,一个静态数据库110可被生成自一个动态数据库120,然后作为一个相应的静态数据库110被存储。静态数据库110均被一个与之相关的唯一的参考码所标识。动态数据库120被写入RAM,或任何等同的读写数据存储器,如像高速磁盘存储这类的磁或光数据存储介质。
本发明的实施例使用“跳转”(”jumping”)的方式。跳转使得数据库100中缺失的元素E被从其它地方采集(sourced)。跳转可以被静态数据库110和动态数据库120分别采用。跳转使得动态数据库120针对缺失的元素E被快速更新。为了使这种跳转有效地工作,期望所有的数据以类似的顺序被解码,从数据的生成开始,到当前的使用时间。
前述的参考值R唯一地标识数据库100中的相应的元素E,其中,元素E代表不同类型的数据块。尽管如此,期望参考值R的生成所采用的方法适配于存在于要被编码器10编码的源数据20中的一种类型的数据内容。换言之,参考值R在编码器中被计算,用于存在于源数据20的部分之中的每个相应数据块或相应的编码数据块。在编码器10中,由其参考值R代表的编码数据块被重构,即被编码,然后在编码器10中被解码回来,以保证解码器50能够为被加入一个或多个数据库100之中的编码数据块生成同样的数据库参考值R。使用这种操作方式的一个原因是,当为给定的块已经选择了编码方法,在已经产生的参数的基础上,一个块被重构或解码。该重构的块就是数据库元素E和它的参考值R所赖以构造的。解码器50生成一个或多个数据库100,它们与在编码器10中对源数据20进行编码时所采用的严格相同。实现本发明的实施例时,可以采用各种不同的方法来计算参考值R,但是,它有益地被计算自一个幅度(最大或最小)、方差(或标准方差)、平均值(或总和)、以及检验和(或散列值,或索引)等与数据块有关的值,所述的数据块是存在于要在编码器10中被编码的源数据20之中。“幅度”例如是指在一个给定的数据块内最大的和最小的原始数据值或像素值之间的差。用于一个(2D)数据块的总和值可以使用公式1来计算。
公式1:
其中,SUM=总和值;
m×n=存在于(2D)数据块中的像素数或数据值,例如对于一个8×8像素的数据块,n=8,m=8
i,i=参考索引(reference indices)
平均值的计算方式是,用1/(m*n)乘以总和,即把总和值除以总计的用来生成总和值的数据值的数目。
(2D)数据块的方差由公式2来计算。
公式2:
其中,
V=方差
标准方差可以由方差V的平方根来计算。
校验和的计算方法是,对每个值,即兴趣区(ROI)的像素,使用逻辑XOR方程。例如,分别对于静态数据库110和动态数据库120,其幅度、方差、平均值M以及校验和如表4所示。
表4:幅度、方差、平均值、校验和的示例
参数 示例值
幅度 AMPLITUDE_BITS=4
方差 VARIANCE_BITS=3
平均 MEAN_BITS=8
校验和 CHECKSUM_BITS=5
对于数据库参考值R的已知元素E,伪码的计算例如可以按以下方式来执行:
DBREF=(AMPLITUDE SHL(DBREF_BITS-AMPLITUDE_BITS))+
(VARIANCE SHL(DBREF_BITS-(AMPLITUDE_BITS+VARIANCE_BITS)))+
(MEAN SHL(DBREF_BITS-(AMPLITUDE_BITS+VARIANCE_BITS+MEAN_BITS)))+
CHECKSUM
需要注意,要被计算的参考值R是对于一个静态数据库110的传送的组合的参考值R,在对元素E实际搜索中,可以使用更精确和/或更不精确的值。如果不是寻求完美的匹配,校验值没有限制搜索的效果。
静态数据库110和动态数据库120的字节的分配数的最大值是由数据库参考值R定义的。为了对一个给定的数据库参考值R计算一个总的比特计数,在参考值R被计算的地方,所有的元素E都要被加起来,其中,元素E包括幅度、方差V、平均值M以及校验和,即MVA组合。例如,一个数据库参考值R的比特计数可以按以下方式计算:
DBREF_BITS=AMPLITUDE_BITS+VARIANCE_BITS+
MEAN_BITS+CHECKSUM_BITS
一个数据库所包含的元素,不能多于传送的参考值R的依赖元素的部分的长度,即,如果数据库不使用平均值(如,平均值为零的数据库),平均值对所述的长度无作用,否则,它有作用。
例如,如果按表4的示例来设置比特,那么,对一个平均的数据库,元素E的数目将与20比特一致,对于一个不使用平均值的数据库,它是12比特,相应地,数量的比较将大约是1百万元素对4000元素。自然,每个元素E都需要与数据的呈现格式相一致的字节,例如,对于具有8比特值的8×8块,一个平均元素,即,具有平均值的,需要每个元素64字节,而没有平均值部分的元素需要64*9/8=72字节每元素E,因为需要为每个数据值存储符号比特(sign bit)。这就导出使用平均值的数据库的示例中所呈现的8×8数据库的大小的最大值,64MB;对于不使用平均值的数据库,它只有288KB。这些数字代表给数据库元素自身的数据值的最大分配,其大小取决于参考值(R)的各种部分的比特计数,取决于块的大小,取决于数据值的动态。除此之外,为了执行快速搜索的目的,更精确和/或更不精确的参考值(R)需要被存储在编码器10中。对于解码器50,具有已经被组织的数据库数据就足够了,所述的被组织的数据是指按照使得正确的参考数据的地址容易被发现的方式来组织数据。
作为进一步的示例,一个给定的数据库100的总大小被计算为1,048,576元素,即220的值,大约1Mega元素。如果每个元素E包括64像素,即,被实现为像素的8×8数据块,具有1字节动态范围每像素,那么,给定数据库100的非压缩总大小是64M字节。
如图3所示,给定的参考值R由300表示,包括几个彼此不同的部分,310A、310B、310C,例如分别是方差V、平均值M以及幅度A。这些部分被分别地计算,这样,在编码器10和/或解码器50中的搜索的实现可以是尽可能地快,进而允许快速编码和/或解码操作。不同的部分310作为独立的数据库子参考而起作用,即作为索引,例如还可加入循环冗余校验(CRC),用310D表示。如果一个大数据库100的构造是单纯基于生成的顺序,或者替代地基于CRC,那么,编解码器生成查找表,将是有利的。采用该查找表来浏览平均值M、方差V、以及幅度A的一个合适的组合,以快速的方式。
当计算参考值R300时,可以采用不同的采样方式,参考值R300包括额外的权重系数,其中,额外的权重系数使能(enable)在更少的选项中的搜索,或者,额外的权重系数使得编解码器为图像的边界找到一个元素E,图像的边界在解码质量方面与图像的中心部分相比是不重要的,在编码器10中当对源数据20进行编码时采用动态可变的质量阈值,从而实现这种方案。这样,编解码器5中的搜索就可以更快地执行,因为参考值R包括与其相关的数据的更精确的参数,此外,CRC或类似的索引使得一个基本组合具有几个数据库元素的情况成为可能。
在一个或多个数据库100中基于给定参考值R的搜索的执行是始自大数据库100,大数据库100包括一个参考,该参考是关于哪个元素E,以及在哪个小些的数据库100中具有同样或类似类型的元素E。小数据库100也保留这样的关于MVA组合的信息,所述的组合是关于小数据库100存有的数据的,该信息使得,如果被搜索的给定数据块中的组合是足够不同的,小数据库100可以被编码器10和/或解码器50快速忽略。
关于前述的参考值R,300,对方差V和幅度A一起进行压缩是有利的,这减小定义参考值R,300,所需要的比特的总数,进而减小需要被从编码器10通讯给解码器50(如图1所示)的编码数据30的大小。该益处源自方差V和幅度A是强相关的。相反,参考值R300的平均值M和CRC/索引被分开地压缩,因为平均值M通常兼容于相对的delta特性,而CRC可能是很随机的。对于使用了更少比特量化了的方差V和幅度A部分,可有利地采用行程编码(RLE)用来生成编码数据30,或者,差分编码也可以用于此目的。在编码数据30中,如果用较少比特对方差V和幅度A的第一给定组合进行量化,而用较多比特对方差V和幅度A的第二给定组合进行量化,这些组合分开地进行编码是有利的,如,RLE用于第一给定组合,哈夫曼(Huffman)编码用于第二给定组合,但不限于此。其它类型的编码也可以采用,如:
行程、SRLE:“分离行程长度编码”(Split run-length encoding),在GB1303660.3中公开的一种方法,专利申请人是古如罗技微系统公司,申请日是2013年3月1日;
EM:“熵修正”(Entropy Modifier),在GB1303658.7中公开的一种方法,专利申请人是古如罗技微系统公司,申请日是2013年3月1日;以及Odelta:在GB1303661.1中公开的一种方法,专利申请人是古如罗技微系统公司,申请日是2013年3月1日。
通过编码数据30要被从编码器10通讯到解码器50的参考值R300被压缩,压缩可采用各种方法,如:
(i)基于VLC的方法,如具有数据库编码方法的哈夫曼编码,所述的数据库编码方法采用Lempel-Ziv算法,如ZLIB、LZO、LZSS、LZ77;
(ii)哈夫曼编码或类似的,用于前述的值的组合,如方差V和幅度A。
参考值R300可以作为全部值被压缩,或者,参考值R300的部分被分开地压缩,如图3所示。使用数据压缩技术的组合来取得编码数据30中甚至更大的压缩,这是可行的。例如,参考值R300的方差V部分可以用差分编码首先进行压缩,生成第一压缩数据,然后,将RLE编码应用于第一压缩数据,生成第二压缩数据,接下来,将哈夫曼编码应用于第二压缩数据,生成第三压缩数据,第三压缩数据在编码数据30中被从编码器10通讯到解码器50。
一个或多个数据库100包括元素E,元素E包括按照先前已知的顺序的数据块的数据值,例如,按照步进分级的方式。如果所述顺序不同于为图1的编解码器5假定的默认顺序,该不同的顺序在编码数据30中由一个顺序设置参数来定义。例如,这样一种数据赋值(data-valued)的数据库元素E可以生成自任何大小合适的数据块,如生成自重构的图像。在编码数据30被从编码器30通讯到解码器50的过程中,在各状态之间,所述参数可以是反复的。
按照先前已知的顺序被更新的一个或多个动态数据库120采用每帧灵活数目的元素E,使得图1所示的编解码器5为具有相对少信息内容的图像取得更大的数据压缩率。如果给定动态数据库120为不同帧的大小是126、193、252、303元素,那么,为了唯一地标址(address)每个帧的每个元素所需要的比特数据分别是7、8、8、9。在大的数据库100,关于元素E的标址,元素E可以被安排成(“设数(set number)”,“取数(get number)”)类型的结构。如,在一个8比特字节中,字节的一个比特被预留用于如果全部值已经被传送时通知接收方,余下的比特用于定义被发送的值,之后还有更多的比特。按此方式,可以用一个字节传送7比特价值(seven-bits-worth)的信息,用两个字节传送14比特价值的信息。如果在编码数据30中避免了要把信息比特包括进来的需要,就可以提供图1所示的编解码器5中的增强的数据压缩。
包括在一个或多个数据库100中的元素E可以被组合,占据更少的数据存储器,或者,他们包括一个总和或者系数元素,用于缩放比例的数据库100或者具有零平均值的数据库100,这可以在对源数据20进行编码和/或对编码数据30进行解码时通过采用一个或多个参数从而以合适的方式提供元素E而被计算地(computationally)适配。
可以使用任何一个或多个参数,这样的一个或多个参数可以是在块被插入数据库100之前已经被从块自身中删除。相应地,当一个数据库元素E被使用,由这些参数产生的数据需要在结果被构造的时候被加入到元素E。在第一种实现方式中,采用一个平均颜色参数。滑动变化的颜色参数与其它的参数也可以被采用。原则上,有了这个数据库元素E在存储器中,预测或任何其它编码方法都可以被采用。这个平均是很有用的,因为有可能使用一个平均值作为其它形式的参考值R的一部分,结果是为了利用它,没有新的数据需要被传送,因而可以显著地减小存储在存储器中的真实数据库100的大小。当然,给其它参考值R增加比特,可能会提高存储在存储器中的数据库100的大小,因此也获得许多新的元素E,它们可以有利地被用于编码。当平均值被从块中删除,那么元素变成大约零平均值。
下面给出一个示例,其中平均值被从块值中省略,从而针对不同平均值的情况提供更有效的数据库的使用。前述的编码方法被有利地应用于滑动变化的块,用于预测,或者用于以一些其它方式编码的块。如此取得的结果,在数据库元素E的构造之前,被从数据库删除,相应地,在解码方面,当数据块的重构之时,被附加到已经被从数据库提取的数据库元素E。
所以,平均值是最简单的编码方法,在参考值R被从多个部分构造的时候,它真正清楚地消除了对参考值R中的一个元素或部分的需要,从而减小数据库的大小。幅度值也可以被用来使数据值相对化,它可以在不减小数据库大小的情况下,为数据库的覆盖带来益处。
其它预测或编码方法实际只产生预测误差块,它们的用途不是那么实际。当然,平均值可以从它们当被省略,从而提供一个预测误差类型数据库,具有相应的初始块数据库的特性。可以理解,数据库元素E可以被用作为了另一个数据库块的预测误差数据,因而在本发明中,数据库元素E的递归也是被支持的。
执行大量的递归是不利的,除非数据库非常小,或者除非是期望精确的重构,因为,不然的话,数据块的编码数据大小会迅速增长为很大。
此外,一个或多个数据库100可以包括已经被计算的元素E,例如使用外插值技术,换言之,编解码器5知晓已经被用于生成给定数据块的计算方法,给定数据块的总大小,以及一个或多个值,所述的一个或多个值提供了一个基础,在此基础上,数据块的数据值得以被计算。该计算采用DC方法和幻灯片方法。DC方法使用一个值,如偏移量值,该值被应用于给定数据块的所有数据值。幻灯片方法可以作为一个1维幻灯方法来实现,采用两个值,如给定块内的第一数据值和最后数据值,然后基于第一和最后数据值,以线性的方式或者替代地以多项式的方式,通过线性内插值为数据块计算剩余的值。2维幻灯片方法也可以采用,它利用对应于数据块的4个点的4个值,使用双线性内插值来计算数据块的剩余点。其它类型的计算算法也可以被采用,用于在图1所示的编解码器5内从相对少的初始值来为数据块计算数值。
一个或多个数据库100包括参考其它数据库的元素E,如,以分等级的方式。在此情况下,元素E包括定义另一个数据库100的信息,以及用于另一个数据100内的元素E的参考值R。在此信息基础上,一个给定的期望数据块的值可以被计算。在这种方式中,从一个第二数据库访问一个或多个元素E,第二数据库被从第一数据库元素E调用,如果在第二数据库中被引用的数据库元素E,相对于通过调用第一数据库的元素E要被返回的期望的数据块,具有不同的大小,比如数据块大小,这种方式使用一个或多个缩放系数和/或一个或多个像素值偏移移位。这种方法采用一个仿射(affine)模型,如2012年10月19日Wikipedia在网址URL:http://en.wikipedia.org/wiki/Affine_transformation的公开内容中所描述的那样。在表5中,提供了可以被用来实现图1所示的编解码器5的数据库元素类型的概况。
表5:数据库元素类型
本发明可以广泛地应用于用来发送和/或接收代表各种类型内容(如流视频内容、互联网电视、通过像光可读盘这样的物理数据载体传送的内容,等等)的数据的电子产品。当数据库100只是对特定方(parties)可用,大多数据情况下,参考值R在编码数据30中被通讯,本发明可以提供数据加密服务。这里的意思/目的是,在来自数据库的参考的帮助下,发送编码数据的至少大多数是可行的,只有小部分需要用一些其它编码方法对块值进行编码。所以,本发明的实施例在许多不同种的技术行业都是可用的,本发明的实施例能够减小通讯网络负载或需要,减小数据存储容量的需要,以及使得高质量的数据编码和解码得以实现,这些都是本发胆的有益技术效果。
编码器10和解码器50作为一个或多个硬件数据处理器来实现。硬件数据处理器是以硬连线(hard-wired)的方式实现的,例如使用ASIC或类似的数字电路。硬件数据处理器的实现使用计算硬件,这些计算硬件操作执行记录在非暂时性机器可读数据存储介质上的一个或多个软件产品。
前述的一个或多个数据库100实现于编码器10、解码器50、LAN,被ISP来提供,实现于硬盘存储器这样的分立的存储器,在存储卡中、在蓝光盘上、在RAM中、在ROM中、在数据闪存中、在SSD、在DVD、在CD、或提供数据访问的任何类型的数据载体。
一个或多个数据库100,当由一个或多个数据服务器提供时,也可以被实现为一个或多个存储卡,不管一个或多个数据服务器位于哪个空间位置,数据库100可以被通过以下的一个或多个方式连接于编码器10和/或解码器50:通过固定连接、通过接触点、通过光缆、通过无线连接(如,蓝牙和WLAN)、通过蜂窝网络(如,GSM、3G、4G、5G、LTE)、通过卫星连接,但不限于这些。
在前文中,元素E可以被插入数据库100,脱离解码数据块,一次一个,组合地或者只部分地使用。就是说,原则上,根据给定或协商好的原则,任何解码的数据值的组都可以构成数据库中的新元素,任何编码方法或编码方案都可以用来产生解码数据,在解码数据外,元素被插入数据中。
根据GB1218942.9及其同族美国专利申请US13/657382、以及相应的申请EP13003859.9、US14/058793所描述的方法,编码器10和解码器50是作为一个多级编码器和一个相应的多级解码器的子部件而被包括于其中的。在多级编码器中,根据源数据20中的内容的性质,源数据20被分析并分割成多个数据流。多个数据流中的一个被提供给编码器10,它生成相应的编码数据;相应的编码数据与来自其它编码器的编码输出数据组合在一起,生成提供自多级编码器的最终编码数据,其中,其它编码器用来处理多个数据流中的其它数据流。在多级解码器,最终编码数据被接收,并被分成多个数据流,其中,数据流中的一个被提供给解码器50,生成相应的解码数据;相应的编码数据与提供自多级解码器的其它解码器的解码数据组合在一起,生成最终解码输出数据。虽然这样的多级编码器和解码器比单纯的编码器10和解码器50复杂,但这种多级编码器和解码器在处理很宽范围类型的数据时能够提供特别的编码、解码、和数据压缩性能。
在不背离本发明范围的情况下,可以对所述的实施例进行修改。本文所用的术语“包括”、“包含”、“由......组成”、“具有”、“是”应当被理解为非排它的方式,即,允许未被明示描述的项目、部件、或元素的存在。单数或“一个”的使用应当被理解为与复数有关。括号内的序号的使用是为了帮助理解内容,不应当被当作限定的作用。

Claims (28)

1.一种编码方法,对源数据(20)进行编码以生成供传输或存储的相应的编码数据(30),其中,源数据包括以下至少之一:音频数据、图像数据、视频数据、图形数据、多维数据、测量数据,所述方法包括:
(a)将源数据(20)的一个或多个部分与一个或多个数据库(100)中一个或多个元素(E)进行匹配,使用参考值(R)来决定匹配,其中,一个或多个元素(E)表示相应的一个或多个数据块;记录多个选定的数据库和参考值(R),参考值(R)把源数据(20)的一个或多个部分相关于一个或多个匹配的元素(E);其中,多个选定的数据库同时包括一个或多个静态数据库和一个或多个动态数据库;
(b)把参考值(R)包括于编码输出数据(30)中,一同被包括于编码输出数据中的还有多个选定的数据库(100)和/或标识多个选定的数据库(100)的信息,以及用来生成编码数据的编码方法的选择信息;
所述方法还包括:
(c)把源数据(20)分成具有唯一区域标识符(U)的区域;
(d)在区域中提取区域特定的样本,在所述样本的基础上计算相应的参考值(R);
(e)检查对应于获取自应用于源数据(20)的计算的参考值(R)的源数据的区域之一是否已经被存储在一个或多个数据库(100)中或被传输;
(f)存储和/或传输参考值(R)或者压缩状态的参考值(R)于编码数据(30)中,以唯一地标识元素(E);或者,
(g)存储和/或传输被编码的和/或初始的源数据(20)于编码数据(30)中,并可选地,在对应于参考值(R)的源数据的区域之一未被事先存储进一个或多个数据库(100)中的情况下,将其作为一个新的元素(E)存储于一个或多个数据库(100)中。
2.如权利要求1所述的方法,其特征在于,所述方法还包括:
使用一个或多个零平均值数据库,用于实现一个或多个数据库(100)。
3.如权利要求1所述的方法,其特征在于,所述方法包括以下至少之一:
(i)通过从一个或多个动态数据库(120)中选择元素,生成一个或多个静态数据库(110);
(ii)处理存在于源数据(20)的一个或多个部分中的信息,生成一个或多个元素(E),以被包括在一个或多个动态数据库(120)中;
(iii)从一个或多个更早的数据库(100)中选择元素(E),把它们包括在一个或多个动态数据库(120)中,以与编码数据(30)一起使用。
4.如权利要求1所述方法,其特征在于,多个数据库(100)被托管在一个或多个数据服务器。
5.如权利要求4所述的方法,其特征在于,所述方法包括:
在异地控制所述的一个或多个数据服务器。
6.如权利要求4所述的方法,其特征在于,所述方法包括:
在可操作用于生成编码数据(30)的至少一个编码器(10)与用来接收编码数据(30)的至少一个解码器(50)之间共享一个或多个数据库(100)。
7.如权利要求1所述的方法,其特征在于,所述方法实现于一个编码器(10)之中,所述编码器(10)通过通讯网络连接于一个或多个数据库(100),其中,一个或多个数据库(100)中的至少一个处于通讯网络的一个本地网中,与编码器(10)的本地网彼此类似,所述本地网包括LAN、蓝牙、WLAN、GSM、3G、4G、5G、LTE。
8.如权利要求1所述的方法,其特征在于,所述参考值(R,300)包括多个部分(310A、310B、310C),所述多个部分(310A、310B、310C)被分开地编码,以被包括于编码数据(30)之中。
9.如权利要求1所述的方法,其特征在于,当不能找到源数据(20)的一个或多个部分与一个或多个静态数据库(110)中的一个或多个元素之间的匹配,生成一个或多个动态数据库(120)的元素。
10.如权利要求1所述的方法,其特征在于,源数据(20)的一个或多个部分与一个或多个数据库(100)的一个或多个元素(E)之间的匹配是在一个质量阈值内成立,其中,质量阈值在参考值(R)的生成过程中是动态改变的。
11.如权利要求1所述的方法,其特征在于,一个或多个参考值(R)被用于使用由一个或多个参考值(R)定义的一个或多个元素(E)来重构源数据(20)的一个或多个相应部分,其中,在重构的一个或多个部分与源数据(20)的相应的初始的一个或多个部分之间确定误差,所述误差被编码并被包括在编码数据(30)中。
12.如权利要求1所述的方法,其特征在于,第一数据库(100)的一个或多个元素(E)可操作用于引用存在于一个或多个数据库(100)的一个或多个其它的数据库中的一个或多个元素(E)。
13.如权利要求1所述的方法,其特征在于,取决于存在于源数据(20)中内容的性质,一个或多个数据库(100)被选择和/或在大小方面不同。
14.一种编码器(10),用于对源数据(20)进行编码以生成相应的编码数据(30),其中,源数据(20)包括以下至少之一:音频数据、图像数据、视频数据、图形数据、多维数据、测量数据;所述编码器(10)包括:
(a)第一数据处理硬件,用于将源数据(20)的一个或多个部分与一个或多个数据库(100)中一个或多个元素(E)进行匹配,使用参考值(R)来决定匹配,其中,一个或多个元素(E)表示相应的一个或多个数据块;记录多个选定的数据库和参考值(R),参考值(R)把源数据(20)的一个或多个部分相关于一个或多个匹配的元素(E);其中,多个选定的数据库同时包括一个或多个静态数据库和一个或多个动态数据库;
(b)第二数据处理硬件,用于把参考值(R)包括于编码数据(30)中,一同被包括于编码数据中的还有多个选定的数据库(100)和/或标识多个数据库(100)的信息,以及用来生成编码数据的编码方法的选择信息;
其中,所述编码器(10)可操作用于:
(c)接收源数据(20),把源数据(20)分成具有唯一区域标识符(U)的区域;
(d)在区域中提取区域特定的样本,在所述样本的基础上计算相应的参考值(R);
(e)检查作为应用于源数据(20)的计算的结果的参考值(R)所对应的源数据的区域之一是否已经被存储在一个或多个数据库(100)中或被传输;
(f)存储和/或传输参考值(R)或者压缩状态的参考值(R)于编码数据(30)中,以唯一地标识元素(E);或者,
(g)存储和/或传输被编码的和/或初始的源数据于编码数据(30)中,并可选地,在参考值(R)所对应的源数据的区域之一未被事先存储进一个或多个数据库(100)中的情况下,将其作为一个新的元素(E)存储于一个或多个数据库(100)中。
15.如权利要求14所述的编码器,其特征在于,所述编码器(10)可操作用于执行权利要求1-13中任一个所述的编码方法。
16.一种解码方法,对权利要求1的方法所提供的编码数据(30)进行解码以生成相应的解码输出数据(60),所述方法包括:
(a)接收包括参考值(R,300)、关于区域识别符(U)的信息、和关于一个或多个数据库(100)的信息的编码数据(30);
(b)从编码数据(30)中解码参考值(R,300);
(c)按照参考值(R,300)的引导,从一个或多个数据库(100)访问一个或多个元素(E),其中,一个或多个元素(E)代表一个或多个相应的数据块;
(d)生成一个或多个数据块以组成相应的总体的解码输出数据(60)。
17.如权利要求16所述的方法,其特征在于,所述方法还包括:
(e)在一个数据库中保留数据,其中,所述数据包括对应于参考值(R)的音频数据、图像数据、视频数据、图形数据、多维数据、测量数据中的至少一个;
(f)基于包括在编码数据(30)中的关于区域识别符的信息,生成区域识别符(U);
(g)从编码数据中接收或恢复对应于一个或多个区域识别符(U)的参考值(R);
(h)基于为了相应的一个或多个区域识别符(U)的参考值(R),从数据库恢复对应于参考值(R)的数据;
(i)基于从数据库恢复的数据,生成一个数据块,基于区域识别符(U),所述数据块被组成总体的解码输出数据(60)。
18.如权利要求16所述的方法,其特征在于,多个数据库(100)被托管在一个或多个数据服务器。
19.如权利要求16所述的方法,其特征在于,所述方法被执行于解码器(50),解码器(50)通过通讯网络连接于一个或多个数据库(100)。
20.如权利要求16所述的方法,其特征在于,一个或多个数据库(100)的空间设置方式是,一个或多个数据库(100)位于被安排执行所述解码方法的数据处理硬件(50)的本地。
21.如权利要求20所述的方法,其特征在于,一个或多个数据库(100)被托管于一个本地网之中,本地网也包括数据处理硬件(50),数据处理硬件(50)在通讯网络的本地网中连接到一个或多个数据库(100),二者的本地网彼此类似,所述本地网包括LAN、蓝牙、WLAN、GSM、3G、4G、5G、LTE。
22.如权利要求16所述的方法,其特征在于,一个或多个数据库(100)由一个或多个数据服务器提供。
23.如权利要求22所述的方法,其特征在于,一个或多个数据服务器被异地控制。
24.如权利要求22所述的方法,其特征在于,一个或多个数据库(100)被共享于可操作用于生成编码数据(30)的至少一个编码器(10)与用来接收编码数据(30)、包括了数据处理硬件的至少一个解码器(50)之间。
25.如权利要求16所述的方法,其特征在于,从一个或多个静态数据库(110)的一个或多个元素(E)和/或在编码数据(30)中提供的信息,生成一个或多个动态数据库(120),其中,生成的一个或多个动态数据库(120)用来对编码数据(30)进行解码。
26.一种解码器(50),用于对编码数据(30)进行解码以生成相应的解码数据(60),所述解码器(50)包括:
(a)第一数据处理硬件,用于接收包括参考值(R,300)、关于区域识别符(U)的信息、和关于一个或多个数据库(100)的信息的编码数据(30);
(b)第二数据处理硬件,用于从编码数据(30)中解码参考值(R,300);
(c)第三数据处理硬件,用于按照参考值(R,300)的引导,从一个或多个数据库(100)访问一个或多个元素(E),其中,一个或多个元素(E)代表一个或多个相应的数据块;
(d)第四数据处理硬件,用于生成一个或多个数据块以组成相应的总体的解码输出数据(60)。
27.如权利要求26所述的解码器(50),其特征在于,所述解码器(50)可操作用于执行权利要求16-25中任一个所述的方法。
28.一种编解码器(5),包括至少一个如权利要求14所述的用于对源数据(20)进行编码以生成相应的编码数据(30)的编码器(10),和至少一个如权利要求26所述的用于接收编码数据(30)并对编码数据(30)进行解码以生成相应的解码数据(60)的解码器(50)。
CN201310670963.8A 2012-12-11 2013-12-10 编码器、解码器以及编码方法、解码方法 Active CN103873863B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
GB1222240.2A GB2509055B (en) 2012-12-11 2012-12-11 Encoder and method
GB1222240.2 2012-12-11
EP13005263.2 2013-11-08
EP13005263.2A EP2744213A1 (en) 2012-12-11 2013-11-08 Encoder, decoder and methods of encoding and decoding source data utilizing one or more databases

Publications (2)

Publication Number Publication Date
CN103873863A CN103873863A (zh) 2014-06-18
CN103873863B true CN103873863B (zh) 2019-05-10

Family

ID=47602368

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310670963.8A Active CN103873863B (zh) 2012-12-11 2013-12-10 编码器、解码器以及编码方法、解码方法

Country Status (10)

Country Link
US (1) US20140161195A1 (zh)
EP (1) EP2744213A1 (zh)
JP (2) JP6021792B2 (zh)
KR (1) KR101737158B1 (zh)
CN (1) CN103873863B (zh)
BR (1) BR102013031748B1 (zh)
GB (1) GB2509055B (zh)
IN (1) IN2013MU03703A (zh)
RU (1) RU2613031C2 (zh)
TW (1) TWI549485B (zh)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2527607B (en) 2014-06-27 2016-10-05 Gurulogic Microsystems Oy Encoder, decoder and method
CN105704177A (zh) * 2014-11-26 2016-06-22 阿里巴巴集团控股有限公司 一种ua识别方法、装置
EP3067889A1 (en) 2015-03-09 2016-09-14 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Method and apparatus for signal-adaptive transform kernel switching in audio coding
GB2539488B8 (en) 2015-06-18 2020-08-19 Gurulogic Microsystems Oy Encoder, decoder and method employing palette utilization and compression
WO2017015810A1 (zh) 2015-07-27 2017-02-02 华为技术有限公司 图像处理的方法和装置
US10467006B2 (en) * 2015-12-20 2019-11-05 Intel Corporation Permutating vector data scattered in a temporary destination into elements of a destination register based on a permutation factor
GB2598255B (en) * 2016-02-17 2022-07-27 V Nova Int Ltd Physical adapter, signal processing equipment, methods and computer programs
US10319271B2 (en) * 2016-03-22 2019-06-11 Manufacturing Resources International, Inc. Cyclic redundancy check for electronic displays
CN107196989B (zh) * 2017-03-21 2019-08-09 阿里巴巴集团控股有限公司 一种业务请求的处理方法及装置
CN107392040B (zh) * 2017-04-28 2019-08-09 阿里巴巴集团控股有限公司 一种共识验证的方法及装置
RU2746716C1 (ru) * 2020-07-06 2021-04-19 Федеральное государственное бюджетное образовательное учреждение высшего обазования "Поволжский государственный университет телекоммуникаций и информатики" Способ управления буферной памятью потокового видео
WO2022079466A1 (en) * 2020-10-13 2022-04-21 Chan Kam Fu Data authentication for data compression
US11895362B2 (en) 2021-10-29 2024-02-06 Manufacturing Resources International, Inc. Proof of play for images displayed at electronic displays

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04265020A (ja) * 1991-02-20 1992-09-21 Fujitsu Ltd データ圧縮方式
GB2362055A (en) * 2000-05-03 2001-11-07 Clearstream Tech Ltd Image compression using a codebook
JP2009111649A (ja) * 2007-10-29 2009-05-21 Sony Corp 情報符号化装置および方法、情報検索装置および方法、情報検索システムおよび方法、並びにプログラム
CN102138328A (zh) * 2009-06-17 2011-07-27 古鲁洛吉克微系统公司 图像处理器、图像生成器和计算机程序

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4013828A (en) * 1976-02-20 1977-03-22 Bell Telephone Laboratories, Incorporated Method and arrangement for reducing the bandwidth and/or time required to transmit a dithered image
US4553171A (en) * 1984-01-27 1985-11-12 Xerox Corporation Tile encoding in image printing
GB2190560B (en) * 1986-05-08 1990-06-20 Gen Electric Plc Data compression
FI97096C (fi) * 1994-09-13 1996-10-10 Nokia Mobile Phones Ltd Videonkompressiomenetelmä
JP3482054B2 (ja) * 1995-11-29 2003-12-22 シャープ株式会社 画像符号化装置
KR20020064888A (ko) * 1999-10-22 2002-08-10 액티브스카이 인코포레이티드 객체 지향형 비디오 시스템
US8300043B2 (en) * 2004-06-24 2012-10-30 Sony Ericsson Mobile Communications AG Proximity assisted 3D rendering
US8295617B2 (en) * 2008-05-19 2012-10-23 Citrix Systems, Inc. Systems and methods for enhanced image encoding
AU2010234364B2 (en) * 2009-04-08 2014-12-11 Newrow, Inc. System and method for image compression

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04265020A (ja) * 1991-02-20 1992-09-21 Fujitsu Ltd データ圧縮方式
GB2362055A (en) * 2000-05-03 2001-11-07 Clearstream Tech Ltd Image compression using a codebook
JP2009111649A (ja) * 2007-10-29 2009-05-21 Sony Corp 情報符号化装置および方法、情報検索装置および方法、情報検索システムおよび方法、並びにプログラム
CN102138328A (zh) * 2009-06-17 2011-07-27 古鲁洛吉克微系统公司 图像处理器、图像生成器和计算机程序

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Adaptive algorithms for image coding using;S. Panchanathan 等;《Signal Processing: Image Communication》;19911231;81-92

Also Published As

Publication number Publication date
GB201222240D0 (en) 2013-01-23
RU2013153468A (ru) 2015-06-10
IN2013MU03703A (zh) 2015-07-31
TWI549485B (zh) 2016-09-11
KR20150053870A (ko) 2015-05-19
JP6021792B2 (ja) 2016-11-09
BR102013031748A2 (pt) 2014-09-02
CN103873863A (zh) 2014-06-18
GB2509055B (en) 2016-03-23
BR102013031748B1 (pt) 2023-04-11
JP2016213862A (ja) 2016-12-15
JP2014116940A (ja) 2014-06-26
KR101737158B1 (ko) 2017-05-17
RU2613031C2 (ru) 2017-03-14
US20140161195A1 (en) 2014-06-12
EP2744213A1 (en) 2014-06-18
GB2509055A (en) 2014-06-25
TW201433147A (zh) 2014-08-16

Similar Documents

Publication Publication Date Title
CN103873863B (zh) 编码器、解码器以及编码方法、解码方法
JP2014116940A5 (zh)
TWI505694B (zh) 編碼器及編碼方法
KR101758954B1 (ko) 디코더 및 방법
US10255315B2 (en) Encoder, decoder and method
CN105850136B (zh) 使用预测信号和变换编译信号预测视频信号的方法和装置
TWI511528B (zh) 編碼器、解碼器及編碼方法、解碼方法
CN104641643A (zh) 在分层层级中信号编码、解码和重构期间残差数据的分解
CN104704825B (zh) 分段图像数据的无损压缩
CN110383695A (zh) 用于对数字图像或视频流进行编码和解码的方法和装置
Pizzolante et al. A secure low complexity approach for compression and transmission of 3-D medical images
US20160156933A1 (en) Encoder and decoder, and method of operation
KR102113904B1 (ko) 보간을 이용한 연산 방법, 인코더, 및 디코더
Hassan et al. Spatial domain lossless image data compression method
Olano et al. Variable bit rate GPU texture decompression
Qian et al. JPEG encryption for image rescaling in the encrypted domain
JP5307681B2 (ja) 画像符号化構造の自動生成方法,画像符号化構造の自動生成装置およびそのプログラム
US10536697B2 (en) Method for re-encoding image and apparatus therefor
Chen et al. Recursive code construction for reversible data hiding in DCT domain
JP7147075B2 (ja) 複数の画像全体の圧縮
HUE033524T2 (en) Procedure for compressing data
CN107409222A (zh) 图像重新编码方法及其设备
JP2020530229A (ja) 動き補償参照フレーム圧縮
Hassan et al. Image Processing–I: Spatial domain lossless image data compression method

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