VideoCodec/Data/Constants.h

#ifndef CONSTANTS_H_ #define CONSTANTS_H_ #include <stddef.h> #include "Types.h" // Enable Matlab reporting. //#define USE_MATLAB #define USE_OCTAVE // Codec stream data. #define STREAM_FORMAT_VERSION 1 #define STREAM_FORMAT_CODEC_IDENTIFIER 0x1C25 #define STREAM_FORMAT_VERSION_IDENTIFIER 0x0001 // Colour formats. typedef int ColourFormat; #define COLOUR_FORMAT_INVALID -1 #define COLOUR_FORMAT_RGB 0 #define COLOUR_FORMAT_YUV 1 // Frame types. typedef int FrameType; #define FRAME_TYPE_INVALID -1 #define FRAME_TYPE_INTRA 0 #define FRAME_TYPE_INTER 1 // Module configuration status. typedef int ConfigurationStatus; #define MODULE_CONFIGURATION_OK 0 #define MODULE_CONFIGURATION_WARNING 1 #define MODULE_CONFIGURATION_ERROR 2 // Status for I/O operations on streams. typedef int StreamStatus; #define STREAM_STATUS_OK 0 #define STREAM_STATUS_WARNING 1 #define STREAM_STATUS_ERROR 2 // Module identifiers. #define INVALID_MODULE_ID "invalidModule" #define FRAME_INPUT_MODULE_ID "frameInput" #define FRAME_OUTPUT_MODULE_ID "frameOutput" #define PIPELINE_MODULE_ID "pipeline" #define COLOUR_SPACE_CONVERTER_MODULE_ID "colourSpace" #define MACROBLOCK_HANDLER_MODULE_ID "macroblockHandler" #define DCT_MODULE_ID "dct" #define AAN_DCT_MODULE_ID "aandct" #define DCT_COEFFICIENT_QUANTIZER_MODULE_ID "dctCoefficientQuantizer" #define HUFFMAN_ENTROPY_ENCODER_MODULE_ID "huffmanEntropyEncoder" #define HUFFMAN_ENTROPY_DECODER_MODULE_ID "huffmanEntropyDecoder" #define STREAM_INPUT_MODULE_ID "streamInput" #define STREAM_OUTPUT_MODULE_ID "streamOutput" #define STREAM_FORMATTER_MODULE_ID "streamFormatter" #define STREAM_PARSER_MODULE_ID "streamParser" #define FRAME_DIFFERENCE_MODULE_ID "frameDifference" #define GOP_MANAGER_MODULE_ID "gopManager" #define PROGRESS_INFORMATION_MODULE_ID "progressInformation" #define EXTERNAL_MODULE_ID "external" #define MOTION_ESTIMATION_MODULE_ID "motionEstimation" #define RATE_CONTROL_MODULE_ID "rateControl" // Pipelines #define SIMPLE_FRAMES_PIPELINE 0 #define ENCODE_FRAMES_TO_FILE 1 #define DECODE_FILE_TO_FRAMES 2 #define TESTING_PIPELINE 3 #define ENCODE_FRAMES_TO_FILE_WITH_PREDICTION 4 #define INVALID_PIPELINE -1 // Pixel layout formats. typedef int PixelLayout; // Blocks are eight by eight pixels. // Divides each 16*16 chunk into four 8*8 luminance blocks and two colour blocks. // YUV colour data is required. (This pattern takes advantage of the human visual system's lower chromatic resolution.) // // Y // 0 1 C b C r // 2 3 4 5 // #define PIXEL_LAYOUT_MB_FOUR_TWO_ZERO 0 // The pixels are in scan order, with components packed together so that if values[i] is Red or Luminance, // values[i + 1] and values[i + 2] will contain the corresponding GB/UV values. #define PIXEL_LAYOUT_SCAN 1 // Colour resize filter. typedef int ColourResizeFilter; // Averages over each square of four pixels. #define SIMPLE_COLOUR_RESIZE_FILTER 0 // DCT coefficient quantization. typedef unsigned char DCTCoefficientQuantizationMethod; // Zeros elements except for the most important ones. (See the DCTCoefficientQuantizer class for more information.) #define DCT_QUANTIZATION_CUT_OFF_AGGRESSIVE 0 // From the JPEG standard #define DCT_QUANTIZATION_JPEG_STANDARD_AGGRESSIVE 1 // From the JPEG standard, but divided by two. (Should be `nearly indistinguishable'.) #define DCT_QUANTIZATION_JPEG_STANDARD_QUALITY 2 // For predictive frames. #define DCT_QUANTIZATION_INTER_STANDARD 3 // No quantization. #define DCT_QUANTIZATION_NONE 4 #endif /*CONSTANTS_H_*/