Nén Ảnh part 9
lượt xem 11
download
Tham khảo tài liệu 'nén ảnh part 9', kỹ thuật - công nghệ, điện - điện tử phục vụ nhu cầu học tập, nghiên cứu và làm việc hiệu quả
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Nén Ảnh part 9
- } /* i-loop. */ xt=wherex(); yt=wherey(); gotoxy(70,25); textattr(WHITE+(BLACK
- 8973 1024 652 8 1.3 bpp 65536 Gi¸ trÞ nµy chøng tá r»ng 83.75 phÇn tr¨m kÝch thíc cña ¶nh gèc ®· ®îc nÐn l¹i. B¹n cã thÓ gi¶m kÝch thíc cña file chøa c¸c ®iÓm DC mét chót dïng RLC. NÕu b¹n lµm nh vËy kÝch thíc cña file nµy sÏ lµ 1017 bit. M· RLC cã thÓ cho kÕt qu¶ tèt trªn ¶nh cã kÝch thíc lín. NÕu b¹n dïng lîng tö ho¸ 4 bit th× tû lÖ nÐn lµ 1.1 bpp. NÕu b¹n tr¶ lêi “y” ®Ó tÝnh d÷ liÖu lîc ®å møc x¸m cho c¸c khèi AC (chØ c¸c dø liÖu cßn gi÷ l¹i), b¹n sÏ cã ®îc file d÷ liÖu dïng ®Ó in ra. KÕt qu¶ d÷ liÖu lîc ®å møc x¸m cña ¶nh “KARENFCT.IMG” cho trong h×nh 13.19. Lîc ®å møc x¸m nµy biÓu diÔn ph©n bè Laplace nh t«i ®· ®Ò cËp ë phÇn ®Çu cuèn s¸ch nµy. Bµi tËp 13.12 1. Lµm l¹i bµi tËp 13.10 trªn ¶nh “IKRAM.IMG”. 2. TÝnh bpp. 3. VÏ lîc ®å møc x¸m cña kho¶ng c¸ch c¸c hÖ sè AC. §Ó nghiªn cøu ¶nh lîng tö ho¸ b¹n cÇn hiÖn tÊt c¶ c¸c khèi mét lóc. Ch¬ng tr×nh sau thùc hiÖn chÝnh x¸c ®iÒu ®ã. Ch¬ng tr×nh nµy sÏ in c¸c d÷ liÖu kh«ng gi÷ l¹i lµ c¸c ®iÓm zero. Ch¬ng tr×nh 13.12 QUANCHK.C Ch¬ng tr×nh hiÖn thÞ c¸c khèi lîng tö ho¸. /*Program 13.12 "QUANCHK.C". Program to display quantized blocks.*/ /* This program displays the quantized file block by block. Values that were not retained by the quantizer program are typed out as zeros. */ #include #include #include #include #include #include 406
- H×nh 13.19 Lîc ®å møc x¸m cña c¸c hÖ sè AC ®· ®îc chia. void main() { int i,j,k1,k2,N,N1,NB,NS,Nt,*T,k,kk; unsigned char *buff; FILE *fptr,*fptr2; char file_name[14],ch,*imaget,temp[14]; clrscr(); printf("\n"); printf("Enter file name in which you stored quantized image,\n"); textattr( BLUE+(YELLOW
- { printf("\nNo such file exists.\n"); exit(1); } NB=getc(fptr); N=getc(fptr); N=getc(fptr)+(getc(fptr)
- exit(1); } clrscr(); gotoxy(1,20); printf("Press any key to continue, or ESC to exit."); gotoxy(1,1); for(i=0;i
- ë ®©y ~ij lµ c¸c hÖ sè lîng tö. c Ch¬ng tr×nh 13.13 "DEQUANTZ.C" Ch¬ng tr×nh ®¶o ngîc lîng tö ho¸ cña tÖp ®· ®îc lîng tö ho¸ tríc. /*Program 13.13 "DEQUANTZ.C". Program to dequantize a previously quantized file.*/ /* This program restores a file quantized by program 'QUANTIZE.EXE' . The output file can be used as input to IFCT2D.EXE to obtain the original image.*/ #include #include #include #include #include #include #include void main() { int i,j,NB,N,N1,NS,NQ,xt,yt,k; int kj,k1,k2,kk1,kkb,loc,ch,kk2,Nt,kk,NQ1; float *buffo,*sigma,*r,*mu; char file_name[14],*imaget,temp[14]; unsigned char *buffi; int *T; FILE *fptri,*fptro,*fptri2; clrscr(); printf("\nEnter file name in which you stored quantized image,\n "); textattr(BLUE+(YELLOW
- file_name[j]='\0'; } imaget=strcpy(temp,file_name); imaget=strcat(temp,".hdr"); fptri=fopen(temp,"rb"); if(fptri==NULL) { printf("\nNo such file exists.\n"); exit(1); } NB=getc(fptri); NQ=getc(fptri); N=getc(fptri)+(getc(fptri)
- sigma[i]=buffo[k]; mu[i]=buffo[k+1]; } k=Nt
- { kj=j*NB; for(k1=0;k1
- 4. Lµm l¹i bµi tËp 13.11 vµ lµm l¹i c¸c bíc tõ 1 ®Õn 3 cña bµi tËp nµy, nhng lÇn nµy dïng: a. Tû lÖ c¸c hÖ sè gi÷ l¹i lµ 0.25. 3 bit lîng tö ho¸. b. Tû lÖ c¸c hÖ sè gi÷ l¹i lµ 0.15. 3 bit lîng tö ho¸. c. HÖ sè c¸c chi tiÕt gi÷ l¹i lµ 0.1. 5 bit lîng tö ho¸. 5. So s¸nh kÕt qu¶ rót ra tõ bíc 4. Bµi tËp 13.14 Lµm l¹i bµi tËp 13.13 trªn ¶nh IKRAM.IMG. Mét ph¬ng ph¸p nÐn ¶nh kh¸c b»ng m· ho¸ ¶nh lµ ph¬ng ph¸p ®Þnh vÞ bit. Víi ph¬ng ph¸p nµy b¹n kh«ng cÇn m· ho¸ Huffman. Ph¬ng ph¸p nµy dùa trªn sù ®Þnh vÞ sè kh¸c nhau cña c¸c bit cho hÖ sè dùa trªn gi¸ trÞ ®ãng gãp cña c¸c hÖ sè nµy khi kh«i phôc l¹i ¶nh tõ c¸c gi¸ trÞ FCT cña nã. Còng nh c¸c chó ý tõ phÇn trªn, c¸c hÖ sè víi sai lÖch cao h¬n sai lÖch chuÈn th× sÏ mang nhiÒu tin tøc h¬n c¸c hÖ sè cã sai lÖch Ýt h¬n sai lÖch chuÈn. V× vËy sè bit cho c¸c hÖ sè phô thuéc vµo sai lÖch chuÈn cña nã. NÕu bpp ®îc cho, tæng sè c¸c bit x¸c ®Þnh cho khèi ®îc cho bëi B = bpp NB NB (13.68) ë ®©y NB NB lµ kÝch thíc cña khèi ¶nh; vµ bit quy ®æi ®îc cho lµ 2 max 0.0, 1 log 2 ij (13.69) bij ( ) 2 ë ®©y bij lµ sè c¸c bit quy ®æi cho hÖ sè (i,j) vµ lµ mét biÕn ®îc thay ®æi cho ®Õn khi biÓu thøc sau tho¶ m·n: NB NB bij B (13.70) i 0 j 0 M· ho¸ Huffman cho hÖ sè AC. ¶nh nÐn. ¶nh. 2-D Lîng FCT tö ho¸ RLC cña hÖ sè DC. Gi¶i m· Huffman hÖ sè 414 AC. §¶o 2-D ¶nh gi¶i nÐn. ¶nh nÐn. Lîng tö ho¸ FCT ngîc. Gi¶i m· RLC cña hÖ sè DC.
- H×nh 13.20 Tr×nh bµy c¸c bíc thùc hiÖn m· ho¸ nÐn ¶nh vµ gi¶i nÐn ¶nh. Mét thuËt to¸n dùa trªn gi¶ thiÕt mét nöa qu·ng cho thiÕt kÕ mét ma trËn x¸c ®Þnh bit, mµ ma trËn nµy chøa ph©n bè bit cho c¸c hÖ sè bé läc trong c¸c khèi ®îc tr×nh bµy nh sau: 1. X¸c ®Þnh bpp. TÝnh B = bpp NB NB. 2. B¾t ®Çu víi c¸c gi¸ trÞ vÞ trÝ nhá cho . Chóng ta dïng 0.01. 3. 4. TÝnh ph©n bè bit dùa trªn biÓu thøc (13.69). 5. TÝnh Bs = tæng cña c¸c ph©n bè bit ®îc rót ra. TÝnh Error = Bs - B. 6. NÕu Error > 0.0 th× xn = , nÕu kh«ng xp = . 7. T¨ng b»ng mét gi¸ trÞ cè ®Þnh, vµ lÆp l¹i c¸c b¬c tõ bíc 4 ®Õn 8. bíc 6, cho ®Õn khi “Error” ®¹t ®Õn gi¸ trÞ thÝch hîp. 9. B¾t ®Çu gi¶ thiÕt mét nöa qu·ng theo: a. TÝnh mét nöa qu·ng cô thÓ = (xp + xn)/2. b. LÆp l¹i c¸c bíc tõ bíc 3 ®Õn bíc 4 ®Ó tÝnh Erro. c. NÕu |Error| < lu l¹i ma trËn ph©n bè bit vµ tho¸t. d. NÕu Error > 0.0 th× xp = ; Ngîc l¹i xn = . e. Quay l¹i bíc 9.a. Ch¬ng tr×nh 13.14 tÝnh ma trËn ph©n bè bit dùa trªn thuËt to¸n trªn. Ch¬ng tr×nh nµy ®ßi hái FCT cña ¶nh nh lµ mét gi¸ trÞ ®Çu vµo, vµ sè c¸c khèi ®îc dïng. Héi tô nhanh cho trong trêng hîp nµy, ®îc coi nh lµ mét bµi tËp ®Ó b¹n cã kinh nghiÖm. Ch¬ng tr×nh 13.14. "BITALLOC.C". Ph©n bè bit. 415
- /* Program for bit allocation.*/ #include #include #include #include #include #include void main() { FILE *fptri,*fptro; float nsq,sum,*sigma,bpp; float B,error,theta,xp,xn; float *sumd,*sumdsq,*buffi,denom; int *b,i,j,k,NB,N,Nt,k2; int m,N1,NS,NC,xt,yt,kk,kk2,loc1,k1; int loc,max,min,Bs,sign1,sign2; char file_name[14]; clrscr(); printf("Enter name of input file containing 2-D FCT results->"); scanf("w",file_name); fptri=fopen(file_name,"rb"); if(fptri==NULL) { printf("\nNo such file exists.\n"); exit(1); } nsq=filelength(fileno(fptri)); /*---------------------- Assume image is square. -----------------------*/ N=(int)sqrt((double)(nsq/sizeof(float))); m=(int)(log10((double)N)/log10((double)2.0)); k=1 ; for(i=0;i
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Giáo trình ĐIỀU KHIỂN KHÍ NÉN và THỦY LỰC part 9
12 p | 242 | 107
-
Một số vấn đề của sinh học phân tử part 5
19 p | 139 | 52
-
Giáo trinh công nghệ kim loại : Hàn và cắt kim loại part 9
12 p | 154 | 29
-
Nén dữ liệu Ảnh part 2
11 p | 78 | 12
-
Tiếng Anh chuyên ngành Kiến trúc và Xây dựng: Phần 2
236 p | 4 | 3
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn