00001
#ifndef SIMPLECODE_HPP
00002
#define SIMPLECODE_HPP
00003
00004
#include <qobject.h>
00005
00006
#include "AdaptiveHuffman.h"
00007
#include "BasicPanel.h"
00008
#include "CamPanel.h"
00009
#include "CamTile.h"
00010
#include "CodecFrame.h"
00011
#include "DiffPanel.h"
00012
#include "DCTPanel.h"
00013
#include "VideoDevice.h"
00014
00015
00016
class CCamWidget;
00017
00018 class CSimpleCodec:
public CCodecFrame
00019 {
00020 Q_OBJECT
00021
private:
00022
CVideoDevice *pVideo;
00023
00024
int zigzag[64][2];
00025
int image_w, image_h;
00026
int half_w, half_h;
00027
int tiles_y, tiles_uv;
00028
CCamTile *pTilesY, *pTilesUV;
00029
CCamTile **pSorted, *pUsed;
00030
CCamTile **pSendAbs, **pSendDiff;
00031
int *UsedForDiff, *UsedForAbs;
00032
int GraphPos;
00033
00034
CCamPanel *pRGB, *pYUV;
00035
CDCTPanel *pFDCTImage, *pIDCTImage;
00036
CDCTPanel *pFDCTDiff, *pIDCTDiff;
00037
CBasicPanel *pRecImage, *pRecDiff;
00038
CDiffPanel *pRec_YUV;
00039
CBasicPanel *pReconstruction;
00040
CBasicPanel *pSelection;
00041
int Count, Refresh;
00042
00043
00044
00045
00046
int ParamSmear;
00047
int ParamThreshold;
00048
int ParamMaxPFrames;
00049
bool ParamClearDiff;
00050
int ParamBytesPerPacket;
00051
00052
void CreateTiles();
00053
void Send(
CCamPanel *p,
bool update);
00054
void MoveTileToEnd(
CCamTile *tile);
00055
00056
private slots:
00057
void Resize(
const QSize &ns);
00058
00059
public:
00060
CSimpleCodec(
CVideoDevice *video);
00061
~CSimpleCodec();
00062
00063
public slots:
00064
void UpdatePanel();
00065 };
00066
00067
00068
#endif