[x265] Bug report and some discussion on ABR of x265

idxa at sina.com idxa at sina.com
Fri Oct 25 13:18:47 CEST 2013


I tested with the following steps,
 
1.encoding a clip with qp=34(crf maybe better), and getting bitrate of the output file(is 490Kb/s)
x265.exe --input source\NBA.yuv -o output_test\NBA_qp_34.hevc --recon output_test\NBA_recon_qp_34.yuv --fps 30 --input-res 640x360 --keyint 300 --frames 300 --rd 1 --qp 34 -F 4

2. using the bitrate(=490Kb/s) which is got frome the previous step to encode the same video with ABR method 
x265.exe --input source\NBA.yuv -o output_test\NBA_bitrate_490.hevc --recon output_test\NBA_recon_bitrate_490.yuv --fps 30 --input-res 640x360 --keyint 300 --frames 300 --rd 1 --bitrate 490 -F 
 
3.Compare PSNR of the two output files. 
Here using MSU VQM to calculate PSNR, and the following graph shows the result, red line is ABR and blue line is CQP, and ABR is of big fluctuation.
 

 

 

yes, that's the x265 mailing list. ABR right now, is a very simple version adapted from x264. Definitely scope for improvement. Can you share with me your results. I'd like to take a look.

On Fri, Oct 25, 2013 at 3:51 PM, <idxa at sina.com> wrote:


Is the mailing list "x265-devel at videolan.org"? I will use it for future bug reporting and discussion.
I have tested some clips to evaluate x265 ABR methods. The result shows the fluctuation of quality is a little big, meanwhile the bitrate fluctuation is very small, which seems to be CBR instead of ABR. Perhaps there is room for further improvement in x265 ABR method.




yes, you are right :). It should use rce->sliceType and need to set the sliceType before in rce. Thanks for pointing it out! shall fix and send out the patch. 

Can you pls corresponding on the mailing list in future, just so everyone is on the same page with these issues and fixes.


On Fri, Oct 25, 2013 at 1:28 PM, <idxa at sina.com> wrote:



Hi Aarthi,

Thanks for your detailed explanation. 
Function rateControlEnd() deals with the oldest frame and rateControlStart() deals with the current frame. Information of the oldest frame is stored in "curEncoder->m_rce".
Another question is in rateControlEnd() the variable of sliceType belongs to class RateControl and is not the correct slicetype for the oldest frame.So it looks like there is a problem in "if (sliceType != B_SLICE)", is it reasonable to modified it as "if (rce->sliceType != B_SLICE)"? And rce->sliceType should be assigned before.

thanks,
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.videolan.org/pipermail/x265-devel/attachments/20131025/dd52b939/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: ??1.jpg
Type: image/jpeg
Size: 109875 bytes
Desc: not available
URL: <http://mailman.videolan.org/pipermail/x265-devel/attachments/20131025/dd52b939/attachment-0001.jpg>


More information about the x265-devel mailing list