2011-02-08 4 views
6

Jpeg에서 Hufman 코드를 사용한다고 들었습니다. 허프만 코드 란 무엇입니까?Jpeg 인코딩 기술

+3

허프만 ** 코딩 **입니다. 당신이 봤다면, 첫 번째 답변은 [Wikipedia의 페이지] (http://en.wikipedia.org/wiki/Huffman_coding)로 연결됩니다. – darioo

답변

8

허프만 코딩은 심볼 (바이트, DCT 계수 등)을 취하여 통계적 확률에 따라 할당 된 가변 길이 코드로 인코딩하는 방법입니다. 자주 사용되는 기호는 몇 비트 만 사용하는 코드로 인코딩되며, 거의 사용되지 않는 기호는 인코딩 할 때 더 많은 비트가있는 기호로 표시됩니다.

JPEG 파일에는 이러한 가변 길이 코드 (1에서 16 비트 사이)와 코드 값 (8 비트 바이트) 간의 매핑을 정의하는 최대 4 개의 호프만 테이블이 있습니다. 이러한 테이블을 생성하는 것은 일반적으로 각 심볼 (DCT 코드 워드)이 이미지에 얼마나 자주 나타나는지 계산하고 이에 따라 비트 스트링을 할당하는 것을 포함합니다. 그러나 대부분의 JPEG 인코더는 단순히 JPEG 표준에 제시된 허프만 테이블을 사용합니다. 일부 인코더는 이러한 테이블을 최적화 할 수있게하여 최적의 이진 트리가 생성되어 더 효율적인 허프 먼 테이블을 생성 할 수 있습니다.

허프만 코딩 JPEG 압축 단지 마지막 단계는 다음과 같습니다

그냥 david99world에 의해 주어진 답을 완료하는 데 훨씬 더 깊은 설명

+1

감사합니다. 또 다른 질문입니다. 언급 한 DCT 계수는 무엇입니까? –

7

에 대한 http://www.cs.duke.edu/csed/poop/huff/info/에서보세요. 중요한 압축은 양자화 매트릭스에서 DCT에 적용됩니다. 이게 뭐야? 음, DCT 변환은 주파수별로 이미지 정보를 표시하는 방법 일뿐입니다. 왼쪽 우수한 모서리에서 대부분의 정보가 집중하고, 주파수 정보를 나타내는 경우가 DCT 계수와 행렬이있을 것이다

enter image description here

:

enter image description here

을 대신이 같은 화소 값을 갖는 매트릭스를 갖는

여기서 DCT 계수를 얻었으니 실제 압축 단계입니다.이 값은 사람의 눈을 기준으로 모든 값을 양자화 행렬로 나눕니다. 이 매트릭스는 인간의 눈과 관련이없는 정보를 포함하는 계수를 0으로 만들고 중요한 계수를 거의 동일하게 만듭니다.

enter image description here

왜이 단계는 압축 중요한가? 이제는 0이 많으므로 허프만 코딩은 작은 코드 워드로 많은 양의 0을 그룹화하므로 저장 메모리가 절약됩니다.

enter image description here

당신은 매트랩 프로그램 전체 알고리즘을 시도 할 수 있습니다 당신이 더 잘 이해할 수있을 것이다. Q 행렬을 여러 번 적용하면 더 많은 압축 (제로)을 갖지만 저품질 이미지를 얻을 수 있습니다.

이 점이 나에게 도움이되기를 바랍니다.