WO2022177382A1 - Ai를 이용하는 영상의 부호화 및 복호화 장치 및 이에 의한 영상의 부호화 및 복호화 방법 - Google Patents
Ai를 이용하는 영상의 부호화 및 복호화 장치 및 이에 의한 영상의 부호화 및 복호화 방법 Download PDFInfo
- Publication number
- WO2022177382A1 WO2022177382A1 PCT/KR2022/002486 KR2022002486W WO2022177382A1 WO 2022177382 A1 WO2022177382 A1 WO 2022177382A1 KR 2022002486 W KR2022002486 W KR 2022002486W WO 2022177382 A1 WO2022177382 A1 WO 2022177382A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- current
- neural network
- optical flow
- feature data
- image
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 98
- 230000003287 optical effect Effects 0.000 claims abstract description 299
- 238000013528 artificial neural network Methods 0.000 claims abstract description 279
- 238000007781 pre-processing Methods 0.000 claims abstract description 215
- 238000012549 training Methods 0.000 claims description 91
- 238000013139 quantization Methods 0.000 claims description 8
- 230000008569 process Effects 0.000 description 65
- 238000012545 processing Methods 0.000 description 37
- 238000010586 diagram Methods 0.000 description 30
- 230000000875 corresponding effect Effects 0.000 description 28
- 230000004913 activation Effects 0.000 description 17
- 230000006870 function Effects 0.000 description 15
- 238000013473 artificial intelligence Methods 0.000 description 10
- 239000013598 vector Substances 0.000 description 10
- 230000008859 change Effects 0.000 description 7
- 238000004590 computer program Methods 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 3
- 238000013500 data storage Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000002123 temporal effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 208000037170 Delayed Emergence from Anesthesia Diseases 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000013527 convolutional neural network Methods 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 210000003792 cranial nerve Anatomy 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000000306 recurrent effect Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
-
- 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/13—Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
-
- 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/186—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 a colour or a chrominance component
-
- 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/90—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
- H04N19/91—Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
Definitions
- the present disclosure relates to encoding and decoding of an image. More specifically, the present disclosure relates to a technique for encoding and decoding an image using artificial intelligence (AI), for example, a neural network.
- AI artificial intelligence
- codecs such as H.264 Advanced Video Coding (AVC) and High Efficiency Video Coding (HEVC)
- AVC Advanced Video Coding
- HEVC High Efficiency Video Coding
- Intra prediction is a method of compressing an image by removing spatial redundancy within an image
- inter prediction is a method of compressing an image by removing temporal redundancy between images.
- motion estimation coding predicts blocks of a current image using a reference image.
- a reference block most similar to the current block may be searched for in a predetermined search range using a predetermined evaluation function.
- a current block is predicted based on a reference block, and a prediction block generated as a result of prediction is subtracted from the current block to generate and encode a residual block.
- motion vectors of previously coded blocks may be used as a prediction motion vector of the current block.
- a differential motion vector that is a difference between the motion vector of the current block and the predicted motion vector is signaled to the decoder side through a predetermined method.
- An image encoding and decoding apparatus and an image encoding and decoding method according to an embodiment have an object of more accurately reconstructing an optical flow and residual data of an image.
- an apparatus for encoding and decoding an image and a method for encoding and decoding an image thereby reduce the size of a bitstream, which is a result of encoding an image, and improve image restoration performance.
- An image decoding method using AI includes: acquiring feature data of a current optical flow and feature data of current residual data from a bitstream corresponding to a current image; obtaining the current optical flow by applying the feature data of the current optical flow to a first decoder based on a neural network; applying at least one of the feature data of the current optical flow and the feature data of a previous optical flow to a first preprocessing neural network; obtaining a first concatenation result by concatenating the feature data of the current residual data and the feature data obtained from the first preprocessing neural network; obtaining the current residual data by applying the first concatenation result to a second decoder based on a neural network; and reconstructing the current image using a current prediction image generated from a previous reconstructed image based on the current optical flow and the current residual data.
- An apparatus for encoding and decoding an image and a method for encoding and decoding an image according to an exemplary embodiment may more accurately reconstruct an optical flow and residual data of an image.
- the apparatus for encoding and decoding an image and a method for encoding and decoding an image according to an embodiment may reduce the size of a bitstream that is a result of encoding an image and improve image restoration performance.
- FIG. 1 is a diagram illustrating predictive encoding and predictive decoding of an image based on AI, according to an embodiment.
- FIG. 2 is a diagram illustrating successive images, an optical flow between successive images, and residual data between successive images, according to an embodiment.
- FIG. 3 is a diagram illustrating a configuration of an image decoding apparatus according to an embodiment.
- FIG. 4 is a diagram illustrating a configuration of an acquisition unit illustrated in FIG. 3 , according to an embodiment.
- FIG. 5 is a diagram illustrating a configuration of a prediction decoding unit shown in FIG. 3 , according to an embodiment.
- FIG. 6 is a diagram for explaining a process of reconstructing current residual data using a first preprocessing neural network according to an embodiment.
- FIG. 7 is a diagram for explaining a process of restoring a current optical flow using a second preprocessing neural network according to an embodiment.
- FIG. 8 is a diagram for explaining a process of restoring a current optical flow using a third preprocessing neural network according to an embodiment.
- FIG. 9 is a diagram for explaining a process of reconstructing current residual data using a fourth preprocessing neural network according to an embodiment.
- FIG. 10 is a diagram for explaining a process of reconstructing a current optical flow and current residual data using a first pre-processing neural network, a second pre-processing neural network, a third pre-processing neural network, and a fourth pre-processing neural network, according to an embodiment.
- FIG. 11 is a flowchart of an image decoding method according to an embodiment.
- FIG. 12 is a diagram illustrating a configuration of an image encoding apparatus according to an embodiment.
- FIG. 13 is a diagram illustrating a configuration of a predictive encoder shown in FIG. 12 according to an embodiment.
- FIG. 14 is a diagram illustrating a configuration of a generator shown in FIG. 12 , according to an embodiment.
- 15 is a flowchart of an image encoding method according to an embodiment.
- 16 is a diagram illustrating a structure of a neural network according to an embodiment.
- FIG. 17 is a diagram for explaining a convolution operation in the convolution layer shown in FIG. 16 , according to an embodiment.
- 18 is a diagram for explaining a method of training a first decoder, a second decoder, a first encoder, a second encoder, and a preprocessing neural network, according to an embodiment.
- 19 is a diagram for explaining a training process of a first decoder, a second decoder, a first encoder, a second encoder, and a preprocessing neural network by a training apparatus according to an embodiment.
- An image decoding method using AI includes: acquiring feature data of a current optical flow and feature data of current residual data from a bitstream corresponding to a current image; obtaining the current optical flow by applying the feature data of the current optical flow to a first decoder based on a neural network; applying at least one of the feature data of the current optical flow and the feature data of a previous optical flow to a first preprocessing neural network; obtaining a first concatenation result by concatenating the feature data of the current residual data and the feature data obtained from the first preprocessing neural network; obtaining the current residual data by applying the first concatenation result to a second decoder based on a neural network; and reconstructing the current image using a current prediction image generated from a previous reconstructed image based on the current optical flow and the current residual data.
- the acquiring of the current optical flow may include: applying feature data of the previous optical flow to a second preprocessing neural network; obtaining a second concatenation result by concatenating the feature data of the current optical flow and the feature data obtained from the second preprocessing neural network; and applying the second concatenation result to the first decoder based on the neural network to obtain the current optical flow.
- the acquiring of the current optical flow may include: applying feature data of previous residual data to a third preprocessing neural network; obtaining a third concatenation result by concatenating the feature data of the current optical flow and the feature data obtained from the third preprocessing neural network; and obtaining the current optical flow by applying the third concatenation result to the first decoder based on the neural network.
- the acquiring of the current residual data may include: applying feature data of previous residual data to a fourth preprocessing neural network; obtaining a fourth concatenation result by concatenating the feature data obtained from the first preprocessing neural network, the feature data obtained from the fourth preprocessing neural network, and the feature data of the current residual data; and applying the fourth concatenation result to the neural network-based second decoder to obtain the current residual data.
- the reconstructing the current image may include generating the current prediction image by warping the previous reconstructed image according to the current optical flow.
- the feature data of the current optical flow and the feature data of the current residual data may be obtained by performing entropy decoding and inverse quantization on the bitstream.
- At least one of the first neural network-based decoder, the neural network-based second decoder, and the first preprocessing neural network may include a current training image and a current reconstructed image corresponding to the current training image. training image) corresponding to the first loss information, second loss information corresponding to the entropy of the feature data of the optical flow of the current training image, and the entropy of the feature data of the residual data of the current training image It can be trained based on the third loss information.
- An apparatus for decoding an image using AI includes: a bitstream acquirer configured to acquire a bitstream corresponding to a current image; and acquiring the feature data of the current optical flow and the feature data of the current residual data from the bitstream, and applying the feature data of the current optical flow to a first decoder based on a neural network to obtain the current optical flow, and the current optical flow Applying at least one of the feature data of the flow and the feature data of the previous optical flow to the first pre-processing neural network, and concatenating the feature data obtained from the first pre-processing neural network and the feature data for the current residual data to obtain a first concatenation result Obtaining, applying the first concatenation result to a second decoder based on a neural network to obtain the current residual data, and using the current residual data and the current prediction image generated from the previous reconstructed image based on the current optical flow It may include a predictive decoder for reconstructing the current image.
- An image encoding method using AI includes: obtaining feature data of a current optical flow by applying a current image and a previous reconstructed image to a first encoder based on a neural network; acquiring the current optical flow by applying the feature data of the current optical flow to a first decoder based on a neural network; generating a current prediction image based on the current optical flow and the previous reconstructed image; obtaining current residual data between the current image and the current prediction image; obtaining feature data of the current residual data by applying the current residual data to a neural network-based second encoder; and generating a bitstream based on the feature data of the current optical flow and the feature data of the current residual data.
- An image decoding method using AI includes: obtaining feature data of a current optical flow and feature data of current residual data from a bitstream corresponding to a current image; performing at least one of a first neural network preprocessing operation, a second neural network preprocessing operation, a third neural network preprocessing operation, and a fourth neural network preprocessing operation; obtaining a first concatenation result by concatenating the feature data of the current optical flow with at least one of a result of the second neural network preprocessing operation and a result of the third neural network preprocessing operation; obtaining a current optical flow by applying the first concatenation result to a first neural network-based decoder; concatenating the feature data of the current residual data with at least one of a result of the first neural network preprocessing operation and a result of the fourth neural network preprocessing operation to obtain a second concatenated result; obtaining the current residual data by applying the second concatenation result to a neural network-based second decoder; and warping
- the expression “at least one of a, b or c” means “a”, “b”, “c”, “a and b”, “a and c”, “b and c”, “a” , both b and c", or variations thereof.
- a component when referred to as “connected” or “connected” with another component, the component may be directly connected or directly connected to the other component, but in particular It should be understood that, unless there is a description to the contrary, it may be connected or connected through another element in the middle.
- circuits may be implemented, for example, in one or more semiconductor chips, or on a substrate support such as a printed circuit board or the like.
- Circuitry included in a block may be implemented by dedicated hardware or processors (eg, one or more programmed microprocessors and associated circuitry), or a combination of dedicated hardware performing some functions of the block and a processor performing other functions of the block. can be implemented by Each block of an embodiment may be physically separated into two or more interacting individual blocks. Likewise, blocks of an embodiment may be physically combined into more complex blocks.
- components expressed as ' ⁇ part (unit)', 'module', etc. are two or more components combined into one component, or two or more components for each more subdivided function. may be differentiated into.
- each of the components to be described below may additionally perform some or all of the functions of other components in addition to the main functions they are responsible for, and some of the main functions of each component may be different It goes without saying that it may be performed exclusively by the component.
- an 'image' may indicate a still image, a moving picture composed of a plurality of continuous still images (or frames), or a video.
- a 'neural network' may be a representative example of an artificial neural network model simulating a cranial nerve, and embodiments are not limited to an artificial neural network model using a specific algorithm.
- a neural network may also be referred to as a deep neural network.
- a 'parameter' may be a value used in a calculation process of each layer constituting the neural network, for example, may be used when an input value is applied to a predetermined calculation expression.
- the parameter may be a value set as a result of training, and may be updated through separate training data as needed.
- 'feature data' may mean data obtained by processing input data by a neural network-based encoder.
- the feature data may be one-dimensional or two-dimensional data including several samples.
- Feature data may be referred to as a latent representation.
- the feature data may indicate features latent in data output by a decoder, which will be described later.
- 'current image' may mean an image that is a current processing target
- 'current optical flow' may mean an optical flow acquired for the current image
- 'current residual data' is It may mean residual data obtained for
- 'previous image' may mean an image to be processed before the current image
- 'previous optical flow' may mean an optical flow acquired for a previous image
- 'previous residual data' It may mean residual data obtained with respect to an image.
- a 'sample' may be data allocated to a sampling position in an image, a feature map, or feature data, and may mean data to be processed. For example, it may be a pixel value in a frame in a spatial domain.
- 1 is a diagram illustrating predictive encoding and predictive decoding of an image based on AI.
- the first encoder 110 , the second encoder 130 , the first decoder 150 , and the second decoder (170) is used.
- the first encoder 110 , the second encoder 130 , the first decoder 150 , and the second decoder 170 are implemented as a neural network.
- Inter prediction is a process of encoding/decoding the current image (x i ) using temporal redundancy between the current image (x i ) and the previous reconstructed image (y i-1 ), and blocks in the current image (x i ) or
- a position difference (or motion vector) between the samples and reference blocks or reference samples in the previous reconstructed image y i-1 is used for encoding and decoding of the current image x i .
- This position difference may be referred to as an optical flow.
- An optical flow may be defined as a set of motion vectors corresponding to samples or blocks in an image.
- the first encoder 110 and the first decoder 150 are used to obtain the current optical flow g i for the current image x i .
- the previous reconstructed image y i-1 and the current image x i are input to the first encoder 110 .
- the first encoder 110 processes the current image (x i ) and the previous reconstructed image (y i-1 ) according to parameters set as a result of training, and outputs feature data (w i ) for the current optical flow.
- the feature data w i for the current optical flow is input to the first decoder 150 .
- the first decoder 150 processes the input feature data w i according to parameters set as a result of training and outputs a current optical flow g i .
- the previous reconstructed image y i-1 is warped according to the current optical flow g i by, for example, the warping 190, and the current prediction image x' i is obtained as a result of the warping 190 .
- the warping 190 is a type of geometric deformation that moves the positions of samples in an image.
- the optical flow (g i ) indicating the relative positional relationship between samples in the previous reconstructed image (y i-1 ) and samples in the current image (x i ), for example, the previous reconstruction by warping 190 .
- a current prediction image (x′ i ) similar to the current image (x i ) is obtained. For example, if the sample located at (1, 1) in the previous reconstructed image (y i-1 ) is most similar to the sample located at (2, 1) in the current image (x i ), warping 190 is performed.
- the position of the sample located at (1, 1) in the previous reconstructed image y i-1 may be changed to (2, 1).
- Residual data r i may be obtained.
- current residual data r i may be obtained by subtracting sample values in the current prediction image x' i from sample values in the current image x i .
- the current residual data r i is input to the second encoder 130 .
- the second encoder 130 processes the current residual data (r i ) according to a parameter set as a result of training and outputs feature data ( vi ) for the current residual data.
- the feature data ( vi ) for the current residual data is input to the second decoder 170 .
- the second decoder 170 processes the input feature data ( vi) according to parameters set as a result of training and outputs current residual data (r' i ) .
- the current prediction image (x' i ) generated by warping by the warping 190 with respect to the previous reconstructed image (y i-1 ) and the current residual data (r' i ) are currently reconstructed through the combination.
- An image y i is acquired.
- the first decoder 150 processes the feature data w i for the current optical flow to output the current optical flow g i , and the second decoder 170 is currently By processing the feature data (v i ) of the residual data, the current residual data (r' i ) is output.
- the current residual data Only the feature data (v i ) for is used.
- other data eg, a previous optical flow, previous residual data, etc. to be described later
- the current image (x i ) can be included directly or indirectly, and the current optical flow by inputting other data including information on the current image (x i ) to the first decoder 150 and the second decoder 170 .
- Accurate restoration of (g i ) and the current residual data (r' i ) may be possible.
- the first optical flow 25 is obtained between the current image 23 and the first previous image 22
- the second optical flow 25 is obtained between the first previous image 22 and the second previous image 21 .
- 2 optical flows 24 are obtained.
- the first optical flow 25 and the second optical flow 24 shown in FIG. 2 are visualized according to magnitudes of samples included in the optical flow or magnitudes of motion vectors.
- the first optical flow 25 may be referred to as a current optical flow
- the second optical flow 24 may be referred to as a previous optical flow.
- First residual data 27 is obtained based on the current image 23 and the first previous image 22 , and second residual data ( 26) is obtained.
- first residual data 27 corresponding to a difference between an image obtained by processing (eg, warping) the first previous image 22 according to the first optical flow 25 and the current image 23
- second residual data 26 corresponding to a difference between an image obtained by processing (eg, warping) the second previous image 21 according to the second optical flow 24 and the first previous image 22 .
- first residual data 27 corresponding to a difference between an image obtained by processing (eg, warping) the first previous image 22 according to the first optical flow 25 and the current image 23
- second residual data 26 corresponding to a difference between an image obtained by processing (eg, warping) the second previous image 21 according to the second optical flow 24 and the first previous image 22 .
- the first residual data 27 may be referred to as current residual data, and the second residual data 26 may be referred to as previous residual data.
- the similarity between the first optical flow 25 , the second optical flow 24 , the first residual data 27 , and the second residual data 26 may be confirmed. For example, sample values in region A in the first optical flow 25 , region B in the second optical flow 24 , region C in the first residual data 27 , and region D in the second residual data 26 . You can see their similarities.
- the first optical flow 25 indicates to what extent and in which direction the positions of samples of the first previous image 22 are changed in the current image 23
- a large value in the first optical flow 25 A sample having a may have a high probability of having a large value even in the first residual data 27 .
- the value of the sample at a predetermined position in the first residual data 27 corresponds to a difference between the image generated as a result of processing the first previous image 22 and sample values at the same position in the current image 23 .
- samples at the same location have a high probability of being samples having different values due to the movement of an object in the first previous image 22 .
- the similarity between the first optical flow 25 and the second optical flow 24 can be predicted, and similarly, the first residual data 27 ) and the second residual data 26 can be predicted.
- the previous optical flow When using (eg, the second optical flow 24 ) and previous residual data (eg, the second residual data 26 ), accurate restoration of the current optical flow and the current residual data may be possible.
- FIG. 3 is a diagram illustrating a configuration of an image decoding apparatus 300 according to an exemplary embodiment.
- an image decoding apparatus 300 includes an acquirer 310 (eg, a bitstream acquirer) and a prediction decoder 330 .
- the acquisition unit 310 and the prediction decoding unit 330 may be implemented as a processor, and the acquisition unit 310 and the prediction decoding unit 330 may operate according to instructions stored in a memory.
- the acquisition unit 310 and the prediction decoding unit 330 are one element, for example, one It may be implemented through a processor.
- the acquisition unit 310 and the prediction decoding unit 330 may be implemented as a dedicated processor, and a general-purpose processor such as an application processor (AP), a central processing unit (CPU), or a graphic processing unit (GPU) and software. It may be implemented through a combination.
- the dedicated processor may include a memory for implementing an embodiment of the present disclosure or a memory processing unit for using an external memory.
- the acquirer 310 and the prediction decoder 330 may be configured with a plurality of processors. In this case, it may be implemented as a combination of dedicated processors, or may be implemented through a combination of software and a plurality of general-purpose processors such as an AP, CPU, or GPU.
- the acquisition unit 310 acquires a bitstream including an encoding result of the current image.
- the acquirer 310 may receive a bitstream transmitted through a network from an image encoding apparatus 1200, which will be described later.
- the acquisition unit 310 is a hard disk, a magnetic medium such as a floppy disk and magnetic tape, an optical recording medium such as CD-ROM and DVD, a magneto-optical medium such as a floppy disk (floptic disk)
- a bitstream may be obtained from a data storage medium including a magneto-optical medium or the like.
- the obtainer 310 parses the bitstream to obtain feature data of the current optical flow and feature data of the current residual data.
- the feature data of the current optical flow and the feature data of the current residual data may be obtained as a result of processing by the above-described neural network-based encoder.
- the obtaining unit 310 obtains a first bitstream corresponding to the feature data of the current optical flow and a second bitstream corresponding to the feature data of the current residual data, and obtains the first bitstream and the second bit Each stream may be parsed to obtain feature data of the current optical flow and feature data of the current residual data.
- the feature data of the current optical flow and the feature data of the current residual data are transmitted to the predictive decoding unit 330, and the predictive decoding unit 330 is applied to the current image using the feature data of the current optical flow and the feature data of the current residual data. Acquire a corresponding current reconstructed image.
- FIG. 4 is a diagram illustrating the configuration of the acquisition unit 310 shown in FIG. 3 .
- the acquisition unit 310 includes an entropy decoding unit 311 and an inverse quantization unit 313 .
- the entropy decoder 311 entropy-codes bins included in the bitstream to obtain quantized feature data of the current optical flow and quantized feature data of the current residual data.
- the inverse quantizer 313 inverse quantizes the quantized feature data of the current optical flow and the quantized feature data of the current residual data, respectively, to obtain the feature data of the current optical flow and the feature data of the current residual data.
- the obtaining unit 310 may further include an inverse transform unit.
- the inverse transform unit inversely transforms the feature data output from the inverse quantization unit 313 from the frequency domain to the spatial domain.
- the inverse transform unit converts the feature data output from the inverse quantizer 313 in the frequency domain. Inverse transform to the spatial domain.
- the acquisition unit 310 may not include the inverse quantization unit 313 . That is, the feature data of the current optical flow and the feature data of the current residual data may be obtained through processing by the entropy decoder 311 .
- the obtainer 310 may acquire feature data of the current optical flow and feature data of the current residual data by performing only inverse binarization on bins included in the bitstream. This is when the image encoding apparatus 1200 generates a bitstream by binarizing the characteristic data of the current optical flow and the characteristic data of the current residual data, that is, when the image encoding apparatus 1200 divides the characteristic data of the current optical flow and the current This may be performed for a case in which entropy encoding, transformation, and quantization are not applied to the feature data of the residual data.
- FIG. 5 is a diagram illustrating the configuration of the prediction decoding unit 330 shown in FIG. 3 .
- the prediction decoding unit 330 may include a preprocessing neural network 339 , a first decoder 331 , a second decoder 333 , a motion compensator 335 , and a combiner 337 . .
- the preprocessing neural network 339 , the first decoder 331 , and the second decoder 333 may be stored in a memory.
- the preprocessing neural network 339, the first decoder 331 and the second decoder 333 may be implemented as at least one dedicated processor for AI.
- the predictive decoding unit 330 may use a plurality of preprocessing neural networks.
- the feature data of the current optical flow output by the acquisition unit 310 is input to the first decoder 331 , and feature data of the current residual data is input to the second decoder 333 .
- the first decoder 331 or the second decoder 333 is entered as
- the feature data of the current optical flow and the current residual data are respectively performed by the first decoder 331 and the second decoder 333 .
- accurate restoration of the current optical flow and current residual data may be possible.
- the restoration performance may be improved compared to the case of using only the feature data of the current optical flow.
- the current optical flow obtained through the first decoder 331 is provided to the motion compensator 335 , and the current residual data obtained through the second decoder 333 is provided to the combiner 337 .
- the motion compensator 335 generates a current prediction image similar to the current image by processing the previously reconstructed image according to the current optical flow.
- the previously reconstructed image is an image reconstructed through decoding on a previous image that was a processing target before the current image is processed.
- the motion compensator 335 may warp a previously reconstructed image to generate a current prediction image. Warping for generation of a current prediction image is an example, and the motion compensator 335 may apply various image processing for changing positions of samples in a previously reconstructed image to the previously reconstructed image.
- the current prediction image generated by the motion compensator 335 is provided to the combiner 337 .
- the combiner 337 obtains a current reconstructed image by combining the current prediction image and the current residual data.
- the combiner 337 may obtain a current reconstructed image including sum values of sample values of the current prediction image and sample values of the current residual data.
- the current restored image may be used in the decoding process of the next image.
- FIG. 6 is a diagram for explaining a process of reconstructing current residual data using the first preprocessing neural network 600 according to an embodiment.
- the feature data of the current optical flow is input to the first decoder 331 , and the current optical flow is obtained as a result of processing by the first decoder 331 .
- At least one of the feature data of the current optical flow or the feature data of the previous optical flow is input to the first preprocessing neural network 600 .
- the first preprocessing neural network 600 processes the input feature data based on parameters set according to training.
- the feature data obtained through processing by the first preprocessing neural network 600 is inputted to the second decoder 333 after being concatenated with the feature data of the current residual data.
- concatenation may refer to a process of combining two or more feature data in a channel direction.
- the second decoder 333 processes the input feature data and outputs current residual data.
- At least one of the feature data of the current optical flow or the feature data of the previous optical flow is used to reconstruct the current residual data. That is, the restoration performance of the current residual data may be improved by using at least one of the feature data of the current optical flow and the feature data of the previous optical flow that is related to the current residual data.
- the current residual data is obtained from the current image and the current prediction image
- the current optical flow is obtained from the current image and the previous reconstructed image. Therefore, the correlation between them can be easily confirmed in terms of including information of the current image.
- both the previous optical flow and the current residual data include information about the previous image.
- the first preprocessing neural network 600 is configured to change the domain of the feature data of the current optical flow and/or the feature data of the previous optical flow, and the discrepancy between the feature data of the current optical flow and/or the feature data of the previous optical flow and the current residual data may be for compensation.
- the first preprocessing neural network 600 may change the feature data of the current optical flow and/or the feature data of the previous optical flow from the optical flow domain to the residual data domain. Since the feature data of the optical flow represents the latent property of the optical flow, and the feature data of the residual data represents the latent property of the residual data, the first preprocessing neural network 600 may change their domains to match.
- the first pre-processing neural network 600 is configured such that the feature data obtained through the first pre-processing neural network 600 is more similar to the feature data of the current residual data, so that the feature data of the current optical flow and/or the feature of the previous optical flow It can also process data.
- the discrepancy between the feature data of the current optical flow and/or the feature data of the previous optical flow and the current residual data may illustrate a difference in sample values or a difference in sample positions, and the first preprocessing neural network 600 compensates for this discrepancy. can do.
- FIG. 7 is a diagram for explaining a process of restoring a current optical flow using the second preprocessing neural network 700 according to an embodiment.
- the feature data of the current residual data is input to the second decoder 333 , and the current residual data is obtained as a result of processing by the second decoder 333 .
- the feature data of the previous optical flow is input to the second pre-processing neural network 700, and the feature data obtained through processing by the second pre-processing neural network 700 is concatenated with the feature data of the current optical flow and then the first It is input to the decoder 331 .
- the first decoder 331 processes the input feature data and outputs a current optical flow.
- feature data of a previous optical flow is used to restore the current optical flow. That is, restoration performance of the current optical flow may be improved by using feature data of a previous optical flow that is related to the current optical flow.
- the second preprocessing neural network 700 may be used to compensate for a discrepancy between the feature data of the current optical flow and the feature data of the previous optical flow. Specifically, the second pre-processing neural network 700 may process the feature data of the previous optical flow so that the feature data obtained through the second pre-processing neural network 700 is more similar to the feature data of the current optical flow.
- the discrepancy between the feature data of the current optical flow and the feature data of the previous optical flow may exemplify a difference in sample values or a difference in sample positions, and the second preprocessing neural network 700 may compensate for this discrepancy.
- FIG. 8 is a diagram for explaining a process of restoring a current optical flow using the third preprocessing neural network 800 according to an embodiment.
- the feature data of the current residual data is input to the second decoder 333 , and the current residual data is obtained as a result of processing by the second decoder 333 .
- the feature data of the previous residual data is input to the third pre-processing neural network 800, and the feature data obtained through the third pre-processing neural network 800 is concatenated with the feature data of the current optical flow and then the first decoder 331 ) is entered.
- the first decoder 331 processes the input feature data and outputs a current optical flow.
- previous residual data is used to reconstruct the current optical flow. That is, the restoration performance of the current optical flow may be improved by using the feature data of the previous residual data related to the current optical flow.
- the current optical flow is obtained from the current image and the previous reconstructed image
- the previous residual data is obtained from the previous image and the previous predicted image
- the previous reconstructed image is Since it corresponds to the previous image, it can be seen that both the previous residual data and the current optical flow include information about the previous image.
- the third preprocessing neural network 800 may be used to compensate for a domain change of feature data of the previous residual data and a discrepancy between the current optical flow and the previous residual data.
- the third preprocessing neural network 800 may change the feature data of the previous residual data from the residual data domain to the optical flow domain.
- the third pre-processing neural network 800 may process the feature data of the previous residual data so that the feature data obtained through the third pre-processing neural network 800 is more similar to the feature data of the current optical flow.
- the discrepancy between the feature data of the previous residual data and the feature data of the current optical flow may exemplify a difference in sample values or a difference in sample positions, and the third preprocessing neural network 800 compensates for this discrepancy.
- the feature data of the current residual data is not used to reconstruct the current optical flow.
- the image encoding apparatus 1200 may acquire current residual data after the current optical flow is restored. That is, according to an embodiment, since the image encoding apparatus 1200 cannot use the current residual data to restore the current optical flow, the image decoding apparatus 300 also uses the feature data of the current residual data to restore the current optical flow. it won't be used
- FIG. 9 is a diagram for explaining a process of reconstructing current residual data using the fourth preprocessing neural network 900 according to an embodiment.
- the feature data of the current optical flow is input to the first decoder 331 , and the current optical flow is obtained as a result of processing by the first decoder 331 .
- the feature data of the previous residual data is input to the fourth pre-processing neural network 900, and the feature data obtained through the fourth pre-processing neural network 900 is concatenated with the feature data of the current residual data and then the second decoder 333 ) is entered.
- the second decoder 333 processes the input feature data and outputs current residual data.
- feature data of previous residual data is used to reconstruct the current residual data. That is, the restoration performance of the current residual data may be improved by using the feature data of the previous residual data that is correlated with the current residual data.
- the fourth preprocessing neural network 900 may be used to compensate for a discrepancy between the feature data of the current residual data and the feature data of the previous residual data. Specifically, the fourth pre-processing neural network 900 may process the feature data of the previous residual data so that the feature data obtained through the fourth pre-processing neural network 900 is more similar to the feature data of the current residual data. The discrepancy between the feature data of the current residual data and the feature data of the previous residual data may exemplify a difference in sample values or a difference in sample positions, and the fourth preprocessing neural network 900 may compensate for this discrepancy.
- FIG. 10 shows the current optical flow and current residual data using the first preprocessing neural network 600, the second preprocessing neural network 700, the third preprocessing neural network 800, and the fourth preprocessing neural network 900 according to an embodiment. It is a drawing for explaining the process of restoration.
- the image decoding apparatus 300 uses at least one of the above-described first pre-processing neural network 600, second pre-processing neural network 700, third pre-processing neural network 800, and fourth pre-processing neural network 900 to perform a current optical flow and The current residual data can be restored.
- FIG. 10 shows the current optical flow and the current image decoding apparatus 300 using all of the first preprocessing neural network 600, the second preprocessing neural network 700, the third preprocessing neural network 800, and the fourth preprocessing neural network 900. The process of restoring the residual data is shown.
- the feature data of the previous optical flow is processed by the second pre-processing neural network 700
- the feature data of the previous residual data is processed by the third pre-processing neural network 800 .
- the feature data output from the second pre-processing neural network 700 and the third pre-processing neural network 800 is input to the first decoder 331 after being concatenated with the feature data of the current optical flow.
- the first decoder 331 restores the current optical flow by processing the input feature data.
- the feature data of the current optical flow or the feature data of the previous optical flow is processed by the first preprocessing neural network 600, and the feature data of the previous residual data is It is processed by the fourth preprocessing neural network 900 .
- the feature data output from the first pre-processing neural network 600 and the fourth pre-processing neural network 900 is input to the second decoder 333 after being concatenated with the feature data of the current residual data.
- the second decoder 333 reconstructs the current residual data by processing the input feature data.
- the first preprocessing neural network 600, the second preprocessing neural network 700, the third preprocessing neural network 800, and the fourth preprocessing neural network 900 are all used to restore the current optical flow and the current residual data.
- FIG. 11 is a flowchart of an image decoding method according to an embodiment.
- the image decoding apparatus 300 obtains feature data for the current optical flow and feature data for the current residual data from the bitstream.
- the image decoding apparatus 300 applies at least one of inverse binarization, entropy decoding, inverse quantization, and inverse transform to bins included in the bitstream to obtain feature data for the current optical flow and feature data for the current residual data. have.
- the image decoding apparatus 300 obtains the current optical flow by applying the feature data for the current optical flow to the first decoder 331 .
- the feature data for the current optical flow may be input to the first decoder 331 together with .
- the image decoding apparatus 300 applies at least one of the feature data of the current optical flow and the feature data of the previous optical flow to the preprocessing neural network.
- the image decoding apparatus 300 concatenates the feature data obtained from the preprocessing neural network and the feature data for the current residual data.
- the feature data for the current residual data may be concatenated.
- the image decoding apparatus 300 obtains current residual data by applying the concatenation result to the second decoder 333 .
- the image decoding apparatus 300 In operation S1160, the image decoding apparatus 300 generates a current prediction image from a previous reconstructed image based on the current optical flow.
- the image decoding apparatus 300 may generate a current predicted image by warping a previously reconstructed image according to a current optical flow.
- the image decoding apparatus 300 reconstructs the current image by using the current prediction image and the current residual data.
- the image decoding apparatus 300 may reconstruct the current image by summing sample values of the current prediction image and sample values of the current residual data.
- FIG. 12 is a diagram illustrating a configuration of an image encoding apparatus 1200 according to an embodiment.
- the image encoding apparatus 1200 includes a predictive encoder 1210 , a generator 1230 , an acquirer 1250 , and a predictive decoder 1270 .
- the predictive encoder 1210 , the generator 1230 , the acquirer 1250 , and the predictive decoder 1270 may be implemented as a processor, and the predictive encoder 1210 , the generator 1230 , and the acquirer 1250 . ) and the prediction decoding unit 1270 may operate according to the instructions stored in the memory.
- the prediction encoder 1210 , the generator 1230 , the acquirer 1250 , and the predictive decoder 1270 may be implemented through one element, for example, one processor.
- the prediction encoder 1210 , the generator 1230 , the acquirer 1250 , and the prediction decoder 1270 are implemented as a dedicated processor, or an application processor (AP), central processing unit (CPU), or GPU ( It may be implemented through a combination of a general-purpose processor such as a graphic processing unit and software.
- the dedicated processor may include a memory for implementing an embodiment of the present disclosure or a memory processing unit for using an external memory.
- the predictive encoder 1210 , the generator 1230 , the acquirer 1250 , and the predictive decoder 1270 may include a plurality of processors. In this case, it may be implemented as a combination of dedicated processors, or may be implemented through a combination of software and a plurality of general-purpose processors such as an AP, CPU, or GPU.
- the prediction encoder 1210 obtains feature data of the current optical flow and feature data of the current residual data from the current image and the previous reconstructed image.
- the prediction encoder 1210 is configured to obtain the feature data of the current optical flow and the feature data of the current residual data, for example, as shown in FIG. 13 , the neural network-based first encoder 1211 and the neural network-based A second encoder 1215 may be used.
- the feature data of the current optical flow and the feature data of the current residual data obtained by the prediction encoder 1210 are transmitted to the generator 1230 .
- the generator 1230 generates a bitstream from feature data of the current optical flow and feature data of the current residual data.
- the generator 1230 may generate a first bitstream corresponding to the feature data of the current optical flow and a second bitstream corresponding to the feature data of the current residual data.
- the bitstream may be transmitted to the image decoding apparatus 300 through a network.
- the bitstream is a hard disk, magnetic media such as floppy disks and magnetic tapes, optical recording media such as CD-ROMs and DVDs, magneto-optical media such as floppy disks. It may be recorded on a data storage medium including an optical medium).
- the acquirer 1250 acquires the feature data of the current optical flow and the feature data of the current residual data from the bitstream generated by the generator 1230 .
- the feature data of the current optical flow and the feature data of the current residual data are transmitted to the predictive decoder 1270, and the predictive decoder 1270 uses the feature data of the current optical flow and the feature data of the current residual data to obtain a current reconstructed image. to acquire
- the operations of the acquisition unit 1250 and the prediction decoding unit 1270 may correspond to the operations of the acquisition unit 310 and the prediction decoding unit 330 illustrated in FIGS. 3 to 5 , and thus a detailed description thereof will be omitted.
- An exemplary prediction encoder 1210 and a generator 1230 will be described in more detail with reference to FIGS. 13 and 14 .
- FIG. 13 is a diagram showing the configuration of the predictive encoder 1210 shown in FIG. 12 .
- the prediction encoder 1210 includes a first encoder 1211 , a second encoder 1215 , and a subtractor 1213 .
- a current image and a previously reconstructed image are input to the first encoder 1211 , and the first encoder 1211 processes the current image and the previous reconstructed image according to parameters set as a result of training to process the current optical flow. output the feature data.
- the current prediction image and the current image generated by the prediction decoding unit 1270 from the previous reconstructed image based on the current optical flow are provided to the subtractor 1213 .
- the subtractor 1213 obtains current residual data between the current image and the current prediction image.
- the subtractor 1213 may obtain current residual data by subtracting sample values of the current prediction image from sample values of the current image.
- the current residual data is input to the second encoder 1215 , and the second encoder 1215 processes the current residual data according to parameters set as a result of training to output feature data of the current residual data.
- the generator 1230 generates a bitstream based on the feature data of the current optical flow output from the prediction encoder 1210 and the feature data of the current residual data.
- FIG. 14 is a diagram illustrating the configuration of the generator 1230 shown in FIG. 12 .
- the generator 1230 includes a quantizer 1231 and an entropy encoder 1233 .
- the quantization unit 1231 quantizes the feature data of the current optical flow and the feature data of the current residual data.
- the entropy encoder 1233 entropy-encodes the quantized feature data of the current optical flow and the quantized feature data of the current residual data to generate a bitstream.
- the generator 1230 may further include a converter.
- the transform unit transforms the feature data of the current optical flow and the feature data of the current residual data from the spatial domain to the frequency domain and provides them to the quantizer 1231 .
- the generator 1230 may not include the quantizer 1231 . That is, a bitstream corresponding to the feature data of the current optical flow and the feature data of the current residual data may be obtained through processing by the entropy encoder 1233 .
- the generator 1230 may generate a bitstream by performing only binarization on the feature data of the current optical flow and the feature data of the current residual data. That is, when the generator 1230 performs only binarization, the quantizer 1231 and the entropy encoder 1233 may not be included in the generator 1230 .
- 15 is a flowchart of an image encoding method according to an embodiment.
- step S1510 the image encoding apparatus 1200 obtains feature data for the current optical flow by applying the current image and the previous reconstructed image to the neural network-based first encoder 1211 . After the current image and the previous reconstructed image are concatenated, they may be input to the first encoder 1211 .
- step S1520 the image encoding apparatus 1200 acquires the current optical flow by applying the feature data for the current optical flow to the first neural network-based decoder 331 .
- the image encoding apparatus 1200 generates a bitstream corresponding to the feature data for the current optical flow, obtains the feature data for the current optical flow from the generated bitstream, and sends it to the first decoder 331 . You can also enter Accordingly, the image encoding apparatus 1200 may restore the current optical flow in the same manner as the restoration process of the current optical flow by the image decoding apparatus 300 .
- At least one of the feature data of the previous optical flow or the feature data of the previous residual data is processed by the preprocessing neural network, and the processed result is the current optical flow, as described with reference to FIGS. 7 and 8 .
- the processed result is the current optical flow, as described with reference to FIGS. 7 and 8 .
- the image encoding apparatus 1200 In operation S1530, the image encoding apparatus 1200 generates a current prediction image from a previously reconstructed image based on the current optical flow. In an embodiment, the image encoding apparatus 1200 may generate the current prediction image by warping the previous reconstructed image according to the current optical flow.
- the image encoding apparatus 1200 obtains feature data for the current residual data by applying the current residual data between the current image and the current prediction image to the neural network-based second encoder 1215 .
- the image encoding apparatus 1200 In operation S1550, the image encoding apparatus 1200 generates a bitstream corresponding to the feature data for the current optical flow and the feature data for the current residual data.
- the image encoding apparatus 1200 may reconstruct the current residual data by applying the feature data of the current residual data to the second decoder 333 .
- the image encoding apparatus 1200 may reconstruct the current residual data by applying the feature data of the current residual data to the second decoder 333 .
- at least one of the feature data of the current optical flow, the feature data of the previous optical flow, or the feature data of the previous residual data is processed by the preprocessing neural network, and the processed result is After being concatenated with the feature data for the current residual data, it may be input to the second decoder 333 .
- the image encoding apparatus 1200 may obtain a current reconstructed image by combining the current prediction image and the current residual data, and may use the current reconstructed image to encode the next image.
- the neural network 800 or the fourth preprocessing neural network 900 may include at least one convolutional layer.
- an exemplary structure that the fourth preprocessing neural network 900 may have will be described with reference to FIG. 16 .
- 16 is a diagram illustrating a structure of a neural network 1600 according to an embodiment.
- input data 1605 is input to the first convolutional layer 1610 .
- the input data 1605 includes the neural network 1600 including the first encoder 1211 , the second encoder 1215 , the first decoder 331 , the second decoder 333 , the first pre-processing neural network 600 , and the first It depends on which one of the second preprocessing neural network 700 , the third preprocessing neural network 800 , and the fourth preprocessing neural network 900 .
- the input data 1605 corresponds to a result of concatenating the current image and the previous reconstructed image
- the neural network 1600 is the second For encoder 1215
- input data 1605 may correspond to current residual data
- 3X3X4 displayed in the first convolutional layer 1610 shown in FIG. 16 exemplifies that convolution processing is performed on one input data 1605 using four filter kernels having a size of 3x3.
- four feature maps are generated by four filter kernels.
- the feature maps generated by the first convolutional layer 1610 represent unique characteristics of the input data 1605 .
- each feature map may indicate a vertical direction characteristic, a horizontal direction characteristic, or an edge characteristic of the input data 1605 .
- One feature map ( 1750) can be generated. Since four filter kernels 1730 are used in the first convolution layer 1610 , four feature maps 1750 may be generated through a convolution operation process using the four filter kernels 1730 .
- I1 to I49 indicated in the input data 1605 indicate samples of the input data 1605
- F1 to F9 indicated in the filter kernel 1730 are samples of the filter kernel 1730 (it may be referred to as a parameter).
- M1 to M9 displayed in the feature map 1750 represent samples of the feature map 1750 .
- Each multiplication operation of F6, F7, F8, and F9 is performed, and a value obtained by combining (eg, addition operation) result values of the multiplication operation may be assigned as the value of M1 of the feature map 1750 .
- each of the sample values of I3, I4, I5, I10, I11, I12, I17, I18, I19 of the input data 1605 and F1, F2 of the filter kernel 1730 Each product operation of F3, F4, F5, F6, F7, F8, and F9 may be performed, and a value obtained by combining result values of the product operation may be assigned as the value of M2 of the feature map 1750 .
- a convolution operation is performed between sample values in the input data 1605 and samples of the filter kernel 1730 while the filter kernel 1730 moves along the stride until the last sample of the input data 1605 is reached.
- a feature map 1750 having a predetermined size may be obtained.
- parameters of the neural network 1600 for example, samples of the filter kernel 1730 used in convolutional layers of the neural network 1600 (for example, , values of F1, F2, F3, F4, F5, F6, F7, F8, and F9 of the filter kernel 1730 may be optimized.
- the convolution layers included in the neural network 1600 may be processed according to the convolution operation process described in relation to FIG. 17 , but the convolution operation process described in FIG. 17 is only an example, and embodiments are limited thereto it is not
- the feature maps of the first convolutional layer 1610 are input to the first activation layer 1620 .
- the first activation layer 1620 may provide a non-linear characteristic to each feature map.
- the first activation layer 1620 may include a sigmoid function, a Tanh function, a Rectified Linear Unit (ReLU) function, and the like, but embodiments are not limited thereto.
- Giving the non-linear characteristic to the first activation layer 1620 may mean outputting the sample values of some of the feature maps by changing them. At this time, the change is performed by applying a non-linear characteristic.
- the first activation layer 1620 determines whether to transfer sample values of the feature map to the second convolution layer 1630 . For example, some sample values among the sample values of the feature map are activated by the first activation layer 1620 and transmitted to the second convolution layer 1630 , and some sample values are activated by the first activation layer 1620 . It is deactivated and is not transmitted to the second convolutional layer 1630 . A unique characteristic of the input data 1605 represented by the feature maps is emphasized by the first activation layer 1620 .
- the feature maps 1625 output from the first activation layer 1620 are input to the second convolution layer 1630 . Any one of the feature maps 1625 shown in FIG. 16 is a result of processing the feature map 1750 described with reference to FIG. 17 in the first activation layer 1620 .
- “3X3X4” displayed in the second convolutional layer 1630 may exemplify convolution processing on input feature maps using four filter kernels having a size of 3 ⁇ 3.
- the output of the second convolutional layer 1630 is input to the second activation layer 1640 .
- the second activation layer 1640 may provide a non-linear characteristic to the input feature maps.
- the feature maps 1645 output from the second activation layer 1640 are input to the third convolution layer 1650 .
- “3X3X1” displayed in the third convolution layer 1650 may exemplify convolution processing to generate one output data 1655 using one filter kernel having a size of 3 ⁇ 3.
- the output data 1655 is a neural network 1600 that includes a first encoder 1211 , a second encoder 1215 , a first decoder 331 , a second decoder 333 , a first pre-processing neural network 600 , and a second pre-processing It depends on which one of the neural network 700 , the third pre-processing neural network 800 , and the fourth pre-processing neural network 900 .
- the output data 1655 is feature data for the current optical flow
- output The data 1655 may be feature data for the current residual data
- the neural network 1600 includes three convolutional layers and two activation layers, but this is only an example, and according to an embodiment, the neural network 1600 included in the neural network 1600 in embodiments
- the number of convolutional layers and activation layers may be variously changed.
- the neural network 1600 may be implemented through a recurrent neural network (RNN) in embodiments.
- RNN recurrent neural network
- the image decoding apparatus 300 and the image encoding apparatus 1200 may include at least one arithmetic logic unit (ALU) for the above-described convolution operation and operation of the activation layer.
- ALU arithmetic logic unit
- the ALU may be implemented as a processor.
- the ALU may include a multiplier that performs a multiplication operation between the sample values of the feature map output from the input data 1605 or the previous layer and the sample values of the filter kernel, and an adder that adds the result values of the multiplication. have.
- the ALU is a multiplier that multiplies an input sample value by a weight used in a predetermined sigmoid function, a Tanh function, or a ReLU function, and compares the multiplication result with a predetermined value to convert the input sample value to the next layer It may include a comparator that determines whether to transfer to .
- 18 is a diagram for explaining a training method of the first decoder 331 , the second decoder 333 , the first encoder 1211 , the second encoder 1215 , and the preprocessing neural network 339 .
- a current training image 1810 , a previous reconstructed training image 1830 , and a current reconstructed training image 1850 correspond to the aforementioned current image, the previous reconstructed image, and the current reconstructed image, respectively.
- the current reconstruction training image 1850 is the current training image. How similar it is to 1810 and how large a bitrate of a bitstream generated through encoding of the current training image 1810 may be considered.
- the first loss information 1860 corresponding to the similarity between the current training image 1810 and the current reconstructed training image 1850, and the second corresponding to how large the size of the bitstream is
- the first decoder 331 , the second decoder 333 , the first encoder 1211 , the second encoder 1215 and the preprocessing neural network 339 are trained according to the loss information 1870 and the third loss information 1880 .
- a current training image 1810 and a previous reconstructed training image 1830 are input to the first encoder 1211 .
- the first encoder 1211 processes the current training image 1810 and the previous reconstructed training image 1830 to output feature data w i of the current optical flow.
- the feature data w i of the current optical flow is input to the first decoder 331 , and the first decoder 331 processes the feature data w i of the current optical flow and outputs the current optical flow g i . do.
- the previous reconstruction training image 1830 is warped according to the current optical flow (g i ), for example, by warping 190 , so that the current prediction training image (x' i ) is generated, and the current prediction training image Current residual data (r i ) corresponding to the difference between (x′ i ) and the current training image 1810 is obtained.
- the current residual data ri is input to the second encoder 1215 , and the second encoder 1215 processes the current residual data ri and outputs feature data vi of the current residual data.
- the second decoder 333 processes the input data to output the current residual data (r' i ), and by adding the current prediction training image (x' i ) and the current residual data (r' i ) to the current A restoration training image 1850 is acquired.
- the first loss information 1860 For training the first decoder 331 , the second decoder 333 , the first encoder 1211 , the second encoder 1215 , and the preprocessing neural network 339 , the first loss information 1860 , the second loss information At least one of 1870 and third loss information 1880 may be obtained.
- the first loss information 1860 corresponds to a difference between the current training image 1810 and the current reconstruction training image 1850 .
- the difference between the current training image 1810 and the current reconstructed training image 1850 is the L1-norm value, the L2-norm value determined based on the current training image 1810 and the current reconstructed training image 1850, Structural Similarity (SSIM) value, Peak Signal-To-Noise Ratio-Human Vision System (PSNR-HVS) value, Multiscale SSIM (MS-SSIM) value, Variance Inflation Factor (VIF) value, or Video Multimethod Assessment Fusion (VMAF) value may include at least one of
- the first loss information 1860 is related to the quality of the current reconstruction training image 1850, the first loss information 1860 may be referred to as quality loss information.
- the second loss information 1870 corresponds to the entropy of the feature data w i of the current optical flow or the bit rate of the bitstream corresponding to the feature data w i of the current optical flow.
- the third loss information 1880 corresponds to the entropy of the feature data ( vi ) of the current residual data or the bitrate of the bitstream corresponding to the feature data ( vi ) of the current residual data.
- the fourth loss information corresponding to the bitrate of the corresponding bitstream can be calculated.
- the second loss information 1870 and the third loss information 1880 may not be used for training.
- the second loss information 1870 and the third loss information 1880 are related to encoding efficiency for the current training image 1810, the second loss information 1870 and the third loss information 1880 have compression loss. Information can be referenced.
- the first decoder 331 , the second decoder 333 , the first encoder 1211 , the second encoder 1215 , and the preprocessing neural network 339 include the first loss information 1860 , the second loss information 1870 or The final loss information derived from at least one of the third loss information 1880 may be trained to be reduced or minimized.
- the first decoder 331 , the second decoder 333 , the first encoder 1211 , the second encoder 1215 and the preprocessing neural network 339 change the value of the preset parameter while the final loss information is reduced. Or it can be trained to be minimized.
- the final loss information may be calculated according to Equation 1 below.
- Equation 1 a, b, and c are weights applied to each of the first loss information 1860 , the second loss information 1870 , and the third loss information 1880 , respectively.
- the first decoder 331 , the second decoder 333 , the first encoder 1211 , the second encoder 1215 , and the preprocessing neural network 339 indicate that the current reconstructed training image 1850 is currently It can be seen that the training is performed in a direction that is similar to the training image 1810 as much as possible and minimizes the size of the bitstream corresponding to the data output from the first encoder 1211 and the second encoder 1215 .
- the preprocessing neural network 339 is shown to process only the feature data w i of the current optical flow, which is related to the embodiment shown in FIG. 6 .
- the image decoding apparatus 300 performs the first preprocessing neural network 600, the second preprocessing neural network 700, and the third preprocessing to restore the current optical flow g i and the current residual data r i .
- At least one of the neural network 800 and the fourth preprocessing neural network 900 may be used.
- the first preprocessing neural network 600 , the second preprocessing neural network 700 , the third preprocessing neural network 800 or the fourth used for restoration of the current optical flow ( g i ) and the current residual data (ri ) Training is required for at least one of the preprocessing neural networks 900 .
- the first preprocessing neural network 600 for the restoration of the current optical flow (g i ) and the current residual data (ri ) , the first preprocessing neural network 600 , the second preprocessing neural network 700 , and the third preprocessing neural network 800 .
- the first loss information 1860, the second loss information 1870, and the third loss information 1880 shown in FIG. 18 may be calculated using any preprocessing neural network among the fourth preprocessing neural networks 900 .
- the preprocessing neural network may be trained through the first loss information 1860 , the second loss information 1870 , and the third loss information 1880 .
- the training process described with reference to FIG. 18 may be performed by the training device 1900 .
- the training apparatus 1900 may be, for example, the image encoding apparatus 1200 or a separate server. Parameters obtained as a result of training may be stored in the image encoding apparatus 1200 and the image decoding apparatus 300 .
- the training apparatus 1900 initially sets parameters of the first encoder 1211 , the first decoder 331 , the second encoder 1215 , the second decoder 333 , and the preprocessing neural network 339 . do (operation S1910). Accordingly, the first encoder 1211 , the first decoder 331 , the second encoder 1215 , the second decoder 333 , and the preprocessing neural network 339 may operate according to initially set parameters.
- the training apparatus 1900 inputs the current training image 1810 and the previous reconstructed training image 1830 to the first encoder 1211 (operation S1915).
- the first encoder 1211 outputs the feature data w i of the current optical flow to the training device 1900 , the first decoder 331 , and the preprocessing neural network 339 (operation S1920 ).
- the training apparatus 1900 calculates the second loss information 1870 from the feature data w i of the current optical flow (operation S1925 ).
- the first decoder 331 processes the feature data w i of the current optical flow and outputs the current optical flow g i to the training apparatus 1900 (operation S1930 ).
- the training apparatus 1900 generates a current prediction training image (x' i ) according to the current optical flow (g i ), and the difference between the current prediction training image (x' i ) and the current training image 1810 Obtain the corresponding current residual data r i (operation S1935).
- the training device 1900 inputs the current residual data ri to the second encoder 1215 (operation S1940 ), and the second encoder 1215 converts the feature data v i of the current residual data into the training device 1900 . ) and output to the second decoder 333 (operation S1945).
- the training apparatus 1900 calculates the third loss information 1880 from the feature data v i of the current residual data (operation S1950 ).
- the preprocessing neural network 339 processes the feature data w i of the current optical flow input in S1920 and outputs the feature data obtained as a result of the processing to the second decoder 333 (operation S1955 ).
- the second decoder 333 processes the concatenation result between the feature data v i of the current residual data and the feature data output from the preprocessing neural network 339 and outputs the current residual data r′ i to the training device 1900 . do (operation S1960).
- the training apparatus 1900 generates a current reconstruction training image 1850 from the current residual data (r' i ) and the current prediction training image (x' i ) (operation S1965 ).
- the training apparatus 1900 calculates first loss information 1860 corresponding to a difference between the current training image 1810 and the current reconstructed training image 1850 (operation S1970).
- the training apparatus 1900 calculates final loss information by combining at least one of the first loss information 1860, the second loss information 1870, or the third loss information 1880, and the first decoder 331, the first The second decoder 333 , the first encoder 1211 , the second encoder 1215 , and the preprocessing neural network 339 update the initially set parameters through a back propagation process based on the final loss information (operations S1971 ). , S1973, S1975, S1977, S1979).
- the training device 1900, the first decoder 331, the second decoder 333, the first encoder 1211, the second encoder 1215 and the preprocessing neural network 339 until the final loss information is minimized.
- the parameters are updated while repeating steps S1915 to S1979.
- the first decoder 331 , the second decoder 333 , the first encoder 1211 , the second encoder 1215 , and the preprocessing neural network 339 operate according to the parameters updated in the previous process. do.
- the training apparatus 1900 may train at least one of the first preprocessing neural network 600 , the second preprocessing neural network 700 , the third preprocessing neural network 800 , or the fourth preprocessing neural network 900 . . To this end, the training apparatus 1900 controls at least one input data and output data of the first preprocessing neural network 600 , the second preprocessing neural network 700 , the third preprocessing neural network 800 , or the fourth preprocessing neural network 900 . can do.
- the result of processing the feature data of the previous optical flow by the second preprocessing neural network 700 may be input to the first decoder 331 .
- the first decoder 331 processes the result of concatenating the feature data (w i ) of the current optical flow and the feature data output from the second pre-processing neural network 700 to obtain the current optical flow (g i ). can be printed out.
- the result of processing the feature data of the previous residual data by the fourth pre-processing neural network 900 is input to the second decoder 333,
- the second decoder 333 processes the result of concatenating the feature data of the current residual data, the feature data output from the pre-processing neural network 339, and the feature data output from the fourth pre-processing neural network 900 to provide the current residual data. can be printed out.
- Table 1 below shows the inter prediction process shown in FIG. 1 (“A” in Table 1), the first preprocessing neural network 600 , the second preprocessing neural network 700 , the third preprocessing neural network 800 , and the fourth preprocessing neural network Bit rates of bitstreams generated through the inter prediction process (“B” in Table 1) according to an embodiment using 900 are compared.
- the bitrate of the bitstream It can be seen that is decreased by about -5.5% compared to the inter prediction process described with reference to FIG. 1 .
- the above-described embodiments of the present disclosure can be written as a program that can be executed on a computer, and the written program can be stored in a device-readable storage medium.
- the device-readable storage medium may be provided in the form of a non-transitory storage medium.
- 'non-transitory storage medium' is a tangible device and only means that it does not contain a signal (eg, electromagnetic wave). It does not distinguish the case where it is stored as
- the 'non-transitory storage medium' may include a buffer in which data is temporarily stored.
- the method according to various embodiments disclosed in this document may be provided in a computer program product (computer program product).
- Computer program products may be traded between sellers and buyers as commodities.
- the computer program product is distributed in the form of a machine-readable storage medium (eg compact disc read only memory (CD-ROM)), or via an application store or between two user devices (eg smartphones). It can be distributed directly or online (eg, downloaded or uploaded).
- at least a portion of the computer program product eg, a downloadable app
- a machine-readable storage medium such as a memory of a manufacturer's server, a server of an application store, or a relay server. It may be temporarily stored or temporarily created.
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- General Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Biophysics (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- Biomedical Technology (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
AI를 이용하는 영상 복호화 방법은, 현재 영상에 대응하는 비트스트림으로부터 현재 옵티컬 플로우의 특징 데이터 및 현재 잔차 데이터의 특징 데이터를 획득하는 단계; 신경망 기반의 제 1 디코더에 현재 옵티컬 플로우의 특징 데이터를 적용하여 현재 옵티컬 플로우를 획득하는 단계; 현재 옵티컬 플로우의 특징 데이터 및 이전 옵티컬 플로우의 특징 데이터 중 적어도 하나를 제 1 전처리 신경망에 적용하는 단계; 현재 잔차 데이터의 특징 데이터와 제 1 전처리 신경망으로부터 획득되는 특징 데이터를 연접하여 제 1 연접 결과를 획득하는 단계; 제 1 연접 결과를 신경망 기반의 제 2 디코더에 적용하여 현재 잔차 데이터를 획득하는 단계; 및 현재 옵티컬 플로우를 기초로 이전 복원 영상으로부터 생성되는 현재 예측 영상과 현재 잔차 데이터를 이용하여 현재 영상을 복원하는 단계를 포함할 수 있다.
Description
본 개시는 영상의 부호화 및 복호화에 관한 것이다. 보다 구체적으로, 본 개시는 AI(Artificial Intelligence), 예를 들어, 신경망을 이용하여 영상을 부호화 및 복호화하는 기술에 관한 것이다.
H.264 AVC(Advanced Video Coding) 및 HEVC(High Efficiency Video Coding)와 같은 코덱에서는, 영상을 블록으로 분할하고, 인터 예측(inter prediction) 또는 인트라 예측(intraprediction)을 통해 각각의 블록을 예측 부호화 및 예측 복호화할 수 있다.
인트라 예측은 영상 내의 공간적인 중복성을 제거하여 영상을 압축하는 방법이고, 인터 예측은 영상들 사이의 시간적인 중복성을 제거하여 영상을 압축하는 방법이다.
인터 예측의 대표적인 예로서, 움직임 추정 부호화가 존재한다. 움직임 추정 부호화는 참조 영상을 이용해 현재 영상의 블록들을 예측한다. 소정의 평가 함수를 이용하여 현재 블록과 가장 유사한 참조 블록을 소정의 검색 범위에서 탐색할 수 있다. 현재 블록을 참조 블록에 기초하여 예측하고, 예측 결과 생성된 예측 블록을 현재 블록으로부터 감산하여 잔차 블록을 생성 및 부호화한다.
참조 영상 내 참조 블록을 가리키는 움직임 벡터를 도출하기 위해, 이전에 부호화된 블록들의 움직임 벡터가 현재 블록의 예측 움직임 벡터(Prediction Motion Vector)로 이용될 수 있다. 현재 블록의 움직임 벡터와 예측 움직임 벡터 사이의 차이인 잔차 움직임 벡터(Differential Motion Vector)는 소정의 방식을 통해 디코더 측으로 시그널링된다.
일 실시예에 따른 영상의 부호화 및 복호화 장치 및 이에 의한 영상의 부호화 및 복호화 방법은 영상에 대한 옵티컬 플로우 및 잔차 데이터를 보다 정확하게 복원하는 것을 과제로 한다.
또한, 일 실시예에 따른 영상의 부호화 및 복호화 장치 및 이에 의한 영상의 부호화 및 복호화 방법은 영상에 대한 부호화 결과인 비트스트림의 크기를 감소시키고, 영상의 복원 성능을 향상시키는 것을 과제로 한다.
일 실시예에 따른 AI를 이용하는 영상 복호화 방법은, 현재 영상에 대응하는 비트스트림으로부터 현재 옵티컬 플로우(current optical flow)의 특징 데이터 및 현재 잔차 데이터의 특징 데이터를 획득하는 단계; 신경망 기반의 제 1 디코더에 상기 현재 옵티컬 플로우의 특징 데이터를 적용하여 상기 현재 옵티컬 플로우를 획득하는 단계; 상기 현재 옵티컬 플로우의 특징 데이터 및 이전 옵티컬 플로우의 특징 데이터 중 적어도 하나를 제 1 전처리 신경망에 적용하는 단계; 상기 현재 잔차 데이터의 특징 데이터와 상기 제 1 전처리 신경망으로부터 획득되는 특징 데이터를 연접하여 제 1 연접 결과를 획득하는 단계; 상기 제 1 연접 결과를 신경망 기반의 제 2 디코더에 적용하여 상기 현재 잔차 데이터를 획득하는 단계; 및 상기 현재 옵티컬 플로우를 기초로 이전 복원 영상으로부터 생성되는 현재 예측 영상과 상기 현재 잔차 데이터를 이용하여 상기 현재 영상을 복원하는 단계를 포함할 수 있다.
일 실시예에 따른 영상의 부호화 및 복호화 장치 및 이에 의한 영상의 부호화 및 복호화 방법은 영상에 대한 옵티컬 플로우 및 잔차 데이터를 보다 정확하게 복원할 수 있다.
또한, 일 실시예에 따른 영상의 부호화 및 복호화 장치 및 이에 의한 영상의 부호화 및 복호화 방법은 영상에 대한 부호화 결과인 비트스트림의 크기를 감소시키고, 영상의 복원 성능을 향상시킬 수 있다.
도 1은 일 실시예에 따른, AI에 기반한 영상의 예측 부호화 및 예측 복호화 과정을 도시하는 도면이다.
도 2는 일 실시예에 따른, 연속하는 영상들, 연속하는 영상들 사이의 옵티컬 플로우, 및 연속하는 영상들 사이의 잔차 데이터를 예시하는 도면이다.
도 3은 일 실시예에 따른 영상 복호화 장치의 구성을 도시하는 도면이다.
도 4는 일 실시예에 따른, 도 3에 도시된 획득부의 구성을 도시하는 도면이다.
도 5는 일 실시예에 따른, 도 3에 도시된 예측 복호화부의 구성을 도시하는 도면이다.
도 6은 일 실시예에 따른 제 1 전처리 신경망을 이용하여 현재 잔차 데이터를 복원하는 과정을 설명하기 위한 도면이다.
도 7은 일 실시예에 따른 제 2 전처리 신경망을 이용하여 현재 옵티컬 플로우를 복원하는 과정을 설명하기 위한 도면이다.
도 8은 일 실시예에 따른 제 3 전처리 신경망을 이용하여 현재 옵티컬 플로우를 복원하는 과정을 설명하기 위한 도면이다.
도 9는 일 실시예에 따른 제 4 전처리 신경망을 이용하여 현재 잔차 데이터를 복원하는 과정을 설명하기 위한 도면이다.
도 10은 일 실시예에 따른 제 1 전처리 신경망, 제 2 전처리 신경망, 제 3 전처리 신경망 및 제 4 전처리 신경망을 이용하여 현재 옵티컬 플로우와 현재 잔차 데이터를 복원하는 과정을 설명하기 위한 도면이다.
도 11은 일 실시예에 따른 영상 복호화 방법의 순서도이다.
도 12는 일 실시예에 따른 영상 부호화 장치의 구성을 도시하는 도면이다.
도 13은 일 실시예에 따른, 도 12에 도시된 예측 부호화부의 구성을 도시하는 도면이다.
도 14는 일 실시예에 따른, 도 12에 도시된 생성부의 구성을 도시하는 도면이다.
도 15는 일 실시예에 따른 영상 부호화 방법의 순서도이다.
도 16은 일 실시예에 따른 신경망의 구조를 예시하는 도면이다.
도 17은 일 실시예에 따른, 도 16에 도시된 컨볼루션 레이어에서의 컨볼루션 연산을 설명하기 위한 도면이다.
도 18은 일 실시예에 따른, 제 1 디코더, 제 2 디코더, 제 1 인코더, 제 2 인코더 및 전처리 신경망의 훈련 방법을 설명하기 위한 도면이다.
도 19는 일 실시예에 따른, 훈련 장치에 의한 제 1 디코더, 제 2 디코더, 제 1 인코더, 제 2 인코더 및 전처리 신경망의 훈련 과정을 설명하기 위한 도면이다.
일 실시예에 따른 AI를 이용하는 영상 복호화 방법은, 현재 영상에 대응하는 비트스트림으로부터 현재 옵티컬 플로우(current optical flow)의 특징 데이터 및 현재 잔차 데이터의 특징 데이터를 획득하는 단계; 신경망 기반의 제 1 디코더에 상기 현재 옵티컬 플로우의 특징 데이터를 적용하여 상기 현재 옵티컬 플로우를 획득하는 단계; 상기 현재 옵티컬 플로우의 특징 데이터 및 이전 옵티컬 플로우의 특징 데이터 중 적어도 하나를 제 1 전처리 신경망에 적용하는 단계; 상기 현재 잔차 데이터의 특징 데이터와 상기 제 1 전처리 신경망으로부터 획득되는 특징 데이터를 연접하여 제 1 연접 결과를 획득하는 단계; 상기 제 1 연접 결과를 신경망 기반의 제 2 디코더에 적용하여 상기 현재 잔차 데이터를 획득하는 단계; 및 상기 현재 옵티컬 플로우를 기초로 이전 복원 영상으로부터 생성되는 현재 예측 영상과 상기 현재 잔차 데이터를 이용하여 상기 현재 영상을 복원하는 단계를 포함할 수 있다.
상기 현재 옵티컬 플로우를 획득하는 단계는, 상기 이전 옵티컬 플로우의 특징 데이터를 제 2 전처리 신경망에 적용하는 단계; 상기 현재 옵티컬 플로우의 특징 데이터와 상기 제 2 전처리 신경망으로부터 획득되는 특징 데이터를 연접하여 제 2 연접 결과를 획득하는 단계; 및 상기 제 2 연접 결과를 상기 신경망 기반의 제 1 디코더에 적용하여 상기 현재 옵티컬 플로우를 획득하는 단계를 포함할 수 있다.
상기 현재 옵티컬 플로우를 획득하는 단계는, 이전 잔차 데이터의 특징 데이터를 제 3 전처리 신경망에 적용하는 단계; 상기 현재 옵티컬 플로우의 특징 데이터와 상기 제 3 전처리 신경망으로부터 획득되는 특징 데이터를 연접하여 제 3 연접 결과를 획득하는 단계; 및 상기 제 3 연접 결과를 상기 신경망 기반의 제 1 디코더에 적용하여 상기 현재 옵티컬 플로우를 획득하는 단계를 포함할 수 있다.
상기 현재 잔차 데이터를 획득하는 단계는, 이전 잔차 데이터의 특징 데이터를 제 4 전처리 신경망에 적용하는 단계; 상기 제 1 전처리 신경망으로부터 획득되는 특징 데이터, 상기 제 4 전처리 신경망으로부터 획득되는 특징 데이터, 및 상기 현재 잔차 데이터의 특징 데이터를 연접하여 제 4 연접 결과를 획득하는 단계; 및 상기 제 4 연접 결과를 상기 신경망 기반의 제 2 디코더에 적용하여 상기 현재 잔차 데이터를 획득하는 단계를 포함할 수 있다.
상기 현재 영상을 복원하는 단계는, 상기 현재 옵티컬 플로우에 따라 상기 이전 복원 영상을 워핑(warping)하여 상기 현재 예측 영상을 생성하는 단계를 포함할 수 있다.
상기 현재 옵티컬 플로우의 특징 데이터 및 상기 현재 잔차 데이터의 특징 데이터는, 상기 비트스트림에 대한 엔트로피 복호화 및 역양자화를 수행하여 획득될 수 있다.
상기 신경망 기반의 제 1 디코더, 상기 신경망 기반의 제 2 디코더 및 상기 제 1 전처리 신경망 중 적어도 하나는, 현재 훈련 영상(current training image)과 상기 현재 훈련 영상에 대응하는 현재의 복원 훈련 영상(current reconstructed training image) 사이의 차이에 대응하는 제 1 손실 정보, 상기 현재 훈련 영상의 옵티컬 플로우의 특징 데이터의 엔트로피에 대응하는 제 2 손실 정보, 및 상기 현재 훈련 영상의 잔차 데이터의 특징 데이터의 엔트로피에 대응하는 제 3 손실 정보를 기반으로 훈련될 수 있다.
일 실시예에 따른 AI를 이용하는 영상 복호화 장치는, 현재 영상에 대응하는 비트스트림을 획득하는 비트스트림 획득부; 및 상기 비트스트림으로부터 현재 옵티컬 플로우의 특징 데이터 및 현재 잔차 데이터의 특징 데이터를 획득하고, 신경망 기반의 제 1 디코더에 상기 현재 옵티컬 플로우의 특징 데이터를 적용하여 상기 현재 옵티컬 플로우를 획득하고, 상기 현재 옵티컬 플로우의 특징 데이터 및 이전 옵티컬 플로우의 특징 데이터 중 적어도 하나를 제 1 전처리 신경망에 적용하고, 상기 제 1 전처리 신경망으로부터 획득되는 특징 데이터와 상기 현재 잔차 데이터에 대한 특징 데이터를 연접하여 제 1 연접 결과를 획득하고, 상기 제 1 연접 결과를 신경망 기반의 제 2 디코더에 적용하여 상기 현재 잔차 데이터를 획득하고, 상기 현재 옵티컬 플로우를 기초로 이전 복원 영상으로부터 생성되는 현재 예측 영상과 상기 현재 잔차 데이터를 이용하여 상기 현재 영상을 복원하는 예측 복호화부를 포함할 수 있다.
일 실시예에 따른 AI를 이용하는 영상 부호화 방법은, 현재 영상 및 이전 복원 영상을 신경망 기반의 제 1 인코더에 적용하여 현재 옵티컬 플로우의 특징 데이터를 획득하는 단계; 상기 현재 옵티컬 플로우의 특징 데이터를 신경망 기반의 제 1 디코더에 적용하여 상기 현재 옵티컬 플로우를 획득하는 단계; 상기 현재 옵티컬 플로우와 상기 이전 복원 영상에 기초하여 현재 예측 영상을 생성하는 단계; 상기 현재 영상과 상기 현재 예측 영상 사이의 현재 잔차 데이터를 획득하는 단계; 상기 현재 잔차 데이터를 신경망 기반의 제 2 인코더에 적용하여 상기 현재 잔차 데이터의 특징 데이터를 획득하는 단계; 상기 현재 옵티컬 플로우의 특징 데이터 및 상기 현재 잔차 데이터의 특징 데이터에 기초하여 비트스트림을 생성하는 단계를 포함할 수 있다.
일 실시예에 따른 AI를 이용하는 영상 복호화 방법은, 현재 영상에 대응하는 비트스트림으로부터 현재 옵티컬 플로우의 특징 데이터 및 현재 잔차 데이터의 특징 데이터를 획득하는 단계; 제 1 신경망 전처리 동작, 제 2 신경망 전처리 동작, 제 3 신경망 전처리 동작 및 제 4 신경망 전처리 동작 중 적어도 하나를 수행하는 단계; 상기 현재 옵티컬 플로우의 특징 데이터와, 상기 제 2 신경망 전처리 동작의 결과 및 상기 제 3 신경망 전처리 동작의 결과 중 적어도 하나를 연접하여 제 1 연접 결과를 획득하는 단계; 상기 제 1 연접 결과를 신경망 기반의 제 1 디코더에 적용하여 현재 옵티컬 플로우를 획득하는 단계; 상기 현재 잔차 데이터의 특징 데이터와, 상기 제 1 신경망 전처리 동작의 결과 및 상기 제 4 신경망 전처리 동작의 결과 중 적어도 하나를 연접하여 제 2 연접 결과를 획득하는 단계; 상기 제 2 연접 결과를 신경망 기반의 제 2 디코더에 적용하여 상기 현재 잔차 데이터를 획득하는 단계; 및 상기 현재 옵티컬 플로우를 기초로 이전 복원 영상을 워핑하고, 상기 현재 잔차 데이터를 상기 워핑된 이전 복원 영상에 적용하여 상기 현재 영상을 복원하는 단계를 포함하되, 상기 제 1 신경망 전처리 동작은, 상기 현재 옵티컬 플로우의 특징 데이터 및 이전 옵티컬 플로우의 특징 데이터 중 적어도 하나를 제 1 전처리 신경망에 적용하는 동작을 포함하고, 상기 제 2 신경망 전처리 동작은, 상기 이전 옵티컬 플로우의 특징 데이터를 제 2 전처리 신경망에 적용하는 동작을 포함하고, 상기 제 3 신경망 전처리 동작은, 이전 잔차 데이터의 특징 데이터를 제 3 전처리 신경망에 적용하는 동작을 포함하고, 상기 제 4 신경망 전처리 동작은, 상기 이전 잔차 데이터의 특징 데이터를 제 4 전처리 신경망에 적용하는 동작을 포함할 수 있다.
본 개시는 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고, 이를 상세한 설명을 통해 상세히 설명하고자 한다. 그러나, 이는 본 개시의 실시 형태에 대해 한정하려는 것이 아니며, 본 개시는 여러 실시예들의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
하기에서, 관련된 공지 기술에 대한 구체적인 설명이 본 개시의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 본 개시의 설명 과정에서 이용되는 숫자(예를 들어, 제 1, 제 2 등)는 하나의 구성요소를 다른 구성요소와 구분하기 위한 식별기호에 불과하다.
또한, 본 개시에서, "a, b 또는 c 중 적어도 하나" 표현은 " a", " b", " c", "a 및 b", "a 및 c", "b 및 c", "a, b 및 c 모두", 혹은 그 변형들을 지칭할 수 있다.
또한, 본 개시에서, 일 구성요소가 다른 구성요소와 "연결된다" 거나 "접속된다" 등으로 언급된 때에는, 상기 일 구성요소가 상기 다른 구성요소와 직접 연결되거나 또는 직접 접속될 수도 있지만, 특별히 반대되는 기재가 존재하지 않는 이상, 중간에 또 다른 구성요소를 매개하여 연결되거나 또는 접속될 수도 있다고 이해되어야 할 것이다.
기술 분야에서 통상적인 바와 같이, 실시예들은 설명된 기능 또는 기능들을 수행하는 블록들(blocks)의 관점에서 설명되고 예시될 수 있다. 도면들에 도시된 바와 같이, “유닛들” 또는 “모듈들” 등으로 참조될 수 있는 이들 블록들, 또는 부호화부, 복호화부, 획득부, 양자화부, 변환부, 감산부 등의 이름을 갖는 이들 블록들은, 논리 게이트, 집적 회로, 마이크로프로세서, 마이크로컨트롤러, 메모리 회로, 수동 전자 부품, 능동 전자 부품, 광학 부품, 유선 회로 등과 같은 아날로그 또는 디지털 회로에 의해 물리적으로 구현될 수 있으며, 펌웨어 및 소프트웨어에 의해 구동될 수 있다. 회로는, 예를 들어, 하나 이상의 반도체 칩에서, 또는 인쇄 회로 기판 등과 같은 기판 지지부(substrate support) 상에 구현될 수 있다. 블록에 포함된 회로는 전용 하드웨어 또는 프로세서(예를 들어, 하나 이상의 프로그래밍된 마이크로프로세서 및 관련 회로)에 의해, 또는 블록의 일부 기능을 수행하는 전용 하드웨어와 블록의 다른 기능을 수행하는 프로세서의 조합에 의해 구현될 수 있다. 실시예의 각 블록은 2개 이상의 상호 작용하는 개별 블록으로 물리적으로 분리될 수 있다. 마찬가지로, 실시예의 블록들은 물리적으로 더 복잡한 블록으로 결합될 수 있다.
또한, 본 개시에서 '~부(유닛)', '모듈' 등으로 표현되는 구성요소는 2개 이상의 구성요소가 하나의 구성요소로 합쳐지거나 또는 하나의 구성요소가 보다 세분화된 기능별로 2개 이상으로 분화될 수도 있다. 또한, 이하에서 설명할 구성요소 각각은 자신이 담당하는 주기능 이외에도 다른 구성요소가 담당하는 기능 중 일부 또는 전부의 기능을 추가적으로 수행할 수도 있으며, 구성요소 각각이 담당하는 주기능 중 일부 기능이 다른 구성요소에 의해 전담되어 수행될 수도 있음은 물론이다.
또한, 본 개시에서, '영상(image)'은 정지영상, 복수의 연속된 정지영상(또는 프레임)으로 구성된 동영상, 또는 비디오를 나타낼 수 있다.
또한, 본 개시에서 '신경망(neural network)'은 뇌 신경을 모사한 인공신경망 모델의 대표적인 예시일 수 있으며, 실시예들은 특정 알고리즘을 사용한 인공신경망 모델로 한정되지 않는다. 신경망은 심층 신경망(deep neural network)으로 참조될 수도 있다.
또한, 본 개시에서 '파라미터(parameter)'는 신경망을 이루는 각 레이어의 연산 과정에서 이용되는 값일 수 있으며, 예를 들어, 입력 값을 소정 연산식에 적용할 때 이용될 수 있다. 파라미터는 훈련의 결과로 설정되는 값일 수 있으며, 필요에 따라 별도의 훈련 데이터(training data)를 통해 갱신될 수 있다.
또한, 본 개시에서 '특징 데이터'는 신경망 기반의 인코더가 입력 데이터를 처리함으로써 획득되는 데이터를 의미할 수 있다. 특징 데이터는 여러 샘플들을 포함하는 1차원 또는 2차원의 데이터일 수 있다. 특징 데이터는 잠재 표현(latent representation)으로 참조될 수도 있다. 특징 데이터는 후술하는 디코더가 출력하는 데이터에 잠재된 특징을 나타낼 수 있다.
또한, 본 개시에서 '현재 영상'은 현재의 처리 대상인 영상을 의미할 수 있고, '현재 옵티컬 플로우'는 현재 영상에 대해 획득된 옵티컬 플로우를 의미할 수 있고, '현재 잔차 데이터'는 현재 영상에 대해 획득된 잔차 데이터를 의미할 수 있다.
또한, 본 개시에서 '이전 영상'은 현재 영상 이전의 처리 대상인 영상을 의미할 수 있고, '이전 옵티컬 플로우'는 이전 영상에 대해 획득된 옵티컬 플로우를 의미할 수 있고, '이전 잔차 데이터'는 이전 영상에 대해 획득된 잔차 데이터를 의미할 수 있다.
또한, 본 개시에서, '샘플'은 영상, 특징 맵 또는 특징 데이터 내 샘플링 위치에 할당된 데이터일 수 있으며, 처리 대상이 되는 데이터를 의미할 수 있다. 예를 들어, 공간 영역의 프레임에서 픽셀 값일 수 있다.
도 1은 AI에 기반한 영상의 예측 부호화 및 예측 복호화 과정을 도시하는 도면이다.
도 1은 인터 예측에 따른 현재 영상(xi)의 부호화 및 복호화 과정을 도시하고 있는데, 인터 예측에서는 제 1 인코더(110), 제 2 인코더(130), 제 1 디코더(150) 및 제 2 디코더(170)가 이용된다. 제 1 인코더(110), 제 2 인코더(130), 제 1 디코더(150) 및 제 2 디코더(170)는 신경망으로 구현된다.
인터 예측은 현재 영상(xi)과 이전 복원 영상(yi-1) 사이의 시간적 중복성을 이용하여 현재 영상(xi)을 부호화/복호화하는 과정으로서, 현재 영상(xi) 내 블록들 또는 샘플들과 이전 복원 영상(yi-1) 내 참조 블록들 또는 참조 샘플들 사이의 위치 차이(또는 움직임 벡터)가 현재 영상(xi)의 부호화 및 복호화에 이용된다. 이러한 위치 차이는 옵티컬 플로우로 참조될 수 있다. 옵티컬 플로우는 영상 내 샘플들 또는 블록들에 대응하는 움직임 벡터들의 집합으로 정의될 수도 있다.
옵티컬 플로우는 이전 복원 영상(yi-1) 내 샘플들의 위치가 현재 영상(xi) 내에서 어떻게 변경되었는지, 또는 현재 영상(xi)의 샘플들이 이전 복원 영상(yi-1) 내 어디에 위치하는지를 나타낸다. 예를 들어, 이전 복원 영상(yi-1) 내 (1, 1)에 위치한 샘플이 현재 영상(xi) 내 (2, 1)에 위치한다면, 해당 샘플에 대한 옵티컬 플로우 또는 움직임 벡터는 (1(=2-1), 0(=1-1))로 도출될 수 있다.
AI를 이용한 영상의 부호화 및 복호화 과정에서는 현재 영상(xi)에 대한 현재 옵티컬 플로우(gi)를 획득하기 위해 제 1 인코더(110) 및 제 1 디코더(150)를 이용한다.
구체적으로, 이전 복원 영상(yi-1)과 현재 영상(xi)이 제 1 인코더(110)로 입력된다. 제 1 인코더(110)는 훈련의 결과로 설정된 파라미터에 따라 현재 영상(xi)과 이전 복원 영상(yi-1)을 처리하여 현재 옵티컬 플로우에 대한 특징 데이터(wi)를 출력한다.
현재 옵티컬 플로우에 대한 특징 데이터(wi)는 제 1 디코더(150)로 입력된다. 제 1 디코더(150)는 입력된 특징 데이터(wi)를 훈련의 결과로 설정된 파라미터에 따라 처리하여 현재 옵티컬 플로우(gi)를 출력한다.
이전 복원 영상(yi-1)은 예를 들어, 워핑(190)에 의해 현재 옵티컬 플로우(gi)에 따라 워핑되고, 워핑(190)의 결과로 현재 예측 영상(x'i)이 획득된다.
워핑(190)이란, 영상 내 샘플들의 위치를 이동시키는 기하학적 변형의 한 종류이다. 이전 복원 영상(yi-1) 내 샘플들과 현재 영상(xi) 내 샘플들 사이의 상대적인 위치 관계를 나타내는 옵티컬 플로우(gi)에 따라, 예를 들어, 워핑(190)에 의해 이전 복원 영상(yi-1)이 워핑됨으로써 현재 영상(xi)과 유사한 현재 예측 영상(x'i)이 획득된다. 예를 들어, 이전 복원 영상(yi-1) 내 (1, 1)에 위치한 샘플이 현재 영상(xi) 내 (2, 1)에 위치하는 샘플과 가장 유사하다면, 워핑(190)을 통해 이전 복원 영상(yi-1) 내 (1, 1)에 위치한 샘플의 위치가 (2, 1)로 변경될 수 있다.
이전 복원 영상(yi-1)으로부터 생성된 현재 예측 영상(x'i)은 현재 영상(xi) 자체가 아니므로, 현재 예측 영상(x'i)과 현재 영상(xi) 사이의 현재 잔차 데이터(ri)가 획득될 수 있다. 일 예로, 현재 영상(xi) 내 샘플 값들로부터 현재 예측 영상(x'i) 내 샘플 값들을 차감함으로써 현재 잔차 데이터(ri)가 획득될 수 있다.
현재 잔차 데이터(ri)는 제 2 인코더(130)로 입력된다. 제 2 인코더(130)는 훈련의 결과로 설정된 파라미터에 따라 현재 잔차 데이터(ri)를 처리하여 현재 잔차 데이터에 대한 특징 데이터(vi)를 출력한다.
현재 잔차 데이터에 대한 특징 데이터(vi)는 제 2 디코더(170)로 입력된다. 제 2 디코더(170)는 입력된 특징 데이터(vi)를 훈련의 결과로 설정된 파라미터에 따라 처리하여 현재 잔차 데이터(r'i)를 출력한다.
이전 복원 영상(yi-1)에 대한, 예를 들어, 워핑(190)에 의한 워핑에 의해 생성된 현재 예측 영상(x'i)과 현재 잔차 데이터(r'i)의 결합을 통해 현재 복원 영상(yi)이 획득된다.
도 1에 도시된 인터 예측 과정에서, 제 1 디코더(150)는 현재 옵티컬 플로우에 대한 특징 데이터(wi)를 처리하여 현재 옵티컬 플로우(gi)를 출력하고, 제 2 디코더(170)는 현재 잔차 데이터에 대한 특징 데이터(vi)를 처리하여 현재 잔차 데이터(r'i)를 출력한다.
즉, 도 1에 도시된 바와 같이, 제 1 디코더(150)에 의한 처리 과정에서는 현재 옵티컬 플로우에 대한 특징 데이터(wi)만이 이용되고, 제 2 디코더(170)에 의한 처리 과정에서는 현재 잔차 데이터에 대한 특징 데이터(vi)만이 이용된다. 그러나, 현재 옵티컬 플로우에 대한 특징 데이터(wi) 및 현재 잔차 데이터에 대한 특징 데이터(vi)뿐만 아니라 다른 데이터(예를 들어, 후술하는 이전 옵티컬 플로우, 이전 잔차 데이터 등)도 현재 영상(xi)에 대한 정보를 직간접적으로 포함할 수 있는 바, 현재 영상(xi)에 대한 정보를 포함하고 있는 다른 데이터를 제 1 디코더(150)와 제 2 디코더(170)로 입력함으로써 현재 옵티컬 플로우(gi)와 현재 잔차 데이터(r'i)의 정확한 복원이 가능해질 수 있다.
이하에서는, 도 2를 참조하여, 연속하는 영상들 사이에서 획득되는 옵티컬 플로우들과 잔차 데이터들 사이의 예시적인 관계에 대해 설명한다.
도 2를 참조하면, 현재 영상(23)과 제 1 이전 영상(22) 사이에서 제 1 옵티컬 플로우(25)가 획득되고, 제 1 이전 영상(22)과 제 2 이전 영상(21) 사이에서 제 2 옵티컬 플로우(24)가 획득된다.
도 2에 도시된 제 1 옵티컬 플로우(25) 및 제 2 옵티컬 플로우(24)는 옵티컬 플로우에 포함된 샘플들의 크기 또는 움직임 벡터들의 크기(magnitude)에 따라 시각화한 것이다. 제 1 옵티컬 플로우(25)는 현재 옵티컬 플로우로 참조되고, 제 2 옵티컬 플로우(24)는 이전 옵티컬 플로우로 참조될 수 있다.
현재 영상(23)과 제 1 이전 영상(22)에 기반하여 제 1 잔차 데이터(27)가 획득되고, 제 1 이전 영상(22)과 제 2 이전 영상(21)에 기반하여 제 2 잔차 데이터(26)가 획득된다.
일 예로, 제 1 이전 영상(22)을 제 1 옵티컬 플로우(25)에 따라 처리(예를 들어, 워핑 처리)한 영상과 현재 영상(23) 사이의 차이에 대응하는 제 1 잔차 데이터(27)가 획득될 수 있다. 또한, 제 2 이전 영상(21)을 제 2 옵티컬 플로우(24)에 따라 처리(예를 들어, 워핑 처리)한 영상과 제 1 이전 영상(22) 사이의 차이에 대응하는 제 2 잔차 데이터(26)가 획득될 수 있다.
제 1 잔차 데이터(27)는 현재 잔차 데이터로 참조되고, 제 2 잔차 데이터(26)는 이전 잔차 데이터로 참조될 수 있다.
도 2를 참조하면, 제 1 옵티컬 플로우(25), 제 2 옵티컬 플로우(24), 제 1 잔차 데이터(27) 및 제 2 잔차 데이터(26) 사이의 유사성을 확인할 수 있다. 예를 들어, 제 1 옵티컬 플로우(25) 내 A 영역, 제 2 옵티컬 플로우(24) 내 B 영역, 제 1 잔차 데이터(27) 내 C 영역 및 제 2 잔차 데이터(26) 내 D 영역에서 샘플 값들의 유사성을 볼 수 있다.
제 1 옵티컬 플로우(25)는 제 1 이전 영상(22)의 샘플들의 위치가 현재 영상(23) 내에서 어느 정도로, 어느 방향으로 변경되었는지를 나타내므로, 제 1 옵티컬 플로우(25) 내에서 큰 값을 갖는 샘플은 제 1 잔차 데이터(27)에서도 큰 값을 가질 확률이 높을 수 있다. 왜냐하면, 제 1 잔차 데이터(27) 내 소정 위치의 샘플의 값은, 제 1 이전 영상(22)에 대한 처리 결과로 생성된 영상과 현재 영상(23) 내 동일 위치의 샘플 값들 사이의 차이에 대응하는데, 동일 위치의 샘플들은 제 1 이전 영상(22) 내 오브젝트의 움직임으로 인해 서로 다른 값을 갖는 샘플들일 확률이 높을 수 있기 때문이다.
또한, 시간적으로 연속하는 영상들 내 오브젝트는 선형적으로 움직이는 경향이 있으므로, 제 1 옵티컬 플로우(25)와 제 2 옵티컬 플로우(24) 사이의 유사성을 예측할 수 있고, 마찬가지로, 제 1 잔차 데이터(27)와 제 2 잔차 데이터(26) 사이의 유사성을 예측할 수 있다.
즉, 현재 영상(23)에 대한 현재 옵티컬 플로우(예를 들어, 제 1 옵티컬 플로우(25))와 현재 잔차 데이터(예를 들어, 제 1 잔차 데이터(27))를 복원하는데 있어, 이전 옵티컬 플로우(예를 들어, 제 2 옵티컬 플로우(24))와 이전 잔차 데이터(예를 들어, 제 2 잔차 데이터(26))를 이용하는 경우, 현재 옵티컬 플로우와 현재 잔차 데이터의 정확한 복원이 가능해질 수 있다.
도 3은 일 실시예에 따른 영상 복호화 장치(300)의 구성을 도시하는 도면이다.
도 3을 참조하면, 일 실시예에 따른 영상 복호화 장치(300)는 획득부(310)(예를 들어, 비트스트림 획득부일 수 있음) 및 예측 복호화부(330)를 포함한다.
획득부(310) 및 예측 복호화부(330)는 프로세서로 구현될 수 있고, 획득부(310) 및 예측 복호화부(330)는 메모리에 저장된 인스트럭션에 따라 동작할 수 있다.
도 3은 획득부(310) 및 예측 복호화부(330)를 개별적으로 도시하고 있으나, 일 실시예에서, 획득부(310) 및 예측 복호화부(330)는 하나의 엘리먼트, 예를 들어, 하나의 프로세서를 통해 구현될 수 있다. 이 경우, 획득부(310) 및 예측 복호화부(330)는 전용 프로세서로 구현될 수도 있고, AP(application processor), CPU(central processing unit) 또는 GPU(graphic processing unit)와 같은 범용 프로세서와 소프트웨어의 조합을 통해 구현될 수도 있다. 또한, 전용 프로세서의 경우, 본 개시의 실시예를 구현하기 위한 메모리를 포함하거나, 외부 메모리를 이용하기 위한 메모리 처리부를 포함할 수 있다.
일 실시예에서, 획득부(310) 및 예측 복호화부(330)는 복수의 프로세서로 구성될 수도 있다. 이 경우, 전용 프로세서들의 조합으로 구현될 수도 있고, AP, CPU, 또는 GPU와 같은 다수의 범용 프로세서들과 소프트웨어의 조합을 통해 구현될 수도 있다.
획득부(310)는 현재 영상에 대한 부호화 결과를 포함하는 비트스트림을 획득한다.
획득부(310)는 후술하는 영상 부호화 장치(1200)로부터 네트워크를 통해 전달되는 비트스트림을 수신할 수 있다. 또한, 일 실시예에서, 획득부(310)는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM 및 DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical medium) 등을 포함하는 데이터 저장 매체로부터 비트스트림을 획득할 수도 있다.
획득부(310)는 비트스트림을 파싱하여 현재 옵티컬 플로우의 특징 데이터 및 현재 잔차 데이터의 특징 데이터를 획득한다.
현재 옵티컬 플로우의 특징 데이터 및 현재 잔차 데이터의 특징 데이터는 전술한 신경망 기반의 인코더에 의한 처리 결과로 획득된 것일 수 있다.
일 실시예에서, 획득부(310)는 현재 옵티컬 플로우의 특징 데이터에 대응하는 제 1 비트스트림과 현재 잔차 데이터의 특징 데이터에 대응하는 제 2 비트스트림을 획득하고, 제 1 비트스트림 및 제 2 비트스트림을 각각 파싱하여 현재 옵티컬 플로우의 특징 데이터와 현재 잔차 데이터의 특징 데이터를 획득할 수도 있다.
현재 옵티컬 플로우의 특징 데이터 및 현재 잔차 데이터의 특징 데이터는 예측 복호화부(330)로 전달되고, 예측 복호화부(330)는 현재 옵티컬 플로우의 특징 데이터 및 현재 잔차 데이터의 특징 데이터를 이용하여 현재 영상에 대응하는 현재 복원 영상을 획득한다.
도 4 및 도 5를 참조하여, 획득부(310) 및 예측 복호화부(330)의 예시적인 동작에 대해 상세히 설명한다.
도 4는 도 3에 도시된 획득부(310)의 구성을 도시하는 도면이다.
도 4를 참조하면, 획득부(310)는 엔트로피 복호화부(311) 및 역양자화부(313)를 포함한다.
엔트로피 복호화부(311)는 비트스트림에 포함된 빈(bin)들을 엔트로피 코딩하여 현재 옵티컬 플로우의 양자화된 특징 데이터 및 현재 잔차 데이터의 양자화된 특징 데이터를 획득한다.
역양자화부(313)는 현재 옵티컬 플로우의 양자화된 특징 데이터 및 현재 잔차 데이터의 양자화된 특징 데이터를 각각 역양자화하여 현재 옵티컬 플로우의 특징 데이터와 현재 잔차 데이터의 특징 데이터를 획득한다.
구현예에 따라, 일 실시예에서, 획득부(310)는 역변환부를 더 포함할 수 있다. 역변환부는 역양자화부(313)로부터 출력되는 특징 데이터들을 주파수 도메인으로부터 공간 도메인으로 역변환한다. 후술하는 영상 부호화 장치(1200)가 현재 옵티컬 플로우의 특징 데이터와 현재 잔차 데이터의 특징 데이터를 공간 도메인으로부터 주파수 도메인으로 변환하는 경우, 역변환부는 역양자화부(313)로부터 출력되는 특징 데이터들을 주파수 도메인에서 공간 도메인으로 역변환한다.
구현예에 따라, 일 실시예에서, 획득부(310)는 역양자화부(313)를 포함하지 않을 수도 있다. 즉, 엔트로피 복호화부(311)에 의한 처리를 통해 현재 옵티컬 플로우의 특징 데이터 및 현재 잔차 데이터의 특징 데이터가 획득될 수 있다.
또한, 구현예에 따라, 일 실시예에서, 획득부(310)는 비트스트림에 포함된 빈들에 대한 역이진화만을 수행하여 현재 옵티컬 플로우의 특징 데이터 및 현재 잔차 데이터의 특징 데이터를 획득할 수도 있다. 이는, 영상 부호화 장치(1200)가 현재 옵티컬 플로우의 특징 데이터와 현재 잔차 데이터의 특징 데이터를 이진화하여 비트스트림을 생성한 경우, 다시 말하면, 영상 부호화 장치(1200)가 현재 옵티컬 플로우의 특징 데이터와 현재 잔차 데이터의 특징 데이터에 대해 엔트로피 부호화, 변환 및 양자화를 적용하지 않는 경우를 위해 수행될 수 있다.
다음으로, 도 5는 도 3에 도시된 예측 복호화부(330)의 구성을 도시하는 도면이다.
도 5를 참조하면, 예측 복호화부(330)는 전처리 신경망(339), 제 1 디코더(331), 제 2 디코더(333), 움직임 보상부(335) 및 결합부(337)를 포함할 수 있다.
전처리 신경망(339), 제 1 디코더(331) 및 제 2 디코더(333)는 메모리에 저장될 수 있다. 일 실시예에서, 전처리 신경망(339), 제 1 디코더(331) 및 제 2 디코더(333)는 AI를 위한 적어도 하나의 전용 프로세서로 구현될 수도 있다.
도 5는 하나의 전처리 신경망(339)을 도시하고 있으나, 도 6 내지 도 10을 참조하여 후술하는 것과 같이, 예측 복호화부(330)는 복수의 전처리 신경망을 이용할 수도 있다.
획득부(310)에 의해 출력된 현재 옵티컬 플로우의 특징 데이터는 제 1 디코더(331)로 입력되고, 현재 잔차 데이터의 특징 데이터는 제 2 디코더(333)로 입력된다. 또한, 현재 옵티컬 플로우의 특징 데이터, 이전 옵티컬 플로우의 특징 데이터 또는 이전 잔차 데이터의 특징 데이터 중 적어도 하나가 전처리 신경망(339)에 의해 처리된 후, 제 1 디코더(331) 또는 제 2 디코더(333)로 입력된다.
앞서 도 1 및 도 2를 참조하여 설명한 것과 같이, 현재 옵티컬 플로우 및 현재 잔차 데이터의 복원을 위해 제 1 디코더(331) 및 제 2 디코더(333) 각각으로 현재 옵티컬 플로우의 특징 데이터와 현재 잔차 데이터의 특징 데이터뿐만 아니라 전처리 신경망(339)을 통해 획득되는 데이터를 입력함으로써 현재 옵티컬 플로우 및 현재 잔차 데이터의 정확한 복원이 가능해질 수 있다.
일 예로, 서로 유사한 특성을 갖는 이전 옵티컬 플로우의 특징 데이터와 현재 옵티컬 플로우의 특징 데이터를 이용하여 현재 옵티컬 플로우를 복원한다면, 현재 옵티컬 플로우의 특징 데이터만을 이용하는 경우에 비해 복원 성능이 향상될 수 있다.
전처리 신경망(339)을 이용한 현재 옵티컬 플로우와 현재 잔차 데이터의 예시적인 복원 과정에 대해서는 도 6 내지 도 10을 참조하여 상세히 후술한다.
제 1 디코더(331)를 통해 획득되는 현재 옵티컬 플로우는 움직임 보상부(335)로 제공되고, 제 2 디코더(333)를 통해 획득되는 현재 잔차 데이터는 결합부(337)로 제공된다.
움직임 보상부(335)는 이전 복원 영상을 현재 옵티컬 플로우에 따라 처리하여 현재 영상과 유사한 현재 예측 영상을 생성한다. 이전 복원 영상은 현재 영상의 처리 전에 처리 대상이었던 이전 영상에 대한 복호화를 통해 복원된 영상이다.
움직임 보상부(335)는 현재 예측 영상의 생성을 위해 이전 복원 영상을 워핑할 수 있다. 현재 예측 영상의 생성을 위한 워핑은 하나의 예시이고, 움직임 보상부(335)는 이전 복원 영상 내 샘플들의 위치를 변경하는 다양한 영상 처리를 이전 복원 영상에 대해 적용할 수 있다.
움직임 보상부(335)에 의해 생성된 현재 예측 영상은 결합부(337)로 제공된다.
결합부(337)는 현재 예측 영상과 현재 잔차 데이터를 결합하여 현재 복원 영상을 획득한다. 일 예에서, 결합부(337)는 현재 예측 영상의 샘플 값들과 현재 잔차 데이터의 샘플 값들을 합산 값들을 포함하는 현재 복원 영상을 획득할 수 있다. 현재 복원 영상은 다음 영상의 복호화 과정에서 이용될 수 있다.
이하에서는, 도 6 내지 도 10을 참조하여, 전처리 신경망(339), 제 1 디코더(331) 및 제 2 디코더(333)를 이용하여 현재 옵티컬 플로우와 현재 잔차 데이터를 복원하는 예시적인 과정을 상세히 설명한다.
도 6은 일 실시예에 따른 제 1 전처리 신경망(600)을 이용하여 현재 잔차 데이터를 복원하는 과정을 설명하기 위한 도면이다.
도 6을 참조하면, 현재 옵티컬 플로우의 특징 데이터는 제 1 디코더(331)로 입력되고, 제 1 디코더(331)에 의한 처리 결과로 현재 옵티컬 플로우가 획득된다.
현재 옵티컬 플로우의 특징 데이터가 제 1 디코더(331)로 입력되는 것과 별개로, 현재 옵티컬 플로우의 특징 데이터 또는 이전 옵티컬 플로우의 특징 데이터 중 적어도 하나가 제 1 전처리 신경망(600)에 입력된다.
제 1 전처리 신경망(600)은 입력된 특징 데이터를 훈련에 따라 설정된 파라미터에 기반하여 처리한다. 제 1 전처리 신경망(600)에 의한 처리를 통해 획득되는 특징 데이터는 현재 잔차 데이터의 특징 데이터와 연접(concatenation)된 후 제 2 디코더(333)로 입력된다. 여기서, 연접(concatenation)이란, 두 개 이상의 특징 데이터를 채널 방향으로 결합하는 처리를 의미할 수 있다.
제 2 디코더(333)는 입력된 특징 데이터를 처리하여 현재 잔차 데이터를 출력한다.
도 6에 개시된 실시예에서는, 현재 잔차 데이터를 복원하기 위해 현재 옵티컬 플로우의 특징 데이터 또는 이전 옵티컬 플로우의 특징 데이터 중 적어도 하나를 이용한다. 즉, 현재 잔차 데이터와 연관성이 있는 현재 옵티컬 플로우의 특징 데이터 또는 이전 옵티컬 플로우의 특징 데이터 중 적어도 하나를 이용함으로써 현재 잔차 데이터의 복원 성능이 향상될 수 있다.
현재 잔차 데이터와, 현재 옵티컬 플로우 및 이전 옵티컬 플로우 사이의 연관성을 구체적으로 설명하면, 먼저, 현재 잔차 데이터는 현재 영상과 현재 예측 영상으로부터 획득되는 것이고, 현재 옵티컬 플로우는 현재 영상과 이전 복원 영상으로부터 획득되는 것이므로 모두 현재 영상의 정보를 포함한다는 측면에서 이들 사이의 연관성은 쉽게 확인될 수 있다.
이전 옵티컬 플로우는 이전 영상과, 이전 영상의 처리 전에 복원된 영상으로부터 획득된 것이고, 현재 잔차 데이터는 현재 영상과 현재 예측 영상으로부터 획득된 것인데, 현재 예측 영상은 이전 영상에 대응하는 이전 복원 영상으로부터 생성되는 것이므로, 이전 옵티컬 플로우와 현재 잔차 데이터는 모두 이전 영상에 대한 정보를 포함하고 있다.
또한, 도 2를 참조하여 설명한 것과 같이, 이전 옵티컬 플로우와 현재 옵티컬 플로우 사이에 유사점이 존재할 수 있으므로, 현재 옵티컬 플로우를 매개로 하여 이전 옵티컬 플로우와 현재 잔차 데이터 사이의 연관성이 확인될 수도 있다.
제 1 전처리 신경망(600)은 현재 옵티컬 플로우의 특징 데이터 및/또는 이전 옵티컬 플로우의 특징 데이터의 도메인 변경, 및 현재 옵티컬 플로우의 특징 데이터 및/또는 이전 옵티컬 플로우의 특징 데이터와 현재 잔차 데이터 사이의 불일치에 대한 보상을 위한 것일 수 있다.
구체적으로, 제 1 전처리 신경망(600)은, 현재 옵티컬 플로우의 특징 데이터 및/또는 이전 옵티컬 플로우의 특징 데이터를 옵티컬 플로우 도메인에서 잔차 데이터 도메인으로 변경할 수 있다. 옵티컬 플로우의 특징 데이터는 옵티컬 플로우의 잠재된 특성을 나타내고, 잔차 데이터의 특징 데이터는 잔차 데이터의 잠재된 특성을 나타내므로, 제 1 전처리 신경망(600)은 이들의 도메인들이 일치되도록 변경시킬 수 있다.
또한, 제 1 전처리 신경망(600)은 제 1 전처리 신경망(600)을 통해 획득되는 특징 데이터가 현재 잔차 데이터의 특징 데이터에 좀더 유사해지도록, 현재 옵티컬 플로우의 특징 데이터 및/또는 이전 옵티컬 플로우의 특징 데이터를 처리할 수도 있다. 현재 옵티컬 플로우의 특징 데이터 및/또는 이전 옵티컬 플로우의 특징 데이터와 현재 잔차 데이터 사이의 불일치는 샘플 값들의 차이 또는 샘플 위치들의 차이를 예시할 수 있는데, 제 1 전처리 신경망(600)은 이러한 불일치를 보상할 수 있다.
도 7은 일 실시예에 따른 제 2 전처리 신경망(700)을 이용하여 현재 옵티컬 플로우를 복원하는 과정을 설명하기 위한 도면이다.
도 7을 참조하면, 현재 잔차 데이터의 특징 데이터는 제 2 디코더(333)로 입력되고, 제 2 디코더(333)에 의한 처리 결과로 현재 잔차 데이터가 획득된다.
이전 옵티컬 플로우의 특징 데이터는 제 2 전처리 신경망(700)에 입력되고, 제 2 전처리 신경망(700)에 의한 처리를 통해 획득되는 특징 데이터는 현재 옵티컬 플로우의 특징 데이터와 연접(concatenation)된 후 제 1 디코더(331)로 입력된다. 제 1 디코더(331)는 입력된 특징 데이터를 처리하여 현재 옵티컬 플로우를 출력한다.
도 7에 개시된 실시예에서는, 현재 옵티컬 플로우를 복원하기 위해 이전 옵티컬 플로우의 특징 데이터를 이용한다. 즉, 현재 옵티컬 플로우와 연관성이 있는 이전 옵티컬 플로우의 특징 데이터를 이용함으로써 현재 옵티컬 플로우의 복원 성능이 향상될 수 있다.
도 2를 참조하여 설명한 바와 같이, 시간적으로 연속하는 영상들 내 오브젝트는 선형적으로 움직이는 경향이 있으므로, 현재 옵티컬 플로우와 이전 옵티컬 플로우 사이의 연관성을 확인할 수 있다.
제 2 전처리 신경망(700)은 현재 옵티컬 플로우의 특징 데이터와 이전 옵티컬 플로우의 특징 데이터 사이의 불일치에 대한 보상을 위해 이용될 수 있다. 구체적으로, 제 2 전처리 신경망(700)은, 제 2 전처리 신경망(700)을 통해 획득되는 특징 데이터가 현재 옵티컬 플로우의 특징 데이터에 좀더 유사해지도록, 이전 옵티컬 플로우의 특징 데이터를 처리할 수 있다. 현재 옵티컬 플로우의 특징 데이터와 이전 옵티컬 플로우의 특징 데이터 사이의 불일치는 샘플 값들의 차이 또는 샘플 위치들의 차이를 예시할 수 있는데, 제 2 전처리 신경망(700)은 이러한 불일치를 보상할 수 있는 것이다.
도 8은 일 실시예에 따른 제 3 전처리 신경망(800)을 이용하여 현재 옵티컬 플로우를 복원하는 과정을 설명하기 위한 도면이다.
도 8을 참조하면, 현재 잔차 데이터의 특징 데이터는 제 2 디코더(333)로 입력되고, 제 2 디코더(333)에 의한 처리 결과로 현재 잔차 데이터가 획득된다.
이전 잔차 데이터의 특징 데이터는 제 3 전처리 신경망(800)에 입력되고, 제 3 전처리 신경망(800)을 통해 획득되는 특징 데이터는 현재 옵티컬 플로우의 특징 데이터와 연접(concatenation)된 후 제 1 디코더(331)로 입력된다. 제 1 디코더(331)는 입력된 특징 데이터를 처리하여 현재 옵티컬 플로우를 출력한다.
도 8에 개시된 실시예에서는, 현재 옵티컬 플로우를 복원하기 위해 이전 잔차 데이터를 이용한다. 즉, 현재 옵티컬 플로우와 연관성이 있는 이전 잔차 데이터의 특징 데이터를 이용함으로써 현재 옵티컬 플로우의 복원 성능이 향상될 수 있다.
이전 잔차 데이터와 현재 옵티컬 플로우 사이의 연관성을 설명하면, 먼저, 현재 옵티컬 플로우는 현재 영상과 이전 복원 영상으로부터 획득되는 것이고, 이전 잔차 데이터는 이전 영상과 이전 예측 영상으로부터 획득된 것이며, 이전 복원 영상은 이전 영상에 대응하므로, 이전 잔차 데이터와 현재 옵티컬 플로우는 모두 이전 영상에 대한 정보를 포함하고 있는 것을 알 수 있다.
제 3 전처리 신경망(800)은 이전 잔차 데이터의 특징 데이터의 도메인 변경, 및 현재 옵티컬 플로우와 이전 잔차 데이터 사이의 불일치에 대한 보상을 위해 이용될 수 있다.
구체적으로, 제 3 전처리 신경망(800)은, 이전 잔차 데이터의 특징 데이터를 잔차 데이터 도메인에서 옵티컬 플로우 도메인으로 변경할 수 있다.
또한, 제 3 전처리 신경망(800)은 제 3 전처리 신경망(800)을 통해 획득되는 특징 데이터가 현재 옵티컬 플로우의 특징 데이터에 좀더 유사해지도록, 이전 잔차 데이터의 특징 데이터를 처리할 수도 있다. 이전 잔차 데이터의 특징 데이터와 현재 옵티컬 플로우의 특징 데이터 사이의 불일치는 샘플 값들의 차이 또는 샘플 위치들의 차이를 예시할 수 있는데, 제 3 전처리 신경망(800)은 이러한 불일치를 보상하는 것이다.
도 8에 도시된 바와 같이, 현재 잔차 데이터의 특징 데이터는 현재 옵티컬 플로우를 복원하는데 이용되지 않는다. 도 12 내지 도 15를 참조하여 후술하는 바와 같이, 영상 부호화 장치(1200)는 현재 옵티컬 플로우의 복원이 이루어진 후에 현재 잔차 데이터를 획득할 수 있다. 즉, 일 실시예에 따르면, 영상 부호화 장치(1200)는 현재 옵티컬 플로우의 복원을 위해 현재 잔차 데이터를 이용할 수 없으므로, 영상 복호화 장치(300)도 현재 옵티컬 플로우를 복원하는데 현재 잔차 데이터의 특징 데이터를 이용하지 않는 것이다.
도 9는 일 실시예에 따른 제 4 전처리 신경망(900)을 이용하여 현재 잔차 데이터를 복원하는 과정을 설명하기 위한 도면이다.
도 9를 참조하면, 현재 옵티컬 플로우의 특징 데이터는 제 1 디코더(331)로 입력되고, 제 1 디코더(331)에 의한 처리 결과로 현재 옵티컬 플로우가 획득된다.
이전 잔차 데이터의 특징 데이터는 제 4 전처리 신경망(900)에 입력되고, 제 4 전처리 신경망(900)을 통해 획득되는 특징 데이터는 현재 잔차 데이터의 특징 데이터와 연접(concatenation)된 후 제 2 디코더(333)로 입력된다. 제 2 디코더(333)는 입력된 특징 데이터를 처리하여 현재 잔차 데이터를 출력한다.
도 9에 개시된 실시예에서는, 현재 잔차 데이터를 복원하기 위해 이전 잔차 데이터의 특징 데이터를 이용한다. 즉, 현재 잔차 데이터와 연관성이 있는 이전 잔차 데이터의 특징 데이터를 이용함으로써 현재 잔차 데이터의 복원 성능이 향상될 수 있다.
도 2를 참조하여 설명한 바와 같이, 시간적으로 연속하는 영상들 내 오브젝트는 선형적으로 움직이는 경향이 있으므로, 현재 잔차 데이터와 이전 잔차 데이터 사이의 연관성을 확인할 수 있다.
제 4 전처리 신경망(900)은 현재 잔차 데이터의 특징 데이터와 이전 잔차 데이터의 특징 데이터 사이의 불일치에 대한 보상을 위해 이용될 수 있다. 구체적으로, 제 4 전처리 신경망(900)은, 제 4 전처리 신경망(900)을 통해 획득되는 특징 데이터가 현재 잔차 데이터의 특징 데이터에 좀더 유사해지도록, 이전 잔차 데이터의 특징 데이터를 처리할 수 있다. 현재 잔차 데이터의 특징 데이터와 이전 잔차 데이터의 특징 데이터 사이의 불일치는 샘플 값들의 차이 또는 샘플 위치들의 차이를 예시할 수 있는데, 제 4 전처리 신경망(900)은 이러한 불일치를 보상할 수 있는 것이다.
도 10은 일 실시예에 따른 제 1 전처리 신경망(600), 제 2 전처리 신경망(700), 제 3 전처리 신경망(800) 및 제 4 전처리 신경망(900)을 이용하여 현재 옵티컬 플로우와 현재 잔차 데이터를 복원하는 과정을 설명하기 위한 도면이다.
영상 복호화 장치(300)는 전술한 제 1 전처리 신경망(600), 제 2 전처리 신경망(700), 제 3 전처리 신경망(800) 또는 제 4 전처리 신경망(900) 중 적어도 하나를 이용하여 현재 옵티컬 플로우와 현재 잔차 데이터를 복원할 수 있다.
도 10은 영상 복호화 장치(300)가 제 1 전처리 신경망(600), 제 2 전처리 신경망(700), 제 3 전처리 신경망(800) 및 제 4 전처리 신경망(900) 모두를 이용하여 현재 옵티컬 플로우와 현재 잔차 데이터를 복원하는 과정을 도시하고 있다.
도 10에 도시된 바와 같이, 이전 옵티컬 플로우의 특징 데이터는 제 2 전처리 신경망(700)에 의해 처리되고, 이전 잔차 데이터의 특징 데이터는 제 3 전처리 신경망(800)에 의해 처리된다. 제 2 전처리 신경망(700)과 제 3 전처리 신경망(800)으로부터 출력되는 특징 데이터는 현재 옵티컬 플로우의 특징 데이터와 연접된 후 제 1 디코더(331)로 입력된다. 제 1 디코더(331)는 입력된 특징 데이터를 처리하여 현재 옵티컬 플로우를 복원한다.
제 2 디코더(333)로 입력되는 데이터를 설명하면, 현재 옵티컬 플로우의 특징 데이터 또는 이전 옵티컬 플로우의 특징 데이터 중 적어도 하나는 제 1 전처리 신경망(600)에 의해 처리되고, 이전 잔차 데이터의 특징 데이터는 제 4 전처리 신경망(900)에 의해 처리된다. 제 1 전처리 신경망(600)과 제 4 전처리 신경망(900)으로부터 출력되는 특징 데이터는 현재 잔차 데이터의 특징 데이터와 연접된 후 제 2 디코더(333)로 입력된다. 제 2 디코더(333)는 입력된 특징 데이터를 처리하여 현재 잔차 데이터를 복원한다.
도 10은 현재 옵티컬 플로우와 현재 잔차 데이터를 복원하는데 제 1 전처리 신경망(600), 제 2 전처리 신경망(700), 제 3 전처리 신경망(800) 및 제 4 전처리 신경망(900)이 모두 이용되는 것으로 도시하고 있으나, 이는 하나의 예시일 뿐이고, 제 1 전처리 신경망(600), 제 2 전처리 신경망(700), 제 3 전처리 신경망(800) 또는 제 4 전처리 신경망(900) 중 적어도 하나는 영상 복호화 장치(300)에 의해 이용되지 않을 수 있다.
도 11은 일 실시예에 따른 영상 복호화 방법의 순서도이다.
S1110 단계에서, 영상 복호화 장치(300)는 비트스트림으로부터 현재 옵티컬 플로우에 대한 특징 데이터 및 현재 잔차 데이터에 대한 특징 데이터를 획득한다.
영상 복호화 장치(300)는 비트스트림에 포함된 빈들에 대해 역이진화, 엔트로피 복호화, 역양자화 또는 역변환 중 적어도 하나를 적용하여 현재 옵티컬 플로우에 대한 특징 데이터 및 현재 잔차 데이터에 대한 특징 데이터를 획득할 수 있다.
S1120 단계에서, 영상 복호화 장치(300)는 현재 옵티컬 플로우에 대한 특징 데이터를 제 1 디코더(331)에 적용하여 현재 옵티컬 플로우를 획득한다.
일 실시예에서, 도 7 및 도 8과 관련하여 설명한 것과 같이, 이전 옵티컬 플로우에 대한 특징 데이터 또는 이전 잔차 데이터에 대한 특징 데이터 중 적어도 하나가 전처리 신경망에 의해 처리된 후 현재 옵티컬 플로우에 대한 특징 데이터와 함께 제 1 디코더(331)로 입력될 수 있다.
S1130 단계에서, 영상 복호화 장치(300)는 현재 옵티컬 플로우에 대한 특징 데이터 또는 이전 옵티컬 플로우에 대한 특징 데이터 중 적어도 하나를 전처리 신경망에 적용한다.
S1140 단계에서, 영상 복호화 장치(300)는 전처리 신경망으로부터 획득되는 특징 데이터와 현재 잔차 데이터에 대한 특징 데이터를 연접(concatenation)한다. 일 실시예에서, 도 9과 관련하여 설명한 것과 같이, 이전 잔차 데이터에 대한 특징 데이터도 전처리 신경망에 의해 처리된 후 현재 잔차 데이터에 대한 특징 데이터에 연접될 수 있다.
S1150 단계에서, 영상 복호화 장치(300)는 연접 결과를 제 2 디코더(333)에 적용하여 현재 잔차 데이터를 획득한다.
S1160 단계에서, 영상 복호화 장치(300)는 현재 옵티컬 플로우를 기초로 이전 복원 영상으로부터 현재 예측 영상을 생성한다. 일 실시예에서, 영상 복호화 장치(300)는 이전 복원 영상을 현재 옵티컬 플로우에 따라 워핑하여 현재 예측 영상을 생성할 수 있다.
S1170 단계에서, 영상 복호화 장치(300)는 현재 예측 영상과 현재 잔차 데이터를 이용하여 현재 영상을 복원한다. 일 실시예에서, 영상 복호화 장치(300)는 현재 예측 영상의 샘플 값들과 현재 잔차 데이터의 샘플 값들을 합하여 현재 영상을 복원할 수 있다.
이하에서는, 도 12 내지 도 15를 참조하여 영상 부호화 장치(1200)의 일 실시예에 따른 동작에 대해 설명한다.
도 12는 일 실시예에 따른 영상 부호화 장치(1200)의 구성을 도시하는 도면이다.
도 12를 참조하면, 영상 부호화 장치(1200)는 예측 부호화부(1210), 생성부(1230), 획득부(1250) 및 예측 복호화부(1270)를 포함한다.
예측 부호화부(1210), 생성부(1230), 획득부(1250) 및 예측 복호화부(1270)는 프로세서로 구현될 수 있고, 예측 부호화부(1210), 생성부(1230), 획득부(1250) 및 예측 복호화부(1270)는 메모리에 저장된 인스트럭션에 따라 동작할 수 있다.
도 12는 예측 부호화부(1210), 생성부(1230), 획득부(1250) 및 예측 복호화부(1270)를 개별적으로 도시하고 있으나, 예측 부호화부(1210), 생성부(1230), 획득부(1250) 및 예측 복호화부(1270)는 하나의 엘리먼트, 예를 들어, 하나의 프로세서를 통해 구현될 수 있다. 이 경우, 예측 부호화부(1210), 생성부(1230), 획득부(1250) 및 예측 복호화부(1270)는 전용 프로세서로 구현되거나, AP(application processor), CPU(central processing unit) 또는 GPU(graphic processing unit)와 같은 범용 프로세서와 소프트웨어의 조합을 통해 구현될 수도 있다. 또한, 전용 프로세서의 경우, 본 개시의 실시예를 구현하기 위한 메모리를 포함하거나, 외부 메모리를 이용하기 위한 메모리 처리부를 포함할 수 있다.
예측 부호화부(1210), 생성부(1230), 획득부(1250) 및 예측 복호화부(1270)는 복수의 프로세서로 구성될 수도 있다. 이 경우, 전용 프로세서들의 조합으로 구현되거나, AP, CPU 또는 GPU와 같은 다수의 범용 프로세서들과 소프트웨어의 조합을 통해 구현될 수도 있다.
예측 부호화부(1210)는 현재 영상과 이전 복원 영상으로부터 현재 옵티컬 플로우의 특징 데이터와 현재 잔차 데이터의 특징 데이터를 획득한다.
예측 부호화부(1210)는 현재 옵티컬 플로우의 특징 데이터와 현재 잔차 데이터의 특징 데이터의 획득을 위해, 예를 들어, 도 13에 도시된 것과 같이, 신경망 기반의 제 1 인코더(1211)와 신경망 기반의 제 2 인코더(1215)를 이용할 수 있다.
예측 부호화부(1210)에 의해 획득된 현재 옵티컬 플로우의 특징 데이터와 현재 잔차 데이터의 특징 데이터는 생성부(1230)로 전달된다.
생성부(1230)는 현재 옵티컬 플로우의 특징 데이터와 현재 잔차 데이터의 특징 데이터로부터 비트스트림을 생성한다. 일 실시예에서, 생성부(1230)는 현재 옵티컬 플로우의 특징 데이터에 대응하는 제 1 비트스트림, 및 현재 잔차 데이터의 특징 데이터에 대응하는 제 2 비트스트림을 생성할 수도 있다.
비트스트림은 네트워크를 통해 영상 복호화 장치(300)로 전송될 수 있다. 또한, 일 실시예에서, 비트스트림은 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM 및 DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical medium) 등을 포함하는 데이터 저장 매체에 기록될 수도 있다.
획득부(1250)는 생성부(1230)에 의해 생성된 비트스트림으로부터 현재 옵티컬 플로우의 특징 데이터와 현재 잔차 데이터의 특징 데이터를 획득한다.
현재 옵티컬 플로우의 특징 데이터와 현재 잔차 데이터의 특징 데이터는 예측 복호화부(1270)로 전달되고, 예측 복호화부(1270)는 현재 옵티컬 플로우의 특징 데이터와 현재 잔차 데이터의 특징 데이터를 이용하여 현재 복원 영상을 획득한다.
획득부(1250) 및 예측 복호화부(1270)의 동작은 앞서 도 3 내지 도 5에 도시된 획득부(310) 및 예측 복호화부(330)의 동작에 대응할 수 있으므로 상세한 설명을 생략한다.
도 13 및 도 14를 참조하여, 예시적인 예측 부호화부(1210) 및 생성부(1230)에 대해 좀더 상세히 설명한다.
도 13은 도 12에 도시된 예측 부호화부(1210)의 구성을 도시하는 도면이다.
예측 부호화부(1210)는 제 1 인코더(1211), 제 2 인코더(1215) 및 차감부(1213)를 포함한다.
도 13을 참조하면, 현재 영상과 이전 복원 영상이 제 1 인코더(1211)로 입력되고, 제 1 인코더(1211)는 훈련의 결과로 설정된 파라미터에 따라 현재 영상 및 이전 복원 영상을 처리하여 현재 옵티컬 플로우의 특징 데이터를 출력한다.
예측 복호화부(1270)가 현재 옵티컬 플로우에 기초하여 이전 복원 영상으로부터 생성한 현재 예측 영상과 현재 영상이 차감부(1213)로 제공된다.
차감부(1213)는 현재 영상과 현재 예측 영상 사이의 현재 잔차 데이터를 획득한다. 차감부(1213)는 현재 영상의 샘플 값들로부터 현재 예측 영상의 샘플 값들을 차감하여 현재 잔차 데이터를 획득할 수 있다.
현재 잔차 데이터는 제 2 인코더(1215)로 입력되고, 제 2 인코더(1215)는 훈련의 결과로 설정된 파라미터에 따라 현재 잔차 데이터를 처리하여 현재 잔차 데이터의 특징 데이터를 출력한다.
생성부(1230)는 예측 부호화부(1210)로부터 출력된 현재 옵티컬 플로우의 특징 데이터 및 현재 잔차 데이터의 특징 데이터에 기초하여 비트스트림을 생성한다.
도 14는 도 12에 도시된 생성부(1230)의 구성을 도시하는 도면이다.
도 14를 참조하면, 생성부(1230)는 양자화부(1231) 및 엔트로피 부호화부(1233)를 포함한다.
양자화부(1231)는 현재 옵티컬 플로우의 특징 데이터와 현재 잔차 데이터의 특징 데이터를 양자화한다.
엔트로피 부호화부(1233)는 현재 옵티컬 플로우의 양자화된 특징 데이터와 현재 잔차 데이터의 양자화된 특징 데이터를 엔트로피 부호화하여 비트스트림을 생성한다.
구현예에 따라, 일 실시예에서, 생성부(1230)는 변환부를 더 포함할 수 있다. 변환부는 현재 옵티컬 플로우의 특징 데이터와 현재 잔차 데이터의 특징 데이터를 공간 도메인에서 주파수 도메인으로 변환하여 양자화부(1231)로 제공한다.
구현예에 따라, 일 실시예에서, 생성부(1230)는 양자화부(1231)를 포함하지 않을 수도 있다. 즉, 엔트로피 부호화부(1233)에 의한 처리를 통해 현재 옵티컬 플로우의 특징 데이터 및 현재 잔차 데이터의 특징 데이터에 대응하는 비트스트림이 획득될 수 있다.
또한, 구현예에 따라, 일 실시예에서, 생성부(1230)는 현재 옵티컬 플로우의 특징 데이터와 현재 잔차 데이터의 특징 데이터에 대해 이진화만을 수행하여 비트스트림을 생성할 수도 있다. 즉, 생성부(1230)가 이진화만을 수행하는 경우, 양자화부(1231), 엔트로피 부호화부(1233)는 생성부(1230)에 포함되지 않을 수 있다.
도 15는 일 실시예에 따른 영상 부호화 방법의 순서도이다.
S1510 단계에서, 영상 부호화 장치(1200)는 현재 영상 및 이전 복원 영상을 신경망 기반의 제 1 인코더(1211)에 적용하여 현재 옵티컬 플로우에 대한 특징 데이터를 획득한다. 현재 영상과 이전 복원 영상은 연접(concatenation)된 후 제 1 인코더(1211)로 입력될 수 있다.
S1520 단계에서, 영상 부호화 장치(1200)는 현재 옵티컬 플로우에 대한 특징 데이터를 신경망 기반의 제 1 디코더(331)에 적용하여 현재 옵티컬 플로우를 획득한다. 일 실시예에서, 영상 부호화 장치(1200)는 현재 옵티컬 플로우에 대한 특징 데이터에 대응하는 비트스트림을 생성하고, 생성된 비트스트림으로부터 현재 옵티컬 플로우에 대한 특징 데이터를 획득하여 제 1 디코더(331)로 입력할 수도 있다. 따라서, 영상 부호화 장치(1200)가 영상 복호화 장치(300)에 의한 현재 옵티컬 플로우의 복원 과정과 동일하게 현재 옵티컬 플로우를 복원할 수 있다.
현재 옵티컬 플로우의 획득을 위해, 도 7 및 도 8을 참조하여 설명한 것과 같이, 이전 옵티컬 플로우의 특징 데이터 또는 이전 잔차 데이터의 특징 데이터 중 적어도 하나가 전처리 신경망에 의해 처리되고, 처리된 결과가 현재 옵티컬 플로우에 대한 특징 데이터와 연접된 후 제 1 디코더(331)로 입력될 수도 있다.
S1530 단계에서, 영상 부호화 장치(1200)는 현재 옵티컬 플로우를 기초로 이전 복원 영상으로부터 현재 예측 영상을 생성한다. 일 실시예에서, 영상 부호화 장치(1200)는 이전 복원 영상을 현재 옵티컬 플로우에 따라 워핑하여 현재 예측 영상을 생성할 수 있다.
S1540 단계에서, 영상 부호화 장치(1200)는 현재 영상과 현재 예측 영상 사이의 현재 잔차 데이터를 신경망 기반의 제 2 인코더(1215)에 적용하여 현재 잔차 데이터에 대한 특징 데이터를 획득한다.
S1550 단계에서, 영상 부호화 장치(1200)는 현재 옵티컬 플로우에 대한 특징 데이터 및 현재 잔차 데이터에 대한 특징 데이터에 대응하는 비트스트림을 생성한다.
영상 부호화 장치(1200)는 현재 잔차 데이터에 대한 특징 데이터를 제 2 디코더(333)에 적용하여 현재 잔차 데이터를 복원할 수 있다. 이 때, 도 6 및 도 9를 참조하여 설명한 것과 같이, 현재 옵티컬 플로우의 특징 데이터, 이전 옵티컬 플로우의 특징 데이터 또는 이전 잔차 데이터의 특징 데이터 중 적어도 하나가 전처리 신경망에 의해 처리되고, 처리된 결과가 현재 잔차 데이터에 대한 특징 데이터에 연접된 후 제 2 디코더(333)로 입력될 수도 있다.
영상 부호화 장치(1200)는 현재 예측 영상과 현재 잔차 데이터를 결합하여 현재 복원 영상을 획득하고, 현재 복원 영상을 다음 영상의 부호화에 이용할 수 있다.
전술한, 제 1 인코더(1211), 제 2 인코더(1215), 제 1 디코더(331), 제 2 디코더(333), 제 1 전처리 신경망(600), 제 2 전처리 신경망(700), 제 3 전처리 신경망(800) 또는 제 4 전처리 신경망(900)은 적어도 하나의 컨볼루션 레이어를 포함할 수 있다. 제 1 인코더(1211), 제 2 인코더(1215), 제 1 디코더(331), 제 2 디코더(333), 제 1 전처리 신경망(600), 제 2 전처리 신경망(700), 제 3 전처리 신경망(800) 및 제 4 전처리 신경망(900)이 가질 수 있는 예시적인 구조에 대해 도 16을 참조하여 설명한다.
도 16은 일 실시예에 따른 신경망(1600)의 구조를 예시하는 도면이다.
도 16에 도시된 바와 같이, 입력 데이터(1605)는 제 1 컨볼루션 레이어(1610)로 입력된다. 여기서, 입력 데이터(1605)는 신경망(1600)이 제 1 인코더(1211), 제 2 인코더(1215), 제 1 디코더(331), 제 2 디코더(333), 제 1 전처리 신경망(600), 제 2 전처리 신경망(700), 제 3 전처리 신경망(800) 및 제 4 전처리 신경망(900) 중 어느 것인지 따라 달라진다.
일 예로, 신경망(1600)이 제 1 인코더(1211)의 경우, 입력 데이터(1605)는 현재 영상과 이전 복원 영상이 연접된(concatenated) 결과에 대응하고, 다른 예로, 신경망(1600)이 제 2 인코더(1215)의 경우, 입력 데이터(1605)는 현재 잔차 데이터에 대응할 수 있다.
도 16에 도시된 제 1 컨볼루션 레이어(1610)에 표시된 3X3X4는 3x3의 크기의 4개의 필터 커널을 이용하여 1개의 입력 데이터(1605)에 대해 컨볼루션 처리를 하는 것을 예시한다. 컨볼루션 처리 결과 4개의 필터 커널에 의해 4개의 특징 맵이 생성된다. 제 1 컨볼루션 레이어(1610)에 의해 생성된 특징 맵들은 입력 데이터(1605)의 고유한 특성들을 나타낸다. 예를 들어, 각 특징 맵은 입력 데이터(1605)의 수직 방향 특성, 수평 방향 특성 또는 에지 특성 등을 나타낼 수 있다.
도 17을 참조하여, 제 1 컨볼루션 레이어(1610)에서의 예시적인 컨볼루션 연산에 대해 상세히 설명한다.
제 1 컨볼루션 레이어(1610)에서 이용되는 3X3의 크기를 갖는 필터 커널(1730)의 파라미터들과 그에 대응하는 입력 데이터(1605) 내 샘플 값들 사이의 곱 연산 및 덧셈 연산을 통해 하나의 특징 맵(1750)이 생성될 수 있다. 제 1 컨볼루션 레이어(1610)에서는 4개의 필터 커널(1730)이 이용되므로, 4개의 필터 커널(1730)을 이용한 컨볼루션 연산 과정을 통해 4개의 특징 맵(1750)이 생성될 수 있다.
도 17에서 입력 데이터(1605)에 표시된 I1 내지 I49는 입력 데이터(1605)의 샘플들을 나타내고, 필터 커널(1730)에 표시된 F1 내지 F9는 필터 커널(1730)의 샘플(파라미터로 참조될 수도 있다)들을 나타낸다. 또한, 특징 맵(1750)에 표시된 M1 내지 M9는 특징 맵(1750)의 샘플들을 나타낸다.
컨볼루션 연산 과정에서, 입력 데이터(1605)의 I1, I2, I3, I8, I9, I10, I15, I16, I17의 샘플 값들 각각과 필터 커널(1730)의 F1, F2, F3, F4, F5, F6, F7, F8 및 F9 각각의 곱 연산이 수행되고, 곱 연산의 결과 값들을 조합(예를 들어, 덧셈 연산)한 값이 특징 맵(1750)의 M1의 값으로 할당될 수 있다. 컨볼루션 연산의 스트라이드(stride)가 2라면, 입력 데이터(1605)의 I3, I4, I5, I10, I11, I12, I17, I18, I19의 샘플 값들 각각과 필터 커널(1730)의 F1, F2, F3, F4, F5, F6, F7, F8 및 F9 각각의 곱 연산이 수행되고, 곱 연산의 결과 값들을 조합한 값이 특징 맵(1750)의 M2의 값으로 할당될 수 있다.
필터 커널(1730)이 입력 데이터(1605)의 마지막 샘플에 도달할 때까지 스트라이드에 따라 이동하는 동안 입력 데이터(1605) 내 샘플 값들과 필터 커널(1730)의 샘플들 사이의 컨볼루션 연산이 수행됨으로써, 소정 크기를 갖는 특징 맵(1750)이 획득될 수 있다.
본 개시에 따르면, 신경망(1600)에 대한 훈련을 통해 신경망(1600)의 파라미터들, 예를 들어, 신경망(1600)의 컨볼루션 레이어들에서 이용되는 필터 커널(1730)의 샘플들(예를 들어, 필터 커널(1730)의 F1, F2, F3, F4, F5, F6, F7, F8 및 F9)의 값이 최적화될 수 있다.
신경망(1600)에 포함된 컨볼루션 레이어들은 도 17과 관련하여 설명한 컨볼루션 연산 과정에 따른 처리를 할 수 있으나, 도 17에서 설명한 컨볼루션 연산 과정은 하나의 예시일 뿐이며, 실시예들은 이에 한정되는 것은 아니다.
다시 도 16을 참조하면, 제 1 컨볼루션 레이어(1610)의 특징 맵들은 제 1 활성화 레이어(1620)로 입력된다.
제 1 활성화 레이어(1620)는 각각의 특징 맵에 대해 비선형(Non-linear) 특성을 부여할 수 있다. 제 1 활성화 레이어(1620)는 시그모이드 함수(sigmoid function), Tanh 함수, ReLU(Rectified Linear Unit) 함수 등을 포함할 수 있으나, 실시예들은 이에 한정되는 것은 아니다.
제 1 활성화 레이어(1620)에서 비선형 특성을 부여하는 것은, 특징 맵들의 일부 샘플 값을 변경하여 출력하는 것을 의미할 수 있다. 이때, 변경은 비선형 특성을 적용하여 수행된다.
제 1 활성화 레이어(1620)는 특징 맵의 샘플 값들을 제 2 컨볼루션 레이어(1630)로 전달할지 여부를 결정한다. 예를 들어, 특징 맵의 샘플 값들 중 어떤 샘플 값들은 제 1 활성화 레이어(1620)에 의해 활성화되어 제 2 컨볼루션 레이어(1630)로 전달되고, 어떤 샘플 값들은 제 1 활성화 레이어(1620)에 의해 비활성화되어 제 2 컨볼루션 레이어(1630)로 전달되지 않는다. 특징 맵들이 나타내는 입력 데이터(1605)의 고유 특성이 제 1 활성화 레이어(1620)에 의해 강조된다.
제 1 활성화 레이어(1620)에서 출력된 특징 맵들(1625)은 제 2 컨볼루션 레이어(1630)로 입력된다. 도 16에 도시된 특징 맵들(1625) 중 어느 하나는 도 17과 관련하여 설명한 특징 맵(1750)이 제 1 활성화 레이어(1620)에서 처리된 결과이다.
제 2 컨볼루션 레이어(1630)에 표시된 “3X3X4”는 3x3의 크기의 4개의 필터 커널을 이용하여 입력된 특징 맵들에 대해 컨볼루션 처리하는 것을 예시할 수 있다. 제 2 컨볼루션 레이어(1630)의 출력은 제 2 활성화 레이어(1640)로 입력된다. 제 2 활성화 레이어(1640)는 입력된 특징 맵들에 대해 비선형 특성을 부여할 수 있다.
제 2 활성화 레이어(1640)에서 출력된 특징 맵들(1645)은 제 3 컨볼루션 레이어(1650)로 입력된다. 제 3 컨볼루션 레이어(1650)에 표시된 “3X3X1”은 3x3의 크기의 1개의 필터 커널을 이용하여 1개의 출력 데이터(1655)를 만들기 위해 컨볼루션 처리를 하는 것을 예시할 수 있다.
출력 데이터(1655)는 신경망(1600)이 제 1 인코더(1211), 제 2 인코더(1215), 제 1 디코더(331), 제 2 디코더(333), 제 1 전처리 신경망(600), 제 2 전처리 신경망(700), 제 3 전처리 신경망(800) 및 제 4 전처리 신경망(900) 중 어느 것인지 따라 달라진다.
일 예로, 신경망(1600)이 제 1 인코더(1211)인 경우, 출력 데이터(1655)는 현재 옵티컬 플로우에 대한 특징 데이터이고, 다른 예로, 신경망(1600)이 제 2 인코더(1215)인 경우, 출력 데이터(1655)는 현재 잔차 데이터에 대한 특징 데이터일 수 있다.
도 16은 신경망(1600)이 세 개의 컨볼루션 레이어와 두 개의 활성화 레이어를 포함하고 있는 것으로 도시하고 있으나, 이는 하나의 예시일 뿐이며, 구현예에 따라서, 실시예들에서 신경망(1600)에 포함된 컨볼루션 레이어 및 활성화 레이어의 개수는 다양하게 변경될 수 있다.
또한, 구현예에 따라서, 실시예들에서 신경망(1600)은 RNN(recurrent neural network)을 통해 구현될 수도 있다. 이 경우는 본 개시의 예시에 따른 신경망(1600)의 CNN 구조를 RNN 구조로 변경될 수 있다는 것을 의미한다.
일 실시예에서, 영상 복호화 장치(300) 및 영상 부호화 장치(1200)는 전술한 컨볼루션 연산 및 활성화 레이어의 연산을 위한 적어도 하나의 ALU(Arithmetic logic unit)를 포함할 수 있다.
ALU는 프로세서로 구현될 수 있다. 컨볼루션 연산을 위해, ALU는 입력 데이터(1605) 또는 이전 레이어에서 출력된 특징 맵의 샘플 값들과 필터 커널의 샘플 값들 사이의 곱 연산을 수행하는 곱셈기 및 곱셈의 결과 값들을 더하는 가산기를 포함할 수 있다.
활성화 레이어의 연산을 위해, ALU는 미리 결정된 시그모이드 함수, Tanh 함수 또는 ReLU 함수 등에서 이용되는 가중치를 입력된 샘플 값에 곱하는 곱셈기, 및 곱한 결과와 소정 값을 비교하여 입력된 샘플 값을 다음 레이어로 전달할지를 판단하는 비교기를 포함할 수 있다.
이하에서는, 도 18 및 도 19를 참조하여, 영상의 부호화 및 복호화 과정에서 이용되는 신경망들의 예시적인 훈련 방법에 대해 설명한다.
도 18은 제 1 디코더(331), 제 2 디코더(333), 제 1 인코더(1211), 제 2 인코더(1215) 및 전처리 신경망(339)의 훈련 방법을 설명하기 위한 도면이다.
도 18에서, 현재 훈련 영상(1810), 이전의 복원 훈련 영상(1830) 및 현재의 복원 훈련 영상(1850)은 각각 전술한 현재 영상, 이전 복원 영상 및 현재 복원 영상에 대응한다.
제 1 디코더(331), 제 2 디코더(333), 제 1 인코더(1211), 제 2 인코더(1215) 및 전처리 신경망(339)을 훈련시키는데 있어, 현재의 복원 훈련 영상(1850)이 현재 훈련 영상(1810)과 어느 정도로 유사한지, 그리고 현재 훈련 영상(1810)에 대한 부호화를 통해 생성되는 비트스트림의 비트레이트가 어느 정도로 큰지가 고려될 수 있다. 이를 위해, 일 실시예에서는 현재 훈련 영상(1810)과 현재의 복원 훈련 영상(1850) 사이의 유사도에 대응하는 제 1 손실 정보(1860), 및 비트스트림의 크기가 어느 정도로 큰지에 대응하는 제 2 손실 정보(1870)와 제 3 손실 정보(1880)에 따라 제 1 디코더(331), 제 2 디코더(333), 제 1 인코더(1211), 제 2 인코더(1215) 및 전처리 신경망(339)이 훈련될 수 있다.
도 18을 참조하면, 현재 훈련 영상(1810)과 이전의 복원 훈련 영상(1830)은 제 1 인코더(1211)로 입력된다. 제 1 인코더(1211)는 현재 훈련 영상(1810)과 이전의 복원 훈련 영상(1830)을 처리하여 현재 옵티컬 플로우의 특징 데이터(wi)를 출력한다.
현재 옵티컬 플로우의 특징 데이터(wi)는 제 1 디코더(331)로 입력되고, 제 1 디코더(331)는 현재 옵티컬 플로우의 특징 데이터(wi)를 처리하여 현재 옵티컬 플로우(gi)를 출력한다.
이전의 복원 훈련 영상(1830)이 현재 옵티컬 플로우(gi)에 따라, 예를 들어, 워핑(190)에 의해 워핑됨으로써 현재의 예측 훈련 영상(x'i)이 생성되고, 현재의 예측 훈련 영상(x'i)과 현재 훈련 영상(1810) 사이의 차이에 대응하는 현재 잔차 데이터(ri)가 획득된다.
현재 잔차 데이터(ri)는 제 2 인코더(1215)로 입력되고, 제 2 인코더(1215)는 현재 잔차 데이터(ri)를 처리하여 현재 잔차 데이터의 특징 데이터(vi)를 출력한다.
현재 옵티컬 플로우의 특징 데이터(wi)를 전처리 신경망(339)으로 처리한 결과, 및 현재 잔차 데이터의 특징 데이터(vi)가 연접되어(concatenated) 제 2 디코더(333)로 입력된다.
제 2 디코더(333)는 입력된 데이터를 처리하여 현재 잔차 데이터(r'i)를 출력하고, 현재의 예측 훈련 영상(x'i)과 현재 잔차 데이터(r'i)가 합해짐으로써 현재의 복원 훈련 영상(1850)이 획득된다.
제 1 디코더(331), 제 2 디코더(333), 제 1 인코더(1211), 제 2 인코더(1215) 및 전처리 신경망(339)의 훈련을 위해, 제 1 손실 정보(1860), 제 2 손실 정보(1870) 또는 제 3 손실 정보(1880) 중 적어도 하나가 획득될 수 있다.
제 1 손실 정보(1860)는 현재 훈련 영상(1810)과 현재의 복원 훈련 영상(1850) 사이의 차이에 대응한다. 현재 훈련 영상(1810)과 현재의 복원 훈련 영상(1850) 사이의 차이는, 현재 훈련 영상(1810)과 현재의 복원 훈련 영상(1850)에 기초하여 결정되는 L1-norm 값, L2-norm 값, SSIM(Structural Similarity) 값, PSNR-HVS(Peak Signal-To-Noise Ratio-Human Vision System) 값, MS-SSIM(Multiscale SSIM) 값, VIF(Variance Inflation Factor) 값 또는 VMAF(Video Multimethod Assessment Fusion) 값 중 적어도 하나를 포함할 수 있다.
제 1 손실 정보(1860)는 현재의 복원 훈련 영상(1850)의 퀄리티와 관련이 있으므로, 제 1 손실 정보(1860)는 퀄리티 손실 정보로 참조될 수도 있다.
제 2 손실 정보(1870)는 현재 옵티컬 플로우의 특징 데이터(wi)의 엔트로피 또는 현재 옵티컬 플로우의 특징 데이터(wi)에 대응하는 비트스트림의 비트레이트에 대응한다. 또한, 제 3 손실 정보(1880)는 현재 잔차 데이터의 특징 데이터(vi)의 엔트로피 또는 현재 잔차 데이터의 특징 데이터(vi)에 대응하는 비트스트림의 비트레이트에 대응한다.
구현예에 따라, 실시예들에서 비트스트림이 현재 옵티컬 플로우의 특징 데이터(wi) 및 현재 잔차 데이터의 특징 데이터(vi)를 포함한다면, 해당 비트스트림의 비트레이트에 대응하는 제 4 손실 정보가 산출될 수 있다. 이 경우, 제 2 손실 정보(1870) 및 제 3 손실 정보(1880)는 훈련에 이용되지 않을 수 있다.
제 2 손실 정보(1870)와 제 3 손실 정보(1880)는, 현재 훈련 영상(1810)에 대한 부호화 효율에 관련되므로, 제 2 손실 정보(1870)와 제 3 손실 정보(1880)는 압축도 손실 정보로 참조될 수 있다.
제 1 디코더(331), 제 2 디코더(333), 제 1 인코더(1211), 제 2 인코더(1215) 및 전처리 신경망(339)는 제 1 손실 정보(1860), 제 2 손실 정보(1870) 또는 제 3 손실 정보(1880) 중 적어도 하나로부터 도출되는 최종 손실 정보가 감소 또는 최소화되도록 훈련될 수 있다.
구체적으로, 제 1 디코더(331), 제 2 디코더(333), 제 1 인코더(1211), 제 2 인코더(1215) 및 전처리 신경망(339)는 미리 설정된 파라미터의 값을 변경하면서 최종 손실 정보가 감소 또는 최소화되도록 훈련될 수 있다.
일 실시예에서, 최종 손실 정보는 하기 수학식 1에 따라 산출될 수 있다.
[수학식 1]
최종 손실 정보 = a*제 1 손실 정보+b*제 2 손실 정보+c*제 3 손실 정보
수학식 1에서, a, b, c는 각각 제 1 손실 정보(1860), 제 2 손실 정보(1870) 및 제 3 손실 정보(1880) 각각에 적용되는 가중치이다.
수학식 1에 따르면, 제 1 디코더(331), 제 2 디코더(333), 제 1 인코더(1211), 제 2 인코더(1215) 및 전처리 신경망(339)는 현재의 복원 훈련 영상(1850)이 현재 훈련 영상(1810)에 최대한 유사해지고, 제 1 인코더(1211) 및 제 2 인코더(1215)로부터 출력되는 데이터에 대응하는 비트스트림의 크기가 최소화되는 방향으로 훈련됨을 알 수 있다.
도 18에 도시된 바와 같이, 전처리 신경망(339)이 현재 옵티컬 플로우의 특징 데이터(wi)만을 처리하는 것으로 도시하고 있는데, 이는 도 6에 도시된 실시예와 관련이 있다.
전술한 바와 같이, 영상 복호화 장치(300)는 현재 옵티컬 플로우(gi)와 현재 잔차 데이터(ri)의 복원을 위해 제 1 전처리 신경망(600), 제 2 전처리 신경망(700), 제 3 전처리 신경망(800) 또는 제 4 전처리 신경망(900) 중 적어도 하나를 이용할 수 있다.
이 때, 현재 옵티컬 플로우(gi)와 현재 잔차 데이터(ri)의 복원을 위해 이용되는 제 1 전처리 신경망(600), 제 2 전처리 신경망(700), 제 3 전처리 신경망(800) 또는 제 4 전처리 신경망(900) 중 적어도 하나에 대한 훈련이 필요하다.
따라서, 실시예들에서, 현재 옵티컬 플로우(gi)와 현재 잔차 데이터(ri)의 복원을 위해, 제 1 전처리 신경망(600), 제 2 전처리 신경망(700), 제 3 전처리 신경망(800) 및 제 4 전처리 신경망(900) 중 어느 전처리 신경망을 이용하여 도 18에 도시된 제 1 손실 정보(1860), 제 2 손실 정보(1870) 및 제 3 손실 정보(1880)가 산출될 수 있다. 따라서, 제 1 손실 정보(1860), 제 2 손실 정보(1870) 및 제 3 손실 정보(1880)를 통해 전처리 신경망의 훈련이 이루어질 수 있다.
도 19는 훈련 장치(1900)에 의한 제 1 디코더(331), 제 2 디코더(333), 제 1 인코더(1211), 제 2 인코더(1215) 및 전처리 신경망(339)의 훈련 과정을 설명하기 위한 도면이다.
도 18과 관련하여 설명한 훈련 과정은 훈련 장치(1900)에 의해 수행될 수 있다. 훈련 장치(1900)는 예를 들어, 영상 부호화 장치(1200) 또는 별도의 서버일 수 있다. 훈련 결과 획득된 파라미터들은 영상 부호화 장치(1200) 및 영상 복호화 장치(300)에 저장될 수 있다.
도 19를 참조하면, 훈련 장치(1900)는 제 1 인코더(1211), 제 1 디코더(331), 제 2 인코더(1215), 제 2 디코더(333) 및 전처리 신경망(339)의 파라미터를 초기 세팅한다(동작 S1910). 이에 의해, 제 1 인코더(1211), 제 1 디코더(331), 제 2 인코더(1215), 제 2 디코더(333) 및 전처리 신경망(339)은 초기 세팅된 파라미터에 따라 동작할 수 있다.
훈련 장치(1900)는 현재 훈련 영상(1810)과 이전의 복원 훈련 영상(1830)을 제 1 인코더(1211)로 입력한다(동작 S1915).
제 1 인코더(1211)는 현재 옵티컬 플로우의 특징 데이터(wi)를 훈련 장치(1900), 제 1 디코더(331) 및 전처리 신경망(339)으로 출력한다(동작 S1920).
훈련 장치(1900)는 현재 옵티컬 플로우의 특징 데이터(wi)로부터 제 2 손실 정보(1870)를 산출한다(동작 S1925).
제 1 디코더(331)는 현재 옵티컬 플로우의 특징 데이터(wi)를 처리하여 현재 옵티컬 플로우(gi)를 훈련 장치(1900)로 출력한다(동작 S1930).
훈련 장치(1900)는 현재 옵티컬 플로우(gi)에 따라 현재의 예측 훈련 영상(x'i)을 생성하고, 현재의 예측 훈련 영상(x'i)과 현재 훈련 영상(1810) 사이의 차이에 대응하는 현재 잔차 데이터(ri)를 획득한다(동작 S1935).
훈련 장치(1900)는 현재 잔차 데이터(ri)를 제 2 인코더(1215)로 입력하고(동작 S1940), 제 2 인코더(1215)는 현재 잔차 데이터의 특징 데이터(vi)를 훈련 장치(1900)와 제 2 디코더(333)로 출력한다(동작 S1945).
훈련 장치(1900)는 현재 잔차 데이터의 특징 데이터(vi)로부터 제 3 손실 정보(1880)를 산출한다(동작 S1950).
전처리 신경망(339)은 S1920에서 입력받은 현재 옵티컬 플로우의 특징 데이터(wi)를 처리하고, 처리 결과 획득한 특징 데이터를 제 2 디코더(333)로 출력한다(동작 S1955).
제 2 디코더(333)는 현재 잔차 데이터의 특징 데이터(vi)와 전처리 신경망(339)으로부터 출력된 특징 데이터의 연접 결과를 처리하여 현재 잔차 데이터(r'i)를 훈련 장치(1900)로 출력한다(동작 S1960).
훈련 장치(1900)는 현재 잔차 데이터(r'i)와 현재의 예측 훈련 영상(x'i)으로부터 현재의 복원 훈련 영상(1850)을 생성한다(동작 S1965).
훈련 장치(1900)는 현재 훈련 영상(1810)과 현재의 복원 훈련 영상(1850) 사이의 차이에 대응하는 제 1 손실 정보(1860)를 산출한다(동작 S1970).
훈련 장치(1900)는 제 1 손실 정보(1860), 제 2 손실 정보(1870) 또는 제 3 손실 정보(1880) 중 적어도 하나를 결합하여 최종 손실 정보를 산출하고, 제 1 디코더(331), 제 2 디코더(333), 제 1 인코더(1211), 제 2 인코더(1215) 및 전처리 신경망(339)은 최종 손실 정보에 기초한 역전사(back propagation) 과정을 통해 초기 세팅된 파라미터를 갱신한다(동작들 S1971, S1973, S1975, S1977, S1979).
이후, 훈련 장치(1900), 제 1 디코더(331), 제 2 디코더(333), 제 1 인코더(1211), 제 2 인코더(1215) 및 전처리 신경망(339)은 최종 손실 정보가 최소화될 때까지 S1915 내지 S1979 과정을 반복하면서 파라미터를 갱신한다. 이 때, 각 반복 과정 동안 제 1 디코더(331), 제 2 디코더(333), 제 1 인코더(1211), 제 2 인코더(1215) 및 전처리 신경망(339)은 이전 과정에서 갱신된 파라미터에 따라 동작한다.
도 19는 전처리 신경망(339)이 현재 옵티컬 플로우의 특징 데이터(wi)만을 처리하는 것으로 도시하고 있는데, 이는 도 6에 도시된 실시예와 관련이 있다.
전술한 바와 같이, 훈련 장치(1900)는 제 1 전처리 신경망(600), 제 2 전처리 신경망(700), 제 3 전처리 신경망(800) 또는 제 4 전처리 신경망(900) 중 적어도 하나를 훈련시킬 수 있다. 이를 위해 훈련 장치(1900)는 제 1 전처리 신경망(600), 제 2 전처리 신경망(700), 제 3 전처리 신경망(800) 또는 제 4 전처리 신경망(900) 중 적어도 하나의 입력 데이터 및 출력 데이터를 제어할 수 있다.
일 예로, 도 7에 도시된 제 2 전처리 신경망(700)의 훈련을 위해, 제 2 전처리 신경망(700)에 의해 이전 옵티컬 플로우의 특징 데이터가 처리된 결과가 제 1 디코더(331)로 입력될 수 있다. 그리고, S1930에서, 제 1 디코더(331)는 현재 옵티컬 플로우의 특징 데이터(wi) 및 제 2 전처리 신경망(700)으로부터 출력되는 특징 데이터가 연접된 결과를 처리하여 현재 옵티컬 플로우(gi)를 출력할 수 있다.
다른 예로, 도 9에 도시된 제 4 전처리 신경망(900)의 훈련을 위해, 이전 잔차 데이터의 특징 데이터가 제 4 전처리 신경망(900)에 의해 처리된 결과가 제 2 디코더(333)로 입력되고, S1960에서, 제 2 디코더(333)는 현재 잔차 데이터의 특징 데이터, 전처리 신경망(339)으로부터 출력된 특징 데이터 및 제 4 전처리 신경망(900)으로부터 출력된 특징 데이터가 연접된 결과를 처리하여 현재 잔차 데이터를 출력할 수 있다.
하기 표 1은 도 1에 도시된 인터 예측 과정(표 1의 “A”)과, 제 1 전처리 신경망(600), 제 2 전처리 신경망(700), 제 3 전처리 신경망(800) 및 제 4 전처리 신경망(900)을 이용한 일 실시예에 따른 인터 예측 과정(표 1의 “B”)을 통해 생성되는 비트스트림의 비트레이트를 비교하고 있다.
[표 1]
표 1에 비교되어 있는 것과 같이, 제 1 전처리 신경망(600), 제 2 전처리 신경망(700), 제 3 전처리 신경망(800) 및 제 4 전처리 신경망(900)을 이용하였을 때, 비트스트림의 비트레이트가 도 1과 관련하여 설명한 인터 예측 과정에 비해 약 -5.5% 감소한 것을 알 수 있다.
한편, 상술한 본 개시의 실시예들은 컴퓨터에서 실행될 수 있는 프로그램으로 작성가능하고, 작성된 프로그램은 기기로 읽을 수 있는 저장매체에 저장될 수 있다.
기기로 읽을 수 있는 저장매체는, 비일시적(non-transitory) 저장매체의 형태로 제공될 수 있다. 여기서, '비일시적 저장매체'는 실재(tangible)하는 장치이고, 신호(signal)(예: 전자기파)를 포함하지 않는다는 것을 의미할 뿐이며, 이 용어는 데이터가 저장매체에 반영구적으로 저장되는 경우와 임시적으로 저장되는 경우를 구분하지 않는다. 예로, '비일시적 저장매체'는 데이터가 임시적으로 저장되는 버퍼를 포함할 수 있다.
일 실시예에 따르면, 본 문서에 개시된 다양한 실시예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory (CD-ROM))의 형태로 배포되거나, 또는 어플리케이션 스토어를 통해 또는 두개의 사용자 장치들(예: 스마트폰들) 간에 직접, 온라인으로 배포(예: 다운로드 또는 업로드)될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품(예: 다운로더블 앱(downloadable app))의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 기기로 읽을 수 있는 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.
이상, 실시예들은 상세하게 설명되었으나, 본 개시의 기술적 사상은 상기 실시예들에 한정되지 않고, 본 개시의 기술적 사상의 범위 내에서 당 분야에서 통상의 지식을 가진 자에 의하여 여러 가지 변형 및 변경이 가능하다.
Claims (10)
- AI를 이용하는 영상 복호화 방법에 있어서,현재 영상에 대응하는 비트스트림으로부터 현재 옵티컬 플로우(current optical flow)의 특징 데이터 및 현재 잔차 데이터의 특징 데이터를 획득하는 단계;신경망 기반의 제 1 디코더에 상기 현재 옵티컬 플로우의 특징 데이터를 적용하여 상기 현재 옵티컬 플로우를 획득하는 단계;상기 현재 옵티컬 플로우의 특징 데이터 및 이전 옵티컬 플로우의 특징 데이터 중 적어도 하나를 제 1 전처리 신경망에 적용하는 단계;상기 현재 잔차 데이터의 특징 데이터와 상기 제 1 전처리 신경망으로부터 획득되는 특징 데이터를 연접하여 제 1 연접 결과를 획득하는 단계;상기 제 1 연접 결과를 신경망 기반의 제 2 디코더에 적용하여 상기 현재 잔차 데이터를 획득하는 단계; 및상기 현재 옵티컬 플로우를 기초로 이전 복원 영상으로부터 생성되는 현재 예측 영상과 상기 현재 잔차 데이터를 이용하여 상기 현재 영상을 복원하는 단계를 포함하는, 영상 복호화 방법.
- 제1항에 있어서,상기 현재 옵티컬 플로우를 획득하는 단계는,상기 이전 옵티컬 플로우의 특징 데이터를 제 2 전처리 신경망에 적용하는 단계;상기 현재 옵티컬 플로우의 특징 데이터와 상기 제 2 전처리 신경망으로부터 획득되는 특징 데이터를 연접하여 제 2 연접 결과를 획득하는 단계; 및상기 제 2 연접 결과를 상기 신경망 기반의 제 1 디코더에 적용하여 상기 현재 옵티컬 플로우를 획득하는 단계를 포함하는, 영상 복호화 방법.
- 제1항에 있어서,상기 현재 옵티컬 플로우를 획득하는 단계는,이전 잔차 데이터의 특징 데이터를 제 3 전처리 신경망에 적용하는 단계;상기 현재 옵티컬 플로우의 특징 데이터와 상기 제 3 전처리 신경망으로부터 획득되는 특징 데이터를 연접하여 제 3 연접 결과를 획득하는 단계; 및상기 제 3 연접 결과를 상기 신경망 기반의 제 1 디코더에 적용하여 상기 현재 옵티컬 플로우를 획득하는 단계를 포함하는, 영상 복호화 방법.
- 제1항에 있어서,상기 현재 잔차 데이터를 획득하는 단계는,이전 잔차 데이터의 특징 데이터를 제 4 전처리 신경망에 적용하는 단계;상기 제 1 전처리 신경망으로부터 획득되는 특징 데이터, 상기 제 4 전처리 신경망으로부터 획득되는 특징 데이터, 및 상기 현재 잔차 데이터의 특징 데이터를 연접하여 제 4 연접 결과를 획득하는 단계; 및상기 제 4 연접 결과를 상기 신경망 기반의 제 2 디코더에 적용하여 상기 현재 잔차 데이터를 획득하는 단계를 포함하는, 영상 복호화 방법.
- 제1항에 있어서,상기 현재 영상을 복원하는 단계는,상기 현재 옵티컬 플로우에 따라 상기 이전 복원 영상을 워핑(warping)하여 상기 현재 예측 영상을 생성하는 단계를 포함하는, 영상 복호화 방법.
- 제1항에 있어서,상기 현재 옵티컬 플로우의 특징 데이터 및 상기 현재 잔차 데이터의 특징 데이터는,상기 비트스트림에 대한 엔트로피 복호화 및 역양자화를 수행하여 획득되는, 영상 복호화 방법.
- 제1항에 있어서,상기 신경망 기반의 제 1 디코더, 상기 신경망 기반의 제 2 디코더 및 상기 제 1 전처리 신경망 중 적어도 하나는,현재 훈련 영상(current training image)과 상기 현재 훈련 영상에 대응하는 현재의 복원 훈련 영상(current reconstructed training image) 사이의 차이에 대응하는 제 1 손실 정보, 상기 현재 훈련 영상의 옵티컬 플로우의 특징 데이터의 엔트로피에 대응하는 제 2 손실 정보, 및 상기 현재 훈련 영상의 잔차 데이터의 특징 데이터의 엔트로피에 대응하는 제 3 손실 정보를 기반으로 훈련되는, 영상 복호화 방법.
- 제1항의 방법을 컴퓨터에서 수행하기 위한 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체.
- AI를 이용하는 영상 부호화 방법에 있어서,현재 영상 및 이전 복원 영상을 신경망 기반의 제 1 인코더에 적용하여 현재 옵티컬 플로우의 특징 데이터를 획득하는 단계;상기 현재 옵티컬 플로우의 특징 데이터를 신경망 기반의 제 1 디코더에 적용하여 상기 현재 옵티컬 플로우를 획득하는 단계;상기 현재 옵티컬 플로우와 상기 이전 복원 영상에 기초하여 현재 예측 영상을 생성하는 단계;상기 현재 영상과 상기 현재 예측 영상 사이의 현재 잔차 데이터를 획득하는 단계;상기 현재 잔차 데이터를 신경망 기반의 제 2 인코더에 적용하여 상기 현재 잔차 데이터의 특징 데이터를 획득하는 단계;상기 현재 옵티컬 플로우의 특징 데이터 및 상기 현재 잔차 데이터의 특징 데이터에 기초하여 비트스트림을 생성하는 단계를 포함하는, 영상의 부호화 방법.
- AI를 이용하는 영상 복호화 방법에 있어서,현재 영상에 대응하는 비트스트림으로부터 현재 옵티컬 플로우의 특징 데이터 및 현재 잔차 데이터의 특징 데이터를 획득하는 단계;제 1 신경망 전처리 동작, 제 2 신경망 전처리 동작, 제 3 신경망 전처리 동작 및 제 4 신경망 전처리 동작 중 적어도 하나를 수행하는 단계;상기 현재 옵티컬 플로우의 특징 데이터와, 상기 제 2 신경망 전처리 동작의 결과 및 상기 제 3 신경망 전처리 동작의 결과 중 적어도 하나를 연접하여 제 1 연접 결과를 획득하는 단계;상기 제 1 연접 결과를 신경망 기반의 제 1 디코더에 적용하여 현재 옵티컬 플로우를 획득하는 단계;상기 현재 잔차 데이터의 특징 데이터와, 상기 제 1 신경망 전처리 동작의 결과 및 상기 제 4 신경망 전처리 동작의 결과 중 적어도 하나를 연접하여 제 2 연접 결과를 획득하는 단계;상기 제 2 연접 결과를 신경망 기반의 제 2 디코더에 적용하여 상기 현재 잔차 데이터를 획득하는 단계; 및상기 현재 옵티컬 플로우를 기초로 이전 복원 영상을 워핑하고, 상기 현재 잔차 데이터를 상기 워핑된 이전 복원 영상에 적용하여 상기 현재 영상을 복원하는 단계를 포함하되,상기 제 1 신경망 전처리 동작은, 상기 현재 옵티컬 플로우의 특징 데이터 및 이전 옵티컬 플로우의 특징 데이터 중 적어도 하나를 제 1 전처리 신경망에 적용하는 동작을 포함하고,상기 제 2 신경망 전처리 동작은, 상기 이전 옵티컬 플로우의 특징 데이터를 제 2 전처리 신경망에 적용하는 동작을 포함하고,상기 제 3 신경망 전처리 동작은, 이전 잔차 데이터의 특징 데이터를 제 3 전처리 신경망에 적용하는 동작을 포함하고,상기 제 4 신경망 전처리 동작은, 상기 이전 잔차 데이터의 특징 데이터를 제 4 전처리 신경망에 적용하는 동작을 포함하는, 영상 복호화 방법.
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202280016015.XA CN116888961A (zh) | 2021-02-22 | 2022-02-21 | 使用ai的用于图像编码和解码的设备及其用于图像编码和解码的方法 |
EP22756580.1A EP4262207A4 (en) | 2021-02-22 | 2022-02-21 | IMAGE ENCODING AND DECODING DEVICE USING AI AND IMAGE ENCODING AND DECODING METHOD USING SAID DEVICE |
US17/677,414 US11863756B2 (en) | 2021-02-22 | 2022-02-22 | Image encoding and decoding apparatus and method using artificial intelligence |
Applications Claiming Priority (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR20210023695 | 2021-02-22 | ||
KR10-2021-0023695 | 2021-02-22 | ||
KR20210123369 | 2021-09-15 | ||
KR10-2021-0123369 | 2021-09-15 | ||
KR10-2021-0157089 | 2021-11-15 | ||
KR1020210157089A KR20220120432A (ko) | 2021-02-22 | 2021-11-15 | Ai를 이용하는 영상의 부호화 및 복호화 장치 및 이에 의한 영상의 부호화 및 복호화 방법 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US17/677,414 Continuation US11863756B2 (en) | 2021-02-22 | 2022-02-22 | Image encoding and decoding apparatus and method using artificial intelligence |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2022177382A1 true WO2022177382A1 (ko) | 2022-08-25 |
Family
ID=82931023
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/KR2022/002486 WO2022177382A1 (ko) | 2021-02-22 | 2022-02-21 | Ai를 이용하는 영상의 부호화 및 복호화 장치 및 이에 의한 영상의 부호화 및 복호화 방법 |
Country Status (1)
Country | Link |
---|---|
WO (1) | WO2022177382A1 (ko) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190246138A1 (en) * | 2016-09-14 | 2019-08-08 | Beamr Imaging Ltd. | Method of pre-processing of video information for optimized video encoding |
US20200053388A1 (en) * | 2018-08-10 | 2020-02-13 | Disney Enterprises, Inc. | Machine learning based video compression |
KR20200016879A (ko) * | 2017-07-06 | 2020-02-17 | 삼성전자주식회사 | 영상을 부호화/복호화 하는 방법 및 그 장치 |
US20200272903A1 (en) * | 2018-07-25 | 2020-08-27 | WaveOne Inc. | Machine-Learning Based Video Compression |
US20200273185A1 (en) * | 2019-02-27 | 2020-08-27 | Coretronic Corporation | Electronic device and method for estimating optical flow |
-
2022
- 2022-02-21 WO PCT/KR2022/002486 patent/WO2022177382A1/ko active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190246138A1 (en) * | 2016-09-14 | 2019-08-08 | Beamr Imaging Ltd. | Method of pre-processing of video information for optimized video encoding |
KR20200016879A (ko) * | 2017-07-06 | 2020-02-17 | 삼성전자주식회사 | 영상을 부호화/복호화 하는 방법 및 그 장치 |
US20200272903A1 (en) * | 2018-07-25 | 2020-08-27 | WaveOne Inc. | Machine-Learning Based Video Compression |
US20200053388A1 (en) * | 2018-08-10 | 2020-02-13 | Disney Enterprises, Inc. | Machine learning based video compression |
US20200273185A1 (en) * | 2019-02-27 | 2020-08-27 | Coretronic Corporation | Electronic device and method for estimating optical flow |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2017065525A2 (ko) | 영상을 부호화 또는 복호화하는 방법 및 장치 | |
WO2020009357A1 (ko) | Cclm에 기반한 인트라 예측 방법 및 그 장치 | |
WO2016064185A1 (ko) | 최적화 함수를 이용하여 그래프 기반 예측을 수행하는 방법 및 장치 | |
WO2017222140A1 (ko) | Cnn 기반 인루프 필터를 포함하는 부호화 방법과 장치 및 복호화 방법과 장치 | |
WO2018038554A1 (ko) | 이차 변환을 이용한 비디오 신호의 인코딩/디코딩 방법 및 장치 | |
WO2018070742A1 (ko) | 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체 | |
WO2019009489A1 (ko) | 영상을 부호화/복호화 하는 방법 및 그 장치 | |
WO2017014585A1 (ko) | 그래프 기반 변환을 이용하여 비디오 신호를 처리하는 방법 및 장치 | |
WO2018226066A1 (ko) | 영상 코딩 시스템에서 어파인 예측에 따른 영상 디코딩 방법 및 장치 | |
WO2019009491A1 (ko) | 영상을 부호화 또는 복호화하는 방법 및 장치 | |
WO2017086740A1 (ko) | 인루프 필터를 이용한 비디오 복호화 방법 및 이를 위한 장치 | |
WO2016195455A1 (ko) | 그래프 기반 변환을 이용하여 비디오 신호를 처리하는 방법 및 장치 | |
WO2017069505A1 (ko) | 영상의 부호화/복호화 방법 및 이를 위한 장치 | |
WO2012150849A2 (ko) | 에러에 강인한 인-루프 필터를 이용하는 영상 부호화/복호화 방법과 그에 관한 시그널링 방법 | |
WO2020013569A1 (ko) | 영상 코딩 시스템에서 어파인 움직임 예측에 기반한 영상 디코딩 방법 및 장치 | |
WO2020032609A1 (ko) | 영상 코딩 시스템에서 어파인 머지 후보 리스트를 사용하는 어파인 움직임 예측에 기반한 영상 디코딩 방법 및 장치 | |
WO2019009452A1 (ko) | 영상을 부호화 또는 복호화하는 방법 및 장치 | |
WO2016204524A1 (ko) | 영상의 부호화/복호화 방법 및 이를 위한 장치 | |
WO2022108361A1 (ko) | 신경망 특징맵 양자화 방법 및 장치 | |
WO2020076069A1 (ko) | Atmvp 후보를 기반으로 영상 코딩을 수행하는 장치 | |
WO2022177383A1 (ko) | Ai 기반의 영상의 부호화 및 복호화 장치, 및 이에 의한 방법 | |
WO2022177382A1 (ko) | Ai를 이용하는 영상의 부호화 및 복호화 장치 및 이에 의한 영상의 부호화 및 복호화 방법 | |
WO2023043154A1 (ko) | Ai를 이용하여 영상을 부호화 및 복호화하는 장치, 및 방법 | |
WO2020032526A1 (ko) | 영상 코딩 시스템에서 컨스트럭티드 어파인 mvp 후보를 사용하는 어파인 움직임 예측에 기반한 영상 디코딩 방법 및 장치 | |
WO2022139438A1 (ko) | 딥러닝 기반 이미지 코딩 방법 및 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 22756580 Country of ref document: EP Kind code of ref document: A1 |
|
ENP | Entry into the national phase |
Ref document number: 2022756580 Country of ref document: EP Effective date: 20230711 |
|
WWE | Wipo information: entry into national phase |
Ref document number: 202280016015.X Country of ref document: CN |
|
NENP | Non-entry into the national phase |
Ref country code: DE |