이미지에 DCT 알고리즘 (이미지 압축)을 적용한 후 이미지의 비트 수 (MATLAB)를 열거하는 방법을 알아야합니다. DCT 알고리즘을 적용한 후 이미지의 비트 수를 확인해야합니다. . 왜냐하면 나는 그것을 512x512 이미지에 적용하고 있기 때문에 압축 전후에 동일한 비트 수를 얻고 있기 때문에 이미지의 비트 수를 계산하는 Matlab 코드가 궁금합니다.DCT를 통해 압축 한 후 이미지의 비트 수를 어떻게 계산합니까?
답변
DCT는 압축이 아닌 변환입니다. 입력 신호에 적용한 후에는 정보가 손실되지 않습니다.
일반적으로 DCT 변환 후 jpg와 같은 알고리즘은 DCT 계수의 양자화를 적용하여 데이터 양을 줄입니다. 그 후, 양자화 된 계수는 허프만 또는 다른 무손실 압축 알고리즘을 사용하여 압축된다.
그래서 DCT는 얼마나 많은 비트를 가지고 있는지 말할 수 없습니다. 호프만에게 물어봐야 해.
임계 값을 적용해도 비트 수가 감소하지 않습니다? – user3197976
아니요, 정수로 정수를 반올림하는 것과 같습니다. 둘 다 같은 양의 비트를 차지할 수 있습니다. – Anonymous
이것은 100 % 정확합니다. +1. @ user3197976 - 당신의 질문은 DCT를 수행 할 때 이미지가 차지하는 공간의 양을 묻습니다. DCT는 전적으로 변형입니다. ** 양자화 **는 DCT가 아닌 비트 수를 줄입니다. 이 때문에 제안 된 복제본은 귀하의 대답입니다. 질문을 수정하여 원하는 내용을 묻지 않는 한이 질문은 닫힙니다. – rayryeng
DCT 알고리즘 자체는 이미지 행렬의 크기를 줄이지 않습니다. 공간 도메인 매트릭스 입력에 변환을 적용하고 주파수 도메인에서 매트릭스를 출력합니다. 자세한 내용은이 부분을 참조하십시오.
http://www.mathworks.com/help/images/discrete-cosine-transform.html#f21-16149
은 적용되는 압축의 양을 지시하는 폐기 DCT 계수의 개수에 따라, 나머지 비 - 제로 계수 많은 비트들이 남아 있는지를 알려준다. 계수 당 비트 수는 이미지 X의 클래스에 의해 결정된다.
클래스 (X)
ANS = 이중
배인 64 비트 단일 부정적인 압축 32 비트
자체에 의한 DCT이다. 원래 데이터보다 DCT 계수를 나타내는 데 더 많은 시간이 걸립니다. – user3344003