View Full Version : Versatile Video Coding (VVC) / H.266: HEVC successor
MartinEesmaa
9th April 2023, 13:21
Hi, Gravitator!
It seems vvencapp reported an error message of your sample file:
Parameter Check Error: Detected non-standard Frame Rate 13978/583 (23.98 Hz). Default TicksPerSecond (27000000) can not be used. possible TicksPerSecond: 8149174
You need to add --tickspersec -1 or possible number of console said example 8149174 on vvencapp console command to encode probably VVC video.
I encoded your sample file on my FFmpeg VVCEasy command, but three duplicated frames:
ffmpeg_vvceasy -i space_6s.mkv -c:v libvvenc -preset faster -b:v 0 -qp 30 y4m.266
frame= 149 fps= 16 q=0.0 Lsize= 902kB time=00:00:05.96 bitrate=1238.5kbits/s dup=3 drop=0 speed=0.631x
video:902kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.000000%
- Martin Eesmaa
Gravitator
9th April 2023, 13:36
It doesn't help.
MartinEesmaa
9th April 2023, 13:39
Why it doesn't help?
I know why ticks per second could be quite moderate difficult, but I hope Multicoreware x266 encoder doesn't need ticks per second necessary, so we should wait a little bit to get x266 encoder in H2 2023.
Here is the transcoded from your matroska sample file to Y4M report:
YUV4MPEG2 W1920 H1080 F13978:583 Ip A1:1 C420mpeg2 XYSCSS=420MPEG2
Try change from F13978:583 to F24000:1001 without using tickspersecond command.
- Martin Eesmaa
Gravitator
9th April 2023, 13:49
The output of the parameter validation error continues.
Gravitator
9th April 2023, 13:52
This problem has a connection with the output of yuv4mpegpipe (rawvideo goes without an error).
MartinEesmaa
9th April 2023, 13:59
Oh ok, I see the rawvideo does not have problems, but Y4M does only some errors for some reasons of frame rate per second.
I looked issue for reference: https://github.com/fraunhoferhhi/vvenc/issues/252.
This could be bug for Fraunhofer HHI VVC encoder.
Maybe I encoded your sample file to libx264 with matroska container without duplicates frames, but encoding to raw bitstream reports duplicate frames. So I think VVC matroska is not finished yet.
I think Fraunhofer HHI VVC encoder is experimental I'd say, but I recommend we wait for Multicoreware x266 encoder or just make issue/discussion to vvenc github repository.
- Martin Eesmaa
Gravitator
9th April 2023, 14:29
They are already treating > https://github.com/fraunhoferhhi/vvenc/pull/255
Gravitator
9th April 2023, 15:30
Replace --tickspersecond -1 with --tickspersec -1 > It's going fine now :o
MartinEesmaa
10th April 2023, 01:03
Sorry, my bad. It's tickspersec, not tickspersecond. I hope the tickspersec -1 is gonna encode probably.
- Martin Eesmaa
Yups
16th April 2023, 21:56
chipsandcheese compared HEVC, AV1, VVC....interesting read.
Codecs for the 4K Era: HEVC, AV1, VVC and Beyond (https://chipsandcheese.com/2023/04/16/codecs-for-the-4k-era-hevc-av1-vvc-and-beyond/)
birdie
17th April 2023, 08:38
chipsandcheese compared HEVC, AV1, VVC....interesting read.
Codecs for the 4K Era: HEVC, AV1, VVC and Beyond (https://chipsandcheese.com/2023/04/16/codecs-for-the-4k-era-hevc-av1-vvc-and-beyond/)
From the research: "VVenC is still in heavy development and doesn’t currently support CRF. Therefore, we use the next best option – two-pass variable bitrate (VBR) – for VVC"
What? What version did they use? From 2 years ago?
From https://github.com/fraunhoferhhi/vvenc/wiki/Usage
--qp,-q 32 Quantization parameter (0..63)
which is basically CRF.
nevcairiel
17th April 2023, 09:19
QP and CRF is not the same. CRF will modify the QP to compensate for frame complexity, providing similar "perceived" quality for all frames, while keeping bitrate in check.
Constant QP is the simplest compression mode you can think of, really, as you don't do any rate-control at all.
hajj_3
17th April 2023, 16:47
What? What version did they use? From 2 years ago?
it says they used v1.7.0 which was released 5 months ago.
birdie
22nd May 2023, 11:21
A native VVC decoder has been submitted to FFmpeg: https://www.mail-archive.com/ffmpeg-devel@ffmpeg.org/#147681
There's a number of objections, so it's not yet a done deal.
Dann0245
31st May 2023, 02:41
Is VVC film grain synthesis real?
https://github.com/fraunhoferhhi/vvenc/issues/278
quietvoid
31st May 2023, 12:55
Film grain synthesis in VVC would probably be based on the H.274 Film grain characteristics SEI.
Given HEVC supports it, I assume VVC will as well.
benwaggoner
1st June 2023, 23:32
Film grain synthesis in VVC would probably be based on the H.274 Film grain characteristics SEI.
Given HEVC supports it, I assume VVC will as well.
The AV1 FGS implementation seems richer (although still with its own issues). And it's entirely post processing. I've heard interest in letting VVC be able to access that mode as well via SEI.
ShortKatz
29th June 2023, 23:39
A native VVC decoder has been submitted to FFmpeg: https://www.mail-archive.com/ffmpeg-devel@ffmpeg.org/#147681
There's a number of objections, so it's not yet a done deal.
Seems some parts have been checked in to the main code now. But I have no idea which parts and which VVC functions FFmpeg now has.
birdie
4th July 2023, 10:29
Seems some parts have been checked in to the main code now. But I have no idea which parts and which VVC functions FFmpeg now has.
Native VVC support is a go! I guess we'll have preliminary support very soon, in less than a month.
ShortKatz
5th July 2023, 19:59
Native VVC support is a go! I guess we'll have preliminary support very soon, in less than a month.
That would be wonderful. At the moment the decoder/encoder is still missing. You can mux a VVC stream from e.g. a MP4 container into a MKV container. But converting the VVC stream into any other format fails. Same for converting any video stream into VVC.
birdie
6th July 2023, 11:14
That would be wonderful. At the moment the decoder/encoder is still missing. You can mux a VVC stream from e.g. a MP4 container into a MKV container. But converting the VVC stream into any other format fails. Same for converting any video stream into VVC.
Muxer/demuxer/bitstream parser are already in. Decoder is on its way.
It's quite possible FFmpeg 6.1 will support VVC decoding. 6.2 surely will.
Sadly we have next to zero consumer devices supporting HW VVC decoding aside from two TV set models, that's it. Software VVC decoding is quite taxing though vvdec is not yet fully optimized, hopefully FFMpeg will be.
FranceBB
6th July 2023, 13:44
Muxer/demuxer/bitstream parser are already in. Decoder is on its way.
It's quite possible FFmpeg 6.1 will support VVC decoding. 6.2 surely will.
Nice. :D
Hopefully by the end of the years the x266 guys will be ready too with a public release and everything will come together.
So... if everything goes well, in 2024 we might finally begin to see the adoption of H.266, which is a good thing 'cause as soon as people are gonna start putting contents out there, manufacturers will jump in, I'm sure. :)
birdie
6th July 2023, 17:13
Oh, I've just found a huge number of VVC test/sample files (https://www.itu.int/wftp3/av-arch/jvet-site/bitstream_exchange/) in case someone is interested.
ShortKatz
6th July 2023, 17:34
Muxer/demuxer/bitstream parser are already in. Decoder is on its way.
It's quite possible FFmpeg 6.1 will support VVC decoding. 6.2 surely will.
This would be nice. If decoding works, then apps that are based on FFmpeg, like HandBrake, will support opening VVC files.
Sadly we have next to zero consumer devices supporting HW VVC decoding aside from two TV set models, that's it. Software VVC decoding is quite taxing though vvdec is not yet fully optimized, hopefully FFMpeg will be.
I'm pretty sure, if we have VVC software support, hardware support will follow. There is already the MediaTek Pentonic series and the Realtek RTD1319D that supports VVC.
benwaggoner
6th July 2023, 17:49
This would be nice. If decoding works, then apps that are based on FFmpeg, like HandBrake, will support opening VVC files.
And getting decoding working is the easiest and most essential aspect of getting the whole ecosystem working. If you can't play back, you can't troubleshoot!
I'm pretty sure, if we have VVC software support, hardware support will follow. There is already the MediaTek Pentonic series and the Realtek RTD1319D that supports VVC.
Hardware is coming regardless, but software decoders are very valuable to an ecosystem as well. I've heard from multiple sources that VVC decoders are simpler and require less compute than AV1 decoders, and thus will be faster to get well optimized. That said, getting a good AV1 SW decoder made was a high priority for AOM, and I don't know that anyone is putting equivalent engineering effort into SW VVC decoders at this point.
FranceBB
6th July 2023, 18:16
This would be nice. If decoding works, then apps that are based on FFmpeg, like HandBrake, will support opening VVC files.
Yep, once FFMpeg is a done deal with libav, we'll have indexers in Avisynth and VapourSynth, decoders in MPV, VLC and plenty of other players, support in programs like VirtualDub, Avidemux, Xmedia Recode etc etc etc.
I mean, nowadays pretty much everything relies on it (not necessarily on FFMpeg itself, but rather on libavcodec), so if it truly is an internal decoder and not an external one (like VVDec), then I would expect it to be in libav and therefore everything using libav will "automagically" gain support. :)
If you can't play back, you can't troubleshoot!
pretty much xD
vahid
9th July 2023, 12:41
Hi. I don't know I should ask my question here or not. However, How do I go about extracting motion vectors from vtm software for VVC and have the value of each motion vector?
For example for GOP: I P P P ... or I P B B B P
Jamaika
9th July 2023, 13:27
Hi. In libbpg for jvetvvc 19.2 GOP : I P P P ... use:
if (s->params.intra_only) {
add_opt(&argc, argv, "--BitstreamFile=image.vvc");
add_opt(&argc, argv, "--GOPSize=1");
add_opt(&argc, argv, "--DecodingRefreshType=1");
add_opt(&argc, argv, "--IntraPeriod=1");
add_opt(&argc, argv, "--OnePictureOnlyConstraintFlag=1");
add_opt(&argc, argv, "--GciPresentFlag=1");
add_opt(&argc, argv, "--Level=15.5");
add_opt(&argc, argv, "--Tier=high");
add_opt(&argc, argv, "--SearchRange=64");
add_opt(&argc, argv, "--CIIP=0");
add_opt(&argc, argv, "--AffineAmvr=0");
add_opt(&argc, argv, "--LMCSUpdateCtrl=1");
add_opt(&argc, argv, "--LMCSOffset=0");
add_opt(&argc, argv, "--ISPFast=1");
add_opt(&argc, argv, "--FastMIP=1");
add_opt(&argc, argv, "--FastLFNST=1");
add_opt(&argc, argv, "--FastLocalDualTreeMode=0");
add_opt(&argc, argv, "--AffineAmvrEncOpt=0");
add_opt(&argc, argv, "--MmvdDisNum=8");
add_opt(&argc, argv, "--TemporalSubsampleRatio=8");
} else {
add_opt(&argc, argv, "--BitstreamFile=animation.vvc");
add_opt(&argc, argv, "--GOPSize=1");
add_opt(&argc, argv, "--DecodingRefreshType=2");
add_opt(&argc, argv, "--IntraPeriod=-1");
add_opt(&argc, argv, "--FastSearch=1");
add_opt(&argc, argv, "--SearchRange=96");
add_opt(&argc, argv, "--BipredSearchRange=4");
add_opt(&argc, argv, "--IntraQPOffset=-1");
add_opt(&argc, argv, "--LambdaFromQpEnable=1");
add_opt(&argc, argv, "--CIIP=1");
add_opt(&argc, argv, "--AffineAmvr=0");
add_opt(&argc, argv, "--LMCSUpdateCtrl=2");
add_opt(&argc, argv, "--LMCSOffset=1");
add_opt(&argc, argv, "--AllowDisFracMMVD=1");
add_opt(&argc, argv, "--ISPFast=0");
add_opt(&argc, argv, "--FastMIP=0");
add_opt(&argc, argv, "--FastLocalDualTreeMode=2");
add_opt(&argc, argv, "--MaxMergeRdCandNumTotal=5");
add_opt(&argc, argv, "--AffineAmvrEncOpt=0");
add_opt(&argc, argv, "--MmvdDisNum=6");
add_opt(&argc, argv, "--ALFAllowPredefinedFilters=1");
add_opt(&argc, argv, "--ALFStrengthTargetLuma=1.0");
add_opt(&argc, argv, "--ALFStrengthTargetChroma=1.0");
add_opt(&argc, argv, "--CCALFStrengthTarget=1.0");
add_opt(&argc, argv, "--EncDbOpt=1");
for(i = 0; i < s->frame_count - 1; i++) {
snprintf(buf, sizeof(buf), "--Frame%d=P 1 4 -6.5 0.2590 0 0 1.0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0", i + 1);
add_opt(&argc, argv, buf);
}
add_opt(&argc, argv, "--DeblockingFilterOffsetInPPS");
add_opt(&argc, argv, "--DeblockingFilterOffsetInPPS=1");
add_opt(&argc, argv, "--DeblockingFilterDisable=0");
add_opt(&argc, argv, "--DeblockingFilterBetaOffset_div2=-2");
add_opt(&argc, argv, "--DeblockingFilterTcOffset_div2=0");
add_opt(&argc, argv, "--DeblockingFilterCbBetaOffset_div2=-2");
add_opt(&argc, argv, "--DeblockingFilterCbTcOffset_div2=0");
add_opt(&argc, argv, "--DeblockingFilterCrBetaOffset_div2=-2");
add_opt(&argc, argv, "--DeblockingFilterCrTcOffset_div2=0");
add_opt(&argc, argv, "--TemporalFilter=0");
add_opt(&argc, argv, "--RateControl=0");
add_opt(&argc, argv, "--TargetBitrate=1000000");
add_opt(&argc, argv, "--KeepHierarchicalBit=2");
add_opt(&argc, argv, "--LCULevelRateControl=1");
add_opt(&argc, argv, "--RCLCUSeparateModel=1");
add_opt(&argc, argv, "--InitialQP=0");
add_opt(&argc, argv, "--RCForceIntraQP=0");
}
vahid
10th July 2023, 07:03
:thanks:thanksHi. In libbpg for jvetvvc 19.2 GOP : I P P P ... use:
add_opt(&argc, argv, "--CabacZeroWordPaddingEnabled=0");
add_opt(&argc, argv, "--VideoSignalTypePresent=0");
//add_opt(&argc, argv, "--MaxBytesPerPicDenom=0");
add_opt(&argc, argv, "--SEIToneMapExposureCompensationValueDenomIdc=0");
add_opt(&argc, argv, "--SEIChromaResamplingHorizontalFilterType=0");
add_opt(&argc, argv, "--SEIChromaResamplingVerticalFilterType=0");
add_opt(&argc, argv, "--SEIKneeFunctionNumKneePointsMinus1=0");
add_opt(&argc, argv, "--ChromaLocInfoPresent=0");
add_opt(&argc, argv, "--ConstrainedIntraPred=1");
add_opt(&argc, argv, "--Profile=main_444_16");
add_opt(&argc, argv, "--IntraPeriod=250");
add_opt(&argc, argv, "--DecodingRefreshType=1");
add_opt(&argc, argv, "--ReWriteParamSetsFlag=1");
int gop_size = 1;
snprintf(buf, sizeof(buf), "--GOPSize=%d", gop_size);
add_opt(&argc, argv, buf);
for(i = 0; i < gop_size; i++) {
snprintf(buf, sizeof(buf), "--Frame%d=P 1 3 0 0.4624 0 0 1.0 0 0 0 1 1 -1 0 0 0 0", i + 1);
add_opt(&argc, argv, buf);
}
CodecWar
17th July 2023, 09:28
Introduction:
In the realm of video coding, two prominent contenders, VVC (Versatile Video Coding) and AV1 (AOMedia Video 1), have been vying for the throne of next-generation video compression. A recent comparative study sheds light on the performance disparities between these codecs, providing valuable insights into their strengths and weaknesses. In this article, we delve into the study's findings, methodology, and implications for video enthusiasts and industry professionals.
Source : https://codecwar.com
Study Highlights:
The study examined 62 diverse video streams and drew several significant conclusions:
VVC Takes the Lead:
On average, the VVC reference codec outperformed AV1, delivering superior video quality. The study indicated that AV1 trailed behind VVC by approximately 7.12% across all analyzed video streams.
Codec Specifications:
The study employed VTM (Versatile Video Coding Test Model) implementation, revision 17.0, with the RA (Random Access) configuration, as the reference VVC codec. Meanwhile, AV1 was evaluated using the libAOM (AOMedia codec library) implementation, revision av1-normative, with the RA configuration.
Methodology:
To facilitate a fair and objective comparison, the study employed a BD-Rate (Bjontegaard Delta Rate) analysis with AOM PCHIP (Piecewise Cubic Hermite Interpolating Polynomial) interpolation. This method allowed for precise measurement and comparison of the PSNR (Peak Signal-to-Noise Ratio): Y metric, widely utilized to gauge video quality.
Implications and Future Prospects:
The findings of this comparative study have several implications for the video coding landscape. While VVC emerged as the stronger performer in the analyzed scenarios, AV1 should not be dismissed outright. The open-source nature of AV1, coupled with ongoing development and refinement efforts, presents the possibility of future improvements, narrowing the performance gap between the two codecs.
Additionally, industry professionals should consider the specific requirements of their use cases. Factors such as available bandwidth, hardware support, and compatibility across devices and platforms must be weighed when selecting a video codec. Both VVC and AV1 have unique features and advantages that make them suitable for different applications.
Conclusion:
The comparative study between VVC and AV1 has shed light on the performance disparities between these codecs. While VVC demonstrated superior video quality in this particular study, the dynamic nature of video coding warrants continuous evaluation and exploration. As technology advances and requirements evolve, the choice of a video codec should be carefully considered based on the specific needs of each scenario.
Research visualization:
http://forum.doom9.org/attachment.php?attachmentid=18436&stc=1&d=1689581413
http://forum.doom9.org/attachment.php?attachmentid=18437&stc=1&d=1689581432
http://forum.doom9.org/attachment.php?attachmentid=18438&stc=1&d=1689581459
http://forum.doom9.org/attachment.php?attachmentid=18439&stc=1&d=1689581475
FULL REPORT with all the charts (avaliable after registration) :
https://codecwar.com/compare/vvc-vs-av1
Jamaika
17th July 2023, 17:28
I answer. How can you compile with frames IPPPP in jvetvvc?
It's complicated because jvetvvc has lot of features. Each new version of the codec may have changed functions.
JVETVVC has P/B frame limiter to 64. This can be increased by changing the MAX_GOP value.
How to decode such movie? Using jvetvvc decoder in this case only version 21.0.
Does ffvvc decode 444/420/rgb videos? Currently not decoding.
Example below:
del *.png
del *.jpg
ffmpeg_rsvg.exe -y -i "video.mp4" -s 360x180 -frames:v 33 image%%d.png
bpgenc_jvetvvc.exe -v -a -q 0 -b 8 -f 444 -c ycbcr_bt709 -m 9 image%%d.png -o output3.bpg
DecoderApp.exe -b animation.vvc -d 8 --SEIDecodedPictureHash=0 -o animation.yuv
ffplay_vvc.exe animation.vvc
birdie
17th July 2023, 18:15
I answer. How cam you compile an IPPPP movie in jvetvvc?
It's complicated because jvetvvc has lot of features and is test codec.
JVETVVC has P/B frame limiter of 64. This can be increased by changing the MAX_GOP value.
How to decode such a movie? Using jvetvvc decoder version 21.0.
The above functions are obsolete because they were for version 14.0
Does ffvvc decode 444/420/rgb videos? Currently not decoding.
Example below:
del *.png
del *.jpg
ffmpeg_rsvg.exe -y -i "video.mp4" -s 360x180 -frames:v 33 image%%d.png
bpgenc_jvetvvc.exe -v -a -q 0 -b 8 -f 444 -c ycbcr_bt709 -m 9 image%%d.png -o output3.bpg
ffplay_vvc.exe animation.vvc
Could you run whatever you had in mind through Deepl or Google Translate? It's really hard to understand what you meant.
LigH
17th July 2023, 22:15
New uploads: [Windows][GCC 13.1.0][64 bit]
VTM Encoder/Decoder Version 21.0 (https://www.mediafire.com/file/6yc9vdich3onw4j/VTM_21.0_d4aa80320.7z/file) d4aa80320
Fraunhofer VVC Encoder ver. 1.9.0-rc2 (https://www.mediafire.com/file/2ggyubnpsxarp13/vvenc_1.9.0-rc2-3fcfd93.7z/file) 3fcfd93
Fraunhofer VVC Decoder ver. 2.1.0 (https://www.mediafire.com/file/3p9gpvhehlhkml3/vvdec_2.1.0-5b31cd4.7z/file) 5b31cd4
Jamaika
18th July 2023, 05:18
Could you run whatever you had in mind through Deepl or Google Translate? It's really hard to understand what you meant.
There is nothing to understand. Example below with P frame limiter to 1024. I don't have time for that because there are still bugs in libbpg/jvet. This is the general scheme.
Why is it presented so intricately?
Manually typing functions in EncoderApp.exe --FrameX from 1 to 10000 is a bit of a hassle.
There is no way to add only P-frames in vvenc.
https://www.sendspace.com/file/o5c3fd
benwaggoner
18th July 2023, 17:46
There is nothing to understand. Example below with P frame limiter to 1024. I don't have time for that because there are still bugs in libbpg/jvet. This is the general scheme.
Why is it presented so intricately?
Manually typing functions in EncoderApp.exe --FrameX from 1 to 10000 is a bit of a hassle.
W vvenc nie ma możliwości dodawania tylko samych klatek P.
There is no way to add only P-frames in vvenc.
Is the goal to have 0 b-frames here? Can't that be set directly?
Jamaika
18th July 2023, 18:41
That's how I understood user vahid. For libbpg these frames-P called it as animated video in jvet(HM) HEVC .
I don't know what libheif came up with because he was supposed to add the vvc codec.
vahid
19th July 2023, 08:54
Ok. Thanks. I have two issues with VTM. 1) Can I have every desired GOP? even if it includes multiple P frames, such as I P P P P P? If it is so complicated, a simpler GOP structure like I P B B B P or I P B B .... is appropriate.
2) The main goal is to have the value of motion vectors that encoder send to channel. I want to extract only these values. However, it is important to have the motion vectors for each frame separately, as well as the values of each individual motion vector. Thus if I have motion vectors for a GOP structure such as I P B B B P, it would be very helpful.
Jamaika
19th July 2023, 16:38
Originally GOP Size must be between 1 and 64. For IPPP... GOP is always 1.
Motion vectors details are set in CTUsize. For jvetvvc this will be a problem. In the given example ctusize is added 32 when standard is 128. Unfortunately codec doesn't have thread support so you wait 20 minutes for FullHD screenshot.
https://www.mainconcept.com/mainconcept-and-fraunhofer-iis-to-showcase-the-future-of-video-and-audio-with-vvc-and-mpeg-h-audio
https://www.youtube.com/watch?v=mtaC_lQO2-4
I think that in a year MainConcept VCC codecs will be in all paid editors and it will be the easiest way for you to test the movie.
vahid
22nd July 2023, 09:43
Thanks a lot. Howeverو I only want to have value of motion vectors separately for usual GOP. Is it so complicated or is it impossible now?
birdie
23rd July 2023, 11:34
GStreamer is working on a VVC demuxer/parser/decoder (using vvdec): https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2842
And a free MacOS video player with full VVC decoding support has been released: https://www.elmedia-video-player.com/
Things are moving.
birdie
23rd July 2023, 11:53
And here's a 2023 codec adoption roadmap from Rethink Technology Research:
vahid
29th July 2023, 13:20
How about PUs of I frames? extract the 4x4's PUs of each I frame separately in VVCSoftware_VTM?
Jamaika
30th July 2023, 06:03
I don't think this is question for this forum. You have to be codec developer.
https://stackoverflow.com/questions/28014901/why-does-hm-subdivide-a-cu-into-pus-with-identical-mvs
These are the functions for JCTVC HEVC
ctu->getTotalNumPart() == 256
ctu->getDepth(48) == 3
ctu->getPredictionMode(48) == INTER_MODE
ctu->getPartitionSize(48) == Nx2N
https://cdnintech.com/media/chapter/52002/1512345123/media/fig1.png
https://www.intechopen.com/chapters/52002
extract the 4x4's PUs of each I frame separately in VVCSoftware_VTM?
ptu->getTotalNumPart() == 256
ptu->getDepth(48) == 5
ptu->getPredictionMode(48) == INTRA_MODE
ptu->getPartitionSize(48) == NxN
Your case is definitely Intra mode and depth 5. For VVC max CU is 128x128. I just don't know what the function equivalents are in JVETVVC. Officially JVETVVC isn't PTU function
partitioner.currPartIdx() == 256
partitioner.currDepth == 5
vahid
30th July 2023, 20:05
:thanks:I don't think this is question for this forum. You have to be codec developer.
https://stackoverflow.com/questions/28014901/why-does-hm-subdivide-a-cu-into-pus-with-identical-mvs
These are the functions for JCTVC HEVC
ctu->getTotalNumPart() == 256
ctu->getDepth(48) == 3
ctu->getPredictionMode(48) == INTER_MODE
ctu->getPartitionSize(48) == Nx2N
https://cdnintech.com/media/chapter/52002/1512345123/media/fig1.png
https://www.intechopen.com/chapters/52002
extract the 4x4's PUs of each I frame separately in VVCSoftware_VTM?
ptu->getTotalNumPart() == 256
ptu->getDepth(48) == 5
ptu->getPredictionMode(48) == INTRA_MODE
ptu->getPartitionSize(48) == NxN
Your case is definitely Intra mode and depth 5. For VVC max CU is 128x128. I just don't know what the function equivalents are in JVETVVC. Officially JVETVVC isn't PTU function
partitioner.currPartIdx() == 256
partitioner.currDepth == 5
birdie
3rd August 2023, 19:59
MSU has released "MSU Video Codecs Comparison 2022 (https://www.compression.ru/video/codec_comparison/2022/main_report.html)".
Tencent-TVC and Tencent266 codecs have beaten everything under the sun but you cannot download or use either.
And here's a August 2023 VVC adoption report (https://www.streamingmedia.com/Articles/ReadArticle.aspx?ArticleID=159880) from Streaming Media.
Meanwhile there's been no news in regard to x266 but H2 is not over yet.
Atak_Snajpera
4th August 2023, 16:33
MSU has released "MSU Video Codecs Comparison 2022 (https://www.compression.ru/video/codec_comparison/2022/main_report.html)".
Tencent-TVC and Tencent266 codecs have beaten everything under the sun but you cannot download or use either.
And here's a August 2023 VVC adoption report (https://www.streamingmedia.com/Articles/ReadArticle.aspx?ArticleID=159880) from Streaming Media.
Meanwhile there's been no news in regard to x266 but H2 is not over yet.
Chinese BS...
birdie
13th August 2023, 09:56
Out of tree native VVC decoder for FFMpeg is now complete (https://github.com/ffvvc/FFmpeg/commit/a8d6e82539a19187129ae2f8510aa54791fc9131).
Now idea when it's gonna get merged.
Jamaika
13th August 2023, 10:20
Out of tree native VVC decoder for FFMpeg is now complete (https://github.com/ffvvc/FFmpeg/commit/a8d6e82539a19187129ae2f8510aa54791fc9131).
Now idea when it's gonna get merged.
Decoder is currently only 10bit 420/422 and doesn't support Intra Block Copy and Palette.
https://i.ibb.co/H7rPrVt/uiecfbv.png
PatchWorKs
18th August 2023, 17:29
On the other hand, it's the first time I hear about xin26x which could develop into a good encoder suite if the developers ever get to a stage where some effort is spent on subjective tuning.
Well, just discovered it on GH:
Xin26x is an univeral video encoder framework, which can accommodate all video coding standard on this planet so far.
It is optimized for real time video communication, live streaming application and offline video encoding.
It currently supports HEVC, AV1(I frame), VVC video coding standards.
It is a very high performance encoder.
It is well-structured for understandability, maintainability and scalability.
It is written from scratch and has a plain C API to enable a simple integration into other software.
It is very small footprint encoder, it takes very small memory requirement under restricted mode.
According to the Git (https://github.com/pigpeppa/xin26x), it's buildable and working (even if not complete -> check Todos (https://github.com/pigpeppa/xin26x#todo-lists))
Does anyone tested it ?
ShortKatz
30th August 2023, 21:44
Out of tree native VVC decoder for FFMpeg is now complete (https://github.com/ffvvc/FFmpeg/commit/a8d6e82539a19187129ae2f8510aa54791fc9131).
Now idea when it's gonna get merged.
Hope this gets merged soon into FFmpeg master. But the thread executor is also still missing.
http://ffmpeg.org/pipermail/ffmpeg-devel/2023-August/313669.html
Edit: Now it is not missing anymore.
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.