Jump to content

Variable bitrate: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
mNo edit summary
Tags: Mobile edit Mobile app edit iOS app edit
(23 intermediate revisions by 23 users not shown)
Line 1: Line 1:
{{Short description|Files in which the rate of bit transmission is non-constant}}
'''Variable bitrate''' ('''VBR''') is a term used in [[telecommunications]] and [[computing]] that relates to the [[bitrate]] used in sound or video encoding. As opposed to [[constant bitrate]] (CBR), VBR files vary the amount of output [[data]] per time segment. VBR allows a higher bitrate (and therefore requires more storage space) to be allocated to the more complex segments of media files while less space is allocated to less complex segments. The average of these rates can be calculated to produce an [[average bitrate]] for the file.


'''Variable bitrate''' ('''VBR''') is a term used in [[telecommunications]] and [[computing]] that relates to the [[bitrate]] used in sound or video encoding. As opposed to [[constant bitrate]] (CBR), VBR files vary the amount of output [[data]] per time segment. VBR allows a higher bitrate (and therefore more storage space) to be allocated to the more complex segments of media files while less space is allocated to less complex segments. The average of these rates can be calculated to produce an [[average bitrate]] for the file.
[[Opus (audio format)|Opus]], [[Vorbis]], [[MP3]], [[Windows Media Audio|WMA]] and [[Advanced Audio Coding|AAC]] audio files can optionally be encoded in VBR.<ref name= "hydrogen">{{citation

| title = Variable Bitrate | year = 2007
[[MP3]], [[Windows Media Audio|WMA]] and [[Advanced Audio Coding|AAC]] audio files can optionally be encoded in VBR, while [[Opus (audio format)|Opus]] and [[Vorbis]] are encoded in VBR by default.<ref name="hydrogen">{{Citation |title=Variable Bitrate |url=http://wiki.hydrogenaud.io/index.php?title=VBR |year=2007 |publisher=Hydrogenaudio |format=knowledgebase |access-date=2009-09-30 |archive-date=2014-07-06 |archive-url=https://web.archive.org/web/20140706173623/http://wiki.hydrogenaud.io/index.php?title=VBR |url-status=live }}</ref><ref name="afterdawn">{{Citation |title=Glossary |url=http://www.afterdawn.com/glossary/terms/vbr.cfm |contribution=VBR |publisher=AfterDawn |access-date=2009-09-30 |archive-date=2010-01-28 |archive-url=https://web.archive.org/web/20100128060334/http://www.afterdawn.com/glossary/terms/vbr.cfm |url-status=live }}</ref><ref name="audacity">{{Citation |title=Variable bit rate |url=http://wiki.audacityteam.org/index.php?title=Variable_bit_rate |publisher=Audacity |format=wiki |access-date=2009-09-30 |archive-date=2009-09-08 |archive-url=https://web.archive.org/web/20090908005152/http://wiki.audacityteam.org/index.php?title=Variable_bit_rate |url-status=live }}</ref> Variable bit rate encoding is also commonly used on [[MPEG-2]] video, [[MPEG-4 Part 2]] video ([[Xvid]], [[DivX]], etc.), [[MPEG-4 Part 10]]/H.264 video, [[Theora]], [[Dirac (codec)|Dirac]] and other video compression formats.{{citation needed|date=September 2014}} Additionally, variable rate encoding is inherent in [[lossless compression]] schemes such as [[FLAC]] and [[Apple Lossless]].{{citation needed|date=September 2014}}
| publisher = Hydrogenaudio | format = knowledgebase
| url = http://wiki.hydrogenaud.io/index.php?title=VBR | accessdate = 2009-09-30}}</ref><ref name="afterdawn">{{citation
| title = Glossary | contribution = VBR | date =
| publisher = AfterDawn
| url = http://www.afterdawn.com/glossary/terms/vbr.cfm | accessdate = 2009-09-30}}</ref><ref name="audacity">{{citation
| title = Variable bit rate | date =
| publisher = Audacity | format = wiki
| url = http://wiki.audacityteam.org/index.php?title=Variable_bit_rate | accessdate = 2009-09-30}}</ref> Variable bit rate encoding is also commonly used on [[MPEG-2]] video, [[MPEG-4 Part 2]] video ([[Xvid]], [[DivX]], etc.), [[MPEG-4 Part 10]]/H.264 video, [[Theora]], [[Dirac (codec)|Dirac]] and other video compression formats.{{citation needed|date=September 2014}} Additionally, variable rate encoding is inherent in lossless compression schemes such as [[FLAC]] and [[Apple Lossless]].{{citation needed|date=September 2014}}


==Advantages and disadvantages of VBR==
==Advantages and disadvantages of VBR==
The advantages of VBR are that it produces a better quality-to-space ratio compared to a CBR file of the same data. The bits available are used more flexibly to encode the sound or video data more accurately, with fewer bits used in less demanding passages and more bits used in difficult-to-encode passages.<ref name="afterdawn" /><ref name="hydrogen-lame-vbr">{{citation
The advantages of VBR are that it produces a better quality-to-space ratio compared to a CBR file of the same data. The bits available are used more flexibly to encode the sound or video data more accurately, with fewer bits used in less demanding passages and more bits used in difficult-to-encode passages.<ref name="afterdawn" /><ref name="hydrogen-lame-vbr">{{Citation |title=LAME – VBR (variable bitrate) settings |url=http://wiki.hydrogenaud.io/index.php?title=Recommended_LAME#VBR_.28variable_bitrate.29_settings |year=2009 |publisher=Hydrogenaudio |format=knowledgebase |access-date=2009-09-30 |archive-date=2014-06-06 |archive-url=https://web.archive.org/web/20140606082504/http://wiki.hydrogenaud.io/index.php?title=Recommended_LAME#VBR_.28variable_bitrate.29_settings |url-status=live }}</ref>
| title = LAME – VBR (variable bitrate) settings | year = 2009
| publisher = Hydrogenaudio | format = knowledgebase
| url = http://wiki.hydrogenaud.io/index.php?title=Recommended_LAME#VBR_.28variable_bitrate.29_settings | accessdate = 2009-09-30}}</ref>


The disadvantages are that it may take more time to encode, as the process is more complex, and that some hardware might not be compatible with VBR files.<ref name="afterdawn" /> VBR may also pose problems during streaming when the instantaneous bitrate exceeds the data rate of the communications path. These problems can be avoided by limiting the instantaneous bitrate during encoding or (at the cost of increased latency) by enlarging the [[playout buffer]].
The disadvantages are that it may take more time to encode, as the process is more complex, and that some hardware might not be compatible with VBR files.<ref name="afterdawn" />

Also, encryption of VBR-encoded speech (or other signals including video) gives only limited privacy, as the patterns of variation of the bit rate may reveal what language is being spoken.<ref>{{Citation | format = PDF | publisher = JHU | url = http://www.cs.jhu.edu/~fabian/papers/oakland08.pdf | title = Spot me if you can: Uncovering Spoken Phrases in Encrypted VoIP Conversations | first1 = CV | last1 = Wright | first2 = L | last2 = Ballard | first3 = SE | last3 = Coull | first4 = F | last4 = Monrose | first5 = GM | last5 = Masson}}.</ref>

In the past, many hardware and [[media player (application software)|software players]] could not decode variable bitrate files properly, partly because the various VBR encoders used were not well developed.{{Citation needed|date=August 2010}} This resulted in common use of CBR over VBR for the sake of compatibility. As of December 2006, devices that support only CBR encoded files are largely obsolete, as the vast majority of modern portable music devices and software support VBR encoded files.{{Citation needed|date=April 2007}}

Support for VBR in AAC and MP3 files is found in most modern [[digital audio player]]s, including those released by [[Apple Inc.|Apple]], [[Microsoft]], [[Creative Technology]], and [[SanDisk]]. Early VBR algorithms occasionally introduced audible artifacts when encoding monotone or minimal tones (for example audiobooks and acoustic music). These artifacts often mimicked a "digital chirp" during the quiet portions of the song or when there was only speaking. As VBR encoding algorithms have improved, these problems have been resolved in subsequent generations of the VBR standard.{{Citation needed | date = April 2007}}


==Methods of VBR encoding==
==Methods of VBR encoding==

Note that the choice of a variable bitrate (VBR) method only affects the encoding process. Decoding a VBR [[Stream (computing)|stream]] is performed identically in all cases, regardless of how the encoder chooses to allocate bits.


===Multi-pass encoding and single-pass encoding===
===Multi-pass encoding and single-pass encoding===
VBR is created using the so-called ''single-pass encoding'' or ''multi-pass encoding''. Single-pass encoding analyzes and encodes the data "on the fly" and it is also used in constant bitrate encoding. Single-pass encoding is used when the encoding speed is most important — e.g. for real-time encoding. Single-pass VBR encoding is usually controlled by the ''fixed quality'' setting or by the ''bitrate range'' (minimum and maximum allowed bitrate) or by the ''average bitrate'' setting. Multi-pass encoding is used when the encoding quality is most important. Multi-pass encoding cannot be used in real-time encoding, live broadcast or live [[Streaming media|streaming]]. Multi-pass encoding takes much longer than single-pass encoding, because every pass means one pass through the input data (usually through the whole input file). Multi-pass encoding is used only for VBR encoding, because CBR encoding doesn't offer any flexibility to change the bitrate. The most common multi-pass encoding is two-pass encoding. In the first pass of two-pass encoding, the input data is being analyzed and the result is stored in a log file. In the second pass, the collected data from the first pass is used to achieve the best encoding quality. In a video encoding, two-pass encoding is usually controlled by the average bitrate setting or by the bitrate range setting (minimal and maximal allowed bitrate) or by the target video file size setting.<ref name="afterdawn-multipass">{{citation
VBR is created using so-called ''single-pass encoding'' or ''multi-pass encoding''. Single-pass encoding analyzes and encodes the data "on the fly" and it is also used in constant bitrate encoding. Single-pass encoding is used when the encoding speed is most important — e.g. for real-time encoding. Single-pass VBR encoding is usually controlled by the ''fixed quality'' setting or by the ''bitrate range'' (minimum and maximum allowed bitrate) or by the ''average bitrate'' setting. Multi-pass encoding is used when the encoding quality is most important. Multi-pass encoding cannot be used in real-time encoding, live broadcast or live [[Streaming media|streaming]]. Multi-pass encoding takes much longer than single-pass encoding, because every pass means one pass through the input data (usually through the whole input file). Multi-pass encoding is used only for VBR encoding, because CBR encoding doesn't offer any flexibility to change the bitrate. The most common multi-pass encoding is two-pass encoding. In the first pass of two-pass encoding, the input data is being analyzed and the result is stored in a log file. In the second pass, the collected data from the first pass is used to achieve the best encoding quality. In a video encoding, two-pass encoding is usually controlled by the average bitrate setting or by the bitrate range setting (minimal and maximal allowed bitrate) or by the target video file size setting.<ref>*{{Citation |title=Glossary |url=http://www.afterdawn.com/glossary/terms/multipass.cfm |contribution=Multi-pass encoding |publisher=AfterDawn |access-date=2009-09-30 |archive-date=2009-09-18 |archive-url=https://web.archive.org/web/20090918085940/http://www.afterdawn.com/glossary/terms/multipass.cfm |url-status=live }}
*{{Citation | format=Wiki | url=http://wiki.digital-digest.com/index.php/Multi-pass_Encoding | title=Multi-pass Encoding | publisher=Digital Digest | year=2007 | access-date=2009-09-30 | archive-date=2009-10-01 | archive-url=https://web.archive.org/web/20091001065433/http://wiki.digital-digest.com/index.php/Multi-pass_Encoding | url-status=live }}
| title = Glossary | contribution = Multi-pass encoding | date =
*{{Citation | url=http://www.doom9.org/glossary.htm#mpass | contribution=Multipass encoding | title=Ripping Glossary | date=2004-04-20 | publisher=Doom 9 | access-date=2009-09-30 | archive-date=2009-02-20 | archive-url=https://web.archive.org/web/20090220141534/http://www.doom9.org/glossary.htm#mpass | url-status=live }}
| publisher = AfterDawn
*{{Citation | contribution=Rate Control — Encoding Mode | format=wiki-documentation | url=http://www.avidemux.org/admWiki/index.php?title=H264#General | title=H.264/AVC options explained | publisher=Avidemux | year=2009 | access-date=2009-09-30 | archive-date=2009-07-29 | archive-url=https://web.archive.org/web/20090729234601/http://www.avidemux.org/admWiki/index.php?title=H264#General | url-status=live }}</ref><ref>*{{Citation |title=Encoding with MEncoder |url=http://www.mplayerhq.hu/DOCS/HTML/en/menc-feat-x264.html#menc-feat-x264-encoding-options-misc-preferences |contribution=Encoding with the x264 codec |place=HU |publisher=MPlayer team |access-date=2009-10-01 |archive-date=2010-03-01 |archive-url=https://web.archive.org/web/20100301114015/http://www.mplayerhq.hu/DOCS/HTML/en/menc-feat-x264.html#menc-feat-x264-encoding-options-misc-preferences |url-status=live }}
| url = http://www.afterdawn.com/glossary/terms/multipass.cfm | accessdate = 2009-09-30}}</ref><ref name="digitaldigest-multipass">{{citation
*{{Citation | url=http://www.divx-digest.com/articles/xvid_setup_page2.html#encoding | author=DVDGuy | title=Xvid Setup Guide | date=2006-06-21 | publisher=Digital Digest | access-date=2009-10-01 | archive-date=2010-03-04 | archive-url=https://web.archive.org/web/20100304135848/http://www.divx-digest.com/articles/xvid_setup_page2.html#encoding | url-status=live }}
| title = Multi-pass Encoding | year = 2007
*{{Citation | url=http://www.divx-digest.com/articles/divx4_setup.html | title=DivX 4.x Codec Setup Guide | date=2001-08-27 | publisher=Digital Digest | access-date=2009-10-04 | archive-date=2010-03-22 | archive-url=https://web.archive.org/web/20100322231825/http://www.divx-digest.com/articles/divx4_setup.html | url-status=live }}
| publisher = Digital Digest | format = Wiki
*{{Citation | url=http://www.videohelp.com/oldguides/tmpgencexplained.htm | title=TMPGEnc Explained V2.0.1 | date=2001-08-27 | publisher=Video help | access-date=2009-10-04 | archive-date=2011-06-07 | archive-url=https://web.archive.org/web/20110607222622/http://www.videohelp.com/oldguides/tmpgencexplained.htm | url-status=live }}
| url = http://wiki.digital-digest.com/index.php/Multi-pass_Encoding | accessdate = 2009-09-30}}</ref><ref name="doom9-multipass">{{citation
*{{Citation | format=knowledgebase | url=http://wiki.hydrogenaud.io/index.php?title=Average_Bitrate | title=Average Bitrate | publisher=Hydrogenaudio | year=2007 | access-date=2009-10-01 | archive-date=2014-07-06 | archive-url=https://web.archive.org/web/20140706173834/http://wiki.hydrogenaud.io/index.php?title=Average_Bitrate | url-status=live }}</ref>
| title = Ripping Glossary | contribution = Multipass encoding | date = 2004-04-20
| publisher = Doom 9
| url = http://www.doom9.org/glossary.htm#mpass | accessdate = 2009-09-30}}</ref><ref name="avidemux-h264">{{citation
| title = H.264/AVC options explained | contribution = Rate Control — Encoding Mode | year = 2009
| publisher = Avidemux | format = wiki-documentation
| url = http://www.avidemux.org/admWiki/index.php?title=H264#General | accessdate = 2009-09-30}}</ref><ref name="mencoder-h264">{{citation
| title = Encoding with MEncoder | contribution = Encoding with the x264 codec | date =
| publisher = MPlayer team | place = HU
| url = http://www.mplayerhq.hu/DOCS/HTML/en/menc-feat-x264.html#menc-feat-x264-encoding-options-misc-preferences | accessdate = 2009-10-01}}</ref><ref name ="xvid-dd">{{citation
| title = Xvid Setup Guide | date = 2006-06-21
| author = DVDGuy
| publisher = Digital Digest
| url = http://www.divx-digest.com/articles/xvid_setup_page2.html#encoding | accessdate = 2009-10-01}}</ref><ref name="divx-dd">{{citation
| title = DivX 4.x Codec Setup Guide | date = 2001-08-27
| publisher = Digital Digest
| url = http://www.divx-digest.com/articles/divx4_setup.html | accessdate = 2009-10-04}}</ref><ref name="tmpgenc-dd">{{citation
| title = TMPGEnc Explained V2.0.1 | date = 2001-08-27
| publisher = Video help
| url = http://www.videohelp.com/oldguides/tmpgencexplained.htm | accessdate = 2009-10-04}}</ref><ref name="hydrogen-ABR">{{citation
| title = Average Bitrate | year = 2007
| publisher = Hydrogenaudio | format = knowledgebase
| url = http://wiki.hydrogenaud.io/index.php?title=Average_Bitrate | accessdate = 2009-10-01}}</ref>{{overcite}}

===Fixed quality===
One means of VBR encoding is ''fixed quantizer'' or ''fixed quality'' encoding. It is usually single-pass encoding. The user specifies a given subjective quality value, and the encoder allocates bits as needed to achieve the given level of quality. This ensures the output stream will have consistent quality throughout. A quality level usually has an associated bitrate range. The disadvantage of this encoding method is that the average bitrate (and hence file size) will not be known ahead of time, and achieving a certain average bitrate requires [[trial and error]]. This is typically more of a concern for video than for audio, since file sizes are much larger and encoding can take much longer.


===Bitrate range===
===Bitrate range===
This VBR encoding method allows the user to specify a bitrate range — a minimum and/or maximum allowed bitrate.<ref name="hydrogen-VBR">{{Citation |title=Variable Bitrate |url=http://wiki.hydrogenaud.io/index.php?title=Variable_Bitrate |year=2007 |publisher=Hydrogenaudio |format=knowledgebase |access-date=2009-10-04 |archive-date=2014-07-06 |archive-url=https://web.archive.org/web/20140706173840/http://wiki.hydrogenaud.io/index.php?title=Variable_Bitrate |url-status=live }}</ref> Some encoders extend this method with an average bitrate. The minimum and maximum allowed bitrate set bounds in which the bitrate may vary. The disadvantage of this method is that the average bitrate (and hence file size) will not be known ahead of time. The bitrate range is also used in some fixed quality encoding methods, but usually without permission to change a particular bitrate.<ref name="hydrogen-LAME-VBR">{{Citation |title=LAME — VBR |url=http://wiki.hydrogenaud.io/index.php?title=LAME#VBR_.28variable_bitrate.29_settings |year=2007 |publisher=Hydrogenaudio |format=knowledgebase |access-date=2009-10-04 |archive-date=2014-06-06 |archive-url=https://web.archive.org/web/20140606173223/http://wiki.hydrogenaud.io/index.php?title=LAME#VBR_.28variable_bitrate.29_settings |url-status=live }}</ref>
This VBR encoding method allows the user to specify a bitrate range — a minimum and/or maximum allowed bitrate.<ref name="hydrogen-VBR">{{citation
| title = Variable Bitrate | year = 2007
| publisher = Hydrogenaudio | format = knowledgebase
| url = http://wiki.hydrogenaud.io/index.php?title=Variable_Bitrate | accessdate = 2009-10-04}}</ref> Some encoders extend this method with an average bitrate. The minimum and maximum allowed bitrate set bounds in which the bitrate may vary. The disadvantage of this method is that the average bitrate (and hence file size) will not be known ahead of time. The bitrate range is also used in some fixed quality encoding methods, but usually without permission to change a particular bitrate.<ref name="hydrogen-LAME-VBR">{{citation
| title = LAME — VBR | year = 2007
| publisher = Hydrogenaudio | format = knowledgebase
| url = http://wiki.hydrogenaud.io/index.php?title=LAME#VBR_.28variable_bitrate.29_settings | accessdate = 2009-10-04}}</ref>


===Average bitrate===
===Average bitrate===
The disadvantage of single pass ABR encoding (with or without Constrained Variable Bitrate) is the opposite of fixed quantizer VBR &mdash; the size of the output is known ahead of time, but the resulting quality is unknown, although still better than CBR.<ref name="hydrogen-ABR">{{Citation |title=Average Bitrate |url=http://wiki.hydrogenaud.io/index.php?title=Average_Bitrate |year=2007 |publisher=Hydrogenaudio |format=knowledgebase |access-date=2009-10-01 |archive-date=2014-07-06 |archive-url=https://web.archive.org/web/20140706173834/http://wiki.hydrogenaud.io/index.php?title=Average_Bitrate |url-status=live }}</ref>
[[Average bitrate]] (ABR) encoding may be used to ensure the output stream achieves a predictable long-term average bitrate. This is typically implemented using multi-pass encoding, where one or more initial passes are used to collect data on the stream, and a final pass uses that data to achieve uniform quality at the specified average bitrate.

Alternatively, periodic averaging may be used, either by performing ABR on smaller chunks of the output, or by reacting to fluctuations in the ABR by increasing or reducing the overall quality. These can achieve ABR in a single pass, but do not produce the same degree of uniformity as multi-pass ABR. Some encoders use "ABR encoding" and "multi-pass encoding" to refer to single- and multi-pass ABR encoding respectively.

Some encoders also allow the user to specify a maximum allowed bitrate or maximum quality value. This is sometimes called '''Constrained Variable Bitrate (CVBR)''', and is typically applied to ABR algorithms.

The disadvantage of single pass ABR encoding (with or without CVBR) is the opposite of fixed quantizer VBR &mdash; the size of the output is known ahead of time, but the resulting quality is unknown, although still better than CBR.<ref name="hydrogen-ABR" /> Specifying a higher average or maximum may simply make the file bigger with no discernible quality effect, and an increased maximum bitrate may introduce stutter when streaming the file. However, reducing these criteria too low will eventually lead to quite drastic losses in quality. The effect on video is typically an increased blockiness, because the frames are no longer being fully detailed in their rendering.

The multi-pass ABR encoding is more similar to fixed quantizer VBR, because a higher average will really increase the quality.<ref name="avidemux-h264" />


The multi-pass ABR encoding is more similar to fixed quantizer VBR, because a higher average will really increase the quality.<ref name="avidemux-h264">{{Citation |title=H.264/AVC options explained |url=http://www.avidemux.org/admWiki/index.php?title=H264#General |year=2009 |contribution=Rate Control — Encoding Mode |publisher=Avidemux |format=wiki-documentation |access-date=2009-09-30 |archive-date=2009-07-29 |archive-url=https://web.archive.org/web/20090729234601/http://www.avidemux.org/admWiki/index.php?title=H264#General |url-status=live }}</ref>
There are no ideal "one-size-fits-all" settings for ABR in video encoding. For low resolution (320 or 640 lines) video encoded with MPEG-1 or MPEG-2, the average bit rate can be as low as 1000 kbit/s and still achieve acceptable results. For a high resolution video such as 1080, this average may need to be 6000 kbit/s or higher. The main factor in determining a minimum video bitrate is how efficiently the video can be encoded. Using more efficient video encodings such as [[MPEG-4]] will help promote a lower bit rate, while significant amounts of motion or [[white noise]] will require a higher bit rate to encode without visible [[compression artifact|artifacts]]. In the end, the user may have to use trial and error to achieve a minimum file size for a given video stream, by encoding at a given bitrate and then viewing the results.


===File size===
===File size===

Revision as of 18:09, 26 August 2022

Variable bitrate (VBR) is a term used in telecommunications and computing that relates to the bitrate used in sound or video encoding. As opposed to constant bitrate (CBR), VBR files vary the amount of output data per time segment. VBR allows a higher bitrate (and therefore more storage space) to be allocated to the more complex segments of media files while less space is allocated to less complex segments. The average of these rates can be calculated to produce an average bitrate for the file.

MP3, WMA and AAC audio files can optionally be encoded in VBR, while Opus and Vorbis are encoded in VBR by default.[1][2][3] Variable bit rate encoding is also commonly used on MPEG-2 video, MPEG-4 Part 2 video (Xvid, DivX, etc.), MPEG-4 Part 10/H.264 video, Theora, Dirac and other video compression formats.[citation needed] Additionally, variable rate encoding is inherent in lossless compression schemes such as FLAC and Apple Lossless.[citation needed]

Advantages and disadvantages of VBR

The advantages of VBR are that it produces a better quality-to-space ratio compared to a CBR file of the same data. The bits available are used more flexibly to encode the sound or video data more accurately, with fewer bits used in less demanding passages and more bits used in difficult-to-encode passages.[2][4]

The disadvantages are that it may take more time to encode, as the process is more complex, and that some hardware might not be compatible with VBR files.[2]

Methods of VBR encoding

Multi-pass encoding and single-pass encoding

VBR is created using so-called single-pass encoding or multi-pass encoding. Single-pass encoding analyzes and encodes the data "on the fly" and it is also used in constant bitrate encoding. Single-pass encoding is used when the encoding speed is most important — e.g. for real-time encoding. Single-pass VBR encoding is usually controlled by the fixed quality setting or by the bitrate range (minimum and maximum allowed bitrate) or by the average bitrate setting. Multi-pass encoding is used when the encoding quality is most important. Multi-pass encoding cannot be used in real-time encoding, live broadcast or live streaming. Multi-pass encoding takes much longer than single-pass encoding, because every pass means one pass through the input data (usually through the whole input file). Multi-pass encoding is used only for VBR encoding, because CBR encoding doesn't offer any flexibility to change the bitrate. The most common multi-pass encoding is two-pass encoding. In the first pass of two-pass encoding, the input data is being analyzed and the result is stored in a log file. In the second pass, the collected data from the first pass is used to achieve the best encoding quality. In a video encoding, two-pass encoding is usually controlled by the average bitrate setting or by the bitrate range setting (minimal and maximal allowed bitrate) or by the target video file size setting.[5][6]

Bitrate range

This VBR encoding method allows the user to specify a bitrate range — a minimum and/or maximum allowed bitrate.[7] Some encoders extend this method with an average bitrate. The minimum and maximum allowed bitrate set bounds in which the bitrate may vary. The disadvantage of this method is that the average bitrate (and hence file size) will not be known ahead of time. The bitrate range is also used in some fixed quality encoding methods, but usually without permission to change a particular bitrate.[8]

Average bitrate

The disadvantage of single pass ABR encoding (with or without Constrained Variable Bitrate) is the opposite of fixed quantizer VBR — the size of the output is known ahead of time, but the resulting quality is unknown, although still better than CBR.[9]

The multi-pass ABR encoding is more similar to fixed quantizer VBR, because a higher average will really increase the quality.[10]

File size

VBR encoding using the file size setting is usually multi-pass encoding. It allows the user to specify a specific target file size. In the first pass, the encoder analyzes the input file and automatically calculates possible bitrate range and/or average bitrate. In the last pass, the encoder distributes the available bits among the entire video to achieve uniform quality.[10]

See also

References

  1. ^ Variable Bitrate (knowledgebase), Hydrogenaudio, 2007, archived from the original on 2014-07-06, retrieved 2009-09-30
  2. ^ a b c "VBR", Glossary, AfterDawn, archived from the original on 2010-01-28, retrieved 2009-09-30
  3. ^ Variable bit rate (wiki), Audacity, archived from the original on 2009-09-08, retrieved 2009-09-30
  4. ^ LAME – VBR (variable bitrate) settings (knowledgebase), Hydrogenaudio, 2009, archived from the original on 2014-06-06, retrieved 2009-09-30
  5. ^ *"Multi-pass encoding", Glossary, AfterDawn, archived from the original on 2009-09-18, retrieved 2009-09-30
  6. ^ *"Encoding with the x264 codec", Encoding with MEncoder, HU: MPlayer team, archived from the original on 2010-03-01, retrieved 2009-10-01
  7. ^ Variable Bitrate (knowledgebase), Hydrogenaudio, 2007, archived from the original on 2014-07-06, retrieved 2009-10-04
  8. ^ LAME — VBR (knowledgebase), Hydrogenaudio, 2007, archived from the original on 2014-06-06, retrieved 2009-10-04
  9. ^ Average Bitrate (knowledgebase), Hydrogenaudio, 2007, archived from the original on 2014-07-06, retrieved 2009-10-01
  10. ^ a b "Rate Control — Encoding Mode", H.264/AVC options explained (wiki-documentation), Avidemux, 2009, archived from the original on 2009-07-29, retrieved 2009-09-30