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

正文內(nèi)容

jpeg編碼與解碼的設(shè)計與實現(xiàn)-畢業(yè)設(shè)計(編輯修改稿)

2025-01-04 10:39 本頁面
 

【文章內(nèi)容簡介】 dataptr[0] + dataptr[7]。 tmp7 = dataptr[0] dataptr[7]。 tmp1 = dataptr[1] + dataptr[6]。 tmp6 = dataptr[1] dataptr[6]。 tmp2 = dataptr[2] + dataptr[5]。 tmp5 = dataptr[2] dataptr[5]。 tmp3 = dataptr[3] + dataptr[4]。 tmp4 = dataptr[3] dataptr[4]。 /* 對偶數(shù)項進行運算 */ tmp10 = tmp0 + tmp3。 /* phase 2 */ tmp13 = tmp0 tmp3。 tmp11 = tmp1 + tmp2。 tmp12 = tmp1 tmp2。 dataptr[0] = tmp10 + tmp11。 /* phase 3 */ dataptr[4] = tmp10 tmp11。 z1 = (tmp12 + tmp13) * ((FAST_FLOAT) )。 /* c4 */ dataptr[2] = tmp13 + z1。 /* phase 5 */ dataptr[6] = tmp13 z1。 /* 對奇數(shù)項進行計算 */ tmp10 = tmp4 + tmp5。 /* phase 2 */ 11 tmp11 = tmp5 + tmp6。 tmp12 = tmp6 + tmp7。 z5 = (tmp10 tmp12) * ((FAST_FLOAT) )。 /* c6 */ z2 = ((FAST_FLOAT) ) * tmp10 + z5。 /* c2c6 */ z4 = ((FAST_FLOAT) ) * tmp12 + z5。 /* c2+c6 */ z3 = tmp11 * ((FAST_FLOAT) )。 /* c4 */ z11 = tmp7 + z3。 /* phase 5 */ z13 = tmp7 z3。 dataptr[5] = z13 + z2。 /* phase 6 */ dataptr[3] = z13 z2。 dataptr[1] = z11 + z4。 dataptr[7] = z11 z4。 dataptr += DCTSIZE。 /* 將指針指向下一行 */ } /* 第二部分,對列進行計算 */ dataptr = data。 for (ctr = DCTSIZE1。 ctr = 0。 ctr) { tmp0 = dataptr[DCTSIZE*0] + dataptr[DCTSIZE*7]。 tmp7 = dataptr[DCTSIZE*0] dataptr[DCTSIZE*7]。 tmp1 = dataptr[DCTSIZE*1] + dataptr[DCTSIZE*6]。 tmp6 = dataptr[DCTSIZE*1] dataptr[DCTSIZE*6]。 tmp2 = dataptr[DCTSIZE*2] + dataptr[DCTSIZE*5]。 tmp5 = dataptr[DCTSIZE*2] dataptr[DCTSIZE*5]。 tmp3 = dataptr[DCTSIZE*3] + dataptr[DCTSIZE*4]。 tmp4 = dataptr[DCTSIZE*3] dataptr[DCTSIZE*4]。 /* 對偶數(shù)項進行運算 */ tmp10 = tmp0 + tmp3。 /* phase 2 */ tmp13 = tmp0 tmp3。 tmp11 = tmp1 + tmp2。 tmp12 = tmp1 tmp2。 12 dataptr[DCTSIZE*0] = tmp10 + tmp11。 /* phase 3 */ dataptr[DCTSIZE*4] = tmp10 tmp11。 z1 = (tmp12 + tmp13) * ((FAST_FLOAT) )。 /* c4 */ dataptr[DCTSIZE*2] = tmp13 + z1。 /* phase 5 */ dataptr[DCTSIZE*6] = tmp13 z1。 /* 對奇數(shù)項進行計算 */ tmp10 = tmp4 + tmp5。 /* phase 2 */ tmp11 = tmp5 + tmp6。 tmp12 = tmp6 + tmp7。 z5 = (tmp10 tmp12) * ((FAST_FLOAT) )。 /* c6 */ z2 = ((FAST_FLOAT) ) * tmp10 + z5。 /* c2c6 */ z4 = ((FAST_FLOAT) ) * tmp12 + z5。 /* c2+c6 */ z3 = tmp11 * ((FAST_FLOAT) )。 /* c4 */ z11 = tmp7 + z3。 /* phase 5 */ z13 = tmp7 z3。 dataptr[DCTSIZE*5] = z13 + z2。 /* phase 6 */ dataptr[DCTSIZE*3] = z13 z2。 dataptr[DCTSIZE*1] = z11 + z4。 dataptr[DCTSIZE*7] = z11 z4。 dataptr++。 /* 將指針指向下一列 */ } endif /* DCT_FLOAT_SUPPORTED */ . 熵編碼 熵是熱力學(xué)中的術(shù)語,用來研究熱和功。只要物體具備的做功能量下降,它的量就增加。熵也用來衡量物體內(nèi)部的無序程度。而在信息論中,熵表示的是不確定性的量度。 . 熵 在日常生活中,如果收到一封信,接到一個傳真,或者得到一組數(shù)據(jù),從信息論的觀點看,只能稱之為“消息”( Message)。在消息中,有一些是我們事先所不確定的,這些不確定的內(nèi)容稱為“信息”( Information)。在收到消息之前,是處于某種不確定狀 態(tài) 13 之中,而收到消息后,就可以消除或者部分解除了這些不確定性,也就是獲得了信息。因此不確定性減少量,就可以作為信息的度量。換句話說,信息是用不確定性的量度定義的。一個消息的可能性愈小,其信息含量愈大;而消息的可能性愈大,則其信息含量愈小。 信息論的創(chuàng)始人香農(nóng)在 1948 年的論文中提到了熵的概念,用來描述不確定性。也就是說,事件出現(xiàn)的概率小,其不確定性就越大,反之就越小。在數(shù)學(xué)上,所傳輸?shù)南⑹瞧涑霈F(xiàn)概率的單調(diào)下降函數(shù)。所謂信息是指從 n 個相等可能事件中選出一個事件,所需要的信息度量或含量,也就是在辨別 n個事件中特 定的一個事件過程中所需要提問“是”或“否”的最少次數(shù)。如從 64 個數(shù)中選定某一個數(shù),提問:“是否大于 32?”,則不論回答是與否,都消去了半數(shù)的可能事件,如此下去,只要問 6 次這類問題,就可以從 64 個數(shù)中選定一個數(shù),則所需信息量是:㏒ 2 64= 6( bit) 設(shè)從 N 個數(shù)中選一個 X 的概率為 P( X),并設(shè)從 N 中任選一個數(shù)的概率都相等,即 P( X)= 1/ N,則信息量 I( X)可定義為: ? ? log P (X )N1logXI ???? 上式的值將隨對數(shù)所取的底數(shù)不同而有所不同的值,因而其單位也就不同。通常取以 2 為底的對數(shù),相 應(yīng)的單位為比特( bit),也可以取以 e 為底的對數(shù),其單位為奈特( nat)。 如果將信源所有可能的信息量進行平均(當這些事件的概率不相等時),就得信源中的每個符號的平均信息量,稱之為概率分布的熵( Entropy) . 設(shè)信源 X 的符號集為 X i ( i= 1, 2, 3… N)并設(shè) Xi 出現(xiàn)的概率為 P( Xi),則信源X 的熵為: ???? 0i )Xi(log P)Xi(P)X(H 熵是一個非負數(shù),即 H( Xi)≥ 0;當 P( Xi)= 0 或 P( Xi)= 1 時, H( X)= 0。 . 熵編碼原理 信源中含有自然冗余度,這些冗余度既來自于信源本身的相關(guān) 性,又來自于信源概率分布的不均勻性,只要找到去除相關(guān)性或改變概率分布不均勻性的手段和方法,也就找到了信息熵編碼的方法。如圖像中存在有空間相關(guān)、幀間相關(guān),還存在有灰度概率分布不均勻性。因此,利用信息熵理論減少數(shù)據(jù)在傳輸和存儲的冗余度,就是信息熵編碼要解決的問題。 信源所含有的平均信息量(熵)是進行無失真編碼的理論極限,而低于此極限的無 14 失真編碼方法是找不到的,只要不低于此極限,就能找到某種適宜編碼方法,去逼近熵。 JPEG 中的熵編碼 JPEG 標準具體規(guī)定了兩種熵編碼方式: Huffman 編碼和算術(shù)編碼。 JPEG 基 本順序編碼解碼器具體規(guī)定用 Huffman 編碼,但是 JPEG 并沒有限制對任何 JPEG 算法必須用Huffman 編碼方式或算術(shù)編碼方式。熵編碼可以分成兩步進行,首先把 DC 碼和行程碼轉(zhuǎn)換成中間符號序列,然后給這些符號賦以變長碼字。 [4] 1. 熵編碼的中間符號表示 對差分 DC 系數(shù)用兩個符號進行編碼,符號 1 和符號 2。符號 1 表示的信息稱為“長度”,即為 DC 系數(shù)的幅度進行編碼所用的位數(shù),符號 2 表示 DC 系數(shù)的幅度。 類似地,對每個 AC 系數(shù)也用兩個符號進行編碼,符號 1 和符號 2。符號 1 表示了兩條信息,稱為“行程”和“長度”。行 程是在之字形矩陣中位于非零 AC 系數(shù)前的連續(xù)零值 AC 系數(shù)的個數(shù),長度是對 AC 系數(shù)的幅度進行編碼所用的位數(shù)。符號 2 表示了 AC 系數(shù)的幅度。 2. 熵編碼 對 DC 系數(shù)的符號 1 用 Huffman 表中的可變長度代碼( VLI)進行編碼,表 27 給出了 DC 系數(shù)亮度的一個典型的 Huffman 編碼表。符號 2 用可變長度整數(shù)代碼( VLI)進行編碼,若為負值,則采用二進制的補碼的形式。表 28 所示為符號 2 用比特表示的長度,它隨著幅度(差分 DC 系數(shù)值)變化而改變。在實際編碼中,我們首先要從表中找出差分 DC 系數(shù)需要多少位來表示。然后,位的 數(shù)目用以四位二進制編碼的十進制位數(shù)表示。接著就用可變長度整數(shù)表示系數(shù)的幅度。 表 27 亮度 DC 系數(shù)表 尺寸分類 碼長 碼字 0 2 00 1 3 010 2 3 011 3 3 100 4 3 101 5 3 110 6 4 1110 15 7 5 11110 8 6 111110 9 7 1111110 10 8 11111110 11 9 111111110 表 28 DC 系數(shù)符號 2 結(jié)構(gòu) 尺寸 幅度 1 1, 1 2 3… 2, 2… 3 3 7… 4, 4… 7 4 15… 8, 8… 15 5 31… 16, 16… 31 6 63… 32, 32… 63 7 127… 64, 64… 127 8 255… 128, 128… 255 9 511? 256, 256? 511 10 1023? 512, 512? 1023 而對 AC 系數(shù)采用 Huffman 表中的 VLC 對符號 1 編碼,表 29 給出了 AC 系數(shù)亮度的部分 Huffman 編碼表。隨著對 DC 系數(shù)進行編碼,用 VLI 對符號 2 進行編碼。圖 29中的流程圖顯示了對 AC 系數(shù)編碼時涉及的步驟。如圖所示,我們可對零值 AC 系數(shù)的個數(shù)作計數(shù)直到遇 到第一個非零的 AC 系數(shù)。有兩種情況需要考慮:第一種,當連續(xù)零值 AC 系數(shù)超過 16,用 ZRL 代碼對這 16 個連續(xù)的零值 AC 系數(shù)編碼,同時游程計數(shù)復(fù)位為零;第二種,當發(fā)現(xiàn)了一個非零的 AC 系數(shù),就按下面的方式建立一個復(fù)合 8bit 數(shù)值:首先,我們要找到表示 AC 系數(shù)所需的位數(shù),然后位數(shù)被編碼為 BCD 值。這一 BCD值就形成了 8bit 復(fù)合值中最低的 4bit,遇到非零 AC 系數(shù)之前的零值 AC 系數(shù)的個數(shù)生成了 8bit 復(fù)合值中的高 bit,即如圖 29 所表示的那樣。 重復(fù)上面的編碼過程,直到全部 63 個系數(shù)都用這種方式處理完畢。如果最后 一個AC 系數(shù)是零,就用塊結(jié)束( EOB)代碼。 16 圖 AC 系數(shù)的編碼流程 表 29 亮度 AC 系數(shù)表 行程 /尺寸 碼長 碼長 0/0(EOB) 4 1010 0/1 2 00 0/2 2 01 0/3 3 100 0/4 4 1011 0/5 5 11010 0/6 7 1111000 0/7 8 11111000 0/8 10 1111110110 0/9 16 1111111110000010 17 0/A 16 1111111110000011
點擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1