Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
 help / color / mirror / Atom feed
From: Michael Niedermayer <michael@niedermayer.cc>
To: FFmpeg development discussions and patches <ffmpeg-devel@ffmpeg.org>
Subject: Re: [FFmpeg-devel] [PATCH v0] Implement promeg decoder.
Date: Sun, 19 Jan 2025 23:22:39 +0100
Message-ID: <20250119222239.GU4991@pb2> (raw)
In-Reply-To: <CAHGibzFvmw6EjUMhym29AWhEOkgK7ReuWDiWwzC-+csQr-T1GQ@mail.gmail.com>


[-- Attachment #1.1: Type: text/plain, Size: 3980 bytes --]

Hi Devin

On Fri, Jan 17, 2025 at 12:54:10PM -0500, Devin Heitmueller wrote:
> Hello all,
> 
> I've got some experience in this particular area, so figured it might
> be helpful to offer another voice.
> 
> Kieran makes a number of excellent points, and I largely agree with
> his discussion of the problem space.

> It's an intrinsically difficult
> problem.

sure


> The data arrives on multiple sockets, leading to all sorts
> of opportunities for timing behavior and reordering issues.

how does this matter?
Either i have received a error free packet or i have not
Either i have a set of equations taht allows some kind of optimal
unique solution allowing recovery of a missing packet or i dont.

When its time to output a packet either it can be satisfied because
its determined by the avaialable packets or its not.

Where is the complexity here ?

At this level everything in multimedia is complex or nothing is.
Its more a matter of viewpoint than the exact problem at hand.


> And, in
> my experience, I certainly agree with Kieran's assertion that the
> quality of implementations vary wildly across both open source and
> commercial products (e.g. hardware encoders and transcoders) that
> attempt to implement the standard.

of course. Thats true always everywhere, isnt it?


> Not to mention the
> interoperability issues when receiving streams from all these
> different products.

And FFmpeg has always been the most compatible when it comes to our
demuxers and decoders.


> 
> Building an implementation where you are confident that it does it
> "right" generally means having a large corpus of test vectors that
> exercise edge cases both in delivery timing and packet loss, assessing
> the result to determine which packets should have been recoverable
> versus what was actually recovered.

Of course


> This is considerably beyond the
> sorts of tests ffmpeg typically does in their FATE suite (which AFAIK
> doesn't attempt to validate libavformat protocols at all).

And that is really bad. FATE should cover libavformat protocols
We need some instrumentation/connextion thing that allows us to
inject testdata into them without a real network on the other side
in a clean simple and platform independant way.


[...]
> Marking it as experimental seems like a reasonable ask, given that
> it's brand new code.  That would both allow it to be evaluated/tested
> by those who care about it, and there's a base onto which to submit
> fixes/improvements.  And, like with anything else, if it's determined
> that the implementation works very poorly and/or it gets abandoned, it
> can always be dropped from the tree.

yes

And we seem to agree 95% on all this.

The part i do not agree with and iam not convinced about is that this
cannot be done in a clean and fully working and heuristics free
way in the real world.

You sure can write an implementation that uses hundreads of heuristics
to build a short binary coding tree. for example Shannon–Fano codes
could be a start point. But that doesnt mean there isnt an optimal
and clean solution (which there is and its huffman trees)

Or for a more complex problem you can look at early MPEG encoders
how they accumulated heuristics to decide to use intra or inter MBs
or make other decissions.
This did not preclude the use of Rate Distortion to make these
decissions in later encoders with later than also psycho-vissual
metrics.
These are no longer heuristics, these are optimal solutions under
a given Rate Distortion model. This is also no nonsense
its "modern" encoders in the real world. (modern as in last few decades)

So the claim that it "requires heuristics" and cannot be done cleanly
touches me the wrong way. That claim I disagree with

thx

[...]

-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

You can kill me, but you cannot change the truth.

[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 195 bytes --]

[-- Attachment #2: Type: text/plain, Size: 251 bytes --]

_______________________________________________
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".

  parent reply	other threads:[~2025-01-19 22:22 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20250116200826.33624-1-romain.beauxis@gmail.com>
     [not found] ` <CABGuwEnazYSuZj5DDDg4T57Qp6jtM8puA7zE=pnq1kC3gCa04Q@mail.gmail.com>
     [not found]   ` <CABWZ6OQLiA-g_+2YaEqrTDuT0PShLQcDtu4ihKUeiEzf9joPRg@mail.gmail.com>
     [not found]     ` <CABGuwEkSD7hTNKVhwU_OXJ6Zku20OtdL=VqK2a4uDQATVYi90g@mail.gmail.com>
     [not found]       ` <CABWZ6OQeQNGy2o40L=-xLm=JhZVNNsbYm=w6ynUfovrMB4co9w@mail.gmail.com>
     [not found]         ` <CABGuwEk62V+yucDsv=yxKADwgk5d3snX2hX=Jg9SjPCb5RxXVw@mail.gmail.com>
     [not found]           ` <CABGuwE=u91r5E+jq=6dMp=hCiM03T-V67ejpqffhBFMC3QfSzQ@mail.gmail.com>
     [not found]             ` <CABWZ6OQOEmmVxDc8S5T6F1P9GAdUXRJ_GYNrbfjyqQjqR6viiw@mail.gmail.com>
2025-01-18  2:22               ` Kieran Kunhya via ffmpeg-devel
     [not found]           ` <a129ff9f-6472-40a9-900f-cf58e133799b@gmail.com>
     [not found]             ` <Z4psWx-rzcXuLu1Y@phare.normalesup.org>
     [not found]               ` <082f12b8-2319-47d2-8854-f361d2039748@gmail.com>
     [not found]                 ` <CABGuwEmJbZwGTtn6AtttqYDPpgowuYm-3dX0OrJWs07cr-4usQ@mail.gmail.com>
     [not found]                   ` <20250117170823.GM4991@pb2>
     [not found]                     ` <CAHGibzFvmw6EjUMhym29AWhEOkgK7ReuWDiWwzC-+csQr-T1GQ@mail.gmail.com>
2025-01-19 22:22                       ` Michael Niedermayer [this message]
2025-01-20  6:05                         ` Kieran Kunhya via ffmpeg-devel
2025-01-20  6:46                         ` Kieran Kunhya via ffmpeg-devel
2025-01-22 15:33                           ` Michael Niedermayer
2025-01-22 16:29                             ` Kieran Kunhya via ffmpeg-devel
2025-01-22 16:53                               ` Romain Beauxis
2025-01-22 16:57                                 ` Kieran Kunhya via ffmpeg-devel
2025-01-20 14:48                       ` Nicolas George
2025-01-20 14:30                 ` Nicolas George
2025-01-20 15:07                   ` James Almer
2025-01-20 16:22                     ` Marth64
2025-01-21 22:16                       ` Romain Beauxis
2025-01-22 20:36                     ` Nicolas George
     [not found]             ` <CABGuwE=Xza3-Jisr1U3AEtLAh2yLLWofsLC+Hbwc_4c1QjLtYA@mail.gmail.com>
     [not found]               ` <20250117170321.GL4991@pb2>
     [not found]                 ` <CABGuwEndw2y1cLi-rTnYD1teWuTfd7YCr9_mQkgggqAa0e4jbA@mail.gmail.com>
2025-01-20 14:50                   ` Nicolas George
2025-01-20 15:00                     ` Kieran Kunhya via ffmpeg-devel
2025-01-22 16:36                       ` Michael Niedermayer
2025-01-22 16:55                         ` Kieran Kunhya via ffmpeg-devel
2025-01-22 16:59                         ` Kieran Kunhya via ffmpeg-devel
2025-01-22 17:09                         ` Kieran Kunhya via ffmpeg-devel
2025-01-22 17:03 ` Kieran Kunhya via ffmpeg-devel
2025-01-23 18:01   ` Romain Beauxis
2025-01-23 18:31     ` Kieran Kunhya via ffmpeg-devel
2025-01-24 18:14       ` Romain Beauxis

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20250119222239.GU4991@pb2 \
    --to=michael@niedermayer.cc \
    --cc=ffmpeg-devel@ffmpeg.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

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