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 JPEG_H 00012 #define JPEG_H 00013 00014 #include "yapi.h" 00015 #include "vya.h" 00016 #include "bytestreamfe.h" 00017 #include "bytestream_env.h" 00018 #include "bytestream_usr.h" 00019 #include "pfspdbe.h" 00020 #include "pfspd_env.h" 00021 #include "pfspd_usr.h" 00022 #include "jpegdec.h" 00023 #include "vhs3c.h" 00024 #include "scaling_env.h" 00025 #include "scaling_usr.h" 00026 #include "matrix.h" 00027 00028 class JPEG : public ProcessNetwork 00029 { 00030 public: 00031 // constructor 00032 JPEG( 00033 const Id& n, 00034 char* fefile, 00035 char* scfile, 00036 char* befile 00037 ); 00038 00039 // type member function 00040 const char* type() const { return "JPEG"; } 00041 00042 private: 00043 // Fifos 00044 Fifo<unsigned char> byteStream; 00045 Fifo<VYApixel> Y; 00046 Fifo<VYApixel> U; 00047 Fifo<VYApixel> V; 00048 Fifo<VYAimageWidth> YimgWidth; 00049 Fifo<VYAimageHeight> YimgHeight; 00050 Fifo<VYAimageWidth> UVimgWidth; 00051 Fifo<VYAimageHeight> UVimgHeight; 00052 Fifo<VYAimageType> YUVimgType; 00053 00054 Fifo<scaling_args_t> scalingArgs; 00055 Fifo<VYAimageWidth> YimgWidthOut; 00056 Fifo<VYAimageHeight> YimgHeightOut; 00057 Fifo<VYAimageWidth> UVimgWidthOut; 00058 Fifo<VYAimageHeight> UVimgHeightOut; 00059 00060 Fifo<VYApixel> Yscaled; 00061 Fifo<VYApixel> Uscaled; 00062 Fifo<VYApixel> Vscaled; 00063 00064 Fifo<VYApixel> R; 00065 Fifo<VYApixel> G; 00066 Fifo<VYApixel> B; 00067 00068 Fifo<byteStream_args_t> argumentsIn; 00069 Fifo<VYAfileName> fileNameIn; 00070 Fifo<int> nrBytesIn; 00071 00072 Fifo<pfspd_args_t> argumentsOut; 00073 Fifo<VYAfileName> fileNameOut; 00074 Fifo<pT_header> seqInfoOut; 00075 00076 // Processes and Networks 00077 byteStreamFE frontEnd; 00078 JPEGDecode jpegDecode; 00079 VHS3C scale; 00080 Matrix matrix; 00081 pfspdBE backEnd; 00082 00083 byteStreamEnv frontEndEnv; 00084 byteStreamUsr frontEndUsr; 00085 pfspdEnv backEndEnv; 00086 pfspdUsr backEndUsr; 00087 ScalingEnv scalingEnv; 00088 ScalingUsr scalingUsr; 00089 }; 00090 00091 #endif