On Wed, Jan 10, 2024 at 10:43:59PM +0100, Stefano Sabatini wrote:
> > 0x82 is actually writting into the reserved bits.
>
> nit: writting typo
[...]
> LGTM, thanks.
Fixed the typo and applied the patchset.
Thank you
--
Clément B.
___
ffmpeg-devel mai
Ping on this last patch.
--
Clément B.
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".
On Sun, Dec 24, 2023 at 11:56:56AM +0100, Stefano Sabatini wrote:
> On date Monday 2023-12-11 02:35:01 +0100, Clément Bœsch wrote:
> > Hello there,
> >
> > I'm currently investigating an issue¹ affecting Kostya ProRes encoder
> > which is not reproducible with Anat
On Mon, Jan 08, 2024 at 09:23:05PM +0100, Stefano Sabatini wrote:
> On date Sunday 2024-01-07 19:16:46 +0100, Clément Bœsch wrote:
> > This byte represents 4 reserved bits followed by 4 alpha_channel_type bits.
> >
> > alpha_channel_type currently has 3 differents defined va
On Mon, Jan 08, 2024 at 09:10:09PM +0100, Stefano Sabatini wrote:
> On date Sunday 2024-01-07 19:16:45 +0100, Clément Bœsch wrote:
> > This byte represents 4 reserved bits followed by 4 alpha_channel_type bits.
> >
> > alpha_channel_type currently has 3 differents defined va
On Tue, Dec 12, 2023 at 09:02:23AM +0100, Stefano Sabatini wrote:
> On date Monday 2023-12-11 02:35:05 +0100, Clément Bœsch wrote:
> > This is going to be shared with proresenc_kostya in the upcoming commit.
> > ---
> > libavcodec/proresdata.c | 6 ++
> &g
On Sun, Dec 24, 2023 at 12:43:32AM +0100, Stefano Sabatini wrote:
> On date Monday 2023-12-11 02:35:28 +0100, Clément Bœsch wrote:
> > A few cosmetics aside, this makes the function identical to the one with
> > the same name in proresenc_kostya.
> > ---
> > libavcod
On Wed, Dec 13, 2023 at 12:16:56AM +0100, Michael Niedermayer wrote:
> On Wed, Dec 13, 2023 at 12:13:36AM +0100, Michael Niedermayer wrote:
> > On Mon, Dec 11, 2023 at 08:06:53PM +0100, Clément Bœsch wrote:
> > > This byte represents 4 reserved bits followed by 4 alpha_channe
The layout for the frame flags is as follow:
chroma_format u(2)
reserved u(2)
interlace_mode u(2)
reserved u(2)
chroma_format has 2 allowed values:
0: reserved
1: reserved
2: 4:2:2
3: 4:4:4
interlace_mode has 3 allowed values:
0: progressive
1: tff
2
This byte represents 4 reserved bits followed by 4 alpha_channel_type bits.
alpha_channel_type currently has 3 differents defined values: 0 (no
alpha), 1 (8b alpha), and 2 (16b alpha), all the other values are
reserved. The 4 initial reserved bits are expected to be 0.
---
libavcodec/proresenc_an
This byte represents 4 reserved bits followed by 4 alpha_channel_type bits.
alpha_channel_type currently has 3 differents defined values: 0 (no
alpha), 1 (8b alpha), and 2 (16b alpha), all the other values are
reserved. This part is correctly written (alpha_bits>>3 does the correct
thing), but the
Quoting SMPTE RDD 36:2015:
A decoder shall abort if it encounters a bitstream with an unsupported
bitstream_version value. If 0, the value of the chroma_format syntax
element shall be 2 (4:2:2 sampling) and the value of the
alpha_channel_type element shall be 0 (no encoded alpha); if 1, any
Quoting SMPTE RDD 36:2015:
A decoder shall abort if it encounters a bitstream with an unsupported
bitstream_version value. If 0, the value of the chroma_format syntax
element shall be 2 (4:2:2 sampling) and the value of the
alpha_channel_type element shall be 0 (no encoded alpha); if 1, any
On Sat, Dec 16, 2023 at 06:12:19PM +0100, Stefano Sabatini wrote:
> On date Monday 2023-12-11 02:35:10 +0100, Clément Bœsch wrote:
> > ---
> > libavcodec/proresenc_kostya.c | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/libavcode
On Wed, Dec 27, 2023 at 01:29:58PM +0100, Stefano Sabatini wrote:
[...]
> LGTM, thanks.
Thank you for the review. I will add to the commit description that this
change was made possible because of paid work for the jitter company
(https://jitter.video). If there is no objection, I will push this s
These functions encode a slice of alpha (1 to 8 macroblocks) which are
expected to be encoded as a repeated sequence of "[diff][run-1]", where
diff is the running difference of the alpha value and run is how many
times that value is expected to be duplicated (within the limit of a
grand total of 20
In the mov muxer (in mov_write_video_tag()), bits_per_coded_sample will
be written under certain conditions and is required to be 32 for the
transparency to be honored in QuickTime.
prores_kostya already has this setting but prores_anatoliy and
prores_videotoolbox didn't.
---
libavcodec/proresenc
The layout for the frame flags is as follow:
chroma_format u(2)
reserved u(2)
interlace_mode u(2)
reserved u(2)
chroma_format has 2 allowed values:
0: reserved
1: reserved
2: 4:2:2
3: 4:4:4
interlace_mode has 3 allowed values:
0: progressive
1: tff
2
This byte represents 4 reserved bits followed by 4 alpha_channel_type bits.
alpha_channel_type currently has 3 differents defined values: 0 (no
alpha), 1 (8b alpha), and 2 (16b alpha), all the other values are
reserved. The 4 initial reserved bits are expected to be 0.
---
libavcodec/proresenc_an
This byte represents 4 reserved bits followed by 4 alpha_channel_type bits.
alpha_channel_type currently has 3 differents defined values: 0 (no
alpha), 1 (8b alpha), and 2 (16b alpha), all the other values are
reserved. This part is correctly written (alpha_bits>>3 does the correct
thing), but the
Quoting SMPTE RDD 36:2015:
A decoder shall abort if it encounters a bitstream with an unsupported
bitstream_version value. If 0, the value of the chroma_format syntax
element shall be 2 (4:2:2 sampling) and the value of the
alpha_channel_type element shall be 0 (no encoded alpha); if 1, any
Quoting SMPTE RDD 36:2015:
A decoder shall abort if it encounters a bitstream with an unsupported
bitstream_version value. If 0, the value of the chroma_format syntax
element shall be 2 (4:2:2 sampling) and the value of the
alpha_channel_type element shall be 0 (no encoded alpha); if 1, any
A bunch of fixes (currently made on top of the previous patchset but
shouldn't conflict much with a rebase) which are not extensively tested.
If some people have specific decoders available, tests are welcome.
___
ffmpeg-devel mailing list
ffmpeg-devel
On Mon, Dec 11, 2023 at 10:15:09AM +0100, Anton Khirnov wrote:
> Quoting Clément Bœsch (2023-12-11 02:35:01)
> > Hello there,
> >
> > I'm currently investigating an issue¹ affecting Kostya ProRes encoder
> > which is not reproducible with Anatoliy encoder (but it
This is going to be shared with proresenc_kostya in the upcoming commit.
---
libavcodec/proresdata.c | 2 ++
libavcodec/proresdata.h | 1 +
libavcodec/proresenc_anatoliy.c | 3 +--
3 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/libavcodec/proresdata.c b/libavcodec/p
Unify cosmetics with encode_acs() from proresenc_anatoliy.
---
libavcodec/proresenc_kostya.c | 8 +++-
1 file changed, 3 insertions(+), 5 deletions(-)
diff --git a/libavcodec/proresenc_kostya.c b/libavcodec/proresenc_kostya.c
index c6c045be73..05e90bb236 100644
--- a/libavcodec/proresenc_kost
This matches the logic from the function of the same name in proresenc_kostya.
---
libavcodec/proresenc_anatoliy.c | 12 ++--
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/libavcodec/proresenc_anatoliy.c b/libavcodec/proresenc_anatoliy.c
index 161a05a6e6..2515ee38f8 100644
This makes the function pretty much identical to the function of the
same name in proresenc_kostya.
---
libavcodec/proresenc_anatoliy.c | 24 ++--
1 file changed, 10 insertions(+), 14 deletions(-)
diff --git a/libavcodec/proresenc_anatoliy.c b/libavcodec/proresenc_anatoliy.c
i
This matches the logic from the function of the same name in proresenc_kostya.
---
libavcodec/proresenc_anatoliy.c | 11 +++
1 file changed, 7 insertions(+), 4 deletions(-)
diff --git a/libavcodec/proresenc_anatoliy.c b/libavcodec/proresenc_anatoliy.c
index 816c27e481..161a05a6e6 100644
-
---
libavcodec/proresenc_anatoliy.c | 8
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/libavcodec/proresenc_anatoliy.c b/libavcodec/proresenc_anatoliy.c
index 57324a3b27..816c27e481 100644
--- a/libavcodec/proresenc_anatoliy.c
+++ b/libavcodec/proresenc_anatoliy.c
@@ -284,
This makes the prototype closer to the function of the same name in
proresenc_kostya.
---
libavcodec/proresenc_anatoliy.c | 9 +
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/libavcodec/proresenc_anatoliy.c b/libavcodec/proresenc_anatoliy.c
index 88c6d47ab7..57324a3b27 1006
This matches the code from proresenc_kostya.
---
libavcodec/proresenc_anatoliy.c | 9 +
1 file changed, 1 insertion(+), 8 deletions(-)
diff --git a/libavcodec/proresenc_anatoliy.c b/libavcodec/proresenc_anatoliy.c
index 0318379461..88c6d47ab7 100644
--- a/libavcodec/proresenc_anatoliy.c
+
---
libavcodec/proresenc_anatoliy.c | 18 --
1 file changed, 8 insertions(+), 10 deletions(-)
diff --git a/libavcodec/proresenc_anatoliy.c b/libavcodec/proresenc_anatoliy.c
index aed5c68b1b..0318379461 100644
--- a/libavcodec/proresenc_anatoliy.c
+++ b/libavcodec/proresenc_anatoli
A few cosmetics aside, this makes the function identical to the one with
the same name in proresenc_kostya.
---
libavcodec/proresenc_anatoliy.c | 6 ++
1 file changed, 2 insertions(+), 4 deletions(-)
diff --git a/libavcodec/proresenc_anatoliy.c b/libavcodec/proresenc_anatoliy.c
index bdf7bfac
This matches encode_dcs() prototype from proresenc_kostya.
---
libavcodec/proresenc_anatoliy.c | 8
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/libavcodec/proresenc_anatoliy.c b/libavcodec/proresenc_anatoliy.c
index 56baeb9956..bdf7bface4 100644
--- a/libavcodec/proresen
This makes the function closer to the same function in proresenc_kostya.
---
libavcodec/proresenc_anatoliy.c | 11 +--
1 file changed, 5 insertions(+), 6 deletions(-)
diff --git a/libavcodec/proresenc_anatoliy.c b/libavcodec/proresenc_anatoliy.c
index 4b72798689..56baeb9956 100644
--- a/l
This matches the name in proresenc_kostya.
---
libavcodec/proresenc_anatoliy.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/libavcodec/proresenc_anatoliy.c b/libavcodec/proresenc_anatoliy.c
index 43dee7f79b..4b72798689 100644
--- a/libavcodec/proresenc_anatoliy.c
+++ b/l
This makes the function closer to encode_acs() in proresenc_kostya.
---
libavcodec/proresenc_anatoliy.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/libavcodec/proresenc_anatoliy.c b/libavcodec/proresenc_anatoliy.c
index 4ea3d89126..43dee7f79b 100644
--- a/libavcodec/prore
Both encoders share a lot of code from both authors.
---
libavcodec/proresenc_kostya.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/libavcodec/proresenc_kostya.c b/libavcodec/proresenc_kostya.c
index e0aa7cf47a..c6c045be73 100644
--- a/libavcodec/proresenc_kostya.c
+++ b/libavcodec/proresen
This makes the function closer to encode_dcs() in proresenc_kostya.
---
libavcodec/proresenc_anatoliy.c | 8
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/libavcodec/proresenc_anatoliy.c b/libavcodec/proresenc_anatoliy.c
index 0d8ca5515f..4ea3d89126 100644
--- a/libavcodec
---
libavcodec/proresenc_anatoliy.c | 7 ---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/libavcodec/proresenc_anatoliy.c b/libavcodec/proresenc_anatoliy.c
index a418a12705..0de262c9c5 100644
--- a/libavcodec/proresenc_anatoliy.c
+++ b/libavcodec/proresenc_anatoliy.c
@@ -255,9
This makes the function closer to encode_dcs() in proresenc_kostya.
---
libavcodec/proresenc_anatoliy.c | 9 +
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/libavcodec/proresenc_anatoliy.c b/libavcodec/proresenc_anatoliy.c
index 97d681467d..a418a12705 100644
--- a/libavcode
This makes the function closer to encode_dcs() in proresenc_kostya.
---
libavcodec/proresenc_anatoliy.c | 8
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/libavcodec/proresenc_anatoliy.c b/libavcodec/proresenc_anatoliy.c
index 0de262c9c5..0d8ca5515f 100644
--- a/libavcodec
---
libavcodec/proresenc_anatoliy.c | 10 +-
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/libavcodec/proresenc_anatoliy.c b/libavcodec/proresenc_anatoliy.c
index f8feff850f..97d681467d 100644
--- a/libavcodec/proresenc_anatoliy.c
+++ b/libavcodec/proresenc_anatoliy.c
@@ -2
This makes the function closer to encode_dcs() in proresenc_kostya.
---
libavcodec/proresenc_anatoliy.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/libavcodec/proresenc_anatoliy.c b/libavcodec/proresenc_anatoliy.c
index e79c465590..f8feff850f 100644
--- a/libavcodec/pro
This makes the function closer to encode_dcs() in proresenc_kostya.
---
libavcodec/proresenc_anatoliy.c | 16
1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a/libavcodec/proresenc_anatoliy.c b/libavcodec/proresenc_anatoliy.c
index b8433ee872..e79c465590 100644
--- a/l
Also replaces 16384 with 0x4000.
This makes the function slightly closer to same function in proresenc_kostya.
---
libavcodec/proresenc_anatoliy.c | 7 +++
1 file changed, 3 insertions(+), 4 deletions(-)
diff --git a/libavcodec/proresenc_anatoliy.c b/libavcodec/proresenc_anatoliy.c
index 86e
This matches the function of the same name in proresenc_kostya.
---
libavcodec/proresenc_anatoliy.c | 10 +-
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/libavcodec/proresenc_anatoliy.c b/libavcodec/proresenc_anatoliy.c
index c7e43fc88c..86e436615c 100644
--- a/libavcodec/
---
libavcodec/proresenc_anatoliy.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/libavcodec/proresenc_anatoliy.c b/libavcodec/proresenc_anatoliy.c
index d6f5cefc16..804ff6ddf7 100644
--- a/libavcodec/proresenc_anatoliy.c
+++ b/libavcodec/proresenc_anatoliy.c
@@ -755,7 +755,7
Code is functionally identical, it's just rename of variables, cosmetics
and branch logic shuffling.
---
libavcodec/proresenc_anatoliy.c | 45 +
1 file changed, 23 insertions(+), 22 deletions(-)
diff --git a/libavcodec/proresenc_anatoliy.c b/libavcodec/proresenc_an
This is already defined in proresdata.h
---
libavcodec/proresenc_anatoliy.c | 2 --
1 file changed, 2 deletions(-)
diff --git a/libavcodec/proresenc_anatoliy.c b/libavcodec/proresenc_anatoliy.c
index 6b2e513bed..c6f49be9b8 100644
--- a/libavcodec/proresenc_anatoliy.c
+++ b/libavcodec/proresenc_an
---
libavcodec/proresenc_kostya.c | 8 ++--
1 file changed, 2 insertions(+), 6 deletions(-)
diff --git a/libavcodec/proresenc_kostya.c b/libavcodec/proresenc_kostya.c
index 103051830a..e0aa7cf47a 100644
--- a/libavcodec/proresenc_kostya.c
+++ b/libavcodec/proresenc_kostya.c
@@ -1014,12 +1014,
---
libavcodec/proresenc_kostya.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/libavcodec/proresenc_kostya.c b/libavcodec/proresenc_kostya.c
index 2d45f9a685..103051830a 100644
--- a/libavcodec/proresenc_kostya.c
+++ b/libavcodec/proresenc_kostya.c
@@ -1019,7 +1019,7 @@ stat
This matches the logic from proresenc_anatoliy.
---
libavcodec/proresenc_kostya.c | 21 ++---
1 file changed, 6 insertions(+), 15 deletions(-)
diff --git a/libavcodec/proresenc_kostya.c b/libavcodec/proresenc_kostya.c
index f883ab550b..2d45f9a685 100644
--- a/libavcodec/proresenc_
This is following the same logic as proresenc_anatoliy.
---
libavcodec/proresenc_kostya.c | 47 +++
1 file changed, 14 insertions(+), 33 deletions(-)
diff --git a/libavcodec/proresenc_kostya.c b/libavcodec/proresenc_kostya.c
index 6e1d5a0cef..f883ab550b 100644
---
This is going to be shared with proresenc_kostya in the upcoming commit.
---
libavcodec/proresdata.c | 6 ++
libavcodec/proresdata.h | 2 ++
libavcodec/proresenc_anatoliy.c | 9 ++---
3 files changed, 10 insertions(+), 7 deletions(-)
diff --git a/libavcodec/proresdata.c b/
This is already assigned at declaration.
---
libavcodec/proresenc_kostya.c | 2 --
1 file changed, 2 deletions(-)
diff --git a/libavcodec/proresenc_kostya.c b/libavcodec/proresenc_kostya.c
index 7aed3974c3..6e1d5a0cef 100644
--- a/libavcodec/proresenc_kostya.c
+++ b/libavcodec/proresenc_kostya.c
---
libavcodec/proresenc_kostya.c | 36 ---
1 file changed, 12 insertions(+), 24 deletions(-)
diff --git a/libavcodec/proresenc_kostya.c b/libavcodec/proresenc_kostya.c
index 58fc340879..7aed3974c3 100644
--- a/libavcodec/proresenc_kostya.c
+++ b/libavcodec/prorese
---
libavcodec/proresenc_kostya.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/libavcodec/proresenc_kostya.c b/libavcodec/proresenc_kostya.c
index 52fe5639b1..58fc340879 100644
--- a/libavcodec/proresenc_kostya.c
+++ b/libavcodec/proresenc_kostya.c
@@ -429,7 +429,7 @@ static
Hello there,
I'm currently investigating an issue¹ affecting Kostya ProRes encoder
which is not reproducible with Anatoliy encoder (but it's too early to
say if the bug is not present there as well given the differences in
quantization, and it's also unclear if the issue is even actually
there in
On Fri, Dec 30, 2022 at 12:34:51PM +0100, Clément Bœsch wrote:
[...]
Patchset applied
--
Clément B.
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
On Wed, Dec 28, 2022 at 12:17:42AM +0100, Clément Bœsch wrote:
[...]
Patchset applied
--
Clément B.
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
On Mon, Jan 02, 2023 at 10:57:33PM +0100, Michael Niedermayer wrote:
[...]
> > So I did a lot of experiments, and the explanation for the desaturated
> > output at low number of colors can be found at the end of this article:
> > http://blog.pkh.me/p/39-improving-color-quantization-heuristics.html
On Sun, Nov 06, 2022 at 06:30:22PM +0100, Michael Niedermayer wrote:
> On Sun, Nov 06, 2022 at 06:09:41PM +0100, Michael Niedermayer wrote:
> > On Sat, Nov 05, 2022 at 04:26:02PM +0100, Clément Bœsch wrote:
> > > Hi,
> > >
> > > This patchset essentially fixes
On Fri, Dec 30, 2022 at 12:34:51PM +0100, Clément Bœsch wrote:
[...]
> Here are some demonstrations of all the dithering with 2bpp:
> https://imgur.com/a/2a1p4R8
Sorry, this is obviously 1bpp
--
Clément B.
___
ffmpeg-devel mailing list
ffmpeg
---
libavfilter/vf_paletteuse.c | 18 +-
1 file changed, 9 insertions(+), 9 deletions(-)
diff --git a/libavfilter/vf_paletteuse.c b/libavfilter/vf_paletteuse.c
index 252ad746f0..944ff5c74d 100644
--- a/libavfilter/vf_paletteuse.c
+++ b/libavfilter/vf_paletteuse.c
@@ -918,15 +918,1
Atkinson according to
https://bisqwit.iki.fi/jutut/kuvat/ordered_dither/error_diffusion.txt:
* 1 1/ 8
1 1 1
1
---
doc/filters.texi| 2 ++
libavfilter/vf_paletteuse.c | 23 +++
2 files changed, 25 insertions(+)
diff --git a/doc/filt
Burkes according to
https://bisqwit.iki.fi/jutut/kuvat/ordered_dither/error_diffusion.txt:
* 8 4
2 4 8 4 2 / 32
---
doc/filters.texi| 2 ++
libavfilter/vf_paletteuse.c | 24
2 files changed, 26 insertions(+)
diff --git a/doc/filters.tex
Sierra3 according to
https://bisqwit.iki.fi/jutut/kuvat/ordered_dither/error_diffusion.txt:
* 5 3
2 4 5 4 2
2 3 2 / 32
---
doc/filters.texi| 2 ++
libavfilter/vf_paletteuse.c | 30 ++
2 files changed, 32 insertions(+)
dif
Hi,
This patchset is to be applied on top of the previous one.
Here are some demonstrations of all the dithering with 2bpp:
https://imgur.com/a/2a1p4R8
Source images:
1. https://unsplash.com/photos/P4epudldYMU
2. https://unsplash.com/photos/iDNvparRZ2Q
Note: both got resized to fit within a 102
On Wed, Dec 28, 2022 at 10:04:26PM +0100, Tomas Härdin wrote:
[...]
> Does this mean all-black with transparent is disallowed?
Yes a single color with or without an extra transparency slot makes no
sense.
> Shouldn't it be max_colors + reserve < 2?
max_colors accounts for the transparent color a
On Tue, Nov 08, 2022 at 10:37:59PM +, Soft Works wrote:
[...]
> For completeness, I'm also including the recent comparison, but it
> seems you're already on track in this regard.
If you remove the alpha from the input image you'll see that it performs
pretty much as good. You can check with t
On Sat, Nov 05, 2022 at 08:07:42PM +0100, Andreas Rheinhardt wrote:
[...]
> You are adding floating point to places where there was no floating
> point before (some other patches of this patchset do the same). Is this
> still bitexact across all supported arches?
It should be good with the last it
This is redundant with a != 0xff below.
---
libavfilter/vf_paletteuse.c | 7 +--
1 file changed, 1 insertion(+), 6 deletions(-)
diff --git a/libavfilter/vf_paletteuse.c b/libavfilter/vf_paletteuse.c
index 8954a02524..0861a70a0b 100644
--- a/libavfilter/vf_paletteuse.c
+++ b/libavfilter/vf_pal
---
libavfilter/vf_palettegen.c | 19 +--
libavfilter/vf_paletteuse.c | 22 +-
2 files changed, 18 insertions(+), 23 deletions(-)
diff --git a/libavfilter/vf_palettegen.c b/libavfilter/vf_palettegen.c
index 97e12f7274..4b69d3c63b 100644
--- a/libavfilter/vf_pal
---
libavfilter/vf_paletteuse.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/libavfilter/vf_paletteuse.c b/libavfilter/vf_paletteuse.c
index 33b8e70293..e3462b4abb 100644
--- a/libavfilter/vf_paletteuse.c
+++ b/libavfilter/vf_paletteuse.c
@@ -262,9 +262,6 @@ static av_
The equalities in the w{r,g,b} range checks make sure longest is never
0. Even if the alpha ended up being selected in get_next_color() it
would cause underread memory accesses in its caller (colormap_insert).
---
libavfilter/vf_paletteuse.c | 33 -
1 file changed,
This belongs in another filter.
---
libavfilter/vf_paletteuse.c | 31 ---
1 file changed, 31 deletions(-)
diff --git a/libavfilter/vf_paletteuse.c b/libavfilter/vf_paletteuse.c
index 690422a842..33b8e70293 100644
--- a/libavfilter/vf_paletteuse.c
+++ b/libavfilter/vf_p
---
libavfilter/vf_paletteuse.c | 8
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/libavfilter/vf_paletteuse.c b/libavfilter/vf_paletteuse.c
index fb4016b11c..f43f077454 100644
--- a/libavfilter/vf_paletteuse.c
+++ b/libavfilter/vf_paletteuse.c
@@ -180,7 +180,7 @@ static a
This is a maintenance pain more than anything. It appears to make the
code slightly faster as a side effect.
---
libavfilter/vf_paletteuse.c | 220 +---
1 file changed, 31 insertions(+), 189 deletions(-)
diff --git a/libavfilter/vf_paletteuse.c b/libavfilter/vf_pal
It appears faster than the iterative method on my machine (1.06x
faster), so I'm guessing compilers improved over time (the iterative
version was slightly faster in the past).
---
libavfilter/vf_paletteuse.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/libavfilter/vf_palette
Impact is more negligible than previous commit but still faster (1.02x).
---
libavfilter/vf_paletteuse.c | 8 ++--
1 file changed, 2 insertions(+), 6 deletions(-)
diff --git a/libavfilter/vf_paletteuse.c b/libavfilter/vf_paletteuse.c
index c32b73ab9a..c2d6333662 100644
--- a/libavfilter/vf_pa
1.12x faster overall in palettegen on my machine.
---
libavfilter/vf_palettegen.c | 19 ++-
1 file changed, 2 insertions(+), 17 deletions(-)
diff --git a/libavfilter/vf_palettegen.c b/libavfilter/vf_palettegen.c
index 6301cf6358..97e12f7274 100644
--- a/libavfilter/vf_palettegen.c
---
libavfilter/palette.c | 10 ++
libavfilter/palette.h | 5 +
2 files changed, 15 insertions(+)
diff --git a/libavfilter/palette.c b/libavfilter/palette.c
index 03e48fc71e..e21ab6ff4d 100644
--- a/libavfilter/palette.c
+++ b/libavfilter/palette.c
@@ -208,3 +208,13 @@ uint32_t ff_ok
@@
/*
* Copyright (c) 2015 Stupeflix
+ * Copyright (c) 2022 Clément Bœsch
*
* This file is part of FFmpeg.
*
diff --git a/libavfilter/vf_paletteuse.c b/libavfilter/vf_paletteuse.c
index 3af121b1eb..c32b73ab9a 100644
--- a/libavfilter/vf_paletteuse.c
+++ b/libavfilter/vf_paletteuse.c
@@ -1,5
Now that the sort function is deterministic, we can rely on the libc
sorting function.
---
libavfilter/vf_palettegen.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/libavfilter/vf_palettegen.c b/libavfilter/vf_palettegen.c
index 784e81b875..507690fa82 100644
--- a/libavfilt
Currently, in case of equality on the first color channel, the order of
the ref colors is defined by the hashing function. This commit makes the
sorting deterministic and improve the hierarchical ordering.
---
libavfilter/vf_palettegen.c| 61 ++
tests/ref/fate/f
---
libavfilter/vf_palettegen.c | 8 ++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/libavfilter/vf_palettegen.c b/libavfilter/vf_palettegen.c
index 3178c43ab9..ba81739d27 100644
--- a/libavfilter/vf_palettegen.c
+++ b/libavfilter/vf_palettegen.c
@@ -451,9 +451,13 @@ static
Similar to the change in paletteuse, we rely on a perceptual model to
decide how and where to split the box.
---
libavfilter/Makefile | 2 +-
libavfilter/vf_palettegen.c| 48 --
tests/ref/fate/filter-palettegen-1 | 2 +-
tests/ref/fate/filter-pal
This prevents mixed sign arithmetic (typically because we have signed
color channel differences), which has nasty side effects in C.
---
libavfilter/vf_palettegen.c | 8
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/libavfilter/vf_palettegen.c b/libavfilter/vf_palettegen.c
This variable is used only for the running weight (used to reach the
target median). The places where we actually need the box weight are
changed to use box->weight.
---
libavfilter/vf_palettegen.c | 16 +++-
1 file changed, 7 insertions(+), 9 deletions(-)
diff --git a/libavfilter/vf_
---
libavfilter/vf_palettegen.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/libavfilter/vf_palettegen.c b/libavfilter/vf_palettegen.c
index 36f0a976d9..ad21882df3 100644
--- a/libavfilter/vf_palettegen.c
+++ b/libavfilter/vf_palettegen.c
@@ -132,7 +132,7 @@ static int c
---
libavfilter/vf_palettegen.c | 30 +-
1 file changed, 1 insertion(+), 29 deletions(-)
diff --git a/libavfilter/vf_palettegen.c b/libavfilter/vf_palettegen.c
index 00b5f88c49..36f0a976d9 100644
--- a/libavfilter/vf_palettegen.c
+++ b/libavfilter/vf_palettegen.c
@@ -1
This is following the results from personal research¹.
¹: https://github.com/ubitux/research/tree/main/color-quantization#results
---
libavfilter/vf_palettegen.c| 3 ++-
tests/ref/fate/filter-palettegen-1 | 2 +-
tests/ref/fate/filter-palettegen-2 | 2 +-
3 files changed, 4 insertions(+),
"Variance" wasn't exactly the correct word; "cut score" is more
agnostic, which will be useful when changing the algorithm in the next
commit.
---
libavfilter/vf_palettegen.c | 12 ++--
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/libavfilter/vf_palettegen.c b/libavfilter/
The variance computation is simple enough now (since we can use the axis
squared errors) that it doesn't need to have a complex lazy computation
logic.
---
libavfilter/vf_palettegen.c | 42 -
1 file changed, 9 insertions(+), 33 deletions(-)
diff --git a/libavfi
---
libavfilter/vf_palettegen.c | 13 ++---
1 file changed, 6 insertions(+), 7 deletions(-)
diff --git a/libavfilter/vf_palettegen.c b/libavfilter/vf_palettegen.c
index ed1448755c..aa0c8fdc5b 100644
--- a/libavfilter/vf_palettegen.c
+++ b/libavfilter/vf_palettegen.c
@@ -363,22 +363,21 @@
This is following the results from personal research¹.
¹: https://github.com/ubitux/research/tree/main/color-quantization#results
---
libavfilter/vf_palettegen.c| 42 ++
tests/ref/fate/filter-palettegen-1 | 2 +-
tests/ref/fate/filter-palettegen-2 | 2 +-
3 f
---
libavfilter/vf_palettegen.c | 64 ++---
1 file changed, 38 insertions(+), 26 deletions(-)
diff --git a/libavfilter/vf_palettegen.c b/libavfilter/vf_palettegen.c
index bea3292796..a047c75599 100644
--- a/libavfilter/vf_palettegen.c
+++ b/libavfilter/vf_palettege
Now the selection of the color is based on a distance built around human
perception of color instead of the unreliable sRGB triplet one.
---
libavfilter/Makefile| 2 +-
libavfilter/vf_paletteuse.c | 181 ++--
tests/ref/fate/filter-paletteus
1 - 100 of 1132 matches
Mail list logo