본문 바로가기

AviSynth

Color Format, ConvertToRGB, ConvertToYUY2, ConvertToYV12

클립을 RGB32 칼라포맷으로 변환합니다.

ConvertToRGB32()


클립을 Rec.709 매트릭스 YUY2 칼라포맷으로 변환합니다.

ConvertToYUY2 ("rec709")


매트릭스는 4종류가 있는데, 함수 기본값은 Rec.601입니다.

  • "Rec601" : Use Rec.601 coefficients, scaled to TV range [16,235].
  • "PC.601" : Use Rec.601 coefficients, keep full range [0,255].
  • "Rec709" : Use Rec.709 coefficients, scaled to TV range.
  • "PC.709" : Use Rec.709 coefficients, keep full range.


보통 Divx나 Xvid는 Rec.601, DVD나 HDTV의 경우 Rec.709입니다.

PC.601이나 PC.709의 경우 RGB <-> YUY 변환시 Luma 값을 유지하는데 좋습니다.

대부분의 경우 PC.601로 충분하지만

Rec.601소스를 내부적으로 변환해 사용할 경우 PC.709이 좋다는 글을 봤습니다.


AviSynth는 내부적으로 4가지 칼라 포맷을 다룹니다.

RGB24
RGB32
YUY2
YV12


RGB24는 픽셀의 정보를 각각 8비트의 R, G, B로 나누어 저장합니다. 픽셀당 24비트가 됩니다.

RGB32의 경우 여기에 투명도 처리를 위한 알파 채널이 추가됩니다. 픽셀당 32비트가 됩니다.

YUY2는 Luma값 (밝기) Y'와 Chrominance 값 (칼라) U, V 로 구성됩니다.
수평 픽셀 두개당 Y' 두개, U 하나, V 하나로 저장되기 때문에 픽셀당 16비트가 됩니다.

YV12는 YUY2와 비슷하지만 2x2 픽셀 (4개 픽셀) 당 U, V 값을 하나 가집니다.
결과적으로 픽셀당 12비트가 됩니다.

이런 칼라 포맷이 나온 이유는 용량 절감과 처리속도 상승에 있습니다.

몇몇 함수는 특정 칼라 포맷으로 된 클립에서만 작동하고,
특히 버츄얼덥의 플러그인 같은 경우엔 RGB32 에서만 작동합니다.

이런 칼라 포맷은 서로 변환이 가능하지만 그 과정에서 손실이 생기게 됩니다.
전체적인 색감이 미묘하게 변하기도 하니까 가급적 변환을 줄이는 방법을 모색할 필요가 있습니다.


MMD 에서 나온 영상을 다룰때엔 PC.601이나 PC.709의 RGB 칼라포맷을 써서 손실을 최소화 하는게 좋겠다는 생각입니다.

다만 MeGUI에서 인코딩 하기 위해서는 클립의 최종 결과물이 YV12 칼라 포맷이어야 합니다.

'AviSynth' 카테고리의 다른 글

VirtualDub 1.9.11, 1.10.0  (0) 2010.12.31
AVI 트레이싱을 이용한 MMD 영상 만들기 6  (3) 2010.12.23
SetMemoryMax  (0) 2010.12.12
Lagarith Lossless Codec 1.3.20  (0) 2010.12.12
FadeIn, FadeOut, FadeIO  (0) 2010.12.12
AssumeFps, ChangeFps, ConvertFps  (0) 2010.12.12
MixAudio()  (0) 2010.12.12
Loop()  (0) 2010.12.12
Trim()  (0) 2010.12.12
BlankClip()  (0) 2010.12.12