atrac3p:serialized_tone_data
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision | ||
atrac3p:serialized_tone_data [2010/07/24 10:03] – add "header" to the title of the header encoding megadiscman | atrac3p:serialized_tone_data [2010/08/01 13:59] – fix clone bits megadiscman | ||
---|---|---|---|
Line 115: | Line 115: | ||
==== Tone info header ==== | ==== Tone info header ==== | ||
* 1 bit: Chooses high-dynamic-range mode if set, low-dynamic-range mode if clear | * 1 bit: Chooses high-dynamic-range mode if set, low-dynamic-range mode if clear | ||
- | * symbol from [[tone info trees#bands with tones tree]]: The number of bands tonal data is stored for. | + | * symbol from [[tone info trees#bands with tones tree]]: The number of bands tonal data is stored for minus 1 (so the symbols 0..15 mean 1..16 bands). |
* in two-channel substreams: | * in two-channel substreams: | ||
- | * 1 bit: If clear, clone information from master to slave for all bands otherwise | + | * 1 bit: If clear, |
- | * 1 bit: If clear, | + | * 1 bit: If clear, clone information from master to slave for all bands, otherwise |
* 1 bit per band with tone data: If set, clone data for this band | * 1 bit per band with tone data: If set, clone data for this band | ||
* 1 bit: If clear, master channel is the left channel for all bands | * 1 bit: If clear, master channel is the left channel for all bands | ||
Line 135: | Line 135: | ||
* per-tone data: | * per-tone data: | ||
* pitches | * pitches | ||
- | * level | + | * if in HDR mode |
+ | * tone levels (HDR) | ||
+ | * otherwise | ||
+ | * band base levels (LDR) | ||
+ | * tone levels (LDR) | ||
* phase | * phase | ||
Line 155: | Line 159: | ||
* on slave channel | * on slave channel | ||
* 2 bits: coding mode | * 2 bits: coding mode | ||
+ | * encoded tone counts (see directly below) | ||
=== Coding Mode 0: direct encoding === | === Coding Mode 0: direct encoding === | ||
Line 170: | Line 175: | ||
=== Coding Mode 3 (slave only): clone master === | === Coding Mode 3 (slave only): clone master === | ||
* no data | * no data | ||
+ | |||
+ | ==== Tone pitches ==== | ||
+ | * On slave channel only: | ||
+ | * 1 bit: coding mode (master always uses mode 0) | ||
+ | * encoded pitch info (see directly below) | ||
+ | |||
+ | === Coding mode 0: near-direct encoding === | ||
+ | * for each band that has a non-zero tone count: | ||
+ | * if the tone count is bigger than 1: | ||
+ | * 1 bit, chooses " | ||
+ | * for each tone in that band: | ||
+ | * up to ten bits: near-direct encoded pitch. In ascending mode, leading 1 bits of the current tone pitch that were already set in the previous pitch are omitted (note that the count if leading one bits is monotonically increasing). Analogously, | ||
+ | |||
+ | === Coding mode 1: difference-to-master === | ||
+ | * for each tone in each band that has a non-zero tone count: | ||
+ | * symbol from [[tone info trees#tone pitch delta tree]]. | ||
+ | |||
+ | ==== Tone levels (HDR) ==== | ||
+ | * on master channel | ||
+ | * 1 bit: coding mode | ||
+ | * on slave channel | ||
+ | * 2 bits: coding mode | ||
+ | * encoded level info (see directly below) | ||
+ | |||
+ | === Coding mode 0: direct encoding === | ||
+ | * for each tone in each band: | ||
+ | * 6 bits: binary encoded tone level | ||
+ | |||
+ | === Coding mode 1: variable-length encoding === | ||
+ | * for each tone in each band: | ||
+ | * symbol from [[tone info trees#HDR level tree]. Add 20 to the symbol number to obtain the real level. | ||
+ | |||
+ | === Coding mode 2 (slave only): variable-lenght encoded difference to master === | ||
+ | * for each tone in each band: | ||
+ | * symbol from [[tone info trees# | ||
+ | |||
+ | === Coding mode 3 (slave only): clone master === | ||
+ | * no data | ||
+ | |||
+ | ==== Band base levels (LDR) ==== | ||
+ | * on master channel | ||
+ | * 1 bit: coding mode | ||
+ | * on slave channel | ||
+ | * 2 bits: coding mode | ||
+ | * encoded level info (see directly below) | ||
+ | |||
+ | === Coding mode 0: direct encoding === | ||
+ | * for each band: | ||
+ | * 6 bits: binary encoded base level | ||
+ | |||
+ | === Coding mode 1: variable-length encoding === | ||
+ | * for each band: | ||
+ | * symbol from [[tone info trees#LDR band level tree]. Add **24** to the symbol number to obtain the real level. | ||
+ | |||
+ | === Coding mode 2 (slave only): variable-lenght encoded difference to master === | ||
+ | * for each band: | ||
+ | * symbol from [[tone info trees# | ||
+ | |||
+ | === Coding mode 3 (slave only): clone master === | ||
+ | * no data | ||
+ | |||
+ | ==== Tone levels (LDR) ==== | ||
+ | * on master channel | ||
+ | * 1 bit: coding mode | ||
+ | * on slave channel | ||
+ | * 2 bits: coding mode | ||
+ | * encoded level info (see directly below) | ||
+ | |||
+ | === Coding mode 0: direct encoding === | ||
+ | * for each tone in each band: | ||
+ | * 4 bits: binary encoded tone level | ||
+ | |||
+ | === Coding mode 1: variable-length encoding === | ||
+ | * for each band: | ||
+ | * if that band has one tone: | ||
+ | * symbol from [[tone info trees# | ||
+ | * otherwise for each tone in that band | ||
+ | * symbol from [[tone info trees#LDR level tree]. | ||
+ | |||
+ | === Coding mode 2 (slave only): variable-lenght encoded difference to master === | ||
+ | * for each tone in each band: | ||
+ | * symbol from [[tone info trees#HDR level difference tress]. Use linked tone level or 34 (if not linked) as base. | ||
+ | |||
+ | === Coding mode 3 (slave only): clone master === | ||
+ | * no data | ||
+ | |||
+ | ===== Tone phase ===== | ||
+ | * for each tone in each band: | ||
+ | * 5 bit phase value |
atrac3p/serialized_tone_data.txt · Last modified: 2010/10/25 22:28 by megadiscman