ʵÑé¶þ JEPG ͼÏñ±àÂë
ʵÑé¶þ JPEG ͼÏñ±àÂë
1£®ÊµÑéÄ¿µÄ
±¾ÊµÑéÖ¼ÔÚÁ˽âĿǰ×îΪ³£ÓÃµÄ JPEG ѹËõËã·¨µÄ¹¤×÷ÔÀí£¬ÖØµãÊÇ DCT ±ä»»ºÍÁ¿»¯¡£
2£®ÊµÑéÌõ¼þ
£¨1£© ÆÕͨ PC ¼ÆËã»ú £¨2£© MATLAB6.5 £¨3£© ±ê×¼²âÊÔͼÏñ
3£®ÊµÑéÄÚÈÝ
£¨1£© Óà MATLAB Éú³ÉÖ»ÓУ¨0£¬0£©ÏµÊýΪ 1£¬ÆäÓàϵÊý¾ùΪ 0 µÄ 8¡Á8 ¾ØÕ󣬲¢¶Ô¸Ãϵ
Êý¾ØÕó×ö DCT ·´±ä»»£¬²¢ÒÔͼÏñ·½Ê½ÏÔʾ±ä»»ºó¾ØÕó¡£ £¨2£© ¸Ä±äϵÊý 1 µÄλÖã¬Öظ´²½Öè 1£¬¹Û²ìÊä³öͼÏñµÄ±ä»¯Çé¿ö£¬½ø¶øÀí½â DCT ϵÊýµÄ
ÎïÀíº¬Òå¡£ £¨3£© ¸ù¾Ý JPEG ±ê×¼¶Ô±ê×¼²âÊÔͼÏñ×ö DCT ±ä»»£¬²¢¶Ô DCT ϵÊý½øÐÐÁ¿»¯£¨Ñ¡ÔñÁ¿»¯
²½³¤Îª 8£©£»È»ºó×ö·´ÁËÁ¿»¯ºÍ·´±ä»»£¬µÃµ½Öؽ¨Í¼Ïñ£¬±È½ÏÔʼͼÏñºÍÖØ½¨Í¼ÏñµÄ ²î±ð¡£
£¨4£© ¸Ä±äÁ¿»¯²½³¤£¬Öظ´²½Ö裨3£©¹Û²ìÁ¿»¯²½³¤¶ÔͼÏñÖÊÁ¿µÄÓ°Ïì¡£
£¨5£© ÀûÓà MATLAB ×Ô´øµÄ JPEG ѹËõËã·¨£¬¶Ô±ê×¼²âÊÔͼÏñ½øÐÐѹËõ£¬²¢±£´æ±àÂëºóµÄ
JPEG ͼÏñ£¬±È½Ï±àÂëǰºóͼÏñÖÊÁ¿ºÍÎļþ´óСµÄ²î±ð¡£
4£®ÊµÑéÔÀí
£¨1£©JPEG-¾²Ö¹Í¼ÏñѹËõ±ê×¼
¶ÔÓÚ¾²Ö¹Í¼Ïñ£¬¹ú¼Ê±ê×¼»¯×éÖ¯ ISO¡¢ÔÀ´µÄ¹ú¼Êµç±¨µç»°×ÉѯίԱ»á CCITT£¨ÏÖ¸Ä ÃûΪ ITU-T£©¼°¹ú¼Êµç¹¤Î¯Ô±»á IEC ¹²Í¬×éÖ¯ÁËÒ»¸öͼƬר¼ÒÁªºÏС×飨Joint Photographic Experts Group£©Ñо¿Öƶ©±ê×¼£¬²¢³ÆÖ®Îª JEPG ±ê×¼¡£JEPG ±ê×¼·ÖΪÁ½Àࣺ»ùÓÚ DPCM Óë ìØ±àÂëµÄÎÞÊ§Õæ±àÂëϵͳ£»»ùÓÚÀëÉ¢ÓàÏұ任 DCT µÄÏÞÊ§Õæ±àÂëϵͳ¡£Ç°Õß²»»á²úÉúÊ§Õæ£¬ µ«Ñ¹Ëõ´ËºÜС£»ºóÒ»ÖÖËã·¨½øÐÐͼÏñѹËõÊÇÐÅÏ¢ËäÓÐËðʧµ«Ñ¹Ëõ±È¿ÉÒԺܴó£¬ÀýÈçѹËõ 20 ±¶×óÓÒʱ£¬ÈËÑÛ»ù±¾ÉÏ¿´²»³öÊ§Õæ¡£
±¾ÊµÑéÖÐËùÓõÄÊÇ»ùÓÚÀëÉ¢ÓàÏұ任 DCT µÄ JPEG Ëã·¨£¬¸Ã JPEG Ëã·¨²Ù×÷¿É·Ö³ÉÒÔ ÏÂÈý¸ö²½Ö裺ͨ¹ýÀëÉ¢ÓàÏұ任£¨DCT£©È¥³ýÊý¾ÝÈßÓࣻʹÓÃÁ¿»¯±í¶ÔÒÔ DCT ϵÊý½øÐÐÁ¿ »¯£¬Á¿»¯±íÊǸù¾ÝÈËÀàÊÓ¾õϵͳºÍѹËõͼÏñÀàÐ͵ÄÌØµã½øÐÐÓÅ»¯µÄÁ¿»¯ÏµÊý¾ØÕó£»¶ÔÁ¿»¯ºó µÄ DCT ϵÊý½øÐбàÂëʹÆäìØ´ïµ½×îС£¬ìرàÂë²ÉÓà Huffman ¿É±ä×Ö³¤±àÂë¡£
¾ßÌå¹ý³ÌÈçÏ£º£¨Èçͼ 1 Ëùʾ£©
14
ʵÑé¶þ JEPG ͼÏñ±àÂë
ͼ 1 JPEG Ëã·¨µÄ±à½âÂë¹ý³Ì
ÀëÉ¢ÓàÏұ任£ºJPEG ²ÉÓà 8x8 ×Ó¿éµÄ¶þάÀëÉ¢ÓàÏұ任Ëã·¨¡£ÔÚ±àÂëÆ÷µÄÊäÈë¶Ë£¬°Ñ ÔʼͼÏñ£¨¶Ô²ÊɫͼÏñÊÇÿ¸öÑÕÉ«³É·Ö£©Ë³ÐòµØ·Ö¸î³ÉһϵÁÐ 8x8 µÄ×Ó¿é¡£ÔÚ 8x8 ͼÏñ¿éÖУ¬ ÏñËØÖµÒ»°ã±ä»¯½Ïƽ»º£¬Òò´Ë¾ßÓÐ½ÏµÍµÄ¿Õ¼äÆµÂÊ¡£ÊµÊ©¶þά 8x8 ÀëÉ¢ÓàÏұ任¿ÉÒÔ½«Í¼Ïñ ¿éµÄÄÜÁ¿¼¯ÖÐÔÚ¼«ÉÙÊý¼¸¸öϵÊýÉÏ£¬ÆäËüϵÊýµÄÖµÓëÕâЩϵÊýÏà±È£¬¾ø¶ÔֵҪСµÃ¶à¡£Óë Fourier ±ä»»ÀàËÆ£¬¶ÔÓڸ߶ÈÏà¹ØµÄͼÏñÊý¾Ý½øÐÐÕâÑù±ä»»µÄЧ¹ûʹÄÜÁ¿¸ß¶È¼¯ÖУ¬±ãÓÚºó ÐøµÄѹËõ´¦Àí¡£
Á¿»¯£ºÎªÁ˴ﵽѹËõÊý¾ÝµÄÄ¿µÄ£¬¶Ô DCT ϵÊýÐè×÷Á¿»¯´¦Àí¡£Á¿»¯µÄ×÷ÓÃÊÇÔÚ±£³ÖÒ» ¶¨ÖÊÁ¿Ç°ÌáÏ£¬¶ªÆúͼÏñÖжÔÊÓ¾õЧ¹ûÓ°Ïì²»ÈëµÄÐÅÏ¢¡£Á¿»¯ÊǶà¶ÔÒ»Ó³É䣬ÊÇÔì³É DCT ±àÂëÐÅÏ¢ËðʧµÄ¸ùÔ´¡£JPEG ±ê×¼ÖвÉÓÃÏßÐÔ¾ùÔÈÁ¿»¯Æ÷£¬Á¿»¯¹ý³ÌΪ¶Ô 64 ¸ö DCT ϵÊý³ý ÒÔÁ¿»¯²½³¤²¢ËÄÉáÎåÈëÈ¡Õû£¬Á¿»¯²½³¤ÓÉÁ¿»¯±í¾ö¶¨¡£Á¿»¯±íÔªËØÒò DCT ϵÊýλÖúͲÊÉ« ·ÖÁ¿µÄ²»Í¬¶øÈ¡²»Í¬Öµ¡£Á¿»¯±íΪ 8x8 ¾ØÕó£¬Óë DCT ±ä»»ÏµÊýÒ»Ò»¶ÔÓ¦¡£Á¿»¯±íÒ»°ãÓÉÓà »§¹æ¶¨ JPEG ±ê×¼Öиø³öÁ˲ο¼Öµ£©£¬²¢×÷Ϊ±àÂëÆ÷µÄÒ»¸öÊäÈë¡£Á¿»¯±íÖÐÔªËØÎª 1 µ½ 255 Ö®¼äµÄÈÎÒâÕûÊý£¬ÆäÖµ¹æ¶¨ÁËÆäËù¶ÔÓ¦ DCT ϵÊýµÄÁ¿»¯²½³¤¡£ DCT ±ä»»ÏµÊý³ýÒÔÁ¿»¯±í ÖжÔӦλÖõÄÁ¿»¯²½³¤²¢ºÏÈëСÊý²¿·Öºó¡£¶àÃαäΪÁ㣬´Ó¶ø´ïµ½ÁËѹËõµÄÄ¿µÄ¡£
Óγ̱àÂ룺64 ¸ö±ä»»Êý¾Á¿»¯ºó£¬×óÉϽÇϵÊýÊÇÖ±Á÷·ÖÁ¿£¨DC ϵÊý£©£¬¼´¿Õ¼äÓòÖÐ 64 ¸öͼÏñ²ÉÑùÖµµÄ¾ùÖµ¡£ÏàÁÚ 8x8 ¿éÖ®¼äµÄ DC ϵÊýÒ»°ãÓкÜÇ¿µÄÏà¹ØÐÔ£¬JPEG ±ê×¼¶Ô DC ϵÊý²ÉÓà DPCM ±àÂ루²î·Ö±àÂ룩·½·¨£¬¼´¶ÔÏàÁÚÏñËØ¿éÖ®¼äµÄ L ϵÊýµÄ²îÖµ½øÐбàÂë¡£ ÆäÓà 63 ¸ö½»Á÷·ÖÁ¿£¨AC ϵÊý£©Ê¹ÓÃÓγ̱àÂ룬´Ó×óÉϽǿªÊ¼ÑضԽÇÏß·½Ïò£¬ÒÔ Z ×ÖÐÎ £¨Zig-Zag£©½øÐÐɨÃèÖ±ÖÁ½áÊø¡£Á¿»¯ºóµÄ AC ϵÊýͨ³£»áÓÐÐí¶àÁãÖµ£¬ÒÔ Z ×ÖÐη¾¶½øÐÐ Óγ̱àÂëÓÐЧµØÔö¼ÓÁËÁ¬Ðø³öÏÖµÄÁãÖµ¸öÊý¡£
ìØ±àÂ룺ΪÁ˽øÒ»²½Ñ¹ËõÊý¾Ý£¬¶Ô DC ÂëºÍ AC Ðг̱àÂëµÄÂë×ÖÔÙ×÷»ùÓÚͳ¼ÆÌØÐÔµÄìØ ±àÂë¡£ JPEG ±ê×¼½¨ÒéʹÓõÄìØ±àÂë·½·¨ÓÐ Huffman ±àÂëºÍ×ÔÊÊÓ¦¶þ½øÖÆËãÊõ±àÂë¡£
£¨2£©DCT ±ä»»Óë·´±ä»»
Ê×ÏȰÑÒ»·ùͼÏñ£¨µ¥É«Í¼ÏñµÄ»Ò¶ÈÖµ»ò²ÊɫͼÏñµÄÁÁ¶È·ÖÁ¿»òÉ«²î·ÖÁ¿Ðźţ©·Ö³É 8¡Á8 µÄ¿é°´Í¼ÖеĿòͼ½øÐÐÀëÉ¢ÓàÏÒÕý±ä»»£¨FDCT£©ºÍÀëÉ¢ÓàÏÒÄæ±ä»»£¨IDCT£©¡£8¡Á8FDCT ºÍ 8¡Á8IDCT Êýѧ¶¨Òå±í´ïʽÈçÏ£º
FDCT£º
? 7 7 ( 2x?? 1) ( 2 y?? 1) ??1 F (u, v)???C (u)C (v)????? cos ?????? f ( x, y)?? cos 16 u??4 16 v???? x??0 y??0 ??
(1)
15
IDCT£º
ʵÑé¶þ JEPG ͼÏñ±àÂë
1?? 7 7 ( 2x?? 1) ( 2 y?? 1) ??
F ( x, y)??????u???? cos ??? C (u)C(v) f (u, v)?? cos 16 ???16 v??4??? u??0 v??0 ??
1 Á½Ê½ÖУ¬ C (u), C (v)???£¬µ± u?? v?? 0 £»
2 C (u), C (v)?? 1 , ÆäËüÇé¿ö
(2)
ÿ¸ö 8¡Á8 ¶þάÔͼÏñ²ÉÑùÊý¾Ý¿é£¬Êµ¼ÊÉÏÊÇ 64 µãÀëÉ¢Ðźţ¬¸ÃÐźÅÊǿռä¶þά²ÎÊý x ºÍ y µÄº¯Êý¡£fdct °ÑÕâЩÐźÅ×÷ΪÊäÈ룬Ȼºó°ÑËü·Ö½â³É 64 ¸öÕý½»»ùÐźţ¬Ã¿¸öÕý½»»ùÐÅ ºÅ¶ÔÓ¦ÓÚ 64 ¸ö¶þά£¨2d£©¿Õ¼äƵÂÊÖеÄÒ»¸ö£¬ÕâЩ¿Õ¼äƵÂÊÊÇÓÉÊäÈëÐÅºÅµÄÆµÆ××é³É¡£fdct µÄÊä³öÊÇ 64 ¸ö»ùÐźŵķùÖµ£¨¼´ dct ϵÊý£©£¬Ã¿¸öϵÊýÖµÓÉ 64 µãÊäÈëÐźÅΨһµØÈ·¶¨£¬¼´ ÀëÉ¢ÓàÏұ任µÄ±ä»»ÏµÊý¡£ÔÚÆµÓòÆ½ÃæÉϱ任ϵÊýÊǶþάƵÓò±äÁ¿ u ºÍ v µÄº¯Êý¡£¶ÔÓ¦ÓÚ u=0,v=0 µÄϵÊý£¬³Æ×öÖ±Á÷·ÖÁ¿£¨dc ϵÊý£©£¬ÆäÓà 63 ¸öϵÊý³Æ×ö½»Á÷·ÖÁ¿£¨ac ϵÊý£©¡£ÒòΪ ÔÚÒ»·ùͼÏñÖÐÏñËØÖ®¼äµÄ»Ò¶È»òÉ«²îÐźű仯»ºÂý£¬ÔÚ 8¡Á8 ×Ó¿éÖÐÏñËØÕâ¼äÏà¹ØÐÔºÜÇ¿£¬ ËùÒÔͨ¹ýÀëÉ¢ÓàÏÒÕý±ä»»´¦Àíºó£¬ÔÚ¿Õ¼äÆµÂÊµÍÆµ·¶Î§ÄÚ¼¯ÖÐÁËÊýÖµ´óµÄϵÊý£¬ÕâÑùΪÊý¾Ý
ѹËõÌṩÁË¿ÉÄÜ¡£
5£®ÊµÑé²½Öè¼°½á¹û
£¨1£© Óà MATLAB Éú³ÉÖ»ÓУ¨0£¬0£©ÏµÊýΪ 1£¬ÆäÓàϵÊý¾ùΪ 0 µÄ 8¡Á8 ¾ØÕ󣬲¢¶Ô¸Ãϵ
Êý¾ØÕó×ö DCT ·´±ä»»£¬²¢ÒÔͼÏñ·½Ê½ÏÔʾ±ä»»ºó¾ØÕó¡£
±¾ÊµÑéµÄ matlab Ô´´úÂëÈçÏ£º T = dctmtx(8); I1
=[1
0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0];
I2 = blkproc(I1,[8 8],'P1*x*P2',T',T); I3 = imresize(I1,16); I4 = imresize(I2,16); figure
subplot(2,1,1); imshow(I3); subplot(2,1,2); imshow(I4,[]);
ÔËÐнá¹ûÈçÏÂËùʾ£¨×óͼÒÔºÚ°×ÏÔʾԾØÕó£¬ÓÒͼÒÔ»Ò¶ÈÏÔʾ±ä»»ºó¾ØÕ󣩣º
16
ʵÑé¶þ JEPG ͼÏñ±àÂë
ͼ 2
£¨2£© ¸Ä±äϵÊý 1 µÄλÖã¬Öظ´²½Öè 1£¬¹Û²ìÊä³öͼÏñµÄ±ä»¯Çé¿ö£¬½ø¶øÀí½â DCT ϵÊýµÄ
ÎïÀíº¬Òå¡£
¸Ä±äÔ¾ØÕóÖÐ 1 µÄλÖã¬Áî I1
= [0 0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0 1
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0];
0 0 0 0
¾Í¿ÉµÃµ½ÈçϵĽá¹û£º
ͼ 3
ͬÑùµÄ£¬Èô I1
= [0
0
0
0
0
0
0
0
17