TWI455594B - 影像記憶體壓縮方法與裝置 - Google Patents
影像記憶體壓縮方法與裝置 Download PDFInfo
- Publication number
- TWI455594B TWI455594B TW100134112A TW100134112A TWI455594B TW I455594 B TWI455594 B TW I455594B TW 100134112 A TW100134112 A TW 100134112A TW 100134112 A TW100134112 A TW 100134112A TW I455594 B TWI455594 B TW I455594B
- Authority
- TW
- Taiwan
- Prior art keywords
- bit
- block
- encoded
- length
- bits
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 58
- 230000006835 compression Effects 0.000 claims description 60
- 238000007906 compression Methods 0.000 claims description 60
- 208000037170 Delayed Emergence from Anesthesia Diseases 0.000 claims description 30
- 238000013139 quantization Methods 0.000 claims description 27
- 238000004806 packaging method and process Methods 0.000 claims description 22
- 238000010586 diagram Methods 0.000 description 58
- 230000006870 function Effects 0.000 description 12
- 238000004364 calculation method Methods 0.000 description 7
- 230000008602 contraction Effects 0.000 description 4
- 238000009826 distribution Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 238000012856 packing Methods 0.000 description 3
- 238000012935 Averaging Methods 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000011002 quantification Methods 0.000 description 2
- 108091026890 Coding region Proteins 0.000 description 1
- 240000007594 Oryza sativa Species 0.000 description 1
- 235000007164 Oryza sativa Nutrition 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000012886 linear function Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012913 prioritisation Methods 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 235000009566 rice Nutrition 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
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/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/13—Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
-
- 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/124—Quantisation
- H04N19/126—Details of normalisation or weighting functions, e.g. normalisation matrices or variable uniform quantisers
-
- 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/132—Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
-
- 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/146—Data rate or code amount at the encoder output
-
- 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/174—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 slice, e.g. a line of blocks or a group of blocks
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (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)
Description
本揭露係關於一種影像記憶體壓縮(Frame Memory Compression,FMC)方法與裝置。
視訊壓縮標準如MPGE-2、MPEG-4、H.263、和H.264/AVC,已廣泛應用於視訊相關的應用。具備壓縮標準的視訊處理器的效能往往是受限於影像記憶體的容量和系統頻寬。為了加速視訊處理器,常應用影像記憶體壓縮(FMC)技術,藉由壓縮將要被存於影像記憶體的資料,此影像記憶體壓縮可用來減少影像記憶體的容量。並且,因為利用FMC而減少了影像記憶體的資料,在匯流排上傳輸的資料量也因此大大地減少,以符合頻寬的限制。現有的影像記憶體壓縮技術可分為兩種類型。一類是以空間域(spatial domain)為基礎的FMC,而另一類是以頻域(frequency domain)為基礎的FMC。
以空間域為基礎的FMC利用空間域裡像素間的關聯性(correlation)來預測像素值。例如,一些用來減少視訊編解碼器(video Codec),如H.264/AV C,中緩衝影像記憶體(buffered-frame memory)的容量和存取次數的技術,藉由一新增的決定單元,對每一微區塊(micro block,MB)決定一關聯的儲存型態,並根據此MB的關聯的儲存型態來進行簡單的壓縮。一些FMC演算法在處理核心和外部記憶體之間嵌入一壓縮單元、採用4×4區塊作為一壓縮單元來對多種預測模式計算結果、並從中選出一最佳的壓縮結果。一種視訊編解碼器的影像記憶體壓縮技術是採用一種以像素為基礎的(pixel-based)無失真(lossless)的壓縮方法,並且利用一位址表(address table)來保存編碼單元的可隨機存取的特性(random accessibility)。另一技術是考量延遲的問題,來設計一種具有低延遲和可變長度的編碼方法。
第一圖是以空間域為基礎的一種FMC技術的一範例示意圖。此技術使用一固定的壓縮率(fixed compression ratio)和近乎無失真的(near-lossless)FMC,來減少硬體組件的頻寬以及降低影像記憶體的使用率。參考第一圖,一個4×4區塊是一個基本的壓縮單元,此FMC技術利用8種預測模式(模式1~模式8)和結合簡單的量化、差分脈衝編碼調變(differential pulse code modulation,DPCM)、以及可變長度編碼(variable length coding,VLC),如Golomb-Rice編碼,來進行影像記憶體壓縮。使用內部預測(intra prediction)的多種模式來進行FMC可能需要高的複雜性,對於小壓縮區塊的壓縮結果並不顯著。
以頻域為基礎的FMC將像素從空間域轉換到頻域,並且利用頻域裡功率能量的群集效應(clustering effect)來壓縮資料。例如,一種減少視訊記憶體的技術是使用階層式轉換(hierarchical transform),例如Harr轉換,將像素從空間域轉換到頻域,並且對得到的轉換係數進行量化和遊程編碼(run length coding)。一種失真的FMC技術考慮灰階的像素資料,並且使用固定或可變的(variable)量化方式來進行影像記憶體壓縮。有些技術使用修改式的Hadamard轉換和自適性的(adaptive)Golomb-Rice編碼來進行顯示設備的影像記憶體壓縮。有些技術考慮一個固定50%的壓縮效率,使用轉換和自適性的Golomb-Rice編碼來進行影像記憶體壓縮。有些技術使用離散餘弦轉換和修改式的位元平面區域編碼(bit plane zonal coding)來實現移動式的視訊應用的影像壓縮器(frame compressor)。以頻域為基礎的FMC需要高的計算複雜度或複雜的硬體,對於低延遲的需求可能不適用。
本揭露實施例可提供一種影像記憶體壓縮的方法與裝置。
所揭露的一實施例是關於一種影像記憶體壓縮的方法,以適應於一影像處理器,此影像處理器至少包括一量化器(quantizer)、一預測器(predictor)、一可變長度編碼器(variable length encoder)、以及一包裝單元(packing unit)。此方法包含:以一區塊為一壓縮單元,將一影像記憶體裡多幀影像的每一影像切割成多個區塊;應用此量化器,依據一預定的參數,量化此區塊內的多個像素值,進而產生一量化區塊(quantized block)以及自多個像素值的二進位表示法(binary representation)中移除的多個位元;應用此預測器,來產生此量化區塊的一殘餘區塊(residual block);應用此可變長度編碼器,將此殘餘區塊作為輸入並產生一編碼位元流(coded bitstream);以及應用此包裝單元,將此編碼位元流與量化產生的此多個被移除的位元(removed bit)作為輸入,並且藉由使用稱為群組區塊(group of blocks,GOB)的一結構,彈性地共享同一GOB裡多個區塊的可用空間,以產生符合一目標位元率的此區塊的一整個編碼位元字串序列(codeword sequence)。
所揭露的另一實施例是關於一種影像記憶體壓縮的裝置,以適應於一影像處理器,此影像處理器以一區塊為一壓縮單元,將一影像記憶體裡多幀影像的每一影像切割成多個區塊。此裝置包含一量化器、一預測器、一可變長度編碼器、以及一包裝單元。此量化器依據一預定的參數,量化此區塊內的多個像素值,進而產生一量化區塊以及自此多個像素值的二進位表示法中移除的多個位元。此預測器依據此區塊的邊界資料和此量化區塊,使用兩個控制輸入來產生一殘餘區塊。此可變長度編碼器將此殘餘區塊作為輸入,並經由使用一查表(table-lookup)方法而產生一編碼位元流。此包裝單元將此編碼位元流與量化產生的多個被移除的位元作為輸入,並且藉由使用稱為群組區塊(GOB)的一結構,彈性地共享同一GOB裡多個區塊的可用空間,以產生符合一目標位元率的此區塊的一整個編碼位元字串序列。
茲配合下列圖示、實施例之詳細說明及申請專利範圍,將上述及本揭露之其他優點詳述於後。
此實施範例揭露一種有效的FMC技術來壓縮至少一輸入影像。該至少一輸入影像可以是一幀靜態的單一影像(static single image)或是來自一視訊流的一幀影像。此FMC壓縮技術是以區塊為基礎的(block-based),也就是說,以區塊作為基礎的壓縮單元。假設給予一幀尺寸為W×L的影像,此影像可以切割成數個m×n區塊和被切割區塊的總數為(W/m)×(L/n),其中m和n是小於此影像幀的寬度W和長度L。當一些影像幀的W和L不被m和n整除時,使用此技術者可以應用一些額外的處理即可。
在實施範例中所揭露的FMC技術是壓縮區塊。需要注意的是,區塊並非完全獨立地壓縮。後面敘述的位元率控制會考慮多數的鄰近區塊,來執行同一群組區塊中可壓縮位元的分配(compressible bit allocation)。換句話說,所揭露的實施範例在一影像編解碼器中,藉由一個接一個地編碼每一m×n區塊來壓縮一幀影像,並且保證每一編碼區塊的壓縮率符合一給定的目標位元率(一預定的系統參數)。
在所揭露的實施範例中,每一m×n區塊的壓縮技術可以包含量化、預測、可變長度編碼、包裝以及位元率控制的部分。第二圖是根據一實施範例,說明每一m×n區塊的壓縮技術的一流程圖。參考第二圖,量化210採用一個m×n區塊作為輸入,並且依據一預定的參數QP來量化區塊內的像素值,從而產生一個m×n的量化區塊。量化210的技術與傳統的影像壓縮略有不同。量化210是當包裝(packing)240中有剩餘的空間(remaining vacancy)可使用時,保留移除位元(removed bit)以作為補償用(for compensation)的補償位元(padding bit)。預測220將此m×n量化區塊作為輸入,並產生一個m×n的殘餘區塊。可變長度編碼230將此m×n的殘餘區塊作為輸入,並且產生一編碼位元流。包裝240將此編碼位元流和量化210所產生的補償位元作為輸入,並且產生符合一目標位元率的一整個編碼位元字串序列240a。位元率控制(rate-control)250使用稱為群組區塊(GOB)的一結構,在同一GOB彈性地共享區塊的可用空間。一GOB是一群相鄰的區塊,並且是一基本的位元率控制單元,也是一隨機存取單元(random access unit)。
當執行可變長度編碼230時,第二圖的流程圖先執行此區塊所有像素的編碼,再移至包裝240。此流程圖可以容許細微的小變化。例如,處理每一區塊時,可以一像素接著一像素地(pixel-by-pixel)處理,也就是說,可以遞迴地(recursively)處理像素。亦即,在處理像素i之後,判定可用的位元率R(i)是否超過了一門檻值T。一旦超出,就不再處理在此區塊中隨後的像素,此流程圖也直接移至包裝240。此變化如第三圖的範例所示。
每一部分的細節詳述如下。在進行量化210時,預定的參數QP可以用來控制量化水平。量化的方式是移除此像素值的二進位表示法的某些位元。要被移除的位元可以由用戶透過預定的參數QP來決定。位元的移除順序是從此像素值的二進位表示法的最低有效位元(Least Significant Bit,LSB)至最高有效位元(Most Significant Bit,MSB)。例如,量化最低水平,即QP=0,表示每一像素具有沒有被量化的全解析度(full resolution),換言之,沒有位元被移除。量化水平1,即QP=1,表示每一像素的最低有效位元被移除。量化水平2,即QP=2,表示兩個最低重要位元被移除,等等。QP的最大值可由使用多少位元以代表一像素值來決定,例如,如果每一像素值由8個位元來代表,則QP最大值是8。特別是,本揭露中特地設計了將被移除的位元,稱為移除位元,保留並傳送至包裝240,作為補償之用。量化後,此處理的區塊稱為量化區塊,做為預測220的輸入。
第四A至第四C圖是根據一實施範例,說明量化210步驟的一示意圖,其中QP=1。第四A圖說明一個壓縮單元,即一m×n的區塊。第四B圖說明一m×n區塊的位元平面,即第四A圖之m×n區塊中每一像素值的二進位表示法,其中每一像素的最低有效位元將被移除。經過以QP=1進行量化後,每一像素的最低有效位元(LSB)被移除,並且所有移除的位元都被保留作為補償位元430,如第四C圖的範例所示。在本揭露中,編碼區塊容許有不同的QP參數,並且QP[i]代表區塊i的QP。
在進行預測220中,上方和左邊鄰近區塊的邊界像素值以及同一區塊中已編碼的像素值的資訊被用來預測編碼像素(encoding pixel)(即將被編碼的像素)。一預測函數(prediction function)計算被預測像素的像素值。此預測函數使用上方和左邊鄰近區塊的邊界像素值以及同一區塊中已編碼的像素值做為輸入參數。此預測函數,例如可以是一個線性函數如一簡單的平均函數(average function)或是一權重函數(weighting function)。許多預測函數都可以使用,平均函數或是權重函數只是範例而已。預測誤差(prediction error)定義為預測像素值(predicted pixel value)與實際像素值(actual predicted pixel value)之間的誤差。對於那些沒有上方或左邊鄰近區塊的區塊,當上方或左邊鄰近區塊的邊界像素值其中有一資訊無法取得時,可以僅使用可取得的像素值的資訊搭配同一編碼區塊內之已編碼的像素值的資訊,來進行預測。對於左上角的區塊,也就是既沒有上方的鄰近區塊也沒有左邊鄰近區塊的區塊,當沒有上方也沒有左邊的鄰近區塊的邊界像素值的資訊可以取用時,在同一編碼區塊內之已編碼的像素值的資訊可以用來執行預測。
整個預測可以一像素接著一像素地進行,直到編碼區塊的所有m×n個像素都進行了預測。m×n像素可依一特定順序一個接一個地處理,稱為編碼順序(coding order)。例如,此特定順序可設計如下。整個預測可從右下角(button-right)的像素開始。在最右邊的行(第n行)的n-1個像素是第一優先進行預測(減去起始像素),和最下面的列(第m列)的m-1個像素的預測是第二優先(減去起始像素)。編碼順序可以是多樣化的。然而,以上描述的順序僅是順序的原則性,而不是一限制性(restrictive)順序的完整描述。
為便於說明,舉一4×4區塊(m=n=4)為範例來說明如何進行預測,但本揭露中並不局限於此範例的情況。第五A至第五B圖是根據一實施範例,說明執行一4×4區塊的預測的一示意圖。第五A圖說明一4×4區塊有四個上邊相鄰(adjacent)像素和四個左邊相鄰像素。如第五B圖說明,此範例假設四個上邊相鄰像素,標示為U0、U1、U2、以及U3,和四個左邊相鄰像素,標示為L0、L1、L2、以及L3,都是可進行預測的。如第五B圖實施範例中的編碼順序所示,預測220可從右下角具編碼順序“0”的像素開始,接著是在中間具編碼順序“1”的像素等。在此範例中,假設使用平均函數作為預測函數。依此,第一像素的預測值為(L3+U3)/2(即(108+116)/2),預測誤差(即殘餘)為2(即112減去110)。根據同樣的方式,第二像素預測值為(116+110)/2=113,這是U3與第一個像素的平均。結果,第二個像素的預測誤差為5(即113減去108)。第五A圖中編碼區塊的最終相對應的殘餘區塊如第六圖所示。
可變長度編碼230可以使用多種可變長度編碼方法來進行。例如,當執行可變長度編碼230時,使用的可變長度碼可以是霍夫曼碼、Golomb-Rice碼等。本揭露中可以整合一些改進,以使得所使用的可變長度編碼的壓縮效率更高。例如,使用可變長度編碼可以根據值的概率分佈,其中出現概率越高的值是用一越短的編碼位元字串(codeword)來編碼。有多種編碼概率分佈可以使用。例如,根據像素在區塊中的位置、以及上方和左邊鄰近區塊的邊界是否可使用等資訊,來選擇適當的編碼概率分佈。每一概率分佈可以由一個別的概率編碼表(coding table)來實現,其中編碼表的每一元素包含至少兩欄位。此兩欄位是一編碼值(coding value)及其相對應的編碼位元字串。每一編碼表包含一個特殊的元素。此特殊元素的編碼位元字串是全部為0或是全部為1。
透過使用一代表性編碼值(representative coding value)來取代多個編碼值,編碼表中元素的個數可以縮減。在編碼表中,編碼值與編碼位元字串之間的對映是多對一的關係。也就是說,多個編碼值可以對映到相同的編碼位元字串。編碼位元字串的最大長度可由多對一的屬性來控制。例如,那些編碼位元字串的長度超過一預定門檻值的殘餘可以被分配到長度小於此門檻值的編碼位元字串。結果,幾種不同的殘餘可以容許對映至相同的編碼位元字串。在本揭露中,當m×n個殘餘已完全被編碼後,編碼區塊的可用位元率沒有被徹底地利用時,可以從多到一對映的編碼位元字串附加一些額外的位元,來辨別確實的殘餘。
在實施範例中,不同的可變長度編碼可能會產生不同類型的編碼表,例如Huffman編碼或Golomb-Rice編碼。第七圖是根據一實施範例,說明在Golomb-Rice編碼中產生的可變長度編碼表的一示意圖。這些範例的編碼表有許多特性。其中一個特性是藉由使用一個共同的殘餘值來代表數個不同的殘餘值以減少殘餘空間(residual space)的大小。例如,如果一個像素經量化水平為1的量化後以7個位元來表示,則殘餘空間的大小為255,範圍從-127到127。依此,此範例中的編碼表,殘餘空間的大小可以降到127,範圍從-64到63。在第七圖例子中,此殘餘值-127可以相當等於在此減少殘餘空間(reduced residual space)裡的殘餘值1。
一輸入殘餘區塊的一編碼位元流是多個連續的位元流,這是依一特殊的編碼順序並經由一個接一個(one-by-one)串接(concatenating)殘餘區塊的編碼位元字串而構成的。給于一殘餘區塊,其m×n個殘餘值係依據自己的位置以及自己是否在邊界上,並以其中一個可變長度編碼表來壓縮。在本揭露中,根據要編碼的殘餘值的位置,可以使用多種編碼策略。第八圖是根據一實施範例,說明非邊界(non-boundary)區塊的Golomb-Rice編碼策略的一示意圖。第九A圖和第九B圖是根據一實施範例,說明在邊界上的殘餘區塊的Golomb-Rice編碼策略的一示意圖。
以第六圖所示為例,假設殘餘區塊有四個上方相鄰像素U0、U1、,U2、和U3的四個上方相鄰的殘餘值,以及四個左邊相鄰像素L0、L1、L2、和L3的四個左邊相鄰的殘餘值。參考第八圖,對於第五B圖的特殊的編碼順序,碼(0)是2的Golomb-Rice碼(2是第六圖中像素0的殘餘值),並且使用Golom-Rice碼表GR(3)。所以,對應的編碼位元字串是長度為3的111。而碼(1)是5的Golomb-Rice碼(5是第六圖中像素1的剩餘值),並且使用Golom-Rice碼表GR(3)。所以,對應的編碼位元字串是長度為6的001001。如何選擇和使用相對應的Golomb-Rice表的編碼策略可以藉由分析實驗數據來進行。
在第九A圖的例子中,假設在邊界上的一殘餘區塊910沒有上方四個相鄰的像素也沒有左邊四個相鄰的像素。根據殘餘區塊的Golomb-Rice編碼策略,順序為0之右下角的像素使用一直接模式(direct mode)。換句話說,此右下角的像素使用它自己的二進位表示法做為己編碼的一編碼位元字串。殘餘區塊910的剩餘像素採用第八圖中同樣的編碼策略,來選擇與使用一相對應的Golomb-Rice碼表。例如,順序1的像素使用Golomb-Rice碼表GR(3),順序2的像素使用Golomb-Rice碼表GR(1),依此類推。同樣地,在第九B圖的例子中,假設一殘餘區塊920是在邊界上且有四個左邊相鄰像素L0、L1、L2、和L3。根據殘餘區塊的Golomb-Rice編碼策略的範例,順序0的像素使用Golomb-Rice碼表GR(3),順序1的像素使用Golomb-Rice碼表GR(3),順序2的像素使用Golomb-Rice碼表GR(1),依此類推。而有四個左邊相鄰像素L0、L1、L2、和L3的所有像素使用Golomb-Rice碼表GR(0)。上述如何選擇和使用一相對應的Golomb-Rice表的編碼策略可藉由分析實驗數據來進行。
對於一個可變長度碼,因為一編碼區塊的編碼位元流的長度可能無法剛好符合一預定門檻值,即預定的目標位元率(target bit rate),包裝240處理編碼位元流以使得每一編碼位元流的長度小於或等於此預定的目標位元率。換句話說,每一編碼位元流的長度可以達到目標位元率,以保證每一編碼區塊的壓縮率。參考第十圖,包裝240包括切割(cutting)1010、填補(filling)1020、且/或補償(compensation)1030的功能步驟。如第十圖所示,針對每一編碼的位元流,包裝240檢查編碼位元流的長度。當此長度等於或超過一預定目標位元率,則執行切割1010和填補1020。當此長度小於此預定目標位元率,則執行補償1030。補償1030是藉由使用從量化210所保存的補償位元來達成的。
第十一圖是根據一實施範例,說明切割和填補的運作的一示意圖。參考第十一圖,切割1010是從編碼位元流移除超過目標位元率(目標長度)的第(k+1)個編碼位元字串,並選擇最匹配的編碼位元字串來取代第(k+1)個編碼位元字串,其中k是此編碼位元字串的指標(index),k<n×m,使得k個連續編碼位元字串的總長度小於目標位元率,但連續k+1個連續編碼位元字串的總長度大於目標位元率。此匹配的定義是指取出第(k+1)個編碼位元字串後,滿足編碼位元流的剩餘可用編碼空間的最大長度的編碼位元字串,其中剩餘可用空間的大小是目標位元率減去k個連續編碼位元字串的總長度。如果多個編碼位元字串符合此條件,並且是相同的長度,則選擇編碼值接近第(k+1)個編碼位元字串的編碼值的編碼位元字串。其理由是每一編碼位元字串相對應編碼表的一編碼值。
經過編碼後,如果還有空間可使用,則重複以上步驟。也就是按照此預測順序,來選擇對尚未編碼的殘餘最匹配的編碼位元字串,直到沒有匹配的編碼位元字串可以選擇或是全部的殘餘已進行過編碼。當還有空間可使用並且殘餘區塊內的一些殘餘尚未編碼,但剩餘的空間已不足夠用來選擇最佳匹配的編碼位元字串,則利用一特殊位元流(例如,全為0或全為1)來補滿剩餘的空間,例如,在第十一圖中,補滿剩餘的空間的特殊位元流1110是全為零。
換句話說,當還有空間可使用時,藉由遞迴地(recursively)尋找多個匹配的(近似的)編碼位元字串來對尚未編碼的殘餘進行填補1020。當剩餘空間已不足夠用來選擇最佳匹配的編碼位元字串時,亦即沒有發現更匹配的編碼位元字串,則以一特殊的位元流,例如全為0或全為1,來進行填補1020。
對於如第三圖所示的變化的壓縮技術的情況,可以事先知道第(k+1)個編碼位元字串的編碼會超過目標位元率(目標長度),因此切割1010步驟可以省略。
依此,第十二圖是根據一實施範例,說明切割和填補的運作的一流程圖。參考第十二圖,對於一個編碼位元字串的指標k(k<n×m),檢查用來編碼第(k+1)個殘餘的可變長度編碼表的編碼位元字串之間的最小長度hk+1
是否小於編碼位元流的剩餘可用的編碼空間。也就是說,檢查是否(T-R(k))大於hk+1
(步驟1210),其中T代表該給定的目標位元率,R(k)代表最初k個連續殘餘的編碼位元字串的長度。是的話,替編碼位元字串k+1找到一最佳匹配的編碼位元字串(步驟1220),並且以此最佳匹配的編碼位元字串來編碼第(k+1)個殘餘(步驟1230),然後將編碼位元字串指標k增加1,並重複步驟1220與步驟1230,直到找不出符合的編碼位元字串。否則,檢查k個連續的編碼位元字串的總長度是否小於目標位元率,亦即,檢查R(k)是否小於T(步驟1240)。當R(k)小於T時,一個如全零流(all-zero stream)的特殊位元流是用來填補剩餘空間,也就是,剩餘空間全數填補零(步驟1250),然後輸出整個編碼位元字串序列240a;當R(k)不小於T時,則輸出整個編碼位元字串序列240a。
如前所述,當所有的像素已編碼並且編碼位元字串的長度小於目標位元率時,從量化210保留的補償位元(填補位元)是用於像素補償(pixel compensation)。在本揭露中,由一特殊設計的順序來表示補償位元的重要性,即所謂的填補順序(padding order),其中具有較小的填補順序的位元往往比具有較高的填補順序的位元更為顯著。換句話說,小的填補順序的位元具有更高的重要性以用於像素補償,並且由最小的填補順序的位元開始填補。所以,按填補順序遞迴地填補編碼位元流的剩餘空間,直到沒有更多的可用空間或是已使用全部的填補位元。補償1030遵循相同的預測編碼的順序,並遵循量化步驟的相反的順序,從而藉由補償位元的填補,有效地利用剩餘的空間以補償編碼區塊的品質。補償位元是量化步驟的輸出之一,並且一位元接著一位元地填補編碼位元流的剩餘空間,直到已使用所有的補償位元或是編碼位元流的長度達到目標位元率。
第十三圖是根據一實施範例,說明補償運作的一示意圖。在第十三圖中,案例A的情況是,現有的可使用空間,即目標位元率和編碼流的長度之間的差值,大於補償位元,例如標號1310之補償位元1010...01,的總數目,則可根據一範例的填補順序,例如標號1320所示,使用所有的補償位元來填補;案例B的情況是,現有的可使用空間小於補償位元的總數目,只有一些補償位元,例如標號1330所示,被用來依據填補順序1320以填補回編碼位元流。
如前所述,當執行包裝240時,位元率控制250使用稱為GOB的結構在同一GOB彈性地共享區塊的可用空間。換句話說,此區塊可以在同一GOB的其它區塊取得額外的空間。一GOB的大小可能是M×N,其中M和N可以是不同的,W≧M≧m和L≧N≧n。也就是說,M和N必須小於輸入影像的寬度和長度,而大於壓縮區塊的寬度和長度。壓縮影像的寬度和長度沒有必要是M和N的倍數。
第十四圖是根據一實施範例,說明位元率控制技術的一示意圖。假設一個GOB包括4個區塊,標記為區塊0~區塊3,在區塊壓縮之前,同一GOB的每一區塊i會提供一個可共享的位元率si
,i=0,1,2,3。所有共享空間被收集並記錄於一共享池1410。當區塊i要進行編碼時,令SP(i)代表共享位元率(share bit rate)的總數,以記錄共享池1410的長度。初始值SP(0)=s0
+s1
+s2
+s3
。令T(i)代表區塊i可用位元率的總數,且Pi
代表區塊i扣除所共享的位元率後之剩餘的可用位元率。令block_len(i)代表編碼後的區塊i的編碼位元流的長度。所以,區塊i可用位元率的總數T(i)可以計算為T(i)=Pi
+SP(i)以及SP(i+1)=T(i)-block_len(i)。
T(i)=Pi
+SP(i)以及SP(i+1)=T(i)-block_len(i)是一通用的形式(generic form)。每一區塊i的位元率控制詳細計算如下。
........,以及
現在說明一種給定的影像壓縮方法,以適應於一視訊處理器,此視訊處理器至少包括一量化器、一預測器、一可變長度編碼器、以及一包裝單元。第十五圖是根據一實施範例的一示意圖,說明影像記憶體壓縮方法的運作。參考第十五圖,以一區塊為一壓縮單元,將一影像記憶體裡多幀影像的每一影像切割成多個區塊,如步驟1510所示。此量化器可依據一預定的參數,量化此區塊內的多個像素值,進而產生一量化區塊以及自多個像素值的二進位表示法中移除的多個位元,如步驟1520所示。此預測器可產生此量化區塊的一殘餘區塊,如步驟1530所示。此可變長度編碼器可將此殘餘區塊作為輸入並產生一編碼位元流,如步驟1540所示。此包裝單元可將此編碼位元流與量化產生的多個被移除的位元作為輸入,並且藉由使用稱為群組區塊的一結構,彈性地共享同一GOB裡多個區塊的可用空間,以產生符合一目標位元率的此區塊的一整個編碼位元字串序列,如步驟1550所示。
之前所描述的量化、預測、可變長度編碼、包裝和速率控制的部分的進一步詳細的運作可以分別實施於量化器、預測器、可變長度編碼器和包裝單元。
在本揭露的實施範例中,如果一給定的目標位元率足夠大時,此FMC技術可以實現無失真壓縮效能。在有些應用中,它可能需要小的目標位元率,所揭露的FMC技術可以接近無失真的情況。在本揭露的實施範例中,也提供一畸變區塊指示(Distorted Block Indication,DBI)方法來識別影像中編碼區塊的失真程度是否超過一預定門檻值。此識別方法可進行如下(但不受限於僅此情況)。當一壓縮區塊由一FMC解碼器重建,可以獲得此區塊的編碼位元率。如果編碼位元率違反了一預定門檻值(例如,大於此門檻值),則可標示此畸變區塊。換句話說,藉由使用所揭露的FMC技術,可以發現失真程度超過此預定門檻值的區塊。
所揭露的DBI方法對於影像壓縮的運動補償是有用的,例如H.264/AVC、H.263、以及MPEG-4,其中目前影像會參考前一幀影像的運動估計。當一影像處理器參考以本揭露的FMC技術所重建的一影像,來搜尋運動向量時,它可以得知畸變區塊,那麼就可以妥善處理畸變區塊,以避免因運動預測所造成的誤差傳播(error propagation)。
第十六圖是根據一實施範例的一示意圖,說明一種影像記憶體壓縮裝置。其中,此裝置適應於一視訊處理器,此視訊處理器將一影像記憶體裡多幀影像的每一影像切割成多個區塊。參考第十六圖,此影像記憶體壓縮裝置1600可包含一量化器1610、一預測器1620、一可變長度編碼器1630、以及一包裝單元1640。影像記憶體壓縮裝置1600的輸入資料包含邊界資料(boundary data)L[i]、量化參數QP[i]、以及m×n個像素的k區塊的一序列,其中i是區塊指標,i=1,...,k。首先,對於每一區塊i,依據量化參數QP[i]的值來量化其m×n個像素。在實施範例中,量化器1610可以根據縮短位元數目來進行量化,例如,它可以使用每一像素的最高有效8-QP[i]個位元來實現量化結果,並用表示成MSB8-QP[j]
(p[i,j]),其中P[i,j]是第i個區塊的第j個像素,j=1,...,mn,並且函數MSBu
(x)回以像素x的最高有效的u個位元。
在本揭露的實施範例中,量化器1610量化後的輸出是q[i,j]=MSB8-QP[i]
(p[i,j]),並且所有的被截斷位元(cut-off bit)保留為一個集合e[i]={LSBQP[i]
(p[i,j]):j=1,...,mn},即補償位元,以提供給包裝階段。LSBQP[i]
(p[i,j])取出P[i,j]中QP[i]個最低有效位元。換句話說,函數LSBu
(x)回以像素x的最低有效的u個位元。以QP[i]=2為例。假設像素P[0,0]的位元表示為8'b10101001,這意味著像素p[0,0]是由一個8位元流10101001來代表,然後q[0,0]=MSB8-2
(p[0,0])=6'b101010以及LSB2
(p[0,0])=2'b01,e[i]的位元順序可以遵循從MSB到LSB的一預測優先順序。假設一個區塊有9個像素,第十七圖是根據一實施範例的一示意圖,說明預測優先順序的像素指標。參考第十七圖,如果預測優先順序是9,3,6,7,8,2,5,4,1,則補償位元e[i]={LSBQP[i]
(p[i,9]),LSBQP[i]
(p[i,3]),LSBQP[i]
(p[i,6]),LSBQP[i]
(p[i,7]),LSBQP[i]
(p[i,8]),LSBQP[i]
(p[i,2]),LSBQP[i]
(p[i,5]),LSBQP[i]
(p[i,4]),LSBQP[i]
(p[i,1])}。
預測器1620使用兩個輸入數據,即邊界資料L[i]與量化q[i,j],以及兩個控制輸入,即控制-1與控制-2,來產生一m×n的殘餘區塊。控制-1是用來辨認邊界值L[i]的有效狀態。例如,當控制-1是假(FALSE)時,則指出這個預測沒有邊界,並且此預測計算只根據q[i,j]。當控制-1是真(TRUE)時,則指出L[i]是有效的。當控制-1是真時,預測器1620使用控制-2來決定一個有效邊界的狀態。在實施範例中,控制-2是用來選擇三種邊界狀態的其中一種,三種邊界狀態即同時參考左邊和上方的邊界、只參考左邊的邊界、以及只參考上方的邊界。L[i]包括m+n個值,其中區塊i的上方邊界包括n個值,而左邊邊界包括m個值,例如每一值有8-QP[i]個位元。預測器1620進行q[i,j]和L[i]的預測計算,並且產生q[i,j]與它的一預測值之間的一差異d[i,j],也就是說,差異d[i,j]是像素p[i,j]的殘餘。
在獲得差異d[i,j]後,可變長度編碼器1630使用查表的方法來執行每一d[i,j]的編碼,其中對d[i,j]的每一值可以找到一相對應的碼並且s[i,j]是以一特定的順序輸出的所有碼。以e[i]為例,可變長度編碼器1630具有與e[i]相同的順序和以反向預測的順序輸入,並以順序s[i,1]、s[i,4]、s[i,5]、s[i,2]、s[i,8]、s[i,7]、s[i,6]、s[i,3]]、以及s[i,9],輸出區塊i的一編碼流s[i,j]。
在取得區塊i的編碼流s[i,j]後,包裝單元1640根據編碼流s[i,j]、補償位元e[i]、以及一預定的目標位元率T[i]來進行包裝的運作。T[i]是包裝單元1640輸出的cs[i]的最大位元長度。第十八圖是根據一實施範例,說明包裝單元1640的一示意圖。參考第十八圖,包裝單元1640可包含一右移暫存器(right-shift register)1810、一收縮模組(shrinking module)1820、一剩餘位元計算模組(remaining-bit calculation module)1830、以及一重建模組(reconstruction module)1840。右移位暫存器1810具有一的最大長度,即T[0]個位元。收縮模組1820執行在右移位暫存器1810上的MSBT[i]
的運算。換句話說,收縮模組1820從右移位暫存器1810中提取MSBT[i]
位元,也就是說,由收縮模組1820所產生的一暫存器r的輸出值就是MSBT[i]
(R),其中R代表右移位暫存器1810的位元流。包裝單元1640對於每一區塊單元的具體運作描述如下。
每當編碼一個新的區塊i時,右移位暫存器1810將被重置(reset),例如重置成全零。首先,e[i]是右移至右移位暫存器1810的MSB位元,如第十九圖所示。然後,按照預測順序輸入s[i,j],其中s[i]是串接帶有優先順序的輸入序列S[i,j]而成的編碼位元字串;較低優先順序的輸入是放置在LSB的位置,而較高優先順序的輸入被放置在MSB的位置。以前述提及的實施例為範例,s[i]={s[i,9],s[i,3],s[i,6],s[i,7],s[i,8],s[i,2],s[i,5],s[i,4],s[i,1]}。|s[i]|是所有s[i,j]串接而成的位元長度,以及|e[i]|是e[i]的位元長度。通常,|e[i]|=mn×QP[i]。若|s[i]|+|e[i]|<T[i],移位和收縮的結果如第二十圖的範例所示。第二十圖說明s[i]和e[i]都保存在暫存器r裡,亦即,新區塊的編碼是沒有任何畸變的。
然而,若|s[i]|<T[i]以及|s[i]|+|e[i]|>T[i],移位和收縮的結果如第二十一圖的範例所示,其中u=T[i]-|s[i]|,指出e[i]的值被截斷,亦即,一些的填補位元被截斷(truncated)。換句話說,s[i]和MSBu
(e[i])被保存在暫存器r。若|s[i]|=T[i],則移位和收縮的結果如第二十二圖的範例所示。第二十二圖說明s[i]是被全部保存,而e[i]是完全消失不見。
當長度是三種情況如第二十圖─第二十二圖所示,的其中之一時,剩餘位元計算模組(remaining-bit calculation module)1830計算一旗幟,稱為iscutting,的值為假(FALSE),重建模組(reconstruction module)1840直接輸出r值至一暫存器cs[i]並且設定區塊i的區塊長度block_len[i]為T[i]。
最後的情況是當|s[i]|>T[i]時,會發生編碼位元字串被截斷,並且r值如第二十三圖所示,即只有MSBT[i]
(s[i])被保存在暫存器r裡。當此情況發生時,剩餘位元計算模組1830設定旗幟iscutting的值為真(TRUE),以表示s[i]的長度是大於T[i]。剩餘位元計算模組1830依據被通知的輸入編碼位元字串的長度s_len[j],進一步輸出一個指標cut_index來告知s[i]中的那一個s[i,j]被截斷。並且位元長度bit_len用來通知可用的剩餘長度。
以s[i]={s[i,9],s[i,3],s[i,6],s[i,7],s[i,8],s[i,2],s[i,5],s[i,4],s[i,1]}為例。假設s[i,4]和s[i,1]是從右移暫存器r的範圍右移,並且s[i,5]是部分保存(partially saved)在暫存器r中。此時,cut_indx=5,bit_len=|T[i]|-|{s[i,9],s[i,3],s[i,6],s[i,7],s[i,8],s[i,2]}|。s[i,5]被截斷的這種情況指出可用剩餘長度bit_len小於|s[i,5]|。此時,重建模組1840會根據bit_len,搜尋一個編碼位元字串,並且輸出暫存器r的一個新值(new value),其中此編碼位元字串具有最合適的長度以取代被截斷的s[i,5]。
假設取代截斷s[i,5]的新發現的編碼位元字串記為s`[i,5],並且|s`[i,5]|小於可用的剩餘長度bit_len,則存在暫存器cs[i]裡的值如第二十四圖所示,其中s`[i]={s[i,9],s[i,3],s[i,6],s[i,7],s[i,8],s[i,2],s[i,5]},而存在暫存器cs[i]裡的其餘位元都填滿了零。換句話說,在暫存器cs[i]中的值是一個由重建模組1840產生的區塊i的整個編碼位元字串序列。最後,重建模組1840輸出區塊i的整個編碼位元字串序列,即有效的區塊長度block_len[i]以及它的總可用位元率T[i]。總可用位元率T[i]將反饋到包裝單元1640,以處理下一個新區塊的包裝運作。
在一些實驗範例中,來觀察所揭露的影像記憶體壓縮(FMC)技術是否可實現無失真的壓縮性能。第二十五圖是根據一實施範例,說明一些範例的實驗參數,其中使用具有1080p解析度的8種典型的影像序列。在這些範例的實驗中,使用所揭露的FMC技術的所有區塊經由使用QP=0可以完成編碼。換句話說,使用所揭露的FMC技術的所有區塊在一預定的目標位元率的要求下,可以達到無失真壓縮。當使用QP=1時,在一預定的目標位元率的要求下,可以達到大多數的區塊的編碼。如果給定的目標位元率足夠小,使用所揭露的FMC技術可以接近無失真的壓縮性能。如果給定的目標位元率足夠大,使用所揭露的FMC技術的所有區塊可以實現無失真的壓縮性能。
在另一些實驗範例中,進一步觀察在不同大小的GOB使用所揭露的FMC技術的壓縮性能,其中,使用4×4 GOB、16×4 GOB、以及16×16 GOB的三種不同大小。實驗結果說明,在三種不同的GOB大小中,16×16 GOB達到最好的壓縮性能。換句話說,藉由使用以GOB為基礎的結構,所揭露的速率控制技術可進一步提高影像處理器的整個壓縮性能。
以上所述者皆僅為本揭露實施例,不能依此限定本揭露實施之範圍。大凡本揭露申請專利範圍所作之均等變化與修飾,皆應屬於本發明專利涵蓋之範圍。
210...量化
220...預測
230...可變長度編碼
240...包裝
240a...整個編碼位元字串序列
250...位元率控制
430...補償位元
910...殘餘區塊
920...殘餘區塊
1010...切割
1020...填補
1030...補償
1110...特殊位元流
1210...檢查是否(T-R(k))大於hk+1
1220...替編碼位元字串k+1找到一最佳匹配的編碼位元字串
1230...以此最佳匹配的編碼位元字串來編碼第(k+1)個殘餘
1240...檢查R(k)是否小於T
1250...剩餘空間全數填補零
1310...1010...01
1320...範例的填充順序
1330...一些補償位元
1410...共享池
1510...以一區塊為一壓縮單元,將一影像記憶體裡多幀影像的每一影像切割成多個區塊
1520...依據一預定的參數,量化此區塊內的多個像素值,進而產生一量化區塊以及自多個像素值的二進位表示法中移除的多個位元
1530...產生此量化區塊的一殘餘區塊
1540...將此殘餘區塊作為輸入並產生一編碼位元流
1550...將此編碼位元流與量化產生的多個被移除的位元作為輸入,並且藉由使用稱為群組區塊的一結構,彈性地共享同一GOB裡多個區塊的可用空間,以產生符合一目標位元率的此區塊的一整個編碼位元字串序列
1600...影像記憶體壓縮裝置
1610...量化器
1620...預測器
1630...可變長度編碼器
1640...包裝單元
1810...右移位暫存器
1820...收縮模組
1830...剩餘位元計算模組
1840...重建模組
第一圖是以空間域為基礎的一個FMC技術的一範例示意圖。
第二圖是根據一實施範例,說明每一m×n區塊的壓縮技術的一流程圖。
第三圖是根據一實施範例,說明第二圖之壓縮技術的另一種變化的一示意圖。
第四A至第四C圖是根據一實施範例,說明量化步驟的一示意圖。
第五A圖與第五B圖是根據一實施範例,說明一4×4區塊進行預測的一示意圖。
第六圖是根據一實施範例,說明第五A圖中編碼區塊的最終相對應的殘餘區塊的一示意圖。
第七圖是根據一實施範例,說明在Golomb-Rice編碼中產生的可變長度編碼表的一示意圖。
第八圖是根據一實施範例,說明非邊界區塊的Golomb-Rice編碼策略的一示意圖。
第九A圖和第九B圖是根據一實施範例,說明在邊界上的殘餘區塊的Golomb-Rice編碼策略的一示意圖。
第十圖是根據一實施範例,說明包裝的運作的一流程圖。
第十一圖是根據一實施範例,說明切割和填補的運作的一示意圖。
第十二圖是根據一實施範例,說明切割和填補的運作的一流程圖。
第十三圖是根據一實施範例,說明補償運作的一示意圖。
第十四圖是根據一實施範例,說明位元率控制技術的一示意圖。
第十五圖是根據一實施範例的一示意圖,說明影像記憶體壓縮方法的運作。
第十六圖是根據一實施範例的一示意圖,說明一種影像記憶體壓縮裝置。
第十七圖是根據一實施範例的一示意圖,說明預測優先順序的像素指標。
第十八圖是根據一實施範例的一示意圖,說明包裝單元的一示意圖。
第十九圖是根據一實施範例的一示意圖,說明當編碼一新區塊時,e[i]是右移至右移位暫存器的MSB位元的情況。
第二十圖是根據一實施範例的一示意圖,說明|s[i]|+|e[i]|<T[i]之第一範例的情況,其移位和收縮的結果。
第二十一圖是根據一實施範例的一示意圖,說明|s[i]|<T[i]以及|s[i]|+|e[i]|>T[i]之第二範例的情況,其移位和收縮的結果。
第二十二圖是根據一實施範例的一示意圖,說明|S[i]|=T[i]之第三範例的情況,其移位和收縮的結果。
第二十三圖是根據一實施範例的一示意圖,說明|S[i]|>T[i]之第四範例的情況,其移位和收縮的結果。
第二十四圖是根據一實施範例的一示意圖,說明由一重建模組所執行的一區塊的整個編碼位元字串序列。
第二十五圖是根據一實施範例的一示意圖,說明一些範例的實驗參數,其中使用具有1080p解析度的8種典型的影像序列。
210...量化
220...預測
230...可變長度編碼
240...包裝
240a...整個編碼位元字串序列
250...位元率控制
Claims (16)
- 一種影像記憶體壓縮方法,以適應於一影像處理器,該影像處理器至少包括一量化器、一預測器、一可變長度編碼器、以及一包裝單元,該方法包含:以一區塊為一壓縮單元,將一影像記憶體裡多幀影像的每一影像切割成多個區塊;應用該量化器,依據一預定的參數,量化該區塊內的多個像素值,進而產生一量化區塊以及自該多個像素值的二進位表示法中移除的多個位元;應用該預測器,來產生該量化區塊的一殘餘區塊;應用該可變長度編碼器,將該殘餘區塊作為輸入並產生一編碼位元流;以及應用該包裝單元,將該編碼位元流與量化產生的該多個被移除的位元作為輸入,並且藉由使用稱為群組區塊(GOB)的一結構,彈性地共享同一GOB裡多個區塊的可用空間,以產生符合一目標位元率的該區塊的一整個編碼位元字串序列;其中該包裝單元檢查該編碼位元流的一長度是否小於該目標位元率,並且當該長度等於或超過該目標位元率時,執行一切割和一填補,當該長度小於該目標位元率時,執行一補償,運作該切割是從該編碼位元流移除用於該可變長度編碼器中超過該目標位元速率的一第(k+1)編碼位元字串,並且選擇一最佳匹配編碼位元字串來取代該第(k+1)編碼位元字串,其中k是一編碼位元字串的指標,使得用於該可變長度編碼器的連續k個編碼 位元字串的總長度小於該目標位元率,但用於該可變長度編碼器的連續k+1個編碼位元字串的總長度大於該目標位元率。
- 如申請專利範圍第1項所述之方法,其中一GOB是該區塊的一組鄰近的區塊,以及是一基本的位元率控制單元。
- 如申請專利範圍第1項所述之方法,其中該量化器以一順序移除該多個移除的位元來量化該區塊內的該多個像素值,且該順序是從該多個像素值的每一像素值的二進位表示法的最低有效位元至最高有效位元。
- 如申請專利範圍第1項所述之方法,其中該預測器依據該區塊的邊界數據,以一特殊預定的順序,一像素接著一像素來預測該區塊內的該多個像素值。
- 如申請專利範圍第1項所述之方法,其中該量化器所產生的該多個移除的位元被保留,以在該包裝單元產生該整個編碼位元字串序列時做為像素補償。
- 如申請專利範圍第1項所述之方法,其中該包裝單元利用一剩餘的可用空間來補償該編碼位元流的品質,其係根據一填補順序,以一位元接著一位元的方式將該多個移除位元填補回該編碼位元流的該剩餘空間,直到已使用所有的移除位元或是該編碼位元流的一長度達到該目標位元率。
- 如申請專利範圍第6項所述之方法,其中該填補順序代表該多個移除位元的重要性,並且具有一較低的填補順序的一位元是比具有一較高的填補順序的另一位元更 為重要。
- 如申請專利範圍第7項所述之方法,其中當還有一剩餘空間可用並且該剩餘區塊內存在尚未編碼的殘餘時,則藉由遞迴地尋找多個匹配的編碼位元字串來對該尚未編碼的殘餘進行該填補,當該剩餘空間不足夠用以選擇一最佳匹配的編碼位元字串時,則以一特殊的位元流來進行該填補。
- 一種影像記憶體壓縮裝置,以適應於一影像處理器,該影像處理器以一區塊為一壓縮單元,將一影像記憶體裡多幀影像的每一影像切割成多個區塊,該裝置包含:一量化器,依據一預定的參數,量化該區塊內的多個像素值,進而產生一量化區塊以及自該多個像素值的二進位表示法中移除的多個位元;一預測器,依據該區塊的邊界資料和該量化區塊,使用兩控制輸入來產生一殘餘區塊;一可變長度編碼器,將該殘餘區塊作為輸入,並經由使用一查表方法而產生一編碼位元流;以及一包裝單元,將該編碼位元流與量化產生的該多個被移除的位元作為輸入,並且藉由使用稱為群組區塊(GOB)的一結構,彈性地共享同一GOB裡多個區塊的可用空間,以產生符合一目標位元率的該區塊的一整個編碼位元字串序列;其中該包裝單元還包含:一右移位暫存器,用來將該多個移除位元右移至其最高有效位元,並且根據一預測順序右移該編碼位元流; 一收縮模組,從該右移位暫存器提取最高有效的T位元,並且回以該最高有效的T位元至一暫存器,其中T是該目標位元率的位元長度;一剩餘位元計算模組,計算出一旗幟,以指出該編碼位元流的長度是否大於該目標位元率,當該旗幟為真時,該剩餘位元計算模組輸出一編碼位元字串指標,以通知該區塊中那一編碼位元字串應該被取代,並且輸出一位元長度以告知該暫存器一可用的剩餘空間的長度;以及一重建模組,根據該旗幟、該編碼位元字串指標、該位元長度、以及該目標位元率,輸出一區塊長度以及自該暫存器輸出該整個編碼位元字串序列。
- 如申請專利範圍第9項所述之裝置,其中該預測器使用該兩控制輸入其中之一來識別該邊界數據的一有效狀態,另一控制輸入是用來決定一有效邊界的狀態。
- 如申請專利範圍第10項所述之裝置,其中該另一控制輸入選擇三個邊界狀態的其中一種,該三個邊界狀態包括同時參照左邊和上方的邊界、只參照左邊的邊界、以及只參照上方的邊界。
- 如申請專利範圍第9項所述之裝置,其中該編碼位元流的長度大於該目標位元率時,該旗幟被設定為真,該重建模組找到一最佳匹配的編碼位元字串來取代對應於該編碼位元字串指標的該編碼位元字串。
- 如申請專利範圍第12項所述之裝置,其中當該最佳匹配的編碼位元字串的長度少於該可用的剩餘空間時,將該暫存器中所有剩餘位元以零填補。
- 如申請專利範圍第9項所述之裝置,其中當該編碼位元流和該多個移除位元的一總長度小於該目標位元率時,該旗幟被設定為假,並且該編碼位元流和該多個移除位元全部被儲存在該暫存器。
- 如申請專利範圍第9項所述之裝置,其中當該編碼位元流的長度小於該目標位元率,但該編碼位元流和該多數移除位元的一總長度大於該目標位元速率時,該旗幟被設定為假,並且該編碼位元流和該多個移除位元的最高有效的u個位元被儲存在該暫存器,其中u等於該目標位元率和該編碼位元流的長度之間的一差異。
- 如申請專利範圍第9項所述之裝置,其中當該編碼位元流的長度等於該目標位元率時,該旗幟被設定為假,並且該編碼位元流被全部保存,而該多個移除位元完全消失不見。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201161469095P | 2011-03-30 | 2011-03-30 | |
US13/178,510 US8767823B2 (en) | 2011-03-30 | 2011-07-08 | Method and apparatus for frame memory compression |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201240471A TW201240471A (en) | 2012-10-01 |
TWI455594B true TWI455594B (zh) | 2014-10-01 |
Family
ID=46927245
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW100134112A TWI455594B (zh) | 2011-03-30 | 2011-09-22 | 影像記憶體壓縮方法與裝置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US8767823B2 (zh) |
CN (1) | CN102740068B (zh) |
TW (1) | TWI455594B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI597979B (zh) * | 2016-08-19 | 2017-09-01 | 晨星半導體股份有限公司 | 與影像處理系統中之快取記憶體相關的記憶體管理方法及記憶體管理裝置 |
CN107797757A (zh) * | 2016-09-06 | 2018-03-13 | 晨星半导体股份有限公司 | 与影像处理系统中的快取存储器相关的存储器管理方法及存储器管理装置 |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5936687B2 (ja) * | 2011-07-18 | 2016-06-22 | トムソン ライセンシングThomson Licensing | ツリー構造の適応的エントロピー符号化方法 |
KR20130049522A (ko) | 2011-11-04 | 2013-05-14 | 오수미 | 인트라 예측 블록 생성 방법 |
CN103248891B (zh) * | 2013-04-24 | 2016-04-20 | 复旦大学 | 一种基于n-bit截尾量化和块内二维预测的参考帧压缩方法 |
KR102172995B1 (ko) * | 2013-07-17 | 2020-11-02 | 삼성전자주식회사 | 전자 장치 및 이의 이미지 저장 방법 |
WO2015009064A1 (en) * | 2013-07-17 | 2015-01-22 | Samsung Electronics Co., Ltd. | Electronic device for storing image and image storage method thereof |
WO2016123001A1 (en) * | 2015-01-27 | 2016-08-04 | Dolby International Ab | Predictive image encoding and decoding with pixel group based quantization |
CN106651971B (zh) | 2015-11-04 | 2020-06-05 | 上海兆芯集成电路有限公司 | 图形数据压缩装置与图形数据压缩方法 |
US9851916B2 (en) | 2016-02-17 | 2017-12-26 | International Business Machines Corporation | Dynamic compression for runtime services |
US10360695B1 (en) * | 2017-06-01 | 2019-07-23 | Matrox Graphics Inc. | Method and an apparatus for enabling ultra-low latency compression of a stream of pictures |
KR102403066B1 (ko) | 2017-08-22 | 2022-05-27 | 삼성전자주식회사 | 제로 비트 패딩을 이용한 채널 부호화/복호화 방법 및 장치 |
CN111327907B (zh) * | 2018-12-13 | 2022-11-22 | 华为技术有限公司 | 一种帧间预测的方法、装置、设备及存储介质 |
CN110119313B (zh) * | 2019-05-13 | 2021-09-03 | 格兰菲智能科技有限公司 | 图像处理方法及图像处理装置 |
CN110113614B (zh) * | 2019-05-13 | 2022-04-12 | 格兰菲智能科技有限公司 | 图像处理方法及图像处理装置 |
CN111131828B (zh) * | 2019-12-30 | 2022-02-25 | 芯颖科技有限公司 | 一种图像压缩方法、装置、电子设备和存储介质 |
US20210224636A1 (en) * | 2020-01-21 | 2021-07-22 | Pegah AARABI | System and method for interfacing a biological neural network and an artificial neural network |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5144424A (en) * | 1991-10-15 | 1992-09-01 | Thomson Consumer Electronics, Inc. | Apparatus for video data quantization control |
US5907500A (en) * | 1996-10-21 | 1999-05-25 | Nec Corporation | Motion compensation adder for decoding/decompressing compressed moving pictures |
US6256347B1 (en) * | 1996-12-17 | 2001-07-03 | Thomson Licensing S.A. | Pixel block compression apparatus in an image processing system |
US20070223823A1 (en) * | 2006-03-21 | 2007-09-27 | Nokia Corporation | Method, apparatus, system and computer program product for providing compression of image files |
US20100162073A1 (en) * | 2008-12-18 | 2010-06-24 | Samsung Electronics Co., Ltd. | Bit mapping/demapping method and apparatus for communication system |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6693961B1 (en) | 2000-01-10 | 2004-02-17 | Conexant Systems, Inc. | System and method of video frame memory reduction of video decoders |
US6983017B2 (en) | 2001-08-20 | 2006-01-03 | Broadcom Corporation | Method and apparatus for implementing reduced memory mode for high-definition television |
US7599435B2 (en) | 2004-01-30 | 2009-10-06 | Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. | Video frame encoding and decoding |
TWI277013B (en) | 2005-02-01 | 2007-03-21 | Ind Tech Res Inst | Method for reducing buffered-frame memory sizes and accesses in a video codec |
US8218653B2 (en) | 2008-03-31 | 2012-07-10 | Sony Corporation | Lossy frame memory compression using intra refresh |
-
2011
- 2011-07-08 US US13/178,510 patent/US8767823B2/en active Active
- 2011-09-22 TW TW100134112A patent/TWI455594B/zh active
- 2011-12-27 CN CN201110445059.8A patent/CN102740068B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5144424A (en) * | 1991-10-15 | 1992-09-01 | Thomson Consumer Electronics, Inc. | Apparatus for video data quantization control |
US5907500A (en) * | 1996-10-21 | 1999-05-25 | Nec Corporation | Motion compensation adder for decoding/decompressing compressed moving pictures |
US6256347B1 (en) * | 1996-12-17 | 2001-07-03 | Thomson Licensing S.A. | Pixel block compression apparatus in an image processing system |
US20070223823A1 (en) * | 2006-03-21 | 2007-09-27 | Nokia Corporation | Method, apparatus, system and computer program product for providing compression of image files |
US20100162073A1 (en) * | 2008-12-18 | 2010-06-24 | Samsung Electronics Co., Ltd. | Bit mapping/demapping method and apparatus for communication system |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI597979B (zh) * | 2016-08-19 | 2017-09-01 | 晨星半導體股份有限公司 | 與影像處理系統中之快取記憶體相關的記憶體管理方法及記憶體管理裝置 |
CN107797757A (zh) * | 2016-09-06 | 2018-03-13 | 晨星半导体股份有限公司 | 与影像处理系统中的快取存储器相关的存储器管理方法及存储器管理装置 |
CN107797757B (zh) * | 2016-09-06 | 2021-03-30 | 联发科技股份有限公司 | 影像处理系统中的快取存储器管理方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN102740068A (zh) | 2012-10-17 |
US8767823B2 (en) | 2014-07-01 |
US20120250758A1 (en) | 2012-10-04 |
TW201240471A (en) | 2012-10-01 |
CN102740068B (zh) | 2015-06-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI455594B (zh) | 影像記憶體壓縮方法與裝置 | |
RU2673392C1 (ru) | Способ и устройство для энтропийного кодирования видео и способ и устройство для энтропийного декодирования видео | |
KR101261526B1 (ko) | 영상의 부호화 방법 및 장치, 복호화 방법 및 장치 | |
US6301392B1 (en) | Efficient methodology to select the quantization threshold parameters in a DWT-based image compression scheme in order to score a predefined minimum number of images into a fixed size secondary storage | |
TW201838412A (zh) | 用於視訊寫碼之低複雜度符號預測 | |
TW201705760A (zh) | 進階之算術寫碼器 | |
WO2016045565A1 (zh) | 一种视频数据编码、解码的方法及装置 | |
CN103650496A (zh) | 用于在hevc中编码的基于像素的帧内预测 | |
JP2009260977A (ja) | 不可逆圧縮及び可逆圧縮を組み合わせて用いたビデオデータ圧縮 | |
US20140010284A1 (en) | Image transform and inverse transform method, and image encoding and decoding device using same | |
TW201342919A (zh) | 資料編碼及解碼 | |
US20180199046A1 (en) | Method and Apparatus for Range Derivation in Context Adaptive Binary Arithmetic Coding | |
KR20070028404A (ko) | 픽처를 저장하는 방법, 비디오 복호기, 비디오 부호기,휴대 장치 및 컴퓨터 프로그램 제품 | |
WO2011005105A1 (en) | Computer implemented early skip | |
KR100683380B1 (ko) | 영상 압축 부호화를 위한 변환 및 역변환 방법 및 장치 | |
JP2009021775A (ja) | 符号化装置及び符号化方法 | |
KR20130006578A (ko) | 비표준 벡터 양자화 코더를 이용한 비디오 표준을 따르는 레지듀얼 코딩 | |
KR20100122947A (ko) | 화상 압축 장치, 화상 복원 장치, 화상 압축 방법, 화상 복원 방법 및 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체 | |
Naidu et al. | A novel framework for JPEG image compression using baseline coding with parallel process | |
US6125211A (en) | Progressive image transmission | |
JP2001258029A (ja) | 剰余数係数の動的表示方法および装置 | |
US20180255320A1 (en) | Bias minimization for successive image reconstruction based on embedded codec circuitry | |
CN111194552A (zh) | 运动补偿参考帧压缩 | |
US20170257632A1 (en) | Encoding method of image encoding device | |
CN117440157B (zh) | 视频编码方法、装置、设备及存储介质 |