EP4646834A1 - Reducing complexity of video encoding and decoding - Google Patents
Reducing complexity of video encoding and decodingInfo
- Publication number
- EP4646834A1 EP4646834A1 EP23915048.5A EP23915048A EP4646834A1 EP 4646834 A1 EP4646834 A1 EP 4646834A1 EP 23915048 A EP23915048 A EP 23915048A EP 4646834 A1 EP4646834 A1 EP 4646834A1
- Authority
- EP
- European Patent Office
- Prior art keywords
- group
- convolution layers
- filter
- size
- channels
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/117—Filters, e.g. for pre-processing or post-processing
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/088—Non-supervised learning, e.g. competitive learning
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/176—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/80—Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
- H04N19/82—Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop
Definitions
- This disclosure relates to reducing complexity of video encoding and decoding.
- Video is the dominant form of data traffic in today’s networks and is projected to continuously increase its share, as disclosed in P. Cerwall et al. Ericsson Mobility Report. https://www.ericsson.com/en/mobility-report, November 2019.
- One way to reduce the data traffic from video is compression.
- the source video is encoded to a bitstream, which then can be stored and transmitted to end users.
- the end user can extract the video data and display it on a screen.
- the encoder since the encoder may not know what kind of device the encoded bitstream is going to be sent to, the encoder must compress the video into a standardized format. This way, all devices that support the chosen standard can successfully decode the video. Compression can be lossless, i.e., the decoded video will be identical to the source video that was given to the encoder, or lossy, where a certain degradation of content is accepted. Whether the compression is lossless or lossy has a significant impact on the bitrate, i.e., how high the compression ratio is, as factors such as noise can make lossless compression quite expensive.
- a video sequence contains a sequence of pictures.
- a color space commonly used in video sequences is YCbCr, where Y is the luma (brightness) component, and Cb and Cr are the chroma components. Sometimes the Cb and Cr components are called U and V.
- ICtCp (a.k.a., IPT) (where I is the luma component, and Ct and Cp are the chroma components), constant-luminance YCbCr (where Y is the luma components, and Cb and Cr are the chroma components), RGB (where R, G, and B correspond to blue, green, and blue components respectively), YCoCg (where Y is the luma components, and Co and Cg are the chroma components), etc.
- IPT a.k.a., IPT
- YCbCr where Y is the luma components, and Cb and Cr are the chroma components
- RGB where R, G, and B correspond to blue, green, and blue components respectively
- YCoCg (where Y is the luma components, and Co and Cg are the chroma components), etc.
- the order that the pictures are placed in the video sequence is called “display order.”
- Each picture is assigned with a Picture Order Count (POC) value to indicate its display order.
- POC Picture Order Count
- images “pictures” or “frames” are used interchangeably.
- Video compression is used to compress video sequences into a sequence of coded pictures.
- the picture is divided into blocks of different sizes.
- a block is a two-dimensional array of samples. The blocks serve as the basis for coding.
- a video decoder then decodes the coded pictures into pictures containing sample values.
- H.264/AVC Advanced Video Coding
- ISO International Telecommunication Union - Telecommunication
- H.265/HEVC High Efficiency Video Coding
- VVC Versatile Video Coding
- the VVC video coding standard is a block-based video codec and utilizes both temporal and spatial prediction. Spatial prediction is achieved using intra (I) prediction from within the current picture. Temporal prediction is achieved using uni-directional (P) or bidirectional inter (B) prediction at the block level from previously decoded reference pictures.
- the encoder the difference between the original pixel data and the predicted pixel data, referred to as the residual, is transformed into the frequency domain, quantized, and then entropy coded before being transmitted together with necessary prediction parameters such as prediction mode and motion vectors (which may also be entropy coded).
- the decoder performs entropy decoding, inverse quantization, and inverse transformation to obtain the residual, and then adds the residual to the intra or inter prediction to reconstruct a picture.
- the VVC video coding standard uses a block structure referred to as quadtree plus binary tree plus ternary tree block structure (QTBT+TT), where each picture is first partitioned into square blocks called coding tree units (CTU). All CTUs are of the same size and the partitioning of the picture into CTUs is done without any syntax controlling it.
- QTBT+TT quadtree plus binary tree plus ternary tree block structure
- Each CTU is further partitioned into coding units (CUs) that can have either square or rectangular shapes.
- the CTU is first partitioned by a quad tree structure, then it may be further partitioned with equally sized partitions either vertically or horizontally in a binary structure to form coding units (CUs).
- a block could thus have either a square or rectangular shape.
- the depth of the quad tree and binary tree can be set by the encoder in the bitstream.
- the ternary tree (TT) part adds the possibility to divide a CU into three partitions instead of two equally sized partitions. This increases the possibilities to use a block structure that better fits the content structure of a picture, such as roughly following important edges in the picture.
- a block that is intra coded is an I-block.
- a block that is uni-directional predicted is a P-block and a block that is bi-directional predicted a B-block.
- the encoder decides that encoding the residual is not necessary, perhaps because the prediction is sufficiently close to the original.
- the encoder then signals to the decoder that the transform coding of that block should be bypassed, i.e., skipped.
- Such a block is referred to as a skip-block.
- VVC contains three in-loop filterings that are not based on neural networks: A deblocking filter, sample adaptive offsets (SAO) filter, and adaptive loop filter (ALF).
- the deblocking filter is used to remove block artifacts by smoothening discontinuities in horizontal and vertical directions across block boundaries.
- the deblocking filter uses a block boundary strength (BS) parameter to determine the filtering strength.
- the BS parameter can have values of 0, 1, and 2, where a larger value indicates a stronger filtering.
- the output of deblocking filter is further processed by SAO, and the output of the SAO is then processed by ALF operation.
- the output of the ALF can then be put into the display picture buffer (DPB), which is used for prediction of subsequently encoded (or decoded) pictures.
- DPB display picture buffer
- the deblocking filter, the SAO filter, and the ALF influence the pictures in the DPB used for prediction, they are classified as in-loop filters, also known as loopfilters. It is possible for a decoder to further filter the image, but not send the filtered output to the DPB, but only to the display. In contrast to loopfilters, such a filter is not influencing future predictions and is therefore classified as a post-processing filter, also known as a postfilter.
- NN-based in-loop filter 2022 are two successive contributions that describe NN-based in-loop filtering. Both contributions use the same NN models for filtering.
- the NN-based in-loop filter is placed before SAO and ALF and the deblocking filter is turned off.
- the purpose of using the NN-based filter is to improve the quality of the reconstructed samples.
- the NN model is non-linear. While all of deblocking filter, SAO, and ALF contain non-linear elements such as conditions, and thus are not strictly linear, all three of them are based on linear filters.
- a sufficiently big NN model in contrast can in principle learn any non-linear mapping and is therefore capable of representing a wider class of functions compared to deblocking, SAO and ALF.
- JVET-X0066 and JVET-Y0143 there are four NN models, i.e., four NN-based in-loop filters - one for luma intra samples, one for chroma intra samples, one for luma inter samples, and one for chroma inter samples.
- the use of NN filtering can be controlled on a block (CTU) level or a picture level.
- the encoder can determine whether to use NN filtering for each block or each picture.
- the NN-based in-loop filters presented in JVET-X0066 and JVET-AB0053 increase the compression efficiency of the codec substantially, i.e., it lowers the bit rate substantially without lowering the objective quality as measured by MSE (mean-square error)- based PSNR (peak signal-to-noise ratio).
- Increases in compression efficiency, or simply “gain”, is often measured as the Bjontegaard-delta rate (BDR) against an anchor.
- BDR Bjontegaard-delta rate
- a BDR of -1% means that the same PSNR can be reached with 1% fewer bits.
- JVET- Y0143 As reported in JVET- Y0143, for the random access (RA) configuration, the BDR gain for the luma component (Y) is -9.80%, and for the all-intra (Al) configuration, the BDR gain for the luma component is -7.39%.
- the complexity of NN models used for compression is often measured by the number of Multiply- Accumulate (MAC) operations per pixel.
- the high gain of NN model is directly related to the high complexity of the NN model.
- the luma intra model described in JVET-Y0143 has a complexity of 430 kMAC/pixel, i.e., 430000 multiply-accumulate operations per pixel. There are also other measures of complexity, such as total model size in terms of stored parameters.
- the NN filter (the neural network loop filter) described above is configured to generate an improved output picture based on several inputs, but before these multiple inputs reach the “trunk” or “body” of the NN filter (where most of the computations of the NN filter occurs), these inputs are processed separately and then combined. These separate processing and combining corresponds to a substantial portion of the overall process of the NN filter. Therefore, there is a need to reduce this portion of the process of the NN filter.
- a method for encoding or decoding a video comprises obtaining values of components of reconstructed samples; obtaining first additional input data; and providing the obtained values of the components of the reconstructed samples to a first group of one or more convolution layers, thereby generating an output of the first group of convolution layers.
- the method further comprises providing the obtained first additional input data to a second group of one or more convolution layers, thereby generating an output of the second group of convolution layers; and encoding or decoding the video based on the output of the first group of convolution layers and the output of the second group of convolution layers.
- the first group of convolution layers and the second group of convolution layers are different with respect to a number of channels, a size of a kernel filter, and/or a number of convolution layers.
- a carrier containing the computer program of the above embodiment, wherein the carrier is one of an electronic signal, an optical signal, a radio signal, and a computer readable storage medium.
- an apparatus for encoding or decoding a video is configured to perform the method according to the first aspect.
- Some embodiments of this disclosure provide a way to reduce the complexity of the NN model while substantially maintaining or improving the performance of the NN filter.
- FIG. 1 A shows a system according to some embodiments.
- FIG. IB shows a system according to some embodiments.
- FIG. 1C shows a system according to some embodiments.
- FIG. 2 shows a schematic block diagram of an encoder according to some embodiments.
- FIG. 3 shows a schematic block diagram of a decoder according to some embodiments.
- FIG. 4 shows a schematic block diagram of a portion of an NN filter according to some embodiments.
- FIG. 5 shows a schematic block diagram of a portion of an NN filter according to some embodiments.
- FIG. 6 shows computational operations performed by a convolution layer.
- FIG. 7 shows a process according to some embodiments.
- FIG. 8 shows an apparatus according to some embodiments.
- Neural network a generic term for an entity with one or more layers of simple processing units called neurons or nodes having activation functions and interacting with each other via weighted connections and biases, which collectively create a tool in the context of nonlinear transforms.
- Neural network architecture, network architecture, or architecture in short the layout of a neural network describing the placement of the nodes and their connections, usually in the form of several interconnected layers, and may also specify the dimensionality of the input(s) and the output(s) as well as the activation functions for the nodes.
- Neural network weights or weights in short: The weight values assigned to the connections between the nodes in a neural network.
- Neural network model or model in short: a transform in the form of trained neural network(s).
- a neural network model may be specified with the neural network architecture, activation functions, biases, and/or weights.
- Filter A transforming entity.
- a neural network model is one realization of a filter.
- the term NN filter may be used as a short form of neural-network-based filter or neural network filter.
- Neural network training or training in short: The process of finding the values for the weights and biases for a neural network.
- a training data set is used to train the neural network and the goal of the training is to minimize a defined error.
- the amount of training data needs to be sufficiently large to avoid overtraining.
- Training a neural network is normally a timeconsuming task and typically comprises a number of iterations over the training data, where each iteration is referred to as an epoch.
- FIG. 1A shows a system 100 according to some embodiments.
- the system 100 comprises a first entity 102, a second entity 104, and a network 110.
- the first entity 102 is configured to transmit towards the second entity 104 a video stream (a.k.a., “a video bitstream,” “a bitstream,” “an encoded video”) 106.
- a video stream a.k.a., “a video bitstream,” “a bitstream,” “an encoded video”
- the first entity 102 may be any computing device (e.g., a network node such as a server) capable of encoding a video using an encoder 112 and transmitting the encoded video towards the second entity 104 via the network 110.
- the second entity 104 may be any computing device (e.g., a network node) capable of receiving the encoded video and decoding the encoded video using a decoder 114.
- Each of the first entity 102 and the second entity 104 may be a single physical entity or a combination of multiple physical entities. The multiple physical entities may be located in the same location or may be distributed in a cloud.
- the first entity 102 is a video streaming server 132 and the second entity 104 is a user equipment (UE) 134.
- the UE 134 may be any of a desktop, a laptop, a tablet, a mobile phone, or any other computing device.
- the video streaming server 132 is capable of transmitting a video bitstream 136 (e.g., YouTubeTM video streaming) towards the video streaming client 134.
- the UE 134 may decode the received video bitstream 136, thereby generating and displaying a video for the video streaming.
- the first entity 102 and the second entity 104 are first and second UEs 152 and 154.
- the first UE 152 may be an offeror of a video conferencing session or a caller of a video chat
- the second UE 154 may be an answerer of the video conference session or the answerer of the video chat.
- the first UE 152 is capable of transmitting a video bitstream 156 for a video conference (e.g., ZoomTM, SkypeTM, MS TeamsTM, etc.) or a video chat (e.g., FacetimeTM) towards the second UE 154.
- the UE 154 may decode the received video bitstream 156, thereby generating and displaying a video for the video conferencing session or the video chat.
- FIG. 2 shows a schematic block diagram of the encoder 112 according to some embodiments.
- the encoder 112 is configured to encode a block of sample values (hereafter “block”) in a video frame of a source video 202.
- a current block e.g., a block included in a video frame of the source video 202
- the result of the motion estimation is a motion or displacement vector associated with the reference block, in the case of inter prediction.
- the motion vector is utilized by the motion compensator 250 for outputting an inter prediction of the block.
- An intra predictor 249 computes an intra prediction of the current block.
- the outputs from the motion estimator/compensator 250 and the intra predictor 249 are inputted to a selector 251 that either selects intra prediction or inter prediction for the current block.
- the output from the selector 251 is input to an error calculator in the form of an adder 241 that also receives the sample values of the current block.
- the adder 241 calculates and outputs a residual error as the difference in sample values between the block and its prediction.
- the error is transformed in a transformer 242, such as by a discrete cosine transform, and quantized by a quantizer 243 followed by coding in an encoder 244, such as by entropy encoder.
- the estimated motion vector is brought to the encoder 244 for generating the coded representation of the current block.
- the transformed and quantized residual error for the current block is also provided to an inverse quantizer 245 and inverse transformer 246 to retrieve the original residual error.
- This error is added by an adder 247 to the block prediction output from the motion compensator 250 or the intra predictor 249 to create a reconstructed sample block 280 that can be used in the prediction and coding of a next block.
- the reconstructed sample block 280 is processed by a NN filter 230 (a.k.a., “neural network loop filter” or “NNLF”) according to the embodiments in order to perform filtering to combat any blocking artifact.
- the output from the NN filter 230 i.e., the output data 290, is then temporarily stored in a frame buffer 248, where it is available to the intra predictor 249 and the motion estimator/compensator 250.
- the encoder 112 may include SAO unit 270 and/or ALF 272.
- the SAO unit 270 and the ALF 272 may be configured to receive the output data 290 from the NN filter 230, perform additional filtering on the output data 290, and provide the filtered output data to the buffer 248.
- the NN filter 230 is disposed between the SAO unit 270 and the adder 247
- the NN filter 230 may replace the SAO unit 270 and/or the ALF 272.
- the NN filter 230 may be disposed between the buffer 248 and the motion compensator 250.
- a deblocking filter (not shown) may be disposed between the NN filter 230 and the adder 247 such that the reconstructed sample block 280 goes through the deblocking process and then is provided to the NN filter 230.
- FIG. 3 is a schematic block diagram of the decoder 114 according to some embodiments.
- the decoder 114 comprises a decoder 361, such as entropy decoder, for decoding an encoded representation of a block to get a set of quantized and transformed residual errors. These residual errors are dequantized in an inverse quantizer 362 and inverse transformed by an inverse transformer 363 to get a set of residual errors. These residual errors are added in an adder 364 to the sample values of a reference block.
- the reference block is determined by a motion estimator/compensator 367 or intra predictor 366, depending on whether inter or intra prediction is performed.
- a selector 368 is thereby interconnected to the adder 364 and the motion estimator/compensator 367 and the intra predictor 366.
- the resulting decoded block 380 output form the adder 364 is input to a NN filter unit 330 according to the embodiments in order to filter any blocking artifacts.
- the filtered block 390 is output form the NN filter 330 and is furthermore preferably temporarily provided to a frame buffer 365 and can be used as a reference block for a subsequent block to be decoded.
- the frame buffer (e.g., decoded picture buffer (DPB)) 365 is thereby connected to the motion estimator/compensator 367 to make the stored blocks of samples available to the motion estimator/compensator 367.
- the output from the adder 364 is preferably also input to the intra predictor 366 to be used as an unfiltered reference block.
- the decoder 114 may include SAO unit 380 and/or ALF 372.
- the SAO unit 380 and the ALF 382 may be configured to receive the output data 390 from the NN filter 330, perform additional filtering on the output data 390, and provide the filtered output data to the buffer 365.
- the NN filter 330 is disposed between the SAO unit 380 and the adder 364, in other embodiments, the NN filter 330 may replace the SAO unit 380 and/or the ALF 382. Alternatively, in other embodiments, the NN filter 330 may be disposed between the buffer 365 and the motion compensator 367. Furthermore, in some embodiments, a deblocking filter (not shown) may be disposed between the NN filter 330 and the adder 364 such that the reconstructed sample block 380 goes through the deblocking process and then is provided to the NN filter 330.
- FIG. 4 is a schematic block diagram of a portion the NN filter 230/330 for filtering intra luma samples according to some embodiments.
- luma (or chroma) intra samples are luma (or chroma) components of samples that are intra-predicted.
- luma (or chroma) inter samples are luma (or chroma) components of samples that are inter-predicted.
- the NN filter 230/330 may have four inputs: (1) values of luma components of reconstructed samples (“rec”) 280/380; (2) values of luma components of predicted samples (“pred”) 295/395; (3) block boundary strength, BBS, information indicating strength of a filtering applied to a boundary of luma components of samples (“bs”); and (4) quantization parameters (“qp”).
- additional input(s) e.g., partition information indicating how luma components of samples are partitioned
- Each of the four inputs may go through a convolution layer (labelled as “conv3x3” in FIG. 4) and a parametric rectified linear unit (PReLU) layer (labelled as “PReLU”) separately.
- the four outputs from the four PReLU layers may then be concatenated via a concatenating unit (labelled as “concat” in FIG. 4) and fused together to generate data (a.k.a., “signal”) “y ”
- the convolution layer “conv3x3” is a convolutional layer with kernel size 3x3
- the convolution layer “convlxl” is a convolutional layer with kernel size 1x1.
- the PReLUs may make up the activation layer.
- qp may be a scalar value.
- the NN filter 230/330 may also include a dimension manipulation unit (labelled as “Unsqueeze expand” in FIG. 4) that may be configured to expand qp such that the expanded qp has the same size as other inputs (i.e., rec, pred, and bs).
- qp may be a matrix of which the size may be same as the size of other inputs (e.g., rec, pred, and bs). For example, different samples inside a CTU may be associated with a different qp value. In such embodiments, the dimension manipulation unit is not needed.
- the NN filter 230/330 may also include a downsampler (labelled as “2J,” in FIG. 4) which is configured to perform a downsampling with a factor of 2.
- the data “y” may be provided to a group of N sequential attention residual (herein after, “AR”) blocks 402.
- AR sequential attention residual
- the N sequential AR blocks 402 may have the same structure while, in other embodiments, they may have different structures.
- N may be any integer that is greater than or equal to 2. For example, N may be equal to 8.
- the first AR block 402 included in the group may be configured to receive the data “y” and generate first output data “zo.”
- the second AR block 402 which is disposed right after the first AR block 402 may be configured to receive the first output data “zo” and generate second output data “zi.”
- the second output data “zi” may be provided to a final processing unit 550 (shown in FIG. 5) of the NN filter 230/330.
- each AR block 402 included in the group except for the first and the last AR blocks may be configured to receive the output data from the previous AR block 402 and provide its output data to the next AR block.
- the last AR block 402 may be configured to receive the output data from the previous AR block and provide its output data to the final processing unit 550 of the NN filter 230/330.
- N-l corresponds to the number of AR blocks included in the NN filter 230/330.
- some or all of the AR blocks 402 may include a spatial attention block 412 which is configured to generate attention mask f.
- the attention mask f may have one channel and its size may be the same as the data “y.”
- the spatial attention block included in the first AR block 402 may be configured to multiply the attention mask f with the residual data “r” to obtain data “r .”
- the data “rf ’ may be combined with the residual data “r” and then combined with the data “y”, thereby generating first output data “zo.”
- the output ZN-I of the group of the AR blocks 402 may be processed by a convolution layer 502, a PReLU 504, another convolution layer 506, pixel shuffling (or really sample shuffling) 508, and a final scaling 510, thereby generating the filtered output data (“Output”) 290/390.
- the NN filter 230/330 may include four separate first layers 452-458. As shown in FIG. 4, each of the four first layers 452-458 may include a 3 X 3 convolution layer and a PReLU. Each of the four first layers 452-458 may be configured to receive different input data. For example, the layer 452, 454, 456, and 458 may be configured to receive the input data “rec,” “pred,” “bs,” and “qp,” respectively.
- the 3 x 3 convolution layer included in each of the first layers 452-458 may include 96 channels (i.e., 96 3 X 3 kernel filters), and thus, for a single input (that comprises a plurality of pixel values) provided to each of the first layers 452-458, there would be 96 outputs (i.e., one output corresponding to each of the 96 channels). Therefore, the first layers 452-458 may be configured to generate 4 x 96 outputs (a.k.a., output channels) for the four inputs (i.e., “rec,” “pred,” “bs,” and “qp”). These 4 x 96 outputs may be processed via the concatenate unit, the fuse unit, and the transition unit, and thus combined into j' corresponding to 96 outputs.
- 96 channels i.e., 96 3 X 3 kernel filters
- MAC multiply-accumulate
- the input “rec” is an image comprising 9 pixel values. Note that this number is provided just for simple explanation purpose, and does not limit the embodiments of this disclosure in any way. For each pixel value included in the input “rec,” 96 different kernel filters 602 is applied.
- a filtered value corresponding to the pixel value a22 can be calculated as follows: an x wn + ai2 X W12 + ai3 X W13 + a21 X W21 + a22 X W22 + a23 X W23 + a31 X W31 + a32 X W32 + a33 X W33.
- the outputs of the first layers 452-458 are provided to a second layer 462 of the NN filter 230/330.
- the first operation (the operation performed by the fusing unit) of the second layer 462 is a 1 x 1 convolution that is followed by a second operation (the operation performed by the transitioning unit) of the second layer 462 which is a 3 X 3 convolution of reduced scale.
- the number of MAC operations for the second operation of the second layer 462 may be calculated as follows: For the second operation of the second layer 462, the number of inputs (i.e., the number of outputs from the first operation of the second layer 462) is 96, the number of filter coefficients is 9 (since 3 x 3 kernel filter is used in the 3 x 3 convolution layer), and the number of outputs is 96.
- all inputs e.g., “rec,” “pred,” “bs,” and “qp” are given the same level of importance. But the different inputs may not be equally important.
- the input “rec” corresponds to pixel values of a reconstructed image. Since this input is the input that needs to be improved (meaning that this input is the focus of the filtering process performed by the NN filter 230/330), it makes sense to put more emphasis on this input as compared to other inputs during the filtering process.
- different levels of importance may be assigned to different inputs such that different numbers of MAC operations are performed for different inputs. More specifically, in some embodiments, more importance may be given to the inputs that are more important to the end result of the filtering process by configuring a higher number of MAC operations for those important input(s) and a lower number of MAC operations for those less important input(s).
- different inputs are assigned to different levels of importance by using different numbers of filtering channels for the different inputs.
- the number of filtering channels applied to the input “rec” (the most important input from among the four inputs) can be increased from 96 to 192, thereby putting a greater emphasis on the input “rec.”
- the number of filtering channels applied to the input “pred” may be reduced from 96 to 48, and the number of filtering channels applied to each of the input “bs” and the input “qp” may be reduced from 96 to 24.
- the total number of the MAC operations performed by the head of the NN filter 230/330 i.e., the top portion of the NN filter 230/330 shown in FIG.
- the change of the numbers of filtering channels applied to the different inputs may result in a bigger change on the next stage — the second layer 462 of the NN filter 230/330.
- the number of the inputs i.e., the number of the input channels
- the total number of MAC operations performed by the head part of the NN filter 230/330 has decreased from 61056 MAC operations to 50976 MAC operations — a reduction of 16.5%.
- the increased focus on the important reconstruction input leads to slightly increasing compression efficiency by -0.03%.
- the number of filtering channels may be changed to 192, 24, 12, and 12 for the inputs “rec,” “pred,” “bs,” and “qp,” respectively.
- changing the numbers of filtering channels used in the head part of the NN filter 230/330 gives a reduction of 4% in overall kMACs/pixel for the entire model.
- the number of channels between the fusing and transitioning layers may be reduced from 96 to 48. This leads to a total reduction of 9% kMACs/pixel for the model, and a BD-rate penalty of only +0.03%.
- the NN filter 230/330 is an in-loop filter, meaning its output can be used to predict future pictures in the video.
- a similar or identical neural network can be used as a post filter instead, for filtering pictures after they have been used for prediction.
- a different set of inputs may be provided to the NN filter 230/330. More specifically, in some embodiments, instead of the four inputs (“rec,” “pred,” “bs,” and “qp”), additional inputs such as block size, motion vectors, and/or prediction mode may be provided. In other embodiments, instead of some of the inputs “pred,” “bs,”, and “qp,” any one or more additional inputs may be provided. In the above discussed embodiments, each of these additional or alternative inputs may also have a reduced number of channels compared to the reconstructed picture input.
- the first layers of the NN filter 230/330 may receive five inputs - the four inputs shown in FIG. 4 and the fifth input identifying a block type (I/P/B - intra coded/uni- predicted/bi-predicted) where 192 filtering channels are used for the input “rec,” 24 filtering channels are used for the input “pred,” and 12 filtering channels are used for the remaining three inputs.
- a block type I/P/B - intra coded/uni- predicted/bi-predicted
- the size of the kernel filter used for filtering may also be changed. For example, instead of using a 3 X 3 kernel filter for the input “rec,” a first size of a kernel filter (e.g., 5 x 5) may be used for filtering the input “rec” while a second size of a kernel filter (3 x 3) is used for filtering other inputs where the first size is larger than the second size.
- a first size of a kernel filter e.g., 5 x 5
- a second size of a kernel filter 3 x 3
- the first layer 452 for filtering the input “rec” may use kernel filters having different sizes to filter the input “rec.” For example, in case there are 196 filtering channels in the first layer 452, the first 96 filtering channels in the 196 filtering channels may use kernel filters each having a first size (e.g., 5 X 5), but the remaining filtering channels in the 196 filtering channels may use kernel filters each having a second size (3 x 3) where the first size and the second size are different. In some embodiments, the first size is larger than the second size.
- more emphasis may be placed on some input (e.g., input “rec”) by including more than one convolution layer in the first layer (e.g., 452).
- the first layer 452 includes a single 3 x 3 convolution layer followed by a single PreLU
- the first layer 452 includes multiple 3 x 3 convolution layers and multiple PreLUs. More specifically, in such example, the first layer 452 may include a first 3 x 3 convolution layer followed by a first PreLU followed by a second 3 x 3 convolution layer followed by a second PreLU.
- more emphasis may be placed on some input (e.g., input “rec”) by increasing the number of bits for the kernel filter(s).
- a first number of bits e.g., 14
- filter weights e.g., Wn, W12, . . . shown in FIG. 6
- a second number of bits e.g., 7
- the first number is greater than the second number.
- the input “rec” corresponds to pixel values of a reconstructed luma picture or pixel values of a reconstructed chroma picture.
- the input “rec” corresponds to both the pixel values of the reconstructed luma picture and the pixel values of the reconstructed chroma picture.
- different emphasis may be placed on the pixel values of the reconstructed luma picture and the pixel values of the reconstructed chroma picture.
- the NN filter 230/330 is used for predicting chroma samples, more emphasis may be placed on the pixel values of the reconstructed chroma samples.
- the aforementioned techniques e.g., increasing a number of filtering channels) may be used for placing more emphasis on pixel values of the reconstructed chroma samples.
- some embodiments described above are related to increasing, for a particular input (e.g., input “rec”), the number of filtering channels, the size of a kernel filter, and/or the number of bits used for indicating filter weights of a kernel filter and/or using additional convolution layers while decreasing or maintaining, for other inputs, the number of filtering channels, the size of a kernel filter, the number of bits used for indicating filter weights of a kernel filter, and/or the number of convolution layers.
- FIG. 7 shows a process 700 for encoding or decoding a video, according to some embodiments.
- FIG. 7 begins with step s702.
- Step s702 comprises obtaining values of components of reconstructed samples.
- Step s704 comprises obtaining first additional input data.
- Step s706 comprises providing the obtained values of the components of the reconstructed samples to a first group of one or more convolution layers, thereby generating an output of the first group of convolution layers.
- Step s708 comprises providing the obtained first additional input data to a second group of one or more convolution layers, thereby generating an output of the second group of convolution layers.
- Step s710 comprises encoding or decoding the video based on the output of the first group of convolution layers and the output of the second group of convolution layers.
- the first group of convolution layers and the second group of convolution layers are different with respect to a number of channels, a size of a kernel filter, and/or a number of convolution layers.
- process 700 comprises combining the output of the first group of convolution layers and the output of the second group of convolution layers, thereby generating a combined output; providing the combined output to a third group of one or more convolution layers, thereby generating an output of the third group of convolution layers, wherein the video is encoded or decoded based on the output of the third group of convolution layers.
- the first additional input data is any one of values of components of predicted samples, partitional information indicating how components of samples are partitioned, block boundary strength information indicating strength of a filtering applied to a boundary of components of samples, values of quantization parameters, block size information indicating a block size, motion vector information indicating motion vectors, prediction mode information indicating a prediction mode, and/or block type information indicating a block type.
- a number of channels included in the first group of convolution layers is more than twice of a number of channels included in the second group of convolution layers.
- the number of channels included in the first group of convolution layers is 192, and the number of channels included in the second group of convolution layers is 48, 24, or 12.
- process 700 comprises obtaining second additional input data; and providing the second additional input data to a fourth group of one or more convolution layers, thereby generating an output of the fourth group of convolution layers, wherein the video is encoded or decoded based on the output of the fourth group of convolution layers, the first group of convolution layers and the fourth group of convolution layers are different with respect to a number of channels, a size of a kernel filter, and/or a number of convolution layers, and the second group of convolution layers and the fourth group of convolution layers are different with respect to a number of channels, a size of a kernel filter, and/or a number of convolution layers.
- the number of channels included in the second group of convolution layers is 48 or 24, and a number of channels included in the fourth group of convolution layers is 24 or 12.
- a size of a kernel filter for the first group of convolution layers is different from a size of a kernel filter for the second group of convolution layers.
- the size of the kernel filter for first group of convolution layers is 5 x 5
- the size of the kernel filter for the second group of convolution layers is 3 x 3.
- a convolution layer of the first group of convolution layers comprises a set of channels, a first subset of channels included in the set of channels has a kernel filter having a first size, a second subset of channels included in the set of channels has a kernel filter having a second size, and the first size and the second size are different.
- the size of the kernel filter of the first subset of channels is 5 x 5
- the size of the kernel filter of the second subset of channels is 3 x 3.
- the first group of convolution layers comprises a first number of convolution layers
- the second group of convolution layers comprises a second number of convolution layers
- the first number is greater than the second number
- the first number is 2 and the second number is 1.
- the first group of convolution layers includes a first convolution layer and a second convolution layer, the first convolution layer has a kernel filter having a first size, the second convolution layer has a kernel filter having a second size, and the first size and the second size are different.
- the first size is 5 x 5
- the second size is 3 x 3.
- the first group of convolution layers has a kernel filter having a first plurality of filter values
- the second group of convolution layers has a kernel filter having a second plurality of filter values
- a number of bits of each filter value included in the first plurality of filter values is greater than a number of bits of each filter value included in the second plurality of filter values.
- the number of bits of each filter value included in the first plurality of filter values is 14 bits, and the number of bits of each filter value included in the second plurality of filter values is 7 bits.
- the reconstructed samples are one of reconstructed luma samples and reconstructed chroma samples.
- Process 700 may comprise obtaining values of components of another one of the reconstructed luma samples and the reconstructed chroma samples; providing to a fifth group of one or more convolution layers the obtained values of the components of said another one of the reconstructed luma samples and the reconstructed chroma samples; and encoding or decoding the video based on the output of the fifth group of convolution layers, wherein the first group of convolution layers and the fifth group of convolution layers are different with respect to a number of channels, a size of a kernel filter, and/or a number of convolution layers.
- FIG. 8 is a block diagram of an apparatus 800 for implementing the encoder 112, the decoder 114, or a component included in the encoder 112 or the decoder 114 (e.g., the NN filter 280 or 330), according to some embodiments.
- apparatus 800 When apparatus 800 implements a decoder, apparatus 800 may be referred to as a “decoding apparatus 800,” and when apparatus 800 implements an encoder, apparatus 800 may be referred to as an “encoding apparatus 800.” As shown in FIG.
- apparatus 800 may comprise: processing circuitry (PC) 802, which may include one or more processors (P) 855 (e.g., a general purpose microprocessor and/or one or more other processors, such as an application specific integrated circuit (ASIC), field-programmable gate arrays (FPGAs), and the like), which processors may be co-located in a single housing or in a single data center or may be geographically distributed (i.e., apparatus 800 may be a distributed computing apparatus); at least one network interface 848 comprising a transmitter (Tx) 845 and a receiver (Rx) 847 for enabling apparatus 800 to transmit data to and receive data from other nodes connected to a network 110 (e.g., an Internet Protocol (IP) network) to which network interface 848 is connected (directly or indirectly) (e.g., network interface 848 may be wirelessly connected to the network 110, in which case network interface 848 is connected to an antenna arrangement); and a storage unit (a.k.a., “data storage system”) 808, which may include
- CPP 841 may be provided.
- CPP 841 includes a computer readable medium (CRM) 842 storing a computer program (CP) 843 comprising computer readable instructions (CRI) 844.
- CRM 842 may be a non-transitory computer readable medium, such as, magnetic media (e.g., a hard disk), optical media, memory devices (e.g., random access memory, flash memory), and the like.
- the CRI 844 of computer program 843 is configured such that when executed by PC 802, the CRI causes apparatus 800 to perform steps described herein (e.g., steps described herein with reference to the flow charts).
- apparatus 800 may be configured to perform steps described herein without the need for code. That is, for example, PC 802 may consist merely of one or more ASICs. Hence, the features of the embodiments described herein may be implemented in hardware and/or software.
- a method (700) for encoding or decoding a video comprising: obtaining (s702) values of components of reconstructed samples; obtaining (s704) first additional input data; providing (s706) the obtained values of the components of the reconstructed samples to a first group of one or more convolution layers, thereby generating an output of the first group of convolution layers; providing (s708) the obtained first additional input data to a second group of one or more convolution layers, thereby generating an output of the second group of convolution layers; and encoding or decoding (s710) the video based on the output of the first group of convolution layers and the output of the second group of convolution layers, wherein the first group of convolution layers and the second group of convolution layers are different with respect to a number of channels, a size of a kernel filter, and/or a number of convolution layers.
- Al-1 The method of embodiment Al, the method comprising: combining the output of the first group of convolution layers and the output of the second group of convolution layers, thereby generating a combined output; providing the combined output to a third group of one or more convolution layers, thereby generating an output of the third group of convolution layers, wherein the video is encoded or decoded based on the output of the third group of convolution layers.
- the first additional input data is any one of values of components of predicted samples, partitional information indicating how components of samples are partitioned, block boundary strength information indicating strength of a filtering applied to a boundary of components of samples, values of quantization parameters, block size information indicating a block size, motion vector information indicating motion vectors, prediction mode information indicating a prediction mode, and/or block type information indicating a block type.
- A3 The method of any one of embodiments Al-Al-1, wherein a number of channels included in the first group of convolution layers is more than twice of a number of channels included in the second group of convolution layers.
- A4. The method of embodiment A3, wherein the number of channels included in the first group of convolution layers is 192, and the number of channels included in the second group of convolution layers is 48, 24, or 12.
- A5. The method of any one of embodiments A1-A4, the method comprising: obtaining second additional input data; and providing the second additional input data to a third group of one or more convolution layers, thereby generating an output of the third group of convolution layers, wherein the video is encoded or decoded based on the output of the third group of convolution layers, the first group of convolution layers and the third group of convolution layers are different with respect to a number of channels, a size of a kernel filter, and/or a number of convolution layers, and the second group of convolution layers and the third group of convolution layers are different with respect to a number of channels, a size of a kernel filter, and/or a number of convolution layers.
- A7 The method of any one of embodiments A1-A6, wherein a size of a kernel filter for the first group of convolution layers is different from a size of a kernel filter for the second group of convolution layers.
- A8 The method of embodiment A7, wherein the size of the kernel filter for first group of convolution layers is 5 x 5, and the size of the kernel filter for the second group of convolution layers is 3 x 3.
- A9 The method of any one of embodiments A1-A8, wherein a convolution layer of the first group of convolution layers comprises a set of channels, a first subset of channels included in the set of channels has a kernel filter having a first size, a second subset of channels included in the set of channels has a kernel filter having a second size, and the first size and the second size are different.
- Al l The method of any one of embodiments A1-A10, wherein the first group of convolution layers comprises a first number of convolution layers, the second group of convolution layers comprises a second number of convolution layers, and the first number is greater than the second number.
- A13 The method of embodiment Al 1 or A12, wherein the first group of convolution layers includes a first convolution layer and a second convolution layer, the first convolution layer has a kernel filter having a first size, the second convolution layer has a kernel filter having a second size, and the first size and the second size are different.
- A14 The method of embodiment A13, wherein the first size is 5 x 5, and the second size is 3 x 3.
- A15 The method of any one of embodiments A1-A14, wherein the first group of convolution layers has a kernel filter having a first plurality of filter values, the second group of convolution layers has a kernel filter having a second plurality of filter values, and a number of bits of each filter value included in the first plurality of filter values is greater than a number of bits of each filter value included in the second plurality of filter values.
- Al 7 The method of any one of embodiments Al -Al 6, wherein the reconstructed samples are one of reconstructed luma samples and reconstructed chroma samples, the method comprises: obtaining values of components of another one of the reconstructed luma samples and the reconstructed chroma samples; providing to a third group of one or more convolution layers the obtained values of the components of said another one of the reconstructed luma samples and the reconstructed chroma samples; and encoding or decoding the video based on the output of the third group of convolution layers, and the first group of convolution layers and the third group of convolution layers are different with respect to a number of channels, a size of a kernel filter, and/or a number of convolution layers.
- a computer program (800) comprising instructions (844) which when executed by processing circuitry (802) cause the processing circuitry to perform the method of any one of embodiments Al -Al 7.
- An apparatus (800) for encoding or decoding a video the apparatus being configured to: obtain (s702) values of components of reconstructed samples; obtain (s704) first additional input data; provide (s706) the obtained values of the components of the reconstructed samples to a first group of one or more convolution layers, thereby generating an output of the first group of convolution layers; provide (s708) the obtained first additional input data to a second group of one or more convolution layers, thereby generating an output of the second group of convolution layers; and encode or decode (s710) the video based on the output of the first group of convolution layers and the output of the second group of convolution layers, wherein the first group of convolution layers and the second group of convolution layers are different with respect to a number of channels, a size of a kernel filter, and/or a number of convolution layers.
- An apparatus (800) comprising: a processing circuitry (802); and a memory (841), said memory containing instructions executable by said processing circuitry, whereby the apparatus is operative to perform the method of any one of embodiments A1-A17.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
Description
Claims
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US202363436723P | 2023-01-03 | 2023-01-03 | |
| PCT/SE2023/051220 WO2024147752A1 (en) | 2023-01-03 | 2023-12-04 | Reducing complexity of video encoding and decoding |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| EP4646834A1 true EP4646834A1 (en) | 2025-11-12 |
| EP4646834A4 EP4646834A4 (en) | 2026-04-29 |
Family
ID=91804186
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| EP23915048.5A Pending EP4646834A4 (en) | 2023-01-03 | 2023-12-04 | REDUCING THE COMPLEXITY OF VIDEO ENCODING AND DECODING |
Country Status (4)
| Country | Link |
|---|---|
| EP (1) | EP4646834A4 (en) |
| JP (1) | JP2025542460A (en) |
| CN (1) | CN120391056A (en) |
| WO (1) | WO2024147752A1 (en) |
Family Cites Families (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN108875904A (en) * | 2018-04-04 | 2018-11-23 | 北京迈格威科技有限公司 | Image processing method, image processing apparatus and computer readable storage medium |
| US10282864B1 (en) * | 2018-09-17 | 2019-05-07 | StradVision, Inc. | Method and device for encoding image and testing method and testing device using the same |
| CN109285112A (en) * | 2018-09-25 | 2019-01-29 | 京东方科技集团股份有限公司 | Image processing method and image processing device based on neural network |
| US20200395117A1 (en) * | 2019-06-14 | 2020-12-17 | Cycle Clarity, LLC | Adaptive image processing method and system in assisted reproductive technologies |
| CN110647893B (en) * | 2019-09-20 | 2022-04-05 | 北京地平线机器人技术研发有限公司 | Target object identification method, device, storage medium and equipment |
| US11477464B2 (en) * | 2020-09-16 | 2022-10-18 | Qualcomm Incorporated | End-to-end neural network based video coding |
| US12058321B2 (en) * | 2020-12-16 | 2024-08-06 | Tencent America LLC | Method and apparatus for video coding |
| WO2022139616A1 (en) * | 2020-12-24 | 2022-06-30 | Huawei Technologies Co., Ltd. | Decoding with signaling of feature map data |
-
2023
- 2023-12-04 JP JP2025538215A patent/JP2025542460A/en active Pending
- 2023-12-04 EP EP23915048.5A patent/EP4646834A4/en active Pending
- 2023-12-04 WO PCT/SE2023/051220 patent/WO2024147752A1/en not_active Ceased
- 2023-12-04 CN CN202380090182.3A patent/CN120391056A/en active Pending
Also Published As
| Publication number | Publication date |
|---|---|
| WO2024147752A1 (en) | 2024-07-11 |
| EP4646834A4 (en) | 2026-04-29 |
| JP2025542460A (en) | 2025-12-25 |
| CN120391056A (en) | 2025-07-29 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US12192488B2 (en) | Video encoder, video decoder, and corresponding encoding and decoding methods | |
| CN108353175B (en) | Method and apparatus for processing video signal using coefficient-induced prediction | |
| EP3649777B1 (en) | Division-free bilateral filter | |
| US10638132B2 (en) | Method for encoding and decoding video signal, and apparatus therefor | |
| JP2023519818A (en) | Method and apparatus for video filtering | |
| JP7848270B2 (en) | Methods, apparatus, and programs for boundary processing in video coding. | |
| US9641847B2 (en) | Method and device for classifying samples of an image | |
| KR102331933B1 (en) | Method and apparatus for processing a video signal using coefficient derived reconstruction | |
| US20180048890A1 (en) | Method and device for encoding and decoding video signal by using improved prediction filter | |
| US20250254298A1 (en) | Filtering for video encoding and decoding | |
| CN113170121A (en) | Adaptive filtering of video streams for bit rate reduction | |
| EP4320861A1 (en) | Video coding with dynamic groups of pictures | |
| EP4646834A1 (en) | Reducing complexity of video encoding and decoding | |
| US20250218050A1 (en) | Filtering for video encoding and decoding | |
| US11647228B2 (en) | Method and apparatus for encoding and decoding video signal using transform domain prediction for prediction unit partition | |
| JP2025522408A (en) | Method and apparatus for encoding and decoding images or videos - Patents.com | |
| US20260019633A1 (en) | Video encoding method and apparatus, video decoding method and apparatus, devices, system, and storage medium | |
| WO2024215237A1 (en) | Position dependent filtering | |
| US20250299375A1 (en) | Resnet based in-loop filter for video coding with integer transformer modules | |
| WO2025214988A1 (en) | Early patch cropping for video encoding and decoding | |
| WO2024008815A2 (en) | Generating encoded video data and decoded video data | |
| WO2025098769A1 (en) | Joint adaptive in-loop and output filter | |
| HK40090348B (en) | Method and device for filtering video, and storage medium | |
| HK40090348A (en) | Method and device for filtering video, and storage medium | |
| Amiri | Bilateral and adaptive loop filter implementations in 3D-high efficiency video coding standard |
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: 20250703 |
|
| 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 ME MK MT NL NO PL PT RO RS SE SI SK SM TR |
|
| DAV | Request for validation of the european patent (deleted) | ||
| DAX | Request for extension of the european patent (deleted) | ||
| A4 | Supplementary search report drawn up and despatched |
Effective date: 20260327 |
|
| RIC1 | Information provided on ipc code assigned before grant |
Ipc: H04N 19/117 20140101AFI20260323BHEP Ipc: H04N 19/82 20140101ALI20260323BHEP Ipc: G06N 3/045 20230101ALI20260323BHEP Ipc: H04N 19/42 20140101ALI20260323BHEP Ipc: H04N 19/176 20140101ALI20260323BHEP |