2011-10-10 3 views
0

문자 디스플레이의 크기를 줄이기 위해 encode numbers to a base like 65을 사용할 수 있음을 알고 있습니다 (2 진수가 더 작더라도).문자열을 다른 문자로 더 많은 문자로 인코딩 하시겠습니까?

그러나 표준 26 자 영문자보다 많은 문자로 다른 기본 문자로 UTF-8 텍스트를 인코딩하는 방법이 있습니까? 즉, "4"라는 단어에 4 개의 "문자"가 필요하지 않고 - 단지 2 개 (즉 "6 $") 만 사용하여 표현이나 해시를 만들 수 있습니까?

+0

: 만 허프만 압축 여기 (Huff0)는 샘플 입력을 위해이 기술을 사용하여 당신이 얻을 수 얼마나 많은 결정하는 데 도움이됩니다의 한 패스를 적용 데모 프로그램을 찾을 수 있습니다 4 문자 UTF8 문자열을 무손실로 2 바이트로 나타낼 수 있습니까? – NPE

+0

실제로 @aix, 임의의 2 ~ 30 자의 문자열 (단어)을 압축 할 수 있는지 물어보고 있으므로 표준 26 자의 알파벳보다 공간이 적습니다. 지퍼 링이나 해싱과 같이 값의 대표자를 만들 수 있습니다. – Xeoncross

답변

0

필자는 Base64의 핵심은 모든 이진 데이터를 "사람이 읽을 수있는"문자와 숫자로 쉽게 변환 할 수 있다고 믿습니다. 임의의 데이터를 뉴스 그룹에 쉽게 복사하거나 텍스트 기반 프로토콜을 통해 전송할 수 있습니다.

이 데이터를 추가로 압축하려면 허용 할 문자 수를 알아야합니다. 8 비트의 많은 조합이 있습니다. 가장 효율적인 방법은 gzip을 사용하지 않는 경우 모두를 사용하는 것입니다.

+0

사람이 읽을 수있는 방법으로 값을 표현하고 (gzip 된 각 값의 압축을 풀지 않고) gzip 값을 비교하는 방법이 있으면 gzip을 사용하면 행복 할 것입니다. 위에 링크 된 코드에서 숫자 4,023을 "~ h"로 변환하는 예를 볼 수 있습니다. – Xeoncross

0

귀하의 질문은 주문-0을 엔트로피 코딩 관련 보인다 : http://en.wikipedia.org/wiki/Huffman_coding

허프만뿐만 아니라 당신을 알려줍니다 64 문자가 사용되는 것 : http://en.wikipedia.org/wiki/Entropy_encoding

가장 유명한 알고리즘이 가족을 허프만 코딩입니다 따라서 문자 당 6 비트 만 필요합니다. 빈번한 문자 (예 : 빈 문자)와 희귀 문자 (예 :) 사이에 차이가 생깁니다. 그런 다음 자주 사용하는 문자가 희귀 문자보다 적은 비트를 사용하여 더 나은 압축을 제공하는 코드를 만듭니다 (일반적으로 영어 텍스트의 문자 당 4.5 비트).

허프만 코딩은 zip을 비롯한 많은 압축 알고리즘의 일부로 사용되는 올 - 어라운드 압축 기술입니다. 당신이 임의의 여부를 묻는 http://fastcompression.blogspot.com/p/huff0-range0-entropy-coders.html

관련 문제