Synchronized Accessible Media Interchange Format:

Closed Captioning & Audio Descriptions

 

By

 

David Bolnick
Accessibility Program Manager

 

— Microsoft Disclaimer —

 

WARNING: You are reading a preview version of this document. It may contain private comments and critiques. There is no guarantee that this document accurately reflects the views, designs, or opinions of Microsoft Corporation. All comments or questions should be addressed to David Bolnick at: davebo@microsoft.com.

 

 

Table Of Contents

1. Introduction *

1.1 A Very Brief History of Closed Captioning & Audio Descriptions *

1.2 The Gestalt of Closed Captioning [CC] *

1.3 The Gestalt of Audio Description [AD] *

2. Choosing an Interchange Format *

3. SAMI (Synchronized Accessible Media Interchange) *

3.1 SAMI Rendering Schemes *

4. SAMI Components *

4.1 Extension *

4.2 Object Class *

4.3 Declaration *

4.4 Header *

4.5 Title *

4.6 SAMI Parameters *

4.6.1 Copyright *

4.6.2 Media *

4.6.3 TimeStamp *

4.6.4 Length *

4.6.5 Caption Block Properties *

4.6.5.1 Metrics *

4.6.5.2 FontSize *

4.6.5.3 LineLength *

4.6.5.4 TextLines *

4.6.5.5 TextTransition *

4.6.5.6 Pos, PosX, PosY *

4.6.5.7 CaptionBlock *

4.6.6 Audio Describtion Properties *

4.6.6.1 AudioDescribtion *

4.7 Style Parameters *

4.7.1 Paragraph *

4.7.2 Table *

4.7.3 Class & Localization *

4.7.4 ID Style *

4.7.5 Source ID *

4.8 Inline Formatting *

4.8.1 Text Decoration *

4.8.2 Entities & Localization *

4.9 Synchronization *

5. Appendix *

5.1 Sample SAMI Document *

5.2 Accessible Captions *

5.2.1 Font Face *

5.2.2 Font Size & Weight *

5.2.3 Contrast *

5.2.4 Layout *

5.3 Registry *

5.4 Playing, Opening, and Authoring SAMI documents *

5.5 Entities (ISO Latin-1) *

5.6 Language Codes (ISO 639) *

5.7 Country Codes (ISO 3166) *

 

Table Of Figures  

Figure 1. Closed Captioning Music *

Figure 2. Audio Description Illustration *

Figure 3. SAMI vs. HTML Components *

Figure 4. ID Styles: Standard, Youth, and Big Print *

Figure 6. Closed Caption Menu *

Figure 6. Source ID *

Figure 7. Sample SAMI Document *

Figure 9. Registry: SAMI.Document *

Figure 10. Control Panel: Captions Property Sheet *

Figure 11. Control Panel: Sound Property Sheet *

 

Table Of Tables

Table 1. Registry: SAMI.Document/ClosedCaptions *

Table 2. Registry: SAMI.Document/AudioDescription Registry: *

Table 3. Control Panel: Captions Property Sheet - Registry Settings *

Table 4. Control Panel: Sound Property Sheet - Registry Settings *

 

1. Introduction

This document describes SAMI (Synchronized Accessible Media Interchange) which is an interchange format for the support of Closed Captions [CC], and Audio Descriptions [AD]. SAMI is both flexible and extensible and can be employed as an intermediate for encoding processes, like NTSC-Line 21, or as a client side script (which is the focus of this document).

1.1 A Very Brief History of Closed Captioning & Audio Descriptions

Closed Captioning:

http://www.boston.com/wgbh/pages/ncam/captionedmovies.html

Audio Description:

http://www.boston.com/wgbh/pages/ncam/dvsscience.html

1.2 The Gestalt of Closed Captioning [CC]

First, I want to clarify the intent of closed captioning. Closed captioning is solely an ‘alternate form’ of audio content. It is not, a priori, related to video content. Therefore, the goal for media titles is to provide closed captioning for all audio content, be it standalone or associated with video or animated content. Furthermore, like subtitling, closed captioning implies that the alternate representation (usually text) is synchronized with the audio content. Since closed captioning is used by deaf users or with the audio turned off, it also includes the description of sounds (e.g., "... the dog barks...") as well as symbols and icons to represent the type of content (e.g., might be used for music).

Traditionally, the alternate form of audio content is text. Yet, we should not ignore the possibilities of creating richer forms of closed captioning. For example, the alternate form of lyrics is text, but the alternate form of music can be notes (see Figure 1). These richer forms of captioning would serve a much broader audience. In fact, you might find it interesting that most users of closed captioning are not deaf. It is used by people who want to learn a second language, by students learning to read, and by people in noisy environments. Furthermore, closed captioning will become mainstream as multimedia noise pollution increases in the classroom, library, and workplace.

A. Captioning music with text. Imagine only viewing this throughout the entire score.
Notice the Source ID (gray) panel where the speaker's name or description can be placed. In this example, the music lyricist was placed in the Source ID panel.

B. Captioning music with musical notation. This could easily become a teaching tool.

Figure 1. Closed Captioning Music

1.3 The Gestalt of Audio Description [AD]

Audio Description [AD] is simply a narrative description of the current scene or setting. Audio description started in the old days of radio where all users relied on well-composed descriptions to visualize what they could not see. Today, most people watch television as a replacement for radio. Unfortunately, this has created a large void for the blind community who must rely on audio to extract the entire meaning of an audio-visual presentation. To aid blind users and users with limited vision, we can blend a stream of audio description content into the ‘quiet’ portions of a sound track. For example, in Figure 2 you can see the audio content of a movie scene. In the first case (A) the blind user would not have a clue as to what’s happening except that someone yelled, "Who goes there?" In the latter case (B), where [AD] has been inserted, the blind user could easily visualize the scene and the context in which "Who goes there?" was said. The art of audio description is in the timing…

Figure 2. Audio Description Illustration

Note: We need to study or determine how audio content can be filtered to assist folks with hearing disabilities. For example; If a user has no low frequency hearing, can we take all the low frequency content and shift it up to midrange? Just suppressing low frequency and boosting midrange (as most do) does not help.

2. Choosing an Interchange Format

It was my hopes that I could simply use an established interchange format for closed captioning and audio description. I reviewed several possibilities and found that, in general, they fell short of our needs:

3. SAMI (Synchronized Accessible Media Interchange)

Thus, the interchange format I describe below is based on SGML/HTML. To avoid confusion, the document type will be referred to as SAMI (Synchronized Accessible Media Interchange). Every SAMI document should start with: <SAMI> and end with: </SAMI>. Its class name is "Synchronized Accessible Media Interchange Document" and its file extension is , .SMI or .SAMI.

3.1 SAMI Rendering Schemes

At its most basic level SAMI can be used as an intermediate interchange format for encoding closed captions in the form of Line-21 for NTSC, MPEG for DVD’s and IFE-ITV, and the like. On the other hand, SAMI is well suited for client-side rendering. That is, the audio/video/animation content is stored separately and synchronized with the SAMI content on the client side (on the fly). The two big downsides to this scheme are: 1) you have two or more files to keep track of, and 2) you need a client side rendering engine. In the case of multimedia, the latter should not be much of a concern. On the other hand, the benefits are substantial:

The way Microsoft will accomplish client side rendering is by having the SAMI files processed by the DirectShow media player. DirectShow will parse the SAMI file and hand off the contents, in sync with the base media (video, audio, or animation), to a display engine. In this case, the display engine will be Trident (a DHTML display engine). This allows us to use standard HTML formatting within SAMI. In fact, you will notice below that SAMI is strongly based on CSS1 (Cascading Style Sheets, Level 1) format.

4. SAMI Components

Since SAMI is closely based on HTML it has a similar (but not identical) component construct (see Figure 3). This makes SAMI an easy format to learn and edit.

SAMI

HTML

<SAMI>

<Head>

…Header parameters…

</Head>

<Body>

…content to be displayed…

</Body>

</SAMI>

<HTML>

<Head>

…Header parameters…

</Head>

<Body>

…content to be displayed…

</Body>

<HTML>

Figure 3. SAMI vs. HTML Components

4.1 Extension

For file systems that use or register extensions, the following should be used unless it conflicts with an existing registered extension: .SMI or .SAMI
Examples:

CC-SAMPLE.SMI

CC-SAMPLE.SAMI

4.2 Object Class

For file systems that register object class the following should be used (see Section 5.3, page *):

Synchronized Accessible Media Interchange Document

SAMI.Document

4.3 Declaration

All SAMI documents must declare themselves at the top of the file before any other content (see Figure 7. Sample SAMI Document). This is done with the following start tag: <SAMI>

At the end of the SAMI document or at the end of the SAMI section of the document the following end tag is inserted: </SAMI>. If omitted, an EOF is assumed to terminate the SAMI document.

As implied above, the terminating declaration can be placed before the physical end of the file. This allows for a scrap area that is completely ignored by the SAMI rendering engine.

4.4 Header

The header section (between the <Head> and </Head> tags) is required and contains the SAMIParam and Style sections (see Figure 7. Sample SAMI Document). These sections contain the basic layout and format information.

 

<Head>

<Title> …Title… </Title>

<SAMIParam><!--

…SAMI Parameters… -->

</SAMIParam>

<STYLE TYPE="text/css"><!--

…Style Parameters… -->

</Style>

</Head>

 

 

4.5 Title

Description:

The <Title> tag is used for informational purposes in SAMI and is optional – though not a bad thing to have (see Figure 7. Sample SAMI Document).

Use:

<Title><text of title></TitleL>

Example:

<Title>Microsoft Software Helps You Learn</Title>

4.6 SAMI Parameters

SAMI parameters are entered within the SAMIParam section, bounded by <SAMIParam> and </SAMIParam> (see Figure 7. Sample SAMI Document). SAMI parameters are of two types. Some parameters are strictly informational. The SAMI engine ignores these parameters. For example, ‘Copyright’ will not make or break a SAMI document; it is simply a designation of ownership. Other parameters are used to set the initial attributes of the caption box.

Note: All SAMIParam length units are in points (pt = 1/72 inch) unless otherwise specified. All SAMIParam time units are in milliseconds (ms = 1/1000 seconds) unless otherwise specified.

4.6.1 Copyright

Description:

The use of Copyright is informational only and is not parsed by the SAMI rendering engine. Its use with the SAMIParam section implies that the copyright only covers the transcription, formatting, and timestamps. Copyright of the media must be specified elsewhere.

Use:

Copyright="<copyright string>"

Example:

Copyright="(C)Copyright 1997, Microsoft Corporation"

4.6.2 Media

Description:

The Media parameter is used as a cross-reference for activation and as a record of the base media. A Primary URL and Secondary URL can be specified within the Media parameter. In most cases, only the Primary value will be used. The Secondary URL could be used in cases where the user gets to choose whether they want to play the video clip with sound or just the sound file. The Media parameter is not required (though a good practice and may be required in future versions).

Use:

Media="<primary URL>","<secondary URL>"

Example:

Media="MS-Learn.avi", "MS-Learn.wav"

4.6.3 TimeStamp

Description:

TimeStamp designates the time units for synchronization. DirectShow only supports milliseconds (ms) but SAMI is suited for use with other systems that use, for example, ‘Frame’ and ‘SMPTE’ units. The TimeStamp parameter is not required.

Use:

TimeStamp=<time units> (default: ms)

Example:

TimeStamp=ms

4.6.4 Length

Description:

The Length parameter specifies the total duration of the SAMI document in TimeStamp units. This is important for setting up the playback UI (e.g., progress bars). Therefore ‘Length’ is a required parameter.

Use:

Length=<duration in TimeStamp units>

Example:

Length=30000

4.6.5 Caption Block Properties

Description:

The Caption Block Properties represent a family of parameters that describe the appearance of the caption block and its contents. A caption block in SAMI is defined as a paragraph. Each new paragraph will have the affect of blanking the caption block (window) and displaying the new paragraph within that block.

4.6.5.1 Metrics

Description:

The caption block and its textual contents can either be ‘Fixed’ in size or ‘Scaleable’ in size. If it is scaleable, the text will increase in size commensurate with an increase in caption block size (see LineLength below). The ability to change the text size on-the-fly is especially important for users with limited sight.

Use:

CaptionMetrics=<Fixed or Scaleable> (default: Scaleable - where supported)

Example:

CaptionMetrics=scaleable

4.6.5.2 FontSize

Description:

The default font size is set with the FontSize parameter. This is important for scalability (see LineLength below).

Use:

CaptionFontSize=<Font size in points> (default = 12)

Example:

CaptionFontSize=12

4.6.5.3 LineLength

Description:

The default length of the caption line is set with the LineLength parameter. This tells the display engine where to wrap text lines. This is also important for scalability. That is, the ratio of CaptionFontSize/CaptionLineLength is used for scaling. For example:

New FontSize = Int ((CaptionFontSize/CaptionLineLength) * New LineLength)

Or

New LineLength = Int ((CaptionLineLength/CaptionFontSize) * New FontSize)

Use:

CaptionLineLength=<line length in points> (default 190 for 12pt font)

Example:

CaptionLineLength=190

4.6.5.4 TextLines

Description:

The default caption block height, in lines, is set by CaptionTextLines. The default is 3 lines. If a text string extends beyond the number of lines set by CaptionTextLines, and CaptionMetrics is set to Scaleable, then the caption block is increased in size to accommodate the additional lines. The caption block is resized to the CaptionTextLines size with the next text string. If the CaptionMetrics are Fixed, then the additional text is cropped. The latter might be the case if the captions are placed within a fixed frame of a Web page (and is therefore the error of the Web author).

Use:

CaptionTextLines=<lines per caption block> (default = 3)

Example:

CaptionTextLines=3

4.6.5.5 TextTransition

Description:

TextTransition is used to tell the SAMI rendering engine how to display the captions. Two types of transitions are supported by DirectShow (though many more will no doubt be supported in future releases): PopOn and Scroll.

PopOn transition is accomplished by replacing the contents of the caption block with the caption string all at once (this is the default and the easiest to read).

Scroll transition is accomplished by displaying the first line of a caption string on line 3 of the caption block. Then, copying line 3 of the caption block to line 2 of the caption block and display line 2 of the caption string on line 3 of the caption block. Finally, copy line 2 of the caption block to line 1 of the caption block. Then copy line 3 of the caption block to line 2 of the caption block. Then display line 3 of the caption text on line 3 of the caption block. This is one scroll cycle.

Use:

CaptionTextTransition=<PopOn or Scroll> (default=PopOn)

Example:

CaptionTextTransition=PopOn

4.6.5.6 Pos, PosX, PosY

Description:

PosX and PosY allows the author to place the caption block any location relative to the upper left corner of the image. The author has the ability to use absolute positioning (in points from the upper left corner) or descriptive positioning (e.g., bottom, top, etc.) relative to the entire image. The use of PosX and PosY is mostly needed for displaying captions over the image itself (as is done on TV captions). For the most part, captions presented in multimedia titles will be positioned at the bottom of the image so that no part of the image is obscured. The use of Pos alone is provided as a shortcut for applying default values to both PosX and PosY. For example, assigning Pos=auto will apply the 'auto' value to both PosX and PosY. In addition, Pos=Top is the same as PosX=Left, PosY=Top, and Pos=Bottom is the same as PosX=Left, PosY=Bottom.

Use:

CaptionPosX=<pt, Left, Right, Center, Auto> (default=auto/Left)

CaptionPosY=<pt, Bottom, Top, Auto> (default=auto/Bottom)

CaptionPos=<Auto, Bottom, Top> (default=Auto)

Examples:

CaptionPosX=Center
CaptionPosY=Bottom

CaptionPos=Auto

4.6.5.7 CaptionBlock

Description:

Some Caption block properties can be changed, on-the-fly, at the beginning of each paragraph. This is done with the CaptionBlock tag. This is especially useful if you are displaying captions within the image (as it is done on TV). This would allow the author to place the captions relative to the background image.

Supported Parameters: LineLength, FontSize, Pos, PosX, PosY

Use:

<CaptionBlock <Parameter List>>

Example:

<CaptionBlock LineLength=190 FontSize=12 PosX=Left PosY=Bottom>

NOTE: The above tag will update the parameters of the caption block and therefore modify its scaling (see LineLength above).

4.6.6 Audio Describtion Properties

4.6.6.1 AudioDescribtion

Description:

AudioDescription is used to alert the SAMI engine that it will have to play an alternate audio track or synchronize an alternate, external audio file if the user's Registry option, AudioDescriptionOn, is set.

Use:

AudioDescription=<Yes or No> (default=No)

Example:

AudioDescription=Yes

4.7 Style Parameters

Style parameters are used to format textual display and to provide a method for multiple language support. SAMI Styles are based on the CSS (W3C Cascaded Style Sheet) method and parameters. Style parameters are entered within the Style section, bounded by <Style Type="text/css"> and </Style> (see Figure 7. Sample SAMI Document).

For more information on CSS, refer to: http://www.htmlhelp.com/reference/css/. It should be noted that while SAMI employs CSS methods and parameters, it does so in a restricted manner as specified below.

4.7.1 Paragraph

Description:

As previously stated, a caption block in SAMI is defined as a paragraph. So we can apply base formatting to all caption blocks using a paragraph Style.

Supported Parameters:

Background-color

Background color (default = black)

color

Font color (default = white)

font-family

Font name (default = sans-serif)

font-size

Font size (default = 14pt)

font-weight

Normal or Bold (default = Normal)

margin-left

Left margin in points (default = 12pt)

margin-right

Right margin in points (default = 12pt)

text-align

Text alignment (default = left)

Use:

P {<parameter name>: <value>;}

Example:

P {margin-left: 7pt; margin-right: 0pt; font-size: 14pt;

text-align: left; font-family: sans-serif;

font-weight: bold; color: white; background-color: black;}

Comments:

The proper use of fonts and word presentation is very important in captioning. Though any font can be used, it is best to stick to a standard 14pt Sans Serif font, like Arial or Helvetica, presented with a 190 to 220pt line length (see Figure 4). This has been determined to have good readability for VGA presentations. For children, it is recommended that 18 point text be used except when the UI is hindered by such large text. The larger font size is needed since captioning is dynamic and requires a larger font than static text. See ID Style below.

4.7.2 Table

Description:

The use of Table formatting is actually for rendering SAMI documents in standard HTML browsers (e.g., Microsoft Internet Explorer 4.0). That is, if you open a SAMI document with a browser that supports CSS1, you will be able to view the captions in a static presentation. This is very useful for reviewing captions during the production process. For this feature, it is important to enclose the caption content inside the <table> and </table> tags (Figure 7. Sample SAMI Document, below).

Supported Parameters:

width

Width of caption block. Note: It is important that this value match the value of

background-color

Background color (default = black)

Use:

TABLE {<parameter name>: <value>;}

Example:

TABLE {Width: "190pt" ; Background-color: black;}

4.7.3 Class & Localization

Description:

Class is one of the most important features in SAMI. It is reserved for defining a language specific caption or action. When a SAMI document is parsed, the rendering engine will match the Registry Lang value with the Lang value within a Class definition. The SAMI rendering engine will only act on those lines whose Class Lang value matches the Registry Lang value.

SAMI provides for 3 levels of Class naming. The primary and secondary types are based on ISO 639 and ISO 3166, respectively. This is consistent with language naming in HTML. For example; 'en' is the ISO 639 abbreviation for English and 'US' is the ISO 3166 abbreviation for United States. So en-US is how we would specify a language type of English (United States). SAMI provides for three types of tertiary (3°) descriptors: CC (Closed Captioning), AD (Audio Description), and ST (Subtitles).

Class naming, in SAMI, is accomplished by taking the Lang name and striping the hyphens - then preceding that name with a period.:

<ISO 639><ISO 3166><3°>, preceded by a period. For example:

en-US-CC would be .ENUSCC and

fr-FR-AD would be .FRFRAD

Matching Registry Lang value to the Class Lang value is first done by attempting to match all descriptors (1°, 2°, and 3°). For example, if the Registry's Lang is 'en-US then all Class Lang values that are exact matches will be rendered. If exact matches were not found, then the SAMI rendering engine will look for a match of the primary and tertiary descriptors (e.g., en-US-CC would match all Class Lang values that match ‘en-*-CC‘).

A Class is referenced by placing the Class parameter within a paragraph tag. For example: <P Class=ENUSCC>. The Class parameter can also be used as a standalone tag in SAMI documents. This tells the SAMI rendering engine to append the text that follows to the last paragraph (this is useful when captioning 1 word at a time).

In addition to language, Class can be used to modify the caption block formatting. That is, any formatting parameters that are supported in the paragraph style (above) can be added to the Class style. The use of formatting parameters within the Class style will supercede any paragraph parameters.

Use:

.<ISO 639><ISO 3166><3°> {Name: "<menu name>";
Lang: <ISO 639>-<ISO 3166>-<3°>;
<character formatting parameters>}

Examples:

.ENUSCC {Name: "English Captions"; lang: en-US-CC; color: white;}

.FRFRCC {Name: "French Captions"; lang: fr-FR-CC; color: yellow;}

.DEDEST {Name: "German Subtitles"; lang: de-DE-ST; color: green;}

.ENUSAD {Name: "English Descriptions"; lang: en-US-AD;}

4.7.4 ID Style

Description:

Often times special formatting is helpful to meet the needs of a specific audience (e.g., youth, big print, etc.). In SAMI, this is accomplished with the ID parameter. For example, in Figure 4, the 'youth' captions are displayed in 18pt. This was accomplished by creating a 'Youth' ID style and applying it to the appropriate paragraph. ID styles are defined by appending a unique name to a pound sign (#) followed by a list of supported formatting parameters.

In the HTML use of CSS styles, ID's are created and applied by the author. With SAMI, the author only creates the ID styles. The SAMI rendering engine applies the ID style at the time of synchronization according to the user selected style (default = Standard). That is, if the user selected 'Youth' style (see Figure 5 and Figure 9 below) then the SAMI engine would apply the authored '#Youth' style to each <P Class=""> tag that is rendered. If no '#Youth' ID style was authored, then the SAMI rendering engine would use the values stored in the Registry.

Use:

#<unique name> {<formatting parameters>}

Examples:

Below are the currently supported ID styles.

#Standard {Name: Standard;
margin-left: 7pt;
margin-right: 14pt;
font-size: 14pt;color: white;}

Here is an example of the use of 14pt Sans Serif font for standard adult captioning.

#Youth {Name: Youth;
margin-left: 12pt;
margin-right: 12pt;
font-size: 12pt;
color: GreenYellow;}

Here is an example of increasing the font size for children’s captioning.

.#BigPrint-1 {
Name: Big Print 1;
margin-left: 24pt; margin-right: 24pt; font-size: 24pt
color: Yellow
font-weight: bold;}

Here is an example of 'Big Print' captions for user's that need it.

.#BigPrint-2 {
Name: Big Print 2;
margin-left: 24pt; margin-right: 24pt; font-size: 24pt
color: black;
Background-color
: white;
font-weight: bold;}

Here is an example of 'HC Big Print' captions for user's that need it.

Figure 4. ID Styles: Standard, Youth, and Big Print

 

Figure 5. Closed Caption Menu

Figure 5 shows a how the ‘Captions’ context menu might appear. Image 2 shows the Language Menu. Image 3 shows the Style menu. Selecting ‘Closed Captions’ toggles the captions on and off. Selecting ‘Mute Sound’ toggles the mutes the sound when captions are available feature. Selecting ‘Language’ expands the Language menu (2). Selection ‘Style’ expands the Style menu (3). Selecting ‘Copy’ copies the text of the captions (according to the Language selection) to the clipboard.

4.7.5 Source ID

Description:

The Source ID has special use in SAMI. The Source ID is always displayed as an additional, top, line in a caption block (Figure 6). This is used to display the source of the voice or sound that is being captioned. It can contain a speaker's name or an object's name (e.g., radio). For the SAMI engine to support the Source ID feature, the #Source ID must be defined in the Style block (see Figure 7. Sample SAMI Document). The Source ID is then updated within a Sync block by applying it to an appropriate paragraph. The Source ID need only be updated when the source has changed.

Figure 6. Source ID

 

(The speaker or Source ID, in this case Pres. John F. Kennedy, is displayed in a special panel above the captions. This user interface is particularly useful in multimedia applications since images are usually too small to juxtapose the caption block near the speaker.)

Use:

#Source {<formatting parameters>}

Examples:

Below is an example of defining a Source ID in a Style block:

 

#Source {background-color: silver; color: black; font-size: 11pt;

font-family: sans-serif; font-weight: normal;}

 

Below is an example of updating a Source ID in a Sync block:

 

<P Class=ENUSCC ID=Source><IMG SRC="SID2.gif"> Lou Gehrig

4.8 Inline Formatting

Authoring captions in SAMI provides a rich breadth of character formats. That is, SAMI supports the use of most standard HTML inline formatting as well as ISO-Latin-1 Entities (see Section 5.5, Entities (ISO Latin-1) below). The latter allows for easy localization of SAMI documents.

4.8.1 Text Decoration

Description:

Supported Parameters:

<b>Bold</b>

Bold text

<i>Italic</i>

Italic text

<i><b>Bold Italic</b><i>

Bold Italic text

<s>Strikethrough</s>

Strikethrough text

<sub>Subscript</sub>

Subscript text

<sup>Superscript</sup>

Superscript text

<u>Underline</u>

Underline text

Use:

<start tag><caption text><end tag>

Examples:

The <U>rain</U> in <I><B>Spain</B> stays mainly</I> in the <S>plain</S>plane.

Would be rendered as follows

The rain in Spain stays mainly in the plainplane.

 

E=mc<sup>2</sup>

Would be rendered as follows

E=mc2

 

E=mc<sup><font size=-1>2</font></sub>

Would be rendered as follows

E=mc2

 

A<sub><i>1,2</i></sub> = X<sub>2</sub> - X<sub>1</sub>

Would be rendered as follows

A1,2 = X2 - X1

4.8.2 Entities & Localization

Description:

Entities allow SAMI to render non-English characters using only ASCII characters (see Section 5.5, Entities (ISO Latin-1) below). This approach is the current W3C standard for HTML. It has been proposed that the use of Entities be extended to include UNICODE tables.

Use:

&<entity>;

Example:

Alors on a comand&eacute; du th&eacute; et on &eacute;tait
donc assis l&agrave; sirotant notre th&eacute;…

 

Would be rendered as follows

Alors on a comandé du thé et
on était donc assis là sirotant
notre thé…

4.9 Synchronization

The 'S' in SAMI is synchronization and is the sole purpose of SAMI. SAMI introduces the <Sync Start=> tag to support this functionality (see Figure 7. Sample SAMI Document). The 'Start' parameter is assigned the media's elapsed time value, in TimeStamp units. When the elapsed play time of the media matches the 'Sync Start' time, the SAMI rendering engine passes off the contents following the <Sync Start=> tag to the SAMI display engine. If there is no content then the caption block is closed (or hidden). If there is a blank paragraph (<P>), then the caption block is blanked.

Description:

The SAMI engine parses all contents of a specific <Sync> block when the elapsed time for the media matches its Start=<media elapsed time>. If a line contains a Class parameter, then its Lang parameter must match the Registry's Lang value to be rendered. If a line contains no Class parameter then it is rendered independent of the Registry's Lang value.

Use:

<Sync Start=<media elapsed time>>

<content to be rendered>

Examples:

Below are four sequential Sync blocks that start at elapsed media times: 0, 100, 250, and 500 milliseconds. The Registry Lang value is 'en-US' so all Class values of ENUS… will be rendered. At time 0, the AudioDescriptionMedia is started and synchronized with the base media. At 100 milliseconds, the initial Source ID is displayed. Notice the use of images. At 250 milliseconds the first caption block (paragraph) is rendered. At 500 millisecond italicized text is appended to the first paragraph.

 

<SYNC Start=0>

<AudioDescriptionMedia Class=ENUSAD "MS-Learn (AD).wav">

<SYNC Start=100>

<P Class=ENUSCC ID=Source><IMG SRC="SID1.gif"> AD Narrator

<SYNC Start=250>

<P Class=ENUSCC> Type...<br>

<SYNC Start=500>

<Class=ENUSCC> <i>Microsoft</i>

 

 

Below is a Sync block that starts at 10.200 seconds of elapsed media. The Sync block contains captions in three languages: English (ENUSCC), French (FRFRCC), and German (DEDECC). Only the languages that matches the Registry Lang value will be rendered. For example, if the Registry Lang is 'en-US' then all language parameters that begin with ENUS will be rendered.

 

<SYNC Start=10200>

<P Class=ENUSCC ID=Source><IMG SRC="us.gif">
Jazz Man

<P Class=ENUSCC>we figured out that this guy
next to us was eating nachos with his wife,

<P Class=FRFRCC ID=Source><IMG SRC="fr.gif"> Jazz Man

<P Class=FRFRCC>et ce gars assis &agrave; la table
juste &agrave; c&ocirc;t&eacute; &eacute;tait
en train de manger un nacho avec sa femme,

<P Class=DEDECC ID=Source><IMG SRC="de.gif"> Jazz Man

<P Class=DEDECC>Am Nachbartisch sa&szlig; ein Paar,
die beide mexikanische Nachos a&szlig;en.

</SYNC>

 

 

5. Appendix

5.1 Sample SAMI Document

 

Figure 7. Sample SAMI Document

5.2 Accessible Captions

Captions themselves must be accessible. That is, they must be of an easily readable font face, sufficient size and font weight, and presented with sufficient contrast. There are many articles on the subject so I will just highlight the recommended attributes here.

5.2.1 Font Face

It is universally accepted that the use of a Sans Serif font is preferred for all Latin based captions, though there are Serif fonts that are acceptable (see below).

Perferred

Acceptable

Helvetica

Times Roman

Arial

New Century Schoolbook

Univers 55

Palatino

Futura

MS Serif

Tahoma

 

MS Sans Serif

 

5.2.2 Font Size & Weight

Most Font metrics are based on the letters X, x, and h.

The font Width is defined as: Width% = (Font W. of X * 100) / (Font Ht. of X), and should range from 65 to 95% (Tahoma = 82.5%).

The font X-Height is defined as: X-Height% = (Font Ht. of x * 100) / (Font Ht. of X), and should range from 65 to 75% (Tahoma = 75%).

The font Weight is defined as: Weight% = (W. of h spine * 100) / (Font Ht of h), and should range from 10 to 15% (Tahoma = 11.5%). Note: In most cases, the bold form of a font is less accessible than the normal weight.

The font size is determined by the size of the monitor and the average viewing distance from the monitor. A good size for the average Windows display is 14pt for adult captions and 18pt for youth captions. For the sake of usability testing, a user with a corrected vision of 20/30 should be able to read the standard settings.

5.2.3 Contrast

The font contrast is defined as: Contrast = ((%Brighter - %Darker) * 100) / (%Brighter), where the colors are the % Gray Scale equivalents, and should range from 70 to 100%.

70% Tahoma

100% Tahoma

100% Tahoma

70% Tahoma

5.2.4 Layout

Text should only be hyphenated when it is grammatically correct to connect two or more words; e.g., time-lapse. Text should be left-aligned (and not centered, right-aligned, or justified). On average, each line should not exceed five words (25-35 characters) - about 190pts for a 12pt font. The line length may have to be adjusted for different languages; e.g., French requires about 20%, and German about 30%, more space than English. Margins should be at least the same values as the font size in points. (e.g., if the Font Size is 12pts then the right and left margins should be 12pts each).

5.3 Registry

Default SAMI and Style parameters are stored in the Registry (Figures 3, 4, 5). When a SAMI document does not include specific SAMI or Style parameters, the Registry values should be used. In future Window OS releases (Memphis and NT5), the Control Panel will be updated to allow users to manipulate key values (see below).

All Closed Caption properties and Audio Description properties are stored respectfully in:

HKEY_CLASSES_ROOT/SAMI.Document/ClosedCaptions

KEY_CLASSES_ROOT/SAMI.Document/AudioDescription

Figure 8. Registry: SAMI.Document

Parameter

Default

Use

(Default)

"CC; Closed Captions"

Tertiary lang descriptor (see Lang below); Menu description

CaptionBoxPosition

"Bottom"

DirectShow will display the captions under the view window (Bottom). Within HTML the captions box can be placed anywhere. Future versions of DirectShow will support floating positions.

CaptionFontSize

"12"

Font size in points

CaptionLineLength

"190"

Line length in points

CaptionMetrics

"Scaleable"

Caption window/text Scaleable or Fixed

CaptionMute

"0"

Mute volume when ClosedCaptionOn=1

CaptionTextLines

"3"

Number of caption lines. This is use with the FontSize to calculate the height of the caption window.

CaptionTextTransion

"PopOn"

The text can be displayed a block at a time (PopOn) or scrolled from bottom-to-top one line at a time (Scroll).

ClosedCaptionOn

"1"

If the user has turn on captions this value is set to 1. If the ShowSounds flag is set when DirectShow is first initiated, DirectShow should set ClosedCaptionOn=1. Check ShowSounds flag by calling the SystemParametersInfo function with the SPI_GETSHOWSOUNDS value.

Lang

"en-US"

User selected language. This value is based on the following:
<ISO 639>-<ISO 3166>
The 1° and 2° types are used to designate the language. A 3° type is used within the SAMI document to designate features like closed captions (CC) or audio description (AD). See (Default) above.

LangList

"HKEY_LOCAL_MACHINE/System/
CurrentControlSet/Control/NIs/Locale"

Location of Language list for user selection

LengthUnits

"pt"

DirectShow uses points for unit length

Override

"0"

When Override is set, DirectShow will use these default values to override the authored values. This allows the user to set preferences.

Style_P

"P {margin-left: "5pt"; margin-right: "5pt";
font-size: 12pt; text-align: left;
font-family: sans-serif; font-weight: bold;
color: white; Background-color: black;}"

Default Paragraph style

Style_SourceID

"#Source {vertical-align: top;
background-color: silver; font-size: 11pt;
font-family: sans-serif; color: black;
font-weight: normal;}"

Default SourceID style

Style_StandardID

"#Standard {Name: Standard;}"

Default StandardID style

Style_YouthID

"#Youth {Name: Youth; font-size: 18pt;
font-family: sans-serif; color: greenyellow;
font-weight: normal;}"

Default YouthID style

Style_BigPrint-1ID

"#BigPrint-1 {Name: Big Print 1;
font-size: 24pt; color: Yellow;
font-weight: bold;}"

Default BigPrint-1ID style

This style can be used as a HC scheme

Style_BigPrint-2ID

"#BigPrint-2 {Name: Big Print 2;
background-color: white;
font-size: 24pt; color: black;
font-weight: bold;}"

Default BigPrint-2ID style

This style can be used as a HC scheme

Style_UserID

"#User { Name: <user>;
<See Table 3 below >}

These are the user definable settings. They are applied as a style ID if 'Override' is set. <user> is the registered user name.

TimeStamp

"ms"

DirectShow only supports miliseconds. SAMI convention supports Miliseconds, Frames, and SMPTE as appropriate.

Table 1. Registry: SAMI.Document/ClosedCaptions

 

Parameter

Default

Use

(Default)

"AD; Audio Description"

Tertiary lang descriptor (see Lang below); Menu description

AudioDescriptionOn

"0"

If the user has turn on Audio Description this value is set to 1.

Style

"Standard"

This is for future use and only "Standard" is currently supported. Set edit control to read/only

Lang

"en-US"

User selected language. This value is based on the following:
<ISO 639>-<ISO 3166>
The 1° and 2° types are used to designate the language.

Table 2. Registry: SAMI.Document/AudioDescription Registry:

Figure 9 depicts a possible change in the 'Sounds Properties' Control Panel to include user preferences for closed caption display. This change (or some facsimile) will be provided in the next OS upgrade, Memphis and Windows NT 5. Until then, an alternate approach will be provided for the user.

Table 3 lists the relation between ShowSounds field values and Registry values.

Figure 9. Control Panel: Captions Property Sheet

 

Parameter

Default

Captions Property Sheet Field

CaptionMute

"0"

Mute sound when captions are available

CaptionBoxPosition

"Bottom"

Position

CaptionTextTransion

"PopOn"

Text transition

ClosedCaptionOn

"1"

Use ShowSounds (& SPI_SETSHOWSOUNDS)

Lang

"en-US"

Language.

Override

"0"

Use these settings (apply ID style #<user>)

Style

"Standard"

"Style"

Style_UserID

"#User {Name: <user>; font-size: 12pt;
font-family: tahoma; font-weight: normal;
color: white; Background-color: black;}"

Size; Font; Bold; Color; Background respectively

Table 3. Control Panel: Captions Property Sheet - Registry Settings

 

Figure 10 depicts a possible change in the 'Accessibility Properties' Control Panel to include user preferences for closed caption display (ShowSounds) and Audio Descriptions. This change (or some facsimile) will be provided in the next OS upgrade, Memphis and Windows NT 5. Until then, an alternate approach will be provided for the user.

The ShowSounds Settings… button tunnels to the 'Captions' property sheet on the 'Sounds Properties' Control Panel (Figure 9).

Table 4 lists the relation between Audio Descriptions field values and Registry values.

Figure 10. Control Panel: Sound Property Sheet

 

Parameter

Default

Captions Property Sheet Field

AudioDescriptionOn

"0"

Audio Descriptions

Style

"Standard"

Style

Lang

"en-US "

Language

Table 4. Control Panel: Sound Property Sheet - Registry Settings

5.4 Playing, Opening, and Authoring SAMI documents

This aspect of managing SAMI documents is still under development and should be resolved soon.

5.5 Entities (ISO Latin-1)

To keep SAMI documents as ASCII only, the following Entities can be used. All Entities listed below are from the ISO Latin-1 character set.

 

Char

Decimal

Hex

Entity

160

a0

&nbsp;

¡

161

a1

&iexcl;

¢

162

a2

&cent;

£

163

a3

&pound;

¤

164

a4

&curren;

¥

165

a5

&yen;

¦

166

a6

&brvbar;

§

167

a7

&sect;

¨

168

a8

&uml;

©

169

a9

&copy;

ª

170

aa

&ordf;

"

171

ab

&laquo;

¬

172

ac

&not;

­

173

ad

&shy;

®

174

ae

&reg;

¯

175

af

&macr;

°

176

b0

&deg;

±

177

b1

&plusmn;

²

178

b2

&sup2;

³

179

b3

&sup3;

´

180

b4

&acute;

µ

181

b5

&micro;

182

b6

&para;

·

183

b7

&middot;

¸

184

b8

&cedil;

¹

185

b9

&sup1;

º

186

ba

&ordm;

"

187

bb

&raquo;

¼

188

bc

&frac14;

½

189

bd

&frac12;

¾

190

be

&frac34;

¿

191

bf

&iquest;

À

192

c0

&Agrave;

Á

193

c1

&Aacute;

Â

194

c2

&Acirc;

Ã

195

c3

&Atilde;

Ä

196

c4

&Auml;

Å

197

c5

&Aring;

Æ

198

c6

&AElig;

Ç

199

c7

&Ccedil;

È

200

c8

&Egrave;

É

201

c9

&Eacute;

Ê

202

ca

&Ecirc;

Ë

203

cb

&Euml;

Ì

204

cc

&Igrave;

Í

205

cd

&Iacute;

Î

206

ce

&Icirc;

Ï

207

cf

&Iuml;

Ð

208

d0

&ETH;

Ñ

209

d1

&Ntilde;

Ò

210

d2

&Ograve;

Ó

211

d3

&Oacute;

Ô

212

d4

&Ocirc;

Õ

213

d5

&Otilde;

Ö

214

d6

&Ouml;

×

215

d7

&times;

Ø

216

d8

&Oslash;

Ù

217

d9

&Ugrave;

Ú

218

da

&Uacute;

Û

219

db

&Ucirc;

Ü

220

dc

&Uuml;

Ý

221

dd

&Yacute;

Þ

222

de

&THORN;

ß

223

df

&szlig;

à

224

e0

&agrave;

á

225

e1

&aacute;

â

226

e2

&acirc;

ã

227

e3

&atilde;

ä

228

e4

&auml;

å

229

e5

&aring;

æ

230

e6

&aelig;

ç

231

e7

&ccedil;

è

232

e8

&egrave;

é

233

e9

&eacute;

ê

234

ea

&ecirc;

ë

235

eb

&euml;

ì

236

ec

&igrave;

í

237

ed

&iacute;

î

238

ee

&icirc;

ï

239

ef

&iuml;

ð

240

f0

&eth;

ñ

241

f1

&ntilde;

ò

242

f2

&ograve;

ó

243

f3

&oacute;

ô

244

f4

&ocirc;

õ

245

f5

&otilde;

ö

246

f6

&ouml;

÷

247

f7

&divide;

ø

248

f8

&oslash;

ù

249

f9

&ugrave;

ú

250

fa

&uacute;

û

251

fb

&ucirc;

ü

252

fc

&uuml;

ý

253

fd

&yacute;

þ

254

fe

&thorn;

ÿ

255

ff

&yuml;

"

34

22

&quot;

&

38

26

&amp;

<

60

3c

&lt;

>

62

3e

&gt;

5.6 Language Codes (ISO 639)

Code

Language

aa

Afar

ab

Abkhazian

af

Afrikaans

am

Amharic

ar

Arabic

as

Assamese

ay

Aymara

az

Azerbaijani

ba

Bashkir

be

Byelorussian

bg

Bulgarian

bh

Bihari

bi

Bislama

bn

Bengali; Bangla

bo

Tibetan

br

Breton

ca

Catalan

co

Corsican

cs

Czech

cy

Welsh

da

Danish

de

German

dz

Bhutani

el

Greek

en

English

eo

Esperanto

es

Spanish

et

Estonian

eu

Basque

fa

Persian

fi

Finnish

fj

Fiji

fo

Faeroese

fr

French

fy

Frisian

ga

Irish

gd

Scots Gaelic

gl

Galician

gn

Guarani

gu

Gujarati

ha

Hausa

hi

Hindi

hr

Croatian

hu

Hungarian

hy

Armenian

ia

Interlingua

ie

Interlingue

ik

Inupiak

in

Indonesian

is

Icelandic

it

Italian

iw

Hebrew

ja

Japanese

ji

Yiddish

jw

Javanese

ka

Georgian

kk

Kazakh

kl

Greenlandic

km

Cambodian

kn

Kannada

ko

Korean

ks

Kashmiri

ku

Kurdish

ky

Kirghiz

la

Latin

ln

Lingala

lo

Laothian

lt

Lithuanian

lv

Latvian, Lettish

mg

Malagasy

mi

Maori

mk

Macedonian

ml

Malayalam

mn

Mongolian

mo

Moldavian

mr

Marathi

ms

Malay

mt

Maltese

my

Burmese

na

Nauru

ne

Nepali

nl

Dutch

no

Norwegian

oc

Occitan

om

(Afan) Oromo

or

Oriya

pa

Punjabi

pl

Polish

ps

Pashto, Pushto

pt

Portuguese

qu

Quechua

rm

Rhaeto-Romance

rn

Kirundi

ro

Romanian

ru

Russian

rw

Kinyarwanda

sa

Sanskrit

sd

Sindhi

sg

Sangro

sh

Serbo-Croatian

si

Singhalese

sk

Slovak

sl

Slovenian

sm

Samoan

sn

Shona

so

Somali

sq

Albanian

sr

Serbian

ss

Siswati

st

Sesotho

su

Sundanese

sv

Swedish

sw

Swahili

ta

Tamil

te

Tegulu

tg

Tajik

th

Thai

ti

Tigrinya

tk

Turkmen

tl

Tagalog

tn

Setswana

to

Tonga

tr

Turkish

ts

Tsonga

tt

Tatar

tw

Twi

uk

Ukrainian

ur

Urdu

uz

Uzbek

vi

Vietnamese

vo

Volapuk

wo

Wolof

xh

Xhosa

yo

Yoruba

zh

Chinese

zu

Zulu

5.7 Country Codes (ISO 3166)

ISO 3166 codes (2-letter, 3-letter, and numeric) for the representation of countries names (3rd Edition).

Country

2

3

#

Afghanistan

AF

AFG

004

Albania

AL

ALB

008

Algeria

DZ

DZA

012

American Samoa

AS

ASM

016

Andorra

AD

AND

020

Angola

AO

AGO

024

Anguilla

AI

AIA

660

Antarctica

AQ

ATA

010

Antigua and Barbuda

AG

ATG

028

Argentina

AR

ARG

032

Aruba

AW

ABW

533

Australia

AU

AUS

036

Austria

AT

AUT

040

Bahamas

BS

BHS

044

Bahrain

BH

BHR

048

Bangladesh

BD

BGD

050

Barbados

BB

BRB

052

Belgium

BE

BEL

056

Belize

BZ

BLZ

084

Benin

BJ

BEN

204

Bermuda

BM

BMU

060

Bhutan

BT

BTN

064

Bolivia

BO

BOL

068

Botswana

BW

BWA

072

Bouvet Island

BV

BVT

074

Brazil

BR

BRA

076

British Indian Ocean Territory

IO

IOT

086

Brunei Darussalam

BN

BRN

096

Bulgaria

BG

BGR

100

Burkina Faso

BF

BFA

854

Burma

BU

BUR

104

Burundi

BI

BDI

108

Byelorussian SSR

BY

BYS

112

Cameroon

CM

CMR

120

Canada

CA

CAN

124

Cape Verde

CV

CPV

132

Cayman Islands

KY

CYM

136

Central African Republic

CF

CAF

140

Chad

TD

TCD

148

Chile

CL

CHL

152

China

CN

CHN

156

Christmas Island

CX

CXR

162

Cocos (Keeling) Islands

CC

CCK

166

Colombia

CO

COL

170

Comoros

KM

COM

174

Congo

CG

COG

178

Cook Islands

CK

COK

184

Costa Rica

CR

CRI

188

Cote D'Ivoire

CI

CIV

384

Cuba

CU

CUB

192

Cyprus

CY

CYP

196

Czechoslovakia

CS

CSK

200

Denmark

DK

DNK

208

Djibouti

DJ

DJI

262

Dominica

DM

DMA

212

Dominican Republic

DO

DOM

214

East Timor

TP

TMP

626

Ecuador

EC

ECU

218

Egypt

EG

EGY

818

El Salvador

SV

SLV

222

Equatorial Guinea

GQ

GNQ

226

Ethiopia

ET

ETH

230

Falkland Islands (Malvinas)

FK

FLK

238

Faroe Islands

FO

FRO

234

Fiji

FJ

FJI

242

Finland

FI

FIN

246

France

FR

FRA

250

French Guiana

GF

GUF

254

French Polynesia

PF

PYF

258

French Southern Territories

TF

ATF

260

Gabon

GA

GAB

266

Gambia

GM

GMB

270

German Democratic Republic

DD

DDR

278

Germany, Federal Republic of

DE

DEU

280

Ghana

GH

GHA

288

Gibraltar

GI

GIB

292

Greece

GR

GRC

300

Greenland

GL

GRL

304

Grenada

GD

GRD

308

Gudeloupe

GP

GLP

312

Guam

GU

GUM

316

Guatemala

GT

GTM

320

Guinea

GN

GIN

324

Guinea-Bissau

GW

GNB

624

Guyana

GY

GUY

328

Haiti

HT

HTI

332

Heard and Mc Donald Islands

HM

HMD

334

Honduras

HN

HND

340

Hong Kong

HK

HKG

344

Hungary

HU

HUN

348

Iceland

IS

ISL

352

India

IN

IND

356

Indonesia

ID

IDN

360

Iran (Islamic Republic of)

IR

IRN

364

Iraq

IQ

IRQ

368

Ireland

IE

IRL

372

Israel

IL

ISR

376

Italy

IT

ITA

380

Jamaica

JM

JAM

388

Japan

JP

JPN

392

Jordan

JO

JOR

400

Kampuchea, Democratic

KH

KHM

116

Kenya

KE

KEN

404

Kiribati

KI

KIR

296

Korea, Dem. People's Rep. of

KP

PRK

408

Korea, Republic of

KR

KOR

410

Kuwait

KW

KWT

414

Lao People's Dem. Rep.

LA

LAO

418

Lebanon

LB

LBN

422

Lesotho

LS

LSO

426

Liberia

LR

LBR

430

Libyan Arab Jamahiriya

LY

LBY

434

Liechtenstein

LI

LIE

438

Luxembourg

LU

LUX

442

Macau

MO

MAC

446

Madagascar

MG

MDG

450

Malawi

MW

MWI

454

Malaysia

MY

MYS

458

Maldives

MV

MDV

462

Mali

ML

MLI

466

Malta

MT

MLT

470

Marshall Islands

MH

MHL

584

Martinique

MQ

MTQ

474

Mauritania

MR

MRT

478

Mauritius

MU

MUS

480

Mexico

MX

MEX

484

Micronesia

FM

FSM

583

Monaco

MC

MCO

492

Mongolia

MN

MNG

496

Montserrat

MS

MSR

500

Morocco

MA

MAR

504

Mozambique

MZ

MOZ

508

Namibia

NA

NAM

516

Nauru

NR

NRU

520

Nepal

NP

NPL

524

Netherlands

NL

NLD

528

Netherlands Antilles

AN

ANT

532

Neutral Zone

NT

NTZ

536

New Caledonia

NC

NCL

540

New Zealand

NZ

NZL

554

Nicaragua

NI

NIC

558

Niger

NE

NER

562

Nigeria

NG

NGA

566

Niue

NU

NIU

570

Norfolk Island

NF

NFK

574

Northern Mariana Islands

MP

MNP

580

Norway

NO

NOR

578

Oman

OM

OMN

512

Pakistan

PK

PAK

586

Palau

PW

PLW

585

Panama

PA

PAN

590

Papua New Guinea

PG

PNG

598

Paraguay

PY

PRY

600

Peru

PE

PER

604

Philippines

PH

PHL

608

Pitcairn Island

PN

PCN

612

Poland

PL

POL

616

Portugal

PT

PRT

620

Puerto Rico

PR

PRI

630

Qatar

QA

QAT

634

Reunion

RE

REU

638

Romania

RO

ROM

642

Rwanda

RW

RWA

646

St. Helena

SH

SHN

654

Saint Kitts and Nevis

KN

KNA

659

Saint Lucia

LC

LCA

662

St. Pierre and Miquelon

PM

SPM

666

Saint Vincent & the Grenadines

VC

VCT

670

Samoa

WS

WSM

882

San Marino

SM

SMR

674

Sao Tome and Principe

ST

STP

678

Saudia Arabia

SA

SAU

682

Senegal

SN

SEN

686

Seychelles

SC

SYC

690

Sierra Leones

SL

SLE

694

Singapore

SG

SGP

702

Solomon Islands

SB

SLB

090

Somalia

SO

SOM

706

South Africa

ZA

ZAF

710

Spain

ES

ESP

724

Sri Lanka

LK

LKA

144

Sudan

SD

SDN

736

Suriname

SR

SUR

740

Svalbard and Jan Mayen Islands

SJ

SJM

744

Swaziland

SZ

SWZ

748

Sweden

SE

SWE

752

Switzerland

CH

CHE

756

Syrian Arab Republic

SY

SYR

760

Taiwan, Province of China

TW

TWN

158

Tanzania, United Republic of

TZ

TZA

834

Thailand

TH

THA

764

Togo

TG

TGO

768

Tokelau

TK

TKL

772

Tonga

TO

TON

776

Trinidad and Tobago

TT

TTO

780

Tunisia

TN

TUN

788

Turkey

TR

TUR

792

Turks and Caicos Islands

TC

TCA

796

Tuvalu

TV

TUV

798

Uganda

UG

UGA

800

Ukranian SSR

UA

UKR

804

United Arab Emirates

AE

ARE

784

United Kingdom

GB

GBR

826

United States

US

USA

840

US Minor Outlying Islands

UM

UMI

581

Uruguay

UY

URY

858

USSR

SU

SUN

810

Vanuatu

VU

VUT

548

Vatican City State (Holy See)

VA

VAT

336

Venezuela

VE

VEN

862

Viet Nam

VN

VNM

704

Virgin Islands (British)

VG

VGB

092

Virgin Islands (U.S.)

VI

VIR

850

Wallis and Futuna Islands

WF

WLF

876

Western Sahara

EH

ESH

732

Yemen

YE

YEM

886

Yemen, Democratic

YD

YMD

720

Yugoslavia

YU

YUG

890

Zaire

ZR

ZAR

180

Zambia

ZM

ZMB

894

Zimbabwe

ZW

ZWE

716