<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.hydrogenaudio.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Artoria2e5</id>
	<title>Hydrogenaudio Knowledgebase - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.hydrogenaudio.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Artoria2e5"/>
	<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=Special:Contributions/Artoria2e5"/>
	<updated>2026-05-02T12:31:08Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.44.2</generator>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=Cue_sheet&amp;diff=38199</id>
		<title>Cue sheet</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=Cue_sheet&amp;diff=38199"/>
		<updated>2024-10-08T09:03:14Z</updated>

		<summary type="html">&lt;p&gt;Artoria2e5: /* Most often used */ WAVE is a later extension. There is a strong consensus for FLAC to work, but Opus? Fb2k works, VLC doesn&amp;#039;t.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--&lt;br /&gt;
TODO:&lt;br /&gt;
&lt;br /&gt;
Mention of HTOA with link to new page...although there is already an HTOA example.&lt;br /&gt;
Example of the first few lines, showing INDEX 00&lt;br /&gt;
&lt;br /&gt;
PERFORMER &amp;quot;Lemon Jelly&amp;quot;&lt;br /&gt;
TITLE &amp;quot;&#039;64 - &#039;95&amp;quot;&lt;br /&gt;
FILE &amp;quot;CDImage.ape&amp;quot; WAVE&lt;br /&gt;
 TRACK 01 AUDIO&lt;br /&gt;
   TITLE &amp;quot;Intro&amp;quot;&lt;br /&gt;
   PERFORMER &amp;quot;Lemon Jelly&amp;quot;&lt;br /&gt;
   INDEX 00 00:00:00&lt;br /&gt;
   INDEX 01 01:23:18&lt;br /&gt;
 TRACK 02 AUDIO&lt;br /&gt;
   TITLE &amp;quot;&#039;88 AKA Come Down On Me&amp;quot;&lt;br /&gt;
   PERFORMER &amp;quot;Lemon Jelly&amp;quot;&lt;br /&gt;
   INDEX 01 01:47:53&lt;br /&gt;
&lt;br /&gt;
Examination of a segment or segments of a cue sheet, focusing on the key commands&lt;br /&gt;
&lt;br /&gt;
Embedding cue sheets - may require its own page&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
A &#039;&#039;&#039;cue sheet&#039;&#039;&#039; (or &#039;&#039;&#039;CUE file&#039;&#039;&#039;, &#039;&#039;&#039;.cue&#039;&#039;&#039;, &#039;&#039;&#039;CUE sheet&#039;&#039;&#039;, etc.) is a formatted text file which provides index and other supplemental information for one or more audio files. A cue sheet is generally used in conjunction with either extracting from or burning to [[Compact Disc|CD]]. For example, when a CD&#039;s complete audio content has been ripped to a single file, a cue sheet contains information about the track boundaries, and CD-R burning software can use it to make a copy of the original CD with the same track layout as the original. Cue sheets can also be used when writing data CDs.&lt;br /&gt;
&lt;br /&gt;
Increasingly, cue sheets are being used as playlists: you load the cue sheet in a media player, and it can play an &amp;quot;image&amp;quot; (single-file) rip as if it were separate files, one for each track. Cue sheets can be used for file-per-track rips as well, but many such rips require that the cue sheet not adhere strictly to the original specification&#039;s rules.&lt;br /&gt;
&lt;br /&gt;
==Cue sheet contents==&lt;br /&gt;
All cue sheets contain the following info:&lt;br /&gt;
* The name &amp;amp; type of at least one file being indexed (an audio file, normally);&lt;br /&gt;
* A numbered list of tracks each file corresponds to or contains;&lt;br /&gt;
* The start point (index 01) for each track, time-wise (MM:SS:FF format).&lt;br /&gt;
&lt;br /&gt;
Cue sheets may contain the following additional info:&lt;br /&gt;
* CD-Text [[metadata]] such as performer, title, songwriter for the disc and/or each track;&lt;br /&gt;
* ISRCs (sound recording IDs to burn)&lt;br /&gt;
* Special flags for CD burning (e.g. for pre-emphasis)&lt;br /&gt;
* Gap info (how much silence to insert before or after each track)&lt;br /&gt;
* Comments (which are used by some programs to store nonstandard metadata like genre, freeDB disc ID, etc.)&lt;br /&gt;
&lt;br /&gt;
A cue sheet isn&#039;t necessary to make an exact copy of the audio portion of a CD; ripping &amp;amp; burning software will get you the audio wave data and can figure out where each track starts. However, a cue sheet &#039;&#039;can&#039;&#039; be used to specify the location of the first track (if it deviates from the standard), as well as certain subcode information, such as non-01 index points, CD-TEXT (which may not exist on the original CD), UPC/ISRC data, and [[pre-emphasis]] information.&lt;br /&gt;
&lt;br /&gt;
A cue sheet &#039;&#039;is&#039;&#039; required to burn &amp;quot;hidden track one audio&amp;quot; ([[HTOA]]), which is audio that can only be played after scanning backwards from the beginning of track 1. A cue sheet may be needed when silent frames have been omitted from the beginning or end of files to be burned; the cue sheet can be used to reconstruct the pauses by telling the burner or player where to insert silence. A cue sheet may also be needed when there is a mix of audio and data tracks to be burned (unless the burning software is told which tracks are which).&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
The cue sheet format was invented by Jeff Arnold of [http://web.archive.org/web/20070217191217/http://www.goldenhawk.com/ GoldenHawk Technology] for use with his [[DAO]] (&#039;&#039;&#039;D&#039;&#039;&#039;isc &#039;&#039;&#039;A&#039;&#039;&#039;t &#039;&#039;&#039;O&#039;&#039;&#039;nce) and [http://web.archive.org/web/20070217191217/http://www.goldenhawk.com/ CDRWIN] applications. The format has since been adopted as the &#039;&#039;de facto&#039;&#039; standard, and is used by various other applications, including the audio player [[foobar2000]]. The official cue sheet specification is widely accepted to be Appendix A of the CDRWIN User&#039;s Guide.&lt;br /&gt;
&lt;br /&gt;
The name is taken from the &#039;&#039;&#039;SEND CUE SHEET&#039;&#039;&#039; command (as defined in the &#039;&#039;SCSI-3 Multimedia Commands&#039;&#039; specification), used for sending a binary-format cue sheet describing the disc layout to the drive before writing starts in SAO (Session-At-Once) write mode. The drive writes to the disc, using the cue sheet information to generate the P and Q subchannel data, and to retrieve the format and block size of the data transferred with the &#039;&#039;&#039;WRITE&#039;&#039;&#039; command.&amp;lt;ref&amp;gt;Text adapted from [http://www.hydrogenaudio.org/forums/index.php?s=&amp;amp;showtopic=42485&amp;amp;view=findpost&amp;amp;p=374579 a post by Martin H].&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The DAO and CDRWIN software was developed for use on MS-DOS and early Windows systems, when it was common to refer to types of files by their file name extensions, in all-caps: TXT for text, DOC for Word document, and so on. Early references to cue sheets likewise referred to &#039;&#039;CUE files&#039;&#039;. This convention continues to the present day, but the &#039;&#039;cue&#039;&#039; in the term &#039;&#039;cue sheet&#039;&#039; is not an acronym and need not be capitalized.&lt;br /&gt;
&lt;br /&gt;
== Cue sheet commands ==&lt;br /&gt;
The following commands are detailed in the Appendix A of the [http://web.archive.org/web/20070221154246/http://www.goldenhawk.com/download/cdrwin.pdf CDRWIN User&#039;s Guide]:&lt;br /&gt;
* CATALOG – A 13-digit UPC/EAN code, also referred to as the Media Catolog Number (MCN). 12-digit UPC codes should be prefixed with a &amp;quot;0&amp;quot;.&lt;br /&gt;
* CDTEXTFILE – A path to a file containing CD-Text info.&lt;br /&gt;
* FILE – A path to a file containing audio data, and to which subsequent commands apply.&lt;br /&gt;
* FLAGS – Per-track subcode flag(s):&lt;br /&gt;
** DCP - Digital copy permitted.&lt;br /&gt;
** 4CH - Four channel audio.&lt;br /&gt;
** PRE - Pre-emphasis enabled (audio tracks only).&lt;br /&gt;
** SCMS - Serial Copy Management System (not supported by all recorders).&lt;br /&gt;
* INDEX – Per-track index(es).&lt;br /&gt;
* ISRC – Per-track ISRC(s).&lt;br /&gt;
* PERFORMER – Per-disc or per-track performer name for CD-Text data.&lt;br /&gt;
* POSTGAP – Amount of post-track silence to add.&lt;br /&gt;
* PREGAP – Amount of pre-track silence to add.&lt;br /&gt;
* REM – A remark/comment to be ignored.&lt;br /&gt;
* SONGWRITER – Per-disc or per-track songwriter name for CD-Text data.&lt;br /&gt;
* TITLE – Per-disc or per-track title for CD-Text data.&lt;br /&gt;
* TRACK – Type of track to create, and to which subsequent commands apply.&lt;br /&gt;
&lt;br /&gt;
=== Most often used ===&lt;br /&gt;
;FILE&lt;br /&gt;
:The FILE command specifies the file that the cue sheet is currently referencing. Valid file types are WAVE, MP3, AIFF, BINARY and MOTOROLA.&lt;br /&gt;
:As a commonly-accepted extension, many lossless formats such as [[WavPack]] or [[FLAC]], can also be used under the WAVE file type. There is a chance for lossy formats like [[Opus]] to also work, but this is not as commonly agreed upon by CUE players.&lt;br /&gt;
;INDEX&lt;br /&gt;
:A number between 00 and 99. Index points are specified in MM:SS:FF format, and are relative to the start of the file currently referenced. MM is the number of minutes, SS the number of seconds, and FF the number of frames (there are seventy five frames to one second). INDEX 01 commands specify the beginning of a new track. INDEX 00 commands specify the pre-gap of a track; you may notice your [[Compact Disc Digital Audio|Audio CD]] player count up from a negative value before beginning a new track - this is the period between INDEX 00 and INDEX 01.&lt;br /&gt;
;PERFORMER&lt;br /&gt;
:At top-level this will specify the CD artist, while at track-level it specifies the track artist.&lt;br /&gt;
;PREGAP&lt;br /&gt;
:Used to specify the length of a track pre-gap, in MM:SS:FF format. Although the SCSI specs reserve the term &#039;&#039;pre-gap&#039;&#039; for the pause before a data track, in a cue sheet the PREGAP command can be used to create a pause before any kind of track, data or audio.&lt;br /&gt;
;REM&lt;br /&gt;
:Used to record comments in a cue sheet. This command is often used to store additional meta data to TITLE and PERFORMER, e.g.: the date or genre of the disc.&lt;br /&gt;
:The following REM comments can be written to a disc&#039;s CD-Text section and read by an application such as [[cdrdao]] or ImgBurn:&lt;br /&gt;
:;REM UPC&lt;br /&gt;
::The &amp;quot;UPC&amp;quot; is not necessarily the same as &amp;quot;CATALOG&amp;quot;, and can be 12 or 13 digits in length. See [[Wikipedia:Universal Product Code]].&lt;br /&gt;
:;REM DISCID&lt;br /&gt;
::Although programs such as [[Exact Audio Copy]] use this to store the disc&#039;s CDDB1 value, other programs can extract the disc&#039;s true Disc ID, which is usually the disc&#039;s label-specific catalog number (see the example TOC file on the [[cdrdao]] page and the &amp;quot;DISC_ID&amp;quot; field for an example).&lt;br /&gt;
;TITLE&lt;br /&gt;
:At top-level this will specify the album name, while at track-level it specifies the track name.&lt;br /&gt;
;TRACK&lt;br /&gt;
:A number between 01 and 99, indicating the track number.&lt;br /&gt;
&lt;br /&gt;
=== Quotation marks ===&lt;br /&gt;
The use of quotation marks around strings for PERFORMER, TITLE, etc., is standard practice, however, for programs such as ImgBurn, they are not mandatory.&amp;lt;ref&amp;gt;[https://forum.imgburn.com/index.php?/topic/23743-double-quoatation-marks-in-track-title/ double-quotation marks in track title]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
By omitting quotation marks, this allows the use of quotation marks within the string itself. For example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  TRACK 01 AUDIO&lt;br /&gt;
    TITLE Theme Of &amp;quot;Rome&amp;quot;&lt;br /&gt;
    PERFORMER Danger Mouse &amp;amp; Daniele Luppi&lt;br /&gt;
    ISRC GBAYE1001378&lt;br /&gt;
    INDEX 01 00:00:00&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This does not, however, work for strings that need to display quotation marks at the beginning of the string, as ImgBurn only parses the text contained &#039;&#039;within&#039;&#039; the quotation marks.&lt;br /&gt;
&lt;br /&gt;
=== Whitespace ===&lt;br /&gt;
Line breaks must be used between commands. Spaces or tabs can be used to indent; they&#039;re ignored but can make the file easier to understand when viewing or manually editing. Customarily, for audio CDs, all the commands which apply to a particular file are indented under the FILE command, and those which apply to a specific track are further indented under the TRACK command.&lt;br /&gt;
&lt;br /&gt;
=== Examples ===&lt;br /&gt;
&#039;&#039;&#039;A standard single file cue sheet&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
REM GENRE Alternative&lt;br /&gt;
REM DATE 1991&lt;br /&gt;
REM DISCID 860B640B&lt;br /&gt;
REM COMMENT &amp;quot;ExactAudioCopy v0.95b4&amp;quot;&lt;br /&gt;
PERFORMER &amp;quot;My Bloody Valentine&amp;quot;&lt;br /&gt;
TITLE &amp;quot;Loveless&amp;quot;&lt;br /&gt;
FILE &amp;quot;My Bloody Valentine - Loveless.wav&amp;quot; WAVE&lt;br /&gt;
  TRACK 01 AUDIO&lt;br /&gt;
    TITLE &amp;quot;Only Shallow&amp;quot;&lt;br /&gt;
    PERFORMER &amp;quot;My Bloody Valentine&amp;quot;&lt;br /&gt;
    INDEX 01 00:00:00&lt;br /&gt;
  TRACK 02 AUDIO&lt;br /&gt;
    TITLE &amp;quot;Loomer&amp;quot;&lt;br /&gt;
    PERFORMER &amp;quot;My Bloody Valentine&amp;quot;&lt;br /&gt;
    INDEX 01 04:17:52&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The cue sheet above, created by [[EAC]], shows the first two tracks of a standard single file cue sheet. Note the use of REM commands to record additional [[metadata]], in the format &#039;&#039;&#039;REM &amp;lt;TAG&amp;gt; &amp;quot;&amp;lt;value&amp;gt;&amp;quot;&#039;&#039;&#039;. The &#039;&#039;&#039;PERFORMER&#039;&#039;&#039; and &#039;&#039;&#039;TITLE&#039;&#039;&#039; commands at the top of the cue sheet detail the [[Compact Disc Digital Audio|CD]] artist and album name respectively. The &#039;&#039;&#039;PERFORMER&#039;&#039;&#039; and &#039;&#039;&#039;TITLE&#039;&#039;&#039; commands at track-level specify the track artist and title.&lt;br /&gt;
&lt;br /&gt;
TRACK 02&#039;s INDEX 01 entry does not state that the track is 4m 17.693s long, but that the beginning of the track is 4m 17.693s into the file (so TRACK 01 was in fact 4m 17.693s long). If TRACK 02 was 3m long exactly, TRACK 03&#039;s INDEX 01 value would be 07:17:52.&lt;br /&gt;
&lt;br /&gt;
Also note the file reference specifying a relative path to the file (references can also be absolute) and the file type: [[WAV|WAVE]].&lt;br /&gt;
&lt;br /&gt;
==== A single-file cue sheet with a TRACK 01 INDEX 00 hidden track ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
PERFORMER &amp;quot;Bloc Party&amp;quot;&lt;br /&gt;
TITLE &amp;quot;Silent Alarm&amp;quot;&lt;br /&gt;
FILE &amp;quot;Bloc Party - Silent Alarm.flac&amp;quot; WAVE&lt;br /&gt;
 TRACK 01 AUDIO&lt;br /&gt;
   TITLE &amp;quot;Like Eating Glass&amp;quot;&lt;br /&gt;
   PERFORMER &amp;quot;Bloc Party&amp;quot;&lt;br /&gt;
   INDEX 00 00:00:00&lt;br /&gt;
   INDEX 01 03:22:70&lt;br /&gt;
 TRACK 02 AUDIO&lt;br /&gt;
   TITLE &amp;quot;Helicopter&amp;quot;&lt;br /&gt;
   PERFORMER &amp;quot;Bloc Party&amp;quot;&lt;br /&gt;
   INDEX 00 07:42:69&lt;br /&gt;
   INDEX 01 07:44:69&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;!--clarify that this is HTOA--&amp;gt;&lt;br /&gt;
The cue sheet above shows the first two tracks of a single file cue sheet for a disc with a hidden track at the start. Note that TRACK 01 INDEX 01 starts at 03:22:70 (3m 22.933s) instead of 00:00:00 as in the first example, and most cue sheets. The INDEX 00 index on TRACK 02 displays the more usual behaviour, being two seconds before INDEX 01.&lt;br /&gt;
&lt;br /&gt;
As the INDEX 00 is on TRACK 01 you will not normally see the usual countdown from a negative value that you might see from an INDEX 00 command on a subsequent track. To listen to this track on a [[Compact Disc Digital Audio|Audio CD]] player you will need to start the disc playing and press rewind, to rewind, essentially, from 3m 22s into the disc back to the true beginning.&lt;br /&gt;
&lt;br /&gt;
Also note that the file referenced is [[FLAC]], but the [[WAV|WAVE]] files type is used. For [[MP3]] files the file type &amp;quot;&#039;&#039;&#039;[[MP3]]&#039;&#039;&#039;&amp;quot; should be used, for [[AIFF]] you should use &amp;quot;&#039;&#039;&#039;[[AIFF]]&#039;&#039;&#039;&amp;quot;, but for all other types &amp;quot;&#039;&#039;&#039;[[WAV|WAVE]]&#039;&#039;&#039;&amp;quot; is used.&lt;br /&gt;
&lt;br /&gt;
==== Multiple files with corrected gaps ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
FILE &amp;quot;The Specials - Singles - 01 - Gangsters.wav&amp;quot; WAVE&lt;br /&gt;
  TRACK 01 AUDIO&lt;br /&gt;
    TITLE &amp;quot;Gangsters&amp;quot;&lt;br /&gt;
    PERFORMER &amp;quot;The Specials&amp;quot;&lt;br /&gt;
    INDEX 01 00:00:00&lt;br /&gt;
FILE &amp;quot;The Specials - Singles - 02 - Rudi, A Message To You.wav&amp;quot; WAVE&lt;br /&gt;
  TRACK 02 AUDIO&lt;br /&gt;
    TITLE &amp;quot;Rudi, A Message To You&amp;quot;&lt;br /&gt;
    PERFORMER &amp;quot;The Specials&amp;quot;&lt;br /&gt;
    INDEX 00 00:00:00&lt;br /&gt;
    INDEX 01 00:00:28&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This multiple file cue sheet, created by [[EAC]], has gaps prepended to the next track. This method allows users to retain gaps, but by prepending the gap to the next track each track may begin with silence, which makes playback less satisfactory. This is a very uncommon way to rip CDs, even though it is more in line with the disc&#039;s actual track layout.&lt;br /&gt;
&lt;br /&gt;
==== Multiple files with gaps left out ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
FILE &amp;quot;The Specials - Singles - 01 - Gangsters.wav&amp;quot; WAVE&lt;br /&gt;
  TRACK 01 AUDIO&lt;br /&gt;
    TITLE &amp;quot;Gangsters&amp;quot;&lt;br /&gt;
    PERFORMER &amp;quot;The Specials&amp;quot;&lt;br /&gt;
    INDEX 01 00:00:00&lt;br /&gt;
FILE &amp;quot;The Specials - Singles - 02 - Rudi, A Message To You.wav&amp;quot; WAVE&lt;br /&gt;
  TRACK 02 AUDIO&lt;br /&gt;
    TITLE &amp;quot;Rudi, A Message To You&amp;quot;&lt;br /&gt;
    PERFORMER &amp;quot;The Specials&amp;quot;&lt;br /&gt;
    PREGAP 00:00:28&lt;br /&gt;
    INDEX 01 00:00:00&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This multiple file cue sheet, created by [[EAC]], has removed the gaps, but artificially recreates silence between tracks using the PREGAP command. This is fine if the gap was silence, but unsatisfactory if it contained audio.&lt;br /&gt;
&lt;br /&gt;
==== Multiple files with gaps (Noncompliant) ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
FILE &amp;quot;The Specials - Singles - 01 - Gangsters.wav&amp;quot; WAVE&lt;br /&gt;
  TRACK 01 AUDIO&lt;br /&gt;
    TITLE &amp;quot;Gangsters&amp;quot;&lt;br /&gt;
    PERFORMER &amp;quot;The Specials&amp;quot;&lt;br /&gt;
    INDEX 01 00:00:00&lt;br /&gt;
  TRACK 02 AUDIO&lt;br /&gt;
    TITLE &amp;quot;Rudi, A Message To You&amp;quot;&lt;br /&gt;
    PERFORMER &amp;quot;The Specials&amp;quot;&lt;br /&gt;
    INDEX 00 02:47:74&lt;br /&gt;
FILE &amp;quot;The Specials - Singles - 02 - Rudi, A Message To You.wav&amp;quot; WAVE&lt;br /&gt;
    INDEX 01 00:00:00&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This multiple-file cue sheet, created by [[EAC]], has gaps appended to the previous track, and is a favourite among users who rip to track files but wish to retain gap information. This format allows the user to retain gaps, but in a position in the track file that does not hinder playback. Unfortunately, this format is non-compliant; this type of rip, despite its popularity, was not supported by the original DAO and CDRWIN software for which cue sheets were designed. Applications that adhere to the cue sheet specification, like [[foobar2000]], will not be able to read it. Of course, [[EAC]] will read these cue sheets, as will the [[Compact Disc|CD]] burning application [[Burrrn]].&lt;br /&gt;
&lt;br /&gt;
Note that INDEX 00 of TRACK 02 is set while still referencing the first FILE.&lt;br /&gt;
&lt;br /&gt;
==== Single file version of the cue sheet used above ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
FILE &amp;quot;The Specials - Singles.wav&amp;quot; WAVE&lt;br /&gt;
  TRACK 01 AUDIO&lt;br /&gt;
    TITLE &amp;quot;Gangsters&amp;quot;&lt;br /&gt;
    PERFORMER &amp;quot;The Specials&amp;quot;&lt;br /&gt;
    INDEX 01 00:00:00&lt;br /&gt;
  TRACK 02 AUDIO&lt;br /&gt;
    TITLE &amp;quot;Rudi, A Message To You&amp;quot;&lt;br /&gt;
    PERFORMER &amp;quot;The Specials&amp;quot;&lt;br /&gt;
    INDEX 00 02:47:74&lt;br /&gt;
    INDEX 01 02:48:27&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
For reference, the cue sheet used in the examples above is in single file format.&lt;br /&gt;
&lt;br /&gt;
== Example cue sheet ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
REM GENRE Ska&lt;br /&gt;
REM DATE 1991&lt;br /&gt;
REM DISCID D00DA810&lt;br /&gt;
REM COMMENT &amp;quot;ExactAudioCopy v0.95b4&amp;quot;&lt;br /&gt;
PERFORMER &amp;quot;The Specials&amp;quot;&lt;br /&gt;
TITLE &amp;quot;Singles&amp;quot;&lt;br /&gt;
FILE &amp;quot;The Specials - Singles.wav&amp;quot; WAVE&lt;br /&gt;
  TRACK 01 AUDIO&lt;br /&gt;
    TITLE &amp;quot;Gangsters&amp;quot;&lt;br /&gt;
    PERFORMER &amp;quot;The Specials&amp;quot;&lt;br /&gt;
    INDEX 01 00:00:00&lt;br /&gt;
  TRACK 02 AUDIO&lt;br /&gt;
    TITLE &amp;quot;Rudi, A Message To You&amp;quot;&lt;br /&gt;
    PERFORMER &amp;quot;The Specials&amp;quot;&lt;br /&gt;
    INDEX 00 02:47:74&lt;br /&gt;
    INDEX 01 02:48:27&lt;br /&gt;
  TRACK 03 AUDIO&lt;br /&gt;
    TITLE &amp;quot;Nite Klub&amp;quot;&lt;br /&gt;
    PERFORMER &amp;quot;The Specials&amp;quot;&lt;br /&gt;
    INDEX 00 05:41:50&lt;br /&gt;
    INDEX 01 05:42:27&lt;br /&gt;
  TRACK 04 AUDIO&lt;br /&gt;
    TITLE &amp;quot;Too Much Too Young&amp;quot;&lt;br /&gt;
    PERFORMER &amp;quot;The Specials&amp;quot;&lt;br /&gt;
    INDEX 00 08:53:47&lt;br /&gt;
    INDEX 01 08:54:37&lt;br /&gt;
  TRACK 05 AUDIO&lt;br /&gt;
    TITLE &amp;quot;Guns Of Navarone&amp;quot;&lt;br /&gt;
    PERFORMER &amp;quot;The Specials&amp;quot;&lt;br /&gt;
    INDEX 00 10:59:20&lt;br /&gt;
    INDEX 01 11:00:17&lt;br /&gt;
  TRACK 06 AUDIO&lt;br /&gt;
    TITLE &amp;quot;Rat Race&amp;quot;&lt;br /&gt;
    PERFORMER &amp;quot;The Specials&amp;quot;&lt;br /&gt;
    INDEX 00 13:20:55&lt;br /&gt;
    INDEX 01 13:20:67&lt;br /&gt;
  TRACK 07 AUDIO&lt;br /&gt;
    TITLE &amp;quot;Stereotype&amp;quot;&lt;br /&gt;
    PERFORMER &amp;quot;The Specials&amp;quot;&lt;br /&gt;
    INDEX 00 16:29:67&lt;br /&gt;
    INDEX 01 16:30:30&lt;br /&gt;
  TRACK 08 AUDIO&lt;br /&gt;
    TITLE &amp;quot;International Jet Set&amp;quot;&lt;br /&gt;
    PERFORMER &amp;quot;The Specials&amp;quot;&lt;br /&gt;
    INDEX 00 20:19:27&lt;br /&gt;
    INDEX 01 20:20:20&lt;br /&gt;
  TRACK 09 AUDIO&lt;br /&gt;
    TITLE &amp;quot;Do Nothing&amp;quot;&lt;br /&gt;
    PERFORMER &amp;quot;The Specials&amp;quot;&lt;br /&gt;
    INDEX 00 24:30:70&lt;br /&gt;
    INDEX 01 24:32:27&lt;br /&gt;
  TRACK 10 AUDIO&lt;br /&gt;
    TITLE &amp;quot;Ghost Town&amp;quot;&lt;br /&gt;
    PERFORMER &amp;quot;The Specials&amp;quot;&lt;br /&gt;
    INDEX 00 28:23:30&lt;br /&gt;
    INDEX 01 28:23:42&lt;br /&gt;
  TRACK 11 AUDIO&lt;br /&gt;
    TITLE &amp;quot;Why?&amp;quot;&lt;br /&gt;
    PERFORMER &amp;quot;The Specials&amp;quot;&lt;br /&gt;
    INDEX 00 34:21:37&lt;br /&gt;
    INDEX 01 34:21:47&lt;br /&gt;
  TRACK 12 AUDIO&lt;br /&gt;
    TITLE &amp;quot;Friday Night, Saturday Morning&amp;quot;&lt;br /&gt;
    PERFORMER &amp;quot;The Specials&amp;quot;&lt;br /&gt;
    INDEX 00 38:16:50&lt;br /&gt;
    INDEX 01 38:16:55&lt;br /&gt;
  TRACK 13 AUDIO&lt;br /&gt;
    TITLE &amp;quot;War Crimes&amp;quot;&lt;br /&gt;
    PERFORMER &amp;quot;The Specials&amp;quot;&lt;br /&gt;
    INDEX 00 41:50:07&lt;br /&gt;
    INDEX 01 41:51:00&lt;br /&gt;
  TRACK 14 AUDIO&lt;br /&gt;
    TITLE &amp;quot;Racist Friend&amp;quot;&lt;br /&gt;
    PERFORMER &amp;quot;The Specials&amp;quot;&lt;br /&gt;
    INDEX 00 45:50:55&lt;br /&gt;
    INDEX 01 45:51:72&lt;br /&gt;
  TRACK 15 AUDIO&lt;br /&gt;
    TITLE &amp;quot;Nelson Mandela&amp;quot;&lt;br /&gt;
    PERFORMER &amp;quot;The Specials&amp;quot;&lt;br /&gt;
    INDEX 00 49:35:55&lt;br /&gt;
    INDEX 01 49:38:22&lt;br /&gt;
  TRACK 16 AUDIO&lt;br /&gt;
    TITLE &amp;quot;(What I Like Most About You Is Your) Girlfriend&amp;quot;&lt;br /&gt;
    PERFORMER &amp;quot;The Specials&amp;quot;&lt;br /&gt;
    INDEX 00 54:11:00&lt;br /&gt;
    INDEX 01 54:12:40&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Useful applications ==&lt;br /&gt;
=== Playing ===&lt;br /&gt;
* [[foobar2000]]&lt;br /&gt;
&lt;br /&gt;
=== Splitting ===&lt;br /&gt;
* [[ACDIR]]: http://nyaochi.sakura.ne.jp/xoops/modules/mysoftwares/tc_2.html&lt;br /&gt;
* CUE Splitter: http://www.enfis.it/downloads.php?cat_id=1&lt;br /&gt;
* CueProc: http://nyaochi.sakura.ne.jp/xoops/modules/mysoftwares/tc_6.html (that domain appears to be lost, but https://github.com/rinrinne/cueproc-alternative looks like a derivative)&lt;br /&gt;
* [[CueTools]]: http://www.hydrogenaudio.org/forums/index.php?showtopic=41476&lt;br /&gt;
* [[foobar2000]]: http://www.foobar2000.org/&lt;br /&gt;
* mp3DirectCut: https://mpesch3.de/&lt;br /&gt;
* mp3splt: https://github.com/mp3splt/mp3splt&lt;br /&gt;
* pcutmp3: http://www.hydrogenaudio.org/forums/index.php?showtopic=35654&lt;br /&gt;
* [[shntool]]: http://shnutils.freeshell.org/shntool/&lt;br /&gt;
* WavSplit: http://tangerine.uw.hu/prog/&lt;br /&gt;
&lt;br /&gt;
=== Joining ===&lt;br /&gt;
* CueMake: http://www.synthetic-soul.co.uk/files/cuemake/&lt;br /&gt;
* [[CueTools]]: http://www.hydrogenaudio.org/forums/index.php?showtopic=41476&lt;br /&gt;
* [[foobar2000]]: http://www.foobar2000.org/&lt;br /&gt;
* [[shntool]]: http://shnutils.freeshell.org/shntool/&lt;br /&gt;
* [[XRECODE]]: https://xrecode.com/&lt;br /&gt;
&lt;br /&gt;
=== Creating ===&lt;br /&gt;
* CD Wave: http://www.milosoftware.com/cdwave/ - only reads .wav, .flac, .ape, .w64&lt;br /&gt;
* CUEgenerator: http://cuegenerator.net/ (online web app)&lt;br /&gt;
* CueMaster: http://cuemaster.org/&lt;br /&gt;
* [[CueTools]]: http://www.hydrogenaudio.org/forums/index.php?showtopic=41476&lt;br /&gt;
* [[foobar2000]]: http://www.foobar2000.org/&lt;br /&gt;
* [[Goldwave]]: http://www.goldwave.com/&lt;br /&gt;
* imgburn: https://www.imgburn.com/ - (Tools menu -&amp;gt; Create CUE File)&lt;br /&gt;
* [[shntool]]: http://shnutils.freeshell.org/shntool/&lt;br /&gt;
* Wave Repair: https://www.delback.co.uk/wavrep/ - only reads in .WAV files&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Gap settings]]&lt;br /&gt;
* [[EAC CUE Sheets]]&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
* [https://github.com/libyal/libodraw/blob/main/documentation/CUE%20sheet%20format.asciidoc libodraw cue sheet documentation]&lt;br /&gt;
* [http://web.archive.org/web/20070614044112/http://www.goldenhawk.com/download/cdrwin.pdf CDRWIN 3.8 Users Manual.book - cdrwin.pdf] via archive.org - Cue sheet commands are listed under Appendix A.&lt;br /&gt;
* [http://web.archive.org/web/20070217191217/http://www.goldenhawk.com/ goldenhawk.com] via archive.org&lt;br /&gt;
* {{wikipedia|Cue sheet (computing)}}&lt;br /&gt;
&lt;br /&gt;
[[Category:CD ripping]]&lt;/div&gt;</summary>
		<author><name>Artoria2e5</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=Other_hardware&amp;diff=38169</id>
		<title>Other hardware</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=Other_hardware&amp;diff=38169"/>
		<updated>2024-08-06T03:57:18Z</updated>

		<summary type="html">&lt;p&gt;Artoria2e5: /* Headphones */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{stub}}&lt;br /&gt;
&lt;br /&gt;
== Bluetooth ==&lt;br /&gt;
&lt;br /&gt;
Bluetooth has two unusual requirements: codec complexity and latency. Complexity (bitrate too, to an extent) decides battery life, but with the codec doing less work, it&#039;s not usual to see bitrate/quality trades way worse than conventional codecs.&lt;br /&gt;
&lt;br /&gt;
=== A2DP ===&lt;br /&gt;
Advanced Audio Distribution Profile (A2DP) is the traditional music profile.&lt;br /&gt;
*[http://www.hydrogenaudio.org/forums/index.php?showtopic=32634 forums]&lt;br /&gt;
*[http://en.wikipedia.org/wiki/A2DP#Bluetooth_profiles wikipedia]&lt;br /&gt;
* [https://habr.com/en/articles/456182/ HABR]&lt;br /&gt;
&lt;br /&gt;
Standard baseline codecs:&lt;br /&gt;
* Sub Band Codec (SBC) &amp;amp;ndash; okay, not great&lt;br /&gt;
&lt;br /&gt;
Standard optional codecs:&lt;br /&gt;
* MPEG-1,2 Audio: = MP3, almost never used&lt;br /&gt;
* AAC: relatively good decode support, transparency possible at bluetooth bitrates, but latency can be an issue&lt;br /&gt;
* ATRAC: never used&lt;br /&gt;
&lt;br /&gt;
Vendor extension codecs:&lt;br /&gt;
* AptX, LDAC, LLDC: in general lower complexity but higher bitrate (still within BT limits) than AAC, transparency possible; AptX and LDAC has wide support&lt;br /&gt;
* FastStream: Qualcomm&#039;s bidirectional SBC variant, providing a mono back channel&lt;br /&gt;
* Opus 0.5: PipeWire&#039;s [https://gitlab.freedesktop.org/pipewire/pipewire/-/blob/434cc6a90b6cdbaa31f013fea95786e1f5bf6d88/spa/plugins/bluez5/README-OPUS-A2DP.md little experiment] with nearly unlimited channels in either direction. Zero hardware support.&lt;br /&gt;
* Opus Android: The [https://hydrogenaud.io/index.php/topic,114566.msg1023511.html#msg1023511 Android 13] approach to adding Opus support. Stereo only, could be bidirectional? (check a2dp_vendor_opus_constants.h!) Supported by Pixel headphones.&lt;br /&gt;
&lt;br /&gt;
Bitrate is limited by bluetooth link. For all relevant codecs, there is a maximum limit of 2 channels: this is a headphone protocol, not a speaker protocol. Microphone-back channel is not available except in FastStream and AptX LL duplex.&lt;br /&gt;
&lt;br /&gt;
==== Sub Band Codec ====&lt;br /&gt;
* Sampling Frequency - 16000, 32000, 44100, 48000 (some are optional, see references)&lt;br /&gt;
* Channel Mode - mono, dual channel, stereo, joint stereo&lt;br /&gt;
&lt;br /&gt;
The bitrate used for CD-rate (16-bit, 44.1 KHz) audio is 229 kbps and 328 kbps for middle and high quality, respectively.&lt;br /&gt;
&lt;br /&gt;
Reference: [https://www.bluetooth.org/foundry/adopters/document/A2DP_Spec_V1_0/en/ BLUETOOTH Advanced Audio Distribution Profile 1.0]&lt;br /&gt;
&lt;br /&gt;
=== HSP/HFP ===&lt;br /&gt;
This is the mode with mono input and output, both at voice sample rates. Only very crude encodings (CVSD, PCM, optionally SBC 16KHz as the higher-quality thing) are supported, so do not expect audio quality.&lt;br /&gt;
&lt;br /&gt;
=== LE Audio ===&lt;br /&gt;
This is the new, rewritten general-purpose bluetooth audio stack. This mode allows bidirectional audio of various channel configurations. Battery use is allegedly lower than A2DP.&lt;br /&gt;
&lt;br /&gt;
==== LC3 ====&lt;br /&gt;
: &#039;&#039;See also: [[Wikipedia:LC3 (codec)]]&#039;&#039;&lt;br /&gt;
[https://www.bluetooth.org/DocMan/handlers/DownloadDoc.ashx?doc_id=502107&amp;amp;vId=542963 LC3] is the baseline LE Audio codec. It uses some of the same ideas as Opus CELT, but comes with some new patented techniques and runs at extremely low complexity.&lt;br /&gt;
&lt;br /&gt;
* It&#039;s [https://www.etsi.org/deliver/etsi_tr/103500_103599/103590/01.01.01_60/tr_103590v010101p.pdf allegedly] &amp;quot;better than Opus&amp;quot; with respect to error tolerance in speech environments. Except the test is done with speech samples in the non-speech, non-FEC mode of Opus (CELT), at minimum complexity (effort), and an old version at that.&lt;br /&gt;
* No [[joint stereo]] is available. The rationale given is that this allows True Wireless Stereo (TWS) to work with the audio source transmitting direct to each headphone, without needing an intermediate decode.&lt;br /&gt;
* LC3plus, LC3&#039;s &amp;quot;high-res&amp;quot; cousin available over A2DP, is [https://hydrogenaud.io/index.php/topic,121850.0.html worse than Apple and Android (FDK) AAC at 144 kbps]. The Japan Audio Society nevertheless thinks that&#039;s enough for a &amp;quot;Hi-Res AUDIO WIRELESS&amp;quot; sticker.&lt;br /&gt;
&lt;br /&gt;
In any case, it&#039;s much better than SBC and retains the low complexity character. When given more bits, such as with the 96*2 and 124*2 standard profiles, it can be very acceptable. Google&#039;s open source [https://github.com/google/liblc3 liblc3] implementation is written to the word of the BT spec.&lt;br /&gt;
&lt;br /&gt;
=== Operating systems ===&lt;br /&gt;
&lt;br /&gt;
Bluetooth codec support is not great on Windows. Windows 10 has SBC and AptX. Windows 11 introduces AAC as a better-than-SBC fallback on non-Qualcomm devices; it also introduces LE Audio support. There is no support for any codec variant such as AptX-HD. You can use a [https://www.bluetoothgoodies.com/a2dp/ third-party driver] ($5.99 trialware) that does A2DP its own way to get the better codecs.&lt;br /&gt;
&lt;br /&gt;
With PipeWire and BlueZ 5, Linux has support for many codecs: AptX (including LL and HD), LDAC, FastStream, both versions of Opus, LC3plus, and SBC XQ. The modern, PipeWire-based Linux audio stack can have very low software latency when combined with linux-rt or rtkit. Combined with a low-latency codec, one &#039;&#039;should&#039;&#039; receive a relatively low-latency experience.&lt;br /&gt;
&lt;br /&gt;
macOS and iOS are known to support AAC. SBC support is presumed to exist. There [https://gist.github.com/dvf/3771e58085568559c429d05ccc339219 used to be] support for AptX.&lt;br /&gt;
&lt;br /&gt;
== Headphones ==&lt;br /&gt;
Some Styles (smallest to largest)&lt;br /&gt;
* In the ear - outputs directly into the ear canal&lt;br /&gt;
* Earbuds - sits in the outer ear&lt;br /&gt;
* Supra-aural - sits on the ear&lt;br /&gt;
* circumaural - completely cover the ear&lt;br /&gt;
&lt;br /&gt;
Supra-aural and circumaural headphones have the sound reshaped by your auricle. The other two styles feed sound more or less directly into the ear canal. This difference is important for deciding on what kind of HRTF to use.&lt;br /&gt;
&lt;br /&gt;
Terminology used for comparing headphones&lt;br /&gt;
* Noise Cancelling&lt;br /&gt;
** active: the headphone samples outside noise in real time and emits the opposite soundwave (for some frequencies).&lt;br /&gt;
** passive: would be more &amp;quot;blocking&amp;quot; than &amp;quot;cancelling&amp;quot; -- think about an earmuff.&lt;br /&gt;
* Frequency response - The range of frequencies the headphones can reproduce&lt;br /&gt;
* Impedance - Doesn&#039;t mean much by itself, but in general, impedence should be matched across a system. &lt;br /&gt;
* SPL@1kHz, 1V rms - [http://en.wikipedia.org/wiki/Sound_pressure_level#SPL_in_audio_equipment Sound Pressure Level]. How efficient the unit converts electrical energy to sound energy.&lt;br /&gt;
* Neodymium - The magnet of choice for high end headphones.&lt;br /&gt;
&lt;br /&gt;
Popular Headphones&lt;br /&gt;
* Sub $30&lt;br /&gt;
* Sub $100&lt;br /&gt;
* $100 - $300&lt;br /&gt;
* $300+&lt;/div&gt;</summary>
		<author><name>Artoria2e5</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=Other_hardware&amp;diff=38168</id>
		<title>Other hardware</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=Other_hardware&amp;diff=38168"/>
		<updated>2024-08-06T03:48:43Z</updated>

		<summary type="html">&lt;p&gt;Artoria2e5: /* Operating systems */ ~&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{stub}}&lt;br /&gt;
&lt;br /&gt;
== Bluetooth ==&lt;br /&gt;
&lt;br /&gt;
Bluetooth has two unusual requirements: codec complexity and latency. Complexity (bitrate too, to an extent) decides battery life, but with the codec doing less work, it&#039;s not usual to see bitrate/quality trades way worse than conventional codecs.&lt;br /&gt;
&lt;br /&gt;
=== A2DP ===&lt;br /&gt;
Advanced Audio Distribution Profile (A2DP) is the traditional music profile.&lt;br /&gt;
*[http://www.hydrogenaudio.org/forums/index.php?showtopic=32634 forums]&lt;br /&gt;
*[http://en.wikipedia.org/wiki/A2DP#Bluetooth_profiles wikipedia]&lt;br /&gt;
* [https://habr.com/en/articles/456182/ HABR]&lt;br /&gt;
&lt;br /&gt;
Standard baseline codecs:&lt;br /&gt;
* Sub Band Codec (SBC) &amp;amp;ndash; okay, not great&lt;br /&gt;
&lt;br /&gt;
Standard optional codecs:&lt;br /&gt;
* MPEG-1,2 Audio: = MP3, almost never used&lt;br /&gt;
* AAC: relatively good decode support, transparency possible at bluetooth bitrates, but latency can be an issue&lt;br /&gt;
* ATRAC: never used&lt;br /&gt;
&lt;br /&gt;
Vendor extension codecs:&lt;br /&gt;
* AptX, LDAC, LLDC: in general lower complexity but higher bitrate (still within BT limits) than AAC, transparency possible; AptX and LDAC has wide support&lt;br /&gt;
* FastStream: Qualcomm&#039;s bidirectional SBC variant, providing a mono back channel&lt;br /&gt;
* Opus 0.5: PipeWire&#039;s [https://gitlab.freedesktop.org/pipewire/pipewire/-/blob/434cc6a90b6cdbaa31f013fea95786e1f5bf6d88/spa/plugins/bluez5/README-OPUS-A2DP.md little experiment] with nearly unlimited channels in either direction. Zero hardware support.&lt;br /&gt;
* Opus Android: The [https://hydrogenaud.io/index.php/topic,114566.msg1023511.html#msg1023511 Android 13] approach to adding Opus support. Stereo only, could be bidirectional? (check a2dp_vendor_opus_constants.h!) Supported by Pixel headphones.&lt;br /&gt;
&lt;br /&gt;
Bitrate is limited by bluetooth link. For all relevant codecs, there is a maximum limit of 2 channels: this is a headphone protocol, not a speaker protocol. Microphone-back channel is not available except in FastStream and AptX LL duplex.&lt;br /&gt;
&lt;br /&gt;
==== Sub Band Codec ====&lt;br /&gt;
* Sampling Frequency - 16000, 32000, 44100, 48000 (some are optional, see references)&lt;br /&gt;
* Channel Mode - mono, dual channel, stereo, joint stereo&lt;br /&gt;
&lt;br /&gt;
The bitrate used for CD-rate (16-bit, 44.1 KHz) audio is 229 kbps and 328 kbps for middle and high quality, respectively.&lt;br /&gt;
&lt;br /&gt;
Reference: [https://www.bluetooth.org/foundry/adopters/document/A2DP_Spec_V1_0/en/ BLUETOOTH Advanced Audio Distribution Profile 1.0]&lt;br /&gt;
&lt;br /&gt;
=== HSP/HFP ===&lt;br /&gt;
This is the mode with mono input and output, both at voice sample rates. Only very crude encodings (CVSD, PCM, optionally SBC 16KHz as the higher-quality thing) are supported, so do not expect audio quality.&lt;br /&gt;
&lt;br /&gt;
=== LE Audio ===&lt;br /&gt;
This is the new, rewritten general-purpose bluetooth audio stack. This mode allows bidirectional audio of various channel configurations. Battery use is allegedly lower than A2DP.&lt;br /&gt;
&lt;br /&gt;
==== LC3 ====&lt;br /&gt;
: &#039;&#039;See also: [[Wikipedia:LC3 (codec)]]&#039;&#039;&lt;br /&gt;
[https://www.bluetooth.org/DocMan/handlers/DownloadDoc.ashx?doc_id=502107&amp;amp;vId=542963 LC3] is the baseline LE Audio codec. It uses some of the same ideas as Opus CELT, but comes with some new patented techniques and runs at extremely low complexity.&lt;br /&gt;
&lt;br /&gt;
* It&#039;s [https://www.etsi.org/deliver/etsi_tr/103500_103599/103590/01.01.01_60/tr_103590v010101p.pdf allegedly] &amp;quot;better than Opus&amp;quot; with respect to error tolerance in speech environments. Except the test is done with speech samples in the non-speech, non-FEC mode of Opus (CELT), at minimum complexity (effort), and an old version at that.&lt;br /&gt;
* No [[joint stereo]] is available. The rationale given is that this allows True Wireless Stereo (TWS) to work with the audio source transmitting direct to each headphone, without needing an intermediate decode.&lt;br /&gt;
* LC3plus, LC3&#039;s &amp;quot;high-res&amp;quot; cousin available over A2DP, is [https://hydrogenaud.io/index.php/topic,121850.0.html worse than Apple and Android (FDK) AAC at 144 kbps]. The Japan Audio Society nevertheless thinks that&#039;s enough for a &amp;quot;Hi-Res AUDIO WIRELESS&amp;quot; sticker.&lt;br /&gt;
&lt;br /&gt;
In any case, it&#039;s much better than SBC and retains the low complexity character. When given more bits, such as with the 96*2 and 124*2 standard profiles, it can be very acceptable. Google&#039;s open source [https://github.com/google/liblc3 liblc3] implementation is written to the word of the BT spec.&lt;br /&gt;
&lt;br /&gt;
=== Operating systems ===&lt;br /&gt;
&lt;br /&gt;
Bluetooth codec support is not great on Windows. Windows 10 has SBC and AptX. Windows 11 introduces AAC as a better-than-SBC fallback on non-Qualcomm devices; it also introduces LE Audio support. There is no support for any codec variant such as AptX-HD. You can use a [https://www.bluetoothgoodies.com/a2dp/ third-party driver] ($5.99 trialware) that does A2DP its own way to get the better codecs.&lt;br /&gt;
&lt;br /&gt;
With PipeWire and BlueZ 5, Linux has support for many codecs: AptX (including LL and HD), LDAC, FastStream, both versions of Opus, LC3plus, and SBC XQ. The modern, PipeWire-based Linux audio stack can have very low software latency when combined with linux-rt or rtkit. Combined with a low-latency codec, one &#039;&#039;should&#039;&#039; receive a relatively low-latency experience.&lt;br /&gt;
&lt;br /&gt;
macOS and iOS are known to support AAC. SBC support is presumed to exist. There [https://gist.github.com/dvf/3771e58085568559c429d05ccc339219 used to be] support for AptX.&lt;br /&gt;
&lt;br /&gt;
== Headphones ==&lt;br /&gt;
Some Styles (smallest to largest)&lt;br /&gt;
* In the ear - outputs directly into the ear canal&lt;br /&gt;
* Earbuds - sits in the outer ear&lt;br /&gt;
* Supra-aural - sits on the ear&lt;br /&gt;
* circumaural - completely cover the ear&lt;br /&gt;
&lt;br /&gt;
Terminology used for comparing headphones&lt;br /&gt;
* Noise Cancelling&lt;br /&gt;
** active&lt;br /&gt;
** passive&lt;br /&gt;
&lt;br /&gt;
* Frequency response - The range of frequencies the headphones can reproduce&lt;br /&gt;
&lt;br /&gt;
* Impedance - Doesn&#039;t mean much by itself, but in general, impedence should be matched across a system. &lt;br /&gt;
&lt;br /&gt;
* SPL@1kHz, 1V rms - [http://en.wikipedia.org/wiki/Sound_pressure_level#SPL_in_audio_equipment Sound Pressure Level]. How efficient the unit converts electrical energy to sound energy.&lt;br /&gt;
&lt;br /&gt;
* Neodymium - The magnet of choice for high end headphones.&lt;br /&gt;
Popular Headphones&lt;br /&gt;
* Sub $30&lt;br /&gt;
* Sub $100&lt;br /&gt;
* $100 - $300&lt;br /&gt;
* $300+&lt;/div&gt;</summary>
		<author><name>Artoria2e5</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=Other_hardware&amp;diff=38167</id>
		<title>Other hardware</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=Other_hardware&amp;diff=38167"/>
		<updated>2024-08-06T03:48:05Z</updated>

		<summary type="html">&lt;p&gt;Artoria2e5: /* Operating systems */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{stub}}&lt;br /&gt;
&lt;br /&gt;
== Bluetooth ==&lt;br /&gt;
&lt;br /&gt;
Bluetooth has two unusual requirements: codec complexity and latency. Complexity (bitrate too, to an extent) decides battery life, but with the codec doing less work, it&#039;s not usual to see bitrate/quality trades way worse than conventional codecs.&lt;br /&gt;
&lt;br /&gt;
=== A2DP ===&lt;br /&gt;
Advanced Audio Distribution Profile (A2DP) is the traditional music profile.&lt;br /&gt;
*[http://www.hydrogenaudio.org/forums/index.php?showtopic=32634 forums]&lt;br /&gt;
*[http://en.wikipedia.org/wiki/A2DP#Bluetooth_profiles wikipedia]&lt;br /&gt;
* [https://habr.com/en/articles/456182/ HABR]&lt;br /&gt;
&lt;br /&gt;
Standard baseline codecs:&lt;br /&gt;
* Sub Band Codec (SBC) &amp;amp;ndash; okay, not great&lt;br /&gt;
&lt;br /&gt;
Standard optional codecs:&lt;br /&gt;
* MPEG-1,2 Audio: = MP3, almost never used&lt;br /&gt;
* AAC: relatively good decode support, transparency possible at bluetooth bitrates, but latency can be an issue&lt;br /&gt;
* ATRAC: never used&lt;br /&gt;
&lt;br /&gt;
Vendor extension codecs:&lt;br /&gt;
* AptX, LDAC, LLDC: in general lower complexity but higher bitrate (still within BT limits) than AAC, transparency possible; AptX and LDAC has wide support&lt;br /&gt;
* FastStream: Qualcomm&#039;s bidirectional SBC variant, providing a mono back channel&lt;br /&gt;
* Opus 0.5: PipeWire&#039;s [https://gitlab.freedesktop.org/pipewire/pipewire/-/blob/434cc6a90b6cdbaa31f013fea95786e1f5bf6d88/spa/plugins/bluez5/README-OPUS-A2DP.md little experiment] with nearly unlimited channels in either direction. Zero hardware support.&lt;br /&gt;
* Opus Android: The [https://hydrogenaud.io/index.php/topic,114566.msg1023511.html#msg1023511 Android 13] approach to adding Opus support. Stereo only, could be bidirectional? (check a2dp_vendor_opus_constants.h!) Supported by Pixel headphones.&lt;br /&gt;
&lt;br /&gt;
Bitrate is limited by bluetooth link. For all relevant codecs, there is a maximum limit of 2 channels: this is a headphone protocol, not a speaker protocol. Microphone-back channel is not available except in FastStream and AptX LL duplex.&lt;br /&gt;
&lt;br /&gt;
==== Sub Band Codec ====&lt;br /&gt;
* Sampling Frequency - 16000, 32000, 44100, 48000 (some are optional, see references)&lt;br /&gt;
* Channel Mode - mono, dual channel, stereo, joint stereo&lt;br /&gt;
&lt;br /&gt;
The bitrate used for CD-rate (16-bit, 44.1 KHz) audio is 229 kbps and 328 kbps for middle and high quality, respectively.&lt;br /&gt;
&lt;br /&gt;
Reference: [https://www.bluetooth.org/foundry/adopters/document/A2DP_Spec_V1_0/en/ BLUETOOTH Advanced Audio Distribution Profile 1.0]&lt;br /&gt;
&lt;br /&gt;
=== HSP/HFP ===&lt;br /&gt;
This is the mode with mono input and output, both at voice sample rates. Only very crude encodings (CVSD, PCM, optionally SBC 16KHz as the higher-quality thing) are supported, so do not expect audio quality.&lt;br /&gt;
&lt;br /&gt;
=== LE Audio ===&lt;br /&gt;
This is the new, rewritten general-purpose bluetooth audio stack. This mode allows bidirectional audio of various channel configurations. Battery use is allegedly lower than A2DP.&lt;br /&gt;
&lt;br /&gt;
==== LC3 ====&lt;br /&gt;
: &#039;&#039;See also: [[Wikipedia:LC3 (codec)]]&#039;&#039;&lt;br /&gt;
[https://www.bluetooth.org/DocMan/handlers/DownloadDoc.ashx?doc_id=502107&amp;amp;vId=542963 LC3] is the baseline LE Audio codec. It uses some of the same ideas as Opus CELT, but comes with some new patented techniques and runs at extremely low complexity.&lt;br /&gt;
&lt;br /&gt;
* It&#039;s [https://www.etsi.org/deliver/etsi_tr/103500_103599/103590/01.01.01_60/tr_103590v010101p.pdf allegedly] &amp;quot;better than Opus&amp;quot; with respect to error tolerance in speech environments. Except the test is done with speech samples in the non-speech, non-FEC mode of Opus (CELT), at minimum complexity (effort), and an old version at that.&lt;br /&gt;
* No [[joint stereo]] is available. The rationale given is that this allows True Wireless Stereo (TWS) to work with the audio source transmitting direct to each headphone, without needing an intermediate decode.&lt;br /&gt;
* LC3plus, LC3&#039;s &amp;quot;high-res&amp;quot; cousin available over A2DP, is [https://hydrogenaud.io/index.php/topic,121850.0.html worse than Apple and Android (FDK) AAC at 144 kbps]. The Japan Audio Society nevertheless thinks that&#039;s enough for a &amp;quot;Hi-Res AUDIO WIRELESS&amp;quot; sticker.&lt;br /&gt;
&lt;br /&gt;
In any case, it&#039;s much better than SBC and retains the low complexity character. When given more bits, such as with the 96*2 and 124*2 standard profiles, it can be very acceptable. Google&#039;s open source [https://github.com/google/liblc3 liblc3] implementation is written to the word of the BT spec.&lt;br /&gt;
&lt;br /&gt;
=== Operating systems ===&lt;br /&gt;
&lt;br /&gt;
Bluetooth codec support is not great on Windows. Windows 10 has SBC and AptX. Windows 11 introduces AAC as a better-than-SBC fallback on non-Qualcomm devices; it also introduces LE Audio support. There is no support for any codec variant such as AptX-HD. You can use a [https://www.bluetoothgoodies.com/a2dp/ third-party driver] ($5.99 trialware) that does A2DP its own way to get the better codecs.&lt;br /&gt;
&lt;br /&gt;
With PipeWire and BlueZ 5, Linux has support for many codecs: AptX (including LL and HD), LDAC, FastStream, both versions of Opus, LC3plus, and SBC XQ. The modern, PipeWire-based Linux audio stack can have very low software latency when combined with RTKit. Combined with a low-latency codec, one &#039;&#039;should&#039;&#039; receive a relatively low-latency experience.&lt;br /&gt;
&lt;br /&gt;
macOS and iOS are known to support AAC. SBC support is presumed to exist. There [https://gist.github.com/dvf/3771e58085568559c429d05ccc339219 used to be] support for AptX.&lt;br /&gt;
&lt;br /&gt;
== Headphones ==&lt;br /&gt;
Some Styles (smallest to largest)&lt;br /&gt;
* In the ear - outputs directly into the ear canal&lt;br /&gt;
* Earbuds - sits in the outer ear&lt;br /&gt;
* Supra-aural - sits on the ear&lt;br /&gt;
* circumaural - completely cover the ear&lt;br /&gt;
&lt;br /&gt;
Terminology used for comparing headphones&lt;br /&gt;
* Noise Cancelling&lt;br /&gt;
** active&lt;br /&gt;
** passive&lt;br /&gt;
&lt;br /&gt;
* Frequency response - The range of frequencies the headphones can reproduce&lt;br /&gt;
&lt;br /&gt;
* Impedance - Doesn&#039;t mean much by itself, but in general, impedence should be matched across a system. &lt;br /&gt;
&lt;br /&gt;
* SPL@1kHz, 1V rms - [http://en.wikipedia.org/wiki/Sound_pressure_level#SPL_in_audio_equipment Sound Pressure Level]. How efficient the unit converts electrical energy to sound energy.&lt;br /&gt;
&lt;br /&gt;
* Neodymium - The magnet of choice for high end headphones.&lt;br /&gt;
Popular Headphones&lt;br /&gt;
* Sub $30&lt;br /&gt;
* Sub $100&lt;br /&gt;
* $100 - $300&lt;br /&gt;
* $300+&lt;/div&gt;</summary>
		<author><name>Artoria2e5</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=Other_hardware&amp;diff=38166</id>
		<title>Other hardware</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=Other_hardware&amp;diff=38166"/>
		<updated>2024-08-06T03:46:53Z</updated>

		<summary type="html">&lt;p&gt;Artoria2e5: /* Bluetooth */ add /* Operating systems  */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{stub}}&lt;br /&gt;
&lt;br /&gt;
== Bluetooth ==&lt;br /&gt;
&lt;br /&gt;
Bluetooth has two unusual requirements: codec complexity and latency. Complexity (bitrate too, to an extent) decides battery life, but with the codec doing less work, it&#039;s not usual to see bitrate/quality trades way worse than conventional codecs.&lt;br /&gt;
&lt;br /&gt;
=== A2DP ===&lt;br /&gt;
Advanced Audio Distribution Profile (A2DP) is the traditional music profile.&lt;br /&gt;
*[http://www.hydrogenaudio.org/forums/index.php?showtopic=32634 forums]&lt;br /&gt;
*[http://en.wikipedia.org/wiki/A2DP#Bluetooth_profiles wikipedia]&lt;br /&gt;
* [https://habr.com/en/articles/456182/ HABR]&lt;br /&gt;
&lt;br /&gt;
Standard baseline codecs:&lt;br /&gt;
* Sub Band Codec (SBC) &amp;amp;ndash; okay, not great&lt;br /&gt;
&lt;br /&gt;
Standard optional codecs:&lt;br /&gt;
* MPEG-1,2 Audio: = MP3, almost never used&lt;br /&gt;
* AAC: relatively good decode support, transparency possible at bluetooth bitrates, but latency can be an issue&lt;br /&gt;
* ATRAC: never used&lt;br /&gt;
&lt;br /&gt;
Vendor extension codecs:&lt;br /&gt;
* AptX, LDAC, LLDC: in general lower complexity but higher bitrate (still within BT limits) than AAC, transparency possible; AptX and LDAC has wide support&lt;br /&gt;
* FastStream: Qualcomm&#039;s bidirectional SBC variant, providing a mono back channel&lt;br /&gt;
* Opus 0.5: PipeWire&#039;s [https://gitlab.freedesktop.org/pipewire/pipewire/-/blob/434cc6a90b6cdbaa31f013fea95786e1f5bf6d88/spa/plugins/bluez5/README-OPUS-A2DP.md little experiment] with nearly unlimited channels in either direction. Zero hardware support.&lt;br /&gt;
* Opus Android: The [https://hydrogenaud.io/index.php/topic,114566.msg1023511.html#msg1023511 Android 13] approach to adding Opus support. Stereo only, could be bidirectional? (check a2dp_vendor_opus_constants.h!) Supported by Pixel headphones.&lt;br /&gt;
&lt;br /&gt;
Bitrate is limited by bluetooth link. For all relevant codecs, there is a maximum limit of 2 channels: this is a headphone protocol, not a speaker protocol. Microphone-back channel is not available except in FastStream and AptX LL duplex.&lt;br /&gt;
&lt;br /&gt;
==== Sub Band Codec ====&lt;br /&gt;
* Sampling Frequency - 16000, 32000, 44100, 48000 (some are optional, see references)&lt;br /&gt;
* Channel Mode - mono, dual channel, stereo, joint stereo&lt;br /&gt;
&lt;br /&gt;
The bitrate used for CD-rate (16-bit, 44.1 KHz) audio is 229 kbps and 328 kbps for middle and high quality, respectively.&lt;br /&gt;
&lt;br /&gt;
Reference: [https://www.bluetooth.org/foundry/adopters/document/A2DP_Spec_V1_0/en/ BLUETOOTH Advanced Audio Distribution Profile 1.0]&lt;br /&gt;
&lt;br /&gt;
=== HSP/HFP ===&lt;br /&gt;
This is the mode with mono input and output, both at voice sample rates. Only very crude encodings (CVSD, PCM, optionally SBC 16KHz as the higher-quality thing) are supported, so do not expect audio quality.&lt;br /&gt;
&lt;br /&gt;
=== LE Audio ===&lt;br /&gt;
This is the new, rewritten general-purpose bluetooth audio stack. This mode allows bidirectional audio of various channel configurations. Battery use is allegedly lower than A2DP.&lt;br /&gt;
&lt;br /&gt;
==== LC3 ====&lt;br /&gt;
: &#039;&#039;See also: [[Wikipedia:LC3 (codec)]]&#039;&#039;&lt;br /&gt;
[https://www.bluetooth.org/DocMan/handlers/DownloadDoc.ashx?doc_id=502107&amp;amp;vId=542963 LC3] is the baseline LE Audio codec. It uses some of the same ideas as Opus CELT, but comes with some new patented techniques and runs at extremely low complexity.&lt;br /&gt;
&lt;br /&gt;
* It&#039;s [https://www.etsi.org/deliver/etsi_tr/103500_103599/103590/01.01.01_60/tr_103590v010101p.pdf allegedly] &amp;quot;better than Opus&amp;quot; with respect to error tolerance in speech environments. Except the test is done with speech samples in the non-speech, non-FEC mode of Opus (CELT), at minimum complexity (effort), and an old version at that.&lt;br /&gt;
* No [[joint stereo]] is available. The rationale given is that this allows True Wireless Stereo (TWS) to work with the audio source transmitting direct to each headphone, without needing an intermediate decode.&lt;br /&gt;
* LC3plus, LC3&#039;s &amp;quot;high-res&amp;quot; cousin available over A2DP, is [https://hydrogenaud.io/index.php/topic,121850.0.html worse than Apple and Android (FDK) AAC at 144 kbps]. The Japan Audio Society nevertheless thinks that&#039;s enough for a &amp;quot;Hi-Res AUDIO WIRELESS&amp;quot; sticker.&lt;br /&gt;
&lt;br /&gt;
In any case, it&#039;s much better than SBC and retains the low complexity character. When given more bits, such as with the 96*2 and 124*2 standard profiles, it can be very acceptable. Google&#039;s open source [https://github.com/google/liblc3 liblc3] implementation is written to the word of the BT spec.&lt;br /&gt;
&lt;br /&gt;
=== Operating systems ===&lt;br /&gt;
&lt;br /&gt;
Bluetooth codec support is not great on Windows. Windows 10 has SBC and AptX. Windows 11 introduces AAC as a better-than-SBC fallback on non-Qualcomm devices; it also introduces LE Audio support. There is no support for any codec variant such as AptX-HD. You can use a [https://www.bluetoothgoodies.com/a2dp/ third-party driver] that does A2DP its own way to get the better codecs.&lt;br /&gt;
&lt;br /&gt;
With PipeWire and BlueZ 5, Linux has support for many codecs: AptX (including LL and HD), LDAC, FastStream, both versions of Opus, LC3plus, and SBC XQ. The modern, PipeWire-based Linux audio stack can have very low software latency when combined with RTKit. Combined with a low-latency codec, one &#039;&#039;should&#039;&#039; receive a relatively low-latency experience.&lt;br /&gt;
&lt;br /&gt;
macOS and iOS are known to support AAC. SBC support is presumed to exist. There [https://gist.github.com/dvf/3771e58085568559c429d05ccc339219 used to be] support for AptX.&lt;br /&gt;
&lt;br /&gt;
== Headphones ==&lt;br /&gt;
Some Styles (smallest to largest)&lt;br /&gt;
* In the ear - outputs directly into the ear canal&lt;br /&gt;
* Earbuds - sits in the outer ear&lt;br /&gt;
* Supra-aural - sits on the ear&lt;br /&gt;
* circumaural - completely cover the ear&lt;br /&gt;
&lt;br /&gt;
Terminology used for comparing headphones&lt;br /&gt;
* Noise Cancelling&lt;br /&gt;
** active&lt;br /&gt;
** passive&lt;br /&gt;
&lt;br /&gt;
* Frequency response - The range of frequencies the headphones can reproduce&lt;br /&gt;
&lt;br /&gt;
* Impedance - Doesn&#039;t mean much by itself, but in general, impedence should be matched across a system. &lt;br /&gt;
&lt;br /&gt;
* SPL@1kHz, 1V rms - [http://en.wikipedia.org/wiki/Sound_pressure_level#SPL_in_audio_equipment Sound Pressure Level]. How efficient the unit converts electrical energy to sound energy.&lt;br /&gt;
&lt;br /&gt;
* Neodymium - The magnet of choice for high end headphones.&lt;br /&gt;
Popular Headphones&lt;br /&gt;
* Sub $30&lt;br /&gt;
* Sub $100&lt;br /&gt;
* $100 - $300&lt;br /&gt;
* $300+&lt;/div&gt;</summary>
		<author><name>Artoria2e5</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=BS.1387&amp;diff=37340</id>
		<title>BS.1387</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=BS.1387&amp;diff=37340"/>
		<updated>2023-08-25T00:07:08Z</updated>

		<summary type="html">&lt;p&gt;Artoria2e5: /* Other objective metrics */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;ITU-R recommendation BS.1387&#039;&#039;&#039; is the document that defines &#039;&#039;&#039;Perceptual Evaluation of Audio Quality&#039;&#039;&#039; (PEAQ), an &#039;&#039;objective&#039;&#039; measurement technique used to measure the quality of encoded/decoded audio files. It acts in contrast to more the common place &#039;&#039;subjective&#039;&#039; testing methodology deployed using [[ABX]] and [[ABC/HR]] reference testing -- frequently preferred by hydrogenaudio. PEAQ returns an &amp;quot;ODG&amp;quot; rating, which is intended to match the difference in subjective (1&amp;amp;ndash;5) scores between the two input samples.&lt;br /&gt;
&lt;br /&gt;
== Structure ==&lt;br /&gt;
PEAQ has two versions: basic and advanced. The basic version only uses an FFT-based ear model and is easier to compute. The advanced version uses both FFT and filter bank and is expected to be more accurate.&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
&lt;br /&gt;
BS.1387 was initially published in 1998. It was updated to BS.1387-1 in 2001 and BS.1387-2 in 2023.&lt;br /&gt;
&lt;br /&gt;
* BS.1387-1 includes important technical corrections -- ones that are important to reach the standard&#039;s own conformance criteria.&amp;lt;ref&amp;gt;https://www.opticom.de/download/CorrectionstoBS1387.pdf&amp;lt;/ref&amp;gt;&lt;br /&gt;
* BS.1387-2 seems to have no real change, except for removal of references to BS.1115, addition of a table of contents, and extensive reformatting.&lt;br /&gt;
&lt;br /&gt;
== EAQUAL ==&lt;br /&gt;
&#039;&#039;&#039;EAQUAL&#039;&#039;&#039; (&#039;&#039;Evaluation Of Audio Quality&#039;&#039;) is an open-source software that implements PEAQ&#039;s basic model &#039;&#039;only&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== Invoking EAQUAL ===&lt;br /&gt;
As of version 0.1.3alpha, the &#039;&#039;-h&#039;&#039; argument can be used to find out how to use eaqual (ex: &#039;&#039;eaqual -h&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
To compare a test wave file to a reference wave file, one can use for example: &#039;&#039;eaqual -fref ref.wav -ftest test.wav&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== Interpreting EAQUAL output ===&lt;br /&gt;
EAQUAL outputs one score, the PEAQ &amp;quot;ODG&amp;quot; rating. This ODG (Objective Difference Grade) rating is designed by ITU to match an SDG (Subjective Difference Grade) rating, which is the difference between the subjective (1&amp;amp;ndash;5) scores between the two input samples. Assuming the HydrogenAudio subjective scoring system, where the reference sample is always scored as a perfect 5, adding 5 points to ODG should produce an approximation of the subjective score.&lt;br /&gt;
&lt;br /&gt;
=== Status of the project ===&lt;br /&gt;
Development of EAQUAL was halted in 2002 due to patent concerns. This is not a problem for PEAQ compilance, however, considering the 2001 BS.1387-1 does not differ substantially from the 2023 version.&lt;br /&gt;
&lt;br /&gt;
The ITU patent declaration system does not list any specific PEAQ patent by number. However, no new patents have been added since 1998, so any patent should have expired by 2018.&amp;lt;ref&amp;gt;https://www.itu.int/en/ITU-R/study-groups/Pages/itu-r-patent-information.aspx&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Versions of EAQUAL include:&lt;br /&gt;
* [http://www.mp3-tech.org/programmer/sources/eaqual.tgz EAQUAL Sourcecode] linux archive of c code used to implement EAQUAL provided by Gabriel Bouvigne, mirrored on github by [https://github.com/spxnn/eaqual spxnn]&lt;br /&gt;
* [http://www.rarewares.org/others.html EAQUAL Tools] zip compression archive of the utility used to perform EAQUAL tests provided by Rarewares.&lt;br /&gt;
* [https://github.com/ivan-codelegs/eaqual ivan-codelegs] github fork, adds macOS support&lt;br /&gt;
&lt;br /&gt;
== GstPEAQ ==&lt;br /&gt;
[https://github.com/HSU-ANT/gstpeaq GstPEAQ] is an implementation of PEAQ, &#039;&#039;both&#039;&#039; basic and advanced, in GStreamer. In addition to the ODG, it also outputs the distortion index (DI), which is not clipped at extremes and not fitted to score anchors. On the HA multiformat dataset:&lt;br /&gt;
* The advanced model gives a correlation improvement of ~0.2 over basic;&lt;br /&gt;
* DI is slightly better at predicting subjective scores than ODG, with a correlation improvement of ~0.03.&lt;br /&gt;
&lt;br /&gt;
== Comparison with subjective listening tests ==&lt;br /&gt;
* [http://www.hydrogenaudio.org/forums/index.php?showtopic=20264 EAqual results for the AAC@128v2 listening test] - fair Pearson correlation (0.699) among higher-quality samples: all AAC&lt;br /&gt;
* [https://hydrogenaud.io/index.php/topic,124607.msg1031323.htmlGstPEAQ: PEAQ done right, allegedly || Multiformat correlation] - great Pearson correlation (0.924, DI Adv): samples of three quality groups&lt;br /&gt;
&lt;br /&gt;
HA comparisons between PEAQ and human raters remain inconclusive. PEAQ is considered useful for an approximation of human senses in codec development and research, but concrete results still need human participation.&lt;br /&gt;
&lt;br /&gt;
== Other implementations ==&lt;br /&gt;
PEAQ-Basic is simple enough to have many implementations.&lt;br /&gt;
&lt;br /&gt;
* [https://sourceforge.net/projects/peaqb/ peaqb] is another implementation of PEAQ. Last updated 2003.&lt;br /&gt;
* There a good number of Matlab implementations for researchers. But it&#039;s Matlab, so there&#039;s gonna be academic code smell.&lt;br /&gt;
&lt;br /&gt;
== Other objective metrics ==&lt;br /&gt;
PEAQ is not the end. There are other metrics:&amp;lt;ref&amp;gt;https://github.com/jonnor/machinehearing/blob/09b5060bd03b8a49fc1d0afd8eedba4babca83ca/audio-quality/README.md&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* ITU also has PESQ and POLQA, both designed for speech.&lt;br /&gt;
* [https://github.com/google/visqol VISQOL] is Google&#039;s open-source metric. It works for both speech and music, but the neural network (don&#039;t worry, it runs fast enough on a CPU) is trained for short clips only. Maybe someone can write a tool to one file into many clips and see individual segment scores.&lt;br /&gt;
* CDPAM is allegedly the model that comes closest to human datasets. Unfortunately the only pre-trained model works on 22050 Hz. And it&#039;s academic neural-network code -- not something you can expect to run on first try.&lt;br /&gt;
&lt;br /&gt;
There are also much more primitive methods that don&#039;t attempt anything perceptual, preferred by peddlers of Bluetooth codecs (they make more sense for analogue systems like DACs):&lt;br /&gt;
* SNR&lt;br /&gt;
* THD+N&lt;br /&gt;
&lt;br /&gt;
== External links==&lt;br /&gt;
* [[Wikipedia:Perceptual Evaluation of Audio Quality]]&lt;br /&gt;
* [https://www.itu.int/rec/R-REC-BS.1387 ITU BS.1387] download -- free full text of the standard, straight from the official site.&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Software]][[Category:Quality measurement]]&lt;/div&gt;</summary>
		<author><name>Artoria2e5</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=Other_hardware&amp;diff=37339</id>
		<title>Other hardware</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=Other_hardware&amp;diff=37339"/>
		<updated>2023-08-25T00:04:24Z</updated>

		<summary type="html">&lt;p&gt;Artoria2e5: /* Bluetooth */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{stub}}&lt;br /&gt;
&lt;br /&gt;
== Bluetooth ==&lt;br /&gt;
&lt;br /&gt;
Bluetooth has two unusual requirements: codec complexity and latency. Complexity (bitrate too, to an extent) decides battery life, but with the codec doing less work, it&#039;s not usual to see bitrate/quality trades way worse than conventional codecs.&lt;br /&gt;
&lt;br /&gt;
=== A2DP ===&lt;br /&gt;
Advanced Audio Distribution Profile (A2DP) is the traditional music profile.&lt;br /&gt;
*[http://www.hydrogenaudio.org/forums/index.php?showtopic=32634 forums]&lt;br /&gt;
*[http://en.wikipedia.org/wiki/A2DP#Bluetooth_profiles wikipedia]&lt;br /&gt;
* [https://habr.com/en/articles/456182/ HABR]&lt;br /&gt;
&lt;br /&gt;
Standard baseline codecs:&lt;br /&gt;
* Sub Band Codec (SBC) &amp;amp;ndash; okay, not great&lt;br /&gt;
&lt;br /&gt;
Standard optional codecs:&lt;br /&gt;
* MPEG-1,2 Audio: = MP3, almost never used&lt;br /&gt;
* AAC: relatively good decode support, transparency possible at bluetooth bitrates, but latency can be an issue&lt;br /&gt;
* ATRAC: never used&lt;br /&gt;
&lt;br /&gt;
Vendor extension codecs:&lt;br /&gt;
* AptX, LDAC, LLDC: in general lower complexity but higher bitrate (still within BT limits) than AAC, transparency possible; AptX and LDAC has wide support&lt;br /&gt;
* FastStream: Qualcomm&#039;s bidirectional SBC variant, providing a mono back channel&lt;br /&gt;
* Opus 0.5: PipeWire&#039;s [https://gitlab.freedesktop.org/pipewire/pipewire/-/blob/434cc6a90b6cdbaa31f013fea95786e1f5bf6d88/spa/plugins/bluez5/README-OPUS-A2DP.md little experiment] with nearly unlimited channels in either direction. Zero hardware support.&lt;br /&gt;
* Opus Android: The [https://hydrogenaud.io/index.php/topic,114566.msg1023511.html#msg1023511 Android 13] approach to adding Opus support. Stereo only, could be bidirectional? (check a2dp_vendor_opus_constants.h!) Supported by Pixel headphones.&lt;br /&gt;
&lt;br /&gt;
Bitrate is limited by bluetooth link. For all relevant codecs, there is a maximum limit of 2 channels: this is a headphone protocol, not a speaker protocol. Microphone-back channel is not available except in FastStream and AptX LL duplex.&lt;br /&gt;
&lt;br /&gt;
==== Sub Band Codec ====&lt;br /&gt;
* Sampling Frequency - 16000, 32000, 44100, 48000 (some are optional, see references)&lt;br /&gt;
* Channel Mode - mono, dual channel, stereo, joint stereo&lt;br /&gt;
&lt;br /&gt;
The bitrate used for CD-rate (16-bit, 44.1 KHz) audio is 229 kbps and 328 kbps for middle and high quality, respectively.&lt;br /&gt;
&lt;br /&gt;
Reference: [https://www.bluetooth.org/foundry/adopters/document/A2DP_Spec_V1_0/en/ BLUETOOTH Advanced Audio Distribution Profile 1.0]&lt;br /&gt;
&lt;br /&gt;
=== HSP/HFP ===&lt;br /&gt;
This is the mode with mono input and output, both at voice sample rates. Only very crude encodings (CVSD, PCM, optionally SBC 16KHz as the higher-quality thing) are supported, so do not expect audio quality.&lt;br /&gt;
&lt;br /&gt;
=== LE Audio ===&lt;br /&gt;
This is the new, rewritten general-purpose bluetooth audio stack. This mode allows bidirectional audio of various channel configurations. Battery use is allegedly lower than A2DP.&lt;br /&gt;
&lt;br /&gt;
==== LC3 ====&lt;br /&gt;
: &#039;&#039;See also: [[Wikipedia:LC3 (codec)]]&#039;&#039;&lt;br /&gt;
[https://www.bluetooth.org/DocMan/handlers/DownloadDoc.ashx?doc_id=502107&amp;amp;vId=542963 LC3] is the baseline LE Audio codec. It uses some of the same ideas as Opus CELT, but comes with some new patented techniques and runs at extremely low complexity.&lt;br /&gt;
&lt;br /&gt;
* It&#039;s [https://www.etsi.org/deliver/etsi_tr/103500_103599/103590/01.01.01_60/tr_103590v010101p.pdf allegedly] &amp;quot;better than Opus&amp;quot; with respect to error tolerance in speech environments. Except the test is done with speech samples in the non-speech, non-FEC mode of Opus (CELT), at minimum complexity (effort), and an old version at that.&lt;br /&gt;
* No [[joint stereo]] is available. The rationale given is that this allows True Wireless Stereo (TWS) to work with the audio source transmitting direct to each headphone, without needing an intermediate decode.&lt;br /&gt;
* LC3plus, LC3&#039;s &amp;quot;high-res&amp;quot; cousin available over A2DP, is [https://hydrogenaud.io/index.php/topic,121850.0.html worse than Apple and Android (FDK) AAC at 144 kbps]. The Japan Audio Society nevertheless thinks that&#039;s enough for a &amp;quot;Hi-Res AUDIO WIRELESS&amp;quot; sticker.&lt;br /&gt;
&lt;br /&gt;
In any case, it&#039;s much better than SBC and retains the low complexity character. When given more bits, such as with the 96*2 and 124*2 standard profiles, it can be very acceptable. Google&#039;s open source [https://github.com/google/liblc3 liblc3] implementation is written to the word of the BT spec.&lt;br /&gt;
&lt;br /&gt;
== Headphones ==&lt;br /&gt;
Some Styles (smallest to largest)&lt;br /&gt;
* In the ear - outputs directly into the ear canal&lt;br /&gt;
* Earbuds - sits in the outer ear&lt;br /&gt;
* Supra-aural - sits on the ear&lt;br /&gt;
* circumaural - completely cover the ear&lt;br /&gt;
&lt;br /&gt;
Terminology used for comparing headphones&lt;br /&gt;
* Noise Cancelling&lt;br /&gt;
** active&lt;br /&gt;
** passive&lt;br /&gt;
&lt;br /&gt;
* Frequency response - The range of frequencies the headphones can reproduce&lt;br /&gt;
&lt;br /&gt;
* Impedance - Doesn&#039;t mean much by itself, but in general, impedence should be matched across a system. &lt;br /&gt;
&lt;br /&gt;
* SPL@1kHz, 1V rms - [http://en.wikipedia.org/wiki/Sound_pressure_level#SPL_in_audio_equipment Sound Pressure Level]. How efficient the unit converts electrical energy to sound energy.&lt;br /&gt;
&lt;br /&gt;
* Neodymium - The magnet of choice for high end headphones.&lt;br /&gt;
Popular Headphones&lt;br /&gt;
* Sub $30&lt;br /&gt;
* Sub $100&lt;br /&gt;
* $100 - $300&lt;br /&gt;
* $300+&lt;/div&gt;</summary>
		<author><name>Artoria2e5</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=Other_hardware&amp;diff=37338</id>
		<title>Other hardware</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=Other_hardware&amp;diff=37338"/>
		<updated>2023-08-25T00:03:32Z</updated>

		<summary type="html">&lt;p&gt;Artoria2e5: /* LC3 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{stub}}&lt;br /&gt;
&lt;br /&gt;
== Bluetooth ==&lt;br /&gt;
&lt;br /&gt;
Bluetooth has two unusual requirements: codec complexity and latency. Complexity decides battery life, but with the codec doing less work, it&#039;s not usual to see bitrate/quality trades way worse than conventional codecs.&lt;br /&gt;
&lt;br /&gt;
=== A2DP ===&lt;br /&gt;
Advanced Audio Distribution Profile (A2DP) is the traditional music profile.&lt;br /&gt;
*[http://www.hydrogenaudio.org/forums/index.php?showtopic=32634 forums]&lt;br /&gt;
*[http://en.wikipedia.org/wiki/A2DP#Bluetooth_profiles wikipedia]&lt;br /&gt;
* [https://habr.com/en/articles/456182/ HABR]&lt;br /&gt;
&lt;br /&gt;
Standard baseline codecs:&lt;br /&gt;
* Sub Band Codec (SBC) &amp;amp;ndash; okay, not great&lt;br /&gt;
&lt;br /&gt;
Standard optional codecs:&lt;br /&gt;
* MPEG-1,2 Audio: = MP3, almost never used&lt;br /&gt;
* AAC: relatively good decode support, transparency possible at bluetooth bitrates, but latency can be an issue&lt;br /&gt;
* ATRAC: never used&lt;br /&gt;
&lt;br /&gt;
Vendor extension codecs:&lt;br /&gt;
* AptX, LDAC, LLDC: in general lower complexity but higher bitrate (still within BT limits) than AAC, transparency possible; AptX and LDAC has wide support&lt;br /&gt;
* FastStream: Qualcomm&#039;s bidirectional SBC variant, providing a mono back channel&lt;br /&gt;
* Opus 0.5: PipeWire&#039;s [https://gitlab.freedesktop.org/pipewire/pipewire/-/blob/434cc6a90b6cdbaa31f013fea95786e1f5bf6d88/spa/plugins/bluez5/README-OPUS-A2DP.md little experiment] with nearly unlimited channels in either direction. Zero hardware support.&lt;br /&gt;
* Opus Android: The [https://hydrogenaud.io/index.php/topic,114566.msg1023511.html#msg1023511 Android 13] approach to adding Opus support. Stereo only, could be bidirectional? (check a2dp_vendor_opus_constants.h!) Supported by Pixel headphones.&lt;br /&gt;
&lt;br /&gt;
Bitrate is limited by bluetooth link. For all relevant codecs, there is a maximum limit of 2 channels: this is a headphone protocol, not a speaker protocol. Microphone-back channel is not available except in FastStream and AptX LL duplex.&lt;br /&gt;
&lt;br /&gt;
==== Sub Band Codec ====&lt;br /&gt;
* Sampling Frequency - 16000, 32000, 44100, 48000 (some are optional, see references)&lt;br /&gt;
* Channel Mode - mono, dual channel, stereo, joint stereo&lt;br /&gt;
&lt;br /&gt;
The bitrate used for CD-rate (16-bit, 44.1 KHz) audio is 229 kbps and 328 kbps for middle and high quality, respectively.&lt;br /&gt;
&lt;br /&gt;
Reference: [https://www.bluetooth.org/foundry/adopters/document/A2DP_Spec_V1_0/en/ BLUETOOTH Advanced Audio Distribution Profile 1.0]&lt;br /&gt;
&lt;br /&gt;
=== HSP/HFP ===&lt;br /&gt;
This is the mode with mono input and output, both at voice sample rates. Only very crude encodings (CVSD, PCM, optionally SBC 16KHz as the higher-quality thing) are supported, so do not expect audio quality.&lt;br /&gt;
&lt;br /&gt;
=== LE Audio ===&lt;br /&gt;
This is the new, rewritten general-purpose bluetooth audio stack. This mode allows bidirectional audio of various channel configurations. Battery use is allegedly lower than A2DP.&lt;br /&gt;
&lt;br /&gt;
==== LC3 ====&lt;br /&gt;
: &#039;&#039;See also: [[Wikipedia:LC3 (codec)]]&#039;&#039;&lt;br /&gt;
[https://www.bluetooth.org/DocMan/handlers/DownloadDoc.ashx?doc_id=502107&amp;amp;vId=542963 LC3] is the baseline LE Audio codec. It uses some of the same ideas as Opus CELT, but comes with some new patented techniques and runs at extremely low complexity.&lt;br /&gt;
&lt;br /&gt;
* It&#039;s [https://www.etsi.org/deliver/etsi_tr/103500_103599/103590/01.01.01_60/tr_103590v010101p.pdf allegedly] &amp;quot;better than Opus&amp;quot; with respect to error tolerance in speech environments. Except the test is done with speech samples in the non-speech, non-FEC mode of Opus (CELT), at minimum complexity (effort), and an old version at that.&lt;br /&gt;
* No [[joint stereo]] is available. The rationale given is that this allows True Wireless Stereo (TWS) to work with the audio source transmitting direct to each headphone, without needing an intermediate decode.&lt;br /&gt;
* LC3plus, LC3&#039;s &amp;quot;high-res&amp;quot; cousin available over A2DP, is [https://hydrogenaud.io/index.php/topic,121850.0.html worse than Apple and Android (FDK) AAC at 144 kbps]. The Japan Audio Society nevertheless thinks that&#039;s enough for a &amp;quot;Hi-Res AUDIO WIRELESS&amp;quot; sticker.&lt;br /&gt;
&lt;br /&gt;
In any case, it&#039;s much better than SBC and retains the low complexity character. When given more bits, such as with the 96*2 and 124*2 standard profiles, it can be very acceptable. Google&#039;s open source [https://github.com/google/liblc3 liblc3] implementation is written to the word of the BT spec.&lt;br /&gt;
&lt;br /&gt;
== Headphones ==&lt;br /&gt;
Some Styles (smallest to largest)&lt;br /&gt;
* In the ear - outputs directly into the ear canal&lt;br /&gt;
* Earbuds - sits in the outer ear&lt;br /&gt;
* Supra-aural - sits on the ear&lt;br /&gt;
* circumaural - completely cover the ear&lt;br /&gt;
&lt;br /&gt;
Terminology used for comparing headphones&lt;br /&gt;
* Noise Cancelling&lt;br /&gt;
** active&lt;br /&gt;
** passive&lt;br /&gt;
&lt;br /&gt;
* Frequency response - The range of frequencies the headphones can reproduce&lt;br /&gt;
&lt;br /&gt;
* Impedance - Doesn&#039;t mean much by itself, but in general, impedence should be matched across a system. &lt;br /&gt;
&lt;br /&gt;
* SPL@1kHz, 1V rms - [http://en.wikipedia.org/wiki/Sound_pressure_level#SPL_in_audio_equipment Sound Pressure Level]. How efficient the unit converts electrical energy to sound energy.&lt;br /&gt;
&lt;br /&gt;
* Neodymium - The magnet of choice for high end headphones.&lt;br /&gt;
Popular Headphones&lt;br /&gt;
* Sub $30&lt;br /&gt;
* Sub $100&lt;br /&gt;
* $100 - $300&lt;br /&gt;
* $300+&lt;/div&gt;</summary>
		<author><name>Artoria2e5</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=Other_hardware&amp;diff=37337</id>
		<title>Other hardware</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=Other_hardware&amp;diff=37337"/>
		<updated>2023-08-25T00:01:14Z</updated>

		<summary type="html">&lt;p&gt;Artoria2e5: /* LC3 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{stub}}&lt;br /&gt;
&lt;br /&gt;
== Bluetooth ==&lt;br /&gt;
&lt;br /&gt;
Bluetooth has two unusual requirements: codec complexity and latency. Complexity decides battery life, but with the codec doing less work, it&#039;s not usual to see bitrate/quality trades way worse than conventional codecs.&lt;br /&gt;
&lt;br /&gt;
=== A2DP ===&lt;br /&gt;
Advanced Audio Distribution Profile (A2DP) is the traditional music profile.&lt;br /&gt;
*[http://www.hydrogenaudio.org/forums/index.php?showtopic=32634 forums]&lt;br /&gt;
*[http://en.wikipedia.org/wiki/A2DP#Bluetooth_profiles wikipedia]&lt;br /&gt;
* [https://habr.com/en/articles/456182/ HABR]&lt;br /&gt;
&lt;br /&gt;
Standard baseline codecs:&lt;br /&gt;
* Sub Band Codec (SBC) &amp;amp;ndash; okay, not great&lt;br /&gt;
&lt;br /&gt;
Standard optional codecs:&lt;br /&gt;
* MPEG-1,2 Audio: = MP3, almost never used&lt;br /&gt;
* AAC: relatively good decode support, transparency possible at bluetooth bitrates, but latency can be an issue&lt;br /&gt;
* ATRAC: never used&lt;br /&gt;
&lt;br /&gt;
Vendor extension codecs:&lt;br /&gt;
* AptX, LDAC, LLDC: in general lower complexity but higher bitrate (still within BT limits) than AAC, transparency possible; AptX and LDAC has wide support&lt;br /&gt;
* FastStream: Qualcomm&#039;s bidirectional SBC variant, providing a mono back channel&lt;br /&gt;
* Opus 0.5: PipeWire&#039;s [https://gitlab.freedesktop.org/pipewire/pipewire/-/blob/434cc6a90b6cdbaa31f013fea95786e1f5bf6d88/spa/plugins/bluez5/README-OPUS-A2DP.md little experiment] with nearly unlimited channels in either direction. Zero hardware support.&lt;br /&gt;
* Opus Android: The [https://hydrogenaud.io/index.php/topic,114566.msg1023511.html#msg1023511 Android 13] approach to adding Opus support. Stereo only, could be bidirectional? (check a2dp_vendor_opus_constants.h!) Supported by Pixel headphones.&lt;br /&gt;
&lt;br /&gt;
Bitrate is limited by bluetooth link. For all relevant codecs, there is a maximum limit of 2 channels: this is a headphone protocol, not a speaker protocol. Microphone-back channel is not available except in FastStream and AptX LL duplex.&lt;br /&gt;
&lt;br /&gt;
==== Sub Band Codec ====&lt;br /&gt;
* Sampling Frequency - 16000, 32000, 44100, 48000 (some are optional, see references)&lt;br /&gt;
* Channel Mode - mono, dual channel, stereo, joint stereo&lt;br /&gt;
&lt;br /&gt;
The bitrate used for CD-rate (16-bit, 44.1 KHz) audio is 229 kbps and 328 kbps for middle and high quality, respectively.&lt;br /&gt;
&lt;br /&gt;
Reference: [https://www.bluetooth.org/foundry/adopters/document/A2DP_Spec_V1_0/en/ BLUETOOTH Advanced Audio Distribution Profile 1.0]&lt;br /&gt;
&lt;br /&gt;
=== HSP/HFP ===&lt;br /&gt;
This is the mode with mono input and output, both at voice sample rates. Only very crude encodings (CVSD, PCM, optionally SBC 16KHz as the higher-quality thing) are supported, so do not expect audio quality.&lt;br /&gt;
&lt;br /&gt;
=== LE Audio ===&lt;br /&gt;
This is the new, rewritten general-purpose bluetooth audio stack. This mode allows bidirectional audio of various channel configurations. Battery use is allegedly lower than A2DP.&lt;br /&gt;
&lt;br /&gt;
==== LC3 ====&lt;br /&gt;
: &#039;&#039;See also: [[Wikipedia:LC3 (codec)]]&#039;&#039;&lt;br /&gt;
[https://www.bluetooth.org/DocMan/handlers/DownloadDoc.ashx?doc_id=502107&amp;amp;vId=542963 LC3] is the baseline LE Audio codec. It uses some of the same ideas as Opus CELT, but comes with some new patented techniques and runs at extremely low complexity.&lt;br /&gt;
&lt;br /&gt;
* It&#039;s [https://www.etsi.org/deliver/etsi_tr/103500_103599/103590/01.01.01_60/tr_103590v010101p.pdf allegedly] &amp;quot;better than Opus&amp;quot; with respect to error tolerance in speech environments. Except the test is done with speech samples in the non-speech, non-FEC mode of Opus (CELT), at minimum complexity (effort), and an old version at that.&lt;br /&gt;
* No [[joint stereo]] is available. The rationale given is that this allows True Wireless Stereo (TWS) to work with the audio source transmitting direct to each headphone, without needing an intermediate decode.&lt;br /&gt;
* LC3plus, LC3&#039;s &amp;quot;high-res&amp;quot; cousin available over A2DP, is [https://hydrogenaud.io/index.php/topic,121850.0.html worse than Apple and Android (FDK) AAC at 144 kbps]. The Japan Audio Society nevertheless thinks that&#039;s enough for a &amp;quot;Hi-Res AUDIO WIRELESS&amp;quot; sticker.&lt;br /&gt;
&lt;br /&gt;
In any case, it&#039;s much better than SBC and retains the low complexity character. It is not the best use of the bandwidth available, but a lot of things can be excused with &amp;quot;low complexity&amp;quot;. Google&#039;s open source [https://github.com/google/liblc3 liblc3] implementation is written to the word of the BT spec.&lt;br /&gt;
&lt;br /&gt;
== Headphones ==&lt;br /&gt;
Some Styles (smallest to largest)&lt;br /&gt;
* In the ear - outputs directly into the ear canal&lt;br /&gt;
* Earbuds - sits in the outer ear&lt;br /&gt;
* Supra-aural - sits on the ear&lt;br /&gt;
* circumaural - completely cover the ear&lt;br /&gt;
&lt;br /&gt;
Terminology used for comparing headphones&lt;br /&gt;
* Noise Cancelling&lt;br /&gt;
** active&lt;br /&gt;
** passive&lt;br /&gt;
&lt;br /&gt;
* Frequency response - The range of frequencies the headphones can reproduce&lt;br /&gt;
&lt;br /&gt;
* Impedance - Doesn&#039;t mean much by itself, but in general, impedence should be matched across a system. &lt;br /&gt;
&lt;br /&gt;
* SPL@1kHz, 1V rms - [http://en.wikipedia.org/wiki/Sound_pressure_level#SPL_in_audio_equipment Sound Pressure Level]. How efficient the unit converts electrical energy to sound energy.&lt;br /&gt;
&lt;br /&gt;
* Neodymium - The magnet of choice for high end headphones.&lt;br /&gt;
Popular Headphones&lt;br /&gt;
* Sub $30&lt;br /&gt;
* Sub $100&lt;br /&gt;
* $100 - $300&lt;br /&gt;
* $300+&lt;/div&gt;</summary>
		<author><name>Artoria2e5</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=Opus&amp;diff=37302</id>
		<title>Opus</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=Opus&amp;diff=37302"/>
		<updated>2023-08-12T09:09:12Z</updated>

		<summary type="html">&lt;p&gt;Artoria2e5: /* &amp;quot;Equivalent bitrate&amp;quot; */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Software Infobox&lt;br /&gt;
| name = Opus&lt;br /&gt;
| logo = [[Image:opus-logo.png|250px|Official Opus logo]]&lt;br /&gt;
| screenshot =&lt;br /&gt;
| caption = Opus Interactive Audio Codec&lt;br /&gt;
| maintainer = [http://xiph.org/ Xiph.Org Foundation]&lt;br /&gt;
| stable_release = 1.4&lt;br /&gt;
| operating_system = Windows, Mac OS/X, Linux/BSD&lt;br /&gt;
| use = Encoder/Decoder&lt;br /&gt;
| license = 3-clause BSD license&lt;br /&gt;
| website = [http://www.opus-codec.org/ opus-codec.org]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Opus&#039;&#039;&#039; is a [[lossy]] audio compression format developed by the Internet Engineering Task Force (IETF) designed to be suitable for interactive real-time applications over the Internet,{{ref|homepage|a}} including music as well as speech, yet it is also very competitive for use as a storage and playback format, being a [https://web.archive.org/web/20200130083553/http://people.xiph.org/~greg/opus/ha2011/ class leader at around 64 kbps] and [http://listening-test.coresv.net/results.htm also at 96 kbps]. As an open format standardised through [http://tools.ietf.org/html/rfc6716 Request for Comments (RFC) 6716],{{ref|RFC|c}} a high quality reference implementation is provided under the 3-clause BSD license{{ref|homepage|a}} which compiles and runs on the vast majority of general purpose and embedded (fixed point) processors. Many Software patents which cover Opus are licensed under royalty-free terms.{{ref|FAQ|b}}  Opus is also a Mandatory To Implement (MTI) codec for the upcoming WebRTC (Web Real Time Communication) specification of the World Wide Web Consortium (W3C).&lt;br /&gt;
&lt;br /&gt;
Opus incorporates technology from two codecs, the speech-oriented SILK codec developed by Skype and the multi-purpose low-latency CELT codec developed by Xiph.org with significant changes to each to ensure they can work together.{{ref|RFC|c}} Opus can seamlessly transition among high and low bitrates, using a linear prediction codec (the SILK layer) at lower bitrates and a lapped transform codec (the CELT layer) at higher bitrates, as well as a hybrid of the two for a short overlap in which SILK encodes the 0–8&amp;amp;nbsp;kHz spectrum and the CELT layer encodes only the frequencies above 8kHz.{{ref|RFC|c}} Opus has very low algorithmic delay (typ 22.5&amp;amp;nbsp;ms) compared to popular music formats such as [[MP3]], [[Vorbis |Ogg Vorbis]], [[AAC | LC-AAC and HE-AAC]] (all over 100&amp;amp;nbsp;ms), yet performs very competitively with them in terms of quality per bitrate, making it comparably viable as a storage &amp;amp; playback format. Also unlike Vorbis, Opus does not require the definition of large codebooks for each individual file, making it also preferable for short clips of audio, such as those often used by game developers, a field where patent-free Vorbis is commonly used.{{ref|RFC|c}}&lt;br /&gt;
&lt;br /&gt;
Considerably more details of the history and potential applications for Opus are included in the &#039;&#039;Wikipedia&#039;&#039; page for &#039;&#039;&#039;[http://en.wikipedia.org/wiki/Opus_%28audio_format%29 Opus (audio format)]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Characteristics==&lt;br /&gt;
Opus supports bitrates from 6&amp;amp;nbsp;kbps to 510&amp;amp;nbsp;kbps for typical stereo audio sources (and a maximum of around 255 kbps per channel for multichannel audio), with the &#039;sweet spot&#039; for music and general audio around 30&amp;amp;nbsp;kbps (mono) and 40–100&amp;amp;nbsp;kbps (stereo). It is intrinsically [[VBR | variable bitrate]], though constrained VBR and [[CBR | constant bitrate]] modes are possible where required. In the case of the reference release, libopus, the target bitrate is calibrated against the internal constant quality targets so that over a typical music collection, something very close to the target bitrate will be achieved. This bitrate-calibrated approach differs from most VBR encoders (e.g. LAME, helix mp3, qaac, Nero aacenc, Ogg Vorbis, Musepack) where a setting on some &#039;constant quality&#039; scale (which differs between encoders) is used and the bitrate will fall where it may. Improved future versions can be expected to offer improved quality at the same setting. Independent implementations may adopt a different approach.&lt;br /&gt;
&lt;br /&gt;
Opus is able to seamlessly adapt its mode of operation without glitches or sound interruption (an illustrative demonstration of [http://opus-codec.org/examples/#gauge bitrate scalability] is on the Opus Examples page), which can be particularly useful for mixed-content audio or varying network conditions, making the unified Opus codec superior to a suite of different codecs that might otherwise cover the same range of bitrate and quality settings and would require out-of-band signalling to instigate codec switching. The switching includes the choice of mono, stereo and other channel mappings, the use of the speech-oriented SILK layer, the general-purpose CELT layer or the hybrid of both, and the use of different audio bandwidths (4, 6, 8, 12, or 20&amp;amp;nbsp;kHz) as well as the quality adjustments within the same operating mode that are available in most VBR-capable codecs.&lt;br /&gt;
&lt;br /&gt;
Of importance mainly to interactive uses, but potentially useful in time-delayed audio streaming also, Opus includes packet loss concealment (PLC) in all modes and, in the speech-oriented modes where the SILK layer is active it also supports Forward Error Correction (FEC) where the expected rate of packet loss can be indicated to the encoder by the user or by application software and critical frames (e.g. consonant sounds) can be retransmitted at low bitrate to preserve intelligibility.&lt;br /&gt;
&lt;br /&gt;
For music and general audio, the CELT layer of Opus builds on knowledge gained during xiph.org&#039;s Vorbis development and ensures as a primary goal that the total energy in each spectral band is preserved while requiring only a modest bitrate overhead to achieve this, thereby eliminating a lot of bitrate-starvation artifacts such as &#039;birdies&#039; that are common in low-bitrate MP3, especially during transients, applause and cymbal sounds. This technique likewise increases coding efficiency at bitrates targetting transparent music reproduction. Short blocks (2.5&amp;amp;nbsp;ms) are also possible for efficient transient handling. Short blocks can also be used exclusively, if very low algorithmic delay (5.0&amp;amp;nbsp;ms) is required to enable very low-latency interative audio (e.g. live networked music performances such as remote jam sessions), though greater bitrate is then required to maintain the same quality (illustrated in [http://people.xiph.org/~xiphmont/demo/celt/demo.html#demo Monty&#039;s CELT demo page] under Constant PEAQ value, varying latency). CELT uses a number of additional techniques and provides additional advanced tools to enable encoder tuning.&lt;br /&gt;
&lt;br /&gt;
Opus natively supports [[gapless playback]] (though [[Gapless_playback#Poorly_designed_playback_systems | poor player design]] might itself induce interruptions during playback). Playback gain is also required, making some form of [[ReplayGain]] or [[ReplayGain_2.0_specification | similar]] volume control possible in any compliant player.&lt;br /&gt;
&lt;br /&gt;
==Bitrate performance==&lt;br /&gt;
For mono speech, Opus ranges from intelligible narrowband speech reproduction starting at 6&amp;amp;nbsp;kbps to medium-band, wideband and superwideband speech, reaching full-band speech by around 14&amp;amp;nbsp;kbps in encoder version 1.2 (was 21&amp;amp;nbsp;kbps in v1.1, 29&amp;amp;nbsp;kbps in v1.0). Above about 32&amp;amp;nbsp;kbps, the SILK layer is no longer used at all, as CELT alone gives superior quality.&lt;br /&gt;
&lt;br /&gt;
For music, the SILK modes are quite tolerable and better than CELT at very low bitrates. The hybrid mode is adopted as bitrate increases, extending bandwidth first to 12&amp;amp;nbsp;kHz (comparable with compact cassette) then to the full 20&amp;amp;nbsp;kHz and CELT then takes over. Assuming the source is stereo, the transition from mono to stereo typically happens between the transition from 12&amp;amp;nbsp;kHz to 20&amp;amp;nbsp;kHz. Encoder version 1.2 includes great improvements to music encoding in the 32–64&amp;amp;nbsp;kbps range, allowing full-band stereo at 32&amp;amp;nbsp;kbps and providing acceptable quality at 48&amp;amp;nbsp;kbps where artifacts are audible but rarely annoying. Version 1.3 is expected to further improve quality in this range.&lt;br /&gt;
&lt;br /&gt;
Multi-format stereo music listening tests have demonstrated the superiority of Opus at 64&amp;amp;nbsp;kbps and 96&amp;amp;nbsp;kbps compared to the best AAC-LC, HE-AAC and Ogg Vorbis encoders, and at 96&amp;amp;nbsp;kbps also to 128&amp;amp;nbsp;kbps MP3 encoded using LAME &amp;lt;code&amp;gt;-V 5&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Indicative bitrate and quality==&lt;br /&gt;
The tables below give illustrative, indicative quality guidance based on typical modes used internally by Opus and a range of listening tests.&lt;br /&gt;
&lt;br /&gt;
In encoder version 1.1 automatic detection of speech/music and bandwidth detection were introduced to improve mode decisions and VBR is less constrained, all with the aim of maximizing the quality/bitrate tradeoff, and these improvements are further enhanced in version 1.2 and 1.3. These tables are likely to require updates as the encoder is improved, especially in low-bitrate regions.&lt;br /&gt;
&lt;br /&gt;
===Speech encoding quality===&lt;br /&gt;
This table assumes a &#039;&#039;&#039;monophonic&#039;&#039;&#039; source sampled at CD quality or above (typ 48 kHz sampling rate) but mentions stereo compatibility for 40kbps+. The default 20ms frame size (22.5ms latency) is assumed. Note that the selection of &#039;&#039;VOIP&#039;&#039; mode will deliberately modify the sound with a High Pass Filter and emphasis of formants and harmonics to improve intelligibility of speech especially in noisy environments much as telephones do. &#039;&#039;Auto&#039;&#039; mode will not modify the sound prior to encoding so is usually better for high quality speech recordings or mixed speech and music.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Bitrate Target&lt;br /&gt;
!Bandwidth&lt;br /&gt;
!Typical Mode Used&lt;br /&gt;
!Speech Quality&lt;br /&gt;
!Use Cases / Competitive Codecs&lt;br /&gt;
|-&lt;br /&gt;
! Less than 6 kbps&lt;br /&gt;
| &amp;amp;mdash;&lt;br /&gt;
| &amp;amp;mdash;&lt;br /&gt;
| Bitrates lower than 6 kbps not supported by Opus (SILK disabled if forced to encode, which results in terrible speech quality)&lt;br /&gt;
| Try [https://en.wikipedia.org/wiki/Codec_2 Codec 2] for 0.45–3.2&amp;amp;nbsp;kbps mono speech or [[Wikipedia:Lyra (codec)|Lyra]] for 3.2&amp;amp;nbsp;kbps mono speech&lt;br /&gt;
|-&lt;br /&gt;
!6 kbps&lt;br /&gt;
|4 kHz narrow-band&lt;br /&gt;
|SILK&lt;br /&gt;
|Fair, intelligible&lt;br /&gt;
|AMR-NB may be a little better, but higher latency &amp;amp; proprietary, [[Speex]] also competitive&lt;br /&gt;
|-&lt;br /&gt;
!9 kbps VBR/CVBR&amp;lt;br&amp;gt;10 kbps CBR&lt;br /&gt;
|8 kHz wide-band&lt;br /&gt;
|SILK&lt;br /&gt;
|Telephone quality&lt;br /&gt;
|AMR-NB &amp;amp; AMR-WB similar quality, but higher latency &amp;amp; proprietary. [[Speex]] competitive.&lt;br /&gt;
|-&lt;br /&gt;
!12 kbps&lt;br /&gt;
|12 kHz super-wideband&lt;br /&gt;
|hybrid&lt;br /&gt;
|Medium bandwidth, better than telephone quality&lt;br /&gt;
|Similar quality to AMR-WB&lt;br /&gt;
|-&lt;br /&gt;
!16 kbps&lt;br /&gt;
|20 kHz&lt;br /&gt;
|hybrid/CELT&lt;br /&gt;
|Wideband speech quality&lt;br /&gt;
|Similar to/better than AMR-WB&lt;br /&gt;
|-&lt;br /&gt;
!24 kbps&lt;br /&gt;
|20 kHz&lt;br /&gt;
|hybrid/CELT&lt;br /&gt;
|Near transparent speech&lt;br /&gt;
|Better than AMR-WB. Podcasts/audiobooks/talk-radio.&lt;br /&gt;
|-&lt;br /&gt;
!32 kbps&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Essentially transparent speech plus moderately good stereo music&lt;br /&gt;
|Much better than AMR-WB. Podcasts/audiobooks/talk-radio.&lt;br /&gt;
|-&lt;br /&gt;
!40 kbps&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Essentially transparent mono or stereo speech, fairly good stereo music&lt;br /&gt;
|Stereo podcasts/audiobooks/talk radio with some music&lt;br /&gt;
|-&lt;br /&gt;
!48 kbps or more&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Essentially transparent mono or stereo speech, reasonable music&lt;br /&gt;
|Flexible general purpose modes to suit mixed music and speech&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
One major limitation of Opus at low bitrate is that SILK is inherently VBR: it accepts no constraints in CVBR, and if forced to do CBR the quality degrades from bit-shaving. As a result, even though constrained VBR is designed such that a fixed-rate data link requires at most one frame of buffer to handle the variation in bit rate -- great news for communication links -- any use of SILK, even in hybrid mode, has the potential of breaking this intention. This makes Opus suboptimal for low-rate radio links: radio links requires a predictable buffer amount, which is only possible with CBR when SILK is used, but use of CBR in turn hurts SILK. There is a noticeable quality difference at the NB/WB switch at 9 kbps VBR / 10 kbps CBR.&lt;br /&gt;
&lt;br /&gt;
Opus 1.3+ allows forced use of SILK down to 5 kbps VBR (NB) and 6 kbps VBR (WB, requires forcing the C API with &amp;lt;code&amp;gt;OPUS_SET_BANDWIDTH&amp;lt;/code&amp;gt;). However, quality is in no way guaranteed -- it&#039;s just possible.&lt;br /&gt;
&lt;br /&gt;
===Music encoding quality===&lt;br /&gt;
This table assumes a &#039;&#039;&#039;stereophonic&#039;&#039;&#039; source sampled at CD quality or above (typ 48&amp;amp;nbsp;kHz sampling rate). Opus will automatically use mono at very low bitrates, though a certain amount of stereo encoding can still be used (content dependent) even when mono is specified as the typical stereo mode in the table below.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Bitrate target&lt;br /&gt;
!Stereo mode&lt;br /&gt;
!Bandwidth&lt;br /&gt;
!typ SILK/CELT use&lt;br /&gt;
!Music quality notes&lt;br /&gt;
!Use cases/notes/competitive codecs&lt;br /&gt;
|-&lt;br /&gt;
!4 kbps&lt;br /&gt;
|mono&lt;br /&gt;
|6 kHz&lt;br /&gt;
|SILK&lt;br /&gt;
|Poor, muffled sound but intelligible lyrics.&lt;br /&gt;
| &amp;amp;mdash;&lt;br /&gt;
|-&lt;br /&gt;
!9 kbps&lt;br /&gt;
|mono&lt;br /&gt;
|8 kHz&lt;br /&gt;
|SILK&lt;br /&gt;
|Poor, muffled but OK for bitrate&lt;br /&gt;
| &amp;amp;mdash;&lt;br /&gt;
|-&lt;br /&gt;
!14 to 16 kbps&lt;br /&gt;
|mono&lt;br /&gt;
|20 kHz&lt;br /&gt;
|hybrid/CELT&lt;br /&gt;
|Fairly poor but OK for bitrate&lt;br /&gt;
|Perhaps acceptable for incidental music&lt;br /&gt;
|-&lt;br /&gt;
!22 to 24 kbps&lt;br /&gt;
|mono&lt;br /&gt;
|20 kHz&lt;br /&gt;
|hybrid/CELT&lt;br /&gt;
|Fair but OK for bitrate&lt;br /&gt;
|OK for incidental music&lt;br /&gt;
|-&lt;br /&gt;
!32 to 40 kbps&lt;br /&gt;
|stereo&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Moderately good stereo, some artifacts, rarely nasty&lt;br /&gt;
|Stereo podcasts, audiobooks, very low bitrate music&lt;br /&gt;
|-&lt;br /&gt;
!48 kbps&lt;br /&gt;
|stereo&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Full bandwidth stereo music, nice sound, may have problems with cymbals&lt;br /&gt;
|Stereo podcasts, audiobooks, low bitrate music&lt;br /&gt;
|-&lt;br /&gt;
!64 kbps&lt;br /&gt;
|stereo&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Full bandwidth stereo music, nice sound, detectable differences to original (mostly &#039;not annoying&#039;)&lt;br /&gt;
|Music storage &amp;amp; streaming. Beat HE-AAC, Vorbis, MP3 in [https://web.archive.org/web/20200130083553/http://people.xiph.org/~greg/opus/ha2011/ listening test]&lt;br /&gt;
|-&lt;br /&gt;
!96 kbps&lt;br /&gt;
|stereo&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Full bandwidth stereo music, good quality approaching transparency&lt;br /&gt;
|Music storage &amp;amp; high quality streaming. Beat LC-AAC, Vorbis, MP3 in [http://listening-test.coresv.net/results.htm listening test]&lt;br /&gt;
|-&lt;br /&gt;
!112 kbps&lt;br /&gt;
|stereo&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Fairly close to transparency (needs more testing)&lt;br /&gt;
|Music storage &amp;amp; high quality streaming. Very low-latency stereo networked music performance/jam sessions at OK quality (see below table)&lt;br /&gt;
|-&lt;br /&gt;
!128 kbps&lt;br /&gt;
|stereo&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Very close to transparency (needs more testing). Most modern codecs competitive (AAC-LC, Vorbis, MP3)&lt;br /&gt;
|Music storage &amp;amp; streaming. Future download music sales.&lt;br /&gt;
|-&lt;br /&gt;
!160 to 192 kbps&lt;br /&gt;
|stereo&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Transparent with very low chance of artifacts (a few killer samples still detectable). Most old &amp;amp; new lossy codecs competitive.&lt;br /&gt;
|Music storage &amp;amp; streaming, dedicated limited-bandwidth audio links (e.g. wireless, [http://en.wikipedia.org/wiki/Bluetooth_profile#Advanced_Audio_Distribution_Profile_.28A2DP.29 A2DP-bluetooth] type links). &lt;br /&gt;
|-&lt;br /&gt;
!510 kbps&lt;br /&gt;
|stereo&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Maximum possible stereo bitrate target (actual rate often less than 510 for default frame size). Most old and new lossy codecs competitive, plus near-lossless [[lossyWAV]] and [[WavPack | WavPack lossy]]&lt;br /&gt;
|Music storage, dedicated limited-bitrate audio links (e.g. wireless, minimum latency high quality audio. LossyWAV and WavPack lossy are very competitive for storage, and WavPack lossy &amp;lt;code&amp;gt;--blocksize=256&amp;lt;/code&amp;gt; may be competitive with minimum latency mode also.&lt;br /&gt;
|-&lt;br /&gt;
!&amp;gt;510 kbps&lt;br /&gt;
| &amp;amp;mdash;&lt;br /&gt;
| &amp;amp;mdash;&lt;br /&gt;
| &amp;amp;mdash;&lt;br /&gt;
|Above Opus bitrate range allowed for stereo sources&lt;br /&gt;
|Settle for 510&amp;amp;nbsp;kbps or use [[lossless]], [[lossyWAV]], [[WavPack | WavPack lossy]] or lossy transform/subband codecs like [[Vorbis]], [[Musepack]] at very high settings.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Lower latency versus quality/bitrate trade-off===&lt;br /&gt;
====Packet overhead in interactive applications====&lt;br /&gt;
For interactive use on the Internet or other packet-based networks, total bandwidth used will be subject to packet overhead. The more packet headers that are transmitted every second, the greater will be the overhead that is required. For this reason, Opus, while defaulting to 20&amp;amp;nbsp;ms frames, supports 60&amp;amp;nbsp;ms frames to reduce overhead when transporting low-bitrate SILK frames at the expense of greater latency, which may still be acceptable for speech, and also supports 10&amp;amp;nbsp;ms SILK frames to reduce latency somewhat at the expense of packet overhead.&lt;br /&gt;
&lt;br /&gt;
In the CELT layer, which tends to operate at higher bitrates than SILK, 20&amp;amp;nbsp;ms frames are the default, but frames of 10&amp;amp;nbsp;ms, 5&amp;amp;nbsp;ms and 2.5&amp;amp;nbsp;ms are also possible, which directly increases the frame overhead by transmitting more packets per second to achieve lower latency. In addition, as we&#039;ll see below it also reduces the quality/bitrate tradeoff of the CELT layer itself.&lt;br /&gt;
&lt;br /&gt;
You probably do not want to use a frame size lower than 10&amp;amp;nbsp;ms in applications containing speech, as doing so turns off SILK. The &amp;quot;lowdelay&amp;quot; application switch (available in FFmpeg and the raw library) turns off SILK to cut out 4&amp;amp;nbsp;ms of synchronization delay, but a frame size of 10&amp;amp;nbsp;ms achieves more delay reduction compared to default without sacrificing SILK.&lt;br /&gt;
&lt;br /&gt;
None of the bitrates mentioned in this article account for the packet overhead.&lt;br /&gt;
&lt;br /&gt;
====CELT layer latency versus quality/bitrate trade-off====&lt;br /&gt;
Unlike the SILK layer, which works on fixed 10&amp;amp;nbsp;ms blocks, 1, 2 or 6 of which can be combined into an Opus frame, the CELT layer is able to modify the encoding block lengths available to enable its use with shorter frames.&lt;br /&gt;
&lt;br /&gt;
When the CELT layer uses 10&amp;amp;nbsp;ms, 5&amp;amp;nbsp;ms and 2.5&amp;amp;nbsp;ms frames instead of the default 20&amp;amp;nbsp;ms, it must use smaller transform block sizes to achieve this, thereby reducing frequency resolution in the MDCT compared to the default transform window, thus reducing encoding efficiency for tonal signals. To obtain the same frequency precision for a sound divided into shorter transform windows, improved amplitude precision is necessary, resulting in increased bitrate to obtain the same perceptual quality (or conversely lower quality at the same bitrate).&lt;br /&gt;
&lt;br /&gt;
These reduced-latency modes remain efficient for transient signals, which use short blocks anyway.&lt;br /&gt;
&lt;br /&gt;
In all modes, the algorithmic delay consists of the frame size plus an additional 2.5&amp;amp;nbsp;ms delay. The CELT layer requires 2.5&amp;amp;nbsp;ms for MDCT window overlap.&lt;br /&gt;
&lt;br /&gt;
Xiph.org used matched [[PEAQ]] scores (approximate perceptual quality assessment made in software) for the CELT0.10 codec that was used as the basis of the CELT layer in the Opus reference release, which indicate the following [http://people.xiph.org/~xiphmont/demo/celt/demo.html#demo approximate equivalent settings] for stereo music.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Frame size&lt;br /&gt;
!Algorithmic delay&lt;br /&gt;
!Bitrate to match 64kbps@22.5ms delay&lt;br /&gt;
!fractional bitrate increase&lt;br /&gt;
|-&lt;br /&gt;
!20 ms&lt;br /&gt;
|22.5 ms&lt;br /&gt;
|64.0 kbps&lt;br /&gt;
| +0.0 %&lt;br /&gt;
|-&lt;br /&gt;
!10 ms&lt;br /&gt;
|12.5 ms&lt;br /&gt;
|70.4 kbps&lt;br /&gt;
| +10.0 %&lt;br /&gt;
|-&lt;br /&gt;
!5 ms&lt;br /&gt;
|7.5 ms&lt;br /&gt;
|84.8 kbps&lt;br /&gt;
| +32.5 %&lt;br /&gt;
|-&lt;br /&gt;
!2.5 ms&lt;br /&gt;
|5.0 ms&lt;br /&gt;
|112.0 kbps&lt;br /&gt;
| +75.0 %&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
N.B. This table is useful for interactive streaming only. For music storage &amp;amp; delayed playback or non-interactive streaming, latency reduction is not important and the default 20&amp;amp;nbsp;ms frame size is preferable.&lt;br /&gt;
&lt;br /&gt;
==== &amp;quot;Equivalent bitrate&amp;quot; ====&lt;br /&gt;
Opus code includes a [https://github.com/xiph/opus/blob/9fc8fc4cf432640f284113ba502ee027268b0d9f/src/opus_encoder.c#L806 {{code|compute_equiv_rate()}}] function. Given the bitrate, framesize, cbr decision, and complexity setting, it converts the bitrate to an standard config (VBR, 20 ms frame, complexity 10) equivalent to be used for bandwidth, layer, and stereo decisions. The interesting bits are:&lt;br /&gt;
&lt;br /&gt;
* CBR requires 8% more bitrate for the same quality.&lt;br /&gt;
* Frame overhead is fixed and modelled as &amp;lt;code&amp;gt;(40*channels+20)*(frame_rate - 50)&amp;lt;/code&amp;gt; for any frame_rate larger than 50. (frame_rate is the number of frames per second, so &amp;lt;code&amp;gt;1000/frame_size_ms&amp;lt;/code&amp;gt;). There&#039;s no modelling for reduction in overhead from larger-than-standard frames: you&#039;d imagine the expression runs in the opposite direction as well.&lt;br /&gt;
* Complexity turning results in up to 30% more bitrate requirement.&lt;br /&gt;
&lt;br /&gt;
This layer of conversion is why Opus runs wideband speech at 9 kbps VBR and CVBR, but with CBR it takes 10 kbps (now we know it&#039;s exactly 9.75 kbps) to use WB.&lt;br /&gt;
&lt;br /&gt;
=== Channel count vs bitrate ===&lt;br /&gt;
&lt;br /&gt;
For surround sound bitrates, use [[Bitrate#Equivalent bitrate estimates for multichannel audio]].&lt;br /&gt;
&lt;br /&gt;
For ambisonics, see [https://www.mdpi.com/2076-3417/10/9/3188 AMBIQUAL listening test], paper figures 11 and 12.&lt;br /&gt;
&lt;br /&gt;
== Implementations ==&lt;br /&gt;
&lt;br /&gt;
The format and algorithms are openly documented and the reference implementation is published as free software. The reference implementation (Opus Audio Tools, opus-tools), consisting of separate encoders and decoders, is published under the terms of a BSD-like license. It is written in C programming language and can be compiled for hardware architectures with or without floating point unit. The accompanying diagnostic tool opusinfo reports detailed technical information about Opus files, including information on the standard compliance of the bitstream format. It is based on ogginfo from the vorbis-tools and therefore, unlike the encoder and decoder, available under the terms of version 2 of the GPL.&lt;br /&gt;
&lt;br /&gt;
=== Reference implementation (libopus + binaries) ===&lt;br /&gt;
The commandline tools of the reference version are available pre-compiled for the most popular operating systems at [http://opus-codec.org/downloads opus-codec.org] and [https://ftp.mozilla.org/pub/mozilla.org/opus/ Mozilla&#039;s ftp server], plus in the foobar2000 free encoders pack and some alternative compiles through the hydrogenaud.io opus forum. The libopus commandline tools include encoder &amp;lt;code&amp;gt;opusenc&amp;lt;/code&amp;gt;, decoder &amp;lt;code&amp;gt;opusdec&amp;lt;/code&amp;gt;, and with a different license, the &amp;lt;code&amp;gt;opusinfo&amp;lt;/code&amp;gt; opus stream &amp;amp; metadata analyzer.&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;latest stable release&#039;&#039;&#039; is recommended for general use and as of mid 2014 is considered competitive with or superior to the best alternative speech or general music encoders at most supported bitrates.&lt;br /&gt;
&lt;br /&gt;
==== libopus v1.0 ====&lt;br /&gt;
Released 11 Sep 2012 when RFC6716 was standardized but mostly fully developed by late 2011.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Stable, well-tuned&#039;&#039;&#039; &amp;lt;code&amp;gt;opusenc&amp;lt;/code&amp;gt; reference encoder as included in RFC documentation.&lt;br /&gt;
&lt;br /&gt;
CELT layer closely related to CELT 0.10 implements Constrained VBR mode by default (bitrate boost used mainly for transients), plus true CBR.&lt;br /&gt;
&lt;br /&gt;
==== libopus v1.1 ==== &lt;br /&gt;
&lt;br /&gt;
The alpha source code released 21 Dec 2012 for testing &amp;amp; user feedback and following a beta release and testing, the stable 1.1 version was released on 5 December 2013, considered well tested enough for general release.&amp;lt;ref&amp;gt;https://people.xiph.org/~xiphmont/demo/opus/demo3.shtml&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
CELT layer [http://jmspeex.livejournal.com/11737.html quality improvements] introduced to provide &#039;&#039;&#039;unconstrained VBR&#039;&#039;&#039; include a rate boost not just for transients but now for highly tonal signals too and rate reduction when stereo image is narrow. There&#039;s also a rewrite of its &#039;&#039;&#039;transient detection&#039;&#039;&#039; code and &#039;&#039;&#039;time-frequency analysis&#039;&#039;&#039; code, and rewritten &#039;&#039;&#039;dynamic allocation&#039;&#039;&#039; code (HF/LF tilt and Band Boost) to allow more aggressive changes from the typical static allocation when warranted.&lt;br /&gt;
&lt;br /&gt;
There are many minor improvements to &#039;&#039;&#039;speech quality&#039;&#039;&#039; in both SILK and CELT layers.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;DC-rejection&#039;&#039;&#039; below 3 Hz also aids quality if inaudible DC offset is present with no effect on deep bass notes.&lt;br /&gt;
*&#039;&#039;&#039;Automatic speech/music detection&#039;&#039;&#039; is introduced to optimize encoding mode choices, especially near the bitrate target range (presumably around 24–40&amp;amp;nbsp;kbps) where the encoder may perform best with SILK, hybrid or CELT depending on content type. Below that range SILK performs best for both music &amp;amp; speech, and above it CELT performs best for speech &amp;amp; music. The detection, without look-ahead is not perfect but usually is undecided in audio where either mode will work well.&lt;br /&gt;
*&#039;&#039;&#039;Automatic bandwidth detection&#039;&#039;&#039; is also introduced to save wasted bits allocated to absent frequencies.&lt;br /&gt;
*&#039;&#039;&#039;Surround sound improvements&#039;&#039;&#039; were introduced since the beta release with considerable advances in coding efficiency, bitrate allocation and quality.&lt;br /&gt;
&lt;br /&gt;
A new &#039;&#039;&#039;temporal VBR&#039;&#039;&#039; feature is added. For reasons not explained by classic psychoacoustics, it appears that giving more bits to loud frames (stealing from quiet frames) makes the result substantially better on listening tests. This feature is not tunable: it always affects VBR calculation at low bitrates, gradually becoming weaker at higher bitrates, until it turns off completely at 68&amp;amp;nbsp;kbps.&lt;br /&gt;
&lt;br /&gt;
==== libopus v1.1.3 ==== &lt;br /&gt;
Released July 15th, 2016. This version contains:&lt;br /&gt;
&lt;br /&gt;
*Neon optimizations improving performance on ARMv7 and ARMv8 by up to 15%&lt;br /&gt;
*Fixes some issues with 16-bit platforms (e.g. TI C55x)&lt;br /&gt;
*Fixes to comfort noise generation (CNG)&lt;br /&gt;
*Documenting that PLC packets can also be 2 bytes&lt;br /&gt;
*Includes experimental ambisonics work (&amp;lt;code&amp;gt;--enable-ambisonics&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
==== libopus v1.2.1 ==== &lt;br /&gt;
Released June 26th, 2017. This version contains:&lt;br /&gt;
&lt;br /&gt;
*Speech quality improvements especially in the 12–20&amp;amp;nbsp;kbit/s range&lt;br /&gt;
*Improved VBR encoding for hybrid mode&lt;br /&gt;
*More aggressive use of wider speech bandwidth, including fullband speech starting at 14&amp;amp;nbsp;kbit/s&lt;br /&gt;
*Music quality improvements in the 32–48&amp;amp;nbsp;kbit/s range&lt;br /&gt;
*Generic and SSE CELT optimizations&lt;br /&gt;
*Support for directly encoding packets up to 120&amp;amp;nbsp;ms&lt;br /&gt;
*DTX support for CELT mode&lt;br /&gt;
*SILK CBR improvements&lt;br /&gt;
*Support for all of the fixes in draft-ietf-codec-opus-update-06 (the mono downmix and the folding fixes need &amp;lt;code&amp;gt;--enable-update-draft&amp;lt;/code&amp;gt;)&lt;br /&gt;
*Many bug fixes, including integer wrap-arounds discovered through fuzzing (no security implications)&lt;br /&gt;
&lt;br /&gt;
==== libopus v1.3 ====&lt;br /&gt;
Released on October 18th, 2018. This version contains:&lt;br /&gt;
&lt;br /&gt;
* Improvements to voice activity detection (VAD) and speech/music classification using a recurrent neural network (RNN)&lt;br /&gt;
* Support for ambisonics coding using channel mapping families 2 and 3&lt;br /&gt;
* Improvements to stereo speech coding at low bitrate&lt;br /&gt;
* Using wideband encoding down to 9&amp;amp;nbsp;kb/s&lt;br /&gt;
* Making it possible to use SILK down to bitrates around 5&amp;amp;nbsp;kb/s&lt;br /&gt;
* Minor quality improvement on tones&lt;br /&gt;
* Enabling the spec fixes in &amp;lt;nowiki&amp;gt;RFC 8251&amp;lt;/nowiki&amp;gt; by default&lt;br /&gt;
* Security/hardening improvements&lt;br /&gt;
* Fixes to the CELT PLC&lt;br /&gt;
* Bandwidth detection fixes&lt;br /&gt;
&lt;br /&gt;
==== libopus v1.3.1 ====&lt;br /&gt;
Released on April 12th, 2019. This version contains:&lt;br /&gt;
&lt;br /&gt;
* Fixes to x87 builds&lt;br /&gt;
* A new OPUS_GET_IN_DTX query to know if the encoder is in DTX mode (last frame was either a comfort noise frame or not encoded at all)&lt;br /&gt;
* A new (and still experimental) CMake-based build system that is eventually meant to replace the VS2015 build system (the autotools one will stay)&lt;br /&gt;
&lt;br /&gt;
==== libopus v1.4 ====&lt;br /&gt;
Released on April 20th, 2023. This version contains:&lt;br /&gt;
&lt;br /&gt;
* Improved tuning of the Opus in-band FEC (LBRR). See the issue for details&lt;br /&gt;
* Added a OPUS_SET_INBAND_FEC(2) option that turns on FEC, but does not force SILK mode (FEC will be disabled in CELT mode)&lt;br /&gt;
* Improved tuning and various fixes to DTX&lt;br /&gt;
* Added Meson support, improved CMake support In addition to the improvements above, this release includes many minor bug fixes.&lt;br /&gt;
&lt;br /&gt;
=== Other implementations ===&lt;br /&gt;
&lt;br /&gt;
==== Concentus ====&lt;br /&gt;
&lt;br /&gt;
The libopus reference library (fixed-point variant) has successfully been ported to both &#039;&#039;&#039;C#&#039;&#039;&#039; and &#039;&#039;&#039;Java&#039;&#039;&#039;, as part of a project called &#039;&#039;&#039;Concentus&#039;&#039;&#039;. The aim of the project is specifically to target cross-platform applications where native C interop is relatively difficult. The code is available on [https://github.com/lostromb/concentus Github] and distributed via standard package managers.&lt;br /&gt;
&lt;br /&gt;
==== Emscripten ports ====&lt;br /&gt;
&lt;br /&gt;
At least one port of reference opus in Javascript has been made using the automated tool [https://developer.mozilla.org/en-US/docs/Mozilla/Projects/Emscripten emscripten]. See [https://blog.rillke.com/opusenc.js/ here], [https://github.com/kazuki/opus.js-sample here] and [https://github.com/audiocogs/opus.js here].&lt;br /&gt;
&lt;br /&gt;
==== ffmpeg ====&lt;br /&gt;
FFmpeg has a native [https://ffmpeg.org/ffmpeg-codecs.html#opus &amp;quot;opus&amp;quot;] codec. It is of lower quality than the reference libopus and only does CELT coding. However, it is still good for the ecosystem to have a completely independent implementation.&lt;br /&gt;
&lt;br /&gt;
== Hardware &amp;amp; Software Support ==&lt;br /&gt;
&lt;br /&gt;
Much of this section is based heavily on the Jan 12th 2013 version of the &#039;&#039;&#039;Support&#039;&#039;&#039; section of the [http://en.wikipedia.org/wiki/Opus_%28audio_format%29 Wikipedia article], which is more likely to be kept updated and to provide links to further information about the supporting platforms.&lt;br /&gt;
&lt;br /&gt;
=== VoIP software ===&lt;br /&gt;
* The open source virtual PBX Freeswitch supports Opus transcoding.&lt;br /&gt;
* The voice-chat software Mumble supports Opus as its main codec.&lt;br /&gt;
* SIP softphones Phoner and PhonerLite support Opus&lt;br /&gt;
* The SIP and IAX2 client SFLphone is being fitted with Opus support.&lt;br /&gt;
* Integration of Opus into the Skype client is finished, although no version with Opus support has yet been published.&lt;br /&gt;
* TrueConf video conferencing solutions support Opus.&lt;br /&gt;
* Opus support is planned for Jitsi 2.0, together with VP8 video.&lt;br /&gt;
* Empathy may use any format supported in GStreamer, including Opus.&lt;br /&gt;
* Line2 has replaced their current codec with Opus. Their iOS app will be the first to be released with the Opus. The Android app will follow later.&lt;br /&gt;
* CSipSimple supports Opus, Codec2, G.726 and G.722.1 with an additional plug-in.&lt;br /&gt;
* The voice-chat software TeamSpeak 3 supports Opus for voice and music in pre-release server 3.0.7-pre2 and beta client version 3.0.10.&lt;br /&gt;
* The proprietary instant messenger service Discord uses Opus audio for all voice calls and video calls, regardless of platform.&lt;br /&gt;
&lt;br /&gt;
=== Web frameworks and browsers ===&lt;br /&gt;
* Opus support is mandatory for WebRTC implementations.&lt;br /&gt;
* Mozilla supports Opus beginning with version 15 of Firefox and Thunderbird, plus Seamonkey, which uses a shared codebase.&lt;br /&gt;
* Depending on the backend in use, Opera supports inline playback of embedded Opus files. Official support for Opus and WebRTC are on the development roadmap.&lt;br /&gt;
* Chromium and Google Chrome have audio support as of version 33.&lt;br /&gt;
* Apple&#039;s Safari browser now supports Opus as of iOS 11 and macOS 10.13 High Sierra.&lt;br /&gt;
* Maxthon Cloud Browser&lt;br /&gt;
&lt;br /&gt;
=== Streaming audio ===&lt;br /&gt;
* Icecast. (examples: [http://dir.xiph.org/by_format/Opus Stream directory by format Opus], [http://smj.delfa.net/opus_64.m3u 64k]/[http://smj.delfa.net/opus_256.m3u 256k] [http://smj.delfa.net/ Smooth Jazz Opus Stream], [http://www.absoluteradio.co.uk/listen/labs.html Absolute Radio Opus Trial] 7 stations at 24,64,96 kbps, [http://icecast.ofdoom.com:8000/burst-opus.ogg Icecast Of Doom 96k]&lt;br /&gt;
* Krad Radio&lt;br /&gt;
* Liquidsoap&lt;br /&gt;
&lt;br /&gt;
=== Operating systems and desktop multimedia frameworks ===&lt;br /&gt;
* In Debian GNU/Linux the Opus development tools and supporting libraries can be installed from the preconfigured repositories in the next stable version (&amp;quot;wheezy&amp;quot;) that is expected to be released in early 2013.&lt;br /&gt;
* For Microsoft Windows, there are DirectShow filters supporting Opus, including DC-Bass Source Mod and the LAV Filters.&lt;br /&gt;
* In GStreamer the integration of Opus support is complete.&lt;br /&gt;
* FFmpeg supports decoding and encoding Opus via the external library libopus.&lt;br /&gt;
* Android 5.0 and above supports Opus natively if encapsulated in the Ogg container, but .opus filename extension is not recognized by Android, so the use of double filename extension .opus.ogg is recommended as a workaround to allow apps to recognize files as playable audio.&lt;br /&gt;
&lt;br /&gt;
=== Hardware support ===&lt;br /&gt;
* Support in [[Rockbox]] is available. This means hardware support for a series of portable media players (including some products from the iPod series by Apple and Sansa, iriver and Archos devices) and with &amp;quot;Rockbox as an Application&amp;quot; (RaaA) also on Android devices.&lt;br /&gt;
&lt;br /&gt;
=== Player software ===&lt;br /&gt;
&lt;br /&gt;
* Windows/Mac/Linux (Cross-Platform)&lt;br /&gt;
*# [[VLC]] (media player supports Opus as of version 2.0.4&lt;br /&gt;
*# [[Amarok]] 2.8 has transcoding support for Opus codec if ffmpeg is compiled with support for the libopus library &amp;amp; support for playback of Opus encoded files if Amarok is compiled against TagLib (newer than V1.8)&lt;br /&gt;
*# Clementine has Opus support&lt;br /&gt;
*# Audacious player&lt;br /&gt;
*# [[MPD]] as of version 0.18 if compiled against libopus (supports both encoding for http streams and decoding)&lt;br /&gt;
* Windows Exclusive&lt;br /&gt;
*# AIMP supports Opus natively as of version 3.20 build 1125 beta 1&lt;br /&gt;
*# [[foobar2000]] supports Opus natively as of v1.1.14 beta 1&lt;br /&gt;
*# Mpxplay supports Opus (using a decoder DLL) as of v1.60 alpha 2&lt;br /&gt;
*# [[Winamp]] supports Opus using a [http://forums.winamp.com/showthread.php?p=2925154#post2925154 3rd party plug-in]&lt;br /&gt;
*# MPC-HC&lt;br /&gt;
*# Resonic Player/Pro supports Opus natively as of version 0.2.2&lt;br /&gt;
* iOS/Android (Cross-Platform)&lt;br /&gt;
*# Capriccio [https://itunes.apple.com/us/app/capriccio-free-ultimate-music/id434829018?mt=8 iOS]/[https://play.google.com/store/apps/details?id=me.ideariboso.capriccio Android]&lt;br /&gt;
*# foobar2000 [https://itunes.apple.com/us/app/foobar2000/id1072807669?mt=8 iOS]/[https://play.google.com/store/apps/details?id=com.foobar2000.foobar2000&amp;amp;hl=en Android]&lt;br /&gt;
* Android Exclusive&lt;br /&gt;
*# [https://play.google.com/store/apps/details?id=in.krosbits.musicolet Musicolet Music Player]&lt;br /&gt;
*# [http://gonemadmusicplayer.blogspot.com/ GoneMAD Music Player]&lt;br /&gt;
*# [http://neutronmp.com/ Neutron Music Player]&lt;br /&gt;
*# [http://www.videolan.org/vlc/download-android.html VLC Media Player for Android]&lt;br /&gt;
*# [https://play.google.com/store/apps/details?id=ru.recoilme.freeamp FreeMP]&lt;br /&gt;
*# [https://play.google.com/store/apps/details?id=net.mderezynski.youki3 Youki]&lt;br /&gt;
*# [https://play.google.com/store/apps/details?id=com.aimp.player AIMP for Android]&lt;br /&gt;
*# [https://play.google.com/store/apps/details?id=com.acmeandroid.listen Listen Audiobook Player]&lt;br /&gt;
*# [https://play.google.com/store/apps/details?id=com.mxtech.videoplayer.ad MX Player]&lt;br /&gt;
*# [https://play.google.com/store/apps/details?id=org.tomahawk.tomahawk_android Tomahawk Player Beta]&lt;br /&gt;
*# [https://play.google.com/store/apps/details?id=com.maxmpz.audioplayer&amp;amp;hl=en Poweramp Music Player]&lt;br /&gt;
&lt;br /&gt;
=== Other software ===&lt;br /&gt;
* CDBurnerXP&lt;br /&gt;
* MediaCoder&lt;br /&gt;
* Report-IT&lt;br /&gt;
* [[MP3tag|MP3tag]]&lt;br /&gt;
* [https://moisescardona.me/opus-gui/ Opus GUI]&lt;br /&gt;
* [http://www.xdlab.ru/en/ TagScanner]&lt;br /&gt;
* [http://www.xmedia-recode.de/ XMedia Recode]&lt;br /&gt;
* [[loudgain]]&lt;br /&gt;
&lt;br /&gt;
== References &amp;amp; Notes ==&lt;br /&gt;
&lt;br /&gt;
*{{note|homepage|a}}[http://opus-codec.org/ opus-codec.org homepage]&lt;br /&gt;
*{{note|FAQ|b}}[http://wiki.xiph.org/OpusFAQ Opus FAQ]&lt;br /&gt;
*{{note|RFC|c}}[http://tools.ietf.org/html/rfc6716 IETF RFC 6716]&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
[[Category:Codecs]]&lt;br /&gt;
[[Category:Lossy]]&lt;br /&gt;
[[Category:Encoder/Decoder]]&lt;/div&gt;</summary>
		<author><name>Artoria2e5</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=Opus&amp;diff=37301</id>
		<title>Opus</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=Opus&amp;diff=37301"/>
		<updated>2023-08-12T09:08:22Z</updated>

		<summary type="html">&lt;p&gt;Artoria2e5: /* &amp;quot;Equivalent bitrate&amp;quot; */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Software Infobox&lt;br /&gt;
| name = Opus&lt;br /&gt;
| logo = [[Image:opus-logo.png|250px|Official Opus logo]]&lt;br /&gt;
| screenshot =&lt;br /&gt;
| caption = Opus Interactive Audio Codec&lt;br /&gt;
| maintainer = [http://xiph.org/ Xiph.Org Foundation]&lt;br /&gt;
| stable_release = 1.4&lt;br /&gt;
| operating_system = Windows, Mac OS/X, Linux/BSD&lt;br /&gt;
| use = Encoder/Decoder&lt;br /&gt;
| license = 3-clause BSD license&lt;br /&gt;
| website = [http://www.opus-codec.org/ opus-codec.org]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Opus&#039;&#039;&#039; is a [[lossy]] audio compression format developed by the Internet Engineering Task Force (IETF) designed to be suitable for interactive real-time applications over the Internet,{{ref|homepage|a}} including music as well as speech, yet it is also very competitive for use as a storage and playback format, being a [https://web.archive.org/web/20200130083553/http://people.xiph.org/~greg/opus/ha2011/ class leader at around 64 kbps] and [http://listening-test.coresv.net/results.htm also at 96 kbps]. As an open format standardised through [http://tools.ietf.org/html/rfc6716 Request for Comments (RFC) 6716],{{ref|RFC|c}} a high quality reference implementation is provided under the 3-clause BSD license{{ref|homepage|a}} which compiles and runs on the vast majority of general purpose and embedded (fixed point) processors. Many Software patents which cover Opus are licensed under royalty-free terms.{{ref|FAQ|b}}  Opus is also a Mandatory To Implement (MTI) codec for the upcoming WebRTC (Web Real Time Communication) specification of the World Wide Web Consortium (W3C).&lt;br /&gt;
&lt;br /&gt;
Opus incorporates technology from two codecs, the speech-oriented SILK codec developed by Skype and the multi-purpose low-latency CELT codec developed by Xiph.org with significant changes to each to ensure they can work together.{{ref|RFC|c}} Opus can seamlessly transition among high and low bitrates, using a linear prediction codec (the SILK layer) at lower bitrates and a lapped transform codec (the CELT layer) at higher bitrates, as well as a hybrid of the two for a short overlap in which SILK encodes the 0–8&amp;amp;nbsp;kHz spectrum and the CELT layer encodes only the frequencies above 8kHz.{{ref|RFC|c}} Opus has very low algorithmic delay (typ 22.5&amp;amp;nbsp;ms) compared to popular music formats such as [[MP3]], [[Vorbis |Ogg Vorbis]], [[AAC | LC-AAC and HE-AAC]] (all over 100&amp;amp;nbsp;ms), yet performs very competitively with them in terms of quality per bitrate, making it comparably viable as a storage &amp;amp; playback format. Also unlike Vorbis, Opus does not require the definition of large codebooks for each individual file, making it also preferable for short clips of audio, such as those often used by game developers, a field where patent-free Vorbis is commonly used.{{ref|RFC|c}}&lt;br /&gt;
&lt;br /&gt;
Considerably more details of the history and potential applications for Opus are included in the &#039;&#039;Wikipedia&#039;&#039; page for &#039;&#039;&#039;[http://en.wikipedia.org/wiki/Opus_%28audio_format%29 Opus (audio format)]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Characteristics==&lt;br /&gt;
Opus supports bitrates from 6&amp;amp;nbsp;kbps to 510&amp;amp;nbsp;kbps for typical stereo audio sources (and a maximum of around 255 kbps per channel for multichannel audio), with the &#039;sweet spot&#039; for music and general audio around 30&amp;amp;nbsp;kbps (mono) and 40–100&amp;amp;nbsp;kbps (stereo). It is intrinsically [[VBR | variable bitrate]], though constrained VBR and [[CBR | constant bitrate]] modes are possible where required. In the case of the reference release, libopus, the target bitrate is calibrated against the internal constant quality targets so that over a typical music collection, something very close to the target bitrate will be achieved. This bitrate-calibrated approach differs from most VBR encoders (e.g. LAME, helix mp3, qaac, Nero aacenc, Ogg Vorbis, Musepack) where a setting on some &#039;constant quality&#039; scale (which differs between encoders) is used and the bitrate will fall where it may. Improved future versions can be expected to offer improved quality at the same setting. Independent implementations may adopt a different approach.&lt;br /&gt;
&lt;br /&gt;
Opus is able to seamlessly adapt its mode of operation without glitches or sound interruption (an illustrative demonstration of [http://opus-codec.org/examples/#gauge bitrate scalability] is on the Opus Examples page), which can be particularly useful for mixed-content audio or varying network conditions, making the unified Opus codec superior to a suite of different codecs that might otherwise cover the same range of bitrate and quality settings and would require out-of-band signalling to instigate codec switching. The switching includes the choice of mono, stereo and other channel mappings, the use of the speech-oriented SILK layer, the general-purpose CELT layer or the hybrid of both, and the use of different audio bandwidths (4, 6, 8, 12, or 20&amp;amp;nbsp;kHz) as well as the quality adjustments within the same operating mode that are available in most VBR-capable codecs.&lt;br /&gt;
&lt;br /&gt;
Of importance mainly to interactive uses, but potentially useful in time-delayed audio streaming also, Opus includes packet loss concealment (PLC) in all modes and, in the speech-oriented modes where the SILK layer is active it also supports Forward Error Correction (FEC) where the expected rate of packet loss can be indicated to the encoder by the user or by application software and critical frames (e.g. consonant sounds) can be retransmitted at low bitrate to preserve intelligibility.&lt;br /&gt;
&lt;br /&gt;
For music and general audio, the CELT layer of Opus builds on knowledge gained during xiph.org&#039;s Vorbis development and ensures as a primary goal that the total energy in each spectral band is preserved while requiring only a modest bitrate overhead to achieve this, thereby eliminating a lot of bitrate-starvation artifacts such as &#039;birdies&#039; that are common in low-bitrate MP3, especially during transients, applause and cymbal sounds. This technique likewise increases coding efficiency at bitrates targetting transparent music reproduction. Short blocks (2.5&amp;amp;nbsp;ms) are also possible for efficient transient handling. Short blocks can also be used exclusively, if very low algorithmic delay (5.0&amp;amp;nbsp;ms) is required to enable very low-latency interative audio (e.g. live networked music performances such as remote jam sessions), though greater bitrate is then required to maintain the same quality (illustrated in [http://people.xiph.org/~xiphmont/demo/celt/demo.html#demo Monty&#039;s CELT demo page] under Constant PEAQ value, varying latency). CELT uses a number of additional techniques and provides additional advanced tools to enable encoder tuning.&lt;br /&gt;
&lt;br /&gt;
Opus natively supports [[gapless playback]] (though [[Gapless_playback#Poorly_designed_playback_systems | poor player design]] might itself induce interruptions during playback). Playback gain is also required, making some form of [[ReplayGain]] or [[ReplayGain_2.0_specification | similar]] volume control possible in any compliant player.&lt;br /&gt;
&lt;br /&gt;
==Bitrate performance==&lt;br /&gt;
For mono speech, Opus ranges from intelligible narrowband speech reproduction starting at 6&amp;amp;nbsp;kbps to medium-band, wideband and superwideband speech, reaching full-band speech by around 14&amp;amp;nbsp;kbps in encoder version 1.2 (was 21&amp;amp;nbsp;kbps in v1.1, 29&amp;amp;nbsp;kbps in v1.0). Above about 32&amp;amp;nbsp;kbps, the SILK layer is no longer used at all, as CELT alone gives superior quality.&lt;br /&gt;
&lt;br /&gt;
For music, the SILK modes are quite tolerable and better than CELT at very low bitrates. The hybrid mode is adopted as bitrate increases, extending bandwidth first to 12&amp;amp;nbsp;kHz (comparable with compact cassette) then to the full 20&amp;amp;nbsp;kHz and CELT then takes over. Assuming the source is stereo, the transition from mono to stereo typically happens between the transition from 12&amp;amp;nbsp;kHz to 20&amp;amp;nbsp;kHz. Encoder version 1.2 includes great improvements to music encoding in the 32–64&amp;amp;nbsp;kbps range, allowing full-band stereo at 32&amp;amp;nbsp;kbps and providing acceptable quality at 48&amp;amp;nbsp;kbps where artifacts are audible but rarely annoying. Version 1.3 is expected to further improve quality in this range.&lt;br /&gt;
&lt;br /&gt;
Multi-format stereo music listening tests have demonstrated the superiority of Opus at 64&amp;amp;nbsp;kbps and 96&amp;amp;nbsp;kbps compared to the best AAC-LC, HE-AAC and Ogg Vorbis encoders, and at 96&amp;amp;nbsp;kbps also to 128&amp;amp;nbsp;kbps MP3 encoded using LAME &amp;lt;code&amp;gt;-V 5&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Indicative bitrate and quality==&lt;br /&gt;
The tables below give illustrative, indicative quality guidance based on typical modes used internally by Opus and a range of listening tests.&lt;br /&gt;
&lt;br /&gt;
In encoder version 1.1 automatic detection of speech/music and bandwidth detection were introduced to improve mode decisions and VBR is less constrained, all with the aim of maximizing the quality/bitrate tradeoff, and these improvements are further enhanced in version 1.2 and 1.3. These tables are likely to require updates as the encoder is improved, especially in low-bitrate regions.&lt;br /&gt;
&lt;br /&gt;
===Speech encoding quality===&lt;br /&gt;
This table assumes a &#039;&#039;&#039;monophonic&#039;&#039;&#039; source sampled at CD quality or above (typ 48 kHz sampling rate) but mentions stereo compatibility for 40kbps+. The default 20ms frame size (22.5ms latency) is assumed. Note that the selection of &#039;&#039;VOIP&#039;&#039; mode will deliberately modify the sound with a High Pass Filter and emphasis of formants and harmonics to improve intelligibility of speech especially in noisy environments much as telephones do. &#039;&#039;Auto&#039;&#039; mode will not modify the sound prior to encoding so is usually better for high quality speech recordings or mixed speech and music.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Bitrate Target&lt;br /&gt;
!Bandwidth&lt;br /&gt;
!Typical Mode Used&lt;br /&gt;
!Speech Quality&lt;br /&gt;
!Use Cases / Competitive Codecs&lt;br /&gt;
|-&lt;br /&gt;
! Less than 6 kbps&lt;br /&gt;
| &amp;amp;mdash;&lt;br /&gt;
| &amp;amp;mdash;&lt;br /&gt;
| Bitrates lower than 6 kbps not supported by Opus (SILK disabled if forced to encode, which results in terrible speech quality)&lt;br /&gt;
| Try [https://en.wikipedia.org/wiki/Codec_2 Codec 2] for 0.45–3.2&amp;amp;nbsp;kbps mono speech or [[Wikipedia:Lyra (codec)|Lyra]] for 3.2&amp;amp;nbsp;kbps mono speech&lt;br /&gt;
|-&lt;br /&gt;
!6 kbps&lt;br /&gt;
|4 kHz narrow-band&lt;br /&gt;
|SILK&lt;br /&gt;
|Fair, intelligible&lt;br /&gt;
|AMR-NB may be a little better, but higher latency &amp;amp; proprietary, [[Speex]] also competitive&lt;br /&gt;
|-&lt;br /&gt;
!9 kbps VBR/CVBR&amp;lt;br&amp;gt;10 kbps CBR&lt;br /&gt;
|8 kHz wide-band&lt;br /&gt;
|SILK&lt;br /&gt;
|Telephone quality&lt;br /&gt;
|AMR-NB &amp;amp; AMR-WB similar quality, but higher latency &amp;amp; proprietary. [[Speex]] competitive.&lt;br /&gt;
|-&lt;br /&gt;
!12 kbps&lt;br /&gt;
|12 kHz super-wideband&lt;br /&gt;
|hybrid&lt;br /&gt;
|Medium bandwidth, better than telephone quality&lt;br /&gt;
|Similar quality to AMR-WB&lt;br /&gt;
|-&lt;br /&gt;
!16 kbps&lt;br /&gt;
|20 kHz&lt;br /&gt;
|hybrid/CELT&lt;br /&gt;
|Wideband speech quality&lt;br /&gt;
|Similar to/better than AMR-WB&lt;br /&gt;
|-&lt;br /&gt;
!24 kbps&lt;br /&gt;
|20 kHz&lt;br /&gt;
|hybrid/CELT&lt;br /&gt;
|Near transparent speech&lt;br /&gt;
|Better than AMR-WB. Podcasts/audiobooks/talk-radio.&lt;br /&gt;
|-&lt;br /&gt;
!32 kbps&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Essentially transparent speech plus moderately good stereo music&lt;br /&gt;
|Much better than AMR-WB. Podcasts/audiobooks/talk-radio.&lt;br /&gt;
|-&lt;br /&gt;
!40 kbps&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Essentially transparent mono or stereo speech, fairly good stereo music&lt;br /&gt;
|Stereo podcasts/audiobooks/talk radio with some music&lt;br /&gt;
|-&lt;br /&gt;
!48 kbps or more&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Essentially transparent mono or stereo speech, reasonable music&lt;br /&gt;
|Flexible general purpose modes to suit mixed music and speech&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
One major limitation of Opus at low bitrate is that SILK is inherently VBR: it accepts no constraints in CVBR, and if forced to do CBR the quality degrades from bit-shaving. As a result, even though constrained VBR is designed such that a fixed-rate data link requires at most one frame of buffer to handle the variation in bit rate -- great news for communication links -- any use of SILK, even in hybrid mode, has the potential of breaking this intention. This makes Opus suboptimal for low-rate radio links: radio links requires a predictable buffer amount, which is only possible with CBR when SILK is used, but use of CBR in turn hurts SILK. There is a noticeable quality difference at the NB/WB switch at 9 kbps VBR / 10 kbps CBR.&lt;br /&gt;
&lt;br /&gt;
Opus 1.3+ allows forced use of SILK down to 5 kbps VBR (NB) and 6 kbps VBR (WB, requires forcing the C API with &amp;lt;code&amp;gt;OPUS_SET_BANDWIDTH&amp;lt;/code&amp;gt;). However, quality is in no way guaranteed -- it&#039;s just possible.&lt;br /&gt;
&lt;br /&gt;
===Music encoding quality===&lt;br /&gt;
This table assumes a &#039;&#039;&#039;stereophonic&#039;&#039;&#039; source sampled at CD quality or above (typ 48&amp;amp;nbsp;kHz sampling rate). Opus will automatically use mono at very low bitrates, though a certain amount of stereo encoding can still be used (content dependent) even when mono is specified as the typical stereo mode in the table below.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Bitrate target&lt;br /&gt;
!Stereo mode&lt;br /&gt;
!Bandwidth&lt;br /&gt;
!typ SILK/CELT use&lt;br /&gt;
!Music quality notes&lt;br /&gt;
!Use cases/notes/competitive codecs&lt;br /&gt;
|-&lt;br /&gt;
!4 kbps&lt;br /&gt;
|mono&lt;br /&gt;
|6 kHz&lt;br /&gt;
|SILK&lt;br /&gt;
|Poor, muffled sound but intelligible lyrics.&lt;br /&gt;
| &amp;amp;mdash;&lt;br /&gt;
|-&lt;br /&gt;
!9 kbps&lt;br /&gt;
|mono&lt;br /&gt;
|8 kHz&lt;br /&gt;
|SILK&lt;br /&gt;
|Poor, muffled but OK for bitrate&lt;br /&gt;
| &amp;amp;mdash;&lt;br /&gt;
|-&lt;br /&gt;
!14 to 16 kbps&lt;br /&gt;
|mono&lt;br /&gt;
|20 kHz&lt;br /&gt;
|hybrid/CELT&lt;br /&gt;
|Fairly poor but OK for bitrate&lt;br /&gt;
|Perhaps acceptable for incidental music&lt;br /&gt;
|-&lt;br /&gt;
!22 to 24 kbps&lt;br /&gt;
|mono&lt;br /&gt;
|20 kHz&lt;br /&gt;
|hybrid/CELT&lt;br /&gt;
|Fair but OK for bitrate&lt;br /&gt;
|OK for incidental music&lt;br /&gt;
|-&lt;br /&gt;
!32 to 40 kbps&lt;br /&gt;
|stereo&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Moderately good stereo, some artifacts, rarely nasty&lt;br /&gt;
|Stereo podcasts, audiobooks, very low bitrate music&lt;br /&gt;
|-&lt;br /&gt;
!48 kbps&lt;br /&gt;
|stereo&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Full bandwidth stereo music, nice sound, may have problems with cymbals&lt;br /&gt;
|Stereo podcasts, audiobooks, low bitrate music&lt;br /&gt;
|-&lt;br /&gt;
!64 kbps&lt;br /&gt;
|stereo&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Full bandwidth stereo music, nice sound, detectable differences to original (mostly &#039;not annoying&#039;)&lt;br /&gt;
|Music storage &amp;amp; streaming. Beat HE-AAC, Vorbis, MP3 in [https://web.archive.org/web/20200130083553/http://people.xiph.org/~greg/opus/ha2011/ listening test]&lt;br /&gt;
|-&lt;br /&gt;
!96 kbps&lt;br /&gt;
|stereo&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Full bandwidth stereo music, good quality approaching transparency&lt;br /&gt;
|Music storage &amp;amp; high quality streaming. Beat LC-AAC, Vorbis, MP3 in [http://listening-test.coresv.net/results.htm listening test]&lt;br /&gt;
|-&lt;br /&gt;
!112 kbps&lt;br /&gt;
|stereo&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Fairly close to transparency (needs more testing)&lt;br /&gt;
|Music storage &amp;amp; high quality streaming. Very low-latency stereo networked music performance/jam sessions at OK quality (see below table)&lt;br /&gt;
|-&lt;br /&gt;
!128 kbps&lt;br /&gt;
|stereo&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Very close to transparency (needs more testing). Most modern codecs competitive (AAC-LC, Vorbis, MP3)&lt;br /&gt;
|Music storage &amp;amp; streaming. Future download music sales.&lt;br /&gt;
|-&lt;br /&gt;
!160 to 192 kbps&lt;br /&gt;
|stereo&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Transparent with very low chance of artifacts (a few killer samples still detectable). Most old &amp;amp; new lossy codecs competitive.&lt;br /&gt;
|Music storage &amp;amp; streaming, dedicated limited-bandwidth audio links (e.g. wireless, [http://en.wikipedia.org/wiki/Bluetooth_profile#Advanced_Audio_Distribution_Profile_.28A2DP.29 A2DP-bluetooth] type links). &lt;br /&gt;
|-&lt;br /&gt;
!510 kbps&lt;br /&gt;
|stereo&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Maximum possible stereo bitrate target (actual rate often less than 510 for default frame size). Most old and new lossy codecs competitive, plus near-lossless [[lossyWAV]] and [[WavPack | WavPack lossy]]&lt;br /&gt;
|Music storage, dedicated limited-bitrate audio links (e.g. wireless, minimum latency high quality audio. LossyWAV and WavPack lossy are very competitive for storage, and WavPack lossy &amp;lt;code&amp;gt;--blocksize=256&amp;lt;/code&amp;gt; may be competitive with minimum latency mode also.&lt;br /&gt;
|-&lt;br /&gt;
!&amp;gt;510 kbps&lt;br /&gt;
| &amp;amp;mdash;&lt;br /&gt;
| &amp;amp;mdash;&lt;br /&gt;
| &amp;amp;mdash;&lt;br /&gt;
|Above Opus bitrate range allowed for stereo sources&lt;br /&gt;
|Settle for 510&amp;amp;nbsp;kbps or use [[lossless]], [[lossyWAV]], [[WavPack | WavPack lossy]] or lossy transform/subband codecs like [[Vorbis]], [[Musepack]] at very high settings.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Lower latency versus quality/bitrate trade-off===&lt;br /&gt;
====Packet overhead in interactive applications====&lt;br /&gt;
For interactive use on the Internet or other packet-based networks, total bandwidth used will be subject to packet overhead. The more packet headers that are transmitted every second, the greater will be the overhead that is required. For this reason, Opus, while defaulting to 20&amp;amp;nbsp;ms frames, supports 60&amp;amp;nbsp;ms frames to reduce overhead when transporting low-bitrate SILK frames at the expense of greater latency, which may still be acceptable for speech, and also supports 10&amp;amp;nbsp;ms SILK frames to reduce latency somewhat at the expense of packet overhead.&lt;br /&gt;
&lt;br /&gt;
In the CELT layer, which tends to operate at higher bitrates than SILK, 20&amp;amp;nbsp;ms frames are the default, but frames of 10&amp;amp;nbsp;ms, 5&amp;amp;nbsp;ms and 2.5&amp;amp;nbsp;ms are also possible, which directly increases the frame overhead by transmitting more packets per second to achieve lower latency. In addition, as we&#039;ll see below it also reduces the quality/bitrate tradeoff of the CELT layer itself.&lt;br /&gt;
&lt;br /&gt;
You probably do not want to use a frame size lower than 10&amp;amp;nbsp;ms in applications containing speech, as doing so turns off SILK. The &amp;quot;lowdelay&amp;quot; application switch (available in FFmpeg and the raw library) turns off SILK to cut out 4&amp;amp;nbsp;ms of synchronization delay, but a frame size of 10&amp;amp;nbsp;ms achieves more delay reduction compared to default without sacrificing SILK.&lt;br /&gt;
&lt;br /&gt;
None of the bitrates mentioned in this article account for the packet overhead.&lt;br /&gt;
&lt;br /&gt;
====CELT layer latency versus quality/bitrate trade-off====&lt;br /&gt;
Unlike the SILK layer, which works on fixed 10&amp;amp;nbsp;ms blocks, 1, 2 or 6 of which can be combined into an Opus frame, the CELT layer is able to modify the encoding block lengths available to enable its use with shorter frames.&lt;br /&gt;
&lt;br /&gt;
When the CELT layer uses 10&amp;amp;nbsp;ms, 5&amp;amp;nbsp;ms and 2.5&amp;amp;nbsp;ms frames instead of the default 20&amp;amp;nbsp;ms, it must use smaller transform block sizes to achieve this, thereby reducing frequency resolution in the MDCT compared to the default transform window, thus reducing encoding efficiency for tonal signals. To obtain the same frequency precision for a sound divided into shorter transform windows, improved amplitude precision is necessary, resulting in increased bitrate to obtain the same perceptual quality (or conversely lower quality at the same bitrate).&lt;br /&gt;
&lt;br /&gt;
These reduced-latency modes remain efficient for transient signals, which use short blocks anyway.&lt;br /&gt;
&lt;br /&gt;
In all modes, the algorithmic delay consists of the frame size plus an additional 2.5&amp;amp;nbsp;ms delay. The CELT layer requires 2.5&amp;amp;nbsp;ms for MDCT window overlap.&lt;br /&gt;
&lt;br /&gt;
Xiph.org used matched [[PEAQ]] scores (approximate perceptual quality assessment made in software) for the CELT0.10 codec that was used as the basis of the CELT layer in the Opus reference release, which indicate the following [http://people.xiph.org/~xiphmont/demo/celt/demo.html#demo approximate equivalent settings] for stereo music.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Frame size&lt;br /&gt;
!Algorithmic delay&lt;br /&gt;
!Bitrate to match 64kbps@22.5ms delay&lt;br /&gt;
!fractional bitrate increase&lt;br /&gt;
|-&lt;br /&gt;
!20 ms&lt;br /&gt;
|22.5 ms&lt;br /&gt;
|64.0 kbps&lt;br /&gt;
| +0.0 %&lt;br /&gt;
|-&lt;br /&gt;
!10 ms&lt;br /&gt;
|12.5 ms&lt;br /&gt;
|70.4 kbps&lt;br /&gt;
| +10.0 %&lt;br /&gt;
|-&lt;br /&gt;
!5 ms&lt;br /&gt;
|7.5 ms&lt;br /&gt;
|84.8 kbps&lt;br /&gt;
| +32.5 %&lt;br /&gt;
|-&lt;br /&gt;
!2.5 ms&lt;br /&gt;
|5.0 ms&lt;br /&gt;
|112.0 kbps&lt;br /&gt;
| +75.0 %&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
N.B. This table is useful for interactive streaming only. For music storage &amp;amp; delayed playback or non-interactive streaming, latency reduction is not important and the default 20&amp;amp;nbsp;ms frame size is preferable.&lt;br /&gt;
&lt;br /&gt;
==== &amp;quot;Equivalent bitrate&amp;quot; ====&lt;br /&gt;
Opus code includes a [https://github.com/xiph/opus/blob/9fc8fc4cf432640f284113ba502ee027268b0d9f/src/opus_encoder.c#L806 {{code|compute_equiv_rate()}}] function. Given the bitrate, framesize, cbr decision, and complexity setting, it converts the bitrate to an standard config (VBR, 20 ms frame, complexity 10) equivalent to be used for bandwidth, layer, and stereo decisions. The interesting bits are:&lt;br /&gt;
&lt;br /&gt;
* CBR requires 8% more bitrate for the same quality.&lt;br /&gt;
* Frame overhead is fixed and modelled as &amp;lt;code&amp;gt;(40*channels+20)*(frame_rate - 50);&amp;lt;/code&amp;gt; for any frame_rate larger than 50. (frame_rate is the number of frames per second, so &amp;lt;code&amp;gt;1000/frame_size_ms&amp;lt;/code&amp;gt;). There&#039;s no modelling for larger-than-standard frames.&lt;br /&gt;
* Complexity turning results in up to 30% more bitrate requirement.&lt;br /&gt;
&lt;br /&gt;
This layer of conversion is why Opus runs wideband speech at 9 kbps VBR and CVBR, but with CBR it takes 10 kbps (now we know it&#039;s exactly 9.75 kbps) to use WB.&lt;br /&gt;
&lt;br /&gt;
=== Channel count vs bitrate ===&lt;br /&gt;
&lt;br /&gt;
For surround sound bitrates, use [[Bitrate#Equivalent bitrate estimates for multichannel audio]].&lt;br /&gt;
&lt;br /&gt;
For ambisonics, see [https://www.mdpi.com/2076-3417/10/9/3188 AMBIQUAL listening test], paper figures 11 and 12.&lt;br /&gt;
&lt;br /&gt;
== Implementations ==&lt;br /&gt;
&lt;br /&gt;
The format and algorithms are openly documented and the reference implementation is published as free software. The reference implementation (Opus Audio Tools, opus-tools), consisting of separate encoders and decoders, is published under the terms of a BSD-like license. It is written in C programming language and can be compiled for hardware architectures with or without floating point unit. The accompanying diagnostic tool opusinfo reports detailed technical information about Opus files, including information on the standard compliance of the bitstream format. It is based on ogginfo from the vorbis-tools and therefore, unlike the encoder and decoder, available under the terms of version 2 of the GPL.&lt;br /&gt;
&lt;br /&gt;
=== Reference implementation (libopus + binaries) ===&lt;br /&gt;
The commandline tools of the reference version are available pre-compiled for the most popular operating systems at [http://opus-codec.org/downloads opus-codec.org] and [https://ftp.mozilla.org/pub/mozilla.org/opus/ Mozilla&#039;s ftp server], plus in the foobar2000 free encoders pack and some alternative compiles through the hydrogenaud.io opus forum. The libopus commandline tools include encoder &amp;lt;code&amp;gt;opusenc&amp;lt;/code&amp;gt;, decoder &amp;lt;code&amp;gt;opusdec&amp;lt;/code&amp;gt;, and with a different license, the &amp;lt;code&amp;gt;opusinfo&amp;lt;/code&amp;gt; opus stream &amp;amp; metadata analyzer.&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;latest stable release&#039;&#039;&#039; is recommended for general use and as of mid 2014 is considered competitive with or superior to the best alternative speech or general music encoders at most supported bitrates.&lt;br /&gt;
&lt;br /&gt;
==== libopus v1.0 ====&lt;br /&gt;
Released 11 Sep 2012 when RFC6716 was standardized but mostly fully developed by late 2011.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Stable, well-tuned&#039;&#039;&#039; &amp;lt;code&amp;gt;opusenc&amp;lt;/code&amp;gt; reference encoder as included in RFC documentation.&lt;br /&gt;
&lt;br /&gt;
CELT layer closely related to CELT 0.10 implements Constrained VBR mode by default (bitrate boost used mainly for transients), plus true CBR.&lt;br /&gt;
&lt;br /&gt;
==== libopus v1.1 ==== &lt;br /&gt;
&lt;br /&gt;
The alpha source code released 21 Dec 2012 for testing &amp;amp; user feedback and following a beta release and testing, the stable 1.1 version was released on 5 December 2013, considered well tested enough for general release.&amp;lt;ref&amp;gt;https://people.xiph.org/~xiphmont/demo/opus/demo3.shtml&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
CELT layer [http://jmspeex.livejournal.com/11737.html quality improvements] introduced to provide &#039;&#039;&#039;unconstrained VBR&#039;&#039;&#039; include a rate boost not just for transients but now for highly tonal signals too and rate reduction when stereo image is narrow. There&#039;s also a rewrite of its &#039;&#039;&#039;transient detection&#039;&#039;&#039; code and &#039;&#039;&#039;time-frequency analysis&#039;&#039;&#039; code, and rewritten &#039;&#039;&#039;dynamic allocation&#039;&#039;&#039; code (HF/LF tilt and Band Boost) to allow more aggressive changes from the typical static allocation when warranted.&lt;br /&gt;
&lt;br /&gt;
There are many minor improvements to &#039;&#039;&#039;speech quality&#039;&#039;&#039; in both SILK and CELT layers.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;DC-rejection&#039;&#039;&#039; below 3 Hz also aids quality if inaudible DC offset is present with no effect on deep bass notes.&lt;br /&gt;
*&#039;&#039;&#039;Automatic speech/music detection&#039;&#039;&#039; is introduced to optimize encoding mode choices, especially near the bitrate target range (presumably around 24–40&amp;amp;nbsp;kbps) where the encoder may perform best with SILK, hybrid or CELT depending on content type. Below that range SILK performs best for both music &amp;amp; speech, and above it CELT performs best for speech &amp;amp; music. The detection, without look-ahead is not perfect but usually is undecided in audio where either mode will work well.&lt;br /&gt;
*&#039;&#039;&#039;Automatic bandwidth detection&#039;&#039;&#039; is also introduced to save wasted bits allocated to absent frequencies.&lt;br /&gt;
*&#039;&#039;&#039;Surround sound improvements&#039;&#039;&#039; were introduced since the beta release with considerable advances in coding efficiency, bitrate allocation and quality.&lt;br /&gt;
&lt;br /&gt;
A new &#039;&#039;&#039;temporal VBR&#039;&#039;&#039; feature is added. For reasons not explained by classic psychoacoustics, it appears that giving more bits to loud frames (stealing from quiet frames) makes the result substantially better on listening tests. This feature is not tunable: it always affects VBR calculation at low bitrates, gradually becoming weaker at higher bitrates, until it turns off completely at 68&amp;amp;nbsp;kbps.&lt;br /&gt;
&lt;br /&gt;
==== libopus v1.1.3 ==== &lt;br /&gt;
Released July 15th, 2016. This version contains:&lt;br /&gt;
&lt;br /&gt;
*Neon optimizations improving performance on ARMv7 and ARMv8 by up to 15%&lt;br /&gt;
*Fixes some issues with 16-bit platforms (e.g. TI C55x)&lt;br /&gt;
*Fixes to comfort noise generation (CNG)&lt;br /&gt;
*Documenting that PLC packets can also be 2 bytes&lt;br /&gt;
*Includes experimental ambisonics work (&amp;lt;code&amp;gt;--enable-ambisonics&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
==== libopus v1.2.1 ==== &lt;br /&gt;
Released June 26th, 2017. This version contains:&lt;br /&gt;
&lt;br /&gt;
*Speech quality improvements especially in the 12–20&amp;amp;nbsp;kbit/s range&lt;br /&gt;
*Improved VBR encoding for hybrid mode&lt;br /&gt;
*More aggressive use of wider speech bandwidth, including fullband speech starting at 14&amp;amp;nbsp;kbit/s&lt;br /&gt;
*Music quality improvements in the 32–48&amp;amp;nbsp;kbit/s range&lt;br /&gt;
*Generic and SSE CELT optimizations&lt;br /&gt;
*Support for directly encoding packets up to 120&amp;amp;nbsp;ms&lt;br /&gt;
*DTX support for CELT mode&lt;br /&gt;
*SILK CBR improvements&lt;br /&gt;
*Support for all of the fixes in draft-ietf-codec-opus-update-06 (the mono downmix and the folding fixes need &amp;lt;code&amp;gt;--enable-update-draft&amp;lt;/code&amp;gt;)&lt;br /&gt;
*Many bug fixes, including integer wrap-arounds discovered through fuzzing (no security implications)&lt;br /&gt;
&lt;br /&gt;
==== libopus v1.3 ====&lt;br /&gt;
Released on October 18th, 2018. This version contains:&lt;br /&gt;
&lt;br /&gt;
* Improvements to voice activity detection (VAD) and speech/music classification using a recurrent neural network (RNN)&lt;br /&gt;
* Support for ambisonics coding using channel mapping families 2 and 3&lt;br /&gt;
* Improvements to stereo speech coding at low bitrate&lt;br /&gt;
* Using wideband encoding down to 9&amp;amp;nbsp;kb/s&lt;br /&gt;
* Making it possible to use SILK down to bitrates around 5&amp;amp;nbsp;kb/s&lt;br /&gt;
* Minor quality improvement on tones&lt;br /&gt;
* Enabling the spec fixes in &amp;lt;nowiki&amp;gt;RFC 8251&amp;lt;/nowiki&amp;gt; by default&lt;br /&gt;
* Security/hardening improvements&lt;br /&gt;
* Fixes to the CELT PLC&lt;br /&gt;
* Bandwidth detection fixes&lt;br /&gt;
&lt;br /&gt;
==== libopus v1.3.1 ====&lt;br /&gt;
Released on April 12th, 2019. This version contains:&lt;br /&gt;
&lt;br /&gt;
* Fixes to x87 builds&lt;br /&gt;
* A new OPUS_GET_IN_DTX query to know if the encoder is in DTX mode (last frame was either a comfort noise frame or not encoded at all)&lt;br /&gt;
* A new (and still experimental) CMake-based build system that is eventually meant to replace the VS2015 build system (the autotools one will stay)&lt;br /&gt;
&lt;br /&gt;
==== libopus v1.4 ====&lt;br /&gt;
Released on April 20th, 2023. This version contains:&lt;br /&gt;
&lt;br /&gt;
* Improved tuning of the Opus in-band FEC (LBRR). See the issue for details&lt;br /&gt;
* Added a OPUS_SET_INBAND_FEC(2) option that turns on FEC, but does not force SILK mode (FEC will be disabled in CELT mode)&lt;br /&gt;
* Improved tuning and various fixes to DTX&lt;br /&gt;
* Added Meson support, improved CMake support In addition to the improvements above, this release includes many minor bug fixes.&lt;br /&gt;
&lt;br /&gt;
=== Other implementations ===&lt;br /&gt;
&lt;br /&gt;
==== Concentus ====&lt;br /&gt;
&lt;br /&gt;
The libopus reference library (fixed-point variant) has successfully been ported to both &#039;&#039;&#039;C#&#039;&#039;&#039; and &#039;&#039;&#039;Java&#039;&#039;&#039;, as part of a project called &#039;&#039;&#039;Concentus&#039;&#039;&#039;. The aim of the project is specifically to target cross-platform applications where native C interop is relatively difficult. The code is available on [https://github.com/lostromb/concentus Github] and distributed via standard package managers.&lt;br /&gt;
&lt;br /&gt;
==== Emscripten ports ====&lt;br /&gt;
&lt;br /&gt;
At least one port of reference opus in Javascript has been made using the automated tool [https://developer.mozilla.org/en-US/docs/Mozilla/Projects/Emscripten emscripten]. See [https://blog.rillke.com/opusenc.js/ here], [https://github.com/kazuki/opus.js-sample here] and [https://github.com/audiocogs/opus.js here].&lt;br /&gt;
&lt;br /&gt;
==== ffmpeg ====&lt;br /&gt;
FFmpeg has a native [https://ffmpeg.org/ffmpeg-codecs.html#opus &amp;quot;opus&amp;quot;] codec. It is of lower quality than the reference libopus and only does CELT coding. However, it is still good for the ecosystem to have a completely independent implementation.&lt;br /&gt;
&lt;br /&gt;
== Hardware &amp;amp; Software Support ==&lt;br /&gt;
&lt;br /&gt;
Much of this section is based heavily on the Jan 12th 2013 version of the &#039;&#039;&#039;Support&#039;&#039;&#039; section of the [http://en.wikipedia.org/wiki/Opus_%28audio_format%29 Wikipedia article], which is more likely to be kept updated and to provide links to further information about the supporting platforms.&lt;br /&gt;
&lt;br /&gt;
=== VoIP software ===&lt;br /&gt;
* The open source virtual PBX Freeswitch supports Opus transcoding.&lt;br /&gt;
* The voice-chat software Mumble supports Opus as its main codec.&lt;br /&gt;
* SIP softphones Phoner and PhonerLite support Opus&lt;br /&gt;
* The SIP and IAX2 client SFLphone is being fitted with Opus support.&lt;br /&gt;
* Integration of Opus into the Skype client is finished, although no version with Opus support has yet been published.&lt;br /&gt;
* TrueConf video conferencing solutions support Opus.&lt;br /&gt;
* Opus support is planned for Jitsi 2.0, together with VP8 video.&lt;br /&gt;
* Empathy may use any format supported in GStreamer, including Opus.&lt;br /&gt;
* Line2 has replaced their current codec with Opus. Their iOS app will be the first to be released with the Opus. The Android app will follow later.&lt;br /&gt;
* CSipSimple supports Opus, Codec2, G.726 and G.722.1 with an additional plug-in.&lt;br /&gt;
* The voice-chat software TeamSpeak 3 supports Opus for voice and music in pre-release server 3.0.7-pre2 and beta client version 3.0.10.&lt;br /&gt;
* The proprietary instant messenger service Discord uses Opus audio for all voice calls and video calls, regardless of platform.&lt;br /&gt;
&lt;br /&gt;
=== Web frameworks and browsers ===&lt;br /&gt;
* Opus support is mandatory for WebRTC implementations.&lt;br /&gt;
* Mozilla supports Opus beginning with version 15 of Firefox and Thunderbird, plus Seamonkey, which uses a shared codebase.&lt;br /&gt;
* Depending on the backend in use, Opera supports inline playback of embedded Opus files. Official support for Opus and WebRTC are on the development roadmap.&lt;br /&gt;
* Chromium and Google Chrome have audio support as of version 33.&lt;br /&gt;
* Apple&#039;s Safari browser now supports Opus as of iOS 11 and macOS 10.13 High Sierra.&lt;br /&gt;
* Maxthon Cloud Browser&lt;br /&gt;
&lt;br /&gt;
=== Streaming audio ===&lt;br /&gt;
* Icecast. (examples: [http://dir.xiph.org/by_format/Opus Stream directory by format Opus], [http://smj.delfa.net/opus_64.m3u 64k]/[http://smj.delfa.net/opus_256.m3u 256k] [http://smj.delfa.net/ Smooth Jazz Opus Stream], [http://www.absoluteradio.co.uk/listen/labs.html Absolute Radio Opus Trial] 7 stations at 24,64,96 kbps, [http://icecast.ofdoom.com:8000/burst-opus.ogg Icecast Of Doom 96k]&lt;br /&gt;
* Krad Radio&lt;br /&gt;
* Liquidsoap&lt;br /&gt;
&lt;br /&gt;
=== Operating systems and desktop multimedia frameworks ===&lt;br /&gt;
* In Debian GNU/Linux the Opus development tools and supporting libraries can be installed from the preconfigured repositories in the next stable version (&amp;quot;wheezy&amp;quot;) that is expected to be released in early 2013.&lt;br /&gt;
* For Microsoft Windows, there are DirectShow filters supporting Opus, including DC-Bass Source Mod and the LAV Filters.&lt;br /&gt;
* In GStreamer the integration of Opus support is complete.&lt;br /&gt;
* FFmpeg supports decoding and encoding Opus via the external library libopus.&lt;br /&gt;
* Android 5.0 and above supports Opus natively if encapsulated in the Ogg container, but .opus filename extension is not recognized by Android, so the use of double filename extension .opus.ogg is recommended as a workaround to allow apps to recognize files as playable audio.&lt;br /&gt;
&lt;br /&gt;
=== Hardware support ===&lt;br /&gt;
* Support in [[Rockbox]] is available. This means hardware support for a series of portable media players (including some products from the iPod series by Apple and Sansa, iriver and Archos devices) and with &amp;quot;Rockbox as an Application&amp;quot; (RaaA) also on Android devices.&lt;br /&gt;
&lt;br /&gt;
=== Player software ===&lt;br /&gt;
&lt;br /&gt;
* Windows/Mac/Linux (Cross-Platform)&lt;br /&gt;
*# [[VLC]] (media player supports Opus as of version 2.0.4&lt;br /&gt;
*# [[Amarok]] 2.8 has transcoding support for Opus codec if ffmpeg is compiled with support for the libopus library &amp;amp; support for playback of Opus encoded files if Amarok is compiled against TagLib (newer than V1.8)&lt;br /&gt;
*# Clementine has Opus support&lt;br /&gt;
*# Audacious player&lt;br /&gt;
*# [[MPD]] as of version 0.18 if compiled against libopus (supports both encoding for http streams and decoding)&lt;br /&gt;
* Windows Exclusive&lt;br /&gt;
*# AIMP supports Opus natively as of version 3.20 build 1125 beta 1&lt;br /&gt;
*# [[foobar2000]] supports Opus natively as of v1.1.14 beta 1&lt;br /&gt;
*# Mpxplay supports Opus (using a decoder DLL) as of v1.60 alpha 2&lt;br /&gt;
*# [[Winamp]] supports Opus using a [http://forums.winamp.com/showthread.php?p=2925154#post2925154 3rd party plug-in]&lt;br /&gt;
*# MPC-HC&lt;br /&gt;
*# Resonic Player/Pro supports Opus natively as of version 0.2.2&lt;br /&gt;
* iOS/Android (Cross-Platform)&lt;br /&gt;
*# Capriccio [https://itunes.apple.com/us/app/capriccio-free-ultimate-music/id434829018?mt=8 iOS]/[https://play.google.com/store/apps/details?id=me.ideariboso.capriccio Android]&lt;br /&gt;
*# foobar2000 [https://itunes.apple.com/us/app/foobar2000/id1072807669?mt=8 iOS]/[https://play.google.com/store/apps/details?id=com.foobar2000.foobar2000&amp;amp;hl=en Android]&lt;br /&gt;
* Android Exclusive&lt;br /&gt;
*# [https://play.google.com/store/apps/details?id=in.krosbits.musicolet Musicolet Music Player]&lt;br /&gt;
*# [http://gonemadmusicplayer.blogspot.com/ GoneMAD Music Player]&lt;br /&gt;
*# [http://neutronmp.com/ Neutron Music Player]&lt;br /&gt;
*# [http://www.videolan.org/vlc/download-android.html VLC Media Player for Android]&lt;br /&gt;
*# [https://play.google.com/store/apps/details?id=ru.recoilme.freeamp FreeMP]&lt;br /&gt;
*# [https://play.google.com/store/apps/details?id=net.mderezynski.youki3 Youki]&lt;br /&gt;
*# [https://play.google.com/store/apps/details?id=com.aimp.player AIMP for Android]&lt;br /&gt;
*# [https://play.google.com/store/apps/details?id=com.acmeandroid.listen Listen Audiobook Player]&lt;br /&gt;
*# [https://play.google.com/store/apps/details?id=com.mxtech.videoplayer.ad MX Player]&lt;br /&gt;
*# [https://play.google.com/store/apps/details?id=org.tomahawk.tomahawk_android Tomahawk Player Beta]&lt;br /&gt;
*# [https://play.google.com/store/apps/details?id=com.maxmpz.audioplayer&amp;amp;hl=en Poweramp Music Player]&lt;br /&gt;
&lt;br /&gt;
=== Other software ===&lt;br /&gt;
* CDBurnerXP&lt;br /&gt;
* MediaCoder&lt;br /&gt;
* Report-IT&lt;br /&gt;
* [[MP3tag|MP3tag]]&lt;br /&gt;
* [https://moisescardona.me/opus-gui/ Opus GUI]&lt;br /&gt;
* [http://www.xdlab.ru/en/ TagScanner]&lt;br /&gt;
* [http://www.xmedia-recode.de/ XMedia Recode]&lt;br /&gt;
* [[loudgain]]&lt;br /&gt;
&lt;br /&gt;
== References &amp;amp; Notes ==&lt;br /&gt;
&lt;br /&gt;
*{{note|homepage|a}}[http://opus-codec.org/ opus-codec.org homepage]&lt;br /&gt;
*{{note|FAQ|b}}[http://wiki.xiph.org/OpusFAQ Opus FAQ]&lt;br /&gt;
*{{note|RFC|c}}[http://tools.ietf.org/html/rfc6716 IETF RFC 6716]&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
[[Category:Codecs]]&lt;br /&gt;
[[Category:Lossy]]&lt;br /&gt;
[[Category:Encoder/Decoder]]&lt;/div&gt;</summary>
		<author><name>Artoria2e5</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=Opus&amp;diff=37300</id>
		<title>Opus</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=Opus&amp;diff=37300"/>
		<updated>2023-08-12T09:07:54Z</updated>

		<summary type="html">&lt;p&gt;Artoria2e5: /* Lower latency versus quality/bitrate trade-off */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Software Infobox&lt;br /&gt;
| name = Opus&lt;br /&gt;
| logo = [[Image:opus-logo.png|250px|Official Opus logo]]&lt;br /&gt;
| screenshot =&lt;br /&gt;
| caption = Opus Interactive Audio Codec&lt;br /&gt;
| maintainer = [http://xiph.org/ Xiph.Org Foundation]&lt;br /&gt;
| stable_release = 1.4&lt;br /&gt;
| operating_system = Windows, Mac OS/X, Linux/BSD&lt;br /&gt;
| use = Encoder/Decoder&lt;br /&gt;
| license = 3-clause BSD license&lt;br /&gt;
| website = [http://www.opus-codec.org/ opus-codec.org]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Opus&#039;&#039;&#039; is a [[lossy]] audio compression format developed by the Internet Engineering Task Force (IETF) designed to be suitable for interactive real-time applications over the Internet,{{ref|homepage|a}} including music as well as speech, yet it is also very competitive for use as a storage and playback format, being a [https://web.archive.org/web/20200130083553/http://people.xiph.org/~greg/opus/ha2011/ class leader at around 64 kbps] and [http://listening-test.coresv.net/results.htm also at 96 kbps]. As an open format standardised through [http://tools.ietf.org/html/rfc6716 Request for Comments (RFC) 6716],{{ref|RFC|c}} a high quality reference implementation is provided under the 3-clause BSD license{{ref|homepage|a}} which compiles and runs on the vast majority of general purpose and embedded (fixed point) processors. Many Software patents which cover Opus are licensed under royalty-free terms.{{ref|FAQ|b}}  Opus is also a Mandatory To Implement (MTI) codec for the upcoming WebRTC (Web Real Time Communication) specification of the World Wide Web Consortium (W3C).&lt;br /&gt;
&lt;br /&gt;
Opus incorporates technology from two codecs, the speech-oriented SILK codec developed by Skype and the multi-purpose low-latency CELT codec developed by Xiph.org with significant changes to each to ensure they can work together.{{ref|RFC|c}} Opus can seamlessly transition among high and low bitrates, using a linear prediction codec (the SILK layer) at lower bitrates and a lapped transform codec (the CELT layer) at higher bitrates, as well as a hybrid of the two for a short overlap in which SILK encodes the 0–8&amp;amp;nbsp;kHz spectrum and the CELT layer encodes only the frequencies above 8kHz.{{ref|RFC|c}} Opus has very low algorithmic delay (typ 22.5&amp;amp;nbsp;ms) compared to popular music formats such as [[MP3]], [[Vorbis |Ogg Vorbis]], [[AAC | LC-AAC and HE-AAC]] (all over 100&amp;amp;nbsp;ms), yet performs very competitively with them in terms of quality per bitrate, making it comparably viable as a storage &amp;amp; playback format. Also unlike Vorbis, Opus does not require the definition of large codebooks for each individual file, making it also preferable for short clips of audio, such as those often used by game developers, a field where patent-free Vorbis is commonly used.{{ref|RFC|c}}&lt;br /&gt;
&lt;br /&gt;
Considerably more details of the history and potential applications for Opus are included in the &#039;&#039;Wikipedia&#039;&#039; page for &#039;&#039;&#039;[http://en.wikipedia.org/wiki/Opus_%28audio_format%29 Opus (audio format)]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Characteristics==&lt;br /&gt;
Opus supports bitrates from 6&amp;amp;nbsp;kbps to 510&amp;amp;nbsp;kbps for typical stereo audio sources (and a maximum of around 255 kbps per channel for multichannel audio), with the &#039;sweet spot&#039; for music and general audio around 30&amp;amp;nbsp;kbps (mono) and 40–100&amp;amp;nbsp;kbps (stereo). It is intrinsically [[VBR | variable bitrate]], though constrained VBR and [[CBR | constant bitrate]] modes are possible where required. In the case of the reference release, libopus, the target bitrate is calibrated against the internal constant quality targets so that over a typical music collection, something very close to the target bitrate will be achieved. This bitrate-calibrated approach differs from most VBR encoders (e.g. LAME, helix mp3, qaac, Nero aacenc, Ogg Vorbis, Musepack) where a setting on some &#039;constant quality&#039; scale (which differs between encoders) is used and the bitrate will fall where it may. Improved future versions can be expected to offer improved quality at the same setting. Independent implementations may adopt a different approach.&lt;br /&gt;
&lt;br /&gt;
Opus is able to seamlessly adapt its mode of operation without glitches or sound interruption (an illustrative demonstration of [http://opus-codec.org/examples/#gauge bitrate scalability] is on the Opus Examples page), which can be particularly useful for mixed-content audio or varying network conditions, making the unified Opus codec superior to a suite of different codecs that might otherwise cover the same range of bitrate and quality settings and would require out-of-band signalling to instigate codec switching. The switching includes the choice of mono, stereo and other channel mappings, the use of the speech-oriented SILK layer, the general-purpose CELT layer or the hybrid of both, and the use of different audio bandwidths (4, 6, 8, 12, or 20&amp;amp;nbsp;kHz) as well as the quality adjustments within the same operating mode that are available in most VBR-capable codecs.&lt;br /&gt;
&lt;br /&gt;
Of importance mainly to interactive uses, but potentially useful in time-delayed audio streaming also, Opus includes packet loss concealment (PLC) in all modes and, in the speech-oriented modes where the SILK layer is active it also supports Forward Error Correction (FEC) where the expected rate of packet loss can be indicated to the encoder by the user or by application software and critical frames (e.g. consonant sounds) can be retransmitted at low bitrate to preserve intelligibility.&lt;br /&gt;
&lt;br /&gt;
For music and general audio, the CELT layer of Opus builds on knowledge gained during xiph.org&#039;s Vorbis development and ensures as a primary goal that the total energy in each spectral band is preserved while requiring only a modest bitrate overhead to achieve this, thereby eliminating a lot of bitrate-starvation artifacts such as &#039;birdies&#039; that are common in low-bitrate MP3, especially during transients, applause and cymbal sounds. This technique likewise increases coding efficiency at bitrates targetting transparent music reproduction. Short blocks (2.5&amp;amp;nbsp;ms) are also possible for efficient transient handling. Short blocks can also be used exclusively, if very low algorithmic delay (5.0&amp;amp;nbsp;ms) is required to enable very low-latency interative audio (e.g. live networked music performances such as remote jam sessions), though greater bitrate is then required to maintain the same quality (illustrated in [http://people.xiph.org/~xiphmont/demo/celt/demo.html#demo Monty&#039;s CELT demo page] under Constant PEAQ value, varying latency). CELT uses a number of additional techniques and provides additional advanced tools to enable encoder tuning.&lt;br /&gt;
&lt;br /&gt;
Opus natively supports [[gapless playback]] (though [[Gapless_playback#Poorly_designed_playback_systems | poor player design]] might itself induce interruptions during playback). Playback gain is also required, making some form of [[ReplayGain]] or [[ReplayGain_2.0_specification | similar]] volume control possible in any compliant player.&lt;br /&gt;
&lt;br /&gt;
==Bitrate performance==&lt;br /&gt;
For mono speech, Opus ranges from intelligible narrowband speech reproduction starting at 6&amp;amp;nbsp;kbps to medium-band, wideband and superwideband speech, reaching full-band speech by around 14&amp;amp;nbsp;kbps in encoder version 1.2 (was 21&amp;amp;nbsp;kbps in v1.1, 29&amp;amp;nbsp;kbps in v1.0). Above about 32&amp;amp;nbsp;kbps, the SILK layer is no longer used at all, as CELT alone gives superior quality.&lt;br /&gt;
&lt;br /&gt;
For music, the SILK modes are quite tolerable and better than CELT at very low bitrates. The hybrid mode is adopted as bitrate increases, extending bandwidth first to 12&amp;amp;nbsp;kHz (comparable with compact cassette) then to the full 20&amp;amp;nbsp;kHz and CELT then takes over. Assuming the source is stereo, the transition from mono to stereo typically happens between the transition from 12&amp;amp;nbsp;kHz to 20&amp;amp;nbsp;kHz. Encoder version 1.2 includes great improvements to music encoding in the 32–64&amp;amp;nbsp;kbps range, allowing full-band stereo at 32&amp;amp;nbsp;kbps and providing acceptable quality at 48&amp;amp;nbsp;kbps where artifacts are audible but rarely annoying. Version 1.3 is expected to further improve quality in this range.&lt;br /&gt;
&lt;br /&gt;
Multi-format stereo music listening tests have demonstrated the superiority of Opus at 64&amp;amp;nbsp;kbps and 96&amp;amp;nbsp;kbps compared to the best AAC-LC, HE-AAC and Ogg Vorbis encoders, and at 96&amp;amp;nbsp;kbps also to 128&amp;amp;nbsp;kbps MP3 encoded using LAME &amp;lt;code&amp;gt;-V 5&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Indicative bitrate and quality==&lt;br /&gt;
The tables below give illustrative, indicative quality guidance based on typical modes used internally by Opus and a range of listening tests.&lt;br /&gt;
&lt;br /&gt;
In encoder version 1.1 automatic detection of speech/music and bandwidth detection were introduced to improve mode decisions and VBR is less constrained, all with the aim of maximizing the quality/bitrate tradeoff, and these improvements are further enhanced in version 1.2 and 1.3. These tables are likely to require updates as the encoder is improved, especially in low-bitrate regions.&lt;br /&gt;
&lt;br /&gt;
===Speech encoding quality===&lt;br /&gt;
This table assumes a &#039;&#039;&#039;monophonic&#039;&#039;&#039; source sampled at CD quality or above (typ 48 kHz sampling rate) but mentions stereo compatibility for 40kbps+. The default 20ms frame size (22.5ms latency) is assumed. Note that the selection of &#039;&#039;VOIP&#039;&#039; mode will deliberately modify the sound with a High Pass Filter and emphasis of formants and harmonics to improve intelligibility of speech especially in noisy environments much as telephones do. &#039;&#039;Auto&#039;&#039; mode will not modify the sound prior to encoding so is usually better for high quality speech recordings or mixed speech and music.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Bitrate Target&lt;br /&gt;
!Bandwidth&lt;br /&gt;
!Typical Mode Used&lt;br /&gt;
!Speech Quality&lt;br /&gt;
!Use Cases / Competitive Codecs&lt;br /&gt;
|-&lt;br /&gt;
! Less than 6 kbps&lt;br /&gt;
| &amp;amp;mdash;&lt;br /&gt;
| &amp;amp;mdash;&lt;br /&gt;
| Bitrates lower than 6 kbps not supported by Opus (SILK disabled if forced to encode, which results in terrible speech quality)&lt;br /&gt;
| Try [https://en.wikipedia.org/wiki/Codec_2 Codec 2] for 0.45–3.2&amp;amp;nbsp;kbps mono speech or [[Wikipedia:Lyra (codec)|Lyra]] for 3.2&amp;amp;nbsp;kbps mono speech&lt;br /&gt;
|-&lt;br /&gt;
!6 kbps&lt;br /&gt;
|4 kHz narrow-band&lt;br /&gt;
|SILK&lt;br /&gt;
|Fair, intelligible&lt;br /&gt;
|AMR-NB may be a little better, but higher latency &amp;amp; proprietary, [[Speex]] also competitive&lt;br /&gt;
|-&lt;br /&gt;
!9 kbps VBR/CVBR&amp;lt;br&amp;gt;10 kbps CBR&lt;br /&gt;
|8 kHz wide-band&lt;br /&gt;
|SILK&lt;br /&gt;
|Telephone quality&lt;br /&gt;
|AMR-NB &amp;amp; AMR-WB similar quality, but higher latency &amp;amp; proprietary. [[Speex]] competitive.&lt;br /&gt;
|-&lt;br /&gt;
!12 kbps&lt;br /&gt;
|12 kHz super-wideband&lt;br /&gt;
|hybrid&lt;br /&gt;
|Medium bandwidth, better than telephone quality&lt;br /&gt;
|Similar quality to AMR-WB&lt;br /&gt;
|-&lt;br /&gt;
!16 kbps&lt;br /&gt;
|20 kHz&lt;br /&gt;
|hybrid/CELT&lt;br /&gt;
|Wideband speech quality&lt;br /&gt;
|Similar to/better than AMR-WB&lt;br /&gt;
|-&lt;br /&gt;
!24 kbps&lt;br /&gt;
|20 kHz&lt;br /&gt;
|hybrid/CELT&lt;br /&gt;
|Near transparent speech&lt;br /&gt;
|Better than AMR-WB. Podcasts/audiobooks/talk-radio.&lt;br /&gt;
|-&lt;br /&gt;
!32 kbps&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Essentially transparent speech plus moderately good stereo music&lt;br /&gt;
|Much better than AMR-WB. Podcasts/audiobooks/talk-radio.&lt;br /&gt;
|-&lt;br /&gt;
!40 kbps&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Essentially transparent mono or stereo speech, fairly good stereo music&lt;br /&gt;
|Stereo podcasts/audiobooks/talk radio with some music&lt;br /&gt;
|-&lt;br /&gt;
!48 kbps or more&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Essentially transparent mono or stereo speech, reasonable music&lt;br /&gt;
|Flexible general purpose modes to suit mixed music and speech&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
One major limitation of Opus at low bitrate is that SILK is inherently VBR: it accepts no constraints in CVBR, and if forced to do CBR the quality degrades from bit-shaving. As a result, even though constrained VBR is designed such that a fixed-rate data link requires at most one frame of buffer to handle the variation in bit rate -- great news for communication links -- any use of SILK, even in hybrid mode, has the potential of breaking this intention. This makes Opus suboptimal for low-rate radio links: radio links requires a predictable buffer amount, which is only possible with CBR when SILK is used, but use of CBR in turn hurts SILK. There is a noticeable quality difference at the NB/WB switch at 9 kbps VBR / 10 kbps CBR.&lt;br /&gt;
&lt;br /&gt;
Opus 1.3+ allows forced use of SILK down to 5 kbps VBR (NB) and 6 kbps VBR (WB, requires forcing the C API with &amp;lt;code&amp;gt;OPUS_SET_BANDWIDTH&amp;lt;/code&amp;gt;). However, quality is in no way guaranteed -- it&#039;s just possible.&lt;br /&gt;
&lt;br /&gt;
===Music encoding quality===&lt;br /&gt;
This table assumes a &#039;&#039;&#039;stereophonic&#039;&#039;&#039; source sampled at CD quality or above (typ 48&amp;amp;nbsp;kHz sampling rate). Opus will automatically use mono at very low bitrates, though a certain amount of stereo encoding can still be used (content dependent) even when mono is specified as the typical stereo mode in the table below.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Bitrate target&lt;br /&gt;
!Stereo mode&lt;br /&gt;
!Bandwidth&lt;br /&gt;
!typ SILK/CELT use&lt;br /&gt;
!Music quality notes&lt;br /&gt;
!Use cases/notes/competitive codecs&lt;br /&gt;
|-&lt;br /&gt;
!4 kbps&lt;br /&gt;
|mono&lt;br /&gt;
|6 kHz&lt;br /&gt;
|SILK&lt;br /&gt;
|Poor, muffled sound but intelligible lyrics.&lt;br /&gt;
| &amp;amp;mdash;&lt;br /&gt;
|-&lt;br /&gt;
!9 kbps&lt;br /&gt;
|mono&lt;br /&gt;
|8 kHz&lt;br /&gt;
|SILK&lt;br /&gt;
|Poor, muffled but OK for bitrate&lt;br /&gt;
| &amp;amp;mdash;&lt;br /&gt;
|-&lt;br /&gt;
!14 to 16 kbps&lt;br /&gt;
|mono&lt;br /&gt;
|20 kHz&lt;br /&gt;
|hybrid/CELT&lt;br /&gt;
|Fairly poor but OK for bitrate&lt;br /&gt;
|Perhaps acceptable for incidental music&lt;br /&gt;
|-&lt;br /&gt;
!22 to 24 kbps&lt;br /&gt;
|mono&lt;br /&gt;
|20 kHz&lt;br /&gt;
|hybrid/CELT&lt;br /&gt;
|Fair but OK for bitrate&lt;br /&gt;
|OK for incidental music&lt;br /&gt;
|-&lt;br /&gt;
!32 to 40 kbps&lt;br /&gt;
|stereo&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Moderately good stereo, some artifacts, rarely nasty&lt;br /&gt;
|Stereo podcasts, audiobooks, very low bitrate music&lt;br /&gt;
|-&lt;br /&gt;
!48 kbps&lt;br /&gt;
|stereo&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Full bandwidth stereo music, nice sound, may have problems with cymbals&lt;br /&gt;
|Stereo podcasts, audiobooks, low bitrate music&lt;br /&gt;
|-&lt;br /&gt;
!64 kbps&lt;br /&gt;
|stereo&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Full bandwidth stereo music, nice sound, detectable differences to original (mostly &#039;not annoying&#039;)&lt;br /&gt;
|Music storage &amp;amp; streaming. Beat HE-AAC, Vorbis, MP3 in [https://web.archive.org/web/20200130083553/http://people.xiph.org/~greg/opus/ha2011/ listening test]&lt;br /&gt;
|-&lt;br /&gt;
!96 kbps&lt;br /&gt;
|stereo&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Full bandwidth stereo music, good quality approaching transparency&lt;br /&gt;
|Music storage &amp;amp; high quality streaming. Beat LC-AAC, Vorbis, MP3 in [http://listening-test.coresv.net/results.htm listening test]&lt;br /&gt;
|-&lt;br /&gt;
!112 kbps&lt;br /&gt;
|stereo&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Fairly close to transparency (needs more testing)&lt;br /&gt;
|Music storage &amp;amp; high quality streaming. Very low-latency stereo networked music performance/jam sessions at OK quality (see below table)&lt;br /&gt;
|-&lt;br /&gt;
!128 kbps&lt;br /&gt;
|stereo&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Very close to transparency (needs more testing). Most modern codecs competitive (AAC-LC, Vorbis, MP3)&lt;br /&gt;
|Music storage &amp;amp; streaming. Future download music sales.&lt;br /&gt;
|-&lt;br /&gt;
!160 to 192 kbps&lt;br /&gt;
|stereo&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Transparent with very low chance of artifacts (a few killer samples still detectable). Most old &amp;amp; new lossy codecs competitive.&lt;br /&gt;
|Music storage &amp;amp; streaming, dedicated limited-bandwidth audio links (e.g. wireless, [http://en.wikipedia.org/wiki/Bluetooth_profile#Advanced_Audio_Distribution_Profile_.28A2DP.29 A2DP-bluetooth] type links). &lt;br /&gt;
|-&lt;br /&gt;
!510 kbps&lt;br /&gt;
|stereo&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Maximum possible stereo bitrate target (actual rate often less than 510 for default frame size). Most old and new lossy codecs competitive, plus near-lossless [[lossyWAV]] and [[WavPack | WavPack lossy]]&lt;br /&gt;
|Music storage, dedicated limited-bitrate audio links (e.g. wireless, minimum latency high quality audio. LossyWAV and WavPack lossy are very competitive for storage, and WavPack lossy &amp;lt;code&amp;gt;--blocksize=256&amp;lt;/code&amp;gt; may be competitive with minimum latency mode also.&lt;br /&gt;
|-&lt;br /&gt;
!&amp;gt;510 kbps&lt;br /&gt;
| &amp;amp;mdash;&lt;br /&gt;
| &amp;amp;mdash;&lt;br /&gt;
| &amp;amp;mdash;&lt;br /&gt;
|Above Opus bitrate range allowed for stereo sources&lt;br /&gt;
|Settle for 510&amp;amp;nbsp;kbps or use [[lossless]], [[lossyWAV]], [[WavPack | WavPack lossy]] or lossy transform/subband codecs like [[Vorbis]], [[Musepack]] at very high settings.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Lower latency versus quality/bitrate trade-off===&lt;br /&gt;
====Packet overhead in interactive applications====&lt;br /&gt;
For interactive use on the Internet or other packet-based networks, total bandwidth used will be subject to packet overhead. The more packet headers that are transmitted every second, the greater will be the overhead that is required. For this reason, Opus, while defaulting to 20&amp;amp;nbsp;ms frames, supports 60&amp;amp;nbsp;ms frames to reduce overhead when transporting low-bitrate SILK frames at the expense of greater latency, which may still be acceptable for speech, and also supports 10&amp;amp;nbsp;ms SILK frames to reduce latency somewhat at the expense of packet overhead.&lt;br /&gt;
&lt;br /&gt;
In the CELT layer, which tends to operate at higher bitrates than SILK, 20&amp;amp;nbsp;ms frames are the default, but frames of 10&amp;amp;nbsp;ms, 5&amp;amp;nbsp;ms and 2.5&amp;amp;nbsp;ms are also possible, which directly increases the frame overhead by transmitting more packets per second to achieve lower latency. In addition, as we&#039;ll see below it also reduces the quality/bitrate tradeoff of the CELT layer itself.&lt;br /&gt;
&lt;br /&gt;
You probably do not want to use a frame size lower than 10&amp;amp;nbsp;ms in applications containing speech, as doing so turns off SILK. The &amp;quot;lowdelay&amp;quot; application switch (available in FFmpeg and the raw library) turns off SILK to cut out 4&amp;amp;nbsp;ms of synchronization delay, but a frame size of 10&amp;amp;nbsp;ms achieves more delay reduction compared to default without sacrificing SILK.&lt;br /&gt;
&lt;br /&gt;
None of the bitrates mentioned in this article account for the packet overhead.&lt;br /&gt;
&lt;br /&gt;
====CELT layer latency versus quality/bitrate trade-off====&lt;br /&gt;
Unlike the SILK layer, which works on fixed 10&amp;amp;nbsp;ms blocks, 1, 2 or 6 of which can be combined into an Opus frame, the CELT layer is able to modify the encoding block lengths available to enable its use with shorter frames.&lt;br /&gt;
&lt;br /&gt;
When the CELT layer uses 10&amp;amp;nbsp;ms, 5&amp;amp;nbsp;ms and 2.5&amp;amp;nbsp;ms frames instead of the default 20&amp;amp;nbsp;ms, it must use smaller transform block sizes to achieve this, thereby reducing frequency resolution in the MDCT compared to the default transform window, thus reducing encoding efficiency for tonal signals. To obtain the same frequency precision for a sound divided into shorter transform windows, improved amplitude precision is necessary, resulting in increased bitrate to obtain the same perceptual quality (or conversely lower quality at the same bitrate).&lt;br /&gt;
&lt;br /&gt;
These reduced-latency modes remain efficient for transient signals, which use short blocks anyway.&lt;br /&gt;
&lt;br /&gt;
In all modes, the algorithmic delay consists of the frame size plus an additional 2.5&amp;amp;nbsp;ms delay. The CELT layer requires 2.5&amp;amp;nbsp;ms for MDCT window overlap.&lt;br /&gt;
&lt;br /&gt;
Xiph.org used matched [[PEAQ]] scores (approximate perceptual quality assessment made in software) for the CELT0.10 codec that was used as the basis of the CELT layer in the Opus reference release, which indicate the following [http://people.xiph.org/~xiphmont/demo/celt/demo.html#demo approximate equivalent settings] for stereo music.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Frame size&lt;br /&gt;
!Algorithmic delay&lt;br /&gt;
!Bitrate to match 64kbps@22.5ms delay&lt;br /&gt;
!fractional bitrate increase&lt;br /&gt;
|-&lt;br /&gt;
!20 ms&lt;br /&gt;
|22.5 ms&lt;br /&gt;
|64.0 kbps&lt;br /&gt;
| +0.0 %&lt;br /&gt;
|-&lt;br /&gt;
!10 ms&lt;br /&gt;
|12.5 ms&lt;br /&gt;
|70.4 kbps&lt;br /&gt;
| +10.0 %&lt;br /&gt;
|-&lt;br /&gt;
!5 ms&lt;br /&gt;
|7.5 ms&lt;br /&gt;
|84.8 kbps&lt;br /&gt;
| +32.5 %&lt;br /&gt;
|-&lt;br /&gt;
!2.5 ms&lt;br /&gt;
|5.0 ms&lt;br /&gt;
|112.0 kbps&lt;br /&gt;
| +75.0 %&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
N.B. This table is useful for interactive streaming only. For music storage &amp;amp; delayed playback or non-interactive streaming, latency reduction is not important and the default 20&amp;amp;nbsp;ms frame size is preferable.&lt;br /&gt;
&lt;br /&gt;
==== &amp;quot;Equivalent bitrate&amp;quot; ====&lt;br /&gt;
Opus code includes a [https://github.com/xiph/opus/blob/9fc8fc4cf432640f284113ba502ee027268b0d9f/src/opus_encoder.c#L806 {{code|compute_equiv_rate()}}] function. Given the bitrate, framesize, cbr decision, and complexity setting, it converts the bitrate to an standard config (VBR, 20 ms frame, complexity 10) equivalent to be used for bandwidth, layer, and stereo decisions. The interesting bits are:&lt;br /&gt;
&lt;br /&gt;
* CBR requires 8% more bitrate for the same quality.&lt;br /&gt;
* Frame overhead is fixed and modelled as &amp;lt;code&amp;gt;(40*channels+20)*(frame_rate - 50);&amp;lt;/code&amp;gt; for any frame_rate larger than 50. (frame_rate is the number of frames per second, so &amp;lt;code&amp;gt;1000/frame_size_ms&amp;lt;/code&amp;gt;).&lt;br /&gt;
* Complexity turning results in up to 30% more bitrate requirement.&lt;br /&gt;
&lt;br /&gt;
This layer of conversion is why Opus runs wideband speech at 9 kbps VBR and CVBR, but with CBR it takes 10 kbps (now we know it&#039;s exactly 9.75 kbps) to use WB.&lt;br /&gt;
&lt;br /&gt;
=== Channel count vs bitrate ===&lt;br /&gt;
&lt;br /&gt;
For surround sound bitrates, use [[Bitrate#Equivalent bitrate estimates for multichannel audio]].&lt;br /&gt;
&lt;br /&gt;
For ambisonics, see [https://www.mdpi.com/2076-3417/10/9/3188 AMBIQUAL listening test], paper figures 11 and 12.&lt;br /&gt;
&lt;br /&gt;
== Implementations ==&lt;br /&gt;
&lt;br /&gt;
The format and algorithms are openly documented and the reference implementation is published as free software. The reference implementation (Opus Audio Tools, opus-tools), consisting of separate encoders and decoders, is published under the terms of a BSD-like license. It is written in C programming language and can be compiled for hardware architectures with or without floating point unit. The accompanying diagnostic tool opusinfo reports detailed technical information about Opus files, including information on the standard compliance of the bitstream format. It is based on ogginfo from the vorbis-tools and therefore, unlike the encoder and decoder, available under the terms of version 2 of the GPL.&lt;br /&gt;
&lt;br /&gt;
=== Reference implementation (libopus + binaries) ===&lt;br /&gt;
The commandline tools of the reference version are available pre-compiled for the most popular operating systems at [http://opus-codec.org/downloads opus-codec.org] and [https://ftp.mozilla.org/pub/mozilla.org/opus/ Mozilla&#039;s ftp server], plus in the foobar2000 free encoders pack and some alternative compiles through the hydrogenaud.io opus forum. The libopus commandline tools include encoder &amp;lt;code&amp;gt;opusenc&amp;lt;/code&amp;gt;, decoder &amp;lt;code&amp;gt;opusdec&amp;lt;/code&amp;gt;, and with a different license, the &amp;lt;code&amp;gt;opusinfo&amp;lt;/code&amp;gt; opus stream &amp;amp; metadata analyzer.&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;latest stable release&#039;&#039;&#039; is recommended for general use and as of mid 2014 is considered competitive with or superior to the best alternative speech or general music encoders at most supported bitrates.&lt;br /&gt;
&lt;br /&gt;
==== libopus v1.0 ====&lt;br /&gt;
Released 11 Sep 2012 when RFC6716 was standardized but mostly fully developed by late 2011.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Stable, well-tuned&#039;&#039;&#039; &amp;lt;code&amp;gt;opusenc&amp;lt;/code&amp;gt; reference encoder as included in RFC documentation.&lt;br /&gt;
&lt;br /&gt;
CELT layer closely related to CELT 0.10 implements Constrained VBR mode by default (bitrate boost used mainly for transients), plus true CBR.&lt;br /&gt;
&lt;br /&gt;
==== libopus v1.1 ==== &lt;br /&gt;
&lt;br /&gt;
The alpha source code released 21 Dec 2012 for testing &amp;amp; user feedback and following a beta release and testing, the stable 1.1 version was released on 5 December 2013, considered well tested enough for general release.&amp;lt;ref&amp;gt;https://people.xiph.org/~xiphmont/demo/opus/demo3.shtml&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
CELT layer [http://jmspeex.livejournal.com/11737.html quality improvements] introduced to provide &#039;&#039;&#039;unconstrained VBR&#039;&#039;&#039; include a rate boost not just for transients but now for highly tonal signals too and rate reduction when stereo image is narrow. There&#039;s also a rewrite of its &#039;&#039;&#039;transient detection&#039;&#039;&#039; code and &#039;&#039;&#039;time-frequency analysis&#039;&#039;&#039; code, and rewritten &#039;&#039;&#039;dynamic allocation&#039;&#039;&#039; code (HF/LF tilt and Band Boost) to allow more aggressive changes from the typical static allocation when warranted.&lt;br /&gt;
&lt;br /&gt;
There are many minor improvements to &#039;&#039;&#039;speech quality&#039;&#039;&#039; in both SILK and CELT layers.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;DC-rejection&#039;&#039;&#039; below 3 Hz also aids quality if inaudible DC offset is present with no effect on deep bass notes.&lt;br /&gt;
*&#039;&#039;&#039;Automatic speech/music detection&#039;&#039;&#039; is introduced to optimize encoding mode choices, especially near the bitrate target range (presumably around 24–40&amp;amp;nbsp;kbps) where the encoder may perform best with SILK, hybrid or CELT depending on content type. Below that range SILK performs best for both music &amp;amp; speech, and above it CELT performs best for speech &amp;amp; music. The detection, without look-ahead is not perfect but usually is undecided in audio where either mode will work well.&lt;br /&gt;
*&#039;&#039;&#039;Automatic bandwidth detection&#039;&#039;&#039; is also introduced to save wasted bits allocated to absent frequencies.&lt;br /&gt;
*&#039;&#039;&#039;Surround sound improvements&#039;&#039;&#039; were introduced since the beta release with considerable advances in coding efficiency, bitrate allocation and quality.&lt;br /&gt;
&lt;br /&gt;
A new &#039;&#039;&#039;temporal VBR&#039;&#039;&#039; feature is added. For reasons not explained by classic psychoacoustics, it appears that giving more bits to loud frames (stealing from quiet frames) makes the result substantially better on listening tests. This feature is not tunable: it always affects VBR calculation at low bitrates, gradually becoming weaker at higher bitrates, until it turns off completely at 68&amp;amp;nbsp;kbps.&lt;br /&gt;
&lt;br /&gt;
==== libopus v1.1.3 ==== &lt;br /&gt;
Released July 15th, 2016. This version contains:&lt;br /&gt;
&lt;br /&gt;
*Neon optimizations improving performance on ARMv7 and ARMv8 by up to 15%&lt;br /&gt;
*Fixes some issues with 16-bit platforms (e.g. TI C55x)&lt;br /&gt;
*Fixes to comfort noise generation (CNG)&lt;br /&gt;
*Documenting that PLC packets can also be 2 bytes&lt;br /&gt;
*Includes experimental ambisonics work (&amp;lt;code&amp;gt;--enable-ambisonics&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
==== libopus v1.2.1 ==== &lt;br /&gt;
Released June 26th, 2017. This version contains:&lt;br /&gt;
&lt;br /&gt;
*Speech quality improvements especially in the 12–20&amp;amp;nbsp;kbit/s range&lt;br /&gt;
*Improved VBR encoding for hybrid mode&lt;br /&gt;
*More aggressive use of wider speech bandwidth, including fullband speech starting at 14&amp;amp;nbsp;kbit/s&lt;br /&gt;
*Music quality improvements in the 32–48&amp;amp;nbsp;kbit/s range&lt;br /&gt;
*Generic and SSE CELT optimizations&lt;br /&gt;
*Support for directly encoding packets up to 120&amp;amp;nbsp;ms&lt;br /&gt;
*DTX support for CELT mode&lt;br /&gt;
*SILK CBR improvements&lt;br /&gt;
*Support for all of the fixes in draft-ietf-codec-opus-update-06 (the mono downmix and the folding fixes need &amp;lt;code&amp;gt;--enable-update-draft&amp;lt;/code&amp;gt;)&lt;br /&gt;
*Many bug fixes, including integer wrap-arounds discovered through fuzzing (no security implications)&lt;br /&gt;
&lt;br /&gt;
==== libopus v1.3 ====&lt;br /&gt;
Released on October 18th, 2018. This version contains:&lt;br /&gt;
&lt;br /&gt;
* Improvements to voice activity detection (VAD) and speech/music classification using a recurrent neural network (RNN)&lt;br /&gt;
* Support for ambisonics coding using channel mapping families 2 and 3&lt;br /&gt;
* Improvements to stereo speech coding at low bitrate&lt;br /&gt;
* Using wideband encoding down to 9&amp;amp;nbsp;kb/s&lt;br /&gt;
* Making it possible to use SILK down to bitrates around 5&amp;amp;nbsp;kb/s&lt;br /&gt;
* Minor quality improvement on tones&lt;br /&gt;
* Enabling the spec fixes in &amp;lt;nowiki&amp;gt;RFC 8251&amp;lt;/nowiki&amp;gt; by default&lt;br /&gt;
* Security/hardening improvements&lt;br /&gt;
* Fixes to the CELT PLC&lt;br /&gt;
* Bandwidth detection fixes&lt;br /&gt;
&lt;br /&gt;
==== libopus v1.3.1 ====&lt;br /&gt;
Released on April 12th, 2019. This version contains:&lt;br /&gt;
&lt;br /&gt;
* Fixes to x87 builds&lt;br /&gt;
* A new OPUS_GET_IN_DTX query to know if the encoder is in DTX mode (last frame was either a comfort noise frame or not encoded at all)&lt;br /&gt;
* A new (and still experimental) CMake-based build system that is eventually meant to replace the VS2015 build system (the autotools one will stay)&lt;br /&gt;
&lt;br /&gt;
==== libopus v1.4 ====&lt;br /&gt;
Released on April 20th, 2023. This version contains:&lt;br /&gt;
&lt;br /&gt;
* Improved tuning of the Opus in-band FEC (LBRR). See the issue for details&lt;br /&gt;
* Added a OPUS_SET_INBAND_FEC(2) option that turns on FEC, but does not force SILK mode (FEC will be disabled in CELT mode)&lt;br /&gt;
* Improved tuning and various fixes to DTX&lt;br /&gt;
* Added Meson support, improved CMake support In addition to the improvements above, this release includes many minor bug fixes.&lt;br /&gt;
&lt;br /&gt;
=== Other implementations ===&lt;br /&gt;
&lt;br /&gt;
==== Concentus ====&lt;br /&gt;
&lt;br /&gt;
The libopus reference library (fixed-point variant) has successfully been ported to both &#039;&#039;&#039;C#&#039;&#039;&#039; and &#039;&#039;&#039;Java&#039;&#039;&#039;, as part of a project called &#039;&#039;&#039;Concentus&#039;&#039;&#039;. The aim of the project is specifically to target cross-platform applications where native C interop is relatively difficult. The code is available on [https://github.com/lostromb/concentus Github] and distributed via standard package managers.&lt;br /&gt;
&lt;br /&gt;
==== Emscripten ports ====&lt;br /&gt;
&lt;br /&gt;
At least one port of reference opus in Javascript has been made using the automated tool [https://developer.mozilla.org/en-US/docs/Mozilla/Projects/Emscripten emscripten]. See [https://blog.rillke.com/opusenc.js/ here], [https://github.com/kazuki/opus.js-sample here] and [https://github.com/audiocogs/opus.js here].&lt;br /&gt;
&lt;br /&gt;
==== ffmpeg ====&lt;br /&gt;
FFmpeg has a native [https://ffmpeg.org/ffmpeg-codecs.html#opus &amp;quot;opus&amp;quot;] codec. It is of lower quality than the reference libopus and only does CELT coding. However, it is still good for the ecosystem to have a completely independent implementation.&lt;br /&gt;
&lt;br /&gt;
== Hardware &amp;amp; Software Support ==&lt;br /&gt;
&lt;br /&gt;
Much of this section is based heavily on the Jan 12th 2013 version of the &#039;&#039;&#039;Support&#039;&#039;&#039; section of the [http://en.wikipedia.org/wiki/Opus_%28audio_format%29 Wikipedia article], which is more likely to be kept updated and to provide links to further information about the supporting platforms.&lt;br /&gt;
&lt;br /&gt;
=== VoIP software ===&lt;br /&gt;
* The open source virtual PBX Freeswitch supports Opus transcoding.&lt;br /&gt;
* The voice-chat software Mumble supports Opus as its main codec.&lt;br /&gt;
* SIP softphones Phoner and PhonerLite support Opus&lt;br /&gt;
* The SIP and IAX2 client SFLphone is being fitted with Opus support.&lt;br /&gt;
* Integration of Opus into the Skype client is finished, although no version with Opus support has yet been published.&lt;br /&gt;
* TrueConf video conferencing solutions support Opus.&lt;br /&gt;
* Opus support is planned for Jitsi 2.0, together with VP8 video.&lt;br /&gt;
* Empathy may use any format supported in GStreamer, including Opus.&lt;br /&gt;
* Line2 has replaced their current codec with Opus. Their iOS app will be the first to be released with the Opus. The Android app will follow later.&lt;br /&gt;
* CSipSimple supports Opus, Codec2, G.726 and G.722.1 with an additional plug-in.&lt;br /&gt;
* The voice-chat software TeamSpeak 3 supports Opus for voice and music in pre-release server 3.0.7-pre2 and beta client version 3.0.10.&lt;br /&gt;
* The proprietary instant messenger service Discord uses Opus audio for all voice calls and video calls, regardless of platform.&lt;br /&gt;
&lt;br /&gt;
=== Web frameworks and browsers ===&lt;br /&gt;
* Opus support is mandatory for WebRTC implementations.&lt;br /&gt;
* Mozilla supports Opus beginning with version 15 of Firefox and Thunderbird, plus Seamonkey, which uses a shared codebase.&lt;br /&gt;
* Depending on the backend in use, Opera supports inline playback of embedded Opus files. Official support for Opus and WebRTC are on the development roadmap.&lt;br /&gt;
* Chromium and Google Chrome have audio support as of version 33.&lt;br /&gt;
* Apple&#039;s Safari browser now supports Opus as of iOS 11 and macOS 10.13 High Sierra.&lt;br /&gt;
* Maxthon Cloud Browser&lt;br /&gt;
&lt;br /&gt;
=== Streaming audio ===&lt;br /&gt;
* Icecast. (examples: [http://dir.xiph.org/by_format/Opus Stream directory by format Opus], [http://smj.delfa.net/opus_64.m3u 64k]/[http://smj.delfa.net/opus_256.m3u 256k] [http://smj.delfa.net/ Smooth Jazz Opus Stream], [http://www.absoluteradio.co.uk/listen/labs.html Absolute Radio Opus Trial] 7 stations at 24,64,96 kbps, [http://icecast.ofdoom.com:8000/burst-opus.ogg Icecast Of Doom 96k]&lt;br /&gt;
* Krad Radio&lt;br /&gt;
* Liquidsoap&lt;br /&gt;
&lt;br /&gt;
=== Operating systems and desktop multimedia frameworks ===&lt;br /&gt;
* In Debian GNU/Linux the Opus development tools and supporting libraries can be installed from the preconfigured repositories in the next stable version (&amp;quot;wheezy&amp;quot;) that is expected to be released in early 2013.&lt;br /&gt;
* For Microsoft Windows, there are DirectShow filters supporting Opus, including DC-Bass Source Mod and the LAV Filters.&lt;br /&gt;
* In GStreamer the integration of Opus support is complete.&lt;br /&gt;
* FFmpeg supports decoding and encoding Opus via the external library libopus.&lt;br /&gt;
* Android 5.0 and above supports Opus natively if encapsulated in the Ogg container, but .opus filename extension is not recognized by Android, so the use of double filename extension .opus.ogg is recommended as a workaround to allow apps to recognize files as playable audio.&lt;br /&gt;
&lt;br /&gt;
=== Hardware support ===&lt;br /&gt;
* Support in [[Rockbox]] is available. This means hardware support for a series of portable media players (including some products from the iPod series by Apple and Sansa, iriver and Archos devices) and with &amp;quot;Rockbox as an Application&amp;quot; (RaaA) also on Android devices.&lt;br /&gt;
&lt;br /&gt;
=== Player software ===&lt;br /&gt;
&lt;br /&gt;
* Windows/Mac/Linux (Cross-Platform)&lt;br /&gt;
*# [[VLC]] (media player supports Opus as of version 2.0.4&lt;br /&gt;
*# [[Amarok]] 2.8 has transcoding support for Opus codec if ffmpeg is compiled with support for the libopus library &amp;amp; support for playback of Opus encoded files if Amarok is compiled against TagLib (newer than V1.8)&lt;br /&gt;
*# Clementine has Opus support&lt;br /&gt;
*# Audacious player&lt;br /&gt;
*# [[MPD]] as of version 0.18 if compiled against libopus (supports both encoding for http streams and decoding)&lt;br /&gt;
* Windows Exclusive&lt;br /&gt;
*# AIMP supports Opus natively as of version 3.20 build 1125 beta 1&lt;br /&gt;
*# [[foobar2000]] supports Opus natively as of v1.1.14 beta 1&lt;br /&gt;
*# Mpxplay supports Opus (using a decoder DLL) as of v1.60 alpha 2&lt;br /&gt;
*# [[Winamp]] supports Opus using a [http://forums.winamp.com/showthread.php?p=2925154#post2925154 3rd party plug-in]&lt;br /&gt;
*# MPC-HC&lt;br /&gt;
*# Resonic Player/Pro supports Opus natively as of version 0.2.2&lt;br /&gt;
* iOS/Android (Cross-Platform)&lt;br /&gt;
*# Capriccio [https://itunes.apple.com/us/app/capriccio-free-ultimate-music/id434829018?mt=8 iOS]/[https://play.google.com/store/apps/details?id=me.ideariboso.capriccio Android]&lt;br /&gt;
*# foobar2000 [https://itunes.apple.com/us/app/foobar2000/id1072807669?mt=8 iOS]/[https://play.google.com/store/apps/details?id=com.foobar2000.foobar2000&amp;amp;hl=en Android]&lt;br /&gt;
* Android Exclusive&lt;br /&gt;
*# [https://play.google.com/store/apps/details?id=in.krosbits.musicolet Musicolet Music Player]&lt;br /&gt;
*# [http://gonemadmusicplayer.blogspot.com/ GoneMAD Music Player]&lt;br /&gt;
*# [http://neutronmp.com/ Neutron Music Player]&lt;br /&gt;
*# [http://www.videolan.org/vlc/download-android.html VLC Media Player for Android]&lt;br /&gt;
*# [https://play.google.com/store/apps/details?id=ru.recoilme.freeamp FreeMP]&lt;br /&gt;
*# [https://play.google.com/store/apps/details?id=net.mderezynski.youki3 Youki]&lt;br /&gt;
*# [https://play.google.com/store/apps/details?id=com.aimp.player AIMP for Android]&lt;br /&gt;
*# [https://play.google.com/store/apps/details?id=com.acmeandroid.listen Listen Audiobook Player]&lt;br /&gt;
*# [https://play.google.com/store/apps/details?id=com.mxtech.videoplayer.ad MX Player]&lt;br /&gt;
*# [https://play.google.com/store/apps/details?id=org.tomahawk.tomahawk_android Tomahawk Player Beta]&lt;br /&gt;
*# [https://play.google.com/store/apps/details?id=com.maxmpz.audioplayer&amp;amp;hl=en Poweramp Music Player]&lt;br /&gt;
&lt;br /&gt;
=== Other software ===&lt;br /&gt;
* CDBurnerXP&lt;br /&gt;
* MediaCoder&lt;br /&gt;
* Report-IT&lt;br /&gt;
* [[MP3tag|MP3tag]]&lt;br /&gt;
* [https://moisescardona.me/opus-gui/ Opus GUI]&lt;br /&gt;
* [http://www.xdlab.ru/en/ TagScanner]&lt;br /&gt;
* [http://www.xmedia-recode.de/ XMedia Recode]&lt;br /&gt;
* [[loudgain]]&lt;br /&gt;
&lt;br /&gt;
== References &amp;amp; Notes ==&lt;br /&gt;
&lt;br /&gt;
*{{note|homepage|a}}[http://opus-codec.org/ opus-codec.org homepage]&lt;br /&gt;
*{{note|FAQ|b}}[http://wiki.xiph.org/OpusFAQ Opus FAQ]&lt;br /&gt;
*{{note|RFC|c}}[http://tools.ietf.org/html/rfc6716 IETF RFC 6716]&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
[[Category:Codecs]]&lt;br /&gt;
[[Category:Lossy]]&lt;br /&gt;
[[Category:Encoder/Decoder]]&lt;/div&gt;</summary>
		<author><name>Artoria2e5</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=Fraunhofer_FDK_AAC&amp;diff=37299</id>
		<title>Fraunhofer FDK AAC</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=Fraunhofer_FDK_AAC&amp;diff=37299"/>
		<updated>2023-08-12T07:11:10Z</updated>

		<summary type="html">&lt;p&gt;Artoria2e5: /* FDK License */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:Encoder/Decoder]]&lt;br /&gt;
{{aac-encoders}}&lt;br /&gt;
The &#039;&#039;&#039;Fraunhofer FDK AAC&#039;&#039;&#039; is a high-quality open-source [[AAC]] [[codec|encoder]] library developed by [[Fraunhofer|Fraunhofer IIS]]. It was officially released for Android, but has been ported to other platforms.&lt;br /&gt;
&lt;br /&gt;
The licensed Fraunhofer AAC codec included in Winamp (often called [[Fraunhofer#Fraunhofer IIS Codecs|FhG AAC]]) is not the same as the FDK AAC codec. While they use the same approach, they are developed by different teams, and target different platforms. The FDK library is built around fixed-point math and originally targeted low-delay communication on mobile devices.&lt;br /&gt;
&lt;br /&gt;
FDK AAC is considered a favorable alternative to the [[Nero AAC]] codec, which is no longer developed.&lt;br /&gt;
&lt;br /&gt;
== Software Versions ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Package/Component !! Version !! Developer/Maintainer !! License !! Description&lt;br /&gt;
|-&lt;br /&gt;
| FDK Encoder&lt;br /&gt;
| 4.0.0 &amp;lt;!-- AACENCODER_LIB_VL[0,1,2] in aacenc_lib.cpp --&amp;gt; [https://android.googlesource.com/platform/external/aac/+/master/libAACenc/src/aacenc_lib.cpp]  &lt;br /&gt;
|rowspan=4| [[Fraunhofer|Fraunhofer IIS]]&lt;br /&gt;
|rowspan=4| [[#FDK License|FDK License]]&lt;br /&gt;
|rowspan=4| The FDK AAC library included in Android.&lt;br /&gt;
|-&lt;br /&gt;
| FDK SBR/PS Encoder&amp;lt;br /&amp;gt;(for HE &amp;amp; HEv2)&lt;br /&gt;
| 4.0.0 &amp;lt;!-- SBRENCODER_LIB_VL[0,1,2] in sbr_encoder.cpp --&amp;gt; [https://android.googlesource.com/platform/external/aac/+/master/libSBRenc/src/sbr_encoder.cpp]&lt;br /&gt;
|-&lt;br /&gt;
| FDK Decoder&lt;br /&gt;
| 3.0.0 [https://android.googlesource.com/platform/external/aac/+/master/libAACdec/src/aacdecoder_lib.cpp]&lt;br /&gt;
|-&lt;br /&gt;
| FDK SBR/PS Decoder&lt;br /&gt;
| 2.2.6 [https://android.googlesource.com/platform/external/aac/+/lollipop-release/libSBRdec/src/sbrdecoder.cpp]&lt;br /&gt;
|-&lt;br /&gt;
| [[#(lib)fdk-aac|fdk-aac]]&lt;br /&gt;
| 2.0.0 (2018-11-22)&amp;lt;br /&amp;gt; ([https://github.com/mstorsjo/fdk-aac/releases watch]) based on FDK AAC (4.0.0/3.0.0)  &amp;lt;br /&amp;gt; shared library version 2.0.0 &amp;lt;!-- in configure.ac --&amp;gt;&lt;br /&gt;
| Martin Storsjö/Opencore AMR project&lt;br /&gt;
|rowspan=2|[[#FDK License|FDK License]] with additions under [http://www.apache.org/licenses/LICENSE-2.0 Apache 2.0 license] &lt;br /&gt;
| The FDK AAC encoder and decoder as a portable library separate from Android.&lt;br /&gt;
|-&lt;br /&gt;
| fdk-aac (debian)&lt;br /&gt;
| 0.1.6-1 [https://tracker.debian.org/pkg/fdk-aac] &amp;lt;br /&amp;gt; libfdk-aac0 (shared library version 1.1.0)&lt;br /&gt;
| &lt;br /&gt;
| The Debian source package for fdk-aac. Includes libfdk-aac* and the [[#aac-enc|aac-enc]] encoding front end.&lt;br /&gt;
|-&lt;br /&gt;
| [[#fdkaac|fdkaac]]&lt;br /&gt;
| 1.0.0 (using libfdk-aac 0.1.6)&lt;br /&gt;
| nu774&lt;br /&gt;
| zlib&lt;br /&gt;
| An advanced front-end to the FDK AAC encoder using libfdk-aac.&lt;br /&gt;
|-&lt;br /&gt;
| [[#FFmpeg|FFmpeg]]/[[#Libav/avconv|Libav]] support&lt;br /&gt;
| Libav: [https://git.libav.org/?p=libav.git;a=blob;f=libavcodec/libfdk-aacenc.c encode], [https://git.libav.org/?p=libav.git;a=blob;f=libavcodec/libfdk-aacdec.c decode] &amp;lt;br /&amp;gt; FFmpeg: [https://github.com/FFmpeg/FFmpeg/blob/master/libavcodec/libfdk-aacenc.c encode], [https://github.com/FFmpeg/FFmpeg/blob/master/libavcodec/libfdk-aacdec.c decode]&lt;br /&gt;
| Martin Storsjö&lt;br /&gt;
| [http://www.isc.org/downloads/software-support-policy/isc-license/ ISC license]&lt;br /&gt;
| A wrapper for libfdk-aac that adds support to FFmpeg and Libav/avconv. It is included in both projects, and is the recommended AAC encoder for FFmpeg.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== FDK License ==&lt;br /&gt;
The license included by Fraunhofer in the FDK source code specifically allows distribution in source or binary forms, but does not license patented technologies described by the source code. It goes on to say &amp;quot;you may &#039;&#039;use&#039;&#039; this FDK AAC Codec software or modifications thereto only for purposes that are authorized by appropriate patent licenses&amp;quot;.&amp;lt;ref&amp;gt;[https://android.googlesource.com/platform/external/aac/+/master/NOTICE NOTICE file], fdkaac&amp;lt;/ref&amp;gt; As this governs &#039;&#039;use&#039;&#039;, it should not have anything to do with distribution. The Free Software Foundation (FSF) considers it fishy to have an invitation to purchase patent licenses in the text, but concedes that &amp;quot;any program is potentially threatened by patents&amp;quot;. Considering [[AAC#Patent situation|the patent terms]], all AAC software are indeed equally affected.&lt;br /&gt;
&lt;br /&gt;
This license puts a limitation on charging for software that includes the library, leading Debian to consider it non-free. Debian does not comment on the patent situation.&lt;br /&gt;
&lt;br /&gt;
The position of FFmpeg is that although the license is GPL-incompatible (and therefore nondistributable with GPL parts), it is acceptable to distribute the library with LGPL parts.&amp;lt;ref&amp;gt;&amp;lt;code&amp;gt;ffmpeg -license&amp;lt;/code&amp;gt; command output&amp;lt;/ref&amp;gt; FFmpeg [https://ffmpeg.org/legal.html does not care about patents]. (The AAC patent license covers both encoder &#039;&#039;and&#039;&#039; decoder, so using fdk_aac does not add patent violations to FFmpeg.)&lt;br /&gt;
&lt;br /&gt;
=== Free Software? ===&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
|-&lt;br /&gt;
! Party !! Classification !! Note&lt;br /&gt;
|-&lt;br /&gt;
| Debian || {{no|Non-free}} || [https://tracker.debian.org/pkg/fdk-aac][https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=694257] (fee clause)&lt;br /&gt;
|-&lt;br /&gt;
| Fedora/Red Hat || {{maybe|Free but not Allowed}} || [https://fedoraproject.org/wiki/Licensing/FDK-AAC]: Fedora has since adopted a more defensive posture to patent language, making it not Allowed&lt;br /&gt;
|-&lt;br /&gt;
| FSF || {{maybe|Free (but warns about patents)}} ||  [https://www.gnu.org/licenses/license-list.html#fdk]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Afterburner ==&lt;br /&gt;
&#039;&#039;Afterburner&#039;&#039; is &amp;quot;a type of analysis by synthesis algorithm which increases the audio quality but also the required processing power.&amp;quot; Fraunhofer recommends to always activate this feature.&lt;br /&gt;
&lt;br /&gt;
== Audio Object Types ==&lt;br /&gt;
The library supports the following MPEG-2/4 AOTs:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Object Type ID !! Audio Object Type !!  Description&lt;br /&gt;
|-&lt;br /&gt;
|2  ||	AAC-LC || &amp;quot;AAC Profile&amp;quot; MPEG-2 Low-complexity (LC) combined with MPEG-4 Perceptual Noise Substitution (PNS)&lt;br /&gt;
|-&lt;br /&gt;
|5  ||	HE-AAC || AAC LC + SBR (Spectral Band Replication)&lt;br /&gt;
|-&lt;br /&gt;
|29 ||	HE-AAC v2 || AAC LC + SBR + PS (Parametric Stereo)&lt;br /&gt;
|-&lt;br /&gt;
|23 ||	AAC-LD || &amp;quot;Low Delay Profile&amp;quot; used for real-time communication&lt;br /&gt;
|-&lt;br /&gt;
|39 ||	AAC-ELD || Enhanced Low Delay&lt;br /&gt;
|-&lt;br /&gt;
|129||  MPEG-2 AAC LC || &lt;br /&gt;
|-&lt;br /&gt;
|132||  MPEG-2 HE-AAC (SBR) ||&lt;br /&gt;
|-&lt;br /&gt;
|156||  MPEG-2 HE-AAC v2 (SBR+PS) ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Bitrate Modes ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! AACENC_BITRATEMODE !! Mode !! Stream Bitrate&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[Constant Bitrate]] (CBR) || As specified by AACENC_BITRATE&lt;br /&gt;
|-&lt;br /&gt;
| 1-5 || [[Variable Bitrate]] (VBR) || Calculated based on channel layout (See table below)&lt;br /&gt;
|-&lt;br /&gt;
|colspan=3|&amp;lt;!--- Don&#039;t really know how the modes below work, yet. --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 6 ||colspan=2| Fixed frame mode.&lt;br /&gt;
|-&lt;br /&gt;
| 7 ||colspan=2| Superframe mode.&lt;br /&gt;
|-&lt;br /&gt;
| 8 ||colspan=2| LD/ELD full bitreservoir for packet based transmission&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The bitrate limit for each variable bitrate mode. [https://android.googlesource.com/platform/external/aac/+/master/libAACenc/src/aacenc.cpp] HE and HEv2 will often end up with actual bitrates far below these limits.&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!rowspan=2|AACENC_BITRATEMODE &amp;lt;br /&amp;gt;(VBR Modes) !!rowspan=2|Mode !!colspan=2|Bitrate per channel (LC) !!rowspan=2|AOTs&lt;br /&gt;
|-&lt;br /&gt;
! Mono !! Stereo &amp;lt;sup&amp;gt;a&amp;lt;/sup&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1 || VBR || 32 kbps || 20 kbps || LC, HE, HEv2&lt;br /&gt;
|-&lt;br /&gt;
| 2 || VBR || 40 kbps || 32 kbps || LC, HE, HEv2&lt;br /&gt;
|-&lt;br /&gt;
| 3 || VBR || 56 kbps || 48 kbps || LC, HE, HEv2&lt;br /&gt;
|-&lt;br /&gt;
| 4 || VBR || 72 kbps || 64 kbps || LC&lt;br /&gt;
|-&lt;br /&gt;
| 5 || VBR || 112 kbps || 96 kbps || LC&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;sup&amp;gt;a&amp;lt;/sup&amp;gt; Note that a &amp;quot;stereo&amp;quot; channel is any that is [[Joint stereo|bonded with another channel]], as noted with a plus sign in the [[#Channel Layouts|channel layouts]] table.&lt;br /&gt;
&lt;br /&gt;
====Example Bitrate Calculations====&lt;br /&gt;
&lt;br /&gt;
{|class=wikitable&lt;br /&gt;
! Profile !! VBR Mode !! Channel layout !! Expected stream bitrate&lt;br /&gt;
|-&lt;br /&gt;
| LC || 3 || L+R || 2 &amp;quot;stereo&amp;quot; channels at 48kbps = 96kbps&lt;br /&gt;
|-&lt;br /&gt;
| LC || 3 || C, L+R || 1 &amp;quot;mono&amp;quot; center channel at 56 kbps and 2 &amp;quot;stereo&amp;quot; channels at 48kbps = 152kbps&lt;br /&gt;
|-&lt;br /&gt;
| LC || 4 || C, L+R, LS+RS, LFE || 1 &amp;quot;mono&amp;quot; center channel and 1 mono LFE channel each at 72kbps, and 4 &amp;quot;stereo&amp;quot; channels (2 sets of 2) each at 64kbps = 400kbps&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Bandwidth==&lt;br /&gt;
[[Image:FDK filter.png|400px|thumb|A spectrogram showing the effect of the FDK AAC low-pass filter.]]&lt;br /&gt;
The default bandwidth (or low-pass filter cutoff) for each [[#Bitrate Modes|bitrate mode]] will be the minimum of the appropriate value in the tables below or half the [[#Sample Rates|sample rate]]. This can be overridden, but the maximum value is 20000 Hz. [https://android.googlesource.com/platform/external/aac/+/master/libAACenc/src/bandwidth.cpp] &lt;br /&gt;
&lt;br /&gt;
The fdk-aac parameter is AACENC_BANDWIDTH. More information can be found in the official documentation, section 3.1 &#039;&#039;Bandwidth&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== HE-AAC/SBR ===&lt;br /&gt;
&lt;br /&gt;
The HE-AAC and HE-AACv2 profiles encode audio using AAC-LC at one half the sample rate, relying on [[Spectral Band Replication]] (SBR) to attempt reconstruction of the missing higher frequencies. The end result is an apparent full bandwidth transmission (as if no low-pass filter was applied), even though the actual AAC-LC encoded audio is only storing frequencies up to 1/4 the original sample rate. &lt;br /&gt;
&amp;lt;!--I haven&#039;t been able to confirm that the low-pass filter would still be applied in the case that 1/4 the sample rate was still higher. For example if an input stream sampled at 96kHz encoded using HE-AAC in VBR mode 2 would still have the 13kHz filter applied to the base AAC-LC data. It does appear that way, by looking at the code. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== VBR Modes ===&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! AACENC_BITRATEMODE !! Mono !! Two or More Channels&lt;br /&gt;
|-&lt;br /&gt;
| 1 ||colspan=2| 13050 Hz&lt;br /&gt;
|-&lt;br /&gt;
| 2 ||colspan=2| 13050 Hz&lt;br /&gt;
|-&lt;br /&gt;
| 3 ||colspan=2| 14260 Hz&lt;br /&gt;
|-&lt;br /&gt;
| 4 ||colspan=2| 15500 Hz&lt;br /&gt;
|-&lt;br /&gt;
| 5 ||colspan=2| Full range, no filter&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== CBR Mode ===&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! AOT/Sample Rates !! Bitrate&amp;lt;br /&amp;gt;per channel !! Mono !! Two or More Channels&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=8| LC / Any&lt;br /&gt;
| Below 12kbps || 3700 Hz || 5000 Hz&lt;br /&gt;
|-&lt;br /&gt;
| 12-20 kbps || 5000 Hz || 6400 Hz&lt;br /&gt;
|-&lt;br /&gt;
| 20-28 kbps || 6900 Hz || 9640 Hz&lt;br /&gt;
|- &lt;br /&gt;
| 28-40 kbps || 9600 Hz || 13050 Hz&lt;br /&gt;
|-&lt;br /&gt;
| 40-56 kbps || 12060 Hz || 14260 Hz&lt;br /&gt;
|-&lt;br /&gt;
| 56-72 kbps || 13950 Hz || 15500 Hz&lt;br /&gt;
|-&lt;br /&gt;
| 72-96 kpbs || 14200 Hz || 16120 Hz&lt;br /&gt;
|-&lt;br /&gt;
| 96kbps and above ||colspan=2| 17000 Hz&lt;br /&gt;
|-&lt;br /&gt;
|colspan=4|...&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=2| LD / 44100 Hz&lt;br /&gt;
| 56kbps || 11000 Hz || 12900 Hz&lt;br /&gt;
|-&lt;br /&gt;
| 64kbps || 14400 Hz || 15500 Hz&lt;br /&gt;
|-&lt;br /&gt;
|colspan=4|...&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Sample Format ==&lt;br /&gt;
&lt;br /&gt;
The FDK library is based on fixed-point math and only supports 16-bit integer PCM input.&lt;br /&gt;
&lt;br /&gt;
== Sample Rates ==&lt;br /&gt;
&lt;br /&gt;
FDK library officially supports sample rates for input of 8000, 11025, 12000, 16000, 22050, 24000, 32000, 44100, 48000, 64000, 88200, and 96000 Hz. &lt;br /&gt;
&lt;br /&gt;
See [[#GetInvInt table limit|Issues/GetInvInt table limit]] if experiencing crashes with high sample rates and VBR.&lt;br /&gt;
&lt;br /&gt;
Also see [[#Recommended Sampling Rate and Bitrate Combinations|Recommended Sampling Rate and Bitrate Combinations]].&lt;br /&gt;
&lt;br /&gt;
== Channel Layouts ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Channels !! Layout !! Mode !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 1 || C || MODE_1 || Mono&lt;br /&gt;
|-&lt;br /&gt;
| 2 || L+R || MODE_2 || Stereo&lt;br /&gt;
|-&lt;br /&gt;
| 3 || C, L+R || MODE_1_2 ||&lt;br /&gt;
|-&lt;br /&gt;
| 4 || C, L+R, Rear || MODE_1_2_1 || fdkaac calls it &amp;quot;C L R Cs&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 5 || C, L+R, LS+RS || MODE_1_2_2 || &lt;br /&gt;
|-&lt;br /&gt;
| 5.1 || C, L+R, LS+RS, LFE || MODE_1_2_2_1 ||&lt;br /&gt;
|-&lt;br /&gt;
| 7.1 || C, LC+RC, L+R, LS+RS, LFE || MODE_1_2_2_2_1 &amp;lt;br /&amp;gt; MODE_7_1_FRONT_CENTER ||&lt;br /&gt;
|-&lt;br /&gt;
| 7.1 (Rear) || C, L+R, LS+RS, Lrear+Rrear, LFE || MODE_7_1_REAR_SURROUND ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The plus sign (+) denotes &amp;quot;stereo&amp;quot; channels.&lt;br /&gt;
&lt;br /&gt;
== Issues ==&lt;br /&gt;
=== GetInvInt table limit ===&lt;br /&gt;
As of FDK version 3.4.12, not all combinations of audio object types, bitrate modes, channel layouts, and sample rates can be used together, due to a limited table of pre-computed values used by the encoder. &lt;br /&gt;
&lt;br /&gt;
For example, using 96kHz stereo input with the AAC-LC audio object type and bitrate mode 5 (VBR 96-112kbps/channel) will result in catastrophic failure: [https://github.com/mstorsjo/fdk-aac/issues/17] &lt;br /&gt;
 ./libFDK/include/fixpoint_math.h:459: FIXP_DBL GetInvInt(int): Assertion `(intValue &amp;gt; 0) &amp;amp;&amp;amp; (intValue &amp;lt; 50)&#039; failed.&lt;br /&gt;
 Aborted (core dumped)&lt;br /&gt;
&lt;br /&gt;
A recent (August 2014) patch to libfdk-aac fixes most of the previously unsupported combinations [https://github.com/mstorsjo/fdk-aac/commit/9a3234055adb1e18f80571925779503c8dec5251], and is expected to be included in the next official version of the FDK AAC library.&lt;br /&gt;
&lt;br /&gt;
See [[#Libav/avconv|Libav/avconv]] for a workaround.&lt;br /&gt;
&lt;br /&gt;
== Recommended Sampling Rate and Bitrate Combinations ==&lt;br /&gt;
&lt;br /&gt;
This table is from the documentation included in the FDK library source code. (PDF section 2.12 or source code: [https://android.googlesource.com/platform/external/aac/+/master/libAACenc/include/aacenc_lib.h])&lt;br /&gt;
&lt;br /&gt;
The following table provides an overview of recommended encoder configuration parameters which [Fraunhofer] determined by virtue of numerous listening tests.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! [[#Audio Object Types|Audio Object Type]] !! Bit Rate Range&amp;lt;br /&amp;gt;[bit/s] !! Supported [[#Sampling Rates|Sampling Rates]]&amp;lt;br /&amp;gt;[kHz] !! Recommended Sampling Rate&amp;lt;br /&amp;gt;[kHz] !! Number of&amp;lt;br /&amp;gt;[[#Channel Layouts|Channels]]&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;4&amp;quot;| [29] HE-AAC v2&amp;lt;br /&amp;gt;(AAC LC + SBR + PS)&lt;br /&gt;
| 8000 - 11999 || 22.05, 24.00 || 24.00 || 2&lt;br /&gt;
|-&lt;br /&gt;
| 12000 - 17999 || 32.00 || 32.00 || 2&lt;br /&gt;
|-&lt;br /&gt;
| 18000 - 39999 || 32.00, 44.10, 48.00 || 44.10 || 2&lt;br /&gt;
|-&lt;br /&gt;
| 40000 - 56000 || 32.00, 44.10, 48.00 || 48.00 || 2&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;7&amp;quot;| [5] HE-AAC&amp;lt;br /&amp;gt;(AAC LC + SBR)&lt;br /&gt;
| 8000 - 11999 || 22.05, 24.00 || 24.00 || 1&lt;br /&gt;
|-&lt;br /&gt;
| 12000 - 17999 || 32.00 || 32.00 || 1&lt;br /&gt;
|-&lt;br /&gt;
| 18000 - 39999 || 32.00, 44.10, 48.00 || 44.10 || 1&lt;br /&gt;
|-&lt;br /&gt;
| 40000 - 56000 || 32.00, 44.10, 48.00 || 48.00 || 1&lt;br /&gt;
|-&lt;br /&gt;
| 16000 - 27999 || 32.00, 44.10, 48.00 || 32.00 || 2&lt;br /&gt;
|-&lt;br /&gt;
| 28000 - 63999 || 32.00, 44.10, 48.00 || 44.10 || 2&lt;br /&gt;
|-&lt;br /&gt;
| 64000 - 128000 || 32.00, 44.10, 48.00 || 48.00 || 2&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;4&amp;quot;| [5] HE-AAC&amp;lt;br /&amp;gt;(AAC LC + SBR)&lt;br /&gt;
| 64000 - 69999 || 32.00, 44.10, 48.00 || 32.00 || 5, 5.1&lt;br /&gt;
|-&lt;br /&gt;
| 70000 - 159999 || 32.00, 44.10, 48.00 || 44.10 || 5, 5.1&lt;br /&gt;
|-&lt;br /&gt;
| 160000 - 245999 || 32.00, 44.10, 48.00 || 48.00 || 5&lt;br /&gt;
|-&lt;br /&gt;
| 160000 - 265999 || 32.00, 44.10, 48.00 || 48.00 || 5.1&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;6&amp;quot;| [2] AAC LC&lt;br /&gt;
| 8000 - 15999 || 11.025, 12.00, 16.00 || 12.00 || 1&lt;br /&gt;
|-&lt;br /&gt;
| 16000 - 23999 || 16.00 || 16.00 || 1&lt;br /&gt;
|-&lt;br /&gt;
| 24000 - 31999 || 16.00, 22.05, 24.00 || 24.00 || 1&lt;br /&gt;
|-&lt;br /&gt;
| 32000 - 55999 || 32.00 || 32.00 || 1&lt;br /&gt;
|-&lt;br /&gt;
| 56000 - 160000 || 32.00, 44.10, 48.00 || 44.10 || 1&lt;br /&gt;
|-&lt;br /&gt;
| 160001 - 288000 || 48.00 || 48.00 || 1&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;7&amp;quot;| [2] AAC LC&lt;br /&gt;
| 16000 - 23999 || 11.025, 12.00, 16.00 || 12.00 || 2&lt;br /&gt;
|-&lt;br /&gt;
| 24000 - 31999 || 16.00 || 16.00 || 2&lt;br /&gt;
|-&lt;br /&gt;
| 32000 - 39999 || 16.00, 22.05, 24.00 || 22.05 || 2&lt;br /&gt;
|-&lt;br /&gt;
| 40000 - 95999 || 32.00 || 32.00 || 2&lt;br /&gt;
|-&lt;br /&gt;
| 96000 - 111999 || 32.00, 44.10, 48.00 || 32.00 || 2&lt;br /&gt;
|-&lt;br /&gt;
| 112000 - 320001 || 32.00, 44.10, 48.00 || 44.10 || 2&lt;br /&gt;
|-&lt;br /&gt;
| 320002 - 576000 || 48.00 || 48.00 || 2&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;3&amp;quot;| [2] AAC LC&lt;br /&gt;
| 160000 - 239999 || 32.00 || 32.00 || 5, 5.1 &lt;br /&gt;
|-&lt;br /&gt;
| 240000 - 279999 || 32.00, 44.10, 48.00 || 32.00 || 5, 5.1&lt;br /&gt;
|-&lt;br /&gt;
| 280000 - 800000 || 32.00, 44.10, 48.00 || 44.10 || 5, 5.1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== (lib)fdk-aac ==&lt;br /&gt;
&lt;br /&gt;
Martin Storsjö (as the opencore-amr project) maintains a source code distribution of the Fraunhofer library as fdk-aac. It is distributed in a binary form in Debian (and Debian derivatives like Ubuntu) as the package fdk-aac, which includes the libfdk-aac* and [[#aac-enc|aac-enc]] binaries.&lt;br /&gt;
&lt;br /&gt;
See [[#Software Versions|Software Versions]] for latest release information.&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;br /&gt;
* [https://github.com/mstorsjo/fdk-aac Source] at Github&lt;br /&gt;
* [https://tracker.debian.org/pkg/fdk-aac fdk-aac] at Debian package tracker. Package includes libfdk-aac* and the aac-enc binary.&lt;br /&gt;
&lt;br /&gt;
== aac-enc ==&lt;br /&gt;
&lt;br /&gt;
fdk-aac includes a very, very basic command-line interface encoding utility, called aac-enc, that can encode to AAC from WAV.&lt;br /&gt;
&lt;br /&gt;
=== Usage ===&lt;br /&gt;
 aac-enc [-r bitrate] [-t aot] [-a afterburner] [-s sbr] [-v vbr] in.wav out.aac&lt;br /&gt;
&lt;br /&gt;
;-r &amp;lt;bitrate&amp;gt;:Bitrate in bits per seconds (for CBR). Default is 64000.&lt;br /&gt;
;-t &amp;lt;aot&amp;gt;:The [[#Audio Object Types|Audio Object Type]]. Default is 2 (AAC-LC).&lt;br /&gt;
;-a &amp;lt;0,1&amp;gt;:Enable [[#Afterburner|&#039;&#039;Afterburner&#039;&#039;]]. 0=Disabled, 1=Enabled (recommended). Default is 1.&lt;br /&gt;
;-s &amp;lt;-1,0,1&amp;gt;:Spectral Band Replication (ELD AOT only). -1=Use ELD SBR auto configurator (default,recommended), 0=Disabled, 1=Enabled. Default is -1.&lt;br /&gt;
;-v &amp;lt;0-5&amp;gt;:[[#Bitrate Modes|Bitrate mode]]. Only 0-5 used. 0=CBR @ value given in -r. Default is 0.&lt;br /&gt;
&lt;br /&gt;
== fdkaac ==&lt;br /&gt;
&lt;br /&gt;
fdkaac is a command-line interface encoding and metadata utility. It is maintained by nu774 and is licensed under the zlib license. It employs libfdk-aac for encoding.&lt;br /&gt;
&lt;br /&gt;
See [[#Software Versions|Software Versions]] for latest release information.&lt;br /&gt;
&lt;br /&gt;
=== Examples ===&lt;br /&gt;
&lt;br /&gt;
 # Convert a FLAC file to m4a using fdkaac configured for AAC-LC at about 50kbps/channel (100kbps for stereo).&lt;br /&gt;
 flac -s -d -c song.flac | fdkaac --ignorelength --profile 2 --bitrate-mode 3 -o song.m4a -&lt;br /&gt;
&lt;br /&gt;
=== Usage ===&lt;br /&gt;
&lt;br /&gt;
 fdkaac [options] input_file&lt;br /&gt;
&lt;br /&gt;
;-p, --profile &amp;lt;n&amp;gt; :The [[#Audio Object Types|Audio Object Type]].&lt;br /&gt;
;-b, --bitrate &amp;lt;n&amp;gt; :Bitrate in bits per seconds (for CBR)&lt;br /&gt;
;-m, --bitrate-mode &amp;lt;n&amp;gt; :[[#Bitrate Modes|Bitrate mode]]. Only 0-5 used. 0=CBR.&lt;br /&gt;
;-w, --bandwidth &amp;lt;n&amp;gt; :Frequency [[#Bandwidth|bandwidth]] in Hz (AAC LC only)&lt;br /&gt;
;-a, --afterburner &amp;lt;n&amp;gt;:Enable [[#Afterburner|&#039;&#039;Afterburner&#039;&#039;]]. 0=Disabled, 1=Enabled (recommended). Default is 1.&lt;br /&gt;
;-L, --lowdelay-sbr &amp;lt;-1,0,1&amp;gt;:Configure SBR activity on AAC ELD&lt;br /&gt;
:{| class=wikitable&lt;br /&gt;
| -1 || Use ELD SBR auto configurator&lt;br /&gt;
|-&lt;br /&gt;
|  0 || Disable SBR on ELD (default)&lt;br /&gt;
|-&lt;br /&gt;
|  1 ||  Enable SBR on ELD&lt;br /&gt;
|}&lt;br /&gt;
; -s, --sbr-ratio &amp;lt;0,1,2&amp;gt; :Controls activation of downsampled SBR&lt;br /&gt;
:{| class=wikitable&lt;br /&gt;
| 0 || Use lib default (default)&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Downsampled SBR (default for ELD+SBR)&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Dual-rate SBR (default for HE-AAC)&lt;br /&gt;
|}&lt;br /&gt;
;-f, --transport-format &amp;lt;n&amp;gt; :Transport format&lt;br /&gt;
:{| class=wikitable&lt;br /&gt;
| 0 || RAW (default, muxed into M4A)&lt;br /&gt;
|-&lt;br /&gt;
| 1 || ADIF&lt;br /&gt;
|-&lt;br /&gt;
| 2 || ADTS&lt;br /&gt;
|-&lt;br /&gt;
| 6 || LATM MCP=1&lt;br /&gt;
|-&lt;br /&gt;
| 7 || LATM MCP=0&lt;br /&gt;
|-&lt;br /&gt;
|10 || LOAS/LATM (LATM within LOAS)&lt;br /&gt;
|}&lt;br /&gt;
;-C, --adts-crc-check : Add CRC protection on ADTS header&lt;br /&gt;
;-h, --header-period &amp;lt;n&amp;gt; : StreamMuxConfig/PCE repetition period in transport layer&lt;br /&gt;
;-o &amp;lt;filename&amp;gt; : Output filename&lt;br /&gt;
;-G, --gapless-mode &amp;lt;n&amp;gt; : Encoder delay signaling for gapless playback&lt;br /&gt;
:{| class=wikitable&lt;br /&gt;
| 0 || iTunSMPB (default)&lt;br /&gt;
|-&lt;br /&gt;
| 1 || ISO standard (edts + sgpd)&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Both&lt;br /&gt;
|}&lt;br /&gt;
;--include-sbr-delay : Count SBR decoder delay in encoder delay. This is not iTunes compatible, but is default behavior of FDK library.&lt;br /&gt;
;-I, --ignorelength : Ignore length of WAV header&lt;br /&gt;
;-S, --silent : Don&#039;t print progress messages&lt;br /&gt;
;--moov-before-mdat : Place moov box before mdat box on m4a output&lt;br /&gt;
&lt;br /&gt;
Options for raw (headerless) input:&lt;br /&gt;
;-R, --raw: Treat input as raw (by default WAV is assumed)&lt;br /&gt;
;--raw-channels &amp;lt;n&amp;gt; : Number of channels (default: 2)&lt;br /&gt;
;--raw-rate     &amp;lt;n&amp;gt; : Sample rate (default: 44100)&lt;br /&gt;
;--raw-format   &amp;lt;spec&amp;gt; : Sample format, default is &amp;quot;S16L&amp;quot;. Spec is as follows:&lt;br /&gt;
:{|&lt;br /&gt;
|	1st char || S(igned), U(nsigned), or F(loat)&lt;br /&gt;
|-&lt;br /&gt;
|	2nd part ||  bits per channel&lt;br /&gt;
|-&lt;br /&gt;
|	Last char || L(ittle) or B(ig)&lt;br /&gt;
|}&lt;br /&gt;
:Last char can be omitted, in which case L is assumed. Spec is case insensitive, therefore &amp;quot;u16b&amp;quot; is same as &amp;quot;U16B&amp;quot;.&lt;br /&gt;
:Up to 32-bit integer or 64-bit floating point format is supported as input. The FDK library, however, is [[#Sample Format|implemented based on fixed point math and onlysupports 16-bit integer PCM]]. Therefore, be wary of clipping. You might want to dither/noise shape beforehand when your input has higher resolution.&lt;br /&gt;
&lt;br /&gt;
Tagging options:&lt;br /&gt;
;--tag &amp;lt;fcc&amp;gt;:&amp;lt;value&amp;gt;: Set iTunes predefined tag with four char code. See [https://code.google.com/p/mp4v2/wiki/iTunesMetadata iTunes Metadata].&lt;br /&gt;
;--tag-from-file &amp;lt;fcc&amp;gt;&amp;lt;nowiki&amp;gt;:&amp;lt;/nowiki&amp;gt;&amp;lt;filename&amp;gt; : Same as above, but value is read from file.&lt;br /&gt;
;--long-tag &amp;lt;name&amp;gt;&amp;lt;nowiki&amp;gt;:&amp;lt;/nowiki&amp;gt;&amp;lt;value&amp;gt; : Set arbitrary tag as iTunes custom metadata.&lt;br /&gt;
;--tag-from-json &amp;lt;filename[?dot_notation]&amp;gt;&lt;br /&gt;
:  Read tags from JSON. By default, tags are assumed to be direct children of the root object(dictionary). Optionally, position of the dictionary that contains tags can be specified with dotted notation.&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! Option/Usage !! MP4 Block Modified !!lass=&amp;quot;unsortable&amp;quot;| Comment&lt;br /&gt;
|-&lt;br /&gt;
| --title &amp;lt;string&amp;gt; || ©nam &lt;br /&gt;
|-&lt;br /&gt;
| --artist &amp;lt;string&amp;gt; || ©ART&lt;br /&gt;
|-&lt;br /&gt;
| --album &amp;lt;string&amp;gt; || ©alb &lt;br /&gt;
|-&lt;br /&gt;
| --genre &amp;lt;string&amp;gt; || ©gen || Appears to always store the string the &amp;quot;user-defined&amp;quot; &#039;&#039;&#039;©gen&#039;&#039;&#039; even if there is an ID3 genre id that could be used with the &#039;&#039;&#039;gnre&#039;&#039;&#039; block.&lt;br /&gt;
|-&lt;br /&gt;
| --date &amp;lt;string&amp;gt; || ©day || YYYY[-MM[-DD]] format&lt;br /&gt;
|-&lt;br /&gt;
| --composer &amp;lt;string&amp;gt; || ©wrt&lt;br /&gt;
|-&lt;br /&gt;
| --grouping &amp;lt;string&amp;gt; || ©grp&lt;br /&gt;
|-&lt;br /&gt;
| --comment &amp;lt;string&amp;gt; || ©cmt&lt;br /&gt;
|-&lt;br /&gt;
| --album-artist &amp;lt;string&amp;gt; || aART&lt;br /&gt;
|-&lt;br /&gt;
| --track &amp;lt;number[/total]&amp;gt; || trkn || Block stores both track and totaltracks in one binary value &lt;br /&gt;
|-&lt;br /&gt;
| --disk &amp;lt;number[/total]&amp;gt; || disk || Block stores both disc and totaldiscs in one binary value &lt;br /&gt;
|-&lt;br /&gt;
| --tempo &amp;lt;n&amp;gt; || tmpo || Beats per minute, stored as a 16-bit integer &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;br /&gt;
*[https://github.com/nu774/fdkaac Source code]&lt;br /&gt;
*[https://launchpad.net/~mc3man/+archive/ubuntu/fdkaac-encoder Ubuntu PPA]&lt;br /&gt;
&lt;br /&gt;
== FFmpeg ==&lt;br /&gt;
libfdk-aac can be used with FFmpeg, but requires a custom build of FFmpeg. FFmpeg provides significant [https://trac.ffmpeg.org/wiki/Encode/AAC#fdk_aac documentation for using libfdk_aac] in the FFmpeg wiki.&lt;br /&gt;
&lt;br /&gt;
=== Usage/Examples ===&lt;br /&gt;
&lt;br /&gt;
CBR mode:&lt;br /&gt;
 ffmpeg -i &amp;lt;input&amp;gt; -c:a libfdk_aac -b:a 128k &amp;lt;output&amp;gt;&lt;br /&gt;
&lt;br /&gt;
VBR mode:&lt;br /&gt;
 ffmpeg -i &amp;lt;input&amp;gt; -c:a libfdk_aac -vbr 3 &amp;lt;output&amp;gt;&lt;br /&gt;
;-afterburner:Enable [[#Afterburner|&#039;&#039;Afterburner&#039;&#039;]]. 0=Disabled, 1=Enabled (recommended). Default is 1.&lt;br /&gt;
;-profile&amp;lt;nowiki&amp;gt;:&amp;lt;/nowiki&amp;gt;a:The [[#Audio Object Types|Audio Object Type]]. Value is one of LC, HE-AAC, HE-AACv2, LD, or ELD. Default is LC.&lt;br /&gt;
;-b&amp;lt;nowiki&amp;gt;:&amp;lt;/nowiki&amp;gt;a:CBR bitrate&lt;br /&gt;
;-vbr:Values 1-5. See [[#Bitrate Modes|Bitrate mode]].&lt;br /&gt;
;--cutoff:The low-pass filter cut-off in Hz. See [[#Bandwidth|Bandwidth]] for default values. FFmpeg maximum value is 20000.&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/FFmpeg/FFmpeg/blob/master/libavcodec/libfdk-aacenc.c libfdk-aacenc.c] in FFmpeg source tree&lt;br /&gt;
* [https://github.com/FFmpeg/FFmpeg/blob/master/libavcodec/libfdk-aacdec.c libfdk-aacdec.c] in FFmpeg source tree&lt;br /&gt;
&lt;br /&gt;
== Libav/avconv ==&lt;br /&gt;
libfdk-aac can be used with Libav&#039;s avconv, but requires a custom build of avconv with &amp;quot;--enable-libfdk-aac&amp;quot; passed to configure. See [https://wiki.libav.org/Encoding/aac Libav AAC encoding].&lt;br /&gt;
&lt;br /&gt;
=== Usage ===&lt;br /&gt;
&lt;br /&gt;
CBR mode:&lt;br /&gt;
 avconv -i &amp;lt;input&amp;gt; -c:a libfdk_aac -b:a &amp;lt;bitrate&amp;gt; -afterburner 1 &amp;lt;output&amp;gt;&lt;br /&gt;
&lt;br /&gt;
VBR mode:&lt;br /&gt;
 avconv -i &amp;lt;input&amp;gt; -c:a libfdk_aac -flags +qscale -global_quality [1-5] -afterburner 1 &amp;lt;output&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;-afterburner:See &#039;&#039;[[#Afterburner|afterburner]]&#039;&#039;.&lt;br /&gt;
;-global_quality:Values 1-5. See [[#Bitrate Modes|Bitrate mode]].&lt;br /&gt;
&lt;br /&gt;
=== FLAC to M4A example with quirks ===&lt;br /&gt;
&lt;br /&gt;
Using a FLAC example with 24-bit/96kHz 5.1 channel audio, and embedded album art to demonstrate workarounds for some quirks/bugs. The [http://www.diatonis.com/downloads/diatonis_dark-edges_02_rock_flac_6-chan_9624.zip sample used] is from the [http://www.diatonis.com/surround_sound_music.html Diatonis Free Surround Sound Music] page. The track used is titled &amp;quot;Rock&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
 avconv -i diatonis-rock.flac -vn -sample_fmt s16 -ar 48000 -c:a libfdk_aac -flags +qscale -global_quality 5 diatonis-rock.m4a&lt;br /&gt;
&lt;br /&gt;
;-global_quality 5:Use [[#Bitrate Modes|VBR Mode 5]].&lt;br /&gt;
;-vn:Means drop all video. The FLAC source has embedded album art that can&#039;t be handled by avconv in this case. Libav apparently doesn&#039;t know how to embed cover art in M4A. It tries to use it as an MP4 video stream. Using -c:v mjpeg, as can be done with MP3, doesn&#039;t work either. See [[Nero AAC#NeroAacTag|NeroAacTag]] for a tool that can easily add M4A album art.&lt;br /&gt;
;-sample_fmt s16 -ar 48000:The FLAC source&#039;s 96kHz sample rate combined with VBR mode 5 triggers the [[#GetInvInt_table_limit|GetInvInt table limit]] bug in libfdk_aac 0.1.3 and earlier. These options resample the audio before sending it to the FDK encoder, to avoid the crash.&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;br /&gt;
* [https://git.libav.org/?p=libav.git;a=blob;f=libavcodec/libfdk-aacenc.c libfdk-aacenc.c] in Libav source tree&lt;br /&gt;
* [https://git.libav.org/?p=libav.git;a=blob;f=libavcodec/libfdk-aacdec.c libfdk-aacdec.c] in Libav source tree&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* [http://www.iis.fraunhofer.de/en/ff/amm/impl/fdkaaccodec.html Official web page]&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Fraunhofer_FDK_AAC Fraunhofer FDK AAC] at Wikipedia&lt;br /&gt;
* [http://www.hydrogenaud.io/forums/index.php?showtopic=95989 Release information HydrogenAudio forums]&lt;br /&gt;
* [https://android.googlesource.com/platform/external/aac/+/master/ FDK in Android source code]&lt;br /&gt;
* [https://github.com/mstorsjo/fdk-aac fdk-aac source] (github)&lt;br /&gt;
* [http://sourceforge.net/p/opencore-amr/fdk-aac/ci/master/tree/ fdk-aac source code] (sourceforge)&lt;/div&gt;</summary>
		<author><name>Artoria2e5</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=Fraunhofer_FDK_AAC&amp;diff=37298</id>
		<title>Fraunhofer FDK AAC</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=Fraunhofer_FDK_AAC&amp;diff=37298"/>
		<updated>2023-08-12T06:30:49Z</updated>

		<summary type="html">&lt;p&gt;Artoria2e5: /* FDK License */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:Encoder/Decoder]]&lt;br /&gt;
{{aac-encoders}}&lt;br /&gt;
The &#039;&#039;&#039;Fraunhofer FDK AAC&#039;&#039;&#039; is a high-quality open-source [[AAC]] [[codec|encoder]] library developed by [[Fraunhofer|Fraunhofer IIS]]. It was officially released for Android, but has been ported to other platforms.&lt;br /&gt;
&lt;br /&gt;
The licensed Fraunhofer AAC codec included in Winamp (often called [[Fraunhofer#Fraunhofer IIS Codecs|FhG AAC]]) is not the same as the FDK AAC codec. While they use the same approach, they are developed by different teams, and target different platforms. The FDK library is built around fixed-point math and originally targeted low-delay communication on mobile devices.&lt;br /&gt;
&lt;br /&gt;
FDK AAC is considered a favorable alternative to the [[Nero AAC]] codec, which is no longer developed.&lt;br /&gt;
&lt;br /&gt;
== Software Versions ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Package/Component !! Version !! Developer/Maintainer !! License !! Description&lt;br /&gt;
|-&lt;br /&gt;
| FDK Encoder&lt;br /&gt;
| 4.0.0 &amp;lt;!-- AACENCODER_LIB_VL[0,1,2] in aacenc_lib.cpp --&amp;gt; [https://android.googlesource.com/platform/external/aac/+/master/libAACenc/src/aacenc_lib.cpp]  &lt;br /&gt;
|rowspan=4| [[Fraunhofer|Fraunhofer IIS]]&lt;br /&gt;
|rowspan=4| [[#FDK License|FDK License]]&lt;br /&gt;
|rowspan=4| The FDK AAC library included in Android.&lt;br /&gt;
|-&lt;br /&gt;
| FDK SBR/PS Encoder&amp;lt;br /&amp;gt;(for HE &amp;amp; HEv2)&lt;br /&gt;
| 4.0.0 &amp;lt;!-- SBRENCODER_LIB_VL[0,1,2] in sbr_encoder.cpp --&amp;gt; [https://android.googlesource.com/platform/external/aac/+/master/libSBRenc/src/sbr_encoder.cpp]&lt;br /&gt;
|-&lt;br /&gt;
| FDK Decoder&lt;br /&gt;
| 3.0.0 [https://android.googlesource.com/platform/external/aac/+/master/libAACdec/src/aacdecoder_lib.cpp]&lt;br /&gt;
|-&lt;br /&gt;
| FDK SBR/PS Decoder&lt;br /&gt;
| 2.2.6 [https://android.googlesource.com/platform/external/aac/+/lollipop-release/libSBRdec/src/sbrdecoder.cpp]&lt;br /&gt;
|-&lt;br /&gt;
| [[#(lib)fdk-aac|fdk-aac]]&lt;br /&gt;
| 2.0.0 (2018-11-22)&amp;lt;br /&amp;gt; ([https://github.com/mstorsjo/fdk-aac/releases watch]) based on FDK AAC (4.0.0/3.0.0)  &amp;lt;br /&amp;gt; shared library version 2.0.0 &amp;lt;!-- in configure.ac --&amp;gt;&lt;br /&gt;
| Martin Storsjö/Opencore AMR project&lt;br /&gt;
|rowspan=2|[[#FDK License|FDK License]] with additions under [http://www.apache.org/licenses/LICENSE-2.0 Apache 2.0 license] &lt;br /&gt;
| The FDK AAC encoder and decoder as a portable library separate from Android.&lt;br /&gt;
|-&lt;br /&gt;
| fdk-aac (debian)&lt;br /&gt;
| 0.1.6-1 [https://tracker.debian.org/pkg/fdk-aac] &amp;lt;br /&amp;gt; libfdk-aac0 (shared library version 1.1.0)&lt;br /&gt;
| &lt;br /&gt;
| The Debian source package for fdk-aac. Includes libfdk-aac* and the [[#aac-enc|aac-enc]] encoding front end.&lt;br /&gt;
|-&lt;br /&gt;
| [[#fdkaac|fdkaac]]&lt;br /&gt;
| 1.0.0 (using libfdk-aac 0.1.6)&lt;br /&gt;
| nu774&lt;br /&gt;
| zlib&lt;br /&gt;
| An advanced front-end to the FDK AAC encoder using libfdk-aac.&lt;br /&gt;
|-&lt;br /&gt;
| [[#FFmpeg|FFmpeg]]/[[#Libav/avconv|Libav]] support&lt;br /&gt;
| Libav: [https://git.libav.org/?p=libav.git;a=blob;f=libavcodec/libfdk-aacenc.c encode], [https://git.libav.org/?p=libav.git;a=blob;f=libavcodec/libfdk-aacdec.c decode] &amp;lt;br /&amp;gt; FFmpeg: [https://github.com/FFmpeg/FFmpeg/blob/master/libavcodec/libfdk-aacenc.c encode], [https://github.com/FFmpeg/FFmpeg/blob/master/libavcodec/libfdk-aacdec.c decode]&lt;br /&gt;
| Martin Storsjö&lt;br /&gt;
| [http://www.isc.org/downloads/software-support-policy/isc-license/ ISC license]&lt;br /&gt;
| A wrapper for libfdk-aac that adds support to FFmpeg and Libav/avconv. It is included in both projects, and is the recommended AAC encoder for FFmpeg.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== FDK License ==&lt;br /&gt;
The license included by Fraunhofer in the FDK source code specifically allows distribution in source or binary forms, but does not license patented technologies described by the source code. It goes on to say &amp;quot;you may &#039;&#039;use&#039;&#039; this FDK AAC Codec software or modifications thereto only for purposes that are authorized by appropriate patent licenses&amp;quot;.&amp;lt;ref&amp;gt;[https://android.googlesource.com/platform/external/aac/+/master/NOTICE NOTICE file], fdkaac&amp;lt;/ref&amp;gt; As this governs &#039;&#039;use&#039;&#039;, it should not have anything to do with distribution. The Free Software Foundation (FSF) considers it fishy to have an invitation to purchase patent licenses in the text, but concedes that &amp;quot;any program is potentially threatened by patents&amp;quot;. Considering [[AAC#Patent situation|the patent terms]], all AAC software are indeed equally affected.&lt;br /&gt;
&lt;br /&gt;
This license puts a limitation on charging for software that includes the library, leading Debian to consider it non-free. Debian does not comment on the patent situation.&lt;br /&gt;
&lt;br /&gt;
The position of FFmpeg is that although the license is GPL-incompatible (and therefore nondistributable with GPL parts), it is acceptable to distribute the library with LGPL parts.&amp;lt;ref&amp;gt;&amp;lt;code&amp;gt;ffmpeg -license&amp;lt;/code&amp;gt; command output&amp;lt;/ref&amp;gt; FFmpeg [https://ffmpeg.org/legal.html does not care about patents]. (The AAC patent license covers both encoder &#039;&#039;and&#039;&#039; decoder, so using fdk_aac does not add patent violations to FFmpeg.)&lt;br /&gt;
&lt;br /&gt;
=== Free Software? ===&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
|-&lt;br /&gt;
! Party !! Classification !! Note&lt;br /&gt;
|-&lt;br /&gt;
| Debian || {{no|Non-free}} || [https://tracker.debian.org/pkg/fdk-aac][https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=694257]&lt;br /&gt;
|-&lt;br /&gt;
| Fedora/Red Hat || {{yes|Free}} || [https://fedoraproject.org/wiki/Licensing/FDK-AAC]&lt;br /&gt;
|-&lt;br /&gt;
| FSF || {{maybe|Free (but warns about patents)}} ||  [https://www.gnu.org/licenses/license-list.html#fdk]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Afterburner ==&lt;br /&gt;
&#039;&#039;Afterburner&#039;&#039; is &amp;quot;a type of analysis by synthesis algorithm which increases the audio quality but also the required processing power.&amp;quot; Fraunhofer recommends to always activate this feature.&lt;br /&gt;
&lt;br /&gt;
== Audio Object Types ==&lt;br /&gt;
The library supports the following MPEG-2/4 AOTs:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Object Type ID !! Audio Object Type !!  Description&lt;br /&gt;
|-&lt;br /&gt;
|2  ||	AAC-LC || &amp;quot;AAC Profile&amp;quot; MPEG-2 Low-complexity (LC) combined with MPEG-4 Perceptual Noise Substitution (PNS)&lt;br /&gt;
|-&lt;br /&gt;
|5  ||	HE-AAC || AAC LC + SBR (Spectral Band Replication)&lt;br /&gt;
|-&lt;br /&gt;
|29 ||	HE-AAC v2 || AAC LC + SBR + PS (Parametric Stereo)&lt;br /&gt;
|-&lt;br /&gt;
|23 ||	AAC-LD || &amp;quot;Low Delay Profile&amp;quot; used for real-time communication&lt;br /&gt;
|-&lt;br /&gt;
|39 ||	AAC-ELD || Enhanced Low Delay&lt;br /&gt;
|-&lt;br /&gt;
|129||  MPEG-2 AAC LC || &lt;br /&gt;
|-&lt;br /&gt;
|132||  MPEG-2 HE-AAC (SBR) ||&lt;br /&gt;
|-&lt;br /&gt;
|156||  MPEG-2 HE-AAC v2 (SBR+PS) ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Bitrate Modes ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! AACENC_BITRATEMODE !! Mode !! Stream Bitrate&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[Constant Bitrate]] (CBR) || As specified by AACENC_BITRATE&lt;br /&gt;
|-&lt;br /&gt;
| 1-5 || [[Variable Bitrate]] (VBR) || Calculated based on channel layout (See table below)&lt;br /&gt;
|-&lt;br /&gt;
|colspan=3|&amp;lt;!--- Don&#039;t really know how the modes below work, yet. --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 6 ||colspan=2| Fixed frame mode.&lt;br /&gt;
|-&lt;br /&gt;
| 7 ||colspan=2| Superframe mode.&lt;br /&gt;
|-&lt;br /&gt;
| 8 ||colspan=2| LD/ELD full bitreservoir for packet based transmission&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The bitrate limit for each variable bitrate mode. [https://android.googlesource.com/platform/external/aac/+/master/libAACenc/src/aacenc.cpp] HE and HEv2 will often end up with actual bitrates far below these limits.&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!rowspan=2|AACENC_BITRATEMODE &amp;lt;br /&amp;gt;(VBR Modes) !!rowspan=2|Mode !!colspan=2|Bitrate per channel (LC) !!rowspan=2|AOTs&lt;br /&gt;
|-&lt;br /&gt;
! Mono !! Stereo &amp;lt;sup&amp;gt;a&amp;lt;/sup&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1 || VBR || 32 kbps || 20 kbps || LC, HE, HEv2&lt;br /&gt;
|-&lt;br /&gt;
| 2 || VBR || 40 kbps || 32 kbps || LC, HE, HEv2&lt;br /&gt;
|-&lt;br /&gt;
| 3 || VBR || 56 kbps || 48 kbps || LC, HE, HEv2&lt;br /&gt;
|-&lt;br /&gt;
| 4 || VBR || 72 kbps || 64 kbps || LC&lt;br /&gt;
|-&lt;br /&gt;
| 5 || VBR || 112 kbps || 96 kbps || LC&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;sup&amp;gt;a&amp;lt;/sup&amp;gt; Note that a &amp;quot;stereo&amp;quot; channel is any that is [[Joint stereo|bonded with another channel]], as noted with a plus sign in the [[#Channel Layouts|channel layouts]] table.&lt;br /&gt;
&lt;br /&gt;
====Example Bitrate Calculations====&lt;br /&gt;
&lt;br /&gt;
{|class=wikitable&lt;br /&gt;
! Profile !! VBR Mode !! Channel layout !! Expected stream bitrate&lt;br /&gt;
|-&lt;br /&gt;
| LC || 3 || L+R || 2 &amp;quot;stereo&amp;quot; channels at 48kbps = 96kbps&lt;br /&gt;
|-&lt;br /&gt;
| LC || 3 || C, L+R || 1 &amp;quot;mono&amp;quot; center channel at 56 kbps and 2 &amp;quot;stereo&amp;quot; channels at 48kbps = 152kbps&lt;br /&gt;
|-&lt;br /&gt;
| LC || 4 || C, L+R, LS+RS, LFE || 1 &amp;quot;mono&amp;quot; center channel and 1 mono LFE channel each at 72kbps, and 4 &amp;quot;stereo&amp;quot; channels (2 sets of 2) each at 64kbps = 400kbps&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Bandwidth==&lt;br /&gt;
[[Image:FDK filter.png|400px|thumb|A spectrogram showing the effect of the FDK AAC low-pass filter.]]&lt;br /&gt;
The default bandwidth (or low-pass filter cutoff) for each [[#Bitrate Modes|bitrate mode]] will be the minimum of the appropriate value in the tables below or half the [[#Sample Rates|sample rate]]. This can be overridden, but the maximum value is 20000 Hz. [https://android.googlesource.com/platform/external/aac/+/master/libAACenc/src/bandwidth.cpp] &lt;br /&gt;
&lt;br /&gt;
The fdk-aac parameter is AACENC_BANDWIDTH. More information can be found in the official documentation, section 3.1 &#039;&#039;Bandwidth&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== HE-AAC/SBR ===&lt;br /&gt;
&lt;br /&gt;
The HE-AAC and HE-AACv2 profiles encode audio using AAC-LC at one half the sample rate, relying on [[Spectral Band Replication]] (SBR) to attempt reconstruction of the missing higher frequencies. The end result is an apparent full bandwidth transmission (as if no low-pass filter was applied), even though the actual AAC-LC encoded audio is only storing frequencies up to 1/4 the original sample rate. &lt;br /&gt;
&amp;lt;!--I haven&#039;t been able to confirm that the low-pass filter would still be applied in the case that 1/4 the sample rate was still higher. For example if an input stream sampled at 96kHz encoded using HE-AAC in VBR mode 2 would still have the 13kHz filter applied to the base AAC-LC data. It does appear that way, by looking at the code. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== VBR Modes ===&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! AACENC_BITRATEMODE !! Mono !! Two or More Channels&lt;br /&gt;
|-&lt;br /&gt;
| 1 ||colspan=2| 13050 Hz&lt;br /&gt;
|-&lt;br /&gt;
| 2 ||colspan=2| 13050 Hz&lt;br /&gt;
|-&lt;br /&gt;
| 3 ||colspan=2| 14260 Hz&lt;br /&gt;
|-&lt;br /&gt;
| 4 ||colspan=2| 15500 Hz&lt;br /&gt;
|-&lt;br /&gt;
| 5 ||colspan=2| Full range, no filter&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== CBR Mode ===&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! AOT/Sample Rates !! Bitrate&amp;lt;br /&amp;gt;per channel !! Mono !! Two or More Channels&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=8| LC / Any&lt;br /&gt;
| Below 12kbps || 3700 Hz || 5000 Hz&lt;br /&gt;
|-&lt;br /&gt;
| 12-20 kbps || 5000 Hz || 6400 Hz&lt;br /&gt;
|-&lt;br /&gt;
| 20-28 kbps || 6900 Hz || 9640 Hz&lt;br /&gt;
|- &lt;br /&gt;
| 28-40 kbps || 9600 Hz || 13050 Hz&lt;br /&gt;
|-&lt;br /&gt;
| 40-56 kbps || 12060 Hz || 14260 Hz&lt;br /&gt;
|-&lt;br /&gt;
| 56-72 kbps || 13950 Hz || 15500 Hz&lt;br /&gt;
|-&lt;br /&gt;
| 72-96 kpbs || 14200 Hz || 16120 Hz&lt;br /&gt;
|-&lt;br /&gt;
| 96kbps and above ||colspan=2| 17000 Hz&lt;br /&gt;
|-&lt;br /&gt;
|colspan=4|...&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=2| LD / 44100 Hz&lt;br /&gt;
| 56kbps || 11000 Hz || 12900 Hz&lt;br /&gt;
|-&lt;br /&gt;
| 64kbps || 14400 Hz || 15500 Hz&lt;br /&gt;
|-&lt;br /&gt;
|colspan=4|...&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Sample Format ==&lt;br /&gt;
&lt;br /&gt;
The FDK library is based on fixed-point math and only supports 16-bit integer PCM input.&lt;br /&gt;
&lt;br /&gt;
== Sample Rates ==&lt;br /&gt;
&lt;br /&gt;
FDK library officially supports sample rates for input of 8000, 11025, 12000, 16000, 22050, 24000, 32000, 44100, 48000, 64000, 88200, and 96000 Hz. &lt;br /&gt;
&lt;br /&gt;
See [[#GetInvInt table limit|Issues/GetInvInt table limit]] if experiencing crashes with high sample rates and VBR.&lt;br /&gt;
&lt;br /&gt;
Also see [[#Recommended Sampling Rate and Bitrate Combinations|Recommended Sampling Rate and Bitrate Combinations]].&lt;br /&gt;
&lt;br /&gt;
== Channel Layouts ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Channels !! Layout !! Mode !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 1 || C || MODE_1 || Mono&lt;br /&gt;
|-&lt;br /&gt;
| 2 || L+R || MODE_2 || Stereo&lt;br /&gt;
|-&lt;br /&gt;
| 3 || C, L+R || MODE_1_2 ||&lt;br /&gt;
|-&lt;br /&gt;
| 4 || C, L+R, Rear || MODE_1_2_1 || fdkaac calls it &amp;quot;C L R Cs&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 5 || C, L+R, LS+RS || MODE_1_2_2 || &lt;br /&gt;
|-&lt;br /&gt;
| 5.1 || C, L+R, LS+RS, LFE || MODE_1_2_2_1 ||&lt;br /&gt;
|-&lt;br /&gt;
| 7.1 || C, LC+RC, L+R, LS+RS, LFE || MODE_1_2_2_2_1 &amp;lt;br /&amp;gt; MODE_7_1_FRONT_CENTER ||&lt;br /&gt;
|-&lt;br /&gt;
| 7.1 (Rear) || C, L+R, LS+RS, Lrear+Rrear, LFE || MODE_7_1_REAR_SURROUND ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The plus sign (+) denotes &amp;quot;stereo&amp;quot; channels.&lt;br /&gt;
&lt;br /&gt;
== Issues ==&lt;br /&gt;
=== GetInvInt table limit ===&lt;br /&gt;
As of FDK version 3.4.12, not all combinations of audio object types, bitrate modes, channel layouts, and sample rates can be used together, due to a limited table of pre-computed values used by the encoder. &lt;br /&gt;
&lt;br /&gt;
For example, using 96kHz stereo input with the AAC-LC audio object type and bitrate mode 5 (VBR 96-112kbps/channel) will result in catastrophic failure: [https://github.com/mstorsjo/fdk-aac/issues/17] &lt;br /&gt;
 ./libFDK/include/fixpoint_math.h:459: FIXP_DBL GetInvInt(int): Assertion `(intValue &amp;gt; 0) &amp;amp;&amp;amp; (intValue &amp;lt; 50)&#039; failed.&lt;br /&gt;
 Aborted (core dumped)&lt;br /&gt;
&lt;br /&gt;
A recent (August 2014) patch to libfdk-aac fixes most of the previously unsupported combinations [https://github.com/mstorsjo/fdk-aac/commit/9a3234055adb1e18f80571925779503c8dec5251], and is expected to be included in the next official version of the FDK AAC library.&lt;br /&gt;
&lt;br /&gt;
See [[#Libav/avconv|Libav/avconv]] for a workaround.&lt;br /&gt;
&lt;br /&gt;
== Recommended Sampling Rate and Bitrate Combinations ==&lt;br /&gt;
&lt;br /&gt;
This table is from the documentation included in the FDK library source code. (PDF section 2.12 or source code: [https://android.googlesource.com/platform/external/aac/+/master/libAACenc/include/aacenc_lib.h])&lt;br /&gt;
&lt;br /&gt;
The following table provides an overview of recommended encoder configuration parameters which [Fraunhofer] determined by virtue of numerous listening tests.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! [[#Audio Object Types|Audio Object Type]] !! Bit Rate Range&amp;lt;br /&amp;gt;[bit/s] !! Supported [[#Sampling Rates|Sampling Rates]]&amp;lt;br /&amp;gt;[kHz] !! Recommended Sampling Rate&amp;lt;br /&amp;gt;[kHz] !! Number of&amp;lt;br /&amp;gt;[[#Channel Layouts|Channels]]&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;4&amp;quot;| [29] HE-AAC v2&amp;lt;br /&amp;gt;(AAC LC + SBR + PS)&lt;br /&gt;
| 8000 - 11999 || 22.05, 24.00 || 24.00 || 2&lt;br /&gt;
|-&lt;br /&gt;
| 12000 - 17999 || 32.00 || 32.00 || 2&lt;br /&gt;
|-&lt;br /&gt;
| 18000 - 39999 || 32.00, 44.10, 48.00 || 44.10 || 2&lt;br /&gt;
|-&lt;br /&gt;
| 40000 - 56000 || 32.00, 44.10, 48.00 || 48.00 || 2&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;7&amp;quot;| [5] HE-AAC&amp;lt;br /&amp;gt;(AAC LC + SBR)&lt;br /&gt;
| 8000 - 11999 || 22.05, 24.00 || 24.00 || 1&lt;br /&gt;
|-&lt;br /&gt;
| 12000 - 17999 || 32.00 || 32.00 || 1&lt;br /&gt;
|-&lt;br /&gt;
| 18000 - 39999 || 32.00, 44.10, 48.00 || 44.10 || 1&lt;br /&gt;
|-&lt;br /&gt;
| 40000 - 56000 || 32.00, 44.10, 48.00 || 48.00 || 1&lt;br /&gt;
|-&lt;br /&gt;
| 16000 - 27999 || 32.00, 44.10, 48.00 || 32.00 || 2&lt;br /&gt;
|-&lt;br /&gt;
| 28000 - 63999 || 32.00, 44.10, 48.00 || 44.10 || 2&lt;br /&gt;
|-&lt;br /&gt;
| 64000 - 128000 || 32.00, 44.10, 48.00 || 48.00 || 2&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;4&amp;quot;| [5] HE-AAC&amp;lt;br /&amp;gt;(AAC LC + SBR)&lt;br /&gt;
| 64000 - 69999 || 32.00, 44.10, 48.00 || 32.00 || 5, 5.1&lt;br /&gt;
|-&lt;br /&gt;
| 70000 - 159999 || 32.00, 44.10, 48.00 || 44.10 || 5, 5.1&lt;br /&gt;
|-&lt;br /&gt;
| 160000 - 245999 || 32.00, 44.10, 48.00 || 48.00 || 5&lt;br /&gt;
|-&lt;br /&gt;
| 160000 - 265999 || 32.00, 44.10, 48.00 || 48.00 || 5.1&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;6&amp;quot;| [2] AAC LC&lt;br /&gt;
| 8000 - 15999 || 11.025, 12.00, 16.00 || 12.00 || 1&lt;br /&gt;
|-&lt;br /&gt;
| 16000 - 23999 || 16.00 || 16.00 || 1&lt;br /&gt;
|-&lt;br /&gt;
| 24000 - 31999 || 16.00, 22.05, 24.00 || 24.00 || 1&lt;br /&gt;
|-&lt;br /&gt;
| 32000 - 55999 || 32.00 || 32.00 || 1&lt;br /&gt;
|-&lt;br /&gt;
| 56000 - 160000 || 32.00, 44.10, 48.00 || 44.10 || 1&lt;br /&gt;
|-&lt;br /&gt;
| 160001 - 288000 || 48.00 || 48.00 || 1&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;7&amp;quot;| [2] AAC LC&lt;br /&gt;
| 16000 - 23999 || 11.025, 12.00, 16.00 || 12.00 || 2&lt;br /&gt;
|-&lt;br /&gt;
| 24000 - 31999 || 16.00 || 16.00 || 2&lt;br /&gt;
|-&lt;br /&gt;
| 32000 - 39999 || 16.00, 22.05, 24.00 || 22.05 || 2&lt;br /&gt;
|-&lt;br /&gt;
| 40000 - 95999 || 32.00 || 32.00 || 2&lt;br /&gt;
|-&lt;br /&gt;
| 96000 - 111999 || 32.00, 44.10, 48.00 || 32.00 || 2&lt;br /&gt;
|-&lt;br /&gt;
| 112000 - 320001 || 32.00, 44.10, 48.00 || 44.10 || 2&lt;br /&gt;
|-&lt;br /&gt;
| 320002 - 576000 || 48.00 || 48.00 || 2&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;3&amp;quot;| [2] AAC LC&lt;br /&gt;
| 160000 - 239999 || 32.00 || 32.00 || 5, 5.1 &lt;br /&gt;
|-&lt;br /&gt;
| 240000 - 279999 || 32.00, 44.10, 48.00 || 32.00 || 5, 5.1&lt;br /&gt;
|-&lt;br /&gt;
| 280000 - 800000 || 32.00, 44.10, 48.00 || 44.10 || 5, 5.1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== (lib)fdk-aac ==&lt;br /&gt;
&lt;br /&gt;
Martin Storsjö (as the opencore-amr project) maintains a source code distribution of the Fraunhofer library as fdk-aac. It is distributed in a binary form in Debian (and Debian derivatives like Ubuntu) as the package fdk-aac, which includes the libfdk-aac* and [[#aac-enc|aac-enc]] binaries.&lt;br /&gt;
&lt;br /&gt;
See [[#Software Versions|Software Versions]] for latest release information.&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;br /&gt;
* [https://github.com/mstorsjo/fdk-aac Source] at Github&lt;br /&gt;
* [https://tracker.debian.org/pkg/fdk-aac fdk-aac] at Debian package tracker. Package includes libfdk-aac* and the aac-enc binary.&lt;br /&gt;
&lt;br /&gt;
== aac-enc ==&lt;br /&gt;
&lt;br /&gt;
fdk-aac includes a very, very basic command-line interface encoding utility, called aac-enc, that can encode to AAC from WAV.&lt;br /&gt;
&lt;br /&gt;
=== Usage ===&lt;br /&gt;
 aac-enc [-r bitrate] [-t aot] [-a afterburner] [-s sbr] [-v vbr] in.wav out.aac&lt;br /&gt;
&lt;br /&gt;
;-r &amp;lt;bitrate&amp;gt;:Bitrate in bits per seconds (for CBR). Default is 64000.&lt;br /&gt;
;-t &amp;lt;aot&amp;gt;:The [[#Audio Object Types|Audio Object Type]]. Default is 2 (AAC-LC).&lt;br /&gt;
;-a &amp;lt;0,1&amp;gt;:Enable [[#Afterburner|&#039;&#039;Afterburner&#039;&#039;]]. 0=Disabled, 1=Enabled (recommended). Default is 1.&lt;br /&gt;
;-s &amp;lt;-1,0,1&amp;gt;:Spectral Band Replication (ELD AOT only). -1=Use ELD SBR auto configurator (default,recommended), 0=Disabled, 1=Enabled. Default is -1.&lt;br /&gt;
;-v &amp;lt;0-5&amp;gt;:[[#Bitrate Modes|Bitrate mode]]. Only 0-5 used. 0=CBR @ value given in -r. Default is 0.&lt;br /&gt;
&lt;br /&gt;
== fdkaac ==&lt;br /&gt;
&lt;br /&gt;
fdkaac is a command-line interface encoding and metadata utility. It is maintained by nu774 and is licensed under the zlib license. It employs libfdk-aac for encoding.&lt;br /&gt;
&lt;br /&gt;
See [[#Software Versions|Software Versions]] for latest release information.&lt;br /&gt;
&lt;br /&gt;
=== Examples ===&lt;br /&gt;
&lt;br /&gt;
 # Convert a FLAC file to m4a using fdkaac configured for AAC-LC at about 50kbps/channel (100kbps for stereo).&lt;br /&gt;
 flac -s -d -c song.flac | fdkaac --ignorelength --profile 2 --bitrate-mode 3 -o song.m4a -&lt;br /&gt;
&lt;br /&gt;
=== Usage ===&lt;br /&gt;
&lt;br /&gt;
 fdkaac [options] input_file&lt;br /&gt;
&lt;br /&gt;
;-p, --profile &amp;lt;n&amp;gt; :The [[#Audio Object Types|Audio Object Type]].&lt;br /&gt;
;-b, --bitrate &amp;lt;n&amp;gt; :Bitrate in bits per seconds (for CBR)&lt;br /&gt;
;-m, --bitrate-mode &amp;lt;n&amp;gt; :[[#Bitrate Modes|Bitrate mode]]. Only 0-5 used. 0=CBR.&lt;br /&gt;
;-w, --bandwidth &amp;lt;n&amp;gt; :Frequency [[#Bandwidth|bandwidth]] in Hz (AAC LC only)&lt;br /&gt;
;-a, --afterburner &amp;lt;n&amp;gt;:Enable [[#Afterburner|&#039;&#039;Afterburner&#039;&#039;]]. 0=Disabled, 1=Enabled (recommended). Default is 1.&lt;br /&gt;
;-L, --lowdelay-sbr &amp;lt;-1,0,1&amp;gt;:Configure SBR activity on AAC ELD&lt;br /&gt;
:{| class=wikitable&lt;br /&gt;
| -1 || Use ELD SBR auto configurator&lt;br /&gt;
|-&lt;br /&gt;
|  0 || Disable SBR on ELD (default)&lt;br /&gt;
|-&lt;br /&gt;
|  1 ||  Enable SBR on ELD&lt;br /&gt;
|}&lt;br /&gt;
; -s, --sbr-ratio &amp;lt;0,1,2&amp;gt; :Controls activation of downsampled SBR&lt;br /&gt;
:{| class=wikitable&lt;br /&gt;
| 0 || Use lib default (default)&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Downsampled SBR (default for ELD+SBR)&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Dual-rate SBR (default for HE-AAC)&lt;br /&gt;
|}&lt;br /&gt;
;-f, --transport-format &amp;lt;n&amp;gt; :Transport format&lt;br /&gt;
:{| class=wikitable&lt;br /&gt;
| 0 || RAW (default, muxed into M4A)&lt;br /&gt;
|-&lt;br /&gt;
| 1 || ADIF&lt;br /&gt;
|-&lt;br /&gt;
| 2 || ADTS&lt;br /&gt;
|-&lt;br /&gt;
| 6 || LATM MCP=1&lt;br /&gt;
|-&lt;br /&gt;
| 7 || LATM MCP=0&lt;br /&gt;
|-&lt;br /&gt;
|10 || LOAS/LATM (LATM within LOAS)&lt;br /&gt;
|}&lt;br /&gt;
;-C, --adts-crc-check : Add CRC protection on ADTS header&lt;br /&gt;
;-h, --header-period &amp;lt;n&amp;gt; : StreamMuxConfig/PCE repetition period in transport layer&lt;br /&gt;
;-o &amp;lt;filename&amp;gt; : Output filename&lt;br /&gt;
;-G, --gapless-mode &amp;lt;n&amp;gt; : Encoder delay signaling for gapless playback&lt;br /&gt;
:{| class=wikitable&lt;br /&gt;
| 0 || iTunSMPB (default)&lt;br /&gt;
|-&lt;br /&gt;
| 1 || ISO standard (edts + sgpd)&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Both&lt;br /&gt;
|}&lt;br /&gt;
;--include-sbr-delay : Count SBR decoder delay in encoder delay. This is not iTunes compatible, but is default behavior of FDK library.&lt;br /&gt;
;-I, --ignorelength : Ignore length of WAV header&lt;br /&gt;
;-S, --silent : Don&#039;t print progress messages&lt;br /&gt;
;--moov-before-mdat : Place moov box before mdat box on m4a output&lt;br /&gt;
&lt;br /&gt;
Options for raw (headerless) input:&lt;br /&gt;
;-R, --raw: Treat input as raw (by default WAV is assumed)&lt;br /&gt;
;--raw-channels &amp;lt;n&amp;gt; : Number of channels (default: 2)&lt;br /&gt;
;--raw-rate     &amp;lt;n&amp;gt; : Sample rate (default: 44100)&lt;br /&gt;
;--raw-format   &amp;lt;spec&amp;gt; : Sample format, default is &amp;quot;S16L&amp;quot;. Spec is as follows:&lt;br /&gt;
:{|&lt;br /&gt;
|	1st char || S(igned), U(nsigned), or F(loat)&lt;br /&gt;
|-&lt;br /&gt;
|	2nd part ||  bits per channel&lt;br /&gt;
|-&lt;br /&gt;
|	Last char || L(ittle) or B(ig)&lt;br /&gt;
|}&lt;br /&gt;
:Last char can be omitted, in which case L is assumed. Spec is case insensitive, therefore &amp;quot;u16b&amp;quot; is same as &amp;quot;U16B&amp;quot;.&lt;br /&gt;
:Up to 32-bit integer or 64-bit floating point format is supported as input. The FDK library, however, is [[#Sample Format|implemented based on fixed point math and onlysupports 16-bit integer PCM]]. Therefore, be wary of clipping. You might want to dither/noise shape beforehand when your input has higher resolution.&lt;br /&gt;
&lt;br /&gt;
Tagging options:&lt;br /&gt;
;--tag &amp;lt;fcc&amp;gt;:&amp;lt;value&amp;gt;: Set iTunes predefined tag with four char code. See [https://code.google.com/p/mp4v2/wiki/iTunesMetadata iTunes Metadata].&lt;br /&gt;
;--tag-from-file &amp;lt;fcc&amp;gt;&amp;lt;nowiki&amp;gt;:&amp;lt;/nowiki&amp;gt;&amp;lt;filename&amp;gt; : Same as above, but value is read from file.&lt;br /&gt;
;--long-tag &amp;lt;name&amp;gt;&amp;lt;nowiki&amp;gt;:&amp;lt;/nowiki&amp;gt;&amp;lt;value&amp;gt; : Set arbitrary tag as iTunes custom metadata.&lt;br /&gt;
;--tag-from-json &amp;lt;filename[?dot_notation]&amp;gt;&lt;br /&gt;
:  Read tags from JSON. By default, tags are assumed to be direct children of the root object(dictionary). Optionally, position of the dictionary that contains tags can be specified with dotted notation.&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! Option/Usage !! MP4 Block Modified !!lass=&amp;quot;unsortable&amp;quot;| Comment&lt;br /&gt;
|-&lt;br /&gt;
| --title &amp;lt;string&amp;gt; || ©nam &lt;br /&gt;
|-&lt;br /&gt;
| --artist &amp;lt;string&amp;gt; || ©ART&lt;br /&gt;
|-&lt;br /&gt;
| --album &amp;lt;string&amp;gt; || ©alb &lt;br /&gt;
|-&lt;br /&gt;
| --genre &amp;lt;string&amp;gt; || ©gen || Appears to always store the string the &amp;quot;user-defined&amp;quot; &#039;&#039;&#039;©gen&#039;&#039;&#039; even if there is an ID3 genre id that could be used with the &#039;&#039;&#039;gnre&#039;&#039;&#039; block.&lt;br /&gt;
|-&lt;br /&gt;
| --date &amp;lt;string&amp;gt; || ©day || YYYY[-MM[-DD]] format&lt;br /&gt;
|-&lt;br /&gt;
| --composer &amp;lt;string&amp;gt; || ©wrt&lt;br /&gt;
|-&lt;br /&gt;
| --grouping &amp;lt;string&amp;gt; || ©grp&lt;br /&gt;
|-&lt;br /&gt;
| --comment &amp;lt;string&amp;gt; || ©cmt&lt;br /&gt;
|-&lt;br /&gt;
| --album-artist &amp;lt;string&amp;gt; || aART&lt;br /&gt;
|-&lt;br /&gt;
| --track &amp;lt;number[/total]&amp;gt; || trkn || Block stores both track and totaltracks in one binary value &lt;br /&gt;
|-&lt;br /&gt;
| --disk &amp;lt;number[/total]&amp;gt; || disk || Block stores both disc and totaldiscs in one binary value &lt;br /&gt;
|-&lt;br /&gt;
| --tempo &amp;lt;n&amp;gt; || tmpo || Beats per minute, stored as a 16-bit integer &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;br /&gt;
*[https://github.com/nu774/fdkaac Source code]&lt;br /&gt;
*[https://launchpad.net/~mc3man/+archive/ubuntu/fdkaac-encoder Ubuntu PPA]&lt;br /&gt;
&lt;br /&gt;
== FFmpeg ==&lt;br /&gt;
libfdk-aac can be used with FFmpeg, but requires a custom build of FFmpeg. FFmpeg provides significant [https://trac.ffmpeg.org/wiki/Encode/AAC#fdk_aac documentation for using libfdk_aac] in the FFmpeg wiki.&lt;br /&gt;
&lt;br /&gt;
=== Usage/Examples ===&lt;br /&gt;
&lt;br /&gt;
CBR mode:&lt;br /&gt;
 ffmpeg -i &amp;lt;input&amp;gt; -c:a libfdk_aac -b:a 128k &amp;lt;output&amp;gt;&lt;br /&gt;
&lt;br /&gt;
VBR mode:&lt;br /&gt;
 ffmpeg -i &amp;lt;input&amp;gt; -c:a libfdk_aac -vbr 3 &amp;lt;output&amp;gt;&lt;br /&gt;
;-afterburner:Enable [[#Afterburner|&#039;&#039;Afterburner&#039;&#039;]]. 0=Disabled, 1=Enabled (recommended). Default is 1.&lt;br /&gt;
;-profile&amp;lt;nowiki&amp;gt;:&amp;lt;/nowiki&amp;gt;a:The [[#Audio Object Types|Audio Object Type]]. Value is one of LC, HE-AAC, HE-AACv2, LD, or ELD. Default is LC.&lt;br /&gt;
;-b&amp;lt;nowiki&amp;gt;:&amp;lt;/nowiki&amp;gt;a:CBR bitrate&lt;br /&gt;
;-vbr:Values 1-5. See [[#Bitrate Modes|Bitrate mode]].&lt;br /&gt;
;--cutoff:The low-pass filter cut-off in Hz. See [[#Bandwidth|Bandwidth]] for default values. FFmpeg maximum value is 20000.&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/FFmpeg/FFmpeg/blob/master/libavcodec/libfdk-aacenc.c libfdk-aacenc.c] in FFmpeg source tree&lt;br /&gt;
* [https://github.com/FFmpeg/FFmpeg/blob/master/libavcodec/libfdk-aacdec.c libfdk-aacdec.c] in FFmpeg source tree&lt;br /&gt;
&lt;br /&gt;
== Libav/avconv ==&lt;br /&gt;
libfdk-aac can be used with Libav&#039;s avconv, but requires a custom build of avconv with &amp;quot;--enable-libfdk-aac&amp;quot; passed to configure. See [https://wiki.libav.org/Encoding/aac Libav AAC encoding].&lt;br /&gt;
&lt;br /&gt;
=== Usage ===&lt;br /&gt;
&lt;br /&gt;
CBR mode:&lt;br /&gt;
 avconv -i &amp;lt;input&amp;gt; -c:a libfdk_aac -b:a &amp;lt;bitrate&amp;gt; -afterburner 1 &amp;lt;output&amp;gt;&lt;br /&gt;
&lt;br /&gt;
VBR mode:&lt;br /&gt;
 avconv -i &amp;lt;input&amp;gt; -c:a libfdk_aac -flags +qscale -global_quality [1-5] -afterburner 1 &amp;lt;output&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;-afterburner:See &#039;&#039;[[#Afterburner|afterburner]]&#039;&#039;.&lt;br /&gt;
;-global_quality:Values 1-5. See [[#Bitrate Modes|Bitrate mode]].&lt;br /&gt;
&lt;br /&gt;
=== FLAC to M4A example with quirks ===&lt;br /&gt;
&lt;br /&gt;
Using a FLAC example with 24-bit/96kHz 5.1 channel audio, and embedded album art to demonstrate workarounds for some quirks/bugs. The [http://www.diatonis.com/downloads/diatonis_dark-edges_02_rock_flac_6-chan_9624.zip sample used] is from the [http://www.diatonis.com/surround_sound_music.html Diatonis Free Surround Sound Music] page. The track used is titled &amp;quot;Rock&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
 avconv -i diatonis-rock.flac -vn -sample_fmt s16 -ar 48000 -c:a libfdk_aac -flags +qscale -global_quality 5 diatonis-rock.m4a&lt;br /&gt;
&lt;br /&gt;
;-global_quality 5:Use [[#Bitrate Modes|VBR Mode 5]].&lt;br /&gt;
;-vn:Means drop all video. The FLAC source has embedded album art that can&#039;t be handled by avconv in this case. Libav apparently doesn&#039;t know how to embed cover art in M4A. It tries to use it as an MP4 video stream. Using -c:v mjpeg, as can be done with MP3, doesn&#039;t work either. See [[Nero AAC#NeroAacTag|NeroAacTag]] for a tool that can easily add M4A album art.&lt;br /&gt;
;-sample_fmt s16 -ar 48000:The FLAC source&#039;s 96kHz sample rate combined with VBR mode 5 triggers the [[#GetInvInt_table_limit|GetInvInt table limit]] bug in libfdk_aac 0.1.3 and earlier. These options resample the audio before sending it to the FDK encoder, to avoid the crash.&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;br /&gt;
* [https://git.libav.org/?p=libav.git;a=blob;f=libavcodec/libfdk-aacenc.c libfdk-aacenc.c] in Libav source tree&lt;br /&gt;
* [https://git.libav.org/?p=libav.git;a=blob;f=libavcodec/libfdk-aacdec.c libfdk-aacdec.c] in Libav source tree&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* [http://www.iis.fraunhofer.de/en/ff/amm/impl/fdkaaccodec.html Official web page]&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Fraunhofer_FDK_AAC Fraunhofer FDK AAC] at Wikipedia&lt;br /&gt;
* [http://www.hydrogenaud.io/forums/index.php?showtopic=95989 Release information HydrogenAudio forums]&lt;br /&gt;
* [https://android.googlesource.com/platform/external/aac/+/master/ FDK in Android source code]&lt;br /&gt;
* [https://github.com/mstorsjo/fdk-aac fdk-aac source] (github)&lt;br /&gt;
* [http://sourceforge.net/p/opencore-amr/fdk-aac/ci/master/tree/ fdk-aac source code] (sourceforge)&lt;/div&gt;</summary>
		<author><name>Artoria2e5</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=Fraunhofer_FDK_AAC&amp;diff=37297</id>
		<title>Fraunhofer FDK AAC</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=Fraunhofer_FDK_AAC&amp;diff=37297"/>
		<updated>2023-08-12T06:30:13Z</updated>

		<summary type="html">&lt;p&gt;Artoria2e5: /* FDK License */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:Encoder/Decoder]]&lt;br /&gt;
{{aac-encoders}}&lt;br /&gt;
The &#039;&#039;&#039;Fraunhofer FDK AAC&#039;&#039;&#039; is a high-quality open-source [[AAC]] [[codec|encoder]] library developed by [[Fraunhofer|Fraunhofer IIS]]. It was officially released for Android, but has been ported to other platforms.&lt;br /&gt;
&lt;br /&gt;
The licensed Fraunhofer AAC codec included in Winamp (often called [[Fraunhofer#Fraunhofer IIS Codecs|FhG AAC]]) is not the same as the FDK AAC codec. While they use the same approach, they are developed by different teams, and target different platforms. The FDK library is built around fixed-point math and originally targeted low-delay communication on mobile devices.&lt;br /&gt;
&lt;br /&gt;
FDK AAC is considered a favorable alternative to the [[Nero AAC]] codec, which is no longer developed.&lt;br /&gt;
&lt;br /&gt;
== Software Versions ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Package/Component !! Version !! Developer/Maintainer !! License !! Description&lt;br /&gt;
|-&lt;br /&gt;
| FDK Encoder&lt;br /&gt;
| 4.0.0 &amp;lt;!-- AACENCODER_LIB_VL[0,1,2] in aacenc_lib.cpp --&amp;gt; [https://android.googlesource.com/platform/external/aac/+/master/libAACenc/src/aacenc_lib.cpp]  &lt;br /&gt;
|rowspan=4| [[Fraunhofer|Fraunhofer IIS]]&lt;br /&gt;
|rowspan=4| [[#FDK License|FDK License]]&lt;br /&gt;
|rowspan=4| The FDK AAC library included in Android.&lt;br /&gt;
|-&lt;br /&gt;
| FDK SBR/PS Encoder&amp;lt;br /&amp;gt;(for HE &amp;amp; HEv2)&lt;br /&gt;
| 4.0.0 &amp;lt;!-- SBRENCODER_LIB_VL[0,1,2] in sbr_encoder.cpp --&amp;gt; [https://android.googlesource.com/platform/external/aac/+/master/libSBRenc/src/sbr_encoder.cpp]&lt;br /&gt;
|-&lt;br /&gt;
| FDK Decoder&lt;br /&gt;
| 3.0.0 [https://android.googlesource.com/platform/external/aac/+/master/libAACdec/src/aacdecoder_lib.cpp]&lt;br /&gt;
|-&lt;br /&gt;
| FDK SBR/PS Decoder&lt;br /&gt;
| 2.2.6 [https://android.googlesource.com/platform/external/aac/+/lollipop-release/libSBRdec/src/sbrdecoder.cpp]&lt;br /&gt;
|-&lt;br /&gt;
| [[#(lib)fdk-aac|fdk-aac]]&lt;br /&gt;
| 2.0.0 (2018-11-22)&amp;lt;br /&amp;gt; ([https://github.com/mstorsjo/fdk-aac/releases watch]) based on FDK AAC (4.0.0/3.0.0)  &amp;lt;br /&amp;gt; shared library version 2.0.0 &amp;lt;!-- in configure.ac --&amp;gt;&lt;br /&gt;
| Martin Storsjö/Opencore AMR project&lt;br /&gt;
|rowspan=2|[[#FDK License|FDK License]] with additions under [http://www.apache.org/licenses/LICENSE-2.0 Apache 2.0 license] &lt;br /&gt;
| The FDK AAC encoder and decoder as a portable library separate from Android.&lt;br /&gt;
|-&lt;br /&gt;
| fdk-aac (debian)&lt;br /&gt;
| 0.1.6-1 [https://tracker.debian.org/pkg/fdk-aac] &amp;lt;br /&amp;gt; libfdk-aac0 (shared library version 1.1.0)&lt;br /&gt;
| &lt;br /&gt;
| The Debian source package for fdk-aac. Includes libfdk-aac* and the [[#aac-enc|aac-enc]] encoding front end.&lt;br /&gt;
|-&lt;br /&gt;
| [[#fdkaac|fdkaac]]&lt;br /&gt;
| 1.0.0 (using libfdk-aac 0.1.6)&lt;br /&gt;
| nu774&lt;br /&gt;
| zlib&lt;br /&gt;
| An advanced front-end to the FDK AAC encoder using libfdk-aac.&lt;br /&gt;
|-&lt;br /&gt;
| [[#FFmpeg|FFmpeg]]/[[#Libav/avconv|Libav]] support&lt;br /&gt;
| Libav: [https://git.libav.org/?p=libav.git;a=blob;f=libavcodec/libfdk-aacenc.c encode], [https://git.libav.org/?p=libav.git;a=blob;f=libavcodec/libfdk-aacdec.c decode] &amp;lt;br /&amp;gt; FFmpeg: [https://github.com/FFmpeg/FFmpeg/blob/master/libavcodec/libfdk-aacenc.c encode], [https://github.com/FFmpeg/FFmpeg/blob/master/libavcodec/libfdk-aacdec.c decode]&lt;br /&gt;
| Martin Storsjö&lt;br /&gt;
| [http://www.isc.org/downloads/software-support-policy/isc-license/ ISC license]&lt;br /&gt;
| A wrapper for libfdk-aac that adds support to FFmpeg and Libav/avconv. It is included in both projects, and is the recommended AAC encoder for FFmpeg.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== FDK License ==&lt;br /&gt;
The license included by Fraunhofer in the FDK source code specifically allows distribution in source or binary forms, but does not license patented technologies described by the source code. It goes on to say &amp;quot;you may &#039;&#039;use&#039;&#039; this FDK AAC Codec software or modifications thereto only for purposes that are authorized by appropriate patent licenses&amp;quot;.&amp;lt;ref&amp;gt;[https://android.googlesource.com/platform/external/aac/+/master/NOTICE NOTICE file], fdkaac&amp;lt;/ref&amp;gt; As this governs &#039;&#039;use&#039;&#039;, it should not have anything to do with distribution. The FSF considers it fishy to have an invitation to purchase patent licenses in the text, but concedes that &amp;quot;any program is potentially threatened by patents&amp;quot;. Considering [[AAC#Patent situation|the patent terms]], all AAC software are indeed equally affected.&lt;br /&gt;
&lt;br /&gt;
This license puts a limitation on charging for software that includes the library, leading Debian to consider it non-free. Debian does not comment on the patent situation.&lt;br /&gt;
&lt;br /&gt;
The position of FFmpeg is that although the license is GPL-incompatible (and therefore nondistributable with GPL parts), it is acceptable to distribute the library with LGPL parts.&amp;lt;ref&amp;gt;&amp;lt;code&amp;gt;ffmpeg -license&amp;lt;/code&amp;gt; command output&amp;lt;/ref&amp;gt; FFmpeg [https://ffmpeg.org/legal.html does not care about patents]. (The AAC patent license covers both encoder &#039;&#039;and&#039;&#039; decoder, so using fdk_aac does not add patent violations to FFmpeg.)&lt;br /&gt;
&lt;br /&gt;
=== Free Software? ===&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
|-&lt;br /&gt;
! Party !! Classification !! Note&lt;br /&gt;
|-&lt;br /&gt;
| Debian || {{no|Non-free}} || [https://tracker.debian.org/pkg/fdk-aac][https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=694257]&lt;br /&gt;
|-&lt;br /&gt;
| Fedora/Red Hat || {{yes|Free}} || [https://fedoraproject.org/wiki/Licensing/FDK-AAC]&lt;br /&gt;
|-&lt;br /&gt;
| FSF || {{maybe|Free (but warns about patents)}} ||  [https://www.gnu.org/licenses/license-list.html#fdk]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Afterburner ==&lt;br /&gt;
&#039;&#039;Afterburner&#039;&#039; is &amp;quot;a type of analysis by synthesis algorithm which increases the audio quality but also the required processing power.&amp;quot; Fraunhofer recommends to always activate this feature.&lt;br /&gt;
&lt;br /&gt;
== Audio Object Types ==&lt;br /&gt;
The library supports the following MPEG-2/4 AOTs:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Object Type ID !! Audio Object Type !!  Description&lt;br /&gt;
|-&lt;br /&gt;
|2  ||	AAC-LC || &amp;quot;AAC Profile&amp;quot; MPEG-2 Low-complexity (LC) combined with MPEG-4 Perceptual Noise Substitution (PNS)&lt;br /&gt;
|-&lt;br /&gt;
|5  ||	HE-AAC || AAC LC + SBR (Spectral Band Replication)&lt;br /&gt;
|-&lt;br /&gt;
|29 ||	HE-AAC v2 || AAC LC + SBR + PS (Parametric Stereo)&lt;br /&gt;
|-&lt;br /&gt;
|23 ||	AAC-LD || &amp;quot;Low Delay Profile&amp;quot; used for real-time communication&lt;br /&gt;
|-&lt;br /&gt;
|39 ||	AAC-ELD || Enhanced Low Delay&lt;br /&gt;
|-&lt;br /&gt;
|129||  MPEG-2 AAC LC || &lt;br /&gt;
|-&lt;br /&gt;
|132||  MPEG-2 HE-AAC (SBR) ||&lt;br /&gt;
|-&lt;br /&gt;
|156||  MPEG-2 HE-AAC v2 (SBR+PS) ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Bitrate Modes ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! AACENC_BITRATEMODE !! Mode !! Stream Bitrate&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[Constant Bitrate]] (CBR) || As specified by AACENC_BITRATE&lt;br /&gt;
|-&lt;br /&gt;
| 1-5 || [[Variable Bitrate]] (VBR) || Calculated based on channel layout (See table below)&lt;br /&gt;
|-&lt;br /&gt;
|colspan=3|&amp;lt;!--- Don&#039;t really know how the modes below work, yet. --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 6 ||colspan=2| Fixed frame mode.&lt;br /&gt;
|-&lt;br /&gt;
| 7 ||colspan=2| Superframe mode.&lt;br /&gt;
|-&lt;br /&gt;
| 8 ||colspan=2| LD/ELD full bitreservoir for packet based transmission&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The bitrate limit for each variable bitrate mode. [https://android.googlesource.com/platform/external/aac/+/master/libAACenc/src/aacenc.cpp] HE and HEv2 will often end up with actual bitrates far below these limits.&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!rowspan=2|AACENC_BITRATEMODE &amp;lt;br /&amp;gt;(VBR Modes) !!rowspan=2|Mode !!colspan=2|Bitrate per channel (LC) !!rowspan=2|AOTs&lt;br /&gt;
|-&lt;br /&gt;
! Mono !! Stereo &amp;lt;sup&amp;gt;a&amp;lt;/sup&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1 || VBR || 32 kbps || 20 kbps || LC, HE, HEv2&lt;br /&gt;
|-&lt;br /&gt;
| 2 || VBR || 40 kbps || 32 kbps || LC, HE, HEv2&lt;br /&gt;
|-&lt;br /&gt;
| 3 || VBR || 56 kbps || 48 kbps || LC, HE, HEv2&lt;br /&gt;
|-&lt;br /&gt;
| 4 || VBR || 72 kbps || 64 kbps || LC&lt;br /&gt;
|-&lt;br /&gt;
| 5 || VBR || 112 kbps || 96 kbps || LC&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;sup&amp;gt;a&amp;lt;/sup&amp;gt; Note that a &amp;quot;stereo&amp;quot; channel is any that is [[Joint stereo|bonded with another channel]], as noted with a plus sign in the [[#Channel Layouts|channel layouts]] table.&lt;br /&gt;
&lt;br /&gt;
====Example Bitrate Calculations====&lt;br /&gt;
&lt;br /&gt;
{|class=wikitable&lt;br /&gt;
! Profile !! VBR Mode !! Channel layout !! Expected stream bitrate&lt;br /&gt;
|-&lt;br /&gt;
| LC || 3 || L+R || 2 &amp;quot;stereo&amp;quot; channels at 48kbps = 96kbps&lt;br /&gt;
|-&lt;br /&gt;
| LC || 3 || C, L+R || 1 &amp;quot;mono&amp;quot; center channel at 56 kbps and 2 &amp;quot;stereo&amp;quot; channels at 48kbps = 152kbps&lt;br /&gt;
|-&lt;br /&gt;
| LC || 4 || C, L+R, LS+RS, LFE || 1 &amp;quot;mono&amp;quot; center channel and 1 mono LFE channel each at 72kbps, and 4 &amp;quot;stereo&amp;quot; channels (2 sets of 2) each at 64kbps = 400kbps&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Bandwidth==&lt;br /&gt;
[[Image:FDK filter.png|400px|thumb|A spectrogram showing the effect of the FDK AAC low-pass filter.]]&lt;br /&gt;
The default bandwidth (or low-pass filter cutoff) for each [[#Bitrate Modes|bitrate mode]] will be the minimum of the appropriate value in the tables below or half the [[#Sample Rates|sample rate]]. This can be overridden, but the maximum value is 20000 Hz. [https://android.googlesource.com/platform/external/aac/+/master/libAACenc/src/bandwidth.cpp] &lt;br /&gt;
&lt;br /&gt;
The fdk-aac parameter is AACENC_BANDWIDTH. More information can be found in the official documentation, section 3.1 &#039;&#039;Bandwidth&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== HE-AAC/SBR ===&lt;br /&gt;
&lt;br /&gt;
The HE-AAC and HE-AACv2 profiles encode audio using AAC-LC at one half the sample rate, relying on [[Spectral Band Replication]] (SBR) to attempt reconstruction of the missing higher frequencies. The end result is an apparent full bandwidth transmission (as if no low-pass filter was applied), even though the actual AAC-LC encoded audio is only storing frequencies up to 1/4 the original sample rate. &lt;br /&gt;
&amp;lt;!--I haven&#039;t been able to confirm that the low-pass filter would still be applied in the case that 1/4 the sample rate was still higher. For example if an input stream sampled at 96kHz encoded using HE-AAC in VBR mode 2 would still have the 13kHz filter applied to the base AAC-LC data. It does appear that way, by looking at the code. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== VBR Modes ===&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! AACENC_BITRATEMODE !! Mono !! Two or More Channels&lt;br /&gt;
|-&lt;br /&gt;
| 1 ||colspan=2| 13050 Hz&lt;br /&gt;
|-&lt;br /&gt;
| 2 ||colspan=2| 13050 Hz&lt;br /&gt;
|-&lt;br /&gt;
| 3 ||colspan=2| 14260 Hz&lt;br /&gt;
|-&lt;br /&gt;
| 4 ||colspan=2| 15500 Hz&lt;br /&gt;
|-&lt;br /&gt;
| 5 ||colspan=2| Full range, no filter&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== CBR Mode ===&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! AOT/Sample Rates !! Bitrate&amp;lt;br /&amp;gt;per channel !! Mono !! Two or More Channels&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=8| LC / Any&lt;br /&gt;
| Below 12kbps || 3700 Hz || 5000 Hz&lt;br /&gt;
|-&lt;br /&gt;
| 12-20 kbps || 5000 Hz || 6400 Hz&lt;br /&gt;
|-&lt;br /&gt;
| 20-28 kbps || 6900 Hz || 9640 Hz&lt;br /&gt;
|- &lt;br /&gt;
| 28-40 kbps || 9600 Hz || 13050 Hz&lt;br /&gt;
|-&lt;br /&gt;
| 40-56 kbps || 12060 Hz || 14260 Hz&lt;br /&gt;
|-&lt;br /&gt;
| 56-72 kbps || 13950 Hz || 15500 Hz&lt;br /&gt;
|-&lt;br /&gt;
| 72-96 kpbs || 14200 Hz || 16120 Hz&lt;br /&gt;
|-&lt;br /&gt;
| 96kbps and above ||colspan=2| 17000 Hz&lt;br /&gt;
|-&lt;br /&gt;
|colspan=4|...&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=2| LD / 44100 Hz&lt;br /&gt;
| 56kbps || 11000 Hz || 12900 Hz&lt;br /&gt;
|-&lt;br /&gt;
| 64kbps || 14400 Hz || 15500 Hz&lt;br /&gt;
|-&lt;br /&gt;
|colspan=4|...&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Sample Format ==&lt;br /&gt;
&lt;br /&gt;
The FDK library is based on fixed-point math and only supports 16-bit integer PCM input.&lt;br /&gt;
&lt;br /&gt;
== Sample Rates ==&lt;br /&gt;
&lt;br /&gt;
FDK library officially supports sample rates for input of 8000, 11025, 12000, 16000, 22050, 24000, 32000, 44100, 48000, 64000, 88200, and 96000 Hz. &lt;br /&gt;
&lt;br /&gt;
See [[#GetInvInt table limit|Issues/GetInvInt table limit]] if experiencing crashes with high sample rates and VBR.&lt;br /&gt;
&lt;br /&gt;
Also see [[#Recommended Sampling Rate and Bitrate Combinations|Recommended Sampling Rate and Bitrate Combinations]].&lt;br /&gt;
&lt;br /&gt;
== Channel Layouts ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Channels !! Layout !! Mode !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 1 || C || MODE_1 || Mono&lt;br /&gt;
|-&lt;br /&gt;
| 2 || L+R || MODE_2 || Stereo&lt;br /&gt;
|-&lt;br /&gt;
| 3 || C, L+R || MODE_1_2 ||&lt;br /&gt;
|-&lt;br /&gt;
| 4 || C, L+R, Rear || MODE_1_2_1 || fdkaac calls it &amp;quot;C L R Cs&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 5 || C, L+R, LS+RS || MODE_1_2_2 || &lt;br /&gt;
|-&lt;br /&gt;
| 5.1 || C, L+R, LS+RS, LFE || MODE_1_2_2_1 ||&lt;br /&gt;
|-&lt;br /&gt;
| 7.1 || C, LC+RC, L+R, LS+RS, LFE || MODE_1_2_2_2_1 &amp;lt;br /&amp;gt; MODE_7_1_FRONT_CENTER ||&lt;br /&gt;
|-&lt;br /&gt;
| 7.1 (Rear) || C, L+R, LS+RS, Lrear+Rrear, LFE || MODE_7_1_REAR_SURROUND ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The plus sign (+) denotes &amp;quot;stereo&amp;quot; channels.&lt;br /&gt;
&lt;br /&gt;
== Issues ==&lt;br /&gt;
=== GetInvInt table limit ===&lt;br /&gt;
As of FDK version 3.4.12, not all combinations of audio object types, bitrate modes, channel layouts, and sample rates can be used together, due to a limited table of pre-computed values used by the encoder. &lt;br /&gt;
&lt;br /&gt;
For example, using 96kHz stereo input with the AAC-LC audio object type and bitrate mode 5 (VBR 96-112kbps/channel) will result in catastrophic failure: [https://github.com/mstorsjo/fdk-aac/issues/17] &lt;br /&gt;
 ./libFDK/include/fixpoint_math.h:459: FIXP_DBL GetInvInt(int): Assertion `(intValue &amp;gt; 0) &amp;amp;&amp;amp; (intValue &amp;lt; 50)&#039; failed.&lt;br /&gt;
 Aborted (core dumped)&lt;br /&gt;
&lt;br /&gt;
A recent (August 2014) patch to libfdk-aac fixes most of the previously unsupported combinations [https://github.com/mstorsjo/fdk-aac/commit/9a3234055adb1e18f80571925779503c8dec5251], and is expected to be included in the next official version of the FDK AAC library.&lt;br /&gt;
&lt;br /&gt;
See [[#Libav/avconv|Libav/avconv]] for a workaround.&lt;br /&gt;
&lt;br /&gt;
== Recommended Sampling Rate and Bitrate Combinations ==&lt;br /&gt;
&lt;br /&gt;
This table is from the documentation included in the FDK library source code. (PDF section 2.12 or source code: [https://android.googlesource.com/platform/external/aac/+/master/libAACenc/include/aacenc_lib.h])&lt;br /&gt;
&lt;br /&gt;
The following table provides an overview of recommended encoder configuration parameters which [Fraunhofer] determined by virtue of numerous listening tests.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! [[#Audio Object Types|Audio Object Type]] !! Bit Rate Range&amp;lt;br /&amp;gt;[bit/s] !! Supported [[#Sampling Rates|Sampling Rates]]&amp;lt;br /&amp;gt;[kHz] !! Recommended Sampling Rate&amp;lt;br /&amp;gt;[kHz] !! Number of&amp;lt;br /&amp;gt;[[#Channel Layouts|Channels]]&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;4&amp;quot;| [29] HE-AAC v2&amp;lt;br /&amp;gt;(AAC LC + SBR + PS)&lt;br /&gt;
| 8000 - 11999 || 22.05, 24.00 || 24.00 || 2&lt;br /&gt;
|-&lt;br /&gt;
| 12000 - 17999 || 32.00 || 32.00 || 2&lt;br /&gt;
|-&lt;br /&gt;
| 18000 - 39999 || 32.00, 44.10, 48.00 || 44.10 || 2&lt;br /&gt;
|-&lt;br /&gt;
| 40000 - 56000 || 32.00, 44.10, 48.00 || 48.00 || 2&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;7&amp;quot;| [5] HE-AAC&amp;lt;br /&amp;gt;(AAC LC + SBR)&lt;br /&gt;
| 8000 - 11999 || 22.05, 24.00 || 24.00 || 1&lt;br /&gt;
|-&lt;br /&gt;
| 12000 - 17999 || 32.00 || 32.00 || 1&lt;br /&gt;
|-&lt;br /&gt;
| 18000 - 39999 || 32.00, 44.10, 48.00 || 44.10 || 1&lt;br /&gt;
|-&lt;br /&gt;
| 40000 - 56000 || 32.00, 44.10, 48.00 || 48.00 || 1&lt;br /&gt;
|-&lt;br /&gt;
| 16000 - 27999 || 32.00, 44.10, 48.00 || 32.00 || 2&lt;br /&gt;
|-&lt;br /&gt;
| 28000 - 63999 || 32.00, 44.10, 48.00 || 44.10 || 2&lt;br /&gt;
|-&lt;br /&gt;
| 64000 - 128000 || 32.00, 44.10, 48.00 || 48.00 || 2&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;4&amp;quot;| [5] HE-AAC&amp;lt;br /&amp;gt;(AAC LC + SBR)&lt;br /&gt;
| 64000 - 69999 || 32.00, 44.10, 48.00 || 32.00 || 5, 5.1&lt;br /&gt;
|-&lt;br /&gt;
| 70000 - 159999 || 32.00, 44.10, 48.00 || 44.10 || 5, 5.1&lt;br /&gt;
|-&lt;br /&gt;
| 160000 - 245999 || 32.00, 44.10, 48.00 || 48.00 || 5&lt;br /&gt;
|-&lt;br /&gt;
| 160000 - 265999 || 32.00, 44.10, 48.00 || 48.00 || 5.1&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;6&amp;quot;| [2] AAC LC&lt;br /&gt;
| 8000 - 15999 || 11.025, 12.00, 16.00 || 12.00 || 1&lt;br /&gt;
|-&lt;br /&gt;
| 16000 - 23999 || 16.00 || 16.00 || 1&lt;br /&gt;
|-&lt;br /&gt;
| 24000 - 31999 || 16.00, 22.05, 24.00 || 24.00 || 1&lt;br /&gt;
|-&lt;br /&gt;
| 32000 - 55999 || 32.00 || 32.00 || 1&lt;br /&gt;
|-&lt;br /&gt;
| 56000 - 160000 || 32.00, 44.10, 48.00 || 44.10 || 1&lt;br /&gt;
|-&lt;br /&gt;
| 160001 - 288000 || 48.00 || 48.00 || 1&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;7&amp;quot;| [2] AAC LC&lt;br /&gt;
| 16000 - 23999 || 11.025, 12.00, 16.00 || 12.00 || 2&lt;br /&gt;
|-&lt;br /&gt;
| 24000 - 31999 || 16.00 || 16.00 || 2&lt;br /&gt;
|-&lt;br /&gt;
| 32000 - 39999 || 16.00, 22.05, 24.00 || 22.05 || 2&lt;br /&gt;
|-&lt;br /&gt;
| 40000 - 95999 || 32.00 || 32.00 || 2&lt;br /&gt;
|-&lt;br /&gt;
| 96000 - 111999 || 32.00, 44.10, 48.00 || 32.00 || 2&lt;br /&gt;
|-&lt;br /&gt;
| 112000 - 320001 || 32.00, 44.10, 48.00 || 44.10 || 2&lt;br /&gt;
|-&lt;br /&gt;
| 320002 - 576000 || 48.00 || 48.00 || 2&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;3&amp;quot;| [2] AAC LC&lt;br /&gt;
| 160000 - 239999 || 32.00 || 32.00 || 5, 5.1 &lt;br /&gt;
|-&lt;br /&gt;
| 240000 - 279999 || 32.00, 44.10, 48.00 || 32.00 || 5, 5.1&lt;br /&gt;
|-&lt;br /&gt;
| 280000 - 800000 || 32.00, 44.10, 48.00 || 44.10 || 5, 5.1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== (lib)fdk-aac ==&lt;br /&gt;
&lt;br /&gt;
Martin Storsjö (as the opencore-amr project) maintains a source code distribution of the Fraunhofer library as fdk-aac. It is distributed in a binary form in Debian (and Debian derivatives like Ubuntu) as the package fdk-aac, which includes the libfdk-aac* and [[#aac-enc|aac-enc]] binaries.&lt;br /&gt;
&lt;br /&gt;
See [[#Software Versions|Software Versions]] for latest release information.&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;br /&gt;
* [https://github.com/mstorsjo/fdk-aac Source] at Github&lt;br /&gt;
* [https://tracker.debian.org/pkg/fdk-aac fdk-aac] at Debian package tracker. Package includes libfdk-aac* and the aac-enc binary.&lt;br /&gt;
&lt;br /&gt;
== aac-enc ==&lt;br /&gt;
&lt;br /&gt;
fdk-aac includes a very, very basic command-line interface encoding utility, called aac-enc, that can encode to AAC from WAV.&lt;br /&gt;
&lt;br /&gt;
=== Usage ===&lt;br /&gt;
 aac-enc [-r bitrate] [-t aot] [-a afterburner] [-s sbr] [-v vbr] in.wav out.aac&lt;br /&gt;
&lt;br /&gt;
;-r &amp;lt;bitrate&amp;gt;:Bitrate in bits per seconds (for CBR). Default is 64000.&lt;br /&gt;
;-t &amp;lt;aot&amp;gt;:The [[#Audio Object Types|Audio Object Type]]. Default is 2 (AAC-LC).&lt;br /&gt;
;-a &amp;lt;0,1&amp;gt;:Enable [[#Afterburner|&#039;&#039;Afterburner&#039;&#039;]]. 0=Disabled, 1=Enabled (recommended). Default is 1.&lt;br /&gt;
;-s &amp;lt;-1,0,1&amp;gt;:Spectral Band Replication (ELD AOT only). -1=Use ELD SBR auto configurator (default,recommended), 0=Disabled, 1=Enabled. Default is -1.&lt;br /&gt;
;-v &amp;lt;0-5&amp;gt;:[[#Bitrate Modes|Bitrate mode]]. Only 0-5 used. 0=CBR @ value given in -r. Default is 0.&lt;br /&gt;
&lt;br /&gt;
== fdkaac ==&lt;br /&gt;
&lt;br /&gt;
fdkaac is a command-line interface encoding and metadata utility. It is maintained by nu774 and is licensed under the zlib license. It employs libfdk-aac for encoding.&lt;br /&gt;
&lt;br /&gt;
See [[#Software Versions|Software Versions]] for latest release information.&lt;br /&gt;
&lt;br /&gt;
=== Examples ===&lt;br /&gt;
&lt;br /&gt;
 # Convert a FLAC file to m4a using fdkaac configured for AAC-LC at about 50kbps/channel (100kbps for stereo).&lt;br /&gt;
 flac -s -d -c song.flac | fdkaac --ignorelength --profile 2 --bitrate-mode 3 -o song.m4a -&lt;br /&gt;
&lt;br /&gt;
=== Usage ===&lt;br /&gt;
&lt;br /&gt;
 fdkaac [options] input_file&lt;br /&gt;
&lt;br /&gt;
;-p, --profile &amp;lt;n&amp;gt; :The [[#Audio Object Types|Audio Object Type]].&lt;br /&gt;
;-b, --bitrate &amp;lt;n&amp;gt; :Bitrate in bits per seconds (for CBR)&lt;br /&gt;
;-m, --bitrate-mode &amp;lt;n&amp;gt; :[[#Bitrate Modes|Bitrate mode]]. Only 0-5 used. 0=CBR.&lt;br /&gt;
;-w, --bandwidth &amp;lt;n&amp;gt; :Frequency [[#Bandwidth|bandwidth]] in Hz (AAC LC only)&lt;br /&gt;
;-a, --afterburner &amp;lt;n&amp;gt;:Enable [[#Afterburner|&#039;&#039;Afterburner&#039;&#039;]]. 0=Disabled, 1=Enabled (recommended). Default is 1.&lt;br /&gt;
;-L, --lowdelay-sbr &amp;lt;-1,0,1&amp;gt;:Configure SBR activity on AAC ELD&lt;br /&gt;
:{| class=wikitable&lt;br /&gt;
| -1 || Use ELD SBR auto configurator&lt;br /&gt;
|-&lt;br /&gt;
|  0 || Disable SBR on ELD (default)&lt;br /&gt;
|-&lt;br /&gt;
|  1 ||  Enable SBR on ELD&lt;br /&gt;
|}&lt;br /&gt;
; -s, --sbr-ratio &amp;lt;0,1,2&amp;gt; :Controls activation of downsampled SBR&lt;br /&gt;
:{| class=wikitable&lt;br /&gt;
| 0 || Use lib default (default)&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Downsampled SBR (default for ELD+SBR)&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Dual-rate SBR (default for HE-AAC)&lt;br /&gt;
|}&lt;br /&gt;
;-f, --transport-format &amp;lt;n&amp;gt; :Transport format&lt;br /&gt;
:{| class=wikitable&lt;br /&gt;
| 0 || RAW (default, muxed into M4A)&lt;br /&gt;
|-&lt;br /&gt;
| 1 || ADIF&lt;br /&gt;
|-&lt;br /&gt;
| 2 || ADTS&lt;br /&gt;
|-&lt;br /&gt;
| 6 || LATM MCP=1&lt;br /&gt;
|-&lt;br /&gt;
| 7 || LATM MCP=0&lt;br /&gt;
|-&lt;br /&gt;
|10 || LOAS/LATM (LATM within LOAS)&lt;br /&gt;
|}&lt;br /&gt;
;-C, --adts-crc-check : Add CRC protection on ADTS header&lt;br /&gt;
;-h, --header-period &amp;lt;n&amp;gt; : StreamMuxConfig/PCE repetition period in transport layer&lt;br /&gt;
;-o &amp;lt;filename&amp;gt; : Output filename&lt;br /&gt;
;-G, --gapless-mode &amp;lt;n&amp;gt; : Encoder delay signaling for gapless playback&lt;br /&gt;
:{| class=wikitable&lt;br /&gt;
| 0 || iTunSMPB (default)&lt;br /&gt;
|-&lt;br /&gt;
| 1 || ISO standard (edts + sgpd)&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Both&lt;br /&gt;
|}&lt;br /&gt;
;--include-sbr-delay : Count SBR decoder delay in encoder delay. This is not iTunes compatible, but is default behavior of FDK library.&lt;br /&gt;
;-I, --ignorelength : Ignore length of WAV header&lt;br /&gt;
;-S, --silent : Don&#039;t print progress messages&lt;br /&gt;
;--moov-before-mdat : Place moov box before mdat box on m4a output&lt;br /&gt;
&lt;br /&gt;
Options for raw (headerless) input:&lt;br /&gt;
;-R, --raw: Treat input as raw (by default WAV is assumed)&lt;br /&gt;
;--raw-channels &amp;lt;n&amp;gt; : Number of channels (default: 2)&lt;br /&gt;
;--raw-rate     &amp;lt;n&amp;gt; : Sample rate (default: 44100)&lt;br /&gt;
;--raw-format   &amp;lt;spec&amp;gt; : Sample format, default is &amp;quot;S16L&amp;quot;. Spec is as follows:&lt;br /&gt;
:{|&lt;br /&gt;
|	1st char || S(igned), U(nsigned), or F(loat)&lt;br /&gt;
|-&lt;br /&gt;
|	2nd part ||  bits per channel&lt;br /&gt;
|-&lt;br /&gt;
|	Last char || L(ittle) or B(ig)&lt;br /&gt;
|}&lt;br /&gt;
:Last char can be omitted, in which case L is assumed. Spec is case insensitive, therefore &amp;quot;u16b&amp;quot; is same as &amp;quot;U16B&amp;quot;.&lt;br /&gt;
:Up to 32-bit integer or 64-bit floating point format is supported as input. The FDK library, however, is [[#Sample Format|implemented based on fixed point math and onlysupports 16-bit integer PCM]]. Therefore, be wary of clipping. You might want to dither/noise shape beforehand when your input has higher resolution.&lt;br /&gt;
&lt;br /&gt;
Tagging options:&lt;br /&gt;
;--tag &amp;lt;fcc&amp;gt;:&amp;lt;value&amp;gt;: Set iTunes predefined tag with four char code. See [https://code.google.com/p/mp4v2/wiki/iTunesMetadata iTunes Metadata].&lt;br /&gt;
;--tag-from-file &amp;lt;fcc&amp;gt;&amp;lt;nowiki&amp;gt;:&amp;lt;/nowiki&amp;gt;&amp;lt;filename&amp;gt; : Same as above, but value is read from file.&lt;br /&gt;
;--long-tag &amp;lt;name&amp;gt;&amp;lt;nowiki&amp;gt;:&amp;lt;/nowiki&amp;gt;&amp;lt;value&amp;gt; : Set arbitrary tag as iTunes custom metadata.&lt;br /&gt;
;--tag-from-json &amp;lt;filename[?dot_notation]&amp;gt;&lt;br /&gt;
:  Read tags from JSON. By default, tags are assumed to be direct children of the root object(dictionary). Optionally, position of the dictionary that contains tags can be specified with dotted notation.&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! Option/Usage !! MP4 Block Modified !!lass=&amp;quot;unsortable&amp;quot;| Comment&lt;br /&gt;
|-&lt;br /&gt;
| --title &amp;lt;string&amp;gt; || ©nam &lt;br /&gt;
|-&lt;br /&gt;
| --artist &amp;lt;string&amp;gt; || ©ART&lt;br /&gt;
|-&lt;br /&gt;
| --album &amp;lt;string&amp;gt; || ©alb &lt;br /&gt;
|-&lt;br /&gt;
| --genre &amp;lt;string&amp;gt; || ©gen || Appears to always store the string the &amp;quot;user-defined&amp;quot; &#039;&#039;&#039;©gen&#039;&#039;&#039; even if there is an ID3 genre id that could be used with the &#039;&#039;&#039;gnre&#039;&#039;&#039; block.&lt;br /&gt;
|-&lt;br /&gt;
| --date &amp;lt;string&amp;gt; || ©day || YYYY[-MM[-DD]] format&lt;br /&gt;
|-&lt;br /&gt;
| --composer &amp;lt;string&amp;gt; || ©wrt&lt;br /&gt;
|-&lt;br /&gt;
| --grouping &amp;lt;string&amp;gt; || ©grp&lt;br /&gt;
|-&lt;br /&gt;
| --comment &amp;lt;string&amp;gt; || ©cmt&lt;br /&gt;
|-&lt;br /&gt;
| --album-artist &amp;lt;string&amp;gt; || aART&lt;br /&gt;
|-&lt;br /&gt;
| --track &amp;lt;number[/total]&amp;gt; || trkn || Block stores both track and totaltracks in one binary value &lt;br /&gt;
|-&lt;br /&gt;
| --disk &amp;lt;number[/total]&amp;gt; || disk || Block stores both disc and totaldiscs in one binary value &lt;br /&gt;
|-&lt;br /&gt;
| --tempo &amp;lt;n&amp;gt; || tmpo || Beats per minute, stored as a 16-bit integer &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;br /&gt;
*[https://github.com/nu774/fdkaac Source code]&lt;br /&gt;
*[https://launchpad.net/~mc3man/+archive/ubuntu/fdkaac-encoder Ubuntu PPA]&lt;br /&gt;
&lt;br /&gt;
== FFmpeg ==&lt;br /&gt;
libfdk-aac can be used with FFmpeg, but requires a custom build of FFmpeg. FFmpeg provides significant [https://trac.ffmpeg.org/wiki/Encode/AAC#fdk_aac documentation for using libfdk_aac] in the FFmpeg wiki.&lt;br /&gt;
&lt;br /&gt;
=== Usage/Examples ===&lt;br /&gt;
&lt;br /&gt;
CBR mode:&lt;br /&gt;
 ffmpeg -i &amp;lt;input&amp;gt; -c:a libfdk_aac -b:a 128k &amp;lt;output&amp;gt;&lt;br /&gt;
&lt;br /&gt;
VBR mode:&lt;br /&gt;
 ffmpeg -i &amp;lt;input&amp;gt; -c:a libfdk_aac -vbr 3 &amp;lt;output&amp;gt;&lt;br /&gt;
;-afterburner:Enable [[#Afterburner|&#039;&#039;Afterburner&#039;&#039;]]. 0=Disabled, 1=Enabled (recommended). Default is 1.&lt;br /&gt;
;-profile&amp;lt;nowiki&amp;gt;:&amp;lt;/nowiki&amp;gt;a:The [[#Audio Object Types|Audio Object Type]]. Value is one of LC, HE-AAC, HE-AACv2, LD, or ELD. Default is LC.&lt;br /&gt;
;-b&amp;lt;nowiki&amp;gt;:&amp;lt;/nowiki&amp;gt;a:CBR bitrate&lt;br /&gt;
;-vbr:Values 1-5. See [[#Bitrate Modes|Bitrate mode]].&lt;br /&gt;
;--cutoff:The low-pass filter cut-off in Hz. See [[#Bandwidth|Bandwidth]] for default values. FFmpeg maximum value is 20000.&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/FFmpeg/FFmpeg/blob/master/libavcodec/libfdk-aacenc.c libfdk-aacenc.c] in FFmpeg source tree&lt;br /&gt;
* [https://github.com/FFmpeg/FFmpeg/blob/master/libavcodec/libfdk-aacdec.c libfdk-aacdec.c] in FFmpeg source tree&lt;br /&gt;
&lt;br /&gt;
== Libav/avconv ==&lt;br /&gt;
libfdk-aac can be used with Libav&#039;s avconv, but requires a custom build of avconv with &amp;quot;--enable-libfdk-aac&amp;quot; passed to configure. See [https://wiki.libav.org/Encoding/aac Libav AAC encoding].&lt;br /&gt;
&lt;br /&gt;
=== Usage ===&lt;br /&gt;
&lt;br /&gt;
CBR mode:&lt;br /&gt;
 avconv -i &amp;lt;input&amp;gt; -c:a libfdk_aac -b:a &amp;lt;bitrate&amp;gt; -afterburner 1 &amp;lt;output&amp;gt;&lt;br /&gt;
&lt;br /&gt;
VBR mode:&lt;br /&gt;
 avconv -i &amp;lt;input&amp;gt; -c:a libfdk_aac -flags +qscale -global_quality [1-5] -afterburner 1 &amp;lt;output&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;-afterburner:See &#039;&#039;[[#Afterburner|afterburner]]&#039;&#039;.&lt;br /&gt;
;-global_quality:Values 1-5. See [[#Bitrate Modes|Bitrate mode]].&lt;br /&gt;
&lt;br /&gt;
=== FLAC to M4A example with quirks ===&lt;br /&gt;
&lt;br /&gt;
Using a FLAC example with 24-bit/96kHz 5.1 channel audio, and embedded album art to demonstrate workarounds for some quirks/bugs. The [http://www.diatonis.com/downloads/diatonis_dark-edges_02_rock_flac_6-chan_9624.zip sample used] is from the [http://www.diatonis.com/surround_sound_music.html Diatonis Free Surround Sound Music] page. The track used is titled &amp;quot;Rock&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
 avconv -i diatonis-rock.flac -vn -sample_fmt s16 -ar 48000 -c:a libfdk_aac -flags +qscale -global_quality 5 diatonis-rock.m4a&lt;br /&gt;
&lt;br /&gt;
;-global_quality 5:Use [[#Bitrate Modes|VBR Mode 5]].&lt;br /&gt;
;-vn:Means drop all video. The FLAC source has embedded album art that can&#039;t be handled by avconv in this case. Libav apparently doesn&#039;t know how to embed cover art in M4A. It tries to use it as an MP4 video stream. Using -c:v mjpeg, as can be done with MP3, doesn&#039;t work either. See [[Nero AAC#NeroAacTag|NeroAacTag]] for a tool that can easily add M4A album art.&lt;br /&gt;
;-sample_fmt s16 -ar 48000:The FLAC source&#039;s 96kHz sample rate combined with VBR mode 5 triggers the [[#GetInvInt_table_limit|GetInvInt table limit]] bug in libfdk_aac 0.1.3 and earlier. These options resample the audio before sending it to the FDK encoder, to avoid the crash.&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;br /&gt;
* [https://git.libav.org/?p=libav.git;a=blob;f=libavcodec/libfdk-aacenc.c libfdk-aacenc.c] in Libav source tree&lt;br /&gt;
* [https://git.libav.org/?p=libav.git;a=blob;f=libavcodec/libfdk-aacdec.c libfdk-aacdec.c] in Libav source tree&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* [http://www.iis.fraunhofer.de/en/ff/amm/impl/fdkaaccodec.html Official web page]&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Fraunhofer_FDK_AAC Fraunhofer FDK AAC] at Wikipedia&lt;br /&gt;
* [http://www.hydrogenaud.io/forums/index.php?showtopic=95989 Release information HydrogenAudio forums]&lt;br /&gt;
* [https://android.googlesource.com/platform/external/aac/+/master/ FDK in Android source code]&lt;br /&gt;
* [https://github.com/mstorsjo/fdk-aac fdk-aac source] (github)&lt;br /&gt;
* [http://sourceforge.net/p/opencore-amr/fdk-aac/ci/master/tree/ fdk-aac source code] (sourceforge)&lt;/div&gt;</summary>
		<author><name>Artoria2e5</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=Opus&amp;diff=37296</id>
		<title>Opus</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=Opus&amp;diff=37296"/>
		<updated>2023-08-12T05:29:37Z</updated>

		<summary type="html">&lt;p&gt;Artoria2e5: /* Music encoding quality */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Software Infobox&lt;br /&gt;
| name = Opus&lt;br /&gt;
| logo = [[Image:opus-logo.png|250px|Official Opus logo]]&lt;br /&gt;
| screenshot =&lt;br /&gt;
| caption = Opus Interactive Audio Codec&lt;br /&gt;
| maintainer = [http://xiph.org/ Xiph.Org Foundation]&lt;br /&gt;
| stable_release = 1.4&lt;br /&gt;
| operating_system = Windows, Mac OS/X, Linux/BSD&lt;br /&gt;
| use = Encoder/Decoder&lt;br /&gt;
| license = 3-clause BSD license&lt;br /&gt;
| website = [http://www.opus-codec.org/ opus-codec.org]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Opus&#039;&#039;&#039; is a [[lossy]] audio compression format developed by the Internet Engineering Task Force (IETF) designed to be suitable for interactive real-time applications over the Internet,{{ref|homepage|a}} including music as well as speech, yet it is also very competitive for use as a storage and playback format, being a [https://web.archive.org/web/20200130083553/http://people.xiph.org/~greg/opus/ha2011/ class leader at around 64 kbps] and [http://listening-test.coresv.net/results.htm also at 96 kbps]. As an open format standardised through [http://tools.ietf.org/html/rfc6716 Request for Comments (RFC) 6716],{{ref|RFC|c}} a high quality reference implementation is provided under the 3-clause BSD license{{ref|homepage|a}} which compiles and runs on the vast majority of general purpose and embedded (fixed point) processors. Many Software patents which cover Opus are licensed under royalty-free terms.{{ref|FAQ|b}}  Opus is also a Mandatory To Implement (MTI) codec for the upcoming WebRTC (Web Real Time Communication) specification of the World Wide Web Consortium (W3C).&lt;br /&gt;
&lt;br /&gt;
Opus incorporates technology from two codecs, the speech-oriented SILK codec developed by Skype and the multi-purpose low-latency CELT codec developed by Xiph.org with significant changes to each to ensure they can work together.{{ref|RFC|c}} Opus can seamlessly transition among high and low bitrates, using a linear prediction codec (the SILK layer) at lower bitrates and a lapped transform codec (the CELT layer) at higher bitrates, as well as a hybrid of the two for a short overlap in which SILK encodes the 0–8&amp;amp;nbsp;kHz spectrum and the CELT layer encodes only the frequencies above 8kHz.{{ref|RFC|c}} Opus has very low algorithmic delay (typ 22.5&amp;amp;nbsp;ms) compared to popular music formats such as [[MP3]], [[Vorbis |Ogg Vorbis]], [[AAC | LC-AAC and HE-AAC]] (all over 100&amp;amp;nbsp;ms), yet performs very competitively with them in terms of quality per bitrate, making it comparably viable as a storage &amp;amp; playback format. Also unlike Vorbis, Opus does not require the definition of large codebooks for each individual file, making it also preferable for short clips of audio, such as those often used by game developers, a field where patent-free Vorbis is commonly used.{{ref|RFC|c}}&lt;br /&gt;
&lt;br /&gt;
Considerably more details of the history and potential applications for Opus are included in the &#039;&#039;Wikipedia&#039;&#039; page for &#039;&#039;&#039;[http://en.wikipedia.org/wiki/Opus_%28audio_format%29 Opus (audio format)]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Characteristics==&lt;br /&gt;
Opus supports bitrates from 6&amp;amp;nbsp;kbps to 510&amp;amp;nbsp;kbps for typical stereo audio sources (and a maximum of around 255 kbps per channel for multichannel audio), with the &#039;sweet spot&#039; for music and general audio around 30&amp;amp;nbsp;kbps (mono) and 40–100&amp;amp;nbsp;kbps (stereo). It is intrinsically [[VBR | variable bitrate]], though constrained VBR and [[CBR | constant bitrate]] modes are possible where required. In the case of the reference release, libopus, the target bitrate is calibrated against the internal constant quality targets so that over a typical music collection, something very close to the target bitrate will be achieved. This bitrate-calibrated approach differs from most VBR encoders (e.g. LAME, helix mp3, qaac, Nero aacenc, Ogg Vorbis, Musepack) where a setting on some &#039;constant quality&#039; scale (which differs between encoders) is used and the bitrate will fall where it may. Improved future versions can be expected to offer improved quality at the same setting. Independent implementations may adopt a different approach.&lt;br /&gt;
&lt;br /&gt;
Opus is able to seamlessly adapt its mode of operation without glitches or sound interruption (an illustrative demonstration of [http://opus-codec.org/examples/#gauge bitrate scalability] is on the Opus Examples page), which can be particularly useful for mixed-content audio or varying network conditions, making the unified Opus codec superior to a suite of different codecs that might otherwise cover the same range of bitrate and quality settings and would require out-of-band signalling to instigate codec switching. The switching includes the choice of mono, stereo and other channel mappings, the use of the speech-oriented SILK layer, the general-purpose CELT layer or the hybrid of both, and the use of different audio bandwidths (4, 6, 8, 12, or 20&amp;amp;nbsp;kHz) as well as the quality adjustments within the same operating mode that are available in most VBR-capable codecs.&lt;br /&gt;
&lt;br /&gt;
Of importance mainly to interactive uses, but potentially useful in time-delayed audio streaming also, Opus includes packet loss concealment (PLC) in all modes and, in the speech-oriented modes where the SILK layer is active it also supports Forward Error Correction (FEC) where the expected rate of packet loss can be indicated to the encoder by the user or by application software and critical frames (e.g. consonant sounds) can be retransmitted at low bitrate to preserve intelligibility.&lt;br /&gt;
&lt;br /&gt;
For music and general audio, the CELT layer of Opus builds on knowledge gained during xiph.org&#039;s Vorbis development and ensures as a primary goal that the total energy in each spectral band is preserved while requiring only a modest bitrate overhead to achieve this, thereby eliminating a lot of bitrate-starvation artifacts such as &#039;birdies&#039; that are common in low-bitrate MP3, especially during transients, applause and cymbal sounds. This technique likewise increases coding efficiency at bitrates targetting transparent music reproduction. Short blocks (2.5&amp;amp;nbsp;ms) are also possible for efficient transient handling. Short blocks can also be used exclusively, if very low algorithmic delay (5.0&amp;amp;nbsp;ms) is required to enable very low-latency interative audio (e.g. live networked music performances such as remote jam sessions), though greater bitrate is then required to maintain the same quality (illustrated in [http://people.xiph.org/~xiphmont/demo/celt/demo.html#demo Monty&#039;s CELT demo page] under Constant PEAQ value, varying latency). CELT uses a number of additional techniques and provides additional advanced tools to enable encoder tuning.&lt;br /&gt;
&lt;br /&gt;
Opus natively supports [[gapless playback]] (though [[Gapless_playback#Poorly_designed_playback_systems | poor player design]] might itself induce interruptions during playback). Playback gain is also required, making some form of [[ReplayGain]] or [[ReplayGain_2.0_specification | similar]] volume control possible in any compliant player.&lt;br /&gt;
&lt;br /&gt;
==Bitrate performance==&lt;br /&gt;
For mono speech, Opus ranges from intelligible narrowband speech reproduction starting at 6&amp;amp;nbsp;kbps to medium-band, wideband and superwideband speech, reaching full-band speech by around 14&amp;amp;nbsp;kbps in encoder version 1.2 (was 21&amp;amp;nbsp;kbps in v1.1, 29&amp;amp;nbsp;kbps in v1.0). Above about 32&amp;amp;nbsp;kbps, the SILK layer is no longer used at all, as CELT alone gives superior quality.&lt;br /&gt;
&lt;br /&gt;
For music, the SILK modes are quite tolerable and better than CELT at very low bitrates. The hybrid mode is adopted as bitrate increases, extending bandwidth first to 12&amp;amp;nbsp;kHz (comparable with compact cassette) then to the full 20&amp;amp;nbsp;kHz and CELT then takes over. Assuming the source is stereo, the transition from mono to stereo typically happens between the transition from 12&amp;amp;nbsp;kHz to 20&amp;amp;nbsp;kHz. Encoder version 1.2 includes great improvements to music encoding in the 32–64&amp;amp;nbsp;kbps range, allowing full-band stereo at 32&amp;amp;nbsp;kbps and providing acceptable quality at 48&amp;amp;nbsp;kbps where artifacts are audible but rarely annoying. Version 1.3 is expected to further improve quality in this range.&lt;br /&gt;
&lt;br /&gt;
Multi-format stereo music listening tests have demonstrated the superiority of Opus at 64&amp;amp;nbsp;kbps and 96&amp;amp;nbsp;kbps compared to the best AAC-LC, HE-AAC and Ogg Vorbis encoders, and at 96&amp;amp;nbsp;kbps also to 128&amp;amp;nbsp;kbps MP3 encoded using LAME &amp;lt;code&amp;gt;-V 5&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Indicative bitrate and quality==&lt;br /&gt;
The tables below give illustrative, indicative quality guidance based on typical modes used internally by Opus and a range of listening tests.&lt;br /&gt;
&lt;br /&gt;
In encoder version 1.1 automatic detection of speech/music and bandwidth detection were introduced to improve mode decisions and VBR is less constrained, all with the aim of maximizing the quality/bitrate tradeoff, and these improvements are further enhanced in version 1.2 and 1.3. These tables are likely to require updates as the encoder is improved, especially in low-bitrate regions.&lt;br /&gt;
&lt;br /&gt;
===Speech encoding quality===&lt;br /&gt;
This table assumes a &#039;&#039;&#039;monophonic&#039;&#039;&#039; source sampled at CD quality or above (typ 48 kHz sampling rate) but mentions stereo compatibility for 40kbps+. The default 20ms frame size (22.5ms latency) is assumed. Note that the selection of &#039;&#039;VOIP&#039;&#039; mode will deliberately modify the sound with a High Pass Filter and emphasis of formants and harmonics to improve intelligibility of speech especially in noisy environments much as telephones do. &#039;&#039;Auto&#039;&#039; mode will not modify the sound prior to encoding so is usually better for high quality speech recordings or mixed speech and music.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Bitrate Target&lt;br /&gt;
!Bandwidth&lt;br /&gt;
!Typical Mode Used&lt;br /&gt;
!Speech Quality&lt;br /&gt;
!Use Cases / Competitive Codecs&lt;br /&gt;
|-&lt;br /&gt;
! Less than 6 kbps&lt;br /&gt;
| &amp;amp;mdash;&lt;br /&gt;
| &amp;amp;mdash;&lt;br /&gt;
| Bitrates lower than 6 kbps not supported by Opus (SILK disabled if forced to encode, which results in terrible speech quality)&lt;br /&gt;
| Try [https://en.wikipedia.org/wiki/Codec_2 Codec 2] for 0.45–3.2&amp;amp;nbsp;kbps mono speech or [[Wikipedia:Lyra (codec)|Lyra]] for 3.2&amp;amp;nbsp;kbps mono speech&lt;br /&gt;
|-&lt;br /&gt;
!6 kbps&lt;br /&gt;
|4 kHz narrow-band&lt;br /&gt;
|SILK&lt;br /&gt;
|Fair, intelligible&lt;br /&gt;
|AMR-NB may be a little better, but higher latency &amp;amp; proprietary, [[Speex]] also competitive&lt;br /&gt;
|-&lt;br /&gt;
!9 kbps VBR/CVBR&amp;lt;br&amp;gt;10 kbps CBR&lt;br /&gt;
|8 kHz wide-band&lt;br /&gt;
|SILK&lt;br /&gt;
|Telephone quality&lt;br /&gt;
|AMR-NB &amp;amp; AMR-WB similar quality, but higher latency &amp;amp; proprietary. [[Speex]] competitive.&lt;br /&gt;
|-&lt;br /&gt;
!12 kbps&lt;br /&gt;
|12 kHz super-wideband&lt;br /&gt;
|hybrid&lt;br /&gt;
|Medium bandwidth, better than telephone quality&lt;br /&gt;
|Similar quality to AMR-WB&lt;br /&gt;
|-&lt;br /&gt;
!16 kbps&lt;br /&gt;
|20 kHz&lt;br /&gt;
|hybrid/CELT&lt;br /&gt;
|Wideband speech quality&lt;br /&gt;
|Similar to/better than AMR-WB&lt;br /&gt;
|-&lt;br /&gt;
!24 kbps&lt;br /&gt;
|20 kHz&lt;br /&gt;
|hybrid/CELT&lt;br /&gt;
|Near transparent speech&lt;br /&gt;
|Better than AMR-WB. Podcasts/audiobooks/talk-radio.&lt;br /&gt;
|-&lt;br /&gt;
!32 kbps&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Essentially transparent speech plus moderately good stereo music&lt;br /&gt;
|Much better than AMR-WB. Podcasts/audiobooks/talk-radio.&lt;br /&gt;
|-&lt;br /&gt;
!40 kbps&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Essentially transparent mono or stereo speech, fairly good stereo music&lt;br /&gt;
|Stereo podcasts/audiobooks/talk radio with some music&lt;br /&gt;
|-&lt;br /&gt;
!48 kbps or more&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Essentially transparent mono or stereo speech, reasonable music&lt;br /&gt;
|Flexible general purpose modes to suit mixed music and speech&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
One major limitation of Opus at low bitrate is that SILK is inherently VBR: it accepts no constraints in CVBR, and if forced to do CBR the quality degrades from bit-shaving. As a result, even though constrained VBR is designed such that a fixed-rate data link requires at most one frame of buffer to handle the variation in bit rate -- great news for communication links -- any use of SILK, even in hybrid mode, has the potential of breaking this intention. This makes Opus suboptimal for low-rate radio links: radio links requires a predictable buffer amount, which is only possible with CBR when SILK is used, but use of CBR in turn hurts SILK. There is a noticeable quality difference at the NB/WB switch at 9 kbps VBR / 10 kbps CBR.&lt;br /&gt;
&lt;br /&gt;
Opus 1.3+ allows forced use of SILK down to 5 kbps VBR (NB) and 6 kbps VBR (WB, requires forcing the C API with &amp;lt;code&amp;gt;OPUS_SET_BANDWIDTH&amp;lt;/code&amp;gt;). However, quality is in no way guaranteed -- it&#039;s just possible.&lt;br /&gt;
&lt;br /&gt;
===Music encoding quality===&lt;br /&gt;
This table assumes a &#039;&#039;&#039;stereophonic&#039;&#039;&#039; source sampled at CD quality or above (typ 48&amp;amp;nbsp;kHz sampling rate). Opus will automatically use mono at very low bitrates, though a certain amount of stereo encoding can still be used (content dependent) even when mono is specified as the typical stereo mode in the table below.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Bitrate target&lt;br /&gt;
!Stereo mode&lt;br /&gt;
!Bandwidth&lt;br /&gt;
!typ SILK/CELT use&lt;br /&gt;
!Music quality notes&lt;br /&gt;
!Use cases/notes/competitive codecs&lt;br /&gt;
|-&lt;br /&gt;
!4 kbps&lt;br /&gt;
|mono&lt;br /&gt;
|6 kHz&lt;br /&gt;
|SILK&lt;br /&gt;
|Poor, muffled sound but intelligible lyrics.&lt;br /&gt;
| &amp;amp;mdash;&lt;br /&gt;
|-&lt;br /&gt;
!9 kbps&lt;br /&gt;
|mono&lt;br /&gt;
|8 kHz&lt;br /&gt;
|SILK&lt;br /&gt;
|Poor, muffled but OK for bitrate&lt;br /&gt;
| &amp;amp;mdash;&lt;br /&gt;
|-&lt;br /&gt;
!14 to 16 kbps&lt;br /&gt;
|mono&lt;br /&gt;
|20 kHz&lt;br /&gt;
|hybrid/CELT&lt;br /&gt;
|Fairly poor but OK for bitrate&lt;br /&gt;
|Perhaps acceptable for incidental music&lt;br /&gt;
|-&lt;br /&gt;
!22 to 24 kbps&lt;br /&gt;
|mono&lt;br /&gt;
|20 kHz&lt;br /&gt;
|hybrid/CELT&lt;br /&gt;
|Fair but OK for bitrate&lt;br /&gt;
|OK for incidental music&lt;br /&gt;
|-&lt;br /&gt;
!32 to 40 kbps&lt;br /&gt;
|stereo&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Moderately good stereo, some artifacts, rarely nasty&lt;br /&gt;
|Stereo podcasts, audiobooks, very low bitrate music&lt;br /&gt;
|-&lt;br /&gt;
!48 kbps&lt;br /&gt;
|stereo&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Full bandwidth stereo music, nice sound, may have problems with cymbals&lt;br /&gt;
|Stereo podcasts, audiobooks, low bitrate music&lt;br /&gt;
|-&lt;br /&gt;
!64 kbps&lt;br /&gt;
|stereo&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Full bandwidth stereo music, nice sound, detectable differences to original (mostly &#039;not annoying&#039;)&lt;br /&gt;
|Music storage &amp;amp; streaming. Beat HE-AAC, Vorbis, MP3 in [https://web.archive.org/web/20200130083553/http://people.xiph.org/~greg/opus/ha2011/ listening test]&lt;br /&gt;
|-&lt;br /&gt;
!96 kbps&lt;br /&gt;
|stereo&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Full bandwidth stereo music, good quality approaching transparency&lt;br /&gt;
|Music storage &amp;amp; high quality streaming. Beat LC-AAC, Vorbis, MP3 in [http://listening-test.coresv.net/results.htm listening test]&lt;br /&gt;
|-&lt;br /&gt;
!112 kbps&lt;br /&gt;
|stereo&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Fairly close to transparency (needs more testing)&lt;br /&gt;
|Music storage &amp;amp; high quality streaming. Very low-latency stereo networked music performance/jam sessions at OK quality (see below table)&lt;br /&gt;
|-&lt;br /&gt;
!128 kbps&lt;br /&gt;
|stereo&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Very close to transparency (needs more testing). Most modern codecs competitive (AAC-LC, Vorbis, MP3)&lt;br /&gt;
|Music storage &amp;amp; streaming. Future download music sales.&lt;br /&gt;
|-&lt;br /&gt;
!160 to 192 kbps&lt;br /&gt;
|stereo&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Transparent with very low chance of artifacts (a few killer samples still detectable). Most old &amp;amp; new lossy codecs competitive.&lt;br /&gt;
|Music storage &amp;amp; streaming, dedicated limited-bandwidth audio links (e.g. wireless, [http://en.wikipedia.org/wiki/Bluetooth_profile#Advanced_Audio_Distribution_Profile_.28A2DP.29 A2DP-bluetooth] type links). &lt;br /&gt;
|-&lt;br /&gt;
!510 kbps&lt;br /&gt;
|stereo&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Maximum possible stereo bitrate target (actual rate often less than 510 for default frame size). Most old and new lossy codecs competitive, plus near-lossless [[lossyWAV]] and [[WavPack | WavPack lossy]]&lt;br /&gt;
|Music storage, dedicated limited-bitrate audio links (e.g. wireless, minimum latency high quality audio. LossyWAV and WavPack lossy are very competitive for storage, and WavPack lossy &amp;lt;code&amp;gt;--blocksize=256&amp;lt;/code&amp;gt; may be competitive with minimum latency mode also.&lt;br /&gt;
|-&lt;br /&gt;
!&amp;gt;510 kbps&lt;br /&gt;
| &amp;amp;mdash;&lt;br /&gt;
| &amp;amp;mdash;&lt;br /&gt;
| &amp;amp;mdash;&lt;br /&gt;
|Above Opus bitrate range allowed for stereo sources&lt;br /&gt;
|Settle for 510&amp;amp;nbsp;kbps or use [[lossless]], [[lossyWAV]], [[WavPack | WavPack lossy]] or lossy transform/subband codecs like [[Vorbis]], [[Musepack]] at very high settings.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Lower latency versus quality/bitrate trade-off===&lt;br /&gt;
====Packet overhead in interactive applications====&lt;br /&gt;
For interactive use on the Internet or other packet-based networks, total bandwidth used will be subject to packet overhead. The more packet headers that are transmitted every second, the greater will be the overhead that is required. For this reason, Opus, while defaulting to 20&amp;amp;nbsp;ms frames, supports 60&amp;amp;nbsp;ms frames to reduce overhead when transporting low-bitrate SILK frames at the expense of greater latency, which may still be acceptable for speech, and also supports 10&amp;amp;nbsp;ms SILK frames to reduce latency somewhat at the expense of packet overhead.&lt;br /&gt;
&lt;br /&gt;
In the CELT layer, which tends to operate at higher bitrates than SILK, 20&amp;amp;nbsp;ms frames are the default, but frames of 10&amp;amp;nbsp;ms, 5&amp;amp;nbsp;ms and 2.5&amp;amp;nbsp;ms are also possible, which directly increases the frame overhead by transmitting more packets per second to achieve lower latency. In addition, as we&#039;ll see below it also reduces the quality/bitrate tradeoff of the CELT layer itself.&lt;br /&gt;
&lt;br /&gt;
You probably do not want to use a frame size lower than 10&amp;amp;nbsp;ms in applications containing speech, as doing so turns off SILK. The &amp;quot;lowdelay&amp;quot; application switch (available in FFmpeg and the raw library) turns off SILK to cut out 4&amp;amp;nbsp;ms of synchronization delay, but a frame size of 10&amp;amp;nbsp;ms achieves more delay reduction compared to default without sacrificing SILK.&lt;br /&gt;
&lt;br /&gt;
None of the bitrates mentioned in this article account for the packet overhead.&lt;br /&gt;
&lt;br /&gt;
====CELT layer latency versus quality/bitrate trade-off====&lt;br /&gt;
Unlike the SILK layer, which works on fixed 10&amp;amp;nbsp;ms blocks, 1, 2 or 6 of which can be combined into an Opus frame, the CELT layer is able to modify the encoding block lengths available to enable its use with shorter frames.&lt;br /&gt;
&lt;br /&gt;
When the CELT layer uses 10&amp;amp;nbsp;ms, 5&amp;amp;nbsp;ms and 2.5&amp;amp;nbsp;ms frames instead of the default 20&amp;amp;nbsp;ms, it must use smaller transform block sizes to achieve this, thereby reducing frequency resolution in the MDCT compared to the default transform window, thus reducing encoding efficiency for tonal signals. To obtain the same frequency precision for a sound divided into shorter transform windows, improved amplitude precision is necessary, resulting in increased bitrate to obtain the same perceptual quality (or conversely lower quality at the same bitrate).&lt;br /&gt;
&lt;br /&gt;
These reduced-latency modes remain efficient for transient signals, which use short blocks anyway.&lt;br /&gt;
&lt;br /&gt;
In all modes, the algorithmic delay consists of the frame size plus an additional 2.5&amp;amp;nbsp;ms delay. The CELT layer requires 2.5&amp;amp;nbsp;ms for MDCT window overlap.&lt;br /&gt;
&lt;br /&gt;
Xiph.org used matched [[PEAQ]] scores (approximate perceptual quality assessment made in software) for the CELT0.10 codec that was used as the basis of the CELT layer in the Opus reference release, which indicate the following [http://people.xiph.org/~xiphmont/demo/celt/demo.html#demo approximate equivalent settings] for stereo music.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Frame size&lt;br /&gt;
!Algorithmic delay&lt;br /&gt;
!Bitrate to match 64kbps@22.5ms delay&lt;br /&gt;
!fractional bitrate increase&lt;br /&gt;
|-&lt;br /&gt;
!20 ms&lt;br /&gt;
|22.5 ms&lt;br /&gt;
|64.0 kbps&lt;br /&gt;
| +0.0 %&lt;br /&gt;
|-&lt;br /&gt;
!10 ms&lt;br /&gt;
|12.5 ms&lt;br /&gt;
|70.4 kbps&lt;br /&gt;
| +10.0 %&lt;br /&gt;
|-&lt;br /&gt;
!5 ms&lt;br /&gt;
|7.5 ms&lt;br /&gt;
|84.8 kbps&lt;br /&gt;
| +32.5 %&lt;br /&gt;
|-&lt;br /&gt;
!2.5 ms&lt;br /&gt;
|5.0 ms&lt;br /&gt;
|112.0 kbps&lt;br /&gt;
| +75.0 %&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
N.B. This table is useful for interactive streaming only. For music storage &amp;amp; delayed playback or non-interactive streaming, latency reduction is not important and the default 20&amp;amp;nbsp;ms frame size is preferable.&lt;br /&gt;
&lt;br /&gt;
=== Channel count vs bitrate ===&lt;br /&gt;
&lt;br /&gt;
For surround sound bitrates, use [[Bitrate#Equivalent bitrate estimates for multichannel audio]].&lt;br /&gt;
&lt;br /&gt;
For ambisonics, see [https://www.mdpi.com/2076-3417/10/9/3188 AMBIQUAL listening test], paper figures 11 and 12.&lt;br /&gt;
&lt;br /&gt;
== Implementations ==&lt;br /&gt;
&lt;br /&gt;
The format and algorithms are openly documented and the reference implementation is published as free software. The reference implementation (Opus Audio Tools, opus-tools), consisting of separate encoders and decoders, is published under the terms of a BSD-like license. It is written in C programming language and can be compiled for hardware architectures with or without floating point unit. The accompanying diagnostic tool opusinfo reports detailed technical information about Opus files, including information on the standard compliance of the bitstream format. It is based on ogginfo from the vorbis-tools and therefore, unlike the encoder and decoder, available under the terms of version 2 of the GPL.&lt;br /&gt;
&lt;br /&gt;
=== Reference implementation (libopus + binaries) ===&lt;br /&gt;
The commandline tools of the reference version are available pre-compiled for the most popular operating systems at [http://opus-codec.org/downloads opus-codec.org] and [https://ftp.mozilla.org/pub/mozilla.org/opus/ Mozilla&#039;s ftp server], plus in the foobar2000 free encoders pack and some alternative compiles through the hydrogenaud.io opus forum. The libopus commandline tools include encoder &amp;lt;code&amp;gt;opusenc&amp;lt;/code&amp;gt;, decoder &amp;lt;code&amp;gt;opusdec&amp;lt;/code&amp;gt;, and with a different license, the &amp;lt;code&amp;gt;opusinfo&amp;lt;/code&amp;gt; opus stream &amp;amp; metadata analyzer.&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;latest stable release&#039;&#039;&#039; is recommended for general use and as of mid 2014 is considered competitive with or superior to the best alternative speech or general music encoders at most supported bitrates.&lt;br /&gt;
&lt;br /&gt;
==== libopus v1.0 ====&lt;br /&gt;
Released 11 Sep 2012 when RFC6716 was standardized but mostly fully developed by late 2011.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Stable, well-tuned&#039;&#039;&#039; &amp;lt;code&amp;gt;opusenc&amp;lt;/code&amp;gt; reference encoder as included in RFC documentation.&lt;br /&gt;
&lt;br /&gt;
CELT layer closely related to CELT 0.10 implements Constrained VBR mode by default (bitrate boost used mainly for transients), plus true CBR.&lt;br /&gt;
&lt;br /&gt;
==== libopus v1.1 ==== &lt;br /&gt;
&lt;br /&gt;
The alpha source code released 21 Dec 2012 for testing &amp;amp; user feedback and following a beta release and testing, the stable 1.1 version was released on 5 December 2013, considered well tested enough for general release.&amp;lt;ref&amp;gt;https://people.xiph.org/~xiphmont/demo/opus/demo3.shtml&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
CELT layer [http://jmspeex.livejournal.com/11737.html quality improvements] introduced to provide &#039;&#039;&#039;unconstrained VBR&#039;&#039;&#039; include a rate boost not just for transients but now for highly tonal signals too and rate reduction when stereo image is narrow. There&#039;s also a rewrite of its &#039;&#039;&#039;transient detection&#039;&#039;&#039; code and &#039;&#039;&#039;time-frequency analysis&#039;&#039;&#039; code, and rewritten &#039;&#039;&#039;dynamic allocation&#039;&#039;&#039; code (HF/LF tilt and Band Boost) to allow more aggressive changes from the typical static allocation when warranted.&lt;br /&gt;
&lt;br /&gt;
There are many minor improvements to &#039;&#039;&#039;speech quality&#039;&#039;&#039; in both SILK and CELT layers.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;DC-rejection&#039;&#039;&#039; below 3 Hz also aids quality if inaudible DC offset is present with no effect on deep bass notes.&lt;br /&gt;
*&#039;&#039;&#039;Automatic speech/music detection&#039;&#039;&#039; is introduced to optimize encoding mode choices, especially near the bitrate target range (presumably around 24–40&amp;amp;nbsp;kbps) where the encoder may perform best with SILK, hybrid or CELT depending on content type. Below that range SILK performs best for both music &amp;amp; speech, and above it CELT performs best for speech &amp;amp; music. The detection, without look-ahead is not perfect but usually is undecided in audio where either mode will work well.&lt;br /&gt;
*&#039;&#039;&#039;Automatic bandwidth detection&#039;&#039;&#039; is also introduced to save wasted bits allocated to absent frequencies.&lt;br /&gt;
*&#039;&#039;&#039;Surround sound improvements&#039;&#039;&#039; were introduced since the beta release with considerable advances in coding efficiency, bitrate allocation and quality.&lt;br /&gt;
&lt;br /&gt;
A new &#039;&#039;&#039;temporal VBR&#039;&#039;&#039; feature is added. For reasons not explained by classic psychoacoustics, it appears that giving more bits to loud frames (stealing from quiet frames) makes the result substantially better on listening tests. This feature is not tunable: it always affects VBR calculation at low bitrates, gradually becoming weaker at higher bitrates, until it turns off completely at 68&amp;amp;nbsp;kbps.&lt;br /&gt;
&lt;br /&gt;
==== libopus v1.1.3 ==== &lt;br /&gt;
Released July 15th, 2016. This version contains:&lt;br /&gt;
&lt;br /&gt;
*Neon optimizations improving performance on ARMv7 and ARMv8 by up to 15%&lt;br /&gt;
*Fixes some issues with 16-bit platforms (e.g. TI C55x)&lt;br /&gt;
*Fixes to comfort noise generation (CNG)&lt;br /&gt;
*Documenting that PLC packets can also be 2 bytes&lt;br /&gt;
*Includes experimental ambisonics work (&amp;lt;code&amp;gt;--enable-ambisonics&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
==== libopus v1.2.1 ==== &lt;br /&gt;
Released June 26th, 2017. This version contains:&lt;br /&gt;
&lt;br /&gt;
*Speech quality improvements especially in the 12–20&amp;amp;nbsp;kbit/s range&lt;br /&gt;
*Improved VBR encoding for hybrid mode&lt;br /&gt;
*More aggressive use of wider speech bandwidth, including fullband speech starting at 14&amp;amp;nbsp;kbit/s&lt;br /&gt;
*Music quality improvements in the 32–48&amp;amp;nbsp;kbit/s range&lt;br /&gt;
*Generic and SSE CELT optimizations&lt;br /&gt;
*Support for directly encoding packets up to 120&amp;amp;nbsp;ms&lt;br /&gt;
*DTX support for CELT mode&lt;br /&gt;
*SILK CBR improvements&lt;br /&gt;
*Support for all of the fixes in draft-ietf-codec-opus-update-06 (the mono downmix and the folding fixes need &amp;lt;code&amp;gt;--enable-update-draft&amp;lt;/code&amp;gt;)&lt;br /&gt;
*Many bug fixes, including integer wrap-arounds discovered through fuzzing (no security implications)&lt;br /&gt;
&lt;br /&gt;
==== libopus v1.3 ====&lt;br /&gt;
Released on October 18th, 2018. This version contains:&lt;br /&gt;
&lt;br /&gt;
* Improvements to voice activity detection (VAD) and speech/music classification using a recurrent neural network (RNN)&lt;br /&gt;
* Support for ambisonics coding using channel mapping families 2 and 3&lt;br /&gt;
* Improvements to stereo speech coding at low bitrate&lt;br /&gt;
* Using wideband encoding down to 9&amp;amp;nbsp;kb/s&lt;br /&gt;
* Making it possible to use SILK down to bitrates around 5&amp;amp;nbsp;kb/s&lt;br /&gt;
* Minor quality improvement on tones&lt;br /&gt;
* Enabling the spec fixes in &amp;lt;nowiki&amp;gt;RFC 8251&amp;lt;/nowiki&amp;gt; by default&lt;br /&gt;
* Security/hardening improvements&lt;br /&gt;
* Fixes to the CELT PLC&lt;br /&gt;
* Bandwidth detection fixes&lt;br /&gt;
&lt;br /&gt;
==== libopus v1.3.1 ====&lt;br /&gt;
Released on April 12th, 2019. This version contains:&lt;br /&gt;
&lt;br /&gt;
* Fixes to x87 builds&lt;br /&gt;
* A new OPUS_GET_IN_DTX query to know if the encoder is in DTX mode (last frame was either a comfort noise frame or not encoded at all)&lt;br /&gt;
* A new (and still experimental) CMake-based build system that is eventually meant to replace the VS2015 build system (the autotools one will stay)&lt;br /&gt;
&lt;br /&gt;
==== libopus v1.4 ====&lt;br /&gt;
Released on April 20th, 2023. This version contains:&lt;br /&gt;
&lt;br /&gt;
* Improved tuning of the Opus in-band FEC (LBRR). See the issue for details&lt;br /&gt;
* Added a OPUS_SET_INBAND_FEC(2) option that turns on FEC, but does not force SILK mode (FEC will be disabled in CELT mode)&lt;br /&gt;
* Improved tuning and various fixes to DTX&lt;br /&gt;
* Added Meson support, improved CMake support In addition to the improvements above, this release includes many minor bug fixes.&lt;br /&gt;
&lt;br /&gt;
=== Other implementations ===&lt;br /&gt;
&lt;br /&gt;
==== Concentus ====&lt;br /&gt;
&lt;br /&gt;
The libopus reference library (fixed-point variant) has successfully been ported to both &#039;&#039;&#039;C#&#039;&#039;&#039; and &#039;&#039;&#039;Java&#039;&#039;&#039;, as part of a project called &#039;&#039;&#039;Concentus&#039;&#039;&#039;. The aim of the project is specifically to target cross-platform applications where native C interop is relatively difficult. The code is available on [https://github.com/lostromb/concentus Github] and distributed via standard package managers.&lt;br /&gt;
&lt;br /&gt;
==== Emscripten ports ====&lt;br /&gt;
&lt;br /&gt;
At least one port of reference opus in Javascript has been made using the automated tool [https://developer.mozilla.org/en-US/docs/Mozilla/Projects/Emscripten emscripten]. See [https://blog.rillke.com/opusenc.js/ here], [https://github.com/kazuki/opus.js-sample here] and [https://github.com/audiocogs/opus.js here].&lt;br /&gt;
&lt;br /&gt;
==== ffmpeg ====&lt;br /&gt;
FFmpeg has a native [https://ffmpeg.org/ffmpeg-codecs.html#opus &amp;quot;opus&amp;quot;] codec. It is of lower quality than the reference libopus and only does CELT coding. However, it is still good for the ecosystem to have a completely independent implementation.&lt;br /&gt;
&lt;br /&gt;
== Hardware &amp;amp; Software Support ==&lt;br /&gt;
&lt;br /&gt;
Much of this section is based heavily on the Jan 12th 2013 version of the &#039;&#039;&#039;Support&#039;&#039;&#039; section of the [http://en.wikipedia.org/wiki/Opus_%28audio_format%29 Wikipedia article], which is more likely to be kept updated and to provide links to further information about the supporting platforms.&lt;br /&gt;
&lt;br /&gt;
=== VoIP software ===&lt;br /&gt;
* The open source virtual PBX Freeswitch supports Opus transcoding.&lt;br /&gt;
* The voice-chat software Mumble supports Opus as its main codec.&lt;br /&gt;
* SIP softphones Phoner and PhonerLite support Opus&lt;br /&gt;
* The SIP and IAX2 client SFLphone is being fitted with Opus support.&lt;br /&gt;
* Integration of Opus into the Skype client is finished, although no version with Opus support has yet been published.&lt;br /&gt;
* TrueConf video conferencing solutions support Opus.&lt;br /&gt;
* Opus support is planned for Jitsi 2.0, together with VP8 video.&lt;br /&gt;
* Empathy may use any format supported in GStreamer, including Opus.&lt;br /&gt;
* Line2 has replaced their current codec with Opus. Their iOS app will be the first to be released with the Opus. The Android app will follow later.&lt;br /&gt;
* CSipSimple supports Opus, Codec2, G.726 and G.722.1 with an additional plug-in.&lt;br /&gt;
* The voice-chat software TeamSpeak 3 supports Opus for voice and music in pre-release server 3.0.7-pre2 and beta client version 3.0.10.&lt;br /&gt;
* The proprietary instant messenger service Discord uses Opus audio for all voice calls and video calls, regardless of platform.&lt;br /&gt;
&lt;br /&gt;
=== Web frameworks and browsers ===&lt;br /&gt;
* Opus support is mandatory for WebRTC implementations.&lt;br /&gt;
* Mozilla supports Opus beginning with version 15 of Firefox and Thunderbird, plus Seamonkey, which uses a shared codebase.&lt;br /&gt;
* Depending on the backend in use, Opera supports inline playback of embedded Opus files. Official support for Opus and WebRTC are on the development roadmap.&lt;br /&gt;
* Chromium and Google Chrome have audio support as of version 33.&lt;br /&gt;
* Apple&#039;s Safari browser now supports Opus as of iOS 11 and macOS 10.13 High Sierra.&lt;br /&gt;
* Maxthon Cloud Browser&lt;br /&gt;
&lt;br /&gt;
=== Streaming audio ===&lt;br /&gt;
* Icecast. (examples: [http://dir.xiph.org/by_format/Opus Stream directory by format Opus], [http://smj.delfa.net/opus_64.m3u 64k]/[http://smj.delfa.net/opus_256.m3u 256k] [http://smj.delfa.net/ Smooth Jazz Opus Stream], [http://www.absoluteradio.co.uk/listen/labs.html Absolute Radio Opus Trial] 7 stations at 24,64,96 kbps, [http://icecast.ofdoom.com:8000/burst-opus.ogg Icecast Of Doom 96k]&lt;br /&gt;
* Krad Radio&lt;br /&gt;
* Liquidsoap&lt;br /&gt;
&lt;br /&gt;
=== Operating systems and desktop multimedia frameworks ===&lt;br /&gt;
* In Debian GNU/Linux the Opus development tools and supporting libraries can be installed from the preconfigured repositories in the next stable version (&amp;quot;wheezy&amp;quot;) that is expected to be released in early 2013.&lt;br /&gt;
* For Microsoft Windows, there are DirectShow filters supporting Opus, including DC-Bass Source Mod and the LAV Filters.&lt;br /&gt;
* In GStreamer the integration of Opus support is complete.&lt;br /&gt;
* FFmpeg supports decoding and encoding Opus via the external library libopus.&lt;br /&gt;
* Android 5.0 and above supports Opus natively if encapsulated in the Ogg container, but .opus filename extension is not recognized by Android, so the use of double filename extension .opus.ogg is recommended as a workaround to allow apps to recognize files as playable audio.&lt;br /&gt;
&lt;br /&gt;
=== Hardware support ===&lt;br /&gt;
* Support in [[Rockbox]] is available. This means hardware support for a series of portable media players (including some products from the iPod series by Apple and Sansa, iriver and Archos devices) and with &amp;quot;Rockbox as an Application&amp;quot; (RaaA) also on Android devices.&lt;br /&gt;
&lt;br /&gt;
=== Player software ===&lt;br /&gt;
&lt;br /&gt;
* Windows/Mac/Linux (Cross-Platform)&lt;br /&gt;
*# [[VLC]] (media player supports Opus as of version 2.0.4&lt;br /&gt;
*# [[Amarok]] 2.8 has transcoding support for Opus codec if ffmpeg is compiled with support for the libopus library &amp;amp; support for playback of Opus encoded files if Amarok is compiled against TagLib (newer than V1.8)&lt;br /&gt;
*# Clementine has Opus support&lt;br /&gt;
*# Audacious player&lt;br /&gt;
*# [[MPD]] as of version 0.18 if compiled against libopus (supports both encoding for http streams and decoding)&lt;br /&gt;
* Windows Exclusive&lt;br /&gt;
*# AIMP supports Opus natively as of version 3.20 build 1125 beta 1&lt;br /&gt;
*# [[foobar2000]] supports Opus natively as of v1.1.14 beta 1&lt;br /&gt;
*# Mpxplay supports Opus (using a decoder DLL) as of v1.60 alpha 2&lt;br /&gt;
*# [[Winamp]] supports Opus using a [http://forums.winamp.com/showthread.php?p=2925154#post2925154 3rd party plug-in]&lt;br /&gt;
*# MPC-HC&lt;br /&gt;
*# Resonic Player/Pro supports Opus natively as of version 0.2.2&lt;br /&gt;
* iOS/Android (Cross-Platform)&lt;br /&gt;
*# Capriccio [https://itunes.apple.com/us/app/capriccio-free-ultimate-music/id434829018?mt=8 iOS]/[https://play.google.com/store/apps/details?id=me.ideariboso.capriccio Android]&lt;br /&gt;
*# foobar2000 [https://itunes.apple.com/us/app/foobar2000/id1072807669?mt=8 iOS]/[https://play.google.com/store/apps/details?id=com.foobar2000.foobar2000&amp;amp;hl=en Android]&lt;br /&gt;
* Android Exclusive&lt;br /&gt;
*# [https://play.google.com/store/apps/details?id=in.krosbits.musicolet Musicolet Music Player]&lt;br /&gt;
*# [http://gonemadmusicplayer.blogspot.com/ GoneMAD Music Player]&lt;br /&gt;
*# [http://neutronmp.com/ Neutron Music Player]&lt;br /&gt;
*# [http://www.videolan.org/vlc/download-android.html VLC Media Player for Android]&lt;br /&gt;
*# [https://play.google.com/store/apps/details?id=ru.recoilme.freeamp FreeMP]&lt;br /&gt;
*# [https://play.google.com/store/apps/details?id=net.mderezynski.youki3 Youki]&lt;br /&gt;
*# [https://play.google.com/store/apps/details?id=com.aimp.player AIMP for Android]&lt;br /&gt;
*# [https://play.google.com/store/apps/details?id=com.acmeandroid.listen Listen Audiobook Player]&lt;br /&gt;
*# [https://play.google.com/store/apps/details?id=com.mxtech.videoplayer.ad MX Player]&lt;br /&gt;
*# [https://play.google.com/store/apps/details?id=org.tomahawk.tomahawk_android Tomahawk Player Beta]&lt;br /&gt;
*# [https://play.google.com/store/apps/details?id=com.maxmpz.audioplayer&amp;amp;hl=en Poweramp Music Player]&lt;br /&gt;
&lt;br /&gt;
=== Other software ===&lt;br /&gt;
* CDBurnerXP&lt;br /&gt;
* MediaCoder&lt;br /&gt;
* Report-IT&lt;br /&gt;
* [[MP3tag|MP3tag]]&lt;br /&gt;
* [https://moisescardona.me/opus-gui/ Opus GUI]&lt;br /&gt;
* [http://www.xdlab.ru/en/ TagScanner]&lt;br /&gt;
* [http://www.xmedia-recode.de/ XMedia Recode]&lt;br /&gt;
* [[loudgain]]&lt;br /&gt;
&lt;br /&gt;
== References &amp;amp; Notes ==&lt;br /&gt;
&lt;br /&gt;
*{{note|homepage|a}}[http://opus-codec.org/ opus-codec.org homepage]&lt;br /&gt;
*{{note|FAQ|b}}[http://wiki.xiph.org/OpusFAQ Opus FAQ]&lt;br /&gt;
*{{note|RFC|c}}[http://tools.ietf.org/html/rfc6716 IETF RFC 6716]&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
[[Category:Codecs]]&lt;br /&gt;
[[Category:Lossy]]&lt;br /&gt;
[[Category:Encoder/Decoder]]&lt;/div&gt;</summary>
		<author><name>Artoria2e5</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=Opus&amp;diff=37295</id>
		<title>Opus</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=Opus&amp;diff=37295"/>
		<updated>2023-08-12T05:28:34Z</updated>

		<summary type="html">&lt;p&gt;Artoria2e5: /* Other software */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Software Infobox&lt;br /&gt;
| name = Opus&lt;br /&gt;
| logo = [[Image:opus-logo.png|250px|Official Opus logo]]&lt;br /&gt;
| screenshot =&lt;br /&gt;
| caption = Opus Interactive Audio Codec&lt;br /&gt;
| maintainer = [http://xiph.org/ Xiph.Org Foundation]&lt;br /&gt;
| stable_release = 1.4&lt;br /&gt;
| operating_system = Windows, Mac OS/X, Linux/BSD&lt;br /&gt;
| use = Encoder/Decoder&lt;br /&gt;
| license = 3-clause BSD license&lt;br /&gt;
| website = [http://www.opus-codec.org/ opus-codec.org]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Opus&#039;&#039;&#039; is a [[lossy]] audio compression format developed by the Internet Engineering Task Force (IETF) designed to be suitable for interactive real-time applications over the Internet,{{ref|homepage|a}} including music as well as speech, yet it is also very competitive for use as a storage and playback format, being a [https://web.archive.org/web/20200130083553/http://people.xiph.org/~greg/opus/ha2011/ class leader at around 64 kbps] and [http://listening-test.coresv.net/results.htm also at 96 kbps]. As an open format standardised through [http://tools.ietf.org/html/rfc6716 Request for Comments (RFC) 6716],{{ref|RFC|c}} a high quality reference implementation is provided under the 3-clause BSD license{{ref|homepage|a}} which compiles and runs on the vast majority of general purpose and embedded (fixed point) processors. Many Software patents which cover Opus are licensed under royalty-free terms.{{ref|FAQ|b}}  Opus is also a Mandatory To Implement (MTI) codec for the upcoming WebRTC (Web Real Time Communication) specification of the World Wide Web Consortium (W3C).&lt;br /&gt;
&lt;br /&gt;
Opus incorporates technology from two codecs, the speech-oriented SILK codec developed by Skype and the multi-purpose low-latency CELT codec developed by Xiph.org with significant changes to each to ensure they can work together.{{ref|RFC|c}} Opus can seamlessly transition among high and low bitrates, using a linear prediction codec (the SILK layer) at lower bitrates and a lapped transform codec (the CELT layer) at higher bitrates, as well as a hybrid of the two for a short overlap in which SILK encodes the 0–8&amp;amp;nbsp;kHz spectrum and the CELT layer encodes only the frequencies above 8kHz.{{ref|RFC|c}} Opus has very low algorithmic delay (typ 22.5&amp;amp;nbsp;ms) compared to popular music formats such as [[MP3]], [[Vorbis |Ogg Vorbis]], [[AAC | LC-AAC and HE-AAC]] (all over 100&amp;amp;nbsp;ms), yet performs very competitively with them in terms of quality per bitrate, making it comparably viable as a storage &amp;amp; playback format. Also unlike Vorbis, Opus does not require the definition of large codebooks for each individual file, making it also preferable for short clips of audio, such as those often used by game developers, a field where patent-free Vorbis is commonly used.{{ref|RFC|c}}&lt;br /&gt;
&lt;br /&gt;
Considerably more details of the history and potential applications for Opus are included in the &#039;&#039;Wikipedia&#039;&#039; page for &#039;&#039;&#039;[http://en.wikipedia.org/wiki/Opus_%28audio_format%29 Opus (audio format)]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Characteristics==&lt;br /&gt;
Opus supports bitrates from 6&amp;amp;nbsp;kbps to 510&amp;amp;nbsp;kbps for typical stereo audio sources (and a maximum of around 255 kbps per channel for multichannel audio), with the &#039;sweet spot&#039; for music and general audio around 30&amp;amp;nbsp;kbps (mono) and 40–100&amp;amp;nbsp;kbps (stereo). It is intrinsically [[VBR | variable bitrate]], though constrained VBR and [[CBR | constant bitrate]] modes are possible where required. In the case of the reference release, libopus, the target bitrate is calibrated against the internal constant quality targets so that over a typical music collection, something very close to the target bitrate will be achieved. This bitrate-calibrated approach differs from most VBR encoders (e.g. LAME, helix mp3, qaac, Nero aacenc, Ogg Vorbis, Musepack) where a setting on some &#039;constant quality&#039; scale (which differs between encoders) is used and the bitrate will fall where it may. Improved future versions can be expected to offer improved quality at the same setting. Independent implementations may adopt a different approach.&lt;br /&gt;
&lt;br /&gt;
Opus is able to seamlessly adapt its mode of operation without glitches or sound interruption (an illustrative demonstration of [http://opus-codec.org/examples/#gauge bitrate scalability] is on the Opus Examples page), which can be particularly useful for mixed-content audio or varying network conditions, making the unified Opus codec superior to a suite of different codecs that might otherwise cover the same range of bitrate and quality settings and would require out-of-band signalling to instigate codec switching. The switching includes the choice of mono, stereo and other channel mappings, the use of the speech-oriented SILK layer, the general-purpose CELT layer or the hybrid of both, and the use of different audio bandwidths (4, 6, 8, 12, or 20&amp;amp;nbsp;kHz) as well as the quality adjustments within the same operating mode that are available in most VBR-capable codecs.&lt;br /&gt;
&lt;br /&gt;
Of importance mainly to interactive uses, but potentially useful in time-delayed audio streaming also, Opus includes packet loss concealment (PLC) in all modes and, in the speech-oriented modes where the SILK layer is active it also supports Forward Error Correction (FEC) where the expected rate of packet loss can be indicated to the encoder by the user or by application software and critical frames (e.g. consonant sounds) can be retransmitted at low bitrate to preserve intelligibility.&lt;br /&gt;
&lt;br /&gt;
For music and general audio, the CELT layer of Opus builds on knowledge gained during xiph.org&#039;s Vorbis development and ensures as a primary goal that the total energy in each spectral band is preserved while requiring only a modest bitrate overhead to achieve this, thereby eliminating a lot of bitrate-starvation artifacts such as &#039;birdies&#039; that are common in low-bitrate MP3, especially during transients, applause and cymbal sounds. This technique likewise increases coding efficiency at bitrates targetting transparent music reproduction. Short blocks (2.5&amp;amp;nbsp;ms) are also possible for efficient transient handling. Short blocks can also be used exclusively, if very low algorithmic delay (5.0&amp;amp;nbsp;ms) is required to enable very low-latency interative audio (e.g. live networked music performances such as remote jam sessions), though greater bitrate is then required to maintain the same quality (illustrated in [http://people.xiph.org/~xiphmont/demo/celt/demo.html#demo Monty&#039;s CELT demo page] under Constant PEAQ value, varying latency). CELT uses a number of additional techniques and provides additional advanced tools to enable encoder tuning.&lt;br /&gt;
&lt;br /&gt;
Opus natively supports [[gapless playback]] (though [[Gapless_playback#Poorly_designed_playback_systems | poor player design]] might itself induce interruptions during playback). Playback gain is also required, making some form of [[ReplayGain]] or [[ReplayGain_2.0_specification | similar]] volume control possible in any compliant player.&lt;br /&gt;
&lt;br /&gt;
==Bitrate performance==&lt;br /&gt;
For mono speech, Opus ranges from intelligible narrowband speech reproduction starting at 6&amp;amp;nbsp;kbps to medium-band, wideband and superwideband speech, reaching full-band speech by around 14&amp;amp;nbsp;kbps in encoder version 1.2 (was 21&amp;amp;nbsp;kbps in v1.1, 29&amp;amp;nbsp;kbps in v1.0). Above about 32&amp;amp;nbsp;kbps, the SILK layer is no longer used at all, as CELT alone gives superior quality.&lt;br /&gt;
&lt;br /&gt;
For music, the SILK modes are quite tolerable and better than CELT at very low bitrates. The hybrid mode is adopted as bitrate increases, extending bandwidth first to 12&amp;amp;nbsp;kHz (comparable with compact cassette) then to the full 20&amp;amp;nbsp;kHz and CELT then takes over. Assuming the source is stereo, the transition from mono to stereo typically happens between the transition from 12&amp;amp;nbsp;kHz to 20&amp;amp;nbsp;kHz. Encoder version 1.2 includes great improvements to music encoding in the 32–64&amp;amp;nbsp;kbps range, allowing full-band stereo at 32&amp;amp;nbsp;kbps and providing acceptable quality at 48&amp;amp;nbsp;kbps where artifacts are audible but rarely annoying. Version 1.3 is expected to further improve quality in this range.&lt;br /&gt;
&lt;br /&gt;
Multi-format stereo music listening tests have demonstrated the superiority of Opus at 64&amp;amp;nbsp;kbps and 96&amp;amp;nbsp;kbps compared to the best AAC-LC, HE-AAC and Ogg Vorbis encoders, and at 96&amp;amp;nbsp;kbps also to 128&amp;amp;nbsp;kbps MP3 encoded using LAME &amp;lt;code&amp;gt;-V 5&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Indicative bitrate and quality==&lt;br /&gt;
The tables below give illustrative, indicative quality guidance based on typical modes used internally by Opus and a range of listening tests.&lt;br /&gt;
&lt;br /&gt;
In encoder version 1.1 automatic detection of speech/music and bandwidth detection were introduced to improve mode decisions and VBR is less constrained, all with the aim of maximizing the quality/bitrate tradeoff, and these improvements are further enhanced in version 1.2 and 1.3. These tables are likely to require updates as the encoder is improved, especially in low-bitrate regions.&lt;br /&gt;
&lt;br /&gt;
===Speech encoding quality===&lt;br /&gt;
This table assumes a &#039;&#039;&#039;monophonic&#039;&#039;&#039; source sampled at CD quality or above (typ 48 kHz sampling rate) but mentions stereo compatibility for 40kbps+. The default 20ms frame size (22.5ms latency) is assumed. Note that the selection of &#039;&#039;VOIP&#039;&#039; mode will deliberately modify the sound with a High Pass Filter and emphasis of formants and harmonics to improve intelligibility of speech especially in noisy environments much as telephones do. &#039;&#039;Auto&#039;&#039; mode will not modify the sound prior to encoding so is usually better for high quality speech recordings or mixed speech and music.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Bitrate Target&lt;br /&gt;
!Bandwidth&lt;br /&gt;
!Typical Mode Used&lt;br /&gt;
!Speech Quality&lt;br /&gt;
!Use Cases / Competitive Codecs&lt;br /&gt;
|-&lt;br /&gt;
! Less than 6 kbps&lt;br /&gt;
| &amp;amp;mdash;&lt;br /&gt;
| &amp;amp;mdash;&lt;br /&gt;
| Bitrates lower than 6 kbps not supported by Opus (SILK disabled if forced to encode, which results in terrible speech quality)&lt;br /&gt;
| Try [https://en.wikipedia.org/wiki/Codec_2 Codec 2] for 0.45–3.2&amp;amp;nbsp;kbps mono speech or [[Wikipedia:Lyra (codec)|Lyra]] for 3.2&amp;amp;nbsp;kbps mono speech&lt;br /&gt;
|-&lt;br /&gt;
!6 kbps&lt;br /&gt;
|4 kHz narrow-band&lt;br /&gt;
|SILK&lt;br /&gt;
|Fair, intelligible&lt;br /&gt;
|AMR-NB may be a little better, but higher latency &amp;amp; proprietary, [[Speex]] also competitive&lt;br /&gt;
|-&lt;br /&gt;
!9 kbps VBR/CVBR&amp;lt;br&amp;gt;10 kbps CBR&lt;br /&gt;
|8 kHz wide-band&lt;br /&gt;
|SILK&lt;br /&gt;
|Telephone quality&lt;br /&gt;
|AMR-NB &amp;amp; AMR-WB similar quality, but higher latency &amp;amp; proprietary. [[Speex]] competitive.&lt;br /&gt;
|-&lt;br /&gt;
!12 kbps&lt;br /&gt;
|12 kHz super-wideband&lt;br /&gt;
|hybrid&lt;br /&gt;
|Medium bandwidth, better than telephone quality&lt;br /&gt;
|Similar quality to AMR-WB&lt;br /&gt;
|-&lt;br /&gt;
!16 kbps&lt;br /&gt;
|20 kHz&lt;br /&gt;
|hybrid/CELT&lt;br /&gt;
|Wideband speech quality&lt;br /&gt;
|Similar to/better than AMR-WB&lt;br /&gt;
|-&lt;br /&gt;
!24 kbps&lt;br /&gt;
|20 kHz&lt;br /&gt;
|hybrid/CELT&lt;br /&gt;
|Near transparent speech&lt;br /&gt;
|Better than AMR-WB. Podcasts/audiobooks/talk-radio.&lt;br /&gt;
|-&lt;br /&gt;
!32 kbps&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Essentially transparent speech plus moderately good stereo music&lt;br /&gt;
|Much better than AMR-WB. Podcasts/audiobooks/talk-radio.&lt;br /&gt;
|-&lt;br /&gt;
!40 kbps&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Essentially transparent mono or stereo speech, fairly good stereo music&lt;br /&gt;
|Stereo podcasts/audiobooks/talk radio with some music&lt;br /&gt;
|-&lt;br /&gt;
!48 kbps or more&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Essentially transparent mono or stereo speech, reasonable music&lt;br /&gt;
|Flexible general purpose modes to suit mixed music and speech&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
One major limitation of Opus at low bitrate is that SILK is inherently VBR: it accepts no constraints in CVBR, and if forced to do CBR the quality degrades from bit-shaving. As a result, even though constrained VBR is designed such that a fixed-rate data link requires at most one frame of buffer to handle the variation in bit rate -- great news for communication links -- any use of SILK, even in hybrid mode, has the potential of breaking this intention. This makes Opus suboptimal for low-rate radio links: radio links requires a predictable buffer amount, which is only possible with CBR when SILK is used, but use of CBR in turn hurts SILK. There is a noticeable quality difference at the NB/WB switch at 9 kbps VBR / 10 kbps CBR.&lt;br /&gt;
&lt;br /&gt;
Opus 1.3+ allows forced use of SILK down to 5 kbps VBR (NB) and 6 kbps VBR (WB, requires forcing the C API with &amp;lt;code&amp;gt;OPUS_SET_BANDWIDTH&amp;lt;/code&amp;gt;). However, quality is in no way guaranteed -- it&#039;s just possible.&lt;br /&gt;
&lt;br /&gt;
===Music encoding quality===&lt;br /&gt;
This table assumes a &#039;&#039;&#039;stereophonic&#039;&#039;&#039; source sampled at CD quality or above (typ 48&amp;amp;nbsp;kHz sampling rate). Opus will automatically use mono at very low bitrates, though a certain amount of stereo encoding can still be used (content dependent) even when mono is specified as the typical stereo mode in the table below.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Bitrate target&lt;br /&gt;
!Stereo mode&lt;br /&gt;
!Bandwidth&lt;br /&gt;
!typ SILK/CELT use&lt;br /&gt;
!Music quality notes&lt;br /&gt;
!Use cases/notes/competitive codecs&lt;br /&gt;
|-&lt;br /&gt;
!6 kbps&lt;br /&gt;
|mono&lt;br /&gt;
|6 kHz&lt;br /&gt;
|SILK&lt;br /&gt;
|Poor, muffled sound but intelligible lyrics.&lt;br /&gt;
| &amp;amp;mdash;&lt;br /&gt;
|-&lt;br /&gt;
!8 kbps&lt;br /&gt;
|mono&lt;br /&gt;
|6 kHz&lt;br /&gt;
|SILK&lt;br /&gt;
|Poor, muffled but OK for bitrate&lt;br /&gt;
| &amp;amp;mdash;&lt;br /&gt;
|-&lt;br /&gt;
!14 to 16 kbps&lt;br /&gt;
|mono&lt;br /&gt;
|20 kHz&lt;br /&gt;
|hybrid/CELT&lt;br /&gt;
|Fairly poor but OK for bitrate&lt;br /&gt;
|Perhaps acceptable for incidental music&lt;br /&gt;
|-&lt;br /&gt;
!22 to 24 kbps&lt;br /&gt;
|mono&lt;br /&gt;
|20 kHz&lt;br /&gt;
|hybrid/CELT&lt;br /&gt;
|Fair but OK for bitrate&lt;br /&gt;
|OK for incidental music&lt;br /&gt;
|-&lt;br /&gt;
!32 to 40 kbps&lt;br /&gt;
|stereo&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Moderately good stereo, some artifacts, rarely nasty&lt;br /&gt;
|Stereo podcasts, audiobooks, very low bitrate music&lt;br /&gt;
|-&lt;br /&gt;
!48 kbps&lt;br /&gt;
|stereo&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Full bandwidth stereo music, nice sound, may have problems with cymbals&lt;br /&gt;
|Stereo podcasts, audiobooks, low bitrate music&lt;br /&gt;
|-&lt;br /&gt;
!64 kbps&lt;br /&gt;
|stereo&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Full bandwidth stereo music, nice sound, detectable differences to original (mostly &#039;not annoying&#039;)&lt;br /&gt;
|Music storage &amp;amp; streaming. Beat HE-AAC, Vorbis, MP3 in [https://web.archive.org/web/20200130083553/http://people.xiph.org/~greg/opus/ha2011/ listening test]&lt;br /&gt;
|-&lt;br /&gt;
!96 kbps&lt;br /&gt;
|stereo&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Full bandwidth stereo music, good quality approaching transparency&lt;br /&gt;
|Music storage &amp;amp; high quality streaming. Beat LC-AAC, Vorbis, MP3 in [http://listening-test.coresv.net/results.htm listening test]&lt;br /&gt;
|-&lt;br /&gt;
!112 kbps&lt;br /&gt;
|stereo&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Fairly close to transparency (needs more testing)&lt;br /&gt;
|Music storage &amp;amp; high quality streaming. Very low-latency stereo networked music performance/jam sessions at OK quality (see below table)&lt;br /&gt;
|-&lt;br /&gt;
!128 kbps&lt;br /&gt;
|stereo&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Very close to transparency (needs more testing). Most modern codecs competitive (AAC-LC, Vorbis, MP3)&lt;br /&gt;
|Music storage &amp;amp; streaming. Future download music sales.&lt;br /&gt;
|-&lt;br /&gt;
!160 to 192 kbps&lt;br /&gt;
|stereo&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Transparent with very low chance of artifacts (a few killer samples still detectable). Most old &amp;amp; new lossy codecs competitive.&lt;br /&gt;
|Music storage &amp;amp; streaming, dedicated limited-bandwidth audio links (e.g. wireless, [http://en.wikipedia.org/wiki/Bluetooth_profile#Advanced_Audio_Distribution_Profile_.28A2DP.29 A2DP-bluetooth] type links). &lt;br /&gt;
|-&lt;br /&gt;
!510 kbps&lt;br /&gt;
|stereo&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Maximum possible stereo bitrate target (actual rate often less than 510 for default frame size). Most old and new lossy codecs competitive, plus near-lossless [[lossyWAV]] and [[WavPack | WavPack lossy]]&lt;br /&gt;
|Music storage, dedicated limited-bitrate audio links (e.g. wireless, minimum latency high quality audio. LossyWAV and WavPack lossy are very competitive for storage, and WavPack lossy &amp;lt;code&amp;gt;--blocksize=256&amp;lt;/code&amp;gt; may be competitive with minimum latency mode also.&lt;br /&gt;
|-&lt;br /&gt;
!&amp;gt;510 kbps&lt;br /&gt;
| &amp;amp;mdash;&lt;br /&gt;
| &amp;amp;mdash;&lt;br /&gt;
| &amp;amp;mdash;&lt;br /&gt;
|Above Opus bitrate range allowed for stereo sources&lt;br /&gt;
|Settle for 510&amp;amp;nbsp;kbps or use [[lossless]], [[lossyWAV]], [[WavPack | WavPack lossy]] or lossy transform/subband codecs like [[Vorbis]], [[Musepack]] at very high settings.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Lower latency versus quality/bitrate trade-off===&lt;br /&gt;
====Packet overhead in interactive applications====&lt;br /&gt;
For interactive use on the Internet or other packet-based networks, total bandwidth used will be subject to packet overhead. The more packet headers that are transmitted every second, the greater will be the overhead that is required. For this reason, Opus, while defaulting to 20&amp;amp;nbsp;ms frames, supports 60&amp;amp;nbsp;ms frames to reduce overhead when transporting low-bitrate SILK frames at the expense of greater latency, which may still be acceptable for speech, and also supports 10&amp;amp;nbsp;ms SILK frames to reduce latency somewhat at the expense of packet overhead.&lt;br /&gt;
&lt;br /&gt;
In the CELT layer, which tends to operate at higher bitrates than SILK, 20&amp;amp;nbsp;ms frames are the default, but frames of 10&amp;amp;nbsp;ms, 5&amp;amp;nbsp;ms and 2.5&amp;amp;nbsp;ms are also possible, which directly increases the frame overhead by transmitting more packets per second to achieve lower latency. In addition, as we&#039;ll see below it also reduces the quality/bitrate tradeoff of the CELT layer itself.&lt;br /&gt;
&lt;br /&gt;
You probably do not want to use a frame size lower than 10&amp;amp;nbsp;ms in applications containing speech, as doing so turns off SILK. The &amp;quot;lowdelay&amp;quot; application switch (available in FFmpeg and the raw library) turns off SILK to cut out 4&amp;amp;nbsp;ms of synchronization delay, but a frame size of 10&amp;amp;nbsp;ms achieves more delay reduction compared to default without sacrificing SILK.&lt;br /&gt;
&lt;br /&gt;
None of the bitrates mentioned in this article account for the packet overhead.&lt;br /&gt;
&lt;br /&gt;
====CELT layer latency versus quality/bitrate trade-off====&lt;br /&gt;
Unlike the SILK layer, which works on fixed 10&amp;amp;nbsp;ms blocks, 1, 2 or 6 of which can be combined into an Opus frame, the CELT layer is able to modify the encoding block lengths available to enable its use with shorter frames.&lt;br /&gt;
&lt;br /&gt;
When the CELT layer uses 10&amp;amp;nbsp;ms, 5&amp;amp;nbsp;ms and 2.5&amp;amp;nbsp;ms frames instead of the default 20&amp;amp;nbsp;ms, it must use smaller transform block sizes to achieve this, thereby reducing frequency resolution in the MDCT compared to the default transform window, thus reducing encoding efficiency for tonal signals. To obtain the same frequency precision for a sound divided into shorter transform windows, improved amplitude precision is necessary, resulting in increased bitrate to obtain the same perceptual quality (or conversely lower quality at the same bitrate).&lt;br /&gt;
&lt;br /&gt;
These reduced-latency modes remain efficient for transient signals, which use short blocks anyway.&lt;br /&gt;
&lt;br /&gt;
In all modes, the algorithmic delay consists of the frame size plus an additional 2.5&amp;amp;nbsp;ms delay. The CELT layer requires 2.5&amp;amp;nbsp;ms for MDCT window overlap.&lt;br /&gt;
&lt;br /&gt;
Xiph.org used matched [[PEAQ]] scores (approximate perceptual quality assessment made in software) for the CELT0.10 codec that was used as the basis of the CELT layer in the Opus reference release, which indicate the following [http://people.xiph.org/~xiphmont/demo/celt/demo.html#demo approximate equivalent settings] for stereo music.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Frame size&lt;br /&gt;
!Algorithmic delay&lt;br /&gt;
!Bitrate to match 64kbps@22.5ms delay&lt;br /&gt;
!fractional bitrate increase&lt;br /&gt;
|-&lt;br /&gt;
!20 ms&lt;br /&gt;
|22.5 ms&lt;br /&gt;
|64.0 kbps&lt;br /&gt;
| +0.0 %&lt;br /&gt;
|-&lt;br /&gt;
!10 ms&lt;br /&gt;
|12.5 ms&lt;br /&gt;
|70.4 kbps&lt;br /&gt;
| +10.0 %&lt;br /&gt;
|-&lt;br /&gt;
!5 ms&lt;br /&gt;
|7.5 ms&lt;br /&gt;
|84.8 kbps&lt;br /&gt;
| +32.5 %&lt;br /&gt;
|-&lt;br /&gt;
!2.5 ms&lt;br /&gt;
|5.0 ms&lt;br /&gt;
|112.0 kbps&lt;br /&gt;
| +75.0 %&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
N.B. This table is useful for interactive streaming only. For music storage &amp;amp; delayed playback or non-interactive streaming, latency reduction is not important and the default 20&amp;amp;nbsp;ms frame size is preferable.&lt;br /&gt;
&lt;br /&gt;
=== Channel count vs bitrate ===&lt;br /&gt;
&lt;br /&gt;
For surround sound bitrates, use [[Bitrate#Equivalent bitrate estimates for multichannel audio]].&lt;br /&gt;
&lt;br /&gt;
For ambisonics, see [https://www.mdpi.com/2076-3417/10/9/3188 AMBIQUAL listening test], paper figures 11 and 12.&lt;br /&gt;
&lt;br /&gt;
== Implementations ==&lt;br /&gt;
&lt;br /&gt;
The format and algorithms are openly documented and the reference implementation is published as free software. The reference implementation (Opus Audio Tools, opus-tools), consisting of separate encoders and decoders, is published under the terms of a BSD-like license. It is written in C programming language and can be compiled for hardware architectures with or without floating point unit. The accompanying diagnostic tool opusinfo reports detailed technical information about Opus files, including information on the standard compliance of the bitstream format. It is based on ogginfo from the vorbis-tools and therefore, unlike the encoder and decoder, available under the terms of version 2 of the GPL.&lt;br /&gt;
&lt;br /&gt;
=== Reference implementation (libopus + binaries) ===&lt;br /&gt;
The commandline tools of the reference version are available pre-compiled for the most popular operating systems at [http://opus-codec.org/downloads opus-codec.org] and [https://ftp.mozilla.org/pub/mozilla.org/opus/ Mozilla&#039;s ftp server], plus in the foobar2000 free encoders pack and some alternative compiles through the hydrogenaud.io opus forum. The libopus commandline tools include encoder &amp;lt;code&amp;gt;opusenc&amp;lt;/code&amp;gt;, decoder &amp;lt;code&amp;gt;opusdec&amp;lt;/code&amp;gt;, and with a different license, the &amp;lt;code&amp;gt;opusinfo&amp;lt;/code&amp;gt; opus stream &amp;amp; metadata analyzer.&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;latest stable release&#039;&#039;&#039; is recommended for general use and as of mid 2014 is considered competitive with or superior to the best alternative speech or general music encoders at most supported bitrates.&lt;br /&gt;
&lt;br /&gt;
==== libopus v1.0 ====&lt;br /&gt;
Released 11 Sep 2012 when RFC6716 was standardized but mostly fully developed by late 2011.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Stable, well-tuned&#039;&#039;&#039; &amp;lt;code&amp;gt;opusenc&amp;lt;/code&amp;gt; reference encoder as included in RFC documentation.&lt;br /&gt;
&lt;br /&gt;
CELT layer closely related to CELT 0.10 implements Constrained VBR mode by default (bitrate boost used mainly for transients), plus true CBR.&lt;br /&gt;
&lt;br /&gt;
==== libopus v1.1 ==== &lt;br /&gt;
&lt;br /&gt;
The alpha source code released 21 Dec 2012 for testing &amp;amp; user feedback and following a beta release and testing, the stable 1.1 version was released on 5 December 2013, considered well tested enough for general release.&amp;lt;ref&amp;gt;https://people.xiph.org/~xiphmont/demo/opus/demo3.shtml&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
CELT layer [http://jmspeex.livejournal.com/11737.html quality improvements] introduced to provide &#039;&#039;&#039;unconstrained VBR&#039;&#039;&#039; include a rate boost not just for transients but now for highly tonal signals too and rate reduction when stereo image is narrow. There&#039;s also a rewrite of its &#039;&#039;&#039;transient detection&#039;&#039;&#039; code and &#039;&#039;&#039;time-frequency analysis&#039;&#039;&#039; code, and rewritten &#039;&#039;&#039;dynamic allocation&#039;&#039;&#039; code (HF/LF tilt and Band Boost) to allow more aggressive changes from the typical static allocation when warranted.&lt;br /&gt;
&lt;br /&gt;
There are many minor improvements to &#039;&#039;&#039;speech quality&#039;&#039;&#039; in both SILK and CELT layers.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;DC-rejection&#039;&#039;&#039; below 3 Hz also aids quality if inaudible DC offset is present with no effect on deep bass notes.&lt;br /&gt;
*&#039;&#039;&#039;Automatic speech/music detection&#039;&#039;&#039; is introduced to optimize encoding mode choices, especially near the bitrate target range (presumably around 24–40&amp;amp;nbsp;kbps) where the encoder may perform best with SILK, hybrid or CELT depending on content type. Below that range SILK performs best for both music &amp;amp; speech, and above it CELT performs best for speech &amp;amp; music. The detection, without look-ahead is not perfect but usually is undecided in audio where either mode will work well.&lt;br /&gt;
*&#039;&#039;&#039;Automatic bandwidth detection&#039;&#039;&#039; is also introduced to save wasted bits allocated to absent frequencies.&lt;br /&gt;
*&#039;&#039;&#039;Surround sound improvements&#039;&#039;&#039; were introduced since the beta release with considerable advances in coding efficiency, bitrate allocation and quality.&lt;br /&gt;
&lt;br /&gt;
A new &#039;&#039;&#039;temporal VBR&#039;&#039;&#039; feature is added. For reasons not explained by classic psychoacoustics, it appears that giving more bits to loud frames (stealing from quiet frames) makes the result substantially better on listening tests. This feature is not tunable: it always affects VBR calculation at low bitrates, gradually becoming weaker at higher bitrates, until it turns off completely at 68&amp;amp;nbsp;kbps.&lt;br /&gt;
&lt;br /&gt;
==== libopus v1.1.3 ==== &lt;br /&gt;
Released July 15th, 2016. This version contains:&lt;br /&gt;
&lt;br /&gt;
*Neon optimizations improving performance on ARMv7 and ARMv8 by up to 15%&lt;br /&gt;
*Fixes some issues with 16-bit platforms (e.g. TI C55x)&lt;br /&gt;
*Fixes to comfort noise generation (CNG)&lt;br /&gt;
*Documenting that PLC packets can also be 2 bytes&lt;br /&gt;
*Includes experimental ambisonics work (&amp;lt;code&amp;gt;--enable-ambisonics&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
==== libopus v1.2.1 ==== &lt;br /&gt;
Released June 26th, 2017. This version contains:&lt;br /&gt;
&lt;br /&gt;
*Speech quality improvements especially in the 12–20&amp;amp;nbsp;kbit/s range&lt;br /&gt;
*Improved VBR encoding for hybrid mode&lt;br /&gt;
*More aggressive use of wider speech bandwidth, including fullband speech starting at 14&amp;amp;nbsp;kbit/s&lt;br /&gt;
*Music quality improvements in the 32–48&amp;amp;nbsp;kbit/s range&lt;br /&gt;
*Generic and SSE CELT optimizations&lt;br /&gt;
*Support for directly encoding packets up to 120&amp;amp;nbsp;ms&lt;br /&gt;
*DTX support for CELT mode&lt;br /&gt;
*SILK CBR improvements&lt;br /&gt;
*Support for all of the fixes in draft-ietf-codec-opus-update-06 (the mono downmix and the folding fixes need &amp;lt;code&amp;gt;--enable-update-draft&amp;lt;/code&amp;gt;)&lt;br /&gt;
*Many bug fixes, including integer wrap-arounds discovered through fuzzing (no security implications)&lt;br /&gt;
&lt;br /&gt;
==== libopus v1.3 ====&lt;br /&gt;
Released on October 18th, 2018. This version contains:&lt;br /&gt;
&lt;br /&gt;
* Improvements to voice activity detection (VAD) and speech/music classification using a recurrent neural network (RNN)&lt;br /&gt;
* Support for ambisonics coding using channel mapping families 2 and 3&lt;br /&gt;
* Improvements to stereo speech coding at low bitrate&lt;br /&gt;
* Using wideband encoding down to 9&amp;amp;nbsp;kb/s&lt;br /&gt;
* Making it possible to use SILK down to bitrates around 5&amp;amp;nbsp;kb/s&lt;br /&gt;
* Minor quality improvement on tones&lt;br /&gt;
* Enabling the spec fixes in &amp;lt;nowiki&amp;gt;RFC 8251&amp;lt;/nowiki&amp;gt; by default&lt;br /&gt;
* Security/hardening improvements&lt;br /&gt;
* Fixes to the CELT PLC&lt;br /&gt;
* Bandwidth detection fixes&lt;br /&gt;
&lt;br /&gt;
==== libopus v1.3.1 ====&lt;br /&gt;
Released on April 12th, 2019. This version contains:&lt;br /&gt;
&lt;br /&gt;
* Fixes to x87 builds&lt;br /&gt;
* A new OPUS_GET_IN_DTX query to know if the encoder is in DTX mode (last frame was either a comfort noise frame or not encoded at all)&lt;br /&gt;
* A new (and still experimental) CMake-based build system that is eventually meant to replace the VS2015 build system (the autotools one will stay)&lt;br /&gt;
&lt;br /&gt;
==== libopus v1.4 ====&lt;br /&gt;
Released on April 20th, 2023. This version contains:&lt;br /&gt;
&lt;br /&gt;
* Improved tuning of the Opus in-band FEC (LBRR). See the issue for details&lt;br /&gt;
* Added a OPUS_SET_INBAND_FEC(2) option that turns on FEC, but does not force SILK mode (FEC will be disabled in CELT mode)&lt;br /&gt;
* Improved tuning and various fixes to DTX&lt;br /&gt;
* Added Meson support, improved CMake support In addition to the improvements above, this release includes many minor bug fixes.&lt;br /&gt;
&lt;br /&gt;
=== Other implementations ===&lt;br /&gt;
&lt;br /&gt;
==== Concentus ====&lt;br /&gt;
&lt;br /&gt;
The libopus reference library (fixed-point variant) has successfully been ported to both &#039;&#039;&#039;C#&#039;&#039;&#039; and &#039;&#039;&#039;Java&#039;&#039;&#039;, as part of a project called &#039;&#039;&#039;Concentus&#039;&#039;&#039;. The aim of the project is specifically to target cross-platform applications where native C interop is relatively difficult. The code is available on [https://github.com/lostromb/concentus Github] and distributed via standard package managers.&lt;br /&gt;
&lt;br /&gt;
==== Emscripten ports ====&lt;br /&gt;
&lt;br /&gt;
At least one port of reference opus in Javascript has been made using the automated tool [https://developer.mozilla.org/en-US/docs/Mozilla/Projects/Emscripten emscripten]. See [https://blog.rillke.com/opusenc.js/ here], [https://github.com/kazuki/opus.js-sample here] and [https://github.com/audiocogs/opus.js here].&lt;br /&gt;
&lt;br /&gt;
==== ffmpeg ====&lt;br /&gt;
FFmpeg has a native [https://ffmpeg.org/ffmpeg-codecs.html#opus &amp;quot;opus&amp;quot;] codec. It is of lower quality than the reference libopus and only does CELT coding. However, it is still good for the ecosystem to have a completely independent implementation.&lt;br /&gt;
&lt;br /&gt;
== Hardware &amp;amp; Software Support ==&lt;br /&gt;
&lt;br /&gt;
Much of this section is based heavily on the Jan 12th 2013 version of the &#039;&#039;&#039;Support&#039;&#039;&#039; section of the [http://en.wikipedia.org/wiki/Opus_%28audio_format%29 Wikipedia article], which is more likely to be kept updated and to provide links to further information about the supporting platforms.&lt;br /&gt;
&lt;br /&gt;
=== VoIP software ===&lt;br /&gt;
* The open source virtual PBX Freeswitch supports Opus transcoding.&lt;br /&gt;
* The voice-chat software Mumble supports Opus as its main codec.&lt;br /&gt;
* SIP softphones Phoner and PhonerLite support Opus&lt;br /&gt;
* The SIP and IAX2 client SFLphone is being fitted with Opus support.&lt;br /&gt;
* Integration of Opus into the Skype client is finished, although no version with Opus support has yet been published.&lt;br /&gt;
* TrueConf video conferencing solutions support Opus.&lt;br /&gt;
* Opus support is planned for Jitsi 2.0, together with VP8 video.&lt;br /&gt;
* Empathy may use any format supported in GStreamer, including Opus.&lt;br /&gt;
* Line2 has replaced their current codec with Opus. Their iOS app will be the first to be released with the Opus. The Android app will follow later.&lt;br /&gt;
* CSipSimple supports Opus, Codec2, G.726 and G.722.1 with an additional plug-in.&lt;br /&gt;
* The voice-chat software TeamSpeak 3 supports Opus for voice and music in pre-release server 3.0.7-pre2 and beta client version 3.0.10.&lt;br /&gt;
* The proprietary instant messenger service Discord uses Opus audio for all voice calls and video calls, regardless of platform.&lt;br /&gt;
&lt;br /&gt;
=== Web frameworks and browsers ===&lt;br /&gt;
* Opus support is mandatory for WebRTC implementations.&lt;br /&gt;
* Mozilla supports Opus beginning with version 15 of Firefox and Thunderbird, plus Seamonkey, which uses a shared codebase.&lt;br /&gt;
* Depending on the backend in use, Opera supports inline playback of embedded Opus files. Official support for Opus and WebRTC are on the development roadmap.&lt;br /&gt;
* Chromium and Google Chrome have audio support as of version 33.&lt;br /&gt;
* Apple&#039;s Safari browser now supports Opus as of iOS 11 and macOS 10.13 High Sierra.&lt;br /&gt;
* Maxthon Cloud Browser&lt;br /&gt;
&lt;br /&gt;
=== Streaming audio ===&lt;br /&gt;
* Icecast. (examples: [http://dir.xiph.org/by_format/Opus Stream directory by format Opus], [http://smj.delfa.net/opus_64.m3u 64k]/[http://smj.delfa.net/opus_256.m3u 256k] [http://smj.delfa.net/ Smooth Jazz Opus Stream], [http://www.absoluteradio.co.uk/listen/labs.html Absolute Radio Opus Trial] 7 stations at 24,64,96 kbps, [http://icecast.ofdoom.com:8000/burst-opus.ogg Icecast Of Doom 96k]&lt;br /&gt;
* Krad Radio&lt;br /&gt;
* Liquidsoap&lt;br /&gt;
&lt;br /&gt;
=== Operating systems and desktop multimedia frameworks ===&lt;br /&gt;
* In Debian GNU/Linux the Opus development tools and supporting libraries can be installed from the preconfigured repositories in the next stable version (&amp;quot;wheezy&amp;quot;) that is expected to be released in early 2013.&lt;br /&gt;
* For Microsoft Windows, there are DirectShow filters supporting Opus, including DC-Bass Source Mod and the LAV Filters.&lt;br /&gt;
* In GStreamer the integration of Opus support is complete.&lt;br /&gt;
* FFmpeg supports decoding and encoding Opus via the external library libopus.&lt;br /&gt;
* Android 5.0 and above supports Opus natively if encapsulated in the Ogg container, but .opus filename extension is not recognized by Android, so the use of double filename extension .opus.ogg is recommended as a workaround to allow apps to recognize files as playable audio.&lt;br /&gt;
&lt;br /&gt;
=== Hardware support ===&lt;br /&gt;
* Support in [[Rockbox]] is available. This means hardware support for a series of portable media players (including some products from the iPod series by Apple and Sansa, iriver and Archos devices) and with &amp;quot;Rockbox as an Application&amp;quot; (RaaA) also on Android devices.&lt;br /&gt;
&lt;br /&gt;
=== Player software ===&lt;br /&gt;
&lt;br /&gt;
* Windows/Mac/Linux (Cross-Platform)&lt;br /&gt;
*# [[VLC]] (media player supports Opus as of version 2.0.4&lt;br /&gt;
*# [[Amarok]] 2.8 has transcoding support for Opus codec if ffmpeg is compiled with support for the libopus library &amp;amp; support for playback of Opus encoded files if Amarok is compiled against TagLib (newer than V1.8)&lt;br /&gt;
*# Clementine has Opus support&lt;br /&gt;
*# Audacious player&lt;br /&gt;
*# [[MPD]] as of version 0.18 if compiled against libopus (supports both encoding for http streams and decoding)&lt;br /&gt;
* Windows Exclusive&lt;br /&gt;
*# AIMP supports Opus natively as of version 3.20 build 1125 beta 1&lt;br /&gt;
*# [[foobar2000]] supports Opus natively as of v1.1.14 beta 1&lt;br /&gt;
*# Mpxplay supports Opus (using a decoder DLL) as of v1.60 alpha 2&lt;br /&gt;
*# [[Winamp]] supports Opus using a [http://forums.winamp.com/showthread.php?p=2925154#post2925154 3rd party plug-in]&lt;br /&gt;
*# MPC-HC&lt;br /&gt;
*# Resonic Player/Pro supports Opus natively as of version 0.2.2&lt;br /&gt;
* iOS/Android (Cross-Platform)&lt;br /&gt;
*# Capriccio [https://itunes.apple.com/us/app/capriccio-free-ultimate-music/id434829018?mt=8 iOS]/[https://play.google.com/store/apps/details?id=me.ideariboso.capriccio Android]&lt;br /&gt;
*# foobar2000 [https://itunes.apple.com/us/app/foobar2000/id1072807669?mt=8 iOS]/[https://play.google.com/store/apps/details?id=com.foobar2000.foobar2000&amp;amp;hl=en Android]&lt;br /&gt;
* Android Exclusive&lt;br /&gt;
*# [https://play.google.com/store/apps/details?id=in.krosbits.musicolet Musicolet Music Player]&lt;br /&gt;
*# [http://gonemadmusicplayer.blogspot.com/ GoneMAD Music Player]&lt;br /&gt;
*# [http://neutronmp.com/ Neutron Music Player]&lt;br /&gt;
*# [http://www.videolan.org/vlc/download-android.html VLC Media Player for Android]&lt;br /&gt;
*# [https://play.google.com/store/apps/details?id=ru.recoilme.freeamp FreeMP]&lt;br /&gt;
*# [https://play.google.com/store/apps/details?id=net.mderezynski.youki3 Youki]&lt;br /&gt;
*# [https://play.google.com/store/apps/details?id=com.aimp.player AIMP for Android]&lt;br /&gt;
*# [https://play.google.com/store/apps/details?id=com.acmeandroid.listen Listen Audiobook Player]&lt;br /&gt;
*# [https://play.google.com/store/apps/details?id=com.mxtech.videoplayer.ad MX Player]&lt;br /&gt;
*# [https://play.google.com/store/apps/details?id=org.tomahawk.tomahawk_android Tomahawk Player Beta]&lt;br /&gt;
*# [https://play.google.com/store/apps/details?id=com.maxmpz.audioplayer&amp;amp;hl=en Poweramp Music Player]&lt;br /&gt;
&lt;br /&gt;
=== Other software ===&lt;br /&gt;
* CDBurnerXP&lt;br /&gt;
* MediaCoder&lt;br /&gt;
* Report-IT&lt;br /&gt;
* [[MP3tag|MP3tag]]&lt;br /&gt;
* [https://moisescardona.me/opus-gui/ Opus GUI]&lt;br /&gt;
* [http://www.xdlab.ru/en/ TagScanner]&lt;br /&gt;
* [http://www.xmedia-recode.de/ XMedia Recode]&lt;br /&gt;
* [[loudgain]]&lt;br /&gt;
&lt;br /&gt;
== References &amp;amp; Notes ==&lt;br /&gt;
&lt;br /&gt;
*{{note|homepage|a}}[http://opus-codec.org/ opus-codec.org homepage]&lt;br /&gt;
*{{note|FAQ|b}}[http://wiki.xiph.org/OpusFAQ Opus FAQ]&lt;br /&gt;
*{{note|RFC|c}}[http://tools.ietf.org/html/rfc6716 IETF RFC 6716]&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
[[Category:Codecs]]&lt;br /&gt;
[[Category:Lossy]]&lt;br /&gt;
[[Category:Encoder/Decoder]]&lt;/div&gt;</summary>
		<author><name>Artoria2e5</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=Opus&amp;diff=37294</id>
		<title>Opus</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=Opus&amp;diff=37294"/>
		<updated>2023-08-12T05:26:08Z</updated>

		<summary type="html">&lt;p&gt;Artoria2e5: /* Channel count vs bitrate */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Software Infobox&lt;br /&gt;
| name = Opus&lt;br /&gt;
| logo = [[Image:opus-logo.png|250px|Official Opus logo]]&lt;br /&gt;
| screenshot =&lt;br /&gt;
| caption = Opus Interactive Audio Codec&lt;br /&gt;
| maintainer = [http://xiph.org/ Xiph.Org Foundation]&lt;br /&gt;
| stable_release = 1.4&lt;br /&gt;
| operating_system = Windows, Mac OS/X, Linux/BSD&lt;br /&gt;
| use = Encoder/Decoder&lt;br /&gt;
| license = 3-clause BSD license&lt;br /&gt;
| website = [http://www.opus-codec.org/ opus-codec.org]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Opus&#039;&#039;&#039; is a [[lossy]] audio compression format developed by the Internet Engineering Task Force (IETF) designed to be suitable for interactive real-time applications over the Internet,{{ref|homepage|a}} including music as well as speech, yet it is also very competitive for use as a storage and playback format, being a [https://web.archive.org/web/20200130083553/http://people.xiph.org/~greg/opus/ha2011/ class leader at around 64 kbps] and [http://listening-test.coresv.net/results.htm also at 96 kbps]. As an open format standardised through [http://tools.ietf.org/html/rfc6716 Request for Comments (RFC) 6716],{{ref|RFC|c}} a high quality reference implementation is provided under the 3-clause BSD license{{ref|homepage|a}} which compiles and runs on the vast majority of general purpose and embedded (fixed point) processors. Many Software patents which cover Opus are licensed under royalty-free terms.{{ref|FAQ|b}}  Opus is also a Mandatory To Implement (MTI) codec for the upcoming WebRTC (Web Real Time Communication) specification of the World Wide Web Consortium (W3C).&lt;br /&gt;
&lt;br /&gt;
Opus incorporates technology from two codecs, the speech-oriented SILK codec developed by Skype and the multi-purpose low-latency CELT codec developed by Xiph.org with significant changes to each to ensure they can work together.{{ref|RFC|c}} Opus can seamlessly transition among high and low bitrates, using a linear prediction codec (the SILK layer) at lower bitrates and a lapped transform codec (the CELT layer) at higher bitrates, as well as a hybrid of the two for a short overlap in which SILK encodes the 0–8&amp;amp;nbsp;kHz spectrum and the CELT layer encodes only the frequencies above 8kHz.{{ref|RFC|c}} Opus has very low algorithmic delay (typ 22.5&amp;amp;nbsp;ms) compared to popular music formats such as [[MP3]], [[Vorbis |Ogg Vorbis]], [[AAC | LC-AAC and HE-AAC]] (all over 100&amp;amp;nbsp;ms), yet performs very competitively with them in terms of quality per bitrate, making it comparably viable as a storage &amp;amp; playback format. Also unlike Vorbis, Opus does not require the definition of large codebooks for each individual file, making it also preferable for short clips of audio, such as those often used by game developers, a field where patent-free Vorbis is commonly used.{{ref|RFC|c}}&lt;br /&gt;
&lt;br /&gt;
Considerably more details of the history and potential applications for Opus are included in the &#039;&#039;Wikipedia&#039;&#039; page for &#039;&#039;&#039;[http://en.wikipedia.org/wiki/Opus_%28audio_format%29 Opus (audio format)]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Characteristics==&lt;br /&gt;
Opus supports bitrates from 6&amp;amp;nbsp;kbps to 510&amp;amp;nbsp;kbps for typical stereo audio sources (and a maximum of around 255 kbps per channel for multichannel audio), with the &#039;sweet spot&#039; for music and general audio around 30&amp;amp;nbsp;kbps (mono) and 40–100&amp;amp;nbsp;kbps (stereo). It is intrinsically [[VBR | variable bitrate]], though constrained VBR and [[CBR | constant bitrate]] modes are possible where required. In the case of the reference release, libopus, the target bitrate is calibrated against the internal constant quality targets so that over a typical music collection, something very close to the target bitrate will be achieved. This bitrate-calibrated approach differs from most VBR encoders (e.g. LAME, helix mp3, qaac, Nero aacenc, Ogg Vorbis, Musepack) where a setting on some &#039;constant quality&#039; scale (which differs between encoders) is used and the bitrate will fall where it may. Improved future versions can be expected to offer improved quality at the same setting. Independent implementations may adopt a different approach.&lt;br /&gt;
&lt;br /&gt;
Opus is able to seamlessly adapt its mode of operation without glitches or sound interruption (an illustrative demonstration of [http://opus-codec.org/examples/#gauge bitrate scalability] is on the Opus Examples page), which can be particularly useful for mixed-content audio or varying network conditions, making the unified Opus codec superior to a suite of different codecs that might otherwise cover the same range of bitrate and quality settings and would require out-of-band signalling to instigate codec switching. The switching includes the choice of mono, stereo and other channel mappings, the use of the speech-oriented SILK layer, the general-purpose CELT layer or the hybrid of both, and the use of different audio bandwidths (4, 6, 8, 12, or 20&amp;amp;nbsp;kHz) as well as the quality adjustments within the same operating mode that are available in most VBR-capable codecs.&lt;br /&gt;
&lt;br /&gt;
Of importance mainly to interactive uses, but potentially useful in time-delayed audio streaming also, Opus includes packet loss concealment (PLC) in all modes and, in the speech-oriented modes where the SILK layer is active it also supports Forward Error Correction (FEC) where the expected rate of packet loss can be indicated to the encoder by the user or by application software and critical frames (e.g. consonant sounds) can be retransmitted at low bitrate to preserve intelligibility.&lt;br /&gt;
&lt;br /&gt;
For music and general audio, the CELT layer of Opus builds on knowledge gained during xiph.org&#039;s Vorbis development and ensures as a primary goal that the total energy in each spectral band is preserved while requiring only a modest bitrate overhead to achieve this, thereby eliminating a lot of bitrate-starvation artifacts such as &#039;birdies&#039; that are common in low-bitrate MP3, especially during transients, applause and cymbal sounds. This technique likewise increases coding efficiency at bitrates targetting transparent music reproduction. Short blocks (2.5&amp;amp;nbsp;ms) are also possible for efficient transient handling. Short blocks can also be used exclusively, if very low algorithmic delay (5.0&amp;amp;nbsp;ms) is required to enable very low-latency interative audio (e.g. live networked music performances such as remote jam sessions), though greater bitrate is then required to maintain the same quality (illustrated in [http://people.xiph.org/~xiphmont/demo/celt/demo.html#demo Monty&#039;s CELT demo page] under Constant PEAQ value, varying latency). CELT uses a number of additional techniques and provides additional advanced tools to enable encoder tuning.&lt;br /&gt;
&lt;br /&gt;
Opus natively supports [[gapless playback]] (though [[Gapless_playback#Poorly_designed_playback_systems | poor player design]] might itself induce interruptions during playback). Playback gain is also required, making some form of [[ReplayGain]] or [[ReplayGain_2.0_specification | similar]] volume control possible in any compliant player.&lt;br /&gt;
&lt;br /&gt;
==Bitrate performance==&lt;br /&gt;
For mono speech, Opus ranges from intelligible narrowband speech reproduction starting at 6&amp;amp;nbsp;kbps to medium-band, wideband and superwideband speech, reaching full-band speech by around 14&amp;amp;nbsp;kbps in encoder version 1.2 (was 21&amp;amp;nbsp;kbps in v1.1, 29&amp;amp;nbsp;kbps in v1.0). Above about 32&amp;amp;nbsp;kbps, the SILK layer is no longer used at all, as CELT alone gives superior quality.&lt;br /&gt;
&lt;br /&gt;
For music, the SILK modes are quite tolerable and better than CELT at very low bitrates. The hybrid mode is adopted as bitrate increases, extending bandwidth first to 12&amp;amp;nbsp;kHz (comparable with compact cassette) then to the full 20&amp;amp;nbsp;kHz and CELT then takes over. Assuming the source is stereo, the transition from mono to stereo typically happens between the transition from 12&amp;amp;nbsp;kHz to 20&amp;amp;nbsp;kHz. Encoder version 1.2 includes great improvements to music encoding in the 32–64&amp;amp;nbsp;kbps range, allowing full-band stereo at 32&amp;amp;nbsp;kbps and providing acceptable quality at 48&amp;amp;nbsp;kbps where artifacts are audible but rarely annoying. Version 1.3 is expected to further improve quality in this range.&lt;br /&gt;
&lt;br /&gt;
Multi-format stereo music listening tests have demonstrated the superiority of Opus at 64&amp;amp;nbsp;kbps and 96&amp;amp;nbsp;kbps compared to the best AAC-LC, HE-AAC and Ogg Vorbis encoders, and at 96&amp;amp;nbsp;kbps also to 128&amp;amp;nbsp;kbps MP3 encoded using LAME &amp;lt;code&amp;gt;-V 5&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Indicative bitrate and quality==&lt;br /&gt;
The tables below give illustrative, indicative quality guidance based on typical modes used internally by Opus and a range of listening tests.&lt;br /&gt;
&lt;br /&gt;
In encoder version 1.1 automatic detection of speech/music and bandwidth detection were introduced to improve mode decisions and VBR is less constrained, all with the aim of maximizing the quality/bitrate tradeoff, and these improvements are further enhanced in version 1.2 and 1.3. These tables are likely to require updates as the encoder is improved, especially in low-bitrate regions.&lt;br /&gt;
&lt;br /&gt;
===Speech encoding quality===&lt;br /&gt;
This table assumes a &#039;&#039;&#039;monophonic&#039;&#039;&#039; source sampled at CD quality or above (typ 48 kHz sampling rate) but mentions stereo compatibility for 40kbps+. The default 20ms frame size (22.5ms latency) is assumed. Note that the selection of &#039;&#039;VOIP&#039;&#039; mode will deliberately modify the sound with a High Pass Filter and emphasis of formants and harmonics to improve intelligibility of speech especially in noisy environments much as telephones do. &#039;&#039;Auto&#039;&#039; mode will not modify the sound prior to encoding so is usually better for high quality speech recordings or mixed speech and music.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Bitrate Target&lt;br /&gt;
!Bandwidth&lt;br /&gt;
!Typical Mode Used&lt;br /&gt;
!Speech Quality&lt;br /&gt;
!Use Cases / Competitive Codecs&lt;br /&gt;
|-&lt;br /&gt;
! Less than 6 kbps&lt;br /&gt;
| &amp;amp;mdash;&lt;br /&gt;
| &amp;amp;mdash;&lt;br /&gt;
| Bitrates lower than 6 kbps not supported by Opus (SILK disabled if forced to encode, which results in terrible speech quality)&lt;br /&gt;
| Try [https://en.wikipedia.org/wiki/Codec_2 Codec 2] for 0.45–3.2&amp;amp;nbsp;kbps mono speech or [[Wikipedia:Lyra (codec)|Lyra]] for 3.2&amp;amp;nbsp;kbps mono speech&lt;br /&gt;
|-&lt;br /&gt;
!6 kbps&lt;br /&gt;
|4 kHz narrow-band&lt;br /&gt;
|SILK&lt;br /&gt;
|Fair, intelligible&lt;br /&gt;
|AMR-NB may be a little better, but higher latency &amp;amp; proprietary, [[Speex]] also competitive&lt;br /&gt;
|-&lt;br /&gt;
!9 kbps VBR/CVBR&amp;lt;br&amp;gt;10 kbps CBR&lt;br /&gt;
|8 kHz wide-band&lt;br /&gt;
|SILK&lt;br /&gt;
|Telephone quality&lt;br /&gt;
|AMR-NB &amp;amp; AMR-WB similar quality, but higher latency &amp;amp; proprietary. [[Speex]] competitive.&lt;br /&gt;
|-&lt;br /&gt;
!12 kbps&lt;br /&gt;
|12 kHz super-wideband&lt;br /&gt;
|hybrid&lt;br /&gt;
|Medium bandwidth, better than telephone quality&lt;br /&gt;
|Similar quality to AMR-WB&lt;br /&gt;
|-&lt;br /&gt;
!16 kbps&lt;br /&gt;
|20 kHz&lt;br /&gt;
|hybrid/CELT&lt;br /&gt;
|Wideband speech quality&lt;br /&gt;
|Similar to/better than AMR-WB&lt;br /&gt;
|-&lt;br /&gt;
!24 kbps&lt;br /&gt;
|20 kHz&lt;br /&gt;
|hybrid/CELT&lt;br /&gt;
|Near transparent speech&lt;br /&gt;
|Better than AMR-WB. Podcasts/audiobooks/talk-radio.&lt;br /&gt;
|-&lt;br /&gt;
!32 kbps&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Essentially transparent speech plus moderately good stereo music&lt;br /&gt;
|Much better than AMR-WB. Podcasts/audiobooks/talk-radio.&lt;br /&gt;
|-&lt;br /&gt;
!40 kbps&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Essentially transparent mono or stereo speech, fairly good stereo music&lt;br /&gt;
|Stereo podcasts/audiobooks/talk radio with some music&lt;br /&gt;
|-&lt;br /&gt;
!48 kbps or more&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Essentially transparent mono or stereo speech, reasonable music&lt;br /&gt;
|Flexible general purpose modes to suit mixed music and speech&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
One major limitation of Opus at low bitrate is that SILK is inherently VBR: it accepts no constraints in CVBR, and if forced to do CBR the quality degrades from bit-shaving. As a result, even though constrained VBR is designed such that a fixed-rate data link requires at most one frame of buffer to handle the variation in bit rate -- great news for communication links -- any use of SILK, even in hybrid mode, has the potential of breaking this intention. This makes Opus suboptimal for low-rate radio links: radio links requires a predictable buffer amount, which is only possible with CBR when SILK is used, but use of CBR in turn hurts SILK. There is a noticeable quality difference at the NB/WB switch at 9 kbps VBR / 10 kbps CBR.&lt;br /&gt;
&lt;br /&gt;
Opus 1.3+ allows forced use of SILK down to 5 kbps VBR (NB) and 6 kbps VBR (WB, requires forcing the C API with &amp;lt;code&amp;gt;OPUS_SET_BANDWIDTH&amp;lt;/code&amp;gt;). However, quality is in no way guaranteed -- it&#039;s just possible.&lt;br /&gt;
&lt;br /&gt;
===Music encoding quality===&lt;br /&gt;
This table assumes a &#039;&#039;&#039;stereophonic&#039;&#039;&#039; source sampled at CD quality or above (typ 48&amp;amp;nbsp;kHz sampling rate). Opus will automatically use mono at very low bitrates, though a certain amount of stereo encoding can still be used (content dependent) even when mono is specified as the typical stereo mode in the table below.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Bitrate target&lt;br /&gt;
!Stereo mode&lt;br /&gt;
!Bandwidth&lt;br /&gt;
!typ SILK/CELT use&lt;br /&gt;
!Music quality notes&lt;br /&gt;
!Use cases/notes/competitive codecs&lt;br /&gt;
|-&lt;br /&gt;
!6 kbps&lt;br /&gt;
|mono&lt;br /&gt;
|6 kHz&lt;br /&gt;
|SILK&lt;br /&gt;
|Poor, muffled sound but intelligible lyrics.&lt;br /&gt;
| &amp;amp;mdash;&lt;br /&gt;
|-&lt;br /&gt;
!8 kbps&lt;br /&gt;
|mono&lt;br /&gt;
|6 kHz&lt;br /&gt;
|SILK&lt;br /&gt;
|Poor, muffled but OK for bitrate&lt;br /&gt;
| &amp;amp;mdash;&lt;br /&gt;
|-&lt;br /&gt;
!14 to 16 kbps&lt;br /&gt;
|mono&lt;br /&gt;
|20 kHz&lt;br /&gt;
|hybrid/CELT&lt;br /&gt;
|Fairly poor but OK for bitrate&lt;br /&gt;
|Perhaps acceptable for incidental music&lt;br /&gt;
|-&lt;br /&gt;
!22 to 24 kbps&lt;br /&gt;
|mono&lt;br /&gt;
|20 kHz&lt;br /&gt;
|hybrid/CELT&lt;br /&gt;
|Fair but OK for bitrate&lt;br /&gt;
|OK for incidental music&lt;br /&gt;
|-&lt;br /&gt;
!32 to 40 kbps&lt;br /&gt;
|stereo&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Moderately good stereo, some artifacts, rarely nasty&lt;br /&gt;
|Stereo podcasts, audiobooks, very low bitrate music&lt;br /&gt;
|-&lt;br /&gt;
!48 kbps&lt;br /&gt;
|stereo&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Full bandwidth stereo music, nice sound, may have problems with cymbals&lt;br /&gt;
|Stereo podcasts, audiobooks, low bitrate music&lt;br /&gt;
|-&lt;br /&gt;
!64 kbps&lt;br /&gt;
|stereo&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Full bandwidth stereo music, nice sound, detectable differences to original (mostly &#039;not annoying&#039;)&lt;br /&gt;
|Music storage &amp;amp; streaming. Beat HE-AAC, Vorbis, MP3 in [https://web.archive.org/web/20200130083553/http://people.xiph.org/~greg/opus/ha2011/ listening test]&lt;br /&gt;
|-&lt;br /&gt;
!96 kbps&lt;br /&gt;
|stereo&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Full bandwidth stereo music, good quality approaching transparency&lt;br /&gt;
|Music storage &amp;amp; high quality streaming. Beat LC-AAC, Vorbis, MP3 in [http://listening-test.coresv.net/results.htm listening test]&lt;br /&gt;
|-&lt;br /&gt;
!112 kbps&lt;br /&gt;
|stereo&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Fairly close to transparency (needs more testing)&lt;br /&gt;
|Music storage &amp;amp; high quality streaming. Very low-latency stereo networked music performance/jam sessions at OK quality (see below table)&lt;br /&gt;
|-&lt;br /&gt;
!128 kbps&lt;br /&gt;
|stereo&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Very close to transparency (needs more testing). Most modern codecs competitive (AAC-LC, Vorbis, MP3)&lt;br /&gt;
|Music storage &amp;amp; streaming. Future download music sales.&lt;br /&gt;
|-&lt;br /&gt;
!160 to 192 kbps&lt;br /&gt;
|stereo&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Transparent with very low chance of artifacts (a few killer samples still detectable). Most old &amp;amp; new lossy codecs competitive.&lt;br /&gt;
|Music storage &amp;amp; streaming, dedicated limited-bandwidth audio links (e.g. wireless, [http://en.wikipedia.org/wiki/Bluetooth_profile#Advanced_Audio_Distribution_Profile_.28A2DP.29 A2DP-bluetooth] type links). &lt;br /&gt;
|-&lt;br /&gt;
!510 kbps&lt;br /&gt;
|stereo&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Maximum possible stereo bitrate target (actual rate often less than 510 for default frame size). Most old and new lossy codecs competitive, plus near-lossless [[lossyWAV]] and [[WavPack | WavPack lossy]]&lt;br /&gt;
|Music storage, dedicated limited-bitrate audio links (e.g. wireless, minimum latency high quality audio. LossyWAV and WavPack lossy are very competitive for storage, and WavPack lossy &amp;lt;code&amp;gt;--blocksize=256&amp;lt;/code&amp;gt; may be competitive with minimum latency mode also.&lt;br /&gt;
|-&lt;br /&gt;
!&amp;gt;510 kbps&lt;br /&gt;
| &amp;amp;mdash;&lt;br /&gt;
| &amp;amp;mdash;&lt;br /&gt;
| &amp;amp;mdash;&lt;br /&gt;
|Above Opus bitrate range allowed for stereo sources&lt;br /&gt;
|Settle for 510&amp;amp;nbsp;kbps or use [[lossless]], [[lossyWAV]], [[WavPack | WavPack lossy]] or lossy transform/subband codecs like [[Vorbis]], [[Musepack]] at very high settings.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Lower latency versus quality/bitrate trade-off===&lt;br /&gt;
====Packet overhead in interactive applications====&lt;br /&gt;
For interactive use on the Internet or other packet-based networks, total bandwidth used will be subject to packet overhead. The more packet headers that are transmitted every second, the greater will be the overhead that is required. For this reason, Opus, while defaulting to 20&amp;amp;nbsp;ms frames, supports 60&amp;amp;nbsp;ms frames to reduce overhead when transporting low-bitrate SILK frames at the expense of greater latency, which may still be acceptable for speech, and also supports 10&amp;amp;nbsp;ms SILK frames to reduce latency somewhat at the expense of packet overhead.&lt;br /&gt;
&lt;br /&gt;
In the CELT layer, which tends to operate at higher bitrates than SILK, 20&amp;amp;nbsp;ms frames are the default, but frames of 10&amp;amp;nbsp;ms, 5&amp;amp;nbsp;ms and 2.5&amp;amp;nbsp;ms are also possible, which directly increases the frame overhead by transmitting more packets per second to achieve lower latency. In addition, as we&#039;ll see below it also reduces the quality/bitrate tradeoff of the CELT layer itself.&lt;br /&gt;
&lt;br /&gt;
You probably do not want to use a frame size lower than 10&amp;amp;nbsp;ms in applications containing speech, as doing so turns off SILK. The &amp;quot;lowdelay&amp;quot; application switch (available in FFmpeg and the raw library) turns off SILK to cut out 4&amp;amp;nbsp;ms of synchronization delay, but a frame size of 10&amp;amp;nbsp;ms achieves more delay reduction compared to default without sacrificing SILK.&lt;br /&gt;
&lt;br /&gt;
None of the bitrates mentioned in this article account for the packet overhead.&lt;br /&gt;
&lt;br /&gt;
====CELT layer latency versus quality/bitrate trade-off====&lt;br /&gt;
Unlike the SILK layer, which works on fixed 10&amp;amp;nbsp;ms blocks, 1, 2 or 6 of which can be combined into an Opus frame, the CELT layer is able to modify the encoding block lengths available to enable its use with shorter frames.&lt;br /&gt;
&lt;br /&gt;
When the CELT layer uses 10&amp;amp;nbsp;ms, 5&amp;amp;nbsp;ms and 2.5&amp;amp;nbsp;ms frames instead of the default 20&amp;amp;nbsp;ms, it must use smaller transform block sizes to achieve this, thereby reducing frequency resolution in the MDCT compared to the default transform window, thus reducing encoding efficiency for tonal signals. To obtain the same frequency precision for a sound divided into shorter transform windows, improved amplitude precision is necessary, resulting in increased bitrate to obtain the same perceptual quality (or conversely lower quality at the same bitrate).&lt;br /&gt;
&lt;br /&gt;
These reduced-latency modes remain efficient for transient signals, which use short blocks anyway.&lt;br /&gt;
&lt;br /&gt;
In all modes, the algorithmic delay consists of the frame size plus an additional 2.5&amp;amp;nbsp;ms delay. The CELT layer requires 2.5&amp;amp;nbsp;ms for MDCT window overlap.&lt;br /&gt;
&lt;br /&gt;
Xiph.org used matched [[PEAQ]] scores (approximate perceptual quality assessment made in software) for the CELT0.10 codec that was used as the basis of the CELT layer in the Opus reference release, which indicate the following [http://people.xiph.org/~xiphmont/demo/celt/demo.html#demo approximate equivalent settings] for stereo music.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Frame size&lt;br /&gt;
!Algorithmic delay&lt;br /&gt;
!Bitrate to match 64kbps@22.5ms delay&lt;br /&gt;
!fractional bitrate increase&lt;br /&gt;
|-&lt;br /&gt;
!20 ms&lt;br /&gt;
|22.5 ms&lt;br /&gt;
|64.0 kbps&lt;br /&gt;
| +0.0 %&lt;br /&gt;
|-&lt;br /&gt;
!10 ms&lt;br /&gt;
|12.5 ms&lt;br /&gt;
|70.4 kbps&lt;br /&gt;
| +10.0 %&lt;br /&gt;
|-&lt;br /&gt;
!5 ms&lt;br /&gt;
|7.5 ms&lt;br /&gt;
|84.8 kbps&lt;br /&gt;
| +32.5 %&lt;br /&gt;
|-&lt;br /&gt;
!2.5 ms&lt;br /&gt;
|5.0 ms&lt;br /&gt;
|112.0 kbps&lt;br /&gt;
| +75.0 %&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
N.B. This table is useful for interactive streaming only. For music storage &amp;amp; delayed playback or non-interactive streaming, latency reduction is not important and the default 20&amp;amp;nbsp;ms frame size is preferable.&lt;br /&gt;
&lt;br /&gt;
=== Channel count vs bitrate ===&lt;br /&gt;
&lt;br /&gt;
For surround sound bitrates, use [[Bitrate#Equivalent bitrate estimates for multichannel audio]].&lt;br /&gt;
&lt;br /&gt;
For ambisonics, see [https://www.mdpi.com/2076-3417/10/9/3188 AMBIQUAL listening test], paper figures 11 and 12.&lt;br /&gt;
&lt;br /&gt;
== Implementations ==&lt;br /&gt;
&lt;br /&gt;
The format and algorithms are openly documented and the reference implementation is published as free software. The reference implementation (Opus Audio Tools, opus-tools), consisting of separate encoders and decoders, is published under the terms of a BSD-like license. It is written in C programming language and can be compiled for hardware architectures with or without floating point unit. The accompanying diagnostic tool opusinfo reports detailed technical information about Opus files, including information on the standard compliance of the bitstream format. It is based on ogginfo from the vorbis-tools and therefore, unlike the encoder and decoder, available under the terms of version 2 of the GPL.&lt;br /&gt;
&lt;br /&gt;
=== Reference implementation (libopus + binaries) ===&lt;br /&gt;
The commandline tools of the reference version are available pre-compiled for the most popular operating systems at [http://opus-codec.org/downloads opus-codec.org] and [https://ftp.mozilla.org/pub/mozilla.org/opus/ Mozilla&#039;s ftp server], plus in the foobar2000 free encoders pack and some alternative compiles through the hydrogenaud.io opus forum. The libopus commandline tools include encoder &amp;lt;code&amp;gt;opusenc&amp;lt;/code&amp;gt;, decoder &amp;lt;code&amp;gt;opusdec&amp;lt;/code&amp;gt;, and with a different license, the &amp;lt;code&amp;gt;opusinfo&amp;lt;/code&amp;gt; opus stream &amp;amp; metadata analyzer.&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;latest stable release&#039;&#039;&#039; is recommended for general use and as of mid 2014 is considered competitive with or superior to the best alternative speech or general music encoders at most supported bitrates.&lt;br /&gt;
&lt;br /&gt;
==== libopus v1.0 ====&lt;br /&gt;
Released 11 Sep 2012 when RFC6716 was standardized but mostly fully developed by late 2011.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Stable, well-tuned&#039;&#039;&#039; &amp;lt;code&amp;gt;opusenc&amp;lt;/code&amp;gt; reference encoder as included in RFC documentation.&lt;br /&gt;
&lt;br /&gt;
CELT layer closely related to CELT 0.10 implements Constrained VBR mode by default (bitrate boost used mainly for transients), plus true CBR.&lt;br /&gt;
&lt;br /&gt;
==== libopus v1.1 ==== &lt;br /&gt;
&lt;br /&gt;
The alpha source code released 21 Dec 2012 for testing &amp;amp; user feedback and following a beta release and testing, the stable 1.1 version was released on 5 December 2013, considered well tested enough for general release.&amp;lt;ref&amp;gt;https://people.xiph.org/~xiphmont/demo/opus/demo3.shtml&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
CELT layer [http://jmspeex.livejournal.com/11737.html quality improvements] introduced to provide &#039;&#039;&#039;unconstrained VBR&#039;&#039;&#039; include a rate boost not just for transients but now for highly tonal signals too and rate reduction when stereo image is narrow. There&#039;s also a rewrite of its &#039;&#039;&#039;transient detection&#039;&#039;&#039; code and &#039;&#039;&#039;time-frequency analysis&#039;&#039;&#039; code, and rewritten &#039;&#039;&#039;dynamic allocation&#039;&#039;&#039; code (HF/LF tilt and Band Boost) to allow more aggressive changes from the typical static allocation when warranted.&lt;br /&gt;
&lt;br /&gt;
There are many minor improvements to &#039;&#039;&#039;speech quality&#039;&#039;&#039; in both SILK and CELT layers.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;DC-rejection&#039;&#039;&#039; below 3 Hz also aids quality if inaudible DC offset is present with no effect on deep bass notes.&lt;br /&gt;
*&#039;&#039;&#039;Automatic speech/music detection&#039;&#039;&#039; is introduced to optimize encoding mode choices, especially near the bitrate target range (presumably around 24–40&amp;amp;nbsp;kbps) where the encoder may perform best with SILK, hybrid or CELT depending on content type. Below that range SILK performs best for both music &amp;amp; speech, and above it CELT performs best for speech &amp;amp; music. The detection, without look-ahead is not perfect but usually is undecided in audio where either mode will work well.&lt;br /&gt;
*&#039;&#039;&#039;Automatic bandwidth detection&#039;&#039;&#039; is also introduced to save wasted bits allocated to absent frequencies.&lt;br /&gt;
*&#039;&#039;&#039;Surround sound improvements&#039;&#039;&#039; were introduced since the beta release with considerable advances in coding efficiency, bitrate allocation and quality.&lt;br /&gt;
&lt;br /&gt;
A new &#039;&#039;&#039;temporal VBR&#039;&#039;&#039; feature is added. For reasons not explained by classic psychoacoustics, it appears that giving more bits to loud frames (stealing from quiet frames) makes the result substantially better on listening tests. This feature is not tunable: it always affects VBR calculation at low bitrates, gradually becoming weaker at higher bitrates, until it turns off completely at 68&amp;amp;nbsp;kbps.&lt;br /&gt;
&lt;br /&gt;
==== libopus v1.1.3 ==== &lt;br /&gt;
Released July 15th, 2016. This version contains:&lt;br /&gt;
&lt;br /&gt;
*Neon optimizations improving performance on ARMv7 and ARMv8 by up to 15%&lt;br /&gt;
*Fixes some issues with 16-bit platforms (e.g. TI C55x)&lt;br /&gt;
*Fixes to comfort noise generation (CNG)&lt;br /&gt;
*Documenting that PLC packets can also be 2 bytes&lt;br /&gt;
*Includes experimental ambisonics work (&amp;lt;code&amp;gt;--enable-ambisonics&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
==== libopus v1.2.1 ==== &lt;br /&gt;
Released June 26th, 2017. This version contains:&lt;br /&gt;
&lt;br /&gt;
*Speech quality improvements especially in the 12–20&amp;amp;nbsp;kbit/s range&lt;br /&gt;
*Improved VBR encoding for hybrid mode&lt;br /&gt;
*More aggressive use of wider speech bandwidth, including fullband speech starting at 14&amp;amp;nbsp;kbit/s&lt;br /&gt;
*Music quality improvements in the 32–48&amp;amp;nbsp;kbit/s range&lt;br /&gt;
*Generic and SSE CELT optimizations&lt;br /&gt;
*Support for directly encoding packets up to 120&amp;amp;nbsp;ms&lt;br /&gt;
*DTX support for CELT mode&lt;br /&gt;
*SILK CBR improvements&lt;br /&gt;
*Support for all of the fixes in draft-ietf-codec-opus-update-06 (the mono downmix and the folding fixes need &amp;lt;code&amp;gt;--enable-update-draft&amp;lt;/code&amp;gt;)&lt;br /&gt;
*Many bug fixes, including integer wrap-arounds discovered through fuzzing (no security implications)&lt;br /&gt;
&lt;br /&gt;
==== libopus v1.3 ====&lt;br /&gt;
Released on October 18th, 2018. This version contains:&lt;br /&gt;
&lt;br /&gt;
* Improvements to voice activity detection (VAD) and speech/music classification using a recurrent neural network (RNN)&lt;br /&gt;
* Support for ambisonics coding using channel mapping families 2 and 3&lt;br /&gt;
* Improvements to stereo speech coding at low bitrate&lt;br /&gt;
* Using wideband encoding down to 9&amp;amp;nbsp;kb/s&lt;br /&gt;
* Making it possible to use SILK down to bitrates around 5&amp;amp;nbsp;kb/s&lt;br /&gt;
* Minor quality improvement on tones&lt;br /&gt;
* Enabling the spec fixes in &amp;lt;nowiki&amp;gt;RFC 8251&amp;lt;/nowiki&amp;gt; by default&lt;br /&gt;
* Security/hardening improvements&lt;br /&gt;
* Fixes to the CELT PLC&lt;br /&gt;
* Bandwidth detection fixes&lt;br /&gt;
&lt;br /&gt;
==== libopus v1.3.1 ====&lt;br /&gt;
Released on April 12th, 2019. This version contains:&lt;br /&gt;
&lt;br /&gt;
* Fixes to x87 builds&lt;br /&gt;
* A new OPUS_GET_IN_DTX query to know if the encoder is in DTX mode (last frame was either a comfort noise frame or not encoded at all)&lt;br /&gt;
* A new (and still experimental) CMake-based build system that is eventually meant to replace the VS2015 build system (the autotools one will stay)&lt;br /&gt;
&lt;br /&gt;
==== libopus v1.4 ====&lt;br /&gt;
Released on April 20th, 2023. This version contains:&lt;br /&gt;
&lt;br /&gt;
* Improved tuning of the Opus in-band FEC (LBRR). See the issue for details&lt;br /&gt;
* Added a OPUS_SET_INBAND_FEC(2) option that turns on FEC, but does not force SILK mode (FEC will be disabled in CELT mode)&lt;br /&gt;
* Improved tuning and various fixes to DTX&lt;br /&gt;
* Added Meson support, improved CMake support In addition to the improvements above, this release includes many minor bug fixes.&lt;br /&gt;
&lt;br /&gt;
=== Other implementations ===&lt;br /&gt;
&lt;br /&gt;
==== Concentus ====&lt;br /&gt;
&lt;br /&gt;
The libopus reference library (fixed-point variant) has successfully been ported to both &#039;&#039;&#039;C#&#039;&#039;&#039; and &#039;&#039;&#039;Java&#039;&#039;&#039;, as part of a project called &#039;&#039;&#039;Concentus&#039;&#039;&#039;. The aim of the project is specifically to target cross-platform applications where native C interop is relatively difficult. The code is available on [https://github.com/lostromb/concentus Github] and distributed via standard package managers.&lt;br /&gt;
&lt;br /&gt;
==== Emscripten ports ====&lt;br /&gt;
&lt;br /&gt;
At least one port of reference opus in Javascript has been made using the automated tool [https://developer.mozilla.org/en-US/docs/Mozilla/Projects/Emscripten emscripten]. See [https://blog.rillke.com/opusenc.js/ here], [https://github.com/kazuki/opus.js-sample here] and [https://github.com/audiocogs/opus.js here].&lt;br /&gt;
&lt;br /&gt;
==== ffmpeg ====&lt;br /&gt;
FFmpeg has a native [https://ffmpeg.org/ffmpeg-codecs.html#opus &amp;quot;opus&amp;quot;] codec. It is of lower quality than the reference libopus and only does CELT coding. However, it is still good for the ecosystem to have a completely independent implementation.&lt;br /&gt;
&lt;br /&gt;
== Hardware &amp;amp; Software Support ==&lt;br /&gt;
&lt;br /&gt;
Much of this section is based heavily on the Jan 12th 2013 version of the &#039;&#039;&#039;Support&#039;&#039;&#039; section of the [http://en.wikipedia.org/wiki/Opus_%28audio_format%29 Wikipedia article], which is more likely to be kept updated and to provide links to further information about the supporting platforms.&lt;br /&gt;
&lt;br /&gt;
=== VoIP software ===&lt;br /&gt;
* The open source virtual PBX Freeswitch supports Opus transcoding.&lt;br /&gt;
* The voice-chat software Mumble supports Opus as its main codec.&lt;br /&gt;
* SIP softphones Phoner and PhonerLite support Opus&lt;br /&gt;
* The SIP and IAX2 client SFLphone is being fitted with Opus support.&lt;br /&gt;
* Integration of Opus into the Skype client is finished, although no version with Opus support has yet been published.&lt;br /&gt;
* TrueConf video conferencing solutions support Opus.&lt;br /&gt;
* Opus support is planned for Jitsi 2.0, together with VP8 video.&lt;br /&gt;
* Empathy may use any format supported in GStreamer, including Opus.&lt;br /&gt;
* Line2 has replaced their current codec with Opus. Their iOS app will be the first to be released with the Opus. The Android app will follow later.&lt;br /&gt;
* CSipSimple supports Opus, Codec2, G.726 and G.722.1 with an additional plug-in.&lt;br /&gt;
* The voice-chat software TeamSpeak 3 supports Opus for voice and music in pre-release server 3.0.7-pre2 and beta client version 3.0.10.&lt;br /&gt;
* The proprietary instant messenger service Discord uses Opus audio for all voice calls and video calls, regardless of platform.&lt;br /&gt;
&lt;br /&gt;
=== Web frameworks and browsers ===&lt;br /&gt;
* Opus support is mandatory for WebRTC implementations.&lt;br /&gt;
* Mozilla supports Opus beginning with version 15 of Firefox and Thunderbird, plus Seamonkey, which uses a shared codebase.&lt;br /&gt;
* Depending on the backend in use, Opera supports inline playback of embedded Opus files. Official support for Opus and WebRTC are on the development roadmap.&lt;br /&gt;
* Chromium and Google Chrome have audio support as of version 33.&lt;br /&gt;
* Apple&#039;s Safari browser now supports Opus as of iOS 11 and macOS 10.13 High Sierra.&lt;br /&gt;
* Maxthon Cloud Browser&lt;br /&gt;
&lt;br /&gt;
=== Streaming audio ===&lt;br /&gt;
* Icecast. (examples: [http://dir.xiph.org/by_format/Opus Stream directory by format Opus], [http://smj.delfa.net/opus_64.m3u 64k]/[http://smj.delfa.net/opus_256.m3u 256k] [http://smj.delfa.net/ Smooth Jazz Opus Stream], [http://www.absoluteradio.co.uk/listen/labs.html Absolute Radio Opus Trial] 7 stations at 24,64,96 kbps, [http://icecast.ofdoom.com:8000/burst-opus.ogg Icecast Of Doom 96k]&lt;br /&gt;
* Krad Radio&lt;br /&gt;
* Liquidsoap&lt;br /&gt;
&lt;br /&gt;
=== Operating systems and desktop multimedia frameworks ===&lt;br /&gt;
* In Debian GNU/Linux the Opus development tools and supporting libraries can be installed from the preconfigured repositories in the next stable version (&amp;quot;wheezy&amp;quot;) that is expected to be released in early 2013.&lt;br /&gt;
* For Microsoft Windows, there are DirectShow filters supporting Opus, including DC-Bass Source Mod and the LAV Filters.&lt;br /&gt;
* In GStreamer the integration of Opus support is complete.&lt;br /&gt;
* FFmpeg supports decoding and encoding Opus via the external library libopus.&lt;br /&gt;
* Android 5.0 and above supports Opus natively if encapsulated in the Ogg container, but .opus filename extension is not recognized by Android, so the use of double filename extension .opus.ogg is recommended as a workaround to allow apps to recognize files as playable audio.&lt;br /&gt;
&lt;br /&gt;
=== Hardware support ===&lt;br /&gt;
* Support in [[Rockbox]] is available. This means hardware support for a series of portable media players (including some products from the iPod series by Apple and Sansa, iriver and Archos devices) and with &amp;quot;Rockbox as an Application&amp;quot; (RaaA) also on Android devices.&lt;br /&gt;
&lt;br /&gt;
=== Player software ===&lt;br /&gt;
&lt;br /&gt;
* Windows/Mac/Linux (Cross-Platform)&lt;br /&gt;
*# [[VLC]] (media player supports Opus as of version 2.0.4&lt;br /&gt;
*# [[Amarok]] 2.8 has transcoding support for Opus codec if ffmpeg is compiled with support for the libopus library &amp;amp; support for playback of Opus encoded files if Amarok is compiled against TagLib (newer than V1.8)&lt;br /&gt;
*# Clementine has Opus support&lt;br /&gt;
*# Audacious player&lt;br /&gt;
*# [[MPD]] as of version 0.18 if compiled against libopus (supports both encoding for http streams and decoding)&lt;br /&gt;
* Windows Exclusive&lt;br /&gt;
*# AIMP supports Opus natively as of version 3.20 build 1125 beta 1&lt;br /&gt;
*# [[foobar2000]] supports Opus natively as of v1.1.14 beta 1&lt;br /&gt;
*# Mpxplay supports Opus (using a decoder DLL) as of v1.60 alpha 2&lt;br /&gt;
*# [[Winamp]] supports Opus using a [http://forums.winamp.com/showthread.php?p=2925154#post2925154 3rd party plug-in]&lt;br /&gt;
*# MPC-HC&lt;br /&gt;
*# Resonic Player/Pro supports Opus natively as of version 0.2.2&lt;br /&gt;
* iOS/Android (Cross-Platform)&lt;br /&gt;
*# Capriccio [https://itunes.apple.com/us/app/capriccio-free-ultimate-music/id434829018?mt=8 iOS]/[https://play.google.com/store/apps/details?id=me.ideariboso.capriccio Android]&lt;br /&gt;
*# foobar2000 [https://itunes.apple.com/us/app/foobar2000/id1072807669?mt=8 iOS]/[https://play.google.com/store/apps/details?id=com.foobar2000.foobar2000&amp;amp;hl=en Android]&lt;br /&gt;
* Android Exclusive&lt;br /&gt;
*# [https://play.google.com/store/apps/details?id=in.krosbits.musicolet Musicolet Music Player]&lt;br /&gt;
*# [http://gonemadmusicplayer.blogspot.com/ GoneMAD Music Player]&lt;br /&gt;
*# [http://neutronmp.com/ Neutron Music Player]&lt;br /&gt;
*# [http://www.videolan.org/vlc/download-android.html VLC Media Player for Android]&lt;br /&gt;
*# [https://play.google.com/store/apps/details?id=ru.recoilme.freeamp FreeMP]&lt;br /&gt;
*# [https://play.google.com/store/apps/details?id=net.mderezynski.youki3 Youki]&lt;br /&gt;
*# [https://play.google.com/store/apps/details?id=com.aimp.player AIMP for Android]&lt;br /&gt;
*# [https://play.google.com/store/apps/details?id=com.acmeandroid.listen Listen Audiobook Player]&lt;br /&gt;
*# [https://play.google.com/store/apps/details?id=com.mxtech.videoplayer.ad MX Player]&lt;br /&gt;
*# [https://play.google.com/store/apps/details?id=org.tomahawk.tomahawk_android Tomahawk Player Beta]&lt;br /&gt;
*# [https://play.google.com/store/apps/details?id=com.maxmpz.audioplayer&amp;amp;hl=en Poweramp Music Player]&lt;br /&gt;
&lt;br /&gt;
=== Other software ===&lt;br /&gt;
* CDBurnerXP&lt;br /&gt;
* MediaCoder&lt;br /&gt;
* Report-IT&lt;br /&gt;
* [[MP3tag|MP3tag]]&lt;br /&gt;
* [https://moisescardona.me/opus-gui/ Opus GUI]&lt;br /&gt;
* [http://www.xdlab.ru/en/ TagScanner]&lt;br /&gt;
* [http://www.xmedia-recode.de/ XMedia Recode]&lt;br /&gt;
&lt;br /&gt;
== References &amp;amp; Notes ==&lt;br /&gt;
&lt;br /&gt;
*{{note|homepage|a}}[http://opus-codec.org/ opus-codec.org homepage]&lt;br /&gt;
*{{note|FAQ|b}}[http://wiki.xiph.org/OpusFAQ Opus FAQ]&lt;br /&gt;
*{{note|RFC|c}}[http://tools.ietf.org/html/rfc6716 IETF RFC 6716]&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
[[Category:Codecs]]&lt;br /&gt;
[[Category:Lossy]]&lt;br /&gt;
[[Category:Encoder/Decoder]]&lt;/div&gt;</summary>
		<author><name>Artoria2e5</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=Opus&amp;diff=37293</id>
		<title>Opus</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=Opus&amp;diff=37293"/>
		<updated>2023-08-12T05:26:00Z</updated>

		<summary type="html">&lt;p&gt;Artoria2e5: /* Indicative bitrate and quality */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Software Infobox&lt;br /&gt;
| name = Opus&lt;br /&gt;
| logo = [[Image:opus-logo.png|250px|Official Opus logo]]&lt;br /&gt;
| screenshot =&lt;br /&gt;
| caption = Opus Interactive Audio Codec&lt;br /&gt;
| maintainer = [http://xiph.org/ Xiph.Org Foundation]&lt;br /&gt;
| stable_release = 1.4&lt;br /&gt;
| operating_system = Windows, Mac OS/X, Linux/BSD&lt;br /&gt;
| use = Encoder/Decoder&lt;br /&gt;
| license = 3-clause BSD license&lt;br /&gt;
| website = [http://www.opus-codec.org/ opus-codec.org]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Opus&#039;&#039;&#039; is a [[lossy]] audio compression format developed by the Internet Engineering Task Force (IETF) designed to be suitable for interactive real-time applications over the Internet,{{ref|homepage|a}} including music as well as speech, yet it is also very competitive for use as a storage and playback format, being a [https://web.archive.org/web/20200130083553/http://people.xiph.org/~greg/opus/ha2011/ class leader at around 64 kbps] and [http://listening-test.coresv.net/results.htm also at 96 kbps]. As an open format standardised through [http://tools.ietf.org/html/rfc6716 Request for Comments (RFC) 6716],{{ref|RFC|c}} a high quality reference implementation is provided under the 3-clause BSD license{{ref|homepage|a}} which compiles and runs on the vast majority of general purpose and embedded (fixed point) processors. Many Software patents which cover Opus are licensed under royalty-free terms.{{ref|FAQ|b}}  Opus is also a Mandatory To Implement (MTI) codec for the upcoming WebRTC (Web Real Time Communication) specification of the World Wide Web Consortium (W3C).&lt;br /&gt;
&lt;br /&gt;
Opus incorporates technology from two codecs, the speech-oriented SILK codec developed by Skype and the multi-purpose low-latency CELT codec developed by Xiph.org with significant changes to each to ensure they can work together.{{ref|RFC|c}} Opus can seamlessly transition among high and low bitrates, using a linear prediction codec (the SILK layer) at lower bitrates and a lapped transform codec (the CELT layer) at higher bitrates, as well as a hybrid of the two for a short overlap in which SILK encodes the 0–8&amp;amp;nbsp;kHz spectrum and the CELT layer encodes only the frequencies above 8kHz.{{ref|RFC|c}} Opus has very low algorithmic delay (typ 22.5&amp;amp;nbsp;ms) compared to popular music formats such as [[MP3]], [[Vorbis |Ogg Vorbis]], [[AAC | LC-AAC and HE-AAC]] (all over 100&amp;amp;nbsp;ms), yet performs very competitively with them in terms of quality per bitrate, making it comparably viable as a storage &amp;amp; playback format. Also unlike Vorbis, Opus does not require the definition of large codebooks for each individual file, making it also preferable for short clips of audio, such as those often used by game developers, a field where patent-free Vorbis is commonly used.{{ref|RFC|c}}&lt;br /&gt;
&lt;br /&gt;
Considerably more details of the history and potential applications for Opus are included in the &#039;&#039;Wikipedia&#039;&#039; page for &#039;&#039;&#039;[http://en.wikipedia.org/wiki/Opus_%28audio_format%29 Opus (audio format)]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Characteristics==&lt;br /&gt;
Opus supports bitrates from 6&amp;amp;nbsp;kbps to 510&amp;amp;nbsp;kbps for typical stereo audio sources (and a maximum of around 255 kbps per channel for multichannel audio), with the &#039;sweet spot&#039; for music and general audio around 30&amp;amp;nbsp;kbps (mono) and 40–100&amp;amp;nbsp;kbps (stereo). It is intrinsically [[VBR | variable bitrate]], though constrained VBR and [[CBR | constant bitrate]] modes are possible where required. In the case of the reference release, libopus, the target bitrate is calibrated against the internal constant quality targets so that over a typical music collection, something very close to the target bitrate will be achieved. This bitrate-calibrated approach differs from most VBR encoders (e.g. LAME, helix mp3, qaac, Nero aacenc, Ogg Vorbis, Musepack) where a setting on some &#039;constant quality&#039; scale (which differs between encoders) is used and the bitrate will fall where it may. Improved future versions can be expected to offer improved quality at the same setting. Independent implementations may adopt a different approach.&lt;br /&gt;
&lt;br /&gt;
Opus is able to seamlessly adapt its mode of operation without glitches or sound interruption (an illustrative demonstration of [http://opus-codec.org/examples/#gauge bitrate scalability] is on the Opus Examples page), which can be particularly useful for mixed-content audio or varying network conditions, making the unified Opus codec superior to a suite of different codecs that might otherwise cover the same range of bitrate and quality settings and would require out-of-band signalling to instigate codec switching. The switching includes the choice of mono, stereo and other channel mappings, the use of the speech-oriented SILK layer, the general-purpose CELT layer or the hybrid of both, and the use of different audio bandwidths (4, 6, 8, 12, or 20&amp;amp;nbsp;kHz) as well as the quality adjustments within the same operating mode that are available in most VBR-capable codecs.&lt;br /&gt;
&lt;br /&gt;
Of importance mainly to interactive uses, but potentially useful in time-delayed audio streaming also, Opus includes packet loss concealment (PLC) in all modes and, in the speech-oriented modes where the SILK layer is active it also supports Forward Error Correction (FEC) where the expected rate of packet loss can be indicated to the encoder by the user or by application software and critical frames (e.g. consonant sounds) can be retransmitted at low bitrate to preserve intelligibility.&lt;br /&gt;
&lt;br /&gt;
For music and general audio, the CELT layer of Opus builds on knowledge gained during xiph.org&#039;s Vorbis development and ensures as a primary goal that the total energy in each spectral band is preserved while requiring only a modest bitrate overhead to achieve this, thereby eliminating a lot of bitrate-starvation artifacts such as &#039;birdies&#039; that are common in low-bitrate MP3, especially during transients, applause and cymbal sounds. This technique likewise increases coding efficiency at bitrates targetting transparent music reproduction. Short blocks (2.5&amp;amp;nbsp;ms) are also possible for efficient transient handling. Short blocks can also be used exclusively, if very low algorithmic delay (5.0&amp;amp;nbsp;ms) is required to enable very low-latency interative audio (e.g. live networked music performances such as remote jam sessions), though greater bitrate is then required to maintain the same quality (illustrated in [http://people.xiph.org/~xiphmont/demo/celt/demo.html#demo Monty&#039;s CELT demo page] under Constant PEAQ value, varying latency). CELT uses a number of additional techniques and provides additional advanced tools to enable encoder tuning.&lt;br /&gt;
&lt;br /&gt;
Opus natively supports [[gapless playback]] (though [[Gapless_playback#Poorly_designed_playback_systems | poor player design]] might itself induce interruptions during playback). Playback gain is also required, making some form of [[ReplayGain]] or [[ReplayGain_2.0_specification | similar]] volume control possible in any compliant player.&lt;br /&gt;
&lt;br /&gt;
==Bitrate performance==&lt;br /&gt;
For mono speech, Opus ranges from intelligible narrowband speech reproduction starting at 6&amp;amp;nbsp;kbps to medium-band, wideband and superwideband speech, reaching full-band speech by around 14&amp;amp;nbsp;kbps in encoder version 1.2 (was 21&amp;amp;nbsp;kbps in v1.1, 29&amp;amp;nbsp;kbps in v1.0). Above about 32&amp;amp;nbsp;kbps, the SILK layer is no longer used at all, as CELT alone gives superior quality.&lt;br /&gt;
&lt;br /&gt;
For music, the SILK modes are quite tolerable and better than CELT at very low bitrates. The hybrid mode is adopted as bitrate increases, extending bandwidth first to 12&amp;amp;nbsp;kHz (comparable with compact cassette) then to the full 20&amp;amp;nbsp;kHz and CELT then takes over. Assuming the source is stereo, the transition from mono to stereo typically happens between the transition from 12&amp;amp;nbsp;kHz to 20&amp;amp;nbsp;kHz. Encoder version 1.2 includes great improvements to music encoding in the 32–64&amp;amp;nbsp;kbps range, allowing full-band stereo at 32&amp;amp;nbsp;kbps and providing acceptable quality at 48&amp;amp;nbsp;kbps where artifacts are audible but rarely annoying. Version 1.3 is expected to further improve quality in this range.&lt;br /&gt;
&lt;br /&gt;
Multi-format stereo music listening tests have demonstrated the superiority of Opus at 64&amp;amp;nbsp;kbps and 96&amp;amp;nbsp;kbps compared to the best AAC-LC, HE-AAC and Ogg Vorbis encoders, and at 96&amp;amp;nbsp;kbps also to 128&amp;amp;nbsp;kbps MP3 encoded using LAME &amp;lt;code&amp;gt;-V 5&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Indicative bitrate and quality==&lt;br /&gt;
The tables below give illustrative, indicative quality guidance based on typical modes used internally by Opus and a range of listening tests.&lt;br /&gt;
&lt;br /&gt;
In encoder version 1.1 automatic detection of speech/music and bandwidth detection were introduced to improve mode decisions and VBR is less constrained, all with the aim of maximizing the quality/bitrate tradeoff, and these improvements are further enhanced in version 1.2 and 1.3. These tables are likely to require updates as the encoder is improved, especially in low-bitrate regions.&lt;br /&gt;
&lt;br /&gt;
===Speech encoding quality===&lt;br /&gt;
This table assumes a &#039;&#039;&#039;monophonic&#039;&#039;&#039; source sampled at CD quality or above (typ 48 kHz sampling rate) but mentions stereo compatibility for 40kbps+. The default 20ms frame size (22.5ms latency) is assumed. Note that the selection of &#039;&#039;VOIP&#039;&#039; mode will deliberately modify the sound with a High Pass Filter and emphasis of formants and harmonics to improve intelligibility of speech especially in noisy environments much as telephones do. &#039;&#039;Auto&#039;&#039; mode will not modify the sound prior to encoding so is usually better for high quality speech recordings or mixed speech and music.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Bitrate Target&lt;br /&gt;
!Bandwidth&lt;br /&gt;
!Typical Mode Used&lt;br /&gt;
!Speech Quality&lt;br /&gt;
!Use Cases / Competitive Codecs&lt;br /&gt;
|-&lt;br /&gt;
! Less than 6 kbps&lt;br /&gt;
| &amp;amp;mdash;&lt;br /&gt;
| &amp;amp;mdash;&lt;br /&gt;
| Bitrates lower than 6 kbps not supported by Opus (SILK disabled if forced to encode, which results in terrible speech quality)&lt;br /&gt;
| Try [https://en.wikipedia.org/wiki/Codec_2 Codec 2] for 0.45–3.2&amp;amp;nbsp;kbps mono speech or [[Wikipedia:Lyra (codec)|Lyra]] for 3.2&amp;amp;nbsp;kbps mono speech&lt;br /&gt;
|-&lt;br /&gt;
!6 kbps&lt;br /&gt;
|4 kHz narrow-band&lt;br /&gt;
|SILK&lt;br /&gt;
|Fair, intelligible&lt;br /&gt;
|AMR-NB may be a little better, but higher latency &amp;amp; proprietary, [[Speex]] also competitive&lt;br /&gt;
|-&lt;br /&gt;
!9 kbps VBR/CVBR&amp;lt;br&amp;gt;10 kbps CBR&lt;br /&gt;
|8 kHz wide-band&lt;br /&gt;
|SILK&lt;br /&gt;
|Telephone quality&lt;br /&gt;
|AMR-NB &amp;amp; AMR-WB similar quality, but higher latency &amp;amp; proprietary. [[Speex]] competitive.&lt;br /&gt;
|-&lt;br /&gt;
!12 kbps&lt;br /&gt;
|12 kHz super-wideband&lt;br /&gt;
|hybrid&lt;br /&gt;
|Medium bandwidth, better than telephone quality&lt;br /&gt;
|Similar quality to AMR-WB&lt;br /&gt;
|-&lt;br /&gt;
!16 kbps&lt;br /&gt;
|20 kHz&lt;br /&gt;
|hybrid/CELT&lt;br /&gt;
|Wideband speech quality&lt;br /&gt;
|Similar to/better than AMR-WB&lt;br /&gt;
|-&lt;br /&gt;
!24 kbps&lt;br /&gt;
|20 kHz&lt;br /&gt;
|hybrid/CELT&lt;br /&gt;
|Near transparent speech&lt;br /&gt;
|Better than AMR-WB. Podcasts/audiobooks/talk-radio.&lt;br /&gt;
|-&lt;br /&gt;
!32 kbps&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Essentially transparent speech plus moderately good stereo music&lt;br /&gt;
|Much better than AMR-WB. Podcasts/audiobooks/talk-radio.&lt;br /&gt;
|-&lt;br /&gt;
!40 kbps&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Essentially transparent mono or stereo speech, fairly good stereo music&lt;br /&gt;
|Stereo podcasts/audiobooks/talk radio with some music&lt;br /&gt;
|-&lt;br /&gt;
!48 kbps or more&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Essentially transparent mono or stereo speech, reasonable music&lt;br /&gt;
|Flexible general purpose modes to suit mixed music and speech&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
One major limitation of Opus at low bitrate is that SILK is inherently VBR: it accepts no constraints in CVBR, and if forced to do CBR the quality degrades from bit-shaving. As a result, even though constrained VBR is designed such that a fixed-rate data link requires at most one frame of buffer to handle the variation in bit rate -- great news for communication links -- any use of SILK, even in hybrid mode, has the potential of breaking this intention. This makes Opus suboptimal for low-rate radio links: radio links requires a predictable buffer amount, which is only possible with CBR when SILK is used, but use of CBR in turn hurts SILK. There is a noticeable quality difference at the NB/WB switch at 9 kbps VBR / 10 kbps CBR.&lt;br /&gt;
&lt;br /&gt;
Opus 1.3+ allows forced use of SILK down to 5 kbps VBR (NB) and 6 kbps VBR (WB, requires forcing the C API with &amp;lt;code&amp;gt;OPUS_SET_BANDWIDTH&amp;lt;/code&amp;gt;). However, quality is in no way guaranteed -- it&#039;s just possible.&lt;br /&gt;
&lt;br /&gt;
===Music encoding quality===&lt;br /&gt;
This table assumes a &#039;&#039;&#039;stereophonic&#039;&#039;&#039; source sampled at CD quality or above (typ 48&amp;amp;nbsp;kHz sampling rate). Opus will automatically use mono at very low bitrates, though a certain amount of stereo encoding can still be used (content dependent) even when mono is specified as the typical stereo mode in the table below.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Bitrate target&lt;br /&gt;
!Stereo mode&lt;br /&gt;
!Bandwidth&lt;br /&gt;
!typ SILK/CELT use&lt;br /&gt;
!Music quality notes&lt;br /&gt;
!Use cases/notes/competitive codecs&lt;br /&gt;
|-&lt;br /&gt;
!6 kbps&lt;br /&gt;
|mono&lt;br /&gt;
|6 kHz&lt;br /&gt;
|SILK&lt;br /&gt;
|Poor, muffled sound but intelligible lyrics.&lt;br /&gt;
| &amp;amp;mdash;&lt;br /&gt;
|-&lt;br /&gt;
!8 kbps&lt;br /&gt;
|mono&lt;br /&gt;
|6 kHz&lt;br /&gt;
|SILK&lt;br /&gt;
|Poor, muffled but OK for bitrate&lt;br /&gt;
| &amp;amp;mdash;&lt;br /&gt;
|-&lt;br /&gt;
!14 to 16 kbps&lt;br /&gt;
|mono&lt;br /&gt;
|20 kHz&lt;br /&gt;
|hybrid/CELT&lt;br /&gt;
|Fairly poor but OK for bitrate&lt;br /&gt;
|Perhaps acceptable for incidental music&lt;br /&gt;
|-&lt;br /&gt;
!22 to 24 kbps&lt;br /&gt;
|mono&lt;br /&gt;
|20 kHz&lt;br /&gt;
|hybrid/CELT&lt;br /&gt;
|Fair but OK for bitrate&lt;br /&gt;
|OK for incidental music&lt;br /&gt;
|-&lt;br /&gt;
!32 to 40 kbps&lt;br /&gt;
|stereo&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Moderately good stereo, some artifacts, rarely nasty&lt;br /&gt;
|Stereo podcasts, audiobooks, very low bitrate music&lt;br /&gt;
|-&lt;br /&gt;
!48 kbps&lt;br /&gt;
|stereo&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Full bandwidth stereo music, nice sound, may have problems with cymbals&lt;br /&gt;
|Stereo podcasts, audiobooks, low bitrate music&lt;br /&gt;
|-&lt;br /&gt;
!64 kbps&lt;br /&gt;
|stereo&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Full bandwidth stereo music, nice sound, detectable differences to original (mostly &#039;not annoying&#039;)&lt;br /&gt;
|Music storage &amp;amp; streaming. Beat HE-AAC, Vorbis, MP3 in [https://web.archive.org/web/20200130083553/http://people.xiph.org/~greg/opus/ha2011/ listening test]&lt;br /&gt;
|-&lt;br /&gt;
!96 kbps&lt;br /&gt;
|stereo&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Full bandwidth stereo music, good quality approaching transparency&lt;br /&gt;
|Music storage &amp;amp; high quality streaming. Beat LC-AAC, Vorbis, MP3 in [http://listening-test.coresv.net/results.htm listening test]&lt;br /&gt;
|-&lt;br /&gt;
!112 kbps&lt;br /&gt;
|stereo&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Fairly close to transparency (needs more testing)&lt;br /&gt;
|Music storage &amp;amp; high quality streaming. Very low-latency stereo networked music performance/jam sessions at OK quality (see below table)&lt;br /&gt;
|-&lt;br /&gt;
!128 kbps&lt;br /&gt;
|stereo&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Very close to transparency (needs more testing). Most modern codecs competitive (AAC-LC, Vorbis, MP3)&lt;br /&gt;
|Music storage &amp;amp; streaming. Future download music sales.&lt;br /&gt;
|-&lt;br /&gt;
!160 to 192 kbps&lt;br /&gt;
|stereo&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Transparent with very low chance of artifacts (a few killer samples still detectable). Most old &amp;amp; new lossy codecs competitive.&lt;br /&gt;
|Music storage &amp;amp; streaming, dedicated limited-bandwidth audio links (e.g. wireless, [http://en.wikipedia.org/wiki/Bluetooth_profile#Advanced_Audio_Distribution_Profile_.28A2DP.29 A2DP-bluetooth] type links). &lt;br /&gt;
|-&lt;br /&gt;
!510 kbps&lt;br /&gt;
|stereo&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Maximum possible stereo bitrate target (actual rate often less than 510 for default frame size). Most old and new lossy codecs competitive, plus near-lossless [[lossyWAV]] and [[WavPack | WavPack lossy]]&lt;br /&gt;
|Music storage, dedicated limited-bitrate audio links (e.g. wireless, minimum latency high quality audio. LossyWAV and WavPack lossy are very competitive for storage, and WavPack lossy &amp;lt;code&amp;gt;--blocksize=256&amp;lt;/code&amp;gt; may be competitive with minimum latency mode also.&lt;br /&gt;
|-&lt;br /&gt;
!&amp;gt;510 kbps&lt;br /&gt;
| &amp;amp;mdash;&lt;br /&gt;
| &amp;amp;mdash;&lt;br /&gt;
| &amp;amp;mdash;&lt;br /&gt;
|Above Opus bitrate range allowed for stereo sources&lt;br /&gt;
|Settle for 510&amp;amp;nbsp;kbps or use [[lossless]], [[lossyWAV]], [[WavPack | WavPack lossy]] or lossy transform/subband codecs like [[Vorbis]], [[Musepack]] at very high settings.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Lower latency versus quality/bitrate trade-off===&lt;br /&gt;
====Packet overhead in interactive applications====&lt;br /&gt;
For interactive use on the Internet or other packet-based networks, total bandwidth used will be subject to packet overhead. The more packet headers that are transmitted every second, the greater will be the overhead that is required. For this reason, Opus, while defaulting to 20&amp;amp;nbsp;ms frames, supports 60&amp;amp;nbsp;ms frames to reduce overhead when transporting low-bitrate SILK frames at the expense of greater latency, which may still be acceptable for speech, and also supports 10&amp;amp;nbsp;ms SILK frames to reduce latency somewhat at the expense of packet overhead.&lt;br /&gt;
&lt;br /&gt;
In the CELT layer, which tends to operate at higher bitrates than SILK, 20&amp;amp;nbsp;ms frames are the default, but frames of 10&amp;amp;nbsp;ms, 5&amp;amp;nbsp;ms and 2.5&amp;amp;nbsp;ms are also possible, which directly increases the frame overhead by transmitting more packets per second to achieve lower latency. In addition, as we&#039;ll see below it also reduces the quality/bitrate tradeoff of the CELT layer itself.&lt;br /&gt;
&lt;br /&gt;
You probably do not want to use a frame size lower than 10&amp;amp;nbsp;ms in applications containing speech, as doing so turns off SILK. The &amp;quot;lowdelay&amp;quot; application switch (available in FFmpeg and the raw library) turns off SILK to cut out 4&amp;amp;nbsp;ms of synchronization delay, but a frame size of 10&amp;amp;nbsp;ms achieves more delay reduction compared to default without sacrificing SILK.&lt;br /&gt;
&lt;br /&gt;
None of the bitrates mentioned in this article account for the packet overhead.&lt;br /&gt;
&lt;br /&gt;
====CELT layer latency versus quality/bitrate trade-off====&lt;br /&gt;
Unlike the SILK layer, which works on fixed 10&amp;amp;nbsp;ms blocks, 1, 2 or 6 of which can be combined into an Opus frame, the CELT layer is able to modify the encoding block lengths available to enable its use with shorter frames.&lt;br /&gt;
&lt;br /&gt;
When the CELT layer uses 10&amp;amp;nbsp;ms, 5&amp;amp;nbsp;ms and 2.5&amp;amp;nbsp;ms frames instead of the default 20&amp;amp;nbsp;ms, it must use smaller transform block sizes to achieve this, thereby reducing frequency resolution in the MDCT compared to the default transform window, thus reducing encoding efficiency for tonal signals. To obtain the same frequency precision for a sound divided into shorter transform windows, improved amplitude precision is necessary, resulting in increased bitrate to obtain the same perceptual quality (or conversely lower quality at the same bitrate).&lt;br /&gt;
&lt;br /&gt;
These reduced-latency modes remain efficient for transient signals, which use short blocks anyway.&lt;br /&gt;
&lt;br /&gt;
In all modes, the algorithmic delay consists of the frame size plus an additional 2.5&amp;amp;nbsp;ms delay. The CELT layer requires 2.5&amp;amp;nbsp;ms for MDCT window overlap.&lt;br /&gt;
&lt;br /&gt;
Xiph.org used matched [[PEAQ]] scores (approximate perceptual quality assessment made in software) for the CELT0.10 codec that was used as the basis of the CELT layer in the Opus reference release, which indicate the following [http://people.xiph.org/~xiphmont/demo/celt/demo.html#demo approximate equivalent settings] for stereo music.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Frame size&lt;br /&gt;
!Algorithmic delay&lt;br /&gt;
!Bitrate to match 64kbps@22.5ms delay&lt;br /&gt;
!fractional bitrate increase&lt;br /&gt;
|-&lt;br /&gt;
!20 ms&lt;br /&gt;
|22.5 ms&lt;br /&gt;
|64.0 kbps&lt;br /&gt;
| +0.0 %&lt;br /&gt;
|-&lt;br /&gt;
!10 ms&lt;br /&gt;
|12.5 ms&lt;br /&gt;
|70.4 kbps&lt;br /&gt;
| +10.0 %&lt;br /&gt;
|-&lt;br /&gt;
!5 ms&lt;br /&gt;
|7.5 ms&lt;br /&gt;
|84.8 kbps&lt;br /&gt;
| +32.5 %&lt;br /&gt;
|-&lt;br /&gt;
!2.5 ms&lt;br /&gt;
|5.0 ms&lt;br /&gt;
|112.0 kbps&lt;br /&gt;
| +75.0 %&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
N.B. This table is useful for interactive streaming only. For music storage &amp;amp; delayed playback or non-interactive streaming, latency reduction is not important and the default 20&amp;amp;nbsp;ms frame size is preferable.&lt;br /&gt;
&lt;br /&gt;
== Channel count vs bitrate ==&lt;br /&gt;
&lt;br /&gt;
For surround sound bitrates, use [[Bitrate#Equivalent bitrate estimates for multichannel audio]].&lt;br /&gt;
&lt;br /&gt;
For ambisonics, see [https://www.mdpi.com/2076-3417/10/9/3188 AMBIQUAL listening test], paper figures 11 and 12.&lt;br /&gt;
&lt;br /&gt;
== Implementations ==&lt;br /&gt;
&lt;br /&gt;
The format and algorithms are openly documented and the reference implementation is published as free software. The reference implementation (Opus Audio Tools, opus-tools), consisting of separate encoders and decoders, is published under the terms of a BSD-like license. It is written in C programming language and can be compiled for hardware architectures with or without floating point unit. The accompanying diagnostic tool opusinfo reports detailed technical information about Opus files, including information on the standard compliance of the bitstream format. It is based on ogginfo from the vorbis-tools and therefore, unlike the encoder and decoder, available under the terms of version 2 of the GPL.&lt;br /&gt;
&lt;br /&gt;
=== Reference implementation (libopus + binaries) ===&lt;br /&gt;
The commandline tools of the reference version are available pre-compiled for the most popular operating systems at [http://opus-codec.org/downloads opus-codec.org] and [https://ftp.mozilla.org/pub/mozilla.org/opus/ Mozilla&#039;s ftp server], plus in the foobar2000 free encoders pack and some alternative compiles through the hydrogenaud.io opus forum. The libopus commandline tools include encoder &amp;lt;code&amp;gt;opusenc&amp;lt;/code&amp;gt;, decoder &amp;lt;code&amp;gt;opusdec&amp;lt;/code&amp;gt;, and with a different license, the &amp;lt;code&amp;gt;opusinfo&amp;lt;/code&amp;gt; opus stream &amp;amp; metadata analyzer.&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;latest stable release&#039;&#039;&#039; is recommended for general use and as of mid 2014 is considered competitive with or superior to the best alternative speech or general music encoders at most supported bitrates.&lt;br /&gt;
&lt;br /&gt;
==== libopus v1.0 ====&lt;br /&gt;
Released 11 Sep 2012 when RFC6716 was standardized but mostly fully developed by late 2011.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Stable, well-tuned&#039;&#039;&#039; &amp;lt;code&amp;gt;opusenc&amp;lt;/code&amp;gt; reference encoder as included in RFC documentation.&lt;br /&gt;
&lt;br /&gt;
CELT layer closely related to CELT 0.10 implements Constrained VBR mode by default (bitrate boost used mainly for transients), plus true CBR.&lt;br /&gt;
&lt;br /&gt;
==== libopus v1.1 ==== &lt;br /&gt;
&lt;br /&gt;
The alpha source code released 21 Dec 2012 for testing &amp;amp; user feedback and following a beta release and testing, the stable 1.1 version was released on 5 December 2013, considered well tested enough for general release.&amp;lt;ref&amp;gt;https://people.xiph.org/~xiphmont/demo/opus/demo3.shtml&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
CELT layer [http://jmspeex.livejournal.com/11737.html quality improvements] introduced to provide &#039;&#039;&#039;unconstrained VBR&#039;&#039;&#039; include a rate boost not just for transients but now for highly tonal signals too and rate reduction when stereo image is narrow. There&#039;s also a rewrite of its &#039;&#039;&#039;transient detection&#039;&#039;&#039; code and &#039;&#039;&#039;time-frequency analysis&#039;&#039;&#039; code, and rewritten &#039;&#039;&#039;dynamic allocation&#039;&#039;&#039; code (HF/LF tilt and Band Boost) to allow more aggressive changes from the typical static allocation when warranted.&lt;br /&gt;
&lt;br /&gt;
There are many minor improvements to &#039;&#039;&#039;speech quality&#039;&#039;&#039; in both SILK and CELT layers.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;DC-rejection&#039;&#039;&#039; below 3 Hz also aids quality if inaudible DC offset is present with no effect on deep bass notes.&lt;br /&gt;
*&#039;&#039;&#039;Automatic speech/music detection&#039;&#039;&#039; is introduced to optimize encoding mode choices, especially near the bitrate target range (presumably around 24–40&amp;amp;nbsp;kbps) where the encoder may perform best with SILK, hybrid or CELT depending on content type. Below that range SILK performs best for both music &amp;amp; speech, and above it CELT performs best for speech &amp;amp; music. The detection, without look-ahead is not perfect but usually is undecided in audio where either mode will work well.&lt;br /&gt;
*&#039;&#039;&#039;Automatic bandwidth detection&#039;&#039;&#039; is also introduced to save wasted bits allocated to absent frequencies.&lt;br /&gt;
*&#039;&#039;&#039;Surround sound improvements&#039;&#039;&#039; were introduced since the beta release with considerable advances in coding efficiency, bitrate allocation and quality.&lt;br /&gt;
&lt;br /&gt;
A new &#039;&#039;&#039;temporal VBR&#039;&#039;&#039; feature is added. For reasons not explained by classic psychoacoustics, it appears that giving more bits to loud frames (stealing from quiet frames) makes the result substantially better on listening tests. This feature is not tunable: it always affects VBR calculation at low bitrates, gradually becoming weaker at higher bitrates, until it turns off completely at 68&amp;amp;nbsp;kbps.&lt;br /&gt;
&lt;br /&gt;
==== libopus v1.1.3 ==== &lt;br /&gt;
Released July 15th, 2016. This version contains:&lt;br /&gt;
&lt;br /&gt;
*Neon optimizations improving performance on ARMv7 and ARMv8 by up to 15%&lt;br /&gt;
*Fixes some issues with 16-bit platforms (e.g. TI C55x)&lt;br /&gt;
*Fixes to comfort noise generation (CNG)&lt;br /&gt;
*Documenting that PLC packets can also be 2 bytes&lt;br /&gt;
*Includes experimental ambisonics work (&amp;lt;code&amp;gt;--enable-ambisonics&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
==== libopus v1.2.1 ==== &lt;br /&gt;
Released June 26th, 2017. This version contains:&lt;br /&gt;
&lt;br /&gt;
*Speech quality improvements especially in the 12–20&amp;amp;nbsp;kbit/s range&lt;br /&gt;
*Improved VBR encoding for hybrid mode&lt;br /&gt;
*More aggressive use of wider speech bandwidth, including fullband speech starting at 14&amp;amp;nbsp;kbit/s&lt;br /&gt;
*Music quality improvements in the 32–48&amp;amp;nbsp;kbit/s range&lt;br /&gt;
*Generic and SSE CELT optimizations&lt;br /&gt;
*Support for directly encoding packets up to 120&amp;amp;nbsp;ms&lt;br /&gt;
*DTX support for CELT mode&lt;br /&gt;
*SILK CBR improvements&lt;br /&gt;
*Support for all of the fixes in draft-ietf-codec-opus-update-06 (the mono downmix and the folding fixes need &amp;lt;code&amp;gt;--enable-update-draft&amp;lt;/code&amp;gt;)&lt;br /&gt;
*Many bug fixes, including integer wrap-arounds discovered through fuzzing (no security implications)&lt;br /&gt;
&lt;br /&gt;
==== libopus v1.3 ====&lt;br /&gt;
Released on October 18th, 2018. This version contains:&lt;br /&gt;
&lt;br /&gt;
* Improvements to voice activity detection (VAD) and speech/music classification using a recurrent neural network (RNN)&lt;br /&gt;
* Support for ambisonics coding using channel mapping families 2 and 3&lt;br /&gt;
* Improvements to stereo speech coding at low bitrate&lt;br /&gt;
* Using wideband encoding down to 9&amp;amp;nbsp;kb/s&lt;br /&gt;
* Making it possible to use SILK down to bitrates around 5&amp;amp;nbsp;kb/s&lt;br /&gt;
* Minor quality improvement on tones&lt;br /&gt;
* Enabling the spec fixes in &amp;lt;nowiki&amp;gt;RFC 8251&amp;lt;/nowiki&amp;gt; by default&lt;br /&gt;
* Security/hardening improvements&lt;br /&gt;
* Fixes to the CELT PLC&lt;br /&gt;
* Bandwidth detection fixes&lt;br /&gt;
&lt;br /&gt;
==== libopus v1.3.1 ====&lt;br /&gt;
Released on April 12th, 2019. This version contains:&lt;br /&gt;
&lt;br /&gt;
* Fixes to x87 builds&lt;br /&gt;
* A new OPUS_GET_IN_DTX query to know if the encoder is in DTX mode (last frame was either a comfort noise frame or not encoded at all)&lt;br /&gt;
* A new (and still experimental) CMake-based build system that is eventually meant to replace the VS2015 build system (the autotools one will stay)&lt;br /&gt;
&lt;br /&gt;
==== libopus v1.4 ====&lt;br /&gt;
Released on April 20th, 2023. This version contains:&lt;br /&gt;
&lt;br /&gt;
* Improved tuning of the Opus in-band FEC (LBRR). See the issue for details&lt;br /&gt;
* Added a OPUS_SET_INBAND_FEC(2) option that turns on FEC, but does not force SILK mode (FEC will be disabled in CELT mode)&lt;br /&gt;
* Improved tuning and various fixes to DTX&lt;br /&gt;
* Added Meson support, improved CMake support In addition to the improvements above, this release includes many minor bug fixes.&lt;br /&gt;
&lt;br /&gt;
=== Other implementations ===&lt;br /&gt;
&lt;br /&gt;
==== Concentus ====&lt;br /&gt;
&lt;br /&gt;
The libopus reference library (fixed-point variant) has successfully been ported to both &#039;&#039;&#039;C#&#039;&#039;&#039; and &#039;&#039;&#039;Java&#039;&#039;&#039;, as part of a project called &#039;&#039;&#039;Concentus&#039;&#039;&#039;. The aim of the project is specifically to target cross-platform applications where native C interop is relatively difficult. The code is available on [https://github.com/lostromb/concentus Github] and distributed via standard package managers.&lt;br /&gt;
&lt;br /&gt;
==== Emscripten ports ====&lt;br /&gt;
&lt;br /&gt;
At least one port of reference opus in Javascript has been made using the automated tool [https://developer.mozilla.org/en-US/docs/Mozilla/Projects/Emscripten emscripten]. See [https://blog.rillke.com/opusenc.js/ here], [https://github.com/kazuki/opus.js-sample here] and [https://github.com/audiocogs/opus.js here].&lt;br /&gt;
&lt;br /&gt;
==== ffmpeg ====&lt;br /&gt;
FFmpeg has a native [https://ffmpeg.org/ffmpeg-codecs.html#opus &amp;quot;opus&amp;quot;] codec. It is of lower quality than the reference libopus and only does CELT coding. However, it is still good for the ecosystem to have a completely independent implementation.&lt;br /&gt;
&lt;br /&gt;
== Hardware &amp;amp; Software Support ==&lt;br /&gt;
&lt;br /&gt;
Much of this section is based heavily on the Jan 12th 2013 version of the &#039;&#039;&#039;Support&#039;&#039;&#039; section of the [http://en.wikipedia.org/wiki/Opus_%28audio_format%29 Wikipedia article], which is more likely to be kept updated and to provide links to further information about the supporting platforms.&lt;br /&gt;
&lt;br /&gt;
=== VoIP software ===&lt;br /&gt;
* The open source virtual PBX Freeswitch supports Opus transcoding.&lt;br /&gt;
* The voice-chat software Mumble supports Opus as its main codec.&lt;br /&gt;
* SIP softphones Phoner and PhonerLite support Opus&lt;br /&gt;
* The SIP and IAX2 client SFLphone is being fitted with Opus support.&lt;br /&gt;
* Integration of Opus into the Skype client is finished, although no version with Opus support has yet been published.&lt;br /&gt;
* TrueConf video conferencing solutions support Opus.&lt;br /&gt;
* Opus support is planned for Jitsi 2.0, together with VP8 video.&lt;br /&gt;
* Empathy may use any format supported in GStreamer, including Opus.&lt;br /&gt;
* Line2 has replaced their current codec with Opus. Their iOS app will be the first to be released with the Opus. The Android app will follow later.&lt;br /&gt;
* CSipSimple supports Opus, Codec2, G.726 and G.722.1 with an additional plug-in.&lt;br /&gt;
* The voice-chat software TeamSpeak 3 supports Opus for voice and music in pre-release server 3.0.7-pre2 and beta client version 3.0.10.&lt;br /&gt;
* The proprietary instant messenger service Discord uses Opus audio for all voice calls and video calls, regardless of platform.&lt;br /&gt;
&lt;br /&gt;
=== Web frameworks and browsers ===&lt;br /&gt;
* Opus support is mandatory for WebRTC implementations.&lt;br /&gt;
* Mozilla supports Opus beginning with version 15 of Firefox and Thunderbird, plus Seamonkey, which uses a shared codebase.&lt;br /&gt;
* Depending on the backend in use, Opera supports inline playback of embedded Opus files. Official support for Opus and WebRTC are on the development roadmap.&lt;br /&gt;
* Chromium and Google Chrome have audio support as of version 33.&lt;br /&gt;
* Apple&#039;s Safari browser now supports Opus as of iOS 11 and macOS 10.13 High Sierra.&lt;br /&gt;
* Maxthon Cloud Browser&lt;br /&gt;
&lt;br /&gt;
=== Streaming audio ===&lt;br /&gt;
* Icecast. (examples: [http://dir.xiph.org/by_format/Opus Stream directory by format Opus], [http://smj.delfa.net/opus_64.m3u 64k]/[http://smj.delfa.net/opus_256.m3u 256k] [http://smj.delfa.net/ Smooth Jazz Opus Stream], [http://www.absoluteradio.co.uk/listen/labs.html Absolute Radio Opus Trial] 7 stations at 24,64,96 kbps, [http://icecast.ofdoom.com:8000/burst-opus.ogg Icecast Of Doom 96k]&lt;br /&gt;
* Krad Radio&lt;br /&gt;
* Liquidsoap&lt;br /&gt;
&lt;br /&gt;
=== Operating systems and desktop multimedia frameworks ===&lt;br /&gt;
* In Debian GNU/Linux the Opus development tools and supporting libraries can be installed from the preconfigured repositories in the next stable version (&amp;quot;wheezy&amp;quot;) that is expected to be released in early 2013.&lt;br /&gt;
* For Microsoft Windows, there are DirectShow filters supporting Opus, including DC-Bass Source Mod and the LAV Filters.&lt;br /&gt;
* In GStreamer the integration of Opus support is complete.&lt;br /&gt;
* FFmpeg supports decoding and encoding Opus via the external library libopus.&lt;br /&gt;
* Android 5.0 and above supports Opus natively if encapsulated in the Ogg container, but .opus filename extension is not recognized by Android, so the use of double filename extension .opus.ogg is recommended as a workaround to allow apps to recognize files as playable audio.&lt;br /&gt;
&lt;br /&gt;
=== Hardware support ===&lt;br /&gt;
* Support in [[Rockbox]] is available. This means hardware support for a series of portable media players (including some products from the iPod series by Apple and Sansa, iriver and Archos devices) and with &amp;quot;Rockbox as an Application&amp;quot; (RaaA) also on Android devices.&lt;br /&gt;
&lt;br /&gt;
=== Player software ===&lt;br /&gt;
&lt;br /&gt;
* Windows/Mac/Linux (Cross-Platform)&lt;br /&gt;
*# [[VLC]] (media player supports Opus as of version 2.0.4&lt;br /&gt;
*# [[Amarok]] 2.8 has transcoding support for Opus codec if ffmpeg is compiled with support for the libopus library &amp;amp; support for playback of Opus encoded files if Amarok is compiled against TagLib (newer than V1.8)&lt;br /&gt;
*# Clementine has Opus support&lt;br /&gt;
*# Audacious player&lt;br /&gt;
*# [[MPD]] as of version 0.18 if compiled against libopus (supports both encoding for http streams and decoding)&lt;br /&gt;
* Windows Exclusive&lt;br /&gt;
*# AIMP supports Opus natively as of version 3.20 build 1125 beta 1&lt;br /&gt;
*# [[foobar2000]] supports Opus natively as of v1.1.14 beta 1&lt;br /&gt;
*# Mpxplay supports Opus (using a decoder DLL) as of v1.60 alpha 2&lt;br /&gt;
*# [[Winamp]] supports Opus using a [http://forums.winamp.com/showthread.php?p=2925154#post2925154 3rd party plug-in]&lt;br /&gt;
*# MPC-HC&lt;br /&gt;
*# Resonic Player/Pro supports Opus natively as of version 0.2.2&lt;br /&gt;
* iOS/Android (Cross-Platform)&lt;br /&gt;
*# Capriccio [https://itunes.apple.com/us/app/capriccio-free-ultimate-music/id434829018?mt=8 iOS]/[https://play.google.com/store/apps/details?id=me.ideariboso.capriccio Android]&lt;br /&gt;
*# foobar2000 [https://itunes.apple.com/us/app/foobar2000/id1072807669?mt=8 iOS]/[https://play.google.com/store/apps/details?id=com.foobar2000.foobar2000&amp;amp;hl=en Android]&lt;br /&gt;
* Android Exclusive&lt;br /&gt;
*# [https://play.google.com/store/apps/details?id=in.krosbits.musicolet Musicolet Music Player]&lt;br /&gt;
*# [http://gonemadmusicplayer.blogspot.com/ GoneMAD Music Player]&lt;br /&gt;
*# [http://neutronmp.com/ Neutron Music Player]&lt;br /&gt;
*# [http://www.videolan.org/vlc/download-android.html VLC Media Player for Android]&lt;br /&gt;
*# [https://play.google.com/store/apps/details?id=ru.recoilme.freeamp FreeMP]&lt;br /&gt;
*# [https://play.google.com/store/apps/details?id=net.mderezynski.youki3 Youki]&lt;br /&gt;
*# [https://play.google.com/store/apps/details?id=com.aimp.player AIMP for Android]&lt;br /&gt;
*# [https://play.google.com/store/apps/details?id=com.acmeandroid.listen Listen Audiobook Player]&lt;br /&gt;
*# [https://play.google.com/store/apps/details?id=com.mxtech.videoplayer.ad MX Player]&lt;br /&gt;
*# [https://play.google.com/store/apps/details?id=org.tomahawk.tomahawk_android Tomahawk Player Beta]&lt;br /&gt;
*# [https://play.google.com/store/apps/details?id=com.maxmpz.audioplayer&amp;amp;hl=en Poweramp Music Player]&lt;br /&gt;
&lt;br /&gt;
=== Other software ===&lt;br /&gt;
* CDBurnerXP&lt;br /&gt;
* MediaCoder&lt;br /&gt;
* Report-IT&lt;br /&gt;
* [[MP3tag|MP3tag]]&lt;br /&gt;
* [https://moisescardona.me/opus-gui/ Opus GUI]&lt;br /&gt;
* [http://www.xdlab.ru/en/ TagScanner]&lt;br /&gt;
* [http://www.xmedia-recode.de/ XMedia Recode]&lt;br /&gt;
&lt;br /&gt;
== References &amp;amp; Notes ==&lt;br /&gt;
&lt;br /&gt;
*{{note|homepage|a}}[http://opus-codec.org/ opus-codec.org homepage]&lt;br /&gt;
*{{note|FAQ|b}}[http://wiki.xiph.org/OpusFAQ Opus FAQ]&lt;br /&gt;
*{{note|RFC|c}}[http://tools.ietf.org/html/rfc6716 IETF RFC 6716]&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
[[Category:Codecs]]&lt;br /&gt;
[[Category:Lossy]]&lt;br /&gt;
[[Category:Encoder/Decoder]]&lt;/div&gt;</summary>
		<author><name>Artoria2e5</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=Opus&amp;diff=37292</id>
		<title>Opus</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=Opus&amp;diff=37292"/>
		<updated>2023-08-12T05:23:43Z</updated>

		<summary type="html">&lt;p&gt;Artoria2e5: /* Speech encoding quality */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Software Infobox&lt;br /&gt;
| name = Opus&lt;br /&gt;
| logo = [[Image:opus-logo.png|250px|Official Opus logo]]&lt;br /&gt;
| screenshot =&lt;br /&gt;
| caption = Opus Interactive Audio Codec&lt;br /&gt;
| maintainer = [http://xiph.org/ Xiph.Org Foundation]&lt;br /&gt;
| stable_release = 1.4&lt;br /&gt;
| operating_system = Windows, Mac OS/X, Linux/BSD&lt;br /&gt;
| use = Encoder/Decoder&lt;br /&gt;
| license = 3-clause BSD license&lt;br /&gt;
| website = [http://www.opus-codec.org/ opus-codec.org]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Opus&#039;&#039;&#039; is a [[lossy]] audio compression format developed by the Internet Engineering Task Force (IETF) designed to be suitable for interactive real-time applications over the Internet,{{ref|homepage|a}} including music as well as speech, yet it is also very competitive for use as a storage and playback format, being a [https://web.archive.org/web/20200130083553/http://people.xiph.org/~greg/opus/ha2011/ class leader at around 64 kbps] and [http://listening-test.coresv.net/results.htm also at 96 kbps]. As an open format standardised through [http://tools.ietf.org/html/rfc6716 Request for Comments (RFC) 6716],{{ref|RFC|c}} a high quality reference implementation is provided under the 3-clause BSD license{{ref|homepage|a}} which compiles and runs on the vast majority of general purpose and embedded (fixed point) processors. Many Software patents which cover Opus are licensed under royalty-free terms.{{ref|FAQ|b}}  Opus is also a Mandatory To Implement (MTI) codec for the upcoming WebRTC (Web Real Time Communication) specification of the World Wide Web Consortium (W3C).&lt;br /&gt;
&lt;br /&gt;
Opus incorporates technology from two codecs, the speech-oriented SILK codec developed by Skype and the multi-purpose low-latency CELT codec developed by Xiph.org with significant changes to each to ensure they can work together.{{ref|RFC|c}} Opus can seamlessly transition among high and low bitrates, using a linear prediction codec (the SILK layer) at lower bitrates and a lapped transform codec (the CELT layer) at higher bitrates, as well as a hybrid of the two for a short overlap in which SILK encodes the 0–8&amp;amp;nbsp;kHz spectrum and the CELT layer encodes only the frequencies above 8kHz.{{ref|RFC|c}} Opus has very low algorithmic delay (typ 22.5&amp;amp;nbsp;ms) compared to popular music formats such as [[MP3]], [[Vorbis |Ogg Vorbis]], [[AAC | LC-AAC and HE-AAC]] (all over 100&amp;amp;nbsp;ms), yet performs very competitively with them in terms of quality per bitrate, making it comparably viable as a storage &amp;amp; playback format. Also unlike Vorbis, Opus does not require the definition of large codebooks for each individual file, making it also preferable for short clips of audio, such as those often used by game developers, a field where patent-free Vorbis is commonly used.{{ref|RFC|c}}&lt;br /&gt;
&lt;br /&gt;
Considerably more details of the history and potential applications for Opus are included in the &#039;&#039;Wikipedia&#039;&#039; page for &#039;&#039;&#039;[http://en.wikipedia.org/wiki/Opus_%28audio_format%29 Opus (audio format)]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Characteristics==&lt;br /&gt;
Opus supports bitrates from 6&amp;amp;nbsp;kbps to 510&amp;amp;nbsp;kbps for typical stereo audio sources (and a maximum of around 255 kbps per channel for multichannel audio), with the &#039;sweet spot&#039; for music and general audio around 30&amp;amp;nbsp;kbps (mono) and 40–100&amp;amp;nbsp;kbps (stereo). It is intrinsically [[VBR | variable bitrate]], though constrained VBR and [[CBR | constant bitrate]] modes are possible where required. In the case of the reference release, libopus, the target bitrate is calibrated against the internal constant quality targets so that over a typical music collection, something very close to the target bitrate will be achieved. This bitrate-calibrated approach differs from most VBR encoders (e.g. LAME, helix mp3, qaac, Nero aacenc, Ogg Vorbis, Musepack) where a setting on some &#039;constant quality&#039; scale (which differs between encoders) is used and the bitrate will fall where it may. Improved future versions can be expected to offer improved quality at the same setting. Independent implementations may adopt a different approach.&lt;br /&gt;
&lt;br /&gt;
Opus is able to seamlessly adapt its mode of operation without glitches or sound interruption (an illustrative demonstration of [http://opus-codec.org/examples/#gauge bitrate scalability] is on the Opus Examples page), which can be particularly useful for mixed-content audio or varying network conditions, making the unified Opus codec superior to a suite of different codecs that might otherwise cover the same range of bitrate and quality settings and would require out-of-band signalling to instigate codec switching. The switching includes the choice of mono, stereo and other channel mappings, the use of the speech-oriented SILK layer, the general-purpose CELT layer or the hybrid of both, and the use of different audio bandwidths (4, 6, 8, 12, or 20&amp;amp;nbsp;kHz) as well as the quality adjustments within the same operating mode that are available in most VBR-capable codecs.&lt;br /&gt;
&lt;br /&gt;
Of importance mainly to interactive uses, but potentially useful in time-delayed audio streaming also, Opus includes packet loss concealment (PLC) in all modes and, in the speech-oriented modes where the SILK layer is active it also supports Forward Error Correction (FEC) where the expected rate of packet loss can be indicated to the encoder by the user or by application software and critical frames (e.g. consonant sounds) can be retransmitted at low bitrate to preserve intelligibility.&lt;br /&gt;
&lt;br /&gt;
For music and general audio, the CELT layer of Opus builds on knowledge gained during xiph.org&#039;s Vorbis development and ensures as a primary goal that the total energy in each spectral band is preserved while requiring only a modest bitrate overhead to achieve this, thereby eliminating a lot of bitrate-starvation artifacts such as &#039;birdies&#039; that are common in low-bitrate MP3, especially during transients, applause and cymbal sounds. This technique likewise increases coding efficiency at bitrates targetting transparent music reproduction. Short blocks (2.5&amp;amp;nbsp;ms) are also possible for efficient transient handling. Short blocks can also be used exclusively, if very low algorithmic delay (5.0&amp;amp;nbsp;ms) is required to enable very low-latency interative audio (e.g. live networked music performances such as remote jam sessions), though greater bitrate is then required to maintain the same quality (illustrated in [http://people.xiph.org/~xiphmont/demo/celt/demo.html#demo Monty&#039;s CELT demo page] under Constant PEAQ value, varying latency). CELT uses a number of additional techniques and provides additional advanced tools to enable encoder tuning.&lt;br /&gt;
&lt;br /&gt;
Opus natively supports [[gapless playback]] (though [[Gapless_playback#Poorly_designed_playback_systems | poor player design]] might itself induce interruptions during playback). Playback gain is also required, making some form of [[ReplayGain]] or [[ReplayGain_2.0_specification | similar]] volume control possible in any compliant player.&lt;br /&gt;
&lt;br /&gt;
==Bitrate performance==&lt;br /&gt;
For mono speech, Opus ranges from intelligible narrowband speech reproduction starting at 6&amp;amp;nbsp;kbps to medium-band, wideband and superwideband speech, reaching full-band speech by around 14&amp;amp;nbsp;kbps in encoder version 1.2 (was 21&amp;amp;nbsp;kbps in v1.1, 29&amp;amp;nbsp;kbps in v1.0). Above about 32&amp;amp;nbsp;kbps, the SILK layer is no longer used at all, as CELT alone gives superior quality.&lt;br /&gt;
&lt;br /&gt;
For music, the SILK modes are quite tolerable and better than CELT at very low bitrates. The hybrid mode is adopted as bitrate increases, extending bandwidth first to 12&amp;amp;nbsp;kHz (comparable with compact cassette) then to the full 20&amp;amp;nbsp;kHz and CELT then takes over. Assuming the source is stereo, the transition from mono to stereo typically happens between the transition from 12&amp;amp;nbsp;kHz to 20&amp;amp;nbsp;kHz. Encoder version 1.2 includes great improvements to music encoding in the 32–64&amp;amp;nbsp;kbps range, allowing full-band stereo at 32&amp;amp;nbsp;kbps and providing acceptable quality at 48&amp;amp;nbsp;kbps where artifacts are audible but rarely annoying. Version 1.3 is expected to further improve quality in this range.&lt;br /&gt;
&lt;br /&gt;
Multi-format stereo music listening tests have demonstrated the superiority of Opus at 64&amp;amp;nbsp;kbps and 96&amp;amp;nbsp;kbps compared to the best AAC-LC, HE-AAC and Ogg Vorbis encoders, and at 96&amp;amp;nbsp;kbps also to 128&amp;amp;nbsp;kbps MP3 encoded using LAME &amp;lt;code&amp;gt;-V 5&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Indicative bitrate and quality==&lt;br /&gt;
The tables below give illustrative, indicative quality guidance based on typical modes used internally by Opus and a range of listening tests.&lt;br /&gt;
&lt;br /&gt;
In encoder version 1.1 automatic detection of speech/music and bandwidth detection were introduced to improve mode decisions and VBR is less constrained, all with the aim of maximizing the quality/bitrate tradeoff, and these improvements are further enhanced in version 1.2 and 1.3. These tables are likely to require updates as the encoder is improved, especially in low-bitrate regions.&lt;br /&gt;
&lt;br /&gt;
===Speech encoding quality===&lt;br /&gt;
This table assumes a &#039;&#039;&#039;monophonic&#039;&#039;&#039; source sampled at CD quality or above (typ 48 kHz sampling rate) but mentions stereo compatibility for 40kbps+. The default 20ms frame size (22.5ms latency) is assumed. Note that the selection of &#039;&#039;VOIP&#039;&#039; mode will deliberately modify the sound with a High Pass Filter and emphasis of formants and harmonics to improve intelligibility of speech especially in noisy environments much as telephones do. &#039;&#039;Auto&#039;&#039; mode will not modify the sound prior to encoding so is usually better for high quality speech recordings or mixed speech and music.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Bitrate Target&lt;br /&gt;
!Bandwidth&lt;br /&gt;
!Typical Mode Used&lt;br /&gt;
!Speech Quality&lt;br /&gt;
!Use Cases / Competitive Codecs&lt;br /&gt;
|-&lt;br /&gt;
! Less than 6 kbps&lt;br /&gt;
| &amp;amp;mdash;&lt;br /&gt;
| &amp;amp;mdash;&lt;br /&gt;
| Bitrates lower than 6 kbps not supported by Opus (SILK disabled if forced to encode, which results in terrible speech quality)&lt;br /&gt;
| Try [https://en.wikipedia.org/wiki/Codec_2 Codec 2] for 0.45–3.2&amp;amp;nbsp;kbps mono speech or [[Wikipedia:Lyra (codec)|Lyra]] for 3.2&amp;amp;nbsp;kbps mono speech&lt;br /&gt;
|-&lt;br /&gt;
!6 kbps&lt;br /&gt;
|4 kHz narrow-band&lt;br /&gt;
|SILK&lt;br /&gt;
|Fair, intelligible&lt;br /&gt;
|AMR-NB may be a little better, but higher latency &amp;amp; proprietary, [[Speex]] also competitive&lt;br /&gt;
|-&lt;br /&gt;
!9 kbps VBR/CVBR&amp;lt;br&amp;gt;10 kbps CBR&lt;br /&gt;
|8 kHz wide-band&lt;br /&gt;
|SILK&lt;br /&gt;
|Telephone quality&lt;br /&gt;
|AMR-NB &amp;amp; AMR-WB similar quality, but higher latency &amp;amp; proprietary. [[Speex]] competitive.&lt;br /&gt;
|-&lt;br /&gt;
!12 kbps&lt;br /&gt;
|12 kHz super-wideband&lt;br /&gt;
|hybrid&lt;br /&gt;
|Medium bandwidth, better than telephone quality&lt;br /&gt;
|Similar quality to AMR-WB&lt;br /&gt;
|-&lt;br /&gt;
!16 kbps&lt;br /&gt;
|20 kHz&lt;br /&gt;
|hybrid/CELT&lt;br /&gt;
|Wideband speech quality&lt;br /&gt;
|Similar to/better than AMR-WB&lt;br /&gt;
|-&lt;br /&gt;
!24 kbps&lt;br /&gt;
|20 kHz&lt;br /&gt;
|hybrid/CELT&lt;br /&gt;
|Near transparent speech&lt;br /&gt;
|Better than AMR-WB. Podcasts/audiobooks/talk-radio.&lt;br /&gt;
|-&lt;br /&gt;
!32 kbps&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Essentially transparent speech plus moderately good stereo music&lt;br /&gt;
|Much better than AMR-WB. Podcasts/audiobooks/talk-radio.&lt;br /&gt;
|-&lt;br /&gt;
!40 kbps&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Essentially transparent mono or stereo speech, fairly good stereo music&lt;br /&gt;
|Stereo podcasts/audiobooks/talk radio with some music&lt;br /&gt;
|-&lt;br /&gt;
!48 kbps or more&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Essentially transparent mono or stereo speech, reasonable music&lt;br /&gt;
|Flexible general purpose modes to suit mixed music and speech&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
One major limitation of Opus at low bitrate is that SILK is inherently VBR: it accepts no constraints in CVBR, and if forced to do CBR the quality degrades from bit-shaving. As a result, even though constrained VBR is designed such that a fixed-rate data link requires at most one frame of buffer to handle the variation in bit rate -- great news for communication links -- any use of SILK, even in hybrid mode, has the potential of breaking this intention. This makes Opus suboptimal for low-rate radio links: radio links requires a predictable buffer amount, which is only possible with CBR when SILK is used, but use of CBR in turn hurts SILK. There is a noticeable quality difference at the NB/WB switch at 9 kbps VBR / 10 kbps CBR.&lt;br /&gt;
&lt;br /&gt;
Opus 1.3+ allows forced use of SILK down to 5 kbps VBR (NB) and 6 kbps VBR (WB, requires forcing the C API with &amp;lt;code&amp;gt;OPUS_SET_BANDWIDTH&amp;lt;/code&amp;gt;). However, quality is in no way guaranteed -- it&#039;s just possible.&lt;br /&gt;
&lt;br /&gt;
===Music encoding quality===&lt;br /&gt;
This table assumes a &#039;&#039;&#039;stereophonic&#039;&#039;&#039; source sampled at CD quality or above (typ 48&amp;amp;nbsp;kHz sampling rate). Opus will automatically use mono at very low bitrates, though a certain amount of stereo encoding can still be used (content dependent) even when mono is specified as the typical stereo mode in the table below.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Bitrate target&lt;br /&gt;
!Stereo mode&lt;br /&gt;
!Bandwidth&lt;br /&gt;
!typ SILK/CELT use&lt;br /&gt;
!Music quality notes&lt;br /&gt;
!Use cases/notes/competitive codecs&lt;br /&gt;
|-&lt;br /&gt;
!6 kbps&lt;br /&gt;
|mono&lt;br /&gt;
|6 kHz&lt;br /&gt;
|SILK&lt;br /&gt;
|Poor, muffled sound but intelligible lyrics.&lt;br /&gt;
| &amp;amp;mdash;&lt;br /&gt;
|-&lt;br /&gt;
!8 kbps&lt;br /&gt;
|mono&lt;br /&gt;
|6 kHz&lt;br /&gt;
|SILK&lt;br /&gt;
|Poor, muffled but OK for bitrate&lt;br /&gt;
| &amp;amp;mdash;&lt;br /&gt;
|-&lt;br /&gt;
!14 to 16 kbps&lt;br /&gt;
|mono&lt;br /&gt;
|20 kHz&lt;br /&gt;
|hybrid/CELT&lt;br /&gt;
|Fairly poor but OK for bitrate&lt;br /&gt;
|Perhaps acceptable for incidental music&lt;br /&gt;
|-&lt;br /&gt;
!22 to 24 kbps&lt;br /&gt;
|mono&lt;br /&gt;
|20 kHz&lt;br /&gt;
|hybrid/CELT&lt;br /&gt;
|Fair but OK for bitrate&lt;br /&gt;
|OK for incidental music&lt;br /&gt;
|-&lt;br /&gt;
!32 to 40 kbps&lt;br /&gt;
|stereo&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Moderately good stereo, some artifacts, rarely nasty&lt;br /&gt;
|Stereo podcasts, audiobooks, very low bitrate music&lt;br /&gt;
|-&lt;br /&gt;
!48 kbps&lt;br /&gt;
|stereo&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Full bandwidth stereo music, nice sound, may have problems with cymbals&lt;br /&gt;
|Stereo podcasts, audiobooks, low bitrate music&lt;br /&gt;
|-&lt;br /&gt;
!64 kbps&lt;br /&gt;
|stereo&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Full bandwidth stereo music, nice sound, detectable differences to original (mostly &#039;not annoying&#039;)&lt;br /&gt;
|Music storage &amp;amp; streaming. Beat HE-AAC, Vorbis, MP3 in [https://web.archive.org/web/20200130083553/http://people.xiph.org/~greg/opus/ha2011/ listening test]&lt;br /&gt;
|-&lt;br /&gt;
!96 kbps&lt;br /&gt;
|stereo&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Full bandwidth stereo music, good quality approaching transparency&lt;br /&gt;
|Music storage &amp;amp; high quality streaming. Beat LC-AAC, Vorbis, MP3 in [http://listening-test.coresv.net/results.htm listening test]&lt;br /&gt;
|-&lt;br /&gt;
!112 kbps&lt;br /&gt;
|stereo&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Fairly close to transparency (needs more testing)&lt;br /&gt;
|Music storage &amp;amp; high quality streaming. Very low-latency stereo networked music performance/jam sessions at OK quality (see below table)&lt;br /&gt;
|-&lt;br /&gt;
!128 kbps&lt;br /&gt;
|stereo&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Very close to transparency (needs more testing). Most modern codecs competitive (AAC-LC, Vorbis, MP3)&lt;br /&gt;
|Music storage &amp;amp; streaming. Future download music sales.&lt;br /&gt;
|-&lt;br /&gt;
!160 to 192 kbps&lt;br /&gt;
|stereo&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Transparent with very low chance of artifacts (a few killer samples still detectable). Most old &amp;amp; new lossy codecs competitive.&lt;br /&gt;
|Music storage &amp;amp; streaming, dedicated limited-bandwidth audio links (e.g. wireless, [http://en.wikipedia.org/wiki/Bluetooth_profile#Advanced_Audio_Distribution_Profile_.28A2DP.29 A2DP-bluetooth] type links). &lt;br /&gt;
|-&lt;br /&gt;
!510 kbps&lt;br /&gt;
|stereo&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Maximum possible stereo bitrate target (actual rate often less than 510 for default frame size). Most old and new lossy codecs competitive, plus near-lossless [[lossyWAV]] and [[WavPack | WavPack lossy]]&lt;br /&gt;
|Music storage, dedicated limited-bitrate audio links (e.g. wireless, minimum latency high quality audio. LossyWAV and WavPack lossy are very competitive for storage, and WavPack lossy &amp;lt;code&amp;gt;--blocksize=256&amp;lt;/code&amp;gt; may be competitive with minimum latency mode also.&lt;br /&gt;
|-&lt;br /&gt;
!&amp;gt;510 kbps&lt;br /&gt;
| &amp;amp;mdash;&lt;br /&gt;
| &amp;amp;mdash;&lt;br /&gt;
| &amp;amp;mdash;&lt;br /&gt;
|Above Opus bitrate range allowed for stereo sources&lt;br /&gt;
|Settle for 510&amp;amp;nbsp;kbps or use [[lossless]], [[lossyWAV]], [[WavPack | WavPack lossy]] or lossy transform/subband codecs like [[Vorbis]], [[Musepack]] at very high settings.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Lower latency versus quality/bitrate trade-off===&lt;br /&gt;
====Packet overhead in interactive applications====&lt;br /&gt;
For interactive use on the Internet or other packet-based networks, total bandwidth used will be subject to packet overhead. The more packet headers that are transmitted every second, the greater will be the overhead that is required. For this reason, Opus, while defaulting to 20&amp;amp;nbsp;ms frames, supports 60&amp;amp;nbsp;ms frames to reduce overhead when transporting low-bitrate SILK frames at the expense of greater latency, which may still be acceptable for speech, and also supports 10&amp;amp;nbsp;ms SILK frames to reduce latency somewhat at the expense of packet overhead.&lt;br /&gt;
&lt;br /&gt;
In the CELT layer, which tends to operate at higher bitrates than SILK, 20&amp;amp;nbsp;ms frames are the default, but frames of 10&amp;amp;nbsp;ms, 5&amp;amp;nbsp;ms and 2.5&amp;amp;nbsp;ms are also possible, which directly increases the frame overhead by transmitting more packets per second to achieve lower latency. In addition, as we&#039;ll see below it also reduces the quality/bitrate tradeoff of the CELT layer itself.&lt;br /&gt;
&lt;br /&gt;
You probably do not want to use a frame size lower than 10&amp;amp;nbsp;ms in applications containing speech, as doing so turns off SILK. The &amp;quot;lowdelay&amp;quot; application switch (available in FFmpeg and the raw library) turns off SILK to cut out 4&amp;amp;nbsp;ms of synchronization delay, but a frame size of 10&amp;amp;nbsp;ms achieves more delay reduction compared to default without sacrificing SILK.&lt;br /&gt;
&lt;br /&gt;
None of the bitrates mentioned in this article account for the packet overhead.&lt;br /&gt;
&lt;br /&gt;
====CELT layer latency versus quality/bitrate trade-off====&lt;br /&gt;
Unlike the SILK layer, which works on fixed 10&amp;amp;nbsp;ms blocks, 1, 2 or 6 of which can be combined into an Opus frame, the CELT layer is able to modify the encoding block lengths available to enable its use with shorter frames.&lt;br /&gt;
&lt;br /&gt;
When the CELT layer uses 10&amp;amp;nbsp;ms, 5&amp;amp;nbsp;ms and 2.5&amp;amp;nbsp;ms frames instead of the default 20&amp;amp;nbsp;ms, it must use smaller transform block sizes to achieve this, thereby reducing frequency resolution in the MDCT compared to the default transform window, thus reducing encoding efficiency for tonal signals. To obtain the same frequency precision for a sound divided into shorter transform windows, improved amplitude precision is necessary, resulting in increased bitrate to obtain the same perceptual quality (or conversely lower quality at the same bitrate).&lt;br /&gt;
&lt;br /&gt;
These reduced-latency modes remain efficient for transient signals, which use short blocks anyway.&lt;br /&gt;
&lt;br /&gt;
In all modes, the algorithmic delay consists of the frame size plus an additional 2.5&amp;amp;nbsp;ms delay. The CELT layer requires 2.5&amp;amp;nbsp;ms for MDCT window overlap.&lt;br /&gt;
&lt;br /&gt;
Xiph.org used matched [[PEAQ]] scores (approximate perceptual quality assessment made in software) for the CELT0.10 codec that was used as the basis of the CELT layer in the Opus reference release, which indicate the following [http://people.xiph.org/~xiphmont/demo/celt/demo.html#demo approximate equivalent settings] for stereo music.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Frame size&lt;br /&gt;
!Algorithmic delay&lt;br /&gt;
!Bitrate to match 64kbps@22.5ms delay&lt;br /&gt;
!fractional bitrate increase&lt;br /&gt;
|-&lt;br /&gt;
!20 ms&lt;br /&gt;
|22.5 ms&lt;br /&gt;
|64.0 kbps&lt;br /&gt;
| +0.0 %&lt;br /&gt;
|-&lt;br /&gt;
!10 ms&lt;br /&gt;
|12.5 ms&lt;br /&gt;
|70.4 kbps&lt;br /&gt;
| +10.0 %&lt;br /&gt;
|-&lt;br /&gt;
!5 ms&lt;br /&gt;
|7.5 ms&lt;br /&gt;
|84.8 kbps&lt;br /&gt;
| +32.5 %&lt;br /&gt;
|-&lt;br /&gt;
!2.5 ms&lt;br /&gt;
|5.0 ms&lt;br /&gt;
|112.0 kbps&lt;br /&gt;
| +75.0 %&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
N.B. This table is useful for interactive streaming only. For music storage &amp;amp; delayed playback or non-interactive streaming, latency reduction is not important and the default 20&amp;amp;nbsp;ms frame size is preferable.&lt;br /&gt;
&lt;br /&gt;
== Implementations ==&lt;br /&gt;
&lt;br /&gt;
The format and algorithms are openly documented and the reference implementation is published as free software. The reference implementation (Opus Audio Tools, opus-tools), consisting of separate encoders and decoders, is published under the terms of a BSD-like license. It is written in C programming language and can be compiled for hardware architectures with or without floating point unit. The accompanying diagnostic tool opusinfo reports detailed technical information about Opus files, including information on the standard compliance of the bitstream format. It is based on ogginfo from the vorbis-tools and therefore, unlike the encoder and decoder, available under the terms of version 2 of the GPL.&lt;br /&gt;
&lt;br /&gt;
=== Reference implementation (libopus + binaries) ===&lt;br /&gt;
The commandline tools of the reference version are available pre-compiled for the most popular operating systems at [http://opus-codec.org/downloads opus-codec.org] and [https://ftp.mozilla.org/pub/mozilla.org/opus/ Mozilla&#039;s ftp server], plus in the foobar2000 free encoders pack and some alternative compiles through the hydrogenaud.io opus forum. The libopus commandline tools include encoder &amp;lt;code&amp;gt;opusenc&amp;lt;/code&amp;gt;, decoder &amp;lt;code&amp;gt;opusdec&amp;lt;/code&amp;gt;, and with a different license, the &amp;lt;code&amp;gt;opusinfo&amp;lt;/code&amp;gt; opus stream &amp;amp; metadata analyzer.&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;latest stable release&#039;&#039;&#039; is recommended for general use and as of mid 2014 is considered competitive with or superior to the best alternative speech or general music encoders at most supported bitrates.&lt;br /&gt;
&lt;br /&gt;
==== libopus v1.0 ====&lt;br /&gt;
Released 11 Sep 2012 when RFC6716 was standardized but mostly fully developed by late 2011.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Stable, well-tuned&#039;&#039;&#039; &amp;lt;code&amp;gt;opusenc&amp;lt;/code&amp;gt; reference encoder as included in RFC documentation.&lt;br /&gt;
&lt;br /&gt;
CELT layer closely related to CELT 0.10 implements Constrained VBR mode by default (bitrate boost used mainly for transients), plus true CBR.&lt;br /&gt;
&lt;br /&gt;
==== libopus v1.1 ==== &lt;br /&gt;
&lt;br /&gt;
The alpha source code released 21 Dec 2012 for testing &amp;amp; user feedback and following a beta release and testing, the stable 1.1 version was released on 5 December 2013, considered well tested enough for general release.&amp;lt;ref&amp;gt;https://people.xiph.org/~xiphmont/demo/opus/demo3.shtml&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
CELT layer [http://jmspeex.livejournal.com/11737.html quality improvements] introduced to provide &#039;&#039;&#039;unconstrained VBR&#039;&#039;&#039; include a rate boost not just for transients but now for highly tonal signals too and rate reduction when stereo image is narrow. There&#039;s also a rewrite of its &#039;&#039;&#039;transient detection&#039;&#039;&#039; code and &#039;&#039;&#039;time-frequency analysis&#039;&#039;&#039; code, and rewritten &#039;&#039;&#039;dynamic allocation&#039;&#039;&#039; code (HF/LF tilt and Band Boost) to allow more aggressive changes from the typical static allocation when warranted.&lt;br /&gt;
&lt;br /&gt;
There are many minor improvements to &#039;&#039;&#039;speech quality&#039;&#039;&#039; in both SILK and CELT layers.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;DC-rejection&#039;&#039;&#039; below 3 Hz also aids quality if inaudible DC offset is present with no effect on deep bass notes.&lt;br /&gt;
*&#039;&#039;&#039;Automatic speech/music detection&#039;&#039;&#039; is introduced to optimize encoding mode choices, especially near the bitrate target range (presumably around 24–40&amp;amp;nbsp;kbps) where the encoder may perform best with SILK, hybrid or CELT depending on content type. Below that range SILK performs best for both music &amp;amp; speech, and above it CELT performs best for speech &amp;amp; music. The detection, without look-ahead is not perfect but usually is undecided in audio where either mode will work well.&lt;br /&gt;
*&#039;&#039;&#039;Automatic bandwidth detection&#039;&#039;&#039; is also introduced to save wasted bits allocated to absent frequencies.&lt;br /&gt;
*&#039;&#039;&#039;Surround sound improvements&#039;&#039;&#039; were introduced since the beta release with considerable advances in coding efficiency, bitrate allocation and quality.&lt;br /&gt;
&lt;br /&gt;
A new &#039;&#039;&#039;temporal VBR&#039;&#039;&#039; feature is added. For reasons not explained by classic psychoacoustics, it appears that giving more bits to loud frames (stealing from quiet frames) makes the result substantially better on listening tests. This feature is not tunable: it always affects VBR calculation at low bitrates, gradually becoming weaker at higher bitrates, until it turns off completely at 68&amp;amp;nbsp;kbps.&lt;br /&gt;
&lt;br /&gt;
==== libopus v1.1.3 ==== &lt;br /&gt;
Released July 15th, 2016. This version contains:&lt;br /&gt;
&lt;br /&gt;
*Neon optimizations improving performance on ARMv7 and ARMv8 by up to 15%&lt;br /&gt;
*Fixes some issues with 16-bit platforms (e.g. TI C55x)&lt;br /&gt;
*Fixes to comfort noise generation (CNG)&lt;br /&gt;
*Documenting that PLC packets can also be 2 bytes&lt;br /&gt;
*Includes experimental ambisonics work (&amp;lt;code&amp;gt;--enable-ambisonics&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
==== libopus v1.2.1 ==== &lt;br /&gt;
Released June 26th, 2017. This version contains:&lt;br /&gt;
&lt;br /&gt;
*Speech quality improvements especially in the 12–20&amp;amp;nbsp;kbit/s range&lt;br /&gt;
*Improved VBR encoding for hybrid mode&lt;br /&gt;
*More aggressive use of wider speech bandwidth, including fullband speech starting at 14&amp;amp;nbsp;kbit/s&lt;br /&gt;
*Music quality improvements in the 32–48&amp;amp;nbsp;kbit/s range&lt;br /&gt;
*Generic and SSE CELT optimizations&lt;br /&gt;
*Support for directly encoding packets up to 120&amp;amp;nbsp;ms&lt;br /&gt;
*DTX support for CELT mode&lt;br /&gt;
*SILK CBR improvements&lt;br /&gt;
*Support for all of the fixes in draft-ietf-codec-opus-update-06 (the mono downmix and the folding fixes need &amp;lt;code&amp;gt;--enable-update-draft&amp;lt;/code&amp;gt;)&lt;br /&gt;
*Many bug fixes, including integer wrap-arounds discovered through fuzzing (no security implications)&lt;br /&gt;
&lt;br /&gt;
==== libopus v1.3 ====&lt;br /&gt;
Released on October 18th, 2018. This version contains:&lt;br /&gt;
&lt;br /&gt;
* Improvements to voice activity detection (VAD) and speech/music classification using a recurrent neural network (RNN)&lt;br /&gt;
* Support for ambisonics coding using channel mapping families 2 and 3&lt;br /&gt;
* Improvements to stereo speech coding at low bitrate&lt;br /&gt;
* Using wideband encoding down to 9&amp;amp;nbsp;kb/s&lt;br /&gt;
* Making it possible to use SILK down to bitrates around 5&amp;amp;nbsp;kb/s&lt;br /&gt;
* Minor quality improvement on tones&lt;br /&gt;
* Enabling the spec fixes in &amp;lt;nowiki&amp;gt;RFC 8251&amp;lt;/nowiki&amp;gt; by default&lt;br /&gt;
* Security/hardening improvements&lt;br /&gt;
* Fixes to the CELT PLC&lt;br /&gt;
* Bandwidth detection fixes&lt;br /&gt;
&lt;br /&gt;
==== libopus v1.3.1 ====&lt;br /&gt;
Released on April 12th, 2019. This version contains:&lt;br /&gt;
&lt;br /&gt;
* Fixes to x87 builds&lt;br /&gt;
* A new OPUS_GET_IN_DTX query to know if the encoder is in DTX mode (last frame was either a comfort noise frame or not encoded at all)&lt;br /&gt;
* A new (and still experimental) CMake-based build system that is eventually meant to replace the VS2015 build system (the autotools one will stay)&lt;br /&gt;
&lt;br /&gt;
==== libopus v1.4 ====&lt;br /&gt;
Released on April 20th, 2023. This version contains:&lt;br /&gt;
&lt;br /&gt;
* Improved tuning of the Opus in-band FEC (LBRR). See the issue for details&lt;br /&gt;
* Added a OPUS_SET_INBAND_FEC(2) option that turns on FEC, but does not force SILK mode (FEC will be disabled in CELT mode)&lt;br /&gt;
* Improved tuning and various fixes to DTX&lt;br /&gt;
* Added Meson support, improved CMake support In addition to the improvements above, this release includes many minor bug fixes.&lt;br /&gt;
&lt;br /&gt;
=== Other implementations ===&lt;br /&gt;
&lt;br /&gt;
==== Concentus ====&lt;br /&gt;
&lt;br /&gt;
The libopus reference library (fixed-point variant) has successfully been ported to both &#039;&#039;&#039;C#&#039;&#039;&#039; and &#039;&#039;&#039;Java&#039;&#039;&#039;, as part of a project called &#039;&#039;&#039;Concentus&#039;&#039;&#039;. The aim of the project is specifically to target cross-platform applications where native C interop is relatively difficult. The code is available on [https://github.com/lostromb/concentus Github] and distributed via standard package managers.&lt;br /&gt;
&lt;br /&gt;
==== Emscripten ports ====&lt;br /&gt;
&lt;br /&gt;
At least one port of reference opus in Javascript has been made using the automated tool [https://developer.mozilla.org/en-US/docs/Mozilla/Projects/Emscripten emscripten]. See [https://blog.rillke.com/opusenc.js/ here], [https://github.com/kazuki/opus.js-sample here] and [https://github.com/audiocogs/opus.js here].&lt;br /&gt;
&lt;br /&gt;
==== ffmpeg ====&lt;br /&gt;
FFmpeg has a native [https://ffmpeg.org/ffmpeg-codecs.html#opus &amp;quot;opus&amp;quot;] codec. It is of lower quality than the reference libopus and only does CELT coding. However, it is still good for the ecosystem to have a completely independent implementation.&lt;br /&gt;
&lt;br /&gt;
== Hardware &amp;amp; Software Support ==&lt;br /&gt;
&lt;br /&gt;
Much of this section is based heavily on the Jan 12th 2013 version of the &#039;&#039;&#039;Support&#039;&#039;&#039; section of the [http://en.wikipedia.org/wiki/Opus_%28audio_format%29 Wikipedia article], which is more likely to be kept updated and to provide links to further information about the supporting platforms.&lt;br /&gt;
&lt;br /&gt;
=== VoIP software ===&lt;br /&gt;
* The open source virtual PBX Freeswitch supports Opus transcoding.&lt;br /&gt;
* The voice-chat software Mumble supports Opus as its main codec.&lt;br /&gt;
* SIP softphones Phoner and PhonerLite support Opus&lt;br /&gt;
* The SIP and IAX2 client SFLphone is being fitted with Opus support.&lt;br /&gt;
* Integration of Opus into the Skype client is finished, although no version with Opus support has yet been published.&lt;br /&gt;
* TrueConf video conferencing solutions support Opus.&lt;br /&gt;
* Opus support is planned for Jitsi 2.0, together with VP8 video.&lt;br /&gt;
* Empathy may use any format supported in GStreamer, including Opus.&lt;br /&gt;
* Line2 has replaced their current codec with Opus. Their iOS app will be the first to be released with the Opus. The Android app will follow later.&lt;br /&gt;
* CSipSimple supports Opus, Codec2, G.726 and G.722.1 with an additional plug-in.&lt;br /&gt;
* The voice-chat software TeamSpeak 3 supports Opus for voice and music in pre-release server 3.0.7-pre2 and beta client version 3.0.10.&lt;br /&gt;
* The proprietary instant messenger service Discord uses Opus audio for all voice calls and video calls, regardless of platform.&lt;br /&gt;
&lt;br /&gt;
=== Web frameworks and browsers ===&lt;br /&gt;
* Opus support is mandatory for WebRTC implementations.&lt;br /&gt;
* Mozilla supports Opus beginning with version 15 of Firefox and Thunderbird, plus Seamonkey, which uses a shared codebase.&lt;br /&gt;
* Depending on the backend in use, Opera supports inline playback of embedded Opus files. Official support for Opus and WebRTC are on the development roadmap.&lt;br /&gt;
* Chromium and Google Chrome have audio support as of version 33.&lt;br /&gt;
* Apple&#039;s Safari browser now supports Opus as of iOS 11 and macOS 10.13 High Sierra.&lt;br /&gt;
* Maxthon Cloud Browser&lt;br /&gt;
&lt;br /&gt;
=== Streaming audio ===&lt;br /&gt;
* Icecast. (examples: [http://dir.xiph.org/by_format/Opus Stream directory by format Opus], [http://smj.delfa.net/opus_64.m3u 64k]/[http://smj.delfa.net/opus_256.m3u 256k] [http://smj.delfa.net/ Smooth Jazz Opus Stream], [http://www.absoluteradio.co.uk/listen/labs.html Absolute Radio Opus Trial] 7 stations at 24,64,96 kbps, [http://icecast.ofdoom.com:8000/burst-opus.ogg Icecast Of Doom 96k]&lt;br /&gt;
* Krad Radio&lt;br /&gt;
* Liquidsoap&lt;br /&gt;
&lt;br /&gt;
=== Operating systems and desktop multimedia frameworks ===&lt;br /&gt;
* In Debian GNU/Linux the Opus development tools and supporting libraries can be installed from the preconfigured repositories in the next stable version (&amp;quot;wheezy&amp;quot;) that is expected to be released in early 2013.&lt;br /&gt;
* For Microsoft Windows, there are DirectShow filters supporting Opus, including DC-Bass Source Mod and the LAV Filters.&lt;br /&gt;
* In GStreamer the integration of Opus support is complete.&lt;br /&gt;
* FFmpeg supports decoding and encoding Opus via the external library libopus.&lt;br /&gt;
* Android 5.0 and above supports Opus natively if encapsulated in the Ogg container, but .opus filename extension is not recognized by Android, so the use of double filename extension .opus.ogg is recommended as a workaround to allow apps to recognize files as playable audio.&lt;br /&gt;
&lt;br /&gt;
=== Hardware support ===&lt;br /&gt;
* Support in [[Rockbox]] is available. This means hardware support for a series of portable media players (including some products from the iPod series by Apple and Sansa, iriver and Archos devices) and with &amp;quot;Rockbox as an Application&amp;quot; (RaaA) also on Android devices.&lt;br /&gt;
&lt;br /&gt;
=== Player software ===&lt;br /&gt;
&lt;br /&gt;
* Windows/Mac/Linux (Cross-Platform)&lt;br /&gt;
*# [[VLC]] (media player supports Opus as of version 2.0.4&lt;br /&gt;
*# [[Amarok]] 2.8 has transcoding support for Opus codec if ffmpeg is compiled with support for the libopus library &amp;amp; support for playback of Opus encoded files if Amarok is compiled against TagLib (newer than V1.8)&lt;br /&gt;
*# Clementine has Opus support&lt;br /&gt;
*# Audacious player&lt;br /&gt;
*# [[MPD]] as of version 0.18 if compiled against libopus (supports both encoding for http streams and decoding)&lt;br /&gt;
* Windows Exclusive&lt;br /&gt;
*# AIMP supports Opus natively as of version 3.20 build 1125 beta 1&lt;br /&gt;
*# [[foobar2000]] supports Opus natively as of v1.1.14 beta 1&lt;br /&gt;
*# Mpxplay supports Opus (using a decoder DLL) as of v1.60 alpha 2&lt;br /&gt;
*# [[Winamp]] supports Opus using a [http://forums.winamp.com/showthread.php?p=2925154#post2925154 3rd party plug-in]&lt;br /&gt;
*# MPC-HC&lt;br /&gt;
*# Resonic Player/Pro supports Opus natively as of version 0.2.2&lt;br /&gt;
* iOS/Android (Cross-Platform)&lt;br /&gt;
*# Capriccio [https://itunes.apple.com/us/app/capriccio-free-ultimate-music/id434829018?mt=8 iOS]/[https://play.google.com/store/apps/details?id=me.ideariboso.capriccio Android]&lt;br /&gt;
*# foobar2000 [https://itunes.apple.com/us/app/foobar2000/id1072807669?mt=8 iOS]/[https://play.google.com/store/apps/details?id=com.foobar2000.foobar2000&amp;amp;hl=en Android]&lt;br /&gt;
* Android Exclusive&lt;br /&gt;
*# [https://play.google.com/store/apps/details?id=in.krosbits.musicolet Musicolet Music Player]&lt;br /&gt;
*# [http://gonemadmusicplayer.blogspot.com/ GoneMAD Music Player]&lt;br /&gt;
*# [http://neutronmp.com/ Neutron Music Player]&lt;br /&gt;
*# [http://www.videolan.org/vlc/download-android.html VLC Media Player for Android]&lt;br /&gt;
*# [https://play.google.com/store/apps/details?id=ru.recoilme.freeamp FreeMP]&lt;br /&gt;
*# [https://play.google.com/store/apps/details?id=net.mderezynski.youki3 Youki]&lt;br /&gt;
*# [https://play.google.com/store/apps/details?id=com.aimp.player AIMP for Android]&lt;br /&gt;
*# [https://play.google.com/store/apps/details?id=com.acmeandroid.listen Listen Audiobook Player]&lt;br /&gt;
*# [https://play.google.com/store/apps/details?id=com.mxtech.videoplayer.ad MX Player]&lt;br /&gt;
*# [https://play.google.com/store/apps/details?id=org.tomahawk.tomahawk_android Tomahawk Player Beta]&lt;br /&gt;
*# [https://play.google.com/store/apps/details?id=com.maxmpz.audioplayer&amp;amp;hl=en Poweramp Music Player]&lt;br /&gt;
&lt;br /&gt;
=== Other software ===&lt;br /&gt;
* CDBurnerXP&lt;br /&gt;
* MediaCoder&lt;br /&gt;
* Report-IT&lt;br /&gt;
* [[MP3tag|MP3tag]]&lt;br /&gt;
* [https://moisescardona.me/opus-gui/ Opus GUI]&lt;br /&gt;
* [http://www.xdlab.ru/en/ TagScanner]&lt;br /&gt;
* [http://www.xmedia-recode.de/ XMedia Recode]&lt;br /&gt;
&lt;br /&gt;
== References &amp;amp; Notes ==&lt;br /&gt;
&lt;br /&gt;
*{{note|homepage|a}}[http://opus-codec.org/ opus-codec.org homepage]&lt;br /&gt;
*{{note|FAQ|b}}[http://wiki.xiph.org/OpusFAQ Opus FAQ]&lt;br /&gt;
*{{note|RFC|c}}[http://tools.ietf.org/html/rfc6716 IETF RFC 6716]&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
[[Category:Codecs]]&lt;br /&gt;
[[Category:Lossy]]&lt;br /&gt;
[[Category:Encoder/Decoder]]&lt;/div&gt;</summary>
		<author><name>Artoria2e5</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=Opus&amp;diff=37291</id>
		<title>Opus</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=Opus&amp;diff=37291"/>
		<updated>2023-08-12T05:22:18Z</updated>

		<summary type="html">&lt;p&gt;Artoria2e5: /* Speech encoding quality */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Software Infobox&lt;br /&gt;
| name = Opus&lt;br /&gt;
| logo = [[Image:opus-logo.png|250px|Official Opus logo]]&lt;br /&gt;
| screenshot =&lt;br /&gt;
| caption = Opus Interactive Audio Codec&lt;br /&gt;
| maintainer = [http://xiph.org/ Xiph.Org Foundation]&lt;br /&gt;
| stable_release = 1.4&lt;br /&gt;
| operating_system = Windows, Mac OS/X, Linux/BSD&lt;br /&gt;
| use = Encoder/Decoder&lt;br /&gt;
| license = 3-clause BSD license&lt;br /&gt;
| website = [http://www.opus-codec.org/ opus-codec.org]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Opus&#039;&#039;&#039; is a [[lossy]] audio compression format developed by the Internet Engineering Task Force (IETF) designed to be suitable for interactive real-time applications over the Internet,{{ref|homepage|a}} including music as well as speech, yet it is also very competitive for use as a storage and playback format, being a [https://web.archive.org/web/20200130083553/http://people.xiph.org/~greg/opus/ha2011/ class leader at around 64 kbps] and [http://listening-test.coresv.net/results.htm also at 96 kbps]. As an open format standardised through [http://tools.ietf.org/html/rfc6716 Request for Comments (RFC) 6716],{{ref|RFC|c}} a high quality reference implementation is provided under the 3-clause BSD license{{ref|homepage|a}} which compiles and runs on the vast majority of general purpose and embedded (fixed point) processors. Many Software patents which cover Opus are licensed under royalty-free terms.{{ref|FAQ|b}}  Opus is also a Mandatory To Implement (MTI) codec for the upcoming WebRTC (Web Real Time Communication) specification of the World Wide Web Consortium (W3C).&lt;br /&gt;
&lt;br /&gt;
Opus incorporates technology from two codecs, the speech-oriented SILK codec developed by Skype and the multi-purpose low-latency CELT codec developed by Xiph.org with significant changes to each to ensure they can work together.{{ref|RFC|c}} Opus can seamlessly transition among high and low bitrates, using a linear prediction codec (the SILK layer) at lower bitrates and a lapped transform codec (the CELT layer) at higher bitrates, as well as a hybrid of the two for a short overlap in which SILK encodes the 0–8&amp;amp;nbsp;kHz spectrum and the CELT layer encodes only the frequencies above 8kHz.{{ref|RFC|c}} Opus has very low algorithmic delay (typ 22.5&amp;amp;nbsp;ms) compared to popular music formats such as [[MP3]], [[Vorbis |Ogg Vorbis]], [[AAC | LC-AAC and HE-AAC]] (all over 100&amp;amp;nbsp;ms), yet performs very competitively with them in terms of quality per bitrate, making it comparably viable as a storage &amp;amp; playback format. Also unlike Vorbis, Opus does not require the definition of large codebooks for each individual file, making it also preferable for short clips of audio, such as those often used by game developers, a field where patent-free Vorbis is commonly used.{{ref|RFC|c}}&lt;br /&gt;
&lt;br /&gt;
Considerably more details of the history and potential applications for Opus are included in the &#039;&#039;Wikipedia&#039;&#039; page for &#039;&#039;&#039;[http://en.wikipedia.org/wiki/Opus_%28audio_format%29 Opus (audio format)]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Characteristics==&lt;br /&gt;
Opus supports bitrates from 6&amp;amp;nbsp;kbps to 510&amp;amp;nbsp;kbps for typical stereo audio sources (and a maximum of around 255 kbps per channel for multichannel audio), with the &#039;sweet spot&#039; for music and general audio around 30&amp;amp;nbsp;kbps (mono) and 40–100&amp;amp;nbsp;kbps (stereo). It is intrinsically [[VBR | variable bitrate]], though constrained VBR and [[CBR | constant bitrate]] modes are possible where required. In the case of the reference release, libopus, the target bitrate is calibrated against the internal constant quality targets so that over a typical music collection, something very close to the target bitrate will be achieved. This bitrate-calibrated approach differs from most VBR encoders (e.g. LAME, helix mp3, qaac, Nero aacenc, Ogg Vorbis, Musepack) where a setting on some &#039;constant quality&#039; scale (which differs between encoders) is used and the bitrate will fall where it may. Improved future versions can be expected to offer improved quality at the same setting. Independent implementations may adopt a different approach.&lt;br /&gt;
&lt;br /&gt;
Opus is able to seamlessly adapt its mode of operation without glitches or sound interruption (an illustrative demonstration of [http://opus-codec.org/examples/#gauge bitrate scalability] is on the Opus Examples page), which can be particularly useful for mixed-content audio or varying network conditions, making the unified Opus codec superior to a suite of different codecs that might otherwise cover the same range of bitrate and quality settings and would require out-of-band signalling to instigate codec switching. The switching includes the choice of mono, stereo and other channel mappings, the use of the speech-oriented SILK layer, the general-purpose CELT layer or the hybrid of both, and the use of different audio bandwidths (4, 6, 8, 12, or 20&amp;amp;nbsp;kHz) as well as the quality adjustments within the same operating mode that are available in most VBR-capable codecs.&lt;br /&gt;
&lt;br /&gt;
Of importance mainly to interactive uses, but potentially useful in time-delayed audio streaming also, Opus includes packet loss concealment (PLC) in all modes and, in the speech-oriented modes where the SILK layer is active it also supports Forward Error Correction (FEC) where the expected rate of packet loss can be indicated to the encoder by the user or by application software and critical frames (e.g. consonant sounds) can be retransmitted at low bitrate to preserve intelligibility.&lt;br /&gt;
&lt;br /&gt;
For music and general audio, the CELT layer of Opus builds on knowledge gained during xiph.org&#039;s Vorbis development and ensures as a primary goal that the total energy in each spectral band is preserved while requiring only a modest bitrate overhead to achieve this, thereby eliminating a lot of bitrate-starvation artifacts such as &#039;birdies&#039; that are common in low-bitrate MP3, especially during transients, applause and cymbal sounds. This technique likewise increases coding efficiency at bitrates targetting transparent music reproduction. Short blocks (2.5&amp;amp;nbsp;ms) are also possible for efficient transient handling. Short blocks can also be used exclusively, if very low algorithmic delay (5.0&amp;amp;nbsp;ms) is required to enable very low-latency interative audio (e.g. live networked music performances such as remote jam sessions), though greater bitrate is then required to maintain the same quality (illustrated in [http://people.xiph.org/~xiphmont/demo/celt/demo.html#demo Monty&#039;s CELT demo page] under Constant PEAQ value, varying latency). CELT uses a number of additional techniques and provides additional advanced tools to enable encoder tuning.&lt;br /&gt;
&lt;br /&gt;
Opus natively supports [[gapless playback]] (though [[Gapless_playback#Poorly_designed_playback_systems | poor player design]] might itself induce interruptions during playback). Playback gain is also required, making some form of [[ReplayGain]] or [[ReplayGain_2.0_specification | similar]] volume control possible in any compliant player.&lt;br /&gt;
&lt;br /&gt;
==Bitrate performance==&lt;br /&gt;
For mono speech, Opus ranges from intelligible narrowband speech reproduction starting at 6&amp;amp;nbsp;kbps to medium-band, wideband and superwideband speech, reaching full-band speech by around 14&amp;amp;nbsp;kbps in encoder version 1.2 (was 21&amp;amp;nbsp;kbps in v1.1, 29&amp;amp;nbsp;kbps in v1.0). Above about 32&amp;amp;nbsp;kbps, the SILK layer is no longer used at all, as CELT alone gives superior quality.&lt;br /&gt;
&lt;br /&gt;
For music, the SILK modes are quite tolerable and better than CELT at very low bitrates. The hybrid mode is adopted as bitrate increases, extending bandwidth first to 12&amp;amp;nbsp;kHz (comparable with compact cassette) then to the full 20&amp;amp;nbsp;kHz and CELT then takes over. Assuming the source is stereo, the transition from mono to stereo typically happens between the transition from 12&amp;amp;nbsp;kHz to 20&amp;amp;nbsp;kHz. Encoder version 1.2 includes great improvements to music encoding in the 32–64&amp;amp;nbsp;kbps range, allowing full-band stereo at 32&amp;amp;nbsp;kbps and providing acceptable quality at 48&amp;amp;nbsp;kbps where artifacts are audible but rarely annoying. Version 1.3 is expected to further improve quality in this range.&lt;br /&gt;
&lt;br /&gt;
Multi-format stereo music listening tests have demonstrated the superiority of Opus at 64&amp;amp;nbsp;kbps and 96&amp;amp;nbsp;kbps compared to the best AAC-LC, HE-AAC and Ogg Vorbis encoders, and at 96&amp;amp;nbsp;kbps also to 128&amp;amp;nbsp;kbps MP3 encoded using LAME &amp;lt;code&amp;gt;-V 5&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Indicative bitrate and quality==&lt;br /&gt;
The tables below give illustrative, indicative quality guidance based on typical modes used internally by Opus and a range of listening tests.&lt;br /&gt;
&lt;br /&gt;
In encoder version 1.1 automatic detection of speech/music and bandwidth detection were introduced to improve mode decisions and VBR is less constrained, all with the aim of maximizing the quality/bitrate tradeoff, and these improvements are further enhanced in version 1.2 and 1.3. These tables are likely to require updates as the encoder is improved, especially in low-bitrate regions.&lt;br /&gt;
&lt;br /&gt;
===Speech encoding quality===&lt;br /&gt;
This table assumes a &#039;&#039;&#039;monophonic&#039;&#039;&#039; source sampled at CD quality or above (typ 48 kHz sampling rate) but mentions stereo compatibility for 40kbps+. The default 20ms frame size (22.5ms latency) is assumed. Note that the selection of &#039;&#039;VOIP&#039;&#039; mode will deliberately modify the sound with a High Pass Filter and emphasis of formants and harmonics to improve intelligibility of speech especially in noisy environments much as telephones do. &#039;&#039;Auto&#039;&#039; mode will not modify the sound prior to encoding so is usually better for high quality speech recordings or mixed speech and music.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Bitrate Target&lt;br /&gt;
!Bandwidth&lt;br /&gt;
!Typical Mode Used&lt;br /&gt;
!Speech Quality&lt;br /&gt;
!Use Cases / Competitive Codecs&lt;br /&gt;
|-&lt;br /&gt;
! Less than 6 kbps&lt;br /&gt;
| &amp;amp;mdash;&lt;br /&gt;
| &amp;amp;mdash;&lt;br /&gt;
| Bitrates lower than 6 kbps not supported by Opus (SILK disabled if forced to encode, which results in terrible speech quality)&lt;br /&gt;
| Try [https://en.wikipedia.org/wiki/Codec_2 Codec 2] for 0.45–3.2&amp;amp;nbsp;kbps mono speech or [[Wikipedia:Lyra (codec)|Lyra]] for 3.2&amp;amp;nbsp;kbps mono speech&lt;br /&gt;
|-&lt;br /&gt;
!6 kbps&lt;br /&gt;
|4 kHz narrow-band&lt;br /&gt;
|SILK&lt;br /&gt;
|Fair, intelligible&lt;br /&gt;
|AMR-NB may be a little better, but higher latency &amp;amp; proprietary, [[Speex]] also competitive&lt;br /&gt;
|-&lt;br /&gt;
!9 kbps VBR/CVBR&amp;lt;br&amp;gt;10 kbps CBR&lt;br /&gt;
|8 kHz wide-band&lt;br /&gt;
|SILK&lt;br /&gt;
|Telephone quality&lt;br /&gt;
|AMR-NB &amp;amp; AMR-WB similar quality, but higher latency &amp;amp; proprietary. [[Speex]] competitive.&lt;br /&gt;
|-&lt;br /&gt;
!12 kbps&lt;br /&gt;
|12 kHz super-wideband&lt;br /&gt;
|hybrid&lt;br /&gt;
|Medium bandwidth, better than telephone quality&lt;br /&gt;
|Similar quality to AMR-WB&lt;br /&gt;
|-&lt;br /&gt;
!16 kbps&lt;br /&gt;
|20 kHz&lt;br /&gt;
|hybrid/CELT&lt;br /&gt;
|Wideband speech quality&lt;br /&gt;
|Similar to/better than AMR-WB&lt;br /&gt;
|-&lt;br /&gt;
!24 kbps&lt;br /&gt;
|20 kHz&lt;br /&gt;
|hybrid/CELT&lt;br /&gt;
|Near transparent speech&lt;br /&gt;
|Better than AMR-WB. Podcasts/audiobooks/talk-radio.&lt;br /&gt;
|-&lt;br /&gt;
!32 kbps&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Essentially transparent speech plus moderately good stereo music&lt;br /&gt;
|Much better than AMR-WB. Podcasts/audiobooks/talk-radio.&lt;br /&gt;
|-&lt;br /&gt;
!40 kbps&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Essentially transparent mono or stereo speech, fairly good stereo music&lt;br /&gt;
|Stereo podcasts/audiobooks/talk radio with some music&lt;br /&gt;
|-&lt;br /&gt;
!48 kbps or more&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Essentially transparent mono or stereo speech, reasonable music&lt;br /&gt;
|Flexible general purpose modes to suit mixed music and speech&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
One major limitation of Opus at low bitrate is that SILK is inherently VBR: it accepts no constraints in CVBR, and if forced to do CBR the quality degrades from bit-shaving. As a result, even though constrained VBR is designed such that a fixed-rate data link requires at most one frame of buffer to handle the variation in bit rate -- great news for communication links -- any use of SILK, even in hybrid mode, has the potential of breaking this intention. This makes Opus suboptimal for low-rate radio links: radio links requires a predictable buffer amount, which is only possible with CBR when SILK is used, but use of CBR in turn hurts SILK.&lt;br /&gt;
&lt;br /&gt;
Opus 1.3+ allows forced use of SILK down to 5 kbps VBR (NB) and 6 kbps VBR (WB, requires forcing the C API with &amp;lt;code&amp;gt;OPUS_SET_BANDWIDTH&amp;lt;/code&amp;gt;). However, quality is in no way guaranteed -- it&#039;s just possible.&lt;br /&gt;
&lt;br /&gt;
===Music encoding quality===&lt;br /&gt;
This table assumes a &#039;&#039;&#039;stereophonic&#039;&#039;&#039; source sampled at CD quality or above (typ 48&amp;amp;nbsp;kHz sampling rate). Opus will automatically use mono at very low bitrates, though a certain amount of stereo encoding can still be used (content dependent) even when mono is specified as the typical stereo mode in the table below.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Bitrate target&lt;br /&gt;
!Stereo mode&lt;br /&gt;
!Bandwidth&lt;br /&gt;
!typ SILK/CELT use&lt;br /&gt;
!Music quality notes&lt;br /&gt;
!Use cases/notes/competitive codecs&lt;br /&gt;
|-&lt;br /&gt;
!6 kbps&lt;br /&gt;
|mono&lt;br /&gt;
|6 kHz&lt;br /&gt;
|SILK&lt;br /&gt;
|Poor, muffled sound but intelligible lyrics.&lt;br /&gt;
| &amp;amp;mdash;&lt;br /&gt;
|-&lt;br /&gt;
!8 kbps&lt;br /&gt;
|mono&lt;br /&gt;
|6 kHz&lt;br /&gt;
|SILK&lt;br /&gt;
|Poor, muffled but OK for bitrate&lt;br /&gt;
| &amp;amp;mdash;&lt;br /&gt;
|-&lt;br /&gt;
!14 to 16 kbps&lt;br /&gt;
|mono&lt;br /&gt;
|20 kHz&lt;br /&gt;
|hybrid/CELT&lt;br /&gt;
|Fairly poor but OK for bitrate&lt;br /&gt;
|Perhaps acceptable for incidental music&lt;br /&gt;
|-&lt;br /&gt;
!22 to 24 kbps&lt;br /&gt;
|mono&lt;br /&gt;
|20 kHz&lt;br /&gt;
|hybrid/CELT&lt;br /&gt;
|Fair but OK for bitrate&lt;br /&gt;
|OK for incidental music&lt;br /&gt;
|-&lt;br /&gt;
!32 to 40 kbps&lt;br /&gt;
|stereo&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Moderately good stereo, some artifacts, rarely nasty&lt;br /&gt;
|Stereo podcasts, audiobooks, very low bitrate music&lt;br /&gt;
|-&lt;br /&gt;
!48 kbps&lt;br /&gt;
|stereo&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Full bandwidth stereo music, nice sound, may have problems with cymbals&lt;br /&gt;
|Stereo podcasts, audiobooks, low bitrate music&lt;br /&gt;
|-&lt;br /&gt;
!64 kbps&lt;br /&gt;
|stereo&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Full bandwidth stereo music, nice sound, detectable differences to original (mostly &#039;not annoying&#039;)&lt;br /&gt;
|Music storage &amp;amp; streaming. Beat HE-AAC, Vorbis, MP3 in [https://web.archive.org/web/20200130083553/http://people.xiph.org/~greg/opus/ha2011/ listening test]&lt;br /&gt;
|-&lt;br /&gt;
!96 kbps&lt;br /&gt;
|stereo&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Full bandwidth stereo music, good quality approaching transparency&lt;br /&gt;
|Music storage &amp;amp; high quality streaming. Beat LC-AAC, Vorbis, MP3 in [http://listening-test.coresv.net/results.htm listening test]&lt;br /&gt;
|-&lt;br /&gt;
!112 kbps&lt;br /&gt;
|stereo&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Fairly close to transparency (needs more testing)&lt;br /&gt;
|Music storage &amp;amp; high quality streaming. Very low-latency stereo networked music performance/jam sessions at OK quality (see below table)&lt;br /&gt;
|-&lt;br /&gt;
!128 kbps&lt;br /&gt;
|stereo&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Very close to transparency (needs more testing). Most modern codecs competitive (AAC-LC, Vorbis, MP3)&lt;br /&gt;
|Music storage &amp;amp; streaming. Future download music sales.&lt;br /&gt;
|-&lt;br /&gt;
!160 to 192 kbps&lt;br /&gt;
|stereo&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Transparent with very low chance of artifacts (a few killer samples still detectable). Most old &amp;amp; new lossy codecs competitive.&lt;br /&gt;
|Music storage &amp;amp; streaming, dedicated limited-bandwidth audio links (e.g. wireless, [http://en.wikipedia.org/wiki/Bluetooth_profile#Advanced_Audio_Distribution_Profile_.28A2DP.29 A2DP-bluetooth] type links). &lt;br /&gt;
|-&lt;br /&gt;
!510 kbps&lt;br /&gt;
|stereo&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Maximum possible stereo bitrate target (actual rate often less than 510 for default frame size). Most old and new lossy codecs competitive, plus near-lossless [[lossyWAV]] and [[WavPack | WavPack lossy]]&lt;br /&gt;
|Music storage, dedicated limited-bitrate audio links (e.g. wireless, minimum latency high quality audio. LossyWAV and WavPack lossy are very competitive for storage, and WavPack lossy &amp;lt;code&amp;gt;--blocksize=256&amp;lt;/code&amp;gt; may be competitive with minimum latency mode also.&lt;br /&gt;
|-&lt;br /&gt;
!&amp;gt;510 kbps&lt;br /&gt;
| &amp;amp;mdash;&lt;br /&gt;
| &amp;amp;mdash;&lt;br /&gt;
| &amp;amp;mdash;&lt;br /&gt;
|Above Opus bitrate range allowed for stereo sources&lt;br /&gt;
|Settle for 510&amp;amp;nbsp;kbps or use [[lossless]], [[lossyWAV]], [[WavPack | WavPack lossy]] or lossy transform/subband codecs like [[Vorbis]], [[Musepack]] at very high settings.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Lower latency versus quality/bitrate trade-off===&lt;br /&gt;
====Packet overhead in interactive applications====&lt;br /&gt;
For interactive use on the Internet or other packet-based networks, total bandwidth used will be subject to packet overhead. The more packet headers that are transmitted every second, the greater will be the overhead that is required. For this reason, Opus, while defaulting to 20&amp;amp;nbsp;ms frames, supports 60&amp;amp;nbsp;ms frames to reduce overhead when transporting low-bitrate SILK frames at the expense of greater latency, which may still be acceptable for speech, and also supports 10&amp;amp;nbsp;ms SILK frames to reduce latency somewhat at the expense of packet overhead.&lt;br /&gt;
&lt;br /&gt;
In the CELT layer, which tends to operate at higher bitrates than SILK, 20&amp;amp;nbsp;ms frames are the default, but frames of 10&amp;amp;nbsp;ms, 5&amp;amp;nbsp;ms and 2.5&amp;amp;nbsp;ms are also possible, which directly increases the frame overhead by transmitting more packets per second to achieve lower latency. In addition, as we&#039;ll see below it also reduces the quality/bitrate tradeoff of the CELT layer itself.&lt;br /&gt;
&lt;br /&gt;
You probably do not want to use a frame size lower than 10&amp;amp;nbsp;ms in applications containing speech, as doing so turns off SILK. The &amp;quot;lowdelay&amp;quot; application switch (available in FFmpeg and the raw library) turns off SILK to cut out 4&amp;amp;nbsp;ms of synchronization delay, but a frame size of 10&amp;amp;nbsp;ms achieves more delay reduction compared to default without sacrificing SILK.&lt;br /&gt;
&lt;br /&gt;
None of the bitrates mentioned in this article account for the packet overhead.&lt;br /&gt;
&lt;br /&gt;
====CELT layer latency versus quality/bitrate trade-off====&lt;br /&gt;
Unlike the SILK layer, which works on fixed 10&amp;amp;nbsp;ms blocks, 1, 2 or 6 of which can be combined into an Opus frame, the CELT layer is able to modify the encoding block lengths available to enable its use with shorter frames.&lt;br /&gt;
&lt;br /&gt;
When the CELT layer uses 10&amp;amp;nbsp;ms, 5&amp;amp;nbsp;ms and 2.5&amp;amp;nbsp;ms frames instead of the default 20&amp;amp;nbsp;ms, it must use smaller transform block sizes to achieve this, thereby reducing frequency resolution in the MDCT compared to the default transform window, thus reducing encoding efficiency for tonal signals. To obtain the same frequency precision for a sound divided into shorter transform windows, improved amplitude precision is necessary, resulting in increased bitrate to obtain the same perceptual quality (or conversely lower quality at the same bitrate).&lt;br /&gt;
&lt;br /&gt;
These reduced-latency modes remain efficient for transient signals, which use short blocks anyway.&lt;br /&gt;
&lt;br /&gt;
In all modes, the algorithmic delay consists of the frame size plus an additional 2.5&amp;amp;nbsp;ms delay. The CELT layer requires 2.5&amp;amp;nbsp;ms for MDCT window overlap.&lt;br /&gt;
&lt;br /&gt;
Xiph.org used matched [[PEAQ]] scores (approximate perceptual quality assessment made in software) for the CELT0.10 codec that was used as the basis of the CELT layer in the Opus reference release, which indicate the following [http://people.xiph.org/~xiphmont/demo/celt/demo.html#demo approximate equivalent settings] for stereo music.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Frame size&lt;br /&gt;
!Algorithmic delay&lt;br /&gt;
!Bitrate to match 64kbps@22.5ms delay&lt;br /&gt;
!fractional bitrate increase&lt;br /&gt;
|-&lt;br /&gt;
!20 ms&lt;br /&gt;
|22.5 ms&lt;br /&gt;
|64.0 kbps&lt;br /&gt;
| +0.0 %&lt;br /&gt;
|-&lt;br /&gt;
!10 ms&lt;br /&gt;
|12.5 ms&lt;br /&gt;
|70.4 kbps&lt;br /&gt;
| +10.0 %&lt;br /&gt;
|-&lt;br /&gt;
!5 ms&lt;br /&gt;
|7.5 ms&lt;br /&gt;
|84.8 kbps&lt;br /&gt;
| +32.5 %&lt;br /&gt;
|-&lt;br /&gt;
!2.5 ms&lt;br /&gt;
|5.0 ms&lt;br /&gt;
|112.0 kbps&lt;br /&gt;
| +75.0 %&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
N.B. This table is useful for interactive streaming only. For music storage &amp;amp; delayed playback or non-interactive streaming, latency reduction is not important and the default 20&amp;amp;nbsp;ms frame size is preferable.&lt;br /&gt;
&lt;br /&gt;
== Implementations ==&lt;br /&gt;
&lt;br /&gt;
The format and algorithms are openly documented and the reference implementation is published as free software. The reference implementation (Opus Audio Tools, opus-tools), consisting of separate encoders and decoders, is published under the terms of a BSD-like license. It is written in C programming language and can be compiled for hardware architectures with or without floating point unit. The accompanying diagnostic tool opusinfo reports detailed technical information about Opus files, including information on the standard compliance of the bitstream format. It is based on ogginfo from the vorbis-tools and therefore, unlike the encoder and decoder, available under the terms of version 2 of the GPL.&lt;br /&gt;
&lt;br /&gt;
=== Reference implementation (libopus + binaries) ===&lt;br /&gt;
The commandline tools of the reference version are available pre-compiled for the most popular operating systems at [http://opus-codec.org/downloads opus-codec.org] and [https://ftp.mozilla.org/pub/mozilla.org/opus/ Mozilla&#039;s ftp server], plus in the foobar2000 free encoders pack and some alternative compiles through the hydrogenaud.io opus forum. The libopus commandline tools include encoder &amp;lt;code&amp;gt;opusenc&amp;lt;/code&amp;gt;, decoder &amp;lt;code&amp;gt;opusdec&amp;lt;/code&amp;gt;, and with a different license, the &amp;lt;code&amp;gt;opusinfo&amp;lt;/code&amp;gt; opus stream &amp;amp; metadata analyzer.&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;latest stable release&#039;&#039;&#039; is recommended for general use and as of mid 2014 is considered competitive with or superior to the best alternative speech or general music encoders at most supported bitrates.&lt;br /&gt;
&lt;br /&gt;
==== libopus v1.0 ====&lt;br /&gt;
Released 11 Sep 2012 when RFC6716 was standardized but mostly fully developed by late 2011.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Stable, well-tuned&#039;&#039;&#039; &amp;lt;code&amp;gt;opusenc&amp;lt;/code&amp;gt; reference encoder as included in RFC documentation.&lt;br /&gt;
&lt;br /&gt;
CELT layer closely related to CELT 0.10 implements Constrained VBR mode by default (bitrate boost used mainly for transients), plus true CBR.&lt;br /&gt;
&lt;br /&gt;
==== libopus v1.1 ==== &lt;br /&gt;
&lt;br /&gt;
The alpha source code released 21 Dec 2012 for testing &amp;amp; user feedback and following a beta release and testing, the stable 1.1 version was released on 5 December 2013, considered well tested enough for general release.&amp;lt;ref&amp;gt;https://people.xiph.org/~xiphmont/demo/opus/demo3.shtml&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
CELT layer [http://jmspeex.livejournal.com/11737.html quality improvements] introduced to provide &#039;&#039;&#039;unconstrained VBR&#039;&#039;&#039; include a rate boost not just for transients but now for highly tonal signals too and rate reduction when stereo image is narrow. There&#039;s also a rewrite of its &#039;&#039;&#039;transient detection&#039;&#039;&#039; code and &#039;&#039;&#039;time-frequency analysis&#039;&#039;&#039; code, and rewritten &#039;&#039;&#039;dynamic allocation&#039;&#039;&#039; code (HF/LF tilt and Band Boost) to allow more aggressive changes from the typical static allocation when warranted.&lt;br /&gt;
&lt;br /&gt;
There are many minor improvements to &#039;&#039;&#039;speech quality&#039;&#039;&#039; in both SILK and CELT layers.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;DC-rejection&#039;&#039;&#039; below 3 Hz also aids quality if inaudible DC offset is present with no effect on deep bass notes.&lt;br /&gt;
*&#039;&#039;&#039;Automatic speech/music detection&#039;&#039;&#039; is introduced to optimize encoding mode choices, especially near the bitrate target range (presumably around 24–40&amp;amp;nbsp;kbps) where the encoder may perform best with SILK, hybrid or CELT depending on content type. Below that range SILK performs best for both music &amp;amp; speech, and above it CELT performs best for speech &amp;amp; music. The detection, without look-ahead is not perfect but usually is undecided in audio where either mode will work well.&lt;br /&gt;
*&#039;&#039;&#039;Automatic bandwidth detection&#039;&#039;&#039; is also introduced to save wasted bits allocated to absent frequencies.&lt;br /&gt;
*&#039;&#039;&#039;Surround sound improvements&#039;&#039;&#039; were introduced since the beta release with considerable advances in coding efficiency, bitrate allocation and quality.&lt;br /&gt;
&lt;br /&gt;
A new &#039;&#039;&#039;temporal VBR&#039;&#039;&#039; feature is added. For reasons not explained by classic psychoacoustics, it appears that giving more bits to loud frames (stealing from quiet frames) makes the result substantially better on listening tests. This feature is not tunable: it always affects VBR calculation at low bitrates, gradually becoming weaker at higher bitrates, until it turns off completely at 68&amp;amp;nbsp;kbps.&lt;br /&gt;
&lt;br /&gt;
==== libopus v1.1.3 ==== &lt;br /&gt;
Released July 15th, 2016. This version contains:&lt;br /&gt;
&lt;br /&gt;
*Neon optimizations improving performance on ARMv7 and ARMv8 by up to 15%&lt;br /&gt;
*Fixes some issues with 16-bit platforms (e.g. TI C55x)&lt;br /&gt;
*Fixes to comfort noise generation (CNG)&lt;br /&gt;
*Documenting that PLC packets can also be 2 bytes&lt;br /&gt;
*Includes experimental ambisonics work (&amp;lt;code&amp;gt;--enable-ambisonics&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
==== libopus v1.2.1 ==== &lt;br /&gt;
Released June 26th, 2017. This version contains:&lt;br /&gt;
&lt;br /&gt;
*Speech quality improvements especially in the 12–20&amp;amp;nbsp;kbit/s range&lt;br /&gt;
*Improved VBR encoding for hybrid mode&lt;br /&gt;
*More aggressive use of wider speech bandwidth, including fullband speech starting at 14&amp;amp;nbsp;kbit/s&lt;br /&gt;
*Music quality improvements in the 32–48&amp;amp;nbsp;kbit/s range&lt;br /&gt;
*Generic and SSE CELT optimizations&lt;br /&gt;
*Support for directly encoding packets up to 120&amp;amp;nbsp;ms&lt;br /&gt;
*DTX support for CELT mode&lt;br /&gt;
*SILK CBR improvements&lt;br /&gt;
*Support for all of the fixes in draft-ietf-codec-opus-update-06 (the mono downmix and the folding fixes need &amp;lt;code&amp;gt;--enable-update-draft&amp;lt;/code&amp;gt;)&lt;br /&gt;
*Many bug fixes, including integer wrap-arounds discovered through fuzzing (no security implications)&lt;br /&gt;
&lt;br /&gt;
==== libopus v1.3 ====&lt;br /&gt;
Released on October 18th, 2018. This version contains:&lt;br /&gt;
&lt;br /&gt;
* Improvements to voice activity detection (VAD) and speech/music classification using a recurrent neural network (RNN)&lt;br /&gt;
* Support for ambisonics coding using channel mapping families 2 and 3&lt;br /&gt;
* Improvements to stereo speech coding at low bitrate&lt;br /&gt;
* Using wideband encoding down to 9&amp;amp;nbsp;kb/s&lt;br /&gt;
* Making it possible to use SILK down to bitrates around 5&amp;amp;nbsp;kb/s&lt;br /&gt;
* Minor quality improvement on tones&lt;br /&gt;
* Enabling the spec fixes in &amp;lt;nowiki&amp;gt;RFC 8251&amp;lt;/nowiki&amp;gt; by default&lt;br /&gt;
* Security/hardening improvements&lt;br /&gt;
* Fixes to the CELT PLC&lt;br /&gt;
* Bandwidth detection fixes&lt;br /&gt;
&lt;br /&gt;
==== libopus v1.3.1 ====&lt;br /&gt;
Released on April 12th, 2019. This version contains:&lt;br /&gt;
&lt;br /&gt;
* Fixes to x87 builds&lt;br /&gt;
* A new OPUS_GET_IN_DTX query to know if the encoder is in DTX mode (last frame was either a comfort noise frame or not encoded at all)&lt;br /&gt;
* A new (and still experimental) CMake-based build system that is eventually meant to replace the VS2015 build system (the autotools one will stay)&lt;br /&gt;
&lt;br /&gt;
==== libopus v1.4 ====&lt;br /&gt;
Released on April 20th, 2023. This version contains:&lt;br /&gt;
&lt;br /&gt;
* Improved tuning of the Opus in-band FEC (LBRR). See the issue for details&lt;br /&gt;
* Added a OPUS_SET_INBAND_FEC(2) option that turns on FEC, but does not force SILK mode (FEC will be disabled in CELT mode)&lt;br /&gt;
* Improved tuning and various fixes to DTX&lt;br /&gt;
* Added Meson support, improved CMake support In addition to the improvements above, this release includes many minor bug fixes.&lt;br /&gt;
&lt;br /&gt;
=== Other implementations ===&lt;br /&gt;
&lt;br /&gt;
==== Concentus ====&lt;br /&gt;
&lt;br /&gt;
The libopus reference library (fixed-point variant) has successfully been ported to both &#039;&#039;&#039;C#&#039;&#039;&#039; and &#039;&#039;&#039;Java&#039;&#039;&#039;, as part of a project called &#039;&#039;&#039;Concentus&#039;&#039;&#039;. The aim of the project is specifically to target cross-platform applications where native C interop is relatively difficult. The code is available on [https://github.com/lostromb/concentus Github] and distributed via standard package managers.&lt;br /&gt;
&lt;br /&gt;
==== Emscripten ports ====&lt;br /&gt;
&lt;br /&gt;
At least one port of reference opus in Javascript has been made using the automated tool [https://developer.mozilla.org/en-US/docs/Mozilla/Projects/Emscripten emscripten]. See [https://blog.rillke.com/opusenc.js/ here], [https://github.com/kazuki/opus.js-sample here] and [https://github.com/audiocogs/opus.js here].&lt;br /&gt;
&lt;br /&gt;
==== ffmpeg ====&lt;br /&gt;
FFmpeg has a native [https://ffmpeg.org/ffmpeg-codecs.html#opus &amp;quot;opus&amp;quot;] codec. It is of lower quality than the reference libopus and only does CELT coding. However, it is still good for the ecosystem to have a completely independent implementation.&lt;br /&gt;
&lt;br /&gt;
== Hardware &amp;amp; Software Support ==&lt;br /&gt;
&lt;br /&gt;
Much of this section is based heavily on the Jan 12th 2013 version of the &#039;&#039;&#039;Support&#039;&#039;&#039; section of the [http://en.wikipedia.org/wiki/Opus_%28audio_format%29 Wikipedia article], which is more likely to be kept updated and to provide links to further information about the supporting platforms.&lt;br /&gt;
&lt;br /&gt;
=== VoIP software ===&lt;br /&gt;
* The open source virtual PBX Freeswitch supports Opus transcoding.&lt;br /&gt;
* The voice-chat software Mumble supports Opus as its main codec.&lt;br /&gt;
* SIP softphones Phoner and PhonerLite support Opus&lt;br /&gt;
* The SIP and IAX2 client SFLphone is being fitted with Opus support.&lt;br /&gt;
* Integration of Opus into the Skype client is finished, although no version with Opus support has yet been published.&lt;br /&gt;
* TrueConf video conferencing solutions support Opus.&lt;br /&gt;
* Opus support is planned for Jitsi 2.0, together with VP8 video.&lt;br /&gt;
* Empathy may use any format supported in GStreamer, including Opus.&lt;br /&gt;
* Line2 has replaced their current codec with Opus. Their iOS app will be the first to be released with the Opus. The Android app will follow later.&lt;br /&gt;
* CSipSimple supports Opus, Codec2, G.726 and G.722.1 with an additional plug-in.&lt;br /&gt;
* The voice-chat software TeamSpeak 3 supports Opus for voice and music in pre-release server 3.0.7-pre2 and beta client version 3.0.10.&lt;br /&gt;
* The proprietary instant messenger service Discord uses Opus audio for all voice calls and video calls, regardless of platform.&lt;br /&gt;
&lt;br /&gt;
=== Web frameworks and browsers ===&lt;br /&gt;
* Opus support is mandatory for WebRTC implementations.&lt;br /&gt;
* Mozilla supports Opus beginning with version 15 of Firefox and Thunderbird, plus Seamonkey, which uses a shared codebase.&lt;br /&gt;
* Depending on the backend in use, Opera supports inline playback of embedded Opus files. Official support for Opus and WebRTC are on the development roadmap.&lt;br /&gt;
* Chromium and Google Chrome have audio support as of version 33.&lt;br /&gt;
* Apple&#039;s Safari browser now supports Opus as of iOS 11 and macOS 10.13 High Sierra.&lt;br /&gt;
* Maxthon Cloud Browser&lt;br /&gt;
&lt;br /&gt;
=== Streaming audio ===&lt;br /&gt;
* Icecast. (examples: [http://dir.xiph.org/by_format/Opus Stream directory by format Opus], [http://smj.delfa.net/opus_64.m3u 64k]/[http://smj.delfa.net/opus_256.m3u 256k] [http://smj.delfa.net/ Smooth Jazz Opus Stream], [http://www.absoluteradio.co.uk/listen/labs.html Absolute Radio Opus Trial] 7 stations at 24,64,96 kbps, [http://icecast.ofdoom.com:8000/burst-opus.ogg Icecast Of Doom 96k]&lt;br /&gt;
* Krad Radio&lt;br /&gt;
* Liquidsoap&lt;br /&gt;
&lt;br /&gt;
=== Operating systems and desktop multimedia frameworks ===&lt;br /&gt;
* In Debian GNU/Linux the Opus development tools and supporting libraries can be installed from the preconfigured repositories in the next stable version (&amp;quot;wheezy&amp;quot;) that is expected to be released in early 2013.&lt;br /&gt;
* For Microsoft Windows, there are DirectShow filters supporting Opus, including DC-Bass Source Mod and the LAV Filters.&lt;br /&gt;
* In GStreamer the integration of Opus support is complete.&lt;br /&gt;
* FFmpeg supports decoding and encoding Opus via the external library libopus.&lt;br /&gt;
* Android 5.0 and above supports Opus natively if encapsulated in the Ogg container, but .opus filename extension is not recognized by Android, so the use of double filename extension .opus.ogg is recommended as a workaround to allow apps to recognize files as playable audio.&lt;br /&gt;
&lt;br /&gt;
=== Hardware support ===&lt;br /&gt;
* Support in [[Rockbox]] is available. This means hardware support for a series of portable media players (including some products from the iPod series by Apple and Sansa, iriver and Archos devices) and with &amp;quot;Rockbox as an Application&amp;quot; (RaaA) also on Android devices.&lt;br /&gt;
&lt;br /&gt;
=== Player software ===&lt;br /&gt;
&lt;br /&gt;
* Windows/Mac/Linux (Cross-Platform)&lt;br /&gt;
*# [[VLC]] (media player supports Opus as of version 2.0.4&lt;br /&gt;
*# [[Amarok]] 2.8 has transcoding support for Opus codec if ffmpeg is compiled with support for the libopus library &amp;amp; support for playback of Opus encoded files if Amarok is compiled against TagLib (newer than V1.8)&lt;br /&gt;
*# Clementine has Opus support&lt;br /&gt;
*# Audacious player&lt;br /&gt;
*# [[MPD]] as of version 0.18 if compiled against libopus (supports both encoding for http streams and decoding)&lt;br /&gt;
* Windows Exclusive&lt;br /&gt;
*# AIMP supports Opus natively as of version 3.20 build 1125 beta 1&lt;br /&gt;
*# [[foobar2000]] supports Opus natively as of v1.1.14 beta 1&lt;br /&gt;
*# Mpxplay supports Opus (using a decoder DLL) as of v1.60 alpha 2&lt;br /&gt;
*# [[Winamp]] supports Opus using a [http://forums.winamp.com/showthread.php?p=2925154#post2925154 3rd party plug-in]&lt;br /&gt;
*# MPC-HC&lt;br /&gt;
*# Resonic Player/Pro supports Opus natively as of version 0.2.2&lt;br /&gt;
* iOS/Android (Cross-Platform)&lt;br /&gt;
*# Capriccio [https://itunes.apple.com/us/app/capriccio-free-ultimate-music/id434829018?mt=8 iOS]/[https://play.google.com/store/apps/details?id=me.ideariboso.capriccio Android]&lt;br /&gt;
*# foobar2000 [https://itunes.apple.com/us/app/foobar2000/id1072807669?mt=8 iOS]/[https://play.google.com/store/apps/details?id=com.foobar2000.foobar2000&amp;amp;hl=en Android]&lt;br /&gt;
* Android Exclusive&lt;br /&gt;
*# [https://play.google.com/store/apps/details?id=in.krosbits.musicolet Musicolet Music Player]&lt;br /&gt;
*# [http://gonemadmusicplayer.blogspot.com/ GoneMAD Music Player]&lt;br /&gt;
*# [http://neutronmp.com/ Neutron Music Player]&lt;br /&gt;
*# [http://www.videolan.org/vlc/download-android.html VLC Media Player for Android]&lt;br /&gt;
*# [https://play.google.com/store/apps/details?id=ru.recoilme.freeamp FreeMP]&lt;br /&gt;
*# [https://play.google.com/store/apps/details?id=net.mderezynski.youki3 Youki]&lt;br /&gt;
*# [https://play.google.com/store/apps/details?id=com.aimp.player AIMP for Android]&lt;br /&gt;
*# [https://play.google.com/store/apps/details?id=com.acmeandroid.listen Listen Audiobook Player]&lt;br /&gt;
*# [https://play.google.com/store/apps/details?id=com.mxtech.videoplayer.ad MX Player]&lt;br /&gt;
*# [https://play.google.com/store/apps/details?id=org.tomahawk.tomahawk_android Tomahawk Player Beta]&lt;br /&gt;
*# [https://play.google.com/store/apps/details?id=com.maxmpz.audioplayer&amp;amp;hl=en Poweramp Music Player]&lt;br /&gt;
&lt;br /&gt;
=== Other software ===&lt;br /&gt;
* CDBurnerXP&lt;br /&gt;
* MediaCoder&lt;br /&gt;
* Report-IT&lt;br /&gt;
* [[MP3tag|MP3tag]]&lt;br /&gt;
* [https://moisescardona.me/opus-gui/ Opus GUI]&lt;br /&gt;
* [http://www.xdlab.ru/en/ TagScanner]&lt;br /&gt;
* [http://www.xmedia-recode.de/ XMedia Recode]&lt;br /&gt;
&lt;br /&gt;
== References &amp;amp; Notes ==&lt;br /&gt;
&lt;br /&gt;
*{{note|homepage|a}}[http://opus-codec.org/ opus-codec.org homepage]&lt;br /&gt;
*{{note|FAQ|b}}[http://wiki.xiph.org/OpusFAQ Opus FAQ]&lt;br /&gt;
*{{note|RFC|c}}[http://tools.ietf.org/html/rfc6716 IETF RFC 6716]&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
[[Category:Codecs]]&lt;br /&gt;
[[Category:Lossy]]&lt;br /&gt;
[[Category:Encoder/Decoder]]&lt;/div&gt;</summary>
		<author><name>Artoria2e5</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=Opus&amp;diff=37290</id>
		<title>Opus</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=Opus&amp;diff=37290"/>
		<updated>2023-08-12T05:21:17Z</updated>

		<summary type="html">&lt;p&gt;Artoria2e5: /* Speech encoding quality */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Software Infobox&lt;br /&gt;
| name = Opus&lt;br /&gt;
| logo = [[Image:opus-logo.png|250px|Official Opus logo]]&lt;br /&gt;
| screenshot =&lt;br /&gt;
| caption = Opus Interactive Audio Codec&lt;br /&gt;
| maintainer = [http://xiph.org/ Xiph.Org Foundation]&lt;br /&gt;
| stable_release = 1.4&lt;br /&gt;
| operating_system = Windows, Mac OS/X, Linux/BSD&lt;br /&gt;
| use = Encoder/Decoder&lt;br /&gt;
| license = 3-clause BSD license&lt;br /&gt;
| website = [http://www.opus-codec.org/ opus-codec.org]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Opus&#039;&#039;&#039; is a [[lossy]] audio compression format developed by the Internet Engineering Task Force (IETF) designed to be suitable for interactive real-time applications over the Internet,{{ref|homepage|a}} including music as well as speech, yet it is also very competitive for use as a storage and playback format, being a [https://web.archive.org/web/20200130083553/http://people.xiph.org/~greg/opus/ha2011/ class leader at around 64 kbps] and [http://listening-test.coresv.net/results.htm also at 96 kbps]. As an open format standardised through [http://tools.ietf.org/html/rfc6716 Request for Comments (RFC) 6716],{{ref|RFC|c}} a high quality reference implementation is provided under the 3-clause BSD license{{ref|homepage|a}} which compiles and runs on the vast majority of general purpose and embedded (fixed point) processors. Many Software patents which cover Opus are licensed under royalty-free terms.{{ref|FAQ|b}}  Opus is also a Mandatory To Implement (MTI) codec for the upcoming WebRTC (Web Real Time Communication) specification of the World Wide Web Consortium (W3C).&lt;br /&gt;
&lt;br /&gt;
Opus incorporates technology from two codecs, the speech-oriented SILK codec developed by Skype and the multi-purpose low-latency CELT codec developed by Xiph.org with significant changes to each to ensure they can work together.{{ref|RFC|c}} Opus can seamlessly transition among high and low bitrates, using a linear prediction codec (the SILK layer) at lower bitrates and a lapped transform codec (the CELT layer) at higher bitrates, as well as a hybrid of the two for a short overlap in which SILK encodes the 0–8&amp;amp;nbsp;kHz spectrum and the CELT layer encodes only the frequencies above 8kHz.{{ref|RFC|c}} Opus has very low algorithmic delay (typ 22.5&amp;amp;nbsp;ms) compared to popular music formats such as [[MP3]], [[Vorbis |Ogg Vorbis]], [[AAC | LC-AAC and HE-AAC]] (all over 100&amp;amp;nbsp;ms), yet performs very competitively with them in terms of quality per bitrate, making it comparably viable as a storage &amp;amp; playback format. Also unlike Vorbis, Opus does not require the definition of large codebooks for each individual file, making it also preferable for short clips of audio, such as those often used by game developers, a field where patent-free Vorbis is commonly used.{{ref|RFC|c}}&lt;br /&gt;
&lt;br /&gt;
Considerably more details of the history and potential applications for Opus are included in the &#039;&#039;Wikipedia&#039;&#039; page for &#039;&#039;&#039;[http://en.wikipedia.org/wiki/Opus_%28audio_format%29 Opus (audio format)]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Characteristics==&lt;br /&gt;
Opus supports bitrates from 6&amp;amp;nbsp;kbps to 510&amp;amp;nbsp;kbps for typical stereo audio sources (and a maximum of around 255 kbps per channel for multichannel audio), with the &#039;sweet spot&#039; for music and general audio around 30&amp;amp;nbsp;kbps (mono) and 40–100&amp;amp;nbsp;kbps (stereo). It is intrinsically [[VBR | variable bitrate]], though constrained VBR and [[CBR | constant bitrate]] modes are possible where required. In the case of the reference release, libopus, the target bitrate is calibrated against the internal constant quality targets so that over a typical music collection, something very close to the target bitrate will be achieved. This bitrate-calibrated approach differs from most VBR encoders (e.g. LAME, helix mp3, qaac, Nero aacenc, Ogg Vorbis, Musepack) where a setting on some &#039;constant quality&#039; scale (which differs between encoders) is used and the bitrate will fall where it may. Improved future versions can be expected to offer improved quality at the same setting. Independent implementations may adopt a different approach.&lt;br /&gt;
&lt;br /&gt;
Opus is able to seamlessly adapt its mode of operation without glitches or sound interruption (an illustrative demonstration of [http://opus-codec.org/examples/#gauge bitrate scalability] is on the Opus Examples page), which can be particularly useful for mixed-content audio or varying network conditions, making the unified Opus codec superior to a suite of different codecs that might otherwise cover the same range of bitrate and quality settings and would require out-of-band signalling to instigate codec switching. The switching includes the choice of mono, stereo and other channel mappings, the use of the speech-oriented SILK layer, the general-purpose CELT layer or the hybrid of both, and the use of different audio bandwidths (4, 6, 8, 12, or 20&amp;amp;nbsp;kHz) as well as the quality adjustments within the same operating mode that are available in most VBR-capable codecs.&lt;br /&gt;
&lt;br /&gt;
Of importance mainly to interactive uses, but potentially useful in time-delayed audio streaming also, Opus includes packet loss concealment (PLC) in all modes and, in the speech-oriented modes where the SILK layer is active it also supports Forward Error Correction (FEC) where the expected rate of packet loss can be indicated to the encoder by the user or by application software and critical frames (e.g. consonant sounds) can be retransmitted at low bitrate to preserve intelligibility.&lt;br /&gt;
&lt;br /&gt;
For music and general audio, the CELT layer of Opus builds on knowledge gained during xiph.org&#039;s Vorbis development and ensures as a primary goal that the total energy in each spectral band is preserved while requiring only a modest bitrate overhead to achieve this, thereby eliminating a lot of bitrate-starvation artifacts such as &#039;birdies&#039; that are common in low-bitrate MP3, especially during transients, applause and cymbal sounds. This technique likewise increases coding efficiency at bitrates targetting transparent music reproduction. Short blocks (2.5&amp;amp;nbsp;ms) are also possible for efficient transient handling. Short blocks can also be used exclusively, if very low algorithmic delay (5.0&amp;amp;nbsp;ms) is required to enable very low-latency interative audio (e.g. live networked music performances such as remote jam sessions), though greater bitrate is then required to maintain the same quality (illustrated in [http://people.xiph.org/~xiphmont/demo/celt/demo.html#demo Monty&#039;s CELT demo page] under Constant PEAQ value, varying latency). CELT uses a number of additional techniques and provides additional advanced tools to enable encoder tuning.&lt;br /&gt;
&lt;br /&gt;
Opus natively supports [[gapless playback]] (though [[Gapless_playback#Poorly_designed_playback_systems | poor player design]] might itself induce interruptions during playback). Playback gain is also required, making some form of [[ReplayGain]] or [[ReplayGain_2.0_specification | similar]] volume control possible in any compliant player.&lt;br /&gt;
&lt;br /&gt;
==Bitrate performance==&lt;br /&gt;
For mono speech, Opus ranges from intelligible narrowband speech reproduction starting at 6&amp;amp;nbsp;kbps to medium-band, wideband and superwideband speech, reaching full-band speech by around 14&amp;amp;nbsp;kbps in encoder version 1.2 (was 21&amp;amp;nbsp;kbps in v1.1, 29&amp;amp;nbsp;kbps in v1.0). Above about 32&amp;amp;nbsp;kbps, the SILK layer is no longer used at all, as CELT alone gives superior quality.&lt;br /&gt;
&lt;br /&gt;
For music, the SILK modes are quite tolerable and better than CELT at very low bitrates. The hybrid mode is adopted as bitrate increases, extending bandwidth first to 12&amp;amp;nbsp;kHz (comparable with compact cassette) then to the full 20&amp;amp;nbsp;kHz and CELT then takes over. Assuming the source is stereo, the transition from mono to stereo typically happens between the transition from 12&amp;amp;nbsp;kHz to 20&amp;amp;nbsp;kHz. Encoder version 1.2 includes great improvements to music encoding in the 32–64&amp;amp;nbsp;kbps range, allowing full-band stereo at 32&amp;amp;nbsp;kbps and providing acceptable quality at 48&amp;amp;nbsp;kbps where artifacts are audible but rarely annoying. Version 1.3 is expected to further improve quality in this range.&lt;br /&gt;
&lt;br /&gt;
Multi-format stereo music listening tests have demonstrated the superiority of Opus at 64&amp;amp;nbsp;kbps and 96&amp;amp;nbsp;kbps compared to the best AAC-LC, HE-AAC and Ogg Vorbis encoders, and at 96&amp;amp;nbsp;kbps also to 128&amp;amp;nbsp;kbps MP3 encoded using LAME &amp;lt;code&amp;gt;-V 5&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Indicative bitrate and quality==&lt;br /&gt;
The tables below give illustrative, indicative quality guidance based on typical modes used internally by Opus and a range of listening tests.&lt;br /&gt;
&lt;br /&gt;
In encoder version 1.1 automatic detection of speech/music and bandwidth detection were introduced to improve mode decisions and VBR is less constrained, all with the aim of maximizing the quality/bitrate tradeoff, and these improvements are further enhanced in version 1.2 and 1.3. These tables are likely to require updates as the encoder is improved, especially in low-bitrate regions.&lt;br /&gt;
&lt;br /&gt;
===Speech encoding quality===&lt;br /&gt;
This table assumes a &#039;&#039;&#039;monophonic&#039;&#039;&#039; source sampled at CD quality or above (typ 48 kHz sampling rate) but mentions stereo compatibility for 40kbps+. The default 20ms frame size (22.5ms latency) is assumed. Note that the selection of &#039;&#039;VOIP&#039;&#039; mode will deliberately modify the sound with a High Pass Filter and emphasis of formants and harmonics to improve intelligibility of speech especially in noisy environments much as telephones do. &#039;&#039;Auto&#039;&#039; mode will not modify the sound prior to encoding so is usually better for high quality speech recordings or mixed speech and music.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Bitrate Target&lt;br /&gt;
!Bandwidth&lt;br /&gt;
!Typical Mode Used&lt;br /&gt;
!Speech Quality&lt;br /&gt;
!Use Cases / Competitive Codecs&lt;br /&gt;
|-&lt;br /&gt;
! Less than 6 kbps&lt;br /&gt;
| &amp;amp;mdash;&lt;br /&gt;
| &amp;amp;mdash;&lt;br /&gt;
| Bitrates lower than 6 kbps not supported by Opus (SILK disabled if forced to encode, which results in terrible speech quality)&lt;br /&gt;
| Try [https://en.wikipedia.org/wiki/Codec_2 Codec 2] for 0.45–3.2&amp;amp;nbsp;kbps mono speech or [[Wikipedia:Lyra (codec)|Lyra]] for 3.2&amp;amp;nbsp;kbps mono speech&lt;br /&gt;
|-&lt;br /&gt;
!6 kbps&lt;br /&gt;
|4 kHz narrow-band&lt;br /&gt;
|SILK&lt;br /&gt;
|Fair, intelligible&lt;br /&gt;
|AMR-NB may be a little better, but higher latency &amp;amp; proprietary, [[Speex]] also competitive&lt;br /&gt;
|-&lt;br /&gt;
!9 kbps VBR/CVBR&amp;lt;br&amp;gt;10 kbps CBR&lt;br /&gt;
|8 kHz wide-band&lt;br /&gt;
|SILK&lt;br /&gt;
|Telephone quality&lt;br /&gt;
|AMR-NB &amp;amp; AMR-WB similar quality, but higher latency &amp;amp; proprietary. [[Speex]] competitive.&lt;br /&gt;
|-&lt;br /&gt;
!12 kbps&lt;br /&gt;
|12 kHz super-wideband&lt;br /&gt;
|hybrid&lt;br /&gt;
|Medium bandwidth, better than telephone quality&lt;br /&gt;
|Similar quality to AMR-WB&lt;br /&gt;
|-&lt;br /&gt;
!16 kbps&lt;br /&gt;
|20 kHz&lt;br /&gt;
|hybrid/CELT&lt;br /&gt;
|Wideband speech quality&lt;br /&gt;
|Similar to/better than AMR-WB&lt;br /&gt;
|-&lt;br /&gt;
!24 kbps&lt;br /&gt;
|20 kHz&lt;br /&gt;
|hybrid/CELT&lt;br /&gt;
|Near transparent speech&lt;br /&gt;
|Better than AMR-WB. Podcasts/audiobooks/talk-radio.&lt;br /&gt;
|-&lt;br /&gt;
!32 kbps&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Essentially transparent speech plus moderately good stereo music&lt;br /&gt;
|Much better than AMR-WB. Podcasts/audiobooks/talk-radio.&lt;br /&gt;
|-&lt;br /&gt;
!40 kbps&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Essentially transparent mono or stereo speech, fairly good stereo music&lt;br /&gt;
|Stereo podcasts/audiobooks/talk radio with some music&lt;br /&gt;
|-&lt;br /&gt;
!48 kbps or more&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Essentially transparent mono or stereo speech, reasonable music&lt;br /&gt;
|Flexible general purpose modes to suit mixed music and speech&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
One major limitation of Opus at low bitrate is that SILK is inherently VBR: it accepts no constraints in CVBR, and if forced to do CBR the quality degrades from bit-shaving. As a result, even though constrained VBR is designed such that a fixed-rate data link requires at most one frame of buffer to handle the variation in bit rate -- great news for communication links -- any use of SILK, even in hybrid mode, has the potential of breaking this intention. This makes Opus suboptimal for low-rate radio links: radio links requires a predictable buffer amount, which is only possible with CBR when SILK is used, but use of CBR in turn hurts SILK.&lt;br /&gt;
&lt;br /&gt;
Opus 1.3+ allows forced use of SILK down to 5 kbps VBR (NB) and 6 kbps VBR (WB, requires using the raw C API with &amp;lt;code&amp;gt;OPUS_SET_BANDWIDTH&amp;lt;/code&amp;gt;). However, quality is in no way guaranteed -- it&#039;s just possible.&lt;br /&gt;
&lt;br /&gt;
===Music encoding quality===&lt;br /&gt;
This table assumes a &#039;&#039;&#039;stereophonic&#039;&#039;&#039; source sampled at CD quality or above (typ 48&amp;amp;nbsp;kHz sampling rate). Opus will automatically use mono at very low bitrates, though a certain amount of stereo encoding can still be used (content dependent) even when mono is specified as the typical stereo mode in the table below.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Bitrate target&lt;br /&gt;
!Stereo mode&lt;br /&gt;
!Bandwidth&lt;br /&gt;
!typ SILK/CELT use&lt;br /&gt;
!Music quality notes&lt;br /&gt;
!Use cases/notes/competitive codecs&lt;br /&gt;
|-&lt;br /&gt;
!6 kbps&lt;br /&gt;
|mono&lt;br /&gt;
|6 kHz&lt;br /&gt;
|SILK&lt;br /&gt;
|Poor, muffled sound but intelligible lyrics.&lt;br /&gt;
| &amp;amp;mdash;&lt;br /&gt;
|-&lt;br /&gt;
!8 kbps&lt;br /&gt;
|mono&lt;br /&gt;
|6 kHz&lt;br /&gt;
|SILK&lt;br /&gt;
|Poor, muffled but OK for bitrate&lt;br /&gt;
| &amp;amp;mdash;&lt;br /&gt;
|-&lt;br /&gt;
!14 to 16 kbps&lt;br /&gt;
|mono&lt;br /&gt;
|20 kHz&lt;br /&gt;
|hybrid/CELT&lt;br /&gt;
|Fairly poor but OK for bitrate&lt;br /&gt;
|Perhaps acceptable for incidental music&lt;br /&gt;
|-&lt;br /&gt;
!22 to 24 kbps&lt;br /&gt;
|mono&lt;br /&gt;
|20 kHz&lt;br /&gt;
|hybrid/CELT&lt;br /&gt;
|Fair but OK for bitrate&lt;br /&gt;
|OK for incidental music&lt;br /&gt;
|-&lt;br /&gt;
!32 to 40 kbps&lt;br /&gt;
|stereo&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Moderately good stereo, some artifacts, rarely nasty&lt;br /&gt;
|Stereo podcasts, audiobooks, very low bitrate music&lt;br /&gt;
|-&lt;br /&gt;
!48 kbps&lt;br /&gt;
|stereo&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Full bandwidth stereo music, nice sound, may have problems with cymbals&lt;br /&gt;
|Stereo podcasts, audiobooks, low bitrate music&lt;br /&gt;
|-&lt;br /&gt;
!64 kbps&lt;br /&gt;
|stereo&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Full bandwidth stereo music, nice sound, detectable differences to original (mostly &#039;not annoying&#039;)&lt;br /&gt;
|Music storage &amp;amp; streaming. Beat HE-AAC, Vorbis, MP3 in [https://web.archive.org/web/20200130083553/http://people.xiph.org/~greg/opus/ha2011/ listening test]&lt;br /&gt;
|-&lt;br /&gt;
!96 kbps&lt;br /&gt;
|stereo&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Full bandwidth stereo music, good quality approaching transparency&lt;br /&gt;
|Music storage &amp;amp; high quality streaming. Beat LC-AAC, Vorbis, MP3 in [http://listening-test.coresv.net/results.htm listening test]&lt;br /&gt;
|-&lt;br /&gt;
!112 kbps&lt;br /&gt;
|stereo&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Fairly close to transparency (needs more testing)&lt;br /&gt;
|Music storage &amp;amp; high quality streaming. Very low-latency stereo networked music performance/jam sessions at OK quality (see below table)&lt;br /&gt;
|-&lt;br /&gt;
!128 kbps&lt;br /&gt;
|stereo&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Very close to transparency (needs more testing). Most modern codecs competitive (AAC-LC, Vorbis, MP3)&lt;br /&gt;
|Music storage &amp;amp; streaming. Future download music sales.&lt;br /&gt;
|-&lt;br /&gt;
!160 to 192 kbps&lt;br /&gt;
|stereo&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Transparent with very low chance of artifacts (a few killer samples still detectable). Most old &amp;amp; new lossy codecs competitive.&lt;br /&gt;
|Music storage &amp;amp; streaming, dedicated limited-bandwidth audio links (e.g. wireless, [http://en.wikipedia.org/wiki/Bluetooth_profile#Advanced_Audio_Distribution_Profile_.28A2DP.29 A2DP-bluetooth] type links). &lt;br /&gt;
|-&lt;br /&gt;
!510 kbps&lt;br /&gt;
|stereo&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Maximum possible stereo bitrate target (actual rate often less than 510 for default frame size). Most old and new lossy codecs competitive, plus near-lossless [[lossyWAV]] and [[WavPack | WavPack lossy]]&lt;br /&gt;
|Music storage, dedicated limited-bitrate audio links (e.g. wireless, minimum latency high quality audio. LossyWAV and WavPack lossy are very competitive for storage, and WavPack lossy &amp;lt;code&amp;gt;--blocksize=256&amp;lt;/code&amp;gt; may be competitive with minimum latency mode also.&lt;br /&gt;
|-&lt;br /&gt;
!&amp;gt;510 kbps&lt;br /&gt;
| &amp;amp;mdash;&lt;br /&gt;
| &amp;amp;mdash;&lt;br /&gt;
| &amp;amp;mdash;&lt;br /&gt;
|Above Opus bitrate range allowed for stereo sources&lt;br /&gt;
|Settle for 510&amp;amp;nbsp;kbps or use [[lossless]], [[lossyWAV]], [[WavPack | WavPack lossy]] or lossy transform/subband codecs like [[Vorbis]], [[Musepack]] at very high settings.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Lower latency versus quality/bitrate trade-off===&lt;br /&gt;
====Packet overhead in interactive applications====&lt;br /&gt;
For interactive use on the Internet or other packet-based networks, total bandwidth used will be subject to packet overhead. The more packet headers that are transmitted every second, the greater will be the overhead that is required. For this reason, Opus, while defaulting to 20&amp;amp;nbsp;ms frames, supports 60&amp;amp;nbsp;ms frames to reduce overhead when transporting low-bitrate SILK frames at the expense of greater latency, which may still be acceptable for speech, and also supports 10&amp;amp;nbsp;ms SILK frames to reduce latency somewhat at the expense of packet overhead.&lt;br /&gt;
&lt;br /&gt;
In the CELT layer, which tends to operate at higher bitrates than SILK, 20&amp;amp;nbsp;ms frames are the default, but frames of 10&amp;amp;nbsp;ms, 5&amp;amp;nbsp;ms and 2.5&amp;amp;nbsp;ms are also possible, which directly increases the frame overhead by transmitting more packets per second to achieve lower latency. In addition, as we&#039;ll see below it also reduces the quality/bitrate tradeoff of the CELT layer itself.&lt;br /&gt;
&lt;br /&gt;
You probably do not want to use a frame size lower than 10&amp;amp;nbsp;ms in applications containing speech, as doing so turns off SILK. The &amp;quot;lowdelay&amp;quot; application switch (available in FFmpeg and the raw library) turns off SILK to cut out 4&amp;amp;nbsp;ms of synchronization delay, but a frame size of 10&amp;amp;nbsp;ms achieves more delay reduction compared to default without sacrificing SILK.&lt;br /&gt;
&lt;br /&gt;
None of the bitrates mentioned in this article account for the packet overhead.&lt;br /&gt;
&lt;br /&gt;
====CELT layer latency versus quality/bitrate trade-off====&lt;br /&gt;
Unlike the SILK layer, which works on fixed 10&amp;amp;nbsp;ms blocks, 1, 2 or 6 of which can be combined into an Opus frame, the CELT layer is able to modify the encoding block lengths available to enable its use with shorter frames.&lt;br /&gt;
&lt;br /&gt;
When the CELT layer uses 10&amp;amp;nbsp;ms, 5&amp;amp;nbsp;ms and 2.5&amp;amp;nbsp;ms frames instead of the default 20&amp;amp;nbsp;ms, it must use smaller transform block sizes to achieve this, thereby reducing frequency resolution in the MDCT compared to the default transform window, thus reducing encoding efficiency for tonal signals. To obtain the same frequency precision for a sound divided into shorter transform windows, improved amplitude precision is necessary, resulting in increased bitrate to obtain the same perceptual quality (or conversely lower quality at the same bitrate).&lt;br /&gt;
&lt;br /&gt;
These reduced-latency modes remain efficient for transient signals, which use short blocks anyway.&lt;br /&gt;
&lt;br /&gt;
In all modes, the algorithmic delay consists of the frame size plus an additional 2.5&amp;amp;nbsp;ms delay. The CELT layer requires 2.5&amp;amp;nbsp;ms for MDCT window overlap.&lt;br /&gt;
&lt;br /&gt;
Xiph.org used matched [[PEAQ]] scores (approximate perceptual quality assessment made in software) for the CELT0.10 codec that was used as the basis of the CELT layer in the Opus reference release, which indicate the following [http://people.xiph.org/~xiphmont/demo/celt/demo.html#demo approximate equivalent settings] for stereo music.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Frame size&lt;br /&gt;
!Algorithmic delay&lt;br /&gt;
!Bitrate to match 64kbps@22.5ms delay&lt;br /&gt;
!fractional bitrate increase&lt;br /&gt;
|-&lt;br /&gt;
!20 ms&lt;br /&gt;
|22.5 ms&lt;br /&gt;
|64.0 kbps&lt;br /&gt;
| +0.0 %&lt;br /&gt;
|-&lt;br /&gt;
!10 ms&lt;br /&gt;
|12.5 ms&lt;br /&gt;
|70.4 kbps&lt;br /&gt;
| +10.0 %&lt;br /&gt;
|-&lt;br /&gt;
!5 ms&lt;br /&gt;
|7.5 ms&lt;br /&gt;
|84.8 kbps&lt;br /&gt;
| +32.5 %&lt;br /&gt;
|-&lt;br /&gt;
!2.5 ms&lt;br /&gt;
|5.0 ms&lt;br /&gt;
|112.0 kbps&lt;br /&gt;
| +75.0 %&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
N.B. This table is useful for interactive streaming only. For music storage &amp;amp; delayed playback or non-interactive streaming, latency reduction is not important and the default 20&amp;amp;nbsp;ms frame size is preferable.&lt;br /&gt;
&lt;br /&gt;
== Implementations ==&lt;br /&gt;
&lt;br /&gt;
The format and algorithms are openly documented and the reference implementation is published as free software. The reference implementation (Opus Audio Tools, opus-tools), consisting of separate encoders and decoders, is published under the terms of a BSD-like license. It is written in C programming language and can be compiled for hardware architectures with or without floating point unit. The accompanying diagnostic tool opusinfo reports detailed technical information about Opus files, including information on the standard compliance of the bitstream format. It is based on ogginfo from the vorbis-tools and therefore, unlike the encoder and decoder, available under the terms of version 2 of the GPL.&lt;br /&gt;
&lt;br /&gt;
=== Reference implementation (libopus + binaries) ===&lt;br /&gt;
The commandline tools of the reference version are available pre-compiled for the most popular operating systems at [http://opus-codec.org/downloads opus-codec.org] and [https://ftp.mozilla.org/pub/mozilla.org/opus/ Mozilla&#039;s ftp server], plus in the foobar2000 free encoders pack and some alternative compiles through the hydrogenaud.io opus forum. The libopus commandline tools include encoder &amp;lt;code&amp;gt;opusenc&amp;lt;/code&amp;gt;, decoder &amp;lt;code&amp;gt;opusdec&amp;lt;/code&amp;gt;, and with a different license, the &amp;lt;code&amp;gt;opusinfo&amp;lt;/code&amp;gt; opus stream &amp;amp; metadata analyzer.&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;latest stable release&#039;&#039;&#039; is recommended for general use and as of mid 2014 is considered competitive with or superior to the best alternative speech or general music encoders at most supported bitrates.&lt;br /&gt;
&lt;br /&gt;
==== libopus v1.0 ====&lt;br /&gt;
Released 11 Sep 2012 when RFC6716 was standardized but mostly fully developed by late 2011.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Stable, well-tuned&#039;&#039;&#039; &amp;lt;code&amp;gt;opusenc&amp;lt;/code&amp;gt; reference encoder as included in RFC documentation.&lt;br /&gt;
&lt;br /&gt;
CELT layer closely related to CELT 0.10 implements Constrained VBR mode by default (bitrate boost used mainly for transients), plus true CBR.&lt;br /&gt;
&lt;br /&gt;
==== libopus v1.1 ==== &lt;br /&gt;
&lt;br /&gt;
The alpha source code released 21 Dec 2012 for testing &amp;amp; user feedback and following a beta release and testing, the stable 1.1 version was released on 5 December 2013, considered well tested enough for general release.&amp;lt;ref&amp;gt;https://people.xiph.org/~xiphmont/demo/opus/demo3.shtml&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
CELT layer [http://jmspeex.livejournal.com/11737.html quality improvements] introduced to provide &#039;&#039;&#039;unconstrained VBR&#039;&#039;&#039; include a rate boost not just for transients but now for highly tonal signals too and rate reduction when stereo image is narrow. There&#039;s also a rewrite of its &#039;&#039;&#039;transient detection&#039;&#039;&#039; code and &#039;&#039;&#039;time-frequency analysis&#039;&#039;&#039; code, and rewritten &#039;&#039;&#039;dynamic allocation&#039;&#039;&#039; code (HF/LF tilt and Band Boost) to allow more aggressive changes from the typical static allocation when warranted.&lt;br /&gt;
&lt;br /&gt;
There are many minor improvements to &#039;&#039;&#039;speech quality&#039;&#039;&#039; in both SILK and CELT layers.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;DC-rejection&#039;&#039;&#039; below 3 Hz also aids quality if inaudible DC offset is present with no effect on deep bass notes.&lt;br /&gt;
*&#039;&#039;&#039;Automatic speech/music detection&#039;&#039;&#039; is introduced to optimize encoding mode choices, especially near the bitrate target range (presumably around 24–40&amp;amp;nbsp;kbps) where the encoder may perform best with SILK, hybrid or CELT depending on content type. Below that range SILK performs best for both music &amp;amp; speech, and above it CELT performs best for speech &amp;amp; music. The detection, without look-ahead is not perfect but usually is undecided in audio where either mode will work well.&lt;br /&gt;
*&#039;&#039;&#039;Automatic bandwidth detection&#039;&#039;&#039; is also introduced to save wasted bits allocated to absent frequencies.&lt;br /&gt;
*&#039;&#039;&#039;Surround sound improvements&#039;&#039;&#039; were introduced since the beta release with considerable advances in coding efficiency, bitrate allocation and quality.&lt;br /&gt;
&lt;br /&gt;
A new &#039;&#039;&#039;temporal VBR&#039;&#039;&#039; feature is added. For reasons not explained by classic psychoacoustics, it appears that giving more bits to loud frames (stealing from quiet frames) makes the result substantially better on listening tests. This feature is not tunable: it always affects VBR calculation at low bitrates, gradually becoming weaker at higher bitrates, until it turns off completely at 68&amp;amp;nbsp;kbps.&lt;br /&gt;
&lt;br /&gt;
==== libopus v1.1.3 ==== &lt;br /&gt;
Released July 15th, 2016. This version contains:&lt;br /&gt;
&lt;br /&gt;
*Neon optimizations improving performance on ARMv7 and ARMv8 by up to 15%&lt;br /&gt;
*Fixes some issues with 16-bit platforms (e.g. TI C55x)&lt;br /&gt;
*Fixes to comfort noise generation (CNG)&lt;br /&gt;
*Documenting that PLC packets can also be 2 bytes&lt;br /&gt;
*Includes experimental ambisonics work (&amp;lt;code&amp;gt;--enable-ambisonics&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
==== libopus v1.2.1 ==== &lt;br /&gt;
Released June 26th, 2017. This version contains:&lt;br /&gt;
&lt;br /&gt;
*Speech quality improvements especially in the 12–20&amp;amp;nbsp;kbit/s range&lt;br /&gt;
*Improved VBR encoding for hybrid mode&lt;br /&gt;
*More aggressive use of wider speech bandwidth, including fullband speech starting at 14&amp;amp;nbsp;kbit/s&lt;br /&gt;
*Music quality improvements in the 32–48&amp;amp;nbsp;kbit/s range&lt;br /&gt;
*Generic and SSE CELT optimizations&lt;br /&gt;
*Support for directly encoding packets up to 120&amp;amp;nbsp;ms&lt;br /&gt;
*DTX support for CELT mode&lt;br /&gt;
*SILK CBR improvements&lt;br /&gt;
*Support for all of the fixes in draft-ietf-codec-opus-update-06 (the mono downmix and the folding fixes need &amp;lt;code&amp;gt;--enable-update-draft&amp;lt;/code&amp;gt;)&lt;br /&gt;
*Many bug fixes, including integer wrap-arounds discovered through fuzzing (no security implications)&lt;br /&gt;
&lt;br /&gt;
==== libopus v1.3 ====&lt;br /&gt;
Released on October 18th, 2018. This version contains:&lt;br /&gt;
&lt;br /&gt;
* Improvements to voice activity detection (VAD) and speech/music classification using a recurrent neural network (RNN)&lt;br /&gt;
* Support for ambisonics coding using channel mapping families 2 and 3&lt;br /&gt;
* Improvements to stereo speech coding at low bitrate&lt;br /&gt;
* Using wideband encoding down to 9&amp;amp;nbsp;kb/s&lt;br /&gt;
* Making it possible to use SILK down to bitrates around 5&amp;amp;nbsp;kb/s&lt;br /&gt;
* Minor quality improvement on tones&lt;br /&gt;
* Enabling the spec fixes in &amp;lt;nowiki&amp;gt;RFC 8251&amp;lt;/nowiki&amp;gt; by default&lt;br /&gt;
* Security/hardening improvements&lt;br /&gt;
* Fixes to the CELT PLC&lt;br /&gt;
* Bandwidth detection fixes&lt;br /&gt;
&lt;br /&gt;
==== libopus v1.3.1 ====&lt;br /&gt;
Released on April 12th, 2019. This version contains:&lt;br /&gt;
&lt;br /&gt;
* Fixes to x87 builds&lt;br /&gt;
* A new OPUS_GET_IN_DTX query to know if the encoder is in DTX mode (last frame was either a comfort noise frame or not encoded at all)&lt;br /&gt;
* A new (and still experimental) CMake-based build system that is eventually meant to replace the VS2015 build system (the autotools one will stay)&lt;br /&gt;
&lt;br /&gt;
==== libopus v1.4 ====&lt;br /&gt;
Released on April 20th, 2023. This version contains:&lt;br /&gt;
&lt;br /&gt;
* Improved tuning of the Opus in-band FEC (LBRR). See the issue for details&lt;br /&gt;
* Added a OPUS_SET_INBAND_FEC(2) option that turns on FEC, but does not force SILK mode (FEC will be disabled in CELT mode)&lt;br /&gt;
* Improved tuning and various fixes to DTX&lt;br /&gt;
* Added Meson support, improved CMake support In addition to the improvements above, this release includes many minor bug fixes.&lt;br /&gt;
&lt;br /&gt;
=== Other implementations ===&lt;br /&gt;
&lt;br /&gt;
==== Concentus ====&lt;br /&gt;
&lt;br /&gt;
The libopus reference library (fixed-point variant) has successfully been ported to both &#039;&#039;&#039;C#&#039;&#039;&#039; and &#039;&#039;&#039;Java&#039;&#039;&#039;, as part of a project called &#039;&#039;&#039;Concentus&#039;&#039;&#039;. The aim of the project is specifically to target cross-platform applications where native C interop is relatively difficult. The code is available on [https://github.com/lostromb/concentus Github] and distributed via standard package managers.&lt;br /&gt;
&lt;br /&gt;
==== Emscripten ports ====&lt;br /&gt;
&lt;br /&gt;
At least one port of reference opus in Javascript has been made using the automated tool [https://developer.mozilla.org/en-US/docs/Mozilla/Projects/Emscripten emscripten]. See [https://blog.rillke.com/opusenc.js/ here], [https://github.com/kazuki/opus.js-sample here] and [https://github.com/audiocogs/opus.js here].&lt;br /&gt;
&lt;br /&gt;
==== ffmpeg ====&lt;br /&gt;
FFmpeg has a native [https://ffmpeg.org/ffmpeg-codecs.html#opus &amp;quot;opus&amp;quot;] codec. It is of lower quality than the reference libopus and only does CELT coding. However, it is still good for the ecosystem to have a completely independent implementation.&lt;br /&gt;
&lt;br /&gt;
== Hardware &amp;amp; Software Support ==&lt;br /&gt;
&lt;br /&gt;
Much of this section is based heavily on the Jan 12th 2013 version of the &#039;&#039;&#039;Support&#039;&#039;&#039; section of the [http://en.wikipedia.org/wiki/Opus_%28audio_format%29 Wikipedia article], which is more likely to be kept updated and to provide links to further information about the supporting platforms.&lt;br /&gt;
&lt;br /&gt;
=== VoIP software ===&lt;br /&gt;
* The open source virtual PBX Freeswitch supports Opus transcoding.&lt;br /&gt;
* The voice-chat software Mumble supports Opus as its main codec.&lt;br /&gt;
* SIP softphones Phoner and PhonerLite support Opus&lt;br /&gt;
* The SIP and IAX2 client SFLphone is being fitted with Opus support.&lt;br /&gt;
* Integration of Opus into the Skype client is finished, although no version with Opus support has yet been published.&lt;br /&gt;
* TrueConf video conferencing solutions support Opus.&lt;br /&gt;
* Opus support is planned for Jitsi 2.0, together with VP8 video.&lt;br /&gt;
* Empathy may use any format supported in GStreamer, including Opus.&lt;br /&gt;
* Line2 has replaced their current codec with Opus. Their iOS app will be the first to be released with the Opus. The Android app will follow later.&lt;br /&gt;
* CSipSimple supports Opus, Codec2, G.726 and G.722.1 with an additional plug-in.&lt;br /&gt;
* The voice-chat software TeamSpeak 3 supports Opus for voice and music in pre-release server 3.0.7-pre2 and beta client version 3.0.10.&lt;br /&gt;
* The proprietary instant messenger service Discord uses Opus audio for all voice calls and video calls, regardless of platform.&lt;br /&gt;
&lt;br /&gt;
=== Web frameworks and browsers ===&lt;br /&gt;
* Opus support is mandatory for WebRTC implementations.&lt;br /&gt;
* Mozilla supports Opus beginning with version 15 of Firefox and Thunderbird, plus Seamonkey, which uses a shared codebase.&lt;br /&gt;
* Depending on the backend in use, Opera supports inline playback of embedded Opus files. Official support for Opus and WebRTC are on the development roadmap.&lt;br /&gt;
* Chromium and Google Chrome have audio support as of version 33.&lt;br /&gt;
* Apple&#039;s Safari browser now supports Opus as of iOS 11 and macOS 10.13 High Sierra.&lt;br /&gt;
* Maxthon Cloud Browser&lt;br /&gt;
&lt;br /&gt;
=== Streaming audio ===&lt;br /&gt;
* Icecast. (examples: [http://dir.xiph.org/by_format/Opus Stream directory by format Opus], [http://smj.delfa.net/opus_64.m3u 64k]/[http://smj.delfa.net/opus_256.m3u 256k] [http://smj.delfa.net/ Smooth Jazz Opus Stream], [http://www.absoluteradio.co.uk/listen/labs.html Absolute Radio Opus Trial] 7 stations at 24,64,96 kbps, [http://icecast.ofdoom.com:8000/burst-opus.ogg Icecast Of Doom 96k]&lt;br /&gt;
* Krad Radio&lt;br /&gt;
* Liquidsoap&lt;br /&gt;
&lt;br /&gt;
=== Operating systems and desktop multimedia frameworks ===&lt;br /&gt;
* In Debian GNU/Linux the Opus development tools and supporting libraries can be installed from the preconfigured repositories in the next stable version (&amp;quot;wheezy&amp;quot;) that is expected to be released in early 2013.&lt;br /&gt;
* For Microsoft Windows, there are DirectShow filters supporting Opus, including DC-Bass Source Mod and the LAV Filters.&lt;br /&gt;
* In GStreamer the integration of Opus support is complete.&lt;br /&gt;
* FFmpeg supports decoding and encoding Opus via the external library libopus.&lt;br /&gt;
* Android 5.0 and above supports Opus natively if encapsulated in the Ogg container, but .opus filename extension is not recognized by Android, so the use of double filename extension .opus.ogg is recommended as a workaround to allow apps to recognize files as playable audio.&lt;br /&gt;
&lt;br /&gt;
=== Hardware support ===&lt;br /&gt;
* Support in [[Rockbox]] is available. This means hardware support for a series of portable media players (including some products from the iPod series by Apple and Sansa, iriver and Archos devices) and with &amp;quot;Rockbox as an Application&amp;quot; (RaaA) also on Android devices.&lt;br /&gt;
&lt;br /&gt;
=== Player software ===&lt;br /&gt;
&lt;br /&gt;
* Windows/Mac/Linux (Cross-Platform)&lt;br /&gt;
*# [[VLC]] (media player supports Opus as of version 2.0.4&lt;br /&gt;
*# [[Amarok]] 2.8 has transcoding support for Opus codec if ffmpeg is compiled with support for the libopus library &amp;amp; support for playback of Opus encoded files if Amarok is compiled against TagLib (newer than V1.8)&lt;br /&gt;
*# Clementine has Opus support&lt;br /&gt;
*# Audacious player&lt;br /&gt;
*# [[MPD]] as of version 0.18 if compiled against libopus (supports both encoding for http streams and decoding)&lt;br /&gt;
* Windows Exclusive&lt;br /&gt;
*# AIMP supports Opus natively as of version 3.20 build 1125 beta 1&lt;br /&gt;
*# [[foobar2000]] supports Opus natively as of v1.1.14 beta 1&lt;br /&gt;
*# Mpxplay supports Opus (using a decoder DLL) as of v1.60 alpha 2&lt;br /&gt;
*# [[Winamp]] supports Opus using a [http://forums.winamp.com/showthread.php?p=2925154#post2925154 3rd party plug-in]&lt;br /&gt;
*# MPC-HC&lt;br /&gt;
*# Resonic Player/Pro supports Opus natively as of version 0.2.2&lt;br /&gt;
* iOS/Android (Cross-Platform)&lt;br /&gt;
*# Capriccio [https://itunes.apple.com/us/app/capriccio-free-ultimate-music/id434829018?mt=8 iOS]/[https://play.google.com/store/apps/details?id=me.ideariboso.capriccio Android]&lt;br /&gt;
*# foobar2000 [https://itunes.apple.com/us/app/foobar2000/id1072807669?mt=8 iOS]/[https://play.google.com/store/apps/details?id=com.foobar2000.foobar2000&amp;amp;hl=en Android]&lt;br /&gt;
* Android Exclusive&lt;br /&gt;
*# [https://play.google.com/store/apps/details?id=in.krosbits.musicolet Musicolet Music Player]&lt;br /&gt;
*# [http://gonemadmusicplayer.blogspot.com/ GoneMAD Music Player]&lt;br /&gt;
*# [http://neutronmp.com/ Neutron Music Player]&lt;br /&gt;
*# [http://www.videolan.org/vlc/download-android.html VLC Media Player for Android]&lt;br /&gt;
*# [https://play.google.com/store/apps/details?id=ru.recoilme.freeamp FreeMP]&lt;br /&gt;
*# [https://play.google.com/store/apps/details?id=net.mderezynski.youki3 Youki]&lt;br /&gt;
*# [https://play.google.com/store/apps/details?id=com.aimp.player AIMP for Android]&lt;br /&gt;
*# [https://play.google.com/store/apps/details?id=com.acmeandroid.listen Listen Audiobook Player]&lt;br /&gt;
*# [https://play.google.com/store/apps/details?id=com.mxtech.videoplayer.ad MX Player]&lt;br /&gt;
*# [https://play.google.com/store/apps/details?id=org.tomahawk.tomahawk_android Tomahawk Player Beta]&lt;br /&gt;
*# [https://play.google.com/store/apps/details?id=com.maxmpz.audioplayer&amp;amp;hl=en Poweramp Music Player]&lt;br /&gt;
&lt;br /&gt;
=== Other software ===&lt;br /&gt;
* CDBurnerXP&lt;br /&gt;
* MediaCoder&lt;br /&gt;
* Report-IT&lt;br /&gt;
* [[MP3tag|MP3tag]]&lt;br /&gt;
* [https://moisescardona.me/opus-gui/ Opus GUI]&lt;br /&gt;
* [http://www.xdlab.ru/en/ TagScanner]&lt;br /&gt;
* [http://www.xmedia-recode.de/ XMedia Recode]&lt;br /&gt;
&lt;br /&gt;
== References &amp;amp; Notes ==&lt;br /&gt;
&lt;br /&gt;
*{{note|homepage|a}}[http://opus-codec.org/ opus-codec.org homepage]&lt;br /&gt;
*{{note|FAQ|b}}[http://wiki.xiph.org/OpusFAQ Opus FAQ]&lt;br /&gt;
*{{note|RFC|c}}[http://tools.ietf.org/html/rfc6716 IETF RFC 6716]&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
[[Category:Codecs]]&lt;br /&gt;
[[Category:Lossy]]&lt;br /&gt;
[[Category:Encoder/Decoder]]&lt;/div&gt;</summary>
		<author><name>Artoria2e5</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=Joint_stereo&amp;diff=37289</id>
		<title>Joint stereo</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=Joint_stereo&amp;diff=37289"/>
		<updated>2023-08-12T05:12:14Z</updated>

		<summary type="html">&lt;p&gt;Artoria2e5: /* Opus */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Joint stereo&#039;&#039;&#039; refers to any stereo-encoding method that goes beyond simple encoding as two independent channels (&amp;quot;simple&amp;quot; or &amp;quot;L/R&amp;quot; stereo or DualMono). These methods exploit the similarities between channels and typically allow for more bits to be effectively used, increasing audio quality for a given bitrate. They are, however, not guaranteed to be perfect and could instead cause audible artifacts (mostly on older encoders).&lt;br /&gt;
&lt;br /&gt;
Some file formats, such as MP3, can do switch among these formats on-the-fly on a frame or sub-frame basis, for the sake of efficiency or quality. For example, a high-[[bitrate]] &amp;quot;joint stereo&amp;quot; [[MP3]] file may contain a mixture of SS and MS frames, or it may contain all SS frames or all MS frames.  Due to some historical accident, the term as applied in MP3 refers to a mixture of coding formats.  In other words, a non-&amp;quot;joint stereo&amp;quot; MP3 will never contain a mixture of frame types.&lt;br /&gt;
&lt;br /&gt;
==Stereo coding methods or &amp;quot;modes&amp;quot;==&lt;br /&gt;
&lt;br /&gt;
===Left-Right (L/R) or &amp;quot;Simple&amp;quot; Stereo (SS)===&lt;br /&gt;
Simple stereo is the most straightforward method of coding a stereo signal: each channel is treated as a completely separate entity. This can be inefficient and may adversely impact quality (as compared to other modes) when both channels contain nearly identical signals (i.e., are mono or nearly so).&lt;br /&gt;
&lt;br /&gt;
===Mid-side Stereo (MS)===&lt;br /&gt;
Mid-side stereo coding calculates a &amp;quot;mid&amp;quot;-channel by addition of left and right channel, and a &amp;quot;side&amp;quot;-channel by subtraction, i.e.:&lt;br /&gt;
&lt;br /&gt;
;Encoding&lt;br /&gt;
:&#039;&#039;M&#039;&#039; = (&#039;&#039;L&#039;&#039; + &#039;&#039;R&#039;&#039;) / 2, &#039;&#039;S&#039;&#039; = (&#039;&#039;L&#039;&#039; - &#039;&#039;R&#039;&#039;) / 2&lt;br /&gt;
;Decoding&lt;br /&gt;
:&#039;&#039;L&#039;&#039; = &#039;&#039;M&#039;&#039; + &#039;&#039;S&#039;&#039;, R = &#039;&#039;M&#039;&#039; - &#039;&#039;S&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Whenever a signal is concentrated in the middle of the stereo image (i.e. more mono-like), mid-side stereo can achieve a significant saving in bitrate, since one can use fewer bits to encode the side-channel. Even more important is the fact that by applying the inverse matrix in the decoder, the quantization noise becomes correlated and falls in the middle of the stereo image, where it is masked by the signal.&lt;br /&gt;
&lt;br /&gt;
Unlike [[Joint stereo#intensity stereo|intensity stereo]] which destroys phase information, mid-side coding is mathematically lossless (although subsequent lossy compression may cause phase degredation). Correctly implemented mid-side stereo does very little or no damage to the stereo image and increases compression efficiency either by reducing size or increasing overall quality.  Mid-side is also simple enough to be implemented in FM radio and stereophonic Vinyl.&lt;br /&gt;
&lt;br /&gt;
Mid-side stereo can use coefficients other than 1 in encoding and decoding. Allowing different contributions from each channel allows the codec to adapt to off-balance sources and retain the bitrate savings. This extension is found in opus, where an angle can be encoded.&amp;lt;ref name=opus/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Intensity stereo===&lt;br /&gt;
&lt;br /&gt;
Intensity stereo coding is a method that achieves a saving in bitrate by replacing the left and the right signal by a single representing signal plus directional information (in the form of amplitude ratios for each frequency range). This replacement is psychoacoustically justified in the higher [[frequency]] range since the human auditory system is insensitive to the signal phase at frequencies above approximately 2 kHz.&amp;lt;ref&amp;gt;http://www.hydrogenaudio.org/forums/index.php?showtopic=1491&amp;amp;view=findpost&amp;amp;p=14091&amp;lt;/ref&amp;gt; To maintain the justification, a codec may only apply intensity stereo to higher-frequency parameters.&amp;lt;ref name=opus&amp;gt;See e.g. https://web.archive.org/web/20180714000735/http://jmvalin.ca/papers/aes135_opus_celt.pdf, sections 4.5 [IS frequency], 4.5.1 [M/S angle]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Intensity stereo is by definition a [[lossy]] coding method thus it is primarily useful at low bitrates. For coding at higher bitrates only mid-side stereo should be used.&lt;br /&gt;
&lt;br /&gt;
===Parametric stereo===&lt;br /&gt;
Parametric stereo, found in HE-AAC, is similar to intensity stereo, except that the directional information also includes phase and correlation. The phase information makes this algorithm also capable of keeping low frequency location cues (by inter-aural time differences), while the (de-)correlation information helps add ambience by synthesizing some difference between channels.&amp;lt;ref name=LC-M4&amp;gt;Purnhagen, Heiko (October 5–8, 2004). [http://dafx.de/paper-archive/2004/P_163.PDF LOW COMPLEXITY PARAMETRIC STEREO CODING IN MPEG-4]&amp;quot; (PDF). 7th International Conference on Digital Audio Effects: 163–168.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
PS replaces a whole channel with only 2-3 kbit/s of side information. As a result, the remaining channel gets almost double the bitrate to use, so the quality gain can more than makes up for the lossiness of the process. It is not useful at high bitrate.&lt;br /&gt;
&lt;br /&gt;
The phase aspect is covered by a few patents applied in 1997~2000 (EP1107232A3, EP0797324A2), which should have expired. The ambience part (EP1927266B1) will expire in 2026, so do not expect any new experimental codec to use it yet.&lt;br /&gt;
&lt;br /&gt;
== More channels ==&lt;br /&gt;
The general idea of exploiting the redundancy among channels is called &#039;&#039;channel coupling&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
=== Surround ===&lt;br /&gt;
&lt;br /&gt;
Surround is structured like stereo in some ways, except now there are many more pairs that can be coupled together. The basic approach is to code together the corresponding pairs of left and right using ordinary joint stereo techniques.&lt;br /&gt;
&lt;br /&gt;
In MPEG Surround, a process similar to parametric stereo is used to three streams into two, or two streams into one &amp;amp;ndash; plus a small stream of side information. A stream created by merging itself can be merged, creating a hierarchy of merges. For example, a 5.1 stream can be encoded as merges of C/LFE, L/Ls, R/Rs, then these three streams can be mixed down if needed.&lt;br /&gt;
&lt;br /&gt;
=== Ambisonics ===&lt;br /&gt;
&lt;br /&gt;
Ambisonics represents an entire sound field. In the raw representation, everything is based on spherical harmonics.&lt;br /&gt;
&lt;br /&gt;
* Multi-mono lossy encoding is unacceptably bad for ambisonics. Each stream does its own thing with the phase, resulting in a incoherent sound image.&amp;lt;ref&amp;gt;Phase/ambisonic issue discussed in: Mahé, Pierre; Ragot, Stéphane; Marchand, Sylvain (2 September 2019). &#039;&#039;[https://hal.science/hal-02289558 First-Order Ambisonic Coding with PCA Matrixing and Quaternion-Based Interpolation]&#039;&#039;. 22nd International Conference on Digital Audio Effects (DAFx-19), Birmingham, UK. p. 284.&amp;lt;/ref&amp;gt;&lt;br /&gt;
* A fixed encoding matrix, such as the one in Opus, is passable. Sources a fixed direction gets much better quality (because it only goes in one stream: no chance of phase inconsistencies), and if the underlying codec is given enough bitrate to not mess with phase too much, the rest can be okay too.&lt;br /&gt;
* MPEG-H 3D Audio isolates each source in space from the input, storing a representation based on objects. This should not have any preferred direction.&lt;br /&gt;
&lt;br /&gt;
== By format ==&lt;br /&gt;
&lt;br /&gt;
=== MP3 ===&lt;br /&gt;
&lt;br /&gt;
MP3 supports dual-mono, M/S, and intensity methods. LAME does not support intensity stereo.&lt;br /&gt;
&lt;br /&gt;
Some early MP3 encoders didn&#039;t make ideal decisions about what mode to use from frame to frame in joint stereo files, or how much bandwidth to allocate to encoding the side channel. This led to a widespread but mistaken belief that an abundance of M/S frames, or the use of joint stereo in general, always negatively impacts channel separation and other measures of audio quality. This is not an issue with modern encoders. Modern, optimized encoders will switch between mid-side coding or simple stereo coding as necessary, depending on the correlation between the left and right channels, and will allocate channel bandwidth appropriately to ensure the best mode is used for each frame.&lt;br /&gt;
&lt;br /&gt;
LAME M/S is known to better preserve stereo image than dual-mono in most circumstances, given the same bitrate budget. See [[Lossy]].&lt;br /&gt;
&lt;br /&gt;
=== Vorbis ===&lt;br /&gt;
[[Vorbis]] treats stereo information with &#039;&#039;&#039;square polar mapping&#039;&#039;&#039; which is beneficial when the correlation between the left and right channels are strong (this can also be extended to multichannel coupling as well). In Vorbis, the spectrum of each channel is normalized against a floor function, which is a rough envelope of the actual spectrum. In the square polar mapping, the (stereo) phase is roughly defined as the difference between the normalized left and right amplitude of a given frequency component. If the original left and right channel are the same within a certain frequency band, apart from an overall scaling factor, then the normalized frequency spectrum is the same left and right and the stereo phase is zero over the whole frequency band. Note that in the context of polar mapping, the term &#039;phase&#039; (here: &#039;stereo phase&#039;) has a very different meaning from the phase of a periodic wave. Unlike in the Fourier Transform, the Cosine Transform used in Vorbis and other encoders only provides amplitudes and no phases of the latter type.&lt;br /&gt;
&lt;br /&gt;
Once the stereo information is represented in polar mapping as a magnitude and stereo phase, Vorbis can use three coupling methods:&amp;lt;ref&amp;gt;[http://www.xiph.org/vorbis/doc/stereo.html Ogg Vorbis stereo-specific channel coupling] at xiph.org.&amp;lt;/ref&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Lossless coupling&#039;&#039;&#039; is mathematically equivalent to independent encoding of the two channels (&#039;dual mono&#039; in MP3), but with the benefit of additional space-saving. It does polar mapping/channel interleaving using the residue vectors.&lt;br /&gt;
* In &#039;&#039;&#039;phase stereo&#039;&#039;&#039;, the stereo phase is quantized, i.e. stored at a lower resolution. Especially above 4 kHz, the ear is not very sensitive to phase information. Phase stereo is &#039;&#039;&#039;not&#039;&#039;&#039; currently implemented in reference encoder due to complexity, but will be re-added again later on.  Note that phase stereo should not be compared to intensity stereo in MP3 coding. &lt;br /&gt;
* In [[point stereo]], the stereo phase is discarded completely. All the stereo information comes from the difference in the spectral floors for the left and right channels.&lt;br /&gt;
&lt;br /&gt;
Ogg Vorbis uses lossless/point stereo coupling below &#039;&#039;-q 6&#039;&#039;. Lossless channel coupling is used for high bitrates entirely (&#039;&#039;-q 6 and up&#039;&#039;). This can be adjusted via an advanced-encode switch, but is not done for simplicity&#039;s sake.&lt;br /&gt;
&lt;br /&gt;
=== Opus ===&lt;br /&gt;
&lt;br /&gt;
Opus is capable of multi-mono, M/S with tunable weight factor, and intensity stereo. It avoids multi-mono unless explicitly asked for, and decide among M/S and intensity by the bitrate available and audio content. It also calculates the stereo width to decide the total amount of bitrate needed.&lt;br /&gt;
&lt;br /&gt;
With surround input, Opus can only couple to pairs of joint-stereo. It does take advantage of surround masking.&lt;br /&gt;
&lt;br /&gt;
With ambisonic input, Opus can use a fixed matrix, or do multi-mono.&lt;br /&gt;
&lt;br /&gt;
==External Links==&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Joint_stereo joint stereo at Wikipedia]&lt;br /&gt;
* [http://www.codingtechnologies.com/products/paraSter.htm Parametric Stereo at Coding Technologies]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Technical]]&lt;br /&gt;
[[Category:Algorithms]]&lt;/div&gt;</summary>
		<author><name>Artoria2e5</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=Joint_stereo&amp;diff=37288</id>
		<title>Joint stereo</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=Joint_stereo&amp;diff=37288"/>
		<updated>2023-08-12T05:12:07Z</updated>

		<summary type="html">&lt;p&gt;Artoria2e5: /* Opus */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Joint stereo&#039;&#039;&#039; refers to any stereo-encoding method that goes beyond simple encoding as two independent channels (&amp;quot;simple&amp;quot; or &amp;quot;L/R&amp;quot; stereo or DualMono). These methods exploit the similarities between channels and typically allow for more bits to be effectively used, increasing audio quality for a given bitrate. They are, however, not guaranteed to be perfect and could instead cause audible artifacts (mostly on older encoders).&lt;br /&gt;
&lt;br /&gt;
Some file formats, such as MP3, can do switch among these formats on-the-fly on a frame or sub-frame basis, for the sake of efficiency or quality. For example, a high-[[bitrate]] &amp;quot;joint stereo&amp;quot; [[MP3]] file may contain a mixture of SS and MS frames, or it may contain all SS frames or all MS frames.  Due to some historical accident, the term as applied in MP3 refers to a mixture of coding formats.  In other words, a non-&amp;quot;joint stereo&amp;quot; MP3 will never contain a mixture of frame types.&lt;br /&gt;
&lt;br /&gt;
==Stereo coding methods or &amp;quot;modes&amp;quot;==&lt;br /&gt;
&lt;br /&gt;
===Left-Right (L/R) or &amp;quot;Simple&amp;quot; Stereo (SS)===&lt;br /&gt;
Simple stereo is the most straightforward method of coding a stereo signal: each channel is treated as a completely separate entity. This can be inefficient and may adversely impact quality (as compared to other modes) when both channels contain nearly identical signals (i.e., are mono or nearly so).&lt;br /&gt;
&lt;br /&gt;
===Mid-side Stereo (MS)===&lt;br /&gt;
Mid-side stereo coding calculates a &amp;quot;mid&amp;quot;-channel by addition of left and right channel, and a &amp;quot;side&amp;quot;-channel by subtraction, i.e.:&lt;br /&gt;
&lt;br /&gt;
;Encoding&lt;br /&gt;
:&#039;&#039;M&#039;&#039; = (&#039;&#039;L&#039;&#039; + &#039;&#039;R&#039;&#039;) / 2, &#039;&#039;S&#039;&#039; = (&#039;&#039;L&#039;&#039; - &#039;&#039;R&#039;&#039;) / 2&lt;br /&gt;
;Decoding&lt;br /&gt;
:&#039;&#039;L&#039;&#039; = &#039;&#039;M&#039;&#039; + &#039;&#039;S&#039;&#039;, R = &#039;&#039;M&#039;&#039; - &#039;&#039;S&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Whenever a signal is concentrated in the middle of the stereo image (i.e. more mono-like), mid-side stereo can achieve a significant saving in bitrate, since one can use fewer bits to encode the side-channel. Even more important is the fact that by applying the inverse matrix in the decoder, the quantization noise becomes correlated and falls in the middle of the stereo image, where it is masked by the signal.&lt;br /&gt;
&lt;br /&gt;
Unlike [[Joint stereo#intensity stereo|intensity stereo]] which destroys phase information, mid-side coding is mathematically lossless (although subsequent lossy compression may cause phase degredation). Correctly implemented mid-side stereo does very little or no damage to the stereo image and increases compression efficiency either by reducing size or increasing overall quality.  Mid-side is also simple enough to be implemented in FM radio and stereophonic Vinyl.&lt;br /&gt;
&lt;br /&gt;
Mid-side stereo can use coefficients other than 1 in encoding and decoding. Allowing different contributions from each channel allows the codec to adapt to off-balance sources and retain the bitrate savings. This extension is found in opus, where an angle can be encoded.&amp;lt;ref name=opus/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Intensity stereo===&lt;br /&gt;
&lt;br /&gt;
Intensity stereo coding is a method that achieves a saving in bitrate by replacing the left and the right signal by a single representing signal plus directional information (in the form of amplitude ratios for each frequency range). This replacement is psychoacoustically justified in the higher [[frequency]] range since the human auditory system is insensitive to the signal phase at frequencies above approximately 2 kHz.&amp;lt;ref&amp;gt;http://www.hydrogenaudio.org/forums/index.php?showtopic=1491&amp;amp;view=findpost&amp;amp;p=14091&amp;lt;/ref&amp;gt; To maintain the justification, a codec may only apply intensity stereo to higher-frequency parameters.&amp;lt;ref name=opus&amp;gt;See e.g. https://web.archive.org/web/20180714000735/http://jmvalin.ca/papers/aes135_opus_celt.pdf, sections 4.5 [IS frequency], 4.5.1 [M/S angle]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Intensity stereo is by definition a [[lossy]] coding method thus it is primarily useful at low bitrates. For coding at higher bitrates only mid-side stereo should be used.&lt;br /&gt;
&lt;br /&gt;
===Parametric stereo===&lt;br /&gt;
Parametric stereo, found in HE-AAC, is similar to intensity stereo, except that the directional information also includes phase and correlation. The phase information makes this algorithm also capable of keeping low frequency location cues (by inter-aural time differences), while the (de-)correlation information helps add ambience by synthesizing some difference between channels.&amp;lt;ref name=LC-M4&amp;gt;Purnhagen, Heiko (October 5–8, 2004). [http://dafx.de/paper-archive/2004/P_163.PDF LOW COMPLEXITY PARAMETRIC STEREO CODING IN MPEG-4]&amp;quot; (PDF). 7th International Conference on Digital Audio Effects: 163–168.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
PS replaces a whole channel with only 2-3 kbit/s of side information. As a result, the remaining channel gets almost double the bitrate to use, so the quality gain can more than makes up for the lossiness of the process. It is not useful at high bitrate.&lt;br /&gt;
&lt;br /&gt;
The phase aspect is covered by a few patents applied in 1997~2000 (EP1107232A3, EP0797324A2), which should have expired. The ambience part (EP1927266B1) will expire in 2026, so do not expect any new experimental codec to use it yet.&lt;br /&gt;
&lt;br /&gt;
== More channels ==&lt;br /&gt;
The general idea of exploiting the redundancy among channels is called &#039;&#039;channel coupling&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
=== Surround ===&lt;br /&gt;
&lt;br /&gt;
Surround is structured like stereo in some ways, except now there are many more pairs that can be coupled together. The basic approach is to code together the corresponding pairs of left and right using ordinary joint stereo techniques.&lt;br /&gt;
&lt;br /&gt;
In MPEG Surround, a process similar to parametric stereo is used to three streams into two, or two streams into one &amp;amp;ndash; plus a small stream of side information. A stream created by merging itself can be merged, creating a hierarchy of merges. For example, a 5.1 stream can be encoded as merges of C/LFE, L/Ls, R/Rs, then these three streams can be mixed down if needed.&lt;br /&gt;
&lt;br /&gt;
=== Ambisonics ===&lt;br /&gt;
&lt;br /&gt;
Ambisonics represents an entire sound field. In the raw representation, everything is based on spherical harmonics.&lt;br /&gt;
&lt;br /&gt;
* Multi-mono lossy encoding is unacceptably bad for ambisonics. Each stream does its own thing with the phase, resulting in a incoherent sound image.&amp;lt;ref&amp;gt;Phase/ambisonic issue discussed in: Mahé, Pierre; Ragot, Stéphane; Marchand, Sylvain (2 September 2019). &#039;&#039;[https://hal.science/hal-02289558 First-Order Ambisonic Coding with PCA Matrixing and Quaternion-Based Interpolation]&#039;&#039;. 22nd International Conference on Digital Audio Effects (DAFx-19), Birmingham, UK. p. 284.&amp;lt;/ref&amp;gt;&lt;br /&gt;
* A fixed encoding matrix, such as the one in Opus, is passable. Sources a fixed direction gets much better quality (because it only goes in one stream: no chance of phase inconsistencies), and if the underlying codec is given enough bitrate to not mess with phase too much, the rest can be okay too.&lt;br /&gt;
* MPEG-H 3D Audio isolates each source in space from the input, storing a representation based on objects. This should not have any preferred direction.&lt;br /&gt;
&lt;br /&gt;
== By format ==&lt;br /&gt;
&lt;br /&gt;
=== MP3 ===&lt;br /&gt;
&lt;br /&gt;
MP3 supports dual-mono, M/S, and intensity methods. LAME does not support intensity stereo.&lt;br /&gt;
&lt;br /&gt;
Some early MP3 encoders didn&#039;t make ideal decisions about what mode to use from frame to frame in joint stereo files, or how much bandwidth to allocate to encoding the side channel. This led to a widespread but mistaken belief that an abundance of M/S frames, or the use of joint stereo in general, always negatively impacts channel separation and other measures of audio quality. This is not an issue with modern encoders. Modern, optimized encoders will switch between mid-side coding or simple stereo coding as necessary, depending on the correlation between the left and right channels, and will allocate channel bandwidth appropriately to ensure the best mode is used for each frame.&lt;br /&gt;
&lt;br /&gt;
LAME M/S is known to better preserve stereo image than dual-mono in most circumstances, given the same bitrate budget. See [[Lossy]].&lt;br /&gt;
&lt;br /&gt;
=== Vorbis ===&lt;br /&gt;
[[Vorbis]] treats stereo information with &#039;&#039;&#039;square polar mapping&#039;&#039;&#039; which is beneficial when the correlation between the left and right channels are strong (this can also be extended to multichannel coupling as well). In Vorbis, the spectrum of each channel is normalized against a floor function, which is a rough envelope of the actual spectrum. In the square polar mapping, the (stereo) phase is roughly defined as the difference between the normalized left and right amplitude of a given frequency component. If the original left and right channel are the same within a certain frequency band, apart from an overall scaling factor, then the normalized frequency spectrum is the same left and right and the stereo phase is zero over the whole frequency band. Note that in the context of polar mapping, the term &#039;phase&#039; (here: &#039;stereo phase&#039;) has a very different meaning from the phase of a periodic wave. Unlike in the Fourier Transform, the Cosine Transform used in Vorbis and other encoders only provides amplitudes and no phases of the latter type.&lt;br /&gt;
&lt;br /&gt;
Once the stereo information is represented in polar mapping as a magnitude and stereo phase, Vorbis can use three coupling methods:&amp;lt;ref&amp;gt;[http://www.xiph.org/vorbis/doc/stereo.html Ogg Vorbis stereo-specific channel coupling] at xiph.org.&amp;lt;/ref&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Lossless coupling&#039;&#039;&#039; is mathematically equivalent to independent encoding of the two channels (&#039;dual mono&#039; in MP3), but with the benefit of additional space-saving. It does polar mapping/channel interleaving using the residue vectors.&lt;br /&gt;
* In &#039;&#039;&#039;phase stereo&#039;&#039;&#039;, the stereo phase is quantized, i.e. stored at a lower resolution. Especially above 4 kHz, the ear is not very sensitive to phase information. Phase stereo is &#039;&#039;&#039;not&#039;&#039;&#039; currently implemented in reference encoder due to complexity, but will be re-added again later on.  Note that phase stereo should not be compared to intensity stereo in MP3 coding. &lt;br /&gt;
* In [[point stereo]], the stereo phase is discarded completely. All the stereo information comes from the difference in the spectral floors for the left and right channels.&lt;br /&gt;
&lt;br /&gt;
Ogg Vorbis uses lossless/point stereo coupling below &#039;&#039;-q 6&#039;&#039;. Lossless channel coupling is used for high bitrates entirely (&#039;&#039;-q 6 and up&#039;&#039;). This can be adjusted via an advanced-encode switch, but is not done for simplicity&#039;s sake.&lt;br /&gt;
&lt;br /&gt;
=== Opus ===&lt;br /&gt;
&lt;br /&gt;
Opus is capable of multi-mono, M/S with tunable weight factor, and intensity stereo. It avoids multi-mono unless explicitly asked for, and decide among M/S and intensity by the bitrate available and audio content. It also calculates the stereo width to decide the total amount of bitrate needed.&lt;br /&gt;
&lt;br /&gt;
With surround input, Opus can only couple to pairs of joint-stereo. It does take advantage of stereo masking.&lt;br /&gt;
&lt;br /&gt;
With ambisonic input, Opus can use a fixed matrix, or do multi-mono.&lt;br /&gt;
&lt;br /&gt;
==External Links==&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Joint_stereo joint stereo at Wikipedia]&lt;br /&gt;
* [http://www.codingtechnologies.com/products/paraSter.htm Parametric Stereo at Coding Technologies]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Technical]]&lt;br /&gt;
[[Category:Algorithms]]&lt;/div&gt;</summary>
		<author><name>Artoria2e5</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=Bitrate&amp;diff=37287</id>
		<title>Bitrate</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=Bitrate&amp;diff=37287"/>
		<updated>2023-08-12T05:10:55Z</updated>

		<summary type="html">&lt;p&gt;Artoria2e5: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Bitrate&#039;&#039;&#039; means the data rate (i.e. how many bits get transferred in a certain amount of time), usually expressed in bits per second.&lt;br /&gt;
&lt;br /&gt;
The common units of bit rate are kilobits per second (Kbps) and megabits per second (Mbps). In data rates, the multipliers &amp;quot;k&amp;quot;, &amp;quot;M&amp;quot;, etc. stand for powers of 1000, not powers of 1024.&lt;br /&gt;
&lt;br /&gt;
The term is also commonly used when discussing digital sampling and sample rates. For example, the MP3 audio compression algorithm is often set to ouput files with a bitrate of 128 kbps. This means that the file contains an average of 128 kilobits for each second of audio (960KB per minute). This contrasts with CD audio, which is encoded as 44100 16-bit stereo samples per second: 1411.2 kbps (16bit x 44100Hz x 2 channels).&lt;br /&gt;
&lt;br /&gt;
Often, upper-case units and multipliers are used for bytes (like &amp;quot;KB&amp;quot; for kilobytes) and lowercase multipliers are bits (like &amp;quot;kb&amp;quot; for kilobits). All modern computers use 8-bit bytes.&lt;br /&gt;
&lt;br /&gt;
==MP3 bitrates==&lt;br /&gt;
&lt;br /&gt;
MP3 bitrates can be deceptive. For example, a 128 kbps &amp;quot;constant bitrate&amp;quot; ([[CBR]]) MP3 will use &#039;&#039;about&#039;&#039; 128 kilobits for each second of audio that is encoded (so the file size, in bits, divided by the audio&#039;s duration, comes out to about 128,000), and its frame headers will occur at regular intervals, but internally, from frame to frame it may encode audio at a bitrate higher or lower than 128 kbps through the use of the [[bit reservoir]] (the ability of a frame to use spare bits from the preceding frame). However, the size of this reservoir, and thus the amount of variability, is limited, so 128 kbps will be very close to the effective bitrate across the whole file.&lt;br /&gt;
&lt;br /&gt;
As another example, a &amp;quot;128 kbps VBR MP3&amp;quot; is usually a misnomer, since the point of [[VBR]] is to allow each of the MP3&#039;s internal frames to have its own bitrate. When people refer to the bitrate of a VBR MP3, they are usually referring to the actual average of bitrate of its frames. If the duration of the encoded audio is known, then &amp;quot;bitrate&amp;quot; might be the size of the file data divided by its duration, which will be pretty close to the same number. However, the duration of a VBR MP3 cannot be accurately determined without scanning all the frames.&lt;br /&gt;
&lt;br /&gt;
== Equivalent bitrate estimates for multichannel audio==&lt;br /&gt;
&lt;br /&gt;
C.R.Helmrich [https://hydrogenaud.io/index.php/topic,120007.msg997612.html#msg997612 writes]:&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
The following function gives you a weight w for each &#039;&#039;cc&#039;&#039;, where cc is the channel configuration written as a decimal number (1.0 for mono, 2.0 for stereo, 5.1 for surround, etc.):&lt;br /&gt;
&lt;br /&gt;
w(&#039;&#039;cc&#039;&#039;) = &#039;&#039;cc&#039;&#039;&amp;lt;sup&amp;gt;0.75&amp;lt;/sup&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you want to know the quality equivalent mono bit-rate of, e.g., 128 kbps stereo, you simply calculate 128 * w(1.0)/w(2.0) = 128 * (1.0/2.0)^0.75 = 76 kbps. That function also tells you that, with 5.1 surround, you need roughly twice the stereo bit-rate for the same level of audio quality. Based on my experience that&#039;s quite reasonable, at least with modern codecs like Opus, (x)HE-AAC, and MPEG-H Audio.&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This very simple definition does two things:&lt;br /&gt;
* Surround channels are treated as one-tenth of a &amp;quot;real&amp;quot; channel. This is reasonable, because low-frequency effects (LFE) channel do carry little information.&lt;br /&gt;
* The power function makes it such that each additional channel adds less bitrate than a previous channel. This is also reasonable, considering [[joint stereo]] and analogous methods used to extract redundancy from multichannel audio.&lt;br /&gt;
&lt;br /&gt;
[[Category:Technical]]&lt;/div&gt;</summary>
		<author><name>Artoria2e5</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=Opus&amp;diff=37274</id>
		<title>Opus</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=Opus&amp;diff=37274"/>
		<updated>2023-08-11T06:23:45Z</updated>

		<summary type="html">&lt;p&gt;Artoria2e5: /* References &amp;amp; Notes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Software Infobox&lt;br /&gt;
| name = Opus&lt;br /&gt;
| logo = [[Image:opus-logo.png|250px|Official Opus logo]]&lt;br /&gt;
| screenshot =&lt;br /&gt;
| caption = Opus Interactive Audio Codec&lt;br /&gt;
| maintainer = [http://xiph.org/ Xiph.Org Foundation]&lt;br /&gt;
| stable_release = 1.4&lt;br /&gt;
| operating_system = Windows, Mac OS/X, Linux/BSD&lt;br /&gt;
| use = Encoder/Decoder&lt;br /&gt;
| license = 3-clause BSD license&lt;br /&gt;
| website = [http://www.opus-codec.org/ opus-codec.org]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Opus&#039;&#039;&#039; is a [[lossy]] audio compression format developed by the Internet Engineering Task Force (IETF) designed to be suitable for interactive real-time applications over the Internet,{{ref|homepage|a}} including music as well as speech, yet it is also very competitive for use as a storage and playback format, being a [https://web.archive.org/web/20200130083553/http://people.xiph.org/~greg/opus/ha2011/ class leader at around 64 kbps] and [http://listening-test.coresv.net/results.htm also at 96 kbps]. As an open format standardised through [http://tools.ietf.org/html/rfc6716 Request for Comments (RFC) 6716],{{ref|RFC|c}} a high quality reference implementation is provided under the 3-clause BSD license{{ref|homepage|a}} which compiles and runs on the vast majority of general purpose and embedded (fixed point) processors. Many Software patents which cover Opus are licensed under royalty-free terms.{{ref|FAQ|b}}  Opus is also a Mandatory To Implement (MTI) codec for the upcoming WebRTC (Web Real Time Communication) specification of the World Wide Web Consortium (W3C).&lt;br /&gt;
&lt;br /&gt;
Opus incorporates technology from two codecs, the speech-oriented SILK codec developed by Skype and the multi-purpose low-latency CELT codec developed by Xiph.org with significant changes to each to ensure they can work together.{{ref|RFC|c}} Opus can seamlessly transition among high and low bitrates, using a linear prediction codec (the SILK layer) at lower bitrates and a lapped transform codec (the CELT layer) at higher bitrates, as well as a hybrid of the two for a short overlap in which SILK encodes the 0–8&amp;amp;nbsp;kHz spectrum and the CELT layer encodes only the frequencies above 8kHz.{{ref|RFC|c}} Opus has very low algorithmic delay (typ 22.5&amp;amp;nbsp;ms) compared to popular music formats such as [[MP3]], [[Vorbis |Ogg Vorbis]], [[AAC | LC-AAC and HE-AAC]] (all over 100&amp;amp;nbsp;ms), yet performs very competitively with them in terms of quality per bitrate, making it comparably viable as a storage &amp;amp; playback format. Also unlike Vorbis, Opus does not require the definition of large codebooks for each individual file, making it also preferable for short clips of audio, such as those often used by game developers, a field where patent-free Vorbis is commonly used.{{ref|RFC|c}}&lt;br /&gt;
&lt;br /&gt;
Considerably more details of the history and potential applications for Opus are included in the &#039;&#039;Wikipedia&#039;&#039; page for &#039;&#039;&#039;[http://en.wikipedia.org/wiki/Opus_%28audio_format%29 Opus (audio format)]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Characteristics==&lt;br /&gt;
Opus supports bitrates from 6&amp;amp;nbsp;kbps to 510&amp;amp;nbsp;kbps for typical stereo audio sources (and a maximum of around 255 kbps per channel for multichannel audio), with the &#039;sweet spot&#039; for music and general audio around 30&amp;amp;nbsp;kbps (mono) and 40–100&amp;amp;nbsp;kbps (stereo). It is intrinsically [[VBR | variable bitrate]], though constrained VBR and [[CBR | constant bitrate]] modes are possible where required. In the case of the reference release, libopus, the target bitrate is calibrated against the internal constant quality targets so that over a typical music collection, something very close to the target bitrate will be achieved. This bitrate-calibrated approach differs from most VBR encoders (e.g. LAME, helix mp3, qaac, Nero aacenc, Ogg Vorbis, Musepack) where a setting on some &#039;constant quality&#039; scale (which differs between encoders) is used and the bitrate will fall where it may. Improved future versions can be expected to offer improved quality at the same setting. Independent implementations may adopt a different approach.&lt;br /&gt;
&lt;br /&gt;
Opus is able to seamlessly adapt its mode of operation without glitches or sound interruption (an illustrative demonstration of [http://opus-codec.org/examples/#gauge bitrate scalability] is on the Opus Examples page), which can be particularly useful for mixed-content audio or varying network conditions, making the unified Opus codec superior to a suite of different codecs that might otherwise cover the same range of bitrate and quality settings and would require out-of-band signalling to instigate codec switching. The switching includes the choice of mono, stereo and other channel mappings, the use of the speech-oriented SILK layer, the general-purpose CELT layer or the hybrid of both, and the use of different audio bandwidths (4, 6, 8, 12, or 20&amp;amp;nbsp;kHz) as well as the quality adjustments within the same operating mode that are available in most VBR-capable codecs.&lt;br /&gt;
&lt;br /&gt;
Of importance mainly to interactive uses, but potentially useful in time-delayed audio streaming also, Opus includes packet loss concealment (PLC) in all modes and, in the speech-oriented modes where the SILK layer is active it also supports Forward Error Correction (FEC) where the expected rate of packet loss can be indicated to the encoder by the user or by application software and critical frames (e.g. consonant sounds) can be retransmitted at low bitrate to preserve intelligibility.&lt;br /&gt;
&lt;br /&gt;
For music and general audio, the CELT layer of Opus builds on knowledge gained during xiph.org&#039;s Vorbis development and ensures as a primary goal that the total energy in each spectral band is preserved while requiring only a modest bitrate overhead to achieve this, thereby eliminating a lot of bitrate-starvation artifacts such as &#039;birdies&#039; that are common in low-bitrate MP3, especially during transients, applause and cymbal sounds. This technique likewise increases coding efficiency at bitrates targetting transparent music reproduction. Short blocks (2.5&amp;amp;nbsp;ms) are also possible for efficient transient handling. Short blocks can also be used exclusively, if very low algorithmic delay (5.0&amp;amp;nbsp;ms) is required to enable very low-latency interative audio (e.g. live networked music performances such as remote jam sessions), though greater bitrate is then required to maintain the same quality (illustrated in [http://people.xiph.org/~xiphmont/demo/celt/demo.html#demo Monty&#039;s CELT demo page] under Constant PEAQ value, varying latency). CELT uses a number of additional techniques and provides additional advanced tools to enable encoder tuning.&lt;br /&gt;
&lt;br /&gt;
Opus natively supports [[gapless playback]] (though [[Gapless_playback#Poorly_designed_playback_systems | poor player design]] might itself induce interruptions during playback). Playback gain is also required, making some form of [[ReplayGain]] or [[ReplayGain_2.0_specification | similar]] volume control possible in any compliant player.&lt;br /&gt;
&lt;br /&gt;
==Bitrate performance==&lt;br /&gt;
For mono speech, Opus ranges from intelligible narrowband speech reproduction starting at 6&amp;amp;nbsp;kbps to medium-band, wideband and superwideband speech, reaching full-band speech by around 14&amp;amp;nbsp;kbps in encoder version 1.2 (was 21&amp;amp;nbsp;kbps in v1.1, 29&amp;amp;nbsp;kbps in v1.0). Above about 32&amp;amp;nbsp;kbps, the SILK layer is no longer used at all, as CELT alone gives superior quality.&lt;br /&gt;
&lt;br /&gt;
For music, the SILK modes are quite tolerable and better than CELT at very low bitrates. The hybrid mode is adopted as bitrate increases, extending bandwidth first to 12&amp;amp;nbsp;kHz (comparable with compact cassette) then to the full 20&amp;amp;nbsp;kHz and CELT then takes over. Assuming the source is stereo, the transition from mono to stereo typically happens between the transition from 12&amp;amp;nbsp;kHz to 20&amp;amp;nbsp;kHz. Encoder version 1.2 includes great improvements to music encoding in the 32–64&amp;amp;nbsp;kbps range, allowing full-band stereo at 32&amp;amp;nbsp;kbps and providing acceptable quality at 48&amp;amp;nbsp;kbps where artifacts are audible but rarely annoying. Version 1.3 is expected to further improve quality in this range.&lt;br /&gt;
&lt;br /&gt;
Multi-format stereo music listening tests have demonstrated the superiority of Opus at 64&amp;amp;nbsp;kbps and 96&amp;amp;nbsp;kbps compared to the best AAC-LC, HE-AAC and Ogg Vorbis encoders, and at 96&amp;amp;nbsp;kbps also to 128&amp;amp;nbsp;kbps MP3 encoded using LAME &amp;lt;code&amp;gt;-V 5&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Indicative bitrate and quality==&lt;br /&gt;
The tables below give illustrative, indicative quality guidance based on typical modes used internally by Opus and a range of listening tests.&lt;br /&gt;
&lt;br /&gt;
In encoder version 1.1 automatic detection of speech/music and bandwidth detection were introduced to improve mode decisions and VBR is less constrained, all with the aim of maximizing the quality/bitrate tradeoff, and these improvements are further enhanced in version 1.2 and 1.3. These tables are likely to require updates as the encoder is improved, especially in low-bitrate regions.&lt;br /&gt;
&lt;br /&gt;
===Speech encoding quality===&lt;br /&gt;
This table assumes a &#039;&#039;&#039;monophonic&#039;&#039;&#039; source sampled at CD quality or above (typ 48 kHz sampling rate) but mentions stereo compatibility for 40kbps+. The default 20ms frame size (22.5ms latency) is assumed. Note that the selection of &#039;&#039;VOIP&#039;&#039; mode will deliberately modify the sound with a High Pass Filter and emphasis of formants and harmonics to improve intelligibility of speech especially in noisy environments much as telephones do. &#039;&#039;Auto&#039;&#039; mode will not modify the sound prior to encoding so is usually better for high quality speech recordings or mixed speech and music.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Bitrate Target&lt;br /&gt;
!Bandwidth&lt;br /&gt;
!Typical Mode Used&lt;br /&gt;
!Speech Quality&lt;br /&gt;
!Use Cases / Competitive Codecs&lt;br /&gt;
|-&lt;br /&gt;
!Less than 5 kbps&lt;br /&gt;
| &amp;amp;mdash;&lt;br /&gt;
| &amp;amp;mdash;&lt;br /&gt;
| Bitrates lower than 6 kbps not supported by Opus (SILK disabled if forced to encode, which results in terrible speech quality)&lt;br /&gt;
| Try [https://en.wikipedia.org/wiki/Codec_2 Codec 2] for 0.45–3.2&amp;amp;nbsp;kbps mono speech or [[Wikipedia:Lyra (codec)|Lyra]] for 3.2&amp;amp;nbsp;kbps mono speech&lt;br /&gt;
|-&lt;br /&gt;
!6 kbps&lt;br /&gt;
|6 kHz medium-band&lt;br /&gt;
|SILK&lt;br /&gt;
|Fair, intelligible&lt;br /&gt;
|AMR-NB may be a little better, but higher latency &amp;amp; proprietary, [[Speex]] also competitive&lt;br /&gt;
|-&lt;br /&gt;
!8 kbps&lt;br /&gt;
|6 kHz medium-band&lt;br /&gt;
|SILK&lt;br /&gt;
|Close to telephone quality&lt;br /&gt;
|AMR-NB &amp;amp; AMR-WB similar quality, but higher latency &amp;amp; proprietary. [[Speex]] competitive.&lt;br /&gt;
|-&lt;br /&gt;
!12 kbps&lt;br /&gt;
|12 kHz super-wideband&lt;br /&gt;
|hybrid&lt;br /&gt;
|Medium bandwidth, better than telephone quality&lt;br /&gt;
|Similar quality to AMR-WB&lt;br /&gt;
|-&lt;br /&gt;
!16 kbps&lt;br /&gt;
|20 kHz&lt;br /&gt;
|hybrid/CELT&lt;br /&gt;
|Wideband speech quality&lt;br /&gt;
|Similar to/better than AMR-WB&lt;br /&gt;
|-&lt;br /&gt;
!24 kbps&lt;br /&gt;
|20 kHz&lt;br /&gt;
|hybrid/CELT&lt;br /&gt;
|Near transparent speech&lt;br /&gt;
|Better than AMR-WB. Podcasts/audiobooks/talk-radio.&lt;br /&gt;
|-&lt;br /&gt;
!32 kbps&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Essentially transparent speech plus moderately good stereo music&lt;br /&gt;
|Much better than AMR-WB. Podcasts/audiobooks/talk-radio.&lt;br /&gt;
|-&lt;br /&gt;
!40 kbps&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Essentially transparent mono or stereo speech, fairly good stereo music&lt;br /&gt;
|Stereo podcasts/audiobooks/talk radio with some music&lt;br /&gt;
|-&lt;br /&gt;
!48 kbps or more&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Essentially transparent mono or stereo speech, reasonable music&lt;br /&gt;
|Flexible general purpose modes to suit mixed music and speech&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
One major limitation of Opus at low bitrate is that SILK is inherently VBR: it accepts no constraints in CVBR, and if forced to do CBR the quality significantly degrades from bit-shaving. As a result, even though constrained VBR is designed such that a fixed-rate data link requires at most one frame of buffer to handle the variation in bit rate -- great news for communication links -- any use of SILK, even in hybrid mode, has the potential of breaking this intention. This makes Opus suboptimal for low-rate radio links: even though it works acceptably at low bitrate, radio links are fixed-rate require a predictable bit rate which Opus speech cannot adequately provide.&lt;br /&gt;
&lt;br /&gt;
===Music encoding quality===&lt;br /&gt;
This table assumes a &#039;&#039;&#039;stereophonic&#039;&#039;&#039; source sampled at CD quality or above (typ 48&amp;amp;nbsp;kHz sampling rate). Opus will automatically use mono at very low bitrates, though a certain amount of stereo encoding can still be used (content dependent) even when mono is specified as the typical stereo mode in the table below.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Bitrate target&lt;br /&gt;
!Stereo mode&lt;br /&gt;
!Bandwidth&lt;br /&gt;
!typ SILK/CELT use&lt;br /&gt;
!Music quality notes&lt;br /&gt;
!Use cases/notes/competitive codecs&lt;br /&gt;
|-&lt;br /&gt;
!6 kbps&lt;br /&gt;
|mono&lt;br /&gt;
|6 kHz&lt;br /&gt;
|SILK&lt;br /&gt;
|Poor, muffled sound but intelligible lyrics.&lt;br /&gt;
| &amp;amp;mdash;&lt;br /&gt;
|-&lt;br /&gt;
!8 kbps&lt;br /&gt;
|mono&lt;br /&gt;
|6 kHz&lt;br /&gt;
|SILK&lt;br /&gt;
|Poor, muffled but OK for bitrate&lt;br /&gt;
| &amp;amp;mdash;&lt;br /&gt;
|-&lt;br /&gt;
!14 to 16 kbps&lt;br /&gt;
|mono&lt;br /&gt;
|20 kHz&lt;br /&gt;
|hybrid/CELT&lt;br /&gt;
|Fairly poor but OK for bitrate&lt;br /&gt;
|Perhaps acceptable for incidental music&lt;br /&gt;
|-&lt;br /&gt;
!22 to 24 kbps&lt;br /&gt;
|mono&lt;br /&gt;
|20 kHz&lt;br /&gt;
|hybrid/CELT&lt;br /&gt;
|Fair but OK for bitrate&lt;br /&gt;
|OK for incidental music&lt;br /&gt;
|-&lt;br /&gt;
!32 to 40 kbps&lt;br /&gt;
|stereo&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Moderately good stereo, some artifacts, rarely nasty&lt;br /&gt;
|Stereo podcasts, audiobooks, very low bitrate music&lt;br /&gt;
|-&lt;br /&gt;
!48 kbps&lt;br /&gt;
|stereo&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Full bandwidth stereo music, nice sound, may have problems with cymbals&lt;br /&gt;
|Stereo podcasts, audiobooks, low bitrate music&lt;br /&gt;
|-&lt;br /&gt;
!64 kbps&lt;br /&gt;
|stereo&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Full bandwidth stereo music, nice sound, detectable differences to original (mostly &#039;not annoying&#039;)&lt;br /&gt;
|Music storage &amp;amp; streaming. Beat HE-AAC, Vorbis, MP3 in [https://web.archive.org/web/20200130083553/http://people.xiph.org/~greg/opus/ha2011/ listening test]&lt;br /&gt;
|-&lt;br /&gt;
!96 kbps&lt;br /&gt;
|stereo&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Full bandwidth stereo music, good quality approaching transparency&lt;br /&gt;
|Music storage &amp;amp; high quality streaming. Beat LC-AAC, Vorbis, MP3 in [http://listening-test.coresv.net/results.htm listening test]&lt;br /&gt;
|-&lt;br /&gt;
!112 kbps&lt;br /&gt;
|stereo&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Fairly close to transparency (needs more testing)&lt;br /&gt;
|Music storage &amp;amp; high quality streaming. Very low-latency stereo networked music performance/jam sessions at OK quality (see below table)&lt;br /&gt;
|-&lt;br /&gt;
!128 kbps&lt;br /&gt;
|stereo&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Very close to transparency (needs more testing). Most modern codecs competitive (AAC-LC, Vorbis, MP3)&lt;br /&gt;
|Music storage &amp;amp; streaming. Future download music sales.&lt;br /&gt;
|-&lt;br /&gt;
!160 to 192 kbps&lt;br /&gt;
|stereo&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Transparent with very low chance of artifacts (a few killer samples still detectable). Most old &amp;amp; new lossy codecs competitive.&lt;br /&gt;
|Music storage &amp;amp; streaming, dedicated limited-bandwidth audio links (e.g. wireless, [http://en.wikipedia.org/wiki/Bluetooth_profile#Advanced_Audio_Distribution_Profile_.28A2DP.29 A2DP-bluetooth] type links). &lt;br /&gt;
|-&lt;br /&gt;
!510 kbps&lt;br /&gt;
|stereo&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Maximum possible stereo bitrate target (actual rate often less than 510 for default frame size). Most old and new lossy codecs competitive, plus near-lossless [[lossyWAV]] and [[WavPack | WavPack lossy]]&lt;br /&gt;
|Music storage, dedicated limited-bitrate audio links (e.g. wireless, minimum latency high quality audio. LossyWAV and WavPack lossy are very competitive for storage, and WavPack lossy &amp;lt;code&amp;gt;--blocksize=256&amp;lt;/code&amp;gt; may be competitive with minimum latency mode also.&lt;br /&gt;
|-&lt;br /&gt;
!&amp;gt;510 kbps&lt;br /&gt;
| &amp;amp;mdash;&lt;br /&gt;
| &amp;amp;mdash;&lt;br /&gt;
| &amp;amp;mdash;&lt;br /&gt;
|Above Opus bitrate range allowed for stereo sources&lt;br /&gt;
|Settle for 510&amp;amp;nbsp;kbps or use [[lossless]], [[lossyWAV]], [[WavPack | WavPack lossy]] or lossy transform/subband codecs like [[Vorbis]], [[Musepack]] at very high settings.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Lower latency versus quality/bitrate trade-off===&lt;br /&gt;
====Packet overhead in interactive applications====&lt;br /&gt;
For interactive use on the Internet or other packet-based networks, total bandwidth used will be subject to packet overhead. The more packet headers that are transmitted every second, the greater will be the overhead that is required. For this reason, Opus, while defaulting to 20&amp;amp;nbsp;ms frames, supports 60&amp;amp;nbsp;ms frames to reduce overhead when transporting low-bitrate SILK frames at the expense of greater latency, which may still be acceptable for speech, and also supports 10&amp;amp;nbsp;ms SILK frames to reduce latency somewhat at the expense of packet overhead.&lt;br /&gt;
&lt;br /&gt;
In the CELT layer, which tends to operate at higher bitrates than SILK, 20&amp;amp;nbsp;ms frames are the default, but frames of 10&amp;amp;nbsp;ms, 5&amp;amp;nbsp;ms and 2.5&amp;amp;nbsp;ms are also possible, which directly increases the frame overhead by transmitting more packets per second to achieve lower latency. In addition, as we&#039;ll see below it also reduces the quality/bitrate tradeoff of the CELT layer itself.&lt;br /&gt;
&lt;br /&gt;
You probably do not want to use a frame size lower than 10&amp;amp;nbsp;ms in applications containing speech, as doing so turns off SILK. The &amp;quot;lowdelay&amp;quot; application switch (available in FFmpeg and the raw library) turns off SILK to cut out 4&amp;amp;nbsp;ms of synchronization delay, but a frame size of 10&amp;amp;nbsp;ms achieves more delay reduction compared to default without sacrificing SILK.&lt;br /&gt;
&lt;br /&gt;
None of the bitrates mentioned in this article account for the packet overhead.&lt;br /&gt;
&lt;br /&gt;
====CELT layer latency versus quality/bitrate trade-off====&lt;br /&gt;
Unlike the SILK layer, which works on fixed 10&amp;amp;nbsp;ms blocks, 1, 2 or 6 of which can be combined into an Opus frame, the CELT layer is able to modify the encoding block lengths available to enable its use with shorter frames.&lt;br /&gt;
&lt;br /&gt;
When the CELT layer uses 10&amp;amp;nbsp;ms, 5&amp;amp;nbsp;ms and 2.5&amp;amp;nbsp;ms frames instead of the default 20&amp;amp;nbsp;ms, it must use smaller transform block sizes to achieve this, thereby reducing frequency resolution in the MDCT compared to the default transform window, thus reducing encoding efficiency for tonal signals. To obtain the same frequency precision for a sound divided into shorter transform windows, improved amplitude precision is necessary, resulting in increased bitrate to obtain the same perceptual quality (or conversely lower quality at the same bitrate).&lt;br /&gt;
&lt;br /&gt;
These reduced-latency modes remain efficient for transient signals, which use short blocks anyway.&lt;br /&gt;
&lt;br /&gt;
In all modes, the algorithmic delay consists of the frame size plus an additional 2.5&amp;amp;nbsp;ms delay. The CELT layer requires 2.5&amp;amp;nbsp;ms for MDCT window overlap.&lt;br /&gt;
&lt;br /&gt;
Xiph.org used matched [[PEAQ]] scores (approximate perceptual quality assessment made in software) for the CELT0.10 codec that was used as the basis of the CELT layer in the Opus reference release, which indicate the following [http://people.xiph.org/~xiphmont/demo/celt/demo.html#demo approximate equivalent settings] for stereo music.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Frame size&lt;br /&gt;
!Algorithmic delay&lt;br /&gt;
!Bitrate to match 64kbps@22.5ms delay&lt;br /&gt;
!fractional bitrate increase&lt;br /&gt;
|-&lt;br /&gt;
!20 ms&lt;br /&gt;
|22.5 ms&lt;br /&gt;
|64.0 kbps&lt;br /&gt;
| +0.0 %&lt;br /&gt;
|-&lt;br /&gt;
!10 ms&lt;br /&gt;
|12.5 ms&lt;br /&gt;
|70.4 kbps&lt;br /&gt;
| +10.0 %&lt;br /&gt;
|-&lt;br /&gt;
!5 ms&lt;br /&gt;
|7.5 ms&lt;br /&gt;
|84.8 kbps&lt;br /&gt;
| +32.5 %&lt;br /&gt;
|-&lt;br /&gt;
!2.5 ms&lt;br /&gt;
|5.0 ms&lt;br /&gt;
|112.0 kbps&lt;br /&gt;
| +75.0 %&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
N.B. This table is useful for interactive streaming only. For music storage &amp;amp; delayed playback or non-interactive streaming, latency reduction is not important and the default 20&amp;amp;nbsp;ms frame size is preferable.&lt;br /&gt;
&lt;br /&gt;
== Implementations ==&lt;br /&gt;
&lt;br /&gt;
The format and algorithms are openly documented and the reference implementation is published as free software. The reference implementation (Opus Audio Tools, opus-tools), consisting of separate encoders and decoders, is published under the terms of a BSD-like license. It is written in C programming language and can be compiled for hardware architectures with or without floating point unit. The accompanying diagnostic tool opusinfo reports detailed technical information about Opus files, including information on the standard compliance of the bitstream format. It is based on ogginfo from the vorbis-tools and therefore, unlike the encoder and decoder, available under the terms of version 2 of the GPL.&lt;br /&gt;
&lt;br /&gt;
=== Reference implementation (libopus + binaries) ===&lt;br /&gt;
The commandline tools of the reference version are available pre-compiled for the most popular operating systems at [http://opus-codec.org/downloads opus-codec.org] and [https://ftp.mozilla.org/pub/mozilla.org/opus/ Mozilla&#039;s ftp server], plus in the foobar2000 free encoders pack and some alternative compiles through the hydrogenaud.io opus forum. The libopus commandline tools include encoder &amp;lt;code&amp;gt;opusenc&amp;lt;/code&amp;gt;, decoder &amp;lt;code&amp;gt;opusdec&amp;lt;/code&amp;gt;, and with a different license, the &amp;lt;code&amp;gt;opusinfo&amp;lt;/code&amp;gt; opus stream &amp;amp; metadata analyzer.&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;latest stable release&#039;&#039;&#039; is recommended for general use and as of mid 2014 is considered competitive with or superior to the best alternative speech or general music encoders at most supported bitrates.&lt;br /&gt;
&lt;br /&gt;
==== libopus v1.0 ====&lt;br /&gt;
Released 11 Sep 2012 when RFC6716 was standardized but mostly fully developed by late 2011.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Stable, well-tuned&#039;&#039;&#039; &amp;lt;code&amp;gt;opusenc&amp;lt;/code&amp;gt; reference encoder as included in RFC documentation.&lt;br /&gt;
&lt;br /&gt;
CELT layer closely related to CELT 0.10 implements Constrained VBR mode by default (bitrate boost used mainly for transients), plus true CBR.&lt;br /&gt;
&lt;br /&gt;
==== libopus v1.1 ==== &lt;br /&gt;
&lt;br /&gt;
The alpha source code released 21 Dec 2012 for testing &amp;amp; user feedback and following a beta release and testing, the stable 1.1 version was released on 5 December 2013, considered well tested enough for general release.&amp;lt;ref&amp;gt;https://people.xiph.org/~xiphmont/demo/opus/demo3.shtml&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
CELT layer [http://jmspeex.livejournal.com/11737.html quality improvements] introduced to provide &#039;&#039;&#039;unconstrained VBR&#039;&#039;&#039; include a rate boost not just for transients but now for highly tonal signals too and rate reduction when stereo image is narrow. There&#039;s also a rewrite of its &#039;&#039;&#039;transient detection&#039;&#039;&#039; code and &#039;&#039;&#039;time-frequency analysis&#039;&#039;&#039; code, and rewritten &#039;&#039;&#039;dynamic allocation&#039;&#039;&#039; code (HF/LF tilt and Band Boost) to allow more aggressive changes from the typical static allocation when warranted.&lt;br /&gt;
&lt;br /&gt;
There are many minor improvements to &#039;&#039;&#039;speech quality&#039;&#039;&#039; in both SILK and CELT layers.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;DC-rejection&#039;&#039;&#039; below 3 Hz also aids quality if inaudible DC offset is present with no effect on deep bass notes.&lt;br /&gt;
*&#039;&#039;&#039;Automatic speech/music detection&#039;&#039;&#039; is introduced to optimize encoding mode choices, especially near the bitrate target range (presumably around 24–40&amp;amp;nbsp;kbps) where the encoder may perform best with SILK, hybrid or CELT depending on content type. Below that range SILK performs best for both music &amp;amp; speech, and above it CELT performs best for speech &amp;amp; music. The detection, without look-ahead is not perfect but usually is undecided in audio where either mode will work well.&lt;br /&gt;
*&#039;&#039;&#039;Automatic bandwidth detection&#039;&#039;&#039; is also introduced to save wasted bits allocated to absent frequencies.&lt;br /&gt;
*&#039;&#039;&#039;Surround sound improvements&#039;&#039;&#039; were introduced since the beta release with considerable advances in coding efficiency, bitrate allocation and quality.&lt;br /&gt;
&lt;br /&gt;
A new &#039;&#039;&#039;temporal VBR&#039;&#039;&#039; feature is added. For reasons not explained by classic psychoacoustics, it appears that giving more bits to loud frames (stealing from quiet frames) makes the result substantially better on listening tests. This feature is not tunable: it always affects VBR calculation at low bitrates, gradually becoming weaker at higher bitrates, until it turns off completely at 68&amp;amp;nbsp;kbps.&lt;br /&gt;
&lt;br /&gt;
==== libopus v1.1.3 ==== &lt;br /&gt;
Released July 15th, 2016. This version contains:&lt;br /&gt;
&lt;br /&gt;
*Neon optimizations improving performance on ARMv7 and ARMv8 by up to 15%&lt;br /&gt;
*Fixes some issues with 16-bit platforms (e.g. TI C55x)&lt;br /&gt;
*Fixes to comfort noise generation (CNG)&lt;br /&gt;
*Documenting that PLC packets can also be 2 bytes&lt;br /&gt;
*Includes experimental ambisonics work (&amp;lt;code&amp;gt;--enable-ambisonics&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
==== libopus v1.2.1 ==== &lt;br /&gt;
Released June 26th, 2017. This version contains:&lt;br /&gt;
&lt;br /&gt;
*Speech quality improvements especially in the 12–20&amp;amp;nbsp;kbit/s range&lt;br /&gt;
*Improved VBR encoding for hybrid mode&lt;br /&gt;
*More aggressive use of wider speech bandwidth, including fullband speech starting at 14&amp;amp;nbsp;kbit/s&lt;br /&gt;
*Music quality improvements in the 32–48&amp;amp;nbsp;kbit/s range&lt;br /&gt;
*Generic and SSE CELT optimizations&lt;br /&gt;
*Support for directly encoding packets up to 120&amp;amp;nbsp;ms&lt;br /&gt;
*DTX support for CELT mode&lt;br /&gt;
*SILK CBR improvements&lt;br /&gt;
*Support for all of the fixes in draft-ietf-codec-opus-update-06 (the mono downmix and the folding fixes need &amp;lt;code&amp;gt;--enable-update-draft&amp;lt;/code&amp;gt;)&lt;br /&gt;
*Many bug fixes, including integer wrap-arounds discovered through fuzzing (no security implications)&lt;br /&gt;
&lt;br /&gt;
==== libopus v1.3 ====&lt;br /&gt;
Released on October 18th, 2018. This version contains:&lt;br /&gt;
&lt;br /&gt;
* Improvements to voice activity detection (VAD) and speech/music classification using a recurrent neural network (RNN)&lt;br /&gt;
* Support for ambisonics coding using channel mapping families 2 and 3&lt;br /&gt;
* Improvements to stereo speech coding at low bitrate&lt;br /&gt;
* Using wideband encoding down to 9&amp;amp;nbsp;kb/s&lt;br /&gt;
* Making it possible to use SILK down to bitrates around 5&amp;amp;nbsp;kb/s&lt;br /&gt;
* Minor quality improvement on tones&lt;br /&gt;
* Enabling the spec fixes in &amp;lt;nowiki&amp;gt;RFC 8251&amp;lt;/nowiki&amp;gt; by default&lt;br /&gt;
* Security/hardening improvements&lt;br /&gt;
* Fixes to the CELT PLC&lt;br /&gt;
* Bandwidth detection fixes&lt;br /&gt;
&lt;br /&gt;
==== libopus v1.3.1 ====&lt;br /&gt;
Released on April 12th, 2019. This version contains:&lt;br /&gt;
&lt;br /&gt;
* Fixes to x87 builds&lt;br /&gt;
* A new OPUS_GET_IN_DTX query to know if the encoder is in DTX mode (last frame was either a comfort noise frame or not encoded at all)&lt;br /&gt;
* A new (and still experimental) CMake-based build system that is eventually meant to replace the VS2015 build system (the autotools one will stay)&lt;br /&gt;
&lt;br /&gt;
==== libopus v1.4 ====&lt;br /&gt;
Released on April 20th, 2023. This version contains:&lt;br /&gt;
&lt;br /&gt;
* Improved tuning of the Opus in-band FEC (LBRR). See the issue for details&lt;br /&gt;
* Added a OPUS_SET_INBAND_FEC(2) option that turns on FEC, but does not force SILK mode (FEC will be disabled in CELT mode)&lt;br /&gt;
* Improved tuning and various fixes to DTX&lt;br /&gt;
* Added Meson support, improved CMake support In addition to the improvements above, this release includes many minor bug fixes.&lt;br /&gt;
&lt;br /&gt;
=== Other implementations ===&lt;br /&gt;
&lt;br /&gt;
==== Concentus ====&lt;br /&gt;
&lt;br /&gt;
The libopus reference library (fixed-point variant) has successfully been ported to both &#039;&#039;&#039;C#&#039;&#039;&#039; and &#039;&#039;&#039;Java&#039;&#039;&#039;, as part of a project called &#039;&#039;&#039;Concentus&#039;&#039;&#039;. The aim of the project is specifically to target cross-platform applications where native C interop is relatively difficult. The code is available on [https://github.com/lostromb/concentus Github] and distributed via standard package managers.&lt;br /&gt;
&lt;br /&gt;
==== Emscripten ports ====&lt;br /&gt;
&lt;br /&gt;
At least one port of reference opus in Javascript has been made using the automated tool [https://developer.mozilla.org/en-US/docs/Mozilla/Projects/Emscripten emscripten]. See [https://blog.rillke.com/opusenc.js/ here], [https://github.com/kazuki/opus.js-sample here] and [https://github.com/audiocogs/opus.js here].&lt;br /&gt;
&lt;br /&gt;
==== ffmpeg ====&lt;br /&gt;
FFmpeg has a native [https://ffmpeg.org/ffmpeg-codecs.html#opus &amp;quot;opus&amp;quot;] codec. It is of lower quality than the reference libopus and only does CELT coding. However, it is still good for the ecosystem to have a completely independent implementation.&lt;br /&gt;
&lt;br /&gt;
== Hardware &amp;amp; Software Support ==&lt;br /&gt;
&lt;br /&gt;
Much of this section is based heavily on the Jan 12th 2013 version of the &#039;&#039;&#039;Support&#039;&#039;&#039; section of the [http://en.wikipedia.org/wiki/Opus_%28audio_format%29 Wikipedia article], which is more likely to be kept updated and to provide links to further information about the supporting platforms.&lt;br /&gt;
&lt;br /&gt;
=== VoIP software ===&lt;br /&gt;
* The open source virtual PBX Freeswitch supports Opus transcoding.&lt;br /&gt;
* The voice-chat software Mumble supports Opus as its main codec.&lt;br /&gt;
* SIP softphones Phoner and PhonerLite support Opus&lt;br /&gt;
* The SIP and IAX2 client SFLphone is being fitted with Opus support.&lt;br /&gt;
* Integration of Opus into the Skype client is finished, although no version with Opus support has yet been published.&lt;br /&gt;
* TrueConf video conferencing solutions support Opus.&lt;br /&gt;
* Opus support is planned for Jitsi 2.0, together with VP8 video.&lt;br /&gt;
* Empathy may use any format supported in GStreamer, including Opus.&lt;br /&gt;
* Line2 has replaced their current codec with Opus. Their iOS app will be the first to be released with the Opus. The Android app will follow later.&lt;br /&gt;
* CSipSimple supports Opus, Codec2, G.726 and G.722.1 with an additional plug-in.&lt;br /&gt;
* The voice-chat software TeamSpeak 3 supports Opus for voice and music in pre-release server 3.0.7-pre2 and beta client version 3.0.10.&lt;br /&gt;
* The proprietary instant messenger service Discord uses Opus audio for all voice calls and video calls, regardless of platform.&lt;br /&gt;
&lt;br /&gt;
=== Web frameworks and browsers ===&lt;br /&gt;
* Opus support is mandatory for WebRTC implementations.&lt;br /&gt;
* Mozilla supports Opus beginning with version 15 of Firefox and Thunderbird, plus Seamonkey, which uses a shared codebase.&lt;br /&gt;
* Depending on the backend in use, Opera supports inline playback of embedded Opus files. Official support for Opus and WebRTC are on the development roadmap.&lt;br /&gt;
* Chromium and Google Chrome have audio support as of version 33.&lt;br /&gt;
* Apple&#039;s Safari browser now supports Opus as of iOS 11 and macOS 10.13 High Sierra.&lt;br /&gt;
* Maxthon Cloud Browser&lt;br /&gt;
&lt;br /&gt;
=== Streaming audio ===&lt;br /&gt;
* Icecast. (examples: [http://dir.xiph.org/by_format/Opus Stream directory by format Opus], [http://smj.delfa.net/opus_64.m3u 64k]/[http://smj.delfa.net/opus_256.m3u 256k] [http://smj.delfa.net/ Smooth Jazz Opus Stream], [http://www.absoluteradio.co.uk/listen/labs.html Absolute Radio Opus Trial] 7 stations at 24,64,96 kbps, [http://icecast.ofdoom.com:8000/burst-opus.ogg Icecast Of Doom 96k]&lt;br /&gt;
* Krad Radio&lt;br /&gt;
* Liquidsoap&lt;br /&gt;
&lt;br /&gt;
=== Operating systems and desktop multimedia frameworks ===&lt;br /&gt;
* In Debian GNU/Linux the Opus development tools and supporting libraries can be installed from the preconfigured repositories in the next stable version (&amp;quot;wheezy&amp;quot;) that is expected to be released in early 2013.&lt;br /&gt;
* For Microsoft Windows, there are DirectShow filters supporting Opus, including DC-Bass Source Mod and the LAV Filters.&lt;br /&gt;
* In GStreamer the integration of Opus support is complete.&lt;br /&gt;
* FFmpeg supports decoding and encoding Opus via the external library libopus.&lt;br /&gt;
* Android 5.0 and above supports Opus natively if encapsulated in the Ogg container, but .opus filename extension is not recognized by Android, so the use of double filename extension .opus.ogg is recommended as a workaround to allow apps to recognize files as playable audio.&lt;br /&gt;
&lt;br /&gt;
=== Hardware support ===&lt;br /&gt;
* Support in [[Rockbox]] is available. This means hardware support for a series of portable media players (including some products from the iPod series by Apple and Sansa, iriver and Archos devices) and with &amp;quot;Rockbox as an Application&amp;quot; (RaaA) also on Android devices.&lt;br /&gt;
&lt;br /&gt;
=== Player software ===&lt;br /&gt;
&lt;br /&gt;
* Windows/Mac/Linux (Cross-Platform)&lt;br /&gt;
*# [[VLC]] (media player supports Opus as of version 2.0.4&lt;br /&gt;
*# [[Amarok]] 2.8 has transcoding support for Opus codec if ffmpeg is compiled with support for the libopus library &amp;amp; support for playback of Opus encoded files if Amarok is compiled against TagLib (newer than V1.8)&lt;br /&gt;
*# Clementine has Opus support&lt;br /&gt;
*# Audacious player&lt;br /&gt;
*# [[MPD]] as of version 0.18 if compiled against libopus (supports both encoding for http streams and decoding)&lt;br /&gt;
* Windows Exclusive&lt;br /&gt;
*# AIMP supports Opus natively as of version 3.20 build 1125 beta 1&lt;br /&gt;
*# [[foobar2000]] supports Opus natively as of v1.1.14 beta 1&lt;br /&gt;
*# Mpxplay supports Opus (using a decoder DLL) as of v1.60 alpha 2&lt;br /&gt;
*# [[Winamp]] supports Opus using a [http://forums.winamp.com/showthread.php?p=2925154#post2925154 3rd party plug-in]&lt;br /&gt;
*# MPC-HC&lt;br /&gt;
*# Resonic Player/Pro supports Opus natively as of version 0.2.2&lt;br /&gt;
* iOS/Android (Cross-Platform)&lt;br /&gt;
*# Capriccio [https://itunes.apple.com/us/app/capriccio-free-ultimate-music/id434829018?mt=8 iOS]/[https://play.google.com/store/apps/details?id=me.ideariboso.capriccio Android]&lt;br /&gt;
*# foobar2000 [https://itunes.apple.com/us/app/foobar2000/id1072807669?mt=8 iOS]/[https://play.google.com/store/apps/details?id=com.foobar2000.foobar2000&amp;amp;hl=en Android]&lt;br /&gt;
* Android Exclusive&lt;br /&gt;
*# [https://play.google.com/store/apps/details?id=in.krosbits.musicolet Musicolet Music Player]&lt;br /&gt;
*# [http://gonemadmusicplayer.blogspot.com/ GoneMAD Music Player]&lt;br /&gt;
*# [http://neutronmp.com/ Neutron Music Player]&lt;br /&gt;
*# [http://www.videolan.org/vlc/download-android.html VLC Media Player for Android]&lt;br /&gt;
*# [https://play.google.com/store/apps/details?id=ru.recoilme.freeamp FreeMP]&lt;br /&gt;
*# [https://play.google.com/store/apps/details?id=net.mderezynski.youki3 Youki]&lt;br /&gt;
*# [https://play.google.com/store/apps/details?id=com.aimp.player AIMP for Android]&lt;br /&gt;
*# [https://play.google.com/store/apps/details?id=com.acmeandroid.listen Listen Audiobook Player]&lt;br /&gt;
*# [https://play.google.com/store/apps/details?id=com.mxtech.videoplayer.ad MX Player]&lt;br /&gt;
*# [https://play.google.com/store/apps/details?id=org.tomahawk.tomahawk_android Tomahawk Player Beta]&lt;br /&gt;
*# [https://play.google.com/store/apps/details?id=com.maxmpz.audioplayer&amp;amp;hl=en Poweramp Music Player]&lt;br /&gt;
&lt;br /&gt;
=== Other software ===&lt;br /&gt;
* CDBurnerXP&lt;br /&gt;
* MediaCoder&lt;br /&gt;
* Report-IT&lt;br /&gt;
* [[MP3tag|MP3tag]]&lt;br /&gt;
* [https://moisescardona.me/opus-gui/ Opus GUI]&lt;br /&gt;
* [http://www.xdlab.ru/en/ TagScanner]&lt;br /&gt;
* [http://www.xmedia-recode.de/ XMedia Recode]&lt;br /&gt;
&lt;br /&gt;
== References &amp;amp; Notes ==&lt;br /&gt;
&lt;br /&gt;
*{{note|homepage|a}}[http://opus-codec.org/ opus-codec.org homepage]&lt;br /&gt;
*{{note|FAQ|b}}[http://wiki.xiph.org/OpusFAQ Opus FAQ]&lt;br /&gt;
*{{note|RFC|c}}[http://tools.ietf.org/html/rfc6716 IETF RFC 6716]&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
[[Category:Codecs]]&lt;br /&gt;
[[Category:Lossy]]&lt;br /&gt;
[[Category:Encoder/Decoder]]&lt;/div&gt;</summary>
		<author><name>Artoria2e5</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=Opus&amp;diff=37273</id>
		<title>Opus</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=Opus&amp;diff=37273"/>
		<updated>2023-08-11T06:23:31Z</updated>

		<summary type="html">&lt;p&gt;Artoria2e5: SILK CVBR discussion&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Software Infobox&lt;br /&gt;
| name = Opus&lt;br /&gt;
| logo = [[Image:opus-logo.png|250px|Official Opus logo]]&lt;br /&gt;
| screenshot =&lt;br /&gt;
| caption = Opus Interactive Audio Codec&lt;br /&gt;
| maintainer = [http://xiph.org/ Xiph.Org Foundation]&lt;br /&gt;
| stable_release = 1.4&lt;br /&gt;
| operating_system = Windows, Mac OS/X, Linux/BSD&lt;br /&gt;
| use = Encoder/Decoder&lt;br /&gt;
| license = 3-clause BSD license&lt;br /&gt;
| website = [http://www.opus-codec.org/ opus-codec.org]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Opus&#039;&#039;&#039; is a [[lossy]] audio compression format developed by the Internet Engineering Task Force (IETF) designed to be suitable for interactive real-time applications over the Internet,{{ref|homepage|a}} including music as well as speech, yet it is also very competitive for use as a storage and playback format, being a [https://web.archive.org/web/20200130083553/http://people.xiph.org/~greg/opus/ha2011/ class leader at around 64 kbps] and [http://listening-test.coresv.net/results.htm also at 96 kbps]. As an open format standardised through [http://tools.ietf.org/html/rfc6716 Request for Comments (RFC) 6716],{{ref|RFC|c}} a high quality reference implementation is provided under the 3-clause BSD license{{ref|homepage|a}} which compiles and runs on the vast majority of general purpose and embedded (fixed point) processors. Many Software patents which cover Opus are licensed under royalty-free terms.{{ref|FAQ|b}}  Opus is also a Mandatory To Implement (MTI) codec for the upcoming WebRTC (Web Real Time Communication) specification of the World Wide Web Consortium (W3C).&lt;br /&gt;
&lt;br /&gt;
Opus incorporates technology from two codecs, the speech-oriented SILK codec developed by Skype and the multi-purpose low-latency CELT codec developed by Xiph.org with significant changes to each to ensure they can work together.{{ref|RFC|c}} Opus can seamlessly transition among high and low bitrates, using a linear prediction codec (the SILK layer) at lower bitrates and a lapped transform codec (the CELT layer) at higher bitrates, as well as a hybrid of the two for a short overlap in which SILK encodes the 0–8&amp;amp;nbsp;kHz spectrum and the CELT layer encodes only the frequencies above 8kHz.{{ref|RFC|c}} Opus has very low algorithmic delay (typ 22.5&amp;amp;nbsp;ms) compared to popular music formats such as [[MP3]], [[Vorbis |Ogg Vorbis]], [[AAC | LC-AAC and HE-AAC]] (all over 100&amp;amp;nbsp;ms), yet performs very competitively with them in terms of quality per bitrate, making it comparably viable as a storage &amp;amp; playback format. Also unlike Vorbis, Opus does not require the definition of large codebooks for each individual file, making it also preferable for short clips of audio, such as those often used by game developers, a field where patent-free Vorbis is commonly used.{{ref|RFC|c}}&lt;br /&gt;
&lt;br /&gt;
Considerably more details of the history and potential applications for Opus are included in the &#039;&#039;Wikipedia&#039;&#039; page for &#039;&#039;&#039;[http://en.wikipedia.org/wiki/Opus_%28audio_format%29 Opus (audio format)]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Characteristics==&lt;br /&gt;
Opus supports bitrates from 6&amp;amp;nbsp;kbps to 510&amp;amp;nbsp;kbps for typical stereo audio sources (and a maximum of around 255 kbps per channel for multichannel audio), with the &#039;sweet spot&#039; for music and general audio around 30&amp;amp;nbsp;kbps (mono) and 40–100&amp;amp;nbsp;kbps (stereo). It is intrinsically [[VBR | variable bitrate]], though constrained VBR and [[CBR | constant bitrate]] modes are possible where required. In the case of the reference release, libopus, the target bitrate is calibrated against the internal constant quality targets so that over a typical music collection, something very close to the target bitrate will be achieved. This bitrate-calibrated approach differs from most VBR encoders (e.g. LAME, helix mp3, qaac, Nero aacenc, Ogg Vorbis, Musepack) where a setting on some &#039;constant quality&#039; scale (which differs between encoders) is used and the bitrate will fall where it may. Improved future versions can be expected to offer improved quality at the same setting. Independent implementations may adopt a different approach.&lt;br /&gt;
&lt;br /&gt;
Opus is able to seamlessly adapt its mode of operation without glitches or sound interruption (an illustrative demonstration of [http://opus-codec.org/examples/#gauge bitrate scalability] is on the Opus Examples page), which can be particularly useful for mixed-content audio or varying network conditions, making the unified Opus codec superior to a suite of different codecs that might otherwise cover the same range of bitrate and quality settings and would require out-of-band signalling to instigate codec switching. The switching includes the choice of mono, stereo and other channel mappings, the use of the speech-oriented SILK layer, the general-purpose CELT layer or the hybrid of both, and the use of different audio bandwidths (4, 6, 8, 12, or 20&amp;amp;nbsp;kHz) as well as the quality adjustments within the same operating mode that are available in most VBR-capable codecs.&lt;br /&gt;
&lt;br /&gt;
Of importance mainly to interactive uses, but potentially useful in time-delayed audio streaming also, Opus includes packet loss concealment (PLC) in all modes and, in the speech-oriented modes where the SILK layer is active it also supports Forward Error Correction (FEC) where the expected rate of packet loss can be indicated to the encoder by the user or by application software and critical frames (e.g. consonant sounds) can be retransmitted at low bitrate to preserve intelligibility.&lt;br /&gt;
&lt;br /&gt;
For music and general audio, the CELT layer of Opus builds on knowledge gained during xiph.org&#039;s Vorbis development and ensures as a primary goal that the total energy in each spectral band is preserved while requiring only a modest bitrate overhead to achieve this, thereby eliminating a lot of bitrate-starvation artifacts such as &#039;birdies&#039; that are common in low-bitrate MP3, especially during transients, applause and cymbal sounds. This technique likewise increases coding efficiency at bitrates targetting transparent music reproduction. Short blocks (2.5&amp;amp;nbsp;ms) are also possible for efficient transient handling. Short blocks can also be used exclusively, if very low algorithmic delay (5.0&amp;amp;nbsp;ms) is required to enable very low-latency interative audio (e.g. live networked music performances such as remote jam sessions), though greater bitrate is then required to maintain the same quality (illustrated in [http://people.xiph.org/~xiphmont/demo/celt/demo.html#demo Monty&#039;s CELT demo page] under Constant PEAQ value, varying latency). CELT uses a number of additional techniques and provides additional advanced tools to enable encoder tuning.&lt;br /&gt;
&lt;br /&gt;
Opus natively supports [[gapless playback]] (though [[Gapless_playback#Poorly_designed_playback_systems | poor player design]] might itself induce interruptions during playback). Playback gain is also required, making some form of [[ReplayGain]] or [[ReplayGain_2.0_specification | similar]] volume control possible in any compliant player.&lt;br /&gt;
&lt;br /&gt;
==Bitrate performance==&lt;br /&gt;
For mono speech, Opus ranges from intelligible narrowband speech reproduction starting at 6&amp;amp;nbsp;kbps to medium-band, wideband and superwideband speech, reaching full-band speech by around 14&amp;amp;nbsp;kbps in encoder version 1.2 (was 21&amp;amp;nbsp;kbps in v1.1, 29&amp;amp;nbsp;kbps in v1.0). Above about 32&amp;amp;nbsp;kbps, the SILK layer is no longer used at all, as CELT alone gives superior quality.&lt;br /&gt;
&lt;br /&gt;
For music, the SILK modes are quite tolerable and better than CELT at very low bitrates. The hybrid mode is adopted as bitrate increases, extending bandwidth first to 12&amp;amp;nbsp;kHz (comparable with compact cassette) then to the full 20&amp;amp;nbsp;kHz and CELT then takes over. Assuming the source is stereo, the transition from mono to stereo typically happens between the transition from 12&amp;amp;nbsp;kHz to 20&amp;amp;nbsp;kHz. Encoder version 1.2 includes great improvements to music encoding in the 32–64&amp;amp;nbsp;kbps range, allowing full-band stereo at 32&amp;amp;nbsp;kbps and providing acceptable quality at 48&amp;amp;nbsp;kbps where artifacts are audible but rarely annoying. Version 1.3 is expected to further improve quality in this range.&lt;br /&gt;
&lt;br /&gt;
Multi-format stereo music listening tests have demonstrated the superiority of Opus at 64&amp;amp;nbsp;kbps and 96&amp;amp;nbsp;kbps compared to the best AAC-LC, HE-AAC and Ogg Vorbis encoders, and at 96&amp;amp;nbsp;kbps also to 128&amp;amp;nbsp;kbps MP3 encoded using LAME &amp;lt;code&amp;gt;-V 5&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Indicative bitrate and quality==&lt;br /&gt;
The tables below give illustrative, indicative quality guidance based on typical modes used internally by Opus and a range of listening tests.&lt;br /&gt;
&lt;br /&gt;
In encoder version 1.1 automatic detection of speech/music and bandwidth detection were introduced to improve mode decisions and VBR is less constrained, all with the aim of maximizing the quality/bitrate tradeoff, and these improvements are further enhanced in version 1.2 and 1.3. These tables are likely to require updates as the encoder is improved, especially in low-bitrate regions.&lt;br /&gt;
&lt;br /&gt;
===Speech encoding quality===&lt;br /&gt;
This table assumes a &#039;&#039;&#039;monophonic&#039;&#039;&#039; source sampled at CD quality or above (typ 48 kHz sampling rate) but mentions stereo compatibility for 40kbps+. The default 20ms frame size (22.5ms latency) is assumed. Note that the selection of &#039;&#039;VOIP&#039;&#039; mode will deliberately modify the sound with a High Pass Filter and emphasis of formants and harmonics to improve intelligibility of speech especially in noisy environments much as telephones do. &#039;&#039;Auto&#039;&#039; mode will not modify the sound prior to encoding so is usually better for high quality speech recordings or mixed speech and music.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Bitrate Target&lt;br /&gt;
!Bandwidth&lt;br /&gt;
!Typical Mode Used&lt;br /&gt;
!Speech Quality&lt;br /&gt;
!Use Cases / Competitive Codecs&lt;br /&gt;
|-&lt;br /&gt;
!Less than 5 kbps&lt;br /&gt;
| &amp;amp;mdash;&lt;br /&gt;
| &amp;amp;mdash;&lt;br /&gt;
| Bitrates lower than 6 kbps not supported by Opus (SILK disabled if forced to encode, which results in terrible speech quality)&lt;br /&gt;
| Try [https://en.wikipedia.org/wiki/Codec_2 Codec 2] for 0.45–3.2&amp;amp;nbsp;kbps mono speech or [[Wikipedia:Lyra (codec)|Lyra]] for 3.2&amp;amp;nbsp;kbps mono speech&lt;br /&gt;
|-&lt;br /&gt;
!6 kbps&lt;br /&gt;
|6 kHz medium-band&lt;br /&gt;
|SILK&lt;br /&gt;
|Fair, intelligible&lt;br /&gt;
|AMR-NB may be a little better, but higher latency &amp;amp; proprietary, [[Speex]] also competitive&lt;br /&gt;
|-&lt;br /&gt;
!8 kbps&lt;br /&gt;
|6 kHz medium-band&lt;br /&gt;
|SILK&lt;br /&gt;
|Close to telephone quality&lt;br /&gt;
|AMR-NB &amp;amp; AMR-WB similar quality, but higher latency &amp;amp; proprietary. [[Speex]] competitive.&lt;br /&gt;
|-&lt;br /&gt;
!12 kbps&lt;br /&gt;
|12 kHz super-wideband&lt;br /&gt;
|hybrid&lt;br /&gt;
|Medium bandwidth, better than telephone quality&lt;br /&gt;
|Similar quality to AMR-WB&lt;br /&gt;
|-&lt;br /&gt;
!16 kbps&lt;br /&gt;
|20 kHz&lt;br /&gt;
|hybrid/CELT&lt;br /&gt;
|Wideband speech quality&lt;br /&gt;
|Similar to/better than AMR-WB&lt;br /&gt;
|-&lt;br /&gt;
!24 kbps&lt;br /&gt;
|20 kHz&lt;br /&gt;
|hybrid/CELT&lt;br /&gt;
|Near transparent speech&lt;br /&gt;
|Better than AMR-WB. Podcasts/audiobooks/talk-radio.&lt;br /&gt;
|-&lt;br /&gt;
!32 kbps&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Essentially transparent speech plus moderately good stereo music&lt;br /&gt;
|Much better than AMR-WB. Podcasts/audiobooks/talk-radio.&lt;br /&gt;
|-&lt;br /&gt;
!40 kbps&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Essentially transparent mono or stereo speech, fairly good stereo music&lt;br /&gt;
|Stereo podcasts/audiobooks/talk radio with some music&lt;br /&gt;
|-&lt;br /&gt;
!48 kbps or more&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Essentially transparent mono or stereo speech, reasonable music&lt;br /&gt;
|Flexible general purpose modes to suit mixed music and speech&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
One major limitation of Opus at low bitrate is that SILK is inherently VBR: it accepts no constraints in CVBR, and if forced to do CBR the quality significantly degrades from bit-shaving. As a result, even though constrained VBR is designed such that a fixed-rate data link requires at most one frame of buffer to handle the variation in bit rate -- great news for communication links -- any use of SILK, even in hybrid mode, has the potential of breaking this intention. This makes Opus suboptimal for low-rate radio links: even though it works acceptably at low bitrate, radio links are fixed-rate require a predictable bit rate which Opus speech cannot adequately provide.&lt;br /&gt;
&lt;br /&gt;
===Music encoding quality===&lt;br /&gt;
This table assumes a &#039;&#039;&#039;stereophonic&#039;&#039;&#039; source sampled at CD quality or above (typ 48&amp;amp;nbsp;kHz sampling rate). Opus will automatically use mono at very low bitrates, though a certain amount of stereo encoding can still be used (content dependent) even when mono is specified as the typical stereo mode in the table below.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Bitrate target&lt;br /&gt;
!Stereo mode&lt;br /&gt;
!Bandwidth&lt;br /&gt;
!typ SILK/CELT use&lt;br /&gt;
!Music quality notes&lt;br /&gt;
!Use cases/notes/competitive codecs&lt;br /&gt;
|-&lt;br /&gt;
!6 kbps&lt;br /&gt;
|mono&lt;br /&gt;
|6 kHz&lt;br /&gt;
|SILK&lt;br /&gt;
|Poor, muffled sound but intelligible lyrics.&lt;br /&gt;
| &amp;amp;mdash;&lt;br /&gt;
|-&lt;br /&gt;
!8 kbps&lt;br /&gt;
|mono&lt;br /&gt;
|6 kHz&lt;br /&gt;
|SILK&lt;br /&gt;
|Poor, muffled but OK for bitrate&lt;br /&gt;
| &amp;amp;mdash;&lt;br /&gt;
|-&lt;br /&gt;
!14 to 16 kbps&lt;br /&gt;
|mono&lt;br /&gt;
|20 kHz&lt;br /&gt;
|hybrid/CELT&lt;br /&gt;
|Fairly poor but OK for bitrate&lt;br /&gt;
|Perhaps acceptable for incidental music&lt;br /&gt;
|-&lt;br /&gt;
!22 to 24 kbps&lt;br /&gt;
|mono&lt;br /&gt;
|20 kHz&lt;br /&gt;
|hybrid/CELT&lt;br /&gt;
|Fair but OK for bitrate&lt;br /&gt;
|OK for incidental music&lt;br /&gt;
|-&lt;br /&gt;
!32 to 40 kbps&lt;br /&gt;
|stereo&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Moderately good stereo, some artifacts, rarely nasty&lt;br /&gt;
|Stereo podcasts, audiobooks, very low bitrate music&lt;br /&gt;
|-&lt;br /&gt;
!48 kbps&lt;br /&gt;
|stereo&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Full bandwidth stereo music, nice sound, may have problems with cymbals&lt;br /&gt;
|Stereo podcasts, audiobooks, low bitrate music&lt;br /&gt;
|-&lt;br /&gt;
!64 kbps&lt;br /&gt;
|stereo&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Full bandwidth stereo music, nice sound, detectable differences to original (mostly &#039;not annoying&#039;)&lt;br /&gt;
|Music storage &amp;amp; streaming. Beat HE-AAC, Vorbis, MP3 in [https://web.archive.org/web/20200130083553/http://people.xiph.org/~greg/opus/ha2011/ listening test]&lt;br /&gt;
|-&lt;br /&gt;
!96 kbps&lt;br /&gt;
|stereo&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Full bandwidth stereo music, good quality approaching transparency&lt;br /&gt;
|Music storage &amp;amp; high quality streaming. Beat LC-AAC, Vorbis, MP3 in [http://listening-test.coresv.net/results.htm listening test]&lt;br /&gt;
|-&lt;br /&gt;
!112 kbps&lt;br /&gt;
|stereo&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Fairly close to transparency (needs more testing)&lt;br /&gt;
|Music storage &amp;amp; high quality streaming. Very low-latency stereo networked music performance/jam sessions at OK quality (see below table)&lt;br /&gt;
|-&lt;br /&gt;
!128 kbps&lt;br /&gt;
|stereo&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Very close to transparency (needs more testing). Most modern codecs competitive (AAC-LC, Vorbis, MP3)&lt;br /&gt;
|Music storage &amp;amp; streaming. Future download music sales.&lt;br /&gt;
|-&lt;br /&gt;
!160 to 192 kbps&lt;br /&gt;
|stereo&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Transparent with very low chance of artifacts (a few killer samples still detectable). Most old &amp;amp; new lossy codecs competitive.&lt;br /&gt;
|Music storage &amp;amp; streaming, dedicated limited-bandwidth audio links (e.g. wireless, [http://en.wikipedia.org/wiki/Bluetooth_profile#Advanced_Audio_Distribution_Profile_.28A2DP.29 A2DP-bluetooth] type links). &lt;br /&gt;
|-&lt;br /&gt;
!510 kbps&lt;br /&gt;
|stereo&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Maximum possible stereo bitrate target (actual rate often less than 510 for default frame size). Most old and new lossy codecs competitive, plus near-lossless [[lossyWAV]] and [[WavPack | WavPack lossy]]&lt;br /&gt;
|Music storage, dedicated limited-bitrate audio links (e.g. wireless, minimum latency high quality audio. LossyWAV and WavPack lossy are very competitive for storage, and WavPack lossy &amp;lt;code&amp;gt;--blocksize=256&amp;lt;/code&amp;gt; may be competitive with minimum latency mode also.&lt;br /&gt;
|-&lt;br /&gt;
!&amp;gt;510 kbps&lt;br /&gt;
| &amp;amp;mdash;&lt;br /&gt;
| &amp;amp;mdash;&lt;br /&gt;
| &amp;amp;mdash;&lt;br /&gt;
|Above Opus bitrate range allowed for stereo sources&lt;br /&gt;
|Settle for 510&amp;amp;nbsp;kbps or use [[lossless]], [[lossyWAV]], [[WavPack | WavPack lossy]] or lossy transform/subband codecs like [[Vorbis]], [[Musepack]] at very high settings.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Lower latency versus quality/bitrate trade-off===&lt;br /&gt;
====Packet overhead in interactive applications====&lt;br /&gt;
For interactive use on the Internet or other packet-based networks, total bandwidth used will be subject to packet overhead. The more packet headers that are transmitted every second, the greater will be the overhead that is required. For this reason, Opus, while defaulting to 20&amp;amp;nbsp;ms frames, supports 60&amp;amp;nbsp;ms frames to reduce overhead when transporting low-bitrate SILK frames at the expense of greater latency, which may still be acceptable for speech, and also supports 10&amp;amp;nbsp;ms SILK frames to reduce latency somewhat at the expense of packet overhead.&lt;br /&gt;
&lt;br /&gt;
In the CELT layer, which tends to operate at higher bitrates than SILK, 20&amp;amp;nbsp;ms frames are the default, but frames of 10&amp;amp;nbsp;ms, 5&amp;amp;nbsp;ms and 2.5&amp;amp;nbsp;ms are also possible, which directly increases the frame overhead by transmitting more packets per second to achieve lower latency. In addition, as we&#039;ll see below it also reduces the quality/bitrate tradeoff of the CELT layer itself.&lt;br /&gt;
&lt;br /&gt;
You probably do not want to use a frame size lower than 10&amp;amp;nbsp;ms in applications containing speech, as doing so turns off SILK. The &amp;quot;lowdelay&amp;quot; application switch (available in FFmpeg and the raw library) turns off SILK to cut out 4&amp;amp;nbsp;ms of synchronization delay, but a frame size of 10&amp;amp;nbsp;ms achieves more delay reduction compared to default without sacrificing SILK.&lt;br /&gt;
&lt;br /&gt;
None of the bitrates mentioned in this article account for the packet overhead.&lt;br /&gt;
&lt;br /&gt;
====CELT layer latency versus quality/bitrate trade-off====&lt;br /&gt;
Unlike the SILK layer, which works on fixed 10&amp;amp;nbsp;ms blocks, 1, 2 or 6 of which can be combined into an Opus frame, the CELT layer is able to modify the encoding block lengths available to enable its use with shorter frames.&lt;br /&gt;
&lt;br /&gt;
When the CELT layer uses 10&amp;amp;nbsp;ms, 5&amp;amp;nbsp;ms and 2.5&amp;amp;nbsp;ms frames instead of the default 20&amp;amp;nbsp;ms, it must use smaller transform block sizes to achieve this, thereby reducing frequency resolution in the MDCT compared to the default transform window, thus reducing encoding efficiency for tonal signals. To obtain the same frequency precision for a sound divided into shorter transform windows, improved amplitude precision is necessary, resulting in increased bitrate to obtain the same perceptual quality (or conversely lower quality at the same bitrate).&lt;br /&gt;
&lt;br /&gt;
These reduced-latency modes remain efficient for transient signals, which use short blocks anyway.&lt;br /&gt;
&lt;br /&gt;
In all modes, the algorithmic delay consists of the frame size plus an additional 2.5&amp;amp;nbsp;ms delay. The CELT layer requires 2.5&amp;amp;nbsp;ms for MDCT window overlap.&lt;br /&gt;
&lt;br /&gt;
Xiph.org used matched [[PEAQ]] scores (approximate perceptual quality assessment made in software) for the CELT0.10 codec that was used as the basis of the CELT layer in the Opus reference release, which indicate the following [http://people.xiph.org/~xiphmont/demo/celt/demo.html#demo approximate equivalent settings] for stereo music.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Frame size&lt;br /&gt;
!Algorithmic delay&lt;br /&gt;
!Bitrate to match 64kbps@22.5ms delay&lt;br /&gt;
!fractional bitrate increase&lt;br /&gt;
|-&lt;br /&gt;
!20 ms&lt;br /&gt;
|22.5 ms&lt;br /&gt;
|64.0 kbps&lt;br /&gt;
| +0.0 %&lt;br /&gt;
|-&lt;br /&gt;
!10 ms&lt;br /&gt;
|12.5 ms&lt;br /&gt;
|70.4 kbps&lt;br /&gt;
| +10.0 %&lt;br /&gt;
|-&lt;br /&gt;
!5 ms&lt;br /&gt;
|7.5 ms&lt;br /&gt;
|84.8 kbps&lt;br /&gt;
| +32.5 %&lt;br /&gt;
|-&lt;br /&gt;
!2.5 ms&lt;br /&gt;
|5.0 ms&lt;br /&gt;
|112.0 kbps&lt;br /&gt;
| +75.0 %&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
N.B. This table is useful for interactive streaming only. For music storage &amp;amp; delayed playback or non-interactive streaming, latency reduction is not important and the default 20&amp;amp;nbsp;ms frame size is preferable.&lt;br /&gt;
&lt;br /&gt;
== Implementations ==&lt;br /&gt;
&lt;br /&gt;
The format and algorithms are openly documented and the reference implementation is published as free software. The reference implementation (Opus Audio Tools, opus-tools), consisting of separate encoders and decoders, is published under the terms of a BSD-like license. It is written in C programming language and can be compiled for hardware architectures with or without floating point unit. The accompanying diagnostic tool opusinfo reports detailed technical information about Opus files, including information on the standard compliance of the bitstream format. It is based on ogginfo from the vorbis-tools and therefore, unlike the encoder and decoder, available under the terms of version 2 of the GPL.&lt;br /&gt;
&lt;br /&gt;
=== Reference implementation (libopus + binaries) ===&lt;br /&gt;
The commandline tools of the reference version are available pre-compiled for the most popular operating systems at [http://opus-codec.org/downloads opus-codec.org] and [https://ftp.mozilla.org/pub/mozilla.org/opus/ Mozilla&#039;s ftp server], plus in the foobar2000 free encoders pack and some alternative compiles through the hydrogenaud.io opus forum. The libopus commandline tools include encoder &amp;lt;code&amp;gt;opusenc&amp;lt;/code&amp;gt;, decoder &amp;lt;code&amp;gt;opusdec&amp;lt;/code&amp;gt;, and with a different license, the &amp;lt;code&amp;gt;opusinfo&amp;lt;/code&amp;gt; opus stream &amp;amp; metadata analyzer.&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;latest stable release&#039;&#039;&#039; is recommended for general use and as of mid 2014 is considered competitive with or superior to the best alternative speech or general music encoders at most supported bitrates.&lt;br /&gt;
&lt;br /&gt;
==== libopus v1.0 ====&lt;br /&gt;
Released 11 Sep 2012 when RFC6716 was standardized but mostly fully developed by late 2011.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Stable, well-tuned&#039;&#039;&#039; &amp;lt;code&amp;gt;opusenc&amp;lt;/code&amp;gt; reference encoder as included in RFC documentation.&lt;br /&gt;
&lt;br /&gt;
CELT layer closely related to CELT 0.10 implements Constrained VBR mode by default (bitrate boost used mainly for transients), plus true CBR.&lt;br /&gt;
&lt;br /&gt;
==== libopus v1.1 ==== &lt;br /&gt;
&lt;br /&gt;
The alpha source code released 21 Dec 2012 for testing &amp;amp; user feedback and following a beta release and testing, the stable 1.1 version was released on 5 December 2013, considered well tested enough for general release.&amp;lt;ref&amp;gt;https://people.xiph.org/~xiphmont/demo/opus/demo3.shtml&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
CELT layer [http://jmspeex.livejournal.com/11737.html quality improvements] introduced to provide &#039;&#039;&#039;unconstrained VBR&#039;&#039;&#039; include a rate boost not just for transients but now for highly tonal signals too and rate reduction when stereo image is narrow. There&#039;s also a rewrite of its &#039;&#039;&#039;transient detection&#039;&#039;&#039; code and &#039;&#039;&#039;time-frequency analysis&#039;&#039;&#039; code, and rewritten &#039;&#039;&#039;dynamic allocation&#039;&#039;&#039; code (HF/LF tilt and Band Boost) to allow more aggressive changes from the typical static allocation when warranted.&lt;br /&gt;
&lt;br /&gt;
There are many minor improvements to &#039;&#039;&#039;speech quality&#039;&#039;&#039; in both SILK and CELT layers.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;DC-rejection&#039;&#039;&#039; below 3 Hz also aids quality if inaudible DC offset is present with no effect on deep bass notes.&lt;br /&gt;
*&#039;&#039;&#039;Automatic speech/music detection&#039;&#039;&#039; is introduced to optimize encoding mode choices, especially near the bitrate target range (presumably around 24–40&amp;amp;nbsp;kbps) where the encoder may perform best with SILK, hybrid or CELT depending on content type. Below that range SILK performs best for both music &amp;amp; speech, and above it CELT performs best for speech &amp;amp; music. The detection, without look-ahead is not perfect but usually is undecided in audio where either mode will work well.&lt;br /&gt;
*&#039;&#039;&#039;Automatic bandwidth detection&#039;&#039;&#039; is also introduced to save wasted bits allocated to absent frequencies.&lt;br /&gt;
*&#039;&#039;&#039;Surround sound improvements&#039;&#039;&#039; were introduced since the beta release with considerable advances in coding efficiency, bitrate allocation and quality.&lt;br /&gt;
&lt;br /&gt;
A new &#039;&#039;&#039;temporal VBR&#039;&#039;&#039; feature is added. For reasons not explained by classic psychoacoustics, it appears that giving more bits to loud frames (stealing from quiet frames) makes the result substantially better on listening tests. This feature is not tunable: it always affects VBR calculation at low bitrates, gradually becoming weaker at higher bitrates, until it turns off completely at 68&amp;amp;nbsp;kbps.&lt;br /&gt;
&lt;br /&gt;
==== libopus v1.1.3 ==== &lt;br /&gt;
Released July 15th, 2016. This version contains:&lt;br /&gt;
&lt;br /&gt;
*Neon optimizations improving performance on ARMv7 and ARMv8 by up to 15%&lt;br /&gt;
*Fixes some issues with 16-bit platforms (e.g. TI C55x)&lt;br /&gt;
*Fixes to comfort noise generation (CNG)&lt;br /&gt;
*Documenting that PLC packets can also be 2 bytes&lt;br /&gt;
*Includes experimental ambisonics work (&amp;lt;code&amp;gt;--enable-ambisonics&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
==== libopus v1.2.1 ==== &lt;br /&gt;
Released June 26th, 2017. This version contains:&lt;br /&gt;
&lt;br /&gt;
*Speech quality improvements especially in the 12–20&amp;amp;nbsp;kbit/s range&lt;br /&gt;
*Improved VBR encoding for hybrid mode&lt;br /&gt;
*More aggressive use of wider speech bandwidth, including fullband speech starting at 14&amp;amp;nbsp;kbit/s&lt;br /&gt;
*Music quality improvements in the 32–48&amp;amp;nbsp;kbit/s range&lt;br /&gt;
*Generic and SSE CELT optimizations&lt;br /&gt;
*Support for directly encoding packets up to 120&amp;amp;nbsp;ms&lt;br /&gt;
*DTX support for CELT mode&lt;br /&gt;
*SILK CBR improvements&lt;br /&gt;
*Support for all of the fixes in draft-ietf-codec-opus-update-06 (the mono downmix and the folding fixes need &amp;lt;code&amp;gt;--enable-update-draft&amp;lt;/code&amp;gt;)&lt;br /&gt;
*Many bug fixes, including integer wrap-arounds discovered through fuzzing (no security implications)&lt;br /&gt;
&lt;br /&gt;
==== libopus v1.3 ====&lt;br /&gt;
Released on October 18th, 2018. This version contains:&lt;br /&gt;
&lt;br /&gt;
* Improvements to voice activity detection (VAD) and speech/music classification using a recurrent neural network (RNN)&lt;br /&gt;
* Support for ambisonics coding using channel mapping families 2 and 3&lt;br /&gt;
* Improvements to stereo speech coding at low bitrate&lt;br /&gt;
* Using wideband encoding down to 9&amp;amp;nbsp;kb/s&lt;br /&gt;
* Making it possible to use SILK down to bitrates around 5&amp;amp;nbsp;kb/s&lt;br /&gt;
* Minor quality improvement on tones&lt;br /&gt;
* Enabling the spec fixes in &amp;lt;nowiki&amp;gt;RFC 8251&amp;lt;/nowiki&amp;gt; by default&lt;br /&gt;
* Security/hardening improvements&lt;br /&gt;
* Fixes to the CELT PLC&lt;br /&gt;
* Bandwidth detection fixes&lt;br /&gt;
&lt;br /&gt;
==== libopus v1.3.1 ====&lt;br /&gt;
Released on April 12th, 2019. This version contains:&lt;br /&gt;
&lt;br /&gt;
* Fixes to x87 builds&lt;br /&gt;
* A new OPUS_GET_IN_DTX query to know if the encoder is in DTX mode (last frame was either a comfort noise frame or not encoded at all)&lt;br /&gt;
* A new (and still experimental) CMake-based build system that is eventually meant to replace the VS2015 build system (the autotools one will stay)&lt;br /&gt;
&lt;br /&gt;
==== libopus v1.4 ====&lt;br /&gt;
Released on April 20th, 2023. This version contains:&lt;br /&gt;
&lt;br /&gt;
* Improved tuning of the Opus in-band FEC (LBRR). See the issue for details&lt;br /&gt;
* Added a OPUS_SET_INBAND_FEC(2) option that turns on FEC, but does not force SILK mode (FEC will be disabled in CELT mode)&lt;br /&gt;
* Improved tuning and various fixes to DTX&lt;br /&gt;
* Added Meson support, improved CMake support In addition to the improvements above, this release includes many minor bug fixes.&lt;br /&gt;
&lt;br /&gt;
=== Other implementations ===&lt;br /&gt;
&lt;br /&gt;
==== Concentus ====&lt;br /&gt;
&lt;br /&gt;
The libopus reference library (fixed-point variant) has successfully been ported to both &#039;&#039;&#039;C#&#039;&#039;&#039; and &#039;&#039;&#039;Java&#039;&#039;&#039;, as part of a project called &#039;&#039;&#039;Concentus&#039;&#039;&#039;. The aim of the project is specifically to target cross-platform applications where native C interop is relatively difficult. The code is available on [https://github.com/lostromb/concentus Github] and distributed via standard package managers.&lt;br /&gt;
&lt;br /&gt;
==== Emscripten ports ====&lt;br /&gt;
&lt;br /&gt;
At least one port of reference opus in Javascript has been made using the automated tool [https://developer.mozilla.org/en-US/docs/Mozilla/Projects/Emscripten emscripten]. See [https://blog.rillke.com/opusenc.js/ here], [https://github.com/kazuki/opus.js-sample here] and [https://github.com/audiocogs/opus.js here].&lt;br /&gt;
&lt;br /&gt;
==== ffmpeg ====&lt;br /&gt;
FFmpeg has a native [https://ffmpeg.org/ffmpeg-codecs.html#opus &amp;quot;opus&amp;quot;] codec. It is of lower quality than the reference libopus and only does CELT coding. However, it is still good for the ecosystem to have a completely independent implementation.&lt;br /&gt;
&lt;br /&gt;
== Hardware &amp;amp; Software Support ==&lt;br /&gt;
&lt;br /&gt;
Much of this section is based heavily on the Jan 12th 2013 version of the &#039;&#039;&#039;Support&#039;&#039;&#039; section of the [http://en.wikipedia.org/wiki/Opus_%28audio_format%29 Wikipedia article], which is more likely to be kept updated and to provide links to further information about the supporting platforms.&lt;br /&gt;
&lt;br /&gt;
=== VoIP software ===&lt;br /&gt;
* The open source virtual PBX Freeswitch supports Opus transcoding.&lt;br /&gt;
* The voice-chat software Mumble supports Opus as its main codec.&lt;br /&gt;
* SIP softphones Phoner and PhonerLite support Opus&lt;br /&gt;
* The SIP and IAX2 client SFLphone is being fitted with Opus support.&lt;br /&gt;
* Integration of Opus into the Skype client is finished, although no version with Opus support has yet been published.&lt;br /&gt;
* TrueConf video conferencing solutions support Opus.&lt;br /&gt;
* Opus support is planned for Jitsi 2.0, together with VP8 video.&lt;br /&gt;
* Empathy may use any format supported in GStreamer, including Opus.&lt;br /&gt;
* Line2 has replaced their current codec with Opus. Their iOS app will be the first to be released with the Opus. The Android app will follow later.&lt;br /&gt;
* CSipSimple supports Opus, Codec2, G.726 and G.722.1 with an additional plug-in.&lt;br /&gt;
* The voice-chat software TeamSpeak 3 supports Opus for voice and music in pre-release server 3.0.7-pre2 and beta client version 3.0.10.&lt;br /&gt;
* The proprietary instant messenger service Discord uses Opus audio for all voice calls and video calls, regardless of platform.&lt;br /&gt;
&lt;br /&gt;
=== Web frameworks and browsers ===&lt;br /&gt;
* Opus support is mandatory for WebRTC implementations.&lt;br /&gt;
* Mozilla supports Opus beginning with version 15 of Firefox and Thunderbird, plus Seamonkey, which uses a shared codebase.&lt;br /&gt;
* Depending on the backend in use, Opera supports inline playback of embedded Opus files. Official support for Opus and WebRTC are on the development roadmap.&lt;br /&gt;
* Chromium and Google Chrome have audio support as of version 33.&lt;br /&gt;
* Apple&#039;s Safari browser now supports Opus as of iOS 11 and macOS 10.13 High Sierra.&lt;br /&gt;
* Maxthon Cloud Browser&lt;br /&gt;
&lt;br /&gt;
=== Streaming audio ===&lt;br /&gt;
* Icecast. (examples: [http://dir.xiph.org/by_format/Opus Stream directory by format Opus], [http://smj.delfa.net/opus_64.m3u 64k]/[http://smj.delfa.net/opus_256.m3u 256k] [http://smj.delfa.net/ Smooth Jazz Opus Stream], [http://www.absoluteradio.co.uk/listen/labs.html Absolute Radio Opus Trial] 7 stations at 24,64,96 kbps, [http://icecast.ofdoom.com:8000/burst-opus.ogg Icecast Of Doom 96k]&lt;br /&gt;
* Krad Radio&lt;br /&gt;
* Liquidsoap&lt;br /&gt;
&lt;br /&gt;
=== Operating systems and desktop multimedia frameworks ===&lt;br /&gt;
* In Debian GNU/Linux the Opus development tools and supporting libraries can be installed from the preconfigured repositories in the next stable version (&amp;quot;wheezy&amp;quot;) that is expected to be released in early 2013.&lt;br /&gt;
* For Microsoft Windows, there are DirectShow filters supporting Opus, including DC-Bass Source Mod and the LAV Filters.&lt;br /&gt;
* In GStreamer the integration of Opus support is complete.&lt;br /&gt;
* FFmpeg supports decoding and encoding Opus via the external library libopus.&lt;br /&gt;
* Android 5.0 and above supports Opus natively if encapsulated in the Ogg container, but .opus filename extension is not recognized by Android, so the use of double filename extension .opus.ogg is recommended as a workaround to allow apps to recognize files as playable audio.&lt;br /&gt;
&lt;br /&gt;
=== Hardware support ===&lt;br /&gt;
* Support in [[Rockbox]] is available. This means hardware support for a series of portable media players (including some products from the iPod series by Apple and Sansa, iriver and Archos devices) and with &amp;quot;Rockbox as an Application&amp;quot; (RaaA) also on Android devices.&lt;br /&gt;
&lt;br /&gt;
=== Player software ===&lt;br /&gt;
&lt;br /&gt;
* Windows/Mac/Linux (Cross-Platform)&lt;br /&gt;
*# [[VLC]] (media player supports Opus as of version 2.0.4&lt;br /&gt;
*# [[Amarok]] 2.8 has transcoding support for Opus codec if ffmpeg is compiled with support for the libopus library &amp;amp; support for playback of Opus encoded files if Amarok is compiled against TagLib (newer than V1.8)&lt;br /&gt;
*# Clementine has Opus support&lt;br /&gt;
*# Audacious player&lt;br /&gt;
*# [[MPD]] as of version 0.18 if compiled against libopus (supports both encoding for http streams and decoding)&lt;br /&gt;
* Windows Exclusive&lt;br /&gt;
*# AIMP supports Opus natively as of version 3.20 build 1125 beta 1&lt;br /&gt;
*# [[foobar2000]] supports Opus natively as of v1.1.14 beta 1&lt;br /&gt;
*# Mpxplay supports Opus (using a decoder DLL) as of v1.60 alpha 2&lt;br /&gt;
*# [[Winamp]] supports Opus using a [http://forums.winamp.com/showthread.php?p=2925154#post2925154 3rd party plug-in]&lt;br /&gt;
*# MPC-HC&lt;br /&gt;
*# Resonic Player/Pro supports Opus natively as of version 0.2.2&lt;br /&gt;
* iOS/Android (Cross-Platform)&lt;br /&gt;
*# Capriccio [https://itunes.apple.com/us/app/capriccio-free-ultimate-music/id434829018?mt=8 iOS]/[https://play.google.com/store/apps/details?id=me.ideariboso.capriccio Android]&lt;br /&gt;
*# foobar2000 [https://itunes.apple.com/us/app/foobar2000/id1072807669?mt=8 iOS]/[https://play.google.com/store/apps/details?id=com.foobar2000.foobar2000&amp;amp;hl=en Android]&lt;br /&gt;
* Android Exclusive&lt;br /&gt;
*# [https://play.google.com/store/apps/details?id=in.krosbits.musicolet Musicolet Music Player]&lt;br /&gt;
*# [http://gonemadmusicplayer.blogspot.com/ GoneMAD Music Player]&lt;br /&gt;
*# [http://neutronmp.com/ Neutron Music Player]&lt;br /&gt;
*# [http://www.videolan.org/vlc/download-android.html VLC Media Player for Android]&lt;br /&gt;
*# [https://play.google.com/store/apps/details?id=ru.recoilme.freeamp FreeMP]&lt;br /&gt;
*# [https://play.google.com/store/apps/details?id=net.mderezynski.youki3 Youki]&lt;br /&gt;
*# [https://play.google.com/store/apps/details?id=com.aimp.player AIMP for Android]&lt;br /&gt;
*# [https://play.google.com/store/apps/details?id=com.acmeandroid.listen Listen Audiobook Player]&lt;br /&gt;
*# [https://play.google.com/store/apps/details?id=com.mxtech.videoplayer.ad MX Player]&lt;br /&gt;
*# [https://play.google.com/store/apps/details?id=org.tomahawk.tomahawk_android Tomahawk Player Beta]&lt;br /&gt;
*# [https://play.google.com/store/apps/details?id=com.maxmpz.audioplayer&amp;amp;hl=en Poweramp Music Player]&lt;br /&gt;
&lt;br /&gt;
=== Other software ===&lt;br /&gt;
* CDBurnerXP&lt;br /&gt;
* MediaCoder&lt;br /&gt;
* Report-IT&lt;br /&gt;
* [[MP3tag|MP3tag]]&lt;br /&gt;
* [https://moisescardona.me/opus-gui/ Opus GUI]&lt;br /&gt;
* [http://www.xdlab.ru/en/ TagScanner]&lt;br /&gt;
* [http://www.xmedia-recode.de/ XMedia Recode]&lt;br /&gt;
&lt;br /&gt;
== References &amp;amp; Notes ==&lt;br /&gt;
&lt;br /&gt;
*{{note|homepage|a}}[http://opus-codec.org/ opus-codec.org homepage]&lt;br /&gt;
*{{note|FAQ|b}}[http://wiki.xiph.org/OpusFAQ Opus FAQ]&lt;br /&gt;
*{{note|RFC|c}}[http://tools.ietf.org/html/rfc6716 IETF RFC 6716]&lt;br /&gt;
&lt;br /&gt;
[[Category:Codecs]]&lt;br /&gt;
[[Category:Lossy]]&lt;br /&gt;
[[Category:Encoder/Decoder]]&lt;/div&gt;</summary>
		<author><name>Artoria2e5</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=Opus&amp;diff=37272</id>
		<title>Opus</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=Opus&amp;diff=37272"/>
		<updated>2023-08-11T06:08:29Z</updated>

		<summary type="html">&lt;p&gt;Artoria2e5: /* libopus v1.1 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Software Infobox&lt;br /&gt;
| name = Opus&lt;br /&gt;
| logo = [[Image:opus-logo.png|250px|Official Opus logo]]&lt;br /&gt;
| screenshot =&lt;br /&gt;
| caption = Opus Interactive Audio Codec&lt;br /&gt;
| maintainer = [http://xiph.org/ Xiph.Org Foundation]&lt;br /&gt;
| stable_release = 1.4&lt;br /&gt;
| operating_system = Windows, Mac OS/X, Linux/BSD&lt;br /&gt;
| use = Encoder/Decoder&lt;br /&gt;
| license = 3-clause BSD license&lt;br /&gt;
| website = [http://www.opus-codec.org/ opus-codec.org]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Opus&#039;&#039;&#039; is a [[lossy]] audio compression format developed by the Internet Engineering Task Force (IETF) designed to be suitable for interactive real-time applications over the Internet,{{ref|homepage|a}} including music as well as speech, yet it is also very competitive for use as a storage and playback format, being a [https://web.archive.org/web/20200130083553/http://people.xiph.org/~greg/opus/ha2011/ class leader at around 64 kbps] and [http://listening-test.coresv.net/results.htm also at 96 kbps]. As an open format standardised through [http://tools.ietf.org/html/rfc6716 Request for Comments (RFC) 6716],{{ref|RFC|c}} a high quality reference implementation is provided under the 3-clause BSD license{{ref|homepage|a}} which compiles and runs on the vast majority of general purpose and embedded (fixed point) processors. Many Software patents which cover Opus are licensed under royalty-free terms.{{ref|FAQ|b}}  Opus is also a Mandatory To Implement (MTI) codec for the upcoming WebRTC (Web Real Time Communication) specification of the World Wide Web Consortium (W3C).&lt;br /&gt;
&lt;br /&gt;
Opus incorporates technology from two codecs, the speech-oriented SILK codec developed by Skype and the multi-purpose low-latency CELT codec developed by Xiph.org with significant changes to each to ensure they can work together.{{ref|RFC|c}} Opus can seamlessly transition among high and low bitrates, using a linear prediction codec (the SILK layer) at lower bitrates and a lapped transform codec (the CELT layer) at higher bitrates, as well as a hybrid of the two for a short overlap in which SILK encodes the 0–8&amp;amp;nbsp;kHz spectrum and the CELT layer encodes only the frequencies above 8kHz.{{ref|RFC|c}} Opus has very low algorithmic delay (typ 22.5&amp;amp;nbsp;ms) compared to popular music formats such as [[MP3]], [[Vorbis |Ogg Vorbis]], [[AAC | LC-AAC and HE-AAC]] (all over 100&amp;amp;nbsp;ms), yet performs very competitively with them in terms of quality per bitrate, making it comparably viable as a storage &amp;amp; playback format. Also unlike Vorbis, Opus does not require the definition of large codebooks for each individual file, making it also preferable for short clips of audio, such as those often used by game developers, a field where patent-free Vorbis is commonly used.{{ref|RFC|c}}&lt;br /&gt;
&lt;br /&gt;
Considerably more details of the history and potential applications for Opus are included in the &#039;&#039;Wikipedia&#039;&#039; page for &#039;&#039;&#039;[http://en.wikipedia.org/wiki/Opus_%28audio_format%29 Opus (audio format)]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Characteristics==&lt;br /&gt;
Opus supports bitrates from 6&amp;amp;nbsp;kbps to 510&amp;amp;nbsp;kbps for typical stereo audio sources (and a maximum of around 255 kbps per channel for multichannel audio), with the &#039;sweet spot&#039; for music and general audio around 30&amp;amp;nbsp;kbps (mono) and 40–100&amp;amp;nbsp;kbps (stereo). It is intrinsically [[VBR | variable bitrate]], though constrained VBR and [[CBR | constant bitrate]] modes are possible where required. In the case of the reference release, libopus, the target bitrate is calibrated against the internal constant quality targets so that over a typical music collection, something very close to the target bitrate will be achieved. This bitrate-calibrated approach differs from most VBR encoders (e.g. LAME, helix mp3, qaac, Nero aacenc, Ogg Vorbis, Musepack) where a setting on some &#039;constant quality&#039; scale (which differs between encoders) is used and the bitrate will fall where it may. Improved future versions can be expected to offer improved quality at the same setting. Independent implementations may adopt a different approach.&lt;br /&gt;
&lt;br /&gt;
Opus is able to seamlessly adapt its mode of operation without glitches or sound interruption (an illustrative demonstration of [http://opus-codec.org/examples/#gauge bitrate scalability] is on the Opus Examples page), which can be particularly useful for mixed-content audio or varying network conditions, making the unified Opus codec superior to a suite of different codecs that might otherwise cover the same range of bitrate and quality settings and would require out-of-band signalling to instigate codec switching. The switching includes the choice of mono, stereo and other channel mappings, the use of the speech-oriented SILK layer, the general-purpose CELT layer or the hybrid of both, and the use of different audio bandwidths (4, 6, 8, 12, or 20&amp;amp;nbsp;kHz) as well as the quality adjustments within the same operating mode that are available in most VBR-capable codecs.&lt;br /&gt;
&lt;br /&gt;
Of importance mainly to interactive uses, but potentially useful in time-delayed audio streaming also, Opus includes packet loss concealment (PLC) in all modes and, in the speech-oriented modes where the SILK layer is active it also supports Forward Error Correction (FEC) where the expected rate of packet loss can be indicated to the encoder by the user or by application software and critical frames (e.g. consonant sounds) can be retransmitted at low bitrate to preserve intelligibility.&lt;br /&gt;
&lt;br /&gt;
For music and general audio, the CELT layer of Opus builds on knowledge gained during xiph.org&#039;s Vorbis development and ensures as a primary goal that the total energy in each spectral band is preserved while requiring only a modest bitrate overhead to achieve this, thereby eliminating a lot of bitrate-starvation artifacts such as &#039;birdies&#039; that are common in low-bitrate MP3, especially during transients, applause and cymbal sounds. This technique likewise increases coding efficiency at bitrates targetting transparent music reproduction. Short blocks (2.5&amp;amp;nbsp;ms) are also possible for efficient transient handling. Short blocks can also be used exclusively, if very low algorithmic delay (5.0&amp;amp;nbsp;ms) is required to enable very low-latency interative audio (e.g. live networked music performances such as remote jam sessions), though greater bitrate is then required to maintain the same quality (illustrated in [http://people.xiph.org/~xiphmont/demo/celt/demo.html#demo Monty&#039;s CELT demo page] under Constant PEAQ value, varying latency). CELT uses a number of additional techniques and provides additional advanced tools to enable encoder tuning.&lt;br /&gt;
&lt;br /&gt;
Opus natively supports [[gapless playback]] (though [[Gapless_playback#Poorly_designed_playback_systems | poor player design]] might itself induce interruptions during playback). Playback gain is also required, making some form of [[ReplayGain]] or [[ReplayGain_2.0_specification | similar]] volume control possible in any compliant player.&lt;br /&gt;
&lt;br /&gt;
==Bitrate performance==&lt;br /&gt;
For mono speech, Opus ranges from intelligible narrowband speech reproduction starting at 6&amp;amp;nbsp;kbps to medium-band, wideband and superwideband speech, reaching full-band speech by around 14&amp;amp;nbsp;kbps in encoder version 1.2 (was 21&amp;amp;nbsp;kbps in v1.1, 29&amp;amp;nbsp;kbps in v1.0). Above about 32&amp;amp;nbsp;kbps, the SILK layer is no longer used at all, as CELT alone gives superior quality.&lt;br /&gt;
&lt;br /&gt;
For music, the SILK modes are quite tolerable and better than CELT at very low bitrates. The hybrid mode is adopted as bitrate increases, extending bandwidth first to 12&amp;amp;nbsp;kHz (comparable with compact cassette) then to the full 20&amp;amp;nbsp;kHz and CELT then takes over. Assuming the source is stereo, the transition from mono to stereo typically happens between the transition from 12&amp;amp;nbsp;kHz to 20&amp;amp;nbsp;kHz. Encoder version 1.2 includes great improvements to music encoding in the 32–64&amp;amp;nbsp;kbps range, allowing full-band stereo at 32&amp;amp;nbsp;kbps and providing acceptable quality at 48&amp;amp;nbsp;kbps where artifacts are audible but rarely annoying. Version 1.3 is expected to further improve quality in this range.&lt;br /&gt;
&lt;br /&gt;
Multi-format stereo music listening tests have demonstrated the superiority of Opus at 64&amp;amp;nbsp;kbps and 96&amp;amp;nbsp;kbps compared to the best AAC-LC, HE-AAC and Ogg Vorbis encoders, and at 96&amp;amp;nbsp;kbps also to 128&amp;amp;nbsp;kbps MP3 encoded using LAME &amp;lt;code&amp;gt;-V 5&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Indicative bitrate and quality==&lt;br /&gt;
The tables below give illustrative, indicative quality guidance based on typical modes used internally by Opus and a range of listening tests.&lt;br /&gt;
&lt;br /&gt;
In encoder version 1.1 automatic detection of speech/music and bandwidth detection were introduced to improve mode decisions and VBR is less constrained, all with the aim of maximizing the quality/bitrate tradeoff, and these improvements are further enhanced in version 1.2 and 1.3. These tables are likely to require updates as the encoder is improved, especially in low-bitrate regions.&lt;br /&gt;
&lt;br /&gt;
===Speech encoding quality===&lt;br /&gt;
This table assumes a &#039;&#039;&#039;monophonic&#039;&#039;&#039; source sampled at CD quality or above (typ 48 kHz sampling rate) but mentions stereo compatibility for 40kbps+. The default 20ms frame size (22.5ms latency) is assumed. Note that the selection of &#039;&#039;VOIP&#039;&#039; mode will deliberately modify the sound with a High Pass Filter and emphasis of formants and harmonics to improve intelligibility of speech especially in noisy environments much as telephones do. &#039;&#039;Auto&#039;&#039; mode will not modify the sound prior to encoding so is usually better for high quality speech recordings or mixed speech and music.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Bitrate Target&lt;br /&gt;
!Bandwidth&lt;br /&gt;
!Typical Mode Used&lt;br /&gt;
!Speech Quality&lt;br /&gt;
!Use Cases / Competitive Codecs&lt;br /&gt;
|-&lt;br /&gt;
!Less than 5 kbps&lt;br /&gt;
| &amp;amp;mdash;&lt;br /&gt;
| &amp;amp;mdash;&lt;br /&gt;
| Bitrates lower than 6 kbps not supported by Opus (SILK disabled if forced to encode, which results in terrible speech quality)&lt;br /&gt;
| Try [https://en.wikipedia.org/wiki/Codec_2 Codec 2] for 0.45–3.2&amp;amp;nbsp;kbps mono speech or [[Wikipedia:Lyra (codec)|Lyra]] for 3.2&amp;amp;nbsp;kbps mono speech&lt;br /&gt;
|-&lt;br /&gt;
!6 kbps&lt;br /&gt;
|6 kHz medium-band&lt;br /&gt;
|SILK&lt;br /&gt;
|Fair, intelligible&lt;br /&gt;
|AMR-NB may be a little better, but higher latency &amp;amp; proprietary, [[Speex]] also competitive&lt;br /&gt;
|-&lt;br /&gt;
!8 kbps&lt;br /&gt;
|6 kHz medium-band&lt;br /&gt;
|SILK&lt;br /&gt;
|Close to telephone quality&lt;br /&gt;
|AMR-NB &amp;amp; AMR-WB similar quality, but higher latency &amp;amp; proprietary. [[Speex]] competitive.&lt;br /&gt;
|-&lt;br /&gt;
!12 kbps&lt;br /&gt;
|12 kHz super-wideband&lt;br /&gt;
|hybrid&lt;br /&gt;
|Medium bandwidth, better than telephone quality&lt;br /&gt;
|Similar quality to AMR-WB&lt;br /&gt;
|-&lt;br /&gt;
!16 kbps&lt;br /&gt;
|20 kHz&lt;br /&gt;
|hybrid/CELT&lt;br /&gt;
|Wideband speech quality&lt;br /&gt;
|Similar to/better than AMR-WB&lt;br /&gt;
|-&lt;br /&gt;
!24 kbps&lt;br /&gt;
|20 kHz&lt;br /&gt;
|hybrid/CELT&lt;br /&gt;
|Near transparent speech&lt;br /&gt;
|Better than AMR-WB. Podcasts/audiobooks/talk-radio.&lt;br /&gt;
|-&lt;br /&gt;
!32 kbps&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Essentially transparent speech plus moderately good stereo music&lt;br /&gt;
|Much better than AMR-WB. Podcasts/audiobooks/talk-radio.&lt;br /&gt;
|-&lt;br /&gt;
!40 kbps&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Essentially transparent mono or stereo speech, fairly good stereo music&lt;br /&gt;
|Stereo podcasts/audiobooks/talk radio with some music&lt;br /&gt;
|-&lt;br /&gt;
!48 kbps or more&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Essentially transparent mono or stereo speech, reasonable music&lt;br /&gt;
|Flexible general purpose modes to suit mixed music and speech&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Music encoding quality===&lt;br /&gt;
This table assumes a &#039;&#039;&#039;stereophonic&#039;&#039;&#039; source sampled at CD quality or above (typ 48&amp;amp;nbsp;kHz sampling rate). Opus will automatically use mono at very low bitrates, though a certain amount of stereo encoding can still be used (content dependent) even when mono is specified as the typical stereo mode in the table below.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Bitrate target&lt;br /&gt;
!Stereo mode&lt;br /&gt;
!Bandwidth&lt;br /&gt;
!typ SILK/CELT use&lt;br /&gt;
!Music quality notes&lt;br /&gt;
!Use cases/notes/competitive codecs&lt;br /&gt;
|-&lt;br /&gt;
!6 kbps&lt;br /&gt;
|mono&lt;br /&gt;
|6 kHz&lt;br /&gt;
|SILK&lt;br /&gt;
|Poor, muffled sound but intelligible lyrics.&lt;br /&gt;
| &amp;amp;mdash;&lt;br /&gt;
|-&lt;br /&gt;
!8 kbps&lt;br /&gt;
|mono&lt;br /&gt;
|6 kHz&lt;br /&gt;
|SILK&lt;br /&gt;
|Poor, muffled but OK for bitrate&lt;br /&gt;
| &amp;amp;mdash;&lt;br /&gt;
|-&lt;br /&gt;
!14 to 16 kbps&lt;br /&gt;
|mono&lt;br /&gt;
|20 kHz&lt;br /&gt;
|hybrid/CELT&lt;br /&gt;
|Fairly poor but OK for bitrate&lt;br /&gt;
|Perhaps acceptable for incidental music&lt;br /&gt;
|-&lt;br /&gt;
!22 to 24 kbps&lt;br /&gt;
|mono&lt;br /&gt;
|20 kHz&lt;br /&gt;
|hybrid/CELT&lt;br /&gt;
|Fair but OK for bitrate&lt;br /&gt;
|OK for incidental music&lt;br /&gt;
|-&lt;br /&gt;
!32 to 40 kbps&lt;br /&gt;
|stereo&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Moderately good stereo, some artifacts, rarely nasty&lt;br /&gt;
|Stereo podcasts, audiobooks, very low bitrate music&lt;br /&gt;
|-&lt;br /&gt;
!48 kbps&lt;br /&gt;
|stereo&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Full bandwidth stereo music, nice sound, may have problems with cymbals&lt;br /&gt;
|Stereo podcasts, audiobooks, low bitrate music&lt;br /&gt;
|-&lt;br /&gt;
!64 kbps&lt;br /&gt;
|stereo&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Full bandwidth stereo music, nice sound, detectable differences to original (mostly &#039;not annoying&#039;)&lt;br /&gt;
|Music storage &amp;amp; streaming. Beat HE-AAC, Vorbis, MP3 in [https://web.archive.org/web/20200130083553/http://people.xiph.org/~greg/opus/ha2011/ listening test]&lt;br /&gt;
|-&lt;br /&gt;
!96 kbps&lt;br /&gt;
|stereo&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Full bandwidth stereo music, good quality approaching transparency&lt;br /&gt;
|Music storage &amp;amp; high quality streaming. Beat LC-AAC, Vorbis, MP3 in [http://listening-test.coresv.net/results.htm listening test]&lt;br /&gt;
|-&lt;br /&gt;
!112 kbps&lt;br /&gt;
|stereo&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Fairly close to transparency (needs more testing)&lt;br /&gt;
|Music storage &amp;amp; high quality streaming. Very low-latency stereo networked music performance/jam sessions at OK quality (see below table)&lt;br /&gt;
|-&lt;br /&gt;
!128 kbps&lt;br /&gt;
|stereo&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Very close to transparency (needs more testing). Most modern codecs competitive (AAC-LC, Vorbis, MP3)&lt;br /&gt;
|Music storage &amp;amp; streaming. Future download music sales.&lt;br /&gt;
|-&lt;br /&gt;
!160 to 192 kbps&lt;br /&gt;
|stereo&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Transparent with very low chance of artifacts (a few killer samples still detectable). Most old &amp;amp; new lossy codecs competitive.&lt;br /&gt;
|Music storage &amp;amp; streaming, dedicated limited-bandwidth audio links (e.g. wireless, [http://en.wikipedia.org/wiki/Bluetooth_profile#Advanced_Audio_Distribution_Profile_.28A2DP.29 A2DP-bluetooth] type links). &lt;br /&gt;
|-&lt;br /&gt;
!510 kbps&lt;br /&gt;
|stereo&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Maximum possible stereo bitrate target (actual rate often less than 510 for default frame size). Most old and new lossy codecs competitive, plus near-lossless [[lossyWAV]] and [[WavPack | WavPack lossy]]&lt;br /&gt;
|Music storage, dedicated limited-bitrate audio links (e.g. wireless, minimum latency high quality audio. LossyWAV and WavPack lossy are very competitive for storage, and WavPack lossy &amp;lt;code&amp;gt;--blocksize=256&amp;lt;/code&amp;gt; may be competitive with minimum latency mode also.&lt;br /&gt;
|-&lt;br /&gt;
!&amp;gt;510 kbps&lt;br /&gt;
| &amp;amp;mdash;&lt;br /&gt;
| &amp;amp;mdash;&lt;br /&gt;
| &amp;amp;mdash;&lt;br /&gt;
|Above Opus bitrate range allowed for stereo sources&lt;br /&gt;
|Settle for 510&amp;amp;nbsp;kbps or use [[lossless]], [[lossyWAV]], [[WavPack | WavPack lossy]] or lossy transform/subband codecs like [[Vorbis]], [[Musepack]] at very high settings.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Lower latency versus quality/bitrate trade-off===&lt;br /&gt;
====Packet overhead in interactive applications====&lt;br /&gt;
For interactive use on the Internet or other packet-based networks, total bandwidth used will be subject to packet overhead. The more packet headers that are transmitted every second, the greater will be the overhead that is required. For this reason, Opus, while defaulting to 20&amp;amp;nbsp;ms frames, supports 60&amp;amp;nbsp;ms frames to reduce overhead when transporting low-bitrate SILK frames at the expense of greater latency, which may still be acceptable for speech, and also supports 10&amp;amp;nbsp;ms SILK frames to reduce latency somewhat at the expense of packet overhead.&lt;br /&gt;
&lt;br /&gt;
In the CELT layer, which tends to operate at higher bitrates than SILK, 20&amp;amp;nbsp;ms frames are the default, but frames of 10&amp;amp;nbsp;ms, 5&amp;amp;nbsp;ms and 2.5&amp;amp;nbsp;ms are also possible, which directly increases the frame overhead by transmitting more packets per second to achieve lower latency. In addition, as we&#039;ll see below it also reduces the quality/bitrate tradeoff of the CELT layer itself.&lt;br /&gt;
&lt;br /&gt;
You probably do not want to use a frame size lower than 10&amp;amp;nbsp;ms in applications containing speech, as doing so turns off SILK. The &amp;quot;lowdelay&amp;quot; application switch (available in FFmpeg and the raw library) turns off SILK to cut out 4&amp;amp;nbsp;ms of synchronization delay, but a frame size of 10&amp;amp;nbsp;ms achieves more delay reduction compared to default without sacrificing SILK.&lt;br /&gt;
&lt;br /&gt;
None of the bitrates mentioned in this article account for the packet overhead.&lt;br /&gt;
&lt;br /&gt;
====CELT layer latency versus quality/bitrate trade-off====&lt;br /&gt;
Unlike the SILK layer, which works on fixed 10&amp;amp;nbsp;ms blocks, 1, 2 or 6 of which can be combined into an Opus frame, the CELT layer is able to modify the encoding block lengths available to enable its use with shorter frames.&lt;br /&gt;
&lt;br /&gt;
When the CELT layer uses 10&amp;amp;nbsp;ms, 5&amp;amp;nbsp;ms and 2.5&amp;amp;nbsp;ms frames instead of the default 20&amp;amp;nbsp;ms, it must use smaller transform block sizes to achieve this, thereby reducing frequency resolution in the MDCT compared to the default transform window, thus reducing encoding efficiency for tonal signals. To obtain the same frequency precision for a sound divided into shorter transform windows, improved amplitude precision is necessary, resulting in increased bitrate to obtain the same perceptual quality (or conversely lower quality at the same bitrate).&lt;br /&gt;
&lt;br /&gt;
These reduced-latency modes remain efficient for transient signals, which use short blocks anyway.&lt;br /&gt;
&lt;br /&gt;
In all modes, the algorithmic delay consists of the frame size plus an additional 2.5&amp;amp;nbsp;ms delay. The CELT layer requires 2.5&amp;amp;nbsp;ms for MDCT window overlap.&lt;br /&gt;
&lt;br /&gt;
Xiph.org used matched [[PEAQ]] scores (approximate perceptual quality assessment made in software) for the CELT0.10 codec that was used as the basis of the CELT layer in the Opus reference release, which indicate the following [http://people.xiph.org/~xiphmont/demo/celt/demo.html#demo approximate equivalent settings] for stereo music.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Frame size&lt;br /&gt;
!Algorithmic delay&lt;br /&gt;
!Bitrate to match 64kbps@22.5ms delay&lt;br /&gt;
!fractional bitrate increase&lt;br /&gt;
|-&lt;br /&gt;
!20 ms&lt;br /&gt;
|22.5 ms&lt;br /&gt;
|64.0 kbps&lt;br /&gt;
| +0.0 %&lt;br /&gt;
|-&lt;br /&gt;
!10 ms&lt;br /&gt;
|12.5 ms&lt;br /&gt;
|70.4 kbps&lt;br /&gt;
| +10.0 %&lt;br /&gt;
|-&lt;br /&gt;
!5 ms&lt;br /&gt;
|7.5 ms&lt;br /&gt;
|84.8 kbps&lt;br /&gt;
| +32.5 %&lt;br /&gt;
|-&lt;br /&gt;
!2.5 ms&lt;br /&gt;
|5.0 ms&lt;br /&gt;
|112.0 kbps&lt;br /&gt;
| +75.0 %&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
N.B. This table is useful for interactive streaming only. For music storage &amp;amp; delayed playback or non-interactive streaming, latency reduction is not important and the default 20&amp;amp;nbsp;ms frame size is preferable.&lt;br /&gt;
&lt;br /&gt;
== Implementations ==&lt;br /&gt;
&lt;br /&gt;
The format and algorithms are openly documented and the reference implementation is published as free software. The reference implementation (Opus Audio Tools, opus-tools), consisting of separate encoders and decoders, is published under the terms of a BSD-like license. It is written in C programming language and can be compiled for hardware architectures with or without floating point unit. The accompanying diagnostic tool opusinfo reports detailed technical information about Opus files, including information on the standard compliance of the bitstream format. It is based on ogginfo from the vorbis-tools and therefore, unlike the encoder and decoder, available under the terms of version 2 of the GPL.&lt;br /&gt;
&lt;br /&gt;
=== Reference implementation (libopus + binaries) ===&lt;br /&gt;
The commandline tools of the reference version are available pre-compiled for the most popular operating systems at [http://opus-codec.org/downloads opus-codec.org] and [https://ftp.mozilla.org/pub/mozilla.org/opus/ Mozilla&#039;s ftp server], plus in the foobar2000 free encoders pack and some alternative compiles through the hydrogenaud.io opus forum. The libopus commandline tools include encoder &amp;lt;code&amp;gt;opusenc&amp;lt;/code&amp;gt;, decoder &amp;lt;code&amp;gt;opusdec&amp;lt;/code&amp;gt;, and with a different license, the &amp;lt;code&amp;gt;opusinfo&amp;lt;/code&amp;gt; opus stream &amp;amp; metadata analyzer.&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;latest stable release&#039;&#039;&#039; is recommended for general use and as of mid 2014 is considered competitive with or superior to the best alternative speech or general music encoders at most supported bitrates.&lt;br /&gt;
&lt;br /&gt;
==== libopus v1.0 ====&lt;br /&gt;
Released 11 Sep 2012 when RFC6716 was standardized but mostly fully developed by late 2011.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Stable, well-tuned&#039;&#039;&#039; &amp;lt;code&amp;gt;opusenc&amp;lt;/code&amp;gt; reference encoder as included in RFC documentation.&lt;br /&gt;
&lt;br /&gt;
CELT layer closely related to CELT 0.10 implements Constrained VBR mode by default (bitrate boost used mainly for transients), plus true CBR.&lt;br /&gt;
&lt;br /&gt;
==== libopus v1.1 ==== &lt;br /&gt;
&lt;br /&gt;
The alpha source code released 21 Dec 2012 for testing &amp;amp; user feedback and following a beta release and testing, the stable 1.1 version was released on 5 December 2013, considered well tested enough for general release.&amp;lt;ref&amp;gt;https://people.xiph.org/~xiphmont/demo/opus/demo3.shtml&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
CELT layer [http://jmspeex.livejournal.com/11737.html quality improvements] introduced to provide &#039;&#039;&#039;unconstrained VBR&#039;&#039;&#039; include a rate boost not just for transients but now for highly tonal signals too and rate reduction when stereo image is narrow. There&#039;s also a rewrite of its &#039;&#039;&#039;transient detection&#039;&#039;&#039; code and &#039;&#039;&#039;time-frequency analysis&#039;&#039;&#039; code, and rewritten &#039;&#039;&#039;dynamic allocation&#039;&#039;&#039; code (HF/LF tilt and Band Boost) to allow more aggressive changes from the typical static allocation when warranted.&lt;br /&gt;
&lt;br /&gt;
There are many minor improvements to &#039;&#039;&#039;speech quality&#039;&#039;&#039; in both SILK and CELT layers.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;DC-rejection&#039;&#039;&#039; below 3 Hz also aids quality if inaudible DC offset is present with no effect on deep bass notes.&lt;br /&gt;
*&#039;&#039;&#039;Automatic speech/music detection&#039;&#039;&#039; is introduced to optimize encoding mode choices, especially near the bitrate target range (presumably around 24–40&amp;amp;nbsp;kbps) where the encoder may perform best with SILK, hybrid or CELT depending on content type. Below that range SILK performs best for both music &amp;amp; speech, and above it CELT performs best for speech &amp;amp; music. The detection, without look-ahead is not perfect but usually is undecided in audio where either mode will work well.&lt;br /&gt;
*&#039;&#039;&#039;Automatic bandwidth detection&#039;&#039;&#039; is also introduced to save wasted bits allocated to absent frequencies.&lt;br /&gt;
*&#039;&#039;&#039;Surround sound improvements&#039;&#039;&#039; were introduced since the beta release with considerable advances in coding efficiency, bitrate allocation and quality.&lt;br /&gt;
&lt;br /&gt;
A new &#039;&#039;&#039;temporal VBR&#039;&#039;&#039; feature is added. For reasons not explained by classic psychoacoustics, it appears that giving more bits to loud frames (stealing from quiet frames) makes the result substantially better on listening tests. This feature is not tunable: it always affects VBR calculation at low bitrates, gradually becoming weaker at higher bitrates, until it turns off completely at 68&amp;amp;nbsp;kbps.&lt;br /&gt;
&lt;br /&gt;
==== libopus v1.1.3 ==== &lt;br /&gt;
Released July 15th, 2016. This version contains:&lt;br /&gt;
&lt;br /&gt;
*Neon optimizations improving performance on ARMv7 and ARMv8 by up to 15%&lt;br /&gt;
*Fixes some issues with 16-bit platforms (e.g. TI C55x)&lt;br /&gt;
*Fixes to comfort noise generation (CNG)&lt;br /&gt;
*Documenting that PLC packets can also be 2 bytes&lt;br /&gt;
*Includes experimental ambisonics work (&amp;lt;code&amp;gt;--enable-ambisonics&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
==== libopus v1.2.1 ==== &lt;br /&gt;
Released June 26th, 2017. This version contains:&lt;br /&gt;
&lt;br /&gt;
*Speech quality improvements especially in the 12–20&amp;amp;nbsp;kbit/s range&lt;br /&gt;
*Improved VBR encoding for hybrid mode&lt;br /&gt;
*More aggressive use of wider speech bandwidth, including fullband speech starting at 14&amp;amp;nbsp;kbit/s&lt;br /&gt;
*Music quality improvements in the 32–48&amp;amp;nbsp;kbit/s range&lt;br /&gt;
*Generic and SSE CELT optimizations&lt;br /&gt;
*Support for directly encoding packets up to 120&amp;amp;nbsp;ms&lt;br /&gt;
*DTX support for CELT mode&lt;br /&gt;
*SILK CBR improvements&lt;br /&gt;
*Support for all of the fixes in draft-ietf-codec-opus-update-06 (the mono downmix and the folding fixes need &amp;lt;code&amp;gt;--enable-update-draft&amp;lt;/code&amp;gt;)&lt;br /&gt;
*Many bug fixes, including integer wrap-arounds discovered through fuzzing (no security implications)&lt;br /&gt;
&lt;br /&gt;
==== libopus v1.3 ====&lt;br /&gt;
Released on October 18th, 2018. This version contains:&lt;br /&gt;
&lt;br /&gt;
* Improvements to voice activity detection (VAD) and speech/music classification using a recurrent neural network (RNN)&lt;br /&gt;
* Support for ambisonics coding using channel mapping families 2 and 3&lt;br /&gt;
* Improvements to stereo speech coding at low bitrate&lt;br /&gt;
* Using wideband encoding down to 9&amp;amp;nbsp;kb/s&lt;br /&gt;
* Making it possible to use SILK down to bitrates around 5&amp;amp;nbsp;kb/s&lt;br /&gt;
* Minor quality improvement on tones&lt;br /&gt;
* Enabling the spec fixes in &amp;lt;nowiki&amp;gt;RFC 8251&amp;lt;/nowiki&amp;gt; by default&lt;br /&gt;
* Security/hardening improvements&lt;br /&gt;
* Fixes to the CELT PLC&lt;br /&gt;
* Bandwidth detection fixes&lt;br /&gt;
&lt;br /&gt;
==== libopus v1.3.1 ====&lt;br /&gt;
Released on April 12th, 2019. This version contains:&lt;br /&gt;
&lt;br /&gt;
* Fixes to x87 builds&lt;br /&gt;
* A new OPUS_GET_IN_DTX query to know if the encoder is in DTX mode (last frame was either a comfort noise frame or not encoded at all)&lt;br /&gt;
* A new (and still experimental) CMake-based build system that is eventually meant to replace the VS2015 build system (the autotools one will stay)&lt;br /&gt;
&lt;br /&gt;
==== libopus v1.4 ====&lt;br /&gt;
Released on April 20th, 2023. This version contains:&lt;br /&gt;
&lt;br /&gt;
* Improved tuning of the Opus in-band FEC (LBRR). See the issue for details&lt;br /&gt;
* Added a OPUS_SET_INBAND_FEC(2) option that turns on FEC, but does not force SILK mode (FEC will be disabled in CELT mode)&lt;br /&gt;
* Improved tuning and various fixes to DTX&lt;br /&gt;
* Added Meson support, improved CMake support In addition to the improvements above, this release includes many minor bug fixes.&lt;br /&gt;
&lt;br /&gt;
=== Other implementations ===&lt;br /&gt;
&lt;br /&gt;
==== Concentus ====&lt;br /&gt;
&lt;br /&gt;
The libopus reference library (fixed-point variant) has successfully been ported to both &#039;&#039;&#039;C#&#039;&#039;&#039; and &#039;&#039;&#039;Java&#039;&#039;&#039;, as part of a project called &#039;&#039;&#039;Concentus&#039;&#039;&#039;. The aim of the project is specifically to target cross-platform applications where native C interop is relatively difficult. The code is available on [https://github.com/lostromb/concentus Github] and distributed via standard package managers.&lt;br /&gt;
&lt;br /&gt;
==== Emscripten ports ====&lt;br /&gt;
&lt;br /&gt;
At least one port of reference opus in Javascript has been made using the automated tool [https://developer.mozilla.org/en-US/docs/Mozilla/Projects/Emscripten emscripten]. See [https://blog.rillke.com/opusenc.js/ here], [https://github.com/kazuki/opus.js-sample here] and [https://github.com/audiocogs/opus.js here].&lt;br /&gt;
&lt;br /&gt;
==== ffmpeg ====&lt;br /&gt;
FFmpeg has a native [https://ffmpeg.org/ffmpeg-codecs.html#opus &amp;quot;opus&amp;quot;] codec. It is of lower quality than the reference libopus and only does CELT coding. However, it is still good for the ecosystem to have a completely independent implementation.&lt;br /&gt;
&lt;br /&gt;
== Hardware &amp;amp; Software Support ==&lt;br /&gt;
&lt;br /&gt;
Much of this section is based heavily on the Jan 12th 2013 version of the &#039;&#039;&#039;Support&#039;&#039;&#039; section of the [http://en.wikipedia.org/wiki/Opus_%28audio_format%29 Wikipedia article], which is more likely to be kept updated and to provide links to further information about the supporting platforms.&lt;br /&gt;
&lt;br /&gt;
=== VoIP software ===&lt;br /&gt;
* The open source virtual PBX Freeswitch supports Opus transcoding.&lt;br /&gt;
* The voice-chat software Mumble supports Opus as its main codec.&lt;br /&gt;
* SIP softphones Phoner and PhonerLite support Opus&lt;br /&gt;
* The SIP and IAX2 client SFLphone is being fitted with Opus support.&lt;br /&gt;
* Integration of Opus into the Skype client is finished, although no version with Opus support has yet been published.&lt;br /&gt;
* TrueConf video conferencing solutions support Opus.&lt;br /&gt;
* Opus support is planned for Jitsi 2.0, together with VP8 video.&lt;br /&gt;
* Empathy may use any format supported in GStreamer, including Opus.&lt;br /&gt;
* Line2 has replaced their current codec with Opus. Their iOS app will be the first to be released with the Opus. The Android app will follow later.&lt;br /&gt;
* CSipSimple supports Opus, Codec2, G.726 and G.722.1 with an additional plug-in.&lt;br /&gt;
* The voice-chat software TeamSpeak 3 supports Opus for voice and music in pre-release server 3.0.7-pre2 and beta client version 3.0.10.&lt;br /&gt;
* The proprietary instant messenger service Discord uses Opus audio for all voice calls and video calls, regardless of platform.&lt;br /&gt;
&lt;br /&gt;
=== Web frameworks and browsers ===&lt;br /&gt;
* Opus support is mandatory for WebRTC implementations.&lt;br /&gt;
* Mozilla supports Opus beginning with version 15 of Firefox and Thunderbird, plus Seamonkey, which uses a shared codebase.&lt;br /&gt;
* Depending on the backend in use, Opera supports inline playback of embedded Opus files. Official support for Opus and WebRTC are on the development roadmap.&lt;br /&gt;
* Chromium and Google Chrome have audio support as of version 33.&lt;br /&gt;
* Apple&#039;s Safari browser now supports Opus as of iOS 11 and macOS 10.13 High Sierra.&lt;br /&gt;
* Maxthon Cloud Browser&lt;br /&gt;
&lt;br /&gt;
=== Streaming audio ===&lt;br /&gt;
* Icecast. (examples: [http://dir.xiph.org/by_format/Opus Stream directory by format Opus], [http://smj.delfa.net/opus_64.m3u 64k]/[http://smj.delfa.net/opus_256.m3u 256k] [http://smj.delfa.net/ Smooth Jazz Opus Stream], [http://www.absoluteradio.co.uk/listen/labs.html Absolute Radio Opus Trial] 7 stations at 24,64,96 kbps, [http://icecast.ofdoom.com:8000/burst-opus.ogg Icecast Of Doom 96k]&lt;br /&gt;
* Krad Radio&lt;br /&gt;
* Liquidsoap&lt;br /&gt;
&lt;br /&gt;
=== Operating systems and desktop multimedia frameworks ===&lt;br /&gt;
* In Debian GNU/Linux the Opus development tools and supporting libraries can be installed from the preconfigured repositories in the next stable version (&amp;quot;wheezy&amp;quot;) that is expected to be released in early 2013.&lt;br /&gt;
* For Microsoft Windows, there are DirectShow filters supporting Opus, including DC-Bass Source Mod and the LAV Filters.&lt;br /&gt;
* In GStreamer the integration of Opus support is complete.&lt;br /&gt;
* FFmpeg supports decoding and encoding Opus via the external library libopus.&lt;br /&gt;
* Android 5.0 and above supports Opus natively if encapsulated in the Ogg container, but .opus filename extension is not recognized by Android, so the use of double filename extension .opus.ogg is recommended as a workaround to allow apps to recognize files as playable audio.&lt;br /&gt;
&lt;br /&gt;
=== Hardware support ===&lt;br /&gt;
* Support in [[Rockbox]] is available. This means hardware support for a series of portable media players (including some products from the iPod series by Apple and Sansa, iriver and Archos devices) and with &amp;quot;Rockbox as an Application&amp;quot; (RaaA) also on Android devices.&lt;br /&gt;
&lt;br /&gt;
=== Player software ===&lt;br /&gt;
&lt;br /&gt;
* Windows/Mac/Linux (Cross-Platform)&lt;br /&gt;
*# [[VLC]] (media player supports Opus as of version 2.0.4&lt;br /&gt;
*# [[Amarok]] 2.8 has transcoding support for Opus codec if ffmpeg is compiled with support for the libopus library &amp;amp; support for playback of Opus encoded files if Amarok is compiled against TagLib (newer than V1.8)&lt;br /&gt;
*# Clementine has Opus support&lt;br /&gt;
*# Audacious player&lt;br /&gt;
*# [[MPD]] as of version 0.18 if compiled against libopus (supports both encoding for http streams and decoding)&lt;br /&gt;
* Windows Exclusive&lt;br /&gt;
*# AIMP supports Opus natively as of version 3.20 build 1125 beta 1&lt;br /&gt;
*# [[foobar2000]] supports Opus natively as of v1.1.14 beta 1&lt;br /&gt;
*# Mpxplay supports Opus (using a decoder DLL) as of v1.60 alpha 2&lt;br /&gt;
*# [[Winamp]] supports Opus using a [http://forums.winamp.com/showthread.php?p=2925154#post2925154 3rd party plug-in]&lt;br /&gt;
*# MPC-HC&lt;br /&gt;
*# Resonic Player/Pro supports Opus natively as of version 0.2.2&lt;br /&gt;
* iOS/Android (Cross-Platform)&lt;br /&gt;
*# Capriccio [https://itunes.apple.com/us/app/capriccio-free-ultimate-music/id434829018?mt=8 iOS]/[https://play.google.com/store/apps/details?id=me.ideariboso.capriccio Android]&lt;br /&gt;
*# foobar2000 [https://itunes.apple.com/us/app/foobar2000/id1072807669?mt=8 iOS]/[https://play.google.com/store/apps/details?id=com.foobar2000.foobar2000&amp;amp;hl=en Android]&lt;br /&gt;
* Android Exclusive&lt;br /&gt;
*# [https://play.google.com/store/apps/details?id=in.krosbits.musicolet Musicolet Music Player]&lt;br /&gt;
*# [http://gonemadmusicplayer.blogspot.com/ GoneMAD Music Player]&lt;br /&gt;
*# [http://neutronmp.com/ Neutron Music Player]&lt;br /&gt;
*# [http://www.videolan.org/vlc/download-android.html VLC Media Player for Android]&lt;br /&gt;
*# [https://play.google.com/store/apps/details?id=ru.recoilme.freeamp FreeMP]&lt;br /&gt;
*# [https://play.google.com/store/apps/details?id=net.mderezynski.youki3 Youki]&lt;br /&gt;
*# [https://play.google.com/store/apps/details?id=com.aimp.player AIMP for Android]&lt;br /&gt;
*# [https://play.google.com/store/apps/details?id=com.acmeandroid.listen Listen Audiobook Player]&lt;br /&gt;
*# [https://play.google.com/store/apps/details?id=com.mxtech.videoplayer.ad MX Player]&lt;br /&gt;
*# [https://play.google.com/store/apps/details?id=org.tomahawk.tomahawk_android Tomahawk Player Beta]&lt;br /&gt;
*# [https://play.google.com/store/apps/details?id=com.maxmpz.audioplayer&amp;amp;hl=en Poweramp Music Player]&lt;br /&gt;
&lt;br /&gt;
=== Other software ===&lt;br /&gt;
* CDBurnerXP&lt;br /&gt;
* MediaCoder&lt;br /&gt;
* Report-IT&lt;br /&gt;
* [[MP3tag|MP3tag]]&lt;br /&gt;
* [https://moisescardona.me/opus-gui/ Opus GUI]&lt;br /&gt;
* [http://www.xdlab.ru/en/ TagScanner]&lt;br /&gt;
* [http://www.xmedia-recode.de/ XMedia Recode]&lt;br /&gt;
&lt;br /&gt;
== References &amp;amp; Notes ==&lt;br /&gt;
&lt;br /&gt;
*{{note|homepage|a}}[http://opus-codec.org/ opus-codec.org homepage]&lt;br /&gt;
*{{note|FAQ|b}}[http://wiki.xiph.org/OpusFAQ Opus FAQ]&lt;br /&gt;
*{{note|RFC|c}}[http://tools.ietf.org/html/rfc6716 IETF RFC 6716]&lt;br /&gt;
&lt;br /&gt;
[[Category:Codecs]]&lt;br /&gt;
[[Category:Lossy]]&lt;br /&gt;
[[Category:Encoder/Decoder]]&lt;/div&gt;</summary>
		<author><name>Artoria2e5</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=Theora&amp;diff=37263</id>
		<title>Theora</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=Theora&amp;diff=37263"/>
		<updated>2023-08-10T15:12:54Z</updated>

		<summary type="html">&lt;p&gt;Artoria2e5: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Theora&#039;&#039;&#039; is a video [[codec]] being developed by the Xiph.org Foundation as part of their [[Ogg]] project.  Based upon the VP3 codec from [http://www.on2.com/ On2 Technologies], and christened by On2 as the successor in VP3&#039;s lineage, [http://www.theora.org/ Theora] is targeted at competing with [[MPEG-4]] video (e.g., [[XviD]] and [[DivX]]), [[RealVideo]], [[Windows Media Video]], and similar lower-bitrate video compression schemes. Theora is an 8x8 DCT-II transform codec like competing MPEG-4 video schemes, but differs in that it only uses I (intra) and P (inter) frames, with no corresponding B (bi-predictive) frames. &lt;br /&gt;
&lt;br /&gt;
The VPx lineage has seen many, many new codecs since Theora. VP8 and VP9 are, since 2015, widely supported in browsers. Their successor AV1 has also become mature.&lt;br /&gt;
&lt;br /&gt;
Theora is still in developmental stages with Xiph.org having made five alpha releases thus far.&lt;br /&gt;
* Alpha One was released on September 25, 2002&lt;br /&gt;
* Alpha Two was released half on December 16 and half on December 27, 2002&lt;br /&gt;
* Alpha Three was released on March 20, 2004&lt;br /&gt;
* Alpha Four was released on December 15, 2004. &lt;br /&gt;
* Alpha Five was released on August 20, 2005. &lt;br /&gt;
&lt;br /&gt;
The first beta release Beta-1 is expected later in 2006.  Theora is released under the terms of a BSD-style license. &lt;br /&gt;
&lt;br /&gt;
While VP3 &#039;&#039;is&#039;&#039; patented technology, On2 has irrevocably given royalty-free license of the VP3 patents to all of mankind, enabling the public to utilize Theora and other VP3-derived codecs for any imaginable purpose.&lt;br /&gt;
&lt;br /&gt;
Ralph Giles heads up the Theora project. &lt;br /&gt;
&lt;br /&gt;
In the Ogg multimedia framework, Theora provides a video layer, while [[Vorbis]] acts as the audio layer.&lt;br /&gt;
&lt;br /&gt;
Theora is named for Theora Jones, Edison Carter&#039;s Controller on the Max Headroom television program.&lt;br /&gt;
&lt;br /&gt;
[[Category:Codecs]]&lt;/div&gt;</summary>
		<author><name>Artoria2e5</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=BS.1387&amp;diff=37262</id>
		<title>BS.1387</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=BS.1387&amp;diff=37262"/>
		<updated>2023-08-10T15:07:15Z</updated>

		<summary type="html">&lt;p&gt;Artoria2e5: /* GstPEAQ */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;ITU-R recommendation BS.1387&#039;&#039;&#039; is the document that defines &#039;&#039;&#039;Perceptual Evaluation of Audio Quality&#039;&#039;&#039; (PEAQ), an &#039;&#039;objective&#039;&#039; measurement technique used to measure the quality of encoded/decoded audio files. It acts in contrast to more the common place &#039;&#039;subjective&#039;&#039; testing methodology deployed using [[ABX]] and [[ABC/HR]] reference testing -- frequently preferred by hydrogenaudio. PEAQ returns an &amp;quot;ODG&amp;quot; rating, which is intended to match the difference in subjective (1&amp;amp;ndash;5) scores between the two input samples.&lt;br /&gt;
&lt;br /&gt;
== Structure ==&lt;br /&gt;
PEAQ has two versions: basic and advanced. The basic version only uses an FFT-based ear model and is easier to compute. The advanced version uses both FFT and filter bank and is expected to be more accurate.&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
&lt;br /&gt;
BS.1387 was initially published in 1998. It was updated to BS.1387-1 in 2001 and BS.1387-2 in 2023.&lt;br /&gt;
&lt;br /&gt;
* BS.1387-1 includes important technical corrections -- ones that are important to reach the standard&#039;s own conformance criteria.&amp;lt;ref&amp;gt;https://www.opticom.de/download/CorrectionstoBS1387.pdf&amp;lt;/ref&amp;gt;&lt;br /&gt;
* BS.1387-2 seems to have no real change, except for removal of references to BS.1115, addition of a table of contents, and extensive reformatting.&lt;br /&gt;
&lt;br /&gt;
== EAQUAL ==&lt;br /&gt;
&#039;&#039;&#039;EAQUAL&#039;&#039;&#039; (&#039;&#039;Evaluation Of Audio Quality&#039;&#039;) is an open-source software that implements PEAQ&#039;s basic model &#039;&#039;only&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== Invoking EAQUAL ===&lt;br /&gt;
As of version 0.1.3alpha, the &#039;&#039;-h&#039;&#039; argument can be used to find out how to use eaqual (ex: &#039;&#039;eaqual -h&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
To compare a test wave file to a reference wave file, one can use for example: &#039;&#039;eaqual -fref ref.wav -ftest test.wav&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== Interpreting EAQUAL output ===&lt;br /&gt;
EAQUAL outputs one score, the PEAQ &amp;quot;ODG&amp;quot; rating. This ODG (Objective Difference Grade) rating is designed by ITU to match an SDG (Subjective Difference Grade) rating, which is the difference between the subjective (1&amp;amp;ndash;5) scores between the two input samples. Assuming the HydrogenAudio subjective scoring system, where the reference sample is always scored as a perfect 5, adding 5 points to ODG should produce an approximation of the subjective score.&lt;br /&gt;
&lt;br /&gt;
=== Status of the project ===&lt;br /&gt;
Development of EAQUAL was halted in 2002 due to patent concerns. This is not a problem for PEAQ compilance, however, considering the 2001 BS.1387-1 does not differ substantially from the 2023 version.&lt;br /&gt;
&lt;br /&gt;
The ITU patent declaration system does not list any specific PEAQ patent by number. However, no new patents have been added since 1998, so any patent should have expired by 2018.&amp;lt;ref&amp;gt;https://www.itu.int/en/ITU-R/study-groups/Pages/itu-r-patent-information.aspx&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Versions of EAQUAL include:&lt;br /&gt;
* [http://www.mp3-tech.org/programmer/sources/eaqual.tgz EAQUAL Sourcecode] linux archive of c code used to implement EAQUAL provided by Gabriel Bouvigne, mirrored on github by [https://github.com/spxnn/eaqual spxnn]&lt;br /&gt;
* [http://www.rarewares.org/others.html EAQUAL Tools] zip compression archive of the utility used to perform EAQUAL tests provided by Rarewares.&lt;br /&gt;
* [https://github.com/ivan-codelegs/eaqual ivan-codelegs] github fork, adds macOS support&lt;br /&gt;
&lt;br /&gt;
== GstPEAQ ==&lt;br /&gt;
[https://github.com/HSU-ANT/gstpeaq GstPEAQ] is an implementation of PEAQ, &#039;&#039;both&#039;&#039; basic and advanced, in GStreamer. In addition to the ODG, it also outputs the distortion index (DI), which is not clipped at extremes and not fitted to score anchors. On the HA multiformat dataset:&lt;br /&gt;
* The advanced model gives a correlation improvement of ~0.2 over basic;&lt;br /&gt;
* DI is slightly better at predicting subjective scores than ODG, with a correlation improvement of ~0.03.&lt;br /&gt;
&lt;br /&gt;
== Comparison with subjective listening tests ==&lt;br /&gt;
* [http://www.hydrogenaudio.org/forums/index.php?showtopic=20264 EAqual results for the AAC@128v2 listening test] - fair Pearson correlation (0.699) among higher-quality samples: all AAC&lt;br /&gt;
* [https://hydrogenaud.io/index.php/topic,124607.msg1031323.htmlGstPEAQ: PEAQ done right, allegedly || Multiformat correlation] - great Pearson correlation (0.924, DI Adv): samples of three quality groups&lt;br /&gt;
&lt;br /&gt;
HA comparisons between PEAQ and human raters remain inconclusive. PEAQ is considered useful for an approximation of human senses in codec development and research, but concrete results still need human participation.&lt;br /&gt;
&lt;br /&gt;
== Other implementations ==&lt;br /&gt;
PEAQ-Basic is simple enough to have many implementations.&lt;br /&gt;
&lt;br /&gt;
* [https://sourceforge.net/projects/peaqb/ peaqb] is another implementation of PEAQ. Last updated 2003.&lt;br /&gt;
* There a good number of Matlab implementations for researchers. But it&#039;s Matlab, so there&#039;s gonna be academic code smell.&lt;br /&gt;
&lt;br /&gt;
== Other objective metrics ==&lt;br /&gt;
PEAQ is not the end. There are other metrics:&amp;lt;ref&amp;gt;https://github.com/jonnor/machinehearing/blob/09b5060bd03b8a49fc1d0afd8eedba4babca83ca/audio-quality/README.md&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* ITU also has PESQ and POLQA, both designed for speech.&lt;br /&gt;
* [https://github.com/google/visqol VISQOL] is Google&#039;s open-source metric. It works for both speech and music, but the neural network (don&#039;t worry, it runs fast enough on a CPU) is trained for short clips only. Maybe someone can write a tool to one file into many clips and see individual segment scores.&lt;br /&gt;
* CDPAM is allegedly the model that comes closest to human datasets. Unfortunately the only pre-trained model works on 22050 Hz. And it&#039;s academic neural-network code -- not something you can expect to run on first try.&lt;br /&gt;
&lt;br /&gt;
There are also much more primitive methods that don&#039;t attempt anything perceptual, preferred by peddlers of Bluetooth codecs:&lt;br /&gt;
* SNR&lt;br /&gt;
* THD+N&lt;br /&gt;
&lt;br /&gt;
== External links==&lt;br /&gt;
* [[Wikipedia:Perceptual Evaluation of Audio Quality]]&lt;br /&gt;
* [https://www.itu.int/rec/R-REC-BS.1387 ITU BS.1387] download -- free full text of the standard, straight from the official site.&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Software]][[Category:Quality measurement]]&lt;/div&gt;</summary>
		<author><name>Artoria2e5</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=BS.1387&amp;diff=37261</id>
		<title>BS.1387</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=BS.1387&amp;diff=37261"/>
		<updated>2023-08-10T15:06:38Z</updated>

		<summary type="html">&lt;p&gt;Artoria2e5: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;ITU-R recommendation BS.1387&#039;&#039;&#039; is the document that defines &#039;&#039;&#039;Perceptual Evaluation of Audio Quality&#039;&#039;&#039; (PEAQ), an &#039;&#039;objective&#039;&#039; measurement technique used to measure the quality of encoded/decoded audio files. It acts in contrast to more the common place &#039;&#039;subjective&#039;&#039; testing methodology deployed using [[ABX]] and [[ABC/HR]] reference testing -- frequently preferred by hydrogenaudio. PEAQ returns an &amp;quot;ODG&amp;quot; rating, which is intended to match the difference in subjective (1&amp;amp;ndash;5) scores between the two input samples.&lt;br /&gt;
&lt;br /&gt;
== Structure ==&lt;br /&gt;
PEAQ has two versions: basic and advanced. The basic version only uses an FFT-based ear model and is easier to compute. The advanced version uses both FFT and filter bank and is expected to be more accurate.&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
&lt;br /&gt;
BS.1387 was initially published in 1998. It was updated to BS.1387-1 in 2001 and BS.1387-2 in 2023.&lt;br /&gt;
&lt;br /&gt;
* BS.1387-1 includes important technical corrections -- ones that are important to reach the standard&#039;s own conformance criteria.&amp;lt;ref&amp;gt;https://www.opticom.de/download/CorrectionstoBS1387.pdf&amp;lt;/ref&amp;gt;&lt;br /&gt;
* BS.1387-2 seems to have no real change, except for removal of references to BS.1115, addition of a table of contents, and extensive reformatting.&lt;br /&gt;
&lt;br /&gt;
== EAQUAL ==&lt;br /&gt;
&#039;&#039;&#039;EAQUAL&#039;&#039;&#039; (&#039;&#039;Evaluation Of Audio Quality&#039;&#039;) is an open-source software that implements PEAQ&#039;s basic model &#039;&#039;only&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== Invoking EAQUAL ===&lt;br /&gt;
As of version 0.1.3alpha, the &#039;&#039;-h&#039;&#039; argument can be used to find out how to use eaqual (ex: &#039;&#039;eaqual -h&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
To compare a test wave file to a reference wave file, one can use for example: &#039;&#039;eaqual -fref ref.wav -ftest test.wav&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== Interpreting EAQUAL output ===&lt;br /&gt;
EAQUAL outputs one score, the PEAQ &amp;quot;ODG&amp;quot; rating. This ODG (Objective Difference Grade) rating is designed by ITU to match an SDG (Subjective Difference Grade) rating, which is the difference between the subjective (1&amp;amp;ndash;5) scores between the two input samples. Assuming the HydrogenAudio subjective scoring system, where the reference sample is always scored as a perfect 5, adding 5 points to ODG should produce an approximation of the subjective score.&lt;br /&gt;
&lt;br /&gt;
=== Status of the project ===&lt;br /&gt;
Development of EAQUAL was halted in 2002 due to patent concerns. This is not a problem for PEAQ compilance, however, considering the 2001 BS.1387-1 does not differ substantially from the 2023 version.&lt;br /&gt;
&lt;br /&gt;
The ITU patent declaration system does not list any specific PEAQ patent by number. However, no new patents have been added since 1998, so any patent should have expired by 2018.&amp;lt;ref&amp;gt;https://www.itu.int/en/ITU-R/study-groups/Pages/itu-r-patent-information.aspx&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Versions of EAQUAL include:&lt;br /&gt;
* [http://www.mp3-tech.org/programmer/sources/eaqual.tgz EAQUAL Sourcecode] linux archive of c code used to implement EAQUAL provided by Gabriel Bouvigne, mirrored on github by [https://github.com/spxnn/eaqual spxnn]&lt;br /&gt;
* [http://www.rarewares.org/others.html EAQUAL Tools] zip compression archive of the utility used to perform EAQUAL tests provided by Rarewares.&lt;br /&gt;
* [https://github.com/ivan-codelegs/eaqual ivan-codelegs] github fork, adds macOS support&lt;br /&gt;
&lt;br /&gt;
== GstPEAQ ==&lt;br /&gt;
[https://github.com/HSU-ANT/gstpeaq GstPEAQ] is an implementation of PEAQ, &#039;&#039;both&#039;&#039; basic and advanced, in GStreamer. In addition to the ODG, it also outputs the distortion index (DI), which is not clipped at extremes and not fitted to score anchors. On the HA multiformat dataset:&lt;br /&gt;
* The advanced model gives a correlation improvement of ~0.2 over basic;&lt;br /&gt;
* DI is slightly better at predicting subjective scores than ODG, with a correlation improvement of ~0.04.&lt;br /&gt;
&lt;br /&gt;
== Comparison with subjective listening tests ==&lt;br /&gt;
* [http://www.hydrogenaudio.org/forums/index.php?showtopic=20264 EAqual results for the AAC@128v2 listening test] - fair Pearson correlation (0.699) among higher-quality samples: all AAC&lt;br /&gt;
* [https://hydrogenaud.io/index.php/topic,124607.msg1031323.htmlGstPEAQ: PEAQ done right, allegedly || Multiformat correlation] - great Pearson correlation (0.924, DI Adv): samples of three quality groups&lt;br /&gt;
&lt;br /&gt;
HA comparisons between PEAQ and human raters remain inconclusive. PEAQ is considered useful for an approximation of human senses in codec development and research, but concrete results still need human participation.&lt;br /&gt;
&lt;br /&gt;
== Other implementations ==&lt;br /&gt;
PEAQ-Basic is simple enough to have many implementations.&lt;br /&gt;
&lt;br /&gt;
* [https://sourceforge.net/projects/peaqb/ peaqb] is another implementation of PEAQ. Last updated 2003.&lt;br /&gt;
* There a good number of Matlab implementations for researchers. But it&#039;s Matlab, so there&#039;s gonna be academic code smell.&lt;br /&gt;
&lt;br /&gt;
== Other objective metrics ==&lt;br /&gt;
PEAQ is not the end. There are other metrics:&amp;lt;ref&amp;gt;https://github.com/jonnor/machinehearing/blob/09b5060bd03b8a49fc1d0afd8eedba4babca83ca/audio-quality/README.md&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* ITU also has PESQ and POLQA, both designed for speech.&lt;br /&gt;
* [https://github.com/google/visqol VISQOL] is Google&#039;s open-source metric. It works for both speech and music, but the neural network (don&#039;t worry, it runs fast enough on a CPU) is trained for short clips only. Maybe someone can write a tool to one file into many clips and see individual segment scores.&lt;br /&gt;
* CDPAM is allegedly the model that comes closest to human datasets. Unfortunately the only pre-trained model works on 22050 Hz. And it&#039;s academic neural-network code -- not something you can expect to run on first try.&lt;br /&gt;
&lt;br /&gt;
There are also much more primitive methods that don&#039;t attempt anything perceptual, preferred by peddlers of Bluetooth codecs:&lt;br /&gt;
* SNR&lt;br /&gt;
* THD+N&lt;br /&gt;
&lt;br /&gt;
== External links==&lt;br /&gt;
* [[Wikipedia:Perceptual Evaluation of Audio Quality]]&lt;br /&gt;
* [https://www.itu.int/rec/R-REC-BS.1387 ITU BS.1387] download -- free full text of the standard, straight from the official site.&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Software]][[Category:Quality measurement]]&lt;/div&gt;</summary>
		<author><name>Artoria2e5</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=BS.1387&amp;diff=37260</id>
		<title>BS.1387</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=BS.1387&amp;diff=37260"/>
		<updated>2023-08-10T15:03:25Z</updated>

		<summary type="html">&lt;p&gt;Artoria2e5: /* Comparison with subjective listening tests */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;ITU-R recommendation BS.1387&#039;&#039;&#039; is the document that defines &#039;&#039;&#039;Perceptual Evaluation of Audio Quality&#039;&#039;&#039; (PEAQ), an &#039;&#039;objective&#039;&#039; measurement technique used to measure the quality of encoded/decoded audio files. It acts in contrast to more the common place &#039;&#039;subjective&#039;&#039; testing methodology deployed using [[ABX]] and [[ABC/HR]] reference testing -- frequently preferred by hydrogenaudio. PEAQ returns an &amp;quot;ODG&amp;quot; rating, which is intended to match the difference in subjective (1&amp;amp;ndash;5) scores between the two input samples.&lt;br /&gt;
&lt;br /&gt;
== Structure ==&lt;br /&gt;
PEAQ has two versions: basic and advanced. The basic version only uses an FFT-based ear model and is easier to compute. The advanced version uses both FFT and filter bank and is expected to be more accurate.&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
&lt;br /&gt;
BS.1387 was initially published in 1998. It was updated to BS.1387-1 in 2001 and BS.1387-2 in 2023.&lt;br /&gt;
&lt;br /&gt;
* BS.1387-1 includes important technical corrections -- ones that are important to reach the standard&#039;s own conformance criteria.&amp;lt;ref&amp;gt;https://www.opticom.de/download/CorrectionstoBS1387.pdf&amp;lt;/ref&amp;gt;&lt;br /&gt;
* BS.1387-2 seems to have no real change, except for removal of references to BS.1115, addition of a table of contents, and extensive reformatting.&lt;br /&gt;
&lt;br /&gt;
== EAQUAL ==&lt;br /&gt;
&#039;&#039;&#039;EAQUAL&#039;&#039;&#039; (&#039;&#039;Evaluation Of Audio Quality&#039;&#039;) is an open-source software that implements PEAQ&#039;s basic model &#039;&#039;only&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== Invoking EAQUAL ===&lt;br /&gt;
As of version 0.1.3alpha, the &#039;&#039;-h&#039;&#039; argument can be used to find out how to use eaqual (ex: &#039;&#039;eaqual -h&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
To compare a test wave file to a reference wave file, one can use for example: &#039;&#039;eaqual -fref ref.wav -ftest test.wav&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== Interpreting EAQUAL output ===&lt;br /&gt;
EAQUAL outputs one score, the PEAQ &amp;quot;ODG&amp;quot; rating. This ODG (Objective Difference Grade) rating is designed by ITU to match an SDG (Subjective Difference Grade) rating, which is the difference between the subjective (1&amp;amp;ndash;5) scores between the two input samples. Assuming the HydrogenAudio subjective scoring system, where the reference sample is always scored as a perfect 5, adding 5 points to ODG should produce an approximation of the subjective score.&lt;br /&gt;
&lt;br /&gt;
=== Status of the project ===&lt;br /&gt;
Development of EAQUAL was halted in 2002 due to patent concerns. This is not a problem for PEAQ compilance, however, considering the 2001 BS.1387-1 does not differ substantially from the 2023 version.&lt;br /&gt;
&lt;br /&gt;
The ITU patent declaration system does not list any specific PEAQ patent by number. However, no new patents have been added since 1998, so any patent should have expired by 2018.&amp;lt;ref&amp;gt;https://www.itu.int/en/ITU-R/study-groups/Pages/itu-r-patent-information.aspx&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Versions of EAQUAL include:&lt;br /&gt;
* [http://www.mp3-tech.org/programmer/sources/eaqual.tgz EAQUAL Sourcecode] linux archive of c code used to implement EAQUAL provided by Gabriel Bouvigne, mirrored on github by [https://github.com/spxnn/eaqual spxnn]&lt;br /&gt;
* [http://www.rarewares.org/others.html EAQUAL Tools] zip compression archive of the utility used to perform EAQUAL tests provided by Rarewares.&lt;br /&gt;
* [https://github.com/ivan-codelegs/eaqual ivan-codelegs] github fork, adds macOS support&lt;br /&gt;
&lt;br /&gt;
== Comparison with subjective listening tests ==&lt;br /&gt;
* [http://www.hydrogenaudio.org/forums/index.php?showtopic=20264 EAqual results for the AAC@128v2 listening test] - fair Pearson correlation (0.699) among higher-quality samples: all AAC&lt;br /&gt;
* [https://hydrogenaud.io/index.php/topic,124607.msg1031323.htmlGstPEAQ: PEAQ done right, allegedly || Multiformat correlation] - great Pearson correlation (0.924, DI Adv): samples of three quality groups&lt;br /&gt;
&lt;br /&gt;
HA comparisons between PEAQ and human raters remain inconclusive. PEAQ is considered useful for an approximation of human senses in codec development and research, but concrete results still need human participation.&lt;br /&gt;
&lt;br /&gt;
== Other implementations ==&lt;br /&gt;
PEAQ-Basic is simple enough to have many implementations.&lt;br /&gt;
&lt;br /&gt;
* [https://sourceforge.net/projects/peaqb/ peaqb] is another implementation of PEAQ. Last updated 2003.&lt;br /&gt;
* There a good number of Matlab implementations for researchers. But it&#039;s Matlab, so there&#039;s gonna be academic code smell.&lt;br /&gt;
&lt;br /&gt;
There is one advanced-version implementation: [https://github.com/HSU-ANT/gstpeaq GstPEAQ], which builds on GStreamer. It deviates from the standard less than the previous ones do, and most importantly has the advanced stuff. If any future experimentation on PEAQ is to be done, GstPEAQ should be used.&lt;br /&gt;
&lt;br /&gt;
== Other objective metrics ==&lt;br /&gt;
PEAQ is not the end. There are other metrics:&amp;lt;ref&amp;gt;https://github.com/jonnor/machinehearing/blob/09b5060bd03b8a49fc1d0afd8eedba4babca83ca/audio-quality/README.md&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* ITU also has PESQ and POLQA, both designed for speech.&lt;br /&gt;
* [https://github.com/google/visqol VISQOL] is Google&#039;s open-source metric. It works for both speech and music, but the neural network (don&#039;t worry, it runs fast enough on a CPU) is trained for short clips only. Maybe someone can write a tool to one file into many clips and see individual segment scores.&lt;br /&gt;
* CDPAM is allegedly the model that comes closest to human datasets. Unfortunately the only pre-trained model works on 22050 Hz. And it&#039;s academic neural-network code -- not something you can expect to run on first try.&lt;br /&gt;
&lt;br /&gt;
There are also much more primitive methods that don&#039;t attempt anything perceptual, preferred by peddlers of Bluetooth codecs:&lt;br /&gt;
* SNR&lt;br /&gt;
* THD+N&lt;br /&gt;
&lt;br /&gt;
== External links==&lt;br /&gt;
* [[Wikipedia:Perceptual Evaluation of Audio Quality]]&lt;br /&gt;
* [https://www.itu.int/rec/R-REC-BS.1387 ITU BS.1387] download -- free full text of the standard, straight from the official site.&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Software]][[Category:Quality measurement]]&lt;/div&gt;</summary>
		<author><name>Artoria2e5</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=BS.1387&amp;diff=37259</id>
		<title>BS.1387</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=BS.1387&amp;diff=37259"/>
		<updated>2023-08-10T15:01:45Z</updated>

		<summary type="html">&lt;p&gt;Artoria2e5: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;ITU-R recommendation BS.1387&#039;&#039;&#039; is the document that defines &#039;&#039;&#039;Perceptual Evaluation of Audio Quality&#039;&#039;&#039; (PEAQ), an &#039;&#039;objective&#039;&#039; measurement technique used to measure the quality of encoded/decoded audio files. It acts in contrast to more the common place &#039;&#039;subjective&#039;&#039; testing methodology deployed using [[ABX]] and [[ABC/HR]] reference testing -- frequently preferred by hydrogenaudio. PEAQ returns an &amp;quot;ODG&amp;quot; rating, which is intended to match the difference in subjective (1&amp;amp;ndash;5) scores between the two input samples.&lt;br /&gt;
&lt;br /&gt;
== Structure ==&lt;br /&gt;
PEAQ has two versions: basic and advanced. The basic version only uses an FFT-based ear model and is easier to compute. The advanced version uses both FFT and filter bank and is expected to be more accurate.&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
&lt;br /&gt;
BS.1387 was initially published in 1998. It was updated to BS.1387-1 in 2001 and BS.1387-2 in 2023.&lt;br /&gt;
&lt;br /&gt;
* BS.1387-1 includes important technical corrections -- ones that are important to reach the standard&#039;s own conformance criteria.&amp;lt;ref&amp;gt;https://www.opticom.de/download/CorrectionstoBS1387.pdf&amp;lt;/ref&amp;gt;&lt;br /&gt;
* BS.1387-2 seems to have no real change, except for removal of references to BS.1115, addition of a table of contents, and extensive reformatting.&lt;br /&gt;
&lt;br /&gt;
== EAQUAL ==&lt;br /&gt;
&#039;&#039;&#039;EAQUAL&#039;&#039;&#039; (&#039;&#039;Evaluation Of Audio Quality&#039;&#039;) is an open-source software that implements PEAQ&#039;s basic model &#039;&#039;only&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== Invoking EAQUAL ===&lt;br /&gt;
As of version 0.1.3alpha, the &#039;&#039;-h&#039;&#039; argument can be used to find out how to use eaqual (ex: &#039;&#039;eaqual -h&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
To compare a test wave file to a reference wave file, one can use for example: &#039;&#039;eaqual -fref ref.wav -ftest test.wav&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== Interpreting EAQUAL output ===&lt;br /&gt;
EAQUAL outputs one score, the PEAQ &amp;quot;ODG&amp;quot; rating. This ODG (Objective Difference Grade) rating is designed by ITU to match an SDG (Subjective Difference Grade) rating, which is the difference between the subjective (1&amp;amp;ndash;5) scores between the two input samples. Assuming the HydrogenAudio subjective scoring system, where the reference sample is always scored as a perfect 5, adding 5 points to ODG should produce an approximation of the subjective score.&lt;br /&gt;
&lt;br /&gt;
=== Status of the project ===&lt;br /&gt;
Development of EAQUAL was halted in 2002 due to patent concerns. This is not a problem for PEAQ compilance, however, considering the 2001 BS.1387-1 does not differ substantially from the 2023 version.&lt;br /&gt;
&lt;br /&gt;
The ITU patent declaration system does not list any specific PEAQ patent by number. However, no new patents have been added since 1998, so any patent should have expired by 2018.&amp;lt;ref&amp;gt;https://www.itu.int/en/ITU-R/study-groups/Pages/itu-r-patent-information.aspx&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Versions of EAQUAL include:&lt;br /&gt;
* [http://www.mp3-tech.org/programmer/sources/eaqual.tgz EAQUAL Sourcecode] linux archive of c code used to implement EAQUAL provided by Gabriel Bouvigne, mirrored on github by [https://github.com/spxnn/eaqual spxnn]&lt;br /&gt;
* [http://www.rarewares.org/others.html EAQUAL Tools] zip compression archive of the utility used to perform EAQUAL tests provided by Rarewares.&lt;br /&gt;
* [https://github.com/ivan-codelegs/eaqual ivan-codelegs] github fork, adds macOS support&lt;br /&gt;
&lt;br /&gt;
== Comparison with subjective listening tests ==&lt;br /&gt;
* [http://www.hydrogenaudio.org/forums/index.php?showtopic=20264 EAqual results for the AAC@128v2 listening test] - fair Pearson correlation (0.699) among higher-quality samples: all AAC&lt;br /&gt;
* [https://hydrogenaud.io/index.php/topic,124607.msg1031323.htmlGstPEAQ: PEAQ done right, allegedly || Multiformat correlation] - great Pearson correlation (0.924, DI Adv): samples of three quality groups&lt;br /&gt;
&lt;br /&gt;
It remains inconclusive whether EAQUAL can replace human raters at all. Codec developers and researchers do find PEAQ useful.&lt;br /&gt;
&lt;br /&gt;
== Other implementations ==&lt;br /&gt;
PEAQ-Basic is simple enough to have many implementations.&lt;br /&gt;
&lt;br /&gt;
* [https://sourceforge.net/projects/peaqb/ peaqb] is another implementation of PEAQ. Last updated 2003.&lt;br /&gt;
* There a good number of Matlab implementations for researchers. But it&#039;s Matlab, so there&#039;s gonna be academic code smell.&lt;br /&gt;
&lt;br /&gt;
There is one advanced-version implementation: [https://github.com/HSU-ANT/gstpeaq GstPEAQ], which builds on GStreamer. It deviates from the standard less than the previous ones do, and most importantly has the advanced stuff. If any future experimentation on PEAQ is to be done, GstPEAQ should be used.&lt;br /&gt;
&lt;br /&gt;
== Other objective metrics ==&lt;br /&gt;
PEAQ is not the end. There are other metrics:&amp;lt;ref&amp;gt;https://github.com/jonnor/machinehearing/blob/09b5060bd03b8a49fc1d0afd8eedba4babca83ca/audio-quality/README.md&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* ITU also has PESQ and POLQA, both designed for speech.&lt;br /&gt;
* [https://github.com/google/visqol VISQOL] is Google&#039;s open-source metric. It works for both speech and music, but the neural network (don&#039;t worry, it runs fast enough on a CPU) is trained for short clips only. Maybe someone can write a tool to one file into many clips and see individual segment scores.&lt;br /&gt;
* CDPAM is allegedly the model that comes closest to human datasets. Unfortunately the only pre-trained model works on 22050 Hz. And it&#039;s academic neural-network code -- not something you can expect to run on first try.&lt;br /&gt;
&lt;br /&gt;
There are also much more primitive methods that don&#039;t attempt anything perceptual, preferred by peddlers of Bluetooth codecs:&lt;br /&gt;
* SNR&lt;br /&gt;
* THD+N&lt;br /&gt;
&lt;br /&gt;
== External links==&lt;br /&gt;
* [[Wikipedia:Perceptual Evaluation of Audio Quality]]&lt;br /&gt;
* [https://www.itu.int/rec/R-REC-BS.1387 ITU BS.1387] download -- free full text of the standard, straight from the official site.&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Software]][[Category:Quality measurement]]&lt;/div&gt;</summary>
		<author><name>Artoria2e5</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=BS.1387&amp;diff=37258</id>
		<title>BS.1387</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=BS.1387&amp;diff=37258"/>
		<updated>2023-08-10T06:08:50Z</updated>

		<summary type="html">&lt;p&gt;Artoria2e5: /* Interpreting EAQUAL output */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;ITU-R recommendation BS.1387&#039;&#039;&#039; is the document that defines &#039;&#039;&#039;Perceptual Evaluation of Audio Quality&#039;&#039;&#039; (PEAQ), an &#039;&#039;objective&#039;&#039; measurement technique used to measure the quality of encoded/decoded audio files. It acts in contrast to more the common place &#039;&#039;subjective&#039;&#039; testing methodology deployed using [[ABX]] and [[ABC/HR]] reference testing -- frequently preferred by hydrogenaudio. PEAQ returns an &amp;quot;ODG&amp;quot; rating, which is intended to match the difference in subjective (1&amp;amp;ndash;5) scores between the two input samples.&lt;br /&gt;
&lt;br /&gt;
== Structure ==&lt;br /&gt;
PEAQ has two versions: basic and advanced. The basic version only uses an FFT-based ear model and is easier to compute. The advanced version uses both FFT and filter bank and is expected to be more accurate.&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
&lt;br /&gt;
BS.1387 was initially published in 1998. It was updated to BS.1387-1 in 2001 and BS.1387-2 in 2023.&lt;br /&gt;
&lt;br /&gt;
* BS.1387-1 includes important technical corrections -- ones that are important to reach the standard&#039;s own conformance criteria.&amp;lt;ref&amp;gt;https://www.opticom.de/download/CorrectionstoBS1387.pdf&amp;lt;/ref&amp;gt;&lt;br /&gt;
* BS.1387-2 seems to have no real change, except for removal of references to BS.1115, addition of a table of contents, and extensive reformatting.&lt;br /&gt;
&lt;br /&gt;
== EAQUAL ==&lt;br /&gt;
&#039;&#039;&#039;EAQUAL&#039;&#039;&#039; (&#039;&#039;Evaluation Of Audio Quality&#039;&#039;) is an open-source software that implements PEAQ&#039;s basic model &#039;&#039;only&#039;&#039;. Several tests have been performed using EAQUAL most notably using numerous [http://www.hydrogenaudio.org/forums/index.php?showtopic=20264 AAC encoders] to determine via a [http://en.wikipedia.org/wiki/Pearson_correlation Pearson Correlation] the linear relationship between human ratings and EAQUAL ratings on a given set of test samples. The results, however when using objective testing methodologies are still inconclusive and mostly only used by codec developers and researchers.   &lt;br /&gt;
&lt;br /&gt;
=== Invoking EAQUAL ===&lt;br /&gt;
As of version 0.1.3alpha, the &#039;&#039;-h&#039;&#039; argument can be used to find out how to use eaqual (ex: &#039;&#039;eaqual -h&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
To compare a test wave file to a reference wave file, one can use for example: &#039;&#039;eaqual -fref ref.wav -ftest test.wav&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== Interpreting EAQUAL output ===&lt;br /&gt;
EAQUAL outputs one score, the PEAQ &amp;quot;ODG&amp;quot; rating. This ODG (Objective Difference Grade) rating is designed by ITU to match an SDG (Subjective Difference Grade) rating, which is the difference between the subjective (1&amp;amp;ndash;5) scores between the two input samples. Assuming the HydrogenAudio subjective scoring system, where the reference sample is always scored as a perfect 5, adding 5 points to ODG should produce an approximation of the subjective score.&lt;br /&gt;
&lt;br /&gt;
=== Status of the project ===&lt;br /&gt;
Development of EAQUAL was halted in 2002 due to patent concerns. This is not a problem for PEAQ compilance, however, considering the 2001 BS.1387-1 does not differ substantially from the 2023 version.&lt;br /&gt;
&lt;br /&gt;
The ITU patent declaration system does not list any specific PEAQ patent by number. However, no new patents have been added since 1998, so any patent should have expired by 2018.&amp;lt;ref&amp;gt;https://www.itu.int/en/ITU-R/study-groups/Pages/itu-r-patent-information.aspx&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Versions of EAQUAL include:&lt;br /&gt;
* [http://www.mp3-tech.org/programmer/sources/eaqual.tgz EAQUAL Sourcecode] linux archive of c code used to implement EAQUAL provided by Gabriel Bouvigne, mirrored on github by [https://github.com/spxnn/eaqual spxnn]&lt;br /&gt;
* [http://www.rarewares.org/others.html EAQUAL Tools] zip compression archive of the utility used to perform EAQUAL tests provided by Rarewares.&lt;br /&gt;
* [https://github.com/ivan-codelegs/eaqual ivan-codelegs] github fork, adds macOS support&lt;br /&gt;
&lt;br /&gt;
== Other implementations ==&lt;br /&gt;
PEAQ-Basic is simple enough to have many implementations.&lt;br /&gt;
&lt;br /&gt;
* [https://sourceforge.net/projects/peaqb/ peaqb] is another implementation of PEAQ. Last updated 2003.&lt;br /&gt;
* There a good number of Matlab implementations for researchers. But it&#039;s Matlab, so there&#039;s gonna be academic code smell.&lt;br /&gt;
&lt;br /&gt;
There is one advanced-version implementation: [https://github.com/HSU-ANT/gstpeaq GstPEAQ], which builds on GStreamer. It deviates from the standard less than the previous ones do, and most importantly has the advanced stuff. If any future experimentation on PEAQ is to be done, GstPEAQ should be used.&lt;br /&gt;
&lt;br /&gt;
== Other objective metrics ==&lt;br /&gt;
PEAQ is not the end. There are other metrics:&amp;lt;ref&amp;gt;https://github.com/jonnor/machinehearing/blob/09b5060bd03b8a49fc1d0afd8eedba4babca83ca/audio-quality/README.md&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* ITU also has PESQ and POLQA, both designed for speech.&lt;br /&gt;
* [https://github.com/google/visqol VISQOL] is Google&#039;s open-source metric. It works for both speech and music, but the neural network (don&#039;t worry, it runs fast enough on a CPU) is trained for short clips only. Maybe someone can write a tool to one file into many clips and see individual segment scores.&lt;br /&gt;
* CDPAM is allegedly the model that comes closest to human datasets. Unfortunately the only pre-trained model works on 22050 Hz. And it&#039;s academic neural-network code -- not something you can expect to run on first try.&lt;br /&gt;
&lt;br /&gt;
There are also much more primitive methods that don&#039;t attempt anything perceptual, preferred by peddlers of Bluetooth codecs:&lt;br /&gt;
* SNR&lt;br /&gt;
* THD+N&lt;br /&gt;
&lt;br /&gt;
== External links==&lt;br /&gt;
* [[Wikipedia:Perceptual Evaluation of Audio Quality]]&lt;br /&gt;
* [https://www.itu.int/rec/R-REC-BS.1387 ITU BS.1387] download -- free full text of the standard, straight from the official site.&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Software]][[Category:Quality measurement]]&lt;/div&gt;</summary>
		<author><name>Artoria2e5</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=BS.1387&amp;diff=37257</id>
		<title>BS.1387</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=BS.1387&amp;diff=37257"/>
		<updated>2023-08-10T06:03:12Z</updated>

		<summary type="html">&lt;p&gt;Artoria2e5: /* Other objective metrics */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;ITU-R recommendation BS.1387&#039;&#039;&#039; is the document that defines &#039;&#039;&#039;Perceptual Evaluation of Audio Quality&#039;&#039;&#039; (PEAQ), an &#039;&#039;objective&#039;&#039; measurement technique used to measure the quality of encoded/decoded audio files. It acts in contrast to more the common place &#039;&#039;subjective&#039;&#039; testing methodology deployed using [[ABX]] and [[ABC/HR]] reference testing -- frequently preferred by hydrogenaudio. PEAQ returns an &amp;quot;ODG&amp;quot; rating, which is intended to match the difference in subjective (1&amp;amp;ndash;5) scores between the two input samples.&lt;br /&gt;
&lt;br /&gt;
== Structure ==&lt;br /&gt;
PEAQ has two versions: basic and advanced. The basic version only uses an FFT-based ear model and is easier to compute. The advanced version uses both FFT and filter bank and is expected to be more accurate.&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
&lt;br /&gt;
BS.1387 was initially published in 1998. It was updated to BS.1387-1 in 2001 and BS.1387-2 in 2023.&lt;br /&gt;
&lt;br /&gt;
* BS.1387-1 includes important technical corrections -- ones that are important to reach the standard&#039;s own conformance criteria.&amp;lt;ref&amp;gt;https://www.opticom.de/download/CorrectionstoBS1387.pdf&amp;lt;/ref&amp;gt;&lt;br /&gt;
* BS.1387-2 seems to have no real change, except for removal of references to BS.1115, addition of a table of contents, and extensive reformatting.&lt;br /&gt;
&lt;br /&gt;
== EAQUAL ==&lt;br /&gt;
&#039;&#039;&#039;EAQUAL&#039;&#039;&#039; (&#039;&#039;Evaluation Of Audio Quality&#039;&#039;) is an open-source software that implements PEAQ&#039;s basic model &#039;&#039;only&#039;&#039;. Several tests have been performed using EAQUAL most notably using numerous [http://www.hydrogenaudio.org/forums/index.php?showtopic=20264 AAC encoders] to determine via a [http://en.wikipedia.org/wiki/Pearson_correlation Pearson Correlation] the linear relationship between human ratings and EAQUAL ratings on a given set of test samples. The results, however when using objective testing methodologies are still inconclusive and mostly only used by codec developers and researchers.   &lt;br /&gt;
&lt;br /&gt;
=== Invoking EAQUAL ===&lt;br /&gt;
As of version 0.1.3alpha, the &#039;&#039;-h&#039;&#039; argument can be used to find out how to use eaqual (ex: &#039;&#039;eaqual -h&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
To compare a test wave file to a reference wave file, one can use for example: &#039;&#039;eaqual -fref ref.wav -ftest test.wav&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== Interpreting EAQUAL output ===&lt;br /&gt;
EAQUAL outputs one score, the PEAQ &amp;quot;ODG&amp;quot; rating. This ODG (Objective Difference Grade) rating is designed by ITU to match an SDG (Subjective Difference Grade) rating, which is the difference between the subjective (1&amp;amp;ndash;5) scores between the two input samples.&lt;br /&gt;
&lt;br /&gt;
=== Status of the project ===&lt;br /&gt;
Development of EAQUAL was halted in 2002 due to patent concerns. This is not a problem for PEAQ compilance, however, considering the 2001 BS.1387-1 does not differ substantially from the 2023 version.&lt;br /&gt;
&lt;br /&gt;
The ITU patent declaration system does not list any specific PEAQ patent by number. However, no new patents have been added since 1998, so any patent should have expired by 2018.&amp;lt;ref&amp;gt;https://www.itu.int/en/ITU-R/study-groups/Pages/itu-r-patent-information.aspx&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Versions of EAQUAL include:&lt;br /&gt;
* [http://www.mp3-tech.org/programmer/sources/eaqual.tgz EAQUAL Sourcecode] linux archive of c code used to implement EAQUAL provided by Gabriel Bouvigne, mirrored on github by [https://github.com/spxnn/eaqual spxnn]&lt;br /&gt;
* [http://www.rarewares.org/others.html EAQUAL Tools] zip compression archive of the utility used to perform EAQUAL tests provided by Rarewares.&lt;br /&gt;
* [https://github.com/ivan-codelegs/eaqual ivan-codelegs] github fork, adds macOS support&lt;br /&gt;
&lt;br /&gt;
== Other implementations ==&lt;br /&gt;
PEAQ-Basic is simple enough to have many implementations.&lt;br /&gt;
&lt;br /&gt;
* [https://sourceforge.net/projects/peaqb/ peaqb] is another implementation of PEAQ. Last updated 2003.&lt;br /&gt;
* There a good number of Matlab implementations for researchers. But it&#039;s Matlab, so there&#039;s gonna be academic code smell.&lt;br /&gt;
&lt;br /&gt;
There is one advanced-version implementation: [https://github.com/HSU-ANT/gstpeaq GstPEAQ], which builds on GStreamer. It deviates from the standard less than the previous ones do, and most importantly has the advanced stuff. If any future experimentation on PEAQ is to be done, GstPEAQ should be used.&lt;br /&gt;
&lt;br /&gt;
== Other objective metrics ==&lt;br /&gt;
PEAQ is not the end. There are other metrics:&amp;lt;ref&amp;gt;https://github.com/jonnor/machinehearing/blob/09b5060bd03b8a49fc1d0afd8eedba4babca83ca/audio-quality/README.md&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* ITU also has PESQ and POLQA, both designed for speech.&lt;br /&gt;
* [https://github.com/google/visqol VISQOL] is Google&#039;s open-source metric. It works for both speech and music, but the neural network (don&#039;t worry, it runs fast enough on a CPU) is trained for short clips only. Maybe someone can write a tool to one file into many clips and see individual segment scores.&lt;br /&gt;
* CDPAM is allegedly the model that comes closest to human datasets. Unfortunately the only pre-trained model works on 22050 Hz. And it&#039;s academic neural-network code -- not something you can expect to run on first try.&lt;br /&gt;
&lt;br /&gt;
There are also much more primitive methods that don&#039;t attempt anything perceptual, preferred by peddlers of Bluetooth codecs:&lt;br /&gt;
* SNR&lt;br /&gt;
* THD+N&lt;br /&gt;
&lt;br /&gt;
== External links==&lt;br /&gt;
* [[Wikipedia:Perceptual Evaluation of Audio Quality]]&lt;br /&gt;
* [https://www.itu.int/rec/R-REC-BS.1387 ITU BS.1387] download -- free full text of the standard, straight from the official site.&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Software]][[Category:Quality measurement]]&lt;/div&gt;</summary>
		<author><name>Artoria2e5</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=BS.1387&amp;diff=37256</id>
		<title>BS.1387</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=BS.1387&amp;diff=37256"/>
		<updated>2023-08-10T05:56:00Z</updated>

		<summary type="html">&lt;p&gt;Artoria2e5: /* Other implementations */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;ITU-R recommendation BS.1387&#039;&#039;&#039; is the document that defines &#039;&#039;&#039;Perceptual Evaluation of Audio Quality&#039;&#039;&#039; (PEAQ), an &#039;&#039;objective&#039;&#039; measurement technique used to measure the quality of encoded/decoded audio files. It acts in contrast to more the common place &#039;&#039;subjective&#039;&#039; testing methodology deployed using [[ABX]] and [[ABC/HR]] reference testing -- frequently preferred by hydrogenaudio. PEAQ returns an &amp;quot;ODG&amp;quot; rating, which is intended to match the difference in subjective (1&amp;amp;ndash;5) scores between the two input samples.&lt;br /&gt;
&lt;br /&gt;
== Structure ==&lt;br /&gt;
PEAQ has two versions: basic and advanced. The basic version only uses an FFT-based ear model and is easier to compute. The advanced version uses both FFT and filter bank and is expected to be more accurate.&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
&lt;br /&gt;
BS.1387 was initially published in 1998. It was updated to BS.1387-1 in 2001 and BS.1387-2 in 2023.&lt;br /&gt;
&lt;br /&gt;
* BS.1387-1 includes important technical corrections -- ones that are important to reach the standard&#039;s own conformance criteria.&amp;lt;ref&amp;gt;https://www.opticom.de/download/CorrectionstoBS1387.pdf&amp;lt;/ref&amp;gt;&lt;br /&gt;
* BS.1387-2 seems to have no real change, except for removal of references to BS.1115, addition of a table of contents, and extensive reformatting.&lt;br /&gt;
&lt;br /&gt;
== EAQUAL ==&lt;br /&gt;
&#039;&#039;&#039;EAQUAL&#039;&#039;&#039; (&#039;&#039;Evaluation Of Audio Quality&#039;&#039;) is an open-source software that implements PEAQ&#039;s basic model &#039;&#039;only&#039;&#039;. Several tests have been performed using EAQUAL most notably using numerous [http://www.hydrogenaudio.org/forums/index.php?showtopic=20264 AAC encoders] to determine via a [http://en.wikipedia.org/wiki/Pearson_correlation Pearson Correlation] the linear relationship between human ratings and EAQUAL ratings on a given set of test samples. The results, however when using objective testing methodologies are still inconclusive and mostly only used by codec developers and researchers.   &lt;br /&gt;
&lt;br /&gt;
=== Invoking EAQUAL ===&lt;br /&gt;
As of version 0.1.3alpha, the &#039;&#039;-h&#039;&#039; argument can be used to find out how to use eaqual (ex: &#039;&#039;eaqual -h&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
To compare a test wave file to a reference wave file, one can use for example: &#039;&#039;eaqual -fref ref.wav -ftest test.wav&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== Interpreting EAQUAL output ===&lt;br /&gt;
EAQUAL outputs one score, the PEAQ &amp;quot;ODG&amp;quot; rating. This ODG (Objective Difference Grade) rating is designed by ITU to match an SDG (Subjective Difference Grade) rating, which is the difference between the subjective (1&amp;amp;ndash;5) scores between the two input samples.&lt;br /&gt;
&lt;br /&gt;
=== Status of the project ===&lt;br /&gt;
Development of EAQUAL was halted in 2002 due to patent concerns. This is not a problem for PEAQ compilance, however, considering the 2001 BS.1387-1 does not differ substantially from the 2023 version.&lt;br /&gt;
&lt;br /&gt;
The ITU patent declaration system does not list any specific PEAQ patent by number. However, no new patents have been added since 1998, so any patent should have expired by 2018.&amp;lt;ref&amp;gt;https://www.itu.int/en/ITU-R/study-groups/Pages/itu-r-patent-information.aspx&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Versions of EAQUAL include:&lt;br /&gt;
* [http://www.mp3-tech.org/programmer/sources/eaqual.tgz EAQUAL Sourcecode] linux archive of c code used to implement EAQUAL provided by Gabriel Bouvigne, mirrored on github by [https://github.com/spxnn/eaqual spxnn]&lt;br /&gt;
* [http://www.rarewares.org/others.html EAQUAL Tools] zip compression archive of the utility used to perform EAQUAL tests provided by Rarewares.&lt;br /&gt;
* [https://github.com/ivan-codelegs/eaqual ivan-codelegs] github fork, adds macOS support&lt;br /&gt;
&lt;br /&gt;
== Other implementations ==&lt;br /&gt;
PEAQ-Basic is simple enough to have many implementations.&lt;br /&gt;
&lt;br /&gt;
* [https://sourceforge.net/projects/peaqb/ peaqb] is another implementation of PEAQ. Last updated 2003.&lt;br /&gt;
* There a good number of Matlab implementations for researchers. But it&#039;s Matlab, so there&#039;s gonna be academic code smell.&lt;br /&gt;
&lt;br /&gt;
There is one advanced-version implementation: [https://github.com/HSU-ANT/gstpeaq GstPEAQ], which builds on GStreamer. It deviates from the standard less than the previous ones do, and most importantly has the advanced stuff. If any future experimentation on PEAQ is to be done, GstPEAQ should be used.&lt;br /&gt;
&lt;br /&gt;
== Other objective metrics ==&lt;br /&gt;
PEAQ is not the end. There are other metrics:&amp;lt;ref&amp;gt;https://github.com/jonnor/machinehearing/blob/09b5060bd03b8a49fc1d0afd8eedba4babca83ca/audio-quality/README.md&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* ITU also has PESQ and POLQA, both designed for speech.&lt;br /&gt;
* [https://github.com/google/visqol VISQOL] is Google&#039;s open-source metric. It works for both speech and music, but the neural network (don&#039;t worry, it runs fast enough on a CPU) is trained for short clips only. Maybe someone can write a tool to one file into many clips and see individual segment scores.&lt;br /&gt;
* CDPAM is allegedly the model that comes closest to human datasets. Unfortunately the only pre-trained model works on 22050 Hz. And it&#039;s academic neural-network code -- not something you can expect to run on first try.&lt;br /&gt;
&lt;br /&gt;
== External links==&lt;br /&gt;
* [[Wikipedia:Perceptual Evaluation of Audio Quality]]&lt;br /&gt;
* [https://www.itu.int/rec/R-REC-BS.1387 ITU BS.1387] download -- free full text of the standard, straight from the official site.&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Software]][[Category:Quality measurement]]&lt;/div&gt;</summary>
		<author><name>Artoria2e5</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=BS.1387&amp;diff=37255</id>
		<title>BS.1387</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=BS.1387&amp;diff=37255"/>
		<updated>2023-08-10T05:55:11Z</updated>

		<summary type="html">&lt;p&gt;Artoria2e5: /* Other implementations */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;ITU-R recommendation BS.1387&#039;&#039;&#039; is the document that defines &#039;&#039;&#039;Perceptual Evaluation of Audio Quality&#039;&#039;&#039; (PEAQ), an &#039;&#039;objective&#039;&#039; measurement technique used to measure the quality of encoded/decoded audio files. It acts in contrast to more the common place &#039;&#039;subjective&#039;&#039; testing methodology deployed using [[ABX]] and [[ABC/HR]] reference testing -- frequently preferred by hydrogenaudio. PEAQ returns an &amp;quot;ODG&amp;quot; rating, which is intended to match the difference in subjective (1&amp;amp;ndash;5) scores between the two input samples.&lt;br /&gt;
&lt;br /&gt;
== Structure ==&lt;br /&gt;
PEAQ has two versions: basic and advanced. The basic version only uses an FFT-based ear model and is easier to compute. The advanced version uses both FFT and filter bank and is expected to be more accurate.&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
&lt;br /&gt;
BS.1387 was initially published in 1998. It was updated to BS.1387-1 in 2001 and BS.1387-2 in 2023.&lt;br /&gt;
&lt;br /&gt;
* BS.1387-1 includes important technical corrections -- ones that are important to reach the standard&#039;s own conformance criteria.&amp;lt;ref&amp;gt;https://www.opticom.de/download/CorrectionstoBS1387.pdf&amp;lt;/ref&amp;gt;&lt;br /&gt;
* BS.1387-2 seems to have no real change, except for removal of references to BS.1115, addition of a table of contents, and extensive reformatting.&lt;br /&gt;
&lt;br /&gt;
== EAQUAL ==&lt;br /&gt;
&#039;&#039;&#039;EAQUAL&#039;&#039;&#039; (&#039;&#039;Evaluation Of Audio Quality&#039;&#039;) is an open-source software that implements PEAQ&#039;s basic model &#039;&#039;only&#039;&#039;. Several tests have been performed using EAQUAL most notably using numerous [http://www.hydrogenaudio.org/forums/index.php?showtopic=20264 AAC encoders] to determine via a [http://en.wikipedia.org/wiki/Pearson_correlation Pearson Correlation] the linear relationship between human ratings and EAQUAL ratings on a given set of test samples. The results, however when using objective testing methodologies are still inconclusive and mostly only used by codec developers and researchers.   &lt;br /&gt;
&lt;br /&gt;
=== Invoking EAQUAL ===&lt;br /&gt;
As of version 0.1.3alpha, the &#039;&#039;-h&#039;&#039; argument can be used to find out how to use eaqual (ex: &#039;&#039;eaqual -h&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
To compare a test wave file to a reference wave file, one can use for example: &#039;&#039;eaqual -fref ref.wav -ftest test.wav&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== Interpreting EAQUAL output ===&lt;br /&gt;
EAQUAL outputs one score, the PEAQ &amp;quot;ODG&amp;quot; rating. This ODG (Objective Difference Grade) rating is designed by ITU to match an SDG (Subjective Difference Grade) rating, which is the difference between the subjective (1&amp;amp;ndash;5) scores between the two input samples.&lt;br /&gt;
&lt;br /&gt;
=== Status of the project ===&lt;br /&gt;
Development of EAQUAL was halted in 2002 due to patent concerns. This is not a problem for PEAQ compilance, however, considering the 2001 BS.1387-1 does not differ substantially from the 2023 version.&lt;br /&gt;
&lt;br /&gt;
The ITU patent declaration system does not list any specific PEAQ patent by number. However, no new patents have been added since 1998, so any patent should have expired by 2018.&amp;lt;ref&amp;gt;https://www.itu.int/en/ITU-R/study-groups/Pages/itu-r-patent-information.aspx&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Versions of EAQUAL include:&lt;br /&gt;
* [http://www.mp3-tech.org/programmer/sources/eaqual.tgz EAQUAL Sourcecode] linux archive of c code used to implement EAQUAL provided by Gabriel Bouvigne, mirrored on github by [https://github.com/spxnn/eaqual spxnn]&lt;br /&gt;
* [http://www.rarewares.org/others.html EAQUAL Tools] zip compression archive of the utility used to perform EAQUAL tests provided by Rarewares.&lt;br /&gt;
* [https://github.com/ivan-codelegs/eaqual ivan-codelegs] github fork, adds macOS support&lt;br /&gt;
&lt;br /&gt;
== Other implementations ==&lt;br /&gt;
PEAQ-Basic is simple enough to have many implementations.&lt;br /&gt;
&lt;br /&gt;
* [https://sourceforge.net/projects/peaqb/ peaqb] is another implementation of PEAQ. Last updated 2003.&lt;br /&gt;
* There a good number of Matlab implementations for researchers. But it&#039;s Matlab, so there&#039;s gonna be academic code smell.&lt;br /&gt;
&lt;br /&gt;
There is one advanced-version implementation: [https://github.com/HSU-ANT/gstpeaq GstPEAQ], which builds on GStreamer. It deviates from the standard less than the previous ones do, and most importantly has the advanced stuff.&lt;br /&gt;
&lt;br /&gt;
== Other objective metrics ==&lt;br /&gt;
PEAQ is not the end. There are other metrics:&amp;lt;ref&amp;gt;https://github.com/jonnor/machinehearing/blob/09b5060bd03b8a49fc1d0afd8eedba4babca83ca/audio-quality/README.md&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* ITU also has PESQ and POLQA, both designed for speech.&lt;br /&gt;
* [https://github.com/google/visqol VISQOL] is Google&#039;s open-source metric. It works for both speech and music, but the neural network (don&#039;t worry, it runs fast enough on a CPU) is trained for short clips only. Maybe someone can write a tool to one file into many clips and see individual segment scores.&lt;br /&gt;
* CDPAM is allegedly the model that comes closest to human datasets. Unfortunately the only pre-trained model works on 22050 Hz. And it&#039;s academic neural-network code -- not something you can expect to run on first try.&lt;br /&gt;
&lt;br /&gt;
== External links==&lt;br /&gt;
* [[Wikipedia:Perceptual Evaluation of Audio Quality]]&lt;br /&gt;
* [https://www.itu.int/rec/R-REC-BS.1387 ITU BS.1387] download -- free full text of the standard, straight from the official site.&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Software]][[Category:Quality measurement]]&lt;/div&gt;</summary>
		<author><name>Artoria2e5</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=Opus&amp;diff=37254</id>
		<title>Opus</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=Opus&amp;diff=37254"/>
		<updated>2023-08-10T05:54:40Z</updated>

		<summary type="html">&lt;p&gt;Artoria2e5: /* CELT layer latency versus quality/bitrate trade-off */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Software Infobox&lt;br /&gt;
| name = Opus&lt;br /&gt;
| logo = [[Image:opus-logo.png|250px|Official Opus logo]]&lt;br /&gt;
| screenshot =&lt;br /&gt;
| caption = Opus Interactive Audio Codec&lt;br /&gt;
| maintainer = [http://xiph.org/ Xiph.Org Foundation]&lt;br /&gt;
| stable_release = 1.4&lt;br /&gt;
| operating_system = Windows, Mac OS/X, Linux/BSD&lt;br /&gt;
| use = Encoder/Decoder&lt;br /&gt;
| license = 3-clause BSD license&lt;br /&gt;
| website = [http://www.opus-codec.org/ opus-codec.org]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Opus&#039;&#039;&#039; is a [[lossy]] audio compression format developed by the Internet Engineering Task Force (IETF) designed to be suitable for interactive real-time applications over the Internet,{{ref|homepage|a}} including music as well as speech, yet it is also very competitive for use as a storage and playback format, being a [https://web.archive.org/web/20200130083553/http://people.xiph.org/~greg/opus/ha2011/ class leader at around 64 kbps] and [http://listening-test.coresv.net/results.htm also at 96 kbps]. As an open format standardised through [http://tools.ietf.org/html/rfc6716 Request for Comments (RFC) 6716],{{ref|RFC|c}} a high quality reference implementation is provided under the 3-clause BSD license{{ref|homepage|a}} which compiles and runs on the vast majority of general purpose and embedded (fixed point) processors. Many Software patents which cover Opus are licensed under royalty-free terms.{{ref|FAQ|b}}  Opus is also a Mandatory To Implement (MTI) codec for the upcoming WebRTC (Web Real Time Communication) specification of the World Wide Web Consortium (W3C).&lt;br /&gt;
&lt;br /&gt;
Opus incorporates technology from two codecs, the speech-oriented SILK codec developed by Skype and the multi-purpose low-latency CELT codec developed by Xiph.org with significant changes to each to ensure they can work together.{{ref|RFC|c}} Opus can seamlessly transition among high and low bitrates, using a linear prediction codec (the SILK layer) at lower bitrates and a lapped transform codec (the CELT layer) at higher bitrates, as well as a hybrid of the two for a short overlap in which SILK encodes the 0–8&amp;amp;nbsp;kHz spectrum and the CELT layer encodes only the frequencies above 8kHz.{{ref|RFC|c}} Opus has very low algorithmic delay (typ 22.5&amp;amp;nbsp;ms) compared to popular music formats such as [[MP3]], [[Vorbis |Ogg Vorbis]], [[AAC | LC-AAC and HE-AAC]] (all over 100&amp;amp;nbsp;ms), yet performs very competitively with them in terms of quality per bitrate, making it comparably viable as a storage &amp;amp; playback format. Also unlike Vorbis, Opus does not require the definition of large codebooks for each individual file, making it also preferable for short clips of audio, such as those often used by game developers, a field where patent-free Vorbis is commonly used.{{ref|RFC|c}}&lt;br /&gt;
&lt;br /&gt;
Considerably more details of the history and potential applications for Opus are included in the &#039;&#039;Wikipedia&#039;&#039; page for &#039;&#039;&#039;[http://en.wikipedia.org/wiki/Opus_%28audio_format%29 Opus (audio format)]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Characteristics==&lt;br /&gt;
Opus supports bitrates from 6&amp;amp;nbsp;kbps to 510&amp;amp;nbsp;kbps for typical stereo audio sources (and a maximum of around 255 kbps per channel for multichannel audio), with the &#039;sweet spot&#039; for music and general audio around 30&amp;amp;nbsp;kbps (mono) and 40–100&amp;amp;nbsp;kbps (stereo). It is intrinsically [[VBR | variable bitrate]], though constrained VBR and [[CBR | constant bitrate]] modes are possible where required. In the case of the reference release, libopus, the target bitrate is calibrated against the internal constant quality targets so that over a typical music collection, something very close to the target bitrate will be achieved. This bitrate-calibrated approach differs from most VBR encoders (e.g. LAME, helix mp3, qaac, Nero aacenc, Ogg Vorbis, Musepack) where a setting on some &#039;constant quality&#039; scale (which differs between encoders) is used and the bitrate will fall where it may. Improved future versions can be expected to offer improved quality at the same setting. Independent implementations may adopt a different approach.&lt;br /&gt;
&lt;br /&gt;
Opus is able to seamlessly adapt its mode of operation without glitches or sound interruption (an illustrative demonstration of [http://opus-codec.org/examples/#gauge bitrate scalability] is on the Opus Examples page), which can be particularly useful for mixed-content audio or varying network conditions, making the unified Opus codec superior to a suite of different codecs that might otherwise cover the same range of bitrate and quality settings and would require out-of-band signalling to instigate codec switching. The switching includes the choice of mono, stereo and other channel mappings, the use of the speech-oriented SILK layer, the general-purpose CELT layer or the hybrid of both, and the use of different audio bandwidths (4, 6, 8, 12, or 20&amp;amp;nbsp;kHz) as well as the quality adjustments within the same operating mode that are available in most VBR-capable codecs.&lt;br /&gt;
&lt;br /&gt;
Of importance mainly to interactive uses, but potentially useful in time-delayed audio streaming also, Opus includes packet loss concealment (PLC) in all modes and, in the speech-oriented modes where the SILK layer is active it also supports Forward Error Correction (FEC) where the expected rate of packet loss can be indicated to the encoder by the user or by application software and critical frames (e.g. consonant sounds) can be retransmitted at low bitrate to preserve intelligibility.&lt;br /&gt;
&lt;br /&gt;
For music and general audio, the CELT layer of Opus builds on knowledge gained during xiph.org&#039;s Vorbis development and ensures as a primary goal that the total energy in each spectral band is preserved while requiring only a modest bitrate overhead to achieve this, thereby eliminating a lot of bitrate-starvation artifacts such as &#039;birdies&#039; that are common in low-bitrate MP3, especially during transients, applause and cymbal sounds. This technique likewise increases coding efficiency at bitrates targetting transparent music reproduction. Short blocks (2.5&amp;amp;nbsp;ms) are also possible for efficient transient handling. Short blocks can also be used exclusively, if very low algorithmic delay (5.0&amp;amp;nbsp;ms) is required to enable very low-latency interative audio (e.g. live networked music performances such as remote jam sessions), though greater bitrate is then required to maintain the same quality (illustrated in [http://people.xiph.org/~xiphmont/demo/celt/demo.html#demo Monty&#039;s CELT demo page] under Constant PEAQ value, varying latency). CELT uses a number of additional techniques and provides additional advanced tools to enable encoder tuning.&lt;br /&gt;
&lt;br /&gt;
Opus natively supports [[gapless playback]] (though [[Gapless_playback#Poorly_designed_playback_systems | poor player design]] might itself induce interruptions during playback). Playback gain is also required, making some form of [[ReplayGain]] or [[ReplayGain_2.0_specification | similar]] volume control possible in any compliant player.&lt;br /&gt;
&lt;br /&gt;
==Bitrate performance==&lt;br /&gt;
For mono speech, Opus ranges from intelligible narrowband speech reproduction starting at 6&amp;amp;nbsp;kbps to medium-band, wideband and superwideband speech, reaching full-band speech by around 14&amp;amp;nbsp;kbps in encoder version 1.2 (was 21&amp;amp;nbsp;kbps in v1.1, 29&amp;amp;nbsp;kbps in v1.0). Above about 32&amp;amp;nbsp;kbps, the SILK layer is no longer used at all, as CELT alone gives superior quality.&lt;br /&gt;
&lt;br /&gt;
For music, the SILK modes are quite tolerable and better than CELT at very low bitrates. The hybrid mode is adopted as bitrate increases, extending bandwidth first to 12&amp;amp;nbsp;kHz (comparable with compact cassette) then to the full 20&amp;amp;nbsp;kHz and CELT then takes over. Assuming the source is stereo, the transition from mono to stereo typically happens between the transition from 12&amp;amp;nbsp;kHz to 20&amp;amp;nbsp;kHz. Encoder version 1.2 includes great improvements to music encoding in the 32–64&amp;amp;nbsp;kbps range, allowing full-band stereo at 32&amp;amp;nbsp;kbps and providing acceptable quality at 48&amp;amp;nbsp;kbps where artifacts are audible but rarely annoying. Version 1.3 is expected to further improve quality in this range.&lt;br /&gt;
&lt;br /&gt;
Multi-format stereo music listening tests have demonstrated the superiority of Opus at 64&amp;amp;nbsp;kbps and 96&amp;amp;nbsp;kbps compared to the best AAC-LC, HE-AAC and Ogg Vorbis encoders, and at 96&amp;amp;nbsp;kbps also to 128&amp;amp;nbsp;kbps MP3 encoded using LAME &amp;lt;code&amp;gt;-V 5&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Indicative bitrate and quality==&lt;br /&gt;
The tables below give illustrative, indicative quality guidance based on typical modes used internally by Opus and a range of listening tests.&lt;br /&gt;
&lt;br /&gt;
In encoder version 1.1 automatic detection of speech/music and bandwidth detection were introduced to improve mode decisions and VBR is less constrained, all with the aim of maximizing the quality/bitrate tradeoff, and these improvements are further enhanced in version 1.2 and 1.3. These tables are likely to require updates as the encoder is improved, especially in low-bitrate regions.&lt;br /&gt;
&lt;br /&gt;
===Speech encoding quality===&lt;br /&gt;
This table assumes a &#039;&#039;&#039;monophonic&#039;&#039;&#039; source sampled at CD quality or above (typ 48 kHz sampling rate) but mentions stereo compatibility for 40kbps+. The default 20ms frame size (22.5ms latency) is assumed. Note that the selection of &#039;&#039;VOIP&#039;&#039; mode will deliberately modify the sound with a High Pass Filter and emphasis of formants and harmonics to improve intelligibility of speech especially in noisy environments much as telephones do. &#039;&#039;Auto&#039;&#039; mode will not modify the sound prior to encoding so is usually better for high quality speech recordings or mixed speech and music.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Bitrate Target&lt;br /&gt;
!Bandwidth&lt;br /&gt;
!Typical Mode Used&lt;br /&gt;
!Speech Quality&lt;br /&gt;
!Use Cases / Competitive Codecs&lt;br /&gt;
|-&lt;br /&gt;
!Less than 5 kbps&lt;br /&gt;
| &amp;amp;mdash;&lt;br /&gt;
| &amp;amp;mdash;&lt;br /&gt;
| Bitrates lower than 6 kbps not supported by Opus (SILK disabled if forced to encode, which results in terrible speech quality)&lt;br /&gt;
| Try [https://en.wikipedia.org/wiki/Codec_2 Codec 2] for 0.45–3.2&amp;amp;nbsp;kbps mono speech or [[Wikipedia:Lyra (codec)|Lyra]] for 3.2&amp;amp;nbsp;kbps mono speech&lt;br /&gt;
|-&lt;br /&gt;
!6 kbps&lt;br /&gt;
|6 kHz medium-band&lt;br /&gt;
|SILK&lt;br /&gt;
|Fair, intelligible&lt;br /&gt;
|AMR-NB may be a little better, but higher latency &amp;amp; proprietary, [[Speex]] also competitive&lt;br /&gt;
|-&lt;br /&gt;
!8 kbps&lt;br /&gt;
|6 kHz medium-band&lt;br /&gt;
|SILK&lt;br /&gt;
|Close to telephone quality&lt;br /&gt;
|AMR-NB &amp;amp; AMR-WB similar quality, but higher latency &amp;amp; proprietary. [[Speex]] competitive.&lt;br /&gt;
|-&lt;br /&gt;
!12 kbps&lt;br /&gt;
|12 kHz super-wideband&lt;br /&gt;
|hybrid&lt;br /&gt;
|Medium bandwidth, better than telephone quality&lt;br /&gt;
|Similar quality to AMR-WB&lt;br /&gt;
|-&lt;br /&gt;
!16 kbps&lt;br /&gt;
|20 kHz&lt;br /&gt;
|hybrid/CELT&lt;br /&gt;
|Wideband speech quality&lt;br /&gt;
|Similar to/better than AMR-WB&lt;br /&gt;
|-&lt;br /&gt;
!24 kbps&lt;br /&gt;
|20 kHz&lt;br /&gt;
|hybrid/CELT&lt;br /&gt;
|Near transparent speech&lt;br /&gt;
|Better than AMR-WB. Podcasts/audiobooks/talk-radio.&lt;br /&gt;
|-&lt;br /&gt;
!32 kbps&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Essentially transparent speech plus moderately good stereo music&lt;br /&gt;
|Much better than AMR-WB. Podcasts/audiobooks/talk-radio.&lt;br /&gt;
|-&lt;br /&gt;
!40 kbps&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Essentially transparent mono or stereo speech, fairly good stereo music&lt;br /&gt;
|Stereo podcasts/audiobooks/talk radio with some music&lt;br /&gt;
|-&lt;br /&gt;
!48 kbps or more&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Essentially transparent mono or stereo speech, reasonable music&lt;br /&gt;
|Flexible general purpose modes to suit mixed music and speech&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Music encoding quality===&lt;br /&gt;
This table assumes a &#039;&#039;&#039;stereophonic&#039;&#039;&#039; source sampled at CD quality or above (typ 48&amp;amp;nbsp;kHz sampling rate). Opus will automatically use mono at very low bitrates, though a certain amount of stereo encoding can still be used (content dependent) even when mono is specified as the typical stereo mode in the table below.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Bitrate target&lt;br /&gt;
!Stereo mode&lt;br /&gt;
!Bandwidth&lt;br /&gt;
!typ SILK/CELT use&lt;br /&gt;
!Music quality notes&lt;br /&gt;
!Use cases/notes/competitive codecs&lt;br /&gt;
|-&lt;br /&gt;
!6 kbps&lt;br /&gt;
|mono&lt;br /&gt;
|6 kHz&lt;br /&gt;
|SILK&lt;br /&gt;
|Poor, muffled sound but intelligible lyrics.&lt;br /&gt;
| &amp;amp;mdash;&lt;br /&gt;
|-&lt;br /&gt;
!8 kbps&lt;br /&gt;
|mono&lt;br /&gt;
|6 kHz&lt;br /&gt;
|SILK&lt;br /&gt;
|Poor, muffled but OK for bitrate&lt;br /&gt;
| &amp;amp;mdash;&lt;br /&gt;
|-&lt;br /&gt;
!14 to 16 kbps&lt;br /&gt;
|mono&lt;br /&gt;
|20 kHz&lt;br /&gt;
|hybrid/CELT&lt;br /&gt;
|Fairly poor but OK for bitrate&lt;br /&gt;
|Perhaps acceptable for incidental music&lt;br /&gt;
|-&lt;br /&gt;
!22 to 24 kbps&lt;br /&gt;
|mono&lt;br /&gt;
|20 kHz&lt;br /&gt;
|hybrid/CELT&lt;br /&gt;
|Fair but OK for bitrate&lt;br /&gt;
|OK for incidental music&lt;br /&gt;
|-&lt;br /&gt;
!32 to 40 kbps&lt;br /&gt;
|stereo&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Moderately good stereo, some artifacts, rarely nasty&lt;br /&gt;
|Stereo podcasts, audiobooks, very low bitrate music&lt;br /&gt;
|-&lt;br /&gt;
!48 kbps&lt;br /&gt;
|stereo&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Full bandwidth stereo music, nice sound, may have problems with cymbals&lt;br /&gt;
|Stereo podcasts, audiobooks, low bitrate music&lt;br /&gt;
|-&lt;br /&gt;
!64 kbps&lt;br /&gt;
|stereo&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Full bandwidth stereo music, nice sound, detectable differences to original (mostly &#039;not annoying&#039;)&lt;br /&gt;
|Music storage &amp;amp; streaming. Beat HE-AAC, Vorbis, MP3 in [https://web.archive.org/web/20200130083553/http://people.xiph.org/~greg/opus/ha2011/ listening test]&lt;br /&gt;
|-&lt;br /&gt;
!96 kbps&lt;br /&gt;
|stereo&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Full bandwidth stereo music, good quality approaching transparency&lt;br /&gt;
|Music storage &amp;amp; high quality streaming. Beat LC-AAC, Vorbis, MP3 in [http://listening-test.coresv.net/results.htm listening test]&lt;br /&gt;
|-&lt;br /&gt;
!112 kbps&lt;br /&gt;
|stereo&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Fairly close to transparency (needs more testing)&lt;br /&gt;
|Music storage &amp;amp; high quality streaming. Very low-latency stereo networked music performance/jam sessions at OK quality (see below table)&lt;br /&gt;
|-&lt;br /&gt;
!128 kbps&lt;br /&gt;
|stereo&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Very close to transparency (needs more testing). Most modern codecs competitive (AAC-LC, Vorbis, MP3)&lt;br /&gt;
|Music storage &amp;amp; streaming. Future download music sales.&lt;br /&gt;
|-&lt;br /&gt;
!160 to 192 kbps&lt;br /&gt;
|stereo&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Transparent with very low chance of artifacts (a few killer samples still detectable). Most old &amp;amp; new lossy codecs competitive.&lt;br /&gt;
|Music storage &amp;amp; streaming, dedicated limited-bandwidth audio links (e.g. wireless, [http://en.wikipedia.org/wiki/Bluetooth_profile#Advanced_Audio_Distribution_Profile_.28A2DP.29 A2DP-bluetooth] type links). &lt;br /&gt;
|-&lt;br /&gt;
!510 kbps&lt;br /&gt;
|stereo&lt;br /&gt;
|20 kHz&lt;br /&gt;
|CELT&lt;br /&gt;
|Maximum possible stereo bitrate target (actual rate often less than 510 for default frame size). Most old and new lossy codecs competitive, plus near-lossless [[lossyWAV]] and [[WavPack | WavPack lossy]]&lt;br /&gt;
|Music storage, dedicated limited-bitrate audio links (e.g. wireless, minimum latency high quality audio. LossyWAV and WavPack lossy are very competitive for storage, and WavPack lossy &amp;lt;code&amp;gt;--blocksize=256&amp;lt;/code&amp;gt; may be competitive with minimum latency mode also.&lt;br /&gt;
|-&lt;br /&gt;
!&amp;gt;510 kbps&lt;br /&gt;
| &amp;amp;mdash;&lt;br /&gt;
| &amp;amp;mdash;&lt;br /&gt;
| &amp;amp;mdash;&lt;br /&gt;
|Above Opus bitrate range allowed for stereo sources&lt;br /&gt;
|Settle for 510&amp;amp;nbsp;kbps or use [[lossless]], [[lossyWAV]], [[WavPack | WavPack lossy]] or lossy transform/subband codecs like [[Vorbis]], [[Musepack]] at very high settings.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Lower latency versus quality/bitrate trade-off===&lt;br /&gt;
====Packet overhead in interactive applications====&lt;br /&gt;
For interactive use on the Internet or other packet-based networks, total bandwidth used will be subject to packet overhead. The more packet headers that are transmitted every second, the greater will be the overhead that is required. For this reason, Opus, while defaulting to 20&amp;amp;nbsp;ms frames, supports 60&amp;amp;nbsp;ms frames to reduce overhead when transporting low-bitrate SILK frames at the expense of greater latency, which may still be acceptable for speech, and also supports 10&amp;amp;nbsp;ms SILK frames to reduce latency somewhat at the expense of packet overhead.&lt;br /&gt;
&lt;br /&gt;
In the CELT layer, which tends to operate at higher bitrates than SILK, 20&amp;amp;nbsp;ms frames are the default, but frames of 10&amp;amp;nbsp;ms, 5&amp;amp;nbsp;ms and 2.5&amp;amp;nbsp;ms are also possible, which directly increases the frame overhead by transmitting more packets per second to achieve lower latency. In addition, as we&#039;ll see below it also reduces the quality/bitrate tradeoff of the CELT layer itself.&lt;br /&gt;
&lt;br /&gt;
You probably do not want to use a frame size lower than 10&amp;amp;nbsp;ms in applications containing speech, as doing so turns off SILK. The &amp;quot;lowdelay&amp;quot; application switch (available in FFmpeg and the raw library) turns off SILK to cut out 4&amp;amp;nbsp;ms of synchronization delay, but a frame size of 10&amp;amp;nbsp;ms achieves more delay reduction compared to default without sacrificing SILK.&lt;br /&gt;
&lt;br /&gt;
None of the bitrates mentioned in this article account for the packet overhead.&lt;br /&gt;
&lt;br /&gt;
====CELT layer latency versus quality/bitrate trade-off====&lt;br /&gt;
Unlike the SILK layer, which works on fixed 10&amp;amp;nbsp;ms blocks, 1, 2 or 6 of which can be combined into an Opus frame, the CELT layer is able to modify the encoding block lengths available to enable its use with shorter frames.&lt;br /&gt;
&lt;br /&gt;
When the CELT layer uses 10&amp;amp;nbsp;ms, 5&amp;amp;nbsp;ms and 2.5&amp;amp;nbsp;ms frames instead of the default 20&amp;amp;nbsp;ms, it must use smaller transform block sizes to achieve this, thereby reducing frequency resolution in the MDCT compared to the default transform window, thus reducing encoding efficiency for tonal signals. To obtain the same frequency precision for a sound divided into shorter transform windows, improved amplitude precision is necessary, resulting in increased bitrate to obtain the same perceptual quality (or conversely lower quality at the same bitrate).&lt;br /&gt;
&lt;br /&gt;
These reduced-latency modes remain efficient for transient signals, which use short blocks anyway.&lt;br /&gt;
&lt;br /&gt;
In all modes, the algorithmic delay consists of the frame size plus an additional 2.5&amp;amp;nbsp;ms delay. The CELT layer requires 2.5&amp;amp;nbsp;ms for MDCT window overlap.&lt;br /&gt;
&lt;br /&gt;
Xiph.org used matched [[PEAQ]] scores (approximate perceptual quality assessment made in software) for the CELT0.10 codec that was used as the basis of the CELT layer in the Opus reference release, which indicate the following [http://people.xiph.org/~xiphmont/demo/celt/demo.html#demo approximate equivalent settings] for stereo music.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Frame size&lt;br /&gt;
!Algorithmic delay&lt;br /&gt;
!Bitrate to match 64kbps@22.5ms delay&lt;br /&gt;
!fractional bitrate increase&lt;br /&gt;
|-&lt;br /&gt;
!20 ms&lt;br /&gt;
|22.5 ms&lt;br /&gt;
|64.0 kbps&lt;br /&gt;
| +0.0 %&lt;br /&gt;
|-&lt;br /&gt;
!10 ms&lt;br /&gt;
|12.5 ms&lt;br /&gt;
|70.4 kbps&lt;br /&gt;
| +10.0 %&lt;br /&gt;
|-&lt;br /&gt;
!5 ms&lt;br /&gt;
|7.5 ms&lt;br /&gt;
|84.8 kbps&lt;br /&gt;
| +32.5 %&lt;br /&gt;
|-&lt;br /&gt;
!2.5 ms&lt;br /&gt;
|5.0 ms&lt;br /&gt;
|112.0 kbps&lt;br /&gt;
| +75.0 %&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
N.B. This table is useful for interactive streaming only. For music storage &amp;amp; delayed playback or non-interactive streaming, latency reduction is not important and the default 20&amp;amp;nbsp;ms frame size is preferable.&lt;br /&gt;
&lt;br /&gt;
== Implementations ==&lt;br /&gt;
&lt;br /&gt;
The format and algorithms are openly documented and the reference implementation is published as free software. The reference implementation (Opus Audio Tools, opus-tools), consisting of separate encoders and decoders, is published under the terms of a BSD-like license. It is written in C programming language and can be compiled for hardware architectures with or without floating point unit. The accompanying diagnostic tool opusinfo reports detailed technical information about Opus files, including information on the standard compliance of the bitstream format. It is based on ogginfo from the vorbis-tools and therefore, unlike the encoder and decoder, available under the terms of version 2 of the GPL.&lt;br /&gt;
&lt;br /&gt;
=== Reference implementation (libopus + binaries) ===&lt;br /&gt;
The commandline tools of the reference version are available pre-compiled for the most popular operating systems at [http://opus-codec.org/downloads opus-codec.org] and [https://ftp.mozilla.org/pub/mozilla.org/opus/ Mozilla&#039;s ftp server], plus in the foobar2000 free encoders pack and some alternative compiles through the hydrogenaud.io opus forum. The libopus commandline tools include encoder &amp;lt;code&amp;gt;opusenc&amp;lt;/code&amp;gt;, decoder &amp;lt;code&amp;gt;opusdec&amp;lt;/code&amp;gt;, and with a different license, the &amp;lt;code&amp;gt;opusinfo&amp;lt;/code&amp;gt; opus stream &amp;amp; metadata analyzer.&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;latest stable release&#039;&#039;&#039; is recommended for general use and as of mid 2014 is considered competitive with or superior to the best alternative speech or general music encoders at most supported bitrates.&lt;br /&gt;
&lt;br /&gt;
==== libopus v1.0 ====&lt;br /&gt;
Released 11 Sep 2012 when RFC6716 was standardized but mostly fully developed by late 2011.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Stable, well-tuned&#039;&#039;&#039; &amp;lt;code&amp;gt;opusenc&amp;lt;/code&amp;gt; reference encoder as included in RFC documentation.&lt;br /&gt;
&lt;br /&gt;
CELT layer closely related to CELT 0.10 implements Constrained VBR mode by default (bitrate boost used mainly for transients), plus true CBR.&lt;br /&gt;
&lt;br /&gt;
==== libopus v1.1 ==== &lt;br /&gt;
&lt;br /&gt;
The alpha source code released 21 Dec 2012 for testing &amp;amp; user feedback and following a beta release and testing, the stable 1.1 version was released on 5 December 2013, considered well tested enough for general release.&lt;br /&gt;
&lt;br /&gt;
CELT layer [http://jmspeex.livejournal.com/11737.html quality improvements] introduced to provide &#039;&#039;&#039;unconstrained VBR&#039;&#039;&#039; include a rate boost not just for transients but now for highly tonal signals too and rate reduction when stereo image is narrow. There&#039;s also a rewrite of its &#039;&#039;&#039;transient detection&#039;&#039;&#039; code and &#039;&#039;&#039;time-frequency analysis&#039;&#039;&#039; code, and rewritten &#039;&#039;&#039;dynamic allocation&#039;&#039;&#039; code (HF/LF tilt and Band Boost) to allow more aggressive changes from the typical static allocation when warranted.&lt;br /&gt;
&lt;br /&gt;
There are many minor improvements to &#039;&#039;&#039;speech quality&#039;&#039;&#039; in both SILK and CELT layers.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;DC-rejection&#039;&#039;&#039; below 3 Hz also aids quality if inaudible DC offset is present with no effect on deep bass notes.&lt;br /&gt;
*&#039;&#039;&#039;Automatic speech/music detection&#039;&#039;&#039; is introduced to optimize encoding mode choices, especially near the bitrate target range (presumably around 24–40&amp;amp;nbsp;kbps) where the encoder may perform best with SILK, hybrid or CELT depending on content type. Below that range SILK performs best for both music &amp;amp; speech, and above it CELT performs best for speech &amp;amp; music. The detection, without look-ahead is not perfect but usually is undecided in audio where either mode will work well.&lt;br /&gt;
*&#039;&#039;&#039;Automatic bandwidth detection&#039;&#039;&#039; is also introduced to save wasted bits allocated to absent frequencies.&lt;br /&gt;
*&#039;&#039;&#039;Surround sound improvements&#039;&#039;&#039; were introduced since the beta release with considerable advances in coding efficiency, bitrate allocation and quality.&lt;br /&gt;
&lt;br /&gt;
==== libopus v1.1.3 ==== &lt;br /&gt;
Released July 15th, 2016. This version contains:&lt;br /&gt;
&lt;br /&gt;
*Neon optimizations improving performance on ARMv7 and ARMv8 by up to 15%&lt;br /&gt;
*Fixes some issues with 16-bit platforms (e.g. TI C55x)&lt;br /&gt;
*Fixes to comfort noise generation (CNG)&lt;br /&gt;
*Documenting that PLC packets can also be 2 bytes&lt;br /&gt;
*Includes experimental ambisonics work (&amp;lt;code&amp;gt;--enable-ambisonics&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
==== libopus v1.2.1 ==== &lt;br /&gt;
Released June 26th, 2017. This version contains:&lt;br /&gt;
&lt;br /&gt;
*Speech quality improvements especially in the 12–20&amp;amp;nbsp;kbit/s range&lt;br /&gt;
*Improved VBR encoding for hybrid mode&lt;br /&gt;
*More aggressive use of wider speech bandwidth, including fullband speech starting at 14&amp;amp;nbsp;kbit/s&lt;br /&gt;
*Music quality improvements in the 32–48&amp;amp;nbsp;kbit/s range&lt;br /&gt;
*Generic and SSE CELT optimizations&lt;br /&gt;
*Support for directly encoding packets up to 120&amp;amp;nbsp;ms&lt;br /&gt;
*DTX support for CELT mode&lt;br /&gt;
*SILK CBR improvements&lt;br /&gt;
*Support for all of the fixes in draft-ietf-codec-opus-update-06 (the mono downmix and the folding fixes need &amp;lt;code&amp;gt;--enable-update-draft&amp;lt;/code&amp;gt;)&lt;br /&gt;
*Many bug fixes, including integer wrap-arounds discovered through fuzzing (no security implications)&lt;br /&gt;
&lt;br /&gt;
==== libopus v1.3 ====&lt;br /&gt;
Released on October 18th, 2018. This version contains:&lt;br /&gt;
&lt;br /&gt;
* Improvements to voice activity detection (VAD) and speech/music classification using a recurrent neural network (RNN)&lt;br /&gt;
* Support for ambisonics coding using channel mapping families 2 and 3&lt;br /&gt;
* Improvements to stereo speech coding at low bitrate&lt;br /&gt;
* Using wideband encoding down to 9&amp;amp;nbsp;kb/s&lt;br /&gt;
* Making it possible to use SILK down to bitrates around 5&amp;amp;nbsp;kb/s&lt;br /&gt;
* Minor quality improvement on tones&lt;br /&gt;
* Enabling the spec fixes in &amp;lt;nowiki&amp;gt;RFC 8251&amp;lt;/nowiki&amp;gt; by default&lt;br /&gt;
* Security/hardening improvements&lt;br /&gt;
* Fixes to the CELT PLC&lt;br /&gt;
* Bandwidth detection fixes&lt;br /&gt;
&lt;br /&gt;
==== libopus v1.3.1 ====&lt;br /&gt;
Released on April 12th, 2019. This version contains:&lt;br /&gt;
&lt;br /&gt;
* Fixes to x87 builds&lt;br /&gt;
* A new OPUS_GET_IN_DTX query to know if the encoder is in DTX mode (last frame was either a comfort noise frame or not encoded at all)&lt;br /&gt;
* A new (and still experimental) CMake-based build system that is eventually meant to replace the VS2015 build system (the autotools one will stay)&lt;br /&gt;
&lt;br /&gt;
==== libopus v1.4 ====&lt;br /&gt;
Released on April 20th, 2023. This version contains:&lt;br /&gt;
&lt;br /&gt;
* Improved tuning of the Opus in-band FEC (LBRR). See the issue for details&lt;br /&gt;
* Added a OPUS_SET_INBAND_FEC(2) option that turns on FEC, but does not force SILK mode (FEC will be disabled in CELT mode)&lt;br /&gt;
* Improved tuning and various fixes to DTX&lt;br /&gt;
* Added Meson support, improved CMake support In addition to the improvements above, this release includes many minor bug fixes.&lt;br /&gt;
&lt;br /&gt;
=== Other implementations ===&lt;br /&gt;
&lt;br /&gt;
==== Concentus ====&lt;br /&gt;
&lt;br /&gt;
The libopus reference library (fixed-point variant) has successfully been ported to both &#039;&#039;&#039;C#&#039;&#039;&#039; and &#039;&#039;&#039;Java&#039;&#039;&#039;, as part of a project called &#039;&#039;&#039;Concentus&#039;&#039;&#039;. The aim of the project is specifically to target cross-platform applications where native C interop is relatively difficult. The code is available on [https://github.com/lostromb/concentus Github] and distributed via standard package managers.&lt;br /&gt;
&lt;br /&gt;
==== Emscripten ports ====&lt;br /&gt;
&lt;br /&gt;
At least one port of reference opus in Javascript has been made using the automated tool [https://developer.mozilla.org/en-US/docs/Mozilla/Projects/Emscripten emscripten]. See [https://blog.rillke.com/opusenc.js/ here], [https://github.com/kazuki/opus.js-sample here] and [https://github.com/audiocogs/opus.js here].&lt;br /&gt;
&lt;br /&gt;
==== ffmpeg ====&lt;br /&gt;
FFmpeg has a native [https://ffmpeg.org/ffmpeg-codecs.html#opus &amp;quot;opus&amp;quot;] codec. It is of lower quality than the reference libopus and only does CELT coding. However, it is still good for the ecosystem to have a completely independent implementation.&lt;br /&gt;
&lt;br /&gt;
== Hardware &amp;amp; Software Support ==&lt;br /&gt;
&lt;br /&gt;
Much of this section is based heavily on the Jan 12th 2013 version of the &#039;&#039;&#039;Support&#039;&#039;&#039; section of the [http://en.wikipedia.org/wiki/Opus_%28audio_format%29 Wikipedia article], which is more likely to be kept updated and to provide links to further information about the supporting platforms.&lt;br /&gt;
&lt;br /&gt;
=== VoIP software ===&lt;br /&gt;
* The open source virtual PBX Freeswitch supports Opus transcoding.&lt;br /&gt;
* The voice-chat software Mumble supports Opus as its main codec.&lt;br /&gt;
* SIP softphones Phoner and PhonerLite support Opus&lt;br /&gt;
* The SIP and IAX2 client SFLphone is being fitted with Opus support.&lt;br /&gt;
* Integration of Opus into the Skype client is finished, although no version with Opus support has yet been published.&lt;br /&gt;
* TrueConf video conferencing solutions support Opus.&lt;br /&gt;
* Opus support is planned for Jitsi 2.0, together with VP8 video.&lt;br /&gt;
* Empathy may use any format supported in GStreamer, including Opus.&lt;br /&gt;
* Line2 has replaced their current codec with Opus. Their iOS app will be the first to be released with the Opus. The Android app will follow later.&lt;br /&gt;
* CSipSimple supports Opus, Codec2, G.726 and G.722.1 with an additional plug-in.&lt;br /&gt;
* The voice-chat software TeamSpeak 3 supports Opus for voice and music in pre-release server 3.0.7-pre2 and beta client version 3.0.10.&lt;br /&gt;
* The proprietary instant messenger service Discord uses Opus audio for all voice calls and video calls, regardless of platform.&lt;br /&gt;
&lt;br /&gt;
=== Web frameworks and browsers ===&lt;br /&gt;
* Opus support is mandatory for WebRTC implementations.&lt;br /&gt;
* Mozilla supports Opus beginning with version 15 of Firefox and Thunderbird, plus Seamonkey, which uses a shared codebase.&lt;br /&gt;
* Depending on the backend in use, Opera supports inline playback of embedded Opus files. Official support for Opus and WebRTC are on the development roadmap.&lt;br /&gt;
* Chromium and Google Chrome have audio support as of version 33.&lt;br /&gt;
* Apple&#039;s Safari browser now supports Opus as of iOS 11 and macOS 10.13 High Sierra.&lt;br /&gt;
* Maxthon Cloud Browser&lt;br /&gt;
&lt;br /&gt;
=== Streaming audio ===&lt;br /&gt;
* Icecast. (examples: [http://dir.xiph.org/by_format/Opus Stream directory by format Opus], [http://smj.delfa.net/opus_64.m3u 64k]/[http://smj.delfa.net/opus_256.m3u 256k] [http://smj.delfa.net/ Smooth Jazz Opus Stream], [http://www.absoluteradio.co.uk/listen/labs.html Absolute Radio Opus Trial] 7 stations at 24,64,96 kbps, [http://icecast.ofdoom.com:8000/burst-opus.ogg Icecast Of Doom 96k]&lt;br /&gt;
* Krad Radio&lt;br /&gt;
* Liquidsoap&lt;br /&gt;
&lt;br /&gt;
=== Operating systems and desktop multimedia frameworks ===&lt;br /&gt;
* In Debian GNU/Linux the Opus development tools and supporting libraries can be installed from the preconfigured repositories in the next stable version (&amp;quot;wheezy&amp;quot;) that is expected to be released in early 2013.&lt;br /&gt;
* For Microsoft Windows, there are DirectShow filters supporting Opus, including DC-Bass Source Mod and the LAV Filters.&lt;br /&gt;
* In GStreamer the integration of Opus support is complete.&lt;br /&gt;
* FFmpeg supports decoding and encoding Opus via the external library libopus.&lt;br /&gt;
* Android 5.0 and above supports Opus natively if encapsulated in the Ogg container, but .opus filename extension is not recognized by Android, so the use of double filename extension .opus.ogg is recommended as a workaround to allow apps to recognize files as playable audio.&lt;br /&gt;
&lt;br /&gt;
=== Hardware support ===&lt;br /&gt;
* Support in [[Rockbox]] is available. This means hardware support for a series of portable media players (including some products from the iPod series by Apple and Sansa, iriver and Archos devices) and with &amp;quot;Rockbox as an Application&amp;quot; (RaaA) also on Android devices.&lt;br /&gt;
&lt;br /&gt;
=== Player software ===&lt;br /&gt;
&lt;br /&gt;
* Windows/Mac/Linux (Cross-Platform)&lt;br /&gt;
*# [[VLC]] (media player supports Opus as of version 2.0.4&lt;br /&gt;
*# [[Amarok]] 2.8 has transcoding support for Opus codec if ffmpeg is compiled with support for the libopus library &amp;amp; support for playback of Opus encoded files if Amarok is compiled against TagLib (newer than V1.8)&lt;br /&gt;
*# Clementine has Opus support&lt;br /&gt;
*# Audacious player&lt;br /&gt;
*# [[MPD]] as of version 0.18 if compiled against libopus (supports both encoding for http streams and decoding)&lt;br /&gt;
* Windows Exclusive&lt;br /&gt;
*# AIMP supports Opus natively as of version 3.20 build 1125 beta 1&lt;br /&gt;
*# [[foobar2000]] supports Opus natively as of v1.1.14 beta 1&lt;br /&gt;
*# Mpxplay supports Opus (using a decoder DLL) as of v1.60 alpha 2&lt;br /&gt;
*# [[Winamp]] supports Opus using a [http://forums.winamp.com/showthread.php?p=2925154#post2925154 3rd party plug-in]&lt;br /&gt;
*# MPC-HC&lt;br /&gt;
*# Resonic Player/Pro supports Opus natively as of version 0.2.2&lt;br /&gt;
* iOS/Android (Cross-Platform)&lt;br /&gt;
*# Capriccio [https://itunes.apple.com/us/app/capriccio-free-ultimate-music/id434829018?mt=8 iOS]/[https://play.google.com/store/apps/details?id=me.ideariboso.capriccio Android]&lt;br /&gt;
*# foobar2000 [https://itunes.apple.com/us/app/foobar2000/id1072807669?mt=8 iOS]/[https://play.google.com/store/apps/details?id=com.foobar2000.foobar2000&amp;amp;hl=en Android]&lt;br /&gt;
* Android Exclusive&lt;br /&gt;
*# [https://play.google.com/store/apps/details?id=in.krosbits.musicolet Musicolet Music Player]&lt;br /&gt;
*# [http://gonemadmusicplayer.blogspot.com/ GoneMAD Music Player]&lt;br /&gt;
*# [http://neutronmp.com/ Neutron Music Player]&lt;br /&gt;
*# [http://www.videolan.org/vlc/download-android.html VLC Media Player for Android]&lt;br /&gt;
*# [https://play.google.com/store/apps/details?id=ru.recoilme.freeamp FreeMP]&lt;br /&gt;
*# [https://play.google.com/store/apps/details?id=net.mderezynski.youki3 Youki]&lt;br /&gt;
*# [https://play.google.com/store/apps/details?id=com.aimp.player AIMP for Android]&lt;br /&gt;
*# [https://play.google.com/store/apps/details?id=com.acmeandroid.listen Listen Audiobook Player]&lt;br /&gt;
*# [https://play.google.com/store/apps/details?id=com.mxtech.videoplayer.ad MX Player]&lt;br /&gt;
*# [https://play.google.com/store/apps/details?id=org.tomahawk.tomahawk_android Tomahawk Player Beta]&lt;br /&gt;
*# [https://play.google.com/store/apps/details?id=com.maxmpz.audioplayer&amp;amp;hl=en Poweramp Music Player]&lt;br /&gt;
&lt;br /&gt;
=== Other software ===&lt;br /&gt;
* CDBurnerXP&lt;br /&gt;
* MediaCoder&lt;br /&gt;
* Report-IT&lt;br /&gt;
* [[MP3tag|MP3tag]]&lt;br /&gt;
* [https://moisescardona.me/opus-gui/ Opus GUI]&lt;br /&gt;
* [http://www.xdlab.ru/en/ TagScanner]&lt;br /&gt;
* [http://www.xmedia-recode.de/ XMedia Recode]&lt;br /&gt;
&lt;br /&gt;
== References &amp;amp; Notes ==&lt;br /&gt;
&lt;br /&gt;
*{{note|homepage|a}}[http://opus-codec.org/ opus-codec.org homepage]&lt;br /&gt;
*{{note|FAQ|b}}[http://wiki.xiph.org/OpusFAQ Opus FAQ]&lt;br /&gt;
*{{note|RFC|c}}[http://tools.ietf.org/html/rfc6716 IETF RFC 6716]&lt;br /&gt;
&lt;br /&gt;
[[Category:Codecs]]&lt;br /&gt;
[[Category:Lossy]]&lt;br /&gt;
[[Category:Encoder/Decoder]]&lt;/div&gt;</summary>
		<author><name>Artoria2e5</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=PEAQ&amp;diff=37253</id>
		<title>PEAQ</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=PEAQ&amp;diff=37253"/>
		<updated>2023-08-10T05:54:36Z</updated>

		<summary type="html">&lt;p&gt;Artoria2e5: Redirected page to BS.1387&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[BS.1387]]&lt;/div&gt;</summary>
		<author><name>Artoria2e5</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=BS.1387&amp;diff=37252</id>
		<title>BS.1387</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=BS.1387&amp;diff=37252"/>
		<updated>2023-08-10T05:42:25Z</updated>

		<summary type="html">&lt;p&gt;Artoria2e5: /* Other objective metrics */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;ITU-R recommendation BS.1387&#039;&#039;&#039; is the document that defines &#039;&#039;&#039;Perceptual Evaluation of Audio Quality&#039;&#039;&#039; (PEAQ), an &#039;&#039;objective&#039;&#039; measurement technique used to measure the quality of encoded/decoded audio files. It acts in contrast to more the common place &#039;&#039;subjective&#039;&#039; testing methodology deployed using [[ABX]] and [[ABC/HR]] reference testing -- frequently preferred by hydrogenaudio. PEAQ returns an &amp;quot;ODG&amp;quot; rating, which is intended to match the difference in subjective (1&amp;amp;ndash;5) scores between the two input samples.&lt;br /&gt;
&lt;br /&gt;
== Structure ==&lt;br /&gt;
PEAQ has two versions: basic and advanced. The basic version only uses an FFT-based ear model and is easier to compute. The advanced version uses both FFT and filter bank and is expected to be more accurate.&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
&lt;br /&gt;
BS.1387 was initially published in 1998. It was updated to BS.1387-1 in 2001 and BS.1387-2 in 2023.&lt;br /&gt;
&lt;br /&gt;
* BS.1387-1 includes important technical corrections -- ones that are important to reach the standard&#039;s own conformance criteria.&amp;lt;ref&amp;gt;https://www.opticom.de/download/CorrectionstoBS1387.pdf&amp;lt;/ref&amp;gt;&lt;br /&gt;
* BS.1387-2 seems to have no real change, except for removal of references to BS.1115, addition of a table of contents, and extensive reformatting.&lt;br /&gt;
&lt;br /&gt;
== EAQUAL ==&lt;br /&gt;
&#039;&#039;&#039;EAQUAL&#039;&#039;&#039; (&#039;&#039;Evaluation Of Audio Quality&#039;&#039;) is an open-source software that implements PEAQ&#039;s basic model &#039;&#039;only&#039;&#039;. Several tests have been performed using EAQUAL most notably using numerous [http://www.hydrogenaudio.org/forums/index.php?showtopic=20264 AAC encoders] to determine via a [http://en.wikipedia.org/wiki/Pearson_correlation Pearson Correlation] the linear relationship between human ratings and EAQUAL ratings on a given set of test samples. The results, however when using objective testing methodologies are still inconclusive and mostly only used by codec developers and researchers.   &lt;br /&gt;
&lt;br /&gt;
=== Invoking EAQUAL ===&lt;br /&gt;
As of version 0.1.3alpha, the &#039;&#039;-h&#039;&#039; argument can be used to find out how to use eaqual (ex: &#039;&#039;eaqual -h&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
To compare a test wave file to a reference wave file, one can use for example: &#039;&#039;eaqual -fref ref.wav -ftest test.wav&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== Interpreting EAQUAL output ===&lt;br /&gt;
EAQUAL outputs one score, the PEAQ &amp;quot;ODG&amp;quot; rating. This ODG (Objective Difference Grade) rating is designed by ITU to match an SDG (Subjective Difference Grade) rating, which is the difference between the subjective (1&amp;amp;ndash;5) scores between the two input samples.&lt;br /&gt;
&lt;br /&gt;
=== Status of the project ===&lt;br /&gt;
Development of EAQUAL was halted in 2002 due to patent concerns. This is not a problem for PEAQ compilance, however, considering the 2001 BS.1387-1 does not differ substantially from the 2023 version.&lt;br /&gt;
&lt;br /&gt;
The ITU patent declaration system does not list any specific PEAQ patent by number. However, no new patents have been added since 1998, so any patent should have expired by 2018.&amp;lt;ref&amp;gt;https://www.itu.int/en/ITU-R/study-groups/Pages/itu-r-patent-information.aspx&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Versions of EAQUAL include:&lt;br /&gt;
* [http://www.mp3-tech.org/programmer/sources/eaqual.tgz EAQUAL Sourcecode] linux archive of c code used to implement EAQUAL provided by Gabriel Bouvigne, mirrored on github by [https://github.com/spxnn/eaqual spxnn]&lt;br /&gt;
* [http://www.rarewares.org/others.html EAQUAL Tools] zip compression archive of the utility used to perform EAQUAL tests provided by Rarewares.&lt;br /&gt;
* [https://github.com/ivan-codelegs/eaqual ivan-codelegs] github fork, adds macOS support&lt;br /&gt;
&lt;br /&gt;
== Other implementations ==&lt;br /&gt;
PEAQ-Basic is simple enough to have many implementations.&lt;br /&gt;
&lt;br /&gt;
* [https://sourceforge.net/projects/peaqb/ peaqb] is another implementation of PEAQ. Last updated 2003.&lt;br /&gt;
* There a good number of Matlab implementations for researchers. But it&#039;s Matlab, so there&#039;s gonna be academic code smell.&lt;br /&gt;
&lt;br /&gt;
There is one advanced-version implementation: [https://github.com/HSU-ANT/gstpeaq GstPEAQ], which builds on GStreamer. It very slightly deviates from the standard.&lt;br /&gt;
&lt;br /&gt;
== Other objective metrics ==&lt;br /&gt;
PEAQ is not the end. There are other metrics:&amp;lt;ref&amp;gt;https://github.com/jonnor/machinehearing/blob/09b5060bd03b8a49fc1d0afd8eedba4babca83ca/audio-quality/README.md&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* ITU also has PESQ and POLQA, both designed for speech.&lt;br /&gt;
* [https://github.com/google/visqol VISQOL] is Google&#039;s open-source metric. It works for both speech and music, but the neural network (don&#039;t worry, it runs fast enough on a CPU) is trained for short clips only. Maybe someone can write a tool to one file into many clips and see individual segment scores.&lt;br /&gt;
* CDPAM is allegedly the model that comes closest to human datasets. Unfortunately the only pre-trained model works on 22050 Hz. And it&#039;s academic neural-network code -- not something you can expect to run on first try.&lt;br /&gt;
&lt;br /&gt;
== External links==&lt;br /&gt;
* [[Wikipedia:Perceptual Evaluation of Audio Quality]]&lt;br /&gt;
* [https://www.itu.int/rec/R-REC-BS.1387 ITU BS.1387] download -- free full text of the standard, straight from the official site.&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Software]][[Category:Quality measurement]]&lt;/div&gt;</summary>
		<author><name>Artoria2e5</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=BS.1387&amp;diff=37251</id>
		<title>BS.1387</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=BS.1387&amp;diff=37251"/>
		<updated>2023-08-10T05:36:24Z</updated>

		<summary type="html">&lt;p&gt;Artoria2e5: /* Other objective metrics */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;ITU-R recommendation BS.1387&#039;&#039;&#039; is the document that defines &#039;&#039;&#039;Perceptual Evaluation of Audio Quality&#039;&#039;&#039; (PEAQ), an &#039;&#039;objective&#039;&#039; measurement technique used to measure the quality of encoded/decoded audio files. It acts in contrast to more the common place &#039;&#039;subjective&#039;&#039; testing methodology deployed using [[ABX]] and [[ABC/HR]] reference testing -- frequently preferred by hydrogenaudio. PEAQ returns an &amp;quot;ODG&amp;quot; rating, which is intended to match the difference in subjective (1&amp;amp;ndash;5) scores between the two input samples.&lt;br /&gt;
&lt;br /&gt;
== Structure ==&lt;br /&gt;
PEAQ has two versions: basic and advanced. The basic version only uses an FFT-based ear model and is easier to compute. The advanced version uses both FFT and filter bank and is expected to be more accurate.&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
&lt;br /&gt;
BS.1387 was initially published in 1998. It was updated to BS.1387-1 in 2001 and BS.1387-2 in 2023.&lt;br /&gt;
&lt;br /&gt;
* BS.1387-1 includes important technical corrections -- ones that are important to reach the standard&#039;s own conformance criteria.&amp;lt;ref&amp;gt;https://www.opticom.de/download/CorrectionstoBS1387.pdf&amp;lt;/ref&amp;gt;&lt;br /&gt;
* BS.1387-2 seems to have no real change, except for removal of references to BS.1115, addition of a table of contents, and extensive reformatting.&lt;br /&gt;
&lt;br /&gt;
== EAQUAL ==&lt;br /&gt;
&#039;&#039;&#039;EAQUAL&#039;&#039;&#039; (&#039;&#039;Evaluation Of Audio Quality&#039;&#039;) is an open-source software that implements PEAQ&#039;s basic model &#039;&#039;only&#039;&#039;. Several tests have been performed using EAQUAL most notably using numerous [http://www.hydrogenaudio.org/forums/index.php?showtopic=20264 AAC encoders] to determine via a [http://en.wikipedia.org/wiki/Pearson_correlation Pearson Correlation] the linear relationship between human ratings and EAQUAL ratings on a given set of test samples. The results, however when using objective testing methodologies are still inconclusive and mostly only used by codec developers and researchers.   &lt;br /&gt;
&lt;br /&gt;
=== Invoking EAQUAL ===&lt;br /&gt;
As of version 0.1.3alpha, the &#039;&#039;-h&#039;&#039; argument can be used to find out how to use eaqual (ex: &#039;&#039;eaqual -h&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
To compare a test wave file to a reference wave file, one can use for example: &#039;&#039;eaqual -fref ref.wav -ftest test.wav&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== Interpreting EAQUAL output ===&lt;br /&gt;
EAQUAL outputs one score, the PEAQ &amp;quot;ODG&amp;quot; rating. This ODG (Objective Difference Grade) rating is designed by ITU to match an SDG (Subjective Difference Grade) rating, which is the difference between the subjective (1&amp;amp;ndash;5) scores between the two input samples.&lt;br /&gt;
&lt;br /&gt;
=== Status of the project ===&lt;br /&gt;
Development of EAQUAL was halted in 2002 due to patent concerns. This is not a problem for PEAQ compilance, however, considering the 2001 BS.1387-1 does not differ substantially from the 2023 version.&lt;br /&gt;
&lt;br /&gt;
The ITU patent declaration system does not list any specific PEAQ patent by number. However, no new patents have been added since 1998, so any patent should have expired by 2018.&amp;lt;ref&amp;gt;https://www.itu.int/en/ITU-R/study-groups/Pages/itu-r-patent-information.aspx&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Versions of EAQUAL include:&lt;br /&gt;
* [http://www.mp3-tech.org/programmer/sources/eaqual.tgz EAQUAL Sourcecode] linux archive of c code used to implement EAQUAL provided by Gabriel Bouvigne, mirrored on github by [https://github.com/spxnn/eaqual spxnn]&lt;br /&gt;
* [http://www.rarewares.org/others.html EAQUAL Tools] zip compression archive of the utility used to perform EAQUAL tests provided by Rarewares.&lt;br /&gt;
* [https://github.com/ivan-codelegs/eaqual ivan-codelegs] github fork, adds macOS support&lt;br /&gt;
&lt;br /&gt;
== Other implementations ==&lt;br /&gt;
PEAQ-Basic is simple enough to have many implementations.&lt;br /&gt;
&lt;br /&gt;
* [https://sourceforge.net/projects/peaqb/ peaqb] is another implementation of PEAQ. Last updated 2003.&lt;br /&gt;
* There a good number of Matlab implementations for researchers. But it&#039;s Matlab, so there&#039;s gonna be academic code smell.&lt;br /&gt;
&lt;br /&gt;
There is one advanced-version implementation: [https://github.com/HSU-ANT/gstpeaq GstPEAQ], which builds on GStreamer. It very slightly deviates from the standard.&lt;br /&gt;
&lt;br /&gt;
== Other objective metrics ==&lt;br /&gt;
PEAQ is not the end. There are other metrics:&amp;lt;ref&amp;gt;https://github.com/jonnor/machinehearing/blob/09b5060bd03b8a49fc1d0afd8eedba4babca83ca/audio-quality/README.md&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* ITU also has PESQ and POLQA, both designed for speech.&lt;br /&gt;
* [https://github.com/google/visqol VISQOL] is Google&#039;s open-source metric. It works for both speech and music, but is trained for short clips only. Maybe someone can write a tool to one file into many clips and see individual segment scores.&lt;br /&gt;
&lt;br /&gt;
== External links==&lt;br /&gt;
* [[Wikipedia:Perceptual Evaluation of Audio Quality]]&lt;br /&gt;
* [https://www.itu.int/rec/R-REC-BS.1387 ITU BS.1387] download -- free full text of the standard, straight from the official site.&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Software]][[Category:Quality measurement]]&lt;/div&gt;</summary>
		<author><name>Artoria2e5</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=BS.1387&amp;diff=37250</id>
		<title>BS.1387</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=BS.1387&amp;diff=37250"/>
		<updated>2023-08-10T05:34:56Z</updated>

		<summary type="html">&lt;p&gt;Artoria2e5: /* Other implementations */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;ITU-R recommendation BS.1387&#039;&#039;&#039; is the document that defines &#039;&#039;&#039;Perceptual Evaluation of Audio Quality&#039;&#039;&#039; (PEAQ), an &#039;&#039;objective&#039;&#039; measurement technique used to measure the quality of encoded/decoded audio files. It acts in contrast to more the common place &#039;&#039;subjective&#039;&#039; testing methodology deployed using [[ABX]] and [[ABC/HR]] reference testing -- frequently preferred by hydrogenaudio. PEAQ returns an &amp;quot;ODG&amp;quot; rating, which is intended to match the difference in subjective (1&amp;amp;ndash;5) scores between the two input samples.&lt;br /&gt;
&lt;br /&gt;
== Structure ==&lt;br /&gt;
PEAQ has two versions: basic and advanced. The basic version only uses an FFT-based ear model and is easier to compute. The advanced version uses both FFT and filter bank and is expected to be more accurate.&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
&lt;br /&gt;
BS.1387 was initially published in 1998. It was updated to BS.1387-1 in 2001 and BS.1387-2 in 2023.&lt;br /&gt;
&lt;br /&gt;
* BS.1387-1 includes important technical corrections -- ones that are important to reach the standard&#039;s own conformance criteria.&amp;lt;ref&amp;gt;https://www.opticom.de/download/CorrectionstoBS1387.pdf&amp;lt;/ref&amp;gt;&lt;br /&gt;
* BS.1387-2 seems to have no real change, except for removal of references to BS.1115, addition of a table of contents, and extensive reformatting.&lt;br /&gt;
&lt;br /&gt;
== EAQUAL ==&lt;br /&gt;
&#039;&#039;&#039;EAQUAL&#039;&#039;&#039; (&#039;&#039;Evaluation Of Audio Quality&#039;&#039;) is an open-source software that implements PEAQ&#039;s basic model &#039;&#039;only&#039;&#039;. Several tests have been performed using EAQUAL most notably using numerous [http://www.hydrogenaudio.org/forums/index.php?showtopic=20264 AAC encoders] to determine via a [http://en.wikipedia.org/wiki/Pearson_correlation Pearson Correlation] the linear relationship between human ratings and EAQUAL ratings on a given set of test samples. The results, however when using objective testing methodologies are still inconclusive and mostly only used by codec developers and researchers.   &lt;br /&gt;
&lt;br /&gt;
=== Invoking EAQUAL ===&lt;br /&gt;
As of version 0.1.3alpha, the &#039;&#039;-h&#039;&#039; argument can be used to find out how to use eaqual (ex: &#039;&#039;eaqual -h&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
To compare a test wave file to a reference wave file, one can use for example: &#039;&#039;eaqual -fref ref.wav -ftest test.wav&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== Interpreting EAQUAL output ===&lt;br /&gt;
EAQUAL outputs one score, the PEAQ &amp;quot;ODG&amp;quot; rating. This ODG (Objective Difference Grade) rating is designed by ITU to match an SDG (Subjective Difference Grade) rating, which is the difference between the subjective (1&amp;amp;ndash;5) scores between the two input samples.&lt;br /&gt;
&lt;br /&gt;
=== Status of the project ===&lt;br /&gt;
Development of EAQUAL was halted in 2002 due to patent concerns. This is not a problem for PEAQ compilance, however, considering the 2001 BS.1387-1 does not differ substantially from the 2023 version.&lt;br /&gt;
&lt;br /&gt;
The ITU patent declaration system does not list any specific PEAQ patent by number. However, no new patents have been added since 1998, so any patent should have expired by 2018.&amp;lt;ref&amp;gt;https://www.itu.int/en/ITU-R/study-groups/Pages/itu-r-patent-information.aspx&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Versions of EAQUAL include:&lt;br /&gt;
* [http://www.mp3-tech.org/programmer/sources/eaqual.tgz EAQUAL Sourcecode] linux archive of c code used to implement EAQUAL provided by Gabriel Bouvigne, mirrored on github by [https://github.com/spxnn/eaqual spxnn]&lt;br /&gt;
* [http://www.rarewares.org/others.html EAQUAL Tools] zip compression archive of the utility used to perform EAQUAL tests provided by Rarewares.&lt;br /&gt;
* [https://github.com/ivan-codelegs/eaqual ivan-codelegs] github fork, adds macOS support&lt;br /&gt;
&lt;br /&gt;
== Other implementations ==&lt;br /&gt;
PEAQ-Basic is simple enough to have many implementations.&lt;br /&gt;
&lt;br /&gt;
* [https://sourceforge.net/projects/peaqb/ peaqb] is another implementation of PEAQ. Last updated 2003.&lt;br /&gt;
* There a good number of Matlab implementations for researchers. But it&#039;s Matlab, so there&#039;s gonna be academic code smell.&lt;br /&gt;
&lt;br /&gt;
There is one advanced-version implementation: [https://github.com/HSU-ANT/gstpeaq GstPEAQ], which builds on GStreamer. It very slightly deviates from the standard.&lt;br /&gt;
&lt;br /&gt;
== Other objective metrics ==&lt;br /&gt;
PEAQ is not the end. There are other metrics:&amp;lt;ref&amp;gt;https://github.com/jonnor/machinehearing/blob/09b5060bd03b8a49fc1d0afd8eedba4babca83ca/audio-quality/README.md&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* ITU also has PESQ and POLQA, both optimized for speech.&lt;br /&gt;
* [https://github.com/google/visqol VISQOL] is Google&#039;s open-source metric. It&#039;s a neural-network model for both speech and music, but is optimized for short clips only.&lt;br /&gt;
&lt;br /&gt;
== External links==&lt;br /&gt;
* [[Wikipedia:Perceptual Evaluation of Audio Quality]]&lt;br /&gt;
* [https://www.itu.int/rec/R-REC-BS.1387 ITU BS.1387] download -- free full text of the standard, straight from the official site.&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Software]][[Category:Quality measurement]]&lt;/div&gt;</summary>
		<author><name>Artoria2e5</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=Category:Quality_measurement&amp;diff=37249</id>
		<title>Category:Quality measurement</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=Category:Quality_measurement&amp;diff=37249"/>
		<updated>2023-08-10T05:28:48Z</updated>

		<summary type="html">&lt;p&gt;Artoria2e5: Created page with &amp;quot;Category:Technical&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Technical]]&lt;/div&gt;</summary>
		<author><name>Artoria2e5</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=Category:Listening_Tests&amp;diff=37248</id>
		<title>Category:Listening Tests</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=Category:Listening_Tests&amp;diff=37248"/>
		<updated>2023-08-10T05:28:36Z</updated>

		<summary type="html">&lt;p&gt;Artoria2e5: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Quality measurement]]&lt;/div&gt;</summary>
		<author><name>Artoria2e5</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=BS.1387&amp;diff=37247</id>
		<title>BS.1387</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=BS.1387&amp;diff=37247"/>
		<updated>2023-08-10T05:28:28Z</updated>

		<summary type="html">&lt;p&gt;Artoria2e5: /* External links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;ITU-R recommendation BS.1387&#039;&#039;&#039; is the document that defines &#039;&#039;&#039;Perceptual Evaluation of Audio Quality&#039;&#039;&#039; (PEAQ), an &#039;&#039;objective&#039;&#039; measurement technique used to measure the quality of encoded/decoded audio files. It acts in contrast to more the common place &#039;&#039;subjective&#039;&#039; testing methodology deployed using [[ABX]] and [[ABC/HR]] reference testing -- frequently preferred by hydrogenaudio. PEAQ returns an &amp;quot;ODG&amp;quot; rating, which is intended to match the difference in subjective (1&amp;amp;ndash;5) scores between the two input samples.&lt;br /&gt;
&lt;br /&gt;
== Structure ==&lt;br /&gt;
PEAQ has two versions: basic and advanced. The basic version only uses an FFT-based ear model and is easier to compute. The advanced version uses both FFT and filter bank and is expected to be more accurate.&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
&lt;br /&gt;
BS.1387 was initially published in 1998. It was updated to BS.1387-1 in 2001 and BS.1387-2 in 2023.&lt;br /&gt;
&lt;br /&gt;
* BS.1387-1 includes important technical corrections -- ones that are important to reach the standard&#039;s own conformance criteria.&amp;lt;ref&amp;gt;https://www.opticom.de/download/CorrectionstoBS1387.pdf&amp;lt;/ref&amp;gt;&lt;br /&gt;
* BS.1387-2 seems to have no real change, except for removal of references to BS.1115, addition of a table of contents, and extensive reformatting.&lt;br /&gt;
&lt;br /&gt;
== EAQUAL ==&lt;br /&gt;
&#039;&#039;&#039;EAQUAL&#039;&#039;&#039; (&#039;&#039;Evaluation Of Audio Quality&#039;&#039;) is an open-source software that implements PEAQ&#039;s basic model &#039;&#039;only&#039;&#039;. Several tests have been performed using EAQUAL most notably using numerous [http://www.hydrogenaudio.org/forums/index.php?showtopic=20264 AAC encoders] to determine via a [http://en.wikipedia.org/wiki/Pearson_correlation Pearson Correlation] the linear relationship between human ratings and EAQUAL ratings on a given set of test samples. The results, however when using objective testing methodologies are still inconclusive and mostly only used by codec developers and researchers.   &lt;br /&gt;
&lt;br /&gt;
=== Invoking EAQUAL ===&lt;br /&gt;
As of version 0.1.3alpha, the &#039;&#039;-h&#039;&#039; argument can be used to find out how to use eaqual (ex: &#039;&#039;eaqual -h&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
To compare a test wave file to a reference wave file, one can use for example: &#039;&#039;eaqual -fref ref.wav -ftest test.wav&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== Interpreting EAQUAL output ===&lt;br /&gt;
EAQUAL outputs one score, the PEAQ &amp;quot;ODG&amp;quot; rating. This ODG (Objective Difference Grade) rating is designed by ITU to match an SDG (Subjective Difference Grade) rating, which is the difference between the subjective (1&amp;amp;ndash;5) scores between the two input samples.&lt;br /&gt;
&lt;br /&gt;
=== Status of the project ===&lt;br /&gt;
Development of EAQUAL was halted in 2002 due to patent concerns. This is not a problem for PEAQ compilance, however, considering the 2001 BS.1387-1 does not differ substantially from the 2023 version.&lt;br /&gt;
&lt;br /&gt;
The ITU patent declaration system does not list any specific PEAQ patent by number. However, no new patents have been added since 1998, so any patent should have expired by 2018.&amp;lt;ref&amp;gt;https://www.itu.int/en/ITU-R/study-groups/Pages/itu-r-patent-information.aspx&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Versions of EAQUAL include:&lt;br /&gt;
* [http://www.mp3-tech.org/programmer/sources/eaqual.tgz EAQUAL Sourcecode] linux archive of c code used to implement EAQUAL provided by Gabriel Bouvigne, mirrored on github by [https://github.com/spxnn/eaqual spxnn]&lt;br /&gt;
* [http://www.rarewares.org/others.html EAQUAL Tools] zip compression archive of the utility used to perform EAQUAL tests provided by Rarewares.&lt;br /&gt;
* [https://github.com/ivan-codelegs/eaqual ivan-codelegs] github fork, adds macOS support&lt;br /&gt;
&lt;br /&gt;
== Other implementations ==&lt;br /&gt;
PEAQ-Basic is simple enough to have many implementations.&lt;br /&gt;
&lt;br /&gt;
* [https://sourceforge.net/projects/peaqb/ peaqb] is another implementation of PEAQ. Last updated 2003.&lt;br /&gt;
* There a good number of Matlab implementations for researchers. But it&#039;s Matlab, so there&#039;s gonna be academic code smell.&lt;br /&gt;
&lt;br /&gt;
Unfortunately, we have not been able to locate an open-source PEAQ-Advanced implementation yet.&lt;br /&gt;
&lt;br /&gt;
== External links==&lt;br /&gt;
* [[Wikipedia:Perceptual Evaluation of Audio Quality]]&lt;br /&gt;
* [https://www.itu.int/rec/R-REC-BS.1387 ITU BS.1387] download -- free full text of the standard, straight from the official site.&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Software]][[Category:Quality measurement]]&lt;/div&gt;</summary>
		<author><name>Artoria2e5</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=BS.1387&amp;diff=37246</id>
		<title>BS.1387</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=BS.1387&amp;diff=37246"/>
		<updated>2023-08-10T05:28:18Z</updated>

		<summary type="html">&lt;p&gt;Artoria2e5: /* External links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;ITU-R recommendation BS.1387&#039;&#039;&#039; is the document that defines &#039;&#039;&#039;Perceptual Evaluation of Audio Quality&#039;&#039;&#039; (PEAQ), an &#039;&#039;objective&#039;&#039; measurement technique used to measure the quality of encoded/decoded audio files. It acts in contrast to more the common place &#039;&#039;subjective&#039;&#039; testing methodology deployed using [[ABX]] and [[ABC/HR]] reference testing -- frequently preferred by hydrogenaudio. PEAQ returns an &amp;quot;ODG&amp;quot; rating, which is intended to match the difference in subjective (1&amp;amp;ndash;5) scores between the two input samples.&lt;br /&gt;
&lt;br /&gt;
== Structure ==&lt;br /&gt;
PEAQ has two versions: basic and advanced. The basic version only uses an FFT-based ear model and is easier to compute. The advanced version uses both FFT and filter bank and is expected to be more accurate.&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
&lt;br /&gt;
BS.1387 was initially published in 1998. It was updated to BS.1387-1 in 2001 and BS.1387-2 in 2023.&lt;br /&gt;
&lt;br /&gt;
* BS.1387-1 includes important technical corrections -- ones that are important to reach the standard&#039;s own conformance criteria.&amp;lt;ref&amp;gt;https://www.opticom.de/download/CorrectionstoBS1387.pdf&amp;lt;/ref&amp;gt;&lt;br /&gt;
* BS.1387-2 seems to have no real change, except for removal of references to BS.1115, addition of a table of contents, and extensive reformatting.&lt;br /&gt;
&lt;br /&gt;
== EAQUAL ==&lt;br /&gt;
&#039;&#039;&#039;EAQUAL&#039;&#039;&#039; (&#039;&#039;Evaluation Of Audio Quality&#039;&#039;) is an open-source software that implements PEAQ&#039;s basic model &#039;&#039;only&#039;&#039;. Several tests have been performed using EAQUAL most notably using numerous [http://www.hydrogenaudio.org/forums/index.php?showtopic=20264 AAC encoders] to determine via a [http://en.wikipedia.org/wiki/Pearson_correlation Pearson Correlation] the linear relationship between human ratings and EAQUAL ratings on a given set of test samples. The results, however when using objective testing methodologies are still inconclusive and mostly only used by codec developers and researchers.   &lt;br /&gt;
&lt;br /&gt;
=== Invoking EAQUAL ===&lt;br /&gt;
As of version 0.1.3alpha, the &#039;&#039;-h&#039;&#039; argument can be used to find out how to use eaqual (ex: &#039;&#039;eaqual -h&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
To compare a test wave file to a reference wave file, one can use for example: &#039;&#039;eaqual -fref ref.wav -ftest test.wav&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== Interpreting EAQUAL output ===&lt;br /&gt;
EAQUAL outputs one score, the PEAQ &amp;quot;ODG&amp;quot; rating. This ODG (Objective Difference Grade) rating is designed by ITU to match an SDG (Subjective Difference Grade) rating, which is the difference between the subjective (1&amp;amp;ndash;5) scores between the two input samples.&lt;br /&gt;
&lt;br /&gt;
=== Status of the project ===&lt;br /&gt;
Development of EAQUAL was halted in 2002 due to patent concerns. This is not a problem for PEAQ compilance, however, considering the 2001 BS.1387-1 does not differ substantially from the 2023 version.&lt;br /&gt;
&lt;br /&gt;
The ITU patent declaration system does not list any specific PEAQ patent by number. However, no new patents have been added since 1998, so any patent should have expired by 2018.&amp;lt;ref&amp;gt;https://www.itu.int/en/ITU-R/study-groups/Pages/itu-r-patent-information.aspx&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Versions of EAQUAL include:&lt;br /&gt;
* [http://www.mp3-tech.org/programmer/sources/eaqual.tgz EAQUAL Sourcecode] linux archive of c code used to implement EAQUAL provided by Gabriel Bouvigne, mirrored on github by [https://github.com/spxnn/eaqual spxnn]&lt;br /&gt;
* [http://www.rarewares.org/others.html EAQUAL Tools] zip compression archive of the utility used to perform EAQUAL tests provided by Rarewares.&lt;br /&gt;
* [https://github.com/ivan-codelegs/eaqual ivan-codelegs] github fork, adds macOS support&lt;br /&gt;
&lt;br /&gt;
== Other implementations ==&lt;br /&gt;
PEAQ-Basic is simple enough to have many implementations.&lt;br /&gt;
&lt;br /&gt;
* [https://sourceforge.net/projects/peaqb/ peaqb] is another implementation of PEAQ. Last updated 2003.&lt;br /&gt;
* There a good number of Matlab implementations for researchers. But it&#039;s Matlab, so there&#039;s gonna be academic code smell.&lt;br /&gt;
&lt;br /&gt;
Unfortunately, we have not been able to locate an open-source PEAQ-Advanced implementation yet.&lt;br /&gt;
&lt;br /&gt;
== External links==&lt;br /&gt;
* [[Wikipedia:Perceptual Evaluation of Audio Quality]]&lt;br /&gt;
* [https://www.itu.int/rec/R-REC-BS.1387 ITU BS.1387] download -- free full text of the standard, straight from the official site.&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Software]][[Category:Quality measures]]&lt;/div&gt;</summary>
		<author><name>Artoria2e5</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=BS.1387&amp;diff=37245</id>
		<title>BS.1387</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=BS.1387&amp;diff=37245"/>
		<updated>2023-08-10T05:24:58Z</updated>

		<summary type="html">&lt;p&gt;Artoria2e5: /* Structure */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;ITU-R recommendation BS.1387&#039;&#039;&#039; is the document that defines &#039;&#039;&#039;Perceptual Evaluation of Audio Quality&#039;&#039;&#039; (PEAQ), an &#039;&#039;objective&#039;&#039; measurement technique used to measure the quality of encoded/decoded audio files. It acts in contrast to more the common place &#039;&#039;subjective&#039;&#039; testing methodology deployed using [[ABX]] and [[ABC/HR]] reference testing -- frequently preferred by hydrogenaudio. PEAQ returns an &amp;quot;ODG&amp;quot; rating, which is intended to match the difference in subjective (1&amp;amp;ndash;5) scores between the two input samples.&lt;br /&gt;
&lt;br /&gt;
== Structure ==&lt;br /&gt;
PEAQ has two versions: basic and advanced. The basic version only uses an FFT-based ear model and is easier to compute. The advanced version uses both FFT and filter bank and is expected to be more accurate.&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
&lt;br /&gt;
BS.1387 was initially published in 1998. It was updated to BS.1387-1 in 2001 and BS.1387-2 in 2023.&lt;br /&gt;
&lt;br /&gt;
* BS.1387-1 includes important technical corrections -- ones that are important to reach the standard&#039;s own conformance criteria.&amp;lt;ref&amp;gt;https://www.opticom.de/download/CorrectionstoBS1387.pdf&amp;lt;/ref&amp;gt;&lt;br /&gt;
* BS.1387-2 seems to have no real change, except for removal of references to BS.1115, addition of a table of contents, and extensive reformatting.&lt;br /&gt;
&lt;br /&gt;
== EAQUAL ==&lt;br /&gt;
&#039;&#039;&#039;EAQUAL&#039;&#039;&#039; (&#039;&#039;Evaluation Of Audio Quality&#039;&#039;) is an open-source software that implements PEAQ&#039;s basic model &#039;&#039;only&#039;&#039;. Several tests have been performed using EAQUAL most notably using numerous [http://www.hydrogenaudio.org/forums/index.php?showtopic=20264 AAC encoders] to determine via a [http://en.wikipedia.org/wiki/Pearson_correlation Pearson Correlation] the linear relationship between human ratings and EAQUAL ratings on a given set of test samples. The results, however when using objective testing methodologies are still inconclusive and mostly only used by codec developers and researchers.   &lt;br /&gt;
&lt;br /&gt;
=== Invoking EAQUAL ===&lt;br /&gt;
As of version 0.1.3alpha, the &#039;&#039;-h&#039;&#039; argument can be used to find out how to use eaqual (ex: &#039;&#039;eaqual -h&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
To compare a test wave file to a reference wave file, one can use for example: &#039;&#039;eaqual -fref ref.wav -ftest test.wav&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== Interpreting EAQUAL output ===&lt;br /&gt;
EAQUAL outputs one score, the PEAQ &amp;quot;ODG&amp;quot; rating. This ODG (Objective Difference Grade) rating is designed by ITU to match an SDG (Subjective Difference Grade) rating, which is the difference between the subjective (1&amp;amp;ndash;5) scores between the two input samples.&lt;br /&gt;
&lt;br /&gt;
=== Status of the project ===&lt;br /&gt;
Development of EAQUAL was halted in 2002 due to patent concerns. This is not a problem for PEAQ compilance, however, considering the 2001 BS.1387-1 does not differ substantially from the 2023 version.&lt;br /&gt;
&lt;br /&gt;
The ITU patent declaration system does not list any specific PEAQ patent by number. However, no new patents have been added since 1998, so any patent should have expired by 2018.&amp;lt;ref&amp;gt;https://www.itu.int/en/ITU-R/study-groups/Pages/itu-r-patent-information.aspx&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Versions of EAQUAL include:&lt;br /&gt;
* [http://www.mp3-tech.org/programmer/sources/eaqual.tgz EAQUAL Sourcecode] linux archive of c code used to implement EAQUAL provided by Gabriel Bouvigne, mirrored on github by [https://github.com/spxnn/eaqual spxnn]&lt;br /&gt;
* [http://www.rarewares.org/others.html EAQUAL Tools] zip compression archive of the utility used to perform EAQUAL tests provided by Rarewares.&lt;br /&gt;
* [https://github.com/ivan-codelegs/eaqual ivan-codelegs] github fork, adds macOS support&lt;br /&gt;
&lt;br /&gt;
== Other implementations ==&lt;br /&gt;
PEAQ-Basic is simple enough to have many implementations.&lt;br /&gt;
&lt;br /&gt;
* [https://sourceforge.net/projects/peaqb/ peaqb] is another implementation of PEAQ. Last updated 2003.&lt;br /&gt;
* There a good number of Matlab implementations for researchers. But it&#039;s Matlab, so there&#039;s gonna be academic code smell.&lt;br /&gt;
&lt;br /&gt;
Unfortunately, we have not been able to locate an open-source PEAQ-Advanced implementation yet.&lt;br /&gt;
&lt;br /&gt;
== External links==&lt;br /&gt;
* [[Wikipedia:Perceptual Evaluation of Audio Quality]]&lt;br /&gt;
* [https://www.itu.int/rec/R-REC-BS.1387 ITU BS.1387] download -- free full text of the standard, straight from the official site.&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Software]]&lt;/div&gt;</summary>
		<author><name>Artoria2e5</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=BS.1387&amp;diff=37244</id>
		<title>BS.1387</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=BS.1387&amp;diff=37244"/>
		<updated>2023-08-10T05:24:42Z</updated>

		<summary type="html">&lt;p&gt;Artoria2e5: /* Other implementations */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;ITU-R recommendation BS.1387&#039;&#039;&#039; is the document that defines &#039;&#039;&#039;Perceptual Evaluation of Audio Quality&#039;&#039;&#039; (PEAQ), an &#039;&#039;objective&#039;&#039; measurement technique used to measure the quality of encoded/decoded audio files. It acts in contrast to more the common place &#039;&#039;subjective&#039;&#039; testing methodology deployed using [[ABX]] and [[ABC/HR]] reference testing -- frequently preferred by hydrogenaudio. PEAQ returns an &amp;quot;ODG&amp;quot; rating, which is intended to match the difference in subjective (1&amp;amp;ndash;5) scores between the two input samples.&lt;br /&gt;
&lt;br /&gt;
== Structure ==&lt;br /&gt;
PEAQ has two versions: basic and advanced. The basic version only uses an FFT-based ear model. The advanced version uses both FFT and filter bank and is expected to be more accurate.&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
&lt;br /&gt;
BS.1387 was initially published in 1998. It was updated to BS.1387-1 in 2001 and BS.1387-2 in 2023.&lt;br /&gt;
&lt;br /&gt;
* BS.1387-1 includes important technical corrections -- ones that are important to reach the standard&#039;s own conformance criteria.&amp;lt;ref&amp;gt;https://www.opticom.de/download/CorrectionstoBS1387.pdf&amp;lt;/ref&amp;gt;&lt;br /&gt;
* BS.1387-2 seems to have no real change, except for removal of references to BS.1115, addition of a table of contents, and extensive reformatting.&lt;br /&gt;
&lt;br /&gt;
== EAQUAL ==&lt;br /&gt;
&#039;&#039;&#039;EAQUAL&#039;&#039;&#039; (&#039;&#039;Evaluation Of Audio Quality&#039;&#039;) is an open-source software that implements PEAQ&#039;s basic model &#039;&#039;only&#039;&#039;. Several tests have been performed using EAQUAL most notably using numerous [http://www.hydrogenaudio.org/forums/index.php?showtopic=20264 AAC encoders] to determine via a [http://en.wikipedia.org/wiki/Pearson_correlation Pearson Correlation] the linear relationship between human ratings and EAQUAL ratings on a given set of test samples. The results, however when using objective testing methodologies are still inconclusive and mostly only used by codec developers and researchers.   &lt;br /&gt;
&lt;br /&gt;
=== Invoking EAQUAL ===&lt;br /&gt;
As of version 0.1.3alpha, the &#039;&#039;-h&#039;&#039; argument can be used to find out how to use eaqual (ex: &#039;&#039;eaqual -h&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
To compare a test wave file to a reference wave file, one can use for example: &#039;&#039;eaqual -fref ref.wav -ftest test.wav&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== Interpreting EAQUAL output ===&lt;br /&gt;
EAQUAL outputs one score, the PEAQ &amp;quot;ODG&amp;quot; rating. This ODG (Objective Difference Grade) rating is designed by ITU to match an SDG (Subjective Difference Grade) rating, which is the difference between the subjective (1&amp;amp;ndash;5) scores between the two input samples.&lt;br /&gt;
&lt;br /&gt;
=== Status of the project ===&lt;br /&gt;
Development of EAQUAL was halted in 2002 due to patent concerns. This is not a problem for PEAQ compilance, however, considering the 2001 BS.1387-1 does not differ substantially from the 2023 version.&lt;br /&gt;
&lt;br /&gt;
The ITU patent declaration system does not list any specific PEAQ patent by number. However, no new patents have been added since 1998, so any patent should have expired by 2018.&amp;lt;ref&amp;gt;https://www.itu.int/en/ITU-R/study-groups/Pages/itu-r-patent-information.aspx&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Versions of EAQUAL include:&lt;br /&gt;
* [http://www.mp3-tech.org/programmer/sources/eaqual.tgz EAQUAL Sourcecode] linux archive of c code used to implement EAQUAL provided by Gabriel Bouvigne, mirrored on github by [https://github.com/spxnn/eaqual spxnn]&lt;br /&gt;
* [http://www.rarewares.org/others.html EAQUAL Tools] zip compression archive of the utility used to perform EAQUAL tests provided by Rarewares.&lt;br /&gt;
* [https://github.com/ivan-codelegs/eaqual ivan-codelegs] github fork, adds macOS support&lt;br /&gt;
&lt;br /&gt;
== Other implementations ==&lt;br /&gt;
PEAQ-Basic is simple enough to have many implementations.&lt;br /&gt;
&lt;br /&gt;
* [https://sourceforge.net/projects/peaqb/ peaqb] is another implementation of PEAQ. Last updated 2003.&lt;br /&gt;
* There a good number of Matlab implementations for researchers. But it&#039;s Matlab, so there&#039;s gonna be academic code smell.&lt;br /&gt;
&lt;br /&gt;
Unfortunately, we have not been able to locate an open-source PEAQ-Advanced implementation yet.&lt;br /&gt;
&lt;br /&gt;
== External links==&lt;br /&gt;
* [[Wikipedia:Perceptual Evaluation of Audio Quality]]&lt;br /&gt;
* [https://www.itu.int/rec/R-REC-BS.1387 ITU BS.1387] download -- free full text of the standard, straight from the official site.&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Software]]&lt;/div&gt;</summary>
		<author><name>Artoria2e5</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=BS.1387&amp;diff=37243</id>
		<title>BS.1387</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=BS.1387&amp;diff=37243"/>
		<updated>2023-08-10T05:22:26Z</updated>

		<summary type="html">&lt;p&gt;Artoria2e5: /* Status of the project */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;ITU-R recommendation BS.1387&#039;&#039;&#039; is the document that defines &#039;&#039;&#039;Perceptual Evaluation of Audio Quality&#039;&#039;&#039; (PEAQ), an &#039;&#039;objective&#039;&#039; measurement technique used to measure the quality of encoded/decoded audio files. It acts in contrast to more the common place &#039;&#039;subjective&#039;&#039; testing methodology deployed using [[ABX]] and [[ABC/HR]] reference testing -- frequently preferred by hydrogenaudio. PEAQ returns an &amp;quot;ODG&amp;quot; rating, which is intended to match the difference in subjective (1&amp;amp;ndash;5) scores between the two input samples.&lt;br /&gt;
&lt;br /&gt;
== Structure ==&lt;br /&gt;
PEAQ has two versions: basic and advanced. The basic version only uses an FFT-based ear model. The advanced version uses both FFT and filter bank and is expected to be more accurate.&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
&lt;br /&gt;
BS.1387 was initially published in 1998. It was updated to BS.1387-1 in 2001 and BS.1387-2 in 2023.&lt;br /&gt;
&lt;br /&gt;
* BS.1387-1 includes important technical corrections -- ones that are important to reach the standard&#039;s own conformance criteria.&amp;lt;ref&amp;gt;https://www.opticom.de/download/CorrectionstoBS1387.pdf&amp;lt;/ref&amp;gt;&lt;br /&gt;
* BS.1387-2 seems to have no real change, except for removal of references to BS.1115, addition of a table of contents, and extensive reformatting.&lt;br /&gt;
&lt;br /&gt;
== EAQUAL ==&lt;br /&gt;
&#039;&#039;&#039;EAQUAL&#039;&#039;&#039; (&#039;&#039;Evaluation Of Audio Quality&#039;&#039;) is an open-source software that implements PEAQ&#039;s basic model &#039;&#039;only&#039;&#039;. Several tests have been performed using EAQUAL most notably using numerous [http://www.hydrogenaudio.org/forums/index.php?showtopic=20264 AAC encoders] to determine via a [http://en.wikipedia.org/wiki/Pearson_correlation Pearson Correlation] the linear relationship between human ratings and EAQUAL ratings on a given set of test samples. The results, however when using objective testing methodologies are still inconclusive and mostly only used by codec developers and researchers.   &lt;br /&gt;
&lt;br /&gt;
=== Invoking EAQUAL ===&lt;br /&gt;
As of version 0.1.3alpha, the &#039;&#039;-h&#039;&#039; argument can be used to find out how to use eaqual (ex: &#039;&#039;eaqual -h&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
To compare a test wave file to a reference wave file, one can use for example: &#039;&#039;eaqual -fref ref.wav -ftest test.wav&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== Interpreting EAQUAL output ===&lt;br /&gt;
EAQUAL outputs one score, the PEAQ &amp;quot;ODG&amp;quot; rating. This ODG (Objective Difference Grade) rating is designed by ITU to match an SDG (Subjective Difference Grade) rating, which is the difference between the subjective (1&amp;amp;ndash;5) scores between the two input samples.&lt;br /&gt;
&lt;br /&gt;
=== Status of the project ===&lt;br /&gt;
Development of EAQUAL was halted in 2002 due to patent concerns. This is not a problem for PEAQ compilance, however, considering the 2001 BS.1387-1 does not differ substantially from the 2023 version.&lt;br /&gt;
&lt;br /&gt;
The ITU patent declaration system does not list any specific PEAQ patent by number. However, no new patents have been added since 1998, so any patent should have expired by 2018.&amp;lt;ref&amp;gt;https://www.itu.int/en/ITU-R/study-groups/Pages/itu-r-patent-information.aspx&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Versions of EAQUAL include:&lt;br /&gt;
* [http://www.mp3-tech.org/programmer/sources/eaqual.tgz EAQUAL Sourcecode] linux archive of c code used to implement EAQUAL provided by Gabriel Bouvigne, mirrored on github by [https://github.com/spxnn/eaqual spxnn]&lt;br /&gt;
* [http://www.rarewares.org/others.html EAQUAL Tools] zip compression archive of the utility used to perform EAQUAL tests provided by Rarewares.&lt;br /&gt;
* [https://github.com/ivan-codelegs/eaqual ivan-codelegs] github fork, adds macOS support&lt;br /&gt;
&lt;br /&gt;
== Other implementations ==&lt;br /&gt;
PEAQ is simple enough to have many implementations.&lt;br /&gt;
&lt;br /&gt;
* [https://sourceforge.net/projects/peaqb/ peaqb] is another implementation of PEAQ. Last updated 2003.&lt;br /&gt;
* There a good number of Matlab implementations for researchers. But it&#039;s Matlab, so there&#039;s gonna be academic code smell.&lt;br /&gt;
&lt;br /&gt;
== External links==&lt;br /&gt;
* [[Wikipedia:Perceptual Evaluation of Audio Quality]]&lt;br /&gt;
* [https://www.itu.int/rec/R-REC-BS.1387 ITU BS.1387] download -- free full text of the standard, straight from the official site.&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Software]]&lt;/div&gt;</summary>
		<author><name>Artoria2e5</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=BS.1387&amp;diff=37242</id>
		<title>BS.1387</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=BS.1387&amp;diff=37242"/>
		<updated>2023-08-10T05:18:38Z</updated>

		<summary type="html">&lt;p&gt;Artoria2e5: /* External links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;ITU-R recommendation BS.1387&#039;&#039;&#039; is the document that defines &#039;&#039;&#039;Perceptual Evaluation of Audio Quality&#039;&#039;&#039; (PEAQ), an &#039;&#039;objective&#039;&#039; measurement technique used to measure the quality of encoded/decoded audio files. It acts in contrast to more the common place &#039;&#039;subjective&#039;&#039; testing methodology deployed using [[ABX]] and [[ABC/HR]] reference testing -- frequently preferred by hydrogenaudio. PEAQ returns an &amp;quot;ODG&amp;quot; rating, which is intended to match the difference in subjective (1&amp;amp;ndash;5) scores between the two input samples.&lt;br /&gt;
&lt;br /&gt;
== Structure ==&lt;br /&gt;
PEAQ has two versions: basic and advanced. The basic version only uses an FFT-based ear model. The advanced version uses both FFT and filter bank and is expected to be more accurate.&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
&lt;br /&gt;
BS.1387 was initially published in 1998. It was updated to BS.1387-1 in 2001 and BS.1387-2 in 2023.&lt;br /&gt;
&lt;br /&gt;
* BS.1387-1 includes important technical corrections -- ones that are important to reach the standard&#039;s own conformance criteria.&amp;lt;ref&amp;gt;https://www.opticom.de/download/CorrectionstoBS1387.pdf&amp;lt;/ref&amp;gt;&lt;br /&gt;
* BS.1387-2 seems to have no real change, except for removal of references to BS.1115, addition of a table of contents, and extensive reformatting.&lt;br /&gt;
&lt;br /&gt;
== EAQUAL ==&lt;br /&gt;
&#039;&#039;&#039;EAQUAL&#039;&#039;&#039; (&#039;&#039;Evaluation Of Audio Quality&#039;&#039;) is an open-source software that implements PEAQ&#039;s basic model &#039;&#039;only&#039;&#039;. Several tests have been performed using EAQUAL most notably using numerous [http://www.hydrogenaudio.org/forums/index.php?showtopic=20264 AAC encoders] to determine via a [http://en.wikipedia.org/wiki/Pearson_correlation Pearson Correlation] the linear relationship between human ratings and EAQUAL ratings on a given set of test samples. The results, however when using objective testing methodologies are still inconclusive and mostly only used by codec developers and researchers.   &lt;br /&gt;
&lt;br /&gt;
=== Invoking EAQUAL ===&lt;br /&gt;
As of version 0.1.3alpha, the &#039;&#039;-h&#039;&#039; argument can be used to find out how to use eaqual (ex: &#039;&#039;eaqual -h&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
To compare a test wave file to a reference wave file, one can use for example: &#039;&#039;eaqual -fref ref.wav -ftest test.wav&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== Interpreting EAQUAL output ===&lt;br /&gt;
EAQUAL outputs one score, the PEAQ &amp;quot;ODG&amp;quot; rating. This ODG (Objective Difference Grade) rating is designed by ITU to match an SDG (Subjective Difference Grade) rating, which is the difference between the subjective (1&amp;amp;ndash;5) scores between the two input samples.&lt;br /&gt;
&lt;br /&gt;
=== Status of the project ===&lt;br /&gt;
Development of EAQUAL was halted in 2002 due to patent concerns. This is not a problem for PEAQ compilance, however, considering BS.1387 never changed much.&lt;br /&gt;
&lt;br /&gt;
Versions of EAQUAL include:&lt;br /&gt;
* [http://www.mp3-tech.org/programmer/sources/eaqual.tgz EAQUAL Sourcecode] linux archive of c code used to implement EAQUAL provided by Gabriel Bouvigne, mirrored on github by [https://github.com/spxnn/eaqual spxnn]&lt;br /&gt;
* [http://www.rarewares.org/others.html EAQUAL Tools] zip compression archive of the utility used to perform EAQUAL tests provided by Rarewares.&lt;br /&gt;
* [https://github.com/ivan-codelegs/eaqual ivan-codelegs] github fork, adds macOS support&lt;br /&gt;
&lt;br /&gt;
== Other implementations ==&lt;br /&gt;
PEAQ is simple enough to have many implementations.&lt;br /&gt;
&lt;br /&gt;
* [https://sourceforge.net/projects/peaqb/ peaqb] is another implementation of PEAQ. Last updated 2003.&lt;br /&gt;
* There a good number of Matlab implementations for researchers. But it&#039;s Matlab, so there&#039;s gonna be academic code smell.&lt;br /&gt;
&lt;br /&gt;
== External links==&lt;br /&gt;
* [[Wikipedia:Perceptual Evaluation of Audio Quality]]&lt;br /&gt;
* [https://www.itu.int/rec/R-REC-BS.1387 ITU BS.1387] download -- free full text of the standard, straight from the official site.&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Software]]&lt;/div&gt;</summary>
		<author><name>Artoria2e5</name></author>
	</entry>
</feed>