// | |
// ----------------------------------------------------------------------------- | |
// The proprietary software and information contained in this file is | |
// confidential and may only be used by an authorized person under a valid | |
// licensing agreement from Arm Limited or its affiliates. | |
// | |
// Copyright (C) 2025. Arm Limited or its affiliates. All rights reserved. | |
// | |
// This entire notice must be reproduced on all copies of this file and | |
// copies of this file may only be made by an authorized person under a valid | |
// licensing agreement from Arm Limited or its affiliates. | |
// ----------------------------------------------------------------------------- | |
// | |
struct KernelTile { | |
int16_t4 dy; | |
int16_t4 dx; | |
}; | |
// Define actual scale value based on mode | |
const KernelTile kernelLUT[NUM_PATTERNS] = { | |
{ | |
// Pattern 0: | |
// Taps: 0, 2, 8, 10 | |
// Grid: | |
// [● · ● ·] | |
// [· · · ·] | |
// [● · ● ·] | |
// [· · · ·] | |
int16_t4(-1, -1, +1, +1), | |
int16_t4(-1, +1, -1, +1) | |
}, | |
{ | |
// Pattern 1: | |
// Taps: 4, 6, 12, 14 | |
// Grid: | |
// [· · · ·] | |
// [● · ● ·] | |
// [· · · ·] | |
// [● · ● ·] | |
int16_t4(-1, -1, +1, +1), | |
int16_t4(+0, +2, +0, +2) | |
}, | |
{ | |
// Pattern 2: | |
// Taps: 1, 3, 9, 11 | |
// Grid: | |
// [· ● · ●] | |
// [· · · ·] | |
// [· ● · ●] | |
// [· · · ·] | |
int16_t4(+0, +0, +2, +2), | |
int16_t4(-1, +1, -1, +1) | |
}, | |
{ | |
// Pattern 3: | |
// Taps: 5, 7, 13, 15 | |
// Grid: | |
// [· · · ·] | |
// [· ● · ●] | |
// [· · · ·] | |
// [· ● · ●] | |
int16_t4( 0, +0, +2, +2), // center-aligned | |
int16_t4( 0, +2, +0, +2) | |
} | |
}; | |