專利名稱:編碼的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及利用給定算法將一組輸入值編碼為一組系數(shù),此算法可以是離散余弦變換(DCT),此算法廣泛用于圖象與視頻編碼領(lǐng)域中。
背景技術(shù):
Pao和Sun[5]公開了,諸如H.263與MPEG的數(shù)字視頻編碼標(biāo)準(zhǔn)對(duì)于多媒體應(yīng)用正變得越來越重要。由于所要求的巨大的計(jì)算量,已有極大的努力來加速視頻編碼器的處理。以前,這些努力主要集中在快速運(yùn)動(dòng)估算算法上。然而,隨著運(yùn)動(dòng)估算算法變得優(yōu)化,為了加速視頻編碼器,還必須優(yōu)化諸如離散余弦變換(DCT)和逆DCT(IDCT)的其他函數(shù)。Pao和Sun提議用于DCT系數(shù)的一種理論模型。根據(jù)此模型,表明DCT系數(shù)的方差在運(yùn)動(dòng)補(bǔ)償預(yù)測(cè)之后能表示為最小平均絕對(duì)誤差(MMAE)的函數(shù)。從此統(tǒng)計(jì)模型中推導(dǎo)出具有多門限的自適應(yīng)方法來減少DCT、IDCT的計(jì)算、量化和逆量化。Pao和Sun還提出在量化步驟大時(shí)能夠進(jìn)一步加速DCT計(jì)算的DCT近似算法。利用可忽略的視頻質(zhì)量降低能實(shí)現(xiàn)處理速度的提高。
發(fā)明內(nèi)容
本發(fā)明的一個(gè)目的是支持給定算法的可換算性。為此,本發(fā)明提供了根據(jù)獨(dú)立權(quán)利要求定義的用于將一組輸入值編碼為一組系數(shù)的方法與設(shè)備、用于逆變換的方法與設(shè)備、視頻系統(tǒng)、信號(hào)、存儲(chǔ)媒體、用于確定給定算法的計(jì)算成本的方法與設(shè)備、數(shù)據(jù)庫和計(jì)算機(jī)程序。在從屬權(quán)利要求中定義了有益的實(shí)施例。
特別地,可換算性表示質(zhì)量能利用算法復(fù)雜性或計(jì)算能力來交換為了降低算法復(fù)雜性或計(jì)算能力,能以質(zhì)量的損耗為代價(jià),反之亦然。
本發(fā)明的第一實(shí)施例用于利用給定算法將一組輸入值編碼為一組系數(shù),此方法包括從在給定此組輸入值的情況下能夠利用此給定算法計(jì)算的總的一組可能系數(shù)中選擇要計(jì)算的系數(shù),其中選擇較高優(yōu)先級(jí)給予與其他系數(shù)相比要求較低計(jì)算成本的系數(shù);并且計(jì)算這些選擇的系數(shù)以獲得此組系數(shù)。通過選擇要求較低計(jì)算成本的系數(shù),在給定有限數(shù)量的計(jì)算步驟或有限的時(shí)間周期的情況下計(jì)算較高數(shù)量的系數(shù)。計(jì)算的系數(shù)的數(shù)量與質(zhì)量有關(guān)。
本發(fā)明對(duì)于將第一域(例如,時(shí)間或空間域)中的輸入值變換為第二域(例如,頻域)中的系數(shù)的算法特別有益。第二域中的系數(shù)可以包含有關(guān)第一域中所有值的信息,但只在不同于其他系數(shù)的給定電平上給出此信息。在這種情況中,如果可獲得更多的系數(shù),能給出第一域中這些值更準(zhǔn)確的表示。編碼有益地為視頻編碼,其中輸入值形成一組像素值,并且這些系數(shù)是從一組可能的變換系數(shù)中選擇的變換系數(shù)。
在本發(fā)明的有益實(shí)施例中,對(duì)于給定系數(shù)來說,計(jì)算成本至少部分地基于計(jì)算此給定系數(shù)所要求的計(jì)算步驟的數(shù)量減去能與其他選擇系數(shù)的計(jì)算共享的計(jì)算量,并且其中在計(jì)算步驟中,在計(jì)算共享這些共享計(jì)算步驟的其他系數(shù)時(shí)重復(fù)使用這些共享計(jì)算步驟的結(jié)果。通過在考慮能共享的計(jì)算步驟的數(shù)量的同時(shí)選擇要求較低計(jì)算成本的那些系數(shù)得到更優(yōu)化的選擇。在給定有限資源的情況下,以這種方式能計(jì)算更多的系數(shù)。在一個(gè)實(shí)際的實(shí)施例中,在選擇系數(shù)的計(jì)算中,將共享計(jì)算步驟的中間結(jié)果存儲(chǔ)在存儲(chǔ)器中并進(jìn)行檢索以便在需要時(shí)在計(jì)算其他系數(shù)時(shí)重復(fù)使用。
在該選擇步驟中,在給定最大的總計(jì)算成本的情況下能使計(jì)算的系數(shù)的數(shù)量最大。在此實(shí)施例中,在給定有限計(jì)算能力的情況下獲得最大的質(zhì)量。在此實(shí)施例中,選擇之后的計(jì)算順序可以是任意的。另外,如果給定要計(jì)算的系數(shù)的希望數(shù)量,能夠確定最低要求的計(jì)算成本。這對(duì)與其他算法或應(yīng)用相關(guān)的給定算法分配計(jì)算資源時(shí)可能是有用的。
根據(jù)有益的實(shí)施例,除了已經(jīng)計(jì)算的系數(shù)之外,還執(zhí)行下一個(gè)系數(shù)的重復(fù)選擇,直至滿足這下一個(gè)系數(shù)的計(jì)算成本與還未計(jì)算的其他可能的系數(shù)相比是最低的停止準(zhǔn)則。在此實(shí)施例中,“飛擊式(on-the-fly)”計(jì)算是可能的,其中在達(dá)到計(jì)算限制或某一時(shí)間周期時(shí),停止計(jì)算。此算法能夠重新編程為以此特定順序來處理這些計(jì)算步驟,直至達(dá)到(時(shí)間)限制。在此(時(shí)間)限制內(nèi),能隨時(shí)更新結(jié)果。此算法現(xiàn)在與能具有任意計(jì)算能力的所使用的計(jì)算機(jī)系統(tǒng)無關(guān)。此算法將在給定(時(shí)間)限制和可能的其他限制內(nèi)盡可能計(jì)算多的系數(shù)。在此實(shí)施例中,計(jì)算成本也優(yōu)選至少部分地基于計(jì)算下一個(gè)系數(shù)所要求的計(jì)算步驟的數(shù)量減去能夠在這下一個(gè)系數(shù)的計(jì)算與對(duì)于已計(jì)算的系數(shù)來說已執(zhí)行的計(jì)算步驟之間共享的計(jì)算步驟的數(shù)量。
可將本發(fā)明有益地應(yīng)用于可編程的視頻結(jié)構(gòu)中。在此實(shí)施例中,提供以相對(duì)可獲得的計(jì)算能力可換算視頻質(zhì)量為特征的可換算(MPEG)編碼算法,其計(jì)算能力可以取決于希望的應(yīng)用。在給定有限的計(jì)算能力的情況下,此實(shí)施例仍然盡可能好地保持質(zhì)量。視頻處理應(yīng)用的耗時(shí)基本算法之一是離散余弦變換(DCT)的計(jì)算,但本發(fā)明也可應(yīng)用于其他的算法。在變換算法的情況中,在給定的計(jì)算限制上,在此給定的計(jì)算限制內(nèi)計(jì)算最大數(shù)量的變換系數(shù)。
在本發(fā)明的優(yōu)選實(shí)施例中,使用至少部分地利用計(jì)算哪些系數(shù)確定的掃描順序。這樣的掃描順序可以例如每幀發(fā)送給解碼器,這允許每幀改變掃描順序,這在編碼器處理和比特率方面是有益的。每幀發(fā)送特定的掃描順序并因此此特定的掃描順序表示在發(fā)送信號(hào)中。如果所有計(jì)算的系數(shù)出現(xiàn)在發(fā)送的信號(hào)中,則可以在發(fā)送的信號(hào)中插入塊結(jié)束(EOB)來表示對(duì)于此給定塊不再發(fā)送其他的系數(shù)。
在本發(fā)明的另一個(gè)實(shí)施例中,使用預(yù)定的掃描順序,諸如MPEG中定義的Z形掃描或交替掃描,其中將預(yù)定值放置在用于未計(jì)算的變換系數(shù)的結(jié)果比特流中。此預(yù)定值在實(shí)際的實(shí)施例中為零。根據(jù)本發(fā)明的此實(shí)施例的信號(hào)因此根據(jù)在給定計(jì)算能力的情況下已經(jīng)計(jì)算的變換系數(shù)的數(shù)量具有特定的零模式。在低比特率的情況中,許多零是非最佳的。在此實(shí)施例中,符合MPEG的解碼器也能解碼發(fā)送的信號(hào)。因?yàn)橛?jì)算可能的變換系數(shù)的特定選擇,所以本發(fā)明的此實(shí)施例的結(jié)果在發(fā)送的信號(hào)中是可識(shí)別的。
對(duì)于給定的變換算法可以脫機(jī)確定有利的計(jì)算和/或掃描順序,此有利的順序存儲(chǔ)在編碼器的數(shù)據(jù)庫(例如,查找表)中。計(jì)算順序不一定與掃描順序相同,但為了節(jié)省存儲(chǔ)器,計(jì)算順序與掃描順序相同是優(yōu)選的。在使用非標(biāo)準(zhǔn)的掃描順序的情況中,應(yīng)插入已使用哪個(gè)掃描順序的指示。然而,在同一數(shù)據(jù)庫也存儲(chǔ)在解碼器中時(shí),優(yōu)選但不是必須將這些系數(shù)的順序或數(shù)據(jù)庫/查找表發(fā)送給解碼器。在這種情況中,表示在編碼器中已使用一組掃描順序之中的哪個(gè)掃描順序的索引就足夠了。在只使用一種預(yù)定的掃描順序的情況中,不必發(fā)送掃描順序。
在編碼器中,根據(jù)可獲得的計(jì)算變換系數(shù),可以確定在解碼器中使用為最有益的這些系數(shù)的掃描順序。根據(jù)在解碼器中能緩存多少系數(shù),有益的是以近似于解碼器中最有效的計(jì)算順序的順序來發(fā)送這些變換系數(shù)。解碼器有益地以發(fā)送信號(hào)中所示的順序單獨(dú)地飛擊式解碼這些系數(shù)或每組系數(shù)。
有益地,在選擇要計(jì)算的變換值時(shí)使用至少一個(gè)附加準(zhǔn)則。因?yàn)橐恍┫禂?shù)對(duì)于圖象質(zhì)量比其他系數(shù)更重要,所以系數(shù)之間的優(yōu)先級(jí)設(shè)置是有用的。例如能通過將數(shù)據(jù)庫中的計(jì)算成本與任何排序的優(yōu)先級(jí)函數(shù)相乘或通過將這些系數(shù)排序?yàn)椴煌膬?yōu)先級(jí)組(每組給予一個(gè)處理順序)能設(shè)置優(yōu)先級(jí)。根據(jù)不同類型的圖象塊,對(duì)于算法輸出能選擇不同的優(yōu)先級(jí),以查找輸入依賴的計(jì)算式樣。
最好,一個(gè)優(yōu)先級(jí)準(zhǔn)則可以基于系數(shù)值為零(在量化之后)的次數(shù)。時(shí)常為零的系數(shù)應(yīng)獲得較低的優(yōu)先級(jí)。在解碼器中,改變這些系數(shù)的計(jì)算順序取決于接收的系數(shù)和能緩存這些系數(shù)之中的多少系數(shù)。
逆變換操作在本發(fā)明的情形中也構(gòu)造為變換操作。在這種情況中,利用這些系數(shù)形成輸入值并且在例如像素值的可能輸出值之間進(jìn)行選擇。未計(jì)算的像素值可以利用預(yù)定值來填充或可以例如通過平均從周圍的像素值中推導(dǎo)出??蛇x擇地,在可以輸入給此算法以計(jì)算輸出值的系數(shù)中進(jìn)行選擇。在這種情況中,也不通過選擇要計(jì)算的輸出值而通過選擇使用哪些可獲得/接收的變換值作為此算法的輸入以計(jì)算像素值來使計(jì)算成本最低。如果由于能夠執(zhí)行的計(jì)算步驟中的限制不能使用所有可獲得的變換值,輸出值將不太準(zhǔn)確,但在圖象的情況中對(duì)于此圖象(塊)的任何一個(gè)像素仍然獲得一個(gè)值。
本發(fā)明還涉及視頻系統(tǒng),此視頻系統(tǒng)至少包括根據(jù)本發(fā)明的一個(gè)實(shí)施例的編碼設(shè)備和解碼設(shè)備。這樣的視頻系統(tǒng)的一個(gè)示例是用于在硬磁盤驅(qū)動(dòng)器(HDD)上存儲(chǔ)視頻材料的閉合系統(tǒng)。其他的示例為電視會(huì)議系統(tǒng)、數(shù)字手持照相機(jī)等。在視頻材料為模擬的情況中,此視頻系統(tǒng)還包括模擬-數(shù)字變換器。如果此視頻系統(tǒng)中的編碼器生成符合MPEG的比特流,則可以使用標(biāo)準(zhǔn)的解碼器。有益地,此視頻系統(tǒng)中的解碼器是根據(jù)本發(fā)明的一個(gè)實(shí)施例的解碼器。
本發(fā)明還涉及分析算法的計(jì)算成本的方法。此分析生成將計(jì)算成本作為系數(shù)的函數(shù)的數(shù)據(jù)庫。利用此數(shù)據(jù)庫,可推導(dǎo)出提供有關(guān)在給定的計(jì)算限制內(nèi)能計(jì)算哪些系數(shù)的信息的系數(shù)表,這樣的數(shù)據(jù)庫根據(jù)本發(fā)明的實(shí)施例能用于編(解)碼中。
從下面參考實(shí)施例的描述將使本發(fā)明的上述和其他方面變得更加清楚。
在附圖中圖1表示余弦函數(shù)的周期性;圖2表示在H.263與MPEG中使用的Z形掃描順序;圖3表示根據(jù)本發(fā)明的一個(gè)實(shí)施例的從輸入A至輸入B的計(jì)算;圖4表示根據(jù)本發(fā)明的一個(gè)實(shí)施例的DCT矩陣中系數(shù)的計(jì)算順序;圖5表示考慮此矩陣的左上角的附加優(yōu)先級(jí)的根據(jù)本發(fā)明的一個(gè)實(shí)施例的DCT矩陣中系數(shù)的計(jì)算順序;和圖6表示根據(jù)本發(fā)明的一個(gè)實(shí)施例的視頻系統(tǒng)。
這些附圖只表示理解本發(fā)明所必需的那些單元。
具體實(shí)施例方式
為了更好地理解本發(fā)明,首先給出有關(guān)DCT變換的一些基本理論。DCT將圖象的小方塊的亮度與色度值變換到變換域。此后,量化所有的系數(shù),并且集中在少量的系數(shù)中的信號(hào)保證利用少于原始的數(shù)據(jù)保存整個(gè)圖象。
對(duì)于表示為2D(二維)數(shù)據(jù)矩陣{x[i,j];i,j=0,1,...,N-1}的給定圖象塊,利用下式(1)給出2D DCT矩陣{x[i,j];i,j=0,1,...,N-1}X[m,n]=2N*u(m)*u(n)*Σi=0N-1Σj=0N-1x[i,j]*cos(2i+1)m*π2N*cos(2j+1)n*π2N----(1)]]>其中如果k=0否則為了降低等式(1)的復(fù)雜性,時(shí)常使用行-列方法。利用此方法,利用1D-DCT單獨(dú)變換圖象塊的每行與列。對(duì)于給定的1D數(shù)據(jù)矢量{x[i];i=0,1,...,N-1},利用下式(2)定義1D-DCT矢量{x[i];i=0,1,...,N-1}X[n]=2N*u(n)*Σi=0N-1x[i]*cos(2i+1)n*π2N----(2)]]>等式(1)與(2)都具有如下的形式Output=Const*InputMatrix*CosMatrix (3)等式(3)的常量部分能夠合并在后一量化步驟中,在此量化步驟中為了數(shù)據(jù)壓縮目的而除去變換的系數(shù)。當(dāng)然,不能修改輸入數(shù)據(jù)。有用的第三部分是余弦矩陣。此矩陣的變換基于余弦函數(shù)的周期性。余弦函數(shù)是周期性的,這表示此函數(shù)的結(jié)果每隔2πcos(α)=cos(n*2π+α);n∈Z重復(fù)一次。而且,此余弦函數(shù)對(duì)于π為反周期性的,這表示此函數(shù)的結(jié)果每隔π重復(fù)一次,但符號(hào)改變cos(α)=(-1)n*cos(n*π+α);n∈Z。圖1表示此余弦函數(shù)的圖表,其中標(biāo)記具有相同絕對(duì)值的四個(gè)箭頭。
大多數(shù)公知的DCT算法為最高視頻質(zhì)量而設(shè)計(jì)。能夠找到不同的策略來利用等式(1)或(2)的數(shù)學(xué)變換減少DCT計(jì)算的復(fù)雜性Lee與Huang[1]將余弦矩陣的計(jì)算減為相當(dāng)?shù)妮^低復(fù)雜度的小問題,他們將余弦矩陣的每個(gè)角度歸一化為0α<0.5π并因此將2nx2n-DCT減為較低復(fù)雜度的2n-1x2n-1-DCT’。Cho與Lee[2]發(fā)現(xiàn)等式(1)中給出的兩個(gè)余弦矩陣之間的數(shù)據(jù)依賴性,從而將一個(gè)矩陣表示為另一矩陣的函數(shù)。因此,將2D變換減為1D變換,其中1D-DCT算法的選擇是不必的。Arai、Agui與Nakajima[3]從離散傅立葉變換(DFT)中推斷出DCT,其中在后一量化步驟中能合并幾個(gè)乘法。
還有,公知降低DCT的計(jì)算復(fù)雜度以加速計(jì)算時(shí)間的算法,從而視頻質(zhì)量的損耗是可接受Merhav與Vasudev[4]研制一種計(jì)算方案用于DCT與逆DCT(IDCT),主要想法是以移位運(yùn)算來替換所有的乘法并且在后一量化步驟中盡可能好地補(bǔ)償結(jié)果誤差而無附加成本。Pao與Sun[5]統(tǒng)計(jì)分析利用視頻編碼標(biāo)準(zhǔn)H.263編碼不同的視頻序列,此編碼標(biāo)準(zhǔn)在以圖2所示的Z形順序計(jì)算DCT之后保存圖象塊,直至已保存所有的非零值。其余的零利用塊結(jié)束(EOB)符號(hào)來替代。從此分析中,DCT系數(shù)的方差能表示為最小平均絕對(duì)誤差(MMAE)的函數(shù),這在運(yùn)動(dòng)補(bǔ)償預(yù)測(cè)之后采用。根據(jù)此函數(shù)和視頻標(biāo)準(zhǔn)H.263的量化參數(shù),測(cè)量門限以便以不同的方式來處理圖象塊。對(duì)于全部64個(gè)系數(shù)或?qū)τ诖蠹s4*4低頻DCT或只對(duì)左上的系數(shù)值,計(jì)算DCT,或完全不執(zhí)行DCT。
在下面,描述本發(fā)明的一個(gè)實(shí)施例,其中根據(jù)DCT算法使用DCT系數(shù)的特定計(jì)算順序。在計(jì)算步驟之后,排序其余系數(shù)的列表,以便在下一步驟中計(jì)算具有最低計(jì)算成本的系數(shù)。在這種情況中,計(jì)算順序給出DCT算法的設(shè)計(jì)規(guī)則,以便在給定的降低的計(jì)算能力內(nèi)使系數(shù)的數(shù)量最大化。雖然此部分集中在計(jì)算DCT,但所述的方面也可應(yīng)用于類似于逆離散余弦變換(IDCT)的其他算法。
Merhav與Vasudev[4]以及Pao與Sun[5]的方案為了節(jié)省計(jì)算而已經(jīng)接受質(zhì)量的損耗。然而,這兩個(gè)方案認(rèn)為基本的DCT算法未考慮在計(jì)算各個(gè)變換系數(shù)時(shí)共享的計(jì)算。
了解基本的DCT算法對(duì)于查找最佳策略以便在給定計(jì)算努力和/或時(shí)間限制內(nèi)將其換算為較低視頻質(zhì)量是重要的。結(jié)果,通過消除幾個(gè)計(jì)算并因而消除系數(shù)來修改特定算法。此算法的結(jié)果則在給定限制內(nèi)將具有可能的最佳質(zhì)量,這是因?yàn)楸M可能計(jì)算多的系數(shù)。找到能消除哪些計(jì)算以便為了最佳可能的視頻質(zhì)量而保持最大數(shù)量的系數(shù),這是重要的。因?yàn)镈CT算法以不同的方式處理視頻數(shù)據(jù),所以應(yīng)仔細(xì)分析用于某一應(yīng)用的算法。
分析DCT算法以找到獲得特定的DCT系數(shù)所必需的計(jì)算量。此分析探究此算法內(nèi)計(jì)算節(jié)點(diǎn)之間的數(shù)據(jù)依賴性。對(duì)于每個(gè)計(jì)算步驟、什么時(shí)候輸入值成為最后變換的系數(shù)和為了獲得另一系數(shù)仍需要什么計(jì)算,能建立一個(gè)數(shù)據(jù)庫。如果設(shè)置計(jì)算限制,最好計(jì)算共享計(jì)算步驟的系數(shù),隨后利用最少的努力使系數(shù)的數(shù)量最大化。
此方法的分析步驟和優(yōu)點(diǎn)利用圖3中給出的簡(jiǎn)短計(jì)算的示例來解釋,此示例表示具有三個(gè)中間結(jié)果t1、t2、t3的計(jì)算。通過計(jì)數(shù)從輸入值開始計(jì)算每個(gè)系數(shù)所需要的所有運(yùn)算來確定用于系數(shù)B1、B1與B3的計(jì)算成本。例如,B1利用B1=t1*C1=(A1+A2)*C1來計(jì)算并因此包括一次加法(t1內(nèi))和一次乘法,將此信息存儲(chǔ)在表1給出的數(shù)據(jù)庫中,其中例如將一次乘法設(shè)置為等效于三次加法。
表1根據(jù)本發(fā)明的一個(gè)實(shí)施例的計(jì)算成本。一次加法計(jì)數(shù)為一次運(yùn)算,一次乘法計(jì)數(shù)為三次運(yùn)算。
利用此數(shù)據(jù)庫,根據(jù)已經(jīng)進(jìn)行的計(jì)算,我們能集中查找需要最少運(yùn)算的下一個(gè)DCT系數(shù),這將給出這些系數(shù)的算法依賴的計(jì)算順序。在圖3所示的示例中,將在第一步驟中計(jì)算B2,這是因?yàn)樗恍枰芜\(yùn)算。系數(shù)B1與B3具有相同的計(jì)算成本,因此看起來是首先計(jì)算B1還是首先計(jì)算B3沒有不同。然而,系數(shù)B1與B2共享節(jié)點(diǎn)t1,這在第二步驟中對(duì)B1來說導(dǎo)致比B3更少的剩余計(jì)算成本,這能在表2中看到,其中表1的數(shù)據(jù)庫已經(jīng)利用已計(jì)算B2的信息進(jìn)行更新了。
表2在計(jì)算B2之后的剩余計(jì)算成本因此,最好以這樣的順序來計(jì)算給定系數(shù)B2、B1、B3。如果對(duì)于此示例來說計(jì)算能力減至六次運(yùn)算,能計(jì)算系數(shù)B2和B1。利用B2、B3、B1的計(jì)算順序,將只計(jì)算B2,這是因?yàn)榍皟蓚€(gè)系數(shù)B2和B3一起需要七次運(yùn)算。
在此部分中解釋的方案已用于查找Cho與Lee[2]的2D-DCT算法的計(jì)算順序,此2D-DCT算法包括Arai、Agui與Nakajima[3]的1D-DCT算法,結(jié)果表示在圖4中。
如果考慮DCT計(jì)算之后的量化步驟,能改善計(jì)算順序。在大多數(shù)情況中,在變換的圖象塊的左上角上能找到此變換圖象決的重要值。量化步驟為了數(shù)據(jù)壓縮目的而除去不太重要的值。因此,這些系數(shù)能夠與優(yōu)先級(jí)函數(shù)進(jìn)行組合以選擇左上角中的系數(shù)。通過將(存儲(chǔ)在生成的數(shù)據(jù)庫中)系數(shù)C[i,j]的運(yùn)算次數(shù)乘以優(yōu)先級(jí)函數(shù)p(i,j)=i*2+|i-j|+1找到圖5中給出的計(jì)算順序。函數(shù)p利用一些實(shí)驗(yàn)來查找并且看起來適于第一實(shí)施例。
表3表示此改變?nèi)绾蔚玫搅硪挥?jì)算順序。在這兒,將一次乘法設(shè)置為等效于三次加法并且已計(jì)算前面兩個(gè)系數(shù)C00和C44。顯然在不使用優(yōu)先級(jí)函數(shù)時(shí)要計(jì)算的下一個(gè)系數(shù)為C04,而在使用優(yōu)先級(jí)函數(shù)p時(shí)此下一個(gè)系數(shù)為C22。
表3要計(jì)算的下一個(gè)系數(shù)的確定。在不使用優(yōu)先級(jí)函數(shù)時(shí)選擇C04,在使用優(yōu)先級(jí)函數(shù)p時(shí)選擇C22。
還一增進(jìn)是利用設(shè)計(jì)用于圖象塊的某些內(nèi)容的優(yōu)先級(jí)函數(shù)能夠優(yōu)化計(jì)算順序。例如,將圖象塊分類為三個(gè)不同的組包含水平行的圖象塊、包含垂直行的圖象塊或沒有空白結(jié)構(gòu)的塊。在這三組之中的每個(gè)組中,DCT將選擇特定的系數(shù)來描述原始圖象塊,這能利用優(yōu)先級(jí)函數(shù)來表示。能執(zhí)行每個(gè)圖象塊的簡(jiǎn)短的預(yù)先分析或從進(jìn)行類似分析的其他函數(shù)中獲取每個(gè)圖象塊的簡(jiǎn)短的預(yù)先分析,以保證首先計(jì)算最重要的系數(shù)。
在MPEG標(biāo)準(zhǔn)內(nèi),圖2所示的Z形順序用于編碼DCT系數(shù),這是因?yàn)橥ǔT诹炕瘔K的左上角中找到最重要的值。通過將此Z形順序用作計(jì)算順序,在計(jì)算開始時(shí)為了獲得前面的系數(shù)必須進(jìn)行耗時(shí)計(jì)算,這是因?yàn)檫@些值取決于不同的輸入并且內(nèi)部能使用中間結(jié)果。對(duì)于減少的計(jì)算能力,這將得到較少的系數(shù)在以后使用。因而找到最佳的計(jì)算順序是有用的。
將Z形順序的給定數(shù)量的系數(shù)的運(yùn)算計(jì)數(shù)與此部分中所述的計(jì)算優(yōu)化順序進(jìn)行比較。能夠注意到,計(jì)算優(yōu)化的順序得到顯然更多的系數(shù),這獲得更好的視頻質(zhì)量。SNR提高在1-5dB。
所述的方法以許多方式實(shí)際用于可換算算法。不提供要計(jì)算的特定數(shù)量的系數(shù),此數(shù)量能夠用于自動(dòng)質(zhì)量換算。例如,因?yàn)榫哂械陀?jì)算能力的PC不能實(shí)時(shí)完成所有的計(jì)算,所以在此具有低計(jì)算能力的PC上運(yùn)行實(shí)時(shí)視頻應(yīng)用可能失敗。在這種情況中,視頻處理將被放棄或表示中斷(hick-up)。為了解決這個(gè)問題,視頻處理軟件能更新已經(jīng)計(jì)算的系數(shù)的列表,直至得處理下一塊或達(dá)到用戶定義的時(shí)間限制。利用此解決方案,能保證全屏幕和全時(shí)間可觀看視頻。
本發(fā)明的這個(gè)實(shí)施例提供用于以特定順序計(jì)算DCT以支持可換算性的一種有益方法,這通過分析DCT算法的每個(gè)計(jì)算步驟以查找接下來應(yīng)以最少的努力計(jì)算的系數(shù)來實(shí)現(xiàn)。此方法通過獲得考慮的最高數(shù)量的DCT系數(shù)在計(jì)算期間使此圖象的SNR最大。
利用諸如優(yōu)先級(jí)函數(shù)的各種特性能增強(qiáng)此計(jì)算方法,這有利于低頻率系數(shù)的計(jì)算,因此此方法更適于在執(zhí)行DCT之后的MPEG編碼。此技術(shù)也能成功地用于IDCT。
圖6表示包括視頻源1、發(fā)射機(jī)2、通信信道或存儲(chǔ)媒體3、接收機(jī)4和顯示設(shè)備5的一種視頻系統(tǒng)。此視頻源1可以是照相機(jī)等并且提供視頻源信號(hào)S1給發(fā)射機(jī)2。發(fā)射機(jī)2包括視頻編碼器20。此視頻編碼器包括計(jì)算單元201、存儲(chǔ)器202和輸出單元203。此計(jì)算單元從此視頻源信號(hào)S1的輸入樣值中計(jì)算能夠包括在通過通信信道3發(fā)送或在通信信道3是存儲(chǔ)媒體時(shí)選擇地存儲(chǔ)的編碼的輸出信號(hào)S2中的一組變換系數(shù)。視頻編碼器20還包括存儲(chǔ)器202,用于存儲(chǔ)計(jì)算單元201中計(jì)算的中間結(jié)果。這些中間結(jié)果一般來源于在計(jì)算單元201中計(jì)算的各個(gè)變換系數(shù)的計(jì)算之間共享的計(jì)算。存儲(chǔ)器202還能用于存儲(chǔ)變換系數(shù)的掃描順序或計(jì)算順序。輸出單元203將這些變換值格式化為適于傳輸?shù)母袷?。在諸如MPEG編碼器的視頻編碼器中,通常量化變換系數(shù)以減少表示變換值所需要的比特的數(shù)量。在圖6中,假定在計(jì)算單元201中執(zhí)行必要的量化操作。雖然未在圖6中表示出,但MPEG編碼器通常也包括用于執(zhí)行運(yùn)動(dòng)估算與補(bǔ)償以便預(yù)測(cè)編碼圖象的單元。輸出單元203可以執(zhí)行類似于可變長(zhǎng)度編碼、多路復(fù)用和信道編碼的操作。
根據(jù)本發(fā)明的一個(gè)實(shí)施例,計(jì)算順序是依賴于算法的,雖然如前所述另外可以利用優(yōu)先級(jí)函數(shù)來確定計(jì)算順序,這考慮其他情況。掃描順序可以與計(jì)算順序相同,但這不是一定的。在任何一種情況中,解碼器在掃描順序上應(yīng)與編碼器同步。解碼器可以使用不同于編碼器的另一計(jì)算順序,這是因?yàn)閷?duì)于解碼算法來說另一計(jì)算可能更有效。
接收機(jī)4包括解碼器40。視頻解碼器40包括輸入單元403、計(jì)算單元401和存儲(chǔ)器402。輸入單元從通信信道或存儲(chǔ)媒體3中接收視頻信號(hào)S2’。編碼的視頻信號(hào)S2’通常與信號(hào)S2相同,盡管S2’可能包含由于通信信道或存儲(chǔ)媒體3而引入的差錯(cuò)。輸入單元403可以執(zhí)行類似于可變長(zhǎng)度編碼、多路分用和信道解碼的操作,這些操作通常與輸出單元203中執(zhí)行的操作相反。計(jì)算單元401執(zhí)行逆變換,以便從接收的變換系數(shù)中計(jì)算像素值,這些像素值包含在是降低質(zhì)量版本的視頻源信號(hào)S1的輸出信號(hào)S1’中。輸出信號(hào)S1’顯示在顯示單元5上。
解碼器40可以是標(biāo)準(zhǔn)的解碼器。有益地,解碼器40是根據(jù)本發(fā)明的一個(gè)實(shí)施例的解碼器。如前所述,可以在是逆變換輸入的可利用變換系數(shù)之間進(jìn)行選擇,也根據(jù)選擇的變換系數(shù)所要求的計(jì)算步驟的數(shù)量和能共享的計(jì)算步驟的數(shù)量,在此選擇中將較高優(yōu)先級(jí)給予比其他系數(shù)要求較低計(jì)算成本的變換系數(shù)。為此,存儲(chǔ)器402可以包含數(shù)據(jù)庫,這表示在給定最大計(jì)算能力的情況中可以計(jì)算哪些可利用變換系數(shù)。在還一實(shí)施例中,存儲(chǔ)器402根據(jù)本發(fā)明的一個(gè)實(shí)施例存儲(chǔ)編碼器使用的掃描順序,此掃描順序利用計(jì)算哪些系數(shù)或哪個(gè)掃描順序甚至近似于編碼器中的計(jì)算順序來確定。
本發(fā)明有益地應(yīng)用于一方面需要實(shí)時(shí)視頻編碼但另一方面具有其他限制的應(yīng)用中,諸如電視會(huì)議系統(tǒng),具有低視頻分辨率并且時(shí)常通過窄帶寬連接來傳送視頻流,這導(dǎo)致會(huì)議參與者之間的通信延遲,此延遲必須進(jìn)行最小化。而且,電視會(huì)議是具有足夠的時(shí)間分辨率的視頻比高空間視頻質(zhì)量更重要的一個(gè)示例。
數(shù)字手持照相機(jī)應(yīng)是手持、便宜并且具有被客戶接受的好質(zhì)量。這些照相機(jī)具有中間分辨率并因此需要比電視會(huì)議系統(tǒng)更復(fù)雜的視頻處理算法。為了限制照相機(jī)的成本,這些算法在軟件方面應(yīng)是可編程的或應(yīng)得到簡(jiǎn)單的硬件方案。
電視機(jī)具有通用計(jì)算能力。通過將用于視頻應(yīng)用的給定算法變換為較低復(fù)雜性能節(jié)省一部分可利用的計(jì)算能力,因此使電視機(jī)能夠并行執(zhí)行其他的任務(wù)。否則,視頻應(yīng)用能阻礙有用的其他應(yīng)用。
本發(fā)明還可應(yīng)用于參數(shù)編碼方案,其中將輸入值編碼為一組參數(shù)。在權(quán)利要求書中,應(yīng)認(rèn)為系數(shù)在這些編碼方案中為參數(shù)。
應(yīng)注意,上述實(shí)施例表示不限制本發(fā)明,并且本領(lǐng)域技術(shù)人員將能設(shè)計(jì)許多替換實(shí)施例而不脫離所附的權(quán)利要求書的范疇。在權(quán)利要求書中,放置在括號(hào)之間的標(biāo)號(hào)不應(yīng)認(rèn)為限制權(quán)利要求。字“包括”不排除權(quán)利要求中所列之外的其他單元或步驟的存在。本發(fā)明能利用包括幾個(gè)不同單元的硬件來實(shí)施和利用合適編程的計(jì)算機(jī)來實(shí)施。在列舉表示幾個(gè)裝置的設(shè)備權(quán)利要求中,利用同一硬件能實(shí)施這些裝置之中的幾個(gè)裝置。在相互不同的從屬權(quán)利要求中引用某些測(cè)量的純粹事實(shí)不表示這些測(cè)量的組合不能用于獲益。
權(quán)利要求
1.利用給定算法將一組輸入值(S1)編碼為一組系數(shù)的一種方法,此方法包括在給定此組輸入值的情況下從能夠利用此給定算法計(jì)算的總的一組可能系數(shù)中選擇要計(jì)算的系數(shù)(201),其中選擇優(yōu)先級(jí)取決于各個(gè)可能系數(shù)的計(jì)算成本,和計(jì)算這些選擇的系數(shù)以獲得此組系數(shù)(201)。
2.根據(jù)權(quán)利要求1的方法,其中對(duì)于給定系數(shù)來說,計(jì)算成本至少部分地基于計(jì)算此給定系數(shù)所要求的計(jì)算步驟的數(shù)量減去能與其他選擇系數(shù)的計(jì)算共享的計(jì)算量,并且其中在計(jì)算步驟(201)中,在計(jì)算共享這些共享計(jì)算步驟的其他系數(shù)(201)時(shí)重復(fù)使用共享計(jì)算步驟的結(jié)果。
3.根據(jù)權(quán)利要求1的方法,其中在選擇步驟(201)中,在給定最大的總計(jì)算成本的情況下使要計(jì)算的系數(shù)的數(shù)量最大。
4.根據(jù)權(quán)利要求1的方法,其中在選擇步驟(201)中,選擇預(yù)定數(shù)量的系數(shù)。
5.根據(jù)權(quán)利要求1的方法,此方法包括重復(fù)選擇要計(jì)算的下一個(gè)系數(shù)(201),直至滿足對(duì)于下一個(gè)系數(shù)來說與還未計(jì)算的其他可能的系數(shù)相比其計(jì)算成本是最小的停止準(zhǔn)則。
6.根據(jù)權(quán)利要求5的方法,其中計(jì)算成本至少部分地基于計(jì)算下一個(gè)系數(shù)所要求的計(jì)算步驟的數(shù)量減去能夠在下一個(gè)系數(shù)的計(jì)算與對(duì)于已計(jì)算的系數(shù)來說已執(zhí)行的計(jì)算步驟之間共享的計(jì)算步驟數(shù)量。
7.根據(jù)權(quán)利要求1的方法,其中在選擇要計(jì)算的系數(shù)(201)時(shí)使用至少一個(gè)附加準(zhǔn)則。
8.根據(jù)權(quán)利要求7的方法,其中利用代表至少一個(gè)附加準(zhǔn)則的優(yōu)先級(jí)函數(shù)來加權(quán)計(jì)算成本(201)。
9.根據(jù)權(quán)利要求1的方法,此方法還包括根據(jù)至少部分地利用計(jì)算的系數(shù)確定的掃描順序在輸出信號(hào)(S2)中包含此組系數(shù)(203),和在此輸出信號(hào)(S2)中包含有關(guān)此掃描順序的信息(203)。
10.根據(jù)權(quán)利要求1的方法,其中根據(jù)預(yù)定的掃描順序在輸出信號(hào)(S2)中包含此組系數(shù)(203),并且其中對(duì)于此預(yù)定的掃描順序中未計(jì)算的系數(shù),使用預(yù)定值(203)。
11.根據(jù)權(quán)利要求10的方法,其中此預(yù)定值為零。
12.根據(jù)權(quán)利要求1的方法,其中從包含有關(guān)各個(gè)可能系數(shù)的計(jì)算成本的信息的數(shù)據(jù)庫(202)中獲得要計(jì)算的系數(shù)。
13.根據(jù)權(quán)利要求12的方法,其中以表示哪些系數(shù)能計(jì)算為給定最大數(shù)量的可利用計(jì)算步驟的函數(shù)的表的形式可獲得此數(shù)據(jù)庫(202)中的計(jì)算成本信息。
14.用于利用給定算法將一組輸入值(S1)編碼為一組系數(shù)的一種設(shè)備(20),此設(shè)備包括用于在給定此組輸入值的情況下從能夠利用此給定算法計(jì)算的總的一組可能系數(shù)中選擇要計(jì)算的系數(shù)的裝置(201),其中選擇優(yōu)先級(jí)取決于各個(gè)可能系數(shù)的計(jì)算成本,和用于計(jì)算這些選擇的系數(shù)以獲得此組系數(shù)的裝置(201)。
15.利用給定算法將一組系數(shù)(S2)反向變換(401)為一組輸入值(S1’)的一種方法,此方法包括從在利用給定算法計(jì)算這些值時(shí)用作輸入的總的一組可利用系數(shù)中選擇各個(gè)系數(shù)(401),其中選擇優(yōu)先級(jí)取決于各個(gè)可利用系數(shù)的計(jì)算成本,從這些選擇的系數(shù)中計(jì)算這些值(401)。
16.根據(jù)權(quán)利要求15的方法,其中對(duì)于給定系數(shù)來說,計(jì)算成本至少部分地基于通過將此給定系數(shù)用作此算法的輸入計(jì)算這些值所要求的計(jì)算步驟的數(shù)量減去能與根據(jù)用作此算法的輸入的其他系數(shù)的計(jì)算共享的計(jì)算量,并且在計(jì)算中,在共享這些共享計(jì)算步驟的其他計(jì)算中重復(fù)使用這些共享計(jì)算步驟的結(jié)果。
17.一種設(shè)備(40),用于利用給定算法將一組系數(shù)(S2)反向變換(401)為一組輸入值(S1’),此設(shè)備包括用于從在利用給定算法計(jì)算這些值時(shí)用作輸入的總的一組可利用系數(shù)中選擇各個(gè)系數(shù)的裝置(401),其中選擇優(yōu)先級(jí)取決于各個(gè)可利用系數(shù)的計(jì)算成本,用于從這些選擇的系數(shù)中計(jì)算這些值的裝置(401)。
18.一種信號(hào)(S2,S2’),包含代表一組值的一組系數(shù),此組系數(shù)是能利用給定算法從此組值中計(jì)算的總的一組可能系數(shù)之中的一個(gè)子組系數(shù),其中此信號(hào)中的各個(gè)系數(shù)是其計(jì)算成本與未計(jì)算的系數(shù)相比較低的那些系數(shù)。
19.根據(jù)權(quán)利要求18的信號(hào)(S2,S2’),其中根據(jù)利用計(jì)算的系數(shù)確定的掃描順序在此信號(hào)中表示這些系數(shù),此信號(hào)還包含有關(guān)此掃描順序的信號(hào)。
20.根據(jù)權(quán)利要求18的信號(hào)(S2,S2’),其中根據(jù)預(yù)定的掃描順序在此信號(hào)中包含這些系數(shù),其中對(duì)于未計(jì)算的系數(shù)來說在發(fā)送的信號(hào)中包含預(yù)定值。
21.一種存儲(chǔ)媒體(3),在此媒體上已存儲(chǔ)根據(jù)權(quán)利要求18的信號(hào)(S2,S2’)。
22.用于解碼(40)根據(jù)權(quán)利要求19的信號(hào)(S2,S2’)的一種方法,此方法包括從此信號(hào)中獲得有關(guān)利用計(jì)算的系數(shù)確定的掃描順序的信息(403),利用獲得的掃描順序從此信號(hào)中獲得這些系數(shù)(403),和計(jì)算這些系數(shù)(401)。
23.用于解碼根據(jù)權(quán)利要求19的信號(hào)(S2,S2’)的一種設(shè)備(40),此設(shè)備包括用于從此信號(hào)中獲得有關(guān)利用計(jì)算的系數(shù)確定的掃描順序的信息的裝置(403),用于利用獲得的掃描順序從此信號(hào)中獲得這些系數(shù)的裝置(403),和用于計(jì)算這些系數(shù)的裝置(401)。
24.一種信號(hào),攜帶有用于使處理器能夠執(zhí)行根據(jù)權(quán)利要求1的方法的計(jì)算機(jī)程序。
25.一種存儲(chǔ)媒體,在此媒體上已存儲(chǔ)根據(jù)權(quán)利要求24的信號(hào)。
全文摘要
本發(fā)明用于利用給定算法、通過從能在給定一組輸入值的情況下利用給定算法計(jì)算的總的一組可能的系數(shù)中選擇(201)要計(jì)算的系數(shù)并且通過計(jì)算(201)這些選擇的系數(shù)以獲得此組系數(shù),將此組輸入值(S1)編碼(20)為一組系數(shù),其中選擇較高優(yōu)先級(jí)給予與其他系數(shù)相比要求較低計(jì)算成本的系數(shù)。優(yōu)選地,對(duì)于給定的系數(shù)來說,計(jì)算成本至少部分地基于計(jì)算此給定系數(shù)所要求的計(jì)算步驟的數(shù)量減去能與其他選擇系數(shù)的計(jì)算共享的計(jì)算量,而且其中在計(jì)算步驟中,在計(jì)算(201)共享這些共享計(jì)算步驟的其他系數(shù)時(shí)重復(fù)使用這些共享計(jì)算步驟的結(jié)果。
文檔編號(hào)H03M7/30GK1474980SQ01809256
公開日2004年2月11日 申請(qǐng)日期2001年12月12日 優(yōu)先權(quán)日2001年1月10日
發(fā)明者S·O·米坦斯, P·H·N·德維思, C·亨茨徹爾, N 德維思, S O 米坦斯, 某茍 申請(qǐng)人:皇家菲利浦電子有限公司