📄 fdct_aan_kc.h
字号:
//////////////////////////////////////////////////////////////////////////////////////////////////////// fdct_aan_kc.h (Prototypes for FDCT AAN Kernel 'SC' File//// Notice: COPYRIGHT (C) STREAM PROCESSORS, INC. 2005-2007// THIS PROGRAM IS PROVIDED UNDER THE TERMS OF THE SPI// END-USER LICENSE AGREEMENT (EULA). THE PROGRAM MAY ONLY// BE USED IN A MANNER EXPLICITLY SPECIFIED IN THE EULA,// WHICH INCLUDES LIMITATIONS ON COPYING, MODIFYING,// REDISTRIBUTION AND WARANTIES. UNAUTHORIZED USE OF THIS// PROGRAM IS STRICTLY PROHIBITED. YOU MAY OBTAIN A COPY OF// THE EULA FROM WWW.STREAMPROCESSORS.COM. // /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////#ifndef __FDCT_AAN_KC_H#define __FDCT_AAN_KC_H////////////////////////////////////////////////////////////////////////////////////////////////////// #includes ////////////////////////////////////////////////////////////////////////////////////////////////////#include "spi_common.h"///////////////////////////////////////////////////////////////////kernel void fdct_and_quantize_aan_kc( // in 16.0 format. The input is organized as a sequence of 8 rows, // where each row is composed of 4 int16x2s. After reading 32 // elements, a whole 8x8 block is in each lane. stream uint8x4 block_in(array_in), // in 16.0 format, similar to the input except that the data IS // TRANSPOSED---i.e., a sequence of 8 columns. stream int16x2 block_out(seq_out), stream int16x2 divisor(seq_in), int32x1 strip_size(in));///////////////////////////////////////////////////////////////////inline void kernel dct8_2( // Input pixel values (0--255) as int16x2s in 16.0 vec int16x2 in0(in), vec int16x2 in1(in), vec int16x2 in2(in), vec int16x2 in3(in), vec int16x2 in4(in), vec int16x2 in5(in), vec int16x2 in6(in), vec int16x2 in7(in), // Output DCT coefficients in 16.0 vec int16x2 out0(out), vec int16x2 out1(out), vec int16x2 out2(out), vec int16x2 out3(out), vec int16x2 out4(out), vec int16x2 out5(out), vec int16x2 out6(out), vec int16x2 out7(out));///////////////////////////////////////////////////////////////////inline void kernel dct8_2_sub128( // Input pixel values (0--255) as int16x2s in 16.0 vec int16x2 in0(in), vec int16x2 in1(in), vec int16x2 in2(in), vec int16x2 in3(in), vec int16x2 in4(in), vec int16x2 in5(in), vec int16x2 in6(in), vec int16x2 in7(in), // Output DCT coefficients in 16.0 vec int16x2 out0(out), vec int16x2 out1(out), vec int16x2 out2(out), vec int16x2 out3(out), vec int16x2 out4(out), vec int16x2 out5(out), vec int16x2 out6(out), vec int16x2 out7(out));///////////////////////////////////////////////////////////////////inline void kernel quantize ( vec int16x2 in(in), vec int16x2 scale(in), vec int16x2 out(out));///////////////////////////////////////////////////////////////////inline kernel void fdct8x8_and_quantize_aan_kc( // quant scale vec int16x2 scale0(in), vec int16x2 scale1(in), vec int16x2 scale2(in), vec int16x2 scale3(in), vec int16x2 scale4(in), vec int16x2 scale5(in), vec int16x2 scale6(in), vec int16x2 scale7(in), vec int16x2 scale8(in), vec int16x2 scale9(in), vec int16x2 scale10(in), vec int16x2 scale11(in), vec int16x2 scale12(in), vec int16x2 scale13(in), vec int16x2 scale14(in), vec int16x2 scale15(in), vec int16x2 scale16(in), vec int16x2 scale17(in), vec int16x2 scale18(in), vec int16x2 scale19(in), vec int16x2 scale20(in), vec int16x2 scale21(in), vec int16x2 scale22(in), vec int16x2 scale23(in), vec int16x2 scale24(in), vec int16x2 scale25(in), vec int16x2 scale26(in), vec int16x2 scale27(in), vec int16x2 scale28(in), vec int16x2 scale29(in), vec int16x2 scale30(in), vec int16x2 scale31(in), // Input pixel values (0--255) as int16x2s in 16.0 vec int16x2 a0(in), vec int16x2 a1(in), vec int16x2 a2(in), vec int16x2 a3(in), vec int16x2 a4(in), vec int16x2 a5(in), vec int16x2 a6(in), vec int16x2 a7(in), vec int16x2 a8(in), vec int16x2 a9(in), vec int16x2 a10(in), vec int16x2 a11(in), vec int16x2 a12(in), vec int16x2 a13(in), vec int16x2 a14(in), vec int16x2 a15(in), vec int16x2 a16(in), vec int16x2 a17(in), vec int16x2 a18(in), vec int16x2 a19(in), vec int16x2 a20(in), vec int16x2 a21(in), vec int16x2 a22(in), vec int16x2 a23(in), vec int16x2 a24(in), vec int16x2 a25(in), vec int16x2 a26(in), vec int16x2 a27(in), vec int16x2 a28(in), vec int16x2 a29(in), vec int16x2 a30(in), vec int16x2 a31(in), // Output quantized DCT coefficients in 16.0 vec int16x2 d0(out), vec int16x2 d1(out), vec int16x2 d2(out), vec int16x2 d3(out), vec int16x2 d4(out), vec int16x2 d5(out), vec int16x2 d6(out), vec int16x2 d7(out), vec int16x2 d8(out), vec int16x2 d9(out), vec int16x2 d10(out), vec int16x2 d11(out), vec int16x2 d12(out), vec int16x2 d13(out), vec int16x2 d14(out), vec int16x2 d15(out), vec int16x2 d16(out), vec int16x2 d17(out), vec int16x2 d18(out), vec int16x2 d19(out), vec int16x2 d20(out), vec int16x2 d21(out), vec int16x2 d22(out), vec int16x2 d23(out), vec int16x2 d24(out), vec int16x2 d25(out), vec int16x2 d26(out), vec int16x2 d27(out), vec int16x2 d28(out), vec int16x2 d29(out), vec int16x2 d30(out), vec int16x2 d31(out));///////////////////////////////////////////////////////////////////inline void kernel transpose_8x8_intralane( // inputs (in0--in3 is the first row, in28--in31 is the last row). // Within the first row, for example, the LS 16-bits of in0 is the // first value in the row, and the MS 16-bits of in3 is the last // value on the row. vec int16x2 in0(in), vec int16x2 in1(in), vec int16x2 in2(in), vec int16x2 in3(in), vec int16x2 in4(in), vec int16x2 in5(in), vec int16x2 in6(in), vec int16x2 in7(in), vec int16x2 in8(in), vec int16x2 in9(in), vec int16x2 in10(in), vec int16x2 in11(in), vec int16x2 in12(in), vec int16x2 in13(in), vec int16x2 in14(in), vec int16x2 in15(in), vec int16x2 in16(in), vec int16x2 in17(in), vec int16x2 in18(in), vec int16x2 in19(in), vec int16x2 in20(in), vec int16x2 in21(in), vec int16x2 in22(in), vec int16x2 in23(in), vec int16x2 in24(in), vec int16x2 in25(in), vec int16x2 in26(in), vec int16x2 in27(in), vec int16x2 in28(in), vec int16x2 in29(in), vec int16x2 in30(in), vec int16x2 in31(in), // outputs, laid out the same as the input vec int16x2 out0(out), vec int16x2 out1(out), vec int16x2 out2(out), vec int16x2 out3(out), vec int16x2 out4(out), vec int16x2 out5(out), vec int16x2 out6(out), vec int16x2 out7(out), vec int16x2 out8(out), vec int16x2 out9(out), vec int16x2 out10(out), vec int16x2 out11(out), vec int16x2 out12(out), vec int16x2 out13(out), vec int16x2 out14(out), vec int16x2 out15(out), vec int16x2 out16(out), vec int16x2 out17(out), vec int16x2 out18(out), vec int16x2 out19(out), vec int16x2 out20(out), vec int16x2 out21(out), vec int16x2 out22(out), vec int16x2 out23(out), vec int16x2 out24(out), vec int16x2 out25(out), vec int16x2 out26(out), vec int16x2 out27(out), vec int16x2 out28(out), vec int16x2 out29(out), vec int16x2 out30(out), vec int16x2 out31(out) );#endif // __FDCT_AAN_KC_H/////////////////////////////////////////////////////////////////
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -