메뉴 건너뛰기

본문시작

방문자

전체 : 5,072,976
오늘 : 7,168
어제 : 8,960

페이지뷰

전체 : 33,058,955
오늘 : 28,955
어제 : 38,225


?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

(질문 및 답변에 올라왔던 질문 글에 대한 댓글을 정리해서 이곳에 옮깁니다. 저 자신도 아직 배우는 입장이라 불완전한 부분도 있을 수 있습니다. 본문의 내용에 대해 다른 의견을 가지거나 보다 깊은 논의를 하고자 하시는 분들은 댓글로 남겨 주시면 감사하겠습니다.)

 

"내 경험으로는 재인코딩해서 비트레이트를 높였더니 퀄리티가 향상되더라." 하는 주장을 하시는 분들이 종종 있습니다. 몇몇 분이 자신도 그런 걸 느꼈다고 동조하시면 이를 일반적으로 사실인 것으로 받아들이는 분들이 있는데 잘못된 이해를 불식하기 위해 거기에 대해서 설명하고자 합니다.

 

결론적으로, 그런 결과는 우연이 동반된 개인적인 민감도와 취향의 차이입니다. 왜냐면 영상도 그렇고 오디오도 그렇고, 대부분의 코덱들이 사용하는 '손실 압축'은 기본적으로 '손실'이 전제되므로 재인코딩은 반드시 정보의 손실을 수반하기 때문입니다. 원본을 재인코딩한다는 건, 원본을 디코딩해서 풀어헤치고, 그걸 다시 손실 압축하는 과정입니다. 이 과정에서 일부 정보는 손실시킬 수밖에 없으며 그 기준은 아래 설명하는 몇 가지 원칙에 따릅니다.

 

원본에서 어떤 부분을 손실시킬지 결정하는 가장 큰 틀의 결정적이고 객관적인 잣대가 영상에서는 '퀀타이저(quantizer, 또는 qp = quantization parameter)'고 오디오에서는 '비트레이트'가 됩니다. 뭐, qp도 현상적으로는 비트레이트로 나타나게 되니 결국 비트레이트가 잣대가 된다고도 말할 수 있겠습니다.

 

그리고 또 다른 기준으로는, '인간이 일반적으로 인지하는 수준'이 있습니다. 즉, 영상에서는 우리 인간의 눈이 일반적으로 잘 캐치하지 못하는 부분을 손실시키는 거고, 오디오에서는 우리 귀가 잘 듣지 못하는 부분을 손실시키는 겁니다.

 

이 부분이 문제가 됩니다. '인간이 일반적으로 인지하는 수준'이라는 게, 평균적이고 통계적으로는 그럴 수 있겠지만 막상 백이면 백 모든 사람이 다 같은 게 아니기 때문에.

 

우선 영상으로는, 인간이 색의 차이(chrominance)보다 명암의 차이(luminance)에 더 민감하기 때문에 픽셀 간 색 차이는 대충 건너뛰자 하는 게 우리가 늘 접하는 chroma subsampling, 즉 YUV444가 어떻고 YUV422가 어떻고 YUV420이 어떻고 하는 것들입니다. 모니터들은 RGB로 표현되는데 왜 영상들은 색공간을 YUV로 표현할까요? 그건 흑백 TV에서 컬러 TV로 전환되는 과정의 기술적인 대응에도 이유가 있겠지만 (명암만 표현 -> 명암에 색조를 추가), 근본적으로는 바로 앞에서 설명한 내용 때문입니다. 즉, 손실은 있더라도 인간이 인지하기엔 거의 불가능하기 때문에 픽셀들의 색 차이를 대충 뭉뚱그리면 용량도 절약하면서 화질 차이를 거의 느낄 수 없기 때문입니다.

 

그걸 기본으로 깔고, 거기다 심리-인지과학과 관련된 몇 가지 이론을 적용하여 무슨 무슨 변환을 해서 손실을 시키는 게 바로 영상의 코덱들인 겁니다.

 

근데 막말로, 명암 차이보다 색 차이에 더 민감한 인간이 있을 수도 있지 않겠습니까? 색 차이에 둔한 색맹들도 많지만, 그 반대의 경우도 없다고는 단언할 수는 없겠죠. 그리고 어떤 사람은 노이즈에 더 민감한 사람도 있겠고, 어떤 사람은 머리카락같이 미세한 디테일에 더 민감한 사람도 있겠고, 하다못해 잔상에 대해 극도로 예민해서 남들은 캐치하지 못하는 움직임 변화를 민감하게 캐치하는 사람도 있겠죠.

 

오디오의 경우에도 유사합니다. 평균적인 인간이 인지하기 힘든 주파수대는 생략하면서 손실시키면 용량도 절약하면서 음질 차이를 거의 느낄 수 없죠. 하지만 누가 압니까? 진짜 돌고래같이 청각에 예민한 사람이 있을 수도 있겠고, 특정 주파수에 더욱 끌리는 사람도 있을 수 있겠죠.

 

다시 원래 문제로 돌아가서, 재인코딩에 비트레이트를 좀 높였더니 퀄리티가 더 낫게 들리거나 보였다는 것은, 원본을 그 이전의 원본에서 인코딩할 때 적용했던 손실률(비트레이트로 표현되는...)보다 손실률을 좀 줄이는 설정으로 (보다 높은 비트레이트) 재인코딩을 했더니 그게 본인에게 더 낫게 들리거나 보였다는 것입니다. 원본과 같은 손실률, 즉 원본과 비슷한 비트레이트를 적용하라는 건, 원본이 그 이전 원본의 정보에서 누락시켰던 것과 비슷한 기준으로 정보를 잘라내도록 하라는 것입니다. 코덱에 따라 틀리겠지만, 좋은 코덱은 그럴 경우 대부분의 원본 정보를 보존합니다. 필터를 적용하면 손실의 기준이 달라질 수 있겠지만, 필터를 적용하지 않는 한은 그렇습니다. 놓치는 부분도 있겠지만 그것을 인지할 수 있다는 것은 우연이거나 개인적인 민감도의 차이입니다. 그리고 우리가 아는 현재의 대부분의 코덱들은 좋은 코덱들이죠.

 

원본을 그대로 보존하는 인코딩은 무손실 압축 방식의 코덱, 또는 퀀타이저를 0으로 주고 하는 손실 압축뿐입니다. 후자의 경우도 결국 무손실 압축 방식과 다르지 않습니다. 오디오의 경우에는 손실 압축의 퀀타이저 0에 해당하는 옵션이 없으니 (이건 확실하지 않습니다만...) 결국 무손실 압축의 코덱을 쓰는 수밖에 없습니다.

 

비디오의 무손실 압축은 전문적인 영상 편집을 위해 쓰이기도 합니다. 어떤 코덱들이 있는지는 위키피디어의 해당 문서를 참고하십시오. 오디오 역시 많은 무손실 압축 코덱들이 있지만 우리가 일상적으로 많이 쓰는 것들 중에는 FLAC이나 ALAC 등이 그에 해당합니다. 무손실 압축이 어떤 것인지, 각 미디어에 어떤 종류가 있는 것인지에 대한 자세한 내용은 위키피디어의 해당 문서를 참고하시면 됩니다.

 

오디오의 손실 압축을 예로 들면, AAC나 MP3의 경우에는 손실 압축 방식이니 비트레이트를 원본보다 높게 준다고 해도 손실이 일어날 수밖에 없습니다. 단지, 무손실에는 좀더 가까워지겠죠. 제가 개인의 차이라고 말씀드리는 것은, 대부분의 사람들에게 그 차이가 별로 크게 다가오지는 않을 것이기 때문입니다. 하지만 그 차이가 느껴지신다면 당연히 비트레이트를 높게 해서 인코딩하시는 게 맞겠죠.

 

그리고 서로 다른 코덱으로 변환할 때는 (예를 들어 AAC로 된 오디오를 MP3로 변환한다든지 하는 식으로) 코덱들 간에 손실과 압축의 알고리듬과 효율이 다르기 때문에 그런 걸 어느 정도 고려하는 게 좋습니다. 예를 들어, AAC 128 Kbps를 MP3 192 Kbps로 변환하는 것도 나쁘지 않습니다. 마치 2 Mbps의 비트레이트를 가진 HEVC 영상을 H264 3 Mbps나 4 Mbps로 바꾸듯요. 어차피 정보의 손실은 일어나겠지만 적정 수준에서 최대한 보존하는 쪽으로 가는 게 낫습니다. 여기서 '적정 수준'이라는 게 중요한데, 그건 본인에게 맞는 수준을 말하는 겁니다.

 

다시 말씀드리자면, 인코딩의 결과에 대한 퀄리티 인식은 순전히 주관적인 것입니다. 자신이 그렇게 경험을 했다면 그 방식을 따르는 게 맞습니다. 단지, 그것을 일반화해서 주장하는 것은 잘못된 것이라고 말하고 싶습니다.

  • ?
    조토마테 2018.09.20 08:01
    특정 알고리즘을 써서 데이터를 삽입하지 않고서야 원본에서 더 좋아질 순 없죠.
    단순히 비트레이트 높여서 퀄리티 좋아지면 노벨상 줘도 당연
    비트레이트 올리면 용량만 손해인데 왜 하는지 의문입니다.
  • ?
    sSTSs 2018.09.20 10:02

    제목의 주장이 좀 오해의 소지가 있는 게, '원본보다 낫다'는 주장을 하는 분도 있고, '원본보다 높은 비트레이트로 인코딩한 게 원본과 같은 비트레이트로 인코딩한 것보다 낫다'고 주장하시는 분도 있습니다. 전자보다는 후자가 더 많은 것 같습니다만, 때로는 정확히 어떤 주장을 하고자 하는 건지 본인도 헷갈려하는 분들도 많죠. 링크 달아놓은 게시글을 쓴 분께서는 후자의 주장을 하신 것입니다.

     

    일단 원리를 설명하기 위해 제목을 좀 자극적으로 그렇게 달았는데 이게 오해를 가져오지는 않을지 염려가 되긴 하네요. 아무튼, 최소한 이 사이트를 방문하시는 분들만이라도 개념을 좀 명확히 해서 이해하셨으면 좋겠습니다.

  • ?
    유토짱 2018.10.03 11:26
    저 경우에는 보존용 만들때, Bitrate를 원본과 같이 줍니다. 좀더 적게 줘서 용량도 줄이고,화질차이는 거의 안나겠지만, 심리적으로 원본과 같이 주면 손실은 적겠지 하는 생각입니다.
  • ?
    식사동토박이 2018.12.08 19:13
    원본 SD화질을 초 고퀄리티 인코딩으로 FHD급으로 만들순 없잖아요.

List of Articles
번호 제목 글쓴이 날짜 조회 수 추천 수
공지 샤나인코더 4.9 버전부터 추가된 편의기능 >>프리셋 메뉴 및 설정 메뉴를 빠르게 열기<< file 샤나 2018.06.28 3140 0
공지 AMD 플루이드모션 60프레임 인코딩 (real 프레임레이트) 설정방법 (ffmpeg 프레임 보간기법) 22 file 능소화 2017.06.06 10217 0
공지 태-영화체(유료폰트) 와 비슷한 a시네마 무료 폰트 올려드립니다. [링크참조] 2 file 능소화 2017.04.02 10438 0
공지 [TIP] 기존의 '귀여운 소녀' 아이콘으로 돌아가기 1 file 유밍 2017.03.30 3713 0
공지 ※ 설정방법 / 프리셋파일포함 ※ 샤나인코더외부 자막 Mux 기능 추가 [v 4.5.1] 9 file 능소화 2017.03.30 7542 1
46 AV1 코덱의 현재 상황 (인코딩 테스트 - FFmpeg 와 rav1e) 3 file sSTSs 2018.10.11 966 0
45 여러가지 코덱으로 저화질 인코딩 해 보았습니다 (AV1 포함) 7 마소리스 2018.09.26 1250 0
44 webm VP9 멀티스레드 활성화하는 방법, 속도 향상시키는 방법 마소리스 2018.09.25 615 0
» "비트레이트를 원본보다 높게 주면 원본보다 퀄리티가 나아질 수 있다"는 주장에 대해 4 sSTSs 2018.09.19 1631 0
42 SSIM, PSNR로 측정한 NVENC 인코딩 4 file sSTSs 2018.09.09 539 0
41 인코딩된 파일의 PSNR, SSIM 값 계산하기 file sSTSs 2018.09.05 380 0
40 8비트 원본을 10비트로 인코딩하면 8비트로 인코딩할 때보다 화질이 더 낫다? 4 sSTSs 2018.09.04 881 0
39 샤나에서 HEVC(x265)로 2패스 인코딩하기 10 file sSTSs 2018.08.28 1375 0
38 해상도 변경 + 하드웨어 가속 인코딩 시 속도 향상 12 file sSTSs 2018.08.23 1781 0
37 부드러운 움직임의 60 프레임 인코딩 11 sSTSs 2018.07.16 3227 0
36 tonemap, zscale 필터를 이용한 HDR->SDR 변환 (FFmpeg CLI) 4 file sSTSs 2018.06.26 712 0
35 하드웨어 가속 디코딩을 꺼서 인코딩 속도를 높이기 4 sSTSs 2018.06.19 4380 1
34 소장용 고화질 1080p 영상 인코딩 팁 퍼플군단 2018.06.12 5077 0
33 샤나인코더와 자막, Q&A 1 file sSTSs 2018.05.31 1779 0
32 QuickTime/Apple TV에서 재생이 안 되는 HEVC 동영상 문제 해결 1 file sSTSs 2018.05.21 752 0
31 HD(720p) 이상 고해상도 동영상을 HD의 WebM(VP9, Opus 코덱)으로 인코딩하기 file sSTSs 2018.05.20 1522 0
30 wINDOWS10 멀티 데스크톱 정군 2018.05.07 727 0
29 HDR 영상 인코딩하기! 8 황금별똥 2018.01.23 3494 0
28 ASS 자막 파일을 aegisub으로 작업 시 libass를 사용하세요. file 샤나 2018.01.20 1303 1
Board Pagination Prev 1 2 3 Next
/ 3