專(zhuān)利名稱(chēng):一種dct實(shí)現(xiàn)方法及dct實(shí)現(xiàn)電路的制作方法
技術(shù)領(lǐng)域:
本發(fā)明屬于圖像信號(hào)處理技術(shù)領(lǐng)域,具體地說(shuō),是涉及一種DCT (離散余弦變換) 實(shí)現(xiàn)電路。
背景技術(shù):
隨著多媒體技術(shù)的快速發(fā)展,信號(hào)的分辨率和采樣率都在提高,由此帶來(lái)的數(shù)據(jù) 量的急劇增多加大了數(shù)據(jù)傳輸和存儲(chǔ)的壓力,因此對(duì)于高速實(shí)時(shí)的數(shù)據(jù)壓縮具有重要的意 義。二維DCT是被廣泛使用的圖像變換域編碼方法,該方法使用了非均勻量量化的 方法來(lái)降低被處理圖像中的高頻分量,優(yōu)化掉人眼不易察覺(jué)的冗余圖像信息,并在優(yōu)化 后將圖像數(shù)據(jù)轉(zhuǎn)換為可歸一、量化和可變長(zhǎng)度編碼的數(shù)據(jù)。圖像信息經(jīng)過(guò)二維DCT變 換后絕大部分的能量集中在直流分量和少數(shù)低頻分量上,減少了空間冗余。
權(quán)利要求
1.一種DCT實(shí)現(xiàn)方法,其特征在于包括以下步驟(1)、將接收到的圖像數(shù)據(jù)劃分成若干個(gè)MXM的圖像數(shù)據(jù)塊,將每一個(gè)圖像數(shù)據(jù)塊中 的數(shù)據(jù)逐行或者逐列串行輸入到M個(gè)寄存器中;(2)、在所述的M個(gè)寄存器中,第i個(gè)寄存器將當(dāng)前輸入的數(shù)據(jù)在下一個(gè)時(shí)鐘周期到來(lái) 時(shí),輸出至乘法模塊與MXM的常系數(shù)矩陣中的第i行的常系數(shù)相乘,其中,所述乘法模塊在 接收到第i個(gè)寄存器輸出的第d個(gè)數(shù)據(jù)時(shí),將該數(shù)據(jù)與常系數(shù)矩陣中的第i行第j列的常 系數(shù)相乘,所述j為d/M的余數(shù),并將乘法運(yùn)算后的結(jié)果按行輸送至加法模塊;(3)、所述加法模塊接收乘法模塊輸出的M行數(shù)據(jù),并以M為單位對(duì)各行的連續(xù)M個(gè)數(shù) 據(jù)進(jìn)行求和運(yùn)算后輸出;已參與求和運(yùn)算的M個(gè)數(shù)據(jù)從加法模塊中刪除;(4)、將所述加法模塊輸出的數(shù)據(jù)存入存儲(chǔ)模塊,并在存儲(chǔ)模塊中以MXM矩陣的形式 逐行依次存儲(chǔ),形成一個(gè)MXM的數(shù)據(jù)塊,得到圖像數(shù)據(jù)塊的一維DCT運(yùn)算結(jié)果;(5)、所述存儲(chǔ)模塊對(duì)于按照逐行存儲(chǔ)的MXM數(shù)據(jù)塊以逐列的方式輸出,并對(duì)后續(xù)讀 入的數(shù)據(jù)逐列依次存儲(chǔ),對(duì)于按照逐列存儲(chǔ)的MXM數(shù)據(jù)塊以逐行的方式輸出,并對(duì)后續(xù)讀 入的數(shù)據(jù)逐行依次存儲(chǔ);通過(guò)存儲(chǔ)模塊輸出的逐列或者逐行數(shù)據(jù)串行輸入到另外M個(gè)寄存 器中,重復(fù)執(zhí)行步驟O)、(3)的過(guò)程,得到圖像數(shù)據(jù)塊的二維DCT運(yùn)算結(jié)果;其中,M = 2η,η為正整數(shù);i為不大于M的正整數(shù)。
2.根據(jù)權(quán)利要求1所述的DCT實(shí)現(xiàn)方法,其特征在于當(dāng)MXM的圖像數(shù)據(jù)塊以逐行的 方式依次串行輸入到所述的M個(gè)寄存器中時(shí),在所述乘法模塊中保存的常系數(shù)矩陣為DCT 變換的常規(guī)系數(shù)矩陣;當(dāng)MXM的圖像數(shù)據(jù)塊以逐列的方式依次串行輸入到所述的M個(gè)寄存 器中時(shí),在所述乘法模塊中保存的常系數(shù)矩陣為DCT變換的常規(guī)系數(shù)矩陣的轉(zhuǎn)置。
3.根據(jù)權(quán)利要求2所述的DCT實(shí)現(xiàn)方法,其特征在于通過(guò)控制寄存器對(duì)所述的每一 個(gè)寄存器中輸入的數(shù)據(jù)個(gè)數(shù)分別進(jìn)行計(jì)數(shù),且由1累計(jì)滿(mǎn)M后,重新開(kāi)始計(jì)數(shù);所述乘法模 塊根據(jù)控制寄存器的計(jì)數(shù)值,確定將當(dāng)前接收到的寄存器輸出的數(shù)據(jù)與MXM的常系數(shù)矩 陣中的哪一列上的常系數(shù)相乘。
4.根據(jù)權(quán)利要求1所述的DCT實(shí)現(xiàn)方法,其特征在于在所述加法模塊中包括加法器 和存儲(chǔ)器,所述存儲(chǔ)器臨時(shí)存儲(chǔ)加法器輸出的結(jié)果,若連續(xù)M個(gè)數(shù)據(jù)未全部完成求和運(yùn)算, 則將結(jié)果返回至加法器繼續(xù)累加,直至連續(xù)M個(gè)數(shù)據(jù)全部完成求和運(yùn)算后,將結(jié)果輸出,并 清空存儲(chǔ)器中的數(shù)據(jù)。
5.根據(jù)權(quán)利要求1至4中任一項(xiàng)所述的DCT實(shí)現(xiàn)方法,其特征在于所述的M= 8 ;所 述存儲(chǔ)模塊是容量至少為64X8bit的RAM。
6.一種DCT實(shí)現(xiàn)電路,其特征在于包括一維運(yùn)算電路和二維運(yùn)算電路,所述一維運(yùn)算 電路包括M個(gè)串聯(lián)的第一寄存器、M個(gè)存儲(chǔ)有常系數(shù)向量的乘法器、M個(gè)加法器以及一個(gè)存 儲(chǔ)模塊;將接收到的圖像數(shù)據(jù)劃分成若干個(gè)MXM的圖像數(shù)據(jù)塊后,將每一個(gè)圖像數(shù)據(jù)塊中 的數(shù)據(jù)逐行或者逐列串行輸入到M個(gè)第一寄存器中;其中,所述的M個(gè)第一寄存器將當(dāng)前輸入的數(shù)據(jù)在下一個(gè)時(shí)鐘周期到來(lái)時(shí),輸出至與其一一 對(duì)應(yīng)連接的乘法器中;所述的M個(gè)乘法器將接收到的數(shù)據(jù)與其內(nèi)部存儲(chǔ)的常系數(shù)向量中與該數(shù)據(jù)同列的常 系數(shù)相乘后,輸出結(jié)果至加法器中;所述M個(gè)加法器與M個(gè)乘法器一一對(duì)應(yīng)連接,對(duì)連續(xù)輸入的M個(gè)數(shù)據(jù)進(jìn)行求和運(yùn)算后,輸出至存儲(chǔ)模塊進(jìn)行保存,并丟棄上述求和運(yùn)算后的M個(gè)數(shù)據(jù);所述存儲(chǔ)模塊對(duì)接收到的數(shù)據(jù)以MXM矩陣的形式逐行依次存儲(chǔ),形成一個(gè)MXM的數(shù) 據(jù)塊,得到圖像數(shù)據(jù)塊的一維DCT運(yùn)算結(jié)果;所述存儲(chǔ)模塊對(duì)于按照逐行存儲(chǔ)的MXM數(shù)據(jù) 塊以逐列的方式輸出,并對(duì)后續(xù)讀入的數(shù)據(jù)逐列依次存儲(chǔ),對(duì)于按照逐列存儲(chǔ)的MXM數(shù)據(jù) 塊以逐行的方式輸出,并對(duì)后續(xù)讀入的數(shù)據(jù)逐行依次存儲(chǔ);在所述二維運(yùn)算電路中也包括M個(gè)串聯(lián)的第一寄存器、M個(gè)存儲(chǔ)有常系數(shù)向量的乘法 器以及M個(gè)加法器,且連接關(guān)系與所述的一維運(yùn)算電路相同;在二維運(yùn)算電路中,所述的M 個(gè)第一寄存器串行讀取所述存儲(chǔ)模塊輸出的數(shù)據(jù),通過(guò)乘法器和加法器執(zhí)行同一維運(yùn)算電 路中相同器件執(zhí)行的運(yùn)算過(guò)程后,輸出圖像數(shù)據(jù)塊的二維DCT運(yùn)算結(jié)果;其中,M= 2η,η為正整數(shù)。
7.根據(jù)權(quán)利要求6所述的DCT實(shí)現(xiàn)電路,其特征在于當(dāng)MXM的圖像數(shù)據(jù)塊以逐行的 方式依次串行輸入到所述一維運(yùn)算電路中的M個(gè)寄存器中時(shí),在所述一維運(yùn)算電路和二維 運(yùn)算電路中,第i個(gè)乘法器中保存的常系數(shù)向量是DCT變換的常規(guī)系數(shù)矩陣的第i行;當(dāng) MXM的圖像數(shù)據(jù)塊以逐列的方式依次串行輸入到所述一維運(yùn)算電路中的M個(gè)寄存器中時(shí), 在所述一維運(yùn)算電路和二維運(yùn)算電路中,第i個(gè)乘法器中保存的常系數(shù)向量是DCT變換的 常規(guī)系數(shù)矩陣的第i列;其中,i為不大于M的正整數(shù)。
8.根據(jù)權(quán)利要求7所述的DCT實(shí)現(xiàn)電路,其特征在于在所述的一維運(yùn)算電路和二維 運(yùn)算電路中均包含有一個(gè)控制寄存器,對(duì)M個(gè)第一寄存器中輸入的數(shù)據(jù)個(gè)數(shù)分別進(jìn)行計(jì) 數(shù),且由1累計(jì)滿(mǎn)M后,重新開(kāi)始計(jì)數(shù);并在每一個(gè)時(shí)鐘周期輸出與所述M個(gè)第一寄存器 一一對(duì)應(yīng)的計(jì)數(shù)值,一一對(duì)應(yīng)地傳輸至M個(gè)乘法器中;所述乘法器根據(jù)接收到的計(jì)數(shù)值確 定將計(jì)數(shù)值所指列的常系數(shù)與當(dāng)前接收到的第一寄存器輸出的數(shù)據(jù)相乘。
9.根據(jù)權(quán)利要求8所述的DCT實(shí)現(xiàn)電路,其特征在于在所述的一維運(yùn)算電路和二維 運(yùn)算電路中還均包含有M個(gè)第二寄存器、與所述的M個(gè)第二寄存器一一對(duì)應(yīng)連接的選擇器、 以及與M個(gè)第二寄存器的輸出端連接的多路選擇器;所述的M個(gè)第二寄存器與所述的M個(gè) 加法器一一對(duì)應(yīng)連接,所述第二寄存器臨時(shí)存儲(chǔ)加法器輸出的結(jié)果,所述選擇器連接控制 寄存器,接收控制寄存器輸出的計(jì)數(shù)值,若計(jì)數(shù)值小于M,則控制加法器將當(dāng)前接收到的數(shù) 據(jù)與第二寄存器中保存的數(shù)據(jù)進(jìn)行累加,否則,輸出累加結(jié)果至多路選擇器,并清空第二寄 存器中的數(shù)據(jù);所述多路選擇器在所述控制寄存器的控制下,將運(yùn)算后的結(jié)果存入存儲(chǔ)模 塊。
10.根據(jù)權(quán)利要求1至9中任一項(xiàng)所述的DCT實(shí)現(xiàn)電路,其特征在于在所述存儲(chǔ)模塊 中包括RAM和狀態(tài)機(jī),通過(guò)狀態(tài)機(jī)控制RAM將接收到的數(shù)據(jù)逐行存儲(chǔ)或逐列存儲(chǔ);其中,所 述RAM的容量至少為64X8bit,所述M = 8。
全文摘要
本發(fā)明公開(kāi)了一種DCT實(shí)現(xiàn)方法,包括以下步驟1、將M×M圖像數(shù)據(jù)塊中的數(shù)據(jù)串行輸入至M個(gè)寄存器中;2、寄存器將數(shù)據(jù)輸出至乘法模塊,與乘法模塊中保存的常系數(shù)矩陣進(jìn)行乘法運(yùn)算并將結(jié)果送至加法模塊;3、加法模塊對(duì)數(shù)據(jù)求和輸出;4、并以M×M矩陣的形式逐行或者逐列存儲(chǔ)到存儲(chǔ)模塊中,形成M×M的數(shù)據(jù)塊,完成一維DCT運(yùn)算;5、將存儲(chǔ)模塊中的數(shù)據(jù)逐列或者逐行輸入到另外M個(gè)寄存器中,重復(fù)執(zhí)行步驟2、3的過(guò)程,完成二維DCT運(yùn)算。本發(fā)明同時(shí)公開(kāi)了一種DCT實(shí)現(xiàn)電路,包括一維運(yùn)算電路和二維運(yùn)算電路,均采用串行運(yùn)算的方式,運(yùn)算速度快,不用串并轉(zhuǎn)換,具有較強(qiáng)的抗干擾能力和中斷恢復(fù)功能。
文檔編號(hào)H04N7/30GK102065309SQ20101058863
公開(kāi)日2011年5月18日 申請(qǐng)日期2010年12月7日 優(yōu)先權(quán)日2010年12月7日
發(fā)明者劉書(shū)豪 申請(qǐng)人:青島海信信芯科技有限公司