IBM Books

Image, Audio, Video Extender °ü¸® ¹× ÇÁ·Î±×·¡¹Ö

ÄÆÀ̳ª ÇÁ·¹ÀÓ È®º¸

ºñµð¿À¿¡¼­ ÄÆÀ̳ª ÇÁ·¹ÀÓÀ» È®º¸Çϱâ À§ÇØ Video Extender¸¦ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ÄÆÀ̳ª ÇÁ·¹ÀÓÀ» È®º¸Çϱâ Àü¿¡, ÄÆ °ËÃâ¿ë ºñµð¿À¸¦ ¿­¾î¾ß ÇÕ´Ï´Ù. Video Extender´Â ÇÁ·¹ÀÓ°ú ÄÆÀ» ¾×¼¼½ºÇϱâ À§ÇØ »öÀÎÀ» ÀÌ¿ëÇÕ´Ï´Ù. ÄÆÀ̳ª ÇÁ·¹ÀÓÀ» È®º¸Çϱâ Àü¿¡ ºñµð¿À¿ë »öÀÎÀ» ÀÛ¼ºÇØ¾ß ÇÕ´Ï´Ù.

ºñµð¿À°¡ ¿­¸®°í »öÀÎÀÌ ÀÛ¼ºµÈ ÈÄ, ºñµð¿ÀÀÇ ´ÙÀ½ ÄÆÀ̳ª ÇÁ·¹ÀÓÀ» È®º¸Çϰųª ÇÁ·¹ÀÓ ¹øÈ£·Î ƯÁ¤ ÇÁ·¹ÀÓÀ» È®º¸ÇÒ ¼ö ÀÖ½À´Ï´Ù. Video Extender´Â MPEG-1 Çü½ÄÀ¸·Î ºñµð¿À Ŭ¸³À» ó¸®ÇÒ ¼ö ÀÖ½À´Ï´Ù. °Ë»ö ÇÁ·¹ÀÓÀ» RGB Çü½ÄÀ» ¿äûÇÏ´Â ÇÁ·Î±×·¥À¸·Î »ç¿ëÇÏ·Á´Â °æ¿ì, Video Extender API¸¦ »ç¿ëÇÏ¿© ÇÁ·¹ÀÓÀ» ÇØ´ç Çü½ÄÀ¸·Î º¯È¯ÇÒ ¼ö ÀÖ½À´Ï´Ù.

ÄÆ °ËÃâ¿ë ºñµð¿À ¿­±â

DBvOpenFile API¸¦ »ç¿ëÇÏ¿© ÆÄÀÏ¿¡ ÀúÀåµÈ ºñµð¿À¸¦ ¿©½Ê½Ã¿À. ÆÄÀÏÀº Ŭ¶óÀÌ¾ðÆ®¿¡¼­ ¹Ýµå½Ã ¾×¼¼½º °¡´ÉÇØ¾ß ÇÕ´Ï´Ù. DBvOpenHandle API¸¦ »ç¿ëÇÏ¿© µ¥ÀÌÅͺ£À̽º Å×ÀÌºí¿¡ ÀúÀåµÈ ºñµð¿À¸¦ ¿©½Ê½Ã¿À. ÀÀ¿ëÇÁ·Î±×·¥Àº µ¥ÀÌÅͺ£À̽º¿¡ ¸ÕÀú ¿¬°áÇØ¾ß ÇÕ´Ï´Ù. ºñµð¿À°¡ µ¥ÀÌÅͺ£À̽º Å×ÀÌºí¿¡ ÀúÀåµÈ´Ù¸é, Video Extender´Â ºñµð¿À¸¦ Àӽà ÆÄÀÏ·Î º¹»çÇÕ´Ï´Ù. Àӽà ÆÄÀÏÀº Ŭ¶óÀÌ¾ðÆ® È¯°æ º¯¼ö DB2VIDEOTEMP¿¡ ÁöÁ¤µÈ µð·ºÅ丮¿¡ À§Ä¡µË´Ï´Ù. ºñµð¿À ¿­±â´Â ÄÆ °ËÃâ¿ë Àӽà ÆÄÀÏÀ» ÃʱâÈ­ÇÕ´Ï´Ù. Video Extender´Â ºñµð¿À ½ÃÀÛ Æ÷ÀÎÅÍ, Áï ÇÁ·¹ÀÓ 0À» ¼³Á¤ÇÕ´Ï´Ù.

¾çÂÊÀÇ API¸¦ »ç¿ëÇÒ ¶§, ºñµð¿À µ¥ÀÌÅÍ ±¸Á¶(DBvIOType)¿¡ ´ëÇÑ Æ÷ÀÎÅ͸¦ Æ÷ÇÔÇÏ´Â µ¥ »ç¿ëµÇ´Â ¿µ¿ªÀ» Áö½ÃÇØ¾ß ÇÕ´Ï´Ù. Video Extender´Â ÀÌ ±¸Á¶¸¦ API È£Ãâ¿¡ ´ëÇÑ ÀÀ´äÀ¸·Î ÇÒ´çÇÏ°í ºñµð¿À¿¡ ´ëÇÑ Á¤º¸¸¦ ÀúÀåÇÏ´Â µ¥ »ç¿ëÇÕ´Ï´Ù. ±¸Á¶´Â ¶ÇÇÑ ÇöÀç ÇÁ·¹ÀÓÀÇ Çȼ¿ ³»¿ëÀÌ ÀÖ´Â ÇÁ·¹ÀÓ µ¥ÀÌÅÍ ±¸Á¶(DBvFrameData)¸¦ °¡¸®Åµ´Ï´Ù. ÀÌ ±¸Á¶¿¡ ´ëÇÑ ÀÚ¼¼ÇÑ ¼³¸íÀº ÄÆ °ËÃâ µ¥ÀÌÅÍ ±¸Á¶¸¦ ÂüÁ¶ÇϽʽÿÀ. DBvOpenFile API¿¡ ´ëÇØ ºñµð¿À ÆÄÀÏ À̸§µµ ÁöÁ¤ÇØ¾ß ÇÕ´Ï´Ù. DBvOpenHandle API¿¡ ´ëÇØ ºñµð¿À Çڵ鵵 ÁöÁ¤ÇØ¾ß ÇÕ´Ï´Ù.

¿¹¸¦ µé¾î, ´ÙÀ½ÀÇ ¸í·É¹®Àº ÆÄÀÏ¿¡ ÀúÀåµÈ ÄÆ °ËÃâ¿ë ºñµð¿À¸¦ ¿±´Ï´Ù.

DBvIOType    *videoptr;
 
rc=DBvOpenFile (
       &videoptr,                        /* pointer to video structure pointer */
       "/employee/video/rsmith.mpg");    /* video file */

´ÙÀ½ ¸í·É¹®Àº µ¥ÀÌÅͺ£À̽º Å×ÀÌºí¿¡ ÀúÀåµÈ ÄÆ °ËÃâ¿ë ºñµð¿À¸¦ ¿±´Ï´Ù.

EXEC SQL BEGIN DECLARE SECTION;
char Vid_hdl[251];
EXEC SQL END DECLARE SECTION;
 
DBvIOType    *videoptr;
 
EXEC SQL SELECT VIDEO INTO :Vid_hdl
FROM EMPLOYEE
WHERE NAME="Anita Jones";
 
rc=DBvOpenHandle(
       &videoptr,                         /* pointer to video structure pointer */
       vid_hdl);                          /* video handle*/

ºñµð¿À »öÀÎ

Video Extender´Â ºñµð¿À¿¡ ÀÖ´Â ÇÁ·¹ÀÓ°ú ÄÆÀ» ¾×¼¼½ºÇϱâ À§ÇØ »öÀÎÀ» ÀÌ¿ëÇÕ´Ï´Ù. ºñµð¿À¿¡¼­ ÄÆÀ̳ª ÇÁ·¹ÀÓÀ» È®º¸Çϱâ Àü¿¡ ºñµð¿À¿ë »öÀÎÀ» ÀÛ¼ºÇØ¾ß ÇÕ´Ï´Ù(MPEG Çü½ÄÀº ÇÁ·¹ÀÓ°ú ÄÆ¿ë »öÀÎÀ» Á¦°øÇÏÁö ¾Ê½À´Ï´Ù.). »öÀÎÀº MPEG-1 ºñµð¿À¸¦ Æ÷ÇÔÇÏ´Â ºñÆ® ½ºÆ®¸²¿¡ ÇÁ·¹ÀÓ ¼ö¸¦ ¸ÊÇÎÇÕ´Ï´Ù.

DBvCreateIndexFromVideo API ¶Ç´Â DBvCreateIndex API¸¦ »ç¿ëÇÏ¿© ºñµð¿ÀÀÇ »öÀÎÀ» ÀÛ¼ºÇÒ ¼ö ÀÖ½À´Ï´Ù. ´Ü, DBvOpenFile API ¶Ç´Â DBvOpenHandle API¸¦ »ç¿ëÇÏ¿© ÄÆ °ËÃâ¿ë ºñµð¿À¸¦ ¿¬ °æ¿ì¿¡´Â ¸í½ÃÀûÀ¸·Î »öÀÎÀ» ÀÛ¼ºÇÏÁö ¾Ê¾Æµµ µË´Ï´Ù. Video Extender°¡ ÀÚµ¿À¸·Î »öÀÎÀ» ÀÛ¼ºÇÕ´Ï´Ù (ºñµð¿À¸¦ ¿©´Â ¹æ¹ý¿¡ ´ëÇØ¼­´Â ÄÆ °ËÃâ¿ë ºñµð¿À ¿­±â¸¦ ÂüÁ¶ÇϽʽÿÀ.).

»öÀÎÀÌ ÀÛ¼ºµÇ¸é(¸í½ÃÀûÀ¸·Î³ª ÀÚµ¿À¸·Î), DB2 Video Extender´Â ºñµð¿À ÆÄÀϰú µ¿ÀÏÇÑ °æ·Î¿¡ »öÀÎÀ» ÀúÀåÇÏ·Á°í ÇÕ´Ï´Ù. DB2 Video Extender´Â ¸ÕÀú fname.ext.idx·Î »öÀÎ ÆÄÀÏÀ» ÀúÀåÇÏ·Á°í Çϸç, ¿©±â¼­ fnameÀº ºñµð¿À ÆÄÀÏÀÇ À̸§À̰í ext´Â ºñµð¿À ÆÄÀÏÀÇ È®ÀåÀÚÀÔ´Ï´Ù. ÀÌ·¯ÇÑ ½Ãµµ¿¡ ½ÇÆÐÇϸé, Video Extender´Â ºñµð¿À ÆÄÀϰú µ¿ÀÏÇÑ µð·ºÅ丮¿¡ fname.idx·Î ÆÄÀÏÀ» ÀúÀåÇÏ·Á°í ÇÕ´Ï´Ù. À̰ÍÀÌ ½ÇÆÐÇϸé, ±¹Áö µð·ºÅ丮¿¡ ¸ÕÀú fname.ext.idx·Î »öÀÎ ÆÄÀÏÀ» ÀúÀåÇÏ·Á°í ÇÑ ÈÄ fname.idx·Î »öÀÎ ÆÄÀÏÀ» ÀúÀåÇÏ·Á°í ÇÕ´Ï´Ù.

ÆÄÀÏÀ» ¿­ ¶§, Video Extender´Â ´ÙÀ½ÀÇ ¼ø¼­·Î »öÀÎ ÆÄÀÏÀ» ã½À´Ï´Ù.

  1. ¾²±â °¡´É ¹öÀüÀÇ »öÀÎ ÆÄÀÏÀ» ãÀº ÈÄ Àбâ Àü¿ë ¹öÀüÀ» ã½À´Ï´Ù.
  2. ºñµð¿À ÆÄÀϰú µ¿ÀÏÇÑ °æ·Î¿¡ ÀÖ´Â »öÀÎ ÆÄÀÏÀ» ãÀº ÈÄ ÇöÀç µð·ºÅ丮¿¡ ÀÖ´Â »öÀÎ ÆÄÀÏÀ» ã½À´Ï´Ù.
  3. À̸§ÀÌ fname.ext.idxÀÎ »öÀÎÀ» ãÀº ÈÄ À̸§ÀÌ fname.idxÀÎ »öÀÎÀ» ã½À´Ï´Ù. ¿©±â¼­ fnameÀº ºñµð¿À ÆÄÀÏÀÇ À̸§À̰í, ext´Â ºñµð¿À ÆÄÀÏÀÇ È®ÀåÀÚÀÔ´Ï´Ù.

¿¹¸¦ µé¾î, À̸§ÀÌ myvideo.mpgÀÎ ºñµð¿À ÆÄÀÏ¿¡ ´ëÇÑ »öÀÎÀÌ ÀÛ¼ºµÈ °æ¿ì, Video Extender´Â ¸ÕÀú ÀÌ ºñµð¿À ÆÄÀϰú µ¿ÀÏÇÑ °æ·Î¿¡ ÀÖ´Â À̸§ÀÌ myvideo.mpg.idxÀÎ ¾²±â °¡´É »öÀÎÀ» ã½À´Ï´Ù.

DBvCreateIndexFromVideo API »ç¿ë½Ã, DBvIOType µ¥ÀÌÅÍ ±¸Á¶¸¦ ÁöÁ¤ÇϽʽÿÀ. Video Extender´Â ±¸Á¶¿¡ »öÀÎ ÆÄÀÏ À̸§À» ÀúÀåÇÕ´Ï´Ù. ÀÌ ±¸Á¶¿¡ ´ëÇÑ ¼³¸íÀº ÄÆ °ËÃâ µ¥ÀÌÅÍ ±¸Á¶¸¦ ÂüÁ¶ÇϽʽÿÀ. ¿¹¸¦ µé¾î, ´ÙÀ½ÀÇ ¸í·É¹®Àº ÄÆ °ËÃâ¿ëÀ¸·Î ¹Ì¸® ¿­¸° ºñµð¿À¿ë »öÀÎÀ» ÀÛ¼ºÇÕ´Ï´Ù.

DBvIOType    *video;
 
rc=DBvCreateIndexFromVideo(
       video);                  /* pointer to video structure */
 

DBvCreateIndex API »ç¿ë½Ã, ºñµð¿À ÆÄÀÏ À̸§À» ÁöÁ¤ÇϽʽÿÀ. Video Extender´Â ÆÄÀÏ(ºñµð¿À°¡ ÀÖ´Â µ¿ÀÏ µð·ºÅ丮¿¡ ÀÖ´Â)¿¡ »öÀÎÀ» ÀúÀåÇÕ´Ï´Ù. ¿¹¸¦ µé¾î, ´ÙÀ½ÀÇ ¸í·É¹®Àº ºñµð¿À ÆÄÀÏ¿ë »öÀÎÀ» ÀÛ¼ºÇÕ´Ï´Ù.(ÆÄÀÏÀº ÄÆ °ËÃâ¿ëÀ¸·Î ¹Ì¸® ¿­¸®Áö ¾Ê¾Ò½À´Ï´Ù.)

rc=DBvCreateIndex(
       "/employee/video/rsmith.mpg");    /* video file */

»öÀÎÀÌ ºñµð¿À¿ëÀ¸·Î Á¸ÀçÇÏ´ÂÁö ÆÇº°ÇÒ ¼öµµ ÀÖ½À´Ï´Ù. DBvIsIndex API¸¦ »ç¿ëÇÏ¿© »öÀÎÀ» Á¡°ËÇϽʽÿÀ. API´Â »öÀÎÀÌ ºñµð¿À¿ëÀ¸·Î Á¸ÀçÇÏÁö ¾Ê´Â´Ù¸é »óÅ º¯¼ö°ªÀ» 0À¸·Î, »öÀÎÀÌ ºñµð¿À¿ëÀ¸·Î Á¸ÀçÇÑ´Ù¸é 1·Î ¼³Á¤ÇÕ´Ï´Ù. ¿¹¸¦ µé¾î, ´ÙÀ½ÀÇ ¸í·É¹®Àº ºñµð¿À ÆÄÀÏ¿ë »öÀÎÀÇ Á¸À縦 Á¡°ËÇÕ´Ï´Ù.

short  *status
 
rc=DBvIsIndex(
       "/employee/video/rsmith.mpg",     /* video file */
       &status);                         /* status indicator */

ºñµð¿À »öÀÎÀ» ¹é¾÷ÇϽʽÿÀ. ºñµð¿À »öÀÎÀ» º¹±¸ÇØ¾ß ÇÏ´Â °æ¿ì ºñµð¿À »öÀÎ ÆÄÀÏÀ» ¹é¾÷ÇϽʽÿÀ. ÆÄÀÏÀº Video Extender°¡ ¼³Ä¡µÈ µð·ºÅ丮¿¡ À§Ä¡ÇÕ´Ï´Ù.

ÇÁ·¹ÀÓ È®º¸

ºñµð¿À¿¡ ÀÖ´Â ÇöÀç ÇÁ·¹ÀÓÀ» È®º¸ÇÒ ¼ö ÀÖ½À´Ï´Ù. ÇöÀç ÇÁ·¹ÀÓÀ» ƯÁ¤ ÇÁ·¹ÀÓ ¹øÈ£°¡ µÇµµ·Ï ¼³Á¤Çϱ⵵ ÇÕ´Ï´Ù. DBvGetFrame API¸¦ »ç¿ëÇÏ¿© ºñµð¿À¿¡ ÀÖ´Â ÇöÀç ÇÁ·¹ÀÓÀ» È®º¸ÇϽʽÿÀ. DBvSetFrameNumber API¸¦ »ç¿ëÇÏ¿© ÇöÀç ÇÁ·¹ÀÓÀ» ƯÁ¤ ÇÁ·¹ÀÓ ¹øÈ£·Î ¼³Á¤ÇϽʽÿÀ.

DBvGetFrame API¸¦ »ç¿ëÇÏ¿© ºñµð¿À ±¸Á¶¸¦ ¼³Á¤ÇϽʽÿÀ. ¿¹¸¦ µé¾î, ´ÙÀ½ÀÇ ¸í·É¹®Àº ºñµð¿À¿¡¼­ ÇöÀç ÇÁ·¹ÀÓÀ» È®º¸ÇÕ´Ï´Ù.

DBvIOType    *video;
 
rc=DBvGetFrame(
       video);                  /* pointer to video structure */

DBvSetFrameNumber API »ç¿ë½Ã ºñµð¿À ±¸Á¶¿Í ÇöÀç ÇÁ·¹ÀÓÀ¸·Î ¼³Á¤ÇÏ·Á´Â ÇÁ·¹ÀÓ ¹øÈ£¸¦ ÁöÁ¤ÇϽʽÿÀ. ¿¹¸¦ µé¾î, ´ÙÀ½ÀÇ ¸í·É¹®Àº ÇÁ·¹ÀÓ ¹øÈ£ 85·Î ÇöÀç ÇÁ·¹ÀÓÀ» ¼³Á¤ÇÏ°í ±× ÇÁ·¹ÀÓÀ» È®º¸ÇÕ´Ï´Ù.

DBvIOType    *video;
 
rc=DBvSetFrameNumber(
       video,                   /* pointer to video structure */
       85);                     /* frame number */
 
rc=DBvGetFrame(
       video);                  /* pointer to video structure */

Ãâ·Â¿¡¼­ DBvSetFrameNumber API´Â DBvIOType ±¸Á¶¿¡ currentFrame Çʵ带 Àç¼³Á¤ÇÕ´Ï´Ù. DBvGetFrame API´Â ÇÁ·¹ÀÓÀÇ Çȼ¿ ³»¿ëÀ» DBvFrameData ±¸Á¶¿¡ À§Ä¡½Ãŵ´Ï´Ù. ÀÌ·¯ÇÑ ±¸Á¶¿¡ ´ëÇÑ ¼³¸íÀº ÄÆ °ËÃâ µ¥ÀÌÅÍ ±¸Á¶¸¦ ÂüÁ¶ÇϽʽÿÀ.

ÄÆ È®º¸

ºñµð¿À¿¡¼­ ´ÙÀ½ ÄÆÀ» È®º¸ÇÏ·Á¸é DBvDetectShot API¸¦ »ç¿ëÇϽʽÿÀ. DBvDetectShot API »ç¿ë½Ã ´ÙÀ½ µ¥ÀÌÅÍ ±¸Á¶¸¦ °¡¸®ÄÑ¾ß ÇÕ´Ï´Ù.

¶ÇÇÑ Å½»ö¿ë ½ÃÀÛ ÇÁ·¹ÀÓÀ» °¡¸®ÄÑ¾ß ÇÕ´Ï´Ù. Video Extender´Â ºñµð¿ÀÀÇ ±× ÁöÁ¡¿¡¼­ ´ÙÀ½ ÄÆ¿¡ ´ëÇØ Ž»öÇÒ °ÍÀÔ´Ï´Ù.

APIÀÇ °á°ú·Î, Video Extender´Â shotDetected Ç÷¡±×¸¦ ¼³Á¤ÇÏ°í ´ÙÀ½ ÄÆÀÇ ½ÃÀÛ ÇÁ·¹ÀÓ°ú ÇÁ·¹ÀÓ µ¥ÀÌÅ͸¦ °¡¸®Åµ´Ï´Ù. shotDetected Ç÷¡±×°¡ 1·Î ¼³Á¤µÈ´Ù¸é ÄÆÀÌ °ËÃâµË´Ï´Ù. ÀÌ·¯ÇÑ °æ¿ì, Video Extender´Â

shotDetected Ç÷¡±×°¡ 0À¸·Î ¼³Á¤µÈ´Ù¸é ÄÆÀº °ËÃâµÇÁö ¾Ê½À´Ï´Ù. ÀÌ °æ¿ì, Video Extender´Â ºñµð¿À ³¡¿¡ µµ´ÞÇÏ¿´À½À» ³ªÅ¸³»´Â Äڵ带 ¸®ÅÏÇÕ´Ï´Ù.

ÀÌ·¯ÇÑ ±¸Á¶¿¡ ´ëÇÑ ¼³¸íÀº ÄÆ °ËÃâ µ¥ÀÌÅÍ ±¸Á¶¸¦ ÂüÁ¶ÇϽʽÿÀ.

¿¹¸¦ µé¾î, ´ÙÀ½ÀÇ ¸í·É¹®Àº ºñµð¿ÀÀÇ ´ÙÀ½ ÄÆÀ» ¿äûÇÕ´Ï´Ù.

DBvIOType    *video;
long start_frame = 1;
char shotDetected = 0;
DBvShotControl    shotCtrl;
DBvShotType    shot;
 
shotCtrl>method=DETECT_CORRHIST
shotCtrl>normalCorrValue=60;
shotCtrl>sceneCutSkipXY=1;
shotCtrl>CorrHistThresh=10;
shotCtrl>DissThresh=10;
shotCtrl>DissCacheSize=4;
shotCtrl>DissNumCaches=7;
shotCtrl>minShotSize=0;
 
rc=DBvDetectShot(
       video,              /* pointer to video structure */
       start_frame,        /* starting frame for search */
       &shotDetected,      /* shot detected flag */
                           /* 1=detected, 0=not detected */
       shotCtrl,           /* pointer to shot control structure */
       &shot);             /* pointer to shot type structure */

°Ë»öµÈ ÇÁ·¹ÀÓÀÇ Çü½Ä º¯È¯

MPEG-1 ÇÁ·¹ÀÓ ³»¿ëÀº YUV Çü½Ä(ÇÁ·¹ÀÓÀÇ ¹ß±¤ Çȼ¿ Ç÷¹ÀÎ, Cr Çȼ¿ Ç÷¹ÀÎ ¹× Cb Çȼ¿ Ç÷¹ÀÎ Á¤º¸¸¦ Æ÷ÇÔÇÏ´Â Çü½Ä)ÀÔ´Ï´Ù.

ºñµð¿À ÇÁ·¹ÀÓÀ» ÆíÁýÇÏ·Á ÇÑ´Ù¸é, YUV¿¡¼­ RGB Çü½ÄÀ¸·Î ÇÁ·¹ÀÓÀ» º¯È¯ÇÏ´Â °ÍÀÌ °£ÆíÇÏ´Ù´Â °ÍÀ» ¾Ë ¼ö ÀÖÀ» °ÍÀÔ´Ï´Ù. Video Extender´Â YUV Çü½Ä¿¡¼­ 24 ºñÆ® RGB Çü½ÄÀ¸·Î, °Ë»öµÈ MPEG-1 ÇÁ·¹ÀÓÀ» º¯È¯ÇÏ´Â DBvFrameDatato24BitRGB API¸¦ Á¦°øÇÕ´Ï´Ù. API¸¦ »ç¿ëÇÏ·Á¸é, ¿ì¼± ¸ñÇ¥ ¹öÆÛ¸¦ ÇÒ´çÇØ¾ß ÇÕ´Ï´Ù.

API ½ÇÇà½Ã, ¸ñÇ¥ ¹öÆÛ¿Í º¯È¯ÇÏ·Á´Â ÇÁ·¹ÀÓ µ¥ÀÌÅ͸¦ °¡¸®ÄÑ¾ß ÇÕ´Ï´Ù. ÇÁ·¹ÀÓ Æø°ú ³ôÀ̵µ ÁöÁ¤ÇØ¾ß ÇÕ´Ï´Ù.(ÇÁ·¹ÀÓ¿ë DBvIOType ±¸Á¶¿¡¼­ ÇÁ·¹ÀÓ µ¥ÀÌÅÍ, ³ôÀÌ ¹× ÆøÀ» È®º¸ÇÒ ¼ö ÀÖ½À´Ï´Ù.) ¿¹¸¦ µé¾î, ´ÙÀ½ÀÇ ¸í·É¹®Àº MPEG-1 ÇÁ·¹ÀÓÀ» 24ºñÆ® RGB Çü½ÄÀ¸·Î º¯È¯ÇÕ´Ï´Ù.

char RGB[18000];
DBvIOType      *video;
DBvFrameData   fd;
 
rc=DBvGetNextFrame(
       video);                  /* pointer to video structure */
 
fd=video.fd
dx=video.dx
dy=video.dy
 
rc=DBvFrameDataTo24BitRGB (
       RGB,                      /* pointer to target buffer */
       &fd,                      /* pointer to frame data */
       dx,                       /* frame width */
       dy);                      /* frame height */

ºñµð¿À ÆÄÀÏ ´Ý±â

ÄÆ °ËÃâ¿¡ ´ëÇØ ¿­·Á ÀÖ´Â ºñµð¿À ÆÄÀÏÀ» ´ÝÀ¸·Á¸é, DBvClose API¸¦ »ç¿ëÇϽʽÿÀ. API »ç¿ë½Ã, ÆÄÀÏ¿ë ºñµð¿À ±¸Á¶¿¡ Æ÷ÀÎÅ͸¦ ÁöÁ¤ÇÕ´Ï´Ù.

¿¹¸¦ µé¾î, ´ÙÀ½ÀÇ ¸í·É¹®Àº ÄÆ °ËÃâ¿¡ ´ëÇØ ¿­·Á ÀÖ´Â ºñµð¿À ÆÄÀÏÀ» ´Ý½À´Ï´Ù.

DBvIOType    *video;
 
rc=DBvClose (video);

°Ë»öµÈ ÇÁ·¹ÀÓ Ç¥½Ã

°Ë»öµÈ MPEG-1 ÇÁ·¹ÀÓ ³»¿ëÀº YUV Çü½ÄÀÔ´Ï´Ù. À̰ÍÀº ´ëºÎºÐÀÇ À̹ÌÁö Ç¥½Ã ÇÁ·Î±×·¥¿¡ ÀÇÇØ Ç¥½ÃµÇ´Â Çü½ÄÀÌ ¾Æ´Õ´Ï´Ù. °Ë»öµÈ ºñµð¿À ÇÁ·¹ÀÓÀ» Ç¥½ÃÇÏ·Á¸é, BMP Çü½Ä°ú °°ÀÌ À̹ÌÁö Ç¥½Ã ÇÁ·Î±×·¥ÀÌ ÀÌÇØÇÒ ¼ö ÀÖ´Â Çü½ÄÀ¸·Î ÇÁ·¹ÀÓÀ» µÎ¾î¾ß ÇÕ´Ï´Ù. ¿¹¸¦ µé¾î, MPEG-1 ÇÁ·¹ÀÓÀ» Ç¥½ÃÇÏ·Á¸é,

  1. °Ë»öµÈ MPEG-1 ÇÁ·¹ÀÓÀ» YUV Çü½Ä¿¡¼­ 24ºñÆ® RGB Çü½ÄÀ¸·Î º¯È¯ÇÏ´Â DBvFrameDatato24BitRGB API¸¦ »ç¿ëÇϽʽÿÀ. DBvFrameDatato24BitRGB API »ç¿ë Á¤º¸´Â °Ë»öµÈ ÇÁ·¹ÀÓÀÇ Çü½Ä º¯È¯À» ÂüÁ¶ÇϽʽÿÀ.
  2. º¯È¯µÈ ÇÁ·¹ÀÓ¿¡ ÀûÀýÇÑ Çì´õ¸¦ Ãß°¡ÇϽʽÿÀ. ¿¹¸¦ µé¾î, BMP Çü½ÄÀº À̹ÌÁö Æø°ú ³ôÀÌ¿Í °°Àº Á¤º¸¸¦ Æ÷ÇÔÇÏ´Â Çì´õ°¡ ÇÊ¿äÇÕ´Ï´Ù.
  3. ÇÁ·¹ÀÓ ³»¿ëÀ» Çì´õ¿Í ÇÔ²² ÆÄÀÏ¿¡ º¹»çÇϽʽÿÀ.
  4. ÆÄÀÏÀ» Ç¥½ÃÇÏ·Á¸é, DBiBrowse API¸¦ »ç¿ëÇϽʽÿÀ. DBiBrowse API Á¤º¸´Â Ç¥½Ã ¶Ç´Â Àç»ý API »ç¿ëÀ» ÂüÁ¶ÇϽʽÿÀ.


[ ÆäÀÌÁöÀÇ ¸Ç À§ | ÀÌÀü ÆäÀÌÁö | ´ÙÀ½ ÆäÀÌÁö | ¸ñÂ÷ | »öÀÎ ]