[x265] x265-devel Digest, Vol 29, Issue 69

Steve Borho steve at borho.org
Mon Oct 26 17:29:44 CET 2015


On 10/26, Joshua Bowman wrote:
> On Mon, 26 Oct 2015 09:34:33 +0100, Mario *LigH* Rohkr?mer <contact at ligh.de> wrote:
> > P(redicted) slices can have I slices as reference (prediction generation  
> > 1), possibly also previous P slices (not sure about this).
> >
> > B(idirectionally predicted) slices can have I and P slices as reference  
> > (prediction generation 2), and in a pyramid hierarchy even B slices which  
> > have no other B slices as possible reference.
> On Mon, 26 Oct 2015 14:17:13 +0530, Deepthi Nandakumar <deepthi at multicorewareinc.com> wrote:
> > Mario - Yes, and P slices use only I-slices or other P-slices as reference.
> 
> This is incorrect. P-blocks may reference any one previously encoded frame in the DPB, while
> B-blocks may reference any two previously encoded frames, that's the only difference between
> them. (No frame is explicitly marked reference or non-reference, but they fall out of the DPB if
> they are unreferenced.) A P-frame may only have I- and P-blocks, a B-frame may have I-, P-, and
> B-blocks. Each frame has two lists of a practically unlimited number of references frames (2^16
> short-term, 2^24 long-term) for each block to use, P-frames getting one list and B-frames two,
> but realistic DPB limits and usefulness mean lists are rarely more than a few frames long. A
> strict hierarchical encoding will enforce that no P references a B and no B-ref references a
> throwaway B, but the spec allows much more flexibility than that; strict hierarchical is just a
> poor-man's temporal scaling, and there's no need to emulate MPEG-1 with HEVC.
> 
> Reference list management is easily one of the most complex parts of the spec. That's why
> simplifications are usually used, but it's absolutely possible to do more.

Correct, the simplest answer for x265 is that P frames will use whatever
happens to be in list 0 at the time, and this depends on the number of
reference frames you allow the encoder to keep in its decoded picture
buffer. The DPB can hold a mix of already decoded P, Brefs, and I
slices. I believe that frames are retired from the DPB in POC order,
irrespective of slice type.

-- 
Steve Borho


More information about the x265-devel mailing list