Statistics
| Revision:

svn-gvsig-desktop / tags / extI18n-0.1.0-1045_8 / libraries / libjni-ecw / include / NCSJPCCodingStyleParameter.h @ 40799

History | View | Annotate | Download (2.87 KB)

1 3538 nacho
/********************************************************
2
** Copyright 2002 Earth Resource Mapping Ltd.
3
** This document contains proprietary source code of
4
** Earth Resource Mapping Ltd, and can only be used under
5
** one of the three licenses as described in the
6
** license.txt file supplied with this distribution.
7
** See separate license.txt file for license details
8
** and conditions.
9
**
10
** This software is covered by US patent #6,442,298,
11
** #6,102,897 and #6,633,688.  Rights to use these patents
12
** is included in the license agreements.
13
**
14
** FILE:     $Archive: /NCS/Source/include/NCSJPCCodingStyleParameter.h $
15
** CREATED:  05/12/2002 3:27:34 PM
16
** AUTHOR:   Simon Cope
17
** PURPOSE:  CNCSJPCCodingStyleParameter class header
18
** EDITS:    [xx] ddMmmyy NAME COMMENTS
19
 *******************************************************/
20
21
#ifndef NCSJPCCODINGSTYLEPARAMETERS_H
22
#define NCSJPCCODINGSTYLEPARAMETERS_H
23
24
#include "NCSJPCIOStream.h"
25
26
        /**
27
         * CNCSJPCCODMarker class - the JPC COD marker.
28
         *
29
         * @author       Simon Cope
30
         * @version      $Revision$ $Author$ $Date$
31
         */
32
class NCSJPC_EXPORT_ALL CNCSJPCCodingStyleParameter {
33
public:
34
35
                /** SP Transformation Type */
36
        typedef enum {
37
                        /** 9x7 irreversible filter */
38
                IRREVERSIBLE_9x7        = 0,
39
                        /** 5x3 reversible filter */
40
                REVERSIBLE_5x3                = 1
41
        } TransformationType;
42
43
                /** SP Precinct Size */
44
        typedef struct {
45
                        /** Precinct width exponent */
46
                UINT8                m_nPPx: 4;
47
                        /** Precinct height exponent */
48
                UINT8                m_nPPy: 4;
49
        } PrecinctSize;
50
51
                /** Number of decomposition levels */
52
        UINT8                                                m_nLevels;
53
                /** Code block width exponent offset value */
54
        UINT8                                                m_nXcb;
55
                /** Code block height exponent offset value */
56
        UINT8                                                m_nYcb;
57
                /** CodeBlock coding pass style */
58
        UINT8                                                m_Scb;
59
                /** Wavelet transformation used */
60
        TransformationType                        m_eTransformation;
61
                /** Precinct sizes */
62
        std::vector<PrecinctSize>        m_PrecinctSizes;
63
64
                /** Default constructor, initialises members */
65
        CNCSJPCCodingStyleParameter();
66
                /** Virtual destructor */
67
        virtual ~CNCSJPCCodingStyleParameter();
68
69
                /**
70
                 * Parse the fields from the JPC codestream.
71
                 * @param                JPC                        CNCSJPC to use to parse file.
72
                 * @param                Stream                IOStream to use to parse file.
73
                 * @param                bDefinedPrecincts        Precincts are explicitly defined in the CodingStyleParameter
74
                 * @return      CNCSError        NCS_SUCCESS, or Error code on failure.
75
                 */
76
        virtual CNCSError Parse(class CNCSJPC &JPC, CNCSJPCIOStream &Stream, bool bDefinedPrecincts);
77
                /**
78
                 * UnParse the fields to the JPC codestream.
79
                 * @param                Stream                IOStream to use to parse file.
80
                 * @param                JPC                        CNCSJPC to use to parse file.
81
                 * @param                bDefinedPrecincts        Precincts are explicitly defined in the CodingStyleParameter
82
                 * @return      CNCSError        NCS_SUCCESS, or Error code on failure.
83
                 */
84
        virtual CNCSError UnParse(class CNCSJPC &JPC, CNCSJPCIOStream &Stream, bool bDefinedPrecincts);
85
};
86
87
88
#endif // !NCSJPCCODINGSTYLEPARAMETERS_H