專利名稱:視頻宏塊的上下文信息存取系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本實(shí)用新型涉及一種視頻宏塊的上下文信息存取系統(tǒng),特別地,涉及一種基于面向熵編解碼的視頻宏塊上下文結(jié)構(gòu)設(shè)計(jì)的視頻宏塊的上下文信息存取系統(tǒng)。
背景技術(shù):
在現(xiàn)有的視頻編解碼標(biāo)準(zhǔn)中,基于熵編解碼的編解碼器一般都會(huì)大量使用預(yù)測(cè)編解碼,即利用相鄰宏塊的上下文信息以及宏塊內(nèi)部的子宏塊的上下文信息作為編解碼的預(yù)測(cè)值,并隨著編解碼的進(jìn)行不斷更新這些上下文信息。這些上下文信息的使用提高了編解碼效率,同時(shí)也增加了編解碼器設(shè)計(jì)的復(fù)雜度,例如對(duì)于H.264等一些主流的視頻標(biāo)準(zhǔn),上下文信息對(duì)應(yīng)的最小單位達(dá)到4x4的子宏塊的級(jí)別,也就是說,編解碼過程中涉及到的上下文信息的最小單位是4x4的子宏塊的上下文信息,這樣的設(shè)計(jì)使得編解碼過程中涉及到的上下文信息數(shù)據(jù)量十分龐大,對(duì)上下文信息的存取也十分頻繁復(fù)雜。傳統(tǒng)的上下文信息存取方案主要分為兩類,一類是完全在編解碼器芯片外部通過例如固件和軟件來保存這些上下文信息,并在編解碼每個(gè)宏塊前由外部的固件或者軟件將這些上下文信息提供給編解碼器,以完成編解碼過程,在編解碼完成之后,固件和軟件提取編解碼結(jié)果從而更新并保存新的上下文信息。此類技術(shù)方案需要外部的固件和軟件來配置上下文信息,雖然上下文的存取由外部的固件或者軟件來完成可以降低編解碼器本身的硬件設(shè)計(jì)的復(fù)雜度,但這一方案會(huì)打斷編解碼器的計(jì)算流程,因?yàn)橛镁幗獯a器硬件對(duì)每個(gè)語法元素進(jìn)行編解碼時(shí),如果需要上下文信息,則必須通過外部的固件或軟件將硬件需要的上下文信息傳送給硬件,然后硬件再利用該上下文信息進(jìn)行解碼,最后硬件再將當(dāng)前結(jié)果作為上下文信息的更新內(nèi)容返回給軟件,這種軟硬件之間的頻繁復(fù)雜的交互導(dǎo)致編解碼器的執(zhí)行效率大大降低。另一類方案則是完全由編解碼器內(nèi)部的硬件保存所需的上下文信息,由編解碼器根據(jù)需要進(jìn)行存取。此類方法將上下文信息全部保存在編解碼硬件內(nèi)部(芯片內(nèi)),完全由硬件來存取所有所需的上下文信息,執(zhí)行效率會(huì)大大提升,但由于存儲(chǔ)空間和尋址導(dǎo)致硬件規(guī)模和復(fù)雜度增大,使得硬件設(shè)計(jì)的開銷較大,成本高。
實(shí)用新型內(nèi)容本實(shí)用新型的目的在于解決現(xiàn)有技術(shù)中的上述缺點(diǎn),即提出一種視頻宏塊的上下文信息的存取系統(tǒng),能夠通過將上下文信息進(jìn)行合理的切分,從而既能夠在編解碼的過程中盡量少的打斷編解碼器硬件的工作,提高編解碼器工作效率,又能夠降低硬件規(guī)模和邏車耳復(fù)雜度。本實(shí)用新型的一方面提出了一種視頻宏塊的上下文信息存取系統(tǒng),該系統(tǒng)包括:宏塊上下文存儲(chǔ)器,該宏塊上下文存儲(chǔ)器存儲(chǔ)相鄰宏塊的上下文信息,該宏塊上下文存儲(chǔ)器響應(yīng)于控制裝置發(fā)出的讀入命令接收并保存編解碼器發(fā)出的當(dāng)前宏塊的上下文信息,以及響應(yīng)于控制裝置發(fā)出的寫出命令向編解碼器提供解碼或編碼當(dāng)前宏塊所需的相鄰宏塊的上下文信息;子宏塊上下文存儲(chǔ)器,該子宏塊上下文存儲(chǔ)器存儲(chǔ)子宏塊的上下文信息,該子宏塊上下文存儲(chǔ)器響應(yīng)于控制裝置發(fā)出的讀入命令更新并保存當(dāng)前宏塊的子宏塊的上下文信息,響應(yīng)于控制裝置發(fā)出的寫出命令為編解碼器提供解碼當(dāng)前宏塊所需的子宏塊的上下文信息;控制裝置,響應(yīng)于編解碼器的請(qǐng)求,向所述宏塊上下文存儲(chǔ)器和所述子宏塊上下文存儲(chǔ)器發(fā)出讀入命令和寫出命令;編解碼器,在編碼或解碼開始前請(qǐng)求所述控制裝置發(fā)出讀入命令,從而接收并利用所述宏塊上下文存儲(chǔ)器提供的相鄰宏塊的上下文信息和所述子宏塊上下文存儲(chǔ)器提供的子宏塊的上下文信息對(duì)當(dāng)前宏塊進(jìn)行編碼或解碼;在編碼或解碼過程中請(qǐng)求所述控制裝置發(fā)出寫出命令,根據(jù)編碼或解碼的結(jié)果保存并更新子宏塊上下文存儲(chǔ)器中的子宏塊的上下文信息;以及在編碼或解碼完成之后,向宏塊上下文存儲(chǔ)器輸出當(dāng)前宏塊的上下文信息。優(yōu)選地,所述宏塊上下文存儲(chǔ)器配置在編解碼器的外部,所述子宏塊上下文存儲(chǔ)器配置在編解碼器的內(nèi)部或外部。優(yōu)選地,所述相鄰宏塊的上下文信息以軟件或固件的形式保存在所述宏塊上下文存儲(chǔ)器中,所述子宏塊的上下文信息以硬件形式保存在所述子宏塊上下文存儲(chǔ)器中。優(yōu)選地,在編解碼器進(jìn)行編碼或解碼之前,向所述宏塊上下文存儲(chǔ)器發(fā)出相鄰宏塊配置指令,從而通過固件或軟件來配置宏塊上下文存儲(chǔ)器中的相鄰宏塊的上下文信息。優(yōu)選地,在編解碼器進(jìn)行編碼或解碼之前,向子宏塊上下文存儲(chǔ)器發(fā)出初始化指令,從而初始化所述子宏塊上下文存儲(chǔ)器中的各個(gè)子宏塊的上下文信息。優(yōu)選地,其中所述宏塊上下文存儲(chǔ)器響應(yīng)于子宏塊上下文讀寫指令提取或配置所述子宏塊上下文存儲(chǔ)器中的上下文信息。由于在分本實(shí)用新型中相鄰宏塊的上下文信息由宏塊上下文存儲(chǔ)器通過例如固件或者軟件保存,并在編解碼一個(gè)宏塊前配置給編解碼器。而一個(gè)宏塊內(nèi)部的子宏塊的上下文信息由子宏塊上下文存儲(chǔ)器通過例如硬件保存和更新,因此一個(gè)宏塊的編解碼過程是連續(xù)的,提高了編解碼的效率,同時(shí)也降低了編解碼器設(shè)計(jì)上的復(fù)雜度,節(jié)約了成本。
圖1描述了根據(jù)本實(shí)用新型的一種視頻宏塊的上下文信息存取方法的流程圖;圖2描述了對(duì)子宏塊上下文存儲(chǔ)器中的子宏塊的上下文信息C0-C15進(jìn)行讀入和寫出的一個(gè)實(shí)施例的示意圖;圖3描述了根據(jù)本實(shí)用新型的一個(gè)實(shí)施例的一種視頻宏塊的上下文信息存取系統(tǒng)的結(jié)構(gòu)圖;圖4描述了根據(jù)本實(shí)用新型的另一個(gè)實(shí)施例的一種視頻宏塊的上下文信息存取系統(tǒng)的結(jié)構(gòu)圖。
具體實(shí)施方式
本實(shí)用新型涉及一種視頻宏塊的上下文信息存取方法和系統(tǒng),在該系統(tǒng)中,編解碼器以宏塊為單位進(jìn)行編解碼,將編解碼器所需的上下文信息分為宏塊的上下文信息和宏塊內(nèi)的子宏塊的上下文信息。本文中將編解碼器的編解碼對(duì)象稱為“當(dāng)前宏塊”,編解碼當(dāng)前宏塊所需的宏塊之間的上下文信息稱為“相鄰宏塊的上下文信息”或“宏塊的上下文信息”,所需的當(dāng)前宏塊內(nèi)部的各個(gè)子宏塊的上下文信息稱為“子宏塊的上下文信息”,編解碼完成之后,根據(jù)編解碼的結(jié)果得出的“當(dāng)前宏塊的上下文信息”可作為對(duì)后續(xù)宏塊進(jìn)行解碼時(shí)的“相鄰宏塊的上下文信息”。對(duì)當(dāng)前宏塊進(jìn)行編解碼過程中所需的相鄰宏塊的上下文信息由宏塊上下文存儲(chǔ)器通過例如固件或者軟件來保存并配置給編解碼器,編解碼過程中所需的當(dāng)前宏塊的子宏塊的上下文信息以例如硬件的形式保存在子宏塊上下文存儲(chǔ)器中。在一個(gè)宏塊的編解碼過程中,當(dāng)前宏塊內(nèi)的各個(gè)子宏塊的上下文信息根據(jù)需要被編解碼器自己更新,并完成存取。圖1描述了根據(jù)本實(shí)用新型的一種視頻宏塊的上下文信息存取方法的流程圖,該方法包括:S101,在編解碼器對(duì)當(dāng)前宏塊進(jìn)行編碼或解碼時(shí),所述編解碼器讀取保存在宏塊上下文存儲(chǔ)器中的相鄰宏塊的上下文信息,以及保存在子宏塊上下文存儲(chǔ)器中的所述當(dāng)前宏塊內(nèi)部的子宏塊的上下文信息;S102,所述編解碼器根據(jù)所述相鄰宏塊的上下文信息以及所述子宏塊的上下文信息對(duì)所述當(dāng)前宏塊進(jìn)行編碼或解碼;S103,在進(jìn)行所述當(dāng)前宏塊的編碼和解碼的過程中,在所述子宏塊上下文存儲(chǔ)器中更新并保存所述子宏塊的上下文信息;S104,在完成所述當(dāng)前宏塊的編碼和解碼之后,提取當(dāng)前宏塊的上下文信息并保存在宏塊上下文存儲(chǔ)器中。在圖1所示的實(shí)施例的方法中,是以視頻“宏塊”作為編解碼器基本處理單位進(jìn)行上下文信息的劃分的,即相鄰宏塊的上下文信息保存在宏塊上下文存儲(chǔ)器中,優(yōu)選地,宏塊上下文存儲(chǔ)器可配置在編解碼器的外部,其中的相鄰宏塊的上下文信息以軟件或固件的形式保存,從而在提高存儲(chǔ)量的同時(shí),降低了編解碼器本身的硬件規(guī)模和復(fù)雜度;而子宏塊上下文存儲(chǔ)器可以配置在編解碼器的內(nèi)部或外部,即集成在同一芯片上或在不同的芯片上實(shí)現(xiàn),優(yōu)選地,子宏塊上下文存儲(chǔ)器中的子宏塊的上下文信息可以硬件形式保存,從而提高編解碼器的執(zhí)行效率。根據(jù)不同的編碼或解碼方案,子宏塊的規(guī)??梢允?*4或8*8。在一個(gè)優(yōu)選實(shí)施例中,在編解碼器進(jìn)行編碼或解碼之前,優(yōu)選地通過固件或軟件來配置宏塊上下文存儲(chǔ)器中的相鄰宏塊的上下文信息。在另一個(gè)優(yōu)選實(shí)施例中,在對(duì)一個(gè)宏塊的編碼或解碼開始之前,可根據(jù)不同的視頻標(biāo)準(zhǔn)的要求,初始化子宏塊上下文存儲(chǔ)器中的各個(gè)子宏塊的上下文信息。在另一優(yōu)選實(shí)施例中,宏塊上下文存儲(chǔ)器也可以提取或配置子宏塊上下文存儲(chǔ)器中的上下文信息。優(yōu)選地,宏塊上下文存儲(chǔ)器可米用鏈?zhǔn)捷斎?輸出(chain-1n/chain-out)的方法,按順序?qū)懭牖蜃x出子宏塊上下文存儲(chǔ)器中的各個(gè)子宏塊的上下文信息,以4*4的子宏塊為例,每個(gè)16*16的宏塊內(nèi)包含16個(gè)子宏塊,對(duì)應(yīng)于每個(gè)子宏塊的上下文信息用C0-C15表不,圖2描述了對(duì)子宏塊上下文存儲(chǔ)器中的子宏塊的上下文信息C0-C15進(jìn)行讀入和寫出的一個(gè)實(shí)施例的示意圖。優(yōu)選地,在子宏塊上下文存儲(chǔ)器中,可采用移位寄存器來實(shí)現(xiàn)上述讀入和寫出過程。[0032]圖3描述了根據(jù)本實(shí)用新型的一個(gè)實(shí)施例的一種視頻宏塊的上下文信息存取系統(tǒng)的結(jié)構(gòu)圖,該系統(tǒng)包括:宏塊上下文存儲(chǔ)器301,該宏塊上下文存儲(chǔ)器301存儲(chǔ)相鄰宏塊的上下文信息,該宏塊上下文存儲(chǔ)器301響應(yīng)于控制裝置303發(fā)出的讀入命令接收并保存編解碼器304發(fā)出的當(dāng)前宏塊的上下文信息,以及響應(yīng)于控制裝置303發(fā)出的寫出命令向編解碼器304提供解碼或編碼當(dāng)前宏塊所需的相鄰宏塊的上下文信息;子宏塊上下文存儲(chǔ)器302,該子宏塊上下文存儲(chǔ)器302存儲(chǔ)子宏塊的上下文信息,該子宏塊上下文存儲(chǔ)器302響應(yīng)于控制裝置發(fā)出的讀入命令更新并保存當(dāng)前宏塊的子宏塊的上下文信息,響應(yīng)于控制裝置發(fā)出的寫出命令為編解碼器提供解碼當(dāng)前宏塊所需的子宏塊的上下文信息;控制裝置303,響應(yīng)于編解碼器304的請(qǐng)求,向所述宏塊上下文存儲(chǔ)器301和所述子宏塊上下文存儲(chǔ)器302發(fā)出讀入命令和寫出命令;編解碼器304,在編碼或解碼開始前請(qǐng)求所述控制裝置303發(fā)出讀入命令,從而接收并利用所述宏塊上下文存儲(chǔ)器301提供的相鄰宏塊的上下文信息和所述子宏塊上下文存儲(chǔ)器302提供的子宏塊的上下文信息對(duì)當(dāng)前宏塊進(jìn)行編碼或解碼;在編碼或解碼過程中請(qǐng)求所述控制裝置303發(fā)出寫出命令,根據(jù)編碼或解碼的結(jié)果保存并更新子宏塊上下文存儲(chǔ)器302中的子宏塊的上下文信息;以及在編碼或解碼完成之后,向宏塊上下文存儲(chǔ)器301輸出當(dāng)前宏塊的上下文信息。在一個(gè)優(yōu)選實(shí)施例中,宏塊上下文存儲(chǔ)器301可配置在編解碼器304的外部,其中的相鄰宏塊的上下文信息以軟件或固件的形式保存;而子宏塊上下文存儲(chǔ)器302可以配置在編解碼器304的內(nèi)部或外部,例如與編解碼器304集成在同一芯片上或在不同的芯片上實(shí)現(xiàn),其中子宏塊上下文存儲(chǔ)器302中的子宏塊的上下文信息可以硬件形式保存。在圖4所示的另一個(gè)優(yōu)選實(shí)施例中,在編解碼器響應(yīng)于編解碼指令進(jìn)行編碼或解碼之前,可向宏塊上下文存儲(chǔ)器301發(fā)出相鄰宏塊配置指令,從而通過固件或軟件來配置宏塊上下文存儲(chǔ)器301中的相鄰宏塊的上下文信息。在另一個(gè)變形中,在對(duì)一個(gè)宏塊的編碼或解碼開始之前,可根據(jù)不同的視頻標(biāo)準(zhǔn)的要求,向子宏塊上下文存儲(chǔ)器302發(fā)出初始化指令,從而初始化子宏塊上下文存儲(chǔ)器302中的各個(gè)子宏塊的上下文信息。在另一個(gè)變形中,宏塊上下文存儲(chǔ)器301也可以響應(yīng)于子宏塊上下文讀寫指令提取或配置子宏塊上下文存儲(chǔ)器302中的上下文信息。優(yōu)選地,宏塊上下文存儲(chǔ)器301可采用鏈?zhǔn)捷斎?輸出(chain-1n/chain-out)的方法,按順序?qū)懭牖蜃x出子宏塊上下文存儲(chǔ)器302中的各個(gè)子宏塊的上下文信息。上述實(shí)施例是用于例示性說明本實(shí)用新型的原理及其功效,而非用于限制本實(shí)用新型。任何本領(lǐng)域技術(shù)人員均可在不違背本實(shí)用新型的精神及范疇下,對(duì)上述實(shí)施例進(jìn)行修改。因此本實(shí)用新型的保護(hù)范圍,應(yīng)如本實(shí)用新型的權(quán)利要求書所列。
權(quán)利要求1.一種視頻宏塊的上下文信息存取系統(tǒng),其特征在于,該系統(tǒng)包括: 宏塊上下文存儲(chǔ)器,該宏塊上下文存儲(chǔ)器存儲(chǔ)相鄰宏塊的上下文信息,該宏塊上下文存儲(chǔ)器響應(yīng)于控制裝置發(fā)出的讀入命令接收并保存編解碼器發(fā)出的當(dāng)前宏塊的上下文信息,以及響應(yīng)于控制裝置發(fā)出的寫出命令向編解碼器提供解碼或編碼當(dāng)前宏塊所需的相鄰宏塊的上下文信息; 子宏塊上下文存儲(chǔ)器,該子宏塊上下文存儲(chǔ)器存儲(chǔ)子宏塊的上下文信息,該子宏塊上下文存儲(chǔ)器響應(yīng)于控制裝置發(fā)出的讀入命令更新并保存當(dāng)前宏塊的子宏塊的上下文信息,響應(yīng)于控制裝置發(fā)出的寫出命令為編解碼器提供解碼當(dāng)前宏塊所需的子宏塊的上下文信息; 控制裝置,響應(yīng)于編解碼器的請(qǐng)求,向所述宏塊上下文存儲(chǔ)器和所述子宏塊上下文存儲(chǔ)器發(fā)出讀入命令和寫出命令; 編解碼器,在編碼或解碼開始前請(qǐng)求所述控制裝置發(fā)出讀入命令,從而接收并利用所述宏塊上下文存儲(chǔ)器提供的相鄰宏塊的上下文信息和所述子宏塊上下文存儲(chǔ)器提供的子宏塊的上下文信息對(duì)當(dāng)前宏塊進(jìn)行編碼或解碼;在編碼或解碼過程中請(qǐng)求所述控制裝置發(fā)出寫出命令,根據(jù)編碼或解碼的結(jié)果保存并更新子宏塊上下文存儲(chǔ)器中的子宏塊的上下文信息;以及在編碼或解碼完成之后,向宏塊上下文存儲(chǔ)器輸出當(dāng)前宏塊的上下文信息。
2.根據(jù)權(quán)利要求1所述的視頻宏塊的上下文信息存取系統(tǒng),其特征在于,所述宏塊上下文存儲(chǔ)器配置在編解碼器的外部,所述子宏塊上下文存儲(chǔ)器配置在編解碼器的內(nèi)部或外部。
專利摘要本實(shí)用新型提出了一種視頻宏塊的上下文信息存取系統(tǒng),該系統(tǒng)包括宏塊上下文存儲(chǔ)器,存儲(chǔ)相鄰宏塊的上下文信息;子宏塊上下文存儲(chǔ)器,存儲(chǔ)子宏塊的上下文信息;控制裝置,向宏塊上下文存儲(chǔ)器和子宏塊上下文存儲(chǔ)器發(fā)出讀入命令和寫出命令;編解碼器,在編碼或解碼開始前請(qǐng)求所述控制裝置發(fā)出讀入命令,從而接收并利用宏塊上下文存儲(chǔ)器提供的相鄰宏塊的上下文信息和子宏塊上下文存儲(chǔ)器提供的子宏塊的上下文信息對(duì)當(dāng)前宏塊進(jìn)行編碼或解碼;在編碼或解碼過程中請(qǐng)求所述控制裝置發(fā)出寫出命令,根據(jù)編碼或解碼的結(jié)果保存并更新子宏塊上下文存儲(chǔ)器中的子宏塊的上下文信息;以及在編碼或解碼完成之后,向宏塊上下文存儲(chǔ)器輸出當(dāng)前宏塊的上下文信息。
文檔編號(hào)H04N7/26GK203057363SQ20122011270
公開日2013年7月10日 申請(qǐng)日期2012年3月22日 優(yōu)先權(quán)日2012年3月22日
發(fā)明者朱磊, 沙力, 蘭軍強(qiáng) 申請(qǐng)人:上海算芯微電子有限公司