00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #ifndef DECODE_H
00012 #define DECODE_H
00013
00014 #include "yapi.h"
00015 #include "vld.h"
00016 #include "iq.h"
00017 #include "izz.h"
00018 #include "idct.h"
00019
00020 class Decode : public ProcessNetwork
00021 {
00022 public:
00023
00024 Decode(
00025 const Id& n,
00026 In<Bits>& Cin,
00027 In<VYAimageDepth>& imageDepthIn,
00028 In<VYAimageComponent>& imageComponentIdIn,
00029 In<VYAimageH>& imageHIn,
00030 In<VYAimageV>& imageVIn,
00031 In<VYAimageDepth>& scanDepthIn,
00032 In<VYAimageComponent>& scanComponentIdIn,
00033 In<Marker>& DHTmarkerIn,
00034 In<Bits>& HuffmanTableIn,
00035 In<VYAid>& HuffmanTableIdIn,
00036 In<Marker>& DQTmarkerIn,
00037 In<Bits>& QuantizationTableIn,
00038 In<VYAid>& QuantizationTableIdIn,
00039 In<Bits>& restartIntervalBitsIn,
00040 Out<VYApixel>& Cout
00041 );
00042
00043 const char* type() const { return "Decode"; }
00044
00045 private:
00046
00047 InPort<Bits> CinP;
00048 InPort<VYAimageDepth> imageDepthInP;
00049 InPort<VYAimageComponent> imageComponentIdInP;
00050 InPort<VYAimageH> imageHInP;
00051 InPort<VYAimageV> imageVInP;
00052 InPort<VYAimageDepth> scanDepthInP;
00053 InPort<VYAimageComponent> scanComponentIdInP;
00054 InPort<Marker> DHTmarkerInP;
00055 InPort<Bits> HuffmanTableInP;
00056 InPort<VYAid> HuffmanTableIdInP;
00057 InPort<Marker> DQTmarkerInP;
00058 InPort<Bits> QuantizationTableInP;
00059 InPort<VYAid> QuantizationTableIdInP;
00060 InPort<Bits> restartIntervalBitsInP;
00061
00062
00063 OutPort<VYApixel> CoutP;
00064
00065
00066 Fifo<VYApixel> quantizedpixels;
00067 Fifo<VYApixel> zigzagpixels;
00068 Fifo<VYApixel> dctpixels;
00069
00070
00071 VLD vld;
00072 IQ iq;
00073 IZZ izz;
00074 IDCT idct;
00075 };
00076
00077 #endif