EP3114836A1 - Procédé de modification d'un flux vidéo binaire - Google Patents

Procédé de modification d'un flux vidéo binaire

Info

Publication number
EP3114836A1
EP3114836A1 EP15707152.3A EP15707152A EP3114836A1 EP 3114836 A1 EP3114836 A1 EP 3114836A1 EP 15707152 A EP15707152 A EP 15707152A EP 3114836 A1 EP3114836 A1 EP 3114836A1
Authority
EP
European Patent Office
Prior art keywords
filtering
video stream
syntax element
binary video
decoding
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
EP15707152.3A
Other languages
German (de)
English (en)
Inventor
Denis CHARMET
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sagemcom Broadband SAS
Original Assignee
Sagemcom Broadband SAS
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sagemcom Broadband SAS filed Critical Sagemcom Broadband SAS
Publication of EP3114836A1 publication Critical patent/EP3114836A1/fr
Ceased legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • H04N19/82Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods 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/117Filters, e.g. for pre-processing or post-processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods 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/156Availability of hardware or computational resources, e.g. encoding based on power-saving criteria
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods 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/17Methods 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/176Methods 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Definitions

  • the present invention relates to a method and a device for regulating the decoding complexity of a previously compressed video stream.
  • Recent video data compression methods such as the H264 / AVC standard (ISO / IEC 14496-10 - MPEG-4 Part 10, Advanced Video Coding) / ITU-T H .264) or the emerging standard HEVC (ISO / IEC 23008-2 - MPEG-H Part 2, High Efficiency Video Coding / ITU-T H.265), have made an improvement significant compression performance.
  • These methods utilize video coding algorithms that have reduced video bit rate after compression (i.e. encoding) while preserving this video data in terms of image rendering quality after decompression (i.e. decoding).
  • the computational capacities and the memory capacities are dimensioned to the fairest, which does not allow the encoding and decoding devices to offer features beyond those for which these encoding and decoding devices were designed.
  • the problem solved by the present invention consists in ensuring the compatibility of a binary video stream with computational capacities and possibly capabilities in memory of a video decoding device, when the video decoding device is used, for example, to implement display features requiring a large computational effort.
  • the present invention relates to a method for modifying an encoded binary video stream according to a video coding algorithm comprising a prediction loop and a loop post filter integrated in the video loop. prediction.
  • the method comprises the following steps performed by a device: searching for a syntax element relating to the post-filtering loop in the binary video stream, the syntax element being used by a decoding device to control a complexity of implementation of the post loop filtering; and modifying a value of the syntax element or deleting the syntax element so as to obtain a reduction in the complexity of implementation of the post-filtering loop by the decoding device.
  • the modification or deletion of syntax elements relating to the loop filtering makes it possible to indicate to the decoding device that it can implement a simplified loop filtering post or not to implement the loop post filtering, which will reduce the complexity of decoding.
  • This method has a low computational cost because it does not require a complete decoding and re-encoding of the binary video stream.
  • the loop post filtering comprises an unlocking filtering and / or a SAO filtering ("Sample Adaptive Offset" in English terminology).
  • the method makes it possible to finely adjust the reduction of the decoding complexity.
  • the deblocking filtering reducing discontinuities between blocks of pixels and comprising a filtering of high complexity strongly attenuating the discontinuities between the blocks of pixels and a low complexity filtering weakly attenuating the discontinuities between the blocks of pixels, when the value of the syntax element has been changed and the syntax element is relative to the deblocking filtering, said value is modified so as to favor a use by the decoding device of the low-complexity unlatching filtering. Unlocking filtering of high complexity.
  • the complexity of implementation of the unlocking filtering is reduced, while allowing minimal attenuation of discontinuities between blocks.
  • the modification of the value of the syntax element makes it possible to deactivating respectively the implementation of the unlocking filtering or the implementation of the SAO filtering by the decoding device.
  • the method thus makes it possible to disable the implementation by a decoding device of the deblocking filtering and / or the SAO filtering, which makes it possible to reduce the decoding complexity.
  • the deletion of the syntax element makes it possible to deactivate respectively the implementation of the syntax element. unblocking filtering or implementation of the SAO filtering by the decoding device.
  • the method thus makes it possible to disable the implementation by the decoding device of the deblocking filtering and / or the SAO filtering, which makes it possible to reduce the decoding complexity.
  • the method also makes it possible, by eliminating syntax elements, to reduce the bit rate of the binary video stream, especially when the deleted syntax elements are syntax elements relating to SAO filtering of blocks of pixels.
  • the value of the modified syntax element and / or the deleted syntax element depend on information representative of a need to reduce a decoding complexity.
  • the need to reduce the decoding complexity depends on a display functionality desired by a user for displaying, on a display device, images corresponding to the binary video stream.
  • the method further comprises the following steps: receiving the binary video stream of a receiving device, the binary video stream being received by the receiving device via a communication network; and transmitting to the decoding device a modified binary video stream resulting from the modification of the binary video stream by the modification method.
  • a received binary video stream is adapted according to the needs of a user before being provided to the decoding device. It is therefore not necessary to modify, before transmission, an initial binary video stream as generated by a video encoder that other users might want to decode in maximum quality.
  • the method further comprises the following steps: receiving the binary video stream of an encoding device; receiving information representative of a need to reduce a decoding complexity through a communication network; and transmitting a modified binary video stream resulting from the modification by the method of modifying the binary video stream to a transmission device for transmission of the modified binary video stream over the communication network.
  • said video coding algorithm is based on the H.264 / AVC standard or on the HEVC standard.
  • the process is therefore adapted to two widely used compression standards.
  • the implementation of the method has a very low computational cost when the method is applied to video streams compliant with the H.264 / AVC standard because in this case, the changes made to the binary video stream only relate to video data. 'header and therefore do not require a thorough reading of the binary video stream.
  • the present invention relates to a device for modifying a binary video stream encoded according to a video coding algorithm comprising a prediction loop and a loop post filter integrated in the prediction loop.
  • the device comprises: means for searching in the binary video stream for a syntax element relating to the post loop filtering, the syntax element being used by a decoding device to control the implementation complexity of the post loop filtering; and means for modifying a value of the syntax element and / or means for deleting the syntax element so as to obtain a reduction in the complexity of implementing the post-loop filtering by the decoding device.
  • the present invention relates to a system for communicating a binary video stream for display by a display device, the binary video stream having been encoded according to a video coding algorithm comprising a prediction loop and a loop filter post integrated in the prediction loop, the system comprising a decoding device capable of decoding the binary video stream and capable of transmitting to the display device images corresponding to a result of the decoding of the stream binary video.
  • the system comprises a device for modifying a binary video stream according to the second aspect, the modification device being able to provide the decoding device with a modified bit stream resulting from the modification by the device for modifying the binary video stream.
  • the communication system has the same advantages as those mentioned in the first aspect.
  • the present invention relates to a computer program product.
  • the computer program product includes instructions for implementing, by a device, the method according to the first aspect, when said program is executed by a processor of said device.
  • the computer program product has the same advantages as those mentioned in the first aspect.
  • the present invention relates to storage means.
  • the storage means stores a computer program comprising instructions for implementing, by a device, the method according to the first aspect, when said program is executed by a processor of said device.
  • the storage means have the same advantages as those mentioned in the first aspect.
  • Fig. 1A schematically represents a first video transmission system comprising a device embodying the invention
  • FIG. 1B schematically represents a second video transmission system comprising a device embodying the invention
  • Fig. 2 schematically shows a device adapted to implement the present invention
  • Fig. 3 schematically shows a method for ensuring the compatibility of a binary video stream with computational capabilities and possibly memory capacities of a video decoding device, when the video decoding device is used to implement functionalities. display requiring significant computational effort,
  • Fig. 4 schematically illustrates the successive partitions that a video image undergoes during a HEVC encoding
  • Fig. 5 schematically represents a method of encoding a video stream compatible with the HEVC standard
  • Fig. 6 schematically represents a method of decoding according to the HEVC standard
  • Fig. 7 schematically represents an algorithm modifying a video stream and thus making it possible to obtain a reduction in the decoding complexity of said video stream by simplifying a post filtering method such as a deblocking filter,
  • Fig. 8 schematically represents an algorithm modifying a video stream and thus making it possible to obtain a reduction in the decoding complexity of said video stream by preventing the implementation of a post-filtering method such as a deblocking filter, and
  • Fig. 9 diagrammatically represents an algorithm modifying a video stream and thus making it possible to obtain a reduction in the decoding complexity of said video stream by preventing the implementation of a filtering method of the SAO filter type.
  • the present invention is in the field of video compression and applications using compressed videos such as video transmission applications ("streaming" in English terminology).
  • the invention is suitable for video compression methods using post loop filtering, such as H.264 / AVC and HEVC.
  • Figs. 4, 5 and 6 describe an exemplary implementation of the HEVC standard.
  • Fig. 4 illustrates the successive partitions undergone by a pixel image 402 of an original video 401, when it is encoded according to the HEVC standard.
  • a pixel is composed of three components: a luminance component and two chrominance components.
  • the picture 402 is initially divided into three slices ("slices" in English terminology).
  • a slice is an area of an image that can cover an entire image or only a portion, such as slice 403 in FIG. 4.
  • a tranche comprises at least one segment segment ("slice segment" in English terminology) optionally followed by other segment segments.
  • the slice segment in first position in the slice is called independent slice segment ("independent slice segment" in English terminology).
  • An independent slice segment such as slice segment IS1 in slice 403, includes a full header, such as a header 408.
  • the header 408 includes a set of syntax elements for decoding the slice. Any other slice segments of a slice, such as slice segments DS2, DS3, DS4, DS5 and DS6 of slice 403 in FIG. 4, are called dependent slice segments ("depend slice segment") because they have only a partial header referring to the dependent slice segment header that precedes them in the slice, here the header 408.
  • depend slice segment In the standard H.264 / AVC, only the concept of slice exists, a slice necessarily comprising a complete header and can not be divided.
  • each slice of an image is decodable independently of any other slice of the same image.
  • implementing a loop filtering post in one slice may require the use of data from another slice.
  • CTB coded tree block
  • a CTB such as CTB 409 in FIG. 4, is a square of side pixels whose size is equal to a power of two and whose size can range from sixteen to sixty-four pixels.
  • a CTB can be partitioned in the form of a quaternary tree ("quad-tree" in English terminology) into one or more coding units (“coding unit (CU)" in English terminology).
  • a coding unit is a square pixel of side whose size is equal to a power of two and whose size can range from eight to sixty-four pixels.
  • a coding unit such as the coding unit 405 of FIG. 4, can then be partitioned into prediction units ("prediction unit (PU)" in English terminology) used in predictions spatial or temporal and in transformation units (“transform unit (TU)” in English terminology) used during transformations of blocks of pixels in the frequency domain.
  • prediction unit PU
  • transformation unit transform unit
  • each CTB is partitioned in order to optimize the compression performance of the CTB. Subsequently, for simplicity, we consider that each CTB is partitioned into a coding unit and that this coding unit is partitioned into a transformation unit and a prediction unit.
  • Fig. 5 schematically represents a method of encoding a video stream compatible with the HEVC standard implemented by an encoding device.
  • the encoding of a current image 501 of a video starts with a partitioning of the current image 501 in a step 502, as described in connection with FIG. 4.
  • a partitioning of the current image 501 in a step 502, as described in connection with FIG. 4.
  • FIG. 4 we do not differentiate CTBs, coding units, transformation units and prediction units and we group these four entities under the term block.
  • the current image 501 is thus partitioned into blocks.
  • the encoding device For each block, the encoding device must determine a coding mode between an intra picture coding mode, called INTRA coding mode, and an inter picture coding mode, called INTER coding mode.
  • the INTRA coding mode consists in predicting according to an INTRA prediction method, during a step 503, the pixels of a current block from a prediction block derived from reconstructed block pixels located in a causal neighborhood. the block to code.
  • the result of the INTRA prediction is a prediction direction indicating which pixels of the neighborhood blocks to use, and a residual block resulting from a calculation of a difference between the current block and the prediction block.
  • the INTER encoding mode consists in predicting the pixels of a current block from a block of pixels, called a reference block, of a previous image or following the current image, this image being called the reference image.
  • the block of the closest reference image, according to a similarity criterion, of the current block is determined by a motion estimation step 504.
  • a motion vector indicating the position of the reference block in the reference image is determined.
  • Said motion vector is used during a motion compensation step 505 during which a residual block is calculated as a difference between the current block and the reference block.
  • inter-predicted coding mode There is also an inter-bi-predicted coding mode (or mode B) for which a current block is associated with two motion vectors, designating two reference blocks in two different images, the residual block of this block then being an average of two residual blocks.
  • the coding mode that optimizes the compression performance, according to a rate / distortion criterion, of the two modes tested is selected by the encoding device.
  • the residual block is transformed during a step 507 and quantized during a step 509.
  • the prediction direction and the transformed residual block and quantized are encoded by an entropy encoder during a step 510.
  • the motion vector of the block is predicted from a prediction vector selected from a set of vectors movement corresponding to reconstructed blocks located near the block to be coded.
  • the motion vector is then encoded by the entropy encoder at step 510 as a motion residual and an index to identify the prediction vector.
  • the transformed and quantized residual block is encoded by the entropy encoder during step 510.
  • the result of the entropy encoding is inserted into a binary video stream 511.
  • the current block is reconstructed so that the pixels that said current block contains can be used for future predictions.
  • This reconstruction phase is also called the prediction loop.
  • the quantized and quantized residual block is then applied to a reverse quantization during a step 512 and an inverse transformation in a step 513.
  • the block of FIG. prediction of the block is reconstructed. If the current block is encoded according to the INTER coding mode, the coding device applies, during a step 516, an inverse movement compensation using the motion vector of the current block to identify the reference block of the current block.
  • the prediction direction corresponding to the current block is used to reconstruct the reference block of the current block.
  • the reference block and the reconstructed residual block are summed to obtain the reconstructed current block.
  • a post filter loop ("loop filter" in English terminology) is applied, in a step 517, to the reconstructed block.
  • This post-filtering post-filtering loop is called because this post-filtering occurs in the prediction loop so as to obtain the same reference images as the decoding, and to avoid an offset between the encoding and the decoding.
  • Post loop filtering is one of the new compression tools that appeared in H.264 / AVC and improved in HEVC.
  • the HEVC loop filtering post includes two post-filtering methods, ie deblocking filtering (English terminology) and SAO filtering ("Sample Adaptive Offset" in English terminology).
  • H.264 / AVC post filtering only includes unblocking filtering.
  • the purpose of unlocking filtering is to mitigate discontinuities at block boundaries due to quantization differences between blocks. It is adaptive filtering that can be enabled or disabled, and when activated, can take the form of a high complexity debug filtering based on a one-dimensional separable filter with six filter coefficients, that a strong filter is then called, and a low complexity deblocking filtering based on a one-dimensional separable filter comprising four coefficients, which is subsequently called a weak filter.
  • the strong filter strongly attenuates the discontinuities at the boundaries of the blocks, which can damage high spatial frequencies present in original images.
  • the weak filter weakly attenuates the discontinuities at the boundaries of the blocks, which makes it possible to preserve the high spatial frequencies present in the original images, but will be less effective on the discontinuities artificially created by the quantification.
  • the decision to filter or not to filter, and the form of the filter used in case of filtering, depend on the value of the pixels at the boundaries of the block to be filtered and two parameters ⁇ and determined by the encoding device.
  • the encoding device inserts into the bit stream 51 1 syntax elements (pps_beta_offset_div2 and pps_tc_ojfset_div2 in PPS containers (set of image parameters: "Picture Parameter Set” in English terminology), and slice_beta_offset_div2 and slice_tc_offset_div2 in the slice headers) to find the respective values of the parameters and * c.
  • a decoding device can determine, using these syntax elements, whether unlocking filtering should be applied and the deblocking filtering form to be applied.
  • ODS filtering takes two forms with two different purposes. The first form called "edge offset" is intended to compensate for the effects of quantization on the outlines in the blocks.
  • the contour enhancement SAO includes a classification of the pixels of the reconstructed image into four categories corresponding to four respective types of contour.
  • the classification of a pixel is done by filtering four filters, each filter to obtain a filter gradient.
  • the filter gradient maximizing a classification criterion indicates the type of contour corresponding to the pixel.
  • Each contour type is associated with an enhancement value that is added to the pixels during SAO filtering.
  • band offset The second form of ODS is called band offset ("band offset”) and is intended to compensate for the effect of quantization on pixels belonging to certain ranges (i.e. band) of values.
  • band enhancement filtering the set of possible values for a pixel, most commonly between 0 and 255 for 8-bit video streams, is divided into thirty-two ranges of eight values. Of these thirty-two tracks, four consecutive tracks are selected to be enhanced. When a pixel has a value included in one of the four value ranges to be enhanced, an enhancement value is added to the value of the pixel.
  • the encoding device inserts information into the binary video stream 511 enabling a decoding device to determine whether the ODS filtering is to be applied to a BTC and, if so, the form and parameters of the SAO filtering to apply.
  • a block When a block is reconstructed, it is inserted during a step 520 in a reconstructed image stored in a memory 521 of reconstructed images also called reference image memory.
  • the reconstructed images thus stored can then serve as reference images for other images to be encoded.
  • NALU Network Abstraction Layer Unit
  • VCL Video Coding Layer
  • Other container types have been defined in HEVC and H264 / AVC standards. These containers are generally headers containing information useful for the decoding of a video sequence such as the SPS containers (set of sequence parameters: "Sequence Parameter Set” in English terminology) or for the decoding of a subscript. set of images of a video sequence like containers
  • Each PPS container includes an identifier to recognize it.
  • Each slice is associated with a PPS container. To do this, each slice includes a syntax element containing the identifier of the PPS container corresponding to the slice. Similarly, each SPS container includes an SPS container identifier for recognizing it. Each PPS container is associated with an SPS storyteller. To do this, each PPS container includes a syntax element containing the identifier of the SPS container associated with the PPS container.
  • Fig. 6 schematically represents a method of decoding a compressed stream according to the HEVC standard implemented by a decoding device.
  • Decoding is block by block. For a current block, it starts with an entropy decoding of the current block during a step 610.
  • the entropy decoding makes it possible to obtain the mode of coding of the block.
  • the entropy decoding makes it possible to obtain a prediction vector index, a motion residual, and a residual block.
  • a motion vector is reconstructed for the current block using the prediction vector index and the motion residual.
  • Steps 612, 613, 614, 615 and 616 implemented by the decoding device are in all respects identical to steps 512, 513, 514, 515 and 516 respectively implemented by the encoding device.
  • the decoding device then applies a loop filtering post during a step 617.
  • the post filtering loop comprises for the standard HEVC unblocking filtering and SAO filtering, while loop filtering only includes unblocking filtering for the H.264 / AVC standard.
  • the deblocking filtering is implemented by the decoding device during a step 618.
  • the decoding device finds the parameters ⁇ and te using the syntax elements pps_beta_offset_div2, pps_tc_offset_div2, slice _beta_offset_div2 and slice _tc_offset_div2. in the binary video stream. It must instead determine the shape of the filter to be applied according to the pixel values at the boundaries of the blocks and parameters and.
  • the SAO filter is implemented by the decoding device during a step 619.
  • the decoding device does not have to determine whether the SAO filtering is to be applied to a block and, if the SAO filtering is to be to be applied, the decoding device does not have to determine the form of SAO filtering to be applied and the enhancement values, since the decoding device will find this information in the binary video stream. If, for a CTB, the SAO filter is of the contour enhancement shape, for each pixel of the CTB, the decoding device must filter out the type of contour, and add the enhancement value corresponding to the determined contour type.
  • the decoding device compares the value of the pixel to be filtered with the ranges of values to be enhanced, and if the value of the pixel belongs to the one of the ranges of values to be enhanced, the enhancement value corresponding to said value range is added to the value of the pixel.
  • post filtering loop is part of the compression tools appeared in H.264 / AVC and HEVC which allowed to improve the performances of compression.
  • Post loop filtering has led to an increase in implementation complexity of video compression standards and in particular an increase in the complexity of the implementation of the decoding.
  • Fig. 1A schematically shows a video transmission system comprising a device embodying the invention.
  • the video transmission system includes a video source 110 such as, for example, a video encoder, a digital video camera or a digital hard disk.
  • the video source 110 supplies, to a transmission device 111, a binary video stream encoded according to the HEVC standard or according to the H264 / AVC standard.
  • the transmission device 111 includes a multiplexer for combining the binary video stream with other bitstreams, such as binary audio streams, to form a multiplexed bitstream.
  • the multiplexed bitstream is subsequently transmitted over a communication network 120 such as, for example, the Internet network or a wired or wireless LAN ("Local Area Network" in English terminology).
  • a reception device 112 comprising a demultiplexer.
  • the demultiplexer then extracts the binary video stream from the multiplexed bitstream and the receiving device 112 transmits the binary video stream to a binary video stream modification device 113 according to one aspect of the invention.
  • the binary video stream modification device 113 which we later call to simplify the editing device, can modify the binary video stream so as to reduce the complexity of the post loop filtering.
  • the modified binary video stream is then transmitted to a decoding device 114, which decodes the modified binary video stream, the result of the decoding being displayed by a display device 115.
  • Fig. 2 schematically illustrates an example of hardware architecture of a device adapted to implement the device for modifying binary video stream 113.
  • the device 113 comprises, connected by a communication bus 205: a processor or CPU ("Central Processing Unit In English) 200; a Random Access Memory (RAM) 201; a ROM (Read Only Memory) 202; a storage unit 203 or a storage medium reader, such as a SD card reader ("Secure Digital" in English) or a hard disk HDD (“Hard Disk Drive” in English); at least one interface 204 for exchanging data with other equipment.
  • the interface 204 allows the modifying device 113 to receive binary video streams, to transmit modified binary video streams and to receive instructions from a user. user through, for example, a control device (not shown), such as a remote control, allowing the user to manipulate a graphical interface on the display device 115.
  • the processor 200 is capable of executing instructions loaded into the RAM 201 from the ROM 202, an external memory (not shown), a storage medium, or the communication network 120. modification 113 is powered up, the processor 200 is able to read RAM 201 instructions and execute them. These instructions form a computer program causing the processor 200 to implement all or part of the algorithms and steps described below in relation to the modification device 113.
  • All or part of the algorithms and steps described hereinafter can thus be implemented in software form by executing a set of instructions by a programmable machine, such as a DSP ("Digital Signal Processor” in English) or a microcontroller, or be implemented in hardware form by a machine or a dedicated component, such as an FPGA ("Field Programmable Gate Array” in English) or an ASIC ("Application-Specific Integrated Circuit").
  • a programmable machine such as a DSP ("Digital Signal Processor” in English) or a microcontroller
  • FPGA Field Programmable Gate Array
  • ASIC Application-Specific Integrated Circuit
  • Fig. 3 diagrammatically represents an algorithm for ensuring the compatibility of a binary video stream with computational capabilities of a video decoding device, when the video decoding device is used to implement display functionalities requiring a video decoding device. computationally significant effort.
  • the algorithm starts in a step 300 by the reception by the modification device 113 of a binary video stream encoded according to the HEVC standard.
  • the modifying device 113 determines what is the display functionality desired by the user. Each display functionality corresponds to a complexity of implementation. It is assumed here that the modification device 113 knows the implementation complexity of each display functionality that a user could formulate.
  • the modification device 113 compares these information on the complexity of implementation of the display functionalities with information on the processing capabilities of the decoding device 114. This comparison enables the modification device 113 to determine what are the needs for modifying the binary video stream in terms of reducing the decoding complexity so that the decoding of this binary video stream, as part of the display functionality desired by the user, is compatible with the processing capabilities of the decoding device 114.
  • the modifications to be made to the stream Binary video depend on this need to reduce the decoding complexity.
  • this comparison uses a set of thresholds. Each threshold to determine how the editing device is to modify the binary video stream. If the implementation complexity is less than a first threshold, the binary video stream is not modified; if the implementation complexity is between the first threshold and a second threshold, the SAO filtering is disabled; if the implementation complexity is between the second threshold and a third threshold, the SAO filtering is disabled and the low complexity unblocking filtering is preferred; if the implementation complexity is greater than the third threshold, SAO filtering and unlocking filtering are disabled.
  • the modification device 113 determines whether the user wishes to display the video in accelerated mode. In this case, the bit stream modification device 113 sets the variable DBF Jaible to true during a step 305 and the variable SAO OFF to true during a step 306.
  • the modifying device 113 determines whether the user wishes to display two videos in an image-in-picture mode, a first video being displayed with a low resolution and embedded in a second video displayed in full resolution. In this case, the modification device 113 sets the variable DBF OFF to true during a step 308 and the variable SAO OFF to true during a step 309.
  • the modification device 113 determines whether the user wishes to use a multi application mode.
  • a multi-application mode can be a combination of several display features, for example, the accelerated display combined with the picture-in-picture mode or a tile mode in which several low-resolution videos are displayed simultaneously. If a multi-application mode is requested, the modification device 113 determines the implementation complexity of the multi-application mode requested. During a stage 311, the modifying device 113 determines whether the implementation complexity is low, for example between the first and the second threshold.
  • a multi-application mode having a low complexity of implementation may for example be a request for display in image-in-picture mode in which the low resolution video is displayed in accelerated mode. If this is the case, the modification device 113 sets the SAO OFF variable to true during a step 312.
  • the modification device 113 determines whether the implementation complexity of the multi application mode is average, for example between the second and the third threshold.
  • a multi-application mode having a medium implementation complexity may for example be an image-in-picture display request in which the full-resolution video is displayed in an accelerated manner. If this is the case, the modification device 113 sets the variable DBF Jaible to true during a step 314 and the variable SAO OFF to true during a step 315.
  • the modification device 113 determines whether the implementation complexity is high, for example greater than the third threshold.
  • a multi-application mode having a high computational cost may for example be a request to display a mosaic of several videos of low resolutions. If this is the case, the modification device 113 sets the variable DBF OFF to true during a step 317 and the variable SAO OFF to true during a step 318.
  • the modification device 113 does not change the variables DBF Jaible, DBF OFF and SAO OFF.
  • the display is a classic display of a video in full resolution. It can be noticed that the variables DBF weak and DBF OFF can not be both equal to true. It is indeed not necessary to modify a binary video stream so as to favor the implementation of the low complexity deblocking filter while the unlocking filtering is intended to be disabled.
  • the modifying device 113 After taking into account the user's display functionality requirements, the modifying device 113 begins modifying the received video stream. This video stream has been received as network packets. Here we consider that each network packet contains a single container. The modifying device 113 processes the packets one by one according to their order of arrival. In a step 319, the modifying device 113 removes the container from the network packet. The modification device 113 then checks, in a step 320, the value of the variable DBF aible. If the variable DBF aible is true, the container is processed in a first step of modifying 321 portions of the binary video stream. An exemplary implementation of this first modification step 321 is detailed below with reference to FIG. 7. The first modification step 321 transforms a portion of the binary video stream corresponding to the container so as to favor the use of the weak deblocking filter during decoding. Syntax elements controlling the complexity of implementation of the unlocking filtering are then modified.
  • step 322 following step 321 (or step 320 if the variable DBF aible is false), the modification device 113 tests the value of the variable DBF OFF. If the variable DBF OFF is true, the container is processed by a second portion modification step of the binary video stream 323.
  • An example of implementation of this second modification step 323 is detailed below in connection with the FIG. . 8.
  • the second modification step 323 transforms a portion of the binary video stream corresponding to the container so as to deactivate the unlocking filtering during decoding. Syntax elements controlling the complexity of implementation of the unblocking filter are then modified or deleted.
  • step 324 following step 323 (or step 322 if the variable DBF OFF is false), the modification device tests the value of the variable SAO OFF. If the SAO OFF variable is true, the container is processed by a third portion modification step of the binary video stream 325.
  • An example of implementation of this third modification step 325 is detailed below in connection with the FIG. . 9.
  • the third modification step 325 transforms a portion of the binary video stream corresponding to the container so as to deactivate the SAO filtering during the decoding. Syntax elements controlling the implementation complexity of SAO filtering are then removed or modified.
  • Step 325 (or step 324 if the SAO OFF variable is false) is followed by a step 326 during which the container is passed to the device following the modifier 113, i .e. the decoding device 114 in the example of FIG. 1A.
  • Fig. 3 schematically shows a method for ensuring the compatibility of video display features with computational capabilities of a video decoding device.
  • This method is suitable for binary video streams encoded according to the HEVC standard.
  • This method can be adapted to binary video streams encoded according to the H.264 / AVC standard by removing all steps relating to ODS filtering (steps 303, 306, 309, 312, 315, 318, 324, 325).
  • the modification device 113 recognizes the encoding standard applied during the encoding of the binary video stream between HEVC and H.264 / AVC, which allows in the following of the method of applying or not the steps relating to the ODS filtering.
  • the decoding device 114 is able to decode binary video streams encoded according to the HEVC and H264 / AVC standards. Note that when the process is applied to an H.264 / AVC encoded binary video stream, only syntax elements included in SPS, PPS, and slice header are modified, which facilitates the modification. of the binary video stream.
  • changes to the binary video stream depend on display features desired by a user.
  • the modifications to be made to the binary video stream depend on decoding tools implemented by the decoding device 114.
  • certain decoding devices implement post-filtering tools outside the prediction loop. .
  • These post-filtering tools outside the prediction loop can be very efficient and reduce the interest of using unlocking filtering and SAO filtering.
  • these post-filtering tools outside the prediction loop also increase the complexity of decoding. In some cases, we may prefer to use these tools rather than the loop filtering tools specified by video compression standards. Therefore, in this alternative embodiment, information about the out-of-loop after filtering tools is provided to the modification device 113, which modifies and / or deactivates the SAO filtering implementation and / or the unlocking filtering. if necessary.
  • FIG. 3 diagrammatically represents an algorithm for ensuring the compatibility of a binary video stream with computational capabilities of a video decoding device, when the video decoding device is used to implement display functionalities requiring a video decoding device. computationally significant effort.
  • this algorithm could make it possible to ensure the compatibility of a binary video stream with the memory capabilities of a video decoding device.
  • each display functionality corresponds to a cost in memory. It is assumed here that the modification device 113 knows the memory cost corresponding to the implementation of each display functionality that a user could formulate. The modifying device 113 then compares this information on the memory cost of the display functionalities with information on the memory capacities of the decoding device 114.
  • This comparison enables the modification device 113 to determine what are the modification needs of the device.
  • binary video stream in terms of memory cost reduction so that the decoding of this binary video stream, as part of the display functionality desired by the user, is compatible with the memory capabilities of the decoder device 114. modifications to be made to the binary video stream depend on this need to reduce the cost in memory.
  • This embodiment is combinable with the computational cost based embodiment.
  • the complexity of implementation of the decoding concerns both a computational complexity, but also a complexity in terms of the use of the memory of the decoding device 114.
  • the binary video stream modified by the modification device 113 is then compatible with the computational capabilities of the decoding device 114, but also with the memory capabilities of the decoding device 114.
  • Fig. 7 details an algorithm implemented by the modification device 113 for transforming a container HEVC so as to favor the use of the weak deblocking filter during decoding.
  • the algorithm begins with the receipt of a container during a step 700.
  • the type of the received container is then checked by the modifying device 113 in a step 701. If the container is a PPS container, the device modification 113 searches in a step 702 the syntax element pps_beta_offset_div2 for controlling the value of the parameter of the unlocking filtering. If the syntax element pps_beta_offset_div2 is present, the modifier causes the value of the syntax element pps_beta_offset_div2 to be set to "-6".
  • the modification device can also force the value of the syntax element pps_tc_offset_div2 to the value "-6", which has the effect of further promoting the use of the 4-cell deblocking filter. during decoding.
  • the modifying device 113 waits for the reception of a new container. Receiving a new container causes the return to step 700. If the container is not of the PPS type, the modification device 113 checks, during a step 704, whether the container is of VCL type.
  • the modification device 113 searches, in a step 705, in the header of the slice corresponding to the container, the syntax element slice _beta_offset_div2 for controlling the value of the parameter of the filtering. unblocking at a slice. If the slice _beta_offset_div2 syntax element is present, the modifying device 113 sets the value of the slice _beta_offset_div2 syntax element to the value "-6". Setting the value of the slice _beta_ojfset_div2 syntax element to the value "-6" increases the chances of using the weak unblocking filter when decoding. In another implementation, the syntax element slice_beta_offset_div2 is deleted in the portion of the binary video stream corresponding to the slice.
  • the value of the syntax element slice _beta_offset_div2 is copied from the value of the syntax element PPS_beta_ojfset_div2 contained in the PPS container corresponding to the slice.
  • the modifying device can also force the value of the slice _tc_offset_div2 syntax element to the value "-6", or delete the slice _tc_offset_div2 syntax element whose value can be copied from the value the syntax element pps_tc_offset_div2
  • step 706 the modifying device 113 waits for the reception of a new container. Receiving a new container causes the return to step 700.
  • Fig. 8 details an algorithm implemented by the modification device 113 for transforming a container HEVC so as to disable the use of unlocking filtering during decoding.
  • a first part 821 of the algorithm applies when receiving a PPS container. This first part makes it possible to ensure consistency with the deactivation of the unblocking filtering of a set of syntax elements of a PPS container relating to the unlocking filtering.
  • the algorithm begins with the receipt of a container during a step 800. The type of the received container is then checked by the modifying device 113 in a step 801.
  • the device modification 113 searches at a step 802 a syntax element DeblockingJilter_control _present Jlag, indicating the presence of syntax elements relating to the unlocking filtering in the container.
  • the modification device 113 checks the value of the syntax element DeblockingJIlter_control _present Jlag. If the value of the DeblockingJIlter_control _present Jlag syntax element is other than "1", the modifier sets the DeblockingJilter_control _present Jlag syntax element to a value of "1" in a step 803, and then creates a new element.
  • deblocking syntaxJlter_override_enabled Jlag allowing a slice to modify parameter values relating to unblocking filtering, during a step 804 and a syntax element pps_deblockingJilter_disabled Jlag, indicating that the slices referring to this PPS container do not implement the filtering in step 805.
  • Step 805 (or step 802 when the DeblockingJIlter_control syntax element Jlag is equal to "1") is followed by a step 806. If the syntax element DeblockingJIlter_control _present Jlag is equal to "1", the modification device 113 searches the syntax element deblockingJilter_override_enabled Jlag.
  • syntax element deblockingJlter_override_enabled Jlag is then set to "0". If the syntax element DeblockingJlter_control _present Jlag was equal to "0”, then the syntax element deblockingJlter_override_enabled Jlag is set to "0" and the syntax element deblockingJlter_override_enabled Jlag is inserted into the bitstream portion corresponding to the container. In a step 807, if the syntax element DeblockingJIlter_control _present Jlag is equal to "1", the modification device 113 looks for the syntax element pps_deblockingJIlter_disabled Jlag.
  • the syntax element pps_deblockingJilter_disabled Jlag is then set to "1". If the syntax element DeblockingJlter_control _present Jlag is equal to "0”, then the syntax element pps_deblockingJilter_disabled Jlag is set to "1" and the syntax element pps_deblockingJilter_disabled Jlag is inserted in the bit stream portion corresponding to the container.
  • the modification device 113 searches in the portion of the binary video stream corresponding to the container the pps Jeta _offset_div2 syntax element making it possible to control the value of the parameter ⁇ of the deblocking filter. If the syntax element pps Jeta _oj set _div2 is present, it is deleted in the portion of the binary video stream corresponding to the container during a step 809.
  • Step 808 (or step 809 if the syntax element pps_beta_offset_div2 is present) is followed by a step 810 in which the modifying device 113 searches in the binary video stream portion corresponding to the container the element. of syntax pps_tc_offset_div2 allowing to control the value of the parameter of the unlocking filter. If the syntax element pps_tc_offset_div2 is present, it is deleted in the portion of the binary video stream corresponding to the container during a step 811.
  • the modifying device 113 After transforming the PPS container, the modifying device 113 waits for the reception of a new container. Receiving a new container causes the return to step 800.
  • step 801 the container is not a PPS container
  • the modification device 113 checks whether it is a VCL container during a step 812. If the container is not a VCL container, the modification device 113 waits for the reception of a new container. Receiving a new container causes the return to step 800.
  • the modifier 113 applies a second portion 822 of the algorithm, as shown in FIG. 8.
  • the modification device 113 ensures coherence with the deactivation of the unlocking filtering of a set of syntax elements of a slice relating to the unlocking filtering.
  • This second part 822 of the algorithm consists in deleting all the syntax elements relating to the unblocking filtering of the header of the slice contained in the VCL container.
  • the modification device 113 searches for a syntax element DeblockingJilter_override Jlag, indicating the presence of parameters relating to the unlocking filtering in the slot.
  • the modifying device 113 deletes the syntax element DeblockingJIlter_override Jlag from the portion of the binary video stream corresponding to the container during a step 814.
  • Step 813 (or step 814 if the Deblocking Syntax element lter_override Jlag is present) is followed by a step 815 in which the modification device 113 searches for a Slice_deblockingJilter_disabled Jag syntax element indicating whether the unblocking is enabled or not for the slice contained in the container. If the Slice_deblockingJilter_disabled ag syntax element is present, the modifying device removes the Slice_deblockingJilter_disabled Jag syntax element from the binary video stream portion corresponding to the container during a step 816.
  • Step 815 (or step 816 if the Slice_deblockingJIlter_disabled Jlag syntax element is present) is followed by a step 817 in which the modifying device 113 searches for the slice_beta_offset_div_2 syntax element. If the syntax element slice_beta_offset_div_2 is present, the modification device deletes the syntax element slice_beta_offset_div_2 from the portion of the binary video stream corresponding to the container during a step 818.
  • Step 817 (or step 818 if the syntax element slice_beta_offset_div_2 is present) is followed by a step 819 in which the modifying device 113 searches for the syntax element slice_tc_offset_div_2. If the syntax element slice_tc_offset_div_2 is present, the modification device deletes the syntax element slice_tc_offset_div_2 from the portion of the binary video stream corresponding to the container during a step 820.
  • step 819 the modifying device 113 waits for the reception of a new container. Receiving a new container causes the return to step 800.
  • Fig. 9 details an algorithm implemented by the modification device 113 for transforming a container HEVC so as to disable the use of the SAO filtering during decoding.
  • a first part 914 of the algorithm applies when receiving an SPS container. This first part 914 makes it possible to ensure the coherence of a syntax element of a SPS container relating to the SAO filtering with the deactivation of the SAO filtering.
  • the first part 914 starts with the receipt of a container during a step 901.
  • the type of the received container is then checked by the modifying device 113 during a step 902.
  • the device modifier 113 forces "0", in a step 903, the value of a Sample_adaptive_offset_enabled Jlag syntax element indicating whether the SAO filtering is to be implemented in the slices referring to this SPS container. Following step 903, the modification device 113 waits for the reception of a new container. Receiving a new container causes the return to step 901.
  • the modifying device 113 checks whether the container is a VCL container. If the container is not a VCL container, the modifying device 113 waits for receipt of a new container. Receiving a new container causes the return to step 901. If the received container is a VCL container, the modifier 113 applies a second portion 915 of the algorithm. In this second part 915, the modification device 113 ensures the consistency of syntax elements of a VCL container relating to the SAO filtering with the deactivation of the SAO filtering.
  • the second part 915 starts with the search during a step 905 of a Slice_sao_luma Jlag syntax element indicating whether the SAO filtering is applied to the luminance component of the pixels in the slice contained in the container. If the syntax element Slice_sao_luma Jlag is present, the modification device 113 deletes, during a step 906, the Slice_sao_luma Jlag syntax element of the portion of the binary video stream corresponding to the container. Step 905 (or step 906 if the Slice _sao Juma Jlag syntax element is present) is followed by a step 907.
  • step 907 the modification device 113 searches for a Slice _sao_chroma Jlag syntax element indicating whether the SAO filtering is applied to the chrominance component of the pixels in the slice contained in the container. If the Slice _sao_chroma Jlag syntax element is present, the modification device 113 deletes the syntax element Slice _sao_chroma Jlag at a step 908 from the portion of the binary video stream corresponding to the container. Step 907 (or step 908 if Slice _sao_chroma Jlag syntax element is present) is followed by step 909.
  • the syntax elements Slice _sao Juma Jlag and Slice _sao_chroma Jlag are set to the value "0".
  • n used to traverse all the CTBs of the slot is initialized to the value "0".
  • the variable n is compared with the number Nctb of CTB in the slot. If n is less than Nctb, the modification device 113 searches for syntax elements relating to the SAO filtering in the CTB.
  • the variable n is incremented by one unit and the algorithm returns to step 910. If the CTB contains syntax elements relating to the SAO filtering, these elements of syntax are removed from the portion of the binary video stream corresponding to the CTB during a step 912.
  • the deletion relates for example to the following syntax elements: saojnergejeft Jlag, sao_merge_up Jlag, saojypejdxjuma, sao_type dx_chroma, sao_offset_abs, sao_offset_sign, sao_band _position, sao_eo_class_luma, sao_eo_class_chroma.
  • Step 912 is followed by step 913.
  • the display functionality may be changed at any time during the display of a video stream.
  • the PPS, SPS and VCL containers can be adapted at any time according to the needs.
  • Slices can refer to SPS and PPS containers adapted to the functionality desired by a user at a certain time.
  • the modification device 113 then gives respectively to these SPS and PPS containers SPS container indices and PPS container indices making it possible to differentiate them from the SPS and PPS containers present in the initial binary video stream before modification.
  • the modification device 113 transforming containers corresponding to a single binary video stream.
  • the editing device 113 processes the containers from different binary video streams and applies different transformations to these containers depending on the intended display functionality.
  • These different modified binary video streams are then decoded in parallel by the decoding device 114 and combined by the display device 115, for example, to embed a low resolution video in a high resolution video or to display a video mosaic.
  • the different binary video streams can also be encoded according to different standards, some encoded according to the HEVC standard and others encoded according to the H.264 / AVC standard.
  • the decoding device 114 is able to decode binary video streams encoded according to the HEVC and H.264 / AVC standards.
  • the modifying device 113 is placed between the receiving device 112 and the decoding device 114.
  • the modification device may also be placed between the encoding device 110 and the transmission device 111. In this case, however, it is necessary to use a means for transmitting the display functionality wishes of the user to the user. modification device 113. This can be done using RTSP requests (real-time transmission protocol) in order to indicate to the device modification 113 information representative of the type of display functionality desired by the user.
  • RTSP requests real-time transmission protocol

Landscapes

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

Abstract

La présente invention concerne un procédé de modification d'un flux vidéo binaire encodé selon un algorithme de codage vidéo comprenant une boucle de prédiction et un post filtrage de boucle intégré dans la boucle de prédiction. Le procédé comprend les étapes suivantes effectuées par un dispositif: rechercher un élément de syntaxe relatif au post filtrage de boucle dans le flux vidéo binaire, l'élément de syntaxe étant utilisé par un dispositif de décodage pour contrôler une complexité de mise en œuvre du post filtrage de boucle; modifier (321, 323, 325) une valeur de l'élément de syntaxe ou supprimer (321, 323, 325) l'élément de syntaxe.

Description

Procédé de modification d'un flux vidéo binaire.
La présente invention concerne un procédé et un dispositif permettant de réguler la complexité de décodage d'un flux vidéo préalablement compressé.
Les méthodes de compression de données vidéo récentes, telles que le standard H264/AVC (ISO/IEC 14496-10 - MPEG-4 Part 10, codage vidéo avancé (« Advanced Video Coding » en terminologie anglo-saxonne) / ITU-T H.264) ou le standard émergeant HEVC (ISO/IEC 23008-2 - MPEG-H Part 2, codage vidéo haute efficacité (High Effïciency Video Coding en terminologie anglo-saxonne) / ITU-T H.265), ont apporté une amélioration significative des performances de compression. Ces méthodes utilisent des algorithmes de codage vidéo ayant permis une réduction de débit des données vidéo après compression (i.e. encodage) tout en préservant ces données vidéo en termes de qualité de rendu d'images après décompression (i.e. décodage).
Cependant, cette amélioration des performances, essentiellement due à des améliorations d'outils de compression existants et à des intégrations de nouveaux outils de compression, s'est traduite par un accroissement de la complexité, et par conséquent des besoins en ressources mémoire et en ressources de traitement de ces
méthodes de compression. Ces méthodes ont en effet un coût calculatoire très important et nécessite la mise en mémoire de beaucoup de données. Pour pouvoir mettre en œuvre ces méthodes, il est nécessaire de prévoir des dispositifs d'encodage et de décodage ayant des capacités calculatoires et des capacités mémoire adéquates.
Toutefois, en général pour une question de prix de revient des dispositifs d'encodage et de décodage, les capacités calculatoires et les capacités mémoire sont dimensionnées au plus juste, ce qui ne permet pas aux dispositifs d'encodage et de décodage d'offrir des fonctionnalités allant au delà de celles pour lesquelles ces dispositifs d'encodage et décodage ont été conçus.
D'un autre côté, il est important d'offrir aux utilisateurs d'applications vidéo des fonctionnalités avancées nouvelles et innovantes afin de pérenniser leur intérêt pour ces applications. En effet, alors que par le passé ces utilisateurs se contentaient de fonctionnalités simples d'affichage de vidéos, ces utilisateurs peuvent maintenant souhaiter des fonctionnalités d'affichage plus interactives permettant par exemple un visionnage accéléré d'une vidéo (« trick mode » en terminologie anglo-saxonne), une incrustation d'une vidéo dans une autre vidéo selon un mode image dans image (« Picture in Picture » en terminologie anglo-saxonne) ou un visionnage d'une pluralité de vidéos en parallèle, par exemple dans une vidéo mosaïque. Ces nouvelles fonctionnalités d'affichage entraînent une augmentation des besoins en capacités calculatoires et des besoins en capacités mémoire des applications vidéo. Par exemple, le visionnage accéléré d'une vidéo peut nécessiter de décoder une vidéo à un débit d'images (« frame rate » en terminologie anglo-saxonne) dépassant un débit d'image correspondant à un affichage temps réel de la vidéo. L'incrustation d'une vidéo dans une autre vidéo nécessite deux décodages en parallèle lorsque les vidéos sont reçues sous la forme de deux flux vidéo séparés. De manière similaire, l'affichage d'une mosaïque de vidéos, peut nécessiter de réaliser une pluralité de décodages vidéo en parallèle.
Bon nombre de dispositifs de décodage ne permettent pas d'accéder à ces fonctionnalités avancées d'affichage du fait du dimensionnement inadéquat de leurs capacités calculatoires et de leurs capacités mémoire. Il serait donc intéressant de proposer des solutions permettant d'accéder à ces services sans nécessiter le remplacement des dispositifs de décodage.
Le problème résolu par la présente invention consiste à assurer la compatibilité d'un flux vidéo binaire avec des capacités calculatoires et éventuellement des capacités en mémoire d'un dispositif de décodage de vidéos, lorsque le dispositif de décodage de vidéos est utilisé, par exemple, pour mettre en œuvre des fonctionnalités d'affichage demandant un effort calculatoire important.
A cet effet, selon un premier aspect de la présente invention, la présente invention concerne un procédé de modification d'un flux vidéo binaire encodé selon un algorithme de codage vidéo comprenant une boucle de prédiction et un post filtrage de boucle intégré dans la boucle de prédiction. Le procédé comprend les étapes suivantes effectuées par un dispositif : rechercher un élément de syntaxe relatif au post filtrage de boucle dans le flux vidéo binaire, l'élément de syntaxe étant utilisé par un dispositif de décodage pour contrôler une complexité de mise en œuvre du post filtrage de boucle; et modifier une valeur de l'élément de syntaxe ou supprimer l'élément de syntaxe de sorte à obtenir une réduction de la complexité de mise en œuvre du post filtrage de boucle par le dispositif de décodage.
La modification ou la suppression d'éléments de syntaxe relatifs au filtrage de boucle permet d'indiquer au dispositif de décodage qu'il peut mettre en œuvre un post filtrage de boucle simplifié ou ne pas mettre en œuvre le post filtrage de boucle, ce qui réduira la complexité du décodage. Ce procédé a un faible coût calculatoire car il ne nécessite pas un décodage et un ré-encodage complet du flux vidéo binaire.
Selon un mode de réalisation, le post filtrage de boucle comprend un filtrage de déblocage et/ou un filtrage SAO (« Sample Adaptive Offset » en terminologie anglo- saxonne).
En permettant de contrôler plusieurs méthodes de post filtrage de boucle, le procédé permet d'ajuster finement la réduction de la complexité de décodage.
Selon un mode de réalisation, le filtrage de déblocage atténuant des discontinuités entre des blocs de pixels et comprenant un filtrage de forte complexité atténuant fortement les discontinuités entre les blocs de pixels et un filtrage de faible complexité atténuant faiblement les discontinuités entre les blocs de pixels, lorsque la valeur de l'élément de syntaxe a été modifiée et que l'élément de syntaxe est relatif au filtrage de déblocage, ladite valeur est modifiée de sorte à favoriser une utilisation par le dispositif de décodage du filtrage de déblocage de faible complexité par rapport au filtrage de déblocage de forte complexité.
De cette manière, la complexité de mise en œuvre du filtrage de déblocage est réduite, tout en permettant une atténuation minimale des discontinuités entre blocs. Selon un mode de réalisation, lorsque la valeur de l'élément de syntaxe a été modifiée et que l'élément de syntaxe est relatif au filtrage de déblocage ou relatif au filtrage SAO, la modification de la valeur de l'élément de syntaxe permet de désactiver respectivement la mise en œuvre du filtrage de déblocage ou la mise en œuvre du filtrage SAO par le dispositif de décodage.
Le procédé permet ainsi de désactiver la mise en œuvre par un dispositif de décodage du filtrage de déblocage et/ou du filtrage SAO, ce qui permet de réduire la complexité de décodage.
Selon un mode de réalisation, lorsque l'élément de syntaxe est supprimé et que l'élément de syntaxe est relatif au filtrage de déblocage ou relatif au filtrage SAO, la suppression de l'élément de syntaxe permet de désactiver respectivement la mise en œuvre du filtrage de déblocage ou la mise en œuvre du filtrage SAO par le dispositif de décodage.
Le procédé permet ainsi de désactiver la mise en œuvre par le dispositif de décodage du filtrage de déblocage et/ou du filtrage SAO, ce qui permet de réduire la complexité de décodage. Le procédé permet d'autre part, en supprimant des éléments de syntaxe, de réduire le débit du flux vidéo binaire, notamment lorsque les éléments de syntaxe supprimés sont des éléments de syntaxe relatifs au filtrage SAO de blocs de pixels.
Selon un mode de réalisation, la valeur de l'élément de syntaxe modifié et/ou l'élément de syntaxe supprimé dépendent d'une information représentative d'un besoin de réduction d'une complexité de décodage.
De cette manière, le procédé est adaptatif.
Selon un mode de réalisation, le besoin de réduction de la complexité de décodage dépend d'une fonctionnalité d'affichage souhaitée par un utilisateur pour un affichage, sur un dispositif d'affichage, d'images correspondant au flux vidéo binaire.
De cette manière, la réduction de complexité de décodage est adaptée aux besoins de l'utilisateur.
Selon un mode de réalisation, le procédé comprend en outre les étapes suivantes : recevoir le flux vidéo binaire d'un dispositif de réception, le flux vidéo binaire étant reçu par le dispositif de réception par l'intermédiaire d'un réseau de communication; et transmettre au dispositif de décodage un flux vidéo binaire modifié résultant de la modification du flux vidéo binaire par le procédé de modification. De cette manière, un flux vidéo binaire reçu est adapté en fonction des besoins d'un utilisateur avant d'être fournis au dispositif de décodage. Il n'est donc pas nécessaire de modifier, avant sa transmission, un flux vidéo binaire initial tel que généré par un encodeur vidéo que d'autres utilisateurs pourraient vouloir décoder en qualité maximale.
Selon un mode de réalisation, le procédé comprend en outre les étapes suivantes : recevoir le flux vidéo binaire d'un dispositif d'encodage; recevoir une information représentative d'un besoin de réduction d'une complexité de décodage par l'intermédiaire d'un réseau de communication; et transmettre un flux vidéo binaire modifié résultant de la modification par le procédé de modification du flux vidéo binaire, à un dispositif de transmission en vue d'une transmission du flux vidéo binaire modifié sur le réseau de communication.
La mise en œuvre du procédé avant la transmission du flux vidéo binaire sur le réseau permet de ne pas transmettre sur le réseau des éléments de syntaxe inutiles.
Selon un mode de réalisation, ledit algorithme de codage vidéo est basé sur le standard H.264/AVC ou sur le standard HEVC.
Le procédé est donc adapté à deux standards de compression très répandus. En particulier, la mise en œuvre du procédé a un coût calculatoire très faible lorsque le procédé est appliqué à des flux vidéo conformes au standard H.264/AVC car dans ce cas, les modifications apportées au flux vidéo binaire ne concernent que des données d' entête et ne nécessitent donc pas une lecture approfondie du flux vidéo binaire.
Selon un deuxième aspect de la présente invention, la présente invention concerne un dispositif de modification d'un flux vidéo binaire encodé selon un algorithme de codage vidéo comprenant une boucle de prédiction et un post filtrage de boucle intégré dans la boucle de prédiction. Le dispositif comprend: des moyens pour rechercher dans le flux vidéo binaire un élément de syntaxe relatif au post filtrage de boucle, l'élément de syntaxe étant utilisé par un dispositif de décodage pour contrôler la complexité de mise en œuvre du post filtrage de boucle ; et des moyens pour modifier une valeur de l'élément de syntaxe et/ou des moyens pour supprimer l'élément de syntaxe de sorte à obtenir une réduction de la complexité de mise en œuvre du post filtrage de boucle par le dispositif de décodage.
Le dispositif de modification possède les mêmes avantages que ceux mentionnés envers le premier aspect. Selon un troisième aspect de la présente invention, la présente invention concerne un système de communication d'un flux vidéo binaire en vue d'un affichage par un dispositif d'affichage, le flux vidéo binaire ayant été encodé selon un algorithme de codage vidéo comprenant une boucle de prédiction et un post filtrage de boucle intégré dans la boucle de prédiction, le système comprenant un dispositif de décodage apte à décoder le flux vidéo binaire et apte à transmettre au dispositif d'affichage des images correspondant à un résultat du décodage du flux vidéo binaire. Le système comprend un dispositif de modification d'un flux vidéo binaire selon le deuxième aspect, le dispositif de modification étant apte à fournir au dispositif de décodage un flux vidéo binaire modifié résultant de la modification par le dispositif de modification du flux vidéo binaire.
Le système de communication possède les mêmes avantages que ceux mentionnés envers le premier aspect.
Selon un quatrième aspect de la présente invention, la présente invention concerne un produit programme d'ordinateur. Le produit programme d'ordinateur comporte des instructions pour mettre en œuvre, par un dispositif, le procédé selon le premier aspect, lorsque ledit programme est exécuté par un processeur dudit dispositif.
Le produit programme d'ordinateur possède les mêmes avantages que ceux mentionnés envers le premier aspect.
Selon un cinquième aspect de la présente invention, la présente invention concerne des moyens de stockage. Les moyens de stockage stockent un programme d'ordinateur comportant des instructions pour mettre en œuvre, par un dispositif, le procédé selon le premier aspect, lorsque ledit programme est exécuté par un processeur dudit dispositif.
Les moyens de stockage possèdent les mêmes avantages que ceux mentionnés envers le premier aspect.
Les caractéristiques de l'invention mentionnées ci-dessus, ainsi que d'autres, apparaîtront plus clairement à la lecture de la description suivante d'un exemple de réalisation, ladite description étant faite en relation avec les dessins joints, parmi lesquels:
La Fig. 1A représente schématiquement un premier système de transmission de vidéos comprenant un dispositif mettant en œuvre l'invention,
La Fig. 1B représente schématiquement un second système de transmission de vidéos comprenant un dispositif mettant en œuvre l'invention, La Fig. 2 représente schématiquement un dispositif apte à mettre en œuvre la présente invention,
La Fig. 3 représente schématiquement un procédé permettant d'assurer la compatibilité d'un flux vidéo binaire avec des capacités calculatoires et éventuellement des capacités mémoire d'un dispositif de décodage de vidéos, lorsque le dispositif de décodage de vidéos est utilisé pour mettre en œuvre des fonctionnalités d'affichage demandant un effort calculatoire important,
La Fig. 4 illustre schématiquement les partitionnements successifs subis par une image vidéo lors d'un encodage HEVC,
La Fig. 5 représente schématiquement une méthode d'encodage d'un flux vidéo compatible avec le standard HEVC,
La Fig. 6 représente schématiquement une méthode de décodage selon le standard HEVC,
La Fig. 7 représente schématiquement un algorithme modifiant un flux vidéo et permettant ainsi d'obtenir une réduction de la complexité de décodage dudit flux vidéo par la simplification d'une méthode de post-filtrage de type filtre de déblocage,
La Fig. 8 représente schématiquement un algorithme modifiant un flux vidéo et permettant ainsi d'obtenir une réduction de la complexité de décodage dudit flux vidéo en empêchant la mise en œuvre d'une méthode de post-filtrage de type filtre de déblocage, et
La Fig. 9 représente schématiquement un algorithme modifiant un flux vidéo et permettant ainsi d'obtenir une réduction de la complexité de décodage dudit flux vidéo en empêchant la mise en œuvre d'une méthode de post-filtrage de type filtre SAO.
La présente invention se situe dans le domaine de la compression vidéo et des applications utilisant des vidéos compressées telles que les applications de transmission de vidéos (« streaming » en terminologie anglo-saxonne). L'invention est adaptée aux méthodes de compression vidéo utilisant un post filtrage de boucle, telles que H.264/AVC et HEVC.
Les Figs. 4, 5 et 6 décrivent un exemple de mise en œuvre du standard HEVC.
La Fig. 4 illustre les partitionnements successifs subis par une image de pixels 402 d'une vidéo originale 401, lors de son encodage selon le standard HEVC. On considère ici qu'un pixel est composé de trois composantes : une composante de luminance et deux composantes de chrominance. Dans l'exemple de la Fig. 4, l'image 402 est dans un premier temps divisée en trois tranches (« slices » en terminologie anglo-saxonne). Une tranche est une zone d'une image pouvant couvrir la totalité d'une image ou seulement une portion, comme la tranche 403 dans la Fig. 4. Une tranche comprend au moins un segment de tranche (« slice segment » en terminologie anglo-saxonne) suivi optionnellement d'autres segments de tranche. Le segment de tranche en première position dans la tranche est appelé segment de tranche indépendant (« independent slice segment » en terminologie anglo-saxonne). Un segment de tranche indépendant, tel que le segment de tranche IS1 dans la tranche 403, comprend un entête complet, tel qu'un entête 408. L'entête 408 comprend un ensemble d'éléments de syntaxe permettant le décodage de la tranche. Les éventuels autres segments de tranche d'une tranche, tel que des segments de tranche DS2, DS3, DS4, DS5 et DS6 de la tranche 403 dans la fig. 4, sont appelés des segments de tranche dépendants (« dépendent slice segment » en terminologie anglo-saxonne), car ils ne possèdent qu'un entête partiel faisant référence à l'entête de segment de tranche dépendant qui les précède dans la tranche, ici l'entête 408. Dans le standard H.264/AVC, seul le concept de tranche existe, une tranche comprenant nécessairement un entête complet et ne pouvant pas être divisée.
On peut noter que chaque tranche d'une image est décodable indépendamment de toute autre tranche de la même image. Toutefois, la mise en œuvre d'un post filtrage de boucle dans une tranche peut nécessiter l'utilisation de données d'une autre tranche.
Après le partitionnement de l'image 402 en tranches, les pixels de chaque tranche d'une image sont partitionnés en blocs d'arbre de codage (« coded Tree Block (CTB) » en terminologie anglo-saxonne), tels qu'un ensemble de blocs 404 de la Fig. 4. Par la suite, pour simplifier, nous utiliserons l'acronyme CTB pour désigner un bloc d'arbre de codage. Un CTB, tel que le CTB 409 dans la Fig. 4, est un carré de pixels de côté dont la taille est égale à une puissance de deux et dont la taille peut aller de seize à soixante-quatre pixels. Un CTB peut être partitionné sous forme d'arbre quaternaire (« quad-tree » en terminologie anglo-saxonne) en une ou plusieurs unités de codage (« coding unit (CU) » en terminologie anglo-saxonne). Une unité de codage est un carré de pixels de côté dont la taille est égale à une puissance de deux et dont la taille peut aller de huit à soixante-quatre pixels. Une unité de codage, telle que l'unité de codage 405 de la Fig. 4, peut être ensuite partitionnée en unités de prédiction (« prédiction unit (PU) » en terminologie anglo-saxonne) utilisées lors de prédictions spatiales ou temporelles et en unités de transformation (« transform unit (TU) » en terminologie anglo-saxonne) utilisées lors de transformations de blocs de pixels dans le domaine fréquentiel.
Au cours du codage d'une image, le partitionnement est adaptatif, c'est à dire que chaque CTB est partitionné de manière à optimiser les performances de compression du CTB. Par la suite, pour simplifier, nous considérons que chaque CTB est partitionné en une unité de codage et que cette unité de codage est partitionnée en une unité de transformation et une unité de prédiction.
La Fig. 5 représente schématiquement une méthode d'encodage d'un flux vidéo compatible avec le standard HEVC mise en œuvre par un dispositif d'encodage. L'encodage d'une image courante 501 d'une vidéo débute par un partitionnement de l'image courante 501 lors d'une étape 502, tel que décrit en relation avec la Fig. 4. Par simplification, dans la suite de la description de la Fig. 5 et dans la description de la Fig. 6, nous ne différentions pas les CTB, unités de codage, unités de transformation et unités de prédiction et nous regroupons ces quatre entités sous le terme de bloc. L'image courante 501 est ainsi partitionnée en blocs. Pour chaque bloc, le dispositif d'encodage doit déterminer un mode de codage entre un mode de codage intra image, appelé mode de codage INTRA, et un mode de codage inter image, appelé mode de codage INTER.
Le mode de codage INTRA consiste à prédire suivant une méthode de prédiction INTRA, lors d'une étape 503, les pixels d'un bloc courant à partir d'un bloc de prédiction dérivé à partir de pixels de blocs reconstruits situés dans un voisinage causal du bloc à coder. Le résultat de la prédiction INTRA est une direction de prédiction indiquant quels pixels des blocs du voisinage utiliser, et un bloc résiduel résultant d'un calcul d'une différence entre le bloc courant et le bloc de prédiction.
Le mode de codage INTER consiste à prédire les pixels d'un bloc courant à partir d'un bloc de pixels, appelé bloc de référence, d'une image précédent ou suivant l'image courante, cette image étant appelée image de référence. Lors du codage d'un bloc courant suivant le mode de codage INTER, le bloc de l'image de référence le plus proche, suivant un critère de similarité, du bloc courant est déterminé par une étape d'estimation de mouvement 504. Lors de l'étape 504, un vecteur de mouvement indiquant la position du bloc de référence dans l'image de référence est déterminé. Ledit vecteur de mouvement est utilisé lors d'une étape 505 de compensation de mouvement au cours de laquelle un bloc résiduel est calculé sous la forme d'une différence entre le bloc courant et le bloc de référence. On peut remarquer que nous avons décrit ici un mode de codage inter mono-prédit. Il existe aussi un mode de codage inter bi-prédit (ou mode B) pour lequel un bloc courant est associé à deux vecteurs de mouvement, désignant deux blocs de référence dans deux images différentes, le bloc résiduel de ce bloc étant alors une moyenne de deux blocs résiduels.
Lors d'une l'étape 506 de sélection, le mode de codage optimisant les performances de compression, selon un critère débit/distorsion, parmi les deux modes testés est sélectionné par le dispositif d'encodage. Lorsque le mode de codage est sélectionné, le bloc résiduel est transformé lors d'une étape 507 et quantifié lors d'une étape 509. Lorsque le bloc courant est codé selon le mode de codage INTRA, la direction de prédiction et le bloc résiduel transformé et quantifié sont encodés par un encodeur entropique lors d'une étape 510. Lorsque le bloc courant est encodé selon le mode de codage INTER, le vecteur de mouvement du bloc est prédit à partir d'un vecteur de prédiction sélectionné parmi un ensemble de vecteurs de mouvement correspondant à des blocs reconstruits situés à proximité du bloc à coder. Le vecteur de mouvement est ensuite encodé par l'encodeur entropique lors de l'étape 510 sous la forme d'un résiduel de mouvement et d'un indice permettant d'identifier le vecteur de prédiction. Le bloc résiduel transformé et quantifié est encodé par l'encodeur entropique lors de l'étape 510. Le résultat de l'encodage entropique est inséré dans un flux vidéo binaire 511.
Après quantification lors de l'étape 509, le bloc courant est reconstruit afin que les pixels que ledit bloc courant contient puissent servir pour des prédictions futures. Cette phase de reconstruction est aussi appelée boucle de prédiction. On applique donc au bloc résiduel transformé et quantifié une quantification inverse lors d'une étape 512 et une transformation inverse lors d'une étape 513. En fonction du mode de codage utilisé pour le bloc obtenu lors d'une étape 514, le bloc de prédiction du bloc est reconstruit. Si le bloc courant est encodé selon le mode de codage INTER, le dispositif de codage applique, lors d'une étape 516, une compensation de mouvement inverse utilisant le vecteur de mouvement du bloc courant pour identifier le bloc de référence du bloc courant. Si le bloc courant est encodé suivant un mode de codage INTRA, lors d'une étape 515, la direction de prédiction correspondant au bloc courant est utilisée pour reconstruire le bloc de référence du bloc courant. Le bloc de référence et le bloc résiduel reconstruit sont additionnés pour obtenir le bloc courant reconstruit. Suite à la reconstruction, un post filtrage de boucle (« loop fïlter » en terminologie anglo-saxonne) est appliqué, lors d'une étape 517, au bloc reconstruit. On appelle ce post filtrage post filtrage de boucle car ce post filtrage intervient dans la boucle de prédiction de manière à obtenir à l'encodage les mêmes images de référence que le décodage et éviter ainsi un décalage entre l'encodage et le décodage. Le post filtrage de boucle fait partie des nouveaux outils de compression apparus dans H.264/AVC et améliorés dans HEVC. Le post filtrage de boucle de HEVC comprend deux méthodes de post-filtrage, i.e. un filtrage de déblocage (« deblocking fïlter » en terminologie anglo-saxonne) et un filtrage SAO (« Sample Adaptive Offset » en terminologie anglo-saxonne). Le post filtrage de H.264/AVC ne comprend que le filtrage de déblocage.
Le filtrage de déblocage a pour but d'atténuer des discontinuités à des frontières de blocs dues aux différences de quantification entre blocs. C'est un filtrage adaptatif qui peut être activé ou désactivé, et lorsqu'il est activé, qui peut prendre la forme d'un filtrage de déblocage de complexité élevée basé sur un filtre séparable à une dimension comportant six coefficients de filtre, qu'on appelle par la suite filtre fort, et un filtrage de déblocage de faible complexité basé sur un filtre séparable à une dimension comportant quatre coefficients, qu'on appelle par la suite filtre faible. Le filtre fort atténue fortement les discontinuités aux frontières des blocs, ce qui peut endommager des hautes fréquences spatiales présentes dans des images originales. Le filtre faible atténue faiblement les discontinuités aux frontières des blocs, ce qui permet de préserver des hautes fréquences spatiales présentes dans les images originales, mais sera moins efficace sur les discontinuités artificiellement créées par la quantification. La décision de filtrer ou de ne pas filtrer, et la forme du filtre utilisé en cas de filtrage, dépendent de la valeur des pixels aux frontières du bloc à filtrer et de deux paramètres β et déterminés par le dispositif d'encodage. Lors de l'étape 510 d'encodage entropique, le dispositif d'encodage insère dans le flux vidéo binaire 51 1 des éléments de syntaxe (pps_beta_offset_div2 et pps_tc_ojfset_div2 dans des conteneurs PPS (ensemble de paramètres d'image : « Picture Parameter Set » en terminologie anglo-saxonne), et slice_beta_offset_div2 et slice_tc_offset_div2 dans les entêtes de tranche) permettant de retrouver les valeurs respectives des paramètres et *c . Un dispositif de décodage peut déterminer, en utilisant ces éléments de syntaxe, si un filtrage de déblocage doit être appliqué et la forme de filtrage de déblocage à appliquer. Le filtrage SAO prend deux formes ayant deux objectifs différents. La première forme appelée rehaussement de contour (« edge offset » en terminologie anglo-saxonne) a pour but de compenser les effets de la quantification sur les contours dans les blocs. Le filtrage SAO par rehaussement de contour comprend une classification des pixels de l'image reconstruite suivant quatre catégories correspondant à quatre types respectifs de contour. La classification d'un pixel se fait par filtrage suivant quatre filtres, chaque filtre permettant d'obtenir un gradient de filtrage. Le gradient de filtrage maximisant un critère de classification indique le type de contour correspondant au pixel. Chaque type de contour est associé à une valeur de rehaussement qui est ajoutée aux pixels lors du filtrage SAO.
La seconde forme de SAO est appelée rehaussement de bande (« band offset » en terminologie anglo-saxonne) et a pour but de compenser l'effet de la quantification sur des pixels appartenant à certaines plages (i.e. bande) de valeurs. Dans le filtrage par rehaussement de bande, l'ensemble des valeurs possibles pour un pixel, comprises le plus fréquemment entre 0 et 255 pour les flux vidéo sur 8 bits, est divisé en trente- deux plages de huit valeurs. Parmi ces trente-deux plages, quatre plages consécutives sont sélectionnées pour être rehaussées. Lorsqu'un pixel a une valeur comprise dans une des quatre plages de valeur à rehausser, une valeur de rehaussement est ajoutée à la valeur du pixel.
La décision de mettre en œuvre le filtrage SAO, et lorsque le filtrage SAO est mis en œuvre, la forme du filtrage SAO, et les valeurs de rehaussement sont déterminées pour chaque CTB par le dispositif d'encodage par une optimisation débit/distorsion. Lors de l'étape 510 d'encodage entropique, le dispositif d'encodage insère des informations dans le flux vidéo binaire 511 permettant à un dispositif de décodage de déterminer si le filtrage SAO doit être appliqué à un CTB et, le cas échéant, la forme et les paramètres du filtrage SAO à appliquer.
Lorsqu'un bloc est reconstruit, il est inséré lors d'une étape 520 dans une image reconstruite stockée dans une mémoire 521 d'images reconstruites aussi appelée mémoire d'images de référence. Les images reconstruites ainsi stockées peuvent alors servir d'images de référence pour d'autres images à coder.
Lorsque tous les blocs d'une tranche sont codés, le flux vidéo binaire correspondant à la tranche est inséré dans un conteneur appelé unité d'abstraction du niveau réseau (« Network Abstraction Layer Unit (NALU) » en terminologie anglo- saxonne). En cas de transmission réseau, ces conteneurs sont insérés dans des paquets réseaux soit directement, soit dans des conteneurs intermédiaires de flux de transport (« transport stream » en terminologie anglo-saxonne), tels que les flux de transport MP4.
Un conteneur contenant une tranche est appelé conteneur du niveau du codage vidéo (« Video Coding Layer (VCL) » en terminologue anglo-saxonne). D'autres types de conteneur ont été définis dans les standards HEVC et H264/AVC. Ces conteneurs sont en général des entêtes contenant des informations utiles pour le décodage d'une séquence vidéo comme les conteneurs SPS (ensemble de paramètres de séquence : « Séquence Parameter Set » en terminologie anglo-saxonne) ou pour le décodage d'un sous-ensemble d'images d'une séquence vidéo comme les conteneurs
PPS. Chaque conteneur PPS comprend un identifiant permettant de le reconnaître.
Chaque tranche est associée à un conteneur PPS. Pour ce faire, chaque tranche comprend un élément de syntaxe contenant l'identifiant du conteneur PPS correspondant à la tranche. De manière similaire, chaque conteneur SPS comprend un identifiant de conteneur SPS permettant de le reconnaître. Chaque conteneur PPS est associé à un conteur SPS. Pour ce faire, chaque conteneur PPS comprend un élément de syntaxe contenant l'identifiant du conteneur SPS associé avec le conteneur PPS.
La Fig. 6 représente schématiquement une méthode de décodage d'un flux compressé selon le standard HEVC mise en œuvre par un dispositif de décodage. Le décodage se fait bloc par bloc. Pour un bloc courant, il commence par un décodage entropique du bloc courant lors d'une étape 610. Le décodage entropique permet d'obtenir le mode de codage du bloc.
Si le bloc a été encodé selon le mode de codage INTER, le décodage entropique permet d'obtenir un indice de vecteur de prédiction, un résiduel de mouvement, et un bloc résiduel. Lors d'une étape 608, un vecteur de mouvement est reconstruit pour le bloc courant en utilisant l'indice de vecteur de prédiction et le résiduel de mouvement.
Si le bloc a été encodé selon le mode de codage INTRA, le décodage entropique permet d'obtenir une direction de prédiction et un bloc résiduel. Des étapes 612, 613, 614, 615 et 616 mises en œuvre par le dispositif de décodage, sont en tous points identiques respectivement aux étapes 512, 513, 514, 515 et 516 mises en œuvre par le dispositif d'encodage.
Le dispositif de décodage applique ensuite un post filtrage de boucle lors d'une étape 617. Comme pour l'encodage, le post filtrage de boucle comprend pour le standard HEVC un filtrage de déblocage et un filtrage SAO, alors que le filtrage de boucle ne comprend qu'un filtrage de déblocage pour le standard H.264/AVC.
Le filtrage de déblocage est mis en œuvre par le dispositif de décodage lors d'une étape 618. Lors du décodage, le dispositif de décodage retrouve les paramètres β et te en utilisant les éléments de syntaxe pps_beta_offset_div2, pps_tc_offset_div2, slice _beta_offset_div2 et slice _tc_offset_div2 écrits dans le flux vidéo binaire. Il doit par contre déterminer la forme du filtre à appliquer en fonction de la valeurs des pixels aux frontières des blocs et des paramètres et .
Le filtrage SAO est mis en œuvre par le dispositif de décodage lors d'une étape 619. Lors du décodage, le dispositif de décodage n'a pas à déterminer si le filtrage SAO doit être appliqué sur un bloc et, si le filtrage SAO doit être appliqué, le dispositif de décodage n'a pas à déterminer la forme de filtrage SAO à appliquer et les valeurs de rehaussement, puisque le dispositif de décodage trouvera ces informations dans le flux vidéo binaire. Si, pour un CTB, le filtrage SAO est de la forme rehaussement de contour, pour chaque pixel du CTB, le dispositif de décodage doit déterminer par filtrage le type de contour, et ajouter la valeur de rehaussement correspondant au type de contour déterminé. Si pour un CTB, le filtrage SAO est de la forme rehaussement de bande, pour chaque pixel du CTB, le dispositif de décodage compare la valeur du pixel à filtrer avec les plages de valeurs à rehausser, et si la valeur du pixel appartient à l'une des plages de valeurs à rehausser, la valeur de rehaussement correspondant à ladite plage de valeur est ajoutée à la valeur du pixel.
Comme nous l'avons vu plus haut, le post filtrage de boucle fait partie des outils de compression apparus dans H.264/AVC et HEVC ayant permis d'améliorer les performances de compression. Le post filtrage de boucle a entraîné une augmentation de complexité de mise en œuvre des standards de compression vidéo et notamment une augmentation de complexité de la mise en œuvre du décodage.
Afin de réduire la complexité de décodage d'un flux vidéo binaire, l'invention contrôle la mise en œuvre du post filtrage de boucle par des modifications du flux binaire vidéo en fonction de fonctionnalités d'affichage demandées par un utilisateur. Les modifications du flux vidéo binaire interviennent avant le décodage du flux vidéo binaire. L'invention permet donc de diminuer le coût calculatoire du décodage, ce qui libère des capacités de calcul au niveau des dispositifs de décodage et permet ainsi notamment une mise en œuvre de fonctionnalités avancées d'affichage. L'invention va maintenant être présentée dans le cadre d'une transmission de vidéos sur un réseau de communication. La Fig. 1A représente schématiquement un système de transmission de vidéos comprenant un dispositif mettant en œuvre l'invention. Le système de transmission de vidéos comprend une source vidéo 110 telle que, par exemple, un encodeur vidéo, une caméra vidéo numérique ou un disque dur numérique. La source vidéo 110 fournit, à un dispositif de transmission 111, un flux vidéo binaire encodé selon le standard HEVC ou selon le standard H264/AVC. Le dispositif de transmission 111 comprend un multiplexeur permettant de combiner le flux vidéo binaire avec d'autres flux binaires, tels que des flux audio binaires, pour former un flux binaire multiplexé. Le flux binaire multiplexé est par la suite transmis sur un réseau de communication 120 tel que, par exemple, le réseau Internet ou un réseau local LAN (« Local Area Network » en terminologie anglo-saxonne) filaire ou sans fil. Suite à la transmission, le flux binaire multiplexé est reçu par un dispositif de réception 112 comprenant un démultiplexeur. Le démultiplexeur extrait alors le flux vidéo binaire du flux binaire multiplexé et le dispositif de réception 112 transmet le flux vidéo binaire à un dispositif de modification de flux vidéo binaire 113 selon un aspect de l'invention. En fonction de la fonctionnalité d'affichage demandée par l'utilisateur, le dispositif de modification de flux vidéo binaire 113, que nous appelons par la suite pour simplifier dispositif de modification, peut modifier le flux vidéo binaire de manière à réduire la complexité du post filtrage de boucle. Le flux vidéo binaire modifié est ensuite transmis à un dispositif de décodage 114, qui décode le flux vidéo binaire modifié, le résultat du décodage étant affiché par un dispositif d'affichage 115.
La Fig. 2 illustre schématiquement un exemple d'architecture matérielle d'un dispositif apte à mettre en œuvre le dispositif de modification de flux vidéo binaire 113. Le dispositif 113 comporte, reliés par un bus de communication 205 : un processeur ou CPU (« Central Processing Unit » en anglais) 200; une mémoire vive RAM (« Random Access Memory » en anglais) 201; une mémoire morte ROM (« Read Only Memory » en anglais) 202; une unité de stockage 203 ou un lecteur de support de stockage, tel qu'un lecteur de cartes SD (« Secure Digital » en anglais) ou un disque dur HDD (« Hard Disk Drive » en anglais); au moins une interface 204 permettant d'échanger des données avec d'autres équipements. L'interface 204 permet au dispositif de modification 113 de recevoir des flux vidéo binaires, de transmettre des flux vidéo binaires modifiés et de recevoir des instructions de la part d'un utilisateur par l'intermédiaire, par exemple, d'un dispositif de commande (non représenté), tel qu'une télécommande, permettant à l'utilisateur de manipuler une interface graphique sur le dispositif d'affichage 115.
Le processeur 200 est capable d'exécuter des instructions chargées dans la RAM 201 à partir de la ROM 202, d'une mémoire externe (non représentée), d'un support de stockage, ou du réseau de communication 120. Lorsque le dispositif de modification 113 est mis sous tension, le processeur 200 est capable de lire de la RAM 201 des instructions et de les exécuter. Ces instructions forment un programme d'ordinateur causant la mise en œuvre, par le processeur 200, de tout ou partie des algorithmes et étapes décrits par la suite en relation avec le dispositif de modification 113.
Tout ou partie des algorithmes et étapes décrits par la suite peut ainsi être implémenté sous forme logicielle par exécution d'un ensemble d'instructions par une machine programmable, tel qu'un DSP (« Digital Signal Processor » en anglais) ou un microcontrôleur, ou être implémenté sous forme matérielle par une machine ou un composant dédié, tel qu'un FPGA (« Field-Programmable Gâte Array » en anglais) ou un ASIC (« Application-Specifîc Integrated Circuit » en anglais).
La Fig. 3 représente schématiquement un algorithme permettant d'assurer la compatibilité d'un flux vidéo binaire avec des capacités calculatoires d'un dispositif de décodage de vidéos, lorsque le dispositif de décodage de vidéos est utilisé pour mettre en œuvre des fonctionnalités d'affichage demandant un effort calculatoire important. L'algorithme débute lors d'une étape 300 par la réception par le dispositif de modification 113 d'un flux vidéo binaire encodé suivant le standard HEVC. Trois variables booléennes sont ensuite initialisées : une variable DBF Jaible indiquant, si ladite variable est à vrai, que le filtrage de déblocage doit favoriser le filtre faible est initialisée à faux lors d'une étape 301 ; une variable DBF OFF indiquant, si elle est à vrai, que le filtrage de déblocage doit être désactivé est initialisée à faux lors d'une étape 302 ; une variable SAO OFF indiquant, si elle est à vrai, que le filtrage SAO doit être désactivé est initialisée à faux lors d'une étape 303. Le dispositif de modification 113 détermine ensuite quelle est la fonctionnalité d'affichage souhaitée par l'utilisateur. Chaque fonctionnalité d'affichage correspond à une complexité de mise en œuvre. On suppose ici que le dispositif de modification 113 connaît la complexité de mise en œuvre de chaque fonctionnalité d'affichage que pourrait formuler un utilisateur. Le dispositif de modification 113 compare alors ces informations sur la complexité de mise en œuvre des fonctionnalités d'affichage avec des informations sur les capacités de traitement du dispositif de décodage 114. Cette comparaison permet au dispositif de modification 113 de déterminer quels sont les besoins de modification du flux vidéo binaire en termes de réduction de la complexité de décodage pour que le décodage de ce flux vidéo binaire, dans le cadre de la fonctionnalité d'affichage souhaitée par l'utilisateur, soit compatible avec les capacités de traitement du dispositif de décodage 114. Les modifications à apporter au flux vidéo binaire dépendent de ce besoin de réduction de la complexité de décodage.
Dans un mode de réalisation, cette comparaison utilise en ensemble de seuils. Chaque seuil permettant de déterminer comment le dispositif de modification doit modifier le flux vidéo binaire. Si la complexité de mise en œuvre est inférieure à un premier seuil, le flux vidéo binaire n'est pas modifié ; si la complexité de mise en œuvre est comprise entre le premier seuil et un second seuil, le filtrage SAO est désactivé ; si la complexité de mise en œuvre est comprise entre le second seuil et un troisième seuil, le filtrage SAO est désactivé et le filtrage de déblocage de faible complexité est privilégié; si la complexité de mise en œuvre est supérieure au troisième seuil, le filtrage SAO et le filtrage de déblocage sont désactivés.
Lors d'une étape 304, le dispositif de modification 113 détermine si l'utilisateur souhaite afficher la vidéo en mode accéléré. Dans ce cas, le dispositif de modification de flux binaire 113 fixe la variable DBF Jaible à vrai lors d'une étape 305 et la variable SAO OFF à vrai lors d'une étape 306.
Sinon, lors d'une étape 307, le dispositif de modification 113 détermine si l'utilisateur souhaite afficher deux vidéos selon un mode image dans image, une première vidéo étant affichée avec une résolution faible et incrustée dans une seconde vidéo affichée en pleine résolution. Dans ce cas, le dispositif de modification 113 fixe la variable DBF OFF à vrai lors d'une étape 308 et la variable SAO OFF à vrai lors d'une étape 309.
Sinon, lors d'une étape 310, le dispositif de modification 113 détermine si l'utilisateur souhaite utiliser un mode multi applicatif. Un mode multi applicatif peut être une combinaison de plusieurs fonctionnalités d'affichage comme par exemple, l'affichage accéléré combiné avec le mode image dans image ou un mode mosaïque dans lequel plusieurs vidéos de faible résolution sont affichées simultanément. Si un mode multi applicatif est demandé, le dispositif de modification 113 détermine la complexité de mise en œuvre du mode multi applicatif demandé. Lors d'une étape 311, le dispositif de modification 113 détermine si la complexité de mie en œuvre est faible, par exemple entre le premier et le deuxième seuil. Un mode multi applicatif ayant une faible complexité de mise en œuvre peut par exemple être une demande d'affichage en mode image dans image dans lequel la vidéo basse résolution est affichée en accéléré. Si c'est le cas, le dispositif de modification 113 fixe la variable SAO OFF à vrai lors d'une étape 312.
Sinon, lors d'une étape 313, le dispositif de modification 113 détermine si la complexité de mise en œuvre du mode multi applicatif est moyenne, par exemple entre le deuxième et le troisième seuil. Un mode multi applicatif ayant une complexité de mise en œuvre moyenne peut par exemple être une demande d'affichage en mode image dans image dans lequel la vidéo pleine résolution est affichée en accéléré. Si c'est le cas, le dispositif de modification 113 fixe la variable DBF Jaible à vrai lors d'une étape 314 et la variable SAO OFF à vrai lors d'une étape 315.
Sinon, lors d'une étape 316, le dispositif de modification 113 détermine si la complexité de mise en œuvre est élevée, par exemple supérieure au troisième seuil. Un mode multi applicatif ayant un coût calculatoire élevé peut par exemple être une demande d'affichage d'une mosaïque de plusieurs vidéos de faibles résolutions. Si c'est le cas, le dispositif de modification 113 fixe la variable DBF OFF à vrai lors d'une étape 317 et la variable SAO OFF à vrai lors d'une étape 318.
Si lors de l'étape 310, aucune fonctionnalité d'affichage n'est demandée ou si la fonctionnalité d'affichage demandée n'est pas reconnue, le dispositif de modification 113 ne change pas les variables DBF Jaible, DBF OFF et SAO OFF. Dans ce cas, l'affichage est un affichage classique d'une vidéo en pleine résolution. On peut remarquer que les variables DBF faible et DBF OFF ne peuvent pas être toutes les deux égales à vrai. Il n'est en effet pas nécessaire de modifier un flux vidéo binaire de manière à privilégier la mise en œuvre du filtre de déblocage de faible complexité alors que le filtrage de déblocage est destiné à être désactivé.
Après avoir pris en compte les souhaits de fonctionnalité d'affichage de l'utilisateur, le dispositif de modification 113 commence la modification du flux vidéo reçu. Ce flux vidéo a été reçu sous forme de paquets réseau. On considère ici que chaque paquet réseau contient un seul conteneur. Le dispositif de modification 113 traite les paquets un par un selon leur ordre d'arrivée. Lors d'une étape 319, le dispositif de modification 113 retire le conteneur du paquet réseau. Le dispositif de modification 113 vérifie ensuite, dans une étape 320, la valeur de la variable DBF aible. Si la variable DBF aible est à vrai, le conteneur est traité dans une première étape de modification 321 de portions du flux vidéo binaire. Un exemple de mise en œuvre de cette première étape de modification 321 est détaillé par la suite en relation avec la Fig. 7. La première étape de modification 321 transforme une portion de flux vidéo binaire correspondant au conteneur de manière à privilégier l'utilisation du filtre de déblocage faible lors du décodage. Des éléments de syntaxe contrôlant la complexité de mise en œuvre du filtrage de déblocage sont alors modifiés.
Lors d'une étape 322 suivant l'étape 321 (ou l'étape 320 si la variable DBF aible est à faux), le dispositif de modification 113 teste la valeur de la variable DBF OFF. Si la variable DBF OFF est à vrai, le conteneur est traité par une seconde étape de modification de portions du flux vidéo binaire 323. Un exemple de mise en œuvre de cette seconde étape de modification 323 est détaillé par la suite en relation avec la Fig. 8. La seconde étape de modification 323 transforme une portion de flux vidéo binaire correspondant au conteneur de manière à désactiver le filtrage de déblocage lors du décodage. Des éléments de syntaxe contrôlant la complexité de mise en œuvre du filtrage de déblocage sont alors modifiés ou supprimés.
Lors d'une étape 324 suivant l'étape 323 (ou l'étape 322 si la variable DBF OFF est à faux), le dispositif de modification teste la valeur de la variable SAO OFF. Si la variable SAO OFF est à vrai, le conteneur est traité par une troisième étape de modification de portions du flux vidéo binaire 325. Un exemple de mise en œuvre de cette troisième étape de modification 325 est détaillé par la suite en relation avec la Fig. 9. La troisième étape de modification 325 transforme une portion de flux vidéo binaire correspondant au conteneur de manière à désactiver le filtrage SAO lors du décodage. Des éléments de syntaxe contrôlant la complexité de mise en œuvre du filtrage SAO sont alors supprimés ou modifiés.
L'étape 325 (ou l'étape 324 si la variable SAO OFF est à faux) est suivie d'une étape 326 au cours de laquelle le conteneur est transmis au dispositif suivant le dispositif de modification 113, i .e. le dispositif de décodage 114 dans l'exemple de la Fig. 1A.
La Fig. 3 représente schématiquement un procédé permettant d'assurer la compatibilité de fonctionnalités d'affichage vidéo avec des capacités calculatoires d'un dispositif de décodage de vidéos. Ce procédé est adapté à des flux vidéo binaires encodés selon le standard HEVC. Ce procédé peut être adapté à des flux vidéo binaires encodés selon le standard H.264/AVC en supprimant toutes les étapes relatives au filtrage SAO (étapes 303, 306, 309, 312, 315, 318, 324, 325). Dans un mode de réalisation particulier, lors de l'étape 300, le dispositif de modification 113 reconnaît le standard d'encodage appliqué lors de l'encodage du flux vidéo binaire entre HEVC et H.264/AVC, ce qui permet dans la suite du procédé d'appliquer ou pas les étapes relatives au filtrage SAO. Dans ce mode de réalisation, le dispositif de décodage 114 est apte à décoder des flux vidéo binaires encodés selon les standards HEVC et H264/AVC. On peut remarquer que lorsque le procédé est appliqué à un flux vidéo binaire encodé selon le standard H.264/AVC, seuls des éléments de syntaxe compris dans des conteneurs SPS, PPS et dans des entêtes de tranche sont modifiés, ce qui facilite la modification du flux vidéo binaire.
Par ailleurs, dans l'algorithme décrit en relation avec la Fig. 3, les modifications à apporter au flux vidéo binaire dépendent de fonctionnalités d'affichage souhaitées par un utilisateur. Dans un autre mode de réalisation alternatif, les modifications à apporter au flux vidéo binaire dépendent d'outils de décodage implémentés par le dispositif de décodage 114. Par exemple, certains dispositifs de décodage implémentent des outils de post filtrage en dehors de la boucle de prédiction. Ces outils de post filtrage en dehors de la boucle de prédiction peuvent être très performants et diminuer l'intérêt d'utiliser le filtrage de déblocage et le filtrage SAO. De plus, ces outils de post filtrage en dehors de la boucle de prédiction augmentent eux aussi la complexité de décodage. Dans certains cas, on peut préférer utiliser ces outils plutôt que les outils de filtrage de boucle spécifiés par les standards de compression vidéo. Par conséquent, dans ce mode de réalisation alternatif, des informations sur les outils de post filtrage hors boucle de prédiction sont fournies au dispositif de modification 113, qui modifie et/ou désactive la mise en œuvre de filtrage SAO et/ou le filtrage de déblocage si nécessaire.
Par ailleurs, la Fig. 3 représente schématiquement un algorithme permettant d'assurer la compatibilité d'un flux vidéo binaire avec des capacités calculatoires d'un dispositif de décodage de vidéos, lorsque le dispositif de décodage de vidéos est utilisé pour mettre en œuvre des fonctionnalités d'affichage demandant un effort calculatoire important. Dans un autre mode de réalisation, cet algorithme pourrait permettre d'assurer la compatibilité d'un flux vidéo binaire avec les capacités en mémoire d'un dispositif de décodage de vidéos. Dans ce mode de réalisation, chaque fonctionnalité d'affichage correspond à un coût en mémoire. On suppose ici que le dispositif de modification 113 connaît le coût en mémoire correspondant à la mise en œuvre de chaque fonctionnalité d'affichage que pourrait formuler un utilisateur. Le dispositif de modification 113 compare alors ces informations sur le coût en mémoire des fonctionnalités d'affichage avec des informations sur les capacités en mémoire du dispositif de décodage 114. Cette comparaison permet au dispositif de modification 113 de déterminer quels sont les besoins de modification du flux vidéo binaire en termes de réduction du coût en mémoire pour que le décodage de ce flux vidéo binaire, dans le cadre de la fonctionnalité d'affichage souhaitée par l'utilisateur, soit compatible avec les capacités en mémoire du dispositif de décodage 114. Les modifications à apporter au flux vidéo binaire dépendent de ce besoin de réduction du coût en mémoire. Ce mode de réalisation est combinable avec le mode de réalisation basé sur le coût calculatoire. En cas de combinaison, la complexité de mise en œuvre du décodage concerne à la fois une complexité calculatoire, mais aussi une complexité en termes d'utilisation de la mémoire du dispositif de décodage 114. Le flux vidéo binaire modifié par le dispositif de modification 113 est alors compatible avec les capacités calculatoires du dispositif de décodage 114, mais aussi avec les capacités en mémoire du dispositif de décodage 114.
La Fig. 7 détaille un algorithme mis en œuvre par le dispositif de modification 113 permettant de transformer un conteneur HEVC de sorte à privilégier l'utilisation du filtre de déblocage faible lors du décodage. L'algorithme débute par la réception d'un conteneur lors d'une étape 700. Le type du conteneur reçu est ensuite vérifié par le dispositif de modification 113 lors d'une étape 701. Si le conteneur est un conteneur PPS, le dispositif de modification 113 recherche dans une étape 702 l'élément de syntaxe pps_beta_offset_div2 permettant de contrôler la valeur du paramètre du filtrage de déblocage. Si l'élément de syntaxe pps_beta_offset_div2 est présent, le dispositif de modification force la valeur de l'élément de syntaxe pps_beta_offset_div2 à la valeur « -6 ». En fixant la valeur de l'élément de syntaxe pps_beta_offset_div2 à la valeur « -6 » on augmente les chances d'utilisation du filtre de déblocage à quatre coefficients lors du décodage. Dans un mode de réalisation alternatif, le dispositif de modification peut aussi forcer la valeur de l'élément de syntaxe pps_tc_offset_div2 à la valeur « -6 », ce qui a pour effet de favoriser encore plus l'utilisation du filtre de déblocage à 4 coefficients lors du décodage. Après la mise en œuvre de l'étape 703, ou en cas de réponse négative lors de l'étape 701 ou 702, le dispositif de modification 113 attend la réception d'un nouveau conteneur. La réception d'un nouveau conteneur provoque le retour à l'étape 700. Si le conteneur n'est pas de type PPS, le dispositif de modification 113 vérifie, lors d'une étape 704, si le conteneur est de type VCL. Si c'est le cas, le dispositif de modification 113 recherche, lors d'une étape 705, dans l'entête de la tranche correspondant au conteneur,, l'élément de syntaxe slice _beta_offset_div2 permettant de contrôler la valeur du paramètre du filtrage de déblocage au niveau d'une tranche. Si l'élément de syntaxe slice _beta_offset_div2 est présent, le dispositif de modification 113 fixe la valeur de l'élément de syntaxe slice _beta_offset_div2 à la valeur « -6 ». En fixant la valeur de l'élément de syntaxe slice _beta_ojfset_div2 à la valeur « -6 » on augmente les chances d'utilisation du filtre de déblocage faible lors du décodage. Dans une autre mise en œuvre, l'élément de syntaxe slice_beta_offset_div2 est supprimé dans la portion de flux vidéo binaire correspondant à la tranche. Dans cette mise en œuvre, la valeur de l'élément de syntaxe slice _beta_offset_div2 est recopiée de la valeur de l'élément de syntaxe PPS_beta_ojfset_div2 contenu dans le conteneur PPS correspondant à la tranche. Dans un mode de réalisation alternatif, le dispositif de modification peut aussi forcer la valeur de l'élément de syntaxe slice _tc_offset_div2 à la valeur « -6 », ou supprimer l'élément de syntaxe slice _tc_offset_div2 dont la valeur peut être recopiée de la valeur de l'élément de syntaxe pps_tc_offset_div2
Après la mise en œuvre de l'étape 706, ou en cas de réponse négative lors de l'étape 704 ou 705, le dispositif de modification 113 attend la réception d'un nouveau conteneur. La réception d'un nouveau conteneur provoque le retour à l'étape 700.
La Fig. 8 détaille un algorithme mis en œuvre par le dispositif de modification 113 permettant de transformer un conteneur HEVC de sorte à désactiver l'utilisation du filtrage de déblocage lors du décodage. Une première partie 821 de l'algorithme s'applique lors de la réception d'un conteneur PPS. Cette première partie permet d'assurer la cohérence avec la désactivation du filtrage de déblocage d'un ensemble d'éléments de syntaxe d'un conteneur PPS relatif au filtrage de déblocage. L'algorithme débute par la réception d'un conteneur lors d'une étape 800. Le type du conteneur reçu est ensuite vérifié par le dispositif de modification 113 lors d'une étape 801. Si le conteneur est un conteneur PPS, le dispositif de modification 113 recherche lors d'une étape 802 un élément de syntaxe DeblockingJilter_control _present Jlag, indiquant la présence d'éléments de syntaxe relatifs au filtrage de déblocage dans le conteneur. Lorsque l'élément de syntaxe DeblockingJilter_control _present Jlag est trouvé, le dispositif de modification 113 vérifie la valeur de l'élément de syntaxe DeblockingJîlter_control _present Jlag. Si la valeur de l'élément de syntaxe DeblockingJïlter_control _present Jlag est différente de « 1 », le dispositif de modification fixe l'élément de syntaxe DeblockingJïlter_control _present Jlag à la valeur « 1 » lors d'une étape 803, puis crée un élément de syntaxe deblockingJîlter_override_enabled Jlag, autorisant une tranche à modifier des valeurs de paramètres relatifs au filtrage de déblocage, lors d'une étape 804 et un élément de syntaxe pps_deblockingJilter_disabled Jlag, indiquant que les tranches faisant référence à ce conteneur PPS ne mettent pas en œuvre le filtrage de déblocage, lors d'une étape 805. L'étape 805 (ou l'étape 802 lorsque l'élément de syntaxe DeblockingJîlter_control _present Jlag est égal à « 1 ») est suivie par une étape 806. Si l'élément de syntaxe DeblockingJîlter_control _present Jlag est égal à « 1 », le dispositif de modification 113 recherche l'élément de syntaxe deblockingJïlter_override_enabled Jlag. L'élément de syntaxe deblockingJîlter_override_enabled Jlag est alors mis à « 0 ». Si l'élément de syntaxe DeblockingJïlter_control _present Jlag était égal à « 0 », l'élément de syntaxe deblockingJîlter_override_enabled Jlag est alors mis à « 0 » et l'élément de syntaxe deblockingJîlter_override_enabled Jlag est inséré dans la portion de flux binaire correspondant au conteneur. Lors d'une étape 807, si l'élément de syntaxe DeblockingJîlter_control _present Jlag est égal à « 1 », le dispositif de modification 113 recherche l'élément de syntaxe pps_deblockingJïlter_disabled Jlag. L'élément de syntaxe pps_deblockingJïlter_disabled Jlag est alors mis à « 1 ». Si l'élément de syntaxe DeblockingJîlter_control _present Jlag est égal à « 0 », l'élément de syntaxe pps_deblockingJilter_disabled Jlag est alors mis à « 1 » et l'élément de syntaxe pps_deblockingJilter_disabled Jlag est inséré dans la portion de flux binaire correspondant au conteneur.
Au cours d'une étape 808, le dispositif de modification 113 recherche dans la portion de flux vidéo binaire correspondant au conteneur l'élément de syntaxe pps Jeta _offset_div2 permettant de contrôler la valeur du paramètre β du filtre de déblocage. Si l'élément de syntaxe pps Jeta _oj set _div2 est présent, il est supprimé dans la portion de flux vidéo binaire correspondant au conteneur lors d'une étape 809.
L'étape 808 (ou l'étape 809 si l'élément de syntaxe pps_beta_offset_div2 est présent) est suivie d'une étape 810 au cours de laquelle le dispositif de modification 113 recherche dans la portion de flux vidéo binaire correspondant au conteneur l'élément de syntaxe pps_tc_offset_div2 permettant de contrôler la valeur du paramètre du filtre de déblocage. Si l'élément de syntaxe pps_tc_offset_div2 est présent, il est supprimé dans la portion de flux vidéo binaire correspondant au conteneur lors d'une étape 811.
Après avoir transformé le conteneur PPS, le dispositif de modification 113 attend la réception d'un nouveau conteneur. La réception d'un nouveau conteneur provoque le retour à l'étape 800.
Si lors de l'étape 801, le conteneur n'est pas un conteneur PPS, le dispositif de modification 113 vérifie si c'est un conteneur VCL lors d'une étape 812. Si le conteneur n'est pas un conteneur VCL, le dispositif de modification 113 attend la réception d'un nouveau conteneur. La réception d'un nouveau conteneur provoque le retour à l'étape 800.
Si le conteneur est un conteneur VCL, le dispositif de modification 113 applique une seconde partie 822 de l'algorithme, telle que représentée dans la Fig. 8. En appliquant cette seconde partie 822 de l'algorithme, le dispositif de modification 113 assure la cohérence avec la désactivation du filtrage de déblocage d'un ensemble d'éléments de syntaxe d'une tranche relatif au filtrage de déblocage. Cette seconde partie 822 de l'algorithme consiste à supprimer tous les éléments de syntaxe relatifs au filtrage de déblocage de l'entête de la tranche contenu dans le conteneur VCL. Dans une étape 813, le dispositif de modification 113 recherche un élément de syntaxe DeblockingJïlter_override Jlag, indiquant la présence de paramètres relatifs au filtrage de déblocage dans la tranche.
Si l'élément de syntaxe DeblockingJîlter_override Jlag est présent, le dispositif de modification 113 supprime l'élément de syntaxe DeblockingJïlter_override Jlag de la portion de flux vidéo binaire correspondant au conteneur lors d'une étape 814.
L'étape 813 (ou l'étape 814 si l'élément de syntaxe Deblocking lter_override Jlag est présent) est suivie d'une étape 815 au cours de laquelle le dispositif de modification 113 recherche un élément de syntaxe Slice_deblockingJilter_disabled Jag indiquant si le filtrage de déblocage est activé ou pas pour la tranche contenue dans le conteneur. Si l'élément de syntaxe Slice_deblockingJilter_disabled ag est présent, le dispositif de modification supprime l'élément de syntaxe Slice_deblockingJilter_disabled Jag de la portion de flux vidéo binaire correspondant au conteneur lors d'une étape 816. L'étape 815 (ou l'étape 816 si l'élément de syntaxe Slice_deblockingJîlter_disabled Jlag est présent) est suivie d'une étape 817 au cours de laquelle le dispositif de modification 113 recherche l'élément de syntaxe slice_beta_offset_div_2. Si l'élément de syntaxe slice_beta_offset_div_2 est présent, le dispositif de modification supprime l'élément de syntaxe slice_beta_offset_div_2 de la portion de flux vidéo binaire correspondant au conteneur lors d'une étape 818.
L'étape 817 (ou l'étape 818 si l'élément de syntaxe slice_beta_offset_div_2 est présent) est suivie d'une étape 819 au cours de laquelle le dispositif de modification 113 recherche l'élément de syntaxe slice_tc_offset_div_2. Si l'élément de syntaxe slice_tc_offset_div_2 est présent, le dispositif de modification supprime l'élément de syntaxe slice_tc_offset_div_2 de la portion de flux vidéo binaire correspondant au conteneur lors d'une étape 820.
Après la mise en œuvre de l'étape 819 (ou l'étape 820 si l'élément de syntaxe slice_tc_offset_div_2 est présent), le dispositif de modification 113 attend la réception d'un nouveau conteneur. La réception d'un nouveau conteneur provoque le retour à l'étape 800.
La Fig. 9 détaille un algorithme mis en œuvre par le dispositif de modification 113 permettant de transformer un conteneur HEVC de sorte à désactiver l'utilisation du filtrage SAO lors du décodage. Une première partie 914 de l'algorithme s'applique lors de la réception d'un conteneur SPS. Cette première partie 914 permet d'assurer la cohérence d'un élément de syntaxe d'un conteneur SPS relatif au filtrage SAO avec la désactivation du filtrage SAO. La première partie 914 débute par la réception d'un conteneur lors d'une étape 901. Le type du conteneur reçu est ensuite vérifié par le dispositif de modification 113 lors d'une étape 902. Si le conteneur est un conteneur SPS, le dispositif de modification 113 force à « 0 », dans une étape 903, la valeur d'un élément de syntaxe Sample_adaptive_offset_enabled Jlag indiquant si le filtrage SAO doit être mis en œuvre dans les tranches faisant référence à ce conteneur SPS. Suite à l'étape 903, le dispositif de modification 113 attend la réception d'un nouveau conteneur. La réception d'un nouveau conteneur provoque le retour à l'étape 901.
Si le conteneur n'est pas un conteneur SPS, le dispositif de modification 113 vérifie si le conteneur est un conteneur VCL. Si le conteneur n'est pas un conteneur VCL, le dispositif de modification 113 attend la réception d'un nouveau conteneur. La réception d'un nouveau conteneur provoque le retour à l'étape 901. Si le conteneur reçu est un conteneur VCL, le dispositif de modification 113 applique une seconde partie 915 de l'algorithme. Dans cette seconde partie 915, le dispositif de modification 113 assure la cohérence d'éléments de syntaxe d'un conteneur VCL relatif au filtrage SAO avec la désactivation du filtrage SAO. La seconde partie 915 débute par la recherche lors d'une étape 905 d'un élément de syntaxe Slice_sao_luma Jlag indiquant si le filtrage SAO est appliqué sur la composante de luminance des pixels dans la tranche contenue dans le conteneur. Si l'élément de syntaxe Slice_sao_luma Jlag est présent, le dispositif de modification 113 supprime lors d'une étape 906 l'élément de syntaxe Slice_sao_luma Jlag de la portion de flux vidéo binaire correspondant au conteneur. L'étape 905 (ou l'étape 906 si l'élément de syntaxe Slice _sao Juma Jlag est présent) est suivie d'une étape 907.
Lors de l'étape 907, le dispositif de modification 113 recherche un élément de syntaxe Slice _sao_chroma Jlag indiquant si le filtrage SAO est appliqué sur la composante de chrominance des pixels dans la tranche contenue dans le conteneur. Si l'élément de syntaxe Slice _sao_chroma Jlag est présent, le dispositif de modification 113 supprime lors d'une étape 908 l'élément de syntaxe Slice _sao_chroma Jlag de la portion de flux vidéo binaire correspondant au conteneur. L'étape 907 (ou l'étape 908 si l'élément de syntaxe Slice _sao_chroma Jlag est présent) est suivie d'une étape 909.
Dans une autre mise en œuvre des étapes 906 et 908, les éléments de syntaxe Slice _sao Juma Jlag et Slice _sao_chroma Jlag sont mis à la valeur « 0 ».
La suite de l'algorithme permet de parcourir l'ensemble des CTB contenus dans la tranche correspondant au conteneur VCL. Il est nécessaire en effet de vérifier pour chaque CTB, si le CTB contient des éléments de syntaxe relatifs au filtrage SAO et le cas échéant, de supprimer ces éléments de syntaxe. Lors de l'étape 909, une variable n utilisée pour parcourir l'ensemble des CTB de la tranche est initialisée à la valeur « 0 ». Lors d'une étape 910, la variable n est comparée au nombre Nctb de CTB dans la tranche. Si n est inférieur à Nctb, le dispositif de modification 113 recherche des éléments de syntaxe relatifs au filtrage SAO dans le CTB. Si le CTB ne contient aucun élément de syntaxe relatif au filtrage SAO, la variable n est incrémentée d'une unité et l'algorithme retourne à l'étape 910. Si le CTB contient des éléments de syntaxe relatifs au filtrage SAO, ces éléments de syntaxe sont supprimés de la portion de flux vidéo binaire correspondant au CTB lors d'une étape 912. La suppression concerne par exemple les éléments de syntaxe suivants : saojnergejeft Jlag, sao_merge_up Jlag, saojypejdxjuma, sao_type dx_chroma, sao_offset_abs, sao_offset_sign, sao_band _position, sao_eo_class_luma, sao_eo_class_chroma. L'étape 912 est suivie de l'étape 913.
Jusque là, nous avons considéré que la même fonctionnalité d'affichage était appliquée tout au long d'un flux vidéo. Dans une autre mode de réalisation, la fonctionnalité d'affichage peut être modifiée à tout moment au cours de l'affichage d'un flux vidéo. Dans ce cas, les conteneurs PPS, SPS et VCL pourront être adaptés à tout moment suivant les besoins. Les tranches peuvent faire référence à des conteneurs SPS et PPS adaptés à la fonctionnalité désirée par un utilisateur à un certain moment. Le dispositif de modification 113 donne alors respectivement à ces conteneurs SPS et PPS des indices de conteneur SPS et des indices de conteneur PPS permettant des les différencier des conteneurs SPS et PPS présents dans le flux vidéo binaire initial avant modification.
De plus, nous avons décrit le dispositif de modification 113 transformant des conteneurs correspondant à un seul flux vidéo binaire. Dans un autre mode de réalisation, le dispositif de modification 113 traite des conteneurs provenant de flux vidéo binaires différents et applique à ces conteneurs des transformations différentes en fonction de la fonctionnalité d'affichage visée. Ces différents flux vidéo binaires modifiés sont ensuite décodés en parallèle par le dispositif de décodage 114 et combinés par le dispositif d'affichage 115, par exemple, pour incruster une vidéo de basse résolution dans une vidéo de haute résolution ou pour afficher une mosaïque de vidéo. Les différents flux vidéo binaire peuvent d'ailleurs être encodés suivant des standards différents, certains étant encodés selon le standard HEVC et d'autres étant encodés selon le standard H.264/AVC. Dans ce mode de réalisation, le dispositif de décodage 114 est apte à décoder des flux vidéo binaires encodés selon les standards HEVC et H.264/AVC.
Enfin, dans la Fig. 1A, le dispositif de modification 113 est placé entre le dispositif de réception 112 et le dispositif de décodage 114. Dans une mise en œuvre alternative illustrée par la Fig. 1B, le dispositif de modification peut aussi être placé entre le dispositif d'encodage 110 et le dispositif de transmission 111. Dans ce cas toutefois il est nécessaire d'utiliser un moyen de transmission des souhaits de fonctionnalité d'affichage de l'utilisateur au dispositif de modification 113. On peut pour cela utiliser des requêtes RTSP (protocole de transmission temps réel : « Real Time Streaming Protocol » en terminologie anglo-saxonne) pour indiquer au dispositif de modification 113 une information représentative du type de fonctionnalité d'affichage désirée par l'utilisateur.

Claims

REVENDICATIONS
1) Procédé de modification d'un flux vidéo binaire encodé selon un algorithme de codage vidéo comprenant une boucle de prédiction et un post filtrage de boucle intégré dans la boucle de prédiction, caractérisé en ce qu'un dispositif (113) effectue les étapes suivantes :
rechercher (702, 705, 802, 806, 807, 808, 810, 813, 815, 817, 819, 903, 905,
907, 911) un élément de syntaxe relatif au post filtrage de boucle dans le flux vidéo binaire, l'élément de syntaxe étant utilisé par un dispositif de décodage (114) pour contrôler une complexité de mise en œuvre du post filtrage de boucle; et
modifier (321, 323, 325, 703, 706, 806, 807, 903) une valeur de l'élément de syntaxe dans le flux vidéo binaire ou supprimer (321, 323, 325, 809, 811, 814, 816, 818, 820, 906, 908, 912) l'élément de syntaxe du flux vidéo binaire de sorte à obtenir une réduction de la complexité de mise en œuvre du post filtrage de boucle par le dispositif de décodage. 2) Procédé selon la revendication 1, caractérisé en ce que le post filtrage de boucle comprend un filtrage de déblocage et/ou un filtrage SAO.
3) Procédé selon la revendication 2, caractérisé en ce que, le filtrage de déblocage atténuant des discontinuités entre des blocs de pixels et comprenant un premier filtrage et un second filtrage, le premier filtrage atténuant plus fortement les discontinuités entre les blocs de pixels que le second filtrage, le premier filtrage ayant une plus forte complexité que le second filtrage, lorsque la valeur de l'élément de syntaxe a été modifiée et que l'élément de syntaxe est relatif au filtrage de déblocage, ladite valeur est modifiée (703, 706) de sorte à favoriser une utilisation par le dispositif de décodage du second filtrage par rapport au premier filtrage.
4) Procédé selon la revendication 2, caractérisé en ce que, lorsque la valeur de l'élément de syntaxe a été modifiée et que l'élément de syntaxe est relatif au filtrage de déblocage ou relatif au filtrage SAO, la modification (803, 806, 807, 903) de la valeur de l'élément de syntaxe permet de désactiver respectivement la mise en œuvre du filtrage de déblocage ou la mise en œuvre du filtrage SAO par le dispositif de décodage. 5) Procédé selon la revendication 2, caractérisé en ce que, lorsque l'élément de syntaxe est supprimé et que l'élément de syntaxe est relatif au filtrage de déblocage ou relatif au filtrage SAO, la suppression (809, 811, 814, 816, 818, 820, 906, 908, 912) de l'élément de syntaxe permet de désactiver respectivement la mise en œuvre du filtrage de déblocage ou la mise en œuvre du filtrage SAO par le dispositif de décodage.
6) Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce que la valeur de l'élément de syntaxe modifié et/ou l'élément de syntaxe supprimé dépendent d'une information représentative d'une réduction d'une complexité de décodage.
7) Procédé selon la revendication 6, caractérisé en ce que la réduction de la complexité de décodage dépend d'une fonctionnalité d'affichage souhaitée par un utilisateur pour un affichage, sur un dispositif d'affichage (115), d'images correspondant au flux vidéo binaire.
8) Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce que le procédé comprend en outre les étapes suivantes :
- recevoir le flux vidéo binaire d'un dispositif de réception (112), le flux vidéo binaire étant reçu par le dispositif de réception par l'intermédiaire d'un réseau de communication (120); et
- transmettre au dispositif de décodage un flux vidéo binaire modifié résultant de la modification du flux vidéo binaire.
9) Procédé selon l'une quelconque des revendications 1 à 7, caractérisé en ce que le procédé comprend en outre les étapes suivantes :
- recevoir le flux vidéo binaire d'un dispositif d'encodage (110);
- recevoir une information représentative d'une réduction d'une complexité de décodage par l'intermédiaire d'un réseau de communication (120); et
- transmettre, à un dispositif de transmission (111), un flux vidéo binaire modifié résultant de la modification, en vue d'une transmission du flux vidéo binaire modifié sur le réseau de communication. 10) Procédé selon l'une quelconque des revendications 1 à 9, caractérisé en ce que ledit algorithme de codage vidéo est basé sur le standard H.264/AVC ou sur le standard HEVC.
11) Dispositif de modification (113) d'un flux vidéo binaire encodé selon un algorithme de codage vidéo comprenant une boucle de prédiction et un post filtrage de boucle intégré dans la boucle de prédiction, caractérisé en ce que le dispositif comprend:
des moyens pour rechercher (702, 705, 802, 806, 807, 808, 810, 813, 815, 817,
819, 903, 905, 907, 911) dans le flux vidéo binaire un élément de syntaxe relatif au post filtrage de boucle, l'élément de syntaxe étant utilisé par un dispositif de décodage (114) pour contrôler la complexité de mise en œuvre du post filtrage de boucle ; et des moyens pour modifier (321, 323, 325, 703, 706, 806, 807, 903) une valeur de l'élément de syntaxe dans le flux vidéo binaire et/ou des moyens pour supprimer (321, 323, 325, 809, 811, 814, 816, 818, 820, 906, 908, 912) l'élément de syntaxe du flux vidéo binaire de sorte à obtenir une réduction de la complexité de mise en œuvre du post filtrage de boucle par le dispositif de décodage. 12) Système de communication d'un flux vidéo binaire en vue d'un affichage par un dispositif d'affichage (115), le flux vidéo binaire ayant été encodé selon un algorithme de codage vidéo comprenant une boucle de prédiction et un post filtrage de boucle intégré dans la boucle de prédiction, le système comprenant un dispositif de décodage (114) apte à décoder le flux vidéo binaire et apte à transmettre au dispositif d'affichage (115) des images correspondant à un résultat du décodage du flux vidéo binaire, caractérisé en ce que le système comprend un dispositif de modification (113) d'un flux vidéo binaire selon la revendication 11 , le dispositif de modification étant apte à fournir au dispositif de décodage un flux vidéo binaire modifié résultant de la modification par le dispositif de modification du flux vidéo binaire.
13) Produit programme d'ordinateur, caractérisé en ce qu'il comporte des instructions pour mettre en œuvre, par un dispositif, le procédé selon l'une quelconque des revendications 1 à 10, lorsque ledit programme est exécuté par un processeur dudit dispositif. 14) Moyens de stockage, caractérisés en ce qu'ils stockent un programme d'ordinateur comportant des instructions pour mettre en œuvre, par un dispositif, le procédé selon l'une quelconque des revendications 1 à 10, lorsque ledit programme est exécuté par un processeur dudit dispositif.
EP15707152.3A 2014-03-04 2015-03-02 Procédé de modification d'un flux vidéo binaire Ceased EP3114836A1 (fr)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR1451723A FR3018417B1 (fr) 2014-03-04 2014-03-04 Procede de modification d'un flux video binaire.
PCT/EP2015/054323 WO2015132209A1 (fr) 2014-03-04 2015-03-02 Procédé de modification d'un flux vidéo binaire

Publications (1)

Publication Number Publication Date
EP3114836A1 true EP3114836A1 (fr) 2017-01-11

Family

ID=51260963

Family Applications (1)

Application Number Title Priority Date Filing Date
EP15707152.3A Ceased EP3114836A1 (fr) 2014-03-04 2015-03-02 Procédé de modification d'un flux vidéo binaire

Country Status (5)

Country Link
US (1) US10298959B2 (fr)
EP (1) EP3114836A1 (fr)
CN (2) CN106068650B (fr)
FR (1) FR3018417B1 (fr)
WO (1) WO2015132209A1 (fr)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3550842A4 (fr) * 2016-12-30 2020-06-10 Huawei Technologies Co., Ltd. Procédé, appareil et dispositif de filtrage d'image
CN109672893B (zh) * 2018-11-30 2022-01-14 广州市百果园信息技术有限公司 一种视频解码方法、装置、设备和存储介质
US11381867B2 (en) * 2019-01-08 2022-07-05 Qualcomm Incorporated Multiple decoder interface for streamed media data
BR112022015242A2 (pt) 2020-02-04 2022-09-20 Huawei Tech Co Ltd Codificador, decodificador e métodos correspondentes sobre sinalização de sintaxe de alto nível
CN113242426B (zh) * 2021-04-06 2024-02-13 中南大学 一种视频编解码方法、设备和存储介质
US11778211B2 (en) * 2021-09-16 2023-10-03 Apple Inc. Parallel video parsing for video decoder processing
WO2023111384A1 (fr) * 2021-12-13 2023-06-22 Nokia Technologies Oy Procédé, appareil et produit programme d'ordinateur pour un codage et un décodage vidéo
CN121058231A (zh) * 2023-04-06 2025-12-02 Lg电子株式会社 图像编码/解码方法、发送比特流的方法以及存储比特流的记录介质

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7961963B2 (en) * 2005-03-18 2011-06-14 Sharp Laboratories Of America, Inc. Methods and systems for extended spatial scalability with picture-level adaptation
CN100515082C (zh) * 2006-05-23 2009-07-15 中国科学院声学研究所 通过解码质量控制降低视频解码复杂度的方法
US9001899B2 (en) * 2006-09-15 2015-04-07 Freescale Semiconductor, Inc. Video information processing system with selective chroma deblock filtering
US9961372B2 (en) * 2006-12-08 2018-05-01 Nxp Usa, Inc. Adaptive disabling of deblock filtering based on a content characteristic of video information
US20110002395A1 (en) * 2008-03-31 2011-01-06 Nec Corporation Deblocking filtering processor and deblocking filtering method
US20090304085A1 (en) * 2008-06-04 2009-12-10 Novafora, Inc. Adaptive Deblocking Complexity Control Apparatus and Method
US8611435B2 (en) * 2008-12-22 2013-12-17 Qualcomm, Incorporated Combined scheme for interpolation filtering, in-loop filtering and post-loop filtering in video coding
JP2012044535A (ja) * 2010-08-20 2012-03-01 Toshiba Corp 動画像符号化装置及び動画像符号化方法
US9167269B2 (en) * 2011-10-25 2015-10-20 Qualcomm Incorporated Determining boundary strength values for deblocking filtering for video coding
US9774851B2 (en) * 2011-11-03 2017-09-26 Sun Patent Trust Quantization parameter for blocks coded in the PCM mode
US20130142251A1 (en) * 2011-12-06 2013-06-06 Sony Corporation Syntax extension of adaptive loop filter in hevc
EP2810443B1 (fr) * 2012-02-01 2021-03-31 Nokia Technologies Oy Procédé et appareil de codage vidéo
TWI524739B (zh) * 2012-02-10 2016-03-01 美國博通公司 根據視頻編碼的採樣點自適應偏移(sao)
WO2013144144A1 (fr) * 2012-03-30 2013-10-03 Panasonic Corporation Syntaxe et sémantique pour filtre de boucle adaptatif et décalage adaptatif d'échantillon
US9386307B2 (en) * 2012-06-14 2016-07-05 Qualcomm Incorporated Grouping of bypass-coded bins for SAO syntax elements
BR112014032182A2 (pt) * 2012-07-02 2017-06-27 Panasonic Ip Corp America método de decodificação de imagem, método de codificação de imagem, aparelho de decodificação de imagem, aparelho de codificação de imagem, e aparelho de codificação e decodificação de imagem
US9344717B2 (en) * 2012-08-06 2016-05-17 Mediatek Inc. Method and apparatus for sample adaptive offset in a video decoder
CN103634603B (zh) * 2012-08-29 2017-07-07 中兴通讯股份有限公司 视频编解码方法、装置及系统
US20140098851A1 (en) * 2012-10-04 2014-04-10 Qualcomm Incorporated Indication of video properties
US9445130B2 (en) * 2013-01-09 2016-09-13 Qualcomm Incorporated Blockiness metric for large HEVC block artifacts
GB2512827B (en) * 2013-04-05 2015-09-16 Canon Kk Method and device for classifying samples of an image
CN105556962B (zh) * 2013-10-14 2019-05-24 联发科技股份有限公司 发送用于视频系统的无损模式的信号的方法
US9628822B2 (en) * 2014-01-30 2017-04-18 Qualcomm Incorporated Low complexity sample adaptive offset encoding

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
None *
See also references of WO2015132209A1 *

Also Published As

Publication number Publication date
CN106068650B (zh) 2020-01-31
US20170078704A1 (en) 2017-03-16
WO2015132209A1 (fr) 2015-09-11
FR3018417B1 (fr) 2017-07-28
US10298959B2 (en) 2019-05-21
FR3018417A1 (fr) 2015-09-11
CN111510730A (zh) 2020-08-07
CN111510730B (zh) 2022-02-18
CN106068650A (zh) 2016-11-02

Similar Documents

Publication Publication Date Title
EP3114836A1 (fr) Procédé de modification d'un flux vidéo binaire
JP7827922B2 (ja) 特徴データ符号化および復号方法および装置
EP2981088B1 (fr) Support d'enregistrement mémorisant un flux de données d'images codées
EP2777269B1 (fr) Procédé de codage et décodage d'images, dispositif de codage et décodage et programmes d'ordinateur correspondants
US20130003838A1 (en) Lossless Coding and Associated Signaling Methods for Compound Video
FR2939593A1 (fr) Procede et dispositif de codage video
JP7397878B2 (ja) イントラ・サブ・パーティション・コーディング・モードのための方法及び装置
KR20210087088A (ko) Cbf 플래그들의 효율적인 시그널링의 방법
EP2868088A1 (fr) Procédé de codage d'un bloc courant d'une première composante d'image par rapport a un bloc de référence d'au moins une deuxième composante d'image, dispositif de codage et programme d'ordinateur correspondant
FR3008840A1 (fr) Procede et dispositif de decodage d'un train scalable representatif d'une sequence d'images et procede et dispositif de codage correspondants
EP3649778B1 (fr) Procédé de codage et décodage d'images, dispositif de codage et décodage et programmes d'ordinateur correspondants
WO2024042286A1 (fr) Lissage hors boucle de codage d'une frontière entre deux zones d'image
EP3972246A1 (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
FR3067199A1 (fr) Procede de transmission d'une video immersive
EP3529987B1 (fr) Procédé de codage et de décodage de paramètres d'image, dispositif de codage et de décodage de paramètres d'image et programmes d'ordinateur correspondants
EP3928518B1 (fr) Procédé permettant de dissimuler des données dans une image ou un flux vidéo à l'intérieur d'une chaîne de compression
WO2018167419A1 (fr) Procédé de codage et décodage d'images, dispositif de codage et décodage et programmes d'ordinateur correspondants
KR20160102075A (ko) 블록킹 아티팩트의 가시성을 감소시키기 위한 비디오 신호 처리 방법 및 장치
KR102830406B1 (ko) 영상의 ai 복호화를 위한 장치, 및 방법
FR3068558A1 (fr) Procede de codage et decodage d'images,dispositif de codage et decodage et programmes d'ordinateur correspondants
Trocan Décompositions spatio-temporelles et allocation de débit utilisant les coupures des graphes pour le codage vidéo scalable
FR2927494A1 (fr) Procede de decodage et codage d'une sequence d'images avec compensation de mouvement

Legal Events

Date Code Title Description
STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE INTERNATIONAL PUBLICATION HAS BEEN MADE

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

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

Free format text: STATUS: REQUEST FOR EXAMINATION WAS MADE

17P Request for examination filed

Effective date: 20160928

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

AX Request for extension of the european patent

Extension state: BA ME

DAV Request for validation of the european patent (deleted)
DAX Request for extension of the european patent (deleted)
STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: EXAMINATION IS IN PROGRESS

17Q First examination report despatched

Effective date: 20200210

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

Owner name: SAGEMCOM BROADBAND SAS

REG Reference to a national code

Ref country code: DE

Ref legal event code: R003

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

Free format text: STATUS: THE APPLICATION HAS BEEN REFUSED

18R Application refused

Effective date: 20240604