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