專利名稱:位率控制方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明有關(guān)于一種位率控制,且特別有關(guān)于一種可以同時解碼至少一視
頻畫面(Video Frame)的位率控制方法及裝置。
背景技術(shù):
隨著計算機、網(wǎng)絡(luò)以及消費性產(chǎn)品的普及,數(shù)字化內(nèi)容已經(jīng)逐漸成為人 們生活中重要的一部分。針對數(shù)據(jù)量與品質(zhì)需求,數(shù)字視頻必須借助于數(shù)字 壓縮技術(shù),從而在維持特定品質(zhì)的前提下,盡量降低其所占的尺寸,以便于 傳輸及用于各式樣的應(yīng)用。
MPEG(Moving Picture Experts Group, MPEG)為一種目前最普遍使用的 算法之一。MPEG算法定義壓縮(編碼)比特流的語法及解碼的方法。視頻編 碼器可以決定何種畫面編碼型態(tài),以及畫面間的最佳預(yù)測模式。視頻編碼器 中很重要的一點是位率控制。通過編碼時優(yōu)良的位率控制,可以盡可能地提 高解碼后視頻的品質(zhì),且維持輸出位率在允許的范圍之內(nèi)。注意的是,位率 控制的相關(guān)背景與介紹為本領(lǐng)域具有通常知識的技術(shù)人員所熟知,在此省 略。
一般來說, 一張MPEG的畫面由宏區(qū)塊(Macro Block, MB)所構(gòu)成。在 現(xiàn)有位率控制中,視頻編碼器依序?qū)τ诋嬅孢M行編碼。位率控制基于宏區(qū)塊 的層次(Levd)來進行,且由一畫面中的從上到下,從左至右的宏區(qū)塊進行。 舉例來說,圖1A與圖1B分別顯示兩接續(xù)的畫面F1與F2,其分別具有編號 1 16與17 32的宏區(qū)塊。公知地,畫面中宏區(qū)塊的編碼順序為由F1的1至 16,再到F2的17至32,如圖2所示。
近年來,已有許多進階的處理裝置,如可以支持超執(zhí)行線程 (Hyper-Threading)技術(shù)、多核心(Multi-Core)技術(shù)和/或多任務(wù)(Multi-Tasking) 操作程序的裝置相繼提出,其可以同時執(zhí)行多個工作。對于這些裝置而言, 依序編碼畫面的現(xiàn)有位率控制無法充分使用系統(tǒng)的計算能力。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明提供位率控制方法及裝置。
本發(fā)明實施例的一種位率控制方法,適用于支持至少一核心的一視頻編 碼裝置。首先,接收一序列的多個畫面。依據(jù)視頻編碼裝置的核心數(shù)目,建 立多個執(zhí)行線程。利用執(zhí)行線程同時對于畫面中的至少一畫面進行編碼,且 依據(jù)相應(yīng)至少一畫面的編碼結(jié)果對于序列中的畫面進行編碼。
上述的位率控制方法,其中優(yōu)選地,還包括下列步驟判斷所述畫面中 的一第一畫面的畫面類型;若該第一畫面為一3畫面時,由所述畫面中取得 一第二畫面,其中該第二畫面為一B畫面;以及同時通過所述執(zhí)行線程中的 一第一執(zhí)行線程與一第二執(zhí)行線程分別對于該第一畫面與該第二畫面進行 編碼。
上述的位率控制方法,其中優(yōu)選地,還包括下列步驟判斷所述畫面中 的一第一畫面的畫面類型;若該第一畫面為一I畫面或P畫面時,將該第一 畫面分割為一上部畫面與一底部畫面;以及同時通過所述執(zhí)行線程中的一第 一執(zhí)行線程與一第二執(zhí)行線程分別對于該第一畫面的該上部畫面與該底部 畫面進行編碼。
上述的位率控制方法,其中優(yōu)選地,還包括下列步驟判斷所述畫面中 的一第一畫面的畫面類型;若該第一畫面為一B畫面時,由所述畫面中取得 一第二畫面,其中該第二畫面為一B畫面;判斷所述畫面中的一第三畫面的 畫面類型;以及若該第三畫面為一I畫面或P畫面時,同時通過所述執(zhí)行線
程中的一第一執(zhí)行線程、 一第二執(zhí)行線程、與一第三執(zhí)行線程分別對于該第
一畫面、該第二畫面、與該第三畫面進行編碼。
上述的位率控制方法,其中優(yōu)選地,還包括下列步驟判斷所述畫面中 的一第一畫面的畫面類型;若該第一畫面為一B畫面時,由所述畫面中取得 一第二畫面,其中該第二畫面為一B畫面;分別將該第一畫面與該第二畫面 分割為一上部畫面與一底部畫面;判斷所述畫面中的一第三畫面的畫面類 型;以及若該第三畫面為一I畫面或P畫面時,同時通過所述執(zhí)行線程中的 一第一執(zhí)行線程、 一第二執(zhí)行線程、 一第三執(zhí)行線程、 一第四執(zhí)行線程、與 一第五執(zhí)行線程分別對于該第一畫面的上部畫面、該第一畫面的底部畫面、該第二畫面的底部畫面、與該第三畫面進行編碼。上述的位率控制方法,其中優(yōu)選地,還包括下列步驟依據(jù)相應(yīng)所述至 少一畫面中一第一畫面的一第一宏區(qū)塊的編碼結(jié)果與相應(yīng)所述至少一畫面 中一第二畫面的一第二宏區(qū)塊的編碼結(jié)果,決定一編碼程序中的一量化值; 以及依據(jù)該量化值分別對于該第一畫面的一第三宏區(qū)塊與該第二畫面的一 第四宏區(qū)塊進行一量化操作。本發(fā)明實施例還提供了一種位率控制裝置。位率控制裝置支持至少一核 心,且包括一接收單元與一處理單元。接收單元接收一序列的畫面。處理單 元依據(jù)核心數(shù)目建立多個執(zhí)行線程。處理單元利用執(zhí)行線程同時對于畫面中 的至少一畫面進行編碼,且依據(jù)相應(yīng)至少一畫面的編碼結(jié)果對于序列中的畫 面進行編碼。上述的位率控制裝置,其中優(yōu)選地,該處理單元還判斷所述畫面中的一 第一畫面的畫面類型,若該第一畫面為一B畫面時,由所述畫面中取得一第 二畫面,其中該第二畫面為一B畫面,且同時通過所述執(zhí)行線程中的一第一 執(zhí)行線程與一第二執(zhí)行線程分別對于該第一畫面與該第二畫面進行編碼。上述的位率控制裝置,其中優(yōu)選地,該處理單元還判斷所述畫面中的一 第一畫面的畫面類型,若該第一畫面為一I畫面或P畫面時,將該第一畫面 分割為一上部畫面與一底部畫面,且同時通過所述執(zhí)行線程中的一第一執(zhí)行 線程與一第二執(zhí)行線程分別對于該第一畫面的該上部畫面與該底部畫面進 行編碼。上述的位率控制裝置,其中優(yōu)選地,該處理單元還判斷所述畫面中的一第一畫面的畫面類型,若該第一畫面為一B畫面時,由所述畫面中取得一第 二畫面,其中該第二畫面為一B畫面,判斷所述畫面中的一第三畫面的畫面 類型,若該第三畫面為一I畫面或P畫面時,同時通過所述執(zhí)行線程中的一 第一執(zhí)行線程、 一第二執(zhí)行線程、與一第三執(zhí)行線程分別對于該第一畫面、 該第二畫面、與該第三畫面進行編碼。上述的位率控制裝置,其中優(yōu)選地,該處理單元還判斷所述畫面中的一 第一畫面的畫面類型,若該第一畫面為一B畫面時,由所述畫面中取得一第 二畫面,其中該第二畫面為一B畫面,分別將該第一畫面與該第二畫面分割 為一上部畫面與一底部畫面,判斷所述畫面中的一第三畫面的畫面類型,若該第三畫面為一I畫面或P畫面時,同時通過所述執(zhí)行線程中的一第一執(zhí)行 線程、 一第二執(zhí)行線程、 一第三執(zhí)行線程、 一第四執(zhí)行線程、與一第五執(zhí)行 線程分別對于該第一畫面的該上部畫面、該第一畫面的該底部畫面、該第二 畫面的該上部畫面、該第二畫面的該底部畫面、與該第三畫面進行編碼。
上述的位率控制裝置,其中優(yōu)選地,該處理單元還依據(jù)相應(yīng)所述至少一 畫面中一第一畫面的一第一宏區(qū)塊的編碼結(jié)果與相應(yīng)所述至少一畫面中一 第二畫面的一第二宏區(qū)塊的編碼結(jié)果,決定一編碼程序中的一量化值,且依 據(jù)該量化值分別對于該第一畫面的一第三宏區(qū)塊與該第二畫面的一第四宏 區(qū)塊進行一量化操作。
本發(fā)明上述方法可以通過程序代碼方式收錄于物理介質(zhì)中。當程序代碼 被機器加載且執(zhí)行時,機器變成用以執(zhí)行本發(fā)明的裝置。
通過本發(fā)明,具有在維持特定品質(zhì)的前提下,盡量降低其所占的尺寸, 便于傳輸及用于各種式樣的應(yīng)用的優(yōu)點。
圖1A與圖1B分別顯示兩接續(xù)的畫面;
圖2為一顯示現(xiàn)有位率控制中宏區(qū)塊的編碼順序的示意圖3為一顯示依據(jù)本發(fā)明實施例的位率控制裝置的示意圖4為一顯示依據(jù)本發(fā)明實施例的儲存單元的示意圖5為一顯示一 MPEG的影像畫面排序結(jié)構(gòu)的示意圖6為一顯示依據(jù)本發(fā)明實施例的位率控制方法的流程圖7顯示依據(jù)本發(fā)明實施例的位率控制法的編碼示意圖8為一顯示依據(jù)本發(fā)明實施例的位率控制例子的流程圖9為一顯示依據(jù)本發(fā)明實施例的位率控制中宏區(qū)塊的編碼順序的示意
圖10為一顯示依據(jù)本發(fā)明實施例的一畫面的一上部畫面與一底部畫面 的示意圖11為一顯示依據(jù)本發(fā)明實施例的位率控制中相應(yīng)圖IO畫面的宏區(qū)塊 的編碼順序的示意圖12為一顯示依據(jù)本發(fā)明實施例的位率控制例子的流程圖;圖13為一顯示依據(jù)本發(fā)明實施例的位率控制例子的流程圖14為一顯示一MPEG的影像畫面例子的示意圖15A至圖15G為顯示圖14中影像畫面的編碼過程的示意圖。
其中,附圖標記說明如下
Fl、 F2 畫面,'
300 位率控制裝置;
310 接收單元; 320~處理單元; 330 儲存單元; 331 第一隊列;
332 第二隊列;
1~1畫面; B B畫面; P P畫面;
S610、 S620、 S630 步驟;
701、 702、 MB 宏區(qū)塊;
711、 712、 ME 移動估算;
721、 722、 DCT 離散余弦變換;
731、 732、 Q 量化;
741、 742、 IQ 反量化;
751、 752、 IDCT 反離散余弦變換;
761、 762、 VLO可變長度編碼;
771、 772 編碼后宏區(qū)塊;
781、 782 存儲器;
790 位率控制;
S810、 S820、…、S880 步驟;
TF 上部畫面; BF 底部畫面;
S1210、 S1220、…、S12卯 步驟;
S1310、 S1320、、 S1390 步驟。
具體實施方式
為使本發(fā)明的上述目的、特征和優(yōu)點能更明顯易懂,下文特舉實施例, 并配合附圖,詳細說明如下。圖3顯示依據(jù)本發(fā)明實施例的位率控制裝置。依據(jù)本發(fā)明實施例的位率控制裝置300至少包括一接收單元310、 一處 理單元320與一儲存單元330。值得注意的是,位率控制裝置300于支持至 少一核心的一視頻編碼裝置(未顯示)中。接收單元310用以接收一序列的畫 面。處理單元320可以決定畫面的編碼型態(tài),換句話說,決定畫面為何種類 型的畫面,并進行相應(yīng)的編碼程序。儲存單元330可以暫存接收單元310所 接收的畫面。值得注意的是,在一些實施例中,儲存單元330可以包括一第 一隊列331與一第二隊列332,如圖4所示。第一隊列331與第二隊列332 的使用將于后說明。在此實施例中,處理單元320可以依據(jù)MPEG算法對于畫面進行編碼。 MPEG定義三種型態(tài)的畫面,即I畫面、P畫面及B畫面。I畫面的編碼為內(nèi) 部編碼,也就是I畫面中沒有任何的宏區(qū)塊是參照另一個畫面,其編碼數(shù)據(jù) 獨立產(chǎn)生而與其它畫面不相關(guān),且在解碼時不需要其它畫面的數(shù)據(jù)便可進行 解碼。在P畫面中則具有參照I畫面或前一個P畫面的宏區(qū)塊。若P畫面中 的某個宏區(qū)塊無法參照先前的I畫面或P畫面時,則宏區(qū)塊即被進行內(nèi)部編 碼。在B畫面中,所有的宏區(qū)塊可能是前向參照、后向參照、雙向參照或是 內(nèi)部編碼的宏區(qū)塊。因此,I畫面為僅具有獨立內(nèi)部編碼的宏區(qū)塊,P畫面具 有前向參照或是獨立內(nèi)部編碼的宏區(qū)塊,而B畫面則沒有受限,可能有前向 參照、后向參照、雙向參照或是內(nèi)部編碼的宏區(qū)塊。在MPEG中, 一連串的 視頻畫面組成一序列的畫面群組(Group Of Picture, GOP),其中每組GOP以 I畫面開始,后面跟著P與B畫面的安排。在一個MPEG影片中,處理單元 320可以事先決定I畫面、P畫面及B畫面的數(shù)目及順序。 一般來說,在兩 個P畫面之間會插入數(shù)個B畫面,且這些P畫面及B畫面又均是位于兩個I 畫面、或一個I畫面與一個P畫面之間。圖5顯示一 MPEG的影像畫面排序 結(jié)構(gòu)。其中, 一個I畫面后面連接有兩個P畫面及六個兩兩插入I畫面及P 畫面之間的B畫面。值得注意的是,本實施例以MPEG為例,然而任何編 碼形式均可應(yīng)用于本發(fā)明中,例如MPEG4、 H263及H264等。圖6顯示依據(jù)本發(fā)明實施例的位率控制方法。
如步驟S610,接收一序列的畫面。如步驟S620,檢測一視頻編碼裝置 所支持的核心數(shù)目,并依據(jù)核心數(shù)目建立多個執(zhí)行線程。如步驟S630,利用 這些執(zhí)行線程同時對于接收畫面中的至少一畫面進行編碼。必須說明的是, 對于畫面進行編碼可以依據(jù)不同編碼算法,如MPEG算法進行,其細節(jié)在此
"值得注意的是,在本案中當利用多個執(zhí)行線程同時對于畫面進行編碼 時,可以同時依據(jù)其相應(yīng)的可變長度編碼(Variable Length Coding, VLC)后 的結(jié)果進行回饋,從而進行后續(xù)的位率控制。
圖7顯示依據(jù)本發(fā)明實施例的位率控制方法的編碼示意圖。在此實施例 中,假設(shè)兩個執(zhí)行線程可以用來同時分別對于不同畫面中的宏區(qū)塊(MB)進行 編碼。其中,編碼程序由ME(MotionEstimation,移動估算)(見711與712)、 DCT(Discrete Cosine Transform ,離散余弦變換)(見721與722)、 Q(Quantization,量化)(見731與732)、 IQ(Inverse Quantization,反量化)(見 741與742)、 IDCT(Inverse Discrete Cosine Transform,反離散余弦變換)(見 751與752)以及VLC(Variable Length Coding,可變長度編碼)(見761與762) 所組成。在編碼過程中,相應(yīng)兩個畫面的MB(見701與702)將會分別輸入給 ME(見711與712)以進行移動估算并計算其與畫面存儲器(見781與782)中參 考MB的預(yù)測差(Prediction Error)。相應(yīng)兩MB的預(yù)測差將會輸入至DCT(見 721與722)以進行反離散余弦變換操作,并分別將結(jié)果輸出至Q(見731與 732)。本案的位率控制790將會決定一個合適的Q值,并輸出給Q(見731 與732)以對于由DCT(見721與722)接收相應(yīng)兩個畫面的MB(見701與702) 的結(jié)果(DCT系數(shù))分別進行量化。其中,量化操作中的Q值可以得到較佳影 像信號噪聲比。接著,量化后的系數(shù)分別經(jīng)過IQ(見741與742)與IDCT(見 751與752),從而恢復(fù)存儲器中的參考MB。最后,相應(yīng)兩個畫面的MB(見 701與702)的量化后的系數(shù)分別通過VLC(見761與762)進行編碼,從而分 別得到編碼后的MB(見771與772)。值得注意的是,相應(yīng)兩個畫面的MB(見 701與702)通過VLC(見761與762)處理后的結(jié)果會共同回饋至位率控制 790,以決定前述的Q值。在一些實施例中,通過同時考量相應(yīng)兩MB的編 碼情形來進行位率控制,將會使得編碼位的使用更具效率與彈性。舉例來說,當一畫面中MB使用到較少的編碼位時,剩余的編碼位可以提供給另一畫面 中的MB來使用。本發(fā)明還可應(yīng)用于同時考量相應(yīng)兩個以上的MB作編碼, 在此并不限制其范圍。
必須提醒的是,執(zhí)行線程的數(shù)目與每一執(zhí)行線程所進行解碼的畫面可以 依據(jù)需求進行任意組合。接下來舉多個例子進行說明。
圖8顯示依據(jù)本發(fā)明實施例的位率控制例子。在此例中,假設(shè)核心的數(shù) 目為2且建立的執(zhí)行線程的數(shù)目為2。
如步驟S810,由接收畫面中取得一畫面。如步驟S820,判斷此畫面的 畫面類型。若此畫面為一 B畫面時(步驟S830的是),如步驟S840,判斷是 否已經(jīng)取得兩個B畫面。若否(步驟S840的否),流程回到步驟S810,再取 得另一畫面。若已經(jīng)有兩個B畫面(步驟S840的是),如步驟S850,同時通 過執(zhí)行線程中的一第一執(zhí)行線程與一第二執(zhí)行線程分別對于此兩個畫面進 行編碼。如前所述,當兩個執(zhí)行線程同時分別對于不同畫面中的MB進行編 碼時,相應(yīng)兩個畫面的MB通過VLC處理后的結(jié)果會共同回饋至位率控制, 以決定相應(yīng)后續(xù)MB編碼的Q值。相較于圖2中現(xiàn)有對于圖1A與圖IB的 畫面的編碼順序,本實施例的位率控制方法的編碼順序相互對于畫面Fl與 畫面F2進行編碼,其中,宏區(qū)塊的編碼順序為由F1的1、 F2的17、 Fl的 2、 F2的18、…、Fl的15、 F2的31、 Fl的16、與F2的32,如圖9所示。 之后,流程回到步驟S810,繼續(xù)取得其它的畫面,必進行后續(xù)編碼程序。若 此畫面并非是一 B畫面時(步驟S830的否),而是一 I或P畫面時(步驟S860 的是),如步驟S870,將此畫面分割為一上部畫面與一底部畫面,且如步驟 S880,同時通過執(zhí)行線程中的第一執(zhí)行線程與第二執(zhí)行線程分別對于此畫面 的上部畫面與底部畫面進行編碼。必須提醒的是,將畫面分割的前提是上部 畫面與底部畫面間是相互獨立且沒有參照關(guān)系的。在一些實施例中,畫面可 以依據(jù)片段(Slice)為單位來進行切割。圖IO顯示依據(jù)本發(fā)明實施例的一畫面 的一上部畫面與一底部畫面。如圖所示,畫面F1被分割為上部畫面TF與底 部畫面BF,其中,上部畫面TF與底部畫面BF是相互獨立的。當同時通過 兩個執(zhí)行線程分別對于上部畫面TF與底部畫面BF進行編碼時,其宏區(qū)塊的 編碼順序為TF的1、 BF的9、 TF的2、 BF的10、 ...、 TF的7、 BF的15、 TF的8、與BF的16,如圖11所示。類似地,當兩個執(zhí)行線程同時分別對于上部畫面與底部畫面中的MB進行編碼時,相應(yīng)上部畫面與底部畫面的 MB通過VLC處理后的結(jié)果會共同回饋至位率控制,以決定相應(yīng)后續(xù)MB編 碼的Q值。之后,流程回到步驟S810,繼續(xù)取得其它的畫面,并進行后續(xù) 編碼程序。注意的是,當畫面并非是B畫面、I畫面或P畫面時,表示編碼 程序發(fā)生錯誤,結(jié)束流程。圖12顯示依據(jù)本發(fā)明實施例的位率控制例子。在此例中,假設(shè)核心的 數(shù)目為4且建立的執(zhí)行線程的數(shù)目為3。如步驟S1210,由接收畫面中取得一畫面。如步驟S1220,判斷此畫面 的畫面類型。若此畫面為一B畫面時(步驟S1230的是),如步驟S1240,判 斷是否己經(jīng)取得兩個B畫面。若否(步驟S1240的否),流程回到步驟S1210, 再取得另一畫面。若已經(jīng)有兩個B畫面(步驟S1240的是),如步驟S1250, 將兩個B畫面儲存至儲存單元330中的第一隊列331中。之后,流程回到步 驟S1210。若此畫面并非是一B畫面時(步驟S1230的否),而是一I或P畫 面時(步驟S1260的是),如步驟S1270,將儲存單元330中的第一隊列331 與第二隊列332切換。注意的是,接收畫面中的至少一后續(xù)畫面將會儲存于 第二隊列332并進行后續(xù)編碼程序。必須提醒的是,在本實施例中通過兩個 隊列交互儲存要進行編碼的畫面單元。然而,在一些實施例中,多個隊列還 可以使用來儲存畫面單元,或是不需使用隊列來儲存畫面單元,而將畫面單 元單純儲存至儲存單元中即可。之后,如步驟S1280,將I畫面或P畫面儲 存至第一隊列331中,并如步驟S1290,同時通過執(zhí)行線程中的第一執(zhí)行線 程、第二執(zhí)行線程與一第三執(zhí)行線程分別對于第一隊列331中的兩個B畫面 與一個I畫面或P畫面進行編碼。類似地,當三個執(zhí)行線程同時分別對于兩 個B畫面與一個I畫面或P畫面中的MB進行編碼時,相應(yīng)兩個B畫面與一 個I畫面或P畫面的MB通過VLC處理后的結(jié)果會共同回饋至位率控制, 以決定相應(yīng)后續(xù)MB編碼的Q值。之后,流程回到步驟S1210,繼續(xù)取得其 它的畫面,必進行后續(xù)編碼程序。注意的是,當畫面并非是B畫面、I畫面 或P畫面時,表示編碼程序發(fā)生錯誤,結(jié)束流程。圖13顯示依據(jù)本發(fā)明實施例的位率控制例子。在此例中,假設(shè)核心的 數(shù)目為4且建立的執(zhí)行線程的數(shù)目為5。如步驟S1310,由接收畫面中取得一畫面。如步驟S1320,判斷此畫面13的畫面類型。若此畫面為一B畫面時(步驟S1330的是),如步驟S1340,判 斷是否已經(jīng)取得兩個B畫面。若否(步驟S1340的否),流程回到步驟S1310, 再取得另一畫面。若已經(jīng)有兩個B畫面(步驟S1340的是),如步驟S1350, 分別將兩個B畫面切割為一上部畫面與一底部畫面,且如步驟S1355,將分 別相應(yīng)兩個B畫面的上部畫面與底部畫面儲存至儲存單元330中的第一隊列 331中。之后,流程回到步驟S1310。若此畫面并非是一 B畫面時(步驟S1330 的否),而是一I或P畫面時(步驟S1360的是),如步驟S1370,將儲存單元 330中的第一隊列331與第二隊列332切換。類似地,接收畫面中的至少一 后續(xù)畫面將會儲存于第二隊列332并進行后續(xù)編碼程序。之后,如步驟 S1380,將I畫面或P畫面儲存至第一隊列331中,并如步驟S1390,同時通 過執(zhí)行線程中的一第一執(zhí)行線程、 一第二執(zhí)行線程、 一第三執(zhí)行線程、 一第 四執(zhí)行線程、與一第五執(zhí)行線程分別對于第一隊列331中的分別相應(yīng)兩個B 畫面的上部畫面與底部畫面與一個I畫面或P畫面進行編碼。類似地,當五 個執(zhí)行線程同時分別對于兩個B畫面的上部畫面與底部畫面與一個I畫面或 P畫面中的MB進行編碼時,相應(yīng)兩個B畫面的上部畫面與底部畫面與一個 I畫面或P畫面的MB通過VLC處理后的結(jié)果會共同回饋至位率控制,以決 定相應(yīng)后續(xù)MB編碼的Q值。之后,流程回到步驟S1310,繼續(xù)取得其它的 畫面,必進行后續(xù)編碼程序。注意的是,當畫面并非是B畫面、I畫面或P 畫面時,表示編碼程序發(fā)生錯誤,結(jié)束流程。
圖14顯示一MPEG的影像畫面例子。I、 B與P分別表示I畫面、B畫 面與P畫面。首先,讀取h畫面,并將Ii畫面編碼,則剩余的畫面為圖15A 所示。讀取P4畫面,并將P4畫面編碼,則剩余的畫面為圖15B所示。之后, 讀取B2、 B3、與P7畫面,并同時將B2、 B3、與P7畫面編碼,則剩余的畫面
為圖15C所示。讀取Bs、 B6、與Pu)畫面,并同時將Bs、 B6、與Pn)畫面編 碼,則剩余的畫面為圖15D所示。讀取B" B9、與Pu畫面,并同時將Bs、 B9、與Pu畫面編碼,則剩余的畫面為圖15E所示。讀取Bu、 B12、與13畫 面,并同時將Bn、 B12、與13畫面編碼,則剩余的畫面為圖15F所示。讀取 B,、 B2、與Pe畫面,并同時將B,、 B2、與P6畫面編碼,則剩余的畫面為圖 15G所示。最后,讀取B4與Bs畫面,并同時將B4與Bs畫面編碼,從而完 成整個編碼操作。必須再次提醒的是,由于不同編碼算法可以具有不同的畫面定義及其相 應(yīng)的編碼順序,因此,支持多核心的視頻編碼裝置所要建立的執(zhí)行線程的數(shù) 目,及其處理一序列中的畫面的順序均可依據(jù)不同編碼算法與需求進行任意 調(diào)整,并不限定于上述實施例中的例子。
本發(fā)明的方法,或特定型態(tài)或其部分,可以以程序代碼的型態(tài)包含于物 理介質(zhì),如軟盤、光盤片、硬盤、或是任何其它機器可讀取(如計算機可讀取) 儲存介質(zhì),其中,當程序代碼被機器,如計算機加載且執(zhí)行時,此機器變成 用以參與本發(fā)明的裝置。本發(fā)明的方法與裝置也可以以程序代碼型態(tài)通過一 些傳送介質(zhì),如電線或電纜、光纖、或是任何傳輸型態(tài)進行傳送,其中,當 程序代碼被機器,如計算機接收、加載且執(zhí)行時,此機器變成用以參與本發(fā) 明的裝置。當在一般用途處理器實作時,程序代碼結(jié)合處理器提供一操作類 似于應(yīng)用特定邏輯電路的獨特裝置。
雖然本發(fā)明己以較佳實施例揭示如上,然而其并非用以限定本發(fā)明,任 何本領(lǐng)域技術(shù)人員,在不脫離本發(fā)明的精神和范圍內(nèi),當可做些許更動與潤 飾,因此本發(fā)明的保護范圍當視權(quán)利要求所界定的范圍為準。
權(quán)利要求
1.一種位率控制方法,適用于支持至少一核心的一視頻編碼裝置,包括下列步驟接收一序列的多個畫面;依據(jù)該視頻編碼裝置的該核心的數(shù)目,建立多個執(zhí)行線程;利用所述執(zhí)行線程同時對于所述畫面中的至少一畫面進行編碼;以及依據(jù)相應(yīng)所述至少一畫面的編碼結(jié)果對于該序列中的所述畫面進行編碼。
2. 如權(quán)利要求1所述的位率控制方法,其特征在于,還包括下列步驟 判斷所述畫面中的一第一畫面的畫面類型;若該第一畫面為一B畫面時,由所述畫面中取得一第二畫面,其中該第 二畫面為一B畫面;以及同時通過所述執(zhí)行線程中的一第一執(zhí)行線程與一第二執(zhí)行線程分別對 于該第一畫面與該第二畫面進行編碼。
3. 如權(quán)利要求1所述的位率控制方法,其特征在于,還包括下列步驟 判斷所述畫面中的一第一畫面的畫面類型;若該第一畫面為一I畫面或P畫面時,將該第一畫面分割為一上部畫面 與一底部畫面;以及同時通過所述執(zhí)行線程中的一第一執(zhí)行線程與一第二執(zhí)行線程分別對 于該第一畫面的該上部畫面與該底部畫面進行編碼。
4. 如權(quán)利要求1所述的位率控制方法,其特征在于,還包括下列步驟-判斷所述畫面中的一第一畫面的畫面類型;若該第一畫面為一B畫面時,由所述畫面中取得一第二畫面,其中該第 二畫面為一B畫面;判斷所述畫面中的一第三畫面的畫面類型;以及若該第三畫面為一I畫面或P畫面時,同時通過所述執(zhí)行線程中的一第 一執(zhí)行線程、 一第二執(zhí)行線程、與一第三執(zhí)行線程分別對于該第一畫面、該 第二畫面、與該第三畫面進行編碼。
5. 如權(quán)利要求1所述的位率控制方法,其特征在于,還包括下列步驟判斷所述畫面中的一第一畫面的畫面類型;若該第一畫面為一B畫面時,由所述畫面中取得一第二畫面,其中該第 二畫面為一B畫面;分別將該第一畫面與該第二畫面分割為一上部畫面與一底部畫面; 判斷所述畫面中的一第三畫面的畫面類型;以及若該第三畫面為一I畫面或P畫面時,同時通過所述執(zhí)行線程中的一第 一執(zhí)行線程、 一第二執(zhí)行線程、 一第三執(zhí)行線程、 一第四執(zhí)行線程、與一第 五執(zhí)行線程分別對于該第一畫面的上部畫面、該第一畫面的底部畫面、該第 二畫面的上部畫面、該第二畫面的底部畫面、與該第三畫面進行編碼。
6. 如權(quán)利要求1所述的位率控制方法,其特征在于,還包括下列步驟 依據(jù)相應(yīng)所述至少一畫面中一第一畫面的一第一宏區(qū)塊的編碼結(jié)果與相應(yīng)所述至少一畫面中一第二畫面的一第二宏區(qū)塊的編碼結(jié)果,決定一編碼 程序中的一量化值;以及依據(jù)該量化值分別對于該第一畫面的一第三宏區(qū)塊與該第二畫面的一 第四宏區(qū)塊進行一量化操作。
7. —種位率控制裝置,支持至少一核心,包括 一接收單元,用以接收一序列的多個畫面;以及一處理單元,依據(jù)該核心的數(shù)目,建立多個執(zhí)行線程,利用所述執(zhí)行線 程同時對于所述畫面中的至少一畫面進行編碼,且依據(jù)相應(yīng)所述至少一畫面 的編碼結(jié)果對于該序列中的所述畫面進行編碼。
8. 如權(quán)利要求7所述的位率控制裝置,其特征在于,該處理單元還判斷 所述畫面中的一第一畫面的畫面類型,若該第一畫面為一B畫面時,由所述 畫面中取得一第二畫面,其中該第二畫面為一B畫面,且同時通過所述執(zhí)行 線程中的一第一執(zhí)行線程與一第二執(zhí)行線程分別對于該第一畫面與該第二 畫面進行編碼。
9. 如權(quán)利要求7所述的位率控制裝置,其特征在于,該處理單元還判斷 所述畫面中的一第一畫面的畫面類型,若該第一畫面為一 I畫面或P畫面時, 將該第一畫面分割為一上部畫面與一底部畫面,且同時通過所述執(zhí)行線程中 的一第一執(zhí)行線程與一第二執(zhí)行線程分別對于該第一畫面的該上部畫面與 該底部畫面進行編碼。
10. 如權(quán)利要求7所述的位率控制裝置,其特征在于,該處理單元還判斷 所述畫面中的一第一畫面的畫面類型,若該第一畫面為一B畫面時,由所述 畫面中取得一第二畫面,其中該第二畫面為一B畫面,判斷所述畫面中的一 第三畫面的畫面類型,若該第三畫面為一I畫面或P畫面時,同時通過所述 執(zhí)行線程中的一第一執(zhí)行線程、 一第二執(zhí)行線程、與一第三執(zhí)行線程分別對 于該第一畫面、該第二畫面、與該第三畫面進行編碼。
11. 如權(quán)利要求7所述的位率控制裝置,其特征在于,該處理單元還判斷 所述畫面中的一第一畫面的畫面類型,若該第一畫面為一B畫面時,由所述 畫面中取得一第二畫面,其中該第二畫面為一B畫面,分別將該第一畫面與 該第二畫面分割為一上部畫面與一底部畫面,判斷所述畫面中的一第三畫面 的畫面類型,若該第三畫面為一I畫面或P畫面時,同時通過所述執(zhí)行線程 中的一第一執(zhí)行線程、 一第二執(zhí)行線程、 一第三執(zhí)行線程、 一第四執(zhí)行線程、 與一第五執(zhí)行線程分別對于該第一畫面的該上部畫面、該第一畫面的該底部 畫面、該第二畫面的該上部畫面、該第二畫面的該底部畫面、與該第三畫面 進行編碼。
12. 如權(quán)利要求7所述的位率控制裝置,其特征在于,該處理單元還依據(jù) 相應(yīng)所述至少一畫面中一第一畫面的一第一宏區(qū)塊的編碼結(jié)果與相應(yīng)所述 至少一畫面中一第二畫面的一第二宏區(qū)塊的編碼結(jié)果,決定一編碼程序中的 一量化值,且依據(jù)該量化值分別對于該第一畫面的一第三宏區(qū)塊與該第二畫 面的一第四宏區(qū)塊進行一量化操作。
全文摘要
本發(fā)明提供一種位率控制方法及裝置,適用于支持至少一核心的一視頻編碼裝置。該位率控制方法包括如下步驟首先,接收一序列的畫面;依據(jù)視頻編碼裝置的核心數(shù)目,建立多個執(zhí)行線程;利用執(zhí)行線程同時對于畫面中的至少一畫面進行編碼,且依據(jù)相應(yīng)該至少一畫面的編碼結(jié)果對于該序列中的所述畫面進行編碼。通過本發(fā)明,具有在維持特定品質(zhì)的前提下,盡量降低其所占的尺寸,便于傳輸及用于各種樣式的應(yīng)用的優(yōu)點。
文檔編號H04N7/24GK101330608SQ20071011206
公開日2008年12月24日 申請日期2007年6月22日 優(yōu)先權(quán)日2007年6月22日
發(fā)明者陳威任 申請人:科立爾數(shù)位科技股份有限公司