Please check theerrata for any errors or issues reported since publication.
The English version of this specification is the only normative version. Non-normativetranslations may also be available.
Copyright © 2018W3C® (MIT,ERCIM,Keio,Beihang).W3Cliability,trademark anddocument use rules apply.
This document specifies two profiles of [TTML1]: 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.
It is feasible to create documents that simultaneously conform to both [ttml10-sdp-us] and the text-only profile.
The document defines extensions to [TTML1], as well as incorporates extensions specified in [ST2052-1] and [EBU-TT-D].
Both profiles are based on [SUBM].
Status Update (9 April 2020): In the document header, the "Latest IMSC1 Recommendation" link (pointing to the specific "TTML Profiles for Internet Media Subtitles and Captions 1.0.1" Recommendation) was replaced by a "Latest IMSC Recommendation" link pointing to the most recently published Recommendation in the "TTML Profiles for Internet Media Subtitles and Captions" family of Recommendations.
This section describes the status of this document at the time of its publication. Other documents may supersede this document. A list of currentW3C publications and the latest revision of this technical report can be found in theW3C technical reports index at https://www.w3.org/TR/.This document was published by theTimed Text Working Group as a Recommendation. Comments regarding this document are welcome. Please file them in thegithub repository.
Please see the Working Group'simplementation report.
A list of non-substantive changes applied since theProposed Recommendation is found atchanges-summary.txt. For convenience, a diff is offered at theW3C HTML Diff service.
This document has been reviewed byW3C Members, by software developers, and by otherW3C groups and interested parties, and is endorsed by the Director as aW3C Recommendation. It is a stable document and may be used as reference material or cited from another document.W3C's role in making the Recommendation is to draw attention to the specification and to promote its widespread deployment. This enhances the functionality and interoperability of the Web.
This document was produced by a group operating under theW3C Patent Policy.W3C maintains apublic list of any patent disclosures made in connection with the deliverables of the group; that page also includes instructions for disclosing a patent. An individual who has actual knowledge of a patent which the individual believes containsEssential Claim(s) must disclose the information in accordance withsection 6 of theW3C Patent Policy.
This document is governed by the1 February 2018W3C Process Document.
This specification defines two profiles of [TTML1]: 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.
The text profile is a syntactic superset of [ttml10-sdp-us], and a document can simultaneously conform to both [ttml10-sdp-us] and the text-only profile.
The document defines extensions to [TTML1], as well as incorporates extensions specified in [ST2052-1] and [EBU-TT-D].
This version of the specification makes editorial corrections and adds two optional features (6.7.5ittp:activeArea and6.7.6itts:fillLineGap) over theRecommendation dated 21 April 2016.Processors anddocument instances that conform to theRecommendation dated 21 April 2016 also conform to this version of the specification.
This specification uses the same conventions as [TTML1] for the specification of parameter attributes, styling attributes and metadata elements. In particular:
All content of this specification that is not explicitly marked as non-normative is considered to be normative. If a section or appendix header contains the expression "non-normative", then the entirety of the section or appendix is considered non-normative.
This specification usesFeature andExtension designations as defined in Appendices D.1 and E.1 at [TTML1]:
If the name of an element referenced in this specification is not namespace qualified, then the TT namespace applies (see6.3Namespaces.)
Default Region. See Section 9.3.1 at [TTML1].
Document Instance. See Section 2.2 at [TTML1].
Extension. See Section 2.2 at [TTML1].
Feature. See Section 2.2 at [TTML1].
Intermediate Synchronic Document. See Section 9.3.2 at [TTML1].
Document Interchange Context. See Section 2.2 at [TTML1].
Document Processing Context. See Section 2.2 at [TTML1].
Linear White-Space. See Section 2.3 at [TTML1].
Processor. Either aPresentation processor or aTransformation processor.
Presentation processor. See Section 2.2 at [TTML1].
Transformation processor. See Section 2.2 at [TTML1].
Related Media Object. See Section 2.2 at [TTML1].
Related Video Object. ARelated Media Object that consists of a sequence of image frames, each a rectangular array of pixels.
Root Container Region. See Section 2.2 at [TTML1].
Text Alternative. As defined in [WCAG20].
As well as sections marked as non-normative, all authoring guidelines, diagrams, examples, and notes in this specification are non-normative. Everything else in this specification is normative.
The key wordsMAY,SHALL,SHALL NOT,SHOULD, andSHOULD NOT are to be interpreted as described in [RFC2119].
ADocument Instance that conforms to a profile defined herein:
ADocument Instance, by definition, satisfies the requirements of Section 3.1 at [TTML1], and hence aDocument Instance that conforms to a profile defined herein is also a conforming TTML1 Document Instance.
Apresentation processor that conforms to a profile defined in this specification:
Atransformation processor that conforms to a profile defined in this specification:
The use of the termpresentation processor (transformation processor) within this specification does not imply conformance to the DFXP Presentation Profile (DFXP Transformation Profile) specified in [TTML1]. In other words, it is not considered an error for apresentation processor (transformation processor) to conform to a profile defined in this specification without also conforming to the DFXP Presentation Profile (DFXP Transformation Profile).
This specification does not specifypresentation processor ortransformation processor behavior when processing or transforming a non-conformantDocument Instance.
Thepermitted andprohibited dispositions do not refer to the specification of attp:feature
orttp:extension
element as being permitted or prohibited within attp:profile
element.
Notwithstanding special cases, e.g. aDocument Instance that contains nop
,span
,br
element and nosmpte:backgroundImage
attribute, it is generally not possible to construct aDocument Instance that conforms to theText Profile andImage Profile simultaneously, and it is not possible to construct aDocument Instance that results in the presentation of both text data and image data.
In applications that require subtitle/caption content in image form to be simultaneously available in text form, two distinctDocument Instances, one conforming to theText Profile and the other conforming to theImage Profile,SHOULD be offered. In addition, theText ProfileDocument InstanceSHOULD be associated with theImage ProfileDocument Instance such that, when image content is encountered, assistive technologies have access to its corresponding text form. The method by which this association is made is left to each application.
Theittm:altText
element specified6.7.4ittm:altText also allows text equivalent string to be associated with an image, e.g. to support indexation of the content and also facilitate quality checking of the document during authoring.
AnnexD.WCAG Considerations specifically discusses this specification in the context of the [WCAG20] guidelines.
TheText Profile consists of Sections6.Common Constraints and7.Text Profile Constraints.
TheImage Profile consists of Sections6.Common Constraints and8.Image Profile Constraints.
For the purpose of content processing, the determination of the resolved profileSHOULD take into account both the signaled profile, as defined in6.9Profile Signaling, and profile metadata, as designated by either (or both) theDocument Interchange Context or (and) theDocument Processing Context, whichMAY entail inspecting document content.
If the resolved profile is not a profile supported by theProcessor but is feasibly interoperable with theText Profile, then the resolved profile is theText Profile; otherwise, if the resolved profile is not a profile supported by theProcessor but is feasibly interoperable with theImage Profile, then the resolved profile is theImage Profile.
If the resolved profile is a profile supported by theProcessor, then theProcessorSHOULD process theDocument Instance according to the resolved profile. If the resolved profile is neitherText Profile norImage Profile, processing is outside the scope of this specification.
If the resolved profile is undetermined or not supported by theProcessor, then theProcessorSHOULD nevertheless process theDocument Instance using one of its supported profiles, with a preference for theText Profile over theImage Profile; otherwise, processingMAY be aborted.
ADocument InstanceSHALL use UTF-8 character encoding as specified in [UNICODE].
ADocument InstanceMAY contain elements and attributes that are neither specifically permitted nor forbidden by a profile.
Atransformation processorSHOULD preserve such elements or attributes whenever possible.
Document Instances remain subject to the content conformance requirements specified at Section 3.1 of [TTML1]. In particular, aDocument Instance can contain elements and attributes not in any TT namespace, i.e. in foreign namespaces, since such elements and attributes are pruned by the algorithm at Section 4 of [TTML1] prior to evaluating content conformance.
The following namespaces (see [xml-names]) are used in this specification:
Name | Prefix | Value | Defining Specification |
---|---|---|---|
XML | xml | http://www.w3.org/XML/1998/namespace | [xml-names] |
TT | tt | http://www.w3.org/ns/ttml | [TTML1] |
TT Parameter | ttp | http://www.w3.org/ns/ttml#parameter | [TTML1] |
TT Styling | tts | http://www.w3.org/ns/ttml#styling | [TTML1] |
TT Feature | none | http://www.w3.org/ns/ttml/feature/ | [TTML1] |
SMPTE-TT Extension | smpte | http://www.smpte-ra.org/schemas/2052-1/2010/smpte-tt | [ST2052-1] |
EBU-TT Styling | ebutts | urn:ebu:tt:style | [EBU-TT-D] |
EBU-TT Metadata | ebuttm | urn:ebu:tt:metadata | [EBU-TT-D] |
IMSC Styling | itts | http://www.w3.org/ns/ttml/profile/imsc1#styling | This specification |
IMSC Parameter | ittp | http://www.w3.org/ns/ttml/profile/imsc1#parameter | This specification |
IMSC Metadata | ittm | http://www.w3.org/ns/ttml/profile/imsc1#metadata | This specification |
IMSC Extension | none | http://www.w3.org/ns/ttml/profile/imsc1/extension/ | This specification |
IMSC 1.0 Text Profile Designator | none | http://www.w3.org/ns/ttml/profile/imsc1/text | This specification |
IMSC 1.0 Image Profile Designator | none | http://www.w3.org/ns/ttml/profile/imsc1/image | This specification |
The namespace prefix values defined above are for convenience andDocument InstancesMAY use any prefix value that conforms to [xml-names].
The namespaces defined by this specification are mutable [namespaceState]; all undefined names in these namespaces are reserved for future standardization by theW3C.
ADocument InstanceSHOULD be authored assuming strict clipping of content that falls out of region areas, regardless of the computed value oftts:overflow
for the region.
As specified in [TTML1],tts:overflow
has no effect on the extent of the region, and hence the total normalized drawing area S(En) at9.3Paint Regions.
ADocument InstanceMAY be associated with aRelated Video Object.
While this specification contains specific provisions when aDocument Instance is associated with aRelated Video Object, it does not prevent the use of aDocument Instance with other kinds ofRelated Media Object, e.g. an audio object.
Eachintermediate synchronic document of theDocument Instance is intended to be displayed on a specific frame and removed on a specific frame of theRelated Video Object.
When mapping a media time expression M to a frame F of aRelated Video Object, e.g. for the purpose of rendering aDocument Instance onto theRelated Video Object, thepresentation processorSHALL map M to the frame F with the presentation time that is the closest to, but not less, than M.
In typical scenario, the same video program (theRelated Video Object) will be used forDocument Instance authoring, delivery and user playback. The mapping from media time expression toRelated Video Object above allows the author to precisely associate subtitle video content with video frames, e.g. around scene transitions. In circumstances where the video program is downsampled during delivery, the application can specify that, at playback, the relative video object be considered the delivered video program upsampled to is original rate, thereby allowing subtitle content to be rendered at the same temporal locations it was authored.
Theittp:aspectRatio
attributes allows authorial control of the mapping of theRoot Container Region of aDocument Instance to each image frame of theRelated Video Object.
If present, theittp:aspectRatio
attributeSHALL conform to the following syntax:
ittp:aspectRatio : numerator denominator// with int(numerator) != 0 and int(denominator) != 0// where int(s) parses string s as a decimal integer.numerator | denominator : <digit>+ // no linear white-space is implied or permitted // between each <digit> token |
TheRoot Container Region of aDocument InstanceSHALL be mapped to each image frame of theRelated Video Object according to the following:
Ifittp:aspectRatio
is present, theRoot Container RegionSHALL be mapped to a rectangular area within the image frame such that:
ittp:aspectRatio
,Otherwise, theRoot Container Region of aDocument InstanceSHALL be mapped to the image frame in its entirety.
Anittp:aspectRatio
attribute is considered to be significant only when specified on thett
element.
Region withxml:id="A"
in the following document would be positioned 20% from the left edge of an image frame with an aspect ratio of 16:9, or 10% from the left edge of an image frame with an aspect ratio of 4:3.
<ttxmlns="http://www.w3.org/ns/ttml"xmlns:ttm="http://www.w3.org/ns/ttml#metadata"xmlns:tts="http://www.w3.org/ns/ttml#styling"xmlns:ttp="http://www.w3.org/ns/ttml#parameter"xmlns:ittp="http://www.w3.org/ns/ttml/profile/imsc1#parameter"ittp:aspectRatio="4 3"tts:extent="400px 300px"ttp:profile="..." > ...<regionxml:id="A"tts:origin="40px 10px"tts:extent="320px 10px"> ...</tt>
In other words,tts:extent
, when present on thett
element, determines the size of"px"
units relative to theRoot Container Region.ittp:aspectRatio
is independently used to map theRoot Container Region to each image frame of theRelated Video Object.
Theittp:aspectRatio
parameter effectively defines the display aspect ratio (DAR) of the root container, while thetts:extent
style property on the root element effectively defines the storage aspect ratio (SAR) of theRoot Container Region. As a result, when bothtts:extent
andittp:aspectRatio
are specified on thett
element, the effective pixel aspect ratio (PAR) of theRoot Container Region is equal to the ratio of the DAR to the SAR.
ittp:aspectRatio="4 3"
, allowing the combination to be displayed on both 4:3 and 16:9 display devices while preserving both caption/subtitles content and the relative position of caption/subtitles with video elements.Aprogressively decodable Document Instance is structured to facilitate presentation before the document is received in its entirety, and can be identified usingittp:progressivelyDecodable
attribute.
Aprogressively decodable Document Instance is aDocument Instance that conforms to the following:
head
element;p
element that lexically precedes anyp
element thatB includes;p
; andIf present, theittp:progressivelyDecodable
attributeSHALL conform to the following syntax:
ittp:progressivelyDecodable :"true" |"false" |
Anittp:progressivelyDecodable
attribute is considered to be significant only when specified on thett
element.
If not specified, the value ofittp:progressivelyDecodable
SHALL be considered to be equal to"false"
.
ADocument Instance for which the computed value ofittp:progressivelyDecodable
is"true"
SHALL be aprogressively decodable Document Instance.
ADocument Instance for which the computed value ofittp:progressivelyDecodable
is"false"
is neither asserted to be aprogressively decodable Document Instance nor asserted not to be a progressively decodableDocument Instance.
<ttxmlns="http://www.w3.org/ns/ttml"xmlns:ttm="http://www.w3.org/ns/ttml#metadata"xmlns:tts="http://www.w3.org/ns/ttml#styling"xmlns:ttp="http://www.w3.org/ns/ttml#parameter"xmlns:ittp="http://www.w3.org/ns/ttml/profile/imsc1#parameter"ittp:progressivelyDecodable="true"ttp:profile="..." > ...</tt>
[TTML1] specifies explicitly referencing of elements identified usingxml:id
in the following circumstances:
body
referencingregion
elements. In this case, Requirement 4 above is always satisfied.body
referencingstyle
elements. In this case, Requirement 4 above is always satisfied.region
element referencingstyle
elements. In this case, Requirement 4 above is always satisfied.style
element referencing otherstyle
elements. In this case, Requirement 4 provides an optimization ofstyle
element ordering within thehead
element.ttm:actor
element referencing attm:agent
element. In this case, Requirement 4 provides optimization of metadata elements ordering within the document.ttm:agent
elements using thettm:agent
attribute. In this case, Requirement 4 provides optimization of metadata elements ordering within the document.itts:forcedDisplay
can be used to hide content whose computed value oftts:visibility
is"visible"
when the processor has been configured to do so via the application parameterdisplayForcedOnlyMode
.
If and only if the value ofdisplayForcedOnlyMode
is"true"
, a content element with aitts:forcedDisplay
computed value of"false"
SHALL NOT produce any visible rendering, regardless of the computed value oftts:visibility
.
Theitts:forcedDisplay
attribute has no effect on content layout or composition, but merely determines whether composed content is visible or not.
Theitts:forcedDisplay
attributeSHALL conform to the following:
Values: | false | true |
Initial: | false |
Applies to: | body ,div ,p ,region ,span |
Inherited: | yes |
Percentages: | N/A |
Animatable: | discrete |
AnnexC.Forced content (non-normative) illustrates the use ofitts:forcedDisplay
in an application in which a single document contains both hard of hearing captions and translated foreign language subtitles, usingitts:forcedDisplay
to display translation subtitles always, independently of whether the hard of hearing captions are displayed or hidden.
Thepresentation processorSHALL accept an optional boolean parameter calleddisplayForcedOnlyMode
, whose valueMAY be set by a context external to thepresentation processor. If not set, the value ofdisplayForcedOnlyMode
SHALL be assumed to be equal to"false"
.
The algorithm for setting thedisplayForcedOnlyMode
parameter based on the circumstances under which theDocument Instance is presented is left to the application.
<?xml version="1.0" encoding="UTF-8"?><ttxml:lang="en"xmlns="http://www.w3.org/ns/ttml"xmlns:ttm="http://www.w3.org/ns/ttml#metadata"xmlns:tts="http://www.w3.org/ns/ttml#styling"xmlns:ttp="http://www.w3.org/ns/ttml#parameter"xmlns:ittp="http://www.w3.org/ns/ttml/profile/imsc1#parameter"xmlns:itts="http://www.w3.org/ns/ttml/profile/imsc1#styling"ittp:aspectRatio="16 9"ttp:profile="http://www.w3.org/ns/ttml/profile/imsc1/text"><head><layout><regionxml:id="r1"tts:showBackground="whenActive"tts:origin="10% 2%"tts:extent="80% 10%"tts:color="white"itts:forcedDisplay="true"tts:backgroundColor="black"/><regionxml:id="r2"tts:showBackground="whenActive"tts:origin="10% 80%"tts:extent="80% 10%"tts:color="white"tts:backgroundColor="black"/></layout></head><body><div><pregion="r1"begin="1s"end="6s">Lycée</p><!-- the following will not appear if displayForcedOnlyMode='true' --><pregion="r2"begin="4s"end="6s">Nous étions inscrits au même lycée.</p></div></body></tt>
As specified in [TTML1], the background of a region can be visible even if the computed value oftts:visibility
equals"hidden"
for all active content within. The background of a region for whichitts:forcedDisplay
equals"true"
can therefore remain visible even ifitts:forcedDisplay
equals"false"
for all active content elements within the region anddisplayForcedOnlyMode
equals"true"
. Authors can avoid this situation, for instance, by ensuring that content elements and the regions that they are flowed into always have the same value ofitts:forcedDisplay
.
Althoughitts:forcedDisplay
, like all the TTML style attributes, has no defined semantics on abr
content element,itts:forcedDisplay
will apply to abr
content element if it is either defined on an ancestor content element of thebr
content element or it is applied to a region element corresponding to a region that thebr
content element is being flowed into.
It is expected that the functionality ofitts:forcedDisplay
will be mapped to a conditional style construct in a future revision of this specification.
The presentation semantics associated withitts:forcedDisplay
are intended to be compatible with those associated with theforcedDisplayMode
attribute defined in [CFF].
ittm:altText
allows an author to provide a text string equivalent for an element, typically an image. This text equivalentMAY be used to support indexing of the content and also facilitate quality checking of the document during authoring.
Theittm:altText
elementSHALL conform to the following syntax:
<ittm:altTextxml:id =IDxml:lang =stringxml:space =(default|preserve) {anyattributenotinthedefaultnamespace,anyTTnamespaceoranyIMSCnamespace}> Content: #PCDATA</ittm:altText> |
Theittm:altText
elementSHALL be a child of themetadata
element.
8.Image Profile Constraints specifies the use of theittm:altText
element with images.
<?xml version="1.0" encoding="UTF-8"?><ttxml:lang="fr"xmlns="http://www.w3.org/ns/ttml"xmlns:ttp="http://www.w3.org/ns/ttml#parameter"ttp:profile="http://www.w3.org/ns/ttml/profile/imsc1/image"xmlns:tts="http://www.w3.org/ns/ttml#styling"xmlns:smpte="http://www.smpte-ra.org/schemas/2052-1/2010/smpte-tt"xmlns:ittm="http://www.w3.org/ns/ttml/profile/imsc1#metadata"tts:extent="320px 240px"><head><layout><regionxml:id="area1"tts:origin="20px 215px"tts:extent="180px 20px"/></layout></head><body><divbegin="1s"end="9s"region="area1"smpte:backgroundImage="altText1-img.png"><metadata><ittm:altText>Nous étions inscrits au même lycée.</ittm:altText></metadata></div></body></tt>
In contrast to the common use ofalt
attributes in [HTML5], theittm:altText
attribute content is not intended to be displayed in place of the element if the element is not loaded. Theittm:altText
attribute content can however be read and used by assistive technologies.
TheActive Area of aDocument Instance is the area within theRoot Container Region that the author intends to be minimally visible to the viewer. This area typically fully contains all of the referenced regions within theDocument Instance.
Under normal circumstances, the entirety of theRoot Container Region is presented. However, under special circumstances, such as when therelated video object is cropped, a system can, for instance, use theittp:activeArea
parameter to avoid cropping areas of theRoot Container Region that are intended to be visible to the viewer. The specific behavior of the system is however left undefined intentionally: the system can select a presentation mode appropriate to the display shape, user preferences, etc. Theittp:activeArea
is analogous to the Active Format Description (AFD) metadata commonly used in broadcast applications.
TheActive Area is specified using theittp:activeArea
attribute.
If present, theittp:activeArea
attributeSHALL conform to the following syntax:
ittp:activeArea : leftOffset topOffset width heightleftOffset | topOffset | width | height :<percentage> // where<percentage> is non-negative and not greater than 100%. |
Thewidth
percentage value is relative to the width of theRoot Container Region.
Theheight
percentage value is relative to the height of theRoot Container Region.
Thewidth
andheight
percentage values are the width and height of theActive Area.
TheleftOffset
andtopOffset
percentage values specify an alignment point between the root container and theActive Area.
The origin top left {x, y} percentage coordinates of theActive AreaSHALL be calculated as follows:
x = leftOffset * (1 - width/100)y = topOffset * (1 - height/100)
The use of left and top offset positions is co-incident with the [css3-background]background-position
property where a two percentage value position is used.
The syntax of theittp:activeArea
parameter is such that theActive Area cannot extend outside theRoot Container Region in any dimension.
Theittp:activeArea
attribute is considered to be significant only when specified on thett
element.
If theittp:activeArea
attribute is not specified, theActive AreaSHALL be theRoot Container Region.
<?xml version="1.0" encoding="UTF-8"?><ttxml:lang="en"xmlns="http://www.w3.org/ns/ttml"xmlns:ttm="http://www.w3.org/ns/ttml#metadata"xmlns:tts="http://www.w3.org/ns/ttml#styling"xmlns:ttp="http://www.w3.org/ns/ttml#parameter"xmlns:ittp="http://www.w3.org/ns/ttml/profile/imsc1#parameter"ittp:activeArea="50% 50% 80% 80%"tts:extent="640px 480px"ttp:profile="http://www.w3.org/ns/ttml/profile/imsc1/text"><head><layout><regionxml:id="area1"tts:origin="10% 10%"tts:extent="80% 10%"tts:backgroundColor="blue"tts:displayAlign="center"tts:textAlign="center"tts:color="white"tts:fontSize="24px"/><regionxml:id="area2"tts:origin="10% 80%"tts:extent="80% 10%"tts:backgroundColor="blue"tts:displayAlign="center"tts:textAlign="center"tts:color="white"tts:fontSize="24px"/><regionxml:id="area3"tts:origin="10% 92%"tts:extent="80% 6%"tts:backgroundColor="red"tts:displayAlign="center"tts:textAlign="center"tts:color="yellow"tts:fontSize="24px"/></layout></head><body><div><pregion="area1"begin="0s"end="6s">This region is within the editorial area.</p><pregion="area2"begin="0s"end="6s">This region is within the editorial area.</p><pregion="area3"begin="0s"end="6s">This region is not.</p></div></body></tt>
Theitts:fillLineGap
attribute allows the author to control the application of background between successive line areas.
Ifitts:fillLineGap="true"
then the background of each inline area generated by descendant spans of thep
elementSHALL extend to thebefore-edge andafter-edge of its containing line area (before-edge andafter-edge are defined at Section 4.2.3 of [XSL11]).
Theitts:fillLineGap
attributeSHALL conform to the following:
Values: | false | true |
Initial: | false |
Applies to: | p |
Inherited: | yes |
Percentages: | N/A |
Animatable: | discrete |
In the following example, thep
specifiesitts:fillLineGap="true"
, and, as a result, no gap exists between its lines.
<?xml version="1.0" encoding="UTF-8"?><ttxmlns="http://www.w3.org/ns/ttml"xmlns:ttp="http://www.w3.org/ns/ttml#parameter"xmlns:tts="http://www.w3.org/ns/ttml#styling"xmlns:itts="http://www.w3.org/ns/ttml/profile/imsc1#styling"ttp:timeBase="media"xml:lang="en"ttp:cellResolution="50 30"ttp:profile="http://www.w3.org/ns/ttml/profile/imsc1/text"><head><styling><stylexml:id="spanStyle"tts:color="#ffffff"tts:backgroundColor="#000000" /><stylexml:id="spanStyleSmall"tts:color="#000000"tts:backgroundColor="#dfbb02"tts:fontSize="50%"/><stylexml:id="spanStyleBig"tts:color="#ffffff"tts:backgroundColor="#b75800"tts:fontSize="150%"/><stylexml:id="paragraphStyle"tts:fontFamily="monospaceSerif"tts:textAlign="center"tts:fontSize="200%"tts:lineHeight="165%"itts:fillLineGap="true"/></styling><layout><regionxml:id="bottom"tts:origin="10% 10%"tts:extent="80% 80%"tts:displayAlign="after" /></layout></head><body><div><pxml:id="subtitle1"region="bottom"begin="00:00:00.000"end="00:00:30.000"style="paragraphStyle"><spanstyle="spanStyle">##Line gaps##</span><br/><spanstyle="spanStyle">The quick</span><spanstyle="spanStyleBig">brown</span><spanstyle="spanStyle"> fox</span><br/><spanstyle="spanStyle">jumps over the</span><spanstyle="spanStyleSmall">lazy</span><spanstyle="spanStyle"> dog</span><br/><spanstyle="spanStyle">##Line gaps##</span></p></div></body></tt>
itts:fillLineGap="true"
removed (left) or preserved (right). Blue lines have been added to show thebefore-edge andafter-edge of each line area, which are coincident for successive line areas.Also, as illustrated in the following example, because the line areas of successivep
elements are contiguous, no gap exists between two successivep
elements whereitts:fillLineGap="true"
.
<?xml version="1.0" encoding="UTF-8"?><ttxmlns="http://www.w3.org/ns/ttml"xmlns:ttp="http://www.w3.org/ns/ttml#parameter"xmlns:tts="http://www.w3.org/ns/ttml#styling"xmlns:itts="http://www.w3.org/ns/ttml/profile/imsc1#styling"ttp:timeBase="media"xml:lang="en"ttp:cellResolution="50 30"ttp:profile="http://www.w3.org/ns/ttml/profile/imsc1/text"><head><styling><stylexml:id="spanStyle"tts:color="#ffffff"tts:backgroundColor="#000000" /><stylexml:id="paragraphStyleNoGap"tts:fontFamily="monospaceSerif"tts:textAlign="center"tts:fontSize="200%"tts:lineHeight="165%"itts:fillLineGap="true"/><stylexml:id="paragraphStyle"tts:fontFamily="monospaceSerif"tts:textAlign="center"tts:fontSize="200%"tts:lineHeight="165%"itts:fillLineGap="false"/></styling><layout><regionxml:id="bottom"tts:origin="10% 10%"tts:extent="80% 80%"tts:displayAlign="after" /><regionxml:id="top"tts:origin="10% 10%"tts:extent="80% 80%"tts:displayAlign="before" /></layout></head><body><divregion="bottom"begin="00:00:00.000"end="00:00:30.000"><pxml:id="subtitle1"style="paragraphStyle"><spanstyle="spanStyle">Paragraph 1</span></p><pxml:id="subtitle1"style="paragraphStyle"><spanstyle="spanStyle">Paragraph 2</span></p></div><divregion="top"begin="00:00:00.000"end="00:00:30.000"><pxml:id="subtitle1"style="paragraphStyleNoGap"><spanstyle="spanStyle">Paragraph 1</span></p><pxml:id="subtitle1"style="paragraphStyleNoGap"><spanstyle="spanStyle">Paragraph 2</span></p></div></body></tt>
itts:fillLineGap="true"
on the two paragraphs of the top region,itts:fillLineGap="false"
on the two paragraphs of the bottom region.Apresented region is a temporally active region that satisfies the following conditions:
tts:opacity
is not equal to"0.0"
; andtts:display
is not"none"
; andtts:visibility
is not"hidden"
; andtts:showBackground
is equal to"always"
and the computed value oftts:backgroundColor
has non-transparent alpha.All regionsSHALL NOT extend beyond theRoot Container Region, i.e. every coordinate in the set of coordinates of each region is also in the set of coordinates of theRoot Container Region.
No twopresented regions in a givenintermediate synchronic documentSHALL overlap, i.e. the intersection of the sets of coordinates within eachpresented region is empty.
The number ofpresented regions in a givenintermediate synchronic documentSHALL NOT be greater than 4.
Thettp:profile
attributeSHOULD be present on thett
element and equal to the designator of the IMSC 1.0 profile to which theDocument Instance conforms, and thettp:profile
elementSHOULD NOT be present, unless:
theDocument Instance also conforms to [EBU-TT-D], in which case neither thettp:profile
attribute nor thettp:profile
element are present, and, instead, the designator of the IMSC 1.0 profile to which theDocument Instance conforms and the URI"urn:ebu:tt:distribution:2014-01"
SHOULD each be carried in anebuttm:conformsToStandard
element as specified in [EBU-TT-D] and illustrated inI.2EBU-TT-D; or
Multiple otherebuttm:conformsToStandard
elements can be present in addition to the two recommended above, indicating simultaneous conformance to profiles defined in other specifications, including future versions of this specification.
ttp:profile
attribute is not present and thettp:profile
element is present, as illustrated inI.3SDP-US.Thettp:profile
andebuttm:conformsToStandard
elementsSHALL NOT signal conformance to bothImage Profile andText Profile in a givenDocument Instance.
ItSHALL be possible to apply the Hypothetical Render Model specified in Section9.Hypothetical Render Model to any sequence of consecutiveintermediate synchronic documents without error as defined in Section9.2General.
See4.Conformance for a definition ofpermitted,prohibited andoptional.
Feature | Disposition | Additional provision |
---|---|---|
Relative to the TT Feature namespace | ||
#animation | permitted | |
#backgroundColor-block | permitted | |
#backgroundColor-region | permitted | |
#cellResolution | permitted | If theDocument Instance includes any length value that uses thec expression,ttp:cellResolution SHOULD be present on thett element. |
#clockMode | prohibited | |
#clockMode-gps | prohibited | |
#clockMode-local | prohibited | |
#clockMode-utc | prohibited | |
#core | permitted | |
#display-block | permitted | |
#display-inline | permitted | |
#display-region | permitted | |
#display | permitted | |
#dropMode | prohibited | |
#dropMode-dropNTSC | prohibited | |
#dropMode-dropPAL | prohibited | |
#dropMode-nonDrop | prohibited | |
#extent-root | permitted | If theDocument Instance includes any length value that uses thepx expression,tts:extent SHALL be present on thett element. |
#extent | permitted | |
#frameRate | permitted | If theDocument Instance includes any clock time expression that uses theframes term or any offset time expression that uses thef metric, thettp:frameRate attributeSHALL be present on thett element. |
#frameRateMultiplier | permitted | |
#layout | permitted | |
#length-cell | permitted | c unitsSHALL NOT be present outside of the value ofebutts:linePadding . |
#length-integer | permitted | |
#length-negative | prohibited | |
#length-percentage | permitted | |
#length-pixel | permitted | |
#length-positive | permitted | |
#length-real | permitted | |
#length | permitted | |
#markerMode | prohibited | |
#markerMode-continuous | prohibited | |
#markerMode-discontinuous | prohibited | |
#metadata | permitted | |
#opacity | permitted | |
#origin | permitted | |
#overflow | permitted | |
#overflow-visible | permitted | |
#pixelAspectRatio | prohibited | |
#presentation | permitted | See constraints applied to#profile. |
#profile | permitted | See6.9Profile Signaling. |
#showBackground | permitted | |
#structure | permitted | |
#styling-chained | permitted | |
#styling-inheritance-content | permitted | |
#styling-inheritance-region | permitted | |
#styling-inline | permitted | |
#styling-nested | permitted | |
#styling-referential | permitted | |
#styling | permitted | |
#subFrameRate | prohibited | |
#tickRate | permitted | ttp:tickRate SHALL be present on thett element if the document contains any time expression that uses thet metric. |
#timeBase-clock | prohibited | |
#timeBase-media | permitted | NOTE: [TTML1] specifies that the default timebase is |
#timeBase-smpte | prohibited | |
#time-clock-with-frames | permitted | |
#time-clock | permitted | |
#time-offset-with-frames | permitted | |
#time-offset-with-ticks | permitted | |
#time-offset | permitted | |
#timeContainer | permitted | |
#timing | permitted |
|
#transformation | permitted | See constraints at#profile. |
#visibility-block | permitted | |
#visibility-region | permitted | |
#writingMode-horizontal-lr | permitted | |
#writingMode-horizontal-rl | permitted | |
#writingMode-horizontal | permitted | |
#zIndex | permitted | NOTE: While permitted, this feature has no effect since, as specified at6.8.2Dimensions and Position, regions do not overlap in aDocument Instance. |
Extension | Disposition | Provisions |
Relative to the IMSC Extension namespace | ||
#aspectRatio | permitted | |
#forcedDisplay | permitted | |
#progressivelyDecodable | permitted | |
#altText | permitted | |
#activeArea | optional | NOTE: This feature is optional such that aprocessor that conforms to the earlier version of this specification also conforms to this version. |
As specified in [TTML1], a#time-offset-with-frames
expression is translated to a media time M according to M = 3600 · hours + 60 · minutes + seconds + (frames ÷ (ttp:frameRateMultiplier
·ttp:frameRate
)).
The following style properties are subject to theStyle Resolution procedures specified at Section 8.4 of [TTML1]:
itts:fillLineGap
itts:forcedDisplay
ebutts:linePadding
ebutts:multiRowAlign
This profile is associated with the following profile designator:
Profile Name | Profile Designator |
---|---|
IMSC 1.0 Text | http://www.w3.org/ns/ttml/profile/imsc1/text |
As specified in6.11Features and Extensions, the presence of thettp:profile
attribute is not required by this profile. The profile designator specified above is intended to be generally used to signal conformance of aDocument Instance to the profile. The details of such signaling depends on the application, and can, for instance, use metadata structures out-of-band of theDocument Instance.
ADocument InstanceSHOULD be authored using characters selected from the sets specified inB.Recommended Character Sets.
#PCDATA
content withinp
andspan
elements of aDocument InstanceSHOULD NOT include the TAB (U+0009) character.
No presentation semantics are specified for the TAB (U+0009) character.
When rendering codepoints matching one of the combinations of computed font family and codepoints listed inA.Reference Fonts, a processorSHALL use a font that generates a glyph sequence whose dimension is substantially identical to the glyph sequence that would have been generated by one of the specified reference fonts.
This clause only applies to codepoints supported by the processor. See7.2Recommended Character Sets for codepoints that a processor is likely to encounter for various languages.
When a content author sets a bounding box for a subtitle, they want to maximize the likelihood that the text will fit within it when displayed by the processor. If the processor doesn't use the specific font the content author had in mind, the font actually used might cause the text to grow in size so that it no longer fits in the bounding box. This is further compounded by differences in the way text wraps when a font has bigger glyphs, which might increase the number of lines used, and increased line spacing, which might also push some of the text outside the bounding box.
To help ensure that things such as text size, line breaking, and line height behave as expected relative to the size of the bounding box set by the content author, the author can use one of the reference fonts defined by this specification. This specification requires processors to support one or more fonts with similar font metrics as reference fonts. Note that, however, the reference fonts as currently defined only cover characters used for a few writing systems – in particular, a subset of those based on Latin, Greek, Cyrillic, Hebrew, and Arabic scripts.
Implementations can use fonts other than those specified inA.Reference Fonts. Two fonts with equal metrics can have a different appearance, but flow identically.
See4.Conformance for a definition ofpermitted,prohibited andoptional.
Feature | Disposition | Additional provisions |
---|---|---|
Relative to the TT Feature namespace | ||
#backgroundColor-inline | permitted | |
#backgroundColor | permitted | |
#bidi | permitted | |
#content | permitted | |
#color | permitted | The initial value of NOTE 1: This is consistent with [ST2052-1]. NOTE 2: The named color |
#direction | permitted | |
#displayAlign | permitted | |
#extent-region | permitted | Thetts:extent attributeSHALL be present on allregion elements, where itSHALL usepx units or "percentage" syntax. |
#fontFamily-generic | permitted | In absence of specific instructions on the choice of font families, and in order to enhance reproducibility of line fitting, authors are encouraged to use the If the computed value of NOTE: The termused value is defined in CSS 2.1, as normatively referenced by [TTML1]. |
#fontFamily-non-generic | permitted | |
#fontFamily | permitted | Linear white-spaceSHOULD NOT appear between components of the specified value of |
#fontSize-anamorphic | prohibited | |
#fontSize-isomorphic | permitted | |
#fontSize | See individual disposition of#fontSize-anamorphic and#fontSize-isomorphic . | |
#fontStyle-italic | permitted | |
#fontStyle-oblique | permitted | |
#fontStyle | permitted | |
#fontWeight-bold | permitted | |
#fontWeight | permitted | |
#length-em | permitted | |
#lineBreak-uax14 | TheprocessorSHALL implement the#lineBreak-uax14 feature defined in the TT Feature namespace. | |
#lineHeight | permitted | As implementation of the"normal" value is not uniform at the time of this writing,tts:lineHeight SHOULD NOT be set to"normal" andSHOULD be explicitly specified such that the specified style set of eachp element contains atts:lineHeight property whose value is not assigned by initial value fallback. |
#nested-div | permitted | |
#nested-span | permitted | |
#origin | permitted | Thetts:origin attributeSHALL usepx units or "percentage" representation, andSHALL NOT useem units. |
#padding-1 | permitted | |
#padding-2 | permitted | |
#padding-3 | permitted | |
#padding-4 | permitted | |
#padding | permitted | |
#textAlign-absolute | permitted | |
#textAlign-relative | permitted | |
#textAlign | permitted | |
#textDecoration-over | permitted | |
#textDecoration-through | permitted | |
#textDecoration-under | permitted | |
#textDecoration | permitted | |
#textOutline-blurred | prohibited | |
#textOutline-unblurred | permitted | |
#textOutline | permitted | The computed value oftts:textOutline on aspan elementSHALL be 10% or less than the computed value oftts:fontSize on the same element. |
#unicodeBidi | permitted | |
#visibility | permitted | |
#visibility-inline | permitted | |
#wrapOption | permitted | |
#writingMode | permitted | |
#writingMode-vertical | permitted | |
Extension | Disposition | Provisions |
Relative to the SMPTE-TT Extension Namespace | ||
#image | prohibited | |
Relative to the IMSC Extension namespace | ||
#linePadding | permitted | If used, the attribute Theprocessor:
NOTE: The |
#multiRowAlign | permitted | If used, the attribute Theprocessor:
|
#fillLineGap | optional | NOTE: This feature is optional such that aprocessor that conforms to the earlier version of this specification also conforms to this version. |
In contrast to this specification, [EBU-TT-D] specifies that the attributesebutts:linePadding
andebutts:multiRowAlign
are allowed only on thestyle
element.
This profile is associated with the following profile designator:
Profile Name | Profile Designator |
---|---|
IMSC 1.0 Image | http://www.w3.org/ns/ttml/profile/imsc1/image |
As specified in6.11Features and Extensions, the presence of thettp:profile
attribute is not required by this profile. The profile designator specified above is intended to be generally used to signal conformance of aDocument Instance to the profile. The details of such signaling depends on the application, and can, for instance, use metadata structures out-of-band of theDocument Instance.
Apresented image is adiv
element with asmpte:backgroundImage
attribute that flows into apresented region.
In a givenintermediate synchronic document, eachpresented regionSHALL contain at most onediv
element, whichSHALL be apresented image.
For the purposes of constructing anintermediate synchronic document, adiv
element with asmpte:backgroundImage
attributeSHALL NOT be considered empty.
If asmpte:backgroundImage
attribute is applied to adiv
element:
smpte:backgroundImage
SHALL be equal to the width and height (as specified by thetts:extent
attribute usingpx
units) of the region in which thediv
element is presented;div
elementSHOULD contain ametadata
element containing anittm:altText
element that is aText Alternative of the image referenced by thesmpte:backgroundImage
attribute; andsmpte:backgroundImage
attributeSHALL reference a PNG datastream as specified in [PNG]. If a pHYs chunk is present, itSHALL indicate square pixels. Note that if no pixel aspect ratio is carried, the default of square pixels is assumed.In [TTML1],tts:extent
andtts:origin
do not apply todiv
elements. In order to individually position multiplediv
elements, eachdiv
can be associated with a distinctregion
with the desiredtts:extent
andtts:origin
.
See4.Conformance for a definition ofpermitted,prohibited andoptional.
Feature | Disposition | Additional provisions |
---|---|---|
Relative to the TT Feature namespace | ||
#backgroundColor-inline | prohibited | |
#backgroundColor | See individual disposition of#backgroundColor-inline ,#backgroundColor-region and#backgroundColor-block . | |
#bidi | See individual disposition of#direction ,#unicodeBidi and#writingMode-horizontal . | |
#color | prohibited | |
#content | permitted | Thep ,span andbr elementsSHALL NOT be present. See Section8.2.2Constraints for constraints ondiv elements. |
#direction | prohibited | |
#displayAlign | prohibited | |
#extent-region | permitted | Thetts:extent attributeSHALL be present on allregion elements, where itSHALL usepx units. |
#fontFamily | prohibited | |
#fontFamily-generic | prohibited | |
#fontFamily-non-generic | prohibited | |
#fontSize | prohibited | |
#fontSize-anamorphic | prohibited | |
#fontSize-isomorphic | prohibited | |
#fontStyle | prohibited | |
#fontStyle-italic | prohibited | |
#fontStyle-oblique | prohibited | |
#fontWeight | prohibited | |
#fontWeight-bold | prohibited | |
#length-em | prohibited | |
#lineBreak-uax14 | No processor requirement is specified. | |
#lineHeight | prohibited | |
#nested-div | prohibited | |
#nested-span | prohibited | NOTE: The prohibition of |
#padding | prohibited | |
#padding-1 | prohibited | |
#padding-2 | prohibited | |
#padding-3 | prohibited | |
#padding-4 | prohibited | |
#textAlign | prohibited | |
#textAlign-absolute | prohibited | |
#textAlign-relative | prohibited | |
#textDecoration | prohibited | |
#textDecoration-over | prohibited | |
#textDecoration-through | prohibited | |
#textDecoration-under | prohibited | |
#textOutline | prohibited | |
#textOutline-blurred | prohibited | |
#textOutline-unblurred | prohibited | |
#unicodeBidi | prohibited | |
#visibility | See individual disposition of#visibility-inline ,#visibility-region and#visibility-block . | |
#visibility-inline | prohibited | |
#wrapOption | prohibited | |
#writingMode | See individual disposition of#writingMode-vertical and#writingMode-horizontal . | |
#writingMode-vertical | prohibited | |
Extension | Disposition | Provisions |
Relative to the SMPTE-TT Extension namespace | ||
#image | permitted |
|
Relative to the IMSC Extension namespace | ||
#fillLineGap | prohibited |
This Section specifies the Hypothetical Render Model illustrated inFigure3.
The purpose of the model is to limitDocument Instance complexity. It is not intended as a specification of the processing requirements for implementations. 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 neither requires the implementation of such a buffer, nor models the sub-pixel character positioning and anti-aliased glyph rendering that can be used to produce text output.
The model operates on successiveintermediate synchronic documents obtained from an inputDocument Instance, and uses a simple double buffering model: while anintermediate synchronic document En is being painted into Presentation Buffer Pn (the "front buffer" of the model), the previousintermediate synchronic document En-1 is available for display in Presentation Buffer Pn-1 (the "back buffer" of the model).
The model specifies an (hypothetical) time required for completely painting anintermediate 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 ofintermediate synchronic document En completes before the end ofintermediate synchronic document En-1.
Whenever applicable, constraints are specified relative to the dimensions of theRoot Container Region, allowing subtitle sequences to be authored independently ofRelated Video Object resolution.
To enable scenarios where the same glyphs are used in multiple successiveintermediate synchronic documents, e.g. to convey a CEA-608/708-style roll-up (see [CEA-608] and [CEA-708]), the Glyph Buffers Gn and Gn-1 store rendered glyphs acrossintermediate synchronic documents, allowing glyphs to be copied into the Presentation Buffer instead of rendered, a more costly operation.
Similarly, Decoded Image Buffers Dn and Dn-1 store decoded images acrossintermediate synchronic documents, allowing images to be copied into the Presentation Buffer instead of decoded.
The Presentation CompositorSHALL render in Presentation Buffer Pn each successiveintermediate synchronic document En using the following steps in order:
The Presentation CompositorSHALL start rendering En:
The duration DUR(En) for painting anintermediate synchronic document En in the Presentation Buffer PnSHALL be:
DUR(En) = S(En) / BDraw + DURT(En) + DURI(En)
where
The contents of the Presentation Buffer PnSHALL be transferred instantaneously to Presentation Buffer Pn-1 at the presentation time ofintermediate synchronic document En, making the latter available for display.
It is possible for the contents of Presentation Buffer Pn-1 to never be displayed. This can happen if Presentation Buffer Pn is copied twice to Presentation Buffer Pn-1 between two consecutive video frame boundaries of theRelated Video Object.
ItSHALL be an error for the Presentation Compositor to fail to complete painting pixels for En before the presentation time of En.
Unless specified otherwise, the following tableSHALL specify values for IPD and BDraw.
Parameter | Initial value |
---|---|
Initial Painting Delay (IPD) | 1 s |
Normalized background drawing performance factor (BDraw) | 12 s-1 |
BDraw effectively sets a limit on fillings regions - for example, assuming that theRoot Container Region is ultimately rendered at 1920×1080 resolution, a BDraw of 12 s-1 would correspond to a fill rate of 1920×1080×12/s=23.7×220pixels s-1.
IPD effectively sets a limit on the complexity of any givenintermediate synchronic document.
The total normalized drawing area S(En) forintermediate synchronic document EnSHALL be
S(En) = CLEAR(En) + PAINT(En )
where CLEAR(E0) = 0 and CLEAR(En | n > 0) = 1, i.e. theRoot Container Region in its entirety.
To ensure consistency of the Presentation Buffer, a newintermediate synchronic document requires clearing of theRoot Container Region.
PAINT(En)SHALL be the normalized area to be painted for all regions that are used inintermediate synchronic document En according to:
PAINT(En) = ∑Ri∈Rp NSIZE(Ri) ∙ NBG(Ri)
where R_pSHALL be the set ofpresented regions in theintermediate synchronic document En.
NSIZE(Ri)SHALL be given by:
NSIZE(Ri) = (width of Ri ∙ height of Ri ) ÷ (Root Container Region height ∙Root Container Region width)
tts:extent="250px 50px"
within aRoot Container Region withtts:extent="1920px 1080px"
, NSIZE(Ri) ≈ 0.00603.NBG(Ri)SHALL be the total number oftts:backgroundColor
attributes associated with the given region Ri in theintermediate synchronic document. Atts:backgroundColor
attribute is associated with a region when it is explicitly specified (either as an attribute in the element, or by reference to a declared style) in the following circumstances:
region
layout element that defines the region; ordiv
,p
,span
orbr
content element that is to be flowed into the region for presentation in theintermediate synchronic document (see [TTML1] for more details on when a content element is followed into a region); orset
animation element that is to be applied to content elements that are to be flowed into the region for presentation in theintermediate synchronic document (see [TTML1] for more details on when aset
animation element is applied to content elements).Even if a specifiedtts:backgroundColor
is the same as specified on the nearest ancestor content element or animation element, specifying anytts:backgroundColor
SHALL require an additional fill operation for all region pixels.
The Presentation CompositorSHALL paint into the Presentation Buffer Pn all visible pixels of presented images ofintermediate synchronic document En.
For eachpresented image, the Presentation CompositorSHALL either:
Two imagesSHALL be identical if and only if they reference the same encoded image source.
The duration DURI(En) for painting images of anintermediate synchronic document En in the Presentation BufferSHALL be as follows:
DURI(En) = ∑Ii ∈ Ic NRGA(Ii) / ICpy + ∑Ij ∈ Id NSIZ(Ij) / IDec
where
NRGA(Ii) is the Normalized Image Area ofpresented image Ii andSHALL be equal to:
NRGA(Ii)= (width of Ii ∙ height of Ii ) ÷ (Root Container Region height ∙Root Container Region width )
NSIZ(Ii)SHALL be the number of pixels ofpresented image Ii.
The contents of the Decoded Image Buffer DnSHALL be transferred instantaneously to Decoded Image Buffer Dn-1 at the presentation time ofintermediate synchronic document En.
The total size occupied by images stored in Decoded Image Buffers Dn or Dn-1SHALL be the sum of their Normalized Image Area.
The size of Decoded Image Buffers Dn or Dn-1SHALL be the Normalized Decoded Image Buffer Size (NDIBS).
Unless specified otherwise, the following tableSHALL specify ICpy, IDec, and NDBIS.
Parameter | Initial value |
---|---|
Normalized image copy performance factor (ICpy) | 6 |
Image Decoding rate (IDec) | 1 × 220 pixels s-1 |
Normalized Decoded Image Buffer Size (NDIBS) | 0.9885 |
In the context of this section, aglyph is a tuple consisting of (i) one character and (ii) the computed values of the following style properties:
tts:color
tts:fontFamily
tts:fontSize
tts:fontStyle
tts:fontWeight
tts:textDecoration
tts:textOutline
While one-to-one mapping between characters and typographical glyphs is generally the rule in some scripts, e.g. latin script, it is the exception in others. For instance, in arabic script, a character can yield multiple glyphs depending on its position in a word. The Hypothetical Render Model always assumes a one-to-one mapping, but reduces the performance of the glyph buffer for scripts where one-to-one mapping is not the general rule (see GCpy below).
For eachglyph associated with a character in apresented region ofintermediate synchronic document En, the Presentation CompositorSHALL:
The duration DURT(En) for rendering the text of anintermediate synchronic document En in the Presentation Buffer is as follows:
DURT(En) = ∑gi ∈ Γr NRGA(gi) / Ren(gi) + ∑gj ∈ Γc NRGA(gj) / GCpy
where
The Normalized Rendered Glyph Area NRGA(gi) of aglyph giSHALL be equal to:
NRGA(gi) = (fontSize of gi as percentage ofRoot Container Region height)2
NRGA(Gi) 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.
The contents of the Glyph Buffer GnSHALL be copied instantaneously to Glyph Buffer Gn-1 at the presentation time ofintermediate synchronic document En.
ItSHALL be an error for the sum of NRGA(gi) over allglyphs Glyph Buffer Gn to be larger than the Normalized Glyph Buffer Size (NGBS).
Unless specified otherwise, the following table specifies values of GCpy, Ren and NGBS.
Normalized glyph copy performance factor (GCpy) | |
---|---|
Script property (see Standard Annex #24 at [UNICODE]) for the character of gi | GCpy |
latin, greek, cyrillic, hebrew or common | 12 |
any other value | 3 |
Text rendering performance factor Ren(Gi) | |
Block property (see [UNICODE]) for the character of gi | Ren(Gi) |
CJK Unified Ideograph | 0.6 |
any other value | 1.2 |
Normalized Glyph Buffer Size (NGBS) | |
1 |
The choice of font by the presentation processor can increase rendering complexity. For instance, a cursive font can generally result in a given character yielding different typographical glyphs depending on context, even if latin script is used.
Computed Font Family | Code Points | Reference Font |
---|---|---|
monospaceSerif | All code points specified inB.Recommended Character Sets | Courier New orLiberation Mono |
proportionalSansSerif | All code points specified inB.Recommended Character Sets, excluding the code points defined for Hebrew and Arabic scripts. | Arial orHelvetica orLiberation Sans |
When authoring textual content, authors are encouraged to select from sets of characters based on the language indicated usingxml:lang
. The idea is to increase the confidence that the text will be presented correctly by implementations targeting specific locales.
Specifically, for a given language, an authorSHOULD choose characters from the set resulting from the union of the following sets:
Some of these sets overlap.
Table 1 captures the set of characters intended to be available to authors across all languages. The terms used in the table are defined in [UNICODE].
(Basic Latin) |
---|
U+0020 - U+007E |
(Latin-1 Supplement) |
U+00A0 - U+00FF |
(Latin Extended-A) |
U+0152 : LATIN CAPITAL LIGATURE OE |
U+0153 : LATIN SMALL LIGATURE OE |
U+0160 : LATIN CAPITAL LETTER S WITH CARON |
U+0161 : LATIN SMALL LETTER S WITH CARON |
U+0178 : LATIN CAPITAL LETTER Y WITH DIAERESIS |
U+017D : LATIN CAPITAL LETTER Z WITH CARON |
U+017E : LATIN SMALL LETTER Z WITH CARON |
(Latin Extended-B) |
U+0192 : LATIN SMALL LETTER F WITH HOOK |
(Spacing Modifier Letters) |
U+02DC : SMALL TILDE |
(Combining Diacritical Marks) |
U+0301 : COMBINING ACUTE ACCENT |
(General Punctuation) |
U+2010 - U+2015 : Dashes |
U+2016 - U+2027 : General punctuation |
U+2030 - U+203A : General punctuation |
(Currency symbols) |
U+20AC : EURO SIGN |
(Letterlike Symbols) |
U+2103 : DEGREES CELSIUS |
U+2109 : DEGREES FAHRENHEIT |
U+2120 : SERVICE MARK SIGN |
U+2122 : TRADE MARK SIGN |
(Number Forms) |
U+2153 - U+215F : Fractions |
(Mathematical Operators) |
U+2212 : MINUS SIGN |
U+221E : INFINITY |
(Box Drawing) |
U+2500 : BOX DRAWINGS LIGHT HORIZONTAL |
U+2502 : BOX DRAWINGS LIGHT VERTICAL |
U+250C : BOX DRAWINGS LIGHT DOWN AND RIGHT |
U+2510 : BOX DRAWINGS LIGHT DOWN AND LEFT |
U+2514 : BOX DRAWINGS LIGHT UP AND RIGHT |
U+2518 : BOX DRAWINGS LIGHT UP AND LEFT |
(Block Elements) |
U+2588 : FULL BLOCK |
(Geometric Shapes) |
U+25A1 : WHITE SQUARE |
(Musical Symbols) |
U+2669 : QUARTER NOTE |
U+266A : EIGHTH NOTE |
U+266B : BEAMED EIGHTH NOTES |
Table 2 specifies supplementary character set that have proven useful in captioning and subtitling applications for a number of selected languages. Table 2 is non-exhaustive, and will be extended as needs arise.
Primary language subtag | Characters |
---|---|
sq, fi, da, nl, en, de, is, no, sv, ca, fr, it | no supplementary characters |
lv, lt, et, tr, hr, cs, pl, sl, sk | (Latin Extended-A) U+0100 - U+017F |
ro | (Latin Extended-A) U+0100 - U+017F (Latin Extended-B) U+0218 - U+0219 U+021A - U+021B |
el | (Combining Diacritical Marks) U+0308 (Greek and Coptic) U+0386 - U+038A U+038C U+038E - U+03A1 U+03A3 - U+03CE |
pt, es | (Currency symbols) U+20A1 - U+20A2 U+20B3 |
ar | (Arabic) U+0609 U+060C - U+060D U+061B U+061E - U+061F U+0621 - U+063A U+0640 - U+0652 U+0660 - U+066D U+0670 |
he | (Hebrew) U+05B0 - U+05C3 U+05D0 - U+05EA U+05F3 - U+05F4 |
bs, bg, mk, ru, sr, uk | (Latin Extended-A) U+0100 - U+017F (Spacing Modifier Letters) U+02BC (Cyrillic) U+0400 - U+045F U+048A - U+04F9 (Letterlike Symbols) U+2116 |
kk | (Latin Extended-A) U+0100 - U+017F (Cyrillic) U+0400 - U+045F U+048A - U+04F9 |
hu | (Latin Extended-A) U+0100 - U+017F (General Punctuation) U+2052 (Miscellaneous Mathematical Symbols-A) U+27E8–U+27E9 |
Figure5 below illustrates the use of forced content, i.e.itts:forcedDisplay
anddisplayForcedOnlyMode
. The content withitts:forcedDisplay="true"
is the French translation of the "High School" sign. The content withitts:forcedDisplay="false"
are French subtitles capturing a voiceover.
When the user selects French as the playback language but does not select French subtitles,displayForcedOnlyMode
is set to"true"
, causing the display of the sign translation, which is useful to any French speaker, but hiding the voiceover subtitles as the voiceover is heard in French.
If the user selects French as the playback language and also selects French subtitles, e.g. if the user is hard-of-hearing,displayForcedOnlyMode
is set to"false"
, causing the display of both the sign translation and the voiceover subtitles.
The algorithm for setting thedisplayForcedOnlyMode
parameter and selecting the appropriate combination of subtitle and audio tracks depends on the application.
In order to meet the guidelines in [WCAG20], the following considerations apply.
Guideline 1.1 of [WCAG20] recommends that an implementation provideText Alternatives for all non-text content. In the context of this specification, thisText Alternative is intended primarily to support users of the subtitles who cannot see images. Since the images of anImage ProfileDocument Instance usually represent subtitle or caption text, the guidelines for authoring text equivalent strings given atImages of text of [HTML5] are appropriate.
Thus, for each subtitle in anImage ProfileDocument Instance, a text equivalent content in aText ProfileDocument InstanceSHOULD be written so that it conveys all essential content and fulfills the same function as the corresponding subtitle image. In the context of subtitling and captioning, this content will be (as a minimum) the verbatim equivalent of the image without précis or summarization. However, the authorMAY include extra information to the text equivalent string in cases where styling is applied to the text image with a deliberate connotation, as afunctional replacement for the applied style.
For instance, in subtitling and captioning, italics can be used to indicate an off screen speaker context (for example a voice from a radio). An author can choose to include this functional information in the text equivalent; for example, by including the word "Radio: " before the image equivalent text. Note that images in anImage ProfileDocument Instance that are intended for use ascaptions, i.e. intended for a hard of hearing audience, might already include this functional information in the rendered text.
Guideline 1.1 of [WCAG20] also recommends that accessibleText Alternatives must be "programmatically determinable." This means that the text must be able to be read and used by the assistive technologies (and the accessibility features in browsers) that people with disabilities use. It also means that the user must be able to use their assistive technology to find the alternative text (that they can use) when they land on the non-text content (that they can't use).
The following sampleDocument Instances conforms to theText Profile andImage Profile, respectively. These samples are for illustration only, and are neither intended to capture current or future practice, nor exercise all normative prose contained in this specification.
<?xml version="1.0" encoding="UTF-8"?><ttxml:lang="en"xmlns="http://www.w3.org/ns/ttml"xmlns:ttm="http://www.w3.org/ns/ttml#metadata"xmlns:tts="http://www.w3.org/ns/ttml#styling"xmlns:ttp="http://www.w3.org/ns/ttml#parameter"xmlns:ittp="http://www.w3.org/ns/ttml/profile/imsc1#parameter"ittp:aspectRatio="4 3"ttp:profile="http://www.w3.org/ns/ttml/profile/imsc1/text"><head><layout><regionxml:id="area1"tts:origin="10% 10%"tts:extent="80% 10%"tts:backgroundColor="black"tts:displayAlign="center"tts:color="red"/></layout></head><body><div><pregion="area1"begin="0s"end="6s">Lorem ipsum dolor.</p></div></body></tt>
<?xml version="1.0" encoding="UTF-8"?><ttxml:lang="fr"xmlns="http://www.w3.org/ns/ttml"xmlns:ttm="http://www.w3.org/ns/ttml#metadata"xmlns:tts="http://www.w3.org/ns/ttml#styling"xmlns:ttp="http://www.w3.org/ns/ttml#parameter"xmlns:smpte="http://www.smpte-ra.org/schemas/2052-1/2010/smpte-tt"xmlns:itts="http://www.w3.org/ns/ttml/profile/imsc1#styling"tts:extent="640px 480px"ttp:frameRate="25"ttp:profile="http://www.w3.org/ns/ttml/profile/imsc1/image"><head><layout><regionxml:id="region1"tts:origin="120px 410px"tts:extent="240px 40px"tts:showBackground="whenActive"/><regionxml:id="region2"tts:origin="120px 20px"tts:extent="240px 40px"tts:showBackground="whenActive"/></layout></head><body><divregion="region1"begin="00:00:01:00"end="00:00:02:00"smpte:backgroundImage="1.png"/><divregion="region1"begin="00:00:03:20"end="00:00:04:12"smpte:backgroundImage="2.png"/><divregion="region2"itts:forcedDisplay="true"begin="00:00:03:20"end="00:00:04:12"smpte:backgroundImage="3.png"/></body></tt>
The following sections define extension designations, expressed as relative URIs (fragment identifiers) relative to the IMSC Extension Namespace base URI.
Atransformation processor supports the#progressivelyDecodable
feature if it recognizes and is capable of transforming values of theittp:progressivelyDecodable
.
Apresentation processor supports the#progressivelyDecodable
feature if it implements presentation semantic support for values of theittp:progressivelyDecodable
attribute.
Atransformation processor supports the#aspectRatio
feature if it recognizes and is capable of transforming values of theittp:aspectRatio
.
Apresentation processor supports the#aspectRatio
feature if it implements presentation semantic support for values of theittp:aspectRatio
attribute.
Atransformation processor supports the#forcedDisplay
feature if it recognizes and is capable of transforming values of theitts:forcedDisplay
.
Apresentation processor supports the#forcedDisplay
feature if it implements presentation semantic support for values of theitts:forcedDisplay
attribute.
Atransformation processor supports the#altText
feature if it recognizes and is capable of transforming values of theittm:altText
element.
Apresentation processor supports the#altText
feature if it implements presentation semantic support for values of theittm:altText
element.
Atransformation processor supports the#linePadding
feature if it recognizes and is capable of transforming values of theebutts:linePadding
attribute specified in [EBU-TT-D].
Apresentation processor supports the#linePadding
feature if it implements presentation semantic support for values of theebutts:linePadding
attribute specified in [EBU-TT-D].
Atransformation processor supports the#multiRowAlign
feature if it recognizes and is capable of transforming values of theebutts:multiRowAlign
attribute specified in [EBU-TT-D].
Apresentation processor supports the#multiRowAlign
feature if it implements presentation semantic support for values of theebutts:multiRowAlign
attribute specified in [EBU-TT-D].
Atransformation processor supports the#activeArea
feature if it recognizes and is capable of transforming values of theittp:activeArea
attribute.
Apresentation processor supports the#activeArea
feature if it implements presentation semantic support for values of theittp:activeArea
attribute.
Atransformation processor supports the#fillLineGap
feature if it recognizes and is capable of transforming values of theitts:fillLineGap
attribute.
Apresentation processor supports the#fillLineGap
feature if it implements presentation semantic support for values of theitts:fillLineGap
attribute.
XML Schema definitions (see [xmlschema-1]) for extension vocabulary defined by this specification are providedhere for convenience.
These definitions are non-normative and are not sufficient to validate conformance of aDocument Instance.
In any case where a definition specified by this appendix diverge from the prose of the specification, then the latter takes precedence.
This section documents extensibility objectives for this specification.
This specification is intended to allow:
This specification is designed to be compatible with [ST2052-1], [EBU-TT-D] and [ttml10-sdp-us]. Specifically, it is possible to create a document that:
This specification is also intended to allow straightforward conversion of a document that conforms to the text or image profiles of [CFF] to the Text Profile or Image Profile, respectively.
The Text Profile is a strict syntactic superset of [EBU-TT-D].
A document that conforms to [EBU-TT-D] therefore generally also conforms to the Text Profile, with a few exceptions, including:
Thettp:profile
attribute and element are not allowed by [EBU-TT-D]. Theebuttm:conformsToStandard
element is used instead, as discussed at6.9Profile Signaling.
It is not possible for a document that conforms to [EBU-TT-D] to also conform to Image Profile, and vice-versa, notwithstanding the special case where the document also conforms to Text Profile as noted at5.Profiles.
The following is an example of a document that conforms to both Text Profile and [EBU-TT-D]. Note the presence of twoebuttm:conformsToStandard
elements, one of which equals the Text Profile designator:
<?xml version="1.0" encoding="UTF-8"?><ttxmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns="http://www.w3.org/ns/ttml"xmlns:ttp="http://www.w3.org/ns/ttml#parameter"xmlns:tts="http://www.w3.org/ns/ttml#styling"xmlns:ttm="http://www.w3.org/ns/ttml#metadata"xmlns:ebutts="urn:ebu:tt:style"xml:lang="en"ttp:timeBase="media"xmlns:ebuttm="urn:ebu:tt:metadata" ><head><metadata><ebuttm:documentMetadata><ebuttm:conformsToStandard>urn:ebu:tt:distribution:2014-01</ebuttm:conformsToStandard><ebuttm:conformsToStandard>http://www.w3.org/ns/ttml/profile/imsc1/text</ebuttm:conformsToStandard></ebuttm:documentMetadata></metadata><styling><stylexml:id="baseStyle"tts:color="#FFFFFF"tts:lineHeight="100%"/><stylexml:id="blackBackground"tts:backgroundColor="#000000"/><stylexml:id="greenBackground"tts:backgroundColor="#00FF00"/><stylexml:id="startEnd"tts:textAlign="start"ebutts:multiRowAlign="end"/><stylexml:id="centerStart"tts:textAlign="center"ebutts:multiRowAlign="start"/></styling><layout><regionxml:id="area1"tts:origin="15% 10%"tts:extent="70% 20%"style="greenBackground"tts:displayAlign="center"/><regionxml:id="area2"tts:origin="15% 70%"tts:extent="70% 20%"style="blackBackground"tts:displayAlign="center"/></layout></head><body><divstyle="baseStyle"><pxml:id="s1"region="area1"style="startEnd"begin="00:00:01"end="00:00:09"> multiRowAlign="end"<br/>textAlign="start"</p><pxml:id="s2"region="area2"style="centerStart"begin="00:00:01"end="00:00:09"> multiRowAlign="start"<br/>textAlign="center"</p></div></body></tt>
The Text Profile is a strict syntactic superset of [ttml10-sdp-us].
A document that conforms to [ttml10-sdp-us] therefore also generally conforms to the Text Profile, with a few exceptions, including:
[ttml10-sdp-us] requires a specific value of theuse
attribute of thettp:profile
. As a result, Text Profile is not signaled using thettp:profile
attribute. Instead, as specified in5.4Profile Resolution Semantics, the Text Profile can be signaled by the Document Interchange Context and/or the Document Processing Context. Alternatively, a processor can choose to process a document as a Text Profile document if thettp:profile
element signals [ttml10-sdp-us], since [ttml10-sdp-us] is feasibly interoperable with Text Profile.
It is not possible for a document that conforms to [ttml10-sdp-us] to also conform to Image Profile, and vice-versa, notwithstanding the special case where the document also conforms to Text Profile as noted at5.Profiles.
As an illustration, Example 3 at [ttml10-sdp-us] conforms to both Text Profile and [ttml10-sdp-us].
[ST2052-1] specifies the use of the DFXP Full Profile (see Appendix F.3 at [TTML1]) supplemented by a number of extensions, includinghttp://www.smpte-ra.org/schemas/2052-1/2010/smpte-tt#image
.
This specification defines practical constraints on [ST2052-1], supplemented by a few extensions defined atF.Extensions. These constraints and extensions are intended to reflect industry practice.
As a result, particular care is required when creating a document intended to be processed according to both [ST2052-1] and Text Profile or Image Profile. In particular:
smpte:backgroundImage
attributes and any ofp
,span
, orbr
elements;http://www.smpte-ra.org/schemas/2052-1/2010/smpte-tt#image
extension;#aspectRatio
,#forcedDisplay
,#linePadding
and#multiRowAlign
extensions that impact presentation; and"http://www.smpte-ra.org/schemas/2052-1/2010/profiles/smpte-tt-full"
is used as a value forttp:profile
element or attribute (see Section 5.8 at [ST2052-1]), Text Profile or Image Profile is signaled by the Document Interchange Context and/or the Document Processing Context.The following is an example of a document that conforms to both Text Profile and [ST2052-1]:
<?xml version="1.0" encoding="UTF-8"?><ttxml:lang="en"xmlns="http://www.w3.org/ns/ttml"xmlns:ttm="http://www.w3.org/ns/ttml#metadata"xmlns:ttp="http://www.w3.org/ns/ttml#parameter"ttp:profile="http://www.smpte-ra.org/schemas/2052-1/2010/profiles/smpte-tt-full"xmlns:tts="http://www.w3.org/ns/ttml#styling"ttp:frameRate="24"><head><layout><regionxml:id="area1"tts:origin="10% 70%"tts:extent="80% 20%"tts:showBackground="whenActive"tts:backgroundColor="red"tts:displayAlign="center"tts:color="white"/></layout></head><bodytts:lineHeight="100%"><div><pregion="area1"begin="00:00:01.01"end="00:00:03">This should appear on frame 25.</p><pregion="area1"begin="00:00:04"end="00:00:06">This should appear on frame 96.</p><pregion="area1"begin="00:00:07.33"end="00:00:09">This should appear on frame 176.</p></div></body></tt>
This specification was derived from the text and image profiles specified in Section 6 at [CFF], and is intended to be a superset in terms of capabilities. Additional processing is however generally necessary to convert a document from [CFF] to this specification. In particular:
progressivelyDecodable
attribute is different;forcedDisplayMode
attribute in [CFF] is renamed toforcedDisplay
in this specification;ttp:frameRate
is not subject to the requirements specified at6.11Features and Extensions; andttp:profile
element, whereas this specification recommends the use of thettp:profile
attribute.The editor acknowledges the current and former members of the Timed Text Working Group, the members of otherW3C Working Groups, and industry experts in other forums who have contributed directly or indirectly to the process or content of this document.
The editor wishes to especially acknowledge the following contributions by members: Glenn Adams, Skynav; John Birch, Invited expert; Mike Dolan, Invited expert; Nigel Megitt, British Broadcasting Corporation; Thierry Michel,W3C; Andreas Tai, Institut für Rundfunktechnik.
The editor also wishes to acknowledge Digital Entertainment Content Ecosystem (DECE) for contributing to the initial document for the Member Submission.
The security and privacy considerations of [rfc3023] and [TTML1] apply, particularly in relation to document parsing. XML Entities are excluded from the Reduced XML Infoset of TTML and are therefore not considered part ofDocument Instances; nevertheless implementations are encouraged to provide protection against recursive entity expansion or prevent entity expansion altogether in processors.
TheImage Profile includes a mechanism for referencing external images. A user agent that downloads external images during media playback indicates to the origin server of the images the progress of the user's media consumption. In many cases such media progress information is available to the origin server of the media via other mechanisms, for example by scripting or by monitoring streaming media requests.
User agents that do not enforce cross origin policies when downloading external images expose such media progress information and potentially other user tracking information to other origins without the consent of the web site serving the media and without the consent of the user. This specification defines no APIs and makes no statement on how implementations are expected to obtain referenced images.