MadVR

미친 가상현실

1 소개

공식 홈페이지

madshi Video Renderer. 동영상을 재생할 때 화면을 왜곡하거나 화질에 해를 끼치는 그래픽카드 자체의 로직은 차단(bypass)하고, 동시에 그래픽카드의 물리적인 성능은 최대한 활용해서, 화질에 이로운 고품질의 후처리를 통해 영상이 원래 의도한 화면을 최대한 더 좋은 화질로 보여주기 위해 탄생한 비디오 렌더러이다.

2 특징

목적이 목적인 만큼, 당연히 madVR을 통해서 나온 동영상의 화면은 매우 좋다.
madVR은 8bit, 10bit, 16bit 영상 정보를 모두 입력받을 수 있고, 동영상 제작 시에 거의 필수적으로 압축하게 되는 색상 정보를 항상 업스케일링하며, 모든 작업을 16bit 공간에서 처리한다. 즉, 동영상을 실제 화면에 그려내는 렌더러의 역할에 있어서 최고의 방식으로 작동하며, 그래서 당연하게도 최고의 품질을 보여준다.

따라서 현재 블루레이로 나오는 영상들은 기본 품질이 매우 뛰어나기 때문에 madVR를 쓰나 안 쓰나 인간의 눈으로 구별 가능한 부분이 거의 없다라고 성급하게 일반화하는 것은 무리가 있다. 영상을 조금만 주의 깊게 관찰한다면 흔히 '블루레이 급'이라고 일컫는 1080p 수준의 영상에서도 이미지 디테일이 달라지는 것을 확인할 수 있다. 또한 madVR을 설정하면서 필연적으로 조정하게되는 색공간을 올바르게 맞춰주는 작업만으로도 색상 경계가 타 영역으로 침범하는 버그 수준의 출력을 바로잡고 색상을 포함한 이미지의 경계가 살아나는 것을 볼 수 있다. 이러한 '이미지'에 대한 개선 뿐만 아니라, 영상의 떨림(Motion judder)을 걷어내는 기능을 통해 영상의 '움직임' 또한 개선된다. 동영상은 정지된 사진이 아니라 움직이는 영상이기 때문에 madVR의 이러한 '움직임' 개선 기능은 매우 중요하며 좋은 결과물을 보여준다.

물론, DVD 급의 영상을 madVR를 통해 후처리를 한다고 해서 블루레이 급의 영상보다 좋을 수가 없으므로, 처음부터 품질이 좋은 영상을 보는 것이 madVR를 사용하는 것보다 훨씬 화질이 좋다. 그런데 '처음부터 품질이 좋은 영상'에 또 madVR을 쓰면 어떨까? 더 좋았으면 좋았지 나쁠게 없다.
마찬가지로 자신이 오래된 영상을 많이 가지고 있고, 자신의 PC 사양이 주체할 수 없을 만큼 좋아서 오래된 영상을 조금이라도 개선된 화질로 보고 싶을 때 사용할 수 있는 것이기도 하다.

madVR이 높은 PC 성능을 요구하는 것은 맞지만, 이것은 일정 수준 이상의 성능이지 극단적인 성능을 요구하는 것은 아니며, 타협적인 기능을 선택할 수도 있어서 사양이 좋지 못할 경우 화질을 조금 포기하고 속도를 가져갈 수도 있다. 그리고 '움직임'에 관한 떨림 제거 기능을 빠트리고 이야기하는 것은 madVR 기능의 절반만 이야기하는 셈이 된다.
사실 featuresno shortcuts, highest quality has priority over anything else을 내걸고 있는 만큼, 처음 나올 당시엔 어마어마한 사양을 요구한 것은 맞다.[1] 지금도 설정을 어떻게 하느냐에 따라 단순히 DVD급 영상을 재생하는 것도 GTX980이나 1080의 '성능이 떨어져서' 끊기는게 얼마든지 가능할 정도[2]. 다만 이러한 옵션들은 어디까지 옵션일 뿐이고, 기본값 기준으로는 적당히 성능 위주로 최적화한 옵션들을 선택해 놔서 상당히 상식적인 수준의 성능 요구 만을 보인다. (일례로 설정의 rendering → trade quality for performance 항목을 들어가보면 옵션이 매우 많고, 또 상당 수가 기본값으로 켜져 있다. 항목 이름부터가 바로 위에 말한 'no shortcuts...'를 대놓고 거스르는 항목인데, 초창기만해도 당연히 저런거 없었다. 하지만 계속되는 버전업과 최적화 와중에 하나둘씩 생기더니 16년 현재는 10개 가까운 옵션들이 기본값으로 켜져있는 상태가 된 것. 어떻게 보면 크라이시스 1편 → 2편과 비슷한 최적화를 거쳤다고 볼 수도 있다.) 또한 옵션을 올린다고 무한정 비례해서 화질이 좋아지는 건 아니므로 물론 사양 먹는건 무한정 비례해서 올라간다 자신의 사양에 따라 적절한 옵션을 선택하는 것이 중요하다.

주된 기능으로는, 동영상의 압축된 색상 정보를 업스케일링하고, 동영상의 화면 크기를 확대/축소할 때 고품질의 알고리즘을 적용하고, 모니터의 초당 주사율(보통 60Hz)과 동영상의 초당 프레임(보통 24fps)의 차이 때문에 생기는 화면 떨림 현상(Motion judder)을 줄이고, 모니터의 캘리브레이션 정보를 활용하고, 그라데이션으로 표현된 화면의 계단현상을 줄이고(deband), 고품질의 YUV -> RGB 변환을 수행하며, 최종 출력 시의 디더링 알고리즘을 선택할 수 있는 등, 화질을 위한 여러 가지 고품질의 기능을 제공한다.

madVR은 그래픽 카드의 물리적인 성능을 (3D 연산 기능까지) 최대한 활용하는 것이 개발 목적이자 방향이기 때문에, 그래픽 카드의 사양을 꽤 많이 타는 편이다. GPU 성능은 물론이고 그래픽 카드에 장착된 RAM의 용량과 속도에도 영향을 받는다. CPU는 GPU보다는 덜 사용하는 편이며, 시스템의 RAM보다는 그래픽 카드의 RAM이 좀 더 중요하다. madVR의 설정 옵션은 선택지가 넓은 편이기 때문에 그래픽 카드가 별로 좋지 않다면 경우에 따라서 옵션을 타협하는 것도 가능하다. 다만, 옵션을 타협한 만큼 madVR의 효과는 줄어들기 때문에 테스트를 통한 적절한 선택이 필요하다.

주로 팟플레이어MPC-HC를 동영상 플레이어로 많이 사용하며, 디코더로 LAVFilters를 같이 넣어서 사용하는 경우가 많다. (제작자 포럼을 살펴보면 madVR 제작자와 LAVFilters 제작자가 서로 교류하는 모습도 볼 수 있다. 제작자는 madVR이 해야할 작업에 간섭이 심한 팟플레이어 보다는 MPC-HC를 추천한다고.) 자막의 경우 플레이어 자체의 자막 기능을 사용해도 무방한데, 일부 플레이어에서는 화면 캡쳐 시에 자막이 캡쳐되지 않는 현상이 있다. 이럴 경우, 플레이어 자체 자막 기능은 끄고, 자막 필터로 xy-VSFilter를 사용하면 해결된다. xy-VSFilter는 madVR과 협력하여 개발되는 자막 필터인데, madVR 사용시에 궁극적으로 권장되는 자막 필터이다. 외산인 만큼 smi문제에 시달릴 것이라고 생각할 수 있으나, smi 역시 정상 출력된다.다만 기본적인 지원일 따름이라 별별 트릭이 다 사용되는 한국 smi에서는 깨진 자막이 출력되는 경우가 꽤 많으니 주의하자.

madVR의 각 옵션의 구체적인 설명과 설정법은 여기(영어)를 참고하면 되는데, madVR은 사양을 많이 타므로 자신의 시스템에 맞게 적절하게 설정하는 것이 필수적이다.
  1. Doom9의 공식 쓰레드 날짜를 잘 보면 2009년 4월 8일에 처음 올라온 글이라는 걸 알 수 있다. 2009년 당시 CPU와 GPU 성능을 생각해보면...
  2. 단순히 하드웨어는 좋은데 소프트웨어가 그걸 못 써먹어서 끊기는 것도 아니고 진짜로 성능을 다 써먹는데 그게 부족해서 끊기는 거다!