// Copyright (c) the JPEG XL Project Authors. All rights reserved.
//
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
#! [allow(clippy::excessive_precision)]
use crate ::{bit_reader::BitReader, error::Error, headers::encodings::*};
use jxl_macros::UnconditionalCoder;
#[ derive(Default)]
pub struct CustomTransformDataNonserialized {
pub xyb_encoded: bool,
}
#[ derive(UnconditionalCoder, Debug, Clone)]
pub struct OpsinInverseMatrix {
// We never read the all_default field.
#[ allow(dead_code)]
#[ all_default]
all_default: bool,
#[ default([11 .031566901960783 , -9 .866943921568629 , -0 .16462299647058826 ,
-3 .254147380392157 , 4 .418770392156863 , -0 .16462299647058826 ,
-3 .6588512862745097 , 2 .7129230470588235 , 1 .9459282392156863 ])]
pub inverse_matrix: [f32; 9 ],
#[ default([-0 .0037930732552754493 ; 3 ])]
pub opsin_biases: [f32; 3 ],
#[ default([1 .0 - 0 .05465007330715401 , 1 .0 - 0 .07005449891748593 , 1 .0 - 0 .049935103337343655 , 0 .145 ])]
pub quant_biases: [f32; 4 ],
}
const DEFAULT_KERN_2: [f32; 15 ] = [
-0 .01716200 ,
-0 .03452303 ,
-0 .04022174 ,
-0 .02921014 ,
-0 .00624645 ,
0 .14111091 ,
0 .28896755 ,
0 .00278718 ,
-0 .01610267 ,
0 .56661550 ,
0 .03777607 ,
-0 .01986694 ,
-0 .03144731 ,
-0 .01185068 ,
-0 .00213539 ,
];
const DEFAULT_KERN_4: [f32; 55 ] = [
-0 .02419067 ,
-0 .03491987 ,
-0 .03693351 ,
-0 .03094285 ,
-0 .00529785 ,
-0 .01663432 ,
-0 .03556863 ,
-0 .03888905 ,
-0 .03516850 ,
-0 .00989469 ,
0 .23651958 ,
0 .33392945 ,
-0 .01073543 ,
-0 .01313181 ,
-0 .03556694 ,
0 .13048175 ,
0 .40103025 ,
0 .03951150 ,
-0 .02077584 ,
0 .46914198 ,
-0 .00209270 ,
-0 .01484589 ,
-0 .04064806 ,
0 .18942530 ,
0 .56279892 ,
0 .06674400 ,
-0 .02335494 ,
-0 .03551682 ,
-0 .00754830 ,
-0 .02267919 ,
-0 .02363578 ,
0 .00315804 ,
-0 .03399098 ,
-0 .01359519 ,
-0 .00091653 ,
-0 .00335467 ,
-0 .01163294 ,
-0 .01610294 ,
-0 .00974088 ,
-0 .00191622 ,
-0 .01095446 ,
-0 .03198464 ,
-0 .04455121 ,
-0 .02799790 ,
-0 .00645912 ,
0 .06390599 ,
0 .22963888 ,
0 .00630981 ,
-0 .01897349 ,
0 .67537268 ,
0 .08483369 ,
-0 .02534994 ,
-0 .02205197 ,
-0 .01667999 ,
-0 .00384443 ,
];
const DEFAULT_KERN_8: [f32; 210 ] = [
-0 .02928613 ,
-0 .03706353 ,
-0 .03783812 ,
-0 .03324558 ,
-0 .00447632 ,
-0 .02519406 ,
-0 .03752601 ,
-0 .03901508 ,
-0 .03663285 ,
-0 .00646649 ,
-0 .02066407 ,
-0 .03838633 ,
-0 .04002101 ,
-0 .03900035 ,
-0 .00901973 ,
-0 .01626393 ,
-0 .03954148 ,
-0 .04046620 ,
-0 .03979621 ,
-0 .01224485 ,
0 .29895328 ,
0 .35757708 ,
-0 .02447552 ,
-0 .01081748 ,
-0 .04314594 ,
0 .23903219 ,
0 .41119301 ,
-0 .00573046 ,
-0 .01450239 ,
-0 .04246845 ,
0 .17567618 ,
0 .45220643 ,
0 .02287757 ,
-0 .01936783 ,
-0 .03583255 ,
0 .11572472 ,
0 .47416733 ,
0 .06284440 ,
-0 .02685066 ,
0 .42720050 ,
-0 .02248939 ,
-0 .01155273 ,
-0 .04562755 ,
0 .28689496 ,
0 .49093869 ,
-0 .00007891 ,
-0 .01545926 ,
-0 .04562659 ,
0 .21238920 ,
0 .53980934 ,
0 .03369474 ,
-0 .02070211 ,
-0 .03866988 ,
0 .14229550 ,
0 .56593398 ,
0 .08045181 ,
-0 .02888298 ,
-0 .03680918 ,
-0 .00542229 ,
-0 .02920477 ,
-0 .02788574 ,
-0 .02118180 ,
-0 .03942402 ,
-0 .00775547 ,
-0 .02433614 ,
-0 .03193943 ,
-0 .02030828 ,
-0 .04044014 ,
-0 .01074016 ,
-0 .01930822 ,
-0 .03620399 ,
-0 .01974125 ,
-0 .03919545 ,
-0 .01456093 ,
-0 .00045072 ,
-0 .00360110 ,
-0 .01020207 ,
-0 .01231907 ,
-0 .00638988 ,
-0 .00071592 ,
-0 .00279122 ,
-0 .00957115 ,
-0 .01288327 ,
-0 .00730937 ,
-0 .00107783 ,
-0 .00210156 ,
-0 .00890705 ,
-0 .01317668 ,
-0 .00813895 ,
-0 .00153491 ,
-0 .02128481 ,
-0 .04173044 ,
-0 .04831487 ,
-0 .03293190 ,
-0 .00525260 ,
-0 .01720322 ,
-0 .04052736 ,
-0 .05045706 ,
-0 .03607317 ,
-0 .00738030 ,
-0 .01341764 ,
-0 .03965629 ,
-0 .05151616 ,
-0 .03814886 ,
-0 .01005819 ,
0 .18968273 ,
0 .33063684 ,
-0 .01300105 ,
-0 .01372950 ,
-0 .04017465 ,
0 .13727832 ,
0 .36402234 ,
0 .01027890 ,
-0 .01832107 ,
-0 .03365072 ,
0 .08734506 ,
0 .38194295 ,
0 .04338228 ,
-0 .02525993 ,
0 .56408126 ,
0 .00458352 ,
-0 .01648227 ,
-0 .04887868 ,
0 .24585519 ,
0 .62026135 ,
0 .04314807 ,
-0 .02213737 ,
-0 .04158014 ,
0 .16637289 ,
0 .65027023 ,
0 .09621636 ,
-0 .03101388 ,
-0 .04082742 ,
-0 .00904519 ,
-0 .02790922 ,
-0 .02117818 ,
0 .00798662 ,
-0 .03995711 ,
-0 .01243427 ,
-0 .02231705 ,
-0 .02946266 ,
0 .00992055 ,
-0 .03600283 ,
-0 .01684920 ,
-0 .00111684 ,
-0 .00411204 ,
-0 .01297130 ,
-0 .01723725 ,
-0 .01022545 ,
-0 .00165306 ,
-0 .00313110 ,
-0 .01218016 ,
-0 .01763266 ,
-0 .01125620 ,
-0 .00231663 ,
-0 .01374149 ,
-0 .03797620 ,
-0 .05142937 ,
-0 .03117307 ,
-0 .00581914 ,
-0 .01064003 ,
-0 .03608089 ,
-0 .05272168 ,
-0 .03375670 ,
-0 .00795586 ,
0 .09628104 ,
0 .27129991 ,
-0 .00353779 ,
-0 .01734151 ,
-0 .03153981 ,
0 .05686230 ,
0 .28500998 ,
0 .02230594 ,
-0 .02374955 ,
0 .68214326 ,
0 .05018048 ,
-0 .02320852 ,
-0 .04383616 ,
0 .18459474 ,
0 .71517975 ,
0 .10805613 ,
-0 .03263677 ,
-0 .03637639 ,
-0 .01394373 ,
-0 .02511203 ,
-0 .01728636 ,
0 .05407331 ,
-0 .02867568 ,
-0 .01893131 ,
-0 .00240854 ,
-0 .00446511 ,
-0 .01636187 ,
-0 .02377053 ,
-0 .01522848 ,
-0 .00333334 ,
-0 .00819975 ,
-0 .02964169 ,
-0 .04499287 ,
-0 .02745350 ,
-0 .00612408 ,
0 .02727416 ,
0 .19446600 ,
0 .00159832 ,
-0 .02232473 ,
0 .74982506 ,
0 .11452620 ,
-0 .03348048 ,
-0 .01605681 ,
-0 .02070339 ,
-0 .00458223 ,
];
// TODO(firsching): remove once we use this!
#[ allow(dead_code)]
#[ derive(UnconditionalCoder, Debug, Clone)]
#[ nonserialized(CustomTransformDataNonserialized)]
pub struct CustomTransformData {
#[ all_default]
all_default: bool,
#[ condition(nonserialized.xyb_encoded)]
#[ default(OpsinInverseMatrix::default(&field_nonserialized))]
pub opsin_inverse_matrix: OpsinInverseMatrix,
#[ default(0 )]
#[ coder(Bits(3 ))]
custom_weight_mask: u32,
#[ condition((custom_weight_mask & 1 ) != 0 )]
#[ default(DEFAULT_KERN_2)]
pub weights2: [f32; 15 ],
#[ condition((custom_weight_mask & 2 ) != 0 )]
#[ default(DEFAULT_KERN_4)]
pub weights4: [f32; 55 ],
#[ condition((custom_weight_mask & 4 ) != 0 )]
#[ default(DEFAULT_KERN_8)]
pub weights8: [f32; 210 ],
}
Messung V0.5 in Prozent C=99 H=100 G=99
¤ Dauer der Verarbeitung: 0.4 Sekunden
¤
*© Formatika GbR, Deutschland