專利名稱::通過再量化的比特速率降低方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及一種根據(jù)使用參考圖像中的幀內(nèi)和幀間模式的編碼來降低編碼的視頻數(shù)據(jù)流的比特速率的方法。
背景技術(shù):
:本發(fā)明更具體地應(yīng)用于H.264或AVC或MPEG-4類型的視頻流。例如,在文獻(xiàn)ITU-TRec.H264/ISO/IEC14496-10AVC(MPEG4)中對(duì)該標(biāo)準(zhǔn)進(jìn)行了描述。該領(lǐng)域是廣播通過無線電、衛(wèi)星或電纜信道的電視節(jié)目的領(lǐng)域(被稱為"廣播"),還是廣播根據(jù)因特網(wǎng)協(xié)議或IP、通過固定線路或無線、在ADSL上廣播電視節(jié)目的領(lǐng)域(也被稱為"廣播波段(broadband)")。這里所定義的比特速率降低方法或"速率轉(zhuǎn)換"包括將根據(jù)標(biāo)準(zhǔn)進(jìn)行編碼的數(shù)據(jù)流的傳輸比特速率改變?yōu)橥ǔ8鶕?jù)相同標(biāo)準(zhǔn)的另一編碼數(shù)據(jù)流,在轉(zhuǎn)換域中進(jìn)行比特速率降低。速率轉(zhuǎn)換方法必定不同于代碼轉(zhuǎn)換方法,代碼轉(zhuǎn)換方法包括對(duì)圖像進(jìn)行解碼,然后使用編碼器對(duì)其重新編碼。在像素層級(jí)上執(zhí)行編碼和解碼,其原因在于該方法也被稱為像素域中的代碼轉(zhuǎn)換。盡管比特速率降低方法有時(shí)也被稱為"轉(zhuǎn)換域中的代碼轉(zhuǎn)換",但是將為下文的像素域而保留術(shù)語"轉(zhuǎn)換"。應(yīng)當(dāng)注意,如上所述,如果比特速率降低通常與相同標(biāo)準(zhǔn)的圖像相關(guān),則代碼轉(zhuǎn)換可以提供新標(biāo)準(zhǔn)的圖像。該降低可以包括數(shù)據(jù)的部分解碼,例如DCT系數(shù)的去量化(如果使用MPEG標(biāo)準(zhǔn),則根據(jù)所需比特速率的該數(shù)據(jù)的逆部分重新編碼、重新量化)。在最終用戶或多個(gè)用戶處來自其產(chǎn)生、存儲(chǔ)或發(fā)射地點(diǎn)的視頻的傳輸系統(tǒng)可以涉及許多構(gòu)建者和多個(gè)轉(zhuǎn)換。具體地,出于經(jīng)濟(jì)或商業(yè)方面的考慮(例如,插入廣告),必須轉(zhuǎn)換內(nèi)容、視頻以使其適于傳輸、可用帶寬的限制。這些轉(zhuǎn)換有時(shí)需要降低所傳輸?shù)囊曨l的比特速率,那么比特速率降低或視頻流代碼轉(zhuǎn)換的任何技術(shù)是必要的。其在于將編碼視頻入射至具有較低比特速率的另一編碼視頻流。視頻代碼轉(zhuǎn)換在于將解碼器和視頻編碼器級(jí)聯(lián)。該技術(shù)具有靈活的優(yōu)點(diǎn),可以容易地改變編碼參數(shù)、格式、標(biāo)準(zhǔn)、編碼模式等,或者插入標(biāo)志圖。然而,尤其對(duì)于比特速率降低解決方案來說,在存在解碼器和編碼器的情況下,計(jì)算量非常大。實(shí)質(zhì)上,通過再用諸如第一編碼通路(pass)的運(yùn)動(dòng)區(qū)域、編碼模式等信息,可以減少編碼器層級(jí)上的計(jì)算。事實(shí)上,從原始比特速率中獲得的越多,確認(rèn)所使用的編碼判決合適的假設(shè)越少。圖1示出了根據(jù)現(xiàn)有技術(shù)的視頻流代碼轉(zhuǎn)換設(shè)備,該設(shè)備并不使用第一編碼通路的信息。參考號(hào)為1的編碼器從源圖像接收視頻數(shù)據(jù)。按照典型的方式,該編碼器1包括運(yùn)動(dòng)估計(jì)器3,用于計(jì)算用于幀內(nèi)模式下編碼的運(yùn)動(dòng)矢量;以及例如根據(jù)成本的編碼模式的判決模塊4。電路2是使用尤其是離散余弦變換和量化的編碼核心。將因此而編碼的數(shù)據(jù)流或若對(duì)代碼轉(zhuǎn)換做出參考的情況下的原始數(shù)據(jù)流傳送至解碼器5,該解碼器5執(zhí)行解碼器的逆操作以提供解碼后的圖像。編碼器類型1的第二編碼器6使用運(yùn)動(dòng)估計(jì)電路8的信息來執(zhí)行來自編碼核心7的編碼操作、以及來自編碼模式判決電路9的編碼操作,從而以所需比特速率提供代碼轉(zhuǎn)換后的流。圖2示出了根據(jù)現(xiàn)有技術(shù)的視頻流代碼轉(zhuǎn)換設(shè)備,該設(shè)備使用了第一編碼通路的信息。解碼器5的電路上游是相同的。通過解碼器5,在與解碼后的圖像同時(shí)來發(fā)送運(yùn)動(dòng)信息和編碼模式判決,從而以所需比特速率提供代碼轉(zhuǎn)換后的流。這里,由于信息來自解碼器5,所以運(yùn)動(dòng)估計(jì)和編碼模式判決電路并不是必要的。編碼核心11易于編碼核心7處理電路8和9的信息相類似的方式來處理該信息。圖3示出了包括級(jí)聯(lián)的MPEG-2或AVC類型的視頻解碼器和編碼器的主要模塊,該視頻解碼器和編碼器由圖中的虛線框出。將源信號(hào)發(fā)送至編碼器的輸入,該輸入也是可變長(zhǎng)度解碼電路VLD15的輸入。然后,該信號(hào)經(jīng)過逆量化電路IQ116、逆離散余弦變換IDCT17、加法器28和濾波器18。濾波器的輸出是解碼電路的輸出。該輸出與由存儲(chǔ)器和運(yùn)動(dòng)補(bǔ)償MC或幀內(nèi)預(yù)測(cè)電路所構(gòu)成的電路19的輸入連接。根據(jù)通過VLD電路接收到的流解碼后的運(yùn)動(dòng)矢量V中獲得補(bǔ)償。由相鄰塊、根據(jù)通過VLD電路接收到的流解碼后的運(yùn)動(dòng)矢量幀內(nèi)預(yù)測(cè)來構(gòu)成幀內(nèi)預(yù)測(cè)。在加法器28輸入處,向解碼后的殘余塊加上來自圖像的預(yù)測(cè)塊、或在19處存儲(chǔ)的重構(gòu)參考圖像的塊、以及來自與解碼塊相關(guān)聯(lián)的運(yùn)動(dòng)矢量V或幀內(nèi)預(yù)測(cè)模式的塊。將在濾波器輸出處的解碼圖像發(fā)送至編碼器的輸入,以順序地提供給減法器29、離散余弦變換電路DCT20、量化器Q221、可變長(zhǎng)度編碼電路VLC22,該VLC22的輸出是以新比特速率編碼的數(shù)據(jù)流。通過逆量化器IQ223、逆離散余弦變換電路IDCT24來重構(gòu)在量化器Q2的輸出處轉(zhuǎn)換并量化的系數(shù)塊。被重構(gòu)并發(fā)送到加法器30的第一輸入的殘余塊加上發(fā)送給該加法器30的第二輸入的預(yù)測(cè)塊。通過濾波器25對(duì)在該加法器的輸出處獲得的重構(gòu)塊進(jìn)行濾波,然后存儲(chǔ)在電路26中,因而電路26存儲(chǔ)被編碼的重構(gòu)圖像。與存儲(chǔ)電路、構(gòu)成參考電路26的設(shè)置相關(guān)聯(lián)的運(yùn)動(dòng)補(bǔ)償和幀內(nèi)預(yù)測(cè)電路根據(jù)接收到的運(yùn)動(dòng)矢量執(zhí)行運(yùn)動(dòng)補(bǔ)償(幀間預(yù)測(cè)或幀內(nèi)預(yù)測(cè)的情況),從而定義圖像中的預(yù)測(cè)塊。在減法器29的第二輸入上傳送預(yù)測(cè)塊,在幀間編碼模式或幀內(nèi)預(yù)測(cè)模式下,減法器29在其輸出提供了殘余塊。通過編碼器來計(jì)算運(yùn)動(dòng)矢量,因而編碼器包括運(yùn)動(dòng)估計(jì)電路27?;蛘哌@些矢量來自于解碼電路,因而節(jié)省了該運(yùn)動(dòng)估計(jì)器,如上所述,減損了質(zhì)量。G.J.Keesman在文獻(xiàn)"Multi-programVideoDataCompression"ThesisTechnischeUniversiteitDelft.ISBN90-74445-20-9,1995中提出了一種簡(jiǎn)化的結(jié)構(gòu),該結(jié)構(gòu)考慮了DCT變換和運(yùn)動(dòng)補(bǔ)償?shù)木€性。圖4示出了這種比特速率降低的簡(jiǎn)化結(jié)構(gòu)T2。添加了量化誤差逆向環(huán)。將壓縮后的視頻數(shù)據(jù)流發(fā)送至可變長(zhǎng)度解碼電路VLD40的輸入,然后至逆量化電路IQ141,例如,該逆量化電路IQ141使用編碼期間所使用的量化步驟執(zhí)行去量化操作。發(fā)送至減法器42的第一輸入的去量化系數(shù)塊減去來自離散余弦變換電路DCT49的再量化誤差預(yù)測(cè),被發(fā)送至減法器的第二輸入。因此,在幀間模式下,當(dāng)去量化后的系數(shù)塊是幀間殘余塊時(shí),對(duì)于通過關(guān)聯(lián)運(yùn)動(dòng)矢量與當(dāng)前塊匹配的該誤差圖像的去量化誤差塊,這些塊包括從存儲(chǔ)的參考圖像的去量化誤差圖像中計(jì)算出的誤差預(yù)測(cè)。在幀內(nèi)模式下,當(dāng)去量化后的系數(shù)塊是幀內(nèi)殘余塊時(shí),這些塊是從先前針對(duì)用于所述當(dāng)前系數(shù)塊的幀內(nèi)預(yù)測(cè)編碼模式所處理和采用的當(dāng)前圖像的塊或宏塊中計(jì)算得到的去量化誤差。因而在空間域中計(jì)算的預(yù)測(cè)去量化誤差塊經(jīng)過離散余弦變換49來提供變換域中的誤差塊、從去量化的當(dāng)前塊中減得的塊。將如此獲得的修正后的系數(shù)塊發(fā)送至量化電路Q243,然后至可變長(zhǎng)度編碼電路VLC44,從而提供代碼轉(zhuǎn)換后的視頻數(shù)據(jù)流,通過量化器43的中間量化步驟Q2的選擇轉(zhuǎn)換至所需的比特速率。在所述量化器Q243的輸出處,也將信號(hào)發(fā)送至參考號(hào)為45的逆量化器IQ2。在通過減法器46從量化步驟Q2的量化和去量化中減去在量化步驟Q1處的量化和去量化之后,該電路的輸出給出了重構(gòu)的修正系數(shù)塊。該差值表示所得到的再量化誤差。將由這些修正系數(shù)塊的再量化誤差所構(gòu)成的、該減法器46的輸出處的重構(gòu)的再量化誤差塊發(fā)送至逆離散余弦變換電路47,通過電路48來存儲(chǔ)在空間域中獲得的誤差塊。針對(duì)幀間模式編碼,獲得了空間域中誤差的圖像,通過對(duì)系數(shù)再量化來得到該誤差。對(duì)在參考圖像中得到的誤差進(jìn)行存儲(chǔ),從而在例如基于參考圖像的雙向型或P型圖像的幀間編碼過程中來使用該誤差。在空間域中將系數(shù)塊的這些再量化誤差進(jìn)行解譯,從而能夠使用運(yùn)動(dòng)補(bǔ)償,將域運(yùn)動(dòng)矢量有關(guān)的信息發(fā)送至包括存儲(chǔ)塊和運(yùn)動(dòng)補(bǔ)償塊的電路48。在幀內(nèi)模式中,這些是存儲(chǔ)在空間域中的相鄰塊,從而能夠根據(jù)用于幀內(nèi)預(yù)測(cè)的相鄰塊的亮度值來計(jì)算再量化誤差。從電路48中提取針對(duì)幀間預(yù)測(cè)所計(jì)算的幀內(nèi)預(yù)測(cè)塊或運(yùn)動(dòng)補(bǔ)償塊,在發(fā)送至減法器42的第二輸入之前,通過離散余弦變換電路49進(jìn)行變換。實(shí)質(zhì)上,存儲(chǔ)器包括用于幀間編碼的多個(gè)參考圖像。當(dāng)對(duì)當(dāng)前塊進(jìn)行再量化時(shí),因而可以去除針對(duì)在編碼期間所述當(dāng)前塊所基于的參考圖像或相鄰塊所得到的誤差。事實(shí)上,解碼器將向這些參考提供該再量化誤差。可以將這種簡(jiǎn)化方式應(yīng)用于無需使用幀內(nèi)預(yù)測(cè)的MPEG2或MPEG4部分2型的代碼轉(zhuǎn)換、或者應(yīng)用于MPEG4部分10或AVC編碼,然而環(huán)路中不存在濾波器引入了輕微的劣化。一方面,該簡(jiǎn)化的結(jié)構(gòu)T2使得能夠刪除運(yùn)動(dòng)步驟塊和逆量化塊,另一方面,能夠刪除兩個(gè)圖像存儲(chǔ)模塊之一。該結(jié)構(gòu)因而需要較少的計(jì)算功率和較少的存儲(chǔ)資源。不會(huì)對(duì)解碼后的圖像進(jìn)行重構(gòu),存儲(chǔ)模塊用于存儲(chǔ)由于再量化導(dǎo)致的誤差。該結(jié)果與代碼轉(zhuǎn)換圖并不完全相同,一方面在于量化和逆量化操作,另一方面,離散余弦變換和逆變換計(jì)算(它們是線性操作)導(dǎo)致了舍入(rounding)。同樣,運(yùn)動(dòng)補(bǔ)償?shù)目臻g域中的操作使用來自針對(duì)相鄰塊的亮度值上的線性組合的預(yù)測(cè)塊的線性內(nèi)插或計(jì)算操作,該運(yùn)動(dòng)補(bǔ)償?shù)目臻g域中的操作通過計(jì)算舍入來生成不能被T2結(jié)構(gòu)所考慮到的誤差。因而引入了在圖像組或GOP上累積的劣化,該劣化被稱為"漂移",因而一些圖像用作針對(duì)下面圖像的編碼的預(yù)測(cè)。簡(jiǎn)化結(jié)構(gòu)T2基于在用于預(yù)測(cè)的塊上得到的再量化誤差的補(bǔ)償。該從當(dāng)前塊的殘余中減去誤差,因而誤差不會(huì)在圖像的幀內(nèi)預(yù)測(cè)中傳播、或者基于時(shí)間在幀間時(shí)間預(yù)測(cè)中傳播。在不對(duì)殘余進(jìn)行編碼的情況下,因而不會(huì)執(zhí)行該誤差補(bǔ)償,而誤差可以傳播。
發(fā)明內(nèi)容本發(fā)明致力于克服以上所描述的缺點(diǎn)。其目的在于,通過根據(jù)第一量化步驟的去量化、然后根據(jù)第二量化步驟的再量化,將第一編碼視頻數(shù)據(jù)流轉(zhuǎn)換為第二流的比特速率降低方法,所述編碼使用根據(jù)參考圖像計(jì)算預(yù)測(cè)塊的預(yù)測(cè)模式,其特征在于,所述方法包括在第一量化步驟處去量化的系數(shù)塊的修正步驟,該步驟使用從重構(gòu)再量化誤差塊中獲得的參考圖像的預(yù)測(cè)去量化誤差塊,來給出修正后的系數(shù)塊;再量化的塊是修正后的系數(shù)塊;以及-如果根據(jù)"跳過的宏塊"模式對(duì)當(dāng)前宏塊進(jìn)行編碼,并且如果該宏塊的至少一個(gè)修正后的系數(shù)塊具有非空或大于預(yù)定閾值的系數(shù),則將宏塊的編碼模式修改為不同于"跳過的宏塊"的模式,修改或添加數(shù)據(jù)流的數(shù)據(jù),以指定該模式和系數(shù)值。根據(jù)特定實(shí)施方式,如果當(dāng)前宏塊是非跳過的宏塊,如果該宏塊的系數(shù)塊具有為空或小于預(yù)定閾值系數(shù),并且如果滿足"跳過的宏塊"模式條件,則將宏塊的編碼模式改變?yōu)?跳過的宏塊"模式。"跳過的宏塊"模式條件是非跳過的宏塊參考參考列表LO的圖像0(refldxL0=0),以及運(yùn)動(dòng)矢量等于預(yù)測(cè)運(yùn)動(dòng)矢量。根據(jù)特定實(shí)施方式,除了殘余數(shù)據(jù)之外,修改或添加后的流的數(shù)據(jù)還-在片段數(shù)據(jù)的句法級(jí),與以下字段有關(guān)mb—skip—flagmb—field—decoding—flag-在宏塊層的句法級(jí),與以下字段有關(guān)mbtype-在宏塊預(yù)測(cè)句法級(jí),與以下字段有關(guān)refidx10和refidxll,mvd10禾QmvdII-transform—size—8x8。根據(jù)特定實(shí)施方式,如果宏塊模式屬于片段P,則最初跳過的宏塊模式變?yōu)镻—LO—16x16,以及如果宏塊模式屬于片段B,則最初跳過的宏塊模式變?yōu)锽_Direct—16x16。根據(jù)特定實(shí)施方式,如果宏塊屬于MBAFF類型的圖像,則考慮標(biāo)記"mb—field—decoding—flag"的值,以確定是否滿足條件。根據(jù)特定實(shí)施方式,通過運(yùn)動(dòng)補(bǔ)償,從與由參考圖像的重構(gòu)誤差塊所形成的誤差圖像的當(dāng)前塊相關(guān)聯(lián)的運(yùn)動(dòng)矢量中獲得預(yù)測(cè)誤差塊。根據(jù)特定實(shí)施方式,通過幀內(nèi)預(yù)測(cè),從與當(dāng)前塊相關(guān)聯(lián)的幀內(nèi)預(yù)測(cè)模式中獲得預(yù)測(cè)誤差塊,根據(jù)當(dāng)前圖像的重構(gòu)塊重構(gòu)預(yù)測(cè)。根據(jù)特定實(shí)施方式,根據(jù)MPEG4部分10標(biāo)準(zhǔn)對(duì)視頻數(shù)據(jù)流進(jìn)行編碼。受益于所提出的方法,在沒有運(yùn)動(dòng)補(bǔ)償或參考圖像重構(gòu)的情況下,極大地衰減了由于比特速率降低的簡(jiǎn)化結(jié)構(gòu)所導(dǎo)致的圖像質(zhì)量的劣化。再量化誤差傳播,宏塊誤差可以受到影響其殘余為空的所有宏塊可以變得非空并相反。以要與另一模式解碼相同的方式對(duì)"跳過的宏塊"模式中的宏塊進(jìn)行測(cè)試,當(dāng)這一點(diǎn)可能時(shí),實(shí)現(xiàn)針對(duì)這些宏塊的較好質(zhì)量解碼。因此,可以以與編碼模式不同的模式來執(zhí)行宏塊的解碼。因而降低了由于這種類型的編碼與比特速率轉(zhuǎn)換的組合而導(dǎo)致的誤差,該誤差是由于可以將跳過的宏塊用作解碼器層級(jí)上的預(yù)測(cè)的事實(shí),因而是潛在的漂移源。所有這些誤差都更加不便,因?yàn)檫@些誤差特別在統(tǒng)一區(qū)域中可見,該區(qū)域有利于在"跳過的宏塊"模式下對(duì)宏塊的編碼。另一方面,在比特速率轉(zhuǎn)換器的層級(jí)上使用"跳過的宏塊"的可能性使得能夠提高壓縮率。參照附圖,本發(fā)明的其他特定特征和優(yōu)點(diǎn)將從作為非限制性示例的以下的描述中顯而易見,其中圖1是根據(jù)現(xiàn)有技術(shù)的代碼轉(zhuǎn)換方法,圖2是使用來自第一通路的信息的根據(jù)現(xiàn)有技術(shù)的代碼轉(zhuǎn)換方法,圖3是根據(jù)現(xiàn)有技術(shù)的AVC代碼轉(zhuǎn)換方法,圖4是根據(jù)現(xiàn)有技術(shù)的比特速率降低的簡(jiǎn)化結(jié)構(gòu),圖5是根據(jù)本發(fā)明的比特速率降低的簡(jiǎn)化結(jié)構(gòu)。具體實(shí)施方式接下來,為了精確,會(huì)在括號(hào)中提到AVC標(biāo)準(zhǔn)的術(shù)語和首字母縮寫詞,其他術(shù)語僅是近似的。括號(hào)中的術(shù)語是該標(biāo)準(zhǔn)(尤其在第3部分)中定義的術(shù)語。AVC標(biāo)準(zhǔn)提供了被稱為"跳過"模式或"跳過的宏塊"模式的多個(gè)編碼模式,對(duì)于所述模式,不對(duì)宏塊殘余進(jìn)行編碼,并認(rèn)為宏塊殘余為空-針對(duì)宏塊的"P一Skip"模式屬于類型P的片段(P片段)、或者類型SP的片段(SP片段)。-針對(duì)宏塊的"B一Skip"模式屬于類型B的片段(B片段)。然而,這些在編碼成本方面經(jīng)濟(jì)的模式僅在特定條件下是可能的,該特定條件是,僅使在系統(tǒng)末尾處的解碼器在沒有其他信息的情況下重構(gòu)所述宏塊。在標(biāo)準(zhǔn)、例如在文獻(xiàn)"Draftofversion4ofH.264/AVC(ITU-TRecommendationH.264andISO/IEC14496-10(MPEG-4part10)AdvancedVideoCoding)",2005年1月11日,部分8.4"interpredictionprocess"、子部分8.4.1.1"DerivationprocessforlumamotionvectorsforskippedmacroblockinPandSPslice"禾口8.4,1.2"DerivationprocessforlumamotionvectorsforB—Skip"中定義了這些預(yù)測(cè)/重構(gòu)過程在句法結(jié)構(gòu)中的層級(jí)或宏塊層不包含與根據(jù)這些模式之一編碼的宏塊有關(guān)的數(shù)據(jù)。因此,在上層定義了宏塊,它是與片段(片段數(shù)據(jù))有關(guān)的數(shù)據(jù)字段中的片段,因此,解碼器負(fù)責(zé)根據(jù)當(dāng)前的相鄰宏塊來預(yù)測(cè)或重構(gòu)所述宏塊,并通過推斷(即推導(dǎo)信息),句法元素不存在于比特流中。根據(jù)情況,該標(biāo)準(zhǔn)針對(duì)"P一skip"模式或"B一skip"模式提供了所有推理法則。因此,當(dāng)將值分配給不同類型的宏塊(mb_type)時(shí),針對(duì)屬于片段P和SP的宏塊的表格7-13、針對(duì)屬于片段B的宏塊的表格7-14,在"跳過的宏塊"的宏塊層中不發(fā)送信息,因?yàn)楦緵]有對(duì)該信息進(jìn)行編碼。通過自身推導(dǎo)出參考號(hào),不能確定針對(duì)塊16*16的幀間模式或針對(duì)子分區(qū)(partition)8*8的直接模式來對(duì)編碼特性進(jìn)行解碼的類型(mb—type)(根據(jù)屬于P片段還是屬于B片段而被稱為"P一skip"或"B一skip")。AVC標(biāo)準(zhǔn)"DerivationprocessforlumamotionvectorsforskippedmacroblockinPandSPslice"的部分8.4.1.1涉及"P—Skip"模式。其在參考圖像L0的列表中定義了索引refldxL0,將運(yùn)動(dòng)矢量mvL0分配給根據(jù)"跳過的宏塊"模式編碼的宏塊。refldxLO索引的計(jì)算非常簡(jiǎn)單,因?yàn)樗偸菫?。因此推導(dǎo)出,在編碼期間,已經(jīng)通過比特速率降低操作消除了所有殘余的P類型宏塊是跳過的宏塊編碼"P一Skip模式"的備選(若其殘余參考了列表L0的第一圖像)。針對(duì)運(yùn)動(dòng)矢量mvL0的計(jì)算,由于其涉及到當(dāng)前宏塊的左相鄰(A)和上相鄰(B)宏塊、以及它們各自的參數(shù)refldxLOA,refldxLOB,mvL0A:nwLOB而更加復(fù)雜。當(dāng)MBAFF模式(宏塊自適應(yīng)幀字段)有效時(shí),由于在這種情況下,宏塊是雙幀類型(currMbFrameFlag-TRUE)或幀類型(currMbFrameFlag-FALSE)的事實(shí)結(jié)合其是宏塊對(duì)的頂宏塊(mbIsTopMbFlag=TRUE)或底宏塊(mblsTopMbFlag=FALSE)的事實(shí)開始,所以該相鄰計(jì)算更加復(fù)雜。其所有殘余已經(jīng)通過比特速率降低操作消除的P類型宏塊是"P—Skip模式"跳過的宏塊編碼模式的備選(如果標(biāo)記cmrMbFmmeFlag是與將在"P—Skip模式"跳過的宏塊編碼模式中推導(dǎo)出來的標(biāo)記)?,F(xiàn)在,在"P_Skip"模式下,數(shù)據(jù)流中不存在使能標(biāo)記cmrMbFmmeFlag的符號(hào)元素mb_field—decoding—flag。因此,推理法則如下-如果在相同片段中存在緊靠當(dāng)前宏塊對(duì)左側(cè)的宏塊對(duì),則標(biāo)記mb一field一decoding_flag的值必定被推導(dǎo)為等于該相鄰對(duì)的標(biāo)記mb—field_decoding—flag的值。-否則,如果在相同片段中存在緊靠當(dāng)前宏塊對(duì)上側(cè)的宏塊對(duì),則標(biāo)記mb—field—decoding—flag的值必定被推導(dǎo)為等于該相鄰對(duì)的標(biāo)記mb—field—decoding—flag的值。-否則,標(biāo)記mb—field—decoding—flag的值必定被推導(dǎo)為等于"FALSE"。因此推導(dǎo)出,在編碼期間,在MBAFF模式下,如果標(biāo)記mb—field—decoding—flag等于其左側(cè)相鄰對(duì)(如果存在)之一,默認(rèn)等于上側(cè)相鄰對(duì)(如果存在)之一,并默認(rèn)等于"FALSE",則其所有殘余已經(jīng)通過比特速率降低操作消除的P類型宏塊是"P一Skip模式"跳過的宏塊編碼模式的備選。不應(yīng)忘記將亮度運(yùn)動(dòng)矢量mvLO轉(zhuǎn)換為色度運(yùn)動(dòng)矢量mvCLO的過程。如果在幀模式下對(duì)當(dāng)前塊進(jìn)行編碼,并且通過索引"refldxLO"定義的參考圖像不是相同類型(上幀源(TOP)、下幀參考(BOTTOM)或相反)的,則在mvCL0與mvL0之間將運(yùn)動(dòng)矢量的分量重新調(diào)整土2。因此推導(dǎo)出,在編碼期間,在MBAFF模式下,如果定義了上(TOP)或下(BOTTOM)宏塊的字段內(nèi)容與所使用的參考之一相同,則其所有殘余已經(jīng)通過比特速率降低操作消除的P類型宏塊是"P—Skip模式"跳過的宏塊編碼模式的備選。部分"DerivationprocessforlumamotionvectorsforB—Skip"涉及類型"B_skip"的宏塊。描述了從參考圖像L0和L1的列表、子分區(qū)矢量subMvCnt個(gè)數(shù)計(jì)數(shù)器的運(yùn)動(dòng)矢量mvL0和mvLl、以及預(yù)測(cè)列表predFlagLO和predFlagLl的使用標(biāo)簽中獲得索引refldxL0和refldxLl。在編碼期間,在MBAFF模式下,如果標(biāo)記mb—field—decoding_flag等于其左側(cè)相鄰對(duì)(如果存在)之一,默認(rèn)等于上側(cè)相鄰對(duì)(如果存在)之一,并默認(rèn)等于"FALSE",則其所有殘余已經(jīng)通過比特速率降低操作消除的B類型宏塊是"BP一Skip模式"跳過的宏塊編碼模式的備選。在基本的模式P—Skip和B一Skip之上,也可以發(fā)信號(hào)通知不存在僅針對(duì)給定的當(dāng)前宏塊的8*8分區(qū)或4*4子分區(qū)的殘余的編碼。這是參數(shù)CBP、編碼塊圖樣句法元素,使得可以針對(duì)整個(gè)宏塊定義空殘余塊或分區(qū)。掩碼值"mask(i)"與每個(gè)分區(qū)(i)相關(guān)聯(lián)。因此,值"。8&&mask(i)"(&=logicalAND)"定義了分區(qū)i和殘余值??罩抵甘驹摲謪^(qū)的殘余為空。利用宏塊層級(jí),再量化誤差傳播,可以分配宏塊的子分區(qū)的殘余其所有殘余為空(CBP&&mask(i)=0)的宏塊的子分區(qū)可以變得非空并相反。圖5示出了根據(jù)本發(fā)明的比特速率降低結(jié)構(gòu)的示例。該圖示是從圖4推導(dǎo)出來的,使用了對(duì)于相同電路的參考。僅對(duì)圖4的附加部分進(jìn)行描述。將比特速率轉(zhuǎn)換的數(shù)據(jù)流發(fā)送至比特速率轉(zhuǎn)換器的輸入,它也是可變長(zhǎng)度解碼電路VLD40的輸入。圖中未示出的處理電路處理不同的操作。當(dāng)與片斷層相關(guān)的數(shù)據(jù)指示"跳過"宏塊,使用空系數(shù)的值重新組成該宏塊,推導(dǎo)出運(yùn)動(dòng)矢量,通過處理電路執(zhí)行計(jì)算。因而,針對(duì)任何宏塊,將所產(chǎn)生的宏塊發(fā)送至其量化操作是透明的電路41,然后至執(zhí)行再量化誤差修正的子轉(zhuǎn)包器(subcontractor)42。通過量化電路Q243對(duì)修正塊進(jìn)行量化,例如作為量化步驟,先前宏塊的量化步驟或先前宏塊量化步驟的方式。將電路43的輸出發(fā)送至用于計(jì)算再量化誤差的逆量化電路45的輸入,也發(fā)送至被稱為計(jì)算電路CBP+skip的電路調(diào)用計(jì)算電路,所計(jì)算的數(shù)據(jù)接下來被發(fā)送至可變長(zhǎng)度編碼電路VLC44。與先前的配置相關(guān),將CBP+skip的再計(jì)算電路插入再量化電路Q243和電路VLC44的輸入之間,以計(jì)算參數(shù)CBP和標(biāo)記mb一skip—flag。而在現(xiàn)有技術(shù)中,即使根據(jù)再量化誤差修正的該宏塊不同于零,在比特速率降低期間,為宏塊保留"跳過的宏塊"模式,通過該電路,如果可以在量化操作之后,根據(jù)"跳過的宏塊"模式對(duì)非跳過的宏塊進(jìn)行編碼,則根據(jù)本發(fā)明的方法將確定是否必須保存"跳過的宏塊"編碼模式和相反。因此,針對(duì)從量化修正系數(shù)塊獲得的宏塊(CBP&&mask(i)),在兩個(gè)步驟中執(zhí)行參數(shù)CBP的另一系統(tǒng)計(jì)算,不同于跳過的宏塊標(biāo)記(mb一skip一flag)的計(jì)算在第一步驟中,處理多個(gè)分區(qū)。如果遵循由于一方面的再量化誤差和另一方面的再量化Q2導(dǎo)致的修正,則宏塊的分區(qū)(i)的系數(shù)殘余為空或小于閾值,而乘積"CBP&mask(i)"處于1,將"CBP&mask(i)"比特設(shè)為零,指示宏塊的該分區(qū)(i)(最初編碼為具有非空系數(shù))現(xiàn)在僅具有空系數(shù)或接近于零。相反,如果分區(qū)(i)的至少一個(gè)殘余系數(shù)是非空,而乘積"CBP&mask(i)"處于零,則將"CBP&mask(i)"比特設(shè)為1,指示該分區(qū)(i)(最初編碼為具有所有空系數(shù))現(xiàn)在具有不同于零的系數(shù)。在第二步驟中,對(duì)宏塊整體進(jìn)行處理針對(duì)宏塊的所有分區(qū)(i)計(jì)算乘積"CBP&mask(i)"。如果它對(duì)于所有值均等于零,即如果遵循由于一方面的再量化誤差和另一方面的再量化Q2導(dǎo)致的修正,則宏塊所有分區(qū)的所有系數(shù)殘余為空或小于閾值,宣布宏塊為"跳過的宏塊"模式的備選。在相反的情況下,宣布宏塊是非備選。如果宏塊是針對(duì)"跳過的宏塊"的備選、如果將"跳過的宏塊"的其他條件聯(lián)合、以及如果標(biāo)記"mb—skip_flag"處于0,即如果在編碼期間宏塊沒有處于跳過的宏塊模式下,則改變標(biāo)記"mb_Skip_flag"并設(shè)為1。相反,如果宏塊不是針對(duì)"跳過的宏塊"的備選、以及如果標(biāo)記"mb—skip—flag"處于1,則修改該標(biāo)記"mb—skip—flag"并設(shè)為0,對(duì)所考慮的宏塊殘余進(jìn)行編碼。在這后一情況下,如果宏塊處于P—Skip模式中,則該模式切換至P—L0一16xl6模式。如果宏塊處于B—Skip模式中,則該模式切換至"B—Direct—16x16"模式。如果圖像在MBAFF模式下編碼,則數(shù)據(jù)流中的第一結(jié)果是明確出現(xiàn)"mb—field—decoding—flag"標(biāo)記。在片段數(shù)據(jù)句法(§7.3.4:片段數(shù)據(jù)句法)中,該標(biāo)記指示編碼是否處于幀或比特幀模式下(§7.4.4:片段數(shù)據(jù)語義)。如果宏塊是頂宏塊(TOP)(CurrMbAddr%2==0),則必須使該標(biāo)記等于這一個(gè),這是在"跳過"模式(P—Skip或B一Skip)中推導(dǎo)出來的,即從左或頂宏塊對(duì)之一中推導(dǎo)出來的。在下一宏塊是底宏塊(BOTTOM)(CurrMbAddr%2==1&&prevMbSkipped),明確編碼該標(biāo)記"mb—field—decoding—flag"的情況下,它必定不再這樣做。然后有必要檢查"TOP"標(biāo)記等于在跳過的宏塊模式中推導(dǎo)出的標(biāo)記,也等于針對(duì)底宏塊(BOTTOM)顯式編碼得到的標(biāo)記。如果宏塊是底宏塊(BOTTOM)(CurrMbAddr%2==1),則考慮兩種情況-先前宏塊自身是"跳過的宏塊"。然后,必須將mb—field—decoding—flag標(biāo)記引入數(shù)據(jù)流,并且使該標(biāo)記等于在跳過的宏塊模式下(P—Skip或B—Skip)推導(dǎo)出來的。-對(duì)于先前宏塊,它不處于跳過的宏塊模式下。因此mb—field—decoding—flag標(biāo)記不出現(xiàn)在數(shù)據(jù)流中。在宏塊層層級(jí)上,還必須確保填充了在"跳過的宏塊"模式下推導(dǎo)出的信息的不同字段。更一般地,與"跳過的宏塊"模式之一的上下文一起工作,例如使用DCT4*4,將標(biāo)記transform—size—8x8—flag推導(dǎo)為具有值0。因此,必須檢查特定多個(gè)條件以將非跳過的宏塊的編碼模式修改為"跳過的宏塊"。在編碼期間,檢查使宏塊能夠成為針對(duì)"跳過的宏塊"模式的備選的條件符合非跳過的宏塊的編碼條件。由于針對(duì)根據(jù)運(yùn)動(dòng)矢量對(duì)預(yù)測(cè)塊的計(jì)算,跳過的宏塊可以僅參考列表LO的圖像0,則跳過的宏塊必須該參考LO的圖像0。換言之,空的殘余有必要參考列表L0的圖像號(hào)0。同樣,當(dāng)處于MBAFF模式中,由定義了非跳過的宏塊的幀或雙幀模式的標(biāo)記mb—field_decoding—flag所定義的幀或雙幀模式必須與在"跳過的宏塊"模式中推導(dǎo)出來的模式相同。在MBAFF模式中,也必須使"TOP"或"BOTTOM"字段等于所使用的參考的字段。"跳過的宏塊"模式至非跳過的模式的改變需要是數(shù)據(jù)流的字段內(nèi)填充實(shí)質(zhì)上要傳輸?shù)牧炕禂?shù)值。例如,在宏塊層中,標(biāo)準(zhǔn)的部分7.3.5指示必須填充cbp值的coded_block_pattem字段。如果跳過的宏塊必須改變模式,則必須檢查子分區(qū)的塊,從而針對(duì)這里所感興趣的情況計(jì)算定義了色度空殘余子分區(qū)的"cbp"。根據(jù)子分區(qū)來計(jì)算cbp值,無論它們是否為空,即無論它們是否具有空殘余系數(shù)。如果所有子分區(qū)均為空,則跳過的宏塊是"跳過的宏塊"模式的備選,這里假設(shè)cbp值等于零,因而它是非該改變模式的備選,可以檢查其他條件以對(duì)選擇做出決定。所描述的原始方法能夠沒有例外地針對(duì)所有宏塊防止再量化誤差的傳播,因而可以提高在通過類型T2的比特速率轉(zhuǎn)換過程對(duì)數(shù)據(jù)流進(jìn)行轉(zhuǎn)換之后解碼的圖像的質(zhì)量。為了示出該方法的有效性,在最初以2.87Mbps編碼、以及利用T2算法將比特速率轉(zhuǎn)換為不同的比特速率的SDTV視頻序列上獲得的以dB為單位的信噪比或PSNR來做出增益測(cè)量。<table>tableseeoriginaldocumentpage17</column></row><table>權(quán)利要求1、一種比特速率降低方法,用于通過根據(jù)第一量化步驟對(duì)系數(shù)塊去量化(41)、然后根據(jù)第二量化步驟對(duì)塊的再量化(43),來將第一編碼視頻數(shù)據(jù)流轉(zhuǎn)換為第二流,所述編碼使用根據(jù)參考圖像來計(jì)算預(yù)測(cè)塊的預(yù)測(cè)模式,其特征在于,所述方法包括在第一量化步驟處對(duì)去量化的系數(shù)塊的修正步驟(42),該步驟使用從重構(gòu)再量化誤差塊(48,49)中獲得的參考圖像的預(yù)測(cè)去量化誤差塊(48,49),來給出修正后的系數(shù)塊,其中再量化的塊(43)是修正后的系數(shù)塊;以及-如果根據(jù)“跳過的宏塊”模式對(duì)當(dāng)前宏塊進(jìn)行編碼,并且如果該宏塊的至少一個(gè)修正后的系數(shù)塊具有非空或大于預(yù)定閾值的系數(shù),則將宏塊的編碼模式修改(50)為不同于“跳過的宏塊”的模式,修改或添加(50)數(shù)據(jù)流的數(shù)據(jù),以指定該模式和系數(shù)值。2、如權(quán)利要求l所述的方法,其特征在于,如果當(dāng)前宏塊是非跳過的宏塊,如果該宏塊的系數(shù)塊具有為空或小于預(yù)定閾值系數(shù),并且如果滿足"跳過的宏塊"模式條件,則將宏塊的編碼模式改變?yōu)?跳過的宏塊"模式。3、如權(quán)利要求2所述的方法,其特征在于,"跳過的宏塊"模式條件是,該跳過的宏塊參照參考列表LO的圖像0(refldxL=0),并且該跳過的宏塊的運(yùn)動(dòng)矢量等于預(yù)測(cè)運(yùn)動(dòng)矢量。4、如權(quán)利要求l所述的方法,其特征在于,除了殘余數(shù)據(jù)之外,流的修改或添加的數(shù)據(jù)還-在片段數(shù)據(jù)的句法級(jí),與以下字段有關(guān)mb_skip—flagmb_field—decoding_flag-在宏塊層的句法級(jí),與以下字段有關(guān)mbtype-在宏塊預(yù)測(cè)句法級(jí),與以下字段有關(guān)refidx10和refidxll,mvd10禾口mvdII-transform—size—8x8。5、如權(quán)利要求l所述的方法,其特征在于,如果宏塊模式屬于片段P,則最初跳過的宏塊模式變?yōu)镻—L0_16xl6,以及如果宏塊模式屬于片段B,則最初跳過的宏塊模式變?yōu)锽_Direct—16x16。6、如權(quán)利要求2所述的方法,其特征在于,如果宏塊屬于MBAFF類型的圖像,則考慮標(biāo)記"mb—field—decoding—flag"的值,以確定是否滿足條件。7、如權(quán)利要求1所述的方法,其特征在于,通過運(yùn)動(dòng)補(bǔ)償(48),從與由參考圖像的重構(gòu)誤差塊所形成的誤差圖像的當(dāng)前塊相關(guān)聯(lián)的運(yùn)動(dòng)矢量中獲得預(yù)測(cè)誤差塊。8、如權(quán)利要求l所述的方法,其特征在于,通過幀內(nèi)預(yù)測(cè)(48),從與當(dāng)前塊相關(guān)聯(lián)的幀內(nèi)預(yù)測(cè)模式中獲得預(yù)測(cè)誤差塊,根據(jù)當(dāng)前圖像的重構(gòu)塊重構(gòu)預(yù)測(cè)。9、如權(quán)利要求1所述的方法,其特征在于,所述視頻數(shù)據(jù)流是根據(jù)MPEG4部分IO標(biāo)準(zhǔn)編碼的。全文摘要所述方法的特征在于,如果根據(jù)“跳過的宏塊”模式對(duì)當(dāng)前宏塊進(jìn)行編碼,并且如果該宏塊的至少一個(gè)修正后的系數(shù)塊具有非空或大于預(yù)定閾值的系數(shù),則將宏塊的編碼模式修改(50)為不同于“跳過的宏塊”的模式,修改或添加(50)數(shù)據(jù)流的數(shù)據(jù),以指定該模式和系數(shù)值。文檔編號(hào)H04N7/30GK101247522SQ20081000995公開日2008年8月20日申請(qǐng)日期2008年2月15日優(yōu)先權(quán)日2007年2月16日發(fā)明者菲利普·博爾德,阿尼塔·奧汗德申請(qǐng)人:湯姆森許可貿(mào)易公司