2012-03-18 1 views
0

자바로 호프만 압축 프로그램으로 BWT을 쓰려고합니다. 에서 BWT 나는 거리 코딩 (DC)을 구현하려고합니다. 나는 몇 가지 예를 찾고 있지만, 그다지 많은 예가 없다.거리 코딩 (DC) BWT

http://www.cs.ucr.edu/~stelo/cpm/cpm07/move_to_front_gagie.pdf

DC 29 페이지로 시작된다

나는이 예제를 발견했다. 그러나 코멘트가 없기 때문에 이해하기가 정말 어렵습니다.

어쩌면 누군가가 DC를 구현했거나 이론을 통해 실제 코드로 구현하는 법을 알고 있을까요? :)

나는 먼저 그 부분이 char가 무엇인지 쓸 필요가 있다는 것을 알았다. 그러나 멀리서 나는 그것을 얻지 못했다.

각 문자에 대해 DC는 시퀀스에서 다음 발생을 찾아서 S에 쓰고 거리를 출력합니다. 발생이없는 경우 0을 쓰십시오.

감사합니다.

답변

1

나는 자바로 구현을 작성했습니다 : http://code.google.com/p/kanzi/source/browse/java/src/kanzi/function/DistanceCodec.java

당신은 코드 (완전 예)의 시작 부분에 알고리즘의 설명을 볼 수 있습니다. 는 또한, 블록 코더를 살펴 (그것은 BWT + 인 ​​moveToFront + 제로 길이 + 엔트로피 코딩 변환 포함) : http://code.google.com/p/kanzi/source/browse/java/src/kanzi/function/BlockCodec.java

나는 거리 대신 앞으로 이동의 코딩 사용하려고했다. 출력은 MTFT에 비해 DC가 더 작고 (압축성이 좋음) 그러나 엔트로피 코딩 후에는 결과가 반대입니다. MTFT는 엔트로피 압축에 더 적합합니다.

+0

정말 고맙습니다. – Streetboy

+0

이것은 이론적으로 질문에 대답 할 수 있지만 여기에 대답의 핵심 부분을 포함하고 참조 용 링크를 제공하는 것이 바람직합니다 (http://meta.stackexchange.com/q/8259). –