視頻解碼器、視頻編碼器、視頻解碼方法以及視頻編碼方法
【專利摘要】一種對編碼流進(jìn)行解碼的視頻解碼器,包括:并行熵解碼部,用于對塊行中的塊的流并行地熵解碼;并行QP預(yù)測部,用于并行地計算塊行中的塊的預(yù)測值;以及并行解碼處理部,用于并行地產(chǎn)生塊行中的塊的解碼像素,利用由并行熵解碼部所解碼的數(shù)據(jù)和預(yù)測值來獲得解碼像素。當(dāng)以N個塊行為單位并行地執(zhí)行計算處理時,通過參考與處理塊相對應(yīng)的已處理的塊,對比第K塊行中的處理塊在水平位置上在前至少一個塊的第(K–1)塊行中的處理塊執(zhí)行處理,以計算該處理塊的預(yù)測值。
【專利說明】視頻解碼器、視頻編碼器、視頻解碼方法以及視頻編碼方法
【技術(shù)領(lǐng)域】
[0001] 本文所討論的實(shí)施方式涉及視頻解碼器、視頻編碼器、視頻解碼方法以及視頻編 碼方法。
【背景技術(shù)】
[0002] 近來的視頻編碼技術(shù)涉及將圖像劃分成塊、對每個塊中所包含的像素進(jìn)行預(yù)測以 及對預(yù)測差異進(jìn)行編碼以實(shí)現(xiàn)高壓縮率。在該技術(shù)中,用于根據(jù)經(jīng)歷編碼的畫面內(nèi)的像素 來形成預(yù)測像素的預(yù)測模式稱為"幀內(nèi)預(yù)測",用于根據(jù)稱為"運(yùn)動補(bǔ)償"的在先編碼的參考 圖像來形成預(yù)測像素的預(yù)測模式稱為"幀間預(yù)測"。
[0003] 在視頻編碼器中,幀間預(yù)測用包括二維坐標(biāo)數(shù)據(jù)(包括水平分量和堅(jiān)直分量)的 運(yùn)動矢量來表示稱為預(yù)測像素的區(qū)域,并且對運(yùn)動矢量和像素的預(yù)測差異數(shù)據(jù)進(jìn)行編碼。 為了抑制運(yùn)動矢量的編碼量,根據(jù)與經(jīng)歷編碼的塊相鄰的塊的運(yùn)動矢量來產(chǎn)生預(yù)測矢量, 并且對運(yùn)動矢量與預(yù)測矢量之間的差異矢量進(jìn)行編碼。
[0004] 在動態(tài)圖像專家組(MPEG)-4AVC/H. 264(下文中還稱為"H. 264")中,其是典型由 高效視頻編碼(HEVC)表示的當(dāng)前配置視頻編碼標(biāo)準(zhǔn),將地址以光柵順序分配給所劃分的 塊中的每個,并且塊的處理順序與地址順序相符。
[0005] 在視頻編碼-解碼過程中,通常每秒處理大量的像素。特別地,運(yùn)動補(bǔ)償或正交變 換會需要較高的計算性能,因此,優(yōu)選的會是視頻編碼或解碼過程執(zhí)行并行處理。在視頻編 碼中,在用于以與上述預(yù)測矢量的計算類似的方式根據(jù)經(jīng)歷編碼的塊周邊的塊來計算各種 預(yù)測值的塊之間存在依賴關(guān)系。因此,對塊執(zhí)行并行處理會有困難。
[0006] 在不影響處理順序或塊之間的依賴關(guān)系的情況下對塊實(shí)施并行處理的方法可包 括:例如通過與塊行相對應(yīng)地移動每個處理塊(processing block)的水平位置來執(zhí)行并行 處理。
[0007] 在以下描述中,這樣的并行處理稱為"并行塊行處理"。接下來,描述對應(yīng)于兩個塊 行來執(zhí)行并行塊行處理的情況。
[0008] 為了執(zhí)行并行塊行處理,視頻處理設(shè)備包括單元1和單元2,兩者中的每個均配置 成獨(dú)立地處理相應(yīng)塊行。例如,單元1可配置成對奇數(shù)塊行進(jìn)行處理,單元2可配置成對偶 數(shù)塊行進(jìn)行處理。
[0009] 圖1是示出了并行塊行處理的示例的示意圖。如圖1中所示,根據(jù)單元2所處理 的第二塊行中的塊的水平地址,將單元1所處理的第一塊行中塊的水平地址移動兩個或更 多個塊。
[0010] 因此,當(dāng)專注于單元2所處理的處理塊X時,在處理塊X左側(cè)的塊A是已對其執(zhí)行 了處理的已處理塊。類似地,單元1所處理的塊B、塊C以及塊D是已處理塊。塊B在處理 塊X的左上側(cè),塊C在處理塊X的上方,塊D在處理塊X的右上側(cè)。塊X可以利用這些已處 理塊的編碼結(jié)果。
[0011] 例如,對偶數(shù)塊行的處理能夠無需等到對奇數(shù)塊行的處理結(jié)束就開始,因此,處理 塊X能夠?qū)嵤┡c處理諸如運(yùn)動預(yù)測或正交變換相關(guān)聯(lián)的并行處理。在上面的示例中,描述 了兩個塊行的并行處理;然而,并行處理的實(shí)施并不限于兩個塊行的并行處理。在對N個塊 線進(jìn)行并行處理的情況下,在視頻處理設(shè)備中,可將N個單元分配給N個塊行。
[0012] 注意,當(dāng)并行塊行處理作為程序來執(zhí)行時,處理單元可以是線程或中央處理器 (CPU)。
[0013] 根據(jù)H. 264,可通過以基于標(biāo)準(zhǔn)規(guī)范處理塊的順序來處理一系列輸出位,來執(zhí)行熵 編碼。因此,視頻處理設(shè)備臨時存儲前述并行塊行處理的結(jié)果,并且熵編碼器以基于標(biāo)準(zhǔn)規(guī) 范處理塊的順序,對所存儲的結(jié)果進(jìn)行編碼。
[0014] 通過對比,HEVC公開了用于在塊行之間插入一系列輸出位的技術(shù)。圖2是示出了 由HEVC中的熵處理部所執(zhí)行的并行塊行處理的示例的示意圖。如圖2中所示,可通過塊行 之間的并行處理來執(zhí)行熵編碼或解碼。
[0015] 相關(guān)現(xiàn)有技術(shù)文獻(xiàn):
[0016] 非專利文獻(xiàn) 1: "IS0/IEC 14496-10 (MPEG-4PartlO)/ITU-T Rec. H. 264" ;
[0017] 非專利文獻(xiàn) 2 :"Thomas Wiegand、Woo-Jin Han、Benjamin Bross、 Jens-Rainer 0hm> Gary J. Sul1ivan>^Working Draft5of High-Efficiency Video Coding" JCTVC-G1103, JCT-VC7th Meeting, December, 2011. " ;
[0018] 非專利文獻(xiàn) 3 :"HEVC reference software HM5· 0https://hevc. hhi. fraunhofer. de/svn/svn_HEVCSoftware/tags/HM_5· 0/,' ;
[0019] 非專利文獻(xiàn) 4 :"MPEG-2,Test Model5(TM5),Doc. IS0/IEC JTC1/SC29/WG11/ N0400, Test Model Editing Committee, Aprill993.,'。
[0020] 在混合編碼系統(tǒng)中,其是通過H. 264或HEVC所表示的運(yùn)動補(bǔ)償和正交變換(例 如,離散余弦變換(DCT))的組合,通過將圖像劃分成塊、產(chǎn)生塊的預(yù)測像素并且對原始像 素與預(yù)測像素之間的差異像素執(zhí)行諸如DCT的正交變換以量化正交變換的輸出系數(shù),來實(shí) 現(xiàn)壓縮。
[0021 ] 在此混合系統(tǒng)中,準(zhǔn)備了調(diào)節(jié)量化的精確性的量化參數(shù)(QP,quantization parameter),針對每個塊對QP值進(jìn)行編碼,從而控制信息的量。
[0022] 然而,在塊中的所有量化變換系數(shù)都是0的情況下,反量化的結(jié)果也都是0。因此, 對于解碼處理,可不需要QP值。在這種情況下,QP值是失效,并且不作為結(jié)果來編碼。
[0023] 在每個塊中產(chǎn)生QP值的預(yù)測值(下文中,稱為"QP預(yù)測值")。因此,當(dāng)處理塊的 QP值失效時,將每個塊的QP值設(shè)置為QP預(yù)測值。作為用于確定每個塊的QP值的方法,在 非專利文獻(xiàn)4中所公開的TM5中所利用的算法在本領(lǐng)域中是已知的。
[0024] 用于根據(jù)H. 264或HEVC對QP值進(jìn)行編碼的方法包括對處理塊的QP值與QP預(yù)測 值之間的差異值QP_DELTA進(jìn)行編碼。例如,QP預(yù)測值可以是QP值QP_prev,其是光柵順序 中處理塊的前一塊的QP值。QP_DELTA可以通過下列公式(1)來計算。
[0025] QP_DELTA = QP - QP_prev............... (1)
[0026] 視頻解碼器配置成對由視頻編碼器熵編碼的QP_DELTA進(jìn)行解碼,以通過下列公 式⑵恢復(fù)QP值。
[0027] QP = QP_DELTA+QP_prev............... (2)
[0028] 當(dāng)正處理畫面的處理塊(例如第一塊)不存在前一塊時,QP_prev可以是在第一 塊的處理之前確定的值。例如,根據(jù)Η. 264,畫面的第一塊的QP_prep分配有在稱為"片 (Slice) "的報頭信息中描述的片QP值。
[0029] 此外,根據(jù)H. 264或HEVC,可利用每個塊的QP值來確定去塊濾波器的濾波強(qiáng)度而 不是正交變換的量化。不將失效的QP報告至視頻解碼器。因此,可將具有失效的QP的塊 的QP值處理為QP_prev。
[0030] 這里,關(guān)注在并行塊行處理中的第(K-1)個塊行和第K個塊行。當(dāng)在開始第K個 塊行的處理時處理第K個塊行中的第一塊X時,在第K個塊行中的約兩個塊已在第(K - 1) 個塊行之前被處理。第K個塊行的第一塊之前的塊對應(yīng)于第(K- 1)個塊行的最后一塊。因 此,在開始第K個塊行的處理時,塊Y的處理還沒有完成。
[0031] 因此,當(dāng)處理塊X時,未確定QP_prev。由于沒有確定塊X的QP_prev,所以未確定 塊X之后的塊的QP_prev。
[0032] 因此,不是在塊行之間并行計算而是順序計算QP預(yù)測值。圖3A和圖3B均是示出 了執(zhí)行相關(guān)技術(shù)并行塊行處理的相關(guān)技術(shù)視頻處理設(shè)備的示意性配置的框圖。
[0033] 更具體地,圖3A是示出了執(zhí)行并行塊行處理的相關(guān)技術(shù)編碼器的示意性配置的 框圖。圖3B是示出了執(zhí)行并行塊行處理的相關(guān)技術(shù)解碼器的示意性配置的框圖。
[0034] 如圖3A和圖3B中所示,在相關(guān)技術(shù)視頻處理設(shè)備中,被配置為計算QP預(yù)測值的 QP預(yù)測部會是瓶頸。
[0035] 圖4A是示出了在QP預(yù)測處理中的并行塊行處理的示例的示意圖。在圖4A示出的 示例中,并行地處理第一塊行和第二塊行。在這種情況下,當(dāng)X表示第二塊行的處理塊時, 塊X的QP預(yù)測值的計算需要等待,直到塊Y的處理完成。即,除非完成了對第一塊行的處 理,否則不開始對第二塊行的處理。
[0036] 圖4B是示出了在QP預(yù)測處理中的并行塊行處理的另一示例的示意圖。如圖4B 中所示,當(dāng)塊Y的處理已完成時,第二塊行的處理開始。
[0037] 圖4C是示出了在QP預(yù)測處理中的并行塊行處理的又一示例的示意圖。在圖4C 所示的示例中,已在處理第一塊行的QP預(yù)測部會需要等待,直到對塊V的處理完成,以計算 在第三塊行中的塊W的QP值。
[0038] 也就是說,除非完成了對第二塊行的處理,否則不開始對第三塊行的處理。因此, 為了開始第K個塊行,需要完成對第(K - 1)個塊行的處理,因此,在相關(guān)現(xiàn)有技術(shù)中可串行 地計算QP值。
[0039] 當(dāng)并行地執(zhí)行編碼處理并且對QP預(yù)測部進(jìn)行串行處理時,需要考慮下列幾點(diǎn)。例 如,由于沒有確定塊X的QP_prev,所以在第K個塊行的第一塊不計算QP_DELTA,并且直到 對塊Y的處理完成才開始對塊X的熵處理。
[0040] 因此,由于延遲了熵處理的開始,所以會增加用于存儲編碼處理部所產(chǎn)生的結(jié)果 的緩沖器大小。此外,不會開始對去塊濾波器的處理。
[0041] 類似地,視頻解碼器中的并行塊行處理可考慮如下。根據(jù)HEVC,可在塊行之間并 行地執(zhí)行熵處理。類似于第一示例,關(guān)注第(K - 1)個塊行和第K個塊行,并且考慮第K個 塊行的第一塊X的QP恢復(fù)處理。在這種情況下,在塊X的QP_DELTA被解碼時,塊Y的QP_ DELTA尚待解碼,因此,將不恢復(fù)塊Y的QP值。
[0042] 由于塊X的QP預(yù)測值QP_prev對應(yīng)于塊Y的QP值,所以將不計算塊X的QP_prev。 結(jié)果,將不恢復(fù)塊X的QP值。因此,會串行地執(zhí)行各塊的QP預(yù)測值,這會在與視頻編碼器 類似方式的并行處理中導(dǎo)致瓶頸。
【發(fā)明內(nèi)容】
[0043] 因此,下面所公開的技術(shù)能夠?qū)P預(yù)測值的計算處理實(shí)現(xiàn)并行處理,這會改善并 行塊行處理的效率。
[0044] 根據(jù)實(shí)施方式的一個方面,提供了一種用于對用視頻編碼系統(tǒng)進(jìn)行編碼的流進(jìn)行 解碼的視頻解碼器,其中通過對多個劃分塊的圖像進(jìn)行編碼來獲得編碼流。該視頻編碼器 包括:并行熵解碼部,所述并行熵解碼部配置成對塊行中所包含的塊的流進(jìn)行熵解碼,所述 塊行中每個塊行中的塊的流與所述塊行中相應(yīng)的一個塊行中的塊的流被并行地熵解碼,所 述塊行中的每個塊行表示塊的陣列;并行QP預(yù)測部,所述并行QP預(yù)測部配置成計算所述塊 行中所包含的塊的量化參數(shù)的預(yù)測值,所述塊行中的每個塊行中的塊的預(yù)測值與所述塊行 中相應(yīng)的一個塊行中的塊的預(yù)測值并行地計算;以及并行解碼處理部,所述并行解碼處理 部配置成對于所述塊行中所包含的塊產(chǎn)生解碼像素,關(guān)于所述塊行中的每個塊行中的塊的 解碼像素與關(guān)于所述塊行中相應(yīng)的一個塊行中的塊的解碼像素并行地產(chǎn)生,通過利用由所 述并行熵解碼部所解碼的數(shù)據(jù)和所述并行QP預(yù)測部所計算的預(yù)測值,對所述解碼像素中 的每一個進(jìn)行解碼。在該視頻編碼器中,當(dāng)所述并行QP預(yù)測部以N個塊行為單位并行地執(zhí) 行預(yù)測值計算處理,并且N的值是2或更大值時,所述并行QP預(yù)測部對第(K - 1)塊行中的 處理塊執(zhí)行預(yù)測值計算處理,所述第(K- 1)塊行中的處理塊比第K塊行中的處理塊在水平 位置上在前至少一個塊,從而在并行處理中通過參考與在所述第(K-1)塊行中的處理塊 相對應(yīng)的、在所述第K塊行中已處理的塊,計算在所述第(K - 1)塊行中的處理塊的預(yù)測值。
[0045] 借助于在所附權(quán)利要求中具體指出的要素和組合,將實(shí)現(xiàn)并且達(dá)到本發(fā)明的目的 和優(yōu)點(diǎn)。
[0046] 應(yīng)理解的是,前面的一般描述和下面的詳細(xì)描述是示例性的和解釋性的,并且不 是對本發(fā)明的限制。
[0047] 實(shí)施方式的其他目的和優(yōu)點(diǎn)將在下面的描述中部分地給出,其一部分將根據(jù)該描 述而變得明顯,或者可通過對本發(fā)明的實(shí)踐來認(rèn)識到。
【專利附圖】
【附圖說明】
[0048] 圖1是示出了并行塊行處理的示例的示意圖;
[0049] 圖2是示出了根據(jù)HEVC的熵處理部的并行塊行處理的示例的示意圖;
[0050] 圖3A是示出了執(zhí)行并行塊行處理的相關(guān)技術(shù)編碼器的示意性配置的框圖;
[0051] 圖3B是示出了執(zhí)行并行塊行處理的相關(guān)技術(shù)解碼器的示意性配置的框圖;
[0052] 圖4A是示出了在QP預(yù)測處理中的塊行并行處理的示例的示意圖;
[0053] 圖4B是示出了在QP預(yù)測處理中的塊行并行處理的另一示例的示意圖;
[0054] 圖4C是示出了在QP預(yù)測處理中的塊行并行處理的又一示例的示意圖;
[0055] 圖5是示出了根據(jù)第一實(shí)施方式的視頻解碼器的配置示例的框圖;
[0056] 圖6是示出了根據(jù)第一實(shí)施方式的視頻解碼器的并行解碼部的各部件的配置示 例的框圖;
[0057] 圖7是示出了根據(jù)第一實(shí)施方式的視頻解碼器的解碼處理部的配置示例的框圖;
[0058] 圖8是示出了在N = 3的情況下在并行QP預(yù)測處理中的可用塊的示例的框圖;
[0059] 圖9是示出了根據(jù)第一實(shí)施方式的視頻解碼器的QP預(yù)測部的配置示例的框圖;
[0060] 圖10A是示出了根據(jù)第一實(shí)施方式的視頻解碼器中的QP預(yù)測處理的示例的示意 圖;
[0061] 圖10B是示出了根據(jù)第一實(shí)施方式的視頻解碼器中的QP預(yù)測處理的另一示例的 示意圖;
[0062] 圖11是示出了根據(jù)第一實(shí)施方式的視頻解碼器的塊解碼處理的示例的流程圖;
[0063] 圖12是示出了根據(jù)第二實(shí)施方式的視頻編碼器的配置示例的框圖;
[0064] 圖13是示出了根據(jù)第二實(shí)施方式的視頻編碼器的并行編碼部的各部件的配置示 例的框圖;
[0065] 圖14是示出了根據(jù)第二實(shí)施方式的視頻編碼器的編碼處理部的配置示例的框 圖;
[0066] 圖15是示出了根據(jù)第二實(shí)施方式的視頻編碼器的QP預(yù)測部的配置示例的框圖; [0067] 圖16是示出了根據(jù)第二實(shí)施方式的視頻編碼器中的塊編碼處理的示例的流程 圖;以及
[0068] 圖17是示出了根據(jù)第三實(shí)施方式的視頻處理設(shè)備的配置示例的框圖。
【具體實(shí)施方式】
[0069] 下面,將參考附圖來描述優(yōu)選實(shí)施方式。注意,視頻中所包含的圖像(畫面)可以 是幀和場中的任意一個。幀是視頻數(shù)據(jù)的靜止圖像中的一個,場是通過獲取來自幀的奇數(shù) 行或偶數(shù)行中的數(shù)據(jù)而獲得的靜止圖像。
[0070] 此外,經(jīng)歷處理的視頻可以是彩色視頻或黑白視頻。
[0071] 第一實(shí)施方式
[0072] 配置
[0073] 圖5是示出了根據(jù)第一實(shí)施方式的視頻解碼器的配置示例的框圖。在圖5所示的 示例中,視頻解碼器10包括并行解碼部101和解碼像素存儲部105。并行解碼部101包括 并行熵解碼部102、并行QP預(yù)測部103以及并行解碼處理部104。
[0074] 注意,視頻解碼器10配置成并行地處理N個塊行。還要注意,"塊行"指圖像內(nèi)水 平方向上的塊的陣列。
[0075] 并行解碼部101的各部件配置成對每個塊行的相同塊執(zhí)行處理。此外,在第 (K- 1)個塊行中的處理塊的水平位置配置成在第K個塊行中的處理塊的水平位置之前兩 個或更多個塊處。
[0076] 這樣做會是因?yàn)榧词乖趯K行進(jìn)行并行解碼時,關(guān)于處理塊的上部塊和右上塊的 解碼信息也可以通過在塊行之間移動兩個或更多個塊來獲得(得到)。當(dāng)僅得到(利用) 上部塊的解碼信息時,塊行之間的水平位置的移動量可以是一個塊。在下文中,"上部塊"表 示在處理塊上方的一個塊,"右上塊"表示在處理塊上方的塊的右側(cè)緊鄰的塊。
[0077] 并行解碼部101配置成對編碼流進(jìn)行解碼,其中通過利用視頻編碼系統(tǒng)對被劃分 成多個塊的圖像進(jìn)行編碼來獲得該編碼流。并行解碼部101可以例如以并行的N個塊行為 單位,對編碼流進(jìn)行解碼。將每個塊行中的每個塊解碼出的每個像素輸出至解碼像素存儲 部105。被解碼的像素稱為"已解碼像素"。
[0078] 并行熵解碼部102配置成將輸入流劃分成塊行,并且對塊行中所包含的流的塊進(jìn) 行并行熵解碼。并行熵解碼部102將經(jīng)熵解碼的數(shù)據(jù)輸出至并行解碼處理部104。
[0079] 并行QP預(yù)測部103配置成計算相應(yīng)的一個塊行中所包含的塊中的每個塊的量化 參數(shù)(QP)的預(yù)測值(QP預(yù)測值)并對塊行中所包含的塊并行地執(zhí)行計算處理。將計算的 QP預(yù)測值輸出至并行解碼處理部104。
[0080] 并行解碼處理部104配置成在并行地產(chǎn)生各塊行的解碼像素時,產(chǎn)生相應(yīng)的一個 塊行中所包含的塊中的每個塊所對應(yīng)的解碼像素。通過利用并行熵解碼部102所解碼的數(shù) 據(jù)和并行QP預(yù)測部103所計算的QP預(yù)測值,對每個解碼像素進(jìn)行解碼。將所產(chǎn)生的解碼 像素輸出至解碼像素存儲部105。
[0081] 解碼像素存儲部105配置成存儲從并行解碼部101輸出的塊的解碼像素。每個圖 像單元所聚集的解碼像素可形成圖像(畫面)。解碼像素存儲部105將用于一個畫面的解 碼處理完成時輸出的解碼圖像進(jìn)行存儲。
[0082] 并行解碼部
[0083] 接下來,描述并行解碼部101。圖6是示出了根據(jù)第一實(shí)施方式的視頻解碼器中的 并行解碼部101的各部件的配置示例的框圖。在圖6所示的示例中,并行熵解碼部102包 括第一熵解碼部221、第二熵解碼部222、以及第N熵解碼部223。
[0084] 在圖6所示的示例中,并行QP預(yù)測部103包括第一 QP預(yù)測部231、第二QP預(yù)測部 232、以及第N QP預(yù)測部233。在圖6所示的示例中,并行解碼處理部104包括第一解碼處 理部241、第二解碼處理部242、第N解碼處理部243以及塊信息存儲部244。
[0085] 注意,當(dāng)L=1至N時,第L熵解碼部、第L QP預(yù)測部以及第L解碼部配置成對塊 行中的同一塊行執(zhí)行處理。在下面的描述中,將第L熵解碼部、第L QP預(yù)測部以及第L解 碼部總稱為"塊行解碼處理部"。例如,塊行解碼處理部201包括第一熵解碼部221、第一 QP 預(yù)測部231以及第一解碼處理部241。
[0086] 當(dāng)塊行解碼處理部201已處理了第K個塊行時,塊行解碼處理部201隨后處理第 (K+N)個塊行。
[0087] 并行熵解碼部102配置成將輸入流劃分成塊行。熵解碼部221至223對從該流劃 分的塊行以每單位N個塊行并行地進(jìn)行熵解碼。熵解碼部221至223配置成執(zhí)行與在視頻 編碼器中的熵編碼處理相對應(yīng)的熵解碼處理。
[0088] 解碼處理部241至243配置成并行地執(zhí)行解碼處理。圖7是示出了根據(jù)第一實(shí)施 方式的視頻解碼器中的解碼處理部的示例的框圖。由于解碼處理部241至243配置成執(zhí)行 類似處理,所以在下面的描述中將解碼處理部241用作解碼處理部的示例。
[0089] 第一解碼處理部241包括QP值恢復(fù)部301、反量化部302、反正交變換部303、運(yùn)動 矢量恢復(fù)部304、預(yù)測像素產(chǎn)生部305以及解碼像素產(chǎn)生部306。
[0090] QP值恢復(fù)部301配置成利用從稍后描述的第一 QP預(yù)測部231輸入的QP預(yù)測值和 從第一熵解碼部221輸入的QP差異值來恢復(fù)QP值(例如,參見前面的公式(2))。將所恢 復(fù)的QP值輸出至反量化部302。
[0091] 反量化部302配置成通過將恢復(fù)的QP值乘以正交變換系數(shù)來執(zhí)行反量化。將反 量化的正交變換系數(shù)輸出至反正交變換部303。
[0092] 反正交變換部303配置成對從反量化部302輸入的正交變換系數(shù)執(zhí)行反正交變 換,以產(chǎn)生預(yù)測誤差像素。所產(chǎn)生的預(yù)測誤差像素輸出至解碼像素產(chǎn)生部306。
[0093] 運(yùn)動矢量恢復(fù)部304配置成從塊信息存儲部244獲取關(guān)于處理塊周邊的塊的運(yùn)動 矢量信息,以計算預(yù)測矢量。運(yùn)動矢量恢復(fù)部304配置成將預(yù)測矢量與從第一熵解碼部221 輸入的差異矢量相加,以恢復(fù)運(yùn)動矢量。將恢復(fù)的運(yùn)動矢量輸出至預(yù)測像素產(chǎn)生部305。
[0094] 預(yù)測像素產(chǎn)生部305配置成從存儲之前解碼的畫面的解碼像素存儲部105獲取通 過由運(yùn)動矢量指示的參考畫面的像素數(shù)據(jù),以產(chǎn)生預(yù)測像素。所產(chǎn)生的預(yù)測像素輸出至解 碼像素產(chǎn)生部306。
[0095] 解碼像素產(chǎn)生部306配置成將從預(yù)測像素產(chǎn)生部305輸入的預(yù)測像素與從反正交 變換部303輸入的預(yù)測誤差像素相加,以產(chǎn)生解碼像素。所產(chǎn)生的解碼像素存儲在解碼像 素存儲部105中。
[0096] 接下來,描述由每個QP預(yù)測部所執(zhí)行的處理。首先,描述每個QP處理部所執(zhí)行的 預(yù)測處理中所利用的可用(可得到的)塊。圖8是示出了在N = 3的情況下在并行QP預(yù) 測處理中所利用的可用塊的示例的框圖。在圖8所示的示例中,當(dāng)N = 3指示N個塊行時, 對N個塊行并行執(zhí)行QP預(yù)測處理,并且在N個塊行的每個塊行中將處理延遲兩個塊。
[0097] 在這種情況下,對應(yīng)于處理塊X的可用塊是圖8中所示的陰影塊。當(dāng)處理塊X經(jīng) 歷處理時,圖8中的陰影塊指示已處理的塊;也就是說,圖8中的陰影塊指示可用(可得到 的)塊。在圖8中,通過粗框指示的塊描繪了經(jīng)歷處理的塊(下文中還稱為"處理塊")。每 個QP預(yù)測部配置成通過參考可用塊(已處理的塊)來計算處理塊的QP預(yù)測值。下面,進(jìn) 一步詳細(xì)描述QP預(yù)測值的計算。
[0098] 圖9是示出了根據(jù)第一實(shí)施方式的視頻解碼器中的QP預(yù)測部的配置示例的框圖。 由于QP預(yù)測部231至233被配置成執(zhí)行類似處理,所以在下面的描述中將第一 QP預(yù)測部 231用作QP預(yù)測部的示例。
[0099] 在圖9中,第一 QP預(yù)測部231包括前一 QP存儲部401、QP選擇部402以及上部QP 獲取部403。
[0100] 前一 QP存儲部401配置成從QP值恢復(fù)部301接收在當(dāng)前處理塊之前剛處理完的 塊的QP值,并存儲所接收的QP值。在開始畫面處理時,將前一 QP存儲部401所存儲的QP 值初始化。
[0101] 例如,前一 QP存儲部401所存儲的QP值用通過片報頭信息編碼的片QP值以與 H. 264類似的方式來初始化。片是與一個畫面相關(guān)聯(lián)的塊的劃分組的單元。
[0102] 上部QP獲取部403可以例如從塊信息存儲部244獲取位于處理塊上方的塊的QP 值。
[0103] QP選擇部402配置成選擇從前一 QP存儲部401和上部QP獲取部403輸出的QP 值中的一個,以將所選的QP值作為QP預(yù)測值輸出至QP值恢復(fù)部301。
[0104] 例如,當(dāng)處理塊是塊行中的塊中的第一塊(頭部)時,QP選擇部402選擇從上部 QP獲取部403輸出的QP值,而當(dāng)處理塊是塊行中不同于第一塊的任意一個塊時,QP選擇部 402選擇從前一 QP存儲部401輸出的QP值。QP選擇部402將所選擇的QP值作為QP預(yù)測 值輸出至QP值恢復(fù)部301。
[0105] 接下來,參考相應(yīng)的附圖描述在上面的示例中的QP值的預(yù)測(選擇)。圖10A是 示出了根據(jù)第一實(shí)施方式的視頻解碼器中的QP預(yù)測處理的示例的示意圖。在圖10A所示 的示例中,當(dāng)處理塊X表示經(jīng)歷處理的塊,并且處理塊X是塊行中的塊中的第一塊(頭部) 時,QP選擇部402選擇上部塊A的QP值。
[0106] 圖10B是示出了根據(jù)第一實(shí)施方式的視頻解碼器中的QP預(yù)測處理的另一示例的 示意圖。如圖10B所示,當(dāng)處理塊X是塊行中不同于第一塊的塊中的一個時,QP選擇部402 選擇處理塊X之前剛處理完的塊B的QP值。
[0107] 注意,在這種情況下,接近處理塊X的塊的QP值用作QP預(yù)測值。因此,相比于以 光柵順序選擇(利用)處理塊X之前剛處理完的塊的QP值的情況,QP值的預(yù)測效率不會 降低。
[0108] 在上面的示例中,當(dāng)處理塊不是第一塊時,通過利用處理塊X之前剛處理完的塊 的QP值來產(chǎn)生QP預(yù)測值。然而,當(dāng)根據(jù)與處理塊相鄰的塊來預(yù)測QP值時,可通過其他方 法來產(chǎn)生QP值。
[0109] 此外,QP選擇部402的處理可以如下。當(dāng)經(jīng)歷處理的塊行是第二塊行至第N塊行 時,由前一 QP存儲部401所存儲的QP值是片QP值,該每個片QP值通過片單元來確定。因 此,當(dāng)將片QP值用作每個塊的QP預(yù)測值時,預(yù)測效率會相對較低。
[0110] 因此,當(dāng)處理塊是第二塊行至第N塊行中的塊中的第一個塊時,QP選擇部402可 選擇由上部QP獲取部403所獲取的QP值,而當(dāng)處理塊是第二塊行至第N塊行中不同于第 一塊的塊中的任意一個時,QP選擇部402可選擇由前一 QP存儲部401所保持的QP值。
[0111] 此外,當(dāng)處理塊是第(N+1)個塊行之后的塊行中的塊中的第一塊時,QP選擇部402 可選擇由前一 QP存儲部401所保持的QP值。在這種情況下,前一 QP存儲部401所保持的 QP值對應(yīng)于處理塊上方N個塊所在的塊行中的塊中的最后一個(最后塊)的QP值。
[0112] 第K個塊行和第(K+N)個塊行由相同的解碼處理部、相同的QP預(yù)測部以及相同的 熵解碼部來處理。因此,第K個塊行中的處理塊之前剛處理完的塊對應(yīng)于第(K-N)個塊行 的最后塊。
[0113] 此外,當(dāng)處理塊是塊行中的塊中的第一個時,QP選擇部402可配置成不變地選擇 前一 QP存儲部401中所存儲的QP值。此外,當(dāng)處理塊是第一塊行至第N塊行中的一個塊 行中的塊中的第一塊時,QP選擇部402可配置成將片QP值選擇為QP預(yù)測值。
[0114] 在這種情況下,可選擇處理塊上方N個塊所在的塊行中的塊中的最后一個(最后 塊)的QP值作為第(N+1)個塊行中的第一塊的QP預(yù)測值。
[0115] 通過上面的配置,對應(yīng)于塊行,對量化參數(shù)的預(yù)測值的計算過程可并行地執(zhí)行。
[0116] 操作
[0117] 接下來,描述根據(jù)第一實(shí)施方式的視頻解碼器10的操作。圖11是示出了第一實(shí) 施方式中的塊解碼處理的示例的流程圖。注意,圖11中所示的塊解碼處理對應(yīng)于在一個塊 上執(zhí)行的解碼處理。
[0118] 在步驟S101中,每個熵解碼部對編碼信息(例如每個塊的差異運(yùn)動矢量、QP差異 值以及量化正交變換系數(shù))進(jìn)行熵解碼。將熵解碼信息輸出至對應(yīng)于熵處理部的解碼處理 部。
[0119] 在步驟S102中,運(yùn)動矢量恢復(fù)部304從塊信息存儲部244獲取關(guān)于處理塊周邊的 塊的運(yùn)動矢量信息,以計算預(yù)測矢量。
[0120] 在步驟S103中,運(yùn)動矢量恢復(fù)部304將差異運(yùn)動矢量與預(yù)測矢量相加,以恢復(fù)運(yùn) 動矢量。將恢復(fù)的運(yùn)動矢量信息存儲在塊信息存儲部244中。
[0121] 在步驟S104中,預(yù)測像素產(chǎn)生部305從存儲之前所解碼的畫面的解碼像素存儲部 105獲取由運(yùn)動矢量所指示的參考畫面的像素數(shù)據(jù),以產(chǎn)生預(yù)測像素。
[0122] 在步驟S105中,每個QP預(yù)測部均產(chǎn)生一個相應(yīng)塊的QP預(yù)測值,以將所產(chǎn)生的QP 預(yù)測值輸入到QP值恢復(fù)部301中。
[0123] 在步驟S106中,QP值恢復(fù)部301基于相應(yīng)的輸入QP預(yù)測值和差異值來恢復(fù)每個 QP值。QP值被存儲在塊信息存儲部244中,并被提供至反量化部302。當(dāng)將處理塊上方的 塊的QP值和之前由塊行解碼處理部201所處理的已處理塊的QP值之中的一個應(yīng)用于QP 預(yù)測值時,可無需延遲(延緩)QP預(yù)測值的產(chǎn)生。結(jié)果,可改善并行處理的效率。
[0124] 在步驟S107中,反量化部302將量化的正交變換系數(shù)與QP值相乘。
[0125] 在步驟S108中,反正交變換部303對量化的正交變換系數(shù)執(zhí)行反正交變換,以產(chǎn) 生預(yù)測誤差像素。
[0126] 在步驟S109中,解碼像素產(chǎn)生部306將預(yù)測誤差像素與預(yù)測像素相加,以產(chǎn)生解 碼像素。
[0127] 在步驟S110中,解碼像素存儲部105存儲解碼像素。前述步驟是對塊(處理塊) 的解碼處理的結(jié)束,其開始了對后續(xù)塊的接下來的解碼處理。當(dāng)對一個畫面中所包含的所 有塊的解碼處理完成時,可將解碼像素存儲部105中所存儲的解碼圖像例如顯示在諸如顯 示器的顯示部上。
[0128] 如上所述,在根據(jù)第一實(shí)施方式的視頻解碼器中,可并行地執(zhí)行對QP預(yù)測值的計 算,這可以改善并行塊行處理的效率。
[0129] 第二實(shí)施方式
[0130] 接下來,描述根據(jù)第二實(shí)施方式的視頻編碼器。在根據(jù)第二實(shí)施方式的視頻編碼 器中,對應(yīng)于根據(jù)第一實(shí)施方式的視頻解碼器,可以多個塊行為單位并行執(zhí)行QP預(yù)測處 理。
[0131] 配置
[0132] 圖12是示出了根據(jù)第二實(shí)施方式的視頻編碼器50的配置示例的框圖。在圖12所 示的示例中,視頻編碼器50包括并行編碼部501和解碼像素存儲部505。并行解碼部501 包括并行編碼處理部502、并行QP預(yù)測部503以及并行熵編碼部504。注意,視頻編碼器50 配置成并行地處理N個塊行。
[0133] 并行編碼部501的各部件配置成對每個塊行的相同塊執(zhí)行處理。此外,第(K - 1) 個塊行的處理塊的水平位置配置成在第K個塊行的處理塊的水平位置之前兩個或更多個 塊處。
[0134] 這會是因?yàn)榧词乖趯K行進(jìn)行并行編碼時,關(guān)于處理塊的上部塊和右上塊的編碼 信息也可通過在塊行之間移動兩個或更多個塊來獲得(得到)。當(dāng)?shù)玫剑ɡ茫┥喜繅K的 信息時,塊行之間的水平位置的移動量可以是一個塊。
[0135] 并行編碼部501配置成將圖像劃分成多個塊,并且利用視頻編碼系統(tǒng)將劃分的塊 以例如N個塊行并行地編碼。由并行編碼部501進(jìn)行本地解碼的解碼像素存儲在解碼像素 存儲部505中。
[0136] 并行編碼處理部502配置成在并行地處理塊行時,為塊行中所包含的每個塊產(chǎn)生 量化的正交變換系數(shù)和差異運(yùn)動矢量信息。所產(chǎn)生的正交變換系數(shù)和差異矢量信息(也稱 為"編碼數(shù)據(jù)")輸出至并行熵編碼部504。用于量化的QP值輸出至并行QP預(yù)測部503。
[0137] 并行QP預(yù)測部503配置成在對塊行中所包含的塊并行地執(zhí)行計算處理時,計算在 相應(yīng)塊行中所包含的每個塊的量化參數(shù)(QP)的預(yù)測值(QP預(yù)測值)。將所計算的QP預(yù)測 值輸出至并行熵編碼部504。
[0138] 并行熵編碼部504在對塊行中所包含的塊并行地執(zhí)行熵編碼處理時,利用量化的 正交變換系數(shù)、作為QP值與QP預(yù)測值之間的差的QP差異值、差異移動矢量信息等,對相應(yīng) 塊行中所包含的每個塊進(jìn)行熵編碼。將由并行熵編碼部504所編碼的流輸出至視頻解碼器 10等。
[0139] 解碼像素存儲部505配置成存儲通過對從并行編碼部501輸出的每個塊進(jìn)行本地 解碼而獲得的解碼像素。本地解碼還可稱為"在本地解碼"。
[0140] 并行編碼部
[0141] 接下來,描述并行編碼部501。圖13是示出了根據(jù)第二實(shí)施方式的視頻編碼器中 的并行編碼部501的各部件的配置示例的框圖。在圖13所示的示例中,并行編碼處理部 502包括第一編碼處理部621、第二編碼處理部622、第N編碼處理部623以及塊信息存儲部 624。
[0142] 在圖13所示的示例中,并行QP預(yù)測部503包括第一 QP預(yù)測部631、第二QP預(yù)測 部632以及第N QP預(yù)測部633。在圖13所示的示例中,并行熵編碼部504包括第一熵編碼 部641、第二熵編碼部642以及第N熵編碼部643。
[0143] 注意,當(dāng)L = 1至N時,第L編碼部、第L QP預(yù)測部以及第L熵編碼部配置成對塊 行中的同一塊行執(zhí)行處理。在下面的描述中,第L編碼部、第L QP預(yù)測部以及第L熵編碼部 總稱為"塊行編碼處理部"。
[0144] 例如,塊行編碼處理部601包括第一編碼部621、第一 QP預(yù)測部631以及第一熵編 碼處理部641。
[0145] 當(dāng)塊行編碼處理部601已對第K個塊行執(zhí)行了編碼處理時,塊行編碼處理部601 隨后對第(K+N)個塊行執(zhí)行編碼處理。
[0146] 并行熵編碼部502配置成將輸入圖像劃分成多個塊行。編碼處理部621至623配 置成以圖像所劃分的塊行(例如,在這種情況下,N個塊行)為單位并行地執(zhí)行編碼處理。 該編碼處理可以是諸如H. 264或HEVC的編碼處理。
[0147] 圖14是示出了根據(jù)第二實(shí)施方式的視頻編碼器中的編碼處理部(例如,第一編碼 處理部621)的配置示例的框圖。由于編碼處理部621至623配置成執(zhí)行類似的處理,所以 在下面的描述中,將編碼處理部621用作編碼處理部的示例。
[0148] 第一編碼處理部621包括預(yù)測差異部701、正交變換部702、量化部703、QP確定部 704、反量化部705、反正交變換部706、解碼像素產(chǎn)生部707、運(yùn)動檢測部708、預(yù)測信號產(chǎn)生 部709以及差異矢量產(chǎn)生部710。
[0149] 運(yùn)動檢測部708配置成從解碼像素存儲部505獲取參考畫面的像素數(shù)據(jù),以檢測 運(yùn)動矢量。將檢測到的運(yùn)動矢量信息存儲在塊信息存儲部624中,以用于接下來的編碼。
[0150] 預(yù)測信號產(chǎn)生部709配置成從解碼像素存儲部505獲取參考像素,以基于輸入?yún)?考圖像的區(qū)域位置信息產(chǎn)生預(yù)測像素信號。將所產(chǎn)生的預(yù)測像素信號輸出至差異矢量產(chǎn)生 部 701。
[0151] 差異矢量產(chǎn)生部110配置成產(chǎn)生預(yù)測矢量??梢匀缦路绞将@得預(yù)測矢量。從塊信 息存儲部624獲取位于處理塊的左側(cè)、上方以及右上側(cè)的塊的運(yùn)動矢量,并且可將該三個 運(yùn)動矢量的中間值確定為預(yù)測矢量。
[0152] 如在上面的示例中所描述的,由于在水平方向上從在前的塊行的處理塊將每個塊 行的處理塊移動兩個塊,所以已完成了對位于處理塊上方的塊和位于處理塊的右上側(cè)的塊 的編碼處理。因此,差異矢量產(chǎn)生部710能夠獲取周邊塊的運(yùn)動矢量。
[0153] 差異矢量產(chǎn)生部710配置成從運(yùn)動檢測部708獲取處理塊的運(yùn)動矢量,以產(chǎn)生運(yùn) 動矢量與預(yù)測矢量之間的差異矢量。將所產(chǎn)生的差異矢量輸出至第一熵編碼部641。
[0154] 預(yù)測差異部701配置成計算原始圖像與預(yù)測像素信號之間的差別,以產(chǎn)生預(yù)測誤 差信號。將所產(chǎn)生的預(yù)測誤差信號輸出至正交變換部702。
[0155] 正交變換部702配置成對預(yù)測誤差信號執(zhí)行例如離散余弦變換(DCT)的正交變換 處理。將所獲得的正交變換系數(shù)輸出至量化部703。
[0156] 量化部703配置成基于量化參數(shù)(QP)來量化正交變換系數(shù)。量化方法的示例包 括:將正交系數(shù)除以由QP所確定的值,并將所獲得的結(jié)果四舍五入為最接近的整數(shù)。將量 化的正交變換系數(shù)乘以QP值,以執(zhí)行反量化。四舍五入處理會做出量化不可逆變換。將量 化的正交變換系數(shù)輸出至第一熵編碼部641。
[0157] 量化部703配置成產(chǎn)生關(guān)于量化的正交變換系數(shù)是否全為"0"的標(biāo)記信息,以將 所產(chǎn)生的標(biāo)記信息與用于量化的QP值一起輸出至QP確定部704。將QP值輸出至反量化部 705和第一 QP預(yù)測部631。
[0158] 第一 QP預(yù)測部631配置成產(chǎn)生處理塊的QP預(yù)測值。將所產(chǎn)生的QP預(yù)測值輸出 至QP確定部704以及第一熵編碼部641。
[0159] 當(dāng)將處理塊上方的塊的QP值和與第一 QP預(yù)測部631相關(guān)聯(lián)的塊行編碼處理部 601之前所處理的已處理塊的QP值之中的一個應(yīng)用于QP預(yù)測值時,可無需延遲(延緩)QP 預(yù)測值的產(chǎn)生。結(jié)果,可改善并行處理的效率。
[0160] QP確定部704配置成基于從量化部703輸入的QP值以及預(yù)測值來確定處理塊的 QP。當(dāng)正交變換系數(shù)全是"0"時,將不會對QP差異信息進(jìn)行熵編碼。因此,量化部703所 利用的QP值將不被報告至解碼器側(cè)。結(jié)果,這樣的QP值會失效。
[0161] 例如,QP確定部獲取關(guān)于量化部703所產(chǎn)生的量化的正交變換系數(shù)是否全是"0" 的標(biāo)記信息。當(dāng)QP確定部704獲取了指示正交變換系數(shù)全是"0"的標(biāo)記信息時,QP確定 部704將QP預(yù)測值設(shè)置為處理塊的QP值。當(dāng)QP確定部704獲取了指示正交變換系數(shù)全 都不為"〇"的標(biāo)記信息時,QP確定部704將量化部703所利用的QP值設(shè)置為處理塊的QP 值。將QP確定部704所確定的QP值存儲在塊信息存儲部624中。
[0162] 反量化部705配置成對量化的正交變換系數(shù)執(zhí)行反量化處理。將反量化的正交系 數(shù)輸出至反正交變換部706。
[0163] 反正交變換部706配置成對量化的正交變換系數(shù)執(zhí)行反正交變換。將反正交變換 處理的信號輸出至解碼像素產(chǎn)生部707。
[0164] 解碼像素產(chǎn)生部707配置成將從預(yù)測信號產(chǎn)生部709獲取的預(yù)測像素信號加至反 正交變換處理的信號,從而產(chǎn)生本地解碼像素。將所產(chǎn)生的解碼像素存儲在解碼像素存儲 部505中。
[0165] 接下來,描述每個QP預(yù)測部所執(zhí)行的處理。圖15是示出了根據(jù)第二實(shí)施方式的 視頻編碼器中QP預(yù)測部的配置示例的框圖。由于QP預(yù)測部631至633配置成執(zhí)行類似的 處理,所以在下面的描述中,將第一 QP預(yù)測部631用作QP預(yù)測部的示例。
[0166] 在圖15中,第一 QP預(yù)測部631包括前一 QP存儲部801、QP選擇部802以及上部 QP獲取部803。
[0167] 前一 QP存儲部801配置成從QP確定部704接收在當(dāng)前處理塊之前剛處理完的塊 的QP值,并且存儲所接收的QP值。在開始畫面處理時,將前一 QP存儲部801所存儲的QP 值初始化。
[0168] 例如,利用由片報頭信息所編碼的片QP值,以與H. 264類似的方式,對前一 QP存 儲部401所存儲的QP值進(jìn)行初始化。片是與一個畫面相關(guān)聯(lián)的塊的劃分組的單元。
[0169] 上部QP獲取部803可以從塊信息存儲部624獲取位于處理塊上方的塊的QP值。
[0170] QP選擇部802配置成從前一 QP存儲部801和上部QP獲取部803輸出的QP值中 選擇一個,以將所選QP值作為QP預(yù)測值輸出至QP確定部704或輸出至第一熵編碼部641。
[0171] 例如,當(dāng)處理塊是塊行中的塊中的第一塊(頭部)時,QP選擇部802選擇從上部 QP獲取部803輸出的QP值,而當(dāng)處理塊是塊行中不同于第一塊的任意一個塊時,QP選擇部 802選擇從前一 QP存儲部801輸出的QP值。QP選擇部802將所選擇的QP值作為QP預(yù)測 值輸出至QP確定部704或者輸出至第一熵編碼部641。
[0172] 在圖10A和圖10B中示出了對上面的示例中的QP值的預(yù)測(選擇)。在這種情況 下,鄰近處理塊X的塊的QP值用作QP預(yù)測值。因此,相比于按光柵順序利用(選擇)處理 塊X前一個塊的QP值的情況,QP值的預(yù)測效率不降低。
[0173] 在上面的示例中,當(dāng)處理塊不是第一塊時,通過利用在處理塊X之前剛處理完的 塊的QP值來產(chǎn)生QP預(yù)測值。然而,當(dāng)根據(jù)與處理塊相鄰的塊來預(yù)測QP值時,可通過其他 方法來產(chǎn)生QP值。
[0174] 注意,以類似于根據(jù)第一實(shí)施方式的視頻解碼器10的方式,根據(jù)第二實(shí)施方式的 視頻編碼器50中的QP選擇部802的處理可以如下。當(dāng)經(jīng)歷處理的塊行是第二塊行至第N 塊行時,前一 QP存儲部801所存儲的QP值是片QP值,每個片QP值由片單元來確定。因此, 當(dāng)將片QP值用作每個塊的QP預(yù)測值時,預(yù)測效率會相對較低。
[0175] 因此,當(dāng)處理塊是第二塊行至第N塊行中的塊中的第一個塊時,QP選擇部802可 選擇上部QP獲取部803所獲取的QP值,而當(dāng)處理塊是第二塊行至第N塊行中不同于第一 個塊的任意一個塊時,QP選擇部802可選擇前一 QP存儲部801所保持的QP值。
[0176] 此外,當(dāng)處理塊是第(N+1)個塊行之后的塊行中的塊中的第一塊時,QP選擇部802 可選擇前一 QP存儲部801所保持的QP值。在這種情況下,前一 QP存儲部801所保持的QP 值對應(yīng)于處理塊上方N個塊所在的塊行中的塊中的最后一個(最后塊)的QP值。
[0177] 第K個塊行和第(K+N)個塊行由相同的解碼處理部、相同的QP預(yù)測部以及相同的 熵解碼部來處理。因此,第K個塊行中處理塊之前剛處理完的塊對應(yīng)于第(K-N)個塊行的 最后塊。
[0178] 此外,當(dāng)處理塊是塊行中的塊中的第一塊(頭部)時,QP選擇部802可配置成不 變地選擇在前一 QP存儲部801中所存儲的QP值。此外,當(dāng)處理塊是第一塊行至第N塊行 中的一行中的塊中的第一塊時,QP選擇部802可配置成將片QP值選擇為QP預(yù)測值。
[0179] 在這種情況下,可選擇處理塊上方N個塊所在的塊行中的塊中的最后一個(最后 塊)的QP值作為第(N+1)個塊行中的第一塊的QP預(yù)測值。
[0180] 熵編碼部641至643中的每一個對相應(yīng)的一個塊行中的每個塊的差異運(yùn)動矢量、 QP差異值、量化的正交變換系數(shù)進(jìn)行熵編碼。
[0181] 通過上面的配置,可并行地執(zhí)行與塊行相對應(yīng)的量化參數(shù)的預(yù)測值。
[0182] 操作
[0183] 接下來,描述根據(jù)第二實(shí)施方式的視頻編碼器50的操作。圖16是示出了在第二 實(shí)施方式中的塊編碼處理的示例的流程圖。注意,圖16中所示的塊編碼處理對應(yīng)于對一個 塊執(zhí)行的編碼處理。
[0184] 在步驟S201中,將經(jīng)歷處理的塊(即,處理塊)輸入至編碼處理部621至623中 的每一個中。運(yùn)動檢測部708配置成從解碼像素存儲部505獲取參考畫面的像素數(shù)據(jù),以 檢測運(yùn)動矢量。
[0185] 在步驟S202中,差異矢量產(chǎn)生部710產(chǎn)生所檢測的運(yùn)動矢量與所產(chǎn)生的預(yù)測矢量 之間的差異矢量。
[0186] 在步驟S203中,運(yùn)動檢測部708將所檢測的運(yùn)動矢量存儲在塊信息存儲部624 中。
[0187] 在步驟S204中,預(yù)測信號產(chǎn)生部709獲取運(yùn)動檢測部708所檢測的運(yùn)動矢量所參 考的參考圖像的區(qū)域位置信息,以產(chǎn)生預(yù)測像素信號。
[0188] 在步驟S205中,差異矢量產(chǎn)生部701獲取由預(yù)測信號產(chǎn)生部709所產(chǎn)生的預(yù)測像 素信號與輸入原始像素之間的差別,以產(chǎn)生預(yù)測誤差信號。
[0189] 在步驟S206中,正交變換部702對預(yù)測誤差信號執(zhí)行正交變換,以產(chǎn)生正交變換 系數(shù)。
[0190] 在步驟S207中,量化部703基于量化參數(shù)(QP)來量化正交變換系數(shù)。
[0191] 在步驟S208中,QP預(yù)測部631至633中的每一個均產(chǎn)生處理塊的QP預(yù)測值。QP 預(yù)測值可以是例如位于處理塊上方的塊的QP值,或者是與相應(yīng)QP預(yù)測部相關(guān)聯(lián)的塊行編 碼處理部601在之前所處理的塊的QP值。
[0192] 在步驟S209中,QP確定部704將處理塊的QP值確定為從量化部703獲取的QP值 和從QP預(yù)測部獲取的QP預(yù)測值中的一個。上面已描述了處理塊的QP值的確定方法。
[0193] 在步驟S210中,每個熵編碼部對量化的正交變換系數(shù)、QP差異值以及差異矢量進(jìn) 行編碼。
[0194] 在步驟S211中,反量化部705和反正交變換部706對量化的正交變換系數(shù)分別執(zhí) 行反量化處理和反正交變換處理,以產(chǎn)生對應(yīng)于預(yù)測誤差信號的信號。
[0195] 在步驟S212中,解碼像素產(chǎn)生部707將從預(yù)測信號產(chǎn)生部709獲取的預(yù)測像素信 號與從反正交變換部706獲取的信號相加,以產(chǎn)生本地解碼的像素。
[0196] 在步驟S213中,解碼像素存儲部505存儲所產(chǎn)生的解碼像素。前述步驟是對塊 (處理塊)的編碼處理的結(jié)束,其開始了對后續(xù)塊的接下來的編碼處理。
[0197] 如上所述,在根據(jù)第二實(shí)施方式的視頻編碼器中,可并行地執(zhí)行QP預(yù)測值的計 算,這可以改善并行塊行處理的效率。
[0198] 第三實(shí)施方式
[0199] 圖17是示出了根據(jù)第三實(shí)施方式的視頻處理設(shè)備的配置示例的框圖。根據(jù)第三 實(shí)施方式的視頻處理設(shè)備90可以是在前述實(shí)施方式中描述的視頻編碼器或視頻解碼器中 的一個示例。如圖17中所示,視頻處理設(shè)備90包括控制器901、主存儲部902、輔助存儲部 903、驅(qū)動設(shè)備904、網(wǎng)絡(luò)IF部906、輸入部907以及顯示部908。前述部件經(jīng)由總線相互連 接,從而使得數(shù)據(jù)在這些部件之間相互傳輸和接收。
[0200] 控制器901用作對每個設(shè)備執(zhí)行控制或者對計算機(jī)內(nèi)的數(shù)據(jù)執(zhí)行操作或處理的 CPU??刂破?01還用作能夠執(zhí)行主存儲部902中所存儲的計算機(jī)程序的運(yùn)算單元,從而使 得控制器901從輸入部907或存儲設(shè)備接收數(shù)據(jù)、對所接收的數(shù)據(jù)執(zhí)行操作或處理并將結(jié) 果數(shù)據(jù)輸出至顯示部908或存儲設(shè)備。
[0201] 主存儲部902可以是永久地或暫時地存儲由控制器901執(zhí)行的程序或數(shù)據(jù)(諸如 操作系統(tǒng)(0S)的基本軟件或應(yīng)用軟件)的存儲設(shè)備,諸如只讀存儲器(ROM)或隨機(jī)存取存 儲器(RAM)。
[0202] 輔助存儲部903可以是諸如硬盤驅(qū)動(HDD)的存儲設(shè)備,其存儲與應(yīng)用軟件相關(guān) 聯(lián)的數(shù)據(jù)。
[0203] 驅(qū)動設(shè)備904配置成從記錄介質(zhì)905 (例如軟盤等)取回程序,以將所取回的程序 安裝在存儲設(shè)備中。
[0204] 此外,記錄介質(zhì)905配置成存儲預(yù)定程序。記錄介質(zhì)905中所存儲的程序經(jīng)由驅(qū) 動設(shè)備904安裝在視頻處理設(shè)備90中。因此,所安裝的預(yù)定程序可以由視頻處理設(shè)備90 容易地執(zhí)行。
[0205] 網(wǎng)絡(luò)IF部906是經(jīng)由包括數(shù)據(jù)傳輸路徑(例如,無線線路和/或有線線路)的網(wǎng) 絡(luò)(例如,局域網(wǎng)(LAN)和廣域網(wǎng)(WAN))連接的視頻處理設(shè)備90與具有通信功能的外圍 設(shè)備之間的接口。
[0206] 輸入部907可包括具有光標(biāo)鍵、數(shù)字鍵盤以及各種功能鍵的鍵盤以及用于選擇顯 示部908的顯示屏幕上所顯示的鍵的鼠標(biāo)或滑動塊(slide pad)。輸入部907是用戶將操 作指令分配給控制器901或?qū)?shù)據(jù)輸入至控制器901的用戶接口。
[0207] 顯示部908包括液晶顯示器(IXD),該液晶顯示器配置成顯示與從控制器901輸入 的顯示數(shù)據(jù)相對應(yīng)的數(shù)據(jù)。注意,顯示部908可設(shè)置在外部,在這種情況下,視頻處理設(shè)備 90可包括顯不控制器。
[0208] 因此,在上面的實(shí)施方式中所示的視頻編碼器或視頻解碼器可實(shí)現(xiàn)為由計算機(jī)執(zhí) 行的程序(例如,視頻編碼程序或視頻解碼程序)。這些程序可經(jīng)由服務(wù)器等安裝在計算機(jī) 內(nèi),從而使計算機(jī)執(zhí)行該程序,該程序可實(shí)現(xiàn)前述視頻編碼器或視頻解碼器。
[0209] 此外,這種視頻編碼程序或視頻解碼程序可存儲在記錄介質(zhì)905中,從而使計算 機(jī)或移動終端取回存儲在記錄介質(zhì)905中的這些程序,以實(shí)現(xiàn)前述視頻編碼處理或視頻解 碼處理。
[0210] 注意,記錄介質(zhì)905可以是各種類型的記錄介質(zhì),例如,以光、電或磁的方式將信 息記錄在其上的CD-ROM、軟盤以及磁光盤;或者以電的方式將信息記錄在其上的半導(dǎo)體存 儲器,例如ROM或閃存。注意,記錄介質(zhì)905不包括任何載波。
[0211] 在視頻處理設(shè)備90中執(zhí)行的程序可具有包括前述實(shí)施方式中所示的各個部件的 模塊配置。在實(shí)際硬件中,控制器901從輔助存儲部903取回程序,并執(zhí)行所取回的程序。 因此,將一個或多個部件加載在主存儲部902上,從而使得在主存儲部902中可產(chǎn)生所加載 的部件。
[0212] 此外,在上面的實(shí)施方式中所示的視頻編碼處理或視頻解碼處理可以實(shí)現(xiàn)為一個 或多個集成電路。
[0213] 根據(jù)所公開的技術(shù),可并行地執(zhí)行QP預(yù)測值的計算,這可以改善并行塊行處理的 效率。
[0214] 根據(jù)實(shí)施方式和變形描述了所公開的技術(shù);然而,所公開的技術(shù)不限于所公開的 實(shí)施方式。在權(quán)利要求中所描述的本發(fā)明的范圍內(nèi)可進(jìn)行各種變化和修改。此外,可以應(yīng) 用對前述實(shí)施方式和變形的全部部件或部分部件的組合。
[0215] 本文所列舉的所有示例和條件語言意在教學(xué)目的,以幫助讀者理解發(fā)明人為推進(jìn) 現(xiàn)有技術(shù)所貢獻(xiàn)的本發(fā)明和構(gòu)思,應(yīng)理解為不受限于這些具體列舉的示例和條件,也不受 限于在涉及示出本發(fā)明的優(yōu)劣的說明書中的這種示例的組織。盡管已詳細(xì)地描述了本發(fā)明 的實(shí)施方式,但應(yīng)理解的是,在不背離本發(fā)明的思想和范圍的情況下,可以做出各種變化、 替代和改變。
[0216] 本專利申請是基于并且要求于2012年1月20提交的日本專利申請第 2012-010465號的優(yōu)先權(quán),其全部內(nèi)容通過引用結(jié)合在本文中。
【權(quán)利要求】
1. 一種用于對用視頻編碼系統(tǒng)進(jìn)行編碼的流進(jìn)行解碼的視頻解碼器,通過對多個劃分 塊的圖像進(jìn)行編碼來獲得編碼流,所述視頻解碼器包括: 并行熵解碼部,所述并行熵解碼部配置成對塊行中所包含的塊的流進(jìn)行熵解碼,所述 塊行中每個塊行中的塊的流與所述塊行中相應(yīng)的一個塊行中的塊的流被并行地熵解碼,所 述塊行中的每個塊行表示塊的陣列; 并行QP預(yù)測部,所述并行QP預(yù)測部配置成計算所述塊行中所包含的塊的量化參數(shù)的 預(yù)測值,所述塊行中的每個塊行中的塊的預(yù)測值與所述塊行中相應(yīng)的一個塊行中的塊的預(yù) 測值并行地計算;以及 并行解碼處理部,所述并行解碼處理部配置成對于所述塊行中所包含的塊產(chǎn)生解碼像 素,關(guān)于所述塊行中的每個塊行中的塊的解碼像素與關(guān)于所述塊行中相應(yīng)的一個塊行中的 塊的解碼像素并行地產(chǎn)生,通過利用由所述并行熵解碼部所解碼的數(shù)據(jù)和所述并行QP預(yù) 測部所計算的預(yù)測值,對所述解碼像素中的每一個進(jìn)行解碼,其中, 當(dāng)所述并行QP預(yù)測部以N個塊行為單位并行地執(zhí)行預(yù)測值計算處理,并且N的值是2 或更大值時,所述并行QP預(yù)測部對第(K- 1)塊行中的處理塊執(zhí)行預(yù)測值計算處理,所述第 (K- 1)塊行中的處理塊比第K塊行中的處理塊在水平位置上在前至少一個塊,從而在并行 處理中通過參考與在所述第(K- 1)塊行中的處理塊相對應(yīng)的、在所述第K塊行中已處理的 塊,計算在所述第(K- 1)塊行中的處理塊的預(yù)測值。
2. 根據(jù)權(quán)利要求1所述的視頻解碼器,其中, 當(dāng)所述并行QP預(yù)測部從所述圖像的頂部塊行開始,對在第二塊行之后的塊行中的塊 中的第一個塊執(zhí)行預(yù)測值計算處理時,所述并行QP預(yù)測部參考在塊行中的塊中的第一塊 上方一個塊的塊。
3. 根據(jù)權(quán)利要求1所述的視頻解碼器,其中, 當(dāng)所述并行QP預(yù)測部從所述圖像的頂部塊行開始,對第二塊行至第N塊行中的每個塊 行中的塊中的第一塊執(zhí)行預(yù)測值計算處理時,所述并行QP預(yù)測部參考在塊行中的塊的第 一塊上方一個塊的塊,并且其中, 當(dāng)所述并行QP預(yù)測部對第(N+1)塊行之后的塊行中的塊中的第一塊執(zhí)行預(yù)測值計算 處理時,所述并行QP預(yù)測部參考在塊行中的塊中的第一塊上方N個塊的塊行中的塊中的最 后一塊。
4. 根據(jù)權(quán)利要求1所述的視頻解碼器,其中: 當(dāng)所述并行QP預(yù)測部從所述圖像的頂部塊行開始,對第一塊行至第N塊行中的每個塊 行中的塊中的第一塊執(zhí)行預(yù)測值計算處理時,將每個預(yù)測值確定為在所述圖像的報頭信息 中所包含的量化參數(shù),并且其中, 當(dāng)所述并行QP預(yù)測部對第(N+1)塊行之后的塊行中的塊中的第一塊執(zhí)行預(yù)測值計算 處理時,將預(yù)測值確定為在塊行中的塊中的第一塊上方N個塊的塊行中的塊中的最后一塊 的量化參數(shù)。
5. -種用于對圖像的多個劃分塊中的每個執(zhí)行視頻編碼處理的視頻編碼器,所述視頻 編碼器包括: 并行編碼處理部,所述并行編碼處理部配置成產(chǎn)生包括塊行中所包含的塊的量化正交 變換系數(shù)的編碼數(shù)據(jù),所述塊行中的每個塊行中的塊的編碼數(shù)據(jù)與所述塊行中相應(yīng)一個塊 行中的塊的編碼數(shù)據(jù)并行地產(chǎn)生,所述塊行中的每個塊行均表示塊的陣列; 并行QP預(yù)測部,所述并行QP預(yù)測部配置成計算所述塊行中所包含的塊的量化參數(shù)的 預(yù)測值,所述塊行中的每個塊行中的塊的預(yù)測值與所述塊行中相應(yīng)一個塊行中的塊的預(yù)測 值并行地計算;以及 并行熵編碼處理部,所述并行熵編碼處理部配置成利用所述編碼數(shù)據(jù)和所述預(yù)測值, 對所述塊行中所包含的塊進(jìn)行熵編碼,所述塊行中的每個塊行中的塊與所述塊行中相應(yīng)一 個塊行中的塊并行地熵編碼,其中, 當(dāng)所述并行QP預(yù)測部以N個塊行為單位并行地執(zhí)行預(yù)測值計算處理,并且N的值是2 或更大值時,所述并行QP預(yù)測部對第(K- 1)塊行中的處理塊執(zhí)行預(yù)測值計算處理,所述第 (K- 1)塊行中的處理塊比第K塊行中的處理塊在水平位置上在前至少一個塊,從而在并行 處理中通過參考與所述第(K- 1)塊行中的處理塊對應(yīng)的所述第K塊行中已處理的塊,計算 所述第(K- 1)塊行中的所述處理塊的預(yù)測值。
6. -種由視頻解碼器執(zhí)行的視頻解碼方法,所述視頻解碼器對用視頻編碼系統(tǒng)進(jìn)行編 碼的流進(jìn)行解碼,通過對多個劃分塊的圖像進(jìn)行編碼來獲得編碼流,所述視頻解碼方法包 括: 對塊行中所包含的塊的流進(jìn)行熵解碼,所述塊行中的每個塊行中的塊的流與所述塊行 中相應(yīng)一個塊行中的塊的流并行地熵解碼,所述塊行中的每個塊行均表示塊的陣列; 計算所述塊行中所包含的塊的量化參數(shù)的預(yù)測值,所述塊行中的每個塊行中的塊的預(yù) 測值與所述塊行中相應(yīng)一個塊行中的塊的預(yù)測值并行地計算;以及 產(chǎn)生關(guān)于所述塊行中所包含的塊的解碼像素,關(guān)于所述塊行中的每個塊行中的塊的解 碼像素與關(guān)于所述塊行中相應(yīng)一個塊行中的塊的解碼像素并行地產(chǎn)生,通過利用在并行熵 解碼處理中解碼的數(shù)據(jù)和所述預(yù)測值,對所述解碼像素中的每一個進(jìn)行解碼,其中, 當(dāng)以N個塊行為單位并行地執(zhí)行預(yù)測值計算處理,并且N的值是2或更大值時,對第 (K - 1)塊行中的處理塊執(zhí)行預(yù)測值計算處理,所述第(K - 1) ±夬行中的處理塊比第K塊行中 的處理塊在水平位置上在前至少一個塊,從而在并行處理中通過參考與所述第(K-1)塊 行中的處理塊相對應(yīng)的所述第K塊行中已處理的塊,計算所述第(K - 1)塊行中的處理塊的 預(yù)測值。
7. -種由視頻編碼器執(zhí)行的視頻編碼方法,所述視頻編碼器對圖像的多個劃分塊中的 每個執(zhí)行視頻編碼處理,所述視頻編碼方法包括: 產(chǎn)生包括塊行中所包含的塊的量化的正交變換系數(shù)的編碼數(shù)據(jù),所述塊行中的每個塊 行中的塊的編碼數(shù)據(jù)與所述塊行中相應(yīng)一個塊行中的塊的編碼數(shù)據(jù)并行地產(chǎn)生,所述塊行 的每個塊行均表示塊的陣列; 計算所述塊行中所包含的塊的量化參數(shù)的預(yù)測值,所述塊行中的每個塊行中的塊的預(yù) 測值與所述塊行中相應(yīng)一個塊行中的塊的預(yù)測值并行地計算;以及 利用所述編碼數(shù)據(jù)和所述預(yù)測值,對所述塊行中的每個塊行所包含的塊進(jìn)行熵編碼, 所述塊行中的每個塊行中的塊與所述塊行中相應(yīng)一個塊行中的塊并行地熵編碼,其中, 當(dāng)以N個塊行為單位并行地執(zhí)行預(yù)測值計算處理,并且N的值是2或更大值時,對第 (K - 1)塊行中的處理塊執(zhí)行預(yù)測值計算處理,所述第(K - 1)塊行中的處理塊比第K塊行中 的處理塊在水平位置上在前至少一個塊,從而在并行處理中通過參考與所述第(K-1)塊 行中的處理塊對應(yīng)的所述第K塊行中已處理的塊,計算所述第(K - 1)塊行中的所述處理塊 的預(yù)測值。
8. -種存儲由視頻解碼器執(zhí)行的視頻解碼程序的記錄介質(zhì),所述視頻解碼器對用視頻 編碼系統(tǒng)進(jìn)行編碼的流進(jìn)行解碼,通過對多個劃分塊的圖像進(jìn)行編碼來獲得編碼流,所述 視頻解碼程序在由所述視頻解碼器執(zhí)行時,實(shí)現(xiàn)包括以下步驟的過程: 由處理器對塊行中所包含的塊的流進(jìn)行熵解碼,所述塊行中每個塊行中的塊的流與所 述塊行中相應(yīng)的一個塊行中的塊的流被并行地熵解碼,所述塊行中的每個塊行表示塊的陣 列; 計算所述塊行中所包含的塊的量化參數(shù)的預(yù)測值,所述塊行中的每個塊行中的塊的預(yù) 測值與所述塊行中相應(yīng)的一個塊行中的塊的預(yù)測值并行地計算;以及 對于所述塊行中所包含的塊產(chǎn)生解碼像素,關(guān)于所述塊行中的每個塊行中的塊的解碼 像素與關(guān)于所述塊行中相應(yīng)的一個塊行中的塊的解碼像素并行地產(chǎn)生,通過利用在并行熵 解碼處理中所解碼的數(shù)據(jù)和所述預(yù)測值,對所述解碼像素中的每一個進(jìn)行解碼,其中, 當(dāng)以Ν個塊行為單位并行地執(zhí)行預(yù)測值計算處理,并且Ν的值是2或更大值時,對第 (Κ- 1)塊行中的處理塊執(zhí)行預(yù)測值計算處理,所述第(Κ- 1)塊行中的處理塊比第Κ塊行 中的處理塊在水平位置上在前至少一個塊,從而在并行處理中通過參考與在所述第(Κ- 1) 塊行中的處理塊相對應(yīng)的、在所述第Κ塊行中已處理的塊,計算在所述第(Κ - 1)塊行中的 處理塊的預(yù)測值。
9. 一種存儲由視頻編碼器執(zhí)行的視頻編碼程序的記錄介質(zhì),所述視頻編碼器對圖像的 多個劃分塊中的每個執(zhí)行視頻編碼處理,所述視頻編碼程序在由所述視頻編碼器執(zhí)行時, 實(shí)現(xiàn)包括以下步驟的過程: 由處理器產(chǎn)生包括塊行中所包含的塊的量化的正交變換系數(shù)的編碼數(shù)據(jù),所述塊行中 的每個塊行中的塊的編碼數(shù)據(jù)與所述塊行中相應(yīng)一個塊行中的塊的編碼數(shù)據(jù)并行地產(chǎn)生, 所述塊行的每個塊行均表示塊的陣列; 計算所述塊行中所包含的塊的量化參數(shù)的預(yù)測值,所述塊行中的每個塊行中的塊的預(yù) 測值與所述塊行中相應(yīng)一個塊行中的塊的預(yù)測值并行地計算;以及 利用所述編碼數(shù)據(jù)和所述預(yù)測值,對所述塊行中所包含的塊進(jìn)行熵編碼,所述塊行中 的每個塊行中的塊與所述塊行中相應(yīng)一個塊行中的塊并行地熵編碼,其中, 當(dāng)以Ν個塊行為單位并行地執(zhí)行預(yù)測值計算處理,并且Ν的值是2或更大值時,對第 (Κ - 1)塊行中的處理塊執(zhí)行預(yù)測值計算處理,所述第(Κ - 1)塊行中的處理塊比第Κ塊行中 的處理塊在水平位置上在前至少一個塊,從而在并行處理中通過參考與所述第(Κ-1)塊 行中的處理塊對應(yīng)的所述第Κ塊行中已處理的塊,計算所述第(Κ- 1)塊行中的所述處理塊 的預(yù)測值。
【文檔編號】H04N19/46GK104067619SQ201380005990
【公開日】2014年9月24日 申請日期:2013年1月16日 優(yōu)先權(quán)日:2012年1月20日
【發(fā)明者】島田智史, 數(shù)井君彥, 小山純平, 中川章 申請人:富士通株式會社