Log in

View Full Version : What does pic-struct do?


ShortKatz
14th August 2022, 18:33
I was wondering about pic-struct. It does say "Set the picture structure and emits it in the picture timing SEI message". But, what is a picture structure? I found, the value can be from 1 to 12, indicating:

Value - Indicated display of picture
0 - (progressive) frame
1 - top field
2 - bottom field
3 - top field, bottom field, in that order
4 - bottom field, top field, in that order
5 - top field, bottom field, top field repeated, in that order
6 - bottom field, top field, bottom field repeated, in that order
7 - frame doubling
8 - frame tripling
9 - top field paired with previous bottom field in output order
10 - bottom field paired with previous top field in output order
11 - top field paired with next bottom field in output order
12 - bottom field paired with next top field in output order

But what does this then actually do and for what is that useful? I found that for example frame-duplication works only with pic-struct = 0. But I have no clue why that is.

rwill
14th August 2022, 20:39
I was wondering about pic-struct. It does say "Set the picture structure and emits it in the picture timing SEI message". But, what is a picture structure?

pic_struct in the picture timing SEI can be used with other values (the mechanics are defined in the HEVC standard) to do Mpeg-2 style pulldown tricks and frame doubling among other things.

Certain constraints apply.

You might want to read Annex C of the HEVC standard "Hypothetical reference decoder". But its quite demanding. Unless you are writing a muxer/player that needs to derive exact timestamps for display or video buffer management I suggest something easier look into.