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

Entropy coding option #1318

Merged
merged 6 commits into from
Dec 24, 2022
Merged

Entropy coding option #1318

merged 6 commits into from
Dec 24, 2022

Conversation

deiteris
Copy link
Collaborator

@deiteris deiteris commented Dec 21, 2022

In h264 codec, CABAC entropy coding may save up to 20% of the bitrate budget, but increases the decoder latency by 2+ times depending on the target bitrate and may also increase encoder load. This significantly reduces the decoder throughput which may be incomparable to gained quality, so CAVLC can be used for very high bitrate or high encoder/decoder load scenarios without significant perceived quality loss.

Graph with CAVLC
image

Graph with CABAC
image

@zarik5
Copy link
Member

zarik5 commented Dec 21, 2022

I think the default value should be CAVLC, since it's the option that behaves more consistently and gives overall lower latency.

@deiteris deiteris force-pushed the entropy-option branch 2 times, most recently from ada3e21 to ea90362 Compare December 22, 2022 09:50
@deiteris deiteris requested a review from nowrep December 22, 2022 09:51
@deiteris
Copy link
Collaborator Author

Ready to merge if it's all good. Though would be great to see some testing on nvidia cards and Linux.

Copy link
Collaborator

@nowrep nowrep left a comment

Choose a reason for hiding this comment

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

VAAPI part tested and it does actually reduce decoder latency.

@zarik5 zarik5 merged commit ef88313 into alvr-org:master Dec 24, 2022
zarik5 pushed a commit that referenced this pull request Feb 9, 2023
* Add entropy coding option

* Use CAVLC as default option

* Update description for entropy options

* Add entropy coding option to Linux

* Fix indentation

* Add missing break statements
korejan pushed a commit to korejan/ALVR that referenced this pull request May 20, 2023
* Add entropy coding option

* Use CAVLC as default option

* Update description for entropy options

* Add entropy coding option to Linux

* Fix indentation

* Add missing break statements
korejan pushed a commit to korejan/ALVR that referenced this pull request May 27, 2023
* Add entropy coding option

* Use CAVLC as default option

* Update description for entropy options

* Add entropy coding option to Linux

* Fix indentation

* Add missing break statements
korejan pushed a commit to korejan/ALVR that referenced this pull request Jun 4, 2023
* Add entropy coding option

* Use CAVLC as default option

* Update description for entropy options

* Add entropy coding option to Linux

* Fix indentation

* Add missing break statements
korejan pushed a commit to korejan/ALVR that referenced this pull request Jun 10, 2023
* Add entropy coding option

* Use CAVLC as default option

* Update description for entropy options

* Add entropy coding option to Linux

* Fix indentation

* Add missing break statements
korejan pushed a commit to korejan/ALVR that referenced this pull request Jun 11, 2023
* Add entropy coding option

* Use CAVLC as default option

* Update description for entropy options

* Add entropy coding option to Linux

* Fix indentation

* Add missing break statements
korejan pushed a commit to korejan/ALVR that referenced this pull request Jun 17, 2023
* Add entropy coding option

* Use CAVLC as default option

* Update description for entropy options

* Add entropy coding option to Linux

* Fix indentation

* Add missing break statements
korejan pushed a commit to korejan/ALVR that referenced this pull request Jun 17, 2023
* Add entropy coding option

* Use CAVLC as default option

* Update description for entropy options

* Add entropy coding option to Linux

* Fix indentation

* Add missing break statements
korejan pushed a commit to korejan/ALVR that referenced this pull request Jun 24, 2023
* Add entropy coding option

* Use CAVLC as default option

* Update description for entropy options

* Add entropy coding option to Linux

* Fix indentation

* Add missing break statements
korejan pushed a commit to korejan/ALVR that referenced this pull request Jun 24, 2023
* Add entropy coding option

* Use CAVLC as default option

* Update description for entropy options

* Add entropy coding option to Linux

* Fix indentation

* Add missing break statements
korejan pushed a commit to korejan/ALVR that referenced this pull request Jun 25, 2023
* Add entropy coding option

* Use CAVLC as default option

* Update description for entropy options

* Add entropy coding option to Linux

* Fix indentation

* Add missing break statements
korejan pushed a commit to korejan/ALVR that referenced this pull request Jun 25, 2023
* Add entropy coding option

* Use CAVLC as default option

* Update description for entropy options

* Add entropy coding option to Linux

* Fix indentation

* Add missing break statements
korejan pushed a commit to korejan/ALVR that referenced this pull request Jun 25, 2023
* Add entropy coding option

* Use CAVLC as default option

* Update description for entropy options

* Add entropy coding option to Linux

* Fix indentation

* Add missing break statements
korejan pushed a commit to korejan/ALVR that referenced this pull request Jun 26, 2023
* Add entropy coding option

* Use CAVLC as default option

* Update description for entropy options

* Add entropy coding option to Linux

* Fix indentation

* Add missing break statements
korejan pushed a commit to korejan/ALVR that referenced this pull request Jul 1, 2023
* Add entropy coding option

* Use CAVLC as default option

* Update description for entropy options

* Add entropy coding option to Linux

* Fix indentation

* Add missing break statements
korejan pushed a commit to korejan/ALVR that referenced this pull request Jun 4, 2024
* Add entropy coding option

* Use CAVLC as default option

* Update description for entropy options

* Add entropy coding option to Linux

* Fix indentation

* Add missing break statements
korejan pushed a commit to korejan/ALVR that referenced this pull request Jun 9, 2024
* Add entropy coding option

* Use CAVLC as default option

* Update description for entropy options

* Add entropy coding option to Linux

* Fix indentation

* Add missing break statements
korejan pushed a commit to korejan/ALVR that referenced this pull request Jun 15, 2024
* Add entropy coding option

* Use CAVLC as default option

* Update description for entropy options

* Add entropy coding option to Linux

* Fix indentation

* Add missing break statements
korejan pushed a commit to korejan/ALVR that referenced this pull request Jun 15, 2024
* Add entropy coding option

* Use CAVLC as default option

* Update description for entropy options

* Add entropy coding option to Linux

* Fix indentation

* Add missing break statements
korejan pushed a commit to korejan/ALVR that referenced this pull request Jun 16, 2024
* Add entropy coding option

* Use CAVLC as default option

* Update description for entropy options

* Add entropy coding option to Linux

* Fix indentation

* Add missing break statements
korejan pushed a commit to korejan/ALVR that referenced this pull request Jun 22, 2024
* Add entropy coding option

* Use CAVLC as default option

* Update description for entropy options

* Add entropy coding option to Linux

* Fix indentation

* Add missing break statements
korejan pushed a commit to korejan/ALVR that referenced this pull request Jun 23, 2024
* Add entropy coding option

* Use CAVLC as default option

* Update description for entropy options

* Add entropy coding option to Linux

* Fix indentation

* Add missing break statements
korejan pushed a commit to korejan/ALVR that referenced this pull request Jun 27, 2024
* Add entropy coding option

* Use CAVLC as default option

* Update description for entropy options

* Add entropy coding option to Linux

* Fix indentation

* Add missing break statements
korejan pushed a commit to korejan/ALVR that referenced this pull request Jun 30, 2024
* Add entropy coding option

* Use CAVLC as default option

* Update description for entropy options

* Add entropy coding option to Linux

* Fix indentation

* Add missing break statements
korejan pushed a commit to korejan/ALVR that referenced this pull request Jul 6, 2024
* Add entropy coding option

* Use CAVLC as default option

* Update description for entropy options

* Add entropy coding option to Linux

* Fix indentation

* Add missing break statements
korejan pushed a commit to korejan/ALVR that referenced this pull request Jul 7, 2024
* Add entropy coding option

* Use CAVLC as default option

* Update description for entropy options

* Add entropy coding option to Linux

* Fix indentation

* Add missing break statements
korejan pushed a commit to korejan/ALVR that referenced this pull request Jul 13, 2024
* Add entropy coding option

* Use CAVLC as default option

* Update description for entropy options

* Add entropy coding option to Linux

* Fix indentation

* Add missing break statements
korejan pushed a commit to korejan/ALVR that referenced this pull request Jul 14, 2024
* Add entropy coding option

* Use CAVLC as default option

* Update description for entropy options

* Add entropy coding option to Linux

* Fix indentation

* Add missing break statements
korejan pushed a commit to korejan/ALVR that referenced this pull request Jul 15, 2024
* Add entropy coding option

* Use CAVLC as default option

* Update description for entropy options

* Add entropy coding option to Linux

* Fix indentation

* Add missing break statements
korejan pushed a commit to korejan/ALVR that referenced this pull request Jul 16, 2024
* Add entropy coding option

* Use CAVLC as default option

* Update description for entropy options

* Add entropy coding option to Linux

* Fix indentation

* Add missing break statements
korejan pushed a commit to korejan/ALVR that referenced this pull request Jul 20, 2024
* Add entropy coding option

* Use CAVLC as default option

* Update description for entropy options

* Add entropy coding option to Linux

* Fix indentation

* Add missing break statements
korejan pushed a commit to korejan/ALVR that referenced this pull request Jul 27, 2024
* Add entropy coding option

* Use CAVLC as default option

* Update description for entropy options

* Add entropy coding option to Linux

* Fix indentation

* Add missing break statements
korejan pushed a commit to korejan/ALVR that referenced this pull request Jul 27, 2024
* Add entropy coding option

* Use CAVLC as default option

* Update description for entropy options

* Add entropy coding option to Linux

* Fix indentation

* Add missing break statements
korejan pushed a commit to korejan/ALVR that referenced this pull request Aug 26, 2024
* Add entropy coding option

* Use CAVLC as default option

* Update description for entropy options

* Add entropy coding option to Linux

* Fix indentation

* Add missing break statements
korejan pushed a commit to korejan/ALVR that referenced this pull request Aug 26, 2024
* Add entropy coding option

* Use CAVLC as default option

* Update description for entropy options

* Add entropy coding option to Linux

* Fix indentation

* Add missing break statements
korejan pushed a commit to korejan/ALVR that referenced this pull request Aug 31, 2024
* Add entropy coding option

* Use CAVLC as default option

* Update description for entropy options

* Add entropy coding option to Linux

* Fix indentation

* Add missing break statements
korejan pushed a commit to korejan/ALVR that referenced this pull request Sep 1, 2024
* Add entropy coding option

* Use CAVLC as default option

* Update description for entropy options

* Add entropy coding option to Linux

* Fix indentation

* Add missing break statements
korejan pushed a commit to korejan/ALVR that referenced this pull request Sep 9, 2024
* Add entropy coding option

* Use CAVLC as default option

* Update description for entropy options

* Add entropy coding option to Linux

* Fix indentation

* Add missing break statements
korejan pushed a commit to korejan/ALVR that referenced this pull request Sep 11, 2024
* Add entropy coding option

* Use CAVLC as default option

* Update description for entropy options

* Add entropy coding option to Linux

* Fix indentation

* Add missing break statements
korejan pushed a commit to korejan/ALVR that referenced this pull request Sep 14, 2024
* Add entropy coding option

* Use CAVLC as default option

* Update description for entropy options

* Add entropy coding option to Linux

* Fix indentation

* Add missing break statements
korejan pushed a commit to korejan/ALVR that referenced this pull request Sep 21, 2024
* Add entropy coding option

* Use CAVLC as default option

* Update description for entropy options

* Add entropy coding option to Linux

* Fix indentation

* Add missing break statements
korejan pushed a commit to korejan/ALVR that referenced this pull request Sep 21, 2024
* Add entropy coding option

* Use CAVLC as default option

* Update description for entropy options

* Add entropy coding option to Linux

* Fix indentation

* Add missing break statements
korejan pushed a commit to korejan/ALVR that referenced this pull request Sep 22, 2024
* Add entropy coding option

* Use CAVLC as default option

* Update description for entropy options

* Add entropy coding option to Linux

* Fix indentation

* Add missing break statements
korejan pushed a commit to korejan/ALVR that referenced this pull request Sep 29, 2024
* Add entropy coding option

* Use CAVLC as default option

* Update description for entropy options

* Add entropy coding option to Linux

* Fix indentation

* Add missing break statements
korejan pushed a commit to korejan/ALVR that referenced this pull request Oct 3, 2024
* Add entropy coding option

* Use CAVLC as default option

* Update description for entropy options

* Add entropy coding option to Linux

* Fix indentation

* Add missing break statements
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.

3 participants