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

正文內(nèi)容

基于linux操作系統(tǒng)的嵌入式設(shè)備圖像顯示技術(shù)與實(shí)現(xiàn)畢業(yè)論文(參考版)

2025-06-25 13:29本頁面
  

【正文】 imagebpp!=24) { 。 } if(imagebpp 8 amp。 imagebpp = 。 imagewidth = (int)。 = dwswap(*((DWORD*)amp。 = dwswap(*((DWORD*)amp。 = dwswap(*((DWORD*)amp。 = dwswap(*((DWORD*)amp。 = dwswap(*((DWORD*)amp。 = dwswap(*((DWORD*)amp。 = dwswap(*((DWORD*)amp。 = dwswap(*((DWORD*)amp。 = dwswap(*((DWORD*)amp。 } = dwswap(*((DWORD*)amp。img_buf,amp。 pression = BI_RGB。 imagedepth = (int)。head_buf[6]))。head_buf[4]))。head_buf[2]))。head_buf[0]))。head_buf, CORE_HEAD_SIZE sizeof(DWORD)) != CORE_HEAD_SIZE sizeof(DWORD)) { return 1。 if(headsize == CORE_HEAD_SIZE) { if(read_image_buf(amp。 return 1。img_buf, amp。head_buf[10]))。 return 1。 { imagetype = 0。)) != wswap(0x4D42)) //0x4D42=39。 [1] = head_buf[1]。 return 1。img_buf, amp。img_buf, buffer, size)。 BYTE *data = NULL。 img_buffer img_buf。 info_head ihead。 int headsize。 continue。 c++) put4((c amp。 for (c = 0。 c2 = c amp。 c1 = (c 4) amp。 } continue。 0x0f)。 1) == 0) c1 = getc_image_buf(img_buf)。 c c2。 ~3。 continue。 case 2: /* 0 2 xx yy delta mode NOT SUPPORTED */ getc_image_buf(img_buf)。 case 0: /* 0 = escape */ switch (n = getc_image_buf(img_buf)) { case 0: /* 0 0 = end of current scan line */ case 1: /* 0 1 = end of data */ if (once) put4(0)。 for (。 once = 0。 } }}RLE4壓縮算法代碼:static int decode_RLE4(BYTE *buf, img_buffer *img_buf){ int c, n, c1, c2。 while( n) *p++ = c。 continue。 if( n amp。 cn。 continue。 case 2: /* 0 2 xx yy delta mode NOT SUPPORTED*/ getc_image_buf(img_buf)。) { switch( n = getc_image_buf(img_buf)) { case EOF: return 0。 BYTE *p = buf。}BMP格式圖片的壓縮加載顯示在3圖像格式解析,BMP圖像格式解析中介紹到BMP圖像壓縮的算法有兩種分別為RLE8和RLE4,先對圖像壓縮后然后進(jìn)行加載顯示。 fclose(fh)。 *y=py。 c=ciptroutput_ponents。 px=ciptroutput_width。 ciptrout_color_space=JCS_RGB。 jpeg_stdio_src(ciptr,fh)。 return(FH_ERROR_FORMAT)。 if(setjmp()==1) { // FATAL ERROR Free the object and return... jpeg_destroy_depress(ciptr)。)。 if(!(fh=fopen(filename,rb))) return(FH_ERROR_FILE)。 ciptr=amp。 int px,py,c。 struct jpeg_depress_struct *ciptr。 return(FH_ERROR_OK)。 jpeg_destroy_depress(ciptr)。 bp+=px*c。lb, 1)。 bp=buffer。 c=ciptroutput_ponents。 px=ciptroutput_width。 ciptrout_color_space=JCS_RGB。 jpeg_stdio_src(ciptr,fh)。 return(FH_ERROR_FORMAT)。 if(setjmp()==1) { jpeg_destroy_depress(ciptr)。)。 if(!(fh=fopen(filename,rb))) return(FH_ERROR_FILE)。 ciptr=amp。 FILE *fh。 unsigned char *bp。 struct jpeg_depress_struct *ciptr。}}調(diào)用經(jīng)過經(jīng)過編譯后的庫文件加載JPEG首先將JPEG編碼,解碼,數(shù)據(jù)壓縮寫出庫文件,最終在顯示程序中調(diào)用。 iBlue = (iBlue+42)/85。 iRed=(iRed*7+127)/255。 iGreen=*lpPtr++。i0。 plmmBitmap1=(BYTE*)(malloc(sizeof)(BYTE)*(ImgWidth*ImgHeight)))。最后將轉(zhuǎn)化之后的256彩色數(shù)據(jù)送入LCD顯示緩沖區(qū),LCD顯示圖像。得到的就是二維IDCT轉(zhuǎn)換的結(jié)果。準(zhǔn)備進(jìn)行二位IDCT轉(zhuǎn)換時(shí),對讀入經(jīng)過反量化后的數(shù)據(jù)進(jìn)行8次一維的行變換,將變換后的數(shù)據(jù)存入中間數(shù)據(jù)緩沖區(qū)。實(shí)現(xiàn)二維IDCT運(yùn)算的流程圖如圖43所示。本文采用行列分解法先將二維IDCT分解成一維8點(diǎn)的IDCT。 buffer2[i][j]=(int)s[tag]*(int)pQt[tag]。j8。i8。 int buffer2[8][8]。 short tag。反量化完的數(shù)據(jù)存buffer2[8][8]緩存中。在解碼時(shí)采用文件自帶的量化表來對熵解碼出來的系數(shù)進(jìn)行反量化,反量化的操作就是對解碼系數(shù)乘上對應(yīng)的量化階矩。JPEG格式反量化的實(shí)現(xiàn)JPEG的頭文件里包含了量化表,定義在標(biāo)記DQT后,以標(biāo)記碼OxFFDB開始,一個(gè)標(biāo)記碼開始定義一張量化表。圖42 Huffman解碼一個(gè)碼字的流程圖解碼,解碼端收到的是圖像經(jīng)過壓縮后的碼流。每個(gè)Huffman碼表分別是這樣保存的:前面的16字節(jié)對應(yīng)長度為1到16的Huffman碼字的個(gè)數(shù),接下來是這16個(gè)數(shù)字之和個(gè)字節(jié),對應(yīng)字節(jié)就是對應(yīng)Huffman碼字的等價(jià)數(shù)字。在每個(gè)JPEG文件里定義了一張表來描述Huffman樹,定義在DHT標(biāo)記后面,Huffman代碼的長度限制在16bit內(nèi)。JPE6算法中提供了標(biāo)準(zhǔn)的Huffman碼表。圖41 靜態(tài)圖像FRAMEBUFFER顯示過程 (2)解碼及顯示程序的實(shí)現(xiàn)解碼過程主要包括熵解碼、反量化、反離散余弦,而熵解碼的算法、反離散余弦變換的算法是解碼程序設(shè)計(jì)的核心。最后將轉(zhuǎn)化之后的24位的顯示出解碼重構(gòu)圖像。 (1)總體結(jié)構(gòu)和流程 靜態(tài)圖像的顯示軟件的總體結(jié)構(gòu)如圖所示,包括解碼程序和顯示處理兩大部分.首先,要對圖像解碼的過程進(jìn)行初始化,即讀取標(biāo)記碼數(shù)據(jù)對頭文件信息進(jìn)行處理;然后進(jìn)行正式的解碼過程。 JPEG BMP 圖像顯示在PC下程序開發(fā)前首先編譯JPEGLIB,ZLIB庫,程序需需要系統(tǒng)對JPEGLIB,ZLIB的支持。具體操作如下:⑴要激活FRAMEBUFFER驅(qū)動(dòng)程序,需要修改/boot/grub/,在以kernerl打頭的一行添加 vga=788(vga=788相當(dāng)于vga=0x314為800x600分辨率)。編譯的內(nèi)核,檢查內(nèi)核配置。所以,對于應(yīng)用程序而言,如果希望在 FrameBuffer 之上進(jìn)行圖形編程,還需要自己動(dòng)手完成其他許多工作。 ④ 映射后就可以直接讀寫屏幕緩沖區(qū),進(jìn)行繪圖和圖片顯示了。根據(jù)屏幕參數(shù)可計(jì)算屏幕緩沖區(qū)的大小。在應(yīng)用程序中,操作/dev/fb的一般步驟如下: ① 打開/dev/fb設(shè)備文件。③I/O控制:對于幀緩沖設(shè)備,對設(shè)備文件的ioctl操作可讀取/設(shè)置顯示設(shè)備及屏幕的參數(shù),如分辨率,顯示顏色數(shù),屏幕大小等等。各種應(yīng)用程序如果使用幀緩沖設(shè)備的話都是通過映射操作來顯示圖像的。②映射(map)操作: Linux在文件操作 file_operations結(jié)構(gòu)中提供了mmap函數(shù),可將文件的內(nèi)容映射到用戶空間。應(yīng)用程序?qū)inux下操作Framebuffer設(shè)備/dev/fb操作主要有這幾種:①讀/寫(read/write)/dev/fb:相當(dāng)于讀/寫屏幕緩沖區(qū)。CPU控制顯示控制器到指定的位置去取數(shù)據(jù)和指令,截至到目前一般都是從顯卡的顯存中讀取,但是也可以從別的存儲(chǔ)位置獲取,當(dāng)顯存不夠的時(shí)候可以從內(nèi)存,硬盤獲取。幀緩存在內(nèi)存中有個(gè)地址。尤其是通過幀緩沖可顯示漢字點(diǎn)陣,成為Linux漢化的唯一可行方案。他允許上層應(yīng)用程序在圖形模式下直接對顯示緩沖區(qū)進(jìn)行讀寫操作。 (10) 壓縮文本數(shù)據(jù)塊zTXt (pressed textual data)。   (8) 圖像最后修改時(shí)間數(shù)據(jù)塊tIME (image lastmodification time)。   (6) 樣本有效位數(shù)據(jù)塊sBIT(significant bits)。   (4) 圖像直方圖數(shù)據(jù)塊hIST(image histogram)。所謂白色度是指當(dāng)R=G=B=最大值時(shí)在顯示器上產(chǎn)生的白色度。輔助數(shù)據(jù)塊  PNG文件格式規(guī)范制定的10個(gè)輔助數(shù)據(jù)塊是:   (1) 背景顏色數(shù)據(jù)塊bKGD(background color)。對于一個(gè)PNG文件來說,其文件頭總是由位固定的字節(jié)來描述的:十進(jìn)制數(shù)137 80 78 71 13 10 26 10十六進(jìn)制數(shù)89 50 4E 47 0D 0A 1A 0A其中第一個(gè)字節(jié)0x89超出了ASCII字符的范圍,這是為了避免某些軟件將PNG文件當(dāng)做文本文件來處理。關(guān)鍵數(shù)據(jù)塊定義了4個(gè)標(biāo)準(zhǔn)數(shù)據(jù)塊,每個(gè)PNG文件都必須包含它們,PNG讀寫軟件也都必須要支持這些數(shù)據(jù)塊。文件結(jié)構(gòu)由一個(gè)8字節(jié)的PNG文件署名(PNG file signature)域和按照特定結(jié)構(gòu)組織的3個(gè)以上的數(shù)據(jù)塊(chunk)組成。 PNG格式圖像PNG圖像 概述:PNG格式圖片因其高保真性、透明性及文件體積較小等特性,被廣泛應(yīng)用于網(wǎng)頁設(shè)計(jì)、平面設(shè)計(jì)中。但GIF只能顯示256色。GIF分為靜態(tài)GIF和動(dòng)畫GIF兩種,是一種壓縮位圖格式,支持透明背景圖像,適用于多種操作系統(tǒng)“體型”很小,網(wǎng)上很多小動(dòng)畫都是GIF格式。39。一個(gè)GIF文件的結(jié)構(gòu)可分為文件頭(File Header)、GIF數(shù)據(jù)流(GIF Data Stream)和文件終結(jié)器(Trailer)三個(gè)部分。 GIF格式圖像GIF文件存儲(chǔ)結(jié)構(gòu)GIF文件內(nèi)部是按塊劃分的,包括控制塊( Control Block )和數(shù)據(jù)塊( Data Subblocks )兩種。GIF文件內(nèi)部分成許多存儲(chǔ)塊,用來存儲(chǔ)多幅圖象或者是決定圖象表現(xiàn)行為的控制塊,用以實(shí)現(xiàn)動(dòng)畫和交互式應(yīng)用。fcfg);本程序可將原始數(shù)據(jù)壓縮為JPG或BMP格式的圖像文件。line,1);jpeg_finish_press(amp。jcfg,TRUE);line_length=gray?width:width十3;line=(unsigned char*)img;for(i=0,iheight;i++,line+Mine_length);jpeg_write_scanlines(amp。jcfg);jpeg_stdio—dest(amp。 (11) JPEG壓縮的具體實(shí)現(xiàn)首先要編寫下面函數(shù):int write——jpeg(char*filename,char*img,int wiidth,int height,int quality,int gray);filename是圖像文件名,img是原始圖像數(shù)據(jù),width ,height是圖像的寬度和高度,quality確定圖像的壓縮質(zhì)量,gray確定圖像的色彩。以下是其各個(gè)部分的功能及于內(nèi)存的位置組成部分編號起始位置字節(jié)號字段簡寫字段功能一FFD8SOI(Start
點(diǎn)擊復(fù)制文檔內(nèi)容
醫(yī)療健康相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1