專利名稱:壓縮和解壓縮圖象的制作方法
技術領域:
本發明涉及本發明涉及用于改進包含圖象數據的數據流壓縮的系統和方法。
2.現有技術說明許多重要的圖象壓縮方法將圖象作為獨立的象素塊進行處理。例如,諸如JPEG、MPEG、H.320之類的圖象壓縮標準指定一個涉及對源圖象中的獨立的、不重疊的8C8象素塊進行離散余弦變換(“DCT”)、然后對所得的變換系數進行量化的步驟。例如,參見Jack,1996,Video Demystified,HighText Interactive Inc.,San Diego,CA.將量化的變化系數從發射-編碼器發送到接收-譯碼器。
這種變換和量化通過采用一般出現在8×8塊中的象素值之間的有效的規則性和相關性來一起實現壓縮。然而,這種方法忽略了可能出現在由這些方法視為獨立的不同象素塊中的象素之間的任何規則性和相關性。
對于嘗試在象素塊或更大規模上識別圖象的規則性的一些工作已經被公布了。例如Pennebaker等1993年的JPEG Still ImageCompression,Van Nostrand Reinhard,Chap.16,其中公開了將二次曲面用相鄰塊中的象素的平均值(等效于“DC”或最低階變換系數)來表示,這是一個計算復雜的過程;Lakhani的1996年的“Improved Image Reproduction from DC Components”,Opt.Eng.35:3449-2452公開了從JPEG標準中改進的用于從DC系數預測低頻變換系數的方程式;以及,Jeon等的1995年的Blocking ArtifactsReduction in Image Coding Based on Minimum Block BoundaryDiscontinuity,Proc SPIE 2501:189-209公開了一種復雜并且計算昂貴的用于內插象素以便使塊邊界的不連續性為零的迭代方法。
所公布的工作存在著一個或多個問題,例如,不針對最大程度地提高圖象壓縮,忽略或最多不適當地處理可能存在于級別大于一個象素塊的圖象中的規則性,需要過多的計算資源,等等。因此,所需要的是一種主要針對通過采用在已知壓縮方法和標準中未采用的圖象中的另外的規則性和相關性來實現數據壓縮提高的計算高效的方法和系統。
在圖象壓縮期間,可應用本發明的編碼器/譯碼器對將圖象從空間域變換到一個變換域,隨后對所得的變換系數進行量化,其中在空間域將圖象表示為一個空間象素陣列,在變換域將圖象表示為在變換方法中使用的基函數的系數。在解壓縮期間,譯碼器反轉這些步驟。特別地,相關編碼器/譯碼器對將空間域圖象分成多個圖象子塊,并在圖象中的每個子塊上獨立地執行變換/反變換。
在相關類型的編碼器/譯碼器對中,本發明的改進包括在編碼器中的一個預測特定低階或低頻(“LF”)變換系數的附加步驟。然后從實際的LF變換系數中減去預測的LF系數,以形成LF差系數,將LF差系數量化并發送到譯碼器。在譯碼器中,反轉這些步驟,即,再次預測LF系數,將預測的系數增加到所發送的量化LF差系數中,以得到原始LF系數,直至量化誤差。
依據本發明的LF系數預測是基于圖象-數據壓縮除了已經由子塊變換和量化實現之外還可以通過捕獲在相鄰子塊中的象素值之間的規則性和相關性(“塊間規則性”)來實現這個事實。可以通過預測平滑相鄰子塊之間的差所需的LF變換系數來有利地應用這些塊間規則性,以便平滑圖象的子塊邊界。在一個最佳實施例中,相鄰子塊之間的差由相鄰子塊的平均亮度的差來表示。
圖2A-C顯示了依據本發明的系統的例示性實施例;圖3A-3C顯示了例示性的空間加權。
最佳實施例的詳細說明在下面首先在總體上說明本發明的系統和方法,然后詳細說明這些系統和方法的最佳實施例和替換實施例。本發明的整體描述本發明包括一般可應用于特定類型的用于所有類型的包含圖象的數據的編碼器和譯碼器的改進。
圖1顯示了本發明的改進編碼器和譯碼器的例示性實際應用、應用了本發明的改進的編碼器和譯碼器的結構以及依據本發明的改進的一般特征。
在圖1的例示性應用中,發射器1通過傳輸鏈路3向接收器2發送包含圖象的數據,例如獨立圖象數據或視頻數據4。雖然將傳輸鏈路3具體顯示為一個通信鏈路,本發明同樣還可應用于通過將壓縮數據記錄在諸如磁盤或光盤之類的存儲介質上來傳輸的情況。為了減少傳輸鏈路3的所需帶寬或所需存儲容量,發射器1包括產生壓縮的包含圖象的數據5的改進編碼器7,壓縮的包含圖象的數據5然后被發送到接收器2。接收器2包括一個相應的改進譯碼器8以便從壓縮數據5重構原始的包含圖象4的數據。應該理解,本發明的改進編碼器和譯碼器的應用并不限于這種例示性的應用,而是包括要對包含圖象的數據進行壓縮或解壓縮的所有情況。
進一步參考圖1,可應用本發明的編碼器/譯碼器對在圖象壓縮期間在編碼器7中執行圖象從空間域到變換域的象素塊變換9、然后對所得的變換系數進行量化11,其中在空間域將圖象表示為一個空間象素陣列,在變換域將圖象表示為在變換方法中使用的基函數的系數。在解壓縮期間,譯碼器8執行反轉步驟,對變換系數進行去量化12,然后反變換14回空間域象素數據。
特別地,相關編碼器/譯碼器對將空間域圖象分成多個不重疊的象素子塊或窗口,并在圖象中的每個子塊或窗口上獨立地執行變換/反變換。將象素陣列形式的圖象完全分成多個象素子塊,并且可以從多個象素子塊重構。在變換域或頻域中,對于多個象素子塊中的每一個,圖象用變換系數或其隨后的編碼來表示。
仔細地選擇子塊的尺寸和形狀,使得對于所感興趣的圖象,平均起來,每個子塊的象素值都是緩慢變化或大致均勻的。因此,平均起來,隨著相應變換基函數的空間頻率增大,子塊的變換系數的振幅迅速下降。從而,后續對變換系數的量化可以實現圖象數據壓縮,其中,量化是用一個指示來代替系數的實際值,在所述指示中,實際的系數值位于有限數目的區間中,這些有限數目的區間劃分可能的系數值的范圍。對量化區間的明智的選擇可以在不顯著損失可覺察的圖象完整性的情況下實現相當大的壓縮。
在這種編碼器/譯碼器對中,本發明的改進包括在改進編碼器7中的變換步驟9和量化步驟11之間執行的預測低階或低頻(“LF”)變換系數的附加步驟10,在譯碼器8中的在量化步驟12和反變換步驟14之間執行的預測附加步驟13。這些系數預測步驟、步驟10和13以下列方式提高了平均壓縮。在一個改進的編碼器中,依據本發明預測LF變換系數,然后從實際的LF變換系數中減去預測的LF變換系數,以形成LF差系數。在改進譯碼器8中反轉這個過程。在步驟1 3,預測LF系數,并將預測值加到所發送的量化LF差系數中,以得到初始LF系數,直至量化誤差。
LF系數預測提高了壓縮,因為預期LF差系數的可變長度編碼會需要平均比實際LF系數的相似編碼更少的比特。平均來說,預期預測LF系數會接近實際LF系數,從而預期差系數的振幅在平均上會顯著小于實際系數。由于更小,所以差系數需要更少的比特來用于其可變長度編碼。
依據本發明的LF系數預測是基于發明人的下列發現的。首先,雖然對圖象子塊的獨立變換通過捕獲圖象子決內的象素值之間的有效規則性和相關性(“塊內規則性”)實現了圖象數據壓縮,但進一步的圖象數據壓縮可以通過捕獲相鄰子塊中存在的象素值之間的規則性和相關性(“塊間規則性”)來實現。其次,可以通過預測平滑相鄰子塊之間的差所需的LF變換系數來有利地應用塊間規則性,以便平滑圖象的子塊邊界。在一個最佳實施例中,相鄰子塊之間的差是由相鄰子塊的平均亮度中的差表示的。由于在所有的相關變換方法,子塊的平均亮度與該塊的零頻率(“DC”)變換系數相同,所以該發明最好從子塊和相鄰子塊的DC系數來預測一個子塊的LF變換系數。
為了在編碼器和譯碼器執行LF系數預測,最好以最小或無量化或離散誤差發送DC系數。因為精確的DC系數對于獲得可察覺的圖象完整性非常重要,所以通常需要這樣。
由于本發明通過除了捕獲塊內規則性之外還捕獲塊間規則性來實現圖象數據壓縮,所以它進一步包括通過選擇子塊尺寸以及可選地選擇子塊形狀來優化對一類重要圖象的平均壓縮,以便使平均壓縮最大。這種選擇可以僅僅通過測量在各種子塊尺寸對該類典型圖象的平均壓縮、然后選擇達到最優壓縮的子塊尺寸來完成。一般地,可允許的子塊尺寸和形狀由所使用的變換方法和可用的計算資源所限制。
圖象規則性是由本發明所采用的塊內和塊間的相關性,發明人相信這來自于如下事實,即典型圖象是由物體組成的,典型物體平均是由具有基本上均勻或僅僅緩慢變化的亮度的表面所組成的。因此,對于所選擇的尺寸小于或明顯小于物體表面的平均值的子塊存在著有效的塊內和塊間規則性和相關性。雖然本發明可以有利地用于提高包含這種圖象的數據的壓縮,但應該理解的是,本發明可以在無壓縮損耗的情況下應用于任何類型的包含圖象的數據上。
本發明最好運用于所采用的變換方法是離散余弦變換(“DCT”)的編碼器/譯碼器對上,其中,象素子塊是方形陣列,例如一邊8個象素,并且以最小或無量化或離散誤差、即無損耗地發送DC系數。8×8象素子塊的DCT變換可以用目前的許多圖象壓縮方法執行,例如MPEG、JPEG和H.320系列的標準。此外,這些標準一般以無損耗方式發送DC系數。
在MPEG編碼器/譯碼器對的情況下,或在以運動預測執行壓縮的編碼器/譯碼器對的一般情況下,本發明一般只可應用于那些在沒有運動預測的情況下編碼的圖象(常常稱為“編碼內圖象”,此后稱為“I”類型圖象),因為在編碼器和譯碼器對于每個圖象子塊和其相鄰子塊都需要DC系數。這種DC系數對于以運動預測編碼的子塊(常常稱為“編碼間圖象”,此后稱為“非-I”類型圖象)是不可用的,因為這種編碼幀參考前面或后面的圖象。根據MPEG標準系列,非-I類型圖象或者是從前面的圖象有原因地預測(“P”類型),或者是從前面和后面的圖象雙向預測(“B”類型)。然而,如果DC系數對于以運動預測編碼的圖象是可用的,則本發明同樣也可以運用到這種圖象上。
下面,為了具體描述并且沒有任何限制,將本發明描述為對標準MPEG編碼器和譯碼器的改進。從上述和下面的說明中,本領域普通技術人員將會立即理解依據本發明如何構造采用JPEG或H.320以及MPEG標準的改進的編碼器/譯碼器對,以及如何構造采用用于獨立子塊的另一種變換方法或另一種尺寸和形狀的改進的編碼器/譯碼器對。進一步地,本領域普通技術人員將會理解,如何選擇基本的編碼器/譯碼器參數,例如象素子塊尺寸和形狀,以便通過采用所感興趣的一類圖象中存在的規則性來提高壓縮。最佳系統實施例在這個部分,說明在依據本發明的改進的編碼器/譯碼器中實施的一般方法,然后說明例示性的改進MPEG編碼器/譯碼器系統。
如上所述,首先將劃分圖象的不重疊子塊變換到一個變換域或頻域,并將所得的變換系數輸入到本發明的一般方法中。優選地,用DCT變換將8×8象素子塊變換到頻域。對于每個子塊,從其零頻率或DC變換系數及相鄰子塊的DC系數預測該塊的所選定低頻(“LF”)變換系數,其中,已知DC變換系數正比于該子塊中的平均象素亮度。然后,通過從相應的DCT系數中減去預測的LF系數來形成差系數。
因此,依據本發明,圖象是由下列數據編碼和表示的DC變換系數,差變換系數,以及剩余變換系數,即那些除了LF頻率變換系數之外的變換系數。可以對這些系數中的一個或多個進行量化,以實現數據壓縮。優選地,只有差和剩余變換系數被量化。雖然不是優選的,但DC系數也可以被量化。這些典型數據然后可以被用于各種目的。
系數量化可以根據現有技術中已知的能夠量化變換的象素塊的任何方法來執行。例如,可以使用JPEG、MPEG和H.320系列標準的量化方法和規定。
特別地,發送或存儲表示圖象的編碼數據。最好以最小或無損耗地發送DC系數。應該理解,可以在最終發送之前在這些圖象數據上執行進一步的編碼或壓縮、例如可變長度編碼、霍夫曼編碼等等,然后可以在接收到之后執行相應的譯碼。
在接收或取回之后,用與前面的預測相同的方法再次從DC系數預測LF變換系數。優選地,無損耗地接收DC系數,并采用前面的LF系數預測方法,以使得新預測的LF系數與初始預測的LF系數大致相同。這樣,則將重構的DC系數中的誤差限制為只是差系數的量化誤差。
最后,通過將預測LF系數加到去量化的所發送的差系數來重構LF系數。然后輸出包括DC系數、重構的LF系數和去量化的剩余系數的變換系數。
下面參考圖2A和2B說明在改進的MPEG編碼器和譯碼器中的這個一般方法的例示性實施例。雖然是就一個基本的MPEG編碼器/譯碼器對描述了這個例示性實施例,但本領域普通技術人員應該立即明白,可以為根據在本發明的前述應用領域內的任何方法或標準工作的編碼器/譯碼器例行地構造其他例示性實施例。
圖2A示意性地顯示了依據本發明改進的MPEG編碼器。圖2B示意性地顯示了一個改進的MPEG譯碼器。在這些圖中,主要與、尤其是與運動預測有關的部件僅僅示意性地顯示或不顯示,因為這些部件對于本發明來說是更外圍的。在圖2A-B中,執行離散余弦變換、系數量化和可變長度編碼的部件不是本發明的一部分,在這里不進行描述。此外,應該理解,在下面無論明確指出與否,所有操作都是在覆蓋圖象的圖象陣列表示的單個象素塊上執行的。
下面參看圖2A的詳細顯示,部件47-50實施用于I-類型圖象的編碼數據路徑;方框40中的部件41-45實施可應用于I-類型圖象的本發明的改進的數據路徑;以及,部件51-58示意性地實施用于對P-類型和B-類型圖象編碼的運動-預測數據路徑。
在未改進的MPEG編碼器中的表示為象素陣列的I-類型圖象的情況下,在無改變地通過加法器58之后,在DCT編碼器47中一個象素塊一個象素塊地對圖象進行DCT變換。設置在圖中未顯示的位置的選擇器48將DCT系數傳送到量化器49。每個象素塊的量化的DCT系數在VLC編碼器50中進行可變和/或行程(“VLC”)編碼,最后以每個象素塊的壓縮圖象數據流輸出。
在本發明的改進存在并有效的情況下,將每個象素塊的DC DCT系數存儲在DC系數緩沖器41中,以便它們能夠以所需的次序用于低頻(“LF”)系數預測器42。將來自預測器42的每個象素塊的預測LF系數存儲在預測系數緩沖器43中,以便它們能夠用于加法器44中的自每個象素塊的相應DCT系數的減法。在這種情況下,將選擇器48設置在位置“I,LF”(指的是I-類型幀的LF系數),差系數在量化器49中量化,在VLC編碼器50中進行可變長度編碼,然后以壓縮圖象數據流輸出。對于每個象素塊的剩余DCT系數,將選擇器48設置到未顯示的位置,在不進行減法的情況下對這些系數進行量化。
對于運動預測,必須將正要在譯碼器中譯碼的I-類型(以及特定的間-類型)圖象的復制存儲在一個基準存儲器64中。對于除了I-類型圖象的LF系數之外的其他系數,這是通過用反量化器51和DCT譯碼器52模擬圖象譯碼來完成的,反量化器51執行去量化,DCT譯碼器52執行反DCT。選擇器59被設置在未顯示的位置上。對于I-類型幀的LF系數,將選擇器59設置到位置“I,LF”,以使得來自緩沖器43的預測LF系數在加法器45中與去量化的差系數相加,以重構實際的LF系數,就象在譯碼器中出現的一樣。在這個實施例中,假設DC系數在譯碼器中和在編碼器中是以同樣的精度可用的。
對于P-類型或B-類型幀,運動預測路徑、部件51-58的工作是本領域普通技術人員所公知的。簡要地說,選擇器55和56被設置到“NON-I”位置,基準存儲器/運動補償器采用由在運動估計器57中實現的運動估計過程產生的運動向量向加法器58提供運動預測幀,以便產生圖象,該圖象是輸入和運動預測圖象之間的差。然后在DCT編碼器47中對這些差圖象進行DCT變換,在量化器49中進行量化,在VLC編碼器50中進行VLC編碼。通過在加法器53中將反變換的差圖象與運動補償的存儲圖象相加來用將在譯碼器中出現的I-類型和P-類型幀更新基準存儲器54。
圖2B顯示了依據本發明改進的MPEG譯碼器。在這里,部件65-70實施用于I-類型圖象的譯碼數據路徑;方框60中的部件61-64實施可應用于I-類型圖象的本發明的改進的數據路徑;以及,部件71-73示意性地實施用于對P-類型和B-類型圖象譯碼的運動-預測數據路徑。對于所有圖象類型,首先由部件65對每個象素塊的包括量化的變換系數(在改進的編碼器/譯碼器的情況下還包括差系數)的壓縮圖象數據進行可變長度(“VL”)譯碼,并由部件66進行反變換。
對于I-類型圖象,將每個象素塊的DC系數存儲在緩沖器61中,以便在需要時可用于LF系數預測器62。將來自預測器62的每個象素塊的預測LF系數存儲在預測系數緩沖器63中,以便可用于加法器64進行與每個象素塊的去量化的LF差系數的加法。對于I-類型圖象的LF系數,選擇器67被設置為位置“I,LF”,對于除了I-類型圖象的LF系數之外的系數、即剩余的高頻系數,選擇器67被設置為未顯示的位置。接著在部件68中對每個象素塊的實際的DCT系數進行反變換,從空間域象素塊重構所得的I-類型空間域圖象,并將圖象直接存儲在幀緩沖器69和基準存儲器72中,因為選擇器70和71被設置在位置“I”。
對于非I類型圖象,即對于P-類型和B-類型圖象,選擇器67、70和71被設置在未顯示的位置或“NON-I”位置,以便在不與預測的LF系數相加的情況下首先使差圖象由部件66去量化,然后由部件68反變換。從所接收的運動向量和存儲在基準存儲器72中的圖象,運動補償器確定運動預測的圖象。在加法器73中將運動預測的圖象與譯碼的差圖象進行相加,并將所得的實際空間域圖象存儲在基準存儲器72和幀緩沖器69中。幀緩沖器69存儲圖象,以供以所需格式以正確的順序輸出。
本發明的改進的編碼器和譯碼器可以以對于本領域普通技術人員顯而易見的各種硬件結構實施。例如,在圖2A和2B中表示的單個處理部件可以用單獨的專用硬件來實現。但目前最好是用一個或多個在通用硬件上運行的、或者是為圖象處理優化的、例如在圖2C中所示的專用軟件例程來實施系統的處理操作。圖2C顯示了用于編碼和譯碼圖象并執行本發明的操作的一個或多個處理器80、用于存儲圖象數據和/或程序指令的一個或多個RAM模塊81、可選地用于存儲程序指令的一個或多個ROM模塊82、用于在各種鏈路85上與其他系統進行通信的一個或多個I/O接口設備83、以及用于連接這些各個部件的一個或多個總線84。有利地,處理器包括一個或多個數字信號處理器(“DSP”),例如TM-1000型DSP(Philips Electronics North AmericaCorp.)或TMS-3000型DSP(Texas Instruments,Inc.)。
在系統處理操作是以軟件實現的最佳實施例中,本發明還包括計算機可讀介質,在其上記錄或編碼有使處理器執行系統的處理操作的程序指令。這種介質可以包括諸如軟盤、硬盤、磁帶等等的磁介質、諸如CD-ROM的光介質和本領域可用的其他計算機可讀介質。最佳方法實施例這個部分在下面說明依據本發明的用于劃分象素陣列的每個象素塊的低頻(“LF”)系數的預測方法的最佳實施例和替換實施例。這些方法實施了圖1中的部件10和13,或圖2A中的部件42和圖2B中的部件62。這些部件是從發明人的如下發現導出的,即象素塊的LF系數可以被簡單有效地預測為空間域象素陣列的LF變換系數,所述空間域象素陣列在象素塊上平滑地內插在塊邊界上出現的一個象素塊的象素值與相鄰塊的象素值之間的差(“塊對塊的差”)。內插象素陣列最好不改變該塊的平均象素亮度。由于這種內插象素陣列可能是在具有僅僅緩慢變化亮度的表面的物體的圖象中出現的相鄰象素塊之間的規則性的好的表示,所以其LF變換系數可能是實際的LF變換系數的好的預測值。
輸入的用于確定內插象素陣列、從而用于預測LF系數的塊對塊的差最好是從象素塊與其相鄰塊的平均亮度近似出的。因為LF系數預測是在編碼器和譯碼器中完成的,所以最好是基于在兩處都可精確并容易得到的數據的。由于目前的大多數圖象壓縮方法和標準都發送象素塊的平均亮度來作為該塊的零頻率(“DC”)系數,所以LF系數預測最好只基于該塊及其相鄰塊的這種DC系數。
雖然不是最佳的,但修改圖象壓縮數據流以便發送有限數目的信息附加項從而能夠進行更精確的LF預測落入本發明的范圍內。這種附加項以更高的精度有利地表示塊對塊的差。在一個實施例中,它們可以包括在一個塊中的邊沿象素與相鄰塊的邊沿象素的實際差的平均值。在一給定情況下發送這種附加項是否有利取決于附加項的發送成本是否可以從得益于更精確的LF系數預測的提高的壓縮中收回。這種選擇將在該部分的最后進行詳細說明。
這些用于一特定象素決的預測方法的全部步驟如下。因此,LF系數預測最好從輸入一個象素塊及其相鄰塊的DC系數開始。圖3A顯示了在本發明的一個最佳實施例中考慮的中心象素塊C以及垂直相鄰的與中心塊具有共同邊的四個象素塊。將這些塊標記為W(在C的西邊)、N(在C的北邊)、E(在C次東邊)以及S(在C的南邊)。在這個實施例中不直接考慮對角相鄰的象素塊。下面,將任何象素塊中的象素表示為標準矩陣符號。特別地,圖3A顯示了在中心塊C的西北角的象素C00、C01和C10、在塊N的西南角的象素N70、在塊E的西北角的象素E00、在塊W的東北角的象素W07以及在塊S的西北角的象素S00。還將這些象素塊的DC系數(零頻率系數,或平均亮度)表示為符號CDC、NDC、EDC、WDC和SDC。
從這些DC系數確定了由N、E、W和S表示的、分別近似在中心塊C與其相鄰塊N、E、W和S之間的塊對塊的差的四個量。下列等式表示這個近似的最佳實施例。N=FA*{NDC-CDC};E=FA*{EDC-CDC}W=FA*{WDC-CDC};S=FA*{SDC-CDC}因子FA是用于換算近似的塊對塊的差的乘法加權因子。后面將結合第二乘法加權因子FB更加詳細地進行說明。本發明適合于用于確定這四個近似塊對塊的差的替換等式。替換等式可以僅僅取決于上面所使用的五個DC系數,或者,可替換地,取決于另外的例如來自對角相鄰的塊或更遠的相鄰塊的DC系數。
接著,從近似的塊對塊的差確定內插象素陣列。將這個內插象素陣列設計為實現塊對塊的差到中心象素塊內的象素值的平滑內插,這種平滑內插在存在這種塊對塊的差的情況下是可能出現的。注意,所預期的實際象素值是內插象素陣列的值與該塊的DC系數的總和。
已經發現,如果這個內插滿足某些試探性約束則是有利的。第一試探性約束是內插象素陣列中的象素值的總和是零,以使得象素塊的平均亮度不改變。第二試探性約束是邊界差對象素值的影響的程度隨遠離該邊界而降低。特別地,由于邊界差而得到的最大象素值應該與邊界相鄰出現,還應該小于或等于該邊界差。第三試探性約束是在一個象素塊的一個邊界的差與在相對邊界(沿一行或一列)的另一個相等但符號相反的差的結合應該在兩個邊界之間內插成一個均一的象素值梯度。
本發明在總體上適合于用于確定滿足上述試探性約束的內插象素陣列。在一個最佳實施例中,這個內插象素陣列由以與維數無關的方式完成的塊對塊的差的線性內插確定。與維數無關的方式的意思是每個象素陣列元素具有獨立的、來自每個近似塊對塊的邊界差的乘法加權貢獻,每個近似塊對塊的邊界差只獨立地對垂直于該特定邊界的行或列中的矩陣元素有貢獻。例如,沿內插象素陣列的行內插一個用于近似中心塊C及其西相鄰塊W之間的塊對塊的差的值。最好將相同的權數運用到沿四個象素塊邊界中的每一個邊界的差上。此外,權數最好僅僅取決于與邊界的距離。
內插象素陣列的大小不需要與在編碼器/譯碼器中處理的象素塊的大小相同。因為是內插象素陣列的變換系數很重要,所以內插象素陣列的大小可以是任何實際大小,以使得其變換系數與要估計的象素塊的LF變換系數有確定的關系。事實上,為了計算效率,可以將內插象素陣列的大小有利地選擇為小于編碼器/譯碼器象素塊的大小。在一個在編碼器/譯碼器對中用離散余弦變換(“DCT”)來變換8×8象素塊的最佳實施例中,內插象素陣列的最佳尺寸是4×4(即,一邊四個象素的方陣列)。或者,可以使用8×8的內插象素陣列。
選擇用于內插塊對塊的差的乘法權數,使其滿足上述試探性約束。在4×4的內插象素陣列的最佳情況下,圖3B顯示了用于從左邊界內插的最佳乘法權數。為了從右邊界內插,以相反順序使用這些權數。這些權數滿足上述約束,首先,其總和為零,具有與邊界相鄰的最大權數。如圖3C所示,由于正的左單位邊界差與負的右單位邊界差的組合是兩個邊界之間的線性梯度,所以也滿足第三約束。
下列等式是這個定義4×4內插象素陣列的最佳實施例的例子。將乘法因子FB選擇為內插象素陣列的總換算因子。
array
=FB*{3*N +3*W}array
[1]=FB*{3*N -W -2*E}array
[2]=FB*{3*N -2*W -E}array
[3]=FB*{3*N +3*E}array[1]
=FB*{-N -2*S+3*W}array[1][1]=FB*{-N -2*S-W -2*E}array[1][2]-FB*{-N -2*S-2*W -E}array[1][3]=FB*{-N -2*S +3*E}
array[2]
=FB*{-2*N-S +3*W}array[2][1]=FB*{-2*N-S -W -2*E}array[2][2]=FB*{-2*N-S -2*W -E}array[2][3]=FB*{-2*N-S +3*E}array[3]
=FB*{+3*S+3*W}array[3][1]=FB*{+3*S-W -2*E}array[3][2]=FB*{+3*S-2*W -E}array[3][3]=FB*{+3*S+3*E}選擇運用到塊對塊的象素差上的乘法因子FA和運用到內插象素陣列上的FB,使得總乘法因子FA*FB滿足特定約束,以便產生導致最大圖象數據流壓縮的預測LF系數。依據第一約束,總因子FA*FB最好小于或等于0.500,以使得在相鄰象素塊之間的邊界上象素值不會被過度平滑,即使得在象素塊邊界的象素值具有減小的塊對塊的差,但與初始塊對塊的差具有相同的符號。依據有關的第二約束,總因子最好小于0.500,因為在存在象素值梯度的情況下,特定的塊對決的邊沿差可以是實際的圖象特征,不應該被完全消除。在總加權因子中存在有另外的因子來將最大空間配置加權規格化為1.00(如果最初未選擇為1.00的話)。
在最佳實施例中,為方便起見將FA取為1.0,從而塊對塊的差直接表示未換算的象素值。將FB有利地取為0.375*(1.0/3.0)。因子(1.0/3.0)是規格化最佳內插權數所必須的。因子0.375是為了提供好的數據流壓縮,并且在不用乘法的情況下用移位和加法進行計算比較經濟。
8×8的內插象素陣列的情況與上述最佳的4×4的內插象素陣列完全相同。用于塊對塊的差的從左邊界的與維數無關的線性內插的最佳乘法權數是八個值+4,+2,0,-1,-2,-2,-1和0。以逆序將權數用于從右邊界內插一個塊對塊的邊沿差。以與用于最佳的4×4的內插象素陣列完全相似的與維數無關的方式從這些權數構造內插等式。最佳權數是FA=1.0以及FB=0.375*(1.0/4.0)(因子(1.0/4.0)用于規格化最佳內插權數)。
在已經確定了內插象素陣列之后,用在編碼器/譯碼器對、例如圖1中的部件9和14中使用的變換方法將這個陣列變換到相關的變換域或頻域。或者,可以使用密切相關但在計算上有較少要求的與相關變換方法近似的變換方法來返回值。在內插象素陣列的尺寸小于象素塊的尺寸時,將內插象素陣列的尺寸有利地選擇為使得其變換系數與象素塊的相應的LF系數有簡單的關系,例如等于相應的變換系數。
在最佳實施例的情況下,用DCT對4×4的內插象素陣列進行變換,以產生等于象素塊的相應LF系數的變換系數。在8×8的內插陣列的替換實施例中,該陣列也要進行DCT,以產生等于相應象素塊變換系數的系數。或者,可以用在計算上有較少要求的Hadamard變換來代替DCT,但這不是最佳的。
接著,從變換的內插象素陣列的變換系數中選擇預測LF系數。首先,忽略DC系數。在內插方法滿足第一試探性約束的情況下,DC系數是零,這是最優的。其次,已經發現,由于不是所有的變換系數都產生對象素塊的相應LF系數的有用的預測,所以最好選擇內插象素陣列的最低頻率變換系數作為相應Lf系數的預測數。
例如,在4×4或8×8的內插陣列的情況下,一個有用的選擇是選擇變換系數的左上角的3×3子矩陣(忽略DC系數)。因此,將八個變換系數T10、T20、T01、T11、T21、T02、T12和T22(其中T表示內插象素陣列的變換系數的陣列)用作為相應LF變換坐標的預測數。在一個替換選擇中,使用4×4或8×8的變換陣列的上三角形部分。在這種情況下,使用九個變換系數T10、T20、T30、T01、T11、T21、T02、T12和T03作為相應LF變換坐標的預測數。
或者,可以將上述內插象素陣列確定、到頻域的變換以及從頻域陣列選擇LF系數合并成一個步驟,將內插象素陣列的選定LF變換系數直接確定為象素塊的DC系數與垂直相鄰的象素塊的DC系數的差的線性組合。DC系數差的線性內插可以與線性變換過程相組合,以產生選定的LF系數,作為DC系數差的單個線性組合。如同本領域普通技術人員所了解的,用矩陣乘法組合這兩組線性等式以便確定用DC系數差表示LF系數的單組線性等式是一個例程問題。
最后,將內插象素陣列的選定LF變換系數作為相應LF變換系數的預測數輸出到本發明的方法和系統的后續步驟和/或部件。
上述實施例不需要改變由典型的編碼器/譯碼器對識別的數據流來應用本發明的改進。如上所述,在較佳的替換實施例中,可以將這些數據流增大為包括附加項,以允許對塊對決的差的更好的近似,從而更好地預測LF變換系數。
在一個這種替換中,可以在修改的數據流中提供沿一個塊的四個邊沿中的每一邊沿的象素值的實際平均值。這種附加的平均值直接提供關于相鄰塊的邊沿象素值之間的實際差的信息。在另一個替換中,除了僅有的四個量(每個量用于中心塊的每個邊沿,必然只表示沿整個邊沿的平均差)之外,在修改的數據流中還可以提供沿中心塊的每個邊沿的塊對塊的象素差中的變化。這個替換方法通過為每個邊沿提供不止一個量,以亮度表示變化,其中每個量表示中心塊C的邊沿相鄰象素的一對或多對中的差。在計算兩個相鄰對象素的差的平均的情況下,下列等式表示這個替換方法。
A=0.250*FA*{(W17-C10)+(W07-C00)+(N70-C00)+(N71-C01)}B=0.500*FA*{(N72-C02)+(N73-C03)}C=0.500*FA*{(N74-C04)+(N75-C05)}D=0.250*FA*{(N76-C06)+(N77-C07)+(E00-C07)+(E01-C17)}E=0.500*FA*{(E20-C27)+(E30-C37)}F=0.500*FA*{(E40-C47)+(E50-C57)}G=0.250*FA*{(E60-C67)+(E70-C77)+(S07-C77)+(S06-C76)}H=0.500*FA*{(S05-C75)+(S04-C74)}I=0.500*FA*{(S03-C73)+(S02-C72)}J=0.250*FA*{(S01-C71)+(S00-C70)+(W77-C70)+(W67-C60)}K=0.500*FA*{(W57-C50)+(W47-C40)}L=0.500*FA*{(W37-C30)+(W27-C20)}通過合并某些上述量,可以采用近似表示。例如,可以采用下面的合并和近似量。
B’=C’=0.500*(B+C);E’=F’=0.500*(E+F)I’=H’=0.500*(I+H);L’=K’=0.500*(L+K)對增大或減小近似的其他類似替換對于本領域普通技術人員來說是顯而易見的。
可以采用與上述完全相似的等式以與維數無關的方式對這些附加的塊對塊的差項進行內插,以形成4×4或8×8的內插象素陣列。在提供了這種附加項的情況下,從內插象素陣列的變換中選擇附加系數將是有利的。例如,在4×4內插陣列的情況下,可以選擇除了DC系數之外的所有變換系數。在8×8內插陣列的情況下,可以選擇內插象素陣列的變換中的除了DC系數之外的左上的4×4或5×5子陣列。
上述等式是所述方法的實施例的例示。本領域普通技術人員應該理解,可以為在各種結構的微處理器和數字信號處理器中的計算效率改進其形式。例如,由于與4×4和8×8內插象素陣列的維數無關,所以可以通過因數分解來減少算術運算的總數。此外,乘法運算、包括總乘法加權因子可以由較便宜的移位和加法取代更貴的乘法來實現。
另外,通過在所提出的系統中可用的處理能力與提高的數據流壓縮尋求程度之間的折衷可以規定從上述中選擇的替換方法的特定組合。特別地,顯而易見的是,對于各類圖象和特定的壓縮方法,本發明的方法和系統的參數可以由例程方法來優化,以給出最大提高的數據流壓縮。
應該理解,已經滿足了本發明的目的。雖然已經詳細描述了本發明,但應該理解的是,各種修改是可能的,對于本領域普通技術人員是顯而易見的。這些修改也將落入本發明的權利要求的范圍內。
在權利要求書中,在括號中的任何標號都不是對權利要求的限制。詞語“包括”不排除除了在權利要求中所列的部件或步驟之外的其他部件或步驟。在部件之前的詞語“一個”不排除多個這種部件的存在。本發明可以通過包括幾個分立元件的硬件實施,以及通過適當編程的計算機實施。在列舉幾個裝置的設備權利要求中,這幾個裝置可以由一個和相同的硬件產品實現。
權利要求
1.一種用于壓縮以象素陣列形式的圖象數據存在的圖象的方法,所述方法包括將覆蓋象素陣列的多個象素塊(9)變換為頻域中的變換系數,其中,變換系數表示每個象素塊,包括一個零頻率變換系數、一個或多個選定低頻變換系數以及剩余的變換系數,為每個象素塊從所述象素塊和與所述象素塊相鄰的象素塊預測選定低頻變換系數(21),為每個象素塊從選定的低頻變換系數中減去預測的選定低頻變換系數(21),以形成差變換系數,為每個象素塊量化差系數和剩余的變換系數,以及用多個象素塊中的每一個的包括零頻率變換系數、量化的差系數以及量化的剩余系數的壓縮圖象數據表示圖象(23)。
2.如權利要求1所述的方法,其中,所述預測步驟包括下列步驟為每個象素塊從所述象素塊的零頻率變換系數和與所述象素塊相鄰的象素塊的零頻率變換系數的線性組合預測選定低頻變換系數(21)。
3.如權利要求1所述的方法,其中,所述預測步驟包括下列步驟為每個象素塊從沿所述塊的邊沿的象素和沿與所述象素塊垂直相鄰的象素塊的邊沿的象素之間的差的線性組合預測選定低頻變換系數(21)。
4.如權利要求1所述的方法,其中,所述為每個象素塊預測的步驟還包括下列步驟確定一個具有線性地內插所述象素塊的零頻率變換系數和與所述象素塊垂直相鄰的象素塊的零頻率變換系數之間的差的內插象素值的內插象素陣列(29),將內插象素陣列(30)變換到頻域中的變換系數(31),以及選擇預測的選定低頻變換系數作為內插象素陣列的相應變換系數。
5.如權利要求4所述的方法,其中,所述選擇步驟選擇預測的選定低頻變換系數作為那些在變換的內插象素陣列的尺寸為3×3的左上角方形子陣列中存在的變換系數,而將變換的內插象素陣列的零頻率變換系數排除在外。
6.如權利要求4所述的方法,其中,內插象素陣列的象素值是在所述象素塊的零頻率變換系數和與所述象素塊垂直相鄰的每個象素塊的零頻率變換系數之間的差的加權總和,并且,其中,象素值是以與維數無關的方式線性內插的。
7.如權利要求6所述的方法,其中,內插象素陣列是一個方陣列,并且,其中,將加權總和的權數選擇為使得在所述象素塊的一個邊界的第一零頻率變換系數差和在相對邊界的與第一零頻率變換系數差具有相等振幅和相反符號的第二零頻率變換系數差導致在內插象素陣列中的邊界之間的內插象素值的線性梯度。
8.如權利要求7所述的方法,其中,內插象素陣列一邊有四個象素,并且,其中,權數是+3、-1、-2和0。
9.如權利要求7所述的方法,其中,內插象素陣列一邊有八個象素,并且,其中,權數是+4、+2、0、-1、-2、-2、-1和0。
10.如權利要求1所述的方法,其中,量化步驟還包括量化零頻率變換系數。
11.如權利要求3所述的方法,其中,差的線性組合包括沿所述塊的邊沿的所有象素的平均值和沿與所述象素塊垂直相鄰的象素塊的邊沿的所有象素的平均值的線性組合。
12.一種用于重構以覆蓋表示圖象的象素陣列的多個象素塊的壓縮圖象數據的形式存在的圖象的方法,所述方法包括取回壓縮圖象數據(23),其中,壓縮圖象數據包括每個象素塊的零頻率變換系數、量化的差變換系數以及量化的剩余變換系數,對量化的差變換系數以及量化的剩余變換系數進行去量化(12),以分別提供差變換系數以及剩余變換系數,為每個象素塊從所述象素塊和與所述象素塊相鄰的象素塊的變換系數預測選定低頻變換系數(24),為每個象素塊將預測的選定低頻變換系數加到(25)差變換系數中,以形成選定低頻變換系數,為每個象素塊反變換(14)零頻率變換系數、選定低頻變換系數以及剩余變換系數,以便重構多個象素塊,以及從多個重構的象素塊重構象素陣列(29)。
13.如權利要求12所述的方法,其中,所述為每個象素塊預測的步驟還包括下列步驟確定一個具有線性地內插所述象素塊的零頻率變換系數和與所述象素塊垂直相鄰的象素塊的零頻率變換系數之間的差的內插象素值的內插象素陣列(30),將內插象素陣列(30)變換到頻域中的變換系數(31),以及選擇預測的選定低頻變換系數作為內插象素陣列的相應變換系數。
14.一種用于壓縮以象素陣列形式的圖象數據存在的圖象的系統,所述系統包括將覆蓋象素陣列的多個象素塊變換為頻域中的變換系數的裝置(41),其中,變換系數表示每個象素塊,包括一個零頻率變換系數、一個或多個選定低頻變換系數以及剩余變換系數,為每個象素塊從所述象素塊和與所述象素塊相鄰的象素決預測選定低頻變換系數的裝置(42),為每個象素塊從選定的低頻變換系數中減去預測的選定低頻變換系數以形成差變換系數的裝置(44),為每個象素塊量化差系數和剩余變換系數的裝置(49),以及用多個象素塊中的每一個的包括零頻率變換系數、量化的差系數以及量化的剩余系數的壓縮圖象數據表示圖象的裝置(1)。
15.如權利要求14所述的系統,其中,所述為每個象素塊預測的裝置還包括確定一個具有線性地內插所述象素塊的零頻率變換系數和與所述象素塊垂直相鄰的象素塊的零頻率變換系數之間的差的內插象素值的內插象素陣列的裝置(42),將內插象素陣列變換到頻域中的變換系數的裝置(42),以及選擇預測的選定低頻變換系數作為內插象素陣列的相應變換系數的裝置(42)。
16.一種用于重構以覆蓋表示圖象的象素陣列的多個象素塊的壓縮圖象數據的形式存在的圖象的系統,所述系統包括取回壓縮圖象數據的裝置(2),其中,壓縮圖象數據包括每個象素塊的零頻率變換系數、量化的差變換系數以及量化的剩余變換系數,對量化的差變換系數以及量化的剩余變換系數進行去量化、以分別提供差變換系數以及剩余變換系數的裝置(60),為每個象素塊從所述象素塊和與所述象素塊相鄰的象素塊的變換系數預測選定低頻變換系數的裝置(62),為每個象素塊將預測的選定低頻變換系數加到差變換系數中以形成選定低頻變換系數的裝置(64),為每個象素塊反變換零頻率變換系數、選定低頻變換系數以及剩余變換系數以便重構多個象素塊的裝置(68),以及從多個重構的象素塊重構象素陣列的裝置(69)。
17.一種用于壓縮以象素陣列數據形式的圖象數據存在的圖象的系統,所述系統包括用于執行程序指令的一個或多個處理器(80),以及用于存儲要處理的象素陣列和程序指令的一個或多個存儲器單元(81,82),其中,所述程序指令使得所述一個或多個處理器執行權利要求1所述的方法。
18.一種用于重構以多個象素塊的壓縮圖象數據形式存在的圖象的系統,所述系統包括用于執行程序指令的一個或多個處理器(80),以及用于存儲要處理的壓縮圖象數據和程序指令的一個或多個存儲器單元(81,82),其中,所述程序指令使得所述一個或多個處理器執行權利要求12所述的方法。
19.一種以使得一個或多個處理器執行權利要求1或12所述的方法的程序指令編碼的計算機可讀介質。
全文摘要
一種象素塊變換壓縮系統包括在編碼器中的一個預測特定低階或低頻(“LF”)變換系數的附加步驟。然后從實際的LF變換系數中減去預測的LF系數,以形成LF差系數,將LF差系數量化并發送到譯碼器中來代替原始的LF變換系數。在譯碼器中,反轉這些步驟,即,再次預測LF系數,將預測的系數加到所發送的量化LF差系數中,以得到原始LF系數,直至量化誤差。
文檔編號H03M7/30GK1295696SQ99804586
公開日2001年5月16日 申請日期1999年11月18日 優先權日1998年12月3日
發明者A·E·拉克特 申請人:皇家菲利浦電子有限公司