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.

 

Go Back   Doom9's Forum > Video Encoding > MPEG-4 AVC / H.264

Reply
 
Thread Tools Search this Thread Display Modes
Old 8th October 2013, 09:13   #1  |  Link
xkfz007
Registered User
 
Join Date: Sep 2013
Posts: 38
Transplant the x264 ABR method to HM11.0

Recently, I have been transplanting the x264 ratecontrol methods to HEVC reference software HM11.0. And I have finished the ABR mode. Here is the result:
Sequences Frames Target(kbps) Bitrate(kbps) Accuracy(%) Y-PSNR U-PSNR V-PSNR
BasketballDrill_832x480_50 300 800 803.016 0.377 32.7862 37.3473 37.2791
BasketballDrillText_832x480_50 300 800 811.0227 1.3778375 32.2715 36.4979 36.5234
BasketballPass_416x240_50 300 200 219.404 9.702 30.5966 37.2945 36.1734
BlowingBubbles_416x240_50 300 200 197.424 -1.288 28.0359 34.9153 35.4868
BQMall_832x480_60 300 800 676.9264 -15.3842 31.6436 38.2779 38.5501
BQSquare_416x240_60 300 200 196.5072 -1.7464 26.8742 37.6086 38.0493
Cactus_1920x1080_50 300 4000 3967.7027 -0.8074325 34.7082 37.8691 39.7264
ChinaSpeed_1024x768_30 300 1600 1661.068 3.81675 33.5073 39.2497 38.4519
Flowervase_416x240_30 300 200 223.3656 11.6828 41.532 46.2713 46.0409
Flowervase_832x480_30 300 800 877.0256 9.6282 39.7621 45.3338 45.7795

FourPeople_1280x720_60 300 1800 1830.232 1.679555556 40.3197 44.2148 45.4163
Johnny_1280x720_60 300 1800 1795.1344 -0.270311111 41.9075 46.6944 47.3205
Keiba_416x240_30 300 200 189.7552 -5.1224 33.1761 38.9239 40.1302
Keiba_832x480_30 300 800 756.244 -5.4695 35.5827 40.2041 41.7225
KristenAndSara_1280x720_60 300 1800 1738.176 -3.434666667 41.8724 45.6921 46.6138
Mobisode2_416x240_30 300 200 199.6168 -0.1916 45.9451 46.9067 47.7681
Mobisode2_832x480_30 300 800 802.7856 0.3482 44.4213 46.5975 48.8562
ParkScene_1920x1080_24 240 4000 3896.9968 -2.57508 36.4102 39.493 40.5598
PartyScene_832x480_50 300 800 769.664 -3.792 26.1719 34.4307 34.96
RaceHorses_416x240_30 300 200 197.0144 -1.4928 29.7294 35.1364 36.2337
RaceHorses_832x480_30 300 800 760.7896 -4.9013 31.0715 36.0565 37.7801
SlideEditing_1280x720_30 300 1800 1673.0512 -7.052711111 45.437 44.0271 44.049
SlideShow_1280x720_20 300 1800 1814.7253 0.818072222 51.2019 54.2608 55.352
vidyo1_1280x720_60 300 1800 1822.7408 1.263377778 42.231 45.8006 46.555
vidyo3_1280x720_60 300 1800 1828.992 1.610666667 41.0059 46.6246 45.4719
vidyo4_1280x720_60 300 1800 1685.5088 -6.360622222 40.8668 46.1486 46.3215

For most sequences, the accuracy of bitrate is small, but for some sequences it is big.
In x264, the frame complexity is estimated using SATD and the SATD is calculated through the real prediction of half-resolution frame. For simplicity, during the transplantation, I using the SAD of previous frames to estimate that of current frame. For the first frame, I using the following formula to estimate the SAD:
satd=H*W*1.5*8, H represents Height, W represents Width, 1.5 means number of Luma and Chroma, and 8 is the estimated SAD value of each pixel.

Here, I want someone to give me some advice to solve the big accuracy problem.

Meanwhile, in x264 the cplxr_sum is set as:
rc->cplxr_sum = .01 * pow( 7.0e5, rc->qcompress ) * pow( h->mb.i_mb_count, 0.5 )
So what reasonable value should I set in HM11.0 (using the number of LCU to replace mb.i_mb_count?).
xkfz007 is offline   Reply With Quote
Old 9th October 2013, 17:39   #2  |  Link
LoRd_MuldeR
Software Developer
 
LoRd_MuldeR's Avatar
 
Join Date: Jun 2005
Location: Last House on Slunk Street
Posts: 13,225
Well, ABR can never be 100% accurate, because it doesn't know "what is in the future", it can only make estimates from the frames seen "in the past".

Furthermore, accuracy will usually be much better with longer clips. You have probably been testing with rather short test sequences. If so, those clips simply might have been too short for the ABR algorithm to converge.

Finally, there is the "--ratetol" option, which controls how much the ABR algorithm is allowed to diverge from the target bitrate. You can set a lower value here, but that might result in quality degradation...
__________________
There was of course no way of knowing whether you were being watched at any given moment.
How often, or on what system, the Thought Police plugged in on any individual wire was guesswork.



Last edited by LoRd_MuldeR; 9th October 2013 at 17:44.
LoRd_MuldeR is offline   Reply With Quote
Old 11th October 2013, 09:44   #3  |  Link
xkfz007
Registered User
 
Join Date: Sep 2013
Posts: 38
Quote:
Originally Posted by LoRd_MuldeR View Post
Finally, there is the "--ratetol" option, which controls how much the ABR algorithm is allowed to diverge from the target bitrate. You can set a lower value here, but that might result in quality degradation...
Hi, I have tried the "--ratetol" option and it works. Early, when I used the default 1.0 of ratetol, for the sequence BQMall, the final accuracy is -15%. And now I set it as 0.01,the accuracy is 0.6%.
When 1.0 was used, the QP of all frames keeps steady, but now, it fluctuates a lot.
By the Way, could you give me some suggestions about value of cplxr_sum, which is set as follows in x264:
rc->cplxr_sum = .01 * pow( 7.0e5, rc->qcompress ) * pow( h->mb.i_mb_count, 0.5 )
xkfz007 is offline   Reply With Quote
Reply

Tags
hevc, rate control, x264

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

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 Jump


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


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