-
Notifications
You must be signed in to change notification settings - Fork 253
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
Derive quantizer index offsets for segments from distortion scales #2694
Conversation
src/rate.rs
Outdated
@@ -229,7 +229,7 @@ pub(crate) fn bexp64(logq57: i64) -> i64 { | |||
// input: a 64-bit integer in Q0 (no fraction). | |||
// output: a 64-bit log in Q57. | |||
// TODO: Mark const once we can use local variables in a const function. | |||
fn blog64(w: i64) -> i64 { | |||
pub fn blog64(w: i64) -> i64 { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
note to self, once it lands refactor the maths function from rate.rs to a stand alone file.
7568f6a
to
cb290cb
Compare
AWCY results at the default speed indicate more work is needed from this initial version:
|
Codecov ReportBase: 86.44% // Head: 86.44% // Decreases project coverage by
Additional details and impacted files@@ Coverage Diff @@
## master #2694 +/- ##
==========================================
- Coverage 86.44% 86.44% -0.01%
==========================================
Files 87 88 +1
Lines 33942 33957 +15
==========================================
+ Hits 29342 29354 +12
- Misses 4600 4603 +3
Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here. ☔ View full report at Codecov. |
fd93a89
to
c72d409
Compare
Wow, this seems much cleaner. Nice! |
11d2ddd
to
85ebf73
Compare
Update: Rebased on top of recent changes.
|
03d1bc3
to
0784825
Compare
I noticed the testing between different numbers of segments--the reasoning for the current version using a dynamic number of segments based on the variance of scores within the frame is because there is some amount of filesize overhead in using a higher number of segments (because they have to be coded). Therefore, we wanted to avoid coding segments that were not useful. If it's not possible to dynamically choose the segment count based on score variance, maybe a workaround could be to use 5 segments with low-to-mid quantizers, where the segmentation coding overhead is less significant, and 3 segments with higher quantizers where the segmentation coding would affect the overall filesize more. |
The goal is to retain a dynamic number of segments. The current testing is to measure the performance of an 'oracle' that picks the best number of segments for each clip. |
5c4ec67
to
a752a33
Compare
b276af9
to
e6c596e
Compare
Choose the value of k with lowest variance in spacing between the logs of the selected quantizers. AWCY results on objective-1-fast at the default speed: PSNR Y | PSNR Cb | PSNR Cr | CIEDE2000 | SSIM | MS-SSIM -0.3646 | -0.0796 | -0.3117 | -0.1695 | -0.2051 | -0.1797 PSNR-HVS Y | PSNR-HVS Cb | PSNR-HVS Cr | PSNR-HVS | VMAF | VMAF-NEG -0.3030 | 0.2454 | -0.2721 | -0.3020 | -0.4099 | -0.3882
AWCY results for objective-1-fast at default speed
|
Runs k-means on logarithms of distortion scale, with k chosen by variance in spacing of the result.
Now with more comments and AWCY results.