intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Nén Ảnh part 9

Chia sẻ: Asg Ahsva | Ngày: | Loại File: PDF | Số trang:12

73
lượt xem
11
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

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ả

Chủ đề:
Lưu

Nội dung Text: Nén Ảnh part 9

  1. } /* i-loop. */ xt=wherex(); yt=wherey(); gotoxy(70,25); textattr(WHITE+(BLACK
  2. 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
  3. 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
  4. { printf("\nNo such file exists.\n"); exit(1); } NB=getc(fptr); N=getc(fptr); N=getc(fptr)+(getc(fptr)
  5. exit(1); } clrscr(); gotoxy(1,20); printf("Press any key to continue, or ESC to exit."); gotoxy(1,1); for(i=0;i
  6. ë ®©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
  7. 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)
  8. sigma[i]=buffo[k]; mu[i]=buffo[k+1]; } k=Nt
  9. { kj=j*NB; for(k1=0;k1
  10. 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, nh­ng 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.
  11. 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| <  l­u 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
  12. /* 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
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2