專利名稱::圖像存儲(chǔ)器壓縮方法與裝置的制作方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及一種圖像存儲(chǔ)器壓縮(FrameMemoryCompression,FMC)方法與裝置。
背景技術(shù):
:視頻壓縮標(biāo)準(zhǔn)如MPGE-2、MPEG-4、H.263、和H.264/AVC,已廣泛應(yīng)用于視頻相關(guān)的應(yīng)用。具備壓縮標(biāo)準(zhǔn)的視頻處理器的效能往往是受限于圖像存儲(chǔ)器的容量和系統(tǒng)帶寬。為了加速視頻處理器,常應(yīng)用圖像存儲(chǔ)器壓縮(FMC)技術(shù),通過壓縮將要被存于圖像存儲(chǔ)器的數(shù)據(jù),此圖像存儲(chǔ)器壓縮可用來減少圖像存儲(chǔ)器的容量。并且,因?yàn)槔肍MC而減少了圖像存儲(chǔ)器的數(shù)據(jù),在總線上傳輸?shù)臄?shù)據(jù)量也因此大大地減少,以符合帶寬的限制?,F(xiàn)有的圖像存儲(chǔ)器壓縮技術(shù)可分為兩種類型。一類是以空間域(spatialdomain)為基礎(chǔ)的FMC,而另一類是以頻域(frequencydomain)為基礎(chǔ)的FMC。以空間域?yàn)榛A(chǔ)的FMC利用空間域里像素間的關(guān)聯(lián)性(correlation)來預(yù)測像素值。例如,一些用來減少視頻編解碼器(videoCodec),如H.264/AVC,中緩沖圖像存儲(chǔ)器(buffered-framememory)的容量和存取次數(shù)的技術(shù),通過一新增的決定單元,對(duì)每一微區(qū)塊(microblock,MB)決定一關(guān)聯(lián)的存儲(chǔ)類型,并根據(jù)此MB的關(guān)聯(lián)的存儲(chǔ)類型來進(jìn)行簡單的壓縮。一些FMC演算法在處理核心和外部存儲(chǔ)器之間嵌入一壓縮單元、采用4X4區(qū)塊作為一壓縮單元來對(duì)多種預(yù)測模式計(jì)算結(jié)果、并從中選出一最佳的壓縮結(jié)果。一種視頻編解碼器的圖像存儲(chǔ)器壓縮技術(shù)是采用一種以像素為基礎(chǔ)的(pixel-based)無失真(lossless)的壓縮方法,并且利用一地址表(addresstable)來保存編碼單元的可隨機(jī)存取的特性(randomaccessibility)。另一技術(shù)是考慮延遲的問題,來設(shè)計(jì)一種具有低延遲和可變長度的編碼方法。圖I是以空間域?yàn)榛A(chǔ)的一種FMC技術(shù)的一范例不意圖。此技術(shù)使用一固定的壓縮率(fixedcompressionratio)和近乎無失真的(near-lossless)FMC,來減少硬件組件的帶寬以及降低圖像存儲(chǔ)器的使用率。參考圖1,一個(gè)4X4區(qū)塊是一個(gè)基本的壓縮單元,此FMC技術(shù)利用8種預(yù)測模式(模式I模式8)和結(jié)合簡單的量化、差分脈沖編碼調(diào)制(differentialpulsecodemodulation,DPCM)、以及可變長度編碼(variablelengthcoding,VLC),如Golomb-Rice編碼,來進(jìn)行圖像存儲(chǔ)器壓縮。使用內(nèi)部預(yù)測(intraprediction)的多種模式來進(jìn)行FMC可能需要高的復(fù)雜性,對(duì)于小壓縮區(qū)塊的壓縮結(jié)果并不顯著。以頻域?yàn)榛A(chǔ)的FMC將像素從空間域轉(zhuǎn)換到頻域,并且利用頻域里功率能量的群集效應(yīng)(clusteringeffect)來壓縮數(shù)據(jù)。例如,一種減少視頻存儲(chǔ)器的技術(shù)是使用階層式轉(zhuǎn)換(hierarchicaltransform),例如Harr轉(zhuǎn)換,將像素從空間域轉(zhuǎn)換到頻域,并且對(duì)得到的轉(zhuǎn)換系數(shù)進(jìn)行量化和游程編碼(runlengthcoding)。一種失真的FMC技術(shù)考慮灰階的像素?cái)?shù)據(jù),并且使用固定或可變的(variable)量化方式來進(jìn)行圖像存儲(chǔ)器壓縮。有些技術(shù)使用修改式的Hadamard轉(zhuǎn)換和自適性的(adaptive)Golomb-Rice編碼來進(jìn)行顯不設(shè)備的圖像存儲(chǔ)器壓縮。有些技術(shù)考慮一個(gè)固定50%的壓縮效率,使用轉(zhuǎn)換和自適性的、Golomb-Rice編碼來進(jìn)行圖像存儲(chǔ)器壓縮。有些技術(shù)使用離散余弦變換和修改式的位平面區(qū)域編碼(bitplanezonalcoding)來實(shí)現(xiàn)移動(dòng)式的視頻應(yīng)用的圖像壓縮器(framecompressor)。以頻域?yàn)榛A(chǔ)的FMC需要高的計(jì)算復(fù)雜度或復(fù)雜的硬件,對(duì)于低延遲的需求可能不適用。
發(fā)明內(nèi)容本發(fā)明實(shí)施例可提供一種圖像存儲(chǔ)器壓縮的方法與裝置。公開的一實(shí)施例是關(guān)于一種圖像存儲(chǔ)器壓縮的方法,以適應(yīng)于一圖像處理器,此圖像處理器至少包括一量化器(quantizer)、一預(yù)測器(predictor)、一可變長度編碼器(variablelengthencoder)、以及一包裝單元(packingunit)。此方法包含以一區(qū)塊為一壓縮單元,將一圖像存儲(chǔ)器里多幀圖像的每一圖像切割成多個(gè)區(qū)塊;應(yīng)用此量化器,依據(jù)一預(yù)定的參數(shù),量化此區(qū)塊內(nèi)的多個(gè)像素值,進(jìn)而產(chǎn)生一量化區(qū)塊(quantizedblock)以及自多個(gè)像素值的二進(jìn)位表示法(binaryrepresentation)中移除的多個(gè)位;應(yīng)用此預(yù)測器,來產(chǎn)生此量化區(qū)塊的一殘余區(qū)塊(residualblock);應(yīng)用此可變長度編碼器,將此殘余區(qū)塊作為輸入并產(chǎn)生一編碼位流(codedbitstream);以及應(yīng)用此包裝單元,將此編碼位流與量化產(chǎn)生的此多個(gè)被移除的位(removedbit)作為輸入,并且通過使用稱為群組區(qū)塊(groupofblocks,GOB)的一結(jié)構(gòu),彈性地共享同一GOB里多個(gè)區(qū)塊的可用空間,以產(chǎn)生符合一目標(biāo)比特率的此區(qū)塊的一整個(gè)編碼位字串序列(codewordsequence)。公開的另一實(shí)施例是關(guān)于一種圖像存儲(chǔ)器壓縮的裝置,以適應(yīng)于一圖像處理器,此圖像處理器以一區(qū)塊為一壓縮單元,將一圖像存儲(chǔ)器里多幀圖像的每一圖像切割成多個(gè)區(qū)塊。此裝置包含一量化器、一預(yù)測器、一可變長度編碼器、以及一包裝單元。此量化器依據(jù)一預(yù)定的參數(shù),量化此區(qū)塊內(nèi)的多個(gè)像素值,進(jìn)而產(chǎn)生一量化區(qū)塊以及自此多個(gè)像素值的二進(jìn)位表示法中移除的多個(gè)位。此預(yù)測器依據(jù)此區(qū)塊的邊界數(shù)據(jù)和此量化區(qū)塊,使用兩個(gè)控制輸入來產(chǎn)生一殘余區(qū)塊。此可變長度編碼器將此殘余區(qū)塊作為輸入,并經(jīng)由使用一查表(table-lookup)方法而產(chǎn)生一編碼位流。此包裝單元將此編碼位流與量化產(chǎn)生的多個(gè)被移除的位作為輸入,并且通過使用稱為群組區(qū)塊(GOB)的一結(jié)構(gòu),彈性地共享同一GOB里多個(gè)區(qū)塊的可用空間,以產(chǎn)生符合一目標(biāo)比特率的此區(qū)塊的一整個(gè)編碼位字串序列?,F(xiàn)在配合下列圖示、實(shí)施例的詳細(xì)說明及權(quán)利要求書,將上述及本發(fā)明的其他優(yōu)點(diǎn)詳述于后。圖I是以空間域?yàn)榛A(chǔ)的一個(gè)FMC技術(shù)的一范例示意圖。圖2是根據(jù)一實(shí)施范例,說明每一mXn區(qū)塊的壓縮技術(shù)的一流程圖。圖3是根據(jù)一實(shí)施范例,說明圖2的壓縮技術(shù)的另一種變化的一示意圖。圖4A至圖4C是根據(jù)一實(shí)施范例,說明量化步驟的一示意圖。圖5A與圖5B是根據(jù)一實(shí)施范例,說明一4X4區(qū)塊進(jìn)行預(yù)測的一示意圖。圖6是根據(jù)一實(shí)施范例,說明圖5A中編碼區(qū)塊的最終相對(duì)應(yīng)的殘余區(qū)塊的一示意圖。圖7是根據(jù)一實(shí)施范例,說明在Golomb-Rice編碼中產(chǎn)生的可變長度編碼表的一示意圖。圖8是根據(jù)一實(shí)施范例,說明非邊界區(qū)塊的Golomb-Rice編碼策略的一示意圖。圖9A和圖9B是根據(jù)一實(shí)施范例,說明在邊界上的殘余區(qū)塊的Golomb-Rice編碼策略的一示意圖。圖10是根據(jù)一實(shí)施范例,說明包裝的運(yùn)作的一流程圖。圖11是根據(jù)一實(shí)施范例,說明切割和填補(bǔ)的運(yùn)作的一示意圖。圖12是根據(jù)一實(shí)施范例,說明切割和填補(bǔ)的運(yùn)作的一流程圖。圖13是根據(jù)一實(shí)施范例,說明補(bǔ)償運(yùn)作的一示意圖。圖14是根據(jù)一實(shí)施范例,說明比特率控制技術(shù)的一示意圖。圖15是根據(jù)一實(shí)施范例的一示意圖,說明圖像存儲(chǔ)器壓縮方法的運(yùn)作。圖16是根據(jù)一實(shí)施范例的一示意圖,說明一種圖像存儲(chǔ)器壓縮裝置。圖17是根據(jù)一實(shí)施范例的一示意圖,說明預(yù)測優(yōu)先順序的像素指標(biāo)。圖18是根據(jù)一實(shí)施范例的一示意圖,說明包裝單元的一示意圖。圖19是根據(jù)一實(shí)施范例的一示意圖,說明當(dāng)編碼一新區(qū)塊時(shí),e[i]是右移至右移位寄存器的MSB位的情況。圖20是根據(jù)一實(shí)施范例的一示意圖,說明s[i]|+|e[i]<T[i]的第一范例的情況,其移位和收縮的結(jié)果。圖21是根據(jù)一實(shí)施范例的一示意圖,說明s[i]<T[i]以及s[i]|+|e[i]>T[i]的第二范例的情況,其移位和收縮的結(jié)果。圖22是根據(jù)一實(shí)施范例的一示意圖,說明|S[i]|=T[i]的第三范例的情況,其移位和收縮的結(jié)果。圖23是根據(jù)一實(shí)施范例的一示意圖,說明|S[i]|>T[i]的第四范例的情況,其移位和收縮的結(jié)果。圖24是根據(jù)一實(shí)施范例的一示意圖,說明由一重建模塊所執(zhí)行的一區(qū)塊的整個(gè)編碼位字串序列。圖25是根據(jù)一實(shí)施范例的一示意圖,說明一些范例的實(shí)驗(yàn)參數(shù),其中使用具有1080p解析度的8種典型的圖像序列。主要元件符號(hào)說明210量化220預(yù)測230可變長度編碼240包裝240a整個(gè)編碼位字串序列250比特率控制430補(bǔ)償位910殘余區(qū)塊920殘余區(qū)塊1010切割1020填補(bǔ)1030補(bǔ)償1110特殊位流1210檢查是否(T-R(k))大于hk+i1220替編碼位字串k+1找到一最佳匹配的編碼位字串1230以此最佳匹配的編碼位字串來編碼第(k+1)個(gè)殘余1240檢查R(k)是否小于T1250剩余空間全數(shù)填補(bǔ)零13101010...011320范例的填充順序1330一些補(bǔ)償位1410共享池1510以一區(qū)塊為一壓縮單元,將一圖像存儲(chǔ)器里多幀圖像的每一圖像切割成多個(gè)區(qū)塊1520依據(jù)一預(yù)定的參數(shù),量化此區(qū)塊內(nèi)的多個(gè)像素值,進(jìn)而產(chǎn)生一量化區(qū)塊以及自多個(gè)像素值的二進(jìn)位表示法中移除的多個(gè)位1530產(chǎn)生此量化區(qū)塊的一殘余區(qū)塊1540將此殘余區(qū)塊作為輸入并產(chǎn)生一編碼位流1550將此編碼位流與量化產(chǎn)生的多個(gè)被移除的位作為輸入,并且通過使用稱為群組區(qū)塊的一結(jié)構(gòu),彈性地共享同一GOB里多個(gè)區(qū)塊的可用空間,以產(chǎn)生符合一目標(biāo)比特率的此區(qū)塊的一整個(gè)編碼位字串序列1600圖像存儲(chǔ)器壓縮裝置1610量化器1620預(yù)測器1630可變長度編碼器1640包裝單元1810右移位寄存器1820收縮模塊1830剩余位計(jì)算模塊1840重建模塊具體實(shí)施例方式此實(shí)施范例公開一種有效的FMC技術(shù)來壓縮至少一輸入圖像。該至少一輸入圖像可以是一巾貞靜態(tài)的單一圖像(staticsingleimage)或是來自一視頻流的一巾貞圖像。此FMC壓縮技術(shù)是以區(qū)塊為基礎(chǔ)的(block-based),也就是說,以區(qū)塊作為基礎(chǔ)的壓縮單元。假設(shè)給予一幀尺寸為WXL的圖像,此圖像可以切割成數(shù)個(gè)mXn區(qū)塊和被切割區(qū)塊的總數(shù)為(W/m)X(L/n),其中m和n是小于此圖像幀的寬度W和比特率L。當(dāng)一些圖像幀的W和L不被m和n整除時(shí),使用此技術(shù)者可以應(yīng)用一些額外的處理即可。在實(shí)施范例中公開的FMC技術(shù)是壓縮區(qū)塊。需要注意的是,區(qū)塊并非完全獨(dú)立地壓縮。后面敘述的比特率控制會(huì)考慮多數(shù)的鄰近區(qū)塊,來執(zhí)行同一群組區(qū)塊中可壓縮位的分配(compressiblebitallocation)。換句話說,公開的實(shí)施范例在一圖像編解碼器中,通過一個(gè)接一個(gè)地編碼每一mXn區(qū)塊來壓縮一幀圖像,并且保證每一編碼區(qū)塊的壓縮率符合一給定的目標(biāo)比特率(一預(yù)定的系統(tǒng)參數(shù))。在公開的實(shí)施范例中,每一mXn區(qū)塊的壓縮技術(shù)可以包含量化、預(yù)測、可變長度編碼、包裝以及比特率控制的部分。圖2是根據(jù)一實(shí)施范例,說明每一mXn區(qū)塊的壓縮技術(shù)的一流程圖。參考圖2,量化210采用一個(gè)mXn區(qū)塊作為輸入,并且依據(jù)一預(yù)定的參數(shù)QP來量化區(qū)塊內(nèi)的像素值,從而產(chǎn)生一個(gè)mXn的量化區(qū)塊。量化210的技術(shù)與傳統(tǒng)的圖像壓縮略有不同。量化210是當(dāng)包裝(packing)240中有剩余的空間(remainingvacancy)可使用時(shí),保留移除位(removedbit)以作為補(bǔ)償用(forcompensation)的補(bǔ)償位(paddingbit)。預(yù)測220將此mXn量化區(qū)塊作為輸入,并產(chǎn)生一個(gè)mXn的殘余區(qū)塊??勺冮L度編碼230將此mXn的殘余區(qū)塊作為輸入,并且產(chǎn)生一編碼位流。包裝240將此編碼位流和量化210所產(chǎn)生的補(bǔ)償位作為輸入,并且產(chǎn)生符合一目標(biāo)比特率的一整個(gè)編碼位字串序列240a。比特率控制(rate-control)250使用稱為群組區(qū)塊(GOB)的一結(jié)構(gòu),在同一GOB彈性地共享區(qū)塊的可用空間。一GOB是一群相鄰的區(qū)塊,并且是一基本的比特率控制單元,也是一隨機(jī)存取單兀(randomaccessunit)。當(dāng)執(zhí)行可變長度編碼230時(shí),圖2的流程圖先執(zhí)行此區(qū)塊所有像素的編碼,再移至包裝240。此流程圖可以容許細(xì)微的小變化。例如,處理每一區(qū)塊時(shí),可以一像素接著一像素地(pixel-by-pixel)處理,也就是說,可以遞歸地(recursively)處理像素。亦即,在處理像素i之后,判定可用的比特率R(i)是否超過了一閾值T。一旦超出,就不再處理在此區(qū)塊中隨后的像素,此流程圖也直接移至包裝240。此變化如圖3的范例所示。每一部分的細(xì)節(jié)詳述如下。在進(jìn)行量化210時(shí),預(yù)定的參數(shù)QP可以用來控制量化水平。量化的方式是移除此像素值的二進(jìn)位表示法的某些位。要被移除的位可以由用戶通過預(yù)定的參數(shù)QP來決定。位的移除順序是從此像素值的二進(jìn)位表示法的最低有效位(LeastSignificantBit,LSB)至最高有效位(MostSignificantBit,MSB)。例如,量化最低水平,即QP=0,表示每一像素具有沒有被量化的全解析度(fullresolution),換句話說,沒有位被移除。量化水平1,即QP=1,表示每一像素的最低有效位被移除。量化水平2,即QP=2,表示兩個(gè)最低重要位被移除,等等。QP的最大值可由使用多少位以代表一像素值來決定,例如,如果每一像素值由8個(gè)位來代表,則QP最大值是8。特別是,本發(fā)明中特地設(shè)計(jì)了將被移除的位,稱為移除位,保留并傳送至包裝240,作為補(bǔ)償之用。量化后,此處理的區(qū)塊稱為量化區(qū)塊,做為預(yù)測220的輸入。圖4A是根據(jù)一實(shí)施范例,說明量化210步驟的一示意圖,其中QP=I。圖4A說明一個(gè)壓縮單元,即一mXn的區(qū)塊。圖4B說明一mXn區(qū)塊的位平面,即圖4A的mXn區(qū)塊中每一像素值的二進(jìn)位表示法,其中每一像素的最低有效位將被移除。經(jīng)過以QP=I進(jìn)行量化后,每一像素的最低有效位(LSB)被移除,并且所有移除的位都被保留作為補(bǔ)償位430,如圖4C的范例所示。在本發(fā)明中,編碼區(qū)塊容許有不同的QP參數(shù),并且QP[i]代表區(qū)塊i的QPo在進(jìn)行預(yù)測220中,上方和左邊鄰近區(qū)塊的邊界像素值以及同一區(qū)塊中已編碼的像素值的信息被用來預(yù)測編碼像素(encodingpixel)(即將被編碼的像素)。一預(yù)測函數(shù)(predictionfunction)計(jì)算被預(yù)測像素的像素值。此預(yù)測函數(shù)使用上方和左邊鄰近區(qū)塊的邊界像素值以及同一區(qū)塊中已編碼的像素值做為輸入?yún)?shù)。此預(yù)測函數(shù),例如可以是一個(gè)線性函數(shù)如一簡單的平均函數(shù)(averagefunction)或是一權(quán)重函數(shù)(weightingfunction)許多預(yù)測函數(shù)都可以使用,平均函數(shù)或是權(quán)重函數(shù)只是范例而已。預(yù)測誤差(predictionerror)定義為預(yù)測像素值(predictedpixelvalue)與實(shí)際像素值(actualpredictedpixelvalue)之間的誤差。對(duì)于那些沒有上方或左邊鄰近區(qū)塊的區(qū)塊,當(dāng)上方或左邊鄰近區(qū)塊的邊界像素值其中有一信息無法取得時(shí),可以僅使用可取得的像素值的信息搭配同一編碼區(qū)塊內(nèi)的已編碼的像素值的信息,來進(jìn)行預(yù)測。對(duì)于左上角的區(qū)塊,也就是既沒有上方的鄰近區(qū)塊也沒有左邊鄰近區(qū)塊的區(qū)塊,當(dāng)沒有上方也沒有左邊的鄰近區(qū)塊的邊界像素值的信息可以取用時(shí),在同一編碼區(qū)塊內(nèi)的已編碼的像素值的信息可以用來執(zhí)行預(yù)測。整個(gè)預(yù)測可以一像素接著一像素地進(jìn)行,直到編碼區(qū)塊的所有mXn個(gè)像素都進(jìn)行了預(yù)測。mXn像素可依一特定順序一個(gè)接一個(gè)地處理,稱為編碼順序(codingorder)。例如,此特定順序可設(shè)計(jì)如下。整個(gè)預(yù)測可從右下角(button-right)的像素開始。在最右邊的行(第n行)的n-1個(gè)像素是第一優(yōu)先進(jìn)行預(yù)測(減去起始像素),和最下面的列(第m列)的m-1個(gè)像素的預(yù)測是第二優(yōu)先(減去起始像素)。編碼順序可以是多樣化的。然而,以上描述的順序僅是順序的原則性,而不是一限制性(restrictive)順序的完整描述。為便于說明,舉一4X4區(qū)塊(m=n=4)為范例來說明如何進(jìn)行預(yù)測,但本發(fā)明中并不局限于此范例的情況。圖5A至圖5B是根據(jù)一實(shí)施范例,說明執(zhí)行一4X4區(qū)塊的預(yù)測的一示意圖。圖5A說明一4X4區(qū)塊有四個(gè)上邊相鄰(adjacent)像素和四個(gè)左邊相鄰像素。如圖5B說明,此范例假設(shè)四個(gè)上邊相鄰像素,標(biāo)示為U0、UUU2、以及U3,和四個(gè)左邊相鄰像素,標(biāo)示為L0、LI、L2、以及L3,都是可進(jìn)行預(yù)測的。如圖5B實(shí)施范例中的編碼順序所示,預(yù)測220可從右下角具編碼順序“0”的像素開始,接著是在中間具編碼順序“I”的像素等。在此范例中,假設(shè)使用平均函數(shù)作為預(yù)測函數(shù)。依此,第一像素的預(yù)測值為(L3+U3)/2(即(108+116)/2),預(yù)測誤差(即殘余)為2(即112減去110)。根據(jù)同樣的方式,第二像素預(yù)測值為(116+110)/2=113,這是U3與第一個(gè)像素的平均。結(jié)果,第二個(gè)像素的預(yù)測誤差為5(即113減去108)。圖5A中編碼區(qū)塊的最終相對(duì)應(yīng)的殘余區(qū)塊如圖6所/Jno可變長度編碼230可以使用多種可變長度編碼方法來進(jìn)行。例如,當(dāng)執(zhí)行可變長度編碼230時(shí),使用的可變長度碼可以是霍夫曼碼、Golomb-Rice碼等。本發(fā)明中可以整合一些改進(jìn),以使得所使用的可變長度編碼的壓縮效率更高。例如,使用可變長度編碼可以根據(jù)值的概率分布,其中出現(xiàn)概率越高的值是用一越短的編碼位字串(codeword)來編碼。有多種編碼概率分布可以使用。例如,根據(jù)像素在區(qū)塊中的位置、以及上方和左邊鄰近區(qū)塊的邊界是否可使用等信息,來選擇適當(dāng)?shù)木幋a概率分布。每一概率分布可以由一個(gè)別的概率編碼表(codingtable)來實(shí)現(xiàn),其中編碼表的每一元素包含至少兩欄位。此兩欄位是一編碼值(codingvalue)及其相對(duì)應(yīng)的編碼位字串。每一編碼表包含一個(gè)特殊的元素。此特殊元素的編碼位字串是全部為0或是全部為I。通過使用一代表性編碼值(representativecodingvalue)來取代多個(gè)編碼值,編碼表中元素的個(gè)數(shù)可以縮減。在編碼表中,編碼值與編碼位字串之間的對(duì)映是多對(duì)一的關(guān)系。也就是說,多個(gè)編碼值可以對(duì)映到相同的編碼位字串。編碼位字串的最大比特率可由多對(duì)一的屬性來控制。例如,那些編碼位字串的比特率超過一預(yù)定閾值的殘余可以被分配到比特率小于此閾值的編碼位字串。結(jié)果,幾種不同的殘余可以容許對(duì)映至相同的編碼位字串。在本發(fā)明中,當(dāng)mXn個(gè)殘余已完全被編碼后,編碼區(qū)塊的可用比特率沒有被徹底地利用時(shí),可以從多到一對(duì)映的編碼位字串附加一些額外的位,來辨別確實(shí)的殘余。在實(shí)施范例中,不同的可變長度編碼可能會(huì)產(chǎn)生不同類型的編碼表,例如Huffman編碼或Golomb-Rice編碼。圖7是根據(jù)一實(shí)施范例,說明在Golomb-Rice編碼中產(chǎn)生的可變長度編碼表的一示意圖。這些范例的編碼表有許多特性。其中一個(gè)特性是通過使用一個(gè)共同的殘余值來代表數(shù)個(gè)不同的殘余值以減少殘余空間(residualspace)的大小。例如,如果一個(gè)像素經(jīng)量化水平為I的量化后以7個(gè)位來表示,貝U殘余空間的大小為255,范圍從-127到127。依此,此范例中的編碼表,殘余空間的大小可以降到127,范圍從-64到63。在圖7例子中,此殘余值-127可以相當(dāng)?shù)扔谠诖藴p少殘余空間(reducedresidualspace)里的殘余值I。一輸入殘余區(qū)塊的一編碼位流是多個(gè)連續(xù)的位流,這是依一特殊的編碼順序并經(jīng)由一個(gè)接一個(gè)(one-by-one)串接(concatenating)殘余區(qū)塊的編碼位字串而構(gòu)成的。給于一殘余區(qū)塊,其mXn個(gè)殘余值依據(jù)自己的位置以及自己是否在邊界上,并以其中一個(gè)可變長度編碼表來壓縮。在本發(fā)明中,根據(jù)要編碼的殘余值的位置,可以使用多種編碼策略。圖8是根據(jù)一實(shí)施范例,說明非邊界(non-boundary)區(qū)塊的Golomb-Rice編碼策略的一示意圖。圖9A和圖9B是根據(jù)一實(shí)施范例,說明在邊界上的殘余區(qū)塊的Golomb-Rice編碼策略的一不意圖。以圖6所示為例,假設(shè)殘余區(qū)塊有四個(gè)上方相鄰像素W、Ul、,U2、和U3的四個(gè)上方相鄰的殘余值,以及四個(gè)左邊相鄰像素L0、L1、L2、和L3的四個(gè)左邊相鄰的殘余值。參考圖8,對(duì)于圖5B的特殊的編碼順序,碼(0)是2的Golomb-Rice碼(2是圖6中像素0的殘余值),并且使用Golom-Rice碼表GR(3)。所以,對(duì)應(yīng)的編碼位字串是比特率為3的111。而碼(I)是5的Golomb-Rice碼(5是圖6中像素I的剩余值),并且使用Golom-Rice碼表GR(3)。所以,對(duì)應(yīng)的編碼位字串是比特率為6的001001。如何選擇和使用相對(duì)應(yīng)的Golomb-Rice表的編碼策略可以通過分析實(shí)驗(yàn)數(shù)據(jù)來進(jìn)行。在圖9A的例子中,假設(shè)在邊界上的一殘余區(qū)塊910沒有上方四個(gè)相鄰的像素也沒有左邊四個(gè)相鄰的像素。根據(jù)殘余區(qū)塊的Golomb-Rice編碼策略,順序?yàn)?的右下角的像素使用一直接模式(directmode)。換句話說,此右下角的像素使用它自己的二進(jìn)位表示法做為已編碼的一編碼位字串。殘余區(qū)塊910的剩余像素采用圖8中同樣的編碼策略,來選擇與使用一相對(duì)應(yīng)的Golomb-Rice碼表。例如,順序I的像素使用Golomb-Rice碼表GR(3),順序2的像素使用Golomb-Rice碼表GR(I),依此類推。同樣地,在圖9B的例子中,假設(shè)一殘余區(qū)塊920是在邊界上且有四個(gè)左邊相鄰像素L0、L1、L2、和L3。根據(jù)殘余區(qū)塊的Golomb-Rice編碼策略的范例,順序0的像素使用Golomb-Rice碼表GR(3),順序I的像素使用Golomb-Rice碼表GR(3),順序2的像素使用Golomb-Rice碼表GR(I),依此類推。而有四個(gè)左邊相鄰像素L0、L1、L2、和L3的所有像素使用Golomb-Rice碼表GR(O)。上述如何選擇和使用一相對(duì)應(yīng)的Golomb-Rice表的編碼策略可通過分析實(shí)驗(yàn)數(shù)據(jù)來進(jìn)行。對(duì)于一個(gè)可變長度碼,因?yàn)橐痪幋a區(qū)塊的編碼位流的比特率可能無法剛好符合一預(yù)定閾值,即預(yù)定的目標(biāo)比特率(targetbitrate),包裝240處理編碼位流以使得每一編碼位流的比特率小于或等于此預(yù)定的目標(biāo)比特率。換句話說,每一編碼位流的比特率可以達(dá)到目標(biāo)比特率,以保證每一編碼區(qū)塊的壓縮率。參考圖10,包裝240包括切割(cutting)1010、填補(bǔ)(filling)1020、和/或補(bǔ)償(compensation)1030的功能步驟。如圖10所示,針對(duì)每一編碼的位流,包裝240檢查編碼位流的比特率。當(dāng)此比特率等于或超過一預(yù)定目標(biāo)比特率,則執(zhí)行切割1010和填補(bǔ)1020。當(dāng)此比特率小于此預(yù)定目標(biāo)比特率,則執(zhí)行補(bǔ)償1030。補(bǔ)償1030是通過使用從量化210所保存的補(bǔ)償位來達(dá)成的。圖11是根據(jù)一實(shí)施范例,說明切割和填補(bǔ)的運(yùn)作的一示意圖。參考圖11,切割1010是從編碼位流移除超過目標(biāo)比特率(目標(biāo)比特率)的第(k+1)個(gè)編碼位字串,并選擇最匹配的編碼位字串來取代第(k+1)個(gè)編碼位字串,其中k是此編碼位字串的指標(biāo)(index),k<nXm,使得k個(gè)連續(xù)編碼位字串的總比特率小于目標(biāo)比特率,但連續(xù)k+1個(gè)連續(xù)編碼位字串的總比特率大于目標(biāo)比特率。此匹配的定義是指取出第(k+1)個(gè)編碼位字串后,滿足編碼位流的剩余可用編碼空間的最大比特率的編碼位字串,其中剩余可用空間的大小是目標(biāo)比特率減去k個(gè)連續(xù)編碼位字串的總比特率。如果多個(gè)編碼位字串符合此條件,并且是相同的比特率,則選擇編碼值接近第(k+1)個(gè)編碼位字串的編碼值的編碼位字串。其理由是每一編碼位字串相對(duì)應(yīng)編碼表的一編碼值。經(jīng)過編碼后,如果還有空間可使用,則重復(fù)以上步驟。也就是按照此預(yù)測順序,來選擇對(duì)尚未編碼的殘余最匹配的編碼位字串,直到?jīng)]有匹配的編碼位字串可以選擇或是全部的殘余已進(jìn)行過編碼。當(dāng)還有空間可使用并且殘余區(qū)塊內(nèi)的一些殘余尚未編碼,但剩余的空間已不足夠用來選擇最佳匹配的編碼位字串,則利用一特殊位流(例如,全為0或全為I)來補(bǔ)滿剩余的空間,例如,在圖11中,補(bǔ)滿剩余的空間的特殊位流1110是全為零。換句話說,當(dāng)還有空間可使用時(shí),通過遞歸地(recursively)尋找多個(gè)匹配的(近似的)編碼位字串來對(duì)尚未編碼的殘余進(jìn)行填補(bǔ)1020。當(dāng)剩余空間已不足夠用來選擇最佳匹配的編碼位字串時(shí),亦即沒有發(fā)現(xiàn)更匹配的編碼位字串,則以一特殊的位流,例如全為0或全為I,來進(jìn)行填補(bǔ)1020。對(duì)于如圖3所示的變化的壓縮技術(shù)的情況,可以事先知道第(k+1)個(gè)編碼位字串的編碼會(huì)超過目標(biāo)比特率(目標(biāo)長度),因此切割1010步驟可以省略。依此,圖12是根據(jù)一實(shí)施范例,說明切割和填補(bǔ)的運(yùn)作的一流程圖。參考圖12,對(duì)于一個(gè)編碼位字串的指標(biāo)k(k<nXm),檢查用來編碼第(k+1)個(gè)殘余的可變長度編碼表的編碼位字串之間的最小比特率hk+1是否小于編碼位流的剩余可用的編碼空間。也就是說,檢查是否(T-R(k))大于hk+1(步驟1210),其中T代表該給定的目標(biāo)比特率,R(k)代表最初k個(gè)連續(xù)殘余的編碼位字串的比特率。是的話,替編碼位字串k+1找到一最佳匹配的編碼位字串(步驟1220),并且以此最佳匹配的編碼位字串來編碼第(k+1)個(gè)殘余(步驟1230),然后將編碼位字串指標(biāo)k增加1,并重復(fù)步驟1220與步驟1230,直到找不出符合的編碼位字串。否則,檢查k個(gè)連續(xù)的編碼位字串的總比特率是否小于目標(biāo)比特率,亦即,檢查R(k)是否小于T(步驟1240)。當(dāng)R(k)小于T時(shí),一個(gè)如全零流(all-zerostream)的特殊位流是用來填補(bǔ)剩余空間,也就是,剩余空間全數(shù)填補(bǔ)零(步驟1250),然后輸出整個(gè)編碼位字串序列240a;當(dāng)R(k)不小于T時(shí),則輸出整個(gè)編碼位字串序列240a。如前所述,當(dāng)所有的像素已編碼并且編碼位字串的比特率小于目標(biāo)比特率時(shí),從量化210保留的補(bǔ)償位(填補(bǔ)位)是用于像素補(bǔ)償(pixelcompensation)。在本發(fā)明中,由一特殊設(shè)計(jì)的順序來表示補(bǔ)償位的重要性,即所謂的填補(bǔ)順序(paddingorder),其中具有較小的填補(bǔ)順序的位往往比具有較高的填補(bǔ)順序的位更為顯著。換句話說,小的填補(bǔ)順序的位具有更高的重要性以用于像素補(bǔ)償,并且由最小的填補(bǔ)順序的位開始填補(bǔ)。所以,按填補(bǔ)順序遞歸地填補(bǔ)編碼位流的剩余空間,直到?jīng)]有更多的可用空間或是已使用全部的填補(bǔ)位。補(bǔ)償1030遵循相同的預(yù)測編碼的順序,并遵循量化步驟的相反的順序,從而通過補(bǔ)償位的填補(bǔ),有效地利用剩余的空間以補(bǔ)償編碼區(qū)塊的質(zhì)量。補(bǔ)償位是量化步驟的輸出之一,并且一位接著一位地填補(bǔ)編碼位流的剩余空間,直到已使用所有的補(bǔ)償位或是編碼位流的比特率達(dá)到目標(biāo)比特率。圖13是根據(jù)一實(shí)施范例,說明補(bǔ)償運(yùn)作的一示意圖。在圖13中,案例A的情況是,現(xiàn)有的可使用空間,即目標(biāo)比特率和編碼流的比特率之間的差值,大于補(bǔ)償位,例如標(biāo)、號(hào)1310的補(bǔ)償位1010...01,的總數(shù)目,則可根據(jù)一范例的填補(bǔ)順序,例如標(biāo)號(hào)1320所示,使用所有的補(bǔ)償位來填補(bǔ);案例B的情況是,現(xiàn)有的可使用空間小于補(bǔ)償位的總數(shù)目,只有一些補(bǔ)償位,例如標(biāo)號(hào)1330所示,被用來依據(jù)填補(bǔ)順序1320以填補(bǔ)回編碼位流。如前所述,當(dāng)執(zhí)行包裝240時(shí),比特率控制250使用稱為GOB的結(jié)構(gòu)在同一GOB彈性地共享區(qū)塊的可用空間。換句話說,此區(qū)塊可以在同一GOB的其它區(qū)塊取得額外的空間。一GOB的大小可能是MXN,其中M和N可以是不同的,WMm和LNn。也就是說,M和N必須小于輸入圖像的寬度和比特率,而大于壓縮區(qū)塊的寬度和比特率。壓縮圖像的寬度和比特率沒有必要是M和N的倍數(shù)。圖14是根據(jù)一實(shí)施范例,說明比特率控制技術(shù)的一示意圖。假設(shè)一個(gè)GOB包括4個(gè)區(qū)塊,標(biāo)記為區(qū)塊0區(qū)塊3,在區(qū)塊壓縮之前,同一GOB的每一區(qū)塊i會(huì)提供一個(gè)可共享的比特率Si,i=0,1,2,3。所有共享空間被收集并記錄于一共享池1410。當(dāng)區(qū)塊i要進(jìn)行編碼時(shí),令SP(i)代表共享比特率(sharebitrate)的總數(shù),以記錄共享池1410的比特率。初始值SP(O)=S0+Sl+S2+S3。令T(i)代表區(qū)塊i可用比特率的總數(shù),且PiR表區(qū)塊i扣除所共享的比特率后的剩余的可用比特率。令bloCk_len(i)代表編碼后的區(qū)塊i的編碼位流的比特率。所以,區(qū)塊i可用比特率的總數(shù)T(i)可以計(jì)算為T(i)=Pi+SP(i)以及SP(i+1)=T(i)_block_len(i)。T(i)=Pj+SP(i)以及SP(i+1)=T⑴-block_len(i)是一通用的形式(genericform)。每一區(qū)塊i的比特率控制詳細(xì)計(jì)算如下。WxM—ISP(O)=^ZsJ,;=0WxM-IT(O)=Po+SP(O)=^o+^;=0NxM-ISP(I)=T(O)-blocklen(O)=Po+^sj-block—Ien(O),—~~;=0—WxM—IT(l)=pi+SP(I)=Pi+Ai+XX-block—Ien(O),;=0—NxM-ISP(2)=T(l)-block—Ien(I)=P1+A)+-block—Ien(0)-block—len(l),—;=0——WxM-IT(2)=p2+SP(2)=p2+pi+^o+2s;-block—len(0)-block—len(l),J=O一一........,以及i-\NxM-Ii-\SP(I)=YjPj+Yjsj~Yjblock-lm^J=Oj=0j=0iNxM-Ii-\T(i)=p,+SP(p)=Y,Pj+YjS「^blcokJen(j)J=OJ=OJ=O現(xiàn)在說明一種給定的圖像壓縮方法,以適應(yīng)于一視頻處理器,此視頻處理器至少包括一量化器、一預(yù)測器、一可變長度編碼器、以及一包裝單元。圖15是根據(jù)一實(shí)施范例的一示意圖,說明圖像存儲(chǔ)器壓縮方法的運(yùn)作。參考圖15,以一區(qū)塊為一壓縮單元,將一圖像存儲(chǔ)器里多幀圖像的每一圖像切割成多個(gè)區(qū)塊,如步驟1510所示。此量化器可依據(jù)一預(yù)定的參數(shù),量化此區(qū)塊內(nèi)的多個(gè)像素值,進(jìn)而產(chǎn)生一量化區(qū)塊以及自多個(gè)像素值的二進(jìn)位表示法中移除的多個(gè)位,如步驟1520所示。此預(yù)測器可產(chǎn)生此量化區(qū)塊的一殘余區(qū)塊,如步驟1530所示。此可變長度編碼器可將此殘余區(qū)塊作為輸入并產(chǎn)生一編碼位流,如步驟1540所示。此包裝單元可將此編碼位流與量化產(chǎn)生的多個(gè)被移除的位作為輸入,并且通過使用稱為群組區(qū)塊的一結(jié)構(gòu),彈性地共享同一GOB里多個(gè)區(qū)塊的可用空間,以產(chǎn)生符合一目標(biāo)比特率的此區(qū)塊的一整個(gè)編碼位字串序列,如步驟1550所示。之前所描述的量化、預(yù)測、可變長度編碼、包裝和速率控制的部分的進(jìn)一步詳細(xì)的運(yùn)作可以分別實(shí)施于量化器、預(yù)測器、可變長度編碼器和包裝單元。在本發(fā)明的實(shí)施范例中,如果一給定的目標(biāo)比特率足夠大時(shí),此FMC技術(shù)可以實(shí)現(xiàn)無失真壓縮效能。在有些應(yīng)用中,它可能需要小的目標(biāo)比特率,公開的FMC技術(shù)可以接近無失真的情況。在本發(fā)明的實(shí)施范例中,也提供一畸變區(qū)塊指示(DistortedBlockIndication,DBI)方法來識(shí)別圖像中編碼區(qū)塊的失真程度是否超過一預(yù)定閾值。此識(shí)別方法可進(jìn)行如下(但不受限于僅此情況)。當(dāng)一壓縮區(qū)塊由一FMC解碼器重建,可以獲得此區(qū)塊的編碼比特率。如果編碼比特率違反了一預(yù)定閾值(例如,大于此閾值),則可標(biāo)示此畸變區(qū)塊。換句話說,通過使用公開的FMC技術(shù),可以發(fā)現(xiàn)失真程度超過此預(yù)定閾值的區(qū)塊。公開的DBI方法對(duì)于圖像壓縮的運(yùn)動(dòng)補(bǔ)償是有用的,例如H.264/AVC、H.263、以及MPEG-4,其中目前圖像會(huì)參考前一幀圖像的運(yùn)動(dòng)估計(jì)。當(dāng)一圖像處理器參考以本發(fā)明的FMC技術(shù)所重建的一圖像,來搜尋運(yùn)動(dòng)向量時(shí),它可以得知畸變區(qū)塊,那么就可以妥善處理畸變區(qū)塊,以避免因運(yùn)動(dòng)預(yù)測所造成的誤差傳播(errorpropagation)。圖16是根據(jù)一實(shí)施范例的一示意圖,說明一種圖像存儲(chǔ)器壓縮裝置。其中,此裝置適應(yīng)于一視頻處理器,此視頻處理器將一圖像存儲(chǔ)器里多幀圖像的每一圖像切割成多個(gè)區(qū)塊。參考圖16,此圖像存儲(chǔ)器壓縮裝置1600可包含一量化器1610、一預(yù)測器1620、一可變長度編碼器1630、以及一包裝單元1640。圖像存儲(chǔ)器壓縮裝置1600的輸入數(shù)據(jù)包含邊界數(shù)據(jù)(boundarydata)L[i]、量化參數(shù)QP[i]、以及mXn個(gè)像素的k區(qū)塊的一序列,其中i是區(qū)塊指標(biāo),i=l,...,k。首先,對(duì)于每一區(qū)塊i,依據(jù)量化參數(shù)QP[i]的值來量化其mXn個(gè)像素。在實(shí)施范例中,量化器1610可以根據(jù)縮短位數(shù)目來進(jìn)行量化,例如,它可以使用每一像素的最高有效8-QP[i]個(gè)位來實(shí)現(xiàn)量化結(jié)果,并用表示成MSB8_QP[j]([1,」]),其中?[1,j]是第i個(gè)區(qū)塊的第j個(gè)像素,j=1,...,mn,并且函數(shù)MSBu(X)回以像素x的最高有效的u個(gè)位。在本發(fā)明的實(shí)施范例中,量化器1610量化后的輸出是q[i,j]=MSB8_QP[i](p[i,j]),并且所有的被截?cái)辔?cut-offbit)保留為一個(gè)集合e[i]={LSBQP[i](p[i,j])j=1,...,mn},即補(bǔ)償位,以提供給包裝階段。LSB_(p[i,j])取出P[i,j]中QP[i]個(gè)最低有效位。換句話說,函數(shù)LSBu(X)回以像素X的最低有效的u個(gè)位。以QP[i]=2為例。假設(shè)像素P的位表示為Vb10101001,這意味著像素p是由一個(gè)8位流10101001來代表,然后q=MSB8_2(p)=6'bl01010以及LSB2(p)=2'b01,e[i]的位順序可以遵循從MSB到LSB的一預(yù)測優(yōu)先順序。假設(shè)一個(gè)區(qū)塊有9個(gè)像素,圖17是根據(jù)一實(shí)施范例的一示意圖,說明預(yù)測優(yōu)先順序的像素指標(biāo)。參考圖17,如果預(yù)測優(yōu)先順序是9,3,6,7,8,2,5,4,1,則補(bǔ)償位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]),LSBgpm(p[i,l])}。預(yù)測器1620使用兩個(gè)輸入數(shù)據(jù),即邊界數(shù)據(jù)L[i]與量化q[i,j],以及兩個(gè)控制輸入,即控制-I與控制_2,來產(chǎn)生一mXn的殘余區(qū)塊??刂?I是用來辨認(rèn)邊界值L[i]的有效狀態(tài)。例如,當(dāng)控制-I是假(FALSE)時(shí),則指出這個(gè)預(yù)測沒有邊界,并且此預(yù)測計(jì)算只根據(jù)q[i,j]。當(dāng)控制-I是真(TRUE)時(shí),則指出L[i]是有效的。當(dāng)控制_1是真時(shí),預(yù)測器1620使用控制-2來決定一個(gè)有效邊界的狀態(tài)。在實(shí)施范例中,控制-2是用來選擇三種邊界狀態(tài)的其中一種,三種邊界狀態(tài)即同時(shí)參考左邊和上方的邊界、只參考左邊的邊界、以及只參考上方的邊界。L[i]包括m+n個(gè)值,其中區(qū)塊i的上方邊界包括n個(gè)值,而左邊邊界包括m個(gè)值,例如每一值有8_QP[i]個(gè)位。預(yù)測器1620進(jìn)行q[i,j]和L[i]的預(yù)測計(jì)算,并且產(chǎn)生q[i,j]與它的一預(yù)測值之間的一差異d[i,j],也就是說,差異d[i,j]是像素p[i,j]的殘余。在獲得差異d[i,j]后,可變長度編碼器1630使用查表的方法來執(zhí)行每一d[i,j]的編碼,其中對(duì)d[i,j]的每一值可以找到一相對(duì)應(yīng)的碼并且s[i,j]是以一特定的順序輸出的所有碼。以e[i]為例,可變長度編碼器1630具有與e[i]相同的順序和以反向預(yù)測的順序輸入,并以順序s[i,l]、s[i,4]、s[i,5]、s[i,2]、s[i,8]、s[i,7]、s[i,6]、s[i,3]]、以及s[i,9],輸出區(qū)塊i的一編碼流s[i,j]。在取得區(qū)塊i的編碼流s[i,j]后,包裝單元1640根據(jù)編碼流s[i,j]、補(bǔ)償位e[i]、以及一預(yù)定的目標(biāo)比特率T[i]來進(jìn)行包裝的運(yùn)作。T[i]是包裝單元1640輸出的cs[i]的最大位比特率。圖18是根據(jù)一實(shí)施范例,說明包裝單元1640的一示意圖。參考圖18,包裝單兀1640可包含一右移寄存器(right-shiftregister)1810、一收縮模塊(shrinkingmodule)1820、一剩余位計(jì)算模塊(remaining-bitcalculationmodule)1830、以及一重建模塊(reconstructionmodule)1840。右移位寄存器1810具有一的最大比特率,即T個(gè)位。收縮模塊1820執(zhí)行在右移位寄存器1810上的MSBT[i]的運(yùn)算。換句話說,收縮模塊1820從右移位寄存器1810中提取MSBT[i]位,也就是說,由收縮模塊1820所產(chǎn)生的一寄存器r的輸出值就是MSBtw(R),其中R代表右移位寄存器1810的位流。包裝單元1640對(duì)于每一區(qū)塊單元的具體運(yùn)作描述如下。每當(dāng)編碼一個(gè)新的區(qū)塊i時(shí),右移位寄存器1810將被重置(reset),例如重置成全零。首先,e[i]是右移至右移位寄存器1810的MSB位,如圖19所示。然后,按照預(yù)測順序輸入s[i,j],其中s[i]是串接帶有優(yōu)先順序的輸入序列S[i,j]而成的編碼位字串;較低優(yōu)先順序的輸入是放置在LSB的位置,而較高優(yōu)先順序的輸入被放置在MSB的位置。以前述提及的實(shí)施例為范例,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,l]}。s[i]是所有s[i,j]串接而成的位比特率,以及e[i]是e[i]的位比特率。通常,e[i]=mnXQP[i]。如果|s[i]|+1e[i]<T[i],移位和收縮的結(jié)果如圖20的范例所示。圖20說明s[i]和e[i]都保存在寄存器!■里,亦即,新區(qū)塊的編碼是沒有任何畸變的。然而,如果s[i]<T[i]以及s[i]|+|e[i]>T[i],移位和收縮的結(jié)果如圖21的范例所示,其中u=T[i]_|s[i]|,指出e[i]的值被截?cái)?,亦即,一些的填補(bǔ)位被截?cái)?truncated)。換句話說,s[i]和MSBu(e[i])被保存在寄存器r。如果s[i]=T[i],貝丨J移位和收縮的結(jié)果如圖22的范例所示。圖22說明s[i]是被全部保存,而e[i]是完全消失不見。當(dāng)比特率是三種情況如圖20—圖22所示,的其中之一時(shí),剩余位計(jì)算模塊(remaining-bitcalculationmodule)1830計(jì)算一標(biāo)志,稱為iscutting,的值為假(FALSE),重建模塊(reconstructionmodule)1840直接輸出r值至一寄存器cs[i]并且設(shè)定區(qū)塊i的區(qū)塊比特率block_len[i]為T[i]。最后的情況是當(dāng)|si]I>T[i]時(shí),會(huì)發(fā)生編碼位字串被截?cái)?,并且r值如圖23所示,即只有MSBtw(s[i])被保存在寄存器r里。當(dāng)此情況發(fā)生時(shí),剩余位計(jì)算模塊1830設(shè)定標(biāo)志iscutting的值為真(TRUE),以表示s[i]的比特率是大于T[i]。剩余位計(jì)算模塊1830依據(jù)被通知的輸入編碼位字串的比特率s_len[j],進(jìn)一步輸出一個(gè)指標(biāo)cut_index來告知s[i]中的那一個(gè)s[i,j]被截?cái)唷2⑶椅槐忍芈蔮it_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,l]}為例。假設(shè)s[i,4]和s[i,l]是從右移寄存器r的范圍右移,并且s[i,5]是部分保存(partiallysaved)在寄存器r中。此時(shí),cut_indx=5,bit_len=IT[i]|-1{s[i,9],s[i,3],s[i,6],s[i,7],s[i,8],s[i,2]}|。s[i,5]被截?cái)嗟倪@種情況指出可用剩余比特率bitIen小于|s[i,5]I。此時(shí),重建模塊1840會(huì)根據(jù)bit_len,搜尋一個(gè)編碼位字串,并且輸出寄存器r的一個(gè)新值(newvalue),其中此編碼位字串具有最合適的比特率以取代被截?cái)嗟膕[i,5]。假設(shè)取代截?cái)鄐[i,5]的新發(fā)現(xiàn)的編碼位字串記為s'[i,5],并且|s'[i,5]|小于可用的剩余比特率bitlen,則存在寄存器cs[i]里的值如圖24所示,其中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]中的值是一個(gè)由重建模塊1840產(chǎn)生的區(qū)塊i的整個(gè)編碼位字串序列。最后,重建模塊1840輸出區(qū)塊i的整個(gè)編碼位字串序列,即有效的區(qū)塊比特率block_len[i]以及它的總可用比特率T[i]??偪捎帽忍芈蔜[i]將反饋到包裝單元1640,以處理下一個(gè)新區(qū)塊的包裝運(yùn)作。在一些實(shí)驗(yàn)范例中,來觀察公開的圖像存儲(chǔ)器壓縮(FMC)技術(shù)是否可實(shí)現(xiàn)無失真的壓縮性能。圖25是根據(jù)一實(shí)施范例,說明一些范例的實(shí)驗(yàn)參數(shù),其中使用具有IOSOp解析度的8種典型的圖像序列。在這些范例的實(shí)驗(yàn)中,使用公開的FMC技術(shù)的所有區(qū)塊經(jīng)由使用QP=0可以完成編碼。換句話說,使用公開的FMC技術(shù)的所有區(qū)塊在一預(yù)定的目標(biāo)比特率的要求下,可以達(dá)到無失真壓縮。當(dāng)使用QP=I時(shí),在一預(yù)定的目標(biāo)比特率的要求下,可以達(dá)到大多數(shù)的區(qū)塊的編碼。如果給定的目標(biāo)比特率足夠小,使用公開的FMC技術(shù)可以接近無失真的壓縮性能。如果給定的目標(biāo)比特率足夠大,使用公開的FMC技術(shù)的所有區(qū)塊可以實(shí)現(xiàn)無失真的壓縮性能。在另一些實(shí)驗(yàn)范例中,進(jìn)一步觀察在不同大小的GOB使用公開的FMC技術(shù)的壓縮性能,其中,使用4X4G0B、16X4G0B、以及16X16G0B的三種不同大小。實(shí)驗(yàn)結(jié)果說明,在三種不同的GOB大小中,16X16G0B達(dá)到最好的壓縮性能。換句話說,通過使用以GOB為基礎(chǔ)的結(jié)構(gòu),公開的速率控制技術(shù)可進(jìn)一步提高圖像處理器的整個(gè)壓縮性能。以上所述皆僅為本發(fā)明實(shí)施例,不能依此限定本發(fā)明實(shí)施的范圍。大凡依據(jù)本發(fā)明權(quán)利要求書所作的均等變化與修飾,皆應(yīng)屬于本發(fā)明權(quán)利要求書要求保護(hù)的范圍。權(quán)利要求1.一種圖像存儲(chǔ)器壓縮方法,以適應(yīng)于一圖像處理器,該圖像處理器至少包括一量化器、一預(yù)測器、一可變長度編碼器、以及一包裝單元,該方法包含以一區(qū)塊為一壓縮單元,將一圖像存儲(chǔ)器里多幀圖像的每一圖像切割成多個(gè)區(qū)塊;應(yīng)用該量化器,依據(jù)一預(yù)定的參數(shù),量化該區(qū)塊內(nèi)的多個(gè)像素值,進(jìn)而產(chǎn)生一量化區(qū)塊以及自該多個(gè)像素值的二進(jìn)位表示法中移除的多個(gè)位;應(yīng)用該預(yù)測器,來產(chǎn)生該量化區(qū)塊的一殘余區(qū)塊;應(yīng)用該可變長度編碼器,將該殘余區(qū)塊作為輸入并產(chǎn)生一編碼位流;以及應(yīng)用該包裝單元,將該編碼位流與量化產(chǎn)生的該多個(gè)被移除的位作為輸入,并且通過使用稱為群組區(qū)塊GOB的一結(jié)構(gòu),彈性地共享同一GOB里多個(gè)區(qū)塊的可用空間,以產(chǎn)生符合一目標(biāo)比特率的該區(qū)塊的一整個(gè)編碼位字串序列。2.如權(quán)利要求I所述的方法,其中一GOB是該區(qū)塊的一組鄰近的區(qū)塊,以及是一基本的比特率控制單元。3.如權(quán)利要求I所述的方法,其中該量化器以一順序移除該多個(gè)移除的位來量化該區(qū)塊內(nèi)的該多個(gè)像素值,且該順序是從該多個(gè)像素值的每一像素值的二進(jìn)位表示法的最低有效位至最高有效位。4.如權(quán)利要求I所述的方法,其中該預(yù)測器依據(jù)該區(qū)塊的邊界數(shù)據(jù),以一特殊預(yù)定的順序,一像素接著一像素來預(yù)測該區(qū)塊內(nèi)的該多個(gè)像素值。5.如權(quán)利要求I所述的方法,其中該量化器所產(chǎn)生的該多個(gè)移除的位被保留,以在該包裝單元產(chǎn)生該整個(gè)編碼位字串序列時(shí)做為像素補(bǔ)償。6.如權(quán)利要求I所述的方法,其中該包裝單元利用一剩余的可用空間來補(bǔ)償該編碼位流的質(zhì)量,其根據(jù)一填補(bǔ)順序,以一位接著一位的方式將該多個(gè)移除位填補(bǔ)回該編碼位流的該剩余空間,直到已使用所有的移除位或是該編碼位流的一比特率達(dá)到該目標(biāo)比特率。7.如權(quán)利要求6所述的方法,其中該填補(bǔ)順序代表該多個(gè)移除位的重要性,并且具有一較低的填補(bǔ)順序的一位是比具有一較高的填補(bǔ)順序的另一位更為重要。8.如權(quán)利要求I所述的方法,其中該包裝單元檢查該編碼位流的一比特率是否小于該目標(biāo)比特率,并且當(dāng)該比特率等于或超過該目標(biāo)比特率時(shí),執(zhí)行一切割和一填補(bǔ),當(dāng)該比特率小于該目標(biāo)比特率時(shí),執(zhí)行一補(bǔ)償。9.如權(quán)利要求8所述的方法,其中運(yùn)作該切割是從該編碼位流移除用于該可變長度編碼器中超過該目標(biāo)位速率的一第(k+1)編碼位字串,并且選擇一最佳匹配編碼位字串來取代該第(k+1)編碼位字串,其中k是一編碼位字串的指標(biāo),使得用于該可變長度編碼器的連續(xù)k個(gè)編碼位字串的總比特率小于該目標(biāo)比特率,但用于該可變長度編碼器的連續(xù)k+1個(gè)編碼位字串的總比特率大于該目標(biāo)比特率。10.如權(quán)利要求9所述的方法,其中當(dāng)還有一剩余空間可用并且該剩余區(qū)塊內(nèi)存在尚未編碼的殘余時(shí),則通過遞歸地尋找多個(gè)匹配的編碼位字串來對(duì)該尚未編碼的殘余進(jìn)行該填補(bǔ),當(dāng)該剩余空間不足夠用以選擇一最佳匹配的編碼位字串時(shí),則以一特殊的位流來進(jìn)行該填補(bǔ)。11.一種圖像存儲(chǔ)器壓縮裝置,以適應(yīng)于一圖像處理器,該圖像處理器以一區(qū)塊為一壓縮單元,將一圖像存儲(chǔ)器里多幀圖像的每一圖像切割成多個(gè)區(qū)塊,該裝置包含一量化器,依據(jù)一預(yù)定的參數(shù),量化該區(qū)塊內(nèi)的多個(gè)像素值,進(jìn)而產(chǎn)生一量化區(qū)塊以及自該多個(gè)像素值的二進(jìn)位表示法中移除的多個(gè)位;一預(yù)測器,依據(jù)該區(qū)塊的邊界數(shù)據(jù)和該量化區(qū)塊,使用兩控制輸入來產(chǎn)生一殘余區(qū)塊;一可變長度編碼器,將該殘余區(qū)塊作為輸入,并經(jīng)由使用一查表方法而產(chǎn)生一編碼位流;以及一包裝單元,將該編碼位流與量化產(chǎn)生的該多個(gè)被移除的位作為輸入,并且通過使用稱為群組區(qū)塊GOB的一結(jié)構(gòu),彈性地共享同一GOB里多個(gè)區(qū)塊的可用空間,以產(chǎn)生符合一目標(biāo)比特率的該區(qū)塊的一整個(gè)編碼位字串序列。12.如權(quán)利要求11所述的裝置,其中該預(yù)測器使用該兩控制輸入其中之一來識(shí)別該邊界數(shù)據(jù)的一有效狀態(tài),另一控制輸入是用來決定一有效邊界的狀態(tài)。13.如權(quán)利要求12所述的裝置,其中該另一控制輸入選擇三個(gè)邊界狀態(tài)的其中一種,該三個(gè)邊界狀態(tài)包括同時(shí)參照左邊和上方的邊界、只參照左邊的邊界、以及只參照上方的邊界。14.如權(quán)利要求11所述的裝置,其中該包裝單元還包含一右移位寄存器,用來將該多個(gè)移除位右移至其最高有效位,并且根據(jù)一預(yù)測順序右移該編碼位流;一收縮1旲塊,從該右移位寄存器提取最聞?dòng)行У腡位,并且回以該最聞?dòng)行У腡位至一寄存器,其中T是該目標(biāo)比特率的位比特率;一剩余位計(jì)算模塊,計(jì)算出一標(biāo)志,以指出該編碼位流的比特率是否大于該目標(biāo)比特率,當(dāng)該標(biāo)志為真時(shí),該剩余位計(jì)算模塊輸出一編碼位字串指標(biāo),以通知該區(qū)塊中那一編碼位字串應(yīng)該被取代,并且輸出一位比特率以告知該寄存器一可用的剩余空間的比特率;以及一重建模塊,根據(jù)該標(biāo)志、該編碼位字串指標(biāo)、該位比特率、以及該目標(biāo)比特率,輸出一區(qū)塊比特率以及自該寄存器輸出該整個(gè)編碼位字串序列。15.如權(quán)利要求14所述的裝置,其中該編碼位流的比特率大于該目標(biāo)比特率時(shí),該標(biāo)志被設(shè)定為真,該重建模塊找到一最佳匹配的編碼位字串來取代對(duì)應(yīng)于該編碼位字串指標(biāo)的該編碼位字串。16.如權(quán)利要求15所述的裝置,其中當(dāng)該最佳匹配的編碼位字串的比特率少于該可用的剩余空間時(shí),將該寄存器中所有剩余位以零填補(bǔ)。17.如權(quán)利要求14所述的裝置,其中當(dāng)該編碼位流和該多個(gè)移除位的一總比特率小于該目標(biāo)比特率時(shí),該標(biāo)志被設(shè)定為假,并且該編碼位流和該多個(gè)移除位全部被存儲(chǔ)在該寄存器。18.如權(quán)利要求14所述的裝置,其中當(dāng)該編碼位流的比特率小于該目標(biāo)比特率,但該編碼位流和該多數(shù)移除位的一總比特率大于該目標(biāo)位速率時(shí),該標(biāo)志被設(shè)定為假,并且該編碼位流和該多個(gè)移除位的最高有效的u個(gè)位被存儲(chǔ)在該寄存器,其中u等于該目標(biāo)比特率和該編碼位流的比特率之間的一差異。19.如權(quán)利要求11所述的裝置,其中當(dāng)該編碼位流的比特率等于該目標(biāo)比特率時(shí),該標(biāo)志被設(shè)定為假,并且該編碼位流被全部保存,而該多個(gè)移除位完全消失不見。全文摘要圖像存儲(chǔ)器壓縮方法與裝置,該圖像存儲(chǔ)器壓縮方法以區(qū)塊為一壓縮單元,將一圖像存儲(chǔ)器里多幀圖像的每一圖像切割成多個(gè)區(qū)塊。此方法根據(jù)一預(yù)定的參數(shù),量化區(qū)塊內(nèi)的多個(gè)像素值,進(jìn)而產(chǎn)生一量化區(qū)塊以及自多個(gè)像素值的二進(jìn)位表示法中移除的多個(gè)位。一預(yù)測器是用來產(chǎn)生此量化區(qū)塊的一殘余區(qū)塊。一可變長度編碼器將此殘余區(qū)塊作為輸入并產(chǎn)生一編碼位流。一包裝單元將此編碼位流與量化產(chǎn)生的多個(gè)被移除的位作為輸入,并且通過使用稱為群組區(qū)塊(GOB)的一結(jié)構(gòu),彈性地共享同一GOB里多個(gè)區(qū)塊的可用空間,以產(chǎn)生符合一目標(biāo)比特率的此區(qū)塊的一整個(gè)編碼位字串序列。文檔編號(hào)H04N7/26GK102740068SQ201110445059公開日2012年10月17日申請(qǐng)日期2011年12月27日優(yōu)先權(quán)日2011年3月30日發(fā)明者吳天健,周凡迪,林俊隆,顏志旭申請(qǐng)人:財(cái)團(tuán)法人工業(yè)技術(shù)研究院