Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add prediction direction caps report #220

Merged
merged 1 commit into from Jul 8, 2019

Conversation

XinfengZhang
Copy link
Contributor

report which frame type is supported by driver

Signed-off-by: XinfengZhang carl.zhang@intel.com

@mypopydev
Copy link
Contributor

I think VAConfigAttribEncMaxRefFrames have implicit support the Frame Type query, why we need another repetitive caps for Frame type query?

@XinfengZhang
Copy link
Contributor Author

VAConfigAttribEncMaxRefFrames can only represent the forward/backward reference number, but cant distinguish the difference between P and low delay B. although low-delay B have two reference list, but both reference list only has forward reference frame.

@fhvwy
Copy link
Contributor

fhvwy commented Jul 1, 2018

I think you need to define more precisely what this actually means for each codec.

For H.264 / H.265, the low-delay B type gives you two lists but disallows bidirectional prediction modes in the macroblocks? Or would there be a requirement that the POC values must always be increasing?

For VP9, the P type constrains all reference frames to have the same sign bias, while the two B types allow different sign bias but for the low-delay B type bidirectional prediction is not allowed?

For MPEG-2, the P and B types are the usual frame types, and low-delay B is not allowed?

@XinfengZhang
Copy link
Contributor Author

@fhvwy yes,agree with you, frame types definition should be different with different codec. but there should be some duplicate. adding some comments to describe low delay is only for h264 and h265?

@fhvwy
Copy link
Contributor

fhvwy commented Jul 16, 2018

Sure, if the low-delay type doesn't apply to others then they don't need to be defined there. It does still need a clear definition of what the frame types mean for the codecs which do support them, though.

@ceyusa
Copy link
Contributor

ceyusa commented Aug 20, 2018

https://bugzilla.gnome.org/show_bug.cgi?id=796984 would depend on this API

@XinfengZhang
Copy link
Contributor Author

@fhvwy hi Mark, how about current solution. combine the frame type and active reference frame number together to support low delay b?

va/va.h Outdated Show resolved Hide resolved
va/va.h Outdated Show resolved Hide resolved
#define VA_FRAME_TYPE_P 0x00000001
/** \brief Driver support B frame for MPEG2, H264, HEVC */
#define VA_FRAME_TYPE_B 0x00000002
/**@}*/
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For H.26[45] this is really slice types rather than frame types? (Frame types aren't really a thing in those codecs.)

Perhaps a table defining it precisely would make this clearer. From what you've said I think what you want is:

Codec Always available Also available with VA_FRAME_TYPE_P Also available with VA_FRAME_TYPE_B
MPEG-2 picture_coding_type = 1 picture_coding_type = 2 picture_coding_type = 3
H.264 slice_type = 2 or 7 slice_type = 0 or 5 slice_type = 1 or 6
H.265 slice_type = 2 slice_type = 0 slice_type = 1
VP8 key_frame = 1 key_frame = 0 -
VP9 frame_type = 0 or intra_only = 1 frame_type = 1 and intra_only = 0 -
MJPEG Everything - -

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

hi @fhvwy , thanks a lot for your comments, agree with you , mostlikely , the P, B is slice type. but it is a little complex. I prefer to change the attrib to prediction direction support.
if only support low delay B: reference list0, reference list 1 represented by VAConfigAttribEncMaxRefFrames should be non zero value. and only forward direction is supported.

@XinfengZhang XinfengZhang force-pushed the frame_type branch 3 times, most recently from e9ffe81 to acbdea1 Compare November 12, 2018 02:27
@XinfengZhang XinfengZhang changed the title add supported frame type caps report add prediction direction caps report Nov 12, 2018
@XinfengZhang
Copy link
Contributor Author

change the PR . report a caps to indicate whether the forward (POC < current frame) or backward (POC> current frame) prediction is supported.

@XinfengZhang
Copy link
Contributor Author

if no further comments, I will merge it in 1 week

@fhvwy
Copy link
Contributor

fhvwy commented Apr 7, 2019

I don't understand the intent of this new proposal is. The POC order has no effect on anything the encoder itself supports - the user is providing the reference frames directly, so it doesn't matter what order the frames are output in (though it could make use of it as a hint, and will need it if writing headers). It's also unclear what the meaning would be for VP9, which does not have any global ordering number.

I assume this proposal is still wanting to cover the hardware bug referred to elsewhere in which some sorts of frames are not supported. Would it be possible to explain precisely what the error is there?

@XinfengZhang
Copy link
Contributor Author

XinfengZhang commented Apr 9, 2019

hi ,@fhvwy , the issue is, media driver low power HEVC encode just support I frame and low delay B frame (Generalized P and B picture). which need the L0 & L1 is totally same. so we need a capability to export it. for low delay B frame, the two reference list is same previous frames. no reference frame in future. the old attribute VAConfigAttribEncMaxRefFrames just can identify the reference number. want an interfaces tell application , driver just support low delay B , not normal B.

such like:https://github.com/intel/libva/blob/master/va/va_enc_hevc.h#L462
when application choose hierarchical B, it also can choose low delay B to replace P frame.
about VP9, 3 reference frames from 8 frames. it should not care about this attributes.

ps: I need to check whether media driver can enable normal B frames , will update later

@XinfengZhang
Copy link
Contributor Author

intel ICL low power encode, no future frame in L1. I afraid that some one set the B frame, and set normal reference frames, but encoder failed because driver only support low-delay B. it's why I want to add this attributes, do you have other ideas to let application know the limitations?

@cwang105
Copy link

cwang105 commented May 28, 2019 via email

va/va.h Outdated
* this attribute conveys the prediction direction (backward or forword) for specific config
* the value could be VA_PREDICTION_DIRECTION_XXXX. it can be combined with VAConfigAttribEncMaxRefFrames
* to describe reference list , and the prediction direction. if this attrib is not present, or value == 0,
* frame prediction can be deduced by VAConfigAttribEncMaxRefFrames.
Copy link
Contributor

@xhaihao xhaihao Jun 18, 2019

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How is the frame prediction deduced? It would be better to detail it in the comment.

You defined VA_PREDICTION_DIRECTION_PREVIOUS (1) and VA_PREDICTION_DIRECTION_FUTURE (2) only, how is the value set to 0?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

if this attrib is not present, or value == 0,
* frame prediction can be deduced by VAConfigAttribEncMaxRefFrames.

@XinfengZhang XinfengZhang force-pushed the frame_type branch 2 times, most recently from a5fa480 to 33fdd5f Compare June 18, 2019 05:36
@XinfengZhang XinfengZhang force-pushed the frame_type branch 2 times, most recently from 5edb630 to e7d296a Compare June 26, 2019 08:17
Copy link
Contributor

@xhaihao xhaihao left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM with the latest version

report which prediction direction is supported by driver

Signed-off-by: XinfengZhang <carl.zhang@intel.com>
fulinjie added a commit to fulinjie/ffmpeg that referenced this pull request Apr 21, 2020
Allow user to choose between I/P/B frames:

- normal
    Ordinary IB..BPB..B GOP structure.
- low delay B-frames:
    IB..B GOP structure, P frames replaced by B frames, allows forward-predict
    only for all B frames, L0 == L1, supported on ICL+ platforms, required by
    VDENC(low_power).
- reference B-frames:
    Convert P-frames to low delay B-frames, normal B frames still have
    2 different ref_lists and allow bi-prediction.

Low delay B:
<http://what-when-how.com/Tutorial/topic-397pct9eq3/High-Efficiency-Video-Coding-HEVC-288.html>

There is an on-going work in libva and media-driver to add querys
support for low delay b, would add it once it's ready:
intel/libva#220
intel/libva#364
intel/media-driver#721

Signed-off-by: Linjie Fu <linjie.fu@intel.com>
fulinjie added a commit to fulinjie/ffmpeg that referenced this pull request Apr 21, 2020
Allow user to choose between I/P/B frames:

- normal
    Ordinary IB..BPB..B GOP structure.
- low delay B-frames:
    IB..B GOP structure, P frames replaced by B frames, allows forward-predict
    only for all B frames, L0 == L1, required by VDENC(low_power),
    optional for VMEPAK.
- reference B-frames:
    Convert P-frames to low delay B-frames, normal B frames still have
    2 different ref_lists and allow bi-prediction.

Low delay B:
<http://what-when-how.com/Tutorial/topic-397pct9eq3/High-Efficiency-Video-Coding-HEVC-288.html>

There is an on-going work in libva and media-driver to add querys
support for low delay b, would add it once it's ready:
intel/libva#220
intel/libva#364
intel/media-driver#721

Signed-off-by: Linjie Fu <linjie.fu@intel.com>
feiwan1 pushed a commit to feiwan1/ffmpeg-cartwheel that referenced this pull request May 15, 2020
Allow user to choose between I/P/B frames:

- normal
    Ordinary IB..BPB..B GOP structure.
- low delay B-frames:
    IB..B GOP structure, P frames replaced by B frames, allows forward-predict
    only for all B frames, L0 == L1, required by VDENC(low_power),
    optional for VMEPAK.
- reference B-frames:
    Convert P-frames to low delay B-frames, normal B frames still have
    2 different ref_lists and allow bi-prediction.

Low delay B:
<http://what-when-how.com/Tutorial/topic-397pct9eq3/High-Efficiency-Video-Coding-HEVC-288.html>

There is an on-going work in libva and media-driver to add querys
support for low delay b, would add it once it's ready:
intel/libva#220
intel/libva#364
intel/media-driver#721

Rebased a bit for this internal branch.

Signed-off-by: Linjie Fu <linjie.fu@intel.com>
XinfengZhang added a commit that referenced this pull request May 25, 2020
it is a suppliment of #220
to distinguish P frame and low delay B frame

Signed-off-by: Carl Zhang <carl.zhang@intel.com>
feiwan1 pushed a commit to feiwan1/ffmpeg-cartwheel that referenced this pull request May 25, 2020
Allow user to choose between I/P/B frames:

- normal
    Ordinary IB..BPB..B GOP structure.
- low delay B-frames:
    IB..B GOP structure, P frames replaced by B frames, allows forward-predict
    only for all B frames, L0 == L1, required by VDENC(low_power),
    optional for VMEPAK.
- reference B-frames:
    Convert P-frames to low delay B-frames, normal B frames still have
    2 different ref_lists and allow bi-prediction.

Low delay B:
<http://what-when-how.com/Tutorial/topic-397pct9eq3/High-Efficiency-Video-Coding-HEVC-288.html>

There is an on-going work in libva and media-driver to add querys
support for low delay b, would add it once it's ready:
intel/libva#220
intel/libva#364
intel/media-driver#721

Rebased a bit for this internal branch.

Signed-off-by: Linjie Fu <linjie.fu@intel.com>
fulinjie added a commit to fulinjie/ffmpeg that referenced this pull request Jun 1, 2020
Allow user to choose between I/P/B frames:

- normal
    Ordinary IB..BPB..B GOP structure.
- low delay B-frames:
    IB..B GOP structure, P frames replaced by B frames, allows forward-predict
    only for all B frames, L0 == L1, required by VDENC(low_power),
    optional for VMEPAK.
- reference B-frames:
    Convert P-frames to low delay B-frames, normal B frames still have
    2 different ref_lists and allow bi-prediction.

Low delay B:
<http://what-when-how.com/Tutorial/topic-397pct9eq3/High-Efficiency-Video-Coding-HEVC-288.html>

There is an on-going work in libva and media-driver to add querys
support for low delay b, would add it once it's ready:
intel/libva#220
intel/libva#364
intel/media-driver#721

Signed-off-by: Linjie Fu <linjie.fu@intel.com>
liuyinhangx pushed a commit to liuyinhangx/ffmpeg-cartwheel that referenced this pull request Jul 14, 2020
Allow user to choose between I/P/B frames:

- normal
    Ordinary IB..BPB..B GOP structure.
- low delay B-frames:
    IB..B GOP structure, P frames replaced by B frames, allows forward-predict
    only for all B frames, L0 == L1, required by VDENC(low_power),
    optional for VMEPAK.
- reference B-frames:
    Convert P-frames to low delay B-frames, normal B frames still have
    2 different ref_lists and allow bi-prediction.

Low delay B:
<http://what-when-how.com/Tutorial/topic-397pct9eq3/High-Efficiency-Video-Coding-HEVC-288.html>

There is an on-going work in libva and media-driver to add querys
support for low delay b, would add it once it's ready:
intel/libva#220
intel/libva#364
intel/media-driver#721

Rebased a bit for this internal branch.

Signed-off-by: Linjie Fu <linjie.fu@intel.com>
feiwan1 pushed a commit to feiwan1/ffmpeg-cartwheel that referenced this pull request Sep 10, 2020
Allow user to choose between I/P/B frames:

- normal
    Ordinary IB..BPB..B GOP structure.
- low delay B-frames:
    IB..B GOP structure, P frames replaced by B frames, allows forward-predict
    only for all B frames, L0 == L1, required by VDENC(low_power),
    optional for VMEPAK.
- reference B-frames:
    Convert P-frames to low delay B-frames, normal B frames still have
    2 different ref_lists and allow bi-prediction.

Low delay B:
<http://what-when-how.com/Tutorial/topic-397pct9eq3/High-Efficiency-Video-Coding-HEVC-288.html>

There is an on-going work in libva and media-driver to add querys
support for low delay b, would add it once it's ready:
intel/libva#220
intel/libva#364
intel/media-driver#721

Rebased a bit for this internal branch.

Signed-off-by: Linjie Fu <linjie.fu@intel.com>
feiwan1 pushed a commit to feiwan1/ffmpeg-cartwheel that referenced this pull request Oct 19, 2020
Allow user to choose between I/P/B frames:

- normal
    Ordinary IB..BPB..B GOP structure.
- low delay B-frames:
    IB..B GOP structure, P frames replaced by B frames, allows forward-predict
    only for all B frames, L0 == L1, required by VDENC(low_power),
    optional for VMEPAK.
- reference B-frames:
    Convert P-frames to low delay B-frames, normal B frames still have
    2 different ref_lists and allow bi-prediction.

Low delay B:
<http://what-when-how.com/Tutorial/topic-397pct9eq3/High-Efficiency-Video-Coding-HEVC-288.html>

There is an on-going work in libva and media-driver to add querys
support for low delay b, would add it once it's ready:
intel/libva#220
intel/libva#364
intel/media-driver#721

Rebased a bit for this internal branch.

Signed-off-by: Linjie Fu <linjie.fu@intel.com>
feiwan1 pushed a commit to feiwan1/ffmpeg-cartwheel that referenced this pull request Nov 2, 2020
Allow user to choose between I/P/B frames:

- normal
    Ordinary IB..BPB..B GOP structure.
- low delay B-frames:
    IB..B GOP structure, P frames replaced by B frames, allows forward-predict
    only for all B frames, L0 == L1, required by VDENC(low_power),
    optional for VMEPAK.
- reference B-frames:
    Convert P-frames to low delay B-frames, normal B frames still have
    2 different ref_lists and allow bi-prediction.

Low delay B:
<http://what-when-how.com/Tutorial/topic-397pct9eq3/High-Efficiency-Video-Coding-HEVC-288.html>

There is an on-going work in libva and media-driver to add querys
support for low delay b, would add it once it's ready:
intel/libva#220
intel/libva#364
intel/media-driver#721

Rebased a bit for this internal branch.

Signed-off-by: Linjie Fu <linjie.fu@intel.com>
feiwan1 pushed a commit to feiwan1/ffmpeg-cartwheel that referenced this pull request Nov 2, 2020
Allow user to choose between I/P/B frames:

- normal
    Ordinary IB..BPB..B GOP structure.
- low delay B-frames:
    IB..B GOP structure, P frames replaced by B frames, allows forward-predict
    only for all B frames, L0 == L1, required by VDENC(low_power),
    optional for VMEPAK.
- reference B-frames:
    Convert P-frames to low delay B-frames, normal B frames still have
    2 different ref_lists and allow bi-prediction.

Low delay B:
<http://what-when-how.com/Tutorial/topic-397pct9eq3/High-Efficiency-Video-Coding-HEVC-288.html>

There is an on-going work in libva and media-driver to add querys
support for low delay b, would add it once it's ready:
intel/libva#220
intel/libva#364
intel/media-driver#721

Rebased a bit for this internal branch.

Signed-off-by: Linjie Fu <linjie.fu@intel.com>
xhaihao pushed a commit to xhaihao/ffmpeg-cartwheel that referenced this pull request Nov 9, 2020
Allow user to choose between I/P/B frames:

- normal
    Ordinary IB..BPB..B GOP structure.
- low delay B-frames:
    IB..B GOP structure, P frames replaced by B frames, allows forward-predict
    only for all B frames, L0 == L1, required by VDENC(low_power),
    optional for VMEPAK.
- reference B-frames:
    Convert P-frames to low delay B-frames, normal B frames still have
    2 different ref_lists and allow bi-prediction.

Low delay B:
<http://what-when-how.com/Tutorial/topic-397pct9eq3/High-Efficiency-Video-Coding-HEVC-288.html>

There is an on-going work in libva and media-driver to add querys
support for low delay b, would add it once it's ready:
intel/libva#220
intel/libva#364
intel/media-driver#721

Rebased a bit for this internal branch.

Signed-off-by: Linjie Fu <linjie.fu@intel.com>
feiwan1 pushed a commit to feiwan1/ffmpeg-cartwheel that referenced this pull request Nov 26, 2020
Allow user to choose between I/P/B frames:

- normal
    Ordinary IB..BPB..B GOP structure.
- low delay B-frames:
    IB..B GOP structure, P frames replaced by B frames, allows forward-predict
    only for all B frames, L0 == L1, required by VDENC(low_power),
    optional for VMEPAK.
- reference B-frames:
    Convert P-frames to low delay B-frames, normal B frames still have
    2 different ref_lists and allow bi-prediction.

Low delay B:
<http://what-when-how.com/Tutorial/topic-397pct9eq3/High-Efficiency-Video-Coding-HEVC-288.html>

There is an on-going work in libva and media-driver to add querys
support for low delay b, would add it once it's ready:
intel/libva#220
intel/libva#364
intel/media-driver#721

Rebased a bit for this internal branch.

Signed-off-by: Linjie Fu <linjie.fu@intel.com>
wenbinc-Bin pushed a commit to wenbinc-Bin/ffmpeg-ci that referenced this pull request Jan 6, 2021
Allow user to choose between I/P/B frames:

- normal
    Ordinary IB..BPB..B GOP structure.
- low delay B-frames:
    IB..B GOP structure, P frames replaced by B frames, allows forward-predict
    only for all B frames, L0 == L1, required by VDENC(low_power),
    optional for VMEPAK.
- reference B-frames:
    Convert P-frames to low delay B-frames, normal B frames still have
    2 different ref_lists and allow bi-prediction.

Low delay B:
<http://what-when-how.com/Tutorial/topic-397pct9eq3/High-Efficiency-Video-Coding-HEVC-288.html>

There is an on-going work in libva and media-driver to add querys
support for low delay b, would add it once it's ready:
intel/libva#220
intel/libva#364
intel/media-driver#721

Rebased a bit for this internal branch.

Signed-off-by: Linjie Fu <linjie.fu@intel.com>
wenbinc-Bin pushed a commit to wenbinc-Bin/ffmpeg-ci that referenced this pull request Jan 6, 2021
Allow user to choose between I/P/B frames:

- normal
    Ordinary IB..BPB..B GOP structure.
- low delay B-frames:
    IB..B GOP structure, P frames replaced by B frames, allows forward-predict
    only for all B frames, L0 == L1, required by VDENC(low_power),
    optional for VMEPAK.
- reference B-frames:
    Convert P-frames to low delay B-frames, normal B frames still have
    2 different ref_lists and allow bi-prediction.

Low delay B:
<http://what-when-how.com/Tutorial/topic-397pct9eq3/High-Efficiency-Video-Coding-HEVC-288.html>

There is an on-going work in libva and media-driver to add querys
support for low delay b, would add it once it's ready:
intel/libva#220
intel/libva#364
intel/media-driver#721

Rebased a bit for this internal branch.

Signed-off-by: Linjie Fu <linjie.fu@intel.com>
xhaihao pushed a commit to xhaihao/FFmpeg that referenced this pull request Mar 11, 2021
Allow user to choose between I/P/B frames:

- normal
    Ordinary IB..BPB..B GOP structure.
- low delay B-frames:
    IB..B GOP structure, P frames replaced by B frames, allows forward-predict
    only for all B frames, L0 == L1, required by VDENC(low_power),
    optional for VMEPAK.
- reference B-frames:
    Convert P-frames to low delay B-frames, normal B frames still have
    2 different ref_lists and allow bi-prediction.

Low delay B:
<http://what-when-how.com/Tutorial/topic-397pct9eq3/High-Efficiency-Video-Coding-HEVC-288.html>

There is an on-going work in libva and media-driver to add querys
support for low delay b, would add it once it's ready:
intel/libva#220
intel/libva#364
intel/media-driver#721

Rebased a bit for this internal branch.

Signed-off-by: Linjie Fu <linjie.fu@intel.com>
xhaihao pushed a commit to xhaihao/FFmpeg that referenced this pull request Apr 30, 2021
Allow user to choose between I/P/B frames:

- normal
    Ordinary IB..BPB..B GOP structure.
- low delay B-frames:
    IB..B GOP structure, P frames replaced by B frames, allows forward-predict
    only for all B frames, L0 == L1, required by VDENC(low_power),
    optional for VMEPAK.
- reference B-frames:
    Convert P-frames to low delay B-frames, normal B frames still have
    2 different ref_lists and allow bi-prediction.

Low delay B:
<http://what-when-how.com/Tutorial/topic-397pct9eq3/High-Efficiency-Video-Coding-HEVC-288.html>

There is an on-going work in libva and media-driver to add querys
support for low delay b, would add it once it's ready:
intel/libva#220
intel/libva#364
intel/media-driver#721

Rebased a bit for this internal branch.

Signed-off-by: Linjie Fu <linjie.fu@intel.com>
xhaihao pushed a commit to xhaihao/FFmpeg that referenced this pull request Jun 9, 2021
Allow user to choose between I/P/B frames:

- normal
    Ordinary IB..BPB..B GOP structure.
- low delay B-frames:
    IB..B GOP structure, P frames replaced by B frames, allows forward-predict
    only for all B frames, L0 == L1, required by VDENC(low_power),
    optional for VMEPAK.
- reference B-frames:
    Convert P-frames to low delay B-frames, normal B frames still have
    2 different ref_lists and allow bi-prediction.

Low delay B:
<http://what-when-how.com/Tutorial/topic-397pct9eq3/High-Efficiency-Video-Coding-HEVC-288.html>

There is an on-going work in libva and media-driver to add querys
support for low delay b, would add it once it's ready:
intel/libva#220
intel/libva#364
intel/media-driver#721

Rebased a bit for this internal branch.

Signed-off-by: Linjie Fu <linjie.fu@intel.com>
changchingyew pushed a commit to changchingyew/FFmpeg that referenced this pull request Aug 17, 2021
Allow user to choose between I/P/B frames:

- normal
    Ordinary IB..BPB..B GOP structure.
- low delay B-frames:
    IB..B GOP structure, P frames replaced by B frames, allows forward-predict
    only for all B frames, L0 == L1, required by VDENC(low_power),
    optional for VMEPAK.
- reference B-frames:
    Convert P-frames to low delay B-frames, normal B frames still have
    2 different ref_lists and allow bi-prediction.

Low delay B:
<http://what-when-how.com/Tutorial/topic-397pct9eq3/High-Efficiency-Video-Coding-HEVC-288.html>

There is an on-going work in libva and media-driver to add querys
support for low delay b, would add it once it's ready:
intel/libva#220
intel/libva#364
intel/media-driver#721

Rebased a bit for this internal branch.

Signed-off-by: Linjie Fu <linjie.fu@intel.com>
xhaihao pushed a commit to xhaihao/FFmpeg that referenced this pull request Aug 26, 2021
Allow user to choose between I/P/B frames:

- normal
    Ordinary IB..BPB..B GOP structure.
- low delay B-frames:
    IB..B GOP structure, P frames replaced by B frames, allows forward-predict
    only for all B frames, L0 == L1, required by VDENC(low_power),
    optional for VMEPAK.
- reference B-frames:
    Convert P-frames to low delay B-frames, normal B frames still have
    2 different ref_lists and allow bi-prediction.

Low delay B:
<http://what-when-how.com/Tutorial/topic-397pct9eq3/High-Efficiency-Video-Coding-HEVC-288.html>

There is an on-going work in libva and media-driver to add querys
support for low delay b, would add it once it's ready:
intel/libva#220
intel/libva#364
intel/media-driver#721

Rebased a bit for this internal branch.

Signed-off-by: Linjie Fu <linjie.fu@intel.com>
xhaihao pushed a commit to xhaihao/FFmpeg that referenced this pull request Aug 27, 2021
Allow user to choose between I/P/B frames:

- normal
    Ordinary IB..BPB..B GOP structure.
- low delay B-frames:
    IB..B GOP structure, P frames replaced by B frames, allows forward-predict
    only for all B frames, L0 == L1, required by VDENC(low_power),
    optional for VMEPAK.
- reference B-frames:
    Convert P-frames to low delay B-frames, normal B frames still have
    2 different ref_lists and allow bi-prediction.

Low delay B:
<http://what-when-how.com/Tutorial/topic-397pct9eq3/High-Efficiency-Video-Coding-HEVC-288.html>

There is an on-going work in libva and media-driver to add querys
support for low delay b, would add it once it's ready:
intel/libva#220
intel/libva#364
intel/media-driver#721

Rebased a bit for this internal branch.

Signed-off-by: Linjie Fu <linjie.fu@intel.com>
xhaihao pushed a commit to xhaihao/FFmpeg that referenced this pull request Aug 27, 2021
Allow user to choose between I/P/B frames:

- normal
    Ordinary IB..BPB..B GOP structure.
- low delay B-frames:
    IB..B GOP structure, P frames replaced by B frames, allows forward-predict
    only for all B frames, L0 == L1, required by VDENC(low_power),
    optional for VMEPAK.
- reference B-frames:
    Convert P-frames to low delay B-frames, normal B frames still have
    2 different ref_lists and allow bi-prediction.

Low delay B:
<http://what-when-how.com/Tutorial/topic-397pct9eq3/High-Efficiency-Video-Coding-HEVC-288.html>

There is an on-going work in libva and media-driver to add querys
support for low delay b, would add it once it's ready:
intel/libva#220
intel/libva#364
intel/media-driver#721

Rebased a bit for this internal branch.

Signed-off-by: Linjie Fu <linjie.fu@intel.com>
xhaihao pushed a commit to xhaihao/FFmpeg that referenced this pull request Aug 27, 2021
Allow user to choose between I/P/B frames:

- normal
    Ordinary IB..BPB..B GOP structure.
- low delay B-frames:
    IB..B GOP structure, P frames replaced by B frames, allows forward-predict
    only for all B frames, L0 == L1, required by VDENC(low_power),
    optional for VMEPAK.
- reference B-frames:
    Convert P-frames to low delay B-frames, normal B frames still have
    2 different ref_lists and allow bi-prediction.

Low delay B:
<http://what-when-how.com/Tutorial/topic-397pct9eq3/High-Efficiency-Video-Coding-HEVC-288.html>

There is an on-going work in libva and media-driver to add querys
support for low delay b, would add it once it's ready:
intel/libva#220
intel/libva#364
intel/media-driver#721

Rebased a bit for this internal branch.

Signed-off-by: Linjie Fu <linjie.fu@intel.com>
xhaihao pushed a commit to xhaihao/FFmpeg that referenced this pull request Oct 21, 2021
Allow user to choose between I/P/B frames:

- normal
    Ordinary IB..BPB..B GOP structure.
- low delay B-frames:
    IB..B GOP structure, P frames replaced by B frames, allows forward-predict
    only for all B frames, L0 == L1, required by VDENC(low_power),
    optional for VMEPAK.
- reference B-frames:
    Convert P-frames to low delay B-frames, normal B frames still have
    2 different ref_lists and allow bi-prediction.

Low delay B:
<http://what-when-how.com/Tutorial/topic-397pct9eq3/High-Efficiency-Video-Coding-HEVC-288.html>

There is an on-going work in libva and media-driver to add querys
support for low delay b, would add it once it's ready:
intel/libva#220
intel/libva#364
intel/media-driver#721

Rebased a bit for this internal branch.

Signed-off-by: Linjie Fu <linjie.fu@intel.com>
changchingyew pushed a commit to changchingyew/FFmpeg that referenced this pull request Oct 22, 2021
Allow user to choose between I/P/B frames:

- normal
    Ordinary IB..BPB..B GOP structure.
- low delay B-frames:
    IB..B GOP structure, P frames replaced by B frames, allows forward-predict
    only for all B frames, L0 == L1, required by VDENC(low_power),
    optional for VMEPAK.
- reference B-frames:
    Convert P-frames to low delay B-frames, normal B frames still have
    2 different ref_lists and allow bi-prediction.

Low delay B:
<http://what-when-how.com/Tutorial/topic-397pct9eq3/High-Efficiency-Video-Coding-HEVC-288.html>

There is an on-going work in libva and media-driver to add querys
support for low delay b, would add it once it's ready:
intel/libva#220
intel/libva#364
intel/media-driver#721

Rebased a bit for this internal branch.

Signed-off-by: Linjie Fu <linjie.fu@intel.com>
feiwan1 pushed a commit to feiwan1/ffmpeg that referenced this pull request Mar 1, 2022
Allow user to choose between I/P/B frames:

- normal
    Ordinary IB..BPB..B GOP structure.
- low delay B-frames:
    IB..B GOP structure, P frames replaced by B frames, allows forward-predict
    only for all B frames, L0 == L1, required by VDENC(low_power),
    optional for VMEPAK.
- reference B-frames:
    Convert P-frames to low delay B-frames, normal B frames still have
    2 different ref_lists and allow bi-prediction.

Low delay B:
<http://what-when-how.com/Tutorial/topic-397pct9eq3/High-Efficiency-Video-Coding-HEVC-288.html>

There is an on-going work in libva and media-driver to add querys
support for low delay b, would add it once it's ready:
intel/libva#220
intel/libva#364
intel/media-driver#721

Rebased a bit for this internal branch.

Signed-off-by: Linjie Fu <linjie.fu@intel.com>
feiwan1 pushed a commit to feiwan1/ffmpeg that referenced this pull request Mar 22, 2022
Allow user to choose between I/P/B frames:

- normal
    Ordinary IB..BPB..B GOP structure.
- low delay B-frames:
    IB..B GOP structure, P frames replaced by B frames, allows forward-predict
    only for all B frames, L0 == L1, required by VDENC(low_power),
    optional for VMEPAK.
- reference B-frames:
    Convert P-frames to low delay B-frames, normal B frames still have
    2 different ref_lists and allow bi-prediction.

Low delay B:
<http://what-when-how.com/Tutorial/topic-397pct9eq3/High-Efficiency-Video-Coding-HEVC-288.html>

There is an on-going work in libva and media-driver to add querys
support for low delay b, would add it once it's ready:
intel/libva#220
intel/libva#364
intel/media-driver#721

Rebased a bit for this internal branch.

Signed-off-by: Linjie Fu <linjie.fu@intel.com>
feiwan1 pushed a commit to feiwan1/ffmpeg that referenced this pull request May 24, 2022
Allow user to choose between I/P/B frames:

- normal
    Ordinary IB..BPB..B GOP structure.
- low delay B-frames:
    IB..B GOP structure, P frames replaced by B frames, allows forward-predict
    only for all B frames, L0 == L1, required by VDENC(low_power),
    optional for VMEPAK.
- reference B-frames:
    Convert P-frames to low delay B-frames, normal B frames still have
    2 different ref_lists and allow bi-prediction.

Low delay B:
<http://what-when-how.com/Tutorial/topic-397pct9eq3/High-Efficiency-Video-Coding-HEVC-288.html>

There is an on-going work in libva and media-driver to add querys
support for low delay b, would add it once it's ready:
intel/libva#220
intel/libva#364
intel/media-driver#721

Rebased a bit for this internal branch.

This patch will be removed after
intel/media-driver#1382 is merged.

Signed-off-by: Linjie Fu <linjie.fu@intel.com>
tong1wu pushed a commit to tong1wu/ffmpeg that referenced this pull request Jun 6, 2022
Allow user to choose between I/P/B frames:

- normal
    Ordinary IB..BPB..B GOP structure.
- low delay B-frames:
    IB..B GOP structure, P frames replaced by B frames, allows forward-predict
    only for all B frames, L0 == L1, required by VDENC(low_power),
    optional for VMEPAK.
- reference B-frames:
    Convert P-frames to low delay B-frames, normal B frames still have
    2 different ref_lists and allow bi-prediction.

Low delay B:
<http://what-when-how.com/Tutorial/topic-397pct9eq3/High-Efficiency-Video-Coding-HEVC-288.html>

There is an on-going work in libva and media-driver to add querys
support for low delay b, would add it once it's ready:
intel/libva#220
intel/libva#364
intel/media-driver#721

Rebased a bit for this internal branch.

This patch will be removed after
intel/media-driver#1382 is merged.

Signed-off-by: Linjie Fu <linjie.fu@intel.com>
FurongZhang pushed a commit to FurongZhang/libva that referenced this pull request Apr 7, 2023
it is a suppliment of intel#220
to distinguish P frame and low delay B frame

Signed-off-by: Carl Zhang <carl.zhang@intel.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

6 participants