1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2024-12-28 20:53:54 +02:00
FFmpeg/tests/fate
Claudio Freire 01ecb7172b AAC encoder: Extensive improvements
This finalizes merging of the work in the patches in ticket #2686.

Improvements to twoloop and RC logic are extensive.

The non-exhaustive list of twoloop improvments includes:
 - Tweaks to distortion limits on the RD optimization phase of twoloop
 - Deeper search in twoloop
 - PNS information marking to let twoloop decide when to use it
   (turned out having the decision made separately wasn't working)
 - Tonal band detection and priorization
 - Better band energy conservation rules
 - Strict hole avoidance

For rate control:
 - Use psymodel's bit allocation to allow proper use of the bit
   reservoir. Don't work against the bit reservoir by moving lambda
   in the opposite direction when psymodel decides to allocate more/less
   bits to a frame.
 - Retry the encode if the effective rate lies outside a reasonable
   margin of psymodel's allocation or the selected ABR.
 - Log average lambda at the end. Useful info for everyone, but especially
   for tuning of the various encoder constants that relate to lambda
   feedback.

Psy:
 - Do not apply lowpass with a FIR filter, instead just let the coder
   zero bands above the cutoff. The FIR filter induces group delay,
   and while zeroing bands causes ripple, it's lost in the quantization
   noise.
 - Experimental VBR bit allocation code
 - Tweak automatic lowpass filter threshold to maximize audio bandwidth
   at all bitrates while still providing acceptable, stable quality.

I/S:
 - Phase decision fixes. Unrelated to #2686, but the bugs only surfaced
   when the merge was finalized. Measure I/S band energy accounting for
   phase, and prevent I/S and M/S from being applied both.

PNS:
 - Avoid marking short bands with PNS when they're part of a window
   group in which there's a large variation of energy from one window
   to the next. PNS can't preserve those and the effect is extremely
   noticeable.

M/S:
 - Implement BMLD protection similar to the specified in
   ISO-IEC/13818:7-2003, Appendix C Section 6.1. Since M/S decision
   doesn't conform to section 6.1, a different method had to be
   implemented, but should provide equivalent protection.
 - Move the decision logic closer to the method specified in
   ISO-IEC/13818:7-2003, Appendix C Section 6.1. Specifically,
   make sure M/S needs less bits than dual stereo.
 - Don't apply M/S in bands that are using I/S

Now, this of course needed adjustments in the compare targets and
fuzz factors of the AAC encoder's fate tests, but if wondering why
the targets go up (more distortion), consider the previous coder
was using too many bits on LF content (far more than required by
psy), and thus those signals will now be more distorted, not less.

The extra distortion isn't audible though, I carried extensive
ABX testing to make sure.

A very similar patch was also extensively tested by Kamendo2 in
the context of #2686.
2015-10-11 17:29:50 -03:00
..
aac.mak AAC encoder: Extensive improvements 2015-10-11 17:29:50 -03:00
ac3.mak fate: replace deprecated request_channels with request_channel_layout 2015-08-22 19:16:13 +02:00
acodec.mak fate: explicitly specify audio bitrate for adpcm/mp2fixed tests. 2015-08-17 18:13:03 -04:00
adpcm.mak
alac.mak
als.mak
amrnb.mak
amrwb.mak
api.mak fate: add api-band-test 2015-08-24 03:54:55 +02:00
atrac.mak fate: Add atrac3+ tests 2015-04-12 00:15:58 +02:00
audio.mak Merge commit 'acbe15a99f158dbb0edb837fb6557171dc4376d4' 2015-03-15 22:20:15 +01:00
avformat.mak tests/fate: added mxf opatom audio regression tests 2015-04-13 02:08:46 +02:00
bmp.mak
cdxl.mak
checkasm.mak fate: add checkasm target 2015-07-18 01:06:45 +02:00
cover-art.mak
demux.mak fate: test ea vp6 with alpha stream 2015-06-26 14:39:11 +02:00
dfa.mak
dnxhd.mak fate: add DNxHD/HR tests 2015-10-09 22:36:05 +02:00
dpcm.mak
ea.mak
exif.mak
ffmpeg.mak fate: add -fflags +bitexact in a few places. 2015-08-17 19:14:37 -04:00
ffprobe.mak fate: Make ffprobe tests depend on avdevice 2015-07-22 22:26:10 +02:00
fft.mak
filter-audio.mak fate: use 'c' for setting the channel_layout 2015-08-31 13:49:46 +02:00
filter-video.mak fate: add chroma position scale test 2015-09-23 23:42:28 +02:00
flac.mak avcodec/flacenc: Regression test for ticket #4628 2015-06-17 22:47:17 +02:00
gapless.mak fate: gapless: remove useless tests 2015-04-22 19:28:07 +02:00
gif.mak
h264.mak
hevc.mak tests/fate/hevc: Use a bitexact scaler in the hevc param change test to avoid failing on non x86 2015-04-03 22:48:33 +02:00
image.mak Merge commit 'a16854892c3af945d3ab0015699a0c9884f0a89a' 2015-07-22 17:59:24 +02:00
indeo.mak
libavcodec.mak fate/api-tests: Move api-flac-test to API tests directory. 2015-06-27 03:43:23 +02:00
libavdevice.mak
libavformat.mak fate: add test for async protocol 2015-07-21 15:19:42 +02:00
libavresample.mak Merge commit 'c060d046aa2f89c0e601a2dcfbce53f0e36cf498' 2015-06-21 20:55:23 +02:00
libavutil.mak Add support for TEA (Tiny Encryption Algorithm) 2015-07-21 23:10:44 +02:00
libswresample.mak swresample: Choose 16bit internally only if input and output is 16bit or less 2015-06-21 17:33:46 +02:00
lossless-audio.mak Merge commit 'd3ea79e8a65ddad4da11813bb43c46701295f68c' 2015-06-28 11:41:23 +02:00
lossless-video.mak Merge commit 'fcda30f2dcb744d89df9d5d1ec89ba55279cb83c' 2015-04-20 05:19:03 +02:00
microsoft.mak Merge commit 'faa3f17a76333b672ce4a40cf80f678ab68bdbae' 2015-08-24 10:25:41 +02:00
monkeysaudio.mak
mp3.mak tests/fate/mp3: increase mp3-float-extra_overread FUZZ for ppc64be-RHEL7.0-gcc-4.8.2-ibmcrl to 23 from 20 2015-08-07 02:54:59 +02:00
mpc.mak
mpeg4.mak fate: add -fflags +bitexact to the relevant targets 2015-08-30 23:31:10 +02:00
mxf.mak
opus.mak
pcm.mak tests/fate: replace all -f md5 by framemd5 2015-09-06 03:23:02 +02:00
probe.mak
prores.mak
qt.mak
qtrle.mak
real.mak
screen.mak Merge commit 'a31c4b2cbef9aee15910fc3df52519aef46760de' 2015-07-02 00:34:24 +02:00
seek.mak fate: add mp3 CBR seek test 2015-04-23 12:56:31 +02:00
source-check.sh fate: Add basic license header check 2015-09-29 18:52:35 +02:00
source.mak fate: Add basic license header check 2015-09-29 18:52:35 +02:00
subtitles.mak fate/subtitles: add a new test for SAMI demuxer and decoder 2015-09-06 13:08:53 +02:00
utvideo.mak
vcodec.mak Merge commit 'e17db9ac496420f8824190ff5059a8a3646cbb7e' 2015-09-16 11:14:37 +02:00
video.mak Merge commit '9a3202a98b2e095b54dd784c3e01a09a676fc3fa' 2015-10-03 12:22:41 +02:00
voice.mak tests/fate: replace all -f md5 by framemd5 2015-09-06 03:23:02 +02:00
vorbis.mak
vpx.mak vp9: add profile 2/3 fate tests. 2015-05-07 07:19:49 -04:00
vqf.mak fate: add -fflags +bitexact to the relevant targets 2015-08-30 23:31:10 +02:00
wavpack.mak libavformat/matroska: Write stream durations in metadata, in the format of mkvmerge. 2015-08-05 22:29:23 +02:00
wma.mak tests/fate/wma: use the existing reference files for wmapro tests 2015-06-28 11:58:57 +02:00
xvid.mak