EP3114836A1 - Method for modifying a binary video stream - Google Patents

Method for modifying a binary video stream

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.)
Pending
Application number
EP15707152.3A
Other languages
German (de)
French (fr)
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/en
Pending 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

The present invention relates to a method for modifying a binary video stream encoded according to a video coding algorithm comprising a prediction loop and a loop post-filtering integrated into the prediction loop. The method comprises the following steps performed by a device: searching for a syntax element relating to the loop post-filtering in the binary video stream, the syntax element being used by a decoding device to control a complexity of implementation of the loop post-filtering; and modifying (321, 323, 325) a value of the syntax element or deleting (321,323, 325) the syntax element.

Description

Procédé de modification d'un flux vidéo binaire.  A method of modifying a binary video stream
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é. The present invention relates to a method and a device for regulating the decoding complexity of a previously compressed video stream.
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).  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).
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 However, this performance improvement, mainly due to improvements in existing compression tools and integrations of new compression tools, has resulted in increased complexity, and hence memory and resource requirements. treatment of these
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. compression methods. These methods have indeed a very important computational cost and requires the storage of a lot of data. To be able to implement these methods, it is necessary to provide encoding and decoding devices having computational capabilities and adequate memory capacities.
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.  However, in general, for a question of the cost price of the encoding and decoding devices, 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.
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.  On the other hand, it is important to provide video application users with new and innovative advanced features to sustain their interest in these applications. Indeed, while in the past these users were content with simple features of video display, these users may now wish more interactive display features allowing for example an accelerated viewing of a video ("trick mode" in terminology Anglo-Saxon), an embedding of a video in another video according to an image-in-picture mode ("Picture in Picture") or a viewing of a plurality of videos in parallel, for example in a video mosaic. These new display features lead to an increase in computing requirements and memory requirements for video applications. For example, the accelerated viewing of a video may require decoding a video at an image rate ("frame rate" in English terminology) exceeding an image rate corresponding to a real-time display of the video. Embedding a video in another video requires two decodings in parallel when the videos are received as two separate video streams. Similarly, displaying a mosaic of videos may require performing a plurality of video decodings in parallel.
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.  Many decoding devices do not provide access to these advanced display features due to the inadequate sizing of their computational capabilities and memory capabilities. It would therefore be interesting to propose solutions making it possible to access these services without requiring the replacement of the decoding devices.
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. 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.
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.  For this purpose, according to a first aspect of the present invention, 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.
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.  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.
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).  According to one embodiment, the loop post filtering comprises an unlocking filtering and / or a SAO filtering ("Sample Adaptive Offset" in English terminology).
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.  By making it possible to control several post-filtering loop methods, the method makes it possible to finely adjust the reduction of the decoding complexity.
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é.  According to one embodiment, 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.
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. In this way, the complexity of implementation of the unlocking filtering is reduced, while allowing minimal attenuation of discontinuities between blocks. According to one embodiment, when the value of the syntax element has been modified and the syntax element is relative to the deblocking filtering or relating to the SAO filtering, 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.
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.  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.
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.  According to one embodiment, when the syntax element is deleted and the syntax element is relative to the unblocking filtering or relating to the SAO filtering, 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.
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.  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.
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.  According to one embodiment, 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.
De cette manière, le procédé est adaptatif.  In this way, the process is adaptive.
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.  According to one embodiment, 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.
De cette manière, la réduction de complexité de décodage est adaptée aux besoins de l'utilisateur.  In this way, the reduction of decoding complexity is adapted to the needs of the user.
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. According to one embodiment, 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. In this way, 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.
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.  According to one embodiment, 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.
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.  The implementation of the method before the transmission of the binary video stream on the network makes it possible not to transmit on the network unnecessary syntax elements.
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.  According to one embodiment, said video coding algorithm is based on the H.264 / AVC standard or on the HEVC standard.
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.  The process is therefore adapted to two widely used compression standards. In particular, 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.
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.  According to a second aspect of the present invention, 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.
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. The modification device has the same advantages as those mentioned in the first aspect. According to a third aspect of the present invention, 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.
Le système de communication possède les mêmes avantages que ceux mentionnés envers le premier aspect.  The communication system has the same advantages as those mentioned in the first 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.  According to a fourth aspect of the present invention, 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.
Le produit programme d'ordinateur possède les mêmes avantages que ceux mentionnés envers le premier aspect.  The computer program product has the same advantages as those mentioned in the first 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.  According to a fifth aspect of the present invention, 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.
Les moyens de stockage possèdent les mêmes avantages que ceux mentionnés envers le premier aspect.  The storage means have the same advantages as those mentioned in the first 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:  The characteristics of the invention mentioned above, as well as others, will appear more clearly on reading the following description of an exemplary embodiment, said description being given in relation to the attached drawings, among which:
La Fig. 1A représente schématiquement un premier système de transmission de vidéos comprenant un dispositif mettant en œuvre l'invention,  Fig. 1A schematically represents a first video transmission system comprising a device embodying the 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, 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,
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,  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,
La Fig. 4 illustre schématiquement les partitionnements successifs subis par une image vidéo lors d'un encodage HEVC,  Fig. 4 schematically illustrates the successive partitions that a video image undergoes during a HEVC encoding,
La Fig. 5 représente schématiquement une méthode d'encodage d'un flux vidéo compatible avec le standard HEVC,  Fig. 5 schematically represents a method of encoding a video stream compatible with the HEVC standard,
La Fig. 6 représente schématiquement une méthode de décodage selon le standard HEVC,  Fig. 6 schematically represents a method of decoding according to the HEVC standard,
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, 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,
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 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
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.  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.
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.  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.
Les Figs. 4, 5 et 6 décrivent un exemple de mise en œuvre du standard HEVC. Figs. 4, 5 and 6 describe an exemplary implementation of the HEVC standard.
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. 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. We consider here that a pixel is composed of three components: a luminance component and two chrominance components. In the example of FIG. 4, 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. In the standard H.264 / AVC, only the concept of slice exists, a slice necessarily comprising a complete header and can not be divided.
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.  It can be noted that each slice of an image is decodable independently of any other slice of the same image. However, implementing a loop filtering post in one slice may require the use of data from another slice.
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. After partitioning the image 402 in slices, the pixels of each slice of an image are partitioned into coded tree block (CTB) blocks, such as a set blocks 404 of FIG. 4. For the sake of simplicity, we will use the acronym CTB to designate a code 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.
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.  During the encoding of an image, the partitioning is adaptive, ie 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.
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.  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. For simplicity, in the following description of FIG. And in the description of FIG. 6, 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. 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.
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.  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.
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. 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. When coding a current block according to the INTER coding mode, the block of the closest reference image, according to a similarity criterion, of the current block is determined by a motion estimation step 504. When 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. We can notice that we have described here an 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.
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.  During a selection step 506, 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. When the coding mode is selected, the residual block is transformed during a step 507 and quantized during a step 509. When the current block is coded according to the INTRA coding mode, the prediction direction and the transformed residual block and quantized are encoded by an entropy encoder during a step 510. When the current block is encoded according to the INTER encoding mode, 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.
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. After quantization at step 509, 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. Depending on the coding mode used for the block obtained during a step 514, 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. If the current block is encoded according to an INTRA coding mode, in a step 515, 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. Following the reconstruction, 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.
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. 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. During the step 510 entropic encoding, 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.
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.  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. In 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.
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.  The decision to implement the SAO filtering, and when the SAO filtering is implemented, the form of the SAO filtering, and the enhancement values are determined for each CTB by the encoder device by rate / distortion optimization. In entropy encoding step 510, 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.
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.  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.
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. When all the blocks of a slice are coded, the bit video stream corresponding to the slice is inserted into a container called Network Abstraction Layer Unit (NALU) in Anglo-Saxon terminology. In case of network transmission, these containers are inserted in packets networks either directly or in intermediate transport stream containers ("transport stream" in English terminology), such as MP4 transport streams.
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 A container containing a slice is called the Video Coding Layer (VCL) container in the English terminologist. 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
PPS. Chaque conteneur PPS comprend un identifiant permettant de le reconnaître.PPS. Each PPS container includes an identifier to recognize it.
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. 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.
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.  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.
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.  If the block has been encoded according to the INTER coding mode, the entropy decoding makes it possible to obtain a prediction vector index, a motion residual, and a residual block. In a step 608, a motion vector is reconstructed for the current block using the prediction vector index and the motion residual.
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.  If the block has been encoded according to the INTRA coding mode, the entropy decoding makes it possible to obtain a prediction direction and a residual block. 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.
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. The decoding device then applies a loop filtering post during a step 617. As for the encoding, 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.
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 .  The deblocking filtering is implemented by the decoding device during a step 618. During decoding, 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.
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.  The SAO filter is implemented by the decoding device during a step 619. During decoding, 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. If, for a CTB, the SAO filtering is of the band enhancement form, for each pixel of the CTB, 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.
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.  As we saw above, the 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.
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. In order to reduce the decoding complexity of a binary video stream, the invention controls the implementation of the post loop filtering by changes in the video bit stream as a function of display functionalities requested by a user. The changes in the binary video stream occur before the decoding of the binary video stream. The invention thus makes it possible to reduce the computational cost of the decoding, which frees computing capacities at the level of the decoding devices and thus makes it possible in particular to implement advanced display functionalities. The invention will now be presented as part of a video transmission on a communication network. 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). Following the transmission, the multiplexed bitstream is received by 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. According to the user-requested display functionality, 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.
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. 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.
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.  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.
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).  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").
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. 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. Three Boolean variables are then initialized: a variable DBF Jaible indicating, if said variable is true, that the deblocking filtering should favor the weak filter is initialized to false during a step 301; a DBF OFF variable indicating, if true, that the unlocking filtering must be disabled is initialized to false during a step 302; a SAO OFF variable indicating, if true, that the SAO filtering must be disabled is initialized to false during a step 303. The modifying device 113 then 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 then 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.
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.  In one embodiment, 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.
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.  During a step 304, 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.
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.  Otherwise, in a step 307, 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.
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. Otherwise, during a step 310, 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.
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.  Otherwise, during a step 313, 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.
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.  Otherwise, in a step 316, 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.
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é.  If during step 310, no display functionality is requested or the requested display functionality is not recognized, the modification device 113 does not change the variables DBF Jaible, DBF OFF and SAO OFF. In this case, 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.
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. 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.
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.  During a 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.
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.  During a 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.
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.  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.
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. 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). In a particular embodiment, during step 300, 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. In this embodiment, 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.
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.  Moreover, in the algorithm described with reference to FIG. 3, changes to the binary video stream depend on display features desired by a user. In another alternative embodiment, the modifications to be made to the binary video stream depend on decoding tools implemented by the decoding device 114. For example, 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. In addition, 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.
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. In addition, 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. In another embodiment, this algorithm could make it possible to ensure the compatibility of a binary video stream with the memory capabilities of a video decoding device. In this embodiment, 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. In case of combination, 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.
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 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". Setting the value of the syntax element pps_beta_offset_div2 to the value "-6" increases the chances of using the four-coefficient deblocking filter during decoding. In an alternative embodiment, 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. After the implementation of step 703, or in the case of a negative response in step 701 or 702, 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. If this is the case, 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. In this implementation, 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. In an alternative embodiment, 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
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.  After the implementation of step 706, or in the case of a negative response in step 704 or 705, the modifying device 113 waits for the reception of a new container. Receiving a new container causes the return to step 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. 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. If the container is a PPS container, 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. When the syntax element DeblockingJilter_control _present Jlag is found, 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. The 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.
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.  During a step 808, 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.
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. 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.
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.  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.
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.  If in 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.
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.  If the container is a VCL container, the modifier 113 applies a second portion 822 of the algorithm, as shown in FIG. 8. By applying this second part 822 of the algorithm, 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. In a step 813, 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.
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.  If the syntax element DeblockingJlter_override Jlag is present, 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.
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. 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.
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.  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.
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.  After the implementation of step 819 (or step 820 if the syntax element slice_tc_offset_div_2 is present), the modifying device 113 waits for the reception of a new container. Receiving a new container causes the return to step 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.  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. If the container is an SPS container, 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.
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. If the container is not an SPS container, 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.
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.  In 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.
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 ».  In another implementation of steps 906 and 908, the syntax elements Slice _sao Juma Jlag and Slice _sao_chroma Jlag are set to the value "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. The sequence of the algorithm makes it possible to browse all the CTBs contained in the slice corresponding to the VCL container. It is indeed necessary to check for each CTB, if the CTB contains syntax elements relating to the SAO filtering and if necessary, to remove these syntax elements. In step 909, a variable n used to traverse all the CTBs of the slot is initialized to the value "0". In a step 910, 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. If the CTB contains no syntax element relating to the SAO filtering, 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.
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.  Until then, we considered that the same display functionality was applied throughout a video stream. In another embodiment, the display functionality may be changed at any time during the display of a video stream. In this case, 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.
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.  In addition, we have described the modification device 113 transforming containers corresponding to a single binary video stream. In another embodiment, 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. In this embodiment, the decoding device 114 is able to decode binary video streams encoded according to the HEVC and H.264 / AVC standards.
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. Finally, in FIG. 1A, the modifying device 113 is placed between the receiving device 112 and the decoding device 114. In an alternative implementation illustrated in FIG. 1B, 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.

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 : 1) A method 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, characterized in that a device (113) performs the following steps :
rechercher (702, 705, 802, 806, 807, 808, 810, 813, 815, 817, 819, 903, 905, search (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 907, 911) a syntax element relating to the post loop filtering in the binary video stream, the syntax element being used by a decoding device (114) to control a complexity of implementing the post loop filtering; and
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.  modify (321, 323, 325, 703, 706, 806, 807, 903) a value of the syntax element in the binary video stream or delete (321, 323, 325, 809, 811, 814, 816, 818, 820, 906, 908, 912) the syntax element of the binary video stream so as to obtain a reduction in the complexity of implementation of the post-filtering loop by the decoding device. 2) Method according to claim 1, characterized in that the post filtering loop includes deblocking filtering and / or SAO filtering.
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. 3) Method according to claim 2, characterized in that the unlocking filtering reducing discontinuities between blocks of pixels and comprising a first filtering and a second filtering, the first filtering more attenuating the discontinuities between the blocks of pixels than the second filtering, the first filter having a higher complexity than the second filtering, when the value of the syntax element has been modified and the syntax element is relative to the unlocking filtering, said value is modified (703, 706 ) so as to favor use by the decoding device of the second filtering with respect to the first filtering.
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. 4) Method according to claim 2, characterized in that, when the value of the syntax element has been modified and the syntax element is relative to the unblocking filtering or relating to the SAO filtering, the modification (803, 806 , 807, 903) of the value of the syntax element makes it possible to disable respectively the implementation of the unlocking filtering or the implementation of the SAO filtering by the decoding device. 5) Method according to claim 2, characterized in that, when the syntax element is deleted and the syntax element is relative to the unblocking filtering or relating to the SAO filtering, the deletion (809, 811, 814, 816 , 818, 820, 906, 908, 912) of the syntax element makes it possible to deactivate respectively the implementation of the unlocking filtering or the implementation of the SAO filtering by the decoding device.
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. 6) Method according to any one of the preceding claims, characterized in that the value of the modified syntax element and / or the deleted syntax element depend on information representative of a reduction of a decoding complexity. .
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. 7) Method according to claim 6, characterized in that the reduction of the decoding complexity depends on a display functionality desired by a user for displaying, on a display device (115), images corresponding to the binary video stream.
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 : 8) Method according to any one of the preceding claims, characterized in that the method further comprises the following steps:
- 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  - receiving the binary video stream of a receiving device (112), the binary video stream being received by the receiving device via a communication network (120); and
- transmettre au dispositif de décodage un flux vidéo binaire modifié résultant de la modification du flux vidéo binaire.  transmitting to the decoding device a modified binary video stream resulting from the modification of the binary video stream.
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 : 9) Method according to any one of claims 1 to 7, characterized in that the method further comprises the following steps:
- recevoir le flux vidéo binaire d'un dispositif d'encodage (110);  receiving the binary video stream of an encoding device (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  receiving information representative of a reduction in decoding complexity via a communication network (120); and
- 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. transmitting, to a transmission device (111), a modified binary video stream resulting from the modification, for transmission of the modified binary video stream on the communication network. 10) Method according to any one of claims 1 to 9, characterized in that said video coding algorithm is based on the standard H.264 / AVC or the 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: 11) Device for modifying (113) 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, characterized in that the device comprises:
des moyens pour rechercher (702, 705, 802, 806, 807, 808, 810, 813, 815, 817, search means (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. 819, 903, 905, 907, 911) in the binary video stream a syntax element relating to the post loop filtering, the syntax element being used by a decoding device (114) to control the implementation complexity of the post loop filtering; and means for modifying (321, 323, 325, 703, 706, 806, 807, 903) a value of the syntax element in the binary video stream and / or means for deleting (321, 323, 325, 809 , 811, 814, 816, 818, 820, 906, 908, 912) the syntax element of the binary video stream so as to obtain a reduction in the complexity of implementation of the post-loop filtering by the decoding device. 12) A system for communicating a binary video stream for display by a display device (115), the binary video stream having been encoded according to a video coding algorithm comprising a prediction loop and a post filtering of integrated loop in the prediction loop, the system comprising a decoding device (114) capable of decoding the binary video stream and capable of transmitting to the display device (115) images corresponding to a result of the decoding of the binary video stream, characterized in that the system comprises a device (113) for modifying a binary video stream according to claim 11, the modifying device being adapted to supply to the decoding device a modified binary video stream resulting from the modification by the device of modification of the binary video stream.
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. 13) Computer program product, characterized in that it comprises instructions for implementing, by a device, the method according to any one of claims 1 to 10, when said program is executed by a processor of said device. 14) Storage means, characterized in that they store a computer program comprising instructions for implementing, by a device, the method according to any one of claims 1 to 10, when said program is executed by a processor of said device.
EP15707152.3A 2014-03-04 2015-03-02 Method for modifying a binary video stream Pending EP3114836A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR1451723A FR3018417B1 (en) 2014-03-04 2014-03-04 METHOD FOR MODIFYING A BINARY VIDEO STREAM
PCT/EP2015/054323 WO2015132209A1 (en) 2014-03-04 2015-03-02 Method for modifying a binary video stream

Publications (1)

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

Family

ID=51260963

Family Applications (1)

Application Number Title Priority Date Filing Date
EP15707152.3A Pending EP3114836A1 (en) 2014-03-04 2015-03-02 Method for modifying a binary video stream

Country Status (5)

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

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018120230A1 (en) * 2016-12-30 2018-07-05 华为技术有限公司 Image filtering method, apparatus and device
CN109672893B (en) * 2018-11-30 2022-01-14 广州市百果园信息技术有限公司 Video decoding method, device, equipment and storage medium
US11381867B2 (en) * 2019-01-08 2022-07-05 Qualcomm Incorporated Multiple decoder interface for streamed media data
MX2022009555A (en) * 2020-02-04 2022-11-16 Huawei Tech Co Ltd An encoder, a decoder and corresponding methods about signaling high level syntax.
CN113242426B (en) * 2021-04-06 2024-02-13 中南大学 Video encoding and decoding method, device and storage medium
US11778211B2 (en) * 2021-09-16 2023-10-03 Apple Inc. Parallel video parsing for video decoder processing
WO2023111384A1 (en) * 2021-12-13 2023-06-22 Nokia Technologies Oy A method, an apparatus and a computer program product for video encoding and video decoding

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 (en) * 2006-05-23 2009-07-15 中国科学院声学研究所 Method for reducing video decoding complexity via decoding quality
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 (en) * 2010-08-20 2012-03-01 Toshiba Corp Moving image coding device and moving image coding method
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
SG11201404509QA (en) * 2012-02-01 2014-08-28 Nokia Corp Method and apparatus for video coding
TWI524739B (en) * 2012-02-10 2016-03-01 美國博通公司 Sample adaptive offset (sao) in accordance with video coding
WO2013144144A1 (en) * 2012-03-30 2013-10-03 Panasonic Corporation Syntax and semantics for adaptive loop filter and sample adaptive offset
US9386307B2 (en) * 2012-06-14 2016-07-05 Qualcomm Incorporated Grouping of bypass-coded bins for SAO syntax elements
BR112014032182A2 (en) * 2012-07-02 2017-06-27 Panasonic Ip Corp America image decoding method, image encoding method, image decoding apparatus, image encoding apparatus, and image encoding and decoding apparatus
US9344717B2 (en) * 2012-08-06 2016-05-17 Mediatek Inc. Method and apparatus for sample adaptive offset in a video decoder
CN103634603B (en) * 2012-08-29 2017-07-07 中兴通讯股份有限公司 Video coding-decoding method, apparatus and system
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
US10116933B2 (en) * 2013-10-14 2018-10-30 Mediatek Inc. Method of lossless mode signaling for video system with lossless and lossy coding
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
CN106068650A (en) 2016-11-02
CN111510730B (en) 2022-02-18
CN111510730A (en) 2020-08-07
FR3018417A1 (en) 2015-09-11
CN106068650B (en) 2020-01-31
US20170078704A1 (en) 2017-03-16
FR3018417B1 (en) 2017-07-28
WO2015132209A1 (en) 2015-09-11
US10298959B2 (en) 2019-05-21

Similar Documents

Publication Publication Date Title
WO2015132209A1 (en) Method for modifying a binary video stream
RU2653236C2 (en) Image encoding method, image decoding method, image encoding device, image decoding device and image encoding and decoding device
EP2981088B1 (en) Recording medium storing coded image data
EP2777269B1 (en) Method for encoding and decoding images, encoding and decoding device, and corresponding computer programs
US20130003838A1 (en) Lossless Coding and Associated Signaling Methods for Compound Video
FR2939593A1 (en) VIDEO ENCODING METHOD AND DEVICE
EP2052545B1 (en) Device and method of scalable coding and decoding of flow of image data, respective signal and computer program
WO2014001703A1 (en) Method for encoding a current block of a first image component relative to a reference block of at least one second image component, encoding device and corresponding computer program
KR20210087088A (en) Method of efficient signaling of CBF flags
JP7397878B2 (en) Method and apparatus for intra-subpartition coding mode
FR3008840A1 (en) METHOD AND DEVICE FOR DECODING A SCALABLE TRAIN REPRESENTATIVE OF AN IMAGE SEQUENCE AND CORRESPONDING ENCODING METHOD AND DEVICE
EP3649778B1 (en) Method for encoding and decoding images, encoding and decoding device, and corresponding computer programs
EP3972246A1 (en) Method for encoding and decoding of images, corresponding device for encoding and decoding of images and computer programs
FR3067199A1 (en) METHOD FOR TRANSMITTING AN IMMERSIVE VIDEO
WO2020169781A1 (en) Method for concealing data in an image or a video stream inside a compression chain
KR20160102075A (en) Method and apparatus for processing video signal for reducing visibility of blocking artifacts
RU2800596C1 (en) Slice and tile configuration for image/video encoding
FR3139260A1 (en) Smoothing outside the coding loop of a boundary between two image areas
Trocan Décompositions spatio-temporelles et allocation de débit utilisant les coupures des graphes pour le codage vidéo scalable
WO2018167419A1 (en) Method for encoding and decoding images, encoding and decoding device, and corresponding computer programs
FR2911233A1 (en) Data flow decoding method for e.g. video on demand service, involves determining capacity to decode each data packets using information representative of scalability class and without reading slice header of data packets
FR2927494A1 (en) Image sequence e.g. compressed video sequence, decoding method for e.g. electronic device, involves determining reference macro block to be deleted based on defined probability criteria, and deleting reference macro block from memory

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

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

Free format text: STATUS: EXAMINATION IS IN PROGRESS

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

Free format text: STATUS: EXAMINATION IS IN PROGRESS

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

Owner name: SAGEMCOM BROADBAND SAS