Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
 help / color / mirror / Atom feed
* [FFmpeg-devel] [PATCH] doc/encoders: document libjxl encoder options
@ 2022-04-26 21:08 Leo Izen
  2022-04-27  8:39 ` Gyan Doshi
  0 siblings, 1 reply; 4+ messages in thread
From: Leo Izen @ 2022-04-26 21:08 UTC (permalink / raw)
  To: ffmpeg-devel; +Cc: Leo Izen

Add more detailed documenation for the libjxl encoder
wrapper than is present currently inside libavcodec.
---
 doc/encoders.texi | 34 ++++++++++++++++++++++++++++++++++
 1 file changed, 34 insertions(+)

diff --git a/doc/encoders.texi b/doc/encoders.texi
index aac9f25e55..99399d4674 100644
--- a/doc/encoders.texi
+++ b/doc/encoders.texi
@@ -1809,6 +1809,40 @@ by ":". See the SVT-AV1 encoder user guide for a list of accepted parameters.
 
 @end table
 
+@section libjxl
+
+libjxl JPEG XL encoder wrapper.
+
+Requires the presence of the libjxl headers and library during
+configuration. You need to explicitly configure the build with
+@code{--enable-libjxl}.
+
+@subsection Options
+
+The libjxl wrapper supports the following options:
+
+@table @option
+
+@item distance
+Set the target Butteraugli distance. This is a quality setting: lower
+distance yields higher quality, with distance=1.0 roughly comparable to
+libjpeg Quality 90 for photographic content. Setting distance=0.0 yields
+true lossless encoding. Valid values range between 0.0 and 15.0, and sane
+values rarely exceed 5.0. Setting distance=0.1 is usually attains
+transparency for most input. The default is 1.0.
+
+@item effort
+Set the encoding effort used. Higher effort values produce more consistent
+quality and usually produces a better quality/bpp curve, at the cost of
+more CPU time required. Valid values range from 1 to 9, and the default is 7.
+
+@item modular
+Force the encoder to use Modular mode. The default is to let the encoder pick
+between VarDCT and Modular encoding modes based on encoding settings and the
+type of input content.
+
+@end table
+
 @section libkvazaar
 
 Kvazaar H.265/HEVC encoder.
-- 
2.36.0

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [FFmpeg-devel] [PATCH] doc/encoders: document libjxl encoder options
  2022-04-26 21:08 [FFmpeg-devel] [PATCH] doc/encoders: document libjxl encoder options Leo Izen
@ 2022-04-27  8:39 ` Gyan Doshi
  2022-04-27 12:28   ` Leo Izen
  0 siblings, 1 reply; 4+ messages in thread
From: Gyan Doshi @ 2022-04-27  8:39 UTC (permalink / raw)
  To: ffmpeg-devel



On 2022-04-27 02:38 am, Leo Izen wrote:
> Add more detailed documenation for the libjxl encoder
> wrapper than is present currently inside libavcodec.
> ---
>   doc/encoders.texi | 34 ++++++++++++++++++++++++++++++++++
>   1 file changed, 34 insertions(+)
>
> diff --git a/doc/encoders.texi b/doc/encoders.texi
> index aac9f25e55..99399d4674 100644
> --- a/doc/encoders.texi
> +++ b/doc/encoders.texi
> @@ -1809,6 +1809,40 @@ by ":". See the SVT-AV1 encoder user guide for a list of accepted parameters.
>   
>   @end table
>   
> +@section libjxl
> +
> +libjxl JPEG XL encoder wrapper.
> +
> +Requires the presence of the libjxl headers and library during
> +configuration. You need to explicitly configure the build with
> +@code{--enable-libjxl}.
> +
> +@subsection Options
> +
> +The libjxl wrapper supports the following options:
> +
> +@table @option
> +
> +@item distance
> +Set the target Butteraugli distance. This is a quality setting: lower
> +distance yields higher quality, with distance=1.0 roughly comparable to
> +libjpeg Quality 90 for photographic content. Setting distance=0.0 yields
> +true lossless encoding. Valid values range between 0.0 and 15.0, and sane
> +values rarely exceed 5.0. Setting distance=0.1 is usually attains
> +transparency for most input. The default is 1.0.
> +
> +@item effort
> +Set the encoding effort used. Higher effort values produce more consistent
> +quality and usually produces a better quality/bpp curve, at the cost of
> +more CPU time required. Valid values range from 1 to 9, and the default is 7.
> +
> +@item modular
> +Force the encoder to use Modular mode. The default is to let the encoder pick
> +between VarDCT and Modular encoding modes based on encoding settings and the
> +type of input content.

What happens in these two modes? Why would the user want to force 
modular? Is there a way and reason to force VarDCT?

Regards,
Gyan
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [FFmpeg-devel] [PATCH] doc/encoders: document libjxl encoder options
  2022-04-27  8:39 ` Gyan Doshi
@ 2022-04-27 12:28   ` Leo Izen
  2022-04-27 13:31     ` Gyan Doshi
  0 siblings, 1 reply; 4+ messages in thread
From: Leo Izen @ 2022-04-27 12:28 UTC (permalink / raw)
  To: ffmpeg-devel

On 4/27/22 04:39, Gyan Doshi wrote:
>
>
> On 2022-04-27 02:38 am, Leo Izen wrote:
>>
>> +
>> +@item modular
>> +Force the encoder to use Modular mode. The default is to let the 
>> encoder pick
>> +between VarDCT and Modular encoding modes based on encoding settings 
>> and the
>> +type of input content.
>
> What happens in these two modes? Why would the user want to force 
> modular? Is there a way and reason to force VarDCT?
>
>
VarDCT uses a fourier-DCT-based transform in essence. Modular uses a 
variety of transforms that can be combined like Lego bricks into 
patches, including a modified Haar transform.

In general, VarDCT will be superior to Modular for lossy encoding, but 
VarDCT doesn't support lossless, so Modular is required for lossless 
encoding. Currently, the library always chooses VarDCT for lossy and 
Modular for lossless, although this could potentially be subject to change.

A user will have very little reason to force modular unless they're 
testing the two modes against each other. The library API does not 
provide a way to force VarDCT. Or rather, it does, but if you force 
VarDCT and tell it to encode losslessly it will silently use modular 
rather than fail.

You generally won't have a reason to force VarDCT anyway, since it's 
chosen by default if you pick lossy, so this isn't an issue.

Leo Izen (thebombzen)


_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [FFmpeg-devel] [PATCH] doc/encoders: document libjxl encoder options
  2022-04-27 12:28   ` Leo Izen
@ 2022-04-27 13:31     ` Gyan Doshi
  0 siblings, 0 replies; 4+ messages in thread
From: Gyan Doshi @ 2022-04-27 13:31 UTC (permalink / raw)
  To: ffmpeg-devel



On 2022-04-27 05:58 pm, Leo Izen wrote:
> On 4/27/22 04:39, Gyan Doshi wrote:
>>
>>
>> On 2022-04-27 02:38 am, Leo Izen wrote:
>>>
>>> +
>>> +@item modular
>>> +Force the encoder to use Modular mode. The default is to let the 
>>> encoder pick
>>> +between VarDCT and Modular encoding modes based on encoding 
>>> settings and the
>>> +type of input content.
>>
>> What happens in these two modes? Why would the user want to force 
>> modular? Is there a way and reason to force VarDCT?
>>
>>
> VarDCT uses a fourier-DCT-based transform in essence. Modular uses a 
> variety of transforms that can be combined like Lego bricks into 
> patches, including a modified Haar transform.
>
> In general, VarDCT will be superior to Modular for lossy encoding, but 
> VarDCT doesn't support lossless, so Modular is required for lossless 
> encoding. Currently, the library always chooses VarDCT for lossy and 
> Modular for lossless, although this could potentially be subject to 
> change.
>
> A user will have very little reason to force modular unless they're 
> testing the two modes against each other. The library API does not 
> provide a way to force VarDCT. Or rather, it does, but if you force 
> VarDCT and tell it to encode losslessly it will silently use modular 
> rather than fail.
>
> You generally won't have a reason to force VarDCT anyway, since it's 
> chosen by default if you pick lossy, so this isn't an issue.

Ok, maybe qualify the option description to state lossless is always 
modular and lossy is VarDCT unless forced otherwise.

LGTM with those changes.

Regards,
Gyan
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2022-04-27 13:32 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-04-26 21:08 [FFmpeg-devel] [PATCH] doc/encoders: document libjxl encoder options Leo Izen
2022-04-27  8:39 ` Gyan Doshi
2022-04-27 12:28   ` Leo Izen
2022-04-27 13:31     ` Gyan Doshi

Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

This inbox may be cloned and mirrored by anyone:

	git clone --mirror https://master.gitmailbox.com/ffmpegdev/0 ffmpegdev/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 ffmpegdev ffmpegdev/ https://master.gitmailbox.com/ffmpegdev \
		ffmpegdev@gitmailbox.com
	public-inbox-index ffmpegdev

Example config snippet for mirrors.


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git