허프먼 부호화: 두 판 사이의 차이

내용 삭제됨 내용 추가됨
토끼군 (토론 | 기여)
잔글 A. 뺌
파란로봇군 (토론 | 기여)
Revert to the revision prior to revision 11879 dated 2004-08-06 02:48:35 by 211.252.151.24 using popups
1번째 줄:
dafgadafd
[[전산학]]과 [[정보 이론]]에서 '''허프만 부호화'''(Huffman coding)는 [[무손실 압축]]에 쓰이는 [[엔트로피 부호화]]의 일종으로, 데이터 문자의 등장 빈도에 따라서 다른 길이의 부호를 사용하는 [[알고리즘]]이다. [[1952년]] 당시 박사과정 학생이던 [[데이비드 허프만]]이 {{lang|en|A Method for the Construction of Minimum-Redundancy Codes}}란 제목의 논문으로 처음 발표했다.
 
허프만 부호화는 문자들의 빈도로부터 [[접두 부호]](어떤 한 문자에 대한 부호가 다른 부호들의 접두어가 되지 않는 부호)를 만들어 내는 알고리즘으로, 적게 나오는 문자일수록 더 긴 부호를 쓰고 많이 나올수록 더 짧은 부호를 쓴다. 허프만 부호화는 주어진 빈도에 대해서 항상 최적의 접두 부호를 만들어 내며, 이 과정은 빈도가 [[정렬 알고리즘|정렬]]되어 있을 경우 [[대문자 O 표기법|O]](''n'')만에 가능하다. 각 문자들의 빈도가 2의 거듭제곱 꼴이거나 모두 같을 경우 이 접두 부호는 간단한 이진 [[블록 부호]]와 동일하다.
 
허프만 부호화가 항상 최적의 접두 부호를 만들어 내기는 하지만, 접두 부호가 아닌 다른 종류의 부호가 더 효율적일 수도 있다. 예를 들어 여러 문자를 하나의 부호로 묶어 표현할 수 있는 [[산술 부호화]]나 [[LZW]] 등이 허프만 부호보다 효율적인 경우가 많으며, 특히 후자 같은 경우 문자들의 빈도를 정확히 알 수 없는 경우에도 적용할 수 있다.
 
[[분류:무손실 압축 알고리즘]]
 
[[cs:Huffmanovo kódování]]
[[de:Shannon-Fano-Kodierung]]
[[en:Huffman coding]]
[[es:Algoritmo de Huffman]]
[[fi:Huffmanin koodaus]]
[[fr:Codage de Huffman]]
[[he:קוד הופמן]]
[[it:Codifica di Huffman]]
[[ja:ハフマン符号]]
[[nl:Huffmancodering]]
[[pl:Kodowanie Huffmana]]
[[pt:Codificação de Huffman]]
[[sv:Huffmankodning]]
[[th:รหัสฮัฟแมน และ รหัสแชนนอน-ฟาโน]]
[[zh:哈夫曼树]]