Avi,MP4,Mkv에 대한 차이점Avi,MP4,Mkv에 대한 차이점

Posted at 2011. 4. 21. 08:54 | Posted in 삶의한자락/컴퓨터상식

Avi,MP4,Mkv에 대한 차이점

조금 다른 이야기를 하나 해볼께요. 일단 차이점을 확인해보죠.

 

avi

mp4 

MKV 

 스트리밍 여부

X

 디지털/아날로그식

아날로그식 

 

디지털식 

 가변 프레임

고정 

 

정적 

실제로 각 영상들의 확장자들로 그 기능이 조금씩 다릅니다. 하지만 그게 화질의 차이라고 해도 틀리진 않지만, 정확히는 압축률의 차이입니다. 동일한 비트레이트(음성으로 따지면 음질=128,192Khz) 일 경우 가장 압축률이 좋은게 MP4 입니다. 

AVI 는 가장 보편적으로 사용했던 확장자입니다. 가변 프레임이 등장 하기 전에는 이 확장자가 제일 많이 존재하였습니다.실제로 파일 명을 보시면 120fps 이 들어간 영상을 많이 보셨을껍니다. 120fps 면, 프레임이 초당 프레임이 120 이라는 건데. 과연 120일까요? 아닙니다. 이건 가짜 프레임입니다. AVI 는 서로 다른 프레임의 영상을 합칠 수 없습니다. 그로 인하여 서로의 배수를 이용하여 통일 시켜줘야 합칠 수가 있습니다. 

ex) 오프닝 = 30프레임, A,B 파트 = 24프레임, ED = 60프레임 

위의 영상을 합칠려면 어떻게 해야될까요. 부턱대고 인코딩 프로그램으로 연결하면, 오류가 납니다. 혹은 어떤 프레임으로 통일 됩니다. 프레임이 통일 되면 문제 없을꺼 같다는 생각은 말도 않되는 소리입니다. 왜 냐구요? 60 프레임 영상을 24 프레임으로 줄여본다고 생각해보죠. 초 당 60장의 종이가 움직여야 자연스러운 부분이. 24장으로 줄었습니다. 그러면 영상은 어떻게 보일까요? 뚝뚝 끊깁니다. 반대의 경우는? 24를 60프레임으로 바꿨습니다. 어라? 자연스럽게 넘어가네? 그럼 이상 없구나 .. 라고 생각하시면 또 않되는 점이. 프레임을 늘렸습니다. 그러면 당연 중복 프레임이 많이 발생합니다. 고로 용량은 늘어납니다. 그래서 생각해낸 방법이 24,30,60 의 배수인 120 프레임으로 만들어 합치는 방법입니다. 근데 어라? 24에서 60으로 올리면 프레임이 많아져서 용량이 커진다고 했는데 왜 저게 해결방법인걸까요. 사실 저건 120 프레임이라고 인식만 시키지 실제로는 각각 정해진 프레임을 사용합니다. 그로 인하여 용량에선 크게 문제가 일어나지 않습니다. 그리고 AVI 는 아날로그 방식입니다. 

MKV 는 AVI 이후 보편적으로 사용했던 확장자입니다. mkv의 가장 큰 장점은 디지털 방식을 사용했다는 점과. 가변 프레임을 지원한다는 점입니다. 위의 avi 처럼 굳이 120프레임으로 변형을 시키지 않아도 원본을 그대로 쓸 수 있다는 점이 있습니다. 

MP4 는 mkv 이후 사용되는 확장자입니다. 최초에는 휴대폰, mp3 같은 휴대용 기기에서 사용 되다가 점차 발전되면서 컴퓨터에 자리 잡게 되었습니다. 이 확장자의 장점은 스트리밍이 지원됩니다.

Q. avi 도 embed로 링크하면 인터넷창에서 재생이 되는데 그건 스트리밍이 아닌가요?

A. 실제로 많은 사람들이 스트리밍의 단어를 착각하고 있습니다. 보통 UCC 사이트가 아닌 대부분의 웹 영상 재생은 다운로드 하면서 보여주는 방식입니다. 그리고 스트리밍은 쉽게 생각하면 흘려보내는 방식입니다. 이해가 잘 안가죠? 다운로드 방식은 다운로드를 해가며 보는 많큼. 다운 받지 않는 곳을 선택해볼수 없습니다. 다운 받은 범위 안에서만 볼 수 있는 거죠. 반대로 스트리밍 방식은 원하는 위치부터 볼 수 있습니다. 그리고 다운로드 방식과 다르게 저장하는게 아닌 단순히 시청입니다. TV를 방식을 생각하시면 쉬울 듯 하네요. tv에 단순히 원하는 방식부터 재생이 가능하다는 기능만 추가 시키면 될듯합니다. 
......여기까지는 확장자 이야기.

여기부터는 코덱 이야기.

화질을 결정하는 것에는 확장자도 있습니다. 하지만 확장자는 어디까지나 기초를 세워주는 것 뿐. 화질에 10%미만을 차지하고 있을 뿐입니다. 실제로 화질을 개선하는 것은 코덱입니다. 코덱은 멀티미디어의 압축 방식을 말합니다. 영상은 x264, Xvid, Divx .. 등 음성은 AC3, AAC, MP3 .. 등 입니다. 이 코덱의 종류 마다 차이가 많으며, 더욱 그 코덱의 옵션마다 차이가 다릅니다. 일반적으로 곰,다음팟,바닥 등의 인코더들은 제작 회사의 기본 옵션을 이용하여 인코딩합니다. 하지만 이건 어디까지나 보편적인 설정이지, 따로 전용이란 느낌이 없습니다. 그리고 필터를 빼놓을 수 없지요. DVDRip, HDRip, BDRip 등은 모두 필터를 사용합니다. 너무 많은거 같지만 중요합니다. 어느 하나 빠지면 좋은 화질을 만들 수 없습니다. 저도 DVDRiper 한답시고, 많이 배웠었습니다. 

필터란?
종류는 다양합니다. 선을 검게 혹은 선을 날카롭게(확실하게) 하는 샤픈 필터, 노이즈를 제거해주는 노이즈 필터, 영상 사이즈를 조절하는 리사이즈 필터, 색상을 변경하는 색상 필터. 인터레이트를 제거하는 디인터 필터. 

이 필터를 거치지 않으면 일단 컴퓨터용 영상이 아니며, 이 문제를 해결해도 DVD 화질 밖에 나오지 않습니다.

DVD,BD,HD는 어디서 재생하기 위하여 만들어졌을까요? DVD플레이어 같은 답을 낸 사람도 있을껍니다. 하지만 최종적으로는 TV에서 재생하기 위함입니다. 예전 중,고 등학교 때 배운 적이 있을 텐데, TV는 화면 출력 방식이 뒤에 있는 영사기가 스크린을 향해 짝,홀수 단위로 비춰서 화면을 출력합니다. 홀,짝,홀,짝,...... 식으로 쏘면서 움직이는 이미지를 만드는 거죠. 그런데 컴퓨터는 어떨까요. 한번에 전부 출력합니다. 그러므로 그냥 재생하면, 선이 이상하게 변합니다. 그로인하여 디인터 필터를 사용합니다. 대개의 플레이어에는 자체적으로 내장되어 있긴합니다만, 당연한 소리지만 립퍼들은 플레이어를 의지 않습니다. 고로 이 필터를 이용해 자체 해결 하며, 해당 영상이 몇 프레임인지 확인하고 제일 알맞는 디인터 필터와 옵션을 이용합니다. 

선이 너무 연하거나 흐리면 샤픈 필터를, 노이즈가 보이면 노이즈 필터 등을 사용합니다. 이로써 DVD보다 좋은 화질이 만들어집니다. 

코덱이란?
멀티미디어의 압축 방식. 어떤 방식을 사용하여 압축할까를 정하는 겁니다. 필터를 적용하면 확실히 DVD보다 좋은 화질을 만듭니다. 하지만 코덱은 그 영상을 파일로 저장합니다. 그러니 코덱 설정이나 비트레이트가 적으면 당연히 화질이 나빠지겠지요? 립퍼마다 틀리지만 특정한 용량을 기준으로 하는 사람이 있고, 특정한 화질을 중심으로 하는 사람등이 있습니다. 현재는 x264가 가장 화질이 좋습니다. 대신 인코딩 속도가 다른 코덱보다 엄청나게 느립니다. 

추가.
AC3, AAC, DTS <- 이걸 영상 코덱이라고 왕 착각하는 사람이 있습니다. 이건 음성 코덱입니다. 보편적으로 우리가 가지는 동영상은 최소 1개의 영상과 1개 이상의 음성을 가지고 있습니다. 그러니 최소 2개 이상의 멀티미디어가 압축되어 있는데. 음성은 DVDRIp 경우 AC3가 가장 많아 이걸로 dVDRip 이나 BDrip 으로 판단하는 사람도 있습니다. 이건 어디까지나 원본인 DVD와 블루레이 음성이 AC3로 인코딩되어 있어서, 음질만 조금 낯추고 그대로 원본에 삽임한 것이기에 그렇다고 설명합니다. 여러번 말하지만 영상과 음성의 코덱은 전혀 다릅니다. zip 하고 jpg 랑 착각하는 거랑 동일. 

DVDRip 만드는 방법

DVD 에서 영상, 음성 분리 -> 프레임검사 -> AVs를 이용한 필터조합/적용 -> 버덥, 메구이 등으로 인코딩 -> 영상/음성 합치기 

Ps. 립퍼들은 좋은 화질을 만들기 위해 무상으로 일하고 있으므로 감사하는 마음으로 봅시다 :P
보통 애니 1편당 인코딩 하는 시간이 적어도 2시간이고 평균 4~6 시간 사이며, 많을 경우 9시간을 넘습니다.
그만큼 많은 필터를 이용하여 화질 향상을 극대화 합니다.
단순히 프로그램만으로 돌리는게 아니라 내부를 영어로 일일이 치는 것이기에 초보자는 머리만 아픕니다.

아래가 인코딩 할때 쓰는 AVS 필터 적용 사례 

LoadPlugin("C:\Enc\megui\tools\avisynth_plugin\FluxSmooth.dll")
LoadPlugin("C:\Enc\megui\tools\avisynth_plugin\ColorMatrix.dll")
LoadPlugin("C:\Enc\dll\deen.dll")
DirectShowSource("E:\13.MKV")
ColorMatrix()
Tweak(hue=0.5, sat=1.2, bright = 0.1, cont = 1.0)
x = 1024
y = x / 16 * 9
Lanczos4Resize(x,y)
FluxSmoothST(2,2).Deen()

//