專利名稱:一種視頻數據編碼方法及其編碼裝置的制作方法
技術領域:
本發明涉及視頻通訊領域,特別涉及一種視頻數據編碼方法及其編碼裝置。
背景技術:
在視頻通訊過程中,為保證畫面質量,視頻編碼器都會以一定頻率將待編碼的視 頻數據編碼為視頻關鍵幀(也稱為I幀),其余時刻的待編碼數據將被編碼為視頻預測幀 (也稱為P幀或B幀)。視頻關鍵幀中保存有對應于一個畫面的完整的視頻數據,而視頻預 測幀則用于對視頻關鍵幀或前一視頻預測幀進行調整,從而獲得新的畫面。現有技術下,視頻通訊領域所采用的各種視頻編碼器都是基于混合編碼框架,而 采用該編碼框架存在的一個固有問題就是對視頻關鍵幀包含的圖像進行編碼所產生的比 特數,要大大超過對視頻預測幀包含的圖像進行編碼所產生的比特數。這樣,在傳輸編碼后 的視頻關鍵幀時,就很容易因為傳輸的數據量過大而對通訊信道產生碼字沖擊;而碼字沖 擊的直接后果便是令發送端采用的針對視頻編碼的碼率控制算法的精確性變差,從而使視 頻通訊過程中傳輸的圖像質量下降,嚴重時還可能造成網絡擁塞或加重擁塞程度,進而間 接導致了視頻通訊過程中的丟包和誤碼現象的產生。目前,為克服上述缺陷,業界采用的一個通行解決方案是在編碼一個視頻關鍵幀 包含的圖像之后,跳過若干幀,即不對該若干幀包含的圖像編碼。但是,該解決方案是屬于 一種后處理方法,即在碼字沖擊發生后才采取的應急處理措施;顯然,該解決方案并不能避 免碼字沖擊現象的發生,而只是在碼字沖擊現象發生后,盡量降低碼字沖擊對信道造成的 影響,并且該解決方案是以降低幀率為代價的,如果連續跳過的幀數過多則可能造成視頻 畫面跳變,影響視頻通訊系統的服務質量。有鑒于此,需要提供一種新的視頻編碼方法,以減少視頻通訊過程中信道碼字沖 擊現象的發生。
發明內容
本發明實施例提供一種視頻編碼方法及其編碼裝置,用以減少視頻傳輸過程中對 信道造成的碼字沖擊。本發明實施例提供的具體技術方案如下一種視頻數據編碼方法,包括獲得對當前幀進行編碼時所需的視頻數據;根據預設方式判斷當前幀的下一幀是否需要編碼為視頻關鍵幀;確定當前幀的下一幀需要編碼為視頻關鍵幀時,按照預設的降碼率方式將獲得的 視頻數據編碼為視頻預測幀。一種編碼裝置,包括獲取單元,用于獲得對當前幀進行編碼時所需的視頻數據;判斷單元,用于根據預設方式判斷當前幀的下一幀是否需要編碼為視頻關鍵幀;
編碼單元,用于確定當前幀的下一幀需要編碼為視頻關鍵幀時,按照預設的降碼 率方式將獲得的視頻數據編碼為視頻預測幀。本發明實施例中,在進行視頻通訊時,發送端內的編碼裝置按照預設的關鍵幀編 碼間隔確定某一時刻的視頻數據需要編碼為視頻關鍵幀時,先對其前一時刻的待編碼視頻 數據進行降碼率編碼,以平衡在所述某一時刻編碼視頻關鍵幀時所增加的數據傳輸量;并 且在接收到接收端發送的VFU請求時,立即對接收到VFU請求的時刻的待編碼視頻數據進 行降碼率編碼,以平衡在下一時刻編碼視頻關鍵幀時,所增加的數據傳輸量,從而有效避免 了碼字沖擊現象的發生,也避免了視頻通訊系統陷入由于碼字沖擊現象所導致的視頻通訊 質量持續惡劣的惡性循環,進而保證了視頻通訊系統的服務穩定性,提升了視頻通訊服務 的質量,也明顯提高了用戶體驗
圖1為本發明實施例中視頻通訊雙方示意圖;圖2為本發明實施例中發送端包含的編碼裝置功能結構示意圖;圖3為本發明實施例中發送端內的編碼裝置對視頻流數據進行編碼流程圖。
具體實施例方式在視頻通訊過程中,為了減少發送端傳輸的視頻數據對信道造成的碼字沖擊,本 發明實施例中,視頻數據的發送端內的編碼裝置獲得對當前幀進行編碼時所需的視頻數據 后,根據預設方式判斷當前幀的下一幀是否需要編碼為視頻關鍵幀;并在確定當前幀的下 一幀需要編碼為視頻關鍵幀時,按照預設的降碼率方式將獲得的視頻數據編碼為視頻預測 幀。本實施例中,編碼裝置根據預設方式判斷當前幀的下一幀是否需要編碼為視頻關 鍵幀時,包括根據預設的關鍵幀編碼間隔獲知當前幀的下一幀到達預設的關鍵幀編碼時 刻時,確定需要將當前幀的下一幀編碼為視頻關鍵幀,或者,獲知本地得到接收端發送的視 頻更新請求消息的時刻為編碼當前幀的時刻時,確定需要將當前幀的下一幀編碼為視頻關 鍵幀。上述兩種判斷方式可以分別使用,也可以結合使用,本實施例將以結合使用的方 式進行介紹下面結合附圖,對本發明優選的實施方式進行詳細說明。參閱圖1所示,本發明實施例中,提供視頻通訊服務的系統內包括發送端和接收 端,所述發送端內包含有用于對視頻數據進行編碼的編碼裝置10,該編碼裝置10通過用戶 接口獲得本地產生的視頻數據,并按照預設的關鍵幀編碼間隔對獲得的視頻數據進行編碼 如,每10幀編碼一個視頻關鍵幀。因此,編碼裝置10根據各幀所處的編碼位置就可以預先 獲知每一幀是否需要編碼成視頻關鍵幀。參閱圖2所示,本發明實施例中,編碼裝置10包括獲取單元100、判斷單元101和 編碼單元102,其中,獲取單元100,用于獲得對當前幀進行編碼時所需的視頻數據;判斷單元101,用于根據預設方式判斷當前幀的下一幀是否需要編碼為視頻關鍵幀;編碼單元102,用于確定當前幀的下一幀需要編碼為視頻關鍵幀時,按照預設的降 碼率方式將獲得的視頻數據編碼為視頻預測幀。基于上述裝置,參閱圖3所示,本發明實施例中,發送端內的編碼裝置10對本地產 生的視頻數據進行編碼的詳細流程如下步驟300 獲得對當前幀進行編碼時所需要的視頻數據。步驟310 根據預設的編碼頻率判斷當前幀的下一幀是否需要編碼為視頻關鍵 幀,若是,則執行步驟330,否則,執行步驟320。例如,若當前為T時刻,則根據預設的編碼頻率判斷在T+1時刻編輯的視頻數據是 否為視頻關鍵幀。步驟320 判斷當前時刻是否接收到接收端發來的視頻更新請求消息(VFU) ?若 是,則進行步驟330 ;否則,進行步驟350。實際應用中,接收端在獲知本地接收的視頻數據質量不佳時,會通過發送VFU請 求來通知發送端重新強制編輯視頻關鍵幀,以提高傳輸的視頻數據的質量。因此,發送端的 編碼裝置10接收到接收端發送的VFU請求時,無論下一幀是否將按預設的關鍵幀編碼間隔 編碼為視頻關鍵幀,都會將其強制編碼為視頻關鍵幀,以保證視頻通訊的質量。步驟330 將當前幀包含的視頻數據以降碼率方式編碼為視頻預測幀,并發送給 接收端,接著,進行步驟340。本實施例中,編碼裝置10預測到下一幀為視頻關鍵幀后,要將當前待編碼的視頻 數據以降碼字方式進行編碼,這是因為視頻關鍵幀包含的是對應于一畫面的完整的視頻數 據,要保證其畫面質量,因此不應將其以降碼率方式進行編碼,所以需要將其前一幀包含的 視頻數據以降碼率方式進行編碼,從而在一定程度上平衡以正常碼率編碼后的視頻關鍵幀 在傳輸時所產生的數據量,進而有效地避免了碼字沖擊現象的發生。本實施例中,對視頻數據以降碼率方式進行編碼的方法包含但不限于1、按照設定數值加大視頻編碼過程中的量化參數,以實現降碼率編碼;2、以skip方式對待編碼視頻數據進行編碼,以實現降碼率編碼;3、增大宏塊重要性判定門限,對低于重要性門限值的宏塊采用更大的量化參數編 碼或不進行編碼; 4、在當前幀中禁用幀內宏塊更新機制。步驟340 獲取編碼下一幀所需要的視頻數據,并將其以預設的碼率編碼為視頻 關鍵幀,再將其發送給接收端,接著,進行步驟370。步驟350 將當前幀包含的視頻數據以預設的碼率編碼為視頻預測幀,接著,進行 步驟360。步驟360 獲取編碼下一幀所需要的視頻數據,并將其以預設的碼率編碼為視頻 預測幀,再將其發送給接收端,接著,進行步驟370。步驟370 繼續對后續 的視頻數據進行編碼。例如,假設當前時刻為T時刻,那么對T+1時刻的視頻數據編碼完畢后,要繼續對
T+2時刻、T+3時刻......的視頻數據按照步驟300-步驟360記載的方式進行編碼,在此
不再贅述。
基于上述實施例,下面以一具體的實施例進行說明。假設發送端中的編碼裝置10 以預先設定的頻率對視頻數據進行編碼,并確定在tl時刻需要編碼視頻關鍵幀,則編碼裝 置10先對在tl時刻的前一時刻傳輸的視頻數據,以加大量化參數等方式進行編碼,形成相 應的視頻預測幀;接著,編碼裝置10在對tl時刻將傳輸的視頻數據按照正常的碼率編碼為 視頻關鍵幀;此時,發送端接收到接收端在t2時刻發出VFU請求,并且經過T時間的延遲, 在t3時刻到達發送端,則編碼裝置10對在t3時刻傳輸的視頻數據以加大量化參數等方式 進行編碼,形成相應的視頻預測幀,并將在下一時刻,即t4時刻發送的視頻數據以預設的 碼率編碼為視頻關鍵幀。綜上所述,本發明實施例中,在進行視頻通訊時,發送端內的編碼裝置按照預設頻 率確定某一時刻的視頻數據需要編碼為視頻關鍵幀時,先對其前一時刻傳輸的視頻數據進 行降碼率編碼,以平衡在所述某一時刻編碼視頻關鍵幀時所增加的數據傳輸量;并且在接 收到接收端發送的VFU請求時,立即對接收到VFU請求的時刻傳輸的視頻數據進行降碼率 編碼,以平衡在下一時刻編碼視頻關鍵幀時,所增加的數據傳輸量,從而有效避免了碼字沖 擊現象的發生,也避免了視頻通訊系統陷入由于碼字沖擊現象所導致的視頻通訊質量持續 惡劣的惡性循環,進而保證了視頻通訊系統的服務穩定性,提升了視頻通訊服務的質量,也 明顯提高了用戶體驗顯然,本領域的技術人員可以對本發明中的實施例進行各種改動和變型而不脫離 本發明的精神和范圍。這樣,倘若本發明實施例中的這些修改和變型屬于本發明權利要求 及其等同技術的范圍之內,則本發明中的實施例也意圖包含這些改動和變型在內。
權利要求
1.一種視頻數據編碼方法,其特征在于,獲得對當前幀進行編碼時所需的視頻數據;根據預設方式判斷當前幀的下一幀是否需要編碼為視頻關鍵幀;確定當前幀的下一幀需要編碼為視頻關鍵幀時,按照預設的降碼率方式將獲得的視頻 數據編碼為視頻預測幀。
2.如權利要求1所述的方法,其特征在于,根據預設方式判斷當前幀的下一幀是否需 要編碼為視頻關鍵幀時,包括根據預設的關鍵幀編碼間隔獲知當前幀的下一幀到達預設 的關鍵幀編碼時刻時,確定需要將當前幀的下一幀編碼為視頻關鍵幀。
3.如權利要求1所述的方法,其特征在于,根據預設方式判斷當前幀的下一幀是否需 要編碼為視頻關鍵幀時,包括獲知本地得到接收端發送的視頻更新請求消息的時刻為編 碼當前幀的時刻時,確定需要將當前幀的下一幀編碼為視頻關鍵幀。
4.如權利要求1、2或3所述的方法,其特征在于,按照預設的降碼率方式將獲得的視頻 數據編碼為視頻預測幀時,包括采用加大量化參數的方式將獲得的視頻數據編碼為視頻 預測幀。
5.如權利要求1、2或3所述的方法,其特征在于,按照預設的降碼率方式將獲得的視頻 數據編碼為視頻預測幀時,包括采用skip方式將獲得的視頻數據編碼為視頻預測幀。
6.如權利要求1、2或3所述的方法,其特征在于,按照預設的降碼率方式將獲得的視頻 數據編碼為視頻預測幀時,包括增大宏塊重要性判定門限,對低于重要性門限值的宏塊采 用更大的量化參數編碼或不進行編碼。
7.如權利要求1、2或3所述的方法,其特征在于,按照預設的降碼率方式將獲得的視頻 數據編碼為視頻預測幀時,包括在當前幀中禁用幀內宏塊更新機制。
8.一種編碼裝置,其特征在于,包括獲取單元,用于獲得對當前幀進行編碼時所需的視頻數據;判斷單元,用于根據預設方式判斷當前幀的下一幀是否需要編碼為視頻關鍵幀;編碼單元,用于確定當前幀的下一幀需要編碼為視頻關鍵幀時,按照預設的降碼率方 式將獲得的視頻數據編碼為視頻預測幀。
9.如權利要求8所述的編碼裝置,其特征在于,所述判斷單元根據預設方式判斷當前 幀的下一幀是否需要編碼為視頻關鍵幀時,包括根據預設的關鍵幀編碼間隔獲知當前幀的 下一幀到達預設的關鍵幀編碼時刻時,確定需要將當前幀的下一幀編碼為視頻關鍵幀。
10.如權利要求8所述的編碼裝置,其特征在于,所述判斷單元根據預設方式判斷當前 幀的下一幀是否需要編碼為視頻關鍵幀時,包括獲知本地得到接收端發送的視頻更新請 求消息的時刻為編碼當前幀的時刻時,確定需要將當前幀的下一幀編碼為視頻關鍵幀。
11.如權利要求8、9或10所述的編碼裝置,其特征在于,所述編碼單元按照預設的降碼 率方式將獲得的視頻數據編碼為視頻預測幀時,采用加大量化參數的方式將獲得的視頻數 據編碼為視頻預測幀。
12.如權利要求8、9或10所述的編碼裝置,其特征在于,所述編碼單元按照預設的降碼 率方式將獲得的視頻數據編碼為視頻預測幀時,采用skip方式將獲得的視頻數據編碼為 視頻預測幀。
13.如權利要求8、9或10所述的編碼裝置,其特征在于,所述編碼單元按照預設的降碼率方式將獲得的視頻數據編碼為視頻預測幀時,增大宏塊重要性判定門限,對低于重要性 門限值的宏塊采用更大的量化參數編碼或不進行編碼。
14.如權利要求8、9或10所述的編碼裝置,其特征在于,所述編碼單元按照預設的降碼 率方式將獲得的視頻數據編碼為視頻預測幀時,在當前幀中禁用幀內宏塊更新機制。
全文摘要
本發明公開了一種視頻數據編碼方法,包括獲得對當前幀進行編碼時所需的視頻數據;根據預設方式判斷當前幀的下一幀是否需要編碼為視頻關鍵幀;確定當前幀的下一幀需要編碼為視頻關鍵幀時,按照預設的降碼率方式將獲得的視頻數據編碼為視頻預測幀。這樣,在進行視頻通訊時,發送端內的編碼裝置按照預設方式確定某一時刻的視頻數據需要編碼為視頻關鍵幀時,先對其前一時刻傳輸的視頻數據進行降碼率編碼,以平衡在所述某一時刻編碼視頻關鍵幀時,所增加的數據傳輸量;從而有效避免了碼字沖擊現象的發生,進而保證了視頻通訊系統的服務穩定性,提升了視頻通訊服務的質量。
文檔編號H04N7/32GK102045572SQ20091018002
公開日2011年5月4日 申請日期2009年10月22日 優先權日2009年10月22日
發明者吳釗, 梁立偉, 范文杰 申請人:中興通訊股份有限公司