Maximum bit rate allowed by level/tier is not increased for 422 and 444 chroma formats.

Issue #367 new
Zachary Plovanic created an issue

I see a comment on wikipedia table for profile specific level limits: Capture.PNG

According to this comment, maximum bit rate supported should increase by 1.5x for 422 and 2x for 444 chroma formats. However, x265 is not adjusting for this. When I try to use 90Mbps bitrate for a 3840x2160 60 fps video with pixel format of yuv 422 10bit and level-idc 5.2 Main tier, x265 properly sets profile to Main 4:2:2 10, but automatically lowers bit rate to 60Mbps - which is the maximum for Main 4:2:0 10 profiles at Level 5.2-Main Tier. See samples of my cmd line and x265 info below:

ffmpeg.exe -i "input.mov" -i "silence120min.mp3" -vframes 20 -r 60 -s 3840x2160 -pix_fmt yuv422p10le -c:v libx265 -preset veryfast -x265-params level-idc=5.2:high-tier=0:bitrate=90000:colorprim=bt2020:transfer=smpte-st-2084:colormatrix=bt2020nc:repeat-headers=1:max-cll=1000,400:hdr=1 -shortest output.mp4 -y

...

x265 [info]: HEVC encoder version 2.5+9-fdf39a97ecb8

x265 [info]: build info [Windows][GCC 7.1.0][64 bit][noasm] 10bit+10bit

x265 [info]: using cpu capabilities: none!

x265 [warning]: lowering target bitrate to High tier limit of 60000Kbps

x265 [info]: Main 4:2:2 10 profile, Level-5.2 (Main tier)

In "level.cpp" source file I see the following code:

    switch (param.rc.rateControlMode)
    {
    case X265_RC_ABR:
        if ((uint32_t)param.rc.bitrate > (allowHighTier ? l.maxBitrateHigh : l.maxBitrateMain))
        {
            param.rc.bitrate =  allowHighTier ? l.maxBitrateHigh : l.maxBitrateMain;
            x265_log(&param, X265_LOG_WARNING, "lowering target bitrate to High tier limit of %dKbps\n", param.rc.bitrate);
        }
        break;

(The warning "x265 [warning]: lowering target bitrate to High tier limit..." always prints out "High tier" regardless of if you are actually using High or Main tier.)

I've tried to check ITU-T Rec. H.265 (12/2016), but I'm having a little trouble deciphering the profile/level limits for maximum bitrate when using 422/444 or 12b/16b. Therefor, I'm not 100% about the 1.5x for 422 and 2.x for 444 comment on the wikipedia page. Regardless, the check for level conformance in x265 is not factoring in chroma format yet.

Comments (0)

  1. Log in to comment