用于編碼和解碼圖像的方法、編碼和解碼設(shè)備、以及相應(yīng)的計(jì)算機(jī)程序的制作方法
【專利摘要】本發(fā)明涉及一種用于對(duì)被劃分為多個(gè)分區(qū)的至少一個(gè)圖像進(jìn)行編碼的方法,將被編碼的當(dāng)前分區(qū)包含數(shù)據(jù),所述數(shù)據(jù)中至少10減1個(gè)數(shù)據(jù)項(xiàng)被分配符號(hào)。該編碼方法的特征在于,針對(duì)所述當(dāng)前分區(qū),實(shí)現(xiàn)下列步驟:計(jì)算(S3)表示所述當(dāng)前分區(qū)的除了所述符號(hào)外的數(shù)據(jù)的函數(shù)的值;將所述已計(jì)算的值與所述符號(hào)的預(yù)定值進(jìn)行比較(S4);基于所述比較的結(jié)果,調(diào)整或不調(diào)整(S5)所述當(dāng)前分區(qū)的數(shù)據(jù)項(xiàng)中的至少一個(gè);以及在調(diào)整的情況下,對(duì)所述至少一個(gè)(20)已調(diào)整的數(shù)據(jù)項(xiàng)進(jìn)行編碼(S20)。
【專利說(shuō)明】用于編碼和解碼圖像的方法、編碼和解碼設(shè)備、以及相應(yīng)的計(jì)算機(jī)程序
【技術(shù)領(lǐng)域】
[0001]本發(fā)明主要屬于圖像處理領(lǐng)域,且具體而言屬于數(shù)字圖像和數(shù)字圖像序列的編碼和解碼。
[0002]由此,本發(fā)明尤其可應(yīng)用于由目前的視頻編碼器(MPEG、H.264等)或未來(lái)的視頻編碼器(ITU-T/VCEG0L 265)或ISO/MPEG(HEVC))實(shí)現(xiàn)的視頻編碼。
【背景技術(shù)】
[0003]目前的視頻編碼器(MPEG、H.264等)使用視頻序列的分塊表示。圖像被分為多個(gè)宏塊,每個(gè)宏塊本身被分為多個(gè)塊,并且每個(gè)塊或每個(gè)宏塊通過(guò)圖像內(nèi)或圖像間預(yù)測(cè)來(lái)編碼。于是,某些圖像通過(guò)空間預(yù)測(cè)(幀內(nèi)預(yù)測(cè))來(lái)編碼,而其它圖像借助于本領(lǐng)域技術(shù)人員已知的運(yùn)動(dòng)補(bǔ)償通過(guò)相對(duì)于一個(gè)或多個(gè)編碼-解碼參考圖像的時(shí)間預(yù)測(cè)(幀間預(yù)測(cè))進(jìn)行編碼。
[0004]對(duì)于每個(gè)塊,存在與由預(yù)測(cè)所減掉的原始?jí)K相對(duì)應(yīng)的、還被稱為預(yù)測(cè)殘留的已編碼的殘留塊。殘留塊通過(guò)離散余弦變換(DCT)類型的變換來(lái)變換,然后借助于例如標(biāo)量類型的量化來(lái)量化。在量化步驟結(jié)束后得到系數(shù),所述系數(shù)中一些是正的而其它的是負(fù)的。然后以讀的順序,通常為之字形(和JPEG標(biāo)準(zhǔn)一樣)來(lái)遍歷系數(shù),由此可利用高頻中的大量零系數(shù)。在上述遍歷結(jié)束后,得到系數(shù)的一維列表,其可被稱為“量化殘留”。然后通過(guò)熵編碼來(lái)對(duì)該列表的系數(shù)進(jìn)行編碼。
[0005]熵編碼(例如算術(shù)編碼或霍夫曼編碼類型)以如下方式執(zhí)行:
[0006]-信息項(xiàng)被熵編碼,以表示列表中的最后的非零系數(shù)的位置,
[0007]-針對(duì)位于最后的非零系數(shù)之前的每個(gè)系數(shù),信息項(xiàng)被熵編碼以表示系數(shù)是否為零,
[0008]-針對(duì)之前所表示的每個(gè)非零系數(shù),信息項(xiàng)被熵編碼以表示系數(shù)是否等于1,
[0009]-針對(duì)位于最后的非零系數(shù)之前的、不等于I的每個(gè)非零系數(shù),幅度信息項(xiàng)(系數(shù)的絕對(duì)值,其值被減少2)被熵編碼,
[0010]-針對(duì)每個(gè)非零系數(shù),分配給該系數(shù)的符號(hào)由“O”(用于+符號(hào))或“I”(用于-符號(hào))編碼。
[0011]根據(jù)例如H.264技術(shù),在宏塊被分為多個(gè)塊時(shí),與每個(gè)塊對(duì)應(yīng)的數(shù)據(jù)信號(hào)被發(fā)送給解碼器。該信號(hào)包括:
[0012]-在上述列表中包含的量化殘留,
[0013]-表示所使用的編碼模式的信息,特別是:
[0014].預(yù)測(cè)模式(幀內(nèi)預(yù)測(cè)、幀間預(yù)測(cè)、默認(rèn)預(yù)測(cè),其進(jìn)行沒(méi)有信息項(xiàng)被發(fā)送到解碼器的預(yù)測(cè)(被稱為“跳過(guò)));
[0015].指定預(yù)測(cè)類型的信息(方向、參考圖像等);
[0016].分區(qū)類型;[0017].變換類型,例如 4X4DCT、8X8DCT 等;
[0018]?運(yùn)動(dòng)信息,如果有必要的話;
[0019].等等。
[0020]逐個(gè)圖像以及針對(duì)每個(gè)圖像逐個(gè)宏塊地執(zhí)行解碼。針對(duì)宏塊的每個(gè)分區(qū),讀取流的相應(yīng)元素。執(zhí)行塊的系數(shù)的反量化和逆變換,以生成解碼的預(yù)測(cè)殘留。然后,計(jì)算該分區(qū)的預(yù)測(cè)并通過(guò)將預(yù)測(cè)加到被解碼的預(yù)測(cè)殘留來(lái)重構(gòu)該分區(qū)。
[0021]由此,如H.264標(biāo)準(zhǔn)所實(shí)現(xiàn)的,通過(guò)競(jìng)爭(zhēng)實(shí)現(xiàn)的幀內(nèi)編碼或幀間編碼依賴于將例如上述那些編碼信息項(xiàng)之類的各個(gè)編碼信息項(xiàng)與選擇最佳模式的目標(biāo)進(jìn)行競(jìng)爭(zhēng),也就是說(shuō),該最佳模式能根據(jù)預(yù)定的性能標(biāo)準(zhǔn)例如本領(lǐng)域技術(shù)人員眾所周知的比特率/失真成本來(lái)使所討論分區(qū)的編碼最優(yōu)化。
[0022]表示被選中編碼模式的信息被包含在由編碼器發(fā)送到解碼器的數(shù)據(jù)信號(hào)中。解碼器由此能夠識(shí)別在編碼器上被選中的編碼模式,然后能夠根據(jù)該模式應(yīng)用預(yù)測(cè)。
[0023]文檔"Data Hiding of Mot1n Informat1n in Chroma and Luma Samples forVideo Compress1n", J.-M.Thiesse, J.Jung and M.Antonini, Internat1nal workshop onmultimedia signal processing, 2011介紹了一種在視頻壓縮期間實(shí)現(xiàn)的數(shù)據(jù)隱藏方法。
[0024]更準(zhǔn)確地說(shuō),建議避免在要被發(fā)送到解碼器的信號(hào)中包含至少一個(gè)競(jìng)爭(zhēng)指數(shù),所述至少一個(gè)競(jìng)爭(zhēng)指數(shù)例如出現(xiàn)在要被發(fā)送的多個(gè)競(jìng)爭(zhēng)指數(shù)中。這樣的指數(shù)例如是指數(shù)MVComp,其表示可標(biāo)識(shí)運(yùn)動(dòng)矢量預(yù)測(cè)器的信息項(xiàng),該預(yù)測(cè)器用于在幀間預(yù)測(cè)模式下預(yù)測(cè)的塊??傻扔贠或I的該指數(shù)未被直接寫(xiě)入編碼數(shù)據(jù)信號(hào)中,而是通過(guò)量化殘留的系數(shù)之和的奇偶校驗(yàn)來(lái)傳輸。在量化殘留的奇偶性和指數(shù)MVComp之間建立關(guān)聯(lián)。通過(guò)示例,量化殘留的偶數(shù)值與值為O的指數(shù)MVComp關(guān)聯(lián),而量化殘留的奇數(shù)值與值為I的指數(shù)MVComp關(guān)聯(lián)。會(huì)出現(xiàn)兩種情形。在第一種情形中,如果量化殘留的奇偶性已經(jīng)對(duì)應(yīng)于所期望發(fā)送的指數(shù)MVComp的奇偶性,則以傳統(tǒng)方式對(duì)量化殘留編碼。在第二種情形中,如果量化殘留的奇偶性與所期望發(fā)送的指數(shù)MVComp的奇偶性不同,則以使量化殘留的奇偶性與指數(shù)MVComp的奇偶性相同的方式來(lái)對(duì)量化殘留進(jìn)行調(diào)整。該調(diào)整在于將量化殘留的一個(gè)或多個(gè)系數(shù)增加或減少奇數(shù)值(例如+1、-1、+3、_3、+5、-5等),并且僅保留使預(yù)定標(biāo)準(zhǔn)最優(yōu)化的調(diào)整,在該情形中,所述預(yù)定標(biāo)準(zhǔn)為前述比特率-失真成本。
[0025]在解碼器上,不從信號(hào)讀取指數(shù)MVComp。解碼器通過(guò)傳統(tǒng)地確定殘留來(lái)簡(jiǎn)單地勉強(qiáng)使用。如果該殘留的值是偶數(shù),則指數(shù)MVComp被設(shè)置為O。如果該殘留的值是奇數(shù),指數(shù)MVComp被設(shè)置為I。
[0026]根據(jù)剛才介紹的技術(shù),不會(huì)總是以最優(yōu)的方式選擇已調(diào)整的系數(shù),從而所應(yīng)用的調(diào)整給要發(fā)送到解碼器的信號(hào)帶來(lái)了干擾。這樣的干擾對(duì)于視頻壓縮的效率必然有害。
[0027]此外,指數(shù)MVComp不會(huì)構(gòu)成要隱藏的信息的最有益項(xiàng),因?yàn)樵撝笖?shù)等于O或I的概率是不相等的。因此,如果該指數(shù)以傳統(tǒng)方式通過(guò)熵編碼來(lái)編碼,則在發(fā)送到解碼器的壓縮文件中,將由比所發(fā)送的每個(gè)指數(shù)MVcomp —個(gè)比特更少量的數(shù)據(jù)來(lái)表示該指數(shù)。于是,如果在量化殘留的奇偶校驗(yàn)中發(fā)送指數(shù)MVComp,則由此節(jié)省的數(shù)據(jù)量小于每個(gè)指數(shù)MVComp—個(gè)比特時(shí)節(jié)省的數(shù)據(jù)量,而殘留的奇偶性使其能夠傳輸每個(gè)指數(shù)一比特的信息項(xiàng)。
[0028]于是,信令成本的降低以及壓縮效率不是最優(yōu)的。
【發(fā)明內(nèi)容】
[0029]本發(fā)明的一個(gè)目標(biāo)是糾正上述現(xiàn)有技術(shù)中的缺陷。
[0030]為此,本發(fā)明的目標(biāo)涉及一種用于對(duì)被劃分為多個(gè)分區(qū)的至少一個(gè)圖像進(jìn)行編碼的方法,將被編碼的當(dāng)前分區(qū)包含數(shù)據(jù),所述數(shù)據(jù)中的至少一個(gè)數(shù)據(jù)項(xiàng)被分配符號(hào)。
[0031]根據(jù)本發(fā)明的方法值得注意的是,它針對(duì)所述當(dāng)前分區(qū)實(shí)現(xiàn)下列步驟:
[0032]-計(jì)算表示所述當(dāng)前分區(qū)的除了符號(hào)以外的數(shù)據(jù)的函數(shù)的值,
[0033]-將所述已計(jì)算的值與所述符號(hào)的預(yù)定值進(jìn)行比較,
[0034]-根據(jù)比較的結(jié)果,調(diào)整或不調(diào)整所述當(dāng)前分區(qū)的數(shù)據(jù)中的至少一個(gè),
[0035]-在調(diào)整的情形下,對(duì)所述至少一個(gè)已調(diào)整的數(shù)據(jù)項(xiàng)進(jìn)行編碼。
[0036]這樣的布置使其可有利地將數(shù)據(jù)隱藏技術(shù)應(yīng)用于要被編碼的分區(qū)的數(shù)據(jù)的符號(hào)。由于正符號(hào)或負(fù)符號(hào)出現(xiàn)的概率是相同的這一事實(shí),所以該符號(hào)實(shí)際上是與隱藏特別相關(guān)的信息項(xiàng)。因此,假設(shè)需要用一比特來(lái)對(duì)符號(hào)編碼,由此可能通過(guò)隱藏該信息項(xiàng)來(lái)節(jié)省要發(fā)送到解碼器的信號(hào)中的一個(gè)比特,由此充分降低信令成本。
[0037]需要注意的是,在與圖像數(shù)據(jù)項(xiàng)關(guān)聯(lián)的信息(符號(hào)、幅度等)中,它們中的很少是等概率的。符號(hào)是等概率的信息項(xiàng),因此隱藏該類型的信息項(xiàng)有特別的好處,由此可增加壓縮性能。
[0038]在特定的實(shí)施例中,在上述比較步驟中考慮多個(gè)符號(hào)的情形下,該比較步驟包括將表示當(dāng)前分區(qū)的數(shù)據(jù)的函數(shù)的所計(jì)算的值與表示所述多個(gè)符號(hào)的函數(shù)的值進(jìn)行比較。
[0039]該布置可優(yōu)化算術(shù)編碼器的壓縮性能,同時(shí)優(yōu)化信令成本的降低,因?yàn)樗稍谝l(fā)送到解碼器的信號(hào)中隱藏若干個(gè)符號(hào)。
[0040]相關(guān)地,本發(fā)明涉及一種用于對(duì)被劃分為多個(gè)分區(qū)的至少一個(gè)圖像進(jìn)行編碼的設(shè)備,將被編碼的當(dāng)前分區(qū)包含數(shù)據(jù),所述數(shù)據(jù)中至少一個(gè)數(shù)據(jù)項(xiàng)被分配符號(hào)。
[0041]該設(shè)備值得注意的是,針對(duì)所述要編碼的當(dāng)前分區(qū),它包括處理裝置,其能夠:
[0042]-計(jì)算表示所述當(dāng)前分區(qū)的除了符號(hào)以外的數(shù)據(jù)的函數(shù)的值,
[0043]-將所述已計(jì)算的值與所述符號(hào)的預(yù)定值進(jìn)行比較,
[0044]-根據(jù)所述比較的結(jié)果,調(diào)整或不調(diào)整所述當(dāng)前分區(qū)的數(shù)據(jù)中的至少一個(gè),
[0045]并且其中所述設(shè)備包括在由所述處理裝置調(diào)整的情形中用于對(duì)至少一個(gè)已調(diào)整的數(shù)據(jù)項(xiàng)進(jìn)行編碼的裝置。
[0046]相應(yīng)地,本發(fā)明還涉及一種用于對(duì)表示之前已被編碼的劃分為多個(gè)分區(qū)的至少一個(gè)圖像的數(shù)據(jù)信號(hào)進(jìn)行解碼的方法,將被解碼的當(dāng)前分區(qū)包含數(shù)據(jù),所述數(shù)據(jù)中至少一個(gè)數(shù)據(jù)項(xiàng)被分配符號(hào),
[0047]該解碼方法值得注意的是,針對(duì)當(dāng)前分區(qū),它包括下列步驟:
[0048]-對(duì)所述當(dāng)前分區(qū)的除了所述符號(hào)以外的數(shù)據(jù)進(jìn)行解碼,
[0049]-計(jì)算表示所述當(dāng)前分區(qū)的已解碼數(shù)據(jù)的函數(shù)的值,
[0050]-基于所述已計(jì)算的值來(lái)獲取所述符號(hào)的值。
[0051]在特定的實(shí)施例中,基于所計(jì)算的值來(lái)獲取與多個(gè)符號(hào)分別關(guān)聯(lián)的多個(gè)值。
[0052]相關(guān)地,本發(fā)明涉及一種用于對(duì)表示之前已被編碼的被劃分為多個(gè)分區(qū)的至少一個(gè)圖像的數(shù)據(jù)信號(hào)進(jìn)行解碼的設(shè)備,將被解碼的當(dāng)前分區(qū)包含數(shù)據(jù),所述數(shù)據(jù)中的至少一個(gè)數(shù)據(jù)項(xiàng)被分配符號(hào)。
[0053]該解碼設(shè)備值得注意的是,針對(duì)被解碼的所述當(dāng)前分區(qū),它包括處理裝置,其能夠:
[0054]-對(duì)所述當(dāng)前分區(qū)的除了所述符號(hào)以外的數(shù)據(jù)進(jìn)行解碼,
[0055]-計(jì)算表示所述當(dāng)前分區(qū)的已解碼數(shù)據(jù)的函數(shù)的值,
[0056]-基于所述已計(jì)算的值來(lái)獲取所述符號(hào)的值。
[0057]本發(fā)明目標(biāo)還在于一種包含指令的計(jì)算機(jī)程序,在計(jì)算機(jī)上執(zhí)行該程序時(shí),該指令用于執(zhí)行以上編碼或解碼方法的步驟。
[0058]該程序可以使用任何編程語(yǔ)言并且可以是源代碼、目標(biāo)代碼或介于源代碼與目標(biāo)代碼之間的代碼的形式,例如部分編譯的形式或任何其它期望的形式。
[0059]本發(fā)明的又一主題還在于一種記錄介質(zhì),其可被計(jì)算機(jī)讀取并包含如上所述的計(jì)算程序的指令。
[0060]該記錄介質(zhì)可以是能夠存儲(chǔ)程序的任意實(shí)體或設(shè)備。例如,該介質(zhì)可以包括諸如ROM之類的存儲(chǔ)介質(zhì),例如CD-ROM或微電子電路R0M,或者磁記錄介質(zhì),例如磁盤(pán)(軟盤(pán))或硬盤(pán)。
[0061]此外,該記錄介質(zhì)可以是諸如電信號(hào)或光信號(hào)之類的可傳輸介質(zhì),其可以經(jīng)電纜或光纜通過(guò)無(wú)線電或通過(guò)其它方式來(lái)傳遞。根據(jù)本發(fā)明的程序可以特別地從因特網(wǎng)類型的網(wǎng)絡(luò)來(lái)下載。
[0062]或者,該記錄介質(zhì)可以是其中包含有程序的集成電路,該電路適于執(zhí)行所討論的方法或適于在該方法執(zhí)行時(shí)使用。
[0063]所述編碼設(shè)備、解碼方法、解碼設(shè)備和前述計(jì)算機(jī)程序至少表現(xiàn)出與根據(jù)本發(fā)明的編碼方法所具有的優(yōu)勢(shì)相同的優(yōu)勢(shì)。
【專利附圖】
【附圖說(shuō)明】
[0064]通過(guò)閱讀參考附圖所描述兩個(gè)優(yōu)選實(shí)施例,其它特征和優(yōu)點(diǎn)將變得明顯,在附圖中:
[0065]-圖1表示根據(jù)本發(fā)明的編碼方法的一般步驟,
[0066]-圖2表示根據(jù)本發(fā)明的能執(zhí)行圖1中的編碼方法的步驟的編碼設(shè)備,
[0067]-圖3表示根據(jù)本發(fā)明的編碼方法的特定實(shí)施例,
[0068]-圖4表示根據(jù)本發(fā)明的編碼設(shè)備的特定實(shí)施例,
[0069]-圖5表示根據(jù)本發(fā)明的解碼方法的一般步驟,
[0070]-圖6表示根據(jù)本發(fā)明的能夠執(zhí)行圖5中的解碼方法的步驟的解碼設(shè)備,
[0071]-圖7表示根據(jù)本發(fā)明的解碼方法的特定實(shí)施例,
[0072]-圖8表示根據(jù)本發(fā)明的解碼設(shè)備的特定實(shí)施例。
【具體實(shí)施方式】
[0073]現(xiàn)在將描述本發(fā)明的一般實(shí)施例,其中,根據(jù)本發(fā)明的編碼方法被用于根據(jù)二進(jìn)制流來(lái)對(duì)圖像序列進(jìn)行編碼,該二進(jìn)制流與通過(guò)根據(jù)H.264/MPEG-4AVC標(biāo)準(zhǔn)來(lái)編碼而獲得的二進(jìn)制流接近。在該實(shí)施例中,根據(jù)本發(fā)明的編碼方法例如以軟件或硬件形式通過(guò)對(duì)初始符合H.264/MPEG-4AVC標(biāo)準(zhǔn)的編碼器的調(diào)整來(lái)實(shí)現(xiàn)。
[0074]根據(jù)本發(fā)明的編碼方法以圖1所示的包含步驟SI到S40的算法的形式來(lái)表示。
[0075]根據(jù)本發(fā)明的實(shí)施例,根據(jù)本發(fā)明的編碼方法在圖2所示的實(shí)施例中的編碼設(shè)備或編碼器CO中實(shí)現(xiàn)。
[0076]根據(jù)本發(fā)明,如圖2中所示,在適當(dāng)?shù)木幋a步驟之前,以預(yù)定順序?qū)⒋幋a的圖像序列中的圖像IE劃分為多個(gè)(Z個(gè))分區(qū)B1、B2、…".ΒΖ。
[0077]應(yīng)當(dāng)注意的是,在本發(fā)明的意義上,術(shù)語(yǔ)“分區(qū)”表示編碼單元。該后一術(shù)語(yǔ)特別用在當(dāng)前正在制定的HEVC/H.265標(biāo)準(zhǔn)中,例如用在下列互聯(lián)網(wǎng)地址可訪問(wèn)的文檔中:
[0078]http://Dhenix.1nt-evry.fr/ict/doc end user/current document, php ? id=3286
[0079]特別地,這種編碼單元將矩形或正方形的像素集合或表現(xiàn)出其它幾何形狀的別的像素集合分組到一起,所述矩形或正方形的像素集合被稱為塊、宏塊。
[0080]在圖2所示的實(shí)例中,所述分區(qū)是具有正方形形狀并且全部具有相同尺寸的塊。根據(jù)圖像的尺寸,該尺寸不一定是塊尺寸的倍數(shù),最左邊的塊以及最底部的塊可以不是正方形。在替代的實(shí)施例 中,塊例如可以是矩形尺寸和/或可以不互相對(duì)齊。
[0081]每個(gè)塊或每個(gè) 宏塊本身可以進(jìn)一步被分為子塊,子塊自己可以再細(xì)分。
[0082]這樣的劃分是通過(guò)圖2所示的分區(qū)模塊PCO來(lái)執(zhí)行的,該分區(qū)模塊PCO使用例如像這樣的分區(qū)模塊所眾所周知的分區(qū)算法。
[0083]在所述劃分步驟之后,對(duì)所述圖像IE的每個(gè)當(dāng)前分區(qū)Bi (其中i是大于等于I且小于等于Z的整數(shù))進(jìn)行編碼。
[0084]在圖2所示的實(shí)例中,對(duì)當(dāng)前圖像IE的塊B1到Bz中的每個(gè)塊相繼實(shí)施這樣的編碼。例如根據(jù)諸如本領(lǐng)域技術(shù)人員眾所周知的“光柵掃描”遍歷之類的遍歷來(lái)對(duì)塊進(jìn)行編碼。
[0085]根據(jù)本發(fā)明的編碼在如圖2所示的編碼器CO的編碼軟件模塊MC_C0中實(shí)現(xiàn)。
[0086]在圖1所示的步驟SI的過(guò)程中,圖2的編碼模塊MC_C0選擇當(dāng)前圖像IE的待編碼的第一塊B1作為當(dāng)前塊Bit5如圖2所示,第一塊B1是圖像IE左邊的第一塊。
[0087]在圖1所示的步驟S2的過(guò)程中,以列表D1 = (B1, a2,…,aP)的形式抽取當(dāng)前塊B1的數(shù)據(jù)。該抽取由如圖2所示的軟件模塊EX_C0執(zhí)行。該數(shù)據(jù)例如是像素?cái)?shù)據(jù),每個(gè)非零像素?cái)?shù)據(jù)被分配有正符號(hào)或負(fù)符號(hào)。
[0088]列表D1中的每個(gè)數(shù)據(jù)與要被熵編碼的各個(gè)數(shù)字信息項(xiàng)相關(guān)聯(lián)。下面通過(guò)示例的方式來(lái)描述這樣的數(shù)字信息項(xiàng):
[0089]-針對(duì)位于列表D1中的最后非零數(shù)據(jù)項(xiàng)之前的每個(gè)數(shù)據(jù)項(xiàng),數(shù)字信息項(xiàng)例如比特將被熵編碼,以表示數(shù)據(jù)項(xiàng)是否為零:如果數(shù)據(jù)項(xiàng)為零,則它例如是將被編碼的值為O的比特,而如果數(shù)據(jù)項(xiàng)不為零,它是將被編碼的值為I的比特;
[0090]-針對(duì)每個(gè)非零數(shù)據(jù)項(xiàng),數(shù)字信息項(xiàng)例如比特要被熵編碼,以表示數(shù)據(jù)項(xiàng)的絕對(duì)值是否等于1:如果它等于1,則它例如是將被編碼的值為I的比特,而如果它不等于1,則它是將被編碼的值為O的比特。
[0091]-針對(duì)每個(gè)非零數(shù)據(jù)項(xiàng),其絕對(duì)值不等于I且位于最后的非零數(shù)據(jù)項(xiàng)之前,則幅度息項(xiàng)被熵編碼;[0092]-針對(duì)每個(gè)非零數(shù)據(jù)項(xiàng),分配給它的符號(hào)被諸如被設(shè)置為“O”的比特的數(shù)字信息項(xiàng)編碼(用于+符號(hào))或諸如被設(shè)置為“I”的比特的數(shù)字信息項(xiàng)編碼(用于-符號(hào))。
[0093]現(xiàn)在將參考圖1來(lái)描述根據(jù)本發(fā)明的特定編碼步驟。
[0094]根據(jù)本發(fā)明,決定避免對(duì)列表D1中的所述數(shù)據(jù)中的一個(gè)的至少一個(gè)符號(hào)進(jìn)行熵編碼。
[0095]根據(jù)優(yōu)選實(shí)施例,要隱藏的是第一非零數(shù)據(jù)項(xiàng)的符號(hào)。該符號(hào)例如是正的并且被分配給第一非零數(shù)據(jù)項(xiàng),例如數(shù)據(jù)項(xiàng)a2。
[0096]在圖1所示的步驟S3的過(guò)程中,處理模塊MTR_C0計(jì)算函數(shù)f的值,其表示列表D1中的數(shù)據(jù)。
[0097]在要發(fā)送到解碼器的信號(hào)中隱藏單個(gè)符號(hào)的優(yōu)選實(shí)施例中,函數(shù)f是列表D1中的數(shù)據(jù)之和的奇偶校驗(yàn)。
[0098]在圖1所示的步驟S4的過(guò)程中,借助之前在編碼器CO定義的規(guī)則,處理模塊MTR_CO驗(yàn)證要隱藏的符號(hào)的值的奇偶性是否對(duì)應(yīng)于列表D1中的數(shù)據(jù)之和的奇偶性。
[0099]在所建議的實(shí)例中,所述規(guī)則是:正符號(hào)與值等于零的比特相關(guān)聯(lián),而負(fù)符號(hào)與值等于I的比特相關(guān)聯(lián)。
[0100]根據(jù)在根據(jù)本發(fā)明的編碼器CO中采用的規(guī)則,如果符號(hào)為正,則由此對(duì)應(yīng)于值為零的編碼比特,并且如果列表D1中的數(shù)據(jù)之和是偶數(shù),則對(duì)上述列表D1中除了第一非零數(shù)據(jù)項(xiàng)a2的符號(hào)以外的數(shù)據(jù)進(jìn)行熵編碼的步驟S20。該步驟S20如圖1所示。
[0101]仍然根據(jù)在根據(jù)本發(fā)明的編碼器CO中采用的規(guī)則,如果符號(hào)為負(fù),則由此對(duì)應(yīng)于值為I的編碼比特,且如果列表D1中的數(shù)據(jù)之和為奇數(shù),則也對(duì)上述列表D1中除了第一非零數(shù)據(jù)項(xiàng)a2的符號(hào)以外的數(shù)據(jù)進(jìn)行熵編碼的步驟S20。
[0102]根據(jù)在根據(jù)本發(fā)明的解碼器CO中采用的規(guī)則,如果符號(hào)為正,則由此對(duì)應(yīng)于值為零的編碼比特,并且如果列表D1的數(shù)據(jù)之和是奇數(shù),則在圖1所示的步驟S5的過(guò)程中,對(duì)列表D1中的至少一個(gè)可調(diào)整數(shù)據(jù)項(xiàng)進(jìn)行調(diào)整。
[0103]仍然根據(jù)在根據(jù)本發(fā)明的解碼器CO中采用的規(guī)則,如果符號(hào)為負(fù),則由此對(duì)應(yīng)于值為I的編碼比特,并且如果列表D1中的數(shù)據(jù)之和是偶數(shù),則也進(jìn)行對(duì)列表D1中的至少一個(gè)可調(diào)整數(shù)據(jù)項(xiàng)的調(diào)整的步驟S5。
[0104]根據(jù)本發(fā)明,如果數(shù)據(jù)項(xiàng)的值的調(diào)整不會(huì)引起解碼器的任意去同步化,一旦該調(diào)整的數(shù)據(jù)項(xiàng)被解碼器處理,則數(shù)據(jù)項(xiàng)是可調(diào)整的。于是,處理模塊MTR_C0被初始配置為不調(diào)整:
[0105]-位于第一非零數(shù)據(jù)項(xiàng)之前的零數(shù)據(jù)項(xiàng)或零數(shù)據(jù),通過(guò)這樣的方式解碼器不會(huì)將隱藏符號(hào)的值分配給該零數(shù)據(jù),
[0106]-并且由于計(jì)算復(fù)雜度的原因,位于最后的非零數(shù)據(jù)項(xiàng)之后的零數(shù)據(jù)項(xiàng)或零數(shù)據(jù)。
[0107]該調(diào)整操作由圖2的處理模塊MTR_C0執(zhí)行。
[0108]在建議的示例性實(shí)施例中,假設(shè)列表D1中的數(shù)據(jù)總和等于5且因此是奇數(shù)。為了使解碼器能夠重構(gòu)分配給第一非零數(shù)據(jù)項(xiàng)a2的正符號(hào)而不用編碼器CO將該數(shù)據(jù)項(xiàng)發(fā)送到解碼器,總和的奇偶性必須變成偶數(shù)。因此,在所述步驟S5的過(guò)程中,處理模塊MTR_C0測(cè)試列表D1中的數(shù)據(jù)的各種調(diào)整,所有的目標(biāo)都是改變數(shù)據(jù)之和的奇偶性。在優(yōu)選實(shí)施例中,+1或-1被加到每個(gè)可調(diào)整數(shù)據(jù)項(xiàng),并根據(jù)預(yù)定的標(biāo)準(zhǔn)從執(zhí)行的那些調(diào)整中選擇調(diào)整。[0109]在步驟S5完成時(shí),于是得到調(diào)整的列表Dm1 = (a u a’ 2,…,a’ P)。
[0110]需要注意的是,在該步驟的過(guò)程中,特定的調(diào)整是被禁止的。于是,在第一非零數(shù)據(jù)項(xiàng)等于+1的情形中,不可能將它加上-1,因?yàn)樗鼤?huì)變成零且然后會(huì)丟失它的列表D1中第一非零數(shù)據(jù)項(xiàng)的特征。解碼器于是隨后將被解碼的符號(hào)(通過(guò)計(jì)算數(shù)據(jù)之和的奇偶性)分配給另一數(shù)據(jù)項(xiàng),且然后將會(huì)出現(xiàn)解碼錯(cuò)誤。
[0111]然后經(jīng)過(guò)對(duì)上述列表Dm1中除了第一非零數(shù)據(jù)項(xiàng)&2的正符號(hào)以外的數(shù)據(jù)進(jìn)行熵編碼的步驟S20,該符號(hào)被隱藏在數(shù)據(jù)之和的奇偶校驗(yàn)中。
[0112]需要注意的是,列表D1或已調(diào)整的列表Dm1中的數(shù)據(jù)的幅度的集合在除了如上解釋的未被編碼的第一非零數(shù)據(jù)項(xiàng)的符號(hào)以外的符號(hào)的集合之前被編碼。
[0113]在圖1所示的下列步驟S30的過(guò)程中,圖2中的編碼模塊MC_C0測(cè)試已編碼的當(dāng)前塊是否是圖像IE中的最后一塊。
[0114]如果當(dāng)前塊是圖像IE中的最后一塊,則在圖1所示的步驟S40的過(guò)程中,編碼方
法結(jié)束。
[0115]如果不是該情形,則選擇下一塊Bi,然后根據(jù)前述光柵掃描遍歷的順序通過(guò)反復(fù)執(zhí)行步驟SI到S20來(lái)對(duì)I < i < Z的塊Bi進(jìn)行編碼。
[0116]一旦已經(jīng)實(shí)現(xiàn)所有塊B1到匕的熵編碼,則構(gòu)造以二進(jìn)制形式來(lái)表示所述已編碼的塊的信號(hào)F。
[0117]二進(jìn)制信號(hào)F的構(gòu)造在圖2所示的流構(gòu)造軟件模塊CF中實(shí)現(xiàn)。
[0118]然后通過(guò)通信網(wǎng)絡(luò)(未示出)將流F發(fā)送到遠(yuǎn)端。所述遠(yuǎn)端包括解碼器,將在下文的描述中進(jìn)一步詳細(xì)描述該解碼器。
[0119]現(xiàn)在將主要參考圖1來(lái)描述本發(fā)明的另一實(shí)施例。
[0120]該另一實(shí)施例與前一個(gè)實(shí)施例的區(qū)別僅在于所要隱藏的符號(hào)的數(shù)量為N,其中N是大于等于2的整數(shù)。
[0121]為此,函數(shù)f是列表D1中的數(shù)據(jù)之和的模2N的余數(shù)。假設(shè)在所建議的實(shí)例中N =2,要隱藏的兩個(gè)符號(hào)是列表D1中的前兩個(gè)非零數(shù)據(jù)的前兩個(gè)符號(hào)例如a2和a3。
[0122]在圖1所示的步驟S4的過(guò)程中,處理模塊MTR_C0驗(yàn)證N個(gè)符號(hào)的配置即2N個(gè)可能的配置是否對(duì)應(yīng)于列表D1中的數(shù)據(jù)之和的模2N的余數(shù)的值。
[0123]在所建議的N = 2的實(shí)例中,存在22 = 4個(gè)不同的符號(hào)配置。
[0124]這四個(gè)配置遵循編碼器CO的規(guī)則,該規(guī)則例如以如下方式確定:
[0125]-等于零的余數(shù)對(duì)應(yīng)于兩個(gè)連續(xù)的正符號(hào):+,+;
[0126]-等于I的余數(shù)對(duì)應(yīng)于連續(xù)的正符號(hào)和負(fù)符號(hào):+,-;
[0127]-等于2的余數(shù)對(duì)應(yīng)于連續(xù)的負(fù)符號(hào)和正符號(hào):_,+;
[0128]-等于3的余數(shù)對(duì)應(yīng)于兩個(gè)連續(xù)的負(fù)符號(hào):_,_。
[0129]如果N個(gè)符號(hào)的配置對(duì)應(yīng)于列表D1中的數(shù)據(jù)之和的模2N的余數(shù)的值,則對(duì)上述列表D1中除了前兩個(gè)非零數(shù)據(jù)&2和&3的符號(hào)以外的數(shù)據(jù)進(jìn)行熵編碼的步驟S20,所述符號(hào)被隱藏在列表D1中的數(shù)據(jù)之和的模2N的奇偶校驗(yàn)中。
[0130] 如果不是該情形,則對(duì)列表D1中的至少一個(gè)可調(diào)整數(shù)據(jù)項(xiàng)進(jìn)行調(diào)整的步驟S5。該調(diào)整由圖2所示的處理模塊MTR_C0以如下這樣的方式執(zhí)行:列表D1中的可調(diào)整數(shù)據(jù)之和的模2N的余數(shù)達(dá)到要隱藏的兩個(gè)符號(hào)中的每個(gè)符號(hào)的值。[0131]由此得到已調(diào)整的列表Dm1 = (a,a,2,…,a,p)。
[0132]然后對(duì)上述列表Dm1中的除了第一非零數(shù)據(jù)項(xiàng)a2的符號(hào)和第二非零數(shù)據(jù)項(xiàng)a3的符號(hào)以外的數(shù)據(jù)進(jìn)行熵編碼的步驟S20,所述符號(hào)被隱藏在數(shù)據(jù)的模2N之和奇偶校驗(yàn)中。
[0133]現(xiàn)在將描述根據(jù)本發(fā)明的特定實(shí)施例,其中,根據(jù)本發(fā)明的編碼方法仍然被用于根據(jù)二進(jìn)制流來(lái)對(duì)圖像序列進(jìn)行編碼,該二進(jìn)制流與通過(guò)根據(jù)H.264/MPEG-4AVC標(biāo)準(zhǔn)來(lái)編碼而獲得的二進(jìn)制流接近。在該實(shí)施例中,根據(jù)本發(fā)明的編碼方法例如以軟件或硬件形式通過(guò)對(duì)初始符合H.264/MPEG-4AVC標(biāo)準(zhǔn)的編碼器的調(diào)整來(lái)實(shí)現(xiàn)。
[0134]根據(jù)本發(fā)明的編碼方法以圖3所示的包含步驟Cl到C40的算法的形式來(lái)表示。
[0135]根據(jù)本發(fā)明的實(shí)施例,編碼方法在圖4所示的實(shí)施例中的編碼設(shè)備或編碼器COl中實(shí)現(xiàn)。
[0136]如圖4所示,根據(jù)本發(fā)明,并且如前面實(shí)例所描述的,在適當(dāng)?shù)木幋a之前,以預(yù)定順序?qū)⒋幋a的圖像序列中的圖像IE劃分為多個(gè)(Zf)分區(qū)B’ i,B’ 2,…,B’ ρ-,Β’ z。
[0137]在圖4所示的實(shí)例中,所述分區(qū)是具有正方形形狀并且全部具有相同尺寸的塊。根據(jù)圖像的尺寸,該尺寸不一定是塊尺寸的倍數(shù),最左邊的塊以及最底部的塊可以不是正方形。在替代的實(shí)施例中,塊例如可以是矩形尺寸和/或可以不互相對(duì)齊。
[0138]每個(gè)塊或每個(gè)宏塊本身可以進(jìn)一步被分為子塊,子塊自己可以再細(xì)分。
[0139]這樣的劃分是通過(guò)圖4所示的分區(qū)軟件模塊PCOl來(lái)執(zhí)行的,該分區(qū)軟件模塊PCOl與圖2所不的劃分模塊PC O相同。
[0140]在所述劃分步驟之后,對(duì)所述圖像IE的每個(gè)當(dāng)前分區(qū)B’ i (其中i是大于等于I且小于等于Z的整數(shù))進(jìn)行編碼。
[0141]在圖4所示的實(shí)例中,對(duì)當(dāng)前圖像IE的塊B’i到B’z中的每個(gè)塊相繼實(shí)施這樣的編碼。例如根據(jù)諸如本領(lǐng)域技術(shù)人員眾所周知的“光柵掃描”遍歷之類的遍歷來(lái)對(duì)塊進(jìn)行編碼。
[0142]根據(jù)本發(fā)明的編碼在如圖4所示的編碼器COl的編碼軟件模塊MC_C01中實(shí)現(xiàn)。
[0143]在圖3所示的步驟Cl的過(guò)程中,圖4的編碼模塊MC_C01選擇當(dāng)前圖像IE的待編碼的第一塊B’ i作為當(dāng)前塊B’ i。如圖4所示,這是圖像IE左邊的第一塊。
[0144]在圖3所示的步驟C2的過(guò)程中,通過(guò)已知的幀內(nèi)預(yù)測(cè)和/或幀間預(yù)測(cè)技術(shù)對(duì)當(dāng)前塊B’ i進(jìn)行預(yù)測(cè)編碼,在該預(yù)測(cè)編碼過(guò)程中,相對(duì)于至少一個(gè)之前被編碼和解碼的塊來(lái)預(yù)測(cè)塊B’ 10該預(yù)測(cè)由圖4所示的預(yù)測(cè)軟件模塊PRED_C01來(lái)執(zhí)行。
[0145]毋庸贅述,諸如H.264標(biāo)準(zhǔn)所建議的模式之類的其它幀內(nèi)預(yù)測(cè)模式是可能的。
[0146]當(dāng)前塊8\還可經(jīng)過(guò)幀間模式的預(yù)測(cè)編碼,在該預(yù)測(cè)編碼過(guò)程中,相對(duì)于來(lái)自之前被編碼和解碼的圖像的塊來(lái)預(yù)測(cè)當(dāng)前塊。當(dāng)然可以想到其它類型的預(yù)測(cè)。在可能用于當(dāng)前塊的預(yù)測(cè)中,根據(jù)本領(lǐng)域技術(shù)人員眾所周知的比特率失真標(biāo)準(zhǔn)來(lái)選擇最優(yōu)預(yù)測(cè)。
[0147]上述預(yù)測(cè)編碼步驟可構(gòu)造已預(yù)測(cè)的塊B’ Pl,其與當(dāng)前塊B’ !近似。與該預(yù)測(cè)編碼相關(guān)的信息將被寫(xiě)入要發(fā)送到解碼器的信號(hào)中。該信息特別包括預(yù)測(cè)類型(幀內(nèi)預(yù)測(cè)或幀間預(yù)測(cè)),并且如果合適的話,包括幀內(nèi)預(yù)測(cè)模式、塊或宏塊(如果宏塊已被細(xì)分)的分區(qū)類型、參考圖像索引以及在幀間預(yù)測(cè)模式中使用的位移矢量。該信息被編碼器COl壓縮。
[0148]在圖3所示的下一步驟C3的過(guò)程中,預(yù)測(cè)模塊PRED_C01將與當(dāng)前塊B’ i相關(guān)的數(shù)據(jù)與已預(yù)測(cè)的塊B’ P1的數(shù)據(jù)進(jìn)行比較。更具體而言,在該步驟的過(guò)程中,按照傳統(tǒng)從當(dāng)前塊B’ 1減去已預(yù)測(cè)的塊B’ P1以產(chǎn)生殘留塊B’ η。
[0149]在圖3所示的下一步驟C4的過(guò)程中,根據(jù)傳統(tǒng)的直接變換操作例如離散余弦變換DCT來(lái)變換殘留塊B’ r1;以產(chǎn)生已變換的塊B’ t10該操作由圖4所示的變換軟件模塊MT_COl來(lái)執(zhí)行。
[0150]在圖3所示的下一步驟C5的過(guò)程中,根據(jù)傳統(tǒng)的量化操作例如標(biāo)量量化來(lái)量化已變換的塊B’h。然后得到已量化系數(shù)的塊B’qi。該步驟通過(guò)圖4所示的量化軟件模塊MQ_COl來(lái)執(zhí)行。
[0151]在圖3所示的下一步驟C6的過(guò)程中,以預(yù)定順序來(lái)遍歷塊B’ Q1的量化系數(shù)。在所示實(shí)例中,這需要傳統(tǒng)的之字形遍歷。該步驟由圖4所示的讀取軟件模塊ML_C01來(lái)執(zhí)行。在步驟C6完成后,得到系數(shù)的一維列表E1 = (ε I, ε2,...,ε L),更一般地被稱為“量化殘留”,其中L是大于或等于I的整數(shù)。列表E1中的每個(gè)系數(shù)與要經(jīng)過(guò)熵編碼的各種數(shù)字信息項(xiàng)相關(guān)聯(lián)。下面通過(guò)實(shí)例來(lái)描述這樣的數(shù)字信息項(xiàng)。 [0152]假設(shè)在所示的實(shí)例中,L = 16并且列表E1包括下列16個(gè)系數(shù)=E1 = (O, +9,_7,O,O, +1, O, -1, +2, O, O, +1, O, O, O, O)。
[0153]在該實(shí)例中:
[0154]-針對(duì)位于列表E1中的最后非零系數(shù)之前的每個(gè)系數(shù),數(shù)字信息項(xiàng)例如比特將被熵編碼,以表示系數(shù)是否為零。如果系數(shù)為零,則它例如是將被編碼的值為O的比特,而如果系數(shù)不為零,則它是將被編碼的值為I的比特。
[0155]-針對(duì)每個(gè)非零系數(shù)+9,-7,+1,-1,+2,+1,數(shù)字信息項(xiàng)例如比特要被熵編碼,以表示系數(shù)的絕對(duì)值是否等于1:如果它等于1,則它例如是將被編碼的值為I的比特,而如果它不等于1,則它是將被編碼的值為O的比特。
[0156]-針對(duì)絕對(duì)值不等于I且位于最后一個(gè)非零系數(shù)之前的每個(gè)非零系數(shù),例如值為+9,-7,+2的系數(shù),幅度信息項(xiàng)(其系數(shù)的絕對(duì)值減去了值2)被熵編碼;
[0157]-針對(duì)每個(gè)非零系數(shù),分配給它的符號(hào)被諸如被設(shè)置為“O”的比特的數(shù)字信息項(xiàng)編碼(用于+符號(hào))或被諸如被設(shè)置為“I”的比特的數(shù)字信息項(xiàng)編碼(用于-符號(hào))。
[0158]現(xiàn)在將參考圖3描述根據(jù)本發(fā)明的特定編碼步驟。
[0159]根據(jù)本發(fā)明,決定避免對(duì)至少一個(gè)上述數(shù)據(jù)信息項(xiàng)即列表E1中的所述系數(shù)中的一個(gè)的至少一個(gè)符號(hào)進(jìn)行熵編碼。
[0160]為此,在圖3所示的步驟C7的過(guò)程中,選擇在隨后的熵編碼步驟的過(guò)程中所要隱藏的符號(hào)的數(shù)量。該步驟由圖4所示的處理軟件模塊MTR_C01來(lái)執(zhí)行。
[0161]在優(yōu)選實(shí)施例中,所要隱藏的符號(hào)的數(shù)量是I或O。此外,根據(jù)所述優(yōu)選實(shí)施例,所要隱藏的是第一非零系數(shù)的符號(hào)。因此在所示實(shí)例中,它需要隱藏系數(shù)ε2 = +9的符號(hào)。
[0162]在替代的實(shí)施例中,所要隱藏的符號(hào)的數(shù)量是O、1、2、3或更多。
[0163]根據(jù)步驟C7的優(yōu)選實(shí)施例,在圖3所示的第一子步驟C71的過(guò)程中,基于所述列表E1來(lái)確定包含可被調(diào)整的系數(shù)的子列表SE1目卩ε ’ 1,ε’2,…,£’11,其中狀匕在下文的描述中該系數(shù)將被稱為可調(diào)整的系數(shù)。
[0164]根據(jù)本發(fā)明,如果系數(shù)的量化值的調(diào)整不會(huì)引起解碼器的任意去同步化,一旦該調(diào)整的系數(shù)被解碼器處理,則該系數(shù)是可調(diào)整的。于是,處理模塊MTR_C01被初始配置以不調(diào)整:[0165]-位于第一非零系數(shù)之前的零系數(shù)或多個(gè)零系數(shù),通過(guò)這種方式解碼器不會(huì)將隱藏符號(hào)的值分配給所述零系數(shù)所述多個(gè)零系數(shù),
[0166]-以及由于計(jì)算復(fù)雜度的原因,位于最后的非零系數(shù)之后的零系數(shù)或多個(gè)零系數(shù)。
[0167]在所示實(shí)例中,在子步驟C71結(jié)束后,得到的子列表SE1由此是SE1 =(9, -7, O, O, 1,0,-1,2,0,0, I)。因此,得到11個(gè)可調(diào)整的系數(shù)。
[0168]在圖3所示的下一子步驟C72的過(guò)程中,處理模塊MTR_C01將可調(diào)整的系數(shù)的數(shù)量和預(yù)定閾值TSIG進(jìn)行比較。在優(yōu)選實(shí)施例中,TSIG等于4。
[0169]如果可調(diào)整的系數(shù)的數(shù)量小于閾值TSIG,則在圖3所示的步驟C20的過(guò)程中,對(duì)列表E1中的系數(shù)進(jìn)行傳統(tǒng)熵編碼,例如在圖4中的標(biāo)記CE_C01所表示的CABAC編碼器中所實(shí)現(xiàn)的傳統(tǒng)熵編碼。為此,列表E1中的每個(gè)非零系數(shù)的符號(hào)被熵編碼。
[0170]如果可調(diào)整的系數(shù)的數(shù)量大于閾值TSIG,則在圖3所示的步驟CS的過(guò)程中,處理模塊MTR_C01計(jì)算函數(shù)f的值,其表示子列表SE1中的系數(shù)。
[0171]在要發(fā)送到解碼器的信號(hào)中隱藏單個(gè)符號(hào)的優(yōu)選實(shí)施例中,函數(shù)f是子列表SE1中的系數(shù)之和的奇偶校驗(yàn)。
[0172]在圖3所示的步驟C9的過(guò)程中,借助之前在編碼器COl定義的規(guī)則,處理模塊MTR_C01驗(yàn)證要隱藏的符號(hào)的值的奇偶性是否對(duì)應(yīng)于子列表SE1中的系數(shù)之和的奇偶性。
[0173]在所建議的實(shí)例中,所述規(guī)則是:正符號(hào)與值等于零的比特相關(guān)聯(lián),而負(fù)符號(hào)與值等于I的比特相關(guān)聯(lián)。
[0174]根據(jù)在根據(jù)本發(fā)明的編碼器COl中采用的規(guī)則,如果符號(hào)為正,則由此對(duì)應(yīng)于值為零的編碼比特,并且如果子列表SE1中的系數(shù)之和是偶數(shù),則對(duì)上述列表E1中除了系數(shù)ε 2的符號(hào)以外的系數(shù)進(jìn)行熵編碼的步驟C20,。
[0175]仍然根據(jù)在根據(jù)本發(fā)明的編碼器COl中采用的規(guī)則,如果符號(hào)為負(fù),則由此對(duì)應(yīng)于值為I的編碼比特,且如果子列表SE1中的系數(shù)之和為奇數(shù),則也對(duì)上述列表E1中除了系數(shù)ε 2的符號(hào)以外的系數(shù)進(jìn)行熵編碼的步驟C20。
[0176]根據(jù)在根據(jù)本發(fā)明的解碼器COl中采用的規(guī)則,如果符號(hào)為正,則由此對(duì)應(yīng)于值為零的編碼比特,并且如果子列表SE1的系數(shù)之和是奇數(shù),則在圖3所示的步驟ClO的過(guò)程中,調(diào)整子列表SE1中的至少一個(gè)可調(diào)整的系數(shù)。
[0177]仍然根據(jù)在根據(jù)本發(fā)明的解碼器COl中采用的規(guī)則,如果符號(hào)為負(fù),則由此對(duì)應(yīng)于值為I編碼比特,并且如果子列表SE1中的系數(shù)之和是偶數(shù),則也進(jìn)行對(duì)子列表SE1中的至少一個(gè)可調(diào)整的系數(shù)的調(diào)整的步驟C10。
[0178]該調(diào)整操作由圖4的處理模塊MTR_C01執(zhí)行。
[0179]在SE1 = (+9,-7,O, O, +1,O, -1, +2,O, O, +1)的示例性實(shí)施例中,系數(shù)的總和等于5
且因此是奇數(shù)。為了使解碼器能夠重構(gòu)分配給第一非零系數(shù)ε 2 =+9的正符號(hào)而不用編碼器COl將該系數(shù)發(fā)送到解碼器,必須將總和的奇偶性變成偶數(shù)。因此,在所述步驟ClO的過(guò)程中,處理模塊MTR_C01測(cè)試子列表SE1中的系數(shù)的各種調(diào)整,所有的目標(biāo)都是改變系數(shù)之和的奇偶性。在優(yōu)選實(shí)施例中,+1或-1被加到每個(gè)可調(diào)整的系數(shù),并從被執(zhí)行的所有那些調(diào)整中選擇調(diào)整。
[0180]在優(yōu)選實(shí)施例中,這樣的選擇構(gòu)成根據(jù)性能標(biāo)準(zhǔn)的最優(yōu)預(yù)測(cè),該性能標(biāo)準(zhǔn)例如是本領(lǐng)域技術(shù)人員眾所周知的比特率失真標(biāo)準(zhǔn)。該標(biāo)準(zhǔn)由下列等式(I)來(lái)表示:[0181](!)J = D+AR
[0182]其中D表示原始宏塊和重構(gòu)宏塊之間的失真,R表示編碼信息的比特的編碼成本,并且λ表示拉格朗日倍數(shù),其值可在編碼之前被固定。
[0183]在所建議的例子中,根據(jù)上述比特率失真標(biāo)準(zhǔn)帶來(lái)最優(yōu)預(yù)測(cè)的調(diào)整是將值I加到子列表SE1中的第二系數(shù)_7。
[0184]在步驟ClO完成后,于是得到已調(diào)整的子列表SEm1 =(+9, -6,O, O, +1, O, -1, +2, O, O, +1)。
[0185]應(yīng)該注意的是,在該步驟的過(guò)程中,特定的調(diào)整是被禁止的。于是,在第一非零系數(shù)ε 2等于+1的情形下,不可能將該系數(shù)加上-1,因?yàn)樗鼘⒆兂闪?,并且然后該系?shù)會(huì)丟失列表E1中的第一非零系數(shù)的特征。然后,解碼器隨后將被解碼的符號(hào)(通過(guò)對(duì)系數(shù)之和的奇偶性進(jìn)行計(jì)算)分配給另一系數(shù),且然后將會(huì)出現(xiàn)解碼錯(cuò)誤。
[0186]在圖3所示的步驟Cll的過(guò)程中,處理模塊MTR_C01對(duì)列表E1進(jìn)行相應(yīng)的調(diào)整。然后得到下列已調(diào)整的列表 Em1 = (O, +9, -6, O, O, +1, O, -1, +2, O, O, +1, O, O, O, O)。
[0187]然后進(jìn)行對(duì)上述列表Em1中除了系數(shù)ε 2的符號(hào)以外的系數(shù)的熵編碼的步驟C20,在所建議的例子中的系數(shù)ε 2的符號(hào)是系數(shù)9的+符號(hào),該符號(hào)被隱藏在系數(shù)之和的奇偶校驗(yàn)中。
[0188]應(yīng)注意的是,列表E1或已調(diào)整的列表Em1中的系數(shù)的幅度的集合在除了如上解釋的未被編碼的第一非零系數(shù)ε 2的符號(hào)以外的符號(hào)集合之前被編碼。
[0189]在圖3所示的下一步驟C30的過(guò)程中,圖4中的編碼模塊MC_C01測(cè)試被編碼的當(dāng)前塊是否是圖像IE中的最后一塊。
[0190]如果當(dāng)前塊是圖像IE中的最后一塊,則在圖3所示的步驟C40的過(guò)程中,編碼方
法結(jié)束。
[0191]如果不是該情形,則選擇下一塊B’ i,然后根據(jù)前述光柵掃描遍歷的順序通過(guò)反復(fù)執(zhí)行步驟Cl到C20來(lái)對(duì)I < i < Z的塊B’ i進(jìn)行編碼。
[0192]一旦已經(jīng)實(shí)現(xiàn)所有塊B’ 1到8’ z的熵編碼,則構(gòu)造以二進(jìn)制形式來(lái)表示所述已編碼的塊的信號(hào)F’。
[0193]二進(jìn)制符號(hào)F’的構(gòu)造在例如圖4所示的流構(gòu)造軟件模塊CFl中實(shí)現(xiàn)。
[0194]然后通過(guò)通信網(wǎng)絡(luò)(未示出)將流F’發(fā)送到遠(yuǎn)端。該遠(yuǎn)端包括解碼器,將在下文的描述中進(jìn)一步詳細(xì)描述該解碼器。
[0195]現(xiàn)在將主要參考圖3來(lái)描述本發(fā)明的另一實(shí)施例。
[0196]該另一實(shí)施例與前一個(gè)實(shí)施例的區(qū)別僅在于所要隱藏的系數(shù)的數(shù)量為O或N,其中N是大于等于2的整數(shù)。
[0197]為此,前述比較子步驟C72被圖3中的虛線表示的子步驟C72a替換,在子步驟C72a的過(guò)程中,將可調(diào)整的系數(shù)的數(shù)量與若干個(gè)預(yù)定閾值0〈TSIG_1〈TSIG_2〈TSIG_3…進(jìn)行比較,通過(guò)這種方式,如果可調(diào)整的系數(shù)的數(shù)量在TSIG_N與TSIG_N+1之間,則N個(gè)符號(hào)要被隱藏。
[0198]如果可調(diào)整的系數(shù)的數(shù)量小于第一閾值TSIG_1,則在上述步驟C20的過(guò)程中,對(duì)列表E1中的系數(shù)進(jìn)行傳統(tǒng)熵編碼。為此,列表E1中的每個(gè)非零系數(shù)的符號(hào)被熵編碼。
[0199]如果可調(diào)整的系數(shù)的數(shù)量在閾值TSIG_N與TSIG_N+1之間,則在圖3所示的步驟C8的過(guò)程中,處理模塊MTR_C01計(jì)算函數(shù)f的值,其表示子列表E1中的系數(shù)。
[0200]在所述另一實(shí)施例中,在解碼器上決定隱藏N個(gè)符號(hào),函數(shù)f是子列表SE1中的系數(shù)之和的模2N的余數(shù)。假設(shè)在所建議的例子中N = 2,要隱藏的兩個(gè)符號(hào)分別是前兩個(gè)非零系數(shù)即ε 2和ε 3的前兩個(gè)符號(hào)。
[0201]在圖3所示的下一步驟C9的過(guò)程中,處理模塊MTR_C01驗(yàn)證N個(gè)符號(hào)的配置即2N個(gè)可能的配置是否對(duì)應(yīng)于子列表SE1中的系數(shù)之和的模2N的余數(shù)的值。
[0202]在所建議的N = 2的實(shí)例中,存在22 = 4個(gè)不同的符號(hào)配置。
[0203]這四個(gè)配置遵循編碼器COl的規(guī)則,該規(guī)則例如以如下方式確定:
[0204]-等于零的余數(shù)對(duì)應(yīng)于兩個(gè)連續(xù)的正符號(hào):+,+;
[0205]-等于I的余數(shù)對(duì)應(yīng)于連續(xù)的正符號(hào)和負(fù)符號(hào):+,-;
[0206]-等于2的余數(shù)對(duì)應(yīng)于連續(xù)的負(fù)符號(hào)和正符號(hào):_,+;
[0207]-等于3的余數(shù)對(duì)應(yīng)于兩個(gè)連續(xù)的負(fù)符號(hào):_,_。
[0208]如果N個(gè)符號(hào)的配置對(duì)應(yīng)于子列表SE1中的系數(shù)之和的模2n的余數(shù)的值,則對(duì)上述列表E1中除了系數(shù)ε2和系數(shù)ε 3的符號(hào)以外的系數(shù)進(jìn)行熵編碼的步驟C20,所述符號(hào)被隱藏在系數(shù)之和的模2Ν的奇偶校驗(yàn)中。
[0209]如果不是該情形,則對(duì)子列表SE1中的至少一個(gè)可調(diào)整的系數(shù)進(jìn)行調(diào)整的步驟C10。該調(diào)整由圖4所示的處理模塊MTR_C01以如下這樣的方式執(zhí)行:子列表SE1中的可調(diào)整的系數(shù)之和的模2N的余數(shù)達(dá)到要隱藏的兩個(gè)符號(hào)中的每個(gè)符號(hào)的值。
[0210]在前述步驟Cll的過(guò)程中,處理模塊MTR_C01對(duì)列表El進(jìn)行相應(yīng)的調(diào)整。由此得到已調(diào)整的列表Emp
[0211]然后進(jìn)行對(duì)上述列表Em1中除了系數(shù)ε 2和系數(shù)ε 3的符號(hào)以外的系數(shù)的熵編碼的步驟C20,該符號(hào)被隱藏在系數(shù)之和的模2ν的奇偶校驗(yàn)中。
[0212]解碼部分的詳細(xì)描述
[0213]現(xiàn)在將描述根據(jù)本發(fā)明的解碼方法的一般實(shí)施例,其中,解碼方法以軟件或硬件形式通過(guò)對(duì)初始符合H.264/MPEG-4AVC標(biāo)準(zhǔn)的解碼器的調(diào)整來(lái)實(shí)現(xiàn)。
[0214]根據(jù)本發(fā)明的解碼方法以圖5所示的包含步驟SDl到SD7的算法的形式來(lái)表示。
[0215]根據(jù)本發(fā)明的一般實(shí)施例,根據(jù)本發(fā)明的解碼方法在如圖6所示的解碼設(shè)備或解碼器DO中實(shí)現(xiàn),其適于接收通過(guò)圖2中的編碼器CO傳遞的流F。
[0216]在圖5中未示出的預(yù)備步驟的過(guò)程中,在接收到的數(shù)據(jù)信號(hào)F中,識(shí)別之前已由編碼器CO編碼的分區(qū)B1到Βζ。在優(yōu)選實(shí)施例中,所述分區(qū)是具有正方形形狀并且全部具有相同尺寸的塊。根據(jù)圖像的尺寸,該尺寸不一定是塊尺寸的倍數(shù),最左邊的塊以及最底部的塊可以不是正方形。在替代的實(shí)施例中,塊例如可以是矩形尺寸和/或可以不互相對(duì)齊。
[0217]每個(gè)塊或每個(gè)宏塊本身可以進(jìn)一步被分為子塊,子塊自己可以再細(xì)分。
[0218]該識(shí)別由如圖6所示的流分析軟件模塊EX_D0來(lái)執(zhí)行。
[0219]在圖5所示的步驟SDl的過(guò)程中,圖6中的模塊EX_D0選擇待編碼的第一塊B1作為當(dāng)前塊B”該選擇例如包括在第一塊B1的數(shù)據(jù)開(kāi)始時(shí)在信號(hào)F中放置讀指針。
[0220]然后對(duì)選中的已編碼的塊中的每個(gè)塊進(jìn)行解碼。
[0221]在圖5所示的實(shí)例中,對(duì)已編碼的塊B1到Bz中的每個(gè)塊相繼實(shí)施這樣的解碼。例如根據(jù)本領(lǐng)域技術(shù)人員眾所周知的“光柵掃描”遍歷來(lái)對(duì)塊進(jìn)行解碼。[0222]根據(jù)本發(fā)明的解碼在如圖6所示的解碼器DO的解碼軟件模塊MD_D0中實(shí)現(xiàn)。
[0223]在圖5所示的步驟SD2的過(guò)程中,首先對(duì)已選擇的第一當(dāng)前塊B1進(jìn)行熵解碼。該操作由圖6所示的例如CABAC類型的熵解碼模塊DE_D0來(lái)執(zhí)行。在該步驟的過(guò)程中,模塊DE_D0對(duì)與列表D1或已調(diào)整的列表Dm1中每個(gè)被編碼的數(shù)據(jù)的幅度相對(duì)應(yīng)的數(shù)字信息項(xiàng)執(zhí)行熵解碼。此時(shí),只有列表D1或已調(diào)整的列表Dm1中的數(shù)據(jù)的符號(hào)未被解碼。
[0224]在處理模塊MTR_D0接收到列表D1 = (a1; a2,…,aP)的情形中,在圖5所示的步驟SD3的過(guò)程中,對(duì)列表D1中的數(shù)據(jù)的所有符號(hào)進(jìn)行傳統(tǒng)的熵解碼。該解碼由圖6中的標(biāo)記DE_D0所表示的CABAC解碼器來(lái)執(zhí)行。為此,列表D1中的每個(gè)非零數(shù)據(jù)項(xiàng)的符號(hào)被熵解碼。
[0225]在處理模塊MTR_D0接收到調(diào)整的列表Dm1 = (a’ 1; a’ 2,…,a’ P)的情形中,在所述步驟SD3的過(guò)程中,對(duì)列表Dm1中的數(shù)據(jù)的除了第一非零數(shù)據(jù)項(xiàng)a2的符號(hào)以外所有符號(hào)進(jìn)行傳統(tǒng)的熵解碼。
[0226]在圖5所示的步驟SD4的過(guò)程中,處理模塊MTR_D0計(jì)算表示列表Dm1的數(shù)據(jù)的函數(shù)f的值,以確定所計(jì)算的值是偶數(shù)還是奇數(shù)。
[0227]在信號(hào)F中隱藏單個(gè)符號(hào)的優(yōu)選實(shí)施例中,函數(shù)f是列表Dm1中的數(shù)據(jù)之和的奇偶校驗(yàn)。
[0228]根據(jù)在編碼器CO上使用的與解碼器DO上相同的規(guī)則,列表Dm1中的數(shù)據(jù)之和的偶數(shù)值表示已調(diào)整的列表Dm1中的第一非零數(shù)據(jù)項(xiàng)的符號(hào)是正的,而列表Dm1中的數(shù)據(jù)之和的奇數(shù)值表示已調(diào)整的列表Dm1中的第一非零數(shù)據(jù)項(xiàng)的符號(hào)是負(fù)的。
[0229]在示例性實(shí)施例中,數(shù)據(jù)的總和是偶數(shù)。于是,在步驟SD4結(jié)束后,處理模塊MTR_DO由此推斷第一非零數(shù)據(jù)項(xiàng)a2的隱藏符號(hào)是正的。
[0230]在圖5所示的步驟SD5的過(guò)程中,構(gòu)造已解碼的塊BD115該操作由圖6所示的重構(gòu)軟件模塊MR_D0來(lái)執(zhí)行。
[0231]在圖5所示的步驟SD6的過(guò)程中,解碼模塊MD_D0測(cè)試已解碼的當(dāng)前塊是否為在信號(hào)F中識(shí)別的最后一塊。
[0232]如果當(dāng)前塊是信號(hào)F中的最后一塊,則在圖5所示的步驟SD7的過(guò)程中,解碼方法結(jié)束。
[0233]如果不是該情形,則選擇下一塊Bi,根據(jù)前述光柵掃描遍歷的順序通過(guò)反復(fù)執(zhí)行步驟SDl到SD5來(lái)對(duì)K≤ i≤ Z的塊B’ i進(jìn)行解碼。
[0234]現(xiàn)在將主要參考圖5來(lái)描述本發(fā)明的另一實(shí)施例。
[0235]該另一實(shí)施例與前一個(gè)實(shí)施例的區(qū)別僅在于所隱藏的符號(hào)的數(shù)量現(xiàn)在等于N,N是大于等于2的整數(shù)。
[0236]為此,在前述步驟SD3的過(guò)程中,對(duì)列表Dm1中的數(shù)據(jù)的除了所述已調(diào)整的列表Dm1中的前幾個(gè)非零數(shù)據(jù)的N個(gè)各個(gè)符號(hào)以外的所有符號(hào)進(jìn)行傳統(tǒng)的熵解碼,所述N個(gè)符號(hào)被隱藏。
[0237]在該另一實(shí)施例中,處理模塊MTR_D0在步驟SD4的過(guò)程中計(jì)算函數(shù)f的值,其是列表Dm1中的數(shù)據(jù)之和的模2N的余數(shù)。假設(shè)在所建議的實(shí)例中N = 2。
[0238]然后,處理模塊MTR_D0由此根據(jù)在編碼時(shí)所使用的規(guī)則來(lái)推斷被分別分配給前兩個(gè)非零數(shù)據(jù)a2和a3中的每個(gè)非零數(shù)據(jù)的兩個(gè)隱藏符號(hào)的配置。
[0239]一旦這兩個(gè)符號(hào)已被重構(gòu),則執(zhí)行上述步驟SD5到SD7。[0240]現(xiàn)在將描述根據(jù)本發(fā)明的解碼方法的特定實(shí)施例,其中,解碼方法以軟件或硬件形式通過(guò)對(duì)初始符合H.264/MPEG-4AVC標(biāo)準(zhǔn)的解碼器的調(diào)整來(lái)實(shí)現(xiàn)。
[0241]根據(jù)本發(fā)明的解碼方法以包含圖7所示的步驟Dl到D12的算法的形式來(lái)表示。
[0242]根據(jù)本發(fā)明的實(shí)施例,根據(jù)本發(fā)明的解碼方法在如圖8所示的解碼設(shè)備或解碼器DOl中實(shí)現(xiàn),其能夠處理通過(guò)圖4中的編碼器COl傳遞的信號(hào)F’。
[0243]在圖7中未示出的預(yù)備步驟的過(guò)程中,在接收到的數(shù)據(jù)信號(hào)F’中,識(shí)別之前已由編碼器COl編碼的分區(qū)B’ 1到B’ z。在優(yōu)選實(shí)施例中,所述分區(qū)是具有正方形形狀并且全部具有相同尺寸的塊。根據(jù)圖像的尺寸,該尺寸不一定是塊大小的倍數(shù),最左邊的塊以及最底部的塊可以不是正方形。在替代的實(shí)施例中,塊例如可以是矩形尺寸和/或可以不互相對(duì)齊。
[0244]每個(gè)塊或每個(gè)宏塊本身可以進(jìn)一步被分為子塊,子塊自己可以再細(xì)分。
[0245]該識(shí)別由如圖8所示的流分析軟件模塊EX_D01來(lái)執(zhí)行。
[0246]在圖7所示的步驟Dl的過(guò)程中,圖8中的模塊EX_D01選擇待編碼的第一塊B’ ι作為當(dāng)前塊B’ it)該選擇例如包括在第一塊B’ !的數(shù)據(jù)開(kāi)始時(shí)在信號(hào)F’中放置讀指針。
[0247]然后對(duì)選中的已編碼的塊中每個(gè)塊進(jìn)行解碼。
[0248]在圖7所示的實(shí)例中,對(duì)已解碼的塊B’i到B’z中的每個(gè)塊相繼實(shí)施這樣的解碼。例如根據(jù)本領(lǐng)域技術(shù)人員眾所周知的“光柵掃描”遍歷來(lái)對(duì)塊進(jìn)行解碼。 [0249]根據(jù)本發(fā)明的解碼在如圖8所示的解碼器DOl的解碼軟件模塊MD_D01中實(shí)現(xiàn)。
[0250]在圖7所示的步驟D2的過(guò)程中,首先對(duì)已選擇的第一當(dāng)前塊進(jìn)行熵解碼。該操作由圖8所示的例如CABAC類型的熵解碼模塊DE_D01來(lái)執(zhí)行。在該步驟的過(guò)程中,模塊DE_D01對(duì)與列表E1或已調(diào)整的列表Em1中每個(gè)被編碼的系數(shù)的幅度相對(duì)應(yīng)的數(shù)字信息執(zhí)行熵解碼。此時(shí),只有列表E1或已調(diào)整的列表Em1中的系數(shù)的符號(hào)未被解碼。
[0251]在圖7所示的步驟D3的過(guò)程中,確定在之前的熵編碼步驟C20的過(guò)程中可能已被隱藏的符號(hào)的數(shù)量。該步驟D3由如圖8所示的處理軟件模塊MTR_D01來(lái)執(zhí)行。步驟D3類似于前述用于確定要被隱藏的符號(hào)的數(shù)量的步驟C7。
[0252]在優(yōu)選實(shí)施例中,隱藏的符號(hào)的數(shù)量是I或O。此外,根據(jù)所述優(yōu)選實(shí)施例,被隱藏的是第一非零系數(shù)的符號(hào)。因此在所示實(shí)例中,它需要系數(shù)ε2 =+9的正符號(hào)。
[0253]在替代實(shí)施例中,隱藏的符號(hào)的數(shù)量是O、1、2、3或更多。
[0254]根據(jù)步驟D3的優(yōu)選實(shí)施例,在圖7所示的第一子步驟D31的過(guò)程中,根據(jù)所述列表£1或根據(jù)已調(diào)整的列表Em1來(lái)確定包含在編碼時(shí)已被調(diào)整的系數(shù)ε ’ 1,ε ’ 2,…,ε ’ M的子列表,其中M〈L。
[0255]該確定由與前述編碼步驟C7相同的方式來(lái)執(zhí)行。
[0256]和前述處理模塊MTR_C01類似,處理模塊MTR_D01被初始配置以不調(diào)整:
[0257]-位于第一非零系數(shù)之前的零系數(shù)或多個(gè)零系數(shù),
[0258]-以及由于計(jì)算復(fù)雜的原因,位于最后的非零系數(shù)之后的零系數(shù)或多個(gè)零系數(shù)。
[0259]在所示實(shí)例中,在子步驟D31完成后,這需要子列表SEm1從而SEm1 =(9, -6, O, O, 1,0,-1,2,0,0, I)。因此,得到可能已被調(diào)整的11個(gè)系數(shù)。
[0260]在圖7所示的下一子步驟D32的過(guò)程中,處理模塊MTR_D01將可能已被調(diào)整的系數(shù)的數(shù)量與預(yù)定閾值TSIG進(jìn)行比較。在優(yōu)選實(shí)施例中,TSIG等于4。[0261]如果可能已被調(diào)整的系數(shù)數(shù)量小于閾值TSIG,則在圖7所示的步驟D4的過(guò)程中,對(duì)列表E1中的系數(shù)的所有符號(hào)進(jìn)行傳統(tǒng)熵解碼。該解碼由圖8中的標(biāo)記DE_D01表示的CABAC解碼器來(lái)執(zhí)行。為此,列表E1中的每個(gè)非零系數(shù)的符號(hào)被熵解碼。
[0262]如果可能已被調(diào)整的系數(shù)的數(shù)量大于閾值TSIG,則在所述步驟D4的過(guò)程中,對(duì)列表Em1中的系數(shù)的除了第一非零系數(shù)ε 2的符號(hào)以外的所有符號(hào)進(jìn)行傳統(tǒng)熵解碼。
[0263]在圖7所示的步驟D5的過(guò)程中,處理模塊MTR_D01計(jì)算表示子列表SEm1的系數(shù)的函數(shù)f的值,以確定所計(jì)算的值是偶數(shù)還是奇數(shù)。
[0264]在信號(hào)F’中隱藏單個(gè)符號(hào)的優(yōu)選實(shí)施例中,函數(shù)f是子列表SEm1中的系數(shù)之和的奇偶校驗(yàn)。
[0265]根據(jù)在編碼器COl上使用的與解碼器DOl上相同的規(guī)則,子列表SEm1中的系數(shù)之和的偶數(shù)值表示已調(diào)整的列表Em1中的第一非零系數(shù)的符號(hào)是正的,而子列表SEm1中的系數(shù)之和的奇數(shù)值表示已調(diào)整的列表Em1中的第一非零系數(shù)的符號(hào)是負(fù)的。
[0266]在SEm1 = (+9,_6,O, O, +1,O, -1, +2,O, O, +1)的示例性實(shí)施例中,系數(shù)的總和等于6,且因此是偶數(shù)。于是,在步驟D5完成后,處理模塊MTR_D01由此推斷第一非零系數(shù)ε2的隱藏符號(hào)是正的。
[0267]在圖7所示的步驟D6的過(guò)程中,并且借助于步驟D2、D4和D5的過(guò)程中所有重構(gòu)的數(shù)字信息項(xiàng),以預(yù)定的順序來(lái)重構(gòu)塊B’ Q1的量化系數(shù)。在所示實(shí)例中,這需要與前述編碼步驟C6的過(guò)程中執(zhí)行的之字形遍歷相反的之字形遍歷。該步驟由如圖8所示的讀取軟件模塊ML_D01執(zhí)行。更具體地說(shuō),模塊ML_D01使用所述相反的之字形的遍歷順序?qū)⒘斜鞥1 ( 一維)的系數(shù)寫(xiě)到塊B’ qi (二維)。
[0268]在圖7所示的步驟D7的過(guò)程中,根據(jù)傳統(tǒng)的反量化操作來(lái)對(duì)已量化的殘留塊B’qi進(jìn)行反量化,該操作是與編碼時(shí)的前述步驟C5中執(zhí)行的量化相反的操作,以生成已解碼的反量化塊BD’ q10該步驟通過(guò)如圖8所示的反量化軟件模塊MDQ_D01來(lái)執(zhí)行。
[0269]在圖7所示的步驟D8的過(guò)程中,對(duì)反量化塊BD’ Q1進(jìn)行逆變換,所述逆變換是與編碼時(shí)的前述步驟C4中執(zhí)行的直接變換相反的操作。然后得到已解碼的殘留塊BD’ri。該操作由圖8所示的逆變換軟件模塊MTI_D01來(lái)執(zhí)行。
[0270]在圖7所示的步驟D9的過(guò)程中,對(duì)當(dāng)前塊B1進(jìn)行預(yù)測(cè)解碼。諸如所述預(yù)測(cè)解碼這樣的預(yù)測(cè)解碼傳統(tǒng)上在針對(duì)至少一個(gè)之前已解碼的塊來(lái)預(yù)測(cè)塊過(guò)程中通過(guò)已知的幀內(nèi)和/或幀間預(yù)測(cè)技術(shù)來(lái)執(zhí)行。該操作由如圖8所示的預(yù)測(cè)解碼模塊PRED_D01來(lái)執(zhí)行。
[0271]毋庸贅述,諸如H.264標(biāo)準(zhǔn)所建議的模式之類的其它幀內(nèi)預(yù)測(cè)模式是可能的。
[0272]在該步驟的過(guò)程中,借助于之前步驟中的被解碼的語(yǔ)義元素來(lái)執(zhí)行預(yù)測(cè)解碼,且特別包括預(yù)測(cè)類型(幀間預(yù)測(cè)或幀內(nèi)預(yù)測(cè)),并且如果合適的話,包括幀內(nèi)預(yù)測(cè)模式、塊或宏塊(如果宏塊已被細(xì)分)的分區(qū)類型、在幀間預(yù)測(cè)模式中使用的參考圖像索引以及位移矢量。
[0273]上述預(yù)測(cè)解碼步驟可構(gòu)造已預(yù)測(cè)的塊B’ Pl。
[0274]在圖7所示的步驟DlO的過(guò)程中,通過(guò)將已解碼的殘留塊BD’ !^加到已預(yù)測(cè)的塊B’ P1來(lái)構(gòu)造已解碼的塊BD’ P該操作由圖8所示的重構(gòu)軟件模塊MR_D01來(lái)執(zhí)行。
[0275]在圖7所示的步驟Dll的過(guò)程中,解碼模塊MD_D01測(cè)試已解碼的當(dāng)前塊是否為在信號(hào)F’中識(shí)別的最后一塊。[0276]如果當(dāng)前塊是信號(hào)F’中最后一塊,則在圖7所示的步驟D12的過(guò)程中,解碼方法結(jié)束。
[0277]如果不是該情形,則選擇下一塊B’ i,根據(jù)前述光柵掃描遍歷的順序通過(guò)反復(fù)執(zhí)行步驟Dl到DlO來(lái)對(duì)KiSZ的塊B’ i進(jìn)行解碼。
[0278]現(xiàn)在將主要參考圖7來(lái)描述本發(fā)明的另一實(shí)施例。
[0279]該另一實(shí)施例與前一個(gè)實(shí)施例的區(qū)別僅在于所隱藏的系數(shù)的數(shù)量為O或N,其中N是大于等于2的整數(shù)。
[0280]為此,前述比較子步驟D32被圖7中的虛線所示的子步驟D32a替換,在比較子步驟D32的過(guò)程中,將可能已被調(diào)整的系數(shù)的數(shù)量與若干個(gè)預(yù)定的閾值0〈TSIG_1〈TSIG_2〈TSIG_3..?進(jìn)行 比較,通過(guò)這種方式,如果所述系數(shù)的數(shù)量在TSIG_N與TSIG_N+1之間,則N個(gè)信號(hào)已被隱藏。
[0281]如果所述系數(shù)的數(shù)量小于第一閾值TSIG_1,則在前述步驟D4的過(guò)程中,對(duì)列表E1中的系數(shù)的所有符號(hào)進(jìn)行傳統(tǒng)熵解碼。為此,列表E1中的每個(gè)非零系數(shù)的符號(hào)被熵解碼。
[0282]如果所述系數(shù)的數(shù)量在閾值TSIG_N與TSIN_N+1之間,則在前述步驟D4中,對(duì)列表E1中的系數(shù)的除了所述調(diào)整列表Em1中的第一非零系數(shù)的N個(gè)各個(gè)符號(hào)以外的所有符號(hào)進(jìn)行傳統(tǒng)熵解碼,所述N個(gè)符號(hào)被隱藏。
[0283]在該另一實(shí)施例中,處理模塊MTR_D01在步驟D5的過(guò)程中計(jì)算函數(shù)f的值,其是子列表SEm1中的系數(shù)之和的模2N的余數(shù)。假設(shè)在所建議的實(shí)例中N = 2。
[0284]然后,處理模塊MTR_D01由此根據(jù)在解碼時(shí)所使用的規(guī)則來(lái)推斷被分別分配給前兩個(gè)非零系數(shù)ε2和ε3中的每個(gè)非零數(shù)據(jù)的兩個(gè)隱藏符號(hào)的配置。
[0285]一旦這兩個(gè)符號(hào)已被重構(gòu),則執(zhí)行上述步驟D6到D12。
[0286]毋庸贅述,本文所描述的實(shí)施例僅通過(guò)指示的方式給出而不是要限制,并且本領(lǐng)域技術(shù)人員可以容易地進(jìn)行各種調(diào)整而不偏離本發(fā)明的范圍。
[0287]于是例如,根據(jù)關(guān)于圖4所示的簡(jiǎn)化實(shí)施例,編碼器COl可被配置為隱藏至少N’個(gè)預(yù)定符號(hào),其中,N’ > I,而不是O、I或N個(gè)預(yù)定符號(hào)。在該情形下,比較步驟C72或C72a將被移除。通過(guò)相應(yīng)的方式,根據(jù)關(guān)于圖8所示的簡(jiǎn)化實(shí)施例,解碼器DOl將被配置為重構(gòu)N’個(gè)預(yù)定符號(hào)而不是0、1或N個(gè)預(yù)定符號(hào)。在該情形下,比較步驟D32或D32a將被移除。此外,在編碼步驟C72和解碼步驟D32中應(yīng)用的判斷標(biāo)準(zhǔn)可被另一類型的標(biāo)準(zhǔn)替換。為此,代替與可調(diào)整的系數(shù)的數(shù)量或可能已被調(diào)整的系數(shù)的數(shù)量的閾值進(jìn)行比較,處理模塊MTR_COl或MTR_D01可以應(yīng)用分別依賴于可調(diào)整或可能已被調(diào)整的系數(shù)的幅度之和的或者可調(diào)整或可能已被調(diào)整的系數(shù)中存在的零的數(shù)量的判斷標(biāo)準(zhǔn)。
【權(quán)利要求】
1.一種用于對(duì)被劃分為多個(gè)分區(qū)的至少一個(gè)圖像進(jìn)行編碼的方法,將被編碼的當(dāng)前分區(qū)(Bi)包含數(shù)據(jù),所述數(shù)據(jù)中的至少一個(gè)數(shù)據(jù)項(xiàng)被分配符號(hào), 所述編碼方法的特征在于,針對(duì)所述當(dāng)前分區(qū),它實(shí)現(xiàn)下列步驟: -計(jì)算(S3)表示所述當(dāng)前分區(qū)的除了所述符號(hào)以外的數(shù)據(jù)的函數(shù)的值, -將所述已計(jì)算的值與所述符號(hào)的預(yù)定值進(jìn)行比較(S4), -根據(jù)所述比較的結(jié)果,調(diào)整(S5)或不調(diào)整所述當(dāng)前分區(qū)的數(shù)據(jù)中的至少一個(gè), -在調(diào)整的情形下,對(duì)所述至少一個(gè)已調(diào)整的數(shù)據(jù)項(xiàng)進(jìn)行編碼。
2.如權(quán)利要求1所述的編碼方法,其中在所述比較步驟的過(guò)程中考慮多個(gè)(N個(gè))符號(hào)的情形下,該比較步驟包括將表示所述當(dāng)前分區(qū)的數(shù)據(jù)的函數(shù)的所計(jì)算的值與表示所述多個(gè)符號(hào)的函數(shù)的值進(jìn)行比較。
3.一種用于對(duì)被劃分為多個(gè)分區(qū)的至少一個(gè)圖像進(jìn)行編碼的設(shè)備(CO),將被編碼的當(dāng)前分區(qū)包含數(shù)據(jù),所述數(shù)據(jù)中至少一個(gè)數(shù)據(jù)項(xiàng)被分配符號(hào), 所述設(shè)備的特征在于,針對(duì)所述要編碼的當(dāng)前分區(qū),它包括處理裝置(MTR_CO),所述處理裝置能夠: -計(jì)算表示所述當(dāng)前分區(qū)的除了所述符號(hào)以外的數(shù)據(jù)的函數(shù)的值, -將所述已計(jì)算的值與所述符號(hào)的預(yù)定值進(jìn)行比較, -根據(jù)所述比較的結(jié)果,調(diào)整或不調(diào)整所述當(dāng)前分區(qū)的數(shù)據(jù)中的至少一個(gè), 并且其中所述設(shè)備包括在由所述處理裝置調(diào)整的情形中用于對(duì)至少一個(gè)已調(diào)整的數(shù)據(jù)項(xiàng)進(jìn)行編碼的裝置(CE_CO)。
4.一種用于對(duì)表示之前已被編碼的劃分為多個(gè)分區(qū)的至少一個(gè)圖像的數(shù)據(jù)信號(hào)進(jìn)行解碼的方法,將被解碼的當(dāng)前分區(qū)(Bi)包含數(shù)據(jù),所述數(shù)據(jù)中至少一個(gè)數(shù)據(jù)項(xiàng)被分配符號(hào), 所述解碼方法的特征在于,針對(duì)所述當(dāng)前分區(qū),它包括下列步驟: -對(duì)所述當(dāng)前分區(qū)的除了所述符號(hào)以外的數(shù)據(jù)進(jìn)行解碼(SD2、SD3), -計(jì)算表示所述當(dāng)前分區(qū)的已解碼數(shù)據(jù)的函數(shù)的值(SD4), -基于所述已計(jì)算的值來(lái)獲取所述符號(hào)的值。
5.如權(quán)利要求4所述的解碼方法,其中基于所計(jì)算的值來(lái)獲取與多個(gè)(N個(gè))符號(hào)分別關(guān)聯(lián)的多個(gè)值。
6.一種用于對(duì)表示之前已被編碼的被劃分為多個(gè)分區(qū)的至少一個(gè)圖像的數(shù)據(jù)信號(hào)進(jìn)行解碼的設(shè)備(DO),將被解碼的當(dāng)前分區(qū)包含數(shù)據(jù),所述數(shù)據(jù)中的至少一個(gè)數(shù)據(jù)項(xiàng)被分配符號(hào), 所述解碼設(shè)備的特征在于,針對(duì)要被解碼的所述當(dāng)前分區(qū),它包括處理裝置(MTR_D0),所述處理裝置能夠: -對(duì)所述當(dāng)前分區(qū)的除了所述符號(hào)以外的數(shù)據(jù)進(jìn)行解碼, -計(jì)算表示所述當(dāng)前分區(qū)的已解碼數(shù)據(jù)的函數(shù)的值, -基于所述已計(jì)算的值來(lái)獲取所述符號(hào)的值。
7.一種包含指令的計(jì)算機(jī)程序,當(dāng)如權(quán)利要求1或2所述的編碼方法在計(jì)算機(jī)上執(zhí)行時(shí),所述指令用于實(shí)現(xiàn)所述編碼方法。
8.一種包含指令的計(jì)算機(jī)程序,當(dāng)如權(quán)利要求4或5所述的解碼方法在計(jì)算機(jī)上執(zhí)行時(shí),所述指令用于實(shí)現(xiàn)所述解碼方法。
【文檔編號(hào)】H04N19/463GK104041039SQ201280066229
【公開(kāi)日】2014年9月10日 申請(qǐng)日期:2012年11月6日 優(yōu)先權(quán)日:2011年11月7日
【發(fā)明者】F.亨利, G.克萊爾 申請(qǐng)人:奧林奇公司