?? ifunctions.h
字號:
/*!
************************************************************************
* \file
* ifunctions.h
*
* \brief
* define some inline functions that are used within the encoder.
*
* \author
* Main contributors (see contributors.h for copyright, address and affiliation details)
* - Karsten S黨ring <suehring@hhi.de>
* - Alexis Tourapis <alexismt@ieee.org>
*
************************************************************************
*/
#ifndef _IFUNCTIONS_H_
#define _IFUNCTIONS_H_
# if defined(WIN32) || (__STDC_VERSION__ >= 199901L)
static inline int imin(int a, int b)
{
return ((a) < (b)) ? (a) : (b);
}
static inline int imax(int a, int b)
{
return ((a) > (b)) ? (a) : (b);
}
static inline double dmin(double a, double b)
{
return ((a) < (b)) ? (a) : (b);
}
static inline double dmax(double a, double b)
{
return ((a) > (b)) ? (a) : (b);
}
static inline int64 i64min(int64 a, int64 b)
{
return ((a) < (b)) ? (a) : (b);
}
static inline int64 i64max(int64 a, int64 b)
{
return ((a) > (b)) ? (a) : (b);
}
static inline int iabs(int x)
{
return ((x) < 0) ? -(x) : (x);
}
static inline double dabs(double x)
{
return ((x) < 0) ? -(x) : (x);
}
static inline int64 i64abs(int64 x)
{
return ((x) < 0) ? -(x) : (x);
}
static inline double dabs2(double x)
{
return (x) * (x);
}
static inline int iabs2(int x) {
return (x) * (x);
}
static inline int64 i64abs2(int64 x)
{
return (x) * (x);
}
static inline int isign(int x)
{
return ((x) < 0) ? -1 : 1;
}
static inline int isignab(int a, int b)
{
return ((b) < 0) ? -iabs(a) : iabs(a);
}
static inline int rshift_rnd(int x, int a)
{
return (a > 0) ? ((x + (1 << (a-1) )) >> a) : (x << (-a));
}
static inline unsigned int rshift_rnd_us(unsigned int x, unsigned int a)
{
return (a > 0) ? ((x + (1 << (a-1))) >> a) : x;
}
static inline int rshift_rnd_sf(int x, int a)
{
return ((x + (1 << (a-1) )) >> a);
}
static inline unsigned int rshift_rnd_us_sf(unsigned int x, unsigned int a)
{
return ((x + (1 << (a-1))) >> a);
}
static inline int iClip1(int high, int x)
{
x = imax(x, 0);
x = imin(x, high);
return x;
}
static inline int iClip3(int low, int high, int x)
{
x = imax(x, low);
x = imin(x, high);
return x;
}
static inline double dClip3(double low, double high, double x)
{
x = dmax(x, low);
x = dmin(x, high);
return x;
}
static inline int RSD(int x)
{
return ((x&2)?(x|1):(x&(~1)));
}
# else
# define imin(a, b) (((a) < (b)) ? (a) : (b))
# define imax(a, b) (((a) > (b)) ? (a) : (b))
# define dmin(a, b) (((a) < (b)) ? (a) : (b))
# define dmax(a, b) (((a) > (b)) ? (a) : (b))
# define i64min(a, b) (((a) < (b)) ? (a) : (b))
# define i64max(a, b) (((a) > (b)) ? (a) : (b))
# define iabs(x) (((x) < 0) ? -(x) : (x))
# define dabs(x) (((x) < 0) ? -(x) : (x))
# define i64abs(x) (((x) < 0) ? -(x) : (x))
# define iabs2(x) ((x) * (x))
# define dabs2(x) ((x) * (x))
# define i64abs2(x) ((x) * (x))
# define isign(x) (((x) < 0) ? -1 : 1)
# define isignab(a, b) (((b) < 0) ? -iabs(a) : iabs(a))
# define rshift_rnd(x, a) (((a) > 0) ? (((x) + (1 << ((a)-1))) >> (a)) : ((x) << (-(a))))
# define rshift_rnd_us(x, a) (((a) > 0) ? (((x) + (1 << ((a)-1))) >> (a)) : (x))
# define rshift_rnd_sf(x, a) (((x) + (1 << ((a)-1))) >> (a))
# define rshift_rnd_us_sf(x, a) (((x) + (1 << ((a)-1))) >> (a))
# define iClip1(high, x) (imax( imin(x, high), 0))
# define iClip3(low, high, x) (imax( imin(x, high), low))
# define dClip3(low, high, x) (dmax( dmin(x, high), low))
# define RSD(x) (((x)&2)?((x)|1):((x)&(~1)))
# endif
#endif
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -