lavfi/colorspace: add ff_matrix_mul_3x3_vec

Signed-off-by: rcombs <rcombs@rcombs.me>
This commit is contained in:
rcombs 2022-06-02 02:59:19 -05:00
parent b3e261bab3
commit a5b3b65dc0
2 changed files with 12 additions and 0 deletions

View File

@ -62,6 +62,17 @@ void ff_matrix_mul_3x3(double dst[3][3],
src2[m][1] * src1[1][n] + src2[m][1] * src1[1][n] +
src2[m][2] * src1[2][n]; src2[m][2] * src1[2][n];
} }
void ff_matrix_mul_3x3_vec(double dst[3], const double vec[3], const double mat[3][3])
{
int m;
for (m = 0; m < 3; m++)
dst[m] = vec[0] * mat[m][0] +
vec[1] * mat[m][1] +
vec[2] * mat[m][2];
}
/* /*
* see e.g. http://www.brucelindbloom.com/index.html?Eqn_RGB_XYZ_Matrix.html * see e.g. http://www.brucelindbloom.com/index.html?Eqn_RGB_XYZ_Matrix.html
*/ */

View File

@ -29,6 +29,7 @@
void ff_matrix_invert_3x3(const double in[3][3], double out[3][3]); void ff_matrix_invert_3x3(const double in[3][3], double out[3][3]);
void ff_matrix_mul_3x3(double dst[3][3], void ff_matrix_mul_3x3(double dst[3][3],
const double src1[3][3], const double src2[3][3]); const double src1[3][3], const double src2[3][3]);
void ff_matrix_mul_3x3_vec(double dst[3], const double vec[3], const double mat[3][3]);
void ff_fill_rgb2xyz_table(const AVPrimaryCoefficients *coeffs, void ff_fill_rgb2xyz_table(const AVPrimaryCoefficients *coeffs,
const AVWhitepointCoefficients *wp, const AVWhitepointCoefficients *wp,
double rgb2xyz[3][3]); double rgb2xyz[3][3]);