專利名稱::編碼、解碼方法和編碼、解碼裝置的制作方法
技術領域:
:本發(fā)明涉及視頻壓縮編碼技術,特別涉及一種變換數(shù)據(jù)處理方法和裝置,以及一種編碼、解碼方法及裝置和系統(tǒng)。
背景技術:
:為減小視頻數(shù)據(jù)在傳輸或存儲時的數(shù)據(jù)量,一般需要對視頻數(shù)據(jù)進行壓縮編碼。在視頻壓縮編碼領域,變換是一項重要技術,其作用是將一副圖像、一個區(qū)域中的圖像內容及信息經(jīng)變換后集中于某一特定區(qū)域,以便視頻壓縮算法對這部分內容進行更有效的壓縮。然后對變換后對數(shù)據(jù)進行量化、熵編碼等處理后即形成壓縮編碼后的視頻數(shù)據(jù)。在視頻編解碼的標準中,如MPEG-2,H.264,AVS都使用了變換技術。在這些標準中,一幅圖像或圖像中的一個區(qū)域被劃分成若干小塊或子區(qū)域,稱為子塊,變換就是以子塊為單位進行的。一般情況下,子塊的大小可以為4x4或8x8,其中,4和8均是以圖像像素為單位的。一段視頻文件是由多幅視頻圖像組成,并且一幅圖像通常包含了豐富的內容,圖像的不同部分所具有的特性也不同。因此,若將一段視頻中所有圖像或將一幅圖像以同樣尺寸(如8x8大小)的子塊進行劃分,然后對其進行變換,其效果不一定能達到最優(yōu),即不能有效的將所有子塊中的內容經(jīng)變換后有效的集中于某一特定區(qū)域?;诖耍岢隽俗赃m應塊變換技術,其原理是將一個特定區(qū)域分別按照不同的子塊大小進行劃分,然后針對不同大小的子塊進行不同的變換(例如,將圖像分別劃分為4x4和8x8的塊,對4x4塊使用4x4變換,對8x8塊使用8x8變換),之后根據(jù)一定準則判斷在不同變換情況下哪種變換能更有效的將塊的信息集中于特定區(qū)域。最后將較優(yōu)的變換結果存儲起來。解碼端在對經(jīng)過上述方式變換后的圖像進行解碼時,根據(jù)碼流中相應的信息獲取變換尺度(如4x4或8x8)的信息,然后使用相應的逆變換(如4x4逆變換或8x8逆變換)對該區(qū)域進行處理,獲取原始的視頻數(shù)據(jù)。上述自適應塊變換技術在H.264中應用的具體方式為,定義一套4x4變換矩陣和8x8變換矩陣,并且根據(jù)其4x4變換和8x8變換的特點,分別制定了一套編解碼端的量化表,將數(shù)據(jù)分別經(jīng)過4x4變換及量化后的結果與經(jīng)過8x8變換及量化后的結果相比較,確定較優(yōu)的變換方式。其中,由于H.264中4x4變換和8x8變換具有相似的變換特征,加之各自配套制定的量化表,能夠保證4x4塊經(jīng)4x4變換及量化后的數(shù)據(jù)數(shù)值范圍與8x8塊經(jīng)8x8變換及量化后的數(shù)據(jù)數(shù)值范圍基本一致。因此,H.264中的自適應塊變換技術能有效的提高編碼效率。但是,在對視頻的壓縮編碼過程中,出于各種目的可能需要融合不同的變換,例如,4x4變換矩陣是基于DCT的,8x8變換則是基于小波的,這兩套變換矩陣很可能不具有太多的相同變換特征,相同的數(shù)據(jù)經(jīng)過這些變換后數(shù)據(jù)的數(shù)值范圍改變程度不一致。由于量化會導致數(shù)據(jù)信息受損,無論在量化過程中使用相同或不同的量化表進行量化,因相同的數(shù)據(jù)經(jīng)不同的變換后其數(shù)值范圍改變程度不一致,則會導致變換之后的數(shù)據(jù)經(jīng)過量化后的損失程度不一致。在這種情況下,無法使用一定的判斷準則確定較優(yōu)的變換方式,從而無法有效的提高數(shù)據(jù)編碼效率。
發(fā)明內容有鑒于此,本發(fā)明實施例提供一種調整編碼數(shù)據(jù)數(shù)值范圍的方法和裝置,以使數(shù)據(jù)經(jīng)不同變換后的數(shù)值范圍基本保持一致。相應地,還提供了一種編碼方法、一種解碼方法及裝置和系統(tǒng),在編碼端將調整參數(shù)寫入碼流中,在解碼端可以根據(jù)接收到的調整參數(shù)對接收到的數(shù)據(jù)進行相應的調整。為實現(xiàn)上述目的,本發(fā)明實施例采用如下的技術方案一種變換數(shù)據(jù)處理方法,包括根據(jù)預設兩種變換所需的變換矩陣,估計圖像數(shù)據(jù)分別經(jīng)過兩種變換后的數(shù)值范圍;根據(jù)所述兩種變換后的數(shù)值范圍,估計兩種變換的數(shù)值范圍特征差值;接收待變換的數(shù)據(jù),并對該數(shù)據(jù)應用所述兩種變換中的第一種變換,并根據(jù)估計的數(shù)值范圍特征差值補償該第一種變換后的數(shù)據(jù)。上述第一種變換為所述兩種變換中的一種。同理,所述兩種變換中的另外一種變換可稱之為第二種變換。所述兩種變換亦可分別稱之為第一變換和第二變換,或變換A和變換B。一種變換數(shù)據(jù)處理裝置,包括第一數(shù)值范圍估計單元、第二數(shù)值范圍估計單元、數(shù)值范圍差值單元和變換補償單元,所述第一數(shù)值范圍估計單元,用于根據(jù)預設兩種變換中的第一種變換所需的變換矩陣,估計圖像數(shù)據(jù)經(jīng)過第一種變換后的數(shù)值范圍,并提供給所述數(shù)值范圍差值單元;所述第二數(shù)值范圍估計單元,用于根據(jù)預設兩種變換中的第二變換所需的變換矩陣,估計圖像數(shù)據(jù)經(jīng)過第二變換后的數(shù)值范圍,并提供給所述數(shù)值范圍差值單元;所述數(shù)值范圍差值單元,用于根據(jù)分別經(jīng)過第一、第二變換后的數(shù)值范圍,估計兩種變換的數(shù)值范圍特征差值,并提供給所述變換補償單元;所述變換補償單元,用于接收待變換的數(shù)據(jù),并對該數(shù)據(jù)應用所述兩種變換中的第一種變換,并根據(jù)估計的所述數(shù)值范圍特征差值補償該第一種變換后的數(shù)據(jù)。一種編碼方法,包括接收待變換的數(shù)據(jù);對所述待變換的數(shù)據(jù)進行第一變換,得到第一變換后的數(shù)據(jù);對所述待變換的數(shù)據(jù)進行第二變換,得到第二變換后的數(shù)據(jù);根據(jù)第二變換的參數(shù)、第一變換后的數(shù)據(jù)和第二變換后的數(shù)據(jù)確定調整參數(shù),根據(jù)所述調整參數(shù)和第二變換的參數(shù)調整所述第一變換后的數(shù)據(jù);將所述調整參數(shù)寫入編碼碼流中。一種解碼方法,包括接收碼流,對所述碼流進行解碼,獲得第一變換后的數(shù)據(jù)和調整參數(shù);根據(jù)所述調整參數(shù)和第二變換的參數(shù)調整所述第一變換后的數(shù)據(jù)。一種編碼裝置,包括數(shù)據(jù)接收單元,用于接收待變換的數(shù)據(jù);變換單元,用于對接收單元接收到的所述待變換的數(shù)據(jù)進行第一變換,得到第一變換后的數(shù)據(jù);對所述待變換的數(shù)據(jù)進行第二變換,得到第二變換后的數(shù)據(jù);第一調整單元,根據(jù)第二變換的參數(shù)、第一變換后的數(shù)據(jù)和第二變換后的數(shù)據(jù)確定調整參數(shù),根據(jù)所述調整參數(shù)和第二變換的參數(shù)調整所述第一變換后的數(shù)據(jù);寫單元,用于將所述調整參數(shù)寫入編碼碼流中。一種解碼裝置,包括碼流接收單元,用于接收碼流;解碼單元,對所述碼流進行解碼,獲得第一變換后的數(shù)據(jù)和調整參數(shù);第二調整單元,用于根據(jù)所述調整參數(shù)和第二變換的參數(shù)調整第一變換后的數(shù)據(jù)。一種編解碼系統(tǒng),包括編碼裝置和解碼裝置;所述編碼裝置包括數(shù)據(jù)接收單元,用于接收待變換的數(shù)據(jù);變換單元,用于對接收單元接收到的所述待變換的數(shù)據(jù)進行第一變換,得到第一變換后的數(shù)據(jù);對所述待變換的數(shù)據(jù)進行第二變換,得到第二變換后的數(shù)據(jù);第一調整單元,根據(jù)第二變換的參數(shù)、第一變換后的數(shù)據(jù)和第二變換后的數(shù)據(jù)確定調整參數(shù),根據(jù)所述調整參數(shù)和第二變換的參數(shù)調整所述第一變換后的數(shù)據(jù);寫單元,用于將所述調整參數(shù)寫入編碼碼流中。所述解碼裝置包括碼流接收單元,用于接收碼流;解碼單元,對所述碼流進行解碼,獲得第一變換后的數(shù)據(jù)和調整參數(shù);第二調整單元,用于根據(jù)所述調整參數(shù)和第二變換的參數(shù)調整第一變換后的數(shù)據(jù)。一種編碼方法,包括接收待變換的數(shù)據(jù)和已編碼參數(shù)信息;對所述待變換的數(shù)據(jù)進行第一變換,得到第一變換后的數(shù)據(jù);根據(jù)已編碼參數(shù)信息和第二變換的參數(shù)確定調整參數(shù),根據(jù)所述調整參數(shù)和所述第二變換的參數(shù)調整所述第一變換后的數(shù)據(jù);將所述調整參數(shù)寫入編碼碼流中。一種編碼裝置,包括第三接收單元,用于接收待變換的數(shù)據(jù)和已編碼參數(shù)信息;第三變換單元,用于對所述第三接收單元接收的待變換的數(shù)據(jù)進行第一變換,得到第一變換后的數(shù)據(jù);第三調整單元,用于根據(jù)第三接收單元接收的已編碼參數(shù)信息和第二變換的參數(shù)確定調整參數(shù),根據(jù)所述調整參數(shù)和所述第二變換的參數(shù)調整所述第三變換單元得到的第一變換后的數(shù)據(jù);第三寫單元,用于將所述第三調整單元得到的調整參數(shù)寫入編碼碼流中。由上述技術方案可見,在本發(fā)明實施例中,首先根據(jù)預設兩種變換所需的變換矩陣,估計視頻數(shù)據(jù)分別經(jīng)過兩種變換后的數(shù)值范圍;然后,根據(jù)所述兩種變換后的數(shù)值范圍和兩種變換各自對應的量化點,估計視頻數(shù)據(jù)分別經(jīng)過兩種變換和對應量化后數(shù)值范圍的差值。最后,將待變換數(shù)據(jù)應用其中一種變換后,利用估計的數(shù)值范圍的差值補償該第一種變換后的數(shù)據(jù)。由于進行數(shù)值范圍的補償時依據(jù)了兩種變換和量化后數(shù)值范圍的關系,因此,進行補償后能夠實現(xiàn)將使變換和量化后的數(shù)值范圍與另一種變換和量化后的數(shù)值范圍一致,從而在應用自適應塊變換技術時,能夠真實反映變換對數(shù)據(jù)的影響,來選擇效果較優(yōu)的變換,進而提高編碼效率。本發(fā)明提供的編解碼方法和裝置,能夠保證第一變換后的數(shù)據(jù)范圍和第二變換后的數(shù)據(jù)范圍保持一致,同時將調整參數(shù)寫入碼流中,這樣在解碼端可以根據(jù)調整參數(shù),對接收到的數(shù)據(jù)進行相應的處理。圖1為本發(fā)明實施例中變換數(shù)據(jù)處理方法的總體流程圖;圖2為本發(fā)明實施例中變換數(shù)據(jù)處理裝置的總體結構圖;圖3為本發(fā)明實施例一中變換數(shù)據(jù)處理方法的具體流程圖;圖4為本發(fā)明實施例一中變換數(shù)據(jù)處理裝置的具體結構圖;圖5為本發(fā)明實施例二中變換數(shù)據(jù)處理方法具體流程圖;圖6為本發(fā)明實施例三中變換數(shù)據(jù)處理方法具體流程圖;圖7為本發(fā)明實施例三中變換數(shù)據(jù)處理裝置的具體結構圖;圖8為本發(fā)明實施例四中變換數(shù)據(jù)處理方法具體流程圖;圖9為本發(fā)明實施例四中變換數(shù)據(jù)處理裝置的具體結構圖;圖10為本發(fā)明實施例五提供的編碼方法流程示意圖;圖11為本發(fā)明實施例六提供的解碼方法流程示意圖;圖12為本發(fā)明實施例七提供的編碼裝置結構示意圖;圖13是本發(fā)明實施例八提供的解碼裝置結構示意圖;圖14是本發(fā)明實施例九提供的編碼方法流程示意圖;圖15是本發(fā)明實施例十提供的編碼裝置結構示意圖。具體實施例方式為使本發(fā)明實施例的目的、技術手段和優(yōu)點更加清楚明白,以下結合附圖對本發(fā)明實施例作進一步詳細說明。在本發(fā)明實施例中,首先分析數(shù)據(jù)經(jīng)兩種不同變換后數(shù)據(jù)數(shù)值范圍的變化,然后根據(jù)不同變換和量化后數(shù)據(jù)數(shù)值范圍的變化,對其中一種變換后的數(shù)據(jù)進行補償,以保證相同的待編碼數(shù)據(jù)經(jīng)該變換和量化后數(shù)據(jù)的數(shù)值范圍與經(jīng)另一種變換和量化后數(shù)據(jù)的數(shù)值范圍保持基本一致,以提高編碼效率。圖1為本發(fā)明實施例中變換數(shù)據(jù)處理方法的總體流程圖。如圖1所示,該方法包括步驟101,根據(jù)預設兩種變換所需的變換矩陣,估計圖像數(shù)據(jù)分別經(jīng)過兩種變換后的數(shù)值范圍。步驟102,根據(jù)所述兩種變換后的數(shù)值范圍,估計兩種變換的數(shù)值范圍特征差值。根據(jù)不同的補償方式,上述兩種變換的數(shù)值范圍特征差值取值也不同,可以為圖像數(shù)據(jù)分別經(jīng)過兩種變換和對應量化后數(shù)值范圍的差值,或者也可以為圖像數(shù)據(jù)分別經(jīng)過兩種變換后數(shù)值范圍的差值。當該特征差值為分別經(jīng)過兩種變換和對應量化后數(shù)值范圍的差值時,在計算該特征差值時,還要進一步根據(jù)兩種變換對應的量化步長。步驟103,對待變換的數(shù)據(jù)應用所述兩種變換中的一種,并根據(jù)估計的數(shù)值范圍的差值補償該變換后的數(shù)據(jù)。圖2為本發(fā)明實施例中變換數(shù)據(jù)處理裝置的總體結構圖。如圖2所示,該裝置包括第一數(shù)值范圍估計單元、第二數(shù)值范圍估計單元、數(shù)值范圍差值單元和變換補償單元。其中,第一數(shù)值范圍估計單元,用于根據(jù)預設兩種變換中的第一種變換所需的變換矩陣,估計圖像數(shù)據(jù)經(jīng)過第一種變換后的數(shù)值范圍,并提供給數(shù)值范圍差值單元。第二數(shù)值范圍估計單元,用于根據(jù)預設兩種變換中的第二變換所需的變換矩陣,估計圖像數(shù)據(jù)經(jīng)過第二變換后的數(shù)值范圍,并提供給數(shù)值范圍差值單元。數(shù)值范圍差值單元,用于根據(jù)分別經(jīng)過第一、第二變換后的數(shù)值范圍,估計兩種變換的數(shù)值范圍特征差值,并提供給變換補償單元。變換補償單元,用于對待變換的數(shù)據(jù)應用第一種變換,并根據(jù)估計的所述數(shù)值范圍特征差值補償該第一種變換后的數(shù)據(jù)。在上述方法和裝置中,補償變換后數(shù)據(jù)的方式可以是根據(jù)兩種變換后數(shù)據(jù)的數(shù)值范圍間的關系,確定一個合適的調整因子,對經(jīng)過其中一種變換所得的數(shù)據(jù)乘以該調整因子,再按照其對應的量化點進行量化,從而使經(jīng)過該變換及量化后所得數(shù)據(jù)的數(shù)值范圍與經(jīng)過另外一種變換和量化后所得數(shù)據(jù)的數(shù)值范圍一致?;蛘?,補償變換后的數(shù)據(jù)的方式還可以是根據(jù)兩種變換后數(shù)據(jù)的數(shù)值范圍間的關系,對其中一種變換對應的量化點進行調整,再按照調整后的量化點對該變換所得數(shù)據(jù)進行量化,從而也能實現(xiàn)使該變換及量化后所得數(shù)據(jù)的數(shù)值范圍與經(jīng)過另外一種變換和量化后所得數(shù)據(jù)的數(shù)值范圍一致。又或者,補償變換后的數(shù)據(jù)的方式還可以是根據(jù)兩種變換后數(shù)據(jù)的數(shù)值范圍間的關系,為其中一種變換重新建立量化表,再按照重建的量化表對該變換所得數(shù)據(jù)進行量化,從而同樣能實現(xiàn)使該變換及量化后所得數(shù)據(jù)的數(shù)值范圍與經(jīng)過另外一種變換和量化后所得數(shù)據(jù)的數(shù)值范圍一致。以下通過不同的實施例,說明上述三種不同處理方式下本發(fā)明的具體實施方式。其中,實施例一二針對第一種處理方式,實施例三針對第二種處理方式,實施例四針對第三種處理方式。實施例一在本實施例中,假定有編碼數(shù)據(jù)塊C,及變換A和變換B。變換A的尺度為ηXn,變換B的尺度為mXm。在對數(shù)據(jù)塊C編碼時使用量化點QPS,變換A及變換B在量化點為QPs時所查找到的量化步長分別為QTABl[s]和QTAB2[s]。這里,在對數(shù)據(jù)進行量化時,每個不同的編碼區(qū)域(例如,數(shù)據(jù)塊C)對應一個量化點,根據(jù)該量化點查找到對應的量化步長,進行量化處理。調整經(jīng)變換A和相應量化所得數(shù)據(jù)的數(shù)值范圍,使之與變換B和相應量化后所得數(shù)據(jù)的數(shù)值范圍一致。本實施例中,兩種變換的數(shù)值范圍特征差值為圖像數(shù)據(jù)分別經(jīng)過兩種變換和對應量化后數(shù)值范圍的差值。圖3為本發(fā)明實施例一中變換數(shù)據(jù)處理方法的具體流程圖。如圖3所示,該方法包括步驟301,根據(jù)預設兩種變換所需的變換矩陣,估計圖像數(shù)據(jù)分別經(jīng)過兩種變換后的數(shù)值范圍。本步驟中,將編碼塊C按照變換A、B的尺度劃分成子塊,將變換A、B分別應用到各子塊上。根據(jù)變換A、B對應的變換矩陣,估計劃分的子塊中各個像素數(shù)據(jù)經(jīng)變換后的數(shù)值范圍。對于任意一種變換下,估計變換后數(shù)值范圍的方式相同,下面以估計經(jīng)變換A后子塊內各個像素數(shù)據(jù)的數(shù)值范圍為例,說明具體估計方法。假定編碼塊C大小為MxN,T為變換A對應的變換矩陣,T’為T的轉置矩陣,則對于編碼塊C應用變換A具體為計算[Τ·ΟΤ’]S,其中,S為縮放因子矩陣,該矩陣用于使[T·C·T’]之后的數(shù)據(jù)歸一化,·為矩陣相乘符號,表示矩陣的各個對應元素相乘。根據(jù)矩陣乘法可以算得[T·C·T’]的數(shù)值范圍增量。首先估計[T·C·T’]相對于C的數(shù)值范圍增量T’中第j列系數(shù)絕對值之和為dj,則該列與C中第i行相乘后得到數(shù)據(jù)的數(shù)值范圍,最大變?yōu)镃中第i行第j列數(shù)據(jù)數(shù)值范圍的dj倍。由于計算機及硬件處理器均以二進制為單位進行信息存儲,故本文中以二進制形式表示數(shù)值范圍,這里將該列與C中第i行相乘后數(shù)據(jù)的數(shù)值范圍最大增量表示為Iog2(Clj)。如上可以算出[T·C·T’]后C中每一個元素的最大數(shù)值范圍增量。然后估計[T·C·T’]S相對于[Τ·C·Τ’]的數(shù)值范圍增量若S中位于(k,h)的元素的絕對值為S(k,h),則[Τ·ΟΤ’]S之后,相對于[Τ·ΟΤ’],點(k,h)的數(shù)值范圍增量為log2(S(k,h))0將上述兩步估計的數(shù)值范圍增量相加,可以估計得出[Τ·ΟΤ’]S之后C中每一點的最大數(shù)值范圍增量。再根據(jù)編碼塊C本身的數(shù)值范圍,即可以得到變換后,每個子塊中各點的數(shù)值最大數(shù)值范圍。經(jīng)過上述方式估計得到的是編碼塊C經(jīng)變換后的最大數(shù)值范圍,而在實際編碼中一個普通編碼塊C,由于編碼塊C中的數(shù)據(jù)服從一定的數(shù)學分布,而很難均達到自身的最大數(shù)值范圍,因此經(jīng)變換后的數(shù)值范圍很可能達不到最大數(shù)值范圍。因此,優(yōu)選地,在進行數(shù)值范圍估計時,進一步考慮編碼塊C的數(shù)學分布狀況。具體地,假設塊C中的數(shù)值承一定數(shù)學分布,將變換A應用到該分布中,再通過上述方法可以計算得出C經(jīng)變換后數(shù)據(jù)的數(shù)值范圍最有可能出現(xiàn)的區(qū)域。例如,假設MxN大小數(shù)據(jù)塊C的數(shù)據(jù)的數(shù)學分布模型為P(x,y),該數(shù)據(jù)塊第i行各點最大可能數(shù)值范圍表示為f(P(x,i)),(0<=χ<=M),其中f(·)為根據(jù)數(shù)學分布模型P求得的映射關系,其含義為點(x,y),(0<=x<=M,0<=y<=N)所對應的最大可能出現(xiàn)的數(shù)值范圍,即點(x,y)在編碼時最有可能的數(shù)值為2f(P(x’y),將2f(P(x’y))設為Vi。同時,假設變換T’第j列各點的系數(shù)值為T’(j,y),(0<=y<=N),則T’第j列與C中第i行相乘后,C第i行數(shù)據(jù)數(shù)值范圍最大增量為由此可計算得出經(jīng)變換[TCT’]S后數(shù)據(jù)塊C各點最大可能出現(xiàn)的數(shù)值范圍。經(jīng)過上述方式進行數(shù)值范圍的估計后,可以得到編碼塊C中的子塊經(jīng)變換A后各點數(shù)據(jù)的數(shù)值范圍A11A12.........Al(n-l)AlnA21A22........A2(n_l)A2n....AnlAn2..........An(n-l)Ann而編碼塊C中的子塊經(jīng)變換B后各點數(shù)據(jù)的數(shù)值范圍為B11B12B13.................B1(m_2)Bl(m-l)BlmmB21B22B23.................B2(m_2)B2(m_l)B2mmB31B32B33.................B3(m_2)B3(m_l)B3mm....BmlBm2Bm3..............Bm(m_2)Bm(m_l)Bmm步驟302,針對兩種變換,分別計算變換后的平均數(shù)值范圍。本步驟中,對于兩種變換的平均數(shù)值范圍計算方法相同。仍以變換A為例,計算變換后的平均數(shù)值范圍的方式可以為,其中,Aij為步驟301中得到的變換A后的子塊內第i行第j列像素數(shù)據(jù)的數(shù)值范圍。類似地,變換B后的平均數(shù)值范圍計算方式為其中,Bij為變換B后的子塊內第i行第j列像素數(shù)據(jù)的數(shù)值范圍。步驟303,根據(jù)步驟302中得到的變換后平均數(shù)值范圍,計算兩種變換和相應量化后的數(shù)值范圍差值。本步驟中,首先計算經(jīng)兩種變換和相應量化后的數(shù)值范圍。仍以變換A和相應量化為例說明。如前所述,對編碼塊C使用量化點QPS,對應于該量化點,變換A查找到的量化步長為QTAB1[s],利用步驟202中計算的AvrA表示經(jīng)變換A后所得數(shù)據(jù)塊各點平均的數(shù)值范圍,數(shù)值范圍以二進制形式表示,則編碼數(shù)據(jù)經(jīng)變換A后所得數(shù)值平均值為2A。通常在視頻編解碼中數(shù)據(jù)的量化過程可以表示為(XXQTAB[s])>>shift[s](1),其中X為待量化的數(shù)值,s為量化點,QTAB[n]為根據(jù)量化點n在量化表中查得的量化步長,shift[s]為量化點s所對應的移位。根據(jù)上述步驟可知,利用量化步長QTABl[s]進行量化后所得數(shù)值平均值為(QTAB1[sP2a)>>shift[s],以二進制的形式表示該數(shù)據(jù)的數(shù)值范圍為(AvrA+log2QTABl[s])>>shift[s]0同理,經(jīng)過變換B和以QTAB2[s]為量化步長的量化后,所得數(shù)據(jù)的數(shù)值范圍為(AvrB+l0&QTAB2[S])>>shift[s]。接下來,計算兩種變換和相應量化后的數(shù)值范圍差值。具體計算方式為計算兩種變換和相應量化后數(shù)值間的倍數(shù)關系,即fl^lf]x二、)》shJ5s],將該倍數(shù)關系轉化為二進制形式表示的數(shù)值范圍間的差值為D'=l。g2^^X二二=3,也就是步驟304,根據(jù)步驟303中的差值,確定變換A的調整因子。本步驟中,根據(jù)步驟303中得到的數(shù)值范圍差值,確定的變換A的調整因子為q=2d'。上述步驟計算過程中所需數(shù)據(jù)均為先驗數(shù)據(jù),即在編碼之前可以獲得的數(shù)據(jù),因此上述步驟可以在編碼前完成并將結果保存,無需在編碼過程中計算。在實際編碼中變換A的調整因子可能會因編碼數(shù)據(jù)的差異而做調整,故在編碼時變換A的調整因子可以根據(jù)編碼數(shù)據(jù)的特性做適當?shù)恼{整。所述的編碼數(shù)據(jù)特性可以為數(shù)據(jù)塊經(jīng)變換A之后的實際平均數(shù)值范圍。并將變換A的調整因子寫入編碼碼流中。變換A的調整因子可以寫在碼流的序列頭或圖像頭或條帶頭或宏塊頭中。變換A的調整因子的使用方式與上述方法相同,這里不再贅述。步驟305,對編碼塊C應用變換A,獲得變換后的數(shù)據(jù),并將所得數(shù)據(jù)均乘以變換A的調整因子。本步驟中,對編碼塊C應用變換A,其具體過程與現(xiàn)有的方式相同,這里就不再贅述。將變換得到的數(shù)據(jù)乘以步驟204中的調整因子,即對于變換后所得的各個數(shù)據(jù)有(;/=C.j2d',其中,為變換后第i行第j列的像素數(shù)據(jù)值,C,/為調整后第i行第j列的像素數(shù)據(jù)的重建值。步驟306,利用變換A查找到的量化步長對各個進行量化。依照現(xiàn)有的方式對變換A后經(jīng)過調整的各個進行量化。由于步驟205中利用調整因子對各個進行了重建得到Ci/,并且該調整因子是根據(jù)兩種變換和相應量化后數(shù)值范圍的差值確定的,因此,本步驟對各個(;/進行量化后得到數(shù)據(jù)的數(shù)值范圍就能夠與編碼塊c經(jīng)過變換B和相應量化后得到數(shù)據(jù)的數(shù)值范圍保持一致。具體推導過程如下由于量化過程中的移位對變換A和變換B對影響是相同的,以下就不再考慮移位的影響。如前所述,編碼塊C應用變換A后的平均數(shù)值范圍為AvrA,則編碼數(shù)據(jù)經(jīng)變換A后所得數(shù)值為2a,那么乘以調整因子后的結果即為表示的數(shù)值范圍為AvrB+l0g2QTAB2[S]-l0g2QTABl[S];再利用量化步長QTAB1[s]進行量化后得到的結果為以二進制表示的數(shù)值范圍為AvrB+l0g2QTAB2[S]。而編碼塊C應用變換B后的平均數(shù)值范圍為AvrB,則編碼數(shù)據(jù)經(jīng)變換A后所得數(shù)值為2a,再利用量化步長QTAB2[s]進行量化后得到的結果為2AvreQTAB2[s],以二進制表示的數(shù)值范圍為AvrB+l0g2QTAB2[S]??梢?,同樣的編碼塊C經(jīng)過步驟205和206的操作后,與經(jīng)過變換B和相應量化后所得數(shù)據(jù)的數(shù)值范圍相同。實現(xiàn)了使變換A和變換B最終數(shù)值范圍一致的目的。至此,本實施例提供的對變換數(shù)據(jù)處理方法流程結束。依照上述方法進行編碼側的變換數(shù)據(jù)處理,從而選擇變換A和變換B中較優(yōu)的變換方式。若最終選擇的變換方式為變換A,則發(fā)送給解碼端的數(shù)據(jù)即為經(jīng)變換A和相應量化及熵編碼等處理后的數(shù)據(jù)。這時,在解碼端對數(shù)據(jù)依照變換A對應的量化點進行反量化后,需要對反量化后的結果除以變換A的調整因子后再進行反變換,以重建編碼端數(shù)據(jù)。其中,變換A的調整因子可以根據(jù)上述步驟301304的過程在解碼端獲得。若解碼端為避免使用除法,可讓解碼數(shù)據(jù)通過乘法及移位方式達到解碼數(shù)據(jù)除以調整因子的目的。若在編碼時編碼碼流已包含變換A的調整因子,則解碼端從碼流中包含有調整因子的地方,如序列頭、圖像頭、條帶頭、宏塊頭,得到變換A的調整因子。變換A的調整因子的使用方式與上述方法相同,這里不再贅述。本實施例還提供了變換數(shù)據(jù)處理裝置的一種具體實施方式,可以用于實施上述圖3所示的方法。圖4即為該實施方式下變換數(shù)據(jù)處理裝置的具體結構圖。如圖4所示,該裝置包括第一數(shù)值范圍估計單元、第二數(shù)值范圍估計單元、數(shù)值范圍差值單元和變換補償單元。其中,變換補償單元包括調整因子確定子單元、變換子單元、變換后處理子單元和量化子單元。第一數(shù)值范圍估計單元,用于根據(jù)預設兩種變換中的第一種變換所需的變換矩陣,估計圖像數(shù)據(jù)經(jīng)過第一種變換后的數(shù)值范圍,并提供給數(shù)值范圍差值單元。第二數(shù)值范圍估計單元,用于根據(jù)預設兩種變換中的第二變換所需的變換矩陣,估計圖像數(shù)據(jù)經(jīng)過第二變換后的數(shù)值范圍,并提供給數(shù)值范圍差值單元。數(shù)值范圍差值單元,用于根據(jù)分別經(jīng)過第一、第二變換后的數(shù)值范圍和第一、第二變換各自對應第量化點,估計圖像數(shù)據(jù)分別經(jīng)過第一、第二變換和對應量化后數(shù)值范圍的差值,并提供給變換補償單元。在變換補償單元中,調整因子確定子單元,用于根據(jù)所述數(shù)值范圍差值單元提供的數(shù)值范圍的差值確定調整因子,并提供給變換后處理子單元。變換子單元,用于對待變換的數(shù)據(jù)應用第一種變換,并將變換結果提供給變換后處理子單元。變換后處理子單元,用于將經(jīng)第一種變換后的數(shù)據(jù)乘以確定的調整因子,并將結果提供給量化子單元。量化子單元,根據(jù)圖像數(shù)據(jù)對應的量化點對乘以調整因子后的結果進行量化。若編碼端將調整因子寫入碼流中,則相應的還需增加調整因子寫入單元,用于將調整因子寫入碼流中。在本實施例中,首先對變換A后的數(shù)據(jù)乘以一個調整因子,然后再進行量化處理。由公式(1)表示的量化過程可以看出,在量化處理時,首先要與量化步長相乘,然后再對相乘結果做右移位,也就是舍掉其中的低位信息。那么經(jīng)變換A后的數(shù)據(jù)乘以該調整因子并對該結果乘以量化步長QTABl[s]后,可能低位并不為0,而是仍然集中了部分信息,這時在進行移位時,就會造成數(shù)據(jù)精度的損失。基于此,為降低量化過程中數(shù)據(jù)精度的損失,在本實施例基礎上還提出了一種演進處理方式,通過乘以變換A的調整因子并增加移位的方式改變經(jīng)變換A后數(shù)據(jù)的數(shù)值范圍。具體地,對應圖3所示的流程,步驟301303的操作不變,在步驟304中,確定的變換A的調整因子變?yōu)閝'=2d'X2n,將其稱為調整系數(shù),其中,η的取值根據(jù)編碼端硬件存儲范圍而定,在保證變換A后的數(shù)據(jù)與調整因子q'相乘后,其后續(xù)操作的數(shù)據(jù)均不超出硬件存儲范圍的條件下,η的取值越大越好。這樣能夠將變換A后的數(shù)據(jù)中信息盡量集中于高位。接下來,在步驟305中,將變換所得數(shù)據(jù)與上述調整因子q'相乘。最后,在步驟306中對數(shù)據(jù)進行量化時,將量化點對應的移位位數(shù)再增加η位,也就是在執(zhí)行完量化操作后,再將量化結果右移η位。這樣,能夠將由上面修改后的步驟304中因調整因子的改變而使數(shù)值范圍擴大的2η倍補償回來。簡單地講,上述修改后的步驟305306的操作即為(2d'X2nXXXQTAB[s])>>shift[S]+n,其中,X表示變換后的數(shù)據(jù)。直觀地看,該操作與原步驟305306中的操作(2d'XXXQTAB[s])>>shift[s]相比,其結果相同,但是在硬件平臺下實現(xiàn)時,前者的精度損失要比后者小。這是因為,在修改后的步驟305中,乘以調整因子q'后,數(shù)據(jù)X被擴大了2D'X2n倍,相對于原步驟305操作后的數(shù)據(jù),其有用信息被放大了,更多地集中于高位,這樣在修改后的步驟306中量化所涉及的移位過程中,被移位而損失的有用信息相對減少了。這樣,便能夠更有效地提高數(shù)據(jù)精度。當編碼端采用上述實施例一的演進方式后,在解碼端對于經(jīng)過變換A處理的數(shù)據(jù)進行反變換和反量化時,也要進行相應的逆操作。具體地,在反量化時,將移位位數(shù)減小n,并在反量化后反變換前,將反量化結果除以變換A的調整因子q',然后進行反變換,以更準確地重建編碼端數(shù)據(jù)。當然,對應上述演進方式本發(fā)明也提供了對應的演進裝置結構,該結構與圖4所示的結構類似,區(qū)別在于該變換補償單元包括調整系數(shù)及移位偏移量子單元、變換子單元、變換后處理子單元和量化子單元。而對于第一數(shù)值范圍估計單元、第二數(shù)值范圍估計單元和數(shù)值范圍差值單元的結構與功能均與圖4所示的裝置相同。在該演進裝置的變換補償子單元中,調整系數(shù)及移位偏移量子單元,用于根據(jù)估計的數(shù)值范圍特征差值確定調整系數(shù)和量化時的移位偏移量,并分別提供給變換后處理子單元和量化子單元。變換子單元,用于對待變換的數(shù)據(jù)應用第一種變換,并將變換結果提供給變換后處理子單元。變換后處理子單元,用于將經(jīng)第一種變換后的數(shù)據(jù)乘以確定的調整系數(shù),并將結果提供給量化子單元。量化子單元,根據(jù)所述移位偏移量和第一種變換對應的量化步長對乘以調整因子后的結果進行量化。在上述實施方式中,計算兩種變換和相應量化后數(shù)值范圍的差值時,利用的是兩種變換后的平均數(shù)值范圍。為使數(shù)值范圍估計更加準確,還可以采用實施例二的方式進行。實施例二本實施例中,與實施例一類似,兩種變換的數(shù)值范圍特征差值為圖像數(shù)據(jù)分別經(jīng)過兩種變換和對應量化后數(shù)值范圍的差值,但是該差值的具體計算方式與實施例一中不同。圖5為本實施例中提供的對變換數(shù)據(jù)處理方法具體流程圖。如圖5所示,該方法包括步驟501,根據(jù)預設兩種變換所需的變換矩陣,估計圖像數(shù)據(jù)分別經(jīng)過兩種變換后的數(shù)值范圍。本步驟的估計方式與實施例一中的步驟301相同,這里就不再贅述。步驟502,計算變換B后的平均數(shù)值范圍。本步驟中計算變換B后平均數(shù)值范圍的方式與實施例一中相同,具體為,其中,Bij為變換B后的子塊內第i行第j列像素數(shù)據(jù)的數(shù)值范圍。m/二1j=\步驟503,根據(jù)步驟501中得到的經(jīng)變換A后各個數(shù)據(jù)的數(shù)值范圍和步驟502得到的經(jīng)變換B后的平均數(shù)值范圍,計算兩種變換和相應量化后的數(shù)值范圍差值。本步驟中,計算數(shù)值范圍的差值時的方法原理與實施例一中相同,區(qū)別在于,本實施例中的數(shù)據(jù)范圍的差值,根據(jù)變換A后各個數(shù)據(jù)的數(shù)值范圍和經(jīng)變換B后的平均數(shù)值范圍進行計算。具體地,對于編碼塊C按照變換A的尺度劃分成子塊后,該子塊中第i行第j列的像素數(shù)據(jù)經(jīng)變換A后對應與變換B后的數(shù)據(jù)范圍差值為d'(i,j0=(AvrB+log2QT4B2[n])-(Aij+log2QTABl[n]),(1<=i<=m,1<=j<=m),其中,Aij為經(jīng)變換A后的子塊內第i行第j列像素數(shù)據(jù)的數(shù)值范圍。步驟504,根據(jù)步驟503中得到的數(shù)值范圍差值,確定變換A的調整因子。本步驟中,確定調整因子的方式與實施例一相同,且針對子塊中第i行第j列的像素數(shù)據(jù)而定,具體為q(/=2d、這樣,求得的調整因子是根據(jù)像素位置的變化而變化的。步驟505,對編碼塊C應用變換A,獲得變換后的數(shù)據(jù),并將所得數(shù)據(jù)均對應乘以變換A的調整因子。本步驟中,在與調整因子相乘時,將第i行第j列的像素數(shù)據(jù)變換后的結果與相應的調整因子相乘,即C;’=C;.jA這樣,將使得變換結果的調整更加準確。步驟506,利用變換A查找到的量化步長對各個進行量化。至此,即完成了對變換A的所得數(shù)據(jù)的補償,其補償原理與實施例一的推導過程相同,這里就不再贅述。其區(qū)別在于,在補償過程中,調整因子的計算針對像素數(shù)據(jù)所在位置的變化而變化,使得補償?shù)慕Y果更加準確,使最終兩種變換和相應量化后所得數(shù)據(jù)的數(shù)值范圍的一致程度更高,從而能夠更加有效地選擇較優(yōu)的變換,進一步提高編碼效率。在實際編碼中變換A的根據(jù)像素所在位置調整因子可能會因編碼數(shù)據(jù)的差異而做調整,故在編碼時變換A的調整因子可以根據(jù)編碼數(shù)據(jù)的特性做適當?shù)恼{整。所述的編碼數(shù)據(jù)特性可以為數(shù)據(jù)塊經(jīng)變換A之后的各個像素位置的數(shù)值。并將變換A的調整因子寫入編碼碼流中。變換A的調整因子可以寫在碼流的序列頭或圖像頭或條帶頭或宏塊頭中。變換A的調整因子的使用方式與上述方法相同,這里不再贅述。本實施例中的方法也可以采用實施例一中圖4所示的裝置來實現(xiàn)??紤]到補償準確性的問題,本實施例也提供了一種演進的補償方式,具體為根據(jù)獲得的兩種變換和相應量化后數(shù)值范圍的差值,確定調整因子f(i』和系數(shù)偏移量s(u),在進行補償時,首先利用f(i』與變換后的數(shù)據(jù)相乘,然后再將該乘積結果加上系數(shù)偏移量s(i,j),目的在于讓以下關系成立f^^XAij+SGd)=AvrB,(1<=i<=n,l<=j<=n),從而保證補償?shù)臏蚀_性。最后再將加上偏移量后的結果按照變換A對應的量化步長進行量化。相應地,在解碼端,與編碼端相應設置f(Uj)和S(m),并對接收到的待反量化的數(shù)據(jù)進行反量化后,減去再除以f(ij,然后再進行反變換,以準確重建編碼端圖像數(shù)據(jù)。對于上述演進的補償方式,本發(fā)明也提供了對應的演進裝置結構,該結構與圖4所示結構類似,區(qū)別在于,其中的變換補償單元包括調整因子和偏移量子單元、變換子單元、變換后處理子單元和量化子單元。其它第一數(shù)值范圍估計單元、第二數(shù)值范圍估計單元、數(shù)值范圍差值單元的結構和功能均與圖4所示的裝置相同。在變換補償單元中,調整因子和系數(shù)偏移量子單元,用于根據(jù)所述數(shù)值范圍差值單元提供的數(shù)值范圍差值確定調整因子和系數(shù)偏移量,并提供給變換后處理子單元。變換子單元,用于對待變換的數(shù)據(jù)應用第一種變換,并將變換結果提供給變換后處理子單元。變換后處理子單元,用于將經(jīng)第一種變換后的數(shù)據(jù)乘以確定的調整因子再加上偏移量,并將結果提供給量化子單元。量化子單元,根據(jù)第一種變換對應的量化步長對乘以調整因子并加上系數(shù)偏移量后的結果進行量化。與實施例一類似,在解碼端可以預先計算變換A的調整因子,當變換A作為較優(yōu)的變換方式時,解碼端在進行反量化后,將反量化結果除以各自對應的變換A的調整因子,然后再進行反變換,從而重建編碼端數(shù)據(jù)。若在編碼時編碼碼流已包含變換A的調整因子,則解碼端從碼流中包含有調整因子的地方,如序列頭、圖像頭、條帶頭、宏塊頭,得到變換A的調整因子。變換A的調整因子的使用方式與上述方法相同,這里不再贅述。實施例三本實施例中,對變換A所得數(shù)據(jù)的補償方式與前兩個實施例不同,采用的是調整量化點的方式進行補償。另外,與實施例一類似,本實施例中兩種變換的數(shù)值范圍特征差值為圖像數(shù)據(jù)分別經(jīng)過兩種變換和對應量化后數(shù)值范圍的差值。具體地,圖6為實施例三中提供的對變換數(shù)據(jù)處理方法具體流程圖。如圖6所示,該方法包括步驟601603,根據(jù)預設兩種變換所需的變換矩陣,估計圖像數(shù)據(jù)分別經(jīng)過兩種變換后的數(shù)值范圍;針對兩種變換,分別計算變換后的平均數(shù)值范圍;并計算兩種變換和相應量化后的數(shù)值范圍差值。步驟601603中的操作與實施例一中步驟301303的操作相同,這里就不再贅述。步驟604,根據(jù)步驟603中的差值確定量化點偏移量。本實施例中,通過調整變換A對應的量化點,對變換A所得數(shù)據(jù)進行補償,從而使其獲得與變換B相一致的數(shù)值范圍,為選擇較優(yōu)的變換方式作準備。變換A對應的量化點可以為預先設定好的量化點,也可以為從變換B得到的量化點o在視頻標準中,相鄰兩個量化點所對應量化步長通常成一定的倍數(shù)關系,具體為每隔k個量化點,其對應的量化步長在數(shù)值上變?yōu)樵瓉淼亩种?,因此可得相鄰量化點所對應的量化步長間的倍數(shù)關系為fif,于是相隔i個量化點所對應的量化步長間的倍數(shù)關系即為(1/2$。又由于量化步長與利用該量化步長進行量化后所得的數(shù)值呈正比,因此,通過調整量化點偏移量的方法亦可起到數(shù)據(jù)數(shù)值范圍調整的目的。17根據(jù)步驟603中得到的變換A、B后的數(shù)值范圍差值D',可以得到補償該數(shù)值范圍的差值所需要的量化點偏移量。具體地,數(shù)值范圍差值D'對應的具體數(shù)值倍數(shù)為2D',而量化點加上偏移量AQP后,其對應的量化步長是原量化步長的數(shù)為倍,令二者相等,則可以得到量化點偏移量AQP=-IkXD’I,其中II為取整操作符。因為量化步長的大小會影響數(shù)據(jù)的實際編碼效果,AQP可在上述計算公式基礎上根據(jù)實驗數(shù)據(jù)所得結果視量化步長的大小進行調整。當然,量化點偏移量的計算也可以采用其它公式,只要能夠反映步驟603中得到的數(shù)值范圍的差值即可。步驟605,對編碼塊C應用變換A獲得變換后的數(shù)據(jù),將變換A對應的量化點減去確定的量化偏移量,再根據(jù)調整后的量化點查找到的量化步長進行量化。由步驟604中推導AQP=-|kXD’|的過程可見,將量化點調整后,調整后的量化步長與原量化步長的倍數(shù)關系為2D',也就是調整后的量化步長變?yōu)?D'.QTABl[s],其中,QTABl[s]為原來的量化步長。那么,利用該修正后的量化步長進行量化后的結果為2a^-QTAB1[s]-2d'=2Avr"^QTAB2[s],以二進制表示的數(shù)值范圍為AvrB+l0&QTAB2[S]。顯然該數(shù)值范圍與經(jīng)變換B和相應量化后所得數(shù)據(jù)的數(shù)值范圍相同,實現(xiàn)了使變換A和變換B最終數(shù)值范圍一致的目的。至此,本實施例提供的對變換數(shù)據(jù)處理方法流程結束。依照上述方法進行編碼側的變換數(shù)據(jù)處理,從而選擇變換A和變換B中較優(yōu)的變換方式。若最終選擇的變換方式為變換A,則發(fā)送給解碼端的數(shù)據(jù)即為經(jīng)變換A和相應量化及熵編碼等處理后的數(shù)據(jù)。這時,在解碼端需要預先根據(jù)步驟601604計算變換A對應的量化點偏移量,并對該量化點偏移量進行補償,具體為將變換A原對應的量化點基礎上加上AQP,再利用該改變后的量化點對應的量化步長對數(shù)據(jù)進行反量化和反變換,以準確地重建編碼端數(shù)據(jù)。在上述解碼端步驟中,對量化點偏移量進行補償時,亦可在變換A原對應的量化點基礎上減去AQP,再利用該改變后的量化點對應的量化步長對數(shù)據(jù)進行反量化和反變換。在變換A原對應的量化點基礎上加上或減去AQP由量化表特性決定,為預先設定好的步驟,其目的在于編碼端數(shù)據(jù)經(jīng)變換A處理后在解碼端能準確恢復。在實際編碼中變換A量化偏移量可能會因編碼數(shù)據(jù)的差異而做調整,故在編碼時變換A的調整因子可以根據(jù)編碼數(shù)據(jù)的特性做適當?shù)恼{整。所述的編碼數(shù)據(jù)特性可以為數(shù)據(jù)塊經(jīng)變換A之后的實際平均數(shù)值范圍。并將變換A的量化偏移量寫入編碼碼流中。即變換A對應的量化點所減去的量化偏移量可取決于編碼一個序列、一幅圖像、一個條帶或一個宏塊時數(shù)據(jù)經(jīng)變換A之后的數(shù)值范圍,所減去的量化偏移量寫入編碼碼流。變換A的量化偏移量可以寫在碼流的序列頭或圖像頭或條帶頭或宏塊頭中。解碼端端若獲知編碼端碼流包含了量化點偏移量信息,則從碼流中的序列頭或圖像頭或條帶頭或宏塊頭中獲取量化偏移量,在變換A原對應的量化點基礎上減去量化偏移量。這里所述編碼端變換A對應的量化點及解碼端變換A原對應的量化點可以為預先設定好的量化點,也可以為與變換B相同的量化點。本實施例還提供了變換數(shù)據(jù)處理裝置的另一種具體實施方式,可以用于實施上述18圖6所示的方法。圖7即為該實施方式下變換數(shù)據(jù)處理裝置的具體結構圖。如圖7所示,該裝置包括第一數(shù)值范圍估計單元、第二數(shù)值范圍估計單元、數(shù)值范圍差值單元和變換補償單元。其中,變換補償單元包括量化點修正子單元、變換子單元和量化子單元。第一數(shù)值范圍估計單元,用于根據(jù)預設兩種變換中的第一種變換所需的變換矩陣,估計圖像數(shù)據(jù)經(jīng)過第一種變換后的數(shù)值范圍,并提供給數(shù)值范圍差值單元。第二數(shù)值范圍估計單元,用于根據(jù)預設兩種變換中的第二變換所需的變換矩陣,估計圖像數(shù)據(jù)經(jīng)過第二變換后的數(shù)值范圍,并提供給數(shù)值范圍差值單元。數(shù)值范圍差值單元,用于根據(jù)分別經(jīng)過第一、第二變換后的數(shù)值范圍和第一、第二變換各自對應第量化點,估計圖像數(shù)據(jù)分別經(jīng)過第一、第二變換和對應量化后數(shù)值范圍的差值,并提供給變換補償單元。在變換補償單元中,量化點修正子單元,用于根據(jù)數(shù)值范圍差值單元提供的數(shù)值范圍的差值確定量化點偏移量,并將第一種變換對應的量化點減去所述量化點偏移量,并將調整后的結果提供給量化子單元。變換子單元,用于對待變換的數(shù)據(jù)應用第一種變換,并將變換后的結果提供給量化子單元。量化子單元,用于根據(jù)所述量化點修正子單元提供的調整后的量化點對變換后的結果進行量化。在上述本實施例的具體實施過程中,經(jīng)變換A、B后的數(shù)值范圍的差值是根據(jù)平均數(shù)值范圍計算的。事實上,該差值的計算可以采用實施例二的方式進行,即針對經(jīng)變換A后子塊內各個像素,分別計算數(shù)值范圍的差值。相應地,在步驟604中調整變換A對應的量化點時,也針對經(jīng)變換A后子塊內各個像素進行調整,具體地,AQPyZ|nXAd'(^|。然后,在步驟605中根據(jù)不同的像素,按照調整后的量化點對應的量化步長進行量化。這樣,能夠使補償?shù)慕Y果更加準確,使最終兩種變換和相應量化后所得數(shù)據(jù)的數(shù)值范圍的一致程度更高,從而能夠更加有效地選擇較優(yōu)的變換,進一步提高編碼效率。相應地,當編碼端選擇變換A為較優(yōu)的變換方式后,在解碼端預先根據(jù)上述方法獲得變換A后各個像素數(shù)據(jù)對應的量化點偏移量,并將待反量化的數(shù)據(jù)各自對應的量化點加上偏移量,再利用改變后的量化點對應的量化步長進行反量化和反變換,以準確地重建編碼端數(shù)據(jù)。當量化偏移量需要寫入碼流時,可仿照前述方法進行碼流的寫入、解析及量化點偏移量在編碼端和解碼端對變換A原對應的量化點的處理方法。在上述三個實施例中,分別采用了兩種不同的方式對變換后的數(shù)據(jù)進行補償,從而達到調整其數(shù)值范圍的目的,具體地,一種方式是將變換后的數(shù)據(jù)乘以一個調整因子,另一種方式是改變該變換對應的量化點。事實上,可以將上述兩種方式結合起來進行變換后數(shù)據(jù)的補償。例如,將變換后的數(shù)據(jù)乘以一個調整因子f,同時將量化點偏移s,目的在于讓以下關系成立fXAvrA+s=AvrB,(1<=i<=n,1<=j<=n)。由于AvrA和AvrB為先驗數(shù)據(jù),f和s可以為預先設定值,且值不唯一,具體f和s可以視AvrA和AvrB數(shù)據(jù)大小關系及編解碼實現(xiàn)條件而設定。若f和s需要根據(jù)圖像編碼數(shù)據(jù)進行調整,則f和s可以寫入編碼碼流中的序列頭、圖像頭、條帶頭、宏塊頭等地方。若編碼碼流含有f和s,則解碼端從編碼碼流的相應位置,例如序列頭、圖像頭、條帶頭、宏塊頭等,解析得到f和s。當然,也可以將子塊變換后的所有像素數(shù)據(jù)分別乘以一個對應的調整因子,同時將量化點偏移s(i,j),目的在于讓以下關系成立^wXAij+h,」)=AvrB,(1<=i<=n,1<=j<=η)。其中,fa,j)和s(i,j)可以視AvrA和AvrB數(shù)據(jù)大小關系及編解碼實現(xiàn)條件而設定。若f(i,」)和Sn需要根據(jù)圖像編碼數(shù)據(jù)進行調整,則f(i,」)和Μ,」)可以寫入編碼碼流中的序列頭、圖像頭、條帶頭、宏塊頭等地方。若經(jīng)過上述方式對經(jīng)變換A所得數(shù)據(jù)進行補償,在解碼端可以預先設置相同的fa.j)和當接收到對應變換A的編碼數(shù)據(jù)后,在對該數(shù)據(jù)進行反量化前,調整變換A對應的量化點,在原有量化點的基礎上加上s(m),同時對待反量化的數(shù)據(jù)除以對應的調整因子f(u),再利用改變后的量化點對應的量化補償對除以調整因子后的待反量化數(shù)據(jù)進行反量化,以準確重建編碼端數(shù)據(jù)。若編碼碼流含有f(i,」)和sa,j),則解碼端從編碼碼流的相應位置,例如序列頭、圖像頭、條帶頭、宏塊頭等,解析得到Au)和s(id)。對應該上述兩種補償方式結合的方法,本發(fā)明也提供了對應的裝置結構。該裝置結構與圖7所示的結構類似,區(qū)別在于,其中的變換補償單元包括調整因子及量化點修正子單元、變換子單元、變換后處理子單元和量化子單元。其它第一數(shù)值范圍估計單元、第二數(shù)值范圍估計單元、數(shù)值范圍差值單元的結構和功能均與圖7所示的裝置相同。在該變換補償單元中,調整因子及量化點修正子單元,用于根據(jù)數(shù)值范圍差值單元提供的數(shù)值范圍的差值確定調整因子和量化點偏移量,并將第一種變換對應的量化點減去所述量化點偏移量,將調整后的量化點提供給所述量化子單元,將確定的調整因子提供給變換后處理子單元。變換子單元,用于對待變換的數(shù)據(jù)應用第一種變換,并將變換結果提供給變換后處理子單元。變換后處理子單元,用于將經(jīng)第一種變換后的數(shù)據(jù)乘以確定的調整因子,并將結果提供給量化子單元。量化子單元,根據(jù)所述調整后的量化點對應的量化步長對乘以調整因子后的結果進行量化。在上述三個實施例中,變換A和變換B可以采用不同的量化表,也就是根據(jù)量化點查找到的量化步長是不同的,但是對于量化表相同的情況而言,采用上述方式對于數(shù)據(jù)精度的損失較大。針對量化表相同的情況,本發(fā)明提出了實施例四的實施方式,對于其中的一種變換,重新設計一套量化表,從而使兩種變換和相應量化后數(shù)據(jù)的數(shù)值范圍相一致。實施例四與前述三個實施例不同,本實施例中,兩種變換的數(shù)值范圍特征差值為圖像數(shù)據(jù)分別經(jīng)過兩種變換后數(shù)值范圍的差值。圖8為本發(fā)明實施例四中變換數(shù)據(jù)處理方法的具體流程圖。如圖8所示,該方法包括步驟801802,根據(jù)預設兩種變換所需的變換矩陣,估計圖像數(shù)據(jù)分別經(jīng)過兩種變換后的數(shù)值范圍;針對兩種變換,分別計算變換后的平均數(shù)值范圍;步驟801802中的操作與實施例一中步驟301302的操作相同,區(qū)別在于,針對不同的量化點分別進行上述操作。也就是說,對于所有不同的宏塊,分別計算該宏塊經(jīng)兩種變換后的平均數(shù)值范圍AvrA(n)和AvrB(n),其中,η為量化點索引。步驟803,計算兩種變換后的數(shù)值范圍差值。針對不同的量化點計算兩種變換后的數(shù)值范圍差值,具體地,Ad(n)=AvrB(η)-AvrΑ(η)。事實上,如前所述,由于在視頻編解碼理論中,通常使用均勻量化方法,也就是每隔若干個量化點,量化步長減小為原來一半,因此AcKn)的數(shù)值也具有一定規(guī)律性?;诖?,這里可以做一個簡化。具體地,設每隔m個量化點,量化步長減小為原來一半,則可以選擇計算連續(xù)的m個Ad(n),例如,本步驟僅計算Ad(l),Ad(2),L,Ad(m),下面即假定計算了這m個差值。步驟804,設置各個量化點對應的量化步長和移位位數(shù),并形成量化表。本步驟中,設置量化步長時,根據(jù)步驟803中計算得到的差值進行。具體地,對應于步驟803中計算得到的m個差值,設置第1至第m個量化點所對應的量化步長為2Ad(1)XR,..........2AdWXR,其中R為一恒定系數(shù)值,目的在于讓量化步長的值為一整數(shù)且提高計算精度(分子大了,自然可以保留更多信息),但是考慮到硬件存儲范圍的限制,該R值有其上限。根據(jù)均勻量化原理,由第1至第m個量化點所對應的量化步長就可以推出其它量化點的量化步長。當然,在設置量化步長時,也可以對所有的量化步長進行設置,具體第n個量化點對應的量化步長為2Ad(n)XR。在設置移位位數(shù)時將其設定為一固定值t。當該t較大時,編碼效果較差,壓縮編碼率高;當該t較小時,編碼效果較好,壓縮編碼率低。因此,t的具體取值需要綜合考慮編碼效果和壓縮編碼率,找到一個較佳平衡點對應的t。根據(jù)上述設置的移位位數(shù)和量化步長形成量化表,該過程與現(xiàn)有的實現(xiàn)方式相同,這里就不再贅述。步驟805,接收待變換的數(shù)據(jù),并應用變換A獲得變換后的數(shù)據(jù),根據(jù)上述量化表對變換后的數(shù)據(jù)進行量化。經(jīng)上述處理后,編碼端數(shù)據(jù)經(jīng)變換A和上述量化表進行量化后數(shù)據(jù)的數(shù)值范圍與經(jīng)變換B和相應量化后的數(shù)值范圍可達基本一致。本實施例之所以實現(xiàn)發(fā)明目的的原理與實施例一相同,具體地,由于量化過程中,量化步長與量化后數(shù)據(jù)是成正比的,因此根據(jù)上述量化步長對變換A所得數(shù)據(jù)進行量化的過程事實上與實施例一中對變換A所得數(shù)據(jù)乘以一個調整因子的過程基本等價,都是乘以2Ad(n)的關系。因此,本實施例也可以實現(xiàn)調整數(shù)值范圍,以使其與變換B和相應量化后數(shù)值范圍一致的目的。相應地,在解碼端還要設計與編碼端的量化表相應的反量化表。在反量化表中,考慮到在編碼端根據(jù)均勻量化的方法,第n個量化點的量化步長為第(n+m)個量化點的量化步長的兩倍,在反量化表中利用移位來補償量化步長間的倍數(shù)關系,也就是在反量化時第n個量化點的移位位數(shù)=第(n+m)個量化點的移位位數(shù)+1。第1至m個反量化點的移位位數(shù)可設為k,那么第m+1至2m個反量化點的移位位數(shù)就相應為k-1。至于,k值的設定,也是考慮硬件的存儲范圍而定,原理與前述考慮硬件存儲范圍的情況相同。下面,根據(jù)上述移位位數(shù)的設置,計算反量化表的反量化步長為IQ(n),其中n為量化點。IQ(n)需滿足關系其中,|蓋|反映的是移位位數(shù)的變化,即每隔m個量化點,移位位數(shù)增加1。根據(jù)該公式可知公其中h為一恒定常數(shù),其取值越大越好,但是同樣要受到硬件存儲范圍的限制。按照上述方式建立反量化表,這樣在解碼端,使用變換A的數(shù)據(jù)在進行反變換后使用該建立的反量化表就可以恢復重建數(shù)據(jù)。本實施例還提供了變換數(shù)據(jù)處理裝置的一種具體實施方式,可以用于實施上述圖8所示的方法。圖9即為該實施方式下變換數(shù)據(jù)處理裝置的具體結構圖。如圖9所示,該裝置包括第一數(shù)值范圍估計單元、第二數(shù)值范圍估計單元、數(shù)值范圍差值單元和變換補償單元。其中,變換補償單元包括量化表建立子單元、變換子單元和量化子單元。第一數(shù)值范圍估計單元,用于根據(jù)預設兩種變換中的第一種變換所需的變換矩陣,估計圖像數(shù)據(jù)經(jīng)過第一種變換后的數(shù)值范圍,并提供給數(shù)值范圍差值單元。第二數(shù)值范圍估計單元,用于根據(jù)預設兩種變換中的第二變換所需的變換矩陣,估計圖像數(shù)據(jù)經(jīng)過第二變換后的數(shù)值范圍,并提供給數(shù)值范圍差值單元。所述數(shù)值范圍差值單元,用于根據(jù)分別經(jīng)過第一、第二變換后的數(shù)值范圍,估計經(jīng)過兩種變換后數(shù)值范圍的差值,并將該差值作為數(shù)值范圍特征差值提供給所述變換補償單兀。在變換補償單元中,量化表建立子單元,用于根據(jù)所述數(shù)值范圍特征差值為第一種變換建立對應的量化表,并提供給量化子單元。變換子單元,用于對待變換的數(shù)據(jù)應用第一種變換,并將變換結果提供給量化子單元。量化子單元,根據(jù)所述第一種變換對應的量化表對第一種變換后的結果進行量化。在上述本發(fā)明的實施例中,均以對經(jīng)變換A的數(shù)據(jù)進行補償為例,說明本發(fā)明的具體實施方式,事實上,也可以對經(jīng)變換B的數(shù)據(jù)進行補償,其實施方式相同,只是在對應公式中將變換A和變換B所對應的參量進行互換即可,這里就不再贅述。上述變換數(shù)據(jù)處理的方法可以用于編碼方法中。圖10是本發(fā)明實施例五提供的編碼方法流程示意圖,該編碼方法包括以下步驟A1、接收待變換的數(shù)據(jù);所述待變換的數(shù)據(jù)包括經(jīng)過預測得到的圖像塊殘差。A2、對所述待變換的數(shù)據(jù)進行第一變換,得到第一變換后的數(shù)據(jù);對所述待變換的數(shù)據(jù)進行第二變換,得到第二變換后的數(shù)據(jù);所述的第一變換在這里為4x4尺寸的變換;所述的第二變換在這里為8x8尺寸的變換;A3、根據(jù)第一變換后的數(shù)據(jù)和第二變換后的數(shù)據(jù)確定第一變換的調整參數(shù),根據(jù)所述調整參數(shù)和第二變換的參數(shù)調整所述第一變換后的數(shù)據(jù)。這里的第一變換后的數(shù)據(jù)和第二變換后的數(shù)據(jù)包括前述的第一變換后的數(shù)值范圍和第二變換后的數(shù)值范圍,為描述方便,采用第一變換后的數(shù)據(jù)和第二變換后的數(shù)據(jù)的叫法。調整參數(shù)可以包括根據(jù)所述第一變換后的數(shù)據(jù)和第二變換后的數(shù)據(jù)確定調整因子,則所述根據(jù)所述調整參數(shù)和所述第二變換的參數(shù)調整所述第一變換后的數(shù)據(jù)包括將經(jīng)第一變換后的數(shù)據(jù)乘以所述調整因子;根據(jù)對應的量化步長對乘以調整因子后的數(shù)據(jù)進行量化。調整參數(shù)可以包括根據(jù)第一變換后的數(shù)據(jù)和第二變換后的數(shù)據(jù)確定的量化偏移量,所述第二變換的參數(shù)為第二變換的量化點,所述根據(jù)所述調整參數(shù)和第二變換的參數(shù)調整所述第一變換后的數(shù)據(jù)包括將第二變換對應的量化點減去所述量化偏移量作為第一變換的量化點;利用調整后的第一變換的量化點對經(jīng)第一變換后的數(shù)據(jù)進行量化。調整參數(shù)可以包括根據(jù)第一變換后的數(shù)據(jù)和第二變換后的數(shù)據(jù)確定的量化偏移量和調整因子;所述第二變換的參數(shù)為第二變換對應的量化點,則所述根據(jù)所述調整參數(shù)和所述第二變換的參數(shù)調整所述第一變換后的數(shù)據(jù)包括將經(jīng)第一變換后的數(shù)據(jù)乘以所述調整因子,并將第二變換對應的量化點減去所述量化偏移量作為第一變換的量化點;利用所述第一變換的量化點對乘以調整因子后的數(shù)據(jù)進行量化。調整參數(shù)還可以包括根據(jù)第一變換后的數(shù)據(jù)和第二變換后的數(shù)據(jù)確定的調整系數(shù)和量化移位偏移量;所述第二變換的參數(shù)包括,對第二變換數(shù)據(jù)的量化點的移位數(shù);則所述根據(jù)所述調整參數(shù)和第二變換的參數(shù)調整所述第一變換后的數(shù)據(jù)包括將經(jīng)第一變換后的數(shù)據(jù)乘以所述調整系數(shù),并利用第一變換對應的量化點的移位位數(shù)對所述與調整系數(shù)相乘后的數(shù)據(jù)進行量化;所述第一變換對應的量化點的移位位數(shù)為第二變換對應的量化點的移位位數(shù)與所述量化移位偏移量之和。所述調整參數(shù)可以包括根據(jù)第一變換后的數(shù)據(jù)和第二變換后的數(shù)據(jù)確定的調整因子和系數(shù)偏移量,則所述根據(jù)所述調整參數(shù)和第二變換的參數(shù)調整所述第一變換后的數(shù)據(jù)包括將經(jīng)第一變換后的數(shù)據(jù)乘以所述調整因子,再加上所述系數(shù)偏移量并進行量化。A4、將所述調整參數(shù)寫入編碼碼流中。將所述調整參數(shù)寫入編碼碼流中的序列頭或圖像頭或條帶頭或宏塊頭中,供解碼端使用經(jīng)上述處理后第一變換后數(shù)據(jù)的數(shù)值范圍和第二變換后數(shù)據(jù)的數(shù)值范圍大致形同,在編碼時能更有效的反映變換對數(shù)據(jù)的影響,來選擇效果較優(yōu)的變換,進而提高編碼效率。圖11是本發(fā)明實施例六提供的解碼方法流程示意圖,該方法包括B1、接收碼流,對所述碼流進行解碼,獲得第一變換后的數(shù)據(jù)和調整參數(shù);第一變換后的數(shù)據(jù)是指若當前解碼圖像塊判斷為使用第一變換,則熵解碼后所得圖像塊殘差經(jīng)第一變換反變換后的數(shù)據(jù);所述的第一變換在這里為4x4尺寸的反變換;所述的第二變換在這里為8x8尺寸的反變換;所述調整參數(shù)與在編碼時寫入碼流的調整參數(shù)相應。B2、根據(jù)所述調整參數(shù)和所述第二變換的參數(shù)調整所述第一變換后的數(shù)據(jù)。這個步驟包括多種方法,分別是(1)根據(jù)所述調整參數(shù)和所述第二變換的參數(shù)確定對第一變換后的數(shù)據(jù)的調整因子根據(jù)第一變換對應的量化步長對第一變換后的數(shù)據(jù)進行反量化,并對反量化結果與所述調整因子之商進行反變換。(2)若接收到的調整參數(shù)為量化偏移量,則所述第二變換的參數(shù)為第二變換對應的量化點,第一變換的量化點為所述第二變換對應的量化點減去所述量化偏移量,所述根據(jù)所述量化偏移量和第二變換對應的量化點對第一變換后的數(shù)據(jù)調整包括利用所述第一變換對應的量化點對所述第一變換后的數(shù)據(jù)進行反量化,并對反量化結果進行反變換。(3)若調整參數(shù)包括量化偏移量和對第一變換后的數(shù)據(jù)的調整因子;則所述第二變換的參數(shù)為第二變換對應的量化點,第一變換的量化點為所述第二變換的量化點減去所述量化偏移量;所述根據(jù)所述調整參數(shù)和所述第二變換的參數(shù)調整所述第一變換后的數(shù)據(jù)包括利用所述第一變換對應的量化點對第一變換后的數(shù)據(jù)進行反量化;對反量化結果與所述調整因子之商進行反變換。(4)若所述調整參數(shù)包括第一變換的調整系數(shù)和對第一變換數(shù)據(jù)的量化移位偏移量;所述第二變換的參數(shù)包括,對第二變換數(shù)據(jù)的量化點的移位數(shù);則所述根據(jù)所述調整參數(shù)和所述第二變換的參數(shù)調整所述第一變換后的數(shù)據(jù)包括將所述第二變換對應的量化點的移位位數(shù)減去所述量化移位偏移量作為第一變換對應的量化點的移位位數(shù);利用所述第一變換對應的量化點的移位位數(shù)對接收到第一變換后的數(shù)據(jù)進行反量化;對反量化結果與所述調整系數(shù)之商進行反變換。(5)根據(jù)所述調整參數(shù)和所述第二變換的參數(shù)確定對第一變換數(shù)據(jù)的調整因子;根據(jù)所述調整參數(shù)和所述第二變換的參數(shù)確定對第一變換數(shù)據(jù)的系數(shù)偏移量;所述根據(jù)所述調整參數(shù)和所述第二變換的參數(shù)調整所述第一變換后的數(shù)據(jù)包括根據(jù)所述第一變換對應的量化步長對接收到的數(shù)據(jù)進行反量化,并對反量化結果減去所述系數(shù)偏移量,將所述相減結果與所述調整因子之商進行反變換。與編碼端相應,所述調整參數(shù)從碼流中的序列頭或圖像頭或條帶頭或宏塊頭中獲得。圖12是本發(fā)明實施例七提供的編碼裝置結構示意圖,該編碼裝置包括數(shù)據(jù)接收單元,用于接收待變換的數(shù)據(jù);變換單元,用于對接收單元接收到的所述待變換的數(shù)據(jù)進行第一變換,得到第一變換后的數(shù)據(jù);對所述待變換的數(shù)據(jù)進行第二變換,得到第二變換后的數(shù)據(jù);第一調整單元,根據(jù)第一變換后的數(shù)據(jù)和第二變換后的數(shù)據(jù)確定調整參數(shù),根據(jù)所述調整參數(shù)和第二變換的參數(shù)調整所述第一變換后的數(shù)據(jù);寫單元,用于將所述調整參數(shù)寫入編碼碼流中。圖13是本發(fā)明實施例八提供的解碼裝置結構示意圖,該解碼裝置包括碼流接收單元,用于接收碼流;解碼單元,對所述碼流進行解碼,獲得第一變換后的數(shù)據(jù)和調整參數(shù);第二調整單元,用于根據(jù)所述調整參數(shù)和第二變換的參數(shù)調整第一變換后的數(shù)據(jù)。上述編碼裝置和解碼裝置可以組成一套系統(tǒng)使用,這里不在贅述。實施例九一種編碼方法實施例九提供了一種編碼方法,可以在編碼端自適應地求取量化偏移量(前述的調整參數(shù)),如圖14所示,所述方法包括Cl、接收待變換的數(shù)據(jù)和已編碼參數(shù)信息;C2、對所述待變換的數(shù)據(jù)進行第一變換,得到第一變換后的數(shù)據(jù);C3、根據(jù)已編碼參數(shù)信息和第二變換的參數(shù)確定調整參數(shù),根據(jù)所述調整參數(shù)和所述第二變換的參數(shù)調整所述第一變換后的數(shù)據(jù);C4、將所述調整參數(shù)寫入編碼碼流中。下面加以詳細介紹。設變換A的尺度為4x4,變換B的尺度為8x8。本實施例中首先接收待變換的數(shù)據(jù)和已編碼參數(shù)信息。對所述待變換的數(shù)據(jù)進行第一變換,得到第一變換后的數(shù)據(jù),根據(jù)已編碼參數(shù)信息和第二變換參數(shù)確定調整參數(shù)。這里所述第二變換參數(shù)為第二變換所對應的量化點,所述調整參數(shù)為量化偏移量。所述已編碼參數(shù)信息包括使用第一變換的幀內預測圖像塊數(shù)目,使用第二變換的幀內預測圖像塊數(shù)目,所有使用幀內預測圖像塊的數(shù)目,P幀或B幀中使用第一變換的幀內預測圖像塊數(shù)目,P幀和B幀中使用第一變換的幀內預測圖像塊數(shù)目,P幀或B幀中使用第二變換幀內預測圖像塊的數(shù)目,P幀和B幀中使用第二變換幀內預測圖像塊的數(shù)目,P幀和B幀中使用幀內預測圖像塊的數(shù)目,P幀中使用跳過模式或直接模式的圖像塊的數(shù)目,P幀中使用跳過模式和直接模式的圖像塊的數(shù)目,B幀中使用跳過模式或直接模式的圖像塊的數(shù)目,B幀中使用跳過模式和直接模式的圖像塊的數(shù)目,P幀中使用幀間預測模式圖像塊的數(shù)目,或B幀中使用幀間預測模式圖像塊的數(shù)目中的一種或多種。其中跳過模式為視頻編解碼中常用技術,其含義為根據(jù)已編碼或已解碼圖像塊信息得到當前圖像塊運動矢量,并且該圖像塊中沒有編碼殘差;直接模式含義為根據(jù)已編碼或已解碼圖像塊信息得到當前圖像塊運動矢量,但該圖像塊中含有編碼殘差。記所述使用第一變換的幀內預測圖像塊數(shù)目為img->intra4X4nUm,所述使用幀內預測圖像塊的數(shù)目為img->intra_nUm,所述P幀中使用跳過模式和或直接模式的圖像塊的數(shù)目為img->pskip_nUm,所述P幀中使用幀內預測圖像塊的數(shù)目為img->p_intra,所述P幀中使用幀間預測模式圖像塊的數(shù)目為img->pnUm,所述第二變換所對應的量化點為img_>qp,所述量化偏移量img->qp_shift。在本實施例中在編碼端存儲三張用于確定量化偏移量,每張表包含64個元素,這三張表記為QPshift_table、QPshift_table[1]和QPshift_table[2]三個數(shù)組,每個數(shù)組中包含64個元素,表現(xiàn)形式如下QPshift_table={0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,6,6,6,6,7,8,8,8,8,8,8,8,8,9,9,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10}QPshift_table[l]={0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6}QPshift_table[2]={0,1,1,1,2,2,3,3,3,4,4,4,5,5,6,6,7,8,8,9,9,10,10,10,10,10,11,11,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,13,13,13,13,13,13,13,13,13,13,13}在使用自適應塊變換技術時,若當前編碼圖像為I幀且為當前序列或當前圖像組的第一巾畐圖像,idimg->intra4x4num>img->intra_num>img->pskip_num>img->p_intra和img->pnum值為0,使用QPshift_table確定img->QP_shift,確定方法為img->QP_shift=QPshift_table[img->qp]。這里所說圖像組為包含了若干I幀、P幀、B幀或上述幾種類型中的組合。若當前編碼圖像為I幀且不為當前序列或當前圖像組的第一幅圖像但當前序列或當前圖像組中還未有已經(jīng)以P幀編碼的圖像,則設定兩個參數(shù),記為第一確定值vl和第二確定值v2,vl和v2的計算方法如下vl=img->intra4x4num*5.0/img->intra_num/(img->QP_shift+12)v2=0.2其中符號’*’代表乘法,符號’/’代表除法。得到vl和v2之后根據(jù)以下邏輯判斷得到量化偏移量img->QP_shift(1)如果vl小于0.3且v2小于0.4,或者vl小于0.4且v2小于0.15,或者vl小于0.5且v2小于0.1,則img->QP_shift的值以img->qp為索引值,在表QPshift_table[1]中查找獲得;若條件(1)不滿足則進行以下判斷(2)如果vl大于0.5或者v2大于0.5或者vl*v2大于0.2,則img->QP_shift的值以img->qp為索引值,在表QPshift_table[2]中查找獲得;若條件(1)、⑵都不滿足則img->QP_shift的值以img->qp為索引值,在表QPshift_table中查找獲得。若當前編碼圖像不為當前序列或當前圖像組的第一幅圖像且當前序列或當前圖像組中已有以P幀編碼的圖像則設定兩個參數(shù),記為第一確定值vl和第二確定值v2,vl和v2的計算方法如下vl=img->intra4x4num*5.0/img->intra_num/(img->QP_shift+12);v2=img->pskip_num氺1.0/img->pnum其中符號’*’代表乘法,符號’/’代表除法。得到vl和v2之后根據(jù)以下邏輯判斷得到量化偏移量img->QP_shift(1)如果vl小于0.3且v2小于0.4,或者vl小于0.4且v2小于0.15,或者vl小于0.5且v2小于0.1,則img->QP_shift的值以img->qp為索引值,在表QPshift_table[1]中查找獲得;若條件(1)不滿足則進行以下判斷(2)如果vl大于0.5或者v2大于0.5或者vl*v2大于0.2,則img->QP_shift的值以img->qp為索引值,在表QPshift_table[2]中查找獲得;若條件(1)、⑵都不滿足則img->QP_shift的值以img->qp為索引值,在表QPshift_table中查找獲得。得到量化偏移量img->QP_shift之后,再根據(jù)編碼端預先存儲好的表格得到率失真優(yōu)化模型(rate-distortionoptimization)中的第一變換所對應的權重系數(shù)lambda。該表格記為QP_lambda_table_4X4,在本實施例中包含有16個元素。第一種變換中使用幀內編碼圖像塊的lambda記為img->lambda4X4I,使用幀間預測模式的圖像塊的lambda記為img->lambda4x4p,img->lambda4x4I禾口img_>lambda4x4p白勺計算方^去為img->lambda4x4I=QP_1ambda_tab1e_4x4[img->QP_shift]img->lambda4x4p=img->lambda4x4I*0.9QP_lambda_table_4x4的表現(xiàn)形式如下QP_lambda_table_4x4[16]={1.0,1.1,1.3,1.5,1.8,2.1,2.6,3.1,3.5,4.0,4.6,5.1,5.7,6.3,100,100}若當前待編碼圖像為P幀,則img_>QP_shift設為5,img->lambda4x4p設為1.6。若當前待編碼圖像為B幀,則img->QP_shift設為5。通過上述方法得到img->QP_shift后,根據(jù)第二變換的參數(shù)(即第二變換的量化點)計算得到第一變換的量化點,具體方法為將第二變換的量化點減去所述量化偏移量作為第一變換的量化點。利用計算所得的第一變換的量化點對經(jīng)第一變換后的數(shù)據(jù)進行量化。將量化偏移量img->QP_shift寫進編碼碼流中。本實施例十還相應提供了一種編碼裝置,可以用于執(zhí)行實施例九提供的編碼方法,如圖15所示,所述編碼裝置包括第三接收單元,用于接收待變換的數(shù)據(jù)和已編碼參數(shù)信息;第三變換單元,用于對所述第三接收單元接收的待變換的數(shù)據(jù)進行第一變換,得到第一變換后的數(shù)據(jù);第三調整單元,用于根據(jù)第三接收單元接收的已編碼參數(shù)信息和第二變換的參數(shù)確定調整參數(shù),根據(jù)所述調整參數(shù)和所述第二變換的參數(shù)調整所述第三變換單元得到的第一變換后的數(shù)據(jù);第三寫單元,用于將所述第三調整單元得到的調整參數(shù)寫入編碼碼流中。本實施例中第三接收單元接收待變換的數(shù)據(jù)和已編碼參數(shù)信息。第三變換單元對所述待變換的數(shù)據(jù)進行第一變換,得到第一變換后的數(shù)據(jù),第三調整單元根據(jù)已編碼參數(shù)信息和第二變換參數(shù)確定調整參數(shù)。這里所述第二變換參數(shù)為第二變換所對應的量化點,所述調整參數(shù)為量化偏移量。所述已編碼參數(shù)信息包括使用第一變換的幀內預測圖像塊數(shù)目,使用第二變換的幀內預測圖像塊數(shù)目,所有使用幀內預測圖像塊的數(shù)目,P幀或B幀中使用第一變換的幀內預測圖像塊數(shù)目,P幀和B幀中使用第一變換的幀內預測圖像塊數(shù)目,P幀或B幀中使用第二變換幀內預測圖像塊的數(shù)目,P幀和B幀中使用第二變換幀內預測圖像塊的數(shù)目,P幀和B幀中使用幀內預測圖像塊的數(shù)目,P幀中使用跳過模式或直接模式的圖像塊的數(shù)目,P幀中使用跳過模式和直接模式的圖像塊的數(shù)目,B幀中使用跳過模式或直接模式的圖像塊的數(shù)目,B幀中使用跳過模式和直接模式的圖像塊的數(shù)目,P幀中使用幀間預測模式圖像塊的數(shù)目,或B幀中使用幀間預測模式圖像塊的數(shù)目中的一種或多種。其中跳過模式為視頻編解碼中常用技術,其含義為根據(jù)已編碼或已解碼圖像塊信息得到當前圖像塊運動矢量,并且該圖像塊中沒有編碼殘差;直接模式含義為根據(jù)已編碼或已解碼圖像塊信息得到當前圖像塊運動矢量,但該圖像塊中含有編碼殘差。第三調整單元根據(jù)上述的已編碼信息和第二變換的量化點計算得到量化偏移量,再根據(jù)量化偏移量和第二變換的量化點計算得到第一變換的量化點,并利用得到的第一變換的量化點對第一變換后的數(shù)據(jù)進行量化(根據(jù)所述調整參數(shù)和所述第二變換的參數(shù)調整所述第三變換單元得到的第一變換后的數(shù)據(jù))。具體計算的步驟可以參考實施例九描述的內容。第三寫單元將量化偏移量寫入編碼碼流中,以便解碼的時候獲得量化偏移量進行解碼操作。實施例九和實施例十根據(jù)已編碼參數(shù)信息及第二變換參數(shù)得到了調整參數(shù)(量化偏移量),使得編碼端具有較好的靈活性。由于編碼端已將計算所得的調整參數(shù)寫入編碼碼流中,因此解碼端僅需從碼流中獲得此調整參數(shù)。此實施例所述方法兼顧了編碼性能同時也不會額外增加解碼端負擔。以上僅為本發(fā)明的較佳實施例而已,并非用于限定本發(fā)明的保護范圍。凡在本發(fā)明的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內。28權利要求一種編碼方法,其特征在于,包括接收待變換的數(shù)據(jù);對所述待變換的數(shù)據(jù)進行第一變換,得到第一變換后的數(shù)據(jù);對所述待變換的數(shù)據(jù)進行第二變換,得到第二變換后的數(shù)據(jù);根據(jù)第一變換后的數(shù)據(jù)和第二變換后的數(shù)據(jù)確定調整參數(shù),根據(jù)所述調整參數(shù)和第二變換的參數(shù)調整所述第一變換后的數(shù)據(jù);將所述調整參數(shù)寫入編碼碼流中。2.根據(jù)權利要求1所述的方法,其特征在于,所述調整參數(shù)包括根據(jù)第一變換后的數(shù)據(jù)和第二變換后的數(shù)據(jù)確定的量化偏移量,所述第二變換的參數(shù)為第二變換的量化點,所述根據(jù)所述調整參數(shù)和第二變換的參數(shù)調整所述第一變換后的數(shù)據(jù)包括將第二變換的量化點減去所述量化偏移量作為第一變換的量化點;利用調整后的第一變換的量化點對經(jīng)第一變換后的數(shù)據(jù)進行量化。3.根據(jù)權利要求1所述的方法,其特征在于,所述調整參數(shù)包括根據(jù)第一變換后的數(shù)據(jù)和第二變換后的數(shù)據(jù)確定的量化偏移量和調整因子;所述第二變換的參數(shù)為第二變換的量化點,所述根據(jù)所述調整參數(shù)和所述第二變換的參數(shù)調整所述第一變換后的數(shù)據(jù)包括將經(jīng)第一變換后的數(shù)據(jù)乘以所述調整因子,并將第二變換的量化點減去所述量化偏移量作為第一變換的量化點;利用所述第一變換的量化點對乘以調整因子后的數(shù)據(jù)進行量化。4.根據(jù)權利要求1所述的方法,其特征在于,所述調整參數(shù)包括根據(jù)第一變換后的數(shù)據(jù)和第二變換后的數(shù)據(jù)確定的調整系數(shù)和量化移位偏移量;所述第二變換的參數(shù)包括對第二變換的量化點的移位數(shù);所述根據(jù)所述調整參數(shù)和第二變換的參數(shù)調整所述第一變換后的數(shù)據(jù)包括將經(jīng)第一變換后的數(shù)據(jù)乘以所述調整系數(shù),并利用第一變換的量化點的移位位數(shù)對所述與調整系數(shù)相乘后的數(shù)據(jù)進行量化;所述第一變換的量化點的移位位數(shù)為第二變換的量化點的移位位數(shù)與所述量化移位偏移量之和。5.根據(jù)權利要求1所述的方法,其特征在于,所述調整參數(shù)包括根據(jù)第一變換后的數(shù)據(jù)和第二變換后的數(shù)據(jù)確定的調整因子和系數(shù)偏移量,所述根據(jù)所述調整參數(shù)和第二變換的參數(shù)調整所述第一變換后的數(shù)據(jù)包括將經(jīng)第一變換后的數(shù)據(jù)乘以所述調整因子,再加上所述系數(shù)偏移量并進行量化。6.根據(jù)權利要求1-5任一項所述的方法,其特征在于,所述將所述調整參數(shù)寫入編碼碼流中包括將所述調整參數(shù)寫入編碼碼流中的序列頭或圖像頭或條帶頭或宏塊頭中。7.一種解碼方法,其特征在于,包括接收碼流,對所述碼流進行解碼,獲得第一變換后的數(shù)據(jù)和調整參數(shù);根據(jù)所述調整參數(shù)和第二變換的參數(shù)調整所述第一變換后的數(shù)據(jù)。8.根據(jù)權利要求7所述的方法,其特征在于,所述調整參數(shù)為量化偏移量,所述第二變換的參數(shù)為第二變換的量化點,所述根據(jù)所述調整參數(shù)和所述第二變換的參數(shù)對第一變換后的數(shù)據(jù)調整包括利用第一變換的量化點對所述第一變換后的數(shù)據(jù)進行反量化,并對反量化結果進行反2變換;所述第一變換的量化點為所述第二變換的量化點減去所述量化偏移量。9.根據(jù)權利要求7所述的方法,其特征在于,所述調整參數(shù)包括量化偏移量和對第一變換后數(shù)據(jù)的調整因子;所述第二變換的參數(shù)為第二變換的量化點;所述根據(jù)所述調整參數(shù)和第二變換的參數(shù)調整所述第一變換后的數(shù)據(jù)包括利用第一變換對應的量化點對第一變換后的數(shù)據(jù)進行反量化,對反量化結果與所述調整因子之商進行反變換;所述第一變換的量化點為所述第二變換的量化點減去所述量化偏移量。10.根據(jù)權利要求7所述的方法,其特征在于,所述調整參數(shù)包括第一變換的調整系數(shù)和對第一變換數(shù)據(jù)的量化移位偏移量;所述第二變換的參數(shù)包括對第二變換數(shù)據(jù)的量化點的移位數(shù);所述根據(jù)所述調整參數(shù)和第二變換的參數(shù)調整所述第一變換后的數(shù)據(jù)包括將所述第二變換的量化點的移位位數(shù)減去所述量化移位偏移量作為第一變換的量化點的移位位數(shù);利用所述第一變換的量化點的移位位數(shù)對接收到第一變換后的數(shù)據(jù)進行反量化;對反量化結果與所述調整系數(shù)之商進行反變換。11.根據(jù)權利要求7-10任一項所述的方法,其特征在于,所述調整參數(shù)包括系數(shù)偏移量和對第一變換后數(shù)據(jù)的調整因子;所述根據(jù)所述調整參數(shù)和所述第二變換的參數(shù)調整所述第一變換后的數(shù)據(jù)包括根據(jù)所述第一變換的量化步長對接收到的數(shù)據(jù)進行反量化,并對反量化結果減去所述系數(shù)偏移量,將所述相減結果與所述調整因子之商進行反變換。12.根據(jù)權利要求7-10任一項所述的方法,其特征在于,所述調整參數(shù)從所述碼流中的序列頭或圖像頭或條帶頭或宏塊頭中獲得。13.根據(jù)權利要求7-10任一項所述的方法,其特征在于,所述第一變換為4x4變換,所述第二變換為8x8變換。14.一種編碼裝置,其特征在于,包括數(shù)據(jù)接收單元,用于接收待變換的數(shù)據(jù);變換單元,用于對接收單元接收到的所述待變換的數(shù)據(jù)進行第一變換,得到第一變換后的數(shù)據(jù);對所述待變換的數(shù)據(jù)進行第二變換,得到第二變換后的數(shù)據(jù);第一調整單元,根據(jù)第一變換后的數(shù)據(jù)和第二變換后的數(shù)據(jù)確定調整參數(shù),根據(jù)所述調整參數(shù)和第二變換的參數(shù)調整所述第一變換后的數(shù)據(jù);寫單元,用于將所述調整參數(shù)寫入編碼碼流中。15.如權利要求14所述的編碼裝置,其特征在于,所述調整參數(shù)為根據(jù)第一變換后的數(shù)據(jù)和第二變換后的數(shù)據(jù)確定的量化偏移量,所述第二變換的參數(shù)為第二變換的量化點,所述第一調整單元用于將第二變換的量化點減去所述量化偏移量作為第一變換的量化點,利用調整后的第一變換的量化點對經(jīng)第一變換后的數(shù)據(jù)進行量化。16.一種解碼裝置,其特征在于,包括碼流接收單元,用于接收碼流;解碼單元,對所述碼流進行解碼,獲得第一變換后的數(shù)據(jù)和調整參數(shù);第二調整單元,用于根據(jù)所述調整參數(shù)和第二變換的參數(shù)調整第一變換后的數(shù)據(jù)。17.如權利要求16所述的解碼裝置,其特征在于,所述調整參數(shù)為量化偏移量,所述第二變換的參數(shù)為第二變換的量化點,所述第二調整單元用于利用第一變換的量化點對所述第一變換后的數(shù)據(jù)進行反量化,并對反量化結果進行反變換;其中,所述第一變換的量化點為所述第二變換的量化點減去所述量化偏移量。18.—種編碼方法,其特征在于,包括接收待變換的數(shù)據(jù)和已編碼參數(shù)信息;對所述待變換的數(shù)據(jù)進行第一變換,得到第一變換后的數(shù)據(jù);根據(jù)已編碼參數(shù)信息和第二變換的參數(shù)確定調整參數(shù),根據(jù)所述調整參數(shù)和所述第二變換的參數(shù)調整所述第一變換后的數(shù)據(jù);將所述調整參數(shù)寫入編碼碼流中。19.根據(jù)權利要求18所述的方法,其特征在于,所述調整參數(shù)包括根據(jù)已編碼參數(shù)信息和所述第二變換的參數(shù)確定的量化偏移量,所述第二變換的參數(shù)為第二變換的量化點,所述根據(jù)所述調整參數(shù)和第二變換的參數(shù)調整所述第一變換后的數(shù)據(jù)包括將第二變換的量化點減去所述量化偏移量作為第一變換的量化點;利用調整后的第一變換的量化點對經(jīng)第一變換后的數(shù)據(jù)進行量化。20.根據(jù)權利要求18所述方法,其特征在于,所述已編碼參數(shù)信息包括當前序列或當前圖像組中編碼當前圖像之前已經(jīng)得到的統(tǒng)計數(shù)據(jù),所述統(tǒng)計數(shù)據(jù)包括使用第一變換的幀內預測圖像塊數(shù)目,使用第二變換的幀內預測圖像塊數(shù)目,所有使用幀內預測圖像塊的數(shù)目,P幀或B幀中使用第一變換的幀內預測圖像塊數(shù)目,P幀和B幀中使用第一變換的幀內預測圖像塊數(shù)目,P幀或B幀中使用第二變換幀內預測圖像塊的數(shù)目,P幀和B幀中使用第二變換幀內預測圖像塊的數(shù)目,P幀和B幀中使用幀內預測圖像塊的數(shù)目,P幀中使用跳過模式或直接模式的圖像塊的數(shù)目,P幀中使用跳過模式和直接模式的圖像塊的數(shù)目,B幀中使用跳過模式或直接模式的圖像塊的數(shù)目,B幀中使用跳過模式和直接模式的圖像塊的數(shù)目,P幀中使用幀間預測模式圖像塊的數(shù)目或B幀中使用幀間預測模式圖像塊的數(shù)目中的一種或多種。21.一種編碼裝置,其特征在于,包括第三接收單元,用于接收待變換的數(shù)據(jù)和已編碼參數(shù)信息;第三變換單元,用于對所述第三接收單元接收的待變換的數(shù)據(jù)進行第一變換,得到第一變換后的數(shù)據(jù);第三調整單元,用于根據(jù)第三接收單元接收的已編碼參數(shù)信息和第二變換的參數(shù)確定調整參數(shù),根據(jù)所述調整參數(shù)和所述第二變換的參數(shù)調整所述第三變換單元得到的第一變換后的數(shù)據(jù);第三寫單元,用于將所述第三調整單元得到的調整參數(shù)寫入編碼碼流中。22.如權利要求21所述的編碼裝置,其特征在于,所述調整參數(shù)包括根據(jù)已編碼參數(shù)信息和所述第二變換的參數(shù)確定的量化偏移量,所述第二變換的參數(shù)為第二變換的量化點,所述第三調整單元用于將第二變換的量化點減去所述量化偏移量作為第一變換的量化點,利用調整后的第一變換的量化點對經(jīng)第一變換后的數(shù)據(jù)進行量化。全文摘要本發(fā)明實施例公開了一種編碼方法,包括接收待變換的數(shù)據(jù);對所述待變換的數(shù)據(jù)進行第一變換,得到第一變換后的數(shù)據(jù);對所述待變換的數(shù)據(jù)進行第二變換,得到第二變換后的數(shù)據(jù);根據(jù)第一變換后的數(shù)據(jù)和第二變換后的數(shù)據(jù)確定調整參數(shù),根據(jù)所述調整參數(shù)和第二變換的參數(shù)調整所述第一變換后的數(shù)據(jù);將所述調整參數(shù)寫入編碼碼流中。本發(fā)明實施例還公開了一種編碼裝置,以及解碼方法和裝置。應用本發(fā)明實施例,能夠使圖像數(shù)據(jù)經(jīng)不同變換后的數(shù)值范圍保持一致,從而在應用自適應塊變換技術時,能夠真實反映變換對數(shù)據(jù)的影響,來選擇效果較優(yōu)的變換,進而提高編碼效率。文檔編號H04N7/30GK101888556SQ20101023313公開日2010年11月17日申請日期2008年3月19日優(yōu)先權日2008年3月19日發(fā)明者何蕓,武燕楠,鄭建鏵,鄭蕭楨申請人:華為技術有限公司;清華大學