Showing the changes to libavcodec/aaccoder_twoloop.h (1 of 303 files). Show all
Unified · Split
| @@ -311,14 +311,14 @@ static void search_for_quantizers_twoloop(AVCodecContext *avctx, · 310 unmodified lines | |||
| 311 | 311 | ||
| 312 | /** | 312 | /** |
| 313 | * Scale uplims to match rate distortion to quality | 313 | * Scale uplims to match rate distortion to quality |
| 314 | * bu applying noisy band depriorization and tonal band priorization. | 314 | * bu applying noisy band depriorization and tonal band prioritization. |
| 315 | * Maxval-energy ratio gives us an idea of how noisy/tonal the band is. | 315 | * Maxval-energy ratio gives us an idea of how noisy/tonal the band is. |
| 316 | * If maxval^2 ~ energy, then that band is mostly noise, and we can relax | 316 | * If maxval^2 ~ energy, then that band is mostly noise, and we can relax |
| 317 | * rate distortion requirements. | 317 | * rate distortion requirements. |
| 318 | */ | 318 | */ |
| 319 | memcpy(euplims, uplims, sizeof(euplims)); | 319 | memcpy(euplims, uplims, sizeof(euplims)); |
| 320 | for (w = 0; w < sce->ics.num_windows; w += sce->ics.group_len[w]) { | 320 | for (w = 0; w < sce->ics.num_windows; w += sce->ics.group_len[w]) { |
| 321 | /** psy already priorizes transients to some extent */ | 321 | /** psy already prioritizes transients to some extent */ |
| 322 | float de_psy_factor = (sce->ics.num_windows > 1) ? 8.0f / sce->ics.group_len[w] : 1.0f; | 322 | float de_psy_factor = (sce->ics.num_windows > 1) ? 8.0f / sce->ics.group_len[w] : 1.0f; |
| 323 | start = w*128; | 323 | start = w*128; |
| 324 | for (g = 0; g < sce->ics.num_swb; g++) { | 324 | for (g = 0; g < sce->ics.num_swb; g++) { |
| @@ -331,7 +331,7 @@ static void search_for_quantizers_twoloop(AVCodecContext *avctx, · 6 unmodified lines | |||
| 331 | nzslope * cleanup_factor); | 331 | nzslope * cleanup_factor); |
| 332 | energy2uplim *= de_psy_factor; | 332 | energy2uplim *= de_psy_factor; |
| 333 | if (!(avctx->flags & AV_CODEC_FLAG_QSCALE)) { | 333 | if (!(avctx->flags & AV_CODEC_FLAG_QSCALE)) { |
| 334 | /** In ABR, we need to priorize less and let rate control do its thing */ | 334 | /** In ABR, we need to prioritize less and let rate control do its thing */ |
| 335 | energy2uplim = sqrtf(energy2uplim); | 335 | energy2uplim = sqrtf(energy2uplim); |
| 336 | } | 336 | } |
| 337 | energy2uplim = FFMAX(0.015625f, FFMIN(1.0f, energy2uplim)); | 337 | energy2uplim = FFMAX(0.015625f, FFMIN(1.0f, energy2uplim)); |
| @@ -345,7 +345,7 @@ static void search_for_quantizers_twoloop(AVCodecContext *avctx, · 7 unmodified lines | |||
| 345 | 2.0f); | 345 | 2.0f); |
| 346 | energy2uplim *= de_psy_factor; | 346 | energy2uplim *= de_psy_factor; |
| 347 | if (!(avctx->flags & AV_CODEC_FLAG_QSCALE)) { | 347 | if (!(avctx->flags & AV_CODEC_FLAG_QSCALE)) { |
| 348 | /** In ABR, we need to priorize less and let rate control do its thing */ | 348 | /** In ABR, we need to prioritize less and let rate control do its thing */ |
| 349 | energy2uplim = sqrtf(energy2uplim); | 349 | energy2uplim = sqrtf(energy2uplim); |
| 350 | } | 350 | } |
| 351 | energy2uplim = FFMAX(0.015625f, FFMIN(1.0f, energy2uplim)); | 351 | energy2uplim = FFMAX(0.015625f, FFMIN(1.0f, energy2uplim)); |