freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于vc的圖像壓縮編碼技術(shù)的研究及算法實現(xiàn)(編輯修改稿)

2024-12-09 13:03 本頁面
 

【文章內(nèi)容簡介】 ,不常出現(xiàn)的分配長碼,使平均碼長達到最短。塊編碼最先就是用在二值圖像上,如傳真圖像,后來推廣到灰度圖像。由于設(shè)備簡單,可用于實時處理或傳輸系統(tǒng)中,因此引起人們越來越廣泛的重視。 但當(dāng)方塊尺寸大于 3x3 時,符合集合將迅速增大,致使霍夫曼編碼的碼表過于龐大而難以實際應(yīng)用,因此就提出了降低復(fù)雜度的次最佳編碼方法。全白的方塊最常出現(xiàn),因此分配最短的碼字“ 0”,而其它含有黑色像素的排列均用直接編碼,如圖 所示( 空白方格表示白像素 )。 7 圖 方塊編碼 在實際中,大多數(shù)二值圖像都是白色背景占大部分,黑色像素只是占圖像像素總數(shù)的很少一部分,因 此分解的子快中像素為全白的概率遠大于其他情況,如果跳過這些白色區(qū)域,只傳輸黑色像素信息,就可使得每個像素的平均比特下降。跳白塊 (WBS)編碼正式基于這一思想提出來的。 跳白塊 (White Block Skipping)編碼是利用二值圖像以白色像素為主、黑色像素相對較少這一特點而提出的編碼方法。編碼方法非常簡單,首先將二值圖像的各掃描行分成若干塊仍 lock),每塊包括 N 個像素,其中像素全為白色像素的塊,稱為全白塊 (White Block),編碼時用 1 比特碼字“ 0”表示,這是因為這種全白塊在所有的塊中出現(xiàn)的概 率最大,因而分配最短的一個碼字。 對于至少含有一個黑像素的非全白塊,用 N+1 比特碼字表示 : 第一個比特為 “ l”,稱為前綴碼 ; 其余 N 比特采用直接編碼,白像素為“ 0”,黑像素為 “ l” (反過來亦可 )。注意,全白塊對應(yīng)的 1 比特“ 0”也可看作是前綴碼,只不過此時全白塊的編碼看成只包括前綴碼。前綴碼的作用是使解碼器在收到一系列的比特流時能夠正確的判別每個碼字。使用這種編碼后,原圖像平均每個像素的比特數(shù),即比特率縱 nb 為 其中, np 是某塊 為全白的概率,通過對碼字的統(tǒng)計得到。 nb 越小,壓縮性能越好。 解碼時,每收到一個“ 1”,則判斷其后的 N 比特為直接編碼,而在該 N 比特以外的“ 0”則可判斷為全白塊,恢復(fù)為 N 個“ 0”,進而唯一地恢復(fù)原像素序列,從而完成圖像的重建。 一維 WBS 可以推廣到二維,整個圖像分成若干大小為 MxN 像素的塊,某塊為全白像素時用 1 比特“ 0”表示 ; 非全白塊用 1+MN 個比特碼字表示 : 一個前綴比特“ 1”,其余 MN 比特采用直接編碼。 行程編碼 行程長度編碼,又叫做游程編碼 (RunLength Coding, RLC),它的基本思想是,當(dāng)二值圖像按照從左到右的掃描順序去記錄每一行時,總會交替出現(xiàn)出現(xiàn)一定數(shù)量的連續(xù)白點和連續(xù)黑點,如圖 所示。通常把具有相同灰度值的相鄰像素組成的序列成為一個游程,游程中像素的個數(shù)成為游程長度,簡稱游長。游程編碼就是將這些不同的游程長度構(gòu)成的字符串用其數(shù)值和游長數(shù)值來表示。 ? ? ? ?111 1 1 1N N N Nb p p N pNN? ? ? ? ? ? ? ? ????? 8 對圖像進行編碼時,首先對圖像進行掃描,如果有連續(xù)的 L 個像素具有相同的灰度值 G,則對其作行程編碼后,只需傳送一個數(shù) 組 (G, L)就可代替?zhèn)魉瓦@一串像素的灰度值。圖中可寫成白 黑 白 黑 白 3( 其含義是 4 個白、 3 個黑、 5 個白、2 個黑、 3 個白 ) 。然后,再對游程進行變長編碼,根據(jù)出現(xiàn)概率的不同分配不同長度的碼字。很明顯,游程長度越長,游程編碼效率越高,因而特別適用于灰度等級少,灰度值變化小的二值圖像。 圖 連續(xù)白點和連續(xù)黑點 游程編碼主要應(yīng)用在 ITU(CCITT)為傳真制定的文件傳真三類機 G3維標(biāo)準(zhǔn)中,在該標(biāo)準(zhǔn)中游長的霍夫曼編碼分為行程碼和終止碼兩種,對不同長度的黑游程和白游程采用不同的編碼方式,如圖 所示。 圖 游程編碼 變換編碼 將原來在空間域上描述的圖像信號,通過數(shù)字變換變換到變換域中。我們常常會發(fā)現(xiàn),各變換系數(shù)之問的相關(guān)性明顯下降,能量較為集中,這樣可以根據(jù)壓縮比的要求,在滿足一定失真度要求的情況下進行有損壓縮編碼。 變換編碼的過程是先對每個子像塊進行正交變換,生成變換域中的系數(shù)知陣,然后進行變換、量化、編碼,再存儲或者傳輸。典型的正交變換有離散傅里葉變換 ( 簡稱 DFT) 、離散余弦變換 ( 簡稱 DCT) , KL 變換和沃爾什變換等。變換編碼之所以在圖像信號處理中得到廣泛應(yīng)用,主要是它具有 如下特性: ( 1) 能量集中性與保持特性 。 變換編碼方法最重要的特點是使能量主要集中于低頻區(qū)域,使大多數(shù)變換系數(shù)為 0 或者很小的數(shù)。在編碼時,可以舍棄能量較小的系數(shù),或者分配很少的比特,從而實現(xiàn)數(shù)據(jù)的壓縮。 ( 2) 去相關(guān)性 。 通過變換可以使相關(guān)的空間樣值變?yōu)椴幌嚓P(guān)或者弱相關(guān)的變換 9 系數(shù),即變換編碼能夠消除存在相關(guān)性中的冗余度。 位平面編碼 對 1 幅用多個比特表示其灰度值的圖像來說,其中的每個比特可看作表示了個二值的平面,也稱位面,如圖 所示。 圖 位平面 位平面編碼是一種將多灰度值圖象分解成一 系列二值圖,然后對每幅二值圖再用二元壓縮方法進行壓縮的技術(shù)。這類方法主要有兩個步驟 : 位平面分解和位平面編碼。將圖像所有像素的不同比特位進行分解,就構(gòu)成了圖像八個不同的位平面,如圖 所示。對于八位灰度圖像 I,其位平面分解可表示為 : 由圖 中可以看出,隨著位平面從高位到低位 ( 即從位平面 7 到位平面 0) ,位平面圖像特征逐漸變得復(fù)雜,位平面圖像的隨機紋理逐漸增加,圖像輪廓逐漸變得模糊直至消失。到位平面 0,基本上就已無法看到原圖信息,這恰恰表明,不同位平面的信息對數(shù)字圖像的貢獻是不同的,較高位平而 ( 簡稱“重要位 平面” ) 反應(yīng)原始圖像的主要內(nèi)容,而較低位平面所攜帶的原始信號能量極少,即忽略較低位平面對原始圖像質(zhì)量沒有太大的影響。也就是說我們只需要提取圖像的最高 5 個位平面 ( 即重要位平面 ) 就足以表達圖像內(nèi)容。 Visual C++ 介紹 采用的是 Visual C++ 平臺編程實現(xiàn),建立的項目名稱為 RWJpegExp。在此應(yīng)用程序中,我們可以打開和存儲任意的 BMP 文件或 JPEG 文件,并能實現(xiàn)兩者的格式轉(zhuǎn)換。即可以將 BMP 文件壓縮編碼為 JPEG 文件 ,也可以將 JPEG 文件解碼為 BMP? ? ? ?70, , 2 jtI x y B x y??? 10 文件。 Visual C++軟件平臺 Visual C++首先是一種程序設(shè)計語言,同時也是一個集成開發(fā)工具,它提供了自動生成軟件代碼和可視化資源編輯的功能。 Visual C++是 Windows 環(huán)境下最主要的面向?qū)ο髴?yīng)用開發(fā)系統(tǒng)之一,不僅是 C++語言的集成開發(fā)環(huán)境,而且與 Win32 緊密相連。所以,使用 Visual C++可以靈活地開發(fā)從底層軟件到上層直接面向用戶的軟件。 進入 20 世紀 90 年代以來,隨著多媒體技 術(shù)和圖形圖像技術(shù)的不斷發(fā)展,可視化技術(shù)得到廣泛的重視,越來越多的計算機專業(yè)人員和非專業(yè)人員都開始研究并應(yīng)用可視化技術(shù)。所謂可視化技術(shù),一般是指軟件開發(fā)階段的可視化和對計算機圖像技術(shù)和方法的應(yīng)用。 Visual C++是一個很好的可視化編程工具,使用 Visual C++環(huán)境來開發(fā)基于 Windows 的應(yīng)用程序大大縮短了開發(fā)時間,而且它的界面更為友好,便于程序員操作。在沒有可視化開發(fā)工具之前,程序員要花好幾個月的時間來完成 Windows 程序的界面開發(fā),而現(xiàn)在只需 較 少的時間就可以完成。 VC++技術(shù)特性 面向 對象程序設(shè)計 (ObjectOriented Programming 簡稱 OOP)方法已出現(xiàn)近三十年, 90 年代已成為程序設(shè)計的主流方向,面向?qū)ο蟪绦蛟O(shè)計語言是現(xiàn)代程序開發(fā)的主要工具,如 C++、 Java 是現(xiàn)代程序員必須掌握的編程語言。 面向?qū)ο蟪绦蛟O(shè)計方法主要以數(shù)據(jù)為中心,代碼是圍繞著需要處理的數(shù)據(jù)而設(shè)計的,面向?qū)ο蟪绦蛟O(shè)計語言具有如下的主要特征: ( 1)對象的類描述 ( 2)封裝性 (Encapsulation) ( 3)多態(tài)性 (Polymorphism) ( 4)繼承性 (Inheritance) C++是運用最廣泛的面向?qū)ο蟪绦蛟O(shè)計語言, Visual C++是一個具有集成、交互和可視化編程的 C++實現(xiàn),具備上述的所有 OOP 特征。 編寫 Visual C++程序?qū)嶋H上就是一個構(gòu)造類和把類實例化的過程。由于 Windows 95/98/NT 是 PC 平臺中應(yīng)用最廣泛的操作系統(tǒng)( Microsoft 力圖用一個叫做 Win32 的標(biāo)準(zhǔn)的 32 位應(yīng)用程序接口來作為對這幾個操作系統(tǒng)的共同開發(fā)接口,所以經(jīng)常采用Win32 來代表 Microsoft 的 32 位 Windows 操作系統(tǒng)), Visual C++主要針對 Win32 的 11 應(yīng)用程序開發(fā)。 數(shù)字圖像基本概念 數(shù)字圖像是連續(xù)圖像 ( , )f xy 的一種近似表示,通常用由采樣點的值所組成的矩陣來表示: ( 0 , 0 ) ( 0 , 1 ) .. . ( 0 , 1 )( 1 , 0 ) ( 1 , 1 ) .. . ( 1 , 1 ).. . .. . .. .( 1 , 0 ) ( 1 , 1 ) .. . ( 1 , 1 )f f f Mf f f Mf N f N f N M????? ?? ? ? ??? 每一個采樣單元叫做一個像素 (pixel),上式 ()中, M、 N 分別為數(shù)字圖像在橫(行 )、縱 (列 )方向上的像素總數(shù)。在計算機內(nèi)通常用二維數(shù)組來表示數(shù)字圖像的矩陣,把像素按不同的方式進行組織或存儲,就得到不同的圖像格式,把圖像數(shù)據(jù)存成文件就得到圖像文件 。圖像文件按其數(shù)字圖像格式的不同一般具有不同的擴展名。最常見的圖像格式是位圖格式,其文件名以 BMP 為擴展名。圖像數(shù)字化的精度包括兩部分,即分辨率和顏色深度。分辨率指圖像數(shù)字化的空間精細度,有顯示分辨率和圖像分辨率兩種。 數(shù)字圖像的顏色深度表示每一像素的顏色值所占的二進制位數(shù)。顏色深度越大則能表示的顏色數(shù)目越多。顏色深度的不同,就產(chǎn)生不同種類的圖像文件,在計算機中常使用圖像文件的類型有單色圖像、灰度圖像、偽彩色圖像和 24 位真彩色圖像。它們之間的關(guān)系取決于數(shù)字圖像采用的顏色表示法。常用的顏色表示法有 RGB、 CMYK、HSL 和 YUV 等。 數(shù)字圖像的數(shù)據(jù)容量非常龐大,如以 24 位真彩色表示像素為 640*480 的數(shù)字圖像,所需要的數(shù)據(jù)量為 900KB,所以需要對數(shù)字圖像進行數(shù)據(jù)壓縮。數(shù)據(jù)壓縮包括數(shù)據(jù)壓縮編碼和壓縮數(shù)據(jù)解碼兩個過程。 圖像壓縮的基本原則包括: ( 1)編碼重復(fù)壓縮:按照編碼重復(fù)的概率大小做壓縮編碼,壓縮重復(fù)概率大的編碼,可以節(jié)省一些存儲空間。 ( 2)像素間重復(fù)壓縮:前后像素間存在的某種程度的相關(guān),如存在相同的背景圖像等,簡化編碼以節(jié)省空間。 ( 3)視覺重復(fù)壓縮:由于入眼的生理構(gòu)造,就算在像素之間少了幾個像素,眼 12 睛也看不出來。但是,只是在某些情況中才可以允許這種失真性較大的應(yīng)用。 主要的數(shù)字圖像壓縮標(biāo)準(zhǔn)是 JPEG(Joint Picture Expert Group)標(biāo)準(zhǔn)。 數(shù)字圖像的采集設(shè)備主要有掃描儀、數(shù)字相機和圖像采集卡等。通過對數(shù)字圖像進行一定的處理,即圖像處理,可在一定程度上改善圖像的分辨質(zhì)量和形成特殊的視覺效果。數(shù)字圖像處理由數(shù)字圖像處理系統(tǒng)完成,其結(jié)構(gòu)主要包括圖像采集系統(tǒng)、計算機圖像處理系統(tǒng)和圖像輸出系統(tǒng)三部分。 與設(shè)備無關(guān)的位 圖 (DIB) 與設(shè)備無關(guān)位圖 (DIB)可以在不同的機器或系統(tǒng)中顯示位圖所固有的顏色。 DIB是一種外部的位圖格式,經(jīng)常存儲以 BMP 為后綴的位圖文件。 DIB 位圖還支持圖像數(shù)據(jù)的壓縮。 BMP 位圖文件結(jié)構(gòu) BMP 文件由文件頭、位圖信息頭、顏色信息和圖像數(shù)據(jù)四部分組成。位圖結(jié)構(gòu)包括:位圖文件頭 (BITMAPFILEHEADER)、位圖信息頭 (BITMAPINFOHEADER) 、調(diào)色板 (Palette)、實際的位圖數(shù)據(jù) (Image Data)。 CDIB 類庫的建立 大多數(shù)圖像處理都是基于與設(shè)備無關(guān)位圖( DIB)來進行討論的,而 MFC 中沒有處理 DIB 位圖的類,所以需要定義一個處理 DIB 位圖的專用類 CDib 類,在其中封裝必要而有效的 DIB 數(shù)據(jù)成員和處理函數(shù)。 設(shè)計目標(biāo) 用面向?qū)ο蟮姆椒ㄌ幚砦粓D的核心是設(shè)計一個處理 DIB 的類,稱之為 CDIB 類。 ( 1) 功能 CDIB 類的基本操作功能應(yīng) 包括 DIB 文件的讀、寫操作;提供位圖寬度、高度、顏色數(shù)目等位圖相關(guān)信息;提供有關(guān)位圖占據(jù)內(nèi)存空間的信息,如圖像數(shù)據(jù)區(qū)首地址、顏色表首地址、位圖信息結(jié)構(gòu)首地址等信息。 ( 2)父類 由于 MFC中有一個支持 DDB操作的 CBitmap類,因此很直觀的想法是以 CBitmap 13 類為父類派生出 CDIB 類。但是從長遠考慮,這樣做沒有什么好處。首先, CBitmap類中沒有處理 DIB的功能,因此 CDIB類不能從中繼承任何可用的功能。其次, CBitmap是從 CGdiObject 中派生來的, CBitmap 類以及它從 CGdiObject 類繼承來的數(shù)據(jù)成員和功能函數(shù)對 CDIB 類來說都是不合適的,多余的。此外, CBitmap
點擊復(fù)制文檔內(nèi)容
試題試卷相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1