⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 shorten.1

📁 无损音频压缩源码. 毕业设计 qq 64134703 更多毕业设计 www.rmlcd.cn
💻 1
字号:
.TH SHORTEN 1 "12 August 2001".SH NAMEshorten \- fast compression for waveform files.SH SYNOPSIS.B shorten[-hlu] [-a #bytes] [-b #samples] [-c #channels] [-d #bytes] [-m #blocks][-n #dB] [-p #order] [-q #bits] [-r #bits] [-t filetype] [-v #version][waveform-file [shortened-file]].LP.B shorten -x[-hl] [ -a #bytes] [-d #bytes]  [shortened-file [waveform-file]].LP.B shorten[ -e | -i | -k | -s | -S<name> ] shortened-file.LP.B shorten[ -s | -S<name> ] < shortened-data.SH DESCRIPTION.IX  shorten ""  "\fLshorten\fP \(em compress waveform files".IX  files  "shorten command"  files  "\fLshorten\fP \(em compress waveform files".LP.B shortenreduces the size of waveform files (such as audio) using Huffman codingof prediction residuals and optional additional quantisation.  Inlossless mode the amount of compression obtained depends on the natureof the waveform.  Those composing of low frequencies and lowamplitudes give the best compression, which may be 2:1 or better.Lossy compression operates by specifying a minimum acceptablesegmental signal to noise ratio or a maximum bit rate.   Lossycompression operates by zeroing the lower order bits of the waveform,so retaining waveform shape..LPIf both file names are specified then these are used as the input andoutput files.  The first file name can be replaced by "-" to read fromstandard input and likewise the second filename can be replaced by "-"to write to standard output.  Under UNIX, if only one file name isspecified, then that name is used for input and the output file nameis generated by adding the suffix ".shn" on compression and removingthe ".shn" suffix on decompression.  In these cases the input file isremoved on completion.  The use of automatic file name generation isnot currently supported under DOS.  If no file names are specified,shorten reads from standard input and writes to standard output.Whenever possible, the output file inherits the permissions, owner,group, access and modification times of the input file..LPFrom release 2.3 the RIFF WAVE (Microsoft .wav) file type is thedefault.  These files contain enough information to set most of theswitches presented below, so effective operation is obtained just bysetting the desired level of compression (-n or -r switch)..SH OPTIONS.TP.BI \-a " align bytes"Specify the number of bytes to be copied verbatim before compressionbegins.  This option can be used to preserve fixed length ASCIIheaders on waveform files, and may be necessary if the header lengthis an odd number of bytes..TP.BI \-b " block size"Specify the number of samples to be grouped into a block for processing.Within a block the signal elements are expected to have the samespectral characteristics.  The default option works well for a largerange of audio files..TP.BI \-c " channels"Specify the number of independent interwoven channels.  For two signals,a(t) and b(t) the original data format is assumed to bea(0),b(0),a(1),b(1)....TP.BI \-d " discard bytes"Specify the number of bytes to be discarded before compression ordecompression.  This may be used to delete header information from afile.  Refer to the -a option for storing the header information in thecompressed file..TP.BI \-eErase seek information from an existing file..TP.BI \-hGive a short message specifying usage options..TP.BI \-iInquire as to whether the given file has a seek table appended to it..TP.BI \-kAppend seek information to an existing file..TP.BI \-lPrints the software license specifying the conditions for thedistribution and usage of this software..TP.BI \-m " blocks"Specify the number of past blocks to be used to estimate the mean andpower of the signal.  The value of zero disables this prediction andthe mean is assumed to lie in the middle of the range of the relevantdata type (i.e. at zero for signed quantities).   The default value isnon-zero for format versions 2.0 and above..TP.BI \-n " noise level"Specify the minimum acceptable segmental signal to noise ratio in dB.The signal power is taken as the variance of the samples in the currentblock.  The noise power is the quantisation noise incurred by coding thecurrent block assuming that samples are uniformally distributed over thequantisation interval.  The bit rate is dynamically changed to maintainthe desired signal to noise ratio.  The default value representslossless coding..TP.BI \-p " prediction order"Specify the maximum order of the linear predictive filter.  Thedefault value of zero disables the use of linear prediction and apolynomial interpolation method is used instead.  The use of thelinear predictive filter generally results in a small improvement incompression ratio at the expense of execution time.   This is the onlyoption to use a significant amount of floating point processing duringcompression.  Decompression still uses a minimal number of floatingpoint operations.Decompression time is normally about twice that of the defaultpolynomial interpolation.  For version 0 and 1, compression time islinear in the specified maximum order as all lower values are searchedfor the greatest expected compression (the number of bits required totransmit the prediction residual is monotonically decreasing withprediction order, but transmitting each filter coefficient requiresabout 7 bits).   For version 2 and above, the search is started atzero order and terminated when the last two prediction orders give alarger expected bit rate than the minimum found to date.   This is areasonable strategy for many real world signals - you may revert backto the exhaustive algorithm by setting -v1 to check that this worksfor your signal type..TP.BI \-q " quantisation level"Specify the number of low order bits in each sample which can bediscarded (set to zero).  This is useful if these bits carry noinformation, for example when the signal is corrupted by noise..TP.BI \-r " bit rate"Specify the expected maximum number of bits per sample.  The upper boundon the bit rate is achieved by setting the low order bits of the sampleto zero, hence maximising the segmental signal to noise ratio..TP.BI \-sWrite seek table information to a separate file(uses shortened file name with '.skt' extension).If the shortened data is read from standard input, then the seek tableinformation will be saved in 'stdin.skt'..TP.BI \-S "<name>"Write seek table information to a separate filegiven by "<name>"..TP.BI \-t " file type"Gives the type of the sound sample file as one of aiff, wav, s8, u8,s16, u16, s16x, u16x, s16hl, u16hl, s16lh, u16lh, ulaw, or alaw.The simple types are listed first and have an initial s or u for signedor unsigned data, followed by 8 or 16 as the number of bits per sample.No further extension means the data is in the natural byte order, atrailing x specifies byte swapped data, hl explicitly states the byteorder as high byte followed by low byte and lh the converse.  Hence s16means signed 16 bit integers in the natural byte order (like C wouldfwrite() shorts).ulaw is the natural file type of ulaw encoded files (such as the defaultsun .au files) and alaw is a similar byte-packed scheme.  Specificoptimisations are applied to ulaw and alaw files.  If losslesscompression is specified with ulaw files then a check is made that thewhole dynamic range is used (useful for files recorded on a SparcStationwith the volume set too high).  Lossless coding of both file types usesan internal format with a monotonic mapping to linear.  If lossycompression is specified then the data is internally converted tolinear.  The lossy option "-r4" has been observed to give littledegradation and provides 2:1 compression.With the types listed above you should explicitly set the number ofchannels (if not mono) with -c and if the file contains a header thesize should be specified with -a.  This is most important for lossycompression which will lead to data corruption if a file header isinadvertently lossy coded.Finally, as of version 2.3, the file type may be specified as wav (thedefault).  In this case the file to be compressed is interogated for thespecific data type (chosen from the above) and the number of channels tobe used.  The header length alignment (-a flag) is also automatic solossless compression requires no switches to be set and lossycompression requires only that the compression level be set with -n or-r..TP.BI \-uThe ulaw standard (ITU G711) has two codes which both map onto the zerovalue on a linear scale.   The "-u" flag maps the negative zero onto thepositive zero and so yields marginally better compression for formatversion 2 (the gain is significant for older format versions)..TP.BI \-v " version"Specify the binary format version number of compressed files.   Legalvalues are currently 1, 2 and 3, with higher numbers generally givingbetter compression.  2 and 3 are identical, with the exception that 2does not generate seek tables, while 3 does.  Detection of formatversion on decode is automatic..TP.BI \-x " extract"Reconstruct the original file.  All other command lineoptions except -a and -d are ignored..SH METHODOLOGYshorten works by blocking the signal, making a model of each block in orderto remove temporal redundancy, then Huffman coding the quantised predictionresidual..SS BlockingThe signal is read in a block of about 128 or 256 samples, andconverted to integers with expected mean of zero.  Sample-wise-interleaveddata is converted to separate channels, which are assumed independent..SS DecorrelationFour functions are computed, corresponding to thesignal, difference signal, second and third order differences.  Theone with the lowest variance is coded.  The variance is measured bysumming absolute values for speed and to avoid overflow..SS CompressionIt is assumed the signal has the Laplacian probability density functionof exp(-abs(x)).  There is a computationally efficient way of mappingthis density to Huffman codes, The code is in four parts: a run ofzeros; a bounding one; a fixed number of bits mantissa; and the signbit.  The number of leading zeros gives the offset from zero.  Someexamples for a 2 bit mantissa:.LP.RS.ft B.nfValue  zeros  stopbit  mantissa  signbit  total code0             1        00        0        10001             1        01        0        10102             1        10        0        10104      0      1        00        0        010007      0      1        11        0        011108      00     1        00        0        001000-1            1        00        1        1001-2            1        01        1        1011-7     0      1        10        1        01101.fi.ft R.RENote that negative numbers are offset by one as there is no need to havetwo zero codes.  The technical report CUED/F-INFENG/TR.156 included withthe shorten distribution as files tr154.tex and tr154.ps contains bugsin this format description and is superceeded by this man page..SH EMBEDDED OPERATIONShorten may be used embedded within other programs.  shorten is afunction call implemented in the file shorten.c.  The file main.cprovides a wrapper for stand alone operation.  A simple example ofebedded operation can be found in the file embedded.c.   Full windowsDLL operation is provided in the windll subdirectory..SH SEE ALSO.BR compress (1), pack (1)..LP.SH DIAGNOSTICS.LPExit status is normally 0.  A warning is issued if the file is not properlyaligned, i.e. a whole number of records could not be read at the endof the file..SH BUGSAn easy way to test shorten for your system isto use "make check", if this fails, for whatever reason, please report itto <shnutils@freeshell.org>..LPNo check is made for increasing file size, but valid waveform filesgenerally achieve some compression.  Even compressing a file of randombytes (which represents the worst case waveform file) only results in asmall increase in the file length (about 6% for 8 bit data and 3% for 16bit data).  There is one condition that is know to be problematic, thatis the lossy compression of unsigned data without mean estimation -large file sizes may result if the mean is far from the middle rangevalue.  For these files the value of the -m switch should be non-zero,as it is by default in format version 2..LPThere is no provision for different channels containing different data types.Normally, this is not a restriction, but it does mean that if lossy codingis selected for the ulaw type, then all channels use lossy coding..LPThe technical report CUED/F-INFENG/TR.156 (included in the shortendistribution) report contains errors in the bitfield format descriptionand is superceeded by this document..LPSee the file "ChangeLog" for a history of bug fixes and feature additions..LPPlease mail Jason Jordan at the address below if you find a bug in shorteninvolving seek tables..LPPlease mail Brian Willoughby at the address below if you find a bug in theAIFF implementation..LPPlease mail Tony Robinson immediately at the address below if you find a bug inshorten that is NOT related to seek tables or AIFF support.  Make sure you canreproduce your bug using version 2.3a, the last version known to be released by him..SH AVAILABILITYThe latest 2.x and 3.x versions can be obtained from<http://www.etree.org/shnutils/shorten/> or <http://shnutils.freeshell.org/shorten/>..SH AUTHORSCopyright (C) 1992-1999 by Tony Robinson and SoftSound Ltd(ajr@softsound.com).LPUnix maintenance of 3.x versions by Jason Jordan <shnutils@freeshell.org>..LPAIFF support and maintenance by Brian Willoughby <shorten@sounds.wa.com>of Sound Consulting <http://sounds.wa.com/>..LPShorten is available for non-commercial use without fee.  See theLICENSE file for the formal copying and usage restrictions.  Forsupported versions please see http://www.softsound.com/Shorten.html andfor commercial use please contact shorten@softsound.com

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -