Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
F
ffmpeg
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Packages
Packages
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
submodule
ffmpeg
Commits
4299f085
Commit
4299f085
authored
Jun 21, 2015
by
Michael Niedermayer
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
avcodec/jpeg2000dwt: also test 9/7 float DWT
Signed-off-by:
Michael Niedermayer
<
michaelni@gmx.at
>
parent
6528b90d
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
64 additions
and
2 deletions
+64
-2
jpeg2000dwt.c
libavcodec/jpeg2000dwt.c
+44
-2
j2k-dwt
tests/ref/fate/j2k-dwt
+20
-0
No files found.
libavcodec/jpeg2000dwt.c
View file @
4299f085
...
@@ -188,7 +188,6 @@ static void dwt_encode97_float(DWTContext *s, float *t)
...
@@ -188,7 +188,6 @@ static void dwt_encode97_float(DWTContext *s, float *t)
lp
;
lp
;
float
*
l
;
float
*
l
;
av_assert1
(
!
mh
&&
!
mv
);
// HOR_SD
// HOR_SD
l
=
line
+
mh
;
l
=
line
+
mh
;
for
(
lp
=
0
;
lp
<
lv
;
lp
++
){
for
(
lp
=
0
;
lp
<
lv
;
lp
++
){
...
@@ -651,9 +650,49 @@ static int test_dwt(int *array, int *ref, uint16_t border[2][2], int decomp_leve
...
@@ -651,9 +650,49 @@ static int test_dwt(int *array, int *ref, uint16_t border[2][2], int decomp_leve
return
0
;
return
0
;
}
}
static
int
test_dwtf
(
float
*
array
,
float
*
ref
,
uint16_t
border
[
2
][
2
],
int
decomp_levels
,
float
max_diff
)
{
int
ret
,
j
;
DWTContext
s1
=
{{{
0
}}},
*
s
=
&
s1
;
double
err2
=
0
;
ret
=
ff_jpeg2000_dwt_init
(
s
,
border
,
decomp_levels
,
FF_DWT97
);
if
(
ret
<
0
)
{
fprintf
(
stderr
,
"ff_jpeg2000_dwt_init failed
\n
"
);
return
1
;
}
ret
=
ff_dwt_encode
(
s
,
array
);
if
(
ret
<
0
)
{
fprintf
(
stderr
,
"ff_dwt_encode failed
\n
"
);
return
1
;
}
ret
=
ff_dwt_decode
(
s
,
array
);
if
(
ret
<
0
)
{
fprintf
(
stderr
,
"ff_dwt_encode failed
\n
"
);
return
1
;
}
for
(
j
=
0
;
j
<
MAX_W
*
MAX_W
;
j
++
)
{
if
(
FFABS
(
array
[
j
]
-
ref
[
j
])
>
max_diff
)
{
fprintf
(
stderr
,
"missmatch at %d (%f != %f) decomp:%d border %d %d %d %d
\n
"
,
j
,
array
[
j
],
ref
[
j
],
decomp_levels
,
border
[
0
][
0
],
border
[
0
][
1
],
border
[
1
][
0
],
border
[
1
][
1
]);
return
2
;
}
err2
+=
(
array
[
j
]
-
ref
[
j
])
*
(
array
[
j
]
-
ref
[
j
]);
array
[
j
]
=
ref
[
j
];
}
ff_dwt_destroy
(
s
);
printf
(
"9/7f, decomp:%2d border %3d %3d %3d %3d err2:%20.4f
\n
"
,
decomp_levels
,
border
[
0
][
0
],
border
[
0
][
1
],
border
[
1
][
0
],
border
[
1
][
1
],
err2
/
((
border
[
0
][
1
]
-
border
[
0
][
0
])
*
(
border
[
1
][
1
]
-
border
[
1
][
0
])));
return
0
;
}
int
main
(
void
)
{
int
main
(
void
)
{
int
array
[
MAX_W
*
MAX_W
];
int
array
[
MAX_W
*
MAX_W
];
int
ref
[
MAX_W
*
MAX_W
];
int
ref
[
MAX_W
*
MAX_W
];
float
arrayf
[
MAX_W
*
MAX_W
];
float
reff
[
MAX_W
*
MAX_W
];
AVLFG
prng
;
AVLFG
prng
;
int
i
,
j
;
int
i
,
j
;
uint16_t
border
[
2
][
2
];
uint16_t
border
[
2
][
2
];
...
@@ -662,7 +701,7 @@ int main(void) {
...
@@ -662,7 +701,7 @@ int main(void) {
av_lfg_init
(
&
prng
,
1
);
av_lfg_init
(
&
prng
,
1
);
for
(
i
=
0
;
i
<
MAX_W
*
MAX_W
;
i
++
)
for
(
i
=
0
;
i
<
MAX_W
*
MAX_W
;
i
++
)
array
[
i
]
=
ref
[
i
]
=
av_lfg_get
(
&
prng
)
%
2048
;
array
f
[
i
]
=
reff
[
i
]
=
array
[
i
]
=
ref
[
i
]
=
av_lfg_get
(
&
prng
)
%
2048
;
for
(
i
=
0
;
i
<
100
;
i
++
)
{
for
(
i
=
0
;
i
<
100
;
i
++
)
{
for
(
j
=
0
;
j
<
4
;
j
++
)
for
(
j
=
0
;
j
<
4
;
j
++
)
...
@@ -677,6 +716,9 @@ int main(void) {
...
@@ -677,6 +716,9 @@ int main(void) {
ret
=
test_dwt
(
array
,
ref
,
border
,
decomp_levels
,
FF_DWT97_INT
,
FFMIN
(
7
+
5
*
decomp_levels
,
15
+
3
*
decomp_levels
));
ret
=
test_dwt
(
array
,
ref
,
border
,
decomp_levels
,
FF_DWT97_INT
,
FFMIN
(
7
+
5
*
decomp_levels
,
15
+
3
*
decomp_levels
));
if
(
ret
)
if
(
ret
)
return
ret
;
return
ret
;
ret
=
test_dwtf
(
arrayf
,
reff
,
border
,
decomp_levels
,
1
.
0
);
if
(
ret
)
return
ret
;
}
}
return
0
;
return
0
;
...
...
tests/ref/fate/j2k-dwt
View file @
4299f085
5/3i, decomp:15 border 151 170 140 183 milli-err2: 0
5/3i, decomp:15 border 151 170 140 183 milli-err2: 0
9/7i, decomp:15 border 151 170 140 183 milli-err2: 13030
9/7i, decomp:15 border 151 170 140 183 milli-err2: 13030
9/7f, decomp:15 border 151 170 140 183 err2: 0.2626
5/3i, decomp:21 border 173 201 81 189 milli-err2: 0
5/3i, decomp:21 border 173 201 81 189 milli-err2: 0
9/7i, decomp:21 border 173 201 81 189 milli-err2: 21587
9/7i, decomp:21 border 173 201 81 189 milli-err2: 21587
9/7f, decomp:21 border 173 201 81 189 err2: 0.3460
5/3i, decomp:22 border 213 227 76 245 milli-err2: 0
5/3i, decomp:22 border 213 227 76 245 milli-err2: 0
9/7i, decomp:22 border 213 227 76 245 milli-err2: 13454
9/7i, decomp:22 border 213 227 76 245 milli-err2: 13454
9/7f, decomp:22 border 213 227 76 245 err2: 0.2393
5/3i, decomp:13 border 134 157 184 203 milli-err2: 0
5/3i, decomp:13 border 134 157 184 203 milli-err2: 0
9/7i, decomp:13 border 134 157 184 203 milli-err2: 19745
9/7i, decomp:13 border 134 157 184 203 milli-err2: 19745
9/7f, decomp:13 border 134 157 184 203 err2: 0.1715
5/3i, decomp: 1 border 204 237 6 106 milli-err2: 0
5/3i, decomp: 1 border 204 237 6 106 milli-err2: 0
9/7i, decomp: 1 border 204 237 6 106 milli-err2: 2236
9/7i, decomp: 1 border 204 237 6 106 milli-err2: 2236
9/7f, decomp: 1 border 204 237 6 106 err2: 0.0063
5/3i, decomp:28 border 76 211 13 210 milli-err2: 0
5/3i, decomp:28 border 76 211 13 210 milli-err2: 0
9/7i, decomp:28 border 76 211 13 210 milli-err2: 22341
9/7i, decomp:28 border 76 211 13 210 milli-err2: 22341
9/7f, decomp:28 border 76 211 13 210 err2: 0.3931
5/3i, decomp:21 border 76 99 43 123 milli-err2: 0
5/3i, decomp:21 border 76 99 43 123 milli-err2: 0
9/7i, decomp:21 border 76 99 43 123 milli-err2: 15450
9/7i, decomp:21 border 76 99 43 123 milli-err2: 15450
9/7f, decomp:21 border 76 99 43 123 err2: 0.2005
5/3i, decomp:15 border 192 243 174 204 milli-err2: 0
5/3i, decomp:15 border 192 243 174 204 milli-err2: 0
9/7i, decomp:15 border 192 243 174 204 milli-err2: 56308
9/7i, decomp:15 border 192 243 174 204 milli-err2: 56308
9/7f, decomp:15 border 192 243 174 204 err2: 0.3373
5/3i, decomp:21 border 17 68 93 204 milli-err2: 0
5/3i, decomp:21 border 17 68 93 204 milli-err2: 0
9/7i, decomp:21 border 17 68 93 204 milli-err2: 26234
9/7i, decomp:21 border 17 68 93 204 milli-err2: 26234
9/7f, decomp:21 border 17 68 93 204 err2: 0.2765
5/3i, decomp:11 border 142 168 82 174 milli-err2: 0
5/3i, decomp:11 border 142 168 82 174 milli-err2: 0
9/7i, decomp:11 border 142 168 82 174 milli-err2: 14802
9/7i, decomp:11 border 142 168 82 174 milli-err2: 14802
9/7f, decomp:11 border 142 168 82 174 err2: 0.2064
5/3i, decomp:23 border 142 209 171 235 milli-err2: 0
5/3i, decomp:23 border 142 209 171 235 milli-err2: 0
9/7i, decomp:23 border 142 209 171 235 milli-err2: 26230
9/7i, decomp:23 border 142 209 171 235 milli-err2: 26230
9/7f, decomp:23 border 142 209 171 235 err2: 0.3092
5/3i, decomp:30 border 37 185 79 245 milli-err2: 0
5/3i, decomp:30 border 37 185 79 245 milli-err2: 0
9/7i, decomp:30 border 37 185 79 245 milli-err2: 18994
9/7i, decomp:30 border 37 185 79 245 milli-err2: 18994
9/7f, decomp:30 border 37 185 79 245 err2: 0.3921
5/3i, decomp: 5 border 129 236 30 243 milli-err2: 0
5/3i, decomp: 5 border 129 236 30 243 milli-err2: 0
9/7i, decomp: 5 border 129 236 30 243 milli-err2: 14600
9/7i, decomp: 5 border 129 236 30 243 milli-err2: 14600
9/7f, decomp: 5 border 129 236 30 243 err2: 0.1252
5/3i, decomp:10 border 5 160 146 247 milli-err2: 0
5/3i, decomp:10 border 5 160 146 247 milli-err2: 0
9/7i, decomp:10 border 5 160 146 247 milli-err2: 43905
9/7i, decomp:10 border 5 160 146 247 milli-err2: 43905
9/7f, decomp:10 border 5 160 146 247 err2: 0.2753
5/3i, decomp: 5 border 104 162 6 47 milli-err2: 0
5/3i, decomp: 5 border 104 162 6 47 milli-err2: 0
9/7i, decomp: 5 border 104 162 6 47 milli-err2: 12942
9/7i, decomp: 5 border 104 162 6 47 milli-err2: 12942
9/7f, decomp: 5 border 104 162 6 47 err2: 0.1237
5/3i, decomp:24 border 78 250 102 218 milli-err2: 0
5/3i, decomp:24 border 78 250 102 218 milli-err2: 0
9/7i, decomp:24 border 78 250 102 218 milli-err2: 24997
9/7i, decomp:24 border 78 250 102 218 milli-err2: 24997
9/7f, decomp:24 border 78 250 102 218 err2: 0.3907
5/3i, decomp:28 border 86 98 56 79 milli-err2: 0
5/3i, decomp:28 border 86 98 56 79 milli-err2: 0
9/7i, decomp:28 border 86 98 56 79 milli-err2: 8112
9/7i, decomp:28 border 86 98 56 79 milli-err2: 8112
9/7f, decomp:28 border 86 98 56 79 err2: 0.3094
5/3i, decomp: 6 border 95 238 197 214 milli-err2: 0
5/3i, decomp: 6 border 95 238 197 214 milli-err2: 0
9/7i, decomp: 6 border 95 238 197 214 milli-err2: 12925
9/7i, decomp: 6 border 95 238 197 214 milli-err2: 12925
9/7f, decomp: 6 border 95 238 197 214 err2: 0.1481
5/3i, decomp:17 border 77 169 93 165 milli-err2: 0
5/3i, decomp:17 border 77 169 93 165 milli-err2: 0
9/7i, decomp:17 border 77 169 93 165 milli-err2: 24949
9/7i, decomp:17 border 77 169 93 165 milli-err2: 24949
9/7f, decomp:17 border 77 169 93 165 err2: 0.4816
5/3i, decomp:22 border 178 187 7 119 milli-err2: 0
5/3i, decomp:22 border 178 187 7 119 milli-err2: 0
9/7i, decomp:22 border 178 187 7 119 milli-err2: 9838
9/7i, decomp:22 border 178 187 7 119 milli-err2: 9838
9/7f, decomp:22 border 178 187 7 119 err2: 0.0999
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment