EP2805486A1 - Procede de quantification dynamique pour le codage de flux de donnees - Google Patents
Procede de quantification dynamique pour le codage de flux de donneesInfo
- Publication number
- EP2805486A1 EP2805486A1 EP12806496.1A EP12806496A EP2805486A1 EP 2805486 A1 EP2805486 A1 EP 2805486A1 EP 12806496 A EP12806496 A EP 12806496A EP 2805486 A1 EP2805486 A1 EP 2805486A1
- Authority
- EP
- European Patent Office
- Prior art keywords
- blocks
- quantization
- coefficients
- residual
- dynamic
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/63—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/157—Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
- H04N19/159—Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/124—Quantisation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/136—Incoming video signal characteristics or properties
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/146—Data rate or code amount at the encoder output
- H04N19/147—Data rate or code amount at the encoder output according to rate distortion criteria
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/174—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a slice, e.g. a line of blocks or a group of blocks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/176—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/189—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
- H04N19/192—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding the adaptation method, adaptation tool or adaptation type being iterative or recursive
- H04N19/194—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding the adaptation method, adaptation tool or adaptation type being iterative or recursive involving only two passes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/593—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/61—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
Definitions
- the present invention relates to a dynamic quantization method for encoding data streams. It applies in particular to the compression of videos according to the H.264 standards (as defined by the ITU (International Telecommunication Union) otherwise designated by MPEG4-AVC by the International Organization for Standardization (ISO)) and H.265 . More generally, the present invention applies to encoders comprising a quantization step in which different quantization coefficients can be applied according to the types of image blocks to be encoded.
- H.264 standards as defined by the ITU (International Telecommunication Union) otherwise designated by MPEG4-AVC by the International Organization for Standardization (ISO)
- H.265 More generally, the present invention applies to encoders comprising a quantization step in which different quantization coefficients can be applied according to the types of image blocks to be encoded.
- Quantization is a well-known step in MPEG video coding which allows after transposition of image data in the transformed domain (also referred to as the "transform domain"), to sacrifice the higher order coefficients to decrease substantially the size of the data by only moderately affecting their visual rendering. Quantification is therefore an essential step in lossy compression. In general, it is also the one that introduces the most important artifacts into the encoded video, especially when the quantization coefficients are very high.
- FIG. 1 illustrates the place 101 occupied by the quantization step in a coding method according to the MPEG4-AVC standard.
- the coding complexity and the amount of information to keep to ensure an acceptable output quality varies over time, depending on the nature of the sequences contained in the stream.
- Known methods can encode an audio or video stream by controlling the rate (bitrate) of output data. Some of these methods rely on a double pass quantization in which the first pass makes it possible to generate flow requests to an allocator according to the complexity of the video sequence, the second pass coding the sequence at the bit rate allocated by the allocator.
- the quantization level applied in the second pass plays, in this context, the role of an adjustment variable making it possible to reach the desired flow rate.
- the quality of the video can fluctuate until it degrades at times below a visually acceptable level.
- One way to guarantee a minimum level of quality over the entire duration of the flow is then to increase the throughput, which proves to be expensive and sub-optimal in terms of the use of material resources.
- Variable rate streams can also be generated, the throughput increasing in relation to the complexity of the scene to be encoded.
- this type of flow does not always match the constraints imposed by transport infrastructures. Indeed, it is common that a fixed bandwidth is allocated on a transmission channel, thus forcing to allocate a bandwidth equal to the maximum flow encountered in the stream to avoid transmission anomalies.
- this technique produces a flow whose average flow is substantially higher, since the flow must be increased at least temporarily to preserve the quality of the most complex scenes.
- An object of the invention is to reduce the bandwidth occupied by a stream encoded according to a standard of the MPEG type, or to increase the quality perceived by the observer of this flow at equal flow elsewhere.
- the subject of the invention is a method of dynamically quantizing an image stream comprising blocks of different types transposed in the transformed domain, the method comprising a first step of quantizing several of said blocks with coefficients of initial quantization, the method being characterized in that it comprises a step of determination, for several types of blocks respectively, of the residual coding costs after said first quantization, and a second step of quantizing the transposed blocks of at least one type with quantization coefficients chosen according to the distribution of said residual costs between several types of blocks.
- the first quantization step can be considered as a pre-quantization performed in order to determine the distribution of the residual costs between different types of blocks, that is to say for example the ratio between the costs induced by a first type of block and the costs of a second type of block.
- This distribution is then used in the second quantification step to arbitrate the debit allocation between several types of blocks and / or between the components of the transformed domain of the same type of block.
- the initial quantization coefficients may be predetermined to perform a compromise according to a compromise defined in advance, for example as a function of the transformed image sequences that can be quantized.
- the coefficients used for the second quantification step are based on the distribution of residual costs and, for example, pre-defined psycho-visual criteria, in order to minimize the quality degradation due to quantification while limiting the use of bandwidth when transporting data.
- the quantization coefficients used by the method according to the invention to quantify the transformed macroblocks must not be confused with the quantization parameter, also called mb_qp_delta in the MPEG4-AVC standard, which parameter is transmitted for each macroblock. of the image and makes it possible to deduce the global scalar quantization to be applied to the set of frequency coefficients.
- the dynamic quantization method according to the invention can perform an adjustment at a finer level, since it is able to adjust the scalar coefficients for each of the frequency coefficients from the transform.
- a plurality of sets of coefficients are pre-calculated and, during the second quantization step, coefficients of a set chosen from said plurality are applied.
- coefficients can thus be calculated in advance, each configuration being associated with a set of quantization coefficients.
- the coefficients are grouped in matrices, thus forming quantization matrices.
- One set of dice among several is then chosen during the second quantization step.
- one indicator or several indicators of residual cost distribution between several types of blocks are calculated, the definition domain of said indicators is partitioned into a plurality of value domains, associates a set of pre-calculated coefficients with each of said domains, and one chooses the set of coefficients to be applied during the second quantization step among said sets as a function of the value of said indicators.
- the value domain can be reduced to a plurality of value ranges.
- the quantized blocks during the first quantization step comprise chrominance blocks and luminance blocks transposed in the transformed domain, and in which the quantization coefficients are chosen.
- applied in the second step at least in part according to the ratio of the residual costs due to the chrominance blocks to the residual costs due to the luminance blocks.
- the image blocks are decomposed into a plurality of colorimetric components which are transposed in blocks into the transformed domain and on which prequantization coefficients are applied, the distribution of the residual coding costs of the blocks of blocks is determined.
- the image between the different colorimetric components, the transposed blocks are quantified in the transformed domain with coefficients chosen according to said distribution.
- the quantization coefficients associated with the lower-order components of the chrominance blocks are reduced, in relation with the decrease in the residual costs due to to chrominance blocks versus residual costs due to luminance blocks.
- lower-order components we mean the low-valued components in the transformed domain, in other words the low frequency components in the frequency domain, for example the components corresponding to a frequency less than or equal to a predetermined value.
- the quantized blocks during the first quantization step comprise spatial predictive coding blocks and temporal predictive coding blocks transposed in the transformed domain, and in which one chooses the quantization coefficients applied during the second step at least in part based on the ratio of residual costs due to space-predictive coding blocks to residual costs due to time-predictive coded blocks.
- the residual coding costs at the end of the pre-quantization are determined separately, then a quantification is applied. with distinct coefficients for each block type and determined according to said relative coding costs.
- spatially predictive coding block and “temporal predictive coding block” may be understood to mean, respectively, “block whose coding is of spatial predictive type” and “block whose coding is of temporal predictive type”.
- block included in an image whose blocks are all spatially predictive coding and “block included in an image comprising blocks with temporal predictive coding”.
- the quantization coefficients associated with the spatially predictive coded blocks are decreased, and the quantization coefficients associated with the prediction-coded blocks are increased. temporal, in relation to the decrease in residual costs due to time-predictive coded blocks compared to residual costs due to spatial predictive coding blocks.
- the quantization coefficients applied during the second quantization step to a same type of block or to the same set of block types in a matrix of the same are grouped together and stored. quantification.
- the stream to be encoded may be MPEG standard (for example MPEG4, ie H.264), and a set of quantization matrices chosen dynamically according to the residual cost distribution may include:
- the subject of the invention is also a method for encoding an image flow forming a video, comprising a step of block transformation of the images in the transformed domain, in which a dynamic quantization method as described above is executed. on said blocks.
- the stream can be encoded according to an MPEG standard.
- the dynamic quantization method is applied cyclically over a reference period equal to one group of MPEG images.
- the invention also relates to a video encoder, for example MPEG, configured to execute the decoding method as described above.
- a video encoder for example MPEG
- the subject of the invention is also a method for decoding an image stream encoded by an MPEG encoder as described above, the decoder being configured to find, from said coded image stream, the quantization coefficients used. by the encoder to quantize the data blocks.
- the quantization matrices can be found in the stream if they have been inserted by the encoder, or found by an identifier inserted in the stream, the decoder then having a memory for recording the different quantization matrices that can be used.
- the invention also relates to an MPEG video decoder, configured to execute the coding method as described above.
- FIG. 1 a block diagram illustrating an encoding method according to the MGEG4-AVC standard in which the method according to the invention can be used, this figure having already been presented above;
- FIG. 2 a block diagram illustrating an exemplary dynamic quantization method according to the invention.
- the nonlimiting example developed subsequently is that of the quantization of an image stream to be encoded according to the H.264 / MPEG4-AVC standard.
- FIG. 2 presents a block diagram illustrating an exemplary dynamic quantization method according to the invention. This comprises a first quantization step 201, a step of determining the relative residual coding costs 202, a quantization coefficients selection step 203, and a second quantization step 204 using the previously chosen coefficients.
- the images to be encoded are cut into macroblocks.
- Each macroblock corresponds to an image portion and is decomposed into a plurality of components, according to a chosen colorimetric system.
- a macroblock of the H.264 standard can be defined as a combination of blocks including the luminance and chrominance information.
- the chrominance blocks are of different sizes.
- the macroblocks have a size of 16x16 pixels.
- These macroblocks consist of 8x8 or 4x4 pixel blocks including luminance and chrominance information.
- the blocks are transformed in the transformed domain by a DCT (Discrete Cosine Transform) for the purpose of visually acceptable compression by quantization.
- DCT Discrete Cosine Transform
- some are coded according to a spatial predictive coding mode (also termed "intra” to mean that the coding does not depend on an image other than that in which the block is located), others according to a predictive mode (also qualified by the term “inter” to denote blocks whose coding depends on at least one other image than that in which it is located).
- the blocks 210 resulting from the transformation step in the transformed domain are subject to a first quantization 201 in order to measure the residual coding costs. Residual values of transformed components are obtained at the end of this first quantization 201, so that for each quantized block, it is possible to determine the residual coding cost, in other words the number of bits necessary to code the residual values after quantization. At the end of this first quantization, therefore, residual coding costs are obtained for each type (or category) of block: chrominance block, luminance block, block coded in intra mode, coded block in inter mode, for example.
- the block types can be considered by crossing several categories among themselves: for example, an intra type block can be at the same time a chrominance type block; the residual coding costs for the "intra-chrominance" blocks can then be considered. It is thus possible to partition the space of the block types according to multiple possibilities, another example consisting in considering only two types of blocks: a first type, for example luminance blocks coded intra, and a second type grouping together all other possible categories of blocks.
- the classification of the blocks into different types may depend on the type of image to which this block belongs.
- MPEG images of type P (with temporal prediction) and B (with bidirectional prediction) mainly comprise blocks with temporal predictive coding.
- this may also include spatial predictive coding blocks.
- the type of block considered for the calculation of the residual costs as that of the type of the image to which this block belongs, so that a block with spatial predictive coding present in an image (B or P) whose coding is predominantly temporal predictive is considered to be involved in the residual costs of inter-type images, thus considered as "inter" type.
- the initial coefficients 21 1 chosen to quantize the data during this first quantization 201 are different according to the type of block.
- a quantization matrix by block type is used.
- eight different matrices can be defined:
- ⁇ six matrices for 4x4 pixel blocks one for Intra 4x4 Y (luminance) blocks, one for Intra 4x4 Chroma U blocks (Chrominance U), one for Intra 4x4 Chroma V blocks, one for Inter 4x4 Y blocks, one for Inter 4x4 Chroma U blocks, and one for Inter 4x4 blocks.
- the block types considered in the calculation of the residual coding costs can be decoupled from the types associated with the quantization matrices.
- the coefficients 21 1 chosen to quantize the data during this first quantization 201 can be predetermined in advance for correspond to an average compromise for all types of video sequences.
- eight series of residual costs are obtained, each series comprising the residual cost measures for each of the quantized blocks in the corresponding type.
- a first series of residual costs is obtained for intra 4x4 Y type blocks, a second for intra 4x4 U type blocks, and so on.
- Residual costs belonging to the same series may be summed over a reference period, for example a group of images, a group of images comprising a plurality of images, the first of which is generally spatially predictive coded, the other images of the group may include time predictive coded blocks based on the blocks comprised by one or more other images of said group, so that knowledge of only group images is sufficient to decode said group.
- a group of images may for example be a group of images in the sense of the standard H.264 (or MPEG), more commonly referred to in the H.264 standard by the acronym GOP for "Group Of Pictures".
- the first quantization step 201 may for example be performed on a set of images forming a GOP, so that an overall residual cost can be calculated for the whole GOP on each of the types of blocks. to quantify.
- eight cost values for the GOP are thus obtained, each value being equal to the sum of the residual costs obtained respectively in each block type on all the GOP images.
- These residual total costs are noted as follows: C
- Reference periods for the calculation of the total residual costs are possible, for example a period comprising several GOPs, or a period less than that of a GOP.
- the first quantization 201 is performed only on a sample of the transformed image blocks 210 input, the residual costs resulting in this case only from the quantification of blocks making up the sample.
- the residual costs determined during the first quantization step 201 are used to calculate indicators. These indicators may in particular be equal to residual cost ratios relating to different types.
- NT RA_4X4_V) i.e., 11 is equal to the ratio between the residual coding costs of the inter mode blocks and the intra mode blocks.
- This indicator 11 makes it possible to determine the relative weights of the spatial and temporal information in the coding of the images.
- CINTER_8 XS _Y in other words the ratio between the residual coding costs of the chrominance blocks and the luminance blocks.
- This indicator 12 makes it possible to determine the relative weights of the chrominance and luminance information in the coding of the images. Other indicators can thus be calculated to determine the information density of certain types of blocks compared to other types. The indicators therefore make it possible to know at least in part the distribution of the residual costs between the different types of blocks to be coded.
- the indicators determined in the previous step 202 are used to choose sets of coefficients to be used during the quantization of the data.
- the coefficients are chosen according to indicators and psycho-visual criteria to improve the visual rendering of the video.
- the sequence of images is complex from the point of view temporal.
- the scene represented by the sequence of images includes moving objects, the human eye of which would not be able to perceive the many texture details.
- the human visual system applies an integrating filter that ignores the many details in the moving masses, but is sensitive to the fluidity of movement.
- a more severe quantization is preferably applied to the information encoded in intra mode to leave sufficient flow available to the coded information in inter mode and thus better preserve the movement.
- the coefficients of the quantization matrices corresponding to the Intra types are increased and those corresponding to the Inter types are decreased.
- the coefficients of the matrices relating to the types of blocks Intra 4x4 Y, Intra 4x4 Chroma U, Intra 4x4 Chroma V, and Intra 8x8 Y are increased and those of matrices Inter 4x4 Y, Inter 4x4 Chroma U, Inter 4x4 Chroma V and Inter 8x8 Y are decreased.
- this ratio 11 is low - for example, if the image sequence to be encoded represents a scene in slight motion -, preservation of the intra data is to be preferred and the coefficients of the Intra type matrices are decreased. Inter type being increased, by compensation. In this way, the quality of the details is improved for the whole scene, because the better quality of the reference image encoded in Intra propagates to the temporal prediction images, which benefit from a simple temporal prediction in this type. sequences.
- several sets of quantization matrices are predetermined and selected according to the indicators, a set of matrices comprising, in the example, eight quantization matrices.
- the set of matrices chosen may depend jointly on the values of 11 and 12.
- the domain of the values of each indicator is partitioned in several intervals, so that the values of the matrix coefficients are different when the value of a indicator goes from one interval to another.
- a set of matrixes per pair of intervals can thus be prepared in advance, so that in the general case, the number of games available for the second quantization 204 is equal to the product of the number of intervals in each domain of values. indicators.
- the sets of matrices are not precalculated and the coefficients of the matrices are computed on the fly according to the values of the indicators.
- the quantization coefficients are chosen directly from the residual costs calculated from the first quantization 201; in other words, no intermediate indicator is calculated.
- a second quantization 204 is performed on the input data using the quantization coefficients determined in the previous step 203.
- the set of eight matrices corresponding to the indicator values obtained is used for the second quantization 204.
- the input data that was quantized during the first quantization 201 is delayed over a reference period - in the example, a GOP -, so as to quantize these same input data with the set of matrices chosen according to indicators and not with the predetermined matrix set used during the first quantization pass 201.
- only certain types of blocks, or even only one, are subject to dynamic quantization.
- this dynamic quantization depends on the distribution of residual costs between different block types, to assess their relative complexity levels, and to allocate more throughput for the least expensive components. more complex and critical from the point of view of the visual rendering.
- the output data rate can be regulated, for example, by a quantization step adjusted according to the bandwidth allocated to the output stream.
- the video stream 240 from the second quantization step 204 can then be entropically coded to complete the compression and produce an output MPEG stream.
- the "coefficient of quantification” is the factor of a coefficient used to quantify the data; this "quantization coefficient” can be multiplied by a scalar quantization step to adapt the output data rate.
- the dynamic quantization method according to the invention can be applied cyclically on a video stream to be encoded.
- the quantization matrices are updated according to a period equal to the reference period mentioned above, for example a GOP.
- the method cyclically applies a first quantization pass with a set of predefined and fixed matrices in order to determine residual coding costs for several types of blocks, and then applies on the same stream a second quantization pass.
- 204 with matrices with appropriately chosen coefficients.
- An MPEG encoder can thus be configured to execute a dynamic quantization method in place of a conventional quantization method, so as to preserve better visual rendering at equivalent compression level, or to obtain a better level of compression at equivalent quality.
- the encoder may comprise a memory recording the different sets of quantization coefficients that may be used, a calculation unit (programmable circuit for example) configured to calculate residual costs, relative cost indicators and to choose the set of coefficients the more adapted.
- the encoder can insert the quantization matrices in the output stream, so that a decoder receiving this stream can use these matrices to decode the blocks.
- the encoder comprises a memory recording the different sets of matrices available for quantization and inserts, in the output stream (resulting from the quantization), an identifier of the set of matrices used for quantification.
- An associated decoder stores equivalent matrices in a memory and uses the identifier present in the stream to find the set of matrices used for the quantization.
- the dynamic quantization method according to the invention makes it possible to modify the bandwidth assignments between the different types of data to be coded according to the relative importance of each of these data in the preservation of the quality of the video. It also makes it possible to modify the flow distribution for the same type of blocks by increasing or decreasing certain quantization coefficients according to the distribution of the residual costs due to different types of blocks.
- the dynamic quantization method according to the invention makes it possible to adapt the quantization levels applied to certain visual parameters (for example the chrominance) as a function of the relative evolution of other visual parameters (for example luminance).
- the dynamic quantization method according to the invention can for example be used in H.264 / MPEG4-AVC video stream encoders HD (high definition) or SD (standard definition), without however being limited to the standard H.264, the a method that can more generally be used when encoding streams comprising several types of data (inter or intra, luminance or chrominance, for example), whether these data are images, slices of images, or more generally sets of pixels that can take the form of blocks. Each of these data comprising information of different types can then be quantified optimized according to the relative residual costs between different types of data.
- the method according to the invention is also applicable to coded streams of other standards such as MPEG2.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
La présente invention concerne un procédé de quantification dynamique d'un flux d'images comportant des blocs (210) de types différents transposés dans le domaine transformé, le procédé comprenant une première étape de quantification (201) de plusieurs desdits blocs avec des coefficients de quantification initiaux (211), le procédé comprenant une étape de détermination (202), pour plusieurs types de blocs respectivement, des coûts résiduels de codage après ladite première quantification (201), et une deuxième étape de quantification (204) des blocs transposés (210) d'au moins un type avec des coefficients de quantification choisis (203) en fonction de la répartition desdits coûts résiduels entre plusieurs types de blocs. L'invention s'applique aux codeurs comprenant une étape de quantification apte à appliquer des coefficients de quantification différents selon les types de blocs d'images à coder.
Description
Procédé de quantification dynamique pour le codage de flux de données
La présente invention concerne un procédé de quantification dynamique pour le codage de flux de données. Elle s'applique notamment à la compression des vidéos selon les standards H.264 (tel que défini par l'ITU (International Télécommunication Union) autrement désigné par MPEG4- AVC par l'ISO (International Organization for Standardization)) et H.265. Plus généralement, la présente invention s'applique aux codeurs comprenant une étape de quantification au cours de laquelle on peut appliquer des coefficients de quantification différents selon les types de blocs d'images à coder.
La quantification est une étape bien connue du codage MPEG vidéo qui permet après transposition des données images dans le domaine transformé (aussi désigné par l'expression anglo-saxonne « transform domain »), de sacrifier les coefficients de l'ordre supérieur pour diminuer substantiellement la taille des données en n'affectant que modérément leur rendu visuel. La quantification est donc une étape essentielle de la compression avec perte d'information. En règle générale, c'est également celle qui introduit les artéfacts les plus importants dans la vidéo codée, en particulier lorsque les coefficients de quantification sont très élevés. La figure 1 illustre la place 101 occupée par l'étape de quantification dans une méthode de codage selon la norme MPEG4-AVC.
La complexité de codage et la quantité d'information à conserver pour garantir une qualité acceptable en sortie varie dans le temps, selon la nature des séquences contenues dans le flux. Des procédés connus permettent de coder un flux audio ou vidéo en contrôlant le débit (bitrate) des données produites en sortie. Certains de ces procédés s'appuient sur une quantification à double passe dans laquelle la première passe permet de générer des requêtes de débit à un allocateur en fonction de la complexité de la séquence vidéo, la seconde passe codant la séquence au débit alloué par l'allocateur. Le niveau de quantification appliqué dans la deuxième passe joue, dans ce contexte, le rôle d'une variable d'ajustement permettant d'atteindre le débit souhaité.
Cependant, à débit constant, la qualité de la vidéo peut fluctuer jusqu'à se dégrader par moments en deçà d'un niveau visuellement acceptable. Un moyen pour garantir un niveau de qualité minimum sur toute la durée du flux est alors d'augmenter le débit, ce qui s'avère coûteux et sous-optimal en termes d'utilisation des ressources matérielles.
Des flux à débit variable peuvent aussi être générés, le débit augmentant en relation avec la complexité de la scène à coder. Toutefois, ce type de flux ne s'accorde pas toujours avec les contraintes imposées par les infrastructures de transport. En effet, il est fréquent qu'une bande passante fixe soit allouée sur un canal de transmission, obligeant par conséquent à allouer une bande passante égale au maximum de débit rencontré dans le flux afin d'éviter les anomalies de transmission. De plus, cette technique produit un flux dont le débit moyen est sensiblement plus élevé, puisque le débit doit être augmenté au moins temporairement pour préserver la qualité des scènes les plus complexes.
Un but de l'invention est de diminuer la bande passante occupée par un flux codé selon un standard de type MPEG, ou d'augmenter la qualité perçue par l'observateur de ce flux à débit égal par ailleurs. A cet effet, l'invention a pour objet un procédé de quantification dynamique d'un flux d'images comportant des blocs de types différents transposés dans le domaine transformé, le procédé comprenant une première étape de quantification de plusieurs desdits blocs avec des coefficients de quantification initiaux, le procédé étant caractérisé en ce qu'il comprend une étape de détermination, pour plusieurs types de blocs respectivement, des coûts résiduels de codage après ladite première quantification, et une deuxième étape de quantification des blocs transposés d'au moins un type avec des coefficients de quantification choisis en fonction de la répartition desdits coûts résiduels entre plusieurs types de blocs.
On peut considérer la première étape de quantification comme une pré-quantification exécutée en vue de déterminer la répartition des coûts résiduels entre différents types de blocs, c'est-à-dire par exemple le rapport entre les coûts induits par un premier type de bloc et les coûts induits par un deuxième type de bloc. Cette répartition est ensuite utilisée dans la deuxième étape de quantification pour arbitrer l'allocation de débit entre
plusieurs types de blocs et/ou entre les composantes du domaine transformé d'un même type de bloc. Les coefficients de quantification initiaux peuvent être prédéterminés pour effectuer une quantification selon un compromis défini à l'avance, par exemple en fonction des séquences d'images transformées susceptibles d'être quantifiées. Les coefficients utilisés pour la deuxième étape de quantification sont établis en fonction de la répartition des coûts résiduels et, par exemple, des critères psycho-visuels définis à l'avance, afin de minimiser la dégradation de qualité due à la quantification tout en limitant l'utilisation de bande passante lors du transport des données.
II est à noter que les coefficients de quantification utilisés par le procédé selon l'invention pour quantifier les macroblocs transformés ne doivent pas être confondus avec le paramètre de quantification, aussi appelé mb_qp_delta dans le standard MPEG4-AVC, lequel paramètre est transmis pour chaque macrobloc de l'image et permet de déduire la quantification scalaire globale à appliquer à l'ensemble des coefficients fréquentiels. En effet, le procédé de quantification dynamique selon l'invention peut effectuer un ajustement à un niveau plus fin, puisqu'il est apte à ajuster les coefficients scalaires pour chacun des coefficients fréquentiels issu de la transformée.
Selon une mise en œuvre du procédé de quantification dynamique selon l'invention, on pré calcule une pluralité de jeux de coefficients et on applique, lors de la deuxième étape de quantification des coefficients d'un jeu choisi parmi ladite pluralité. Plusieurs configurations peuvent ainsi être calculées à l'avance, chaque configuration étant associée à un jeu de coefficients de quantification. Avantageusement, les coefficients sont regroupés dans des matrices, formant ainsi des matrices de quantification. Un jeu de matrices parmi plusieurs est alors choisi lors de la deuxième étape de quantification.
Selon une mise en œuvre du procédé de quantification dynamique selon l'invention, on calcule un indicateur ou plusieurs indicateurs de répartition des coûts résiduels entre plusieurs types de blocs, on partitionne le domaine de définition desdits indicateurs en une pluralité de domaines de valeurs, on associe un jeu de coefficients pré calculés à chacun desdits domaines, et on choisit le jeu de coefficients à appliquer lors de la deuxième étape de quantification parmi lesdits jeux en fonction de la valeur desdits
indicateurs. Lorsqu'un seul indicateur est calculé, le domaine de valeurs peut être réduit à une pluralité d'intervalles de valeurs.
Selon une mise en œuvre du procédé de quantification dynamique selon l'invention, les blocs quantifiés lors de la première étape de quantification comprennent des blocs de chrominance et des blocs de luminance transposés dans le domaine transformé, et dans lequel on choisit les coefficients de quantification appliqués lors de la deuxième étape au moins en partie en fonction du rapport entre les coûts résiduels dus aux blocs de chrominance et les coûts résiduels dus aux blocs de luminance.
En d'autres termes, les blocs image sont décomposés en une pluralité de composantes colorimétriques que l'on transpose par blocs dans le domaine transformé et sur lesquels on applique des coefficients de préquantification, on détermine la répartition des coûts résiduels de codage des blocs de l'image entre les différentes composantes colorimétriques, on quantifie les blocs transposés dans le domaine transformé avec des coefficients choisis en fonction de ladite répartition. Cette mise en œuvre du procédé selon l'invention permet de mieux répartir le débit alloué entre les blocs de chrominance et de luminance, mais également d'affiner la répartition du débit alloué entre les composantes du domaine transformé d'un même type de bloc.
Selon une mise en œuvre du procédé de quantification dynamique selon l'invention, lors de la deuxième étape de quantification, on diminue les coefficients de quantification associés aux composantes d'ordre inférieur des blocs de chrominance, en relation avec la diminution des coûts résiduels dus aux blocs de chrominance par rapport aux coûts résiduels dus aux blocs de luminance. Par composantes d'ordre inférieur, on entend les composantes de faible valeur dans le domaine transformée, autrement dit les composantes basses fréquences dans le domaine fréquentiel, par exemple les composantes correspondant à une fréquence inférieure ou égale à une valeur prédéterminée.
Selon une mise en œuvre du procédé de quantification dynamique selon l'invention, les blocs quantifiés lors de la première étape de quantification comprennent des blocs de codage prédictif spatial et des blocs de codage prédictif temporel transposés dans le domaine transformé, et dans lequel on choisit les coefficients de quantification appliqués lors de la
deuxième étape au moins en partie en fonction du rapport entre les coûts résiduels dus aux blocs à codage prédictif spatial et les coûts résiduels dus aux blocs à codage prédictif temporel. Autrement dit, on détermine, distinctement pour chaque type de codage intra-image et inter-image (respectivement codage prédictif spatial et codage prédictif temporel), les coûts résiduels de codage à l'issue de la pré-quantification, puis on applique une quantification avec des coefficients distincts pour chaque type de bloc et déterminés en fonction desdits coûts relatifs de codage. Par « bloc à codage prédictif spatial » et « bloc à codage prédictif temporel », on peut entendre, respectivement, « bloc dont le codage est de type prédictif spatial » et « bloc dont le codage est de type prédictif temporel ». On peut également entendre, respectivement, « bloc compris dans une image dont les blocs sont tous à codage prédictif spatial » et « bloc compris dans une image comportant des blocs à codage prédictif temporel ».
Selon une mise en œuvre du procédé de quantification dynamique selon l'invention, lors de la deuxième étape de quantification, on diminue les coefficients de quantification associés aux blocs à codage prédictif spatial, et on augmente les coefficients de quantification associés aux blocs à codage prédictif temporel, en relation avec la diminution des coûts résiduels dus aux blocs à codage prédictif temporel par rapport aux coûts résiduels dus aux blocs à codage prédictif spatial.
Selon une mise en œuvre du procédé de quantification dynamique selon l'invention, on regroupe et on mémorise les coefficients de quantification appliqués lors de la deuxième étape de quantification à un même type de bloc ou à même ensemble de types de blocs dans une matrice de quantification.
Le flux à coder peut être au standard MPEG (par exemple MPEG4, autrement dit H.264), et un jeu de matrices de quantification choisi dynamiquement en fonction de la répartition des coûts résiduels peut comprendre :
■ trois matrices destinées à la quantification des blocs à codage prédictif spatial de dimension 4x4 pixels, parmi lesquelles deux sont destinées aux blocs de chrominance et une est destinée aux blocs de luminance ;
■ trois matrices destinées à la quantification des blocs à codage prédictif temporel de dimension 4x4 pixels, parmi lesquelles deux sont destinées aux blocs de chrominance et une est destinée aux blocs de luminance ; et
■ deux matrices destinées à la quantification des blocs de luminance de dimension 8x8 pixels, parmi lesquels les blocs à codage prédictif spatial et les blocs à codage prédictif temporel.
L'invention a également pour objet un procédé de codage d'un flux d'images formant une vidéo, comprenant une étape de transformation par blocs des images dans le domaine transformé, dans lequel on exécute un procédé de quantification dynamique tel que décrit plus haut sur lesdits blocs. Le flux peut être codé selon un standard MPEG.
Selon une mise en œuvre du procédé de codage précité, le procédé de quantification dynamique est appliqué cycliquement sur une période de référence égale à un groupe d'images MPEG.
L'invention a également pour objet un codeur de vidéos, par exemple MPEG, configuré pour exécuter le procédé de décodage tel que décrit plus haut.
L'invention a également pour objet un procédé de décodage d'un flux d'images codé par un codeur MPEG tel que décrit plus haut, le décodeur étant configuré pour retrouver, à partir dudit flux d'images codé, les coefficients de quantification utilisés par le codeur pour quantifier les blocs de données. Les matrices de quantification peuvent être retrouvées dans le flux si elles y ont été insérées par le codeur, ou retrouvés par un identifiant inséré dans le flux, le décodeur comportant alors une mémoire pour enregistrer les différentes matrices de quantification susceptibles d'être employées.
L'invention a également pour objet un décodeur de vidéos MPEG, configuré pour exécuter le procédé de codage tel que décrit plus haut.
D'autres caractéristiques apparaîtront à la lecture de la description détaillée donnée à titre d'exemple et non limitative qui suit faite en regard de dessins annexés qui représentent :
- la figure 1 , un synoptique illustrant une méthode de codage selon la norme MGEG4-AVC dans lequel le procédé selon l'invention peut être employé, cette figure ayant déjà été présentée plus haut ;
- la figure 2, un synoptique illustrant un exemple de procédé de quantification dynamique selon l'invention. L'exemple non limitatif développé par la suite est celui de la quantification d'un flux d'images à coder selon le standard H.264/MPEG4- AVC.
La figure 2 présente un synoptique illustrant un exemple de procédé de quantification dynamique selon l'invention. Celui-ci comprend une première étape de quantification 201 , une étape de détermination 202 des coûts résiduels relatifs de codage, une étape de choix 203 des coefficients de quantification, et une deuxième étape de quantification 204 exploitant les coefficients choisis précédemment.
Préalablement à l'exécution du procédé de quantification dynamique selon l'invention, les images à coder sont découpées en macroblocs. Chaque macrobloc correspond à une portion d'image et est décomposé en une pluralité de composantes, selon un système colorimétrique choisi. Ainsi, un macrobloc du standard H.264 peut être défini comme une combinaison de blocs comportant les informations de luminance et de chrominance. Selon les formats d'échantillonnage chromatique (4:2:0, 4:2:2 par exemple), les blocs de chrominance sont de dimensions différentes. Dans l'exemple, dans l'exemple les macroblocs ont une taille de 16x16 pixels. Ces macroblocs sont constitués de blocs de 8x8 ou 4x4 pixels comprenant les informations de luminance et de chrominance. Les blocs sont transformés dans le domaine transformé par une DCT (Transformée en Cosinus Discrète) en vue d'effectuer une compression visuellement acceptable par quantification. Parmi ces blocs, certains sont codés selon un mode de codage prédictif spatial (aussi qualifié par le terme « intra » pour signifier que le codage ne dépend pas d'une image autre que celle dans laquelle le bloc se situe), d'autres selon un mode prédictif (aussi qualifié par
le terme « inter » pour désigner les blocs dont le codage dépend d'au moins une autre image que celle dans laquelle il se situe).
Dans un premier temps, les blocs 210 issus de l'étape de transformation dans le domaine transformé font l'objet d'une première quantification 201 afin de mesurer les coûts résiduels de codage. Des valeurs résiduelles de composantes transformées sont obtenues à l'issue de cette première quantification 201 , de sorte que pour chaque bloc quantifié, on peut déterminer le coût résiduel de codage, autrement dit le nombre de bits nécessaires pour coder les valeurs résiduelles après quantification. A l'issue de cette première quantification, on obtient donc des coûts résiduels de codage pour chaque type (ou catégorie) de bloc : bloc de chrominance, bloc de luminance, bloc codé en mode intra, bloc codé en mode inter, par exemple.
Ces exemples de types ne sont pas limitatifs et peuvent notamment dépendre du système choisi pour décomposer les macroblocs en une pluralité de composantes informationnelles (dans l'exemple, le système colorimétrique utilisé est YUV, « Y » représentant la composante de luminance, « U » et « V » représentant les composantes de chrominance). Les types de bloc peuvent être considérés en croisant plusieurs catégories entre-elles : par exemple un bloc de type intra peut être en même temps un bloc de type chrominance ; on peut alors considérer les coûts de codage résiduels pour les blocs de type « intra-chrominance ». Il est ainsi possible de partitionner l'espace des types de blocs selon de multiples possibilités, un autre exemple consistant à ne considérer que deux types de blocs : un premier type, par exemple les blocs de luminance codés en intra, et un deuxième type regroupant toutes les autres catégories possibles de blocs.
On peut également ne considérer que les coûts de codage induits par certains types de blocs tout en ignorant ceux impliqués par les autres. Par exemple, il est possible de ne considérer que les coûts résiduels des blocs inter et intra, sans mesurer les coûts relatifs aux blocs de chrominance et de luminance. Par ailleurs, selon une mise en œuvre du procédé selon l'invention, la classification des blocs en différents types peut dépendre du type d'image à laquelle appartient ce bloc. Par exemple, les images MPEG de type P (à prédiction temporelle) et B (à prédiction bidirectionnelle)
comportent majoritairement des blocs à codage prédictif temporel. Toutefois, celle-ci peuvent comporter également des blocs à codage prédictif spatial. Le type de bloc considéré pour le calcul des coûts résiduels comme étant celui du type de l'image à laquelle ce bloc appartient, de sorte qu'un bloc à codage prédictif spatial présent dans une image (B ou P) dont le codage est majoritairement prédictif temporel est considéré comme participant aux coûts résiduels des images de type inter, donc considéré comme type « inter ». Cela permet de répartir les coûts résiduels en fonction du type de l'image (I ou B/P) à coder.
Préférentiellement, les coefficients initiaux 21 1 choisis pour quantifier les données lors de cette première quantification 201 sont différents selon le type de bloc. Dans l'exemple, une matrice de quantification par type de bloc est utilisée. Ainsi, dans l'exemple, relatif au standard H.264/MPEG4-AVC, huit matrices différentes peuvent être définies :
■ six matrices pour les blocs de dimension 4x4 pixels : une pour les blocs de type Intra 4x4 Y (luminance), une pour les blocs de type Intra 4x4 Chroma U (Chrominance U), une pour les blocs de type Intra 4x4 Chroma V, une pour les blocs de type Inter 4x4 Y, une pour les blocs de type Inter 4x4 Chroma U, et une pour les blocs de type Inter 4x4
Chroma V ;
■ deux matrices pour les blocs de dimension 8x8 pixels : une pour les blocs de type Intra 8x8 Y, et une pour les blocs de type Inter 8x8 Y.
Il est à noter que les types de blocs considérés dans le calcul des coûts de codage résiduels peuvent être découplés des types associés aux matrices de quantification. Autrement dit, on peut partitionner l'espace des types de blocs différemment de la manière dont sont réparties les matrices de quantification (cette dernière pouvant notamment dépendre du standard de codage utilisé). Par exemple, on pourrait n'utiliser que deux types de matrices de quantification : une pour les blocs de type intra et une autre pour les blocs de type inter. Dans l'exemple développé par la suite, on mesure les coûts résiduels pour chacun des types correspondant aux matrices de quantification.
Les coefficients 21 1 choisis pour quantifier les données lors de cette première quantification 201 peuvent être prédéterminés à l'avance pour
correspondre à un compromis moyen pour tous types de séquences vidéo. A l'issue de la première quantification 201 par ces huit matrices respectives, huit séries de coûts résiduels sont obtenues, chaque série comprenant les mesures de coûts résiduels pour chacun des blocs quantifiés dans le type correspondant. Ainsi, par exemple, une première série de coûts résiduels est obtenue pour les blocs de type intra 4x4 Y, une deuxième pour les blocs de type intra 4x4 U, etc.
Les coûts résiduels appartenant à une même série peuvent être sommés sur une période de référence, par exemple un groupe d'images, un groupe d'images comprenant une pluralité d'images dont la première est généralement à codage prédictif spatial, les autres images du groupe pouvant comprendre des blocs à codage prédictif temporel basés sur les blocs compris par une ou plusieurs autres images dudit groupe, de sorte que la connaissance des seules images du groupe suffit à décoder ledit groupe. Un groupe d'images peut par exemple être un groupe d'images au sens du standard H.264 (ou MPEG), plus communément désigné dans le standard H.264 par l'acronyme GOP pour « Group Of Pictures ». En d'autres termes, la première étape de quantification 201 peut par exemple être exécutée sur un ensemble d'images formant un GOP, de sorte qu'un coût résiduel global puisse être calculé pour l'ensemble du GOP sur chacun des types de blocs à quantifier. Dans l'exemple, on obtient ainsi huit valeurs de coûts pour le GOP, chaque valeur étant égale à la somme des coûts résiduels obtenus respectivement dans chaque type de bloc sur l'ensemble des images du GOP. On note ces coûts globaux résiduels comme suit : C|NTRA_4X4_Y, C|NTRA_4x4_U, C|NTRA_4x4_V, C|NTER_4X4_Y, C|NTER_4X4_U, C|NTER_4X4_V, C|NTRA_8X8_Y,
CINTER_8X8_Y, chacun de ces coûts correspondant aux types respectifs de blocs définis plus haut.
D'autres périodes de référence pour le calcul des coûts globaux résiduels sont envisageables, par exemple une période regroupant plusieurs GOP, ou une période inférieure à celle d'un GOP.
En outre, selon une mise en œuvre du procédé selon l'invention, la première quantification 201 n'est effectuée que sur un échantillon des blocs d'images transformés 210 fournis en entrée, les coûts résiduels résultant dans ce cas uniquement de la quantification des blocs composant l'échantillon.
Dans un deuxième temps 202, les coûts résiduels déterminés lors de la première étape de quantification 201 sont exploités pour calculer des indicateurs. Ces indicateurs peuvent notamment être égaux à des rapports de coûts résiduels relatifs à des types différents.
Par exemple, un premier indicateur 11 calculé peut être 11 =
(C|NTER_8x8_Y + C|NTER_4x4_Y + C|NTER_4x4_U + C|NTER_4x4_v) / (C|NTRA_8x8_Y +
CINTRA_4X4_Y + CINTRA_4X4_U + C|NTRA_4X4_V), autrement dit, 11 est égal au rapport entre les coûts résiduels de codage des blocs de mode inter et des blocs de mode intra. Cet indicateur 11 permet de déterminer les poids relatifs des informations spatiales et temporelles dans le codage des images. Un autre exemple d'indicateur pouvant être calculé est 12 = (C|NTRA_4X4_U + C|NTRA_4X4_V
+ C|NTER_4x4_U +C|NTER_4x4_v) / (C|NTRA_4x4_Y + C|NTER_4x4_Y + C|NTRA_8x8_Y +
CINTER_8XS_Y), autrement dit le rapport entre les coûts résiduels de codage des blocs de chrominance et des blocs de luminance. Cet indicateur 12 permet de déterminer les poids relatifs des informations de chrominance et de luminance dans le codage des images. D'autres indicateurs peuvent ainsi être calculés pour déterminer la densité informationnelle de certains types de blocs par rapport à d'autres types. Les indicateurs permettent donc de connaître au moins en partie la répartition des coûts résiduels entre les différents types de blocs à coder.
Dans un troisième temps 203, les indicateurs déterminés lors de l'étape précédente 202 sont exploités pour choisir des jeux de coefficients à utiliser lors de la quantification des données. Les coefficients sont choisis en fonction des indicateurs et de critères psycho-visuels pour améliorer le rendu visuel de la vidéo.
A titre illustratif, pour reprendre l'indicateur 11 précité, si le rapport 11 entre les coûts résiduels de codage des blocs de mode inter et des blocs de mode intra est élevé, cela signifie que la séquence d'images est complexe du point de vue temporel. Par exemple, la scène représentée par la séquence d'images comprend des objets en mouvement, dont l'œil humain ne serait pas en mesure de percevoir les nombreux détails de texture. Dans ce type de séquence, le système visuel humain applique un filtre intégrateur qui ignore les multiples détails dans les masses en mouvement, mais est
sensible à la fluidité du mouvement. Dans un tel cas, une quantification plus sévère est préférablement appliquée sur les informations codées en mode intra pour laisser suffisamment de débit disponible aux informations codées en mode inter et ainsi mieux préserver le mouvement. Aussi, afin de réserver prioritairement la bande passante disponible pour le codage des informations inter, les coefficients des matrices de quantification correspondant aux types Intra sont augmentés et ceux correspondant aux types Inter sont diminués. Dans l'exemple, les coefficients des matrices relatives aux types de blocs Intra 4x4 Y, Intra 4x4 Chroma U, Intra 4x4 Chroma V, et Intra 8x8 Y sont augmentés et ceux des matrices Inter 4x4 Y, Inter 4x4 Chroma U, Inter 4x4 Chroma V et Inter 8x8 Y sont diminués. A contrario, si ce rapport 11 est faible — par exemple, si la séquence d'images à coder représente une scène en léger mouvement — , une préservation des données intra est à privilégier et les coefficients des matrices de type Intra sont diminués les coefficients de type Inter étant augmentés, par compensation. De cette manière, la qualité des détails est améliorée pour l'ensemble de la scène, car la meilleure qualité de l'image de référence codée en Intra se propage aux images de prédiction temporelle, qui bénéficient d'une prédiction temporelle simple dans ce type de séquences.
Selon une autre illustration basée sur l'indicateur 12, si le rapport
12 entre les coûts résiduels de codage des blocs de chrominance et des blocs de luminance est faible, alors la préservation des couleurs est essentielle, car les artéfacts de couleur sont davantage perceptibles par un observateur humain dans les séquences d'image à faible contenu chromatique. Aussi, les coefficients correspondant aux coefficients d'ordre inférieur des matrices relatives aux types de blocs Intra 4x4 Chroma U, Intra 4x4 Chroma V, Inter 4x4 Chroma U et Inter 4x4 Chroma V sont diminués.
Selon une mise en œuvre du procédé selon l'invention, plusieurs jeux de matrices de quantification sont prédéterminés et sélectionnâmes en fonction des indicateurs, un jeu de matrices comprenant, dans l'exemple, huit matrices de quantification. Par exemple, si deux indicateurs 11 et 12 sont déterminés à l'étape précédente 202, le jeu de matrices choisi peut dépendre conjointement des valeurs de 11 et 12. Le domaine des valeurs de chaque indicateur est partitionné en plusieurs intervalles, de sorte que les valeurs des coefficients des matrices sont différentes lorsque la valeur d'un
indicateur passe d'un intervalle à l'autre. Un jeu de matrices par couple d'intervalles peut ainsi être préparé à l'avance, de sorte que dans le cas général, le nombre de jeux disponible pour la deuxième quantification 204 est égal au produit du nombre d'intervalles dans chaque domaine de valeurs des indicateurs. Dans l'exemple, si deux intervalles sont définis pour 11 et trois intervalles sont définis pour 12, alors six jeux de matrices pourront être définis. Dans un cas particulier, seul une valeur de seuil est définie pour chaque indicateur, auquel cas un maximum de 2nombre d'indicateurs est défini et le jeu de matrices le plus adapté est choisi après comparaison avec chaque seuil d'indicateur.
Selon une autre mise en œuvre du procédé selon l'invention, les jeux de matrices ne sont pas précalculés et les coefficients des matrices sont calculés à la volée en fonction des valeurs des indicateurs.
Selon encore une autre mise en œuvre du procédé selon l'invention, les coefficients de quantification sont choisis directement à partir des coûts résiduels calculés à partir de la première quantification 201 ; autrement dit aucun indicateur intermédiaire n'est calculé.
Dans un quatrième temps, une deuxième quantification 204 est effectuée sur les données d'entrée en utilisant les coefficients de quantification déterminés à l'étape précédente 203.
Dans l'exemple précité, le jeu de huit matrices correspondant aux valeurs d'indicateurs obtenus est utilisé pour la deuxième quantification 204.
Les données d'entrée qui avaient été quantifiées lors de la première quantification 201 sont retardées sur une période de référence — dans l'exemple, un GOP— , de manière à quantifier ces mêmes données d'entrée avec le jeu de matrices choisi en fonction des indicateurs et non pas avec le jeu de matrices prédéterminé utilisé lors de la première passe de quantification 201 .
Selon une mise en œuvre du procédé selon l'invention, seuls certains types de blocs, voire un seul, font l'objet d'une quantification dynamique. Dans l'exemple précité, il est par exemple envisageable de rendre la quantification de tous les blocs de type « inter 4x4 chroma U» dynamique, et de la rendre dynamique seulement pour ces blocs, les autres types de blocs étant quantifiés selon une méthode classique. Néanmoins,
dans cet exemple, bien qu'un seul type de bloc soit quantifié de manière dynamique, cette quantification dynamique dépend de la répartition des coûts résiduels entre différents types de blocs, pour évaluer leurs niveaux de complexité relatifs et allouer davantage de débit pour les composantes les plus complexes et critiques du point de vue du rendu visuel.
En outre, conformément aux techniques classiques de codage, le débit de données en sortie peut être régulé, par exemple, par un pas de quantification ajusté en fonction de la bande passante allouée au flux de sortie. Le flux vidéo 240 issu de la deuxième étape 204 de quantification peut alors faire l'objet d'un codage entropique pour compléter la compression et produire un flux MPEG en sortie. Aussi, par « coefficient de quantification », il faut entendre le facteur d'un coefficient utilisé pour quantifier les données ; ce « coefficient de quantification » pouvant être multiplié par un pas de quantification scalaire pour adapter le débit des données en sortie.
Le procédé de quantification dynamique selon l'invention peut être appliqué cycliquement sur un flux vidéo à coder. Les matrices de quantification sont mises à jour selon une période égale à la période de référence mentionnée plus haut, par exemple un GOP. En d'autres termes, le procédé applique cycliquement, une première passe de quantification avec un jeu de matrices prédéfinies et fixes en vue de déterminer des coûts résiduels de codage pour plusieurs types de blocs, puis applique sur le même flux une deuxième passe de quantification 204 avec des matrices aux coefficients judicieusement choisis.
Un codeur MPEG peut ainsi être configuré pour exécuter un procédé de quantification dynamique à la place d'un procédé classique de quantification, de manière à préserver un meilleur rendu visuel à niveau de compression équivalent, ou à obtenir un meilleur niveau de compression à qualité équivalente.
Le codeur peut comprendre une mémoire enregistrant les différents jeux de coefficients de quantification susceptibles d'être utilisés, une unité de calcul (circuit programmable par exemple) configurée pour calculer des coûts résiduels, des indicateurs de coûts relatifs et pour choisir le jeu de coefficients le plus adapté.
Par ailleurs, le codeur peut insérer les matrices de quantification dans le flux de sortie, de manière à ce qu'un décodeur recevant ce flux puisse utiliser ces matrices pour décoder les blocs. Selon un mode de réalisation du codeur selon l'invention, le codeur comporte une mémoire enregistrant les différents jeux de matrices disponibles pour la quantification et insère, dans le flux de sortie (issue de la quantification), un identifiant du jeu de matrices utilisé pour la quantification. Un décodeur associé enregistre des matrices équivalentes dans une mémoire et exploite l'identifiant présent dans le flux pour retrouver le jeu de matrices ayant servi à la quantification.
Le procédé de quantification dynamique selon l'invention permet de modifier les affectations de bande passante entre les différents types de données à coder en fonction de l'importance relative de chacune de ces données dans la préservation de la qualité de la vidéo. Il permet également de modifier la répartition de débit pour un même type de blocs en augmentant ou diminuant certains coefficients de quantification en fonction de la répartition des coûts résiduels dus à différents types de blocs.
Le procédé de quantification dynamique selon l'invention permet d'adapter les niveaux de quantification appliqués à certains paramètres visuels (par exemple la chrominance) en fonction de l'évolution relative d'autres paramètres visuels (par exemple la luminance).
Le procédé de quantification dynamique selon l'invention peut par exemple être employé dans les codeurs H.264/MPEG4-AVC de flux vidéo HD (haute définition) ou SD (définition standard), sans toutefois se limiter au standard H.264, le procédé pouvant plus généralement être exploité lors du codage de flux comportant plusieurs types de données (inter ou intra, luminance ou chrominance, par exemple), que ces données soient des images, des tranches d'images, ou plus généralement des ensembles de pixels pouvant prendre la forme de blocs. Chacune de ces données comprenant des informations de types différents pouvant alors faire l'objet d'une quantification optimisée en fonction des coûts résiduels relatifs entre les différents types de données. Le procédé selon l'invention est également applicable aux flux codés d'autres standards tels que MPEG2.
Claims
1 . Procédé de quantification dynamique d'un flux d'images comportant des blocs (210) de types différents transposés dans le domaine transformé, le procédé comprenant une première étape de quantification (201 ) de plusieurs desdits blocs avec des coefficients de quantification initiaux (21 1 ), le procédé étant caractérisé en ce qu'il comprend une étape de détermination (202), pour plusieurs types de blocs respectivement, des coûts résiduels de codage après ladite première quantification (201 ), et une deuxième étape de quantification (204) des blocs transposés (210) d'au moins un type avec des coefficients de quantification choisis (203) en fonction de la répartition desdits coûts résiduels entre plusieurs types de blocs.
2. Procédé de quantification dynamique selon la revendication 1 , dans lequel on pré calcule une pluralité de jeux de coefficients et on applique, lors de la deuxième étape de quantification (204) des coefficients d'un jeu choisi parmi ladite pluralité.
3. Procédé de quantification dynamique selon la revendication 2, dans lequel on calcule un indicateur ou plusieurs indicateurs de répartition des coûts résiduels entre plusieurs types de blocs, on partitionne le domaine de définition desdits indicateurs en une pluralité de domaines de valeurs, on associe un jeu de coefficients pré calculés à chacun desdits domaines, et on choisit le jeu de coefficients à appliquer lors de la deuxième étape de quantification (204) parmi lesdits jeux en fonction de la valeur desdits indicateurs.
4. Procédé de quantification dynamique selon l'une quelconque des revendications précédentes, dans lequel les blocs quantifiés lors de la première étape de quantification (201 ) comprennent des blocs de chrominance et des blocs de luminance transposés dans le domaine transformé, et dans lequel on choisit les coefficients de quantification appliqués lors de la deuxième étape (204) au moins en partie en fonction du rapport entre les coûts résiduels dus aux blocs de chrominance et les coûts résiduels dus aux blocs de luminance.
5. Procédé de quantification dynamique selon la revendication 4, dans lequel, lors de la deuxième étape de quantification (204), on diminue les coefficients de quantification associés aux composantes correspondant à une fréquence inférieure ou égale à une valeur prédéterminée dans les blocs de chrominance, en relation avec la diminution des coûts résiduels dus aux blocs de chrominance par rapport aux coûts résiduels dus aux blocs de luminance.
6. Procédé de quantification dynamique selon l'une quelconque des revendications précédentes, dans lequel les blocs quantifiés lors de la première étape de quantification (201 ) comprennent des blocs de codage prédits spatialement et des blocs de codage prédictif temporel transposés dans le domaine transformé, et dans lequel on choisit les coefficients de quantification appliqués lors de la deuxième étape (204) au moins en partie en fonction du rapport entre les coûts résiduels dus aux blocs à codage prédictif spatial et les coûts résiduels dus aux blocs à codage prédictif temporel.
7. Procédé de quantification dynamique selon la revendication 6, dans lequel, lors de la deuxième étape de quantification (204), on diminue les coefficients de quantification associés aux blocs à codage prédictif spatial, et on augmente les coefficients de quantification associés aux blocs à codage prédictif temporel, en relation avec la diminution des coûts résiduels dus aux blocs à codage prédictif temporel par rapport aux coûts résiduels dus aux blocs à codage prédictif spatial.
8. Procédé de quantification dynamique selon l'une des revendications 1 à 7, dans lequel on regroupe et on mémorise les coefficients de quantification appliqués lors de la deuxième étape de quantification (204) à un même type de bloc ou à même ensemble de types de blocs dans une matrice de quantification.
9. Procédé de quantification dynamique selon la revendication 8, dans lequel le flux est à coder au standard MPEG, dans lequel un jeu de matrices de quantification choisi dynamiquement en fonction de la répartition des coûts résiduels comprend :
■ trois matrices destinées à la quantification des blocs à codage prédictif spatial de dimension 4x4 pixels, parmi lesquelles deux sont destinées aux blocs de chrominance et une est destinée aux blocs de luminance ;
■ trois matrices destinées à la quantification des blocs à codage prédictif temporel de dimension 4x4 pixels, parmi lesquelles deux sont destinées aux blocs de chrominance et une est destinée aux blocs de luminance ; et
■ deux matrices destinées à la quantification des blocs de luminance de dimension 8x8 pixels, parmi lesquels les blocs à codage prédictif spatial et les blocs à codage prédictif temporel.
10. Procédé de codage d'un flux d'images formant une vidéo, comprenant une étape de transformation par blocs des images dans le domaine transformé, dans lequel on exécute un procédé de quantification dynamique sur lesdits blocs selon l'une quelconque des revendications 1 à 9.
1 1 . Procédé de codage d'un flux d'images formant une vidéo selon la revendication 10, dans lequel le flux est codé selon un standard MPEG.
12. Procédé de codage d'un flux d'images selon la revendication 1 1 , dans lequel le procédé de quantification dynamique est appliqué cycliquement sur une période de référence égale à un groupe d'images MPEG.
13. Codeur de vidéos, caractérisé en ce qu'il est configuré pour exécuter le procédé de codage selon la revendication 1 1 ou 12.
14. Procédé de décodage d'un flux d'images codé par un codeur MPEG selon la revendication 13, le décodeur étant configuré pour retrouver, à partir dudit flux d'images codé, les coefficients de quantification utilisés par le codeur pour quantifier les blocs de données.
15. Décodeur de vidéos MPEG, caractérisé en ce qu'il est configuré pour exécuter le procédé de décodage selon la revendication 14.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR1250480A FR2985879A1 (fr) | 2012-01-17 | 2012-01-17 | Procede de quantification dynamique pour le codage de flux de donnees |
PCT/EP2012/076626 WO2013107600A1 (fr) | 2012-01-17 | 2012-12-21 | Procede de quantification dynamique pour le codage de flux de donnees |
Publications (1)
Publication Number | Publication Date |
---|---|
EP2805486A1 true EP2805486A1 (fr) | 2014-11-26 |
Family
ID=47435999
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
EP12806496.1A Withdrawn EP2805486A1 (fr) | 2012-01-17 | 2012-12-21 | Procede de quantification dynamique pour le codage de flux de donnees |
Country Status (4)
Country | Link |
---|---|
US (1) | US20150010073A1 (fr) |
EP (1) | EP2805486A1 (fr) |
FR (1) | FR2985879A1 (fr) |
WO (1) | WO2013107600A1 (fr) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106961603B (zh) * | 2017-03-07 | 2018-06-15 | 腾讯科技(深圳)有限公司 | 帧内编码帧码率分配方法和装置 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2002080565A2 (fr) * | 2001-03-29 | 2002-10-10 | Koninklijke Philips Electronics N.V. | Procede de codage video et dispositif de codage correspondant |
US9008171B2 (en) * | 2008-01-08 | 2015-04-14 | Qualcomm Incorporated | Two pass quantization for CABAC coders |
EP2430836B1 (fr) * | 2009-05-16 | 2016-08-17 | Thomson Licensing | Procédés et appareil pour un ajustement de décalage d'arrondi de quantification amélioré pour un codage vidéo |
US8681858B2 (en) * | 2009-12-23 | 2014-03-25 | General Instrument Corporation | Rate control for two-pass encoder |
US8532169B2 (en) * | 2009-12-23 | 2013-09-10 | General Instrument Corporation | Rate control for two-pass encoder using adaptive quantization parameters |
-
2012
- 2012-01-17 FR FR1250480A patent/FR2985879A1/fr active Pending
- 2012-12-21 EP EP12806496.1A patent/EP2805486A1/fr not_active Withdrawn
- 2012-12-21 US US14/372,927 patent/US20150010073A1/en not_active Abandoned
- 2012-12-21 WO PCT/EP2012/076626 patent/WO2013107600A1/fr active Application Filing
Non-Patent Citations (1)
Title |
---|
See references of WO2013107600A1 * |
Also Published As
Publication number | Publication date |
---|---|
WO2013107600A1 (fr) | 2013-07-25 |
US20150010073A1 (en) | 2015-01-08 |
FR2985879A1 (fr) | 2013-07-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8908758B2 (en) | High performance rate control for multi-layered video coding applications | |
EP2225888B1 (fr) | Procédé de codage double passe par macrobloc | |
US8369417B2 (en) | Optimal denoising for video coding | |
CN108476325B (zh) | 用于高动态范围颜色转换校正的介质、方法和设备 | |
FR2904494A1 (fr) | Procede et dispositif de compression d'image, systeme de telecommunication comportant un tel dispositif et programme mettant en oeuvre un tel procede | |
FR2948845A1 (fr) | Procede de decodage d'un flux representatif d'une sequence d'images et procede de codage d'une sequence d'images | |
WO2013063638A2 (fr) | Système et procédé de compression d'image perceptuellement sans perte et perceptuellement améliorée | |
TWI573443B (zh) | 使用顯著圖之視訊編碼技術 | |
EP3139608A1 (fr) | Procédé de compression d'un flux de données vidéo | |
FR2857205A1 (fr) | Dispositif et procede de codage de donnees video | |
WO2007060071A1 (fr) | Procede et dispositif de codage d'une image video | |
EP3972246B1 (fr) | Procédé de codage et de décodage d'images, dispositif de codage et de décodage d'images et programmes d'ordinateur correspondants | |
EP2805486A1 (fr) | Procede de quantification dynamique pour le codage de flux de donnees | |
EP1511319A1 (fr) | Filtre pour l'extraction du grain de film | |
JP2005124145A (ja) | デジタル映像データの復号化方法 | |
FR2944936A1 (fr) | Procedes de codage et de decodage d'un bloc de donnees images, dispositifs de codage et de decodage implementant lesdits procedes | |
Yamada et al. | Reduced-reference based video quality-metrics using representative-luminance values | |
EP2839641A1 (fr) | Procede de quantification dynamique pour le codage video | |
FR2916931A1 (fr) | Procede de selection d'une donnee de codage et dispositif de codage implementant ledit procede | |
FR3041851A1 (fr) | Procede d'allocation de debit, dispositif, codeur et programme d'ordinateur associes | |
FR2957744A1 (fr) | Procede de traitement d'une sequence video et dispositif associe | |
Luo et al. | Improving H. 264/AVC video coding with adaptive coefficient suppression | |
WO2016132074A1 (fr) | Codage d'images par quantification vectorielle | |
EP4005217A1 (fr) | Système et procédé d'estimation d'artéfact de blocs dans un codage vidéo basé sur des transformations | |
FR3027481A1 (fr) | Decodeur, procede et systeme de decodage de flux multimedia |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PUAI | Public reference made under article 153(3) epc to a published international application that has entered the european phase |
Free format text: ORIGINAL CODE: 0009012 |
|
17P | Request for examination filed |
Effective date: 20140730 |
|
AK | Designated contracting states |
Kind code of ref document: A1 Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR |
|
DAX | Request for extension of the european patent (deleted) | ||
17Q | First examination report despatched |
Effective date: 20160210 |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWN |
|
18D | Application deemed to be withdrawn |
Effective date: 20160621 |