專利名稱:圖像編碼裝置和圖像編碼方法
技術(shù)領(lǐng)域:
本發(fā)明涉及圖像編碼裝置和圖像編碼方法。詳細(xì)地說涉及在不執(zhí)行畫面內(nèi)反饋控 制的情況下使生成碼量吻合于賦予一個圖像的目標(biāo)碼量的技術(shù)。
背景技術(shù):
以往,在傳送運動圖像的比特流或者將該比特流記錄在記錄介質(zhì)上的系統(tǒng)等中, 為了有效地利用傳送路徑或記錄容量,而實施了高效率編碼。在實現(xiàn)高效率編碼的圖像編碼裝置中,控制量化步長以使在編碼器中產(chǎn)生的比特 流的編碼比特率與傳送介質(zhì)的傳送速率一致并成為恒定。例如,圖像編碼裝置在圖案復(fù)雜 的圖像連續(xù)時,增大量化步長來抑制數(shù)據(jù)產(chǎn)生量,在簡單的圖案連續(xù)時,減小量化步長來增 加數(shù)據(jù)產(chǎn)生量。圖像編碼裝置通過這樣控制量化步長,使得不會產(chǎn)生緩沖存儲器的溢出或 下溢,從而保持了固定速率。因此,在這樣的現(xiàn)有技術(shù)中的圖像編碼裝置中,當(dāng)復(fù)雜的圖像連續(xù)時量化步長變 大,畫質(zhì)劣化,當(dāng)簡單的圖像連續(xù)時量化步長變小,無法得到整體均勻的畫質(zhì)。鑒于上述問題,例如專利文獻(xiàn)1公開了以下內(nèi)容按照每個G0P(Group Of Pictures,圖像組)的編碼的難易度和與多個G0P有關(guān)的編碼的難易度的總和之比來調(diào)整 分配給各G0P自身的分配碼量。例如,對包含圖案復(fù)雜的圖像的G0P較多地分配碼量,對包 含圖案簡單的圖像的G0P較少地分配碼量。另一方面,作為使生成碼量對應(yīng)于賦予一個圖像的目標(biāo)碼量的方法,例如公知有 TM5(test model5,測試模型5)的步長2比較好。這是以下一種手法將被分配給圖像的碼 量均等地分配給宏塊(MB ;MaCr0Bl0Ck)而得的碼量設(shè)為宏塊的目標(biāo)碼量,并在圖像內(nèi)執(zhí)行 反饋控制,以與目標(biāo)碼量相吻合?,F(xiàn)有技術(shù)文獻(xiàn)專利文獻(xiàn)1 日本專利文獻(xiàn)專利第3358620號公報。
發(fā)明內(nèi)容
然而,當(dāng)采用使生成碼量與賦予一個圖像的目標(biāo)碼量吻合的方法時,如果利用全 部的量化參數(shù)來計算生成碼量,則能夠容易地確定最優(yōu)量化參數(shù)。但是如果利用全部的量 化參數(shù)來計算生成碼量,則會導(dǎo)致電路規(guī)模和處理量的增大,無法以廉價的結(jié)構(gòu)容易地進(jìn) 行編碼。另外,如果離散地選擇量化參數(shù)來計算生成碼量,則能夠減小電路規(guī)模。在該情況 下,通過插值處理來計算未被選擇的量化參數(shù)的生成碼量。但是,如果基于插值的生成碼量 的預(yù)測精度不高,則會導(dǎo)致無法高精度地設(shè)定圖像對目標(biāo)碼量的的最優(yōu)量化參數(shù)。因此,本發(fā)明提供一種能夠在不執(zhí)行畫面內(nèi)反饋控制的情況下容易地使生成碼量 與賦予一個圖像的目標(biāo)碼量吻合的圖像編碼裝置和圖像編碼方法。本發(fā)明的第一側(cè)面包括第一編碼部,離散地選擇第一范圍內(nèi)的量化參數(shù),以并行地執(zhí)行該選擇出的量化參數(shù)的生成碼量的計算;第二編碼部,并行地執(zhí)行第二范圍內(nèi)的量 化參數(shù)的生成碼量的計算,所述第二范圍是比所述第一范圍小的范圍,并且以臨時量化參 數(shù)為基準(zhǔn);碼量控制部,針對未被所述第一編碼部選擇的量化參數(shù),通過插值處理計算生成 碼量,將所述選擇出的量化參數(shù)的生成碼量和通過插值而計算出的生成碼量與目標(biāo)碼量進(jìn) 行比較,來確定與目標(biāo)碼量對應(yīng)的所述臨時量化參數(shù);并且所述碼量控制部將由所述第二 編碼部計算出的生成碼量與目標(biāo)碼量進(jìn)行比較,來確定與目標(biāo)碼量對應(yīng)的最優(yōu)量化參數(shù); 以及第三編碼部,使用所述被確定了的最優(yōu)量化參數(shù)來對圖像進(jìn)行編碼;所述碼量控制部 根據(jù)通過所述插值處理計算生成碼量的量化參數(shù)的位置值來改變插值方法。在本發(fā)明中,由第一編碼部離散地選擇第一范圍內(nèi)的量化參數(shù),以并行地執(zhí)行該 選擇出的量化參數(shù)的生成碼量的計算。另外,在碼量控制部中,針對未被選擇的量化參數(shù), 通過插值處理計算生成碼量,將選擇出的量化參數(shù)的生成碼量和通過插值而計算出的生成 碼量與目標(biāo)碼量進(jìn)行比較,來確定與目標(biāo)碼量對應(yīng)的臨時量化參數(shù)。在插值處理中,通過比較被選擇出的量化參數(shù)的生成碼量和目標(biāo)碼量,來判別通 過插值處理計算生成碼量的量化參數(shù)。另外,根據(jù)判別出的量化參數(shù)的位置來改變插值方 法。例如,根據(jù)通過插值處理計算生成碼量的量化參數(shù)是否是被由第一編碼部選擇出的量 化參數(shù)夾持的位置區(qū)域內(nèi)的值來改變插值方法,當(dāng)通過插值處理計算生成碼量的量化參數(shù) 是被選擇出的量化參數(shù)夾持的位置區(qū)域內(nèi)的值時,使用二次曲線來執(zhí)行插值。在使用了二 次曲線的插值中,如果與目標(biāo)碼量對應(yīng)的臨時量化參數(shù)處于在相加了與活動性相應(yīng)的偏移 時被限制在預(yù)先設(shè)定的范圍內(nèi)的量化參數(shù)的區(qū)域內(nèi),則將量化參數(shù)變換成平均量化參數(shù), 并計算平均量化參數(shù)的生成碼量。另外,當(dāng)通過插值處理計算生成碼量的量化參數(shù)不是被由第一編碼部選擇出的量 化參數(shù)夾持的位置區(qū)域內(nèi)的值時,使用由第一編碼部計算出的生成碼量的變化率來執(zhí)行插 值。在使用了所述生成碼量的變化率的插值中,根據(jù)選擇出的量化參數(shù)的生成碼量來計算 變化率,并使用該計算出的變化率在用于該變化率的計算的量化參數(shù)的間隔中執(zhí)行插值。 另外,當(dāng)用于變化率的計算的量化參數(shù)的間隔大于1時,使用在用于變化率的計算的量化 參數(shù)的間隔中執(zhí)行插值而得到的生成碼量,通過直線插值來求出位于用于變化率的計算的 量化參數(shù)的區(qū)域的間隔內(nèi)的量化參數(shù)的生成碼量。在第二編碼部中,并行地執(zhí)行第二范圍內(nèi)的量化參數(shù)的生成碼量的計算,所述第 二范圍是比第一范圍小的范圍,并且以臨時量化參數(shù)為基準(zhǔn)。在碼量控制部中,將由第二編 碼部計算出的生成碼量與目標(biāo)碼量進(jìn)行比較,來確定與目標(biāo)碼量對應(yīng)的最優(yōu)量化參數(shù)。在 第三編碼部中,使用該最優(yōu)量化參數(shù)來對圖像進(jìn)行編碼本發(fā)明的第二側(cè)面提高一種圖像編碼方法,包括以下步驟在第一編碼部中,離散 地選擇第一范圍內(nèi)的量化參數(shù),以并行地執(zhí)行該選擇出的量化參數(shù)的生成碼量的計算;在 碼量控制部中,針對未被所述第一編碼部選擇的量化參數(shù),通過插值處理計算生成碼量,將 所述選擇出的量化參數(shù)的生成碼量和通過插值而計算出的生成碼量與目標(biāo)碼量進(jìn)行比較, 來確定與目標(biāo)碼量對應(yīng)的臨時量化參數(shù);在第二編碼部中,并行地執(zhí)行第二范圍內(nèi)的量化 參數(shù)的生成碼量的計算,所述第二范圍是比所述第一范圍小的范圍,并且以所述臨時量化 參數(shù)為基準(zhǔn);在所述碼量控制部中,將由所述第二編碼部計算出的生成碼量與目標(biāo)碼量進(jìn) 行比較,來確定與目標(biāo)碼量對應(yīng)的最優(yōu)量化參數(shù);以及在第三編碼部中,使用所述最優(yōu)量化
5參數(shù)來對圖像進(jìn)行編碼;在所述碼量控制部中的所述插值處理中,根據(jù)通過所述插值處理 計算生成碼量的量化參數(shù)的位置值來改變插值方法。根據(jù)本發(fā)明,離散地選擇第一范圍內(nèi)的量化參數(shù),并行地執(zhí)行該選擇出的量化參 數(shù)的生成碼量的計算。另外,針對未被選擇的量化參數(shù),通過插值處理計算生成碼量,將選 擇出的量化參數(shù)的生成碼量和通過插值而計算出的生成碼量與目標(biāo)碼量進(jìn)行比較,來確定 與目標(biāo)碼量對應(yīng)的臨時量化參數(shù)。在該插值處理中,根據(jù)通過插值處理計算生成碼量的量 化參數(shù)的位置值來改變插值方法。另外,并行地執(zhí)行比所述第一范圍小、以臨時量化參數(shù)為 基準(zhǔn)的第二范圍內(nèi)的量化參數(shù)的生成碼量的計算,并且根據(jù)第二范圍內(nèi)的量化參數(shù)的生成 碼量與目標(biāo)碼量的比較來確定與目標(biāo)碼量對應(yīng)的最優(yōu)量化參數(shù)。使用該最優(yōu)量化參數(shù)來對 圖像執(zhí)行編碼。這樣,根據(jù)通過插值處理計算生成碼量的量化參數(shù)的位置值來改變插值方法,因 此能夠提供以下的圖像編碼裝置以及圖像編碼方法能夠提高基于插值的生成碼量的預(yù)測 精度,能夠容易地在不執(zhí)行畫面內(nèi)反饋控制的情況下使生成碼量與賦予一個圖像的目標(biāo)碼 量吻合。
圖1是表示圖像編碼裝置的結(jié)構(gòu)的圖;圖2是表示圖像編碼裝置的編碼的處理順序的流程圖;圖3是表示自適應(yīng)的Q矩陣的變換處理的流程圖;圖4是表示臨時量化參數(shù)的確定處理的流程圖;圖5的(A)到⑶是用于說明臨時量化參數(shù)的確定處理的圖;圖6是表示插值處理的變換的流程圖;圖7的(A)和⑶是例示了量化參數(shù)和生成碼量的關(guān)系的圖;圖8是表示計算生成碼量的量化參數(shù)的位置和插值方法的關(guān)系的圖;圖9是用于說明通過使用了二次曲線的插值計算生成碼量的方法的圖;圖10是表示使用了平均量化參數(shù)的臨時量化參數(shù)的確定處理的流程圖;圖11的(A)到(D)是用于說明使用了平均量化參數(shù)的臨時量化參數(shù)的確定處理 的圖;圖12是例示了使用再編碼素材時的生成碼量的圖;圖13是直線插值和使用了二次曲線的插值的比較圖;圖14是表示使用了增加率的插值方法的圖;圖15是表示使用了增加率的其他的插值方法的圖;圖16是表示量化參數(shù)之間的差為1以外時使用了增加率的插值方法的圖;圖17是表示量化參數(shù)之間的差為1以外時使用了增加率的其他插值方法的圖。
具體實施例方式以下,對本發(fā)明的圖像編碼裝置以及圖像編碼方法進(jìn)行說明。該圖像編碼裝置以 及圖像編碼方法在通過使用了以MPEG4 AVC(AdvancedVideo Coding,高級視頻編碼)等為 代表的算術(shù)編碼的圖像壓縮方式執(zhí)行碼量控制時進(jìn)行第一預(yù)編碼和第二預(yù)編碼。在第一預(yù)編碼中,執(zhí)行并行預(yù)編碼,根據(jù)大范圍的量化參數(shù)(QP Quantization Parameter)來粗略 估計實現(xiàn)目標(biāo)碼量的基本量化參數(shù)。另外,在第二預(yù)編碼中,在基于第一預(yù)編碼的估計結(jié)果 的小范圍內(nèi)執(zhí)行并行預(yù)編碼,確定在本編碼中使用的最優(yōu)的基本量化參數(shù)。并且,當(dāng)在第一 預(yù)編碼中粗略地估計實現(xiàn)目標(biāo)碼量的基本量化參數(shù)時,通過插值處理來計算未被選擇的量 化參數(shù)的生成碼量。另外,根據(jù)計算生成碼量的量化參數(shù)的位置來轉(zhuǎn)換插值方法。這樣,圖像編碼裝置和圖像編碼方法在提高圖像編碼的精度的同時,能夠減輕處 理負(fù)載,并在圖像內(nèi)實現(xiàn)良好的編碼分布。另外,圖像編碼裝置和圖像編碼方法通過提高在 第一預(yù)編碼中粗略估計基本量化參數(shù)時的精度,能夠容易確定最優(yōu)的基本量化參數(shù)。另外, 按照以下的順序來進(jìn)行說明。1.圖像編碼裝置的結(jié)構(gòu)2.編碼處理步驟3. Q矩陣的變換處理4.臨時量化參數(shù)的確定處理5.插值處理6.使用了二次曲線的插值7.使用了變化率的插值8.最優(yōu)量化參數(shù)的確定處理<1.圖像編碼裝置的結(jié)構(gòu)〉圖1示出了圖像編碼裝置的結(jié)構(gòu)。圖像編碼裝置10包括執(zhí)行并行預(yù)編碼的第一 預(yù)編碼部20和第二預(yù)編碼部30、碼量控制部40、執(zhí)行主編碼的編碼部50、以及延遲緩沖器 15、16。作為第一編碼部的第一預(yù)編碼部20是執(zhí)行第一預(yù)編碼的模塊。第一預(yù)編碼 部20包括畫面內(nèi)預(yù)測模式確定部21、畫面內(nèi)預(yù)測處理部22、以及DCT (Discrete Cosine Transform ;離散余弦變換)部23。另外,第一預(yù)編碼部20包括量化部24、碼長計算部25、 以及活動性(Activity)計算部26。并且量化部24由多個量化部24_1 24_n構(gòu)成,碼長 計算部25由多個碼長計算部25-1 25-n構(gòu)成。作為第二編碼部的第二預(yù)編碼部30是執(zhí)行第二預(yù)編碼的模塊。第二預(yù)編碼部30 包括畫面內(nèi)預(yù)測處理部31、DCT部32、量化部33、碼長計算部34、逆量化部35、IDCT (Inverse DCT,逆離散余弦變換)部36、以及緩沖器37。另外,量化部33例如由量化部33_1 33_3 構(gòu)成,碼長計算部34例如由碼長計算部34-1 34-3構(gòu)成。碼量控制部40是執(zhí)行碼量控制的模塊。作為第三編碼部的編碼部50是執(zhí)行主編碼的模塊。編碼部50包括畫面內(nèi)預(yù)測處 理部51、DCT部52、量化部53、熵編碼部54、逆量化部55、IDCT部56、以及緩沖器57。在這樣的結(jié)構(gòu)中,輸入圖像的圖像信號被提供給第一預(yù)編碼部20和延遲緩沖器 15、16。被輸入到第一預(yù)編碼部20的圖像信號被輸入到畫面內(nèi)預(yù)測模式確定部21和活動 性計算部26。畫面內(nèi)預(yù)測模式確定部21基于圖像信號來確定畫面內(nèi)預(yù)測模式。一般來說, 預(yù)測模式(預(yù)測方向)以4X4像素為單位從九種預(yù)測模式中確定。該被確定的畫面內(nèi)預(yù)測模式也被送到第二預(yù)編碼部30和編碼部50,并在第二預(yù)編碼部30中的第二預(yù)編碼、編碼部50中的主編碼中被使用。畫面內(nèi)預(yù)測處理部22生成表示預(yù)測圖像與輸入圖像的差分的差分圖像的圖像信 號。這里,為了削減處理預(yù)測圖像由輸入圖像制作。如果如上所述使用輸入圖像的圖像信 號來執(zhí)行畫面內(nèi)預(yù)測處理,則能夠削減逆量化部、IDCT部、緩沖器,并且能夠削減電路規(guī)模。DCT部23將被完成了整數(shù)精度DCT的DCT系數(shù)發(fā)送給量化部24_1 24_n。量化 部24對該DCT系數(shù)執(zhí)行量化,并送到碼長計算部25。碼長計算部25通過執(zhí)行基于上下文 的自適應(yīng)可變長編碼方式CAVLC (Context-Adaptive Variable Length Coding)來計算碼 量。根據(jù)CAVLC,能夠?qū)?yīng)于周圍的狀況自適應(yīng)地選擇高效率的編碼方式。 這樣,在第一預(yù)編碼中,即使是在作為熵編碼方式而使用 CABAC (Context-Adaptive Binary Arithmetic Coding,基于上下文的自適應(yīng)二進(jìn)制算術(shù)編 碼)的情況下,也對碼量計算使用CAVLC。另外,CABAC是基于上下文的自適應(yīng)二進(jìn)制算術(shù) 編碼方式。量化部24通過并行設(shè)置的量化部24-1、…、24-n(n = 1、2、3…)構(gòu)成,碼長計算 部25通過并行設(shè)置的碼長計算部25-1、…、25-n(n = 1、2、3…)構(gòu)成。在第一預(yù)編碼中,從第一范圍內(nèi)的量化參數(shù)中以量化部24和碼長計算部25的并 行數(shù)來離散地選擇。另外,在第一預(yù)編碼中,對選擇出的量化參數(shù)并行地執(zhí)行量化和碼長的 計算,并將各自的生成碼量從第一預(yù)編碼部20輸出到碼量控制部40。S卩,在第一預(yù)編碼部20中,通過基于量化部24、碼長計算部25的抑制了電路規(guī)模 的并行預(yù)編碼部分以第一范圍內(nèi)的量化參數(shù)QP執(zhí)行第一預(yù)編碼。另外,碼量控制部40能夠 使用在第一預(yù)編碼部20中計算出的生成碼量來粗略估計實現(xiàn)目標(biāo)碼量的基本量化參數(shù)。 另外,在以下的說明中,將粗略估計出的基本量化參數(shù)稱為臨時量化參數(shù)QP_preC0del。量化參數(shù)QP是用于在AVC中指定量化值的值。如果量化參數(shù)QP變大,則量化值 也成為大的值。在通過畫面內(nèi)預(yù)測模式確定部21確定畫面內(nèi)預(yù)測模式的同時,活動性計算部 26計算活動性(Activity),以根據(jù)該活動性對宏塊分組。對各宏塊確定了的活動性組 (Activity Group)編號被輸入到量化部24中。所謂活動性表示畫面內(nèi)的局部圖像的性質(zhì)。作為宏塊的活動性,如以往所知的那 樣例如使用各像素信號對宏塊內(nèi)的像素信號的平均值的誤差的絕對值和或者宏塊內(nèi)的各 像素信號的分散等。碼量控制部40根據(jù)第一預(yù)編碼部20的第一預(yù)編碼的結(jié)果來求出在下一個步驟中 使用的臨時量化參數(shù)和量化矩陣Q矩陣。S卩,在第一預(yù)編碼中,離散地選擇可取范圍(第一范圍)的量化參數(shù)QP,并利用選 擇出的量化參數(shù)QP執(zhí)行并行預(yù)編碼,以獲取生成碼量。碼量控制部40使用獲取的生成碼 量通過插值處理來計算被間拔的量化參數(shù)QP的生成碼量。碼量控制部40根據(jù)計算生成 碼量的量化參數(shù)的位置來轉(zhuǎn)換插值方法并執(zhí)行插值處理。并且,碼量控制部40將獲取的 生成碼量和通過插值處理計算出的生成碼量與目標(biāo)碼量進(jìn)行比較來確定臨時量化參數(shù)QP_ precodelο碼量控制部40從臨時量化參數(shù)QP_preCOdel、Q矩陣、以及各宏塊的活動性組中得 到量化的信息(Q矩陣、各宏塊的QP等),并供應(yīng)給第二預(yù)編碼部30。第二預(yù)編碼部30基于這些值來執(zhí)行第二預(yù)編碼。S卩,在第二預(yù)編碼部30中,輸入圖像的圖像信號在經(jīng)由延遲緩沖器15被延遲處理 了之后被輸入到畫面內(nèi)預(yù)測處理部31。畫面內(nèi)預(yù)測處理部31生成表示預(yù)測圖像與輸入圖 像的差分的差分圖像的圖像信號。并且,執(zhí)行基于DCT部32的DCT、基于量化部33的DCT 系數(shù)的量化,碼長計算部34計算生成碼量。另外,在以上的處理過程中,量化部33的輸出被送給逆量化部35。逆量化部35進(jìn) 行逆量化并再現(xiàn)DCT系數(shù)。然后,IDCT部36對DCT系數(shù)進(jìn)行IDCT變換,再現(xiàn)輸入圖像,并 保存在緩沖器37中。這里,量化部33在本例中由三級的量化部33-1、33-2、33_3構(gòu)成,碼長計算部34 在本例中由三級的碼長計算部34-1、34-2、34-3構(gòu)成。設(shè)為三級是因為已經(jīng)通過第一預(yù)編 碼在大范圍內(nèi)粗略估計了量化參數(shù)QP。量化部33和碼長計算部34計算在以臨時量化參數(shù)QP_preCOdel為基準(zhǔn)的第二范 圍內(nèi)的量化參數(shù)QP下的生成碼量。例如,當(dāng)量化部33和碼長計算部34被設(shè)為三級時,以 臨時量化參數(shù)QP_precodel為中心,將包含“QP_precodel+l ”、“QP_precodel_l ”的量化參 數(shù)的范圍設(shè)為第二范圍。此時,碼長計算部34從CABAC/CAVLC中選擇與由編碼部50執(zhí)行 的主編碼的熵編碼方式相同的的某一個方式。碼量控制部40根據(jù)通過第二預(yù)編碼得到的生成碼量來確定在主編碼中使用的基 本量化參數(shù)。并且,碼量控制部40基于該被確定了的基本量化參數(shù)、Q矩陣以及各宏塊的 活動性組將量化信息(Q矩陣、各宏塊的QP等)送到編碼部50。編碼部50使用該基本量化參數(shù)、Q矩陣、活動性組等來執(zhí)行主編碼。即,一旦經(jīng)由 延遲緩沖器16接收到被延遲處理了的輸入圖像的圖像信號,則畫面內(nèi)預(yù)測處理部51在第 一預(yù)編碼時被確定的預(yù)測模式下生成表示預(yù)測圖像與輸入圖像的差分的差分圖像的圖像 信號。DCT部52執(zhí)行DCT,量化部53執(zhí)行DCT系數(shù)的量化。量化部53的輸出也被送到逆 量化部55。逆量化部55進(jìn)行逆量化并再現(xiàn)DCT系數(shù)。然后,IDCT部56對DCT系數(shù)進(jìn)行IDCT 變換,再現(xiàn)輸入圖像,并保存在緩沖器57中。這樣,經(jīng)過了由DCT部52執(zhí)行的DCT、由量化部53執(zhí)行的DCT系數(shù)的量化之后,通
過熵編碼部54完成熵編碼,并輸出設(shè)為目標(biāo)碼量的輸出流。這樣,圖像編碼裝置10在由第一預(yù)編碼部20執(zhí)行的第一預(yù)編碼中計算利用離散 地選擇出的量化參數(shù)執(zhí)行編碼時的生成碼量。另外,圖像編碼裝置10使用計算出的生成碼 量來確定臨時量化參數(shù)QP_preCOdel,所述臨時量化參數(shù)QP_preCOdel是粗略估計了成為 設(shè)為目標(biāo)的生成碼量的基本量化參數(shù)。此時,第一預(yù)編碼部20為了計算利用離散地選擇出的量化參數(shù)執(zhí)行編碼時的生 成碼量而并行地執(zhí)行編碼。—般來說,由于并行地執(zhí)行編碼,因此導(dǎo)致電路規(guī)模變得非常大。但是,第一預(yù)編 碼部20僅并行設(shè)置量化部24和碼長計算部25,其他部分共用來使用,對間拔后的量化參 數(shù)QP來計算生成碼量。因此,能夠削減電路規(guī)模并執(zhí)行并行編碼。另外,由于第一預(yù)編碼 部20是使用輸入圖像來執(zhí)行畫面內(nèi)預(yù)測處理的結(jié)構(gòu),因此不使用逆量化部、IDCT部、緩沖 器。因此,能夠進(jìn)一步削減電路規(guī)模并執(zhí)行并行編碼。
另外,當(dāng)在熵編碼中使用CABAC時,無法以高比特率處理。即,當(dāng)為了預(yù)測碼量而 利用某個量化參數(shù)QP來執(zhí)行碼量計算時,如果利用該量化參數(shù)QP的生成量大,則無法預(yù)測碼量。CABAC是按照每1比特執(zhí)行概率計算并壓縮數(shù)據(jù)的熵編碼方式。每1比特處理意 味著碼量越多處理時間越長,在固定的時間內(nèi)(例如1幀的時間)無法結(jié)束處理。因此,在 碼量多的情況下,由于無法計算生成碼量,因此無法以高的比特率預(yù)測碼量。因此,第一預(yù) 編碼部20在碼量計算中使用CAVLC。這樣,如果構(gòu)成第一預(yù)編碼部20來執(zhí)行碼量計算,則能夠削減電路規(guī)模,削減處 理,并執(zhí)行簡化了的并行預(yù)編碼。另外,碼量控制部40使用由第一預(yù)編碼部20獲取的生成 碼量,并通過插值處理來計算被間拔了的量化參數(shù)QP的生成碼量。另外,碼量控制部40對 獲取的生成碼量以及通過插值處理計算出的生成碼量與目標(biāo)碼量進(jìn)行比較來確定臨時量 化參數(shù) QP_precodel0第二預(yù)編碼部30鑒于使用了第一預(yù)編碼結(jié)果的臨時量化參數(shù)QP_preCOdel具有 誤差,而再次執(zhí)行預(yù)編碼,由此可以提高在主編碼中使用的基本量化參數(shù)的精度。即,第二 預(yù)編碼部30利用根據(jù)第一預(yù)編碼結(jié)果而粗略估計出的臨時量化參數(shù)QP_preC0del的周邊 的量化參數(shù)QP來再次執(zhí)行預(yù)編碼,由此計算生成碼量。另外,第二預(yù)編碼部30求出生成碼 量處于目標(biāo)碼量以下并最接近于目標(biāo)碼量的最優(yōu)量化參數(shù)QP_preC0de2。另外,第二預(yù)編碼 部30中的熵碼長計算使用與主編碼相同的方式(CABAC或CAVLC)。第二預(yù)編碼利用執(zhí)行第一預(yù)編碼而被確定了的臨時量化參數(shù)QP_preCOdel以及 例如一個大的量化參數(shù)QP_precodel+l、一個小的量化參數(shù)QP_precodel_l執(zhí)行預(yù)編碼。這 里,為了削減電路規(guī)模,如上所述僅使量化部33和碼長計算部34并行化,共用其他的處理。此時,在畫面內(nèi)預(yù)測處理中使用的局部解碼(Local Decode)圖像設(shè)為利用通過第 一預(yù)編碼確定了的臨時量化參數(shù)QP_preCOdel量化后的數(shù)據(jù)。即,通過逆量化和IDCT處理 的數(shù)據(jù)是臨時量化參數(shù)QP_preCOdel的量化的輸出。這意味著臨時量化參數(shù)QP_preC0del 的局部解碼圖像被替代用作使用量化參數(shù)QP_preC0del+l、QP_precodel-l的預(yù)編碼的畫 面內(nèi)預(yù)測處理的輸入,而不是量化參數(shù)QP_preCOdel+l、QP_precodel-l的局部解碼圖像用 作該輸入。另外,由于存在畫面內(nèi)預(yù)測處理的輸入不同而引起的誤差,但基本量化參數(shù)是近 似相同的值,由編碼引起的失真(distortion)也是近似相同的量,因此能夠忽略該誤差。<2.編碼處理程序>接著,參照圖2的流程圖來說明圖像編碼裝置的編碼的處理步驟。在步驟ST1中,第一預(yù)編碼部20執(zhí)行活動性分組。第一預(yù)編碼部20針對每個宏 塊計算活動性,并根據(jù)其值而分為活動性組。S卩,如果假定分為NumOfActivityGroup的組的情況,則活動性計算部26通過比 較 ActivityThreshold
ActivityThreshold[NumofActivityGroup_2]和活動性來確 定活動性組。另外,后述的宏塊的量化參數(shù)MB_QP如式(1)所示,通過對圖像的基本量化參 數(shù)(BaseQP)添加依存于活動性組的偏移(offset) (AdaptQpDelta[activity_group])而求
出oMB_QP = BaseQP+AdaptQpDelta[activity_group]--- (1)
例如,當(dāng)將NumOfActivityGroup 設(shè)為 13 時,AdaptQpDelta 的各值可以為 AdaptQpDelta[13] = {-6、-5、-4、-3、-2、_1、0、1、2、3、4、5、6}。另外,活動性如上所述使用 各像素信號對宏塊內(nèi)的像素信號的平均值的誤差的絕對值和或宏塊內(nèi)的各像素信號的分 散等,通過活動性表示宏塊中的圖像的平坦度。這里,當(dāng)活動性大時,由于宏塊的圖像的平 坦度低,因此為使量化參數(shù)變小而執(zhí)行偏移,來減小量化步長。另外,當(dāng)活動性小時,由于宏 塊的圖像的平坦度高,因此為使量化參數(shù)變大而執(zhí)行偏移,來增大量化步長。在步驟ST2中,第一預(yù)編碼部20確定畫面內(nèi)預(yù)測模式。第一預(yù)編碼部20的畫面 內(nèi)預(yù)測模式確定部21基于輸入圖像來確定畫面內(nèi)預(yù)測模式。畫面內(nèi)預(yù)測模式在基于第一 預(yù)編碼部20的第二預(yù)編碼中、基于編碼部50的主編碼中也被使用。在步驟ST3中第一預(yù)編碼部20執(zhí)行差分圖像的生成和DCT運算。第一預(yù)編碼部 20的畫面內(nèi)預(yù)測處理部22生成表示預(yù)測圖像與輸入圖像的差分的差分圖像的圖像信號。 預(yù)測圖像例如為了削減處理而根據(jù)輸入圖像生成。接著,DCT部23執(zhí)行整數(shù)精度DCT,并將 DCT系數(shù)送到量化部24。在步驟ST4中,第一預(yù)編碼部20計算基于第一預(yù)編碼的碼量。量化部24利用離 散地選擇出的量化參數(shù)QP對DCT系數(shù)值進(jìn)行量化。碼長計算部25通過執(zhí)行碼長計算來獲 取每一個圖像的生成碼量。此時,宏塊的量化參數(shù)MB_QP如上所述被賦予考慮了活動性的 值,并被編碼。即,如上所述,宏塊的量化參數(shù)MB_QP通過對圖像的基本量化參數(shù)添加依存 于活動性組的偏移而被求出。另外,在對應(yīng)于自適應(yīng)的Q矩陣變換處理的情況下,針對每個Q矩陣執(zhí)行上述的處 理。即,針對每個Q矩陣,利用離散地選擇出的量化參數(shù)QP來執(zhí)行預(yù)編碼,針對每個量化參 數(shù)QP獲取一個圖像的生成碼量。此時,按照針對每個Q矩陣覆蓋量化參數(shù)QP的可取的范 圍的方式來選擇量化參數(shù)QP。在步驟ST5中,碼量控制部40執(zhí)行基于第一預(yù)編碼的生成碼量的修正。碼量控制 部40通過簡化了預(yù)編碼來執(zhí)行誤差的修正。利用誤差具有某種程度的傾向來執(zhí)行誤差的 修正。第一誤差因素是在畫面內(nèi)預(yù)測處理中使用輸入圖像而不是局部解碼圖像。在此情 況下,在畫面內(nèi)預(yù)測上使用的圖像中不存在由于編解碼(codec)引起的失真,因此與實際 的編碼相比編碼效率變好,并且有很少地產(chǎn)生碼量的傾向。該誤差的大小依賴于失真的大 小,因此在生成碼量與誤差的關(guān)系中,如果比特率變小,則有誤差變大的傾向。另外,在量化 參數(shù)QP與誤差的關(guān)系中,如果量化參數(shù)QP變大,則處于誤差變大的傾向。因此,通過預(yù)先 獲取誤差的大小的統(tǒng)計數(shù)據(jù),并作成基于比特率的平均誤差的模型、基于量化參數(shù)QP的平 均誤差的模型,由此執(zhí)行修正。第二誤差因素是僅在熵編碼方式中選擇了 CABAC時產(chǎn)生的因素。由于CABAC比 CAVLC編碼效率高,因此利用CAVLC預(yù)編碼的生成碼量有多于實際的碼量產(chǎn)生的傾向。例 如,在生成碼量與誤差的關(guān)系中,從統(tǒng)計上看如果比特率變小,則由于CABAC的效率變高而 該誤差的大小處于變大的傾向。這也是一樣的,預(yù)先獲取誤差的大小的統(tǒng)計數(shù)據(jù),并作成平 均誤差的模型,由此執(zhí)行修正。另夕卜,與基于輸入圖像的畫面內(nèi)預(yù)測處理的誤差相比可知,由于CABAC引起的誤 差向相反側(cè)變化,其變化量小。因此,將修正量定義為比特率“r”和量化參數(shù)QP “q”的函數(shù)?,F(xiàn)在,如果將修正比設(shè)為C(r,q),則能夠得到通過式(2)修正后的碼量。
修正后的碼量=Pre-Encode碼量XC(r,q)…(2) 在步驟ST6中,碼量控制部40確定與目標(biāo)碼量對應(yīng)的臨時量化參數(shù)QP_preC0del。 碼量控制部40利用所選擇出的量化參數(shù)QP來執(zhí)行預(yù)編碼,并獲取生成碼量,因此對于被間 拔的量化參數(shù)QP,通過插值處理來計算生成碼量。另外,碼量控制部40將通過執(zhí)行預(yù)編碼 而得到的生成碼量和通過插值處理而計算出的碼量與目標(biāo)碼量進(jìn)行比較,并且將碼量處于 目標(biāo)碼量以下并最接近于目標(biāo)碼量的量化參數(shù)QP設(shè)為臨時量化參數(shù)QP_preC0del。碼量控 制部40由于提高了基于插值處理的生成碼量的預(yù)測精度,因此可以根據(jù)計算生成碼量的 量化參數(shù)的位置來改變插值方法。另外,在對應(yīng)于自適應(yīng)的Q矩陣變換處理的情況下,針對每個Q矩陣執(zhí)行上述處 理。即,針對每個Q矩陣,將碼量處于目標(biāo)碼量以下并最接近于目標(biāo)碼量的量化參數(shù)QP設(shè) 為臨時量化參數(shù)QP_preC0del。即,在第一預(yù)編碼部20中,為了對應(yīng)于自適應(yīng)的Q矩陣的選 擇,針對每個該Q矩陣,離散地選擇可取范圍的量化參數(shù)QP,并在并行電路部分中執(zhí)行并行 處理。另外,將目標(biāo)碼量與通過執(zhí)行并行處理而得到的生成碼量以及通過插值處理而計算 出的碼量進(jìn)行比較,針對每個Q矩陣將碼量處于目標(biāo)碼量以下并最接近于目標(biāo)碼量的量化 參數(shù)QP設(shè)為臨時量化參數(shù)QP_preCOdel。這里,參照圖3的流程圖來進(jìn)一步說明自適應(yīng)的Q矩陣的變換處理。當(dāng)執(zhí)行自適應(yīng)的Q矩陣變換時,根據(jù)編碼難易度自適應(yīng)地執(zhí)行Q矩陣的選擇。作 為編碼難易度,使用針對每個Q矩陣而確定了的臨時量化參數(shù)QP_preC0del。這里,將變換使用的Q矩陣的數(shù)量設(shè)為NumOfQMatrixId。另外,從傾斜 平緩的Q矩陣以上升順序分配Id,并將各Q矩陣可取的最大的量化參數(shù)QP作為 QmatrixThreshold
QmatrixThresho1d[NumOfQMatrixId-2]。在步驟ST21中碼量控制部40執(zhí)行Id的初始化,并設(shè)為“ Id = 0”。在步驟ST22中, 碼量控制部40從Id值小的Q矩陣比較臨時量化參數(shù)QP_precodel和QMatrixThreshold。 如果在第Id個Q矩陣中臨時量化參數(shù)QP_precodelQP小于QMatrixThreshold[Id],則前進(jìn) 到步驟ST25,確定為當(dāng)前的Q矩陣并結(jié)束處理。在步驟ST22中,碼量控制部40在第Id個Q矩陣中臨時量化參數(shù)QP_preCOdel大 于等于QMatrixThreshold[Id],則在步驟ST23中增加Id并前進(jìn)到步驟ST24。在步驟ST24中,碼量控制部40判斷Id是否為變換使用的Q矩陣的第 NumOfQMatrixId個。這里,如果不是Id = NumOf QMatr ixld-l,則返回到步驟ST22,檢查下 一個Q矩陣。另外,如果Id = NumOfQMatrixId-1,則前進(jìn)到步驟ST25,選擇最陡的Q矩陣 (ID為NumOf QMatr ixld-l的Q矩陣),并結(jié)束處理。通過這樣的處理,碼量控制部40針對每個Q矩陣設(shè)定可取的最大的量化參數(shù)QP, 從傾斜平緩的Q矩陣開始依次判斷臨時量化參數(shù)QP_preCOdel是否處于范圍內(nèi)。然后,如 果處于范圍內(nèi),則使用該臨時量化參數(shù)QP_preC0del。在圖2的步驟ST7中,碼量控制部40確定Q矩陣和臨時量化參數(shù)QP_preC0del。 碼量控制部40通過上述處理來確定Q矩陣,并通過確定了該Q矩陣,來確定臨時量化參數(shù) QP_precodel0這樣,通過選擇Q矩陣,來限定可取的量化參數(shù)QP的范圍,能夠減小在第一 預(yù)編碼中核查生成碼量的量化參數(shù)QP的范圍。這就成為了在第一預(yù)編碼中被確定了的Q
12矩陣和臨時量化參數(shù)QP_precodel。接著,在步驟ST8 步驟ST10中執(zhí)行第二預(yù)編碼。第二預(yù)編碼的目的可以認(rèn)為是 基于第一預(yù)編碼的臨時量化參數(shù)QP_preCOdel產(chǎn)生了誤差,因此通過再次進(jìn)行預(yù)編碼,來 提高基本量化參數(shù)的估計精度。S卩,通過利用臨時量化參數(shù)QP_preCOdel的周邊的量化參數(shù)QP來再次進(jìn)行預(yù)編 碼,由此可以計算出生成碼量,所述臨時量化參數(shù)QP_preC0del是通過第一預(yù)編碼而粗略 估計出的基本量化參數(shù)。另外,比較計算出的生成碼量和目標(biāo)碼量,將生成碼量為目標(biāo)碼量 以下且最接近于目標(biāo)碼量的量化參數(shù)QP設(shè)為最優(yōu)量化參數(shù)QP_preC0de2。熵碼長計算使用 與主編碼相同的方式(CABAC或CAVLC)。在步驟ST8中,第二預(yù)編碼部30執(zhí)行畫面內(nèi)預(yù)測和DCT計算。第二預(yù)編碼部 30的畫面內(nèi)預(yù)測處理部31使用通過執(zhí)行第一預(yù)編碼等而被確定了的臨時量化參數(shù)QP_ preC0del、Q矩陣、活動性組來執(zhí)行畫面內(nèi)預(yù)測處理。另外,第二預(yù)編碼部30的DCT部32執(zhí) 行DCT計算。在該第二預(yù)編碼中,在畫面內(nèi)預(yù)測中使用的局部解碼圖像共用利用臨時量化 參數(shù)QP_preCOdel量化了的數(shù)據(jù),所述臨時量化參數(shù)QP_preCOdel通過執(zhí)行第一預(yù)編碼等 而被確定。在步驟ST9中,第二預(yù)編碼部30計算出基于第二預(yù)編碼的碼量。第二預(yù)編碼部30 利用以臨時量化參數(shù)QP_preCOdel為基準(zhǔn)的第二范圍內(nèi)的各量化參數(shù)QP來計算碼量。艮口, 對量化部33-1賦予臨時量化參數(shù)QP_preCOdel,并計算出量化參數(shù)QP_preC0del的生成碼 量。另外,對量化部33-2賦予量化參數(shù)QP_preC0del-l,對量化部33_3賦予量化參數(shù)QP_ precodel+1,并計算出量化參數(shù)QP_precodel_l、QP_precodel+l的生成碼量。在步驟ST10中,碼量控制部40確定最優(yōu)量化參數(shù)QP_preC0de2。碼量控制部40通 過比較由第二預(yù)編碼部30得到的生成碼量和目標(biāo)碼量來確定最優(yōu)量化參數(shù)QP_preC0de2。 即,第二預(yù)編碼部30在臨時量化參數(shù)QP_precodel、QP_precodel-l、QP_precodel+l中將生 成碼量為目標(biāo)碼量以下且最接近于目標(biāo)碼量的量化參數(shù)設(shè)為最優(yōu)量化參數(shù)QP_preC0de2。在步驟ST11中編碼部50執(zhí)行主編碼。編碼部50使用通過第二預(yù)編碼而確定了 的最優(yōu)量化參數(shù)QP_preCOde2、通過第一預(yù)編碼而確定了的Q矩陣、活動性組來執(zhí)行編碼。 這樣結(jié)束與編碼有關(guān)的一連串的處理。<4.臨時量化參數(shù)的確定處理〉碼量控制部40使用利用由第一預(yù)編碼部20離散地選擇出的量化參數(shù)QP執(zhí)行預(yù) 編碼而得到的生成碼量來執(zhí)行插值處理,并計算出未被選擇的量化參數(shù)QP的生成碼量。另 外,碼量控制部40將選擇出的量化參數(shù)的生成碼量和通過插值處理而計算出的生成碼量 與目標(biāo)碼量進(jìn)行比較,來確定與目標(biāo)碼量對應(yīng)的臨時量化參數(shù)QP_preC0del。圖4是表示臨時量化參數(shù)的確定處理的流程圖。另外,圖5是用于說明臨時量化 參數(shù)的確定處理的圖。在圖4的步驟ST31中,第一預(yù)編碼部20執(zhí)行生成碼量的計算。第 一預(yù)編碼部20利用離散選擇出的每個量化參數(shù)QP來執(zhí)行預(yù)編碼,計算生成碼量并前進(jìn)到 步驟ST32。例如在圖5的(A)中,如用黑圓圈所示的那樣,針對離散地選擇出的量化參數(shù) QP計算出生成碼量。在步驟ST32中,碼量控制部40判別量化參數(shù)范圍WQ并前進(jìn)到步驟ST33。碼量控 制部40比較目標(biāo)碼量“Target_bitS”和在步驟ST31中計算出的生成碼量,并判別設(shè)為目標(biāo)的基本量化參數(shù)是否處于通過計算出生成碼量后的量化參數(shù)QP所示的某個范圍內(nèi)。碼量控制部40比較例如在步驟ST31中計算出的碼量和目標(biāo)碼量,如圖5的(B) 所示,判別“QP-a”,該“QP-a”是計算出的生成碼量為目標(biāo)碼量“Target_bitS”以上且最接 近于目標(biāo)碼量的量化參數(shù)。另外,碼量控制部40判別“QP-b”,該“QP-b”是計算出的生成碼 量小于目標(biāo)碼量“Target_bitS”且最接近于目標(biāo)碼量的量化參數(shù)。并且,碼量控制部40將 判別出的量化參數(shù)“QP-a” “QP-b”的范圍作為包含設(shè)為目標(biāo)的量化參數(shù)的量化參數(shù)范圍 WQ。在步驟ST33中,碼量控制部40在量化參數(shù)范圍WQ中針對被間拔的量化參數(shù)QP 通過插值處理計算出生成碼量。碼量控制部40針對量化參數(shù)范圍WQ、S卩如圖5的(C)所示 “ QP-a ” “ QP-b ”的范圍內(nèi)的各量化參數(shù)QP,通過插值處理計算出生成碼量。這里,碼量控 制部40根據(jù)通過插值處理計算生成碼量的量化參數(shù)的位置來改變插值方法。另外,后面詳 細(xì)敘述插值處理。在步驟ST34中,碼量控制部40確定臨時量化參數(shù)QP_preCOdel。碼量控制部40 將在步驟ST31中計算出的生成碼量和在步驟ST33中通過插值處理而得到的生成碼量與目 標(biāo)碼量進(jìn)行比較。另外,碼量控制部40如圖5的(D)所示,將生成碼量為目標(biāo)碼量以下且 最接近于目標(biāo)碼量的量化參數(shù)QP設(shè)為臨時量化參數(shù)QP_preC0del。<5 插值處理〉接著,對插值處理進(jìn)行說明。碼量控制部40比較利用被選擇出的量化參數(shù)的生成 碼量和目標(biāo)碼量,并判別通過插值處理計算生成碼量的量化參數(shù)。另外,碼量控制部40根 據(jù)通過插值處理計算生成碼量的量化參數(shù)的位置來改變插值方法。碼量控制部40根據(jù)量 化參數(shù)的位置例如執(zhí)行使用了二次曲線的插值和使用了生成碼量的變化率的插值中的某 一個。另外,在使用了二次曲線的插值中,執(zhí)行使用了量化參數(shù)QP或平均量化參數(shù)AVG_QP 的插值。圖6示出了表示插值處理的變換動作的流程圖。在步驟ST41中,碼量控制部40判別要插值的量化參數(shù)。碼量控制部40比較被選 擇出的量化參數(shù)的生成碼量和目標(biāo)碼量,將其生成碼量夾著目標(biāo)碼量的兩個被選擇出的量 化參數(shù)QP之間的量化參數(shù)判別為要插值的量化參數(shù)。另外,碼量控制部40在目標(biāo)碼量比最 小的被選擇出的量化參數(shù)QP的生成碼量大時將比最小的被選擇出的量化參數(shù)QP小的量化 參數(shù)判別為要插值的量化參數(shù)。另外,碼量控制部40在目標(biāo)碼量比最大的被選擇出的量化 參數(shù)QP的生成碼量小時,將比最大的被選擇出的量化參數(shù)QP大的量化參數(shù)判別為要插值 的量化參數(shù)。碼量控制部40通過執(zhí)行這樣的處理,能夠高效率地選擇要插值的量化參數(shù), 而不需要針對未被選擇的全部的量化參數(shù)QP執(zhí)行插值。在步驟ST42中,碼量控制部40判別要插值的量化參數(shù)的位置是否是由被選擇出 的量化參數(shù)QP夾持的位置。當(dāng)通過插值處理計算生成碼量的量化參數(shù)的位置是由在第一 預(yù)編碼部20中選擇出的量化參數(shù)QP夾持的位置時,碼量控制部40前進(jìn)到步驟ST43。另外, 當(dāng)通過插值處理計算生成碼量的量化參數(shù)的位置不是由在第一預(yù)編碼部20中選擇出的量 化參數(shù)QP夾持的位置時,碼量控制部40前進(jìn)到步驟ST46。在步驟ST43中,碼量控制部40判別要插值的量化參數(shù)的位置是否處于在相加了 與活動性相應(yīng)的偏移時被限制在預(yù)先設(shè)定的范圍內(nèi)的量化參數(shù)的區(qū)域內(nèi)。當(dāng)要插值的量 化參數(shù)的位置未處于被限制在預(yù)先設(shè)定的范圍內(nèi)的區(qū)域內(nèi)時,碼量控制部40前進(jìn)到步驟ST44,當(dāng)處于被限制的區(qū)域內(nèi)時,前進(jìn)到步驟ST45。這里,當(dāng)對圖像的基本量化參數(shù)(BaseQP)相加依賴于活動性組的偏移 (AdaptQpDelta[activity_group])來求出宏塊的量化參數(shù)MB_QP時,通過相加偏移,會產(chǎn) 生量化參數(shù)被限制在預(yù)先設(shè)定的范圍內(nèi)的情況。例如,對于基本量化參數(shù)(BaseQP),例如如 上所述將 NumOfActivityGroup 設(shè)為 “ 13”,將偏移設(shè)為 “_6、-5、-4、-3、-2、_1、0、1、2、3、4、 5、6”。另外,將量化參數(shù)的范圍設(shè)為“0 51”。在此情況下,在基本量化參數(shù)(BaseQP)為 “0 6”、“45 51”的范圍中,當(dāng)相加了偏移時,量化參數(shù)被限制在預(yù)先設(shè)定的“0 51”的 范圍內(nèi)。因此,當(dāng)要插值的量化參數(shù)的位置未處于“0 6”、“45 51”的區(qū)域內(nèi)時,前進(jìn)到 步驟ST44,當(dāng)處于“0 6”、“45 51”的區(qū)域內(nèi)時,前進(jìn)到步驟ST45。在步驟ST44中,碼量控制部40執(zhí)行利用了二次曲線的插值,并計算量化參數(shù)QP 的生成碼量。碼量控制部40判別夾持要插值的量化參數(shù)的位置的兩個被選擇出的量化參 數(shù)QP、和兩個被選擇出的量化參數(shù)QP隨后的值大(或者隨后的值小)的被選擇出的量化參 數(shù)QP。接著,碼量控制部40根據(jù)判別出的三個量化參數(shù)QP的值和該值的生成碼量來確定 二次曲線。進(jìn)而,碼量控制部40使用確定了的二次曲線來計算要插值的量化參數(shù)的生成碼 量,并結(jié)束插值處理。 在步驟ST45中,碼量控制部40執(zhí)行使用了 二次曲線的插值,并執(zhí)行平均量化參數(shù) AVG_QP的生成碼量的計算。碼量控制部40將夾持要插值的量化參數(shù)的位置的兩個被選擇 出的量化參數(shù)QP、和兩個被選擇出的量化參數(shù)QP隨后的值大(或者隨后的值小)的被選擇 出的量化參數(shù)QP變換為平均量化參數(shù)AVG_QP。另外,將要插值的量化參數(shù)變換為平均量化 參數(shù)AVG_QP。接著,碼量控制部40根據(jù)三個平均量化參數(shù)AVG_QP的值和該值的生成碼量 來確定二次曲線。進(jìn)而,碼量控制部40使用確定了的二次曲線來計算要插值的平均量化參 數(shù)AVG_QP的生成碼量,并結(jié)束插值處理。在向平均量化參數(shù)AVG_QP的變換中,基于上述的式(1)來計算各活動性組的宏塊 的量化參數(shù)MB_QP。另外,當(dāng)量化參數(shù)MB_QP設(shè)為“0 ( MB_QP ( 51”的范圍并且根據(jù)式(1)計算出的 值超過“0 ( MB_QP ( 51”的范圍時,該值被削減到該范圍中。接著,對宏塊的量化參數(shù)MB_QP,如式(3)所示乘以活動性組所屬的宏塊數(shù)MB_ Nag,針對每個活動性組,計算出宏塊量化參數(shù)累積值SUM_QP_ag。SUM_QP_ag = MB_QPXMB_Nag... (3)另外,通過將每個活動性組的宏塊量化參數(shù)累積值SUM_QP_ag的總和除以圖像內(nèi) 的總宏塊數(shù),能夠計算出平均值量化參數(shù)AVG_QP。這樣一來,能夠?qū)⒘炕瘏?shù)QP變換為平均量化參數(shù)AVG_QP。另外,平均值量化參 數(shù)表示執(zhí)行了基于活動性的偏移處理的每個宏塊的量化參數(shù)的平均值。圖7的(A)和(B)針對各種素材例示了量化參數(shù)和生成碼量的關(guān)系。另外,圖7 的(A)表示基本量化參數(shù)和生成碼量的關(guān)系,圖7的(B)表示平均量化參數(shù)和生成碼量的 關(guān)系。在基本量化參數(shù)和生成碼量的關(guān)系中,例如當(dāng)量化參數(shù)的位置處于“0 6”的區(qū)域 WR時,即使加上偏移,也會產(chǎn)生量化參數(shù)被限制在“0 51”的范圍內(nèi)的情況。因此,該區(qū)域 WR的特性會產(chǎn)生如圖7的(A)所示根據(jù)素材而不同的情況。例如,即使加上偏移,量化參數(shù) 也被限制在“0 51”的范圍內(nèi),即使量化參數(shù)小,也會產(chǎn)生生成碼量不變化的情況等。但是,如果使用平均量化參數(shù),則即使是在加上了偏移時的量化參數(shù)飽和的區(qū)域,也如圖7的 (B)所示,無論哪種素材均表現(xiàn)同樣的特性。因此,當(dāng)對加上了偏移時的量化參數(shù)飽和的區(qū) 域執(zhí)行使用了二次曲線的插值時,通過使用平均量化參數(shù),能夠提高插值精度。在步驟ST46中,碼量控制部40執(zhí)行使用了變化率的插值。碼量控制部40根據(jù)選 擇出的量化參數(shù)的生成碼量來計算出變化率,使用該計算出的變化率在用于變化率的計算 的量化參數(shù)的間隔中執(zhí)行插值。例如當(dāng)選擇出的量化參數(shù)的間隔為“1”時,碼量控制部40 根據(jù)該變化率、選擇出的量化參數(shù)和要插值的量化參數(shù)的間隔來計算出要插值的量化參數(shù) 的生成碼量,并結(jié)束插值處理。當(dāng)間隔比“1”大時,碼量控制部40使用在用于變化率的計 算的量化參數(shù)的間隔中執(zhí)行插值而得到的生成碼量,通過直線插值來計算出位于用于變化 率的計算的量化參數(shù)的間隔內(nèi)的量化參數(shù)的生成碼量。圖8表示通過插值處理計算生成碼量的量化參數(shù)的位置和插值方法的關(guān)系。另 外,圖8的黑圓圈表示通過第一預(yù)編碼部20選擇出的量化參數(shù)的生成碼量。當(dāng)通過插值處理計算生成碼量的量化參數(shù)的位置處于被通過第一預(yù)編碼部20選 擇出的量化參數(shù)夾持的位置時,執(zhí)行使用了二次曲線的插值。另外,當(dāng)包含設(shè)為目標(biāo)的基本 量化參數(shù)的量化參數(shù)范圍WQ處于通過第一預(yù)編碼部20選擇出的最小的量化參數(shù)以下的范 圍時,碼量控制部40執(zhí)行使用了變化率的插值。另外,當(dāng)包含設(shè)為目標(biāo)的基本量化參數(shù)的 量化參數(shù)范圍WQ處于通過第一預(yù)編碼部20選擇出的最大的量化參數(shù)以上的范圍時,碼量 控制部40執(zhí)行使用了變化率的插值。將在第一預(yù)編碼部20中被選擇出的量化參數(shù)QP例如如圖8所示設(shè)為“QP-pa”、 “QP-pb”、“QP-pC”、“QP-pd”、“QP-pe”、“QP-pf”。當(dāng)包含設(shè)為目標(biāo)的基本量化參數(shù)的量化參 數(shù)范圍WQ為“QP-pa” “QP-pb”時,碼量控制部40通過使用了二次曲線的插值來計算被 間拔的量化參數(shù)的生成碼量。另外,當(dāng)量化參數(shù)范圍WQ為“QP-pb” “QP-pc”、“QP-pc” “ QP-pd”、“ QP-pd” “ QP-pe ”、“ QP-pe ” “ QP_pf ”時,碼量控制部40通過使用了二次曲線 的插值來計算生成碼量。當(dāng)包含設(shè)為目標(biāo)的基本量化參數(shù)的量化參數(shù)范圍WQ處于“QP-pa” 以下的范圍時,碼量控制部40通過使用了變化率的插值來計算被間拔的量化參數(shù)的生成 碼量。當(dāng)包含設(shè)為目標(biāo)的基本量化參數(shù)的量化參數(shù)范圍WQ處于“QP-pf”以上的范圍時,碼 量控制部40通過使用了變化率的插值來計算被間拔的量化參數(shù)的生成碼量。<6.使用了二次曲線的插值〉圖9是用于說明通過使用了二次曲線的插值計算生成碼量的方法的圖。在使用了 二次曲線的插值中,依次使用通過第一預(yù)編碼部20選擇出的三個量化參數(shù)QP來執(zhí)行插值。 例如,將量化參數(shù)QP (或者平均值量化參數(shù)AVG_QP)的值為“Xa”時的生成碼量設(shè)為“Ya”, 將為“Xb”時的生成碼量設(shè)為“Yb”,將為“Xc”時的生成碼量設(shè)為“Yc”。此時,碼量控制部40 使用式(4)來計算量化參數(shù)QP(或者平均值量化參數(shù)AVG_QP)為“Xm”時的生成碼量“Ym”。Ym = Ya X (Xm_Xb) X (Xm_Xc) / (Xa_Xb) / (Xa_Xc) +Yb X (Xm-Xa) X (Xm_Xc) / (Xb_Xa) / (Xb_Xc) +Yc X (Xm-Xa) X (Xm_Xb) / (Xc_Xa) / (Xc_Xb)…(4)之后,判別為目標(biāo)碼量以下且最接近于目標(biāo)碼量的生成碼量,將與該判別出的生 成碼量對應(yīng)的量化參數(shù)QP設(shè)為臨時量化參數(shù)QP_preC0del。另外,當(dāng)使用平均量化參數(shù)AVG_QP時,判別為目標(biāo)碼量以下且最接近于目標(biāo)碼量的生成碼量,并選擇與該判別出的生成碼量對應(yīng)的平均量化參數(shù)。并且,判別被選擇出的平 均量化參數(shù)是否是變換了哪個量化參數(shù)QP的參數(shù),將判別出的量化參數(shù)QP設(shè)為臨時量化 參數(shù) QP_precodel0另外,圖10示出了表示使用了平均量化參數(shù)的臨時量化參數(shù)的確定處理的流程 圖。另外,圖11是用于說明使用了平均量化參數(shù)的臨時量化參數(shù)的確定處理的圖。在圖10 的步驟ST51中,第一預(yù)編碼部20執(zhí)行生成碼量的計算。第一預(yù)編碼部20針對離散地選擇 出的每個量化參數(shù)QP執(zhí)行預(yù)編碼,計算生成碼量并前進(jìn)到步驟ST52。例如在圖11的(A) 中,以黑圓圈所示,針對離散地選擇出的量化參數(shù)QP計算生成碼量。在步驟ST52中,碼量控制部40判別量化參數(shù)范圍WQ并前進(jìn)到步驟ST53。碼量控 制部40比較目標(biāo)碼量“Target_bitS”和在步驟ST51中計算出的生成碼量,并判別設(shè)為目 標(biāo)的量化參數(shù)QP是否處于通過計算出生成碼量的量化參數(shù)QP表示的某個范圍內(nèi)。碼量控制部40比較例如在步驟ST51中計算出的碼量和目標(biāo)碼量,如圖11的(B) 所示,判別“QP-a”,該“QP-a”是計算出的生成碼量為目標(biāo)碼量“Target_bitS”以上且最接 近于目標(biāo)碼量的量化參數(shù)。并且,碼量控制部40判別“QP-b”,該“QP-b”是計算出的生成碼 量小于目標(biāo)碼量“Target_bitS”且最接近于目標(biāo)碼量的量化參數(shù)。并且,碼量控制部40將 判別出的量化參數(shù)“QP-a” “QP-b”的范圍設(shè)為包含設(shè)為目標(biāo)的量化參數(shù)的量化參數(shù)范圍 WQ。在步驟ST53中,碼量控制部40在量化參數(shù)范圍WQ中針對被間拔的量化參數(shù)QP, 如以圖6的步驟ST45所示,通過使用了平均量化參數(shù)的插值處理來計算生成碼量。碼量控 制部40將量化參數(shù)范圍WQ的量化參數(shù)以及用于插值的量化參數(shù)變換為平均量化參數(shù)。例 如,將量化參數(shù)QP-a、QP_b以及“QP-a” “QP_b”的范圍內(nèi)的量化參數(shù)QP變換為平均量化 參數(shù)AVG_QP。另外,針對“QP-a” “QP-b”的范圍內(nèi)的變換后的平均量化參數(shù)AVG_QP,如 以圖11的(C)的白圓圈所示,通過插值處理計算出生成碼量。在步驟ST54中,碼量控制部40確定臨時量化參數(shù)QP_preCOdel。碼量控制部40 將在步驟ST51中計算出的生成碼量和在步驟ST53中通過插值處理得到的生成碼量與目標(biāo) 碼量進(jìn)行比較。另外,如圖11的(D)所示,碼量控制部40將生成碼量為目標(biāo)碼量以下且最 接近于目標(biāo)碼量的平均量化參數(shù)AVG_QP設(shè)為臨時平均量化參數(shù)ACV_QP_prec0del。并且, 判別臨時平均量化參數(shù)ACV_QP_prec0del是否是變換了某個量化參數(shù)QP的參數(shù),并將判別 出的量化參數(shù)設(shè)為臨時量化參數(shù)QP_preC0del。這樣,如果執(zhí)行使用了二次曲線的插值,則與現(xiàn)有的直線插值相比能夠提高精度。 即,以預(yù)編碼預(yù)測碼量的素材不限于原圖像,也可以使用執(zhí)行了編碼和解碼的圖像(以下 稱為“再編碼素材”)。一般來說,已知在通過MPEG和AVC執(zhí)行了編碼和解碼的再編碼素材 等的情況下,量化參數(shù)QP和碼量的關(guān)系不會成為平滑的變化,如圖12所示表現(xiàn)出曲線成為 階梯狀的特性。圖13在再編碼素材等的編碼中示出了直線插值和使用了二次曲線的插值。另外, 在圖13中,直線插值以虛線示出,二次曲線以實線示出。當(dāng)通過直線插值計算生成碼量時, 對實際的生成碼量的誤差有可能變大。但是,如果使用二次曲線,則對實際的生成碼量的誤 差變小,與執(zhí)行直線插值的情況相比能夠提高精度。<8.基于變化率的插值〉
17
碼量控制部40在使用了生成碼量的變化率的插值中根據(jù)選擇出的量化參數(shù)的生 成碼量來計算變化率,使用該計算出的變化率在用于變化率的計算的量化參數(shù)的間隔中執(zhí) 行插值。圖14示出使用了增加率的插值方法。該插值處理是用于目標(biāo)碼量比由第一預(yù)編 碼部20計算出的碼量小、用作插值處理的基準(zhǔn)點的QP之間的差為1的情況下的處理。另 外,例如將量化參數(shù)QP為“X0”時的碼量設(shè)為“Y0”,將量化參數(shù)QP為“XI”時的碼量設(shè)為 “Y1”。碼量控制部40根據(jù)由第一預(yù)編碼部20計算出的碼量基于式(5)來計算變化率RT。RT = (Y1_Y0)/Y0... (5)碼量控制部40根據(jù)計算出的生成碼量和由式(5)求出的變化率RT基于式(6)來 計算比計算該生成碼量的量化參數(shù)QP大“1”的量化參數(shù)QP的生成碼量。另外,在式(6)中, 將計算生成碼量的量化參數(shù)QP為“Xp”時的生成碼量設(shè)為“Yp”,將量化參數(shù)QP為比“Xp” 大“ 1,,的"Xp+1 ”時的碼量設(shè)為‘‘Yp+1 ”。Yp+1 = YpX (1+RT)…(6)這樣一來,對于值大于計算生成碼量的量化參數(shù)QP的量化參數(shù)QP,基于式(6)依 次執(zhí)行碼量的計算。例如,量化參數(shù)QP為比“XI”大“ 1 ”的“X2”時的生成碼量“Y2”根據(jù) 式(6)成為“Y2 = Y1XY1/Y0”。另夕卜,量化參數(shù)QP為比“XI”大“2”的“X3”時的生成碼量 “Y3” 根據(jù)式(6)成為 “Y3 = Y2XY1/Y0”。之后,當(dāng)計算出的碼量為目標(biāo)碼量以下時,將此時的量化參數(shù)QP設(shè)為臨時量化參 數(shù)QP_PreC0del。例如,在圖14中,當(dāng)量化參數(shù)QP為“X4”時,計算出的生成碼量為目標(biāo)碼 量以下,因此將作為此時的量化參數(shù)QP的“X4”確定為臨時量化參數(shù)QP_preC0del。圖15示出了使用增加率的其他的插值方法。該插值處理是用于目標(biāo)碼量比由第 一預(yù)編碼部20計算出的生成碼量大、用作插值處理的基準(zhǔn)點的量化參數(shù)QP之間的差為1 的情況的處理。另外,例如將量化參數(shù)QP為“X0”時的生成碼量設(shè)為“Y0”,將量化參數(shù)QP 為“XI”時的生成碼量設(shè)為“Y1”。碼量控制部40根據(jù)由第一預(yù)編碼部20計算出的生成碼 量基于式(7)來計算變化率RT。RT = (Y0-Y1)/Y1 …(7)碼量控制部40根據(jù)計算出的生成碼量和由式(7)求出的變化率RT基于式(8) 來計算比計算出該生成碼量的量化參數(shù)QP小“1”的量化參數(shù)QP的生成碼量。另外,在式 (8)中,將計算生成碼量的量化參數(shù)QP為“Xq”時的生成碼量設(shè)為“Yq”,將量化參數(shù)QP為 比“Xq”小“ 1,,的"Xq-1,,時的生成碼量設(shè)為"Yq-1 ”。Yq-1 = YqX (1+RT)…(8)這樣一來,對于值小于計算出生成碼量的量化參數(shù)QP的量化參數(shù)QP,基于式(8) 依次執(zhí)行碼量的計算。例如,量化參數(shù)QP為比“X0”小“1”的“X-1”時的生成碼量“Y-1” 根據(jù)式(8)成為“Y-1 = Y0XY0/Y1”。另夕卜,量化參數(shù)QP為比“X0”小“2”的“X-2”時的生 成碼量 “Y-2” 根據(jù)式(8)成為 “Y-2 = Y-1XY0/Y1,,。之后,當(dāng)計算出的生成碼量變大超過了目標(biāo)碼量時,將比此時的量化參數(shù)QP大 “1”的值設(shè)為臨時量化參數(shù)QP_preCOdel。例如,在圖15中,當(dāng)量化參數(shù)QP為“X_3”時,計 算出的生成碼量變大超過目標(biāo)碼量,因此將比此時的量化參數(shù)QP大“1”的值“X-2”設(shè)為臨 時量化參數(shù)QP_precodel。
18
接著,對用于變化率的計算的量化參數(shù)的間隔大于“1”的情況進(jìn)行說明。在此情 況下,碼量控制部40使用在用于變化率的計算的量化參數(shù)的間隔中執(zhí)行插值而得到的生 成碼量通過直線插值來求出位于用于變化率的計算的量化參數(shù)的間隔內(nèi)的量化參數(shù)的生 成碼量。圖16是表示使用了量化參數(shù)間的差為1以外時的增加率的插值方法的圖。另外, 圖16示出了目標(biāo)碼量比由第一預(yù)編碼部20計算出的生成碼量小、用作插值處理的基準(zhǔn)點 的量化參數(shù)之間的差例如為“3”的情況。這里,將量化參數(shù)QP為“X0”時的生成碼量設(shè)為“Y0”,將量化參數(shù)QP為“X3”時的 生成碼量設(shè)為“Y3”。碼量控制部40根據(jù)由第一預(yù)編碼部20計算出的生成碼量基于式(9) 來計算變化率RT。RT = (Y3_Y0)/Y0... (9)碼量控制部40根據(jù)計算出的生成碼量和由式(9)求出的變化率RT基于式(10) 來計算比計算出該生成碼量的量化參數(shù)QP大“3”的量化參數(shù)QP的生成碼量。另外,在式 (10)中,將計算出生成碼量的量化參數(shù)QP為“Xp”時的生成碼量設(shè)為“Yp”,將量化參數(shù)QP 為比“Xp ”大“ 3,,的“Xp+3,,時的生成碼量設(shè)為“ Yp+3 ”。Yp+3 = YpX (1+RT)…(10)這樣一來,對于值比計算出生成碼量的量化參數(shù)QP大的量化參數(shù)QP,基于式(10) 在用于變化率的計算的量化參數(shù)的間隔中依次執(zhí)行碼量的計算。例如,量化參數(shù)QP為比 “X3”大“3”的“X6”時的生成碼量“Y6”根據(jù)式(10)成為“Y6 = Y3XY3/Y0”。另外,量化 參數(shù)QP為比“X3”大“6”的“X9”時的生成碼量“Y9”根據(jù)式(10)成為“Y9 = Y6XY3/Y0”。之后,當(dāng)計算出的生成碼量為目標(biāo)碼量以下時,使用量化參數(shù)QP為“&”和提前 “3”的“&-3”時的生成碼量執(zhí)行直線插值。根據(jù)該直線插值,通過式(11)、(12)計算位 于用于變化率的計算的量化參數(shù)的間隔內(nèi)的量化參數(shù)QP為“&-1”、“&-2”時的生成碼量 "Yr-1" “Yr-2”。Yr-1 = (Yr-Yr-3) / (Xr-Xr-3)X (Xr-l-Xr-3)+Yr-3— (11)
Yr-2 = (Yr-Yr-3) / (Xr-Xr-3)X (Xr-2-Xr-3) +Yr-3 …(12)碼量控制部40判別在計算出的生成碼量“Yr-3” “Yr”中為目標(biāo)碼量以下且最 接近于目標(biāo)碼量的生成碼量,將與該判別出的生成碼量對應(yīng)的量化參數(shù)QP設(shè)為臨時量化 參數(shù)QP_preCOdel。例如,在圖16中,生成碼量“Yr_3”相當(dāng)于“Y6”,“Yr”相當(dāng)于“Y9”,碼 量控制部40將“X8”確定為臨時量化參數(shù)QP_preC0del。圖17是表示使用了量化參數(shù)之間的差為1以外時的增加率的其他插值方法的圖。 另外,圖17示出了目標(biāo)碼量比由第一預(yù)編碼部20計算出的生成碼量大、用作插值處理的基 準(zhǔn)點的量化參數(shù)之間的差例如為“3”的情況。這里,將量化參數(shù)QP為“X0”時的生成碼量設(shè)為“Y0”,將量化參數(shù)QP為“X3”時 的生成碼量設(shè)為“Y3”。碼量控制部40根據(jù)由第一預(yù)編碼部20計算出的生成碼量基于式 (13)來計算變化率RT。RT = (Y0_Y3)/Y3... (13)
碼量控制部40根據(jù)計算出的生成碼量和由式(13)求出的變化率RT基于式(14) 來計算比計算出該生成碼量的量化參數(shù)QP小“3”的量化參數(shù)QP的生成碼量。另外,在式 (14)中,將計算生成碼量的量化參數(shù)QP為“Xq”時的生成碼量設(shè)為“Yq”,將量化參數(shù)QP為 比“Xq”小“3”的“Xq-3”時的生成碼量設(shè)為“Yq_3”。Yq-3 = YqX (1+RT)…(14)這樣一來,對于值比計算生成碼量的量化參數(shù)QP小的量化參數(shù)QP,基于式(14) 以用于變化率的計算的量化參數(shù)的間隔依次執(zhí)行生成碼量的計算。例如,量化參數(shù)QP為比 “X0”小“3”的“X-3”時的生成碼量“Y-3”根據(jù)式(14)成為“Y-3 = Y0XY0/Y3”。另外,量化 參數(shù)QP為比“X0”小“6”的“X-6”時的生成碼量“Y-6”根據(jù)式(14)成為“Y-6 = Y-3XY0/ Y3”。之后,當(dāng)計算出的生成碼量超過了目標(biāo)碼量時,使用量化參數(shù)QP為“Xs”和靠后 “3”的“Xs+3”時的生成碼量執(zhí)行直線插值。根據(jù)該直線插值,通過式(15)、(16)計算位 于用于變化率的計算的量化參數(shù)的間隔內(nèi)的量化參數(shù)QP為“Xs+l”、“Xs+2”時的生成碼量 “Ys+1” “Ys+2”。Ys+1 = (Ys+3-Ys)/(Xs+3-Xs)X (Xs+l_Xs)+Ys... (15)Ys+2 = (Ys+3-Ys) / (Xs+3-Xs)X (Xs+2_Xs)+Ys... (16)碼量控制部40判別在計算出的生成碼量“Ys” “Ys+3”中為目標(biāo)碼量以下且最 接近于目標(biāo)碼量的生成碼量。另外,碼量控制部40將與被判別出的生成碼量對應(yīng)的量化參 數(shù)QP設(shè)為臨時量化參數(shù)QP_prec0del。例如,在圖17中,生成碼量“Ys”相當(dāng)于“Y_3”,生 成碼量“Ys+3”相當(dāng)于“Y0”,碼量控制部40將“X-1,,確定為臨時量化參數(shù)QP_preC0del。另外,量化參數(shù)QP在值小時量化步長的間隔窄,在值大時量化步長的間隔寬。另 外,如果為了減小畫質(zhì)的劣化而提高傳送率并加大目標(biāo)碼量,則在設(shè)為期望的目標(biāo)碼量的 編碼中,量化參數(shù)QP的值變小。因此,第一預(yù)編碼部20將量化參數(shù)QP的最小值包含在要 選擇的量化參數(shù)之中。例如,如以圖5的黑圓圈所示的那樣選擇量化參數(shù)。這樣一來,僅在 量化參數(shù)QP的值大的情況下,執(zhí)行使用了變化率的插值,在其他的情況下執(zhí)行使用了二次 曲線的插值。因此,與現(xiàn)有的直線插值相比,能夠高精度地確定臨時量化參數(shù)QP_preCOdel。<8.最優(yōu)量化參數(shù)的確定處理〉碼量控制部40將由第一預(yù)編碼部20執(zhí)行預(yù)編碼而得到的生成碼量與目標(biāo)碼量進(jìn) 行比較,來確定與目標(biāo)碼量對應(yīng)的最優(yōu)量化參數(shù)QP_preC0de2。這里,將臨時量化參數(shù)QP_precodel的生成碼量設(shè)為“Generated_bits (QP_ precodel) ”,將 QP_precodel_l 的生成碼量設(shè)為 “Generated_bits (QP_precodel_l) ”,將 QP_precodel+l的生成碼量設(shè)為“Generatedbits (QP_precodel+l) ”。另外,將目標(biāo)碼量設(shè) 為"Target_bits,,。在 Generated_bits(QP_precodel+l) ^ Target_bits ^ Generated_bits(QP_ precodel-1),,的情況下,將生成碼量為目標(biāo)碼量以下且最接近于目標(biāo)碼量的量化參數(shù)QP 作為最優(yōu)量化參數(shù)QP_preC0de2。在不是上述情況的情況下,如下所述,碼量控制部40根據(jù)第二預(yù)編碼的結(jié)果來求出針對量化參數(shù)QP的變化的生成碼量的變化率。這里,當(dāng)量化參數(shù)QP的值近時,可以認(rèn)為 變化率大致恒定,并預(yù)測在各量化參數(shù)QP下的生成碼量,將生成碼量為目標(biāo)碼量以下且最 接近于目標(biāo)碼量的量化參數(shù)QP確定為最優(yōu)量化參數(shù)QP_preC0de2。首先,根據(jù)第二預(yù)編碼的結(jié)果如式(17)、(18)、(19)那樣地來求出量化參數(shù)QP每 變化“ 1 ”、生成碼量變化百分之幾。DiffRatio_l = (Generated_bits(QP_precodel-l)-Generated_bits (QP_ precodel))/Generated_bits(QP_precodel)…(17)DiffRatio_2 = (Generated_bits (QP_precode 1) -Generated_bits (QP_ precodel+1))/Generated_bits(QP_precodel+l)…(18)DiffRatio = (DiffRatio_l+DiffRatio_2) /2— (19)接著,使用生成碼量的變化率DiffRatio來求出生成碼量。這里,如果將DeltaQp 設(shè)為求出的量化參數(shù)QP與臨時量化參數(shù)QP_preC0del之差的絕對值,則當(dāng)量化參數(shù)QP比 臨時量化參數(shù)QP_preCOdel小時,根據(jù)式(20)求出生成碼量。Generated_bits(QP) = Generated_bits(QP_precodel_l)X (1. 0+DiffRatio) “ (DeltaQp-1)…(20)當(dāng)量化參數(shù)QP比臨時量化參數(shù)QP_preCOdel大時,根據(jù)式(21)來求出生成碼量。Generated—bits(QP) = Generated—bits(QP_precodel+l)X (1. 0-DiffRatio) “ (DeltaQp-1) — (21)這樣一來,碼量控制部40將最接近于目標(biāo)碼量的量化參數(shù)QP確定為在本編碼中 使用的最優(yōu)量化參數(shù)QP_preC0de2。如上所述,本發(fā)明在第一和第二預(yù)編碼部中僅編碼和碼長計算部并行地執(zhí)行,共 用其他的處理要素,由此能夠削減電路規(guī)模。另外,在第一預(yù)編碼中,利用大范圍的量化參 數(shù)QP來執(zhí)行降低精度抑制了電路規(guī)模和處理負(fù)載的并行預(yù)編碼,并粗略估計實現(xiàn)目標(biāo)碼 量的基本量化參數(shù)。在第二預(yù)編碼中,利用小范圍執(zhí)行提高了精度的并行預(yù)編碼,確定在本 編碼中使用的基本量化參數(shù)。這樣一來,能夠提高圖像編碼的精度并且減輕處理負(fù)載。并且,在粗略估計基本量化參數(shù)的處理中,根據(jù)在第一預(yù)編碼中選擇出的量化參 數(shù)的生成碼量通過插值處理計算被間拔的量化參數(shù)的生成碼量。另外,根據(jù)計算生成碼量 的量化參數(shù)的位置來改變在插值處理中使用的插值方法。因此,與利用一個插值方法執(zhí)行 插值處理的情況相比,能夠提高插值處理的精度。即,作為粗略估計出的基本量化參數(shù)的臨 時量化參數(shù)QP_preC0del的精度變高,能夠?qū)⒂糜诒揪幋a的基本量化參數(shù)設(shè)為最優(yōu)量化參 數(shù)。因此,能夠在不執(zhí)行畫面內(nèi)反饋控制的情況下使生成碼量與賦予一個圖像的目標(biāo) 碼量吻合。由此,能夠去除由于反饋參數(shù)的不適當(dāng)?shù)某跏贾刀鸬谋撞?、不適當(dāng)?shù)哪繕?biāo)碼 量分配等反饋控制的問題。結(jié)果,能夠使生成碼量與目標(biāo)碼量一致,并確定考慮了視覺特性 的碼量分配、即量化參數(shù)。另外,也可以通過計算機裝置來實現(xiàn)本發(fā)明的圖像編碼裝置以及圖像編碼方法。 在此情況下,使計算機裝置發(fā)揮如圖像編碼裝置那樣的功能的計算機程序例如能夠以計算 機可讀的形式提供給可執(zhí)行各種程序代碼的通用計算機系統(tǒng)。例如,能夠通過光盤、磁盤或 半導(dǎo)體存儲器等存儲介質(zhì)或者網(wǎng)絡(luò)等通信介質(zhì)來提供計算機程序。這樣,通過以計算機可讀的形式提供計算機程序,能夠在計算機裝置上執(zhí)行與計算機程序相應(yīng)的處理,從而實現(xiàn) 上述的圖像編碼裝置的動作和圖像編碼方法。另外,本發(fā)明不應(yīng)該被解釋為限于上述的發(fā)明實施方式。該發(fā)明實施方式以例示 的方式公開了本發(fā)明,毋庸置疑,在不脫離本發(fā)明的主旨的范圍內(nèi)本領(lǐng)域技術(shù)人員能夠修 正或替換實施方式。即,為了判斷本發(fā)明的主旨,應(yīng)該參考權(quán)利要求書。產(chǎn)業(yè)上的可利用性在本發(fā)明的圖像編碼裝置和圖像編碼方法中,離散地選擇第一范圍內(nèi)的量化參 數(shù),并行地執(zhí)行該選擇出的量化參數(shù)的生成碼量的計算。另外,針對未被選擇的量化參數(shù), 通過插值處理來計算生成碼量,并將選擇出的量化參數(shù)的生成碼量和通過插值計算出的生 成碼量與目標(biāo)碼量進(jìn)行比較,來確定與目標(biāo)碼量對應(yīng)的臨時量化參數(shù)。在該插值處理中,根 據(jù)通過插值處理計算生成碼量的量化參數(shù)的位置來改變插值方法。另外,并行地執(zhí)行比第 一范圍小的、以臨時量化參數(shù)為基準(zhǔn)的第二范圍的量化參數(shù)的生成碼量的計算,并根據(jù)第 二范圍的量化參數(shù)的生成碼量與目標(biāo)碼量的比較來確定與目標(biāo)碼量對應(yīng)的最優(yōu)量化參數(shù)。 使用該最優(yōu)量化參數(shù)對圖像執(zhí)行編碼。這樣,根據(jù)通過插值處理計算生成碼量的量化參數(shù)的位置來改變插值方法,因此 能夠提高基于插值的生成碼量的預(yù)測精度,能夠容易地在不執(zhí)行畫面內(nèi)反饋控制的情況下 使生成碼量與賦予一個圖像的目標(biāo)碼量吻合。因此,適于記錄圖像的電子設(shè)備、例如攝像 機、記錄器或圖像編輯裝置等。
權(quán)利要求
一種圖像編碼裝置,包括第一編碼部,離散地選擇第一范圍內(nèi)的量化參數(shù),以并行地執(zhí)行該選擇出的量化參數(shù)的生成碼量的計算;第二編碼部,并行地執(zhí)行第二范圍內(nèi)的量化參數(shù)的生成碼量的計算,所述第二范圍是比所述第一范圍小的范圍,并且以臨時量化參數(shù)為基準(zhǔn);碼量控制部,針對未被所述第一編碼部選擇的量化參數(shù),通過插值處理計算生成碼量,將所述選擇出的量化參數(shù)的生成碼量和通過插值而計算出的生成碼量與目標(biāo)碼量進(jìn)行比較,來確定與目標(biāo)碼量對應(yīng)的所述臨時量化參數(shù);并且所述碼量控制部將由所述第二編碼部計算出的生成碼量與目標(biāo)碼量進(jìn)行比較,來確定與目標(biāo)碼量對應(yīng)的最優(yōu)量化參數(shù);以及第三編碼部,使用所述被確定了的最優(yōu)量化參數(shù)來對圖像進(jìn)行編碼;所述碼量控制部根據(jù)通過所述插值處理計算生成碼量的量化參數(shù)的位置值來改變插值方法。
2.如權(quán)利要求1所述的圖像編碼裝置,其中,所述碼量控制部通過比較被選擇出的量化參數(shù)的生成碼量和目標(biāo)碼量,來判別通過插 值處理計算生成碼量的量化參數(shù)。
3.如權(quán)利要求2所述的圖像編碼裝置,其中,所述碼量控制部根據(jù)通過所述插值處理計算生成碼量的量化參數(shù)是否是被由所述第 一編碼部選擇出的量化參數(shù)夾持的位置區(qū)域內(nèi)的值來改變插值方法。
4.如權(quán)利要求3所述的圖像編碼裝置,其中,當(dāng)通過所述插值處理計算生成碼量的量化參數(shù)是被由所述第一編碼部選擇出的量化 參數(shù)夾持的位置區(qū)域內(nèi)的值時,所述碼量控制部使用二次曲線來執(zhí)行插值。
5.如權(quán)利要求4所述的圖像編碼裝置,其中,還包括活動性計算部,該活動性計算部計算所述圖像的每個塊的活動性,當(dāng)將與所述活動性相應(yīng)的偏移加到所述量化參數(shù)中來執(zhí)行生成碼量的計算時,如果與 所述目標(biāo)碼量對應(yīng)的所述臨時量化參數(shù)處于在相加了所述偏移時被限制在預(yù)先設(shè)定的范 圍內(nèi)的量化參數(shù)的區(qū)域內(nèi),則所述碼量控制部將所述量化參數(shù)變換成平均量化參數(shù),并計 算平均量化參數(shù)的生成碼量。
6.如權(quán)利要求3所述的圖像編碼裝置,其中,當(dāng)通過所述插值處理計算生成碼量的量化參數(shù)不是被由所述第一編碼部選擇出的量 化參數(shù)夾持的位置區(qū)域內(nèi)的值時,所述碼量控制部使用由所述第一編碼部計算出的生成碼 量的變化率來執(zhí)行插值。
7.如權(quán)利要求6所述的圖像編碼裝置,其中,在使用了所述生成碼量的變化率的插值中,根據(jù)選擇出的量化參數(shù)的生成碼量來計算 變化率,并使用該計算出的變化率在用于該變化率的計算的量化參數(shù)的間隔中執(zhí)行插值。
8.如權(quán)利要求7所述的圖像編碼裝置,其中,在使用了所述生成碼量的變化率的插值中,當(dāng)用于所述變化率的計算的量化參數(shù)的間 隔大于1時,使用在用于所述變化率的計算的量化參數(shù)的間隔中執(zhí)行插值而得到的生成碼 量,通過直線插值來求出位于用于所述變化率的計算的量化參數(shù)的區(qū)域的間隔內(nèi)的量化參 數(shù)的生成碼量。
9. 一種圖像編碼方法,包括以下步驟在第一編碼部中,離散地選擇第一范圍內(nèi)的量化參數(shù),以并行地執(zhí)行該選擇出的量化 參數(shù)的生成碼量的計算;在碼量控制部中,針對未被所述第一編碼部選擇的量化參數(shù),通過插值處理計算生成 碼量,將所述選擇出的量化參數(shù)的生成碼量和通過插值而計算出的生成碼量與目標(biāo)碼量進(jìn) 行比較,來確定與目標(biāo)碼量對應(yīng)的臨時量化參數(shù);在第二編碼部中,并行地執(zhí)行第二范圍內(nèi)的量化參數(shù)的生成碼量的計算,所述第二范 圍是比所述第一范圍小的范圍,并且以所述臨時量化參數(shù)為基準(zhǔn);在所述碼量控制部中,將由所述第二編碼部計算出的生成碼量與目標(biāo)碼量進(jìn)行比較, 來確定與目標(biāo)碼量對應(yīng)的最優(yōu)量化參數(shù);以及在第三編碼部中,使用所述最優(yōu)量化參數(shù)來對圖像進(jìn)行編碼; 在所述碼量控制部中的所述插值處理中,根據(jù)通過所述插值處理計算生成碼量的量化 參數(shù)的位置值來改變插值方法。
全文摘要
本發(fā)明提供一種圖像編碼裝置和圖像編碼方法,能夠容易地使生成碼量與一個圖像的目標(biāo)碼量吻合。第一預(yù)編碼部(20)利用離散地選擇出的量化參數(shù)并行地執(zhí)行生成碼量的計算。碼量控制部(40)根據(jù)未被選擇的量化參數(shù)的位置值來改變插值方法,使用由第一預(yù)編碼部(20)得到的生成碼量來執(zhí)行插值處理。通過將針對各量化參數(shù)得到的生成碼量與目標(biāo)碼量進(jìn)行比較來確定臨時量化參數(shù)。預(yù)編碼部(30)并行地執(zhí)行以臨時量化參數(shù)為基準(zhǔn)的第二范圍的量化參數(shù)的生成碼量的計算。碼量控制部(40)將由預(yù)編碼部(30)計算出的生成碼量與目標(biāo)碼量進(jìn)行比較,來確定最優(yōu)量化參數(shù)。編碼部(50)使用最優(yōu)量化參數(shù)對圖像進(jìn)行編碼。
文檔編號H04N7/50GK101867811SQ201010145638
公開日2010年10月20日 申請日期2010年4月9日 優(yōu)先權(quán)日2009年4月16日
發(fā)明者柴田正二郎, 渕江孝明, 高橋加洲 申請人:索尼公司