about summary refs log tree commit diff
path: root/converter
diff options
context:
space:
mode:
authorgiraffedata <giraffedata@9d0c8265-081b-0410-96cb-a4ca84ce46f8>2024-09-11 17:38:48 +0000
committergiraffedata <giraffedata@9d0c8265-081b-0410-96cb-a4ca84ce46f8>2024-09-11 17:38:48 +0000
commita15d4e911dfe433ee6f0c787fe5646f7db8aea45 (patch)
tree10b6fe14066632764728090c020e5b164d0882eb /converter
parent1d5661411ebcb9c7bba6d6ccd470f90c7ff03f8c (diff)
downloadnetpbm-mirror-a15d4e911dfe433ee6f0c787fe5646f7db8aea45.tar.gz
netpbm-mirror-a15d4e911dfe433ee6f0c787fe5646f7db8aea45.tar.xz
netpbm-mirror-a15d4e911dfe433ee6f0c787fe5646f7db8aea45.zip
Remove moutput.c; apparently renamed to postdct.c long before 'ppmtompeg' added to Netpbm
git-svn-id: http://svn.code.sf.net/p/netpbm/code/trunk@4940 9d0c8265-081b-0410-96cb-a4ca84ce46f8
Diffstat (limited to 'converter')
-rw-r--r--converter/ppm/ppmtompeg/headers/mproto.h12
-rw-r--r--converter/ppm/ppmtompeg/moutput.c447
-rw-r--r--converter/ppm/ppmtompeg/qtest.c66
3 files changed, 0 insertions, 525 deletions
diff --git a/converter/ppm/ppmtompeg/headers/mproto.h b/converter/ppm/ppmtompeg/headers/mproto.h
index 22b3ba2b..6b2acf7f 100644
--- a/converter/ppm/ppmtompeg/headers/mproto.h
+++ b/converter/ppm/ppmtompeg/headers/mproto.h
@@ -92,18 +92,6 @@ void mp_ycc_calc (MpegFrame *mf);
 void mp_dct_blocks (MpegFrame *mf);
 void    AllocDecoded (MpegFrame *frame);
 
-/*
- *  from moutput.c:
- */
-boolean mp_quant_zig_block (Block in, FlatBlock out, int qscale, int iblock);
-void    UnQuantZig (FlatBlock in, Block out, int qscale, boolean iblock);
-void mp_rle_huff_block (FlatBlock in, BitBucket *out);
-void mp_rle_huff_pblock (FlatBlock in, BitBucket *out);
-void mp_create_blocks (MpegFrame *mf);
-
-
-
-
 void    ReadEYUV (MpegFrame * mf, FILE *fpointer, int width,
                             int height);
 boolean ReadPPM (MpegFrame *mf, FILE *fpointer);
diff --git a/converter/ppm/ppmtompeg/moutput.c b/converter/ppm/ppmtompeg/moutput.c
deleted file mode 100644
index bc7fb2b6..00000000
--- a/converter/ppm/ppmtompeg/moutput.c
+++ /dev/null
@@ -1,447 +0,0 @@
-/*===========================================================================*
- * moutput.c                                                                 *
- *                                                                           *
- *      Procedures concerned with quantization and RLE                       *
- *                                                                           *
- * EXPORTED PROCEDURES:                                                      *
- *      mp_quant_zig_block                                                   *
- *      mp_rle_huff_block                                                    *
- *      mp_rle_huff_pblock                                                   *
- *                                                                           *
- *===========================================================================*/
-
-/*
- * Copyright (c) 1995 The Regents of the University of California.
- * All rights reserved.
- *
- * Permission to use, copy, modify, and distribute this software and its
- * documentation for any purpose, without fee, and without written agreement is
- * hereby granted, provided that the above copyright notice and the following
- * two paragraphs appear in all copies of this software.
- *
- * IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR
- * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT
- * OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE UNIVERSITY OF
- * CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
- * AND FITNESS FOR A PARTICULAR PURPOSE.  THE SOFTWARE PROVIDED HEREUNDER IS
- * ON AN "AS IS" BASIS, AND THE UNIVERSITY OF CALIFORNIA HAS NO OBLIGATION TO
- * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
- */
-
-/*
- *  $Header: /n/charlie-brown/project/mm/mpeg/mpeg_dist/mpeg_encode/RCS/moutput.c,v 1.12 1995/01/19 23:08:49 eyhung Exp $
- *  $Log: moutput.c,v $
- * Revision 1.12  1995/01/19  23:08:49  eyhung
- * Changed copyrights
- *
- * Revision 1.11  1993/07/22  22:23:43  keving
- * nothing
- *
- * Revision 1.10  1993/06/30  20:06:09  keving
- * nothing
- *
- * Revision 1.9  1993/06/03  21:08:08  keving
- * nothing
- *
- * Revision 1.8  1993/02/24  18:57:19  keving
- * nothing
- *
- * Revision 1.7  1993/02/23  22:58:36  keving
- * nothing
- *
- * Revision 1.6  1993/02/23  22:54:56  keving
- * nothing
- *
- * Revision 1.5  1993/02/17  23:18:20  dwallach
- * checkin prior to keving's joining the project
- *
- * Revision 1.4  1993/01/18  10:20:02  dwallach
- * *** empty log message ***
- *
- * Revision 1.3  1993/01/18  10:17:29  dwallach
- * RCS headers installed, code indented uniformly
- *
- * Revision 1.3  1993/01/18  10:17:29  dwallach
- * RCS headers installed, code indented uniformly
- *
- */
-
-
-/*==============*
- * HEADER FILES *
- *==============*/
-
-#include "all.h"
-#include "mtypes.h"
-#include "mproto.h"
-#include "huff.h"
-
-
-/*==================*
- * STATIC VARIABLES *
- *==================*/
-
-/* ZAG[i] is the natural-order position of the i'th element of zigzag order. */
-static int ZAG[] =
-{
-    0, 1, 8, 16, 9, 2, 3, 10,
-    17, 24, 32, 25, 18, 11, 4, 5,
-    12, 19, 26, 33, 40, 48, 41, 34,
-    27, 20, 13, 6, 7, 14, 21, 28,
-    35, 42, 49, 56, 57, 50, 43, 36,
-    29, 22, 15, 23, 30, 37, 44, 51,
-    58, 59, 52, 45, 38, 31, 39, 46,
-    53, 60, 61, 54, 47, 55, 62, 63
-};
-
-
-/*
- * possible optimization: reorder the qtable in the correct zigzag order, to
- * reduce the number of necessary lookups
- *
- * this table comes from the MPEG draft, p. D-16, Fig. 2-D.15.
- */
-static int qtable[] =
-{
-    8, 16, 19, 22, 26, 27, 29, 34,
-    16, 16, 22, 24, 27, 29, 34, 37,
-    19, 22, 26, 27, 29, 34, 34, 38,
-    22, 22, 26, 27, 29, 34, 37, 40,
-    22, 26, 27, 29, 32, 35, 40, 48,
-    26, 27, 29, 32, 35, 40, 48, 58,
-    26, 27, 29, 34, 38, 46, 56, 69,
-    27, 29, 35, 38, 46, 56, 69, 83};
-
-
-/*=====================*
- * EXPORTED PROCEDURES *
- *=====================*/
-
-
-void    UnQuantZig(FlatBlock in, Block out, int qscale, boolean iblock)
-{
-    register int index;
-    int     start;
-    int     position;
-    register int            qentry;
-    int     level, coeff;
-    register int16 temp;
-
-    if ( iblock )
-    {
-        ((int16 *)out)[0] = (int16)(in[0]*qtable[0]);
-
-        start = 1;
-    }
-    else
-        start = 0;
-
-    for ( index = start; index < DCTSIZE_SQ; index++ )
-    {
-        position = ZAG[index];
-
-        if (iblock)
-            qentry = qtable[position] * qscale;
-        else
-            qentry = 16 * qscale;
-
-        level = in[index];
-        coeff = (level * qentry) >> 3;
-        if (level < 0) {
-            coeff += (coeff & 1);
-        } else {
-            coeff -= (coeff & 1);
-        }
-
-        ((int16 *)out)[position] = coeff;
-    }
-
-#ifdef BLEAH
-    for ( index = 0; index < 64; index++ )
-        fprintf(stdout, "DCT[%d] = %d\n", index,
-                ((int16 *)out)[index]);
-#endif
-}
-
-
-
-/*
- * --------------------------------------------------------------
- *
- * mp_quant_zig_block --
- *
- * Quantizes and zigzags a block -- removing information
- *
- * Results: TRUE iff resulting 'out' is non-zero, FALSE if all
- *          zero
- *
- * Side effects: Modifies the out block.
- *
- * --------------------------------------------------------------
- */
-boolean mp_quant_zig_block(Block in, FlatBlock out, int qscale, int iblock)
-{
-    register int i;
-    register int y, x;
-    register int16 temp;
-    register int qentry;
-    int start;
-    boolean nonZero = FALSE;
-
-    DBG_PRINT(("mp_quant_zig_block...\n"));
-    if (iblock) {
-        /*
-         * the DC coefficient is handled specially -- it's not
-         * sensitive to qscale, but everything else is
-         */
-        temp = ((int16 *) in)[ZAG[0]];
-        qentry = qtable[ZAG[0]];
-        if (temp < 0) {
-            temp = -temp;
-            temp += qentry >> 1;
-            temp /= qentry;
-            temp = -temp;
-        } else {
-            temp += qentry >> 1;
-            temp /= qentry;
-        }
-        if ( temp != 0 )
-            nonZero = TRUE;
-        out[0] = temp;
-        start = 1;
-    } else
-        start = 0;
-
-    for (i = start; i < DCTSIZE_SQ; i++) {
-        x = ZAG[i] % 8;
-        y = ZAG[i] / 8;
-        temp = in[y][x];
-        DBG_PRINT(("    in[%d][%d] = %d;  ", y, x, temp));
-
-        if (iblock)
-            qentry = qtable[ZAG[i]] * qscale;
-        else
-            qentry = 16 * qscale;
-
-        DBG_PRINT(("quantized with %d = ", qentry));
-
-        if (temp < 0) {
-            temp = -temp;
-            temp *= 8;
-            temp += qentry >> 1;
-            temp /= qentry;
-            temp = -temp;
-        } else {
-            temp *= 8;
-            temp += qentry >> 1;
-            temp /= qentry;
-        }
-        if ( temp != 0 )
-            nonZero = TRUE;
-        out[i] = temp;
-        DBG_PRINT(("%d\n", temp));
-    }
-
-    return nonZero;
-}
-
-
-
-/*
- * --------------------------------------------------------------
- *
- * mp_rle_huff_block --
- *
- * Given a FlatBlock, generates the Huffman bits
- *
- * Results: None.
- *
- * Side effects: Output bits changed
- *
- * --------------------------------------------------------------
- */
-
-void    mp_rle_huff_block(FlatBlock in, BitBucket *out)
-{
-    register int i;
-    register int nzeros = 0;
-    register int16 cur;
-    register int16 acur;
-    register uint32 code;
-    register int nbits;
-
-    /*
-     * yes, Virginia, we start at 1.  The DC coefficient is handled
-     * specially, elsewhere.  Not here.
-     */
-    for (i = 1; i < DCTSIZE_SQ; i++) {
-        cur = in[i];
-        acur = ABS(cur);
-        if (cur) {
-            if (nzeros < HUFF_MAXRUN && acur < huff_maxlevel[nzeros]) {
-                /*
-                 * encode using the Huffman tables
-                 */
-
-                DBG_PRINT(("rle_huff %02d: Run %02d, Level %02d\n", i, nzeros, cur));
-                assert(cur);
-
-                code = (huff_table[nzeros])[acur];
-                nbits = (huff_bits[nzeros])[acur];
-
-                assert(nbits);
-
-                if (cur < 0)
-                    code |= 1;  /* the sign bit */
-                Bitio_Write(out, code, nbits);
-            } else {
-                /*
-                 * encode using the escape code
-                 */
-                DBG_PRINT(("Escape\n"));
-                Bitio_Write(out, 0x1, 6);       /* ESCAPE */
-                DBG_PRINT(("Run Length\n"));
-                Bitio_Write(out, nzeros, 6);    /* Run-Length */
-
-                assert(cur != 0);
-
-                /*
-                 * this shouldn't happen, but the other
-                 * choice is to bomb out and dump core...
-                 */
-                if (cur < -255)
-                    cur = -255;
-                else if (cur > 255)
-                    cur = 255;
-
-                DBG_PRINT(("Level\n"));
-                if (acur < 128) {
-                    Bitio_Write(out, cur, 8);
-                } else {
-                    if (cur < 0) {
-                        Bitio_Write(out, 0x8001 + cur + 255, 16);
-                    } else
-                        Bitio_Write(out, cur, 16);
-                }
-            }
-            nzeros = 0;
-        } else
-            nzeros++;
-    }
-    DBG_PRINT(("End of block\n"));
-    Bitio_Write(out, 0x2, 2);   /* end of block marker */
-}
-
-
-
-/*
- * --------------------------------------------------------------
- *
- * mp_rle_huff_pblock --
- *
- * Given a FlatBlock, generates the Huffman bits for P DCT
- *
- * Results: None.
- *
- * Side effects: Output bits changed
- *
- * --------------------------------------------------------------
- */
-
-void    mp_rle_huff_pblock(FlatBlock in, BitBucket *out)
-{
-    register int i;
-    register int nzeros = 0;
-    register int16 cur;
-    register int16 acur;
-    register uint32 code;
-    register int nbits;
-    boolean first_dct = TRUE;
-
-    /*
-     * yes, Virginia, we start at 0.
-     */
-    for (i = 0; i < DCTSIZE_SQ; i++) {
-        cur = in[i];
-        acur = ABS(cur);
-        if (cur) {
-            if (nzeros < HUFF_MAXRUN && acur < huff_maxlevel[nzeros]) {
-                /*
-                 * encode using the Huffman tables
-                 */
-
-                DBG_PRINT(("rle_huff %02d: Run %02d, Level %02d\n", i, nzeros, cur));
-                assert(cur);
-
-                if ( first_dct && (nzeros == 0) && (acur == 1) )
-                {
-                    /* actually, only needs = 0x2 */
-                    code = (cur == 1) ? 0x2 : 0x3;
-                    nbits = 2;
-                }
-                else
-                {
-                    code = (huff_table[nzeros])[acur];
-                    nbits = (huff_bits[nzeros])[acur];
-                }
-
-                assert(nbits);
-
-                if (cur < 0)
-                    code |= 1;  /* the sign bit */
-                Bitio_Write(out, code, nbits);
-                first_dct = FALSE;
-            } else {
-                /*
-                 * encode using the escape code
-                 */
-                DBG_PRINT(("Escape\n"));
-                Bitio_Write(out, 0x1, 6);       /* ESCAPE */
-                DBG_PRINT(("Run Length\n"));
-                Bitio_Write(out, nzeros, 6);    /* Run-Length */
-
-                assert(cur != 0);
-
-                /*
-                 * this shouldn't happen, but the other
-                 * choice is to bomb out and dump core...
-                 */
-                if (cur < -255)
-                    cur = -255;
-                else if (cur > 255)
-                    cur = 255;
-
-                DBG_PRINT(("Level\n"));
-                if (acur < 128) {
-                    Bitio_Write(out, cur, 8);
-                } else {
-                    if (cur < 0) {
-                        Bitio_Write(out, 0x8001 + cur + 255, 16);
-                    } else
-                        Bitio_Write(out, cur, 16);
-                }
-
-                first_dct = FALSE;
-            }
-            nzeros = 0;
-        } else
-            nzeros++;
-    }
-
-    /* actually, should REALLY return FALSE and not use this! */
-    if ( first_dct )    /* have to give a first_dct even if all 0's */
-    {
-        fprintf(stdout, "HUFF called with all-zero coefficients\n");
-        fprintf(stdout, "exiting...\n");
-        exit(1);
-    }
-
-    DBG_PRINT(("End of block\n"));
-    Bitio_Write(out, 0x2, 2);   /* end of block marker */
-}
-
-
-
diff --git a/converter/ppm/ppmtompeg/qtest.c b/converter/ppm/ppmtompeg/qtest.c
deleted file mode 100644
index 15e4e197..00000000
--- a/converter/ppm/ppmtompeg/qtest.c
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * Copyright (c) 1995 The Regents of the University of California.
- * All rights reserved.
- *
- * Permission to use, copy, modify, and distribute this software and its
- * documentation for any purpose, without fee, and without written agreement is
- * hereby granted, provided that the above copyright notice and the following
- * two paragraphs appear in all copies of this software.
- *
- * IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR
- * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT
- * OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE UNIVERSITY OF
- * CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
- * AND FITNESS FOR A PARTICULAR PURPOSE.  THE SOFTWARE PROVIDED HEREUNDER IS
- * ON AN "AS IS" BASIS, AND THE UNIVERSITY OF CALIFORNIA HAS NO OBLIGATION TO
- * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
- */
-
-/*
- *  $Header: /n/charlie-brown/project/mm/mpeg/mpeg_dist/mpeg_encode/RCS/qtest.c,v 1.5 1995/01/19 23:09:15 eyhung Exp $
- *  $Log: qtest.c,v $
- * Revision 1.5  1995/01/19  23:09:15  eyhung
- * Changed copyrights
- *
- * Revision 1.4  1993/01/18  10:20:02  dwallach
- * *** empty log message ***
- *
- * Revision 1.3  1993/01/18  10:17:29  dwallach
- * RCS headers installed, code indented uniformly
- *
- * Revision 1.3  1993/01/18  10:17:29  dwallach
- * RCS headers installed, code indented uniformly
- *
- */
-
-#include <stdio.h>
-#include "mtypes.h"
-#include "mproto.h"
-
-main()
-{
-    Block a;
-    FlatBlock b;
-    BitBucket *bb;
-    int i, j;
-
-    bb = new_bitbucket();
-
-    for (i = 0; i < 8; i++)
-        for (j = 0; j < 8; j++)
-            a[i][j] = rand() % 100;
-    mp_quant_zig_block(a, b, 1, 1);
-    for (i = 0; i < 64; i++)
-        printf("%6d ", b[i]);
-    printf("\n");
-
-    mp_rle_huff_block(b, bb);   /* intuititve names, huh? */
-
-    printf("Huffman output is %d bits\n", bb->totalbits);
-}
-
-
-