FFmpeg git repo
Go to file
Rostislav Pehlivanov 38fd4c2e66 aaccoder: add a new perceptual noise substitution implementation
This commit finalizes the PNS implementation previously added to the encoder
by moving it to a seperate function search_for_pns() and thus making it
coder-generic. This new implementation makes use of the spread field of
the psy bands and the lambda quality feedback paremeter. The spread of the
spectrum in a band prevents PNS from being used excessively and thus preserve
more phase information in high frequencies.  The lambda parameter allows
the number of PNS-marked bands to vary based on the lambda parameter and the
amount of bits available, making better choices on which bands are to be marked
as noise. Comparisons with the previous PNS implementation can be found
here: https://trac.ffmpeg.org/attachment/wiki/Encode/AAC/

This is V2 of the patch, the changes from the previous version being that this
version uses the new band->spread metric from aacpsy and normalizes the
energy using the group size. These changes were suggested by Claudio Freire
on the mailing list. Another change is the use of lambda to alter the
frequency threshold. This change makes the actual threshold frequencies
vary between +-2Khz of what's specified, depending on frame encoding performance.

Reviewed-by: Claudio Freire <klaussfreire@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-05 16:39:06 +02:00
compat
doc avfilter/avf_showvolume: make it possible to use current channel number in color expression 2015-07-03 18:43:21 +00:00
libavcodec aaccoder: add a new perceptual noise substitution implementation 2015-07-05 16:39:06 +02:00
libavdevice lavd: Add library identifier 2015-07-01 00:13:58 +01:00
libavfilter avfilter/avf_showvolume: make it possible to use current channel number in color expression 2015-07-03 18:43:21 +00:00
libavformat avformat/yuv4mpegenc: use avio_printf() 2015-07-03 18:43:21 +00:00
libavresample
libavutil Merge commit '832129431fd5c693b12c32a1563944c631feaf36' 2015-07-03 21:06:46 +02:00
libpostproc
libswresample
libswscale YUV->BGR32 MMX support 2015-07-04 00:03:45 +02:00
presets
tests fate/api-tests: Tests that need samples should only run if SAMPLES is set 2015-07-04 02:15:16 +02:00
tools
.gitattributes
.gitignore Merge commit '1316df7aa98c4784f190d107206d0bb12c590b89' 2015-07-03 03:22:48 +02:00
COPYING.GPLv2
COPYING.GPLv3
COPYING.LGPLv2.1
COPYING.LGPLv3
CREDITS
Changelog lavfi: add (a)drawgraph filter 2015-07-03 18:43:21 +00:00
INSTALL.md
LICENSE.md
MAINTAINERS
Makefile Merge commit '1316df7aa98c4784f190d107206d0bb12c590b89' 2015-07-03 03:22:48 +02:00
README.md
RELEASE
arch.mak
cmdutils.c lavu: add an API function to return the Libav version string 2015-07-02 23:22:53 +02:00
cmdutils.h
cmdutils_common_opts.h
cmdutils_opencl.c
common.mak
configure ffmpeg: windows: respond to logoff and ctrl+break messages as well 2015-07-01 01:00:38 +02:00
ffmpeg.c ffmpeg: windows: respond to logoff and ctrl+break messages as well 2015-07-01 01:00:38 +02:00
ffmpeg.h
ffmpeg_dxva2.c
ffmpeg_filter.c ffmpeg_filter: log more information on failure to init simple filter graph 2015-07-02 04:56:10 +02:00
ffmpeg_opt.c ffmpeg_opt: Favor streams that had packets 2015-07-01 22:43:26 +02:00
ffmpeg_vda.c
ffmpeg_vdpau.c
ffplay.c
ffprobe.c
ffserver.c
ffserver_config.c
ffserver_config.h
library.mak
version.sh

README.md

FFmpeg README

FFmpeg is a collection of libraries and tools to process multimedia content such as audio, video, subtitles and related metadata.

Libraries

  • libavcodec provides implementation of a wider range of codecs.
  • libavformat implements streaming protocols, container formats and basic I/O access.
  • libavutil includes hashers, decompressors and miscellaneous utility functions.
  • libavfilter provides a mean to alter decoded Audio and Video through chain of filters.
  • libavdevice provides an abstraction to access capture and playback devices.
  • libswresample implements audio mixing and resampling routines.
  • libswscale implements color conversion and scaling routines.

Tools

  • ffmpeg is a command line toolbox to manipulate, convert and stream multimedia content.
  • ffplay is a minimalistic multimedia player.
  • ffprobe is a simple analysis tool to inspect multimedia content.
  • ffserver is a multimedia streaming server for live broadcasts.
  • Additional small tools such as aviocat, ismindex and qt-faststart.

Documentation

The offline documentation is available in the doc/ directory.

The online documentation is available in the main website and in the wiki.

Examples

Coding examples are available in the doc/examples directory.

License

FFmpeg codebase is mainly LGPL-licensed with optional components licensed under GPL. Please refer to the LICENSE file for detailed information.