Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Mark Harris
Opus
Commits
b726185d
Commit
b726185d
authored
Dec 07, 2007
by
Jean-Marc Valin
Browse files
Fixed Laplace encoder
parent
671bf403
Changes
1
Hide whitespace changes
Inline
Side-by-side
libentcode/laplace.c
View file @
b726185d
...
...
@@ -59,8 +59,8 @@ void ec_laplace_encode(ec_enc *enc, int value, int decay)
fl
=
0
;
if
(
s
)
fl
+=
fs
;
printf
(
"enc: %d %d %d
\n
"
,
fl
,
fs
,
ft
);
ec_encode
(
enc
,
fl
,
fs
,
ft
);
//
printf ("enc: %d %d %d\n", fl, fs, ft);
ec_encode
(
enc
,
fl
,
fl
+
fs
,
ft
);
}
int
ec_laplace_decode
(
ec_dec
*
dec
,
int
decay
)
...
...
@@ -70,7 +70,7 @@ int ec_laplace_decode(ec_dec *dec, int decay)
ft
=
ec_laplace_get_total
(
decay
);
fm
=
ec_decode
(
dec
,
ft
);
printf
(
"fm: %d/%d
\n
"
,
fm
,
ft
);
//
printf ("fm: %d/%d\n", fm, ft);
fl
=
0
;
fs
=
1
<<
15
;
fh
=
fs
;
...
...
@@ -81,7 +81,7 @@ int ec_laplace_decode(ec_dec *dec, int decay)
fh
+=
fs
*
2
;
val
++
;
}
if
(
fl
<
0
)
if
(
fl
>
0
)
{
if
(
fm
>=
fl
+
fs
)
{
...
...
@@ -91,12 +91,12 @@ int ec_laplace_decode(ec_dec *dec, int decay)
fh
-=
fs
;
}
}
printf
(
"fl/fh: %d/%d
\n
"
,
fl
,
fh
);
//
printf ("fl/fh: %d/%d\n", fl, fh);
ec_dec_update
(
dec
,
fl
,
fh
,
ft
);
return
val
;
}
#if
1
#if
0
int main()
{
int val;
...
...
@@ -107,9 +107,11 @@ int main()
ec_byte_writeinit(&buf);
ec_enc_init(&enc,&buf);
ec_laplace_encode
(
&
enc
,
0
,
10000
);
ec_laplace_encode
(
&
enc
,
1
,
12000
);
ec_laplace_encode(&enc,
9
, 10000);
ec_laplace_encode(&enc,
-5
, 12000);
ec_laplace_encode(&enc, -2, 9000);
ec_laplace_encode(&enc, 20, 15000);
ec_laplace_encode(&enc, 2, 900);
ec_enc_done(&enc);
...
...
@@ -122,6 +124,10 @@ int main()
printf ("dec: %d\n", val);
val = ec_laplace_decode(&dec, 9000);
printf ("dec: %d\n", val);
val = ec_laplace_decode(&dec, 15000);
printf ("dec: %d\n", val);
val = ec_laplace_decode(&dec, 900);
printf ("dec: %d\n", val);
ec_byte_writeclear(&buf);
...
...
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