summaryrefslogtreecommitdiff
path: root/src/systemc/tests/systemc/misc/stars/star104726/global.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/systemc/tests/systemc/misc/stars/star104726/global.h')
-rw-r--r--src/systemc/tests/systemc/misc/stars/star104726/global.h239
1 files changed, 239 insertions, 0 deletions
diff --git a/src/systemc/tests/systemc/misc/stars/star104726/global.h b/src/systemc/tests/systemc/misc/stars/star104726/global.h
new file mode 100644
index 000000000..3baed2740
--- /dev/null
+++ b/src/systemc/tests/systemc/misc/stars/star104726/global.h
@@ -0,0 +1,239 @@
+/*****************************************************************************
+
+ Licensed to Accellera Systems Initiative Inc. (Accellera) under one or
+ more contributor license agreements. See the NOTICE file distributed
+ with this work for additional information regarding copyright ownership.
+ Accellera licenses this file to you under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with the
+ License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied. See the License for the specific language governing
+ permissions and limitations under the License.
+
+ *****************************************************************************/
+
+/*****************************************************************************
+
+ global.h --
+
+ Original Author: Martin Janssen, Synopsys, Inc., 2002-02-15
+
+ *****************************************************************************/
+
+/*****************************************************************************
+
+ MODIFICATION LOG - modifiers, enter your name, affiliation, date and
+ changes you are making here.
+
+ Name, Affiliation, Date:
+ Description of Modification:
+
+ *****************************************************************************/
+
+#ifndef GLOBALH
+#define GLOBALH
+
+
+// #include <iostream.h>
+#include <stdio.h>
+
+#define MAXBUFLEN 64
+
+// cos constants, factor 512
+#define c1d4 362L
+#define c1d8 473L
+#define c3d8 196L
+#define c1d16 502L
+#define c3d16 426L
+#define c5d16 284L
+#define c7d16 100L
+
+// correct digits
+#define MSCALE(expr) (COEFF)((expr)>>9)
+
+typedef unsigned char BYTE;
+typedef unsigned short WORD;
+typedef unsigned long DWORD;
+
+typedef BYTE BLOCK[8][8];
+typedef BYTE COMPRESSED[MAXBUFLEN];
+typedef WORD MATRIX64x12[64];
+
+// type of the coefficient arrays
+typedef short COEFF;
+
+// typedefs for huffman tables
+typedef struct {
+ BYTE size;
+ WORD code;
+} HUFFMTBL_ENTRY;
+
+
+struct Block {
+ BYTE b[8][8];
+
+ Block();
+ Block(BLOCK *);
+ Block(const Block&);
+ void operator=(const Block&);
+ int operator==(const Block&) const;
+
+ BYTE get(int x, int y) const;
+ void put(int x, int y, BYTE val);
+ BLOCK* get_ptr() const;
+};
+
+struct Compressed {
+ BYTE c[MAXBUFLEN];
+
+ Compressed();
+ Compressed(const Compressed&);
+ void operator=(const Compressed&);
+ int operator==(const Compressed&) const;
+
+ void clear();
+ BYTE get(int x) const;
+ void put(int x, BYTE val);
+};
+
+struct Matrix64x12 {
+ WORD m[64];
+
+ Matrix64x12();
+ Matrix64x12(const Matrix64x12&);
+ void operator=(const Matrix64x12&);
+ int operator==(const Matrix64x12&) const;
+
+ WORD get(int x) const;
+ void put(int x, WORD val);
+};
+
+struct Coeff8 {
+ COEFF c[8];
+
+ Coeff8();
+ Coeff8(const Coeff8&);
+ void operator=(const Coeff8&);
+ int operator==(const Coeff8&) const;
+
+ COEFF get(int x) const;
+ void put(int x, COEFF val);
+};
+
+struct Coeff8x8 {
+ COEFF c[8][8];
+
+ Coeff8x8();
+ Coeff8x8(const Coeff8x8&);
+ void operator=(const Coeff8x8&);
+ int operator==(const Coeff8x8&) const;
+
+ COEFF get(int x, int y) const;
+ void put(int x, int y, COEFF val);
+};
+
+inline
+void
+sc_trace( sc_trace_file*, const Coeff8x8&, const std::string& )
+{
+ // NOT IMPLEMENTED
+}
+
+
+// quantization table 8-bit unsigned integer
+static const unsigned char coeff_quant[8][8] = { // v is row
+ { 16, 11, 10, 16, 24, 40, 51, 61},
+ { 12, 12, 14, 19, 26, 58, 60, 55},
+ { 14, 13, 16, 24, 40, 57, 69, 56},
+ { 14, 17, 22, 29, 51, 87, 80, 82},
+ { 18, 22, 37, 56, 68, 109, 103, 77},
+ { 24, 35, 55, 64, 81, 104, 113, 92},
+ { 99, 64, 78, 87, 103, 121, 120, 101},
+ { 72, 92, 95, 98, 112, 100, 103, 99}
+};
+
+
+// table of Huffman DC coefficients
+static const HUFFMTBL_ENTRY huffm_dc[12] = {
+ { 2, 0X0000 }, { 3, 0X0002 }, { 3, 0X0003 }, { 3, 0X0004 },
+ { 3, 0X0005 }, { 3, 0X0006 }, { 4, 0X000E }, { 5, 0X001E },
+ { 6, 0X003E }, { 7, 0X007E }, { 8, 0X00FE }, { 9, 0X01FE }
+};
+
+
+// table of Huffman AC coefficients
+static const HUFFMTBL_ENTRY huffm_ac[256] = {
+ { 4, 0x000a }, { 2, 0x0000 }, { 2, 0x0001 }, { 3, 0x0004 },
+ { 4, 0x000b }, { 5, 0x001a }, { 7, 0x0078 }, { 8, 0x00f8 },
+ { 10, 0x03f6 }, { 16, 0xff82 }, { 16, 0xff83 }, { 0, 0x0000 },
+ { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 },
+ { 0, 0x0000 }, { 4, 0x000c }, { 5, 0x001b }, { 7, 0x0079 },
+ { 9, 0x01f6 }, { 11, 0x07f6 }, { 16, 0xff84 }, { 16, 0xff85 },
+ { 16, 0xff86 }, { 16, 0xff87 }, { 16, 0xff88 }, { 0, 0x0000 },
+ { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 },
+ { 0, 0x0000 }, { 5, 0x001c }, { 8, 0x00f9 }, { 10, 0x03f7 },
+ { 12, 0x0ff4 }, { 16, 0xff89 }, { 16, 0xff8a }, { 16, 0xff8b },
+ { 16, 0xff8c }, { 16, 0xff8d }, { 16, 0xff8e }, { 0, 0x0000 },
+ { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 },
+ { 0, 0x0000 }, { 6, 0x003a }, { 9, 0x01f7 }, { 12, 0x0ff5 },
+ { 16, 0xff8f }, { 16, 0xff90 }, { 16, 0xff91 }, { 16, 0xff92 },
+ { 16, 0xff93 }, { 16, 0xff94 }, { 16, 0xff95 }, { 0, 0x0000 },
+ { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 },
+ { 0, 0x0000 }, { 6, 0x003b }, { 10, 0x03f8 }, { 16, 0xff96 },
+ { 16, 0xff97 }, { 16, 0xff98 }, { 16, 0xff99 }, { 16, 0xff9a },
+ { 16, 0xff9b }, { 16, 0xff9c }, { 16, 0xff9d }, { 0, 0x0000 },
+ { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 },
+ { 0, 0x0000 }, { 7, 0x007a }, { 11, 0x07f7 }, { 16, 0xff9e },
+ { 16, 0xff9f }, { 16, 0xffa0 }, { 16, 0xffa1 }, { 16, 0xffa2 },
+ { 16, 0xffa3 }, { 16, 0xffa4 }, { 16, 0xffa5 }, { 0, 0x0000 },
+ { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 },
+ { 0, 0x0000 }, { 7, 0x007b }, { 12, 0x0ff6 }, { 16, 0xffa6 },
+ { 16, 0xffa7 }, { 16, 0xffa8 }, { 16, 0xffa9 }, { 16, 0xffaa },
+ { 16, 0xffab }, { 16, 0xffac }, { 16, 0xffad }, { 0, 0x0000 },
+ { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 },
+ { 0, 0x0000 }, { 8, 0x00fa }, { 12, 0x0ff7 }, { 16, 0xffae },
+ { 16, 0xffaf }, { 16, 0xffb0 }, { 16, 0xffb1 }, { 16, 0xffb2 },
+ { 16, 0xffb3 }, { 16, 0xffb4 }, { 16, 0xffb5 }, { 0, 0x0000 },
+ { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 },
+ { 0, 0x0000 }, { 9, 0x01f8 }, { 15, 0x7fc0 }, { 16, 0xffb6 },
+ { 16, 0xffb7 }, { 16, 0xffb8 }, { 16, 0xffb9 }, { 16, 0xffba },
+ { 16, 0xffbb }, { 16, 0xffbc }, { 16, 0xffbd }, { 0, 0x0000 },
+ { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 },
+ { 0, 0x0000 }, { 9, 0x01f9 }, { 16, 0xffbe }, { 16, 0xffbf },
+ { 16, 0xffc0 }, { 16, 0xffc1 }, { 16, 0xffc2 }, { 16, 0xffc3 },
+ { 16, 0xffc4 }, { 16, 0xffc5 }, { 16, 0xffc6 }, { 0, 0x0000 },
+ { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 },
+ { 0, 0x0000 }, { 9, 0x01fa }, { 16, 0xffc7 }, { 16, 0xffc8 },
+ { 16, 0xffc9 }, { 16, 0xffca }, { 16, 0xffcb }, { 16, 0xffcc },
+ { 16, 0xffcd }, { 16, 0xffce }, { 16, 0xffcf }, { 0, 0x0000 },
+ { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 },
+ { 0, 0x0000 }, { 10, 0x03f9 }, { 16, 0xffd0 }, { 16, 0xffd1 },
+ { 16, 0xffd2 }, { 16, 0xffd3 }, { 16, 0xffd4 }, { 16, 0xffd5 },
+ { 16, 0xffd6 }, { 16, 0xffd7 }, { 16, 0xffd8 }, { 0, 0x0000 },
+ { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 },
+ { 0, 0x0000 }, { 10, 0x03fa }, { 16, 0xffd9 }, { 16, 0xffda },
+ { 16, 0xffdb }, { 16, 0xffdc }, { 16, 0xffdd }, { 16, 0xffde },
+ { 16, 0xffdf }, { 16, 0xffe0 }, { 16, 0xffe1 }, { 0, 0x0000 },
+ { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 },
+ { 0, 0x0000 }, { 11, 0x07f8 }, { 16, 0xffe2 }, { 16, 0xffe3 },
+ { 16, 0xffe4 }, { 16, 0xffe5 }, { 16, 0xffe6 }, { 16, 0xffe7 },
+ { 16, 0xffe8 }, { 16, 0xffe9 }, { 16, 0xffea }, { 0, 0x0000 },
+ { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 },
+ { 0, 0x0000 }, { 16, 0xffeb }, { 16, 0xffec }, { 16, 0xffed },
+ { 16, 0xffee }, { 16, 0xffef }, { 16, 0xfff0 }, { 16, 0xfff1 },
+ { 16, 0xfff2 }, { 16, 0xfff3 }, { 16, 0xfff4 }, { 0, 0x0000 },
+ { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 },
+ { 11, 0x07f9 }, { 16, 0xfff5 }, { 16, 0xfff6 }, { 16, 0xfff7 },
+ { 16, 0xfff8 }, { 16, 0xfff9 }, { 16, 0xfffa }, { 16, 0xfffb },
+ { 16, 0xfffc }, { 16, 0xfffd }, { 16, 0xfffe }, { 0, 0x0000 },
+ { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }
+ };
+
+
+#endif
+