사용자 도구

사이트 도구


사이드바

홈레코딩 위키

홈레코딩 커뮤니티
홈레코딩 오픈카카오톡 채팅방

9_오디오_미신:높은_bit_depth가_무조건_좋은거다

?높은 bit depth가 무조건 좋은거다?

그렇지 않다. 연산 형식이 다른 두 형태의 bit depth를 같이 비교하면 안된다.

정수형과 부동소수형의 장단점

일단 숫자 데이터 연산의 형식에는 정수형(Integer)과 부동소수형(Floating Point)가 있고, 서로 사용하는 연산기가 다르다. 정수형의 장점은 빠른 계산이 가능하다는점, 하지만 표현할수있는 숫자의 범위가 제한된다는 점이고

부동소수형의 장점은 글자수(bit) 에 비해서 표현할수 있는 숫자의 범위가 매우 크다는 점이지만, 실제 숫자 표현의 자릿수와 소수점 표현에 대한 자리수의 복잡한 표현으로 이루어지기 때문에, 계산방식이 다소 느려진다는 점. 그리고 오차가 다소 발생할수 있다는 점이 그 단점이다.1)

각 데이터 형식의 표현 범위

정수형 숫자 표현의 범위
16bit Integer 의 총 표현 가능 단계 = 65536 (5자리수)
24bit Integer 의 총 표현 가능 단계 =16777216 (8자리수)
32bit Integer 의 총 표현 가능 단계 = 4294967296 (10자리수)
48bit Double Precision Integer = 2.8147498e+14 (e+x 는 +10^X 를 말합니다.) = 28147598000 (14자리수)
56bit Integer = 1.8014399e+16 = (16자리수)
64bit Integer = 1.8446744e+19 = (19자리수)

부동소수형 숫자 표현의 범위
32bit Float Point = 3.4028235e+38 = (38자리수)

이중에서 32비트 정수형과 32비트 부동소수를 비교하면
32비트 정수형은 10자리수, 32비트 부동소수는 38자리수의 숫자를 표현가능하므로, 32비트 부동소수에서 맨 끝자리수가 오차가 나더라도 심지어 2자리나 오차가난다 하더라도, 32비트 정수형의 -27, -27 자리수에서 오차가 나는 것으로, 개미의 발톱도 안되는 오차라고 볼수있다.

부동소수의 오차

오차의 예를들자면
정수형 표현에서 12345 라고 표현되는 숫자가, 부동소수형에서는 오차가 발생하여 12345.0000000000000000000000000000000001 로 표현되는것으로 이해하면된다.
이러한 오차는 아주 정밀해야하는 공학계산에서는 치명적일수 있지만, 그래픽 표현, 오디오 표현 등에서는 크게 중요하지 않다.

그렇기 때문에 그래픽카드에서 쓰이는 GPU에서는 거의 부동소수형 연산자를 가진 칩을 사용하고, 오디오 쪽에서는 최근 부동소수형 DSP 칩들이 레이턴시가 짧아진 제품들이 나오면서2) 부동소수형 칩을 사용하는 경향이다.3)

디지털 콘솔은 왜 정수형 연산자를 쓰는가?

디지털 콘솔들중에서 내부 DSP 의 연산형식이, 48bit, 56bit 등인 제품들은 Integer DSP 연산형식으로 나온 제품들이고 연산 “레이턴시” 부분에서 이득을 보기위해 채택한 DSP 정수형 연산자를 쓰기 때문이다. 이제품들의 해상도는 32 bit Floating Point DSP 보다 해상도 면에서는 떨어지는 것이다.하지만 Integer 가 연산속도4)가 빠르므로 “레이턴시”부분에서 유리하기 때문에 아직도 디지털 콘솔중엔 정수형 DSP 를 쓰는 제품이 많이 있다.

결론

위에서 볼수있듯이 32 bit Floating point 가 표현할수 있는 숫자 범위는 정수형 표현과 비교하면 128 bit Integer 라고 해도 상대가 안될정도로 높으므로 48,56bit Integer 등과 같은 Integer 연산자들과 비교한다면 32bit Floating은 거의 아날로그와 같다고 생각해도 무리가 아니다.5)

1)
하지만 오차는 무시해도 되는 수준으로 알려져있다. 공학계산의 경우에는 100% 동일해야 해서 부동소수점계산을 피하지만, 오디오나, 그래픽등의 분야에서는 오차는 무시해도 되므로 부동소수를 적극 활용한다.
2)
부동소수 DSP 칩이 나오게 된 원인은 공학계산 용도 등으로도 부동소수오차가 크게 의미 없다는 판단이었을 것이다.사실 DSP 는 계산의 정확도 때문에 그동안 정수형 DSP 가 대세였다.
3)
CPU는 정수형 연산자와 부동소수형 연산자들 둘다 지니고 있다.
4)
정수형 연산은 그냥 2진법기본 연산이므로 빠르다.
5)
사실 아직도 프로툴 구형의 48bit integer 가 32bit floating 보다 좋은거라는 헛소리를 하는 사람이 많다.!!아주 많다!! 프로툴도 지금 현재 신형의 경우는 32bit floating 연산을 하는 DSP칩으로 바뀌었다.
로그인하면 댓글을 남길 수 있습니다.
9_오디오_미신/높은_bit_depth가_무조건_좋은거다.txt · 마지막으로 수정됨: 2021/05/23 06:58 저자 merefox