https://en.wikipedia.org/w/index.php?action=history&feed=atom&title=Context-adaptive_binary_arithmetic_coding Context-adaptive binary arithmetic coding - Revision history 2025-05-31T15:47:15Z Revision history for this page on the wiki MediaWiki 1.45.0-wmf.3 https://en.wikipedia.org/w/index.php?title=Context-adaptive_binary_arithmetic_coding&diff=1264188789&oldid=prev 80.221.244.224: /* History */ typo. Middle name is Johannes 2024-12-21T00:03:17Z <p><span class="autocomment">History: </span> typo. Middle name is Johannes</p> <table style="background-color: #fff; color: #202122;" data-mw="interface"> <col class="diff-marker" /> <col class="diff-content" /> <col class="diff-marker" /> <col class="diff-content" /> <tr class="diff-title" lang="en"> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Previous revision</td> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 00:03, 21 December 2024</td> </tr><tr> <td colspan="2" class="diff-lineno">Line 115:</td> <td colspan="2" class="diff-lineno">Line 115:</td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>==History==</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>==History==</div></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>In 1986, [[IBM]] researchers Kottappuram M. A. Mohiuddin and Jorma <del style="font-weight: bold; text-decoration: none;">Johannen</del> Rissanen filed a [[patent]] for a multiplication-free binary arithmetic coding algorithm.&lt;ref name="t81"&gt;{{cite web |title=T.81 – DIGITAL COMPRESSION AND CODING OF CONTINUOUS-TONE STILL IMAGES – REQUIREMENTS AND GUIDELINES |url=https://www.w3.org/Graphics/JPEG/itu-t81.pdf |publisher=[[CCITT]] |date=September 1992 |accessdate=12 July 2019}}&lt;/ref&gt;&lt;ref&gt;{{US patent|4652856}}&lt;/ref&gt; In 1988, an IBM research team including R.B. Arps, T.K. Truong, D.J. Lu, W. B. Pennebaker, L. Mitchell and G. G. Langdon presented an adaptive binary arithmetic coding (ABAC) algorithm called Q-Coder.&lt;ref&gt;{{cite journal |last1=Arps |first1=R. B. |last2=Truong |first2=T. K. |last3=Lu |first3=D. J. |last4=Pasco |first4=R. C. |last5=Friedman |first5=T. D. |title=A multi-purpose VLSI chip for adaptive data compression of bilevel images |journal=IBM Journal of Research and Development |date=November 1988 |volume=32 |issue=6 |pages=775–795 |doi=10.1147/rd.326.0775 |issn=0018-8646}}&lt;/ref&gt;&lt;ref&gt;{{cite journal |last1=Pennebaker |first1=W. B. |last2=Mitchell |first2=J. L. |last3=Langdon |first3=G. G. |last4=Arps |first4=R. B. |title=An overview of the basic principles of the Q-Coder adaptive binary arithmetic coder |journal=IBM Journal of Research and Development |date=November 1988 |volume=32 |issue=6 |pages=717–726 |doi=10.1147/rd.326.0717 |issn=0018-8646}}&lt;/ref&gt;</div></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>In 1986, [[IBM]] researchers Kottappuram M. A. Mohiuddin and Jorma <ins style="font-weight: bold; text-decoration: none;">Johannes</ins> Rissanen filed a [[patent]] for a multiplication-free binary arithmetic coding algorithm.&lt;ref name="t81"&gt;{{cite web |title=T.81 – DIGITAL COMPRESSION AND CODING OF CONTINUOUS-TONE STILL IMAGES – REQUIREMENTS AND GUIDELINES |url=https://www.w3.org/Graphics/JPEG/itu-t81.pdf |publisher=[[CCITT]] |date=September 1992 |accessdate=12 July 2019}}&lt;/ref&gt;&lt;ref&gt;{{US patent|4652856}}&lt;/ref&gt; In 1988, an IBM research team including R.B. Arps, T.K. Truong, D.J. Lu, W. B. Pennebaker, L. Mitchell and G. G. Langdon presented an adaptive binary arithmetic coding (ABAC) algorithm called Q-Coder.&lt;ref&gt;{{cite journal |last1=Arps |first1=R. B. |last2=Truong |first2=T. K. |last3=Lu |first3=D. J. |last4=Pasco |first4=R. C. |last5=Friedman |first5=T. D. |title=A multi-purpose VLSI chip for adaptive data compression of bilevel images |journal=IBM Journal of Research and Development |date=November 1988 |volume=32 |issue=6 |pages=775–795 |doi=10.1147/rd.326.0775 |issn=0018-8646}}&lt;/ref&gt;&lt;ref&gt;{{cite journal |last1=Pennebaker |first1=W. B. |last2=Mitchell |first2=J. L. |last3=Langdon |first3=G. G. |last4=Arps |first4=R. B. |title=An overview of the basic principles of the Q-Coder adaptive binary arithmetic coder |journal=IBM Journal of Research and Development |date=November 1988 |volume=32 |issue=6 |pages=717–726 |doi=10.1147/rd.326.0717 |issn=0018-8646}}&lt;/ref&gt;</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>The above patents and research papers, along several others from IBM and [[Mitsubishi Electric]], were later cited by the [[CCITT]] and [[Joint Photographic Experts Group]] as the basis for the [[JPEG]] [[image compression]] format's adaptive binary arithmetic coding algorithm in 1992.&lt;ref name="t81"/&gt; However, encoders and decoders of the JPEG file format, which has options for both [[Huffman encoding]] and arithmetic coding, typically only support the Huffman encoding option, which was originally because of patent concerns, although JPEG's arithmetic coding patents&lt;ref&gt;{{cite web |url=http://www.itu.int/rec/T-REC-T.81-200401-I!Cor1/dologin.asp?lang=e&amp;id=T-REC-T.81-200401-I!Cor1!PDF-E&amp;type=items |title=Recommendation T.81 (1992) Corrigendum 1 (01/04) |author= |date=9 November 2004 |work=Recommendation T.81 (1992) |publisher=International Telecommunication Union |accessdate=3 February 2011}}&lt;/ref&gt; have since expired due to the age of the JPEG standard.&lt;ref&gt;''JPEG Still Image Data Compression Standard'', W. B. Pennebaker and [[Joan L. Mitchell|J. L. Mitchell]], Kluwer Academic Press, 1992. {{ISBN|0-442-01272-1}}&lt;/ref&gt; The first reported use of adaptive binary arithmetic coding in motion video compression was in a proposal by IBM researchers to the MPEG group in 1989.&lt;ref&gt;''DCT Coding for Motion Video Storage using Adaptive Arithmetic Coding'', C. A. Gonzales. L. Allman, T. McCarthy, P. Wendt and A. N. Akansu, Signal Processing: Image Communication, 2, 145, 1990.&lt;/ref&gt;&lt;ref&gt;''Encoding of motion video sequences for the MPEG environment using arithmetic coding'', E. Viscito and C. Gonzales, SPIE Visual Communications and Image Processing '90, October 2–4, 1990.&lt;/ref&gt; This proposal extended the use of arithmetic coding from intraframe JPEG to interframe video coding.</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>The above patents and research papers, along several others from IBM and [[Mitsubishi Electric]], were later cited by the [[CCITT]] and [[Joint Photographic Experts Group]] as the basis for the [[JPEG]] [[image compression]] format's adaptive binary arithmetic coding algorithm in 1992.&lt;ref name="t81"/&gt; However, encoders and decoders of the JPEG file format, which has options for both [[Huffman encoding]] and arithmetic coding, typically only support the Huffman encoding option, which was originally because of patent concerns, although JPEG's arithmetic coding patents&lt;ref&gt;{{cite web |url=http://www.itu.int/rec/T-REC-T.81-200401-I!Cor1/dologin.asp?lang=e&amp;id=T-REC-T.81-200401-I!Cor1!PDF-E&amp;type=items |title=Recommendation T.81 (1992) Corrigendum 1 (01/04) |author= |date=9 November 2004 |work=Recommendation T.81 (1992) |publisher=International Telecommunication Union |accessdate=3 February 2011}}&lt;/ref&gt; have since expired due to the age of the JPEG standard.&lt;ref&gt;''JPEG Still Image Data Compression Standard'', W. B. Pennebaker and [[Joan L. Mitchell|J. L. Mitchell]], Kluwer Academic Press, 1992. {{ISBN|0-442-01272-1}}&lt;/ref&gt; The first reported use of adaptive binary arithmetic coding in motion video compression was in a proposal by IBM researchers to the MPEG group in 1989.&lt;ref&gt;''DCT Coding for Motion Video Storage using Adaptive Arithmetic Coding'', C. A. Gonzales. L. Allman, T. McCarthy, P. Wendt and A. N. Akansu, Signal Processing: Image Communication, 2, 145, 1990.&lt;/ref&gt;&lt;ref&gt;''Encoding of motion video sequences for the MPEG environment using arithmetic coding'', E. Viscito and C. Gonzales, SPIE Visual Communications and Image Processing '90, October 2–4, 1990.&lt;/ref&gt; This proposal extended the use of arithmetic coding from intraframe JPEG to interframe video coding.</div></td> </tr> </table> 80.221.244.224 https://en.wikipedia.org/w/index.php?title=Context-adaptive_binary_arithmetic_coding&diff=1261412605&oldid=prev IznoRepeat: /* References */ add WP:TEMPLATECAT to remove from template; genfixes 2024-12-05T23:53:10Z <p><span class="autocomment">References: </span> add <a href="/wiki/Wikipedia:TEMPLATECAT" class="mw-redirect" title="Wikipedia:TEMPLATECAT">WP:TEMPLATECAT</a> to remove from template; genfixes</p> <table style="background-color: #fff; color: #202122;" data-mw="interface"> <col class="diff-marker" /> <col class="diff-content" /> <col class="diff-marker" /> <col class="diff-content" /> <tr class="diff-title" lang="en"> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Previous revision</td> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 23:53, 5 December 2024</td> </tr><tr> <td colspan="2" class="diff-lineno">Line 140:</td> <td colspan="2" class="diff-lineno">Line 140:</td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>[[Category:MPEG]]</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>[[Category:MPEG]]</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>[[Category:Video compression]]</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>[[Category:Video compression]]</div></td> </tr> <tr> <td colspan="2" class="diff-empty diff-side-deleted"></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>[[Category:Data compression]]</div></td> </tr> </table> IznoRepeat https://en.wikipedia.org/w/index.php?title=Context-adaptive_binary_arithmetic_coding&diff=1257989892&oldid=prev 76.71.3.150: /* Example */ MOS:CQ 2024-11-17T15:32:34Z <p><span class="autocomment">Example: </span> MOS:CQ</p> <table style="background-color: #fff; color: #202122;" data-mw="interface"> <col class="diff-marker" /> <col class="diff-content" /> <col class="diff-marker" /> <col class="diff-content" /> <tr class="diff-title" lang="en"> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Previous revision</td> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 15:32, 17 November 2024</td> </tr><tr> <td colspan="2" class="diff-lineno">Line 99:</td> <td colspan="2" class="diff-lineno">Line 99:</td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>{{clear}}</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>{{clear}}</div></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>3. Encode each bin. The selected context model supplies two probability estimates: the probability that the bin contains <del style="font-weight: bold; text-decoration: none;">“1”</del> and the probability that the bin contains <del style="font-weight: bold; text-decoration: none;">“0”</del>. These estimates determine the two sub-ranges that the arithmetic coder uses to encode the bin.</div></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>3. Encode each bin. The selected context model supplies two probability estimates: the probability that the bin contains <ins style="font-weight: bold; text-decoration: none;">"1"</ins> and the probability that the bin contains <ins style="font-weight: bold; text-decoration: none;">"0"</ins>. These estimates determine the two sub-ranges that the arithmetic coder uses to encode the bin.</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>4. Update the context models. For example, if context model 2 was selected for bin 1 and the value of bin 1 was <del style="font-weight: bold; text-decoration: none;">“0”</del>, the frequency count of <del style="font-weight: bold; text-decoration: none;">“0”s</del> is incremented. This means that the next time this model is selected, the probability of a <del style="font-weight: bold; text-decoration: none;">“0”</del> will be slightly higher. When the total number of occurrences of a model exceeds a threshold value, the frequency counts for <del style="font-weight: bold; text-decoration: none;">“0”</del> and <del style="font-weight: bold; text-decoration: none;">“1”</del> will be scaled down, which in effect gives higher priority to recent observations.</div></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>4. Update the context models. For example, if context model 2 was selected for bin 1 and the value of bin 1 was <ins style="font-weight: bold; text-decoration: none;">"0"</ins>, the frequency count of <ins style="font-weight: bold; text-decoration: none;">"0"s</ins> is incremented. This means that the next time this model is selected, the probability of a <ins style="font-weight: bold; text-decoration: none;">"0"</ins> will be slightly higher. When the total number of occurrences of a model exceeds a threshold value, the frequency counts for <ins style="font-weight: bold; text-decoration: none;">"0"</ins> and <ins style="font-weight: bold; text-decoration: none;">"1"</ins> will be scaled down, which in effect gives higher priority to recent observations.</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>==The arithmetic decoding engine==</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>==The arithmetic decoding engine==</div></td> </tr> </table> 76.71.3.150 https://en.wikipedia.org/w/index.php?title=Context-adaptive_binary_arithmetic_coding&diff=1194923382&oldid=prev Artoria2e5: /* Example */ move stuff 2024-01-11T12:38:26Z <p><span class="autocomment">Example: </span> move stuff</p> <table style="background-color: #fff; color: #202122;" data-mw="interface"> <col class="diff-marker" /> <col class="diff-content" /> <col class="diff-marker" /> <col class="diff-content" /> <tr class="diff-title" lang="en"> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Previous revision</td> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 12:38, 11 January 2024</td> </tr><tr> <td colspan="2" class="diff-lineno">Line 23:</td> <td colspan="2" class="diff-lineno">Line 23:</td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>==Example==</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>==Example==</div></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><br /></td> <td colspan="2" class="diff-empty diff-side-added"></td> </tr> <tr> <td class="diff-marker"><a class="mw-diff-movedpara-left" title="Paragraph was moved. Click to jump to new location." href="#movedpara_3_1_rhs">&#x26AB;</a></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><a name="movedpara_1_1_lhs"></a>1. Binarize the value MVDx, the motion vector difference in the {{var|x}} direction.</div></td> <td colspan="2" class="diff-empty diff-side-added"></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>{| class="wikitable floatright"</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>{| class="wikitable floatright"</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>! MVD&lt;sub&gt;x&lt;/sub&gt;</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>! MVD&lt;sub&gt;x&lt;/sub&gt;</div></td> </tr> <tr> <td colspan="2" class="diff-lineno">Line 56:</td> <td colspan="2" class="diff-lineno">Line 54:</td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>| 111111110</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>| 111111110</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|}</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|}</div></td> </tr> <tr> <td colspan="2" class="diff-empty diff-side-deleted"></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td colspan="2" class="diff-empty diff-side-deleted"></td> <td class="diff-marker"><a class="mw-diff-movedpara-right" title="Paragraph was moved. Click to jump to old location." href="#movedpara_1_1_lhs">&#x26AB;</a></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><a name="movedpara_3_1_rhs"></a>1. Binarize the value MVDx, the motion vector difference in the {{var|x}} direction.</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>The first bit of the binarized codeword is bin 1; the second bit is bin 2; and so on.</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>The first bit of the binarized codeword is bin 1; the second bit is bin 2; and so on.</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>{{clear}}</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>{{clear}}</div></td> </tr> <tr> <td class="diff-marker"><a class="mw-diff-movedpara-left" title="Paragraph was moved. Click to jump to new location." href="#movedpara_7_0_rhs">&#x26AB;</a></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><a name="movedpara_5_0_lhs"></a>2. Choose a context model for each bin. One of 3 models is selected for bin 1, based on previous coded MVD values. The L1 norm of two previously-coded values, e&lt;sub&gt;k&lt;/sub&gt;, is calculated:</div></td> <td colspan="2" class="diff-empty diff-side-added"></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><br /></td> <td colspan="2" class="diff-empty diff-side-added"></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>{| class="wikitable floatright"</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>{| class="wikitable floatright"</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>! e&lt;sub&gt;k&lt;/sub&gt;</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>! e&lt;sub&gt;k&lt;/sub&gt;</div></td> </tr> <tr> <td colspan="2" class="diff-lineno">Line 76:</td> <td colspan="2" class="diff-lineno">Line 74:</td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|}</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|}</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td colspan="2" class="diff-empty diff-side-deleted"></td> <td class="diff-marker"><a class="mw-diff-movedpara-right" title="Paragraph was moved. Click to jump to old location." href="#movedpara_5_0_lhs">&#x26AB;</a></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><a name="movedpara_7_0_rhs"></a>2. Choose a context model for each bin. One of 3 models is selected for bin 1, based on previous coded MVD values. The L1 norm of two previously-coded values, e&lt;sub&gt;k&lt;/sub&gt;, is calculated:</div></td> </tr> <tr> <td class="diff-marker"><a class="mw-diff-movedpara-left" title="Paragraph was moved. Click to jump to new location." href="#movedpara_11_0_rhs">&#x26AB;</a></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><a name="movedpara_8_0_lhs"></a>{{clear}}</div></td> <td colspan="2" class="diff-empty diff-side-added"></td> </tr> <tr> <td class="diff-marker"><a class="mw-diff-movedpara-left" title="Paragraph was moved. Click to jump to new location." href="#movedpara_13_0_rhs">&#x26AB;</a></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><a name="movedpara_9_0_lhs"></a>If e&lt;sub&gt;k&lt;/sub&gt; is small, then there is a high probability that the current MVD will have a small magnitude; conversely, if e&lt;sub&gt;k&lt;/sub&gt; is large then it is more likely that the current MVD will have a large magnitude. We select a probability table (context model) accordingly. The remaining bins are coded using one of 4 further context models:</div></td> <td colspan="2" class="diff-empty diff-side-added"></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td colspan="2" class="diff-empty diff-side-deleted"></td> <td class="diff-marker"><a class="mw-diff-movedpara-right" title="Paragraph was moved. Click to jump to old location." href="#movedpara_8_0_lhs">&#x26AB;</a></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><a name="movedpara_11_0_rhs"></a>{{clear}}</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>{| class="wikitable floatright"</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>{| class="wikitable floatright"</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>! Bin</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>! Bin</div></td> </tr> <tr> <td colspan="2" class="diff-lineno">Line 98:</td> <td colspan="2" class="diff-lineno">Line 96:</td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>| 6</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>| 6</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|}</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|}</div></td> </tr> <tr> <td colspan="2" class="diff-empty diff-side-deleted"></td> <td class="diff-marker"><a class="mw-diff-movedpara-right" title="Paragraph was moved. Click to jump to old location." href="#movedpara_9_0_lhs">&#x26AB;</a></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><a name="movedpara_13_0_rhs"></a>If e&lt;sub&gt;k&lt;/sub&gt; is small, then there is a high probability that the current MVD will have a small magnitude; conversely, if e&lt;sub&gt;k&lt;/sub&gt; is large then it is more likely that the current MVD will have a large magnitude. We select a probability table (context model) accordingly. The remaining bins are coded using one of 4 further context models:</div></td> </tr> <tr> <td colspan="2" class="diff-empty diff-side-deleted"></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>{{clear}}</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>{{clear}}</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>3. Encode each bin. The selected context model supplies two probability estimates: the probability that the bin contains “1” and the probability that the bin contains “0”. These estimates determine the two sub-ranges that the arithmetic coder uses to encode the bin.</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>3. Encode each bin. The selected context model supplies two probability estimates: the probability that the bin contains “1” and the probability that the bin contains “0”. These estimates determine the two sub-ranges that the arithmetic coder uses to encode the bin.</div></td> </tr> </table> Artoria2e5 https://en.wikipedia.org/w/index.php?title=Context-adaptive_binary_arithmetic_coding&diff=1194923277&oldid=prev Artoria2e5: /* Example */ {{clear}} 2024-01-11T12:37:27Z <p><span class="autocomment">Example: </span> {{clear}}</p> <table style="background-color: #fff; color: #202122;" data-mw="interface"> <col class="diff-marker" /> <col class="diff-content" /> <col class="diff-marker" /> <col class="diff-content" /> <tr class="diff-title" lang="en"> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Previous revision</td> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 12:37, 11 January 2024</td> </tr><tr> <td colspan="2" class="diff-lineno">Line 25:</td> <td colspan="2" class="diff-lineno">Line 25:</td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>1. Binarize the value MVDx, the motion vector difference in the {{var|x}} direction.</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>1. Binarize the value MVDx, the motion vector difference in the {{var|x}} direction.</div></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><br /></td> <td colspan="2" class="diff-empty diff-side-added"></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>{| class="wikitable floatright"</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>{| class="wikitable floatright"</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>! MVD&lt;sub&gt;x&lt;/sub&gt;</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>! MVD&lt;sub&gt;x&lt;/sub&gt;</div></td> </tr> <tr> <td colspan="2" class="diff-lineno">Line 60:</td> <td colspan="2" class="diff-lineno">Line 59:</td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>The first bit of the binarized codeword is bin 1; the second bit is bin 2; and so on.</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>The first bit of the binarized codeword is bin 1; the second bit is bin 2; and so on.</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td colspan="2" class="diff-empty diff-side-deleted"></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>{{clear}}</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>2. Choose a context model for each bin. One of 3 models is selected for bin 1, based on previous coded MVD values. The L1 norm of two previously-coded values, e&lt;sub&gt;k&lt;/sub&gt;, is calculated:</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>2. Choose a context model for each bin. One of 3 models is selected for bin 1, based on previous coded MVD values. The L1 norm of two previously-coded values, e&lt;sub&gt;k&lt;/sub&gt;, is calculated:</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td colspan="2" class="diff-lineno">Line 76:</td> <td colspan="2" class="diff-lineno">Line 76:</td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|}</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|}</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td colspan="2" class="diff-empty diff-side-deleted"></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>{{clear}}</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>If e&lt;sub&gt;k&lt;/sub&gt; is small, then there is a high probability that the current MVD will have a small magnitude; conversely, if e&lt;sub&gt;k&lt;/sub&gt; is large then it is more likely that the current MVD will have a large magnitude. We select a probability table (context model) accordingly. The remaining bins are coded using one of 4 further context models:</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>If e&lt;sub&gt;k&lt;/sub&gt; is small, then there is a high probability that the current MVD will have a small magnitude; conversely, if e&lt;sub&gt;k&lt;/sub&gt; is large then it is more likely that the current MVD will have a large magnitude. We select a probability table (context model) accordingly. The remaining bins are coded using one of 4 further context models:</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td colspan="2" class="diff-lineno">Line 97:</td> <td colspan="2" class="diff-lineno">Line 98:</td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>| 6</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>| 6</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|}</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|}</div></td> </tr> <tr> <td colspan="2" class="diff-empty diff-side-deleted"></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>{{clear}}</div></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><br /></td> <td colspan="2" class="diff-empty diff-side-added"></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>3. Encode each bin. The selected context model supplies two probability estimates: the probability that the bin contains “1” and the probability that the bin contains “0”. These estimates determine the two sub-ranges that the arithmetic coder uses to encode the bin.</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>3. Encode each bin. The selected context model supplies two probability estimates: the probability that the bin contains “1” and the probability that the bin contains “0”. These estimates determine the two sub-ranges that the arithmetic coder uses to encode the bin.</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> </table> Artoria2e5 https://en.wikipedia.org/w/index.php?title=Context-adaptive_binary_arithmetic_coding&diff=1174526588&oldid=prev BD2412: Clean up spacing errors around ref tags., replaced: /ref>T → /ref> T (2) 2023-09-09T00:56:24Z <p>Clean up spacing errors around ref tags., replaced: /ref&gt;T → /ref&gt; T (2)</p> <table style="background-color: #fff; color: #202122;" data-mw="interface"> <col class="diff-marker" /> <col class="diff-content" /> <col class="diff-marker" /> <col class="diff-content" /> <tr class="diff-title" lang="en"> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Previous revision</td> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 00:56, 9 September 2023</td> </tr><tr> <td colspan="2" class="diff-lineno">Line 1:</td> <td colspan="2" class="diff-lineno">Line 1:</td> </tr> <tr> <td colspan="2" class="diff-empty diff-side-deleted"></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>{{Short description|Entropy coding method}}</div></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del style="font-weight: bold; text-decoration: none;">{{Short description|Entropy coding method}}</del>'''Context-adaptive binary arithmetic coding''' ('''CABAC''') is a form of [[entropy encoding]] used in the [[H.264/MPEG-4 AVC]]&lt;ref name="H.264_overview" /&gt;&lt;ref name="H.264_book" /&gt; and [[High Efficiency Video Coding]] (HEVC) standards. It is a [[lossless compression]] technique, although the video coding standards in which it is used are typically for [[lossy compression]] applications. CABAC is notable for providing much better [[data compression|compression]] than most other entropy encoding algorithms used in video encoding, and it is one of the key elements that provides the H.264/AVC encoding scheme with better compression capability than its predecessors.&lt;ref name="LiDrew2014"&gt;{{cite book|author1=Ze-Nian Li|author2=Mark S. Drew|author3=Jiangchuan Liu|title=Fundamentals of Multimedia|url=https://books.google.com/books?id=R6vBBAAAQBAJ|date=9 April 2014|publisher=Springer Science &amp; Business Media|isbn=978-3-319-05290-8}}&lt;/ref&gt;<del style="font-weight: bold; text-decoration: none;"> </del></div></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>'''Context-adaptive binary arithmetic coding''' ('''CABAC''') is a form of [[entropy encoding]] used in the [[H.264/MPEG-4 AVC]]&lt;ref name="H.264_overview" /&gt;&lt;ref name="H.264_book" /&gt; and [[High Efficiency Video Coding]] (HEVC) standards. It is a [[lossless compression]] technique, although the video coding standards in which it is used are typically for [[lossy compression]] applications. CABAC is notable for providing much better [[data compression|compression]] than most other entropy encoding algorithms used in video encoding, and it is one of the key elements that provides the H.264/AVC encoding scheme with better compression capability than its predecessors.&lt;ref name="LiDrew2014"&gt;{{cite book|author1=Ze-Nian Li|author2=Mark S. Drew|author3=Jiangchuan Liu|title=Fundamentals of Multimedia|url=https://books.google.com/books?id=R6vBBAAAQBAJ|date=9 April 2014|publisher=Springer Science &amp; Business Media|isbn=978-3-319-05290-8}}&lt;/ref&gt;</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>In [[H.264/MPEG-4 AVC]], CABAC is only supported in the Main and higher [[H.264/MPEG-<del style="font-weight: bold; text-decoration: none;">4_AVC</del>#Profiles|profiles]] (but not the extended profile) of the standard, as it requires a larger amount of processing to decode than the simpler scheme known as [[context-adaptive variable-length coding]] (CAVLC) that is used in the standard's Baseline profile. CABAC is also difficult to parallelize and vectorize, so other forms of parallelism (such as spatial region parallelism) may be coupled with its use. In HEVC, CABAC is used in all profiles of the standard.</div></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>In [[H.264/MPEG-4 AVC]], CABAC is only supported in the Main and higher [[H.264/MPEG-<ins style="font-weight: bold; text-decoration: none;">4 AVC</ins>#Profiles|profiles]] (but not the extended profile) of the standard, as it requires a larger amount of processing to decode than the simpler scheme known as [[context-adaptive variable-length coding]] (CAVLC) that is used in the standard's Baseline profile. CABAC is also difficult to parallelize and vectorize, so other forms of parallelism (such as spatial region parallelism) may be coupled with its use. In HEVC, CABAC is used in all profiles of the standard.</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>==Algorithm==</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>==Algorithm==</div></td> </tr> <tr> <td colspan="2" class="diff-lineno">Line 115:</td> <td colspan="2" class="diff-lineno">Line 116:</td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>In 1986, [[IBM]] researchers Kottappuram M. A. Mohiuddin and Jorma Johannen Rissanen filed a [[patent]] for a multiplication-free binary arithmetic coding algorithm.&lt;ref name="t81"&gt;{{cite web |title=T.81 – DIGITAL COMPRESSION AND CODING OF CONTINUOUS-TONE STILL IMAGES – REQUIREMENTS AND GUIDELINES |url=https://www.w3.org/Graphics/JPEG/itu-t81.pdf |publisher=[[CCITT]] |date=September 1992 |accessdate=12 July 2019}}&lt;/ref&gt;&lt;ref&gt;{{US patent|4652856}}&lt;/ref&gt; In 1988, an IBM research team including R.B. Arps, T.K. Truong, D.J. Lu, W. B. Pennebaker, L. Mitchell and G. G. Langdon presented an adaptive binary arithmetic coding (ABAC) algorithm called Q-Coder.&lt;ref&gt;{{cite journal |last1=Arps |first1=R. B. |last2=Truong |first2=T. K. |last3=Lu |first3=D. J. |last4=Pasco |first4=R. C. |last5=Friedman |first5=T. D. |title=A multi-purpose VLSI chip for adaptive data compression of bilevel images |journal=IBM Journal of Research and Development |date=November 1988 |volume=32 |issue=6 |pages=775–795 |doi=10.1147/rd.326.0775 |issn=0018-8646}}&lt;/ref&gt;&lt;ref&gt;{{cite journal |last1=Pennebaker |first1=W. B. |last2=Mitchell |first2=J. L. |last3=Langdon |first3=G. G. |last4=Arps |first4=R. B. |title=An overview of the basic principles of the Q-Coder adaptive binary arithmetic coder |journal=IBM Journal of Research and Development |date=November 1988 |volume=32 |issue=6 |pages=717–726 |doi=10.1147/rd.326.0717 |issn=0018-8646}}&lt;/ref&gt;</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>In 1986, [[IBM]] researchers Kottappuram M. A. Mohiuddin and Jorma Johannen Rissanen filed a [[patent]] for a multiplication-free binary arithmetic coding algorithm.&lt;ref name="t81"&gt;{{cite web |title=T.81 – DIGITAL COMPRESSION AND CODING OF CONTINUOUS-TONE STILL IMAGES – REQUIREMENTS AND GUIDELINES |url=https://www.w3.org/Graphics/JPEG/itu-t81.pdf |publisher=[[CCITT]] |date=September 1992 |accessdate=12 July 2019}}&lt;/ref&gt;&lt;ref&gt;{{US patent|4652856}}&lt;/ref&gt; In 1988, an IBM research team including R.B. Arps, T.K. Truong, D.J. Lu, W. B. Pennebaker, L. Mitchell and G. G. Langdon presented an adaptive binary arithmetic coding (ABAC) algorithm called Q-Coder.&lt;ref&gt;{{cite journal |last1=Arps |first1=R. B. |last2=Truong |first2=T. K. |last3=Lu |first3=D. J. |last4=Pasco |first4=R. C. |last5=Friedman |first5=T. D. |title=A multi-purpose VLSI chip for adaptive data compression of bilevel images |journal=IBM Journal of Research and Development |date=November 1988 |volume=32 |issue=6 |pages=775–795 |doi=10.1147/rd.326.0775 |issn=0018-8646}}&lt;/ref&gt;&lt;ref&gt;{{cite journal |last1=Pennebaker |first1=W. B. |last2=Mitchell |first2=J. L. |last3=Langdon |first3=G. G. |last4=Arps |first4=R. B. |title=An overview of the basic principles of the Q-Coder adaptive binary arithmetic coder |journal=IBM Journal of Research and Development |date=November 1988 |volume=32 |issue=6 |pages=717–726 |doi=10.1147/rd.326.0717 |issn=0018-8646}}&lt;/ref&gt;</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>The above patents and research papers, along several others from IBM and [[Mitsubishi Electric]], were later cited by the [[CCITT]] and [[Joint Photographic Experts Group]] as the basis for the [[JPEG]] [[image compression]] format's adaptive binary arithmetic coding algorithm in 1992.&lt;ref name="t81"/&gt; However, encoders and decoders of the JPEG file format, which has options for both [[Huffman encoding]] and arithmetic coding, typically only support the Huffman encoding option, which was originally because of patent concerns, although JPEG's arithmetic coding patents&lt;ref&gt;{{cite web |url=http://www.itu.int/rec/T-REC-T.81-200401-I!Cor1/dologin.asp?lang=e&amp;id=T-REC-T.81-200401-I!Cor1!PDF-E&amp;type=items |title=Recommendation T.81 (1992) Corrigendum 1 (01/04) |author= |date=9 November 2004 |work=Recommendation T.81 (1992) |publisher=International Telecommunication Union |accessdate=3 February 2011}}&lt;/ref&gt; have since expired due to the age of the JPEG standard.&lt;ref&gt;''JPEG Still Image Data Compression Standard'', W. B. Pennebaker and [[Joan L. Mitchell|J. L. Mitchell]], Kluwer Academic Press, 1992. {{ISBN|0-442-01272-1}}&lt;/ref&gt;The first reported use of adaptive binary arithmetic coding in motion video compression was in a proposal by IBM researchers to the MPEG group in 1989.&lt;ref&gt;''DCT Coding for Motion Video Storage using Adaptive Arithmetic Coding'', C. A. Gonzales. L. Allman, T. McCarthy, P. Wendt and A. N. Akansu, Signal Processing: Image Communication, 2, 145, 1990.&lt;/ref&gt;&lt;ref&gt;''Encoding of motion video sequences for the MPEG environment using arithmetic coding'', E. Viscito and C. Gonzales, SPIE Visual Communications and Image Processing '90, October <del style="font-weight: bold; text-decoration: none;">2-4</del>, 1990.&lt;/ref&gt;This proposal extended the use of arithmetic coding from intraframe JPEG to interframe video coding.</div></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>The above patents and research papers, along several others from IBM and [[Mitsubishi Electric]], were later cited by the [[CCITT]] and [[Joint Photographic Experts Group]] as the basis for the [[JPEG]] [[image compression]] format's adaptive binary arithmetic coding algorithm in 1992.&lt;ref name="t81"/&gt; However, encoders and decoders of the JPEG file format, which has options for both [[Huffman encoding]] and arithmetic coding, typically only support the Huffman encoding option, which was originally because of patent concerns, although JPEG's arithmetic coding patents&lt;ref&gt;{{cite web |url=http://www.itu.int/rec/T-REC-T.81-200401-I!Cor1/dologin.asp?lang=e&amp;id=T-REC-T.81-200401-I!Cor1!PDF-E&amp;type=items |title=Recommendation T.81 (1992) Corrigendum 1 (01/04) |author= |date=9 November 2004 |work=Recommendation T.81 (1992) |publisher=International Telecommunication Union |accessdate=3 February 2011}}&lt;/ref&gt; have since expired due to the age of the JPEG standard.&lt;ref&gt;''JPEG Still Image Data Compression Standard'', W. B. Pennebaker and [[Joan L. Mitchell|J. L. Mitchell]], Kluwer Academic Press, 1992. {{ISBN|0-442-01272-1}}&lt;/ref&gt;<ins style="font-weight: bold; text-decoration: none;"> </ins>The first reported use of adaptive binary arithmetic coding in motion video compression was in a proposal by IBM researchers to the MPEG group in 1989.&lt;ref&gt;''DCT Coding for Motion Video Storage using Adaptive Arithmetic Coding'', C. A. Gonzales. L. Allman, T. McCarthy, P. Wendt and A. N. Akansu, Signal Processing: Image Communication, 2, 145, 1990.&lt;/ref&gt;&lt;ref&gt;''Encoding of motion video sequences for the MPEG environment using arithmetic coding'', E. Viscito and C. Gonzales, SPIE Visual Communications and Image Processing '90, October <ins style="font-weight: bold; text-decoration: none;">2–4</ins>, 1990.&lt;/ref&gt;<ins style="font-weight: bold; text-decoration: none;"> </ins>This proposal extended the use of arithmetic coding from intraframe JPEG to interframe video coding.</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>In 1999, Youngjun Yoo ([[Texas Instruments]]), Young Gap Kwon and Antonio Ortega ([[University of Southern California]]) presented a context-adaptive form of binary arithmetic coding.&lt;ref&gt;{{cite book |last1=Ortega |first1=A. |title=Proceedings 1999 International Conference on Image Processing (Cat. 99CH36348) |chapter=Embedded image-domain compression using context models |date=October 1999 |volume=1 |pages=477–481 vol.1 |doi=10.1109/ICIP.1999.821655|isbn=0-7803-5467-2 |s2cid=27303716 }}&lt;/ref&gt; The modern context-adaptive binary arithmetic coding (CABAC) algorithm was commercially introduced with the [[H.264/MPEG-4 AVC]] format in 2003.&lt;ref&gt;{{cite web |title=Context-Based Adaptive Binary Arithmetic Coding (CABAC) |url=https://www.hhi.fraunhofer.de/en/departments/vca/research-groups/image-video-coding/research-topics/context-based-adaptive-binary-arithmetic-coding-cabac.html |website=Fraunhofer Heinrich Hertz Institute |accessdate=13 July 2019 |language=en}}&lt;/ref&gt; The majority of patents for the AVC format are held by [[Panasonic]], [[Godo kaisha|Godo Kaisha IP Bridge]] and [[LG Electronics]].&lt;ref name="patents"&gt;{{cite web |title=AVC/H.264 {{ndash}} Patent List |url=https://www.mpegla.com/wp-content/uploads/avc-att1.pdf |website=MPEG LA |accessdate=6 July 2019}}&lt;/ref&gt;</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>In 1999, Youngjun Yoo ([[Texas Instruments]]), Young Gap Kwon and Antonio Ortega ([[University of Southern California]]) presented a context-adaptive form of binary arithmetic coding.&lt;ref&gt;{{cite book |last1=Ortega |first1=A. |title=Proceedings 1999 International Conference on Image Processing (Cat. 99CH36348) |chapter=Embedded image-domain compression using context models |date=October 1999 |volume=1 |pages=477–481 vol.1 |doi=10.1109/ICIP.1999.821655|isbn=0-7803-5467-2 |s2cid=27303716 }}&lt;/ref&gt; The modern context-adaptive binary arithmetic coding (CABAC) algorithm was commercially introduced with the [[H.264/MPEG-4 AVC]] format in 2003.&lt;ref&gt;{{cite web |title=Context-Based Adaptive Binary Arithmetic Coding (CABAC) |url=https://www.hhi.fraunhofer.de/en/departments/vca/research-groups/image-video-coding/research-topics/context-based-adaptive-binary-arithmetic-coding-cabac.html |website=Fraunhofer Heinrich Hertz Institute |accessdate=13 July 2019 |language=en}}&lt;/ref&gt; The majority of patents for the AVC format are held by [[Panasonic]], [[Godo kaisha|Godo Kaisha IP Bridge]] and [[LG Electronics]].&lt;ref name="patents"&gt;{{cite web |title=AVC/H.264 {{ndash}} Patent List |url=https://www.mpegla.com/wp-content/uploads/avc-att1.pdf |website=MPEG LA |accessdate=6 July 2019}}&lt;/ref&gt;</div></td> </tr> <tr> <td colspan="2" class="diff-lineno">Line 133:</td> <td colspan="2" class="diff-lineno">Line 134:</td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>}}</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>}}</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>{{Compression methods}}</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>{{Compression methods}}</div></td> </tr> <tr> <td colspan="2" class="diff-empty diff-side-deleted"></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>[[Category:Audiovisual introductions in 2003]]</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>[[Category:Audiovisual introductions in 2003]]</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>[[Category:Entropy coding]]</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>[[Category:Entropy coding]]</div></td> </tr> </table> BD2412 https://en.wikipedia.org/w/index.php?title=Context-adaptive_binary_arithmetic_coding&diff=1170851141&oldid=prev 109.144.217.218: /* References */ Category change 2023-08-17T16:08:16Z <p><span class="autocomment">References: </span> Category change</p> <table style="background-color: #fff; color: #202122;" data-mw="interface"> <col class="diff-marker" /> <col class="diff-content" /> <col class="diff-marker" /> <col class="diff-content" /> <tr class="diff-title" lang="en"> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Previous revision</td> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 16:08, 17 August 2023</td> </tr><tr> <td colspan="2" class="diff-lineno">Line 134:</td> <td colspan="2" class="diff-lineno">Line 134:</td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>{{Compression methods}}</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>{{Compression methods}}</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>[[Category:Audiovisual introductions in 2003]]</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>[[Category:Audiovisual introductions in 2003]]</div></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>[[Category:<del style="font-weight: bold; text-decoration: none;">Lossless</del> <del style="font-weight: bold; text-decoration: none;">compression algorithms</del>]]</div></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>[[Category:<ins style="font-weight: bold; text-decoration: none;">Entropy</ins> <ins style="font-weight: bold; text-decoration: none;">coding</ins>]]</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>[[Category:MPEG]]</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>[[Category:MPEG]]</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>[[Category:Video compression]]</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>[[Category:Video compression]]</div></td> </tr> </table> 109.144.217.218 https://en.wikipedia.org/w/index.php?title=Context-adaptive_binary_arithmetic_coding&diff=1166935730&oldid=prev Butron: Added another reference to historical use of ABAC in video compression 2023-07-24T17:53:48Z <p>Added another reference to historical use of ABAC in video compression</p> <table style="background-color: #fff; color: #202122;" data-mw="interface"> <col class="diff-marker" /> <col class="diff-content" /> <col class="diff-marker" /> <col class="diff-content" /> <tr class="diff-title" lang="en"> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Previous revision</td> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 17:53, 24 July 2023</td> </tr><tr> <td colspan="2" class="diff-lineno">Line 115:</td> <td colspan="2" class="diff-lineno">Line 115:</td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>In 1986, [[IBM]] researchers Kottappuram M. A. Mohiuddin and Jorma Johannen Rissanen filed a [[patent]] for a multiplication-free binary arithmetic coding algorithm.&lt;ref name="t81"&gt;{{cite web |title=T.81 – DIGITAL COMPRESSION AND CODING OF CONTINUOUS-TONE STILL IMAGES – REQUIREMENTS AND GUIDELINES |url=https://www.w3.org/Graphics/JPEG/itu-t81.pdf |publisher=[[CCITT]] |date=September 1992 |accessdate=12 July 2019}}&lt;/ref&gt;&lt;ref&gt;{{US patent|4652856}}&lt;/ref&gt; In 1988, an IBM research team including R.B. Arps, T.K. Truong, D.J. Lu, W. B. Pennebaker, L. Mitchell and G. G. Langdon presented an adaptive binary arithmetic coding (ABAC) algorithm called Q-Coder.&lt;ref&gt;{{cite journal |last1=Arps |first1=R. B. |last2=Truong |first2=T. K. |last3=Lu |first3=D. J. |last4=Pasco |first4=R. C. |last5=Friedman |first5=T. D. |title=A multi-purpose VLSI chip for adaptive data compression of bilevel images |journal=IBM Journal of Research and Development |date=November 1988 |volume=32 |issue=6 |pages=775–795 |doi=10.1147/rd.326.0775 |issn=0018-8646}}&lt;/ref&gt;&lt;ref&gt;{{cite journal |last1=Pennebaker |first1=W. B. |last2=Mitchell |first2=J. L. |last3=Langdon |first3=G. G. |last4=Arps |first4=R. B. |title=An overview of the basic principles of the Q-Coder adaptive binary arithmetic coder |journal=IBM Journal of Research and Development |date=November 1988 |volume=32 |issue=6 |pages=717–726 |doi=10.1147/rd.326.0717 |issn=0018-8646}}&lt;/ref&gt;</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>In 1986, [[IBM]] researchers Kottappuram M. A. Mohiuddin and Jorma Johannen Rissanen filed a [[patent]] for a multiplication-free binary arithmetic coding algorithm.&lt;ref name="t81"&gt;{{cite web |title=T.81 – DIGITAL COMPRESSION AND CODING OF CONTINUOUS-TONE STILL IMAGES – REQUIREMENTS AND GUIDELINES |url=https://www.w3.org/Graphics/JPEG/itu-t81.pdf |publisher=[[CCITT]] |date=September 1992 |accessdate=12 July 2019}}&lt;/ref&gt;&lt;ref&gt;{{US patent|4652856}}&lt;/ref&gt; In 1988, an IBM research team including R.B. Arps, T.K. Truong, D.J. Lu, W. B. Pennebaker, L. Mitchell and G. G. Langdon presented an adaptive binary arithmetic coding (ABAC) algorithm called Q-Coder.&lt;ref&gt;{{cite journal |last1=Arps |first1=R. B. |last2=Truong |first2=T. K. |last3=Lu |first3=D. J. |last4=Pasco |first4=R. C. |last5=Friedman |first5=T. D. |title=A multi-purpose VLSI chip for adaptive data compression of bilevel images |journal=IBM Journal of Research and Development |date=November 1988 |volume=32 |issue=6 |pages=775–795 |doi=10.1147/rd.326.0775 |issn=0018-8646}}&lt;/ref&gt;&lt;ref&gt;{{cite journal |last1=Pennebaker |first1=W. B. |last2=Mitchell |first2=J. L. |last3=Langdon |first3=G. G. |last4=Arps |first4=R. B. |title=An overview of the basic principles of the Q-Coder adaptive binary arithmetic coder |journal=IBM Journal of Research and Development |date=November 1988 |volume=32 |issue=6 |pages=717–726 |doi=10.1147/rd.326.0717 |issn=0018-8646}}&lt;/ref&gt;</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>The above patents and research papers, along several others from IBM and [[Mitsubishi Electric]], were later cited by the [[CCITT]] and [[Joint Photographic Experts Group]] as the basis for the [[JPEG]] [[image compression]] format's adaptive binary arithmetic coding algorithm in 1992.&lt;ref name="t81"/&gt; However, encoders and decoders of the JPEG file format, which has options for both [[Huffman encoding]] and arithmetic coding, typically only support the Huffman encoding option, which was originally because of patent concerns, although JPEG's arithmetic coding patents&lt;ref&gt;{{cite web |url=http://www.itu.int/rec/T-REC-T.81-200401-I!Cor1/dologin.asp?lang=e&amp;id=T-REC-T.81-200401-I!Cor1!PDF-E&amp;type=items |title=Recommendation T.81 (1992) Corrigendum 1 (01/04) |author= |date=9 November 2004 |work=Recommendation T.81 (1992) |publisher=International Telecommunication Union |accessdate=3 February 2011}}&lt;/ref&gt; have since expired due to the age of the JPEG standard.&lt;ref&gt;''JPEG Still Image Data Compression Standard'', W. B. Pennebaker and [[Joan L. Mitchell|J. L. Mitchell]], Kluwer Academic Press, 1992. {{ISBN|0-442-01272-1}}&lt;/ref&gt;The first reported use of adaptive binary arithmetic coding in motion video compression was in a proposal by IBM researchers to the MPEG group in 1989.&lt;ref&gt;''DCT Coding for Motion Video Storage using Adaptive Arithmetic Coding'', C. A. Gonzales. L. Allman, T. McCarthy, P. Wendt and A. N. Akansu, Signal Processing: Image Communication 2, 1990.&lt;/ref&gt;</div></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>The above patents and research papers, along several others from IBM and [[Mitsubishi Electric]], were later cited by the [[CCITT]] and [[Joint Photographic Experts Group]] as the basis for the [[JPEG]] [[image compression]] format's adaptive binary arithmetic coding algorithm in 1992.&lt;ref name="t81"/&gt; However, encoders and decoders of the JPEG file format, which has options for both [[Huffman encoding]] and arithmetic coding, typically only support the Huffman encoding option, which was originally because of patent concerns, although JPEG's arithmetic coding patents&lt;ref&gt;{{cite web |url=http://www.itu.int/rec/T-REC-T.81-200401-I!Cor1/dologin.asp?lang=e&amp;id=T-REC-T.81-200401-I!Cor1!PDF-E&amp;type=items |title=Recommendation T.81 (1992) Corrigendum 1 (01/04) |author= |date=9 November 2004 |work=Recommendation T.81 (1992) |publisher=International Telecommunication Union |accessdate=3 February 2011}}&lt;/ref&gt; have since expired due to the age of the JPEG standard.&lt;ref&gt;''JPEG Still Image Data Compression Standard'', W. B. Pennebaker and [[Joan L. Mitchell|J. L. Mitchell]], Kluwer Academic Press, 1992. {{ISBN|0-442-01272-1}}&lt;/ref&gt;The first reported use of adaptive binary arithmetic coding in motion video compression was in a proposal by IBM researchers to the MPEG group in 1989.&lt;ref&gt;''DCT Coding for Motion Video Storage using Adaptive Arithmetic Coding'', C. A. Gonzales. L. Allman, T. McCarthy, P. Wendt and A. N. Akansu, Signal Processing: Image Communication<ins style="font-weight: bold; text-decoration: none;">,</ins> 2<ins style="font-weight: bold; text-decoration: none;">, 145</ins>, 1990.&lt;/ref&gt;<ins style="font-weight: bold; text-decoration: none;">&lt;ref&gt;''Encoding of motion video sequences for the MPEG environment using arithmetic coding'', E. Viscito and C. Gonzales, SPIE Visual Communications and Image Processing '90, October 2-4, 1990.&lt;/ref&gt;This proposal extended the use of arithmetic coding from intraframe JPEG to interframe video coding.</ins></div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>In 1999, Youngjun Yoo ([[Texas Instruments]]), Young Gap Kwon and Antonio Ortega ([[University of Southern California]]) presented a context-adaptive form of binary arithmetic coding.&lt;ref&gt;{{cite book |last1=Ortega |first1=A. |title=Proceedings 1999 International Conference on Image Processing (Cat. 99CH36348) |chapter=Embedded image-domain compression using context models |date=October 1999 |volume=1 |pages=477–481 vol.1 |doi=10.1109/ICIP.1999.821655|isbn=0-7803-5467-2 |s2cid=27303716 }}&lt;/ref&gt; The modern context-adaptive binary arithmetic coding (CABAC) algorithm was commercially introduced with the [[H.264/MPEG-4 AVC]] format in 2003.&lt;ref&gt;{{cite web |title=Context-Based Adaptive Binary Arithmetic Coding (CABAC) |url=https://www.hhi.fraunhofer.de/en/departments/vca/research-groups/image-video-coding/research-topics/context-based-adaptive-binary-arithmetic-coding-cabac.html |website=Fraunhofer Heinrich Hertz Institute |accessdate=13 July 2019 |language=en}}&lt;/ref&gt; The majority of patents for the AVC format are held by [[Panasonic]], [[Godo kaisha|Godo Kaisha IP Bridge]] and [[LG Electronics]].&lt;ref name="patents"&gt;{{cite web |title=AVC/H.264 {{ndash}} Patent List |url=https://www.mpegla.com/wp-content/uploads/avc-att1.pdf |website=MPEG LA |accessdate=6 July 2019}}&lt;/ref&gt;</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>In 1999, Youngjun Yoo ([[Texas Instruments]]), Young Gap Kwon and Antonio Ortega ([[University of Southern California]]) presented a context-adaptive form of binary arithmetic coding.&lt;ref&gt;{{cite book |last1=Ortega |first1=A. |title=Proceedings 1999 International Conference on Image Processing (Cat. 99CH36348) |chapter=Embedded image-domain compression using context models |date=October 1999 |volume=1 |pages=477–481 vol.1 |doi=10.1109/ICIP.1999.821655|isbn=0-7803-5467-2 |s2cid=27303716 }}&lt;/ref&gt; The modern context-adaptive binary arithmetic coding (CABAC) algorithm was commercially introduced with the [[H.264/MPEG-4 AVC]] format in 2003.&lt;ref&gt;{{cite web |title=Context-Based Adaptive Binary Arithmetic Coding (CABAC) |url=https://www.hhi.fraunhofer.de/en/departments/vca/research-groups/image-video-coding/research-topics/context-based-adaptive-binary-arithmetic-coding-cabac.html |website=Fraunhofer Heinrich Hertz Institute |accessdate=13 July 2019 |language=en}}&lt;/ref&gt; The majority of patents for the AVC format are held by [[Panasonic]], [[Godo kaisha|Godo Kaisha IP Bridge]] and [[LG Electronics]].&lt;ref name="patents"&gt;{{cite web |title=AVC/H.264 {{ndash}} Patent List |url=https://www.mpegla.com/wp-content/uploads/avc-att1.pdf |website=MPEG LA |accessdate=6 July 2019}}&lt;/ref&gt;</div></td> </tr> </table> Butron https://en.wikipedia.org/w/index.php?title=Context-adaptive_binary_arithmetic_coding&diff=1166933409&oldid=prev Butron: Added a reference to the first use of adaptive arithmetic coding in motion video compression 2023-07-24T17:35:15Z <p>Added a reference to the first use of adaptive arithmetic coding in motion video compression</p> <table style="background-color: #fff; color: #202122;" data-mw="interface"> <col class="diff-marker" /> <col class="diff-content" /> <col class="diff-marker" /> <col class="diff-content" /> <tr class="diff-title" lang="en"> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Previous revision</td> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 17:35, 24 July 2023</td> </tr><tr> <td colspan="2" class="diff-lineno">Line 115:</td> <td colspan="2" class="diff-lineno">Line 115:</td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>In 1986, [[IBM]] researchers Kottappuram M. A. Mohiuddin and Jorma Johannen Rissanen filed a [[patent]] for a multiplication-free binary arithmetic coding algorithm.&lt;ref name="t81"&gt;{{cite web |title=T.81 – DIGITAL COMPRESSION AND CODING OF CONTINUOUS-TONE STILL IMAGES – REQUIREMENTS AND GUIDELINES |url=https://www.w3.org/Graphics/JPEG/itu-t81.pdf |publisher=[[CCITT]] |date=September 1992 |accessdate=12 July 2019}}&lt;/ref&gt;&lt;ref&gt;{{US patent|4652856}}&lt;/ref&gt; In 1988, an IBM research team including R.B. Arps, T.K. Truong, D.J. Lu, W. B. Pennebaker, L. Mitchell and G. G. Langdon presented an adaptive binary arithmetic coding (ABAC) algorithm called Q-Coder.&lt;ref&gt;{{cite journal |last1=Arps |first1=R. B. |last2=Truong |first2=T. K. |last3=Lu |first3=D. J. |last4=Pasco |first4=R. C. |last5=Friedman |first5=T. D. |title=A multi-purpose VLSI chip for adaptive data compression of bilevel images |journal=IBM Journal of Research and Development |date=November 1988 |volume=32 |issue=6 |pages=775–795 |doi=10.1147/rd.326.0775 |issn=0018-8646}}&lt;/ref&gt;&lt;ref&gt;{{cite journal |last1=Pennebaker |first1=W. B. |last2=Mitchell |first2=J. L. |last3=Langdon |first3=G. G. |last4=Arps |first4=R. B. |title=An overview of the basic principles of the Q-Coder adaptive binary arithmetic coder |journal=IBM Journal of Research and Development |date=November 1988 |volume=32 |issue=6 |pages=717–726 |doi=10.1147/rd.326.0717 |issn=0018-8646}}&lt;/ref&gt;</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>In 1986, [[IBM]] researchers Kottappuram M. A. Mohiuddin and Jorma Johannen Rissanen filed a [[patent]] for a multiplication-free binary arithmetic coding algorithm.&lt;ref name="t81"&gt;{{cite web |title=T.81 – DIGITAL COMPRESSION AND CODING OF CONTINUOUS-TONE STILL IMAGES – REQUIREMENTS AND GUIDELINES |url=https://www.w3.org/Graphics/JPEG/itu-t81.pdf |publisher=[[CCITT]] |date=September 1992 |accessdate=12 July 2019}}&lt;/ref&gt;&lt;ref&gt;{{US patent|4652856}}&lt;/ref&gt; In 1988, an IBM research team including R.B. Arps, T.K. Truong, D.J. Lu, W. B. Pennebaker, L. Mitchell and G. G. Langdon presented an adaptive binary arithmetic coding (ABAC) algorithm called Q-Coder.&lt;ref&gt;{{cite journal |last1=Arps |first1=R. B. |last2=Truong |first2=T. K. |last3=Lu |first3=D. J. |last4=Pasco |first4=R. C. |last5=Friedman |first5=T. D. |title=A multi-purpose VLSI chip for adaptive data compression of bilevel images |journal=IBM Journal of Research and Development |date=November 1988 |volume=32 |issue=6 |pages=775–795 |doi=10.1147/rd.326.0775 |issn=0018-8646}}&lt;/ref&gt;&lt;ref&gt;{{cite journal |last1=Pennebaker |first1=W. B. |last2=Mitchell |first2=J. L. |last3=Langdon |first3=G. G. |last4=Arps |first4=R. B. |title=An overview of the basic principles of the Q-Coder adaptive binary arithmetic coder |journal=IBM Journal of Research and Development |date=November 1988 |volume=32 |issue=6 |pages=717–726 |doi=10.1147/rd.326.0717 |issn=0018-8646}}&lt;/ref&gt;</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>The above patents and research papers, along several others from IBM and [[Mitsubishi Electric]], were later cited by the [[CCITT]] and [[Joint Photographic Experts Group]] as the basis for the [[JPEG]] [[image compression]] format's adaptive binary arithmetic coding algorithm in 1992.&lt;ref name="t81"/&gt; However, encoders and decoders of the JPEG file format, which has options for both [[Huffman encoding]] and arithmetic coding, typically only support the Huffman encoding option, which was originally because of patent concerns, although JPEG's arithmetic coding patents&lt;ref&gt;{{cite web |url=http://www.itu.int/rec/T-REC-T.81-200401-I!Cor1/dologin.asp?lang=e&amp;id=T-REC-T.81-200401-I!Cor1!PDF-E&amp;type=items |title=Recommendation T.81 (1992) Corrigendum 1 (01/04) |author= |date=9 November 2004 |work=Recommendation T.81 (1992) |publisher=International Telecommunication Union |accessdate=3 February 2011}}&lt;/ref&gt; have since expired due to the age of the JPEG standard.&lt;ref&gt;''JPEG Still Image Data Compression Standard'', W. B. Pennebaker and [[Joan L. Mitchell|J. L. Mitchell]], Kluwer Academic Press, 1992. {{ISBN|0-442-01272-1}}&lt;/ref&gt;</div></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>The above patents and research papers, along several others from IBM and [[Mitsubishi Electric]], were later cited by the [[CCITT]] and [[Joint Photographic Experts Group]] as the basis for the [[JPEG]] [[image compression]] format's adaptive binary arithmetic coding algorithm in 1992.&lt;ref name="t81"/&gt; However, encoders and decoders of the JPEG file format, which has options for both [[Huffman encoding]] and arithmetic coding, typically only support the Huffman encoding option, which was originally because of patent concerns, although JPEG's arithmetic coding patents&lt;ref&gt;{{cite web |url=http://www.itu.int/rec/T-REC-T.81-200401-I!Cor1/dologin.asp?lang=e&amp;id=T-REC-T.81-200401-I!Cor1!PDF-E&amp;type=items |title=Recommendation T.81 (1992) Corrigendum 1 (01/04) |author= |date=9 November 2004 |work=Recommendation T.81 (1992) |publisher=International Telecommunication Union |accessdate=3 February 2011}}&lt;/ref&gt; have since expired due to the age of the JPEG standard.&lt;ref&gt;''JPEG Still Image Data Compression Standard'', W. B. Pennebaker and [[Joan L. Mitchell|J. L. Mitchell]], Kluwer Academic Press, 1992. {{ISBN|0-442-01272-1}}<ins style="font-weight: bold; text-decoration: none;">&lt;/ref&gt;The first reported use of adaptive binary arithmetic coding in motion video compression was in a proposal by IBM researchers to the MPEG group in 1989.&lt;ref&gt;''DCT Coding for Motion Video Storage using Adaptive Arithmetic Coding'', C. A. Gonzales. L. Allman, T. McCarthy, P. Wendt and A. N. Akansu, Signal Processing: Image Communication 2, 1990.</ins>&lt;/ref&gt;</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>In 1999, Youngjun Yoo ([[Texas Instruments]]), Young Gap Kwon and Antonio Ortega ([[University of Southern California]]) presented a context-adaptive form of binary arithmetic coding.&lt;ref&gt;{{cite book |last1=Ortega |first1=A. |title=Proceedings 1999 International Conference on Image Processing (Cat. 99CH36348) |chapter=Embedded image-domain compression using context models |date=October 1999 |volume=1 |pages=477–481 vol.1 |doi=10.1109/ICIP.1999.821655|isbn=0-7803-5467-2 |s2cid=27303716 }}&lt;/ref&gt; The modern context-adaptive binary arithmetic coding (CABAC) algorithm was commercially introduced with the [[H.264/MPEG-4 AVC]] format in 2003.&lt;ref&gt;{{cite web |title=Context-Based Adaptive Binary Arithmetic Coding (CABAC) |url=https://www.hhi.fraunhofer.de/en/departments/vca/research-groups/image-video-coding/research-topics/context-based-adaptive-binary-arithmetic-coding-cabac.html |website=Fraunhofer Heinrich Hertz Institute |accessdate=13 July 2019 |language=en}}&lt;/ref&gt; The majority of patents for the AVC format are held by [[Panasonic]], [[Godo kaisha|Godo Kaisha IP Bridge]] and [[LG Electronics]].&lt;ref name="patents"&gt;{{cite web |title=AVC/H.264 {{ndash}} Patent List |url=https://www.mpegla.com/wp-content/uploads/avc-att1.pdf |website=MPEG LA |accessdate=6 July 2019}}&lt;/ref&gt;</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>In 1999, Youngjun Yoo ([[Texas Instruments]]), Young Gap Kwon and Antonio Ortega ([[University of Southern California]]) presented a context-adaptive form of binary arithmetic coding.&lt;ref&gt;{{cite book |last1=Ortega |first1=A. |title=Proceedings 1999 International Conference on Image Processing (Cat. 99CH36348) |chapter=Embedded image-domain compression using context models |date=October 1999 |volume=1 |pages=477–481 vol.1 |doi=10.1109/ICIP.1999.821655|isbn=0-7803-5467-2 |s2cid=27303716 }}&lt;/ref&gt; The modern context-adaptive binary arithmetic coding (CABAC) algorithm was commercially introduced with the [[H.264/MPEG-4 AVC]] format in 2003.&lt;ref&gt;{{cite web |title=Context-Based Adaptive Binary Arithmetic Coding (CABAC) |url=https://www.hhi.fraunhofer.de/en/departments/vca/research-groups/image-video-coding/research-topics/context-based-adaptive-binary-arithmetic-coding-cabac.html |website=Fraunhofer Heinrich Hertz Institute |accessdate=13 July 2019 |language=en}}&lt;/ref&gt; The majority of patents for the AVC format are held by [[Panasonic]], [[Godo kaisha|Godo Kaisha IP Bridge]] and [[LG Electronics]].&lt;ref name="patents"&gt;{{cite web |title=AVC/H.264 {{ndash}} Patent List |url=https://www.mpegla.com/wp-content/uploads/avc-att1.pdf |website=MPEG LA |accessdate=6 July 2019}}&lt;/ref&gt;</div></td> </tr> </table> Butron https://en.wikipedia.org/w/index.php?title=Context-adaptive_binary_arithmetic_coding&diff=1166908103&oldid=prev Citation bot: Alter: title, template type. Add: chapter. Removed parameters. | Use this bot. Report bugs. | #UCB_CommandLine 33/8263 2023-07-24T14:07:52Z <p>Alter: title, template type. Add: chapter. Removed parameters. | <a href="/wiki/Wikipedia:UCB" class="mw-redirect" title="Wikipedia:UCB">Use this bot</a>. <a href="/wiki/Wikipedia:DBUG" class="mw-redirect" title="Wikipedia:DBUG">Report bugs</a>. | #UCB_CommandLine 33/8263</p> <table style="background-color: #fff; color: #202122;" data-mw="interface"> <col class="diff-marker" /> <col class="diff-content" /> <col class="diff-marker" /> <col class="diff-content" /> <tr class="diff-title" lang="en"> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Previous revision</td> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 14:07, 24 July 2023</td> </tr><tr> <td colspan="2" class="diff-lineno">Line 117:</td> <td colspan="2" class="diff-lineno">Line 117:</td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>The above patents and research papers, along several others from IBM and [[Mitsubishi Electric]], were later cited by the [[CCITT]] and [[Joint Photographic Experts Group]] as the basis for the [[JPEG]] [[image compression]] format's adaptive binary arithmetic coding algorithm in 1992.&lt;ref name="t81"/&gt; However, encoders and decoders of the JPEG file format, which has options for both [[Huffman encoding]] and arithmetic coding, typically only support the Huffman encoding option, which was originally because of patent concerns, although JPEG's arithmetic coding patents&lt;ref&gt;{{cite web |url=http://www.itu.int/rec/T-REC-T.81-200401-I!Cor1/dologin.asp?lang=e&amp;id=T-REC-T.81-200401-I!Cor1!PDF-E&amp;type=items |title=Recommendation T.81 (1992) Corrigendum 1 (01/04) |author= |date=9 November 2004 |work=Recommendation T.81 (1992) |publisher=International Telecommunication Union |accessdate=3 February 2011}}&lt;/ref&gt; have since expired due to the age of the JPEG standard.&lt;ref&gt;''JPEG Still Image Data Compression Standard'', W. B. Pennebaker and [[Joan L. Mitchell|J. L. Mitchell]], Kluwer Academic Press, 1992. {{ISBN|0-442-01272-1}}&lt;/ref&gt;</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>The above patents and research papers, along several others from IBM and [[Mitsubishi Electric]], were later cited by the [[CCITT]] and [[Joint Photographic Experts Group]] as the basis for the [[JPEG]] [[image compression]] format's adaptive binary arithmetic coding algorithm in 1992.&lt;ref name="t81"/&gt; However, encoders and decoders of the JPEG file format, which has options for both [[Huffman encoding]] and arithmetic coding, typically only support the Huffman encoding option, which was originally because of patent concerns, although JPEG's arithmetic coding patents&lt;ref&gt;{{cite web |url=http://www.itu.int/rec/T-REC-T.81-200401-I!Cor1/dologin.asp?lang=e&amp;id=T-REC-T.81-200401-I!Cor1!PDF-E&amp;type=items |title=Recommendation T.81 (1992) Corrigendum 1 (01/04) |author= |date=9 November 2004 |work=Recommendation T.81 (1992) |publisher=International Telecommunication Union |accessdate=3 February 2011}}&lt;/ref&gt; have since expired due to the age of the JPEG standard.&lt;ref&gt;''JPEG Still Image Data Compression Standard'', W. B. Pennebaker and [[Joan L. Mitchell|J. L. Mitchell]], Kluwer Academic Press, 1992. {{ISBN|0-442-01272-1}}&lt;/ref&gt;</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>In 1999, Youngjun Yoo ([[Texas Instruments]]), Young Gap Kwon and Antonio Ortega ([[University of Southern California]]) presented a context-adaptive form of binary arithmetic coding.&lt;ref&gt;{{cite <del style="font-weight: bold; text-decoration: none;">journal</del> |last1=Ortega |first1=A. |title<del style="font-weight: bold; text-decoration: none;">=Embedded image-domain compression using context models |journal</del>=Proceedings 1999 International Conference on Image Processing (Cat. 99CH36348) |date=October 1999 |volume=1 |pages=477–481 vol.1 |doi=10.1109/ICIP.1999.821655|isbn=0-7803-5467-2 |s2cid=27303716 }}&lt;/ref&gt; The modern context-adaptive binary arithmetic coding (CABAC) algorithm was commercially introduced with the [[H.264/MPEG-4 AVC]] format in 2003.&lt;ref&gt;{{cite web |title=Context-Based Adaptive Binary Arithmetic Coding (CABAC) |url=https://www.hhi.fraunhofer.de/en/departments/vca/research-groups/image-video-coding/research-topics/context-based-adaptive-binary-arithmetic-coding-cabac.html |website=Fraunhofer Heinrich Hertz Institute |accessdate=13 July 2019 |language=en}}&lt;/ref&gt; The majority of patents for the AVC format are held by [[Panasonic]], [[Godo kaisha|Godo Kaisha IP Bridge]] and [[LG Electronics]].&lt;ref name="patents"&gt;{{cite web |title=AVC/H.264 {{ndash}} Patent List |url=https://www.mpegla.com/wp-content/uploads/avc-att1.pdf |website=MPEG LA |accessdate=6 July 2019}}&lt;/ref&gt;</div></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>In 1999, Youngjun Yoo ([[Texas Instruments]]), Young Gap Kwon and Antonio Ortega ([[University of Southern California]]) presented a context-adaptive form of binary arithmetic coding.&lt;ref&gt;{{cite <ins style="font-weight: bold; text-decoration: none;">book</ins> |last1=Ortega |first1=A. |title=Proceedings 1999 International Conference on Image Processing (Cat. 99CH36348)<ins style="font-weight: bold; text-decoration: none;"> |chapter=Embedded image-domain compression using context models</ins> |date=October 1999 |volume=1 |pages=477–481 vol.1 |doi=10.1109/ICIP.1999.821655|isbn=0-7803-5467-2 |s2cid=27303716 }}&lt;/ref&gt; The modern context-adaptive binary arithmetic coding (CABAC) algorithm was commercially introduced with the [[H.264/MPEG-4 AVC]] format in 2003.&lt;ref&gt;{{cite web |title=Context-Based Adaptive Binary Arithmetic Coding (CABAC) |url=https://www.hhi.fraunhofer.de/en/departments/vca/research-groups/image-video-coding/research-topics/context-based-adaptive-binary-arithmetic-coding-cabac.html |website=Fraunhofer Heinrich Hertz Institute |accessdate=13 July 2019 |language=en}}&lt;/ref&gt; The majority of patents for the AVC format are held by [[Panasonic]], [[Godo kaisha|Godo Kaisha IP Bridge]] and [[LG Electronics]].&lt;ref name="patents"&gt;{{cite web |title=AVC/H.264 {{ndash}} Patent List |url=https://www.mpegla.com/wp-content/uploads/avc-att1.pdf |website=MPEG LA |accessdate=6 July 2019}}&lt;/ref&gt;</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>==See also==</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>==See also==</div></td> </tr> </table> Citation bot