GB2437101A - Method and apparatus for processing digitally encoded data streams - Google Patents

Method and apparatus for processing digitally encoded data streams Download PDF

Info

Publication number
GB2437101A
GB2437101A GB0610020A GB0610020A GB2437101A GB 2437101 A GB2437101 A GB 2437101A GB 0610020 A GB0610020 A GB 0610020A GB 0610020 A GB0610020 A GB 0610020A GB 2437101 A GB2437101 A GB 2437101A
Authority
GB
United Kingdom
Prior art keywords
data
stream
demultiplexer
sub
portions
Prior art date
Legal status (The legal status 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 status listed.)
Withdrawn
Application number
GB0610020A
Other versions
GB0610020D0 (en
Inventor
Matthew Alan Bowers
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tektronix International Sales GmbH
Original Assignee
Tektronix International Sales GmbH
VQUAL Ltd
Tektronix Bristol Ltd
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 Tektronix International Sales GmbH, VQUAL Ltd, Tektronix Bristol Ltd filed Critical Tektronix International Sales GmbH
Publication of GB0610020D0 publication Critical patent/GB0610020D0/en
Priority to PCT/GB2007/001181 priority Critical patent/WO2007128957A1/en
Publication of GB2437101A publication Critical patent/GB2437101A/en
Withdrawn legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/236Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/70Media network packetisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/764Media network packet handling at the destination 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • H04N21/8455Structuring of content, e.g. decomposing content into time segments involving pointers to the content, e.g. pointers to the I-frames of the video stream

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

A method of processing a digitally encoded data stream by means of a data processing system including an I/O processor, a demultiplexer and a decoder, the data stream comprising a plurality of data portions at least one of which includes a reference to at least one further data portion located externally from the data stream, the method comprising in response to a request from the data decoder to the demultiplexer for a data portion, determining if the requested data portion includes a reference to one of the further data portions located externally from the data stream, and if the determination is positive, causing the I/O processor to retrieve the further data portion and input the further data portion to the demultiplexer and subsequently causing the demultiplexer to output the further data to the data decoder.

Description

<p>METHOD AND APPARATUS FOR PROCESSING DIGITALLY ENCODED</p>
<p>DATA</p>
<p>In the field of digital data transmission the digital data is generally encoded into one of many available data file formats. Examples of such file formats include JPEG, MPEG and Microsoft way files, amongst others. Apart from providing a file format in a standard form that can be readily decoded by third parties, the encoding process generally also serves to compress the digital data so as to reduce the sheer volume of raw data to be transmitted or stored. Generally speaking, the encoding process encodes the digital data into discrete packets. A sequence of such data packets arranged sequentially in the appropriate order comprises a data stream. The desired end result is to provide the correctly assembled data stream to an appropriate data decoder to allow the digital data to be decoded into its original state, for example audio data. By dividing the encoded data into discrete packets data loss, particularly during data transmission, is minimised since the correct receipt of individual packets can be determined and individual data packets resent if required.</p>
<p>Equally for instances where the digital data is stored in its encoded format on a data storage medium the correct retrieval of individual data packets from the data storage medium can be determined and a repeated data access performed if required.</p>
<p>The provision of the digital data in the form of a single data stream represents a very simple data arrangement. More commonly the digital data will represent a number of separate data streams. For example, where the digital data represents audio/visual data, such as a film, the video (images) and audio data may be provided in separate data streams.</p>
<p>Depending on how the video and audio data was recorded originally and/or encoded, the video and audio streams may be further sub-divided. For example, multiple audio streams may be provided, with each audio stream representing a separate speaker channel in accordance with a surround sound standard. Where multiple original data streams are present they are generally multiplexed together prior to storage or transmission to form a parent stream', with the individual streams then only existing as virtual' sub-streams composed of a list of references to items of data in the parent stream.</p>
<p>A simple data decoder is arranged to process a single data stream at a time and to simply process the individual data packets in the order in which they are provided. Alternatively, where an individual data stream is reassembled into a single data file, the decoder is arranged to simply process that single data file. Where multiple data streams are present a "wrapper demux" is provided, the function of which is to process the parent stream and assemble the separate individual data streams to be processed by appropriate individual decoders.</p>
<p>However, an increasing number of data file formats provide support for references to external data files. In other words, the encoded digital data is not provided in a continuous data stream of sequential data packets but may include one or more references to completely separate data objects.</p>
<p>One method of providing the necessary functionality to decode such file formats is to provide the appropriate decoders with the necessary functionality to directly access these external data objects. In other words, the data stream that is input to the individual decoders will generally include one or more references to an external data object, the reference specifying the location of the data object. The data decoder is arranged to correctly interpret the specified file location and is arranged to have the necessary direct access to that location. This can be disadvantageous since it introduces a further level of complexity into the data decoders and furthermore results in a proliferation of multiple file support around many system components, i.e. individual decoders. Such a proliferation is not particularly desirable since it further complicates the decoding system and introduces an increased possibility of system conflicts. Additionally, where a decoding system has previously been developed and arranged to operate on the principles of continuous data streams, the adaptations required to allow individual decoders to make the required external file reference accesses can be significant in terms of both technical and financial resources.</p>
<p>It would therefore be beneficial to provide a method of processing digital data encoded into file formats that support references to external data objects whilst using decoders that themselves do not support such external references.</p>
<p>According to a first aspect of the present invention there is therefore provided a method of processing a digitally encoded data stream by means of a data processing system including an 110 processor, a demultiplexer and a decoder, the data stream comprising a plurality of data portions at least one of which includes a reference to at least one further data portion located externally from the data stream, the method comprising: in response to a request from the data decoder to the demultiplexer for a data portion, determining if the requested data portion includes a reference to one of the further data portions located externally from the data stream; and if the determination is positive, causing the 1/0 processor to retrieve the further data portion and input the further data portion to the demultiplexer and subsequently causing the demultiplexer to output the further data to the data decoder.</p>
<p>Additionally, the inclusion of a reference to a further data portion may be determined by the demultiplexer. Additionally, if the determination is positive a control signal may be sent to the 1/0 processor by the demultiplexer, the control signal causing the 1/0 processor to retrieve the further data portion.</p>
<p>Additionally or alternatively, each of the plurality of data portions may be associated with one of a plurality of data sub-streams and the method further comprises generating a record of data portions associated with each sub-stream by means of the demultiplexer.</p>
<p>Additionally, the step of generating the list of data portions associated with each data sub-stream may comprise reading, by means of the demultiplexer, a data stream index included in a data portion located at the beginning of the data stream. Alternatively, the step of generating the list of data portions associated with each data sub-stream may comprise reading, by means of the demultiplexer, the first N data portions of the data stream, where N is an integer, wherein each data portion includes an identification of the data sub-stream to which it is associated.</p>
<p>According to a second aspect of the present invention there is provided a data processing system for processing a digitally encoded data stream, the data stream comprising a plurality of data portions at least one of which includes a reference to at least one further data portion located externally from the data stream, the system comprising an I/O processor arranged to receive the data stream and output a specified data portion, at least one decoder for decoding the data portions arranged to issue a request for a data portion to be decoded, and a demultiplexer in communication with the I/O processor and decoder and arranged in response to receiving the request from the decoder to determine if the requested data portion includes a reference to one of the further data portions located externally from the data stream to determine if the requested data portion includes a reference to one of the further data portions located externally from the data stream and if the determination is positive to output a request to the 1/0 processor for the further data portion, the 1/0 processor being further arranged to access data portions located otherwise than in the data stream.</p>
<p>Additionally, each of the plurality of data portions may be associated with one of a plurality of sub-streams and the demultiplexer is arranged to generate a record of data portions associated with each data sub-stream. Additionally, at least one of the data portions in the data stream may include a sub-stream index specifying the association between each data portion and each data sub-stream and the demultiplexer is arranged to process the sub-stream index to generate said record. Alternatively, each data portion may include a sub-stream identifier and the demultiplexer is arranged to read the sub-stream identifier for the first N data portions, where N is an integer, to generate said record.</p>
<p>Preferred embodiments of the present invention will now be described below, by way of illustrative and non-limiting example only, with reference to the accompanying figures, of which: Figure 1 schematically illustrates a portion of a digital data decoding system according to an embodiment of the present invention; and Figure 2 schematically illustrates the method steps of retrieving a requested data byte according to embodiments of the present invention.</p>
<p>Figure 1 schematically illustrates the system and process for decoding encoded digital data according to a preferred embodiment of the present invention. According to preferred, and other, embodiments of the present invention the initial input file comprises a wrapper file 1. In this context the wrapper file can be thought of as a container in which the multiple digital data streams are "wrapped". As well as effectively bundling the multiple data streams into a single data object, the wrapper file may also further encode the digital data of the data streams in a manner most appropriate for either their transmission or storage.</p>
<p>The wrapper file is provided as an input to an 1/0 object' 3 that comprises a first data processing entity. The 1/0 processor 3 is arranged to provide individual sections' of the parent data stream to a Demux (demultiplexer) 5 in response to an appropriate request from the Demux. Each section' may be one or more bytes of data or a data header, for example, depending on the encoding scheme used. Each section' includes a start address (relative to the beginning of the parent data stream) and a length. For example, a section' may be identified as starting at byte 100 of the parent stream and having a length of a further 4 bytes. Contained within the parent data stream is information on the number of sub-streams contained in the parent stream. The location of this information within the parent stream will vary depending on the encoding used. For example, the MPEG-4 format includes an initial header followed by data packets, the initial header containing the information on the number of sub-streams amongst other information. However, in contrast the MPEG-2 Transport Stream provides data packets each having their own individual header providing the information on which sub-stream the data packet belongs to.</p>
<p>The Demux 5 is arranged to read sufficient of the parent data stream to determine the number of sub-streams present. In the case where an initial global' header is provided the Demux only needs to read and parse this header to determine the number of sub-streams and to create each sub-stream as a list of references to data sections in the parent stream.</p>
<p>In the case of each data packet including its own header, the Demux 5 is arranged to read a predetermined number of the sections of the parent data stream to determine the number of sub-streams present. Since in the latter case not all the sections of the parent stream are read by the Demux 5, it is not possible to generate a corresponding complete list of references. However, when the last reference on the list has been called for (as explained further below), in response to the next request for data by a decoder the Demux reads a further number of the data sections to extend the list of references. Having assembled the list of references to the parent stream for each sub-stream the Demux 5 is able to process each request for data received from any one of the decoders 9 coupled to the Demux 5. In operation each decoder 9 requests, or calls', the next byte of data to be decoded for the particular sub-stream being processed by that decoder. The decoder does not call for the next byte by location but simply requests the next' byte. By referring to the list of references created for each sub-stream the Demux 5 determines the location of the requested next byte' within the parent data stream and requests that byte from the I/O processor 3, which is arranged to physically access the required data. The requested data is then passed back downstream from the I/O processor 3 to the relevant decoder 9 via the Demux 5.</p>
<p>In the case that a sub-stream includes a reference to an external file location i.e. the actual data is not contained within the parent data stream, the Demux 5 is arranged to recognise the presence of an external file reference such that when the next byte' requested by a decoder 9 is located in an external file the Demux 5 passes a special request upstream to the 110 processor 3 instructing the 1/0 processor to access the specified external file. The requested data is then retrieved from the external file by the I/O processor and subsequently passed back downstream to the Demux 5, which passes it further downstream to the relevant decoder 9. Consequently in embodiments of the present invention the provision of externally located data to a decoder is accomplished in a manner that is completely transparent to the decoder, since each byte of data is provided from the Demux when requested by a decoder in the same way, as far as its passage from Demux to decoder is concerned, regardless of the data' s location. As a result only the 1/0 processor 3 is required to be capable of accessing the external file locations, thus maintaining the simplicity of the system and avoiding multiple file access conflicts. This methodology is schematically illustrated in Figure 2. On a request for the next byte' from a decoder a determination is made (by the Demux) if the required byte is located in an external file, as denoted by decision box 20. If not, the next byte' is retrieved from the parent stream as described above and as represented by action box 22. If the next byte' is externally located then it is retrieved from the specified external file, by the I/O processor, as also previously described and as represented by action box 24 in Figure 2. The retrieved data byte is subsequently passed back to the Demux (action box 26) and then to the relevant decoder (action box 28).</p>

Claims (1)

  1. <p>CLAIMS</p>
    <p>A method of processing a digitally encoded data stream by means of a data processing system including an I/O processor, a demultiplexer and a decoder, the data stream comprising a plurality of data portions at least one of which includes a reference to at least one further data portion located externally from the data stream, the method comprising: in response to a request from the data decoder to the demultiplexer for a data portion, determining if the requested data portion includes a reference to one of the further data portions located externally from the data stream; and if the determination is positive, causing the I/O processor to retrieve the further data portion and input the further data portion to the demultiplexer and subsequently causing the demultiplexer to output the further data to the data decoder.</p>
    <p>2. The method of claim 1, wherein the inclusion of a reference to a further data portion is determined by the demultiplexer.</p>
    <p>3. The method of claim 2, wherein if the determination is positive a control signal is sent to the I/O processor by the demultiplexer, the control signal causing the I/O processor to retrieve the further data portion.</p>
    <p>4. The method of any preceding claim, wherein each of the plurality of data portions is associated with one of a plurality of data sub-streams and the method further comprises generating a record of data portions associated with each sub-stream by means of the demultiplexer.</p>
    <p>5. The method of claim 4, wherein the step of generating the list of data portions associated with each data sub-stream comprises reading, by means of the demultiplexer, a data stream index included in a data portion located at the beginning of the data stream.</p>
    <p>6. The method of claim 4, wherein the step of generating the list of data portions associated with each data sub-stream comprises reading, by means of the demultiplexer, the first N data portions of the data stream, where N is an integer, wherein each data portion includes an identification of the data sub-stream to which it is associated.</p>
    <p>7. A data processing system for processing a digitally encoded data stream, the data stream comprising a plurality of data portions at least one of which includes a reference to at least one further data portion located externally from the data stream, the system comprising: an I/O processor arranged to receive the data stream and output a specified data portion; at least one decoder for decoding the data portions arranged to issue a request for a data portion to be decoded; and a demultiplexer in communication with the 1/0 processor and decoder and arranged in response to receiving the request from the decoder to determine if the requested data portion includes a reference to one of the further data portions located externally from the data stream to determine if the requested data portion includes a reference to one of the further data portions located externally from the data stream and if the determination is positive to output a request to the I/O processor for the further data portion, the I/O processor being further arranged to access data portions located otherwise than in the data stream.</p>
    <p>8. The data processing system of claim 7, wherein each of the plurality of data portions is associated with one of a plurality of sub-streams and the demultiplexer is arranged to generate a record of data portions associated with each data sub-stream.</p>
    <p>9. The data processing system of claim 8, wherein at least one of the data portions in the data stream includes a sub-stream index specifying the association between each data portion and each data sub-stream and the demultiplexer is arranged to process the sub-stream index to generate said record.</p>
    <p>10. The data processing system of claim 8, wherein each data portion includes a sub-stream identifier and the demultiplexer is arranged to read the sub-stream identifier for the first N data portions, where N is an integer, to generate said record.</p>
GB0610020A 2006-04-10 2006-05-19 Method and apparatus for processing digitally encoded data streams Withdrawn GB2437101A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/GB2007/001181 WO2007128957A1 (en) 2006-04-10 2007-03-30 Method and apparatus for processing digitally encoded data in stream to retrieve data portion located externally

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
GBGB0607216.9A GB0607216D0 (en) 2006-04-10 2006-04-10 Method and apparatus for handling media with external references

Publications (2)

Publication Number Publication Date
GB0610020D0 GB0610020D0 (en) 2006-06-28
GB2437101A true GB2437101A (en) 2007-10-17

Family

ID=36539693

Family Applications (2)

Application Number Title Priority Date Filing Date
GBGB0607216.9A Ceased GB0607216D0 (en) 2006-04-10 2006-04-10 Method and apparatus for handling media with external references
GB0610020A Withdrawn GB2437101A (en) 2006-04-10 2006-05-19 Method and apparatus for processing digitally encoded data streams

Family Applications Before (1)

Application Number Title Priority Date Filing Date
GBGB0607216.9A Ceased GB0607216D0 (en) 2006-04-10 2006-04-10 Method and apparatus for handling media with external references

Country Status (1)

Country Link
GB (2) GB0607216D0 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0843485A2 (en) * 1996-11-13 1998-05-20 Lsi Logic Corporation MPEG decoder unified memory
US20030059196A1 (en) * 1999-01-14 2003-03-27 Hideo Ando Digital video recording system and its recording medium
US6804266B1 (en) * 2000-01-24 2004-10-12 Ati Technologies, Inc. Method and apparatus for handling private data from transport stream packets

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0843485A2 (en) * 1996-11-13 1998-05-20 Lsi Logic Corporation MPEG decoder unified memory
US20030059196A1 (en) * 1999-01-14 2003-03-27 Hideo Ando Digital video recording system and its recording medium
US6804266B1 (en) * 2000-01-24 2004-10-12 Ati Technologies, Inc. Method and apparatus for handling private data from transport stream packets

Also Published As

Publication number Publication date
GB0607216D0 (en) 2006-05-17
GB0610020D0 (en) 2006-06-28

Similar Documents

Publication Publication Date Title
KR101868280B1 (en) Information processing apparatus, information processing method, and computer-readable recording medium
KR101885852B1 (en) Method and apparatus for transmitting and receiving content
KR102207932B1 (en) Apparatus and method for delivering and receiving multimedia data in hybrid network
US20060259168A1 (en) Audio file format conversion
JP2015527788A (en) Adaptive media structure transmission method and apparatus in multimedia system
US20060136457A1 (en) Method for supporting scalable progressive downloading of video signal
US10978109B2 (en) Synchronously playing method and device of media file, and storage medium
JP2008136204A (en) System and method for streaming, receiving and processing flex mux stream
US20080154941A1 (en) Method of and apparatus for encoding/decoding multimedia data with preview function
GB2593897A (en) Method, device, and computer program for improving random picture access in video streaming
WO2002086894A1 (en) Trick play for mp3
CN113709510A (en) High-speed data real-time transmission method and device, equipment and storage medium
KR100608059B1 (en) MOT data decoding method and apparatus thereof
CN103430558A (en) A method for optimizing a video stream
CN1848939B (en) Information management system, information management apparatus and information management method
US9264720B2 (en) Apparatus and method for multimedia service
KR101295377B1 (en) Method for constructing of file format and apparatus and method for processing broadcast signal with file which has file format
US20110276662A1 (en) Method of constructing multimedia streaming file format, and method and apparatus for servicing multimedia streaming using the multimedia streaming file format
KR20080064399A (en) Mp4 demultiplexer and operating method thereof
EP2812813B1 (en) Methods and systems for providing file data for a media file
GB2437101A (en) Method and apparatus for processing digitally encoded data streams
WO2007128957A1 (en) Method and apparatus for processing digitally encoded data in stream to retrieve data portion located externally
US20030083864A1 (en) File creating method and data reproduction method
BG63236B1 (en) Device and method for the transmission of digital information signal alternately in encoded and unencoded form
KR101656102B1 (en) Apparatus and method for generating/providing contents file

Legal Events

Date Code Title Description
COOA Change in applicant's name or ownership of the application

Owner name: TEKTRONIX INTERNATIONAL SALES GMBH

Free format text: FORMER APPLICANT(S): TEKTRONIX BRISTOL LIMITED

WAP Application withdrawn, taken to be withdrawn or refused ** after publication under section 16(1)