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

Latency and bidirectionally predicted frames in VideoEncoder. #57

Open
riju opened this issue May 11, 2020 · 3 comments
Open

Latency and bidirectionally predicted frames in VideoEncoder. #57

riju opened this issue May 11, 2020 · 3 comments
Labels
extension Interface changes that extend without breaking. research Issues that require researching the properties of existing codecs or codec implementations. tuning-parameter A configurable parameter

Comments

@riju
Copy link

riju commented May 11, 2020

VideoEncoder can increase coding efficiency by referencing future frames when coding a frame (eg. B-frames). However, this also increases latency since the future frames need to be decoded before the bidirectionally encoded frames. This is not desirable in all use cases such as video conferencing.

How about adding maxPredictionFrames -

dictionary VideoEncoderEncodeOptions {
  .. 
  unsigned long maxPredictionFrames;
};

which gives the maximum number of future frames to use for prediction. Setting maxPredictionFrames to 0 would disable B-frames altogether.

Related to #55 .

@sandersdan sandersdan added research Issues that require researching the properties of existing codecs or codec implementations. tuning-parameter A configurable parameter labels May 11, 2020
@kenchris
Copy link

Nit naming maxLong - I think it is unclear what long refers to, why not maxPredictionFrames

@chcunningham
Copy link
Collaborator

This naming has some overlap with #58, where the proposal is to have unsigned long max_prediction; as a restriction on GOP size. I feel like the name should mention "bi-directional" or "b" somewhere?

@chcunningham chcunningham added the extension Interface changes that extend without breaking. label May 12, 2021
@chcunningham
Copy link
Collaborator

Triage note: marking 'extension' as this proposes to simply add a new member to the config dict.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
extension Interface changes that extend without breaking. research Issues that require researching the properties of existing codecs or codec implementations. tuning-parameter A configurable parameter
Projects
None yet
Development

No branches or pull requests

4 participants