[x265] [PATCH] bpyramid: Support for b-pyramid with b-adapt 0

Steve Borho steve at borho.org
Wed Nov 20 17:59:45 CET 2013


Testing with --b-adapt=0 --bframes=10 is a bit artificial, but ultrafast does use --b-adapt 0 --bframes 4, and it will benefit from this

On Nov 20, 2013, at 3:16 AM, Deepthi Nandakumar <deepthi at multicorewareinc.com> wrote:

> These results are neat! Except for the small drop in performance, the efficiency improvement for fast presets will be great!
> 
> 
> 
> On Wed, Nov 20, 2013 at 2:27 PM, Gopu Govindaswamy <gopu at multicorewareinc.com> wrote:
> # HG changeset patch
> # User Gopu Govindaswamy <gopu at multicorewareinc.com>
> # Date 1384937803 -19800
> # Node ID 8e9c965648f6a5f54fcadc6c4235a77d997b919f
> # Parent  108ddc9e5c6b15e758ccbf08a0e923cbb7b28b5e
> bpyramid: Support for b-pyramid with b-adapt 0
> 
> Test results for reference when enable and disable the b-pyramid with b-adapt=0
> 
> Cli option :  --bframes=10 --b-adapt=0 --b-pyramid=1 -f 100
> Enable  B-references  : --b-pyramid=1
> Disable B-references  : --b-pyramid=0
> 
> Results:
> Enable / Disable
> 
> clip - BasketballDrive_1920x1080_50
> Total time taken - 57.84s (1.73 fps) / 51.74s (1.93 fps)
> Bitrates - 4725.37 / 5660.68
> PSNR     - 37.178 / 37.178
> 
> 
> Clip - Cactus_1920x1080_50
> Total time taken - 41.90s (2.39 fps) / 47.08s (2.12 fps)
> Bitrates - 3800.62 / 4838.73
> PSNR     - 35.640 / 35.615
> 
> 
> Clip - Johnny_1280x720_60
> Total time taken - 10.41s (9.61 fps) / 10.34s (9.67 fps)
> Bitrates - 327.21 / 383.25
> PSNR     - 40.674 / 40.631
> 
> Clip - FourPeople_1280x720_60
> Total time taken - 10.72s (9.33 fps) / 10.18s (9.82 fps)
> Bitrates - 547.18 / 640.88
> PSNR     - 39.808 / 39.789
> 
> diff -r 108ddc9e5c6b -r 8e9c965648f6 source/encoder/slicetype.cpp
> --- a/source/encoder/slicetype.cpp      Tue Nov 19 23:45:52 2013 -0600
> +++ b/source/encoder/slicetype.cpp      Wed Nov 20 14:26:43 2013 +0530
> @@ -859,13 +859,29 @@
>              pic->m_lowres.sliceType = X265_TYPE_P;
>          outputQueue.pushBack(*pic);
>          numDecided++;
> +
> +        if (cfg->param.bpyramid && bframes > 1)
> +        {
> +            int bref = bframes / 2;
> +            if (list[bref - 1]->m_lowres.sliceType == X265_TYPE_AUTO)
> +            {
> +                list[bref - 1]->m_lowres.sliceType = X265_TYPE_BREF;
> +                outputQueue.pushBack(*list[bref - 1]);
> +                numDecided++;
> +            }
> +        }
> +
>          for (int i = 0; i < bframes; i++)
>          {
>              pic = list[i];
>              if (pic->m_lowres.sliceType == X265_TYPE_AUTO)
>                  pic->m_lowres.sliceType = X265_TYPE_B;
> -            outputQueue.pushBack(*pic);
> -            numDecided++;
> +
> +            if (pic->m_lowres.sliceType != X265_TYPE_BREF)
> +            {
> +                outputQueue.pushBack(*pic);
> +                numDecided++;
> +            }
>          }
>      }
>  }
> _______________________________________________
> x265-devel mailing list
> x265-devel at videolan.org
> https://mailman.videolan.org/listinfo/x265-devel
> 
> _______________________________________________
> x265-devel mailing list
> x265-devel at videolan.org
> https://mailman.videolan.org/listinfo/x265-devel

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.videolan.org/pipermail/x265-devel/attachments/20131120/8600dba0/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 842 bytes
Desc: Message signed with OpenPGP using GPGMail
URL: <http://mailman.videolan.org/pipermail/x265-devel/attachments/20131120/8600dba0/attachment.sig>


More information about the x265-devel mailing list