========= tech info =========
8 bit header version.
File format:
13 byte original filename, followed by
[ 8 bit header + data ][ 8 bit header + data ][ 8 bit header + data ]
etc..
header:
bit 7 : 1 if following byte is a run
bit 6 - 0 : legnth of run (max 127, min 3)
data: 1 byte : which character run consists of
*** OR ***
header:
bit 7 : 0 if following bytes are sequence
bit 6 - 0 : legnth of sequence (max 127)
data: (header AND 0x7F) bytes of data
: data bytes copied to output stream unchanged
===============================
========= tech info =========
16 bit header version.
File format:
13 bytes : original filename, followed by:
[ 16 bit header + data ][ 16 bit header + data ][16 bit header + data ]
etc..
header:
[lo byte][hi byte] ==> turn into 16 bit int ==>
bit 15 : 1 if following byte is a run
bit 14 - 0 : length of run (max 32767, min 4)
data: 1 byte : which character run consists of
*** OR ***
header:
[lo byte][hi byte] ==> turn into 16 bit int ==>
bit 15 : 0 if following bytes are sequence
bit 14 - 0 : length of sequence (max 32767)
data: (header & 0x7FFF) bytes of data
: data bytes copied to output stream unchanged
===============================
8 bit header version.
File format:
13 byte original filename, followed by
[ 8 bit header + data ][ 8 bit header + data ][ 8 bit header + data ]
etc..
header:
bit 7 : 1 if following byte is a run
bit 6 - 0 : legnth of run (max 127, min 3)
data: 1 byte : which character run consists of
*** OR ***
header:
bit 7 : 0 if following bytes are sequence
bit 6 - 0 : legnth of sequence (max 127)
data: (header AND 0x7F) bytes of data
: data bytes copied to output stream unchanged
===============================
========= tech info =========
16 bit header version.
File format:
13 bytes : original filename, followed by:
[ 16 bit header + data ][ 16 bit header + data ][16 bit header + data ]
etc..
header:
[lo byte][hi byte] ==> turn into 16 bit int ==>
bit 15 : 1 if following byte is a run
bit 14 - 0 : length of run (max 32767, min 4)
data: 1 byte : which character run consists of
*** OR ***
header:
[lo byte][hi byte] ==> turn into 16 bit int ==>
bit 15 : 0 if following bytes are sequence
bit 14 - 0 : length of sequence (max 32767)
data: (header & 0x7FFF) bytes of data
: data bytes copied to output stream unchanged
===============================
本文详细介绍了两种文件压缩格式:8位头部版本和16位头部版本。每种格式都包含了原始文件名及后续的压缩数据结构。8位版本使用单字节头,而16位版本则采用双字节头来指示重复字符或数据序列的长度,支持更长的数据段。

被折叠的 条评论
为什么被折叠?



