Main Page | Class List | File List | Class Members | File Members

uep_rcpcc.h

Go to the documentation of this file.
00001 /* UEP_RCPCC.H */
00002 
00003 /******** MODULE uep_rcpcc *********************************************\
00004  *******
00005  *****   FILE:     uep_rcpcc.h
00006  ***     OVERVIEW: The interface to this module is given by the the
00007  **                folowing functions:
00008  *                   rcpcc64_encode()
00009  *                   rcpcc64_decode()
00010  *                 These functuns use a rate compatible punctured
00011  *                 convolutional code (rcpcc) to encode/decode
00012  *                 information at different code rates. 
00013  *                 In addition the function
00014  *                   rcpcc64_getK()
00015  *                 is used, to calculate the number of encoded input
00016  *                 bits K for a given code rate and packet length N.
00017  *                 
00018 \***********************************************************************/
00019 
00020 #ifndef _UEP_RCPCC_H_
00021 #define _UEP_RCPCC_H_
00022 
00023 #include "Buffer.h"
00024 #include "rcpc.h"
00025 #include "bytes.h"
00026 
00027 /******** constant definitions *****************************************/
00028 
00029 #define MAXINPUTBITS 1024
00030 
00031 /******** function prototypes ******************************************/
00032 
00033 /* 
00034  * All these functions have to do with rcpc coding
00035  */
00036 
00037 int rcpcc16_encode();
00038 int rcpcc16_decode();
00039 int rcpcc16_getK();
00040 
00041 void Makeppx(int Rtype);
00042 void GetRcpcBytes(buf_rcpc *b1, int *rcpc_bits1, int *rcpc_bits2, int Rtype,
00043                   int N);
00044 
00045 unsigned char *DecodeVideoPacket(int Rtype, int N, buf_rcpc *b1, int *CRC_flag, 
00046                                                                                                                                  int *K, int CRCBytes, int arq_type);
00047 
00048 void rcpcc_coder();
00049 void rcpcc_decoder();
00050 double distance();
00051 
00052 void ConvBits2Bytes(int *bit_array, unsigned char *byte_array, int N);
00053 void ConvBytes2Bits(unsigned char *byte_array, int *bit_array, int N);
00054 
00055 void  MakeCRCBytes(byte *in_bits, int info_dim, int CRC_dim);    
00056 int  CheckCRC(byte *out_bits,  int info_dim, int CRC_dim);
00057    
00058 buf_rcpc *MakeNewVideoPacket(int Rtype, int N, Buffer *VideoBuff, 
00059                              int CRCBytes, int arq_type);
00060 
00061 unsigned char *DecodeVideoPacket(int Rtype, int N, buf_rcpc *b1, 
00062                                  int *CRC_flag, int *K, int CRCBytes, 
00063                                  int arq_type);
00064 
00065 
00066 #endif

Generated on Sun Jul 16 16:27:45 2006 by  doxygen 1.3.9.1