리플레이게인에 대한 질문
댓글 14
댓글 쓰기근데 그렇다고 하면 리플레이게인이 클리핑을 어떻게 없애는 거죠 (디지털 볼륨 낮춘다고 클리핑이 없어지는건... 아니지 않나요?)
클리핑이 음원에 기록되기 전에 생긴 것이면 무슨 수를 써도 없앨 수 없는건 마찬가지고, 재생 과정에서 레벨 포화로 생긴 것이면 소프트웨어 볼륨조절이 즉효입니다.
아래 누구게님께서 원리를 잘 설명해 주셨습니다만, 제가 알기로 태그 인식/볼륨조절은 DAC이 아니라 재생 어플이 할겁니다. SPDIF 규격으로는 메타데이터 전송이 안되는데 SPDIF 연결로도 리플레이게인을 쓸 수 있거든요.
리샘플링 먼저가 아니라 이 순서로 이루어져도 DNR 손실을 막을 수 있는 건가요?
OS의 사운드 커널에서 출력포맷의 비트스케일을 키웠다고 하는건 샘플값의 분모를 키우는 겁니다. 데이터를 읽기도 전에 이미 되어 있는 것이지요. 포토샵에서 그림을 그리거나 불러오기 전에 미리 캔버스 크기를 키워서 레이어를 확대/축소해도 도트가 안 튀게 하는 것과 마찬가지입니다.
음원 파일을 읽으면서 (설정한 비트뎁스와 샘플링레이트로) 리샘플링 => 플레이어 프로그램에서 음원파일 태그의 리플레이게인 태그를 읽어서 소프트웨어 볼륨 조절 => 블루투스나 유선을 통해 DAC로 전송
이라는 건가요?
리플레이게인으로 비트뎁스가 16비트보다 작아졌다면 샘플링을 다시 16비트로 해도 DAC로 전송되기 전 손실된 부분이 복구되는 게 아닌 건가요?꼭 24비트로 해야 복구가 되는 건가요?
업샘플링/업스케일링을 해야 하는가 말아야 하는가는 사용자가 할 고민이 아니라, 제한된 자원(깎인 비트레이트)를 가지고 최상의 결과(깎인 티 안나는 음질)을 내기 위한 알고리즘을 설계하는 사람이 고민해야 할 문제입니다. 애플처럼 닫힌 생태계에서라면 이를 사용자 선택에 맡기는건 무책임한거고, 열려있는 생태계에서라면 호환성을 위해서 불가피하기도 합니다.
그러니 블루투스DAC을 사용하고 계신 이상 비트 무결성 문제에 대해서는 너그럽게 넘어가고 편리함과 연결 안정성에 신경쓰시는게 좋습니다.
일단 이건 제가 이해하고 있는 리플레이게인에 대한 설명입니다. 제가 잘못 알고 있을 수도 있습니다;
먼저 mp3 에 대해서.. mp3는 먼저 기준 음압이 있고 거기에 추가로 음량을 +- 해서 실제 소리크기를 구현합니다.
예를 들면 어떤 mp3가 기준 음압 89dBSPL 이라고 치고, 30초 부분은 도입부이기에 작은 소리 -3dB 로 소리를 내보내고, 2분 10초 부분은 클라이맥스이기 때문에 +6dB 로 소리를 내보내라.. 이런 식입니다. 실제로는 30초 부분은 86dBSPL로, 2분 10초 부분은 95dBSPL 로 재생이 되겠죠.
여기서 mp3gain 이라는 것이 등장합니다. 그럼 어떤 mp3 파일의 전체 소리를 키우려면 기준 음압 89dBSPL 을 95dBSPL 이라고 바꿔써주면 간단하겠네? 실제 소리 데이터 부분은 안건드리니까 음질 열화도 안 생기겠네? 하는 아이디어로 mp3파일들의 기준음압을 조정해 음량을 쉽게 바꿔주는 유틸이 만들어진 것이죠.
그 다음으로 나온게 replayGain인데요, 이건 mp3gain이 유용하다보니까.. 이걸 mp3가 아닌 다른 음원파일들에도 적용해보면 어떨까? 그런데 다른 음원파일들에는 기준음압 같은 게 없는데? 그럼 소리를 얼마 더 올리거나 내리라는 정보를 메타데이터 부분에 적어서 dac 이 알아서 처리하라고 하면 되지 않을까? 해서 메타데이터에 녹음된 음량보다 +6dB 크게 재생해라 라는 정보를 적어두도록 한 게 replayGain 입니다. 대신 메타데이터를 이해하지 못하는 오래된 dac에서는 음량 변화가 없을 수도 있습니다.
여기까지 이해하셨으면 이제 답변은..
1. 리플레이게인에서 전체 음량을 낮췄을 때 작은 소리가 사라지는 것은 음질이 나빠지는 게 아니라 재생된 소리 크기가 가청 음압 이하로 떨어져서 안 들리는 것이므로 음질에 악영향을 끼친다고 볼 수 없습니다. 볼륨을 올리면 들릴 수 있습니다. 하지만 dac이 출력하는 다이나믹 범위 이하로 떨어졌을 때 재생이 되지 않는 것은 어쩔 수 없습니다. 바꿔 말하면, dac 에서 업스케일링 (ex. 16비트 -> 32비트)을 해서 출력한다면 다이나믹이 늘어서 들릴 수 있겠죠.
2. 원본의 소리데이터쪽에서 이미 클리핑이 나 있으면, 다시 말해 녹음 자체가 클리핑나게 녹음되어 있으면 리플레이게인이든 디지털 볼륨이든 아날로그 볼륨이든 없앨 수는 없습니다. 기기 허용범위를 넘는 소리를 재생하느라 클리핑되고 있는 것이라면 리플레이게인이든 디지털/아날로그 볼륨이든 줄이면 클리핑이 없어집니다.
3. 리플레이게인은 소리 데이터와는 상관없이 재생시 원 소리 데이터보다 얼마나 더 소리를 키워 재생할것인지를 알려주는 것만 하는 것이라 업스케일링/리샘플링이 필요 없습니다.
그리고, 결국 재생 시에 리플레이게인이 디지털 볼륨조절과 동일하게 작동하기 때문에 디지털 볼륨조절이 비트뎁스와 다이나믹레인지에 손상을 준다면 리플레이게인 역시 손상을 준다고 할 수 있습니다.
리플레이게인이 음질에 악영향을 주지 않는다고 보통 말하는 이유는 원본 파일의 소리 데이터를 건드리지 않기 때문에 디지털 음원 자체의 음질을 떨어뜨리지 않고, 원상복구도 가능하기 때문입니다. 그리고 이건 dac을 지나치지 않은 원본 데이터 파일에 대해서만 맞다고 할 수 있겠죠.