00001 /*-------------------------------------------------------------------- 00002 * 00003 * (C) Copyright Koninklijke Philips Electronics NV 2006. 00004 * All rights reserved. This software is licensed under the terms of 00005 * version 2.1 of the GNU Lesser General Public License as published 00006 * by the Free Software Foundation. For licensing and warranty 00007 * information, see the file COPYING in the main directory. 00008 * 00009 *------------------------------------------------------------------*/ 00010 00011 #ifndef IDCT_H 00012 #define IDCT_H 00013 00014 #include "yapi.h" 00015 #include "upscale.h" 00016 #include "idct1d.h" 00017 #include "transpose.h" 00018 #include "downscale.h" 00019 00020 class IDCT : public ProcessNetwork 00021 { 00022 public: 00023 // constructor 00024 IDCT( 00025 const Id& n, 00026 In<VYApixel>& Cin, 00027 Out<VYApixel>& Cout 00028 ); 00029 00030 // type member function 00031 const char* type() const { return "IDCT"; } 00032 00033 private: 00034 // input ports 00035 InPort<VYApixel> CinP; 00036 00037 // output ports 00038 OutPort<VYApixel> CoutP; 00039 00040 // Fifos 00041 Fifo<VYApixel> pixels1; 00042 Fifo<VYApixel> pixels2; 00043 Fifo<VYApixel> pixels3; 00044 Fifo<VYApixel> pixels4; 00045 Fifo<VYApixel> pixels5; 00046 00047 // Processes 00048 UpScale upscale; 00049 IDCT1D idctRow; 00050 Transpose transpose1; 00051 IDCT1D idctCol; 00052 Transpose transpose2; 00053 DownScale downscale; 00054 }; 00055 00056 #endif