Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
Opus
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package Registry
Container Registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Terms and privacy
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Alexander Traud
Opus
Commits
d8571e4b
Commit
d8571e4b
authored
14 years ago
by
Jean-Marc Valin
Browse files
Options
Downloads
Patches
Plain Diff
Minor draft update
and s/maximums/maxima/
parent
049dd18a
No related branches found
Branches containing commit
No related tags found
Tags containing commit
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
doc/draft-ietf-codec-opus.xml
+7
-9
7 additions, 9 deletions
doc/draft-ietf-codec-opus.xml
with
7 additions
and
9 deletions
doc/draft-ietf-codec-opus.xml
+
7
−
9
View file @
d8571e4b
...
...
@@ -60,7 +60,7 @@ transmission over the Internet.
We propose the Opus codec based on a linear prediction layer (LP) and an
MDCT-based layer. The main idea behind the proposal is that
the speech low frequencies are usually more efficiently coded using
linear prediction codecs (such as CELP variants), while
the higher
frequencies
linear prediction codecs (such as CELP variants), while
music and higher speech
frequencies
are more efficiently coded in the transform domain (e.g. MDCT). For low
sampling rates, the MDCT layer is not useful and only the LP-based layer is
used. On the other hand, non-speech signals are not always adequately coded
...
...
@@ -68,15 +68,13 @@ using linear prediction, so for music only the MDCT-based layer is used.
</t>
<t>
In this proposed prototype, the
LP layer is based on the
The Opus
LP layer is based on the
<eref
target=
'http://developer.skype.com/silk'
>
SILK
</eref>
codec
<xref
target=
"SILK"
></xref>
and
the MDCT layer is based on the
<xref
target=
"SILK"
></xref>
while
the MDCT layer is based on the
<eref
target=
'http://www.celt-codec.org/'
>
CELT
</eref>
codec
<xref
target=
"CELT"
></xref>
.
</t>
<t>
This is a work in progress.
</t>
<t>
The primary normative part of this specification is provided by the source
code part of the document. The codec contains significant amounts of fixed-point
arithmetic which must be performed exactly, including all rounding considerations,
...
...
@@ -728,7 +726,7 @@ used.</t>
maximum allocation vector, decoding the boosts, decoding the tilt, determining
the remaining capacity the frame, searching the mode table for the
entry nearest but not exceeding the available space (subject to the tilt, boosts, band
maxim
ums
, and band minim
ums
), linear interpolation, reallocation of
maxim
a
, and band minim
a
), linear interpolation, reallocation of
unused bits with concurrent skip decoding, determination of the
fine-energy vs shape split, and final reallocation. This process results
in an shape allocation per-band (in 1/8th bit units), a per-band fine-energy
...
...
@@ -743,14 +741,14 @@ approximate because the shape encoding is variable rate (due
to entropy coding of splitting parameters). Setting the maximum too low reduces the
maximum achievable quality in a band while setting it too high
may result in waste: bit-stream capacity available at the end
of the frame which can not be put to any use. The maxim
ums
of the frame which can not be put to any use. The maxim
a
specified by the codec reflect the average maximum. In the reference
the maxim
ums
are provided partially computed form, in order to fit in less
the maxim
a
are provided partially computed form, in order to fit in less
memory, as a static table (XXX cache.caps). Implementations are expected
to simply use the same table data but the procedure for generating
this table is included in rate.c as part of compute_pulse_cache().
</t>
<t>
To convert the values in cache.caps into the actual maxim
ums
: First
<t>
To convert the values in cache.caps into the actual maxim
a
: First
set nbBands to the maximum number of bands for this mode and stereo to
zero if stereo is not in use and one otherwise. For each band assign N
to the number of MDCT bins covered by the band (for one channel), set LM
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment