diff options
author | Jörg Frings-Fürst <debian@jff-webhosting.net> | 2015-11-06 05:38:49 +0100 |
---|---|---|
committer | Jörg Frings-Fürst <debian@jff-webhosting.net> | 2015-11-06 05:38:49 +0100 |
commit | 9491825ddff7a294d1f49061bae7044e426aeb2e (patch) | |
tree | 06e651099f87140ec534ae47fb8ce1ac6ec7976d /icc | |
parent | fa756339d4204bff7f2820067f58214d32780d17 (diff) |
Imported Upstream version 1.8.3
Diffstat (limited to 'icc')
-rwxr-xr-x[-rw-r--r--] | icc/ClayRGB1998.icm | bin | 640 -> 640 bytes | |||
-rwxr-xr-x[-rw-r--r--] | icc/EBU3213_PAL.icm | bin | 9176 -> 9176 bytes | |||
-rwxr-xr-x[-rw-r--r--] | icc/Jamfile | 0 | ||||
-rwxr-xr-x[-rw-r--r--] | icc/License.txt | 0 | ||||
-rwxr-xr-x[-rw-r--r--] | icc/Makefile | 0 | ||||
-rwxr-xr-x[-rw-r--r--] | icc/Makefile.IBMNT | 0 | ||||
-rwxr-xr-x[-rw-r--r--] | icc/Makefile.OSX | 0 | ||||
-rwxr-xr-x[-rw-r--r--] | icc/Makefile.UNIX | 0 | ||||
-rwxr-xr-x[-rw-r--r--] | icc/Makefile.WNT | 0 | ||||
-rwxr-xr-x[-rw-r--r--] | icc/ProPhoto.icm | bin | 2948 -> 2948 bytes | |||
-rwxr-xr-x[-rw-r--r--] | icc/ProPhotoLin.icm | bin | 2956 -> 2956 bytes | |||
-rwxr-xr-x[-rw-r--r--] | icc/Readme.txt | 0 | ||||
-rwxr-xr-x[-rw-r--r--] | icc/Rec2020.icm | bin | 9120 -> 9120 bytes | |||
-rwxr-xr-x[-rw-r--r--] | icc/Rec709.icm | bin | 2976 -> 2976 bytes | |||
-rwxr-xr-x[-rw-r--r--] | icc/SMPTE431_P3.icm | bin | 928 -> 928 bytes | |||
-rwxr-xr-x[-rw-r--r--] | icc/SMPTE_RP145_NTSC.icm | bin | 9156 -> 9156 bytes | |||
-rwxr-xr-x[-rw-r--r--] | icc/afiles | 0 | ||||
-rwxr-xr-x[-rw-r--r--] | icc/icc.c | 53 | ||||
-rwxr-xr-x[-rw-r--r--] | icc/icc.h | 3 | ||||
-rwxr-xr-x[-rw-r--r--] | icc/iccV42.h | 0 | ||||
-rwxr-xr-x[-rw-r--r--] | icc/iccdump.c | 0 | ||||
-rwxr-xr-x[-rw-r--r--] | icc/icclu.c | 0 | ||||
-rwxr-xr-x[-rw-r--r--] | icc/iccrw.c | 0 | ||||
-rwxr-xr-x[-rw-r--r--] | icc/iccstd.c | 0 | ||||
-rwxr-xr-x[-rw-r--r--] | icc/icctest.c | 0 | ||||
-rwxr-xr-x[-rw-r--r--] | icc/lab2lab.icm | bin | 556 -> 556 bytes | |||
-rwxr-xr-x[-rw-r--r--] | icc/log.txt | 0 | ||||
-rwxr-xr-x[-rw-r--r--] | icc/lutest.c | 0 | ||||
-rwxr-xr-x[-rw-r--r--] | icc/mcheck.c | 0 | ||||
-rwxr-xr-x[-rw-r--r--] | icc/mkDispProf.c | 0 | ||||
-rwxr-xr-x[-rw-r--r--] | icc/sRGB.icm | bin | 3268 -> 3268 bytes | |||
-rwxr-xr-x[-rw-r--r--] | icc/testDE2K.c | 0 | ||||
-rwxr-xr-x[-rw-r--r--] | icc/todo.txt | 0 |
33 files changed, 53 insertions, 3 deletions
diff --git a/icc/ClayRGB1998.icm b/icc/ClayRGB1998.icm Binary files differindex 4c8ecb3..4c8ecb3 100644..100755 --- a/icc/ClayRGB1998.icm +++ b/icc/ClayRGB1998.icm diff --git a/icc/EBU3213_PAL.icm b/icc/EBU3213_PAL.icm Binary files differindex b0e67bc..b0e67bc 100644..100755 --- a/icc/EBU3213_PAL.icm +++ b/icc/EBU3213_PAL.icm diff --git a/icc/Jamfile b/icc/Jamfile index 4bedbba..4bedbba 100644..100755 --- a/icc/Jamfile +++ b/icc/Jamfile diff --git a/icc/License.txt b/icc/License.txt index bd0c4f2..bd0c4f2 100644..100755 --- a/icc/License.txt +++ b/icc/License.txt diff --git a/icc/Makefile b/icc/Makefile index 85f19be..85f19be 100644..100755 --- a/icc/Makefile +++ b/icc/Makefile diff --git a/icc/Makefile.IBMNT b/icc/Makefile.IBMNT index 26a2bd2..26a2bd2 100644..100755 --- a/icc/Makefile.IBMNT +++ b/icc/Makefile.IBMNT diff --git a/icc/Makefile.OSX b/icc/Makefile.OSX index fb1c88f..fb1c88f 100644..100755 --- a/icc/Makefile.OSX +++ b/icc/Makefile.OSX diff --git a/icc/Makefile.UNIX b/icc/Makefile.UNIX index 91d6005..91d6005 100644..100755 --- a/icc/Makefile.UNIX +++ b/icc/Makefile.UNIX diff --git a/icc/Makefile.WNT b/icc/Makefile.WNT index 4ca291d..4ca291d 100644..100755 --- a/icc/Makefile.WNT +++ b/icc/Makefile.WNT diff --git a/icc/ProPhoto.icm b/icc/ProPhoto.icm Binary files differindex cb6ee56..cb6ee56 100644..100755 --- a/icc/ProPhoto.icm +++ b/icc/ProPhoto.icm diff --git a/icc/ProPhotoLin.icm b/icc/ProPhotoLin.icm Binary files differindex 28369aa..28369aa 100644..100755 --- a/icc/ProPhotoLin.icm +++ b/icc/ProPhotoLin.icm diff --git a/icc/Readme.txt b/icc/Readme.txt index d39e9da..d39e9da 100644..100755 --- a/icc/Readme.txt +++ b/icc/Readme.txt diff --git a/icc/Rec2020.icm b/icc/Rec2020.icm Binary files differindex 0decaf6..0decaf6 100644..100755 --- a/icc/Rec2020.icm +++ b/icc/Rec2020.icm diff --git a/icc/Rec709.icm b/icc/Rec709.icm Binary files differindex abf0a63..abf0a63 100644..100755 --- a/icc/Rec709.icm +++ b/icc/Rec709.icm diff --git a/icc/SMPTE431_P3.icm b/icc/SMPTE431_P3.icm Binary files differindex 8055849..8055849 100644..100755 --- a/icc/SMPTE431_P3.icm +++ b/icc/SMPTE431_P3.icm diff --git a/icc/SMPTE_RP145_NTSC.icm b/icc/SMPTE_RP145_NTSC.icm Binary files differindex 7fc78fb..7fc78fb 100644..100755 --- a/icc/SMPTE_RP145_NTSC.icm +++ b/icc/SMPTE_RP145_NTSC.icm diff --git a/icc/afiles b/icc/afiles index acb730e..acb730e 100644..100755 --- a/icc/afiles +++ b/icc/afiles diff --git a/icc/icc.c b/icc/icc.c index 92611c3..d5b72ce 100644..100755 --- a/icc/icc.c +++ b/icc/icc.c @@ -13401,6 +13401,13 @@ void icmMul3(double out[3], double in1[3], double in2[3]) { out[2] = in1[2] * in2[2]; } +/* Take absolute of a 3 vector */ +void icmAbs3(double out[3], double in[3]) { + out[0] = fabs(in[0]); + out[1] = fabs(in[1]); + out[2] = fabs(in[2]); +} + /* - - - - - - - - - - - - - - - - - - - - - - - - */ /* Set a 3x3 matrix to unity */ @@ -13837,6 +13844,11 @@ void icmRotMat(double m[3][3], double s[3], double t[3]) { /* If the two input vectors are close to being parallel, */ /* then h will be close to zero. */ if (fabs(h) < 1e-12) { + + /* Make sure scale is the correct sign */ + if (s[0] * t[0] + s[1] * t[1] + s[2] * t[2] < 0.0) + tl = -tl; + m[0][0] = tl/sl; m[0][1] = 0.0; m[0][2] = 0.0; @@ -13860,6 +13872,19 @@ void icmRotMat(double m[3][3], double s[3], double t[3]) { m[2][1] = tl/sl * (h * v[1] * v[2] + v[0]); m[2][2] = tl/sl * (e + h * v[2] * v[2]); } + +#ifdef NEVER /* Check result */ + { + double tt[3]; + + icmMulBy3x3(tt, m, s); + + if (icmLabDEsq(t, tt) > 1e-4) { + printf("icmRotMat error t, is %f %f %f\n",tt[0],tt[1],tt[2]); + printf(" should be %f %f %f\n",t[0],t[1],t[2]); + } + } +#endif /* NEVER */ } /* - - - - - - - - - - - - - - - - - - - - - - - - */ @@ -13908,9 +13933,9 @@ void icmMul3By3x4(double out[3], double mat[3][4], double in[3]) { /* "Real-Time Rendering". */ /* s0 -> s1 is source vector, t0 -> t1 is target vector. */ /* Usage of icmRotMat: */ -/* t[0] == mat[0][0] * s[0] + mat[0][1] * s[1] + mat[0][2] * s[2] + mat[0][3]; */ -/* t[1] == mat[1][0] * s[0] + mat[1][1] * s[1] + mat[1][2] * s[2] + mat[1][3]; */ -/* t[2] == mat[2][0] * s[0] + mat[2][1] * s[1] + mat[2][2] * s[2] + mat[2][3]; */ +/* t[0] = mat[0][0] * s[0] + mat[0][1] * s[1] + mat[0][2] * s[2] + mat[0][3]; */ +/* t[1] = mat[1][0] * s[0] + mat[1][1] * s[1] + mat[1][2] * s[2] + mat[1][3]; */ +/* t[2] = mat[2][0] * s[0] + mat[2][1] * s[1] + mat[2][2] * s[2] + mat[2][3]; */ /* i.e. use icmMul3By3x4 */ void icmVecRotMat(double m[3][4], double s1[3], double s0[3], double t1[3], double t0[3]) { int i, j; @@ -13939,6 +13964,26 @@ void icmVecRotMat(double m[3][4], double s1[3], double s0[3], double t1[3], doub m[j][i] = 0.0; } } + +#ifdef NEVER /* Check result */ + { + double tt0[3], tt1[3]; + + icmMul3By3x4(tt0, m, s0); + + if (icmLabDEsq(t0, tt0) > 1e-4) { + printf("icmVecRotMat error t0, is %f %f %f\n",tt0[0],tt0[1],tt0[2]); + printf(" should be %f %f %f\n",t0[0],t0[1],t0[2]); + } + + icmMul3By3x4(tt1, m, s1); + + if (icmLabDEsq(t1, tt1) > 1e-4) { + printf("icmVecRotMat error t1, is %f %f %f\n",tt1[0],tt1[1],tt1[2]); + printf(" should be %f %f %f\n",t1[0],t1[1],t1[2]); + } + } +#endif /* NEVER */ } /* - - - - - - - - - - - - - - - - - - - - - - - - */ @@ -15314,6 +15359,8 @@ int icmClipXYZ(double out[3], double in[3]) { /* --------------------------------------------------------------- */ /* Some video specific functions */ +/* Should add ST.2048 log functions */ + /* Convert Lut table index/value to YPbPr */ /* (Same as Lut_Lut2YPbPr() ) */ void icmLut2YPbPr(double *out, double *in) { diff --git a/icc/icc.h b/icc/icc.h index 4eba0ec..36ec73a 100644..100755 --- a/icc/icc.h +++ b/icc/icc.h @@ -1754,6 +1754,9 @@ void icmMul3(double out[3], double in1[3], double in2[3]); #define ICMMUL3(o, i, j) ((o)[0] = (i)[0] * (j)[0], (o)[1] = (i)[1] * (j)[1], (o)[2] = (i)[2] * (j)[2]) +/* Take absolute of a 3 vector */ +void icmAbs3(double out[3], double in[3]); + /* Compute the dot product of two 3 vectors */ double icmDot3(double in1[3], double in2[3]); diff --git a/icc/iccV42.h b/icc/iccV42.h index 2f3ec27..2f3ec27 100644..100755 --- a/icc/iccV42.h +++ b/icc/iccV42.h diff --git a/icc/iccdump.c b/icc/iccdump.c index 76959e7..76959e7 100644..100755 --- a/icc/iccdump.c +++ b/icc/iccdump.c diff --git a/icc/icclu.c b/icc/icclu.c index 80126da..80126da 100644..100755 --- a/icc/icclu.c +++ b/icc/icclu.c diff --git a/icc/iccrw.c b/icc/iccrw.c index 807c5f4..807c5f4 100644..100755 --- a/icc/iccrw.c +++ b/icc/iccrw.c diff --git a/icc/iccstd.c b/icc/iccstd.c index 1cb63eb..1cb63eb 100644..100755 --- a/icc/iccstd.c +++ b/icc/iccstd.c diff --git a/icc/icctest.c b/icc/icctest.c index d04cc1e..d04cc1e 100644..100755 --- a/icc/icctest.c +++ b/icc/icctest.c diff --git a/icc/lab2lab.icm b/icc/lab2lab.icm Binary files differindex 39a5911..39a5911 100644..100755 --- a/icc/lab2lab.icm +++ b/icc/lab2lab.icm diff --git a/icc/log.txt b/icc/log.txt index 2e185dc..2e185dc 100644..100755 --- a/icc/log.txt +++ b/icc/log.txt diff --git a/icc/lutest.c b/icc/lutest.c index 9bf127f..9bf127f 100644..100755 --- a/icc/lutest.c +++ b/icc/lutest.c diff --git a/icc/mcheck.c b/icc/mcheck.c index a392f31..a392f31 100644..100755 --- a/icc/mcheck.c +++ b/icc/mcheck.c diff --git a/icc/mkDispProf.c b/icc/mkDispProf.c index 6878aad..6878aad 100644..100755 --- a/icc/mkDispProf.c +++ b/icc/mkDispProf.c diff --git a/icc/sRGB.icm b/icc/sRGB.icm Binary files differindex 9d33a4b..9d33a4b 100644..100755 --- a/icc/sRGB.icm +++ b/icc/sRGB.icm diff --git a/icc/testDE2K.c b/icc/testDE2K.c index 11a4201..11a4201 100644..100755 --- a/icc/testDE2K.c +++ b/icc/testDE2K.c diff --git a/icc/todo.txt b/icc/todo.txt index bdbaa5e..bdbaa5e 100644..100755 --- a/icc/todo.txt +++ b/icc/todo.txt |