MMFall2008HW6.pdf

‫ﺑﺎﺳﻤﻪ ﺗﻌﺎﻟﻲ‬
‫ﺳﻴﺴﺘﻢﻫﺎ ﭼﻨﺪﺭﺳﺎﻧﻪﺍ )‪(۴۰-۳۴۲‬‬
‫ﺩﺍﻧﺸﻜﺪﻩ ﻣﻬﻨﺪﺳﻲ ﻛﺎﻣﭙﻴﻮﺗﺮ‬
‫ﺗﺮﻡ ﭘﺎﻳﻴﺰ ‪۱۳۸۷‬‬
‫ﺩﻛﺘﺮ ﺣﻤﻴﺪﺭﺿﺎ ﺭﺑﻴﻌﻲ‬
‫ﺗﻜﻠﻴﻒ ﺷﻤﺎﺭﻩ‪ : ۶‬ﻓﺸﺮﺩﻩ ﺳﺎﺯ ﻭﻳﺪﺋﻮ‬
‫‪ -١‬ﻣﻘﺪﻣﻪ‬
‫در آزﻣﺎﯾﺶ ﻗﺒﻞ‪ ،‬روش ﻫﺎي ﻓﺸﺮده ﺳﺎزي ﺗﺼﻮﯾﺮ ﺛﺎﺑﺖ ﺑﺮرﺳﯽ و آزﻣﺎﯾﺶ ﺷﺪ‪ .‬در اﯾﻦ آزﻣﺎﯾﺶ‪ ،‬ﻓﺸﺮده ﺳﺎزي ﺗﺼـﻮﯾﺮ ﻣﺘﺤـﺮك ﯾـﺎ وﯾـﺪﺋﻮ‪،‬‬
‫ﭘﯿﮕﯿﺮي ﻣﯽ ﺷﻮد‪ .‬ﺟﺪول ﯾﮏ‪ ،‬ﻧﺮخ دادة ﻣﻮرد ﻧﯿﺎز ﺑﺮاي وﯾﺪﺋﻮ دﯾﺠﯿﺘﺎل در ﺳﺎﺧﺘﺎرﻫﺎي ﻣﺨﺘﻠﻒ را ﻧﺸﺎن ﻣﯽ دﻫﺪ‪ .‬ﻣﺸﺨﺺ اﺳﺖ ﮐـﻪ ﯾـﮏ‬
‫وﯾﺪﺋﻮ ﺑﻪ ﺣﺎﻓﻈﻪ و ﯾﺎ ﭘﻬﻨﺎي ﺑﺎﻧﺪ ﺑﯿﺸﺘﺮي ﻧﺴﺒﺖ ﺑﻪ ﺗﺼﻮﯾﺮ‪ ،‬ﻧﯿﺎز دارد‪ .‬ﺑﺮاي ﻣﺜﺎل ﯾﮏ وﯾﺪﺋﻮ ﺑﺎ دﻗﺖ ‪) CCIR 601‬ﻣﻌﺎدل ﺑﺎ دﻗﺖ ﺗﻠﻮﯾﺰﯾﻮن‬
‫آﻧﺎﻟﻮگ( ﺑﺎ ﻧﺮخ ﻧﻤﻮﻧﻪ ﺑﺮداري رﻧﮓ ‪ ،4:2:0‬ﻧﺮﺧﯽ ﺑﺮاﺑﺮ ‪ 128 Mbit/s‬ﯾﺎ ‪ 16Mbyte/s‬دارد‪ .‬ﺑﻌﺒﺎرت دﯾﮕﺮ‪ ،‬ﯾﮏ ﻓـﯿﻠﻢ ‪ 2‬ﺳـﺎﻋﺘﻪ‪Gbyte ،‬‬
‫‪ 112‬ﺣﺎﻓﻈﻪ اﺷﻐﺎل ﻣﯽ ﮐﻨﺪ‪ .‬ﯾﮏ ﻓﯿﻠﻢ ‪ CIF‬ﺑﺎ ﮐﯿﻔﯿﺖ ﮐﻤﺘﺮ )ﻣﻌﺎدل ﺑﺎ دﻗﺖ ‪ VHS‬ﯾـﺎ ﻓـﯿﻠﻢ ﻫـﺎي ‪ (VCD‬ﯾـﮏ ﭼﻬـﺎرم اﯾـﻦ ﻣﻘـﺪار را‬
‫اﺷﻐﺎل ﻣﯽ ﮐﻨﺪ‪ .‬واﺿﺢ اﺳﺖ ﮐﻪ در ﻣﻘﺎﯾﺴﻪ ﺑﺎ ﺗﺼﻮﯾﺮ‪ ،‬روش ﻫﺎي ﻣﺆﺛﺮﺗﺮي ﺑﺮاي ﻓﺸﺮده ﺳﺎزي داده ﻫﺎ‪ ،‬ﺑﺮاي ذﺧﯿﺮه ﺳﺎزي ﯾﺎ ارﺳـﺎل وﯾـﺪﺋﻮ‬
‫ﻣﻮرد ﻧﯿﺎز اﺳﺖ‪.‬‬
‫اﺳﺘﺎﻧﺪارد ﮐﺮدن اﻟﮕﻮرﯾﺘﻢﻫﺎي ﻓﺸﺮده ﺳﺎزي ﺑﺮاي وﯾﺪﺋﻮ‪ ،‬ﺑﺮاي اوﻟﯿﻦ ﺑﺎر ﺗﻮﺳﻂ ‪ CCTTT‬ﺑﺮا ﮐﻨﻔﺮاﻧﺲ ﺗﻠﻔﻨﯽ و ﺗﻠﻔﻦ ﺗﺼﻮﯾﺮي‪ ،‬اﻧﺠﺎم ﺷﺪه‬
‫اﺳــﺖ‪ .‬ﯾــﮏ ﮔــﺮوه ﺗﺨﺼﺼــﯽ از ‪) ،CCTTT‬ﮐــﻪ اﮐﻨــﻮن ﺑﻨــﺎم ‪The International Telecommunication Unit- ،ITU-T‬‬
‫‪ Telecommunication Sector‬ﻧﺎﻣﯿﺪه ﻣﯽ ﺷﻮد( اﺳﺘﺎﻧﺪاردي ﺑﺮاي ﺗﮑﻨﯿﮏ ﻫﺎي ﻓﺸﺮده ﺳﺎزي وﯾﺪﺋﻮ ﺑـﺮاي وﯾـﺪﺋﻮ ﮐﻨﻔـﺮاﻧﺲ ﻣﻄـﺮح‬
‫ﮐﺮده اﺳﺖ‪ .‬اﯾﻦ اﺳﺘﺎﻧﺪارد در ﺳﺎل ‪ 1990‬ﺗﻬﯿﻪ ﺷﺪه اﺳﺖ‪ ،‬ﺑﻌﻨﻮان ‪ H.320‬ﺷﻨﺎﺧﺘﻪ ﻣﯽ ﺷﻮد ﮐﻪ ﻗﺴﻤﺖ ﻣﺮﺑﻮط ﺑﻪ ﮐـﺪ ﮐـﺮدن وﯾـﺪﺋﻮ آن‪،‬‬
‫‪ H.261‬اﺳﺖ‪ .‬اﯾﻦ اﺳﺘﺎﻧﺪارد ﺑﺮاي وﯾﺪﺋﻮ ﮐﻨﻔﺮاﻧﺲ از ﺧﻄﻮط ‪ ISDN‬اﺳﺘﻔﺎده ﻣﯽ ﮐﻨﺪ ﮐـﻪ داراي ﭘﻬﻨـﺎي ﺑﺎﻧـﺪ ‪ p*64 kpbs‬اﺳـﺖ ﮐـﻪ‬
‫‪ p=1,2,…,30‬ﻣﯽ ﺗﻮاﻧﺪ ﺑﺎﺷﺪ‪ .‬ﻣﻨﺒﻊ وﯾﺪﺋﻮ ﯾﺎ ‪ 30 fps) CIF‬و ‪ (352*288‬ﯾﺎ ‪ 30fpc) QCIF‬و ‪ (176*144‬اﺳﺖ و وﯾﺪﺋﻮ ﻫﻤـﺮاه ﺑـﺎ‬
‫ﺻﺪا ﺑﺎﯾﺪ ﺑﻪ اﻧﺪازة ﻣﻀﺮﺑﯽ از ‪ 64 kbps‬ﻓﺸﺮده ﺷﻮد‪.‬‬
‫‪1‬‬
‫‪CE 342 – Multimedia HW# 6‬‬
‫‪H. Rabiee, Fall 2008‬‬
‫ﺟﺪول ‪ :1‬ﻓﺮﺻﺖ ﻫﺎي وﯾﺪﺋﻮ دﯾﺠﯿﺘﺎل ﺑﺮاي ﮐﺎرﺑﺮدﻫﺎي ﻣﺨﺘﻠﻒ‬
‫ﻋﻤﻮﻣﺎً ﺑﺮاي داﺷﺘﻦ ﮐﯿﻔﯿﺖ ﻗﺎﺑﻞ ﻗﺒﻮل‪ ،‬ﯾﮏ وﯾﺪﺋﻮ ‪ ،CIF‬ﺑﻪ ‪ 384 kbps‬ﯾﺎ ﺑﯿﺸﺘﺮ و ﯾﮏ وﯾﺪﺋﻮ ‪ QCIF‬ﺑﻪ ‪ 64kbps‬ﯾـﺎ ﺑﯿﺸـﺘﺮ ﻧﯿـﺎز دارد‪.‬‬
‫ﺑﺪﻧﺒﺎل اﯾﺠﺎد اﺳﺘﺎﻧﺪارد ‪ ،ITU-T ،H.320‬ﺗﻮﺳﻌﮥ ﮐﺎر را ﺑﺮاي ﺳﺎﯾﺮ رﺳﺎﻧﻪ ﻫﺎي اﻧﺘﻘﺎﻟﯽ اداﻣـﻪ داد‪ .‬از ﻣﻬﻤﺘـﺮﯾﻦ آﻧﻬـﺎ‪ ،‬اﺳـﺘﺎﻧﺪارد ‪H.323‬‬
‫اﺳﺖ ﮐﻪ ﺑﺮاي ﺷﺒﮑﻪ ﻫﺎﯾﯽ ﮐﻪ ﮐﯿﻔﯿﺖ ﺳﺮوﯾﺲ را ﺗﻀﻤﯿﻦ ﻧﻤﯽ ﮐﻨﻨﺪ‪ ،‬ﻣﺎﻧﻨﺪ اﯾﻨﺘﺮﻧﺖ‪ ،‬ﺗﻬﯿﻪ ﺷﺪه اﺳﺖ و ﻧﯿﺰ اﺳـﺘﺎﻧﺪارد ‪ H.324‬ﮐـﻪ ﺑـﺮاي‬
‫ﺧﻄﻮط ﺑﺎ ﭘﻬﻨﺎي ﺑﺎﻧﺪ ﺑﺴﯿﺎر ﮐﻢ ﻣﺜﻞ ﺧﻄﻮط ﺗﻠﻔﻦ از ﻃﺮﯾﻖ ﻣﻮدم ‪ 2808kbps‬ﯾﺎ ﮐﺎﻧﺎل ﺑﯽ ﺳﯿﻢ‪ ،‬ﻣﻄﺮح ﺷﺪه اﺳﺖ‪ .‬اﺳـﺘﺎﻧﺪارد ﮐـﺪ ﮐـﺮدن‬
‫وﯾﺪﺋﻮ در ﻫﺮ دوي اﯾﻦ اﺳﺘﺎﻧﺪاردﻫﺎي ‪ H.323‬و ‪ H.263 ،H.324‬اﺳﺖ ﮐﻪ ﭘﯿﺸﺮﻓﺖ ﻣﺤﺴﻮﺳﯽ ﻧﺴﺒﺖ ﺑﻪ ‪ H.261‬ﺑﺨﺼـﻮص ﺑـﺮاي ﻧـﺮخ‬
‫ﺑﯿﺖ ﻫﺎي ﭘﺎﯾﯿﻦ دارد‪ .‬ﺑﺎ ‪ ،H.263‬ﯾﮏ وﯾﺪﺋﻮ ‪ ،QCIF‬ﺑﺎ ﮐﯿﻔﯿﺖ ﻣﻌﺎدل ﯾﺎ ﺑﻬﺘﺮ از ‪ H.261‬ﺑﺎ ﻧﺮخ ‪ ،64kbps‬ﺗـﺎ ﺣـﺪود ‪ 24kbps‬ﻓﺸـﺮده‬
‫ﻣﯽ ﺷﻮد‪.‬‬
‫ﻫﻤﺰﻣﺎن ﺑﺎ ﺗﻼش ‪ ITU-T‬ﯾﮏ ﮔﺮوه ﺗﺨﺼﺼـﯽ ﺑـﻪ ﻧـﺎم ‪ ،Motion Picture Expert Group ،MPEG‬از ‪ ISO‬ﻧﯿـﺰ اﺳـﺘﺎﻧﺪاردﻫﺎي‬
‫ﻣﺨﺘﻠﻔﯽ را ﺑﺮاي ذﺧﯿﺮه ﺳﺎزي‪ ،‬ﺗﻮزﯾﻊ ارﺳﺎل و اﻧﺘﺸﺎر وﯾﺪﺋﻮ‪ ،‬ﺗﻮﺳﻌﻪ دادﻧﺪ‪ .‬اوﻟﯿﻦ اﺳﺘﺎﻧﺪارد اﯾﻦ ﮔﺮوه ‪ MPEG-1‬اﺳﺖ ﮐﻪ ﻗﺎﺑﻠﯿﺖ ﻓﺸـﺮده‬
‫ﺳﺎزي وﯾﺪﺋﻮ و ﺻﻮت ﺑﺎ دﻗـﺖ ‪ (352*240 pels/sec 30 fps) ،SIF‬را ﺗـﺎ ‪ 1/5Mbps‬ﺑـﺎ ﮐﯿﻔﯿـﺖ ﺧـﻮب‪ ،‬دارد‪ .‬اﯾـﻦ اﺳـﺘﺎﻧﺪارد اﻣﮑـﺎن‬
‫ذﺧﯿﺮهﺳﺎزي و ﭘﺨﺶ ﻓﯿﻠﻢ ﻫﺎ روي ‪ CD-ROM‬را ﻣﯽ داد ﮐﻪ در آن زﻣﺎن ﻧﺮخ آﻧﻬﺎ ﺑﻪ ‪ 1/5 Mbps‬ﻣﺤﺪود ﻣﯽ ﺷﺪ‪.‬‬
‫اﺳﺘﻘﺒﺎل از ﻓﯿﻠﻢ ﻫﺎي ‪ MPEG-1‬روي ‪ VCD) CD‬ﯾﺎ ‪ (Video CD‬ﻋﺎﻣﻠﯽ ﺑﺮاي ﺗﻮﺳﻌﮥ وﯾـﺪﺋﻮﻫﺎي دﯾﺠﯿﺘـﺎل ﺷـﺪ‪ .‬وﻗﺘـﯽ اﺳـﺘﺎﻧﺪارد‬
‫‪ MPEG-1‬ﺑﺮاي اوﻟﯿﻦ ﺑﺎر ﻣﻄﺮح ﺷﺪ‪ ،‬ﺳـﺨﺖ اﻓـﺰار ﭘﯿﭽﯿـﺪه ﺑـﺮاي ﮐـﺪ و واﮐـﺪ ﮐـﺮدن ﺑـﯽ درﻧـﮓ آن ﻣـﻮرد ﻧﯿـﺎز ﺑـﻮد‪ .‬ﻋﺮﺿـﻪ ﺷـﺪن‬
‫ﻣﯿﮑﺮوﭘﺮوﺳﺴﻮر ‪ ،Intel Pentium I‬واﮐﺪ ﮐﺮدن ﻓﯿﻠﻢ ﻫﺎي ‪ MPEG-1‬ﺑﻄﻮر ﺑﯽ درﻧﮓ و ﮔﺮﻓﺘﻦ ﻓﯿﻠﻢ ‪ MPEG-1‬از ﻃﺮﯾـﻖ ‪ WEB‬را‬
‫ﻣﯿﺴﺮ ﮐﺮد‪.‬‬
‫ﺑﻌﺪ از ﮐﺎﻣﻞ ﺷﺪن ‪ MPEG ،MPEG-1‬روي اﺳﺘﺎﻧﺪارد ﮐﺮدن ﺷﯿﻮة ﻓﺸﺮده ﺳﺎزي وﯾـﺪﺋﻮ و ﺻـﺪا‪ ،‬ﺑـﺮاي ﮐﺎرﺑﺮدﻫـﺎي اﻧﺘﺸـﺎر وﯾـﺪﺋﻮ ﺑـﺎ‬
‫ﮐﯿﻔﯿﺖ ﺑﺎﻻ‪ ،‬ﻣﺘﻤﺮﮐﺰ ﺷﺪ‪ ،‬ﺑﺎ اﯾﻦ ﻫﺪف ﮐﻪ وﯾﺪﺋﻮ ﺑﺎ دﻗﺖ ‪) CCIR601‬ﮐﯿﻔﯿﺖ ﺗﻠﻮﯾﺰﯾﻮن( ﺑﯿﻦ ‪ 3‬ﺗـﺎ ‪ 10Mbp‬ﻓﺸـﺮده ﺷـﻮد‪ .‬اﯾـﻦ ﺗـﻼش‬
‫ﻣﻨﺠﺮ ﺑﻪ ﻣﻄﺮح ﺷﺪن ‪ MPEG–2‬ﺷﺪ‪ .‬اﯾﺠﺎد اﺳﺘﺎﻧﺪارد ‪ MPEG-2‬وﻗﺎﯾﻊ ﻣﻬﻤﯽ ﺑﺪﻧﺒﺎل داﺷﺖ‪ :‬اﻣﮑﺎن اﻧﺘﺸـﺎر وﯾـﺪﺋﻮ از ﻃﺮﯾـﻖ ﻣـﺎﻫﻮاره‬
‫)ﻣﺎﻧﻨﺪ ‪ ،(Direct-TV‬ﻓﯿﻠﻢ ﻫﺎي ‪ DVD‬و ﺗﻠﻮﯾﺰﯾﻮن دﯾﺠﯿﺘﺎل‪ .‬اﺳﺘﺎﻧﺪارد ‪ MPEG-2‬ﻫﻤﭽﻨﯿﻦ داراي اﻣﮑﺎﻧﺎﺗﯽ ﺑﺮاي ﻓﺸﺮده ﺳﺎزي وﯾﺪﺋﻮ‬
‫ﺑﺎ دﻗﺖ ‪ HDTV‬اﺳﺖ‪ .‬ﻫﻤﭽﻨﯿﻦ ﻣﯽ ﺗﻮاﻧﺪ ﺑﺎ دﻗﺖ ‪ (SIF) MPEG-1‬ﻧﯿﺰ ﮐﺎر ﮐﻨﺪ و ﺑﺎ ‪ MPEG-1‬ﺳﺎزﮔﺎر اﺳﺖ‪.‬‬
‫ﺟﺪول ‪ ،2‬اﺳﺘﺎﻧﺪاردﻫﺎي ﻓﻮق ﺑﺮاي ﻓﺸﺮده ﺳﺎزي ﺳﯿﮕﻨﺎل ﻫﺎي ﭼﻨﺪ رﺳﺎﻧﻪ اي را ﺟﻤﻊ ﺑﻨﺪي ﮐﺮده اﺳﺖ‪.‬‬
‫‪2‬‬
‫‪CE 342 – Multimedia HW# 6‬‬
‫‪H. Rabiee, Fall 2008‬‬
‫ﺟﺪول ‪ :2‬اﺳﺘﺎﻧﺪاردﻫﺎي ﮐﺪ ﮐﺮدن وﯾﺪﺋﻮ ﺑﺮاي ﮐﺎرﺑﺮدﻫﺎي ﻣﺨﺘﻠﻒ‬
‫ﺑﺪﻧﺒﺎل ‪ ،MPEG-2‬اﺳﺘﺎﻧﺪارد دﯾﮕﺮي ﺑﻪ ﻧﺎم ‪ MPEG-4‬ﻃﺮاﺣﯽ ﺷﺪ ﮐﻪ ﻫﺪف آن اﯾﺠﺎد ﻗﺎﺑﻠﯿﺘﯽ ﺑﺮاي دﺳﺘﺮﺳﯽ ﺑﻪ اﺷﯿﺎء ﻣﺨﺘﻠﻒ و ﻣﺠﺰا‬
‫ﻼ ﻫﺮ ﺷﯽء ﺑﻄﻮر ﺟﺪاﮔﺎﻧﻪ ﮐﺪ ﻣﯽ ﺷﻮد‪ .‬ﺗﻼش ﮔﺮوه ‪ MPEG‬در اداﻣـﻪ‬
‫در ﺗﺼﻮﯾﺮ وﯾﺪﺋﻮ ﺑﻮد‪ .‬وﯾﺪﺋﻮ ﺑﺎ روش ﻣﺒﺘﻨﯽ ﺑﺮ ﺷﯽء ﮐﺪ ﻣﯽﺷﻮد‪ .‬ﻣﺜ ً‬
‫ﺑﺮاي اﺳﺘﺎﻧﺪارد ‪ MPEG-7‬اﺳﺖ‪ .‬ﮐﻪ ﻫﺪف آن اﯾﺠﺎد اﺳﺘﺎﻧﺪاردي ﺑﺮاي ﺗﻮﺻﯿﻒ و ﻗﺎﺑﻠﯿﺖ ﻣﺮﺗﺐ ﺳﺎزي اﺳﺖ‪ ،‬ﺑﮕﻮﻧﻪاي ﮐﻪ اﻣﮑـﺎن ﺗﻮﺻـﯿﻒ‬
‫ﻣﺤﺘﻮاي اﻃﻼﻋﺎت ﺗﺼﻮﯾﺮي و ﺻﻮﺗﯽ را داﺷﺘﻪ ﺑﺎﺷﺪ ﺗﺎ دﺳﺘﯿﺎﺑﯽ ﺑﻪ وﯾﺪﺋﻮ دﯾﺠﯿﺘﺎل را ﻣﯿﺴﺮ ﮐﻨﺪ‪.‬‬
‫در اﯾﻦ آزﻣﺎﯾﺶ‪ ،‬ﺗﮑﻨﯿﮏ ﻫﺎي اﺑﺘﺪاﯾﯽ ﺑﺮاي ﻓﺸـﺮده ﺳـﺎزي وﯾـﺪﺋﻮ‪ ،‬ﺑﺨﺼـﻮص ﺗﺨﻤـﯿﻦ ﺟﺒـﺮان ﺣﺮﮐـﺖ و ﻣـﺮور اﺳـﺘﺎﻧﺪاردﻫﺎي ‪،H.261‬‬
‫‪ MPEG-1‬و ‪ ، MPEG-2‬دﻧﺒﺎل ﻣﯽ ﺷﻮد‪ .‬ﺑﺮاي ﺟﺰﺋﯿﺎت ﺑﯿﺸﺘﺮ در اﯾﻦ زﻣﯿﻨﻪ ﺑﻪ ]‪ [1‬ﻣﺮاﺟﻌﻪ ﻧﻤﺎﯾﯿﺪ‪.‬‬
‫‪ -2‬ﺗﺌﻮري ﻫﺎ و اﻟﮕﻮﻫﺎي ﻓﺸﺮده ﺳﺎزي وﯾﺪﺋﻮ‬
‫‪ -1-2‬ﺗﺨﻤﯿﻦ ﺣﺮﮐﺖ و ﺟﺒﺮان ﺣﺮﮐﺖ‬
‫ﺗﺨﻤﯿﻦ و ﺟﺒﺮان ﺣﺮﮐﺖ‪ ،‬ﭘﺎﯾﻪ و اﺳﺎس اﮐﺜﺮ اﻟﮕﻮرﯾﺘﻢ ﻫﺎي ﻓﺸﺮده ﺳﺎزي وﯾﺪﺋﻮ ﻫﺴﺘﻨﺪ‪ .‬ﺑﺮاي ﺟﺒﺮان ﺣﺮﮐﺖ‪ ،‬ﻓﺮض ﻣـﯽ ﮐﻨﻨـﺪ ﮐـﻪ ﺗﺼـﻮﯾﺮ‬
‫ﺟﺎري‪ ،‬ﺗﺼﻮﯾﺮي ﺑﺎ ﺗﻐﯿﯿﺮات ﺟﺰﯾﯽ ﻧﺴﺒﺖ ﺑﻪ ﺗﺼﻮﯾﺮ ﻗﺒﻠﯽ اﺳﺖ‪ .‬اﯾﻦ ﻓﺮض‪ ،‬اﻣﮑﺎن اﺳﺘﻔﺎده از ﺗﺨﻤﯿﻦ و دروﻧﯿﺎﺑﯽ را اﯾﺠﺎد ﻣﯽ ﮐﻨﺪ‪ .‬ﻫﻨﮕـﺎﻣﯽ‬
‫ﮐﻪ ﯾﮏ ﻓﺮﯾﻢ ﺑﻌﻨﻮان ﻣﺮﺟﻊ اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد‪ ،‬ﻣﺠﻤﻮﻋﻪ ﻓﺮﯾﻢ ﻫﺎي دﻧﺒﺎﻟﮥ آن‪ ،‬اﺧﺘﻼف ﻫﺎي ﺟﺰﯾﯽ ﺑﺎ ﯾﮑﺪﯾﮕﺮ دارﻧﺪ ﮐﻪ ﻧﺘﯿﺠﮥ ﺣﺮﮐﺖ اﺷـﯿﺎء‬
‫و ﯾﺎ ﺣﺮﮐﺖ دورﺑﯿﻦ اﺳﺖ‪ ،‬ﮐﻪ در ﺷﮑﻞ ‪ 1‬ﻧﺸﺎن داده ﺷﺪه اﺳﺖ‪ .‬ﺑﺮاي اﯾﻨﮑﻪ ﻣﻘﺎﯾﺴﮥ ﻓﺮﯾﻢ ﻫﺎ‪ ،‬ﺳﺎده ﺗﺮ ﺷﻮد‪ .‬ﯾﮏ ﻓﺮﯾﻢ ﺑﻄﻮر ﮐﺎﻣﻞ ﮐﺪ ﻧﻤـﯽ‬
‫ﺷﻮد‪ ،‬ﺑﻠﮑﻪ ﺑﻪ ﺑﻠﻮﮐﻬﺎﯾﯽ ﺗﻘﺴﯿﻢ ﻣﯽ ﺷﻮد و ﺑﻠﻮﮐﻬﺎ ﺑﻄﻮر ﻣﺴﺘﻘﻞ ﮐﺪ ﻣﯽ ﺷﻮﻧﺪ‪ .‬ﺑﺮاي ﻫﺮ ﺑﻠﻮك در ﻓﺮﯾﻤﯽ ﮐﻪ ﮐﺪ ﻣـﯽ ﺷـﻮد )ﻓـﺮﯾﻢ ﺟـﺎري(‪،‬‬
‫ﺑﻬﺘﺮﯾﻦ ﺑﻠﻮك ﻣﻨﻄﺒﻖ‪ ،‬در ﻓﺮﯾﻢ ﻣﺮﺟﻊ در ﻣﯿﺎن ﺗﻌﺪادي از ﺑﻠﻮﮐﻬﺎي اﻧﺘﺨﺎب ﺷﺪه‪ ،‬ﺟﺴﺘﺠﻮ ﻣﯽ ﺷﻮد‪ .‬ﺑﺮاي ﻫـﺮ ﺑﻠـﻮك‪ ،‬ﯾـﮏ ﺑـﺮدار ﺣﺮﮐـﺖ‬
‫ﺗﻮﻟﯿﺪ ﻣﯽ ﺷﻮد ﮐﻪ اﺧﺘﻼف ﺑﯿﻦ ﻣﮑﺎن آن ﺑﻠﻮك و ﺑﻬﺘﺮﯾﻦ ﺑﻠﻮك ﻣﻄﺎﺑﻖ ﺑﺎ آن‪ ،‬در ﻓﺮﯾﻢ ﻣﺮﺟﻊ را ﻧﺸﺎن ﻣﯽ دﻫﺪ‪ .‬اﯾﻦ اﻧﺘﺨﺎب ﻣـﯽ ﺗﻮاﻧـﺪ ﺑـﺎ‬
‫ﯾﮏ ﺟﺴﺘﺠﻮي ﮐﺎﻣﻞ و ﺟﺎﻣﻊ اﻧﺠﺎم ﺷﻮد‪ ،‬روﺷﯽ ﮐﻪ ﺑﻄﻮر ﻣﺨﺘﺼﺮ ﺷﺮح داده ﺧﻮاﻫﺪ ﺷﺪ‪.‬‬
‫‪3‬‬
‫‪CE 342 – Multimedia HW# 6‬‬
‫‪H. Rabiee, Fall 2008‬‬
‫ﺷﮑﻞ‪ :1‬ﻣﯿﺰان ﺣﺮﮐﺖ ﻣﺒﺘﻨﯽ ﺑﺮ ﺑﻠﻮك‬
‫در روش دروﻧﯿﺎﺑﯽ‪ ،‬ﺑﺮدارﻫﺎي ﺣﺮﮐﺖ‪ ،‬در ارﺗﺒﺎط ﺑﺎ دو ﻓﺮﯾﻢ ﻣﺮﺟﻊ ﺗﻮﻟﯿﺪ ﻣﯽ ﺷﻮﻧﺪ‪ ،‬ﯾﮑﯽ از ﻓـﺮﯾﻢ ﻣﺮﺟـﻊ ﻗﺒﻠـﯽ و دﯾﮕـﺮي از ﻓـﺮﯾﻢ ﻣﺮﺟـﻊ‬
‫ﺑﻌﺪي‪ ،‬ﺑﻬﺘﺮﯾﻦ ﺑﻠﻮﮐﻬﺎي ﺗﻄﺒﯿﻖ داده ﺷﺪه در ﻫﺮ دو ﻓﺮﯾﻢ ﺟﺴﺘﺠﻮ ﻣﯽ ﺷﻮﻧﺪ و دو ﺑﻠﻮك ﺑﺪﺳﺖ آﻣﺪه ﻣﯿﺎﻧﮕﯿﻦ ﮔﺮﻓﺘﻪ ﻣﯽ ﺷﻮﻧﺪ‪.‬‬
‫‪ -1-1-2‬اﻟﮕﻮرﯾﺘﻢ ﺗﻄﺎﺑﻖ ﺑﻠﻮﮐﻬﺎ ﺑﺮاي ﺗﺨﻤﯿﻦ ﺣﺮﮐﺖ )‪(BMA‬‬
‫ﻓﺮض ﮐﻨﯿﺪ ﮐﻪ ﻫﺮ ﺑﻠﻮك ‪ Bn‬در ﻓﺮﯾﻢ ‪ ،fk‬ﻣﺘﻨﺎﻇﺮ ﺑﺎ ﯾﮏ ﺑﻠﻮك در ﻓﺮﯾﻢ ‪ fk-1‬ﺑﺎ ﻣﻮﻗﻌﯿﺖ ‪ Dn‬ﺑﺎﺷﺪ‪.‬‬
‫ﮐﻪ ‪ Dn‬ﺑﻨﺎم ﺑﺮدار ﺣﺮﮐﺖ ‪ Bn‬ﻧﺎﻣﯿﺪه ﻣﯽ ﺷﻮد‪ .‬ﺗﺨﻤﯿﻦ ‪ Dn‬ﻣﯽ ﺗﻮاﻧﺪ از ﻃﺮﯾﻖ ﺣﺪاﻗﻞ ﮐﺮدن ﺧﻄﺎي ﺗﺨﻤﯿﻦ‪ ،‬ﻣﺎﻧﻨﺪ ﺟﻤﻊ ﻣﺠﺬور ﺧﻄﺎﻫﺎ‬
‫و ﯾﺎ ﻗﺪر ﻣﻄﻠﻖ ﺧﻄﺎﻫﺎ ﺑﺎﺷﺪ‪.‬‬
‫‪ BMA‬ﯾﮏ روش ﺟﺴﺘﺠﻮي ﮐﺎﻣﻞ را ﺑﺮاي ﭘﯿﺪا ﮐﺮدن ﺑﻠﻮﮐﯽ ﮐﻪ داراي ﺣﺪاﻗﻞ ﺧﻄﺎﺳﺖ‪ ،‬اﺳﺘﻔﺎده ﻣﯽ ﮐﻨﺪ‪ .‬ﺑﻌﺒﺎرت دﻗﯿـﻖ ﺗـﺮ‪ ،‬اﯾـﻦ روش‬
‫ﺑﻠﻮك ﺟﺎري را ﺑﺎ ﮐﻠﯿﮥ ﺑﻠﻮك ﻫﺎي ﻣﻤﮑﻦ در ﯾﮏ ﻣﺤﺪودة از ﻗﺒﻞ ﺗﻌﺮﯾﻒ ﺷﺪه در اﻃﺮاف ﻣﮑﺎن ﻓﻌﻠﯽ‪ ،‬ﻣﻘﺎﯾﺴﻪ ﻣـﯽ ﮐﻨـﺪ‪ ،‬ﺑـﺮاي ﻫـﺮ ﺑﻠـﻮك‬
‫ﺗﻌﯿﯿﻦ ﺷﺪه‪ ،‬ﺧﻄﺎي ﺗﺨﻤﯿﻦ را ﻣﺤﺎﺳﺒﻪ ﻣﯽ ﮐﻨﺪ ﺑﻌﺪ از ﺑﺮرﺳﯽ ﺗﻤﺎم ﺑﻠﻮﮐﻬﺎي ﻣﻤﮑﻦ‪ ،‬ﺑﻠﻮﮐﯽ ﮐﻪ ﺣـﺪاﻗﻞ ﺧﻄـﺎ را داﺷـﺖ ﺑﻌﻨـﻮان ﺑﻬﺘـﺮﯾﻦ‬
‫ﺑﻠﻮك ﻣﻄﺎﺑﻖ‪ ،‬اﻧﺘﺨﺎب ﻣﯽ ﺷﻮد‪.‬‬
‫ﺣﺮﮐﺖ واﻗﻌﯽ ﺑﯿﻦ دو ﻓﺮﯾﻢ وﯾﺪﺋﻮ‪ ،‬ﻋﻤﻮﻣﺎً ﺑﺮ اﺳﺎس ﺑﻠﻮﮐﻬﺎي ﺛﺎﺑﺖ ﻗﺎﺑﻞ ﺗﻌﯿﯿﻦ ﻧﯿﺴﺖ‪ .‬ﺑﻨﺎﺑﺮاﯾﻦ اﺳـﺘﻔﺎده از اﻟﮕـﻮرﯾﺘﻢ ﺗﻄـﺎﺑﻖ ﺑﻠﻮﮐﻬـﺎ ﺑـﺮاي‬
‫ﺗﺨﻤﯿﻦ ﺣﺮﮐﺖ و ﺟﺒﺮان ﺣﺮﮐﺖ ﻧﻤﯽ ﺗﻮاﻧﺪ ﺗﺨﻤﯿﻦ ﻫﺎي دﻗﯿﻘﯽ اﯾﺠﺎد ﮐﻨﺪ‪ .‬ﻫﻨﮕﺎﻣﯽ ﮐﻪ ﺣﺮﮐﺖ ﺣﻘﯿﻘـﯽ ﯾـﮏ ﺑﻠـﻮك‪ ،‬ﯾـﮏ اﻧﺘﻘـﺎل ﺳـﺎده‬
‫ﻧﺒﺎﺷﺪ‪ ،‬اﻟﮕﻮرﯾﺘﻢ ﺑﺮاي ﭘﯿﺪا ﮐﺮدن ﺑﻠﻮﮐﯽ ﺑﺎ ﺣﺪاﻗﻞ ﺧﻄﺎ‪ ،‬ﺗﻼش ﻣﯽ ﮐﻨﺪ‪ .‬ﺷﮑﻞ ‪ 2‬ﻣﺜـﺎﻟﯽ را از ﺟﺒـﺮان ﺣﺮﮐـﺖ ﺑـﺎ اﺳـﺘﻔﺎده از روش ﺗﻄـﺎﺑﻖ‬
‫ﺑﻠﻮك ﻫﺎ‪ ،‬ﻧﺸﺎن ﻣﯽ دﻫﺪ‪.‬‬
‫‪4‬‬
‫‪CE 342 – Multimedia HW# 6‬‬
‫‪H. Rabiee, Fall 2008‬‬
‫ﺷﮑﻞ‪ :2‬ﻣﺜﺎﻟﯽ از ﺟﺒﺮان ﺣﺮﮐﺖ ﺑﺎ اﺳﺘﻔﺎده از روش ﺗﻄﺎﺑﻖ ﺑﻠﻮك ﻫﺎ‬
‫ﺗﺼﻮﯾﺮ ﺑﺎﻻ ﺳﻤﺖ ﭼﭗ‪ ،‬ﺗﺼﻮﯾﺮ ﻓﺮﯾﻢ ﻗﺒﻠﯽ اﺳﺖ‪ ،‬ﺗﺼﻮﯾﺮ ﺑﺎﻻ ﺳﻤﺖ راﺳﺖ‪ ،‬ﻓﺮﯾﻢ ﺟﺎري اﺳﺖ‪ ،‬ﺗﺼﻮﯾﺮ ﭘﺎﯾﯿﻦ ﺳﻤﺖ راﺳـﺖ‪ ،‬ﻣﯿـﺪان ﺣﺮﮐﺘﻬـﺎي‬
‫ﺗﺨﻤﯿﻦ زده ﺷﺪه اﺳﺖ )ﺑﺮدارﻫﺎي ﺣﺮﮐﺖ ﺗﻌﯿﯿﻦ ﺷﺪه از ﻣﺤﻞ ﻣﺮﮐﺰ ﻫﺮ ﺑﻠﻮك رﺳﻢ ﺷﺪه اﻧﺪ‪ (.‬و ﺗﺼﻮﯾﺮ ﭘﺎﯾﯿﻦ ﺳﻤﺖ ﭼﭗ‪ ،‬ﺗﺼـﻮﯾﺮ ﺗﺨﻤـﯿﻦ‬
‫زده ﺷﺪه ﺑﺎ اﺳﺘﻔﺎده از ﻣﯿﺪان ﺣﺮﮐﺖ را ﻧﺸﺎن ﻣﯽ دﻫﺪ‪.‬‬
‫ﻣﻼﺣﻈﻪ ﻣﯽ ﺷﻮد ﮐﻪ اﻟﮕﻮرﯾﺘﻢ ﺑﻄﻮر دﻗﯿﻘﯽ ﻋﺪم ﺣﺮﮐﺖ در ﭘﺲ زﻣﯿﻨﻪ را ﺗﻌﯿﯿﻦ ﮐﺮده اﺳﺖ در ﺣﺎﻟﯿﮑﻪ ﺑﺴـﺘﻪ ﺑـﻮدن ﭼﺸـﻢ ﺑـﺎ اﯾـﻦ روش‬
‫ﺳﺎده‪ ،‬در ﺷﮑﻞ ﺗﺨﻤﯿﻦ زده ﺷﺪه دﯾﺪه ﻧﻤﯽ ﺷﻮد‪.‬‬
‫‪5‬‬
‫‪CE 342 – Multimedia HW# 6‬‬
‫‪H. Rabiee, Fall 2008‬‬
‫ﺷﮑﻞ ‪ :3‬ﻣﺮاﺣﻞ ﮐﺪ و واﮐﺪ ﮐﺮدن ﺑﺮاي ﯾﮏ ﻣﺎﮐﺮوﺑﻼك در ﯾﮏ ﮐﺪ ﮐﻨﻨﺪة وﯾﺪﺋﻮ ﻣﻌﻤﻮﻟﯽ‬
‫‪ -2-1-2‬ﮐﺪ ﮐﺮدن وﯾﺪﺋﻮ ﺑﺎ اﺳﺘﻔﺎده از ﺟﺒﺮان ﺣﺮﮐﺖ و ﮐﺪ ﺗﺒﺪﯾﻞ‬
‫ﻣﺘﺪاوﻟﺘﺮﯾﻦ روش ﮐﺪ ﮐﺮدن وﯾﺪﺋﻮ ﺑﻪ ﻧﺎم ﮐﺪ ﮐﺮدن ‪ block-based hybrid‬ﺷﻨﺎﺧﺘﻪ ﻣﯽ ﺷﻮد‪ .‬در اﯾﻦ روش ﻫﺮ ﻓﺮﯾﻢ ﺑﻪ ﻣﺎﮐﺮو ﺑﻠﻮك ﻫـﺎ‬
‫)‪ (MBs‬ﺗﻘﺴﯿﻢ ﻣﯽ ﺷﻮد‪ .‬ﻫﺮ ﮐﺪام داراي ﭼﻨﺪﯾﻦ ﺑﻠﻮك ‪ 8*8‬اﺳﺖ‪ .‬ﻫﺮ ﻣﺎﮐﺮو ﺑﻠﻮك ﺑﺎ اﺳـﺘﻔﺎده از ﺗﺮﮐﯿﺒـﯽ از ﺟﺒـﺮان ﺣﺮﮐـﺖ و ﺗﺒـﺪﯾﻞ‬
‫‪ ،DCT‬ﻫﻤﺎﻧﻄﻮر ﮐﻪ در ﺷﮑﻞ ‪ 3‬ﻧﺸﺎن داده ﺷﺪه اﺳﺖ‪ ،‬ﮐﺪ ﻣﯽ ﺷﻮد‪ .‬ﻫﺮ ﻣﺎﮐﺮو ﺑﻠﻮك ﻣـﯽ ﺗﻮاﻧـﺪ در ﯾﮑـﯽ از دو ﻣـﻮد‪ ،‬ﮐـﺪ ﺷـﻮد‪ .‬در ﻣـﻮد‬
‫‪ Intra‬ﯾﮏ روش ﻣﺒﺘﻨﯽ ﺑﺮ ﮐﺪ ﮐﺮدن ‪ DCT‬و ﺷﺒﯿﻪ ﺑﻪ ‪ JPEG‬ﺑﻄﻮر ﻣﺴـﺘﻘﯿﻢ روي ﻫـﺮ ﺑﻠـﻮك اﻋﻤـﺎل ﻣـﯽﺷـﻮد‪ .‬اﯾـﻦ ﻣـﻮد ﺑـﺮاي ﻫـﺮ‬
‫ﻣﺎﮐﺮوﺑﻼك در اوﻟﯿﻦ ﻓﺮﯾﻢ ﺑﮑﺎر ﻣﯽ رود و ﺑﻌﺪ ﺑﻄﻮر ﻣﺘﻨﺎوب در ﻓﺮﯾﻢ ﻫﺎي زﯾﺮ دﻧﺒﺎﻟﻪ ﻧﯿﺰ اﺳـﺘﻔﺎده ﻣـﯽ ﺷـﻮد‪ .‬در ﻣـﻮد ‪ ،Inter‬ﯾـﮏ ﺑـﺮدار‬
‫ﺣﺮﮐﺖ در اﺑﺘﺪا ﺗﻌﯿﯿﻦ ﻣﯽ ﺷﻮد و روش ‪ DCT‬ﺑﺮاي ﮐﺪ ﮐﺮدن ﺧﻄﺎي ﻣﯿﺰان ﺣﺮﮐﺖ اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد‪ .‬ﺧﺼﻮﺻـﺎً‪ ،‬اﯾـﻦ روش‪ ،‬ﻣـﺎﮐﺮوﺑﻼك‬
‫ﺟﺎري از ﻓﺮﯾﻢ ﺟﺎري را ﺑﺎ ﺑﻬﺘﺮﯾﻦ ﻣﺎﮐﺮوﺑﻼك ﻣﻄﺎﺑﻖ ﺑﺎ آن در ﻓﺮﯾﻢ ﻗﺒﻠﯽ‪ ،‬ﺗﺨﻤﯿﻦ ﻣﯽ زﻧﺪ )ﻓﻘﻂ ﻣﺆﻟﻔﻪ ﻫـﺎي ‪ (Luminance‬اﮔـﺮ ﺧﻄـﺎي‬
‫ﺗﺨﻤﯿﻦ زدن ﮐﻤﺘﺮ از ﺣﺪ ﺗﻌﯿﯿﻦ ﺷﺪه از ﻗﺒﻞ ﺑﺎﺷﺪ‪ .‬اﺧﺘﻼف داده ﻫﺎ ﺗﻌﯿﯿﻦ ﻧﻤﯽ ﺷـﻮد‪ .‬در ﻏﯿـﺮ اﯾﻨﺼـﻮرت ﺧﻄـﺎي ﺗﺨﻤـﯿﻦ ﺑـﺎ اﺳـﺘﻔﺎده از‬
‫‪ DCT‬ﺗﺒﺪﯾﻞ ﻣﯽ ﺷﻮد و ﻣﺆﻟﻔﻪ ﻫﺎي ﺗﺒﺪﯾﻞ ﯾﺎﻓﺘﻪ‪ ،‬ﮐﻮاﻧﺘﯿﺰه ﺷﺪه و ﺑﺎ اﺳﺘﻔﺎده از روش ‪ runlength‬ﻣﺸﺎﺑﻪ ﺑﺎ ‪ ،JPEG‬ﮐﺪ ﻣـﯽ ﺷـﻮﻧﺪ‪ .‬در‬
‫ﻧﻬﺎﯾﺖ‪ ،‬رﺷﺘﻪ ﺑﯿﺖ ﮐﺪ ﺷﺪه ﻫﻤﺮاه ﺑﺎ اﻃﻼﻋﺎت ﺑﺮدارﻫﺎي ﺣﺮﮐﺖ ﮐـﺪ ﺷـﺪه ﺑـﻪ ‪ video multiplex‬ارﺳـﺎل ﻣـﯽﺷـﻮﻧﺪ‪ .‬ﻫﻤـﺎﻧﻄﻮر ﮐـﻪ در‬
‫ﺗﻮﺻﯿﻒ ‪ JPEG‬ﺷﺮح داده ﺷﺪ‪ ،‬اﻧﺪازة ‪ step‬ﮐﻮاﻧﺘﯿﺰ ﮐﻨﻨﺪه‪ ،‬ﻣﯽ ﺗﻮاﻧﺪ ﺑﺮ اﺳﺎس ﮐﯿﻔﯿﺖ ﺗﺼﻮﯾﺮ دﻟﺨﻮاه و ﮐﺎراﯾﯽ ﮐﺪ ﮐﺮدن‪ ،‬ﺗﻐﯿﯿﺮ ﮐﻨﺪ‪.‬‬
‫‪ -2-2‬اﻟﮕﻮرﯾﺘﻢ ﮐﺪ ﮐﺮدن وﯾﺪﺋﻮ ‪H.261‬‬
‫در ﺳﺎل ‪ CCTTT ،1990‬ﻣﺠﻤﻮﻋﻪ اي از اﺳﺘﺎﻧﺪاردﻫﺎي ﺑﯿﻦ اﻟﻤﻠﻠﯽ وﯾﺪﺋﻮ ﮐﻨﻔﺮاﻧﺲ‪ ،‬ﺷﺎﻣﻞ ﮐﺪ ﮐﻨﻨﺪه وﯾﺪﺋﻮﯾﯽ ‪ H.261‬ﺑﺮاي ﺳـﺮوﯾﺲ‬
‫ﻫﺎي ﺻﻮﺗﯽ ﺗﺼﻮﯾﺮي روي ‪) p*64 kbps ،ISDN‬ﮐﻪ ﺑﺎ اﺳﺘﺎﻧﺪارد ‪ p*64‬ﻧﯿﺰ ﺷﻨﺎﺧﺘﻪ ﻣـﯽ ﺷـﻮﻧﺪ( ﺗﺼـﻮﯾﺐ ﮐـﺮد‪ .‬ﮐﺎرﺑﺮدﻫـﺎي در ﻧﻈـﺮ‬
‫ﮔﺮﻓﺘﻪ ﺷﺪه ﺑﺮاي اﯾﻦ اﺳﺘﺎﻧﺪارد‪ ،‬ﺗﻠﻔﻦ ﺗﺼﻮﯾﺮي و ﺳﯿﺴﺘﻢ وﯾﺪﺋﻮ ﮐﻨﻔﺮاﻧﺲ اﺳﺖ‪ .‬ﺑﻨﺎﺑﺮاﯾﻦ ﺳﯿﺴﺘﻢ ﻫﺎﯾﯽ ﮐﻪ ﺑﺎ اﯾﻦ اﺳﺘﺎﻧﺪارد ﻣﺮﺗﺒﻂ ﻫﺴـﺘﻨﺪ‬
‫ﺑﺎﯾﺪ ﻗﺎﺑﻠﯿﺖ ﮐﺪ و واﮐﺪ ﮐﺮدن ﺑﯽ درﻧﮓ اﯾﻦ اﺳﺘﺎﻧﺪارد را داﺷﺘﻪ ﺑﺎﺷﻨﺪ‪ .‬ﻣﺤﺪودة ‪ p‬از ‪ 1‬ﺗﺎ ‪ 30‬اﺳﺖ‪ .‬ﺑﺮاي ﯾﮏ ارﺗﺒﺎط ‪ ISDN‬ﺑﺎ ﻧﺮخ ﭘﺎﯾـﻪ‪،‬‬
‫‪ p‬ﯾﮏ ﺗﺎ ‪ 2‬اﺳﺖ‪.‬‬
‫‪ ،CCTTT‬ﻓﺮﻣﺖ ﻫﺎي ‪ CIF‬و ‪ QCIF‬را ﺑﻌﻨﻮان ﻓﺮﻣﺖ ﻫﺎي وﯾﺪﺋﻮﯾﯽ ﺑﺮاي ﺗﻠﻔﻦ ﺗﺼﻮﯾﺮي در ﻧﻈﺮ ﮔﺮﻓـﺖ‪ .‬وﯾـﺪﺋﻮ ﺑـﺎ ﻓﺮﻣـﺖ ‪ CIF‬داراي‬
‫‪ 352*288‬ﭘﯿﮑﺴﻞ ﺑﺮاي ‪ Y‬و ‪ 176*144‬ﭘﯿﮑﺴﻞ ﺑﺮاي ‪ Cr&Cb‬اﺳﺖ‪ .‬ﻧﺮخ ﻓﺮﯾﻢ ﻣﯽ ﺗﻮاﻧﺪ ﺑﯿﻦ ﯾﮏ ﺗﺎ ‪ 30‬ﻓﺮﯾﻢ در ﺛﺎﻧﯿﻪ ﺑﺎﺷﺪ‪ .‬ﮐﻠﯿﮥ ﮐـﺪ‬
‫ﮐﻨﻨﺪه ﻫﺎ ﺑﺎﯾﺪ در ﺳﻄﺢ ‪ QCIF‬ﻋﻤﻞ ﮐﻨﻨﺪ و ﻋﻤﻠﮑﺮد در ﺳﻄﺢ ‪ CIF‬اﺧﺘﯿﺎري اﺳﺖ‪ .‬ﺑﺎ ﺳﺮﻋﺖ ﺗﻘﺮﯾﺒ ًﺎ ‪ 30‬ﻓﺮﯾﻢ در ﺛﺎﻧﯿﻪ )‪ 29/97‬ﺣـﺪاﮐﺜﺮ‬
‫‪6‬‬
‫‪CE 342 – Multimedia HW# 6‬‬
‫‪H. Rabiee, Fall 2008‬‬
‫ﻣﻘﺪاري اﺳﺖ ﮐﻪ ﭘﺸﺘﯿﺒﺎﻧﯽ ﻣﯽ ﺷﻮد‪ CIF (.‬ﻓﺸﺮده ﻧﺸﺪه ﻧﺮخ ‪ 36/45 Mb/s‬و ‪ QCIF‬ﻧﺮخ ‪ 9/115Mb/s‬دارد‪ .‬ﺑﺮاي ﯾﮏ ﮐﺎﻧـﺎل ‪Mb/s‬‬
‫‪ ،1/5‬ﮐﺎﻫﺶ ﻗﺎﺑﻞ ﺗﻮﺟﻬﯽ ﻻزم اﺳﺖ وﻟﯽ ﺑﺮاي ﯾﮏ ﮐﺎﻧﺎل ‪ (128 kb/s) p=2‬ﮐـﺎﻫﺶ ‪ ،24 :1‬اﺣﺘﯿـﺎج اﺳـﺖ‪ .‬ﻋﻤﻮﻣـﺎً‪ CIF ،‬ﺑـﺮاي ارﺳـﺎل‬
‫ﻫﺎﯾﯽ ﺑﺎ ﻧﺮخ ﺑﯿﺸﺘﺮ از ‪ (p=6) 384 kb/s‬ﺗﻮﺻﯿﻪ ﻣﯽ ﺷﻮد‪.‬‬
‫ﮐﺪ ﮐﻨﻨﺪة ‪ H.261‬از ﯾﮏ ﺗﺮﮐﯿﺒﯽ از اﻟﮕﻮﻫﺎي ‪ DCT‬و ‪ DPCM‬ﺑﺎ ﺗﺨﻤﯿﻦ ﺣﺮﮐﺖ‪ ،‬اﺳﺘﻔﺎده ﻣﯽ ﮐﻨـﺪ ﻫﻤـﺎﻧﻄﻮر ﮐـﻪ در ﺷـﮑﻞ ‪ 3‬ﻧﺸـﺎن‬
‫داده ﺷﺪه اﺳﺖ‪ .‬ﻫﺮ ﻣﺎﮐﺮو ﺑﻼك ﻣﯽ ﺗﻮاﻧﺪ ﺑﻪ ﺻﻮرت ﯾﮑﯽ از دو ﻣﻮد ‪ Intra‬ﯾﺎ ‪ Inter‬ﮐﺪ ﺷﻮد‪ .‬ﻣﻮد ‪ Intra‬ﺑﺮاي ﻫﺮ ﻣـﺎﮐﺮوﺑﻼك در اوﻟـﯿﻦ‬
‫ﻓﺮﯾﻢ اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد و ﺑﻌﺪ ﻣﺘﻨﺎوﺑ ًﺎ در زﯾﺮ دﻧﺒﺎﻟﮥ ﻓﺮﯾﻢ ﻫﺎ اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد ﺗﺎ از اﻧﺘﺸﺎر ﺧﻄﺎ ﮐﻪ در اﺛﺮ ﺧﻄﺎﻫﺎي ارﺳـﺎل ﭘـﯿﺶ ﻣـﯽآﯾﻨـﺪ‪،‬‬
‫ﺟﻠﻮﮔﯿﺮي ﮐﻨﺪ‪.‬‬
‫‪ H.261‬از ﯾﮏ ﺳﺎﺧﺘﺎر داده اي ﺳﻠﺴ ﻠﻪ ﻣﺮاﺗﺒﯽ ﺑﺮاي ﮐﺪ ﮐﺮدن داده ﻫﺎ اﺳـﺘﻔﺎده ﻣـﯽ ﮐﻨـﺪ‪ .‬اﯾـﻦ ﺳـﺎﺧﺘﺎر ﺷـﺎﻣﻞ ﺗﺼـﻮﯾﺮ‪ ،‬ﮔـﺮوه ﺑﻠﻮﮐﻬـﺎ‬
‫)‪ ،(GOB‬ﻣﺎﮐﺮوﺑﻼك و ﺑﻠﻮك ﻣﯽ ﺑﺎﺷﺪ‪ .‬ﯾﮏ ﺑﻠﻮك ﻣﺠﻤﻮﻋﮥ ‪ 8*8‬از ﭘﯿﮑﺴﻞ ﻫﺎﺳﺖ ﮐﻪ ﻣﯽ ﺗﻮاﻧﺪ ﺷﺎﻣﻞ ﻧﻤﻮﻧﻪ ﻫـﺎي ‪ Cb ،y‬ﯾـﺎ ‪ Cr‬ﺑﺎﺷـﺪ‪.‬‬
‫ﯾﮏ ﻣﺎﮐﺮو ﺑﻼك از ‪ 4‬ﺗﺎ ﺑﻠﻮك ‪ Luminance‬ﺑـﺎ اﺑﻌـﺎد ‪ (y) 8*8‬و دو ﺑﻠـﻮك ‪ (Cr & Cb) Chrominance‬ﺗﺸـﮑﯿﻞ ﻣـﯽ ﺷـﻮد‪ .‬ﯾـﮏ‬
‫‪ GOB‬ﺷﺎﻣﻞ ﻣﺎﮐﺮوﺑﻼك ﻫﺎ در ﭼﻨﺪﯾﻦ ﺳﻄﺮ ﻣﺘﻮاﻟﯽ ﻣﯽ ﺷﻮد‪ .‬ﯾﮏ ﺗﺼﻮﯾﺮ ﺷﺎﻣﻞ ﭼﻨﺪﯾﻦ ‪ GOB‬ﻣﯽﺷـﻮد‪ .‬اﺳـﺘﺎﻧﺪارد ‪syntax ،H.261‬‬
‫رﺷﺘﻪ ﺑﯿﺖ ﮐﺪ ﺷﺪه را ﺗﻌﺮﯾﻒ ﻣﯽ ﮐﻨﺪ‪ .‬ﻫﺮ ﺑﻠﻮك ﺷﺎﻣﻞ ﻣﺆﻟﻔﻪﻫﺎي ‪ (DCTCOEFF)DCT‬از ﯾﮏ ﺑﻠﻮك و ﯾﮏ ﻋﻼﻣـﺖ ‪ EOB‬ﺑـﺪﻧﺒﺎل‬
‫آن ﻣــﯽ ﺑﺎﺷــﺪ‪ .‬ﻫــﺮ ﻣــﺎﮐﺮوﺑﻼك ﺷــﺎﻣﻞ دادهﻫــﺎي ‪ 6‬ﺑﻠــﻮك و ﯾــﮏ ﺳــﺮآﯾﻨﺪ ﻣــﺎﮐﺮوﺑﻼك اﺳــﺖ‪ .‬ﯾــﮏ ‪ GOB‬از ﮐــﯽ ﺳــﺮآﯾﻨﺪ ‪ GOB‬و‬
‫ﻣﺎﮐﺮوﺑﻼكﻫﺎي آن ‪ ،GOB‬ﺑﺪﻧﺒﺎل آن ﺳﺎﺧﺘﻪ ﻣﯽ ﺷﻮد‪ .‬در ﻧﻬﺎﯾﺖ‪ ،‬ﺗﺼﻮﯾﺮ ﺷﺎﻣﻞ ﯾﮏ ﺳﺮآﯾﻨﺪ ﺗﺼﻮﯾﺮ اﺳﺖ ﮐﻪ آراﯾـﻪ اي ﻣﺘـﻮاﻟﯽ از ‪GOB‬‬
‫ﻫﺎ ﺑﺪﻧﺒﺎل آن ﻣﯽ آﯾﻨﺪ‪.‬‬
‫‪ -3-2‬اﺳﺘﺎﻧﺪارد ‪MPEG-1‬‬
‫اﺳﺘﺎﻧﺪارد ‪ MPEG-1‬ﺑﻪ ﻣﻨﻈﻮر ذﺧﯿﺮه ﮐﺮدن ﯾﮏ وﯾﺪﺋﻮ ﻣﺘﺤﺮك ﺑﺎ دﻗـﺖ ‪ 176*120 pels for Cr & Cb at 30 fps) SIF‬و ‪pels‬‬
‫‪ ( 352*240 for y‬ﺑﺎ ﻧﺮخ ‪ ،1/5Mbps‬ﻃﺮاﺣﯽ ﺷﺪه اﺳﺖ‪.‬‬
‫در اداﻣﻪ ﻧﺤﻮة اﻧﺠﺎم اﯾﻦ ﻣﻮارد ﺗﻮﺳﻂ ‪ ،MPEG-1‬ﺷﺮح داده ﻣﯽ ﺷﻮد‪.‬‬
‫‪ -1-3-2‬ﻣﻮدﻫﺎي ﮐﺪ ﮐﺮدن ﺗﺼﻮﯾﺮ و ﺟﺒﺮان ﺣﺮﮐﺖ دو ﺟﻬﺘﻪ‬
‫ﯾﮑﯽ از ﺗﻔﺎوت ﻫﺎي اﺳﺎﺳﯽ ﺑﯿﻦ ‪ MPEG–1‬و ‪ H.261‬اﯾﻦ اﺳﺖ ﮐﻪ ﻋﻼوه ﺑﺮ اﺳﺘﻔﺎده از ﺟﺒﺮان ﺣﺮﮐﺖ از ﻓﺮﯾﻢ ﻗﺒﻠﯽ‪ ،‬از ﻓﺮﯾﻢ ﺑﻌﺪي ﻧﯿـﺰ‬
‫ﻼ ﮐﺪ ﺷﺪه اﺳﺖ(‪ .‬ﺑﻄﻮر ﮐﻠﯽ ﻓﺮﯾﻢ ﺟﺎري ﻣﯽ ﺗﻮاﻧﺪ از روي ﻫﺮ دو ﻓﺮﯾﻢ ﻗﺒﻠﯽ و ﺑﻌﺪي‪ ،‬ﺗﺨﻤﯿﻦ زده ﺷﻮد‪ .‬اﯾﻦ ﻋﻤـﻞ‬
‫اﺳﺘﻔﺎده ﻣﯽ ﮐﻨﺪ )ﮐﻪ ﻗﺒ ً‬
‫ﺑﻌﻨﻮان ﺗﺨﻤﯿﻦ دو ﺑﺴﺘﻪ در ‪ MPEG‬ﻧﺎﻣﯿﺪه ﻣﯽ ﺷﻮد‪ MPEG-1 .‬ﻓﺮﯾﻢ ﻫﺎي ﯾﮏ وﯾﺪﺋﻮ را در ﺳﻪ ﻣﻮد ﻣﺨﺘﻠﻒ ﮐـﺪ ﻣـﯽﮐﻨـﺪ‪ ،‬ﺗﺼـﻮﯾﺮ ‪،I‬‬
‫ﺗﺼﻮﯾﺮ ‪ p‬و ﺗﺼﻮﯾﺮ ‪ .B‬ﻓﺮﯾﻢ ﻫﺎ ﺑﻪ ‪ GOP‬ﻫﺎ ﺗﻘﺴﯿﻢ ﻣﯽ ﺷﻮﻧﺪ ﺑﻄﻮرﯾﮑﻪ ﻫﺮ ‪ GOP‬ﺷﺎﻣﻞ ﯾﮏ ﺗﺼﻮﯾﺮ ‪ I‬و ﭼﻨﺪﯾﻦ ﺗﺼﻮﯾﺮ ‪ P‬و ‪ B‬ﻣﯽ ﺑﺎﺷـﺪ‪.‬‬
‫اﯾﻦ ﺗﻘﺴﯿﻢ ﺑﻨﺪي در ﺷﮑﻞ ‪ 4‬ﻧﺸﺎن داده ﺷﺪه اﺳﺖ‪ .‬ﻋﻤﻠﯿﺎﺗﯽ ﮐﻪ ﺑﺮاي ﺗﺼﺎوﯾﺮ ﻣﺨﺘﻠﻒ اﻧﺠﺎم ﻣﯽ ﺷﻮد ﺑﺎ ﺟﺰﺋﯿﺎت ﺑﯿﺸـﺘﺮ در اداﻣـﻪ ﺗﻮﺿـﯿﺢ‬
‫داده ﻣﯽﺷﻮﻧﺪ‪.‬‬
‫‪7‬‬
‫‪CE 342 – Multimedia HW# 6‬‬
‫‪H. Rabiee, Fall 2008‬‬
‫‪ : (I) Intra picture‬ﯾﮏ ﺗﺼﻮﯾﺮ ‪ I‬ﺑﺮ اﺳﺎس ﺧﻮد ﺗﺼﻮﯾﺮ )ﺑﺎ اﺳﺘﻔﺎده از ﯾﮏ روش ﻣﺸﺎﺑﻪ ﺑﺎ ‪ ،(JPEG‬ﻓﺸﺮده ﻣﯽ ﺷﻮد‪ .‬ﻫﻤﺎﻧﻨﺪ اﻟﮕـﻮرﯾﺘﻢ‬
‫‪ ،JPEG‬ﻫﺮ ﺑﻠﻮك ‪ 8*8‬در ﯾﮏ ﻣﺎﮐﺮو ﺑﻠﻮك ‪ ،16*16‬ﺗﺤﺖ ﺗﺒﺪﯾﻞ ‪ DCT‬ﻗﺮار ﻣﯽ ﮔﯿﺮد و ﻣﺆﻟﻔﻪ ﻫﺎي ‪ DCT‬ﺗﻮﻟﯿﺪ ﻣﯽ ﺷﻮﻧﺪ‪ .‬اﯾﻦ ﻣﺆﻟﻔﻪ‬
‫ﻫﺎ ﮐﻮاﻧﺘﯿﺰه ﺷﺪه و ﺑﻪ ﺻﻮرت ‪ zig-zag‬ﻣﺮﺗﺐ ﻣﯽ ﺷﻮﻧﺪ ﺗﺎ ﺑﻬﺘﺮﯾﻦ ‪ runlength‬از ﻣﺆﻟﻔﻪ ﻫﺎي ﺻﻔﺮ ﺑﺪﺳﺖ آﯾـﺪ‪ runlength .‬و ﻣﻘـﺎدﯾﺮ‬
‫ﻏﯿﺮ ﺻﻔﺮ ﺑﺎ اﺳﺘﻔﺎده از روش ﮐﺪ ﮐﺮدن ﻫﻤﯿﻨﮓ‪ ،‬ﮐﺪ ﻣﯽ ﺷﻮﻧﺪ‪ .‬ﻣﻮد ﺗﺼﻮﯾﺮ ‪ ،I‬ﺑﺮاي اوﻟﯿﻦ ﻓﺮﯾﻢ در ﻫﺮ ‪ ،GOP‬ﺑﺮاي اﯾﺠﺎد اﻣﮑـﺎن دﺳـﺘﯿﺎﺑﯽ‬
‫ﺗﺼﺎدﻓﯽ‪ ،‬اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد‪.‬‬
‫ﺷﮑﻞ‪ :4‬ﺳﺎﺧﺘﺎر ‪ GOP‬در ‪MPEG-1‬‬
‫‪ : (P) Unidirectional Predicted Pictures‬اﯾﻦ ﻣﻮد از ﺗﮑﻨﯿﮏ ﺟﺒﺮان ﺣﺮﮐﺖ )ﺷﺒﯿﻪ ﺑﻪ روش اﺳـﺘﺎﻧﺪارد ‪ (H.261‬ﺑـﺮاي ﻓﺸـﺮده‬
‫ﺳﺎزي‪ ،‬اﺳﺘﻔﺎده ﻣﯽ ﮐﻨﺪ‪ .‬ﻫﺮ ﻣﺎﮐﺮوﺑﻼك از ﺗﺼﻮﯾﺮ ‪ P‬ﯾﺎ ‪ I‬ﻗﺒﻠﯽ ﺑﺮاي ﺗﺨﻤﯿﻦ زدن ﯾﮏ ﺑﺮدار ﺣﺮﮐﺖ اﺳﺘﻔﺎده ﻣﯽ ﮐﻨﺪ‪ .‬ﺧﻄﺎي ﺗﺨﻤـﯿﻦ زدن‬
‫ﺑﺎ اﺳﺘﻔﺎده از ‪ ،DCT‬ﺗﺒﺪﯾﻞ ﺷﺪه و ﻣﺆﻟﻔﻪ ﻫﺎي ‪ ،DCT‬ﮐﻮاﻧﺘﯿﺰه و ‪ runlength‬ﻣﯽ ﺷﻮﻧﺪ‪.‬‬
‫‪ : (B) Bidirectionally predicted picture‬اﯾﻦ ﻣﻮد ﯾﮑﯽ از ﺳﻪ ﻧﻮع روش ﺟﺒﺮان ﺣﺮﮐﺖ را ﺑﺮاي ﻫﺮ ﻣﺎﮐﺮو ﺑﻼك ﺑﮑﺎر ﻣﯽ ﺑﺮد‪.‬‬
‫ﺟﺒﺮان ﺣﺮﮐﺖ ﭘﯿﺶ روﻧﺪه‪ ،‬ﺟﺒﺮان ﺣﺮﮐﺖ ﭘﺲ روﻧﺪه و ﺟﺒﺮان ‪ ،Interpolative‬ﺟﺒﺮان ﺣﺮﮐﺖ ﭘﯿﺶ روﻧﺪه از ﺗﺼﺎوﯾﺮ ‪ I‬و ‪ P‬ﻗﺒﻠﯽ )ﻣﺜـﻞ‬
‫روش ﺗﺼﺎوﯾﺮ ‪ (P‬اﺳﺘﻔﺎده ﻣﯽ ﮐﻨﺪ‪ .‬ﺟﺒﺮان ﺣﺮﮐﺖ ﭘﺲ روﻧﺪه از اﻃﻼﻋﺎت ﺗﺼﻮﯾﺮ ﺑﻌﺪي اﺳﺘﻔﺎده ﻣﯽ ﮐﻨﺪ ﮐﻪ ﻣﺎﮐﺮو ﺑﻠﻮك ﺟﺎري ﺑـﺎ ﺑﻬﺘـﺮﯾﻦ‬
‫ﺑﻠﻮك ﻣﻨﻄﺒﻖ ﺷﺪه در ﺗﺼﺎوﯾﺮ ‪ I‬ﯾﺎ ‪ P‬ﺑﻌﺪي‪ ،‬ﺗﺨﻤﯿﻦ زده ﻣﯽ ﺷﻮد‪ .‬ﺟﺒـﺮان ‪ ،Interpolative‬از ﻣﺘﻮﺳـﻂ ﮔﯿـﺮي ﺑـﯿﻦ ﺑﻬﺘـﺮﯾﻦ ﺑﻠﻮﮐﻬـﺎي‬
‫ﻣﻨﻄﺒﻖ ﺷﺪه در ﺗﺼﺎوﯾﺮ ﻗﺒﻠﯽ و ﺑﻌﺪي‪ ،‬اﺳﺘﻔﺎده ﻣﯽ ﮐﻨﺪ‪ .‬روش ﺟﺒﺮان ﺣﺮﮐﺖ دو ﺟﻬﺘﻪ در ﺷﮑﻞ ‪ 5‬ﻧﺸﺎن داده ﺷﺪه اﺳﺖ‪.‬‬
‫‪8‬‬
‫‪CE 342 – Multimedia HW# 6‬‬
‫‪H. Rabiee, Fall 2008‬‬
‫ﺷﮑﻞ ‪ :5‬ﺗﺨﻤﯿﻦ و ﺟﺒﺮان ﺣﺮﮐﺖ دو ﺟﻬﺘﻪ‬
‫از آﻧﺠﺎ ﮐﻪ ﮐﻠﯿﮥ ﻓﺮﯾﻢ ﻫﺎ در ﯾﮏ ‪ GOP‬ﻣﯽ ﺗﻮاﻧﻨﺪ ﺑﺪون اﻃـﻼع از ‪ GOP‬ﻗﺒﻠـﯽ‪ ،‬واﮐـﺪ ﺷـﻮﻧﺪ‪ ،‬ﯾـﮏ ‪ GOP‬واﺣـﺪ ﭘﺎﯾـﻪ اي اﺳـﺖ ﺑـﺮاي‬
‫دﺳﺘﯿﺎﺑﯽ ﺗﺼﺎدﻓﯽ‪ .‬ﯾﮏ ‪ fast forward‬ﻣﯽ ﺗﻮاﻧﺪ ﺑﺎ واﮐﺪ ﮐﺮدن ﺗﻨﻬﺎ ﺗﺼﺎوﯾﺮ ‪ I‬و ﯾﺎ ﺗﺼﺎوﯾﺮ ‪ I‬و ‪ P‬اﻧﺠﺎم ﺷﻮد‪ .‬ﯾﮏ ‪ fest rewind‬ﻧﯿﺰ ﻣـﯽ‬
‫ﺗﻮاﻧﺪ ﺑﺎ واﮐﺪ ﮐﺮد ﺗﻨﻬﺎ ﺗﺼﺎوﯾﺮ ‪ I‬اﻧﺠﺎم ﺷﻮد‪.‬‬
‫‪ -2-3-2‬ﺗﺨﻤﯿﻦ ﺣﺮﮐﺖ ﺑﺎ دﻗﺖ ‪Half-Pel‬‬
‫اﺧﺘﻼف دﯾﮕﺮ ﺑﯿﻦ ‪ MPEG-1‬و ‪ H.261‬اﯾﻦ اﺳﺖ ﮐﻪ ﺑﺮدارﻫﺎي ﺣﺮﮐﺖ در ‪ MPEG-1‬ﺑﺎ دﻗﺖ ‪ half-pel‬ﺗﺨﻤﯿﻦ زده ﻣﯽ ﺷﻮد‪ .‬ﯾﻌﻨـﯽ‬
‫ﯾﮏ ﺟﺴﺘﺠﻮي ﮐﺎﻣﻞ‪ ،‬ﺑﺎ اﻓﺰاﯾﺶ ﻧﯿﻢ ‪ pel‬اﻧﺠﺎم ﻣﯽ ﺷﻮد ﻧﻪ ﺑﺎ اﻓﺰاﯾﺶ ﺑﻪ اﻧﺪازة ﻋﺪد ﺻﺤﯿﺢ‪ .‬ﺗﺨﻤﯿﻦ ﺣﺮﮐﺖ ﺑﻪ اﯾﻦ ﺻﻮرت دﻗﯿﻖ ﺗـﺮ اﺳـﺖ‬
‫و اﻣﮑﺎن ﮐﺎﻫﺶ ﺧﻄﺎي ﺗﺨﻤﯿﻦ را ﻣﯽ دﻫﺪ‪ .‬وﻟﯽ ﺑﺎز ﻫﻢ ﺑﻪ دروﻧﯿﺎﺑﯽ ﻓﺮﯾﻢ ﻗﺒﻠﯽ ﺑﺮاي ﺗﻮﻟﯿﺪ ﻧﻤﻮﻧﻪ ﻫﺎ در ﻣﮑﺎن ‪ half-pel‬اﺣﺘﯿﺎج اﺳـﺖ ﮐـﻪ‬
‫اﯾﻦ ﺧﻮد ﺑﻪ ﻣﺤﺎﺳﺒﺎت ﺑﯿﺸﺘﺮ ﻧﺴﺒﺖ ﺑﻪ ﺣﺎﻟﺖ ﺗﺨﻤﯿﻦ ﺣﺮﮐﺖ ﺑﺎ دﻗﺖ ‪ ،integer-pel‬ﻧﯿﺎز دارد‪.‬‬
‫‪ -4-2‬اﺳﺘﺎﻧﺪارد ﮐﺪ ﮐﺮدن وﯾﺪﺋﻮ ‪MPEG-2‬‬
‫ﻫﻤﺎﻧﻄﻮر ﮐﻪ در ﻣﻘﺪﻣﻪ اﺷﺎره ﺷﺪ‪ ،‬اﺳﺘﺎﻧﺪارد ‪ MPEG-2‬ﺑﺮاي ﮐﺪ ﮐﺮدن وﯾﺪﺋﻮ ‪ CCTR601‬ﻣﻄﺮح ﺷﺪه اﺳﺖ‪ .‬روش اوﻟﯿﮥ ﮐﺪ ﮐـﺮدن در‬
‫‪ ،MPEG-2‬ﻣﺸﺎﺑﻪ روش ‪ MPEG-1‬اﺳﺖ‪ ،‬ﺑﺎ ﺳﺎﺧﺘﺎر ‪ GOP‬ﻣﺸﺎﺑﻪ ﮐﻪ ﻫﺮ ﻣﺎﮐﺮوﺑﻼك ﺑﺎ اﺳﺘﻔﺎده از ﺗﺒﺪﯾﻞ ﻣﺴﺘﻘﯿﻢ ‪) DCT‬ﻣﻮد ‪ ،(I‬ﺑـﺎ‬
‫ﺗﺨﻤﯿﻦ ﯾﮏ ﻃﺮﻓﻪ )ﻣﻮد ‪ (P‬و ﯾﺎ ﺑﺎ ﺗﺨﻤﯿﻦ دو ﻃﺮﻓﻪ )ﻣﻮد ‪ (B‬ﮐﺪ ﻣﯽ ﺷﻮد‪ .‬ﮔﺬﺷﺘﻪ از دﻗﺖ ‪ spatial‬ﺑﯿﺸﺘﺮ‪ ،‬اﺧـﺘﻼف اﺳﺎﺳـﯽ ﺑـﯿﻦ وﯾـﺪﺋﻮ‬
‫‪ CCTR601‬و ‪ ،CIF/SIF‬اﺳﺘﻔﺎده از ‪ interlacing‬در وﯾﺪﺋﻮ ‪ CCTR601‬اﺳﺖ‪ .‬اﯾﻦ ﺳﺒﺐ ﻣﯽﺷﻮد ﮐﻪ ﭘﺮدازش ﻓﺸﺮده ﺳﺎزي‪ ،‬ﺑﻄـﻮر‬
‫ﻗﺎﺑﻞ ﺗﻮﺟﻬﯽ ﭘﯿﭽﯿﺪه ﺷﻮد‪ .‬ﺑﻨﺎﺑﺮاﯾﻦ روش ﻫﺎي ﺧﺎﺻﯽ ﺑﺮاي ﮐﻨﺘﺮل ﮐﺮدن ﺗﺼﺎوﯾﺮ ‪ ،interlaced‬ﻣﻄﺮح ﺷﺪه اﺳـﺖ ﮐـﻪ ﻋﻤﻠﮑـﺮد ﺟﺒـﺮان و‬
‫ﺗﺨﻤﯿﻦ ﺣﺮﮐﺖ و ‪ DCT‬را ﺗﻐﯿﯿﺮ ﻣﯽ دﻫﺪ‪ .‬ﺟﺰﺋﯿﺎت ﺑﯿﺸﺘﺮ در ]‪ [1‬ﯾﺎﻓﺖ ﻣﯽ ﺷﻮد‪.‬‬
‫‪ MPEG-2‬ﻣﯽ ﺗﻮاﻧﺪ ﻓﺮﻣﺖ ﻫﺎي وﯾﺪﺋﻮ ﺑﺎ ﺳﻄﻮح رزوﻟﻮﺷﻦ ﻣﺨﺘﻠﻒ را ﻫﻨﺪل ﮐﻨﺪ‪ .‬اﯾﻦ اﺳﺘﺎﻧﺪارد داراي ‪ profile‬ﻫﺎي ﻣﺨﺘﻠﻔﯽ اﺳـﺖ ﮐـﻪ‬
‫ﻗﺎﺑﻠﯿﺖ ﻫﺎي ﺑﯿﺸﺘﺮي را در اﺧﺘﯿﺎر ﻣﯽ ﮔﺬارد‪ .‬ﺑﺤﺚ ﻓﻮق ﺗﻨﻬﺎ ﺑﻪ ‪ profile‬اﺻﻠﯽ در ﺳﻄﺢ اﺻـﻠﯽ )‪ (mp@ml‬اﺷـﺎره دارد‪ .‬ﯾـﮏ ﺳـﯿﮕﻨﺎل‬
‫‪ HDTV‬ﺑﺎ اﺳﺘﻔﺎده از ‪ profile‬اﺻﻠﯽ در ﺳﻄﺢ ﺑﺎﻻ ﮐـﺪ ﻣـﯽ ﺷـﻮد‪ .‬ﯾـﮏ ﺗﻮﺳـﻌﮥ ﻣﻬـﻢ دﯾﮕـﺮ ‪ MPEG-2‬در ﻣﻘﺎﯾﺴـﻪ ﺑـﺎ ‪،MPEG-1‬‬
‫‪ scalability profile‬اﺳﺖ ﮐﻪ ﯾﮏ وﯾﺪﺋﻮ را ﻗﺎدر ﻣﯽ ﺳﺎزد ﮐﻪ ﺑﺼﻮرت ﯾﮏ ﻻﯾﮥ اﺻﻠﯽ و ﯾﮏ ﻻﯾﮥ ﺗﮑﻤﯿﻠﯽ‪ ،‬ﮐﺪ ﺷﻮد‪ .‬ﻻﯾﮥ اﺻﻠﯽ‪ ،‬ﮐﯿﻔﯿـﺖ‬
‫ﭘﺎﯾﻪ را اﯾﺠﺎد ﻣﯽ ﮐﻨﺪ و ﻻﯾﮥ ﺗﮑﻤﯿﻠﯽ‪ ،‬ﻫﻨﮕﺎﻣﯿﮑﻪ ﺑﻪ ﻻﯾﮥ اﺻﻠﯽ اﻓﺰوده ﻣﯽ ﺷﻮد‪ ،‬ﻣﯽ ﺗﻮاﻧﺪ ﮐﯿﻔﯿﺖ را ﺑﻬﺒﻮد دﻫﺪ‪ .‬ﯾـﮏ وﯾـﺪﺋﻮ ﮐـﺪ ﺷـﺪه ﺑـﺎ‬
‫‪ ،MPEG-2‬ﺑﺎ اﺳﺘﻔﺎده از ﻣﻮد ‪ scalability‬ﻣﯽ ﺗﻮاﻧﺪ روي ﺷﺒﮑﻪ ﻫﺎﯾﯽ ﺑﺎ ﭘﻬﻨﺎي ﺑﺎﻧﺪﻫﺎي ﻣﺨﺘﻠﻒ ﺑﺮاي ﮔﯿﺮﻧﺪه ﻫﺎﯾﯽ ﺑﺎ ﻗﺎﺑﻠﯿـﺖ درﯾﺎﻓـﺖ‬
‫ﺑﺎ دﻗﺖ ﻫﺎي ‪ spatial‬ﻣﺨﺘﻠﻒ‪ ،‬ﻣﻨﺘﻘﻞ ﺷﻮد‪ .‬ﺷﮑﻞ ‪ profile ،6‬ﻫﺎي ﻣﺨﺘﻠﻒ و ﺳﻄﺢ ﻣﺨﺘﻠﻔﯽ ﮐﻪ ﺗﻮﺳﻂ ‪ MPEG2‬ﭘﺸﺘﯿﺒﺎﻧﯽ ﻣـﯽ ﺷـﻮﻧﺪ‬
‫را ﺧﻼﺻﻪ ﻣﯽ ﮐﻨﺪ‪.‬‬
‫‪9‬‬
‫‪CE 342 – Multimedia HW# 6‬‬
‫‪H. Rabiee, Fall 2008‬‬
‫ﺷﮑﻞ ‪ :6‬ﺳﻄﻮح و ‪ profile‬ﻫﺎي ﻣﻮرد ﺣﻤﺎﯾﺖ ‪MPEG-2‬‬
‫‪ -5-2‬ﺳﺎﯾﺮ اﺳﺘﺎﻧﺪاردﻫﺎي ﺗﺠﺎري ﻓﺸﺮده ﺳﺎزي وﯾﺪﺋﻮ‬
‫‪ -1-5-2‬ﺗﮑﻨﻮﻟﻮژي ‪Intel’s Indeo‬‬
‫وﯾﺪﺋﻮ ‪ Indeo‬ﯾﮏ ﺗﮑﻨﻮﻟﻮژي ﻧﺮم اﻓﺰاري اﺳﺖ ﮐﻪ ﺗﻮﺳﻂ ‪ Intel Architecture Labs‬ﺗﻮﻟﯿﺪ ﺷﺪه و اﻧﺪازة ﻓﺎﯾﻞ ﻫـﺎي وﯾـﺪﺋﻮ دﯾﺠﯿﺘـﺎل‬
‫ﻓﺸﺮده ﻧﺸﺪه را از ‪ 5‬ﺗﺎ ‪ 10‬ﺑﺮاﺑـﺮ ﮐـﺎﻫﺶ ﻣـﯽ دﻫـﺪ‪ .‬اﯾـﻦ ﺗﮑﻨﻮﻟـﻮژي در ﻣﺤﺼـﻮﻻﺗﯽ ﻣﺎﻧﻨـﺪ ‪ Microsoft’s video for windows‬و‬
‫‪ Apple’s Quicktime‬ﮔﻨﺠﺎﻧﺪه ﺷﺪه اﺳﺖ‪.‬‬
‫ﺗﮑﻨﻮﻟﻮژي ‪ ،Indeo‬از ﭼﻨﺪﯾﻦ ﻧﻮع ﺗﮑﻨﯿﮏ ﻓﺸﺮده ﺳـﺎزي ”‪ “Lossy‬و ”‪ “Loos less‬اﺳـﺘﻔﺎده ﻣـﯽﮐﻨـﺪ‪ .‬ﺗﮑﻨﻮﻟـﻮژي ‪ ،Indeo‬وﯾـﺪﺋﻮ را‬
‫ﺑﻄﻮر ﻫﻤﺰﻣﺎن ﺑﺎ درﯾﺎﻓﺖ آن از ﻃﺮﯾﻖ ‪ ،video capture board‬ﻓﺸﺮده ﻣﯽ ﮐﻨﺪ ﺑﻨﺎﺑﺮاﯾﻦ دادة ﻓﺸﺮده ﻧﺸﺪه ﻧﯿﺎزي ﺑﻪ ذﺧﯿﺮه ﺷـﺪن روي‬
‫دﯾﺴﮏ را ﻧﺪارد‪ .‬وﯾﺪﺋﻮ آﻧﺎﻟﻮگ درﯾﺎﻓﺘﯽ از ﯾﮏ دورﺑﯿﻦ وﯾﺪﺋﻮ‪ ،VCR ،‬ﯾﺎ دﯾﮏ ﻟﯿﺰري‪ ،‬ﺑﺎ ﻫـﺮ ﻧـﻮع ﻓﺮﻣـﺖ اﺳـﺘﺎﻧﺪاردي ﻣﺎﻧﻨـﺪ ‪ ،NTSC‬از‬
‫ﻃﺮﯾﻖ ‪ video capture board‬ﻣﺎﻧﻨﺪ ﯾﮏ ‪ ،Intel smart video Recorder board‬ﺑﻪ ﻓﺮﻣﺖ دﯾﺠﯿﺘﺎل ﺗﺒﺪﯾﻞ ﻣﯽ ﺷﻮد‪.‬‬
‫روش ‪ Indeo‬ﺷﺎﻣﻞ ﻣﺮاﺣﻞ زﯾﺮ اﺳﺖ )ﺗﻤﺎﻣﯽ آﻧﻬﺎ اﻟﺰاﻣﯽ ﻧﯿﺴﺘﻨﺪ(‪:‬‬
‫‪ -1‬ﻧﻤﻮﻧﻪ ﺑﺮداري ‪ ،yuv‬ﺑﺮاي ﮐﺎﻫﺶ ﻣﺴﺎﺣﺖ ﭘﯿﮑﺴﻞ ﺑﻪ ﯾﮏ ﻣﻘﺪار رﻧﮓ ﻣﺘﻮﺳﻂ‪.‬‬
‫‪ -2‬اﺧﺘﻼف ﭘﯿﮑﺴﻞ و ﻓﺸﺮده ﺳﺎزي زﻣﺎﻧﯽ‪ ،‬ﺑﺮاي ﮐﻢ ﮐﺮدن داده از ﻃﺮﯾﻖ ذﺧﯿﺮه ﮐﺮدن ﺗﻨﻬﺎ اﻃﻼﻋﺎﺗﯽ ﮐﻪ ﺑﯿﻦ ﭘﯿﮑﺴﻞ ﻫﺎ ﯾﺎ ﻓﺮﯾﻢ ﻫﺎ ﺗﻐﯿﯿﺮ‬
‫ﮐﺮده اﺳﺖ‪) .‬اﯾﻦ ﺑﺎ ﮐﻮاﻧﺘﯿﺰه ﮐﺮدن اﺧﺘﻼف ﻓﺮﯾﻢ از روش ﮐﻮاﻧﺘﯿﺰاﺳﯿﻮن ﺑﺮداري اﻧﺠﺎم ﻣﯽ ﺷﻮد‪(.‬‬
‫‪ -3‬ﮐﺪ ﮐﺮدن ‪ run-length‬ﺑﺮاي ﻓﺸﺮده ﮐﺮدن ﺷﺎﺧﺺ ﻫﺎي ﮐﻠﻤﮥ ﮐﺪ‪.‬‬
‫‪ -4‬ﮐﺪ ﮐﺮدن ‪ ،variable – content‬ﺑﺮاي ﮐﺎﻫﺶ ﯾﮏ ﻣﺠﻤﻮﻋﮥ ﻣﺘﻔﺎوت از اﻃﻼﻋﺎت ﺑﻪ ﺗﻌﺪاد ﺛﺎﺑﺘﯽ ﺑﯿﺖ‪.‬‬
‫ﻓﺎﯾﻞ وﯾﺪﺋﻮ دﯾﺠﯿﺘﺎل ﺷﺪه ﺑﺎ اﻃﻼﻋﺎت ﺻﺪا‪ ،‬ﻃﺒﻖ ﯾﮏ ﻓﺮﻣﺖ اﺳﺘﺎﻧﺪارد‪ ،‬ﻣﺜﻞ ‪ Microsoft’s AVI‬ﯾـﺎ ‪ Apple’s Quicktime‬ﺗﺮﮐﯿـﺐ‬
‫ﻣﯽ ﺷﻮد و روي دﯾﺴﮏ ﺳﺨﺖ ذﺧﯿﺮه ﻣﯽ ﺷﻮد‪ .‬ﻓﺎﯾﻞ ﺗﺮﮐﯿﺐ ﺷﺪه ﻣﯽ ﺗﻮاﻧﺪ ﺑﺮاي ﭘﺨﺶ ﺷﺪن ﯾﺎ ﺗﺼﺤﯿﺢ ﺷﺪن‪ ،‬ﺗﻮزﯾﻊ ﺷﻮد‪ .‬ﺑـﺮاي ﭘﺨـﺶ‬
‫ﮐﺮدن‪ ،‬ﻓﺎﯾﻞ ﺑﺎﯾﺪ ﺑﻪ ﻗﺴﻤﺖ ﻫﺎي وﯾﺪﺋﻮ و ﺻﺪا ﺗﺠﺰﯾﻪ ﺷﻮد و وﯾﺪﺋﻮ از ﻃﺮﯾﻖ ﯾﮏ ﺗﻌﺪاد روش )ﻋﮑﺲ ﻋﻤﻠﯿﺎت ﻓﺸﺮدهﺳﺎزي(‪ ،‬واﮐـﺪ ﺷـﻮد ﺗـﺎ‬
‫ﻧﻤﺎﯾﺶ ﭘﯿﮑﺴﻞ ﻫﺎي دﯾﺠﯿﺘﺎل واﻗﻌﯽ ﻣﺮﺑﻮط ﺑﻪ وﯾﺪﺋﻮ دﯾﺠﯿﺘﺎل ﻓﺸﺮده ﺷﺪه‪ ،‬ﻣﯿﺴﺮ ﺷﻮد‪.‬‬
‫ﺳﻪ ﻋﺎﻣﻞ ﻣﺆﺛﺮ در ﮐﺎراﯾﯽ ﻋﺒﺎرﺗﻨﺪ از‪:‬‬
‫‪ (1‬ﺳﺮﻋﺖ ﻣﯿﮑﺮوﭘﺮوﺳﺴﻮر‪ (2 ،‬اﻧﺪازة ﭘﻨﺠﺮة ‪ playback‬ﺑﺮ ﺣﺴﺐ ﭘﯿﮑﺴﻞ و ‪ (3‬ﻧﺮخ ﻓﺮﯾﻢ‬
‫‪10‬‬
‫‪CE 342 – Multimedia HW# 6‬‬
‫‪H. Rabiee, Fall 2008‬‬
‫ﮐﻮﭼﮑﺘﺮ ﺑﻮدن ﭘﻨﺠﺮة ‪ playback‬ﺑﺎﻋﺚ ﻣﯽ ﺷﻮد ﮐﻪ ﺗﺼﺎوﯾﺮ وﯾﺪﺋﻮ‪ ،‬ﻃﺒﯿﻌﯽ ﺗﺮ ﺑﺎﺷﻨﺪ‪ .‬ﻣﯿﮑﺮوﭘﺮوﺳﺴﻮر ﭘﻨﺠﺮه ﻫـﺎي ‪ playback‬ﺑﺰرﮔﺘـﺮ و‬
‫ﻧﺮخ ﻫﺎي ﻓﺮﯾﻢ ﺑﯿﺸﺘﺮ را ﺣﻤﺎﯾﺖ ﮐﻨﺪ‪.‬‬
‫ﺗﮑﻨﻮﻟﻮژي ‪ scalable ،Indeo‬اﺳﺖ‪ ،‬ﯾﻌﻨﯽ ﻧﺮخ ﻫﺎي ﺳﺮﯾﻌﺘﺮ ﻓﺮﯾﻢ ﺑﺮاي ﻣﺸﺘﺮﯾﺎن ﺑﺎ ﻗﺪرت ﭘﺮدازش ﺑﯿﺸﺘﺮ را ﻓﺮاﻫﻢ ﻣﯽ ﮐﻨﺪ‪.‬‬
‫‪Apple’s Quicktime -2-5-2‬‬
‫ﻣﺤﺼﻮل ‪ Quicktime‬ﺑﺎ ﻫﺰﯾﻨﮥ ﮐﻢ‪ ،‬ﺑﺮاي ﺳﯿﺴﺘﻢ ﻫﺎي ‪ ،end-user desktop‬وﯾﺪﺋﻮ ﺗﻤﺎم ﻣﺘﺤﺮك را ﺑـﻪ ارﻣﻐـﺎن آورد‪ ، Apple.‬ﻋﻤـﻞ‬
‫ﻓﺸﺮده ﺳﺎزي و ﻋﮑﺲ آن را ﺑﻪ ﻃﻮر ﻧﺮم اﻓﺰاري ﭘﯿﺎده ﮐﺮد‪ .‬ﮐﻮاﻧﺘﯿﺰه ﮐﺮدن ﺑﺮداري ﯾﮑﯽ از روش ﻫﺎي ﻓﺸﺮده ﺳﺎزي ﻧﺮم اﻓـﺰاري اﺳـﺖ ﮐـﻪ‬
‫در ‪ Quicktime‬ﻣﻮﺟﻮد اﺳﺖ‪ .‬اﯾﻦ روش اﻣﮑﺎن داﺷﺘﻦ وﯾﺪﺋﻮ ﺑﺎ دﻗﺖ‪ 320*240 ،‬ﺗﺎ ‪ 30 frame/sec‬ﺑﺪون ﮐﻤﮏ ﺳﺨﺖ اﻓـﺰار را ﻓـﺮاﻫﻢ‬
‫ﻣﯽﮐﻨﺪ‪ .‬ﻧﺴﺒﺖ ﻫﺎي ﻓﺸﺮده ﺳﺎزي ﮐﻪ ﺑﺎ اﯾﻦ روش ﺑﺪﺳﺖ ﻣﯽ آﯾﻨﺪ ﺑﯿﻦ ‪ 25‬ﺗﺎ ‪ 200‬اﺳﺖ‪.‬‬
‫‪Microsoft AVI -3-5-2‬‬
‫ﻫﻤﺎﻧﻨــﺪ ‪ ،Quicktime‬ﻫــﺪف از ‪ ،Microsoft AVI‬اﯾﺠــﺎد وﯾــﺪﺋﻮ ﺑــﺎ دﻗــﺖ ﮐــﻢ و ﻫﺰﯾﻨــﮥ ﮐــﻢ روي ‪ desktop‬اﺳــﺖ‪ .‬ﺑــﺮ ﺧــﻼف‬
‫‪ ،Quicktime‬ﮐﻪ ﻗﺴﻤﺘﯽ از ﺳﯿﺴﺘﻢ ﻋﺎﻣﻞ اﺳﺖ‪ AVI ،‬ﺑﻌﻨﻮان ﯾﮏ ﻣﺎژون ﺳﻄﺢ ﻣﺠﺰا‪ ،‬ﺗﻌﺮﯾﻒ ﺷﺪه اﺳـﺖ‪ AVI .‬ﺑﻌﻨـﻮان ﯾـﮏ راه ﺣـﻞ‬
‫ﺗﻨﻬﺎ ﻧﺮم اﻓﺰاري‪ ،‬ﻃﺮاﺣﯽ ﺷﺪه اﺳﺖ ﺗﺎ روي ﻣﺎﻧﯿﺘﻮرﻫﺎي ‪ VGA‬و ‪ ،Super VGA‬وﯾﺪﺋﻮ را ﻧﻤﺎﯾﺶ دﻫﺪ‪ .‬دﻗﺖ ‪ ،AVI‬ﻫﻨﮕﺎﻣﯿﮑﻪ ﺑﺎ دﻗـﺖ‬
‫‪ VCR‬در ﻣﺤﺪودة ‪ 320‬ﺧﻂ ﯾﺎ ﺑﯿﺸﺘﺮ ﻣﻘﺎﯾﺴﻪ ﻣﯽ ﺷﻮد‪ ،‬ﻋﻤﻮﻣ ًﺎ ﮐﻤﺘـﺮ از ﯾـﮏ ﺳـﯿﮕﻨﺎل ﺗﻠﻮﯾﺰﯾـﻮن ﻋـﺎدي اﺳـﺖ‪ .‬ﯾـﮏ ﺧﺼﻮﺻـﯿﺖ ﻣﻬـﻢ‬
‫‪ Scalability, AVI‬آن اﺳﺖ‪.‬‬
‫ﮐﺎراﯾﯽ ﺗﺤﺖ ‪ ،AVI‬ﺑﺴﺘﮕﯽ ﺑﻪ ﺳﺨﺖ اﻓﺰار ﻣﻮرد اﺳﺘﻔﺎده در ﻻﯾﮥ زﯾﺮﯾﻦ آن دارد‪ AVI .‬ﺷﺎﻣﻞ ﭼﻨﺪﯾﻦ اﻟﮕﻮرﯾﺘﻢ ﻧﺮم اﻓﺰاري ﻓﺸﺮده ﺳﺎزي‬
‫و ﻋﮑﺲ آن اﺳﺖ‪ .‬ﺑﺮﺧﯽ از اﯾﻦ اﻟﮕﻮرﯾﺘﻢ ﻫﺎ ﺑﺮاي ﺣﺮﮐﺖ ﺑﻬﯿﻨﻪ ﺷﺪه اﻧﺪ در ﺣﺎﻟﯿﮑﻪ ﺑﺮﺧﯽ دﯾﮕﺮ ﺑﺮاي وﯾﺪﺋﻮﻫﺎي ﺛﺎﺑﺖ ﺑﻬﯿﻨﻪ ﺷﺪه اﻧﺪ‪.‬‬
‫‪ AVI‬ﭼﻨﺪﯾﻦ ‪ dialog box‬ﺑﺮاي اﻧﺘﺨﺎب اﻧﺪازة ﭘﻨﺠﺮه ﻫﺎ‪ ،‬ﻧﺮخ ﻓﺮﯾﻢ‪ ،‬ﮐﯿﻔﯿﺖ و اﻟﮕﻮرﯾﺘﻢ ﻓﺸﺮده ﺳﺎزي در اﺧﺘﯿﺎر ﻗﺮار ﻣﯽ دﻫﺪ‪ .‬ﮐﯿﻔﯿﺘـﯽ‬
‫ﮐﻪ ﺑﺎ ‪ AVI‬ﺑﻪ دﺳﺖ ﻣﯽ آﯾﺪ‪ ،‬ﺑﺎ ﮐﯿﻔﯿﺖ ‪ Quick Time‬ﻗﺎﺑﻞ ﻣﻘﺎﯾﺴﻪ اﺳﺖ‪ .‬ﺑﺎ وﺟﻮدي ﮐﻪ ﺑﺮ اﺳﺎس ﺗﮑﻨﻮﻟﻮژي ﻫﺎي ﻣﺘﻔـﺎوﺗﯽ ﻋﻤـﻞ ﻣـﯽ‬
‫ﮐﻨﻨﺪ‪ ،‬در ﻇﺎﻫﺮ ﺧﯿﻠﯽ ﺷﺒﯿﻪ ﯾﮑﺪﯾﮕﺮ ﻫﺴﺘﻨﺪ‪.‬‬
‫‪Intel’s DVI -4-5-2‬‬
‫‪ Intel’s Digital Video Interface‬ﯾﮏ اﺳﺘﺎﻧﺪارد ﺳﺨﺖ اﻓﺰاري اﺳﺖ‪ .‬از آﻧﺠﺎ ﮐﻪ اﺳﺘﺎﻧﺪاردﻫﺎي ﺟﺪﯾﺪﺗﺮي ﺑﻄﻮر ﻧـﺮم اﻓـﺰاري ﭘﯿـﺎده‬
‫ﺳﺎزي ﺷﺪه اﻧﺪ )و ‪ DVI‬اﻫﻤﯿﺖ ﺧﻮد را ﺑﻪ ﻋﻨﻮان اﺳﺘﺎﻧﺪارد ﺗﺎ ﺣﺪودي از دﺳﺖ داده اﺳﺖ(‪ ،‬ﺟﺰﺋﯿـﺎت اﯾـﻦ روش در اﯾﻨﺠـﺎ ﻣﻄـﺮح ﻧﺸـﺪه‬
‫اﺳﺖ‪.‬‬
‫اﻓﺮادي ﮐﻪ ﺑﻪ اﯾﻦ اﺳﺘﺎﻧﺪارد ﻋﻼﻗﻤﻨﺪ ﻫﺴﺘﻨﺪ ﻣﯽ ﺗﻮاﻧﻨﺪ ﯾﮏ ﻧﺴﺨﻪ از اﺳﺘﺎﻧﺪارد را ﺗﻬﯿﻪ و ﺟﺰﺋﯿﺎت آن را ﻣﻄﺎﻟﻌﻪ ﻧﻤﺎﯾﻨﺪ‪.‬‬
‫‪ -3‬آزﻣﺎﯾﺶ‬
‫‪ -1‬ﺑﺎ ﻓﺮض داﺷﺘﻦ دو ﻓﺮﯾﻢ از ﯾﮏ دﻧﺒﺎﻟﮥ وﯾﺪﺋﻮ‪ ،‬ﺑﺮﻧﺎﻣﻪ اي ﺑﻨﻮﯾﺴﯿﺪ ﮐﻪ ﺑﺮدار ﺣﺮﮐﺖ را ﺑـﺮاي اوﻟـﯿﻦ ﺑﻠـﻮك ‪) 16*16‬ﺑـﺮاي ﻣﺜـﺎل ﺑﻠـﻮك‬
‫)‪0‬و‪ (0‬و )‪15‬و‪ (0‬و )‪0‬و‪ (15‬و )‪15‬و‪ (15‬در دوﻣﯿﻦ ﻓﺮﯾﻢ ﭘﯿﺪا ﮐﻨـﺪ‪ .‬دو ﻓـﺮﯾﻢ را ﺑﺨﻮاﻧﯿـﺪ از ﺗﻮاﺑـﻊ )(‪ fopen‬و )(‪ fread‬اﺳـﺘﻔﺎده ﮐﻨﯿـﺪ‪،‬‬
‫ﭘﺎراﻣﺘﺮﻫﺎي ‪ S-end ،S-start ،BK-location ،BK-size ،B,A‬را ﺑﻌﻨﻮان ورودي ﺗﺎﺑﻊ )(‪ EBLK‬ﮐﻪ در ﭘﯿﻮﺳﺖ ‪ A‬آﻣـﺪه اﺳـﺖ‪ .‬در‬
‫ﻧﻈﺮ ﺑﮕﯿﺮﯾﺪ‪ EBLK .‬ﺗﺎﺑﻌﯽ اﺳﺖ ﮐﻪ ﻣﯽ ﺗﻮاﻧﺪ ﺑﺮدار ﺣﺮﮐﺖ را ﺑﺮاي ﺑﻠﻮك ﻣﺸﺨﺼﯽ ﭘﯿﺪا ﮐﻨﺪ‪ .‬ﻣـﯽﺗﻮاﻧﯿـﺪ ﻣﺤـﺪودهي ﺟﺴـﺘﺠﻮ را اﻟـﻒ(‬
‫ﺑﻄﻮر ﺛﺎﺑﺖ ‪ -4‬و ‪ 4‬ب(‪ 16‬و ‪ -16‬در ﻧﻈﺮ ﺑﮕﯿﺮﯾﺪ‪.‬‬
‫‪ -2‬ﺑﺮﻧﺎﻣﻪ اي را ﮐﻪ در ﻗﺴﻤﺖ ‪ 1‬ﻧﻮﺷﺘﻪ اﯾﺪ ﺗﮑﻤﯿﻞ ﮐﻨﯿﺪ ﻃﻮرﯾﮑﻪ ﺑﺮدارﻫﺎي ﺣﺮﮐﺖ را ﺑﺮاي ﺗﻤﺎم ﺑﻠﻮك ﻫﺎ در ﻓﺮﯾﻢ ﯾـﮏ ‪ 1‬ﺑـﻪ ‪) 2‬ﺑـﺮدار ‪2‬‬
‫ﺑﻌﺪي ﺑﺮاي ذﺧﯿﺮه ﺳﺎزي ﮐﻠﯿﮥ ﺑﺮدارﻫﺎي ﺣﺮﮐﺖ ﻧﯿﺎز اﺳﺖ ﯾﮑﯽ ﺑﺮاي ‪ mv-x‬و دﯾﮕﯿﺮي ﺑﺮاي )‪ (،(mv-y‬ﺑﺪﺳﺖ آورد‪ .‬ﻣﯿﺪان ﺣﺮﮐﺖ را ﺑـﺎ‬
‫اﺳﺘﻔﺎده از ﺗﺎﺑﻊ )(‪ quiver‬رﺳﻢ ﮐﻨﯿﺪ‪).‬ﺑﺮاي ﻫﺮ دو ﻗﺴﻤﺖ اﻟﻒ و ب(‬
‫‪ -3‬ﺑﺮﻧﺎﻣﻪ اﯾﯽ ﮐﻪ در ﻗﺴﻤﺖ ‪ 2‬ﻧﻮﺷﺘﻪاﯾﺪ را ﺗﮑﻤﯿﻞ ﮐﻨﯿﺪ ﻃﻮرﯾﮑﻪ ﺗﺼﻮﯾﺮ ﺗﺨﻤﯿﻦ زده ﺷﺪه از ﻓﺮﯾﻢ دوم را ﺑﺎ ﮐﭙﯽ ﮐـﺮدن ﺑﻠـﻮك ﻣﺮﺑـﻮط از‬
‫ﻓﺮﯾﻢ اول )ﺗﻌﯿﯿﻦ ﺷﺪه ﺗﻮﺳﻂ ﺑﺮدار ﺣﺮﮐﺖ( در ﻓﺮﯾﻢ دوم‪ ،‬ﺑﺪﺳﺖ آورﯾﺪ‪ .‬دو ﻓﺮﯾﻢ اﺻﻠﯽ‪ ،‬ﻓﺮﯾﻢ دوم ﺗﺨﻤﯿﻦ زده ﺷـﺪه‪ ،‬ﺗﺼـﻮﯾﺮ ﺧﻄـﺎ )ﻗـﺪر‬
‫ﻣﻄﻠﻖ ﺧﻄﺎي ﭘﯿﮑﺴﻞ( ﺑﯿﻦ دو ﻓﺮﯾﻢ اﺻﻠﯽ‪ ،‬ﺗﺼﻮﯾﺮ ﺧﻄﺎ ﺑﯿﻦ ﻓﺮﯾﻢ دوم ﺗﺨﻤﯿﻦ زده ﺷﺪه و ﻓﺮﯾﻢ دوم اﺻﻠﯽ را ﻧﻤﺎﯾﺶ دﻫﯿﺪ‪ .‬ﻣﯿﺪان ﺣﺮﮐـﺖ‬
‫را ﺑﺎ ﮐﻤﮏ دﺳﺘﻮر ‪ quiver‬در ﻣﻄﻠﺐ ﻧﻤﺎﯾﺶ دﻫﯿﺪ‪ .‬ﻫﻤﭽﻨﯿﻦ ﻣﻘﺪار ‪ PSNR‬از ﺗﺼﺎوﯾﺮ ﺧﻄﺎي اﺻﻠﯽ و ﺟﺪﯾﺪ را ﻣﺤﺎﺳﺒﻪ ﮐﻨﯿﺪ)ﺑﺮاي ﻫـﺮ‬
‫دو ﻗﺴﻤﺖ اﻟﻒ و ب(‪.‬‬
‫‪ PSNR‬ﺑﺼﻮرت زﯾﺮ ﺗﻌﺮﯾﻒ ﻣﯽ ﺷﻮد‪:‬‬
‫‪11‬‬
‫‪CE 342 – Multimedia HW# 6‬‬
‫‪H. Rabiee, Fall 2008‬‬
‫ﮐﻪ در آن )‪ e(m,n‬ﻣﻘﺪار ﺧﻄﺎ در ﭘﯿﮑﺴﻞ )‪ (m,n‬اﺳﺖ‪.‬‬
‫ﮐﻠﯿﮥ ﻣﺸﺎﻫﺪات ﺧﻮد را در ﻣﻮرد ﺗﺼﻮﯾﺮ ﺗﺨﻤﯿﻦ زده ﺷﺪه‪ ،‬ﻣﯿﺪان ﺣﺮﮐﺖ‪ ،‬اﺧﺘﻼف ﺑﯿﻦ ﺗﺼﺎوﯾﺮ ﺧﻄﺎ و ﻣﻘﺎدﯾﺮ ‪ PSNR‬ﺑﻨﻮﯾﺴـﯿﺪ‪ .‬ﭼـﻪ ﻧـﻮع‬
‫‪ artifact‬در ﺗﺼﻮﯾﺮ ﺗﺨﻤﯿﻦ زده ﺷﺪه ﻣﺸﺎﻫﺪه ﻣﯽ ﮐﻨﯿﺪ؟ ﻋﻠﺖ آن ﭼﯿﺴﺖ؟‬
‫‪ -4‬ﺑﺨﺶﻫﺎي ‪ 1‬ﺗﺎ ‪ 3‬را ﺑﺎ ‪ 2‬اﻧﺪازه ﺑﻠﻮك دﯾﮕﺮ و ﺑﺎ ‪ 2‬ﭘﻨﺠﺮه ﺟﺴﺘﺠﻮي ﻣﺘﻨﺎﺳﺐ ﺑﺎ اﻧﺪازه ﺑﻠﻮك اﻣﺘﺤﺎن ﮐﻨﯿﺪ‪ .‬ﺗﺄﺛﯿﺮ اﻧﺪازه ﺑﻠـﻮك و ﭘﻨﺠـﺮه‬
‫ﺟﺴﺘﺠﻮ را روي ﺧﻄﺎي ﺑﺪﺳﺖ آﻣﺪه ﺗﺤﻠﯿﻞ ﮐﻨﯿﺪ‪.‬‬
‫‪ -5‬ﺑﺮﻧﺎﻣﮥ ‪ encode.m‬در ﭘﯿﻮﺳﺖ ‪ B‬را ﺑﺨﻮاﻧﯿﺪ‪ .‬اﯾﻦ ﺑﺮﻧﺎﻣﻪ ﺗﻮاﺑﻊ ﺷﻤﺎ در ﻗﺴﻤﺖ ‪ 3‬را ﻓﺮا ﻣﯽﺧﻮاﻧﺪ ﮐﻪ ﺑﻨﺎم )(‪ getprediction‬ﻧﺎﻣﯿـﺪه‬
‫ﺷﺪه اﺳﺖ‪ .‬اﯾﻦ ﺑﺮﻧﺎﻣﻪ ﺗﺒﺪﯾﻞ ‪ DCT‬را روي ﺗﺼﻮﯾﺮ ﺧﻄﺎ اﻧﺠﺎم ﻣﯽ دﻫﺪ‪ .‬ﺗﺒﺪﯾﻞ ‪ 8*8 DCT‬را روي ﻫﺮ ﺑﻠﻮك در ﺗﺼﻮﯾﺮ ﺧﻄـﺎي ﺗﺨﻤـﯿﻦ‬
‫زده ﺷﺪه‪ ،‬اﻋﻤﺎل ﮐﻨﯿﺪ‪ .‬ﭼﻨﺪ ﻣﺆﻟﻔﮥ اول ‪ DCT‬در ﻫﺮ ﺑﻠﻮك را ﻧﮕﻪ دارﯾﺪ و ﺑﻌﺪ ﺗﺼﻮﯾﺮ ﺧﻄﺎي ﺗﺨﻤﯿﻦ را ﮐﻪ ﺑﺪﺳﺖ ﻣﯽ آﯾﺪ ﺑﻪ ﻓﺮم ﺗﺨﻤﯿﻦ‬
‫زده ﺷﺪه اﺿﺎﻓﻪ ﮐﻨﯿﺪ ﺗﺎ ﺗﺼﻮﯾﺮ ﺑﺎزﺳﺎزي ﺷﺪه را ﺑﺪﺳﺖ آورﯾﺪ‪ PSNR .‬ﺑﯿﻦ ﺗﺼﻮﯾﺮ ﺑﺎزﺳﺎزي ﺷﺪه و ﺗﺼﻮﯾﺮ اﺻـﻠﯽ ﻣﺤﺎﺳـﺒﻪ ﻣـﯽ ﺷـﻮد ﺗـﺎ‬
‫ﮐﯿﻔﯿﺖ ﺗﺼﻮﯾﺮ ﮐﺪ ﺷﺪه ﺑﺮرﺳﯽ ﺷﻮد‪ .‬ﻟﻄﻔﺎً در ﻣﻮرد ﻫﺮ ﺧﻂ دﺳﺘﻮري‪ ،‬ﺗﻮﺿﯿﺤﯽ دﻫﯿﺪ ﮐﻪ ﻧﺸﺎن دﻫﺪ وﻇﯿﻔﮥ آن ﺧﻂ دﺳﺘﻮر ﭼﯿﺴﺖ؟)ﺑﺮاي‬
‫ﻫﺮ دو ﻗﺴﻤﺖ اﻟﻒ و ب(‪.‬‬
‫‪ -6‬ﺣﺪاﻗﻞ ﺗﻌﺪاد ﻣﺆﻟﻔﻪ ﻫﺎ ﯾﺎ ﺗﻌﺪاد ﺿﺮاﯾﺒﯽ را ﭘﯿﺪا ﮐﻨﯿﺪ ﮐﻪ ﻻزم اﺳﺖ‪ ،‬ﻧﮕﻬﺪاري ﺷﻮﻧﺪ ﺗﺎ ﻧﺘﯿﺠﮥ رﺿﺎﯾﺖ ﺑﺨﺸﯽ از ﻧﻈـﺮ ﺗﺸـﺨﯿﺺ ﭼﺸـﻢ‬
‫ﺑﺪﺳﺖ آﯾﺪ )ﻣﯽ ﺗﻮان از ﻣﺤﺎﺳﺒﮥ ‪ PSNR‬ﻧﯿﺰ اﺳﺘﻔﺎده ﮐﺮد ﮐﻪ ‪ PSNR‬ﺑﯿﺸـﺘﺮ از ‪ dB 30‬ﻻزم اﺳـﺖ(‪ .‬ﻫﻤﭽﻨـﯿﻦ اﯾـﻦ روش ﮐـﺪ ﮐـﺮدن‬
‫‪ DCT‬را ﺑﻄﻮر ﻣﺴﺘﻘﯿﻢ ﺑﺮاي ﻓﺮﯾﻢ اﺻﻠﯽ دوم ﺑﮑﺎر ﺑﺮﯾﺪ‪ 8*8 DCT ،‬را روي ﻫﺮ ﯾﮏ از ﺑﻠﻮﮐﻬﺎي ﻓﺮﯾﻢ اﺻـﻠﯽ دوم اﻋﻤـﺎل ﮐﻨﯿـﺪ و ﭼﻨـﺪ‬
‫ﻣﺆﻟﻔﮥ اول ‪ DCT‬را ﻧﮕﻪ دارﯾﺪ‪ .‬ﺗﻌﺪاد ﺣﺪاﻗﻞ ﻣﺆﻟﻔﻪ ﻫﺎي ﻣﻮرد ﻧﯿﺎز را ﮐﻪ ﻧﺘﯿﺠﮥ رﺿﺎﯾﺖ ﺑﺨﺶ ﻣﯽ دﻫﻨﺪ‪ ،‬ﭘﯿﺪا ﮐﻨﯿﺪ و ﺣﺪاﻗﻞ ﻣﺆﻟﻔﻪ ﻫـﺎي‬
‫ﻻزم در اﯾﻦ دو ﺣﺎﻟﺖ را ﻣﻘﺎﯾﺴﻪ ﮐﻨﯿﺪ‪ .‬ﻓﺮض ﮐﻨﯿﺪ ﮐﻪ ﮐﺪ ﮐﺮدن ﺗﻌﺪاد ﯾﮑﺴﺎﻧﯽ از ﻣﺆﻟﻔـﻪ ﻫـﺎي ‪ DCT‬در ﻫـﺮ ﺑﻠـﻮك‪ ،‬ﺗﻌـﺪاد ﺑﯿـﺖ ﻫـﺎي‬
‫ﯾﮑﺴﺎﻧﯽ را ﻣﺼﺮف ﺧﻮاﻫﺪ ﮐﺮد‪ ،‬ﮐﺪام روش ﮐﯿﻔﯿﺖ ﺑﻬﺘﺮي را ﺑﺎ ﻧﺮخ ﺑﯿﺖ ﯾﮑﺴﺎن ﺧﻮاﻫﺪ داﺷﺖ؟‬
‫‪-4‬ﮔﺰارش‬
‫‪ -1‬ﮐﺪﻫﺎي ‪ matlab‬و ﮐﻠﯿﮥ ﻧﺘﺎﯾﺞ ﺗﺼﺎوﯾﺮ ﻣﯿﺎﻧﯽ و ﻧﻬﺎﯾﯽ ﺧﻮد را ﺗﺤﻮﯾﻞ دﻫﯿﺪ‪ .‬اراﺋﻪ ﻣﺸﺎﻫﺪات و ﺗﻮﺿﯿﺢ آن ﺿﺮوري اﺳﺖ‪.‬‬
‫‪ -2‬در ﯾﮏ ﺳﯿﺴﺘﻢ ﮐﺪ ﮐﺮدن وﯾﺪﺋﻮ ﻣﻌﻤﻮﻟﯽ‪ ،‬اﺑﺘﺪا ﺗﺨﻤﯿﻦ ﺟﺒﺮان ﺣﺮﮐﺖ اﻧﺠﺎم ﻣﯽ ﺷﻮد و ﺑﻌﺪ ﺗﺼﻮﯾﺮ ﺧﻄﺎي ﺗﺨﻤﯿﻦ زدن‪ ،‬ﺑـﺎ اﺳـﺘﻔﺎده از‬
‫‪ ،DCT‬ﮐﺪ ﻣﯽ ﺷﻮد‪ .‬اﯾﻦ ﺑﺮ اﺳﺎس اﯾﻦ ﻓﺮض اﺳﺖ ﮐﻪ اﺳﺘﻔﺎده از ﮐﺪ‪ DCT‬روي ﺗﺼﻮﯾﺮ ﺧﻄﺎ‪ ،‬ﻧﺴﺒﺖ ﺑﻪ اﻋﻤﺎل ‪ DCT‬روي ﺗﺼﻮﯾﺮ اﺻﻠﯽ‬
‫ﺑﻄﻮر ﻣﺴﺘﻘﯿﻢ‪ ،‬اﺣﺘﯿﺎج ﺑﻪ ﻧﺮخ ﺑﯿﺖ ﮐﻤﺘﺮي دارد‪.‬‬
‫آﯾﺎ اﯾﻦ ﻓﺮض ﺻﺤﯿﺢ اﺳﺖ؟ آﯾﺎ ﻣﯽ ﺗﻮاﻧﯿﺪ ﺑﺎ اﺳﺘﻔﺎده از ﯾﮏ ﺑﺮﻧﺎﻣﮥ ‪ ،matlab‬ﻣﺤﺎﺳﺒﺎﺗﯽ اﻧﺠﺎم دﻫﯿﺪ ﮐﻪ ﺻﺤﺖ ﭘﺎﺳﺨﺘﺎن را ﻣﺸﺨﺺ ﮐﻨﺪ‪.‬‬
‫)ﻧﺘﺎﯾﺞ ﺑﺪﺳﺖ آﻣﺪه در ﻗﺴﻤﺖ ﻫﺎي ‪ 4‬و ‪ 5‬در ﻗﺴﻤﺖ آزﻣﺎﯾﺶ را ﻣﻘﺎﯾﺴﻪ ﮐﻨﯿﺪ‪(.‬‬
‫‪ -3‬ﺗﺤﻠﯿﻞ ﮐﻨﯿﺪ ﮐﻪ اﻧﺪازه ﺑﻠﻮك ﻫﺎي ﻣﺨﺘﻠﻒ‪ ،‬اﻧﺪازه ﭘﻨﺠﺮهﻫﺎي ﻣﺨﺘﻠﻒ‪ ،‬و ﺗﻌﺪاد ﺿﺮاﯾﺐ ﺣﺬف ﺷﺪه ‪ DCT‬ﻣﺨﺘﻠﻒ ﻫﺮ ﮐﺪام ﭼـﻪ ﻣﺰاﯾـﺎ و‬
‫ﻣﻌﺎﯾﺒﯽ دارﻧﺪ‪.‬‬
‫‪ -5‬ﻣﺮاﺟﻊ‬
‫‪ -6‬ﺿﻤﺎﺋﻢ‪:‬‬
‫‪12‬‬
‫‪CE 342 – Multimedia HW# 6‬‬
‫‪H. Rabiee, Fall 2008‬‬
:‫ﺿﻤﯿﻤﻪ اﻟﻒ‬
encode.m ‫ﺑﻠﻮك دﯾﺎﮔﺮام ﺗﺎﺑﻊ‬
CE 342 – Multimedia HW# 6
H. Rabiee, Fall 2008
13
CE 342 – Multimedia HW# 6
H. Rabiee, Fall 2008
14
:‫ﺿﻤﯿﻤﻪ ب‬
CE 342 – Multimedia HW# 6
H. Rabiee, Fall 2008
15