[comp.compression] Proposal for data compression interface standard.

ross@spam.ua.oz.au (Ross Williams) (06/20/91)

PROPOSAL FOR A DATA COMPRESSION INTERFACE STANDARD
==================================================
Author : Ross Williams.
Date   : 20-Jun-1991.

There  are  now so  many  data  compression  algorithms with  so  many
different characteristics, written in  so many different languages, on
so  many  different   systems  that  there  is   pressing  need  for a
standardized  data  compression algorithm  interface.  A  standardized
interface would yield the following benefits:

   * The  standard  interface  would  allow programmers  to  code  for
    generic data compression and then  quickly and easily swap between
    various algorithms  until they find  the one best suited  for thir
    application. Writing glue  code may be trivial, but if  one has to
    do it twenty times, it can become prohibitively time consuming.

   * A standard interface would  assist those cataloging and comparing
    algorithms.

   * A  standard  interface  would  encourage the  designers  of  data
    compression algorithms to provide conforming implementations.

   * A standard interface would make  it easy for programmers to write
    programs that select  from a range of  data compression algorithms
    at run time.

As far  as I  know, no such  standard exists and  so I  have devised a
standard  which I  propose  be used  in  all  applications of  general
purpose data compression algorithms. I am posting the standard and its
justification to comp.compression in the  hope that after a few rounds
of  critical  discussion and  revision  an  informal standard  can  be
settled  upon.  A  later  date, a  standards  committee  could  become
involved.

As it stands, my standard proposal  is fairly rough. I look forward to
your assistance in knocking it into shape.

Ross Williams
ross@spam.ua.oz.au

Note 1: In the past when I  have posted stuff, I have often received a
barrage of email which would have been best shared with the group. For
this exercise, which will be a  group discussion, I suggest a bias for
posting.

Note 2: I  am choosing to post  this stuff instead of  referring to an
ftp site,  as every time  I refer  to something I  have put in  an ftp
site, I get  a barrage of mail from people  without ftp access wanting
me to email them a copy. This said, the files will be available in:

   Machine   : sirius.itd.adelaide.edu.au   [IP=129.127.40.3]
   Directory : ~pub/misc/
   Files:    : dc_stan_spec - The proposed standard.
               dc_stan_just - Justification of the standard.
               cm_header.h  - Child standard for C programming
                              language.

ronald@ecl014.UUCP (Ronald van Eijck) (06/22/91)

In article <858@spam.ua.oz> ross@spam.ua.oz.au (Ross Williams) writes:
>PROPOSAL FOR A DATA COMPRESSION INTERFACE STANDARD
>==================================================
>Author : Ross Williams.
>Date   : 20-Jun-1991.
>
>There  are  now so  many  data  compression  algorithms with  so  many
>different characteristics, written in  so many different languages, on
>so  many  different   systems  that  there  is   pressing  need  for a
>standardized  data  compression algorithm  interface.  A  standardized
>interface would yield the following benefits:
>
>   * The  standard  interface  would  allow programmers  to  code  for
>    generic data compression and then  quickly and easily swap between
>    various algorithms  until they find  the one best suited  for thir
>    application. Writing glue  code may be trivial, but if  one has to
>    do it twenty times, it can become prohibitively time consuming.
>
>   * A standard interface would  assist those cataloging and comparing
>    algorithms.
>
>   * A  standard  interface  would  encourage the  designers  of  data
>    compression algorithms to provide conforming implementations.
>
>   * A standard interface would make  it easy for programmers to write
>    programs that select  from a range of  data compression algorithms
>    at run time.
>

How about this:

You have a standard command 'archive' (or whatever) with a standard syntax
and a standard file format. in this format the filename etc are stored
and there is an idenification code for every compression scheme.
Now you have shared libraries that do the actual encoding/decoding. This
would be a good solution for everybody.
- The user has to know only one command syntax to do his work.
- Archive shells do not have to support a lot of different syntaxes.
- The programmer of a future compression scheme only has to make a library
  with the encoding/decoding routines.

Ofcourse there this standard code has to be ported to a number of platforms
but since almost every archive programm is ported anyway this is not much
of a problem.

Identification codes have to be obtained from some central point where all
the codes are registered.

Just my $.02,

--
  +-------------------------------------------------------------------------+
  |  Ronald van Eijck                  {eunet!}hp4nl!cbmnlux!ecl014!ronald  |
  |                                                                         |
  |  We do the impossible at once for a miracle we need a little more time  |
  +-------------------------------------------------------------------------+