The present invention relates generally to video coding and, more particularly, to scalable video coding.
Fine Granularity Scalability (FGS) has recently been added to the MPEG-4 AVC video coding standard in order to increase the flexibility of video coding. With FGS coding, the video is encoded into a base layer (BL) and one or more enhancement layers or FGS layers, as shown in
It is known that the colors in video data can be represented by a mixture of three primary colors of R, G, B. However, various equivalent color spaces are also possible. Many important color spaces comprise a luminance component (Y) and two chrominance components (U, V). Truncation can be related to the color space representation.
In some scenarios, it is desirable to transmit an encoded digital video sequence at some minimum or “base” quality, and in concert transmit an “enhancement” signal that may be combined with the minimum quality signal in order to yield a higher-quality decoded video sequence. Such an arrangement simultaneously allows arbitrary devices supporting some set of minimum capabilities to decode the sequence (at the “base” quality), and those with improved capabilities to decode a higher-quality version of the same sequence, without incurring the increased cost associated with transmitting two independently coded versions of the same sequence.
Should more than two levels of quality be desired, multiple “enhancement” signals can be transmitted, each requiring the “base” quality signal plus all lower-quality “enhancement” signals.
Such “base” and “enhancement” signals are referred to as “layers” in the field of scalable video coding, and the degree to which each enhancement layer improves the reconstructed quality is referred to as the “granularity”. The acronym FGS indicates “fine granularity scalability”, meaning that the incremental quality increases are small.
Techniques for producing FGS enhancement layers are known, and in the context of the current SVC standardization, a block-based FGS scheme was initially documented in ISO/IEC JTC1/SC29/WG11, “Scalable Video Model Version 3.0”, MPEG Document w6716, Palma de Mallorca, October 2004. This coding scheme was later replaced by an improved coding scheme called “cyclic block coding” which can efficiently utilize base layer coded information in the current layer FGS coding to improve coding performance.
According to cyclic block coding scheme, a prediction residual coefficient can be coded as one of the two kinds: significant information or refinement information. From the base layer, if a coefficient has a reconstructed value of zero, it is called non-significant coefficient. Otherwise, it is called significant coefficient. Based on the coefficients coded in base layer, the first FGS layer can be coded. In the first FGS layer coding, a non-significant coefficient from the base layer will be checked again to see whether it becomes significant (i.e. has a reconstructed value of non-zero) at the current FGS layer. If it does, then its magnitude and sign are coded. Otherwise, it is still classified as non-significant. For a significant coefficient from the base layer, it is further refined based on the current FGS layer quantization parameter (QP). Once the first FGS layer is coded, it serves as base layer and the second FGS layer can be coded and so on. Once a coefficient becomes significant at a certain layer, it will be refined just at each following higher FGS layer.
In terms of coding order, the cyclic block coding generally codes the significant information first followed by the refinement information. More specifically, for coding each FGS layer of a slice, there are two passes: significant pass and refinement pass. In the significant pass, only those non-significant coefficients from base layer are checked to see if they become significant in the current layer. If they do, then code their magnitudes and signs. Significant pass ends once all non-significant coefficients from base layer have been checked. In the following refinement pass, all those significant coefficients from base layer are being refined according to current FGS layer QP.
The more detailed procedure of the cyclic block coding can be described with the following pseudo-code.
While values remain to be decoded
The cyclic block coding is found to work well when there is no temporal prediction used in coding FGS layers. An example is shown in
In order to further improve coding efficiency in FGS layer coding, various kinds of methods have been recently proposed that utilize temporal prediction in FGS layer coding as well. In these methods, new (or refined) motion vectors may be introduced and separate motion compensation may be performed for FGS layer. With careful design, these methods can effectively improve FGS layer coding efficiency. However, they also create a new issue that is related to the currently used cyclic block coding.
An example is shown in
As described above, if no temporal prediction is used in FGS layer coding, R0 would be used as prediction in coding the FGS layer. In this case, cyclic block coding is found to work well. However, when temporal prediction at the FGS layer is used, there will be a problem with cyclic block coding.
In cyclic block coding, the FGS layer is further coded and refined on top of the base layer. In order to utilize temporal prediction at the FGS layer, the prediction for coding FGS layer of frame n would become P1+D0 according to
Due to the issue mentioned above, the separate “pass” in cyclic block coding is no longer suitable. If, at the beginning of the FGS layer, all decoded information belongs to significant information, we can expect that the quality of P1 will get better gradually when more FGS layer bits are decoded. Accordingly, the difference between P0 and P1 is also getting larger. However, at this time, refinement information may not have been decoded yet. Without refinement information at the FGS layer, the difference between P0 and P1 cannot be compensated appropriately for those significant coefficients from the base layer. This will result in the drift problem which can significant affect coding performance in case of partial FGS layer decoding.
On the other hand, if the refinement pass is coded before the significant pass, there may also be a problem. At the beginning of decoding the FGS layer, decoded information all belongs to refinement information. The compensation for the difference between P0 and P1 is available. However, such compensation is for the case when the FGS layer is fully decoded. When only a small portion of the FGS layer is decoded, the temporal prediction formed in this case, P1, is close to P0 in terms of picture quality. Therefore, the decoded refinement information may over-compensate the difference between P1 and P0. This may also result in the drift problem which affects coding performance in case of partial FGS layer decoding.
The case shown in
Another example would be the decoder-oriented two-loop structure disclosed in U.S. Patent Application Attorney Docket No. 944-001.177-2, filed even date herewith (hereafter referred to as 944-001.177-2). The structure is shown in
For the second FGS layer, an initial prediction, P2′, is first calculated according to the same FGS coding method, but the discrete base layer is used as the “base layer” and the second FGS layer is used as the “enhancement layer”. P2′ is then added with the first FGS layer reconstructed residual D1 (which is indicated with hollow arrow in
P2=P2′+α*D1
where α is a parameter with 0≦α≦1. Similarly, for the third FGS layer, an initial prediction, P3′, is first calculated according to the same FGS coding method, but the discrete base layer is used as the “base layer” and the third FGS layer is used as the “enhancement layer”. P3′ is then added with both the first and the second FGS layer reconstructed residual D1 and D2 and the sum, P3, is used as actual prediction.
P3=P3′+α*D1+β*D2
where β is also a parameter and 0≦β≦1. β can either be the same as or different from α. Usually both α and β may be set as 1.
With such a coding structure, refinement coefficients at the second FGS layer (except those that are significant in a discrete base layer) may have different prediction from its base layer. The situation is also true for refinement coefficients at the third FGS layer. For that reason, cyclic block coding may not be suitable for coding those FGS layers.
The present invention provides an FGS entropy coding method that is suitable for the case when the refinement coefficients at the FGS layer have different prediction from its base layer. When temporal prediction is used in FGS layer coding and the refinement coefficients at the FGS layer have different prediction from its base layer, drift problem may be caused if the FGS layer is partially decoded. Such drift problem may significantly affect coding performance. The present invention provides a new FGS entropy coding method that can solve or greatly alleviate such drift effect and therefore improve coding performance.
Three different FGS methods can be used: FGS entropy coding based on spatial frequency location; FGS entropy coding for decoder oriented two-loop structure; and FGS entropy coding with block-confined coding pass. In the first method, the drift problem is essentially caused by the separate “pass” coding order in the cyclic block coding method. No matter which pass is coded first, the drift problem cannot be avoided in case of partial decoding of FGS layer. Thus, the significant information and the refinement information are no longer coded in separate “pass” in order to solve the above-described problem. Instead, they are coded in an interleaved or mixed order. With the second method, it can be guaranteed that the coefficients that become significant in the base layer have the same prediction at the enhancement layer. Therefore, further refinement of those coefficients at the enhancement layer does not include any compensation of the predictor difference. Thus, refinement information of those coefficients only helps improve picture quality without introducing any drift effect. With the third method, the significant coding pass is confined in a block. For a given block, once all the significant information in the block is coded, the significant pass can be considered as finished for the block and therefore the coding of refinement information in the block can be started.
Thus, the first aspect of the present invention is a method of entropy coding for use in encoding a digital video sequence included in image data, the digital video sequence comprising a number of frames, each frame of said sequence comprising an array of pixels divided into a plurality of blocks. The method comprises:
forming a plurality of blocks of transform coefficients representing the enhancement layer information from the image data;
scanning said plurality of blocks of transform coefficients in multiple coding cycles based on a predetermined order;
selecting in each cycle a subset of transform coefficients from each of said plurality of blocks; and
entropy encoding said selected subset of transform coefficients based on the predetermined order.
The second aspect of the present invention is a method entropy coding for use in decoding a digital video sequence included in image data, the digital video sequence comprising a number of frames, each frame of said sequence comprising an array of pixels divided into a plurality of blocks. The method comprises:
forming a plurality of blocks for storing transform coefficients representing the enhancement layer information from the image data;
scanning said plurality of blocks for storing transform coefficients in multiple coding cycles based on a predetermined order;.
selecting in each cycle a subset of transform coefficients to be decoded for each of said plurality of blocks; and
entropy decoding said selected subset of transform coefficients in each of said plurality of blocks based on the predetermined order.
According to the present invention, the selecting in encoding or decoding is at least based on spatial frequency location of each coefficient in a block, or is performed in a way such that significant coefficients in the block are selected prior to refinement coefficients in the block.
According to the present invention, the transform coefficients include refinement coefficients that are significant in a discrete base layer and remaining coefficients, and the selecting from each block is performed in a way such that refinement coefficients that are significant in discrete base layer are selected first and the remaining coefficients are selected in an order based on their spatial frequency location.
A third aspect of the present invention is an entropy encoder for use in encoding a digital video sequence included in image data, the digital video sequence comprising a number of frames, each frame of said sequence comprising an array of pixels divided into a plurality of blocks. The encoder comprises:
a module for forming a plurality of blocks of transform coefficients representing the enhancement layer information from the image data;
a module for scanning said plurality of blocks of transform coefficients in multiple coding cycles based on a predetermined order;
a module for selecting in each cycle a subset of transform coefficients from each of said plurality of blocks; and
a module for entropy encoding said selected subset of transform coefficients based on the predetermined order, wherein the selecting module is adapted to select the subset of transform coefficients at least based on spatial frequency location of each coefficient in a block, or to select the subset of transform coefficients from each block in a way such that significant coefficients in the block are selected prior to refinement coefficients in the block, or to select the transform coefficients from each block in a way such that refinement coefficients that are significant in discrete base layer are selected first and the remaining coefficients are selected in an order based on their spatial frequency location.
A fourth aspect of the present invention is a decoder for use in decoding a digital video sequence included in image data, the digital video sequence comprising a number of frames, each frame of said sequence comprising an array of pixels divided into a plurality of blocks. The decoder comprises:
a module for forming a plurality of blocks for storing transform coefficients representing the enhancement layer information from the image data;
a module for scanning said plurality of blocks for storing transform coefficients in multiple coding cycles based on a predetermined order;
a module for selecting in each cycle a subset of transform coefficients to be decoded for each of said plurality of blocks; and
a module for entropy decoding said selected subset of transform coefficients in each of said plurality of blocks based on the predetermined order.
The fifth aspect of the present invention is a software application product comprising a computer readable storage medium having software application for use in entropy encoding in scalable video coding, said software application having program codes for carrying out the encoding method as described above.
The sixth aspect of the present invention is a software application product comprising a computer readable storage medium having software application for use in entropy decoding in scalable video coding, said software application having program codes for carrying out the decoding method as described above.
The seventh aspect of the present invention is an electronic device, such as a mobile terminal, comprising an encoder and a decoder for use in encoding and decoding a digital video sequence included in image data, as described above.
The present invention provides an FGS entropy coding method that is suitable for the case when the refinement coefficients at the FGS layer have different prediction from its base layer.
Three different FGS entropy coding methods can be used as follows.
When temporal prediction is used in FGS layer coding and the refinement coefficients at the FGS layer have different prediction from its base layer, drift problem may be caused if the FGS layer is partially decoded. Such drift problem may significantly affect coding performance. The present invention provides a new FGS entropy coding method that can solve or greatly alleviate such drift effect and therefore improve coding performance.
FGS Entropy Coding Based on Spatial Frequency Location
As explained earlier, the drift problem is essentially caused by the separate “pass” coding order in the cyclic block coding method. No matter which pass is coded first, the drift problem cannot be avoided in case of partial decoding of FGS layer.
According to the present invention, the significant information and the refinement information are no longer coded in separate “pass” in order to solve the above-described problem. Instead, they are coded in an interleaved or mixed order. For instance, they can be coded according their spatial frequency location, which is also the coefficient scanning order as defined in H.264. For the whole frame (or slice in H.264), blocks can still be coded in a cyclic manner. Accordingly, after coding the first coefficient of the first block, the first coefficient of the second block is coded, and the coding moves to the third block and so on. Once the first coefficient of every block is coded in the current slice, start with the first block again and code the second coefficient in the block; code the second coefficient of the second block; and then move to the third block and so on. Such a process is repeated until all the coefficients in every block are coded.
Compared with the current cyclic block coding method, the method, according to the present invention, changes the coding order. There is no change in how a significant/non-significant coefficient is coded or how an already significant coefficient is refined. If there is a non-significant coefficient currently to be coded, coding this coefficient may end up with coding an end-of-block symbol or a series of non-significant coefficients followed by a significant coefficient. In either case, the coded non-significant and significant coefficients along the scanning pass are all marked as “decoded” so that if later a coefficient to be coded is already marked, nothing is coded and the processing is simply moved to the next block.
Such a coding order can be expressed with the following pseudo-code.
For each luma scanning index and chroma scanning index
As mentioned earlier, a decoder-oriented two-loop structure is disclosed in 944-001.177-2. The structure as shown in
With this FGS coding method it can be guaranteed that the coefficients that become significant in the base layer have the same prediction at the enhancement layer. Therefore, further refinement of those coefficients at the enhancement layer does not include any compensation of the predictor difference. Thus, refinement information of those coefficients only helps improve picture quality without introducing any drift effect.
For the second FGS layer in
Based on such analysis, a special FGS entropy coder can be designed for coding the second and third FGS layer when using the coding structure as shown in
Such a coding order can be expressed with the following pseudo-code.
For each luma scanning index and chroma scanning index
FGS entropy coding can also be designed according to the following pseudo-code.
While values remain to be decoded
From the pseudo-code, we can see that, in this method, the significant coding pass is confined in a block. For a given block, once all the significant information in the block is coded, the significant pass can be considered as finished for the block and therefore the coding of refinement information in the block can be started. According to this method, it is possible for the refinement information of one block to be coded earlier than the significant information of another block for the same color component. In contrast, in the cyclic block coding method, the refinement information for a certain color component is not coded until the significant information of all blocks in a slice is coded. Thus, to some extent, such FGS entropy coding with block-confined coding pass can also offer interleaved coding of significant information and refinement information of an FGS frame (or slice).
Overview of the FGS Coder
As can be seen from the block diagrams, the FGS coder is a 2-loop video coder with an additional “reference block formation module”.
The mobile device 10 may communicate over a voice network and/or may likewise communicate over a data network, such as any public land mobile network (PLMN) in form of e.g. digital cellular networks, especially GSM (global system for mobile communication) or UMTS (universal mobile telecommunications system). Typically the voice and/or data communication is operated via an air interface, i.e. a cellular communication interface subsystem in cooperation with further components (see above) to a base station (BS) or node B (not shown) being part of a radio access network (RAN) of the infrastructure of the cellular network. The cellular communication interface subsystem as depicted illustratively in
After any required network registration or activation procedures, which may involve the subscriber identification module (SIM) 210 required for registration in cellular networks, have been completed, the mobile device 10 may then send and receive communication signals, including both voice and data signals, over the wireless network. Signals received by the antenna 129 from the wireless network are routed to the receiver 121, which provides for such operations as signal amplification, frequency down conversion, filtering, channel selection, and analog to digital conversion. Analog to digital conversion of a received signal allows more complex communication f functions, such as digital demodulation and decoding, to be performed using the digital signal processor (DSP) 120. In a similar manner, signals to be transmitted to the network are processed, including modulation and encoding, for example, by the digital signal processor (DSP) 120 and are then provided to the transmitter 122 for digital to analog conversion, frequency up conversion, filtering, amplification, and transmission to the wireless network via the antenna 129.
The microprocessor/microcontroller (μC) 110, which may also be designated as a device platform microprocessor, manages the functions of the mobile device 10. Operating system software 149 used by the processor 110 is preferably stored in a persistent store such as the non-volatile memory 140, which may be implemented, for example, as a Flash memory, battery backed-up RAM, any other non-volatile storage technology, or any combination thereof. In addition to the operating system 149, which controls low-level functions as well as (graphical) basic user interface functions of the mobile device 10, the non-volatile memory 140 includes a plurality of high-level software application programs or modules, such as a voice communication software application 142, a data communication software application 141, an organizer module (not shown), or any other type of software module (not shown). These modules are executed by the processor 100 and provide a high-level interface between a user of the mobile device 10 and the mobile device 10. This interface typically includes a graphical component provided through the display 135 controlled by a display controller 130 and input/output components provided through a keypad 175 connected via a keypad controller 170 to the processor 100, an auxiliary input/output (I/O) interface 200, and/or a short-range (SR) communication interface 180. The auxiliary I/O interface 200 comprises especially USB (universal serial bus) interface, serial interface, MMC (multimedia card) interface and related interface technologies/standards, and any other standardized or proprietary data communication bus technology, whereas the short-range communication interface radio frequency (RF) low-power interface includes especially WLAN (wireless local area network) and Bluetooth communication technology or an IRDA (infrared data access) interface. The RF low-power interface technology referred to herein should especially be understood to include any IEEE 801.xx standard technology, which description is obtainable from the Institute of Electrical and Electronics Engineers. Moreover, the auxiliary I/O interface 200 as well as the short-range communication interface 180 may each represent one or more interfaces supporting one or more input/output interface technologies and communication interface technologies, respectively. The operating system, specific device software applications or modules, or parts thereof, may be temporarily loaded into a volatile store 150 such as a random access memory (typically implemented on the basis of DRAM (direct random access memory) technology for faster operation). Moreover, received communication signals may also be temporarily stored to volatile memory 150, before permanently writing them to a file system located in the non-volatile memory 140 or any mass storage preferably detachably connected via the auxiliary I/O interface for storing data. It should be understood that the components described above represent typical components of a traditional mobile device 10 embodied herein in the form of a cellular phone. The present invention is not limited to these specific components and their implementation depicted merely for illustration and for the sake of completeness.
An exemplary software application module of the mobile device 10 is a personal information manager application providing PDA functionality including typically a contact manager, calendar, a task manager, and the like. Such a personal information manager is executed by the processor 100, may have access to the components of the mobile device 10, and may interact with other software application modules. For instance, interaction with the voice communication software application allows for managing phone calls, voice mails, etc., and interaction with the data communication software application enables for managing SMS (soft message service), MMS (multimedia service), e-mail communications and other data transmissions. The non-volatile memory 140 preferably provides a file system to facilitate permanent storage of data items on the device including particularly calendar entries, contacts etc. The ability for data communication with networks, e.g. via the cellular interface, the short-range communication interface, or the auxiliary I/O interface enables upload, download, and synchronization via such networks.
The application modules 141 to 149 represent device functions or software applications that are configured to be executed by the processor 100. In most known mobile devices, a single processor manages and controls the overall operation of the mobile device as well as all device functions and software applications. Such a concept is applicable for today's mobile devices. The implementation of enhanced multimedia functionalities includes, for example, reproducing of video streaming applications, manipulating of digital images, and video sequences captured by integrated or detachably connected digital camera functionality. The implementation may also include gaming applications with sophisticated graphics driving the requirement of computational power. One way to deal with the requirement for computational power, which has been pursued in the past, solves the problem for increasing computational power by implementing powerful and universal processor cores. Another approach for providing computational power is to implement two or more independent processor cores, which is a well known methodology in the art. The advantages of several independent processor cores can be immediately appreciated by those skilled in the art. Whereas a universal processor is designed for carrying out a multiplicity of different tasks without specialization to a pre-selection of distinct tasks, a multi-processor arrangement may include one or more universal processors and one or more specialized processors adapted for processing a predefined set of tasks. Nevertheless, the implementation of several processors within one device, especially a mobile device such as mobile device 10, requires traditionally a complete and sophisticated re-design of the components.
In the following, the present invention will provide a concept which allows simple integration of additional processor cores into an existing processing device implementation enabling the omission of expensive complete and sophisticated redesign. The inventive concept will be described with reference to system-on-a-chip (SoC) design. System-on-a-chip (SoC) is a concept of integrating at least numerous (or all) components of a processing device into a single high-integrated chip. Such a system-on-a-chip can contain digital, analog, mixed-signal, and often radio-frequency functions—all on one chip. A typical processing device comprises a number of integrated circuits that perform different tasks. These integrated circuits may include especially microprocessor, memory, universal asynchronous receiver-transmitters (UARTs), serial/parallel ports, direct memory access (DMA) controllers, and the like. A universal asynchronous receiver-transmitter (UART) translates between parallel bits of data and serial bits. The recent improvements in semiconductor technology caused that very-large-scale integration (VLSI) integrated circuits enable a significant growth in complexity, making it possible to integrate numerous components of a system in a single chip. With reference to
Additionally, said device 10 is equipped with a module for scalable encoding 105 and scalable decoding 106 of video data according to the inventive operation of the present invention. By means of the CPU 100 said modules 105, 106 may individually be used. However, said device 10 is adapted to perform video data encoding or decoding respectively. Said video data may be received by means of the communication modules of the device or it also may be stored within any imaginable storage means within the device 10.
In sum, the present invention provides an FGS entropy coding method that is suitable for the case when the refinement coefficients at the FGS layer have different prediction from its base layer. When temporal prediction is used in FGS layer coding and the refinement coefficients at the FGS layer have different prediction from its base layer, drift problem may be caused if the FGS layer is partially decoded. Such drift problem may significantly affect coding performance. The present invention provides a new FGS entropy coding method that can solve or greatly alleviate such drift effect and therefore improve coding performance.
Three different FGS methods can be used: FGS entropy coding based on spatial frequency location; FGS entropy coding for decoder oriented two-loop structure; and FGS entropy coding with block-confined coding pass. In the first method, the drift problem is essentially caused by the separate “pass” coding order in the cyclic block coding method. No matter which pass is coded first, the drift problem cannot be avoided in case of partial decoding of FGS layer. Thus, the significant information and the refinement information are no longer coded in separate “pass” in order to solve the above-described problem. Instead, they are coded in an interleaved or mixed order. With the second method, it can be guaranteed that the coefficients that become significant in the base layer have the same prediction at the enhancement layer. Therefore, further refinement of those coefficients at the enhancement layer does not include any compensation of the predictor difference. Thus, refinement information of those coefficients only helps improve picture quality without introducing any drift effect. With the third method, the significant coding pass is confined in a block. For a given block, once all the significant information in the block is coded, the significant pass can be considered as finished for the block and therefore the coding of refinement information in the block can be started.
Accordingly, the present invention provides a method of entropy coding for use in encoding a digital video sequence included in image data, the digital video sequence comprising a number of frames, each frame of said sequence comprising an array of pixels divided into a plurality of blocks. The method comprises:
forming a plurality of blocks of transform coefficients representing the enhancement layer information from the image data;
scanning said plurality of blocks of transform coefficients in multiple coding cycles based on a predetermined order;
selecting in each cycle a subset of transform coefficients from each of said plurality of blocks; and
entropy encoding said selected subset of transform coefficients based on the predetermined order.
The present invention also provides a method entropy coding for use in decoding a digital video sequence included in image data, the digital video sequence comprising a number of frames, each frame of said sequence comprising an array of pixels divided into a plurality of blocks. The method comprises:
forming a plurality of blocks for storing transform coefficients representing the enhancement layer information from the image data;
scanning said plurality of blocks for storing transform coefficients in multiple coding cycles based on a predetermined order;
selecting in each cycle a subset of transform coefficients to be decoded for each of said plurality of blocks; and
entropy decoding said selected subset of transform coefficients in each of said plurality of blocks based on the predetermined order.
According to the present invention, the selecting in encoding or decoding is at least based on spatial frequency location of each coefficient in a block, or is performed in a way such that significant coefficients in the block are selected prior to refinement coefficients in the block. When the transform coefficients include refinement coefficients that are significant in a discrete base layer and remaining coefficients, and the selecting from each block is performed in a way such that refinement coefficients that are significant in discrete base layer are selected first and the remaining coefficients are selected in an order based on their spatial frequency location.
The present invention provides an entropy encoder for use in encoding a digital video sequence included in image data, the digital video sequence comprising a number of frames, each frame of said sequence comprising an array of pixels divided into a plurality of blocks. The encoder comprises:
a module for forming a plurality of blocks of transform coefficients representing the enhancement layer information from the image data;
a module for scanning said plurality of blocks of transform coefficients in multiple coding cycles based on a predetermined order;
a module for selecting in each cycle a subset of transform coefficients from each of said plurality of blocks; and
a module for entropy encoding said selected subset of transform coefficients based on the predetermined order, wherein the selecting module is adapted to select the subset of transform coefficients at least based on spatial frequency location of each coefficient in a block, or to select the subset of transform coefficients from each block in a way such that significant coefficients in the block are selected prior to refinement coefficients in the block, or to select the transform coefficients from each block in a way such that refinement coefficients that are significant in discrete base layer are selected first and the remaining coefficients are selected in an order based on their spatial frequency location.
The present invention further provides a decoder for use in decoding a digital video sequence included in image data, the digital video sequence comprising a number of frames, each frame of said sequence comprising an array of pixels divided into a plurality of blocks. The decoder comprises:
a module for forming a plurality of blocks for storing transform coefficients representing the enhancement layer information from the image data;
a module for scanning said plurality of blocks for storing transform coefficients in multiple coding cycles based on a predetermined order;
a module for selecting in each cycle a subset of transform coefficients to be decoded for each of said plurality of blocks; and
a module for entropy decoding said selected subset of transform coefficients in each of said plurality of blocks based on the predetermined order.
The above-described encoding and decoding method can be implemented in a a software application product comprising a computer readable storage medium having software application for use in entropy encoding in scalable video coding, said software application having program codes for carrying out the encoding or decoding method as described above.
The above-described encoder and decoder can be implemented in an electronic device, such as a mobile terminal.
Thus, although the present invention has been described with respect to one or more embodiments thereof, it will be understood by those skilled in the art that the foregoing and various other changes, omissions and deviations in the form and detail thereof may be made without departing from the scope of this invention.
This patent application is based on and claims priority to U.S. Patent Application Ser. No. 60/757,745, filed Jan. 9, 2006, and U.S. Patent Application Ser. No. 60/763,164, filed Jan. 26, 2006, both assigned to the assignee of the present invention.
Number | Date | Country | |
---|---|---|---|
60757745 | Jan 2006 | US | |
60763164 | Jan 2006 | US |