summaryrefslogtreecommitdiff
path: root/icc
diff options
context:
space:
mode:
authorJörg Frings-Fürst <debian@jff-webhosting.net>2015-11-06 05:38:49 +0100
committerJörg Frings-Fürst <debian@jff-webhosting.net>2015-11-06 05:38:49 +0100
commit9491825ddff7a294d1f49061bae7044e426aeb2e (patch)
tree06e651099f87140ec534ae47fb8ce1ac6ec7976d /icc
parentfa756339d4204bff7f2820067f58214d32780d17 (diff)
Imported Upstream version 1.8.3
Diffstat (limited to 'icc')
-rwxr-xr-x[-rw-r--r--]icc/ClayRGB1998.icmbin640 -> 640 bytes
-rwxr-xr-x[-rw-r--r--]icc/EBU3213_PAL.icmbin9176 -> 9176 bytes
-rwxr-xr-x[-rw-r--r--]icc/Jamfile0
-rwxr-xr-x[-rw-r--r--]icc/License.txt0
-rwxr-xr-x[-rw-r--r--]icc/Makefile0
-rwxr-xr-x[-rw-r--r--]icc/Makefile.IBMNT0
-rwxr-xr-x[-rw-r--r--]icc/Makefile.OSX0
-rwxr-xr-x[-rw-r--r--]icc/Makefile.UNIX0
-rwxr-xr-x[-rw-r--r--]icc/Makefile.WNT0
-rwxr-xr-x[-rw-r--r--]icc/ProPhoto.icmbin2948 -> 2948 bytes
-rwxr-xr-x[-rw-r--r--]icc/ProPhotoLin.icmbin2956 -> 2956 bytes
-rwxr-xr-x[-rw-r--r--]icc/Readme.txt0
-rwxr-xr-x[-rw-r--r--]icc/Rec2020.icmbin9120 -> 9120 bytes
-rwxr-xr-x[-rw-r--r--]icc/Rec709.icmbin2976 -> 2976 bytes
-rwxr-xr-x[-rw-r--r--]icc/SMPTE431_P3.icmbin928 -> 928 bytes
-rwxr-xr-x[-rw-r--r--]icc/SMPTE_RP145_NTSC.icmbin9156 -> 9156 bytes
-rwxr-xr-x[-rw-r--r--]icc/afiles0
-rwxr-xr-x[-rw-r--r--]icc/icc.c53
-rwxr-xr-x[-rw-r--r--]icc/icc.h3
-rwxr-xr-x[-rw-r--r--]icc/iccV42.h0
-rwxr-xr-x[-rw-r--r--]icc/iccdump.c0
-rwxr-xr-x[-rw-r--r--]icc/icclu.c0
-rwxr-xr-x[-rw-r--r--]icc/iccrw.c0
-rwxr-xr-x[-rw-r--r--]icc/iccstd.c0
-rwxr-xr-x[-rw-r--r--]icc/icctest.c0
-rwxr-xr-x[-rw-r--r--]icc/lab2lab.icmbin556 -> 556 bytes
-rwxr-xr-x[-rw-r--r--]icc/log.txt0
-rwxr-xr-x[-rw-r--r--]icc/lutest.c0
-rwxr-xr-x[-rw-r--r--]icc/mcheck.c0
-rwxr-xr-x[-rw-r--r--]icc/mkDispProf.c0
-rwxr-xr-x[-rw-r--r--]icc/sRGB.icmbin3268 -> 3268 bytes
-rwxr-xr-x[-rw-r--r--]icc/testDE2K.c0
-rwxr-xr-x[-rw-r--r--]icc/todo.txt0
33 files changed, 53 insertions, 3 deletions
diff --git a/icc/ClayRGB1998.icm b/icc/ClayRGB1998.icm
index 4c8ecb3..4c8ecb3 100644..100755
--- a/icc/ClayRGB1998.icm
+++ b/icc/ClayRGB1998.icm
Binary files differ
diff --git a/icc/EBU3213_PAL.icm b/icc/EBU3213_PAL.icm
index b0e67bc..b0e67bc 100644..100755
--- a/icc/EBU3213_PAL.icm
+++ b/icc/EBU3213_PAL.icm
Binary files differ
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
index cb6ee56..cb6ee56 100644..100755
--- a/icc/ProPhoto.icm
+++ b/icc/ProPhoto.icm
Binary files differ
diff --git a/icc/ProPhotoLin.icm b/icc/ProPhotoLin.icm
index 28369aa..28369aa 100644..100755
--- a/icc/ProPhotoLin.icm
+++ b/icc/ProPhotoLin.icm
Binary files differ
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
index 0decaf6..0decaf6 100644..100755
--- a/icc/Rec2020.icm
+++ b/icc/Rec2020.icm
Binary files differ
diff --git a/icc/Rec709.icm b/icc/Rec709.icm
index abf0a63..abf0a63 100644..100755
--- a/icc/Rec709.icm
+++ b/icc/Rec709.icm
Binary files differ
diff --git a/icc/SMPTE431_P3.icm b/icc/SMPTE431_P3.icm
index 8055849..8055849 100644..100755
--- a/icc/SMPTE431_P3.icm
+++ b/icc/SMPTE431_P3.icm
Binary files differ
diff --git a/icc/SMPTE_RP145_NTSC.icm b/icc/SMPTE_RP145_NTSC.icm
index 7fc78fb..7fc78fb 100644..100755
--- a/icc/SMPTE_RP145_NTSC.icm
+++ b/icc/SMPTE_RP145_NTSC.icm
Binary files differ
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
index 39a5911..39a5911 100644..100755
--- a/icc/lab2lab.icm
+++ b/icc/lab2lab.icm
Binary files differ
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
index 9d33a4b..9d33a4b 100644..100755
--- a/icc/sRGB.icm
+++ b/icc/sRGB.icm
Binary files differ
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