FIELD OF THE INVENTION
[0001] The present invention relates generally to a method for decoding an audio video program received through a broadband network and more particularly to a method to synchronize the rendering of a content received through a broadband network with the rendering of a content received through a broadcast network.
BACKGROUND OF THE INVENTION
[0002] Over the past few years the traditional TV broadcasting landscape of terrestrial, satellite and cable networks has been extended with the roll out of TV and video services over broadband internet protocol (IP) networks. These networks are complementary, with broadcast distribution adapted for live events and mass distribution and broadband distribution adapted for on-demand, catch-up and personalized services. Such a complementarity offers the perspective of a hybrid model in which the strengths of each network are leveraged to provide enhanced TV and video services in an efficient manner. Broadcast events can be enriched with personalized content delivered over broadband, this content being streamed or pushed beforehand. Such hybrid services may require that components delivered over the separate networks are tightly synchronized. One typical example illustrating this need of fine synchronization is a user watching a broadcast program who selects a foreign audio sequence that is not broadcasted but available over broadband. One other example is to enrich the broadcast content by delivering over broadband another video component, this last being for instance, according to the broadcast component, a scalable video coding (SVC) enhancement layer, a multi-view video coding (MVC) component to propose the event in 3D or another view of the same scene.
[0003] The ways to deliver this additional component over broadband are multiple. A first solution based on on-demand delivery is to use hypertext transfer protocol (HTTP) streaming, as described in the document "HTTP Live Streaming, draft-pantos-http-live-streaming-01 - R. Pantos, Apple Inc June 8,2009" or to rely on the real-time transfer protocol (RTP) over UDP/IP as defined in the recommendation RFC 3550, "A Transport Protocol for Real-Time Applications". In this last case a communication protocol as Real Time Streaming Protocol (RTSP), described in the recommendation RFC 2326 is associated to RTP. Another solution based on multicast delivery is to use RTP protocol (RTP/UDP/IP) as defined in the document "A Transport Protocol for Real-Time Applications".
[0004] In the case of on demand delivery the request of the content can embed a timing information representing the presentation timestamp (PTS) of the first audiovisual sample to be delivered. It is not the case when the terminal subscribes to a multicast stream. The terminal cannot request it for a given timestamp and the behavior is analogous to the broadcast network one where the client suffers from the content delivery constraints.
[0005] Some characteristics for a network are its latency and its jitter. That means that it does not take the same duration to deliver content over one network and over another one.
[0006] The particularity of a broadcast network is that the content arrives to the receiver without it has to request anything, i.e. this last receives content permanently, and the delivery has a limited jitter that can be treated at the receiver with a limited size of buffer. The content delivery duration comprises the content delivery duration over the broadcast network from the server to the terminal and the duration the terminal needs to demultiplex, to buffer and to decode the content.
[0007] A broadband network can be seen as a personalized delivery network because it delivers content only on request of the receiver.
[0008] Fig.1 illustrates the delivery of a program content over a broadband network. A video server delivers the program content to a set-top box receiver (STB). The set-top box receives and decodes the content in order to display it on a display device. The delivery can be split in four main steps and corresponding durations:
- The duration the request needs to reach the server is T1.
- The duration the server takes to treat the request and to emit the program content is T2.
- The duration of the program content delivery from the server to the set-top box is T3.
- The duration the set-top box needs to buffer, decode and display the program content is T4.
[0009] The delivery in a hybrid broadcast broadband context does not necessarily imply that the time format is the same for all the components. In the MPEG-2 transport stream format (commonly used for broadcast networks), the timing information is based on a program clock reference (PCR) format whereas the network time protocol (NTP) is the format used for the timing of the stream encoded in the Real-Time Transport protocol (commonly used for broadband networks). Moreover, two components can have the same time format but the time references can differ (offset values). To compensate the mentioned timing issues between components, a mechanism must be implemented to transpose the timing format and/or reference in the ones of the other component. The timing format and/or reference of the component(s) delivered over broadband are lined up with the ones of the component(s) delivered over broadcast, this last being the "master" component. In the herein description, it is estimated that when timing formats and/or references are different this timing alignment operation is implicitly done to synchronize the components and when we evoke timing values they refer to timing values in the same transposed referential (same format and same initial value). This unique time referential is called system clock.
[0010] The component delivered over broadcast is called "main component" and the component delivered over broadband is called "personalized component".
[0011] The method to deliver a personalized component is described here. The personalized component is requested by the terminal and is sent over a bidirectional broadband network. The delivery can be either linear or non linear.
[0012] A linear delivery ensures that the terminal receives a component at a quite constant rate. It can be not exactly constant due to the jitter network. Two cases can be considered for the delivery of a personalized component to be synchronized with a broadcasted main component. Either the personalized component stream can be received, decoded and presented before the corresponding frames of the main component are presented or it arrives after and in this case all the frames of the personalized component are useless.
[0013] The typical case of a linear delivery mechanism is when the terminal subscribes to a multicast stream by transmitting a request to join a multicast group as defined in the Internet Group Management Protocol (IGMP protocol). With a multicast stream deliver, the terminal cannot receive the stream from a defined timestamp. In this case, and if the personalized component arrives later than the corresponding frames of the main component, it is not possible to synchronize their rendering.
[0014] The real-time transfer protocol (RTP) is also well known for the linear delivery. RTP protocol allows the request of a content from a given timestamp which is equal to the current reception time reference plus an offset. The terminal estimates the offset in order to request the content in advance so as to receive the content before it needs to be decoded and rendered. If the offset is incorrectly evaluated, the personalized component is received too late to be synchronized with the main component. Consequently the client must stop the reception of the current streaming and it must evaluate more accurately the offset and then transmits a new request based on the new estimated offset value.
[0015] A non-linear delivery is a mechanism in which the terminal receives the content in a non regular way. A part of the content is delivered at a higher rate than it is presented. In example, the frame rate reception is higher than the frame rate presentation. The idea of the non linear delivery is to offer the possibility to a terminal receiving a personalized component that is first late to be presented to catch up the main component to be able to present it at a given moment.
[0016] A Real-Time Streaming Protocol (RTSP) server can also deliver content in a non-linear way. Depending on the request parameters, it can, for instance, deliver the first frames or group of pictures of a program content in a burst and then deliver the content at a cruising rate. In case of using RTSP, the terminal requests for a given presentation timestamp.
[0017] The Hyper Text Transfer Protocol (HTTP) streaming is another type of non linear delivery. The personalized component is split in many successive parts called chunks. A chunk is either a file or a part of a file including a piece of information describing it. The piece of information may comprise for example a time slot, a file name, a byte range, a bit-rate or any other information that may be useful for a terminal for decoding and rendering the chunk's content. The encoding of chunks containing video is starting with a key-frame which can be decoded without reference to a previous frame. The key-frame is for example an I-picture (or I-frame) as defined in MPEG compression standard (ISO/IEC13818). A chunk contains one or several full groups of pictures (GOPs) as defined in MPEG compression. When receiving content with the use of HTTP streaming, the terminal requests for a chunk to the server. The server then transmits the chunk with best effort. The content is transmitted into successive bursts.
[0018] The non-linear delivery offers the possibility to a terminal to synchronize the rendering of a personalized component to the rendering of a main component by sending successive requests in order to get some pieces of the personalized content, starting with a key-frame, that are synchronized with the main component in term of system clock, decoding time reference and presentation time reference.
[0019] A disadvantage of such a synchronization is that when a terminal requests for a personalized component to be synchronized with a main component and receives a content, starting with a key-frame, for which the decoding and presentation time reference indicate that the reception is too late to be synchronized with the main component, the discarded content may correspond to an important time range (up to many seconds) in term of rendering. The terminal has then to send one or more new requests and to receive new personalized stream content until the decoding and presentation time reference indicates that the synchronization is possible in the terminal.
[0020] EP 2178306 discloses an image processing apparatus includes a first receiving unit for receiving first image data and auxiliary information, a second receiving unit for receiving second image data, an image processing unit for generating an image, and a controller for controlling the second receiving unit to receive the second image data based on the auxiliary information and controlling the image processing unit to generate an improved image based on the first image data and the second image data.
[0021] US 2009/096921 discloses an image processing apparatus with digital source processing means, analog source processing means and means for generating a clock independently of a clock locked with each input source of the digital and analog sources, and generating a clock in synchronism with a clock selected out of the input sources. The digital and analog source processing means have individual, independent clock recovery functions.
[0022] David K. Fibush describes, in Timing and Synchronization Using MPEG-2 Transport Streams, the formation of the MPEG-2 transport stream with its timing elements and their use at the receiver.
[0023] JP 2004/088366 discloses a broadcast receiver with a first time counter and a second time counter receives a Transport Stream including a first and a second time count reference values, a first content, and a first reproducing count value indicating a reproducing time of the first content by the count value of a first time counter. The broadcast receiver obtains a second content and a second reproducing count value indicating a reproducing time of the second content by the count value of the second time counter. When the receiver receives the first and the second time count reference values, it reconfigures the count value of the first and the second counters to these reference values. The receiver reproduces the first and the second contents when the count value of the first and the second counters reaches to the first and the second reproducing count values, respectively.
[0024] JP 2004/297628 discloses a receiving apparatus that receives, decodes and displays a first video stream. A content providing apparatus stores second content related to the first contents and transmits a second stream of the second contents to the receiving apparatus in response to a request, typically when reception conditions of the first video stream are bad. The receiving apparatus then decodes the first stream or the second stream and displays it on the display device.
SUMMARY OF THE INVENTION
[0025] The purpose of the invention is to overcome the disadvantage of the prior art. More specifically, the invention provides an optimization of the delay required to synchronize the rendering of the personalized component with the rendering of the main component.
[0026] In the context of a hybrid broadcast and broadband delivery of components requiring a tight synchronization, the invention proposes a method that enhances the user experience in reducing significantly the latency of access to the on-demand component (personalized component). The use of the method of the invention consequently minimizes the impact of a bad estimation of the time reference parameter from which the on-demand (personalized) component must be transmitted to the terminal in order to be synchronized with the main component. In this method, the frames of the component delivered over broadband are treated even if they arrive after the moment when the broadcasted content frames to be rendered at the same time are presented. The method is based on the fact that the delivery frame rate of the broadband component is higher than the presentation frame rate, so that, at a given moment, a part of the broadband component, for which the system clock reference is lined-up with the system clock reference of the broadcast component, can be presented at the same time that the corresponding part of the broadcast component.
[0027] The method of the invention disregards the usual behavior of a video decoder where frames are decoded at a rhythm given by the decoding timestamps and where a decoded frame is systematically rendered. The method decodes as quickly as possible the first frames of a group of pictures of the broadband component that arrives late but without rendering them. Consequently these frames will be simply dropped for the rendering. Nevertheless, because the decoding of a frame which is not a key-frame needs to be decoded in reference with one or more previous or next frames, the frames that are decoded but not rendered are used for the decoding of the other frames of the group of pictures that are on time to be rendered.
[0028] The present disclosure is directed to a method implemented in a decoder comprising a broadband input interface and a frame decoder, the method including decoding, using said frame decoder, a broadband program content received via said broadband input interface from a broadband network, the rendering of said broadband program content to be synchronized with the rendering of a broadcast program content received through a broadcast network, said broadcast program content decoded and rendered with respect to a program clock reference, said broadband program content including successive groups of frames, each frame of said groups being associated with a presentation time information, each group of said groups including at least a key-frame associated with a decoding time information, wherein said broadband input interface is adapted to receive said broadband program content with a higher delivery rate than a presentation rate of said broadband program content, wherein decoding said broadband program content includes decoding frames of a group of said groups of frames when said decoding time information of the latest received key frame of said group is inferior or equal to a first current value of said program clock reference, the method further including rendering a decoded frame of said group when said frame presentation time information of the decoded frame is superior or equal to a second current value of said program clock reference
[0029] The present disclosure is further directed to a decoder including a broadband input interface adapted to receive a broadband program content through a broadband network, the rendering of said broadband program content to be synchronized with the rendering of a broadcast program content received through a broadcast network, said broadcast program content decoded and rendered with respect to a program clock reference, said broadband program content including successive groups of frames, each frame of said groups being associated with a presentation time information, each group including at least a key-frame associated with a decoding time information, a frame decoder adapted to decode said broadband program content, wherein the broadband input interface is adapted to receive said broadband program content with a higher delivery rate than a presentation rate of said broadband program content and the frame decoder is adapted to decode frames of a group of said groups of frames when said decoding time information of the latest received key frame of said group is inferior or equal to a first current value of said program clock reference, wherein the apparatus further includes rendering means adapted to render a decoded frame of said group when said frame presentation time information is superior or equal to a second current value of said program clock reference.
BRIEF DESCRIPTION OF THE DRAWINGS
[0030] The invention will be better understood and illustrated by means of the following embodiment and execution examples, in no way limitative, with reference to the appended figures on which:
- Figure 1 illustrates the delivery over a broadband network;
- Figure 2 is a block diagram of a system compliant with a first embodiment of the invention;
- Figure 3 is a block diagram of a receiver / decoder compliant with the first embodiment of the invention;
- Figure 4 illustrates a first case of accelerated decoding according to the first embodiment of the invention;
- Figure 5 illustrates a second case of accelerated decoding according to the first embodiment of the invention;
- Figure 6 is a diagram describing the method of decoding according to the first embodiment of the invention;
- Figure 7 is a block diagram of a receiver / decoder according to a second embodiment of the invention.
[0031] In Figure 2, Figure 3 and Figure 7, the represented blocks are purely functional entities, which do not necessarily correspond to physically separate entities. Namely, they could be developed in the form of hardware or software, or be implemented in one or several integrated circuits.
DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS
[0032] Fig. 2 illustrates a network architecture according to a first embodiment of the invention. The broadcast timing is considered as a reference and the broadband network is adapted for the synchronization. A video source 1 delivers a non-encoded main component program to an encoder 2. The encoder 2 encodes the main component and transmits it to an emitter 3. The broadcasting of the main component by the emitter 3 could be done simultaneously with the encoding by the encoder 2 but also later. The main component is broadcasted over the air to a receiver/decoder 6. The encoder 2 also provides an encoded personalized component program to an on-demand server 4. The personalized component is synchronized with the main component. The encoder 2 can provide the personalized component during the encoding, but the personalized component can also be already available on the on-demand server 4. It can be available in a database of personalized component related to the main component to be broadcasted. The time reference information such as the decoding time stamps, the presentation time stamps and the program clock reference of both components are synchronized by the encoder 2. The way timing formats and/or references are lined up by the encoder 2 is out of scope.
[0033] The receiver / decoder 6 requests the personalized component to the on-demand server 4 through a broadband network 5 upon initial request from the user. The personalized component is then delivered by the on-demand server 4 to the receiver / decoder 6 through the broadband network. The receiver / decoder 6 processes an accelerated decoding phase of the personalized component in order to synchronize its rendering with the rendering of the main component broadcasted by the emitter 3. Both components are rendered in a synchronized way and outputted by the receiver / decoder 6 in order to be displayed on the display device 7.
[0034] According to the embodiment of the invention, the synchronization of the personalized component and the main component is defined as what is commonly used by the one skilled in the art. In other words, if the main component and personalized component are both video contents, then the synchronization corresponds, for example, to the fact that the rendering of the personalized component processes a GOP comprising a presentation time reference (to define the presentation time) close to a presentation time reference comprised in a GOP processed to render the main component. Two video components can be, for example, considered as synchronized in term of rendering if two GOPs belonging respectively to the first and the second video contents are both rendered, at least partially, in a time range of a couple of seconds or less. Regarding the synchronization of an audio and a video component, the synchronization is based on the well-known "lip sync" synchronization where an audio stream comprising vocals should be synchronized to the movements of the lips of the person who is talking (or singing). The target of the "lip sync" is to have a matching of lip movements with sung or spoken vocals.
[0035] Fig.3 illustrates a receiver / decoder 6 according to the first embodiment of the invention. The decoder has two input interfaces. A first input interface 601 is connected to receive the broadcasted main component. A second input interface 602 is connected to receive the personalized component delivered through the broadband network. Both components are transmitted as successive packets indentified by program identifiers and containing some successive groups of pictures (GOP). The broadcast input interface 601 and the broadband input interface 602 achieve the demultiplexing of their respective received contents and store the data corresponding to each component in a dedicated buffer area of the reception buffer 603. Each GOP starts by a first frame so-called key-frame which is associated to a decoding time stamp (DTS) and a presentation time stamp (PTS). A first frame decoder 607 processes a normal decoding by reading the packets of the main components in the reception buffer 603. When a key frame received in a packet from the broadcast input interface 601 has a decoding time stamp that is equal to the current program clock reference (PCR), the first frame decoder 607 operates the decoding of the frame and stores the corresponding decoded frame in the frame buffer 604. The first frame decoder 607 also reads the frames in the frame buffers 604 and transfers a key-frame in the display buffer 605 when the presentation time stamp of the key-frame is equal to the PCR value. The display output interface 606 reads the content of the display buffer and outputs the frames to a connected display device (not represented). The process of decoding and transferring in the display buffer is the same for the successive frames of the current GOP coming from the broadcast input interface until the next key-frame is read in the reception buffer 603 by the first frame decoder 607. The first frame decoder 607 achieves the decoding and the display of the broadcasted main component by starting decoding a group of pictures when the DTS of the key-frame of the GOP is equal to the PCR value and by starting presenting the decoded frames in the display buffer 605 when the PTS of the key-frame is equal to the PCR value.
[0036] The second frame decoder 608 operates a decoding of the personalized component received through the broadband input interface 602 by decoding all the corresponding frames read in the reception buffer 603 until the DTS of a key-frame is greater than or equal to the current PCR value. This is the case for the GOPs that arrive late from the broadband input interface 602 to be rendered in a synchronized way with the corresponding broadcasted content received from the broadcast input interface 601. The second frame decoder 608 decodes the frames from the reception buffer 603 even if the associated DTS is smaller than the current PCR value. The decoded frames are stored in the frames buffer 604. The second frame decoder 608 also reads the decoded frames corresponding to the personalized component in the frames buffer 604 and transfers the decoder frames to the display buffer 605 when the corresponding PTS is equal to the current PCR value. If the associated PTS of the frame of the personalized component is smaller than the current PTS, the frame is not copied in the display buffer. The second frame decoder 608 operates an accelerated decoding phase when the DTS information are smaller than the PCR value and a normal decoding once the DTS values are equal or greater than the PCR value.
[0037] Fig. 4 illustrates an accelerated decoding process according to a first embodiment of the invention. The figure shows a case where the first frames of the personalized component received through the broadband network are too late to be decoded and synchronized with the main component at a normal decoding rate. The synchronized rendering of both components can therefore be achieved by using an accelerated decoding phase which does not consider the DTS values. Such a case depends on the network latency. The figure shows that the filling of the buffer is quicker for the broadband content (personalized component) in a first step since the broadband network can achieve transmission at a higher rate than the decoding and presentation rate (burst mode), before being transmitted at a cruising rate in a second step. The broadband buffer filing starts from BTS1 time, when the first data of the personalized content are received. When the buffer contains enough data (considering for example the bit-rate of transmission as defined in MPEG compression standard), the accelerated decoding phase starts at DTS1 time. During the accelerated decoding, the frames are decoded even if their corresponding DTS information is smaller than the PCR value. The decoding rate is then higher than in normal mode when the decoder waits for a PCR value equal to the DTS to start the decoding of a frame. In the represented case, because the broadband content is not too late to be rendered in a synchronized way with the broadcast content (main component), the accelerated decoding allows to have some decoded pictures from the broadband content with PTS values greater than or equal to the PCR value. No decoded frame is discarded for the rendering. When the accelerated decoding phase allows to store some pictures in the reception buffer that have a DTS information equal or greater than the PCR value, the accelerated decoding phase finishes and the decoding continues at a normal rate.
[0038] Fig. 5 illustrates a case of accelerated decoding according to a first embodiment of the invention with a broadband network latency bigger than the case showed in Fig. 4. The latency of the broadband network is so big that the incoming frames are too late to be decoded and too late to be presented at the beginning of the decoding. The first frames to be decoded from the broadband network are stored in the reception buffer from the time BTS1. The filing rate of the buffer is quicker than for the content received from the broadcast network because of the burst capacity of the broadband network. When there are enough data in the reception buffer (depending, for example, on the bit-rate or according to a compression standard), at DTS1 time, the accelerated decoding phase starts but the decoding frames are too late to be rendered in a synchronized way with the broadcast content. The decoded frames are discarded for the presentation and only the decoded frames from the broadcast content are rendered. During the accelerated decoding, at DTSn time, the decoded frame of the broadcast content has an associated PTS that is in line with the PCR value. So the rendering of the broadband content and broadcast content can be synchronized. Finally, at DTSi time, the incoming frames from the broadband network have an associated DTS value to be decoded in time according to a normal decoding process. The accelerated decoding phase finishes and the decoding continues in a normal mode.
[0039] Fig. 6 is a flowchart illustrating the method of decoding by the second frame decoder, comprising an accelerated decoding phase. The second frame decoder is in charge of decoding and rendering the personalized component received from the broadband network. It is to be considered that at step S1 which is the beginning of the decoding process for the second frame decoder, the first frame received in the reception buffer is a key-frame, associated with decoding time stamp and presentation time stamp.
[0040] At step S2, the second frame decoder reads a frame and determines at step S3 if it is a key-frame or not. If it is not a key-frame, the decoding process continues on the next frame without any consideration of the decoding time stamp value associated with the previous key-frame. So the process goes through step S6. This case corresponds to a picture in a GOP which is not a key-frame. At step S4, the PTS and DTS information associated with the key-frame are read by the second frame decoder. At step S5, the second frame decoder compares the DTS value with the PCR value. If the DTS is smaller than the current PCR value, the frame is read too late to be decoded in time. So the frame is decoded immediately at step S6 in order to be available in the decoded frames buffer for the decoding of the next frames. At step S5, if the frame is not too late, when DTS is greater than the PCR value, the process loops on Step S5 until the PCR value is greater or equal to the DTS. This is the case in a normal decoding mode (not accelerated). At step S7, the second frame decoder compares the PTS value to the PCR value in order to define whether the frame must be displayed or discarded. If PTS is smaller than the PCR value, then the decoded frame is too late to be rendered in a synchronized way with the main component. The process loops to step S2. If the PTS is greater than or equal to the PCR value, then the frame is not too late and must be rendered in time with the PCR. The process loops on step S8 until the PCR is greater than or equal to the PTS. When this condition is met, at step S9, the second frame decoder copies the frame from the decoded frames buffer to the display buffer for rendering. The process then loops on Step S2.
[0041] The method for decoding used by the second frame decoder is then a method for decoding a second program content received through a broadband network, the rendering of the second program content being to be synchronized with the rendering of a first program content, the first program content being received through a broadcast network. The method comprising the steps of decoding the first program content with respect to a program clock reference, decoding the second program content comprising successive second frames associated with decoding time information and presentation time information with respect to the program clock reference. The method is characterized in that it further comprises the steps of decoding the second frames when the decoding time information is inferior to the program clock reference (S4, S5, S6) and rendering the decoded second frames when the presentation time information is such that the rendering of the second frames can be synchronized with the rendering of the first program content (S8, S9).
[0042] According to a variant of the embodiment, the decoding and rendering of the main component and the personalized component are achieved in two separated apparatus. Each of the two apparatus comprises means for receiving, decoding and rendering the associated components. The apparatus that decodes the personalized component uses a nonconventional decoding that allows the decoding of a program content received from a broadband network and comprising successive frames associated with decoding time information and presentation time information with respect to a program clock reference. The decoding means of the apparatus that decodes the personalized component are adapted to decode the frames when the decoding time information is inferior to the program clock reference and comprise means for rendering the decoded frames when the corresponding presentation time information is superior or equal to the program clock reference.
[0043] In this case, the two apparatus comprise means to exchange information about the decoding and rendering of the current program being received and rendered. In particular, the apparatus that decodes the personalized component have to know what part of the main component is currently decoded and rendered in order to select / request the corresponding piece of the personalized component from a remote server. The information transmitted by the apparatus that receives and decodes the main component to the apparatus that receives and decodes the personalized component is, for example, a time index in the program, a program clock reference value used for the rendering, or any other value that allows the identification of the current part of the main component currently decoded and rendered.
[0044] Such an apparatus may comprise a filtering module adapted to parse the decoding time information and presentation time information for filtering the frames according to a comparison result between the decoding time information and the presentation information compared to a program clock reference.
[0045] The apparatus used for the decoding of the personalized component according to this variant of the embodiment is for example an internet tablet connected to a home gateway allowing the user to see a view of a multi-view program, the main view being broadcasted and rendered on another apparatus such as, for example, a terrestrial digital TV set.
[0046] Fig. 7 illustrates a receiver / decoder 6 according to a second embodiment of the invention. The personalized component (from broadband network) is composed of successive chunks containing many groups of pictures, the filtering module 609 filters the chunk content received at the broadband input interface 602 by reading some time reference information inside the chunk and / or in the group of pictures. The filter module 609 compares the time information within the received content with the program time references used by the receiver / decoder 6 for decoding and rendering. If the filter module detects that a chunk or a GOP is too late to synchronize the rendering of its content with the rendering of the received broadcast content, the GOP or chunk is not transmitted to the reception buffer. This avoids the second frame decoder 608 to decode a content present in the reception buffer 603 that can't be synchronized with the broadcast content. This filtering makes the rendering of both components possible earlier.
[0047] According to a third embodiment of the invention, the personalized component received over the bidirectional broadband network is an audio content comprising successive blocks of audio samples. Each of the blocks of audio samples comprising a time reference information for its decoding and rendering. The filtering module of the receiver / decoder filters parses the time information and transfers the blocks to the reception buffer only if the time reference information indicates that the samples can be decoded in time to be rendered in a synchronized way with the main component.
[0048] Obviously, the invention is not limited to main component and personalized component comprising video or audio carried as successive groups of pictures or chunks. The invention concerns all synchronized program contents comprising time reference information required for their decoding and presentation in a receiver that can be compared with the program clock reference (system clock).
1. Method implemented in a decoder comprising a broadband input interface and a frame decoder;
comprising:
- decoding, using said frame decoder, a broadband program content received via said broadband input interface from a broadband network, the rendering of said broadband program content to be synchronized with the rendering of a broadcast program content received through a broadcast network, said broadcast program content decoded and rendered with respect to a program clock reference, said broadband program content comprising successive groups of frames, each frame of said groups being associated with a presentation time information, each group of said groups including at least a key-frame associated with a decoding time information,
said method being
characterized in that said broadband input interface is adapted to receive said broadband program content with a higher delivery rate than a presentation rate of said broadband program content and
in that decoding said broadband program content comprises:
- decoding frames of a group of said groups of frames when said decoding time information of the latest received key frame of said group is inferior or equal to a first current value of said program clock reference (S4, S5, S6); and
in that said method comprises:
- rendering a decoded frame of said group when said frame presentation time information of the decoded frame is superior or equal to a second current value of said program clock reference (S8,S9).
2. Method according to claim 1 characterized in that said decoding time information comprises a decoding time stamp.
3. Method according to claim 2,
characterized in that decoding said latest received key frame of said group of frames comprises:
- reading a decoding time stamp associated with said latest received key-frame of said group(S4) and;
- decoding said latest received key frame of said group according to a comparison result between said decoding time stamp and said current value of said program clock reference (S5, S6).
4. Method according to any of the preceding claims, characterized in that said presentation time information comprises a presentation time stamp.
5. Method according to claim 4,
characterized in that rendering a decoded frame of said group comprises:
- reading a presentation time stamp associated with said decoded frame (S4) and;
- rendering said decoded frame according to a comparison result between said frame presentation time stamp and said current value of said program clock reference (S7, S8, S9).
6. Method according to any of the preceding claims, characterized in that said broadcast program content is received from a broadcast network by a broadcast decoder.
7. A decoder (6) comprising
- a broadband input interface (602) adapted to receive a broadband program content through a broadband network (5), the rendering of said broadband program content to be synchronized with the rendering of a broadcast program content received through a broadcast network, said broadcast program content decoded and rendered with respect to a program clock reference, said broadband program content comprising successive groups of frames, each frame of said groups being associated with a presentation time information, each group including at least a key-frame associated with a decoding time information,
- a frame decoder (608) adapted to decode said broadband program content;
said decoder (6) being
characterized in that:
- said broadband input interface (602) is adapted to receive said broadband program content with a higher delivery rate than a presentation rate of said broadband program content;
- said frame decoder (608) is adapted to decode frames of a group of said groups of frames when said decoding time information of the latest received key frame of said group is inferior or equal to a first current value of said program clock reference; and
- in that said decoder (6) comprises rendering means adapted to render a decoded frame of said group when said frame presentation time information is superior or equal to a second current value of said program clock reference.
8. A decoder, according to claim 7, characterized in that it comprises a filtering module (609) adapted to parse said decoding time information and said presentation time information for filtering said frames according to a comparison result between said decoding time information and said presentation information compared to a current value of said program clock reference.
9. A decoder according to claim 7 or 8
characterized in that said decoder comprises:
- a broadcast input interface (601) adapted to receive said broadcast program content from said broadcast network;
- another frame decoder (607) adapted to decode said broadcast program content with respect to said program clock reference.
10. A decoder according any of claims 7 to 9, characterized in that said frame decoder (608) is adapted to operate with an accelerated rate until decoding time information of one of said key frames is greater than said current value of said program clock reference and to operate with a normal rate once decoding time information of one of said key frames is equal or greater than said current value of said program clock reference.
1. Verfahren, das in einem Decodierer implementiert wird, der eine Breitbandeingangsschnittstelle und einen Einzelbilddecodierer umfasst;
wobei das Verfahren umfasst:
- Decodieren eines über die Breitbandeingangsschnittstelle von einem Breitbandnetz empfangenen Breitbandprogramminhalts unter Verwendung des Einzelbilddecodierers, wobei das Rendern des Breitbandprogramminhalts mit dem Rendern eines über ein Rundfunknetz empfangenen Rundfunkprogramminhalts zu synchronisieren ist, wobei der Rundfunkprogramminhalt in Bezug auf eine Programmtaktreferenz decodiert und gerendert wird, wobei der Breitbandprogramminhalt aufeinanderfolgende Gruppen von Einzelbildern umfasst, wobei jedem Einzelbild der Gruppe Darstellungszeitinformationen zugeordnet sind, wobei jede Gruppe der Gruppen mindestens ein Schlüsseleinzelbild enthält, dem Decodierungszeitinformationen zugeordnet sind,
wobei das Verfahren
dadurch gekennzeichnet ist, dass die Breitbandeingangsschnittstelle dafür ausgelegt ist, den Breitbandprogramminhalt mit einer höheren Bereitstellungsrate als einer Darstellungsrate des Breitbandprogramminhalts zu empfangen, und wobei das Decodieren des Breitbandprogramminhalts umfasst:
- Decodieren von Einzelbildern einer Gruppe der Gruppen von Einzelbildern, wenn die Decodierungszeitinformationen des letzten empfangenen Schlüsseleinzelbilds der Gruppe kleiner oder gleich einem ersten gegenwärtigen Wert der Programmtaktreferenz sind (S4, S5, S6); und wobei das Verfahren umfasst:
- Rendern eines decodierten Einzelbilds der Gruppe, wenn die Einzelbilddarstellungs-Zeitinformationen des decodierten Einzelbilds größer oder gleich einem zweiten gegenwärtigen Wert der Programmtaktreferenz sind (S8, S9) .
2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass die Decodierungszeitinformationen einen Decodierungszeitstempel umfassen.
3. Verfahren nach Anspruch 2,
dadurch gekennzeichnet, dass das Decodieren des letzten empfangenen Schlüsseleinzelbilds der Gruppe von Einzelbildern umfasst:
- Lesen eines Decodierungszeitstempels, der dem letzten empfangenen Schlüsseleinzelbild der Gruppe (S4) zugeordnet ist; und
- Decodieren des letzten empfangenen Schlüsseleinzelbilds der Gruppe in Übereinstimmung mit einem Vergleichsergebnis zwischen dem Decodierungszeitstempel und dem gegenwärtigen Wert der Programmtaktreferenz (S5, S6).
4. Verfahren nach einem der vorhergehenden Ansprüche,
dadurch gekennzeichnet, dass die Darstellungszeitinformationen einen Darstellungszeitstempel umfassen.
5. Verfahren nach Anspruch 4,
dadurch gekennzeichnet, dass das Rendern eines decodierten Einzelbilds der Gruppe umfasst:
- Lesen eines Darstellungszeitstempels, der dem decodierten Einzelbild (S4) zugeordnet ist; und
- Rendern des decodierten Einzelbilds in Übereinstimmung mit einem Vergleichsergebnis zwischen dem Einzelbilddarstellungs-Zeitstempel und dem gegenwärtigen Wert der Programmtaktreferenz (S7, S8, S9).
6. Verfahren nach einem der vorhergehenden Ansprüche,
dadurch gekennzeichnet, dass der Rundfunkprogramminhalt durch einen Rundfunkdecodierer von einem Rundfunknetz empfangen wird.
7. Decodierer (6), der umfasst:
- eine Breitbandeingangsschnittstelle (602), die dafür ausgelegt ist, über ein Breitbandnetz (5) einen Breitbandprogramminhalt zu empfangen, wobei das Rendern des Breitbandprogramminhalts mit dem Rendern eines über ein Rundfunknetz empfangenen Rundfunkprogramminhalts zu synchronisieren ist, wobei der Rundfunkprogramminhalt in Bezug auf eine Programmtaktreferenz decodiert und gerendert wird, wobei der Breitbandprogramminhalt aufeinanderfolgende Gruppen von Einzelbildern umfasst, wobei jedem Einzelbild der Gruppen Darstellungszeitinformationen zugeordnet sind, wobei jede Gruppe mindestens ein Schlüsseleinzelbild enthält, dem Decodierungszeitinformationen zugeordnet sind,
- einen Einzelbilddecodierer (608), der dafür ausgelegt ist, den Breitbandprogramminhalt zu decodieren; wobei der Decodierer (6) dadurch gekennzeichnet ist, dass:
- die Breitbandeingangsschnittstelle (602) dafür ausgelegt ist, den Breitbandprogramminhalt mit einer höheren Bereitstellungsrate als einer Darstellungsrate des Breitbandprogramminhalts zu empfangen;
- der Einzelbilddecodierer (608) dafür ausgelegt ist, Einzelbilder einer Gruppe der Gruppen von Einzelbildern zu decodieren, wenn die Decodierungszeitinformationen des letzten empfangenen Schlüsseleinzelbilds der Gruppe kleiner oder gleich einem ersten gegenwärtigen Wert der Programmtaktreferenz sind; und
- der Decodierer (6) Rendering-Mittel umfasst, die dafür ausgelegt sind, ein decodiertes Einzelbild der Gruppe zu rendern, wenn die Einzelbilddarstellungs-Zeitinformationen größer oder gleich einem zweiten gegenwärtigen Wert der Programmtaktreferenz sind.
8. Decodierer nach Anspruch 7, dadurch gekennzeichnet, dass er ein Filterungsmodul (609) umfasst, das dafür ausgelegt ist, die Decodierungszeitinformationen und die Darstellungszeitinformationen zu parsen, um die Einzelbilder in Übereinstimmung mit einem Vergleichsergebnis zwischen den Decodierungszeitinformationen und den Darstellungsinformationen, die mit einem gegenwärtigen Wert der Programmtaktreferenz verglichen werden, zu filtern.
9. Decodierer nach Anspruch 7 oder 8,
dadurch gekennzeichnet, dass der Decodierer umfasst:
- eine Rundfunkeingangsschnittstelle (601), die dafür ausgelegt ist, den Rundfunkprogramminhalt von dem Rundfunknetz zu empfangen;
- einen weiteren Einzelbilddecodierer (607), der dafür ausgelegt ist, den Rundfunkprogramminhalt in Bezug auf die Programmtaktreferenz zu decodieren.
10. Decodierer nach einem der Ansprüche 7 bis 9, dadurch gekennzeichnet, dass der Einzelbilddecodierer (608) dafür ausgelegt ist, mit einer beschleunigten Rate zu arbeiten, bis die Decodierungszeitinformationen eines der Schlüsseleinzelbilder größer als der gegenwärtige Wert der Programmtaktreferenz sind, und mit einer normalen Rate zu arbeiten, wenn die Decodierungszeitinformationen eines der Schlüsseleinzelbilder gleich oder größer als der gegenwärtige Wert der Programmtaktreferenz sind.
1. Procédé mis en Ĺ“uvre dans un décodeur comprenant une interface d'entrée à large bande et un décodeur de trames ;
comprenant :
- le décodage, à l'aide dudit décodeur de trames, d'un contenu de programme à large bande reçu via ladite interface d'entrée à large bande à partir d'un réseau à large bande, le rendu dudit contenu de programme à large bande devant être synchronisé avec le rendu d'un contenu de programme de diffusion reçu via un réseau de diffusion, ledit contenu de programme de diffusion étant décodé et rendu par rapport à une référence d'horloge de programme, ledit contenu de programme à large bande comprenant des groupes successifs de trames, chaque trame desdits groupes étant associée à une information temporelle de présentation, chaque groupe desdits groupes comprenant au moins une trame clé associée à une information temporelle de décodage,
ledit procédé étant
caractérisé en ce que ladite interface d'entrée à large bande est adaptée pour recevoir ledit contenu de programme à large bande à un débit supérieur à un débit de présentation dudit contenu de programme à large bande et
en ce que le décodage dudit contenu de programme à large bande comprend :
- le décodage de trames d'un groupe desdits groupes de trames lorsque ladite information temporelle de décodage de la dernière trame clé reçue dudit groupe est inférieure ou égale à une première valeur courante de ladite référence d'horloge de programme (S4, S5, S6) ; et en ce que ledit procédé comprend :
- le rendu d'une trame décodée dudit groupe lorsque ladite information temporelle de présentation de trame de la trame décodée est supérieure ou égale à une deuxième valeur courante de ladite référence d'horloge de programme (88, 89).
2. Procédé selon la revendication 1, caractérisé en ce que ladite information temporelle de décodage comprend un horodatage de décodage.
3. Procédé selon la revendication 2,
caractérisé en ce que le décodage de ladite dernière trame clé reçue dudit groupe de trames comprend :
- la lecture d'un horodatage de décodage associé à ladite dernière trame clé reçue dudit groupe (S4) et ;
- le décodage de ladite dernière trame clé reçue dudit groupe en fonction d'un résultat de comparaison dudit horodatage de décodage et de ladite valeur courante de ladite référence d'horloge de programme (S5, S6).
4. Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce que ladite information temporelle de présentation comprend un horodatage de présentation.
5. Procédé selon la revendication 4,
caractérisé en ce que le rendu d'une trame décodée dudit groupe comprend :
- la lecture d'un horodatage de présentation associé à ladite trame décodée (S4) et ;
- le rendu de ladite trame décodée en fonction d'un résultat de comparaison dudit horodatage de présentation de trame et de ladite valeur courante de ladite référence d'horloge de programme (S7, S8, S9).
6. Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce que ledit contenu de programme de diffusion est reçu à partir d'un réseau de diffusion par un décodeur de diffusion.
7. Décodeur (6) comprenant
- une interface d'entrée à large bande (602) adaptée pour recevoir un contenu de programme à large bande via un réseau à large bande (5), le rendu dudit contenu de programme à large bande devant être synchronisé avec le rendu d'un contenu de programme de diffusion reçu via un réseau de diffusion, ledit contenu de programme de diffusion étant décodé et rendu par rapport à une référence d'horloge de programme, ledit contenu de programme à large bande comprenant des groupes successifs de trames, chaque trame desdits groupes étant associée à une information temporelle de présentation, chaque groupe comprenant au moins une trame clé associée à une information temporelle de décodage,
- un décodeur de trames (608) adapté pour décoder ledit contenu de programme à large bande ;
ledit décodeur (6) étant
caractérisé en ce que :
- ladite interface d'entrée à large bande (602) est adaptée pour recevoir ledit contenu de programme à large bande à un débit supérieur à un débit de présentation dudit contenu de programme à large bande ;
- ledit décodeur de trames (608) est adapté pour décoder des trames d'un groupe desdits groupes de trames lorsque ladite information temporelle de décodage de la dernière trame clé reçue dudit groupe est inférieure ou égale à une première valeur courante de ladite référence d'horloge de programme ; et
- en ce que ledit décodeur (6) comprend un moyen de rendu adapté pour le rendu d'une trame décodée dudit groupe lorsque ladite information temporelle de présentation de trame est supérieure ou égale à une deuxième valeur courante de ladite référence d'horloge de programme.
8. Décodeur selon la revendication 7, caractérisé en ce qu'il comprend un module de filtrage (609) adapté pour analyser ladite information temporelle de décodage et ladite information temporelle de présentation pour filtrer lesdites trames en fonction d'un résultat de comparaison de ladite information temporelle de décodage et ladite information de présentation à une valeur courante de ladite référence d'horloge de programme.
9. Décodeur selon la revendication 7 ou 8,
caractérisé en ce que ledit décodeur comprend :
- une interface d'entrée de diffusion (601) adaptée pour recevoir ledit contenu de programme de diffusion à partir dudit réseau de diffusion ;
- un autre décodeur de trames (607) adapté pour décoder ledit contenu de programme de diffusion par rapport à ladite référence d'horloge de programme.
10. Décodeur selon l'une quelconque des revendications 7 à 9, caractérisé en ce que ledit décodeur de trames (608) est adapté pour fonctionner à vitesse accélérée jusqu'à ce que l'information temporelle de décodage de l'une desdites trames clés soit supérieure à ladite valeur courante de ladite référence d'horloge de programme et pour fonctionner à vitesse normale une fois que l'information temporelle de décodage de l'une desdites trames clés est supérieure ou égale à ladite valeur courante de ladite référence d'horloge de programme.