--- a/ttml-ww-profiles/ttml-ww-profiles.html Fri Oct 30 13:49:59 2015 +0900
+++ b/ttml-ww-profiles/ttml-ww-profiles.html Sat Oct 31 12:02:25 2015 -0700
@@ -281,7 +281,7 @@
</p>
<h1 class="title p-name" id="title" property="dcterms:title">TTML Profiles for Internet Media Subtitles and Captions 1.0 (IMSC1)</h1>
- <h2 id="w3c-editor-s-draft-30-october-2015"><abbr title="World Wide Web Consortium">W3C</abbr> Editor's Draft <time property="dcterms:issued" class="dt-published" datetime="2015-10-30">30 October 2015</time></h2>
+ <h2 id="w3c-editor-s-draft-31-october-2015"><abbr title="World Wide Web Consortium">W3C</abbr> Editor's Draft <time property="dcterms:issued" class="dt-published" datetime="2015-10-31">31 October 2015</time></h2>
<dl>
<dt>This version:</dt>
@@ -444,7 +444,7 @@
-</section><section id="toc"><h2 class="introductory" id="h-toc" resource="#h-toc"><span property="xhv:role" resource="xhv:heading">Table of Contents</span></h2><ul class="toc" role="directory" id="respecContents"><li class="tocline"><a href="#scope" class="tocxref"><span class="secno">1. </span>Scope</a></li><li class="tocline"><a href="#conventions" class="tocxref"><span class="secno">2. </span>Documentation Conventions</a></li><li class="tocline"><a href="#terms" class="tocxref"><span class="secno">3. </span>Terms and Definitions</a></li><li class="tocline"><a href="#conformance" class="tocxref"><span class="secno">4. </span>Conformance</a></li><li class="tocline"><a href="#profiles" class="tocxref"><span class="secno">5. </span>Profiles</a><ul class="toc"><li class="tocline"><a href="#general" class="tocxref"><span class="secno">5.1 </span>General</a></li><li class="tocline"><a href="#text-profile" class="tocxref"><span class="secno">5.2 </span>Text Profile</a></li><li class="tocline"><a href="#image-profile" class="tocxref"><span class="secno">5.3 </span>Image Profile</a></li></ul></li><li class="tocline"><a href="#common-constraints" class="tocxref"><span class="secno">6. </span>Common Constraints</a><ul class="toc"><li class="tocline"><a href="#document-encoding" class="tocxref"><span class="secno">6.1 </span>Document Encoding</a></li><li class="tocline"><a href="#foreign-element-and-attributes" class="tocxref"><span class="secno">6.2 </span>Foreign Element and Attributes</a></li><li class="tocline"><a href="#namespaces" class="tocxref"><span class="secno">6.3 </span>Namespaces</a></li><li class="tocline"><a href="#overflow" class="tocxref"><span class="secno">6.4 </span>Overflow</a></li><li class="tocline"><a href="#related-video-object" class="tocxref"><span class="secno">6.5 </span>Related Video Object</a></li><li class="tocline"><a href="#synchronization" class="tocxref"><span class="secno">6.6 </span>Synchronization</a></li><li class="tocline"><a href="#extensions" class="tocxref"><span class="secno">6.7 </span>Extensions</a><ul class="toc"><li class="tocline"><a href="#ttp-aspectRatio" class="tocxref"><span class="secno">6.7.1 </span>ittp:aspectRatio</a></li><li class="tocline"><a href="#ttp-progressivelyDecodable" class="tocxref"><span class="secno">6.7.2 </span>ittp:progressivelyDecodable</a></li><li class="tocline"><a href="#tts-forcedDisplay" class="tocxref"><span class="secno">6.7.3 </span>itts:forcedDisplay</a></li><li class="tocline"><a href="#ttm-altText" class="tocxref"><span class="secno">6.7.4 </span>ittm:altText</a></li></ul></li><li class="tocline"><a href="#region" class="tocxref"><span class="secno">6.8 </span>Region</a><ul class="toc"><li class="tocline"><a href="#presented-region" class="tocxref"><span class="secno">6.8.1 </span>Presented Region</a></li><li class="tocline"><a href="#dimensions-and-position" class="tocxref"><span class="secno">6.8.2 </span>Dimensions and Position</a></li><li class="tocline"><a href="#maximum-number" class="tocxref"><span class="secno">6.8.3 </span>Maximum number</a></li></ul></li><li class="tocline"><a href="#hypothetical-render-model-1" class="tocxref"><span class="secno">6.9 </span>Hypothetical Render Model</a></li><li class="tocline"><a href="#common-features" class="tocxref"><span class="secno">6.10 </span>Features</a></li></ul></li><li class="tocline"><a href="#text-profile-constraints" class="tocxref"><span class="secno">7. </span>Text Profile Constraints</a><ul class="toc"><li class="tocline"><a href="#text-profile-designator" class="tocxref"><span class="secno">7.1 </span>Profile Designator</a></li><li class="tocline"><a href="#recommended-character-sets" class="tocxref"><span class="secno">7.2 </span>Recommended Character Sets</a></li><li class="tocline"><a href="#reference-fonts-1" class="tocxref"><span class="secno">7.3 </span>Reference Fonts</a></li><li class="tocline"><a href="#features" class="tocxref"><span class="secno">7.4 </span>Features</a></li></ul></li><li class="tocline"><a href="#image-profile-constraints" class="tocxref"><span class="secno">8. </span>Image Profile Constraints</a><ul class="toc"><li class="tocline"><a href="#image-profile-designator" class="tocxref"><span class="secno">8.1 </span>Profile Designator</a></li><li class="tocline"><a href="#presented-image" class="tocxref"><span class="secno">8.2 </span>Presented Image</a><ul class="toc"><li class="tocline"><a href="#definition" class="tocxref"><span class="secno">8.2.1 </span>Definition</a></li><li class="tocline"><a href="#number-per-region" class="tocxref"><span class="secno">8.2.2 </span>Number per Region</a></li></ul></li><li class="tocline"><a href="#div-element" class="tocxref"><span class="secno">8.3 </span><code>div</code> element</a></li><li class="tocline"><a href="#features-1" class="tocxref"><span class="secno">8.4 </span>Features</a></li></ul></li><li class="tocline"><a href="#hypothetical-render-model" class="tocxref"><span class="secno">9. </span>Hypothetical Render Model</a><ul class="toc"><li class="tocline"><a href="#overview" class="tocxref"><span class="secno">9.1 </span>Overview</a></li><li class="tocline"><a href="#hypothetical-render-model-general" class="tocxref"><span class="secno">9.2 </span>General</a></li><li class="tocline"><a href="#paint-regions" class="tocxref"><span class="secno">9.3 </span>Paint Regions</a></li><li class="tocline"><a href="#paint-images" class="tocxref"><span class="secno">9.4 </span>Paint Images</a></li><li class="tocline"><a href="#paint-text" class="tocxref"><span class="secno">9.5 </span>Paint Text</a></li></ul></li><li class="tocline"><a href="#reference-fonts" class="tocxref"><span class="secno">A. </span>Reference Fonts</a></li><li class="tocline"><a href="#recommended-unicode-code-points-per-language" class="tocxref"><span class="secno">B. </span>Recommended Character Sets</a></li><li class="tocline"><a href="#forced-content" class="tocxref"><span class="secno">C. </span>Forced content (non-normative)</a></li><li class="tocline"><a href="#wcag-applications" class="tocxref"><span class="secno">D. </span>WCAG Considerations</a></li><li class="tocline"><a href="#sample-instance" class="tocxref"><span class="secno">E. </span>Sample Document Instance (non-normative)</a></li><li class="tocline"><a href="#features-and-extensions" class="tocxref"><span class="secno">F. </span>Extensions</a><ul class="toc"><li class="tocline"><a href="#general-1" class="tocxref"><span class="secno">F.1 </span>General</a></li><li class="tocline"><a href="#progressivelydecodable" class="tocxref"><span class="secno">F.2 </span>#progressivelyDecodable</a></li><li class="tocline"><a href="#aspectratio" class="tocxref"><span class="secno">F.3 </span>#aspectRatio</a></li><li class="tocline"><a href="#forceddisplay" class="tocxref"><span class="secno">F.4 </span>#forcedDisplay</a></li><li class="tocline"><a href="#alttext" class="tocxref"><span class="secno">F.5 </span>#altText</a></li><li class="tocline"><a href="#linepadding" class="tocxref"><span class="secno">F.6 </span>#linePadding</a></li><li class="tocline"><a href="#multirowalign" class="tocxref"><span class="secno">F.7 </span>#multiRowAlign</a></li></ul></li><li class="tocline"><a href="#xml-schemas" class="tocxref"><span class="secno">G. </span>XML Schema Definitions (non-normative)</a></li><li class="tocline"><a href="#references" class="tocxref"><span class="secno">H. </span>References</a><ul class="toc"><li class="tocline"><a href="#normative-references" class="tocxref"><span class="secno">H.1 </span>Normative references</a></li><li class="tocline"><a href="#informative-references" class="tocxref"><span class="secno">H.2 </span>Informative references</a></li></ul></li></ul></section>
+</section><section id="toc"><h2 class="introductory" id="h-toc" resource="#h-toc"><span property="xhv:role" resource="xhv:heading">Table of Contents</span></h2><ul class="toc" role="directory" id="respecContents"><li class="tocline"><a href="#scope" class="tocxref"><span class="secno">1. </span>Scope</a></li><li class="tocline"><a href="#conventions" class="tocxref"><span class="secno">2. </span>Documentation Conventions</a></li><li class="tocline"><a href="#terms" class="tocxref"><span class="secno">3. </span>Terms and Definitions</a></li><li class="tocline"><a href="#conformance" class="tocxref"><span class="secno">4. </span>Conformance</a></li><li class="tocline"><a href="#profiles" class="tocxref"><span class="secno">5. </span>Profiles</a><ul class="toc"><li class="tocline"><a href="#general" class="tocxref"><span class="secno">5.1 </span>General</a></li><li class="tocline"><a href="#text-profile" class="tocxref"><span class="secno">5.2 </span>Text Profile</a></li><li class="tocline"><a href="#image-profile" class="tocxref"><span class="secno">5.3 </span>Image Profile</a></li></ul></li><li class="tocline"><a href="#common-constraints" class="tocxref"><span class="secno">6. </span>Common Constraints</a><ul class="toc"><li class="tocline"><a href="#document-encoding" class="tocxref"><span class="secno">6.1 </span>Document Encoding</a></li><li class="tocline"><a href="#foreign-element-and-attributes" class="tocxref"><span class="secno">6.2 </span>Foreign Element and Attributes</a></li><li class="tocline"><a href="#namespaces" class="tocxref"><span class="secno">6.3 </span>Namespaces</a></li><li class="tocline"><a href="#overflow" class="tocxref"><span class="secno">6.4 </span>Overflow</a></li><li class="tocline"><a href="#related-video-object" class="tocxref"><span class="secno">6.5 </span>Related Video Object</a></li><li class="tocline"><a href="#synchronization" class="tocxref"><span class="secno">6.6 </span>Synchronization</a></li><li class="tocline"><a href="#extensions" class="tocxref"><span class="secno">6.7 </span>Extensions</a><ul class="toc"><li class="tocline"><a href="#ttp-aspectRatio" class="tocxref"><span class="secno">6.7.1 </span>ittp:aspectRatio</a></li><li class="tocline"><a href="#ttp-progressivelyDecodable" class="tocxref"><span class="secno">6.7.2 </span>ittp:progressivelyDecodable</a></li><li class="tocline"><a href="#tts-forcedDisplay" class="tocxref"><span class="secno">6.7.3 </span>itts:forcedDisplay</a></li><li class="tocline"><a href="#ttm-altText" class="tocxref"><span class="secno">6.7.4 </span>ittm:altText</a></li></ul></li><li class="tocline"><a href="#region" class="tocxref"><span class="secno">6.8 </span>Region</a><ul class="toc"><li class="tocline"><a href="#presented-region" class="tocxref"><span class="secno">6.8.1 </span>Presented Region</a></li><li class="tocline"><a href="#dimensions-and-position" class="tocxref"><span class="secno">6.8.2 </span>Dimensions and Position</a></li><li class="tocline"><a href="#maximum-number" class="tocxref"><span class="secno">6.8.3 </span>Maximum number</a></li></ul></li><li class="tocline"><a href="#hypothetical-render-model-1" class="tocxref"><span class="secno">6.9 </span>Hypothetical Render Model</a></li><li class="tocline"><a href="#common-features" class="tocxref"><span class="secno">6.10 </span>Features</a></li></ul></li><li class="tocline"><a href="#text-profile-constraints" class="tocxref"><span class="secno">7. </span>Text Profile Constraints</a><ul class="toc"><li class="tocline"><a href="#text-profile-designator" class="tocxref"><span class="secno">7.1 </span>Profile Designator</a></li><li class="tocline"><a href="#recommended-character-sets" class="tocxref"><span class="secno">7.2 </span>Recommended Character Sets</a></li><li class="tocline"><a href="#reference-fonts-1" class="tocxref"><span class="secno">7.3 </span>Reference Fonts</a></li><li class="tocline"><a href="#features" class="tocxref"><span class="secno">7.4 </span>Features</a></li></ul></li><li class="tocline"><a href="#image-profile-constraints" class="tocxref"><span class="secno">8. </span>Image Profile Constraints</a><ul class="toc"><li class="tocline"><a href="#image-profile-designator" class="tocxref"><span class="secno">8.1 </span>Profile Designator</a></li><li class="tocline"><a href="#presented-image" class="tocxref"><span class="secno">8.2 </span>Presented Image</a><ul class="toc"><li class="tocline"><a href="#definition" class="tocxref"><span class="secno">8.2.1 </span>Definition</a></li><li class="tocline"><a href="#number-per-region" class="tocxref"><span class="secno">8.2.2 </span>Number per Region</a></li></ul></li><li class="tocline"><a href="#div-element" class="tocxref"><span class="secno">8.3 </span><code>div</code> element</a></li><li class="tocline"><a href="#features-1" class="tocxref"><span class="secno">8.4 </span>Features</a></li></ul></li><li class="tocline"><a href="#hypothetical-render-model" class="tocxref"><span class="secno">9. </span>Hypothetical Render Model</a><ul class="toc"><li class="tocline"><a href="#overview-non-normative" class="tocxref"><span class="secno">9.1 </span>Overview (non-normative)</a></li><li class="tocline"><a href="#hypothetical-render-model-general" class="tocxref"><span class="secno">9.2 </span>General</a></li><li class="tocline"><a href="#paint-regions" class="tocxref"><span class="secno">9.3 </span>Paint Regions</a></li><li class="tocline"><a href="#paint-images" class="tocxref"><span class="secno">9.4 </span>Paint Images</a></li><li class="tocline"><a href="#paint-text" class="tocxref"><span class="secno">9.5 </span>Paint Text</a></li></ul></li><li class="tocline"><a href="#reference-fonts" class="tocxref"><span class="secno">A. </span>Reference Fonts</a></li><li class="tocline"><a href="#recommended-unicode-code-points-per-language" class="tocxref"><span class="secno">B. </span>Recommended Character Sets</a></li><li class="tocline"><a href="#forced-content" class="tocxref"><span class="secno">C. </span>Forced content (non-normative)</a></li><li class="tocline"><a href="#wcag-applications" class="tocxref"><span class="secno">D. </span>WCAG Considerations</a></li><li class="tocline"><a href="#sample-instance" class="tocxref"><span class="secno">E. </span>Sample Document Instance (non-normative)</a></li><li class="tocline"><a href="#features-and-extensions" class="tocxref"><span class="secno">F. </span>Extensions</a><ul class="toc"><li class="tocline"><a href="#general-1" class="tocxref"><span class="secno">F.1 </span>General</a></li><li class="tocline"><a href="#progressivelydecodable" class="tocxref"><span class="secno">F.2 </span>#progressivelyDecodable</a></li><li class="tocline"><a href="#aspectratio" class="tocxref"><span class="secno">F.3 </span>#aspectRatio</a></li><li class="tocline"><a href="#forceddisplay" class="tocxref"><span class="secno">F.4 </span>#forcedDisplay</a></li><li class="tocline"><a href="#alttext" class="tocxref"><span class="secno">F.5 </span>#altText</a></li><li class="tocline"><a href="#linepadding" class="tocxref"><span class="secno">F.6 </span>#linePadding</a></li><li class="tocline"><a href="#multirowalign" class="tocxref"><span class="secno">F.7 </span>#multiRowAlign</a></li></ul></li><li class="tocline"><a href="#xml-schemas" class="tocxref"><span class="secno">G. </span>XML Schema Definitions (non-normative)</a></li><li class="tocline"><a href="#simple-scripts" class="tocxref"><span class="secno">H. </span>Simple Scripts</a></li><li class="tocline"><a href="#references" class="tocxref"><span class="secno">I. </span>References</a><ul class="toc"><li class="tocline"><a href="#normative-references" class="tocxref"><span class="secno">I.1 </span>Normative references</a></li><li class="tocline"><a href="#informative-references" class="tocxref"><span class="secno">I.2 </span>Informative references</a></li></ul></li></ul></section>
@@ -2425,9 +2425,9 @@
<section id="hypothetical-render-model" typeof="bibo:Chapter" resource="#hypothetical-render-model" property="bibo:hasPart">
<!--OddPage--><h2 id="h-hypothetical-render-model" resource="#h-hypothetical-render-model"><span property="xhv:role" resource="xhv:heading"><span class="secno">9. </span>Hypothetical Render Model</span></h2>
- <section id="overview" typeof="bibo:Chapter" resource="#overview" property="bibo:hasPart">
-
- <h3 id="h-overview" resource="#h-overview"><span property="xhv:role" resource="xhv:heading"><span class="secno">9.1 </span>Overview</span></h3>
+ <section id="overview-non-normative" typeof="bibo:Chapter" resource="#overview-non-normative" property="bibo:hasPart">
+
+ <h3 id="h-overview-non-normative" resource="#h-overview-non-normative"><span property="xhv:role" resource="xhv:heading"><span class="secno">9.1 </span>Overview (non-normative)</span></h3>
<p>This Section specifies the Hypothetical Render Model illustrated in <a href="#fig-hypothetical-render-model" class="fig-ref">Fig. <span class="figno">1</span> <span class="fig-title">
Hypothetical Render Model
@@ -2630,7 +2630,7 @@
D<sub>n</sub> to the Presentation Buffer P<sub>n</sub> using the Image Copier; or</li>
<li>if an identical image is present in Decoded Image Buffer D<sub>n-1</sub>, i.e. an identical image was present in <a href="#dfn-intermediate-synchronic-document" class="internalDFN" data-link-type="dfn">
- intermediate synchronic document</a> E<sub>n-1</sub>, copy using the Image Copier the glyph from Decoded Image Buffer
+ intermediate synchronic document</a> E<sub>n-1</sub>, copy using the Image Copier the image from Decoded Image Buffer
D<sub>n-1</sub> to both the Decoded Image Buffer D<sub>n</sub> and the Presentation Buffer P<sub>n</sub>; or
</li>
@@ -2711,25 +2711,11 @@
<section id="paint-text" typeof="bibo:Chapter" resource="#paint-text" property="bibo:hasPart">
<h3 id="h-paint-text" resource="#h-paint-text"><span property="xhv:role" resource="xhv:heading"><span class="secno">9.5 </span>Paint Text</span></h3>
-
- <p>For each glyph displayed in <a href="#dfn-intermediate-synchronic-document" class="internalDFN" data-link-type="dfn">intermediate synchronic document</a> E<sub>n</sub>, the Presentation Compositor
- <em class="rfc2119" title="SHALL">SHALL</em>:</p>
-
- <ul>
- <li>if an identical glyph is present in Glyph Buffer G<sub>n</sub>, copy the glyph from Glyph Buffer G<sub>n</sub> to the
- Presentation Buffer P<sub>n</sub> using the Glyph Copier; or</li>
-
- <li>if an identical glyph is present in Glyph Buffer G<sub>n-1</sub>, i.e. an identical glyph was present in intermediate
- synchronic document E<sub>n-1</sub>, copy using the Glyph Copier the glyph from Glyph Buffer G<sub>n-1</sub> to both the
- Glyph Buffer G<sub>n</sub> and the Presentation Buffer P<sub>n</sub>; or</li>
-
- <li>otherwise render using the Glyph Renderer the glyph into the Presentation Buffer P<sub>n</sub> and Glyph Buffer
- G<sub>n</sub> using the corresponding style information.</li>
- </ul>
-
- <p>Two glyphs are identical if and only if the following [<cite><a class="bibref" href="#bib-TTML1">TTML1</a></cite>] styles are identical:</p>
-
- <ul>
+
+ <p>In the context of this section, a <dfn data-dfn-type="dfn" id="dfn-glyph">glyph</dfn> is a tuple consisting of (i) one character and (ii) the computed values of the following
+ style properties:
+
+ </p><ul>
<li><code>tts:color</code></li>
<li><code>tts:fontFamily</code></li>
@@ -2744,6 +2730,27 @@
<li><code>tts:textOutline</code></li>
</ul>
+
+ <p></p>
+
+ <div class="note"><div class="note-title" aria-level="4" role="heading" id="h-note23"><span>Note</span></div><p class="">In complex scripts, the mapping from character to typographical glyph is not one-to-one. For instance, a given arabic character can
+ yield multiple glyphs depending on its position in a word. The Hypothetical Render Model however assumes a one-to-one mapping
+ and accounts for complex scripts by reducing the performance of the glyph buffer.</p></div>
+
+ <p>For each <a href="#dfn-glyph" class="internalDFN" data-link-type="dfn">glyph</a> associated with a character in a <a href="#dfn-presented-region" class="internalDFN" data-link-type="dfn">presented region</a> of <a href="#dfn-intermediate-synchronic-document" class="internalDFN" data-link-type="dfn">intermediate synchronic document</a> E<sub>n</sub>,
+ the Presentation Compositor <em class="rfc2119" title="SHALL">SHALL</em>:</p>
+
+ <ul>
+ <li>if an identical <a href="#dfn-glyph" class="internalDFN" data-link-type="dfn">glyph</a> is present in Glyph Buffer G<sub>n</sub>, copy the <a href="#dfn-glyph" class="internalDFN" data-link-type="dfn">glyph</a> from Glyph Buffer G<sub>n</sub> to the
+ Presentation Buffer P<sub>n</sub> using the Glyph Copier; or</li>
+
+ <li>if an identical <a href="#dfn-glyph" class="internalDFN" data-link-type="dfn">glyph</a> is present in Glyph Buffer G<sub>n-1</sub>, i.e. an identical <a href="#dfn-glyph" class="internalDFN" data-link-type="dfn">glyph</a> was present in <a href="#dfn-intermediate-synchronic-document" class="internalDFN" data-link-type="dfn">intermediate
+ synchronic document</a> E<sub>n-1</sub>, copy using the Glyph Copier the <a href="#dfn-glyph" class="internalDFN" data-link-type="dfn">glyph</a> from Glyph Buffer G<sub>n-1</sub> to both the
+ Glyph Buffer G<sub>n</sub> and the Presentation Buffer P<sub>n</sub>; or</li>
+
+ <li>otherwise render using the Glyph Renderer the <a href="#dfn-glyph" class="internalDFN" data-link-type="dfn">glyph</a> into the Presentation Buffer P<sub>n</sub> and Glyph Buffer
+ G<sub>n</sub>.</li>
+ </ul>
<figure id="fig-example-of-presentation-compositor-behavior-for-text-rendering">
<img src="text-render-example-figure-2.png" alt="Example of Presentation Compositor Behavior for Text Rendering" height="150" width="324">
@@ -2753,107 +2760,110 @@
</span></figcaption>
</figure>
- <p>The duration DUR<sub>T</sub>(E<sub>n</sub>) for painting the text of an <a href="#dfn-intermediate-synchronic-document" class="internalDFN" data-link-type="dfn">intermediate synchronic document</a>
+ <p>The duration DUR<sub>T</sub>(E<sub>n</sub>) for rendering the text of an <a href="#dfn-intermediate-synchronic-document" class="internalDFN" data-link-type="dfn">intermediate synchronic document</a>
E<sub>n</sub> in the Presentation Buffer is as follows:</p>
- <p class="equation">DUR<sub>T</sub>(E<sub>n</sub>) = ∑<sub>G<sub>i</sub> ∈ G<sub>r</sub></sub> NRGA(G<sub>i</sub>) / Ren(G<sub>i</sub>)
- + ∑<sub>G<sub>j</sub> ∈ G<sub>c</sub></sub> NRGA(G<sub>j</sub>) / GCpy</p>
+ <p class="equation">DUR<sub>T</sub>(E<sub>n</sub>) = ∑<sub>g<sub>i</sub> ∈ Γ<sub>r</sub></sub> NRGA(g<sub>i</sub>) / Ren(g<sub>i</sub>)
+ + ∑<sub>g<sub>j</sub> ∈ Γ<sub>c</sub></sub> NRGA(g<sub>j</sub>) / GCpy</p>
<p>where</p>
<ul>
- <li>G<sub>r</sub> is the set of glyphs rendered into the Presentation Buffer P<sub>n</sub> using the Glyph Renderer in
+ <li>Γ<sub>r</sub> is the set of <a data-lt="glyph" href="#dfn-glyph" class="internalDFN" data-link-type="dfn">glyphs</a> rendered into the Presentation Buffer P<sub>n</sub> using the Glyph Renderer in
<a href="#dfn-intermediate-synchronic-document" class="internalDFN" data-link-type="dfn">intermediate synchronic document</a> E<sub>n</sub>;
</li>
- <li>G<sub>c</sub> is the set of glyphs copied to the Presentation Buffer P<sub>n</sub> using the Glyph Copier in
+ <li>Γ<sub>c</sub> is the set of <a data-lt="glyph" href="#dfn-glyph" class="internalDFN" data-link-type="dfn">glyphs</a> copied to the Presentation Buffer P<sub>n</sub> using the Glyph Copier in
<a href="#dfn-intermediate-synchronic-document" class="internalDFN" data-link-type="dfn">intermediate synchronic document</a> E<sub>n</sub>;
</li>
- <li>Ren(G<sub>i</sub>) is the text rendering performance factor glyph G<sub>i</sub>; and</li>
+ <li>Ren(g<sub>i</sub>) is the text rendering performance factor for <a href="#dfn-glyph" class="internalDFN" data-link-type="dfn">glyph</a> g<sub>i</sub>; and</li>
<li>GCpy is the normalized glyph copy performance factor.</li>
</ul>
- <p>G<sub>r</sub> and G<sub>c</sub> <em class="rfc2119" title="SHALL">SHALL</em> include only glyphs in <a data-lt="presented region" href="#dfn-presented-region" class="internalDFN" data-link-type="dfn">presented regions</a> and <em class="rfc2119" title="SHALL NOT">SHALL NOT</em> include a [<cite><a class="bibref" href="#bib-UNICODE">UNICODE</a></cite>] Code Point if it does not result in a change to presentation, e.g. the Code Point is
- ignored.</p>
-
- <p>The Normalized Rendered Glyph Area NRGA(G<sub>i</sub>) of a glyph G<sub>i</sub> <em class="rfc2119" title="SHALL">SHALL</em> be equal to:</p>
-
- <p class="equation">NRGA(G<sub>i</sub>)= (fontSize of G<sub>i</sub> as percentage of root container height)<sup>2</sup></p>
+ <p>The Normalized Rendered Glyph Area NRGA(g<sub>i</sub>) of a <a href="#dfn-glyph" class="internalDFN" data-link-type="dfn">glyph</a> g<sub>i</sub> <em class="rfc2119" title="SHALL">SHALL</em> be equal to:</p>
+
+ <p class="equation">NRGA(g<sub>i</sub>) = (fontSize of g<sub>i</sub> as percentage of root container height)<sup>2</sup></p>
<p>The contents of the Glyph Buffer G<sub>n</sub> <em class="rfc2119" title="SHALL">SHALL</em> be copied instantaneously to Glyph Buffer G<sub>n-1</sub> at the
presentation time of <a href="#dfn-intermediate-synchronic-document" class="internalDFN" data-link-type="dfn">intermediate synchronic document</a> E<sub>n</sub>.</p>
- <p>The total size occupied by the glyphs stored in Glyph Buffers G<sub>n</sub> or G<sub>n-1</sub> <em class="rfc2119" title="SHALL">SHALL</em> be the sum of their
- Normalized Rendered Glyph Area.</p>
-
- <p>The size of Glyph Buffers G<sub>n</sub> and G<sub>n-1</sub> <em class="rfc2119" title="SHALL">SHALL</em> be the Normalized Glyph Buffer Size (NGBS).</p>
-
- <p>Unless specified otherwise, the following table <em class="rfc2119" title="SHALL">SHALL</em> specify GCpy, Ren and NGBS, and <em class="rfc2119" title="SHALL">SHALL</em> apply to all supported font
- styles (including provision of outline border).</p>
+ <p>It <em class="rfc2119" title="SHALL">SHALL</em> be an error for the sum of NRGA(g<sub>i</sub>) over all <a data-lt="glyph" href="#dfn-glyph" class="internalDFN" data-link-type="dfn">glyphs</a> Glyph Buffer G<sub>n</sub> to be larger
+ than the Normalized Glyph Buffer Size (NGBS).</p>
+
+ <p>Unless specified otherwise, the following table specifies values of GCpy, Ren and NGBS.</p>
<table class="simple">
<thead>
<tr>
- <th>Parameter</th>
-
- <th>Initial value</th>
+ <th style="text-align: center;">Parameter</th>
+
+ <th style="text-align: center;">Condition</th>
+
+ <th style="text-align: center;">Initial value</th>
</tr>
</thead>
<tbody>
<tr>
- <td>Normalized glyph copy performance factor (GCpy)</td>
+ <td rowspan="2">Normalized glyph copy performance factor (GCpy)</td>
+
+ <td>The character of g<sub>i</sub> belongs to a simple script as specified in <a href="#simple-scripts" class="sec-ref"><span class="secno">H.</span> <span class="sec-title">Simple Scripts</span></a></td>
<td>12</td>
</tr>
+
+ <tr>
+
+ <td>otherwise</td>
+
+ <td>3</td>
+ </tr>
<tr>
- <td>Text rendering performance factor Ren(G<sub>i</sub> if G<sub>i</sub> is not a CJK Unified Ideograph as specified
- in [<cite><a class="bibref" href="#bib-UNICODE">UNICODE</a></cite>].</td>
-
- <td>1.2</td>
- </tr>
-
- <tr>
- <td>Text rendering performance factor Ren(G<sub>i</sub>) if G<sub>i</sub> is a CJK Unified Ideograph as specified in
- [<cite><a class="bibref" href="#bib-UNICODE">UNICODE</a></cite>].</td>
+ <td rowspan="2">Text rendering performance factor Ren(G<sub>i</sub>)</td>
+ <td>The character of g<sub>i</sub> belongs to the CJK Unified Ideograph block as specified in [<cite><a class="bibref" href="#bib-UNICODE">UNICODE</a></cite>]</td>
<td>0.6</td>
</tr>
<tr>
- <td>Normalized Glyph Buffer Size (NGBS)</td>
+ <td>otherwise</td>
+
+ <td>1.2</td>
+ </tr>
+
+ <tr>
+ <td colspan="2">Normalized Glyph Buffer Size (NGBS)</td>
<td>1</td>
</tr>
</tbody>
</table>
- <div class="note"><div class="note-title" aria-level="4" role="heading" id="h-note23"><span>Note</span></div><p class="">NRGA(G<sub>i</sub>) does not take into account glyph decorations (e.g. underline), glyph effects (e.g.
- outline) or actual glyph aspect ratio. An implementation can determine an actual buffer size needs based on worst-case
+ <div class="note"><div class="note-title" aria-level="4" role="heading" id="h-note24"><span>Note</span></div><p class="">NRGA(G<sub>i</sub>) does not take into account decorations (e.g. underline), effects (e.g.
+ outline) or actual typographical glyph aspect ratio. An implementation can determine an actual buffer size needs based on worst-case
glyph size complexity.</p></div>
<aside class="example"><div class="example-title"><span>Example 7</span></div>
- Setting a Normalized Glyph Buffer Size effectively sets a limit on the total number of distinct glyphs present in any
+ Setting a Normalized Glyph Buffer Size effectively sets a limit on the total number of distinct <a data-lt="glyph" href="#dfn-glyph" class="internalDFN" data-link-type="dfn">glyphs</a> present in any
given <a href="#dfn-intermediate-synchronic-document" class="internalDFN" data-link-type="dfn">intermediate synchronic document</a> E<sub>n</sub>. For example, assuming a maximum Normalized Glyph Buffer Size
- of 1 and the default tts:fontSize of 1c are used, the glyph's height as percentage of root container height is 1/15 , and
- the maximum number of distinct glyphs that can be buffered is 1÷(1÷15)^2=225 glyphs. In this example, an implementation
- rendering at 1920x1080 would need to allocate a glyph buffer no smaller than (1920÷32)×(1080÷15)×225=~1 Mpixels.
+ of 1 and the default tts:fontSize of 1c are used, the font size relative to the root container height is 1/15 , and
+ the maximum number of distinct glyphs that can be buffered is 1÷(1÷15)^2=225 glyphs.
</aside>
<aside class="example"><div class="example-title"><span>Example 8</span></div>
- GCpy effectively sets a limit on animating glyphs. For example, assuming that the root container is ultimately rendered
+ GCpy effectively sets a limit on animating text. For example, assuming that the root container is ultimately rendered
at 1920×1080 resolution and no regions need to have background color painted (so only a CLEAR(E<sub>n</sub>) operation
is required for the normalized drawing area for the <a href="#dfn-intermediate-synchronic-document" class="internalDFN" data-link-type="dfn">intermediate synchronic document</a>), a GCpy and BDraw of 12 s-1
- would mean that a group of 160 glyphs with a tts:fontSize equal to 5% of the root container height could be moved at most
+ would mean that a group of 160 <a data-lt="glyph" href="#dfn-glyph" class="internalDFN" data-link-type="dfn">glyphs</a> with a tts:fontSize equal to 5% of the root container height could be moved at most
approximately 12 s<sup>-1</sup> ÷ (1 + ( 160 × 0.05<sup>2</sup> )) = 8.6 times per second.
</aside>
<aside class="example"><div class="example-title"><span>Example 9</span></div>
- Ren(G<sub>i</sub>) effectively sets a limit on the glyph rendering rate. For example, assuming that the root container is
- ultimately rendered at a 1920×1080 resolution, a Ren(G<sub>i</sub>) of 1.2 s-1 would mean that at most 120 glyphs with a
+ Ren(G<sub>i</sub>) effectively sets a limit on the text rendering rate. For example, assuming that the root container is
+ ultimately rendered at a 1920×1080 resolution, a Ren(G<sub>i</sub>) of 1.2 s-1 would mean that at most 120 <a data-lt="glyph" href="#dfn-glyph" class="internalDFN" data-link-type="dfn">glyphs</a> with a
fontSize of 108 px (10% of 1080 px and NRGA(G<sub>i</sub>) = 0.01) could be rendered every second.
</aside>
</section>
@@ -3463,9 +3473,59 @@
</section>
-
-
-<section id="references" class="appendix" typeof="bibo:Chapter" resource="#references" property="bibo:hasPart"><!--OddPage--><h2 id="h-references" resource="#h-references"><span property="xhv:role" resource="xhv:heading"><span class="secno">H. </span>References</span></h2><section id="normative-references" typeof="bibo:Chapter" resource="#normative-references" property="bibo:hasPart"><h3 id="h-normative-references" resource="#h-normative-references"><span property="xhv:role" resource="xhv:heading"><span class="secno">H.1 </span>Normative references</span></h3><dl class="bibliography" resource=""><dt id="bib-CLDR">[CLDR]</dt><dd>Unicode Consortium. <a href="http://cldr.unicode.org" property="dc:requires">The Common Locale Data Repository Project</a>
+
+
+ <section class="appendix" id="simple-scripts" typeof="bibo:Chapter" resource="#simple-scripts" property="bibo:hasPart">
+ <!--OddPage--><h2 id="h-simple-scripts" resource="#h-simple-scripts"><span property="xhv:role" resource="xhv:heading"><span class="secno">H. </span>Simple Scripts</span></h2>
+
+ <p>The following table refers to the value of the script property associated with Unicode characters.</p>
+
+ <table class="simple">
+ <thead>
+ <tr>
+ <th>Simple scripts</th>
+
+ </tr>
+ </thead>
+
+ <tbody>
+
+
+ <tr>
+
+ <td>
+ Latin
+ </td>
+ </tr>
+
+ <tr>
+
+ <td>
+ Hebrew
+ </td>
+ </tr>
+
+ <tr>
+
+ <td>
+ Cyrillic
+ </td>
+ </tr>
+
+ <tr>
+
+ <td>
+ Greek
+ </td>
+ </tr>
+ </tbody>
+ </table>
+
+
+ </section>
+
+
+<section id="references" class="appendix" typeof="bibo:Chapter" resource="#references" property="bibo:hasPart"><!--OddPage--><h2 id="h-references" resource="#h-references"><span property="xhv:role" resource="xhv:heading"><span class="secno">I. </span>References</span></h2><section id="normative-references" typeof="bibo:Chapter" resource="#normative-references" property="bibo:hasPart"><h3 id="h-normative-references" resource="#h-normative-references"><span property="xhv:role" resource="xhv:heading"><span class="secno">I.1 </span>Normative references</span></h3><dl class="bibliography" resource=""><dt id="bib-CLDR">[CLDR]</dt><dd>Unicode Consortium. <a href="http://cldr.unicode.org" property="dc:requires">The Common Locale Data Repository Project</a>
</dd><dt id="bib-EBU-TT-D">[EBU-TT-D]</dt><dd>European Broadcasting Union (EBU). <a href="https://tech.ebu.ch/docs/tech/tech3380.pdf" property="dc:requires">Tech 3380, EBU-TT-D Subtitling Distribution Format Version 1.0</a>
</dd><dt id="bib-PNG">[PNG]</dt><dd>Tom Lane. <a href="http://www.w3.org/TR/PNG" property="dc:requires"><cite>Portable Network Graphics (PNG) Specification (Second Edition)</cite></a>. 10 November 2003. W3C Recommendation. URL: <a href="http://www.w3.org/TR/PNG" property="dc:requires">http://www.w3.org/TR/PNG</a>
</dd><dt id="bib-RFC2119">[RFC2119]</dt><dd>S. Bradner. <a href="https://tools.ietf.org/html/rfc2119" property="dc:requires"><cite>Key words for use in RFCs to Indicate Requirement Levels</cite></a>. March 1997. Best Current Practice. URL: <a href="https://tools.ietf.org/html/rfc2119" property="dc:requires">https://tools.ietf.org/html/rfc2119</a>
@@ -3474,7 +3534,7 @@
</dd><dt id="bib-UNICODE">[UNICODE]</dt><dd><a href="http://www.unicode.org/versions/latest/" property="dc:requires"><cite>The Unicode Standard</cite></a>. URL: <a href="http://www.unicode.org/versions/latest/" property="dc:requires">http://www.unicode.org/versions/latest/</a>
</dd><dt id="bib-WCAG20">[WCAG20]</dt><dd>Ben Caldwell; Michael Cooper; Loretta Guarino Reid; Gregg Vanderheiden et al. <a href="http://www.w3.org/TR/WCAG20/" property="dc:requires"><cite>Web Content Accessibility Guidelines (WCAG) 2.0</cite></a>. 11 December 2008. W3C Recommendation. URL: <a href="http://www.w3.org/TR/WCAG20/" property="dc:requires">http://www.w3.org/TR/WCAG20/</a>
</dd><dt id="bib-xml-names">[xml-names]</dt><dd>Tim Bray; Dave Hollander; Andrew Layman; Richard Tobin; Henry Thompson et al. <a href="http://www.w3.org/TR/xml-names" property="dc:requires"><cite>Namespaces in XML 1.0 (Third Edition)</cite></a>. 8 December 2009. W3C Recommendation. URL: <a href="http://www.w3.org/TR/xml-names" property="dc:requires">http://www.w3.org/TR/xml-names</a>
-</dd></dl></section><section id="informative-references" typeof="bibo:Chapter" resource="#informative-references" property="bibo:hasPart"><h3 id="h-informative-references" resource="#h-informative-references"><span property="xhv:role" resource="xhv:heading"><span class="secno">H.2 </span>Informative references</span></h3><dl class="bibliography" resource=""><dt id="bib-CEA-608">[CEA-608]</dt><dd><a href="http://www.ce.org/Standards/Standard-Listings/R4-3-Television-Data-Systems-Subcommittee/Line-21-Data-Service.aspx" property="dc:references">Line-21 Data Services</a>, ANSI/CEA Standard.
+</dd></dl></section><section id="informative-references" typeof="bibo:Chapter" resource="#informative-references" property="bibo:hasPart"><h3 id="h-informative-references" resource="#h-informative-references"><span property="xhv:role" resource="xhv:heading"><span class="secno">I.2 </span>Informative references</span></h3><dl class="bibliography" resource=""><dt id="bib-CEA-608">[CEA-608]</dt><dd><a href="http://www.ce.org/Standards/Standard-Listings/R4-3-Television-Data-Systems-Subcommittee/Line-21-Data-Service.aspx" property="dc:references">Line-21 Data Services</a>, ANSI/CEA Standard.
</dd><dt id="bib-CEA-708">[CEA-708]</dt><dd><a href="http://www.ce.org/Standards/Standard-Listings/R4-3-Television-Data-Systems-Subcommittee/CEA-708-D.aspx" property="dc:references">Digital Television (DTV) Closed Captioning</a>, ANSI/CEA Standard.
</dd><dt id="bib-HTML5">[HTML5]</dt><dd>Ian Hickson; Robin Berjon; Steve Faulkner; Travis Leithead; Erika Doyle Navara; Edward O'Connor; Silvia Pfeiffer. <a href="http://www.w3.org/TR/html5/" property="dc:references"><cite>HTML5</cite></a>. 28 October 2014. W3C Recommendation. URL: <a href="http://www.w3.org/TR/html5/" property="dc:references">http://www.w3.org/TR/html5/</a>
</dd><dt id="bib-SUBM">[SUBM]</dt><dd>World Wide Web Consortium (W3C). <a href="http://www.w3.org/Submission/2013/SUBM-ttml-ww-profiles-20130607/" property="dc:references">TTML Text and Image Profiles for Internet Media Subtitles and Captions</a> (Member Submission, 07 June 2013)
--- a/ttml-ww-profiles/ttml-ww-profiles.source.html Fri Oct 30 13:49:59 2015 +0900
+++ b/ttml-ww-profiles/ttml-ww-profiles.source.html Sat Oct 31 12:02:25 2015 -0700
@@ -2070,7 +2070,7 @@
<section>
- <h3>Overview</h3>
+ <h3>Overview (non-normative)</h3>
<p>This Section specifies the Hypothetical Render Model illustrated in <a href="#fig-hypothetical-render-model"></a>.</p>
@@ -2273,7 +2273,7 @@
D<sub>n</sub> to the Presentation Buffer P<sub>n</sub> using the Image Copier; or</li>
<li>if an identical image is present in Decoded Image Buffer D<sub>n-1</sub>, i.e. an identical image was present in <a>
- intermediate synchronic document</a> E<sub>n-1</sub>, copy using the Image Copier the glyph from Decoded Image Buffer
+ intermediate synchronic document</a> E<sub>n-1</sub>, copy using the Image Copier the image from Decoded Image Buffer
D<sub>n-1</sub> to both the Decoded Image Buffer D<sub>n</sub> and the Presentation Buffer P<sub>n</sub>; or
</li>
@@ -2354,25 +2354,11 @@
<section id='paint-text'>
<h3>Paint Text</h3>
-
- <p>For each glyph displayed in <a>intermediate synchronic document</a> E<sub>n</sub>, the Presentation Compositor
- SHALL:</p>
-
- <ul>
- <li>if an identical glyph is present in Glyph Buffer G<sub>n</sub>, copy the glyph from Glyph Buffer G<sub>n</sub> to the
- Presentation Buffer P<sub>n</sub> using the Glyph Copier; or</li>
-
- <li>if an identical glyph is present in Glyph Buffer G<sub>n-1</sub>, i.e. an identical glyph was present in intermediate
- synchronic document E<sub>n-1</sub>, copy using the Glyph Copier the glyph from Glyph Buffer G<sub>n-1</sub> to both the
- Glyph Buffer G<sub>n</sub> and the Presentation Buffer P<sub>n</sub>; or</li>
-
- <li>otherwise render using the Glyph Renderer the glyph into the Presentation Buffer P<sub>n</sub> and Glyph Buffer
- G<sub>n</sub> using the corresponding style information.</li>
- </ul>
-
- <p>Two glyphs are identical if and only if the following [[!TTML1]] styles are identical:</p>
-
- <ul>
+
+ <p>In the context of this section, a <dfn>glyph</dfn> is a tuple consisting of (i) one character and (ii) the computed values of the following
+ style properties:
+
+ <ul>
<li><code>tts:color</code></li>
<li><code>tts:fontFamily</code></li>
@@ -2387,6 +2373,27 @@
<li><code>tts:textOutline</code></li>
</ul>
+
+ </p>
+
+ <p class='note'>In complex scripts, the mapping from character to typographical glyph is not one-to-one. For instance, a given arabic character can
+ yield multiple glyphs depending on its position in a word. The Hypothetical Render Model however assumes a one-to-one mapping
+ and accounts for complex scripts by reducing the performance of the glyph buffer.</p>
+
+ <p>For each <a>glyph</a> associated with a character in a <a>presented region</a> of <a>intermediate synchronic document</a> E<sub>n</sub>,
+ the Presentation Compositor SHALL:</p>
+
+ <ul>
+ <li>if an identical <a>glyph</a> is present in Glyph Buffer G<sub>n</sub>, copy the <a>glyph</a> from Glyph Buffer G<sub>n</sub> to the
+ Presentation Buffer P<sub>n</sub> using the Glyph Copier; or</li>
+
+ <li>if an identical <a>glyph</a> is present in Glyph Buffer G<sub>n-1</sub>, i.e. an identical <a>glyph</a> was present in <a>intermediate
+ synchronic document</a> E<sub>n-1</sub>, copy using the Glyph Copier the <a>glyph</a> from Glyph Buffer G<sub>n-1</sub> to both the
+ Glyph Buffer G<sub>n</sub> and the Presentation Buffer P<sub>n</sub>; or</li>
+
+ <li>otherwise render using the Glyph Renderer the <a>glyph</a> into the Presentation Buffer P<sub>n</sub> and Glyph Buffer
+ G<sub>n</sub>.</li>
+ </ul>
<figure>
<img src="text-render-example-figure-2.png" alt="Example of Presentation Compositor Behavior for Text Rendering" height=
@@ -2397,108 +2404,110 @@
</figcaption>
</figure>
- <p>The duration DUR<sub>T</sub>(E<sub>n</sub>) for painting the text of an <a>intermediate synchronic document</a>
+ <p>The duration DUR<sub>T</sub>(E<sub>n</sub>) for rendering the text of an <a>intermediate synchronic document</a>
E<sub>n</sub> in the Presentation Buffer is as follows:</p>
- <p class="equation">DUR<sub>T</sub>(E<sub>n</sub>) = ∑<sub>G<sub>i</sub> ∈ G<sub>r</sub></sub> NRGA(G<sub>i</sub>) / Ren(G<sub>i</sub>)
- + ∑<sub>G<sub>j</sub> ∈ G<sub>c</sub></sub> NRGA(G<sub>j</sub>) / GCpy</p>
+ <p class="equation">DUR<sub>T</sub>(E<sub>n</sub>) = ∑<sub>g<sub>i</sub> ∈ Γ<sub>r</sub></sub> NRGA(g<sub>i</sub>) / Ren(g<sub>i</sub>)
+ + ∑<sub>g<sub>j</sub> ∈ Γ<sub>c</sub></sub> NRGA(g<sub>j</sub>) / GCpy</p>
<p>where</p>
<ul>
- <li>G<sub>r</sub> is the set of glyphs rendered into the Presentation Buffer P<sub>n</sub> using the Glyph Renderer in
+ <li>Γ<sub>r</sub> is the set of <a data-lt="glyph">glyphs</a> rendered into the Presentation Buffer P<sub>n</sub> using the Glyph Renderer in
<a>intermediate synchronic document</a> E<sub>n</sub>;
</li>
- <li>G<sub>c</sub> is the set of glyphs copied to the Presentation Buffer P<sub>n</sub> using the Glyph Copier in
+ <li>Γ<sub>c</sub> is the set of <a data-lt="glyph">glyphs</a> copied to the Presentation Buffer P<sub>n</sub> using the Glyph Copier in
<a>intermediate synchronic document</a> E<sub>n</sub>;
</li>
- <li>Ren(G<sub>i</sub>) is the text rendering performance factor glyph G<sub>i</sub>; and</li>
+ <li>Ren(g<sub>i</sub>) is the text rendering performance factor for <a>glyph</a> g<sub>i</sub>; and</li>
<li>GCpy is the normalized glyph copy performance factor.</li>
</ul>
- <p>G<sub>r</sub> and G<sub>c</sub> SHALL include only glyphs in <a data-lt="presented region">presented regions</a> and SHALL
- NOT include a [[!UNICODE]] Code Point if it does not result in a change to presentation, e.g. the Code Point is
- ignored.</p>
-
- <p>The Normalized Rendered Glyph Area NRGA(G<sub>i</sub>) of a glyph G<sub>i</sub> SHALL be equal to:</p>
-
- <p class="equation">NRGA(G<sub>i</sub>)= (fontSize of G<sub>i</sub> as percentage of root container height)<sup>2</sup></p>
+ <p>The Normalized Rendered Glyph Area NRGA(g<sub>i</sub>) of a <a>glyph</a> g<sub>i</sub> SHALL be equal to:</p>
+
+ <p class="equation">NRGA(g<sub>i</sub>) = (fontSize of g<sub>i</sub> as percentage of root container height)<sup>2</sup></p>
<p>The contents of the Glyph Buffer G<sub>n</sub> SHALL be copied instantaneously to Glyph Buffer G<sub>n-1</sub> at the
presentation time of <a>intermediate synchronic document</a> E<sub>n</sub>.</p>
- <p>The total size occupied by the glyphs stored in Glyph Buffers G<sub>n</sub> or G<sub>n-1</sub> SHALL be the sum of their
- Normalized Rendered Glyph Area.</p>
-
- <p>The size of Glyph Buffers G<sub>n</sub> and G<sub>n-1</sub> SHALL be the Normalized Glyph Buffer Size (NGBS).</p>
-
- <p>Unless specified otherwise, the following table SHALL specify GCpy, Ren and NGBS, and SHALL apply to all supported font
- styles (including provision of outline border).</p>
+ <p>It SHALL be an error for the sum of NRGA(g<sub>i</sub>) over all <a data-lt="glyph">glyphs</a> Glyph Buffer G<sub>n</sub> to be larger
+ than the Normalized Glyph Buffer Size (NGBS).</p>
+
+ <p>Unless specified otherwise, the following table specifies values of GCpy, Ren and NGBS.</p>
<table class='simple'>
<thead>
<tr>
- <th>Parameter</th>
-
- <th>Initial value</th>
+ <th style="text-align: center;">Parameter</th>
+
+ <th style="text-align: center;">Condition</th>
+
+ <th style="text-align: center;">Initial value</th>
</tr>
</thead>
<tbody>
<tr>
- <td>Normalized glyph copy performance factor (GCpy)</td>
+ <td rowspan="2">Normalized glyph copy performance factor (GCpy)</td>
+
+ <td>The character of g<sub>i</sub> belongs to a simple script as specified in <a href="#simple-scripts"></a></td>
<td>12</td>
</tr>
+
+ <tr>
+
+ <td>otherwise</td>
+
+ <td>3</td>
+ </tr>
<tr>
- <td>Text rendering performance factor Ren(G<sub>i</sub> if G<sub>i</sub> is not a CJK Unified Ideograph as specified
- in [[!UNICODE]].</td>
-
- <td>1.2</td>
- </tr>
-
- <tr>
- <td>Text rendering performance factor Ren(G<sub>i</sub>) if G<sub>i</sub> is a CJK Unified Ideograph as specified in
- [[!UNICODE]].</td>
+ <td rowspan="2">Text rendering performance factor Ren(G<sub>i</sub>)</td>
+ <td>The character of g<sub>i</sub> belongs to the CJK Unified Ideograph block as specified in [[!UNICODE]]</td>
<td>0.6</td>
</tr>
<tr>
- <td>Normalized Glyph Buffer Size (NGBS)</td>
+ <td>otherwise</td>
+
+ <td>1.2</td>
+ </tr>
+
+ <tr>
+ <td colspan="2">Normalized Glyph Buffer Size (NGBS)</td>
<td>1</td>
</tr>
</tbody>
</table>
- <p class='note'>NRGA(G<sub>i</sub>) does not take into account glyph decorations (e.g. underline), glyph effects (e.g.
- outline) or actual glyph aspect ratio. An implementation can determine an actual buffer size needs based on worst-case
+ <p class='note'>NRGA(G<sub>i</sub>) does not take into account decorations (e.g. underline), effects (e.g.
+ outline) or actual typographical glyph aspect ratio. An implementation can determine an actual buffer size needs based on worst-case
glyph size complexity.</p>
<aside class='example'>
- Setting a Normalized Glyph Buffer Size effectively sets a limit on the total number of distinct glyphs present in any
+ Setting a Normalized Glyph Buffer Size effectively sets a limit on the total number of distinct <a data-lt="glyph">glyphs</a> present in any
given <a>intermediate synchronic document</a> E<sub>n</sub>. For example, assuming a maximum Normalized Glyph Buffer Size
- of 1 and the default tts:fontSize of 1c are used, the glyph's height as percentage of root container height is 1/15 , and
- the maximum number of distinct glyphs that can be buffered is 1÷(1÷15)^2=225 glyphs. In this example, an implementation
- rendering at 1920x1080 would need to allocate a glyph buffer no smaller than (1920÷32)×(1080÷15)×225=~1 Mpixels.
+ of 1 and the default tts:fontSize of 1c are used, the font size relative to the root container height is 1/15 , and
+ the maximum number of distinct glyphs that can be buffered is 1÷(1÷15)^2=225 glyphs.
</aside>
<aside class='example'>
- GCpy effectively sets a limit on animating glyphs. For example, assuming that the root container is ultimately rendered
+ GCpy effectively sets a limit on animating text. For example, assuming that the root container is ultimately rendered
at 1920×1080 resolution and no regions need to have background color painted (so only a CLEAR(E<sub>n</sub>) operation
is required for the normalized drawing area for the <a>intermediate synchronic document</a>), a GCpy and BDraw of 12 s-1
- would mean that a group of 160 glyphs with a tts:fontSize equal to 5% of the root container height could be moved at most
+ would mean that a group of 160 <a data-lt="glyph">glyphs</a> with a tts:fontSize equal to 5% of the root container height could be moved at most
approximately 12 s<sup>-1</sup> ÷ (1 + ( 160 × 0.05<sup>2</sup> )) = 8.6 times per second.
</aside>
<aside class='example'>
- Ren(G<sub>i</sub>) effectively sets a limit on the glyph rendering rate. For example, assuming that the root container is
- ultimately rendered at a 1920×1080 resolution, a Ren(G<sub>i</sub>) of 1.2 s-1 would mean that at most 120 glyphs with a
+ Ren(G<sub>i</sub>) effectively sets a limit on the text rendering rate. For example, assuming that the root container is
+ ultimately rendered at a 1920×1080 resolution, a Ren(G<sub>i</sub>) of 1.2 s-1 would mean that at most 120 <a data-lt="glyph">glyphs</a> with a
fontSize of 108 px (10% of 1080 px and NRGA(G<sub>i</sub>) = 0.01) could be rendered every second.
</aside>
</section>
@@ -3114,5 +3123,55 @@
</section>
+
+
+ <section class='appendix' id='simple-scripts'>
+ <h2>Simple Scripts</h2>
+
+ <p>The following table refers to the value of the script property associated with Unicode characters.</p>
+
+ <table class='simple'>
+ <thead>
+ <tr>
+ <th>Simple scripts</th>
+
+ </tr>
+ </thead>
+
+ <tbody>
+
+
+ <tr>
+
+ <td>
+ Latin
+ </td>
+ </tr>
+
+ <tr>
+
+ <td>
+ Hebrew
+ </td>
+ </tr>
+
+ <tr>
+
+ <td>
+ Cyrillic
+ </td>
+ </tr>
+
+ <tr>
+
+ <td>
+ Greek
+ </td>
+ </tr>
+ </tbody>
+ </table>
+
+
+ </section>
</body>
</html>