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".
next prev 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