/* * jfdctfst-neon.c - fast integer FDCT (Arm Neon) * * Copyright (C) 2020, Arm Limited. All Rights Reserved. * * This software is provided 'as-is', without any express or implied * warranty. In no event will the authors be held liable for any damages * arising from the use of this software. * * Permission is granted to anyone to use this software for any purpose, * including commercial applications, and to alter it and redistribute it * freely, subject to the following restrictions: * * 1. The origin of this software must not be misrepresented; you must not * claim that you wrote the original software. If you use this software * in a product, an acknowledgment in the product documentation would be * appreciated but is not required. * 2. Altered source versions must be plainly marked as such, and must not be * misrepresented as being the original software. * 3. This notice may not be removed or altered from any source distribution.
*/
/* jsimd_fdct_ifast_neon() performs a fast, not so accurate forward DCT * (Discrete Cosine Transform) on one block of samples. It uses the same * calculations and produces exactly the same output as IJG's original * jpeg_fdct_ifast() function, which can be found in jfdctfst.c. * * Scaled integer constants are used to avoid floating-point arithmetic: * 0.382683433 = 12544 * 2^-15 * 0.541196100 = 17795 * 2^-15 * 0.707106781 = 23168 * 2^-15 * 0.306562965 = 9984 * 2^-15 * * See jfdctfst.c for further details of the DCT algorithm. Where possible, * the variable names and comments here in jsimd_fdct_ifast_neon() match up * with those in jpeg_fdct_ifast().
*/
void jsimd_fdct_ifast_neon(DCTELEM *data)
{ /* Load an 8x8 block of samples into Neon registers. De-interleaving loads * are used, followed by vuzp to transpose the block such that we have a * column of samples per vector - allowing all rows to be processed at once.
*/
int16x8x4_t data1 = vld4q_s16(data);
int16x8x4_t data2 = vld4q_s16(data + 4 * DCTSIZE);
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.