本發(fā)明實(shí)施例涉及視頻處理,尤其涉及一種存儲(chǔ)器結(jié)構(gòu)、存儲(chǔ)及熵解碼方法、芯片、設(shè)備及存儲(chǔ)介質(zhì)。
背景技術(shù):
1、隨著網(wǎng)絡(luò)技術(shù)和視頻技術(shù)的不斷發(fā)展,視頻在各行各業(yè)的應(yīng)用在不斷增加,數(shù)字視頻已成為現(xiàn)代人類社會(huì)的重要組成部分。而由于視頻所承載的數(shù)據(jù)量巨大,在實(shí)際應(yīng)用中,需要對(duì)視頻數(shù)據(jù)進(jìn)行壓縮編碼處理,以減緩存儲(chǔ)和傳輸?shù)膲毫?。編碼器通過(guò)預(yù)測(cè)、變換、量化和熵編碼等過(guò)程處理視頻數(shù)據(jù),以實(shí)現(xiàn)數(shù)據(jù)壓縮生成視頻碼流。視頻碼流可用于存儲(chǔ)或者網(wǎng)絡(luò)傳輸。解碼器通過(guò)熵解碼、反量化、反變換、預(yù)測(cè)補(bǔ)償對(duì)視頻碼流進(jìn)行解碼操作,以重建視頻數(shù)據(jù)。
2、編碼單元(coding?unit,cu)是視頻編碼的基本單位,且通常會(huì)采用編碼單元所對(duì)應(yīng)的系數(shù)編碼塊(block)進(jìn)行熵編碼,系數(shù)編碼塊中具有編碼系數(shù),則通過(guò)熵解碼進(jìn)行逆操作,從而獲取系數(shù)編碼塊中的編碼系數(shù),實(shí)現(xiàn)對(duì)視頻碼流的解碼。
3、但是,目前用于存儲(chǔ)編碼系數(shù)的存儲(chǔ)器結(jié)構(gòu)的占用面積較大。
技術(shù)實(shí)現(xiàn)思路
1、本發(fā)明實(shí)施例解決的問(wèn)題是提供一種存儲(chǔ)器結(jié)構(gòu)、存儲(chǔ)及熵解碼方法、芯片、設(shè)備及存儲(chǔ)介質(zhì),減少存儲(chǔ)器結(jié)構(gòu)中存儲(chǔ)單元的數(shù)量,從而減小存儲(chǔ)器結(jié)構(gòu)的占用面積。
2、為解決上述問(wèn)題,本發(fā)明實(shí)施例提供一種存儲(chǔ)器結(jié)構(gòu),所述存儲(chǔ)器結(jié)構(gòu)用于對(duì)經(jīng)熵解碼得到的系數(shù)編碼塊中的編碼系數(shù)進(jìn)行存儲(chǔ),所述存儲(chǔ)器結(jié)構(gòu)包括:行存儲(chǔ)模塊,包括與解碼單元的行數(shù)相同的多個(gè)行存儲(chǔ)單元,所述行存儲(chǔ)單元與所述解碼單元的縱坐標(biāo)一一對(duì)應(yīng),且每個(gè)所述行存儲(chǔ)單元用于存儲(chǔ)相對(duì)應(yīng)的縱坐標(biāo)下的編碼系數(shù)、以及被存儲(chǔ)的編碼系數(shù)在所述系數(shù)編碼塊中的橫坐標(biāo);列存儲(chǔ)模塊,包括與所述解碼單元的列數(shù)相同的多個(gè)列存儲(chǔ)單元,所述列存儲(chǔ)單元與所述解碼單元的橫坐標(biāo)一一對(duì)應(yīng),且每個(gè)所述列存儲(chǔ)單元用于存儲(chǔ)相對(duì)應(yīng)的橫坐標(biāo)下的編碼系數(shù)、以及被存儲(chǔ)的編碼系數(shù)在所述系數(shù)編碼塊中的縱坐標(biāo);對(duì)角線存儲(chǔ)模塊,包括多個(gè)對(duì)角線存儲(chǔ)單元,所述對(duì)角線存儲(chǔ)單元的數(shù)量等于所述解碼單元的行數(shù)和列數(shù)之和減去一,所述對(duì)角線存儲(chǔ)單元與對(duì)角位置線一一對(duì)應(yīng),所述對(duì)角位置線包括所述解碼單元的對(duì)角線以及多條平行于所述對(duì)角線的平行線,且每個(gè)所述對(duì)角線存儲(chǔ)單元用于存儲(chǔ)相對(duì)應(yīng)的對(duì)角位置線上的編碼系數(shù)、以及被存儲(chǔ)的編碼系數(shù)在所述系數(shù)編碼塊中的橫坐標(biāo)或縱坐標(biāo)。
3、相應(yīng)的,本發(fā)明實(shí)施例還提供一種采用前述實(shí)施例的存儲(chǔ)器結(jié)構(gòu)的系數(shù)存儲(chǔ)方法,所述系數(shù)存儲(chǔ)方法用于對(duì)經(jīng)熵解碼得到的系數(shù)編碼塊中的編碼系數(shù)進(jìn)行存儲(chǔ),所述系數(shù)存儲(chǔ)方法包括:基于所述編碼系數(shù)在所述系數(shù)編碼塊中的縱坐標(biāo),將所述編碼系數(shù)及其在系數(shù)編碼塊中的橫坐標(biāo)一并存儲(chǔ)至相對(duì)應(yīng)的行存儲(chǔ)單元中;基于所述編碼系數(shù)在所述系數(shù)編碼塊中的橫坐標(biāo),將所述編碼系數(shù)及其在系數(shù)編碼塊中的縱坐標(biāo)一并存儲(chǔ)至相對(duì)應(yīng)的列存儲(chǔ)單元中;基于所述編碼系數(shù)所在的對(duì)角位置線,將所述編碼系數(shù)及其在系數(shù)編碼塊中的橫坐標(biāo)或縱坐標(biāo)一并存儲(chǔ)至相對(duì)應(yīng)的對(duì)角線存儲(chǔ)單元中。
4、相應(yīng)的,本發(fā)明實(shí)施例還提供一種熵解碼方法,所述熵解碼方法基于存儲(chǔ)在前述實(shí)施例的存儲(chǔ)器結(jié)構(gòu)中的編碼系數(shù)進(jìn)行,熵解碼方法包括:確定目標(biāo)點(diǎn)在系數(shù)編碼塊中的橫坐標(biāo)和縱坐標(biāo),所述目標(biāo)點(diǎn)為所述系數(shù)編碼塊中當(dāng)前待解碼的位置點(diǎn);基于所述目標(biāo)點(diǎn)所對(duì)應(yīng)的橫坐標(biāo)和縱坐標(biāo),從所述縱坐標(biāo)所對(duì)應(yīng)的行存儲(chǔ)單元中進(jìn)行第一搜索,所述第一搜索用于提取若干個(gè)與所述目標(biāo)點(diǎn)在行方向上連續(xù)相鄰的參考點(diǎn)的編碼系數(shù)作為第一參考系數(shù);基于所述目標(biāo)點(diǎn)所對(duì)應(yīng)的橫坐標(biāo)和縱坐標(biāo),從所述橫坐標(biāo)所對(duì)應(yīng)的列存儲(chǔ)單元中進(jìn)行第二搜索,所述第二搜索用于提取若干個(gè)與所述目標(biāo)點(diǎn)在列方向上連續(xù)相鄰的參考點(diǎn)的編碼系數(shù)作為第二參考系數(shù);基于所述目標(biāo)點(diǎn)所對(duì)應(yīng)的橫坐標(biāo)和縱坐標(biāo),從所述橫坐標(biāo)和縱坐標(biāo)所在的對(duì)角位置線所對(duì)應(yīng)的對(duì)角線存儲(chǔ)單元中進(jìn)行第三搜索,所述第三搜索用于提取若干個(gè)與所述目標(biāo)點(diǎn)在對(duì)角線方向上連續(xù)相鄰的參考點(diǎn)的編碼系數(shù)作為第三參考系數(shù);基于對(duì)所述第一參考系數(shù)、第二參考系數(shù)和第三參考系數(shù)的提取結(jié)果,對(duì)所述目標(biāo)點(diǎn)進(jìn)行熵解碼。
5、相應(yīng)的,本發(fā)明實(shí)施例還提供一種芯片,包括前述實(shí)施例提供的存儲(chǔ)器結(jié)構(gòu)。
6、相應(yīng)地,本發(fā)明實(shí)施例還提供一種設(shè)備,包括至少一個(gè)存儲(chǔ)器和至少一個(gè)處理器,所述存儲(chǔ)器存儲(chǔ)有一條或多條計(jì)算機(jī)指令,其中,所述一條或多條計(jì)算機(jī)指令被所述處理器執(zhí)行以實(shí)現(xiàn)本發(fā)明實(shí)施例所述的系數(shù)存儲(chǔ)方法,或者實(shí)現(xiàn)本發(fā)明實(shí)施例所述的熵解碼方法。
7、相應(yīng)地,本發(fā)明實(shí)施例還提供一種存儲(chǔ)介質(zhì),所述存儲(chǔ)介質(zhì)存儲(chǔ)有一條或多條計(jì)算機(jī)指令,所述一條或多條計(jì)算機(jī)指令用于實(shí)現(xiàn)本發(fā)明實(shí)施例所述的系數(shù)存儲(chǔ)方法,或者實(shí)現(xiàn)本發(fā)明實(shí)施例所述的熵解碼方法。
8、與現(xiàn)有技術(shù)相比,本發(fā)明實(shí)施例的技術(shù)方案具有以下優(yōu)點(diǎn):
9、本發(fā)明實(shí)施例提供的存儲(chǔ)器結(jié)構(gòu)中,存儲(chǔ)器結(jié)構(gòu)包括行存儲(chǔ)模塊、列存儲(chǔ)模塊和對(duì)角線存儲(chǔ)模塊,在進(jìn)行解熵碼操作時(shí),在確定系數(shù)編碼塊中當(dāng)前待解碼的目標(biāo)點(diǎn)后,通常是通過(guò)該目標(biāo)點(diǎn)周圍的其它編碼系數(shù)來(lái)進(jìn)行熵解碼的計(jì)算,也即根據(jù)若干個(gè)在行方向上連續(xù)相鄰的參考點(diǎn)的編碼系數(shù)、若干個(gè)在列方向上連續(xù)相鄰的參考點(diǎn)的編碼系數(shù)、以及若干個(gè)在對(duì)角線方向上連續(xù)相鄰的參考點(diǎn)的編碼系數(shù)進(jìn)行熵解碼的計(jì)算,因此基于該熵解碼方式,使行存儲(chǔ)單元與解碼單元的縱坐標(biāo)一一對(duì)應(yīng),且每個(gè)行存儲(chǔ)單元用于存儲(chǔ)相對(duì)應(yīng)的縱坐標(biāo)下的編碼系數(shù),則在確定目標(biāo)點(diǎn)所對(duì)應(yīng)的坐標(biāo)后,即可根據(jù)目標(biāo)點(diǎn)的縱坐標(biāo)找到對(duì)應(yīng)的行存儲(chǔ)單元,并通過(guò)目標(biāo)點(diǎn)的橫坐標(biāo)搜索縱坐標(biāo)相同的若干個(gè)行方向上相鄰的編碼系數(shù),使列存儲(chǔ)單元與解碼單元的橫坐標(biāo)一一對(duì)應(yīng),且每個(gè)列存儲(chǔ)單元用于存儲(chǔ)相對(duì)應(yīng)的橫坐標(biāo)下的編碼系數(shù),則在確定目標(biāo)點(diǎn)所對(duì)應(yīng)的坐標(biāo)后,即可根據(jù)目標(biāo)點(diǎn)的橫坐標(biāo)找到對(duì)應(yīng)的列存儲(chǔ)單元,并通過(guò)目標(biāo)點(diǎn)的縱坐標(biāo)搜索橫標(biāo)相同的若干個(gè)列方向上相鄰的編碼系數(shù),使對(duì)角線存儲(chǔ)單元與解碼單元的對(duì)角位置線一一對(duì)應(yīng),且每個(gè)對(duì)角線存儲(chǔ)單元用于存儲(chǔ)相對(duì)應(yīng)的對(duì)角位置線上的編碼系數(shù),則在確定目標(biāo)點(diǎn)的所對(duì)應(yīng)的坐標(biāo)后,即可根據(jù)目標(biāo)點(diǎn)的縱坐標(biāo)和橫坐標(biāo)找到對(duì)應(yīng)的對(duì)角線存儲(chǔ)單元,并通過(guò)目標(biāo)點(diǎn)的橫坐標(biāo)或縱坐標(biāo)搜索具有預(yù)設(shè)坐標(biāo)偏移量的若干個(gè)對(duì)角線方向上相鄰的編碼系數(shù);綜上,相比于與解碼單元的布局相同的存儲(chǔ)陣列的方案,本發(fā)明實(shí)施例采用行存儲(chǔ)模塊、列存儲(chǔ)模塊和對(duì)角線存儲(chǔ)模塊,減少了存儲(chǔ)器結(jié)構(gòu)中存儲(chǔ)單元的數(shù)量,從而減小存儲(chǔ)器結(jié)構(gòu)的占用面積。
10、可選方案中,所述存儲(chǔ)器結(jié)構(gòu)包括寄存器(flip?flop)結(jié)構(gòu),也即行存儲(chǔ)模塊、列存儲(chǔ)模塊和對(duì)角線存儲(chǔ)模塊中的存儲(chǔ)單元均為寄存器,寄存器的響應(yīng)速度更快,從而能夠在減小存儲(chǔ)器結(jié)構(gòu)的占用面積的同時(shí),提高熵解碼的速度,以滿足視頻解碼的速度要求。
1.一種存儲(chǔ)器結(jié)構(gòu),其特征在于,所述存儲(chǔ)器結(jié)構(gòu)用于對(duì)經(jīng)熵解碼得到的系數(shù)編碼塊中的編碼系數(shù)進(jìn)行存儲(chǔ),所述存儲(chǔ)器結(jié)構(gòu)包括:
2.如權(quán)利要求1所述的存儲(chǔ)器結(jié)構(gòu),其特征在于,每個(gè)所述行存儲(chǔ)單元包括:
3.如權(quán)利要求1所述的存儲(chǔ)器結(jié)構(gòu),其特征在于,每個(gè)所述列存儲(chǔ)單元包括:
4.如權(quán)利要求1所述的存儲(chǔ)器結(jié)構(gòu),其特征在于,所述對(duì)角線存儲(chǔ)單元用于對(duì)所述編碼系數(shù)經(jīng)飽和處理后得到的第三最新編碼系數(shù)進(jìn)行存儲(chǔ),所述第三最新編碼系數(shù)的位寬等于與目標(biāo)點(diǎn)在對(duì)角方向上最相鄰的參考點(diǎn)所需要的預(yù)設(shè)比特位數(shù),所述目標(biāo)點(diǎn)為所述系數(shù)編碼塊中當(dāng)前待解碼的位置點(diǎn)。
5.如權(quán)利要求2~4中任一項(xiàng)所述的存儲(chǔ)器結(jié)構(gòu),其特征在于,所述參考點(diǎn)所需要的預(yù)設(shè)比特位數(shù)等于6比特。
6.如權(quán)利要求1~4中任一項(xiàng)所述的存儲(chǔ)器結(jié)構(gòu),其特征在于,所述編碼系數(shù)對(duì)應(yīng)的對(duì)角線存儲(chǔ)單元基于表達(dá)式(n-1)-x+y確定;其中,n表示解碼單元的行數(shù)和列數(shù)中的最大值,x表示所述編碼系數(shù)在系數(shù)編碼塊中的橫坐標(biāo),y表示所述編碼系數(shù)在系數(shù)編碼塊中的縱坐標(biāo)。
7.如權(quán)利要求1~4中任一項(xiàng)所述的存儲(chǔ)器結(jié)構(gòu),其特征在于,所述行存儲(chǔ)單元的數(shù)量與最大解碼單元的行數(shù)相同;所述列存儲(chǔ)單元的數(shù)量與最大解碼單元的列數(shù)相同;所述對(duì)角線存儲(chǔ)單元的數(shù)量等于最大解碼單元的行數(shù)和列數(shù)之和減去一。
8.如權(quán)利要求7所述的存儲(chǔ)器結(jié)構(gòu),其特征在于,所述最大解碼單元的尺寸為32×32。
9.如權(quán)利要求1~4中任一項(xiàng)所述的存儲(chǔ)器結(jié)構(gòu),其特征在于,所述存儲(chǔ)器結(jié)構(gòu)包括寄存器結(jié)構(gòu)或者sram器件結(jié)構(gòu)。
10.一種采用如權(quán)利要求1~9中任一項(xiàng)所述的存儲(chǔ)器結(jié)構(gòu)的系數(shù)存儲(chǔ)方法,其特征在于,所述系數(shù)存儲(chǔ)方法用于對(duì)經(jīng)熵解碼得到的系數(shù)編碼塊中的編碼系數(shù)進(jìn)行存儲(chǔ),所述系數(shù)存儲(chǔ)方法包括:
11.如權(quán)利要求10所述的系數(shù)存儲(chǔ)方法,其特征在于,每個(gè)所述行存儲(chǔ)單元包括第一行存儲(chǔ)單元和第二行存儲(chǔ)單元;
12.如權(quán)利要求10所述的系數(shù)存儲(chǔ)方法,其特征在于,每個(gè)所述列存儲(chǔ)單元包括第一列存儲(chǔ)單元和第二列存儲(chǔ)單元;
13.如權(quán)利要求10所述的系數(shù)存儲(chǔ)方法,其特征在于,將所述編碼系數(shù)及其在系數(shù)編碼塊中的橫坐標(biāo)或縱坐標(biāo)一并存儲(chǔ)至相對(duì)應(yīng)的對(duì)角線存儲(chǔ)單元中之前,還包括:對(duì)所述編碼系數(shù)進(jìn)行飽和處理,得到第三最新編碼系數(shù),所述飽和處理用于使所述第三最新編碼系數(shù)的位寬等于與目標(biāo)點(diǎn)在對(duì)角方向上最相鄰的參考點(diǎn)所需要的預(yù)設(shè)比特位數(shù),所述目標(biāo)點(diǎn)為所述系數(shù)編碼塊中當(dāng)前待解碼的位置點(diǎn);
14.如權(quán)利要求11~13中任一項(xiàng)所述的系數(shù)存儲(chǔ)方法,其特征在于,所述參考點(diǎn)所需要的預(yù)設(shè)比特位數(shù)等于6比特。
15.如權(quán)利要求11~13中任一項(xiàng)所述的系數(shù)存儲(chǔ)方法,其特征在于,熵解碼后得到的編碼系數(shù)的位寬為j個(gè)比特,所述飽和處理的方式包括:判斷所述編碼系數(shù)中最高的(j-k)個(gè)比特位是否均為0,若是,則保留所述編碼系數(shù)中最低的k個(gè)比特位,否則,只保留所述編碼系數(shù)中最低的比特位,其余(k-1)個(gè)比特位采用1填充;其中,k表示所述參考點(diǎn)所需要的預(yù)設(shè)比特位數(shù)。
16.如權(quán)利要求10~13中任一項(xiàng)所述的系數(shù)存儲(chǔ)方法,其特征在于,基于所述編碼系數(shù)所在的對(duì)角位置線,將所述編碼系數(shù)及其在系數(shù)編碼塊中的橫坐標(biāo)或縱坐標(biāo)一并存儲(chǔ)至對(duì)應(yīng)的對(duì)角線存儲(chǔ)單元中,包括:基于表達(dá)式(n-1)-x+y確定所述編碼系數(shù)對(duì)應(yīng)的對(duì)角線存儲(chǔ)單元;其中,n表示解碼單元的行數(shù)和列數(shù)中的最大值,x表示所述編碼系數(shù)在系數(shù)編碼塊中的橫坐標(biāo),y表示所述編碼系數(shù)在系數(shù)編碼塊中的縱坐標(biāo)。
17.一種熵解碼方法,其特征在于,所述熵解碼方法基于存儲(chǔ)在如權(quán)利要求1~9中任一項(xiàng)所述的存儲(chǔ)器結(jié)構(gòu)中的編碼系數(shù)進(jìn)行,所述熵解碼方法包括:
18.如權(quán)利要求17所述的熵解碼方法,其特征在于,每個(gè)所述行存儲(chǔ)單元包括:
19.如權(quán)利要求17所述的熵解碼方法,其特征在于,每個(gè)所述列存儲(chǔ)單元包括:
20.如權(quán)利要求17所述的熵解碼方法,其特征在于,所述對(duì)角線存儲(chǔ)單元用于對(duì)所述編碼系數(shù)經(jīng)飽和處理后得到的第三最新編碼系數(shù)進(jìn)行存儲(chǔ),所述第三最新編碼系數(shù)的位寬等于與目標(biāo)點(diǎn)在對(duì)角方向上最相鄰的參考點(diǎn)所需要的預(yù)設(shè)比特位數(shù),所述目標(biāo)點(diǎn)為所述系數(shù)編碼塊中當(dāng)前待解碼的位置點(diǎn);
21.如權(quán)利要求17~20中任一項(xiàng)所述的熵解碼方法,其特征在于,從所述橫坐標(biāo)和縱坐標(biāo)所在的對(duì)角位置線所對(duì)應(yīng)的對(duì)角線存儲(chǔ)單元中進(jìn)行第三搜索的步驟中,基于表達(dá)式(n-1)-x+y確定所述目標(biāo)點(diǎn)對(duì)應(yīng)的對(duì)角線存儲(chǔ)單元;其中,n表示解碼單元的行數(shù)和列數(shù)中的最大值,x表示所述目標(biāo)點(diǎn)在系數(shù)編碼塊中的橫坐標(biāo),y表示所述目標(biāo)點(diǎn)在系數(shù)編碼塊中的縱坐標(biāo)。
22.一種芯片,其特征在于,包括如權(quán)利要求1~9中任一項(xiàng)所述的存儲(chǔ)器結(jié)構(gòu)。
23.一種設(shè)備,其特征在于,包括至少一個(gè)存儲(chǔ)器和至少一個(gè)處理器,所述存儲(chǔ)器存儲(chǔ)有一條或多條計(jì)算機(jī)指令,其中,所述一條或多條計(jì)算機(jī)指令被所述處理器執(zhí)行以實(shí)現(xiàn)如權(quán)利要求10~16中任一項(xiàng)所述的系數(shù)存儲(chǔ)方法,或者,實(shí)現(xiàn)如權(quán)利要求17~21中任一項(xiàng)所述的熵解碼方法。
24.一種存儲(chǔ)介質(zhì),其特征在于,所述存儲(chǔ)介質(zhì)存儲(chǔ)有一條或多條計(jì)算機(jī)指令,所述一條或多條計(jì)算機(jī)指令用于實(shí)現(xiàn)如權(quán)利要求10~16中任一項(xiàng)所述的系數(shù)存儲(chǔ)方法,或者,實(shí)現(xiàn)如權(quán)利要求17~21中任一項(xiàng)所述的熵解碼方法。