From: Nuo Mi <nuomi2021@gmail.com> To: FFmpeg development discussions and patches <ffmpeg-devel@ffmpeg.org> Subject: Re: [FFmpeg-devel] Let us review and collebrate on vvc native decoder. Date: Sat, 14 Jan 2023 23:15:42 +0800 Message-ID: <CAFXK13d95YMkeXDtsjTAaBL2HStbtqywnRm4GGNmcS187Mf_GQ@mail.gmail.com> (raw) In-Reply-To: <CAEEMt2kY-jerdWASd=v433iWeBU-MfGj=UcNKONpdSop=vbdZg@mail.gmail.com> Hi Ronald, Thank you for the detailed comment. You read code really quickly. On Sat, Jan 14, 2023 at 10:28 PM Ronald S. Bultje <rsbultje@gmail.com> wrote: > Hi, > > On Sat, Jan 14, 2023 at 8:32 AM Nuo Mi <nuomi2021@gmail.com> wrote: > > > On Sat, Jan 14, 2023 at 9:13 PM Nuo Mi <nuomi2021@gmail.com> wrote: > > > I am happy to send out the first draft of vvc decoder. > > > It's not ready for upstream yet, but it's a good base ground for review > > > and future improvement. > > > > > > It has the following features: > > > * C only > > > + Fast. On a 4 cores laptop, it can get 30~35+ fps for 10bits 1080P. > > > + Support traditional features I, P B frames, 8/10 bits, chroma > 400,420, > > > 422, and 444, > > > + Support VVC new tools like MIP, CCLM, AFFINE, GPM, DMVR, PROF, BDOF, > > > LMCS, ALF > > > - Not support RPR, PCM, IBC, PALETTE, and other minor features yet. > > > > > > Please help review the attached patch and provide your valuable > comment. > > > > The custom threading framework (Executor, Task) - can you elaborate on this > further? If this is meant to be used outside (since it lacks VVC prefix), > it should be properly namespaced (FF, AV). It seems like you're trying to > combine row/col/frame threading from vvc_thread.c. These (frame, col/row) > are fairly common in FFmpeg and there already is existing API for that > (although you can't combine them; ask kurosu who IIRC has a private branch > doing this for hevc :-) ). This probably needs some further discussion > depending on what the rest of the community wants. Right now, this adds VVC > private functionality to enable combination of "slice" (row/col) and > "frame" threading, which other codecs wouldn't have. This is probably not a > desirable end state. > Yes. It can be used by other codecs or even filters too. The task allocation, and the task readiness check delegate to the caller. so It gets more flexible from the caller's or executor's view. When I read the hevc code it was a little surprise to me since it can't combine frame and slice threading. I guess it will impact the fps, but I do not have time to provide it. I will check with kurosu offline, It's better to have a unified solution for hevc and vvc. I can follow him if the api can do frame + slice/CTU multi-thread. > Some functions contain av_assert calls, e.g. chroma_mc_bi or > get_luma_weight. Are these not yet implemented or impossible because of > bitstream coding constraints? If former, please use > avpriv_report_missing_feature() so the user is informed of the incomplete > decoding. If the latter, please add a comment and remove #if 0 code. For > other cases of missing features (e.g. PCM), don't silently return 0, but > use avpriv_report_missing_feature() so the user is informed. > Yes. weight prediction and PCM are missing features, it's listed at https://github.com/ffvvc/FFmpeg/issues. I or some kindly contributor will implement it before we upstream it. Thank you for your suggestion, if we can't fix it before upstream, I will use avpriv_report_missing_feature() > How come vvcdsp has only 8/10 bits/component code but vvcpred has 8/9/10/12 > bits/component code? > I will remove it. > Not a lot of comments other than references to the spec... > Before I send out the patch, it's like walking in a dark tunnel. I try my best to get to another side. Not have so much time to polish things. I will add more comments and do some react to make the code more readable. > Is any of the code (e.g. tools such as sao dsp) shareable with HEVC? This > would reduce the total implementation requirement for arch-specific code. > SAO can be fully reused, most inter predict code can be reused, and some parts of intra-predict and deblocking can be reused.. I will create a full list at the github repo. > > Ronald > _______________________________________________ > 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". > _______________________________________________ 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:[~2023-01-14 15:16 UTC|newest] Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top 2023-01-14 13:13 Nuo Mi 2023-01-14 13:32 ` Nuo Mi 2023-01-14 13:53 ` Paul B Mahol 2023-01-14 14:12 ` Nuo Mi 2023-01-14 14:28 ` Ronald S. Bultje 2023-01-14 15:15 ` Nuo Mi [this message] 2023-01-14 15:52 ` Ronald S. Bultje 2023-01-15 9:08 ` Nuo Mi 2023-02-01 14:02 ` Nuo Mi 2023-01-26 12:23 ` Thilo Borgmann 2023-01-26 13:35 ` Nuo Mi
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=CAFXK13d95YMkeXDtsjTAaBL2HStbtqywnRm4GGNmcS187Mf_GQ@mail.gmail.com \ --to=nuomi2021@gmail.com \ --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