A more complete understanding of the present invention and the advantages thereof may be acquired by referring to the following description in consideration of the accompanying drawings, in which like reference numbers indicate like features, and wherein:
In the following description of the various embodiments, reference is made to the accompanying drawings, which form a part hereof, and in which is shown by way of illustration various embodiments in which the invention may be practiced. It is to be understood that other embodiments may be utilized and structural and functional modifications may be made without departing from the scope and spirit of the present invention.
Digital content may be created and/or provided by digital content sources 104 and may include video signals, audio signals, data, and so forth. Digital content sources 104 may provide content to digital broadcast transmitter 103 in the form of digital packets, e.g., Internet Protocol (IP) packets. A group of related IP packets sharing a certain unique IP address or other source identifier is sometimes described as an IP stream. Digital broadcast transmitter 103 may receive, process, and forward for transmission multiple IP streams from multiple digital content sources 104. The processed digital content may then be passed to digital broadcast tower 105 (or other physical transmission component) for wireless transmission. Ultimately, mobile terminals or devices 112 may selectively receive and consume digital content originating from digital content sources 104.
As shown in
Computer executable instructions and data used by processor 128 and other components within mobile device 112 may be stored in a computer readable memory 134. The memory may be implemented with any combination of read only memory modules or random access memory modules, optionally including both volatile and nonvolatile memory. Software 140 may be stored within memory 134 and/or storage to provide instructions to processor 128 for enabling mobile device 112 to perform various functions. Alternatively, some or all of mobile device 112 computer executable instructions may be embodied in hardware or firmware (not shown).
Mobile device 112 may be configured to receive, decode and process digital broadband broadcast transmissions that are based, for example, on the Digital Video Broadcast (DVB) standard, such as DVB-H, DVB-H2, or DVB-MHP, through a specific DVB receiver 141. The mobile device may also be provided with other types of receivers for digital broadband broadcast transmissions. Additionally, receiver device 112 may also be configured to receive, decode and process transmissions through FM/AM Radio receiver 142, WLAN transceiver 143, and telecommunications transceiver 144. In one aspect of the invention, mobile device 112 may receive radio data stream (RDS) messages.
In an example of the DVB standard, one DVB 10 Mbit/s transmission may have 200, 50 kbit/s audio program channels or 50, 200 kbit/s video (TV) program channels. The mobile device 112 may be configured to receive, decode, and process transmission based on the Digital Video Broadcast-Handheld (DVB-H) standard or other DVB standards, such as DVB-MHP, DVB-Satellite (DVB-S), or DVB-Terrestrial (DVB-T). Similarly, other digital transmission formats may alternatively be used to deliver content and information of availability of supplemental services, such as ATSC (Advanced Television Systems Committee), NTSC (National Television System Committee), ISDB-T (Integrated Services Digital Broadcasting—Terrestrial), DAB (Digital Audio Broadcasting), DMB (Digital Multimedia Broadcasting), FLO (Forward Link Only) or DIRECTV. Additionally, the digital transmission may be time sliced, such as in DVB-H technology. Time-slicing may reduce the average power consumption of a mobile terminal and may enable smooth and seamless handover. Time-slicing entails sending data in bursts using a higher instantaneous bit rate as compared to the bit rate required if the data were transmitted using a traditional streaming mechanism. In this case, the mobile device 112 may have one or more buffer memories for storing the decoded time sliced transmission before presentation.
In addition, an Electronic Service Guide (ESG) may be used to provide program or service related information. Generally, an Electronic Service Guide (ESG) enables a terminal to communicate what services are available to end users and how the services may be accessed. The ESG includes independently existing pieces of ESG fragments. Traditionally, ESG fragments include XML documents, but more recently they have encompassed a vast array of items, such as for example, a SDP (Session Description Protocol) description, textual file, or an image. The ESG fragments describe one or several aspects of currently available (or future) service or broadcast program. Such aspects may include for example: free text description, schedule, geographical availability, price, purchase method, genre, and supplementary information such as preview images or clips. Audio, video and other types of data including the ESG fragments may be transmitted through a variety of types of networks according to many different protocols. For example, data can be transmitted through a collection of networks usually referred to as the “Internet” using protocols of the Internet protocol suite, such as Internet Protocol (IP) and User Datagram Protocol (UDP). Data is often transmitted through the Internet addressed to a single user. It can, however, be addressed to a group of users, commonly known as multicasting. In the case in which the data is addressed to all users it is called broadcasting.
One way of broadcasting data is to use an IP datacasting (IPDC) network. IPDC is a combination of digital broadcast and Internet Protocol. Through such an IP-based broadcasting network, one or more service providers can supply different types of IP services including on-line newspapers, radio, and television. These IP services are organized into one or more media streams in the form of audio, video and/or other types of data. To determine when and where these streams occur, users refer to an electronic service guide (ESG). One type of DVB is Digital video broadcasting-handheld (DVB-H). The DVB-H is designed to deliver 10 Mbps of data to a battery-powered terminal device.
DVB transport streams deliver compressed audio and video and data to a user via third party delivery networks. Moving Picture Expert Group (MPEG) is a technology by which encoded video, audio, and data within a single program is multiplexed, with other programs, into a transport stream (TS). The TS is a packetized data stream, with fixed length packets, including a header. The individual elements of a program, audio and video, are each carried within packets having a unique packet identification (PID). To enable a receiver device to locate the different elements of a particular program within the TS, Program Specific Information (PSI), which is embedded into the TS, is supplied. In addition, additional Service Information (SI), a set of tables adhering to the MPEG private section syntax, is incorporated into the TS. This enables a receiver device to correctly process the data contained within the TS.
As stated above, the ESG fragments may be transported by IPDC over a network, such as for example, DVB-H to destination devices. The DVB-H may include, for example, separate audio, video and data streams. The destination device must then again determine the ordering of the ESG fragments and assemble them into useful information.
In a typical communication system, a cell may define a geographical area that may be covered by a transmitter. The cell may be of any size and may have neighboring cells.
Communication between network components may be accomplished via the Open Systems Interconnection (OSI) standard. The OSI framework of the process for communication between different network components may be structured as seven layers or categories as described by the OSI reference model.
In one example, information pertaining to a data transmission may be provided in a service discovery section (SDS). Information provided in the SDS may provide for service discovery by a receiver or mobile terminal. For example, the SDS may include a channel identifier (channel ID) to identify a channel over which data is transmitted. The SDS may further include mapping of the channel ID to a packet identifier (PID) associated with a data packet in the data stream. Also, the SDS may further map the channel ID to PID within a cell of a network or between different cells of the network. The SDS may be transmitted to the receiver or mobile terminal periodically at predetermined intervals. In one example, the SDS is transmitted every 100 ms. However, the SDS may be transmitted at any desired interval, including time intervals at less than 100 ms (e.g., 10 ms, 20 ms, 50 ms, 80 ms, etc), or greater than 100 ms (e.g., 120 ms, 150 ms, 180 ms, 200 ms or greater).
The SDS may further include a parameter for indicating the hierarchical priority of the transport stream. The IP streams of a channel may be carried within a transport stream that may be assigned a hierarchical priority. For example, one IP stream carried in a channel may be multiplexed into a high priority (HP) transport stream and a second IP stream carried in the channel may be multiplexed into a low priority (LP) transport stream. Further the SDS may include a number of bits that are reserved for future use and a checksum for example a cyclic redundancy check that may be of CRC-32 type.
Also illustrated in the example of
Also, the SDS may include a parameter for identifying a cell (e.g., a cell ID parameter). The cell ID parameter may be included in the SDS and is unique within a network. The SDS may also contain a PID parameter for identifying data packets of an elementary stream (data stream) in the transport stream. In DVB-H elementary stream is a stream of transport packets within a transport stream sharing a common Packet Identifier (PID).
The channel ID may be mapped to corresponding IP addresses and/or port numbers within OSI layers 4-7.
In the SDS, an associated PID is resolved for the identified channel (i.e., the channel identifier) and each of the IP addresses and PIDs associated with the channel identifier are identified. For example, based on the channel identifier of the desired service and the IP addresses associated with the channel identifier in the OSI layers 4-7, the corresponding PIDs, network identifiers, cell identifiers and/or hierarchical priority information may be obtained from the SDS in the OSI layer 2. After the parameters are obtained, the data may be received over the transmission channel. SDS may be carried within a transport stream in L2 or the SDS may be carried in time-sliced. Also, the SDS may be MPE-FEC protected.
The SDS as in
Also illustrated in
For each of the identified networks, as illustrated in the example of
Hence, as the example of
The channel identifiers are associated with one or more IP addresses within OSI layers 4-7. One service may be composed of one or more IP streams, each identified with IP address. The service discovery for each service can be carried by means of channel identifiers, which each are mapped with OSI layer 1 and 2 parameters within SDS sections. The number of SDS sections depends on the section size used and/or on the number of services, L1-L2 parameters, number of IP streams per service etc.
The identified SDS may contain mapping information for identifying a PID corresponding to data packets of a data stream for transmission in the transmission channel. From the SDS, the PID for an associated channel identifier may be determined (STEP 1204). Also, the mapping of the PID with the associated channel identifier may be performed in the OSI layer 2 (data link layer). In STEP 1205, a filter may be created for each of the IP addresses associated with the transmission channel and desired service and corresponding PIDs. A corresponding data stream (corresponding to the channel identifier, the desired service, associated IP addresses, and PID) may be received at the receiver or mobile terminal (STEP 1206).
The SDS may further map the channel identifier with PID, cell identifier, hierarchical priority of transport stream and network identifier such that a network corresponding to the transmission channel and data stream may be identified in the SDS. Also, the data transmission may be within a cell of a network. Hence, the desired service, corresponding channel identifier and IP addresses may be mapped to an SDS and the SDS may further map the parameters to PIDs associated with data packets in the data stream, hierarchical priority of transport stream, a network (via a network identifier such as network_id), and/or a cell within which the data is transported (e.g., via a cell identifier such as a cell_id parameter). The data may be transmitted over a physical connection such as in OSI layer 1. In another example, a computer-readable medium is provided for storing computer-executable code for performing the method described herein.
For example, programs or services may be organized into one or more media streams in the forms of audio, video, and/or other types of data. In addition, a name of the service may be allocated to the service (STEP 1302).
The data stream may be further allocated into packetized data or transport streams (TS). The TS may contain fixed length data packets that contain elements of the program or service being transmitted. Each of the data packets may have a packet identifier (PID). In STEP 1303, the transmitter may further allocate a channel identifier for identifying the transmission channel over which the program or service is transmitted. In addition, the PIDs associated with the data packets of the TS may be mapped to a corresponding channel identifier (STEP 1304). Mapping between a channel identifier and PID associated with the channel identifier may be performed for each IP stream or for each service to be transmitted.
Also, within a cell of a network, the availability of a program or service may be determined within the cell or neighboring cells (STEP 1305). If the program or service is determined to be available in the cell or neighboring cells, then the SDS may be constructed based on the allocated service, channel identifier and/or PID. Hence, when the program or service is available in the cell (or neighboring cell) of the network, an SDS is constructed at the transmitter containing mapping information for parameters of the program or service (STEP 1306). For example, a cell identifier may be allocated for identification of the cell in which the program or service is to be transmitted. Similarly, a network identifier may be allocated for identifying the network in which the program or service is to be transmitted. Also, hierarchical priority information of the transport stream may be included or allocated in the SDS. Each of the parameters may be associated with the channel identifier or channel corresponding with the service. Thus, an SDS may be constructed that contains parameters for indicating a particular program or service and corresponding parameters for indicating PIDs for data packets of the program or service, a channel identifier for indicating the transmission channel over which the program or service is to be transmitted, a cell identifier, network identifier, and/or hierarchical priority identifier for indicating the cell and network in which the program or service is available and the hierarchical priority of the transport stream (STEP 1306). Also in one example, the SDS may be transported in OSI layer 2 (data link layer). In another example, a computer-readable medium is provided for storing computer-executable code for performing the method described herein.
An input device of the receiver may receive the TS stream. For example,
The section parsing block 1402 decapsulates the payload of the TS packets and forms sections from these payloads. The section parsing block 1402 may also take into account the possible adaptation field and payload unit start indicator (PUSI).
The section decapsulation block 1403 extracts the real time parameters and the payload of the section. According to the table_id, the section decapsulation block 1403 may send the payload along with real time parameters into the MPE/MPE-FEC 1404 or SDS 1405 output. In addition, the real time parameters may be sent to the timeslicing control and status block 1406. The SDS output 1405 may include any parameter as set forth above. For example, the SDS may contain a parameter for indicating a packet identifier (PID) for indicating data packets corresponding to a desired service, a transmission channel over which a desired service data may be transmitted, any number of channel identifiers, or a parameter for indicating any number of IP addresses corresponding to the transmission and/or receipt of a desired service.
The SDS output 1405 may be further processed in the SDS section parsing block 1410. For example, the SDS section parsing block 1410 may select discover a channel identifier (channel_id) in the SDS output 1405 of the section decapsulation block 1403 for transmission of a desired service. Also, the SDS section parsing block 1401 may select an IP address associated with the discovered channel identifier or obtain a PID corresponding to the channel identifier. The SDS section parsing block 1401 may further create a filter for each IP address and/or PID associated with the channel identifier for receiving the desired service.
The timeslicing control and status block 1406 may analyze the real time parameters and may generate different status data based on the analysis of the real time parameters. It may also signal the MPE-FEC decoding block 1407 when the maximum burst duration has elapsed. This signaling may be used to start the decoding if the end of the burst is lost.
The MPE-FEC decoding block 1407 may write the section payloads into an MPE-FEC frame according to the address information (real time parameter) and may decode the whole frame row by row. Erasure and non-erasure decoders may be implemented. The erasure info can be obtained from the section CRC-32 or, if the erroneous TS packets are passed forward, from a transport error indicator located in the header of the TS packet. If MPE-FEC is not used, then this block may function as a time slicing buffer by storing one burst at a time.
The IP parsing and filtering block 1408 receives the MPE-FEC frame and detects within the corrected data areas in the frame IP datagrams that were originally erroneous but were corrected by the decoder. The IP parsing and filtering block 1408 may pass through the IP datagrams with the desired IP address.
In addition, the SDS data may be delivered in a similar way as that described for the IP datagrams carrying application data (i.e., with MPE-FEC encoding).
The SDS data may be stored. In one example, the SDS may be stored to an SDS database 1409 via the SDS section parsing block 1410 and the receiver may utilize the SDS at a subsequent time for the discovery of IP services from the TS. Ultimately IP datagrams are forwarded to the terminal IP stack.
Also, one or more SDSs may be used in handover from one cell to another within the same network or may be received and stored in handover between networks. For example, in cases where quick access method is used, one or more SDSs received and stored may be used in handover between networks. In one example, of SDS being used in handover purposes, the terminal may receive and store one or more SDSs from the network with which it is connected. In one example, the SDSs carry version numbers and the terminal may replace old versions of SDSs with new versions. The received and stored SDSs may contain data on services that are transmitted in one or more neighboring cells and the data can be used for smooth and fast handover. The terminal may also discover the addresses and port numbers of the IP streams from the data in OSI layers 4-7 by using the channel identifier. The channel identifier may further be used for retrieving the additional data or parameters from the SDSs such as, for example, a corresponding PID, the cell identifier, and/or the hierarchical priority of the transport stream carrying the desired service.
In addition, a computer-readable medium is provided containing computer-readable instructions for performing any of the methods herein. For example, a computer-readable medium may include computer-readable instructions for receiving a service on a channel in a network and receiving a service discovery section (SDS) corresponding to the service. The SDS may contain mapping information for mapping characteristics of the transmission. For example, the SDS may contain mapping information for mapping a channel with a data packet associated with the transmitted service.
The embodiments herein include any feature or combination of features disclosed herein either explicitly or any generalization thereof. While the invention has been described with respect to specific examples including presently preferred modes of carrying out the invention, those skilled in the art will appreciate that there are numerous variations and permutations of the above described systems and techniques.