一種流媒體視頻編碼方法及裝置的製作方法
2023-04-28 10:59:06
專利名稱:一種流媒體視頻編碼方法及裝置的製作方法
技術領域:
本發明涉及音視頻技術領域,特別是涉及一種流媒體視頻編碼方法及裝置。
背景技術:
MPEG壓縮標準是針對運動圖像而設計的,基本方法是——在單位時間內採集並保 存第一幀信息,然後就只存儲其餘幀相對第一幀發生變化的部分,以達到壓縮的目的。MPEG 壓縮標準可實現幀之間的壓縮。在多媒體數據壓縮標準中,較多採用MPEG系列標準。MPEG 系列壓縮算法從早期的MPEG-l、MPEG-2發展到現在的MPEG-4以及最新的H. 264,其核心壓 縮原理沒有變化。MPEG系列壓縮算法都在時域上對視頻流進行壓縮。MPEG系列壓縮算法採用了 I幀、P幀和B幀的模式,當前大部分壓縮晶片或者壓縮 算法並沒有實現B幀。其中,I幀是關鍵幀,P幀是前向預測幀,B幀是後向預測幀。當解碼器收到一個I幀,可立刻進行解碼,而不需要其它條件。但是,當解碼器收 到P幀或者B幀的時候,就不能夠立刻進行解碼,比如,P幀的解碼需要解碼器先解碼該幀前 面的P幀或者I幀。如果前面的P幀或者I幀在網絡中丟掉,即使後面連續收到很多P幀, 也無法正常解碼。例如在帶寬不夠的情況下網絡丟掉一個I幀,即使隨後的P幀都收到, 仍然無法正確解碼出圖像。綜上所述,目前的MPEG壓縮算法在低帶寬容易丟幀的情況下,存在無法正確解碼 的問題。例如,對H. 264來說,由於自身碼流本身比較低,可能在低帶寬下1秒能夠傳送15、 16幀,但是,如果I幀在網絡上丟失了,即使連續收到15幀P幀也無法正常解碼出一幅圖 片,這時給用戶的直觀感覺是畫面長時間停滯,低帶寬下H. 264居然比不上MJPEG。
發明內容
本發明所要解決的技術問題是提供一種流媒體視頻編碼方法及裝置,以解決丟幀 導致無法正確解碼的問題。為了解決上述問題,本發明公開了一種流媒體視頻編碼方法,包括實時檢測網絡帶寬;根據網絡帶寬實時調整關鍵幀產生的間隔;利用關鍵幀進行視頻編碼。優選的,所述根據網絡帶寬實時調整關鍵幀產生的間隔,包括當網絡帶寬符合表示低帶寬的預置條件時,減小關鍵幀產生的間隔,從而增加關 鍵幀的數量。優選的,所述利用關鍵幀進行視頻編碼之前,還包括在關鍵幀中加入校驗信息。優選的,針對同一視頻,採用多種碼率進行編碼。優選的,對於每種碼率的編碼,當網絡帶寬符合表示低帶寬的預置條件時,減小關 鍵幀產生的間隔,從而增加關鍵幀的數量。本發明還提供了一種流媒體視頻編碼裝置,包括
帶寬檢測單元,用於實時檢測網絡帶寬;關鍵幀調整單元,用於根據網絡帶寬實時調整關鍵幀產生的間隔;編碼單元,用於利用關鍵幀進行視頻編碼。優選的,所述關鍵幀調整單元包括關鍵幀增加子單元,用於當網絡帶寬符合表示低帶寬的預置條件時,減小關鍵幀 產生的間隔,從而增加關鍵幀的數量。優選的,所述裝置還包括校驗單元,用於在關鍵幀中加入校驗信息。優選的,所述編碼單元針對同一視頻,採用多種碼率進行編碼。與現有技術相比,本發明具有以下優點本發明針對MPEG壓縮算法,通過實時檢測網絡帶寬,並根據網絡帶寬實時調整關 鍵幀產生的間隔來進行編碼,通常在低帶寬下減小關鍵幀產生的間隔來增加關鍵幀。這樣, 即使出現丟掉關鍵幀的情況,由於下一個關鍵幀能很快彌補上,因此不會影響解碼,視頻播 放的畫面也不會長時間的停滯,保證了用戶瀏覽的流暢度,提升了視頻圖像的質量。
圖1是本發明實施例一所述一種流媒體視頻編碼方法的流程圖;圖2是本發明實施例二所述一種流媒體視頻編碼方法的流程圖;圖3是本發明實施例三所述一種流媒體視頻編碼裝置的結構圖;圖4是本發明實施例中MPEG-2幀結構示意圖。
具體實施例方式為使本發明的上述目的、特徵和優點能夠更加明顯易懂,下面結合附圖和具體實 施方式對本發明作進一步詳細的說明。實施例一參照圖1,是本發明實施例一所述一種流媒體視頻編碼方法的流程圖。針對MPEG壓縮算法,如前所述,採用了 I幀、P幀和B幀的模式,其中I幀是關鍵 幀,P幀是前向預測幀,B幀是後向預測幀。解碼時,解碼器可以立刻對I幀進行解碼,但如 果沒有I幀,P幀和B幀就無法解碼。本實施例對現有的MPEG編碼進行了編碼優化,其編碼過程如下步驟101,實時檢測網絡帶寬;在計算機網絡中,帶寬用來表示網絡的通信線路所能傳送數據的能力,因此網絡 帶寬表示在單位時間內從網絡中的某一點到另一點所能通過的「最高數據率」。網絡的信道 帶寬與它的數據傳輸能力存在一個穩定的基本關係帶寬越高,數據傳輸可利用的資源就 越多,因而能達到越高的速度。現有技術中有多種可以檢測網絡帶寬的方法,如通過網絡流量的方式等。本實施 例可以選取一種比較簡單的算法和較低的開銷,對帶寬進行實時檢測,實時掌握實際的網 絡帶寬,這樣就可以對編碼器的策略進行實時調整,從而最大利用帶寬進行流媒體視頻傳輸。
4
步驟102,根據網絡帶寬實時調整關鍵幀產生的間隔;在MPEG系列編碼算法中,通常用GOP (Group Of Picture)這一值來設置I幀產生 的間隔。經過對比測試研究,在低帶寬的情況下,可以將GOP的值調整到一個較小的合適 值,這樣1秒鐘能夠產生多個I幀,即使偶爾丟掉了一個I幀,下一個I幀也能很快彌補上, 圖像不至於長時間的停滯。所謂G0P,意思是畫面組,一個GOP就是一組連續的畫面。MPEG編碼將畫面(即 幀)分為I、P、B三種,I幀是一個完整的畫面,而P幀和B幀記錄的是相對於I幀的變化。 例如,參照圖4所示,是MPEG-2的幀結構,一個GOP包括的幀序列是IBBPBBPBBPBB。正常情況下,如果網絡帶寬良好,則可以按照傳統的MPEG編碼設置正常情況下的 I幀產生間隔,即設置GOP值。但是,如果實際的網絡帶寬較低,即實時檢測結果符合表示低帶寬的條件,則本實 施例通過減小I幀產生的間隔,即減小GOP值,可以增加I幀的數量。甚至,在網絡帶寬非常良好的情況下,可以通過增大I幀產生的間隔,來減小I幀 的數量。步驟103,利用關鍵幀進行視頻編碼。綜上所述,本實施例可以根據網絡帶寬的變化實時調整I幀數量,尤其是在低帶 寬情況下,通過增加I幀來進行編碼,即使網絡出現丟掉I幀的情況,由於下一個I幀能很 快彌補上,因此不會影響解碼,視頻播放的畫面也不會長時間的停滯,保證了用戶瀏覽的流 暢度,提升了視頻圖像的質量。例如,對於H. 264來說,按照現有技術的編碼方法,可能在低帶寬下1秒能夠傳送 15,16幀,但是,按照本發明所述方法在編碼過程中增加I幀,在低帶寬下1秒能夠傳送的 幀數大於原來的16幀。如果I幀在網絡上丟失了,由於I幀的增加導致I幀之間的間隔變 小,解碼器可以在很短的時間收到下一個I幀,利用所述下一個I幀繼續進行解碼。如果增 加的I幀足夠多,則解碼過程不會由於丟幀而產生影響,那麼視頻播放的流暢度也不會受 到影響。實施例二 本實施例是對實施例一的進一步優化,具體如下。參照圖2,是本發明實施例二所述一種流媒體視頻編碼方法的流程圖。步驟201,針對同一視頻,採用多種碼率進行編碼;碼率就是數據傳輸時單位時間傳送的數據位數,碼率也叫碼流(DataRate),一般 用的單位是kbps即千位每秒。通俗一點的理解就是取樣率,單位時間內取樣率越大,精度 就越高,處理出來的文件就越接近原始文件,但是文件體積與取樣率是成正比的,所以幾乎 所有的編碼格式重視的都是如何用最低的碼率達到最少的失真。例如,對於同一音視頻節目源(實時直播節目源或點播節目源),可以設置 64K-128K、128K-256k、300K、500K、lM、2M等不同的碼流,以供用戶選擇。用戶在收看直播節 目或者點播視頻節目時,如果當前的網絡狀態較好,網速較快,則可以選擇300K或500K的 高碼流進行高清播放;如果在後續播放過程中,由於連接的用戶數越來越多,網絡變慢,則 用戶可以選擇128K-256k的低碼流進行切換,以適應網絡狀態的變化,保證畫面播放的流 暢。
5
針對每一種碼率的編碼過程如下步驟202,實時檢測網絡帶寬;步驟203,根據網絡帶寬實時調整關鍵幀產生的間隔;如果實際的網絡帶寬較低,則可以將GOP的值調整到一個較小的合適值,即減小I 幀產生的間隔,可以增加I幀的數量。步驟204,在關鍵幀中加入校驗信息;所述校驗信息用於保證伺服器播放的內容不會被隨意篡改。步驟205,利用關鍵幀進行視頻編碼。上述流程中,每一種碼率的原始視頻流都會在低帶寬情況下通過增加關鍵幀的方 法,來避免解碼過程中由於丟幀(關鍵幀)導致的無法解碼。實施例三參照圖3,是本發明實施例三所述一種流媒體視頻編碼裝置的結構圖。所述編碼裝置主要包括帶寬檢測單元31,用於實時檢測網絡帶寬;關鍵幀調整單元32,用於根據網絡帶寬實時調整關鍵幀產生的間隔;編碼單元33,用於利用關鍵幀進行視頻編碼。在低帶寬情況下,所述關鍵幀調整單元32可以包括關鍵幀增加子單元,用於當網絡帶寬符合表示低帶寬的預置條件時,減小關鍵幀 產生的間隔,從而增加關鍵幀的數量。在MPEG系列編碼算法中,通常用GOP (Group Of Picture)這一值來設置I幀產生 的間隔。經過對比測試研究,在低帶寬的情況下,可以將GOP的值調整到一個較小的合適 值,這樣1秒鐘能夠產生多個I幀,即使偶爾丟掉了一個I幀,下一個I幀也能很快彌補上, 圖像不至於長時間的停滯。優選的,所述編碼裝置還可以包括校驗單元34,用於在關鍵幀中加入校驗信息。所述校驗信息用於保證伺服器播放的內容不會被隨意篡改。優選的,所述編碼單元33針對同一視頻,採用多種碼率進行編碼。用戶在收看直播節目或者點播視頻節目時,如果當前的網絡狀態較好,網速較快, 則可以選擇300K或500K的高碼流進行高清播放;如果在後續播放過程中,由於連接的用戶 數越來越多,網絡變慢,則用戶可以選擇128K_256k的低碼流進行切換,以適應網絡狀態的 變化,保證畫面播放的流暢。綜上所述,所述編碼裝置對傳統的MPEG系列編碼算法進行了優化改進,可以根據 網絡帶寬的實時狀態調整關鍵幀的數量,在低帶寬情況下增加關鍵幀,這樣即使網絡傳輸 中丟掉了關鍵幀,由於關鍵幀的數量較多,下一個關鍵幀會馬上傳到,因此解碼可以正常進 行。利用所述編碼裝置,可以提高視頻播放的流暢性,並提升視頻圖像的質量。本說明書中的各個實施例均採用遞進的方式描述,每個實施例重點說明的都是與 其他實施例的不同之處,各個實施例之間相同相似的部分互相參見即可。對於裝置實施例 而言,由於其與方法實施例基本相似,所以描述的比較簡單,相關之處參見方法實施例的部 分說明即可。
6
以上對本發明所提供的一種流媒體視頻編碼方法及裝置,進行了詳細介紹,本文 中應用了具體個例對本發明的原理及實施方式進行了闡述,以上實施例的說明只是用於幫 助理解本發明的方法及其核心思想;同時,對於本領域的一般技術人員,依據本發明的思 想,在具體實施方式
及應用範圍上均會有改變之處,綜上所述,本說明書內容不應理解為對 本發明的限制。
權利要求
一種流媒體視頻編碼方法,其特徵在於,包括實時檢測網絡帶寬;根據網絡帶寬實時調整關鍵幀產生的間隔;利用關鍵幀進行視頻編碼。
2.根據權利要求1所述的方法,其特徵在於,所述根據網絡帶寬實時調整關鍵幀產生 的間隔,包括當網絡帶寬符合表示低帶寬的預置條件時,減小關鍵幀產生的間隔,從而增加關鍵幀 的數量。
3.根據權利要求1所述的方法,其特徵在於,所述利用關鍵幀進行視頻編碼之前,還包 括在關鍵幀中加入校驗信息。
4.根據權利要求1所述的方法,其特徵在於針對同一視頻,採用多種碼率進行編碼。
5.根據權利要求4所述的方法,其特徵在於對於每種碼率的編碼,當網絡帶寬符合表示低帶寬的預置條件時,減小關鍵幀產生的 間隔,從而增加關鍵幀的數量。
6.一種流媒體視頻編碼裝置,其特徵在於,包括帶寬檢測單元,用於實時檢測網絡帶寬;關鍵幀調整單元,用於根據網絡帶寬實時調整關鍵幀產生的間隔;編碼單元,用於利用關鍵幀進行視頻編碼。
7.根據權利要求6所述的裝置,其特徵在於,所述關鍵幀調整單元包括關鍵幀增加子單元,用於當網絡帶寬符合表示低帶寬的預置條件時,減小關鍵幀產生 的間隔,從而增加關鍵幀的數量。
8.根據權利要求6所述的裝置,其特徵在於,還包括校驗單元,用於在關鍵幀中加入校驗信息。
9.根據權利要求6所述的裝置,其特徵在於所述編碼單元針對同一視頻,採用多種碼 率進行編碼。
全文摘要
本發明提供了一種流媒體視頻編碼方法及裝置,以解決丟幀導致無法正確解碼的問題。本發明通過實時檢測網絡帶寬,並根據網絡帶寬實時調整關鍵幀產生的間隔來進行編碼,通常在低帶寬下減小關鍵幀產生的間隔來增加關鍵幀。這樣,即使出現丟掉關鍵幀的情況,由於下一個關鍵幀能很快彌補上,因此不會影響解碼,視頻播放的畫面也不會長時間的停滯,保證了用戶瀏覽的流暢度,提升了視頻圖像的質量。
文檔編號H04N7/26GK101917612SQ20091024280
公開日2010年12月15日 申請日期2009年12月17日 優先權日2009年12月17日
發明者何宇飛, 夏永宏, 李軍, 溫曉瑤 申請人:新奧特(北京)視頻技術有限公司