Welcome to Doom9's Forum, THE in-place to be for everyone interested in DVD conversion. Before you start posting please read the forum rules. By posting to this forum you agree to abide by the rules. |
![]() |
#41 | Link | ||||
Moderator
![]() Join Date: Jan 2006
Location: Portland, OR
Posts: 5,022
|
Quote:
Quote:
Quote:
Unless you rolled your own, of course. I don't know that 3.6 did anything impactful for lossless, however. I've not tested it for that. At a minimum there would be some performance improvements (more than 2x on ARM, more modest on Intel). On a current CPU --avx512 might improve performance some, particularly in --preset placebo. Quote:
|
||||
![]() |
![]() |
![]() |
#42 | Link | |
Moderator
![]() Join Date: Jan 2006
Location: Portland, OR
Posts: 5,022
|
Yeah, with the same 10-bit input I would expect Main10 and Main12 to have essentially the same file size, as they both use the same internal 32-bit precision.
Quote:
|
|
![]() |
![]() |
![]() |
#44 | Link | |
Registered User
Join Date: Oct 2012
Posts: 8,392
|
Quote:
and 10 bit input and 16 bit input should have about roughly the same size or 16 should be lower with lossless. the dithering option was not used so this is rounded 10 bit it is supposed to output. for lossy i can understand atleast in part the result. |
|
![]() |
![]() |
![]() |
#46 | Link |
Registered User
Join Date: Dec 2013
Location: Berlin, Germany
Posts: 446
|
I don't know what you are all going on about when its this simple to test:
Code:
./x264 foreman_cif.yuv --profile high444 --input-depth 8 --preset veryslow --input-res 352x288 --fps 25 --qp 0 -o test.264 --output-depth 8 -A p8x8,b8x8,i8x8 -> encoded 300 frames, 157.56 fps, 10722.74 kb/s ./x264 foreman_cif.yuv --profile high444 --input-depth 8 --preset veryslow --input-res 352x288 --fps 25 --qp 0 -o test.264 --output-depth 10 -A p8x8,b8x8,i8x8 -> encoded 300 frames, 93.17 fps, 18207.77 kb/s ./x265 --input foreman_cif.yuv --profile main --input-depth 8 --preset veryslow --input-res 352x288 --fps 25 --lossless -o test.265 -> encoded 300 frames in 54.74s (5.48 fps), 10633.94 kb/s, Avg QP:4.00 ./x265 --input foreman_cif.yuv --profile main10 --input-depth 8 --preset veryslow --input-res 352x288 --fps 25 --lossless -o test.265 -> encoded 300 frames in 54.97s (5.46 fps), 18111.93 kb/s, Avg QP:4.00 ./x265 --input foreman_cif.yuv --profile main12 --input-depth 8 --preset veryslow --input-res 352x288 --fps 25 --lossless -o test.265 -> encoded 300 frames in 52.86s (5.67 fps), 26905.68 kb/s, Avg QP:4.00 |
![]() |
![]() |
![]() |
#47 | Link |
Registered User
Join Date: Sep 2007
Posts: 5,626
|
It looks like the -x265-params "output-depth=10" switch is not passed with ffmpeg and libx265 . This happens regardless of lossless=1 vs. lossy . The output encode is 12bit from 16bit input
But it works ok with x265 cli => --output-depth 10 switch is honored I didn't test the latest git , my ffmpeg binary is about a month old, maybe it's fixed by now |
![]() |
![]() |
![]() |
#48 | Link |
Registered User
Join Date: Oct 2012
Posts: 8,392
|
@rwill
this make sure the input is 8 bit: --input-depth 8 right? so why would the output be massively bigger? is there well defined behaviour for these cases? like adding the first 4 bit of the 8 bit input to the end to create accurate 12 bit? does x264 even have an output flag: i tried to find the commit but that seem to be to old: https://git.videolan.org/?p=x264.git...45522e57127db4 |
![]() |
![]() |
![]() |
#49 | Link | ||
Registered User
Join Date: Dec 2013
Location: Berlin, Germany
Posts: 446
|
It DEFINES that the input raw .yuv has 8 bit depth.
For 10bit output bit depth? Because the pictures are encoded at 10bit precision and not with 8. Quote:
Quote:
|
||
![]() |
![]() |
![]() |
#51 | Link |
Acid fr0g
Join Date: May 2002
Location: Italy
Posts: 2,950
|
Time for another comparison:
This commit implements a standard, compliant, version 3 and version 4 FFv1 encoder, entirely in Vulkan. The encoder is written in standard GLSL and requires a Vulkan 1.3 supporting GPU with the BDA extension.
__________________
@turment on Telegram |
![]() |
![]() |
![]() |
#52 | Link |
Registered User
Join Date: Aug 2024
Posts: 525
|
--output-depth is a CLI only option. To "control" the internal bitdepth used in FFmpeg libx265 you need to convert it. I suggest using a combination of zscale and format in filter (e.g. -vf zscale,format=yuv420p10le) because the default swscale conversion may do something weird. The format filter after zscale only sets output format for zscale filter and does nothing else, the whole conversion is done by zscale.
Same thing with FFmpeg libx264, actually. This is not a bug. It's by design. --input-depth tells the reader the bitdepth of the input YUV file because it has no metadata, the reader will read anything according to what you told it. The actual "pad/truncate the bits" stuff happens when --output-depth (it also sets internal depth) is different from input depth, specified by hand or determined by reader (Y4M/AVS/VPY/etc.). Last edited by Z2697; 18th November 2024 at 16:01. |
![]() |
![]() |
![]() |
Thread Tools | Search this Thread |
Display Modes | |
|
|