一種適用于hevc標準的基于臟位的兩級dct系數(shù)存儲方法
【技術領域】
[0001] 本發(fā)明屬于高清數(shù)字視頻壓縮編解碼技術領域,具體為一種適用于肥VC標準中 基于臟位的兩級DCT系數(shù)存儲方法。
【背景技術】
[0002] 肥VC(Hi曲EfficiencyVideoCoding)是由國際電信組織(ITU)和運動圖像專 家組(MPEG)聯(lián)合成立的組織JCTVC提出的下一代視頻編解碼標準。目標是在相同的視覺 效果的前提下,相比于上一代標準,即H. 264/AVC標準,壓縮率提高一倍。
[000引基于肥VC的視頻編碼器,主要由W下模塊組成:帖內預測、帖間預測、變換、量化、 反量化、反變換、重建、去方塊濾波器、自適應樣點補償?shù)?。其中,離散余弦變換(DCT)是編 碼器必不可少的一部分,負責集中殘差數(shù)據(jù)的能量,W供隨后的量化和賭編碼。由于肥VC 標準下圖像處理塊的大小已經(jīng)到達了 64X64,離散余弦變換(DCT)處理塊的大小也到達了 32X32。運使得常用的行列變換架構中所需要的轉置存儲器變得異常龐大,如圖1所示。對 于如此龐大的存儲需求,傳統(tǒng)的基于寄存器的和基于靜態(tài)隨機存儲器的存儲方式已經(jīng)變得 不再適用。
【發(fā)明內容】
[0004] 本發(fā)明的目的在于提出一種可W克服現(xiàn)有技術不足的、能有效適用于肥VC標準 中基于臟位的兩級離散余弦變換(DCT)系數(shù)存儲方法。
[0005] 本發(fā)明提出的適用于肥VC標準的兩級離散余弦變換(DCT)系數(shù)存儲方法,是基于 臟位的存儲方法。具體步驟為: 首先,將離散余弦變換(DCT)系數(shù)(W下簡稱系數(shù)),分成=個部分:符號位,高位數(shù)據(jù)和 低位數(shù)據(jù)。在補碼表示的方式下,肥VC標準中的系數(shù)可W用16比特表示。其中,最高位是 符號位,剩余比特是數(shù)據(jù)位。而更進一步地本發(fā)明將數(shù)據(jù)位的較高部分劃歸為高位數(shù)據(jù),剩 余比特劃歸為低位數(shù)據(jù)。具體的劃分方法可W選擇不同的比重,如圖2所示的將高11位劃 為高位數(shù)據(jù),低4位劃為低位數(shù)據(jù)。
[0006] 接著,采用靜態(tài)隨機訪問存儲器(SRAM)作為存儲層次中的第一級,運一級用來存 儲符號位、低位數(shù)據(jù)和表征該高位是否涵蓋信息的臟位;采用寄存器作為存儲層次中的第 二級,運一級用來存儲一些需要存儲的高位數(shù)據(jù)。
[0007] 此處,是否涵蓋信息取決于該高位內的所有比特是否都等于符號位。在補碼表示 下,如果一個數(shù)接近于0,那么該數(shù)較高幾個比特都將是符號位的擴展。而殘差經(jīng)過離散余 弦變換(DCT)之后,大量的數(shù)據(jù)都將接近于0。對于運些數(shù),只要知道了其符號位,就可W得 到高位數(shù)據(jù),因此,它們是不涵蓋信息的。本發(fā)明約定在運種情況下,臟位無效,等于某個特 定值,如0。那么,當臟位等于0時,高位數(shù)據(jù)就是符號位的擴展。而對于涵蓋信息的高位數(shù) 據(jù),則他們將通過第二級存儲層次,即寄存器存儲,并且使用計數(shù)器推算高位指針并進行索 弓I。W上描述的存儲層次如圖3所示。
[000引為了簡單地建立索引關系,本發(fā)明采用(但不僅限于)計數(shù)器。在建立索引關系時, 硬件可W使用一個計數(shù)器計數(shù)需要存儲的高位數(shù)據(jù)的數(shù)目。該計數(shù)器從0開始記錄,當且 僅當一個新的需要存儲的高位數(shù)據(jù)出現(xiàn),硬件處理器就將該數(shù)據(jù)存儲于當前計數(shù)器所對應 的寄存器中,臟位置為1,接著計數(shù)器自增1。
[0009] 本發(fā)明通過層次化的存儲策略減少硬件代價。
【附圖說明】
[0010] 圖1 :離散余弦變換(DCT)與轉置存儲器。 W11] 圖2:對于系數(shù)的劃分。 陽01引圖3:兩級存儲策略圖示。
【具體實施方式】
[0013] 下面通過實施例,進一步具體描述本發(fā)明方法。
[0014] 假設當前需要存儲的16X16系數(shù)矩陣如下表所示,且按照光柵順序存儲。
[0015] 那么,本發(fā)明將有如下寫入過程: 初始情況下,所有靜態(tài)隨機存儲器(SRAM)和寄存器的存儲空間都是0,計數(shù)器是0。
[0016] 對于第0行第0列的系數(shù)24,它所對應的二進制補碼是0000_0000_0001_1000,其 中,符號位為0,高位數(shù)據(jù)為〇〇〇_〇〇〇〇_〇〇〇 1,低位數(shù)據(jù)為1000。由于高位數(shù)據(jù)不是符號位的 擴展,因此,高位數(shù)據(jù)被存儲在0號寄存器中;符號位0,臟位1和低位數(shù)據(jù)1000被存儲在 靜態(tài)隨機存儲器(SRAM)的0地址中;計數(shù)器隨后自增1,變?yōu)?。
[0017] 對于第0行第1列的系數(shù)2,它所對應的二進制補碼是0000_0000_0000_0010,其 中,符號位為0,高位數(shù)據(jù)為〇〇〇_〇〇〇〇_〇〇〇〇,低位數(shù)據(jù)為0010。由于高位數(shù)據(jù)是符號位的擴 展,因此,不需要存儲高位數(shù)據(jù);符號位0,臟位0和低位數(shù)據(jù)OOlO被存儲在靜態(tài)隨機存儲 器(SRAM)的1地址中;計數(shù)器不變。
[0018] 對于第0行第2列的系數(shù)-7,它所對應的二進制補碼是1111_1111_1111_1001,其 中,符號位為1,高位數(shù)據(jù)為111_1111_1111,低位數(shù)據(jù)為1001。由于高位數(shù)據(jù)是符號位的擴 展,因此,不需要存儲高位數(shù)據(jù);符號位1,臟位0和低位數(shù)據(jù)1001被存儲在靜態(tài)隨機存儲 器(SRAM)的1地址中;計數(shù)器不變。
[0019] 對于第0行第3列的系數(shù)-1,它所對應的二進制補碼是1111_1111_1111_1111,其 中,符號位為1,高位數(shù)據(jù)為111_1111_1111,低位數(shù)據(jù)為1111。由于高位數(shù)據(jù)是符號位的擴 展,因此,不需要存儲高位數(shù)據(jù);符號位1,臟位0和低位數(shù)據(jù)1111被存儲在靜態(tài)隨機存儲 器(SRAM)的3地址中;計數(shù)器不變。
[0020] ......。
[0021] 對于第1行第0列的系數(shù)7,它所對應的二進制補碼是0000_0000_0000_0111,其 中,符號位為0,高位數(shù)據(jù)為〇〇〇_〇〇〇〇_〇〇〇〇,低位數(shù)據(jù)為Ol11。由于高位數(shù)據(jù)是符號位的擴 展,因此,不需要存儲高位數(shù)據(jù);符號位0,臟位0和低位數(shù)據(jù)0111被存儲在靜態(tài)隨機存儲 器(SRAM)的16地址中;計數(shù)器不變。
[0022] 對于第1行第1列的系數(shù)-17,它所對應的二進制補碼是 其中,符號位為1,高位數(shù)據(jù)為111_1111_1110,低位數(shù)據(jù)為1111。由于高位數(shù)據(jù)不是符號位 的擴展,因此,高位數(shù)據(jù)被存儲在1號寄存器中;符號位1,臟位1和低位數(shù)據(jù)1111被存儲 在靜態(tài)隨機存儲器(SRAM)的17地址中;計數(shù)器隨后自增1,變?yōu)?。
[0023] 對于第1行第2列的系數(shù)21,它所對應的二進制補碼是0000_0000_0001_0101,其 中,符號位為0,高位數(shù)據(jù)為000_0000_0001,低位數(shù)據(jù)為OlOl。由于高位數(shù)據(jù)不是符號位的 擴展,因此,高位數(shù)據(jù)被存儲在2號寄存器中;符號位0,臟位1和低位數(shù)據(jù)OlOl被存儲在 靜態(tài)隨機存儲器(SRAM)的18地址中;計數(shù)器隨后自增1,變?yōu)?。
[0024] ......。
[00巧]本發(fā)明將有如下讀出過程: 對于第0行第0列的系數(shù)24,它被存儲在靜態(tài)隨機存儲器(SRAM)的0地址,符號位是 0,臟位是1,低位數(shù)據(jù)是1000 ;由于臟位是1,因此,高位數(shù)據(jù)被存儲當前計數(shù)器所對應的寄 存器,即,0號寄存器,內容是〇〇〇_〇〇〇〇_〇〇〇 1。所W,最后的值是〇_〇〇〇_〇〇〇〇_〇〇〇 1_1〇〇〇,也 就是24,接著計數(shù)器自增1,變?yōu)?。
[00%] 對于第0行第1列的系數(shù)2,它被存儲在靜態(tài)隨機存儲器(SRAM)的1地址,符號位 是0,臟位是0,低位數(shù)據(jù)是OOlO;由于指針是0,因此,高位數(shù)據(jù)就是符號位的擴展,也就是 000_0000_0000。所W,最后的值是 0_000_0000_0000_0010,也就是 2。
[0027] 對于第0行第2列的系數(shù)-7,它被存儲在靜態(tài)隨機存儲器(SRAM)的2地址,符號 位是1,臟位是0,低位數(shù)據(jù)是1001 ;由于指針是0,因此,高位數(shù)據(jù)就是符號位的擴展,也就 是 所W,最后的值是 也就是-7。
[0028] 對于第0行第3列的系數(shù)-1,它被存儲在靜態(tài)隨機存儲器(SRAM)的3地址,符號 位是1,臟位是0,低位數(shù)據(jù)是1111 ;由于指針是0,因此,高位數(shù)據(jù)就是符號位的擴展,也就 是 所W,最后的值是 也就是-1。
[0029] ......。
[0030] 對于第1行第0列的系數(shù)7,它被存儲在靜態(tài)隨機存儲器(SRAM)的16地址,符號 位0,臟位是0,低位數(shù)據(jù)是0111 ;由于指針是0,因此,高位數(shù)據(jù)就是符號位的擴展,也就是 000_0000_0000。所W,最后的值是 0_000_0000_0000_0000,也就是 7。 陽03U 對于第1行第1列的系數(shù)-17,它被存儲在靜態(tài)隨機存儲器(SRAM)的17地址,符號 位1,臟位是1,低位數(shù)據(jù)是1111 ;由于臟位是1,因此,高位數(shù)據(jù)被存儲當前計數(shù)器所對應的 寄存器,即,!號寄存器,內容是所W,最后的值是 也就是-17,變?yōu)?。 陽03引對于第1行第2列的系數(shù)21,它被存儲在靜態(tài)隨機存儲器(SRAM)的18地址,符號 位0,臟位是1,低位數(shù)據(jù)是OlOl;由于臟位是1,因此,高位數(shù)據(jù)被存儲當前計數(shù)器所對應的 寄存器,即,2號寄存器,內容是000_0000_0001。所W,最后的值是0_000_0000_0001_0101, 也就是21,變?yōu)?。
[0033] ......。
【主權項】
1. 一種適用于HEVC標準的基于臟位的兩級DCT系數(shù)存儲方法,其特征在于具體步驟 為: 首先,將DCT系數(shù)分成三個部分:符號位、高位數(shù)據(jù)和低位數(shù)據(jù);在補碼表示的方式下,HEVC標準中的系數(shù)用16比特表示,其中,最高位是符號位,剩余比特是數(shù)據(jù)位;現(xiàn)將數(shù)據(jù)位 的較高部分劃歸為高位數(shù)據(jù),剩余比特劃歸為低位數(shù)據(jù); 接著,采用SRAM作為存儲層次中的第一級,用來存儲符號位、低位數(shù)據(jù)和表征該高位 是否涵蓋信息的臟位;采用寄存器作為存儲層次中的第二級,用來存儲一些需要存儲的高 位數(shù)據(jù); 當臟位等于0即臟位無效時,高位數(shù)據(jù)就是符號位的擴展;而對于涵蓋信息的高位數(shù) 據(jù),則它們通過第二級存儲層次即寄存器存儲,并且使用計數(shù)器推算高位指針并進行索引。2. 根據(jù)權利要求1所述的適用于HEVC標準的基于臟位的兩級DCT系數(shù)存儲方法,其特 征在于,在建立索引關系時,硬件使用一個計數(shù)器計數(shù)需要存儲的高位數(shù)據(jù)的數(shù)目,該計數(shù) 器從〇開始記錄,當且僅當一個新的需要存儲的高位數(shù)據(jù)出現(xiàn),硬件處理器就將該數(shù)據(jù)存 儲于當前計數(shù)器所對應的寄存器中,臟位置為1,接著計數(shù)器自增1。
【專利摘要】本發(fā)明屬于高清數(shù)字視頻壓縮編解碼技術領域,具體為一種適用于HEVC標準的基于臟位的兩級DCT系數(shù)存儲方法。本發(fā)明將DCT系數(shù)分成三個部分:符號位、高位數(shù)據(jù)和低位數(shù)據(jù),并將數(shù)據(jù)位的較高部分劃歸為高位數(shù)據(jù),剩余比特劃歸為低位數(shù)據(jù);同時采用SRAM作為存儲層次中的第一級,用來存儲符號位、低位數(shù)據(jù)和表征該高位是否涵蓋信息的臟位;采用寄存器作為存儲層次中的第二級,用來存儲一些需要存儲的高位數(shù)據(jù);并且使用計數(shù)器推算高位指針并進行索引。本發(fā)明通過層次化的存儲策略減少硬件代價。
【IPC分類】H04N19/423, H04N19/625
【公開號】CN105430419
【申請?zhí)枴緾N201510787966
【發(fā)明人】范益波, 黃磊磊, 劉淑君, 曾曉洋
【申請人】復旦大學
【公開日】2016年3月23日
【申請日】2015年11月17日