Xem mẫu

  1. for(i=0;i10.0) delta=2.0; else delta=0.1; di=ri_1+delta; i=0; /* Using Newton-Raphson's method for root finding. */ while(fabs(delta)>=EPS) { i++; if(i>=1000) { 381
  2. printf("\n no convergence.\n"); return di; } area1=Romberg(di-1,di,f1); area2=Romberg(di-1,di,f2); ff=area1/area2; fun=(ri_1)-ff; if(fabs(area2)
  3. /* ----------------------------- Numerical integration using Romberg method. ---------------------------- */ double Romberg(double di_1,double di,double (*f)(double)) { double T[10][10],h,x,Area; int N,k,kk,i,j; N=9; k=1 ; h=di- di_1; T[0][0]=h*((*f)(di_1)+(*f)(di))/2.0; for(i=1;i
  4. 2. Víi mçi lùa chän sè bit ta chän: Gauss. §ång ®Òu. Laplace. 3. C¸c møc l­îng tö cã thÓ dïng cho thiÕt kÕ cã trªn ®Üa, vÝ dô dïng Q3G.DAT cho l­îng tö 3 bit dïng l­îng tö Gauss, Q4L.DAT cho 4 bit l­îng tö Laplace. Ph­¬ng ph¸p Lloyd Lloyd còng ®­a ra mét ph­¬ng ph¸p thø hai cho phÐp x¸c ®Þnh c¸c møc l­îng tö mµ «ng gäi lµ ph­¬ng ph¸p Lloyd I. Ph­¬ng ph¸p nµy cã nhiÒu ­u ®iÓm h¬n ph­¬ng ph¸p II (gi¶i thuËt Lloyd- Max), v× nã dÔ dµng cho tÝnh to¸n vµ c¸c vector l­îng tö ho¸ cã thÓ më réng. Chó ý lµ vÊn ®Ò mµ chóng ta quan t©m ë ®©y lµ kho¶ng c¸ch l­îng tö ho¸, l­îng tö ho¸ cña hµm mét biÕn ®· biÕt ®­îc ph©n t¸n. Vector l­îng tö ho¸ lµ mét vector cña nhiÒu biÕn mµ víi c¸c biÕn nµy ta ®· biÕt ®­îc ph©n t¸n. ThuËt to¸n Lloyd theo c¸c b­íc sau: 1. Rót ra ­íc l­îng cho ph¹m vi cña c¸c biÕn di {i = 0, 1, 2, ..., N} (Mét ­íc l­îng cã thÓ rót ra b»ng c¸ch dïng c¸c gi¸ trÞ tõ l­îng tö ho¸ ®ång ®Òu hoÆc tõ c¸c møc l­îng tö tr­íc mµ ta cÇn mét kÕt qu¶ tèt h¬n). 2. §Æt mét biÕn D1= 0. D1 dïng ®Ó l­u l¹i t×nh tr¹ng kh«ng chÝnh x¸c lóc tr­íc. 3. TÝnh d i1 yp ( y )dy  di r i d i 1 p ( y)dy  di i = 0, 1, ..., N - 1. 4. TÝnh ri  ri 1 di  2 i = 0, 1, ..., N - 1 5. TÝnh t×nh tr¹ng kh«ng chÝnh x¸c N 1d k 1   ( y  rk ) 2 p( y )dy D2  k 0 d k Cã thÓ dÔ dµng më réng biÓu thøc tr¹ng th¸i kh«ng chÝnh x¸c theo 384
  5. N 1 d k 1 d k 1 d k 1  d p ( y )dy  y 2 p ( y)  2rk  yp ( y ) dy  rk2  (13.58) D   dk dk   k k 0 6. NÕu D2  D1  D1 th× mét gi¶i ph¸p ®· ®­îc t×m ra. L­u l¹i kÕt qu¶ vµ tho¸t khái ch­¬ng tr×nh. 7. §Æt D1 = D2 8. Quay l¹i b­íc 3. Mét ch­¬ng tr×nh C cho gi¶i thuËt trªn ®­îc ®Ò cËp ®Õn ë d­íi ®©y. Ch­¬ng tr×nh 13.10 LLOYDQ.C ThuËt to¸n Lloyd cho viÖc thiÕt kÕ c¸c møc l­îng tö. /*Program13.10 "LLOYDO.C".Lloyd algorithm for quantizer design.*/ /* Program for designing the Lloyd-quantizer for a Gauss, uniform or Laplace distribution.*/ #include #include #include #include #include double decision_level(double, double); double f1(double); double f2(double); double f3(double); double p(double); double Romberg(double, double, double (*)(double)); char ch; void main( ) { double *r,*d,step,sum,I1,I2,I3,D1,D2; 385
  6. int i,j,m,N,xt,yt,niter,ind; char file_name[16],ch1; FILE *fptr; clrscr( ) ; printf("Enter number of bits--->"); scanf("%d",&m); printf("Enter number of iterations-->"); scanf("%d",&niter); N=1
  7. fscanf(fptr,"%f %f ",&d[i],&r[i]); d[N]=20.0; fclose(fptr); break; } case 'n': d[N]=20.0; d[0]=-20.0; if(ch=='2') {d[N]=1.0; d[0]=-1.0;} step=(d[N]-d[0])/(float)N; for(i=1;i
  8. switch(ch) { case '1': case '3': printf("\n\n -%c %9.6f ",(char)236,r[0]); break; case '2': printf("\n\n %9.6f %9.6f ", d[0], r[0]); } for(i=1; i
  9. break; } return prob; } /* ------------------------- functions used by numerical integration routine. -------------------------------- */ double f1(double y) { return (y*(p(y))); } double f2(double y) { return p(y); } double f3(double y) { return y*y*p(y); } Bµi tËp 13.10 1. Lµm l¹i bµi tËp 13.8 nh­ng lÇn nµy dïng ch­¬ng tr×nh 13.10 cho gi¶i thuËt Lloyd. 2. So s¸nh thêi gian tÝnh to¸n khi dïng gi¶i thuËt Lloyd-Max vµ khi dïng gi¶i thuËt Lloyd. Tõ biÓu thøc (13.52) vµ (13.58) chóng ta cã thÓ ph¸t triÓn mét ch­¬ng tr×nh cho t×nh tr¹ng mÐo tèi thiÓu: N 1 d k 1 d k 1  d p ( y) dy  y 2 p ( y ) dy  rk2  (13.59) Dmin    dk   k k 0 13.6 L­îng tö ho¸ c¸c hÖ sè cña FCT Trong phÇn 13.4 chóng ta ®· b¾t ®Çu vÊn ®Ò cña biÕn ®æi cho m· ho¸. Ph­¬ng ph¸p chóng ta ¸p dông lµ chia ¶nh thµnh c¸c khèi h×nh vu«ng; mçi khèi cã kÝch th­íc 8  8 vµ 16  16. BiÕn ®æi cosin nhanh cho mçi khèi nµy ®· ®­îc rót ra. Chóng ta nhËn thÊy r»ng hÇu hÕt c¸c hÖ sè nµy cã biªn ®é rÊt nhá so víi c¸c gi¸ trÞ xung quanh khèi (mét chiÒu) DC. 389
  10. C©u hái ®Æt ra lóc nµy lµ c¸c hÖ sè nµo chóng ta cÇn l­u gi÷ vµ b»ng ph­¬ng ph¸p nµo chóng ta cã thÓ l­u gi÷ tèt nhÊt c¸c gi¸ trÞ nµy? C©u tr¶ lêi cho vÊn ®Ò nµy cã thÓ t×m thÊy trong phÇn l­îng tö ho¸ mµ chóng ta ®· nghiªn cøu ë trªn. Chó ý lµ c¸c hÖ sè cña FCT x¸c ®Þnh mét d¹ng biÕn d¹ng. Cho vÝ dô, mét ¶nh cã 256  256 ®iÓm vµ kÝch th­íc cña c¸c khèi lµ 8  8 ®iÓm, cã tÊt c¶ 64 hÖ sè cho mçi khèi vµ 32  32 khèi. Mçi hÖ sè cã 1024 gi¸ trÞ khi chóng ta xem xÐt tÊt c¶ c¸c khèi, vµ t¹o nªn mét biÕn d¹ng riªng. §¸nh gi¸ biÕn d¹ng cho hÖ sè thø j cã thÓ cho bëi d N J 1 k 1 j  (y  r (13.60) Dj  ) p j ( y)dy k, j k 0 d k j j = 0, 1, 2, ..., L - 1. ë ®©y L lµ sè c¸c hÖ sè cho mét khèi vµ Nj sè c¸c møc l­îng tö cho hÖ sè j. Tæng sè c¸c biÕn d¹ng sÏ lµ L 1 D   Dj (13.61) j 0 Lµm theo c¸c b­íc trong phÇn 13.5 chóng ta ®­îc d k 1 j yp j ( y)dy  dk j (13.62) rk , j  d k 1, j p j ( y ) dy  d kj rk , j  rk 1, j vµ (13.63) d k, j  2 NÕu chóng ta coi r»ng bÊt kú hÖ sè nµo cã thÓ x¸c ®Þnh b»ng cïng mét hµm kh¶ n¨ng xuÊt hiÖn ®é s¸ng, th× thay thÕ gi¸ trÞ c¸c hÖ sè nµy (mµ ®­îc biÓu diÔn trong biÓu thøc trªn lµ y) b»ng y  j (13.64) j Chóng ta sÏ cho tÊt c¶ c¸c hÖ sè víi c¸c ph©n bè xuÊt hiÖn gièng nhau, víi gi¸ trÞ trung b×nh vµ chuÈn cña ®é lÖch cho bëi  = 0 vµ  = 1. KÕt qu¶ sau khi tÝnh to¸n cho ta c¸c møc chia vµ c¸c møc kh«i phôc cho tÊt c¶ hÖ sè “chia”. §iÒu nµy tÊt nhiªn chØ ¸p dông víi ®iÒu kiÖn lµ c¸c hÖ sè cã cïng mét sè c¸c bit. Tr­íc khi ®­a ra c¸c møc l­îng tö chóng ta cã thÓ bá bít mét sè hÖ sè. NÕu hÖ sè (0, 0) hay cßn gäi lµ thµnh phÇn mét 390
  11. chiÒu DC biÓu diÔn cho gi¸ trÞ trung b×nh cña ®é s¸ng cña mét khèi, chóng ta kh«ng thÓ bá ®iÓm nµy ®i ®­îc. C¸c hÖ sè kh¸c trong mét khèi (cßn gäi lµ c¸c hÖ sè xoay chiÒu AC) mang c¸c th«ng tin vÒ c¸c chi tiÕt cña ¶nh. Cã thÓ nhËn thÊy lµ c¸c chi tiÕt cã ®é lÖch lín h¬n ®é lÖch chuÈn th× mang nhiÒu tin tøc h¬n c¸c chi tiÕt cã ®é lÖch Ýt h¬n ®é lÖch chuÈn. V× vËy mµ chóng ta b¾t ®Çu l­îc bá c¸c hÖ sè b¾t ®Çu tõ vïng cã tr¶i réng Ýt nhÊt. VËy bao nhiªu hÖ sè sÏ ®­îc chóng ta gi÷ l¹i? §iÒu nµy phô thuéc vµo møc ®é mµ chóng ta muèn nÐn ¶nh vµ phô thuéc vµo bao nhiªu c¸c chi tiÕt bÞ mÊt trªn ¶nh mµ chóng ta cã thÓ chÊp nhËn ®­îc. Dùa trªn c¸c gi¶ thiÕt trªn chóng ta cã thÓ ph¸t triÓn mét thuËt to¸n cho nÐn ¶nh vµ l­îng tö ho¸. C¸c b­íc sau m« t¶ cho c¶ viÖc l­îng tö ho¸ c¸c hÖ sè FCT. 1. TÝnh  vµ  cho tÊt c¶ c¸c hÖ sè FCT. (Chó ý lµ ®é lÖch chuÈn vµ trung b×nh cã thÓ tÝnh trong mét d¶i th«ng cña ¶nh dïng biÓu thøc sau cho : n xi2   xi  2 2  n(n  1) ë ®©y xi biÓu diÔn c¸c gi¸ trÞ cho mét trong c¸c hÖ sè).  ®­îc tÝnh tõ tæng cña xi. 2. ¸p dông c¸c hÖ sè cho c¸c chi tiÕt ®­îc gi÷ l¹i cô thÓ lµ 0.25 , 0.5. 3. Gi÷ l¹i c¸c hÖ sè ®· nh©n thªm ph©n sè chia cã sai lÖch cao h¬n sai lÖch chuÈn. 4. §Þnh d¹ng mét ma trËn T cã d¹ng nÕu hÖ sè (i, j) kh«ng mÊt 1 Tij   0 c¸c tr­êng hîp cßn l¹i 5. Chia kho¶ng c¸ch c¸c hÖ sè cij (cô thÓ mét cho c¸c gi¸ trÞ mµ Tij = 1) trong tÊt c¶ c¸c khèi, ngo¹i trõ c¸c gi¸ trÞ mét chiÒu cho mçi khèi, nh­ sau: cij   ij (13.65)  ij 6. TÝnh ph©n bè cña c¸c gi¸ trÞ AC “chia” cho m¶ng FCT. 7. TÝnh s cña ph©n bè rót ra tõ c¸c b­íc tr­íc. 391
  12. 8. Dïng l­îng tö ho¸ Lloyd-Max møc N, vµ söa l¹i c¸c møc chia vµ kh«i phôc c¸c møc theo: (13.66) di  di   s i = 0, 1, 2, ..., N - 1. chó ý dN = -d0 Hµm ph©n bè Laplace cung cÊp mét xÊp xØ tèt h¬n cho ph©n bè cña c¸c hÖ sè chia nh­ chóng ta thÊy ë phÇn d­íi ®©y. Sù lùa chän cña N còng nh­ c¸c hÖ sè chia cña c¸c hÖ sè phô thuéc møc ®é nÐn. 9. L­îng tö c¸c hÖ sè AC “ chia” dïng l­îng tö ho¸ cña b­íc 8. 10. Chia mçi gi¸ trÞ mét chiÒu víi 2. §iÒu nµy ®¶m b¶o r»ng c¸c gi¸ trÞ mét chiÒu kh«ng v­ît qu¸ 255 (mét biÓu diÔn 8 bit). 11. §Þnh d¹ng mét phÇn ®Çu file chøa ®Çy ®ñ th«ng tin ®Ó kh«i phôc l¹i ¶nh bÞ nÐn. PhÇn nµy chøa th«ng tin vÒ c¸c møc chia vµ c¸c møc mét chiÒu bÞ c¾t bít vµ tËp hîp c¸c gi¸ trÞ AC cho c¸c hÖ sè gi÷ l¹i. 12. ¸p dông mµ m· ho¸ Huffman cho file chøa c¸c gi¸ trÞ AC. Ma trËn T th­êng gäi lµ ma trËn khu vùc, vµ cÇn cung cÊp c¸c hÖ sè cho chøc n¨ng kh«i phôc. PhÇn ®Çu file dïng bèn th«ng tin theo thø tù sau. ChiÒu réng cña khèi (ta coi khèi lµ mét h×nh vu«ng): 1byte. Sè c¸c møc l­îng tö: 1 byte. ChiÒu réng cña ¶nh: 2 byte. Ma trËn T: 1 bit cho mét phÇn tö. §é lÖch chuÈn, trung b×nh: 4 byte trong biÓu diÔn sè thùc  sè c¸c hÖ sè. C¸c møc kh«i phôc: 4 byte trong biÓu diÔn sè thùc/ møc. 392
nguon tai.lieu . vn