- enabled piped input for Windows
- added an option to specify a time range to analyze
- simplified the calculation
Thursday, September 14, 2006
wavrms changes
I have done some modification to the wavrms utility program which can be used to give a dialnorm setting recommendation.
Monday, September 11, 2006
Thank you Xiphorous
I have substituted the FFmpeg MDCT implementation with the one from libvorbis, which is faster. The only side-effect is that there are 2 files now (mdct.c, mdct.h) which fall under the Xiph BSD-style license rather than the LGPL like the rest of Aften.
The AC-3 short-block MDCT is not a standard MDCT, so I had to modify it a bit to get it to work properly. The result is a small slow-down (but still faster than the previous MDCT) which I hope to fix before too long.
The AC-3 short-block MDCT is not a standard MDCT, so I had to modify it a bit to get it to work properly. The result is a small slow-down (but still faster than the previous MDCT) which I hope to fix before too long.
Friday, September 08, 2006
new optional speed-up
I've added a new encoding option which will sacrifice some accuracy in the bit allocation by skipping the binary search. This gives about a 4% to 5% speed-up. The commandline option for Aften is "-fba 1" (stands for fast bit allocation).
update & small speed increase
It's been several days since my last update. I've mostly been trying to iron-out the dynamic range compression. In the meantime, I've applied a couple minor changes to dsp.c which together give about a 3%-4% speed-up on my system.
Saturday, September 02, 2006
new cbr search method
I implemented a new search method for CBR bit allocation which gives about 6% 10% faster encoding than with the old method.
old method:
old method:
- estimate snr based on last frame
- decrement snr in large steps until data fits in frame
- increment snr in medium steps while data still fits in frame
- increment snr in small steps while data still fits in frame
- estimate snr based on last frame
- narrow the search range by doing a weighted increment or decrement of snr based on how close it is to optimal sliding a 16-wide window up or down until it overlaps the optimal value.
- do a binary search for the optimal snr value
Monday, August 21, 2006
version 0.05
Version 0.05 has been released. The speed increase since version 0.04 really warranted another release. There have also been a few bug fixes.
http://sourceforge.net/projects/aften/
http://sourceforge.net/projects/aften/
Saturday, August 19, 2006
doubles or floats
I decided to switch the default configuration for the floating-point type. Now using floats is default, and "--enable-double" enables use of doubles.
Friday, August 18, 2006
floats or doubles
There is now a configure switch to enable use of floats internally instead of doubles. This is less accurate, but faster. To use floats, just add "--enable-float" when running configure. Otherwise, Aften will use doubles.
Saturday, August 12, 2006
Sample Format choices
I have modified by libaften and the Aften wav reader to be able to use various sample formats. Aften still uses doubles internally, but the input can be any one of the most common pcm sample format types.
It wasn't absolutely necessary for me to add this functionality to the wav reader, but I did it so that wav.c can be easily reused for other purposes.
It wasn't absolutely necessary for me to add this functionality to the wav reader, but I did it so that wav.c can be easily reused for other purposes.
Friday, August 11, 2006
more functional separation
I moved all of the exponent processing functions from a52enc.c to exponent.c. This was in preparation for a new exponent strategy decision algorithm, which I am working on now.
Monday, August 07, 2006
bit allocation speedup
Thanks to the help of Prakash Punnoor (prakash@punnoor.de), the bit allocation in Aften is much faster. On my system, there was a 22% speedup for CBR and 36% speedup for VBR!!
Sunday, August 06, 2006
Daily builds
I have setup daily builds from SVN. Every day at 4:50am EST my computer will get the latest SVN version of Aften and build a source package and a Windows binary package. They will be located at:
http://jbr.homelinux.org/aften/daily/
http://jbr.homelinux.org/aften/daily/
Saturday, August 05, 2006
Aften 0.04 released
I have setup a Sourceforge project for Aften, where I have released version 0.04.
Benefits of putting Aften on Sourceforge:
Benefits of putting Aften on Sourceforge:
- SVN access to the latest development changes.
- Organized file releases
- Mailing lists (currently, there is only an svnlog mailing list)
- More publicity
- Opportunity for other developers to join the project
- Web hosting (the new Aften webpage is http://aften.sourceforge.net)
Friday, August 04, 2006
Default Bitrate
I made a few minor changes regarding bitrate. First, CBR mode is now the default instead of VBR. The default CBR bitrate is chosen based on the number of full-bandwidth channels.
1: 96 kbps
2: 192 kbps
3: 256 kbps
4: 384 kbps
5: 448 kbps
I modified the Aften commandline to accept bitrate in kbps instead of bps (i.e. '-b 192' instead of '-b 192000').
Now you can use the '-b' option along with the '-q' option. This will use VBR mode and use the given bitrate as a maximum bitrate.
1: 96 kbps
2: 192 kbps
3: 256 kbps
4: 384 kbps
5: 448 kbps
I modified the Aften commandline to accept bitrate in kbps instead of bps (i.e. '-b 192' instead of '-b 192000').
Now you can use the '-b' option along with the '-q' option. This will use VBR mode and use the given bitrate as a maximum bitrate.
Wednesday, August 02, 2006
libaften
I finally created a libaften! If there are no problems with the new configure/build system, I will release version 0.04 soon.
I decided not to make the filter library separate. It just made things too complicated. So now there is the base directory, aften, libaften, and util. Currently only a static library is built, but I will eventually add support for compiling a dynamic library/dll.
I decided not to make the filter library separate. It just made things too complicated. So now there is the base directory, aften, libaften, and util. Currently only a static library is built, but I will eventually add support for compiling a dynamic library/dll.
Tuesday, August 01, 2006
Bandwidth stuff
I have done some reworking of the bandwidth calculation. Now there are 2 adaptive modes. The default is now a fixed adaptive bandwidth, which is chosen at the start of encoding based on either the quality or bitrate setting. The other is the same variable bandwidth as before, but with a different formula. I did this mainly to make the bandwidth filter work better. There is a distinct quality difference in the high frequencies when using the fixed adaptive bandwidth coupled with the bandwidth pre-encoding filter.
commandline option changes:
'-bwfilter 1' = enable bandwidth filter
'-w -1' = fixed adaptive bandwidth (default)
'-w -2' = variable adaptive bandwidth (cannot use bandwidth filter w/ this mode)
commandline option changes:
'-bwfilter 1' = enable bandwidth filter
'-w -1' = fixed adaptive bandwidth (default)
'-w -2' = variable adaptive bandwidth (cannot use bandwidth filter w/ this mode)
Monday, July 31, 2006
filters
Added commandline options for the DC high-pass filter and the LFE low-pass filter.
The commandline switches are '-dcfilter <0|1>' and '-lfefilter <0|1>'.
The commandline switches are '-dcfilter <0|1>' and '-lfefilter <0|1>'.
short-term plans
Here is a small list of short-term development plans. I hope to get all this done in the next week or so. Once these are done, I will release a new version 0.04.
- separate the CRC code to its own file
- add optional DC high-pass and LFE low-pass filters
- completely redo the variable bandwidth system
- add an optional bandwidth low-pass filter
- overhaul the configuration system
- separate aften frontend, libaften, libfilter, and utils
Filter Library
I created a separate filter library, which will be used for all input audio filters. Currently it is only used for the transient-detection high-pass filter. Also, I changed Aften to use doubles instead of floats for pretty much everything.
The configuration system might be a little unstable on non-Linux systems right now. I am planning on doing some updates soon.
The configuration system might be a little unstable on non-Linux systems right now. I am planning on doing some updates soon.
Friday, July 28, 2006
Small xbsi change
Added 2 commandline options, '-xbsi1' and '-xbsi2'. These must be used if the user wants the extended bit stream info to be written to the AC-3 file. Even if options in the extended bit stream info are specified on the commandline, they will not be encoded without explicitly adding the corresponding xbsi option. This was done to make simplifying the option parsing easier.
Header Reorganization
As one step forward in creating a libaften, I have reorganized the stucts to provide more complete separation of aften.h as a public header from the other private headers.
Alternate Bit Stream Syntax
I have added 8 new commandline options to Aften which correspond to the parameters in the Alternate Bit Stream Syntax, which is defined by Annex C of the A/52A spec. These are metadata parameters which affect interpretation by the decoder and/or receiver. Run "aften -h" to view the new options.
Sunday, July 23, 2006
channel map changes
In order to support broken/incorrect/non-standard wav files, I have made a couple changes. The first was to detect use of either back-left/back-right or side-left/side-right as the stereo surround channels. The second was to allow the user to specify the audio coding mode and presence of the LFE channel on the commandline (e.g. "-acmod 7 -lfe 1"). Only the number of channels must match the specified settings.
Saturday, July 22, 2006
First post
Aftenblog is open. This is a development blog for Aften, an AC3 encoder. I created it so I can have a space to post program updates and general thoughts regarding Aften and the AC3 format.
Subscribe to:
Posts (Atom)
