專利名稱:視頻編碼方法和視頻編碼設備的制作方法
技術領域:
本發明涉及諸如用在通過因特網等的視頻發送系統和視頻數據庫系統的MPEG方案的一種視頻壓縮和編碼技術。本發明特別涉及一種視頻編碼方法和一種視頻編碼設備,它們能夠通過根據基于畫面的內容的編碼參數的編碼數據,為各個畫面提供一致的解碼視頻,這種畫面容易看到而不需要大的數據大小。
MPEG方案是用于視頻編碼的一種國際標準,是用于通過運動補償預測、離散余弦變換和可變長度編碼的結合而進行視頻壓縮的技術,這是眾所周知的。MPEG方案在例如參考文獻1“MPEG”(TheInstitute of Television Engineers edition,Ohmsha,Ltd)中有詳細描述。
在基于MPEG方案的傳統視頻編碼設備中,壓縮的視頻數據通過其發送速率得到指定的發送線路進行發送,或者被記錄在其記錄容量有限的存儲介質上。因此,被稱為速率控制的用于設定編碼參數(諸如幀速率和量化寬度)和進行編碼以使輸出的編碼位流的位速率能夠變成一個指定值的處理。在傳統的速率控制中,經常采用一種方法,它根據作為相對于一個固定量化寬度的前面的幀的編碼的結果的所生成的位的數目,來確定一個幀速率。
傳統上,幀速率是根據當前的緩存器容量和根據其中臨時存儲有編碼的位流的緩存器的容量預定的一個幀跳過閾值之間的差而確定的。如果緩存器容量低于該閾值,數據以一個固定幀速率得到編碼。如果緩存器容量高于該閾值,則進行幀跳過以減小幀速率。
然而,借助這種方法,如果在前一幀中生成的編碼位數目大,幀跳過直到緩存器容量變得不再大于幀跳過閾值之前都在進行。因此,幀與下一個幀之間的距離變得太寬,因而視頻變得不自然,這是不利的。
即,根據傳統的速率控制,幀速率和量化寬度基本上是與視頻內容無關地設置的。因此,在其上對象劇烈移動的視頻中的畫面上幀速率變得較低,且對象的運動變得不自然。另外,由于不適當的量化寬度,圖象可能畸變,從而難于在識別圖象。
同時,還顯示了一種基于被稱為兩通過編碼的技術的幀速率控制方法。這種技術在例如參考文獻2即日本專利未審查申請公開第10-336675號中進行了描述。如在參考文獻2中所述,一個視頻文件被編碼了兩次,視頻文件的總體特性被第一次編碼所分析,第二編碼是通過根據分析的結果設定適當的編碼參數--進行的,且第二編碼而獲得的一種編碼的位流得到發送或記錄。這種兩通過編碼具有與上述的方法相同的問題,因為編碼參數是傳統的,基本上是與視頻的內容無關地設定的。
如上所述,在傳統的視頻編碼設備中,在進行速率控制時,諸如幀速率和量化寬度的編碼參數與視頻無關地得到設定。因此,在其中對象劇烈移動的視頻中的畫面上,幀速率突然減小,且對象的移動變得不自然。另外,由于不適當的量化寬度,視頻會畸變。因此,傳統的視頻編碼設備的不利,是圖象質量的惡化傾向于明顯。
因此,本發明的一個目的,是提供一種視頻編碼方法和一種視頻編碼設備,它們能夠在把編碼的位速率保持在一個指示值的同時,以與視頻的畫面內容相適合的圖象質量,進行視頻編碼。
如果壓縮的視頻數據被記錄在容量有限的存儲介質上或通過因特網下載,則重要是在數據大小固定的情況下,盡可能地以一個幀速率或者適合于畫面的量化寬度有效地編碼數據。為此,由于生成的位數不總是與畫面的內容有關,所希望的是編碼的參數根據畫面上的對象的移動和畫面的內容而確定,以獲得良好的圖象。
本發明提供了一種視頻編碼方法和一種視頻編碼設備,用于把輸入的視頻信號分成多個暫時連續的畫面—其每一個都由至少一個幀構成,計算每一個畫面的統計特征量,并利用編碼的參數對輸入的視頻信號進行編碼。
在此,統計特征量是通過合計存在于各個畫面的輸入信號的各個幀中的運動矢量的分布和大小,而得到計算的。編碼的參數包括例如至少一個幀速率和量化寬度。
另外合計之外,作為存在于各個畫面的每一個幀中的運動矢量的統計特征量分布和大小,可按照運動矢量的大小和分布并根據當獲得輸入視頻信號時采用的攝象機的運動和在一個視頻上的一個對象的移動,而對幀進行分類,從而根據幀的類型對畫面進行分類,且編碼的參數可按照畫面的分類而得到生成。
如果以宏塊為單位的量化寬度是作為編碼的參數而生成的,則在將要編碼的幀中的宏塊中亮度與相鄰的宏塊相差小于一個預定值的一個宏塊的量化寬度,以及其中存在一個對象的邊緣的宏塊的量化寬度,可以被作得比其他的宏塊的量化寬度小。
如此,根據本發明,用于對輸入視頻信號進行編碼的編碼參數,是根據為輸入視頻信號的各個畫面計算的統計特征量,而為各個畫面生成的,從而可以防止幀速率在對象運動或攝象機移動時發生減小,并防止解碼的視頻的觀看質量惡化。
進一步地,基于視頻中的對象的運動、攝象機的運動等的視頻特征量,反映在幀速率根據其改變的編碼參數上,或者量化寬度是為各個宏塊而改變的,從而即使對于相同數目的生成的位,也可以為各個畫面獲得一致的良好的解碼視頻。
另外,本發明可應用于對相同的視頻文件的輸入視頻信號進行兩次或更多次編碼的視頻編碼設備。即,根據為輸入視頻信號的各個畫面計算的統計特征量,利用為各個畫面生成的第一編碼參數對輸入視頻信號編碼,從而判定第一編碼生成的編碼串的生成位數是超過還是不夠目標位數,第一編碼參數根據該判定結果而得到校正,從而提供第二編碼參數。利用第二編碼參數對輸入視頻信號進行第二編碼,從而生成一種碼串,且該碼串作為編碼輸出而得到輸出。
可見,如上生成的編碼參數在保持監測生成的位數的同時得到校正,且編碼被重復兩或多次,從而可以實現能夠獲得良好的解碼視頻的編碼,且數據的大小不大體目標位數。
本發明的其他目的和優點將由以下的描述給出,或者將從其變得顯而易見,或者可以從本發明的實施中得知。本發明的目的和優點可通過以下具體給出的裝置設置和組合而實現和獲得。
附圖作為本說明書的一部分,顯示了本發明的最佳實施例,并與上述的概述和以下對最佳實施例的詳細描述一起,用于說明本發明。
圖1是顯示根據本發明的一個實施例的視頻編碼設備的構造的框圖;圖2顯示了根據畫面內容進行視頻編碼的一個例子,用于描述該實施例的總體情況;圖3是顯示該實施例中的編碼處理過程的流程圖;圖4是顯示該實施例中畫面分裂的處理的流程圖;圖5是該實施例中判定用于分割畫面的畫面分割的確定操作的說明圖;圖6是該實施例中的閃爍幀確定操作的說明圖;圖7是該實施例中基于運動矢量的幀類型分類的說明圖;圖8是該實施例中用于確定其中傾向于發生蚊(mosquito)噪聲的微塊的說明圖;圖9是該實施例中用于確定其中存在邊緣的微塊的說明圖;且圖10顯示了采用其中存儲有用于執行根據本發明的視頻編碼的程序的記錄介質的計算機設備。
以下結合附圖描述本發明的實施例。
圖1是顯示根據本發明的一個實施例中的視頻編碼設備的構造的框圖。如其中所示,一個輸入視頻信號100是由諸如能夠重復再現相同信號的數字VTR或DVD系統的視頻記錄/再現設備所再現的視頻信號。信號100被輸入一個編碼器部分10。在此實施例中,編碼器部分10的結構與基于MPEG方案的視頻編碼設備相同。
在編碼器部分10中,從輸入視頻信號100選出的將要編碼的幀的視頻信號首先被存儲在一個幀存儲器11中。從幀存儲器11讀出的將要編碼的幀的視頻信號101被輸入一個減法器12和一個運動補償預測器19。運動補償預測器19中包括一個運動矢量探測器并產生用于運動補償預測的預測信號109。
作為將要編碼的幀,有三種圖象,即I圖象、P圖象和B圖象。如果將要編碼的幀是I圖象,運動補償預測器19不探測矢量,并輸出0作為預測信號109。如果將要編碼的幀是P圖象或B圖象,運動補償預測器19為來自將要編碼的幀的視頻信號101的各個宏塊探測運動矢量,并生成一個預測信號109。
運動矢量是以將要編碼的幀的視頻信號101與由已經編碼并存儲在一個視頻存儲器18中的一個幀的本地解碼信號構成的基準圖象信號之間的宏塊為單位,而進行探測的。具體地,與將要編碼的幀的圖象信號101的宏塊具有最高相關性的基準圖象信號的宏塊得到探測,從而探測表示視頻信號101的宏塊是從基準圖象信號的哪一個宏塊進行移動的信息,作為運動矢量。
運動補償預測器19利用這種運動矢量對基準圖象信號進行運動補償,并生成一種預測信號109。即,運動補償預測器19從一種運動補償幀間預測模式與其中將要編碼的幀的視頻信號101不變地得到編碼的一種幀內編碼模式(其中預測信號=0)中選出一種較好的預測模式,并生成與選出的預測模式相應的一種預測信號109。
減法器12獲得將要編碼的幀的視頻信號101與來自運動補償預測器19的預測信號109之間的差,并生成一種預測誤差信號102。預測誤差信號102受到由離散余弦變換器13進行的以一定大小的塊為單位的離散余弦變換(DCT)。離散余弦變換獲得的DCT系數數據103被一個量化器14所量化。量化器14量化的DCT系數數據被分成兩部分,即一部分被輸入可變長度編碼器20,且另一部分被一個去量化器15去量化。去量化的DCT系數數據105進一步受到一個反余弦變換器16的反離散余弦變換(反DCT)。
反離散余弦變換器16的輸出106被一個加法器17加到預測信號109上,從而提供一種本地解碼信號107,并將其存儲在視頻存儲器18中,作為基準圖象信號。存儲在視頻存儲器18中的該基準圖象信號被運動補償預測器19讀出,且運動補償幀間預測得到進行。
表示運動補償預測模式和運動矢量的預測模式/運動矢量信息110,也從運動補償預測器19得到輸出,并被輸入可變長度編碼器20。可變長度編碼器20對量化的DCT系數數據104和預測模式/運動矢量信息110進行可變長度編碼,并輸出所獲得的可變長度編碼的編碼流111(以下被稱為“編碼位流”)。該編碼位流111被暫時存儲在一個緩存器21中。
在此實施例中,同一視頻文件,即諸如電影的具有相同內容的輸入視頻信號按照上述基本操作被編碼兩次。進一步地,在此實施例中,提供了一個視頻特征計算器31、一個編碼參數生成器32、一個編碼位數確定部分333、以及一個編碼參數校正器34。在第一編碼期間, 視頻特征量得到計算,且編碼參數根據如此計算出的視頻特征量得到設定。在第二編碼期間,編碼位流111的生成編碼位數得到確定, 且編碼參數根據生成的編碼位數得到校正。
即,在第一編碼期間,源視頻信號100在被輸入幀存儲器11之前被輸入視頻特征計算器31。在視頻特征計算器31中,視頻的統計特征量(以下被稱為“視頻特征量”)得到計算,如將要在后面詳細描述的,視頻特征量130是通過合計至少各個畫面的輸入視頻信號100的各個幀中的運動矢量的大小和分布而獲得的統計特征量。為了計算視頻特征量130,亮度上有突然改變的幀從輸入視頻信號100的兩個相繼的幀之間的差值得到探測。探測到的幀被設定為畫面分割的領先幀。隨后,運動矢量的數目,其分布、其大小,亮度和色度變化等從各個幀的輸入視頻信號100得到計算,且它們對各個畫面得到平均,從而獲得了各個畫面的特征量的代表值,作為視頻特征量130。
如此計算的關于各個畫面的視頻特征量130的信息被輸入編碼參數生成器32。編碼參數生成器32產生編碼參數131,以進行編碼,從而使可變長度編碼器120中產生的編碼位流111的數據大小可變得不大于用戶指定的大小。通過把視頻特征量130應用于將要在后面描述的編碼參數生成公式,編碼參數131得到生成。在此獲得的編碼參數131是幀速率FR和量化寬度QP。
在第一編碼中,將要編碼的幀的視頻信號101根據編碼參數生成器32生成的幀速率FR的值而從輸入視頻信號100中選出,并被存儲在幀存儲器10中。如果該幀是諸如畫面分割時的I圖象,不進行運動矢量的探測,且進行幀內編碼。如果它是P圖象或B圖象,根據運動補償預測進行幀間編碼。
進一步地,在幀內編碼和幀間編碼的任何情況下,從離散余弦轉換器13輸出的DCT系數數據103根據編碼參數生成器32為各個畫面生成的量化寬度QP而被量化器14所量化。量化的DCT系數數據104和預測模式/運動矢量信息110如上所述地被可變長度編碼器20所編碼,與量化寬度QP的信息相結合并作為編碼位流111而被輸出至緩存器21。
當第一編碼結束時,編碼位數確定部分33判定存儲在緩存器21中的編碼位流111的生成位數133是不夠還是超出。根據該判定結果,編碼參數生成器32生成的編碼參數受到編碼參數校正器34的校正。
即,如果編碼位數確定部分33判定用戶指定的目標位數134與生成位數133之差超過了一個閾值,編碼參數校正器34校正編碼參數,從而使生成位數133幾乎目標位數134。第二編碼是根據校正的編碼參數136而進行的。如果生成位數133與目標位數134之差由于第二編碼而變得不超過閾值,存儲在緩存器21中的編碼位流作為編碼輸出200而得到輸出。編碼輸出200被饋送給一條發送線路或被存儲在一種存儲介質中。
在此實施例中的視頻編碼設備中,視頻特征量計算器31如上所述地計算出的視頻特征量130是表示各個畫面的圖象運動得如何劇烈和圖象多精細的值。該量被反映在編碼參數生成器32生成的編碼參數131或由編碼參數校正器34校正的編碼參數136上,且該編碼隨后得到進行。
結果,如圖2所示,編碼可根據適合于各個畫面的內容的編碼參數(幀速率和量化寬度)而得到進行。即,在具有較小運動的畫面(j)上,幀速率被設定得低且量化寬度在各個幀的宏塊之間改變,從而獲得比較精細的視頻,從而可以防止通常受到注意的區域(諸如對象或疊加的對話)中的視頻的惡化。
相反地,在具有劇烈運動的畫面(j+1)上,幀速率和量化寬度增大,從而獲得具有比較自然的運動的解碼視頻。如果量化寬度增大,解碼的視頻變得粗糙。然而,由于視頻的粗糙在具有劇烈運動的畫面上不是很明顯,因而可被忽略。
以下利用圖3的流程圖,描述在此實施例中的視頻編碼設備的處理。
首先,視頻信號100得到輸入(步驟S11),且作為如上所述的各個畫面的視頻的統計特征量的視頻特征量得到計算(步驟S12)。在此實施例中這種視頻特征量計算步驟S12包括三種處理,即畫面分割、特征量計算和畫面分類。
隨后,生成編碼參數(步驟S13)。這種編碼參數生成步驟S13包括四種處理,即幀速率計算、量化寬度計算、幀速率調節和各個宏塊的量化寬度設定。
隨后,視頻信號根據生成的編碼參數而得到編碼(步驟S14)。這種編碼步驟S14的處理與上述的相同。
當編碼步驟S14中的第一編碼結束時,進行編碼位數的確定,即確定生成位數與目標位數之差是否大于一個閾值(步驟S15)。
如果編碼位數計算步驟S15的確定結果顯示生成位數與目標位數之差超過了該閾值,編碼參數得到校正,從而減小生成位數與目標位數之差(步驟S16)。在步驟S6,進行第二編碼。
如果編碼位數確定步驟S15中的確定結果顯示生成位數和目標位數之差不超過閾值,編碼步驟S14獲得的編碼位流作為編碼輸出數據而得到輸出(步驟S17)。因此,編碼之進行一或兩次或更多。
以下將更詳細地描述作為本實施例的特性部分的視頻特征計算器31、編碼參數生成器32、編碼位數確定部分33、和編碼參數校正器34的處理。
視頻特征計算器31首先把視頻信號分成畫面,計算特征量并最后對畫面分類,如下所述。
畫面分割輸入視頻信號100,除了諸如被閃光白幀和噪聲幀以外,根據相鄰幀之間的不同,被分成多個畫面。在此,白幀表示例如一個會見畫面或一個新聞節目。這種幀具有亮度的突然增大,諸如閃爍的瞬間(強烈的閃光)。噪聲幀表示其中圖象由于攝象機的震動等而大大地惡化的幀。畫面分割的具體例子將結合圖4、5和6描述。
首先,第i個幀與第i+1幀之間的亮度差(以下一切“幀間差”)得到計算(步驟S21)。幀間差被與用戶設定的一定的閾值Thre相比較。(步驟S22)。如果比較結果顯示幀間差低于該閾值Thre,i被看作是i=i+1(步驟S23)且處理返回到步驟S21。
如果第i幀和i+1幀之差不小于閾值Thre,第i+1幀與第i+2幀之間的差得到計算(步驟S24)。該差被與閾值Thre比較,象在步驟S22中一樣(步驟S25)。
如果步驟S25中的比較結果顯示該差不小于閾值Thre,即如果第i幀與i+1幀之差和第i+1幀與i+2幀之差不小于閾值Thre,則判定第i幀和第i+1幀屬于不同的畫面,且第i+1幀被看作對畫面的界定。即,第i幀被設定為畫面的結束幀,且第i+1幀被設定為畫面的開始幀。
另一方面,如果步驟S25的比較結果顯示幀之差低于閾值Thre,即第i幀與第i+1幀之差不小于閾值Thre但第i+1幀與第i+2幀之差低于閾值Thre,則進行如圖6中所示的判定,即第i+1幀是一個由于閃光而導致的白幀(或噪聲幀),第i、i+1和i+2幀下面同一畫面,且第i+1幀不是界定畫面的幀,且i被看作i=i+2(步驟S26)。處理隨后返回步驟S21。
類似地,為了處理由于閃光而具有很多白幀的一個圖象等,可采用以下方法來防止在有k個連續的閃光幀時把白幀作為界定一個畫面的幀。
即,如果第i幀與i+1、i+2...i+k幀之差分別不小于閾值Thre,且第i幀與i+k+1幀之差不小于閾值Thre,則判定第i幀和第i+1幀下面不同的畫面,且第i+1幀是界定畫面的幀。
同時,如果第i幀與第i+1、i+2...i+k幀之差分別不小于閾值Thre且第i幀與第i+k+1幀之差低于閾值Thre,則判定第i+1、i+2...i+k和i+k+1幀是白幀或噪聲幀,且第i...i+k,i+k+1幀下面同一畫面。因此,i+1幀不被看作畫面的界定。
較好地是用戶能夠預先確定并設定連續的同時幀或噪聲幀是否被作為上述界定畫面的幀。
特征量計算隨后,對輸入視頻信號100的所有幀,計算視頻特征量(諸如其中運動矢量存在(運動矢量的數目不為零)的幀中的宏塊的數目),運動矢量的平均大小,以及亮度和色度的變化。在此,只對在上述畫面分割中被確定為界定畫面的幀、閃光幀和噪聲幀以外的幀計算特征量。進一步地,特征量對畫面分割所確定的各個畫面進行平均,且平均值被設定為各個畫面的特征量的代表值。
畫面分類在此實施例中,除了上述畫面分割和特征量計算之外,還利用運動矢量進行以下的畫面分類。
在為各個幀計算了運動矢量之后,獲得運動矢量的分布,且畫面得到分類。具體地,運動矢量在一個幀中的分布得到計算,且檢查各個幀屬于圖7A、7B、7C、7D或7E中顯示的哪一個幀。
圖7A幀中幾乎不存在運動矢量(其中運動矢量的數目不為零的宏塊的數目不大于Mmin)。
圖7B具有相同的方向和相同大小的運動矢量分布在整個圖象平面上(其中運動矢量出現的宏塊的數目不小于Mmax,且大小和方向都處于一定的范圍內)。
圖7C運動矢量只出現在幀中的特定部分中(其中運動矢量出現的宏塊集中在一定的部分)。
圖7C運動矢量沿著徑向分布在一個幀中。
圖7E一個幀中的運動矢量數目大且運動矢量的方向不均勻。
圖7A至7E顯示的情況與獲得輸入視頻信號100時攝象機的運動或拍攝的圖象中的對象的運動是緊密相關的。即,在圖7A的情況下,攝象機和對象都是靜止的。在圖7B的情況下,攝象機作平移。在圖7C的情況下,對象在靜止的背景中運動。在圖7D的情況下,攝象機在變焦距。在圖7E的情況下,攝象機和對象都在運動。
隨后進行了屬于如上述圖7A、7B、7C、7D或7E中所示的類型的分類之后,幀得到上述分類的畫面根據幀的類型得到分類。即,確定各個幀是屬于圖7A、7B、7C、7D還是7E所示的幀類型。利用畫面分類的確定結果(構成各個畫面的幀的類型)和上述的特征量,編碼參數生成器32以如下方式確定作為各個畫面的編碼參數的幀速率和量化寬度。
編碼參數生成器32以如下方式依次計算幀速率和量化寬度,并校正如此獲得的幀速率和量化寬度。另外,編碼參數生成器32進行改變各個宏塊的量化寬度的處理。
幀速率計算首先,編碼參數生成器32確定一個幀速率。假定特征計算器31計算了運動矢量的代表值,作為已如上所述的各個畫面的特征量的代表值。例如,第j畫面的運動矢量的代表值MVnum_j是與畫面上具有運動的宏塊的平均數目有關的一個值,如以下公式所示。即,如果第i幀中其中運動矢量的數目不是零的宏塊的數目是MVnum(i),則代表值MVnu_m(i)表示如下(MVnum_j)=(包括在第j個畫面中的所有幀的平均MVnum(i))×(恒定的乘數).....(1)
利用第j個畫面的運動矢量代表值MVnum_j,第j畫面的幀速率FR(j)利用以下公式計算FR(j)=a×MVnum_j+b+w_FR.....(2)在公式(2)中,a和b是用戶指定的位速率或數據大小的系數,且w_FR是將要描述的加權參數。
公式(2)表示如果該畫面上的運動矢量代表值MVnum_j大,即運動更為劇烈,幀速率被設定得較高。
作為運動矢量代表值MVnum_j,一個幀中的運動矢量的大小的絕對和或其密度可得到采用,以代替幀中的運動矢量。
量化寬度計算在如上所述地計算了各個畫面的幀速率之后,為各個畫面計算量化寬度。第j個畫面的量化寬度QP(j),象在幀速率FR(j)的情況下一樣,是在采用該畫面上的運動矢量代表值MVnum_j的同時利用以下公式計算的QP(j)=c×MVnum_j+d+w_QP.....(3)在公式(3)中,c和d是用戶指定的位速率或數據大小系數,且w_QP是將要描述的加權參數。
公式(3)表示如果運動矢量代表值MVnum_j高,量化寬度QP(j)被設定得大。即,量化寬度在具有劇烈運動的畫面上大。相反地,量化寬度在運動不那樣劇烈的畫面上被設定得較小。如此,圖象可更清晰。
幀速率和量化寬度的校正在如上所述地計算了各個畫面的幀速率FR(j)之后,加權參數w_FR和w_QP分別被加到公式(2)和(3)上,且幀速率和量化寬度利用視頻特征量計算器31中處理“畫面分類”獲得的畫面分類結果(各個畫面的構成幀的類型)而得到校正。
即,如果畫面分類結果對應于圖7A中的情況,其中在幀中幾乎沒有運動矢量,幀速率和量化寬度都減小(加權參數w_FR和w_QP都增大)。如果對應于圖7B的情況,幀速率盡可能地增大,從而使攝象機的運動不會變得不自然,且量化寬度增大(加權參數w_FR和w_QP都增大)。在圖7C的情況下,如果運動對象的運動,即運動矢量的大小大,幀速率得到校正(加權參數w_FR增大)。在圖7D的情況下,由于在攝象機變焦距的情況下對對象的注意較小,量化寬度被設定得大,且幀速率盡量被增大(加權參數w_FR和w_QP都增大)。在圖7E的情況下,幀速率和量化寬度都增大(加權參數w_FR和w_QP都增大)。
通過把如此獲設定的加權參數w_FR和w_QP分別加到公式(2)和(3)上,幀速率和量化寬度得到了校正。
在圖5所示的用于編碼處理的過程中(步驟S11至步驟S15),如果用戶定義各個宏塊的量化寬度,幀中的已經被確定為傾向于生成蚊噪聲的宏塊的量化寬度或已經被確定為具有強的邊緣(諸如疊加的文字)的宏塊的量化寬度,被設定得比其他的宏塊的量化寬度小,從而部分地改善圖象質量。
在此,將描述進一步描述借助公式(5)校正為各個畫面獲得的量化寬度QP(j)的方法。象對將要編碼的幀,各個宏塊被進一步分成四個塊,且為四個塊中的每一個計算亮度的變化。如果具有已的變化的塊和具有小的變化的塊彼此相鄰,且量化寬度大,則傾向于發生蚊噪聲。即,如果具有平整的組構的塊與具有復雜的組構的塊相鄰,則傾向于發生蚊噪聲。
因此,如果具有小的亮度變化的塊與具有已的變化的塊相鄰,則前一塊的量化寬度被設定為小于作為上述編碼參數而生成的量化寬度QP(j)。相反地,其中判定蚊噪聲不傾向于發生的塊的量化寬度被設定為大于量化寬度QP(j)。因此,防止了生成位數的增大。
例如,假定第j個幀中的第m個宏塊具有四個小塊。在此情況下,如圖8所示,如果一個小塊滿足以下組合塊k的亮度變化≥MBVarThre且與塊k相鄰的塊的亮度變化<MBVarThre.....(4)則確定第m個塊是其中蚊噪聲傾向于發生的宏塊。對這種其中傾向于發生蚊噪聲的宏塊,量化寬度QP(j)_m被如下設定QP(j)_m=QP(j)-q1....(5)另一方面,對于其中判定傾向于發生蚊噪聲的宏塊,其量化寬度以如下方式增大,從而防止生成位數增大QP(j)_(其中噪聲傾向于不發生的MB)=QP(j)+q2....(6)在公式(4)中,MBVarThre是用戶定義的閾值。公式(5)中的符號q1和公式(6)中的q2是正數且它們分別滿足QP(j)-q1≥(最小量化寬度)和QP(j)+q2≤(最大量化寬度)。對于被分類為其上攝象機如圖7B所示地作平移的畫面和如圖7D所示的其上攝象機進行變焦距的畫面,由于觀看注意力因為攝象機的運動而很少放在圖象中的對象上,q1和q2被設定為低。對于其中運動部分集中在一定的區域中的畫面,由于觀看注意較大地是在圖象中的對象上,q1和q2被設定得高。
對于其中有諸如文字的邊緣的宏塊,量化寬度被設定得小,從而使文字部分清晰。具體地,如圖9所示,對幀上的亮度數據進行邊緣強調濾波,從而為各個宏塊檢驗具有高的漸變密度值的象素。具有高的密度值漸變的象素的位置得到合計,從而判定具有部分集中的、具有高漸變的宏塊是其中有邊緣的宏塊。隨后,宏塊的量化寬度根據公式(5)被設定為小,且其他宏塊的量化寬度根據公式(6)被設定為大。
編碼器部分10進行與根據MPEG方案的傳統視頻編碼設備的處理相同的處理。在此實施例中,第一編碼是根據已經描述的編碼參數生成器32生成的編碼參數進行的。在此情況下,如此分割的單個的畫面受到基本上是固定幀速率和固定量化寬度的編碼。即,對于第j個畫面,第一幀(j_start)直到最后一幀(j_end)都以幀速率FR(j)和量化寬度QP(j)進行編碼。
然而,如果編碼參數生成器32進行如上所述的改變各個宏塊的量化寬度的處理,編碼是以為即使同一幀中的各個宏寬度單獨設定形成量化寬度而進行的。
編碼位數確定部分33如上所述地把從編碼器部分10輸出的編碼位流111的生成位數133與目標位數134進行比較。如果生成位數133與目標位數之差超過了一個閾值,編碼位數確定部分33向編碼參數校正器34發出一個指令,以校正編碼參數。在校正了編碼參數之后,編碼器部分10受到一個系統控制部分(未顯示)的控制,從而進行第二編碼。如果生成位數133不大于目標位數134,則其間的差不大于該閾值,且這些數接近一個合理的范圍,則第二編碼結束且存儲在緩存器21中的編碼位流作為編碼輸出數據被饋送到一個發送線路或一個存儲介質。
編碼參數校正器34響應于編碼位數確定部分33的確定結果校正編碼參數。例如,如果生成位數133高于目標位數134,則總體的幀速率減小,量化寬度減小或給予量化寬度的漸變被設定得大。把漸變給予問題是為了使量化寬度根據宏塊在幀中的位置而不同,諸如把幀中的中心的宏塊的量化寬度設定得大并把周邊的宏塊的量化寬度設定得小。
編碼參數的校正是通過把權w_rerFR和w_rerQP分別加到由編碼參數生成器31生成的幀速率FR(j)和量化寬度QP(j)上而實現的。校正的幀速率FR’(j)和量化寬度QP’(j)被表示如下FR′(j)=FR(j)+w_refFR.....(7)QP’(j)=QP(j)+w_refQP....(8)以此方式,編碼器部分10利用如此校正的幀速率FR’(j)和量化寬度QP’(j)進行第二編碼。
即使在第二編碼結束之后,如果生成位數131與目標位數134之間仍然有大的、超過閾值的差,則圖3所示的步驟S14至S16的處理得到重復,同時校正權w_rerFR和w_rerQP。當生成位數133最后變得不大于目標位數134并在合理的的范圍內接近其時,編碼結束且編碼輸出數據200得到輸出。
在上述實施例中,對進行兩通過編碼的情況進行了描述。本發明也可應用于其中一個視頻文件的視頻信號只得到一次編碼的通常的視頻編碼設備。
圖10顯示了一種計算機設備,它采用了其中存儲有用于執行視頻編碼的程序的存儲介質。如圖10所示,一個個人計算機210包括一個CPU 211、一個主存儲器212、一個顯示器213、一個HDD/IF 214、一個硬盤215和一個CD-ROM驅動器216。一個存儲有用于執行本發明的視頻編碼的程序的CD-ROM 217被安裝在CD-ROM驅動器215中。如果該程序通過CD-ROM驅動器216而從CD-ROM 217讀出并被傳遞到主存儲器212,CPU 211執行該程序,即執行根據圖3和4的流程圖的視頻編碼。
如果PC卡218被用作存儲介質,則由個人計算機210中提供的一個PC卡讀取器219把一個視頻編碼程序讀入主存儲器212,且CPU211執行根據該程序的視頻編碼。
如上所述,根據本發明,一種輸入視頻信號被分成暫時連續的畫面-每一個畫面都由至少一個幀構成,為各個畫面計算統計特征量,根據統計特征量生成各個畫面的編碼參數,并對輸入視頻信號進行編碼。這樣,在例如具有劇烈的運動的畫面上幀速率被設定得高,從而使對象的運動平穩,而在視頻中傾向于吸引注意的疊加的文字或邊緣周圍量化寬度被設定得低,以使圖象清晰。
因此,本發明與傳統的幾乎不考慮圖象中的對象運動和/或攝象機運動的傳統視頻編碼設備相比,為各個畫面獲得了一致解碼器的圖象。因此,本發明能夠獲得良好的圖象改善效果,并把編碼位速率保持在根據發送線路的發送速率、存儲介質的容量等指定的值。
其他的優點和修正對本領域的技術人員是顯而易見的。因此,本發明的方面不限于在此顯示和描述的具體細節和代表性實施例。因此,在不脫離由所附權利要求書及其等價表示所限定的本發明的一般發明思想的精神或范圍的前提下,可以進行各種修正。
權利要求
1.一種視頻編碼方法,包括以下步驟把輸入視頻信號分成多個暫時連續的畫面,每一個畫面都包括至少一個幀;為各個畫面計算統計特征量;根據所述統計特征量為各個畫面生成編碼參數;以及利用編碼參數對輸入的圖象信號進行編碼。
2.根據權利要求1的視頻編碼方法,其中計算統計特征量的步驟包括為各個畫面的所有幀計算包括其中有運動矢量的幀中的宏塊的數目、運動矢量的平均大小、以及亮度和色度的變化的視頻特征量。
3.根據權利要求1的視頻編碼方法,其中計算統計特征量的步驟包括為各個畫面對特征量進行平均,以獲得一種平均值并把該平均值確定為各個畫面的特征量的代表值,該代表值被用作統計特征量。
4.根據權利要求1的視頻編碼方法,其中計算統計特征量的步驟包括把多個畫面分類成其上在幀中幾乎沒有運動矢量的第一畫面、其上在整個圖象平面上分布有沿著相同的方向和具有相同的大小的運動矢量的第二種畫面、其上在幀中的特定部分中出現有運動矢量的第三種畫面、其上在幀中沿著徑向分布有運動矢量的第四種畫面、以及其上有很多運動矢量和這些運動矢量的方向不一致的第五種畫面的多種畫面;且計算特征量的步驟分別對應于所述第一至第五種畫面。
5.根據權利要求1的視頻編碼方法,其中計算統計特征量的步驟包括探測亮度從輸入視頻信號的幀之差有突然改變的一種特定的幀以將該特定的幀設定為一個界定的畫面上的領先幀、計算包括運動矢量的數目、其分布、其大小、和亮度和色度的變化的特征量、并對各個畫面對特征量取平均以獲得一個平均值、以及把該平均值確定為各個畫面的特征量的一個代表值、該代表值被用作統計特征量。
6.根據權利要求1的視頻編碼方法,其中計算統計特征量的步驟包括一個畫面分割步驟,其中如果第i幀與第i+1、i+2至i+k幀之間的幀間差值均不小于一個閾值,且第i幀與第i+k+1幀之間的幀間差值不小于該閾值,則判定第i幀和第i+1幀屬于不同的畫面且第i+1幀是界定一個畫面的幀,且如果第i幀與第i+1、i+2至i+k幀之間的幀間差值均不小于該閾值且第i幀與第i+k+1幀之間的幀間差值小于該閾值,則判定第i幀和第i+1幀屬于相同的畫面且第i+1幀不是界定一個畫面的幀。
7.根據權利要求1的視頻編碼方法,其中生成編碼參數的步驟包括根據視頻特征量確定一個幀速率和量化寬度,并利用確定的幀速率和量化步驟大小作為編碼參數。
8.根據權利要求1的視頻編碼方法,其中對輸入信號進行編碼的步驟包括根據在生成編碼參數的步驟中生成的幀速率從輸入視頻信號選擇將要編碼的幀的步驟,如果將要編碼的幀是界定一個畫面的一個I圖象,則不進行運動矢量探測而是進行幀內編碼,且如果將要編碼的幀是P圖象或B圖象之一,則根據運動補償預測進行幀間編碼。
9.根據權利要求1的視頻編碼方法,其中編碼步驟包括根據編碼參數進行的第一編碼和根據校正的編碼參數進行的第二編碼,當第一編碼結束時,判定生成位數相對于目標位數的超過還是缺乏,編碼參數根據判定結果進行校正,且當生成位數與目標位數之差由于第二編碼而變得不大于一個閾值時,編碼輸出數據得到輸出。
10.根據權利要求1的視頻編碼方法,其中生成編碼參數的步驟包括計算一個幀速率、計算一個量化寬度、為各個宏塊調節該幀速率和設定量化寬度。
11.一種視頻編碼方法,包括一個第一步驟,用于把輸入視頻信號分成各包括至少一個幀的暫時連續的多個畫面;一個第二步驟,用于為各個畫面計算統計特征量;一個第三步驟,用于根據在第二步驟中計算的統計特征量為各個畫面生成第一編碼參數;一個第四步驟,用于利用第一編碼參數對輸入視頻信號進行編碼,以生成編碼串;一個第五步驟,用于確定在第四步驟中生成的編碼串的生成位數相對于目標位數的超過還是缺乏;一個第六步驟,用于根據第五步驟的判定結果校正第一編碼參數,以獲得第二編碼參數;一個第七步驟,用于利用該第二編碼參數對輸入視頻信號進行編碼,以生成一個編碼串;以及一個第八步驟,用于輸出在第七步驟中生成的編碼串,作為編碼輸出數據。
12.一種視頻編碼設備,包括一個特征量計算部分,用于把輸入視頻信號分成多個各由至少一個幀構成的、暫時連續的畫面,并計算各個畫面的統計特征量;一個編碼參數生成部分,用于根據特征量計算部分計算出的統計特征量生成各個畫面的編碼參數;以及一個編碼部分,用于利用編碼參數對輸入視頻信號進行編碼。
13.根據權利要求12的視頻編碼設備,其中特征量計算部分包括這樣一個部分,即該部分用于為各個畫面而至少對存在于輸入視頻信號的各個幀中的運動矢量的分布和大小進行合計以作為統計特征量。
14.根據權利要求12的視頻編碼設備,其中編碼參數生成部分包括一個生成器,該生成器用于生成至少幀速率和量化寬度以作為編碼參數。
15.根據權利要求12的視頻編碼設備,其中特征量計算部分包括這樣的一個部分—即該部分用于對輸入視頻信號的各個幀中的運動矢量的至少大小和分布進行合計以被設定為統計特征量,并包括用于根據在獲得輸入視頻信號時使用的攝象機的運動和視頻中的一個對象的運動從運動矢量的大小和分布對幀進行分類的部分,從而根據幀的類型對多個畫面進行分類;且該編碼參數生成部分包括用于按照畫面的分類生成編碼參數的部分。
16.一種視頻編碼設備,包括一個特征量計算部分,用于把輸入視頻信號分成各包括至少一個幀的多個暫時連續的畫面,并計算各個畫面的統計特征量;一個編碼參數生成部分,用于根據所述特征量計算部分計算出的統計特征量為各個畫面生成第一編碼參數;一個編碼部分,用于利用編碼參數或從第一編碼參數校正的第二編碼參數對輸入視頻信號進行編碼,從而生成一種編碼串;一個判定部分,用于判定當編碼部分根據第一編碼參數對輸入視頻信號進行編碼時生成的編碼串的生成位數相對于目標位數是超過了還是缺乏;一個編碼參數校正部分,用于根據該判定部分的判定結果校正第一編碼參數,以獲得第二編碼參數;以及一個輸出部分,用于根據所述第二編碼參數輸出當編碼部分對所述輸入視頻信號進行編碼時生成的編碼串,作為編碼輸出。
17.根據權利要求16的視頻編碼設備,其中特征量計算部分包括一個用于為各個畫面對存在于輸入視頻信號的各幀中的運動矢量的至少大小和分布進行合計以設定為統計特征量的部分。
18.根據權利要求16的視頻編碼設備,其中編碼參數生成部分包括用于生成至少一個幀速率和一個量化寬度以作為編碼參數的部分。
19.根據權利要求16的視頻編碼設備,其中特征量計算部分包括用于對所述輸入視頻信號的各幀中的運動矢量的至少大小和分布進行合計以將之設定為統計特征量的部分,以及用于根據獲得輸入視頻信號時使用的攝象機的運動和視頻中的對象的運動按照運動矢量的大小和分布把幀分類成不同類型從而按照幀的類型對多種畫面進行分類的部分;且所述編碼參數生成部分包括用于根據畫面的分類生成編碼參數的部分。
20.根據權利要求16的視頻編碼設備,其中編碼參數生成部分包括這樣一個部分,即該部分用于使被編碼部分編碼的幀中的宏塊中的一個宏塊的量化寬度的亮度變化與相鄰的宏塊的亮度變化相差不小于一個預定值,并使其中有對象的邊緣的一個宏塊的量化寬度小于其他宏塊的量化寬度。
21.一種存儲程序的記錄介質,該程序包括使計算機把輸入視頻信號分成各包括至少一個幀的多個暫時連續的畫面并計算各畫面的統計特征量的指令;用于命令計算機根據統計特征量為各畫面生成編碼參數的一個指令;用于命令計算機利用所述編碼參數對輸入視頻信號進行編碼的指令。
22.存儲一種程序的記錄介質,該程序包括一個第一指令,用于命令計算機把輸入視頻信號分成各具有至少一個幀的多個暫時連續的畫面并計算各畫面的統計特征量;一個第二指令,用于命令計算機根據計算的統計特征量生成各個畫面的第一編碼參數;一個第三指令,用于命令計算機利用第一編碼參數對輸入視頻信號進行編碼并生成一個編碼串;一個第四指令,用于命令計算機判定生成的編碼串的位數相對于目標位數是多還是少;一個第五指令,用于命令計算機根據計算機按照第四指令進行的判定的結果校正第一編碼參數,并生成第二編碼參數;一個第六指令,用于命令計算機利用第二編碼參數對輸入視頻信號進行編碼,并生成一個編碼串;一個第七指令,用于命令計算機輸出計算機按照第六指令生成的編碼串,作為編碼輸出數據。
全文摘要
一種視頻編碼方法和一種視頻編碼設備,其中輸入視頻信號被分成多個暫時連續的畫面,每一個畫面都包括至少一個幀。為各個畫面計算統計特征量,根據所述統計特征量為各個畫面生成編碼參數,且輸入的圖象信號利用編碼參數得到編碼。
文檔編號H04N7/32GK1344112SQ0012863
公開日2002年4月10日 申請日期2000年9月18日 優先權日2000年9月18日
發明者古川理惠子, 永井剛, 菊池義浩 申請人:株式會社東芝