本技術(shù)涉及數(shù)據(jù)存儲,特別是涉及一種視頻數(shù)據(jù)的存儲方法、裝置、計算機設(shè)備、計算機可讀存儲介質(zhì)和計算機程序產(chǎn)品。
背景技術(shù):
1、隨著視頻技術(shù)的發(fā)展,出現(xiàn)了針對各種視頻數(shù)據(jù)的存儲技術(shù)。h.266/vvc(versatile?video?coding,多功能視頻編碼)是新一代視頻編解碼標(biāo)準(zhǔn),相比于上一代標(biāo)準(zhǔn)h.265/hevc(high?efficiency?video?coding,高效視頻編碼)來說其壓縮效率進一步提升,尤其是對8k超高清,屏幕,高動態(tài)和360度全景視頻等新應(yīng)用上有更好的支持。同上一代標(biāo)準(zhǔn)h.265/hevc類似,h.266/vvc也是基于塊的壓縮,即先對一幀圖像按照ctu(codingtree?unit,編碼樹單元)大小進行分割,而后以ctu為單位進行cu(coding?unit,編碼單元)劃分,最后以cu為單位進行編碼。在幀間預(yù)測模式中,解碼器需要為cu導(dǎo)出運動矢量,運動矢量的導(dǎo)出亦有多種方式,其中一種便是對其時域同位參考幀中的同位參考塊的運動矢量按照比例進行縮放以得到當(dāng)前cu的運動矢量預(yù)測值。為了得到當(dāng)前cu的縮放過后的運動矢量scalemv,需要存儲時域同位參考幀poc_col與時域同位參考塊的參考幀colrefpoc的差值(即delta?poc,簡稱圖像顯示順序差)以及時域同位參考幀中的同位參考塊的運動矢量colmv。在vvc標(biāo)準(zhǔn)中delta?poc需要16比特進行存儲,colmv需要40比特進行存儲,且vvc標(biāo)準(zhǔn)中delta?poc與colmv的存儲粒度是8x8,相對于上一代標(biāo)準(zhǔn)hevc的16x16存儲粒度來說,vvc標(biāo)準(zhǔn)在存儲同位參考塊的delta?poc和colmv會占用較大訪存帶寬。
2、然而,現(xiàn)有的實現(xiàn)方案中,每個同位參考塊都會自己去存儲一個delta?poc。以4096x2160的分辨率為例,存儲一幀同位參考塊的delta?poc,在vvc標(biāo)準(zhǔn)和hevc標(biāo)準(zhǔn)下,對應(yīng)的數(shù)據(jù)量大小分別如下:
3、
4、
5、其中:deltapocsize_vvc表示在vvc標(biāo)準(zhǔn)下的數(shù)據(jù)量,deltapocsize_hevc表示在hevc標(biāo)準(zhǔn)下的數(shù)據(jù)量,bit為單位比特。
6、假設(shè),解碼器可以每秒解碼60幀,則在vvc和hevc標(biāo)準(zhǔn)下,存儲與讀取delta?poc所占用的帶寬分別如下:
7、wrbandw_vvc=2211840×60×2=265.42mbit/s
8、wrbandw_hevc=552960×60×2=66.36mbit/s
9、其中:wrbandw_vvc表示在vvc標(biāo)準(zhǔn)下存儲與讀取delta?poc所占用的帶寬,wrbandw_hevc表示在hevc標(biāo)準(zhǔn)下存儲與讀取delta?poc所占用的帶寬,mbit/s表示兆比特每秒。
10、綜上可知,若按照hevc的方案去存儲同位參考塊的delta?poc,相對于hevc來說,vvc會占用大量的訪存帶寬。
技術(shù)實現(xiàn)思路
1、基于此,有必要針對上述技術(shù)問題,提供一種能夠有效降低仿存帶寬的視頻數(shù)據(jù)的存儲方法、裝置、計算機設(shè)備、計算機可讀存儲介質(zhì)和計算機程序產(chǎn)品。
2、第一方面,本技術(shù)提供了一種視頻數(shù)據(jù)的存儲方法,包括:
3、構(gòu)建時域同位參考塊對應(yīng)的查找表,所述查找表包括:圖像輸出顯示順序差查找表,參考幀的圖像輸出顯示順序查找表中的任一種;其中,所述圖像輸出顯示順序差查找表用于存儲圖像的輸出顯示順序與其參考幀顯示輸出順序差,所述參考幀的圖像輸出顯示順序查找表用于存儲參考幀的圖像輸出顯示順序;
4、存儲所述時域同位參考塊對應(yīng)的查找表;
5、構(gòu)建所述查找表對應(yīng)的索引;
6、在按照編碼單元解碼時,通過所述查找表對應(yīng)的索引,從所述時域同位參考塊對應(yīng)的查找表中獲取存儲的數(shù)據(jù)。
7、在其中一個實施例中,當(dāng)所述查找表為圖像輸出顯示順序差查找表時,所述構(gòu)建時域同位參考塊對應(yīng)的查找表,包括:
8、將當(dāng)前幀的前向和后向參考幀列表發(fā)送給解碼器;
9、若當(dāng)前幀不是b幀時,則通過解碼器獲取前向參考幀的列表中每個參考幀的圖像輸出顯示順序,并與當(dāng)前幀的圖像輸出顯示順序相減,得到第一圖像輸出顯示順序差;將所述第一圖像輸出顯示順序差存入時域同位參考塊對應(yīng)的查找表;
10、若當(dāng)前幀為b幀時,則通過解碼器獲取前向參考幀的列表中每個參考幀的圖像輸出顯示順序,并與當(dāng)前幀的圖像輸出顯示順序相減,得到第一圖像輸出顯示順序差;通過解碼器獲取后向參考幀列表中每個參考幀的圖像輸出顯示順序,并與當(dāng)前幀的圖像輸出顯示順序相減得到第二圖像輸出顯示順序差;將所述第一圖像輸出顯示順序差和第二圖像輸出顯示順序差進行去重操作,得到去重后的圖像輸出顯示順序差;將所述去重后的圖像輸出顯示順序差存入時域同位參考塊對應(yīng)的查找表。
11、在其中一個實施例中,當(dāng)所述查找表為參考幀的圖像輸出顯示順序查找表時,所述構(gòu)建時域同位參考塊對應(yīng)的查找表,包括:
12、將當(dāng)前幀的前向和后向參考幀列表發(fā)送給解碼器;
13、若當(dāng)前幀不是b幀時,則通過解碼器獲取前向參考幀的列表中每個參考幀的圖像輸出顯示順序;將所述前向參考幀的列表中每個參考幀的圖像輸出顯示順序存入時域同位參考塊對應(yīng)的查找表;
14、若當(dāng)前幀為b幀時,則通過解碼器獲取前向參考幀的列表中每個參考幀的圖像輸出顯示順序,以及通過解碼器獲取后向參考幀列表中每個參考幀的圖像輸出顯示順序;將所述前向參考幀的列表中每個參考幀的圖像輸出顯示順序和后向參考幀列表中每個參考幀的圖像輸出顯示順序進行去重操作,得到去重后的圖像輸出顯示順序;將所述去重后的圖像輸出顯示順序存入時域同位參考塊對應(yīng)的查找表。
15、在其中一個實施例中,所述存儲所述時域同位參考塊對應(yīng)的查找表,包括:
16、將所述時域同位參考塊對應(yīng)的查找表保存到片外存儲器中。
17、在其中一個實施例中,當(dāng)所述查找表為圖像輸出顯示順序差查找表時,所述構(gòu)建所述查找表對應(yīng)的索引,包括:
18、按照預(yù)設(shè)的順序,確定每個解碼單元的當(dāng)前幀的圖像輸出顯示順序與參考幀的圖像輸出顯示順序之差在圖像輸出顯示順序差查找表中的位置,得到圖像輸出顯示順序差查找表的索引;
19、將所述圖像輸出顯示順序差查找表的索引保存到芯片內(nèi)部的寄存器中,其中,所述芯片內(nèi)部的寄存器的寬度與訪問片外存儲器的數(shù)據(jù)總線的寬度相同,若所述芯片內(nèi)部的寄存器存滿時,將所述芯片內(nèi)部的寄存器中的數(shù)據(jù)保存到片外存儲器中。
20、在其中一個實施例中,當(dāng)所述查找表為參考幀的圖像輸出顯示順序查找表時,所述構(gòu)建所述查找表對應(yīng)的索引,包括:
21、按照預(yù)設(shè)的順序,確定每個解碼單元的參考幀的圖像輸出顯示順序在參考幀的圖像輸出顯示順序查找表中的位置,得到參考幀的圖像輸出顯示順序查找表的索引;
22、將所述參考幀的圖像輸出顯示順序查找表的索引保存到芯片內(nèi)部的寄存器中,其中,所述芯片內(nèi)部的寄存器的寬度與訪問片外存儲器的數(shù)據(jù)總線的寬度相同,若所述芯片內(nèi)部的寄存器存滿時,將所述芯片內(nèi)部的寄存器中的數(shù)據(jù)保存到片外存儲器中。
23、在其中一個實施例中,所述通過所述查找表對應(yīng)的索引,從所述時域同位參考塊對應(yīng)的查找表中獲取存儲的數(shù)據(jù),包括:
24、在對當(dāng)前幀進行解碼時,從片外存儲器中讀取所述時域同位參考塊對應(yīng)的查找表,以及時域同位參考塊對應(yīng)的查找表的索引;
25、將讀取到的所述時域同位參考塊對應(yīng)的查找表,以及時域同位參考塊對應(yīng)的查找表的索引存儲到芯片內(nèi)部的寄存器中;
26、從芯片內(nèi)部的寄存器中讀取所述時域同位參考塊對應(yīng)的查找表的索引;
27、根據(jù)所述時域同位參考塊對應(yīng)的查找表的索引,確定所述時域同位參考塊對應(yīng)的查找表中同位參考塊的圖像輸出顯示順序與同位參考塊的參考幀的圖像輸出顯示順序之差的存儲位置,或者同位參考塊的參考幀的圖像輸出顯示順序的存儲位置;
28、從對應(yīng)的存儲位置獲取同位參考塊的圖像輸出顯示順序與同位參考塊的參考幀的圖像輸出顯示順序之差,或者同位參考塊的參考幀的圖像輸出顯示順序。
29、第二方面,本技術(shù)還提供了一種視頻數(shù)據(jù)的存儲裝置,包括:
30、查找表構(gòu)建模塊,用于構(gòu)建時域同位參考塊對應(yīng)的查找表,所述查找表包括:圖像輸出顯示順序差查找表,參考幀的圖像輸出顯示順序查找表中的任一種;其中,所述圖像輸出顯示順序差查找表用于存儲圖像的輸出顯示順序與其參考幀顯示輸出順序差,所述參考幀的圖像輸出顯示順序查找表用于存儲參考幀的圖像輸出顯示順序;
31、存儲模塊,用于存儲所述時域同位參考塊對應(yīng)的查找表;
32、索引構(gòu)建模塊,用于構(gòu)建所述查找表對應(yīng)的索引;
33、數(shù)據(jù)獲取模塊,用于在按照編碼單元解碼時,通過所述查找表對應(yīng)的索引,從所述時域同位參考塊對應(yīng)的查找表中獲取存儲的數(shù)據(jù)。
34、第三方面,本技術(shù)還提供了一種計算機設(shè)備,包括存儲器和處理器,所述存儲器存儲有計算機程序,所述處理器執(zhí)行所述計算機程序時實現(xiàn)以下步驟:
35、構(gòu)建時域同位參考塊對應(yīng)的查找表,所述查找表包括:圖像輸出顯示順序差查找表,參考幀的圖像輸出顯示順序查找表中的任一種;其中,所述圖像輸出顯示順序差查找表用于存儲圖像的輸出顯示順序與其參考幀顯示輸出順序差,所述參考幀的圖像輸出顯示順序查找表用于存儲參考幀的圖像輸出顯示順序;
36、存儲所述時域同位參考塊對應(yīng)的查找表;
37、構(gòu)建所述查找表對應(yīng)的索引;
38、在按照編碼單元解碼時,通過所述查找表對應(yīng)的索引,從所述時域同位參考塊對應(yīng)的查找表中獲取存儲的數(shù)據(jù)。
39、第四方面,本技術(shù)還提供了一種計算機可讀存儲介質(zhì),其上存儲有計算機程序,所述計算機程序被處理器執(zhí)行時實現(xiàn)以下步驟:
40、構(gòu)建時域同位參考塊對應(yīng)的查找表,所述查找表包括:圖像輸出顯示順序差查找表,參考幀的圖像輸出顯示順序查找表中的任一種;其中,所述圖像輸出顯示順序差查找表用于存儲圖像的輸出顯示順序與其參考幀顯示輸出順序差,所述參考幀的圖像輸出顯示順序查找表用于存儲參考幀的圖像輸出顯示順序;
41、存儲所述時域同位參考塊對應(yīng)的查找表;
42、構(gòu)建所述查找表對應(yīng)的索引;
43、在按照編碼單元解碼時,通過所述查找表對應(yīng)的索引,從所述時域同位參考塊對應(yīng)的查找表中獲取存儲的數(shù)據(jù)。
44、第五方面,本技術(shù)還提供了一種計算機程序產(chǎn)品,包括計算機程序,該計算機程序被處理器執(zhí)行時實現(xiàn)以下步驟:
45、構(gòu)建時域同位參考塊對應(yīng)的查找表,所述查找表包括:圖像輸出顯示順序差查找表,參考幀的圖像輸出顯示順序查找表中的任一種;其中,所述圖像輸出顯示順序差查找表用于存儲圖像的輸出顯示順序與其參考幀顯示輸出順序差,所述參考幀的圖像輸出顯示順序查找表用于存儲參考幀的圖像輸出顯示順序;
46、存儲所述時域同位參考塊對應(yīng)的查找表;
47、構(gòu)建所述查找表對應(yīng)的索引;
48、在按照編碼單元解碼時,通過所述查找表對應(yīng)的索引,從所述時域同位參考塊對應(yīng)的查找表中獲取存儲的數(shù)據(jù)。
49、上述視頻數(shù)據(jù)的存儲方法、裝置、計算機設(shè)備、計算機可讀存儲介質(zhì)和計算機程序產(chǎn)品,構(gòu)建時域同位參考塊對應(yīng)的查找表,所述查找表包括:圖像輸出顯示順序差查找表,參考幀的圖像輸出顯示順序查找表中的任一種;其中,所述圖像輸出顯示順序差查找表用于存儲圖像的輸出顯示順序與其參考幀顯示輸出順序差,所述參考幀的圖像輸出顯示順序查找表用于存儲參考幀的圖像輸出顯示順序;從而可以采用數(shù)據(jù)表的方式存儲圖像輸出顯示順序差和參考幀的圖像輸出顯示順序,以便后續(xù)建立索引查找。通過存儲所述時域同位參考塊對應(yīng)的查找表,并構(gòu)建所述查找表對應(yīng)的索引,從而能夠通過索引的方式來查找多種不同的圖像輸出顯示順序差和參考幀的圖像輸出顯示順序,可以在芯片的內(nèi)部寄存器中僅存儲查找表的索引,從而極大地減小了vvc對訪存帶寬的占用。在按照編碼單元解碼時,通過所述查找表對應(yīng)的索引,從所述時域同位參考塊對應(yīng)的查找表中獲取存儲的數(shù)據(jù)。從而能夠使得在幀級圖像輸出顯示順序差查找表中的位置所占的訪存帶寬僅有直接存儲圖像輸出顯示順序差所占的訪存帶寬的四分之一,有效降低訪問存儲器帶寬,提高圖像顯示性能。