문제

를 저장하려는 많은 양의 데이터를 내 아두이노와 ATmega168/ATmega328 마이크로 제어기,그러나 불행하게도가 256KB/512KB 의 EEPROM 에 저장합니다.

내 아이디어를 사용하는 것입의 압축 알고리즘은 아래로 스트립의 크기입니다.하지만,잘 내 지식에 압축 알고리즘은 매우 낮과 내 검색에 대한 준비-사용 라이브러리는 실패했습니다.

그래서,좋은 방법을 최적화하의 저장소 크기는?

도움이 되었습니까?

해결책

당신은 lzo 가볍게 설계된 알고리즘. AVR 시스템에 대한 구현이 있는지는 모르겠지만 직접 구현할 수있는 것일 수 있습니다.

칩의 eeprom에서 사용 가능한 저장량에 대해 다소 잘못된 정보를 얻을 수 있습니다. 데이터 시트에 따르면 나는 EEPROM 크기가 있습니다.

ATMEGA48P : 256
ATMEGA88P : 512
ATMEGA168P : 512
ATMEGA256P : 1024

해당 값이 있습니다 바이트, 당신이 당신의 질문에서 언급했듯이 KB가 아닙니다. 이것은 어떤 척도에 따르면, "똥로드"가 아닙니다.

다른 팁

AVR은 최대 몇 킬로바이트의 eeprom을 가지고 있으며, 64K 이상의 플래시를 가진 사람은 거의 없습니다 (표준 Arduinos는 없음).

예를 들어 이미지를 저장하고 거의 수정할 필요가 없다면 작업 할 공간이 훨씬 더 많으므로 플래시를 사용해 볼 수 있습니다. 간단한 이미지의 경우 일부 원유 인코딩은 먼 길을 갈 것입니다.

예를 들어 기록 된 데이터, 오디오 등과 같은 무작위로 압축하면 AVR에 대해 엄청난 양의 오버 헤드가 발생하면이 데이터를 보유하기 위해 연쇄 EEPROM 칩을 얻는 것이 더 나을 수 있습니다. Arduino의 사이트에는 페이지가 있습니다 64K 칩과 인터페이스, 그 소리. 그 이상을 원한다면 SPI가있는 SD 카드와 인터페이스를보십시오. 이 오디오 방패

여기에 NASA 연구 (추신)

LZW에 관한 1989 년 기사

간단하게 유지하십시오 비용/지불금 분석을 수행하십시오 압축 추가. 여기에는 시간과 노력, 복잡성, 자원 사용, 데이터 압축성 등이 포함됩니다.

는 알고리즘 같은 뭔가 LZSS 아마을위한 좋은 선택이 될 수 있는 임베디드 플랫폼입니다.그들은 간단한 알고리즘,그리고 많이 필요하지 않 메모리입니다.

LZS 는 한 나는 익숙하다.사용 2kB 사전에 대한 압축 및 감압(사전은 가장 최근의 2 개의 kB 의 압축하지 않은 데이터 스트림).(LZS 특허 HiFn, 그러나 멀리로 말할 수 있는 모든 특허가 만료되었습니다.)

그러나 나는 ATmega328, 에서 사용되는 최근 Arduinos,만 512bytes2kB SRAM,그래서 어쩌면 LZS 은 너무 큽니다.나는 확실히 당신이 사용할 수 있다 변형과 함께 작은 사전에,하지만 나는 무엇인지 압축률을 당신이 달성했다.

지연 내성 네트워크의 에너지 제한 장치에 대한 데이터 압축 알고리즘 "에 설명 된 방법은 ATMEGA328.

참조: C. 새들러 및 M. Martonosi,“지연 에너지가있는 네트워크의 에너지 제한 장치에 대한 데이터 압축 알고리즘”, 내장 된 네트워크 센서 시스템 (Sensys) 2006, 2006 년 11 월에 대한 ACM 회의 절차. .PDF. MSPGCC의 S-LZW 소스 : slzw.tar.gz. 2007 년 3 월 10 일 업데이트.

당신은 또한보고 싶을 수도 있습니다 LZJB, 매우 짧고 단순하며 가볍습니다.

또한, Fastlz 볼만한 가치가있을 수 있습니다. LZJB보다 압축 비율이 향상되고 감압에 대한 메모리 요구 사항이 매우 적습니다.

반복되는 0 등을 제거하려면 사용하십시오. 런 길이 인코딩반복 바이트 시퀀스는 다음과 같이 저장됩니다.

<mark><byte><count>

수퍼 단순한 알고리즘으로 몇 줄의 코드로 자신을 코딩 할 수 있습니다.

외부 eeprom (예 : I2C를 통한)이 옵션이 아닌가? 압축 알고리즘을 사용하더라도 내부 EEPROM에 저장할 수있는 데이터의 크기는 더 이상 간단한 방식으로 결정되지 않을 수 있다는 것입니다. SPI에는 ... 그물에 가벼운 가중 오픈 소스 지방 호환 파일 시스템이 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top