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 definition to enforce both reflist not empty #364

Merged
merged 1 commit into from May 25, 2020

Conversation

XinfengZhang
Copy link
Contributor

it is a suppliment of #220
to distinguish P frame and low delay B frame

Signed-off-by: Carl Zhang carl.zhang@intel.com

@HeJunyan
Copy link
Contributor

OK for me, and @xhaihao ?
please implement to return correct value for query.

@HeJunyan
Copy link
Contributor

According to new status, I think this info may not be enough.
On ICELake, for VMEPAK, both low-delay-b and non low-delay-b is supported, while only low-delay-b for VDENC.

But on TGL, only low-delay-b for VMEPAK and only low-delay-b for VDENC.

This flag means the non low-delay-b is necessary for some entrypoint, then with this flag set, we must set low-delay-b enabled. But for ICELake's VMEPAK case, if this flag is set, we then can not choose non low-delay-b mode. And if not set, we do not know whether the low-delay-b mode is available.

@XinfengZhang
Copy link
Contributor Author

@HeJunyan , hi , I am not sure whether I understand your concern, it just used to distinguish whether driver support P frame, if P frame is not support , it should be 1. or it should be 0

@HeJunyan
Copy link
Contributor

So, if this flag set, means only non-P support, and if not set, we can choose P and non-P, one of them?

@HeJunyan
Copy link
Contributor

For example, on ICELake, VDENC does not support P, so this flags is set, and I willl always set low-delay-b enabled, just ignore the user setting of low-delay-b.
And still on ICELake, VMEPAK supports both P and non-P, so this flag will not be set(because we can support P), and I can choose to enabled/disabled low-delay-b based on user setting.
But on SKL, for VMEPAK, only support P, not support non-P, so this flag also will not be set, and I still enabled/disabled low-delay-b based on user setting. But if user set low-delay-b to true, we will fail.

I am worried about when we really do not support low-delay-b, but user force to use it, just like the last case above, the GPU will hang, and really bad user experience.

@XinfengZhang
Copy link
Contributor Author

@HeJunyan
For example, on ICL, VDENC does not support P, so this flags is set, you should use low-delay B to replace P frame.
And still on ICL, you can choose to enabled/disabled low-delay-b based on user setting.
But on SKL, for VMEPAK, only support P, not support non-P, so this flag also will not be set, but there are other values (VA_PREDICTION_DIRECTION_PREVIOUS VA_PREDICTION_DIRECTION_BACKWARD) and attributes-VAConfigAttribEncMaxRefFrames, so you always know which frame type is supported, if user set un-supported one, you could check it.

@HeJunyan
Copy link
Contributor

But on SKL, for VMEPAK, only support P, not support non-P, so this flag also will not be set, but there are other values (VA_PREDICTION_DIRECTION_PREVIOUS VA_PREDICTION_DIRECTION_BACKWARD) and attributes-VAConfigAttribEncMaxRefFrames, so you always know which frame type is supported, if user set un-supported one, you could check it.
No, because you have B frame, VA_PREDICTION_DIRECTION_PREVIOUS VA_PREDICTION_DIRECTION_BACKWARD are always be set in this case, unless you just use IP mode.

@HeJunyan
Copy link
Contributor

Synced with @xhaihao , OK now, no problems. Please help to merge it. thanks.

@HeJunyan
Copy link
Contributor

I note that on ICElake VDEnc, VAConfigAttribEncMaxRefFrames query return ref0 is 3 and ref1 is 0. So, B frame is not supported. But the low-delay-b just converts P to B. So according to my understand, we should support B and then can support low-delay-b, am I right?
If I am wrong, please correct me. If not, this should be a bug?

@HeJunyan
Copy link
Contributor

HeJunyan commented Apr 2, 2020

Any update for this MR?

fulinjie added a commit to fulinjie/ffmpeg that referenced this pull request Apr 13, 2020
Low delay B-frame is supported on ICL+ platform.

For low power encoding, low_delay_b should be enabled by default.

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>
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>
fulinjie added a commit to fulinjie/ffmpeg that referenced this pull request Apr 14, 2020
Allow user to choose between I/P/B frames:

- normal
    Ordinary IB..BPB..B GOP structure.
- low delay 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 allows 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 18, 2020
Allow user to choose between I/P/B frames:

- normal
    Ordinary IB..BPB..B GOP structure.
- low delay B-frames:
    IB..B, 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, 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>
@XinfengZhang
Copy link
Contributor Author

@xhaihao ,could you help to approve it?

@HeJunyan
Copy link
Contributor

@XinfengZhang please help to merge it. And help to implement it in the media driver, especially for VME mode. So far, VAConfigAttribPredictionDirection query for VME mode just return error.

@XinfengZhang
Copy link
Contributor Author

@HeJunyan , there are already a PR with media driver intel/media-driver#858

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 XinfengZhang merged commit 0014ada into intel:master May 25, 2020
@XinfengZhang XinfengZhang deleted the PB branch May 25, 2020 06:31
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>
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

3 participants