public class Quantize
extends java.lang.Object
| Constructor and Description |
|---|
Quantize() |
| Modifier and Type | Method and Description |
|---|---|
void |
bitpressure_strategy(LameInternalFlags gfc,
float[][][] l3_xmin,
int[][] min_bits,
int[][] max_bits) |
void |
calc_target_bits(LameGlobalFlags gfp,
float[][] pe,
float[] ms_ener_ratio,
int[][] targ_bits,
int[] analog_silence_bits,
int[] max_frame_bits)
calculates target bits for ABR encoding
mt 2000/05/31
|
void |
get_framebits(LameGlobalFlags gfp,
int[] frameBits)
Robert Hegemann 2000-09-05
calculates * how many bits are available for analog silent granules * how
many bits to use for the lowest allowed bitrate * how many bits each
bitrate would provide
|
void |
init_outer_loop(LameInternalFlags gfc,
GrInfo cod_info) |
boolean |
init_xrpow(LameInternalFlags gfc,
GrInfo cod_info,
float[] xrpow) |
void |
iteration_finish_one(LameInternalFlags gfc,
int gr,
int ch)
Robert Hegemann 2000-09-06
update reservoir status after FINAL quantization/bitrate
|
void |
ms_convert(IIISideInfo l3_side,
int gr)
convert from L/R <.
|
int |
outer_loop(LameGlobalFlags gfp,
GrInfo cod_info,
float[] l3_xmin,
float[] xrpow,
int ch,
int targ_bits)
Function: The outer iteration loop controls the masking conditions
of all scalefactorbands.
|
void |
setModules(BitStream bs,
Reservoir rv,
QuantizePVT qupvt,
Takehiro tk) |
void |
trancate_smallspectrums(LameInternalFlags gfc,
GrInfo gi,
float[] l3_xmin,
float[] work) |
void |
VBR_encode_granule(LameGlobalFlags gfp,
GrInfo cod_info,
float[] l3_xmin,
float[] xrpow,
int ch,
int min_bits,
int max_bits)
2000-09-04 Robert Hegemann
|
int |
VBR_new_prepare(LameGlobalFlags gfp,
float[][] pe,
III_psy_ratio[][] ratio,
float[][][] l3_xmin,
int[] frameBits,
int[][] max_bits) |
int |
VBR_old_prepare(LameGlobalFlags gfp,
float[][] pe,
float[] ms_ener_ratio,
III_psy_ratio[][] ratio,
float[][][] l3_xmin,
int[] frameBits,
int[][] min_bits,
int[][] max_bits,
int[][] bands)
2000-09-04 Robert Hegemann
* converts LR to MS coding when necessary
* calculates allowed/adjusted quantization noise amounts
* detects analog silent frames
some remarks:
- lower masking depending on Quality setting
- quality control together with adjusted ATH MDCT scaling
on lower quality setting allocate more noise from
ATH masking, and on higher quality setting allocate
less noise from ATH masking.
|
public final void setModules(BitStream bs, Reservoir rv, QuantizePVT qupvt, Takehiro tk)
public final void ms_convert(IIISideInfo l3_side, int gr)
public final boolean init_xrpow(LameInternalFlags gfc, GrInfo cod_info, float[] xrpow)
public final void init_outer_loop(LameInternalFlags gfc, GrInfo cod_info)
public final void trancate_smallspectrums(LameInternalFlags gfc, GrInfo gi, float[] l3_xmin, float[] work)
public final int outer_loop(LameGlobalFlags gfp, GrInfo cod_info, float[] l3_xmin, float[] xrpow, int ch, int targ_bits)
Function: The outer iteration loop controls the masking conditions of all scalefactorbands. It computes the best scalefac and global gain. This module calls the inner iteration loop mt 5/99 completely rewritten to allow for bit reservoir control, mid/side channels with L/R or mid/side masking thresholds, and chooses best quantization instead of last quantization when no distortion free quantization can be found. added VBR support mt 5/99 some code shuffle rh 9/00
l3_xmin - allowed distortionxrpow - coloured magnitudes of spectraltarg_bits - maximum allowed bitspublic final void iteration_finish_one(LameInternalFlags gfc, int gr, int ch)
public final void VBR_encode_granule(LameGlobalFlags gfp, GrInfo cod_info, float[] l3_xmin, float[] xrpow, int ch, int min_bits, int max_bits)
l3_xmin - allowed distortion of the scalefactorxrpow - coloured magnitudes of spectral valuespublic final void get_framebits(LameGlobalFlags gfp, int[] frameBits)
public final int VBR_old_prepare(LameGlobalFlags gfp, float[][] pe, float[] ms_ener_ratio, III_psy_ratio[][] ratio, float[][][] l3_xmin, int[] frameBits, int[][] min_bits, int[][] max_bits, int[][] bands)
2000-09-04 Robert Hegemann
* converts LR to MS coding when necessary
* calculates allowed/adjusted quantization noise amounts
* detects analog silent frames
some remarks:
- lower masking depending on Quality setting
- quality control together with adjusted ATH MDCT scaling
on lower quality setting allocate more noise from
ATH masking, and on higher quality setting allocate
less noise from ATH masking.
- experiments show that going more than 2dB over GPSYCHO's
limits ends up in very annoying artefacts
public final void bitpressure_strategy(LameInternalFlags gfc, float[][][] l3_xmin, int[][] min_bits, int[][] max_bits)
public final int VBR_new_prepare(LameGlobalFlags gfp, float[][] pe, III_psy_ratio[][] ratio, float[][][] l3_xmin, int[] frameBits, int[][] max_bits)
public final void calc_target_bits(LameGlobalFlags gfp, float[][] pe, float[] ms_ener_ratio, int[][] targ_bits, int[] analog_silence_bits, int[] max_frame_bits)