이진 스트림을 압축하려고합니다. 각 '1'이후에는 '0'을 찾을 확률이 더 높으며 각 '0'다음에 '1'을 찾는 확률이 더 높습니다. 어떻게 인코딩해야합니까? 나는 라이스 코드에 대해 생각하고 있었지만 지금까지 얻지 못했습니다 ... 어떤 답장에 대해서 미리 감사드립니다.이진 스트림의 엔트로피 인코딩
3
A
답변
3
간단한 허프만 코딩을 시도해 보셨습니까? 아마도 '10'과 '01'코드 중 하나가 '00'또는 '11'보다 훨씬 높은 확률을 가지면 '0'으로 매핑하고 다른 하나는 '10'으로 매핑 할 수 있습니다. , '110'및 '111'.
물론이 방법은 스트림을 2 비트 청크로 분할하고 하나의 경우 만 최적화하기 때문에 최상의 선택이 아닙니다. 그러나, 4 비트 또는 8 비트와 같은 더 큰 입력 세트에 대한 확률을 계산/측정함으로써 정교 할 수있다. 8 비트 경우 10101010 및 01010101은 00000000 및 11111111보다 자주 사용됩니다.
산술 코딩 또는 비트 프로 파일링을 기반으로하는 일부 압축을 사용하면 더 나은 결과를 얻을 수 있습니다.
또 다른 간단한 접근법은 모든 두 번째 비트를 뒤집는 것입니다. 당신이 말한 확률이 0101010과 같이 많은 수의 스트림 부분을 가지고있는 경향이 있기 때문에 보통 111111과 같은 많은 스트림 부분을 제공 할 것입니다. 보통 111111은 보통의 압축 알고리즘으로 더 잘 압축 될 수 있습니다. 그러나이 방법의 성공 여부는 "확률 격차"가 얼마나 큰지에 달려 있습니다.
관련 문제
- 1. 오디오 스트림의 노래 제목 인코딩
- 2. 이진 인코딩 + 전송 보안 (WCF)
- 3. WCF를 통해 이진 데이터 보내기 : 이진 대 MTOM 인코딩
- 4. 언어 모델링을위한 교차 엔트로피
- 5. 증분 최대 엔트로피 분류기
- 6. 디시 젼 트리의 엔트로피
- 7. 엔트로피 풀 생성기
- 8. AS3 소스 코드 엔트로피
- 9. 엔트로피 소스의 안전한 혼합
- 10. 자바에서 Microsoft 이진 XML을 인코딩/디코딩
- 11. ActionScript2 Base64 이진 데이터 인코딩/디코딩
- 12. Base64에서 AppEngine의 이진 업로드 데이터 인코딩
- 13. 비트 스트림의 비트 순서
- 14. 엔트로피 메모리가있는 정보 소스의 비율
- 15. 스칼라에서 스트림의 사용 사례
- 16. AudioTrack 스트림의 알림 메시지
- 17. 스트림의 뷰와 비교하기
- 18. 기본 스트림의 처리를 피하십시오.
- 19. VB.NET에서 스트림의 이미지 오버레이
- 20. 보기와 스트림의 차이점은 무엇입니까?
- 21. RSS 스트림의 애드 센스
- 22. 스트림의 이야기는이 응용 프로그램
- 23. 네트워크 스트림의 추가 바이트
- 24. zip 파일에서 이진 파일 및 문자 인코딩 감지
- 25. 이진 데이터를 유니 코드로
- 26. DPAPI를 사용하는 동안 선택적으로 엔트로피 저장
- 27. 이진 문자열을 파일에 쓰기
- 28. C에서 FLV 스트림의 오디오 추출 #
- 29. 오브젝트 출력 스트림의 java.lang.ClassCastException readObject
- 30. 자바 스트림의 최적 블록 크기
안녕하세요! 나는 허프만을 시도했지만, 알다시피, 최적의 결과를 얻지는 못할 것이다. 그러나 제안 산술 코딩에 감사드립니다. 올바른 선택처럼 보입니다. 시도해 보겠습니다. 감사! – zakk
산술 부호화가 특허를 받았으며 범위 부호화를 사용합니다. –