Open Dillon14281118 opened 4 years ago
Could you take a look at SVT-AV1 design doc? Both encoders share the same VBR algorithm. Below are processes related to BRC. Initial rate control process: https://github.com/OpenVisualCloud/SVT-AV1/blob/master/Docs/svt-av1-encoder-design.md#initial-rate-control-process Rate control process: https://github.com/OpenVisualCloud/SVT-AV1/blob/master/Docs/svt-av1-encoder-design.md#rate-control-process Let me know if you need further information.
Thank you,it's helpful. When I use Svt-HEVC to encode a 1920x1080 seqs,I set FrameRate=15, RateControlMode=1 TargetBitRate=2048000 in Sample.cfg, I use ffmpeg to calc the PSNR,the PSNR is always a little low. And the actual bitrate is a little high. I want to know why? Is the vbr question?
And I run the same command in VBR mode several times,the result is a little different every time.
https://github.com/OpenVisualCloud/SVT-HEVC#demo-features-and-limitations
When set to encode in VBR mode, the encoder does not produce a bit-exact output from one run to another
You can experiment with -encMode
, which provide you different trade-off between speed and coding efficiency. With lower encMode
, you should get higher PSNR.
Is vbr implemented in EbInitialRateControlProcess.c,EbInitialRateControlReorderQueue.c,EbInitialRateControlResults.c? I want to learn more about vbr.
Yes, BRC algo is mainly in EbInitialRateControlProcess.c and EbRateControlProcess.c. Recommend you read high level encoder arch first, to understand the data and control flow. https://github.com/OpenVisualCloud/SVT-AV1/blob/master/Docs/svt-av1-encoder-design.md#high-level-encoder-architecture https://github.com/OpenVisualCloud/SVT-AV1/blob/master/Docs/svt-av1-encoder-design.md#inter-process-data-and-control-management
Have you compared svt-hevc with other open source codecs like x265,HM?
What't the theory of the VBR in Svt-HEVC? Are there some papers to introduce the VBR algorithm? In Svt-HEVC,which functions implement vbr?