分片轉碼方法及裝置制造方法
【專利摘要】本申請公開了分片轉碼方法及裝置,所述方法包括:將一片源分割為若干子片,其中每個子片包括若干幀;對若干子片分別進行預轉碼,獲得每個子片的全局統(tǒng)計信息,每個子片的全局統(tǒng)計信息至少包括片源內所有幀的幀級信息;依照片源內所有幀的幀級信息估算每幀的復雜度,并且根據(jù)每幀的復雜度以及所預設的片源轉碼后的目標碼率,調整每幀的幀級信息中的量化參數(shù);依照每個子片中任一幀的調整后的量化參數(shù)對所述每個子片中任一幀進行轉碼,直到所有子片轉碼完成,依片源分割時獲得的子片的順序將轉碼完成后的所有子片合并,拼接為轉碼后的片源。本身請綜合全局考慮,將有效的片源碼率進行合理的分配,整個片源在播放過程中,質量、清晰度會較為均勻。
【專利說明】分片轉碼方法及裝置
【技術領域】
[0001]本申請涉及電通信【技術領域】,具體涉及一種分片轉碼的方法和分片轉碼裝置。
【背景技術】
[0002]當今社會,隨著形式各樣的電子終端系統(tǒng)以及各種播放器的產(chǎn)生,對視頻文件的格式要求也越來越復雜化、多樣化。各家終端都有自己所支持的視頻格式,以終端為載體的播放器也有自己支持的視頻格式,而網(wǎng)絡上提供可下載的視頻文件往往只有一種格式,再者從一些視頻錄制工具輸出的視頻文件格式也往往比較單一,如果一種格式的視頻文件需要在另一終端進行播放或者另一種播放器進行播放,其格式有可能不能滿足終端或者播放器的需求,此時就需要進行視頻格式轉換即視頻轉碼,以滿足用戶的需求。
[0003]視頻轉碼就是將一種格式的視頻文件轉換為另一格式的視頻文件,在實際操作中,一些比較長的視頻文件,其視頻轉碼時間較長,給用戶帶來困擾。為解決這一問題大都采用將一長視頻分片轉碼來提升轉碼的速度,即將一段長視頻分成若干子片,每個子片在不同的CPU或者轉碼機上同時進行同時轉碼,等所有的子片全部轉碼完成之后,再對轉碼后的所有子片進行合并拼接處理,使其成為一個新的完整的視頻。
[0004]但是,由于所分出的若干子片的各個子片間相互獨立,不能統(tǒng)籌全局的碼率分配,造成各個子片的質量不均。這樣就需要提供一種方法來應對因為碼率分配不均進而使得各個子片的質量不同,造成編碼之后的質量較整片編碼的質量有明顯下降的問題。
【發(fā)明內容】
[0005]本申請所要解決的技術問題在于提供一種分片轉碼的方法和分片轉碼裝置,解決長視頻在分片轉碼過程中,因為不同統(tǒng)籌全局的碼率分配,造成各個子片的質量不均。
[0006]為了解決上述技術問題,本申請揭示了一種分片轉碼方法,包括:將一片源分割為若干子片,其中每個子片包括若干幀;對所述若干子片分別進行預轉碼,獲得每個子片的全局統(tǒng)計信息,所述每個子片的全局統(tǒng)計信息至少包括所述片源內所有幀的幀級信息;依照所述片源內所有幀的幀級信息估算每幀的復雜度,并且根據(jù)所述每幀的復雜度以及所預設的片源轉碼后的目標碼率,調整每幀的幀級信息中的量化參數(shù);依照每個子片中任一幀的調整后的量化參數(shù)對所述每個子片中任一幀進行轉碼,直到所有子片轉碼完成,依所述片源分割時獲得的子片的順序將轉碼完成后的所有子片合并,拼接為轉碼后的所述片源。
[0007]進一步地,根據(jù)所述每幀的復雜度以及所預設的片源轉碼后的目標碼率,調整每幀的幀級信息中的量化參數(shù),包括:步驟a:根據(jù)任一幀的復雜度調整所述任一幀的量化增量;步驟b:根據(jù)所述任一幀的調整后的量化增量以及所述任一幀的幀級信息為所述任一幀分配轉碼比特數(shù),并且通過每幀所分配的轉碼比特數(shù)計算出調整后的所述片源的轉碼碼率;步驟c:比較調整后的所述片源的轉碼碼率與所預設的片源轉碼后的目標碼率,如果兩者相差大于預設閾值,則依照所述片源內所有幀之間的復雜度比值,再次調整每幀的幀級信息中的量化增量,重復執(zhí)行步驟b至c ;如果兩者相差小于或等于預設閾值,執(zhí)行步驟d ;步驟d:將最后一次執(zhí)行的步驟b中所述任一幀的調整后的量化增量轉換為每幀的最終調整后的量化參數(shù)。
[0008]進一步地,根據(jù)所述任一幀的調整后的量化增量以及所述任一幀的幀級信息為所述任一幀分配轉碼比特數(shù),包括:根據(jù)所述任一幀的幀級信息中的殘差轉碼比特數(shù)、運動矢量的轉碼比特數(shù)以及頭信息轉碼比特數(shù),結合所述任一幀的量化增量,計算出為所述任一幀所分配的轉碼比特數(shù)。
[0009]進一步地,通過每幀所分配的轉碼比特數(shù)計算出調整后的所述片源的轉碼碼率,包括:對于任一子片,根據(jù)所述任一子片內每幀所分配的轉碼比特數(shù),計算所述任一子片的轉碼碼率;對所有子片的轉碼碼率進行疊加后再求平均數(shù),計算出調整后的所述片源的轉碼碼率。
[0010]進一步地,對所述若干子片分別進行預轉碼,獲得每個子片的全局統(tǒng)計信息,所述每個子片的全局統(tǒng)計信息至少包括所述片源內所有幀的幀級信息,包括:對所述若干子片分別進行預轉碼,獲得每個子片的統(tǒng)計信息;對任一子片,將所述任一子片的統(tǒng)計信息排在第一位,依所述片源分割時獲得的子片的順序將其他子片的統(tǒng)計信息排在所述任一子片的統(tǒng)計信息之后,將所有子片的統(tǒng)計信息進行合并從而得到所述每個子片的全局統(tǒng)計信息。
[0011]進一步地,所述每個子片的統(tǒng)計信息,至少包括:所述子片內依序排列的各幀的幀級信息;所述每個子片的全局統(tǒng)計信息中,前一個子片的結束幀的幀級信息,連接后一個子片的起始幀的幀級信息,且當排在第一位的所述任一子片不是依子片分割的順序排在首位的子片時,依子片分割的順序排在首位的子片的起始幀的幀級信息,連接排在末尾的子片的結束幀的幀級信息。
[0012]進一步地,所述每幀的復雜度,是所述每幀的像素的渲染次數(shù)相對于整個片源的所有像素的渲染次數(shù)的比較值。
[0013]進一步地,預轉碼所獲得的所述每個子片的全局統(tǒng)計信息,至少還包括所述片源內每個幀所含有的每個宏塊的量化增量;依照每個子片中任一幀的調整后的量化參數(shù)對所述任一幀進行轉碼,包括:對任一宏塊,根據(jù)所述任一宏塊的量化增量以及所述任一宏塊所在幀的調整后的量化參數(shù),得到任一宏塊的調整后的量化參數(shù);根據(jù)任一幀內每個宏塊的調整后的量化參數(shù),對任一幀內每個宏塊進行轉碼,直到所述任一幀內所有宏塊都完成轉碼。
[0014]為了解決上述技術問題,本身請還揭示了一種分片轉碼裝置,包括:預轉碼模塊,用于將一片源分割為若干子片,其中每個子片包括若干幀,對所述若干子片分別進行預轉碼,獲得每個子片的全局統(tǒng)計信息,所述每個子片的全局統(tǒng)計信息至少包括所述片源內所有幀的幀級信息;碼率分配模塊,用于依照所述片源內所有幀的幀級信息估算每幀的復雜度,并且根據(jù)所述每幀的復雜度以及所預設的片源轉碼后的目標碼率,調整每幀的幀級信息中的量化參數(shù);轉碼模塊,依照每個子片中任一幀的調整后的量化參數(shù)對所述任一幀進行相應轉碼,直到所有子片的轉碼完成,依子片分割的順序將轉碼完成后的所有子片合并,拼接為所述片源。
[0015]進一步地,所述碼率分配模塊,用于根據(jù)任一幀的復雜度調整所述任一幀的量化增量;根據(jù)所述任一幀的調整后的量化增量以及所述任一幀的幀級信息為所述任一幀分配轉碼比特數(shù),并且通過每幀所分配的轉碼比特數(shù)計算出調整后的所述片源的轉碼碼率;t匕較調整后的所述片源的轉碼碼率與所預設的片源轉碼后的目標碼率,如果兩者相差大于預設閾值,則依照所述片源內所有幀之間的復雜度比值,再次調整每幀的幀級信息中的量化增量,根據(jù)每幀調整后的量化增量以及每幀的幀級信息為每幀分配轉碼比特數(shù),并且通過每幀所分配的轉碼比特數(shù)計算出調整后的所述片源的轉碼碼率,再次檢測調整后的所述片源的轉碼碼率與所預設的片源轉碼后的目標碼率,直到兩者相差小于等于所述閾值,將最后一次調整得到的每幀的量化增量作為每幀的最終調整后的量化增量,將所述每幀的最終調整后的量化增量轉換為每幀的最終調整后的量化參數(shù)。
[0016]與現(xiàn)有技術相比,本申請可以獲得包括以下技術效果:
[0017]在對每一個子片進行碼率分配時,都會綜合考慮其他所有子片的情況,從全局的角度出發(fā),考慮之前調整完的幀已經(jīng)分配了多少轉碼比特數(shù),而整個片源還剩下多少轉碼比特數(shù),后面還沒有調整的幀有多少是需要分配較大轉碼比特數(shù)的,而當前幀與后面的幀相比,從比例上是要多分配一些轉碼比特數(shù)還是少分配一些,這樣綜合全局考慮下,決定任一幀分配多少轉碼比特數(shù)合適,從而將有效的片源碼率進行合理的分配,使得內容較為復雜,對碼率需求高的子片都得到了相符碼率分配,而內容簡單的子片就不需要較大的碼率,這樣在每個子片轉碼完成后,子片拼接后,整個片源在播放過程中,質量、清晰度會較為均勻。
【專利附圖】
【附圖說明】
[0018]此處所說明的附圖用來提供對本申請的進一步理解,構成本申請的一部分,本申請的示意性實施例及其說明用于解釋本申請,并不構成對本申請的不當限定。在附圖中:
[0019]圖1是本申請實施例一的方法流程圖;
[0020]圖2是本申請實施例二的方法流程圖;
[0021]圖3是本申請實施例二的方法流程圖;
[0022]圖4是本申請實施例四的方法流程圖;
[0023]圖5是本申請實施例五的裝置結構圖。
【具體實施方式】
[0024]以下將配合附圖及實施例來詳細說明本申請的實施方式,藉此對本申請如何應用技術手段來解決技術問題并達成技術功效的實現(xiàn)過程能充分理解并據(jù)以實施。
[0025]如在說明書及權利要求當中使用了某些詞匯來指稱特定組件。本領域技術人員應可理解,硬件制造商可能會用不同名詞來稱呼同一個組件。本說明書及權利要求并不以名稱的差異來作為區(qū)分組件的方式,而是以組件在功能上的差異來作為區(qū)分的準則。如在通篇說明書及權利要求當中所提及的“包含”為一開放式用語,故應解釋成“包含但不限定于”?!按笾隆笔侵冈诳山邮盏恼`差范圍內,本領域技術人員能夠在一定誤差范圍內解決所述技術問題,基本達到所述技術效果。此外,“耦接”或“電性連接” 一詞在此包含任何直接及間接的電性耦接手段。因此,若文中描述一第一裝置耦接于一第二裝置,則代表所述第一裝置可直接電性耦接于所述第二裝置,或通過其它裝置或耦接手段間接地電性耦接至所述第二裝置。說明書后續(xù)描述為實施本申請的較佳實施方式,然所述描述乃以說明本申請的一般原則為目的,并非用以限定本申請的范圍。本申請的保護范圍當視所附權利要求所界定者為準。
[0026]還需要說明的是,術語“包括”、“包含”或者其任何其它變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、商品或者系統(tǒng)不僅包括那些要素,而且還包括沒有明確列出的其它要素,或者是還包括為這種過程、方法、商品或者系統(tǒng)所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的過程、方法、商品或者系統(tǒng)中還存在另外的相同要素。本申請實施例中所述“轉碼”亦可以稱為“編碼”。
[0027]實施例一
[0028]本申請實施例所揭示的一種分片轉碼方法,如圖1所示,其包括以下步驟:
[0029]步驟S100,將一片源分割為若干子片。
[0030]可以根據(jù)片源的時長、以及一對一處理每個子片的單個CPU的能力或者分片轉碼裝置的工作狀況來確定分割子片的數(shù)量。一般來說,每個子片的時長接近,但都是以關鍵幀作為分割子片的開始。分割后的每個子片還包括若干幀,每個幀還包括若干宏塊。同時,分割后,每個子片的轉碼碼率都相等,等于片源的轉碼碼率,這樣做是為了后面方便測算量化參數(shù),從而為每個子片重新分配轉碼碼率。
[0031]較佳地,本實施例采用2.5分鐘為一個子片的時長,例如總長25分鐘一個片源就被分成了 10個子片。
[0032]步驟S102,對步驟SlOO中得到的若干子片分別進行預轉碼,獲得每個子片的全局統(tǒng)計信息。
[0033]在現(xiàn)有方式中,預轉碼后可以獲得每個子片的統(tǒng)計信息,每個子片的統(tǒng)計信息一般包括:每個子片的全局信息、每個子片內每幀的幀級信息和每幀內各宏塊的宏塊級信息。
[0034]每個子片的全局信息,包括:全局轉碼參數(shù),例如整個片源的碼率等;每幀的幀級信息,包括:巾貞類型、轉碼使用的量化參數(shù)(quantizat1nparameter, cip)、比特信息、巾貞間宏塊數(shù)、巾貞內宏塊數(shù)、參考巾貞及加權預測系數(shù)(weighting coefficients);各宏塊的宏塊級信息,包括:巾貞內每個宏塊的量化增量(quantizat1nscale, qscale)。
[0035]統(tǒng)計信息是進行轉碼碼率分配和轉碼的基礎,如現(xiàn)有技術的方式僅使用每個子片的統(tǒng)計信息對當前子片轉碼,而不考慮全局,這樣會造成每個子片僅根據(jù)自身的情況分配轉碼碼率??此品峙浜侠恚鋵嵲谡麄€片源上,每個子片對于轉碼碼率的要求不可能完全一致,有些子片的圖像數(shù)據(jù)量大,對于轉碼碼率要求高,而有些子片的圖像數(shù)據(jù)量小,對于轉碼碼率要求很低,在整個片源的轉碼碼率有限的情況下,并沒有將轉碼碼率分配到最有需求的子片上,在每個子片轉碼完成后,反而造成各個子片質量不均,進而使得內容較復雜的子片的質量在轉碼后范圍會大幅下降。
[0036]而本申請中通過預轉碼獲得的是每個子片的全局統(tǒng)計信息,所述每個子片的全局統(tǒng)計信息至少包括:所有子片的全局信息、片源內所有幀的幀級信息和片源內每幀內各宏塊的宏塊級信息。顯然,與現(xiàn)有方式不同,本申請中每個子片的全局統(tǒng)計信息不僅有當前子片的統(tǒng)計信息,還具有片源內其他所有子片的統(tǒng)計信息。這樣,在對每一個子片進行轉碼碼率分配時,都會綜合考慮其他所有子片的情況,從全局的角度,將有效的片源碼率進行合理的分配,是內容較為復雜,對轉碼碼率需求高的子片都得到了相符碼率分配,這樣在每個子片轉碼完成后,子片拼接后,整個片源在播放過程中,質量、清晰度會較為均勻。
[0037]對于如何在預轉碼時,獲得每個子片的全局統(tǒng)計信息,參考實施例二及圖2。
[0038]步驟S104,依照所述片源內所有幀的幀級信息估算每幀的復雜度,并且根據(jù)所述每幀的復雜度以及所預設的片源轉碼后的目標碼率,調整每幀的幀級信息中的量化參數(shù)。
[0039]片源轉碼后的目標碼率是希望整個片源在轉碼后所具有的轉碼碼率,但是在經(jīng)過步驟SlOO至S106的實際轉碼后整個片源在轉碼后很難精確地等于目標碼率,但是會無限接近目標碼率,處于圍繞著目標碼率的一個合理的閾值區(qū)間內。
[0040]所述每幀的復雜度,是指所述每幀的像素的渲染次數(shù)相對于整個片源的所有像素的渲染次數(shù)的比較值,用于衡量每幀所承載的內容的復雜程度,復雜程度高的幀顯然需要占用的比特率也高。測量每幀的復雜度的方法屬于現(xiàn)有技術的范疇,可以參見已公開的關于此處的專利文獻,這些文獻上公開的測量每幀的復雜度的方法均可以用于本申請的方案。
[0041]以下舉出相應的例子對復雜度進行進一步的描述。例如,在某一幀所承載的視頻數(shù)據(jù)呈現(xiàn)出來的畫面中僅顯示出一面墻,那這一幀的復雜度為I ;如果在某一幀所承載的視頻數(shù)據(jù)呈現(xiàn)出來的畫面中顯示著墻的前面站有一個人,其畫面的復雜程度較高,那這一幀的復雜度為2 ;如果在再有一幀所承載的視頻數(shù)據(jù)呈現(xiàn)出來的畫面中有一只小狗站在人和墻的中間,其畫面的復雜程度在三者中最高,那這一幀的復雜度為3,以此類推。需要說明的是,上述復雜度的取值僅為描述方便使用,并不限定本申請的保護范圍。當前幀的復雜度是指當前幀所呈現(xiàn)的畫面需要渲染的次數(shù),而片源的復雜度是集合了整個片源中所有畫面的復雜度,即片源的復雜度是一個固定的數(shù)值。某一幀的復雜度與整個片源的復雜度的比值即得到所述幀的復雜度比值。
[0042]依照所述片源內所有幀的幀級信息估算每幀的復雜度,根據(jù)所述每幀的復雜度得到每幀的量化增量;根據(jù)每幀的量化增量計算出整個片源可能達到的轉碼碼率,如果這個轉碼碼率和所預設的片源轉碼后的目標碼率相差較大,說明每幀的量化增量取得不合適,則調整每幀的量化增量,再計算出整個片源可能達到的轉碼碼率,再次比對這個轉碼碼率和所預設的片源轉碼后的目標碼率,如果依然相差較大,則繼續(xù)以迭代的方式調整每幀的量化增量,直到整個片源可能達到的轉碼碼率和所預設的片源轉碼后的目標碼率相接近,差值達到一個合理區(qū)間,將最后調整得到的每幀的量化增量轉換為量化參數(shù)。
[0043]步驟S106,依照每個子片中任一幀的調整后的量化參數(shù)對所述每個子片中任一幀進行相應轉碼,直到所有子片的轉碼完成,依所述片源分割時獲得的子片的順序將轉碼完成后的所有子片合并,拼接為轉碼后的所述片源。
[0044]對每個子片轉碼之前的結果為:假設A為所述片源的原始碼率,分割后得到的N個子片碼率分別為Al、A2…An,η = [I, N],Al就是分割后得到的第I子片的實際碼率,A2就是分割后得到的第2子片的實際碼率...,此時Al = A2…=An,顯然也具有如下的關系(A1+A2+…An)/N = A。
[0045]對每個子片轉碼之后的結果即為:假設B為所預設的片源轉碼后的目標碼率,N個子片碼率分別為Β1、Β2...Βη,η = [I, N],BI就是根據(jù)B給第I子片設定的預轉碼碼率,B2就是根據(jù)B給第2子片設定的預轉碼碼率...則?1+82+吣&1)/^ = B,而B1、B2…Bn之間根據(jù)各自的實際需要配置,因此B1、B2…Bn之間的數(shù)值關系上可能各不相同。
[0046]實施例二
[0047]在步驟S102中,進行預轉碼的過程,獲得的是每個子片的全局統(tǒng)計信息,包括整個片源的所有子片的統(tǒng)計信息,當然,對于不同的幀,全局統(tǒng)計信息內所有子片的統(tǒng)計信息的排列順序有區(qū)別。在對每一個子片進行碼率分配時,都會綜合考慮其他所有子片的情況,從全局的角度,將有效的片源碼率進行合理的分配。
[0048]如圖2所示,步驟S102進一步包括:
[0049]步驟S1020,對所述若干子片分別進行預轉碼,獲得每個子片的統(tǒng)計信息。
[0050]對所有子片分別進行預轉碼,其中每個子片分別由各自的對應的轉碼器或者CPU進行預轉碼,子片之間在預轉碼時是相互獨立進行的。
[0051]例如,將片源分為100個子片,按分割的順序,子片的序號分別為O至100。預轉碼后分別得到子片O的統(tǒng)計信息,子片I的統(tǒng)計信息,子片2的統(tǒng)計信息…子片100的統(tǒng)計信肩、O
[0052]步驟S1022,對任一子片,將所述任一子片的統(tǒng)計信息排在第一位,依所述片源分割時獲得的子片的順序將其他子片的統(tǒng)計信息排在所述任一子片的統(tǒng)計信息之后,將所有子片的統(tǒng)計信息進行合并從而得到所述每個子片的全局統(tǒng)計信息。
[0053]例如,預轉碼后分別得到子片O的統(tǒng)計信息,子片I的統(tǒng)計信息,子片2的統(tǒng)計信息…子片100的統(tǒng)計信息。對于子片0,將子片O的統(tǒng)計信息排在第一位,之后是子片I的統(tǒng)計信息,子片2的統(tǒng)計信息…最后是子片100的統(tǒng)計信息,然后將這些子片合并起來,這樣就得到了一個完整的包括所有子片的統(tǒng)計信息并以子片O的統(tǒng)計信息開頭的有序的統(tǒng)計信息串。這個統(tǒng)計信息串就是子片O的全局統(tǒng)計信息。
[0054]具體來說,合并時,前一個子片的結束幀的幀級信息,連接后一個子片的起始幀的幀級信息。所述每個子片的統(tǒng)計信息,至少包括:所述子片內依序排列的各幀的幀級信息。接續(xù)上面的示例,將子片O內的結束幀的幀級信息與子片I內的起始幀的幀級信息連接,子片I內的結束幀的幀級信息與子片2內的起始幀的幀級信息連接,以此類推,直至將子片99內的結束幀的幀級信息與子片100內的起始幀的幀級信息連接。
[0055]還有一種情況,例如,預轉碼后分別得到子片O的統(tǒng)計信息,子片I的統(tǒng)計信息,子片2的統(tǒng)計信息…子片100的統(tǒng)計信息。對于子片2,將子片2的統(tǒng)計信息排在第一位,之后是子片3的統(tǒng)計信息,子片4的統(tǒng)計信息…最后是子片100的統(tǒng)計信息,子片O的統(tǒng)計信息,子片I的統(tǒng)計信息。然后將這些子片合并起來,這樣就得到了一個完整的包括所有子片的統(tǒng)計信息并以子片2的統(tǒng)計信息開頭的有序的統(tǒng)計信息串。這個統(tǒng)計信息串就是子片2的全局統(tǒng)計信息。
[0056]具體來說,當排在第一位的所述任一子片不是依子片分割的順序排在首位的子片時,依子片分割的順序排在首位的子片的起始幀的幀級信息,連接排在末尾的子片的結束幀的幀級信息。例如,將子片2內的結束幀的幀級信息與子片3內的起始幀的幀級信息連接,子片3內的結束幀的幀級信息與子片4內的起始幀的幀級信息連接,以此類推,直至將子片99內的結束幀的幀級信息與子片100內的起始幀的幀級信息連接,然后將子片100內的結束幀的幀級信息與子片O內的起始幀的幀級信息連接,最后將子片O內的結束幀的幀級信息與子片I內的起始幀的幀級信息連接,這樣就得到了以子片2的統(tǒng)計信息開頭的有序的統(tǒng)計信息串。這個統(tǒng)計信息串就是子片2的全局統(tǒng)計信息,子片2的全局統(tǒng)計信息中包括以子片2內的幀的幀級信息開頭的片源所有幀的幀級信息。
[0057]只有知道后續(xù)的轉碼情況(復雜度),才能為當前子片建立合理的轉碼碼率。顯然,全局統(tǒng)計信息可以統(tǒng)籌全局的碼率控制,同時還可以指導當前幀的碼率控制。
[0058]實施例三
[0059]在步驟S104中,初始設置每幀的量化參數(shù),這個初始設置是沒有考慮片源其他幀的全局情況的。所以初始設置的量化參數(shù)可以完成轉碼,但是轉碼的效果以及轉碼后整個片源的碼率很可能會不合適,還需要進一步迭代調整,但是每幀初始設置的量化參數(shù)為后續(xù)調整提供了很好的調整基礎。后面可以根據(jù)片源所有幀的全局情況,為每一個幀配置合理的量化參數(shù),然后模擬轉碼得到片源碼率,通過整個片源的轉碼碼率與設定的片源目標碼率比較來考量每幀的量化參數(shù)的設置是否合理,不合理則繼續(xù)迭代調整每幀的量化參數(shù)。
[0060]如圖3所示,步驟S104進一步包括:
[0061]步驟S1040,依照所述片源內所有幀的幀級信息估算每幀的復雜度。
[0062]步驟S1042,根據(jù)任一幀的復雜度調整所述任一幀的量化增量。
[0063]根據(jù)任一幀的復雜度為所述任一幀初始設置量化增量,例如可以根據(jù)這個公式(1.1)進行量化增量的初始賦值:
[0064]qscale = complexity'。.6 ; 公式(1.1)
[0065]其中,complexity為任一巾貞的復雜度,qscale為所述任一巾貞的量化增量。通過這種方式就可以初始設置每幀的量化增量,之后的計算使用這個初始設置的每幀的量化增量,并不使用預轉碼時得到的每幀的幀級信息中的量化參數(shù)。需要說明,上述公式只是為了較佳地描述本實施例,其并不對本申請的保護范圍作出限定,其他初始賦值方式也可以實現(xiàn)本申請。
[0066]步驟S1044,根據(jù)任一幀的調整后的量化增量以及所述任一幀的幀級信息為所述任一幀分配轉碼比特數(shù)。
[0067]所述任一幀的幀級信息中包括所述任一幀的比特信息,這個比特信息包括:所述任一幀的殘差轉碼比特數(shù)、運動矢量的轉碼比特數(shù)以及頭信息轉碼比特數(shù),根據(jù)所述任一幀的殘差轉碼比特數(shù)、運動矢量的轉碼比特數(shù)以及頭信息轉碼比特數(shù),結合所述任一幀的調整后的量化增量,計算出為所述任一幀所分配的轉碼比特數(shù),例如可以根據(jù)這個公式(1.2)進行為所述任一幀分配轉碼比特數(shù)的計算:
[0068]expected_bits = text_bits X qscale1.1+mv—bits X qscale。.5+misc_bits 公式(1.2)
[0069]其中,qscale為所述任一幀的調整后的量化增量,text_bits為所述任一幀的殘差轉碼比特數(shù),mv_bits為所述任一巾貞的運動矢量的轉碼比特數(shù),misc_bits為所述任一中貞的頭信息轉碼比特數(shù),expectecLbits是為每幀所分配的轉碼比特數(shù)。需要說明,上述公式只是為了較佳地描述本實施例,其并不對本申請的保護范圍作出限定,其他初始賦值方式也可以實現(xiàn)本申請。
[0070]這里還可以根據(jù)所述任一幀的量化增量以及所述任一幀所承載數(shù)據(jù)的絕對誤差和,計算所述任一幀的信號率失真度,根據(jù)所述任一幀的信號率失真度估算用于描述所述任一幀所承載數(shù)據(jù)的最小轉碼比特數(shù),本步驟中為所述任一幀所分配的轉碼比特數(shù)不小于所述最小轉碼比特數(shù)。同時當所述任一幀所分配的轉碼比特數(shù)小于最小轉碼比特數(shù),也可以獲知應該調大所述任一幀所分配的轉碼比特數(shù),相應知道調整所述任一幀的量化增量的策略和方向。
[0071]步驟S1046,通過每幀所分配的轉碼比特數(shù)估算出調整后的所述片源的轉碼碼率。
[0072]對于任一子片,根據(jù)所述任一子片內每幀所分配的轉碼比特數(shù),計算所述任一子片的轉碼碼率;例如,用所述任一子片內每幀所分配的轉碼比特數(shù)作累加得到所述任一子片的總轉碼比特數(shù),然后用所述任一子片的總轉碼比特數(shù)除以乘以所述任一子片的時長,從而得到所述任一子片的轉碼碼率,進而得到所有子片的轉碼碼率。
[0073]對所有子片的轉碼碼率進行疊加后再求平均數(shù),計算出調整后的所述片源的轉碼碼率。例如,片源總共有100個子片,將100個子片的轉碼碼率疊加然后除以100,就得到了調整后的所述片源的轉碼碼率。
[0074]步驟S1048,比較調整后的所述片源的轉碼碼率與所預設的片源轉碼后的目標碼率,如果兩者相差大于一閾值,則執(zhí)行步驟S1050,如果兩者相差小于等于所述閾值,則執(zhí)行步驟S1052。
[0075]步驟S1050,依照所述片源內所有幀之間的復雜度比值,再次調整每幀的幀級信息中的量化增量,返回執(zhí)行步驟S1044 ;
[0076]在步驟S1042中只是根據(jù)任一幀的復雜度直接為所述任一幀的量化增量初始賦值,這個賦值的過程如前步驟S1042所述,沒有考慮全局,只是獨立的考慮每一幀的情況,這種賦值顯然是需要調整的,因為不能合理地反映出各幀對于量化增量和轉碼比特數(shù)分配的需求。
[0077]而在步驟S1050中則依照所述片源內所有幀之間的復雜度比值,可以合理地推測出每一幀應該在整個片源內處于一個什么地位,從而估算出自己的轉碼比特數(shù)的合理需求。例如,對于任一幀,根據(jù)所述任一幀之前已經(jīng)統(tǒng)計過的幀的復雜度比值,所述任一幀之后未統(tǒng)計過的幀的復雜度比值,重新調整所述任一幀的量化增量。
[0078]在步驟S1050內調整每幀的幀級信息中的量化增量時,不使用步驟S1042的操作中所使用的公式(1.1)。因為每幀的應該分配的轉碼比特數(shù)和每幀的復雜度是成正比的,如果任一幀的復雜度高,而且它與片源其他幀的復雜度比值也高,說明所述任一幀應該分配的轉碼比特數(shù)較大,而且這個轉碼比特數(shù)占整個片源的總轉碼比特數(shù)的比重也大,相反道理是相似的,這樣根據(jù)復雜度的比值就可以知道每一幀的轉碼比特數(shù)的分配的比例和調整趨勢,如果為某一幀分配的轉碼比特數(shù)少了,則可以適當調高,這樣就要相應調整量化增量。量化增量具有多個數(shù)值級別,這樣在調整量化增量時,就相應的調高一個數(shù)值級別,每調高一個級別,就返回步驟S1044。通過類似的方式的操作,多次反復調整每幀的量化增量。
[0079]在調整每幀的量化增量的具體實現(xiàn)方式上,可以實現(xiàn)根據(jù)經(jīng)驗設定量化增量的級別表,例如設定若干個級別,每個級別對應一個具體的量化增量數(shù)值,根據(jù)步驟S1042設置的初始量化參數(shù)選擇對應的級別,根據(jù)當前幀的復雜度的比值獲知當前幀的轉碼比特數(shù)的調整趨勢,根據(jù)當前幀的轉碼比特數(shù)的調整趨勢相應調高或調低一個量化增量的級別,然后根據(jù)步驟S1044到步驟S1050去迭代。當然,本申請對于每幀的量化增量的調整方法的具體實現(xiàn)上,并不限于此。
[0080]步驟S1052,將最后一次調整得到的每幀的量化增量作為每幀的最終調整后的量化增量,將所述每幀的最終調整后的量化增量轉換為每幀的最終調整后的量化參數(shù)。
[0081]本步驟中得到了最終調整適合的量化增量,這個每幀最終調整后的量化增量。顯然,從步驟S1040到步驟S1052,是通過不斷演算,模擬轉碼最終得到的片源碼率,來測算每幀的量化增量是否合理,量化增量的取值會最終影響到整個片源的轉碼碼率。
[0082]在實際轉碼中需要使用到的是量化參數(shù),所以還要將所述每幀的調整后的量化增量轉換為量化參數(shù),每幀的量化參數(shù)和為每幀所分配的轉碼比特數(shù)成反比,例如可以根據(jù)這個公式(1.3)計算出每幀的量化參數(shù):
[0083]QP = 12.0f+6.0f*log2f (qscale/0.85f) 公式(1.3)
[0084]f為float浮點計算,qscale任一巾貞的調整后的量化增量,QP為相應的轉化后的任一幀的量化參數(shù),這個轉化后的任一幀的量化參數(shù)就是步驟S106中進行正式轉碼時使用的每幀的量化參數(shù)。需要說明,上述公式只是為了較佳地描述本實施例,其并不對本申請的保護范圍作出限定,其他初始賦值方式也可以實現(xiàn)本申請。
[0085]實施例四
[0086]在步驟SlOO?S104,基本上完成了所有轉碼前的準備工作,并通過模擬估算得到了最合理的每個子片及每個子片內每幀的轉碼比特數(shù)的分配,這個分配是通過每幀的量化參數(shù)來實現(xiàn)的。在S106中將根據(jù)最終得到的調整后的每幀的量化參數(shù)進行真正的轉碼。
[0087]步驟S102中得到了每個子片的全局統(tǒng)計信息,如前所述,每個子片的全局統(tǒng)計信息至少還包括所述片源內每個幀所含有的每個宏塊的量化增量。如圖4所示,步驟S106進一步包括:
[0088]步驟S1060,對任一宏塊,根據(jù)所述任一宏塊的量化增量以及所述任一宏塊所在幀的調整后的量化參數(shù),得到任一宏塊的調整后的量化參數(shù)。
[0089]宏塊是視頻文件的最小單位,片源的每一幀都包括復數(shù)個宏塊。每個宏塊也有自己的量化參數(shù),這個量化參數(shù)也決定了宏塊分配的轉碼比特數(shù),但是宏塊的量化參數(shù)不需要如每幀那樣,反復迭代來調整。
[0090]通過步驟S104得到了最終確定的每幀的量化參數(shù),這個量化參數(shù)其實是每幀的平均量化參數(shù),是每幀內各宏塊的量化參數(shù)的平均數(shù)。而在步驟S102中預轉碼時從每個子片的全局統(tǒng)計信息中已經(jīng)獲得了每個宏塊的量化增量。因此根據(jù)任一幀的平均量化參數(shù)以及幀內每個宏塊的量化增量,就可以得到每個宏塊的量化參數(shù),例如,對于幀內每個宏塊,在平均量化參數(shù)的基礎上增加或減少相應的量化增量,當然,本申請并不限于此。
[0091]步驟S1062,根據(jù)任一幀內每個宏塊的調整后的量化參數(shù),對任一幀內每個宏塊進行轉碼,直到所述任一幀內所有宏塊都完成轉碼,就完成了對任一幀的轉碼。
[0092]實施例五
[0093]本申請實施例還揭示的一種分片轉碼裝置,如圖5所示,包括:依次相連的預轉碼模塊500、碼率分配模塊502和轉碼模塊504。
[0094]預轉碼模塊500,用于將一片源分割為若干子片,其中每個子片包括若干幀,對所述若干子片分別進行預轉碼,獲得每個子片的全局統(tǒng)計信息,所述每個子片的全局統(tǒng)計信息至少包括所述片源內所有幀的幀級信息;
[0095]碼率分配模塊502,用于依照所述片源內所有幀的幀級信息估算每幀的復雜度,并且根據(jù)所述每幀的復雜度以及所預設的片源轉碼后的目標碼率,調整每幀的幀級信息中的量化參數(shù);
[0096]轉碼模塊504,依照每個子片中任一幀的調整后的量化參數(shù)對所述任一幀進行相應轉碼,直到所有子片的轉碼完成,依子片分割的順序將轉碼完成后的所有子片合并,拼接為所述片源。
[0097]所述碼率分配模塊502,進一步包括:量化增量調整單元、轉碼碼率計算單元、比較單元、以及量化參數(shù)計算單元。
[0098]所述量化增量調整單元,進一步用于根據(jù)任一幀的復雜度調整所述任一幀的量化增量。
[0099]所述轉碼碼率計算單元,用于根據(jù)所述任一幀的調整后的量化增量以及所述任一幀的幀級信息為所述任一幀分配轉碼比特數(shù),并且通過每幀所分配的轉碼比特數(shù)計算出調整后的所述片源的轉碼碼率。
[0100]所述比較單元,用于比較調整后的所述片源的轉碼碼率與所預設的片源轉碼后的目標碼率,如果兩者相差大于預設閾值,則依照所述片源內所有幀之間的復雜度比值,再次調整每幀的幀級信息中的量化增量,重復調用量化增量調整單元、轉碼碼率計算單元、以及比較單元;如果兩者相差小于或等于預設閾值,則調用量化參數(shù)計算單元。通過重復調用量化增量調整單元、轉碼碼率計算單元,根據(jù)每幀調整后的量化增量以及每幀的幀級信息為每幀分配轉碼比特數(shù),并且通過每幀所分配的轉碼比特數(shù)計算出調整后的所述片源的轉碼碼率;然后再調用比較單元,再次比較調整后的所述片源的轉碼碼率與所預設的片源轉碼后的目標碼率,直到兩者相差小于等于所述閾值,然后調用所述量化參數(shù)計算單元。
[0101]所述量化參數(shù)計算單元,用于將最后一次調整得到的每幀的量化增量作為每幀的最終調整后的量化增量,將所述每幀的最終調整后的量化增量轉換為每幀的最終調整后的量化參數(shù)。
[0102]根據(jù)所述任一幀的調整后的量化增量以及所述任一幀的幀級信息為所述任一幀分配轉碼比特數(shù),進一步包括:根據(jù)所述任一幀的幀級信息中的殘差轉碼比特數(shù)、運動矢量的轉碼比特數(shù)以及頭信息轉碼比特數(shù),結合所述任一幀的量化增量,計算出為所述任一幀所分配的轉碼比特數(shù)。
[0103]其中,通過每幀所分配的轉碼比特數(shù)計算出調整后的所述片源的轉碼碼率,進一步包括:對于任一子片,根據(jù)所述任一子片內每幀所分配的轉碼比特數(shù),計算所述任一子片的轉碼碼率;對所有子片的轉碼碼率進行疊加后再求平均數(shù),計算出調整后的所述片源的轉碼碼率。
[0104]對所述若干子片分別進行預轉碼,獲得每個子片的全局統(tǒng)計信息,所述每個子片的全局統(tǒng)計信息至少包括所述片源內所有幀的幀級信息,進一步包括:對所述若干子片分別進行預轉碼,獲得每個子片的統(tǒng)計信息;對任一子片,將所述任一子片的統(tǒng)計信息排在第一位,依所述片源分割時獲得的子片的順序將其他子片的統(tǒng)計信息排在所述任一子片的統(tǒng)計信息之后,將所有子片的統(tǒng)計信息進行合并從而得到所述每個子片的全局統(tǒng)計信息。
[0105]所述每個子片的統(tǒng)計信息,至少包括:所述子片內依序排列的各幀的幀級信息;所述每個子片的全局統(tǒng)計信息中,前一個子片的結束幀的幀級信息,連接后一個子片的起始幀的幀級信息,且當排在第一位的所述任一子片不是依子片分割的順序排在首位的子片時,依子片分割的順序排在首位的子片的起始幀的幀級信息,連接排在末尾的子片的結束幀的幀級信息。
[0106]預轉碼所獲得的所述每個子片的全局統(tǒng)計信息,至少還包括所述片源內每個幀所含有的每個宏塊的量化增量;依照每個子片中任一幀的調整后的量化參數(shù)對所述任一幀進行轉碼,進一步包括:對任一宏塊,根據(jù)所述任一宏塊的量化增量以及所述任一宏塊所在幀的調整后的量化參數(shù),得到任一宏塊的調整后的量化參數(shù);根據(jù)任一幀內每個宏塊的調整后的量化參數(shù),對任一幀內每個宏塊進行轉碼,直到所述任一幀內所有宏塊都完成轉碼。本裝置的技術方案和各模塊的功能特征、連接方式,與前述實施例一至四中所描述的特征和技術方案相對應,不足之處請參見前述實施例一至四。
[0107]本串請的應用場景和應用實例
[0108]為了更好地理解本申請的核心思路,再此列舉主要的應用場景,當時本申請的保護范圍并不限于此。
[0109]假設一個視頻片源有15分鐘,平均碼率是100kbps,而這個視頻片源中的畫面并不全部是有效數(shù)據(jù),例如其中有一大部分是黑屏,因為黑屏占用轉碼比特數(shù),使得黑屏之后的有效數(shù)據(jù)沒有足夠的轉碼比特數(shù),而導致相比黑屏之前的有效數(shù)據(jù),畫面質量出現(xiàn)下降。這時可以考慮通過轉碼進行轉碼比特數(shù)發(fā)重新分配,因為黑屏部分分配較高的轉碼碼率顯然沒有意義,如果把這部分轉碼碼率對應的轉碼比特數(shù)分配到有效數(shù)據(jù)上,會使整個視頻的質量大大提升,使得整個片源的效果會更加均勻。這時所預設的片源轉碼后的目標碼率仍然為100kbps。
[0110]首先進行分割——可以通過合理的切分,將視頻片源分成三個子片,每個子片5分鐘,其中子片I和子片3分別是有效視頻數(shù)據(jù),而子片2中是一段黑屏。每個子片的平均碼率都是100kbps,所預設的片源轉碼后的目標碼率也是100kbps。
[0111]之后進行預轉碼一得到了每個子片的平均碼率、子片內各幀的轉碼比特數(shù)等等統(tǒng)計信息,針對子片1,將三個子片的統(tǒng)計信息合并,子片I的統(tǒng)計信息在前,子片2的統(tǒng)計信息在后,子片3的統(tǒng)計信息在最后,得到子片I的全局統(tǒng)計信息;針對子片2,將三個子片的統(tǒng)計信息合并,子片2的統(tǒng)計信息在前,子片3的統(tǒng)計信息在后,子片I的統(tǒng)計信息在最后,得到子片2的全局統(tǒng)計信息;針對子片3,將三個子片的統(tǒng)計信息合并,子片3的統(tǒng)計信息在前,子片I的統(tǒng)計信息在后,子片2的統(tǒng)計信息在最后,得到子片3的全局統(tǒng)計信息。
[0112]然后調整碼率一現(xiàn)在希望在片源總碼率10kbps的前提下,將子片1、2、3轉成適合的轉碼碼率,都還是5分鐘長,按照預轉碼時子片I的全局統(tǒng)計信息為子片I中的每幀分配轉碼比特數(shù),把10kbps下的總轉碼比特數(shù)分配好,分配的過程會統(tǒng)籌子片1、2和3的情況,對每個子片下的幀的量化增量不斷的迭代調整,調整當前子片內的一幀時要考慮真一幀前面已經(jīng)調整完的幀以及后面還有調整的幀的情況,實質上是通過量化增量來算之前調整完的幀已經(jīng)分配了多少轉碼比特數(shù),而整個片源還剩下多少轉碼比特數(shù),后面還沒有調整的幀有多少是需要分配較大轉碼比特數(shù)的,而當前幀與后面的幀相比,從比例上是要多分配一些轉碼比特數(shù)還是少分配一些,這樣綜合全局考慮下,決定當前幀分配多少轉碼比特數(shù)合適。這個調整和衡量的關鍵因素就是各幀的復雜度比值和每幀的量化增量。最終得到合適的各子片下每幀的量化增量,使得子片1、2和3都得到了適合的轉碼碼率。將各子片下每幀的量化增量轉換為每幀的量化參數(shù)。
[0113]轉碼一根據(jù)分配后的各幀的轉碼比特數(shù)轉碼,也就是每幀的量化參數(shù),對子片
1、2和3進行轉碼,然后將轉碼后的子片1、2和3合并,就可以得到能夠達到10kbps的影片片源。影片片源的最終轉碼碼率不一定正好是目標碼率100kbps,可能會有些許差別,例如,子片I和子片3分別為150Kbps,子片2為10Kbps,而子片1、子片2和子片3的轉碼碼率的平均數(shù)為103kbps左右,非常貼近100kbps。而經(jīng)過重新分配轉碼比特數(shù),子片2這段黑屏畫面就幾乎沒有消耗到轉碼比特數(shù),而將幾乎絕大部分轉碼比特數(shù)都分配到子片I和子片3上了。
[0114]當然,在其他場景下,比如10分鐘的影片片源,這個影片片源的平均碼率是100kbps,希望通過轉碼將其碼率轉成500kbps,總轉碼比特數(shù)放大了 5倍,必然涉及到總轉碼比特數(shù)的分配的問題,也可以通過上述方式進行比特率的重新分配。
[0115]另外,如果影片片源中也存在如上述的黑屏這種不需要占用較多轉碼比特數(shù)的無效數(shù)據(jù),則也可以在結合上面的方式削減黑屏數(shù)據(jù)的轉碼比特數(shù)消耗。
[0116]需要說明的是,上述具體數(shù)值僅是為了更好地描述方案,并不對本申請的保護范圍作出限制。
[0117]上述說明示出并描述了本申請的實施例,但如前所述,應當理解本申請并非局限于本文所披露的形式,不應看作是對其他實施例的排除,而可用于各種其他組合、修改和環(huán)境,并能夠在本文所述發(fā)明構想范圍內,通過上述教導或相關領域的技術或知識進行改動。而本領域人員所進行的改動和變化不脫離本申請的精神和范圍,則都應在本申請所附權利要求的保護范圍內。
【權利要求】
1.一種分片轉碼方法,其特征在于,包括: 將一片源分割為若干子片,其中每個子片包括若干幀; 對所述若干子片分別進行預轉碼,獲得每個子片的全局統(tǒng)計信息,所述每個子片的全局統(tǒng)計信息至少包括所述片源內所有幀的幀級信息; 依照所述片源內所有幀的幀級信息估算每幀的復雜度,并且根據(jù)所述每幀的復雜度以及所預設的片源轉碼后的目標碼率,調整每幀的幀級信息中的量化參數(shù); 依照每個子片中任一幀的調整后的量化參數(shù)對所述每個子片中任一幀進行轉碼,直到所有子片轉碼完成,依所述片源分割時獲得的子片的順序將轉碼完成后的所有子片合并,拼接為轉碼后的所述片源。
2.如權利要求1所述的分片轉碼方法,其特征在于,根據(jù)所述每幀的復雜度以及所預設的片源轉碼后的目標碼率,調整每幀的幀級信息中的量化參數(shù),進一步包括: 步驟a:根據(jù)任一幀的復雜度調整所述任一幀的量化增量; 步驟b:根據(jù)所述任一幀的調整后的量化增量以及所述任一幀的幀級信息為所述任一幀分配轉碼比特數(shù),并且通過每幀所分配的轉碼比特數(shù)計算出調整后的所述片源的轉碼碼率; 步驟c:比較調整后的所述片源的轉碼碼率與所預設的片源轉碼后的目標碼率,如果兩者相差大于預設閾值,則依照所述片源內所有幀之間的復雜度比值,再次調整每幀的幀級信息中的量化增量,重復執(zhí)行步驟b至c ;如果兩者相差小于或等于預設閾值,執(zhí)行步驟d ; 步驟d:將最后一次執(zhí)行的步驟b中所述任一幀的調整后的量化增量轉換為每幀的最終調整后的量化參數(shù)。
3.如權利要求2所述的分片轉碼方法,其特征在于,根據(jù)所述任一幀的調整后的量化增量以及所述任一幀的幀級信息為所述任一幀分配轉碼比特數(shù),進一步包括: 根據(jù)所述任一幀的幀級信息中的殘差轉碼比特數(shù)、運動矢量的轉碼比特數(shù)以及頭信息轉碼比特數(shù),結合所述任一幀的量化增量,計算出為所述任一幀所分配的轉碼比特數(shù)。
4.如權利要求2所述的分片轉碼的方法,其特征在于,通過每幀所分配的轉碼比特數(shù)計算出調整后的所述片源的轉碼碼率,進一步包括: 對于任一子片,根據(jù)所述任一子片內每幀所分配的轉碼比特數(shù),計算所述任一子片的轉碼碼率; 對所有子片的轉碼碼率進行疊加后再求平均數(shù),計算出調整后的所述片源的轉碼碼率。
5.如權利要求1所述的分片轉碼的方法,其特征在于,對所述若干子片分別進行預轉碼,獲得每個子片的全局統(tǒng)計信息,所述每個子片的全局統(tǒng)計信息至少包括所述片源內所有幀的幀級信息,進一步包括: 對所述若干子片分別進行預轉碼,獲得每個子片的統(tǒng)計信息; 對任一子片,將所述任一子片的統(tǒng)計信息排在第一位,依所述片源分割時獲得的子片的順序將其他子片的統(tǒng)計信息排在所述任一子片的統(tǒng)計信息之后,將所有子片的統(tǒng)計信息進行合并從而得到所述每個子片的全局統(tǒng)計信息。
6.如權利要求5所述的分片轉碼的方法,其特征在于, 所述每個子片的統(tǒng)計信息,至少包括:所述子片內依序排列的各幀的幀級信息; 所述每個子片的全局統(tǒng)計信息中,前一個子片的結束幀的幀級信息,連接后一個子片的起始幀的幀級信息,且當排在第一位的所述任一子片不是依子片分割的順序排在首位的子片時,依子片分割的順序排在首位的子片的起始幀的幀級信息,連接排在末尾的子片的結束幀的幀級信息。
7.如權利要求1所述的分片轉碼的方法,其特征在于, 所述每幀的復雜度,是所述每幀的像素的渲染次數(shù)相對于整個片源的所有像素的渲染次數(shù)的比較值。
8.如權利要求1所述的分片轉碼的方法,其特征在于, 預轉碼所獲得的所述每個子片的全局統(tǒng)計信息,至少還包括所述片源內每個幀所含有的每個宏塊的量化增量; 依照每個子片中任一幀的調整后的量化參數(shù)對所述任一幀進行轉碼,進一步包括: 對任一宏塊,根據(jù)所述任一宏塊的量化增量以及所述任一宏塊所在幀的調整后的量化參數(shù),得到任一宏塊的調整后的量化參數(shù); 根據(jù)任一幀內每個宏塊的調整后的量化參數(shù),對任一幀內每個宏塊進行轉碼,直到所述任一巾貞內所有宏塊都完成轉碼。
9.一種分片轉碼裝置,其特征在于,包括: 預轉碼模塊,用于將一片源分割為若干子片,其中每個子片包括若干幀,對所述若干子片分別進行預轉碼,獲得每個子片的全局統(tǒng)計信息,所述每個子片的全局統(tǒng)計信息至少包括所述片源內所有幀的幀級信息; 碼率分配模塊,用于依照所述片源內所有幀的幀級信息估算每幀的復雜度,并且根據(jù)所述每幀的復雜度以及所預設的片源轉碼后的目標碼率,調整每幀的幀級信息中的量化參數(shù); 轉碼模塊,依照每個子片中任一幀的調整后的量化參數(shù)對所述任一幀進行相應轉碼,直到所有子片的轉碼完成,依子片分割的順序將轉碼完成后的所有子片合并,拼接為所述片源。
10.如權利要求9所述的分片轉碼裝置,其特征在于, 所述碼率分配模塊,進一步用于根據(jù)任一幀的復雜度調整所述任一幀的量化增量;根據(jù)所述任一幀的調整后的量化增量以及所述任一幀的幀級信息為所述任一幀分配轉碼比特數(shù),并且通過每幀所分配的轉碼比特數(shù)計算出調整后的所述片源的轉碼碼率;比較調整后的所述片源的轉碼碼率與所預設的片源轉碼后的目標碼率,如果兩者相差大于預設閾值,則依照所述片源內所有幀之間的復雜度比值,再次調整每幀的幀級信息中的量化增量,根據(jù)每幀調整后的量化增量以及每幀的幀級信息為每幀分配轉碼比特數(shù),并且通過每幀所分配的轉碼比特數(shù)計算出調整后的所述片源的轉碼碼率,再次檢測調整后的所述片源的轉碼碼率與所預設的片源轉碼后的目標碼率,直到兩者相差小于等于所述閾值,將最后一次調整得到的每幀的量化增量作為每幀的最終調整后的量化增量,將所述每幀的最終調整后的量化增量轉換為每幀的最終調整后的量化參數(shù)。
【文檔編號】H04N21/845GK104202660SQ201410469989
【公開日】2014年12月10日 申請日期:2014年9月15日 優(yōu)先權日:2014年9月15日
【發(fā)明者】白茂生, 魏偉, 邊智 申請人:樂視網(wǎng)信息技術(北京)股份有限公司