Closed Harshitha35 closed 2 years ago
Removed the discussion, no need to duplicate.
About the runtimes. User time is the total time spent on the CPU processing user space code. Elapsed time is the wallclock time, i.e. the time you see on your wallclock elapse between start and end of the execution. Since modern CPUs has multiple cores and VVenC uses that with multithreading, user time is a multiple of the elapsed time. Hope this is clear.
About the DPH SEI, we'll have a look. Didn't test it for a while indeed. Could you share the exact command line for encoding?
From my short current tests, it seems like it does work indeed. Please share the exact command line to see if we can reproduce.
Does this still happen with v1.4.0-rc1?
Thanks for clarifying on the elapsed and user time difference.
Sharing the commandline, sequence.cfg and randomaccess_medium.cfg Commandline:
./vvencFFapp -c randomaccess_medium.cfg -c Catrobot.cfg --qp 37 -o vvenc_medium_Catrobot_37_INTER.vvc >> vvenc_medium_Catrobot_37_INTERlog.txt 2>&1
randomaccess_medium.cfg (Sharing it in text format as GIT doesn't support .cfg files)
#======== File I/O =====================
BitstreamFile : str.bin
ReconFile : rec.yuv
#======== Profile ================
Profile : auto
#======== Coding Structure =============
IntraPeriod : 32 # Period of I-Frame ( -1 = only first)
DecodingRefreshType : 1 # Random Accesss 0:none, 1:CRA, 2:IDR, 3:Recovery Point SEI
GOPSize : 32 # GOP Size (number of B slice = GOPSize-1)
IntraQPOffset : -3
LambdaFromQpEnable : 1 # see JCTVC-X0038 for suitable parameters for IntraQPOffset, QPoffset, QPOffsetModelOff, QPOffsetModelScale when enabled
# Type POC QPoffset QPOffsetModelOff QPOffsetModelScale CbQPoffset CrQPoffset QPfactor tcOffsetDiv2 betaOffsetDiv2 CbTcOffsetDiv2 CbBetaOffsetDiv2 CrTcOffsetDiv2 CrBetaOffsetDiv2 temporal_id #ref_pics_active_L0 #ref_pics_L0 reference_pictures_L0 #ref_pics_active_L1 #ref_pics_L1 reference_pictures_L1
Frame1 : B 32 -1 0.0 0.0 0 0 1.0 0 0 0 0 0 0 0 2 3 32 64 48 2 2 32 64
Frame2 : B 16 0 -4.9309 0.2265 0 0 1.0 0 0 0 0 0 0 1 2 2 16 32 2 2 -16 16
Frame3 : B 8 0 -4.5000 0.2353 0 0 1.0 0 0 0 0 0 0 2 2 2 8 24 2 2 -8 -24
Frame4 : B 4 3 -5.4095 0.2571 0 0 1.0 0 0 0 0 0 0 3 2 2 4 20 2 3 -4 -12 -28
Frame5 : B 2 5 -4.4895 0.1947 0 0 1.0 0 0 0 0 0 0 4 2 2 2 18 2 4 -2 -6 -14 -30
Frame6 : B 1 6 -5.4429 0.2429 0 0 1.0 0 0 0 0 0 0 5 2 2 1 -1 2 5 -1 -3 -7 -15 -31
Frame7 : B 3 6 -5.4429 0.2429 0 0 1.0 0 0 0 0 0 0 5 2 2 1 3 2 4 -1 -5 -13 -29
Frame8 : B 6 5 -4.4895 0.1947 0 0 1.0 0 0 0 0 0 0 4 2 2 2 6 2 3 -2 -10 -26
Frame9 : B 5 6 -5.4429 0.2429 0 0 1.0 0 0 0 0 0 0 5 2 2 1 5 2 4 -1 -3 -11 -27
Frame10 : B 7 6 -5.4429 0.2429 0 0 1.0 0 0 0 0 0 0 5 2 3 1 3 7 2 3 -1 -9 -25
Frame11 : B 12 3 -5.4095 0.2571 0 0 1.0 0 0 0 0 0 0 3 2 2 4 12 2 2 -4 -20
Frame12 : B 10 5 -4.4895 0.1947 0 0 1.0 0 0 0 0 0 0 4 2 2 2 10 2 3 -2 -6 -22
Frame13 : B 9 6 -5.4429 0.2429 0 0 1.0 0 0 0 0 0 0 5 2 2 1 9 2 4 -1 -3 -7 -23
Frame14 : B 11 6 -5.4429 0.2429 0 0 1.0 0 0 0 0 0 0 5 2 3 1 3 11 2 3 -1 -5 -21
Frame15 : B 14 5 -4.4895 0.1947 0 0 1.0 0 0 0 0 0 0 4 2 3 2 6 14 2 2 -2 -18
Frame16 : B 13 6 -5.4429 0.2429 0 0 1.0 0 0 0 0 0 0 5 2 3 1 5 13 2 3 -1 -3 -19
Frame17 : B 15 6 -5.4429 0.2429 0 0 1.0 0 0 0 0 0 0 5 2 4 1 3 7 15 2 2 -1 -17
Frame18 : B 24 0 -4.5000 0.2353 0 0 1.0 0 0 0 0 0 0 2 2 2 8 24 2 2 -8 8
Frame19 : B 20 3 -5.4095 0.2571 0 0 1.0 0 0 0 0 0 0 3 2 2 4 20 2 2 -4 -12
Frame20 : B 18 5 -4.4895 0.1947 0 0 1.0 0 0 0 0 0 0 4 2 2 2 18 2 3 -2 -6 -14
Frame21 : B 17 6 -5.4429 0.2429 0 0 1.0 0 0 0 0 0 0 5 2 2 1 17 2 4 -1 -3 -7 -15
Frame22 : B 19 6 -5.4429 0.2429 0 0 1.0 0 0 0 0 0 0 5 2 3 1 3 19 2 3 -1 -5 -13
Frame23 : B 22 5 -4.4895 0.1947 0 0 1.0 0 0 0 0 0 0 4 2 3 2 6 22 2 2 -2 -10
Frame24 : B 21 6 -5.4429 0.2429 0 0 1.0 0 0 0 0 0 0 5 2 3 1 5 21 2 3 -1 -3 -11
Frame25 : B 23 6 -5.4429 0.2429 0 0 1.0 0 0 0 0 0 0 5 2 4 1 3 7 23 2 2 -1 -9
Frame26 : B 28 3 -5.4095 0.2571 0 0 1.0 0 0 0 0 0 0 3 2 3 4 12 28 2 2 -4 4
Frame27 : B 26 5 -4.4895 0.1947 0 0 1.0 0 0 0 0 0 0 4 2 3 2 10 26 2 2 -2 -6
Frame28 : B 25 6 -5.4429 0.2429 0 0 1.0 0 0 0 0 0 0 5 2 3 1 9 25 2 3 -1 -3 -7
Frame29 : B 27 6 -5.4429 0.2429 0 0 1.0 0 0 0 0 0 0 5 2 4 1 3 11 27 2 2 -1 -5
Frame30 : B 30 5 -4.4895 0.1947 0 0 1.0 0 0 0 0 0 0 4 2 3 2 14 30 2 2 -2 2
Frame31 : B 29 6 -5.4429 0.2429 0 0 1.0 0 0 0 0 0 0 5 2 3 1 13 29 2 2 -1 -3
Frame32 : B 31 6 -5.4429 0.2429 0 0 1.0 0 0 0 0 0 0 5 2 4 1 3 15 31 2 2 -1 1
#=========== Motion Search =============
FastSearch : 4 # 0:Full search 1:TZ search
SearchRange : 384 # (0: Search range is a Full frame)
ASR : 1 # Adaptive motion search range
MinSearchWindow : 96 # Minimum motion search window size for the adaptive window ME
BipredSearchRange : 4 # Search range for bi-prediction refinement
HadamardME : 1 # Use of hadamard measure for fractional ME
FEN : 1 # Fast encoder decision
FDM : 1 # Fast Decision for Merge RD cost
#======== Quantization =============
QP : 32 # Quantization parameter(0-51)
RDOQ : 1 # RDOQ
RDOQTS : 1 # RDOQ for transform skip
SignHideFlag : 0
#=========== Deblock Filter ============
LoopFilterOffsetInPPS : 1 # Dbl params: 0=varying params in SliceHeader, param = base_param + GOP_offset_param; 1 (default) =constant params in PPS, param = base_param)
LoopFilterDisable : 0 # Disable deblocking filter (0=Filter, 1=No Filter)
LoopFilterBetaOffset_div2 : 0 # base_param: -12 ~ 12
LoopFilterTcOffset_div2 : 0 # base_param: -12 ~ 12
LoopFilterCbBetaOffset_div2 : 0 # base_param: -12 ~ 12
LoopFilterCbTcOffset_div2 : 0 # base_param: -12 ~ 12
LoopFilterCrBetaOffset_div2 : 0 # base_param: -12 ~ 12
LoopFilterCrTcOffset_div2 : 0 # base_param: -12 ~ 12
DeblockingFilterMetric : 0 # blockiness metric (automatically configures deblocking parameters in bitstream). Applies slice-level loop filter offsets (LoopFilterOffsetInPPS and LoopFilterDisable must be 0)
#=========== Misc. ============
InternalBitDepth : 10 # codec operating bit-depth
SEIDecodedPictureHash : 1
CbQpOffset : 0
CrQpOffset : 0
SameCQPTablesForAllChroma : 1
QpInValCb : 17 22 34 42
QpOutValCb : 17 23 35 39
ReWriteParamSets : 1
# General
CTUSize : 128
LCTUFast : 1
DualITree : 1 # separate partitioning of luma and chroma channels for I-slices
MinQTLumaISlice : 8
MinQTChromaISliceInChromaSamples : 4 # minimum QT size in chroma samples for chroma separate tree
MinQTNonISlice : 8
MaxMTTHierarchyDepth : 1
MaxMTTHierarchyDepthISliceL : 2
MaxMTTHierarchyDepthISliceC : 2
MaxNumMergeCand : 6 # Maximum number of merge candidates
# Tools configuration
Affine : 2 # Affine prediction: 0: disabled, 1: vtm, 2: fast
ALF : 1 # Adpative Loop Filter: 0: disabled, 1: enabled
ALFSpeed : 0 # ALF speed (skip filtering of non-referenced frames) [0-1]
AllowDisFracMMVD : 1 # Disable fractional MVD in MMVD mode adaptively
BCW : 0 # Enable Generalized Bi-prediction(Bcw) 0: disabled, 1: enabled, 2: fast
BIO : 1 # Bi-directional optical flow: 0: disabled, 1: enabled
CCALF : 1 # Cross-component Adaptive Loop Filter: 0: disabled, 1: enabled
CIIP : 0 # CIIP mode: 0: disable, 1: vtm, 2: fast, 3: faster
DepQuant : 1 # Dependent quantization: 0: disabled, 1: enabled
DMVR : 1 # Decoder-side Motion Vector Refinement: 0: disabled, 1: enabled
EncDbOpt : 2 # Encoder optimization with deblocking filter 1:default 2:fast
Geo : 3 # Geometric partitioning mode: 0: disabled, 1: vtm, 2: good quality, 3: fast
IMV : 5 # Adaptive MV precision Mode (IMV): 0: disabled, 1:vtm, 2-7: fast modes
ISP : 3 # Intra subpartitions: 0: disabled, 1: enabled, 2: fast, 3: faster
JointCbCr : 1 # Joint coding of chroma residuals: 0: disabled, 1: enabled
LFNST : 1 # LFNST: 0: disabled, 1: enabled
LMChroma : 1 # LMChroma prediction: 0: disabled, 1: enabled
LMCSEnable : 2 # LMCS: 0: disable, 1:enable, 2: use SCC detection to disable for screen coded content
LMCSOffset : 6 # chroma residual scaling offset
LMCSSignalType : 0 # Input signal type: 0:SDR, 1:HDR-PQ, 2:HDR-HLG
LMCSUpdateCtrl : 0 # LMCS model update control: 0:RA, 1:AI, 2:LDB/LDP
MCTF : 2 # GOP based temporal filter (0:off, 1:filter all frames, 2:use SCC detection to disable for screen coded content)
MCTFSpeed : 0 # MCTF Fast Mode (0:best quality .. 4:fast)
MCTFFutureReference : 1 # Enable referencing of future frames in the GOP based temporal filter. This is typically disabled for Low Delay configurations
MIP : 1 # Matrix-based intra prediction: 0: disabled, 1: enabled
FastMIP : 4 # Fast encoder search for MIP 0: disable, 1:vtm, 2-4: fast
MMVD : 3 # Merge mode with Motion Vector Difference: 0: disabled, 1: vtm, 2-4 fast modes
MRL : 1 # MultiRefernceLines
MTS : 0 # Multiple transform selection: 0: disabled, 1: enabled
MTSImplicit : 1 # Implicit MTS (when explicit MTS is off): 0: disabled, 1: enabled
PROF : 1 # Prediction refinement with optical flow for affine mode: 0: disabled, 1: enabled
SAO : 1 # Sample adaptive offset, 0: disabled, 1: enabled
SBT : 0 # Sub-Block Transform for inter blocks: 0: disable, 1: vtm, 2: fast, 3: faster
SbTMVP : 1 # Subblock Temporal Motion Vector Prediction: 0: disabled, 1: enabled
SMVD : 3 # Symmetric MVD 0: disable, 1: vtm, 2: good quality, 3: fast
TMVPMode : 1 # TMVP mode 0: TMVP disable for all slices. 1: TMVP enable for all slices 2: TMVP enable for certain slices only
UseNonLinearAlfChroma : 0 # Non-linear adaptive loop filters for Chroma Channels: 0: disabled, 1: enabled
UseNonLinearAlfLuma : 0 # Non-linear adaptive loop filters for Luma Channel: 0: disabled, 1: enabled
# SCC configuration
FastSearchSCC : 2 # Search mode for SCC (0:use non SCC-search 1:Selective 2:DiamondSCC 3:FastDiamondSCC)
BDPCM : 2 # BDPCM (0: off, 1: luma and chroma, 2: BDPCM with SCC detection)
IBC : 2 # IBC mode: 0: off, 1: IBC, 2: IBC with SCC detection
IBCFastMethod : 3 # Fast methods for IBC: 1: default, [2..6] speedups
TransformSkip : 2 # Transform skipping, 0: disabled, 1: enabled, 2: TransformSkip with SCC detection
ChromaTS : 0 # Chroma transform skip: 0: disabled, 1: enabled
TransformSkipLog2MaxSize : 4
# Fast options
QtbttExtraFast : 3 # Non-VTM compatible QTBTT speed-ups: 0: disabled, 1: enabled
ContentBasedFastQtbt : 0 # Signal based QTBT speed-up: 0: disabled, 1: enabled
PBIntraFast : 1 # Intra mode pre-check dependent on best Inter mode, skip intra if it is not probable: 0: disabled, 1: VTM, 2: relaxed, giving intra more chance
FastMrg : 2 # Fast methods for inter merge: 0: disabled, 1: vtm, 2: fast
FastLocalDualTreeMode : 1 # Fast intra pass coding for local dual-tree in intra coding region: 0: disable, 1: use threshold, 2: one intra mode only
FastSubPel : 1 # Fast sub-pel ME: 0: disabled, 1: enabled
FastIntraTools : 1 # Speedup intra tools: LFNST, ISP, MTS
FastInferMerge : 0 # Fast method to skip Inter/Intra modes. 0: off, [1..4] speedups
ECU : 0 # Early CU setting
IntegerET : 0 # Enable early termination for integer motion search
IntraEstDecBit : 2 # Test every fourth intra directional mode in the first pass
NumIntraModesFullRD : -1 # Number modes for full RD intra search
ReduceIntraChromaModesFullRD : 0 # Reduce modes for chroma full RD intra search
FastTTSplit : 0 # Fast method for TT split
Catrobot.cfg (the usual sequence.cfg)
#======== File I/O ===============
InputFile : CatRobot1_3840x2160_60_10bit.yuv # Input file
InputBitDepth : 10 # Input bitdepth
InputChromaFormat : 420 # Ratio of luminance to chrominance samples
FrameRate : 60 # Frame Rate per second (numerator)
FrameScale : 1 # Frame Scale per second (denominator)
FrameSkip : 0 # Number of frames to be skipped in input
SourceWidth : 3840 # Input frame width
SourceHeight : 2160 # Input frame height
FramesToBeEncoded : 64 # Number of frames to be coded
Threads : 8 # Number of threads
Level : 4.1
Note: Number of frames encoded is variable. We tried with 5, 10, 64, etc. NO luck. We used vvenc 1.3.1 for encoding. We haven't tested with 1.4.1-rc1 The input video - Catrobot is available as a JVET sequence. Hope you are aware of it. Commit: Your commit :)
commit 69469d7ac5de882d9f5e12b24ee87f376df20262 (HEAD -> master, origin/master, origin/HEAD)
Merge: c9bc2d0 88dd2aa
Author: Adam Wieckowski <[70575289+adamjw24@users.noreply.github.com](mailto:70575289+adamjw24@users.noreply.github.com)>
Date: Fri Feb 4 10:54:42 2022 +0100
Merge pull request #131 from lehmann-c/y4m_flush_bugfix
y4m flush/eof bugfix
More details for reproducing: Machine used - Linux CentOS - Intel(R) Xeon(R) Platinum 8180 CPU @ 2.50GHz gcc - gcc (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0 cmake - cmake version 3.22.3 nasm - NASM version 2.13.02
I see the problem. In the vvencFFapp, the -o
argument specifies where to write the reconstructed YUV. The -b
argument specifies the output bitstream. Thats why the output syntax is wrong, because you try to decode the YUV file. Sorry about the inconvenience. It has to do with how we want the FF-app to be kind of similar to the VTM interface.
Thanks for the quick response. It was a mistake from my end. I will change this and go ahead with the encodes. Thanks
Discussed in https://github.com/fraunhoferhhi/vvenc/discussions/147