Re: [TTML2] font face (ISSUE-273)

On Thu, Nov 20, 2014 at 2:17 AM, Nigel Megitt <nigel.megitt@bbc.co.uk>
wrote:

>  Yoshiharu,
>
>  Thank you for this extra explanation.
>
>  Is there any restriction on the number of font-face elements with the
> same font-family name? If multiple font-faces with the same font-family are
> permitted, with overlapping unicode-range values, is there an algorithm for
> determining the correct one to use?
>

Firstly, note that we already have the case where multiple potential fonts
apply, since tts:fontFamily expresses a prioritized list of families.

Secondly, regardless of what is done by ARIB, the approach I am drafting
for TTML explicitly does not have such a restriction, and, indeed, requires
support for selecting among multiple fonts sharing the same family name
where other characteristics may differ, particularly character ranges. In
such a case, for a given run of text that shares the same family, style,
and weight, it may require sub-runs over that text where each sub-run maps
to a different font resource, e.g., due to different ranges being supported.

The general font selection algorithm is as follows:

   1. for a run of text that shares the same font family, style, and
   weight, compute an ordered list of font resources that "map" to these
   parameters (family, style, weight), taking into account fallback cases as
   required;
   2. sub-divide this run such that each sub-run maps to the highest
   priority single font resource in this ordered list, where the font resource
   can map (to a glyph) each character in the sub-run, and where the sub-run's
   length is maximized;

With this algorithm, if there are multiple font resources that can map the
same character (to a glyph), then a sub-run terminates when a higher
priority font resource is available than the font resource initially
selected for the sub-run.

So, for example, if one has run of "ABCDE", and the following character
mapping support:

F1 - maps A, B, C, D, E
F2 - maps C, D

and priority F2 > F1

then one would get the following sub-runs:

"AB" : F1
"CD" : F2
"E : F1

If necessary, we could define a fontSelectionStrategy style property that
selects between stop-sub-run-on-higher-priority or maximize-sub-run-length.
The above example shows use of the stop-sub-run-on-higher-priority, while
the maximize-sub-run-length strategy would yield:

"ABCDE" : F1

Note that there already is a font-selection-strategy property in XSL-FO
[1], which has two values:

   - auto (default)
   - character-by-character

The 'stop-sub-run-on-higher-priority' approach above effectively
corresponds to the character-by-character strategy, while the
'maximize-sub-run-length' approach is one possible (and commonly
implemented) interpretation of the auto strategy.

[1] http://www.w3.org/TR/xsl/#font-selection-strategy





>
>  Kind regards,
>
>  Nigel
>
>
>   From: <Dewa>, "Yoshiharu (OSAKI)" <Yoshiharu.Dewa@jp.sony.com>
> Date: Thursday, 20 November 2014 04:56
> To: Nigel Megitt <nigel.megitt@bbc.co.uk>, Glenn Adams <glenn@skynav.com>
> Cc: Michael Dolan <mdolan@newtbt.com>, TTWG <public-tt@w3.org>
> Subject: RE: [TTML2] font face (ISSUE-273)
>
>    Nigel,
>
>
>
> Ok. I'll try to explain ARIB-TT font-face element definition.
>
>
>
> - arib-tt:font-face element is for specifying non-embedded font which can
> be used for "gaiji (external character)". The styling element on ARIB-TTML
> document can deploy one or more arib-tt:font-face element optionally.
>
>
>
> arib-tt:font-face :
>
>    font-family : Mandatory attribute for non-embedded font. tts:fontFamily
> attribute in other element can refer this font-family name.
>
>    unicode-range : the range of corresponding font. The examples are as
> follows;
>
>      - unicode-range ="U+A5" ; specific character to be applied example
>
>      - unicode-range ="U+0-7F" ; specifying one range example
>
>      - unicode-range ="U+A5 , "U+0-7F, …." ; specifying multiple range
> example
>
>    arib-tt:src : parent element for specifying url attribute and format
> attribute. One or more src elements shall be specified.
>
>      url : Mandatory attribute for font file location URL.
>
>      format : font file format. "svg" or "woff" shall be specified.
>
>
>
> Syntax:
>
>
>
> <xsd:element name="font-face" type="arib:font-faceType"/>
>
>
>
> <xsd:complexType name="font-faceType">
>
>    <xsd:sequence>
>
>       <xsd:element name="src" type="arib:font-face-srcType"
>
>             maxOccurs="unbounded"/>
>
>    </xsd:sequence>
>
>    <xsd:attribute name="font-family" type="xsd:string" use="required"/>
>
>    <xsd:attribute name="unicode-range” type="xsd:string"/>
>
>    <xsd:attribute name="id" type="xsd:ID"/>
>
> </xsd:complexType>
>
>
>
> <xsd:complexType name="font-face-srcType">
>
>    <xsd:attribute name="url" type="xsd:anyURI" use="required"/>
>
>    <xsd:attribute name="format" type="xsd:string"/>
>
>    <xsd:attribute name="id" type="xsd:ID"/>
>
> </xsd:complexType>
>
>
>
>
>
> I found no explicit explanation for id attribute for font-face and src…
> though.
>
>
>
> Rgs,
>
> -- Yoshiharu
>
>
>
>
>
> *From:* Nigel Megitt [mailto:nigel.megitt@bbc.co.uk
> <nigel.megitt@bbc.co.uk>]
> *Sent:* Tuesday, November 18, 2014 11:39 PM
> *To:* Dewa, Yoshiharu (OSAKI); Glenn Adams
> *Cc:* Michael Dolan; TTWG
> *Subject:* [TTML2] font face (ISSUE-273)
>
>
>
> For information, and with permission, I have added the XSD section for
> font-face to the change proposal wiki page at
> https://www.w3.org/wiki/TTML/changeProposal015#font_face_rule as well as
> an alternate proposal being discussed in EBU. This relates to our tracker
> issue-273 at https://www.w3.org/AudioVideo/TT/tracker/issues/273
>
>
>
> There appears to be a strong semantic alignment between the proposals
> though not a syntactic one.
>
>
>
> Both proposals include in common  the semantic concepts of a font family
> name, a unicode range, and a set of sources.
>
> ARIB-TT additionally permits an xml:id attribute on both the font-face and
> the source (src child element).
>
> EBU proposal also permits matching based on font weight and font style,
> with an algorithm for selecting which source to use in case of multiple
> matches.
>
>
>
> Apologies I am unable to translate the accompanying prose from ARIB-TT for
> English speakers, or indeed any of the prose into other languages for
> non-English speakers. Therefore I do not claim to have understood the
> ARIB-TT proposal for font-face in full.
>
>
>
> Kind regards,
>
>
>
> Nigel
>
>
>
>
>
> *From: *<Dewa>, "Yoshiharu (OSAKI)" <Yoshiharu.Dewa@jp.sony.com>
> *Date: *Monday, 17 November 2014 07:56
> *To: *Glenn Adams <glenn@skynav.com>
> *Cc: *Michael Dolan <mdolan@newtbt.com>, TTWG <public-tt@w3.org>
> *Subject: *RE: ARIB-TT
> *Resent-From: *<public-tt@w3.org>
> *Resent-Date: *Monday, 17 November 2014 07:57
>
>
>
>  Hi Glenn,
>
>
>
> Ok. I'm happy to support this.
>
>
>
> Rgs,
>
> -- Yoshiharu
>
>
>
> *From:* Glenn Adams [mailto:glenn@skynav.com <glenn@skynav.com>]
> *Sent:* Monday, November 17, 2014 4:50 PM
> *To:* Dewa, Yoshiharu (OSAKI)
> *Cc:* Michael Dolan; TTWG
> *Subject:* Re: ARIB-TT
>
>
>
> Thanks. Would you like issues to be raised on TTML2 that requests support
> for this functionality?
>
>
>
> On Mon, Nov 17, 2014 at 2:11 PM, Dewa, Yoshiharu (OSAKI) <
> Yoshiharu.Dewa@jp.sony.com> wrote:
>
> Hi Glenn,
>
>
>
> Followings are my understanding, so official translated specification is
> different from this. J
>
>
>
> The arib-tt:letterspacing is an attribute that specify default letter
> spacing pixel units between letters.
>
>
>
> *Values:*
>
> <integer> value expression that use px (pixel) units
>
> *Initial:*
>
> default
>
> *Applies to:*
>
> style, body
> <https://dvcs.w3.org/hg/ttml/raw-file/tip/ttml2/spec/ttml2.html#document-structure-vocabulary-body>
> , div
> <https://dvcs.w3.org/hg/ttml/raw-file/tip/ttml2/spec/ttml2.html#content-vocabulary-div>
> , p
> <https://dvcs.w3.org/hg/ttml/raw-file/tip/ttml2/spec/ttml2.html#content-vocabulary-p>,
> span
> <https://dvcs.w3.org/hg/ttml/raw-file/tip/ttml2/spec/ttml2.html#content-vocabulary-span>
>
> *Inherited:*
>
> yes
>
> *Percentages:*
>
> N/A
>
> *Animatable:*
>
> discrete
>
>
>
> Syntax:
>
> <xsd:attribute name="letter-spacing" type="xsd:string"/>
>
>
>
>
>
>
>
> The arib-tt:marquee attribute specify element auto scrolling function.
> This attribute defines style, direction, speed and loop count can be
> specified.
>
> When the element that is arib-tt:marquee attribute specified includes
> figures/images, these figures/images also scroll together.
>
>
>
>
>
> *Values:*
>
> <string> value expression that separated by white space
>
> *Initial:*
>
> No
>
> *Applies to:*
>
> style, body
> <https://dvcs.w3.org/hg/ttml/raw-file/tip/ttml2/spec/ttml2.html#document-structure-vocabulary-body>
> , div
> <https://dvcs.w3.org/hg/ttml/raw-file/tip/ttml2/spec/ttml2.html#content-vocabulary-div>
> , p
> <https://dvcs.w3.org/hg/ttml/raw-file/tip/ttml2/spec/ttml2.html#content-vocabulary-p>,
> span
> <https://dvcs.w3.org/hg/ttml/raw-file/tip/ttml2/spec/ttml2.html#content-vocabulary-span>
>
> *Inherited:*
>
> Yes
>
> *Percentages:*
>
> N/A
>
> *Animatable:*
>
> discrete? (not sure), continuous
>
>
>
> Syntax:
>
> <xsd:attribute name="marquee" type="xsd:string"/>
>
>
>
> The marquee parameter is string that is separated by white space. The
> parameters are composed four parts
>
> <marquee-style>,  <marquee-direction>, <marquee-speed> and
> <marquee-play-count>
>
> (Ex. arib-tt:marquee=” scroll forward normal 1”)
>
>
>
> <marquee-style>: specifies scroll style as follows;
>
> scroll : from start position to end position, context of element shall be
> scrolled completely. At end position, context of the element is disappeared.
>
> slide : The context of the element is slide in from start position and
> scroll until shows completely, then stopped.
>
> alternate : from start position to end position context of element shall
> be scrolled completely. After showing completely, direction will be
> reversed and scroll again. (endless)
>
>
>
> <marquee-direction> specifies scroll direction as follows;
>
> forward:from left to right (for horizontal writing mode) or from top to
> bottom (for vertical writing mode)
>
> reverse:from right to left (for horizontal writing mode) or from bottom
> to top (for vertical writing mode)
>
>
>
> <marquee-speed> specifies scroll speed as follows
>
> slow
>
> normal
>
> fast
>
>
>
> Actual speed is specified by operational specification for each services.
>
>
>
> <marquee-play-count> specifies scroll loop count. The integer value or
> infinite can be specified.
>
>
>
> Rgs,
>
> -- Yoshiharu
>
>
>
>
>
> *From:* Glenn Adams [mailto:glenn@skynav.com]
> *Sent:* Monday, November 17, 2014 12:53 PM
> *To:* Dewa, Yoshiharu (OSAKI)
> *Cc:* Michael Dolan; TTWG
> *Subject:* Re: ARIB-TT
>
>
>
> Yoshiharu-san,
>
>
>
> Thanks for your email explaining the ARIB-TT extensions, which I
> understand are based on supporting features in legacy Videotron Lambda and
> other (?) formats.
>
>
>
> As we move forward with TTML2, it would be useful to obtain further input
> on, for example, whether new TTML2 features could interoperate (at least at
> the semantic, if not syntactic level) with the ARIB-TT features. For
> example, we have already drafted specification text for supporting:
>
>    - border [1]
>    - continuous animation [2]
>    - ruby (ルビ) [3][4][5][6]
>    - tate chu yoko (縦中横) [7]
>
>  We are also planning to support author supplied fonts (i.e., font-face),
> text shadow (in addition to the current text outline support), and have
> requests on file to support audio. Thus far, however, we don't have
> proposals to support letter spacing or marquee functions. It would be
> useful to learn if ARIB would wish to have TTML2 support these latter two
> functions (letter spacing and marquee) as well.
>
>
> Regards,
>
> Glenn Adams
>
>
>
> [1]
> https://dvcs.w3.org/hg/ttml/raw-file/tip/ttml2/spec/ttml2.html#style-attribute-border
>
> [2]
> https://dvcs.w3.org/hg/ttml/raw-file/tip/ttml2/spec/ttml2.html#animation-vocabulary-animate
>
> [3]
> https://dvcs.w3.org/hg/ttml/raw-file/tip/ttml2/spec/ttml2.html#style-attribute-ruby
>
> [4]
> https://dvcs.w3.org/hg/ttml/raw-file/tip/ttml2/spec/ttml2.html#style-attribute-rubyAlign
>
> [5]
> https://dvcs.w3.org/hg/ttml/raw-file/tip/ttml2/spec/ttml2.html#style-attribute-rubyOffset
>
> [6]
> https://dvcs.w3.org/hg/ttml/raw-file/tip/ttml2/spec/ttml2.html#style-attribute-showBackground
>
> [7]
> https://dvcs.w3.org/hg/ttml/raw-file/tip/ttml2/spec/ttml2.html#style-attribute-textOrientation
>
>
>
>
>
>
>
>
>
> On Mon, Nov 17, 2014 at 8:23 AM, Dewa, Yoshiharu (OSAKI) <
> Yoshiharu.Dewa@jp.sony.com> wrote:
>
> Hi,
>
>
>
> There are nine extensions for arib-tt name space. It is derived from
> legacy Japanese subtitle system.
>
>
>
> arib-tt:font-face : Extended for Gaiji (External character) feature using
> svg/woff font file
>
> arib-tt:keyframes : Changing various style according to keyframe element
>
> arib-tt:audio : play receiver's embedded sound or cli sound file in
> subtitle stream
>
> arib-tt:animation : Define animation timing and style for arib-tt:keyframes
>
> arib-tt:border : syntax sugar for border setting. (style, width, color)
>
> arib-tt:letter-spacing : letter spacing specified by pixel value
>
> arib-tt:marquee : marquee function
>
> arib-tt:ruby : text ruby (much simplified W3C ruby spec…)
>
> arib-tt:text-shadow : text shadow setting offset X/Y and blur radius and
> color
>
>
>
> Hope this helps,
>
>
>
> -- Yoshiharu
>
>
>
> *From:* Michael Dolan [mailto:mdolan@newtbt.com]
> *Sent:* Saturday, November 15, 2014 8:33 AM
> *To:* 'TTWG'
> *Subject:* RE: ARIB-TT
>
>
>
> I asked a Japanese TV colleague last week.  I was told that it’s currently
> authorized for UHDTV OTA and is planned for OTT. I’m trying to learn more
> and see if they want to get their extensions added to TTML/IMSC…
>
>
>
>                 Mike
>
>
>
> *From:* Glenn Adams [mailto:glenn@skynav.com <glenn@skynav.com>]
> *Sent:* Friday, November 14, 2014 3:28 PM
> *To:* TTWG
> *Subject:* ARIB-TT
>
>
>
> I've recently been apprised of the work by ARIB on extensions to TTML via
> ARIB-TT, pages number 57 and following in [1].
>
>
>
> We should try to learn more about who is doing this work and interface
> with them regarding a number of extensions they have defined (in an ARIB
> defined namespace).
>
>
>
> [1] http://www.arib.or.jp/english/html/overview/doc/2-STD-B62v1_0-1p2.pdf
>
>
>
>
>
>

Received on Thursday, 20 November 2014 13:03:20 UTC