--- a/ttml-ww-profiles/ttml-ww-profiles.source.html Thu Sep 26 11:10:09 2013 -0700
+++ b/ttml-ww-profiles/ttml-ww-profiles.source.html Fri Sep 27 14:53:20 2013 -0700
@@ -1,38 +1,54 @@
-<!DOCTYPE html>
+<!DOCTYPE html>
<html>
<head>
<meta charset='utf-8'>
<title>TTML Text and Image Profiles for Internet Media Subtitles and Captions</title>
- <script src='http://www.w3.org/Tools/respec/respec-w3c-common.js' class='remove'>
+ <script src='respec-w3c-common.js' class='remove'>
</script>
<script class='remove'>
var respecConfig = {
- specStatus: "WD"
+ specStatus: "WD"
, shortName: "ttml-ww-profiles"
, editors: [{ name: "Pierre Lemieux", mailto: "pal@sandflow.com" }]
- , wg: "Timed Text Working Group"
- , wgURI: "http://www.w3.org/AudioVideo/TT/"
- , wgPublicList: "public-tt"
- , prevVersion: "http://www.w3.org/Submission/2013/SUBM-ttml-ww-profiles-20130607/"
- , localBiblio: {
+ , wg: "Timed Text Working Group"
+ , wgURI: "http://www.w3.org/AudioVideo/TT/"
+ , wgPublicList: "public-tt"
+ , wgPatentURI: "http://www.w3.org/2004/01/pp-impl/34314/status"
+ , prevVersion: "http://www.w3.org/Submission/2013/SUBM-ttml-ww-profiles-20130607/"
+ , localBiblio: {
"TTML2": "World Wide Web Consortium (W3C). Timed Text Markup Language 2 (TTML 2)",
- "CEA-608": "<a href='http://www.ce.org/Standards/Standard-Listings/R4-3-Television-Data-Systems-Subcommittee/Line-21-Data-Service.aspx'>Line-21 Data Services</a>, ANSI/CEA Standard.",
- "CEA-708": "<a href='http://www.ce.org/Standards/Standard-Listings/R4-3-Television-Data-Systems-Subcommittee/CEA-708-D.aspx'>Digital Television (DTV) Closed Captioning</a>, ANSI/CEA Standard.",
- "MHP" : "ETSI TS 101 812 V1.3.1, Digital Video Broadcasting (DVB); Multimedia Home",
- "ST2052-1": "SMPTE ST 2052-1, Timed Text Format (SMPTE-TT)"
+ "CEA-608": "<a href='http://www.ce.org/Standards/Standard-Listings/R4-3-Television-Data-Systems-Subcommittee/Line-21-Data-Service.aspx'>Line-21 Data Services</a>, ANSI/CEA Standard.",
+ "CEA-708": "<a href='http://www.ce.org/Standards/Standard-Listings/R4-3-Television-Data-Systems-Subcommittee/CEA-708-D.aspx'>Digital Television (DTV) Closed Captioning</a>, ANSI/CEA Standard.",
+ "MHP" : "ETSI TS 101 812 V1.3.1, Digital Video Broadcasting (DVB); Multimedia Home",
+ "ST2052-1": "SMPTE ST 2052-1, Timed Text Format (SMPTE-TT)"
}
};
</script>
+ <style type="text/css">
+table.syntax { border: 0px solid black; width: 85%; border-collapse: collapse }
+ table.syntax caption { font-weight: bold; text-align: left; padding-bottom: 0.5em }
+ table.syntax th { border: 0px solid black; text-align: left }
+ table.syntax td { border: 0px solid black }
+ table.syntax div { background-color: #ffffc8 }
+ div.exampleInner { background-color: #d5dee3;
+ border-top-width: 4px;
+ border-top-style: double;
+ border-top-color: #d3d3d3;
+ border-bottom-width: 4px;
+ border-bottom-style: double;
+ border-bottom-color: #d3d3d3;
+ padding: 4px; margin: 0em }
+ </style>
</head>
<body>
<section id='abstract'>
- <p>This submission specifies two profiles of the Timed Text Markup Language 2 (TTML 2): a text-only profile and an
- image-only profile. These profiles are intended to be used across subtitle and caption delivery applications worldwide, thereby
- simplifying interoperability, consistent rendering and conversion to other subtitling and captioning formats. The text
- profile is a superset of <a href="http://www.w3.org/TR/ttml10-sdp-us/">SDP-US</a>.</p>
+ <p>This submission specifies two profiles of the Timed Text Markup Language 2 (TTML 2): a text-only profile and an image-only
+ profile. These profiles are intended to be used across subtitle and caption delivery applications worldwide, thereby
+ simplifying interoperability, consistent rendering and conversion to other subtitling and captioning formats. The text profile
+ is a superset of <a href="http://www.w3.org/TR/ttml10-sdp-us/">SDP-US</a>.</p>
<p>Both profiles are based on the <a href="http://www.uvvuwiki.com/">Common File Format & Media Formats Specification
(CFF)</a> developed by <a href="http://www.uvvu.com/partners.php">Digital Entertainment Content Ecosystem (DECE)</a>.</p>
@@ -41,9 +57,9 @@
<section id='scope'>
<h2>Scope</h2>
- <p>This document specifies two profiles of [[!TTML2]]: a text-only profile and an image-only
- profile. These profiles are intended for subtitle and caption delivery worldwide, including dialog language translation,
- content description, captions for deaf and hard of hearing, etc.</p>
+ <p>This document specifies two profiles of [[!TTML2]]: a text-only profile and an image-only profile. These profiles are
+ intended for subtitle and caption delivery worldwide, including dialog language translation, content description, captions for
+ deaf and hard of hearing, etc.</p>
</section>
<section id="conformance">
@@ -88,6 +104,33 @@
</section>
<section>
+ <h3>Namespaces</h3>
+
+ <p>The following namespaces (see [[!xml-names]]) are used in this specification:</p>
+
+ <table class='simple'>
+ <thead>
+ <tr>
+ <th>Prefix</th>
+
+ <th>Value</th>
+ </tr>
+ </thead>
+
+ <tbody>
+ <tr>
+ <td>imsc</td>
+
+ <td>http://www.w3.org/ns/ttml/profile/imsc</td>
+ </tr>
+ </tbody>
+ </table>
+
+ <p>The namespace prefix values defined above are for convenience and document instances may use any prefix value that
+ conforms to [[!xml-names]].</p>
+ </section>
+
+ <section>
<h3>Related Video Object</h3>
<section>
@@ -100,7 +143,8 @@
<section>
<h4>Root Container</h4>
- <p class='note'>The following assumes the addition of a <code>ttp:aspectRatio</code> attribute to [[!TTML2]].</p>
+ <p class='issue'>See <a href="http://www.w3.org/AudioVideo/TT/tracker/issues/201">ISSUE-201</a> for a discussion of aspect
+ ratio in the context of [[!TTML2]].</p>
<p>The root container of a subtitle document SHALL be mapped to the related video object frame according to the
following:</p>
@@ -165,13 +209,62 @@
</section>
<section>
+ <h3>Progressively Decodable</h3>
+
+ <p>A progressively decodable subtitle document is a subtitle document structured to facilitate processing before the document
+ is received in its entirety. It shall conform to the following:</p>
+
+ <ol>
+ <li>elements are sorted according to their resolved begin time;</li>
+
+ <li>elements with identical resolved begin time appear in the order desired for flow;</li>
+
+ <li>no element references another element with a larger resolved begin time;</li>
+
+ <li>no element references another element occurring later in the subtitle document; and</li>
+
+ <li>a <code>imsc:progressivelyDecodable</code> attribute with value "true" is present on the <code>tt</code>
+ element.</li>
+ </ol>
+
+ <p>The <code>imsc:progressivelyDecodable</code> attribute shall conform to the following syntax:</p>
+
+ <table class="syntax">
+ <tbody>
+ <tr>
+ <td>
+ <div class="exampleInner">
+ <pre>
+imsc:progressivelyDecodable
+ : "true"
+ | "false"
+</pre>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+
+ <p>The initial value of <code>imsc:progressivelyDecodable</code> shall be "false".</p>
+
+ <p>A <code>imsc:progressivelyDecodable</code> attribute with value "false" may be present on the <code>tt</code>
+ element if the subtitle document is not a progressively decodable subtitle document.</p>
+
+ <p>A <code>imsc:progressivelyDecodable</code> attribute is considered to be significant only when specified on the
+ <code>tt</code> element.</p>
+
+ <p class='note'>The placement and use of <code>div</code>, <code>region</code> and <code>span</code> that contain time
+ attributes, and (ii) the use of <code>set</code>.</p>
+ </section>
+
+ <section>
<h3>Region</h3>
<section>
<h4>Presented Region</h4>
- <p>A region, as defined in [[!TTML2]], SHALL be considered presented in a given intermediate synchronic document if both of the
- following conditions are true:</p>
+ <p>A region, as defined in [[!TTML2]], SHALL be considered presented in a given intermediate synchronic document if both of
+ the following conditions are true:</p>
<ol>
<li>
@@ -179,15 +272,18 @@
</li>
<li>
+ <p><code>tts:display</code> is not "none"; and</p>
+ </li>
+
+ <li>
<p>content is selected into the region or <code>tts:showBackground</code> is equal to "always" for the
region.</p>
</li>
</ol>
-
- <!-- add note: why was tts:display ignored -> simplicity? how can the same be achieved: nothing selected -->
-
- <p class='note'>As specified in [[!TTML2]], the initial value of <code>tts:opacity</code> is "1.0" and the default
- value of <code>tts:showBackground</code> is "always".</p>
+
+ <p class='note'>As specified in [[!TTML2]], the initial value of <code>tts:opacity</code> is "1.0", the initial
+ value of <code>tts:showBackground</code> is "always", and the initial value of <code>tts:display</code> is
+ "auto"</p>
</section>
<section>
@@ -482,7 +578,8 @@
<tr>
<td><code>#tickRate</code></td>
- <td>MAY be used. <code>ttp:tickRate</code> SHALL be present on the <code>tt</code> element.</td>
+ <td>MAY be used. <code>ttp:tickRate</code> SHALL be present on the <code>tt</code> element if the
+ #time-offset-with-ticks feature is used in the document.</td>
</tr>
<tr>
@@ -535,12 +632,6 @@
</tr>
<tr>
- <td><code>#timeBase-media</code></td>
-
- <td>MAY be used.</td>
- </tr>
-
- <tr>
<td><code>#timeContainer</code></td>
<td>MAY be used.</td>
@@ -633,14 +724,14 @@
</tbody>
</table>
- <p class='note'>See <a href="http://www.w3.org/AudioVideo/TT/tracker/issues/230">ISSUE-230</a> for a description of
+ <p class='issue'>See <a href="http://www.w3.org/AudioVideo/TT/tracker/issues/230">ISSUE-230</a> for a description of
<code>#forcedDisplay</code></p>
- <p class='note'>This initial values specified for <code>tts:color</code>, <code>tts:displayAlign</code> and
+ <p class='note'>The initial values specified for <code>tts:color</code>, <code>tts:displayAlign</code> and
<code>tts:textAlign</code> are those specified by [[ST2052-1]].</p>
- <p class='note'>As specified in [[!TTML2]], a <code>#time-offset-with-frames</code> expression is translated to a media time M
- according to M = 3600 · hours + 60 · minutes + seconds + (frames ÷ (<code>ttp:frameRateMultiplier</code> ·
+ <p class='note'>As specified in [[!TTML2]], a <code>#time-offset-with-frames</code> expression is translated to a media time
+ M according to M = 3600 · hours + 60 · minutes + seconds + (frames ÷ (<code>ttp:frameRateMultiplier</code> ·
<code>ttp:frameRate</code>)).</p>
</section>
</section>
@@ -651,24 +742,23 @@
<section>
<h3>Document Conformance</h3>
- <p>A subtitle document conforming to the Text Profile SHALL be designated by the document conformance designator specified
- below.</p>
+ <p>A subtitle document conforming to the Text Profile SHALL be associated with the following profile designator and profile
+ definition document:</p>
<pre>
-http://www.w3.org/ns/ttml/profile/imsc-text
+<?xml version="1.0" encoding="utf-8"?>
+<profile designator="http://www.w3.org/ns/ttml/profile/imsc/text/definition" xmlns="http://www.w3.org/ns/ttml#parameter">
+ <extensions>
+ <extension>http://www.w3.org/ns/ttml/profile/imsc/text/definition</extension>
+ </extensions>
+</profile>
</pre>
-
- <p class='note'>The ttp:profile mechanism of TTML 1.0 allows a document to indicate the profile(s) that a processor SHALL
- support in order to process the document. This mechanism cannot be used to indicate that a processor implementing any of the
- referenced profiles can process the document. The document conformance concept introduced below extends the TTML 1.0
- ttp:profile mechanism by allowing a document to signal that it conforms to a specified set of normative provisions.</p>
</section>
<section>
<h3>Features</h3>
- <p class='note'>The following assumes, but does not require, the porting of the [[ST2052-1]]
- <code>#backgroundImage</code>, <code>#backgroundImageHorizontal</code>, <code>#backgroundImageVertical</code> and
- <code>#image</code> features to [[!TTML2]].</p>
+ <p class='issue'>The following assumes, but does not require, the porting of the [[ST2052-1]] <code>#backgroundImage</code>
+ features to [[!TTML2]]. See <a href="http://www.w3.org/AudioVideo/TT/tracker/issues/238">ISSUE-238</a>.</p>
<table class='simple'>
<thead>
@@ -749,14 +839,19 @@
<tr>
<td><code>#extent-region</code></td>
- <td>The <code>tts:extent</code> attribute when applied to a region element SHALL use <code>px</code> units or
- "percentage" representation, and SHALL NOT use <code>em</code> units.</td>
+ <td>
+ The <code>tts:extent</code> attribute when applied to a region element SHALL use <code>px</code> units or
+ "percentage" representation, and SHALL NOT use <code>em</code> units.<br>
+ Section <a href="#layout-model"></a> SHOULD be used to calculate a region extent that avoids clipping.
+ </td>
</tr>
<tr>
<td><code>#fontFamily-generic</code></td>
- <td>MAY be used.</td>
+ <td>MAY be used. A <code>tts:fontFamily</code> of either "monospaceSerif" or
+ "proportionalSansSerif" SHOULD be specified for all presented text content. A tts:fontFamily of
+ "default" SHALL be equivalent to "monospaceSerif".</td>
</tr>
<tr>
@@ -974,24 +1069,49 @@
<section>
<h3>Document Conformance</h3>
- <p>The Image Profile SHALL be designated by the document conformance designator specified below:</p>
+ <p>A subtitle document conforming to the Image Profile SHALL be associated with the following profile designator and profile
+ definition document:</p>
<pre>
-http://www.w3.org/ns/ttml/profile/imsc-image
+<?xml version="1.0" encoding="utf-8"?>
+<profile designator="http://www.w3.org/ns/ttml/profile/imsc/image/definition" xmlns="http://www.w3.org/ns/ttml#parameter">
+ <extensions>
+ <extension>http://www.w3.org/ns/ttml/profile/definition/imsc/image/definition</extension>
+ </extensions>
+</profile>
</pre>
-
- <p class='note'>The ttp:profile mechanism of TTML 1.0 allows a document to indicate the profile(s) that a processor SHALL
- support in order to process the document. This mechanism cannot be used to indicate that a processor implementing any of the
- referenced profiles can process the document. The document conformance concept introduced below extends the TTML 1.0
- ttp:profile mechanism by allowing a document to signal that it conforms to a specified set of normative
- provisions.</p>
+ </section>
+
+ <section>
+ <h3>Presented Image</h3>
+
+ <section>
+ <h4>Definition</h4>
+
+ <p>A presented image SHALL be a <code>div</code> element with a smpte:backgroundImage attribute that is contained within a
+ presented region.</p>
+ </section>
+
+ <section>
+ <h4>Number per Region</h4><!-- start CFF-TT 1.0.7 -->
+
+ <p>In a given synchronic document, there shall be at most one presented image per presented region.</p>
+ <!-- end CFF-TT 1.0.7 -->
+ </section>
+ </section>
+
+ <section>
+ <h3><code>div</code> element</h3>
+
+ <p>If a <code>tts:backgroundImage</code> attribute is applied to a <code>div</code> element, the width and height of the
+ region extent associated with the <code>div</code> element SHALL be present and SHALL be equal to the width and height of the
+ image source referenced by the <code>tts:backgroundImage</code>.</p>
</section>
<section>
<h3>Features</h3>
-
- <p class='note'>The following assumes, but does not require, the porting of the [[ST2052-1]]
- <code>#backgroundImage</code>, <code>#backgroundImageHorizontal</code>, <code>#backgroundImageVertical</code> and
- <code>#image</code> features to [[!TTML2]].</p>
+
+ <p class='issue'>The following assumes, but does not require, the porting of the [[ST2052-1]] <code>#backgroundImage</code>
+ features to [[!TTML2]]. See <a href="http://www.w3.org/AudioVideo/TT/tracker/issues/238">ISSUE-238</a>.</p>
<table class='simple'>
<thead>
@@ -1055,14 +1175,6 @@
</tr>
<tr>
- <td><code>#extent-region</code></td>
-
- <td>If a <code>tts:backgroundImage</code> attribute is applied to a region, the width and height of the region extent
- SHALL be present and SHALL be equal to the width and height of the image source referenced by the
- <code>tts:backgroundImage</code>.</td>
- </tr>
-
- <tr>
<td><code>#fontFamily</code></td>
<td>SHALL NOT be used.</td>
@@ -1166,51 +1278,53 @@
<h2>Hypothetical Render Model</h2>
<section>
- <h3>Overview</h3>
-
- <p>This Section specifies the Hypothetical Render Model illustrated in <a href="#fig-hypothetical-render-model"></a>.</p>
-
- <p>The purpose of the model is to limit subtitle document complexity. It is not however intended to serve as basis for
- implementation. For instance, while the model defines a glyph buffer for the purpose of limiting the number of glyphs
- displayed at any given point in time, it does not require an implementation to implement such a buffer.</p>
-
- <figure>
- <img src="hypothetical-render-figure-1.png" alt="Hypothetical Render Model">
-
- <figcaption>
- Hypothetical Render Model
- </figcaption>
- </figure>
-
- <p>The model operates on successive intermediate synchronic documents obtained from an input subtitle document, and uses a
- simple double buffering model: while an intermediate synchronic document E<sub>n</sub> is being painted into Presentation
- Buffer P<sub>n</sub> (the "front buffer" of the model), the previous intermediate synchronic document
- E<sub>n-1</sub> is available for display in Presentation Buffer P<sub>n-1</sub> (the "back buffer" of the
- model).</p>
-
- <p>The model specifies an (hypothetical) time required for completely painting an intermediate synchronic document as a proxy
- for complexity. Painting includes drawing region backgrounds, rendering and copying glyphs, and decoding and copying images.
- Complexity is then limited by requiring that painting of intermediate synchronic document E<sub>n</sub> completes before the
- end of intermediate synchronic document E<sub>n-1</sub>.</p>
-
- <p>Whenever applicable, constraints are specified relative to root container dimensions, allowing subtitle sequences to be
- authored independently of related video object resolution.</p>
-
- <p>To enables scenarios where the same glyphs are used in multiple successive intermediate synchronic documents, e.g. to
- convey a CEA-608/708-style roll-up (see [[CEA-608]] and [[CEA-708]]), the Glyph Buffers G<sub>n</sub> and G<sub>n-1</sub> store rendered glyphs across
- intermediate synchronic documents, allowing glyphs to be copied into the Presentation Buffer instead of rendered, a more
- costly operation.</p>
-
- <p>Similarly, Decoded Image Buffers D<sub>n</sub> and D<sub>n-1</sub> store decoded images across intermediate synchronic
- documents, allowing images to be copied into the Presentation Buffer instead of decoded.</p>
- </section>
-
- <section>
- <h3>Model</h3>
+ <h3>Performance Model</h3>
<section>
- <h4>General</h4>The Presentation Compositor SHALL render in Presentation Buffer P<sub>n</sub> each successive intermediate
- synchronic document E<sub>n</sub> using the following steps in order:
+ <h4>Overview</h4>
+
+ <p>This Section specifies the Hypothetical Render Model illustrated in <a href="#fig-hypothetical-render-model"></a>.</p>
+
+ <p>The purpose of the model is to limit subtitle document complexity. It is not however intended to serve as basis for
+ implementation. For instance, while the model defines a glyph buffer for the purpose of limiting the number of glyphs
+ displayed at any given point in time, it does not require an implementation to implement such a buffer.</p>
+
+ <figure>
+ <img src="hypothetical-render-figure-1.png" alt="Hypothetical Render Model">
+
+ <figcaption>
+ Hypothetical Render Model
+ </figcaption>
+ </figure>
+
+ <p>The model operates on successive intermediate synchronic documents obtained from an input subtitle document, and uses a
+ simple double buffering model: while an intermediate synchronic document E<sub>n</sub> is being painted into Presentation
+ Buffer P<sub>n</sub> (the "front buffer" of the model), the previous intermediate synchronic document
+ E<sub>n-1</sub> is available for display in Presentation Buffer P<sub>n-1</sub> (the "back buffer" of the
+ model).</p>
+
+ <p>The model specifies an (hypothetical) time required for completely painting an intermediate synchronic document as a
+ proxy for complexity. Painting includes drawing region backgrounds, rendering and copying glyphs, and decoding and copying
+ images. Complexity is then limited by requiring that painting of intermediate synchronic document E<sub>n</sub> completes
+ before the end of intermediate synchronic document E<sub>n-1</sub>.</p>
+
+ <p>Whenever applicable, constraints are specified relative to root container dimensions, allowing subtitle sequences to be
+ authored independently of related video object resolution.</p>
+
+ <p>To enables scenarios where the same glyphs are used in multiple successive intermediate synchronic documents, e.g. to
+ convey a CEA-608/708-style roll-up (see [[CEA-608]] and [[CEA-708]]), the Glyph Buffers G<sub>n</sub> and G<sub>n-1</sub>
+ store rendered glyphs across intermediate synchronic documents, allowing glyphs to be copied into the Presentation Buffer
+ instead of rendered, a more costly operation.</p>
+
+ <p>Similarly, Decoded Image Buffers D<sub>n</sub> and D<sub>n-1</sub> store decoded images across intermediate synchronic
+ documents, allowing images to be copied into the Presentation Buffer instead of decoded.</p>
+ </section>
+
+ <section>
+ <h4>General</h4>
+
+ <p>The Presentation Compositor SHALL render in Presentation Buffer P<sub>n</sub> each successive intermediate synchronic
+ document E<sub>n</sub> using the following steps in order:</p>
<ol>
<li>clear the pixels, except for the first intermediate synchronic document E<sub>0</sub> for the which the pixels of
@@ -1299,7 +1413,7 @@
</section>
<section>
- <h3>Paint Regions</h3>
+ <h4>Paint Regions</h4>
<p>The total normalized drawing area S(E<sub>n</sub>) for intermediate synchronic document E<sub>n</sub> SHALL be</p>
@@ -1320,8 +1434,8 @@
<p>NSIZE(R<sub>i</sub>) SHALL be given by:</p>
- <p>NSIZE(R<sub>i</sub>) = (width of R<sub>i</sub> ∙ height of R<sub>i</sub> ) ÷ (root container height ∙ root container
- width)</p>
+ <p>NSIZE(R<sub>i</sub>) = (width of R<sub>i</sub> ∙ height of R<sub>i</sub> ) ÷ (root container height ∙ root
+ container width)</p>
<aside class='example'>
For a region R<sub>i</sub> in with <code>tts:extent="250px 50px"</code> within a root container with
@@ -1337,12 +1451,12 @@
<li>It is specified on the <code>region</code> layout element that defines the region.</li>
<li>It is specified on a <code>div</code>, <code>p</code>, <code>span</code> or <code>br</code> content element that is
- to be flowed into the region for presentation in the intermediate synchronic document (see [[!TTML2]] for more details on when
- a content element is followed into a region).</li>
+ to be flowed into the region for presentation in the intermediate synchronic document (see [[!TTML2]] for more details on
+ when a content element is followed into a region).</li>
<li>It is specified on a <code>set</code> animation element that is to be applied to content elements that are to be
- flowed into the region for presentation in the intermediate synchronic document (see [[!TTML2]] for more details on when a
- <code>set</code> animation element is applied to content elements).</li>
+ flowed into the region for presentation in the intermediate synchronic document (see [[!TTML2]] for more details on when
+ a <code>set</code> animation element is applied to content elements).</li>
</ul>
<p>Even if a specified <code>tts:backgroundColor</code> is the same as specified on the nearest ancestor content element or
@@ -1351,14 +1465,11 @@
</section>
<section>
- <h3>Paint Images</h3>
+ <h4>Paint Images</h4>
<p>The Presentation Compositor SHALL paint into the Presentation Buffer P<sub>n</sub> all visible pixels of presented
images of intermediate synchronic document E<sub>n</sub>.</p>
- <p>A presented image SHALL be a <code>div</code> element with a smpte:backgroundImage attribute that is contained within a
- presented region.</p>
-
<p>For each presented image, the Presentation Compositor SHALL either:</p>
<ul>
@@ -1395,8 +1506,8 @@
<p>NRGA(I<sub>i</sub>) is the Normalized Image Area of presented image I<sub>i</sub> and SHALL be equal to:</p>
- <p>NRGA(I<sub>i</sub>)= (width of I<sub>i</sub> ) ∙ height of I<sub>i</sub> ) ÷ ( root container height ∙ root container
- width )</p>
+ <p>NRGA(I<sub>i</sub>)= (width of I<sub>i</sub> ) ∙ height of I<sub>i</sub> ) ÷ ( root container height ∙ root
+ container width )</p>
<p>NSIZ(I<sub>i</sub>) SHALL be the number of pixels of presented image I<sub>i</sub>.</p>
@@ -1443,7 +1554,7 @@
</section>
<section>
- <h3>Paint Text</h3>
+ <h4>Paint Text</h4>
<p>For each glyph displayed in intermediate synchronic document E<sub>n</sub>, the Presentation Compositor SHALL:</p>
@@ -1478,7 +1589,8 @@
</ul>
<figure>
- <img src="text-render-example-figure-2.png" alt="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">
<figcaption>
Example of Presentation Compositor Behavior for Text Rendering
@@ -1488,8 +1600,8 @@
<p>The duration DUR<sub>T</sub>(E<sub>n</sub>) for painting the text of an intermediate synchronic document E<sub>n</sub>
in the Presentation Buffer is as follows:</p>
- <p>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>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>Where:</p>
@@ -1520,8 +1632,8 @@
<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>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>
<table class='simple'>
<thead>
@@ -1575,9 +1687,9 @@
<aside class='example'>
GCpy effectively sets a limit on animating glyphs. 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 intermediate synchronic document), 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
+ 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 intermediate synchronic document), 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
approximately 12 s<sup>-1</sup> ÷ (1 + ( 160 × 0.05<sup>2</sup> )) = 8.6 times per second.
</aside>
@@ -1587,6 +1699,108 @@
fontSize of 108 px (10% of 1080 px and NRGA(G<sub>i</sub>) = 0.01) could be rendered every second.
</aside>
</section>
+ </section><!-- start CFF-TT 1.0.7 -->
+
+ <section>
+ <h3>Layout Model</h3>
+
+ <section>
+ <h4>General</h4>
+
+ <p>The height and width of the area occupied by text within a region depend on line height as well as the width of, and
+ spacing between (kerning), individual glyphs. The following allows the area occupied by text to be precisely determined,
+ and thus region extent to be set such that text flows without clipping.</p>
+ </section>
+
+ <section>
+ <h4>Reference Fonts</h4>
+
+ <p>Glyphs that match a computed font families and code points combination listed in the table below SHALL be laid out using
+ a font with metrics equal to the metrics of the corresponding reference font, unless the glyph is not defined by the
+ reference font.</p>
+
+ <table class='simple'>
+ <thead>
+ <tr>
+ <th>Computed Font Family</th>
+
+ <th>Code Points</th>
+
+ <th>Reference Font</th>
+ </tr>
+ </thead>
+
+ <tbody>
+ <tr>
+ <td>monospaceSerif</td>
+
+ <td>
+ All code points specified in <a href="#recommended-unicode-code-points-per-language"></a>
+ </td>
+
+ <td>
+ <a href=
+ "http://www.microsoft.com/typography/fonts/family.aspx?FID=10">http://www.microsoft.com/typography/fonts/family.aspx?FID=10</a>
+ (Courier New)
+ </td>
+ </tr>
+
+ <tr>
+ <td>proportionalSansSerif</td>
+
+ <td>
+ All code points specified in <a href="#recommended-unicode-code-points-per-language"></a>, excluding the code
+ points defined for Semitic languages alone.
+ </td>
+
+ <td>
+ <a href=
+ "http://www.microsoft.com/typography/fonts/family.aspx?FID=8">http://www.microsoft.com/typography/fonts/family.aspx?FID=8</a>
+ (Arial) or <a href=
+ "http://www.linotype.com/en/526/Helvetica-family.html">http://www.linotype.com/en/526/Helvetica-family.html</a>
+ (Helvetica)
+ </td>
+ </tr>
+ </tbody>
+ </table>
+
+ <p class="note">Implementations can use use fonts other than those specified above. Two fonts with equal metrics can have a
+ different appearance, but flow identically.</p>
+
+ <p class="note">proportionalSansSerif is not used in practice for Hebrew and Arabic captions and subtitles.</p>
+ </section>
+
+ <section>
+ <h4>Line Height and Centering</h4>
+
+ <p>The computed value of <code>tts:lineHeight</code> shall be equal to 120% if tts:lineHeight="normal".</p>
+
+ <p><code>tts:lineHeight</code> values expressed using the percentage metric shall be relative to the largest font size on
+ the line.</p>
+
+ <aside class="example">
+ Assuming that the root container is ultimately rendered at a 1920×1080 resolution and
+ <code>tts:lineHeight</code>="100%", a line mixing glyphs with font size of "10px", "36px"
+ and "1c" has a computed value of <code>tts:lineHeight</code> equal to "72px".
+ </aside>
+
+ <p>If the computed value of <code>tts:lineHeight</code> is not supported, then a presentation processor SHALL use the next
+ highest supported value.</p>
+
+ <aside class="example">
+ Three lines of 12px characters with <code>tts:lineHeight</code>="normal" has a height of 45px = ⌈12px *
+ 120%⌉ × 3 assuming line heights have 1px resolution.
+ </aside>
+
+ <p>White space in excess of the largest font size on the line SHALL be allocated evenly top and bottom (half-leading). Note
+ that inter-baseline separation includes any leading.</p><!-- end CFF-TT 1.0.7 -->
+
+ <p class="note">Since font size can change on a line and text can wrap, it is necessary to first determine the glyphs
+ present on a line before determining line height.</p>
+
+ <p class="note">Glyphs that do not extend beyond the specific <code>tts:fontSize</code> value will not clip top or
+ bottom.</p>
+ </section>
</section>
</section>
@@ -1821,8 +2035,8 @@
<td>Danish, Dutch/Flemish, English, German, Icelandic, Norwegian, Swedish</td>
<td>"da", "nl", "en", "de", "is", "no", "sv"</td>
-
- <td>As defined in the table above.</td>
+
+ <td>As defined in the table above.</td>
</tr>
<tr>
@@ -2311,7 +2525,8 @@
<section class='appendix'>
<h2>Schema</h2>
- <p><em>TBD</em></p>
+
+ <p><em>TBD</em></p>
</section>
</body>
</html>