CN106170922B - 数据的源编码和解码的设备和方法 - Google Patents
数据的源编码和解码的设备和方法 Download PDFInfo
- Publication number
- CN106170922B CN106170922B CN201580009597.9A CN201580009597A CN106170922B CN 106170922 B CN106170922 B CN 106170922B CN 201580009597 A CN201580009597 A CN 201580009597A CN 106170922 B CN106170922 B CN 106170922B
- Authority
- CN
- China
- Prior art keywords
- data
- probability
- encoder
- coded data
- symbol
- 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
Links
- 238000000034 method Methods 0.000 title claims description 118
- 230000005540 biological transmission Effects 0.000 claims description 16
- 230000008859 change Effects 0.000 claims description 10
- 108090000623 proteins and genes Proteins 0.000 claims description 8
- 238000012163 sequencing technique Methods 0.000 claims description 7
- 238000010276 construction Methods 0.000 claims description 5
- 238000012545 processing Methods 0.000 claims description 5
- 230000005236 sound signal Effects 0.000 claims description 4
- 238000004458 analytical method Methods 0.000 claims description 2
- 238000004088 simulation Methods 0.000 claims description 2
- 238000007906 compression Methods 0.000 description 17
- 230000006835 compression Effects 0.000 description 17
- 230000008901 benefit Effects 0.000 description 8
- 238000012986 modification Methods 0.000 description 8
- 230000004048 modification Effects 0.000 description 8
- 230000009466 transformation Effects 0.000 description 8
- 238000004891 communication Methods 0.000 description 7
- 238000012546 transfer Methods 0.000 description 6
- 238000013144 data compression Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000003044 adaptive effect Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 230000011218 segmentation Effects 0.000 description 3
- 238000001712 DNA sequencing Methods 0.000 description 2
- 241001269238 Data Species 0.000 description 2
- BXNJHAXVSOCGBA-UHFFFAOYSA-N Harmine Chemical compound N1=CC=C2C3=CC=C(OC)C=C3NC2=C1C BXNJHAXVSOCGBA-UHFFFAOYSA-N 0.000 description 2
- 238000003559 RNA-seq method Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000002708 enhancing effect Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000012806 monitoring device Methods 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- PEDCQBHIVMGVHV-UHFFFAOYSA-N Glycerine Chemical compound OCC(O)CO PEDCQBHIVMGVHV-UHFFFAOYSA-N 0.000 description 1
- 150000001413 amino acids Chemical class 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 239000012472 biological sample Substances 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 239000003607 modifier Substances 0.000 description 1
- 239000002243 precursor Substances 0.000 description 1
- 239000000523 sample Substances 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion 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/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/04—Protocols for data compression, e.g. ROHC
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/22—Arrangements for sorting or merging computer data on continuous record carriers, e.g. tape, drum, disc
- G06F7/24—Sorting, i.e. extracting data from one or more carriers, rearranging the data in numerical or other ordered sequence, and rerecording the sorted data on the original carrier or on a different carrier or set of carriers sorting methods in general
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/20—Image preprocessing
- G06V10/28—Quantising the image, e.g. histogram thresholding for discrimination between background and foreground patterns
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/14—Digital recording or reproducing using self-clocking codes
- G11B20/1403—Digital recording or reproducing using self-clocking codes characterised by the use of two levels
- G11B20/1407—Digital recording or reproducing using self-clocking codes characterised by the use of two levels code representation depending on a single bit, i.e. where a one is always represented by a first code symbol while a zero is always represented by a second code symbol
- G11B20/1419—Digital recording or reproducing using self-clocking codes characterised by the use of two levels code representation depending on a single bit, i.e. where a one is always represented by a first code symbol while a zero is always represented by a second code symbol to or from biphase level coding, i.e. to or from codes where a one is coded as a transition from a high to a low level during the middle of a bit cell and a zero is encoded as a transition from a low to a high level during the middle of a bit cell or vice versa, e.g. split phase code, Manchester code conversion to or from biphase space or mark coding, i.e. to or from codes where there is a transition at the beginning of every bit cell and a one has no second transition and a zero has a second transition one half of a bit period later or vice versa, e.g. double frequency code, FM code
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion 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/14—Conversion to or from non-weighted codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion 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/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
- H03M7/4006—Conversion to or from arithmetic code
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion 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/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
- H03M7/4031—Fixed length to variable length coding
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion 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/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/60—General implementation details not specific to a particular type of compression
- H03M7/6017—Methods or arrangements to increase the throughput
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/40—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video transcoding, i.e. partial or full decoding of a coded input stream followed by re-encoding of the decoded output stream
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods 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/91—Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
提供了一种用于对数据(D1,10)进行编码以生成对应编码数据(E2,30)的编码器(20),其中编码数据(E2,30)包括指示待表示在编码数据(E2,30)中的一个或多个符号的频率、概率或区间的信息。编码器(20)可操作为在编码数据(E2,30)中包含指示以下信息是否包含在编码数据(E2,30)中的附加信息,该信息指示一个或多个符号之中的至少一个符号的频率、概率或区间。编码器(20)可操作为在编码数据(D3,30)中包含表达为单个可用性比特信息的、指示一个或多个符号之中的至少一个符号的频率、概率或区间的信息是否包含在编码数据(E2,30)中的附加信息。有益地,编码器(20)可操作为通过使用单个可用性比特值“7”表示在编码数据(E2,30)中包含指示频率、概率或区间信息的信息,并且通过使用单个可用性比特值“0”表示在编码数据(E2,30)中不包含指示频率、概率或区间信息的信息。
Description
技术领域
本公开涉及对数据(D1)编码以生成对应编码数据(E2)的方法。此外,本公开还涉及对前述编码数据(E2)进行解码以生成对应解码数据(D3)和/或解码数据(D3)的转码版本的方法。此外,本公开还涉及可操作为实施前述方法的编码器和解码器;此类编码器和解码器组合构成编码解码器。另外,本公开涉及计算机程序产品,其包括其上存储有计算机可读指令的非暂时性计算机可读存储介质,该计算机可读指令可由计算硬件执行以用于执行上述方法。
背景技术
总的来说,如图1中示出,将输入数据(D1)10编码到编码器20中以生成对应的编码输出数据(E2)30的已知编码方法包括将一个或多个变换40a、40b应用于输入数据(D1)10以生成对应的被编码的变换数据50,其中被编码的变换数据50与定义一个或多个编码表的编码表数据60相关联,一个或多个编码表定义所采用的一个或多个变换。被编码的变换数据50和编码表数据60(即组合为编码输出数据(E2)30)通常经由数据载体和/或数据通信网络传送到一个或多个解码器80,解码器80可操作为对编码输出数据(E2)30进行解码以生成对应的解码数据(D3)90。任选地,解码数据(D3)是数据(D1)的重新生成的版本,但不限于此,例如当转码出现在一个或多个解码器80中时。通常期望,编码输出数据(E2)30相对于输入数据(D1)10被压缩。此外还期望,编码输出数据(E2)30以大致无损的方式压缩,以便当与输入数据(D1)10比较时,解码数据(D3)90尽可能精确。当编码表数据60相对于被编码的变换数据50在大小上显著(即编码表数据60对应于显著数据开销)时,相对于输入数据(D1)10在编码输出数据(E2)30中可实现的数据压缩可能效率低下。在编码器20的某些已知实施方案中,编码表数据60包含指示存在于被编码的变换数据50中的、在输入数据(D1)10中作为原始符号的编码“符号”的频率、概率或区间的信息。编码表数据60不限于此。任选地,编码表数据60还包含与所使用变换及其参数有关的信息。
一些已知实施方案使用上下文信息来修改包含在编码表数据60中的概率。使用上下文信息是修改概率的极有效方式,但仅对某一类型的数据有效,例如在对图像中像素的值或已实施图像变换之后的值进行编码时有效。
例如在维基百科区间编码网站[区间编码-维基百科,百科全书(2013年12月13日访问),URL:http://en.wikipedia.org/wiki/Ranqe encoding]描述了区间编码解码器的基本实施方案。此基本实施方案使用至少一个<EOM>(消息终止)符号。算术编码,URL:http://en.wikipedia.org/wiki/Arithmetic coding极类似于区间编码,但其使用一个浮点数[0,1]和<EOD>(数据终止)符号。此外,区间编码广泛用于需要数据压缩的应用中,例如视频编码和图像编码。当已知不同可能符号的概率时,其对于大数据集进行编码表现极好。然而,如果待编码数据的性质使得符号的概率在一个或多个解码器80处不预先已知,则必需连同编码数据(E2)30一起发送符号的概率。否则,区间编码的压缩效率大大受损。
频率、概率或区间值的传递需要包含额外数据(即“消耗数据”),因此影响可在编码器20中实现的整体压缩效率。此外,当发送更精确的符号频率、概率或区间值时,区间编码压缩效率可改善。然而,发送极精确频率、概率或区间值需要更多的数据大小。换句话说,在针对符号发送精确频率、概率或区间值和在编码数据(E2)中实现最佳可能压缩效率之间存在折衷。
在当前情况下,世界上传送和存储的数据量快速增加。由于发射带宽和数据存储是限制参数,因此对有效数据压缩方法的需求具有极大优势。因此,出现了对压缩数据的改进方法的需求,其提供可通过使用区间编码获得的增强压缩效率,例如在待压缩数据的大小不是很大的情况下。因此,需要允许区间编码用于其中区间编码及类似物的使用先前不可行和/或无益处的情况下的方法。
在较早公开的欧洲专利文件EP 0166607 A2(King,Reginald Alfred,金雷金纳德·阿尔弗雷德)中描述了一种方法,其中(音频)数据(具体来说,时间编码符号(TES))的样本发射的压缩通过以非线性方式(可变长度代码)而非线性表示(固定长度代码)呈现比特而潜在地改进。该方法使用前体代码,其用于传递元素从编码器到解码器出现的概率次序。即,该方法实际上并不发送概率,而是仅发送其次序,只要元素到达即可。
在较早专利文件US 6650996 B1(Garmin Ltd.,佳明有限公司)中,描述了采用数据结构的系统、设备和方法,其中利用定义用于对规范哈夫曼编码数据进行解码的解码结构的第一数据字段和定义符号表的第二数据字段。此外,符号表适于提供与低频索引相关联的符号。
发明内容
本公开尝试提供一种对数据(D1)进行编码以生成对应的编码数据(E2)的改进方法,其中该方法在编码数据(E2)中得到改进的数据压缩,例如在区间编码的上下文中。
本公开还尝试提供一种采用前述改进方法的改进的编码器。
根据第一方面,提供一种用于对数据(D1)进行编码以生成对应的编码数据(E2)的编码器,其中编码数据(E2)包括待表示在编码数据(E2)中的符号的频率、概率或区间值的信息,其特征在于,编码器可操作为在编码数据(E2)中包含附加信息,该附加信息指示在编码数据(E2)中是否包含符号的频率、概率或区间值的信息。
本发明的优点在于,依据符号在待编码的数据(D1)中的出现而在编码数据(E2)内选择性地包含符号的频率、概率或区间值的信息,由此能够提高编码效率,例如压缩比,其可在对较小量的数据(D1)进行编码时例如以高度有益的方式实现。
在前述内容中,稍后更详细地描述术语“是否…的信息”。
根据第一方面的编码器的优点在于,编码器采用改进方法,该方法能够更有效地传递联合使用改进方法生成的编码数据(E2)实现的区间编码频率、概率或区间值。
此外,上述改进方法使得区间编码能够在待编码的符号的量与可能符号的量相比不是很大的情况下使用。通过已知的区间编码技术,因为传递频率、概率或区间值所需的比特的量,所以对此数据进行编码是不可行的和/或不实际的;即,出现与使用已知区间编码技术将频率、概率或区间值从编码器传递到对应解码器相关联的不实际的数据开销。
此外,依据第一方面的改进方法可在具有或不具有一个或多个<EOM>符号的情况下使用;“EOM”用于指示“消息终止”。稍后描述的所有示例性实施方式都显示不具有一个或多个<EOM>符号,但这一个或多个<EOM>符号可通过利用(例如)用于其的概率值1并然后从任何其它概率值减去1而任选地添加到所有示例性实施方式。该解决方案并不需要传递新概率值,因为该概率值已经已知。<EOM>符号的概率还可任选地基于数据符号的量来计算。当计算该概率时,<EOM>符号被添加到概率表,并且其将被给予频率值1。频率的总和也增加1,并且其影响所有符号概率。其还需要针对<EOM>符号传递额外的概率值。
根据第一方面的改进方法可用于对任何类型的数据进行编码,因此具有广泛的潜在使用领域;待编码的“任何类型的数据”任选地包含以下中的一种或多种:基因测序数据、DNA测序数据、RNA测序数据、所捕获音频信号、所捕获视频信号、所捕获图像、文本数据、地震学数据、传感器信号、模拟-数字(ADC)转换数据、生物医学信号数据、日历数据、经济数据、数学数据,但不限于此。在该改进方法中,修改概率的另一方式是在对数据(D1)进行编码以生成对应编码数据(E2)的同时使用自适应概率和区间。自适应概率很好地用于对较大数据流进行编码,尤其在符号的概率在数据流中的不同部分处以变化的方式(但缓慢地)改变的情况下。然而,自适应概率较不适于较小数据流,因为需要额外的计算资源和时间来使概率匹配数据流中符号的校正概率。
依据第一方面的改进方法可用于编码器中,并且该改进方法的对应逆操作可用于对应的解码器中;如上所述,该编码器和解码器组合构成编码解码器。
任选地,在解码器中实施转码以在该处重新格式化解码数据,例如以便向解码器的数据再现装置或解码器的数据存储装置提供兼容数据。该改进方法使用0比特和1比特信息来描述是否需要针对可能存在于数据流符号之中的不同符号传递区间值、概率值或频率值。此改进方法任选地还利用一个或多个概率阈值来确定哪些符号需要其自己的所传递的概率值(即1比特),以及哪些符号例如可通过使用0比特而转义。任选地,所有已转义数据符号可在编码器中并且在解码器中使用概率值1。可替换地,在区间编码方案中,并不需要其自己的频率或概率值(即区间)的所有那些数据符号任选地用转义符号(即区间)传递。另外,用于那些已转义符号的所有符号值任选地在不压缩的情况下例如作为原始值传递。
接下来将更详细地阐明如下概念(i)至(iii):
(i)“经编码符号是已知的”,或
(ii)在编码器中,“在编码数据中是否包含符号的频率、概率或区间值的信息",或
(iii)在解码器中,“在编码数据中被编码的那些符号将使用符号的频率、概率或区间值的信息经历解码”。
在本公开的实施方式中,符号自身一直已知不是必需的,但这对概率所属的那些符号而言是必需已知的。因此,在本公开的实施方式中,已知概率所属的那些符号(例如一列数据),但不必已知其基于实际符号实际上是什么的上下文。因此,必须存在传递(例如)到解码器并且可用于至少一个符号的概率信息。然而,知道实际符号实际上是什么不是必需的。任选地,还存在符号的值实际上已知、并且在此情况下信息当然被利用的可能性。
接下来将描述另一实施例。当传递频率、概率或区间表时,传递中的重要参数是该表的最大索引,并且符号所处的信息是借助所传递概率编码的信息。该表的最大索引表示多少个不同符号或多少个可能不同符号可用于所传递的表中,即存在于输入数据D1中。实施例如下:
4、3、0、1、0、4、3、4
真实最大索引为4(并且最小索引为0),这意味着在该数据中可能存在5(最大–最小+1=4-0+1)个不同符号(0,1,2,3,4)。由于在数据D1中实际上存在仅4个不同符号(0,1,3,4),因此该表还可通过使用3作为最大索引(即可用的不同符号)而非4个可能不同符号传递。当值“3”已用于该表的最大索引值时,任选地采用一些其它机制来传递关于哪些符号用于每一表索引的信息。
这些方法在本公开中别处更详细地阐明。当符号按次序时,一种可能性是传递真实最大索引(4)和可用性比特(例如,在此情况下,11011)。此种传递映射以使得称为“索引”和符号对的表索引0=符号0将为(0,0)。类似地,剩余索引和符号对为(1,1)、(2,3)和(3,4)。还可将索引和符号对直接用于定义不同表索引的使用索引,并然后传递该表的最大索引作为3或不同索引和符号对的计数作为4。通过采用此方法,代码表索引通常按次序,并且仅需要传递符号。当被传递表中的符号基于其频率分类时,采用此方法极有利。
例如,在该情况下,索引和符号对可为(0,4)、(1,0)、(2,3)和(3,1),并且仅值4,0,3,1按次序传递。在一些情况下:
(a)预先定义那些被使用的索引和符号对;
(b)有时,传递被使用符号的索引和索引对表,在其它时候,索引和符号对连同编码数据一起传递;
(c)在另一时间,解码器可从已知位置获取所使用的索引和符号对,并且
(d)在另一不同情况下,解码器可从连同编码数据一起传递的位置获取所使用索引和符号对。
采用依据第一方面的上述改进方法在编码器中编码的数据的若干部分的频率通常相互不同,并且通常它们相对数据熵也相互不同,因此当编码以生成编码数据(E2)时,将该数据(D1)分割(即划分)成多个部分是有益的。有益地,不同代码表用于不同的部分。该改进方法使得例如一个大数据块能够被更有效地分割为较小片(即较小数据块),因为由此优化了代码表或频率表的传递。待编码数据的分割在分割时对于待编码数据(D1)的熵而言实现了相当大的益处,因此能够相对于对应的未编码数据(D1)提供具有增强程度压缩的编码数据(E2)。
任选地,依据前述第一方面,编码器可操作为在编码数据(E2)中包含表达为单个可用性比特信息的、指示符号的频率、概率或区间值的信息是否包含在编码数据(E2)中的附加信息。更任选地,编码器可操作为通过使用单个可用性比特值“1”表示在编码数据(E2)中包含指示符号的频率、概率或区间值的信息,并且通过使用单个可用性比特值“0”表示在编码数据(E2)中不包含符号的频率、概率或区间值的信息。这种可用性比特值还可反过来使用。此外,该可用性信息可还传递为可用索引以及存在的信息的索引的数目。这些索引任选地照现在的样子传递,或通过使用德耳塔编码来传递。任选地,使用不同编码方法来减少传递可用性信息所需的数据的量。所选编码方法任选地包含可用索引的数目,或该编码方法需要传递索引的数目,或该方法需要在传递编码表时针对所有符号传递可用性比特值。
任选地,在编码器中,在编码数据(E2)中待表示的符号的频率、概率或区间值的信息由编码器依据待编码的数据(D1)的性质(即,一个或多个特性)动态地改变;。这些特性任选地涉及以下中的一者或多者:数据(D1)的结构、数据(D1)的大小、存在于数据(D1)中的值的区间、存在于数据(D1)中的元素的大小、与数据(D1)相关联的元数据。此外,这些特性包括以下中的至少一个:数据(D1)的类型、数据(D1)的内容和/或数据(D1)的统计数据。更任选地,编码器可操作为将待编码的数据(D1)划分成多个部分,并且针对每一部分单独地生成对应附加信息,对应附加信息指示在编码数据(E2)中是否包含符号的频率、概率或区间值的信息。
任选地,编码器可操作为分析数据(D1)以确定其中出现的最小值(“min”)和最大值(“max”),并且描述最小值和最大值的信息通过编码器包括在编码数据(E2)中,其中,当采用区间编码时,最小值(“min”)和最大值(“max”)限制可能可用的符号值的范围。更优选地,编码器可操作为在编码数据(E2)中表达存在于数据(D1)中的第一个符号和/或最后一个符号而不需使用可用性信号。
任选地,在将区间编码应用于其以生成编码数据(E2)之前,编码器可操作为修改待编码数据(D1)的熵。
任选地,编码器可操作为对与以下中的至少一者对应的数据进行编码:基因测序数据、DNA测序信息、RNA测序信息、捕获的音频信号、捕获的视频信号、捕获的图像、文本数据、地震学数据、传感器信号、模拟数字(ADC)转换数据、生物医学信号数据、日历数据、经济数据、数学数据,但不限于此。
根据第二方面,提供一种在编码器中对数据(D1)进行编码以生成对应编码数据(E2)的方法,其中编码数据(E2)包括在编码数据(E2)中待表示的符号的频率、概率或区间值的信息,其特征在于,该方法包括:
使用编码器以在编码数据(E2)中包含附加信息,附加信息指示在编码数据(E2)中是否包含符号的频率、概率或区间值的信息。
任选地,该方法进一步包括:
(b)使用编码器以在编码数据(E2)中包含表达为单个可用性比特信息的、关于指示在编码数据(E2)中是否包含一个或多个符号之中的至少一个符号的频率、概率或区间值的信息是否包含在编码数据(E2)中的附加信息。
更任选地,方法进一步包含:
使用编码器以通过使用单个可用性比特值“1”表示在编码数据(E2)中包含符号的频率、概率或区间值的信息,并且通过使用单个可用性比特值“0”表示在编码数据(E2)中不包含符号的频率、概率或区间值的信息。任选地,值“0”和“1”可反过来用于指示这种包含或不包含。
任选地,方法包括使用编码器来依据待编码的数据(D1)的性质(即一个或多个特性)动态地改变在编码数据(E2)中待表示的符号的频率、概率或区间值的信息。在此参考与用于作为技术术语的“性质”和“特性”的定义有关的前述内容。
任选地,方法包括使用编码器来将待编码的数据(D1)划分成多个部分,并且针对每一部分单独地生成对应附加信息,对应附加信息指示在编码数据(E2)中是否包含符号的频率、概率或区间值的信息。
任选地,方法包括对与以下中的至少一者对应的数据(D1)进行编码:基因测序数据、捕获的音频信号、捕获的视频信号、捕获的图像、文本数据、地震学数据、传感器信号,模拟数字(ADC)转换数据、生物医学数据、日历数据、经济数据、数学数据,但不限于此。基因测序数据因为由电泳装置从生物样本生成,所以通常相当大,并且通常按1兆兆字节的量级处理定义核碱基和/或氨基酸的数据。处理此数据以及通信此数据显示出相当大的当代技术挑战。
根据第三方面,提供一种用于对由依据第一方面的编码器生成的编码数据(E2)进行解码的、用于生成解码数据(D3)的解码器。
任选地,解码器包括数据处理硬件,该数据处理硬件可操作为:
(a)接收可用性信号;
(b)接收编码数据(E2)中的发送的频率、概率或区间值;
(c)根据步骤(a)和(b)构造完整频率表、概率表或区间表;以及
(d)使用完整频率表、概率表或区间表对编码数据(E2)进行区间解码以生成经解码的输出数据(D3)。
任选地,解码器可操作为在经解码的输出数据(D3)上执行代码转换以生成相应的代码转换数据。
根据第四方面,提供一种在解码器中对编码数据(E2)进行解码的方法,其特征在于该方法包括实施依据第二方面的方法的步骤的逆步骤。
任选地,方法包括:
(a)接收可用性信号;
(b)接收发送的编码数据(E2)中的频率、概率或区间值;以及
(c)根据步骤(a)和(b)构造完整频率表、概率表或区间表;以及
(d)使用该完整频率表、概率表或区间表对编码数据(E2)进行区间解码以生成经解码的输出数据(D3)。
任选地,该方法包括在经解码的输出数据(D3)上执行转码以生成相应的转码数据。
任选地,在方法中,可用性信号包括至少一个可用性指示比特。
任选地,在方法中,可用性信号包括至少一个可用性指示编码方法。
任选地,在方法中,可用性信号包括至少一个可用性指示索引和/或索引量。
根据第五方面,提供一种包括至少一个依据第一方面的编码器和至少一个依据第三方面的解码器的编码解码器。
根据第六方面,提供一种计算机程序产品,其包括其上存储有计算机可读指令的非暂时性计算机可读存储介质,计算机可读指令可依据第一方面的编码器的计算硬件执行以用于实施依据第二方面的方法。
根据第七方面,提供一种计算机程序产品,其包括其上存储有计算机可读指令的非暂时性计算机可读存储介质,计算机可读指令可依据第三方面的解码器的计算硬件执行以用于实施依据第四方面的方法。
将理解,在不背离由所附权利要求定义的本发明的范围的情况下,本发明的特征易于以各种组合进行组合。
附图说明
现将参考以下图示仅以示例的方式描述本公开的实施方式,在附图中:
图1是编码器和对应解码器的图示,其中编码器可操作为对输入数据(D1)进行编码以生成对应编码输出数据(E2),并且解码器可操作为对编码数据(E2)进行解码以生成对应的解码数据(D3);
图2是依据本公开对数据进行编码的方法的流程图;以及
图3是依据本公开对数据进行解码的方法的流程图。
在附图中,使用了添加下划线的数字以表示下划线数字所在位置上的项或者与下划线数字相邻的项。当数字未添加下划线且附有相关的箭头时,该非下划线数字用于识别箭头所指的通用项。
具体实施方式
总的来说,当采用区间编码(range coding)对数据(D1)进行编码时,待编码的数据(D1)中符号的概率必须已知,否则此区间编码的可实现压缩效率相应地大大受损。每个符号的概率在编码期间定义“区间”,其中概率越大,则区间越大。当对符号进行编码时,根据编码符号的概率更新对应区间。如果区间变得足够小,则区间编码器发射(例如)字节并增大区间。因此,对于更多普通符号,其区间慢慢减小,并且更多符号可在发射字节之前被编码。
当在编码器中实施区间编码时,频率表索引、概率表索引或区间表索引或者符号的频率、概率或区间值在由编码器使用某一给定精度生成的编码数据(E2)中发送,除非在对应解码器处已经已知(即先验);任选地,编码器可操作为在使用频率表索引、概率表索引、区间表索引、频率值、概率值和区间值之间动态地切换以用于待编码的数据(D1)的相互不同部分。例如,当在区间编码解码器内对八比特数据进行编码时,潜在地出现28个符号,即256个符号。如果使用八比特(即一个字节)来发送每一频率、概率或区间值,则将需要256个字节来发送所有频率、概率或区间值。在一些情况下,256个字节潜在地大于从区间编码器取得的压缩数据的量,因此明确需要使用较少比特来传递频率、概率或区间值;换句话说,将频率、概率或区间值从编码器传递到解码器表示潜在地大于待编码数据的实际量的数据开销,对应于较低压缩比性能。
依据本公开的对数据(D1)进行编码的方法与已知方法的区别在于,除符号频率、概率或区间值以外,还发送可用性信号,例如每一符号一个可用性比特。该可用性比特的值对于在编码数据(E2)中表示并具有足够高概率的所有符号有益地为“一”(即“1”),并且对于未在编码数据(E2)中表示的所有符号为“零”(即“0”),并且还对于在编码数据(E2)中表示但具有相对低概率的所有符号为“零”。
在依据本公开的对数据(D1)进行编码的方法中,例如通过将符号的概率与阈值(任选地多于一个阈值)进行比较来检查符号是否具有足够低概率。当对符号进行编码时,不存在于编码数据(E2)中或具有低于为“零”(使用转义代码并且对于该符号不保存区间)或“一”(即,用最小可能区间传递的低概率符号)(即“0”或“1”)的阈值概率的符号的概率与用于对提供到编码器20的输入数据(D1)10进行编码以用于生成编码数据(E2)30的整个区间的大小无关;与编码器20和一个或多个解码器80分别何时采用改进方法(T)及其逆操作(T-1)有关。发送频率、概率或区间和可用性信号(例如,在此实施例中的可用性比特)所需的编码数据的量A(按比特计)是存在的或可用于编码数据(E2)中具有足够高概率的那些符号的数目Ns乘以用于每一频率、概率或区间值的比特的数目NB加上用于所有符号Os的一个可用性比特;换句话说:
A=Ns x NB+Os 式1
依据本公开的改进方法的下一实施例应用于编码器20中以对作为输入数据(D1)10的一组数据值进行编码,来生成对应的编码数据(E2)30。在该实施例中,编码数据流(D1)包含150个数据值,其可包含20个符号(=值)(即从0到19),但是这20个可能数据值(即最小值=2并且最大值=19)中仅8个数据值实际表示于当前数据流中。这些min和max值(min=“最小值”,max=“最大值”)还任选地如在例如ODelta编码(由Gurulogic Microsystems芬兰有限公司于2013年3月1日提交的专利申请GB1303661.1中公开的方法)中描述地那样传递;“ODelta”编码涉及用于提供数据的特别有效编码的、具有偏移和环绕式计算的德耳塔编码方法。其能够减少传递可用性信号所需的一些比特。此外,当在采用区间编码之前使用用于修改熵的某一方法(例如ODelta编码)时,其还减小了可能可用符号值的数据区间。与使用最小和最大值相关联的最好优点在修改熵和进行区间编码的所有方法都使用相同信息并且该信息仅从编码器传递到对应解码器一次时实现。例如,以下表1示出了符号的频率和概率。概率通过将频率除以数据值的总数来计算。
表1:依据本公开的示例性区间编码
在表1中,存在几个具有极低出现概率的符号。在使用7比特来传递概率的情况下,如果使用相同数量的比特来描述每一概率,则将需要20*7=140比特来表达所有概率。如果符号在流中(即在编码数据(E2)30)中的存在通过例如每个符号发送一个可用性比特来表达,则我们仍将需要8*7+20*1=76比特来表达所有概率。
用于实施依据本公开的改进方法的最初实施方式由于使用单独可用性比特将所传递概率的量从20减少到8而早已不同于已知解决方案。关于稍后描述的本公开的其它实施方式,任选地,确保确定给定概率是否发送到解码器80的阈值(例如在7比特概率情况下,该阈值任选地设置为0.018)是有益的。修改阈值改变编码数据(E2)30中进行表达并传递概率到一个或多个解码器80所需的比特的数量。如果选择0.10作为用于由表1描述的数据的阈值,则将仅剩下两个符号,并且然后需要2*x+20*1比特来表达编码数据(E2)30中的概率,其中x是指用于表达概率的比特计数。
找到在实施本公开的改进方法时使用的最佳阈值取决于待从编码器20发送到一个或多个解码器80的编码数据(E2)30的量,并且取决于在编码数据(E2)30中表示的符号的频率。现将更详细地阐明确定一个或多个前述阈值的方式。例如,令
T=阈值,并且
B=用于表达概率的比特计数,
例如,在以上表1中可用6或7比特表达。阈值有益地处于给定推荐极限内,并且不小于阈值下限TLOW,如由式2确定(式2)的:
在表1中的最后四列中,示出了发送到一个或多个解码器80的实际概率。在“具有7比特的概率”列中,示出了在将7比特用于所有8或20个数据值(具有或不具有可用性信号)的情况下发送的概率,其中该可用性信号是指表达符号在流中的存在的信号。“具有7比特的概率(经转义)”对应于利用依据本公开的改进方法的第一实施方式发送的概率,并且“具有7(或6)比特的概率(经修改)”对应于利用依据本公开的改进方法的第二实施方式发送的概率。
在表1的最后三列中的括号中示出的概率实际没有发送到一个或多个解码器80,因为其通过使用零可用性比特来表达。在此实施例中,发送到一个或多个解码器80的概率接近于通过已知编码方法发送的概率,因此利用依据本公开的改进方法并不显著影响实际区间编码的效率,但可通过减少待需要针对频率、概率或区间值发送的比特的数目来大大提高整体压缩效率。此外,将理解,按已知方式或经转义情况发送的概率的总和为128,然而在根据第二实施方式的改进方法中包括如表中所示所发送概率的总和,即114或49。这是由于为通过零可用性比特表达的每一数据值预留概率值“一”而出现的,其中这些数据值中的14或15个,其中12个数据值不存在于流中,并且2或3个值具有比阈值低的概率。
在此实施例中,还使用7比特和阈值,符号4和9连同不存在于数据流中的所有12个符号一起通过零可用性比特来表达。最初,不为不存在于数据流中的那些符号预留区间(称为转义)。现在,将必须存在以下机制,即还传递并不获得其自己的概率的那些符号4和9。这可通过使用下文描述的两个不同实施方式来有效地执行。
以上表1中显示具有“(经转义)”的第一实施方式是创建单独转义符号及其相关联区间的位置。当该符号不具有其自己的区间时,其通过转义(区间)传递。另外,符号值也在其自己的数据流中传递。在此实施例中,该符号值可用5比特传递,因为符号值区间是0至19。任选地,当可用符号除以所有可能符号的比较高(即大于0.25)时,符号值通过用其对应可用性0比特位置传递符号值来有益地通过稍微少量的比特传递。例如,在该示例性情况中,在比特流(即“00100001000011100001”)中,符号值4对应于可用性0比特3,并且符号值9对应于可用性0比特7。因此,仅14个可用性0比特可用于该流中,并且仅需要4比特来呈现,即在编码数据(E2)中表示。任选地避免传递单独的符号值流,即区间编码的概率从正态概率切换成所有符号的相等概率,或尽可能在用于传递实际数据值的转义(区间)符号传递之后转换为所有可用性0比特符号的相等概率,然后在传递实际符号值时概率返回到正态概率。
第二实施方式定义了所有可用性0比特符号将分配概率“1”,并且针对来自整个区间的概率的可用性1比特符号来保存该区间的剩余部分。还描述了在表1中示出的具有“(经修改)”的解决方案。现在,在以上7比特实施例中存在12+2个转义符号,并且其从128个可用值分配14个值。剩余114个值用于分配有可用性1比特的那6个符号。使用6比特用于表1的最后一列中的区间概率也展示出类似实施例,其中在此实施例中,阈值被选择为0.4。如上所述,这次,比特流中的那些可用性0比特符号可理解为转义符号,并且其将全部被分配其自己的概率值“1”,如表1中括号所示。
现将描述传递概率值所需的比特的数量。组合的(转义)解决方案使用7*7+20*1=69比特。在此实施例中,这不是优选解决方案,因为与依据本公开的第一实施方式相比,其在概率表传递中仅节省7(76-69)比特,但使用了3*4=12比特用于额外转义符号值传递。因此,一个或多个转义符号与原始符号相比的更好概率不足以补偿数据大小的增加。这次,其它符号的概率相同,并且也未通过传递那些符号实现益处。
该改进方法还在另一方式中有用,例如当转义许多符号但它们的概率不是很高时。有时,除了用于原始符号以外,将较少量的比特用于转义符号也是可行的,因为最小概率在具有组合转义代码的任一情况下传递。具有修改概率的第二实施方式使用6*7+20*1=62比特(在7比特情况下)或5*6+20*1=50比特(在6比特情况下)。概率的传递任选地甚至通过已知或传递指示在编码数据(E2)30中表示的最频繁符号的概率的信息来更好地优化。
现在,当最高概率值低于64以及低于32时,在这些实施例中,概率任选地用6比特(和5比特)传递,因此总概率表传递仅需要6*6+20*1=56比特(在7比特的实施例情况下),以及5*5+20*1=45比特(在6比特实施例情况下)。此外,该20*1可用性比特流的传递任选地被压缩;除压缩可用性比特以外,通过压缩频率表或概率值实施本公开的实施方式也是可行的;该压缩任选地通过使用一个或多个压缩方法实施。这尤其是当许多可能符号可用并且存在不同的可用性0比特和可用性1比特概率(即许多0或许多1)或者其在编码数据(E2)30中处于比特流的不同部分中时的情况。任选地,当可用符号的区间例如通过传递最小和/或最大值而分开受限时,已知第一和/或最后一个符号可用于该流中,并且那些符号不需要通过使用可用性信号通信,例如不需要传递用于其的可用性比特。仅需要传递用于从最小值+1到最大值-1的区间的可用性信号(例如可用性比特)。在该表1实施例中,与表达符号存在的情况(即第一改进方法)相比,节省了31(76-45)比特。与已知方法相比,节省了95(140-45)比特。这种节省并未失去符号的较不精确概率,并且因此在该实施例中,这些改进方法是用于传递数据的明显有利的方法。
任选地,概率信息以甚至较不精确概率值或通过使用较高阈值在编码数据(E2)30中传递,并且因此,通过编码数据(E2)30在概率表传递中实现了甚至更多数据大小的节省。概率表传递的节省通常还导致熵编码的一些损失。在实施本公开的实施方式时,在选择最好可能表传递方法时,必须考虑此损失。
在一些情况下,本公开的改进方法还任选地用于原始数据以节省数据大小,例如当存储在数据库中、数据载体和类似物上时。将理解,在前述内容中提供的实施例中,原始数据仅包含150个符号和8个不同值,并且因此,原始150*5=750比特信息也可通过将可用性比特信息直接用于原始数据而通过150*3+20*1=470比特传递。具有表传递和熵编码的区间编码能够实现比原始数据小的数据大小。将理解,可在区间编码之前使用不同的修改数据的熵的方法。类似地,其逆运算然后需要在区间解码之后执行。修改熵的这些方法包含(例如)德尔塔编码、ODelta编码,即在由Gurulogic Microsystems芬兰有限公司于2013年3月1日提交的专利申请GB1303661.1中公开的方法(该专利申请在此以引用的方式并入,其中ODelta编码采用德尔塔编码、偏移计算和环绕式计算的组合)、熵修改器(EM),在由Gurulogic Microsystems芬兰有限公司于2013年3月1日提交的专利申请GB1303658.7中公开的方法(该专利申请在此以引用的方式并入)、行程长度编码(RLE)和分割行程长度编码(SRLE),在由Gurulogic Microsystems芬兰有限公司于2013年3月1日提交的专利申请GB1303660.3中公开的方法(在此以引用的方式并入)。
如较早描述的,依据本公开的改进方法在实施区间编码时有益地任选地不利用一个或多个<EOM>符号,因为可替代地传递待编码的数据的量(=待解码的数据的量)或编码数据(将需要被解码)的量。基于待编码的数据的量或在区间编码之后存在于编码数据(E2)30中的编码数据的量可在数据(D3)90借助区间解码被解码时使用。此外,依据本公开,在用于生成编码数据(E2)30的区间编码期间,不需要在数据后传递额外的<EOM>符号。
任选地,当例如通过编码数据(E2)30(但不限于此)传递概率值时,当概率值的总和已知(例如预设)或者已传递到一个或多个解码器80时,不需要传递最后一个概率值。用于存在于数据中的符号、转义、<EOM>或真实符号的最后一个概率值任选地通过从概率总和中减去所有先前传递的值来计算。在任一情况下,需要已知该总和,从而可适当地在一个或多个解码器80中执行对概率值的解码。因此任选地,可通过不传递最后一个概率值而提前从数据大小节省一些比特。
虽然本公开的实施例是关于区间编码提供的,但其还易于在细节上作必要的修改以用于在编码器20中实施的算术编码和二进制算术编码。当此算术编码和二进制算术编码在编码器20中实施时,在实际编码过程中不使用转义代码,而是相反用于确定针对类似特征项目发送概率区间的方式。然而,该方法的效率不及本公开的上述改进方法,其使用可用性信号和概率值来传达给定符号是存在的以及对该给定符号的相关联概率的指示;在此参考已知的“压缩比通常比静态<http://compressions.sourceforge.net/Arithmetic.html#static>编码中更低。虽然对于短输入序列,不发送统计数据的益处可更显著”。因此,本公开的改进方法展示出数据编码技术中的相当大的技术进步。
依据本公开的改进的编码方法易于用在数据处理和数据生成设备中,例如用于个人计算机、便携式具有无线能力的计算机、平板手机计算机、平板计算机、智能电话、移动电话(“蜂窝电话”)、视听装置、数字相机、视频相机、科学仪表、基因测序装置、电视机、监控装置中,但不限于此。这些改进方法任选地在数字硬件(例如专用集成电路(ASIC))中实施。可替换地或附加地,这些改进方法易于使用记录在非暂时性(非暂时的)机器可读数据存储介质上的一个或多个软件产品实施,其中软件产品可在计算硬件上执行。任选地,所述一个或多个软件产品可作为“软件应用”经由通信网络例如下载到具有无线能力的便携式通信设备,例如移动电话。编码器20和对应解码器80易于被构建为编码解码器95,例如供在便携式信号捕获装置中使用,例如数字相机、具有因特网能力的多媒体装置、游戏装置、监控相机、环境监视装置以及诸如此类,但不限于此。
接下来参见图2,示出了在编码器20中对数据(D1)10进行编码以生成对应编码数据(E2)30的方法的步骤。这些步骤任选地如图示依次实施,虽然这些步骤中的一些步骤为任选的,并且其执行次序可改变。
表2:对数据进行编码的方法的步骤
在一个或多个解码器80中,实质上实施表2的相反步骤,即从得自步骤100的编码数据(E2)30提取频率、概率或区间信息,并且采用来自步骤120的数据来确定在编码数据(E2)30中编码的哪些符号将使用该频率、概率或区间信息经历解码并且哪些其它符号不将以此方式解码,其中这种计算的结果集合在一起以提供解码数据(D3)90。任选地,一个或多个解码器80可操作为实施转码,以使得数据D1和数据D3相互不同。此转码例如在一个或多个解码器80相互不同并且数据D3将再现在相互不同的展示装置上(需要转码针对此呈现装置自定义,例如像素显示分辨率和显示纵横比)时是有利的。
接下来参见图3,示出了对编码数据(E2)30进行解码以生成解码数据(D3)90的方法的步骤200至240;任选地,解码数据(D3)90是数据(D1)10的重新生成的版本,但不限于此。在操作中,在步骤200中,解码器80接收可用性信号,即可用性比特或者编码方法或者索引的量和索引自身。此外,在步骤210中,解码器80接收数据编号60(其包含在数据E2,30中)中的所发送频率、概率或区间表,其中解码器80构造完整的频率表、概率表或区间表。如果需要,“0”比特时隙有益地设置为值“0”或“1”,并且“1”比特时隙将设置为所接收的频率、概率或区间的值。如果接收到频率表,则其转换成概率表,以便可在区间编码中使用。将理解,编码器20也始终需要在编码可通过利用区间编码被有效执行之前将频率表转换成概率表。在概率表在解码器80中的构造之后(其中组合后的值的总和为2的幂),在步骤220至240中,则可能对所接收的经变换数据50(其包含在数据E2,30中)进行区间解码,并且因此产生经解码的输出数据(D3)90。步骤200至240实质上对应于图2中步骤100至140的逆步骤。
编码器20和解码器80易于用于许多各种不同的数据处理装置中,例如无线通信设备、音频装置、视听装置、计算装置、视频会议装置、监控装置、科学测量装置、基因测序装置、基因序列分析装置、通信系统硬件和/或软件、通信网络硬件和/或软件,但不限于此。
在不脱离如所附权利要求所限定的本发明的范围的情况下,可以对上文所描述的本发明的实施方式进行修改。用于描述并主张本发明的诸如“包括(including)”、“包括(comprising)”、“并入(incorporating)”、“由……组成(consisting of)”、“具有(have)”、“是(is)”的表达旨在以非排他性的方式进行解释,即也允许存在未明确地描述的项目、部件或元件。对单数的指示也应解释为涉及复数。所附权利要求中包含在括号中的数字旨在帮助对权利要求的理解并不应解释为以任何方式限制这些权利要求所主张的主题。
Claims (23)
1.一种编码器(20),用于对数据(D1,10)进行编码以生成对应编码数据(E2,30),其中所述编码数据(E2,30)包括待在所述编码数据(E2,30)中表示的不同符号的频率、概率或区间值的信息,其特征在于,
所述编码器(20)可操作为在所述编码数据(E2,30)中包含附加信息,所述附加信息指示在所述编码数据(E2,30)中是否包含所述不同符号的频率、概率或区间值的所述信息,所述信息指示所述频率、概率或区间值所属的符号。
2.根据权利要求1所述的编码器(20),其特征在于,所述编码器(20)可操作为在所述编码数据(E2,30)中包含表达为单个可用性比特信息的、指示在所述编码数据(E2,30)中是否包含所述不同符号的频率、概率或区间值的信息的所述附加信息。
3.根据权利要求1所述的编码器(20),其特征在于,待表示在所述编码数据(E2,30)中的所述不同符号的频率、概率或区间值的所述信息由所述编码器(20)依据待编码的所述数据(D1,10)的一个或多个特性动态地改变。
4.根据权利要求2所述的编码器(20),其特征在于,待表示在所述编码数据(E2,30)中的所述不同符号的频率、概率或区间值的所述信息由所述编码器(20)依据待编码的所述数据(D1,10)的一个或多个特性动态地改变。
5.根据权利要求3所述的编码器(20),其特征在于,所述一个或多个特性包括以下中的至少之一:所述数据(D1,10)的类型、所述数据(D1,10)的内容和/或所述数据(D1,10)的统计数据。
6.根据权利要求3所述的编码器(20),其特征在于,所述编码器(20)可操作为将待编码的所述数据(D1,10)划分成多个部分,并且针对每一部分单独地生成对应附加信息,所述对应附加信息指示在所述编码数据(E2,30)中是否包含所述符号的频率、概率或区间值的信息。
7.根据权利要求1所述的编码器(20),其特征在于,所述编码器(20)可操作为分析所述数据(D1,10)以确定其中出现的最小值和最大值,以及
描述所述最小值和最大值的信息通过所述编码器(20)包含在所述编码数据(E2,30)中,其中当采用区间编码时,所述最小值和最大值限制可能可用的符号值的区间。
8.根据权利要求7所述的编码器(20),其特征在于,在不使用可用性信号的情况下,在所述编码数据(E2,30)中表达存在于所述数据(D1,10)中的第一个符号和/或最后一个符号,其中所述可用性信号包括至少一个可用性指示比特。
9.根据权利要求1所述的编码器(20),其特征在于,所述编码器(20)可操作为在将区间编码应用于待编码的所述数据(D1,10)以生成所述编码数据(E2,30)之前,修改待编码的所述数据(D1,10)的熵。
10.根据权利要求1所述的编码器(20),其特征在于,所述编码器(20)可操作为对与以下中的至少之一对应的所述数据(D1,10)进行编码:捕获的音频信号、基因测序数据、捕获的视频信号、捕获的图像、文本数据、地震学数据、传感器信号、模拟数字(ADC)转换数据、生物医学信号数据、日历数据、经济数据、数学数据。
11.一种在编码器(20)中对数据(D1,10)进行编码以生成对应的编码数据(E2,30)的方法,其中所述编码数据(E2,30)包括待在所述编码数据(E2,30)中表示的不同符号的频率、概率或区间值的信息,其特征在于,所述方法包括:
使用所述编码器(20)在所述编码数据(E2,30)中包含附加信息,所述附加信息指示在所述编码数据(E2,30)中是否包含所述不同符号的频率、概率或区间值的所述信息,所述信息指示所述频率、概率或区间值所属的符号。
12.根据权利要求11所述的方法,其特征在于,所述方法进一步包括:
使用所述编码器(20)在所述编码数据(E2,30)中包含表达为单个可用性比特信息的、指示在所述编码数据(E2,30)中是否包含用于所述不同符号的频率、概率或区间值的信息的所述附加信息。
13.根据权利要求11所述的方法,其特征在于,所述方法包括:
使用所述编码器(20)依据待编码的所述数据(D1,10)的一个或多个特性,动态地改变待表示在所述编码数据(E2,30)中的所述不同符号的频率、概率或区间值的所述信息。
14.根据权利要求12所述的方法,其特征在于,所述方法包括:
使用所述编码器(20)依据待编码的所述数据(D1,10)的一个或多个特性,动态地改变待表示在所述编码数据(E2,30)中的所述不同符号的频率、概率或区间值的所述信息。
15.根据权利要求13所述的方法,其特征在于,所述方法包括:
使用所述编码器(20)将待编码的所述数据(D1,10)划分成多个部分,并且针对每一部分单独地生成对应附加信息,所述对应附加信息指示在所述编码数据(E2,30)中是否包含所述符号的频率、概率或区间值的信息。
16.一种解码器(80),用于对通过根据权利要求1至10中的任一项所述的编码器(20)生成的编码数据(E2,30)进行解码以用于生成经解码的输出数据(D3,90)。
17.根据权利要求16所述的解码器(80),其特征在于,所述解码器(80)包括数据处理硬件,所述数据处理硬件可操作为:
(a)接收可用性信号,所述可用性信号包括至少一个可用性指示比特;
(b)接收编码数据(E2,30)中的发送的频率、概率或区间值;
(c)根据步骤(a)和(b)构造完整频率表、概率表或区间表;以及
(d)使用所述完整频率表、概率表或区间表,对所述编码数据(E2,30)进行区间解码以生成所述经解码的输出数据(D3,90)。
18.一种在解码器(80)中对编码数据(E2,30)进行解码的方法,其特征在于,对编码数据(E2,30)进行解码的所述方法包括实施根据权利要求11至15中的任一项所述的方法的步骤的逆步骤。
19.根据权利要求18所述的方法,其特征在于,所述方法包括:
(a)接收可用性信号,所述可用性信号包括至少一个可用性指示比特;
(b)接收所述编码数据(E2,30)中的发送的频率、概率或区间值;
(c)根据步骤(a)和(b)构造完整频率表、概率表或区间表;以及
(d)使用所述完整频率表、概率表或区间表,对所述编码数据(E2,30)进行区间解码以生成经解码的输出数据(D3)。
20.根据权利要求19所述的方法,其特征在于,所述方法包括对所述经解码的输出数据(D3)执行转码以生成对应的转码数据。
21.一种编码解码器,包括至少一个根据权利要求1至10中的任一项所述的编码器(20)以及根据权利要求16或17所述的解码器(80)。
22.一种非暂时性计算机可读存储介质,其上存储有计算机可读指令,所述计算机可读指令能够由根据权利要求1至10中的任一项所述的编码器(20)的计算硬件执行以实施根据权利要求11至15中的任一项所述的方法。
23.一种非暂时性计算机可读存储介质,其上存储有计算机可读指令,所述计算机可读指令能够由根据权利要求16所述的解码器(80)的计算硬件执行以实施根据权利要求18所述的方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB1403038.1A GB2523347B (en) | 2014-02-20 | 2014-02-20 | Encoder, decoder and method |
GB1403038.1 | 2014-02-20 | ||
PCT/EP2015/025007 WO2015124323A1 (en) | 2014-02-20 | 2015-02-20 | Devices and methods of source-encoding and decoding of data |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106170922A CN106170922A (zh) | 2016-11-30 |
CN106170922B true CN106170922B (zh) | 2018-10-02 |
Family
ID=50482548
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201580009597.9A Active CN106170922B (zh) | 2014-02-20 | 2015-02-20 | 数据的源编码和解码的设备和方法 |
Country Status (8)
Country | Link |
---|---|
US (1) | US10003356B2 (zh) |
EP (1) | EP3108583B1 (zh) |
JP (1) | JP2017511997A (zh) |
KR (1) | KR102175020B1 (zh) |
CN (1) | CN106170922B (zh) |
GB (1) | GB2523347B (zh) |
RU (1) | RU2630750C1 (zh) |
WO (1) | WO2015124323A1 (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2543844B (en) * | 2015-11-01 | 2018-01-03 | Gurulogic Microsystems Oy | Encoders, decoders and methods |
WO2018020299A1 (en) | 2016-07-29 | 2018-02-01 | Chan Kam Fu | Lossless compression and decompression methods |
TWI645698B (zh) * | 2017-07-17 | 2018-12-21 | 財團法人工業技術研究院 | 資料發送裝置、資料接收裝置及其方法 |
CN107645665B (zh) * | 2017-10-09 | 2020-02-14 | 郑州云海信息技术有限公司 | 一种WebP熵编码的方法及装置 |
US10922026B2 (en) | 2018-11-01 | 2021-02-16 | Fungible, Inc. | Data processing unit having hardware-based range encoding and decoding |
US10511324B1 (en) * | 2018-11-01 | 2019-12-17 | Fungible, Inc. | Data processing unit having hardware-based range encoding and decoding |
WO2020090841A1 (en) * | 2018-11-02 | 2020-05-07 | Sharp Kabushiki Kaisha | Systems and methods for reference offset signaling in video coding |
JP7041380B2 (ja) * | 2018-11-14 | 2022-03-24 | 日本電信電話株式会社 | 符号化システム、学習方法、及びプログラム |
US10567807B1 (en) * | 2019-02-04 | 2020-02-18 | Google Llc | Adjustable per-symbol entropy coding probability updating for image and video coding |
US11296720B2 (en) * | 2020-08-24 | 2022-04-05 | Innogrit Technologies Co., Ltd. | Data compression using reduced numbers of occurrences |
US12034462B2 (en) | 2022-08-09 | 2024-07-09 | Synaptics Incorporated | Compressing probability tables for entropy coding |
CN116610265B (zh) * | 2023-07-14 | 2023-09-29 | 济南玖通志恒信息技术有限公司 | 一种商务信息咨询系统的数据存储方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0166607A2 (en) * | 1984-06-28 | 1986-01-02 | Reginald Alfred King | Encoding method for time encoded data |
US6650996B1 (en) * | 2001-12-20 | 2003-11-18 | Garmin Ltd. | System and method for compressing data |
EP2387243A2 (en) * | 2009-01-12 | 2011-11-16 | LG Electronics Inc. | Video signal processing method and apparatus using depth information |
CN102986221A (zh) * | 2011-07-19 | 2013-03-20 | 松下电器产业株式会社 | 图像编码装置及其集成电路、以及图像编码方法 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3394352A (en) * | 1965-07-22 | 1968-07-23 | Electronic Image Systems Corp | Method of and apparatus for code communication |
US5680129A (en) * | 1995-07-18 | 1997-10-21 | Hewlett-Packard Company | System and method for lossless image compression |
CN1204751C (zh) * | 1999-04-13 | 2005-06-01 | 松下电器产业株式会社 | 编码数据变换方法、再编码方法、再编码系统以及数据记录媒体 |
WO2004075556A1 (ja) | 2003-02-19 | 2004-09-02 | Ishikawajima-Harima Heavy Industries Co., Ltd. | 画像圧縮装置、画像圧縮方法、画像圧縮プログラム、及び圧縮符号化方法、圧縮符号化装置、圧縮符号化プログラム、並びに復合化方法、復合化装置、復合化プログラム |
JP3797349B2 (ja) | 2003-07-31 | 2006-07-19 | 石川島播磨重工業株式会社 | 圧縮符号化方法、装置、及びプログラム、並びに復号方法、装置、及びプログラム |
US6894628B2 (en) * | 2003-07-17 | 2005-05-17 | Fraunhofer-Gesellschaft Zur Forderung Der Angewandten Forschung E.V. | Apparatus and methods for entropy-encoding or entropy-decoding using an initialization of context variables |
JP4462087B2 (ja) * | 2005-03-25 | 2010-05-12 | カシオ計算機株式会社 | 符号化装置及び符号化方法 |
RU2426227C2 (ru) | 2006-11-14 | 2011-08-10 | Квэлкомм Инкорпорейтед | Кодирование кодов переменной длины с эффективным использованием памяти |
JP2009017232A (ja) * | 2007-07-04 | 2009-01-22 | Toshiba Corp | 算術符号化装置及び画像符号化装置 |
CN103119849B (zh) | 2010-04-13 | 2017-06-16 | 弗劳恩霍夫应用研究促进协会 | 概率区间分割编码器和译码器 |
WO2012097250A1 (en) * | 2011-01-14 | 2012-07-19 | Ntt Docomo, Inc. | Method and apparatus for arithmetic coding and termination |
MX2013001709A (es) * | 2011-07-29 | 2013-03-06 | Panasonic Corp | Metodo de codificacion de imagenes en movimiento, metodo de decodificacion de imagenes en movimiento, aparato de codificacion de imagenes en movimiento, aparato de decodificacion de imágenes en movimiento, y aparato de codificacion y decodificacion de imagenes en movimiento. |
GB201203559D0 (en) | 2012-02-29 | 2012-04-11 | Chargepoint Technology Ltd | Improvements relating to valves |
US8675731B2 (en) | 2012-08-13 | 2014-03-18 | Gurulogic Microsystems Oy | Encoder and method |
GB2511493B (en) | 2013-03-01 | 2017-04-05 | Gurulogic Microsystems Oy | Entropy modifier and method |
US8810439B1 (en) | 2013-03-01 | 2014-08-19 | Gurulogic Microsystems Oy | Encoder, decoder and method |
-
2014
- 2014-02-20 GB GB1403038.1A patent/GB2523347B/en active Active
-
2015
- 2015-02-20 CN CN201580009597.9A patent/CN106170922B/zh active Active
- 2015-02-20 KR KR1020167022055A patent/KR102175020B1/ko active IP Right Grant
- 2015-02-20 US US15/120,058 patent/US10003356B2/en active Active
- 2015-02-20 RU RU2016133691A patent/RU2630750C1/ru active
- 2015-02-20 WO PCT/EP2015/025007 patent/WO2015124323A1/en active Application Filing
- 2015-02-20 JP JP2016549710A patent/JP2017511997A/ja active Pending
- 2015-02-20 EP EP15707552.4A patent/EP3108583B1/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0166607A2 (en) * | 1984-06-28 | 1986-01-02 | Reginald Alfred King | Encoding method for time encoded data |
US6650996B1 (en) * | 2001-12-20 | 2003-11-18 | Garmin Ltd. | System and method for compressing data |
EP2387243A2 (en) * | 2009-01-12 | 2011-11-16 | LG Electronics Inc. | Video signal processing method and apparatus using depth information |
CN102986221A (zh) * | 2011-07-19 | 2013-03-20 | 松下电器产业株式会社 | 图像编码装置及其集成电路、以及图像编码方法 |
Also Published As
Publication number | Publication date |
---|---|
GB2523347B (en) | 2016-01-13 |
US20170250707A1 (en) | 2017-08-31 |
GB201403038D0 (en) | 2014-04-09 |
EP3108583B1 (en) | 2021-09-01 |
CN106170922A (zh) | 2016-11-30 |
JP2017511997A (ja) | 2017-04-27 |
WO2015124323A1 (en) | 2015-08-27 |
GB2523347A (en) | 2015-08-26 |
US10003356B2 (en) | 2018-06-19 |
RU2630750C1 (ru) | 2017-09-12 |
EP3108583A1 (en) | 2016-12-28 |
KR102175020B1 (ko) | 2020-11-06 |
KR20160123302A (ko) | 2016-10-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106170922B (zh) | 数据的源编码和解码的设备和方法 | |
CN106170921B (zh) | 涉及符号压缩的数据的源编码和解码方法及装置 | |
AU2018373495B2 (en) | Frequency component selection for image compression | |
CN101796842B (zh) | 用以最小化存储及总线带宽需求的有效图像压缩方案 | |
CN108696761B (zh) | 一种图片文件处理方法及其设备、系统 | |
US8902992B2 (en) | Decoder for selectively decoding predetermined data units from a coded bit stream | |
CN103636204A (zh) | 基于位预算的图像数据的选择性无损-有损压缩 | |
CN103858433A (zh) | 分层熵编码及解码 | |
CN101494788B (zh) | 视频图像的压缩/解压缩方法与装置 | |
CN102156611A (zh) | 创建动画消息的方法和装置 | |
CN103167289B (zh) | 图像的编码、解码方法及编码、解码装置 | |
US10523973B2 (en) | Multiple transcode engine systems and methods | |
CN1675842B (zh) | 算术编码的方法、设备以及相应解码方法 | |
CN103581684A (zh) | 压缩编码和解码方法及装置 | |
CN106133791B (zh) | 用于颜色压缩的群聚和编码 | |
CN105409129B (zh) | 编码器设备、解码器设备和方法 | |
CN110971904B (zh) | 一种图像压缩的控制方法 | |
CN106921869A (zh) | 一种图片文件处理方法及其设备 | |
CN102687509B (zh) | 使用jpeg-ls的可调节压缩 | |
CN103209322A (zh) | 用于评估宏块候选以用于被转换成跳过宏块的方法、系统和计算机程序产品 | |
CN113038179A (zh) | 视频编码方法、视频解码方法、装置及电子设备 | |
CN109788160A (zh) | 图像传输方法、装置、电子设备及存储介质 | |
CN104811207B (zh) | 传送器装置、接收器装置、数据压缩及数据解压缩方法 | |
KR100625670B1 (ko) | 그림 데이터 압축 방법과 장치 및 그 기록매체 | |
CN117412055A (zh) | 图像处理方法、电子设备和存储介质 |
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 |