專利名稱:對包含淡變和閃光的視頻信號的壓縮的制作方法
技術領域:
本發明涉及對包含淡變和閃光的視頻信號的壓縮。
技術背景運動補償預測視頻壓縮通過根據之前編碼的圖像做出預測來利用 連續圖像的相似性。進行預測時所根據的圖像可以是來自過去的圖像(前向預測)或將來的圖像(后向預測)或二者的組合(雙向預測), 從而使得能預測未覆蓋的區域。因此,最新的視頻壓縮引擎能夠應對 大多數類型的運動和邊緣圖像素材。然而,有兩種影響能造成嚴重的圖像變劣并且值得進行專門的減輕處理包括淡變的視頻序列和包含短暫明亮的閃光(flash)的視頻序列,該閃光諸如是當帶有閃光裝置的靜止照相機在視界中使用時產 生的那些閃光。在淡變期間,運動估計器經常由于視頻發光度(luminosity)改變而產生隨機運動向量。類似的,對帶有諸如照相機 的閃光等閃光的圖像進行的預測很難表示視頻行為,從而導致很差的 壓縮性能。本發明的目的是至少改善現有技術中的上述缺點。 發明內容根據本發明的第一方面,提供了壓縮視頻信號的方法,該方法包 括在檢測到視頻信號中的閃光時,插入至少一個非參考幀 (non-referenced frame)以與閃光持續時間相符;并在檢測到視頻信號 中的淡變時,改變幀編碼的順序以使參考幀被設置在緊鄰著淡變之前 和之后并且在淡變的持續期間使用雙向編碼幀的金字塔結構。 優選地,其中檢測到閃光的幀中量化(quantisation)增大。 優選的,在檢測到淡變時,在淡變的持續期間運動估計器的搜索 范圍減小。有利的是,檢測視頻信號中的閃光包括的步驟有計算緊鄰在相關幀之前的至少一個幀的各場的第一平均亮度(luminance)和緊鄰在 相關幀之后的至少一個幀的各場的第二平均亮度;計算相關幀的前場 (top field)的亮度是否比第一平均亮度和第二平均亮度中的較大者大 出第一預定閾值,并且如果是這樣則發信號通知在相關幀的前場中發 生了閃光;以及,計算相關幀的后場(bo加m field)的亮度是否比第 一平均亮度和第二平均亮度中的較大者大出第一預定閾值,并且如果 是這樣則發信號通知在相關幀的后場中發生了閃光。便利的是,檢測視頻信號中的閃光包括的歩驟有計算當前幀的 各場的第一平均亮度;計算在當前幀前面兩個幀之前的幀的各場的第 二平均亮度;計算當前幀前面的幀的后場的亮度是否比第一平均亮度 和第二平均亮度中的較大者大出第一預定閾值,并且如果是這樣則發 信號通知在前一幀(previous frame)的后場中發生了閃光;以及,計 算當前幀的之前的幀的前場的亮度是否比第一平均亮度和第二平均亮 度中的較大者大出第一預定閾值,并且如果是這樣則發信號通知在前 一幀的前場中發生了閃光。有利的是,檢測視頻信號中的淡變包括的歩驟有為第一多個連 續場中的每個場計算平均亮度;計算第一多個連續場的各場之間的平 均亮度中的連續差;計算連續差的總和;計算第二多個總和與緊鄰的 之前場的差的這樣的總和的平均值;計算總和與它們的平均值之間的 絕對差;以及如果該平均值大于第二預定閾值并且如果每個絕對差都 小于第三預定閾值,則發信號通知檢測到淡變。便利的是,檢測視頻信號中的淡變包括的步驟有為四個連續場 中的每個場計算平均亮度;計算這四個場中的各場之間的平均亮度的 連續差;計算連續差的總和;計算該總和與緊鄰的之前兩組場的連續 差的這樣的總和的平均值;計算這三個總和與它們的平均值之間的絕 對差;以及,如果平均值大于第二預定閾值并且如果每個絕對差都小 于第三預定閾值,則發信號通知檢測到淡變。根據本發明的第二方面,提供了視頻信號的編碼器,其包括補 償延時裝置、淡變檢測器裝置和閃光檢測器裝置,這幾個裝置被設置 成使得視頻信號可以被并行輸入到補償延時裝置、淡變檢測器裝置和閃光檢測裝置;幀重排裝置,其具有連接到補償延時裝置的輸出端的 輸入端;編碼模式裝置,其的輸入來自淡變檢測器裝置和閃光檢測器 裝置以向幀重排裝置輸出控制信號;壓縮編碼環裝置的輸入來自幀重 排裝置和編碼模式裝置;運動估計器裝置的輸入來自幀重排裝置和編 碼模式裝置,用于向壓縮編碼環裝置輸出運動向量和從壓縮編碼環裝 置輸入重構的視頻信號;和熵編碼裝置,其用于接收來自壓縮編碼環 的輸入并輸出壓縮的視頻信號;其中,幀重排裝置被設置成使得在 閃光檢測器裝置檢測到視頻信號中的閃光時,至少一個非參考幀被插 入,以與閃光的持續時間相符;并在淡變檢測器裝置檢測到視頻信號 中的淡變時,幀編碼的順序被改變使得參考幀被設置于緊鄰在淡變之 前和之后,并且在淡變的持續時間內使用雙向編碼幀的金字塔結構。有利的是,淡變檢測器裝置被設置成為第一-多個連續場中的每 個場計算平均亮度;在第一多個場中的各場之間計算平均亮度的連續 差;計算連續差的總和;計算第二多個總和與緊鄰的之前場的差的這 種總和的平均值;計算這些總和與它們的平均值之間的絕對差;和如 果平均值大于第二預定閾值并且如果每個絕對差小于第三預定閾值, 則發信號通知檢測到淡變。便利的是,淡變檢測器裝置被設置成為四個連續場中的每個場 計算平均亮度;在這四個場中的各場之間計算平均亮度的連續差;計 算連續差的總和;計算最后三個總和的平均值;計算這三個總和與它 們的平均值之間的絕對差;和如果平均值大于第二預定閾值并且如果 每個絕對差小于第三預定閾值,則發信號通知檢測到淡變。有利的是,閃光檢測器裝置被設置成計算緊鄰在相關幀之前的 至少一個幀的各場的第一平均亮度和緊鄰在相關幀之后的至少一個幀 的各場的第二平均亮度;計算相關幀的前場的亮度是否比第一平均亮 度和第二平均亮度中的較大者大出第一預定閾值,并且如果是這樣則 發信號通知在相關幀的前場中發生了閃光;以及,計算相關幀的后場 的亮度是否比第一平均亮度和第二平均亮度中的較大者大出第一預定 閾值,并且如果是這樣則發信號通知在相關幀的后場中發生了閃光。便利的是,閃光檢測器裝置被設置成計算在五個場周期內各場 的平均亮度;計算在緊鄰相關幀之前的幀的各場的第一平均亮度和緊鄰相關幀之后的幀的各場的第二平均亮度;計算相關幀的前場的亮度 是否比第一平均亮度和第二平均亮度中的較大者大出第一預定閾值, 并且如果是這樣則發信號通知在相關幀的前場中發生了閃光;以及,計算相關幀的后場的亮度是否比第一平均亮度和第二平均亮度中的較大者大出第一預定閾值,并且如果是這樣則發信號通知在相關幀的后場中發生了閃光。優選的,壓縮編碼環被設置成增大其中檢測到閃光的幀的量化。 優選地,運動估計裝置被設置成減小淡變檢測的搜索范圍。 根據本發明的第三方面,提供了包括程序代碼裝置的計算機程序產品,其被設置成當程序代碼裝置在計算機上運行時執行上述方法的所有歩驟。根據本發明的第四方面,提供了含有上述的計算機程序產品的計 算機可讀介質。以下將參考附圖通過舉例的方式來描述本發明。
圖1舉例說明了對參考B圖像和非參考B圖像的編碼結構; 圖2舉例說明了金字塔B圖像編碼;圖3是帶有淡變和閃光檢測器的根據本發明的編碼器的框圖; 圖4是對于含有相機閃光的視頻序列的編碼結構;圖5是根據本發明的檢測視頻信號中的閃光或淡變和相應地適應 視頻信號的編碼的方法的流程圖;圖6是圖5所示的方法中的檢測淡變的歩驟的流程圖; 圖7是圖5所示的方法中的檢測淡變的歩驟的圖示; 圖8是圖5所示的方法中的檢測閃光的歩驟的流程圖; 圖9是對淡變至黑所使用的編碼結構的實例;和 圖10是圖5所示的方法中的檢測閃光的步驟的圖示。 在以上各圖中,相同的附圖標記表示相同的部分。
具體實施方式
本說明書描述了檢測視頻淡變和諸如相機閃光等閃光的方法和改善這些情況下的壓縮性能的機制。檢測是在實際編碼處理之前執行的。 一旦檢測到視頻淡變或相機閃光,則編碼處理可被控制以提供對這些 效果的改善編碼。H.264編碼結構本文中,對帶有淡變或閃光的視頻信號的壓縮改善在此是在H.264 壓縮標準的基礎上描述的。為了這種說明,在H.264中能區分出四種 圖像 獨立于其他圖像進行編碼的幀內編碼(intra-code)圖像(I); 根據之前的I或P圖像做出預測的前向預測圖像(P ); ,非參考雙向預測圖象(B ),其根據過去和將來的I或P圖像做 出預測,但其中不根據Bnf圖像做預測;*參考雙向預測圖象(B》,其也根據過去和將來的I或P圖像做出預測,但其中也根據Br圖像做預測。BnJ[l !^圖像的組合使得可能生成如圖1所示的金字塔B編碼結 構,其中I圖像11被獨立編碼。非參考B圖像12是通過根據之前的I 圖像11進行的預測112和根據之后的參考B圖像13進行的預測132 而預測出的。參考B圖像13是通過根據之前的I圖像11進行的預測 113和根據之后的P圖像15進行的預測153而預測出的。非參考B圖 像1.4是通過根據之前的參考B圖像13進行的預測134和根據之后的 P圖像15進行的預測154而預測出的。P圖像15是根據之前的I圖像 11進行的預測115預測出的。這種編碼結構通常比諸如MPEG 2的沒有參考B圖像的結構更有 效。但是,如果擴展到如圖2所示那樣的更多層的分層編碼,如果該 金字塔覆蓋了整個淡變持續時間,則可使用金字塔B圖像編碼來改善 視頻淡變期間的編碼性能。閃光的編碼性能可通過確保相應圖像被編碼為B^圖像(即,沒包括在對相鄰圖像進行的編碼中的圖像)而被改善。在H.264中,視頻幀可被編碼為一個或兩個圖像,即對于整個幀 的一個圖像或各自對于兩個隔行掃描場(interlaced field)中的每個場 的兩個圖像。由于圖像編碼模式決定經常是對整個幀做出的,因此下 文中將涉及I、 P、 Br或B^幀而不是圖像。可區分出三種淡變淡變至黑、從黑開始淡變和從一個視頻信號 交叉淡變成另一個。在前兩種情況中,在一定程度上,在后一種情況 中,淡變可通過測量多個場的視頻信號的平均亮度來檢測。參考圖6 和圖7,基于亮度梯度檢測的淡變檢測器算法的例子可概括如下1. 步驟61,計算每個場的平均亮度值Y^ (n)并對其存儲四個場 周期;2. 步驟62,計算最后四個場之間的平均亮度的差,以確定相鄰場 之間的亮度改變,但可理解在本發明的不同實施例中可使用不同數目 的場diffl =Yav (n) -Yav (n-1) diff2 = Yav (n-1) -Yav (n-2) diffi =Yav (n-2) -Yav (n-3)3. 步驟63,計算三個場差的總和并對其存儲三個場周期,以提供 一系列連續場的亮度的變化的測量,但可理解在本發明的不同實施例 中可對更少或更多個差求和sum(n) = diffl + diff2 + diff3;4. 歩驟64,計算最后三個總和的平均值,以檢測亮度的任何趨勢, 但可理解在本發明的不同實施例中可對更少或更多總和取平均值av = (sum(n)+sum(n-l)+sum(n-2))/3;5. 步驟65,計算三個總和與它們的平均值之間的絕對差,從表示亮度改變的平均亮度中分離出任意的與平滑轉變不同的大變化 dl = |av-sum(n)| d2 = lav-sum(n-l)l d3 = |av-sum(n-2)|; 禾口6. 歩驟66,確定是否(av>閾值1ANDdl <閾值2AND d2<閾值2ANDd3<閾值2),如果是這樣則檢測到淡變 在步驟66中,關于av的條件檢測從Y (n-5)到Y (n)的亮度的 顯著改變,而其他關于dl、 d2和d3的條件檢測相對平滑的轉變,例如,從淡變開始到淡變結束的亮度水平,沒有亮度中的峰值,其否則可能對平均改變av具有不成比例的影響。閃光檢測相機閃光通常僅持續一個到兩個場。對于閃光的檢測算法要比淡 變的檢測算法簡單得多。參考圖8和10,示例算法如下1. 步驟71中,計算每個場的平均亮度值Yav (n)并對其存儲五個 場周期;2. 步驟72,在每個幀周期的結束,計算當前幀的前場(top field) 和后場(bottom field)的平均亮度值和兩幀之前的幀的值,但可理解 在不同實施例中可對更多個或更少個場計算平均值current—av = (Yav (n) +Yav (n—1) )/2 previous—av = (Yav (n-4) +Yav (n-5) )/23. 如果(Yav (n-2) >(current—av,previous—av )的最大值+閾值),艮卩, 如果前一個后場的亮度顯著大于前一幀和后一幀的平均場亮度中的較 大者,那么在前一幀的后場上檢測到閃光(步驟73);和4. 如果(Yav (n-3) >(current—av,previous—av)的最大值+閾值),艮卩, 如果前一個前場的亮度顯著大于前一幀和后一幀的平均場亮度中的較 大者,那么在前一幀的前場上檢測到閃光(歩驟74)。將兩個場與前一和后一幀的最大亮度值相比較避免了對場景切換 的錯誤檢測。 壓縮改善圖3示出了根據本發明一個方面的系統的框圖。未經壓縮的視頻 信號被并行輸入到補償延時l、淡變檢測器2和閃光檢測器3。補償延 時的輸出被輸入到幀重排部分4。淡變檢測器2和閃光檢測器3的輸出 被輸入到編碼模式部分5的輸入端,該編碼模式部分5產生編碼結構 控制信號,該信號用于輸入到幀重排部分4的控制輸入端。并且,運 動搜索控制信號從編碼模式部分5輸出到運動估計器7,而量化控制信 號從編碼模式部分5輸出到壓縮編碼環6。幀重排部分4的輸出也被輸 入到運動估計器7和壓縮編碼環6。運動向量從運動估計器7輸出到壓 縮編碼環6,而重構的視頻信號從壓縮編碼環6輸出到運動估計器7。 壓縮編碼環6的輸出也被輸出到用于輸出壓縮的視頻信號的熵編碼部分8。在使用中,未經壓縮的視頻信號是對淡變檢測器2和閃光檢測器3 以及補償延時1的輸入。補償延時1是必需的,因為在檢測到淡變或 閃光之前算法要經過幾個場周期。在淡變檢測器和閃光檢測器算法的 本質中,如果檢測到一個特性則將不會檢測到另一個特性。 相機閃光的改善參考圖3和5,編碼模式部分5改變了對視頻信號進行編碼的方式。 例如,如果在某個場檢測到閃光(步驟52),那么編碼結構被改變成使 得檢測到閃光的幀被編碼作為B^幀,即沒有根據其做出其他預測的 幀。這可以通過在I和P幀之間插入一個或多個額外的B^幀(步驟53) 來完成。圖4顯示了帶有相機閃光41的序列40的實例。遵循I、 Bnr、 Br、 B 、 P、 BM、 B。 Bnn P幀的常規編碼結構,可以看出帶有閃光的 幀已經被編碼作為P幀44。然而,由于根據帶有閃光的P幀所做出的 較差預測,這可能會產生失真。這個問題可通過將額外的Bnr幀43插 入到編碼結構中來解決。此外,壓縮編碼環6被通知相機閃光(步驟 54),使得帶有閃光的幀可以被更粗糙地量化,而不會造成任何能察覺 到的圖像劣化。 淡化的改善參考圖3、 5和8,如果檢測到淡化81 (步驟55),則編碼模式部 分5減小運動估計部分7的搜索范圍(步驟56)以便減少否則會出現 的多個較大混沌運動向量(chaotic motion vector)。此外,編碼模式部 分5改變幀被編碼的順序使得編碼結構包含了貫穿整個淡變的金字塔 B幀84的序列(步驟57),如圖8所示。在圖8中可以看出,編碼結 構被設置成使得在緊鄰著幀81之前和之后分別存在參考幀82、 83,并 且在淡變期間使用金字塔編碼結構84。
權利要求
1.一種壓縮視頻信號的方法,包括a.在檢測到視頻信號中的閃光時,插入至少一個非參考幀以與所述閃光的持續時間相符;以及b.在檢測到視頻信號中的淡變時,改變幀被編碼的順序使得參考幀位于緊鄰所述淡變之前和之后,并且在所述淡變的持續時間內使用雙向編碼幀的金字塔結構。
2.如權利要求1所述的方法,其中,在檢測到閃光的幀中量化被增大。
3.如權利要求1或2所述的方法,其中,在檢測到淡變時,運動估 計器的搜索范圍在所述淡變的持續時間內被減小。
4.如權利要求1所述的方法,其中,檢測視頻信號中的閃光包括的 步驟有a. 計算緊鄰在相關幀之前的至少一個幀的各場的第一平均亮度和 緊鄰在相關幀之后的至少一個幀的各場的第二平均亮度;b. 計算所述相關幀的前場的亮度是否比所述第一平均亮度和所述 第二平均亮度中的較大者大出第一預定閾值,并且如果是這樣則發信 號通知在所述相關幀的前場中發生了閃光;以及c. 計算所述相關幀的后場的亮度是否比所述第一平均亮度和所述 第二平均亮度中的較大者大出第一預定閾值,并且如果是這樣則發信號通知在所述相關幀的后場中發生了閃光。
5.如權利要求1所述的方法,其中檢測視頻信號中的閃光包括的步a. 計算當前幀的各場的第一平均亮Jb. 計算當前幀的兩-c. 計算所述當前幀的之前幀的后場的:l第二平均亮度;:是否比所述第一平均亮度和所述第二平均亮度中的較大者大出第一預定閾值,并且如果是這 樣則發信號通知在之前幀的后場中發生了閃光;以及d.計算所述當前幀的之前幀的前場的亮度是否比所述第一平均亮 度和所述第二平均亮度中的較大者大出所述第一預定閾值,并且如果 是這樣則發信號通知在之前幀的前場中發生了閃光。
6. 如權利要求1所述的方法,其中,檢測視頻信號中的淡變包括的步驟有a. 為第一多個連續場中的每個場計算平均亮度;b. 計算所述第一多個連續場的各場之間的平均亮度的連續差;c. 計算所述連續差的總和;d. 計算第二多個的總和與緊鄰的之前場的差的這種總和的平均值;e. 計算所述總和與它們的平均值之間的絕對差;以及f. 如果平均值大于第二預定閾值并且如果每個絕對差都小于第三 預定閾值,則發信號通知檢測到淡變。
7. 如權利要求1所述的方法,其中,檢測視頻信號中的淡變包括的 步驟有a. 為四個連續場中的每個場計算平均亮度;b. 計算所述四個場的各場之間的平均亮度的連續差;c. 計算所述連續差的總和;d. 計算所述總和與緊鄰的之前各組的場的連續差的兩個這種總和 的平均值;e. 計算該三個總和與它們的平均值之間的絕對差;以及f. 如果平均值大于第二預定閾值并且如果每個絕對差都小于第三 預定閾值,則發信號通知檢測到淡變。
8. —種視頻信號的編碼器,包括a.補償延時裝置、淡變檢測器裝置和閃光檢測器裝置,它們被設 置成使得視頻信號可被并行輸入到所述補償延時裝置、所述淡變檢測器裝置和所述閃光檢測器裝置;b. 幀重排裝置,其輸入端連接到所述補償延時裝置的輸出端;c. 編碼模式裝置,其具有來自所述淡變檢測器裝置和所述閃光檢測器裝置的輸入,以將控制信號輸出給所述幀重排裝置;d. 壓縮編碼環裝置,其具有來自所述幀重排裝置和所述編碼模式 裝置的輸入;e. 運動估計器裝置,其具有來自所述幀重排裝置和所述編碼模式 裝置的輸入,以向所述壓縮編碼環裝置輸出運動向量和從所述壓縮編 碼環裝置輸入重構的視頻信號;和f. 熵編碼裝置,其接收來自所述壓縮編碼環的輸入并輸出壓縮的 視頻信號;其中,所述幀重排裝置被設置成使得g. 在所述閃光檢測器裝置檢測到視頻信號中的閃光時,至少一個 非參考幀被插入以與所述閃光的持續時間相符;和h. 在所述淡變檢測器裝置檢測到視頻信號中的淡變時,改變幀被 編碼的順序使得參考幀位于緊鄰所述淡變之前和之后,并且在所述淡 變的持續時間內使用雙向編碼幀的金字塔結構。
9. 如權利要求8所述的編碼器,其中,所述淡變檢測器裝置被設置 成a. 為第一多個連續場中的每個場計算平均亮度;b. 計算所述第一多個場的各場的平均亮度中的連續差;c. 計算所述連續差的總和;d. 計算第二多個的總和與緊鄰的之前場的差的這種總和的平均值;e. 計算所述總和與它們的平均值之間的絕對差;以及f. 如果平均值大于第二預定閾值并且如果每個絕對差都小于第三 預定閾值,則發信號通知檢測到淡變。
10. 如權利要求8或9所述的編碼器,其中,所述淡變檢測器裝置被 設置成a. 為四個連續場中的每個場計算平均亮度;b. 計算所述四個場的各場之間的平均亮度的連續差;c. 計算所述連續差的總和;d. 計算最后三個總和的平均值;e. 計算所述三個總和與它們的平均值之間的絕對差;以及f. 如果平均值大于第二預定陶值并且如果每個絕對差都小于第三 預定閾值,則發信號通知檢測到淡變。
11. 如權利要求8所述的編碼器,其中,所述閃光檢測器裝置被設置 成a. 計算緊鄰在相關幀之前的至少一個幀的各場的第一平均亮度和 緊鄰在相關幀之后的至少一個幀的各場的第二平均亮度;b. 計算所述相關幀的前場的亮度是否比所述第一平均亮度和所述 第二平均亮度中的較大者大出第一預定閾值,并且如果是這樣則發信 號通知在所述相關幀的前場中發生了閃光;以及c. 計算所述相關幀的后場的亮度是否比所述第一平均亮度和所述 第二平均亮度中的較大者大出第一預定閾值,并且如果是這樣則發信 號通知在所述相關幀的后場中發生了閃光。
12. 如權利要求8所述的編碼器,其中,所述閃光檢測器裝置被設置 成a. 計算五個場周期內每個場的平均亮度;b. 計算緊鄰著相關幀的之前幀的各場的第一平均亮度和緊鄰著相 關幀的之后幀的各場的第二平均亮度;c. 計算所述相關幀的前場的亮度是否比所述第一平均亮度和所述 第二平均亮度中的較大者大出第一預定閾值,并且如果是這樣則發信 號通知在相關幀的前場中發生了閃光;以及d. 計算所述相關幀的后場的亮度是否比所述第一平均亮度和所述 第二平均亮度中的較大者大出所述第一預定閾值,并且如果是這樣則 發信號通知在相關幀的后場中發生了閃光。
13. 如權利要求8所述的編碼器,其中,所述壓縮編碼環被設置成增 大檢測到閃光的幀中的量化。
14. 如權利要求8所述的編碼器,其中,所述運動估計裝置被設置成在檢測到淡變時減小搜索范圍。
15. —種包括程序代碼裝置的計算機程序產品,其被設置成當在計算 機上運行所述程序代碼裝置時執行如權利要求1至7中的任一項所述 的方法的所有步驟。
16. —種計算機可讀介質,其包含如權利要求15所述的計算機程序。
全文摘要
本申請公開了一種用于壓縮視頻信號的方法和編碼器,其在檢測到視頻信號中的閃光時插入至少一個非參考幀以與閃光的持續時間相符。在檢測到視頻信號中的淡變時,對幀進行編碼的順序被改變成使得參考幀被設置在緊鄰淡變之前和之后并且在淡變的持續時間內一直使用雙向編碼幀的金字塔結構。
文檔編號H04N7/26GK101257631SQ20081008283
公開日2008年9月3日 申請日期2008年2月28日 優先權日2007年2月28日
發明者A·M·博克, C·達克斯伯里 申請人:泰德廣播電視公司