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 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. |
|
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.
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.
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; |
Here is an example of the use of 14pt Sans Serif font for standard adult captioning. |
|||
#Youth {Name: Youth; |
Here is an example of increasing the font size for children�s captioning. |
|||
.#BigPrint-1 { |
Here is an example of 'Big Print' captions for user's that need it. |
|||
.#BigPrint-2 { |
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
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> |
|
<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é du thé et on était
donc assis là sirotant notre thé�
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"> <P Class=ENUSCC>we figured out that this guy <P Class=FRFRCC ID=Source><IMG SRC="fr.gif"> Jazz Man <P Class=FRFRCC>et ce gars assis à la table <P Class=DEDECC ID=Source><IMG SRC="de.gif"> Jazz Man <P Class=DEDECC>Am Nachbartisch saß ein Paar, </SYNC>
|
5. Appendix
Figure 7. Sample SAMI Document
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 |
|
"CC; Closed Captions" |
Tertiary lang descriptor (see Lang below); Menu description |
|
"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. |
|
"12" |
Font size in points |
|
"190" |
Line length in points |
|
"Scaleable" |
Caption window/text Scaleable or Fixed |
|
"0" |
Mute volume when ClosedCaptionOn=1 |
|
"3" |
Number of caption lines. This is use with the FontSize to calculate the height of the caption window. |
|
"PopOn" |
The text can be displayed a block at a time (PopOn) or scrolled from bottom-to-top one line at a time (Scroll). |
|
"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. |
|
"en-US" |
User selected language. This value is based on the following: |
|
"HKEY_LOCAL_MACHINE/System/ |
Location of Language list for user selection |
|
"pt" |
DirectShow uses points for unit length |
|
"0" |
When Override is set, DirectShow will use these default values to override the authored values. This allows the user to set preferences. |
|
"P {margin-left: "5pt"; margin-right: "5pt"; |
Default Paragraph style |
|
"#Source {vertical-align: top; |
Default SourceID style |
|
"#Standard {Name: Standard;}" |
Default StandardID style |
|
"#Youth {Name: Youth; font-size: 18pt; |
Default YouthID style |
|
"#BigPrint-1 {Name: Big Print 1; |
Default BigPrint-1ID style This style can be used as a HC scheme |
|
"#BigPrint-2 {Name: Big Print 2; |
Default BigPrint-2ID style This style can be used as a HC scheme |
|
"#User { Name: <user>; |
These are the user definable settings. They are applied as a style ID if 'Override' is set. <user> is the registered user name. |
|
"ms" |
DirectShow only supports miliseconds. SAMI convention supports Miliseconds, Frames, and SMPTE as appropriate. |
Table 1. Registry: SAMI.Document/ClosedCaptions
Parameter |
Default |
Use |
|
"AD; Audio Description" |
Tertiary lang descriptor (see Lang below); Menu description |
|
"0" |
If the user has turn on Audio Description this value is set to 1. |
|
"Standard" |
This is for future use and only "Standard" is currently supported. Set edit control to read/only |
|
"en-US" |
User selected language. This value is based on the following: |
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 |
|
"0" |
Mute sound when captions are available |
|
"Bottom" |
Position |
|
"PopOn" |
Text transition |
|
"1" |
Use ShowSounds (& SPI_SETSHOWSOUNDS) |
|
"en-US" |
Language. |
"0" |
Use these settings (apply ID style #<user>) |
|
|
"Standard" |
"Style" |
|
"#User {Name: <user>; font-size: 12pt; |
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 |
|
"0" |
Audio Descriptions |
|
"Standard" |
Style |
|
"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.
Char |
Decimal |
Hex |
Entity |
160 |
a0 |
|
|
� |
161 |
a1 |
¡ |
� |
162 |
a2 |
¢ |
� |
163 |
a3 |
£ |
� |
164 |
a4 |
¤ |
� |
165 |
a5 |
¥ |
� |
166 |
a6 |
¦ |
� |
167 |
a7 |
§ |
� |
168 |
a8 |
¨ |
© |
169 |
a9 |
© |
� |
170 |
aa |
ª |
" |
171 |
ab |
« |
� |
172 |
ac |
¬ |
� |
173 |
ad |
­ |
® |
174 |
ae |
® |
� |
175 |
af |
¯ |
� |
176 |
b0 |
° |
� |
177 |
b1 |
± |
� |
178 |
b2 |
² |
� |
179 |
b3 |
³ |
� |
180 |
b4 |
´ |
� |
181 |
b5 |
µ |
� |
182 |
b6 |
¶ |
� |
183 |
b7 |
· |
� |
184 |
b8 |
¸ |
� |
185 |
b9 |
¹ |
� |
186 |
ba |
º |
" |
187 |
bb |
» |
� |
188 |
bc |
¼ |
� |
189 |
bd |
½ |
� |
190 |
be |
¾ |
� |
191 |
bf |
¿ |
À |
192 |
c0 |
À |
Á |
193 |
c1 |
Á |
 |
194 |
c2 |
 |
à |
195 |
c3 |
à |
Ä |
196 |
c4 |
Ä |
Å |
197 |
c5 |
Å |
Æ |
198 |
c6 |
Æ |
Ç |
199 |
c7 |
Ç |
È |
200 |
c8 |
È |
É |
201 |
c9 |
É |
Ê |
202 |
ca |
Ê |
Ë |
203 |
cb |
Ë |
Ì |
204 |
cc |
Ì |
Í |
205 |
cd |
Í |
Î |
206 |
ce |
Î |
Ï |
207 |
cf |
Ï |
Ð |
208 |
d0 |
Ð |
Ñ |
209 |
d1 |
Ñ |
Ò |
210 |
d2 |
Ò |
Ó |
211 |
d3 |
Ó |
Ô |
212 |
d4 |
Ô |
Õ |
213 |
d5 |
Õ |
Ö |
214 |
d6 |
Ö |
� |
215 |
d7 |
× |
Ø |
216 |
d8 |
Ø |
Ù |
217 |
d9 |
Ù |
Ú |
218 |
da |
Ú |
Û |
219 |
db |
Û |
Ü |
220 |
dc |
Ü |
Ý |
221 |
dd |
Ý |
Þ |
222 |
de |
Þ |
ß |
223 |
df |
ß |
à |
224 |
e0 |
à |
á |
225 |
e1 |
á |
â |
226 |
e2 |
â |
ã |
227 |
e3 |
ã |
ä |
228 |
e4 |
ä |
å |
229 |
e5 |
å |
æ |
230 |
e6 |
æ |
ç |
231 |
e7 |
ç |
è |
232 |
e8 |
è |
é |
233 |
e9 |
é |
ê |
234 |
ea |
ê |
ë |
235 |
eb |
ë |
ì |
236 |
ec |
ì |
í |
237 |
ed |
í |
î |
238 |
ee |
î |
ï |
239 |
ef |
ï |
ð |
240 |
f0 |
ð |
ñ |
241 |
f1 |
ñ |
ò |
242 |
f2 |
ò |
ó |
243 |
f3 |
ó |
ô |
244 |
f4 |
ô |
õ |
245 |
f5 |
õ |
ö |
246 |
f6 |
ö |
� |
247 |
f7 |
÷ |
ø |
248 |
f8 |
ø |
ù |
249 |
f9 |
ù |
ú |
250 |
fa |
ú |
û |
251 |
fb |
û |
ü |
252 |
fc |
ü |
ý |
253 |
fd |
ý |
þ |
254 |
fe |
þ |
ÿ |
255 |
ff |
ÿ |
" |
34 |
22 |
" |
& |
38 |
26 |
& |
< |
60 |
3c |
< |
> |
62 |
3e |
> |
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 |
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 |