TWI511528B - 編碼器、解碼器及編碼方法、解碼方法 - Google Patents
編碼器、解碼器及編碼方法、解碼方法 Download PDFInfo
- Publication number
- TWI511528B TWI511528B TW102137635A TW102137635A TWI511528B TW I511528 B TWI511528 B TW I511528B TW 102137635 A TW102137635 A TW 102137635A TW 102137635 A TW102137635 A TW 102137635A TW I511528 B TWI511528 B TW I511528B
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- encoded
- encoding
- value
- coding
- Prior art date
Links
Classifications
-
- 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/94—Vector quantisation
-
- 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
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/136—Incoming video signal characteristics or properties
- H04N19/14—Coding unit complexity, e.g. amount of activity or edge presence estimation
-
- 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
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/005—Statistical coding, e.g. Huffman, run 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/3059—Digital compression and data reduction techniques where the original information is represented by a subset or similar information, e.g. lossy compression
-
- 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/3066—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction by means of a mask or a bit-map
-
- 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
- H03M7/6023—Parallelization
-
- 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/6064—Selection of Compressor
-
- 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
- H04N19/102—Methods 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/103—Selection of coding mode or of prediction mode
-
- 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
- H04N19/102—Methods 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/12—Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
-
- 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
- H04N19/102—Methods 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/127—Prioritisation of hardware or computational resources
-
- 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
- H04N19/169—Methods 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/17—Methods 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/176—Methods 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
-
- 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
- H04N19/169—Methods 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/182—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a pixel
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Discrete Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computing Systems (AREA)
- Computer Security & Cryptography (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Compression Of Band Width Or Redundancy In Fax (AREA)
- Error Detection And Correction (AREA)
Description
本發明涉及編碼器,用於編碼對應於多種內容的資料(D1)以生成相應的編碼資料(E2),所述多種內容可以是靜止圖像、視頻內容、圖形內容、音訊內容、測量資料等等。本發明還涉及編碼方法,用於編碼對應於多種內容的資料(D1)以生成相應的編碼資料(E2),所述多種內容可以是靜止圖像、視頻內容、圖形內容、音訊內容、測量資料等等。此外,本發明涉及解碼器,用於解碼前述編碼器生成的編碼格式的資料(E2)。本發明也涉及對前述編碼器生成的資料(E2)進行解碼的方法。進一步,本發明還涉及記錄在非暫時性機器可讀數據存儲介質上的軟體產品,其中,軟體產品在計算硬體上執行,實現上述方法。
有許多當前已知的方法,對資料(D1)進行編碼,生成編碼資料(E2),而且對編碼資料(E2)進行解碼,生成解碼資料(D3)。但是,缺少一種適於寬範圍的內容的資料編碼方法,這些內容由要被編碼的資料(D1)所代表,例如,靜止圖像、視頻內容、音訊內容、或者圖形資料。這些編碼的主要目的是生成比相應的要被編碼的資料(D1)更少佔用空間的編碼資料(E2)。而且,也缺少用來對這樣的編碼資料(E2)進行解碼的相應解碼器。
已知的較好適於壓縮自然圖像資料的圖像編碼方法如JPEG(聯合圖像專家組,一種基於DCT的有損編碼,DCT的含義是離散余弦變換)、JPEG2000(基於小波的編碼)、以及WebP(在編碼過程中採用有損和無失真壓縮的圖像格式編碼),但它們較不適於壓縮文字,或者那些顏色由僅僅幾個顏色值描述並且內容具有相對高的空間頻率成份的圖像。另一個已知的資料編碼方法是GIF(圖形交換格式),它採用基於調色板(palette)的壓
縮演算法,較好適於對能夠用相對小數目的顏色值來呈現圖像的圖像進行編碼,例如256顏色值;但是,如果要用GIF演算法編碼的圖像中包括具有精細的空間漸變顏色變化的自然物件,GIF會產生不期望的人工處理痕跡,這種痕跡能夠在相應的GIF解碼圖像中被注意到。當前已知的PNG(Portable Networks Graphics,便攜網路圖形)編碼總體上類似於GIF編碼,它為編碼圖像資料提供了更多的選項,但是仍然不能較好地適於包含小範圍顏色值的圖像。其它已知的編碼方法,例如,在文字編碼中使用OCR(光字元識別)與字元編碼的組合。OCR有時是一個合適的可用方法,但它對文本在圖像中的位置、文本在圖像中的傾斜、文本的字體、以及文本所處的物件等因素敏感,此外,OCR的實現可能需要可觀的處理能力。
更近的時候,科學出版物中提出了替代的編碼方法,適於對二級數據序列格式的資料進行編碼,表1列出了這些科學出版物的詳細內容。
前述的已知的資料編碼方法,以及已知的對這些編碼資料進行解碼的相應的方法都不能較好地適用於這些資料所代表的寬範圍內容,儘管這些已知的方法採用多類型的彼此不同的方案。為了尋找更有效的編碼演算法以提供改進的資料壓縮,大量的研究工作持續了多年,理想的編碼方法仍未被設計出來,資料壓縮仍是處理流視頻內容的通訊系統面臨的一個具有重大意義的問題。
在美國專利申請US6151409(在電腦系統中壓縮與重建彩色圖像的方法,申請人:臺灣臺北國家科學委員會)中,披露了一種彩色圖像的壓縮方法,它採用可視塊模式截短編碼(VBPIC,visual block pattern truncation coding),其中傳統的塊截短編碼(BTC)被用來編碼初始圖像。該方法根據人的視覺感知能力,定義了邊緣塊。如果一個塊中的BTC的兩個量級化的值的差大於根據視覺特性而定義的一個閾值,則該塊被確定為一個邊緣
塊。在邊緣塊中,比特圖被適配用於計算塊梯度方向,並且匹配塊圖案。
該方法僅適於包括僅4×4的塊的圖像,並且是在90度或45角的清晰邊界具有DC電平的圖像。此外,該方法還能夠去除雜訊,或者是在遮罩未準確命中目標之時去除細節。該方法完全不適於對文本或紋理(texture)進行編碼,也不適於對不能用直線表示的圖案,或者具有不同於45度的倍數的方向的圖案進行編碼。
在公開的美國專利申請US5668932(數位視訊資料壓縮技術,申請人:微軟公司)中,描述了一種替代的方案用於壓縮數位視訊資料,並提供相對于傳統的壓縮方法有所改進的壓縮。在該方案中,圖像資料被分解成單元並且重複地壓縮。採用最適合於單元的內容的壓縮格式對單元進行壓縮。首先確定一個單元與先前幀的隨後單元是否大體一樣。如果單元與先前幀的單元大體一樣,該單元作為前一單元的副本被以壓縮的方式進行編碼,而且,純色壓縮方法與8色壓縮方法也可以被集成於該壓縮技術中。
因此,該方法為每個塊、單元或者子塊使用比特遮罩(bit mask)來表示一個正在被處理的給定圖元是否屬於較高的值,即,較亮的圖元,或者屬於一個較低的值,即較暗的圖元。該方法還嘗試對整個圖像編碼。
公開的PCT專利申請WO00/19374(採用4級塊編碼的圖像資料壓縮與解壓縮,申請人:矽圖形公司,Silicon Graphics Inc.)中,描述了一個用於壓縮和解壓縮圖像資料的方法及裝置,其壓縮一個彩色單元的方法包括步驟:(i)定義彩色單元的至少四個照度級;(ii)為彩色單元生成比特遮罩,其中,比特遮罩具有多個記錄專案,每個記錄專案對應圖元的各自一個,每個記錄專案用於存儲確定與一個圖元相關聯的照度級之一的資料;(iii)計算與照度級的第一個相關聯的圖元的第一平均顏色;(iv)計算與照度級的第二個相關聯的圖元的第二平均顏色;(v)存儲與第一平均顏色和第二平均顏色相關聯的比特遮罩。
可選地,彩色單元包括4×4圖元,比特遮罩包括32比特,每個顏色值包括16比特,這樣,實現了每圖元的4比特壓縮率。該方法適於壓
縮紋理資料,使得紋理資料在紋理映射過程中能夠被有效地緩存和移動,也可能實現照度、強度、alpha紋理的壓縮。
前述的編碼方法存在各種不足,使它們不適於寬泛類型的資料。
本發明的目的之一是,提供一種改進的編碼方法,對資料(D1)進行編碼,生成相應的編碼資料(E2),編碼資料(E2)相對於其相應的未編碼資料(D1)被壓縮。
此外,本發明旨在提供一種編碼器,該編碼器採用對資料(D1)進行編碼的改進的方法,生成相應的編碼資料(E2),編碼資料(E2)相對於其相應的未編碼資料(D1)被壓縮。
進一步,本發明旨在提供對生成自本發明的編碼器的資料(E2)進行解碼的改進的方法。
再進一步,本發明旨在提供對生成自本發明的編碼器的資料(E2)進行解碼的改進的解碼器。
根據本發明的第一方面,提供一種編碼器,用於對資料(D1)進行編碼,生成相應的編碼資料(E2),所述編碼器包括:分析單元,用於分析要被編碼的資料(D1)的一個或多個部分,並把一個或多個部分導向合適的一個或多個編碼單元,其中,一個或多個編碼單元操作用於對其那裡的一個或多個部分進行編碼,生成編碼資料(E2),其中:一個或多個編碼單元操作用於當編碼一個或多個部分時採用彼此不同的編碼演算法;一個或多個編碼單元的至少一個編碼單元操作用於計算其那裡接受的每個部分中的資料值,把資料值再分割成至少兩個集合,為給定的集合計算至少一個聚合值,所述聚合值從給定集合中的資料值中得出,同時保留所述部分的空間遮罩,其中,空間遮罩和代表為至少兩個資料集合所計算的數值的資訊被包括在編碼資料(E2)中。
本發明的優點在於,編碼器計算集合和遮罩的聚合值,這些值定
義要被編碼的資料(D1)的部分的佈局,這些聚合值被包括在出自編碼器的編碼資料(E2)中,提供了要被編碼的資料(D1)中的某些類型的內容的高效編碼。
可選地,編碼器包括輸出編碼器單元,用於接受來自一個或多個編碼單元的編碼輸出資料,並對編碼輸出資料進一步編碼,從編碼器生成編碼資料(E2)。
可選地,編碼器包括輸入階段,用於當要被編碼的資料(D1)不是已經被包括於一個或多個部分之中時,再分割和/或組合要被編碼的資料(D1),生成一個或多個部分。
可選地,在編碼器中,一個或多個編碼單元的至少一個編碼單元操作用於把每個部分中的資料值再分割成2至8個資料集合,或者兩個或更多資料集合,例如,8個資料集合用於8比特二進位資料。
可選地,編碼器操作用於在遠端資料庫中存儲代表一個或多個部分的一個或多個遮罩的資訊,用於當對由編碼器生成的編碼資料(E2)進行解碼時由一個或多個解碼器訪問。
可選地,在編碼器中,所述至少一個聚合值是算術平均值、偏斜平均值、對數平均值、加權平均值、平均值、最小值、最大值、眾數值、或者中間數值。其它類型的計算也是可能的,例如,複雜數學方程的計算結果,如提供一種形式的聚合結果的多項式計算。其它類型的計算的一個示例涉及,用使得初始資料值與最大值最小值的均值之間距離最小化的方式來選擇初始資料集合的值。這種聚合值使得資料集合中的最大誤差最小化,且通常產生小的MSE。
根據本發明的第二方面,提供一種編碼方法,對資料(D1)進行編碼,生成相應的編碼資料(E2),所述方法包括:(a)使用分析單元,用以分析要被編碼的資料(D1)的一個或多個部分,並把一個或多個部分導向合適的一個或多個編碼單元,其中,一個或多個編碼單元操作用於對其那裡的一個或多個部分進行編碼,生成編碼資料(E2),其中,一個或多個編碼單元操作用於當編碼一個或多個部
分時採用彼此不同的編碼演算法;(b)使用一個或多個編碼單元的至少一個編碼單元,用以計算其那裡接受的每個部分中的資料值,把資料值再分割成至少兩個集合,為給定的集合計算至少一個聚合值,所述聚合值從給定集合中的資料值中得出,同時保留所述部分的空間遮罩,其中,空間遮罩和代表為至少兩個資料集合所計算的數值的資訊被包括在編碼資料(E2)中。
可選地,所述方法包括,使用輸出編碼器單元,用以接受來自一個或多個編碼單元的編碼輸出資料,並對編碼輸出資料進一步編碼,生成編碼資料(E2)。
可選地,所述方法包括,使用一個或多個編碼單元的至少一個編碼單元,把每個部分中的資料值再分割成2至8個資料集合,或者兩個或更多資料集合。
可選地,所述方法包括,在遠端資料庫中存儲代表一個或多個部分的一個或多個遮罩的資訊,用於當對編碼資料(E2)進行解碼時由一個或多個解碼器訪問。
可選地,在所述方法中,編碼資料(E2)被進一步編碼和/或壓縮。進一步的編碼和/或壓縮包括以下的至少一個:DPCM(差分脈衝碼調製)、RLE(行程長度編碼)、SRLE(Split run-length coding,分離行程長度編碼,這是由古如羅技微系統公司於2013年3月1日提交的英國專利申請GB1303660.3中公開的一種方法)、EM(熵修正,這是由古如羅技微系統公司於2013年3月1日提交的英國專利申請GB1303658.7中公開的一種方法)、算術編碼、差分編碼、ODelta編碼(這是由古如羅技微系統公司於2013年3月1日提交的英國專利申請GB1303661.1中公開的一種方法)、VLC(可變長度編碼)、Lempel-Ziv編碼(ZLIB、LZO、LZSS、LZ77)、基於Burrow-Wheeler變換的編碼方法(RLE、BZIP2)、哈夫曼(Huffman)編碼。
根據本發明的協力廠商面,提供一種解碼器,用於對編碼資料(E2)進行解碼,生成相應的解碼資料(D3),所述解碼器包括:發送單元,用於發送編碼資料(E2)的一個或多個部分,並把一
個或多個部分導向合適的一個或多個解碼單元,其中,一個或多個解碼單元操作用於對其那裡的一個或多個部分進行解碼,生成解碼資料(D3),其中,至少一個或多個解碼單元操作用於提取包括在編碼資料(E2)中的空間遮罩和代表至少兩個資料集合的聚合值的資訊,並根據由遮罩所定義的元素屬於哪個集合把數值賦值給資料塊中的元素。
可選地,解碼器包括輸出解碼器單元,用於接受來自一個或多個解碼單元的解碼輸出資料,並對解碼輸出資料進一步組合,從解碼器生成全部解碼資料(D3)。
可選地,解碼器包括輸入階段,用以從編碼資料(E2)提取一個或多個部分,以按照編碼資料中的編碼參數之所定義導向到一個或多個解碼單元。
可選地,在解碼器中,一個或多個解碼單元的至少一個操作用於把數值賦值給對應於資料集合的遮罩,其中,有2至8個資料集合,或者兩個或更多資料集合,例如,8個資料集合用於8比特二進位資料。
可選地,解碼器操作用於,當對由編碼器生成的編碼資料(E2)進行解碼時,從遠端資料庫中恢復代表一個或多個部分的一個或多個遮罩的資訊。
可選地,解碼器的實現是使得所述聚合值是以下的至少一個:算術平均值、偏斜平均值、對數平均值、加權平均值、平均值、最小值、最大值、眾數值、或者中間數值。其它類型的計算也是可能的,例如,複雜數學方程的計算結果,如提供一種形式的聚合結果的多項式計算。其它類型的計算的一個示例涉及,用使得初始資料值與最大值最小值的均值之間距離最小化的方式來選擇初始資料集合的值。這種聚合值使得資料集合中的最大誤差最小化,且通常產生小的MSE。
根據本發明的第四方面,提供一種解碼方法,用於對編碼資料(E2)進行解碼,生成相應的解碼資料(D3),所述方法包括:(a)使用發送單元,用以發送編碼資料(E2)的一個或多個部
分,並把一個或多個部分導向合適的一個或多個解碼單元,其中,一個或多個解碼單元操作用於對其那裡的一個或多個部分進行解碼,生成解碼資料(D3),以及(b)使用至少一個或多個解碼單元,用以提取包括在編碼資料(E2)中的空間遮罩和代表為至少兩個資料集合計算的聚合值的資訊,並根據由遮罩所定義的元素屬於哪個集合把數值賦值給資料塊中的元素。
可選地,所述方法包括,使用輸出解碼器單元,用以接受來自一個或多個解碼單元的解碼輸出資料,並對解碼輸出資料進一步組合,生成全部解碼資料(D3)。
可選地,所述方法包括,使用輸入階段,用以從編碼資料(E2)提取一個或多個部分,以按照編碼資料(E2)中的編碼參數之所定義導向到一個或多個解碼單元。
可選地,在所述方法中,一個或多個解碼單元的至少一個解碼單元操作用於把數值賦值給對應於資料集合的遮罩,其中,有2至8個資料集合,或者兩個或更多資料集合,該示例有利地用於8比特二進位資料,儘管進一步的16比特、32比特等二進位資料也是可用的。
可選地,所述方法包括,當對由編碼器生成的編碼資料(E2)進行解碼時,從遠端資料庫中恢復代表一個或多個部分的一個或多個遮罩的資訊。
可選地,當使用所述方法時,所述聚合值的至少一個是以下的至少一個:算術平均值、偏斜平均值、對數平均值、加權平均值、平均值、最小值、最大值、眾數值、或者中間數值。其它類型的計算也是可能的,例如,複雜數學方程的計算結果,如提供一種形式的聚合結果的多項式計算。其它類型的計算的一個示例涉及,用使得初始資料值與最大值最小值的均值之間距離最小化的方式來選擇初始資料集合的值。這種聚合值使得資料集合中的最大誤差最小化,且通常產生小的MSE。
根據本發明的第五方面,提供一個資料通訊系統,所述系統包括至少一個根據本發明的第一方面的編碼器,用於對資料(D1)進行編碼,
生成相應的編碼資料(E2),還包括至少一個根據本發明的協力廠商面的解碼器,用於對編碼資料(E2)進行解碼,生成相應的解碼資料(D3)。
根據本發明的第六方面,提供一種在本發明的第五方面的資料通訊系統中對資料進行通訊的方法,所述方法包括使用本發明的第二方面的方法與本發明的第四方面的方法的組合。
根據本發明的第七方面,提供記錄在非暫時性機器可讀數據存儲介質上的軟體產品,其中,軟體產品在計算硬體上執行,執行根據本發明的第二方面的方法。
根據本發明的第八方面,提供記錄在非暫時性機器可讀數據存儲介質上的軟體產品,其中,軟體產品在計算硬體上執行,執行根據本發明的第四方面的方法。
在不背離本發明的範圍的情況下,本發明的特徵還可以做各種組合。
5‧‧‧資料通訊系統
10‧‧‧編碼器
20‧‧‧資料
25‧‧‧解碼器
30‧‧‧第一階段
40,300,500‧‧‧資料塊
50‧‧‧第二階段
60‧‧‧第三階段
70‧‧‧編碼資料
75‧‧‧解碼資料
100‧‧‧分析單元
110(1)至110(n)‧‧‧編碼單元
130‧‧‧第一解碼階段
135‧‧‧中間解碼資料
150‧‧‧第二解碼階段
155‧‧‧發送單元
160(1)至160(n)‧‧‧解碼單元
170‧‧‧第三解碼階段
200‧‧‧圖像區域
210‧‧‧塊
320‧‧‧遮罩
下面結合附圖對本發明的實施例以例示的方式加以說明。
圖1是編碼器和解碼器的示意圖;圖2A是用於實現資料編碼的一個方法的編碼器的示意圖;圖2B是解碼器的示意圖,解碼器用於實現按照本發明的方案對已經編碼的資料(E2)進行解碼;圖3是圖2A的編碼器的第二編碼階段的示意圖;圖4是用於在圖2A的編碼器的第二編碼階段進行編碼,而將圖像資料再分成資料塊,即部分,的示意圖;圖5是採用圖2A的編碼器進行編碼的資料塊的示意圖;圖6是在計算代表圖5的資料塊的級的集合的聚合值之後,用於圖5的資料塊的遮罩的示意圖;圖7是再生成的解碼資料塊的示意圖,所述再生成的解碼資料塊得自由圖2A的編碼器生成的編碼資料。
在附圖中,使用帶底線的數字來代表專案,所代表的專案位於底線資料所處的位置或接近的位置。無底線數位所表示的專案通過指示線
與無底線數位連接,無底線數位的關聯箭頭表示專案位於箭頭所指的位置。
概括而言,本發明是關於對資料(D1)進行編碼以生成編碼資料D2的改進的方法,該方法提供更高水準的編碼效率。該改進的方法能夠有效地對要被編碼的資料(D1)所代表的多種內容進行編碼,所述內容例如可以是靜止圖像、視頻內容、圖像內容、音訊內容、ECG(心電圖)、測震資料等。
參見圖1,它提供了採用本發明的方法對資料20(D1)進行編碼的編碼器10的示意圖。編碼器10生成編碼資料70(E2),資料70被存儲和/或流化(streamed),以用於後續在一個或多個解碼器25中被解碼。一個或多個解碼器25生成相應的解碼資料75(D3),以被一個或多個用戶所用。解碼資料75(D3)可選地大體上對應於未編碼資料20(D1)。至少一個編碼器10和至少一個對應的解碼器25的組合形成一個資料通訊系統,用5來代表,也即一個編解碼裝置。
參見圖2A,它提供了採用本發明的方法對資料20(D1)進行編碼的編碼器10的示意圖。編碼器10採用第一階段30,如果資料20(D1)不是已經以資料塊的格式存在,它把要被編碼的資料20(D1)分割成資料塊40。可選地,對要被編碼的資料20(D1)的這種分割的結果是,資料塊40具有彼此不同的大小,即,非一致的,這取決於被包括於資料塊40中的內容的性質,這不同於把資料(D1)一致地分割成相應的資料塊的許多已知的編碼演算法。在第二階段50,編碼器10包括分析單元100和多個編碼單元110(1)至110(n),它們使用各種類型的編碼演算法,其中,這些編碼演算法是彼此不同的,一些編碼演算法是已知的演算法,例如但不限於DCT,其中,編碼單元110(1)至110(n)用於選擇性地處理每個資料塊40。可以理解,編碼單元110(1)至110(n)中所採用的一些編碼演算法是彼此大體相似的,但在時間方面以平行的方式被執行。編碼單元110(1)至110(n)中的至少一個將存在於資料塊40中的資料整理成至少兩個級(level),並生成一個或更多遮罩(mask),所述遮罩描述資料塊40中的哪個資料值屬於哪個對應的級,所述編碼單元110(1)至110(n)中的至少一個還計算被整理成每個級的資料的聚合值,例如平均值,或中間值,或
類似的。有利地,遮罩被實現為一個空間比特圖。第三階段60包括對比特圖進行壓縮,以及壓縮每個級的聚合值,以從編碼器10生成編碼資料70(E2),可選地,不同的壓縮演算法可以用於第三階段60,如,RLE(Run-length encoding,行程長度編碼)、DPCM(Differential pulse-code modulation,差分脈衝碼調製)、VLC(Variable-length coding,可變長度編碼)、SRLE、EM(Entropy Modifier,熵修正)、ODelta編碼、距離編碼,儘管其它資料壓縮演算法也可以替代地或補充地被採用,例如多階資料壓縮。可選地,編碼器10可以與其它編碼器組合使用,以取得資料20(D1)的混合編碼,以生成編碼資料70(E2),例如DCT、調色板、DPCM。實踐中,術語“級(level)”可以對應以下中的一個或多個:色度級、照度級、顏色值、亮度、幅度、頻率、強度;儘管如此,“級”還可以包括描述物理變數的其它參數,這取決於要被編碼的資料20(D1)的性質。
在第一階段30,取決於要被編碼的資料20(D1)的性質,資料塊40的大小可以彼此間有不同。可選地,資料20(D1)是一維的,如,音訊內容、ECG資料、測震資料。替代地,資料20(D1)是多維的,如,靜止圖像、視頻內容、圖形內容、3D圖像/視頻/圖形。此外,二維輸入資料包括例如方形、三角形、圓、以及類似的元素,即,任何形式的二維幾何形狀。進一步,三維輸入資料包括例如:立方體的、角錐、圓柱、球形的元素,等。當要被編碼的資料20(D1)包括空間高頻成份和僅幾個級,用以定義資料20(D1)中所代表的空間元素,當前已知的編碼方法尤其效率不好,但這些已知的方法在編碼器10中的處理效率卻是好的。可選地,編碼器10所編碼的資料20(D1)可以是初始資料,或者是通過預編碼處理而形成的資料,如通過DPCM、運動估計、空間預測。
如前所述,在編碼器10的第二階段50,本發明的壓縮方法被採用,如圖3所示。來自第一階段的資料塊40在分析單元100中被分析,以確定一個最合適的編碼方法以被採用來對資料塊40進行編碼;取決於僅僅由分析單元100所執行的分析,或者是分析單元100在一個或多個編碼單元110(1)至110(n)的幫助下所執行的分析,資料塊被導向一個或多個編碼單元110(1)至110(n),其中n是整數,它描述在第二階段50中所採用的不同編碼演算法的總數。可選地,不同編碼演算法的總數,包括已知
的編碼演算法和根據本發明的兩級編碼方法,其中與所述兩級相關聯的計算值是得自平均數、眾數、中位數,或者是得自應用於正被編碼的一個給定資料塊40內的資料值的一個均值計算。可以理解,兩級編碼演算法僅是一個例子,可以採用各種多級的演算法。分析單元100分析存在於資料塊40中的多個不同顏色,以及存在於資料塊40中的空間頻率資訊,從而決定哪個編碼單元110合適用於對給定類型的資料塊40進行編碼。可選地,編碼單元110採用以下一個或多個:DC(direct current,直流)編碼、幻燈片編碼(slide encoding,有時也被稱之為“滑動編碼”)、、DCT(discrete cosine transform,離散余弦變換)、小波編碼、調色板編碼(palette encoding)、資料庫編碼(database encoding)、VQ(ventor quantization,向量量化)編碼、比例編碼(scale encoding)、線編碼(line encoding)、內插值和外插值方法。在來自第二階段50的編碼資料中,包括表示哪個編碼單元110已經被用於給定的資料塊40的資料。編碼單元110中的至少一個編碼單元110(i)採用了根據本發明的編碼演算法,其中i是處於1至n的範圍內的整數,下文會再加以描述。可選地,在提供自第一階段30的資料流程中,資料塊40的大小是會有不同的,其中,提供給第二階段50的資訊中還包括空間地表示在任一個或多個給定的圖像中資料塊40被包括在哪裡的資訊,該資訊被包括在提供自第二階段50的編碼資料中;表示資料塊位置的資料的這種被包括,實現於英國專利申請號GB1214414.3(編碼器)的方案中,該英國專利申請還具有相關的其它申請:US13/584005和EP13002521.6,它也實現於英國專利申請號GB1214400.2(解碼器)的方案中,此英國專利申請還具有相關的其它申請:US13/584047和EP13002520.8,這些英國申請有及相關的美國和歐洲申請在此一併被納入作為參考。替代地,上述的被包括還實現於第三階段60。資料塊的大小可以用資料來呈現,如,用圖元表達的高×寬;資料塊的空間位置可以用與圖像相關的座標來定義,如,從圖像的一個角算起的x,y圖元。分析單元100和第一階段30以重複的方式工作來把要被編碼的資料20(D1)分割成資料塊40,其方式是在一個或多個選定的編碼單元110(1)至110(n)提供最有效的資料壓縮,例如,考慮不同的編碼單元110(1)至110(n)對於編碼器10是可用的,來選擇資料20(D1)中的資料塊40的空間位置和大小。編碼單元110(1)至110(n)的實現,至少部分地,
是以軟體的形式,可以定期地進行升級,以漸進地提高編碼器10的編碼表現,例如,使得編碼器以靈活的方式適應不同類型的資料20(D1)。
參見圖2B,它示出了與編碼器10相對應的解碼器25。解碼器25包括第一解碼階段130,用來接收編碼資料70,並對編碼資料70執行編碼器10的第三階段60所用的編碼的逆操作,以生成用135表示的中間解碼資料。所述中間解碼資料包括例如哪個類型的編碼單元110被對來對給定的資料塊40進行編碼、資料塊40的遮罩、合適的聚合值,這樣的資訊,等等;可選地,聚合值是平均值、眾數值(modal value)、中間數值,但不限於這些。解碼器25進一步還包括第二解碼階段150,第二解碼階段150包括發送單元155和一個或更多解碼單元160(1)至160(n),解碼單元160(1)至160(n)對應於一個或更多編碼單元110的逆操作裝置,其中,中間解碼資料135中的編碼資料塊被發送單元155導向至包括於第二階段的合適的解碼單元160(1)至160(n),以在解碼器25內再生成資料塊40。解碼器25進一步還包括第三解碼階段170,用來應用編碼器10的第一階段中所執行的操作的逆操作,以生成與資料20(D1)和/或編碼資料(E2)大體對應的解碼資料75。此外,或者替代地,資料塊的空間資訊或大小資訊被生成於第一解碼階段130。空間和位置資訊被進一步發送至第二解碼階段150,以使得在一個或更多解碼單元160(1)至160(n)所採用的方法能夠與大小資訊被合適地操作,空間資訊和位置資訊還被發送至第三解碼階段170以使得它將資料塊放置在合適的空間位置。
根據本發明的編碼演算法適合用於對任何大小的資料塊40進行編碼,儘管它可以被有利地用於對包括8至256圖元這樣的元素或數值範圍的資料塊進行編碼。此外,該演算法還被方便地稱作是多級編碼方法。該演算法的首要的和最有用的實現方式是採用兩級,例如,顏色,儘管如上所述它並不限於此,它最優用於編碼的主題例如是:碼命令提示、文本、和其它包括兩級的內容。而且,它也能夠用於實現對多於兩級的內容進行編碼的演算法,例如三級、四級,或更多級,即“多級”,有益地,資料塊被編碼成的級的數量顯著地小於編碼之前的資料塊40的級的數量,例如,至少小3倍,甚至有利地小5倍,乃至更有利地小至少10倍。第二階段50中在編碼之前的資料塊中的級的數量被稱作是“級的初始數”,也就
是代表例如圖像、視頻、音訊、或者圖形內容的資料塊40中的動態級的量度。例如,參見圖4,圖像區域200包括2維陣列形式的1000×1000圖元點,其中,該圖像區域在編碼器10的第一階段被分割成100個資料塊40,用210表示,其中每個塊210對應於100×100圖元,即總計10000個圖元。每個圖元用8位元二進位比特所表達的顏色和/或強度來代表,如此定義了動態範圍的256級。動態範圍還可能被限制,級的數量可以由下面的公式進行地計算:級數=幅度值=最大級-最小級+1
級的數量還可以用資料或資料塊中的所用的不同的級的數量來描述,這樣它的值就可以是等於或小於幅度值。對於級的初始數量,所有不同的公式都可以採用,但輸出的級數典型地代表用在資料塊中的不同級的數量。當編碼單元110(i)對給定的塊210編碼,級的數量被減小,例如,從2至8的範圍,後文將進一步描述的補充資料也一同如此。如果編碼單元110(i)採用多於例如8個級,編碼單元110(i)資料壓縮的效率降低,它要求在資料被送給第二階段50之前使用圖像(區域)200的預處理,例如預測編碼或差分編碼(delta coding)。一個替代方案涉及使用比特來發送聚合值的級,以描述一個值是否在範圍內,例如由最小(min)和最大(max)參數所定義的範圍,用來計算級的聚合值。例如,如果聚合值是10,12,13,15,17,那麼,級值的發送包括像10(=最小聚合值)、以及6至8(=後續比特的數量)、以及(1)011010(1)這樣的值,以描述哪個聚合值被用於不同的級。此外,這個例示中6個比特是足夠的,因為,由於兩個首先發送值10和6,第一個值10和最後一個值17是已知被使用的。一個大體上類似的採用差分編碼的例示產生的數值例如10和2,1,2,2,它們可以被分成例如兩個資料流程,以實現對最小值和差分值的更有效的熵編碼。
編碼單元110(i)中採用的編碼演算法被用於編碼灰度圖像或只使用一個通道的其它資訊。此外,編碼單元110(i)中採用的編碼演算法被用於顏色圖像或其它多通道內容。多通道內容,例如3D顏色圖像,被進行編碼,使得所有的通道被類似地編碼/壓縮,或者,它們被使用彼此不同的方式進行編碼/壓縮,例如,音訊資訊的資料塊被編碼的方式不同於視頻通道的方式。多個通道可以被一起編碼或分開編碼,例如,作為一個24
比特的RGB三聯體(triplet)或者3×8比特(R,G,B)顏色值。如果通道被以彼此不同的方式編碼,可以使用編碼單元110中的不同編碼演算法和資料塊40的不同大小。資料塊40的大小的選擇,如前所述,以要被編碼的資料20(D1)中的內容的類型為基礎來實現。當通道被類似地但分開地編碼,例如分開的R、G、B通道,基於資料內容,資料塊的大小、或者所採用編碼演算法,也可以有所不同。
採用本發明的多級方法所產生的資料塊值還可選地被轉移到一個資料庫,使得它們可以被後續的資料塊使用。在對資料20(D1)進行編碼的過程中,資料庫可以在編碼器10中單獨地生成,並且可選地,在解碼器25中在對編碼資料70(E2)進行解碼的過程中亦如此。替代地,編碼器10和解碼器25二者使用共同的資料庫,資料庫要麼是二者中的某一個生成的,或者是某些其它的設備或者軟體生成的,二者可以類似地使用該資料庫。在兩種情況下,編碼器10和解碼器25所使用的資料庫是一樣的,因此,所發送的資料庫參考在所有的階段中總是代表類似的資料值,即,在編碼器10的計算中,在編碼器10的重構中,亦在解碼器25的重構中。與資料塊值一起,或者不是與資料塊值一起,在所述的多級方法中的採用的遮罩也可以被轉移入資料庫中。遮罩與資料塊值二者都能夠被恢復自資料庫,以被用於編碼未來的資料內容或者用於按照本發明的多級方法編碼的資料塊,從而減小要被儲存和/或發送的資料的大小,進而提高在編解碼裝置5中可取得的壓縮比。
本發明的多級方法還可以被用於例如壓縮資料或者資料庫中的單個資料庫元素。該方法很適合於有損或無失真壓縮。對於存在於要被編碼的資料20(D1)中的許多資料類型,如音訊和圖像或者視頻資料,失真壓縮不僅是可接受的,而且還能夠針對編碼資料70(E2)顯著提高可取得的壓縮比。儘管如此,對於一個其它類型的資料,如資料庫、檔、或二進位資料,它們經常(即便不總是)需要進行無失真壓縮,所以,在所述的多級方法中,經常會出現使用多級的需要,或者替代地,在編解碼裝置5中使用更小的資料塊。
下面結合圖5,對編碼單元110(i)中所採用的編碼演算法做更詳細的描述。圖5中,初始資料塊40的一個示例用300來表示。資料塊300
包括具有圖中所示的灰度值的4×4圖元。有利地,資料塊300適合於在採用本發明的演算法的編碼單元110(i)中有效地編碼,並且在編碼過程中只有小的編碼誤差。
在使用所述演算法時,把資料分成兩個資料集的資料值被首先定義,例如,在編碼器10的計算硬體或專用數位硬體中,按照公式1計算塊300中所有圖元或元素的一個平均值。
其中,“Mean”意為“平均值”,“All”意為“所有”。
接下來,所述演算法定義級的兩個集合,即Level_0和Level_1,其中,Level_0的集合包括值低於MeanAll的所有圖元,Level_1的集合包括值等於或高於MeanAll的所有圖元。這樣,資料塊300的圖元被映射到圖6所示的對應資料塊320,其中,圖元的空間位置被保留,但它們現在僅由於應于集合Level_0和Level_1的兩個級來代表。對於每個級的集合,即Level_0和Level_1,作為聚合值的一個示例的平均值,在前述的計算硬體或專用數位硬體中,按照公式2和公式3被計算。
可選地,當要計算一個空間加權平均級時,上述括弧內的數字均被乘以相關係數,其中,相關係數可以彼此不同。如果編碼器10和解碼器25使用這些係數,以及在合適的時候使用其逆變,就可以在編碼和壓縮時對資料加“浮水印”,用於例如限制對資料時進行未獲授權的複製,以取得付費,例如定期的訂閱費。這可以使得資料內容被某些最終使用者在無成本的方式下以低品質來使用,而被另外一些最終用戶以高品質來使
用,從而取得訂閱費的支付,或類似類型的付費。
其後,參見上述的公式2和公式3,在執行所述演算法時,資料塊300中的圖元的一個空間呈現被作為圖元遮罩320而存儲,與每個級的集合的聚合值,即,MeanLevel_0和MeanLevel_1一起而存儲;替代地,不是把該資料存於資料記憶體中,它們可以從編碼單元110(i)中被流化。雖然在前文中針對所述演算法描述了算術平均值的計算,可以理解,其它類型的計算也是可能的,例如,偏斜平均值、非對稱平均值、對數平均值、幾何平均值、最小值、最大值、眾數值、中間數值。可選地,級的每個集合的數值可以使用任何計算手段來計算,可以使用專用的數位計算硬體和/或執行軟體產品的計算設備。計算聚合值的一個示例是,選擇把初始資料值與最大值最小值的均值之間距離最小化的初始資料值。這樣一種聚合值使得資料集合中的最大誤差最小化,且通常產生更小的MSE。從解碼器的角度,所採用的計算方法不是主要問題,計算手段的可選的例子包括“強力”(brute force)方法、蒙特卡洛(Monte Carlo)方法,等等,從而發現級的最優數量,以及級的集合的數值。優化方法的示例可以是率失真(Rate-Distortion)優化,從而確定在編碼過程中有多少比特被使用,以及有多少誤差可以在編碼資訊中被允許。從所述方法可以不輸出兩個聚合值,一個聚合值可以被輸出自一個或更多其它聚合值的參考,以及一個或多個聚合值相對於參考數值的差值,如9.1818和(172.8-9.1818)。可選地,上述計算的聚合值可以被量級化(quantized),例如,量級成最近的整數值,以獲得在輸出自編碼單元110(i)的輸出資料中的更高程度的資料壓縮。量級化的程度是被需要來代表資料塊300的集合的多少的動態方程。上述示例的量級化成最近的整數提供的聚合值是MeanLevel_0=9,MeanLevel_1=173。
當從編碼單元110(i)生成編碼資料70(E2)時,基於圖元遮罩320,以多個可能的掃描順序,例如,圖6所示的由左及右和由上及下,以“之”字形、迷宮或類似的形式掃描,圖元的空間呈現,即遮罩,被輸出。在一個示例中,遮罩的輸出方式是由左及右和由上及下,使得遮罩在編碼單元110(i)的輸出資料中被表示為0000 1100 0010 0110。
當編碼器10被用來編碼視頻內容(D1),一個序列的圖像被提
供給編碼器10,其中,每個圖像適於被分解成資料塊40,然後,取決於其被分析單元100所分析的內容,使用編碼單元110,資料塊40被適當地進行編碼。如前所述,編碼器10在不同的編碼單元110之間動態地切換,這取決於被提供給第二階段50進行編碼的資料塊的性質。編碼單元110的選擇,如前所述,被記錄在出自第二階段50的編碼資料中。第三階段60應用進一步的編碼/壓縮,例如,使用以下的一個或多個編碼方式:DPCM(差分脈衝碼調製)、RLE(行程長度編碼)、SRLE、EM(熵修正)、算術編碼、差分編碼、ODelta編碼、VLC(可變長度編碼)、Lempel-Ziv編碼方法(如,ZLIB、LZO、LZSS、LZ77)、基於Burrow-Wheeler變換的編碼方法(如,RLE、BZIP2)、以及哈夫曼(Huffman)編碼。遮罩的發送,即,輸出自第二階段50的資料集合的掃描順序,通過資料庫來實現,例如像美國專利申請US2010/0322301(影像處理器和圖像發生器以及相應的電腦程式,申請人:古如羅技微系統公司,發明人:湯瑪斯 卡爾卡依寧)中所描述的那樣,該美國專利早請在此被納入作為參考。使用這樣一個資料庫,提供了遮罩被發送給解碼器的路徑,這能夠提供一種形式的接入鑰匙,例如,它可限制被編碼內容在編碼形式下被進行未獲授權的傳播(即,未獲授權的檔共用)。
圖5的資料塊300的再生成的解碼版本被示於圖7,用500來表示。再生成的資料塊500對應於提供自解碼器25的解碼輸出資料75(D3)的一部分。可以理解,資料塊500中的資訊,相對於初始的資料塊40和被輸入到編碼器10的資料塊300,只發生了很小的損失。
另一個示例具有測量資料的17個樣本,它們可以通過使用本發明的多級方法被有效地編碼。初始樣本值如下:122,153,190,198,188,156,153,119,148,122,122,153,196,120,198,152,154
平均值(=155.53)可以被用來把這些數值分成兩組,但這不是對資料進行編碼的最佳方案。兩組包括的數值如下:低級的組=122,153,153,119,148,122,122,153,120,152,154 (均值=138)
高級的組=190,198,188,156,196,198 (均值=187.66)
具有作為聚合值的平均值(138和188)的這兩個級有可能導致
高的再生成誤差(絕對差之和(SAD)=230)。
採用以下的公式,可能找到一個更好的分割點:(Min+Max)/2=(119+198)/2=158.5
然後,新的兩個組包含如下的數值:低級的組=122,153,156,153,119,148,122,122,153,120,152,154 (均值=139.5)
高級的組=190,198,188,196,198 (均值=194)
具有資料140和194的這兩個級有可能導致更低的誤差(SAD=204)。
兩個級組(低和高)的類似劃分還可以用其它的方式來計算。級組劃分的一個有益方案是當資料的變化為高或最高時,將資料劃分為新的級組。當資料被從相關的最低值到相關的最高值排序時,這樣的最高的變化容易被發現。被排序的資料值如下:119,120,122,122,122,148,152,153,153,153,154,156,188,190,196,198,198,資料的最高變化發生在數值188和156之間(=32)。
有了兩個級,再生成的誤差仍很高,類似的劃分規則可以被繼續用於資料的變化為最高的組。這種情況下,第二個劃分點可以在數值148和122(=26)之間找到。現在,級組的內容如下:group(0)=119,120,122,122,122 (Mean=121)
group(1)=148,152,153,153,153,154,156 (Mean=152.71)
group(2)=188,190,196,198,198 (Mean=194)
其中,“group”意為“組”,“Mean”意為“均值”。
現在,有了這三個級和聚合值121、153、194,SAD僅僅為(6+10+20)=36。
還可以為這三個級使用眾數值或模值(model value),那麼,聚合值如下:122、153和198。現在,SAD是(5+10+20)=35。
採用中位數作為聚合值將產生數值122、153和196。SAD現在是(5+10+18)=33。聚合值總是可以被自由地選擇,為不同的組的不同的聚合值可以被用來產生最好的重構,這取決於被選擇的誤差標準。
如果SAD值33不足夠好,還可以生成更多的級,例如,4到12個級,或者,再生成誤差,即DELTA值,可以採用一個編碼方法如VCL而被編碼。
如果SAD值33足夠好,這三個級的聚合值(122、153、196)被用於遮罩內,該遮罩描述哪個資料值屬於哪個級。現在,因為級1有最多的值,那些遮罩值被置為0,級0的值被置為10,級2的值被置為11,這樣,遮罩的數值呈現為如下的形式:10,0,11,11,11,0,0,10,0,10,10,0,11,10,11,0,0
還可以用二進位遮罩的兩個集合來描述將資料指定到不同級的遮罩。例如,第一個二進位遮罩指定低值(<=156)和高值(>=188)的第一劃分,低值置為0,而高值置為1:0,0,1,1,1,0,0,0,0,0,0,0,1,0,1,0,0,第二個二進位遮罩指定group(0)的低值(<=122)和group(1)的高值(>=188)的第二劃分,二者分別被置為0和1:0,1,1,1,0,1,0,0,1,0,1,1。
劃分資料為不同的集合的一個有利方案是,總把包含最高幅度的集劃分,即(max-min+1)。如果多個集合具有同樣的幅度,那麼,選擇具有最多資料值的集合來分。繼續這種劃分,只要最高幅度足夠小,即,不超過一個閥值。然後,用眾數值或中位數值,為每個集合定義聚合值。
可選地,也可以一次增加一個集合來重複集合的劃分,從而使得當執行新的集合劃分,總有新的聚合值生成。把所有的資料值放入其聚合值與資料值最近的集合,從而再創建新的集合。有許多有利的實現方式可用于集合的創建和聚合值的定義,但是,編碼的最終結果總是採用一個或更多圖元遮罩320和兩個或更多聚合值,以及那些採用編碼單元110(i)所實現的方法所輸出的。
所有的示例遮罩和聚合值都可以通過多樣的方法被進一步壓縮,如delta、RLE、VLC、資料庫,等。
編碼器10和/或解碼器25用專門的電子硬體來實現,如,傳統的數位積體電路、場可程式設計閘陣列(FPGA)或類似的。替代地或補充地,編碼器10和/或解碼器25可以通過執行一個或更多軟體產品來實現,
所述的軟體產品存儲在非暫時性(non-transitory,non-transient)機器可讀數據存儲介質中,在與資料記憶體耦合進行資料通訊的計算硬體上執行。可選地,計算硬體被實現為高速縮減指令集處理器。編碼資料70(E2)是以下的一個或多個形式:被流化的、存儲在可讀光碟這樣的資料載體上、存儲在資料記憶體中,等等。
在不背離本發明範圍的情況下,可以對所述的實施例進行修改。本文所用的術語“包括”、“包含”、“由……組成”應當被理解為非排它的方式,即,允許未被明示描述的專案、部件、或元素的存在。單數或“一個”的使用應當被理解為與複數有關。括弧內的序號的使用是為了說明理解內容,不應當被當作限定的作用。
10‧‧‧編碼器
20‧‧‧資料
30‧‧‧第一階段
40‧‧‧資料塊
50‧‧‧第二階段
60‧‧‧第三階段
70‧‧‧編碼資料
100‧‧‧分析單元
110(1)至110(n)‧‧‧編碼單元
Claims (19)
- 一種編碼器(10),用於對資料(20,D1)進行編碼,生成相應的編碼資料(70,E2),所述編碼器(10)包括:分析單元(100),用於分析要被編碼的資料(20,D1)的一個或多個存有不同值及空間頻率資訊的部分(40),並取決於該分析單元(100)對一個或多個部份(40)的資料值進行分析,把一個或多個部分(40)導向合適的一個或多個編碼單元(110),其中,一個或多個編碼單元(110)操作用於對其那裡的一個或多個部分(40)進行編碼,生成編碼資料(70,E2),其中:多個編碼單元(110)操作用於當編碼多個部分(40)時採用彼此不同的編碼演算法;一編碼器單元(60),用於接受來自一個或多個編碼單元(110)的編碼輸出資料,並對編碼輸出資料進一步編碼,從編碼器(10)生成編碼資料(70,E2);以及一個或多個編碼單元(110)的至少一個編碼單元(110(i))操作用於計算其那裡接受的每個部分(40)中的資料值,把資料值再分割成至少兩個集合,為給定的集合計算至少一個聚合值,所述至少一個聚合值從給定集合中的資料值中得出,同時保留所述部分(40)的空間遮罩(320),其中,空間遮罩(320)和代表為至少兩個資料集合所計算的聚合值的資訊被包括在編碼資料(70,E2)中。
- 如請求項1所述的編碼器(10),其特徵在於,編碼器(10)包括輸入階段(30),用於當要被編碼的資料(20,D1)不是已經被包括於一個或多個部分(40)之中時,再分割和/或組合要被編碼的資料(20,D1),生成一個或多個部分(40)。
- 如請求項1所述的編碼器(10),其特徵在於,編碼器(10)操作用於在遠端資料庫中存儲代表一個或多個部分的一個或多個空間遮罩(320)的資訊,用於當對由編碼器(10)生成的編碼資料(70,E2)進行解碼時由一個或多個解碼器訪問。
- 如請求項1所述的編碼器(10),其特徵在於,所述至少一個聚合值是算術平均值、偏斜平均值、對數平均值、加權平均值、平均值、最小值、最大值、眾數值、或者中間數值。
- 一種對資料(20,D1)進行編碼,生成相應的編碼資料(70,E2)的方法,包括:(a)使用分析單元(100),用以分析要被編碼的資料(20,D1)的一個或多個存有不同值及空間頻率資訊的部分(40),並取決於該分析單元(100)對一個或多個部份(40)的資料值進行分析,把一個或多個部分(40)導向合適的一個或多個編碼單元(110),其中,一個或多個編碼單元(110)操作用於對其那裡的一個或多個部分(40)進行編碼,生成編碼資料(70,E2),其中,多個編碼單元(110)操作用於當編碼多個部分(40)時採用彼此不同的編碼演算法;(b)使用一個或多個編碼單元(110)的至少一個編碼單元(110(i)),用以計算其那裡接受的每個部分(40)中的資料值,把資料值再分割成至少兩個集合,為給定的集合計算至少一個聚合值,所述至少一個聚合值從給定集合中的資料值中得出,同時保留所述部分(40)的空間遮罩(320),其中,空間遮罩(320)和代表為至少兩個資料集合所計算的聚合值的資訊被包括在編碼資料(70,E2)中;及(c)使用輸出編碼器單元(60),用以接受來自一個或多個編碼單元(110)的編碼輸出資料,並對編碼輸出資料進一步編碼,生成全部編碼資料(70,E2)。
- 如請求項5所述的方法,其特徵在於,所述方法包括:在遠端資料庫中存儲代表一個或多個部分的一個或多個空間遮罩(320)的資訊,用於當對編碼資料(70,E2)進行解碼時由一個或多個解碼器訪問。
- 如請求項5所述的方法,其特徵在於,編碼資料(70,E2)被進一步編碼和/或壓縮。
- 如請求項7所述的方法,其特徵在於,所述進一步的編碼和/或壓縮包括以下的至少一個:DPCM(差分脈衝碼調製)、RLE(行程長度編碼)、SRLE(分離行程長度編碼)、EM(熵修正)、算術編碼、差分編碼、ODelta編碼、VLC(可變長度編碼)、Lempel-Ziv編碼(ZLIB、LZO、LZSS、LZ77)、基於Burrow-Wheeler變換的編碼方法(RLE、BZIP2)、哈夫曼編碼。
- 一種解碼器(25),用於對編碼資料(70,E2)進行解碼,生成相應的解碼資料(75,D3),所述解碼器(25)包括:發送單元(155),用於發送編碼資料(70,E2)的一個或多個部分(40),並把一個或多個部分(40)導向合適的一個或多個解碼單元(160),其中,一個或多個解碼單元(160)操作用於對其那裡的一個或多個部分(40)進行解碼,生成解碼資料(75,D3),其中,一個或多個解碼單元(160)的至少一個或多個解碼單元(160(i))操作用於提取包括在編碼資料(70,E2)中的空間遮罩(320)和代表至少兩個資料集合的聚合值的資訊,並根據由空間遮罩(320)所定義的元素屬於哪個集合把數值賦值給資料塊(500)中的元素;以及所述解碼器(25)包括輸出解碼器單元(170),用於接受來自一個或多個解碼單元(160)的解碼輸出資料,並對解碼輸出資料進一步組合,從解碼器(25)生成全部解碼資料(75,D3)。
- 如請求項9所述的解碼器(25),其特徵在於,解碼器(25)包括輸入階段(130),用以從編碼資料(70,E2)提取一個或多個部分,以按照編碼資料(70,E2)中的編碼參數之所定義導向到發送單元(155)和一個或多個解碼單元(160)。
- 如請求項9所述的解碼器(25),其特徵在於,所述解碼器(25)操作用於,當對由編碼器(10)生成的編碼資料(70,E2)進行解碼時,從遠端資料庫中恢復代表一個或多個部分的一個或多個空間遮罩(320)的資訊。
- 一種對編碼資料(70,E2)進行解碼,生成相應的解碼資料(75,D3)的方法,包括:(a)使用發送單元(155),用以發送編碼資料(70,E2)的一個或多個部分(40),並把一個或多個部分(40)導向合適的一個或多個解碼單元(160),其中,一個或多個解碼單元(160)操作用於對其那裡的一個或多個部分(40)進行解碼,生成解碼資料(75,D3),以及(b)使用一個或多個解碼單元(160)中的至少一個或多個解碼單元(160(i)),用以提取包括在編碼資料(70,E2)中的空間遮罩(320) 和代表為至少兩個資料集合計算的聚合值的資訊,並根據由空間遮罩(320)所定義的元素屬於哪個集合把聚合值賦值給資料塊中的元素;以及(c)使用輸出解碼器單元(170),用以接受來自一個或多個解碼單元(160)的解碼輸出資料,並對解碼輸出資料進一步組合,生成全部解碼資料(75,D3)。
- 如請求項12所述的方法,其特徵在於,所述方法包括:使用輸入階段(130),用以從編碼資料(70,E2)提取一個或多個部分,以按照編碼資料(70,E2)中的編碼參數之所定義導向到發送單元(155)和一個或多個解碼單元(160)。
- 如請求項12所述的方法,其特徵在於,一個或多個解碼單元(160)的至少一個解碼單元(160(i))操作用於把數值賦值給對應於資料集合的空間遮罩(320)的元素,其中,有2至8個資料集合,或者兩個或更多資料集合。
- 如請求項12所述的方法,其特徵在於,所述方法包括:當對由編碼器(10)生成的編碼資料(70,E2)進行解碼時,從遠端資料庫中恢復代表一個或多個部分的一個或多個空間遮罩(320)的資訊。
- 一種資料通訊系統(5),所述系統(5)包括至少一個如請求項1所述的編碼器(10),用於對資料(20,D1)進行編碼,生成相應的編碼資料(70,E2),所述系統(5)還包括至少一個如請求項9所述的解碼器(25),用於對編碼資料(70,E2)進行解碼,生成相應的解碼資料(75,D3)。
- 一種如請求項16所述的資料通訊系統(5)中對資料進行通訊的方法,所述方法使用如請求項5所述的方法與如請求項12所述的方法的組合。
- 一種記錄在非暫時性機器可讀數據存儲介質上的軟體產品,其中,所述軟體產品在計算硬體上執行,執行如請求項5所述的方法。
- 一種記錄在非暫時性機器可讀數據存儲介質上的軟體產品,其中,所述軟體產品在計算硬體上執行,執行如請求項12所述的方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB1218942.9A GB2507127B (en) | 2012-10-22 | 2012-10-22 | Encoder, decoder and method |
EP13003859.9A EP2723071A1 (en) | 2012-10-22 | 2013-08-02 | Encoder, decoder and method |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201417585A TW201417585A (zh) | 2014-05-01 |
TWI511528B true TWI511528B (zh) | 2015-12-01 |
Family
ID=47359259
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW102137635A TWI511528B (zh) | 2012-10-22 | 2013-10-18 | 編碼器、解碼器及編碼方法、解碼方法 |
Country Status (10)
Country | Link |
---|---|
US (1) | US20140112589A1 (zh) |
EP (1) | EP2723071A1 (zh) |
JP (1) | JP2014087058A (zh) |
KR (1) | KR101687865B1 (zh) |
CN (1) | CN103780909B (zh) |
BR (1) | BR102013027082A2 (zh) |
GB (1) | GB2507127B (zh) |
IN (1) | IN2013MU03246A (zh) |
RU (1) | RU2567988C2 (zh) |
TW (1) | TWI511528B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2528460B (en) | 2014-07-21 | 2018-05-30 | Gurulogic Microsystems Oy | Encoder, decoder and method |
JP6227186B2 (ja) * | 2015-02-16 | 2017-11-08 | 三菱電機株式会社 | データ圧縮装置、データ伸張装置、データ圧縮方法、データ伸張方法及びプログラム |
KR102477264B1 (ko) * | 2015-09-22 | 2022-12-13 | 삼성전자주식회사 | 텍스쳐를 처리하는 방법 및 장치 |
EP3357037B1 (en) * | 2015-09-30 | 2021-05-12 | Razer (Asia-Pacific) Pte. Ltd. | Information encoding methods, information decoding methods, computer-readable media, information encoders, and information decoders |
US10395356B2 (en) * | 2016-05-25 | 2019-08-27 | Kla-Tencor Corp. | Generating simulated images from input images for semiconductor applications |
US10559093B2 (en) * | 2018-01-13 | 2020-02-11 | Arm Limited | Selecting encoding options |
CN109768959B (zh) * | 2018-12-06 | 2021-02-09 | 成都路行通信息技术有限公司 | 一种gnss设备高频采样下数据包压缩和解压的方法 |
CN109788293A (zh) * | 2019-01-30 | 2019-05-21 | 郑州云海信息技术有限公司 | 一种视频编解码***和方法 |
JP7440544B2 (ja) | 2019-06-18 | 2024-02-28 | エルジー エレクトロニクス インコーポレイティド | 画像デコード方法及びその装置 |
CN111858391A (zh) * | 2020-06-16 | 2020-10-30 | 中国人民解放军空军研究院航空兵研究所 | 一种数据处理过程中优化压缩存储格式的方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6567559B1 (en) * | 1998-09-16 | 2003-05-20 | Texas Instruments Incorporated | Hybrid image compression with compression ratio control |
TW200301651A (en) * | 2001-12-31 | 2003-07-01 | Hewlett Packard Co | Coder matched layer separation for compression of compound documents |
US20050088692A1 (en) * | 1998-03-03 | 2005-04-28 | Minolta Co., Ltd. | Image processing apparatus |
US20060215914A1 (en) * | 2005-03-25 | 2006-09-28 | Ati Technologies, Inc. | Block-based image compression method and apparatus |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5544286A (en) * | 1993-01-29 | 1996-08-06 | Microsoft Corporation | Digital video data compression technique |
WO1995014350A1 (en) * | 1993-11-15 | 1995-05-26 | National Semiconductor Corporation | Quadtree-structured walsh transform coding |
DE4421657A1 (de) * | 1994-02-18 | 1996-02-01 | Team Dr Knabe Ges Fuer Informa | Verfahren zum Erzeugen einer Videoszene |
JPH1051642A (ja) * | 1996-07-31 | 1998-02-20 | Fuji Xerox Co Ltd | 画像処理装置 |
JPH11164150A (ja) * | 1997-11-27 | 1999-06-18 | Ricoh Co Ltd | 画像処理装置 |
US6151409A (en) * | 1998-03-13 | 2000-11-21 | National Science Council | Methods for compressing and re-constructing a color image in a computer system |
SE521021C2 (sv) * | 1998-06-18 | 2003-09-23 | Ericsson Telefon Ab L M | Förfarande och anordning vid överförande av bilder |
US7058218B1 (en) * | 1998-09-28 | 2006-06-06 | Silicon Graphics, Inc. | Method of and apparatus for compressing and uncompressing image data |
EP1170956A3 (en) * | 2000-06-06 | 2004-08-04 | Kabushiki Kaisha Office Noa | Method and system for compressing motion image information |
US7206453B2 (en) * | 2001-05-03 | 2007-04-17 | Microsoft Corporation | Dynamic filtering for lossy compression |
US7505624B2 (en) * | 2005-05-27 | 2009-03-17 | Ati Technologies Ulc | Block-based image compression method and apparatus |
JP4182442B2 (ja) * | 2006-04-27 | 2008-11-19 | ソニー株式会社 | 画像データの処理装置、画像データの処理方法、画像データの処理方法のプログラム及び画像データの処理方法のプログラムを記録した記録媒体 |
JP2007312126A (ja) * | 2006-05-18 | 2007-11-29 | Toshiba Corp | 画像処理回路 |
CN101150719B (zh) * | 2006-09-20 | 2010-08-11 | 华为技术有限公司 | 并行视频编码的方法及装置 |
JP2008283394A (ja) * | 2007-05-09 | 2008-11-20 | Matsushita Electric Ind Co Ltd | 通信装置及び通信用集積回路 |
CN100542298C (zh) * | 2007-09-29 | 2009-09-16 | 中国科学院计算技术研究所 | 一种柱面全景视频编码的块尺寸计算方法和传输方法 |
CN101615986A (zh) * | 2008-06-27 | 2009-12-30 | 华为技术有限公司 | 一种数据传输方法、装置及通信*** |
CN101420614B (zh) * | 2008-11-28 | 2010-08-18 | 同济大学 | 一种混合编码与字典编码整合的图像压缩方法及装置 |
RU2420021C2 (ru) * | 2009-03-24 | 2011-05-27 | Корпорация "САМСУНГ ЭЛЕКТРОНИКС Ко., Лтд." | Способ сжатия изображений и видеопоследовательностей |
FI127117B (fi) * | 2009-06-17 | 2017-11-30 | Gurulogic Microsystems Oy | Kuvaprosessoija ja tietokoneohjelma |
CN101668160B (zh) * | 2009-09-10 | 2012-08-29 | 华为终端有限公司 | 视频图像数据处理方法、装置及视频会议***及终端 |
CN101848224B (zh) * | 2010-05-26 | 2012-11-14 | 中国科学技术大学 | 一种对等网络流媒体网络编码方法 |
-
2012
- 2012-10-22 US US13/657,382 patent/US20140112589A1/en not_active Abandoned
- 2012-10-22 GB GB1218942.9A patent/GB2507127B/en active Active
-
2013
- 2013-08-02 EP EP13003859.9A patent/EP2723071A1/en not_active Withdrawn
- 2013-10-07 RU RU2013144665/08A patent/RU2567988C2/ru active
- 2013-10-15 JP JP2013214397A patent/JP2014087058A/ja active Pending
- 2013-10-15 IN IN3246MU2013 patent/IN2013MU03246A/en unknown
- 2013-10-18 TW TW102137635A patent/TWI511528B/zh active
- 2013-10-21 BR BR102013027082-2A patent/BR102013027082A2/pt not_active Application Discontinuation
- 2013-10-21 CN CN201310495311.5A patent/CN103780909B/zh active Active
- 2013-10-22 KR KR1020130125991A patent/KR101687865B1/ko active IP Right Grant
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050088692A1 (en) * | 1998-03-03 | 2005-04-28 | Minolta Co., Ltd. | Image processing apparatus |
US6567559B1 (en) * | 1998-09-16 | 2003-05-20 | Texas Instruments Incorporated | Hybrid image compression with compression ratio control |
TW200301651A (en) * | 2001-12-31 | 2003-07-01 | Hewlett Packard Co | Coder matched layer separation for compression of compound documents |
US20060215914A1 (en) * | 2005-03-25 | 2006-09-28 | Ati Technologies, Inc. | Block-based image compression method and apparatus |
Also Published As
Publication number | Publication date |
---|---|
US20140112589A1 (en) | 2014-04-24 |
KR20150053830A (ko) | 2015-05-19 |
BR102013027082A2 (pt) | 2014-10-14 |
GB2507127B (en) | 2014-10-08 |
GB201218942D0 (en) | 2012-12-05 |
EP2723071A1 (en) | 2014-04-23 |
RU2567988C2 (ru) | 2015-11-10 |
CN103780909B (zh) | 2018-08-24 |
KR101687865B1 (ko) | 2016-12-19 |
RU2013144665A (ru) | 2015-04-20 |
GB2507127A (en) | 2014-04-23 |
CN103780909A (zh) | 2014-05-07 |
TW201417585A (zh) | 2014-05-01 |
IN2013MU03246A (zh) | 2015-07-10 |
JP2014087058A (ja) | 2014-05-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI511528B (zh) | 編碼器、解碼器及編碼方法、解碼方法 | |
KR101758954B1 (ko) | 디코더 및 방법 | |
US9245353B2 (en) | Encoder, decoder and method | |
KR101687863B1 (ko) | 인코더 및 방법 | |
EP3262835B1 (en) | Image data compression and decompression using minimize size matrix algorithm | |
JP2009081860A (ja) | 損失の無い方法でディジタル画像を符号化するための装置および方法 | |
JP7486883B2 (ja) | Haarベースの点群符号化のための方法および装置 | |
JP2006502604A (ja) | 任意形状オブジェクトの画像圧縮方法 | |
KR100944928B1 (ko) | 버터플라이 프로세서를 이용하여 이산 코사인 변환을인코딩하고 계산하는 장치 및 방법 | |
CN105556850B (zh) | 编码器、解码器及其运行方法 | |
Strom et al. | Lossless compression of already compressed textures | |
RU2683614C2 (ru) | Кодер, декодер и способ работы с использованием интерполяции | |
CN100566419C (zh) | 以无损的方式编码数字图像数据的设备和方法 | |
Mulla et al. | High-speed cluster scanning scheme for three-dimensional constellated image processing | |
Amaar et al. | Image compression using hybrid vector quantization with DCT | |
Drayer | Image Compression: Lossy Blockwise |