Deutsch   English   Français   Italiano  
<uurcqh$8fsp$1@i2pn2.org>

View for Bookmarking (what is this?)
Look up another Usenet article

Path: ...!weretis.net!feeder6.news.weretis.net!i2pn.org!i2pn2.org!.POSTED!not-for-mail
From: fir <fir@grunge.pl>
Newsgroups: comp.lang.c
Subject: Re: simple compression mathod to code itself?
Date: Sat, 06 Apr 2024 13:48:38 +0200
Organization: i2pn2 (i2pn.org)
Message-ID: <uurcqh$8fsp$1@i2pn2.org>
References: <uupflr$5t1n$1@i2pn2.org> <XnsB14BC6028E8BAhueydlltampabayrrcom@135.181.20.170> <uuq7sa$1mutb$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Sat, 6 Apr 2024 11:48:33 -0000 (UTC)
Injection-Info: i2pn2.org;
	logging-data="278425"; mail-complaints-to="usenet@i2pn2.org";
	posting-account="+ydHcGjgSeBt3Wz3WTfKefUptpAWaXduqfw5xdfsuS0";
User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:27.0) Gecko/20100101 Firefox/27.0 SeaMonkey/2.24
X-Spam-Checker-Version: SpamAssassin 4.0.0
In-Reply-To: <uuq7sa$1mutb$1@dont-email.me>
Bytes: 3580
Lines: 60

Paul wrote:
> On 4/5/2024 7:28 PM, David LaRue wrote:
>> fir <fir@grunge.pl> wrote in news:uupflr$5t1n$1@i2pn2.org:
>>
>>> i not code at all in recent years
>>> (recently i coded half of my compuler with a plan to write second half
>>> but its to ambitious to lazy coding mood i got recently)
>>> but recently i started this slamm coding modd and found
>>> ite pleasurable
>>>
>>> searching for lazy side things i could code in such mood
>>> i thought maybe i wopuld like to have compression routine
>>> but i would like to write it myself sortla like i use quicksort
>>> or so but i also want to write it myself
>>>
>>> so is there maybe some method i could use i mean some simple
>>> routine that compresses and uncompresses an array of bytes but
>>> maybe something a bit more complex than RLE (rune length encoding)
>>> - only thing i know from this domain
>>>
>>
>> Hello fir,
>>
>> A method a bit more complex that you might try builds a table of all bytes
>> as you scan them from the input.  The compressed output is a reference to
>> the table you just built (wnhem repeated byte strings are found, otherwise
>> feed the input to the compressed image so that the expansion method can
>> build the sme dynamic table the encoder built.  The table generally has a
>> limit on the number of entries (usually a good size) and allows the table
>> of bytes to dynamically change as new patterns are read from the input.
>>
>> This is a well known and documented compression/expansion algorithm.  PKZIP
>> and other engines use this as one of their compression methodz.  Look for
>> the description of that if you need more details to figure out what you
>> need to write.
>>
>> Expansion is the reverse.  Read the source (now the compressed image) and
>> build the compression table from the bytes.  As encoded references to the
>> compression table are read from the compressed image output the source byte
>> sequences.  The output should be the same as what your encoder originally
>> read.
>>
>> A good check on the final code is to compare the original input with the
>> eventual output and make sure they agree exactly.
>>
>> Have fun,
>>
>> David
>>
>
> Some people have written compression codes, purely for educational purposes.
> That's why I got a copy of this, some years ago. For fun.
>
> https://github.com/grtamayo/RLE
>
>      gtrle35.c    # Run Length Encoding, one of the simpler compressors
>
>    Paul
>
rle i think i could write by hand but i would like something a bit more
eleborate than this - not much but somewhat