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

Joshua Bowman silverbacknet at gmail.com
Mon Oct 26 11:49:44 CET 2015


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.


More information about the x265-devel mailing list