前言:本站為你精心整理了多媒體信息數(shù)據(jù)管理范文,希望能為你的創(chuàng)作提供參考價值,我們的客服老師可以幫助你提供個性化的參考范文,歡迎咨詢。
[摘要]本文通過實際圖像存取速度與對數(shù)據(jù)庫容量影響的量化比較研究,得出在VisualBasic環(huán)境下快速數(shù)據(jù)庫圖像存取的方法,對于其他多媒體信息存取與編程環(huán)境也有一定的借鑒作用。
[關(guān)鍵詞]圖像存取ICB方法CKA方法
圖形圖像、音頻視頻等多媒體信息在數(shù)據(jù)庫中存儲不同于傳統(tǒng)的文本、數(shù)字等有著非常規(guī)范的結(jié)構(gòu)化形式,程序設(shè)計中采用不同的存取方法,對數(shù)據(jù)庫訪問速度,以及數(shù)據(jù)庫文件容量有非常大的影響,程序的運行效率當然也是相差甚遠。
一、圖像的存儲優(yōu)化
SQLServer用Image字段(Access用OLE對象字段)來存儲圖形圖像甚至音視頻等多媒體信息,在庫中以“長二進制數(shù)據(jù)”的形式存放。以圖形圖像為例,VB傳統(tǒng)的做法是將圖像字段與圖像控件綁定,加載圖像后刷新近期件并更新記錄集即可完成圖像的存儲,這里稱為圖像控件綁定(ImageControlBinding,ICB)方法。這種方法的優(yōu)點是代碼簡單、容易理解和實現(xiàn),特別是對于庫中所存圖像的瀏覽尤為方便。但由于其不管源圖像格式,統(tǒng)一按24位位圖進行處理,故只適用于小型圖像的存取,如人事檔案中的相片,而對于較大的尤其是壓縮格式的圖像,ICB方法的存取速度就會慢得讓人無法忍受,數(shù)據(jù)庫的膨脹幅度也會大得驚人。
為提高圖像的存儲速度,最大限度地減小數(shù)據(jù)庫增幅,對普通圖像(如BMP)文件,需要先將其轉(zhuǎn)化成壓縮格式文件(如Jpeg格式)。圖像存儲時,先把圖像文件按二進制文件打并開讀入到相應(yīng)的Byte型數(shù)組,再用記錄集對象的追加大塊數(shù)據(jù)方法(AppendChunk方法)將其寫入數(shù)據(jù)庫,這里稱之為大塊數(shù)據(jù)存取(ChunkAccess,CKA)方法。
CKA方法圖像存入數(shù)據(jù)庫代碼:(ICB方法略)
DimbytData()AsByte
''''以二進制文件方式打開臨時圖像文件
OpenApp.Path&“\temp1.jpg”ForBinaryAs#1
ReDimbytData(FileLen(App.Path&“\temp1.jpg”))
Get#1,,bytData()''''讀入圖像→二進制數(shù)組
Close#1
''''用AppendChunk方法將二進制數(shù)組入庫
Me.Adodc2.Recordset(“Pic”).AppendChunkbytData()
Me.Adodc2.Recordset.Update
表1所示是ICB方法和CKA方法存儲JPEG圖像速度與存儲圖像后數(shù)據(jù)庫文件大小的測試數(shù)據(jù)對照表。
為突出效果,選用9張2048×1536像素的JPEG數(shù)碼相片進行測試,圖像大小介于1.3MB到2MB之間。分析測試結(jié)果得出,
注:①測試環(huán)境:P41.7GCPU,352MBDDRRAM,32MB顯存,Access2003數(shù)據(jù)庫;②數(shù)據(jù)庫初始大小:140.0KB(空)。
ICB方法存儲JPEG相片的平均速度為120B/ms,CKA方法則為2848B/ms。CKA方法的存儲時間與圖像大小成比例,ICB方法的存儲時間波動范圍較大,這是由于存儲時間本身較長(12~15s),測試期間受其他進程影響較多造成的。
對于圖像存儲后庫文件的大小,ICB方法對應(yīng)的庫文件呈線性膨脹,每次增量為9.2MB左右,即2048×1536像素的24位圖文件的大小;CKA方法對應(yīng)的庫文件每次增量則與Jpeg文件的大小相吻合,如果需要,可在圖像格式轉(zhuǎn)換時在保證視覺效果的前提下增大圖像壓縮率,從而降低圖像對數(shù)據(jù)庫大小的影響。
二、圖像的查詢優(yōu)化
圖像查詢時使用ICB方法基本不需要寫任何代碼就可完成查詢,借助控件的導(dǎo)航按鈕可以方便地實現(xiàn)對數(shù)據(jù)庫中圖像的瀏覽。但若圖像記錄較多或圖像較大,查詢操作就會變得異常緩慢,出現(xiàn)類似“死機”的現(xiàn)象。
圖像的查詢優(yōu)化包含兩方面內(nèi)容,其一為圖像查詢與普通數(shù)據(jù)查詢分開進行,避免一次檢索過多圖像造成查詢延時過長;其二需要把存放在數(shù)據(jù)庫圖像字段中的信息用CKA方法分段讀出寫到一個臨時文件中,重新組裝成原來的圖像,再進行圖像加載和顯示。
注:①測試環(huán)境同表1;②合成時間包括圖像組裝和加載時間。
計算得出,ICB方法圖像查詢的平均速度只有35B/ms,CKA方法為2809B/ms,與存儲速度相當,就是算上圖像合成(含加載)時間,CKA方法查詢速度也能達到2597B/ms。
三、總結(jié)
通過實例測試可以發(fā)現(xiàn),CKA方法進行圖像的存取,無論從速度還是對庫文件大小的影響來說,性能都遠遠優(yōu)于傳統(tǒng)的ICB方法,在網(wǎng)絡(luò)環(huán)境下,效果會更加明顯。實際上,運用CKA方法也可以實現(xiàn)音視頻等多媒體信息甚至任何類型計算機文件的數(shù)據(jù)庫存取,這里不再贅述。
參考文獻:
[1]李樹海陸體虎:對數(shù)據(jù)庫的操作——圖像的存儲與顯示.計算機與信息技術(shù)[J],2004(11)
[2]馬戰(zhàn)寶:基于Intranet的商品混凝土生產(chǎn)控制管理系統(tǒng)的研究與實現(xiàn)[D].西安:西安交通大學碩士論文,2006
[3]張毅王曉強等:VisualBasic應(yīng)用技巧與常見問題你問我答[M].北京:機械工業(yè)出版社,2003.222-226
多媒體技術(shù) 多媒體學習理論 多媒體教學 多媒體交互技術(shù) 多媒體課堂教學 多媒體 多媒體論文 多媒體信息技術(shù) 多媒體網(wǎng)絡(luò)教育 多媒體演示教學法 紀律教育問題 新時代教育價值觀