WO2006078406A2 - Method and apparatus for encoding a video sequence - Google Patents

Method and apparatus for encoding a video sequence Download PDF

Info

Publication number
WO2006078406A2
WO2006078406A2 PCT/US2005/046328 US2005046328W WO2006078406A2 WO 2006078406 A2 WO2006078406 A2 WO 2006078406A2 US 2005046328 W US2005046328 W US 2005046328W WO 2006078406 A2 WO2006078406 A2 WO 2006078406A2
Authority
WO
WIPO (PCT)
Prior art keywords
frame
buffer
frames
video sequence
class
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.)
Ceased
Application number
PCT/US2005/046328
Other languages
French (fr)
Other versions
WO2006078406A3 (en
Inventor
Faisal Ishtiaq
Bhavan R. Gandhi
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.)
Motorola Solutions Inc
Original Assignee
Motorola Inc
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 Motorola Inc filed Critical Motorola Inc
Publication of WO2006078406A2 publication Critical patent/WO2006078406A2/en
Anticipated expiration legal-status Critical
Publication of WO2006078406A3 publication Critical patent/WO2006078406A3/en
Ceased legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals

Definitions

  • the present invention relates in general to the field of video encoding, and more specifically to a video encoding method that generates a scalable video sequence.
  • Digital video compression is used to reduce the data rate of a source video by generating an efficient and non-redundant representation of the original source video.
  • Video encoding techniques known in the art including ITU-T H.26X, ISO/IEC MPEG- 1, MPEG-2, and MPEG-4 standards, perform video compression prior to transmitting the source video over a transmission channel.
  • Scalability is one of the main techniques employed in the art for addressing this issue of providing digital video to a diverse set of clients.
  • the technique encodes enrichment data in additional enhancement layers that progressively result in better quality video.
  • a scalability technique known in the art is temporal scalability, wherein enhancement layers provide progressively better temporal resolution as more layers are decoded. Scalability can also help in increasing the error resilience of the source video by applying different levels of error protection on the. different layers. While scalability has been adopted within the recent H.263 and MPEG-4 standards, it has not been adopted in many existing video-encoding standards such as the H.264/MPEG-4 AVC standard.
  • FIG. 1 is a flowchart depicting a method of encoding a video sequence, in accordance with some embodiments of the present invention
  • FIG. 2 illustrates an encoding layout of the video sequence in accordance with an embodiment of the present invention
  • FIG. 3 is a flow chart depicting a method for generating the video sequence, in accordance with some embodiments of the present invention.
  • FIG. 4 is a schematic diagram of a system for generating a video sequence, in accordance with some embodiments of the present invention.
  • FIG. 5 illustrates a buffer, in accordance with some embodiments of the present invention.
  • the present invention provides a method and apparatus for encoding a video sequence, which generates a temporally scalable video sequence comprising a plurality of frames.
  • the method comprises classifying a frame into a suitable class, the suitable class being selected from a set of predefined classes. Once a frame is classified, it is encoded by utilizing a buffer, wherein the buffer includes separate storage for storing frames of different classes. A reconstructed version of the encoded frame is then stored in the buffer. The method steps are iteratively repeated for each frame of the video sequence.
  • the provided method is compliant with the H.264 video encoding standard, so that all normative H.264 decoders can accurately decode the generated bitstream. Hence, it enables temporal scalability to be employed within the H.264 standard, even though the standard itself does not explicitly support scalability. It should be noted that the present invention is not limited to the H.264 video encoding standard. All standards, using information from a previous frame and allowing for multiple frame storage, can employ this method to achieve temporal scalability.
  • a flow chart depicts a method for encoding a video sequence, in accordance with some embodiments of the present invention.
  • the video sequence comprises a plurality of frames, that when presented in succession, generates a complete video.
  • the plurality of frames is classified according to a plurality of temporal layers.
  • the temporal layers comprise a base layer and at least one enhancement layer.
  • the base layer represents the layer with the lowest temporal resolution, while each enhancement layer, when added to a base layer, represents a higher temporal resolution.
  • Each temporal layer is also referred to as a class.
  • a frame belonging to the video sequence is classified into a suitable class, wherein the suitable class is chosen from a set of predefined classes.
  • the predefined classes refer to the layers (base layer and enhancement layers) defined in a particular implementation scheme.
  • the classification of frames into classes is carried out, based on the bit rate of a transmission channel, through which the video sequence is sent and/or the desired temporal resolution of the video sequence. For example, consider a case wherein a video sequence has to be transmitted according to two frame rates. The first, at 30 frames per second (fps), is to be generated for transmission over a high bandwidth channel, and a second, at 10 fps, is to be generated for transmission over a wireless link.
  • fps frames per second
  • every third frame of the video sequence is encoded (i.e., frames 0, 3, 6, 9, 12, 15, 18, 21, 24, 27 ”) in an exemplary class A, and the remaining frames (1, 2, 4, 5, 7, 8, 10, 11 ...) are encoded in an exemplary class B.
  • the frames are encoded in the two exemplary classes A and B.
  • a subset of the frames is encoded in class A, to meet the 768Kbps requirement (frames 0, 5, 7, 8, 10 ...), and another subset is encoded, comprising the other frames (frames 2, 3, 6, 9 %) at 1232Kbps.
  • each frame of the video sequence is encoded using a buffer.
  • the encoding of a frame results in the compression of the frame.
  • the buffer includes storage for storing frames, corresponding to the classes to which the frames belong.
  • frames belonging to different classes can be stored in designated locations within the buffer.
  • the frames classified as belonging to an exemplary class A are stored in a storage area designated for class A frames, and so on.
  • One method to encode the frame is using the frame encoding methodology as defined in the H.264 video coding standard.
  • a buffer can be one contiguous piece of memory that is divided into different buffers for storing frames of different classes.
  • each frame is encoded by predicting the frame from a previously stored frame in the buffer.
  • the first frame of the video sequence is encoded as an INTRA coded frame.
  • An INTRA coded frame is encoded independently of any previously sent frames, and is therefore bandwidth consuming.
  • the method of encoding frames, using stored frames in the buffer, is described in detail in conjunction with FIG. 2.
  • the remaining frames encoded by prediction are INTER coded, since they are encoded by using previously encoded frames.
  • a reconstructed version of each encoded frame is stored in the buffer.
  • the reconstruction of an encoded frame refers to the decompression of the encoded frame.
  • Reconstruction of INTRA frames do not require a reference frame for prediction.
  • reconstruction of INTER frames do require one or more predictive frames from which a prediction of the frame currently being decoded is formed.
  • reconstructed frames from each appropriate class are stored in the appropriately designated buffers as long- term frames.
  • a long-term frame is a frame that is stored for a long period of time in the buffer. The storage and removal of the long-term frame is signaled by commands sent within the video sequence.
  • a frame can also be stored as a short-term frame.
  • a short-term frame is a frame that is removed after a short period of time by either a new frame pushing the oldest short-term frame out, or by commands sent within the video sequence. Short-term frames are held for a shorter time period than long-term frames, and are used when a video sequence is to be sent in short intervals.
  • a buffer, storing one or more long-term frames is hereinafter referred to as a long-term buffer, and a buffer storing one or more short-term frames is referred to as a short-term buffer.
  • step 108 it is determined if there are any frames remaining in the video sequence that need to be encoded. If there is a frame that has to be encoded, steps 102 to 108 are repeated.
  • the stopping criteria is particular to the encoding scenario and can be based upon the desired bitrate, frame rate, or other factors that go into how the layers , or classes, are structured.
  • all the frames of the encoded video sequence can be stored at a single location, such as a database connected to a video server. This enables the video server to transmit the encoded video sequence later to various clients.
  • the maximum number of classes, and the method of classifying the frames may be decided on prior to the encoding process, or during the encoding process.
  • the maximum number of classes is dependent on the size of the buffer, and the number of frames per class held in the buffer. For instance, if N long-term buffers and at least one short-term buffer are available, and only one frame per class is held in the long-term buffer, the maximum number of classes allowed is N+l .
  • FIG. 2 an exemplary encoding layout of a video sequence is shown, in accordance with an embodiment of the invention.
  • the frames of the video sequence are classified as belonging to one of the classes A, B or class C.
  • class A provides the lowest temporal resolution to the video sequence, and consequently requires the lowest bitrate for transmission.
  • Class B enhances Class A's temporal resolution by adding more frames. However, as the temporal resolution of the frames increase, the required bitrate to transmit the encoded frames also increases.
  • adding Class C frames to the class A and class B frames provides maximum resolution to the video sequence at the highest bitrate.
  • first frame 1 of the video sequence Since the frame 1 is the first frame of the video sequence, it is encoded as an INTRA coded frame, classified as belonging to class A and referred to as frame Al . After encoding, the frame Al is stored as a long-term frame in the long-term buffer known to contain class A prediction frames.
  • the next source frame is a frame 2 that has been classified as belonging to class B and is referred to as frame Bl .
  • frame Bl is the first Class B frame, it can either be encoded as an INTRA frame, or predicted by using the frame AL A frame that is used for the prediction of a successive frame is hereinafter referred to as a predictor frame.
  • the frame Bl is encoded as an INTRA frame, the dependency of frames in class B frames on class A frames is done away with, at a higher cost to compression efficiency.
  • the frame Bl is encoded as an INTER frame, using the frame Al as the predictor frame. Once the frame Bl is encoded, a reconstructed version of the frame Bl is stored as a long-term frame in the buffer in the storage area designated for class B frames.
  • the next frame in the video sequence, frame 3, is classified as belonging to class C and referred to as frame Cl.
  • the frame Cl is encoded as an INTER frame, using frame Bl as the predictor frame.
  • the frame Al can also be used as a predictor frame, but is less efficient, since the frame Bl is temporally closer to the frame Cl.
  • the frames Al and Bl, belonging to classes A and B, respectively, and residing in the buffer, remain unaltered.
  • frame 4 in the video sequence is predicted by using the frame Cl, and is classified as belonging to class C.
  • the frame C2 is stored as a long-term frame in the storage area designated for Class C frames in the buffer. This process is repeated in a similar fashion for the subsequent frames, i.e., frames B2, C3, A2, B3, C4, B4, C5, A3, B5 and C6.
  • the buffer's size restrictions do not allow for multiple long-term frames from the same class to be stored, the previous long-term frame from a class is removed, to allow the current frame of the same class to be stored in the buffer.
  • the frame Cl may be removed from the buffer and replaced with the frame C2, if the buffer cannot store more than one frame in a storage area designated for a class.
  • a predictor frame must belong to the same or previous class of frame that is being predicted, and must be available in the buffer.
  • a frame belonging to a class is not dependent on a frame in any subsequent classes.
  • frame 5 in the video sequence classified as belonging to class B and referred to as the frame B2
  • the frame B2 is encoded by using the frame Al for prediction, since the frame A2 belongs to a previous class and is available in the buffer. Therefore, a class B frame requires that the predictor frame is either in class B or in class A.
  • the prediction of a frame belonging to class B is independent of any class C frame.
  • frame 7 in the video sequence is predicted using the frame Al, and stored in the buffer in the storage area designated for class A frames.
  • frame 8 referred to as frame B3 is predicted by using the frame A2, since it is closer than the frame B2.
  • frame 9 of the video sequence is predicted by using the frame B3 rather than the frame C3, since the frame B3 represents a temporally closer frame.
  • the frame C4 is predicted by using the frame C3, which lies in the same class, i.e., class C. This is indicated by the lines connecting the frames C4 and C3.
  • predicting a frame by using a frame that is not temporally closer, but from the same class satisfies the requirements of the method, in accordance with the invention, but may lead to lower encoding efficiency and decreased error resilience.
  • Generating the video sequence includes encoding the video sequence at the sender end, transmitting the video sequence through a transmission channel, and decoding the transmitted video sequence at the receiver end.
  • each frame of the video sequence is encoded according to the method described with reference to FIG. 1.
  • the encoding is carried out at the sender end, from where the encoded video sequence is sent.
  • the encoded video sequence is transmitted over a transmission channel to the receiver end, which refers to the end where the decoding of the encoded video sequence takes place.
  • the transmission channel is characterized by a certain bitrate, at which the encoded video sequence is transmitted, and the channel error profile.
  • the channel error profile is a profile of the errors that occur during transmission of the video sequence over the transmission channel.
  • a buffer regulation data is transmitted to the receiver end.
  • the buffer regulation data includes information regarding regulation of the buffer storing the encoded frames.
  • the buffer regulation data enables decoding of the encoded video sequence, to be carried out accurately at the receiver end.
  • the buffer regulation data includes information about how the buffer is manipulated during the encoding process at step 302.
  • buffer regulation data may include information about initializing/ configuring the buffer, altering the status of the buffer from a long-term buffer to a short-term buffer, and labeling a long-term buffer as being used or empty.
  • the buffer regulation data includes buffer commands (related to manipulation of the buffer) that are transmitted to the receiver end, so that decoding can be carried out.
  • Signaling of the buffer commands can be sent within the bitstream of the encoded video sequence, or communicated by external means as independent commands sent independently of the video sequence.
  • a signaling methodology that allows sending the buffer regulation data is an integral part of the H.264 video encoding standard.
  • long-term and short-term buffers can be precisely regulated by the use of commands sent in the bitstream belonging to the encoded video sequence.
  • the transmitted video sequence is decoded at the receiver end, using a decoder buffer.
  • the decoder buffer is configured according to the buffer regulation data received at the receiver end.
  • the buffer commands included in the buffer regulation data are applied to the decoder buffer during the decoding process. Therefore, the decoder buffer state enables the accurate decoding of the encoded video sequence to be carried out, in the same manner in which the video sequence was encoded.
  • the decoder buffer also stores the decoded frames according to their classification, and includes separate storage for different classes of the frames.
  • the transmission of video sequence refers to sending the encoded video sequence from the sender end to the receiver end.
  • the sender end and the receiver end may be located at the same physical location or at different physical locations.
  • the encoded video sequence may be stored locally on a computer or a data processing device. Thereafter, one or more classes of the encoded video sequence can be decoded and played back, depending on the speed of the computer's processor and/or its computational or memory capacity.
  • FIG. 4 a schematic diagram of a system 400 for generating a video sequence is shown, in accordance with some embodiments of the present invention.
  • the system 400 includes a video encoder 402 located at a sender end, a video decoder 404 located at a receiver end, and a transmission channel 406.
  • the video encoder 402 encodes the video sequence according to the method described with reference to FIG. 1.
  • the video encoder 402 comprises a means for classifying 408, a means for encoding 410, and a buffer 412.
  • the means for classifying 408 is used to classify each frame of the video sequence into a suitable class, according to the method described with reference to FIG. 1.
  • the means for encoding 410 encodes the frame by predicting the frame, using a predictor frame stored in the buffer 412.
  • the buffer 412 enables the encoded frame to be stored according to the class to which the encoded frame belongs.
  • the encoded video sequence is transmitted through the transmission channel 406, which carries the encoded video sequence to the video decoder 404, located at a receiver end. Additionally, a buffer regulation data, as described with reference to FIG. 3, is also sent through the transmission channel 406.
  • the transmission channel 406 may be among any transmission technologies that can enable transmission of the video sequence including fiber optic lines, coaxial networking cable, a wireless link, or a dedicated digital line such as Tl or T3.
  • the video decoder 404 decodes the transmitted video sequence according to the method described with reference to FIG. 3.
  • the video decoder 404 comprises a means for decoding 414 and a decoder buffer 416.
  • the means for decoding 414 decodes the transmitted video sequence according to the method described with reference to FIG. 3, using the buffer regulation data sent from the video encoder 402. Therefore, the decoder buffer 416 enables the decoding of the encoded video sequence to be carried out in the same manner in which the video sequence was encoded.
  • the decoder buffer 416 stores the decoded frames according to their classes, and includes separate storage for different classes of the frames.
  • FIG. 5 a schematic diagram of a buffer 500, used to store a frame according to its class, is depicted, in accordance with some embodiments of the present invention.
  • the buffer 500 is a contiguous memory storage comprising storage areas for storing frames according to their classification.
  • a storage 502 stores frames belonging to class A. For example, reconstructed versions of all encoded frames belonging to class A are stored in the storage 502, designated for class A frames. Similarly, reconstructed versions of all encoded frames belonging to class B are stored in a storage 504 designated for class B frames, while reconstructed versions of all encoded frames classified as belonging to class C are stored in a storage 506 designated for class C frames
  • the method provided by the present invention offers resilient benefits similar to that of traditional scalability. This is achieved by applying Unequal Error Protection (UEP) to different classes.
  • a video delivery system employing the encoding method can transmit a video sequence to diverse clients over different transmission channels, so that the clients receive the maximum amount of error-free data.
  • UDP Unequal Error Protection
  • a video delivery system employing the encoding method can transmit a video sequence to diverse clients over different transmission channels, so that the clients receive the maximum amount of error-free data.
  • Class A frames are applied with large amounts of error protection schemes, to ensure that they are received uncorrupted over any transmission channel.
  • an error detection scheme can be applied in Class B frames, but no error detection/protection scheme is applied to Class C frames.
  • the video delivery system can transmit all the encoded frames belonging to the three classes. If a transmission channel is severely corrupted, the video delivery system can then choose to transmit only Class A frames.
  • the scalable nature of the video sequence allows a portion of the entire video to be received in a reasonably good quality.
  • the error resiliency of the encoded video sequence may be increased by introducing INTRA-coded frames in between the encoded video sequence.
  • INTRA-coded frames For example, referring to FIG. 2, consider a case where the frame Al suffers from certain errors. Subsequent frames that are encoded, using the frame Al, including frames Bl 5 Cl, C2, B2 and C3, would all also suffer from the same errors. In this event, the frame A2 is introduced as an INTRA-coded frame, to stop the propagation of errors in the proceeding frames. Therefore, in accordance with an embodiment of the invention, INTRA-coded frames can be inserted periodically at the cost of encoding efficiency, to avoid error propagation that would adversely affect the quality of the video sequence.
  • the method provided by the present invention also enables each frame in a class to act as a reset frame for a frame in a successive class.
  • all class A frames represent reset points for succeeding class B frames
  • all class B frames represent reset points for class C frames.
  • This feature increases error resiliency without incurring the additional loss of encoding efficiency that occurs when an INTRA coded frame is introduced in the video sequence.
  • These reset points serve the same purpose as INTRA-coded frames and are required when INTRA-coded frames cannot be used at regular intervals due to bitrate constraints in the transmission channel 404.
  • Various embodiments of the present invention benefit a variety of applications, including video encoding, video database, video browsing, surveillance, public safety, storage, and streaming applications.
  • the division of the video sequence into classes ensures that its delivery can be regulated by a video delivery mechanism.
  • the encoding method provided by the present invention generates a scalable video sequence that has increased error resiliency. This feature is especially useful in wireless video delivery where transmission channel errors and bitrate regulations are severe.
  • the encoding method makes a video delivery system adaptable to the different transmission channel characteristics of diverse clients
  • the video encoding methodology may be used in broadband applications, wherein a video delivery mechanism can be customized, based on the quality of service parameters, including revenue- based and priority-based deliveries, bandwidth-limited transmission, and 'trailer' mode, where only the lowest class is provided for the purpose of advertisement.
  • the video-encoding technique described herein may comprise one or more conventional processors and unique stored program instructions that control one or more processors, to implement some, most, or all of the functions described herein.
  • the functions of encoding the frame, using a buffer, and decoding the frame may be interpreted as being steps of a method.
  • the same functions could be implemented by a state machine that has no stored program instructions, in which each function, or some combinations of certain portions of the functions, are implemented as custom logic. A combination of the two approaches could be used. The methods and means of performing these functions have been described herein.
  • the terms 'comprises', 'comprising,' or any other variation thereof, are intended to cover a non-exclusive inclusion, so that a process, method, article, or apparatus that comprises a list of elements does not include only those elements but may include other elements not expressly listed or inherent in such a process, method, article or apparatus.
  • a 'set' means an empty or non-empty set (i.e., for the sets defined herein, comprising at least one member).
  • the term 'another' is defined as at least a second or more.
  • the term 'having' is defined as comprising.
  • the term 'program' is defined as a sequence of instructions designed for execution on a computer system.
  • a 'program' or 'computer program may include a subroutine, a function, a procedure, an object method, an object implementation, an executable application, an applet, a servlet, a source code, an object code, a shared library/dynamic load library, and/or other sequences of instructions designed for execution on a computer system. It is further understood that the use of relational terms, if there are any, such as first and second, top and bottom, etc., are used solely to distinguish one entity or action from another entity or action, without necessarily requiring or implying any actual relationship or order between such entities or actions.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

A method and system for encoding a video sequence is provided that generates a temporally scalable video sequence comprising a plurality of frames (See fig. 1). The method comprises classifying a frame into a suitable class (fig. 1, item 102), the suitable class being selected from a set of predefined classes (fig. 1, item 102). Once a frame is classified, it is encoded by means of a buffer (fig. 1, item 104), wherein the buffer includes separate storage for storing frames of different classes (fig. 1, item 106). A reconstructed version of the encoded frame is then stored (fig. 1, item 106) in the buffer. The method steps are iteratively repeated for each frame of the video sequence (fig. 1 item 108).

Description

METHOD AND APPARATUS FOR ENCODING A VIDEO SEQUENCE
FIELD OF THE INVENTION
[0001] The present invention relates in general to the field of video encoding, and more specifically to a video encoding method that generates a scalable video sequence.
BACKGROUND
[0002] Digital video compression is used to reduce the data rate of a source video by generating an efficient and non-redundant representation of the original source video. Video encoding techniques known in the art, including ITU-T H.26X, ISO/IEC MPEG- 1, MPEG-2, and MPEG-4 standards, perform video compression prior to transmitting the source video over a transmission channel.
[0003] Over the last decade, there has been a proliferation in the use of digital video. Currently, digital video is accessed by diverse types of clients using a variety of different systems, networks and mediums. These clients range from low bitrate, error- prone cell phone/PDAs, to cable modems connected via high-speed error-free Tl lines. Providing digital video to diverse clients necessitates flexible encoding techniques and adaptive delivery systems that service a high data rate client on an error-free channel as efficiently as a low data rate client on an error-prone channel. It is therefore important for a video encoder to generate bitstreams that are transmitted effectively to various types of clients without significant loss in compression efficiency.
[0004] Scalability is one of the main techniques employed in the art for addressing this issue of providing digital video to a diverse set of clients. The technique encodes enrichment data in additional enhancement layers that progressively result in better quality video. A scalability technique known in the art is temporal scalability, wherein enhancement layers provide progressively better temporal resolution as more layers are decoded. Scalability can also help in increasing the error resilience of the source video by applying different levels of error protection on the. different layers. While scalability has been adopted within the recent H.263 and MPEG-4 standards, it has not been adopted in many existing video-encoding standards such as the H.264/MPEG-4 AVC standard.
BRIEF DESCRIPTION OF THE DRAWINGS
[0005] The accompanying figures, where like reference numerals refer to identical or functionally similar elements throughout the separate views, and which, together with the detailed description below, are incorporated in and form a part of the specification, serve to further illustrate various embodiments and explain various principles and advantages, in accordance with the invention.
[0006] FIG. 1 is a flowchart depicting a method of encoding a video sequence, in accordance with some embodiments of the present invention;
[0007] FIG. 2 illustrates an encoding layout of the video sequence in accordance with an embodiment of the present invention;
[0008] FIG. 3 is a flow chart depicting a method for generating the video sequence, in accordance with some embodiments of the present invention;
[0009] FIG. 4 is a schematic diagram of a system for generating a video sequence, in accordance with some embodiments of the present invention; and
[0010] FIG. 5 illustrates a buffer, in accordance with some embodiments of the present invention.
[0011] Skilled artisans will appreciate that the elements in the figures are illustrated for simplicity and clarity, and have not necessarily been drawn to scale. For example, the dimensions of some of the elements in the figures may be exaggerated, relative to other elements, to help in enhancing the understanding of the embodiments of the present invention. DETAILED DESCRIPTION OF THE INVENTION
[0012] Before describing in detail a method and apparatus for encoding a video sequence, in accordance with the present invention, it should be observed that the present invention resides primarily in combinations of method steps and apparatus components related to encoding the video sequence. Accordingly, the apparatus components and method steps have been represented, where appropriate, by conventional symbols in the drawings. These drawings show only the specific details that are pertinent for an understanding of the present invention, so as not to obscure the disclosure with details that will be apparent to those with ordinary skill in the art and the benefit of the description herein.
[0013] The present invention provides a method and apparatus for encoding a video sequence, which generates a temporally scalable video sequence comprising a plurality of frames. According to an embodiment of the present invention, the method comprises classifying a frame into a suitable class, the suitable class being selected from a set of predefined classes. Once a frame is classified, it is encoded by utilizing a buffer, wherein the buffer includes separate storage for storing frames of different classes. A reconstructed version of the encoded frame is then stored in the buffer. The method steps are iteratively repeated for each frame of the video sequence.
[0014] The provided method is compliant with the H.264 video encoding standard, so that all normative H.264 decoders can accurately decode the generated bitstream. Hence, it enables temporal scalability to be employed within the H.264 standard, even though the standard itself does not explicitly support scalability. It should be noted that the present invention is not limited to the H.264 video encoding standard. All standards, using information from a previous frame and allowing for multiple frame storage, can employ this method to achieve temporal scalability.
[0015] Referring to FIG. 1 , a flow chart depicts a method for encoding a video sequence, in accordance with some embodiments of the present invention. The video sequence comprises a plurality of frames, that when presented in succession, generates a complete video. The plurality of frames is classified according to a plurality of temporal layers. The temporal layers comprise a base layer and at least one enhancement layer. The base layer represents the layer with the lowest temporal resolution, while each enhancement layer, when added to a base layer, represents a higher temporal resolution. Each temporal layer is also referred to as a class.
[0016] At step 102, a frame belonging to the video sequence is classified into a suitable class, wherein the suitable class is chosen from a set of predefined classes. The predefined classes refer to the layers (base layer and enhancement layers) defined in a particular implementation scheme.
[0017] In an embodiment, the classification of frames into classes is carried out, based on the bit rate of a transmission channel, through which the video sequence is sent and/or the desired temporal resolution of the video sequence. For example, consider a case wherein a video sequence has to be transmitted according to two frame rates. The first, at 30 frames per second (fps), is to be generated for transmission over a high bandwidth channel, and a second, at 10 fps, is to be generated for transmission over a wireless link. According to an embodiment of the present invention, every third frame of the video sequence is encoded (i.e., frames 0, 3, 6, 9, 12, 15, 18, 21, 24, 27 ...) in an exemplary class A, and the remaining frames (1, 2, 4, 5, 7, 8, 10, 11 ...) are encoded in an exemplary class B.
[0018] Alternatively, consider a case wherein two bitstreams need to be generated for the same video sequence at 2Mbps and 768Kbps, respectively. In accordance with an embodiment of the present invention, the frames are encoded in the two exemplary classes A and B. A subset of the frames is encoded in class A, to meet the 768Kbps requirement (frames 0, 5, 7, 8, 10 ...), and another subset is encoded, comprising the other frames (frames 2, 3, 6, 9 ...) at 1232Kbps.
[0019] At step 104, each frame of the video sequence is encoded using a buffer. The encoding of a frame results in the compression of the frame. The buffer includes storage for storing frames, corresponding to the classes to which the frames belong. In other words, frames belonging to different classes can be stored in designated locations within the buffer. For example, the frames classified as belonging to an exemplary class A are stored in a storage area designated for class A frames, and so on. One method to encode the frame is using the frame encoding methodology as defined in the H.264 video coding standard. In an embodiment of the invention, a buffer can be one contiguous piece of memory that is divided into different buffers for storing frames of different classes.
[0020] In accordance with an embodiment of the present invention, each frame is encoded by predicting the frame from a previously stored frame in the buffer. However, it should be noted that the first frame of the video sequence is encoded as an INTRA coded frame. An INTRA coded frame is encoded independently of any previously sent frames, and is therefore bandwidth consuming. The method of encoding frames, using stored frames in the buffer, is described in detail in conjunction with FIG. 2. The remaining frames encoded by prediction are INTER coded, since they are encoded by using previously encoded frames.
[0021] At step 106, a reconstructed version of each encoded frame is stored in the buffer. The reconstruction of an encoded frame refers to the decompression of the encoded frame. Reconstruction of INTRA frames do not require a reference frame for prediction. However, reconstruction of INTER frames do require one or more predictive frames from which a prediction of the frame currently being decoded is formed. In accordance with an embodiment of the invention, reconstructed frames from each appropriate class are stored in the appropriately designated buffers as long- term frames. A long-term frame is a frame that is stored for a long period of time in the buffer. The storage and removal of the long-term frame is signaled by commands sent within the video sequence. These commands can be sent as sequence of bits at specific times that, when received, instruct the decoding process to carry out a predefined set of buffer manipulations. In accordance with another embodiment of the invention, a frame can also be stored as a short-term frame. A short-term frame is a frame that is removed after a short period of time by either a new frame pushing the oldest short-term frame out, or by commands sent within the video sequence. Short-term frames are held for a shorter time period than long-term frames, and are used when a video sequence is to be sent in short intervals. A buffer, storing one or more long-term frames, is hereinafter referred to as a long-term buffer, and a buffer storing one or more short-term frames is referred to as a short-term buffer.
[0022] At step 108, it is determined if there are any frames remaining in the video sequence that need to be encoded. If there is a frame that has to be encoded, steps 102 to 108 are repeated. The stopping criteria is particular to the encoding scenario and can be based upon the desired bitrate, frame rate, or other factors that go into how the layers , or classes, are structured.
[0023] In accordance with an embodiment of the present invention, all the frames of the encoded video sequence can be stored at a single location, such as a database connected to a video server. This enables the video server to transmit the encoded video sequence later to various clients.
[0024] In accordance with another embodiment of the present invention, the maximum number of classes, and the method of classifying the frames, may be decided on prior to the encoding process, or during the encoding process. The maximum number of classes is dependent on the size of the buffer, and the number of frames per class held in the buffer. For instance, if N long-term buffers and at least one short-term buffer are available, and only one frame per class is held in the long-term buffer, the maximum number of classes allowed is N+l .
[0025] The working of the encoding method is described hereinafter with the help of an example. Referring to FIG. 2, an exemplary encoding layout of a video sequence is shown, in accordance with an embodiment of the invention. The frames of the video sequence are classified as belonging to one of the classes A, B or class C. In accordance with an embodiment of the invention, class A provides the lowest temporal resolution to the video sequence, and consequently requires the lowest bitrate for transmission. Class B enhances Class A's temporal resolution by adding more frames. However, as the temporal resolution of the frames increase, the required bitrate to transmit the encoded frames also increases. Finally, adding Class C frames to the class A and class B frames provides maximum resolution to the video sequence at the highest bitrate.
[0026] Consider a first frame 1 of the video sequence. Since the frame 1 is the first frame of the video sequence, it is encoded as an INTRA coded frame, classified as belonging to class A and referred to as frame Al . After encoding, the frame Al is stored as a long-term frame in the long-term buffer known to contain class A prediction frames. The next source frame is a frame 2 that has been classified as belonging to class B and is referred to as frame Bl . As the frame Bl is the first Class B frame, it can either be encoded as an INTRA frame, or predicted by using the frame AL A frame that is used for the prediction of a successive frame is hereinafter referred to as a predictor frame. If the frame Bl is encoded as an INTRA frame, the dependency of frames in class B frames on class A frames is done away with, at a higher cost to compression efficiency. However, in accordance with an embodiment of the present invention, the frame Bl is encoded as an INTER frame, using the frame Al as the predictor frame. Once the frame Bl is encoded, a reconstructed version of the frame Bl is stored as a long-term frame in the buffer in the storage area designated for class B frames.
[0027] The next frame in the video sequence, frame 3, is classified as belonging to class C and referred to as frame Cl. The frame Cl is encoded as an INTER frame, using frame Bl as the predictor frame. The frame Al can also be used as a predictor frame, but is less efficient, since the frame Bl is temporally closer to the frame Cl. After the frame Cl is encoded, it is stored as a long-term frame in the buffer designated for class C frames. The frames Al and Bl, belonging to classes A and B, respectively, and residing in the buffer, remain unaltered.
[0028] In accordance with an embodiment of the invention, frame 4 in the video sequence, referred to as frame C2, is predicted by using the frame Cl, and is classified as belonging to class C. After being encoded, the frame C2 is stored as a long-term frame in the storage area designated for Class C frames in the buffer. This process is repeated in a similar fashion for the subsequent frames, i.e., frames B2, C3, A2, B3, C4, B4, C5, A3, B5 and C6.
[0029] In accordance with an alternative embodiment of the invention, if the buffer's size restrictions do not allow for multiple long-term frames from the same class to be stored, the previous long-term frame from a class is removed, to allow the current frame of the same class to be stored in the buffer. For instance, the frame Cl may be removed from the buffer and replaced with the frame C2, if the buffer cannot store more than one frame in a storage area designated for a class.
[0030] In accordance with an embodiment of the invention, a predictor frame must belong to the same or previous class of frame that is being predicted, and must be available in the buffer. A frame belonging to a class is not dependent on a frame in any subsequent classes. For example, frame 5 in the video sequence, classified as belonging to class B and referred to as the frame B2, is encoded by using the frame Bl instead of the temporally closer frame C2. In accordance with an alternative embodiment of the present invention, the frame B2 is encoded by using the frame Al for prediction, since the frame A2 belongs to a previous class and is available in the buffer. Therefore, a class B frame requires that the predictor frame is either in class B or in class A. The prediction of a frame belonging to class B is independent of any class C frame. Likewise, all frames from class A require only previous class A frames for encoding. Accordingly, frame 7 in the video sequence, referred to as frame A2, is predicted using the frame Al, and stored in the buffer in the storage area designated for class A frames. In accordance with an embodiment of the invention, frame 8, referred to as frame B3, is predicted by using the frame A2, since it is closer than the frame B2.
[0031] Similarly, frame 9 of the video sequence, referred to as frame C4, is predicted by using the frame B3 rather than the frame C3, since the frame B3 represents a temporally closer frame. In accordance with an alternative embodiment of the present invention, the frame C4 is predicted by using the frame C3, which lies in the same class, i.e., class C. This is indicated by the lines connecting the frames C4 and C3. However, predicting a frame by using a frame that is not temporally closer, but from the same class, satisfies the requirements of the method, in accordance with the invention, but may lead to lower encoding efficiency and decreased error resilience.
[0032] Referring to FIG. 3, a flow chart depicts a general method for generating a video sequence, in accordance with some embodiments of the present invention. Generating the video sequence includes encoding the video sequence at the sender end, transmitting the video sequence through a transmission channel, and decoding the transmitted video sequence at the receiver end.
[0033] At step 302, each frame of the video sequence is encoded according to the method described with reference to FIG. 1. The encoding is carried out at the sender end, from where the encoded video sequence is sent. At step 304, the encoded video sequence is transmitted over a transmission channel to the receiver end, which refers to the end where the decoding of the encoded video sequence takes place. In accordance with an embodiment of the present invention, the transmission channel is characterized by a certain bitrate, at which the encoded video sequence is transmitted, and the channel error profile. The channel error profile is a profile of the errors that occur during transmission of the video sequence over the transmission channel.
[0034] At step 306, a buffer regulation data is transmitted to the receiver end. The buffer regulation data includes information regarding regulation of the buffer storing the encoded frames. The buffer regulation data enables decoding of the encoded video sequence, to be carried out accurately at the receiver end. The buffer regulation data includes information about how the buffer is manipulated during the encoding process at step 302. For example, buffer regulation data may include information about initializing/ configuring the buffer, altering the status of the buffer from a long-term buffer to a short-term buffer, and labeling a long-term buffer as being used or empty. The buffer regulation data includes buffer commands (related to manipulation of the buffer) that are transmitted to the receiver end, so that decoding can be carried out. Signaling of the buffer commands can be sent within the bitstream of the encoded video sequence, or communicated by external means as independent commands sent independently of the video sequence. A signaling methodology that allows sending the buffer regulation data is an integral part of the H.264 video encoding standard. In the H.264 video encoding standard, long-term and short-term buffers can be precisely regulated by the use of commands sent in the bitstream belonging to the encoded video sequence.
[0035] At step 308, the transmitted video sequence is decoded at the receiver end, using a decoder buffer. The decoder buffer is configured according to the buffer regulation data received at the receiver end. The buffer commands included in the buffer regulation data are applied to the decoder buffer during the decoding process. Therefore, the decoder buffer state enables the accurate decoding of the encoded video sequence to be carried out, in the same manner in which the video sequence was encoded. The decoder buffer also stores the decoded frames according to their classification, and includes separate storage for different classes of the frames.
[0036] It should be noted that the transmission of video sequence refers to sending the encoded video sequence from the sender end to the receiver end. The sender end and the receiver end may be located at the same physical location or at different physical locations. Hence, in accordance with an alternative embodiment of the present invention, the encoded video sequence may be stored locally on a computer or a data processing device. Thereafter, one or more classes of the encoded video sequence can be decoded and played back, depending on the speed of the computer's processor and/or its computational or memory capacity.
[0037] Referring to FIG. 4, a schematic diagram of a system 400 for generating a video sequence is shown, in accordance with some embodiments of the present invention. The system 400 includes a video encoder 402 located at a sender end, a video decoder 404 located at a receiver end, and a transmission channel 406. The video encoder 402 encodes the video sequence according to the method described with reference to FIG. 1. The video encoder 402 comprises a means for classifying 408, a means for encoding 410, and a buffer 412. The means for classifying 408 is used to classify each frame of the video sequence into a suitable class, according to the method described with reference to FIG. 1. The means for encoding 410 encodes the frame by predicting the frame, using a predictor frame stored in the buffer 412. The buffer 412 enables the encoded frame to be stored according to the class to which the encoded frame belongs.
[0038] The encoded video sequence is transmitted through the transmission channel 406, which carries the encoded video sequence to the video decoder 404, located at a receiver end. Additionally, a buffer regulation data, as described with reference to FIG. 3, is also sent through the transmission channel 406. The transmission channel 406 may be among any transmission technologies that can enable transmission of the video sequence including fiber optic lines, coaxial networking cable, a wireless link, or a dedicated digital line such as Tl or T3.
[0039] The video decoder 404 decodes the transmitted video sequence according to the method described with reference to FIG. 3. The video decoder 404 comprises a means for decoding 414 and a decoder buffer 416. The means for decoding 414 decodes the transmitted video sequence according to the method described with reference to FIG. 3, using the buffer regulation data sent from the video encoder 402. Therefore, the decoder buffer 416 enables the decoding of the encoded video sequence to be carried out in the same manner in which the video sequence was encoded. The decoder buffer 416 stores the decoded frames according to their classes, and includes separate storage for different classes of the frames.
[0040] Referring to FIG. 5, a schematic diagram of a buffer 500, used to store a frame according to its class, is depicted, in accordance with some embodiments of the present invention. The buffer 500 is a contiguous memory storage comprising storage areas for storing frames according to their classification. A storage 502 stores frames belonging to class A. For example, reconstructed versions of all encoded frames belonging to class A are stored in the storage 502, designated for class A frames. Similarly, reconstructed versions of all encoded frames belonging to class B are stored in a storage 504 designated for class B frames, while reconstructed versions of all encoded frames classified as belonging to class C are stored in a storage 506 designated for class C frames
[0041] The method provided by the present invention offers resilient benefits similar to that of traditional scalability. This is achieved by applying Unequal Error Protection (UEP) to different classes. A video delivery system employing the encoding method can transmit a video sequence to diverse clients over different transmission channels, so that the clients receive the maximum amount of error-free data. For example, consider an encoded video sequence, in which the encoded frames are classified into three classes — A (base layer), B (enhancement layer) and C (enhancement layer). Class A frames are applied with large amounts of error protection schemes, to ensure that they are received uncorrupted over any transmission channel. Similarly, an error detection scheme can be applied in Class B frames, but no error detection/protection scheme is applied to Class C frames. If a transmission channel is error-free, the video delivery system can transmit all the encoded frames belonging to the three classes. If a transmission channel is severely corrupted, the video delivery system can then choose to transmit only Class A frames. The scalable nature of the video sequence allows a portion of the entire video to be received in a reasonably good quality.
[0042] In an embodiment of the present invention, the error resiliency of the encoded video sequence may be increased by introducing INTRA-coded frames in between the encoded video sequence. For example, referring to FIG. 2, consider a case where the frame Al suffers from certain errors. Subsequent frames that are encoded, using the frame Al, including frames Bl5 Cl, C2, B2 and C3, would all also suffer from the same errors. In this event, the frame A2 is introduced as an INTRA-coded frame, to stop the propagation of errors in the proceeding frames. Therefore, in accordance with an embodiment of the invention, INTRA-coded frames can be inserted periodically at the cost of encoding efficiency, to avoid error propagation that would adversely affect the quality of the video sequence.
[0043] The method provided by the present invention also enables each frame in a class to act as a reset frame for a frame in a successive class. For example, in FIG. 2, all class A frames represent reset points for succeeding class B frames, and all class B frames represent reset points for class C frames. This feature increases error resiliency without incurring the additional loss of encoding efficiency that occurs when an INTRA coded frame is introduced in the video sequence. These reset points serve the same purpose as INTRA-coded frames and are required when INTRA-coded frames cannot be used at regular intervals due to bitrate constraints in the transmission channel 404.
[0044] Various embodiments of the present invention benefit a variety of applications, including video encoding, video database, video browsing, surveillance, public safety, storage, and streaming applications. The division of the video sequence into classes ensures that its delivery can be regulated by a video delivery mechanism. The encoding method provided by the present invention generates a scalable video sequence that has increased error resiliency. This feature is especially useful in wireless video delivery where transmission channel errors and bitrate regulations are severe. In addition, the encoding method makes a video delivery system adaptable to the different transmission channel characteristics of diverse clients
[0045] Further, the video encoding methodology may be used in broadband applications, wherein a video delivery mechanism can be customized, based on the quality of service parameters, including revenue- based and priority-based deliveries, bandwidth-limited transmission, and 'trailer' mode, where only the lowest class is provided for the purpose of advertisement.
[0046] It will be appreciated that the video-encoding technique described herein may comprise one or more conventional processors and unique stored program instructions that control one or more processors, to implement some, most, or all of the functions described herein. As such, the functions of encoding the frame, using a buffer, and decoding the frame, may be interpreted as being steps of a method. Alternatively, the same functions could be implemented by a state machine that has no stored program instructions, in which each function, or some combinations of certain portions of the functions, are implemented as custom logic. A combination of the two approaches could be used. The methods and means of performing these functions have been described herein.
[0047] In the foregoing specification, the present invention and its benefits and advantages have been described with reference to specific embodiments. However, one with ordinary skill in the art will appreciate that various modifications and changes can be made, without departing from the scope of the present invention, as set forth in the claims. Accordingly, the specification and figures are to be regarded in an illustrative rather than a restrictive sense, and all such modifications are intended to be included within the scope of the present invention. The benefits, advantages, solutions to problems, and any element(s) that may cause any benefit, advantage or solution to occur or become more pronounced are not to be construed as a critical that is required, or essential features or elements of any or all of the claims.
[0048] As used herein, the terms 'comprises', 'comprising,' or any other variation thereof, are intended to cover a non-exclusive inclusion, so that a process, method, article, or apparatus that comprises a list of elements does not include only those elements but may include other elements not expressly listed or inherent in such a process, method, article or apparatus.
[0049] A 'set', as used herein, means an empty or non-empty set (i.e., for the sets defined herein, comprising at least one member). The term 'another', as used herein, is defined as at least a second or more. The term 'having', as used herein, is defined as comprising. The term 'program', as used herein, is defined as a sequence of instructions designed for execution on a computer system. A 'program' or 'computer program" may include a subroutine, a function, a procedure, an object method, an object implementation, an executable application, an applet, a servlet, a source code, an object code, a shared library/dynamic load library, and/or other sequences of instructions designed for execution on a computer system. It is further understood that the use of relational terms, if there are any, such as first and second, top and bottom, etc., are used solely to distinguish one entity or action from another entity or action, without necessarily requiring or implying any actual relationship or order between such entities or actions.

Claims

1. A method for encoding a video sequence, the video sequence comprising a plurality of frames, the method comprising iteratively performing the following for each frame:
classifying the frame into a suitable class, the suitable class being chosen from a set of predefined classes;
encoding the frame using a buffer, the buffer including separate storage for storing frames of different classes; and
storing a reconstructed version of the encoded frame in the buffer.
2. The method according to claim 1, wherein the buffer includes storage for at least one long-term frame.
3. The method according to claim 1, wherein the buffer includes storage for at least one short-term frame.
4. The method according to claim 1, wherein encoding the frame is implemented according to INTRA coding.
5. The method according to claim 1, wherein encoding the frame is implemented according to INTER coding.
6. The method according to claim 5, wherein encoding the frame comprises predicting the frame using a previously encoded frame stored in the buffer, the previously encoded frame being related to either the suitable class or a previous class..
7. The method according to claim 6, wherein the previously encoded frame is temporally closest to the frame.
8. The method according to claim 1, wherein the classification of the frame into a suitable class is performed using at least one of a desired temporal resolution of the video sequence and a desired bitrate for the different classes.
9. An apparatus suitable for encoding a video sequence, the video sequence comprising a plurality of frames, the video encoder comprising:
means for classifying each frame into a suitable class, the suitable class being chosen from a set of predefined classes;
means for encoding the frame using a buffer, the buffer including separate storage for storing frames of different classes; and
means for storing a reconstructed version of the encoded frame in the buffer.
10. The apparatus according to claim 9, wherein the number of predefined classes depends on at least one of:
capacity of the buffer; and
number of frames per class held in the buffer.
PCT/US2005/046328 2005-01-18 2005-12-16 Method and apparatus for encoding a video sequence Ceased WO2006078406A2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/038,318 2005-01-18
US11/038,318 US20060159352A1 (en) 2005-01-18 2005-01-18 Method and apparatus for encoding a video sequence

Publications (2)

Publication Number Publication Date
WO2006078406A2 true WO2006078406A2 (en) 2006-07-27
WO2006078406A3 WO2006078406A3 (en) 2007-12-21

Family

ID=36683952

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2005/046328 Ceased WO2006078406A2 (en) 2005-01-18 2005-12-16 Method and apparatus for encoding a video sequence

Country Status (2)

Country Link
US (1) US20060159352A1 (en)
WO (1) WO2006078406A2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017041248A1 (en) * 2015-09-09 2017-03-16 华为技术有限公司 Data processing method, base station and terminal device

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100145794A1 (en) * 1999-10-21 2010-06-10 Sean Barnes Barger Media Processing Engine and Ad-Per-View
JP4978575B2 (en) * 2008-06-25 2012-07-18 富士通株式会社 Image coding method and image coding program in thin client system
CN102318203B (en) * 2008-11-12 2014-10-08 汤姆逊许可证公司 Method and equipment used for encoding video frame containing light change
CN102217315B (en) * 2008-11-12 2016-03-09 汤姆森特许公司 I-frame deflickering for parallel multi-threaded video coding of groups of pictures
CN102217308B (en) * 2008-11-13 2014-10-22 汤姆森特许公司 Multithreaded Video Encoding Using Frame Merging and Bit Allocation
US9277228B2 (en) 2011-07-18 2016-03-01 Qualcomm Incorporated Adaptation parameter sets for video coding
US9992502B2 (en) * 2016-01-29 2018-06-05 Gopro, Inc. Apparatus and methods for video compression using multi-resolution scalable coding
US10291910B2 (en) 2016-02-12 2019-05-14 Gopro, Inc. Systems and methods for spatially adaptive video encoding
US10163030B2 (en) 2016-05-20 2018-12-25 Gopro, Inc. On-camera image processing based on image activity data
US10198862B2 (en) 2017-01-23 2019-02-05 Gopro, Inc. Methods and apparatus for providing rotated spherical viewpoints
CN119052469A (en) * 2019-01-28 2024-11-29 Op方案有限责任公司 On-line and off-line selection to extend long-term reference picture preservation

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3642492A1 (en) * 1986-12-12 1988-06-23 Bosch Gmbh Robert METHOD AND CIRCUIT ARRANGEMENT FOR REDUCING THE DATA RATE OF DIGITALIZED IMAGES
GB9022326D0 (en) * 1990-10-15 1990-11-28 British Telecomm Signal coding
US5253058A (en) * 1992-04-01 1993-10-12 Bell Communications Research, Inc. Efficient coding scheme for multilevel video transmission
US5734432A (en) * 1994-07-15 1998-03-31 Lucent Technologies, Inc. Method of incorporating a variable rate auxiliary data stream with a variable rate primary data stream
US6957350B1 (en) * 1996-01-30 2005-10-18 Dolby Laboratories Licensing Corporation Encrypted and watermarked temporal and resolution layering in advanced television
ATE189353T1 (en) * 1996-04-18 2000-02-15 Nokia Mobile Phones Ltd VIDEO DATA ENCODER AND DECODER
US6546143B1 (en) * 1999-03-12 2003-04-08 Hewlett-Packard Development Company Efficient wavelet-based compression of large images
US7088854B2 (en) * 2001-04-25 2006-08-08 Cotman Carl W Method and apparatus for generating special-purpose image analysis algorithms
JP3737385B2 (en) * 2001-06-07 2006-01-18 富士通株式会社 Optimization path setting method and network management system using the same
US7203346B2 (en) * 2002-04-27 2007-04-10 Samsung Electronics Co., Ltd. Face recognition method and apparatus using component-based face descriptor
KR100591754B1 (en) * 2003-06-11 2006-06-22 삼성전자주식회사 Image processing device and method for reverse playback of digital video stream

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017041248A1 (en) * 2015-09-09 2017-03-16 华为技术有限公司 Data processing method, base station and terminal device

Also Published As

Publication number Publication date
WO2006078406A3 (en) 2007-12-21
US20060159352A1 (en) 2006-07-20

Similar Documents

Publication Publication Date Title
US6499060B1 (en) Media coding for loss recovery with remotely predicted data units
AU2007350974B2 (en) A video coder
US7773675B2 (en) Method for decoding a video signal using a quality base reference picture
US9042669B2 (en) Method and apparatus to prioritize video information during coding and decoding
US20090041130A1 (en) Method of transmitting picture information when encoding video signal and method of using the same when decoding video signal
US8638851B2 (en) Joint bandwidth detection algorithm for real-time communication
CN101669370A (en) Inter-view prediction with downsampled reference pictures
US20060159352A1 (en) Method and apparatus for encoding a video sequence
WO2008042782A1 (en) Request bits estimation for a wyner-ziv codec
US20130251031A1 (en) Method for bit rate control within a scalable video coding system and system therefor
JP2007520950A (en) Spatial and SNR Fine Granular Scalable Video Coding and Transmission Method
US20110216821A1 (en) Method and apparatus for adaptive streaming using scalable video coding scheme
CN101513068B (en) Redundancy encoding method, device and method for producing code, and method for receiving code
KR20130114720A (en) System and method for mitigating the cliff effect for content delivery over a heterogeneous network
AU2016203305A1 (en) Method, apparatus and system for encoding and decoding video data
US20100215099A1 (en) Multiple quality image contents service system and update method thereof
KR20110052527A (en) Image coding / decoding method and apparatus for adaptively assigning codewords to syntax elements
AU2006298012A1 (en) Method for decoding a video signal
Yu et al. Time utility function based packet scheduling algorithm for streaming scalable media
Arrifano Robust Video Coder Solution for Wireless Streaming: Applications in Gaussian Channels

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application
NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 05854962

Country of ref document: EP

Kind code of ref document: A2