專利名稱:高清晰度電視編碼器中檢測場景改變與調節(jié)畫面編碼類型的方法與裝置的制作方法
背景技術:
本申請要求1998年9月29日提交的美國臨時申請?zhí)?0/102,234的權益。
本發(fā)明涉及視頻壓縮,更具體地涉及檢測場景改變與調整畫面編碼類型以優(yōu)化視頻編碼器的編碼效率的方法與裝置。本發(fā)明對數(shù)字HDTV編碼器中的畫面編碼類型決定與場景改變檢測特別有用。
將內編碼的(intra-coded)(I)幀與場景改變對齊能極大地改進MPEG(活動圖像專家組)視頻編碼器的編碼效率。過去,這種場景改變檢測是例如通過檢測亮度值的變化提供的。
在一些現(xiàn)有的場景改變檢測建議中,在場景改變完成及新GOP(畫面組)開始之前避免I幀的編碼。然而,場景改變檢測是在逐幀基礎上執(zhí)行的。因此,當存在不良剪輯、特技或攝象閃光時,這一方法能產(chǎn)生不正確的結果,這時場景改變可能出現(xiàn)在同一幀的奇/偶場邊界上。
從而,提供用于檢測包含閃光或從不適當剪輯得出的不良的場的場景改變,及調整畫面編碼類型而無上述先有技術遇到的問題的系統(tǒng)是有利的。在場景改變期間更好地優(yōu)化視頻編碼器的編碼效率是更有利的。也希望提供用于根據(jù)場景改變的檢測調度新的GOP的高效系統(tǒng)。兩者,該系統(tǒng)應在接連的場之間檢測場景改變。
該系統(tǒng)應利用提供所要求的超前延遲來避免在場景改變附近發(fā)布調度的I幀的編碼處理流水線系統(tǒng)結構,同時減少提供超前能力所需的幀緩沖存儲器量。
該方案應與不同的HDTV模式/象素分辨率兼容,其中包含1920×1080 I(隔行掃描)、1440×1080I、及1280×720P(逐行掃描)、以及標準清晰度(SDTV)視頻。
該系統(tǒng)應與包含MPEG—2在內的任何數(shù)字視頻編碼方案兼容。
當編碼器緩沖器水平在太高時該系統(tǒng)應禁止編碼I幀。
該系統(tǒng)應提供監(jiān)視計數(shù)器,它復位場景改變指示來避免從靜止到運動的轉換的永久性場景改變狀態(tài)。
對于確定為場景改變幀的MPEG影片模式幀畫面,為了改進編碼精確性與效率,當在場邊界上出現(xiàn)場景改變時,該系統(tǒng)應撤消MPEG推薦的基于幀的離散余弦變換(DCT)與預測編碼。
本發(fā)明涉及檢測包含閃光或從不適當剪輯得出的不良場在內的接連的場之間的場景改變,并對其作出響應調整畫面編碼類型與GOP邊界。從而這里一般地使用的名詞“場景改變”包括有正常場景改變(在幀邊界上)、在同一幀的場邊界上的場景改變、不良剪輯或閃光、或視頻圖象序列中的任何其它突然改變等事件。
按照本發(fā)明,場景改變檢測是在視頻編碼器的預處理級上執(zhí)行的。在最終編碼級之前不作出將幀作為I或P幀編碼的最后決定。這便是,將編碼器的處理流水線用作超前緩沖器來減少所需的幀緩沖存儲器量。
具體地,視頻編碼器的預處理級為每一個接連的輸入場計算接連的奇數(shù)場或接連的偶數(shù)場之間的象素差之和中的變化。然后通過在和中的改變中尋找大的正值(超過正閾值)后面跟隨大的負值(小于負閾值)來檢測場景改變。
檢測到場景改變時在處理流水線的編碼級上立即禁止I幀。當場景改變幀到達流水線的編碼級且在流水線中沒有其它場景改變時,開始新的GOP。
場景改變計數(shù)器用于記錄當前在處理流水線中的未編碼的場景改變幀的數(shù)目。只要場景改變計數(shù)器具有大于零的值便禁止I幀,但除場景改變幀的信號列(burst)(連續(xù))中的最后場景改變幀外。
此外,利用場景改變遞減計數(shù)器或“監(jiān)視”計數(shù)器來說明從靜止幀到運動幀的轉變以保證不永久性設定場景改變。
再者,對于確定為場景改變幀的MPEG影片模式畫面,當在場邊界上指示場景改變時(例如當在畫面中沒有冗余場時),便撤消MPEG推薦的基于幀的離散余弦變換及預測編碼。在這種撤消時,可在畫面中逐個宏塊的基礎上使用基于幀或場的DCT與預測。這便允許在同一幀的奇/偶場邊界上出現(xiàn)場景改變時可利用場預測來處理不良剪輯。
本發(fā)明適用于高清晰度電視(HDTV)編碼器與標準清晰度電視(SDTV)編碼器兩者。
圖2示出按照本發(fā)明的視頻編碼器處理流水線。
圖3示出按照本發(fā)明確定場景改變得分增量(score delta)、最近使用的場景改變得分、及接連的重復場數(shù)目的流程圖。
圖4示出按照本發(fā)明確定檢測到場景改變的幀及激活場景改變遞減計數(shù)定時器的流程圖。
圖5示出按照本發(fā)明設置場景改變標志的流程圖。
圖6示出按照本發(fā)明確定一幀的最終畫面編碼類型的流程圖。
發(fā)明詳述本發(fā)明涉及檢測接連的場之間的場景改變并根據(jù)它調整畫面編碼類型與GOP邊界的高效視頻壓縮方案。
使用了下列術語術語說明CountDown 將ScDet設置成偽以前剩余的幀數(shù)(對靜止到運動轉變序列);d1 第一場的接連場景改變得分中的增量;d2 第二場的接連場景改變得分中的增量;FrameCount Gop中到此為止編碼的幀數(shù);GopLen 標稱GOP長度;MaxCount接連重復場的最大允許數(shù)目;MaxGopLen 最大允許GOP長度;picture_type畫面類型,可能根據(jù)場景改變檢測修改;PreType 預先畫面類型—名義上指定的畫面類型;Rfc 重復場計數(shù)—接連的重復場的數(shù)目;sc1 場景得分1—第一場的場景改變量度;sc2 場景得分2—第一場的場景改變量度;ScCount 場景改變計數(shù)—當前在處理流水線中的場景改變幀數(shù);ScDet 檢測到的場景改變幀;scene_change宣布的場景改變幀;sclast 最后場景得分;ScPending 場景改變暫停;start_new_gop 以當前幀開始新GOP;ThO 場景得分sc1、sc2的零閾值;ThBuf 用于確定是否能開始新GOP的緩沖器水平閾值;ThNeg 場景得分sc1、sc2的負閾值;及ThPos 場景得分sc1、sc2的正閾值。
圖1為展示按照本發(fā)明的HDTV編碼器的框圖。
編碼器100包括接收輸入HDTV視頻流的HDTV屏面分離器110。分離器110將數(shù)據(jù)分給8個分開的視頻壓縮器120—127。壓縮器120與外圍部件互聯(lián)(PCI)總線130通信。視頻緩沖器140(諸如先進先出即FIFO緩沖器)接收來自該總線的壓縮視頻數(shù)據(jù)并將其提供給分組處理器150以提供輸出的壓縮位流。包含循環(huán)緩沖器165的主壓縮控制器(MCC)160控制數(shù)據(jù)的流動并同步視頻壓縮器120—127。結合圖6進一步討論緩沖器165的功能。
注意本發(fā)明是以多壓縮器HDTV實施例說明的,但也同樣能用于SDTV數(shù)據(jù)。再者,采用8個壓縮器120—127只是一個示例,因為可采用任何數(shù)目的壓縮器。
將輸入HDTV畫面分成8個屏面。各屏面由一個視頻壓縮引擎處理。壓縮引擎120—127將壓縮的視頻數(shù)據(jù)轉儲到視頻緩沖器140中。分組處理器150在由配置的輸出帶寬確定的速率上從緩沖器140中抽取壓縮的數(shù)據(jù),并將數(shù)據(jù)分組成例如MPEG傳輸分組。
圖2示出按照本發(fā)明的視頻編碼器處理流水流。視頻壓縮器120—127用流水線系統(tǒng)結構200處理視頻幀。流水線200的第一級包含預處理級205,它執(zhí)行視頻濾波、向下抽樣(可選的)、及計算供在撤消電視電影(detelecine)與場景改變檢測功能210中使用的統(tǒng)計。
流水線200的后面級包含延遲與重新排序視頻幀的P/B幀重新排序延遲功能215。這樣做是因為有時不按顯示次序編碼P幀供在預測B幀中使用的。運動估算級220進行運動估算。最后級包含執(zhí)行視頻幀的實際編碼以提供輸出位流的編碼級225。
為了方便隨后的重新排序與運動估算級,預處理級205判定預處理的幀是否B幀。如果不將一幀分類為B幀,編碼器(編碼級225)在流水線的最后級中緊接在實際編碼畫面之前判定它是I幀還是P幀。由I幀開始新的GOP。
在流水線的預處理級中,場景改變檢測功能210檢測接連的幀之間的場景改變。場景改變處理的主要目的是如果在原來調度的I幀附近檢測到場景改變,便將新GOP的調度開始的位置改變成以新場景的開始對齊。一旦在場景改變檢測功能210上檢測到場景改變,便將控制信號(ScDet標志)發(fā)送給編碼級225以防止它為當前在編碼器的處理流水線中等待編碼的幀生成I幀。當對應的場景改變幀隨后到達編碼級225時,將它作為I幀編碼,假定在流水線中沒有其它場景改變幀,在這一情況中將流水線中上一場景改變幀作為I幀編碼。
具體地,將場景改變標志提供給延遲230以便計入在重新排序延遲功能215與運動估算級220中處理對應的幀的延遲,并提供給畫面編碼類型決定功能235。功能235發(fā)送對應的畫面類型控制信號給編碼級225去設定要編碼的當前幀的畫面類型。
萬一在接連的幀中的一行中檢測到多個場景改變(如攝象機閃光、特技、不適當剪輯產(chǎn)生的不良幀/場),開始新GOP決定功能235等待發(fā)送開始新GOP控制信號給編碼級225。從而,編碼級225等待編碼I幀及開始新的GOP直到最后的場景改變結束為止。
這是與先有技術方案不同的,后者在預處理級中執(zhí)行場景改變檢測與畫面編碼類型決定兩者,從而需要大量的超前幀緩沖器,或者在編碼級中執(zhí)行場景改變檢測與畫面編碼類型決定兩者而并不提供任何超前能力。有利地,本流水線系統(tǒng)結構200提供必要的超前延遲以避免在場景改變附近發(fā)布調度的I幀,同時減少提供超前能力所需的幀緩沖存儲器量。
場景改變計數(shù)器240維護流水線200中的場景改變幀的數(shù)目的計數(shù)ScCount。對于場景改變檢測功能210上指定的每一新場景改變幀增量該計數(shù),而對于到達畫面編碼類型決定功能235的每一場景改變幀則減量該計數(shù)。
預處理級205確定初始畫面類型信息(pre Type)并在整個流水線200中將其標記在該視頻幀上。當該幀到達編碼級225時,檢索這一信息供在確定要采用的最終畫面類型(picture_type)時使用。主要是,當檢測到場景改變時,一幀的預先指定的畫面類型可以按照本發(fā)明修改,如下面在“場景改變實例”中進一步討論的。
對于每一預處理的幀,場景改變檢測功能210計算當前輸入幀與前一輸入幀的對應屏面的象素之間的絕對差。在第一與第二場上求和這些絕對差并換算成符合16位無符號整數(shù)以構成一對場景改變度量,即sc1(對于第一場)及sc2(對于第二場)。有可能諸如通過在計算場景改變度量之前空間向下抽樣該幀而從輸入象素的子集中生成場景改變度量來簡化實現(xiàn)。場景改變檢測功能210可通過令MCC160從視頻壓縮器120—127讀取場景改變測度來檢測場景改變來實現(xiàn)。根據(jù)場景改變檢測結果、編碼器的輸出視頻FIFO水平、及該GOP中到此為止編碼的幀數(shù),畫面編碼類型決定功能235(可用MCC160實現(xiàn))對處理流水線的編碼級225上的幀的畫面編碼類型作出最終決定。
圖3示出按照本發(fā)明確定場景改變得分增量、最近使用的場景改變得分、及接連的重復場的數(shù)目的流程圖。
為了檢測場景改變,用MCC160實現(xiàn)的場景改變檢測功能210首先通過求出該幀中所有屏面上的MAD值之和而為各幀的整個奇數(shù)場與偶數(shù)場計算出場景改變得分sc1與sc2(框300)。
場景改變檢測功能210通過尋找場景得分中的陡升后的陡降來檢測場景改變。在框305上,測試sc1>閾值Th0,而在框310與315上測試sc2>Th0。
當sc1與sc2兩者都超過Th0時,設置d1、d2、scLast及rfc,如框320上所示,或者當sc1超過Th0但sc2不超過時,將它們設置成如框325上所示,或者當sc2超過Th0但sc1不超過時將它們設置成如框330上所示,在框335上,作出關于接連的重復場的數(shù)目(rfc)是否超過最大值(maxcount)的判定。如果框335為真或偽,分別在框340與框350上相應地設置d1、d2、scLast與rfc。
在這里的圖與正文中,“是”、“真”、與“1”是同義的,而“否”、“偽”、與“0”是同義的。
通常,定義了三種閾值(ThPos、ThNeg、Th0),它們的值取決于下述視頻格式
視頻格式指稱水平X垂直分辨率及視頻是隔行掃描(I)還是逐行掃描(P)。不應將這一記號與I及P幀類型混淆。從上下文中應明白其含義。本發(fā)明容納隔行掃描與逐行掃描的幀兩者。逐行掃描圖象是在第一與第二場中處理的。這些只是建議的閾值,并例如可通過用不同視頻序列的實驗調整它們的值。
場景改變檢測功能210為第一與第二輸入場分別計算接連的場景改變得分之間的差d1與d2。變量scLast保持最近使用的場景改變得分。在計算差d1與d2時,跳過最多可達最大計數(shù)(maxCount)的重復的場。
維護變量rfc來記錄接連的重復場數(shù)。對于1080I模式可將接連的重復場的最大數(shù)目maxCount設定為諸如14個場,而對于720P模式則設定為24個場。然而也能采用其它值。每當rfc超過maxCount(框335),假定存在著真正的靜止畫面,從而正常地更新d1、d2、與rfc(框340)。
作為sc1與sc2之間的差計算d1。取決于場景得分是否在Th0以上且rfc是否小于最大計數(shù),作為sc2與sc1或scLast之間的差計算d2。
當諸如在卡通、慢動作剪輯與使消除電視電影處理失敗的不良膠片中有重復場時,排除直到最大計數(shù)(maxCount)的小場景改變得分(框325、330與350)以避免偽檢測。消除電視電影處理指稱消除3∶2下拉視頻序列中的冗余場。如果電視電影(從膠片傳送到視頻)過程是有噪聲的,該編碼器的消除電視電影過程便不能檢測冗余的場。
另一種情況是編碼器根據(jù)用戶的命令仔細地保留冗余的場(如,如果用戶仔細地截止編碼器上的消除電視電影過程),或在不可丟棄冗余的場的剪輯點上(如,當在兩個接連的幀中存在冗余場時)。也存在不遵循正規(guī)的3∶2下拉模式的特殊影片,例如,3∶3∶2;2而不是3∶2∶3∶2。
在3場影片幀的情況中,我們只檢驗第一與第二場之間的場景改變,因為第三場是在編碼器上丟棄的。
圖4示出按照本發(fā)明確定檢測到場景改變的幀及激活場景改變遞減計數(shù)定時器的流程圖。
在框400上,如結合圖3中框320、325、330、340或350說明的,計算d1、d2與scLast。
MCC維護指示已出現(xiàn)場景改變的標志ScDet。每當場景得分d1或d2中的改變超過正閾值時(框430),將ScDet設定為真(即1)(框435)。每當d1與d2中的改變?yōu)樨撉倚∮谪撻撝禃r(框440),將ScDet復位成零(框425與445)。當d1與d2接近Th0時,即d1與d2都不超過ThPos或小于ThNeg,則不改變ScDet(框450)。
維護監(jiān)視計數(shù)器CountDown來記錄自從上一次場景得分超過正閾值以來流逝的幀數(shù)。對于那時以后的每一個幀將計數(shù)器減1(框410)直到它到達零為止(框405)。當計數(shù)器到達零時將ScDet復位到零(框415)。在場景得分中的大的負改變并不跟隨大的正驟增的情況中這一機制強制ScDet復位,當物體開始在靜止圖象中運動時可能出現(xiàn)這一情況(即在靜止到運動序列中)。
圖5示出按照本發(fā)明設置場景改變標志的流程圖。
在框500上確定ScDet,如結合圖4中框415、425、435、445與450討論的。
MCC利用在編碼流水線200的預處理級205上確定的初始畫面類型(B幀或非B幀)(框505)來指示在當前幀上可能開始新的GOP。如果在預處理的B幀上檢測到場景改變(框510),將ScPending設定為真,但不設置對B幀的場景改變(框515)。如果在預處理的B幀上未檢測到場景改變(框510),便將該B幀的ScPending與Scene_change標志設定為偽(框520)。
對于預處理的B幀后面的下一個P幀,當ScDet或ScPending為真時(框525),將場景改變標志設定為真(框530)。對于預處理的B幀后面的下一個P幀,當ScDet與ScPending都非真時(框525),將場景改變標志設定為偽(框535)。
這樣,MCC通過ScCount記錄當前在處理流水線中的場景改變的數(shù)目。如果置位Scene_change標志,則將ScCount的值增加1(框530),而如果編碼級上的當前畫面為場景改變幀,則減1(圖6中框610)。將預處理的幀的Scene_change標志與preType存儲在MCC160的循環(huán)緩沖器165中,并在以后檢索來確定編碼該幀時的最終畫面類型。循環(huán)緩沖器165是用臨時參照標記索引的,該標記是指示各幀的輸入次序的序號。注意對循環(huán)緩沖器165的輸入是按顯示次序的,而輸出是按編碼次序的(B/P幀重新排序之后)。
圖6示出按照本發(fā)明為一幀確定最終畫面編碼類型的流程圖。
當一幀到達流水線的(最終)編碼級時,MCC從其循環(huán)緩沖器中檢索該幀的preType與Scene_change標志的值(框600)。這是為要在視頻壓縮器的編碼級225上編碼的幀執(zhí)行的。如果當前幀的Scene_change設定為真(框605),便將ScCount減1(框610)。這些值用來在框670、675或685中確定該幀的最終畫面編碼類型(Picture_type)。
維護GOP中到目前為止已編碼的幀數(shù)的計數(shù)(FrameCount)。如果FrameCount到達用戶配置的GOP標稱長度(GopLen)(框655),或者如果在當前幀上檢測到場景改變且當前在處理流水線中不存在其它場景改變幀(如用ScCount=偽指示的)(框645),則通過將P幀轉換成I幀(框675)開始新的GOP(框620)。
然而,即使?jié)M足上述條件,如果在編碼流水線中任何未編碼的幀上檢測到場景改變(框635),或者如果在位流緩沖器140(圖1)中沒有足夠的空間來容納一個I幀(框625),則不開始新的GOP(框640)。例外是當FrameCount超過GOP的最大允許長度(MaxGopLen)時(框615),在這一情況中無論如何都開始新的GOP(框620)。
在框665上,如果preType為B幀,則不存在改變(框670)。如果preType為P幀,則在start_new_gop為真時(框680)將其改變成I幀(框675)。如果preType為P幀,當start_new_gop為偽時(框680)則不改變它(框685)。注意直到編碼級為止,I與P幀在整個流水線中是同樣對待的。在編碼級之前沒有必要判定一幀是I還是P幀。
利用start_new_gop標志(框620與640)來發(fā)出是否用要編碼的當前幀開始新的GOP的信號。如流程圖中所示確定start-_new_gop與piture_type的最終值。
用來確定是否開始新的GOP的緩沖器水平閾值的計算如下ThBuf=target_buffer_level+(0.5*GopLen*bit_rate/frame_rate)
對于1920×1080I模式將target_buffer_level(目標緩沖器水平)設定為max_decoder_buffer_level(最大解碼器緩沖器水平)的1/6,及對于1280*720 P模式,將其設定為max_decoder_buffer_level的1/5。max_decoder_buffer_level為接收編碼的位流的解碼器緩沖器能保持的最大位數(shù)。此外,將ThBuf的值封頂成不超過max_decoder_buffer_level的一半。場景改變實例表A—D示出四種可能的場景改變情況。其它情況也是可能的。在這些情況中,使用下列記號X1第一場景X的第一場X2第一場景X的第二場Y1第二場景Y的第一場Y2第二場景Y的第二場xx場景X中的場之間的sumMADxy場景X與場景Y(假定xy>>xx)中的場之間的sumMAD0ThNeg<delta<ThPos+=delta>ThPos-=delta<ThNeg例如,在表A中,各幀具有第一與第二場。對于幀1與2,X1為第一場而X2為第二場。對于幀3~5,Y1為第一場而Y2為第二場。從而,場景X與場景Y之間的邊界是在幀3上。因此幀3為場景改變幀(ScDet=1)。場景改變幀是通過觀察增量值確定的。對于表A,在幀3的第一場(Y1)上增量(delfa)從“0”(表示小或零值)變到“+”(表示大的正值)。在幀3的第二場(Y2)上,增量變回到“0”,然后在幀4的第一場(Y1)上到大的負值(-),然后在幀4的第二場及以后回到小或零值(0)。
注意對于下述增量序列0,0,+,0,0,0,…,對帶有“+”增量值的幀將ScDet設置成“1”,而對于各后面的幀,將其保持在“1上。即使增量并不改變到“-”,10幀之后上述監(jiān)視計數(shù)器(CountDown)也導致將ScDet設回到“0”以免保持在永久性場景改變狀態(tài)中。當物體開始在靜止圖象中運動時,可能出現(xiàn)這一增量序列。反之,當運動場景停止并成為靜止畫面時,得出增量序列,0,0,0,-,0,0,…。在這一情況中,不會檢測到偽場景改變。
作為該記號的實例,表A中,幀、2場X1的“xx‘記號指定幀1的X1與幀2的X1之間的sumMAD。幀3、場Y1的“xy”記號指定幀2的X1與幀3的Y1之間的sumMAD。幀4、場Y1的“yy”記號指示幀3的Y1與幀4的Y1之間的sumMAD。
情況1—A表示根據(jù)對幀序列B、P、B、P、B的場景改變檢測的畫面類型的重設。具體地在幀4中,將P幀改為I幀。這指示新的GOP的開始情況1—B表示根據(jù)對幀序列P、B、P、B、P的場景改變檢測的畫面類型的重設。具體地,在幀3中將P幀改為I幀各種其它幀序列也是可能的。
注意即使檢測是根據(jù)檢驗各場的增量的,ScDet是為整個幀設置的。
在表B中,場景在幀3的場邊界上改變(在第一場X1與第二場Y2之間)。X1是場景X的一部分,而Y2是第二場景Y的一部分。
表C示出不良剪輯,其中X、Y與Z表示三個獨立的場景。場景改變是對幀3指示的,其中Y1是場景Y的第一場,而幀2的X2是場景X是最后場。沒有對幀4檢測場景改變,因為幀3的第二場(Z2)與幀4的第一場是同一場景(Z)的部分。
表4示出不良剪輯或閃光。幀3的第一場(Y1)是閃光或不良剪輯場景。
通常,當檢測到場景改變幀且該場景改變幀為P幀時,將其改變成I幀。如果場景改變幀不是P幀,則將該場景改變幀后面的第一個P幀改變成I幀。
注意這些情況顯示開放GOP,其中各I或P幀是用一或多個B幀分隔的。然而,并不要求開放的GOP。
表A—正常場景改變(在幀邊界上)幀1 幀2 幀3 幀4 幀5輸入場 X1X2X1X2Y1Y2Y1Y2Y1Y2SumMADaxxxxxxxxxyxyyyyyyyyyDelta 0 0 0 + 0 - 0 0 0ScDet0 1 0 0情況1-ApreTypeB PB PBPicture_type B PB IB情況2-ApreTypeP BP BPPicture_type P BI BP表B—同一幀的場邊界上的場景改變幀1 幀2 幀3 幀4 幀5輸入場 X1X2X1X2X1Y2Y1Y2Y1Y2SumMADaxxxxxxxxxxxyxyyyyyyyDelta 00 0 0 + 0 - 0 0ScDet0 1 0 0情況1-BpreType BPBPBPicture_type BPBIB情況2-BpreType PBPBPPicture_type PBIBP表C—不良剪輯幀1 幀2幀3 幀4 幀5 幀6輸入場 X1X2X1X2Y1Z2Z1Z2Z1Z2Z1Z2SumMADaxxxxxxxxxyxzyzzzzzzzzzzzDelta 0 0 0 + + + - 0 0 0 0ScDet0 1 0 0 0情況1-CpreTypeB P B PB PPicture_type B P B IB P情況2-CpreTypeP B P BP PPicture_type P B I BP B表D—不良剪輯或閃光幀1 幀2 幀3 幀4 幀5 幀6輸入場 X1X2X1X2Y1X2X1X2X1X2X1X2SumMADaxxxxxxxxxyxxxyxxxxxxxxxxDelta 0 0 0 + - + - 0 0 0 0ScDet0 1 0 0 0情況1-DpreTypeBP B P B PPicture_type BP B I B P情況2-DpreTypePB P B P BPicture_type PB I B P BFrame_Pred_Frame_DCT(幀預測—幀DCT)決定MPEG—2編碼器對影片模式畫面只使用基于幀的預測與DCT。這是通過在位流語法中設定標志Frame_Pred_Frame_dct=1達到的。如果Frame_Pred_Frame_dct=0,則能對該畫面在逐個宏塊的基礎上采用基于場或幀的預測與DCT。
此外,MPEG—2提供repeat_first_field(重復第一場)標志來發(fā)出信號,當將其設定為1時,則當前幀屬于影片并包含冗余的第一場,使該幀由三個輸入場組成。具體地,第一場(由MPEG值top_field_first(上面場在前)標識的上或下場)后面跟隨另一場,然后重復第一場。
本發(fā)明人已確定,如果影片幀包含冗余的第一場(repeat_first_field=1),不大可能在該幀的奇數(shù)與偶數(shù)場之間的邊界上出現(xiàn)場景改變。更有可能在幀邊界上存在清楚的場景改變。因此,按照傳統(tǒng)的MPEG—2方案設置frame_pred_frame_dct=1,并用基于幀的DCT與預測編碼整個幀。
然而,為了處理在影片模式幀的奇偶場邊界上出現(xiàn)的場景改變時的特殊情況,按照本發(fā)明取消frame_pred_frame_dct標志以便允許在逐個宏塊的基礎上的基于幀或場的預測與DCT。即使帶有指定正在對各宏塊使用的是基于場還是基于幀的預測與DCT所需的位的增加的開銷,這還是改進了編碼效率,因為預先場景改變場的相關性是高的,且后場景改變場的相關性是高的,但包含預先與后場景改變場兩者的幀與只包含預先或后場景改變場的其它幀的相關性是低的。
從而,當在影片模式幀中存在不良剪輯時,編碼器不限于在轉換幀上只使用基于幀的預測與DCT。
從而,如果在特定的幀上檢測到場景改變,將frame_pred_frame_dct標志的值設定為與repeat_first_field(重復第一場)標志相同的值。否則,frame_pred_frame_dct標志完全由電視電影檢測結果確定,使得如果檢測到影片便將frame_pred_frame_dct設定為真,而如果未檢測到影片便設定為零。
現(xiàn)在應理解,本發(fā)明提供了用于在逐個場的基礎上檢測場景改變,及調整畫面編碼類型來優(yōu)化視頻編碼器的編碼效率的系統(tǒng)。通過將I幀與場景改變對齊,極大地改進了MPEG編碼器的編碼效率。本發(fā)明對HDTV與SDTV信號都是有利的。在檢測到包含閃光或由不適當剪輯導致的不良場在內的場景改變時,便調整畫面編碼類型來優(yōu)化視頻編碼器的編碼效率。將新的GOP的開始畫面(即I幀)與場景改變對齊,以便極大地改進MPEG編碼器的編碼效率。在預處理級中,為每一接連的輸入場計算接連的奇數(shù)場或接連的偶數(shù)場之間的象素差之和中的改變。當和的變化中的大的正值后面跟隨大的負值時,便檢測到場景改變。在最終編碼級之前不作出采用哪一種畫面類型的決定。當編碼器緩沖器水平太高時能禁止I幀。
監(jiān)視計數(shù)器復位場景改變指示以避免從靜止到運動的轉換的永久場景改變狀態(tài)。
對于確定為場景改變幀的MPEG影片模式幀,當在場界邊上可能已出現(xiàn)場景改變時,(如在畫面中沒有冗余場時),便撤消MPEG推薦的基于幀的離散余弦變換(DCT)與預測編碼。在這種撤消時,可在畫面中逐個宏塊的基礎上使用基于幀或場之一的DCT與預測。
雖然已結合各種特定實施例描述了本發(fā)明,熟悉本技術的人員會理解可對其作出許多適應與修改而不脫離權利要求中所提出的發(fā)明精神的與范圍。
例如,雖然這里已討論了各種語法單元,注意它們只是示例而已,并且可以采用任何語法。
權利要求
1.一種編碼具有接連的視頻幀的數(shù)字視頻信號的方法,包括下述步驟預處理視頻信號來為各接連的幀計算該幀的第一場與前一幀的第一場之間的象素差的第一和,及該幀的第二場與前一幀的第二場之間的象素差的第二和;為各接連的幀分別計算其第一與第二和相對于該前一幀的第一與第二和的改變;以及當其第一或第二和中至少一個中的改變超過正閾值,且后繼幀的第一或第二和中至少一個中的改變小于負閾值時,指定接連的幀中特定的一幀為場景改變幀。
2.權利要求1的方法,包括進一步的步驟當已指定了場景改變幀時禁止內編碼(I)幀的編碼。
3.權利要求1的方法,包括下述進一步的步驟維護接連的場景改變幀的數(shù)目的計數(shù);及終止其計數(shù)超過最大值的場景改變幀的場景改變指定,以免對靜止到運動視頻轉換保持在永久性場景改變狀態(tài)中。
4.權利要求1的方法,包括進一步的步驟維護當前在視頻編碼器的處理流水線中的未編碼的場景改變幀的數(shù)目的計數(shù)。
5.權利要求4的方法,包括進一步的步驟除外場景改變幀的信號列中最后的場景改變幀,只要該計數(shù)具有大于零的值便禁止內編碼(I)幀的編碼。
6.權利要求1的方法,其中該視頻信號是用包含下述級的流水線系統(tǒng)結構處理的(a)預處理級,在其中進行所述預處理、計算與指定步驟,及(b)編碼級,在其中編碼各幀,所述方法包括進一步的步驟在編碼級中響應所述指定步驟改變這些幀之一的預指定的畫面類型。
7.權利要求6的方法,其中將用于為P幀的場景改變幀的預指定的畫面類型在所述改變步驟中改成I幀。
8.權利要求6的方法,其中該場景改變幀為B幀,及在所述改變步驟中將下一個接連的P幀的預指定的畫面類型改成I幀。
9.權利要求6的方法,其中該流水線系統(tǒng)結構提供用于編碼接連的視頻幀的超前緩沖存儲能力。
10.權利要求1的方法,包括進一步的步驟按照已指定了場景改變幀時開始編碼新的畫面組(GOP)。
11.權利要求10的方法,其中該場景改變幀為影片模式幀,包括下述進一步步驟確定是否指示了該影片模式幀的第一與第二場之間的場景改變邊界;以及當在所述確定步驟中指定了所述邊界時,允許在逐個宏塊的基礎上基于幀與場兩者的預測與離散余弦變換(DCT)編碼該影片模式幀。
12.權利要求11的方法,其中當在該影片模式幀中不存在重復場時,所述確定步驟確定指示了該影片模式幀的第一與第二場之間的場景改變邊界。
13.權利要求11的方法,包括進一步的步驟當所述確定步驟確定未指示該影片模式幀的第一與第二場之間的場景改變邊界時,只允許基于幀的預測與離散余弦變換(DCT)編碼該影片模式幀。
14.權利要求13的方法,其中當在該影片模式幀中存在重復場時,所述確定步驟確定未指示該影片模式幀的第一與第二場之間的場景改變邊界。
15.權利要求1的方法,包括進一步的步驟監(jiān)視接收視頻信號的編碼數(shù)據(jù)的緩沖器的充滿水平,以及按照充滿水平超過最大值時,禁止內編碼(I)幀的編碼。
16.權利要求1的方法,包括進一步的步驟當已指定了場景改變幀時禁止內編碼(I)幀的編碼,直到編碼了該場景改變幀且不存在其它指定的但尚未編碼的場景改變幀為止。
17.一種用于編碼具有接連的視頻幀的數(shù)字視頻信號的方法,包括下述步驟根據(jù)場景改變標準指定接連的幀中特定的一幀作為場景改變幀;其中該場景改變幀為影片模式幀;確定是否指示了該影片模式幀的第一與第二場之間的場景改變邊界;以及當在所述確定步驟中指示了所述邊界時,允許在逐個宏塊的基礎上基于幀與場兩者的預測與離散余弦變換(DCT)編碼該影片模式幀。
18.權利要求17的方法,其中當在影片模式幀中不存在重復的場時,所述確定步驟確定指示了該影片模式幀的第一與第二場之間的場景改變邊界。
19.權利要求17的方法,包括進一步的步驟當所述確定步驟確定未指示該影片模式幀的第一與第二場之間的場景改變邊界時,只允許基于幀的預測與離散余弦變換(DCT)編碼該影片模式幀。
20.權利要求19的方法,其中當在該影片模式幀中存在重復的場時,所述確定步驟確定未指示該影片模式幀的第一與第二場之間的場景改變邊界。
21.一種用于編碼具有接連的視頻幀的數(shù)字視頻信號的裝置,包括預處理器,用于預處理該視頻信號來為各接連的幀計算該幀的第一場與前一幀的第一場之間的象素差的第一和,及該幀的第二場與前一幀的第二場之間的象素差的第二和;用于為各接連的幀計算其第一與第二和分別相對于前一幀的第一與第二和的改變的裝置;以及場景改變檢測器,用于當其第一和或第二和中至少一個中的改變超過正閾值,且后續(xù)幀的第一或第二和中至少一個的改變小于負閾值[SWU34]時,指定接連的幀中特定的一幀為場景改變幀。
22.一種用于編碼具有接連的視頻幀的數(shù)字視頻信號的裝置,包括用于按照場景改變標準指定接連的幀中特定的一幀作為場景改變幀的裝置;其中該場景改變幀為影片模式幀;場景改變檢測器,用于確定是否指示了該影片模式幀的第一與第二場之間的場景改變邊界;以及用于當所述場景改變檢測器確定指示了所述邊界時,允許在逐個宏塊的基礎上基于幀與場兩者的預測與離散余弦變換(DCT)編碼該影片模式幀的裝置。
全文摘要
提供了用于檢測數(shù)字電視信號中的接連的場之間的場景改變的方法與裝置。在檢測到包含閃光或由不適當剪輯導致的不良場在內的場景改變時,調整畫面編碼類型來優(yōu)化視頻編碼器的編碼效率。將開始新的GOP的I幀與場景改變對齊來極大地改進MPEG編碼器(100)的編碼效率。在預處理級(205,210)中,為每一個接連的輸入場計算接連的奇數(shù)場或接連的偶數(shù)場之間的象素差之和中的改變。當其中和的改變中的大正值后隨大負值時,便檢測到場景改變。在最終的編碼級(225、235)之前不作出采用哪一種畫面類型的決定。當編碼器緩沖器水平太高時能禁止I幀。計數(shù)器(倒計數(shù))復位場景改變指示以免從靜止到運動的轉變的永久性場景改變狀態(tài)。對于確定為場景改變幀的MPEG影片模式幀畫面,當在場邊界上可能出現(xiàn)場景改變時(如畫面中不存在冗余場),便撤消MPEG推薦的基于幀的離散余弦變換(DCT)與預測編碼。
文檔編號H04N5/14GK1328747SQ99813804
公開日2001年12月26日 申請日期1999年8月27日 優(yōu)先權日1998年9月29日
發(fā)明者胡少偉 申請人:通用儀器公司