CÔNG TY TNHH ĐẦU TƯ THƯƠNG MẠI VÀ DỊCH VỤ HỮU QUYẾT
Số 2, ngách 1/1 Phố Thiên Hiền, Phường Mỹ Đình 1, Quận Nam Từ Liêm, Thành phố Hà Nội.
MST: 0110557925
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].
This section describes the status of this document at the time of its publication. Other documents may supersede this document. A list of current W3C publications and the latest revision of this technical report can be found in the W3C technical reports index at http://www.w3.org/TR/.
This document was published by the Timed Text Working Group as a Candidate Recommendation. This document is intended to become a W3C Recommendation. If you wish to make comments regarding this document, please send them to [email protected] (subscribe, archives) with [imsc]
at the start of your email's subject. W3C publishes a Candidate Recommendation to indicate that the document is believed to be stable and to encourage implementation by the developer community. This Candidate Recommendation is expected to advance to Proposed Recommendation no earlier than 28 February 2016. All comments are welcome.
Please see the Working Group's implementation report.
For this specification to exit the CR stage, at least 2 independent implementations of every feature defined in this specification but not already present in [TTML1] need to be documented in the implementation report. The implementation report is based on implementer-provided test results for the test suite (tests and sample content) maintained by the Working Group. The Working Group does not require that implementations are publicly available but encourages them to be so.
The Working Group expects the test suite and the implementation report to evolve significantly before the specification advances to Proposed Recommendation.
The Working Group has not identified features "at risk" for this specification.
A list of the substantive changes applied since the initial Working Draft is found at substantive-changes-summary.txt
Publication as a Candidate Recommendation does not imply endorsement by the W3C Membership. This is a draft document and may be updated, replaced or obsoleted by other documents at any time. It is inappropriate to cite this document as other than work in progress.
This document was produced by a group operating under the 5 February 2004 W3C Patent Policy. W3C maintains a public 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 contains Essential Claim(s) must disclose the information in accordance with section 6 of the W3C Patent Policy.
This document is governed by the 1 September 2015 W3C Process Document.
This document specifies 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 specification uses the same conventions as [TTML1] for the specification of parameter attributes, styling attributes and metadata elements. In particular, Section 2.3 of [TTML1] specifies conventions used in the XML representation of elements.
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.
Default Region. See Section 9.3.1 at [TTML1].
Document Instance. See Section 2.2 at [TTML1].
Intermediate synchronic document. See Section 9.3.2 at [TTML1].
Processor. Either a Presentation processor or a Transformation 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. A Related Media Object that consists of a sequence of image frames, each a rectangular array of pixels.
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 words MAY, SHALL, SHALL NOT, SHOULD, and SHOULD NOT are to be interpreted as described in [RFC2119].
A Document Instance that conforms to a profile defined herein:
A presentation processor that conforms to a profile defined in this specification:
A transformation processor that conforms to a profile defined in this specification:
The use of the term presentation 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 a presentation 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 specify presentation processor or transformation processor behavior when processing or transforming a non-conformant Document Instance.
A Document Instance SHALL NOT conform to the Text Profile and Image Profile simultaneously.
In applications that require subtitle/caption content in image form to be simultaneously available in text form, two distinct Document Instances, one conforming to the Text Profile and the other conforming to the Image Profile, SHOULD be offered. In addition, the Text Profile Document Instance SHOULD be associated with the Image Profile Document 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.
The ittm:altText
element specified 6.7.4 ittm: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.
Annex D. WCAG Considerations specifically discusses this specification in the context of the [WCAG20] guidelines.
The Text Profile consists of Sections 6. Common Constraints and 7. Text Profile Constraints.
The Image Profile consists of Sections 6. Common Constraints and 8. Image Profile Constraints.
A Document Instance SHALL use UTF-8 character encoding as specified in [UNICODE].
A Document Instance MAY contain elements and attributes that are neither specifically permitted nor forbidden by a profile.
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 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 1.0 Styling | itts | http://www.w3.org/ns/ttml/profile/imsc1#styling | This specification |
IMSC 1.0 Parameter | ittp | http://www.w3.org/ns/ttml/profile/imsc1#parameter | This specification |
IMSC 1.0 Metadata | ittm | http://www.w3.org/ns/ttml/profile/imsc1#metadata | This specification |
IMSC 1.0 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 and Document Instances MAY 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 the W3C.
A Document Instance SHOULD be authored assuming strict clipping of content that falls out of region areas, regardless of the computed value of tts: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) at 9.3 Paint Regions.
Each intermediate synchronic document of the Document Instance is intended to be displayed on a specific frame and removed on a specific frame of the Related Video Object.
When mapping a media time expression M to a frame F of a Related Video Object, e.g. for the purpose of rendering a Document Instance onto the Related Video Object, the presentation processor SHALL 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 (the Related Video Object) will be used for Document Instance authoring, delivery and user playback. The mapping from media time expression to Related 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.
The ittp:aspectRatio
attributes allows authorial control of the mapping of the root container of a Document Instance to each image frame of the Related Video Object.
If present, the ittp:aspectRatio
attribute SHALL 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>+ |
The root container of a Document Instance SHALL be mapped to each image frame of the Related Video Object according to the following:
If ittp:aspectRatio
is present, the root container SHALL be mapped to a rectangular area within the image frame such that:
ittp:aspectRatio
,Otherwise, the root container of a Document Instance SHALL be mapped to the image frame in its entirety.
An ittp:aspectRatio
attribute is considered to be significant only when specified on the tt
element.
The ittp:aspectRatio
parameter effectively defines the intended display aspect ratio (DAR) of the root container, while the tts:extent
style property on the root element effectively defines the intended storage aspect ratio (SAR) of the root container.
ttp: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. A progressively decodable Document Instance is structured to facilitate presentation before the document is received in its entirety, and can be identified using ittp:progressivelyDecodable
attribute.
A progressively decodable Document Instance is a Document Instance that conforms to the following:
head
element;p
element that lexically precedes any p
element that B includes; p
; andIf present, the ittp:progressivelyDecodable
attribute SHALL conform to the following syntax:
ittp:progressivelyDecodable : "true" | "false" |
An ittp:progressivelyDecodable
attribute is considered to be significant only when specified on the tt
element.
If not specified, the value of ittp:progressivelyDecodable
SHALL be considered to be equal to "false".
A Document Instance for which the computed value of ittp:progressivelyDecodable
is "true" SHALL be a progressively decodable Document Instance.
A Document Instance for which the computed value of ittp:progressivelyDecodable
is "false" is neither asserted to be a progressively decodable Document Instance nor asserted not to be a progressively decodable Document Instance.
<tt 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:progressivelyDecodable="true" > ... </tt>
[TTML1] specifies explicitly referencing of elements identified using xml:id
in the following circumstances:
body
referencing region
elements. In this case, Requirement 4 above is always satisfied.body
referencing style
elements. In this case, Requirement 4 above is always satisfied.region
element referencing style
elements. In this case, Requirement 4 above is always satisfied.style
element referencing other style
elements. In this case, Requirement 4 provides an optimization of style
element ordering within the head
element.ttm:actor
element referencing a ttm:agent
element. In this case, Requirement 4 provides optimization of metadata elements ordering within the document.ttm:agent
elements using the ttm: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 of tts:visibility
is "visible"
when the processor has been configured to do so via the application parameter displayForcedOnlyMode
.
If and only if the value of displayForcedOnlyMode
is "true", a content element with a itts:forcedDisplay
computed value of "false" SHALL NOT produce any visible rendering, but still affect layout, regardless of the computed value of tts:visibility
.
The itts:forcedDisplay
attribute shall conform to the following:
Values: | false | true |
Initial: | false |
Applies to: | body , div , p , region , span |
Inherited: | yes |
Percentages: | N/A |
Animatable: | discrete |
Annex C. Forced content (non-normative) illustrates the use of itts:forcedDisplay
in an application in which a single document contains both hard of hearing captions and translated foreign language subtitles, using itts:forcedDisplay
to display translation subtitles always, independently of whether the hard of hearing captions are displayed or hidden.
The presentation processor SHALL accept an optional boolean parameter called displayForcedOnlyMode
, whose value MAY be set by a context external to the presentation processor. If not set, the value of displayForcedOnlyMode
SHALL be assumed to be equal to "false".
The algorithm for setting the displayForcedOnlyMode
parameter based on the circumstances under which the Document Instance is presented is left to the application.
... <head> ... <region xml:id="r1" tts:origin="10% 2%" tts:extent="80% 10%" tts:color="white" itts:forcedDisplay="true" tts:backgroundColor="black"/> <region xml:id="r2" tts:origin="10% 80%" tts:extent="80% 88%" tts:color="white" tts:backgroundColor="black"/> ... </head> ... <div> <p region="r1" begin="1s" end="6s">Lycée</p> <!-- the following will not appear if displayForcedOnlyMode='true' --> <p region="r2" begin="4s" end="6s">Nous étions inscrits au même lycée.</p> </div> ...
As specified in [TTML1], the background of a region can be visible even if the computed value of tts:visibility
equals "hidden" for all active content within. The background of a region for which itts:forcedDisplay
equals "true" can therefore remain visible even if itts:forcedDisplay
equals "false" for all active content elements within the region and displayForcedOnlyMode
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 of itts:forcedDisplay
.
Although itts:forcedDisplay
, like all the TTML style attributes, has no defined semantics on a br
content element, itts:forcedDisplay
will apply to a br
content element if it is either defined on an ancestor content element of the br
content element or it is applied to a region element corresponding to a region that the br
content element is being flowed into.
It is expected that the functionality of itts:forcedDisplay
will be mapped to a conditional style construct in a future revision of this specification.
ittm:altText
allows an author to provide a text string equivalent for an element, typically an image. This text equivalent MAY be used to support indexing of the content and also facilitate quality checking of the document during authoring.
The ittm:altText
element SHALL conform to the following syntax:
<ittm:altText xml:id = ID xml:lang = string xml:space = (default|preserve) {any attribute not in the default namespace, any TT namespace or any IMSC 1.0 namespace}> Content: #PCDATA </ittm:altText> |
The ittm:altText
element SHALL be a child of the metadata
element.
8. Image Profile Constraints specifies the use of the ittm:altText
element with images.
... <div region="r1" begin="1s" end="6s" smpte:backgroundImage="1.png"> <metadata> <ittm:altText>Nous étions inscrits au même lycée.</ttm:title> </metadata> </div> ...
In contrast to the common use of alt
attributes in [HTML5], the ittm:altText
attribute content is not intended to be displayed in place of the element if the element is not loaded. The ittm:altText
attribute content can however be read and used by assistive technologies.
A presented 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 of tts:backgroundColor
has non-transparent alpha.All regions SHALL NOT extend beyond the root container, i.e. the intersection of the sets of coordinates belonging to a region (including its boundary) and the sets of coordinates belonging to the root container (including its boundary) is the set of coordinates belonging to the region (including its boundary).
No two presented regions in a given intermediate synchronic document SHALL overlap, i.e. the intersection of the sets of coordinates within each region (including its boundary) is empty.
The number of presented regions in a given intermediate synchronic document SHALL NOT be greater than 4.
The ttp:profile
attribute SHOULD be present on the tt
element and equal to the designator of the IMSC1 profile to which the document conforms, and the ttp:profile
element SHOULD NOT be present, unless:
ttp:profile
attribute and the ttp:profile
element SHOULD NOT be present, and instead the designator of the IMSC1 profile to which the document conforms and the URI "urn:ebu:tt:distribution:2014-01" SHOULD each be carried in an ebuttm:conformsToStandard
element as specified in [EBU-TT-D]; or ttp:profile
attribute SHOULD NOT be present. [ttml10-sdp-us] requires that the ttp:profile
element be present and that its use
attribute be set to a specified value. It SHALL be possible to apply the Hypothetical Render Model specified in Section 9. Hypothetical Render Model to any sequence of consecutive intermediate synchronic documents without error as defined in Section 9.2 General.
See 4. Conformance for a definition of "permitted" and "prohibited".
Feature | Disposition | Additional provision |
---|---|---|
Relative to the TT Feature namespace | ||
#animation | permitted | |
#backgroundColor-block | permitted | |
#backgroundColor-region | permitted | |
#cellResolution | permitted | If the Document Instance includes any length value that uses the c expression, ttp:cellResolution SHOULD be present on the tt 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 the Document Instance includes any length value that uses the px expression, tts:extent SHALL be present on the tt element. |
#extent | permitted | |
#frameRate | permitted | If the Document Instance includes any clock time expression that uses the frames term or any offset time expression that uses the f metric, the ttp:frameRate attribute SHALL be present on the tt element. |
#frameRateMultiplier | permitted | |
#layout | permitted | |
#length-cell | permitted | 'c' units SHALL NOT be present outside of the value of ebutts: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 | See 6.9 Profile 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 the tt element if the document contains any time expression that uses the t metric. |
#timeBase-clock | prohibited | |
#timeBase-media | permitted | NOTE: [TTML1] specifies that the default timebase is "media" if ttp:timeBase is not specified on tt . |
#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 applied to #profile. |
#visibility-block | permitted | |
#visibility-region | permitted | |
#writingMode-horizontal-lr | permitted | |
#writingMode-horizontal-rl | permitted | |
#writingMode-horizontal | permitted | |
#zIndex | permitted | |
Extension | Disposition | Provisions |
Relative to the IMSC 1.0 Extension namespace | ||
#aspectRatio | permitted | |
#forcedDisplay | permitted | |
#progressivelyDecodable | permitted | |
#altText | permitted |
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
)).
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 in 6.11 Features, the presence of the ttp:profile
attribute is not required by this profile. The profile designator specified above is intended to be generally used to signal conformance of a Document Instance to the profile. The details of such signaling depends on the application, and can, for instance, use metadata structures out-of-band of the Document Instance.
A Document Instance SHOULD be authored using characters selected from the sets specified in B. Recommended Character Sets.
The flow of text within a region depends the dimensions and spacing (kerning) between individual glyphs. The following allows, for instance, region extents to be set such that text flows without clipping.
When rendering codepoints matching one of the combinations of computed font family and codepoints listed in A. Reference Fonts, a processor SHALL 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.
Implementations can use fonts other than those specified in A. Reference Fonts. Two fonts with equal metrics can have a different appearance, but flow identically.
See 4. Conformance for a definition of "permitted" and "prohibited".
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 tts:color SHALL be "white". NOTE: This is consistent with [ST2052-1]. |
#direction | permitted | |
#displayAlign | permitted | |
#extent-region | permitted | The tts:extent attribute SHALL be present on all region elements, where it SHALL use either px units or "percentage" syntax. |
#fontFamily-generic | permitted | A tts:fontFamily of either "monospaceSerif" or "proportionalSansSerif" SHOULD be specified for all presented text content. A tts:fontFamily of "default" SHALL be equivalent to "monospaceSerif" . |
#fontFamily-non-generic | permitted | |
#fontFamily | permitted | |
#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 | The processor SHALL 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" and SHOULD be explicitly specified such that the specified style set of each p element contains a tts:lineHeight property whose value is not assigned by initial value fallback. |
#nested-div | permitted | |
#nested-span | permitted | |
#origin | permitted | The tts:origin attribute SHALL use px units or "percentage" representation, and SHALL NOT use em 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 of tts:textOutline on a span element SHALL be 10% or less than the computed value of tts: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 1.0 Extension namespace | ||
#linePadding | permitted | If used, the attribute The processor:
NOTE: The |
#multiRowAlign | permitted | If used, the attribute The processor:
|
In contrast to this specification, [EBU-TT-D] specifies that the attributes ebutts:linePadding
and ebutts:multiRowAlign
are allowed only on the style
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 in 6.11 Features, the presence of the ttp:profile
attribute is not required by this profile. The profile designator specified above is intended to be generally used to signal conformance of a Document Instance to the profile. The details of such signaling depends on the application, and can, for instance, use metadata structures out-of-band of the Document Instance.
A presented image is a div
element with a smpte:backgroundImage
attribute that flows into a presented region.
In a given synchronic document, each presented region SHALL contain at most one div
element, which SHALL be a presented image.
For the purposes of constructing an intermediate synchronic document, a div
element with a smpte:backgroundImage
attribute SHALL NOT be considered empty.
smpte:backgroundImage
ConstraintsIf a smpte:backgroundImage
attribute is applied to a div
element:
smpte:backgroundImage
SHALL be equal to the width and height (as specified by the tts:extent
attribute using px
units) of the region in which the div
element is presented;div
element SHOULD contain a metadata
element containing an ittm:altText
element that is a text alternative of the image referenced by the smpte:backgroundImage
attribute; andsmpte:backgroundImage
attribute SHALL reference a PNG datastream as specified in [PNG]. If a pHYs chunk is present, it SHALL indicate square pixels. Note: If no pixel aspect ratio is carried, the default of square pixels is assumed.In [TTML1], tts:extent
and tts:origin
do not apply to div
elements. In order to individually position multiple div
elements, each div
can be associated with a distinct region
with the desired tts:extent
and tts:origin
.
See 4. Conformance for a definition of "permitted" and "prohibited".
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 | The p , span and br elements SHALL NOT be present. See Section 8.2.2 Constraints for constraints on div elements. |
#direction | prohibited | |
#displayAlign | prohibited | |
#extent-region | permitted | The tts:extent attribute SHALL be present on all region elements, where it SHALL use px 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 |
|
This Section specifies the Hypothetical Render Model illustrated in Fig. 1 Hypothetical Render Model .
The purpose of the model is to limit Document 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 successive intermediate synchronic documents obtained from an input Document Instance, and uses a simple double buffering model: while an intermediate synchronic document En is being painted into Presentation Buffer Pn (the "front buffer" of the model), the previous intermediate 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 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 En completes before the end of intermediate synchronic document En-1.
Whenever applicable, constraints are specified relative to root container dimensions, allowing subtitle sequences to be authored independently of Related Video Object resolution.
To enable 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 Gn and Gn-1 store rendered glyphs across intermediate 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 across intermediate synchronic documents, allowing images to be copied into the Presentation Buffer instead of decoded.
The Presentation Compositor SHALL render in Presentation Buffer Pn each successive intermediate synchronic document En using the following steps in order:
The Presentation Compositor SHALL start rendering En:
The duration DUR(En) for painting an intermediate synchronic document En in the Presentation Buffer Pn SHALL be:
DUR(En) = S(En) / BDraw + DURT(En) + DURI(En)
where
The contents of the Presentation Buffer Pn SHALL be transferred instantaneously to Presentation Buffer Pn-1 at the presentation time of intermediate 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 the Related Video Object.
It SHALL 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 table SHALL 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 the root container 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 given intermediate synchronic document.
The total normalized drawing area S(En) for intermediate synchronic document En SHALL be
S(En) = CLEAR(En) + PAINT(En )
where CLEAR(E0) = 0 and CLEAR(En | n > 0) = 1, i.e. the root container in its entirety.
To ensure consistency of the Presentation Buffer, a new intermediate synchronic document requires clearing of the root container.
PAINT(En) SHALL be the normalized area to be painted for all regions that are used in intermediate synchronic document En according to:
PAINT(En) = ∑Ri∈Rp NSIZE(Ri) ∙ NBG(Ri)
where R_p SHALL be the set of presented regions in the intermediate synchronic document En.
NSIZE(Ri) SHALL be given by:
NSIZE(Ri) = (width of Ri ∙ height of Ri ) ÷ (root container height ∙ root container width)
NBG(Ri) SHALL be the total number of tts:backgroundColor
attributes associated with the given region Ri in the intermediate synchronic document. A tts: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
or br
content element that is to be flowed into the region for presentation in the intermediate synchronic document (see [TTML1] for more details on when a content element is followed into a region); or set
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 [TTML1] for more details on when a set
animation element is applied to content elements). Even if a specified tts:backgroundColor
is the same as specified on the nearest ancestor content element or animation element, specifying any tts:backgroundColor
SHALL require an additional fill operation for all region pixels.
The Presentation Compositor SHALL paint into the Presentation Buffer Pn all visible pixels of presented images of intermediate synchronic document En.
For each presented image, the Presentation Compositor SHALL either:
Two images SHALL be identical if and only if they reference the same encoded image source.
The duration DURI(En) for painting images of an intermediate synchronic document En in the Presentation Buffer SHALL be as follows:
DURI(En) = ∑Ii ∈ Ic NRGA(Ii) / ICpy + ∑Ij ∈ Id NSIZ(Ij) / IDec
where
NRGA(Ii) is the Normalized Image Area of presented image Ii and SHALL be equal to:
NRGA(Ii)= (width of Ii ∙ height of Ii ) ÷ ( root container height ∙ root container width )
NSIZ(Ii) SHALL be the number of pixels of presented image Ii.
The contents of the Decoded Image Buffer Dn SHALL be transferred instantaneously to Decoded Image Buffer Dn-1 at the presentation time of intermediate synchronic document En.
The total size occupied by images stored in Decoded Image Buffers Dn or Dn-1 SHALL be the sum of their Normalized Image Area.
The size of Decoded Image Buffers Dn or Dn-1 SHALL be the Normalized Decoded Image Buffer Size (NDIBS).
Unless specified otherwise, the following table SHALL 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, a glyph 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 each glyph associated with a character in a presented region of intermediate synchronic document En, the Presentation Compositor SHALL:
The duration DURT(En) for rendering the text of an intermediate 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 a glyph gi SHALL be equal to:
NRGA(gi) = (fontSize of gi as percentage of root container 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 Gn SHALL be copied instantaneously to Glyph Buffer Gn-1 at the presentation time of intermediate synchronic document En.
It SHALL be an error for the sum of NRGA(gi) over all glyphs 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 in B. Recommended Character Sets | Courier New or Liberation Mono |
proportionalSansSerif | All code points specified in B. Recommended Character Sets, excluding the code points defined for Hebrew and Arabic scripts. | Arial or Helvetica or Liberation Sans |
When authoring textual content, authors are encouraged to select from sets of characters based on the language indicated using xml: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 author SHOULD 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 |
Fig. 3 Illustration of the use of itts:forcedDisplay below illustrates the use of forced content, i.e. itts:forcedDisplay
and displayForcedOnlyMode
. The content with itts:forcedDisplay
="true" is the French translation of the "High School" sign. The content with itts: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 the displayForcedOnlyMode
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 provide text alternatives for all non-text content. In the context of this specification, this text alternative is intended primarily to support users of the subtitles who cannot see images. Since the images of an Image Profile Document Instance usually represent subtitle or caption text, the guidelines for authoring text equivalent strings given at Images of text of [HTML5] are appropriate.
Thus, for each subtitle in an Image Profile Document Instance, a text equivalent content in a Text Profile Document Instance SHOULD 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 author MAY include extra information to the text equivalent string in cases where styling is applied to the text image with a deliberate connotation, as a functional 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 an Image Profile Document Instance that are intended for use as captions, 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 accessible text 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 sample Document Instances conforms to the Text and Image Profiles, 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"?> <tt xml: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"> <head> <layout> <region xml:id="area1" tts:origin="10% 10%" tts:extent="80% 10%" tts:backgroundColor="black" tts:displayAlign="center" tts:color="red"/> </layout> </head> <body> <div> <p region="area1" begin="0s" end="6s">Lorem ipsum dolor sit amet.</p> </div> </body> </tt>
<?xml version="1.0" encoding="UTF-8"?> <tt 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" xml:lang="fr"> <head> <layout> <region xml:id="region1" tts:origin="120px 410px" tts:extent="240px 40px" tts:showBackground="whenActive"/> <region xml:id="region2" tts:origin="120px 20px" tts:extent="240px 40px" tts:showBackground="whenActive"/> </layout> </head> <body> <div region="region1" begin="00:00:01:00" end="00:00:02:00" smpte:backgroundImage="1.png"/> <div region="region1" begin="00:00:03:20" end="00:00:04:12" smpte:backgroundImage="2.png"/> <div region="region2" itts:forcedDisplay="true" begin="00:00:03:20" end="00:00:04:12" smpte:backgroundImage="3.png"/> </body> </tt> </pre>
The following sections define extension designations, expressed as relative URIs (fragment identifiers) relative to the IMSC 1.0 Extension Namespace base URI.
A transformation processor supports the #progressivelyDecodable
feature if it recognizes and is capable of transforming values of the ittp:progressivelyDecodable
.
A presentation processor supports the #progressivelyDecodable
feature if it implements presentation semantic support for values of the ittp:progressivelyDecodable
attribute.
A transformation processor supports the #aspectRatio
feature if it recognizes and is capable of transforming values of the ittp:aspectRatio
.
A presentation processor supports the #aspectRatio
feature if it implements presentation semantic support for values of the ittp:aspectRatio
attribute.
A transformation processor supports the #forcedDisplay
feature if it recognizes and is capable of transforming values of the itts:forcedDisplay
.
A presentation processor supports the #forcedDisplay
feature if it implements presentation semantic support for values of the itts:forcedDisplay
attribute.
A transformation processor supports the #altText
feature if it recognizes and is capable of transforming values of the ittm:altText
element.
A presentation processor supports the #altText
feature if it implements presentation semantic support for values of the ittm:altText
element.
A transformation processor supports the #linePadding
feature if it recognizes and is capable of transforming values of the ebutts:linePadding
attribute specified in [EBU-TT-D].
A presentation processor supports the #linePadding
feature if it implements presentation semantic support for values of the ebutts:linePadding
attribute specified in [EBU-TT-D].
A transformation processor supports the #multiRowAlign
feature if it recognizes and is capable of transforming values of the ebutts:multiRowAlign
attribute specified in [EBU-TT-D].
A presentation processor supports the #multiRowAlign
feature if it implements presentation semantic support for values of the ebutts:multiRowAlign
attribute specified in [EBU-TT-D].
XML Schema definitions (see [xmlschema-1]) for extension vocabulary defined by this specification are provided here for convenience.
These definitions are non-normative and are not sufficient to validate conformance of a Document Instance.
In any case where a definition specified by this appendix diverge from the prose of the specification, then the latter takes precedence.