0. ffmpeg source export by SVN   svn://svn.ffmpeg.org/ffmpeg/trunk

1. download "MinGW"  http://sourceforge.net/projects/mingw/files/ 

2. MinGW설치     c,c++컴파일러와(c++은 안해도 될듯하지만) MSYS포함

 

3. add Path   환경변수에 추가

C:\MinGW\msys\1.0\bin

C:\MinGW\bin

 

4.http://yasm.tortall.net/Download.html 에서 적당한 yasm을 다운.

C:\MinGW\msys\1.0\bin에 넣는다.

이때 파일의 이름을 yasm.exe로 해준다.

 

5. export한 ffmpeg을 C:\MinGW\msys\1.0로 이동(혹은 복사)

 

6.C:\MinGW\msys\1.0\msys.bat 수정

맨 윗줄에 추가

call "C:/Program Files (x86)/Microsoft Visual Studio 10.0/VC/bin/vcvars32.bat"

 

7.msys.bat 실행

cd /MinGW/msys/1.0/ffmpeg

 

// 컴파일 실패(ffmpeg-1.1.2)

./configure --enable-shared --enable-memalign-hack --extra-cflags=-U__STRICT_ANSI__ 

 

// 컴파일 성공(ffmpeg-1.1.2 : H264만 빼내는 방법)

./configure --disable-doc --enable-shared --disable-static --disable-ffmpeg --disable-ffplay --disable-ffprobe --disable-ffserver --disable-avdevice --disable-encoders --disable-network --disable-protocols --disable-decoders --disable-parsers --enable-decoder=h264 --enable-parser=h264 --disable-filters --disable-yasm --disable-muxers --disable-bsfs --disable-devices --disable-demuxers  --disable-avfilter --disable-swscale --enable-memalign-hack --target-os=mingw32 --extra-cflags=-U__STRICT_ANSI__ --extra-libs=-lpthread

 

make
make install
 
8.C:\MinGW\msys\1.0\local  에 파일 생성되어있음.
 
빌드는 여기까지 완료
 
테스트 컴파일
샘플소스 : ffmpeg\libavcodec\api-example.c
포함,라이브러리 path설정
빌드시 inttype.h없다고 에러
압축풀고 include 폴더안에 넣음
소스들 적당히 수정해주고
common.h에
 
#ifdef __cplusplus
 #define __STDC_CONSTANT_MACROS
 #ifdef _STDINT_H
  #undef _STDINT_H
 #endif
 # include <stdint.h>
#endif
 
추가
 
소스에서 헤더 포함은
extern "C" {
#include "libavcodec/avcodec.h"
#include "libavutil/mathematics.h"
}
으로 수정
 
블로그 이미지

맨오브파워

한계를 뛰어 넘어서..........

,

해보면 쉽고 안해보면 뭐가 몬지 몰라서 헤메게 되는 Setup 프로젝트 입니다.

VS 에는 클릭원스라는 퍼블리싱도구가 있어서 편리하긴 한데요. 클릭원스는 설치 폴더지정이나 설치 전 후 작업 과정이

어려워서... 셋업 프로젝트를 선택하였습니다.

이번 포스팅에는 Setup 프로젝트를 만들고 msi 파일을 만들어 Setup 파일을 다운받고 설치하고

바탕화면에 바로가기를 만들고, 설치될 폴더를 지정해 주고, 아이콘을 지정하는 등 설치에 관련된 작업을 알아보려 합니다.

작업 환경은 Visual Studio 2008 입니다.

먼저 새 프로젝트를 클릭하고 셋업 프로젝를 만들어 봅시다.

 

 

후에 우리가 배포할 솔루션을 추가해 줍니다.

1. 솔루션 탐색기에서 솔루션 마우스 오른쪽 클릭 -> 추가 -> 기존의프로젝트(우리가 다 만든 프로젝트) 를 클릭합니다.

여기서 잠깐!!!!

2. 우리의 프로젝트솔루션에서 셋업 프로젝트를 추가로 만들수도 있습니다. 뭐가 먼저냐의 문제인데요.

셋업 프로젝트를 만들고, 기존의 프로젝트를 추가 할 경우...

수정시 원본의 프로젝트에 적용이 안된다는 것을 주의하십시오. 아무튼 다 만들었으면 손대지 말란 말이져!!!

그러나 2 의 경우 원본이 달라지지는 않습니다. 따라서 2의방법으로 하는 것을 추천해 드리지만...

저의 경우 3개의 프로젝트가 솔루션에 들어가 있어서 여간 복잡한게 아닙니다..

이런 경우 1 의 방법을 쓰는게 속시원하죠. 지저분한것은 싫어서....

그러면 프로젝트를 추가해 봅시다.

 

 

프로젝트명이랑 폴더명을 지웠는데.. ㅋ 의미가 없으려나?

푸헤헤... 아무튼... 프로젝트가 추가가 되면 다음의 작업들을 살펴 봅시다 ^^

 

 

셋업 프로젝트 마우스 오른쪽 버튼을 클릭하면

1. 파일시스템

2. 레지스트리

3. 파일형식

4. 사용자 인터페이스

5. 사용자 지정 정작업

6. 시작조건

이 있습니다.

파일시스템(File System on Target Machine)에는

기본적으로 3개의 폴더가 표시 됩니다.

Applicaiton Folder

User's Desktop

User's Programs Menu

직관적으로 생각하시는게 맞습니다.

파일시스템은 내가 아닌 사용자의 컴퓨터의 파일시스템이고 -> File System on Target Machine

Application Folder 는 내가 만든 프로그램이 설치될 폴더이며

User's Desktop 은 사용자의 바탕화면이고

User's Programs Menu 는 사용자의 시작 버튼을 눌렀을 때 보여지는 프로그램의 메뉴 입니다.

 

 

파일 시스템에 마우스 오른쪽 버튼을 누르면

Add Special Folder 에 위와 같은 여러가지 특정 폴더를 볼 수 있습니다.

전부를 설명할 수는 없지만 대게 직관적으로 알 수 가 있습니다.

즉... 이 부분에서 우리가 원하는 파일을 어느 폴더에 넣을 지 지정이 가능하다는 말 입니다.

저는 Window 밑에 Program Files 라는 폴더 밑에 설치프로그램을 넣는 것을 좋아하니까....

(사실은 다들 거기 있기에 따라서... ㅎㅎ )

프로그램 파일 폴더를 추가 하겠습니다.

만약 !!

- 아이콘을 window 밑에 system 폴더에 넣고 싶다면 시스템 폴더를 추가해서 아이콘을 넣음 되고,

- 폰트를 window 밑에 font 폴더에 넣고 싶다면 글꼴 폴더를 추가해서 폰트를 추가하면 되고,

- 시작프로그램이 지정되어 있는 사용자 시작폴더에 프로그램을 등록하고 싶으면 그렇게 하면 됩니다.

참~ 쉽죠잉?

그런데 개인적으로 시작프로그램은 레지스트리에 지정하는 것을 좋아라 합니다.

레지스트리 관련 내용에 대해서는 클래스참조를 찾아보세요 ^^

아무튼 다시 돌아가서~ ㅋ

드디어 우리가 만든 프로그램을 프로그램 파일즈 폴더에 넣어 봅시다 !!! 두둥~

 

 

프로그램 파일즈 폴더가 생겼구... --> 우클릭 --> 추가 -->

폴더,

프로젝트 출력,

파일,

어셈블리

중 프로젝트 출력을 클릭합니다.

폴더는 말 그대로 내컴퓨터에 있는 폴더를 통째로 거따 넣자는 것이고,

프로젝트 출력은 Debug 폴더나 Release 폴더의 개고생의 산물(?) 을 의미하는 것이고

파일은 말그대로 파일

어셈블리는 DLL 등의 바이너리 파일을 의미합니다.

우리는 우리가 만든 프로그램을 셋업파일로 만들 것이므로 개고생의 산물인 프로젝트 출력을 클릭합니다.

 

 

게이트웨이 라는 프로젝트가 개고생의 산물이며...

여러가지를 고를 수 있습니다만... 기본 출력을 선택하면 설치파일을 만들 수 있습니다.

아래의 구성에서 디버그, 릴리즈 를 선택할 수 있는데...

특별한 경우가 아니면 디버그는 배포할때 별로....

이유는 다들 아시리라 생각됩니다 ^^ 점점 길어지는 글때문에 지쳐가고 있는.. ㅋ -_-;;

 

 

추가를 했더니 프로그램 파일 폴더에

DLL 파일들과 기본출력 from 프로젝트명 이 추가 되었군요..

몇가지 변경이 별로 없는 클래스 혹은 이유를 말해줄수 없는(굴욕 ㅠㅠ) 등은 DLL 로 만들어 추가했습니다.

이런 클래스 혹은 이런 DLL 은 공개할 예정이니 마음껏 가져다 쓰시길 바랍니다. ㅋㅋㅋ

그리고 msi 파일과 Setup.exe 파일을 지정해 줍시다.

msi 파일은 지정되어 있는 경로의 setup.exe 파일을 찾아서 다운로드 시키고 설치를 도와주는 확장명 입니다.

아래처럼 지정합니다.

 

 

자 이렇게 하고 빌드를 하면 setupProject 의 Debug 폴더에

setup.msi

setup.exe 파일이 생겨납니다.

intallation URL 에 셋업파일의 URL 을 지정한 후 실제로 Setup.exe 파일을 위치시킵니다.

그 다음에 setup.msi 파일을 인터넷에 뿌려대면 끗!!!

자 이제 노력의 산물을 올리는게 되었으니 노력의 산물을 꾸미는 몇가지 기능을 넣어 봅시다.

바탕화면에 바로가기 만들기 !!!!!

 

 

일단 유저스 데스크탑 ( 영타가 귀찮음 ㅠㅠ ) User's Destop 속성을 보시면 Always Create 부분을 True 로 바꾸어 줍니다.

그리고 주의할 점 입니다.

 

 

User's Desktop 우클릭 -> Create Shortcut to User's Desktop 이렇게 하면 바로가기가 만들어지나

프로그램까지 접근이 안됨!!!! T^T 이것때문에 대 프로그래머이신 Arin 상에게 창피 당했음

우리가 원하는 것은 우리가 만든 프로그램의 바로가기 이지 폴더의 바로가기가 아님 !!!

우리가 만든 프로그램의 바로가기를 바탕화면에 넣으려면!!!!

 

 

위의 그림처럼 User's Desktop 영역에 마우스를 우클릭합니다.

그러면 아래와 같은 과정을 거쳐 바탕화면에 우리가 만든 프로그램의 바로가기를 만듭니다.

 

그러면 바로가기가 만들어집니다. ㅋ

업무시간에 포스팅 하다 걸려서 다음 장에서...

프로그램 파일에 등록하는 것과 아이콘 등록하는 것을 계속 하도록 하겠습니다.

블로그 이미지

맨오브파워

한계를 뛰어 넘어서..........

,

블로그 만들고 처음으로 강의성 있는(?) 글을 써보네요,,

게임, 유틸 등을 설치 할 때 파일을 받으면 설치를 시작하는데요

그런 설치 프로그램을 만드는 방법에 대해 글을 써봅니다.

1. 인스톨 팩토리 이용하기

저녀석이 인스톨 팩토리 입니다.

옛날에는 저걸로 설치당하는(?) 일이 많았는데

요즘은 보기 힘들어졌습니다.

이유는 잘 모르겠네요;;

네 바로바로 이게 Install Factory 입니다!

간단합니다. 쉽게쉽게 만들 수 있게 해놨어요,

이정도면 꽤 쉬운 프로그램이죠^^

뭐 그래서 더 이상 말할 것도 없구요,

압축률 : 162MB (169,913,272 바이트) -> 85.9MB (90,148,050 바이트)

다운로드

(출처 : 알 길이 없네요;; edison1111@daum.net , 김종민 님이 만드셧습니다.)

2. Smart Install Maker (스마트 인스톨 메이커) 이용하기

이것도 쉽게 인스톨 프로그램 만드는 프로그램 중 하나입니다.

짠! 이게 스마트 인스톨 메이커입니다.

이것도 쉽게쉽게 만들어놨습니다.

이것도 보기만 해도 바로바로 만들 수 있게 되어 있습니다.

아마 이게 제일 쉬운 듯 합니다.

단점은 적지 않을수 없네요

느려요,,, 정말 느려요

162MB 파일을 설치파일로 만드는데 10분 내외 걸렸습니다.

인스톨팩토리에 비교하면 말을 할 수 없죠,,

압축률 : 162MB (169,913,272 바이트) -> 73.1MB (76,660,349 바이트)

(출처 : http://www.sminstall.com/ )

직접받기

출처사이트에서 받기

클릭

한글패치 받기

(받은 후에 실행 하시구 Smart Install Maker 설치 후 Preferences -> Language -> Korean(한국어) 클릭하시면 됩니다.)

3. NSIS (Nullsoft scriptable Install System) 이용하기

드디어,, 좀 많이 봤던 거네요

제가 얼마 전까지만 해도 찾고 다니던 겁니다.

자세히 보니 아이콘 위에 NSIS 글자가 있었네요,,, ㅠㅠ

설치하고 실행해 봅니다@!

ㅇㅇ???

넌 뭐니..? 영어로 어쩌구 저쩌구 보이는데 검은건 글씨요,,,,

저기서 그냥 ZIP 파일을 설치 파일로 만들고 싶다 하시는 분들은

Installer based on ZIP file 으로 진입하시구요

다른 분들은 자기가 열심히 스크립팅 합시다!

라면 뭐하죠,,,,

NSIS 의 단점이라 하면 자기가 알아서 스크립팅 해야합니다.

Nullsoft 에서 저런 프로그램 꽁짜로 줬는데 뭐라 할 수 없죠.

그런데 HM NIS Edit 라는 프로그램이 NIS 확장자 파일을 쉽게 수정할 수 있게 하면서

스크립트 작성 마법사까지 할 수 있게 해주는군요^^

자자 HM NSI Edit 프로그램을 실행 시킨 후에

왼쪽 위에 형광팬으로 노랗게 칠해진 부분을 클릭합니다.

그러면 이게 뜨는데요

이제 끝난 겁니다^^

위의 2개의 프로그램처럼 설치할 파일을 작성한다던지

바로가기는 뭐로 만들거냐, 언인스톨 기능은 사용할꺼냐,, 어쩌구저쩌구 그러는데요

쉽게쉽게 설정해주시면 됩니다^^

설정 후 저장버튼을 누르셔서 원하는 위치에 저장합니다.

그러면 위처럼 저런 파일이 하나 만들어집니다.

마우스 오른쪽 클릭 후 (Compile NSIS script) 를 클릭하시면

MakeNSISW 프로그램이 켜지면서 중얼중얼 하다보면

띠링 소리와 함께 완료됩니다.. 빠르게요,..

이렇게 말이죠!

만약 중얼중얼 영어로 뜨다가 갑자기 Error 가 뜨면

Error 어쩌구 on line (숫자)

이렇게 뜰겁니다.

그러면 on line (숫자) 있는 게 NSI 파일에 (숫자) 번째 줄에 문제가 있다는 겁니다.

그러면 HM NIS Edit 프로그램으로 그 문제가 있는 줄수에 가서

그 줄을 지우던지 고치던지 하시면 됩니다.

성공하셧다면 설치파일을 가지고 놀면 됩니다^^

압축률 : 162MB (169,913,272 바이트) -> 85.2MB (89,366,825 바이트)

(출처 : http://nsis.sourceforge.net/Main_Page)

직접다운로드

출처 사이트에서 다운로드

클릭

HM NSI Edit

제가 아는 인스톨 프로그램은 여기까지 입니다.

이밖에 WINRAR 를 이용해서 만드는 방법도 있는데

이건 단순히 압축을 푸는 방식인 듯 하구요

Install Shield 도 있는데 이건 유료 프로그램이고 위의것보다 훨씬 복잡하다고 합니다.

NSIS 가 무료 프로그램중 압축률이 가장 좋다고 들었는데

파일 확장자가 달라서 그런지 저는 조금 낮게 나왔네요

그래도 저는 NSIS가 좋습니다^^

자신에게 맞는 프로그램을 선택해서 하시면 됩니다^^

블로그 이미지

맨오브파워

한계를 뛰어 넘어서..........

,

Chapter 06. DVD와 DivX

 1. DVD와 DivX

 DivX가 처음 선보였을 당시에 많은 유저들이 DVD와 혼동을 일으키는 웃지 못할 상황이 있었습니다. 그만큼 기존의 VCD에서는 상상할 수 없었던 화질을 보여주었기 때문입니다. 지금도 DivX를 DVD와 동일시하는 경우를 종종 볼 수 있는데, 이는 엄청난 착각입니다.

 DivX 동영상의 화질은 인코딩시 사용한 프로그램이나 작업 방법 등에 따라 달라지기도 하지만, 근본적으로 원본 화질에 가장 큰 영향을 받습니다. 본래 DivX는 동영상을 다루는 코덱일 뿐이므로, 여러 가지 형태의 동영상을 원본으로해서 작업이 가능합니다. 대부분의 DivX들이 화질이 좋은 것은 원본이 화질 좋은 DVD이기 때문이며, 만약 원본이 화질이 좋지 않은 경우라면 DivX코덱을 사용한다고 해서 절대로 화질이 향상되지는 않습니다. 따라서, 최근에는 DivX라고 하면 아예 DVD를 소스로한 동영상을 지칭하는 것으로 해석되고 있습니다.

♣ 대체로 DVD를 소스로한 DivX동영상을 DVDivX 또는 DVDrip 이라고 부르고 있습니다. ♣

 2. DVD의 구성

 DVD는 Audio_ts와 Video_ts의 2개의 폴더로 구성되는 경우가 많지만, 간혹 다른 폴더들이 더 들어있는 경우도 있습니다. 이중 Audio_ts는 DVD AUDIO에서 사용되는 것으로, 본 매뉴얼에서 다루고자하는 동영상 인코딩과는 관련이 없습니다. (흔히 DVD라면 무조건 영화 등의 동영상을 생각하는 경우가 많은데, DVD 중에는 Audio CD처럼 AUDIO 데이터를 수록하고 있는 것들도 있으며, 이것이 DVD AUDIO가 되겠습니다.)

Video_ts 폴더 내부에는 대체로 다음과 같은 파일들이 존재하며, 파일의 수는 DVD별로 다 다름니다. (아래에서는 vts_01 이 주된 영화파일인 경우입니다만, vts_02, 03, 04... 들 중 어느 파일이 주된 영화파일인지는 DVD마다 다릅니다.)

 vts_01_1.vob  :  동영상 파일(VOB=Video Objects), vts_01_0.vob도 있으나,

                       이건 실제 영화와는 무관합니다.

vts_01_0.ifo    :  자막 및 각종 정보 파일

vts_01_0.bup  :  자막 및 각종 정보의 백업파일

video_ts.ifo    :  2차 자막 및 각종 정보 파일

video_ts.bup  :  2차 자막 및 각종 정보의 백업파일

 VOB 파일은 대체로 mpeg2 형식의 비디오 데이터와 AC3 사운드 데이터를 가지고 있으나 일부 DVD의 경우에는 사운드가 DTS, mpeg2 또는 LPCM 형식으로 되어 있는 것들도 있습니다.

영화 DVD의 경우에는 거의 대부분 AC3 형식의 사운드 데이터를 가지고 있으므로 본 매뉴얼에서는 AC3사운드를 기준으로 설명합니다.

 3. VOB 파일의 추출

 대부분의 DVD는 복제 방지가 되어 있어 컴퓨터에서 그냥 카피를 해서는 복사가 되지 않습니다. 또한, 복사를 한다해도 화면이 정상적으로 나오지 않고 완전히 깨진 상태로 나오게 됩니다.

따라서, 우선 VOB 파일을 추출해 하드 디스크에 복사해 놓아야 DivX 인코딩 작업을 진행할 수 있습니다. 이런 추출과정을 Rip 또는 Ripping 이라고 부릅니다.

♣ DVD의 VOB 파일을 하드 디스크에 복사하지 않고도 할 수 있는 방법이 있긴 하지만, 이 또한 복사방지를 깨고 추출해내야 하기 때문에 컴퓨터의 DVD 드라이브가 아닌 AV용의 DVD플레이어로는 인코딩 작업이 불가능합니다. 또한, 파일을 하드에 복사해두지 않고 인코딩 과정에서 DVD로부터 직접 읽는 방법은 추출이 제대로 되지 않는 경우가 많기 때문에 벼로 잘 쓰이지 않습니다. ♣

 1) 사용되는 기반 프로그램들

 ① DeCSS

 DeCSS는 VOB 추출에 사용되는 프로그램으로는 1세대에 속하는 프로그램입니다만, 현재는 다른 좋은 프로그램들이 많이 나와있기 때문에 쓰이지 않습니다.

 ② VOBDec

 현재도 널리 사용되고 있는 프로그램이며, 본래 DOS용 프로그램이지만 이를 윈도우에서 쉽게 사용할 수 있는 GUI(Graphic User Interface) 프로그램(= 일종의 가이드 프로그램임)을 비롯해 수 많은 관련 프로그램들이 개발되어 있습니다.

 ③ vStrip

 DOS용 프로그램이며, 주로 다른 프로그램으로는 추출할 수 없는 multiangle(예; Matrix)이나 seamless branching(예; T-2 UE)방식으로 인코딩된 DVD의 추출에 사용되어 왔습니다만, 최근에는 SmartRipper 같은 프로그램들이 이런 기능을 지원하기 때문에 거의 사용되고 있지 않습니다.

 2) VOB 추출작업

 ① ForceASPI 의 설치(필요할 경우)

 VOB 파일의 추출 작업을 진행하기 이전에 미리 ForceASPI를 설치해 두는 것이 좋습니다.

이것은 Adaptec ASPI layer를 설치하는 것인데, 만약 이것을 설치하지 않는 경우 이 이후의 작업을 진행할 때 ASPI 에러가 발생될 수 있기 때문입니다.

♣ ASPI 에러가 발생한 후에도 설치 가능하지만 미리 미리 설치해 두는 것이 좋을 것 같습니다. ♣

Windows2000이나, XP의 경우 반드시 설치하셔야 합니다. 물론, Windows98SE 및 NT도 지원합니다.

 아래의 주소에서 프로그램을 다운로드 받은 다음 임의의 폴더에 압축을 풀어 놓습니다.

   http://www.doom9.org/Soft21/SupportUtils/forceaspi17.rar

 시작 -> 실행 버튼을 클릭해 INSTASPI.BAT 파일을 실행합니다.


 
 
② SmartRipper의 이용
 
SmartRipper는 VobDec을 기반으로 하고 있는 프로그램이지만, 필요에 따라 DeCSS Plus 알고리즘도 적용할 수 있습니다. 그간 수많은 Ripping 프로그램들이 있어 왔지만, SmartRipper만큼 기능이 다양한 프로그램이 없기 때문에 현재로서는 가장 널리 사용되는 프로그램입니다.
더구나, 최근에 Upgrade된 버전에서는 vStrip에서나 가능했던, multiangle이나, seamless branching 형식의 DVD도 리핑할 수 있게 되었습니다. 또한, AC3 사운드 데이터 또는 DTS 사운드 데이터까지도 영상과 별도로 추출이 가능합니다.
 
DVD 드라이브에 디스크를 넣고, Smart Ripper 프로그램을 실행하면, DVD의 정보를 분석하는 과정 창이 뜹니다. 분석작업이 종료되면, 바로 아래와 같은 프로그램 실행창이 뜹니다.

 
테스트로 삼은 DVD는 seamless branching 형식으로 제작된 Terminator 2(UE)입니다. 위의 그림에서 빨간색 테두리가 쳐진 부분을 보면, 이 DVD에 포함되어 있는 3종류의 동영상이 나타난 것을 볼 수 있습니다. 이중 Title 3가 2시간 34분 29초로 가장 긴 시간을 가지고 있는 영상이 되겠습니다. 3개의 동영상 중 추출하고자 하는 동영상을 클릭합니다.
♣ 인코딩 작업은 시간이 매우 많이 걸리는 작업이기 때문에, 프로그램의 테스트등을 위해 전체 VOB 파일을 다 인코딩해보는 것은 힘듭니다. 이런 경우에는 Chapter 박스와 Cell 박스에 나열되는 항목 중 한 두 개만 체크해 두면, 그 Chapter나 Cell만 추출되므로 몇 분 짜리 VOB 파일을 추출해 인코딩 작업의 테스트용으로 사용할 수 있습니다. 체크된 동영상의 용량이나 시간은 아래쪽 정보란에 표시됩니다. ♣
SmartRipper의 부가적인 기능은 Stream Processing입니다.

 
위의 그림에서처럼 Stream Processing 메뉴를 선택해 "Enable Stream Processing" 박스를 체크하면 DVD에 포함된 비디오, 오디오 및 자막의 정보가 보여집니다.
이중 필요한 것만을 골라 빼낼 수가 있습니다. 즉 필요한 것만을 골라 빼낼 수가 있습니다. 즉 필요한 스트림(예를 들어 비디오와 오디오)을 체크한 다음 오른쪽의 메뉴에서 Direct stream copy를 선택하면 비디오와 오디오가 합쳐진 동영상 파일로, Demux to extra file을 선택하면 비디오와 오디오가 분리된 각각의 파일로 추출이 가능합니다.
실제로 이런 작업은 다른 프로그램으로도 얼마든지 가능하기 때문에, 필자로서는 이 프로그램에서 이런 기능을 사용하길 권하고 싶지는 않습니다. 그러나, DTS 사운드 (그림에서 SDDS로 표시된 것)를 추출할 수 있는 기능은 오로지 이 프로그램만 가능합니다.
♣ DTS 사운드의 추출은 가능하지만, 이 형식의 파일은 용량이 너무 크고 더욱이 현재까지는 일반적인 프로그램을 사용해 MP3로 재 인코딩해 동영상에 병합시킬 방법이 없습니다. ♣
 
선택이 다 끝났으면, "Start" 버튼을 누릅니다.
아래와 같은 작업창이 뜨고, 작업이 진행됩니다. (여기서는 테스트를 위한 것이므로, 한 개의 Chapter만을 추출해 보았습니다.)

 
 
③ DVD Decrypter의 이용
 
VOB를 추출할 수 있는 또 다른 유틸로는 DVD Decrypter가 있습니다. 이 프로그램은 매우 단순한 인터페이스를 갖추고 있어 다루기 편합니다. 또한, 일부 DVD의 경우에는 Smart Ripper로 추출했을 때 자막부분 분석에 문제가 생기는 경우도 있는데, 이럴 때는 이 프로그램을 사용해 보는 것이 좋겠습니다.
 
DVD를 드라이브에 넣은 상태에서 DVD Decrypter를 실행하면, 아래 그림과 같이 파일들이 나타납니다.

 

Edit 메뉴를 선택하면 Main Movie Files 또는 Select All을 선택할 수 있습니다. 기본적으로는 Main Movie가 디폴트로 선택됩니다만, Select All을 선택하는 것이 좋겠습니다.

 

위의 창에 파일들이 선택된 것이 보이면, 그림에서 표시된 부분에 있는 폴더 아이콘을 클릭해, 추출된 파일들이 저장될 위치를 선택합니다. 마지막으로, 부분을 클릭해 파일을 추출/복사합니다.

 ④ vStrip 이용

 ♣ vStrip은 특수하게 제작된 DVD들의 Ripping에 사용되던 프로그램이지만, 최근에 와서는 앞에서 설명한 Smart Ripper도 vStrip과 마찬가지 기능을 가지고 있으므로, 꼭 vStrip 프로그램을 사용할 필요는 없으며, 오히려 Smart Ripper 쪽이 더 편리합니다. 아래의 내용들은 vStrip 프로그램의 사용법을 소개하는 것일 뿐 현재로서는 이 프로그램을 사용해야할 이유는 없습니다. ♣

 일부 DVD들의 경우에는 한 장의 DVD에 여러 가지 동영상 (감독판, 극장판 등등)을 수록하는 경우가 있습니다. 이런 경우 실제로 각 버전의 모든 동영상 데이터를 따로따로 수록하는 것이 아니라 수록된 여러 개의 동영상 stream 들의 조합 순서를 바꾸는 방법을 쓰고 있습니다. (대표적인 예가 Terminator-2 의 스페셜 에디션이 되겠습니다.)

이런 경우는 예전에 사용되던 일반적인 Rip프로그램을 써서는 원하는 버전만을 추출해 내는 것이 불가능합니다. 이때 사용할 수 있는 프로그램이 바로 이 vStrip입니다. 단지, 이 프로그램은 DOS 용이며 더더우기 GUI 프로그램이 아직까지 없기 때문에(사실 있기는 하지만, 다른 프로그램의 GUI와 병합된 형태라 오히려 불편합니다.) 직접 DOS모드에서 명령어를 입력해야 합니다.

 [ 작업 순서 ]

 A. 우선 윈도우의 메모장을 이용해 DVD의 구성에 따라 vob 파일명을 기록한 txt 파일을 만듭니다. 예를 들어, DVD 드라이브가 e: 이고, 추출하고자 하는 VOB 파일들의 이름이 vts_01_1.vob 부터 vts_01_8.vob 까지라면 다음과 같이 VOB파일의 경로와 이름이 포함된 내용의 "test.txt" 라는 문서 파일을 만듭니다.

 

B. 도스창에서 아래의 명령을 입력합니다. (만약, vstrip.exe 프로그램이 "C:\WINDOWS" 폴더에 위치해 있고, DVD 드라이브가 "e:" 라면)

 C:\WINDOWS>vstrip e:\video_ts\vts_01_1.vob -ie:\video_ts\vts_01_0.ifo

 위의 명령어는 DVD의 ifo 파일에 수록된 스트림 조합 정보를 알아내기 위한 것입니다. 이 명령의 실행결과는 다음과 같습니다.

       Parsing "e:\video_ts\vts_01_0.ifo"...

      0. Length: 02:22:04:195 in 122 cell(s).

      1. Length: 02:51:02:193 in 132 cell(s).

      2. Length: 02:53:67:215 in 131 cell(s).

      3. Length: 00:00:00:213 in 1 cell(s).

      4. Length: 00:00:00:213 in 1 cell(s).

      5. Length: 00:00:32:213 in 5 cell(s)....................

 이 내용은 수록된 동영상의 종류가 5가지 임을 보여주며, 그중 0번은 2시간 22분 4초 정도가 되겠습니다. 이들 동영상 중에 하나를 선택합니다. 0번 동영상을 선택했다고 가정하고

 C. 다음의 명령을 입력해 VOB를 추출합니다.

 C:\WINDOWS>vstrip @c:\AAA\test.txt -ie:\video_ts\vts_01_0.ifo -p0 - $1024 -oc:\dvd\test.vob

 이 명령어가 의미하는 바는 다음과 같습니다.

@ : "C:\AAA\" 폴더에 있는 test.txt 파일을 기준으로 작업한다.

-p0 : 앞에서 분석한 동영상 중 0번 동영상을 추출한다.

$1024 : 추출된 파일을 1024 MB마다 나누어 여러개의 VOB 파일로 한다. 이 기능을 이용하면 VOB 파일 자체를 650MB 공CD에 분할 수록하는 것도 가능합니다. (이 기능은 Smart Ripper에서도 설정만 바꿔주면 가능하지만, 용량도 문제고, 자막을 볼 수도 없으므로 거의 무의미합니다.)

test.vob : 추출된 파일을 "C:\dvd\" 폴더에 test.vob라는 이름으로 저장한다. (파일이 여러 개인 경우 자동으로 번호가 추가된다.)

 D. 추출된 vob 파일들의 이름 고치기

 추출 작업이 끝난 후 추출된 VOB 파일들을 보면 test.vob부터 1,2,3.... 번호가 붙어 있을 것입니다. 이 파일들의 이름을 바꿔주지 않으면 인코딩 과정에서 전체 동영상을 한꺼번에 인코딩 할 수 없습니다. 따라서, 파일 이름들을 vts_01_1.vob, vts_01_2.vob, vts_01_3.vob.... 으로 바꿔 주어야 합니다. 당연히 순서대로 해야죠....

 

내용출처 : Hananet Movie Club CINE   DivX Total Manual V4.2


블로그 이미지

맨오브파워

한계를 뛰어 넘어서..........

,

Chapter 05. 오디오(Audio)

 1. 오디오의 형식

 1) AC3 (돌비 디지탈)

 DVD의 표준 사운드 형식으로 2채널(좌/우) 또는 5.1채널(전방 좌/우/센터, 후방 좌/우, 우퍼)을 기본으로 합니다. DivX 동영상에서는 이런 AC3 파일을 2채널 스테레오 형태인 MP3 파일로 다운믹스해서 용량을 줄이는 방법을 사용해 왔습니다. 그러나, 최근에는 사운드 부분을 강화하려는 경향 때문에 AC3 파일을 그대로 DivX 동영상에 적용하는 방법도 사용되고 있습니다.

AC3 파일을 그대로 사용하는 것이 당연히 음질이 좋겠지만, AC3 파일의 5.1채널 분리를 제대로 감상하기 위해서는 5.1채널 디지탈 사운드를 재생할 수 있는 사운드카드와 스피커 시스템이 필요하기 때문에 이런 시스템을 갖추지 않은 대부분의 사용자들에게는 용량만 너무 크게 만드는 격이 될 것입니다.

또한, 고전 영화들의 경우에는 영화 자체가 Mono 또는 2채널 스테레오로 제작된 경우가 많아 DVD도 그런 형식으로 만들어지는 경우가 대부분입니다. 필자의 생각으로는 이런 경우까지 AC3를 적용하는 것은 좋지 않다고 보여집니다. 하지만, 2채널 스테레오인 AC3라 하더라도 MP3로 다운믹스 한 것 보다는 음질이 좋은 것이 사실이기 때문에 음질을 중요시 한다면 AC3를 고려해 볼만 합니다.

가장 큰 문제는 아무래도 용량인데, AC3를 적용하면서도 원본보다 비트레이트를 줄여 사운드 용량을 줄이는 방법도 있으므로 그런 방법을 고려해 보는 것도 좋을 것입니다.

 2) MP3 (Mpeg Layer 3)

 대체로 DivX 동영상에서 표준적으로 사용되는 형식입니다. 예전에는 CBR 형태로 인코딩 되었으나, 최근에는 VBR 형태로 인코딩되는 경우가 많습니다. 주의할 점 하나는 DVD에서 AC3를 다운믹스해 MP3로 만들 때 사운드 볼륨이 너무 작게 되는 경우가 있기 때문에 인코딩 과정에서 이를 보정(normalizing)해 주어야 하는 경우가 많다는 것입니다.

 3) DivX 오디오

 DivX코덱에는 비디오 코덱 이외에 오디오 코덱도 포함되어 있습니다만, 이 오디오 코덱은 용량은 MP3보다 약간 감소시킬 수 있는 반면에 음질도 많이 떨어지고, 비디오와의 싱크부분에도 문제가 생길 가능성이 크므로, 되도록 사용하지 마시기를 권합니다.

 4) WMA 오디오

 이 오디오 형식은 MS에서 개발한 것입니다. 64kbps의 비트레이트에서는 압축률에 비해서 좋은 음질을 들려주기 때문에 MP3보다 더 좋다고도 합니다만, 그 이상의 비트레이트에서는 MP3보다 용량이나 음질면에서 상대적으로 떨어지는 것으로 알려져 있습니다.

이 오디오 형식도 아주 간혹 사용한 예를 볼 수는 있습니다만, 널리 사용되지는 않고 있습니다.

 5) Ogg Vorbis 오디오

 이 형식은 오디오 및 동영상등 멀티미디어 전반에 관한 공개 코덱 개발용 프로젝트인 Ogg 계획의 일환으로 나온 완전 공개 코덱을 사용하는 것입니다. 이런 오디오 파일은 *.ogg 라는 확장자를 갖습니다.

대체로, MP3와 버금가는 압축률과 성능을 지니고 있다고 평가됩니다만 아직은 생소한 형식이고 Sampling Rate도 44100Hz로 제한되어 있어 널리 사용되고 있지는 않습니다.

 2. 오디오의 Sampling Rate

 오디오의 샘플링 레이트는 48000Hz와 44100Hz의 두 가지 종류가 사용되고 있습니다. 샘플링 레이트는 본래 아날로그 데이터인 사운드 데이터를 디지털화하는 과정에서 1초간을 몇 개의 구간으로 쪼개어 디지털화하는가에 따라 달라집니다. 쉽게 말해 48000Hz는 1초의 시간을 48000번 쪼개어 디지털화한 것이라고 보시면 됩니다. 결국 48000 쪽이 44100 보다 음질이 좋을 것입니다.

 1) 44100Hz

 이 형태는 VCD 및 Audio CD에 사용되는 표준입니다. 대체로 인간의 가청한계를 고려했을 때 이 이 상의 샘플링 레이트는 필요없다고 합니다만, DVD에서는 이 형식을 사용하지 않는 것만 보더라도 48000Hz보다 음질이 떨어지리라는 것은 당연하다고 생각합니다.

 2) 48000Hz

 이 형식은 DVD에서 표준적으로 사용되는 방식입니다. 그러나, 구형 및 일부 저가형 사운드카드에서는 48000Hz의 샘플링 레이트를 제대로 재생하지 못하는 경우가 있고 해서 예전의 DivX에서는 44100Hz만을 고집했었으나, 최근에는 동영상과의 싱크 문제가 발생하는 경우도 있고 해서 48000Hz 그대로 인코딩하는 경우가 더 많은 것 같습니다.

 

내용출처 : Hananet Movie Club CINE   DivX Total Manual V4.2

블로그 이미지

맨오브파워

한계를 뛰어 넘어서..........

,

Chapter 04. DivX 인코딩과 Deinterlacing / IVTC

♣ 앞에서는 DVD의 일반적인 제작/재생 과정에서의 Telecine, Deinterlacing, IVTC 등에 대해 다루었다면,
 지금부터는 DivX 인코딩 작업에서의 Deinterlacing과 IVTC에 대한 기본 원리를 설명합니다. ♣

 1. IVTC와 Deinterlacing 중에서 어떤 것을 선택하는가?

 동영상은 다양한 원본을 이용해 만들어질 수 있습니다. DivX인코딩시 소스로 주로 사용되는 DVD도 그 형식이나 DVD제작시 사용된 소스 및 제작 방식이 천차 만별입니다.

본래는 영화 필름을 원본으로해서 Progressive 방식으로 제작되어야 정상이겠으나, 국내에 유통되는 DVD들 중에는 원본이 도대체 무엇인지조차 가늠하기 힘들 정도로 화질이 조악한 경우도 간혹 있습니다. 또한, 인코딩시 사용되는 프로그램들에 나타나는 정보와 실제 형식이 다른 경우까지도 있습니다. 따라서, 아래에 설명되는 방법들은 어디까지나 기본적인 사항일 뿐 그 활용에 있어서는 많은 변수가 있다고 하겠습니다.

 1) 필름을 소스로 만든 Progressive 형식의 원본인 경우

 ① Progressive NTSC 29.97 fps -> NTSC 23.976 fps

 이 경우에는 원본이 24 fps의 필름으로부터 Telecine 작업을 거쳐 29.97 fps로 만들어진 것이므로, IVTC만 적용하면 24 fps의 원본 필름 상태로 되돌려지게 됩니다. (23.976 fps와 24 fps는 실제로는 같습니다.)

 ② Progressive PAL 25 fps -> PAL 25 fps

 이런 경우는 원본 자체가 24 fps를 25 fps로 속도만 약간 빨리해 만든 것이기 때문에 IVTC 및 Deinterlacing 조작이 전혀 필요 없습니다.

 2) 카메라 촬영 동영상 등의 Interlaced 된 소스로 만든 형식의 원본 경우

 ① Interlaced NTSC 29.97 fps -> NTSC 29.97 fps

 이런 경우에는 원본 자체가 프로그래시브 형식이 아니기 때문에 IVTC로는 잔상을 제거할 수 없습니다. 따라서, Deinterlacing 조작을 통해 잔상을 제거한 프로그래시브 형식으로 바꿀 수 있습니다.

 ② Interlaced NTSC 29.97 fps -> NTSC 23.946 fps

 이렇게 만들려면, Deinterlacing과 IVTC를 둘다 적용해야 합니다만 본래의 IVTC와는 달리 불필요하게 추가된 프레임을 빼내는 것이 아니라 당연히 있어야 정상인 프레임을 빼내게 되기 때문에, 동작이 부자연스러워지는 등의 문제가 발생하기 쉽습니다. 따라서, 별로 바람직하지 않습니다.

 ③ Interlaced PAL 25 fps -> PAL 25 fps

 이런 경우에는 Deinterlacing 작업만 적용하면 됩니다.

 2. IVTC의 방법

 DivX 동영상 인코딩에 관련한 프로그램은 매우 많으므로, IVTC 작업을 수행할 수 있는 방법도 매우 다양합니다. IVTC의 근본적인 원리는 같다고 할 수 있으나, 프로그램별로 작업을 진행하는 알고리즘이나 그 능력이 다 다르므로 작업의 결과는 차이가 있습니다.

또한, 원본 동영상의 상태나 작업시 설정내용 등에 따라 결과물의 질이 달라지기 때문에 어떠한 방법이 가장 좋다고는 말할 수 없습니다.

널리 사용되는 IVTC 방법들은 다음과 같습니다.

 1) DVD2AVI의 Forced Film

 DVD2AVI는 동영상 인코딩 프로그램으로서, 예전에는 이를 이용해 직접 인코딩을 했었으나 인코딩 속도가 너무 느린 관계로 최근에는 보조적인 프로그램으로만 주로 사용되고 있습니다.

이 프로그램의 선택항목 중 Forced Film을 선택하면 IVTC 작업을 수행하게 되며, 가장 널리 사용되는 방법이기도 합니다.

 2) TMPGEnc를 이용한 IVTC

 TMPGEnc는 동영상 인코딩 프로그램이지만, 아주 강력한 IVTC 필터를 자체적으로 가지고 있습니다. 이를 이용해 IVTC 작업을 진행할 수 있습니다.

이 프로그램을 사용하는 잇점은 DVD2AVI와는 달리 수동적인 분석이나 조정이 가능하다는 것입니다만, 작업에 시간이 많이 소요되는 단점이 있습니다.

 3) VirtualDub 또는 NanDub의 IVTC 필터 사용

 동영상 인코딩 및 편집에 사용되는 VirtualDub 또는 NanDub 프로그램에 적용할 수 있는 IVTC 필터들이 개발되어 있습니다. 이를 이용해도 IVTC 작업을 진행할 수 있습니다. 하지만 널리 사용되지는 않는 방법입니다.

 4) AVISynth용 IVTC 플러그인의 사용

 AVISynth는 동영상 인코딩시 보조 프로그램으로 사용되며, 이 프로그램에 적용되는 IVTC 플러그인이 개발되어 있습니다. 이를 사용한 IVTC 방법도 최근에 점점 사용이 늘고 있는 추세입니다.

 5) FlaskMpeg을 사용하는 방법

 FlaskMpeg은 사용이 쉬워 초보자들이 많이 사용하는 프로그램으로, 이 프로그램의 설정항목 중에도 프레임수를 바꾸어 인코딩할 수 있는 일종의  IVTC 기능이 있습니다.

 3. Deinterlacing 방법

 Deinterlacing 방법은 IVTC와 마찬가지로 위에서 설명된 모든 프로그램이 공통적으로 가지고 있는 기능입니다. 하지만, DVD2AVI나 TMPGEnc의 Deinterlacing 기능은 거의 사용되지 않고 있습니다.

 내용출처 : Hananet Movie Club CINE   DivX Total Manual V4.2


'멀티미디어 > 일반 자료' 카테고리의 다른 글

Chapter 06. DVD와 DivX  (0) 2009.03.18
Chapter 05. 오디오(Audio)  (0) 2009.03.18
Chapter 03. Telecine & IVTC  (0) 2009.03.18
Chapter 02. 동영상의 압축원리  (0) 2009.03.18
Chapter 01. 프레임(Frame)  (0) 2009.03.18
블로그 이미지

맨오브파워

한계를 뛰어 넘어서..........

,

Chapter 03. Telecine & IVTC

 ♣ 이 부분의 내용은 매우 복잡하게 생각되실 수도 있습니다만, 그리 복잡한 것은 아닙니다. 또한, 이 부분의 이해가 선행되지 않고는 깨끗한 동영상을 만들어내기 어렵습니다. ♣

 1. 개요

 1) Telecine

 영화 필름을 VHS, VCD, DVD 등의 매체용 동영상으로 변환하는 과정을 Telecine 라고 합니다.

보통 Telecine 라고 하면 24 fps 인 영화 영상을 30 fps(29.97 fps)로 프레임수를 늘리는 것을 지칭하는 말로 사용되고도 있으나, 엄밀하게는 프레임수를 늘리는 것을 뜻하는 것은 아닙니다.

하지만, 우리나라나 미국에서 사용되는 NTSC방식의 표준 프레임수가 30 fps 이기 때문에 영화의 24 fps 와는 맞지 않고, 따라서 Telecine 과정에서는 프레임수의 증가 작업이 수반되어야 하는 것은 당연하다 하겠습니다.

 2) Interlacing 과 Progressive 모드

 우리가 접하는 일반적인 TV의 화면은 Interlacing 방식으로 화면을 보여줍니다. Interlacing 방식이란 화면 주사선이 왼쪽 맨 위의 픽셀에서부터 오른쪽으로 주사를 해 갈 때 수평 라인들을 한 줄 씩 건너 뛰어 가면서 주사하는 방식을 말합니다. (비월주사 방식이라 합니다.)

TV 화면과는 달리 컴퓨터의 모니터는 Progressive 방식을 사용합니다. (일부 허접한 모니터들을 제외하고...) 프로그레시브 방식은 수평 라인을 한칸씩 건너뛰지 않고 매 라인을 주사하는 방식입니다. (순차주사방식이라 합니다.)

이를 그림으로 표현하자면 아래와 같습니다.

그림에서 보는 것처럼 Interlacing 방식은 화면의 수평 라인 중 홀수 라인을 먼저 주사한 다음 다시 짝수 라인을 주사하는 방식으로 하나의 화면을 이루게 되기 때문에, 결국 하나의 화면이 2개의 필드로 구성되어지게 됩니다. 프로그레시브 방식은 매 수평 라인을 차례로 주사하기 때문에 필드라는 개념 자체가 없습니다.
 
3) 방송 방식 (NTSC, PAL, SECAM)
 
DVD, VHS, VCD 등은 모두 TV를 통해 시청하는 것을 기본으로 제작되고 있습니다. 또한, TV의 방식 자체가 각 국가별로 다르기 때문에 DVD 등도 판매국가에 따라 그 방식이 상이하기 때문에 TV 방송 방식에 대해서 약간의 이해는 필요합니다.
 
① NTSC
 
NTSC는 미국의 National Television System Committee의 약자로서 1953년 12월에 제정된 컬러TV 방송방식의 명칭으로도 사용됩니다. 수평 주사선은 525 라인이지만, 이중 487 라인만 실제 화면에 사용되며 나머지는 기타 정보를 담게 됩니다. NTSC방식은 흑백 TV와의 양립성을 유지하기 위해 휘도 신호에 색정보를 사람의 시각에 맞춰 교묘히 삽입함과 동시에 전송하는 것으로서 회로가 간단하여 TV수상기 가격이 저렴한 이점이 있습니다. NTSC방식의 특색은 인간의 눈이 미소면적에 대해서는 색체를 거의 느끼지 못하는 점을 이용하여, 비교적 큰 면적의 신호(약 500KHz)는 3원색을 충실히 전송하고, 중면적의 신호(500kHz ~ 1.5MHz)에 대해서는 색채의 포화도를 낮게, 휘도(輝度)는 정확히 전송하며, 미소면적의 신호(1.5MHz 이상)에 대해서는 휘도 신호만을 전송하는 생략법을 실시하고 있는 점인데, 이에 따른 재현(再現) 화상의 색채상의 불편은 일어나지 않는다고 합니다만, 색채가 정밀하게 제대로 표현되지 않는 것은 사실입니다.
♣ 단순히 말한다면, NTSC는 색상부분을 대충 표현함으로써 데이터량을 줄였다고 보시면 됩니다.
 
그러나 NTSC방식은 고도의 대역압축을 위해서 전송회로의 고성능이 요구되므로 이것의 개량형으로서, 독인은 PAL(Phase Alternation Line) 방식을 제안하였으며 프랑스는 SECAM(Squential Couleur Memoire) 방식을 제안하였습니다. 수차례에 걸친 국제회의에서 컬러 텔레비전 표준방식의 국제적 통일이 계획되었으나 실현되지 못하고, 1967년 가을부터 독일, 영국은 PAL방식, 프랑스,소련은 SECAM방식으로 컬러텔레비전 방송을 개시하였습니다.
 
② PAL
 
PALPhase Alternation by Line의 약자로서 독일에서 개발된 컬러TV 방송방식입니다.
NTSC방식과 비슷하지만 색(色)신호를 취급하는 방법에 차이가 있으며, NTSC방식에 비해 신호전송계에 따른 색변형이 적고 방송설비에 고도의 규격이 필요없다는 이점이 있습니다. 그리고 초당 25프레임을 갖는 방송방식으로 NTSC(초당 30프레임)보다 프레임에서 뒤지지만 수평 주사선이 625라인(이중 576 라인만 실제 화면에 사용됨)으로 더 많고 더 높은 대역폭을 사용하기 때문에 해상도가 높습니다. 하지만, 수상기가 NTSC방식에 비해 다소 비쌉니다.
 
③ SECAM
 
SECAMSEquential Couleur A Memoire의 약자로서 프랑스가 개발한 컬러TV방식입니다.
이 방식의 특징은 2가지 색도신호를 NTSC 및 PAL방식의 경우과 같이 동시에 보내지 않고 연속적으로 보내는 것입니다. 즉, 휘도신호를 1 Field 보내고, 색차신호를 1 Field 보내 1 Frame을 구성합니다. 그로 인해, 송신장치나 수상기의 회로가 복잡하여 TV수상기 가격이 가장 비싸고 시청범위가 좁다는 결함이 있으며 흑백 TV로서는 전혀 시청할 수 없다는 결점이 있습니다. 수평 주사선은 625라인으로 PAL방식과 동일합니다.
 
④ 각 방식별 사용국가

 
2. NTSC와 PAL에서의 Telecine
 
1) 3:2 Pulldown (NTSC)
 
DVD는 기본적으로 TV로 감상하는 것을 생각해 제작됩니다. 또한, NTSC방식의 TV는 기본적으로 30 fps의 프레임레이트를 가집니다. 여기에는 가정용 전기의 표준 주파수가 60Hz 라는 데 근본적인 이유가 있습니다.
TV는 Interlace 방식으로 화면을 주사하므로 화면의 수평 라인 중 홀수 라인과 짝수 라인을 각각 주사해야 하나의 화면이 만들어집니다. 결국 하나의 화면이 2개의 필드로 나뉘어지게 되며, 필드의 주사 주기가 60Hz(초당 60회)가 되므로 온전한 화면의 frame rate는 30 fps가 되게 됩니다.
흑백 TV 시대에는 30 fps가 표준으로 사용되었으나, 컬러 TV로 넘어오면서 여러 가지 기술적 문제로 인해 프레임 레이트가 약간 줄어들어 30 fps가 아닌 29.97 fps로 바뀌게 되었습니다. 그러나, 그 본질은 30 fps와 동일하다 하겠습니다.
 
영화 필름은 24 fps의 프레임 레이트를 가지며, TV는 30 fps 이므로, 영화 필름을 TV용 동영상으로 바꾸기 위해서는 프레임 수를 늘려주어야 합니다. 이런 프레임수 증가를 위해 사용되는 방법이 3:2 Pulldown입니다.
 

영화 필름 중 4개의 화면을 기준으로 설명하자면 아래와 같은 원리입니다.

위의 그림에서 보듯이, 우선 영화 필름 4 프레임을 10개의 필드로 분할합니다. 이때 T는 Top Field를 B는 Bottom Field를 뜻합니다. Tr 또는 Br은 Top 또는 Bottom Field가 다시 한번 반복되는 것을 뜻하는 데 이는 프레임수를 늘리기 위한 것으로 실제 필드가 삽입되는 것은 아니고, 필드의 반복에 대한 순서 정보만 입력될 뿐입니다.
또한, Top Field가 아닌 Bottom Field가 먼저 나오는 경우가 있는 이유는 필드의 순서는 반드시 Top과 Bottom이 반복되어야 하기 때문에, 앞 프레임의 필드가 Top으로 끝난 경우에는 그 다음 프레임의 처음 필드는 Bottom Field가 되는 것입니다.
그림에서 보듯이 각각의 프레임을 3개, 2개, 3개, 2개의 순서로 필드로 쪼개어 5프레임을 만들기 때문에 3:2 Pulldown 이라고 부릅니다. (필드의 분해 순서에 따라서는 2개, 3개, 2개, 3개... 식으로 할 수도 있기 때문에 2:3 Pulldown 이라 불리기도 합니다.)
 
이 과정에서 가장 문제가 되는 것은 그림에서 빨간색 박스 안에 있는 2개의 프레임입니다. 이것들은 원본과는 다른 상태 즉, 원본 중 2개의 프레임이 섞여 있는 상태가 됩니다.
이런 프레임은 Interlace 방식으로 주사되는 TV화면에서는 별 문제가 되지 않지만, Progressive 방식으로 주사되는 PC 모니터 화면에서는 2 화면이 겹쳐진 듯이 보여지기 때문에 잔상이 생기는 등의 문제가 발생됩니다. 따라서, PC상에서 구동되는 DVD 재생 프로그램들은 이런 잔상을 없애기 위한 기능들을 가지고 있습니다.
 
2) 2:2 Pulldown (PAL)
 
PAL방식은 25 fps 의 프레임 레이트를 갖습니다. 따라서, 영화 필름의 24 fps와 큰 차이가 나지 않기 때문에 NTSC에서처럼 억지로 프레임수를 늘리는 방식은 사용되지 않습니다.
단순히 1프레임을 2개의 필드로 나누고, 이를 다시 합해 하나의 프레임을 형성하는 방법이 사용됩니다. 결국 추가되는 프레임이 없으므로 영화 필름의 24 fps를 TV에서는 25 fps로 재생하는 꼴이 되기 때문에 원본 보다는 동영상의 재생 속도가 4% 정도 빨라지게 됩니다. 이는 120분짜리 영화를 기준으로 했을 때 PAL방식에서는 115분 정도의 재생시간이 되는 격입니다.
이렇게 동영상의 재생속도가 빨라지면 사운드와의 싱크가 맞지 않게 되는데 이런 현상은 사운드의 재생속도를 4% 증가시켜(피치를 높여) 보정하고 있습니다.
 
비록 재생속도는 원래의 영상과 약간 차이가 나지만 PAL방식에는 억지로 끼워넣은 프레임이 없기 때문에 원본에 충실한 화면을 얻을 수 있게 됩니다. DivX 인코딩이라는 측면에서 본다면 NTSC방식의 소스보다는 PAL방식 쪽이 훨씬 좋다고 하겠습니다.
 
3. IVTC (Inverse Telecine)
 
앞서 설명한 것처럼 영화 필름을 Telecine 했다면, 이렇게 Telecine 된 동영상을 본래의 상태(즉, 24 fps 상태)로 되돌리는 과정을 inverse telecine 라 합니다.
DivX는 본래 PC 모니터 상에서 재생되는 것을 기본으로 하며, 따라서, Progressive 방식의 출력을 기본으로 합니다. 따라서, DivX 인코딩에서는 원본 영화 필름처럼 완전한 화면으로 되돌리는 과정이 필요합니다.
그러나, 이 IVTC 과정은 VHS, VCD, DVD 등의 동영상을 영사 가능한 필름 상태로 다시 만드는 과정은 아닙니다. VHS 등의 동영상을 필름으로 옮기는 작업은 키네스코프(Kinescope)라 합니다. (키네스코프를 보통 키네르코 또는 키네코라고 부릅니다.)
 
4. Deinterlacing
 
DVD에 수록된 mpeg2 동영상은 기본적으로 TV의 Interlacing 모드 출력을 목적으로 하지만, 실제로는 PC 모니터를 비롯한 Progressive 모드에서도 재생이 가능하도록 하는 어정쩡한 형태를 취하고 있습니다. Interlacing 형식으로 제작된 DVD를 PC 환경에서 재생하기 위해서는 Interlacing 형식으로 된 것을 Progressive 형식으로 바꾸는 조작이 필요하며, 2개의 필드로 나뉘어 저장되어 있는 하나의 화면을 모니터로 출력하기 직전에 합쳐서 하나의 화면으로 뿌려주게 되는데 이를 Deinterlacing 이라 합니다. DVD를 재생할 때 적용되는 Deinterlacing 에는 대체로 2가지 방법이 주로 사용됩니다. 물론, 이런 방법들은 WinDVD, PowerDVD 같은 재생 프로그램들을 구동할 때 옵션으로 선택해 줄 수 있습니다.
 
1) Weave
 
이 방법은 2개로 나뉘어진 필드를 하나로 묶어주는 방법입니다. 즉, Top 필드 사이사이에 Bottom 필드를 끼워넣어 하나의 완전한 화면을 만드는 방식입니다.
가장 상식적인 방법이긴 하지만, 한 가지 문제점이 있습니다. 즉, DVD의 원본 소스 자체가 Progressive 형태(영화 필름)인 경우에는 이 방법이 화질이 좋지만, 일부 DVD는 원본 소스 자체가 Progressive 가 아닌 Interlaced 형식(방송용 동영상)인 경우가 있습니다. 이런 경우에는 움직임이 없는 영상일 때는 문제가 없지만 움직임이 많은 동영상의 경우에는 수평방향으로 미세한 흰색 줄모양의 잔상이 나타나 화면이 좋지 못하게 됩니다.(이런 현상을 motion artifacts 라 합니다.)
 
2) BOB (Line Doubling)
 
Weave 방식의 motion artifacts 문제점을 해결하기 위해서 고안한 방법이 BOB 방식으로 각 필드의 화면을 수직으로 2배로 확대한 후 (Line Doubling) 그대로 재생합니다. 이렇게 되면 실제로는 30 fps가 아닌 60 fps 가 되는 꼴이며, 화면 사이사이에 보이는 투명한 가로줄이 나타나는 현상은 피할 수 있지만 엄밀히 말해 수직해상도가 반으로 줄어들게 되는 것입니다. 그러나, 해상도가 낮은 일반 TV에서는 그 해상도의 차이가 미세하기 때문에 감상하는 데 큰 무리가 없으며, PC 모니터에서도 눈에 거슬릴 정도의 화질 저하는 없습니다. 하지만, Weave 방식보다는 화질이 저하되는 것은 당연합니다. BOB 기능이 좋은 경우에는 line doubler는 위아래 라인을 합성한 새로운 라인을 만들기 위해 interpolation을 이용하기도 합니다.
 
3) Field adaptive deinterlacing
 
이 방법은 3개 이상의 필드에 걸쳐있는 각각의 픽셀을 검색하여 선택적으로 그림의 특정 부분을 BOB 또는 Weave 합니다. 이 방법은 고가의 고성능 DVD 시스템에서 제공되는 기능으로, DivX 인코딩 작업에 사용되는 프로그램 중에도 이런 기능을 가지고 있는 것이 있기는 합니다만 제대로 된 기능은 발휘하지 못합니다.
 
4) Motion adaptive deinterlacing
 
이 방법은 MPEG-2 모션 벡터(motion vector)를 검색하고 움직이는 물체의 대규모 이미지 프로세싱을 통하여 그림의 특정 부분을 BOB 또는 Weave 합니다. 이런 기능을 제공하는 DVD 시스템은 엄청난 고가격대의 것들입니다. 물론, DivX 인코딩 과정 중에 사용되는 프로그램들도 이런 기능을 가지고 있는 것도 있습니다. 하지만, 역시 만족할만한 수준은 절대 아닙니다.
 

내용출처 : Hananet Movie Club CINE   DivX Total Manual V4.2

블로그 이미지

맨오브파워

한계를 뛰어 넘어서..........

,

Chapter 02. 동영상의 압축원리

 1. 압축방식

 동영상도 어차피 "연속적인 그림"이라고 볼 수 있는데, 이를 압축하지 않는다면 1분 정도의 동영상을 저장하면 그 용량이 1GB 정도가 될 것입니다. 따라서, 동영상은 필수적으로 압축과정을 거칠 수 밖에 없습니다.

 1) 비손실 압축과 손실 압축

 압축방식에는 비손실 압축과 손실 압축이 있습니다.

비손실 압축이란, 프로그램이나 데이터등의 압축에 사용되는 zip, rar 등등의 압축방식이 있으며 원본 그대로를 압축하기 때문에 압축을 풀면 원본에서 전혀 손상되지 않은 데이터를 그대로 복원하게 됩니다.

손실 압축이란 압축되지 않은 그림 파일인 BMP파일을 JPG로 압축하는 경우를 생각하시면 되겠습니다. 이런 형태의 압축은 원본의 일부분을 변경하는 식으로 압축이 이루어지는 것이기 때문에 절대 원본과 똑같이 되돌릴 수 없습니다. 간혹, RM파일같이 압축률은 매우 높지만 화질은 떨어지는 동영상을 mpeg등의 형태로 바꾸면 화질이 좋아지지 않을까 생각하는 초보분들을 보는데 RM 파일 자체가 이미 손실 압축된 상태이기 때문에 이를 mpeg으로 만든다고 해도 용량만 커질 뿐 화질을 더 좋게 만들 수는 없는 것입니다.(물론, 이런 변환과정에서 화질 향상을 위해 여러 가지 필터들을 적용해서 약간의 효과를 볼 수는 있지만, 화질 좋은 원본을 압축한 것과는 비교할 수 없는 수준입니다.)

 2) 공간적 압축과 시간적 압축

 그림 파일의 압축에서 사용하는 압축원리는 몇 개의 유사한 색깔을 띄는 점들을 묶어 평균적인 색깔을 띄는 블록으로 바꾸는 경우가 주로 사용되는데 이런 압축방식을 공간적 압축이라고 합니다.

동영상의 압축에서는 이런 공간적 압축은 물론이고, 시간적인 압축 방식도 사용되는데, 키프레임(Key Frame)과 델타 프레임(Delta Frame)을 이용하는 방법을 쓰고 있습니다.

 3) 키 프레임(Key Frame)과 델타 프레임(Delta Frame)

 앞서 설명한 바와 같이 디지털 동영상의 경우에는 공간적 압축에 부가해 시간적 압축도 사용하는데, 그 원리가 Key Frame과 Delta Frame입니다.

 

시간적으로 압축되지 않은 동영상
 
위의 그림은 시간적으로 압축되지 않은 동영상을 보여줍니다. 5개의 프레임이 모두 완전한 그림임을 볼 수 있습니다.

 

시간적으로 압축된 동영상
 
그러나 위의 그림처럼 시간적으로 압축된 동영상의 경우는 ①번과 ⑤번만 완전한 그림이고 2,3,4번은 완전하지 않은 그림임을 볼 수 있습니다.
이때 ①번과 ⑤번처럼 완전한 그림은 Key Frame이며, 2,3,4번처럼 완전하지 않은 그림은 Delta Frame이 되는 것입니다. 이 델타 프레임은 키 프레임에서 변경된 부분의 정보만을 담고 있는 것이며, 5번째에는 1번에서 변경된 정보의 양이 너무 많아 완전한 화면이 되었고, 결국 다시 키프레임이 된 것입니다.
이렇게 연속되는 프레임들을 키 프레임과 델타 프레임으로 나누게 되면, 모든 프레임을 완전한 프레임으로 만드는 방식보다는 훨씬 용량을 줄일 수 있습니다. 이런 압축방식을 시간적 압축이라고 합니다.
DivX를 비롯해 mpeg등의 동영상은 모두 이런 시간적 압축방식을 채택하고 있는데, 여기에는 몇가지 문제점이 있습니다. 대표적인 것은, 동영상중 일부분을 끊어내거나 특정 위치로 바로 이동해 재생하는 등의 조작을 할 때 반드시 키 프레임이 있어야 델타 프레임의 재생이 가능한 것입니다. 만약, 키 프레임이 없는 상태의 델타 프레임만 있다면 이때에는 기준은 없고 기준에서 변화된 부분에 대한 데이터만 있는 것이라서 재생이 제대로 되지 못합니다.
결론적으로 DivX를 비롯한 동영상의 편집시에는 반드시 키프레임에서 끊고, 이어야 제대로 된 파일이 만들어지게 되는 것입니다.
 
4) VKI(Variable Key Frame Interval)
 
동영상 인코딩시 키 프레임은 델타 프레임보다 많은 용량을 가지게 됩니다. 따라서, 키 프레임의 수를 줄이는 것은 용량을 줄이는 효과가 있습니다.
대체로, 키 프레임은 일정한 간격으로 들어가도록 인코딩되는 경우가 일반적이지만, 동영상은 다양한 장면들을 담고 있기 때문에 이런 방법이 비효율적인 경우가 많습니다.
배경이나 동작의 변화가 아주 적은 장면이 지속되는 부분에서 쓸데없이 키 프레임이 많이 들어가는 것은 용량의 낭비일 뿐이며, 동작의 변화가 심한 장면에서 키 프레임을 일정한 간격으로 넣게 되면 키 프레임보다 오히려 델타 프레임의 크기가 더 커지는 상태가 됩니다.
따라서, 동작 변화가 심한 부분은 키 프레임을 보다 자주 넣고 동작 변화가 적은 부분에서는 키 프레임을 가끔씩 넣는 식으로 키 프레임의 간격을 가변적으로 하면 용량을 줄일 수 있는 효율적인 방법이 될 것이며, 이런 방식을 VKI(Variable Key Frame Interval)이라고 합니다.
 
본래 DivX 3.11a 코덱에서는 일정한 시간간격으로 키프레임을 넣도록 만들어져 있으나, 이것을 개량해 자동적으로 키 프레임을 변화시킬 수 있는 형태로 변경한 코덱이 개발되었으며 DivX VKI patch 또는 DivX 3.20 코덱으로 알려져 있는 것입니다.
현재 널리 사용되고 있는 SBC 인코딩 방법에서는 DivX 3.20 코덱을 쓰지 않고 DivX 3.11a를 그대로 사용하면서 보다 향상된 VKI 기능을 적용할 수 있습니다.
또한, DivX 4.x 코덱은 자체적으로 VKI 기능을 내장하고 있습니다.
 
2. 코덱(Codec)
 
1) 코덱이란?
 
아마도, 동영상과 관련해 가장 많이 듣게 되는 말이 "코덱(Codec)"일 것입니다. 초보분들의 경우에는 도대체 코덱이 뭔가 대단히 궁금해 하시는 분들이 많은데, 이는 동영상의 압축/복원 방식 또는 프로그램을 말합니다.
동영상은 필수적으로 압축과정을 거칠 수 밖에 없으며, 이렇게 압축된 데이터를 복원하는(압축을 푸는) 과정이 있어야 재생이 가능한 것입니다. 코덱(CODEC)은 이런 압축(COmpress)과 복원(DECompress)이라는 단어의 합성어입니다. 그런데, 이런 압축 방법 또는 프로그램들이 워낙 다양하다보니 수많은 코덱들이 생겨나게 되었으며, 지금 이 시간에도 어디선가는 새로운 코덱이 개발되고 있을 것입니다.
 
자물쇠는 그 자물쇠에 맞는 열쇠로 열어야 하듯이, A라는 코덱으로 만들어진 동영상은 A라는 코덱이 컴퓨터에 설치되어 있어야 재생이 가능한 것입니다.
 
2) DivX;-) 코덱은?
 
DIVX는 본래 대여용 동영상 매체에 관한 프로젝트였습니다만, 이는 그 프로젝트 자체가 없어져 버렸기 때문에 완전히 사장된 것입니다.
현재의 DivX;-) 코덱은 처음의 DIVX와는 이름만 같은 뿐 아무런 연관성이 없습니다. 이 코덱은 Microsoft社 (이하 MS로 씁니다.)의 mpeg4 코덱을 몇 명의 해커들이 해킹해 만들어낸 것으로 기본적으로는 MS의 mpeg4 코덱과 완전히 같습니다.
♣ Mpeg4는 실제로는 동영상 관련 기술 표준을 의미합니다만, 대체로 Mpeg4라면 MS의 코덱을 지칭하는 것으로 쓰이고 있습니다. ♣
이 DivX;-) 코덱은 압축률이 워낙 뛰어나기 때문에 현재 일반적으로 사용되는 영상매체로는 가장 화질이 뛰어나다는 DVD를 이 코덱을 사용해 재 압축하면 원본보다 화질은 약간 떨어지지만 용량을 대폭 줄일 수 있는 이점이 있어 각광을 받기 시작했습니다.
몇 차례의 버전업을 거친 후 마지막으로 릴리즈(release)된 버전이 DivX;-) 3.11 alpha 코덱입니다. (2001년 현재)
이 코덱은 Low motion과 Fast motion 이라는 두 개의 코덱이 한 세트를 이루고 있는 형태입니다. 이중에서 Low motion 코덱은 대체로 느린 동영상에 적합하고, Fast motion은 빠른 동영상에 적합하다고 하지만, 실제로는 Fast motion의 경우 화질에 문제가 있어 거의 사용되지 않습니다.
그 이후로는 Project Mayo 라는 새로운 팀을 조직해 MS의 mpeg4 코덱을 기반으로 한 것이 아닌 독자적인 코덱의 개발을 진행하고 있는데, 새로 개발될 코덱의 이름은 DivX DUEX로 알려져 있었습니다. 이 개발과정의 일환으로 중간단계의 시험용 코덱들이 지속적으로 공개되었는데 이 코덱들은 소스코드까지 공개되기 때문에 Open DivX코덱으로 불립니다.
Open DivX 코덱 이외에도 3ivX 코덱, Angelpotion 코덱, Kristal 코덱 등등의 수많은 mpeg4 코덱들이 나오고 있으며, 최근에 Project Mayo 그룹에서 개발한 DivX 4.x 코덱이 나왔습니다.
한가지 아쉬운 점은 예전의 Open DivX 코덱과 달리 DivX 4.x 코덱은 소스코드가 공개되지 않았으며, 일부 시스템 또는 동영상 관련 프로그램 등과 문제가 발생하는 경우가 있는 것으로 알려져 있습니다. 따라서, 어떠한 코덱도 완벽이란 없다고 할 수 있겠습니다.
 
3. 비트 레이트(Bit Rate)
 
비디오 및 오디오의 품질에 가장 큰 영향을 주는 것은 bit rate입니다. 이것은 비디오나 오디오를 인코딩할 때 사용되는 데이터의 양(kb/s)을 말하며, 이 수치가 높을수록 질은 좋아지나 용량은 급증하게 됩니다.
물론, 앞서 설명한 바와 같이 화면크기도 용량에 영향을 주지만, 비트레이트가 훨씬 더 큰 영향을 미치기 때문에 결국 DivX의 화질과 용량은 거의 이것에 의해 좌우된다해도 과언이 아닙니다.
 
1) CBR(Constant Bit Rate)
 
이것은 말 그대로 고정된 bit rate를 적용하는 경우입니다. 가장 대표적인 예가 MP3 오디오에서 볼 수 있는 128kb/s 또는 160kb/s 같은 형태입니다. 이렇게 고정된 bit rate를 사용하는 경우에는 재생시 안정적이긴 하지만, 별로 데이터가 많이 필요 없는 부분에서는 데이터의 낭비가 일어나고 데이터가 많이 필요한 부분에서는 질이 떨어지는 문제가 있습니다.
일반 VCD에서 사용하는 mpeg 형식의 동영상은 1150kb/s의 CBR 형태로 되어 있습니다. 하지만, DivX;-) 3.x 및 DivX 4.x 코덱은 CBR이 아닌 VBR 방식을 사용하고 있습니다.
 
2) VBR(Variable Bit Rate)
 
이것은 CBR의 단점을 개선하기 위한 방안으로 나온 것으로 비디오나 오디오 데이터의 부분마다 필요한 데이터량이 적어도 될 부분은 비트레이트를 줄이고, 데이터량이 많이 필요한 부분에서는 비트레이트를 늘리는 방식으로 가변적인 비트레이트를 사용하는 형식입니다. 비디오를 예로 들자면, 빠른 동작에서는 비트레이트를 크게하고 느린 동작에서는 비트레이트를 줄이는 식입니다.
DivX 코덱은 기본적으로 VBR 형식으로 되어 있기 때문에 CBR 형태인 VCD보다 용량을 줄일 수 있는 것입니다.
♣ 최근에는 DivX 4.x 코덱을 사용한 인코딩 방법 중에 2pass VBR 이라는 방법이 있기 때문에 DivX 4.x 코덱을 사용한 경우에 VBR 이란 말을 붙이는 경우가 많습니다만, 본래 모든 DivX 코덱은 다 VBR 식입니다.
DivX 동영상에서 오디오는 본래 CBR MP3 형식을 사용해 왔었습니다만, 현재는 예전과 달리 이 오디오 부분도 VBR MP3 형식으로 인코딩하는 프로그램들이 개발되어 있으므로 보다 효율적인 오디오 인코딩이 가능해 졌습니다.
 
3) ABR(Average Bit Rate)
 
이 형식은 VBR과 유사한 형태이나 VBR이 비트레이트의 변동폭을 지정해 인코딩 되는 데 반해서 이 형식은 목표로 하는 평균적인 비트레이트만을 지정해 준 다음 프로그램이 자동적으로 지정된 평균 비트레이트 수치에 근접하게 비트레이트를 변경시켜가면서 인코딩하는 방식입니다.
이런 방법은 주로 MP3 오디오 인코딩에 적용되며, 엄밀하게 따지자면 DivX 동영상 코덱의 VBR도 이 방식과 유사하다고 할 수 있겠습니다.
 

내용출처 : Hananet Movie Club CINE   DivX Total Manual V4.2

'멀티미디어 > 일반 자료' 카테고리의 다른 글

Chapter 06. DVD와 DivX  (0) 2009.03.18
Chapter 05. 오디오(Audio)  (0) 2009.03.18
Chapter 04. DivX 인코딩과 Deinterlacing / IVTC  (0) 2009.03.18
Chapter 03. Telecine & IVTC  (0) 2009.03.18
Chapter 01. 프레임(Frame)  (0) 2009.03.18
블로그 이미지

맨오브파워

한계를 뛰어 넘어서..........

,

 Chapter 01. 프레임(Frame)

 1. 프레임(frame)이란?

 동영상의 기본이 되는 영화를 기준으로 생각해 보면, 영화 영상은 결국 필름에 연속적으로 찍힌 한 장 한 장의 사진을 일정한 속도로 돌려가면서 영사해 움직이는 영상을 만들어 내는 것입니다. 이 때 한 장 한 장의 사진을 본다면 당연히 정지된 상태일 것입니다. 이렇게 동영상을 구성하고 있는 정지된 화면 하나 하나를 프레임이라고 합니다.

 2. 프레임 레이트(frame rate)

 정해진 시간 동안에 몇 프레임을 보여주느냐 하는 것을 frame rate라고 하는 데 대체로 fps(frame per second; 초당 프레임수)로 표시하며, 이는 동영상 매체별로 다릅니다. 영화의 경우 24fps이며, 우리나라나 미국의 표준방식인 NTSC방식의 DVD는 29.97fps, 유럽지역에서 주로 쓰는 PAL방식은 25fps로 되어 있습니다.

 3. 픽셀(Pixel)수

 동영상의 화질을 결정하는 요소 중 하나는 화면의 크기 즉, 픽셀(pixel)수 입니다. 동영상의 각 프레임은 수많은 점(點; pixel)로 구성되어 있으며, 이 픽셀의 수에 따라 화면의 크기가 달라집니다. 픽셀수가 많으면 당연히 화질이 좋겠지만, 그에 비례해 용량이 증가하게 됩니다. 우리나라의 표준방식인 NTSC방식의 DVD는 720(가로)x480(세로)의 픽셀로 구성되어 있습니다. 그러나, DivX 동영상에서는 대체로 이를 그대로 사용하지 않습니다. 왜냐하면, 픽셀수를 어느 정도 줄여도 컴퓨터나 모니터나 TV등으로 감상하는데는 눈에 띄일 만큼의 화질저하가 없으며 용량은 줄일 수 있기 때문입니다. (참고로, Matrox G400 계열의 VGA 카드를 사용하는 일부 시스템에서는 36의 배수가 되는 픽셀수, 즉 720픽셀을 제대로 재생하지 못해 에러가 발생하는 경우도 있습니다. 이런 경우에 사용되는 패치 파일이 나와 있으므로 패치를 해 주어야 제대로 재생이 가능합니다.)

 4. 화면비(Aspect Ratio)

     화면비란 프레임의 [가로 : 세로] 의 크기 비율을 말합니다.

 1) 영화의 화면비

 a. 1.33 : 1 (4 : 3) - 스탠다드

 1950년대까지 영화의 표준 화면은 1.37:1 이었습니다. TV가 개발되면서 이것을 모방한 1.33:1 을 표준화면으로 삼았고 그 이후로 지금까지 계속해서 표준으로 자리잡고 있습니다.

 b. 2.35 : 1 - 시네마스코프

 50년대에 TV가 영화의 적으로 대두되자 거기 대항하기 위해 개발된 와이드스크린입니다.

기존의 35mm필름을 그대로 사용하면서 화상을 가로로 압축해 저장하는 아나모픽(Anamorphic)방식의 개발로 기존의 두배에 가까운 넓은 화면을 담을 수 있게 되었는 데, 렌즈만 교체해주는 방식으로 기존 35mm와 호환이 가능하므로 그 이후로 현재까지도 표준으로 자리잡고 있습니다.

시네마스코프는 원래 특정 영화사의 상표명이지만, 지금은 2.35:1 와이드스크린을 통칭하는 말로 쓰이고 있습니다.

 c. 2.2 : 1 - 70mm

 기존 35mm보다 실제로 두배가 넓은 70mm 필름을 사용해 Anamorphic 같은 편법이 아닌 진정한 와이드 스크린을 구현한 방식입니다.

필름의 양쪽 가장자리에 6채널의 스테레오 사운드트랙이 들어가기 때문에 화면은 Anamorphic 보다는 조금 짧은 2.2:1 입니다. (70mm에 아나모픽을 적용한 2.76:1 의 벤허같은 영화도 있지만 대부분 극장들이 상영시설을 제대로 갖추지 못한 탓에 대부분의 경우 벤허도 2.2:1 로 상영되었습니다.

70mm는 고화질의 화면과 웅장한 입체음향으로 사랑을 받았지만 제작이나 상영에 고가의 별도 장비가 필요한데다 35mm 필름의 질이 점점 개선되고 돌비스테레오(6채널을 4채널로 축소한 35mm용 입체음향)가 개발되면서 70년대 이후로는 거의 쓰이지 않게 되었습니다.

 d. 1.85 : 1 / 1.66 : 1 - 비스타비전

 비스타비전은 시네마스코프에 대항해서 라이벌 영화사가 개발한 또 다른 와이드스크린 방식으로 2.35:1 과 1.33:1 을 절충한 화면입니다. 원래는 특수한 필름과 카메라를 사용해서 초 고화질을 구현한 방식이지만, 비호환성으로 인해 사장되어 버리고 요즘은 특수효과 촬영등의 특별히 고화질이 필요로 한 부분에서만 부분적으로 사용될 뿐 이름만 남아서, 일반 35mm필름에다 비스타비전의 화면비율로 촬영한 영화들을 흔히 비스타비전, 또는 비스타 사이즈라고 부릅니다.

요즘 극장에서 가장 일반적으로 볼 수 있는 방식입니다. 이유는 잘 모르겠지만 미국과 그 영향권에 있는 나라들에서는 1.85:1을 선호하고, 유럽쪽에서는 1.66:1을 선호합니다. 그래서 유럽영화가 미국에서 개봉하면 화면 위아래가 잘리곤 합니다. (디즈니의 애니메이션 DVD들은 극장에서는 1.85:1로 상영했는데도, 보통 1.66:1인 상태로 출시됩니다.)

 e. 1.78 : 1 (16 : 9) - 와이드 스크린

 흔히 하는 오해로 극장용 영화가 16:9라고 생각하는 일이 많은데, 실제로는 16:9의 화면비율을 가진 필름은 없습니다. 1.78:1은 와이드 TV의 표준 규격으로 유럽과 미국 비스타비전의 중간치에 해당합니다. (어느 특정한 한쪽 편을 들 수 없으니까 다같이 피보자는 취지로 그랬나 봅니다.)

정상적인 화면 비율을 유지한 상태라면 1.78:1 화면에서 1.66:1 영화는 화면 양쪽 옆으로 약간의 여백이, 1.85:1 영화는 위아래로 여백이 생겨야 합니다. 그런데 DVD 중에서는 16:9의 화면에 맞춰서 영화의 화면을 잘라버린 경우도 많이 있기 때문에 인코딩에 들어가기 전에 화면이 어떤 상태인지를 반드시 확인해야 합니다. (DVD의 표지에 표기된 화면비율이 잘못되어 있는 경우도 상당히 많으므로, 직접 눈으로 확인하는 것이 좋습니다.)

아주 드문 경우지만, 처음부터 필름이 아닌 형태로 제작된 영화(예를 들면 토이 스토리2) 중에는 원래 화면이 1.78:1인 경우도 있습니다.

 기타, 와이드 스크린의 초창기에는 여러가지 다양한 시도들이 있었기 때문에, 2.0:1, 2.55:1 등 다양한 형태의 화면비들도 존재합니다. 하지만 그런 것들은 모두 몇몇 작품에서만 실험적으로 사용되고는 사장되었기 때문에 소수의 몇 작품을 제외하고는 거의 찾아볼 수 없습니다.

그밖에 DVD 제작업자들이 원래의 화면을 무시하고 마음대로 잘라낸 특이한 화면들이 가끔씩 있습니다. 이런 것은 직접 보고 판단하는 수 밖에 없겠습니다.

 2) 16X16 Rule

 동영상을 다루는 과정에서 조심해야 할 것 중 하나는 원본 동영상의 화면비(Aspect ratio)와 16X16 룰(rule)입니다. 화면비를 제대로 맞춰주지 않으면 비정상적인 화면이 되니, 당연히 문제가 되겠지만 이와 아울러 신경써야 할 부분이 16X16 Rule 입니다.

16X16  규칙화면을 구성하는 픽셀수는 16의 배수로 맞추는 것을 기본으로 한다는 것입니다. 동영상을 다룰 때 사용되는 프로그램 또는 코덱에 따라서는 16의 배수가 아닌 픽셀 수는 아예 작업이 불가능한 경우도 있고, 반대로 어떠한 픽셀수든 상관없이 작업이 가능한 프로그램도 있습니다만, 되도록 16의 배수(불가피하다면 8의 배수)는 유지해 주는 것이 좋습니다. 특히, 가로 방향의 픽셀 수는 16의 배수로 설정하는 것이 대단히 중요합니다.

 

내용출처 : Hananet Movie Club CINE   DivX Total Manual V4.2


'멀티미디어 > 일반 자료' 카테고리의 다른 글

Chapter 06. DVD와 DivX  (0) 2009.03.18
Chapter 05. 오디오(Audio)  (0) 2009.03.18
Chapter 04. DivX 인코딩과 Deinterlacing / IVTC  (0) 2009.03.18
Chapter 03. Telecine & IVTC  (0) 2009.03.18
Chapter 02. 동영상의 압축원리  (0) 2009.03.18
블로그 이미지

맨오브파워

한계를 뛰어 넘어서..........

,

YCbCr과 YPbPr

 

색상신호를 RGB Color Space 상의 R, G, B의 색상 요소로 분해할 수 있는데, 우리는 눈에 보이는 대로 인식되는 이른바 "빛의 삼원색"에 너무나 익숙하다. 그런데, YCbCr이나 YPbPr은 색상신호가 아니라 휘도(Luminance) Y와 색차신호 Cb(Pb), Cr(Pr)에 기반한 색 표현 방식이다. 인간의 눈이 색상보
다 밝기에 더 민감하기 때문에 색차신호를 이용해서 처리하는 것이 효과적이다.

신호 표준들을 보면 Pb, Pr은 아날로그 색차신호를 호칭할 때 사용하는 용어이고 Cb, Cr은 디지털 신호로 부호화했을 때 사용하는 용어이다. 그런데 이를 혼용해서 부르는 경우가 많아졌다.

Cb/Cr과 Pb/Pr의 차이는 NTSC(480i)레벨의 신호단자를 [Y/Cb/Cr]로 표시하고, NTSC(480i)레벨 이상의 영상포맷(HDTV 720p,1080i)을 사용할 수 있는 단자를[Y/Pb/Pr]로 표시한다.

 현재 HDTV에서 사용하는 SMPTE-274M 표준의 YPbPr 신호의 수식은 다음과 같다.

Y = 0.2126*R + 0.7152*G + 0.0722*B

Pb = [0.5 / (1-0.0722)] * (B-Y)

Pr = [0.5 / (1-0.2126)] * (R-Y)

Y, Cr, Cb
CCIR 601 Coding System의 디지털 휘도신호와 색차신호이다. 휘도신호 Y는 13.5MHz으로 표본화되며, 2개의 색차신호는 휘도샘플 한 개를 공유하여 6.75MHz으로 표본화된다. Cr은 R-Y, Cb는 B-Y의 디지털화된 신호이다.

 다음은 RGB와 YCbCr 관계를 공식으로 표현한 것이다.

Y = 0.299*R + 0.587*G + 0.114*B
Cb = -0.16874*R - 0.33126*G + 0.5*B
Cr = 0.5*R - 0.41869*G - 0.08131*B

4:2:2
콤포넌트 비디오의 휘도(Y)와 색차신호(R-Y, B-Y)를 디지털화하는데 사용되는 표본화 주파수의 비율. 4:2:2라는 용어는 Y가 4번 표본화될 때 R-Y와 B-Y는 2번 표본화되는 것을 의미하는데, 이는 4:1:1에 비하여 휘도에 대한 색도대역 폭을 더 많이 할당한 것이다. CCIR 601에서 4:2:2 표본화는 디지털 스튜디오 장비의 표준으로서, 4:2:2와 CCIR 601이라는 두 용어가 일반적으로 동의어로 사용되지만 기술적으로 정확히 같은 의미는 아니다. Y의 표본화 주파수는 13.5MHz 이고, R-Y와 B-Y는 각각 6.75MHz로서 고품질 크로마키에 적합한 3.37MHz의 최대 가능 색대역폭을 제공한다.

 Composite 전송

3개의 영상신호를 합성하여 노란색인 하나의 선에 전송한다. 색을 분리하지 않고 합성하여 하나의 선으로 전송하기 때문에 화질이 가장 나쁘다. 흰색은 왼쪽 오디오, 빨간색은 오른쪽 오디오.

 S-Video (Super Video, Separate Video) 전송

3개의 영상신호를 밝기신호(Y)와 색차신호인 Cb, Cr(Pb, Pr)을 하나의 색신호(C)로 합성(Synthesized)하여 2개의 선으로 전송. Component 전송에 비해 화질이 좋으나 Component 전송보다 나쁘다.

전문가들은 S-Video가 아닌 Y/C(Brightness: 밝기신호 & Color:색신호) Video라 일컫는데, 이것이 비디오 신호 포멧을 좀 더 잘 표현하고 있기 때문이다.

 Component 전송

영상신호를 휘도(Y), 색차(Cb, Cr)의 세가지 성분(Component)으로 각각 분리하여 이를 3개의 선으로 보낸다. 화질이 가장 좋다.


'멀티미디어 > 이미지 프로세싱' 카테고리의 다른 글

YUV420을 RGB로 변환하기  (0) 2009.03.18
YUV420(YV12)  (0) 2009.03.18
동영상 파일끼리 PSNR 비교하는 프로그램  (0) 2009.03.18
DCT 프로그램  (0) 2009.03.18
H.264 tutoroals  (0) 2009.03.18
블로그 이미지

맨오브파워

한계를 뛰어 넘어서..........

,