Marth64 changed the topic of #ffmpeg to: Welcome to the FFmpeg USER support channel | Development channel: #ffmpeg-devel | Bug reports: https://ffmpeg.org/bugreports.html | Wiki: https://trac.ffmpeg.org/ | This channel is publically logged | FFmpeg 7.1 is released
fling_ is now known as fling
down200 has quit [Ping timeout: 244 seconds]
System_Error has quit [Remote host closed the connection]
down200 has joined #ffmpeg
System_Error has joined #ffmpeg
Narrat has quit [Quit: They say a little knowledge is a dangerous thing, but it's not one half so bad as a lot of ignorance.]
Kei_N_ has joined #ffmpeg
Kei_N has quit [Ping timeout: 252 seconds]
emanuele6 has quit [Read error: Connection reset by peer]
FlorianBad has quit [Quit: Konversation terminated!]
FlorianBad has joined #ffmpeg
evilscreww has joined #ffmpeg
minimal has quit [Quit: Leaving]
<aaabbb>
what is the difference between me=esa and me=tesa for libx264? i keep hearing tesa is better but that esa, being exhaustive, is "mathematically equivalent to brute force"
<furq>
Normal exhaustive motion search uses a highly optimized sequential elimination algorithm (SEA) to search every single candidate within <merange> pixels of the best predictor. Its about 7 times faster than a naive exhaustive search.
<furq>
The Hadamard exhaustive search (TESA) attempts to approximate something that would normally be about 70 times slower than the aforementioned SEA; running a SATD (sum of absolute [Hadamard] transformed differences) on each motion vector candidate instead of a much faster SAD. This is more accurate, but much slower. Obviously, if it was actually 70 times slower, it would be totally useless. As such, TESA uses
<furq>
a thresholding algorithm to run SATD on the X best results from the exhaustive search, where X is <merange>/2.
Warcop has quit [Remote host closed the connection]
evilscreww has quit [Ping timeout: 250 seconds]
Warcop has joined #ffmpeg
System_Error has quit [Remote host closed the connection]
<aaabbb>
furq: then i'm confused about esa being described as "mathematically equivalent to brute force". how could something be more accurate than a completely exhaustive search?
System_Error has joined #ffmpeg
<aaabbb>
i might be confused about exactly "what" is being exhaustively searched. i assumed that esa checked every possible motion vector within a search radius and so could only be optimized for speed, not accuracy
<aaabbb>
oh, the difference is that tesa just has a different (and more accurate) way of determining what "best" is? but both esa and tesa do go through every possible mv?
<aaabbb>
i misunderstood you when i first read what you wrote. i think i see what you mean. so with esa, sad is run on each mv candidate to determine which is best. but with tesa, it uses sad on all mvs but instead of choosing the best, it chooses merange/2 mvs and runs the slower satd to determine which one to pick?
<aaabbb>
it's a shame that there is no "placebo4realz" preset for testing purposes, something that uses satd on every mv, something that sets merange to the highest that doesn't make future predictions worse (64 i think), disables the internal fast-bskip etc
StephenLynx has quit [Quit: Leaving]
<aaabbb>
furq: why does x264 lossless disable tesa and only use esa on placebo?
<aaabbb>
even with merange=tesa explicitly, it changes it to esa
evilscreww has joined #ffmpeg
System_Error has quit [Remote host closed the connection]
System_Error has joined #ffmpeg
echelon has quit [Remote host closed the connection]
echelon has joined #ffmpeg
Muimi has joined #ffmpeg
evilscreww has quit [Quit: Leaving]
rvalue has quit [Read error: Connection reset by peer]
System_Error has quit [Remote host closed the connection]
rvalue has joined #ffmpeg
System_Error has joined #ffmpeg
bray90820 has joined #ffmpeg
<bray90820>
How would I do something like ffmpeg -i input.mp4 -c:a copy output.mp4 but have it grab the second audio track instead of the first