Decoding AAC SCE and LFE: Difference between revisions

From MultimediaWiki
Jump to navigation Jump to search
m (→‎decode_sce_lfe(): code-type format, for consistency)
m (Reverted edits by QsiYqq (Talk); changed back to last version by DonDiego)
 
(4 intermediate revisions by 3 users not shown)
Line 1: Line 1:
''Part of [[Understanding AAC]]''
''Part of [[Understanding AAC]]''
An SCE is a single channel element. An LFE is a special type of SCE and may stand for low frequency element. These elements contain the encoded data (a single audio channel). Presently, this description is only concerned with what it takes to decode low complexity (LC) data. Processing that affects other features is skipped (except if the data needs to be parsed from the bitstream).
A note about the ad-hoc conventions in this syntax description: This notation:
6 bits: foo
indicates that the next 6 bits are to be read from the bitstream and stored in variable foo. Similarily, this notation:
foo: bar
indicates that the next (foo) quantity bits are to be read from the bitstream and stored in variable bar.


== Function Hierarchy ==
== Function Hierarchy ==
Line 21: Line 29:
  reconstruct_single_channel(ics, spec_data)
  reconstruct_single_channel(ics, spec_data)


== individual_channel_stream(ic_stream ics) ==
== individual_channel_stream(ic_stream ics, spec_data[1024]) ==


This process is detailed in [[Decoding AAC CPE]].
This process is detailed in [[Decoding AAC CPE]].


== Reconstruction ==
== Reconstruction ==

Latest revision as of 08:55, 11 April 2007

Part of Understanding AAC

An SCE is a single channel element. An LFE is a special type of SCE and may stand for low frequency element. These elements contain the encoded data (a single audio channel). Presently, this description is only concerned with what it takes to decode low complexity (LC) data. Processing that affects other features is skipped (except if the data needs to be parsed from the bitstream).

A note about the ad-hoc conventions in this syntax description: This notation:

6 bits: foo

indicates that the next 6 bits are to be read from the bitstream and stored in variable foo. Similarily, this notation:

foo: bar

indicates that the next (foo) quantity bits are to be read from the bitstream and stored in variable bar.

Function Hierarchy

When FAAD2 wants to decode a SCE or LFE, this is the sequence of functions it calls in its internal hierarchy:

 syntax.c:decode_sce_lfe()
   +- syntax.c:single_lfe_channel_element()
     +- syntax.c:individual_channel_stream()
     +- (SBR decoding stuff)
     +- specrec.c:reconstruct_single_channel()

decode_sce_lfe()

single_lfe_channel_element()

single_lfe_channel_element()

declare an ic_stream structure: ics
declare an array of 1024 16-bit ints for spectral data: spec_data
4 bits: element instance tag
individual_channel_stream(ics, spec_data)
reconstruct_single_channel(ics, spec_data)

individual_channel_stream(ic_stream ics, spec_data[1024])

This process is detailed in Decoding AAC CPE.

Reconstruction