- Enhanced TV Binary Interchange Format
Enhanced TV Binary Interchange Format (
EBIF ) is a multimedia content format defined by a specification [cite paper | author = ETV Working Group | title = Enhanced TV Binary Interchange Format 1.0 | version = I04 | date =2007-09-21 | publisher = Cable Laboratories, Inc. | url = http://www.opencable.com/downloads/specs/OC-SP-ETV-BIF1.0-I04-070921.pdf] developed under theOpenCable project ofCableLabs (Cable Television Laboratories, Inc. ). The primary purpose of theEBIF content format is to represent an optimized collection of widget and byte code specifications that define one or more multimedia pages, similar toweb page s, but specialized for use within an enhanced television orinteractive television system.An
EBIF resource (file), i.e., a sequence of bytes that conforms to theEBIF content format, forms the primary information contained of an ETV Application. An ETV User Agent acquires, decodes, presents (widgets), and executes (actions) contained in anEBIF resource in order to present a multimedia page to an end-user. Other types of more specializedEBIF resources play auxiliary roles to this principal role of encoding viewable and interactable pages.Common Resource Format
An
EBIF resource consists of the following components:* Resource Header
* Optional Common Section
* Optional Platform Section 1...NA common or platform section of an
EBIF resource consists of the following constructs:* Section Header
* Table Directory
* Table 0..."N-1"
* Optional HeapTables
The following types of tables are defined for use with
EBIF :* Action Table
* Generic Data Table
* Metadata Table
* Palette Table
* Platform Directory Table
* Reference Table
* Resource Locator Table
* Trigger Table
* Widget TableIn addition to the above, an
EBIF resource may include one or more private use tables that may be interpreted or used by specific user agents.Widgets
The following types of widgets are defined for use with
EBIF :* Button
* Collection
* Container
* Form
* Hidden
* Hot Spot
* Image
* Multi-Line Text
* Page
* Private Use
* Radio
* Radio Group Container
* Rectangle
* Selector
* Text
* Text Input
* Timer
* VideoActions
In an
EBIF resource, programmatic (procedural) information takes the form of byte code, where each operation and its (optional) operands is referred to as an "action". Actions are organized into sequences by means of one or more "action table"s where each entry points at (1) an encoded action and (2) the action table index of the next action to execute after the current action's execution is completed. An action sequence terminates when the next action table index is a special value (0xFFFF) or in the case of certain flow of control actions. Action sequences effectively represent one or more traditional "code blocks" with potential internal looping behavior.Action sequences are executed as a result of firing certain predefined events, such as a page load event, a key press event, a click event, etc. As such, all programmatic execution takes place in the context of event handlers, whose execution is serialized by an ETV User Agent.
The following categories of actions are defined by
EBIF :* Flow of Control Actions
* Predicate Actions
* Variable Store Actions
* Arithmetic Actions
* Boolean Logic Actions
* Mathematic Actions
* String Actions
* Array Actions
* Application and Page Actions
* Widget Actions
* Table Actions
* Miscellaneous ActionsMemory Model
The action memory model is based on a variable store, and does not make use of registers or a stack. With the exception of one predefined, internal "result value" variable, all variables are preallocated (and typed) at compilation time. These variables are represented in the form of a table referred to as an "augmented reference table", where the content of the table is initialized at compilation time, then stored and mutated at runtime by an ETV User Agent.
Execution Model
The action execution model is based on the decoding and processing of action sequences that serve as event handlers.
Execution of action sequences are serialized through the sequential dispatching of events to event handlers, completing the execution of an action sequence functioning as an event handler before executing any other applicable event handlers (for that event) and before processing any other enqueued event.
References
ee also
*
Enhanced Television
* Interactive TelevisionExternal links
* [http://www.opencable.com/specifications/etv.html ETV Specifications]
Wikimedia Foundation. 2010.