Welcome to Doom9's Forum, THE in-place to be for everyone interested in DVD conversion. Before you start posting please read the forum rules. By posting to this forum you agree to abide by the rules.

 Doom9's Forum Rate control for I-frames in HM 16.7
 User Name Remember Me? Password
 Register FAQ Calendar Search Today's Posts Mark Forums Read

 Thread Tools Search this Thread Display Modes
 21st March 2016, 15:02 #1  |  Link damjeux Registered User   Join Date: Apr 2015 Posts: 7 Rate control for I-frames in HM 16.7 Hi, I'm trying to understand the rate control algorithm in the HM 16.7 reference software. I have the paper "lambda domain rate control algorithm for High Efficiency Video Coding" by B. Li et al which explains how the Lagrange multiplier lambda for the RDO is found based on a model with 2 parameters (alpha and beta). I can see how this is applied to P and B frames in HM: Code: `estLambda = alpha * pow( bpp, beta );` However, the lambda calculation for I-frames is different. It is calculated in TEncRCPic::calculateLambdaIntra as: Code: `(alpha/256.0) * pow( MADPerPixel/bitsPerPixel, beta )` First question: Where does this formula come from? Can anyone explain or give a reference where I could look it up? Then, as you can see from the code above, the calculation is based on the "MADPerPixel", where I assume MAD stands for Mean Absolute Difference. However, when calculateLambdaIntra is called in TEncRCPic::estimatePicLambda, MADPerPixel is given as: Code: `pow(m_totalCostIntra/(Double)m_numberOfPixel, 1.2517)` If I look where m_totalCostIntra comes from, I see it is calculated in TEncSlice::calCostSliceI as a sum of Hadamard transforms of 8x8 blocks of the frame. Second question: Why is a sum of Hadamard calculated here? What is the link to the calculation of lambda? Any explanation or link to some explaining references would be greatly appreciated!
 22nd March 2016, 09:14 #2  |  Link foxyshadis ангел смерти     Join Date: Nov 2004 Location: Lost Posts: 9,555 You should direct this query to the JCT-VC mailing list. I watched the development of what became HM (TMuC) but I don't recall ever seeing that or the rationale; it's a pretty obscure thing. Note that this isn't actually part of HEVC at all, that's just an encoder-side formula that any encoder can modify, and most do.

 Tags hm encoder, rate control

 Thread Tools Search this Thread Search this Thread: Advanced Search Display Modes Linear Mode

 Posting Rules You may not post new threads You may not post replies You may not post attachments You may not edit your posts BB code is On Smilies are On [IMG] code is On HTML code is Off Forum Rules
 Forum Jump User Control Panel Private Messages Subscriptions Who's Online Search Forums Forums Home Announcements and Chat     General Discussion     News     Forum / Site Suggestions & Help General     Decrypting     Newbies     DVD2AVI / DGIndex     Audio encoding     Subtitles     Linux, Mac OS X, & Co Capturing and Editing Video     Avisynth Usage     Avisynth Development     VapourSynth     Capturing Video     DV     HDTV / DVB / TiVo     NLE - Non Linear Editing     VirtualDub, VDubMod & AviDemux     New and alternative a/v containers Video Encoding     (Auto) Gordian Knot     MPEG-4 ASP     MPEG-4 Encoder GUIs     MPEG-4 AVC / H.264     High Efficiency Video Coding (HEVC)     New and alternative video codecs     MPEG-2 Encoding     VP9 and AV1 (HD) DVD, Blu-ray & (S)VCD     One click suites for DVD backup and DVD creation     DVD & BD Rebuilder     (HD) DVD & Blu-ray authoring     Advanced authoring     IFO/VOB Editors     DVD burning Hardware & Software     Software players     Hardware players     PC Hard & Software Programming and Hacking     Development     Translations

All times are GMT +1. The time now is 11:20.

 Doom9.org - Archive - Top

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2023, vBulletin Solutions Inc.