WO1999059060A2 - Method and system for distributing processing instructions with adata to be processed - Google Patents

Method and system for distributing processing instructions with adata to be processed Download PDF

Info

Publication number
WO1999059060A2
WO1999059060A2 PCT/US1999/010255 US9910255W WO9959060A2 WO 1999059060 A2 WO1999059060 A2 WO 1999059060A2 US 9910255 W US9910255 W US 9910255W WO 9959060 A2 WO9959060 A2 WO 9959060A2
Authority
WO
WIPO (PCT)
Prior art keywords
instructions
source data
computer
processing
received
Prior art date
Application number
PCT/US1999/010255
Other languages
French (fr)
Other versions
WO1999059060A3 (en
Inventor
Robert W. Moses
Brian D. Karr
Gregory J. Bartlett
Original Assignee
Digital Harmony Technologies, L.L.C.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Digital Harmony Technologies, L.L.C. filed Critical Digital Harmony Technologies, L.L.C.
Priority to CA002330739A priority Critical patent/CA2330739A1/en
Priority to AU38970/99A priority patent/AU3897099A/en
Priority to EP99921864A priority patent/EP1076850A2/en
Priority to JP2000548803A priority patent/JP2002514810A/en
Publication of WO1999059060A2 publication Critical patent/WO1999059060A2/en
Publication of WO1999059060A3 publication Critical patent/WO1999059060A3/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/40052High-speed IEEE 1394 serial bus
    • H04L12/40058Isochronous transmission
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/22Microcontrol or microprogram arrangements
    • G06F9/24Loading of the microprogram
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • G06F9/30189Instruction operation extension or modification according to execution mode, e.g. mode flag
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04JMULTIPLEX COMMUNICATION
    • H04J3/00Time-division multiplex systems
    • H04J3/02Details
    • H04J3/06Synchronising arrangements
    • H04J3/062Synchronisation of signals having the same nominal but fluctuating bit rates, e.g. using buffers
    • H04J3/0632Synchronisation of packets and cells, e.g. transmission of voice via a packet network, circuit emulation service [CES]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/40052High-speed IEEE 1394 serial bus
    • H04L12/40117Interconnection of audio or video/imaging devices
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/436Interfacing a local distribution network, e.g. communicating with another STB or one or more peripheral devices inside the home
    • H04N21/4363Adapting the video stream to a specific local network, e.g. a Bluetooth® network
    • H04N21/43632Adapting the video stream to a specific local network, e.g. a Bluetooth® network involving a wired protocol, e.g. IEEE 1394

Definitions

  • the described technology relates generally to processing of data via a computer system and, more specifically, to distributing the computer instructions for processing the data.
  • Home entertainment systems are increasingly being implemented as complex interconnections of special-purpose computer systems, which are generally referred to as "home entertainment devices.” These home entertainment devices may be video and audio receivers, DVD players, CD-ROM players, sound mixers, amplifiers, speaker systems, display devices, and so on. Many different companies develop (e.g., design and manufacture) such home entertainment devices. Each company may develop its devices using proprietary interconnect technology. As a result, the input and output of devices developed by different companies may not be compatible. For example, a DVD player developed by one company may output data that is incompatible with a speaker subsystem developed by another company. Thus, it may be impractical to have a home entertainment system that includes devices that are developed by different companies.
  • a CD player would need a point-to-point connection to each speaker system to which its output is to be directed and a point-to-point connection to any amplification system to which its output is to be sent.
  • each device simply needs to be connected to a common bus in order to communicate with each other device.
  • a DVD player may have a computer program stored in ROM that inputs the digital data from a DVD disk and processes the digital data in a preprogrammed way (e.g., AC-3 decoding) prior to outputting the digital data to a speaker system.
  • a preprogrammed way e.g., AC-3 decoding
  • Such home entertainment devices are hard-coded, they cannot easily take advantage of improvements in techniques for processing such digital data.
  • a DVD player that supports AC-3 decoding may not also support DTS decoding or an improved AC-3 decoding. It may be theoretically possible to upgrade such home entertainment devices by having the owner ship the device to an upgrade facility of the company.
  • a method and system for distributing instructions for processing source data along with the source data to an extensible device is provided.
  • the extensible device receives the source data along with instructions for processing the source data.
  • the extensible device in one embodiment includes a central processing unit, a memory, and output interface.
  • the extensible device stores the instructions in memory as the instructions are received.
  • the extensible device then directs the central processing unit to process the received source data in accordance with the instructions that have been stored in the memory.
  • the extensible device may send data to the output interface.
  • the instructions for processing the source data can be customized to the source data or can include improvements in processing source data.
  • the extensible device may include default instructions that are used for processing source data that is not accompanied by instructions.
  • the extensible device may also store the received instructions so as to supersede the existing default instructions.
  • Figure 1 is a block diagram illustrating example components of an extensible device.
  • Figure 2 is a flow diagram of an example implementation of a process source data component.
  • Figure 3 is a flow diagram of an example implementation of the receive data component.
  • Figure 4 is a flow diagram of an example implementation of a receive specialized instructions routine.
  • Figure 5 is a flow diagram of an example implementation of a receive source data routine.
  • Figure 6 is a block diagram of an example of data source component.
  • Figure 7 is a flow diagram of an example implementation of the combine data component.
  • a method and system for distributing computer instructions for processing source data is provided.
  • the distribution system in one embodiment distributes the computer instructions for processing the source data along with the source data.
  • a device such as a home entertainment device, may receive and store the computer instructions in its computer memory. The device can then execute the stored computer instructions to process the source data.
  • computer instructions for implementing these new techniques can be distributed to devices that process the source data.
  • These new techniques may be related to enhanced signal processing, improved encryption, improved compression, or any other improved processing of the source data.
  • These techniques may also include user interfaces and game or educational programming associated with the source data that may be implemented, for example, as Java Applets.
  • the new techniques may relate to the parsing of the source data that is stored in a new or unusual format (e.g., number of bits in an audio sample, sample rate, and number of channels) and to copy protection algorithms, such as "5C” or "XCA,” for the source data.
  • the 5C and XCA algorithms are competing to become the industry standard, and the distribution system would allow devices to be developed today that could handle whatever algorithm becomes the standard.
  • the processing of the source data may include enhanced DOLBY Digital decoding, enhanced Digital Theatre Sound (“DTS”) decoding, Meridian Lossless Packing (“MLP”) decoding, MP3 decoding, QUICKTIME decoding, REALPLAYER decoding, DV digital video decoding, MPEG II layer 2 decoding, and virtual surround sound decoding.
  • DTS Digital Theatre Sound
  • MLP Meridian Lossless Packing
  • MP3 decoding QUICKTIME decoding
  • REALPLAYER decoding DV digital video decoding
  • MPEG II layer 2 decoding and virtual surround sound decoding.
  • the extensible devices include a central processing unit, a bus connection interface, a memory, a device-specific input/output interface, and default or standard computer instructions.
  • the device-specific input output interface may be a digital-to- analog converter that is connected to a speaker and the default computer instructions may input source data in a predefined format and perform some standard processing on the data before sending the data to the device-specific input/output interface.
  • the extensible device may include an extension component that detects that specialized (or customized) computer instructions are being provided along with the source data. When the extension component detects that such computer instructions are provided, it controls the storing of the specialized computer instructions into memory of the extensible device.
  • the extension component may also set a flag to indicate that the device is to process the next source data received using the specialized computer instructions.
  • the extensible device receives the source data, it checks the flag and either executes the standard computer instructions or the specialized computer instructions.
  • the specialized computer instructions may indicate that these instructions should effectively replace the standard computer instructions for further processing of any source data.
  • the extensible device may store such specialized computer instructions in a non-volatile memory such as an EPROM or a flash-EPROM. Alternatively, the specialized computer instructions may be sent to a extensible device independently of the source data.
  • Figure 1 is a block diagram illustrating example components of an extensible device.
  • the extensible device 100 includes a receive data component 101, an output interface component 102, a process source data component 103, a default instruction memory 104, and a specialized instruction memory 105.
  • the extensible device is shown connected to data source 106.
  • the extensible device may be a DVD player and the data source may be a DVD disk.
  • the receive data component receives the data from the data source and determines whether to the data includes specialized computer instructions. If the data includes specialized computer instructions, then the receive data component stores those computer instructions in the specialized instruction memory.
  • the specialized instruction memory may be volatile or non-volatile memory.
  • the specialized computer instructions may be available for processing of all future source data that is received.
  • receive data component receives source data, it forwards the source data to the process source data component.
  • the process source data component first determines whether it should use the default instructions or the specialized instructions.
  • the process source data component may check a flag set by the receive data component to help in this determination. Based on this determination, the process source data component either executes the default instructions or the specialized instructions. As part of its processing, the process source data component may output data to the output interface.
  • FIG. 2 is a flow diagram of an example implementation of a process source data component.
  • the process source data component executes a loop waiting for source data to be received and processing the source data.
  • the process source data component determines whether the default or specialized instructions should be used to process source data and then processes the source data accordingly.
  • step 201 the component waits for source data to be received.
  • step 202 if a specialized instruction flag is set, then the component continues at step 203, else the component continues at step 204.
  • step 203 the component sets the next address to execute to the address of the specialized instructions.
  • the component sets the next address to execute to the address of the default instructions.
  • the component jumps to the set address.
  • step 206 the component returns from default or specialized processing.
  • step 207 the component resets the specialized instruction flag and loops to step 201 to wait for more source data.
  • FIG. 3 is a flow diagram of an example implementation of the receive data component.
  • the receive data component receives data and determines whether the data is specialized instructions or source data. If the data is specialized instructions, then the receive data component stores the specialized instructions in the specialized instruction memory so that the instructions are available for processing subsequently receives source data.
  • the receive data component waits for the data to be next received.
  • step 302 if the data received is specialized instructions, then the component continues at step 303, else the component continues at step 304.
  • the component invokes a receive specialized instructions routine to control the storing of the specialized instructions.
  • step 304 if the data received is source data, then the component continues at step 305.
  • the component invokes a receive source data routine to process the source data. The component then loops to step 301 to wait for more data.
  • FIG 4 is a flow diagram of an example implementation of a receive specialized instructions routine.
  • the receive specialized instructions routine first determines whether the specialized instructions indicate whether to use previously received specialized instructions or to use specialized instructions that are now being sent. In step 401, if specialized instructions indicate to use previously received specialized instructions, then the routine continues at step 403, else the routine continues at step 402. In step 402, the routine stores the specialized instructions in the specialized instruction memory as they are being received. In step 403, the routine sets the specialized instruction flag to indicate that the specialized instructions should be used in processing source data. If specialized instructions were previously received, then they are still in the specialized instruction memory. The routine then returns.
  • Figure 5 is a flow diagram of an example implementation of a receive source data routine.
  • routine receives the source data and forwards it to the process source data component and then returns.
  • Figure 6 is a block diagram of an example of data source component.
  • the data source component 600 adds specialized instructions to source data 603.
  • Data source component has the specialized instructions stored in the specialized instruction memory 602.
  • the data source component receives source data from a storage medium, such as a DVD disk.
  • the combine data component 601 combines the specialized instructions with the source data for sending to a extensible device such as a device 100.
  • An alternate example data source would be a DVD disk on which is stored the specialized instructions and the source data.
  • FIG 7 is a flow diagram of an example implementation of the combine data component.
  • the combine data component may optionally not send the specialized computer instructions if the receiving device has already received the specialized instructions. For example, the combine data component may send the specialized instructions only once for a CD-ROM rather than once for each musical score stored on the CD-ROM. If the receiving device may not still have the specialized instructions stored in its memory, for example, because it was powered down and then powered up and the memory is volatile, then the component would need to resend the specialized instructions.
  • step 701 the combine data component waits for source data to the received.
  • step 702 if the specialized instructions have been previously sent, then the component continues at step 703, else the component continues at step 704.
  • step 703 the component sends an indication to use the previously sent specialized instructions.
  • step 704 the component retrieves the specialized instructions from memory.
  • step 705 the component sends the specialized instructions.
  • step 706 the component sends of the source data and then loops to step 701 to wait for more source data.
  • each of the extensible devices can be developed in a way to ensure that the specialized instructions are not output. In this way, the specialized instructions can only be distributed in an approved way, such as in conjunction with source data. If the specialized instructions include a decryption algorithm, then the source data can only be used with the original data source that includes both the specialized instructions and source data.
  • the extensible devices may be useful for distribution of source data on a try-and-buy basis.
  • the seller of the source data may send specialized instructions with the source data that can only process a portion of the source data (e.g., display the first minute of a two-hour movie). After the customer tries (e.g., views) the portion, then the customer can request access to all the source data.
  • the access can be provided by electronically sending new specialized instructions to the extensible device or by providing a password to the customer which can be used to enable the extensible device to process all the source data.
  • the specialized instructions can be interleaved with the source data.
  • the extensible device may retrieve the interleaved specialized instructions before processing the source data. This interleaving would make it more difficult for an unauthorized user to use the source data. Accordingly this invention is not limited except as by the appended claims.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Multimedia (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)
  • Stored Programmes (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Picture Signal Circuits (AREA)
  • Time-Division Multiplex Systems (AREA)
  • Information Transfer Systems (AREA)
  • Small-Scale Networks (AREA)
  • Digital Computer Display Output (AREA)

Abstract

A Method and system for distributing instructions for processing source data along with the source data to an extensible device. The extensible device receives the source data along with instructions for processing the source data. The extensible device in one embodiment includes a central processing unit, a memory, and output interface. The extensible device stores the instructions in memory as the instructions are received. The extensible device then directs the central processing unit to process the received source data in accordance with the instructions that have been stored in the memory. As part of this processing, the extensible device may send data to the output interface. In this way, the instructions for processing the source data can be customized to the source data or can include improvements in processing source data.

Description

METHOD AND SYSTEM FOR DISTRIBUTING PROCESSING INSTRUCTIONS WITH DATA TO BE PROCESSED
CROSS-REFERENCE TO RELATED APPLICATIONS
This application is related to U.S. Patent Application No. 60/085,021 filed on May 11, 1998, which is hereby incorporated by reference.
TECHNICAL FIELD
The described technology relates generally to processing of data via a computer system and, more specifically, to distributing the computer instructions for processing the data.
BACKGROUND
Home entertainment systems are increasingly being implemented as complex interconnections of special-purpose computer systems, which are generally referred to as "home entertainment devices." These home entertainment devices may be video and audio receivers, DVD players, CD-ROM players, sound mixers, amplifiers, speaker systems, display devices, and so on. Many different companies develop (e.g., design and manufacture) such home entertainment devices. Each company may develop its devices using proprietary interconnect technology. As a result, the input and output of devices developed by different companies may not be compatible. For example, a DVD player developed by one company may output data that is incompatible with a speaker subsystem developed by another company. Thus, it may be impractical to have a home entertainment system that includes devices that are developed by different companies. Various standards, such as the IEEE 1394 "Standard for High Performance Serial Bus," have been developed to facilitate the development of compatible home entertainment devices. Any devices that conform to such standards can be interconnected in home entertainment system. In addition, these standards define a common bus interconnection mechanism by which any devices connected to the bus can communicate with any other device connected to the bus. In this way, a standard bus cabling can be used within a house for interconnecting these home entertainment devices. Prior to such a common bus interconnection mechanism, each device needed to be connected on a point-to-point basis with each other device in order to transmit data to or receive data from that device. For example, a CD player would need a point-to-point connection to each speaker system to which its output is to be directed and a point-to-point connection to any amplification system to which its output is to be sent. With the use of the common bus interconnection mechanism, each device simply needs to be connected to a common bus in order to communicate with each other device.
Although the interconnection of home entertainment devices has been greatly simplified because of common bus and interconnection standards, the home entertainment devices are typically hard-coded with their processing logic. For example, a DVD player may have a computer program stored in ROM that inputs the digital data from a DVD disk and processes the digital data in a preprogrammed way (e.g., AC-3 decoding) prior to outputting the digital data to a speaker system. Because such home entertainment devices are hard-coded, they cannot easily take advantage of improvements in techniques for processing such digital data. For example, a DVD player that supports AC-3 decoding may not also support DTS decoding or an improved AC-3 decoding. It may be theoretically possible to upgrade such home entertainment devices by having the owner ship the device to an upgrade facility of the company. Such upgrading, however, may be cost prohibitive and inconvenient. More typically, as new processing techniques are developed, companies develop new home entertainment devices to take advantage of such techniques. It is, of course, expensive to develop and market such new home entertainment devices and expensive and inconvenient for the consumer to purchase such devices every time an improvement is made.
SUMMARY
A method and system for distributing instructions for processing source data along with the source data to an extensible device is provided. The extensible device receives the source data along with instructions for processing the source data.
The extensible device in one embodiment includes a central processing unit, a memory, and output interface. The extensible device stores the instructions in memory as the instructions are received. The extensible device then directs the central processing unit to process the received source data in accordance with the instructions that have been stored in the memory. As part of this processing, the extensible device may send data to the output interface. In this way, the instructions for processing the source data can be customized to the source data or can include improvements in processing source data. The extensible device may include default instructions that are used for processing source data that is not accompanied by instructions. The extensible device may also store the received instructions so as to supersede the existing default instructions.
BRIEF DESCRIPTION OF THE DRAWINGS
Figure 1 is a block diagram illustrating example components of an extensible device.
Figure 2 is a flow diagram of an example implementation of a process source data component.
Figure 3 is a flow diagram of an example implementation of the receive data component. Figure 4 is a flow diagram of an example implementation of a receive specialized instructions routine.
Figure 5 is a flow diagram of an example implementation of a receive source data routine.
Figure 6 is a block diagram of an example of data source component.
Figure 7 is a flow diagram of an example implementation of the combine data component.
DETAILED DESCRIPTION
A method and system for distributing computer instructions for processing source data is provided. The distribution system in one embodiment distributes the computer instructions for processing the source data along with the source data. A device, such as a home entertainment device, may receive and store the computer instructions in its computer memory. The device can then execute the stored computer instructions to process the source data. In this way, as new techniques are developed for processing source data, computer instructions for implementing these new techniques can be distributed to devices that process the source data. These new techniques may be related to enhanced signal processing, improved encryption, improved compression, or any other improved processing of the source data. These techniques may also include user interfaces and game or educational programming associated with the source data that may be implemented, for example, as Java Applets. The new techniques may relate to the parsing of the source data that is stored in a new or unusual format (e.g., number of bits in an audio sample, sample rate, and number of channels) and to copy protection algorithms, such as "5C" or "XCA," for the source data. The 5C and XCA algorithms are competing to become the industry standard, and the distribution system would allow devices to be developed today that could handle whatever algorithm becomes the standard. The processing of the source data may include enhanced DOLBY Digital decoding, enhanced Digital Theatre Sound ("DTS") decoding, Meridian Lossless Packing ("MLP") decoding, MP3 decoding, QUICKTIME decoding, REALPLAYER decoding, DV digital video decoding, MPEG II layer 2 decoding, and virtual surround sound decoding. The devices that are capable of storing and executing such computer instructions are referred to as "extensible" devices.
In one embodiment, the extensible devices include a central processing unit, a bus connection interface, a memory, a device-specific input/output interface, and default or standard computer instructions. For example, if the extensible device is a speaker system, the device-specific input output interface may be a digital-to- analog converter that is connected to a speaker and the default computer instructions may input source data in a predefined format and perform some standard processing on the data before sending the data to the device-specific input/output interface. The extensible device may include an extension component that detects that specialized (or customized) computer instructions are being provided along with the source data. When the extension component detects that such computer instructions are provided, it controls the storing of the specialized computer instructions into memory of the extensible device. The extension component may also set a flag to indicate that the device is to process the next source data received using the specialized computer instructions. When the extensible device receives the source data, it checks the flag and either executes the standard computer instructions or the specialized computer instructions. In one embodiment, the specialized computer instructions may indicate that these instructions should effectively replace the standard computer instructions for further processing of any source data. The extensible device may store such specialized computer instructions in a non-volatile memory such as an EPROM or a flash-EPROM. Alternatively, the specialized computer instructions may be sent to a extensible device independently of the source data.
Figure 1 is a block diagram illustrating example components of an extensible device. In this example, the extensible device 100 includes a receive data component 101, an output interface component 102, a process source data component 103, a default instruction memory 104, and a specialized instruction memory 105. The extensible device is shown connected to data source 106. The extensible device may be a DVD player and the data source may be a DVD disk. The receive data component receives the data from the data source and determines whether to the data includes specialized computer instructions. If the data includes specialized computer instructions, then the receive data component stores those computer instructions in the specialized instruction memory. The specialized instruction memory may be volatile or non-volatile memory. If the memory is non-volatile, then the specialized computer instructions may be available for processing of all future source data that is received. When the receive data component receives source data, it forwards the source data to the process source data component. The process source data component first determines whether it should use the default instructions or the specialized instructions. The process source data component may check a flag set by the receive data component to help in this determination. Based on this determination, the process source data component either executes the default instructions or the specialized instructions. As part of its processing, the process source data component may output data to the output interface.
Figure 2 is a flow diagram of an example implementation of a process source data component. The process source data component executes a loop waiting for source data to be received and processing the source data. When source data is received, the process source data component determines whether the default or specialized instructions should be used to process source data and then processes the source data accordingly. In step 201, the component waits for source data to be received. In step 202, if a specialized instruction flag is set, then the component continues at step 203, else the component continues at step 204. In step 203, the component sets the next address to execute to the address of the specialized instructions. In step 204, the component sets the next address to execute to the address of the default instructions. In step 205, the component jumps to the set address. The ellipsis between steps 205 and 206 indicates that either default or specialized processing is performed. In step 206, the component returns from default or specialized processing. In step 207, the component resets the specialized instruction flag and loops to step 201 to wait for more source data.
Figure 3 is a flow diagram of an example implementation of the receive data component. The receive data component receives data and determines whether the data is specialized instructions or source data. If the data is specialized instructions, then the receive data component stores the specialized instructions in the specialized instruction memory so that the instructions are available for processing subsequently receives source data. In step 301, the receive data component waits for the data to be next received. In step 302, if the data received is specialized instructions, then the component continues at step 303, else the component continues at step 304. In step 303, the component invokes a receive specialized instructions routine to control the storing of the specialized instructions. In step 304, if the data received is source data, then the component continues at step 305. In step 305, the component invokes a receive source data routine to process the source data. The component then loops to step 301 to wait for more data.
Figure 4 is a flow diagram of an example implementation of a receive specialized instructions routine. The receive specialized instructions routine first determines whether the specialized instructions indicate whether to use previously received specialized instructions or to use specialized instructions that are now being sent. In step 401, if specialized instructions indicate to use previously received specialized instructions, then the routine continues at step 403, else the routine continues at step 402. In step 402, the routine stores the specialized instructions in the specialized instruction memory as they are being received. In step 403, the routine sets the specialized instruction flag to indicate that the specialized instructions should be used in processing source data. If specialized instructions were previously received, then they are still in the specialized instruction memory. The routine then returns.
Figure 5 is a flow diagram of an example implementation of a receive source data routine. In step 501, routine receives the source data and forwards it to the process source data component and then returns.
Figure 6 is a block diagram of an example of data source component. In this example, the data source component 600 adds specialized instructions to source data 603. Data source component has the specialized instructions stored in the specialized instruction memory 602. The data source component receives source data from a storage medium, such as a DVD disk. The combine data component 601 combines the specialized instructions with the source data for sending to a extensible device such as a device 100. An alternate example data source would be a DVD disk on which is stored the specialized instructions and the source data.
Figure 7 is a flow diagram of an example implementation of the combine data component. The combine data component may optionally not send the specialized computer instructions if the receiving device has already received the specialized instructions. For example, the combine data component may send the specialized instructions only once for a CD-ROM rather than once for each musical score stored on the CD-ROM. If the receiving device may not still have the specialized instructions stored in its memory, for example, because it was powered down and then powered up and the memory is volatile, then the component would need to resend the specialized instructions. In step 701, the combine data component waits for source data to the received. In step 702, if the specialized instructions have been previously sent, then the component continues at step 703, else the component continues at step 704. In step 703, the component sends an indication to use the previously sent specialized instructions. In step 704, the component retrieves the specialized instructions from memory. In step 705, the component sends the specialized instructions. In step 706, the component sends of the source data and then loops to step 701 to wait for more source data.
From the foregoing it will be appreciated that although specific embodiments of the technology have been described for purposes of illustration, various modifications may be made to these embodiments without deviating from the spirit and scope of the invention. For example, each of the extensible devices can be developed in a way to ensure that the specialized instructions are not output. In this way, the specialized instructions can only be distributed in an approved way, such as in conjunction with source data. If the specialized instructions include a decryption algorithm, then the source data can only be used with the original data source that includes both the specialized instructions and source data. The extensible devices may be useful for distribution of source data on a try-and-buy basis. For example, the seller of the source data may send specialized instructions with the source data that can only process a portion of the source data (e.g., display the first minute of a two-hour movie). After the customer tries (e.g., views) the portion, then the customer can request access to all the source data. The access can be provided by electronically sending new specialized instructions to the extensible device or by providing a password to the customer which can be used to enable the extensible device to process all the source data. In some embodiments, the specialized instructions can be interleaved with the source data. The extensible device may retrieve the interleaved specialized instructions before processing the source data. This interleaving would make it more difficult for an unauthorized user to use the source data. Accordingly this invention is not limited except as by the appended claims.

Claims

1. An extensible device for processing source data, comprising: a component for receiving source data along with instructions for processing the source data at the device; a component for storing the received instructions in memory of the device; and a processing unit that executes the received instructions which are stored in the memory to effect the processing of the source data at the device in accordance with the instructions sent along with the source data.
2. The device of claim 1 wherein the memory is a nonvolatile memory.
3. The device of claim 1 including: a component for receiving source data without instructions for processing the source data at the device, wherein the processing unit executes default instructions which are stored in the memory to effect the processing of the source data in a default way.
4. The device of claim 1 wherein the component for storing the received instructions stores the received instructions so as to supersede instructions previously used to process source data.
5. The device of claim 1 wherein the instructions are received before the source data.
6. The device of claim 1 wherein the instructions are interleaved within the source data.
7. The device of claim 1 including: a drive that reads a storage media on which the source data and instructions are stored and provides the source data and instructions to the component for receiving the source data and instructions.
8. The device of claim 7 wherein the received instructions cannot be output from the device.
9. The device of claim 8 wherein the source data can be output from the device.
10. The device of claim 1 wherein the source data and instructions are received from another device via a communications channel.
11. The device of claim 10 wherein the other device has the instructions stored in a memory, wherein the other device receives the source data from an external source, and wherein the other device forwards the source data along with the instructions stored in memory to the device.
12. The device of claim 1 wherein the instructions are for decrypting the source data.
13. A computer-readable medium containing a data structure that includes: source data that can be processed by an extensible device; and computer instructions for performing processing on the source data whereby the source data and computer instructions are transmitted as a unit to the extensible device and wherein the extensible device can execute the computer instructions to perform the processing on the source data.
14. The computer-readable medium of claim 10 wherein the computer-readable medium is a data transmission medium.
15. The computer-readable medium of claim 10 wherein the computer-readable medium is a removable storage medium.
16. The computer-readable medium of claim 10 wherein the computer-readable medium is a disk.
17. The computer-readable medium of claim 10 wherein the computer instructions control the decrypting of the source data.
18. The computer-readable medium of claim 10 wherein the extensible device that that reads the data structure does not output the computer instructions.
19. A method in a device for transmitting source data, comprising: receiving the source data at the device from a source external to the device; retrieving instructions from memory of the device, the instructions for processing the source data; and ttansntitting the retrieved instructions and the received source data to an extensible device so that the extensible device can execute the transmitted instructions to effect the processing of the source data.
20. The method of claim 19 wherein the instructions are for decrypting the received source data.
21. The method of claim 19 including receiving instructions at the device from the source external to the device and transmitting the received instructions and the received source data rather than transrmtting the instructions retrieved from memory.
22. A computer-readable medium containing computer instructions for controlling an extensible device to process source data, by: receiving source data along with instructions for processing the source data at the extensible device; storing the received instructions at the extensible device; and executing the stored instructions to effect the processing of the source data at the extensible device.
23. The computer-readable medium of claim 22, including executing default instructions for processing source data that is received without accompanying instructions.
24. The computer-readable medium of claim 22 wherein the received instructions supersede the default instructions.
PCT/US1999/010255 1998-05-11 1999-05-10 Method and system for distributing processing instructions with adata to be processed WO1999059060A2 (en)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CA002330739A CA2330739A1 (en) 1998-05-11 1999-05-10 Method and system for distributing processing instructions with data to be processed
AU38970/99A AU3897099A (en) 1998-05-11 1999-05-10 Method and system for distributing processing instructions with adata to be processed
EP99921864A EP1076850A2 (en) 1998-05-11 1999-05-10 Method and system for distributing processing instructions with adata to be processed
JP2000548803A JP2002514810A (en) 1998-05-11 1999-05-10 Method and system for distributing processing instructions with data to be processed

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US8502198P 1998-05-11 1998-05-11
US60/085,021 1998-05-11

Publications (2)

Publication Number Publication Date
WO1999059060A2 true WO1999059060A2 (en) 1999-11-18
WO1999059060A3 WO1999059060A3 (en) 1999-12-29

Family

ID=22188925

Family Applications (4)

Application Number Title Priority Date Filing Date
PCT/US1999/010255 WO1999059060A2 (en) 1998-05-11 1999-05-10 Method and system for distributing processing instructions with adata to be processed
PCT/US1999/010225 WO1999059391A2 (en) 1998-05-11 1999-05-11 Method and apparatus for data sample clock recovery
PCT/US1999/010226 WO1999059047A2 (en) 1998-05-11 1999-05-11 Method and apparatus for low jitter clock recovery
PCT/US1999/010224 WO1999059073A2 (en) 1998-05-11 1999-05-11 Method and system for providing an appliance user interface

Family Applications After (3)

Application Number Title Priority Date Filing Date
PCT/US1999/010225 WO1999059391A2 (en) 1998-05-11 1999-05-11 Method and apparatus for data sample clock recovery
PCT/US1999/010226 WO1999059047A2 (en) 1998-05-11 1999-05-11 Method and apparatus for low jitter clock recovery
PCT/US1999/010224 WO1999059073A2 (en) 1998-05-11 1999-05-11 Method and system for providing an appliance user interface

Country Status (5)

Country Link
EP (4) EP1076850A2 (en)
JP (4) JP2002514810A (en)
AU (4) AU3897099A (en)
CA (4) CA2330739A1 (en)
WO (4) WO1999059060A2 (en)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3424620B2 (en) * 1999-09-24 2003-07-07 日本電気株式会社 Isochronous packet transfer method, recording medium for transfer control program, bridge, and packet transfer control LSI
US6895009B1 (en) 2000-04-07 2005-05-17 Omneon Video Networks Method of generating timestamps for isochronous data
EP1198085B1 (en) 2000-10-10 2011-06-08 Sony Deutschland GmbH Cycle synchronization between interconnected sub-networks
DE10104876A1 (en) * 2001-02-03 2002-08-08 Bosch Gmbh Robert Circuit arrangement and method for the synchronized transmission of audio data streams in a bus system
DE10229372A1 (en) * 2002-06-29 2004-01-15 Deutsche Thomson-Brandt Gmbh Data transmitter, especially for OSI/SO 7-layer model data security layer, has time marker allocation unit that allocates generated time marker to current data packet or data packet to be generated
TWI347092B (en) 2006-04-11 2011-08-11 Realtek Semiconductor Corp Methods for adjusting sampling clock of sampling circuit and related apparatuses
GB2449932A (en) 2007-06-08 2008-12-10 Tandberg Television Asa Timestamp conversion using samples
US7936794B2 (en) * 2007-08-07 2011-05-03 Avaya Inc. Clock management between two end points
GB2514572B (en) 2013-05-29 2020-05-27 Grass Valley Ltd Re-timing sampled data
CN106933212B (en) * 2017-04-21 2019-12-10 华南理工大学 reconfigurable industrial robot programming control method in distributed manufacturing environment

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0489204A1 (en) * 1990-12-04 1992-06-10 Hewlett-Packard Limited Reprogrammable data storage device
WO1995033338A1 (en) * 1994-05-27 1995-12-07 Bell Atlantic Network Services, Inc. Dynamically programmable digital entertainment terminal
EP0793166A2 (en) * 1995-08-14 1997-09-03 Aisin Aw Co., Ltd. Navigation system and computer program loading therefor

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2645989A1 (en) * 1989-04-17 1990-10-19 Bull Sa MULTIFUNCTION COUPLER BETWEEN A CENTRAL COMPUTER UNIT AND THE DIFFERENT PERIPHERAL ORGANS OF THE SAME
JP2937529B2 (en) * 1991-03-27 1999-08-23 日本電気株式会社 Clock recovery circuit
US5526362A (en) * 1994-03-31 1996-06-11 Telco Systems, Inc. Control of receiver station timing for time-stamped data
JP3203978B2 (en) * 1994-07-25 2001-09-04 ソニー株式会社 Data transmitting / receiving device, data receiving device, and data transmitting device
US5901149A (en) * 1994-11-09 1999-05-04 Sony Corporation Decode and encode system
DE69735415T2 (en) * 1996-05-07 2006-09-28 Yamaha Corp., Hamamatsu Method and system for transmitting audio data with time stamp
US5922050A (en) * 1996-07-02 1999-07-13 Sun Microsystems, Inc. Method and apparatus for controlling a device on a network
JPH10190705A (en) * 1996-10-22 1998-07-21 Sony Corp Transmission device/method and reception device/method

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0489204A1 (en) * 1990-12-04 1992-06-10 Hewlett-Packard Limited Reprogrammable data storage device
WO1995033338A1 (en) * 1994-05-27 1995-12-07 Bell Atlantic Network Services, Inc. Dynamically programmable digital entertainment terminal
US5635979A (en) * 1994-05-27 1997-06-03 Bell Atlantic Dynamically programmable digital entertainment terminal using downloaded software to control broadband data operations
EP0793166A2 (en) * 1995-08-14 1997-09-03 Aisin Aw Co., Ltd. Navigation system and computer program loading therefor

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
ALEGIANI J B ET AL: "AN IN-VEHICLE NAVIGATION AND INFORMATION SYSTEM UTILIZING DEFINED SOFTWARE SERVICES" PROCEEDINGS OF THE VEHICLE NAVIGATION AND INFORMATION SYSTEMS CONFERENCE. (VNIS), TORONTO, SEPT. 11 - 13, 1989, no. CONF. 1, 11 September 1989 (1989-09-11), pages A03-A08, XP000089917 REEKIE D;CASE E; TSAI J *

Also Published As

Publication number Publication date
CA2330740A1 (en) 1999-11-18
WO1999059073A2 (en) 1999-11-18
AU3897099A (en) 1999-11-29
WO1999059047A3 (en) 2000-04-06
WO1999059047A2 (en) 1999-11-18
JP2002514810A (en) 2002-05-21
JP2002514820A (en) 2002-05-21
CA2330676A1 (en) 1999-11-18
EP1076850A2 (en) 2001-02-21
AU3792199A (en) 1999-11-29
EP1076858A2 (en) 2001-02-21
JP2002514876A (en) 2002-05-21
CA2330970A1 (en) 1999-11-18
AU3894699A (en) 1999-11-29
WO1999059073A9 (en) 2001-05-31
AU3792299A (en) 1999-11-29
EP1076846A2 (en) 2001-02-21
JP2002515718A (en) 2002-05-28
WO1999059073A3 (en) 1999-12-29
CA2330739A1 (en) 1999-11-18
WO1999059391A2 (en) 1999-11-18
EP1101303A2 (en) 2001-05-23
WO1999059391A3 (en) 2001-03-22
WO1999059060A3 (en) 1999-12-29

Similar Documents

Publication Publication Date Title
US8535151B2 (en) Multimedia-based video game distribution
US7716699B2 (en) Control and playback of media over network link
US6662060B1 (en) Method and apparatus for multimedia playback with title specific parameters
KR100600203B1 (en) Secure streaming of digital audio/visual content
US7155609B2 (en) Key exchange mechanism for streaming protected media content
US7639815B2 (en) Digital content decrypting apparatus and operating method thereof
US7290148B2 (en) Encryption and decryption communication semiconductor device and recording/reproducing apparatus
US6341375B1 (en) Video on demand DVD system
US20080152138A1 (en) Audio data transmission method for transmitting encrypted audio data, audio processing system and computer system thereof
WO2000063905A1 (en) Data processing system, data processing method, and data processor
JP2012502358A (en) Cross transport authentication
JP2004008799A (en) Console base game system and method of operating the same
JP2004080765A (en) Amusement system for vehicle
WO1999059060A2 (en) Method and system for distributing processing instructions with adata to be processed
JPH07193879A (en) Survival method of same address unit
US20050076304A1 (en) Method and system for remote playback of a DVD
KR20050112076A (en) System and method for home network connect protection and copy management
EP1323035A1 (en) Method and apparatus for secure automatic playback of content from removable mass storage media
US20020057795A1 (en) Content protection through the audio and video decrypting and decoding device
US9814988B2 (en) Games console adaptor unit
JP2002313019A (en) Data transfer system, data transfer device, data recorder, data transfer method
US6430530B1 (en) Apparatus for automatically processing both encoded and unencoded data
JP2000048483A (en) Information processing method and information processor
EP1414274A2 (en) Information reproduction system, information reproduction device and information reproduction method
US20080071950A1 (en) Thin client implementation based on redirection of virtual i/o devices

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): AL AM AT AU AZ BA BB BG BR BY CA CH CN CU CZ DE DK EE ES FI GB GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MD MG MK MN MW MX NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT UA UG US UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): GH GM KE LS MW SD SL SZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG

AK Designated states

Kind code of ref document: A3

Designated state(s): AL AM AT AU AZ BA BB BG BR BY CA CH CN CU CZ DE DK EE ES FI GB GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MD MG MK MN MW MX NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT UA UG US UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A3

Designated state(s): GH GM KE LS MW SD SL SZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

ENP Entry into the national phase in:

Ref document number: 2330739

Country of ref document: CA

WWE Wipo information: entry into national phase

Ref document number: 1999921864

Country of ref document: EP

Ref document number: IN/PCT/2000/00606/MU

Country of ref document: IN

NENP Non-entry into the national phase in:

Ref country code: KR

ENP Entry into the national phase in:

Ref document number: 2000 548803

Country of ref document: JP

Kind code of ref document: A

WWP Wipo information: published in national office

Ref document number: 1999921864

Country of ref document: EP

WWR Wipo information: refused in national office

Ref document number: 1999921864

Country of ref document: EP

WWW Wipo information: withdrawn in national office

Ref document number: 1999921864

Country of ref document: EP