microsoft / microsoft/DCVC

question about DCVC_RT's BDrate against VTM-17.0

Open
#96 5 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
829
Forks
138
Avg merge
1d 2h
Merged PRs (30d)
1

Description

Hello, i use your test suggest to calculate bdrate for DCVC_RT. But my result is far from yours, can you help me?
There are my encode commands:
DCVC_RT:

 python test_video.py 
 --model_path_i cvpr2025_image.pth.tar 
 --model_path_p cvpr2025_video.pth.tar 
--test_config dataset_config_example_yuv420.json 
--rate_num 10 --cuda 1 -w 4 --write_stream 1 --force_zero_thres 0.12 
--output_path dcvcrt_output.json 
--stream_path dcvcrt_out_bin
--force_intra_period -1 --reset_interval 64 --force_frame_num 96 
--check_existing 0 --verbose 2 verbose_json True --calc_ssim True 
--save_decoded_frame True --cuda_idx 4 5 6 7

VTM-17.0 and HM-16.25:

EncoderApp -c encoder_configuration.cfg 
-f 96 -q {qp} --IntraPeriod=-1 --InputFile={src_yuv} 
--SourceWidth={width} --SourceHeight={height} --FrameRate={frame_rate}
--Level=6.2 --InputBitDepth=8 --DecodingRefreshType=2 
-b {output.bin} -o {enc.yuv}

Then I calculate bdrate (use "ave_all_frame_bpp" and "ave_all_frame_psnr") for every seqs, then calculate their average, but the results are far from your paper's.

Image

I also plot the RD curves for every dataset, compare my RDcurve with your paper's RDcurve figures. But they don't fit perfectly(HEVC_C is far from your curve). For example:

UVG

HEVC_C

HEVC_E

I notice that your paper's RDcurve figures are all for a whole dataset, not for a single seq. So I also calculate BDrate for per dataset, results follow as:

Image
which are closer to your paper results, do you calculate bdrate in this way?
Could your answer my questions? Thanks for reading!

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with test_video.py and dataset_config_example_yuv420.json, then compare the DCVC_RT command's frame and rate settings with the VTM-17.0/HM-16.25 EncoderApp invocation. Reproduce the per-sequence and per-dataset BDrate calculations using ave_all_frame_bpp and ave_all_frame_psnr, and compare them with the paper's curves; done means explaining the discrepancy or documenting matching settings.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
machine-learning, testing
Issue type
Bug
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.