PCOMP - The PaulOS Compressor.

The PaulOS Compressor has (currently) 3 compression methods. The decompressor automatically detects which type was used and decodes appropriately.

It does not achieve brilliant compression. Currently, it can use two RLE methods and a word analysis. This is a beta version, so the word analysis can only handle small files at the moment.


Sample

Here's a hex listing of the sample PTAR file (created in the PTAR section) compressed using the Basic RLE option:

ADDR 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15    0123456789ABCDEF

0000 50 43 4F 4D 50 31 52 4C 45 20 20 00 50 00 54 00    PCOMP1RLE  .P.T.
0010 41 00 52 00 50 00 61 00 75 00 6C 00 4F 00 53 00    A.R.P.a.u.l.O.S.
0020 20 00 57 00 65 00 62 00 73 00 69 00 74 00 65 00     .W.e.b.s.i.t.e.
0030 20 00 52 01 6F 00 74 00 20 00 46 00 6F 00 6C 00     .R.o.t. .F.o.l.
0040 64 00 65 00 72 35 20 00 02 02 00 00 43 00 4F 00    d.e.r5 .....C.O.
0050 4E 00 54 00 45 00 4E 00 54 00 53 00 2E 00 48 00    N.T.E.N.T.S...H.
0060 54 00 4D F2 20 00 67 00 02 01 00 00 57 00 01 01    T.M .g.....W...
0070 00 00 49 00 4E 00 44 00 45 00 58 00 7E 00 31 00    ..I.N.D.E.X.~.1.
0080 2E 00 48 00 54 00 4D F3 20 00 67 00 06 01 00 00    ..H.T.M .g.....
0090 66 02 00 00 3C 00 62 00 6F 00 64 00 79 00 20 00    f...<.b.o.d.y. .
00A0 62 00 67 00 63 00 6F 00 6C 00 6F 00 72 00 3D 00    b.g.c.o.l.o.r.=.
00B0 22 00 23 05 66 00 22 00 20 00 74 00 65 00 78 00    ".#.f.". .t.e.x.
00C0 74 00 3D 00 22 00 23 05 30 00 22 00 20 00 6C 00    t.=.".#.0.". .l.
00D0 65 00 66 00 74 00 6D 00 61 00 72 00 67 00 69 00    e.f.t.m.a.r.g.i.
00E0 6E 00 3D 00 31 00 3E 00 0D 00 0A 00 3C 00 62 00    n.=.1.>.....<.b.
00F0 61 00 73 00 65 00 20 00 74 00 61 00 72 00 67 00    a.s.e. .t.a.r.g.
0100 65 00 74 00 3D 00 22 00 6D 00 61 00 69 00 6E 00    e.t.=.".m.a.i.n.
0110 22 00 3E 00 0D 00 0A 00 3C 00 50 00 3E 00 3C 00    ".>.....<.P.>.<.
0120 69 00 3E 00 4E 00 61 00 76 00 69 00 67 00 61 00    i.>.N.a.v.i.g.a.
0130 74 00 69 00 6F 00 6E 00 3C 00 2F 00 69 00 3E 00    t.i.o.n.<./.i.>.
0140 3C 00 2F 00 70 00 3E 00 0D 00 0A 00 0D 00 0A 00    <./.p.>.........
0150 3C 00 55 00 4C 00 3E 00 0D 00 0A 00 3C 00 4C 00    <.U.L.>.....<.L.
0160 49 00 3E 00 3C 00 61 00 20 00 68 00 72 00 65 00    I.>.<.a. .h.r.e.
0170 66 00 3D 00 22 00 6D 00 61 00 69 00 6E 00 2E 00    f.=.".m.a.i.n...
0180 68 00 74 00 6D 00 22 00 3E 00 48 00 6F 00 6D 00    h.t.m.".>.H.o.m.
0190 65 00 3C 00 2F 00 61 00 3E 00 0D 00 0A 00 3C 00    e.<./.a.>.....<.
01A0 6C 00 69 00 3E 00 54 00 65 00 63 00 68 00 6E 00    l.i.>.T.e.c.h.n.
01B0 6F 00 6C 00 6F 00 67 00 69 00 65 00 73 00 0D 00    o.l.o.g.i.e.s...
01C0 0A 00 09 00 3C 00 55 00 4C 00 3E 00 0D 00 0A 00    ....<.U.L.>.....
01D0 09 00 3C 00 6C 00 69 00 3E 00 3C 00 61 00 20 00    ..<.l.i.>.<.a. .
01E0 68 00 72 00 65 00 66 00 3D 00 22 00 70 00 69 00    h.r.e.f.=.".p.i.
01F0 6D 00 67 00 2F 00 70 00 69 00 6D 00 67 00 2E 00    m.g./.p.i.m.g...
0200 68 00 74 00 6D 00 22 00 3E 00 50 00 69 00 6D 00    h.t.m.".>.P.i.m.
0210 67 00 3C 00 2F 00 61 00 3E 00 0D 00 0A 00 09 00    g.<./.a.>.......
0220 3C 00 6C 00 69 00 3E 00 3C 00 61 00 20 00 68 00    <.l.i.>.<.a. .h.
0230 72 00 65 00 66 00 3D 00 22 01 61 00 2F 01 61 00    r.e.f.=.".a./.a.
0240 2E 00 68 00 74 00 6D 00 22 00 3E 00 41 00 6E 00    ..h.t.m.".>.A.n.
0250 74 00 69 00 2D 00 61 00 6C 00 69 00 61 00 73 00    t.i.-.a.l.i.a.s.
0260 69 00 6E 00 67 00 3C 00 2F 00 61 00 3E 00 0D 00    i.n.g.<./.a.>...
0270 0A 00 09 00 3C 00 6C 00 69 00 3E 00 3C 00 61 00    ....<.l.i.>.<.a.
0280 20 00 68 00 72 00 65 00 66 00 3D 00 22 01 70 00     .h.r.e.f.=.".p.
0290 65 00 2F 01 70 00 65 00 2E 00 68 00 74 00 6D 00    e./.p.e...h.t.m.
02A0 22 00 3E 01 50 00 45 00 2F 01 50 00 43 00 3C 00    ".>.P.E./.P.C.<.
02B0 2F 00 61 00 3E 00 0D 00 0A 00 09 00 3C 00 6C 00    /.a.>.......<.l.
02C0 69 00 3E 00 3C 00 41 00 20 00 68 00 72 00 65 00    i.>.<.A. .h.r.e.
02D0 66 00 3D 00 22 00 70 00 74 00 61 00 72 00 2F 00    f.=.".p.t.a.r./.
02E0 70 00 74 00 61 00 72 00 2E 00 68 00 74 00 6D 00    p.t.a.r...h.t.m.
02F0 22 00 3E 00 50 00 54 00 41 00 52 00 3C 00 2F 00    ".>.P.T.A.R.<./.
0300 61 00 3E 00 0D 00 0A 00 09 00 3C 00 2F 00 75 00    a.>.......<./.u.
0310 4C 00 3E 00 0D 00 0A 00 3C 00 2F 00 55 00 4C 00    L.>.....<./.U.L.
0320 3E FF 00 FF 00 A8 00 00 3C 00 66 00 72 00 61 00    >......<.f.r.a.
0330 6D 00 65 00 73 00 65 00 74 00 20 00 63 00 6F 00    m.e.s.e.t. .c.o.
0340 6C 00 73 00 3D 00 22 00 31 00 35 00 30 00 2C 00    l.s.=.".1.5.0.,.
0350 2A 00 22 00 3E 00 0D 00 0A 00 09 00 3C 00 66 00    *.".>.......<.f.
0360 72 00 61 00 6D 00 65 00 20 00 73 00 72 00 63 00    r.a.m.e. .s.r.c.
0370 3D 00 22 00 63 00 6F 00 6E 00 74 00 65 00 6E 00    =.".c.o.n.t.e.n.
0380 74 00 73 00 2E 00 68 00 74 00 6D 00 22 00 3E 00    t.s...h.t.m.".>.
0390 0D 00 0A 00 09 00 3C 00 66 00 72 00 61 00 6D 00    ......<.f.r.a.m.
03A0 65 00 20 00 73 00 72 00 63 00 3D 00 22 00 6D 00    e. .s.r.c.=.".m.
03B0 61 00 69 00 6E 00 2E 00 68 00 74 00 6D 00 22 00    a.i.n...h.t.m.".
03C0 20 00 6E 00 61 00 6D 00 65 00 3D 00 22 00 6D 00     .n.a.m.e.=.".m.
03D0 61 00 69 00 6E 00 22 00 3E 00 0D 00 0A 00 3C 00    a.i.n.".>.....<.
03E0 2F 00 66 00 72 00 61 00 6D 00 65 00 73 00 65 00    /.f.r.a.m.e.s.e.
03F0 74 00 3E FF 00 FF 00 FF 00 9A 00 00 00 00 00 00    t.>............