왜 마법의 숫자가 정확히 1 : 2로 보이는지, 왜 예를 들어 1 : 1.1 또는 1:20이 아닌지 설명했는지 확실하지 않습니다.
한 가지 이유는 대부분의 경우 디지털화 된 데이터의 거의 절반이 노이즈 이며 노이즈 (정의에 따라)를 압축 할 수 없기 때문입니다.
나는 매우 간단한 실험을했다 :
나는 회색 카드를했다 . 인간의 눈에는 마치 평범한 중립 회색 마분지처럼 보입니다. 특히 정보 가 없습니다 .
그리고 사람들이 사진을 디지털화하는 데 사용할 수있는 종류의 장치 인 일반 스캐너를 사용했습니다.
회색 카드를 스캔했습니다. (실제로, 나는 엽서와 함께 회색 카드를 스캔했습니다. 엽서에는 위생 검사를 위해 스캐너 소프트웨어가 이상한 회색 카드를 볼 때 자동으로 대비를 추가하는 등 이상한 일을하지 않도록 할 수있었습니다.)
그레이 카드의 1000x1000 픽셀 부분을 잘라 그레이 스케일 (픽셀 당 8 비트)로 변환했습니다.
스캔 한 흑백 사진 에서 특징이없는 부분 ( 예 : 맑은 하늘) 을 연구 할 때 발생하는 상황에 대한 좋은 예입니다 . 원칙적으로 볼 것이 없습니다.
그러나 더 큰 배율에서는 실제로 다음과 같습니다.
명확하게 보이는 패턴은 없지만 균일 한 회색 색상은 없습니다. 그중 일부는 그레이 카드의 결함으로 인해 발생했을 가능성이 높지만 대부분 스캐너에서 발생하는 노이즈 (센서 셀, 앰프, A / D 변환기의 열 노이즈)라고 생각합니다. 가우스 잡음과 매우 비슷합니다. 여기 (히스토그램의 로그 스케일)
이제 우리는 경우에 가정 각 픽셀의 그늘이 분포 IID 집어 가지고, 우리는 얼마나 많은 엔트로피를해야합니까? 내 파이썬 스크립트는 픽셀 당 3.3 비트의 엔트로피를 가지고 있다고 말했습니다 . 그리고 그것은 많은 소음입니다.
이 경우 실제로 어떤 압축 알고리즘을 사용하든 1000x1000 픽셀 비트 맵이 최상의 경우 412500 바이트 파일로 압축됩니다. 그리고 실제로 일어나는 일 : 432018 바이트 PNG 파일이 꽤 가깝습니다.
우리가 약간 지나치게 일반화하면이 스캐너로 스캔 한 흑백 사진에 관계없이 다음과 같은 합계를 얻는 것처럼 보입니다.
- "유용한"정보 (있는 경우)
- 소음, 약. 픽셀 당 3 비트.
압축 알고리즘이 유용한 정보를 픽셀 당 << 1 비트로 압축하더라도 압축 할 수없는 노이즈의 픽셀 당 3 비트를 여전히 가질 수 있습니다. 압축되지 않은 버전은 픽셀 당 8 비트입니다. 따라서 압축 비율은 무엇을하든 1 : 2의 야구장에 있습니다.
과도하게 이상화 된 조건을 찾으려는 또 다른 예 :
- 가장 낮은 감도 설정 (최소 노이즈)을 사용하는 최신 DSLR 카메라.
- 회색 카드의 초점이 맞지 않은 샷 (회색 카드에 눈에 보이는 정보가 있어도 흐리게 처리됨).
- 대비를 추가하지 않고 RAW 파일을 8 비트 그레이 스케일 이미지로 변환 상용 RAW 변환기에서 일반적인 설정을 사용했습니다. 변환기는 기본적으로 노이즈를 줄입니다. 또한 최종 결과를 8 비트 파일로 저장하고 있습니다. 즉, 원시 센서 판독 값 의 최하위 비트 를 버립니다 .
그리고 최종 결과는 무엇입니까? 스캐너에서 얻은 것보다 훨씬 나아 보입니다. 소음이 덜 뚜렷하고 볼 것이 없습니다. 그럼에도 불구하고 가우스 잡음은 다음과 같습니다.
그리고 엔트로피? 픽셀 당 27 비트 . 실제로 파일 크기는? 1M 픽셀의 경우 344923 바이트 진정으로 최고의 시나리오에서 일부 부정 행위와 함께 압축 비율을 1 : 3으로 높였습니다.
물론이 모든 것이 TCS 연구와는 전혀 관련이 없지만 실제 디지털 데이터의 압축을 실제로 제한하는 요소 를 명심하는 것이 좋습니다 . 더 멋진 압축 알고리즘 설계의 발전과 원시 CPU 성능은 도움이되지 않습니다. 모든 노이즈를 무손실로 저장하려면 1 : 2보다 훨씬 잘 수행 할 수 없습니다.