화질이 좋은 동영상?

어떤 영상은 화질이 너무 좋고, 어떤 영상은 화질이 매우 떨어집니다. 왜 그럴까요? 화질이 좋은 영상과 나쁜 영상은 무엇이 다를까요? 이것을 결정하는 것은 정말 많은 요소가 있습니다.

WECANDEO가 화질을 결정하는 요소, 최적의 화질을 위해 고려해야 할 요소, 단말기별 최적의 인코딩 설정값을 알려드립니다.

 

A.동영상 화질을 결정하는 요소

최적화된 인코딩 설정값을 찾는 것은 아주 어려운 일입니다. 효율적인 설정(인코딩 결과 가능한 적은 파일 용량)으로 최적의 화질을 선보여야하기 때문입니다. 또한 화질을 결정하는 요소는 매우 복합적이어서 어느 하나만 조작한다고 좋은 결과를 얻는 것도 아닙니다. 우선 화질을 결정하는 주요 요소는 다음과 같습니다.

  1. 원본의 퀄리티
  2. 비트레이트&해상도
  3. 코덱
  4. 필터

1번 원본의 퀄리티가 낮다면 아무리 좋은 설정을 해도 좋은 화질을 얻을 수 없습니다. 인코딩 후 결과물이 원본보다 좋은 화질을 내는 것은 불가능에 가깝습니다. (물론 더 좋아 보이는 착시효과를 줄 수도 있습니다) 또, 촬영 장비 및 최초 디지털화 시킬때의 변환에 따라 인코딩 후 화질이 많이 달라질 수 있습니다. 무슨 얘기냐면, 영화나 드라마 영상의 경우 상대적으로 낮은 인코딩 설정값을 해도 상당히 괜찮은 결과물을 얻을 수 있는 반면, 보급형 HD 캠코더로 촬영한 영상은 인코딩 후 화질이 상대적으로 불만족스러울 때가 많습니다. 애초에 촬영 장비의 퀄리티가 다르기 때문입니다.

2번 비트레이트가 인코딩 설정의 실제적인 핵심 요소입니다. 이 비트레이트라는 것은 보통 bps(bit per second)라고 표시하는데 ‘1초당 얼마만큼의 정보량’을 담을 것이냐를 결정하는 것입니다. 당연히 많은 정보량을 담을 수록 좋은 결과물을 얻을 수 있습니다. 그런데 여기에 해상도와의 관계가 붙습니다. 얼마만 한 크기에 얼마 만큼의 정보량을 담느냐에 따라 결과물이 달라진 다는 얘기입니다. 해상도는 보통 pixel(px)로 표시합니다. 카메라 성능을 이야기 할 때 500만 화소, 1000만 화소 하는 것은 가로 해상도와 세로 해상도를 곱한 것을 이야기합니다. 가로 100px 세로 100px은 1만 화소가 되고, 가로 1000px 세로 1000px은 100만 화소가 되는 것입니다. 즉 화소에 얼마의 정보량을 담을 것이냐가 비트레이트와 해상도의 관계입니다. 같은 비트레이트라면 해상도가 작을 수록 화질이 선명해보이고, 같은 해상도라면 비트레이트가 높을 수록 화질이 선명해 보이겠지요.

3번 코덱은 인코딩을 실행하는 tool로 이해하시면 됩니다. mepg, x-vid, dvix 등의 용어를 들어본 적이 있을 겁니다. 이것들이 코덱입니다. 각 코덱마다 인코딩 방식이 다르고, 화질 효율도 다릅니다. 최근 온라인 동영상 업계에서는 대체로 h.264(x264) 코덱을 많이 사용합니다. 거의 표준화되다시피 했습니다. 따라서 크게 신경 써야할 부분이 아닐 수도 있습니다.

4번 필터는 ‘효과’로 이해하셔도 좋습니다. 사진을 편집할 때 ‘뽀샤시 효과’를 주는 것을 생각하면 쉽습니다. 원칙적으로 필터를 사용하면 화질은 더 떨어진다고 봐야합니다. 원 이미지 화상을 특정한 형태로 변환(뭉개는) 것이 필터이기 때문입니다. 그럼에도 간혹 필터를 통해 화질이 개선되었다는 느낌을 받을 수도 있습니다. 예를 들어 영상이 빠르게 움직일 때 흔히 발견되는 ‘깍두기’ 현상을 ‘blur’와 같은 필터를 통해 부드럽게 뭉개면 ‘화질이 더 좋다’고 느껴지는 것이지요. 반대로 다소 흐릿한 영상에 ‘sharpen’ 필터를 주면 화면이 좀 더 날카로워지면서 ‘더 선명하다’고 느낌을 받기도 합니다.

 

B.동영상 최적의 화질을 위해 고려해야 할 요소

화질을 결정하는 요소를 대략 알았다면 최고의 화질을 뽑는 것은 조금 쉬워집니다. 아주 좋은 원본의 영상을 가능한 작은 해상도에 가능한 높은 비트레이트로 인코딩하면 되겠지요. 쉽네요? 그런데 우리가 찾고자 하는 것은 ‘최고의 화질’이 아니라 ‘최적의 화질’입니다. 그래서 어렵습니다. 그럼 온라인 동영상 서비스을 위한 인코딩 시 실제로 고려해야 하는 요소들을 몇가지 살펴보겠습니다.

  1. 동영상이 재생 될 단말기 (=해상도)
  2. 네트워크 전송 속도 (=비트레이트)
  3. 인코딩 파일의 용량 (=비용)

인코딩 한 동영상을 어디에서 보게 할 것인가는 매우 중요한 문제입니다. 극장에서 상영할지, TV에서 볼 지, PC에서 볼지, 스마트폰에서 볼지에 따라 완전히 달라집니다. 우선 해상도가 달라지기 때문입니다. 극장의 스크린과 스마트폰 화면의 크기 차이를 생각해 보시기 바랍니다. 엄청납니다. 원칙적으로 이야기하면, 동영상이 재생 될 단말기의 해상도에 맞춰서 인코딩 해상도를 결정하는 것이 가장 좋습니다. 그 보다 크면 불필요한 화소들을 갖게 되는 것이고, 그 보다 작으면 모자란 화소를 다른 화소가 떼워줘야 하기 때문에 그만큼 화질이 떨어지게 됩니다. 무슨 말인지 이해했을 거라고 봅니다.

우리는 지금 온라인 동영상 서비스를 전제로 이야기하고 있습니다. 여기서 ‘온라인’이 중요합니다. 시청자가 동영상을 조회하면 그 때부터 데이터가 전송되는데, 이 ‘온라인’이란 녀석이 네트워크 전송 속도에 한계가 있습니다. 앞에 설명한 동영상의 비트레이트를 생각하시면 됩니다. 온라인 네트워크 전송 속도보다 동영상 비트레이트가 크게 되면 어떻게 될까요? 동영상이 끊깁니다. 끊김없이 동영상을 보게 하려면 동영상 비트레이트가 네트워크 전송 속도보다 적어야겠지요. 그런데 문제는 이 네트워크 전송속도란 것이 다 다르다는 것입니다. 스마트폰을 사용할 때 3G 상태와 wifi의 상태, 또는 집에 깔린 광랜의 속도 차이를 생각해보면 그 차이가 아주 큽니다. 결국 우리는 평균적인 네트워크 속도를 예측할 수 밖에 없습니다. 점점 어려워집니다.

또하나 고려해야할 것은 비용 문제입니다. 온라인 동영상 서비스를 하면 상당히 많은 돈이 듭니다. 데이터 량이 글이나 사진에 비해 현격히 크기 때문입니다. 인코딩 파일의 용량을 미리 계산해볼 수도 있습니다. 비트레이트와 동영상의 재생 시간만 알면 계산이 가능합니다. 비트레이트/8x재생시간(초)로 계산하면 됩니다. 파일용량을 표시하는 byte=8bit입니다. 그래서 8로 나눈뒤에 시간(초)을 곱하는 것입니다. 예를 들어 1024kbps의 비트레이트로 인코딩 된 1분짜리 파일 용량은 1024/8×60=7680kbyte입니다. 약 7.5mb가 됩니다. 이 용량이 커질 수록 데이터 전송량이 늘어나고, 비용이 늘어납니다. 땅파서 장사하는게 아니므로 우리가 반드시 신경써야할 부분입니다.

 

C.WECANDEO 추천, 단말기별 최적의 인코딩 설정

너무 많은 이야기를 하면 결국 하나마나한 이야기가 되버릴 것 같습니다. 대신 추천하는 인코딩 설정값을 알려드리려고 합니다. 이 추천은 우리 WECANDEO의 수많은 테스트 뿐만아니라, 자매 서비스인 엠군(mgoon)을 통해 수년간 쌓은 경험, 그리고 최근 온라인 동영상 서비스들의 트렌드를 반영한 종합적 결과입니다. 반드시 이 추천 값이 좋은 결과를 보장하지는 않을 것입니다만, 판단의 기준점이 되기에는 부족함이 없으리라 생각됩니다. 다음의 유의사항을 참조하셔서 여러분의 인코딩 설정에 응용해보시기 바랍니다.

  1. 코덱은 h.264 사용을 기준
  2. 화면 해상도의 비율은 단말기의 해상도를 기준으로 함
  3. 대상 단말기는 2012년 현재 가장 많이 쓰이는 기종들을 고려

video image quality