[restrict] remove from in/out buffers
This commit is contained in:
parent
1761edf2f8
commit
4778203340
@ -762,14 +762,13 @@ static INLINE size_t progressive_rfx_get_band_h_count(size_t level)
|
|||||||
return (64 + (1 << (level - 1))) >> level;
|
return (64 + (1 << (level - 1))) >> level;
|
||||||
}
|
}
|
||||||
|
|
||||||
static INLINE void progressive_rfx_dwt_2d_decode_block(INT16* WINPR_RESTRICT buffer,
|
static INLINE void progressive_rfx_dwt_2d_decode_block(INT16* buffer, INT16* temp, size_t level)
|
||||||
INT16* WINPR_RESTRICT temp, size_t level)
|
|
||||||
{
|
{
|
||||||
size_t nDstStepX;
|
size_t nDstStepX;
|
||||||
size_t nDstStepY;
|
size_t nDstStepY;
|
||||||
INT16 *WINPR_RESTRICT HL, *WINPR_RESTRICT LH;
|
INT16 *HL, *LH;
|
||||||
INT16 *WINPR_RESTRICT HH, *WINPR_RESTRICT LL;
|
INT16 *HH, *LL;
|
||||||
INT16 *WINPR_RESTRICT L, *WINPR_RESTRICT H, *WINPR_RESTRICT LLx;
|
INT16 *L, *H, *LLx;
|
||||||
|
|
||||||
const size_t nBandL = progressive_rfx_get_band_l_count(level);
|
const size_t nBandL = progressive_rfx_get_band_l_count(level);
|
||||||
const size_t nBandH = progressive_rfx_get_band_h_count(level);
|
const size_t nBandH = progressive_rfx_get_band_h_count(level);
|
||||||
@ -801,7 +800,7 @@ static INLINE void progressive_rfx_dwt_2d_decode_block(INT16* WINPR_RESTRICT buf
|
|||||||
nBandL + nBandH);
|
nBandL + nBandH);
|
||||||
}
|
}
|
||||||
|
|
||||||
void rfx_dwt_2d_extrapolate_decode(INT16* WINPR_RESTRICT buffer, INT16* WINPR_RESTRICT temp)
|
void rfx_dwt_2d_extrapolate_decode(INT16* buffer, INT16* temp)
|
||||||
{
|
{
|
||||||
WINPR_ASSERT(buffer);
|
WINPR_ASSERT(buffer);
|
||||||
WINPR_ASSERT(temp);
|
WINPR_ASSERT(temp);
|
||||||
|
@ -25,17 +25,13 @@
|
|||||||
|
|
||||||
#include "rfx_dwt.h"
|
#include "rfx_dwt.h"
|
||||||
|
|
||||||
static void rfx_dwt_2d_decode_block(INT16* WINPR_RESTRICT buffer, INT16* WINPR_RESTRICT idwt,
|
static void rfx_dwt_2d_decode_block(INT16* buffer, INT16* idwt, size_t subband_width)
|
||||||
int subband_width)
|
|
||||||
{
|
{
|
||||||
INT16 *WINPR_RESTRICT dst, *WINPR_RESTRICT l, *WINPR_RESTRICT h;
|
INT16 *dst, *l, *h;
|
||||||
INT16 *WINPR_RESTRICT l_dst, *WINPR_RESTRICT h_dst;
|
INT16 *l_dst, *h_dst;
|
||||||
INT16 *WINPR_RESTRICT hl, *WINPR_RESTRICT lh, *WINPR_RESTRICT hh, *WINPR_RESTRICT ll;
|
INT16 *hl, *lh, *hh, *ll;
|
||||||
int total_width;
|
|
||||||
int x, y;
|
|
||||||
int n;
|
|
||||||
|
|
||||||
total_width = subband_width << 1;
|
const size_t total_width = subband_width << 1;
|
||||||
|
|
||||||
/* Inverse DWT in horizontal direction, results in 2 sub-bands in L, H order in tmp buffer idwt.
|
/* Inverse DWT in horizontal direction, results in 2 sub-bands in L, H order in tmp buffer idwt.
|
||||||
*/
|
*/
|
||||||
@ -51,26 +47,28 @@ static void rfx_dwt_2d_decode_block(INT16* WINPR_RESTRICT buffer, INT16* WINPR_R
|
|||||||
hh = buffer + subband_width * subband_width * 2;
|
hh = buffer + subband_width * subband_width * 2;
|
||||||
h_dst = idwt + subband_width * subband_width * 2;
|
h_dst = idwt + subband_width * subband_width * 2;
|
||||||
|
|
||||||
for (y = 0; y < subband_width; y++)
|
for (size_t y = 0; y < subband_width; y++)
|
||||||
{
|
{
|
||||||
/* Even coefficients */
|
/* Even coefficients */
|
||||||
l_dst[0] = ll[0] - ((hl[0] + hl[0] + 1) >> 1);
|
l_dst[0] = ll[0] - ((hl[0] + hl[0] + 1) >> 1);
|
||||||
h_dst[0] = lh[0] - ((hh[0] + hh[0] + 1) >> 1);
|
h_dst[0] = lh[0] - ((hh[0] + hh[0] + 1) >> 1);
|
||||||
for (n = 1; n < subband_width; n++)
|
for (size_t n = 1; n < subband_width; n++)
|
||||||
{
|
{
|
||||||
x = n << 1;
|
const size_t x = n << 1;
|
||||||
l_dst[x] = ll[n] - ((hl[n - 1] + hl[n] + 1) >> 1);
|
l_dst[x] = ll[n] - ((hl[n - 1] + hl[n] + 1) >> 1);
|
||||||
h_dst[x] = lh[n] - ((hh[n - 1] + hh[n] + 1) >> 1);
|
h_dst[x] = lh[n] - ((hh[n - 1] + hh[n] + 1) >> 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Odd coefficients */
|
/* Odd coefficients */
|
||||||
|
size_t n = 0;
|
||||||
for (n = 0; n < subband_width - 1; n++)
|
for (n = 0; n < subband_width - 1; n++)
|
||||||
{
|
{
|
||||||
x = n << 1;
|
const size_t x = n << 1;
|
||||||
l_dst[x + 1] = (hl[n] << 1) + ((l_dst[x] + l_dst[x + 2]) >> 1);
|
l_dst[x + 1] = (hl[n] << 1) + ((l_dst[x] + l_dst[x + 2]) >> 1);
|
||||||
h_dst[x + 1] = (hh[n] << 1) + ((h_dst[x] + h_dst[x + 2]) >> 1);
|
h_dst[x + 1] = (hh[n] << 1) + ((h_dst[x] + h_dst[x + 2]) >> 1);
|
||||||
}
|
}
|
||||||
x = n << 1;
|
|
||||||
|
const size_t x = n << 1;
|
||||||
l_dst[x + 1] = (hl[n] << 1) + (l_dst[x]);
|
l_dst[x + 1] = (hl[n] << 1) + (l_dst[x]);
|
||||||
h_dst[x + 1] = (hh[n] << 1) + (h_dst[x]);
|
h_dst[x + 1] = (hh[n] << 1) + (h_dst[x]);
|
||||||
|
|
||||||
@ -84,7 +82,7 @@ static void rfx_dwt_2d_decode_block(INT16* WINPR_RESTRICT buffer, INT16* WINPR_R
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Inverse DWT in vertical direction, results are stored in original buffer. */
|
/* Inverse DWT in vertical direction, results are stored in original buffer. */
|
||||||
for (x = 0; x < total_width; x++)
|
for (size_t x = 0; x < total_width; x++)
|
||||||
{
|
{
|
||||||
l = idwt + x;
|
l = idwt + x;
|
||||||
h = idwt + x + subband_width * total_width;
|
h = idwt + x + subband_width * total_width;
|
||||||
@ -92,7 +90,7 @@ static void rfx_dwt_2d_decode_block(INT16* WINPR_RESTRICT buffer, INT16* WINPR_R
|
|||||||
|
|
||||||
*dst = *l - ((*h * 2 + 1) >> 1);
|
*dst = *l - ((*h * 2 + 1) >> 1);
|
||||||
|
|
||||||
for (n = 1; n < subband_width; n++)
|
for (size_t n = 1; n < subband_width; n++)
|
||||||
{
|
{
|
||||||
l += total_width;
|
l += total_width;
|
||||||
h += total_width;
|
h += total_width;
|
||||||
@ -110,7 +108,7 @@ static void rfx_dwt_2d_decode_block(INT16* WINPR_RESTRICT buffer, INT16* WINPR_R
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void rfx_dwt_2d_decode(INT16* WINPR_RESTRICT buffer, INT16* WINPR_RESTRICT dwt_buffer)
|
void rfx_dwt_2d_decode(INT16* buffer, INT16* dwt_buffer)
|
||||||
{
|
{
|
||||||
WINPR_ASSERT(buffer);
|
WINPR_ASSERT(buffer);
|
||||||
WINPR_ASSERT(dwt_buffer);
|
WINPR_ASSERT(dwt_buffer);
|
||||||
@ -120,8 +118,7 @@ void rfx_dwt_2d_decode(INT16* WINPR_RESTRICT buffer, INT16* WINPR_RESTRICT dwt_b
|
|||||||
rfx_dwt_2d_decode_block(&buffer[0], dwt_buffer, 32);
|
rfx_dwt_2d_decode_block(&buffer[0], dwt_buffer, 32);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void rfx_dwt_2d_encode_block(INT16* WINPR_RESTRICT buffer, INT16* WINPR_RESTRICT dwt,
|
static void rfx_dwt_2d_encode_block(INT16* buffer, INT16* dwt, UINT32 subband_width)
|
||||||
UINT32 subband_width)
|
|
||||||
{
|
{
|
||||||
INT16 *src, *l, *h;
|
INT16 *src, *l, *h;
|
||||||
INT16 *l_src, *h_src;
|
INT16 *l_src, *h_src;
|
||||||
@ -198,7 +195,7 @@ static void rfx_dwt_2d_encode_block(INT16* WINPR_RESTRICT buffer, INT16* WINPR_R
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void rfx_dwt_2d_encode(INT16* WINPR_RESTRICT buffer, INT16* WINPR_RESTRICT dwt_buffer)
|
void rfx_dwt_2d_encode(INT16* buffer, INT16* dwt_buffer)
|
||||||
{
|
{
|
||||||
WINPR_ASSERT(buffer);
|
WINPR_ASSERT(buffer);
|
||||||
WINPR_ASSERT(dwt_buffer);
|
WINPR_ASSERT(dwt_buffer);
|
||||||
|
@ -24,11 +24,8 @@
|
|||||||
#include <freerdp/codec/rfx.h>
|
#include <freerdp/codec/rfx.h>
|
||||||
#include <freerdp/api.h>
|
#include <freerdp/api.h>
|
||||||
|
|
||||||
FREERDP_LOCAL void rfx_dwt_2d_decode(INT16* WINPR_RESTRICT buffer,
|
FREERDP_LOCAL void rfx_dwt_2d_decode(INT16* buffer, INT16* dwt_buffer);
|
||||||
INT16* WINPR_RESTRICT dwt_buffer);
|
FREERDP_LOCAL void rfx_dwt_2d_encode(INT16* buffer, INT16* dwt_buffer);
|
||||||
FREERDP_LOCAL void rfx_dwt_2d_encode(INT16* WINPR_RESTRICT buffer,
|
FREERDP_LOCAL void rfx_dwt_2d_extrapolate_decode(INT16* buffer, INT16* dwt_buffer);
|
||||||
INT16* WINPR_RESTRICT dwt_buffer);
|
|
||||||
FREERDP_LOCAL void rfx_dwt_2d_extrapolate_decode(INT16* WINPR_RESTRICT buffer,
|
|
||||||
INT16* WINPR_RESTRICT dwt_buffer);
|
|
||||||
|
|
||||||
#endif /* FREERDP_LIB_CODEC_RFX_DWT_H */
|
#endif /* FREERDP_LIB_CODEC_RFX_DWT_H */
|
||||||
|
@ -67,17 +67,16 @@ static void rfx_quantization_decode_NEON(INT16* buffer, const UINT32* WINPR_REST
|
|||||||
|
|
||||||
static __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__))
|
static __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__))
|
||||||
rfx_dwt_2d_decode_block_horiz_NEON(INT16* WINPR_RESTRICT l, INT16* WINPR_RESTRICT h,
|
rfx_dwt_2d_decode_block_horiz_NEON(INT16* WINPR_RESTRICT l, INT16* WINPR_RESTRICT h,
|
||||||
INT16* WINPR_RESTRICT dst, int subband_width)
|
INT16* WINPR_RESTRICT dst, size_t subband_width)
|
||||||
{
|
{
|
||||||
int y, n;
|
|
||||||
INT16* l_ptr = l;
|
INT16* l_ptr = l;
|
||||||
INT16* h_ptr = h;
|
INT16* h_ptr = h;
|
||||||
INT16* dst_ptr = dst;
|
INT16* dst_ptr = dst;
|
||||||
|
|
||||||
for (y = 0; y < subband_width; y++)
|
for (size_t y = 0; y < subband_width; y++)
|
||||||
{
|
{
|
||||||
/* Even coefficients */
|
/* Even coefficients */
|
||||||
for (n = 0; n < subband_width; n += 8)
|
for (size_t n = 0; n < subband_width; n += 8)
|
||||||
{
|
{
|
||||||
// dst[2n] = l[n] - ((h[n-1] + h[n] + 1) >> 1);
|
// dst[2n] = l[n] - ((h[n-1] + h[n] + 1) >> 1);
|
||||||
int16x8_t l_n = vld1q_s16(l_ptr);
|
int16x8_t l_n = vld1q_s16(l_ptr);
|
||||||
@ -103,7 +102,7 @@ rfx_dwt_2d_decode_block_horiz_NEON(INT16* WINPR_RESTRICT l, INT16* WINPR_RESTRIC
|
|||||||
h_ptr -= subband_width;
|
h_ptr -= subband_width;
|
||||||
|
|
||||||
/* Odd coefficients */
|
/* Odd coefficients */
|
||||||
for (n = 0; n < subband_width; n += 8)
|
for (size_t n = 0; n < subband_width; n += 8)
|
||||||
{
|
{
|
||||||
// dst[2n + 1] = (h[n] << 1) + ((dst[2n] + dst[2n + 2]) >> 1);
|
// dst[2n + 1] = (h[n] << 1) + ((dst[2n] + dst[2n + 2]) >> 1);
|
||||||
int16x8_t h_n = vld1q_s16(h_ptr);
|
int16x8_t h_n = vld1q_s16(h_ptr);
|
||||||
@ -131,18 +130,17 @@ rfx_dwt_2d_decode_block_horiz_NEON(INT16* WINPR_RESTRICT l, INT16* WINPR_RESTRIC
|
|||||||
|
|
||||||
static __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__))
|
static __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__))
|
||||||
rfx_dwt_2d_decode_block_vert_NEON(INT16* WINPR_RESTRICT l, INT16* WINPR_RESTRICT h,
|
rfx_dwt_2d_decode_block_vert_NEON(INT16* WINPR_RESTRICT l, INT16* WINPR_RESTRICT h,
|
||||||
INT16* WINPR_RESTRICT dst, int subband_width)
|
INT16* WINPR_RESTRICT dst, size_t subband_width)
|
||||||
{
|
{
|
||||||
int x, n;
|
|
||||||
INT16* l_ptr = l;
|
INT16* l_ptr = l;
|
||||||
INT16* h_ptr = h;
|
INT16* h_ptr = h;
|
||||||
INT16* dst_ptr = dst;
|
INT16* dst_ptr = dst;
|
||||||
int total_width = subband_width + subband_width;
|
const size_t total_width = subband_width + subband_width;
|
||||||
|
|
||||||
/* Even coefficients */
|
/* Even coefficients */
|
||||||
for (n = 0; n < subband_width; n++)
|
for (size_t n = 0; n < subband_width; n++)
|
||||||
{
|
{
|
||||||
for (x = 0; x < total_width; x += 8)
|
for (size_t x = 0; x < total_width; x += 8)
|
||||||
{
|
{
|
||||||
// dst[2n] = l[n] - ((h[n-1] + h[n] + 1) >> 1);
|
// dst[2n] = l[n] - ((h[n-1] + h[n] + 1) >> 1);
|
||||||
int16x8_t l_n = vld1q_s16(l_ptr);
|
int16x8_t l_n = vld1q_s16(l_ptr);
|
||||||
@ -172,9 +170,9 @@ rfx_dwt_2d_decode_block_vert_NEON(INT16* WINPR_RESTRICT l, INT16* WINPR_RESTRICT
|
|||||||
dst_ptr = dst + total_width;
|
dst_ptr = dst + total_width;
|
||||||
|
|
||||||
/* Odd coefficients */
|
/* Odd coefficients */
|
||||||
for (n = 0; n < subband_width; n++)
|
for (size_t n = 0; n < subband_width; n++)
|
||||||
{
|
{
|
||||||
for (x = 0; x < total_width; x += 8)
|
for (size_t x = 0; x < total_width; x += 8)
|
||||||
{
|
{
|
||||||
// dst[2n + 1] = (h[n] << 1) + ((dst[2n] + dst[2n + 2]) >> 1);
|
// dst[2n + 1] = (h[n] << 1) + ((dst[2n] + dst[2n + 2]) >> 1);
|
||||||
int16x8_t h_n = vld1q_s16(h_ptr);
|
int16x8_t h_n = vld1q_s16(h_ptr);
|
||||||
@ -203,7 +201,7 @@ rfx_dwt_2d_decode_block_vert_NEON(INT16* WINPR_RESTRICT l, INT16* WINPR_RESTRICT
|
|||||||
|
|
||||||
static __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__))
|
static __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__))
|
||||||
rfx_dwt_2d_decode_block_NEON(INT16* WINPR_RESTRICT buffer, INT16* WINPR_RESTRICT idwt,
|
rfx_dwt_2d_decode_block_NEON(INT16* WINPR_RESTRICT buffer, INT16* WINPR_RESTRICT idwt,
|
||||||
int subband_width)
|
size_t subband_width)
|
||||||
{
|
{
|
||||||
INT16 *hl, *lh, *hh, *ll;
|
INT16 *hl, *lh, *hh, *ll;
|
||||||
INT16 *l_dst, *h_dst;
|
INT16 *l_dst, *h_dst;
|
||||||
@ -224,7 +222,7 @@ rfx_dwt_2d_decode_block_NEON(INT16* WINPR_RESTRICT buffer, INT16* WINPR_RESTRICT
|
|||||||
rfx_dwt_2d_decode_block_vert_NEON(l_dst, h_dst, buffer, subband_width);
|
rfx_dwt_2d_decode_block_vert_NEON(l_dst, h_dst, buffer, subband_width);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void rfx_dwt_2d_decode_NEON(INT16* WINPR_RESTRICT buffer, INT16* WINPR_RESTRICT dwt_buffer)
|
static void rfx_dwt_2d_decode_NEON(INT16* buffer, INT16* dwt_buffer)
|
||||||
{
|
{
|
||||||
rfx_dwt_2d_decode_block_NEON(buffer + 3840, dwt_buffer, 8);
|
rfx_dwt_2d_decode_block_NEON(buffer + 3840, dwt_buffer, 8);
|
||||||
rfx_dwt_2d_decode_block_NEON(buffer + 3072, dwt_buffer, 16);
|
rfx_dwt_2d_decode_block_NEON(buffer + 3072, dwt_buffer, 16);
|
||||||
@ -468,8 +466,7 @@ static INLINE size_t prfx_get_band_h_count(size_t level)
|
|||||||
return (64 + (1 << (level - 1))) >> level;
|
return (64 + (1 << (level - 1))) >> level;
|
||||||
}
|
}
|
||||||
|
|
||||||
static INLINE void rfx_dwt_2d_decode_extrapolate_block_neon(INT16* WINPR_RESTRICT buffer,
|
static INLINE void rfx_dwt_2d_decode_extrapolate_block_neon(INT16* buffer, INT16* temp,
|
||||||
INT16* WINPR_RESTRICT temp,
|
|
||||||
size_t level)
|
size_t level)
|
||||||
{
|
{
|
||||||
size_t nDstStepX;
|
size_t nDstStepX;
|
||||||
@ -511,8 +508,7 @@ static INLINE void rfx_dwt_2d_decode_extrapolate_block_neon(INT16* WINPR_RESTRIC
|
|||||||
nBandL + nBandH);
|
nBandL + nBandH);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void rfx_dwt_2d_extrapolate_decode_neon(INT16* WINPR_RESTRICT buffer,
|
static void rfx_dwt_2d_extrapolate_decode_neon(INT16* buffer, INT16* temp)
|
||||||
INT16* WINPR_RESTRICT temp)
|
|
||||||
{
|
{
|
||||||
WINPR_ASSERT(buffer);
|
WINPR_ASSERT(buffer);
|
||||||
WINPR_ASSERT(temp);
|
WINPR_ASSERT(temp);
|
||||||
|
@ -319,7 +319,7 @@ rfx_dwt_2d_decode_block_sse2(INT16* buffer, INT16* idwt, int subband_width)
|
|||||||
rfx_dwt_2d_decode_block_vert_sse2(l_dst, h_dst, buffer, subband_width);
|
rfx_dwt_2d_decode_block_vert_sse2(l_dst, h_dst, buffer, subband_width);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void rfx_dwt_2d_decode_sse2(INT16* WINPR_RESTRICT buffer, INT16* WINPR_RESTRICT dwt_buffer)
|
static void rfx_dwt_2d_decode_sse2(INT16* buffer, INT16* dwt_buffer)
|
||||||
{
|
{
|
||||||
WINPR_ASSERT(buffer);
|
WINPR_ASSERT(buffer);
|
||||||
WINPR_ASSERT(dwt_buffer);
|
WINPR_ASSERT(dwt_buffer);
|
||||||
@ -455,7 +455,7 @@ rfx_dwt_2d_encode_block_sse2(INT16* buffer, INT16* dwt, int subband_width)
|
|||||||
rfx_dwt_2d_encode_block_horiz_sse2(h_src, lh, hh, subband_width);
|
rfx_dwt_2d_encode_block_horiz_sse2(h_src, lh, hh, subband_width);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void rfx_dwt_2d_encode_sse2(INT16* WINPR_RESTRICT buffer, INT16* WINPR_RESTRICT dwt_buffer)
|
static void rfx_dwt_2d_encode_sse2(INT16* buffer, INT16* dwt_buffer)
|
||||||
{
|
{
|
||||||
WINPR_ASSERT(buffer);
|
WINPR_ASSERT(buffer);
|
||||||
WINPR_ASSERT(dwt_buffer);
|
WINPR_ASSERT(dwt_buffer);
|
||||||
|
@ -165,13 +165,11 @@ struct S_RFX_CONTEXT
|
|||||||
struct S_RFX_MESSAGE currentMessage;
|
struct S_RFX_MESSAGE currentMessage;
|
||||||
|
|
||||||
/* routines */
|
/* routines */
|
||||||
void (*quantization_decode)(INT16* WINPR_RESTRICT buffer,
|
void (*quantization_decode)(INT16* buffer, const UINT32* WINPR_RESTRICT quantization_values);
|
||||||
const UINT32* WINPR_RESTRICT quantization_values);
|
void (*quantization_encode)(INT16* buffer, const UINT32* WINPR_RESTRICT quantization_values);
|
||||||
void (*quantization_encode)(INT16* WINPR_RESTRICT buffer,
|
void (*dwt_2d_decode)(INT16* buffer, INT16* dwt_buffer);
|
||||||
const UINT32* WINPR_RESTRICT quantization_values);
|
void (*dwt_2d_extrapolate_decode)(INT16* src, INT16* temp);
|
||||||
void (*dwt_2d_decode)(INT16* WINPR_RESTRICT buffer, INT16* WINPR_RESTRICT dwt_buffer);
|
void (*dwt_2d_encode)(INT16* buffer, INT16* dwt_buffer);
|
||||||
void (*dwt_2d_extrapolate_decode)(INT16* WINPR_RESTRICT src, INT16* WINPR_RESTRICT temp);
|
|
||||||
void (*dwt_2d_encode)(INT16* WINPR_RESTRICT buffer, INT16* WINPR_RESTRICT dwt_buffer);
|
|
||||||
int (*rlgr_decode)(RLGR_MODE mode, const BYTE* WINPR_RESTRICT data, UINT32 data_size,
|
int (*rlgr_decode)(RLGR_MODE mode, const BYTE* WINPR_RESTRICT data, UINT32 data_size,
|
||||||
INT16* WINPR_RESTRICT buffer, UINT32 buffer_size);
|
INT16* WINPR_RESTRICT buffer, UINT32 buffer_size);
|
||||||
int (*rlgr_encode)(RLGR_MODE mode, const INT16* WINPR_RESTRICT data, UINT32 data_size,
|
int (*rlgr_encode)(RLGR_MODE mode, const INT16* WINPR_RESTRICT data, UINT32 data_size,
|
||||||
|
Loading…
Reference in New Issue
Block a user