mirror of
https://github.com/ultravideo/uvg266.git
synced 2024-11-27 11:24:05 +00:00
New search.c/.h files and changed department name on all files
This commit is contained in:
parent
01c7f267d7
commit
a737e8660c
|
@ -140,7 +140,7 @@
|
|||
<Optimization>MaxSpeed</Optimization>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PreprocessorDefinitions>X64;WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<CompileAs>CompileAsC</CompileAs>
|
||||
<EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
|
||||
<InlineFunctionExpansion>Default</InlineFunctionExpansion>
|
||||
|
@ -167,6 +167,7 @@
|
|||
<ClCompile Include="..\..\src\intra.c" />
|
||||
<ClCompile Include="..\..\src\nal.c" />
|
||||
<ClCompile Include="..\..\src\picture.c" />
|
||||
<ClCompile Include="..\..\src\search.c" />
|
||||
<ClCompile Include="..\..\src\transform.c" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
|
@ -180,6 +181,7 @@
|
|||
<ClInclude Include="..\..\src\intra.h" />
|
||||
<ClInclude Include="..\..\src\nal.h" />
|
||||
<ClInclude Include="..\..\src\picture.h" />
|
||||
<ClInclude Include="..\..\src\search.h" />
|
||||
<ClInclude Include="..\..\src\transform.h" />
|
||||
<ClInclude Include="..\..\src\x64\test64.h" />
|
||||
<ClInclude Include="..\..\src\x86\test.h" />
|
||||
|
|
|
@ -60,6 +60,9 @@
|
|||
<ClCompile Include="..\..\src\filter.c">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\search.c">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="..\..\src\global.h">
|
||||
|
@ -99,7 +102,10 @@
|
|||
<Filter>Header Files\x86</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\x64\test64.h">
|
||||
<Filter>Header Files\x86</Filter>
|
||||
<Filter>Header Files\x64</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\search.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/**
|
||||
* HEVC Encoder
|
||||
* - Marko Viitanen ( fador at iki.fi ), Tampere University of Technology, Department of Computer Systems.
|
||||
* - Marko Viitanen ( fador at iki.fi ), Tampere University of Technology, Department of Pervasive Computing.
|
||||
*/
|
||||
|
||||
/*! \file bitstream.c
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/**
|
||||
* HEVC Encoder
|
||||
* - Marko Viitanen ( fador at iki.fi ), Tampere University of Technology, Department of Computer Systems.
|
||||
* - Marko Viitanen ( fador at iki.fi ), Tampere University of Technology, Department of Pervasive Computing.
|
||||
*/
|
||||
|
||||
/*! \file cabac.c
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/**
|
||||
* HEVC Encoder
|
||||
* - Marko Viitanen ( fador at iki.fi ), Tampere University of Technology, Department of Computer Systems.
|
||||
* - Marko Viitanen ( fador at iki.fi ), Tampere University of Technology, Department of Pervasive Computing.
|
||||
*/
|
||||
|
||||
/*! \file cabac.h
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/**
|
||||
* HEVC Encoder
|
||||
* - Marko Viitanen ( fador at iki.fi ), Tampere University of Technology, Department of Computer Systems.
|
||||
* - Marko Viitanen ( fador at iki.fi ), Tampere University of Technology, Department of Pervasive Computing.
|
||||
*/
|
||||
|
||||
/*! \file config.c
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/**
|
||||
* HEVC Encoder
|
||||
* - Marko Viitanen ( fador at iki.fi ), Tampere University of Technology, Department of Computer Systems.
|
||||
* - Marko Viitanen ( fador at iki.fi ), Tampere University of Technology, Department of Pervasive Computing.
|
||||
*/
|
||||
|
||||
/*! \file config.h
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/**
|
||||
* Part of HEVC Encoder
|
||||
* By Marko Viitanen ( fador at iki.fi ), Tampere University of Technology, Department of Computer Systems.
|
||||
* By Marko Viitanen ( fador at iki.fi ), Tampere University of Technology, Department of Pervasive Computing.
|
||||
*/
|
||||
|
||||
/*! \file context.c
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/**
|
||||
* HEVC Encoder
|
||||
* - Marko Viitanen ( fador at iki.fi ), Tampere University of Technology, Department of Computer Systems.
|
||||
* - Marko Viitanen ( fador at iki.fi ), Tampere University of Technology, Department of Pervasive Computing.
|
||||
*/
|
||||
|
||||
/*! \file context.h
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/**
|
||||
* HEVC Encoder
|
||||
* - Marko Viitanen ( fador at iki.fi ), Tampere University of Technology, Department of Computer Systems.
|
||||
* - Marko Viitanen ( fador at iki.fi ), Tampere University of Technology, Department of Pervasive Computing.
|
||||
*/
|
||||
|
||||
/*! \file decmain.c
|
||||
|
@ -61,7 +61,8 @@
|
|||
int main(int argc, char* argv[])
|
||||
{
|
||||
int ecx = 0,edx =0;
|
||||
enum { BIT_SSSE3 = 9, BIT_SSE41 = 19, BIT_SSE42 = 20, BIT_MMX = 24, BIT_SSE = 25, BIT_SSE2 = 26};
|
||||
/* CPU feature bits */
|
||||
enum { BIT_SSE3 = 0,BIT_SSSE3 = 9, BIT_SSE41 = 19, BIT_SSE42 = 20, BIT_MMX = 24, BIT_SSE = 25, BIT_SSE2 = 26, BIT_AVX = 28};
|
||||
uint32_t curFrame = 0;
|
||||
config *cfg = NULL; /* Global configuration */
|
||||
FILE *input = NULL;
|
||||
|
@ -74,20 +75,22 @@
|
|||
|
||||
/* CPU id */
|
||||
|
||||
printf("Checking for CPU features...\r\n");
|
||||
#ifndef X64
|
||||
cpuId(&ecx,&edx);
|
||||
//cpuId32(&ecx,&edx);
|
||||
#else
|
||||
cpuId64(&ecx,&edx);
|
||||
#endif
|
||||
//printf("CPUID ECX: %X EDX: %X\r\n", ecx, edx);
|
||||
//cpuId64(&ecx,&edx);
|
||||
#endif
|
||||
printf("CPU features enabled: ");
|
||||
if(edx & (1<<BIT_MMX)) printf("MMX ");
|
||||
if(edx & (1<<BIT_SSE)) printf("SSE ");
|
||||
/* EDX */
|
||||
if(edx & (1<<BIT_MMX)) printf("MMX ");
|
||||
if(edx & (1<<BIT_SSE)) printf("SSE ");
|
||||
if(edx & (1<<BIT_SSE2)) printf("SSE2 ");
|
||||
/* ECX */
|
||||
if(ecx & (1<<BIT_SSE3)) printf("SSE3 ");
|
||||
if(ecx & (1<<BIT_SSSE3)) printf("SSSE3 ");
|
||||
if(ecx & (1<<BIT_SSE41)) printf("SSE4.1 ");
|
||||
if(ecx & (1<<BIT_SSE42)) printf("SSE4.2 ");
|
||||
if(ecx & (1<<BIT_AVX)) printf("AVX ");
|
||||
printf("\r\n");
|
||||
|
||||
|
||||
|
@ -192,7 +195,7 @@
|
|||
temp_PSNR[1] = imagePSNR(encoder->in.cur_pic.uData,encoder->in.cur_pic.uRecData,cfg->width>>1,cfg->height>>1);
|
||||
temp_PSNR[2] = imagePSNR(encoder->in.cur_pic.vData,encoder->in.cur_pic.vRecData,cfg->width>>1,cfg->height>>1);
|
||||
|
||||
printf("[%d] %c-frame PSNR: %2.4f %2.4f %2.4f\n", encoder->frame, "IPB"[encoder->in.cur_pic.type%3],
|
||||
printf("[%d] %c-frame PSNR: %2.4f %2.4f %2.4f\n", encoder->frame, "IPB"[encoder->in.cur_pic.slicetype%3],
|
||||
temp_PSNR[0],temp_PSNR[1],temp_PSNR[2]);
|
||||
PSNR[0]+=temp_PSNR[0];
|
||||
PSNR[1]+=temp_PSNR[1];
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/**
|
||||
* HEVC Encoder
|
||||
* - Marko Viitanen ( fador at iki.fi ), Tampere University of Technology, Department of Computer Systems.
|
||||
* - Marko Viitanen ( fador at iki.fi ), Tampere University of Technology, Department of Pervasive Computing.
|
||||
*/
|
||||
|
||||
/*! \file encoder.c
|
||||
|
@ -1061,7 +1061,7 @@ void encode_transform_tree(encoder_control* encoder,transform_info* ti,uint8_t d
|
|||
{
|
||||
int16_t val = block[i++]+pred[x+y*pred_stride];
|
||||
//ToDo: support 10+bits
|
||||
recbase[x+y*recbase_stride] = (uint8_t)CLIP(0,255,val);
|
||||
recbase[x+y*recbase_stride] = (uint8_t)(val&0xff);//CLIP(0,255,val);
|
||||
}
|
||||
}
|
||||
/* END RECONTRUCTION */
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/**
|
||||
* HEVC Encoder
|
||||
* - Marko Viitanen ( fador at iki.fi ), Tampere University of Technology, Department of Computer Systems.
|
||||
* - Marko Viitanen ( fador at iki.fi ), Tampere University of Technology, Department of Pervasive Computing.
|
||||
*/
|
||||
|
||||
/*! \file encoder.h
|
||||
|
@ -87,6 +87,7 @@ typedef struct
|
|||
int32_t split[4];
|
||||
} transform_info;
|
||||
|
||||
void init_tables(void);
|
||||
void init_encoder_control(encoder_control* control,bitstream* output);
|
||||
void init_encoder_input(encoder_input* input,FILE* inputfile, int32_t width, int32_t height);
|
||||
void encode_one_frame(encoder_control* encoder);
|
||||
|
@ -102,7 +103,6 @@ void encode_lastSignificantXY(encoder_control* encoder,uint8_t lastpos_x, uint8_
|
|||
void encode_CoeffNxN(encoder_control* encoder,int16_t* coeff, uint8_t width, uint8_t type, int8_t scanMode);
|
||||
void encode_transform_tree(encoder_control* encoder,transform_info* ti,uint8_t depth);
|
||||
void encode_transform_coeff(encoder_control* encoder,transform_info* ti,int8_t depth, int8_t trDepth);
|
||||
void init_tables(void);
|
||||
|
||||
static uint32_t* g_auiSigLastScan[3][7];
|
||||
int8_t g_aucConvertToBit[LCU_WIDTH+1];
|
||||
|
@ -146,8 +146,8 @@ static const uint8_t g_toBits[129] =
|
|||
#define TOBITS(len) g_toBits[len]
|
||||
|
||||
|
||||
#define C1FLAG_NUMBER 8 // maximum number of largerThan1 flag coded in one chunk
|
||||
#define C2FLAG_NUMBER 1 // maximum number of largerThan2 flag coded in one chunk
|
||||
#define C1FLAG_NUMBER 8 /*!< maximum number of largerThan1 flag coded in one chunk */
|
||||
#define C2FLAG_NUMBER 1 /*!< maximum number of largerThan2 flag coded in one chunk */
|
||||
|
||||
enum COEFF_SCAN_TYPE
|
||||
{
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/**
|
||||
* HEVC Encoder
|
||||
* - Marko Viitanen ( fador at iki.fi ), Tampere University of Technology, Department of Computer Systems.
|
||||
* - Marko Viitanen ( fador at iki.fi ), Tampere University of Technology, Department of Pervasive Computing.
|
||||
*/
|
||||
|
||||
/*! \file filter.c
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/**
|
||||
* HEVC Encoder
|
||||
* - Marko Viitanen ( fador at iki.fi ), Tampere University of Technology, Department of Computer Systems 2012.
|
||||
* - Marko Viitanen ( fador at iki.fi ), Tampere University of Technology, Department of Pervasive Computing 2013.
|
||||
*/
|
||||
|
||||
/*! \file filter.h
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/**
|
||||
* HEVC Encoder
|
||||
* - Marko Viitanen ( fador at iki.fi ), Tampere University of Technology, Department of Computer Systems.
|
||||
* - Marko Viitanen ( fador at iki.fi ), Tampere University of Technology, Department of Pervasive Computing.
|
||||
*/
|
||||
|
||||
/*! \file global.h
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/**
|
||||
* HEVC Encoder
|
||||
* - Marko Viitanen ( fador at iki.fi ), Tampere University of Technology, Department of Computer Systems.
|
||||
* - Marko Viitanen ( fador at iki.fi ), Tampere University of Technology, Department of Pervasive Computing.
|
||||
*/
|
||||
|
||||
/*! \file intra.c
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/**
|
||||
* HEVC Encoder
|
||||
* - Marko Viitanen ( fador at iki.fi ), Tampere University of Technology, Department of Computer Systems.
|
||||
* - Marko Viitanen ( fador at iki.fi ), Tampere University of Technology, Department of Pervasive Computing.
|
||||
*/
|
||||
|
||||
/*! \file intra.h
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/**
|
||||
* HEVC Encoder
|
||||
* - Marko Viitanen ( fador at iki.fi ), Tampere University of Technology, Department of Computer Systems.
|
||||
* - Marko Viitanen ( fador at iki.fi ), Tampere University of Technology, Department of Pervasive Computing.
|
||||
*/
|
||||
|
||||
/*! \file nal.c
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/**
|
||||
* HEVC Encoder
|
||||
* - Marko Viitanen ( fador at iki.fi ), Tampere University of Technology, Department of Computer Systems 2012.
|
||||
* - Marko Viitanen ( fador at iki.fi ), Tampere University of Technology, Department of Pervasive Computing 2013.
|
||||
*/
|
||||
|
||||
/*! \file nal.h
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/**
|
||||
* Part of HEVC Encoder
|
||||
* By Marko Viitanen ( fador at iki.fi ), Tampere University of Technology, Department of Computer Systems.
|
||||
* By Marko Viitanen ( fador at iki.fi ), Tampere University of Technology, Department of Pervasive Computing.
|
||||
*/
|
||||
|
||||
/*! \file picture.c
|
||||
|
@ -70,7 +70,7 @@
|
|||
//allocate space for the new list
|
||||
list->pics = (picture**)malloc(sizeof(picture*)*size);
|
||||
|
||||
//Copy everthing from the old list to the new if needed.
|
||||
//Copy everything from the old list to the new if needed.
|
||||
if(old_pics != NULL)
|
||||
{
|
||||
for(i = 0; i < list->used_size; i++)
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/**
|
||||
* Part of HEVC Encoder
|
||||
* By Marko Viitanen ( fador at iki.fi ), Tampere University of Technology, Department of Computer Systems.
|
||||
* By Marko Viitanen ( fador at iki.fi ), Tampere University of Technology, Department of Pervasive Computing.
|
||||
*/
|
||||
|
||||
/*! \file picture.h
|
||||
|
|
24
src/search.c
Normal file
24
src/search.c
Normal file
|
@ -0,0 +1,24 @@
|
|||
/**
|
||||
* HEVC Encoder
|
||||
* - Marko Viitanen ( fador at iki.fi ), Tampere University of Technology, Department of Pervasive Computing.
|
||||
*/
|
||||
|
||||
/*! \file search.c
|
||||
\brief searching
|
||||
\author Marko Viitanen
|
||||
\date 2013-04
|
||||
|
||||
Search related functions
|
||||
*/
|
||||
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include "global.h"
|
||||
#include "config.h"
|
||||
#include "bitstream.h"
|
||||
#include "picture.h"
|
||||
#include "cabac.h"
|
||||
#include "encoder.h"
|
||||
#include "filter.h"
|
18
src/search.h
Normal file
18
src/search.h
Normal file
|
@ -0,0 +1,18 @@
|
|||
/**
|
||||
* HEVC Encoder
|
||||
* - Marko Viitanen ( fador at iki.fi ), Tampere University of Technology, Department of Pervasive Computing 2013.
|
||||
*/
|
||||
|
||||
/*! \file search.h
|
||||
\brief searching
|
||||
\author Marko Viitanen
|
||||
\date 2013-04
|
||||
|
||||
Search related function headers
|
||||
*/
|
||||
|
||||
#ifndef __SEARCH_H
|
||||
#define __SEARCH_H
|
||||
|
||||
|
||||
#endif
|
|
@ -1,6 +1,6 @@
|
|||
/**
|
||||
* HEVC Encoder
|
||||
* - Marko Viitanen ( fador at iki.fi ), Tampere University of Technology, Department of Computer Systems.
|
||||
* - Marko Viitanen ( fador at iki.fi ), Tampere University of Technology, Department of Pervasive Computing.
|
||||
*/
|
||||
|
||||
/*! \file transform.c
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/**
|
||||
* HEVC Encoder
|
||||
* - Marko Viitanen ( fador at iki.fi ), Tampere University of Technology, Department of Computer Systems.
|
||||
* - Marko Viitanen ( fador at iki.fi ), Tampere University of Technology, Department of Pervasive Computing.
|
||||
*/
|
||||
|
||||
/*! \file transform.h
|
||||
|
|
|
@ -3,6 +3,8 @@ bits 64
|
|||
section .code
|
||||
global cpuId64
|
||||
|
||||
;void __cdecl cpuId64(int* ecx, int *edx );
|
||||
|
||||
cpuId64:
|
||||
mov r8, rcx ; pointer to ecx-output
|
||||
mov r9, rdx ; pointer to edx-output
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/**
|
||||
* Part of HEVC Encoder
|
||||
* By Marko Viitanen ( fador at iki.fi ), Tampere University of Technology, Department of Computer Systems.
|
||||
* By Marko Viitanen ( fador at iki.fi ), Tampere University of Technology, Department of Pervasive Computing.
|
||||
*/
|
||||
|
||||
/*! \file test.h
|
||||
|
|
|
@ -1,13 +1,16 @@
|
|||
; Function to get CPUID for identifying CPU capabilities
|
||||
bits 32
|
||||
global _cpuId
|
||||
section .code
|
||||
global cpuId32
|
||||
|
||||
_cpuId:
|
||||
;void __cdecl cpuId(int* ecx, int *edx );
|
||||
|
||||
cpuId32:
|
||||
mov eax,1
|
||||
cpuid
|
||||
mov eax, dword [esp+4]
|
||||
mov eax, dword [esp+4] ; pointer to ecx-output, pushed second to the stack
|
||||
mov dword [eax], ecx
|
||||
mov eax, dword [esp+8]
|
||||
mov eax, dword [esp+8] ; pointer to edx-output, pushed first to the stack
|
||||
mov dword [eax], edx
|
||||
mov eax,0
|
||||
ret
|
|
@ -1,6 +1,6 @@
|
|||
/**
|
||||
* Part of HEVC Encoder
|
||||
* By Marko Viitanen ( fador at iki.fi ), Tampere University of Technology, Department of Computer Systems.
|
||||
* By Marko Viitanen ( fador at iki.fi ), Tampere University of Technology, Department of Pervasive Computing.
|
||||
*/
|
||||
|
||||
/*! \file test.h
|
||||
|
@ -13,7 +13,7 @@
|
|||
#ifndef _TEST_H_
|
||||
#define _TEST_H_
|
||||
|
||||
void __cdecl cpuId(int* ecx, int *edx );
|
||||
void __cdecl cpuId32(int* ecx, int *edx );
|
||||
|
||||
|
||||
#endif
|
Loading…
Reference in a new issue