Wavelet-based coding of video sequences and wavelet-based decoding of bitstreams
The wavelet-based video coding system optimizes data rates and quality by using discrete wavelet and temporal transforms with multiple coding modes, addressing inefficiencies in existing technologies.
Patent Information
- Application Number
- JP2025529784
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2023-08-04
- Filing Date
- 2024-07-02
- Publication Date
- 2026-01-16
- Estimated Expiration
- 2044-07-02
AI Technical Summary
Existing video coding technologies do not efficiently balance bit savings with high-quality video reconstruction.
A wavelet-based video coding system that includes a wavelet transform processor, mode selection processor, quantization processor, rate allocator, and coding processor to generate a bitstream with optimized data rates and quality, using discrete wavelet transforms, temporal transforms, and multiple coding modes.
The system reduces data rate while maintaining high video quality and minimizing computational effort, achieving efficient bitstream compression.
Smart Images

Figure 2026501504000001_ABST
Abstract
Description
[Technical Field]
[0001] FIELD Embodiments relate to video coding, and in particular to wavelet-based video coding. [Background technology]
[0002] The objective of this disclosure is to provide a more efficient coder and coding scheme compared to the prior art, which allows for bit savings while maintaining high quality of the reconstructed video. Summary of the Invention [Means for solving the problem]
[0003] In a first aspect, the present disclosure provides an encoder for encoding a video sequence comprising successive frames into a bitstream. The encoder comprises: a wavelet transform processor configured to generate, for each of the frames, a wavelet filtered frame comprising a plurality of bands, each of the bands comprising a plurality of wavelet coefficients, representing a group of rows of the frame, the wavelet coefficients of the plurality of wavelet coefficients of the plurality of bands forming a precinct, each of the wavelet coefficients of the wavelet filtered frame being calculated by applying a discrete wavelet transform operation to the frame to generate intermediate wavelet filtered frames, and by applying a temporal transform operation to data calculated from each intermediate wavelet filtered frame and from one or more intermediate wavelet filtered frames preceding each intermediate wavelet filtered frame, the temporal transform operation being applied such that each of the wavelet coefficients is calculated by using one coding mode of a plurality of coding modes; a mode selection processor configured to provide, for each band of each precinct of wavelet coefficients, to the wavelet transform processor a coding mode to be used for calculating each wavelet coefficient, the mode selection processor being configured to select the coding mode depending on the band to which each wavelet coefficient belongs and depending on the precinct to which each wavelet coefficient belongs; a quantization processor configured to generate, for each wavelet filtered frame, a quantized wavelet filtered frame, each of the quantized wavelet filtered frames including a plurality of quantized wavelet coefficients, the quantization processor configured to calculate each of the quantized wavelet coefficients according to a quantization value that is a non-negative integer, the quantization value depending on a coding mode of the respective wavelet coefficient; a plurality of tables, each table of the tables associated with one coding mode of a plurality of coding modes, each table containing, for each band of each precinct of one of the frames, a gain value associated with the coding mode with which the respective table is associated; a rate allocator configured to calculate a quantization value for each of the wavelet coefficients according to a quantization parameter of a precinct of the respective wavelet coefficient, the quantization parameter being iteratively determined by the rate allocator to control a data rate of the bitstream, the rate allocator retrieving a gain value for each of the wavelet coefficients according to a band of the respective wavelet coefficient from a table among a plurality of tables associated with a coding mode of the respective wavelet coefficient, and the respective quantization value being calculated according to the retrieved gain value; a coding processor configured to generate, for each quantized wavelet filtered frame, an encoded quantized wavelet filtered frame, each encoded quantized wavelet filtered frame including a plurality of encoded quantized wavelet coefficients; The system comprises a data stream producer configured to embed the encoded quantized wavelet filtered frame, a plurality of tables, a coding mode for each band of each precinct of wavelet coefficients, and a quantization parameter for each of the precincts into a bitstream.
[0004] According to some embodiments, the quantization processor is a dead-zone dequantization processor.
[0005] According to some embodiments, the quantization processor is a uniform inverse quantization processor.
[0006] According to some embodiments, the quantization processor quantizes each wavelet coefficient by 2 T where T is the quantization value.
[0007] According to some embodiments, at least one band of the precinct includes a plurality of TDC selection groups, each including k wavelet coefficients, the wavelet coefficients of one of the TDC selection groups being calculated using one sub-mode of the coding mode determined by the mode selection processor, and the data stream producer is configured to embed in the bitstream, for one of the TDC selection groups, a bit shift parameter that is an integer and depends on the sub-mode of the respective TDC selection group.
[0008] According to some embodiments, the value of k is 32.
[0009] According to some embodiments, the encoder comprises a rate provider configured to provide a maximum data rate to a rate allocator, the rate allocator configured to calculate quantization values such that the data rate of the bitstream is less than or equal to the maximum data rate.
[0010] According to some embodiments, each of the tables includes, for each band of one of the frames, a band weight associated with the coding mode to which the respective table is associated, and the rate allocator is configured such that, if the data rate is less than the maximum data rate, additional data rate is allocated to one or more bands by reducing the quantization value of the one or more bands according to the band weight retrieved from the table.
[0011] According to some embodiments, the rate allocator is configured to calculate quantization values for each of the wavelet coefficients according to refinement parameters for the precincts of the respective wavelet coefficients, the refinement parameters being iteratively determined by the rate allocator to control the data rate of the bitstream, and the data stream producer is configured to embed the refinement parameters for each of the precincts in the bitstream.
[0012] According to some embodiments, the rate allocator is configured to calculate quantization values for each of the wavelet coefficients according to a predetermined amplitude control parameter for the respective frame, and the data stream producer is configured to embed the amplitude control parameter for each of the frames in the bitstream.
[0013] According to some embodiments, the rate allocator calculates the quantization values for the bands of one precinct of the frame according to the formula T = clamp (q [p] - g [i, m] - X w [i, m] < r [p] , 0, 2 Br - 1), where m is one of the coding modes, T is a quantization value, g[i,m] is a gain value for the ith band retrieved from a table associated with the respective coding mode, w[i,m] is a band weight for the ith band retrieved from a table associated with the respective coding mode, Br is an amplitude control parameter for the frame, X is an index function that is 1 if the index is true and 0 if the index is not true, clamp is a function that limits the output calculated from the first argument to the interval indicated by the second and third arguments, q[p] is a quantization parameter for the pth precinct, and r[p] is a refinement parameter for the pth precinct.
[0014] According to some embodiments, at least one band of the precinct includes a plurality of TDC selection groups each including k wavelet coefficients, the wavelet coefficients of one of the TDC selection groups being calculated using one sub-mode of the coding mode determined by the mode selection processor, and the data stream producer is configured to embed in the bitstream, for one of the TDC selection groups, a bit shift parameter which is an integer and depends on the sub-mode of the respective TDC selection group; The rate allocator allocates the quantization value for one of the TDC selection groups in one of the frames according to the formula T = clamp (q [p] + b [m'] - g [i, m] - X w [i, m] < r [p] , 0, 2 Br - 1), where m' is the sub-mode of the TDC selection group and b is the bit shift parameter for the sub-mode of the TDC selection group.
[0015] According to some embodiments, at least one band of the precinct includes a plurality of TDC selection groups each including k wavelet coefficients, the wavelet coefficients of one of the TDC selection groups being calculated using one sub-mode of the coding mode determined by the mode selection processor, and the data stream producer is configured to embed in the bitstream, for one of the TDC selection groups, a bit shift parameter which is an integer and depends on the sub-mode of the respective TDC selection group; The quantization processor divides each of the wavelet coefficients into 2 b[m’] and calculating an intermediate quantized wavelet coefficient according to the quantization values of the bands of the precincts of each TDC selection group by dividing by m′, where m′ is a submode of the TDC selection group, and b is a bit shift parameter of the submode (SM) of the TDC selection group.
[0016] According to some embodiments, the encoding processor is a variable length encoder or an entropy encoder.
[0017] In a further aspect, the present disclosure provides a method for encoding a video sequence comprising successive frames into a bitstream, the method comprising: using a wavelet transform processor for each of the frames to generate a wavelet-filtered frame comprising a plurality of bands, each of the bands comprising a plurality of wavelet coefficients, representing a group of rows of the frame, the wavelet coefficients of the plurality of bands forming a precinct, each of the wavelet coefficients of the wavelet-filtered frame being calculated by: applying a discrete wavelet transform operation to the frame to generate an intermediate wavelet-filtered frame; and applying a temporal transform operation to data calculated on each intermediate wavelet-filtered frame and on one or more intermediate wavelet-filtered frames preceding the each intermediate wavelet-filtered frame, the temporal transform operation being applied such that each of the wavelet coefficients is calculated by using one coding mode of a plurality of coding modes; using a mode selection processor for providing, for each band of each precinct of wavelet coefficients, to the wavelet transform processor a coding mode to be used for calculating each wavelet coefficient, the mode selection processor being used to select the coding mode depending on the band to which each wavelet coefficient belongs and depending on the precinct to which each wavelet coefficient belongs; for each of the wavelet filtered frames, using a quantization processor to generate a quantized wavelet filtered frame, each of the quantized wavelet filtered frames including a plurality of quantized wavelet coefficients, the quantization processor being used to calculate each of the quantized wavelet coefficients according to a quantization value that is a non-negative integer, the quantization value depending on a coding mode of the respective wavelet coefficient; providing a plurality of tables, each table associated with one coding mode of a plurality of coding modes, each table including, for each band of one of the frames, a gain value associated with the coding mode to which the respective table is associated; using a rate allocator for calculating a quantization value of each of the wavelet coefficients according to a quantization parameter of a precinct of the respective wavelet coefficient, the quantization parameter being iteratively determined by the rate allocator to control a data rate of the bitstream, the rate allocator retrieving a gain value of each of the wavelet coefficients according to a band of the respective wavelet coefficient from a table of a plurality of tables associated with a coding mode of the respective wavelet coefficient, the respective quantization value being calculated according to the retrieved gain value; generating, using a coding processor, an encoded quantized wavelet filtered frame for each quantized wavelet filtered frame, each encoded quantized wavelet filtered frame including a plurality of encoded quantized wavelet coefficients; and using a data stream producer configured to embed the encoded quantized wavelet filtered frame, the plurality of tables, the coding mode for each band of each precinct of wavelet coefficients, and the quantization parameters for each of the precincts into a bitstream.
[0018] In a further aspect, the present disclosure provides a computer program for, when executed on a processor, performing an encoding method according to the present disclosure.
[0019] In a further aspect, the present disclosure provides a decoder for decoding a bitstream to reconstruct a video sequence comprising successive frames. The decoder includes: For each frame, from the bitstream: a coded quantized wavelet filtered frame including a plurality of bands, each band including a plurality of coded quantized wavelet coefficients, the coded quantized wavelet coefficients of the plurality of bands representing a group of rows of the frame forming a precinct, the coded quantized wavelet coefficients of the coded quantized wavelet filtered frame being calculated using one coding mode of a plurality of coding modes; a plurality of tables, each table of the plurality of tables associated with one coding mode of a plurality of coding modes, each table containing, for each band of the encoded quantized wavelet filtered frame, a gain value associated with the coding mode with which the respective table is associated; For each band of each precinct, a coding mode for the encoded quantized wavelet coefficients; a data stream receiver configured to extract a quantization parameter for each of the precincts; a decoding processor configured to generate a decoded quantized wavelet filtered frame for each encoded quantized wavelet filtered frame, each decoded quantized wavelet filtered frame including a plurality of decoded quantized wavelet coefficients, the plurality of decoded quantized wavelet coefficients being calculated by decoding the encoded quantized wavelet coefficients of the respective encoded quantized wavelet filtered frame; an inverse quantization processor configured to generate an inverse quantized wavelet filtered frame for each decoded quantized wavelet filtered frame, each of the inverse quantized wavelet filtered frames including a plurality of inverse quantized wavelet coefficients, the inverse quantization processor configured to calculate each of the inverse quantized wavelet coefficients according to a quantization value that is a non-negative integer; the inverse quantization processor is configured to calculate a quantization value for each of the decoded quantized wavelet coefficients in response to a quantization parameter of the precinct of each decoded quantized wavelet coefficient, in response to a coding mode of the precinct and a band of the coded quantized wavelet coefficient corresponding to each decoded quantized wavelet coefficient, and in response to one of the gain values from a plurality of tables; the inverse quantization processor is configured to retrieve a gain value for each decoded quantized wavelet coefficient from a table associated with a coding mode of each decoded quantized wavelet coefficient among a plurality of tables, depending on a band of each decoded quantized wavelet coefficient; an inverse wavelet transform processor configured to generate, for each dequantized wavelet filtered frame, one of successive frames, each of the frames including a plurality of pixels, each of the pixels of the frame being calculated by applying an inverse time transform operation to the respective dequantized wavelet filtered frame and to data calculated from one or more dequantized wavelet filtered frames preceding the respective dequantized wavelet filtered frame, and by applying an inverse discrete wavelet transform to the inverse time transformed dequantized wavelet filtered frame, to generate an inverse time transformed dequantized wavelet filtered frame, the inverse time transform operation being applied such that each of the pixels is calculated by using one decoding mode of a plurality of decoding modes, the decoding mode of the one of the pixels corresponding to the coding mode in which the coded quantized wavelet coefficient corresponding to the one of the pixels was calculated.
[0020] According to some embodiments, the inverse quantization processor is a dead-zone inverse quantization processor.
[0021] According to some embodiments, the inverse quantization processor is a uniform inverse quantization processor.
[0022] According to some embodiments, the inverse quantization processor applies 2 quantization steps to each decoded quantized wavelet coefficient. T where T is the quantization value.
[0023] According to some embodiments, at least one band of at least one precinct includes a plurality of TDC selection groups, each including k coded quantized wavelet coefficients, the coded quantized wavelet coefficients of one of the TDC selection groups being calculated using one sub-mode of the coding modes, and the data stream receiver is configured to extract from the bitstream of one of the TDC selection groups a bit shift parameter that is an integer and depends on the frame and the sub-mode of the respective TDC selection group.
[0024] According to some embodiments, the value of k is 32.
[0025] According to some embodiments, each of the tables contains, for each band of one of the encoded quantized wavelet filtered frames, band weights associated with the coding mode to which the respective table is associated.
[0026] According to some embodiments, the data stream receiver is configured to extract refinement parameters for each of the precincts from the bitstream of each of the frames, and the inverse quantization processor is configured to calculate quantization values for each of the precincts according to the refinement parameters for the respective precincts.
[0027] According to some embodiments, the data stream receiver is configured to extract an amplitude control parameter from the bitstream for each of the frames, and the inverse quantization processor is configured to calculate a quantization value for each of the precincts in response to the amplitude control parameter for the respective frame.
[0028] According to some embodiments, the inverse quantization processor calculates the quantization values for the bands of one precinct of the frame using the formula: T = clamp (q [p] - g [i, m] - X w [i, m] < r [p] , 0, 2 Br - 1), where m is the coding mode, T is the quantization value, g[i,m] is the gain value of the ith band retrieved from the table associated with the respective coding mode, w[i,m] is the band weight of the ith band retrieved from the table associated with the respective coding mode, Br is the amplitude control parameter of the frame, X is an index function that is 1 if the index is true and 0 if the index is not true, clamp is a function that limits the output calculated from the first argument to the interval indicated by the second and third arguments, q[p] is the quantization parameter of the pth precinct, and r[p] is the refinement parameter of the pth precinct.
[0029] According to some embodiments, at least one band of at least one precinct includes a plurality of TDC selection groups, each including k coded quantized wavelet coefficients, the coded quantized wavelet coefficients of one of the TDC selection groups being calculated using one sub-mode of the coding modes, and the data stream receiver is configured to extract from the bitstream of one of the TDC selection groups a bit shift parameter that is an integer and depends on the frame and the sub-mode of the respective TDC selection group.
[0030] According to some embodiments, the value of k is 32.
[0031] According to some embodiments, at least one band of at least one precinct comprises a plurality of TDC selection groups, each comprising k coded quantized wavelet coefficients, wherein the coded quantized wavelet coefficients of one of the TDC selection groups are calculated using one sub-mode of the coding modes, and the data stream receiver is configured to extract from the bitstream of one of the TDC selection groups a bit shift parameter which is an integer and which depends on the frame and the sub-mode of the respective TDC selection group; The inverse quantization processor calculates the quantization value for one of the TDC selection groups of one of the frames according to the formula: T = clamp (q [p] + b [m'] - g [i, m] - X w [i, m] < r [p] , 0, 2 Br - 1), where m' is the sub-mode of the TDC selection group and b is the bit shift parameter for the sub-mode of the TDC selection group.
[0032] According to some embodiments, at least one band of at least one precinct comprises a plurality of TDC selection groups, each comprising k coded quantized wavelet coefficients, wherein the coded quantized wavelet coefficients of one of the TDC selection groups are calculated using one sub-mode of the coding modes, and the data stream receiver is configured to extract from the bitstream of one of the TDC selection groups a bit shift parameter which is an integer and which depends on the frame and the sub-mode of the respective TDC selection group; The inverse quantization processor calculates intermediate inverse quantized wavelet coefficients according to the quantization values of the bands of the precincts of each TDC selection group, and adds 2 to the intermediate inverse quantized wavelet coefficients. b[m’]where m′ is a sub-mode of the TDC selection group and b is a bit shift parameter of the sub-mode of the TDC selection group.
[0033] According to some embodiments, the decoding processor is a variable length decoder or an entropy decoder.
[0034] In a further aspect, the present disclosure provides a method for decoding a bitstream to reconstruct a video sequence comprising successive frames, the method comprising: For each frame, from the bitstream: a coded quantized wavelet filtered frame including a plurality of bands, each band including a plurality of coded quantized wavelet coefficients, the coded quantized wavelet coefficients of the plurality of bands representing a group of rows of the frame forming a precinct, the coded quantized wavelet coefficients of the coded quantized wavelet filtered frame being calculated using one coding mode of a plurality of coding modes; a plurality of tables, each table of the plurality of tables associated with one coding mode of a plurality of coding modes, each table containing, for each band of each precinct of the encoded quantized wavelet filtered frame, a gain value associated with the coding mode with which the respective table is associated; For each band of each precinct, a coding mode for the encoded quantized wavelet coefficients; using a data stream receiver to extract a quantization parameter for each of the precincts; using a decoding processor to generate a decoded quantized wavelet filtered frame for each of the coded quantized wavelet filtered frames, each of the decoded quantized wavelet filtered frames including a plurality of decoded quantized wavelet coefficients, the plurality of decoded quantized wavelet coefficients being calculated by decoding the coded quantized wavelet coefficients of the respective coded quantized wavelet filtered frame; using an inverse quantization processor to generate an inverse quantized wavelet filtered frame for each of the decoded quantized wavelet filtered frames, each of the inverse quantized wavelet filtered frames including a plurality of inverse quantized wavelet coefficients, the inverse quantization processor being configured to calculate each of the inverse quantized wavelet coefficients according to a quantization value that is a non-negative integer; the inverse quantization processor calculates a quantization value for each of the decoded quantized wavelet coefficients according to a quantization parameter of the precinct of each decoded quantized wavelet coefficient, according to a coding mode of the precinct and a band of the coded quantized wavelet coefficient corresponding to each decoded quantized wavelet coefficient, and according to one of the gain values from a plurality of tables; the inverse quantization processor retrieving a gain value for each of the decoded quantized wavelet coefficients from a table of a plurality of tables associated with a coding mode of each of the decoded quantized wavelet coefficients, depending on a band and a precinct of each of the decoded quantized wavelet coefficients; and using an inverse wavelet transform processor for each dequantized wavelet filtered frame to generate one of successive frames, each of the frames including a plurality of pixels, each of the pixels of the frame being calculated by: applying an inverse time transform operation to data calculated from the respective dequantized wavelet filtered frame and one or more dequantized wavelet filtered frames preceding the respective dequantized wavelet filtered frame to generate an inverse time transformed dequantized wavelet filtered frame; and applying an inverse discrete wavelet transform to the inverse time transformed dequantized wavelet filtered frame, the inverse time transform operation being applied such that each of the pixels is calculated by using one decoding mode of a plurality of decoding modes, the decoding mode of the one of the pixels corresponding to a coding mode in which an encoded quantized wavelet coefficient corresponding to one of the pixels was calculated.
[0035] In a further aspect, the present invention provides a computer program for, when executed on a processor, performing the decoding method according to the present disclosure.
[0036] The present disclosure provides a coding scheme that reduces the data rate of the bitstream, improving the quality of the reconstructed video and minimizing the computational effort at the encoder and decoder.
[0037] Preferred embodiments of the present invention will now be described with reference to the accompanying drawings. [Brief explanation of the drawings]
[0038] [Figure 1] FIG. 2 shows in a schematic diagram an exemplary structure of a wavelet filtered frame. [Figure 2] 1 shows a schematic diagram of an exemplary structure of a precinct of a wavelet-filtered frame; [Figure 3] 1 shows a schematic diagram of one embodiment of an encoder according to the present disclosure; [Figure 4] 1 shows a schematic diagram of one embodiment of a decoder according to the present disclosure; DETAILED DESCRIPTION OF THE INVENTION
[0039] Identical or equivalent elements, or elements having identical or equivalent functions, are designated in the following description by identical or equivalent reference numerals.
[0040] In the following description, numerous details are set forth to provide a more thorough explanation of embodiments of the present invention. However, it will be apparent to those skilled in the art that embodiments of the present invention may be practiced without these specific details. In other instances, well-known structures and devices are shown in block diagram form, rather than in detail, to avoid obscuring embodiments of the present invention. Furthermore, features of different embodiments described below may be combined with each other unless otherwise noted.
[0041] 1 shows a schematic diagram of an exemplary structure of a wavelet-filtered frame WF. The disclosed compression method encodes a sequence of frames by transforming the input signal using a discrete wavelet transform and then eliminating irrelevant parts using a quantization method. The bit rate can be further reduced by appropriate coding methods.
[0042] The wavelet transform creates a wavelet-filtered frame WF that includes multiple bands BA, each consisting of wavelet coefficients. The bands BA may be generated by (recursive) application of multiple wavelet filters to a frame of the input signal. For each band BA, multiple horizontal and / or vertical filters may be applied to the input frame. It is also possible to combine horizontal and vertical filters. Figure 1 shows the structure of an exemplary wavelet-filtered frame WF generated using five horizontal filters and two vertical filters. Each band BA represents a filtered version of the original frame.
[0043] Figure 2 shows a schematic diagram of an exemplary structure of a precinct PR of a wavelet-filtered frame WF. Smaller bands BA are generated by more applications of the filter. Bands BA can be divided into rows or groups of rows, such that a collection of rows or groups of different bands BA representing the same portion of the original frame forms a precinct PR. A TDC selection group TSG is a subset of bands BA of a precinct PR. It consists of k wavelet coefficients, where k is typically 32.
[0044] It should be noted that with respect to encoder 1, the quantized wavelet filtered frame QWF output by quantization processor 4 has the same structure as the wavelet filtered frame WF input to quantization processor 4. This means that the quantized wavelet filtered frame QWF has the same bands BA, precincts PR, and TDC selection group TSG as the wavelet filtered frame WF from which it was derived. Furthermore, the coded quantized wavelet filtered frame EQWF output by coding processor 6 has the same structure as the quantized wavelet filtered frame QWF input to coding processor 6, and therefore the coded quantized wavelet filtered frame EQWF contains the same bands BA, precincts PR, and TDC selection group TSG as the wavelet filtered frame WF from which it was derived.
[0045] With respect to the decoder 11, it should be noted that the decoded quantized wavelet filtered frame DQWF output by the decoding processor 13 has the same structure as the encoded quantized wavelet filtered frame EQWF input to the decoding processor. This means that the decoded quantized wavelet filtered frame DQWF has the same bands BA, precincts PR, and TDC selection group TSG as the encoded quantized wavelet filtered frame EQWF from which it was derived. Furthermore, the dequantized wavelet filtered frame DWF output by the inverse quantization processor 14 has the same structure as the decoded quantized wavelet filtered frame DQWF input to the inverse quantization processor 14, so that the inverse quantized wavelet filtered frame DWF has the same bands BA, precincts PR, and TDC selection group TSG as the decoded quantized wavelet filtered frame DQWF from which it was derived.
[0046] The encoder and decoder process each frame precinct by precinct from top to bottom.
[0047] 3 shows in a schematic diagram an embodiment of an encoder 1 according to the invention, for encoding a video sequence VS comprising successive frames FR into a bitstream BS, comprising: a wavelet transform processor 2 configured to generate, for each frame FR, a wavelet filtered frame WF comprising a plurality of bands BA, each band BA comprising a plurality of wavelet coefficients, the wavelet coefficients of the plurality of bands representing a group of one row of the frame FR forming a precinct PR, each of the wavelet coefficients of the wavelet filtered frame being calculated by applying a discrete wavelet transform operation to the frame FR to generate an intermediate wavelet filtered frame, and by applying a temporal transform operation to data calculated on each intermediate wavelet filtered frame and on one or more intermediate wavelet filtered frames preceding each intermediate wavelet filtered frame, the temporal transform operation being applied such that each of the wavelet coefficients is calculated using one coding mode of a plurality of coding modes; a mode selection processor 3 configured to provide, for each band BA of each precinct PR of wavelet coefficients, to the wavelet transform processor 2, a coding mode CM used to calculate each wavelet coefficient, the mode selection processor 3 being configured to select the coding mode CM depending on the band BA to which each wavelet coefficient belongs and depending on the precinct PR to which each wavelet coefficient belongs; a quantization processor 4 configured to generate, for each wavelet filtered frame WF, a quantized wavelet filtered frame QWF, each of the quantized wavelet filtered frames QWF comprising a plurality of quantized wavelet coefficients, the quantization processor 4 configured to calculate each of the quantized wavelet coefficients in response to a quantization value QV, which is a non-negative integer, the quantization value QV depending on a coding mode CM of the respective wavelet coefficient; a plurality of tables TA, each table TA being associated with one coding mode CM of the plurality of coding modes CM, each of the tables TA containing, for each band BA of each precinct PR of one of the frames FR, a gain value GV associated with the coding mode CM to which the respective table TA is associated; a rate allocator 5 configured to calculate a quantization value QV of each of the wavelet coefficients according to a quantization parameter QP of a precinct PR of each of the wavelet coefficients, the quantization parameter QP being iteratively determined by the rate allocator 5 to control the data rate of the bitstream BS, the rate allocator 5 retrieving a gain value GV of each of the wavelet coefficients according to a band BA of each of the wavelet coefficients from a table TA of a plurality of tables TA associated with a coding mode CM of each of the wavelet coefficients, the quantization value QV being calculated according to the retrieved gain value GV; a coding processor 6 configured to generate an encoded quantized wavelet filtered frame EQWF for each quantized wavelet filtered frame QWF, each encoded quantized wavelet filtered frame EQWF comprising a plurality of encoded quantized wavelet coefficients; and a data stream producer 7 configured to embed the encoded quantized wavelet filtered frame EQWF, a plurality of tables TA, a coding mode CM for each band BA of each precinct PR of wavelet coefficients, and a quantization parameter QP for each of the precincts PR into a bitstream BS.
[0048] According to some embodiments, the quantization processor 4 is a deadzone quantization processor.
[0049] According to some embodiments, the quantization processor 4 is a uniform quantization processor.
[0050] According to some embodiments, at least one band BA of the precinct PR includes a plurality of TDC selection groups TSG each including k wavelet coefficients, the wavelet coefficients of one of the TDC selection groups TSG being calculated using one sub-mode SM of the coding mode CM determined by the mode selection processor 3, and the data stream producer 7 is configured to embed, for one of the TDC selection groups, a bit shift parameter BSP into the bitstream BS, the bit shift parameter BSP being an integer and depending on the sub-mode SM of the respective TDC selection group TSG.
[0051] According to some embodiments, the value of k is 32.
[0052] According to some embodiments, the encoder 1 comprises a rate provider 8 configured to provide a maximum data rate MDR to a rate allocator 5, the rate allocator 5 being configured to calculate a quantization value QV such that the data rate of the bitstream BS is less than or equal to the maximum data rate MDR.
[0053] According to some embodiments, each of the tables TA includes, for each band BA of one of the frames FR, a band weight BW associated with the coding mode CM to which the respective table TA is associated, and the rate allocator 5 is configured such that, if the data rate is less than the maximum data rate MDR, additional data rate is allocated to one or more bands BA by reducing the quantization value QV of the one or more bands BA according to the band weight BW retrieved from the table TA.
[0054] According to some embodiments, the rate allocator 5 is configured to calculate the quantization value QV of each of the wavelet coefficients according to a refinement parameter RP for the precinct PR of the respective wavelet coefficient, the refinement parameter RP being iteratively determined by the rate allocator 5 to control the data rate of the bitstream BS, and the data stream producer 7 is configured to embed the refinement parameter RP of each of the precincts PR into the bitstream BS.
[0055] According to some embodiments, the rate allocator 5 is configured to calculate a quantization value QV of each of the wavelet coefficients in response to a predetermined amplitude control parameter AC for the respective frame FR, and the data stream producer 7 is configured to embed the amplitude control parameter AC of each of the frames FR in the bitstream BS.
[0056] According to some embodiments, the rate allocator 5 calculates a quantization value QV for a band BA of one precinct PR of a frame FR according to the formula T = clamp (q [p] - g [i, m] - X w [i, m] < r [p] , 0, 2 Br - 1), where m is one of the coding modes CM, T is the quantization value QV, g[i,m] is the gain value GV of the ith band BA retrieved from the table TA associated with the respective coding mode CM, w[i,m] is the band weight BW of the ith band BA retrieved from the table TA associated with the respective coding mode CM, Br is the amplitude control parameter AC of the frame FR, X is an index function that is 1 if the index is true and 0 if the index is not true, clamp is a function that limits the output calculated from the first argument to the interval indicated by the second and third arguments, q[p] is the quantization parameter QP of the pth precinct PR, and r[p] is the refinement parameter RP of the pth precinct PR.
[0057] According to some embodiments, at least one band BA of the precinct PR comprises a plurality of TDC selection groups TSG each comprising k wavelet coefficients, the wavelet coefficients of one of the TDC selection groups TSG being calculated using one sub-mode SM of the coding mode CM determined by the mode selection processor 3, and the data stream producer 7 is configured to embed, for one of the TDC selection groups, a bit-shift parameter BSP in the bitstream BS, the bit-shift parameter BSP being an integer and depending on the sub-mode SM of the respective TDC selection group TSG; The rate allocator 5 calculates a quantization value QV for one of the TDC selection groups TSG of one of the frames FR according to the formula: T = clamp (q [p] + b [m'] - g [i, m] - X w [i, m] < r [p] , 0, 2 Br - 1), where m' is the submode SM of the TDC selection group TSG and b is the bit shift parameter BSP for the submode SM of the TDC selection group TSG.
[0058] According to some embodiments, at least one band BA of the precinct PR comprises a plurality of TDC selection groups TSG each comprising k wavelet coefficients, the wavelet coefficients of one of the TDC selection groups TSG being calculated using one sub-mode SM of the coding mode CM determined by the mode selection processor 3, and the data stream producer 7 is configured to embed, for one of the TDC selection groups, a bit-shift parameter BSP in the bitstream BS, the bit-shift parameter BSP being an integer and depending on the sub-mode SM of the respective TDC selection group TSG; The quantization processor 4 divides each of the wavelet coefficients into 2 b[m’] and calculating an intermediate quantized wavelet coefficient in accordance with the quantized value QV of the band BA of the precinct PR of each TDC selection group TSG by dividing by m′, m′ is a submode SM of the TDC selection group TSG, and b is a bit shift parameter BSP of the submode SM of the TDC selection group TSG.
[0059] According to some embodiments, the encoding processor 6 is a variable length encoder or an entropy encoder.
[0060] In a further aspect, Figure 3 shows an embodiment of a method for encoding a video sequence comprising successive frames FR into a bitstream BS, the method comprising: using a wavelet transform processor 2 for generating, for each of the frames FR, a wavelet filtered frame WF comprising a plurality of bands BA, each of the bands BA comprising a plurality of wavelet coefficients, representing a group of one row of the frame FR, the wavelet coefficients of the plurality of bands BA forming a precinct PR, each of the wavelet coefficients of the wavelet filtered frame WF being calculated by: applying a discrete wavelet transform operation to the frame FR to generate an intermediate wavelet filtered frame; and applying a temporal transform operation to data calculated on each intermediate wavelet filtered frame and on one or more intermediate wavelet filtered frames preceding each intermediate wavelet filtered frame, the temporal transform operation being applied such that each of the wavelet coefficients is calculated by using one coding mode CM of a plurality of coding modes CM; - using a mode selection processor 3 for providing, for each band BA of each precinct PR of wavelet coefficients, to the wavelet transform processor 2, a coding mode CM used to calculate the respective wavelet coefficients, the mode selection processor 3 being used to select the coding mode CM depending on the band BA to which the respective wavelet coefficient belongs and depending on the precinct PR to which the respective wavelet coefficient belongs; using a quantization processor 4 for generating a quantized wavelet filtered frame QWF for each of the wavelet filtered frames WF, each of the quantized wavelet filtered frames QWF including a plurality of quantized wavelet coefficients, the quantization processor 4 being used to calculate each of the quantized wavelet coefficients according to a quantization value QV, which is a non-negative integer, the quantization value QV depending on a coding mode CM of the respective wavelet coefficient; - providing a plurality of tables TA, each table TA being associated with one coding mode CM of a plurality of coding modes CM, each of the tables TA containing, for each band BA of one of the frames FR, a gain value GV associated with the coding mode CM to which the respective table TA is associated; using a rate allocator 5 for calculating a quantization value of each of the wavelet coefficients according to a quantization parameter QP of a precinct PR of each of the wavelet coefficients, the quantization parameter QP being iteratively determined by the rate allocator 5 to control the data rate of the bitstream BS, and the rate allocator 5 retrieving a gain value GV of each of the wavelet coefficients according to a band BA of each of the wavelet coefficients from a table TA of a plurality of tables TA associated with a coding mode CM of each of the wavelet coefficients, the quantization value QV being calculated according to the retrieved gain value GV; generating, using an encoding processor 6, an encoded quantized wavelet filtered frame EQWF for each quantized wavelet filtered frame QWF, each encoded quantized wavelet filtered frame EQWF including a plurality of encoded quantized wavelet coefficients; using a data stream producer 7 configured to embed the encoded quantized wavelet filtered frame EQWF, the plurality of tables TA, the coding mode CM for each band BA of each precinct PR of wavelet coefficients, and the quantization parameter QP for each of the precincts PR into a bitstream BS.
[0061] In a further aspect, FIG. 3 shows a computer program for, when executed on a processor, performing an encoding method according to the present disclosure.
[0062] Compression of a video sequence involves a transformation operation followed by a quantization and encoding operation.
[0063] The transform operation includes a wavelet transform operation followed by a temporal transform operation, which exploits the differences between successive frames of the video sequence. The transform operation is followed by a quantization step. Finally, a variable length coding operation can be used to construct the final bitstream.
[0064] During the quantization step, it must be taken into account that not all bands BA of a precinct PR contribute equally to the quality of the reconstructed frame FR, and therefore quantization is performed differently for different bands BA of different precincts PR.
[0065] The temporal transformation is performed with different coding methods for different bands BA of each precinct PR of a frame. In a first possible coding method (sometimes called an inter-coding method), the difference between a portion of the current frame and a corresponding portion of data derived from a previous frame is calculated. The first method is typically used when the difference between the portions is small. If the difference is large, the second possible method (often called an intra-coding method) is typically used, in which the temporal transformation is turned off due to the low similarity of the portions. In a third possible method (sometimes called a refresh coding method), the temporal transformation is turned off to provide the decoder with a complete reference frame required by the decoder to perform the inverse temporal transformation. Note that different coding methods affect the quality of the reconstructed frame in different ways. Therefore, quantization is performed differently for different coding methods. Typically, the coding method is selected to minimize the bandwidth of the resulting bitstream, unless periodic refresh is required, which would override this decision.
[0066] During quantization, the wavelet coefficients are multiplied by 2 TDividing by can be performed very efficiently in the binary number system typically used in video encoders and decoders. Other quantization schemes that depend on the parameter T, such as data-dependent uniform quantization, can also be used. To optimize the quantization step, multiple coding modes CM for the calculation of the exponent T, which is the quantization value QV, are used, and the coding mode CM for a portion of a frame FR is selected depending on how that portion of the frame FR is coded. Each of the coding modes CM is implemented based on one of multiple tables TA. Each of the tables TA is therefore a coding-mode-dependent table TA.
[0067] The quantization value QV can be calculated for each wavelet coefficient individually. However, it is more efficient to calculate the quantization value QV for a group of wavelet coefficients, for example, for all wavelet coefficients in band BA of precinct PR. Optionally, the quantization value QV calculated for band BA of precinct PR may be refined for a subset of wavelet coefficients in band BA of precinct PR, where the subset may be a TDC selection group.
[0068] Each of the tables TA is associated with one of the coding modes CM. Each of the tables TA includes a gain for each band BA for the respective coding mode CM. Furthermore, each of the tables TA may include a band weight for each of the bands BA for the respective coding mode CM.
[0069] In the example of Fig. 3, three tables TA are provided, where table TA1 relates to a first coding mode CM used for an inter-coding method, table TA2 relates to a second coding mode CM used for an intra-coding mode, and a third table TA3 relates to a third coding mode CM used for a refresh coding mode, which means that for each coding mode CM and each coding method a specific table is provided.
[0070] In other embodiments, one of the coding modes CM is used for multiple coding methods, for example, a first table for a first coding mode CM can be used for inter-coding and intra-coding methods, while a second table for a second coding mode CM can be used for refresh modes.
[0071] The coding mode CM is embedded in the bitstream BS for each band BA of each precinct PR.
[0072] Selecting quantization values QV for all bands BA in one step may not be granular enough to reach the desired maximum data rate as selected by the rate provider 8. Furthermore, the rate allocator 5 may provide an additional data rate to selected bands BA if the additional data rate is available, but this additional data rate is too small to reduce the quantization value QV by 1. The order in which the bands BA of one precinct PR of wavelet coefficients can receive such additional data rate is selected by a band weight BW, which may be part of a table TA, and the number of bands BA that receive such additional data rate for a precinct is indicated by a refinement parameter RP, which may be selected by the rate allocator 5 and embedded in the bitstream BS by the data stream producer 7.
[0073] To optimize the quantization values QV, the quantization values QV of the TDC selection groups of bands BA of a precinct PR may be calculated using submode SM of coding mode CM of each band BA of the precinct PR. Submode SM may use a bit-shift operation to optimize the calculated quantization values QV of each TDC selection group TSG. The bit-shift operation is represented by the term b[m'] in the above equation. In another embodiment, this bit-shift may be performed by shifting the wavelet coefficients in one of the TDC selection groups by a value 2 before performing quantization. b[m’] where m' denotes the submode SM of the respective TDC selection group.
[0074] In particular, sub-mode SM may be used when one coding mode CM is used for more than one coding method, e.g., if a particular coding mode CM is used for a first coding method, e.g., an intra-coding method, and a second coding method, e.g., an inter-coding method, then a first sub-mode SM of the particular coding mode CM can be used for the first coding method, e.g., the intra-coding method, and a second sub-mode SM of the particular coding mode CM can be used for the second coding method, e.g., the inter-coding mode.
[0075] The submode SM may be embedded in the bitstream BS of the subset that is processed using the submode SM.
[0076] 4 shows in a schematic diagram an embodiment of a decoder 11 according to the present disclosure for decoding a bitstream BS to reconstruct a video sequence VS comprising successive frames FR, the FR being: a coded quantized wavelet filtered frame EQWF including a plurality of bands BA, each of the bands BA including a plurality of coded quantized wavelet coefficients, the coded quantized wavelet coefficients of the plurality of bands BA representing a group of rows of the frame FR forming a precinct PR, and the coded quantized wavelet coefficients of the coded quantized wavelet filtered frame EQWF being calculated using one coding mode CM of a plurality of coding modes CM; a plurality of tables TA, each table TA of the plurality of tables TA being associated with one coding mode CM of the plurality of coding modes CM, each of the tables TA containing, for each band BA of the encoded quantized wavelet filtered frame EQWF, a gain value GV associated with the coding mode CM to which the respective table TA is associated; For each band BA of each precinct PR, the coding mode CM of the coded quantized wavelet coefficients; and a quantization parameter QP for each of the precincts PR, and the decoder a decoding processor 13 configured to generate a decoded quantized wavelet filtered frame DQWF for each coded quantized wavelet filtered frame EQWF, each decoded quantized wavelet filtered frame DQWF including a plurality of decoded quantized wavelet coefficients, the plurality of decoded quantized wavelet coefficients being calculated by decoding the coded quantized wavelet coefficients of the respective coded quantized wavelet filtered frame EQWF; an inverse quantization processor 14 configured to generate an inverse quantized wavelet filtered frame DWF for each decoded quantized wavelet filtered frame DQWF, each of the inverse quantized wavelet filtered frames DWF including a plurality of inverse quantized wavelet coefficients, the inverse quantization processor 14 configured to calculate each of the inverse quantized wavelet coefficients in response to a quantization value QV that is a non-negative integer; the inverse quantization processor 14 is configured to calculate a quantization value QV of each of the decoded quantized wavelet coefficients in response to a quantization parameter QP of the precinct PR of each decoded quantized wavelet coefficient, in response to a coding mode CM of the precinct PR and a band BA of the coded quantized wavelet coefficient corresponding to each decoded quantized wavelet coefficient, and in response to one of the gain values GV from a plurality of tables TA; the inverse quantization processor 14 is configured to retrieve a gain value GV for each decoded quantized wavelet coefficient from a table TA associated with a coding mode CM of each decoded quantized wavelet coefficient among a plurality of tables TA, depending on the band BA of each decoded quantized wavelet coefficient; an inverse wavelet transform processor 15 configured to generate, for each inverse quantized wavelet filtered frame DWF, one frame FR of consecutive frames FR, each of the frames FR including a plurality of pixels, each of the pixels of the frame FR being calculated by applying an inverse time transform operation to the respective inverse quantized wavelet filtered frame DWF and to data calculated from one or more inverse quantized wavelet filtered frames DWF preceding the respective inverse quantized wavelet filtered frame DWF, to generate an inverse time transformed inverse quantized wavelet filtered frame, and by applying an inverse discrete wavelet transform to the inverse time transformed inverse quantized wavelet filtered frame, the inverse time transform operation being applied such that each of the pixels is calculated by using one decoding mode of a plurality of decoding modes, the decoding mode of the one of the pixels corresponding to the coding mode CM in which the coded quantized wavelet coefficients corresponding to one of the pixels were calculated.
[0077] According to some embodiments, the inverse quantization processor 14 is a dead-zone inverse quantization processor.
[0078] According to some embodiments, the inverse quantization processor 14 is a uniform inverse quantization processor.
[0079] According to some embodiments, the inverse quantization processor 14 applies 2 quantizations to each decoded quantized wavelet coefficient. T where T is the quantization value QV.
[0080] According to some embodiments, at least one band BA of at least one precinct PR includes a plurality of TDC selection groups TSG, each including k coded quantized wavelet coefficients, the coded quantized wavelet coefficients of one of the TDC selection groups TSG being calculated using one sub-mode SM of the coding mode CM, and the data stream receiver 12 is configured to extract a bit shift parameter BSP from the bit stream BS of one of the TDC selection groups TSG, the bit shift parameter BSP being an integer and depending on the frame FR and the sub-mode SM of the respective TDC selection group TSG.
[0081] According to some embodiments, the value of k is 32.
[0082] According to some embodiments, each of the tables TA contains, for each band BA of one of the encoded quantized wavelet filtered frames EQWF, a band weight BW associated with the coding mode CM to which the respective table TA is associated.
[0083] According to some embodiments, the data stream receiver 12 is configured to extract refinement parameters RP for each of the precincts PR from the bitstream BS of each of the frames FR, and the inverse quantization processor 14 is configured to calculate quantization values QV for each of the precincts PR according to the refinement parameters RP for the respective precincts PR.
[0084] According to some embodiments, the data stream receiver 12 is configured to extract an amplitude control parameter AC from the bitstream BS for each of the frames FR, and the inverse quantization processor 14 is configured to calculate a quantization value QV for each of the precincts PR in dependence on the amplitude control parameter AC for the respective frame FR.
[0085] According to some embodiments, the inverse quantization processor 14 calculates a quantization value QV for a band BA of one precinct PR of a frame FR according to the formula: T = clamp (q [p] - g [i, m] - X w [i, m] < r [p] , 0, 2 Br - 1), where m is the coding mode CM, T is the quantization value QV, g[i,m] is the gain value of the ith band BA retrieved from the table TA associated with the respective coding mode CM, w[i,m] is the band weight BW of the ith band BA retrieved from the table TA associated with the respective coding mode CM, Br is the amplitude control parameter AC of the frame FR, X is an index function that is 1 if the index is true and 0 if the index is not true, clamp is a function that limits the output calculated from the first argument to the interval indicated by the second and third arguments, q[p] is the quantization parameter QP of the pth precinct PR, and r[p] is the refinement parameter RP of the pth precinct PR.
[0086] According to some embodiments, at least one band BA of at least one precinct PR comprises a plurality of TDC selection groups TSG, each comprising k coded quantized wavelet coefficients, wherein the coded quantized wavelet coefficients of one of the TDC selection groups TSG have been calculated using one sub-mode SM of the coding mode CM, and the data stream receiver 12 is configured to extract from the bit stream BS of one of the TDC selection groups a bit shift parameter BSP, which is an integer and depends on the frame FR and the sub-mode SM of the respective TDC selection group TSG, The inverse quantization processor 14 calculates a quantization value QV for one of the TDC selection groups TSG of one of the frames FR according to the formula: T = clamp (q [p] + b [m'] - g [i, m] - X w [i, m] < r [p] , 0, 2Br - 1), where m' is the submode SM of the TDC selection group TSG and b is the bit shift parameter BSP for the submode SM of the TDC selection group TSG.
[0087] According to some embodiments, the inverse quantization processor 14 is a uniform inverse quantization processor, and at least one band BA of at least one precinct PR comprises a plurality of TDC selection groups TSG, each comprising k coded quantized wavelet coefficients, and the coded quantized wavelet coefficients of one of the TDC selection groups TSG have been calculated using one sub-mode SM of the coding mode CM, and the data stream receiver 12 is configured to extract from the bitstream BS of one of the TDC selection groups a bit shift parameter BSP, which is an integer and depends on the frame FR and the sub-mode SM of the respective TDC selection group TSG, The inverse quantization processor 14 calculates intermediate inverse quantized wavelet coefficients according to the quantization values QV of the bands BA of the precincts PR of the respective TDC selection groups TSG, and calculates the intermediate inverse quantized wavelet coefficients by 2. b[m’] is configured to calculate the dequantized wavelet coefficients of one of the TDC selection groups TSG of one of the frames FR by multiplying m′ by m′, where m′ is the submode SM of the TDC selection group TSG, and b is the bit shift parameter BSP of the submode SM of the TDC selection group TSG.
[0088] According to some embodiments, the decoding processor 13 is a variable length decoder or an entropy decoder.
[0089] In a further aspect, Figure 4 shows an embodiment of a method for decoding a bitstream BS to reconstruct a video sequence VS comprising successive frames FR. The method comprises: For each frame FR, from the bitstream BS: a coded quantized wavelet filtered frame EQWF including a plurality of bands BA, each of the bands BA including a plurality of coded quantized wavelet coefficients, the coded quantized wavelet coefficients of the plurality of bands BA representing a group of rows of the frame FR forming a precinct PR, and the coded quantized wavelet coefficients of the coded quantized wavelet filtered frame EQWF being calculated using one coding mode CM of a plurality of coding modes CM; a plurality of tables TA, each table TA of the plurality of tables TA being associated with one coding mode CM of the plurality of coding modes CM, each of the tables TA containing, for each band BA of each precinct PR of the encoded quantized wavelet filtered frame EQWF, a gain value GV associated with the coding mode CM to which the respective table TA is associated; For each band BA of each precinct PR, the coding mode CM of the coded quantized wavelet coefficients; using the data stream receiver 12 to extract a quantization parameter QP for each of the precincts PR; using a decoding processor 13 to generate a decoded quantized wavelet filtered frame DQWF for each coded quantized wavelet filtered frame EQWF, each decoded quantized wavelet filtered frame DQWF including a plurality of decoded quantized wavelet coefficients, the plurality of decoded quantized wavelet coefficients being calculated by decoding the coded quantized wavelet coefficients of a respective coded quantized wavelet filtered frame EQWF; using an inverse quantization processor 14 to generate an inverse quantized wavelet filtered frame DWF for each of the decoded quantized wavelet filtered frames DQWF, each of the inverse quantized wavelet filtered frames DWF including a plurality of inverse quantized wavelet coefficients, the inverse quantization processor 14 being configured to calculate each of the inverse quantized wavelet coefficients in response to a quantization value QV that is a non-negative integer; the inverse quantization processor 14 calculates a quantization value QV of each of the decoded quantized wavelet coefficients in response to a quantization parameter QP of the precinct PR of each decoded quantized wavelet coefficient, in response to a coding mode CM of the precinct PR and a band BA of the coded quantized wavelet coefficient corresponding to each decoded quantized wavelet coefficient, and in response to one of gain values GV from a plurality of tables TA; the inverse quantization processor 14 retrieves a gain value GV for each of the decoded quantized wavelet coefficients from a table TA associated with a coding mode CM of each of the decoded quantized wavelet coefficients among a plurality of tables TA, depending on the band BA of each of the decoded quantized wavelet coefficients; using an inverse wavelet transform processor 15 to generate, for each inverse quantized wavelet filtered frame DWF, one frame FR of successive frames FR, each of the frames FR including a plurality of pixels, each of the pixels of the frame FR being calculated by: applying an inverse time transform operation to data calculated from the respective inverse quantized wavelet filtered frame DWF and one or more inverse quantized wavelet filtered frames DWF preceding the respective inverse quantized wavelet filtered frame DWF to generate an inverse time transformed inverse quantized wavelet filtered frame; and applying an inverse discrete wavelet transform to the inverse time transformed inverse quantized wavelet filtered frame, the inverse time transform operation being applied such that each of the pixels is calculated by using one decoding mode of a plurality of decoding modes, the decoding mode of the one of the pixels corresponding to the coding mode CM in which the coded quantized wavelet coefficients corresponding to one of the pixels were calculated.
[0090] In a further aspect, FIG. 4 illustrates a computer program product for, when executed on a processor, performing a decoding method according to the present disclosure.
[0091] The decoder 11 is configured to reconstruct a video sequence by processing a bitstream BS which may be generated by the encoder 1 according to the invention or by the method according to the invention, respectively. For this purpose, the encoder 1 reverses the steps of the data stream producer 7 of the encoder 1, the coding processor 6 of the encoder 1, the quantization processor 4 of the encoder 1 and the wavelet transform processor 2 of the encoder 1.
[0092] The present disclosure provides a coding scheme that reduces the data rate of the bitstream BS, improving the quality of the reconstructed video and minimizing the computational effort at the encoder 1 and decoder 11.
[0093] In this disclosure, the term processor refers to an electronic device configured for a particular task. A processor may comprise hardware or a combination of hardware and software. Different processors may share hardware and / or software components.
[0094] Depending on particular implementation requirements, device and system embodiments of the present invention can be implemented in hardware and / or software. Implementations can be performed using digital storage media, such as floppy disks, DVDs, Blu-ray disks, CDs, ROMs, PROMs, EPROMs, EEPROMs, or flash memories, on which electronically readable control signals are stored, which cooperate (or are capable of cooperating) with a programmable computer system to perform one or more or all of the functions of the device or system of the present invention.
[0095] In some embodiments, a programmable logic device (e.g., a field programmable gate array) may be used to perform one or more or all of the functions of the devices and systems described herein. In some embodiments, a field programmable gate array may cooperate with a microprocessor to implement one or more or all of the functions of the devices and systems described herein.
[0096] While some aspects have been described in the context of an apparatus, it will be apparent that these aspects also represent a description of a corresponding method, where a block or device corresponds to a method step or feature of a method step, and similarly, aspects described in the context of a method step also represent a description of a corresponding block or item or feature of a corresponding apparatus.
[0097] Depending on particular implementation requirements, embodiments of the methods of the present invention may be implemented using apparatus comprising hardware and / or software. Implementations may be performed using a digital storage medium, such as a floppy disk, DVD, Blu-ray disk, CD, ROM, PROM, EPROM, EEPROM or flash memory, on which electronically readable control signals are stored, which cooperates (or can cooperate) with a programmable computer system so that the respective methods are performed.
[0098] Depending on particular implementation requirements, method embodiments of the present invention may be implemented using apparatus comprising hardware and / or software.
[0099] Some or all of the method steps may be performed by (or using) hardware devices such as microprocessors, programmable computers, or electronic circuits, and one or more of the most important method steps may be performed by such devices.
[0100] Some embodiments according to the present invention include a data carrier having electronically readable control signals that can cooperate with a programmable computer system to perform one of the methods described herein.
[0101] Generally, embodiments of the present invention can be implemented as a computer program product having program code operable to perform one of the methods when the computer program product is run on a computer, which program code may for example be stored on a machine-readable carrier.
[0102] Other embodiments comprise the computer program for performing one of the methods described herein, stored on a machine readable carrier or a non-transitory storage medium.
[0103] A further embodiment comprises a processing means, for example a computer, or a programmable logic device, in particular a processor including hardware, configured to or adapted to perform one of the methods described herein.
[0104] A further embodiment comprises a computer having installed thereon the computer program for performing one of the methods described herein.
[0105] In general, the methods are advantageously performed by any apparatus comprising hardware and / or software.
[0106] While the present invention has been described in terms of several embodiments, there are alterations, permutations, and equivalents that fall within the scope of the present invention. It should also be noted that there are many alternative ways of implementing the methods and compositions of the present invention. It is therefore intended that the following appended claims be interpreted as including all such alterations, permutations, and equivalents that fall within the true spirit and scope of the present invention. [Explanation of symbols]
[0107] 1 Encoder 2 Wavelet Transform Processor 3 Mode Selection Processor 4 Quantization Processor 5 Rate Allocator 6 Encoding Processor 7 Data Stream Producer 8. Rate Providers 11 Decoder 12 Data Stream Receiver 13 Decoding Processor 14 Inverse Quantization Processor 15 Inverse Wavelet Transform Processor WF Wavelet filtered frame BA band PR Precinct TSG TDC Selection Group BS Bitstream VS Video Sequence FR frame CM Coding Mode GV Gain Value QWF Quantized Wavelet Filtered Frame QV Quantization Value TA Table QP quantization parameter RP refinement parameters AC Amplitude Control Parameters EQWF Encoded Quantized Wavelet Filtered Frame MDR Max Data Rate BW Band Weight SM Submode BSP bit shift parameters DQWF Decoded Quantized Wavelet Filtered Frame DWF Dequantized Wavelet Filtered Frame
[0108] References [1] ISO / IEC 11172, 1991-12-06 [2] ISO / IEC 10918, 1992-08-30 [3] H.261, 1993-03-12 [4] H.264, 2004-08-17 [5] H.266, 2013-06-07 [6] H.267, 2017-06-06 [7] ISO / IEC 2122-1, 2019-05-01
Claims
1. A decoder for decoding a bitstream (BS) to reconstruct a video sequence (VS) comprising successive frames (FR), said decoder (11) comprising: For each of said frames (FR), from said bitstream (BS): a coded quantized wavelet filtered frame (EQWF) including a plurality of bands (BA), each of the bands (BA) including a plurality of coded quantized wavelet coefficients, the coded quantized wavelet coefficients of the plurality of bands (BA) representing a group of rows of the frame (FR) forming a precinct (PR), the coded quantized wavelet coefficients of the coded quantized wavelet filtered frame (EQWF) being calculated using one coding mode (CM) of a plurality of coding modes (CM); a plurality of tables (TA), each table (TA) of the plurality of tables (TA) being associated with one coding mode (CM) of the plurality of coding modes (CM), each of the tables (TA) containing, for each band (BA) of the encoded quantized wavelet filtered frame (EQWF), a gain value (GV) associated with the coding mode (CM) to which the respective table (TA) is associated; For each band (BA) of each precinct (PR), the coding mode (CM) of the encoded quantized wavelet coefficients; a data stream receiver (12) configured to extract a quantization parameter (QP) for each of said precincts (PR); a decoding processor (13) configured to generate a decoded quantized wavelet filtered frame (DQWF) for each of the encoded quantized wavelet filtered frames (EQWF), each of the decoded quantized wavelet filtered frames (DQWF) including a plurality of decoded quantized wavelet coefficients, the plurality of decoded quantized wavelet coefficients being calculated by decoding the encoded quantized wavelet coefficients of the respective encoded quantized wavelet filtered frame (EQWF); an inverse quantization processor (14) configured to generate an inverse quantized wavelet filtered frame (DWF) for each of the decoded quantized wavelet filtered frames (DQWF), each of the inverse quantized wavelet filtered frames (DWF) including a plurality of inverse quantized wavelet coefficients, the inverse quantization processor (14) configured to calculate each of the inverse quantized wavelet coefficients according to a quantization value (QV) that is a non-negative integer; the inverse quantization processor (14) is configured to calculate the quantization value (QV) of each of the decoded quantized wavelet coefficients according to the quantization parameter (QP) of the precinct (PR) of the respective decoded quantized wavelet coefficient, according to the coding mode (CM) of the precinct (PR) and the band (BA) of the coded quantized wavelet coefficient corresponding to the respective decoded quantized wavelet coefficient, and according to one of the gain values (GV) from the plurality of tables (TA); the inverse quantization processor (14) is configured to retrieve the gain value (GV) for each of the decoded quantized wavelet coefficients from a table (TA) among the plurality of tables (TA) associated with the coding mode (CM) of the respective decoded quantized wavelet coefficients, depending on the band (BA) of the respective decoded quantized wavelet coefficients; an inverse wavelet transform processor (15) configured to generate, for each of the inverse quantized wavelet filtered frames (DWF), one frame (FR) of the successive frames (FR), each of the frames (FR) comprising a plurality of pixels, each of the pixels of the frame (FR) being inverse time transformed by one or more inverse quantized wavelet filtered frames preceding the respective inverse quantized wavelet filtered frames (DWF) to generate an inverse time transformed inverse quantized wavelet filtered frame; and an inverse wavelet transform processor, wherein the encoded quantized wavelet coefficients are calculated by applying an inverse-time transform operation to data calculated from an inverse-time transformed inverse-quantized wavelet-filtered frame (DWF) and by applying an inverse discrete wavelet transform to the inverse-time transformed inverse-quantized wavelet-filtered frame, the inverse-time transform operation being applied such that each of the pixels is calculated using one decoding mode of a plurality of decoding modes, the decoding mode of one of the pixels corresponding to the coding mode (CM) in which the encoded quantized wavelet coefficients corresponding to the one of the pixels were calculated.
2. 2. The decoder of claim 1, wherein the inverse quantization processor (14) is a dead-zone inverse quantization processor.
3. 2. The decoder of claim 1, wherein the inverse quantization processor (14) is a uniform inverse quantization processor.
4. The inverse quantization processor (14) applies 2 quantizations to each of the decoded quantized wavelet coefficients. T 2. The decoder of claim 1, configured to calculate each of the dequantized wavelet coefficients by multiplying T by T, where T is the quantization value (QV).
5. 2. The decoder of claim 1, wherein at least one band (BA) of at least one precinct (PR) includes a plurality of TDC selection groups (TSGs) each including k coded quantized wavelet coefficients, the coded quantized wavelet coefficients of one of the TDC selection groups (TSGs) being calculated using one sub-mode (SM) of the coding mode (CM), and the data stream receiver (12) is configured to extract a bit shift parameter (BSP) from the bit stream (BS) of one of the TDC selection groups, the bit shift parameter (BSP) being an integer and depending on the frame (FR) and the sub-mode (SM) of the respective TDC selection group (TSG).
6. A decoder according to the preceding claim, in which the value of k is 32.
7. 2. The decoder of claim 1, wherein each of the tables (TA) contains, for each band (BA) of one of the encoded quantized wavelet filtered frames (EQWF), a band weight (BW) associated with the coding mode (CM) to which the respective table (TA) is associated.
8. A decoder as claimed in the preceding claim, wherein the data stream receiver (12) is configured to extract refinement parameters (RP) for each of the precincts (PR) from the bitstream (BS) of each of the frames (FR), and the inverse quantization processor (14) is configured to calculate the quantization values (QV) for each of the precincts (PR) depending on the refinement parameters (RP) for the respective precincts (PR).
9. 10. A decoder according to the preceding claim, wherein the data stream receiver (12) is configured to extract an amplitude control parameter (AC) from the bitstream (BS) for each of the frames (FR), and wherein the inverse quantization processor (14) is configured to calculate the quantization value (QV) for each of the precincts (PR) depending on the amplitude control parameter (AC) for the respective frame (FR).
10. The inverse quantization processor (14) calculates the quantization value (QV) for a band (BA) of one precinct (PR) of the frame (FR) using the formula: T = clamp (q [p] - g [i, m] - X (w [i, m] < r [p]) , 0, 2 Br - 1), where m is a coding mode (CM), T is the quantization value (QV), g[i,m] is the gain value of the i-th band (BA) retrieved from the table (TA) associated with the respective coding mode (CM), w[i,m] is the band weight (BW) of the i-th band (BA) retrieved from the table (TA) associated with the respective coding mode (CM), and Br is the band weight (BW) of the frame (FR).
10. A decoder according to the preceding claim, wherein q[p] is the amplitude control parameter (AC), X is an index function that is 1 if the index is true and 0 if the index is not true, clamp is a function that limits the output calculated from its first argument to an interval indicated by its second and third arguments, q[p] is the quantization parameter (QP) of the pth precinct (PR), and r[p] is the refinement parameter (RP) of the pth precinct (PR).
11. At least one band (BA) of at least one precinct (PR) includes a plurality of TDC selection groups (TSGs), each including k coded quantized wavelet coefficients, and the coded quantized wavelet coefficients of one of the TDC selection groups (TSGs) are calculated using one sub-mode (SM) of the coding mode (CM), and the data stream receiver (12) is configured to extract, from the bit stream (BS) of one of the TDC selection groups, a bit shift parameter (BSP), which is an integer and depends on the frame (FR) and the sub-mode (SM) of each of the TDC selection groups (TSGs); The inverse quantization processor (14) calculates the quantization value (QV) for one of the TDC selection groups (TSG) of one of the frames (FR) according to the formula: T = clamp (q [p] + b [m’] - g [i, m] - X (w [i, m] < r [p]) , 0, 2 Br - 1), 4. The decoder of claim 1, configured to calculate according to:
12. the inverse quantization processor (14) is a uniform inverse quantization processor, and at least one band (BA) of at least one precinct (PR) includes a plurality of TDC selection groups (TSGs), each including k coded quantized wavelet coefficients, and the coded quantized wavelet coefficients of one of the TDC selection groups (TSGs) are calculated using one sub-mode (SM) of the coding mode (CM), and the data stream receiver (12) is configured to extract, from the bit stream (BS) of one of the TDC selection groups, a bit shift parameter (BSP), which is an integer and depends on the frame (FR) and the sub-mode (SM) of each of the TDC selection groups (TSGs); The inverse quantization processor (14) calculates intermediate inverse quantized wavelet coefficients according to the quantization values (QV) of the bands (BA) of the precincts (PR) of each of the TDC selection groups (TSG), and adds 2 to the intermediate inverse quantized wavelet coefficients. b[m’] 2. The decoder of claim 1, configured to calculate the dequantized wavelet coefficients of one of the TDC selection groups (TSG) of one of the frames (FR) by multiplying m′ by m′, where m′ is the sub-mode (SM) of the TDC selection group (TSG), and b is the bit shift parameter (BSP) of the sub-mode (SM) of the TDC selection group (TSG).
13. Decoder according to any one of claims 1 to 12, wherein the decoding processor (13) is a variable length decoder or an entropy decoder.
14. 1. A method for decoding a bitstream (BS) to reconstruct a video sequence (VS) comprising successive frames (FR), said method comprising: For each of said frames (FR), from said bitstream (BS): a coded quantized wavelet filtered frame (EQWF) including a plurality of bands (BA), each of the bands (BA) including a plurality of coded quantized wavelet coefficients, the coded quantized wavelet coefficients of the plurality of bands (BA) representing a group of rows of the frame (FR) forming a precinct (PR), the coded quantized wavelet coefficients of the coded quantized wavelet filtered frame (EQWF) being calculated using one coding mode (CM) of a plurality of coding modes (CM); a plurality of tables (TA), each table (TA) of the plurality of tables (TA) being associated with one coding mode (CM) of the plurality of coding modes (CM), each of the tables (TA) containing, for each band (BA) of each precinct (PR) of the encoded quantized wavelet filtered frame (EQWF), a gain value (GV) associated with the coding mode (CM) to which the respective table (TA) is associated; For each band (BA) of each precinct (PR), the coding mode (CM) of the encoded quantized wavelet coefficients; using a data stream receiver (12) to extract a quantization parameter (QP) for each of said precincts (PR); using a decoding processor (13) to generate a decoded quantized wavelet filtered frame (DQWF) for each of the encoded quantized wavelet filtered frames (EQWF), each of the decoded quantized wavelet filtered frames (DQWF) including a plurality of decoded quantized wavelet coefficients, the plurality of decoded quantized wavelet coefficients being calculated by decoding the encoded quantized wavelet coefficients of the respective encoded quantized wavelet filtered frame (EQWF); using an inverse quantization processor (14) to generate an inverse quantized wavelet filtered frame (DWF) for each of the decoded quantized wavelet filtered frames (DQWF), each of the inverse quantized wavelet filtered frames (DWF) including a plurality of inverse quantized wavelet coefficients, the inverse quantization processor (14) being configured to calculate each of the inverse quantized wavelet coefficients according to a quantization value (QV) that is a non-negative integer; the inverse quantization processor (14) calculates the quantization value (QV) of each of the decoded quantized wavelet coefficients according to the quantization parameter (QP) of the precinct (PR) of each of the decoded quantized wavelet coefficients, according to the coding mode (CM) of the precinct (PR) and the band (BA) of the coded quantized wavelet coefficient corresponding to each of the decoded quantized wavelet coefficients, and according to one of the gain values (GV) from the plurality of tables (TA); the inverse quantization processor (14) extracts the gain value (GV) for each of the decoded quantized wavelet coefficients from the table (TA) of the plurality of tables (TA) associated with the coding mode (CM) of the respective decoded quantized wavelet coefficient, depending on the band (BA) and the precinct (PR) of the respective decoded quantized wavelet coefficient; and using an inverse wavelet transform processor (15) to generate, for each of the inverse quantized wavelet filtered frames (DWF), one frame (FR) of the successive frames (FR), each of the frames (FR) including a plurality of pixels, each of the pixels of the frame being calculated by: applying an inverse time transform operation to the respective inverse quantized wavelet filtered frame (DWF) and one or more inverse quantized wavelet filtered frames (DWF) preceding the respective inverse quantized wavelet filtered frame (DWF) to generate an inverse time transformed inverse quantized wavelet filtered frame; and applying an inverse discrete wavelet transform to the inverse time transformed inverse quantized wavelet filtered frame, the inverse time transform operation being applied such that each of the pixels is calculated by using one decoding mode of a plurality of decoding modes, the decoding mode of one of the pixels corresponding to the coding mode (CM) in which the coded quantized wavelet coefficients corresponding to the one of the pixels were calculated.
15. A computer program for carrying out the method according to the preceding claims when the computer program is run on a processor.
16. An encoder for encoding a video sequence (VS) comprising successive frames (FR) into a bitstream (BS), said encoder (1) comprising: a wavelet transform processor (2) configured to generate, for each of the frames (FR), a wavelet-filtered frame (WF) comprising a plurality of bands (BA), each of the bands (BA) comprising a plurality of wavelet coefficients, representing a group of rows of the frame (FR), the wavelet coefficients of the plurality of wavelet coefficients of the plurality of bands forming a precinct (PR), each of the wavelet coefficients of the wavelet-filtered frame being calculated by applying a discrete wavelet transform operation to the frame (FR) to generate an intermediate wavelet-filtered frame, and by applying a temporal transform operation to data calculated from the respective intermediate wavelet-filtered frame and one or more intermediate wavelet-filtered frames preceding the respective intermediate wavelet-filtered frame, the temporal transform operation being applied such that each of the wavelet coefficients is calculated by using one coding mode of a plurality of coding modes; a mode selection processor (3) configured to provide the wavelet transform processor (2) with the coding mode (CM) used to calculate each wavelet coefficient for each band (BA) of each precinct (PR) of the wavelet coefficients, the mode selection processor (3) being configured to select the coding mode (CM) depending on the band (BA) to which each wavelet coefficient belongs and depending on the precinct (PR) to which each wavelet coefficient belongs; a quantization processor (4) configured to generate a quantized wavelet filtered frame (QWF) for each of the wavelet filtered frames (WF), each of the quantized wavelet filtered frames (QWF) including a plurality of quantized wavelet coefficients, the quantization processor (4) configured to calculate each of the quantized wavelet coefficients according to a quantization value (QV) that is a non-negative integer, the quantization value (QV) depending on the coding mode (CM) of the respective wavelet coefficient; a plurality of tables (TA), each table (TA) of which is associated with one coding mode (CM) of the plurality of coding modes (CM), and each of the tables (TA) containing, for each band (BA) of each precinct (PR) of one of the frames (FR), a gain value (GV) associated with the coding mode (CM) to which the respective table (TA) is associated; a rate allocator (5) configured to calculate the quantization value (QV) of each of the wavelet coefficients according to a quantization parameter (QP) of the precinct (PR) of the respective wavelet coefficients, the quantization parameter (QP) being iteratively determined by the rate allocator (5) to control a data rate of the bitstream (BS), and the rate allocator (5) fetches the gain value (GV) of each of the wavelet coefficients from the table (TA) of the plurality of tables (TA) associated with the coding mode (CM) of the respective wavelet coefficients according to the band (BA) of the respective wavelet coefficients, and the respective quantization value (QV) is calculated according to the fetched gain value (GV); an encoding processor (6) configured to generate an encoded quantized wavelet filtered frame (EQWF) for each of the quantized wavelet filtered frames (QWF), each of the encoded quantized wavelet filtered frames (EQWF) including a plurality of encoded quantized wavelet coefficients; and a data stream producer (7) configured to embed the encoded quantized wavelet filtered frame (EQWF), the plurality of tables (TA), the coding mode (CM) for each band (BA) of each precinct (PR) of the wavelet coefficients, and the quantization parameter (QP) for each of the precincts (PR) into the bitstream (BS).
17. 17. An encoder according to claim 16, wherein the quantization processor (4) is a dead-zone quantization processor.
18. An encoder according to claim 16, wherein the quantization processor (4) is a uniform quantization processor.
19. The quantization processor (4) divides each of the wavelet coefficients into 2 T 17. The encoder of claim 16, configured to calculate each of the quantized wavelet coefficients by dividing by T, where T is the quantization value (QV).
20. 17. The encoder of claim 16, wherein at least one band (BA) of a precinct (PR) includes a plurality of TDC selection groups (TSGs), each including k wavelet coefficients, the wavelet coefficients of one of the TDC selection groups (TSGs) being calculated using one sub-mode (SM) of the coding mode (CM) determined by the mode selection processor (3), and the data stream producer (7) is configured to embed a bit shift parameter (BSP) into the bitstream (BS) for one of the TDC selection groups, the bit shift parameter (BSP) being an integer and depending on the sub-mode (SM) of the respective TDC selection group (TSG).
21. An encoder according to the preceding claim, wherein the value of k is 32.
22. 17. The encoder of claim 16, wherein the encoder (1) comprises a rate provider (8) configured to provide a maximum data rate (MDR) to the rate allocator (5), and the rate allocator (5) is configured to calculate the quantization values (QV) such that the data rate of the bitstream (BS) is less than or equal to the maximum data rate (MDR).
23. 10. The encoder of claim 9, wherein each of said tables (TA) contains, for each band (BA) of one of said frames (FR), a band weight (BW) associated with the coding mode (CM) to which said respective table (TA) is associated, and wherein said rate allocator (5) is configured to allocate additional data rate to one or more bands (BA) by reducing the quantization values (QV) of said one or more bands (BA) in accordance with the band weights (BW) retrieved from said table (TA) if said data rate is less than said maximum data rate (MDR).
24. 10. The encoder of claim 9, wherein the rate allocator (5) is configured to calculate the quantization value (QV) of each of the wavelet coefficients according to a refinement parameter (RP) for the precinct (PR) of the respective wavelet coefficient, the refinement parameter (RP) being iteratively determined by the rate allocator (5) to control the data rate of the bitstream (BS), and the data stream producer (7) is configured to embed the refinement parameter (RP) of each of the precincts (PR) in the bitstream (BS).
25. 10. The encoder of claim 9, wherein the rate allocator (5) is configured to calculate the quantization value (QV) of each of the wavelet coefficients in response to a predetermined amplitude control parameter (AC) for the respective frame (FR), and the data stream producer (7) is configured to embed the amplitude control parameter (AC) of each of the frames (FR) in the bitstream (BS).
26. The rate allocator (5) allocates the quantization value (QV) for a band (BA) of one precinct (PR) of the frame (FR) according to the formula: T = clamp (q [p] - g [i, m] - X (w [i, m] < r [p]) , 0, 2 Br - 1), where m is one of the coding modes (CM), T is the quantization value (QV), g[i,m] is the gain value (GV) of the i-th band (BA) retrieved from the table (TA) associated with the respective coding mode (CM), w[i,m] is the band weight (BW) of the i-th band (BA) retrieved from the table (TA) associated with the respective coding mode (CM), and Br is the frame q[p] is the amplitude control parameter (AC) of the pth precinct (PR), X is an index function that is 1 if the index is true and 0 if the index is not true, clamp is a function that limits the output calculated from its first argument to an interval indicated by its second and third arguments, q[p] is the quantization parameter (QP) of the pth precinct (PR), and r[p] is the refinement parameter (RP) of the pth precinct (PR).
27. At least one band (BA) of a precinct (PR) includes a plurality of TDC selection groups (TSGs), each including k wavelet coefficients, and the wavelet coefficients of one of the TDC selection groups (TSGs) are calculated using one sub-mode (SM) of the coding mode (CM) determined by the mode selection processor (3), and the data stream producer (7) is configured to embed a bit shift parameter (BSP) into the bitstream (BS) for one of the TDC selection groups, the bit shift parameter (BSP) being an integer and depending on the sub-mode (SM) of the respective TDC selection group (TSG); The rate allocator (5) allocates the quantization value (QV) for one of the TDC selection groups (TSG) of one of the frames (FR) according to the formula: T = clamp (q [p] + b [m’] - g [i, m] - X (w [i, m] < r [p]) , 0, 2 Br - 1), where m′ is the sub-mode (SM) of the TDC selection group (TSG) and b is the bit shift parameter (BSP) for the sub-mode (SM) of the TDC selection group (TSG).
28. the quantization processor (4) is a uniform quantization processor, at least one band (BA) of a precinct (PR) includes a plurality of TDC selection groups (TSGs), each including k wavelet coefficients, the wavelet coefficients of one of the TDC selection groups (TSGs) are calculated using one sub-mode (SM) of the coding mode (CM) determined by the mode selection processor (3), and the data stream producer (7) is configured to embed a bit shift parameter (BSP) into the bitstream (BS) for one of the TDC selection groups, the bit shift parameter (BSP) being an integer and depending on the sub-mode (SM) of each of the TDC selection groups (TSGs); The quantization processor (4) divides each of the wavelet coefficients into 2 b[m’] 17. The encoder of claim 16, configured to calculate intermediate quantized wavelet coefficients according to the quantization values (QV) of the bands (BA) of the precincts (PR) of each of the TDC selection groups (TSG) by dividing by m′, and to calculate the quantized wavelet coefficients of one of the TDC selection groups (TSG) of one of the frames (FR) by quantizing the intermediate quantized wavelet coefficients according to the quantization values (QV) of the bands (BA) of the precincts (PR) of each of the TDC selection groups (TSG), wherein m′ is the sub-mode (SM) of the TDC selection group (TSG), and b is the bit shift parameter (BSP) of the sub-mode (SM) of the TDC selection group (TSG).
29. An encoder according to any one of claims 16 to 28, wherein the encoding processor (6) is a variable length encoder or an entropy encoder.
30. 1. A method for encoding a video sequence comprising successive frames (FR) into a bitstream (BS), said method comprising the steps of: using a wavelet transform processor (2) for generating, for each of the frames (FR), a wavelet-filtered frame (WF) comprising a plurality of bands (BA), each of the bands (BA) comprising a plurality of wavelet coefficients, representing a group of rows of the frame (FR), the wavelet coefficients of the plurality of wavelet coefficients of the plurality of bands (BA) forming a precinct (PR), each of the wavelet coefficients of the wavelet-filtered frame (WF) being calculated by: applying a discrete wavelet transform operation to the frame (FR) to generate an intermediate wavelet-filtered frame; and applying a temporal transform operation to data calculated on the respective intermediate wavelet-filtered frame and on one or more intermediate wavelet-filtered frames preceding the respective intermediate wavelet-filtered frame, the temporal transform operation being applied such that each of the wavelet coefficients is calculated by using one coding mode (CM) of a plurality of coding modes (CM); using a mode selection processor (3) for providing the wavelet transform processor (2) with the coding mode (CM) used to calculate each wavelet coefficient for each band (BA) of each precinct (PR) of the wavelet coefficients, the mode selection processor (3) being used to select the coding mode (CM) depending on the band (BA) to which each wavelet coefficient belongs and depending on the precinct (PR) to which each wavelet coefficient belongs; using a quantization processor (4) for generating a quantized wavelet filtered frame (QWF) for each of the wavelet filtered frames (WF), each of the quantized wavelet filtered frames (QWF) including a plurality of quantized wavelet coefficients, the quantization processor (4) being used to calculate each of the quantized wavelet coefficients according to a quantization value (QV) that is a non-negative integer, the quantization value (QV) depending on the coding mode (CM) of the respective wavelet coefficient; providing a plurality of tables (TA), each table (TA) of said tables (TA) being associated with one coding mode (CM) of said plurality of coding modes (CM), each of said tables (TA) containing, for each band (BA) of one of said frames (FR), a gain value (GV) associated with the coding mode (CM) to which said respective table (TA) is associated; using a rate allocator (5) for calculating the quantization value of each of the wavelet coefficients according to a quantization parameter (QP) of the precinct (PR) of the respective wavelet coefficients, the quantization parameter (QP) being iteratively determined by the rate allocator (5) to control a data rate of the bitstream (BS); and the rate allocator (5) retrieving the gain value (GV) of each of the wavelet coefficients from the table (TA) of the plurality of tables (TA) associated with the coding mode (CM) of the respective wavelet coefficients according to the band (BA) of the respective wavelet coefficients, and the respective quantization value (QV) being calculated according to the retrieved gain value (GV); generating, using an encoding processor (6), an encoded quantized wavelet filtered frame (EQWF) for each of the quantized wavelet filtered frames (QWF), each of the encoded quantized wavelet filtered frames (EQWF) comprising a plurality of encoded quantized wavelet coefficients; using a data stream producer (7) configured to embed the encoded quantized wavelet filtered frame (EQWF), the plurality of tables (TA), the coding mode (CM) for each band (BA) of each precinct (PR) of the wavelet coefficients, and the quantization parameter (QP) for each of the precincts (PR) into the bitstream (BS).
31. A computer program for carrying out the method according to the preceding claims when the computer program is run on a processor.
Citation Information
Patent Citations
Method, apparatus and system for encoding and decoding video data
JP2020515113A
Encoder and method for encoding a sequence of frames - Patents.com
JP2022536512A
Method, apparatus and system for encoding and decoding video data
US20200014956A1
Encoder and method of encoding a sequence of frames
US20220248057A1