EP1842368B1 - Video-player für einen digitalen video-server - Google Patents

Video-player für einen digitalen video-server Download PDF

Info

Publication number
EP1842368B1
EP1842368B1 EP05712474.5A EP05712474A EP1842368B1 EP 1842368 B1 EP1842368 B1 EP 1842368B1 EP 05712474 A EP05712474 A EP 05712474A EP 1842368 B1 EP1842368 B1 EP 1842368B1
Authority
EP
European Patent Office
Prior art keywords
pictures
picture
video
module
cache
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.)
Expired - Fee Related
Application number
EP05712474.5A
Other languages
English (en)
French (fr)
Other versions
EP1842368A1 (de
Inventor
Philip James Witham
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.)
THOMSON LICENSING
Original Assignee
Thomson Licensing SAS
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 Thomson Licensing SAS filed Critical Thomson Licensing SAS
Publication of EP1842368A1 publication Critical patent/EP1842368A1/de
Application granted granted Critical
Publication of EP1842368B1 publication Critical patent/EP1842368B1/de
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/78Television signal recording using magnetic recording
    • H04N5/782Television signal recording using magnetic recording on tape
    • H04N5/783Adaptations for reproducing at a rate different from the recording rate
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/005Reproducing at a different information rate from the information rate of recording
    • 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/232Content retrieval operation locally within server, e.g. reading video streams from disk arrays
    • 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/234Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs
    • H04N21/23406Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving management of server-side video buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/78Television signal recording using magnetic recording
    • H04N5/781Television signal recording using magnetic recording on disks or drums
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/84Television signal recording using optical recording
    • H04N5/85Television signal recording using optical recording on discs or drums
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/907Television signal recording using static stores, e.g. storage tubes or semiconductor memories
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N9/00Details of colour television systems
    • H04N9/79Processing of colour television signals in connection with recording
    • H04N9/80Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback
    • H04N9/804Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback involving pulse code modulation of the colour picture signal components
    • H04N9/8042Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback involving pulse code modulation of the colour picture signal components involving data reduction

Definitions

  • the present invention generally relates to a video playback system for use with digital video servers and other video players.
  • Digital video playback at regular playback speed can be accomplished with relative ease in modern video playback systems.
  • Variable speed playback such as reverse, slow-motion, fast forward, fast forward and reverse (shuttle), and frame-by-frame movement (jog), however, are more difficult to achieve. Further complicating matters is need for a video playback system to respond to real-time user manipulation of jog and/or shuttle controls during video playback.
  • a digital video system not only must provide smooth playback within each of the aforementioned playback modes, but also must smoothly transition from one mode to another responsive to user requests, such as those received via a jog or shuttle control of the video playback system.
  • one method of producing a slow motion effect is through field interpolation at the output of the decoder performed in synchronism with decoding.
  • This technique can be difficult to implement in a manner that is responsive to a jog or shuttle control.
  • Another case where responsiveness to jog and shuttle controls can be problematic pertains to effects used in dual track movies.
  • Dual track movies typically include effects such as fades or transitions between two or more video tracks. Producing such effects while playing back video in a manner that is responsive to jog and/or shuttle controls can be difficult.
  • Long GOP refers to a video compression format, such as MPEG-2 Long GOP, or any other video decoding process, which uses forward and/or backward motion prediction between frames.
  • a common failure of many such video decoders is that playback pauses and repeats frames while the system reacts to a disturbance such as a change in shuttle speed.
  • Another example is the playing of long-GOP formatted video in reverse. Playing long-GOP in reverse is especially troublesome because conventional decoders only decode some of the frames. These frames are repeated at the output as needed to fill in. This partial decoding arises from the need to decode I and P ("anchor") frames before decoding their dependant P and B frames. Further, most decoder chips only decode forward within a GOP, resulting in visible artifacts such as jumpy or jerky playback and pauses when changing playback speeds.
  • Past designs have read pictures from disk in advance of decoding.
  • the pictures are buffered in memory for some period of time in advance of the pictures being decoded and displayed. While this provides some degree of independence between fetching and decoding, when playback velocity is changed, the system needs to fetch different pictures from disk.
  • the different pictures must be stored in free memory.
  • the digital video system must determine which pictures to free, or remove, from the input buffer.
  • the operation of the video playback system is generally front-end driven and real-time scheduled.
  • the document US6154603 discloses a method for picture decoding and display in an apparatus reproducing from a digital disk wherein a digitally encoded signal is stored in a first memory, decoded to produce a picture that is then stored on a second memory for display.
  • the present invention relates to a system for processing digital video.
  • One aspect of the present invention is a system for playing digital video at varying playback speeds.
  • the system can include a fetcher module, an allocator module, a decoder module, and an output cache module.
  • the fetcher module can be configured to retrieve encoded pictures from a data store.
  • the allocator module can be configured to add retrieved encoded pictures to an input cache and to selectively delete encoded pictures from an input cache.
  • the decoder module can decode pictures received from the input cache.
  • the output cache module can store a plurality of decoded pictures and provide selected ones of the pictures as output. Pictures can be processed within each of the aforementioned modules according to a priority corresponding to each picture.
  • the priority can indicate a distance between a position of a picture within a video timeline and an aim point.
  • the aim point can specify a target location within the video timeline that is dependent upon at least one of video playback position, velocity, and/or acceleration.
  • Each of the modules of the video playback system can utilize a different aim point within the video timeline.
  • the aim point can be determined by multiplying the video playback velocity and video playback acceleration by at least one tuning coefficient and summing the results with a current position in the video timeline.
  • the fetcher can retrieve encoded pictures having a highest priority from the data store.
  • the system also can include an upper control layer configured to limit the video playback acceleration to a predetermined maximum acceleration.
  • An input cache for storing encoded pictures retrieved from the data store prior to decoding by the decoder also can be included.
  • the allocator can be operable only when the input cache does not have available space for storing newly retrieved pictures from the data store.
  • the decoder module can include at least two decoders. In another embodiment, the decoder module can include at least one decoder and at least one picture First-In-First-Out tag (FIFO). Each decoder can correspond to a picture FIFO. The decoder module can evaluate encoded pictures within the input cache and select at least one picture from the input cache for decoding. The selected picture(s) has a highest priority based upon an aim point corresponding to the decoder module.
  • FIFO First-In-First-Out tag
  • the output cache module can include a write controller configured to overwrite lowest priority pictures with higher priority pictures.
  • the output cache module can include a plurality of output cache buffers. Accordingly, the write controller can select one of the output cache buffers from the plurality of output cache buffers prior to writing each decoded picture.
  • the output cache module further can include a read controller configured to select at least one field from the output cache buffers that is closest to a current position within the video timeline for display during each field time.
  • a read controller FIFO also can be included in the output cache module. The read controller FIFO can delay position commands intended for the read controller by an adjustable amount.
  • the present invention provides a digital video playback system for use in digital video servers and other video players. Rather than rely upon a front-end driven, real-time scheduled architecture, the present invention allows each module within the digital video playback system to schedule, or select, which pictures will be processed or worked upon. In accordance with the inventive arrangements disclosed herein, each module of the video playback system can determine a picture processing priority at any given time according a priority scheme.
  • a timeline refers to a chronological series of pictures, or movie that the video playback system is playing.
  • the movie can include one or more separate video files and/or pictures that can be combined into a larger complex movie.
  • the video files and/or pictures therefore, must be played in a particular order to be played.
  • a picture as used herein, can refer to a field and/or a frame of video.
  • Fig. 1 is a schematic diagram illustrating a video playback system 100 in accordance with one embodiment of the present invention.
  • the video playback system 100 can decode and play digital video content.
  • the video playback system 100 includes a file system interface module 105, a fetcher module 175, an allocator module 180, an input cache 185, a decoder module 110, and an output cache module 115.
  • the aforementioned modules can be implemented using integrated circuits (IC's) such as field programmable gate arrays (FPGA's), memories, controllers, processors, discrete components, suitable software or computer programs executing within a host processor or controller, or any combination thereof.
  • IC's integrated circuits
  • FPGA's field programmable gate arrays
  • the video playback system 100 further can include a mass storage device 120.
  • the mass storage device 120 can be a magnetic hard disk drive, an optical disk, a memory, or the like.
  • the modules 105-115, 175-185, and the mass storage 120 can be interconnected via a communications bus or other suitable circuitry as shown.
  • fetcher module 175, the allocator module 180, the decoder module 110, and the output cache module 115 each can operate independently in selecting particular pictures to be processed based upon a priority scheme.
  • the priority scheme can be based upon aim points, which will be described herein in further detail.
  • the upper control layer 125 can be implemented as a centralized processor and/or signaling system. As such, the upper control layer 125 initializes each of the modules and manages the overall starting and stopping of digital video playback, for example by providing timing information to each of the respective modules of the video playback system 100. Accordingly, the upper control layer 125 can provide position information 130 pertaining to each picture within the digital video stream. From position information 130, differentiators 135 can determine velocity information 140 and acceleration information 145 pertaining to the digital video stream. Velocity information 140 can be determined by subtracting a position of a previous picture from a position of a current picture. Acceleration information 145 can be determined by subtracting the velocity of the previous picture from the velocity of the current picture.
  • the upper control layer 125 can provide each of the fetcher module 175, the allocator module 180, the decoder module 110, and the output cache module 115 with position 130, velocity 140, and/or acceleration 145 information.
  • Each individual module can compute its own aim points.
  • each module can be provided with an aim point from the upper control layer 125.
  • the aim point used by each module at any point in time can differ from those used by the other modules. Such information can vary from one module to the next as each module will be processing different pictures in the digital video timeline.
  • the velocity and acceleration information determined for each module can be multiplied by one or more tuning coefficients. Velocity and acceleration can be multiplied by different tuning coefficients. Moreover, different tuning coefficients can be used for each module to account for the location of each respective module within the video processing chain.
  • the results can be added to a current position within the digital video timeline, which can vary from one module to the next. The result is an aim point that precedes the current position within the video timeline in the direction of movement.
  • an aim point for the fetcher module 175, for example would be farther ahead along the digital video timeline than an aim point for the decoder module 110.
  • the A & B track information 155 indicates whether there is one or two tracks of video at given positions within the timeline.
  • the A & B track information 155 further can indicate which video files correspond to these tracks and the mix percentage between the two tracks reflected by the mix percentage information 150.
  • the mix percentage information 150 indicates the percentage of each track that is to be played at the output of the video playback system 100, or to drive a "mix effect" such as a particular type of wipe effect. Such information indicates how transitions from one track to another are processed.
  • the upper control layer 125 also provides a vertical interrupt 155, which causes the fetcher module 175, the allocator module 180, the decoder module 110, and the output cache module 115 to execute. Each module can execute one time per interrupt to process at least one picture.
  • the picture list 165 is a listing of the pictures that are currently stored in the input or output cache or in progress in some part of the system.
  • Each picture can be associated with a software object 170 within the picture list.
  • the software object 170 which can be referred to as a tag, specifies information which can include, but is not limited to, the position of the picture within the digital video timeline, the track to which the picture corresponds, the current location of the picture within the video playback system 100, the file picture position, the coding type (i.e. I, P, B, DV, etc.), scatter/gather lists, and the like. Though one tag is shown, each picture can be associated with its own tag.
  • a single picture list 165 can be used throughout the video playback system 100.
  • This picture list 165 can be stored in a memory that is accessible by each module of the video playback system 100. In another embodiment, however, each module can include and/or maintain its own picture list.
  • the upper control layer 125 can enforce an acceleration limit with respect to the system 100 as a whole.
  • a limit provides smoother video playback making it easier for a user to comprehend where in the video timeline the user is located. For example a limit of ⁇ 5X/second, or 5 frames per second squared, can be enforced. This is equivalent to preventing the velocity from increasing or decreasing more than 5 pictures per picture.
  • Such a function can be implemented as a software feature, for example, within the context of reading a shuttle speed control knob.
  • the file system interface 105 serves as an intermediary to the mass storage 120.
  • the file system interface 105 can be configured to read data of the particular format stored in the mass storage 120 and further to communicate such data to the fetcher module 175.
  • the fetcher module 175 is configured to retrieve encoded pictures stored within the mass storage device 120 through the file system interface 105.
  • the fetcher module 175 reads the mass storage device 120 and selects the highest priority picture(s) that are not already loaded within the input cache 185.
  • the priority of a picture refers to the proximity of the picture with respect to the aim point in the digital video timeline.
  • Each module within the video playback system 100 can determine priority information for one or more pictures as may be required during the decoding process. As each picture occupies a particular position within the digital video timeline, the distance of that picture from the aim point for a particular module, in this case the fetcher module 175, can be determined. The smaller the distance between the picture and the aim point, the higher the priority of the picture.
  • a predictor 192 executes a prediction algorithm.
  • the algorithm is dependent upon the current playback velocity information 140 and aim point as determined from the upper control layer 125. Accordingly, the predictor 192 selects an ideal set of pictures, i.e. a high priority set of pictures that is retrieved from the mass storage 120.
  • the allocator module 180 frees, or reuses, memory of the input cache 185 that is occupied by lowest priority picture(s) in cases where the fetcher module 175 needs to retrieve one or more higher priority pictures.
  • the allocator module 180 can operate when the input cache 185 does not have sufficient storage space for newly retrieved pictures.
  • the allocator module 180 can delete pictures from the input cache 185, overwrite pictures, or the like. Any technique for freeing memory from the input cache 185 can be used.
  • the allocator module 180 places those pictures in the input cache 185.
  • the input cache 180 stores the encoded, or compressed, pictures prior to decoding by the decoder module 110.
  • the decoder module 110 can include a hardware decoder 190 and a picture tag FIFO 195.
  • the hardware decoder 190 can include operational software allowing the hardware decoder 190 to execute general video decoding functions.
  • the software can instruct the decoder 190 to start decoding, stop decoding, and perform a reset.
  • the decoder 190 also can be implemented as a software-based decoder executing within a processor rather than a dedicated hardware-based decoder.
  • the software working in conjunction with the decoder 190 can configure or reconfigure the decoder 190 for decoding particular video formats and/or media types.
  • the software also can feed the decoder 190 with blank pictures when no video data or pictures are available for decoding. Blank pictures refer to pictures that are marked for deletion at the output cache module 115, and as such, are not to be played. Such pictures can be viewed as filler pictures intended to keep the decoder 190 occupied.
  • the picture tag FIFO 195 stores information such as tags representing the pictures in progress in the actual decoder 190.
  • the picture tag FIFO 195 correctly identifies pictures at the output of the decoder 190.
  • the decoder 190 can include two decoders or two channels (hereafter collectively "decoder") to accommodate dual video streams. As such, while both decoders can decode the same type of digital video, each decoder also can be configured to decode a different variety of digital video. It should be appreciated, however, that more than two decoders could be included. Each decoder can be associated with its own picture tag FIFO to identify the output from that decoder. The present invention, however, can be applied to single-stream and/or multi-stream decoders, including decoders that operate faster than real-time.
  • the decoder 190 processes only pictures that have been read from the mass storage 120 and which are stored within the input cache 185.
  • the decoder 110 generally selects the two highest priority pictures which are located in input cache 185, and which are not in the output cache module 115 or being decoded within the decoder 190. Where more than one decoder is used, i.e. to process more than one digital video stream, each picture is directed to a particular decoder to accommodate constraints relating to video data formatting such as whether the video stream is an MPEG stream, Digital Video (DV), and/or GOP formatted. Accordingly, the decoder 110 is programmed to make GOP-aware decisions to feed needed anchor frames before dependant pictures are processed for long-GOP formats.
  • the fetcher module 175 and the decoder module 110 can make GOP aware decisions as needed. Such a mechanism can ensure that anchor frames such as MPEG I and P coded pictures are retrieved prior to dependent pictures such as MPEG P and B coded pictures.
  • the output cache module 115 can include a write controller 200, a plurality of output cache buffers 205, a read controller 210, as well as a read controller FIFO 215.
  • the write controller 200 chooses which, if any, of the plurality of output cache buffers to which decoder 190 outputs will write decoded pictures.
  • the write controller 200 discards, i.e. overwrites, the lowest priority picture(s) with higher priority picture(s).
  • the output cache buffer 205 is a memory for temporarily storing uncompressed pictures written by the decoder 190.
  • the number of output cache buffers 205 can vary according to design preference and need not be linked or dependent upon the number of video streams being processed.
  • the read controller 210 analyzes the contents of the output cache buffers 205 and selects the closest pictures as compared with the current position within the video timeline. For example, the read controller 210 can select two fields to be displayed on the A and B outputs, for each field time.
  • the read controller FIFO 215 delays position commands from the upper control layer 125 to the read controller 210.
  • the delay function can provide the system 100 with more time to supply needed pictures as video output.
  • the read controller FIFO 215 can be adjusted to provide varying amounts of delay thereby allowing the video playback system 100 to be tuned for better performance. In one embodiment, however, the read controller FIFO 215 can be set to zero delay, or excluded from the system 100 altogether.
  • the read controller FIFO 215 has been described as part of the output cache module 115, in another embodiment, the read controller FIFO 215 can be incorporated into the upper control layer 125. Accordingly, the present invention is not so limited.
  • Fig. 2 is a flow chart illustrating a method 300 of playing back digital video in accordance with another embodiment of the present invention.
  • the method 300 can begin in step 305 where the fetcher module 175 acquires an aim point indicating a current position within the video timeline.
  • the aim point is corrected for velocity and acceleration as interpreted from user controls used to vary or change the position within the video timeline.
  • the allocator module 180 determines whether the input cache has sufficient space for storing the retrieved pictures. If so, the method can proceed to step 320. If not, in step 315 the allocator module 180 removes, overwrites, or deletes one or more pictures from the input cache to leave sufficient space for storing the requested and fetched pictures. The allocator module 180 optionally removes pictures having a lower priority than those that were retrieved. The allocator module 180 may, however, determine that previously stored pictures have higher priority, and refuse to provide space for a new picture, thus temporarily halting fetching at that time. To increase the amount of space available within the input cache, the pictures stored therein typically are compressed during encoding. That is, the pictures stored within the input cache are still encoded, thereby saving memory.
  • the allocator module 180 can remove the picture(s) that have the lowest priority of all the pictures stored within the input cache.
  • the allocator module 180 also can acquire an aim point, which can be used to evaluate which picture(s) to remove from the input cache.
  • the fetcher module 175 retrieves one or more pictures from the mass storage in step 320.
  • the predictor 192 can calculate the priority information for the pictures allowing the fetcher module 175 to select and retrieve the appropriate pictures. Pictures that are the highest priority, i.e. those picture(s) that are the closest to the aim point based upon the position of the pictures within the video timeline can be selected.
  • the fetcher module 175 can access the picture list to determine which pictures have already been retrieved from the mass storage and which pictures are located within the input cache. As noted, the fetcher module 175 can make GOP-aware decisions. Accordingly, if a dependent picture is closer to the aim point than the corresponding anchor picture, the fetcher module 175 can select the anchor picture prior to the dependent picture in order to properly decode the pictures.
  • the fetcher module 175 can update the information specified within the tag(s) for the retrieved picture(s). That is, the fetcher module 175 can set location flags that indicate that the retrieved pictures are now, or are soon to be, located within the input cache. In step 330, the retrieved pictures are stored within the input cache.
  • the decoder module 110 acquires an aim point.
  • the decoder module 110 selects one or more pictures from the input cache.
  • the pictures selected from the input cache can be the pictures having the highest priority as calculated by the decoder module 110 using the aim point and the location of the picture within the video timeline.
  • the selected pictures are loaded into, and processed by, the decoder module 110.
  • the decoder module 110 updates the tags corresponding to the loaded pictures to indicate that the pictures are presently in the decoder. Pictures available from the decoder output(s) can be indicated by the picture tag FIFO('s).
  • the decoder 190 can write the decoded picture to the output cache buffer chosen by the write controller 200.
  • the write controller 200 selects which output cache buffer the decoded picture is to be written.
  • decoded pictures from the first stream are stored within the output cache buffer selected for that frame or picture.
  • Decoded pictures corresponding to the second stream are stored within the output cache buffer selected for that frame, and so on.
  • the pictures are stored within the output cache buffer in a decoded, or uncompressed, format.
  • the write controller 200 can overwrite and/or otherwise discard lower priority pictures to make room for higher priority pictures. To make this determination, the write controller 200 can acquire an aim point and compare the aim point with the position of the picture within the video timeline. Accordingly, the write controller 200 can calculate priority information to be used in writing pictures to the output buffer cache. The write controller 200 further can decide not to overwrite any stored picture, and instead discard the output of any particular decoder stream.
  • the read controller 200 selects the closest pictures, or fields, in relation to the current position within the video timeline for display. Thus, if two video streams are being decoded by the read controller 200, the read controller 200 can select four fields, two for each video stream. The selected pictures are provided over outputs A and B in the case of a two-stream decoder.
  • the mix percentage signal indicates the percentage of each data stream to be played or rendered.
  • the source buffer selected for video output in the first video field time can be different from the source buffer used during the second output field time. This can be particularly useful when playing video at high speed in combination with the dual-stream decoder architecture illustrated herein. In that case, 60 full frames can be decoded per second from a single track, and the read controller 200 can select one field out of each of these frames. This results in playback that is roughly twice as smooth as is possible with conventional designs.
  • the inventive arrangements disclosed herein utilize a system where priorities are used to drive picture selection and decoding rather than a front-end driven, real-time scheduled decoding.
  • the priorities can be determined according to the distance of a picture within the video timeline from an aim point, which is a current position within a video timeline that is adjusted for velocity and acceleration.
  • a back-end selection process in conjunction with an uncompressed cache.
  • the video playback architecture relieves the decoder from having to work strictly in real-time. This allows, for instance, forward decoding in GOP, as required by the decode hardware, while playing in reverse.
  • the latency of the mass storage and decode mechanism, whether hardware or software-based can be hidden thereby allowing fast response to user controls.
  • the present invention takes advantage of both decoders of typical dual decoder hardware to achieve improved decoding with respect to single track high-speed shuttle playback.
  • the present invention can be realized in hardware, software, or a combination of hardware and software.
  • the present invention can be realized in a centralized fashion in one computer system or in a distributed fashion where different elements are spread across several interconnected computer systems. Any kind of computer system or other apparatus adapted for carrying out the methods described herein is suited.
  • a typical combination of hardware and software can be a general purpose computer system with a computer program that, when being loaded and executed, controls the computer system such that it carries out the methods described herein.
  • Computer program in the present context means any expression, in any language, code or notation, of a set of instructions intended to cause a system having an information processing capability to perform a particular function either directly or after either or both of the following: a) conversion to another language, code or notation; b) reproduction in a different material form.

Claims (19)

  1. System zum Abspielen von digitalem Video mit veränderlichen Abspielgeschwindigkeiten, wobei das System umfasst:
    ein Abrufmodul (175), das dafür konfiguriert ist, codierte Bilder aus einem Datenspeicher (120) auszulesen;
    ein Decodiermodul (110), das dafür konfiguriert ist, aus einem Eingangs-Cache empfangene Bilder zu decodieren; und
    ein Ausgangs-Cache-Modul (200), das dafür konfiguriert ist,
    mehrere decodierte Bilder zu speichern und ausgewählte der Bilder als Ausgabe bereitzustellen;
    wobei das System dadurch gekennzeichnet ist, dass es umfasst:
    ein Zuweisungsmodul (180), das dafür konfiguriert ist, codierte Bilder wahlweise zu dem Eingangs-Cache (185) hinzuzufügen und codierte Bilder wahlweise aus dem Eingangs-Cache zu löschen;
    und wobei:
    Bilder innerhalb jedes der Module in Übereinstimmung mit einer jedem Bild entsprechenden Priorität verarbeitet werden, wobei die Priorität eine Entfernung zwischen einer Position eines Bilds innerhalb eines Videozeitstrahls und einem Absichtspunkt angibt.
  2. System nach Anspruch 1, wobei der Absichtspunkt innerhalb des Videozeitstrahls einen Zielort spezifiziert, der von der Videoabspielstelle und/oder von der Videoabspielgeschwindigkeit und/oder von der Videoabspielbeschleunigung abhängt.
  3. System nach Anspruch 2, wobei jedes Modul innerhalb des Videozeitstrahls einen anderen Absichtspunkt nutzt.
  4. System nach Anspruch 2, wobei der Absichtspunkt durch Multiplizieren der Videoabspielgeschwindigkeit und der Videoabspielbeschleunigung mit mindestens einem Abstimmkoeffizienten und Summieren der Ergebnisse mit einer gegenwärtigen Stelle auf dem Videozeitstrahl bestimmt wird.
  5. System nach Anspruch 1, wobei die Abrufeinrichtung aus dem Datenspeicher codierte Bilder mit einer höchsten Priorität ausliest.
  6. System nach Anspruch 1, das ferner eine obere Steuerschicht umfasst, die dafür konfiguriert ist, die Videoabspielbeschleunigung auf eine vorgegebene maximale Beschleunigung zu begrenzen.
  7. System nach Anspruch 1, das ferner einen Eingangs-Cache zum Speichern codierter Bilder, die aus dem Datenspeicher vor dem Decodieren durch das Decodiermodul ausgelesen werden, umfasst.
  8. System nach Anspruch 7, wobei die Zuweisungseinrichtung nur betreibbar ist, wenn es in dem Eingangs-Cache keinen verfügbaren Platz zum Speichern neu ausgelesener Bilder aus dem Datenspeicher gibt.
  9. System nach Anspruch 1, wobei das Decodiermodul mindestens zwei Decodierer umfasst.
  10. System nach Anspruch 1, wobei das Decodiermodul mindestens einen Decodierer und mindestens ein Bild-zuerst-Eingeben-zuerst-Ausgaben-Etikettkennzeichen (FIFO), das dem mindestens einen Decodierer entspricht, umfasst.
  11. System nach Anspruch 1, wobei das Decodiermodul codierte Bilder innerhalb des Eingangs-Caches bewertet und mindestens ein Bild aus dem Eingangs-Cache zur Decodierung auswählt, wobei das ausgewählte mindestens eine Bild auf der Grundlage eines dem Decodiermodul entsprechenden Absichtspunkts eine höchste Priorität besitzt.
  12. System nach Anspruch 1, wobei das Ausgangs-Cache-Modul ferner einen Schreibcontroller umfasst, der dafür konfiguriert ist, Bilder niedrigster Priorität mit Bildern höherer Priorität zu überschreiben.
  13. System nach Anspruch 12, wobei das Ausgangs-Cache-Modul mehrere Ausgangs-Cache-Puffer umfasst, wobei der Schreibcontroller vor dem Schreiben jedes decodierten Bilds einen der Ausgangs-Cache-Puffer aus den mehreren Ausgangs-Cache-Puffern auswählt.
  14. System nach Anspruch 13, wobei das Ausgangs-Cache-Modul ferner einen Lesecontroller umfasst, der dafür konfiguriert ist, aus den mehreren Ausgangs-Cache-Puffern mindestens ein Halbbild, das einer gegenwärtigen Stelle innerhalb des Videozeitstrahls am nächsten ist, zur Anzeige während jeder Halbbildzeit auszuwählen.
  15. System nach Anspruch 14, wobei das Ausgangs-Cache-Modul ferner einen Lesecontroller-Zuerst-Eingeben-zuerst-Ausgeben (FIFO) umfasst, der dafür konfiguriert ist, für den Lesecontroller bestimmte Positionsbefehle um einen einstellbaren Betrag zu verzögern.
  16. Verfahren zum Abspielen von digitalem Video mit veränderlichen Abspielgeschwindigkeiten, wobei das Verfahren den folgenden Schritt umfasst:
    Übertragen (320) mindestens eines codierten Bilds zur Speicherung in einem Eingangs-Cache;
    wobei das Verfahren dadurch gekennzeichnet ist, dass es die folgenden Schritte umfasst:
    Bestimmen eines Absichtspunkts auf einem Videozeitstrahl (335);
    Auswählen (340) mindestens eines Bilds aus dem Eingangs-Cache in Übereinstimmung mit einer höchsten Priorität, die unter Verwendung des Absichtspunkts und eines Orts des Bilds innerhalb des Videozeitstrahls berechnet wird;
    Decodieren (345) des mindestens einen ausgewählten Bilds;
    Schreiben (355) des decodierten Bilds in einen Ausgangs-Cache; und
    Lesen (360) mindestens eines Bilds, das einer gegenwärtigen Position innerhalb des Videozeitstrahls am nächsten liegt, aus dem Ausgangs-Cache.
  17. Verfahren nach Anspruch 16, das ferner den Schritt des wahlweisen Löschens codierter Bilder aus dem Eingangs-Cache enthält.
  18. Verfahren nach Anspruch 16, wobei der Absichtspunkt durch Multiplizieren einer Videoabspielgeschwindigkeit und einer Videoabspielbeschleunigung mit mindestens einem Abstimmkoeffizienten und Summieren der Ergebnisse mit einer gegenwärtigen Stelle auf dem Videozeitstrahl bestimmt wird.
  19. Verfahren nach Anspruch 16, wobei der Schritt des Auswählens ferner die folgenden Schritte umfasst:
    Bewerten codierter Bilder innerhalb des Eingangs-Caches; und
    Auswählen mindestens eines Bilds aus dem Eingangs-Cache zur Decodierung, wobei das ausgewählte mindestens eine Bild auf der Grundlage eines Absichtspunkts für die Decodierung eine höchste Priorität besitzt.
EP05712474.5A 2005-01-27 2005-01-27 Video-player für einen digitalen video-server Expired - Fee Related EP1842368B1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2005/003041 WO2006080925A1 (en) 2005-01-27 2005-01-27 Video player for digital video server

Publications (2)

Publication Number Publication Date
EP1842368A1 EP1842368A1 (de) 2007-10-10
EP1842368B1 true EP1842368B1 (de) 2017-10-18

Family

ID=34978658

Family Applications (1)

Application Number Title Priority Date Filing Date
EP05712474.5A Expired - Fee Related EP1842368B1 (de) 2005-01-27 2005-01-27 Video-player für einen digitalen video-server

Country Status (6)

Country Link
US (1) US8315509B2 (de)
EP (1) EP1842368B1 (de)
JP (1) JP2008529405A (de)
CN (1) CN101107849B (de)
CA (1) CA2594887C (de)
WO (1) WO2006080925A1 (de)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4901390B2 (ja) * 2006-09-20 2012-03-21 株式会社東芝 ビデオサーバ及び素材出力方法
JP4901389B2 (ja) * 2006-09-20 2012-03-21 株式会社東芝 ビデオサーバ及び素材出力方法
US8256005B2 (en) * 2007-01-08 2012-08-28 Apple Inc. Protection of audio or video data in a playback device
WO2016203539A1 (ja) * 2015-06-16 2016-12-22 三菱電機株式会社 画像符号化方式変換装置及び画像符号化方式変換方法
US20180069909A1 (en) * 2016-09-08 2018-03-08 Sonic Ip, Inc. Systems and Methods for Adaptive Buffering for Digital Video Streaming
WO2022019900A1 (en) * 2020-07-22 2022-01-27 Google Llc Bluetooth earphone adaptive audio playback speed
AU2021201595B1 (en) * 2021-03-12 2022-03-31 The Cawthron Institute Trust Board Improved method of producing oysters

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6529682B1 (en) * 1999-02-17 2003-03-04 Matsushita Electric Industrial Co., Ltd. Information recording medium, apparatus and method for performing after-recording on the recording medium

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2145361C (en) * 1994-03-24 1999-09-07 Martin William Sotheran Buffer manager
US5884323A (en) * 1995-10-13 1999-03-16 3Com Corporation Extendible method and apparatus for synchronizing files on two different computer systems
JPH09186966A (ja) 1995-12-25 1997-07-15 Texas Instr Inc <Ti> ビデオ再生方法及び再生システム
KR100188701B1 (ko) 1996-01-08 1999-06-01 윤종용 가변속 고속 재생기능을 갖는 가변 비트율 동화상복호화장치
US6154603A (en) 1997-02-18 2000-11-28 Thomson Licensing S.A. Picture decoding for trick mode operation
US6012137A (en) 1997-05-30 2000-01-04 Sony Corporation Special purpose processor for digital audio/video decoding
IT1297984B1 (it) * 1997-09-30 1999-12-20 Veloservice S R L Stazione automatica di servizio per telefonia cellulare
DE19813784A1 (de) 1998-03-27 1999-09-30 Nokia Deutschland Gmbh Verfahren zum Erhöhen der Speicherkapazität für Serviceinformation in einem Empfänger für digitale TV-Sendungen
JP3093724B2 (ja) * 1998-04-27 2000-10-03 日本電気アイシーマイコンシステム株式会社 動画像データ再生装置及び動画像データの逆再生方法
US6542693B2 (en) 1998-05-29 2003-04-01 Lucent Technologies Inc. Digital video playback with trick play features
US6243140B1 (en) 1998-08-24 2001-06-05 Hitachi America, Ltd Methods and apparatus for reducing the amount of buffer memory required for decoding MPEG data and for performing scan conversion
US6470051B1 (en) 1999-01-25 2002-10-22 International Business Machines Corporation MPEG video decoder with integrated scaling and display functions
US6658056B1 (en) * 1999-03-30 2003-12-02 Sony Corporation Digital video decoding, buffering and frame-rate converting method and apparatus
JP2000341696A (ja) 1999-05-28 2000-12-08 Nec Microcomputer Technology Ltd 画像復号化装置およびその方法
JP2003046960A (ja) 2001-08-03 2003-02-14 Sony Corp 再生装置および方法、記録媒体、並びにプログラム
ES2664270T3 (es) 2001-12-17 2018-04-18 Microsoft Technology Licensing, Llc Codificación por omisión de macrobloques
KR20030057690A (ko) 2001-12-29 2003-07-07 엘지전자 주식회사 비디오 디코딩 시스템
US7729421B2 (en) 2002-02-20 2010-06-01 International Business Machines Corporation Low latency video decoder with high-quality, variable scaling and minimal frame buffer memory
JP2003339019A (ja) * 2002-05-20 2003-11-28 Mitsubishi Electric Corp 記録再生装置および記録再生方法
KR100447200B1 (ko) 2002-07-30 2004-09-04 엘지전자 주식회사 Pvr 지원 비디오 디코딩 시스템
US7116828B2 (en) 2002-09-25 2006-10-03 Lsi Logic Corporation Integrated video decoding system with spatial/temporal video processing
JP3773892B2 (ja) * 2002-10-31 2006-05-10 三洋電機株式会社 デジタル記録再生装置
JP4078545B2 (ja) * 2003-04-04 2008-04-23 ソニー株式会社 再生装置および方法、記録媒体、並びにプログラム
JP2004350152A (ja) * 2003-05-23 2004-12-09 Matsushita Electric Ind Co Ltd 映像再生装置および映像再生方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6529682B1 (en) * 1999-02-17 2003-03-04 Matsushita Electric Industrial Co., Ltd. Information recording medium, apparatus and method for performing after-recording on the recording medium

Also Published As

Publication number Publication date
JP2008529405A (ja) 2008-07-31
CA2594887C (en) 2013-07-09
EP1842368A1 (de) 2007-10-10
US8315509B2 (en) 2012-11-20
CN101107849A (zh) 2008-01-16
WO2006080925A1 (en) 2006-08-03
CN101107849B (zh) 2010-12-29
US20080247728A1 (en) 2008-10-09
CA2594887A1 (en) 2006-08-03

Similar Documents

Publication Publication Date Title
EP1387579B1 (de) Verfahren und Systeme zur Bearbeitung von Veränderungen der Digitaldatenrate und der Wiedergaberichtung
US7720349B2 (en) Image processing apparatus, method, and program, and program storage medium
EP1842368B1 (de) Video-player für einen digitalen video-server
US7092619B2 (en) Signal recording method &amp; apparatus, signal recording / reproducing method &amp; apparatus and signal recording medium
JP4867235B2 (ja) 情報処理装置および情報処理方法、記録媒体、並びに、プログラム
US9531983B2 (en) Decoding interdependent frames of a video for display
US20080107396A1 (en) Systems and methods for playing back data from a circular buffer by utilizing embedded timestamp information
JP4244974B2 (ja) データ処理システム、再生装置、データ処理装置、再生方法、データ処理方法、プログラムおよび記録媒体
US20080075175A1 (en) Information processing apparatus and method
JP4281720B2 (ja) データ処理装置、データ処理方法、データ処理システム、プログラムおよび記録媒体
JP2004297441A (ja) 情報作成装置および方法、再生装置および方法、並びにプログラム
US8655139B2 (en) Video recording and reproducing system and reading method of video data
US20040233806A1 (en) Recording device and method, recording medium and program
US20050002645A1 (en) Reproducing device and method, recording medium and program
JP3922199B2 (ja) データ記録再生装置
US8149679B2 (en) Recording/reproducing device and method, recording medium, and program

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

17P Request for examination filed

Effective date: 20070731

AK Designated contracting states

Kind code of ref document: A1

Designated state(s): DE FR GB

DAX Request for extension of the european patent (deleted)
RBV Designated contracting states (corrected)

Designated state(s): DE FR GB

RAP1 Party data changed (applicant data changed or rights of an application transferred)

Owner name: THOMSON LICENSING

17Q First examination report despatched

Effective date: 20161116

GRAP Despatch of communication of intention to grant a patent

Free format text: ORIGINAL CODE: EPIDOSNIGR1

INTG Intention to grant announced

Effective date: 20170405

GRAS Grant fee paid

Free format text: ORIGINAL CODE: EPIDOSNIGR3

GRAJ Information related to disapproval of communication of intention to grant by the applicant or resumption of examination proceedings by the epo deleted

Free format text: ORIGINAL CODE: EPIDOSDIGR1

GRAL Information related to payment of fee for publishing/printing deleted

Free format text: ORIGINAL CODE: EPIDOSDIGR3

GRAR Information related to intention to grant a patent recorded

Free format text: ORIGINAL CODE: EPIDOSNIGR71

INTC Intention to grant announced (deleted)
GRAA (expected) grant

Free format text: ORIGINAL CODE: 0009210

INTG Intention to grant announced

Effective date: 20170907

AK Designated contracting states

Kind code of ref document: B1

Designated state(s): DE FR GB

REG Reference to a national code

Ref country code: GB

Ref legal event code: FG4D

REG Reference to a national code

Ref country code: DE

Ref legal event code: R081

Ref document number: 602005052906

Country of ref document: DE

Owner name: INTERDIGITAL CE PATENT HOLDINGS SAS, FR

Free format text: FORMER OWNER: THOMSON LICENSING, BOULOGNE, FR

REG Reference to a national code

Ref country code: DE

Ref legal event code: R096

Ref document number: 602005052906

Country of ref document: DE

REG Reference to a national code

Ref country code: FR

Ref legal event code: PLFP

Year of fee payment: 14

REG Reference to a national code

Ref country code: DE

Ref legal event code: R097

Ref document number: 602005052906

Country of ref document: DE

PLBE No opposition filed within time limit

Free format text: ORIGINAL CODE: 0009261

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: NO OPPOSITION FILED WITHIN TIME LIMIT

26N No opposition filed

Effective date: 20180719

GBPC Gb: european patent ceased through non-payment of renewal fee

Effective date: 20180127

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: GB

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20180127

REG Reference to a national code

Ref country code: DE

Ref legal event code: R081

Ref document number: 602005052906

Country of ref document: DE

Owner name: INTERDIGITAL CE PATENT HOLDINGS SAS, FR

Free format text: FORMER OWNER: THOMSON LICENSING, ISSY-LES-MOULINEAUX, FR

PGFP Annual fee paid to national office [announced via postgrant information from national office to epo]

Ref country code: DE

Payment date: 20200131

Year of fee payment: 16

PGFP Annual fee paid to national office [announced via postgrant information from national office to epo]

Ref country code: FR

Payment date: 20200128

Year of fee payment: 16

REG Reference to a national code

Ref country code: DE

Ref legal event code: R119

Ref document number: 602005052906

Country of ref document: DE

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: FR

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20210131

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: DE

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20210803