GB2474457A - Adaptive filtering of video data based upon rate distortion cost - Google Patents

Adaptive filtering of video data based upon rate distortion cost Download PDF

Info

Publication number
GB2474457A
GB2474457A GB0917987A GB0917987A GB2474457A GB 2474457 A GB2474457 A GB 2474457A GB 0917987 A GB0917987 A GB 0917987A GB 0917987 A GB0917987 A GB 0917987A GB 2474457 A GB2474457 A GB 2474457A
Authority
GB
United Kingdom
Prior art keywords
filter
filters
rate
digital signal
predetermined
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.)
Granted
Application number
GB0917987A
Other versions
GB2474457B (en
GB0917987D0 (en
Inventor
Folix Henry
Christophe Gisquet
Isabelle Corouge
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to GB0917987.0A priority Critical patent/GB2474457B/en
Publication of GB0917987D0 publication Critical patent/GB0917987D0/en
Priority to GB1010085.7A priority patent/GB2474535B/en
Publication of GB2474457A publication Critical patent/GB2474457A/en
Application granted granted Critical
Publication of GB2474457B publication Critical patent/GB2474457B/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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/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/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/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • 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/146Data rate or code amount at the encoder output
    • H04N19/147Data rate or code amount at the encoder output according to rate distortion 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/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/192Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding the adaptation method, adaptation tool or adaptation type being iterative or recursive
    • 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/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/196Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • H04N19/463Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/59Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial sub-sampling or interpolation, e.g. alteration of picture size or resolution
    • 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

Abstract

A method for encoding digital video signals comprises a step of filtering samples of a digital video signal, wherein the filtering step comprises selecting a filter from a set of predetermined filters (Fi) according to a rate distortion cost calculated for the filter. The set of predetermined filters includes an identity filter (Fid) which, for an input sample value, outputs the same sample value. The method further comprises a step of assigning (E630, E640) a first rate to the identity filter and at least one second rate, different from the first rate, to the other filters of the set of predetermined filters. Also disclosed is an associated device for encoding a digital video signal. The method and device allow the option of not filtering the video signal when no appreciable benefit will result. Also disclosed are a method and associated device for decoding a digital video signal, in which filtering is only performed if information obtained concerning a filter is representative of a filter other than the identity filter Fid.

Description

A METHOD AND DEVICE FOR ENCODING AND DECODING A DIGITAL
SIGNAL
The invention relates to a method and device for encoding and decoding a digital signal, in particular a digital video signal.
The invention belongs to the field of digital signal processing. A digital signal, such as for example a digital video signal, is generally captured by a capturing device, such as a digital camcorder, having a high quality sensor. Given the capacities of the modern capture devices, an original digital signal is likely to have a very high resolution, and, consequently, a very high bitrate. Such a high resolution, high bitrate signal is too large for convenient transmission over a network and/or convenient storage.
In order to solve this problem, it is known in the prior art to compress the original video signal into a compressed bitstream.
The document EP1911293 discloses a method of filtering a multidimensional signal using oriented filters, which finds a particularly advantageous application for the compression of the multidimensional filter. For each filter, a filter orientation is chosen from a plurality of possible orientations.
The method proposed in EP1 911293 takes into account local variations of the multidimensional signal so as to increase the filtering performance. The orientations, determined for each sample of the rriultidimensional signal to be filtered according to an optimization criterion, need to be transmitted along with the coded signal in order for this signal to be decoded. However, in some areas of the signal, the oriented filtering does not bring a substantial gain, whereas the information on the chosen filters, in particular their orientations, brings some bitrate overhead. It is therefore desirable to automatically take into account the possibility of not filtering in order to improve the overall compression.
It is desirable to address one or more of the prior art drawbacks.
To that end, the invention relates to a method for encoding a digital signal comprising a step of filtering at least some samples of said digital signal, wherein the filtering step comprises a selecting step which selects a filter to apply to a digital sample of the digital signal among a set of predetermined filters according to a predetermined criterion, said criterion taking into account a rate assigned to each filter of the set of predeterniined filters. The rriethod is characterized in that the set of predetermined filters comprises an identity filter which, for an input sample value, outputs the same sample value. The method comprises a step of assigning a first rate to the identity filter and at least one second rate, different from the first rate, to the other filters of the set of predetermined filters.
The method of the invention provides a particularly efficient way of assigning rates to a set of selectable filters, while efficiently taking into account the local characteristics of a digital signal. Indeed, including the identity filter allows taking into account flat areas of a digital image for example. The use of different rates for the identity filter and the other filters is particularly well adapted for an efficient compression of natural signals (as opposed to artificial or synthetic signals) such as digital images or videos.
According to a particular embodiment, the set of predetermined filters comprises a set of oriented filters. Advantageously, the oriented filters allow a better filtering of the edges of a natural digital image signal, because it has been observed that such edges can occur in a variety of possible orientations in such images. In an encoding scheme, a better distortion rate compromise can be obtained on the edges when using oriented filters.
According to a preferred embodiment, all the oriented filters of the set of predetermined filters are assigned the same second rate. In this case, the rate assigning to the set of selectable filters is particularly simple.
According to a preferred embodiment, the filters of the set of predetermined filters other than the identity filter have a support of fixed size.
Advantageously, the oriented filters can be constructed from a given filter which is further oriented along several directions. The oriented filters are therefore very easy to build.
According to a preferred embodiment, the first rate is lower than the second rate. This characteristic advantageously allows to enforce the constraint of applying oriented filtering only when it is significantly beneficial, for example for edge regions or highly textured regions. It also corresponds to the statistics of natural image/video signals, which contain more flat areas than edges, requiring a more frequent usage of the identity filter.
According to a particular embodiment, the method further comprises dividing samples of the digital signal into at least two subsets of samples to be processed, the subsets corresponding respectively to different spatial grids that are arranged so that at least some samples of one said subset are interleaved spatially with at least some samples of another said subset. In the assigning step, a first rate and at least one second rate are assigned for each subset of samples to be processed. Advantageously, the local statistics of the subsets of samples to be processed are therefore taken into account, so as to have more accurate first and second rates.
According to a particular feature, the dividing step is followed by a step of determining an optimal context function amongst a plurality of context functions for the subset of samples to be processed, and a subset of filters associated to said optimal context function, wherein a context function is a function that, for a given sample, takes into account a predetermined number of other samples and outputs a context value amongst a predetermined number of context values. In the assigning step, a first rate and at least one second rate are assigned for each context function of the plurality of context functions.
Therefore, the first and second rates are assigned even more accurately, further taking into account the context functions. This results in a further improvement of the encoding efficiency.
According to a preferred embodiment, the predetermined criterion is a rate distortion cost. This criterion is particularly well adapted for digital signal compression.
According to a second aspect, the invention related to a device for encoding a digital signal, comprising means for filtering at least some samples of said digital signal, wherein the filtering means comprise selecting means which select a filter to apply to a digital sample of the digital signal among a set of predetermined filters according to a predetermined criterion, said criterion taking into account a rate assigned to each filter of the set of predetermined filters, characterized in that the set of predetermined filters comprises an identity filter which, for an input sample value, outputs the same sample value. The device comprises means for assigning a first rate to the identity filter and at least one second rate, different from the first rate, to the filters of the set of predeterrriined filters.
According to a third aspect, the invention also relates to an information storage means that can be read by a computer or a microprocessor, this storage means being removable, and storing instructions of a computer program for the implementation of the method for encoding a digital signal as briefly described above.
According to a fourth aspect, the invention also relates to a computer program product that can be loaded into a programmable apparatus, comprising sequences of instructions for implementing a method for encoding a digital signal and a method for decoding a digital signal as briefly described above, when the program is loaded into and executed by the programmable apparatus.
The particular characteristics and advantages of the device for encoding a digital signal, of the storage means and of the computer program product being similar to those of the digital signal encoding method, they are not repeated here.
According to a fifth aspect, the invention relates to a method for decoding an encoded digital signal comprising a step of filtering at least some samples of said digital signal, the filtering step applying, to a digital sample of the digital signal, a filter selected according to a predetermined criterion among a set of predetermined filters, wherein the set of predetermined filters comprises an identity filter which, for an input sample value, outputs the same sample value, The decoding method comprises the following steps, for a sample of the digital signal -obtaining an item of information representative of a filter of the set of predetermined filters to be applied for decoding said sample; -filtering said sample of the digital signal only if the item of information obtained is representative of a filter of the set of predetermined filters other than the identity filter.
Similarly to the encoding method, the decoding method efficiently takes into account the local characteristics of a digital signal. Indeed, the particular use of the identity filter makes it easy to deal with flat areas of a digital image for example at a very low computational cost. Therefore, the invention helps saving calculation resources and therefore the speed of processing is increased.
According to a sixth aspect, the invention relates to a device for decoding an encoded digital signal comprising means for filtering at least some samples of said digital signal, the filtering means applying, to a digital sample of the digital signal, a filter selected according to a predetermined criterion among a set of predetermined filters, wherein the set of predetermined filters comprises an identity filter which, for an input sample value, outputs the same sample value, The decoding device comprises, for a sample of the digital signal -means for obtaining an item of information representative of a filter of the set of predetermined filters to be applied for decoding said sample; -means for filtering said sample of the digital signal only if the item of information obtained is representative of a filter of the set of predetermined filters other than the identity filter.
According to a seventh aspect, the invention also relates to an information storage means that can be read by a computer or a microprocessor, this storage means being removable, and storing instructions of a computer program for the implementation of the method for decoding a digital signal as briefly described above.
According to an eighth aspect, the invention also relates to a computer program product that can be loaded into a programmable apparatus, comprising sequences of instructions for implementing a method for decoding a digital signal as briefly described above, when the program is loaded into and executed by the programmable apparatus.
The advantages of the decoding device and of the computer program are similar to those of the decoding method mentioned above.
Other features and advantages will appear in the following description, which is given solely by way of non-limiting example and made with reference to the accompanying drawings, in which: -Figure 1 is a diagram of a processing device adapted to implement the present invention; -Figure 2 illustrates a system for processing a digital signal in which the invention is implemented; -Figure 3 illustrates the main steps of an encoding method according to an embodiment of the invention; -Figure 4 illustrates a block division in the case of a digital video signal; -Figures 5A, 5B and 5C show examples of grid divisions; -Figure 6A illustrates the main steps of a method for assigning rates to a set of filters according to an embodiment of the method for encoding a digital signal; -Figure 6B illustrates the main steps of a method for determining an optimal context function and an associated filter table according to an embodiment of the invention; -Figure 7 illustrates an example of context function support; -Figure 8 illustrates the division of a set of samples into sub-signals according to a context function values; -Figure 9 illustrates an example of filtering according to eight predefined geometric orientations; -Figure 10 illustrates the contents of the side information signal built for a set of blocks according to an embodiment, and -Figure 11 illustrates the main steps of a method for decoding/upsampling a signal encoded according to the embodiment of figure 3.
Figure 1 illustrates a diagram of a processing device 1000 adapted to implement the present invention. The apparatus 1000 is for example a micro-computer, a workstation or a light portable device.
The apparatus 1000 comprises a communication bus 111 3 to which there are preferably connected: -a central processing unit 1111, such as a microprocessor, denoted CPU; -a read only memory 1107 able to contain computer programs for implementing the invention, denoted ROM; -a random access memory 1112, denoted RAM, able to contain the executable code of the method of the invention as well as the registers adapted to record variables and parameters necessary for implementing the method of encoding a digital signal; and -a communication interface 1102 connected to a communication network 1103 over which digital data to be processed are transmitted.
Optionally, the apparatus 1000 may also have the following components: -a data storage means 1104 such as a hard disk, able to contain the programs implementing the invention and data used or produced during the implementation of the invention; -a disk drive 1105 for a disk 1106, the disk drive being adapted to read data from the disk 1106 or to write data onto said disk; -a screen 1109 for displaying data and/or serving as a graphical interface with the user, by means of a keyboard 1110 or any other pointing means.
The apparatus 1000 can be connected to various peripherals, such as for example a digital camera 1100 or a microphone 1108, each being connected to an input/output card (not shown) so as to supply multimedia data to the apparatus 1000.
The communication bus affords communication and interoperability between the various elements included in the apparatus 1000 or connected to it.
The representation of the bus is not limiting and in particular the central processing unit is able to communicate instructions to any element of the apparatus 1000 directly or by means of another element of the apparatus 1000.
The disk 1106 can be replaced by any information medium such as for example a compact disk (CD-ROM), rewritable or not, a ZIP disk or a memory card and, in general terms, by an information storage means that can be read by a microcomputer or by a microprocessor, integrated or not into the apparatus, possibly removable and adapted to store one or more programs whose execution enables the method according to the invention to be implemented.
The executable code may be stored either in read only memory 1107, on the hard disk 1104 or on a removable digital medium such as for example a disk 1106 as described previously. According to a variant, the executable code of the programs can be received by means of the communication network, via the interface 1102, in order to be stored in one of the storage means of the apparatus 1000 before being executed, such as the hard disk 1104.
The central processing unit 1111 is adapted to control and direct the execution of the instructions or portions of software code of the program or programs according to the invention, instructions that are stored in one of the aforementioned storage means. On powering up, the program or programs that are stored in a non-volatile memory, for example on the hard disk 1104 or in the read only memory 1107, are transferred into the random access memory 1112, which then contains the executable code of the program or programs, as well as registers for storing the variables and parameters necessary for implementing the invention.
In this embodiment, the apparatus is a programmable apparatus which uses software to implement the invention. However, alternatively, the present invention may be implemented in hardware (Application Specific Integrated Circuit or ASIC).
Figure 2 illustrates a system for processing digital image signals (e.g. digital images or videos), comprising a coding device 2, a transmission or storage unit 4 and a decoding device 6.
Both the coding device and the decoding device are processing devices 1000 as described with respect to figure 1.
This figure illustrates a system which implements the invention in a particular application, namely the encoding of an original digital signal in the form of a degraded (e.g. compressed) signal and a side information signal containing information on filters to be applied in the decoder to obtain a reconstructed signal visually close to the original signal.
However, the method of encoding a digital signal according to the invention may be applied in various applications, such as encoding using oriented filters as proposed in EPI 911 293.In the embodiment of figure 2, an original digital signal 5, having a high initial spatial resolution, is input at the encoder. In practice, such a high resolution signal is too large for convenient transmission over a network or even for local storage. For example, the original digital image signal may be a video comprising a number of frames of 1920x1 080 pixels (width and height), commonly referred to as 1080p format. The samples of a digital image/video signal are commonly known as pixels.
In the system illustrated in figure 2, the original signal S is downsampled to a signal Sd by a downsampling unit 200. The downsampling unit may implement any appropriate downsampling method such as for example the conventional Lanczos filtering. For example, the video signal in 1080p format could be downsampled to the resolution 1 280x720 pixels, commonly referred to as 720p format.
Optionally, in order to further enhance the compression, the signal Sd may be compressed by a compression unit 202 according to an adapted compression format (e.g. H264, SVC or MPEG-2 for video data). Next, the compressed signal s is decompressed by a decompression unit 204 to decompressed signal Sd'. In this way, the encoder reconstructs the data available at the decoder in the case a compression is applied to the digital signal to be transmitted and/or stored.
The downsampled signal Sd and, a fortiori, the downsampled and compressed signal s have a lower bitrate than the original digital signal S. The signal Sd' is then upsampled using an upsampling unit 206, to the initial spatial resolution of the original signal Si. The upsampling unit 206 preferably implements the same upsampling process as at the decoder side.
Preferably, the upsampling technique is matched to the one used during the downsampling stage. For instance, if a Lanczos filter has been used for downsampling, a Lanczos filter will also be used for upsampling.
The upsampled signal S,, also referred to as source signal, and the original signal Si are then used in a side information construction unit 208. The side information is generated in such a way that when it is combined with S, it optimizes the visual quality of the resulting signal while maintaining a low bitrate.
The side information signal contains information on filters to be applied to the source signal S,, to obtain a reconstructed signal visually close to Si. The filters are selected according to an optimization criterion, e.g. a rate-distortion criterion.
The filters to apply and their respective rates are determined according to the invention.
Next, the side information signal is compressed by the side information compression unit 210.
Finally the downsampled and possibly compressed signal s, also referred to as the output encoded signal, is combined with the compressed side information signal by a multiplexing unit 212, to finally produce an encoded signal to be stored and br transmitted by transmission/storage unit 4.
In a typical application scenario, the encoded signal is transmitted to a client device through a telecommunications network 1103, using an appropriate network transmission protocol.
At the client side, the decoding device receives the encoded signal, which is first processed by the de-multiplexing unit 214, which separates the compressed digital signal received 5c and the compressed side information signal.
The compressed digital signal is decompressed by unit 216 to form a reconstructed signal Sd', which is next upsampled to the resolution of the initial signal Si by the upsampling unit 218 into the upsampled image signal S,,.
The compressed side information signal is transmitted to a side information decompression unit 220.
Finally, the upsampled reconstructed signal S, and the decompressed side information signal are processed together by the processing unit 222. The resulting image signal SR has the same resolution as the original digital image signal, and an improved visual quality as compared to upsampled reconstructed signal S. The flow diagram in figure 3 illustrates the main steps of an encoding method and side information signal construction,that are used during the encoding of a digital signal, in a particular embodiment where the signal is a digital video signal.
All the steps of the algorithm represented in figure 3 can be implemented in software and executed by the central processing unit 1111 of the device 1000.
The algorithm illustrated in figure 3 takes as inputs an original video signal Si having a given resolution, for example 1920x1080 pixels, and a corresponding source video signal S,, of the same resolution, obtained by downsampling, compression/decompression and upsampling as explained above with reference to figure 2.
The downsampling/upsampling factors in the vertical and horizontal direction are external parameters, for example provided by a user. For example, if the original video signal has a resolution of 1920x1080 pixels and the downsampled video signal to be transmitted/stored has a resolution of 1280x720 pixels, the downsampling factor is 1.5 in each direction.
In a block division step E300, the source signal S, is divided into blocks. In the preferred embodiment, each frame of the video is divided into square blocks of WxW pixels. In the example of figure 5, W=12.
Figure 4 illustrates an example of block division in the case of a video signal, as implemented in the preferred embodiment. The concept of square blocks is extended to a third dimension, which is the temporal dimension. A video signal is divided into three dimensional blocks (or cubes) of WxWxD pixels. In the example of figure 5, D=4. A set of 4 successive video frames Svt to Sv,t+3 are considered, each of them being divided into square blocks 40 of WxW pixels. The video is thus partitioned into cubes 42 which will be successively processed in a predefined order. In the subsequent description, the term block will be used to designate both two dimensional blocks in the case of a digital image signal processing and three dimensional blocks in the case of video signal processing.
Back to figure 3, step E300 is followed by step E301 where the first block of source signal S, is considered as a current block Bk to be processed.
At the following step E302, the values of the pixels constituting the block are stored in memory, for example in an appropriate register of the RAM 1112.
The memorized block is designated as MBk. Further, a rate-distortion cost Ccurrent associated with the block MBk is also stored in memory.
Typically, a rate-distortion cost is calculated as: Ccurrent=Rk+X Dk, where Rk designates the rate, Dk designates the distortion and X is a predetermined parameter, for example input by the user.
The distortion is evaluated between block MBk and a block OBk of the original digital signal Si, which is located at the same position as block Bk.
Initially, MBk is a block from the source digital signal S,, the rate Rk is equal to 1, since just one bit is necessary to encode a single iteration and the distortion Dk is equal to the square error between Bk and OBk.
Next, the current block Bk is divided into spatial grids in a grid division step E303. A grid is a subset of pixels of the block, at least part of the samples of a grid being interleaved with at least part of the samples of another grid. In the preferred embodiment, the grids are regularly spaced, the subsets of samples of a grid being regularly distributed along the horizontal and the vertical axis.
Alternatively, the grid might be placed in staggered rows.
Figure 5 shows several examples of grid division. The grids are arranged so that at least some samples of one subset corresponding to a grid are interleaved spatially with at least some samples of another said subset corresponding to another grid.
Figure 5A represents an image frame 50 which is divided into blocks of 12x12 pixels. Figures 5B and 5C show examples of grid divisions of a block Bk of figure 5A.
In the representation of figure 5B and 50, the pixels are labeled with the index of the grid they belong to. The 12x12 block Bk is divided into 9 spatial groups or grids. In both figures, the grids are composed of signal samples (pixels) which are separated by two samples in both horizontal and vertical directions. The grid index defines an order of subsequent processing of the signal samples.
Figure 5B shows a first example of grid division, in which the grids are labeled following the lexicographic order.
Figure 50 shows an alternative example of grid division, with the same number of grids per block.
In the preferred embodiment, the spacing between the samples of a grid is chosen based on the length of filters to be applied.
In the case of video signal processing, when a block Bk is actually extended also in the time dimension, the grids defined above are applied for each of the successive frames, so as to form a three dimensional grid within a cube.
At the following step E304 the first grid of the current block Bk is considered as current grid GI.
The current grid is processed at step E305 to determine an optimal context function and the associated filter table when applying a set of predetermined filters.
An implementation of step E305 is described in detail with respect to the flowcharts of figures 6A and 6B. All the steps of the algorithms represented in figures 6A and 6B can be implemented in software and executed by the central processing unit 1111 of the device 1000.
The aim of the processing is to select and designate, for each pixel of the current grid, a filter amongst a predetermined set of filters, so as to satisfy a first criterion which is, in this embodiment, minimizing a cost criterion when applying the selected filters to the digital samples belonging to the grid. In this embodiment, the cost criterion is a distortion-rate cost, the distortion being calculated between the filtered digital signal and the original signal Si.
The filters may be selected according to the local characteristics of the digital signal S being processed. Such local characteristics are captured using a set of predetermined context functions, which represent local variations in the neighbourhood of a sample when applied to the sample.
In the preferred embodiment, a set of context functions can be defined for a given sample x(i,j) situated on the ith line and the Jth column, as a function of the values of the neighbouring sample A, B, C, D which are respectively situated at spatial position (i-i,j), (j-1,i), (i, j+1) , (i-i-i,j), as illustrated in figure 7.
In order to have a relatively simple representation, all context functions used return a value amongst a predetermined set of values, called the context values.
For example, the following set of 16 context functions Co to 015 may be used: C0(x(i,j)) 0 if A«=B and A«=C 1 ifA«=BandA>C 2 if A>B and A«=C 3 ifA>B and A>C C1(x(i,j))= 0 if A«=B and A«=D 1 ifA«=BandA>D 2 ifA>B and A«=D 3 if A>B and A>D C2(x(i,j))= 0 if A«=B and B«=C 1 ifA«=BandB>C 2 if A>B and BC 3 ifA>B and B>C C3(x(i,j)) 0 if AB and BD 1 if AB and B>D 2 if A>B and B«=D 3 ifA>B and B>D C4(x(i,j))= 0 if A«=B and C«=D 1 ifA«=BandC>D 2 if A>B and C«=D 3 if A>B and C>D C5(x(i,j))= 0 if A«=C and A«=D 1 ifA«=CandA>D 2 if A>C and A«=D 3 if A>C and A>D C6(x(i,j))= 0 if AC and BC 1 ifACandB>C 2 if A>C and B«=C 3 if A>C and B>C C7(x(i,j))= 0 if A«=C and B«=D 1 ifA«=CandB>D 2 if A>C and B«=D 3ifA>CandB>D C8(x(i,j))= 0 if A«=C and C«=D 1 ifA«=CandC>D 2 if A>C and C«=D 3ifA>CandC>D C9(x(i,j))= 0 if A«=D and B«=C 1 ifADandB>C 2 if A>D and B«=C 3 if A>D and B>C C10(x(i,j))= 0 if A«=D and B«=D 1 if A«=D and B>D 2 if A>D and B«=D 3ifA>DandB>D C11(x(i,j))= 0 if A«=D and C«=D 1 ifA«=DandC>D 2 if A>D and C«=D 3ifA>DandC>D C12(x(i,j))= 0 if B«=C and B«=D 1 if B«=C and B>D 2 if B>C and BD 3 if B>C and B>D C13(x(i,j))= 0 if BC and C«=D 1 if BC and C>D 2 if B>C and C«=D 3 if B>C and C>D C1(x(i,j))= 0 if B«=D and C«=D 1 if B«=D and C>D 2 if B>D and C«=D 3 if B>D and C>D C15(x(i,j))= 0 if B«= x(i,j)and C«=D 1 if B«= x(i,j)and C>D 2 if B> x(i,j)and C«=D 3 if B> x(i,j)and C>D All context functions of this example may take only four context values amongst the set {0,1,2,3}.
The algorithm of figure 6B takes as an input a digital signal composed of the samples of the current grid (Cl) of the current block Bk of the source signal.
In the first step E600, the first context function amongst the set of context functions to be tested is selected as the current context function On.
At step E601 the context function On is applied to all digital samples of the current grid, using the values of the digital samples A, B, 0, D of the neighbourhood as explained above to obtain a context value for each sample of the grid. All the samples to be processed, i.e. all the samples belonging to grid GI, are represented with a cross on the block 800 represented on figure 8.
Each sample of the grid has an associated context value using context function On, as illustrated in block 810 of figure 8. The subset of samples forming current grid Cl is further partitioned into subsets of samples having the same context value. The partitions represented on figure 8 comprise: subset 812 of samples having a context value equal to 0, subset 814 of samples having a context value equal to 1, subset 816 of samples having a context value equal to 2 and subset 818 of samples having a context value equal to 3.
The method according to an embodiment of the invention determines an optimal filter among a predetermined set of filters for each subset of samples having the same context value.
In the preferred embodiment, the set of filters is composed of 8 oriented filters, illustrated schematically in figure 9. The set also includes an additional filter, the identity filter, Fjd. Including the identity filter makes it possible to select the samples which should be filtered and to keep some samples un-filtered when the filtering does not bring any rate-distortion improvement. The digital sample to be filtered is pixel x(i,j) situated on the ith line and the th column. The lines labeled 0 to 7 in the figure correspond to the supports of the filters F0 to F7, that is to say the set of pixels used in the linear filtering operation. Those 8 filters linearly combine 7 digital samples, so they have a support of size 7. The identity filter FId has a support of size 1.
For example, the filters are: F0=a.x(i,j)+b.(x(i,j-'-l)+x(i,j-1))+c.(x(i,j+2)+x(i,j-2))+d.(x(i,j+3)+x(i, j-3)) F1= a.x(i,j)+b.(x(i-1,j+2)+x(i+1,j-2))+c.(x(i-1,j+3)+x(i+1,j-3))+d.(x(i-2,j+3) +x(i+2,j-3)) F2=a.x(i,j)+b.(x(i+1,j+1)+x(i-1,j-1))+c.(x(i+2,j+2)+x(i-2,j-2))+d.(x(i+3, j+3)+x(i-3,j-3)) F3= a.x(i,j)+b.(x(i+2,j-1)+x(i-2,j+1))+c.(x(i-i-3,j-1)+x(i-3,j+1))+d.(x(i+3, j-2)+x(i-3,j+2)) F4=a.x(i,j)+b.(x(i+1,j)+x(i-1,j))+c.(x(i+2,j)+x(i-2,j))+d.(x(i+3,j)+x(i-3, j)) F5= a.x(i,j)+b.(x(i+2,j+1)+x(i-2,j-1))+c.(x(i-i-3,j+1)+x(i-3,j-1))+d.(x(i+3, j+2)+x(i-3,j-2)) F6=a.x(i,j)÷b.(x(i-1,j÷1)÷x(i÷ 1,j-1))÷c.(x(i-2,j÷2)÷x(i÷2,j-2))÷d.(x(i-3,j÷3)÷x(i÷3,j-3)) F7= a.x(i,j)+b.(x(i-1,j-2)+x(i+ 1,j+2))+c.(x(i-1,j-3)+x(i+ 1,j+3))+d.(x(i-2,j-3)+x(i-'-2,j+3)) F8=Fjd=x(i,j) where a,b,c,d have predefined values for all filters of the set.
In an alternative embodiment, a,b,c,d may take different values for different filters.
It is advantageous to use oriented filters F0 to F7 because they are adapted to filter accurately local areas containing oriented edges. The final set from which the filters may be selected contains 9 filters in this example, including the identity filter.
In order to determine an optimal context function and the associated filter table, in the preferred embodiment, a predetermined rate is firstly associated to each filter of the set of filters.
The main steps of the method for assigning rates to a set of filters according to an embodiment of the method of encoding a digital signal are illustrated in figure 6A.
Firstly, the set of filters F to be used for filtering is obtained at step E620. As explained above, in the preferred embodiment, this set contains 8 oriented filters and the identity filter.
Next, a predetermined rate is associated to each filter in the set. At step E630, a first predetermined rate a is associated with the identity filter Fid and a second predetermined rate f3 is associated to the oriented filters F at step E640.
Steps E630 and E640 can be applied in any order or simultaneously.
The rate assignment to the filters may be generally expressed as: r a if F. is the identity filter r =Rate(F)= 1 1 L /3, a!= /3 otherwise where a and 13 are predetermined values. For example, the following values may be taken: (a, 13) = (0.51, 4.73), which is more favorable to the case where the identity filter is often chosen, i.e. the image or video comprises many flat areas or (a, 13) = (3.32, 3.15) which is more favorable to the case where the identity filter is less frequently chosen than other filters because the image or video does not comprise many flat areas.
In an alternative embodiment: r 1 if F. is the identity filter r.=Rate(F)= 1 1 1 L 1+log2(N-1) otherwise where N is the total number of filters, which is 9 in the example above.
In this case, the identity filter is assigned a rate of 1 bit whereas the other filters are assigned a rate r of 4 bits.
The assignments where the first rate is lower than the second rate favor the selection of the identity filter over the oriented filters, so as to enforce the constraint of applying oriented filtering only when it is significantly beneficial, for example for edge regions or highly textured regions. It also corresponds to the statistics of natural image/video signals, which contain more flat areas than edges, requiring a more frequent usage of the identity filter.
The steps E630 and E640 are followed by an optional step E650 of setting different first and second rates to the filters according to the spatial subset (grid Cl) and a context function.
Therefore, each filter might have a plurality of associated rates, each rate being estimated from the set of reference video sequences for a given combination of grid and context function.
In a particular embodiment, a different rate r(Gl,Cn) is associated to every combination of grid index I and context function n, for example by setting: 1 a. if F. is the identity filter r1(G1,Cn) = J.fl 1 L a1!= f3, otherwise The predetermined rates and might be chosen among a set of possible values as explained above, for example among the three sets (a, 13) (0.51, 4.73) ; (a, 13) = (3.32, 3.15) or (a, 13) = (1, 4) based on experiments carried out on one or several reference video sequences.
Finally, the rate value or values associated to each filter are stored in a rate table Tab_r(Gl,Cn) for example (step E660).
Back to figure 6B, step E601 is followed by step E602, in which the first context value is taken as the current context value V. Next the first filter of the set of filters is taken as the current filter F (step E603), and is applied to all digital samples of the subset of samples having a context value equal to Vat step E604.
A rate-distortion cost associated to filter F of the subset of samples of context value V of context function Cn is then calculated at step E605, according to the formula: Cost=r-'-Xd, where r designates the rate of filter F determined as previously explained with respect to figure 6A, X is a parameter determined by the user and d is a distortion between the subset of filtered samples being processed and the corresponding samples of the original digital signal Si.
The value of the parameter X represents the balance between the amount of rate dedicated to the side information and the upsampling quality. For example, X may take one of the following values [0.005, 0.02, 0.03].
The distortion d is simply computed as the square error between the values of the filtered samples and the corresponding values of the original samples.
The rate-distortion cost value Cost calculated is then compared to a value 0mm at step E606.
If Cost is lower than Cmin (test E606) or if the current filter is the first filter of the filter set (i=0), 0mm is set equal to Cost1 and a variable index is set equal to i at step E607. The variable index stores the index of the best filter F, i.e. the filter whose application results in the lowest rate-distortion cost.
If the outcome of the test E606 is negative or after step E607, the test E608 verifies if there is a remaining filter to evaluate.
In case there is a remaining filter, i.e. using the filter set above, if the index of the current filter is lower than 8, steps E604 to E607 are applied again, with the following filter F as current filter.
If all the filters have been evaluated, including the identity filter Fd, step E608 is followed by step E609 at which the value of the index variable is stored for the current value V of the context function. For example, the index value is stored in a table called filter table, associated with the context function Cn for the processed grid Cl.
It is next checked at step E610 if there is a remaining context value to be processed, i.e. using the set of possible context values in the example above, if the current context value V is less than 3. In case there are more context values to be processed, the next context value is taken as the current context value and the processing returns to step E603.
If, on the contrary, all the context values have been processed, it means that the filter table associated with the context function Cn for the processed grid Cl is complete. Using the example above, since each context function may take only four values 0, 1, 2 and 3, a filter table is simply a list of four filter indexes. An example of filter table is T(Bk,Gl,Cn)[4,0,1,1]. A sample x(i,j) of grid GI of block Bk should be filtered with: F4 if the context function takes value 0 on x(i,j), F0 if the context function takes value 1 on x(i,j), F1 if the context function takes value 2 on x(i,j) and F1 if the context function takes value 3 on x(i,j).
The cost Cost corresponding to each optimal filter for each subset is also stored in memory.
Next, it is possible to compute the cost of the context function Cn on the grid GI at step E61 1, as the sum of the cost Cost of the four optimal filters for each subset. The rate of the description of the context function is also added. In the example, the rate of the description of each context function is 4 bits since there are 16 possible context functions. Alternatively, each context function rriight be attributed an adapted rate, depending on its statistics.
The cost value associated to the current context function On is stored in memory, along with the filter table associated with it.
Next it is checked if there are other context functions to process at step E612. In case of positive answer, the following context function is considered as the current context function, and the processing returns to step E601 where the current context function is applied to the grid GI.
If all the context functions have been processed, step E612 is followed by step E613 at which the optimal context function for the current grid is selected according to a second predefined criterion.
In the preferred embodiment, the context function C0 having the lowest cost is chosen as the optimal context function.
This optimal context function and the associated filter table constitute the output of step E305 of figure 3.
Back to figure 3, step E305 is followed by a filtering step E306 during which each sample x(i,j) of the current grid is filtered. First the context value of the optimal context function on the current sample x(i,j) is computed. The index of the filter to be applied is given by the filter table based on the context value of x(i,j).
As schematically represented in figure 9, each filter extends across the grids, so a filtered sample value is obtained as a function of samples values of adjacent samples from different grids.
The following step E307 tests if the current grid is the last grid in the block, i.e. grid of index 9 in the example of figure 5B.
In case of negative answer, the next grid is considered at step E308 and the processing returns to step E305.
In case the answer to test E307 is positive, i.e. if the current grid processed is the last grid in the block, step E307 is followed by step E309 of verification of a third predefined criterion, which is, in this embodiment, the rate-distortion improvement.
Indeed, once all the grids of the current block have been filtered using the filters associated to an optimal context function per grid, it is possible to evaluate if the current iteration iter brings an improvement in terms of rate-distortion compromise.
It is therefore necessary to determine the distortion and the rate of the current block after grid filtering.
The distortion Dk(iter) is computed, as already explained with respect to step E302, as the square error between the filtered digital signal of block Bk and the corresponding original signal OBk.
The rate Rk(iter) depends on the selection of the optimal context function and associated filter table made for each grid in the current block.
As explained above with respect to step E605, each filter Fi of the predetermined filter set has a predetermined associated rate r1, and the identity filter has a different rate from the other filters of the set, which are the oriented filters.
For each grid GI, the rate RI corresponding to the grid GI is computed as the sum of the predetermined rates of the filters of the filter table used for the grid. The rate necessary to encode the context function is also added. It is equal to 4 bits to encode one context function out of 16.
The total rate Rk(iter) for the current iteration on block Bk is equal to the sum of the grid rates RI plus 1 bit for a flag indicating the fact that the iteration is applied, e.g. the bit "1".
The total rate after the current iteration iter is equal to the rate dedicated to the current iteration added to the rate necessary to encode the previous iterations, R(previous). We note that R(previous) is equal to 0 when the current iteration is the first one.
Finally, the distortion rate cost corresponding to the current iteration is computed as: Cnew= Rk(iter) +R(previous) i-X Dk(iter).
The cost of applying the current iteration is compared to the cost of not applying the current iteration. The cost of not applying the current iteration is equal to the cost previously stored in memory, Ccurrent, plus 1 for a bit flag indicating that the current iteration is not applied, and subsequently the end of iterations. If Cnew is lower than (Ccurrent + 1), it means that the current iteration brings a rate-distortion improvement.
Then step E309 is followed by step E310, in which the optimal context function and the associated filter table determined for each grid of the current block Bk are added to the side information signal, as well as the bit flag indicating the application of the current iteration.
The processing passes then to the next iteration on the current block Bk at step E31 1. In practice, the variable iter is increased to Iter=lter÷1.
Step E31 1 is followed by step E302 at which the values of the filtered digital samples of block Bk are stored in the memorized block MBk. The rate-distortion cost Cnew calculated at step E309 is also stored as cost Ccurrent of the previous iteration.
Back to step E309, if the current iteration does not bring a rate-distortion improvement, i.e. if the cost Cnew is higher than the cost (Ccurrent + 1), then step E309 is followed by step E312 of removing last iteration.
At this step the values of the filtered samples of block Bk resulting from the last iteration are replaced by the values stored in the memorized block MBk.
This is useful to avoid any distortion in the subsequent processing of the following blocks, since some filtered samples on the current block will be used to calculatethe filtered samples of the next block which is spatially adjacent.
Finally, step E313 adds a bit flag to the side information signal, e.g. the bit "0", to indicate that the iterative process stops when the last iteration does not bring any rate-distortion improvement. The set of all bit flags indicating the occurrence or non occurrence of an iteration forms a binary code of the number of iterations applied.
Next, it is checked whether the current block is the last block of signal S, to be processed at step E314. In case of negative answer, step E314 is followed by step E315, during which the next block to be processed is set as current block. In case of positive answer, step E314 is followed by step E316 of compression of the side information signal.
In a first simple embodiment, the side information signal is compressed using entropic coding, for example using arithmetic coding. The advantage of this simple embodiment is a low computational complexity.
Figure 10 shows a digital signal 10 divided into four blocks, referenced BO, Bi, B2 and B3. The number of iterations to be applied to each block is respectively 0, 1, 1 and 2. The side information signal for each block having at least one associated iteration is schematically represented on the figure by the signal 110 for block Bi, 120 for block B2 and the two signals 130 and 140 for block B3, respectively corresponding to the two iterations.
Each side information signal is represented as a concatenation of cells 100, each cell containing a grid index, an associated optimal context function and the associated filter table represented as [uo, ui, u2, u3].
We note that if no particular compression processing is applied, the side information signal is composed as a concatenation of the sub-signals taken for example in the increasing order of blocks, and in the increasing order of iterations per block. In practice in this example the side information signal would be constituted of 110, 120, 130 and 140. The side information signal contains for each block, the binary code encoding the number of iterations, and for each iteration, for each grid, the index of the optimal context function and the associated
filter table.
In order to achieve a higher compression rate of the side information signal, the side information signal may be divided into sub-signals which are encoded using independent entropy coders.
The flow diagram in figure 11 illustrates steps of a decoding/upsampling method using the side information signal generated, in a particular embodiment where the signal is a digital video signal.
All the steps of the algorithm represented in figure 11 can be implemented in software and executed by the central processing unit 1111 of the device 1000.
The bitstream of the encoded video signal, comprising the compressed digital video signal s and the compressed side information signal, is either received through the communication network 1103 or retrieved from a storage memory space. Firstly, the encoded video signal bitstream is separated into the compressed digital video signal Sc and the compressed side information signal by de-multiplexing unit 214 as explained with respect to figure 2.
The compressed digital video signal is decompressed and upsampled in a first step El 200. The compression being optional, the received/retrieved signal might be uniquely up-sampled during step El 200, to a target resolution R. A digital video signal S is obtained.
The target resolution can be pre-defined, as for example the resolution 1 920x1 080 pixels for the format 1 080p. Alternatively, the target resolution might be written in the bitstream.
The side information signal is also decompressed during step E1201 using the appropriate entropy decoder. The decompressed side-information signal contains, for each block, information on the number of iterations, and for each iteration, for each grid amongst the set of predetermined grids, an information (typically an index) representing the optimal context function and the associated
filter table.
Next, at step E1202, the digital video signal is divided into blocks, in an analogous manner to step E300 at the encoder. The first block is considered as the current block Bk at step E1203.
The number of iterations required for the current block Bk is read from the side information signal during following step El 204.
The current block being processed Bk is then divided into grids at step E1205, in an analogous manner to the grid division performed during step E303 at the encoder. The first grid is selected as the current gird at step E1206.
Step El 206 is followed by step El 207 of obtaining the index of the optimal context function determined for the current grid and the associated filter table from the side information signal.
The digital samples of the current grid are then filtered at step El 208.
This filtering is analogous to the filtering step E306 carried out at the encoder. First the context value of the optimal context function on each sample x(i,j) of the current grid is computed. The index of the filter to be applied is given by the filter table based on the context value of x(i,j). If the index of the filter retrieved from the filter table is the index of the identity filter, no filtering is applied at step El 208, therefore saving computational resources.
After filtering all samples of the current grid, it is tested at step E1209 whether the current grid is the last grid of the current block.
In case of negative answer, test El 209 is followed by step El 210 during which the next grid is selected as current grid. The process returns then to step El 207.
In case of positive answer, test El 209 is followed by step El 211 checking if the number of iterations for the current block Bk has been reached. If the answer is negative, the process passes to the next iteration (step E1212). In practice, an iteration counter is increased by one. Step E1212 is followed by step E1206 already described, and the next iteration of the filtering for all the grids composing the current block is carried out.
If all the iterations for the current block Bk have been carried out, step El 211 is followed by step El 213 for checking whether the current block Bk is the last block in the signal. If there are more blocks to process (answer no' to the test E1213), step E1213 is followed by step E1214 of selection of the next block as the current block. Step El 214 is followed by step El 204 already described, in order to apply the whole processing to the current block.
If all the blocks have been processed, the decoding/upsampling process ends at step E1215.
The result of this processing is a decoded and upsampled signal which has a good visual quality.

Claims (15)

  1. CLAIMS1. Method for encoding a digital signal comprising a step of filtering at least some samples of said digital signal, wherein the filtering step comprises a selecting step which selects a filter to apply to a digital sample of the digital signal among a set of predetermined filters according to a predetermined criterion, said criterion taking into account a rate assigned to each filter of the set of predetermined filters, characterized in that the set of predetermined filters comprises an identity filter (Fid) which, for an input sample value, outputs the same sample value, the method comprising a step of: -assigning (E630,E640) a first rate to the identity filter and at least one second rate, different from the first rate, to the other filters of the set of predetermined filters.
  2. 2. A method according to claim 1, wherein the set of predetermined filters comprises a set of oriented filters.
  3. 3. A method according to claim 2, wherein all the oriented filters of the set of predetermined filters are assigned the same second rate.
  4. 4. A method according to claim 1 or claim 2, wherein the filters of the set of predetermined filters other than the identity filter have a support of fixed size.
  5. 5. A method according to any of claims 1 to 4, wherein the first rate is lower than the second rate.
  6. 6. A method according to any of claims 1 to 5, the method further comprising dividing (E303) samples of the digital signal into at least two subsets of samples to be processed, the subsets corresponding respectively to different spatial grids that are arranged so that at least some samples of one said subset are interleaved spatially with at least some samples of another said subset, wherein in the assigning step, a first rate and at least one second rate are assigned for each subset of samples to be processed.
  7. 7. A method according to claim 6, wherein the dividing step is followed by a step of: -deterniining (E305) an optimal context function amongst a plurality of context functions for the subset of samples to be processed, and a subset of filters associated to said optimal context function, wherein a context function is a function that, for a given sample, takes into account a predetermined number of other samples and outputs a context value amongst a predetermined number of context values, and wherein in the assigning step, a first rate and at least one second rate are assigned for each context function of the plurality of context functions.
  8. 8. A method according to any of the claims 1 to 7, wherein the predetermined criterion is a rate distortion cost.
  9. 9. Method for decoding an encoded digital signal comprising a step of filtering at least some samples of said digital signal, the filtering step applying, to a digital sample of the digital signal, a filter selected according to a predetermined criterion among a set of predetermined filters, characterized in that the set of predetermined filters comprises an identity filter (Fid) which, for an input sample value, outputs the same sample value, the decoding method comprising the steps of, for a sample of the digital signal -obtaining an item of information representative of a filter of the set of predetermined filters to be applied for decoding said sample; -filtering said sample of the digital signal only if the item of information obtained is representative of a filter of the set of predetermined filters other than the identity filter.
  10. 10. Device for encoding a digital signal, comprising means for filtering at least some samples of said digital signal, wherein the filtering step comprises a selecting step which selects a filter to apply to a digital sample of the digital signal among a set of predetermined filters according to a predetermined criterion, said criterion taking into account a rate assigned to each filter of the set of predetermined filters, characterized in that the set of predetermined filters comprises an identity filter (Fid) which, for an input sample value, outputs the same sample value, comprising -means for assigning a first rate to the identity filter and at least one second rate, different from the first rate, to the filters of the set of predetermined filters.
  11. 11. Device for decoding an encoded digital signal comprising means for filtering at least some samples of said digital signal, the filtering means applying, to a digital sample of the digital signal, a filter selected according to a predetermined criterion among a set of predetermined filters, characterized in that the set of predetermined filters comprises an identity filter (Fid) which, for an input sample value, outputs the same sample value, the decoding device comprising, for a sample of the digital signal -means for obtaining an item of information representative of a filter of the set of predetermined filters to be applied for decoding said sample; -means for filtering said sample of the digital signal only if the item of information obtained is representative of a filter of the set of predetermined filters other than the identity filter.
  12. 12. Information storage means that can be read by a computer or a microprocessor storing instructions of a computer program characterized in that it enables the implementation of the method for encoding a digital signal according to any one of claims 1 to 8.
  13. 13. Computer program product that can be loaded into a programmable apparatus, comprising sequences of instructions for implementing a method for encoding a digital signal according to any one of claims 1 to 8, when the program is loaded into and executed by the programmable apparatus.
  14. 14. Information storage means that can be read by a computer or a microprocessor storing instructions of a computer program characterized in that it enables the implementation of the method for decoding a digital signal according to claim 9.
  15. 15. Computer program product that can be loaded into a programmable apparatus, comprising sequences of instructions for implementing a method for decoding a digital signal according to claim 9, when the program is loaded into and executed by the programmable apparatus.
GB0917987.0A 2009-10-14 2009-10-14 A method and device for encoding and decoding a digital signal Expired - Fee Related GB2474457B (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
GB0917987.0A GB2474457B (en) 2009-10-14 2009-10-14 A method and device for encoding and decoding a digital signal
GB1010085.7A GB2474535B (en) 2009-10-14 2010-06-16 A method and device for encoding a video signal

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
GB0917987.0A GB2474457B (en) 2009-10-14 2009-10-14 A method and device for encoding and decoding a digital signal

Publications (3)

Publication Number Publication Date
GB0917987D0 GB0917987D0 (en) 2009-12-02
GB2474457A true GB2474457A (en) 2011-04-20
GB2474457B GB2474457B (en) 2012-06-20

Family

ID=41462318

Family Applications (2)

Application Number Title Priority Date Filing Date
GB0917987.0A Expired - Fee Related GB2474457B (en) 2009-10-14 2009-10-14 A method and device for encoding and decoding a digital signal
GB1010085.7A Expired - Fee Related GB2474535B (en) 2009-10-14 2010-06-16 A method and device for encoding a video signal

Family Applications After (1)

Application Number Title Priority Date Filing Date
GB1010085.7A Expired - Fee Related GB2474535B (en) 2009-10-14 2010-06-16 A method and device for encoding a video signal

Country Status (1)

Country Link
GB (2) GB2474457B (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030020835A1 (en) * 2001-05-04 2003-01-30 Bops, Inc. Methods and apparatus for removing compression artifacts in video sequences
EP1744279A1 (en) * 2005-07-11 2007-01-17 Thomson Licensing Method and device for filtering an image using side information
KR100835661B1 (en) * 2006-12-07 2008-06-09 부산대학교 산학협력단 Apparatus and method for video coding using multiple filter decision

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8625681B2 (en) * 2008-07-09 2014-01-07 Intel Corporation Rate-distortion cost reducing video encoding techniques

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030020835A1 (en) * 2001-05-04 2003-01-30 Bops, Inc. Methods and apparatus for removing compression artifacts in video sequences
EP1744279A1 (en) * 2005-07-11 2007-01-17 Thomson Licensing Method and device for filtering an image using side information
KR100835661B1 (en) * 2006-12-07 2008-06-09 부산대학교 산학협력단 Apparatus and method for video coding using multiple filter decision

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
IEEE Transactions on Circuits and Systems for Video Technology, Vol 13, No 7, July 2003, pg 614-619 List et al, 'Adaptive Deblocking Filter', see esp page 615 *

Also Published As

Publication number Publication date
GB2474457B (en) 2012-06-20
GB2474535A (en) 2011-04-20
GB201010085D0 (en) 2010-07-21
GB0917987D0 (en) 2009-12-02
GB2474535B (en) 2012-01-04

Similar Documents

Publication Publication Date Title
CN1253009C (en) Spatial scalable compression
RU2691962C2 (en) Image processing device and image processing method
CN101729896B (en) Information processing device and method
JP4124792B2 (en) Encoding method, decoding method, encoding device, and decoding device
KR20200040317A (en) Image coding and decoding methods and devices
CN1220065A (en) System and method for creating trick play video streams from compressed normal play video bitstream
CN101517597A (en) Localized content adaptive filter for low power scalable image processing
US10785493B2 (en) Method of compressing and decompressing image data
WO2010136547A1 (en) Method and device for processing a digital signal
US20200304773A1 (en) Depth codec for 3d-video recording and streaming applications
US20220182654A1 (en) Exchanging information in hierarchical video coding
CN102017636B (en) Image decoding
KR20220019285A (en) Method and encoder for encoding a sequence of frames
EP4252426A2 (en) Video decoding using post-processing control
US7676096B2 (en) Modular, low cost, memory efficient, input resolution independent, frame-synchronous, video compression system using multi stage wavelet analysis and temporal signature analysis with a highly optimized hardware implementation
US20120163479A1 (en) Methods and devices for filtering and coding a digital signal
GB2474457A (en) Adaptive filtering of video data based upon rate distortion cost
US20080226186A1 (en) Image processing apparatus and method of image processing
GB2470560A (en) A method and device for determining an encoding filter
KR20230108286A (en) Video encoding using preprocessing
WO2022079450A1 (en) Distributed analysis of a multi-layer signal encoding
GB2470561A (en) A method for processing a digital signal.
US11765366B2 (en) Method for processing transform coefficients
JP2010276686A (en) Image control apparatus
US10893297B2 (en) Processing image data using tiered bit-layers

Legal Events

Date Code Title Description
PCNP Patent ceased through non-payment of renewal fee

Effective date: 20161014