WO2022177383A1 - Ai 기반의 영상의 부호화 및 복호화 장치, 및 이에 의한 방법 - Google Patents

Ai 기반의 영상의 부호화 및 복호화 장치, 및 이에 의한 방법 Download PDF

Info

Publication number
WO2022177383A1
WO2022177383A1 PCT/KR2022/002493 KR2022002493W WO2022177383A1 WO 2022177383 A1 WO2022177383 A1 WO 2022177383A1 KR 2022002493 W KR2022002493 W KR 2022002493W WO 2022177383 A1 WO2022177383 A1 WO 2022177383A1
Authority
WO
WIPO (PCT)
Prior art keywords
optical flow
current
image
previous
feature data
Prior art date
Application number
PCT/KR2022/002493
Other languages
English (en)
French (fr)
Inventor
딘쿠오칸
박민우
박민수
최광표
Original Assignee
삼성전자 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from KR1020210171269A external-priority patent/KR20220120436A/ko
Application filed by 삼성전자 주식회사 filed Critical 삼성전자 주식회사
Priority to CN202280016009.4A priority Critical patent/CN116868566A/zh
Priority to EP22756581.9A priority patent/EP4250729A4/en
Priority to US17/677,498 priority patent/US11863783B2/en
Publication of WO2022177383A1 publication Critical patent/WO2022177383A1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/186Methods 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods 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/91Entropy 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 optical flow required for inter prediction of an image using artificial intelligence (AI), for example, a neural network, and a technique for encoding and decoding an image.
  • 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 apparatus for encoding and decoding an image according to an embodiment, and a method by the same, have an object of enabling signaling of an optical flow required for inter prediction at a low bit rate.
  • an apparatus for encoding and decoding an image according to an exemplary embodiment, and a method using the same have an object of accurately reconstructing an optical flow.
  • an apparatus for encoding and decoding an image and a method therefor according to an embodiment, have a technical task of accurately reconstructing an image from a bitstream having a low bitrate.
  • a method of restoring an optical flow using AI includes: acquiring feature data of a current residual optical flow with respect to a current image from a bitstream; obtaining the current residual optical flow by applying feature data of the current residual optical flow to a first decoder based on a neural network; obtaining a current predicted optical flow based on at least one of a previous optical flow, feature data of the previous optical flow, and feature data of a previous residual optical flow; and reconstructing a current optical flow based on the current residual optical flow and the current predicted optical flow.
  • An apparatus for encoding and decoding an image may enable signaling of an optical flow required for inter prediction at a low bit rate.
  • the apparatus for encoding and decoding an image may accurately restore an optical flow.
  • the apparatus for encoding and decoding an image can accurately reconstruct an image from a bitstream having a low bitrate.
  • FIG. 1 is a diagram illustrating an AI-based inter prediction process for an image, according to an embodiment.
  • FIG. 2 is a diagram illustrating successive images and an optical flow 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 illustrating a configuration of an optical flow prediction unit according to an embodiment.
  • FIG. 7 is a diagram illustrating a configuration of an optical flow prediction unit according to an embodiment.
  • FIG. 8 is a diagram illustrating a configuration of an optical flow prediction unit according to an embodiment.
  • FIG. 9 is a flowchart of a method of restoring an optical flow according to an embodiment.
  • FIG. 10 is a diagram illustrating another configuration of a predictive decoding unit.
  • FIG. 11 is a flowchart of a method of restoring an optical flow 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 an optical flow prediction unit according to an embodiment.
  • FIG. 15 is a diagram illustrating a configuration of a generator shown in FIG. 12 , according to an exemplary embodiment.
  • 16 is a flowchart of a method of encoding an optical flow according to an embodiment.
  • 17 is a diagram illustrating another configuration of a predictive encoder according to an embodiment.
  • FIG. 18 is a diagram illustrating a structure of a neural network according to an embodiment.
  • FIG. 19 is a diagram for explaining a convolution operation in the convolution layer shown in FIG. 18 , according to an embodiment.
  • 20 is a diagram for explaining a method of training neural networks used in an inter prediction process, according to an embodiment.
  • 21 is a diagram for explaining a training process of a training apparatus for neural networks used in an inter prediction process, according to an embodiment.
  • 22 is a diagram for explaining another training process of a training apparatus for neural networks used in an inter prediction process, according to an embodiment.
  • a method of restoring an optical flow using AI includes: acquiring feature data of a current residual optical flow with respect to a current image from a bitstream; obtaining the current residual optical flow by applying feature data of the current residual optical flow to a first decoder based on a neural network; obtaining a current predicted optical flow based on at least one of a previous optical flow, feature data of the previous optical flow, and feature data of a previous residual optical flow; and reconstructing a current optical flow based on the current residual optical flow and the current predicted optical flow.
  • the current image may be reconstructed based on a current predicted image generated based on the reconstructed current optical flow and a previous reconstructed image, and current residual image data.
  • the obtaining of the current prediction optical flow may include selecting the previous optical flow as the current prediction optical flow.
  • the obtaining of the current prediction optical flow includes applying at least one of the previous optical flow, the characteristic data of the previous optical flow, and the characteristic data of the previous residual optical flow to a first prediction neural network. may include the step of
  • the obtaining of the current prediction optical flow includes applying at least one of the previous optical flow, the characteristic data of the previous optical flow, and the characteristic data of the previous residual optical flow to a second prediction neural network. to obtain a second-order optical flow between the current prediction optical flow and the previous optical flow; and changing the previous optical flow according to the second-order optical flow to generate the current predicted optical flow.
  • the acquiring of the current prediction optical flow may include: acquiring feature data of a second-order optical flow between the current prediction optical flow and the previous optical flow from the bitstream; acquiring the second-order optical flow by applying the feature data of the second-order optical flow to a third decoder based on a neural network; and changing the previous optical flow according to the second-order optical flow to generate the current predicted optical flow.
  • the feature data of the current residual optical flow may be obtained by performing entropy decoding and inverse quantization on the bitstream.
  • the neural network-based first decoder may include: first loss information corresponding to a difference between a current training image and a current reconstructed training image related to the current training image; and second loss information corresponding to the entropy of the feature data of the current residual optical flow of the current training image.
  • the feature data of the current residual optical flow may be obtained from the bitstream based on the current image corresponding to a P (predictive) frame and another P frame following the P frame.
  • the method of restoring the optical flow based on an I (intra) frame following the P frame may include: acquiring characteristic data of a current optical flow from a bitstream; The method may further include applying the feature data of the current optical flow to a fourth decoder based on a neural network to restore the current optical flow.
  • an apparatus for restoring an optical flow using AI includes: a bitstream acquiring unit configured to acquire feature data of a current residual optical flow with respect to the current image from a bitstream; and applying the feature data of the current residual optical flow to a first decoder based on a neural network to obtain the current residual optical flow, and from among the feature data of the previous optical flow, the previous optical flow, and the feature data of the previous residual optical flow.
  • At least one processor that acquires a current prediction optical flow using at least one and implements a prediction decoder configured to reconstruct a current optical flow based on the current residual optical flow and the current prediction optical flow.
  • An optical flow encoding method using AI includes: obtaining a current predicted optical flow from at least one of a previous optical flow, feature data of the previous optical flow, and feature data of a previous residual optical flow; obtaining feature data of a current residual optical flow by applying a current image, a previously reconstructed image, and the current predicted optical flow to a first encoder based on a neural network; and generating a bitstream corresponding to feature data of the current residual optical flow, wherein the current residual optical flow may correspond to a difference between a current optical flow and the current prediction optical flow.
  • An apparatus for encoding an optical flow using AI obtains a current prediction optical flow from at least one of a previous optical flow, feature data for the previous optical flow, and feature data for the previous residual optical flow, a prediction encoder for obtaining feature data for a current residual optical flow by applying a current image, a previous reconstructed image, and the current predicted optical flow to a first encoder based on a neural network; and at least one processor implementing a generation unit that generates a bitstream corresponding to feature data for the current residual optical flow, wherein the current residual optical flow is between the current optical flow and the current prediction optical flow. can respond to the difference in
  • a method of restoring an optical flow using AI includes: obtaining a current residual optical flow by applying feature data of the current residual optical flow to a first decoder based on a neural network; obtaining a current predicted optical flow based on at least one of a previous optical flow corresponding to the previous reconstructed image, feature data of the previous optical flow, and feature data of a previous residual optical flow corresponding to the previous optical flow; and combining the current residual optical flow and the current prediction optical flow to obtain a current optical flow. obtaining a current predicted image by motion-compensating the previous reconstructed image based on the current optical flow; and reconstructing the current image based on the current prediction image and the current residual image data.
  • 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.
  • the circuit 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.
  • 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.
  • an 'image' may mean a still image or frame, a moving picture composed of a plurality of continuous still images or frames, or a video.
  • a 'neural network' is a representative example of an artificial neural network model simulating a brain nerve, and is 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.
  • a parameter is a value set as a result of training, and may be updated through separate training data if necessary.
  • '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 represents a feature 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 obtained in relation to the current image
  • 'current residual image data' It may mean residual image data obtained in relation to the current image.
  • 'previous image' may mean an image to be processed before the current image
  • 'previous optical flow' may mean an optical flow acquired in relation to a previous image
  • 'previous residual image data' may mean residual image data obtained in relation to a previous 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.
  • the sample may include pixels in a two-dimensional image.
  • 1 is a diagram illustrating an AI-based inter prediction process for an image.
  • the first encoder 110 , the second encoder 130 , the first decoder 150 , and the second decoder 170 are 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 and decoding the current image (x i ) using temporal redundancy between the current image (x i ) and the previous reconstructed image (y i-1 ).
  • a position difference (or motion vector) between blocks or samples in the current image (x i ) and reference blocks or reference samples in the previous reconstructed image (y i-1 ) is used for encoding and decoding the current image (x i ) is used for 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 represents a latent feature of 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 previously reconstructed image y i-1 is warped according to the current optical flow g i , for example, by warping 190 , and as a result of the warping 190 , the current prediction image x' i is obtained do.
  • the warping 190 is a type of geometric deformation that moves the positions of samples in an image.
  • an optical flow (g i ) indicating a relative positional relationship between samples in the previous reconstructed image (y i-1 ) and samples in the current image (x i )
  • the previous reconstructed image (y i-1 ) is, for example, , a current prediction image (x′ i ) similar to the current image (x i ) is obtained by being warped by the warping 190 .
  • 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).
  • current residual image 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 image data r i is input to the second encoder 130 .
  • the second encoder 130 processes the current residual image data (r i ) according to parameters set as a result of training and outputs feature data ( vi ) for the current residual image data.
  • the feature data ( vi ) for the current residual image data is input to the second decoder 170 .
  • the second decoder 170 processes the input feature data v i according to parameters set as a result of training and outputs current residual image data r' i .
  • the feature data w i for the current optical flow obtained through the first encoder 110 is input to the first decoder 150 .
  • the encoding apparatus When the encoding and decoding process of the current image (x i ) is viewed from the viewpoint of the encoding apparatus, the encoding apparatus signals the characteristic data (w i ) of the current optical flow to the decoding apparatus. ) to generate the corresponding bitstream.
  • the encoding apparatus signals the characteristic data (w i ) of the current optical flow to the decoding apparatus. ) to generate the corresponding bitstream.
  • the bit rate of the bitstream generated based on the feature data w i may also be increased.
  • the size of a bitstream generated as a result of encoding for the current optical flow may be reduced by using the previous optical flow.
  • the correlation between the previous optical flow and the current optical flow will be described with reference to FIG. 2 .
  • 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, and the second optical flow 24 may be referred to as a previous optical flow.
  • the similarity between the first optical flow 25 and the second optical flow 24 may be confirmed. For example, it is possible to see the similarity of sample values in area A in the first optical flow 25 and area B in the second optical flow 24 .
  • the size of a bitstream generated as a result of encoding for the current optical flow may be reduced.
  • FIG. 3 is a diagram illustrating a configuration of an image decoding apparatus 300 according to an exemplary embodiment.
  • the image decoding apparatus 300 includes an acquirer 310 (eg, it may be 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 element. 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 acquisition unit 310 and the prediction decoding unit 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 acquisition unit 310 may receive a bitstream from an image encoding apparatus 1200, which will be described later, through a network.
  • 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 (floptical disk) -optical medium), etc., may be obtained from a data storage medium including a bitstream.
  • the obtainer 310 parses the bitstream to obtain feature data of the current residual optical flow and feature data of the current residual image data.
  • the current residual optical flow corresponds to a difference between the current predicted optical flow and the current predicted optical flow predicted from the previous optical flow.
  • the current residual image data corresponds to a difference between the current prediction image and the current image predicted from the previous reconstructed image.
  • the feature data of the current residual optical flow and the feature data of the current residual image data may be obtained as a result of processing by a neural network-based encoder.
  • the obtaining unit 310 obtains a first bitstream corresponding to the feature data of the current residual optical flow and a second bitstream corresponding to the feature data of the current residual image data, and the first bitstream and parsing the second bitstream, respectively, to obtain feature data of the current residual optical flow and feature data of the current residual image data.
  • the feature data of the current residual optical flow and the feature data of the current residual image data are transmitted to the predictive decoding unit 330 , and the predictive decoding unit 330 is configured to convert the feature data of the current residual optical flow and the current residual image data.
  • a current reconstructed image corresponding to the current image is obtained using the feature data.
  • feature data of current residual image data may not be included in the bitstream.
  • the obtainer 310 may obtain feature data of the current residual optical flow from the bitstream, and the predictive decoder 330 may reconstruct the current optical flow.
  • the image decoding apparatus 300 may be referred to as an optical flow decoding apparatus.
  • the current optical flow reconstructed by the predictive decoder 330 may be transmitted to another device, and a current reconstructed image may be generated by the other device based on the current optical flow.
  • the other device may generate the current reconstructed image by combining the current residual image data obtained from the bitstream and the current prediction image generated from the previous reconstructed image according to the current optical flow.
  • 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 residual optical flow and quantized feature data of the current residual image data.
  • the inverse quantizer 313 inversely quantizes the quantized feature data of the current residual optical flow and the quantized feature data of the current residual image data, respectively, to obtain the feature data of the current residual optical flow and the feature data of the current residual image 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 is the feature data output from the inverse quantizer 313 . can be inversely transformed from the frequency domain to the spatial domain.
  • the acquisition unit 310 may not include the inverse quantization unit 313 . That is, feature data of the current residual optical flow and feature data of the current residual image data may be obtained through processing by the entropy decoder 311 .
  • the obtaining unit 310 obtains feature data of the current residual optical flow and feature data of the current residual image data by performing only inverse binarization on bins included in the bitstream. You may. This is when the image encoding apparatus 1200 generates a bitstream by binarizing the feature data of the current residual optical flow and the feature data of the current residual image data, that is, when the image encoding apparatus 1200 generates the current residual optical flow. This may be performed when entropy encoding, transformation, and quantization are not applied to the feature data of the flow and the feature data of the current residual image data.
  • FIG. 5 is a diagram illustrating the configuration of the prediction decoding unit 330 shown in FIG. 3 .
  • the predictive decoder 330 includes a first decoder 331 , a second decoder 333 , an optical flow predictor 334 , a first combiner 336 , a motion compensator 335 and A second coupling part 337 may be included.
  • the first decoder 331 and the second decoder 333 may be stored in a memory.
  • the first decoder 331 and the second decoder 333 may be implemented as at least one dedicated processor for AI.
  • the feature data of the current residual optical flow output by the acquirer 310 is input to the first decoder 331 , and feature data of the current residual image data is input to the second decoder 333 .
  • the feature data of the current residual optical flow or the feature data of the current optical flow is concatenated with the feature data of the current residual image data It may be inputted to the second decoder 333 after being processed.
  • concatenation may refer to a process of combining two or more feature data in a channel direction.
  • the first decoder 331 obtains the current residual optical flow by processing the feature data of the current residual optical flow according to parameters set through training.
  • the current residual optical flow is one-dimensional or two-dimensional data, and may consist of a plurality of samples.
  • the second decoder 333 obtains current residual image data by processing the feature data of the current residual image data according to parameters set through training.
  • the current residual image data is one-dimensional or two-dimensional data, and may include a plurality of samples.
  • the optical flow prediction unit 334 obtains the current predicted optical flow by using at least one of the previous optical flow, the characteristic data of the previous optical flow, and the characteristic data of the previous residual optical flow.
  • the current prediction optical flow is one-dimensional or two-dimensional data, and may consist of a plurality of samples.
  • the optical flow prediction unit 334 may determine or select a previous optical flow as a current predicted optical flow.
  • a previous optical flow may be highly likely to be very similar to a current optical flow. Accordingly, when the previous optical flow is determined as the current prediction optical flow, the sizes of the sample values of the current residual optical flow and the sample values of the feature data of the current residual optical flow may be reduced.
  • the current prediction optical flow obtained by the optical flow prediction unit 334 and the current residual optical flow obtained through the first decoder 331 are provided to the first combining unit 336 .
  • the first combiner 336 reconstructs the current optical flow by combining the current prediction optical flow and the current residual optical flow.
  • the first combiner 336 may reconstruct the current optical flow by summing sample values of the current prediction optical flow and sample values of the current residual optical flow.
  • 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 the previously reconstructed image according to the current optical flow to generate the current prediction image. Warping for generation of a current prediction image is an example, and the motion compensator 335 performs various image processing for changing positions of samples in a previously restored image in order to generate a current prediction image similar to the current image. can be applied to
  • the current prediction image generated by the motion compensator 335 is provided to the second combiner 337 .
  • the second combiner 337 obtains a current reconstructed image by combining the current prediction image and the current residual image data.
  • the second 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 image data.
  • the current reconstructed image and the current optical flow may be used in the decoding process of the next image.
  • the prediction decoding unit 330 may reconstruct the current optical flow from feature data of the current residual optical flow and provide the reconstructed current optical flow to another device.
  • the second decoder 333 , the motion compensator 335 , and the second combiner 337 may not be included in the prediction decoder 330 .
  • the second decoder 333 may not be included in the prediction decoder 330 . That is, the prediction decoding unit 330 may generate a current reconstructed image by combining the current residual image data obtained by the obtaining unit 310 from the bitstream with the current prediction image.
  • the bitrate is lower than when the bitstream is generated from the current optical flow.
  • the optical flow prediction unit 334 determined the previous optical flow as the current predicted optical flow.
  • the optical flow prediction unit 334 with reference to FIGS. 6 to 8 . An exemplary operation according to another embodiment will be described.
  • FIG. 6 is a diagram illustrating a configuration of an optical flow prediction unit 600 according to an embodiment.
  • the optical flow prediction unit 600 includes a first prediction neural network 610 .
  • the first prediction neural network 610 may be stored in a memory.
  • the first prediction neural network 610 may be implemented as at least one dedicated processor for AI.
  • At least one of a previous optical flow, feature data of a previous optical flow, or feature data of a previous residual optical flow is input to the first prediction neural network 610 to obtain a current prediction optical flow.
  • the feature data of the previous optical flow represents the latent features of the previous optical flow used during the restoration process of the previous image.
  • the feature data of the previous optical flow may be acquired during the restoration process of the previous optical flow.
  • the I frame and the P frame will be described later.
  • the predictive decoder 330 may obtain feature data of the previous optical flow by applying the restored previous optical flow to the neural network after the previous optical flow is restored.
  • the first prediction neural network 610 processes at least one of the feature data of the previous optical flow, the previous optical flow, or the previous residual optical flow through the parameters set through training to obtain the current predicted optical flow.
  • the first prediction neural network 610 includes the first encoder 1211 , the second encoder 1215 , the first encoder 1211 , the second encoder 1215 , and the It can be trained together with the first decoder 331 and the second decoder 333 .
  • the first prediction neural network 610 Since the data output by the first prediction neural network 610 is combined with the current residual optical flow output by the first decoder 331 and used to generate the current prediction image, the first prediction neural network 610 is It can be trained to output the difference between the current optical flow and the current residual optical flow, that is, the current predicted optical flow.
  • FIG. 7 is a diagram illustrating a configuration of an optical flow prediction unit 700 according to another embodiment.
  • the optical flow prediction unit 700 includes a second prediction neural network 710 and a change unit 720 .
  • the second prediction neural network 710 may be stored in a memory.
  • the second prediction neural network 710 may be implemented as at least one dedicated processor for AI.
  • At least one of the previous optical flow, feature data of the previous optical flow, and feature data of the previous residual optical flow is input to the second prediction neural network 710 .
  • the second prediction neural network 710 acquires a second-order optical flow between the current prediction optical flow and the previous optical flow through a parameter set through training.
  • the second-order optical flow may be an optical flow between optical flows, and may be defined or expressed as a set of motion vectors corresponding to samples or blocks in the optical flow.
  • the changing unit 720 processes the previous optical flow according to the second-order optical flow to obtain a current predicted optical flow.
  • the operation of the changer 720 is similar to that of the motion compensator 335 illustrated in FIG. 5 . That is, the motion compensator 335 warps the previous reconstructed image according to the current optical flow to obtain a current predicted image, and the changer 720 warps the previous optical flow according to the second-order optical flow to obtain the current prediction image. A predictive optical flow can be obtained.
  • Warping for generation of the current prediction optical flow is an example, and the change unit 720 transfers various processes of changing the positions of samples in the previous optical flow to generate a current prediction optical flow similar to the current optical flow. It can be applied to optical flow.
  • the second prediction neural network 710 Since the data output by the second prediction neural network 710 is used to change the positions of samples in the previous optical flow, the second prediction neural network 710 through training of the second prediction neural network 710 based on the loss information is Data for changing the previous optical flow to the current predicted optical flow, that is, the second-order optical flow may be output.
  • FIG. 8 is a diagram illustrating a configuration of an optical flow prediction unit 800 according to another embodiment.
  • the optical flow prediction unit 800 includes a third decoder 810 and a change unit 720 .
  • the third decoder 810 may be stored in a memory.
  • the third decoder 810 may be implemented as at least one dedicated processor for AI.
  • the third decoder 810 acquires the second-order optical flow by processing feature data of the second-order optical flow according to parameters set through training.
  • the feature data of the second-order optical flow may be obtained from a bitstream.
  • the obtainer 310 may obtain feature data of the second-order optical flow from the bitstream and provide it to the prediction decoder 330 .
  • the image encoding apparatus 1200 may generate a bitstream including feature data of the current residual optical flow and feature data of the current residual image data. ) may generate a bitstream further including feature data of the second-order optical flow. An example of this will be described later with reference to FIG. 14 .
  • the change unit 720 may obtain a current predicted optical flow by processing a previous optical flow according to the second-order optical flow.
  • the changer 720 may warp the previous optical flow according to the second-order optical flow to obtain the current predicted optical flow. Warping for generation of the current prediction optical flow is an example, and the change unit 720 sets the positions of samples in the previous optical flow to generate a current prediction optical flow similar to the current optical flow as a second-order optical flow. Various processing that changes according to the previous optical flow can be applied.
  • the feature data of the second-order optical flow provided from the image encoding apparatus 1200 is input to and processed by the third decoder 810 . Therefore, the first prediction neural network 610 and the second prediction neural network 710 that receive and process at least one of the previous optical flow, the feature data of the previous optical flow, or the feature data of the previous residual optical flow are processed compared to the third decoder ( 810) can be reduced.
  • the third decoder 810 processes the feature data of the second-order optical flow indicating the characteristics of the second-order optical flow itself, the first prediction neural network 610 and the second prediction neural network 710 are the current This is because the previous optical flow, which may have relatively low relevance to the predicted optical flow and the second-order optical flow, feature data of the previous optical flow, and/or the feature data of the previous residual optical flow are processed.
  • FIG. 9 is a flowchart of a method of restoring an optical flow according to an embodiment.
  • the image decoding apparatus 300 obtains feature data for the current residual optical flow from the bitstream for the current image.
  • the image decoding apparatus 300 may obtain feature data for the current residual optical flow by applying at least one of inverse binarization, entropy decoding, inverse quantization, and inverse transformation to bins included in the bitstream.
  • the image decoding apparatus 300 obtains the current residual optical flow by applying the feature data of the current residual optical flow to the first decoder based on the neural network.
  • the image decoding apparatus 300 obtains a current predicted optical flow by using at least one of the previous optical flow, feature data for the previous optical flow, and feature data for the previous residual optical flow.
  • the image decoding apparatus 300 may determine a previous optical flow as a current prediction optical flow.
  • the image decoding apparatus 300 applies at least one of feature data for a previous optical flow, a previous optical flow, or a previous residual optical flow to the first prediction neural network 610 to predict the current Optical flow can be obtained.
  • the image decoding apparatus 300 applies at least one of the previous optical flow, the feature data for the previous optical flow, or the feature data for the previous residual optical flow to the second prediction neural network 710 to apply the second- An order optical flow may be obtained, and a previous optical flow may be processed according to the second-order optical flow to obtain a current predicted optical flow.
  • the image decoding apparatus 300 obtains a second-order optical flow by applying feature data for a second-order optical flow obtained from a bitstream to the third decoder 810, and uses the previous optical flow
  • the current predicted optical flow may be obtained by processing according to the second-order optical flow.
  • the image decoding apparatus 300 reconstructs the current optical flow by using the current residual optical flow and the current prediction optical flow.
  • the image decoding apparatus 300 may acquire the current optical flow by summing sample values of the current residual optical flow and sample values of the current prediction optical flow.
  • the image decoding apparatus 300 obtains feature data for the current residual image data from the bitstream, and applies the feature data for the current residual image data to the second decoder 333 to obtain the current residual image data.
  • Image data can be acquired.
  • the image decoding apparatus 300 may obtain a current predicted image by processing the previous reconstructed image according to the current optical flow, and may obtain a current reconstructed image by combining the current predicted image and current residual image data.
  • the image decoding apparatus 300 may obtain current residual image data from a bitstream.
  • the image decoding apparatus 300 may obtain a current predicted image by processing the previous reconstructed image according to the current optical flow, and may obtain a current reconstructed image by combining the current predicted image and current residual image data.
  • the image decoding apparatus 300 may provide the current optical flow to another device so that the current reconstructed image is acquired by the other device.
  • the exemplary inter prediction process described with reference to FIGS. 3 to 9 considers a case in which a previous image is processed through inter prediction. This is because the previous optical flow used to reconstruct the current optical flow is generated in the inter prediction process of the previous image.
  • the inter prediction process described with reference to FIGS. 3 to 9 is applied when the current image corresponds to a P frame following a P (predictive) frame, that is, when the previous image is a P frame and the current image is a P frame.
  • the P frame means an image or frame that can be reconstructed through intra prediction or inter prediction.
  • An image or frame that can be reconstructed only through intra prediction is referred to as an I (intra) frame.
  • the previous image is an I frame
  • the previous optical flow is not obtained, so the case where the current image is the P frame after the I frame, that is, the previous image is the I frame, and the current image is the P frame
  • FIG. 10 is a diagram illustrating another configuration of the predictive decoding unit 330 .
  • the prediction decoding unit 330 includes a fourth decoder 1010 , a second decoder 333 , a motion compensator 335 , and a second combiner 337 .
  • the fourth decoder 1010 may be stored in a memory.
  • the fourth decoder 1010 may be implemented as at least one dedicated processor for AI.
  • the fourth decoder 1010 obtains the current optical flow by processing the feature data of the current optical flow according to parameters set through training.
  • the feature data of the current optical flow may be obtained from a bitstream. That is, the acquirer 310 may acquire the feature data of the current optical flow by applying at least one of inverse binarization, entropy decoding, inverse quantization, and inverse transformation to bins included in the bitstream.
  • the second decoder 333 obtains current residual image data by processing the feature data of the current residual image data according to parameters set through training.
  • the motion compensator 335 processes the previously reconstructed image according to the current optical flow to obtain a current predicted image, and the second combiner 337 combines the current predicted image with the current residual image data to obtain the current reconstructed image. do.
  • the predictive decoder 330 may transmit the current optical flow to another device and cause the current reconstructed image to be obtained by the other device.
  • the second decoder 333 , the motion compensator 335 , and the second combiner 337 may not be included in the prediction decoder 330 .
  • the predictive decoding unit 330 may further include a determining unit that determines whether the current image is a P frame following the I frame or a P frame following the P frame.
  • the prediction decoding unit 330 may include the first decoder 331 , the optical flow prediction unit 334 and the first combiner 336 shown in FIG. 5 when the current image is a P frame following the P frame. ) to restore the current optical flow, and when the current image is the P frame after the I frame, the current optical flow may be restored through the fourth decoder 1010 illustrated in FIG. 10 .
  • FIG. 11 is a flowchart of a method of restoring an optical flow according to another embodiment.
  • step S1110 the image decoding apparatus 300 determines whether the current image is the P frame after the I frame.
  • the image decoding apparatus 300 obtains feature data for the current optical flow from the bitstream.
  • the image decoding apparatus 300 may obtain feature data for the current optical flow by applying at least one of inverse binarization, entropy decoding, inverse quantization, and inverse transformation to bins included in the bitstream.
  • the image decoding apparatus 300 obtains the current optical flow by applying the feature data for the current optical flow to the fourth decoder 1010 .
  • the image decoding apparatus 300 When the current image is not the P frame after the I frame, that is, when the current image is the P frame after the P frame, the image decoding apparatus 300 performs the current optical flow through steps S910 to S940 shown in FIG. 9 . can be restored.
  • 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 predictive 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 residual optical flow and feature data of the current residual image data by using the current image and the previous reconstructed image.
  • the prediction encoder 1210 may use a neural network-based first encoder 1211 and a neural network-based second encoder 1215 to obtain feature data of the current residual optical flow and feature data of the current residual image data. have.
  • the feature data of the current residual optical flow and the feature data of the current residual image data obtained by the prediction encoder 1210 are transmitted to the generator 1230 (eg, may be a bitstream generator).
  • the generator 1230 generates a bitstream from feature data of the current residual optical flow and feature data of the current residual image data.
  • the generator 1230 may generate a first bitstream corresponding to the feature data of the current residual optical flow and a second bitstream corresponding to the feature data of the current residual image data.
  • the bitstream may be transmitted from 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 acquisition unit 1250 (for example, it may be a bitstream acquirer) acquires the feature data of the current residual optical flow and the feature data of the current residual image data from the bitstream generated by the generator 1230 . . According to an embodiment, in embodiments, the obtainer 1250 may receive feature data of the current residual optical flow and feature data of the current residual image data from the prediction encoder 1210 .
  • the feature data of the current residual optical flow and the feature data of the current residual image data are transmitted to the predictive decoder 1270, and the predictive decoder 1270 uses the feature data of the current residual optical flow to generate the current optical flow. reconstructed, and a current reconstructed image is obtained using the feature data of the current optical flow and the current residual image data.
  • the current optical flow and the current reconstructed image obtained by the prediction decoder 1270 may be used in the encoding process of the next image.
  • the configuration and operation 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 shown in FIGS. 3 to 5 above, and thus a detailed description thereof will be omitted.
  • the predictive decoder 1270 is different from the predictive decoder 330 illustrated in FIG. 5 .
  • the prediction encoder 1210 obtains feature data of the current residual optical flow by using the current image and the previously reconstructed image, and the generator 1230 corresponds to the feature data of the current residual optical flow. You can create a bitstream.
  • the obtainer 1250 may obtain feature data of the current residual optical flow from the bitstream, and the predictive decoder 1270 may reconstruct the current optical flow based on the feature data of the current residual optical flow.
  • the image encoding apparatus 1200 is the optical flow encoding apparatus may be referred to as
  • the current optical flow reconstructed by the predictive decoder 1270 may be transmitted to another device, and the current residual image data may be encoded by the other device.
  • the other device may encode the current residual image data corresponding to the difference between the current prediction image and the current image obtained from the previous reconstructed image according to the current optical flow.
  • FIG. 13 is a diagram showing the configuration of the predictive encoder 1210 shown in FIG. 12 .
  • the predictive encoder 1210 includes an optical flow predictor 1217 , a first encoder 1211 , a second encoder 1215 , and a subtractor 1213 .
  • the first encoder 1211 and the second encoder 1215 may be stored in a memory.
  • the first encoder 1211 and the second encoder 1215 may be implemented as at least one dedicated processor for AI.
  • the optical flow prediction unit 1217 obtains a current predicted optical flow by using at least one of a previous optical flow, feature data of a previous optical flow, or feature data of a previous residual optical flow.
  • the optical flow prediction unit 1217 may acquire the current prediction optical flow in the same manner as the optical flow prediction unit 334 of the image decoding apparatus 300 .
  • the optical flow prediction unit 1217 may obtain the current prediction optical flow by having the same configuration as the optical flow prediction unit 600 or 700 illustrated in FIG. 6 or 7 .
  • the optical flow prediction unit 1217 converts at least one of the feature data for the previous optical flow, the previous optical flow, or the previous residual optical flow to the first prediction neural network ( 610) to obtain a current predicted optical flow.
  • the optical flow prediction unit 1217 converts at least one of the characteristic data of the previous optical flow, the characteristic data of the previous optical flow, and the characteristic data of the previous residual optical flow to the second prediction neural network 710 . is applied to obtain a second-order optical flow, and a previous optical flow may be processed according to the second-order optical flow to obtain a current predicted optical flow.
  • the optical flow prediction unit 1217 may determine the previous optical flow as the current predicted optical flow.
  • the optical flow prediction unit 334 of the image decoding apparatus 300 includes the third decoder 810 and the changer 720 as shown in FIG. 8
  • the optical flow prediction of the image encoding apparatus 1200 is
  • the unit 1217 may have configurations as described below with reference to FIG. 14 .
  • At least one of a current image, a previous reconstructed image, and a current prediction optical flow is input to the first encoder 1211 .
  • At least one of the current image, the previous reconstructed image, and the current prediction optical flow may be concatenated and then input to the first encoder 1211 .
  • the first encoder 1211 Since information on the current optical flow can be derived from the current image and the previous reconstructed image, the first encoder 1211 generates the current optical flow identified from the current image and the previous reconstructed image, and the optical flow prediction unit 1217 . It is possible to output feature data of the current residual optical flow corresponding to the difference therebetween using the current predicted optical flow.
  • the first encoder 1211 processes at least one of a current image, a previous reconstructed image, or a current predicted optical flow according to a parameter set as a result of training, and outputs feature data of the current residual optical flow.
  • the prediction decoding unit 1270 shown in FIG. 12 reconstructs the current optical flow based on the characteristic data of the current residual optical flow, and subtracts the current prediction image generated from the previous reconstructed image according to the current optical flow. is provided as
  • the subtractor 1213 obtains current residual image data between the current image and the current prediction image.
  • the subtractor 1213 may obtain current residual image data by subtracting sample values of the current prediction image from sample values of the current image.
  • the current residual image data is input to the second encoder 1215, and the second encoder 1215 processes the current residual image data according to parameters set as a result of training to output feature data of the current residual image data. .
  • the above-described generator 1230 generates a bitstream based on the feature data of the current residual optical flow output from the prediction encoder 1210 and the feature data of the current residual image data.
  • FIG. 14 is a diagram showing the configuration of the optical flow prediction unit 1217 of the video encoding apparatus 1200 corresponding to the optical flow prediction unit 800 shown in FIG. 8 .
  • the optical flow predictor 1217 includes a third encoder 1410 , a third decoder 810 , and a changer 720 . 8 , it can be seen that the optical flow prediction unit 1217 includes a third encoder 1410 .
  • the third encoder 1410 and the third decoder 810 may be stored in a memory.
  • the third encoder 1410 and the third decoder 810 may be implemented as at least one dedicated processor for AI.
  • the third encoder 1410 processes at least one of the current image, the previous reconstructed image, the previous optical flow, the feature data of the previous optical flow, or the feature data of the previous residual optical flow according to the parameters set according to the training to process the second-order optical Acquire flow characteristic data.
  • a bitstream corresponding to the feature data of the second-order optical flow may be provided to the image decoding apparatus 300 .
  • the third decoder 810 acquires the second-order optical flow by processing feature data of the second-order optical flow according to parameters set through training.
  • the change unit 720 may obtain a current predicted optical flow by processing a previous optical flow according to the second-order optical flow.
  • the changer 720 may warp the previous optical flow according to the second-order optical flow to obtain the current predicted optical flow. Warping is an example, and the change unit 720 may apply various processes for changing positions of samples in the previous optical flow to the previous optical flow to generate the current predicted optical flow.
  • the optical flow prediction unit 1217 illustrated in FIG. 14 obtains feature data of the second-order optical flow by using various types of data available to the image encoding apparatus 1200 . And, the feature data of the second-order optical flow is signaled to the image decoding apparatus 300 .
  • the optical flow prediction unit 800 of the image decoding apparatus 300 processes the feature data of the second-order optical flow signaled from the image encoding apparatus 1200 with the third decoder 810 to obtain a second-order optical flow. .
  • the prediction optical flow obtained by the image decoding apparatus 300 using the feature data of the second-order optical flow signaled from the image encoding apparatus 1200 may be more accurate than the prediction optical flow obtained by the image decoding apparatus 300 itself. can This is because the image encoding apparatus 1200 may obtain the feature data of the second-order optical flow using more types of data than the image decoding apparatus 300 may use or use. For example, since the image decoding apparatus 300 cannot use the current image before decoding the current image, for example, the optical flow prediction units 600 and 700 shown in FIGS. 6 and 7 may predict the current predicted optical flow. The current image is not used for acquisition.
  • FIG. 15 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 quantizer 1231 quantizes the feature data of the current residual optical flow and the feature data of the current residual image data.
  • the entropy encoder 1233 entropy-codes the quantized feature data of the current residual optical flow and the quantized feature data of the current residual image data to generate a bitstream.
  • the generator 1230 may further include a converter.
  • the transform unit transforms the feature data of the current residual optical flow and the feature data of the current residual image 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, the bitstream corresponding to the feature data of the current residual optical flow and the feature data of the current residual image data may be obtained through processing by the entropy encoder 1233 .
  • the generator 1230 may generate a bitstream by performing binarization on the feature data of the current residual optical flow and the feature data of the current residual image 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 .
  • 16 is a flowchart of a method of encoding an optical flow according to an embodiment.
  • the image encoding apparatus 1200 obtains a current prediction optical flow from at least one of the previous optical flow, feature data for the previous optical flow, and feature data for the previous residual optical flow.
  • the image encoding apparatus 1200 may determine a previous optical flow as a current prediction optical flow.
  • the image encoding apparatus 1200 applies at least one of the feature data for the previous optical flow, the previous optical flow, and the feature data for the previous residual optical flow to the first prediction neural network 610 to predict the current Optical flow can be obtained.
  • the image encoding apparatus 1200 applies at least one of the feature data for the previous optical flow, the previous optical flow, or the feature data for the previous residual optical flow to the second prediction neural network 710 to apply the second- An order optical flow may be obtained, and a previous optical flow may be processed according to the second-order optical flow to obtain a current predicted optical flow.
  • the image encoding apparatus 1200 transmits at least one of the feature data for the current image, the previous reconstructed image, the previous optical flow, the feature data for the previous optical flow, or the feature data for the previous residual optical flow to the third encoder 1410 ) to obtain feature data of a second-order optical flow, and apply the feature data of the second-order optical flow to the third decoder 810 to obtain a second-order optical flow.
  • the image encoding apparatus 1200 may obtain a current predicted optical flow by processing the previous optical flow according to the second-order optical flow.
  • step S1620 the image encoding apparatus 1200 applies at least one of a current image, a previous reconstructed image, or a current prediction optical flow to the first encoder 1211 based on a neural network to obtain feature data for the current residual optical flow. do.
  • the image encoding apparatus 1200 In operation S1630, the image encoding apparatus 1200 generates a bitstream corresponding to feature data of the current residual optical flow.
  • bitstream may further include feature data of a second-order optical flow and/or feature data of current residual image data.
  • the image encoding apparatus 1200 reconstructs a current optical flow from feature data of the current residual optical flow, and processes a previously reconstructed image based on the reconstructed current optical flow to obtain a current predicted image.
  • the image encoding apparatus 1200 may obtain feature data of the current residual image data by applying the current residual image data corresponding to the difference between the current prediction image and the current image to the second encoder 1215 .
  • the feature data of the current residual image data may be included in the bitstream.
  • the image encoding apparatus 1200 reconstructs a current optical flow from feature data of the current residual optical flow, and processes a previous reconstructed image based on the reconstructed current optical flow to obtain a current predicted image.
  • current residual image data corresponding to a difference between the current prediction image and the current image may be included in the bitstream.
  • the encoding process described with reference to FIGS. 12 to 16 considers a case in which a previous image is processed through inter prediction. This is because the previous optical flow used to encode the current optical flow is generated in the inter prediction process of the previous image.
  • the encoding process described with reference to FIGS. 12 to 16 may be applied when the current image is a P frame and the previous image is a P frame, for example, when the current image corresponds to a P frame following the P frame. If the previous image is an I frame, the previous optical flow may not be acquired.
  • an encoding process for a case where the current image is a P frame after the I frame will be described.
  • 17 is a diagram showing another configuration of the predictive encoding unit 1210 .
  • the prediction encoder 1210 includes a fourth encoder 1710 , a second encoder 1215 , and a subtractor 1213 .
  • the fourth encoder 1710 and the second encoder 1215 may be stored in a memory.
  • the fourth encoder 1710 and the second encoder 1215 may be implemented as at least one dedicated processor for AI.
  • the fourth encoder 1710 obtains feature data of the current optical flow by processing the current image and the previous reconstructed image according to parameters set according to training.
  • the prediction decoding unit 1270 shown in FIG. 12 reconstructs a current optical flow based on feature data of the current optical flow, and provides a current prediction image generated from a previous reconstructed image according to the current optical flow to the subtractor 1213. do.
  • the prediction decoder 1270 may use the fourth decoder 1010 shown in FIG. 10 to restore the current optical flow.
  • the subtractor 1213 obtains current residual image data between the current image and the current prediction image.
  • the subtractor 1213 may obtain current residual image data by subtracting sample values of the current prediction image from sample values of the current image.
  • the current residual image data is input to the second encoder 1215, and the second encoder 1215 processes the current residual image data according to parameters set as a result of training to output feature data of the current residual image 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 image data.
  • the bitstream may be transmitted from 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 prediction encoder 1210 may further include a determining unit that determines whether the current image is a P frame following the I frame or a P frame following the P frame.
  • the prediction encoder 1210 obtains feature data of the current residual optical flow through the optical flow predictor 1217 and the first encoder 1211 shown in FIG. 13 when the current image is a P frame after the P frame. and, when the current image is the P frame after the I frame, the feature data of the current optical flow may be obtained through the fourth encoder 1710 illustrated in FIG. 17 .
  • the first encoder 1211 , the second encoder 1215 , the third encoder 1410 , the fourth encoder 1710 , the first decoder 331 , the second decoder 333 , and the third decoder At least one of 810 , the fourth decoder 1010 , the first prediction neural network 610 , and the second prediction neural network 710 may include a convolutional layer.
  • An exemplary structure that the decoder 1010 , the first prediction neural network 610 , and the second prediction neural network 710 may have will be described with reference to FIG. 18 .
  • FIG. 18 is a diagram illustrating a structure of a neural network 1800 according to an embodiment.
  • input data 1805 is input to a first convolutional layer 1810 .
  • the input data 1805 is the first encoder 1211 , the second encoder 1215 , the third encoder 1410 , the fourth encoder 1710 , the first decoder 331 , and the second It depends on which one of the decoder 333 , the third decoder 810 , the fourth decoder 1010 , the first prediction neural network 610 , and the second prediction neural network 710 .
  • the input data 1805 may correspond to a result of concatenating a current image, a previous reconstructed image, and a predicted optical flow.
  • the input data 1805 may correspond to current residual image data.
  • “3X3X4” indicated in the first convolution layer 1810 of FIG. 18 may indicate that convolution processing is performed on one input data 1805 using four filter kernels having a size of 3 ⁇ 3. As a result of the convolution process, four feature maps are generated by four filter kernels.
  • the feature maps generated by the first convolutional layer 1810 represent unique properties of the input data 1805 .
  • each feature map may indicate a vertical direction characteristic, a horizontal direction characteristic, or an edge characteristic of the input data 1805 .
  • One feature map ( 1950) can be created. Since four filter kernels 1930 are used in the first convolution layer 1810 , four feature maps 1950 may be generated through a convolution operation process using the four filter kernels 1930 .
  • I1 to I49 indicated in the input data 1805 represent samples of the input data 1805
  • F1 to F9 indicated in the filter kernel 1930 are samples of the filter kernel 1930 (also referred to as parameters. ) are shown.
  • M1 to M9 displayed in the feature map 1950 represent samples of the feature map 1950 .
  • Each multiplication operation of F6, F7, F8, and F9 may be 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 1950 .
  • 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 1950 .
  • a convolution operation between sample values in the input data 1805 and samples of the filter kernel 1930 is performed while the filter kernel 1930 moves along the stride until the last sample of the input data 1805 is reached.
  • a feature map 1950 having a predetermined size may be obtained.
  • parameters of the neural network 1800 for example, samples of the filter kernel 1930 used in convolutional layers of the neural network 1800 (for example, , values of F1, F2, F3, F4, F5, F6, F7, F8, and F9 of the filter kernel 1930 may be optimized.
  • the convolution layers included in the neural network 1800 may be processed according to the convolution operation process described in relation to FIG. 19 , but the convolution operation process described in FIG. 19 is only an example, and embodiments are limited thereto it is not
  • the feature maps of the first convolutional layer 1810 are input to the first activation layer 1820 .
  • the first activation layer 1820 may provide a non-linear characteristic to each feature map.
  • the first activation layer 1820 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 nonlinear characteristic to the first activation layer 1820 means changing and outputting some sample values of the feature maps. At this time, the change is performed by applying a non-linear characteristic.
  • the first activation layer 1820 determines whether to transfer the sample values of the feature map to the second convolution layer 1830 . For example, some sample values among the sample values of the feature map are activated by the first activation layer 1820 and transmitted to the second convolution layer 1830 , and some sample values are activated by the first activation layer 1820 . It is deactivated and is not transmitted to the second convolutional layer 1830 . A unique characteristic of the input data 1805 represented by the feature maps is emphasized by the first activation layer 1820 .
  • the feature maps 1825 output from the first activation layer 1820 are input to the second convolution layer 1830 . Any one of the feature maps 1825 shown in FIG. 18 is a result of processing the feature map 1950 described with reference to FIG. 19 in the first activation layer 1820 .
  • “3X3X4” displayed in the second convolutional layer 1830 may indicate that the input feature maps 1825 are convolved using four filter kernels of 3 ⁇ 3 size.
  • the output of the second convolutional layer 1830 is input to the second activation layer 1840 .
  • the second activation layer 1840 may provide a non-linear characteristic to the input feature maps.
  • the feature maps 1845 output from the second activation layer 1840 are input to the third convolution layer 1850 .
  • 3X3X1 displayed in the third convolution layer 1850 exemplifies convolution processing to generate one output data 1855 using one filter kernel having a size of 3x3.
  • the output data 1855 is the neural network 1800 of the first encoder 1211, the second encoder 1215, the third encoder 1410, the fourth encoder 1710, the first decoder 331, the second decoder ( 333 ), the third decoder 810 , the fourth decoder 1010 , the first prediction neural network 610 , and the second prediction neural network 710 .
  • the output data 1855 may be feature data for the current residual optical flow, and as another example, the neural network 1800 is the second encoder 1215 . In the case of , the output data 1855 may be feature data for the current residual image data.
  • the neural network 1800 is illustrated in FIG. 18 as including three convolutional layers and two activation layers, this is only an example, and according to the implementation, in embodiments, the neural network 1800 is included.
  • the number of convolutional layers and activation layers may be variously changed.
  • the neural network 1800 may be implemented through a recurrent neural network (RNN).
  • RNN recurrent neural network
  • it may mean that the neural network 1800 according to an example of the present disclosure is changed from a CNN structure to an RNN structure.
  • 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 input data 1805 or the sample values of the feature map output from 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 .
  • the optical flow prediction unit 2090 may correspond to the optical flow prediction unit 600 including the first prediction neural network 610 of FIG. 6 .
  • the optical flow prediction unit 2090 may correspond to the optical flow prediction unit 700 including the second prediction neural network 710 of FIG. 7 .
  • the optical flow prediction unit 2090 may correspond to the optical flow prediction unit 800 including the third decoder 810 .
  • the optical flow prediction unit 2090 may correspond to the optical flow prediction unit 1217 including the third encoder 1410 of FIG. 14 .
  • a current training image 2010 , a previous reconstructed training image 2030 , and a current reconstructed training image 2050 correspond to the aforementioned current image, the previous reconstructed image, and the current reconstructed image, respectively.
  • the current reconstruction training image ( 2050 ) may be considered to be similar to the current training image 2010 and to what extent a bitrate of a bitstream generated through encoding of the current training image 2010 is large.
  • the first loss information 2060 corresponding to the similarity between the current training image 2010 and the current reconstruction training image 2050, 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 optical flow prediction unit 2090 according to the loss information 2070 and the third loss information 2080 .
  • the neural network used in can be trained.
  • a current predicted optical flow is obtained through the optical flow prediction unit 2090 .
  • the current prediction optical flow may be obtained according to the embodiment described with reference to FIG. 6 , the embodiment described with reference to FIG. 7 , or the embodiment described with reference to FIG. 14 .
  • the previous optical flow may be determined as the current prediction optical flow.
  • the current prediction optical flow, the current training image 2010 and the previous reconstructed training image 2030 are input to the first encoder 1211 .
  • the first encoder 1211 processes the current prediction optical flow, the current training image 2010, and the previous reconstructed training image 2030 to output feature data h i of the current residual optical flow.
  • the feature data h i of the current residual optical flow is input to the first decoder 331 , and the first decoder 331 processes the feature data h i of the current residual optical flow to process the current residual optical flow. (d i ) is printed.
  • the current prediction optical flow and the current residual optical flow d i are combined by, for example, the combiner 2095 , so that the current optical flow g i is obtained.
  • the previous reconstruction training image 2030 is warped by, for example, the warping 190 according to the current optical flow (g i ), whereby the current prediction training image (x' i ) is generated, and the current prediction training image ( x' i ) and the current residual image data r i corresponding to the difference between the current training image 2010 is obtained.
  • the current residual image data (r i ) is input to the second encoder 1215 , and the second encoder 1215 processes the current residual image data (ri ) to obtain feature data ( vi ) of the current residual image data. ) is output.
  • the feature data ( vi ) of the current residual image data is input to the second decoder 333 .
  • the second decoder 333 processes the feature data ( vi) of the current residual image data to output the current residual image data (r' i ) , and the current prediction training image (x' i ) and the current residual
  • the current reconstruction training image 2050 is obtained by summing the image data r′ i .
  • At least one of the second loss information 2070 and the third loss information 2080 may be obtained.
  • the first loss information 2060 corresponds to a difference between the current training image 2010 and the current reconstruction training image 2050 .
  • the difference between the current training image 2010 and the current reconstructed training image 2050 is an L1-norm value, an L2-norm value determined based on the current training image 2010 and the current reconstructed training image 2050, 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 2060 is related to the quality of the current reconstruction training image 2050 , the first loss information 2060 may be referred to as quality loss information.
  • the second loss information 2070 corresponds to the entropy of the feature data h i of the current residual optical flow or the bit rate of the bitstream corresponding to the feature data h i of the current residual optical flow.
  • the third loss information 2080 corresponds to the entropy of the feature data ( vi ) of the current residual image data or the bit rate of the bitstream corresponding to the feature data ( vi ) of the current residual image data.
  • the fourth loss corresponding to the bitrate of the corresponding bitstream Information can be calculated.
  • the second loss information 2070 and the third loss information 2080 may not be used for training.
  • the second loss information 2070 and the third loss information 2080 are related to the encoding efficiency of the current training image 2010, the second loss information 2070 and the third loss information 2080 have compression loss. Information can be referenced.
  • the neural network used in the first decoder 331 , the second decoder 333 , the first encoder 1211 , the second encoder 1215 , and the optical flow prediction unit 2090 includes the first loss information 2060 , the second The final loss information derived from at least one of the loss information 2070 and the third loss information 2080 may be trained to be reduced or minimized.
  • the neural network used in the first decoder 331 , the second decoder 333 , the first encoder 1211 , the second encoder 1215 , and the optical flow prediction unit 2090 changes the value of a preset parameter. It can be trained so that the final loss information is reduced or minimized.
  • the final loss information may be calculated according to Equation 1 below.
  • Equation 1 a, b, and c represent weights applied to each of the first loss information 2060 , the second loss information 2070 , and the third loss information 2080 , respectively.
  • the neural network used in the first decoder 331 , the second decoder 333 , the first encoder 1211 , the second encoder 1215 and the optical flow prediction unit 2090 is the current reconstruction training
  • the image 2050 may be trained to be as similar to the current training image 2010 as possible, and the size of a bitstream corresponding to data output from the first encoder 1211 and the second encoder 1215 may be minimized.
  • the training process shown in FIG. 20 corresponds to the training process for the P frame following the P frame.
  • the fourth encoder 1710 shown in FIGS. 10 and 17 and Training of the fourth decoder 1010 may be required.
  • the first encoder 1211 and the first decoder 331 shown in FIG. 20 may be replaced with the fourth encoder 1710 and the fourth decoder 1010 .
  • the optical flow prediction unit 2090 and the combiner 2095 may not be used in the training process.
  • An exemplary training process of the second encoder 1215 , the second decoder 333 , the fourth encoder 1710 and the fourth decoder 1010 for the case of an I frame followed by a P frame is described.
  • the current training image 2010 and the previous reconstruction training image 2030 may be input to the fourth encoder 1710 .
  • the fourth encoder 1710 processes the current training image 2010 and the previous reconstructed training image 2030 to output feature data of the current optical flow, and the feature data of the current optical flow is input to the fourth decoder 1010 . do.
  • the fourth decoder 1010 processes the feature data of the current optical flow and outputs the current optical flow.
  • the previous reconstruction training image 2030 is warped according to the current optical flow, for example, by warping 190 to generate a current prediction training image (x' i ), and the current prediction training image (x' i ) ) and the current residual image data r i corresponding to the difference between the current training image 2010 is obtained.
  • the current residual image data (r i ) is input to the second encoder 1215 , and the second encoder 1215 processes the current residual image data (ri ) to obtain feature data ( vi ) of the current residual image data. ) is output.
  • the feature data ( vi ) of the current residual image data is input to the second decoder 333 .
  • the second decoder 333 processes the feature data ( vi) of the current residual image data to output the current residual image data (r' i ) , and the current prediction training image (x' i ) and the current residual
  • the current reconstruction training image 2050 is obtained by summing the image data r′ i .
  • the second encoder 1215 , the second decoder 333 , the fourth encoder 1710 and the fourth decoder 1010 include the first loss information 2060 , the second loss information 2070 , or the third loss information 2080 . ) may be trained to reduce or minimize the final loss information calculated from at least one of.
  • the first loss information 2060 may correspond to a difference between the current training image 2010 and the current reconstruction training image 2050 .
  • the second loss information 2070 may correspond to the entropy of the feature data of the current optical flow or the bit rate of the bitstream corresponding to the feature data of the current optical flow.
  • the third loss information 2080 may correspond to the entropy of the feature data ( vi ) of the current residual image data or the bitrate of the bitstream corresponding to the feature data ( vi ) of the current residual image data.
  • the second encoder 1215 and the second decoder 333 may be used in both the training process for the P frame following the P frame and the training process for the P frame following the I frame.
  • the second encoder 1215 and the second decoder 333 are trained through the training process for the P frame following the P frame, and then are further trained through the training process for the P frame following the I frame.
  • the second encoder 1215 and the second decoder 333 are trained through the training process for the P frame following the I frame, and then are further trained through the training process for the P frame following the P frame.
  • the second encoder 1215 and the second decoder 333 may be separately trained through a training process for a P frame following an I frame and a training process for a P frame following the P frame.
  • the second encoder 1215 and the second decoder 333 trained through the training process for the P frame after the P frame are applied to the current image after the P frame, and the P frame after the I frame.
  • 21 is a training process of the first decoder 331, the second decoder 333, the first encoder 1211, the second encoder 1215, and the optical flow prediction neural network 2200 by the training device 2100. It is a drawing for explanation.
  • the optical flow prediction neural network 2200 is a neural network used to obtain a predicted optical flow, for example, the first prediction neural network 610 shown in FIG. 6 , the second prediction neural network 710 shown in FIG. 7 or It may be the third encoder 1410 and the third decoder 810 shown in FIG. 14 .
  • the exemplary training process described with reference to FIG. 20 may be performed by the training device 2100 .
  • the training apparatus 2100 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 device 2100 includes a first encoder 1211 , a first decoder 331 , a second encoder 1215 , a second decoder 333 , and an optical flow prediction neural network 2200 .
  • the first encoder 1211 , the first decoder 331 , the second encoder 1215 , the second decoder 333 , and the optical flow prediction neural network 2200 may operate according to the initially set parameters. .
  • the training apparatus 2100 provides the data required for the optical flow prediction neural network 2200 to obtain the current prediction optical flow (eg, the previous optical flow, the characteristic data of the previous optical flow, or the characteristic of the previous residual optical flow). at least one of the data) is input to the prediction neural network 2200 of the optical flow (operation S2115).
  • the current prediction optical flow eg, the previous optical flow, the characteristic data of the previous optical flow, or the characteristic of the previous residual optical flow.
  • the optical flow prediction neural network 2200 processes the input data and outputs the current prediction optical flow to the first encoder 1211 and the training device 2100 (operation S2120).
  • the training apparatus 2100 inputs the current training image 2010 and the previous reconstructed training image 2030 to the first encoder 1211 (operation S2125).
  • the first encoder 1211 processes the current prediction optical flow, the current training image 2010, and the previous reconstructed training image 2030 to provide feature data (h i ) of the current residual optical flow to the training apparatus 2100 and output to the first decoder 331 (operation S2130).
  • the training apparatus 2100 calculates the second loss information 2070 from the feature data h i of the current residual optical flow (operation S2135 ).
  • the first decoder 331 processes the feature data h i of the current residual optical flow and outputs the current residual optical flow d i to the training apparatus 2100 (operation S2140 ).
  • the training apparatus 2100 generates a current prediction training image (x' i ) using the current optical flow obtained based on the current prediction optical flow and the current residual optical flow (d i ), and the current prediction training Current residual image data ri corresponding to the difference between the image x' i and the current training image 2010 is acquired (operation S2145 ).
  • the training apparatus 2100 inputs the current residual image data ri to the second encoder 1215 (operation S2150), and the second encoder 1215 receives the feature data v i of the current residual image data. It outputs to the training device 2100 and the second decoder 333 (operation S2155).
  • the training apparatus 2100 calculates the third loss information 2080 from the feature data v i of the current residual image data (operation S2160 ).
  • the second decoder 333 processes the feature data v i of the current residual image data and outputs the current residual image data r′ i to the training apparatus 2100 (operation S2165 ).
  • the training apparatus 2100 generates a current reconstructed training image 2050 from the current residual image data (r' i ) and the current prediction training image (x' i ) (operation S2170 ).
  • the training apparatus 2100 calculates the first loss information 2060 corresponding to the difference between the current training image 2010 and the current restored training image 2050 (operation S2180).
  • the training apparatus 2100 calculates final loss information by combining at least one of the first loss information 2060, the second loss information 2070, or the third loss information 2080, and the first decoder 331, the first The second decoder 333, the first encoder 1211, the second encoder 1215, and the optical flow prediction neural network 2200 update the initially set parameters through a back propagation process based on the final loss information ( operations S2181, S2183, S2185, S2187, S2189).
  • the training apparatus 2100, the first decoder 331, the second decoder 333, the first encoder 1211, the second encoder 1215, and the optical flow prediction neural network 2200 minimize the final loss information.
  • the parameters are updated while repeating steps S2115 to S2189 until the At this time, during each iteration process, the first decoder 331 , the second decoder 333 , the first encoder 1211 , the second encoder 1215 , and the optical flow prediction neural network 2200 have the parameters updated in the previous process. operates according to
  • FIG. 22 is a diagram for explaining a training process of the fourth encoder 1710 , the fourth decoder 1010 , the second encoder 1215 , and the second decoder 333 by the training apparatus 2100 .
  • the training process shown in FIG. 21 is a training process for a P frame following a P frame
  • the training process shown in FIG. 22 may be understood as a training process for a P frame following an I frame.
  • the training apparatus 2100 initially sets parameters of the fourth encoder 1710 , the fourth decoder 1010 , the second encoder 1215 , and the second decoder 333 (operation S2210 ). Accordingly, the fourth encoder 1710 , the fourth decoder 1010 , the second encoder 1215 , and the second decoder 333 may operate according to initially set parameters. According to an implementation, in embodiments, the second encoder 1215 and the second decoder 333 may initially operate according to parameters set through the training process illustrated in FIG. 21 .
  • the training apparatus 2100 inputs the current training image 2010 and the previous reconstructed training image 2030 to the fourth encoder 1710 (operation S2215).
  • the fourth encoder 1710 processes the current training image 2010 and the previous reconstructed training image 2030 and outputs feature data of the current optical flow to the training apparatus 2100 and the fourth decoder 1010 (operation S2220). ).
  • the training apparatus 2100 calculates the second loss information 2070 from the feature data of the current optical flow (operation S2225).
  • the fourth decoder 1010 processes the feature data of the current optical flow and outputs the current optical flow to the training apparatus 2100 (operation S2230).
  • the training apparatus 2100 generates a current prediction training image (x' i ) using the current optical flow, and a current corresponding to the difference between the current prediction training image (x' i ) and the current training image 2010 .
  • the residual image data r i is obtained (operation S2235).
  • the training device 2100 inputs the current residual image data ri to the second encoder 1215 (operation S2240 ), and the second encoder 1215 uses the feature data v i of the current residual image data. It outputs to the training device 2100 and the second decoder 333 (operation S2245).
  • the training apparatus 2100 calculates the third loss information 2080 from the feature data v i of the current residual image data (operation S2250 ).
  • the second decoder 333 processes the feature data v i of the current residual image data and outputs the current residual image data r′ i to the training apparatus 2100 (operation S2260 ).
  • the training apparatus 2100 generates a current reconstructed training image 2050 from the current residual image data (r' i ) and the current prediction training image (x' i ) (operation S2265 ).
  • the training apparatus 2100 calculates the first loss information 2060 corresponding to the difference between the current training image 2010 and the current reconstruction training image 2050 (operation S2270).
  • the training apparatus 2100 calculates final loss information by combining at least one of the first loss information 2060, the second loss information 2070, or the third loss information 2080, and the fourth encoder 1710, the second 4
  • the decoder 1010 , the second encoder 1215 , and the second decoder 333 update initially set parameters through a back propagation process based on the final loss information (operations S2271 , S2273 , S2275 , S2277 ). ).
  • the training apparatus 2100, the fourth encoder 1710, the fourth decoder 1010, the second encoder 1215, and the second decoder 333 repeat the processes S2215 to S2277 until the final loss information is minimized. while updating the parameters.
  • the fourth encoder 1710 , the fourth decoder 1010 , the second encoder 1215 , and the second decoder 333 operate according to the parameters updated in the previous process.
  • 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를 이용하는 옵티컬 플로우의 복원 방법은, 비트스트림으로부터 현재 영상에 대한 현재의 잔차 옵티컬 플로우(current residual optical flow)의 특징 데이터를 획득하는 단계; 신경망 기반의 제 1 디코더에 상기 현재의 잔차 옵티컬 플로우의 특징 데이터를 적용하여 상기 현재의 잔차 옵티컬 플로우를 획득하는 단계; 이전 옵티컬 플로우, 상기 이전 옵티컬 플로우의 특징 데이터, 및 이전의 잔차 옵티컬 플로우의 특징 데이터 중 적어도 하나에 기반하여 현재의 예측 옵티컬 플로우를 획득하는 단계; 및 상기 현재의 잔차 옵티컬 플로우와 상기 현재의 예측 옵티컬 플로우에 기초하여 현재 옵티컬 플로우를 복원하는 단계를 포함할 수 있다.

Description

AI 기반의 영상의 부호화 및 복호화 장치, 및 이에 의한 방법
본 개시는 영상의 부호화 및 복호화에 관한 것이다. 보다 구체적으로, 본 개시는 영상의 인터 예측에 필요한 옵티컬 플로우를 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 residual optical flow)의 특징 데이터를 획득하는 단계; 신경망 기반의 제 1 디코더에 상기 현재의 잔차 옵티컬 플로우의 특징 데이터를 적용하여 상기 현재의 잔차 옵티컬 플로우를 획득하는 단계; 이전 옵티컬 플로우, 상기 이전 옵티컬 플로우의 특징 데이터, 및 이전의 잔차 옵티컬 플로우의 특징 데이터 중 적어도 하나에 기반하여 현재의 예측 옵티컬 플로우를 획득하는 단계; 및 상기 현재의 잔차 옵티컬 플로우와 상기 현재의 예측 옵티컬 플로우에 기초하여 현재 옵티컬 플로우를 복원하는 단계를 포함할 수 있다.
일 실시예에 따른 영상의 부호화 및 복호화 장치, 및 이에 의한 방법은 인터 예측에 필요한 옵티컬 플로우의 시그널링을 적은 비트레이트로 가능케할 수 있다.
또한, 일 실시예에 따른 영상의 부호화 및 복호화 장치, 및 이에 의한 방법은 옵티컬 플로우를 정확하게 복원할 수 있다.
또한, 일 실시예에 따른 영상의 부호화 및 복호화 장치, 및 이에 의한 방법은 적은 비트레이트의 비트스트림으로부터 영상을 정확하게 복원할 수 있다.
도 1은 일 실시예에 따른, 영상에 대한 AI 기반의 인터 예측 과정을 도시하는 도면이다.
도 2는 일 실시예에 따른, 연속하는 영상들, 및 연속하는 영상들 사이의 옵티컬 플로우를 예시하는 도면이다.
도 3은 일 실시예에 따른 영상 복호화 장치의 구성을 도시하는 도면이다.
도 4는 일 실시예에 따른, 도 3에 도시된 획득부의 구성을 도시하는 도면이다.
도 5는 일 실시예에 따른, 도 3에 도시된 예측 복호화부의 구성을 도시하는 도면이다.
도 6은 일 실시예에 따른 옵티컬 플로우 예측부의 구성을 도시하는 도면이다.
도 7은 일 실시예에 따른 옵티컬 플로우 예측부의 구성을 도시하는 도면이다.
도 8은 일 실시예에 따른 옵티컬 플로우 예측부의 구성을 도시하는 도면이다.
도 9는 일 실시예에 따른 옵티컬 플로우를 복원하는 방법의 순서도이다.
도 10은 예측 복호화부의 다른 구성을 도시하는 도면이다
도 11은 일 실시예에 따른 옵티컬 플로우를 복원하는 방법의 순서도이다.
도 12는 일 실시예에 따른 영상 부호화 장치의 구성을 도시하는 도면이다.
도 13은 일 실시예에 따른, 도 12에 도시된 예측 부호화부의 구성을 도시하는 도면이다.
도 14는 일 실시예에 따른 옵티컬 플로우 예측부의 구성을 도시하는 도면이다.
도 15는 일 실시예에 따른, 도 12에 도시된 생성부의 구성을 도시하는 도면이다.
도 16은 일 실시예에 따른 옵티컬 플로우를 부호화하는 방법의 순서도이다.
도 17은 일 실시예에 따른, 예측 부호화부의 다른 구성을 도시하는 도면이다.
도 18은 일 실시예에 따른 신경망의 구조를 예시하는 도면이다.
도 19는 일 실시예에 따른, 도 18에 도시된 컨볼루션 레이어에서의 컨볼루션 연산을 설명하기 위한 도면이다.
도 20은 일 실시예에 따른, 인터 예측 과정에서 이용되는 신경망들의 훈련 방법을 설명하기 위한 도면이다.
도 21은 일 실시예에 따른, 인터 예측 과정에서 이용되는 신경망들에 대한 훈련 장치의 훈련 과정을 설명하기 위한 도면이다.
도 22는 일 실시예에 따른, 인터 예측 과정에서 이용되는 신경망들에 대한 훈련 장치의 다른 훈련 과정을 설명하기 위한 도면이다.
일 실시예에 따른 AI를 이용하는 옵티컬 플로우의 복원 방법은, 비트스트림으로부터 현재 영상에 대한 현재의 잔차 옵티컬 플로우(current residual optical flow)의 특징 데이터를 획득하는 단계; 신경망 기반의 제 1 디코더에 상기 현재의 잔차 옵티컬 플로우의 특징 데이터를 적용하여 상기 현재의 잔차 옵티컬 플로우를 획득하는 단계; 이전 옵티컬 플로우, 상기 이전 옵티컬 플로우의 특징 데이터, 및 이전의 잔차 옵티컬 플로우의 특징 데이터 중 적어도 하나에 기반하여 현재의 예측 옵티컬 플로우를 획득하는 단계; 및 상기 현재의 잔차 옵티컬 플로우와 상기 현재의 예측 옵티컬 플로우에 기초하여 현재 옵티컬 플로우를 복원하는 단계를 포함할 수 있다.
상기 복원된 현재 옵티컬 플로우와 이전 복원 영상에 기초하여 생성되는 현재 예측 영상과, 현재의 잔차 영상 데이터에 기반하여 상기 현재 영상이 복원될 수 있다.
상기 현재의 예측 옵티컬 플로우를 획득하는 단계는, 상기 이전 옵티컬 플로우를 상기 현재의 예측 옵티컬 플로우로 선택하는 단계를 포함할 수 있다.
상기 현재의 예측 옵티컬 플로우를 획득하는 단계는, 상기 이전 옵티컬 플로우, 상기 이전 옵티컬 플로우의 특징 데이터 및 상기 이전의 잔차 옵티컬 플로우의 특징 데이터 중 적어도 하나를 제 1 예측 신경망(first prediction neural network)에 적용하는 단계를 포함할 수 있다.
상기 현재의 예측 옵티컬 플로우를 획득하는 단계는, 상기 이전 옵티컬 플로우, 상기 이전 옵티컬 플로우의 특징 데이터 및 상기 이전의 잔차 옵티컬 플로우의 특징 데이터 중 적어도 하나를 제 2 예측 신경망(second prediction neural network)에 적용하여 상기 현재의 예측 옵티컬 플로우와 상기 이전 옵티컬 플로우 사이의 세컨드-오더 옵티컬 플로우(second-order optical flow)를 획득하는 단계; 및 상기 이전 옵티컬 플로우를 상기 세컨드-오더 옵티컬 플로우에 따라 변경하여 상기 현재의 예측 옵티컬 플로우를 생성하는 단계를 포함할 수 있다.
상기 현재의 예측 옵티컬 플로우를 획득하는 단계는, 상기 비트스트림으로부터 상기 현재의 예측 옵티컬 플로우와 상기 이전 옵티컬 플로우 사이의 세컨드-오더 옵티컬 플로우의 특징 데이터를 획득하는 단계; 상기 세컨드-오더 옵티컬 플로우의 특징 데이터를 신경망 기반의 제 3 디코더에 적용하여 상기 세컨드-오더 옵티컬 플로우를 획득하는 단계; 및 상기 이전 옵티컬 플로우를 상기 세컨드-오더 옵티컬 플로우에 따라 변경하여 상기 현재의 예측 옵티컬 플로우를 생성하는 단계를 포함할 수 있다.
상기 현재의 잔차 옵티컬 플로우의 특징 데이터는, 상기 비트스트림에 대한 엔트로피 복호화 및 역양자화를 수행함으로써 획득될 수 있다.
상기 신경망 기반의 제 1 디코더는, 현재 훈련 영상(current training image)과 상기 현재 훈련 영상에 관련된 현재의 복원 훈련 영상(current reconstructed training image) 사이의 차이에 대응하는 제 1 손실 정보; 및 상기 현재 훈련 영상의 현재의 잔차 옵티컬 플로우의 특징 데이터의 엔트로피에 대응하는 제 2 손실 정보를 기반으로 훈련될 수 있다.
상기 현재의 잔차 옵티컬 플로우의 특징 데이터는, P(predictive) 프레임에 대응하는 상기 현재 영상, 및 상기 P 프레임을 뒤따르는 다른 P 프레임에 기초하여 상기 비트스트림으로부터 획득될 수 있다.
상기 P 프레임을 뒤따르는 I(intra) 프레임에 기초하여 상기 옵티컬 플로우의 복원 방법은, 비트스트림으로부터 현재 옵티컬 플로우의 특징 데이터를 획득하는 단계; 신경망 기반의 제 4 디코더에 상기 현재 옵티컬 플로우의 특징 데이터를 적용하여 상기 현재 옵티컬 플로우를 복원하는 단계를 더 포함할 수 있다.
일 실시예에 따른 AI를 이용하는 옵티컬 플로우의 복원 장치는, 비트스트림으로부터 상기 현재 영상에 대한 현재의 잔차 옵티컬 플로우의 특징 데이터를 획득하는 비트스트림 획득부; 및 신경망 기반의 제 1 디코더에 상기 현재의 잔차 옵티컬 플로우의 특징 데이터를 적용하여 상기 현재의 잔차 옵티컬 플로우를 획득하고, 이전 옵티컬 플로우, 이전 옵티컬 플로우의 특징 데이터 및 이전의 잔차 옵티컬 플로우의 특징 데이터 중 적어도 하나를 이용하여 현재의 예측 옵티컬 플로우를 획득하고, 상기 현재의 잔차 옵티컬 플로우와 상기 현재의 예측 옵티컬 플로우에 기초하여 현재 옵티컬 플로우를 복원하는 예측 복호화부를 구현하는 적어도 하나의 프로세서를 포함할 수 있다.
일 실시예에 따른 AI를 이용하는 옵티컬 플로우의 부호화 방법은, 이전 옵티컬 플로우, 상기 이전 옵티컬 플로우의 특징 데이터 및 이전의 잔차 옵티컬 플로우의 특징 데이터 중 적어도 하나로부터 현재의 예측 옵티컬 플로우를 획득하는 단계; 현재 영상, 이전 복원 영상 및 상기 현재의 예측 옵티컬 플로우를 신경망 기반의 제 1 인코더에 적용하여 현재의 잔차 옵티컬 플로우의 특징 데이터를 획득하는 단계; 및 상기 현재의 잔차 옵티컬 플로우의 특징 데이터에 대응하는 비트스트림을 생성하는 단계를 포함하되, 상기 현재의 잔차 옵티컬 플로우는, 현재 옵티컬 플로우와 상기 현재의 예측 옵티컬 플로우 사이의 차이에 대응할 수 있다.
일 실시예에 따른 AI를 이용하는 옵티컬 플로우의 부호화 장치는, 이전 옵티컬 플로우, 상기 이전 옵티컬 플로우에 대한 특징 데이터 및 이전의 잔차 옵티컬 플로우에 대한 특징 데이터 중 적어도 하나로부터 현재의 예측 옵티컬 플로우를 획득하고, 현재 영상, 이전 복원 영상 및 상기 현재의 예측 옵티컬 플로우를 신경망 기반의 제 1 인코더에 적용하여 현재의 잔차 옵티컬 플로우에 대한 특징 데이터를 획득하는 예측 부호화부; 및 상기 현재의 잔차 옵티컬 플로우에 대한 특징 데이터에 대응하는 비트스트림을 생성하는 생성부를 구현하는 적어도 하나의 프로세서를 포함하되, 상기 현재의 잔차 옵티컬 플로우는, 현재 옵티컬 플로우와 상기 현재의 예측 옵티컬 플로우 사이의 차이에 대응할 수 있다.
일 실시예에 따른 AI를 이용하는 옵티컬 플로우의 복원 방법은, 신경망 기반의 제 1 디코더에 현재의 잔차 옵티컬 플로우의 특징 데이터를 적용하여 현재의 잔차 옵티컬 플로우를 획득하는 단계; 이전 복원 영상에 대응하는 이전 옵티컬 플로우, 상기 이전 옵티컬 플로우의 특징 데이터, 및 상기 이전 옵티컬 플로우에 대응하는 이전의 잔차 옵티컬 플로우의 특징 데이터 중 적어도 하나에 기반하여 현재의 예측 옵티컬 플로우를 획득하는 단계; 및 상기 현재의 잔차 옵티컬 플로우와 상기 현재의 예측 옵티컬 플로우를 결합하여 현재 옵티컬 플로우를 획득하는 단계; 상기 현재 옵티컬 플로우에 기초하여 상기 이전 복원 영상을 움직임 보상하여 현재 예측 이미지를 획득하는 단계; 및 상기 현재 예측 영상과 현재 잔차 영상 데이터에 기초하여 현재 영상을 복원하는 단계를 포함할 수 있다.
본 개시는 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고, 이를 상세한 설명을 통해 상세히 설명하고자 한다. 그러나, 이는 본 개시의 실시 형태에 대해 한정하려는 것이 아니며, 본 개시는 여러 실시예들의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
실시예를 설명함에 있어서, 관련된 공지 기술에 대한 구체적인 설명이 본 개시의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 본 개시의 설명 과정에서 이용되는 숫자(예를 들어, 제 1, 제 2 등)는 하나의 구성요소를 다른 구성요소와 구분하기 위한 식별기호에 불과하다.
또한, 본 개시에서, 일 구성요소가 다른 구성요소와 "연결된다" 거나 "접속된다" 등으로 언급된 때에는, 상기 일 구성요소가 상기 다른 구성요소와 직접 연결되거나 또는 직접 접속될 수도 있지만, 특별히 반대되는 기재가 존재하지 않는 이상, 중간에 또 다른 구성요소를 매개하여 연결되거나 또는 접속될 수도 있다고 이해되어야 할 것이다.
기술 분야에서 통상적인 바와 같이, 실시예들은 설명된 기능 또는 기능들을 수행하는 블록들(blocks)의 관점에서 설명되고 예시될 수 있다. 도면들에 도시된 바와 같이, “유닛들” 또는 “모듈들” 등으로 참조될 수 있는 이들 블록들, 또는 부호화부, 복호화부, 획득부, 양자화부, 변환부, 감산부, 보상부, 변환부 등의 이름을 갖는 이들 블록들은, 논리 게이트, 집적 회로, 마이크로프로세서, 마이크로컨트롤러, 메모리 회로, 수동 전자 부품, 능동 전자 부품, 광학 부품, 유선 회로 등과 같은 아날로그 또는 디지털 회로에 의해 물리적으로 구현될 수 있으며, 펌웨어 및 소프트웨어에 의해 구동될 수 있다. 회로는, 예를 들어, 하나 이상의 반도체 칩에서, 또는 인쇄 회로 기판 등과 같은 기판 지지부(substrate support) 상에 구현될 수 있다. 블록에 포함된 회로는 전용 하드웨어 또는 프로세서(예를 들어, 하나 이상의 프로그래밍된 마이크로프로세서 및 관련 회로)에 의해, 또는 블록의 일부 기능을 수행하는 전용 하드웨어와 블록의 다른 기능을 수행하는 프로세서의 조합에 의해 구현될 수 있다. 실시예의 각 블록은 2개 이상의 상호 작용하는 개별 블록으로 물리적으로 분리될 수 있다. 마찬가지로, 실시예의 블록들은 물리적으로 더 복잡한 블록으로 결합될 수 있다.
또한, 본 개시에서 '~부(유닛)', '모듈' 등으로 표현되는 구성요소는 2개 이상의 구성요소가 하나의 구성요소로 합쳐지거나 또는 하나의 구성요소가 보다 세분화된 기능별로 2개 이상으로 분화될 수도 있다. 또한, 이하에서 설명할 구성요소 각각은 자신이 담당하는 주기능 이외에도 다른 구성요소가 담당하는 기능 중 일부 또는 전부의 기능을 추가적으로 수행할 수도 있으며, 구성요소 각각이 담당하는 주기능 중 일부 기능이 다른 구성요소에 의해 전담되어 수행될 수도 있음은 물론이다.
또한, 본 개시에서, "a, b 또는 c 중 적어도 하나" 표현은 " a", " b", " c", "a 및 b", "a 및 c", "b 및 c", "a, b 및 c 모두", 혹은 그 변형들을 지칭할 수 있다.
또한, 본 개시에서, '영상(image)'은 정지영상 또는 프레임, 복수의 연속된 정지영상 또는 프레임들로 구성된 동영상, 또는 비디오를 의미할 수 있다.
또한, 본 개시에서 '신경망(neural network)'은 뇌 신경을 모사한 인공 신경망 모델의 대표적인 예시로서, 특정 알고리즘을 사용한 인공 신경망 모델로 한정되지 않는다. 신경망은 심층 신경망(deep neural network)으로 참조될 수도 있다.
또한, 본 개시에서 '파라미터(parameter)'는 신경망을 이루는 각 레이어의 연산 과정에서 이용되는 값일 수 있으며 예를 들어, 입력 값을 소정 연산식에 적용할 때 이용될 수 있다. 파라미터는 훈련의 결과로 설정되는 값으로서, 필요에 따라 별도의 훈련 데이터(training data)를 통해 갱신될 수 있다.
또한, 본 개시에서 '특징 데이터'는 신경망 기반의 인코더가 입력 데이터를 처리함으로써 획득되는 데이터를 의미할 수 있다. 특징 데이터는 여러 샘플들을 포함하는 1차원 또는 2차원의 데이터일 수 있다. 특징 데이터는 잠재 표현(latent representation)으로 참조될 수도 있다. 특징 데이터는 후술하는 디코더가 출력하는 데이터에 잠재된 특징을 나타낸다.
또한, 본 개시에서 '현재 영상'은 현재의 처리 대상인 영상을 의미할 수 있고, '현재 옵티컬 플로우'는 현재 영상과 관련되어 획득된 옵티컬 플로우를 의미할 수 있고, '현재의 잔차 영상 데이터'는 현재 영상과 관련되어 획득된 잔차 영상 데이터를 의미할 수 있다.
또한, 본 개시에서 '이전 영상'은 현재 영상 이전의 처리 대상인 영상을 의미할 수 있고, '이전 옵티컬 플로우'는 이전 영상과 관련되어 획득된 옵티컬 플로우를 의미할 수 있고, '이전 잔차 영상 데이터'는 이전 영상과 관련되어 획득된 잔차 영상 데이터를 의미할 수 있다.
또한, 본 개시에서, '샘플'은 영상, 특징 맵 또는 특징 데이터 내 샘플링 위치에 할당된 데이터일 수 있으며 처리 대상이 되는 데이터를 의미할 수 있다. 예를 들어, 샘플은 2차원의 영상 내 픽셀을 포함할 수 있다.
도 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) 내 어디에 위치하는지를 나타낸다. 예를 들어, 현재 영상(xi) 내 (1, 1)에 위치한 샘플이 이전 복원 영상(yi-1) 내 (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)는 현재 옵티컬 플로우에 잠재된 특징을 나타낸다.
현재 옵티컬 플로우에 대한 특징 데이터(wi)는 제 1 디코더(150)로 입력된다. 제 1 디코더(150)는 입력된 특징 데이터(wi)를 훈련의 결과로 설정된 파라미터에 따라 처리하여 현재 옵티컬 플로우(gi)를 출력한다.
이전 복원 영상(yi-1)은 현재 옵티컬 플로우(gi)에 따라, 예를 들어, 워핑(190)에 의해 워핑되고, 워핑(190)의 결과로 현재 예측 영상(x'i)이 획득된다. 워핑(190)이란, 영상 내 샘플들의 위치를 이동시키는 기하학적 변형의 한 종류이다. 이전 복원 영상(yi-1) 내 샘플들과 현재 영상(xi) 내 샘플들 사이의 상대적인 위치 관계를 나타내는 옵티컬 플로우(gi)에 따라 이전 복원 영상(yi-1)이 예를 들어, 워핑(190)에 의해 워핑됨으로써 현재 영상(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 인코더(110)를 통해 획득된 현재 옵티컬 플로우에 대한 특징 데이터(wi)가 제 1 디코더(150)로 입력된다.
현재 영상(xi)의 부호화 및 복호화 과정을 부호화 장치의 관점에서 보면, 부호화 장치는 현재 옵티컬 플로우에 대한 특징 데이터(wi)를 복호화 장치로 시그널링하기 위해 현재 옵티컬 플로우에 대한 특징 데이터(wi)에 대응하는 비트스트림을 생성하여야 한다. 그러나, 현재 영상(xi)과 이전 영상(xi-1)에 포함된 오브젝트의 움직임이 큰 경우, 현재 옵티컬 플로우에 포함된 샘플 값들의 크기가 크므로, 현재 옵티컬 플로우에 잠재된 특성을 나타내는 특징 데이터(wi)에 기반하여 생성된 비트스트림의 비트레이트 역시 커질 수 있다.
이하에서 설명되는 실시예들에서는, 이전 옵티컬 플로우를 이용하여, 현재 옵티컬 플로우에 대한 부호화 결과로 생성되는 비트스트림의 크기가 감소될 수 있다. 이전 옵티컬 플로우와 현재 옵티컬 플로우 사이의 연관성에 대해서는 도 2를 참조하여 설명한다.
도 2를 참조하면, 현재 영상(23)과 제 1 이전 영상(22) 사이에서 제 1 옵티컬 플로우(25)가 획득되고, 제 1 이전 영상(22)과 제 2 이전 영상(21) 사이에서 제 2 옵티컬 플로우(24)가 획득된다.
도 2에 도시된 제 1 옵티컬 플로우(25) 및 제 2 옵티컬 플로우(24)는 옵티컬 플로우에 포함된 샘플들의 크기 또는 움직임 벡터들의 크기(magnitude)에 따라 시각화된 것이다.
제 1 옵티컬 플로우(25)는 현재 옵티컬 플로우로 참조되고, 제 2 옵티컬 플로우(24)는 이전 옵티컬 플로우로 참조될 수 있다.
도 2를 참조하면, 제 1 옵티컬 플로우(25)와 제 2 옵티컬 플로우(24) 사이의 유사성을 확인할 수 있다. 예를 들어, 제 1 옵티컬 플로우(25) 내 A 영역과 제 2 옵티컬 플로우(24) 내 B 영역에서 샘플 값들의 유사성을 볼 수 있다.
시간적으로 연속하는 영상들 내 오브젝트는 선형적으로 움직이는 경향이 있으므로, 제 1 옵티컬 플로우(25)와 제 2 옵티컬 플로우(24) 사이의 유사성을 예측할 수 있다.
즉, 현재 영상(23)에 대한 현재 옵티컬 플로우(예를 들어, 제 1 옵티컬 플로우(25))를 부호화하는데 있어, 이전 옵티컬 플로우(예를 들어, 제 2 옵티컬 플로우(24))를 이용하는 경우, 현재 옵티컬 플로우에 대한 부호화 결과로 생성되는 비트스트림의 크기가 작아질 수 있다.
도 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)는 현재의 잔차 옵티컬 플로우의 특징 데이터 및 현재의 잔차 영상 데이터의 특징 데이터를 이용하여 현재 영상에 대응하는 현재 복원 영상을 획득한다.
구현예에 따라, 실시예들에서, 비트스트림에 현재의 잔차 영상 데이터의 특징 데이터가 포함되어 있지 않을 수도 있다. 획득부(310)는 비트스트림으로부터 현재의 잔차 옵티컬 플로우의 특징 데이터를 획득하고, 예측 복호화부(330)는 현재 옵티컬 플로우를 복원할 수 있다. 이 경우, 영상 복호화 장치(300)는 옵티컬 플로우 복호화 장치로 참조될 수 있다.
예측 복호화부(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)는 제 1 디코더(331), 제 2 디코더(333), 옵티컬 플로우 예측부(334), 제 1 결합부(336), 움직임 보상부(335) 및 제 2 결합부(337)를 포함할 수 있다.
제 1 디코더(331) 및 제 2 디코더(333)는 메모리에 저장될 수 있다. 일 실시예에서, 제 1 디코더(331) 및 제 2 디코더(333)는 AI를 위한 적어도 하나의 전용 프로세서로 구현될 수도 있다.
획득부(310)에 의해 출력된 현재의 잔차 옵티컬 플로우의 특징 데이터는 제 1 디코더(331)로 입력되고, 현재의 잔차 영상 데이터의 특징 데이터는 제 2 디코더(333)로 입력된다.
구현예에 따라, 현재의 잔차 영상 데이터의 정확한 복원을 위해, 실시예들에서, 현재의 잔차 옵티컬 플로우의 특징 데이터 또는 현재 옵티컬 플로우의 특징 데이터가 현재의 잔차 영상 데이터의 특징 데이터에 연접(concatenation)된 후 제 2 디코더(333)로 입력될 수도 있다. 여기서, 연접(concatenation)이란, 두 개 이상의 특징 데이터를 채널 방향으로 결합하는 처리를 의미할 수 있다.
제 1 디코더(331)는 훈련을 통해 설정된 파라미터에 따라 현재의 잔차 옵티컬 플로우의 특징 데이터를 처리하여 현재의 잔차 옵티컬 플로우를 획득한다. 현재의 잔차 옵티컬 플로우는 1차원 또는 2차원의 데이터로서, 복수의 샘플들로 이루어질 수 있다.
제 2 디코더(333)는 훈련을 통해 설정된 파라미터에 따라 현재의 잔차 영상 데이터의 특징 데이터를 처리하여 현재의 잔차 영상 데이터를 획득한다. 현재의 잔차 영상 데이터는 1차원 또는 2차원의 데이터로서, 복수의 샘플들로 이루어질 수 있다.
옵티컬 플로우 예측부(334)는 이전 옵티컬 플로우, 이전 옵티컬 플로우의 특징 데이터 또는 이전의 잔차 옵티컬 플로우의 특징 데이터 중 적어도 하나를 이용하여 현재의 예측 옵티컬 플로우를 획득한다.
현재의 예측 옵티컬 플로우는 1차원 또는 2차원의 데이터로서, 복수의 샘플들로 이루어질 수 있다.
일 실시예에서, 옵티컬 플로우 예측부(334)는 이전 옵티컬 플로우를 현재의 예측 옵티컬 플로우로 결정 또는 선택할 수 있다.
도 2를 참조하여 설명한 바와 같이, 연속하는 영상 내 오브젝트의 선형적인 움직임으로 인해, 이전 옵티컬 플로우가 현재 옵티컬 플로우에 매우 유사할 가능성이 높을 수 있다. 따라서, 이전 옵티컬 플로우를 현재의 예측 옵티컬 플로우로 결정하는 경우, 현재의 잔차 옵티컬 플로우의 샘플 값들의 크기 및 현재의 잔차 옵티컬 플로우의 특징 데이터의 샘플 값들의 크기가 작아질 수 있다.
옵티컬 플로우 예측부(334)에 의해 획득된 현재의 예측 옵티컬 플로우 및 제 1 디코더(331)를 통해 획득된 현재의 잔차 옵티컬 플로우는 제 1 결합부(336)로 제공된다.
제 1 결합부(336)는 현재의 예측 옵티컬 플로우와 현재의 잔차 옵티컬 플로우를 결합하여 현재 옵티컬 플로우를 복원한다. 제 1 결합부(336)는 현재의 예측 옵티컬 플로우의 샘플 값들과 현재의 잔차 옵티컬 플로우의 샘플 값들을 합하여 현재 옵티컬 플로우를 복원할 수 있다.
움직임 보상부(335)는 이전 복원 영상을 현재 옵티컬 플로우에 따라 처리하여 현재 영상과 유사한 현재 예측 영상을 생성한다. 이전 복원 영상은 현재 영상의 처리 전에 처리 대상이었던 이전 영상에 대한 복호화를 통해 복원된 영상이다.
움직임 보상부(335)는 현재 예측 영상의 생성을 위해 이전 복원 영상을 현재 옵티컬 플로우에 따라 워핑할 수 있다. 현재 예측 영상의 생성을 위한 워핑은 하나의 예시이고, 움직임 보상부(335)는 현재 영상과 유사한 현재 예측 영상을 생성하기 위해, 이전 복원 영상 내 샘플들의 위치를 변경하는 다양한 영상 처리를 이전 복원 영상에 대해 적용할 수 있다.
움직임 보상부(335)에 의해 생성된 현재 예측 영상은 제 2 결합부(337)로 제공된다.
제 2 결합부(337)는 현재 예측 영상과 현재의 잔차 영상 데이터를 결합하여 현재 복원 영상을 획득한다. 일 예에서, 제 2 결합부(337)는 현재 예측 영상의 샘플 값들과 현재의 잔차 영상 데이터의 샘플 값들을 합산 값들을 포함하는 현재 복원 영상을 획득할 수 있다.
현재 복원 영상 및 현재 옵티컬 플로우는 다음 영상의 복호화 과정에서 이용될 수 있다.
구현예에 따라, 실시예들에서, 예측 복호화부(330)는 현재의 잔차 옵티컬 플로우의 특징 데이터로부터 현재 옵티컬 플로우를 복원하고, 복원된 현재 옵티컬 플로우를 다른 장치로 제공할 수도 있다. 이 경우, 제 2 디코더(333), 움직임 보상부(335) 및 제 2 결합부(337)는 예측 복호화부(330)에 포함되지 않을 수 있다.
구현예에 따라, 비트스트림로부터 현재의 잔차 영상 데이터가 획득 가능한 경우, 실시예들에서, 제 2 디코더(333)는 예측 복호화부(330)에 포함되지 않을 수도 있다. 즉, 예측 복호화부(330)는 획득부(310)가 비트스트림으로부터 획득한 현재의 잔차 영상 데이터를 현재 예측 영상에 결합하여 현재 복원 영상을 생성할 수 있다.
본 개시의 일 실시예에 따르면, 현재 옵티컬 플로우에 비해 작은 크기의 샘플들을 포함하는 현재의 잔차 옵티컬 플로우에 기초하여 비트스트림이 생성되므로, 현재 옵티컬 플로우로부터 비트스트림이 생성되는 경우에 비해 낮은 비트레이트의 달성이 가능하다.
앞서, 도 5에 대응하는 실시예들에서 옵티컬 플로우 예측부(334)가 이전 옵티컬 플로우를 현재의 예측 옵티컬 플로우로 결정하였는데, 이하에서는, 도 6 내지 도 8을 참조하여 옵티컬 플로우 예측부(334)의 다른 실시예에 따른 예시적인 동작을 설명한다.
도 6은 일 실시예에 따른 옵티컬 플로우 예측부(600)의 구성을 도시하는 도면이다.
도 6을 참조하면, 옵티컬 플로우 예측부(600)는 제 1 예측 신경망(first prediction neural network)(610)를 포함한다. 제 1 예측 신경망(610)은 메모리에 저장될 수 있다. 일 실시예에서, 제 1 예측 신경망(610)은 AI를 위한 적어도 하나의 전용 프로세서로 구현될 수도 있다.
현재의 예측 옵티컬 플로우의 획득을 위해 이전 옵티컬 플로우, 이전 옵티컬 플로우의 특징 데이터 또는 이전의 잔차 옵티컬 플로우의 특징 데이터 중 적어도 하나가 제 1 예측 신경망(610)으로 입력된다.
이전 옵티컬 플로우의 특징 데이터는 이전 영상의 복원 과정 중에 이용되는 이전 옵티컬 플로우에 잠재된 특징을 나타낸다.
일 실시예에서, 이전 옵티컬 플로우의 특징 데이터는 이전 영상이 I(intra) 프레임 다음의 P(predictive) 프레임인 경우에 이전 옵티컬 플로우의 복원 과정에서 획득될 수 있다. I 프레임 및 P 프레임에 대해서는 후술한다.
다른 실시예에서, 예측 복호화부(330)는 이전 옵티컬 플로우의 복원 후, 복원된 이전 옵티컬 플로우를 신경망에 적용하여 이전 옵티컬 플로우의 특징 데이터를 획득할 수도 있다.
제 1 예측 신경망(610)은 훈련을 통해 설정된 파라미터를 통해 이전 옵티컬 플로우, 이전 옵티컬 플로우의 특징 데이터 또는 이전의 잔차 옵티컬 플로우의 특징 데이터 중 적어도 하나를 처리하여 현재의 예측 옵티컬 플로우를 획득한다.
도 5를 참조하여 설명한 것과 같이, 현재의 예측 옵티컬 플로우와 현재의 잔차 옵티컬 플로우가 결합됨으로써, 현재 예측 영상을 생성하는데 이용되는 현재 옵티컬 플로우가 획득된다. 도 20 및 도 21을 참조하여 후술하는 바와 같이, 제 1 예측 신경망(610)은 손실 정보의 공유를 통해, 다시 말하면 공통의 목적을 가지고 제 1 인코더(1211), 제 2 인코더(1215), 제 1 디코더(331) 및 제 2 디코더(333)와 함께 훈련될 수 있다.
제 1 예측 신경망(610)에 의해 출력되는 데이터는 제 1 디코더(331)에 의해 출력되는 현재의 잔차 옵티컬 플로우에 결합된 후, 현재 예측 영상을 생성하는데 이용되므로, 제 1 예측 신경망(610)은 현재 옵티컬 플로우와 현재의 잔차 옵티컬 플로우 사이의 차이, 즉 현재의 예측 옵티컬 플로우를 출력하도록 훈련될 수 있다.
도 7은 다른 실시예에 따른 옵티컬 플로우 예측부(700)의 구성을 도시하는 도면이다.
도 7을 참조하면, 옵티컬 플로우 예측부(700)는 제 2 예측 신경망(second prediction neural network)(710) 및 변경부(720)를 포함한다.
제 2 예측 신경망(710)은 메모리에 저장될 수 있다. 일 실시예에서, 제 2 예측 신경망(710)은 AI를 위한 적어도 하나의 전용 프로세서로 구현될 수도 있다.
이전 옵티컬 플로우, 이전 옵티컬 플로우의 특징 데이터 또는 이전의 잔차 옵티컬 플로우의 특징 데이터 중 적어도 하나가 제 2 예측 신경망(710)으로 입력된다.
제 2 예측 신경망(710)은 훈련을 통해 설정된 파라미터를 통해 현재의 예측 옵티컬 플로우와 이전 옵티컬 플로우 사이의 세컨드-오더 옵티컬 플로우(second-order optical flow)를 획득한다.
세컨드-오더 옵티컬 플로우는 옵티컬 플로우들 사이의 옵티컬 플로우일 수 있는데, 옵티컬 플로우 내 샘플들 또는 블록들에 대응하는 움직임 벡터들의 집합으로 정의 또는 표현될 수 있다.
세컨드-오더 옵티컬 플로우는 이전 옵티컬 플로우 내 샘플들의 위치가 현재의 예측 옵티컬 플로우 내에서 어떻게 변경되었는지 또는 현재의 예측 옵티컬 플로우의 샘플들의 참조 샘플들이 이전 옵티컬 플로우 내 어디에 위치하는지를 나타낼 수 있다. 예를 들어, 이전 옵티컬 플로우 내 (1, 1)에 위치한 샘플이 현재의 예측 옵티컬 플로우 내 (2, 1)에 위치한다면, 해당 샘플에 대한 세컨드-오더 옵티컬 플로우 또는 움직임 벡터는 (1(=2-1), 0(=1-1))으로 도출될 수 있다.
변경부(720)(예를 들어, 옵티컬 플로우 변형부 또는 옵티컬 플로우 처리부일 수 있다)는 이전 옵티컬 플로우를 세컨드-오더 옵티컬 플로우에 따라 처리하여 현재의 예측 옵티컬 플로우를 획득한다.
변경부(720)의 동작은 도 5에 도시된 움직임 보상부(335)의 동작과 유사하다. 즉, 움직임 보상부(335)는 이전 복원 영상을 현재 옵티컬 플로우에 따라 워핑하여 현재 예측 영상을 획득할 수 있고, 변경부(720)는 이전 옵티컬 플로우를 세컨드-오더 옵티컬 플로우에 따라 워핑하여 현재의 예측 옵티컬 플로우를 획득할 수 있다.
현재의 예측 옵티컬 플로우의 생성을 위한 워핑은 하나의 예시이고, 변경부(720)는 현재 옵티컬 플로우에 유사한 현재의 예측 옵티컬 플로우를 생성하기 위해 이전 옵티컬 플로우 내 샘플들의 위치를 변경하는 다양한 처리를 이전 옵티컬 플로우에 대해 적용할 수 있다.
제 2 예측 신경망(710)에 의해 출력되는 데이터는, 이전 옵티컬 플로우 내 샘플들의 위치를 변경하는데 이용되므로, 손실 정보에 기반한 제 2 예측 신경망(710)의 훈련을 통해 제 2 예측 신경망(710)은 이전 옵티컬 플로우를 현재의 예측 옵티컬 플로우로 변경하기 위한 데이터, 즉, 세컨드-오더 옵티컬 플로우를 출력할 수 있다.
도 8은 또 다른 실시예에 따른 옵티컬 플로우 예측부(800)의 구성을 도시하는 도면이다.
도 8을 참조하면, 옵티컬 플로우 예측부(800)는 제 3 디코더(810) 및 변경부(720)를 포함한다. 제 3 디코더(810)은 메모리에 저장될 수 있다. 일 실시예에서, 제 3 디코더(810)은 AI를 위한 적어도 하나의 전용 프로세서로 구현될 수도 있다.
제 3 디코더(810)는 훈련을 통해 설정된 파라미터에 따라 세컨드-오더 옵티컬 플로우의 특징 데이터를 처리하여 세컨드-오더 옵티컬 플로우를 획득한다.
세컨드-오더 옵티컬 플로우의 특징 데이터는 비트스트림으로부터 획득될 수 있다. 획득부(310)는 비트스트림으로부터 세컨드-오더 옵티컬 플로우의 특징 데이터를 획득하여 예측 복호화부(330)로 제공할 수 있다.
영상 부호화 장치(1200)는 현재의 잔차 옵티컬 플로우의 특징 데이터 및 현재의 잔차 영상 데이터의 특징 데이터를 포함하는 비트스트림을 생성할 수 있는데, 구현예에 따라, 실시예들에서, 영상 부호화 장치(1200)는 세컨드-오더 옵티컬 플로우의 특징 데이터를 더 포함하는 비트스트림을 생성할 수 있다. 이에 대한 예시에 대해 도 14를 참조하여 후술한다.
변경부(720)는 세컨드-오더 옵티컬 플로우에 따라 이전 옵티컬 플로우를 처리하여 현재의 예측 옵티컬 플로우를 획득할 수 있다.
일 실시예에서, 변경부(720)는 현재의 예측 옵티컬 플로우의 획득을 위해 세컨드-오더 옵티컬 플로우에 따라 이전 옵티컬 플로우를 워핑할 수 있다. 현재의 예측 옵티컬 플로우의 생성을 위한 워핑은 하나의 예시이고, 변경부(720)는 현재 옵티컬 플로우에 유사한 현재의 예측 옵티컬 플로우를 생성하기 위해, 이전 옵티컬 플로우 내 샘플들의 위치를 세컨드-오더 옵티컬 플로우에 따라 변경하는 다양한 처리를 이전 옵티컬 플로우에 대해 적용할 수 있다.
도 8에 따른 실시예에서는, 영상 부호화 장치(1200)로부터 제공된 세컨드-오더 옵티컬 플로우의 특징 데이터가 제 3 디코더(810)로 입력되어 처리된다. 따라서, 이전 옵티컬 플로우, 이전 옵티컬 플로우의 특징 데이터 또는 이전의 잔차 옵티컬 플로우의 특징 데이터 중 적어도 하나를 입력받아 처리하는 제 1 예측 신경망(610) 및 제 2 예측 신경망(710)에 비해 제 3 디코더(810)의 복잡도가 감소될 수 있다. 왜냐하면, 제 3 디코더(810)는 세컨드-오더 옵티컬 플로우 자체의 특징을 나타내는 세컨드-오더 옵티컬 플로우의 특징 데이터를 처리하는데 반해, 제 1 예측 신경망(610)과 제 2 예측 신경망(710)은 현재의 예측 옵티컬 플로우 및 세컨드-오더 옵티컬 플로우와의 관련성이 상대적으로 낮을 수 있는 이전 옵티컬 플로우, 이전 옵티컬 플로우의 특징 데이터 및/또는 이전의 잔차 옵티컬 플로우의 특징 데이터를 처리하기 때문이다.
도 9는 일 실시예에 따른 옵티컬 플로우를 복원하는 방법의 순서도이다.
S910 단계에서, 영상 복호화 장치(300)는 현재 영상에 대한 비트스트림으로부터 현재의 잔차 옵티컬 플로우에 대한 특징 데이터를 획득한다.
영상 복호화 장치(300)는 비트스트림에 포함된 빈들에 대해 역이진화, 엔트로피 복호화, 역양자화 또는 역변환 중 적어도 하나를 적용하여 현재의 잔차 옵티컬 플로우에 대한 특징 데이터를 획득할 수 있다.
S920 단계에서, 영상 복호화 장치(300)는 신경망 기반의 제 1 디코더에 현재의 잔차 옵티컬 플로우에 대한 특징 데이터를 적용하여 현재의 잔차 옵티컬 플로우를 획득한다.
S930 단계에서, 영상 복호화 장치(300)는 이전 옵티컬 플로우, 이전 옵티컬 플로우에 대한 특징 데이터 또는 이전의 잔차 옵티컬 플로우에 대한 특징 데이터 중 적어도 하나를 이용하여 현재의 예측 옵티컬 플로우를 획득한다.
일 실시예에서, 영상 복호화 장치(300)는 이전 옵티컬 플로우를 현재의 예측 옵티컬 플로우로 결정할 수 있다.
다른 실시예에서, 영상 복호화 장치(300)는 이전 옵티컬 플로우, 이전 옵티컬 플로우에 대한 특징 데이터 또는 이전의 잔차 옵티컬 플로우에 대한 특징 데이터 중 적어도 하나를 제 1 예측 신경망(610)에 적용하여 현재의 예측 옵티컬 플로우를 획득할 수 있다.
또 다른 실시예에서, 영상 복호화 장치(300)는 이전 옵티컬 플로우, 이전 옵티컬 플로우에 대한 특징 데이터 또는 이전의 잔차 옵티컬 플로우에 대한 특징 데이터 중 적어도 하나를 제 2 예측 신경망(710)에 적용하여 세컨드-오더 옵티컬 플로우를 획득하고, 이전 옵티컬 플로우를 세컨드-오더 옵티컬 플로우에 따라 처리하여 현재의 예측 옵티컬 플로우를 획득할 수 있다.
또 다른 실시예에서, 영상 복호화 장치(300)는 비트스트림으로부터 획득되는 세컨드-오더 옵티컬 플로우에 대한 특징 데이터를 제 3 디코더(810)에 적용하여 세컨드-오더 옵티컬 플로우를 획득하고, 이전 옵티컬 플로우를 세컨드-오더 옵티컬 플로우에 따라 처리하여 현재의 예측 옵티컬 플로우를 획득할 수 있다.
S940 단계에서, 영상 복호화 장치(300)는 현재의 잔차 옵티컬 플로우와 현재의 예측 옵티컬 플로우를 이용하여 현재 옵티컬 플로우를 복원한다. 영상 복호화 장치(300)는 현재의 잔차 옵티컬 플로우의 샘플 값들과 현재의 예측 옵티컬 플로우의 샘플 값들을 합하여 현재 옵티컬 플로우를 획득할 수 있다.
일 실시예에서, 영상 복호화 장치(300)는 비트스트림으로부터 현재의 잔차 영상 데이터에 대한 특징 데이터를 획득하고, 현재의 잔차 영상 데이터에 대한 특징 데이터를 제 2 디코더(333)에 적용하여 현재의 잔차 영상 데이터를 획득할 수 있다. 그리고, 영상 복호화 장치(300)는 이전 복원 영상을 현재 옵티컬 플로우에 따라 처리하여 현재 예측 영상을 획득하고, 현재 예측 영상과 현재의 잔차 영상 데이터를 결합하여 현재 복원 영상을 획득할 수 있다.
다른 실시예에서, 영상 복호화 장치(300)는 비트스트림으로부터 현재의 잔차 영상 데이터를 획득할 수 있다. 그리고, 영상 복호화 장치(300)는 이전 복원 영상을 현재 옵티컬 플로우에 따라 처리하여 현재 예측 영상을 획득하고, 현재 예측 영상과 현재의 잔차 영상 데이터를 결합하여 현재 복원 영상을 획득할 수 있다.
또 다른 실시예에서, 영상 복호화 장치(300)는 현재 옵티컬 플로우를 다른 장치로 제공하여 다른 장치에 의해 현재 복원 영상이 획득되도록 할 수 있다.
한편, 도 3 내지 도 9와 관련하여 설명한 예시적인 인터 예측 과정은, 이전 영상이 인터 예측을 통해 처리된 경우를 고려한 것이다. 왜냐하면, 현재 옵티컬 플로우를 복원하는데 이용되는 이전 옵티컬 플로우는 이전 영상의 인터 예측 과정에서 생성된 것이기 때문이다.
즉, 도 3 내지 도 9와 관련하여 설명한 인터 예측 과정은 현재 영상이 P(predictive) 프레임 다음의 P 프레임에 해당하는 경우, 다시 말하면 이전 영상이 P 프레임이고, 현재 영상이 P 프레임인 경우에 적용될 수 있다. 여기서, P 프레임이란, 인트라 예측 또는 인터 예측을 통해 복원될 수 있는 영상 또는 프레임을 의미한다. 인트라 예측을 통해서만 복원될 수 있는 영상 또는 프레임은 I(intra) 프레임으로 참조된다.
따라서, 만약 이전 영상이 I 프레임이라면, 이전 옵티컬 플로우는 획득되지 않으므로, 이하에서는 현재 영상이 I 프레임 다음의 P 프레임인 경우, 다시 말하면, 이전 영상이 I 프레임이고, 현재 영상이 P 프레임인 경우를 위한 예시적인 인터 예측 과정에 대해 설명한다.
도 10은 예측 복호화부(330)의 다른 구성을 도시하는 도면이다.
도 10을 참조하면, 예측 복호화부(330)는 제 4 디코더(1010), 제 2 디코더(333), 움직임 보상부(335) 및 제 2 결합부(337)를 포함한다.
제 4 디코더(1010)는 메모리에 저장될 수 있다. 일 실시예에서, 제 4 디코더(1010)는 AI를 위한 적어도 하나의 전용 프로세서로 구현될 수도 있다.
제 4 디코더(1010)는 훈련을 통해 설정된 파라미터에 따라 현재 옵티컬 플로우의 특징 데이터를 처리하여 현재 옵티컬 플로우를 획득한다.
현재 옵티컬 플로우의 특징 데이터는 비트스트림으로부터 획득될 수 있다. 즉, 획득부(310)는 비트스트림에 포함된 빈들에 대해 역이진화, 엔트로피 복호화, 역양자화 또는 역변환 중 적어도 하나를 적용하여 현재 옵티컬 플로우의 특징 데이터를 획득할 수 있다.
제 2 디코더(333)는 훈련을 통해 설정된 파라미터에 따라 현재의 잔차 영상 데이터의 특징 데이터를 처리하여 현재의 잔차 영상 데이터를 획득한다.
움직임 보상부(335)는 현재 옵티컬 플로우에 따라 이전 복원 영상을 처리하여 현재 예측 영상을 획득하고, 제 2 결합부(337)는 현재 예측 영상과 현재의 잔차 영상 데이터를 결합하여 현재 복원 영상을 획득한다.
구현예에 따라, 실시예들에서, 예측 복호화부(330)는 현재 옵티컬 플로우를 다른 장치로 전송하고, 다른 장치에 의해 현재 복원 영상이 획득되도록 할 수 있다. 이 경우, 제 2 디코더(333), 움직임 보상부(335) 및 제 2 결합부(337)는 예측 복호화부(330)에 포함되지 않을 수 있다.
실시예들에서, 예측 복호화부(330)는 현재 영상이 I 프레임 다음의 P 프레임인지, 아니면 P 프레임 다음의 P 프레임인지를 판단하는 판단부를 더 포함할 수 있다.
실시예들에서, 예측 복호화부(330)는 현재 영상이 P 프레임 다음의 P 프레임인 경우, 도 5에 도시된 제 1 디코더(331), 옵티컬 플로우 예측부(334) 및 제 1 결합부(336)를 통해 현재 옵티컬 플로우를 복원하고, 현재 영상이 I 프레임 다음의 P 프레임인 경우, 도 10에 도시된 제 4 디코더(1010)를 통해 현재 옵티컬 플로우를 복원할 수 있다.
도 11은 다른 실시예에 따른 옵티컬 플로우를 복원하는 방법의 순서도이다.
S1110 단계에서, 영상 복호화 장치(300)는 현재 영상이 I 프레임 다음의 P 프레임인지를 판단한다.
현재 영상이 I 프레임 다음의 P 프레임인 경우, S1120 단계에서, 영상 복호화 장치(300)는 비트스트림으로부터 현재 옵티컬 플로우에 대한 특징 데이터를 획득한다.
영상 복호화 장치(300)는 비트스트림에 포함된 빈들에 대해 역이진화, 엔트로피 복호화, 역양자화 또는 역변환 중 적어도 하나를 적용하여 현재 옵티컬 플로우에 대한 특징 데이터를 획득할 수 있다.
S1130 단계에서, 영상 복호화 장치(300)는 현재 옵티컬 플로우에 대한 특징 데이터를 제 4 디코더(1010)에 적용하여 현재 옵티컬 플로우를 획득한다.
현재 영상이 I 프레임 다음의 P 프레임이 아닌 경우, 다시 말하면, 현재 영상이 P 프레임 다음의 P 프레임인 경우, 영상 복호화 장치(300)는 도 9에 도시된 S910 단계 내지 S940 단계를 통해 현재 옵티컬 플로우를 복원할 수 있다.
이하에서는, 도 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)는 현재의 잔차 옵티컬 플로우의 특징 데이터와 현재의 잔차 영상 데이터의 특징 데이터의 획득을 위해 신경망 기반의 제 1 인코더(1211)와 신경망 기반의 제 2 인코더(1215)를 이용할 수 있다.
예측 부호화부(1210)에 의해 획득된 현재의 잔차 옵티컬 플로우의 특징 데이터와 현재의 잔차 영상 데이터의 특징 데이터는 생성부(1230)(예를 들어, 비트스트림 생성부일 수 있다)로 전달된다.
생성부(1230)는 현재의 잔차 옵티컬 플로우의 특징 데이터와 현재의 잔차 영상 데이터의 특징 데이터로부터 비트스트림을 생성한다. 일 실시예에서, 생성부(1230)는 현재의 잔차 옵티컬 플로우의 특징 데이터에 대응하는 제 1 비트스트림, 및 현재의 잔차 영상 데이터의 특징 데이터에 대응하는 제 2 비트스트림을 생성할 수도 있다.
비트스트림은 네트워크를 통해 영상 복호화 장치(300)로부터 전송될 수 있다. 또한, 일 실시예에서, 비트스트림은 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM 및 DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical medium) 등을 포함하는 데이터 저장 매체에 기록될 수도 있다.
획득부(1250)(예를 들어, 비트스트림 획득부일 수 있다)는 생성부(1230)에 의해 생성된 비트스트림으로부터 현재의 잔차 옵티컬 플로우의 특징 데이터와 현재의 잔차 영상 데이터의 특징 데이터를 획득한다. 구현예에 따라, 실시예들에서, 획득부(1250)는 예측 부호화부(1210)로부터 현재의 잔차 옵티컬 플로우의 특징 데이터와 현재의 잔차 영상 데이터의 특징 데이터를 수신할 수도 있다.
현재의 잔차 옵티컬 플로우의 특징 데이터와 현재의 잔차 영상 데이터의 특징 데이터는 예측 복호화부(1270)로 전달되고, 예측 복호화부(1270)는 현재의 잔차 옵티컬 플로우의 특징 데이터를 이용하여 현재 옵티컬 플로우를 복원하고, 현재 옵티컬 플로우와 현재의 잔차 영상 데이터의 특징 데이터를 이용하여 현재 복원 영상을 획득한다.
예측 복호화부(1270)에 의해 획득된 현재 옵티컬 플로우 및 현재 복원 영상은 다음 영상의 부호화 과정에서 이용될 수 있다.
획득부(1250) 및 예측 복호화부(1270)의 구성 및 동작은 앞서 도 3 내지 도 5에 도시된 획득부(310) 및 예측 복호화부(330)의 동작에 대응할 수 있으므로 상세한 설명을 생략한다. 다만, 도 13에 예시된 것과 같이, 예측 부호화부(1210)가 옵티컬 플로우 예측부(1217)를 포함하는 실시예들에서, 도 5에 도시된 예측 복호화부(330)와 달리 예측 복호화부(1270)는 옵티컬 플로우 예측부(334)를 포함하지 않을 수 있다. 왜냐하면, 예측 복호화부(1270)는 예측 부호화부(1210)에 포함된 옵티컬 플로우 예측부(1217)에 의해 획득되는 현재의 예측 옵티컬 플로우를 이용할 수 있기 때문이다.
일 실시예에서, 예측 부호화부(1210)는 현재 영상 및 이전 복원 영상을 이용하여 현재의 잔차 옵티컬 플로우의 특징 데이터를 획득하고, 생성부(1230)는 현재의 잔차 옵티컬 플로우의 특징 데이터에 대응하는 비트스트림을 생성할 수 있다. 그리고, 획득부(1250)는 비트스트림으로부터 현재의 잔차 옵티컬 플로우의 특징 데이터를 획득하고, 예측 복호화부(1270)는 현재의 잔차 옵티컬 플로우의 특징 데이터에 기초하여 현재 옵티컬 플로우를 복원할 수 있다.
즉, 예측 부호화부(1210), 생성부(1230), 획득부(1250) 및 예측 복호화부(1270)를 통해 현재 옵티컬 플로우가 부호화되므로, 이 경우, 영상 부호화 장치(1200)는 옵티컬 플로우 부호화 장치로 참조될 수 있다.
예측 복호화부(1270)에 의해 복원된 현재 옵티컬 플로우는 다른 장치로 전달되고, 다른 장치에 의해 현재의 잔차 영상 데이터가 부호화될 수 있다. 구체적으로, 다른 장치는 현재 옵티컬 플로우에 따라 이전 복원 영상으로부터 획득되는 현재 예측 영상과 현재 영상 사이의 차이에 대응하는 현재의 잔차 영상 데이터를 부호화할 수 있다.
도 13 내지 도 15를 참조하여, 예측 부호화부(1210) 및 생성부(1230)의 예시적인 구성에 대해 좀더 상세히 설명한다.
도 13은 도 12에 도시된 예측 부호화부(1210)의 구성을 도시하는 도면이다.
예측 부호화부(1210)는 옵티컬 플로우 예측부(1217), 제 1 인코더(1211), 제 2 인코더(1215) 및 차감부(1213)를 포함한다.
제 1 인코더(1211) 및 제 2 인코더(1215)는 메모리에 저장될 수 있다. 일 실시예에서, 제 1 인코더(1211) 및 제 2 인코더(1215)는 AI를 위한 적어도 하나의 전용 프로세서로 구현될 수도 있다.
도 13을 참조하면, 옵티컬 플로우 예측부(1217)는 이전 옵티컬 플로우, 이전 옵티컬 플로우의 특징 데이터 또는 이전의 잔차 옵티컬 플로우의 특징 데이터 중 적어도 하나를 이용하여 현재의 예측 옵티컬 플로우를 획득한다.
옵티컬 플로우 예측부(1217)는 영상 복호화 장치(300)의 옵티컬 플로우 예측부(334)와 동일한 방식으로 현재의 예측 옵티컬 플로우를 획득할 수 있다.
일 예로, 옵티컬 플로우 예측부(1217)는 도 6 또는 도 7에 도시된 옵티컬 플로우 예측부(600 또는 700)와 동일한 구성을 가짐으로써 현재의 예측 옵티컬 플로우를 획득할 수 있다.
구체적으로, 도 6과 관련하여 설명한 바와 같이, 옵티컬 플로우 예측부(1217)는 이전 옵티컬 플로우, 이전 옵티컬 플로우에 대한 특징 데이터 또는 이전의 잔차 옵티컬 플로우에 대한 특징 데이터 중 적어도 하나를 제 1 예측 신경망(610)에 적용하여 현재의 예측 옵티컬 플로우를 획득할 수 있다.
또한, 도 7과 관련하여 설명한 바와 같이 옵티컬 플로우 예측부(1217)는 이전 옵티컬 플로우, 이전 옵티컬 플로우에 대한 특징 데이터 또는 이전의 잔차 옵티컬 플로우에 대한 특징 데이터 중 적어도 하나를 제 2 예측 신경망(710)에 적용하여 세컨드-오더 옵티컬 플로우를 획득하고, 이전 옵티컬 플로우를 세컨드-오더 옵티컬 플로우에 따라 처리하여 현재의 예측 옵티컬 플로우를 획득할 수 있다.
다른 예로, 옵티컬 플로우 예측부(1217)는 이전 옵티컬 플로우를 현재의 예측 옵티컬 플로우로 결정할 수 있다.
영상 복호화 장치(300)의 옵티컬 플로우 예측부(334)가 도 8에 도시된 바와 같이, 제 3 디코더(810) 및 변경부(720)를 포함하는 경우, 영상 부호화 장치(1200)의 옵티컬 플로우 예측부(1217)는 도 14를 참조하여 아래에서 설명되는 것과 같은 구성들을 가질 수 있다.
현재 영상, 이전 복원 영상 또는 현재의 예측 옵티컬 플로우 중 적어도 하나가 제 1 인코더(1211)로 입력된다. 현재 영상, 이전 복원 영상 또는 현재의 예측 옵티컬 플로우 중 적어도 하나는 연접된 후 제 1 인코더(1211)로 입력될 수 있다.
현재 영상과 이전 복원 영상으로부터 현재 옵티컬 플로우에 대한 정보가 도출될 수 있으므로, 제 1 인코더(1211)는 현재 영상과 이전 복원 영상으로부터 확인되는 현재 옵티컬 플로우, 및 옵티컬 플로우 예측부(1217)에 의해 생성되는 현재의 예측 옵티컬 플로우를 이용하여 이들 사이의 차이에 대응하는 현재의 잔차 옵티컬 플로우의 특징 데이터를 출력할 수 있다.
제 1 인코더(1211)는 훈련의 결과로 설정된 파라미터에 따라 현재 영상, 이전 복원 영상 또는 현재의 예측 옵티컬 플로우 중 적어도 하나를 처리하여 현재의 잔차 옵티컬 플로우의 특징 데이터를 출력한다.
도 12에 도시된 예측 복호화부(1270)는 현재의 잔차 옵티컬 플로우의 특징 데이터에 기초하여 현재 옵티컬 플로우를 복원하고, 현재 옵티컬 플로우에 따라 이전 복원 영상으로부터 생성된 현재 예측 영상을 차감부(1213)로 제공된다.
차감부(1213)는 현재 영상과 현재 예측 영상 사이의 현재의 잔차 영상 데이터를 획득한다. 차감부(1213)는 현재 영상의 샘플 값들로부터 현재 예측 영상의 샘플 값들을 차감하여 현재의 잔차 영상 데이터를 획득할 수 있다.
현재의 잔차 영상 데이터는 제 2 인코더(1215)로 입력되고, 제 2 인코더(1215)는 훈련의 결과로 설정된 파라미터에 따라 현재의 잔차 영상 데이터를 처리하여 현재의 잔차 영상 데이터의 특징 데이터를 출력한다.
전술한 생성부(1230)는 예측 부호화부(1210)로부터 출력된 현재의 잔차 옵티컬 플로우의 특징 데이터 및 현재의 잔차 영상 데이터의 특징 데이터에 기초하여 비트스트림을 생성한다.
도 14는 도 8에 도시된 옵티컬 플로우 예측부(800)에 대응하는 영상 부호화 장치(1200)의 옵티컬 플로우 예측부(1217)의 구성을 도시하는 도면이다.
도 14를 참조하면, 옵티컬 플로우 예측부(1217)는 제 3 인코더(1410), 제 3 디코더(810) 및 변경부(720)를 포함한다. 도 8과 비교하면, 옵티컬 플로우 예측부(1217)는 제 3 인코더(1410)를 포함하는 것을 알 수 있다.
제 3 인코더(1410) 및 제 3 디코더(810)는 메모리에 저장될 수 있다. 일 실시예에서, 제 3 인코더(1410) 및 제 3 디코더(810)는 AI를 위한 적어도 하나의 전용 프로세서로 구현될 수도 있다.
제 3 인코더(1410)는 훈련에 따라 설정된 파라미터에 따라 현재 영상, 이전 복원 영상, 이전 옵티컬 플로우, 이전 옵티컬 플로우의 특징 데이터 또는 이전의 잔차 옵티컬 플로우의 특징 데이터 중 적어도 하나를 처리하여 세컨드-오더 옵티컬 플로우의 특징 데이터를 획득한다.
세컨드-오더 옵티컬 플로우의 특징 데이터에 대응하는 비트스트림이 영상 복호화 장치(300)로 제공될 수 있다.
제 3 디코더(810)는 훈련을 통해 설정된 파라미터에 따라 세컨드-오더 옵티컬 플로우의 특징 데이터를 처리하여 세컨드-오더 옵티컬 플로우를 획득한다.
변경부(720)는 세컨드-오더 옵티컬 플로우에 따라 이전 옵티컬 플로우를 처리하여 현재의 예측 옵티컬 플로우를 획득할 수 있다.
일 실시예에서, 변경부(720)는 현재의 예측 옵티컬 플로우의 획득을 위해 세컨드-오더 옵티컬 플로우에 따라 이전 옵티컬 플로우를 워핑할 수 있다. 워핑은 하나의 예시이고, 변경부(720)는 현재의 예측 옵티컬 플로우를 생성하기 위해 이전 옵티컬 플로우 내 샘플들의 위치를 변경하는 다양한 처리를 이전 옵티컬 플로우에 대해 적용할 수 있다.
도 14에 도시된 옵티컬 플로우 예측부(1217)는 영상 부호화 장치(1200)가 이용할 수 있는 여러 종류의 데이터를 이용하여 세컨드-오더 옵티컬 플로우의 특징 데이터를 획득한다. 그리고, 세컨드-오더 옵티컬 플로우의 특징 데이터는 영상 복호화 장치(300)로 시그널링된다. 영상 복호화 장치(300)의 옵티컬 플로우 예측부(800)는 영상 부호화 장치(1200)로부터 시그널링된 세컨드-오더 옵티컬 플로우의 특징 데이터를 제 3 디코더(810)로 처리하여 세컨드-오더 옵티컬 플로우를 획득한다.
영상 복호화 장치(300)가 영상 부호화 장치(1200)로부터 시그널링된 세컨드-오더 옵티컬 플로우의 특징 데이터를 이용하여 획득한 예측 옵티컬 플로우는, 영상 복호화 장치(300)가 스스로 획득한 예측 옵티컬 플로우에 비해 정확할 수 있다. 왜냐하면, 영상 부호화 장치(1200)는, 영상 복호화 장치(300)가 이용할 수 있거나, 사용할 수 있는 것보다 더 많은 종류의 데이터를 이용하여 세컨드-오더 옵티컬 플로우의 특징 데이터를 획득할 수 있기 때문이다. 일 예로, 현재 영상은 현재 영상의 복호화 전에는 영상 복호화 장치(300)가 이용할 수 없으므로, 예를 들어, 도 6 및 도 7에 도시된 옵티컬 플로우 예측부(600, 700)는 현재의 예측 옵티컬 플로우를 획득하는데 현재 영상을 이용하지 않는다.
도 15는 도 12에 도시된 생성부(1230)의 구성을 도시하는 도면이다.
도 15를 참조하면, 생성부(1230)는 양자화부(1231) 및 엔트로피 부호화부(1233)를 포함한다.
양자화부(1231)는 현재의 잔차 옵티컬 플로우의 특징 데이터와 현재의 잔차 영상 데이터의 특징 데이터를 양자화한다.
엔트로피 부호화부(1233)는 현재의 잔차 옵티컬 플로우의 양자화된 특징 데이터와 현재의 잔차 영상 데이터의 양자화된 특징 데이터를 엔트로피 코딩하여 비트스트림을 생성한다.
구현예에 따라, 실시예들에서, 생성부(1230)는 변환부를 더 포함할 수 있다. 변환부는 현재의 잔차 옵티컬 플로우의 특징 데이터와 현재의 잔차 영상 데이터의 특징 데이터를 공간 도메인에서 주파수 도메인으로 변환하여 양자화부(1231)로 제공한다.
또한, 구현예에 따라, 실시예들에서, 생성부(1230)는 양자화부(1231)를 포함하지 않을 수도 있다. 즉, 엔트로피 부호화부(1233)에 의한 처리를 통해 현재의 잔차 옵티컬 플로우의 특징 데이터 및 현재의 잔차 영상 데이터의 특징 데이터에 대응하는 비트스트림이 획득될 수 있다.
또한, 구현예에 따라, 실시예들에서, 생성부(1230)는 현재의 잔차 옵티컬 플로우의 특징 데이터와 현재의 잔차 영상 데이터의 특징 데이터에 대해 이진화를 수행하여 비트스트림을 생성할 수도 있다. 즉, 생성부(1230)가 이진화만을 수행하는 경우, 양자화부(1231), 엔트로피 부호화부(1233)는 생성부(1230)에 포함되지 않을 수 있다.
도 16은 일 실시예에 따른 옵티컬 플로우의 부호화 방법의 순서도이다.
S1610 단계에서, 영상 부호화 장치(1200)는 이전 옵티컬 플로우, 이전 옵티컬 플로우에 대한 특징 데이터 또는 이전의 잔차 옵티컬 플로우에 대한 특징 데이터 중 적어도 하나로부터 현재의 예측 옵티컬 플로우를 획득한다.
일 실시예에서, 영상 부호화 장치(1200)는 이전 옵티컬 플로우를 현재의 예측 옵티컬 플로우로 결정할 수 있다.
다른 실시예에서, 영상 부호화 장치(1200)는 이전 옵티컬 플로우, 이전 옵티컬 플로우에 대한 특징 데이터 또는 이전의 잔차 옵티컬 플로우에 대한 특징 데이터 중 적어도 하나를 제 1 예측 신경망(610)에 적용하여 현재의 예측 옵티컬 플로우를 획득할 수 있다.
또 다른 실시예에서, 영상 부호화 장치(1200)는 이전 옵티컬 플로우, 이전 옵티컬 플로우에 대한 특징 데이터 또는 이전의 잔차 옵티컬 플로우에 대한 특징 데이터 중 적어도 하나를 제 2 예측 신경망(710)에 적용하여 세컨드-오더 옵티컬 플로우를 획득하고, 이전 옵티컬 플로우를 세컨드-오더 옵티컬 플로우에 따라 처리하여 현재의 예측 옵티컬 플로우를 획득할 수 있다.
또 다른 실시예에서, 영상 부호화 장치(1200)는 현재 영상, 이전 복원 영상, 이전 옵티컬 플로우, 이전 옵티컬 플로우에 대한 특징 데이터 또는 이전의 잔차 옵티컬 플로우에 대한 특징 데이터 중 적어도 하나를 제 3 인코더(1410)에 적용하여 세컨드-오더 옵티컬 플로우의 특징 데이터를 획득하고, 세컨드-오더 옵티컬 플로우의 특징 데이터를 제 3 디코더(810)에 적용하여 세컨드-오더 옵티컬 플로우를 획득한다. 그리고, 영상 부호화 장치(1200)는 이전 옵티컬 플로우를 세컨드-오더 옵티컬 플로우에 따라 처리하여 현재의 예측 옵티컬 플로우를 획득할 수 있다.
S1620 단계에서, 영상 부호화 장치(1200)는 현재 영상, 이전 복원 영상 또는 현재의 예측 옵티컬 플로우 중 적어도 하나를 신경망 기반의 제 1 인코더(1211)에 적용하여 현재의 잔차 옵티컬 플로우에 대한 특징 데이터를 획득한다.
S1630 단계에서, 영상 부호화 장치(1200)는 현재의 잔차 옵티컬 플로우에 대한 특징 데이터에 대응하는 비트스트림을 생성한다.
일 실시예에서, 비트스트림은 세컨드-오더 옵티컬 플로우의 특징 데이터 및/또는 현재의 잔차 영상 데이터의 특징 데이터를 더 포함할 수 있다.
일 실시예에서, 영상 부호화 장치(1200)는 현재의 잔차 옵티컬 플로우에 대한 특징 데이터로부터 현재 옵티컬 플로우를 복원하고, 복원된 현재 옵티컬 플로우를 기초로 이전 복원 영상을 처리하여 현재 예측 영상을 획득한다. 그리고, 영상 부호화 장치(1200)는 현재 예측 영상과 현재 영상 사이의 차이에 대응하는 현재의 잔차 영상 데이터를 제 2 인코더(1215)에 적용하여 현재의 잔차 영상 데이터의 특징 데이터를 획득할 수 있다. 현재의 잔차 영상 데이터의 특징 데이터는 비트스트림에 포함될 수 있다.
다른 실시예에서, 영상 부호화 장치(1200)는 현재의 잔차 옵티컬 플로우에 대한 특징 데이터로부터 현재 옵티컬 플로우를 복원하고, 복원된 현재 옵티컬 플로우를 기초로 이전 복원 영상을 처리하여 현재 예측 영상을 획득한다. 그리고, 현재 예측 영상과 현재 영상 사이의 차이에 대응하는 현재의 잔차 영상 데이터를 비트스트림에 포함시킬 수 수 있다.
한편, 도 12 내지 도 16과 관련하여 설명한 부호화 과정은, 이전 영상이 인터 예측을 통해 처리된 경우를 고려한 것이다. 왜냐하면, 현재 옵티컬 플로우를 부호화하는데 이용되는 이전 옵티컬 플로우는 이전 영상의 인터 예측 과정에서 생성된 것이기 때문이다.
즉, 도 12 내지 도 16과 관련하여 설명한 부호화 과정은 현재 영상이 P 프레임이고, 이전 영상이 P 프레임 경우, 예를 들어, 현재 영상이 P 프레임 다음의 P 프레임에 해당하는 경우에 적용될 수 있다. 만약 이전 영상이 I 프레임이라면, 이전 옵티컬 플로우는 획득되지 않을 수 있으므로, 이하에서는, 현재 영상이 I 프레임 다음의 P 프레임인 경우를 위한 부호화 과정에 대해 설명한다.
도 17은 예측 부호화부(1210)의 다른 구성을 도시하는 도면이다.
도 17을 참조하면, 예측 부호화부(1210)는 제 4 인코더(1710), 제 2 인코더(1215) 및 차감부(1213)를 포함한다.
제 4 인코더(1710) 및 제 2 인코더(1215)는 메모리에 저장될 수 있다. 일 실시예에서, 제 4 인코더(1710) 및 제 2 인코더(1215)는 AI를 위한 적어도 하나의 전용 프로세서로 구현될 수도 있다.
제 4 인코더(1710)는 훈련에 따라 설정된 파라미터에 따라 현재 영상 및 이전 복원 영상을 처리하여 현재 옵티컬 플로우의 특징 데이터를 획득한다.
도 12에 도시된 예측 복호화부(1270)는 현재 옵티컬 플로우의 특징 데이터에 기초하여 현재 옵티컬 플로우를 복원하고, 현재 옵티컬 플로우에 따라 이전 복원 영상으로부터 생성된 현재 예측 영상을 차감부(1213)로 제공된다. 예측 복호화부(1270)는 현재 옵티컬 플로우의 복원을 위해 도 10에 도시된 제 4 디코더(1010)를 이용할 수 있다.
차감부(1213)는 현재 영상과 현재 예측 영상 사이의 현재의 잔차 영상 데이터를 획득한다. 차감부(1213)는 현재 영상의 샘플 값들로부터 현재 예측 영상의 샘플 값들을 차감하여 현재의 잔차 영상 데이터를 획득할 수 있다.
현재의 잔차 영상 데이터는 제 2 인코더(1215)로 입력되고, 제 2 인코더(1215)는 훈련의 결과로 설정된 파라미터에 따라 현재의 잔차 영상 데이터를 처리하여 현재의 잔차 영상 데이터의 특징 데이터를 출력한다.
생성부(1230)는 예측 부호화부(1210)로부터 출력된 현재 옵티컬 플로우의 특징 데이터 및 현재의 잔차 영상 데이터의 특징 데이터에 기초하여 비트스트림을 생성한다.
비트스트림은 네트워크를 통해 영상 복호화 장치(300)로부터 전송될 수 있다. 또한, 일 실시예에서, 비트스트림은 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM 및 DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical medium) 등을 포함하는 데이터 저장 매체에 기록될 수도 있다.
실시예들에서, 예측 부호화부(1210)는 현재 영상이 I 프레임 다음의 P 프레임인지, 아니면 P 프레임 다음의 P 프레임인지를 판단하는 판단부를 더 포함할 수 있다.
예측 부호화부(1210)는 현재 영상이 P 프레임 다음의 P 프레임인 경우, 도 13에 도시된 옵티컬 플로우 예측부(1217) 및 제 1 인코더(1211)를 통해 현재의 잔차 옵티컬 플로우의 특징 데이터를 획득하고, 현재 영상이 I 프레임 다음의 P 프레임인 경우, 도 17에 도시된 제 4 인코더(1710)를 통해 현재 옵티컬 플로우의 특징 데이터를 획득할 수 있다.
한편, 전술한, 제 1 인코더(1211), 제 2 인코더(1215), 제 3 인코더(1410), 제 4 인코더(1710), 제 1 디코더(331), 제 2 디코더(333), 제 3 디코더(810), 제 4 디코더(1010), 제 1 예측 신경망(610) 또는 제 2 예측 신경망(710) 중 적어도 하나는 컨볼루션 레이어를 포함할 수 있다.
제 1 인코더(1211), 제 2 인코더(1215), 제 3 인코더(1410), 제 4 인코더(1710), 제 1 디코더(331), 제 2 디코더(333), 제 3 디코더(810), 제 4 디코더(1010), 제 1 예측 신경망(610) 및 제 2 예측 신경망(710)이 가질 수 있는 예시적인 구조에 대해 도 18을 참조하여 설명한다.
도 18은 일 실시예에 따른 신경망(1800)의 구조를 예시하는 도면이다.
도 18에 도시된 바와 같이, 입력 데이터(1805)는 제 1 컨볼루션 레이어(1810)로 입력된다. 여기서, 입력 데이터(1805)는 신경망(1800)이 제 1 인코더(1211), 제 2 인코더(1215), 제 3 인코더(1410), 제 4 인코더(1710), 제 1 디코더(331), 제 2 디코더(333), 제 3 디코더(810), 제 4 디코더(1010), 제 1 예측 신경망(610) 및 제 2 예측 신경망(710) 중 어느 것인지 따라 달라진다.
일 예로, 신경망(1800)이 제 1 인코더(1211)인 경우, 입력 데이터(1805)는 현재 영상, 이전 복원 영상 및 예측 옵티컬 플로우가 연접된(concatenated) 결과에 대응할 수 있다. 다른 예로, 신경망(1800)이 제 2 인코더(1215)의 경우, 입력 데이터(1805)는 현재의 잔차 영상 데이터에 대응할 수 있다.
도 18의 제 1 컨볼루션 레이어(1810)에 표시된 “3X3X4”는 3x3의 크기의 4개의 필터 커널을 이용하여 1개의 입력 데이터(1805)에 대해 컨볼루션 처리를 하는 것을 가리킬 수 있다. 컨볼루션 처리 결과 4개의 필터 커널에 의해 4개의 특징 맵이 생성된다.
제 1 컨볼루션 레이어(1810)에 의해 생성된 특징 맵들은 입력 데이터(1805)의 고유한 특성들을 나타낸다. 예를 들어, 각 특징 맵은 입력 데이터(1805)의 수직 방향 특성, 수평 방향 특성 또는 에지 특성 등을 나타낼 수 있다.
도 19를 참조하여, 제 1 컨볼루션 레이어(1810)에서의 예시적인 컨볼루션 연산에 대해 상세히 설명한다.
제 1 컨볼루션 레이어(1810)에서 이용되는 3X3의 크기를 갖는 필터 커널(1930)의 파라미터들과 그에 대응하는 입력 데이터(1805) 내 샘플 값들 사이의 곱 연산 및 덧셈 연산을 통해 하나의 특징 맵(1950)이 생성될 수 있다. 제 1 컨볼루션 레이어(1810)에서는 4개의 필터 커널(1930)이 이용되므로, 4개의 필터 커널(1930)을 이용한 컨볼루션 연산 과정을 통해 4개의 특징 맵(1950)이 생성될 수 있다.
도 19에서 입력 데이터(1805)에 표시된 I1 내지 I49는 입력 데이터(1805)의 샘플들을 나타내고, 필터 커널(1930)에 표시된 F1 내지 F9는 필터 커널(1930)의 샘플(또한 파라미터로 참조될 수도 있다)들을 나타낸다. 또한, 특징 맵(1950)에 표시된 M1 내지 M9는 특징 맵(1950)의 샘플들을 나타낸다.
컨볼루션 연산 과정에서, 입력 데이터(1805)의 I1, I2, I3, I8, I9, I10, I15, I16, I17의 샘플 값들 각각과 필터 커널(1930)의 F1, F2, F3, F4, F5, F6, F7, F8 및 F9 각각의 곱 연산이 수행되고, 곱 연산의 결과 값들을 조합(예를 들어, 덧셈 연산)한 값이 특징 맵(1950)의 M1의 값으로 할당될 수 있다. 컨볼루션 연산의 스트라이드(stride)가 2라면, 입력 데이터(1805)의 I3, I4, I5, I10, I11, I12, I17, I18, I19의 샘플 값들 각각과 필터 커널(1930)의 F1, F2, F3, F4, F5, F6, F7, F8 및 F9 각각의 곱 연산이 수행되고, 곱 연산의 결과 값들을 조합한 값이 특징 맵(1950)의 M2의 값으로 할당될 수 있다.
필터 커널(1930)이 입력 데이터(1805)의 마지막 샘플에 도달할 때까지 스트라이드에 따라 이동하는 동안 입력 데이터(1805) 내 샘플 값들과 필터 커널(1930)의 샘플들 사이의 컨볼루션 연산이 수행됨으로써, 소정 크기를 갖는 특징 맵(1950)이 획득될 수 있다.
본 개시에 따르면, 신경망(1800)에 대한 훈련을 통해 신경망(1800)의 파라미터들, 예를 들어, 신경망(1800)의 컨볼루션 레이어들에서 이용되는 필터 커널(1930)의 샘플들(예를 들어, 필터 커널(1930)의 F1, F2, F3, F4, F5, F6, F7, F8 및 F9)의 값이 최적화될 수 있다.
신경망(1800)에 포함된 컨볼루션 레이어들은 도 19와 관련하여 설명한 컨볼루션 연산 과정에 따른 처리를 할 수 있으나, 도 19에서 설명한 컨볼루션 연산 과정은 하나의 예시일 뿐이며, 실시예들은 이에 한정되는 것은 아니다.
다시 도 18을 참조하면, 제 1 컨볼루션 레이어(1810)의 특징 맵들은 제 1 활성화 레이어(1820)로 입력된다.
제 1 활성화 레이어(1820)는 각각의 특징 맵에 대해 비선형(Non-linear) 특성을 부여할 수 있다. 제 1 활성화 레이어(1820)는 시그모이드 함수(sigmoid function), Tanh 함수, ReLU(Rectified Linear Unit) 함수 등을 포함할 수 있으나, 실시예들은 이에 한정되는 것은 아니다.
제 1 활성화 레이어(1820)에서 비선형 특성을 부여하는 것은, 특징 맵들의 일부 샘플 값을 변경하여 출력하는 것을 의미한다. 이때, 변경은 비선형 특성을 적용하여 수행된다.
제 1 활성화 레이어(1820)는 특징 맵의 샘플 값들을 제 2 컨볼루션 레이어(1830)로 전달할지 여부를 결정한다. 예를 들어, 특징 맵의 샘플 값들 중 어떤 샘플 값들은 제 1 활성화 레이어(1820)에 의해 활성화되어 제 2 컨볼루션 레이어(1830)로 전달되고, 어떤 샘플 값들은 제 1 활성화 레이어(1820)에 의해 비활성화되어 제 2 컨볼루션 레이어(1830)로 전달되지 않는다. 특징 맵들이 나타내는 입력 데이터(1805)의 고유 특성이 제 1 활성화 레이어(1820)에 의해 강조된다.
제 1 활성화 레이어(1820)에서 출력된 특징 맵들(1825)은 제 2 컨볼루션 레이어(1830)로 입력된다. 도 18에 도시된 특징 맵들(1825) 중 어느 하나는 도 19와 관련하여 설명한 특징 맵(1950)이 제 1 활성화 레이어(1820)에서 처리된 결과이다.
제 2 컨볼루션 레이어(1830)에 표시된 “3X3X4”는 3x3의 크기의 4개의 필터 커널을 이용하여 입력된 특징 맵들(1825)에 대해 컨볼루션 처리하는 것 가리킬 수 있다. 제 2 컨볼루션 레이어(1830)의 출력은 제 2 활성화 레이어(1840)로 입력된다. 제 2 활성화 레이어(1840)는 입력된 특징 맵들에 대해 비선형 특성을 부여할 수 있다.
제 2 활성화 레이어(1840)에서 출력된 특징 맵들(1845)은 제 3 컨볼루션 레이어(1850)로 입력된다. 제 3 컨볼루션 레이어(1850)에 표시된 3X3X1은 3x3의 크기의 1개의 필터 커널을 이용하여 1개의 출력 데이터(1855)를 만들기 위해 컨볼루션 처리를 하는 것을 예시한다.
출력 데이터(1855)는 신경망(1800)이 제 1 인코더(1211), 제 2 인코더(1215), 제 3 인코더(1410), 제 4 인코더(1710), 제 1 디코더(331), 제 2 디코더(333), 제 3 디코더(810), 제 4 디코더(1010), 제 1 예측 신경망(610) 및 제 2 예측 신경망(710) 중 어느 것인지 따라 달라진다.
일 예로, 신경망(1800)이 제 1 인코더(1211)인 경우, 출력 데이터(1855)는 현재의 잔차 옵티컬 플로우에 대한 특징 데이터일 수 있고, 다른 예로, 신경망(1800)이 제 2 인코더(1215)인 경우, 출력 데이터(1855)는 현재의 잔차 영상 데이터에 대한 특징 데이터일 수 있다.
도 18에서 신경망(1800)이 세 개의 컨볼루션 레이어와 두 개의 활성화 레이어를 포함하고 있는 것으로 도시되어 있으나, 이는 하나의 예시일 뿐이며, 구현예에 따라서, 실시예들에서, 신경망(1800)에 포함된 컨볼루션 레이어 및 활성화 레이어의 개수는 다양하게 변경될 수 있다.
또한, 구현예에 따라서, 실시예들에서, 신경망(1800)은 RNN(recurrent neural network)을 통해 구현될 수도 있다. 이 경우는 본 개시의 예시에 따른 신경망(1800)이 CNN 구조로부터 RNN 구조로 변경되는 것을 의미할 수 있다.
일 실시예에서, 영상 복호화 장치(300) 및 영상 부호화 장치(1200)는 전술한 컨볼루션 연산 및 활성화 레이어의 연산을 위한 적어도 하나의 ALU(Arithmetic logic unit)를 포함할 수 있다.
ALU는 프로세서로 구현될 수 있다. 컨볼루션 연산을 위해, ALU는 입력 데이터(1805) 또는 이전 레이어에서 출력된 특징 맵의 샘플 값들과 필터 커널의 샘플 값들 사이의 곱 연산을 수행하는 곱셈기 및 곱셈의 결과 값들을 더하는 가산기를 포함할 수 있다.
활성화 레이어의 연산을 위해, ALU는 미리 결정된 시그모이드 함수, Tanh 함수 또는 ReLU 함수 등에서 이용되는 가중치를 입력된 샘플 값에 곱하는 곱셈기, 및 곱한 결과와 소정 값을 비교하여 입력된 샘플 값을 다음 레이어로 전달할지를 판단하는 비교기를 포함할 수 있다.
이하에서는, 도 20 내지 도 22를 참조하여, 영상의 부호화 및 복호화 과정에서 이용되는 신경망들의 예시적인 훈련 방법에 대해 설명한다.
도 20은 제 1 디코더(331), 제 2 디코더(333), 제 1 인코더(1211), 제 2 인코더(1215) 및 옵티컬 플로우 예측부(2090)에서 이용되는 신경망의 훈련 방법을 설명하기 위한 도면이다. 실시예들에서, 옵티컬 플로우 예측부(2090)는 도 6의 제 1 예측 신경망(610)을 포함하는 옵티컬 플로우 예측부(600)에 대응할 수 있다. 실시예들에서, 옵티컬 플로우 예측부(2090)는 도 7의 제 2 예측 신경망(710)을 포함하는 옵티컬 플로우 예측부(700)에 대응할 수 있다. 실시예들에서, 옵티컬 플로우 예측부(2090)는 제 3 디코더(810)을 포함하는 옵티컬 플로우 예측부(800)에 대응할 수 있다. 실시예들에서, 옵티컬 플로우 예측부(2090)는 도 14의 제 3 인코더(1410)을 포함하는 옵티컬 플로우 예측부(1217)에 대응할 수 있다.
도 20에서, 현재 훈련 영상(2010), 이전의 복원 훈련 영상(2030) 및 현재의 복원 훈련 영상(2050)은 각각 전술한 현재 영상, 이전 복원 영상 및 현재 복원 영상에 대응한다.
제 1 디코더(331), 제 2 디코더(333), 제 1 인코더(1211), 제 2 인코더(1215) 및 옵티컬 플로우 예측부(2090)에서 이용되는 신경망을 훈련시키는데 있어, 현재의 복원 훈련 영상(2050)이 현재 훈련 영상(2010)과 어느 정도로 유사한지, 그리고 현재 훈련 영상(2010)에 대한 부호화를 통해 생성되는 비트스트림의 비트레이트가 어느 정도로 큰지가 고려될 수 있다. 이를 위해, 일 실시예에서는 현재 훈련 영상(2010)과 현재의 복원 훈련 영상(2050) 사이의 유사도에 대응하는 제 1 손실 정보(2060), 및 비트스트림의 크기가 어느 정도로 큰지에 대응하는 제 2 손실 정보(2070)와 제 3 손실 정보(2080)에 따라 제 1 디코더(331), 제 2 디코더(333), 제 1 인코더(1211), 제 2 인코더(1215) 및 옵티컬 플로우 예측부(2090)에서 이용되는 신경망이 훈련될 수 있다.
도 20을 참조하면, 옵티컬 플로우 예측부(2090)을 통해 현재의 예측 옵티컬 플로우가 획득된다. 현재의 예측 옵티컬 플로우는 도 6과 관련하여 설명한 실시예, 도 7과 관련하여 설명한 실시예 또는 도 14와 관련하여 설명한 실시예에 따라 획득될 수 있다. 구현예에 따라, 실시예들에서, 이전 옵티컬 플로우가 현재의 예측 옵티컬 플로우로 결정될 수도 있다.
현재의 예측 옵티컬 플로우, 현재 훈련 영상(2010) 및 이전의 복원 훈련 영상(2030)은 제 1 인코더(1211)로 입력된다. 제 1 인코더(1211)는 현재의 예측 옵티컬 플로우, 현재 훈련 영상(2010) 및 이전의 복원 훈련 영상(2030)을 처리하여 현재의 잔차 옵티컬 플로우의 특징 데이터(hi)를 출력한다.
현재의 잔차 옵티컬 플로우의 특징 데이터(hi)는 제 1 디코더(331)로 입력되고, 제 1 디코더(331)는 현재의 잔차 옵티컬 플로우의 특징 데이터(hi)를 처리하여 현재의 잔차 옵티컬 플로우(di)를 출력한다.
현재의 예측 옵티컬 플로우와 현재의 잔차 옵티컬 플로우(di)가 예를 들어, 결합부(2095)에 의해 결합됨으로써, 현재 옵티컬 플로우(gi)가 획득된다.
이전의 복원 훈련 영상(2030)이 현재 옵티컬 플로우(gi)에 따라 예를 들어, 워핑(190)에 의해 워핑됨으로써 현재의 예측 훈련 영상(x'i)이 생성되고, 현재의 예측 훈련 영상(x'i)과 현재 훈련 영상(2010) 사이의 차이에 대응하는 현재의 잔차 영상 데이터(ri)가 획득된다.
현재의 잔차 영상 데이터(ri)는 제 2 인코더(1215)로 입력되고, 제 2 인코더(1215)는 현재의 잔차 영상 데이터(ri)를 처리하여 현재의 잔차 영상 데이터의 특징 데이터(vi)를 출력한다.
현재의 잔차 영상 데이터의 특징 데이터(vi)는 제 2 디코더(333)로 입력된다.
제 2 디코더(333)는 현재의 잔차 영상 데이터의 특징 데이터(vi)를 처리하여 현재의 잔차 영상 데이터(r'i)를 출력하고, 현재의 예측 훈련 영상(x'i)과 현재의 잔차 영상 데이터(r'i)가 합해짐으로써 현재의 복원 훈련 영상(2050)이 획득된다.
제 1 디코더(331), 제 2 디코더(333), 제 1 인코더(1211), 제 2 인코더(1215) 및 옵티컬 플로우 예측부(2090)에서 이용되는 신경망의 훈련을 위해, 제 1 손실 정보(2060), 제 2 손실 정보(2070) 또는 제 3 손실 정보(2080) 중 적어도 하나가 획득될 수 있다.
제 1 손실 정보(2060)는 현재 훈련 영상(2010)과 현재의 복원 훈련 영상(2050) 사이의 차이에 대응한다. 현재 훈련 영상(2010)과 현재의 복원 훈련 영상(2050) 사이의 차이는, 현재 훈련 영상(2010)과 현재의 복원 훈련 영상(2050)에 기초하여 결정되는 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 손실 정보(2060)는 현재의 복원 훈련 영상(2050)의 퀄리티와 관련이 있으므로, 제 1 손실 정보(2060)는 퀄리티 손실 정보로 참조될 수도 있다.
제 2 손실 정보(2070)는 현재의 잔차 옵티컬 플로우의 특징 데이터(hi)의 엔트로피 또는 현재의 잔차 옵티컬 플로우의 특징 데이터(hi)에 대응하는 비트스트림의 비트레이트에 대응한다. 또한, 제 3 손실 정보(2080)는 현재의 잔차 영상 데이터의 특징 데이터(vi)의 엔트로피 또는 현재의 잔차 영상 데이터의 특징 데이터(vi)에 대응하는 비트스트림의 비트레이트에 대응한다.
실시예들에서, 비트스트림이 현재의 잔차 옵티컬 플로우의 특징 데이터(hi)와 현재의 잔차 영상 데이터의 특징 데이터(vi)를 모두 포함한다면, 해당 비트스트림의 비트레이트에 대응하는 제 4 손실 정보가 산출될 수 있다. 이 경우, 제 2 손실 정보(2070) 및 제 3 손실 정보(2080)는 훈련에 이용되지 않을 수 있다.
제 2 손실 정보(2070)와 제 3 손실 정보(2080)는, 현재 훈련 영상(2010)에 대한 부호화 효율에 관련되므로, 제 2 손실 정보(2070)와 제 3 손실 정보(2080)는 압축도 손실 정보로 참조될 수 있다.
제 1 디코더(331), 제 2 디코더(333), 제 1 인코더(1211), 제 2 인코더(1215) 및 옵티컬 플로우 예측부(2090)에서 이용되는 신경망은 제 1 손실 정보(2060), 제 2 손실 정보(2070) 또는 제 3 손실 정보(2080) 중 적어도 하나로부터 도출되는 최종 손실 정보가 감소 또는 최소화되도록 훈련될 수 있다.
구체적으로, 제 1 디코더(331), 제 2 디코더(333), 제 1 인코더(1211), 제 2 인코더(1215) 및 옵티컬 플로우 예측부(2090)에서 이용되는 신경망은 미리 설정된 파라미터의 값을 변경하면서 최종 손실 정보가 감소 또는 최소화되도록 훈련될 수 있다.
일 실시예에서, 최종 손실 정보는 하기 수학식 1에 따라 산출될 수 있다.
[수학식 1]
최종 손실 정보 = a*제 1 손실 정보+b*제 2 손실 정보+c*제 3 손실 정보
수학식 1에서, a, b, c는 각각 제 1 손실 정보(2060), 제 2 손실 정보(2070) 및 제 3 손실 정보(2080) 각각에 적용되는 가중치를 나타낸다.
수학식 1에 따르면, 제 1 디코더(331), 제 2 디코더(333), 제 1 인코더(1211), 제 2 인코더(1215) 및 옵티컬 플로우 예측부(2090)에서 이용되는 신경망은 현재의 복원 훈련 영상(2050)이 현재 훈련 영상(2010)에 최대한 유사해지고, 제 1 인코더(1211) 및 제 2 인코더(1215)로부터 출력되는 데이터에 대응하는 비트스트림의 크기가 최소화되도록 훈련될 수 있다.
한편, 도 20에 도시된 훈련 과정은 P 프레임 다음의 P 프레임을 위한 훈련 과정에 해당하는데, I 프레임 다음의 P 프레임인 경우를 위해, 도 10 및 도 17에 도시된 제 4 인코더(1710) 및 제 4 디코더(1010)의 훈련이 필요할 수 있다. 이를 위해, 도 20에 도시된 제 1 인코더(1211) 및 제 1 디코더(331)가 제 4 인코더(1710) 및 제 4 디코더(1010)로 교체될 수 있다. 옵티컬 플로우 예측부(2090) 및 결합부(2095)는 훈련 과정에서 이용되지 않을 수 있다.
I 프레임 다음의 P 프레임인 경우를 위한 제 2 인코더(1215), 제 2 디코더(333), 제 4 인코더(1710) 및 제 4 디코더(1010)의 예시적인 훈련 과정이 설명된다. 현재 훈련 영상(2010)과 이전의 복원 훈련 영상(2030)이 제 4 인코더(1710)로 입력될 수 있다.
제 4 인코더(1710)는 현재 훈련 영상(2010)과 이전의 복원 훈련 영상(2030)을 처리하여 현재 옵티컬 플로우의 특징 데이터를 출력하고, 현재 옵티컬 플로우의 특징 데이터는 제 4 디코더(1010)로 입력된다.
제 4 디코더(1010)는 현재 옵티컬 플로우의 특징 데이터를 처리하여 현재 옵티컬 플로우를 출력한다.
이전의 복원 훈련 영상(2030)이 현재 옵티컬 플로우에 따라, 예를 들어, 워핑(190)에 의해 워핑됨으로써 현재의 예측 훈련 영상(x'i)이 생성되고, 현재의 예측 훈련 영상(x'i)과 현재 훈련 영상(2010) 사이의 차이에 대응하는 현재의 잔차 영상 데이터(ri)가 획득된다.
현재의 잔차 영상 데이터(ri)는 제 2 인코더(1215)로 입력되고, 제 2 인코더(1215)는 현재의 잔차 영상 데이터(ri)를 처리하여 현재의 잔차 영상 데이터의 특징 데이터(vi)를 출력한다.
현재의 잔차 영상 데이터의 특징 데이터(vi)는 제 2 디코더(333)로 입력된다. 제 2 디코더(333)는 현재의 잔차 영상 데이터의 특징 데이터(vi)를 처리하여 현재의 잔차 영상 데이터(r'i)를 출력하고, 현재의 예측 훈련 영상(x'i)과 현재의 잔차 영상 데이터(r'i)가 합해짐으로써 현재의 복원 훈련 영상(2050)이 획득된다.
제 2 인코더(1215), 제 2 디코더(333), 제 4 인코더(1710) 및 제 4 디코더(1010)는 제 1 손실 정보(2060), 제 2 손실 정보(2070) 또는 제 3 손실 정보(2080) 중 적어도 하나로부터 산출되는 최종 손실 정보가 감소 또는 최소화되도록 훈련될 수 있다.
여기서, 제 1 손실 정보(2060)는 현재 훈련 영상(2010)과 현재의 복원 훈련 영상(2050) 사이의 차이에 대응할 수 있다. 제 2 손실 정보(2070)는 현재 옵티컬 플로우의 특징 데이터의 엔트로피 또는 현재 옵티컬 플로우의 특징 데이터에 대응하는 비트스트림의 비트레이트에 대응할 수 있다. 또한, 제 3 손실 정보(2080)는 현재의 잔차 영상 데이터의 특징 데이터(vi)의 엔트로피 또는 현재의 잔차 영상 데이터의 특징 데이터(vi)에 대응하는 비트스트림의 비트레이트에 대응할 수 있다.
실시예들에서, P 프레임 다음의 P 프레임을 위한 훈련 과정 및 I 프레임 다음의 P 프레임을 위한 훈련 과정 모두에서 제 2 인코더(1215)와 제 2 디코더(333)가 이용될 수 있다.
일 실시예에서, 제 2 인코더(1215)와 제 2 디코더(333)는 P 프레임 다음의 P 프레임을 위한 훈련 과정을 통해 훈련된 후, I 프레임 다음의 P 프레임을 위한 훈련 과정을 통해 추가적으로 훈련될 수 있다.
다른 실시예에서, 제 2 인코더(1215)와 제 2 디코더(333)는 I 프레임 다음의 P 프레임을 위한 훈련 과정을 통해 훈련된 후, P 프레임 다음의 P 프레임을 위한 훈련 과정을 통해 추가적으로 훈련될 수 있다.
또 다른 실시예에서, 제 2 인코더(1215)와 제 2 디코더(333)는 I 프레임 다음의 P 프레임을 훈련 과정 및 P 프레임 다음의 P 프레임을 위한 훈련 과정을 통해 별도로 훈련될 수도 있다. 예를 들어, P 프레임 다음의 P 프레임을 위한 훈련 과정을 통해 훈련된 제 2 인코더(1215)와 제 2 디코더(333)는 P 프레임 다음의 현재 영상에 대해 적용되고, I 프레임 다음의 P 프레임을 위한 훈련 과정을 통해 훈련된 제 2 인코더(1215)와 제 2 디코더(333)는 I 프레임 다음의 현재 영상에 대해 적용될 수 있다.
도 21은 훈련 장치(2100)에 의한 제 1 디코더(331), 제 2 디코더(333), 제 1 인코더(1211), 제 2 인코더(1215) 및 옵티컬 플로우의 예측 신경망(2200)의 훈련 과정을 설명하기 위한 도면이다.
옵티컬 플로우의 예측 신경망(2200)은 예측 옵티컬 플로우를 획득하는데 이용되는 신경망으로서, 예를 들어, 도 6에 도시된 제 1 예측 신경망(610), 도 7에 도시된 제 2 예측 신경망(710) 또는 도 14에 도시된 제 3 인코더(1410)와 제 3 디코더(810)일 수 있다.
도 20과 관련하여 설명한 예시적인 훈련 과정은 훈련 장치(2100)에 의해 수행될 수 있다. 훈련 장치(2100)는 예를 들어, 영상 부호화 장치(1200) 또는 별도의 서버일 수 있다. 훈련 결과 획득된 파라미터들은 영상 부호화 장치(1200) 및 영상 복호화 장치(300)에 저장될 수 있다.
도 21를 참조하면, 훈련 장치(2100)는 제 1 인코더(1211), 제 1 디코더(331), 제 2 인코더(1215), 제 2 디코더(333) 및 옵티컬 플로우의 예측 신경망(2200)의 파라미터를 초기 세팅한다(S2110). 이에 의해, 제 1 인코더(1211), 제 1 디코더(331), 제 2 인코더(1215), 제 2 디코더(333) 및 옵티컬 플로우의 예측 신경망(2200)은 초기 세팅된 파라미터에 따라 동작할 수 있다.
훈련 장치(2100)는 옵티컬 플로우의 예측 신경망(2200)이 현재의 예측 옵티컬 플로우를 획득하는데 필요로 하는 데이터(예를 들어, 이전 옵티컬 플로우, 이전 옵티컬 플로우의 특징 데이터 또는 이전의 잔차 옵티컬 플로우의 특징 데이터 중 적어도 하나)를 옵티컬 플로우의 예측 신경망(2200)으로 입력한다(동작 S2115).
옵티컬 플로우의 예측 신경망(2200)은 입력된 데이터를 처리하여 현재의 예측 옵티컬 플로우를 제 1 인코더(1211) 및 훈련 장치(2100)로 출력한다(동작 S2120).
훈련 장치(2100)는 현재 훈련 영상(2010)과 이전의 복원 훈련 영상(2030)을 제 1 인코더(1211)로 입력한다(동작 S2125).
제 1 인코더(1211)는 현재의 예측 옵티컬 플로우, 현재 훈련 영상(2010) 및 이전의 복원 훈련 영상(2030)을 처리하여 현재의 잔차 옵티컬 플로우의 특징 데이터(hi)를 훈련 장치(2100) 및 제 1 디코더(331)로 출력한다(동작 S2130).
훈련 장치(2100)는 현재의 잔차 옵티컬 플로우의 특징 데이터(hi)로부터 제 2 손실 정보(2070)를 산출한다(동작 S2135).
제 1 디코더(331)는 현재의 잔차 옵티컬 플로우의 특징 데이터(hi)를 처리하여 현재의 잔차 옵티컬 플로우(di)를 훈련 장치(2100)로 출력한다(동작 S2140).
훈련 장치(2100)는 현재의 예측 옵티컬 플로우와 현재의 잔차 옵티컬 플로우(di)에 기초하여 획득된 현재 옵티컬 플로우를 이용하여 현재의 예측 훈련 영상(x'i)을 생성하고, 현재의 예측 훈련 영상(x'i)과 현재 훈련 영상(2010) 사이의 차이에 대응하는 현재의 잔차 영상 데이터(ri)를 획득한다(동작 S2145).
훈련 장치(2100)는 현재의 잔차 영상 데이터(ri)를 제 2 인코더(1215)로 입력하고(동작 S2150), 제 2 인코더(1215)는 현재의 잔차 영상 데이터의 특징 데이터(vi)를 훈련 장치(2100)와 제 2 디코더(333)로 출력한다(동작 S2155).
훈련 장치(2100)는 현재의 잔차 영상 데이터의 특징 데이터(vi)로부터 제 3 손실 정보(2080)를 산출한다(동작 S2160).
제 2 디코더(333)는 현재의 잔차 영상 데이터의 특징 데이터(vi)를 처리하여 현재의 잔차 영상 데이터(r'i)를 훈련 장치(2100)로 출력한다(동작 S2165).
훈련 장치(2100)는 현재의 잔차 영상 데이터(r'i)와 현재의 예측 훈련 영상(x'i)으로부터 현재의 복원 훈련 영상(2050)을 생성한다(동작 S2170).
훈련 장치(2100)는 현재 훈련 영상(2010)과 현재의 복원 훈련 영상(2050) 사이의 차이에 대응하는 제 1 손실 정보(2060)를 산출한다(동작 S2180).
훈련 장치(2100)는 제 1 손실 정보(2060), 제 2 손실 정보(2070) 또는 제 3 손실 정보(2080) 중 적어도 하나를 결합하여 최종 손실 정보를 산출하고, 제 1 디코더(331), 제 2 디코더(333), 제 1 인코더(1211), 제 2 인코더(1215) 및 옵티컬 플로우의 예측 신경망(2200)은 최종 손실 정보에 기초한 역전사(back propagation) 과정을 통해 초기 세팅된 파라미터를 갱신한다(동작들 S2181, S2183, S2185, S2187, S2189).
이후, 훈련 장치(2100), 제 1 디코더(331), 제 2 디코더(333), 제 1 인코더(1211), 제 2 인코더(1215) 및 옵티컬 플로우의 예측 신경망(2200)은 최종 손실 정보가 최소화될 때까지 S2115 내지 S2189 과정을 반복하면서 파라미터를 갱신한다. 이 때, 각 반복 과정 동안 제 1 디코더(331), 제 2 디코더(333), 제 1 인코더(1211), 제 2 인코더(1215) 및 옵티컬 플로우의 예측 신경망(2200)은 이전 과정에서 갱신된 파라미터에 따라 동작한다.
도 22는 훈련 장치(2100)에 의한 제 4 인코더(1710), 제 4 디코더(1010), 제 2 인코더(1215) 및 제 2 디코더(333)의 훈련 과정을 설명하기 위한 도면이다.
도 21에 도시된 훈련 과정이 P 프레임 다음의 P 프레임을 위한 훈련 과정이라면, 도 22에 도시된 훈련 과정은 I 프레임 다음의 P 프레임을 위한 훈련 과정으로 이해될 수 있다.
도 22를 참조하면, 훈련 장치(2100)는 제 4 인코더(1710), 제 4 디코더(1010), 제 2 인코더(1215) 및 제 2 디코더(333)의 파라미터를 초기 세팅한다(동작 S2210). 이에 의해, 제 4 인코더(1710), 제 4 디코더(1010), 제 2 인코더(1215) 및 제 2 디코더(333)은 초기 세팅된 파라미터에 따라 동작할 수 있다. 구현예에 따라, 실시예들에서, 제 2 인코더(1215) 및 제 2 디코더(333)는 도 21에 도시된 훈련 과정을 통해 설정된 파라미터에 따라 초기 동작할 수 있다.
훈련 장치(2100)는 현재 훈련 영상(2010)과 이전의 복원 훈련 영상(2030)을 제 4 인코더(1710)로 입력한다(동작 S2215).
제 4 인코더(1710)는 현재 훈련 영상(2010)과 이전의 복원 훈련 영상(2030)을 처리하여 현재 옵티컬 플로우의 특징 데이터를 훈련 장치(2100) 및 제 4 디코더(1010)로 출력한다(동작 S2220).
훈련 장치(2100)는 현재 옵티컬 플로우의 특징 데이터로부터 제 2 손실 정보(2070)를 산출한다(동작 S2225).
제 4 디코더(1010)는 현재 옵티컬 플로우의 특징 데이터를 처리하여 현재 옵티컬 플로우를 훈련 장치(2100)로 출력한다(동작 S2230).
훈련 장치(2100)는 현재 옵티컬 플로우를 이용하여 현재의 예측 훈련 영상(x'i)을 생성하고, 현재의 예측 훈련 영상(x'i)과 현재 훈련 영상(2010) 사이의 차이에 대응하는 현재의 잔차 영상 데이터(ri)를 획득한다(동작 S2235).
훈련 장치(2100)는 현재의 잔차 영상 데이터(ri)를 제 2 인코더(1215)로 입력하고(동작 S2240), 제 2 인코더(1215)는 현재의 잔차 영상 데이터의 특징 데이터(vi)를 훈련 장치(2100)와 제 2 디코더(333)로 출력한다(동작 S2245).
훈련 장치(2100)는 현재의 잔차 영상 데이터의 특징 데이터(vi)로부터 제 3 손실 정보(2080)를 산출한다(동작 S2250).
제 2 디코더(333)는 현재의 잔차 영상 데이터의 특징 데이터(vi)를 처리하여 현재의 잔차 영상 데이터(r'i)를 훈련 장치(2100)로 출력한다(동작 S2260).
훈련 장치(2100)는 현재의 잔차 영상 데이터(r'i)와 현재의 예측 훈련 영상(x'i)으로부터 현재의 복원 훈련 영상(2050)을 생성한다(동작 S2265).
훈련 장치(2100)는 현재 훈련 영상(2010)과 현재의 복원 훈련 영상(2050) 사이의 차이에 대응하는 제 1 손실 정보(2060)를 산출한다(동작 S2270).
훈련 장치(2100)는 제 1 손실 정보(2060), 제 2 손실 정보(2070) 또는 제 3 손실 정보(2080) 중 적어도 하나를 결합하여 최종 손실 정보를 산출하고, 제 4 인코더(1710), 제 4 디코더(1010), 제 2 인코더(1215) 및 제 2 디코더(333)는 최종 손실 정보에 기초한 역전사(back propagation) 과정을 통해 초기 세팅된 파라미터를 갱신한다(동작들 S2271, S2273, S2275, S2277).
이후, 훈련 장치(2100), 제 4 인코더(1710), 제 4 디코더(1010), 제 2 인코더(1215) 및 제 2 디코더(333)는 최종 손실 정보가 최소화될 때까지 S2215 내지 S2277 과정을 반복하면서 파라미터를 갱신한다. 이 때, 각 반복 과정 동안 제 4 인코더(1710), 제 4 디코더(1010), 제 2 인코더(1215) 및 제 2 디코더(333)는 이전 과정에서 갱신된 파라미터에 따라 동작한다.
본 개시의 실시예들은 컴퓨터에서 실행될 수 있는 프로그램으로 작성가능하고, 작성된 프로그램은 기기로 읽을 수 있는 저장매체에 저장될 수 있다.
기기로 읽을 수 있는 저장매체는, 비일시적(non-transitory) 저장매체의 형태로 제공될 수 있다. 여기서, '비일시적 저장매체'는 실재(tangible)하는 장치이고, 신호(signal)(예: 전자기파)를 포함하지 않는다는 것을 의미할 뿐이며, 이 용어는 데이터가 저장매체에 반영구적으로 저장되는 경우와 임시적으로 저장되는 경우를 구분하지 않는다. 예로, '비일시적 저장매체'는 데이터가 임시적으로 저장되는 버퍼를 포함할 수 있다.
일 실시예에 따르면, 본 문서에 개시된 다양한 실시예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory (CD-ROM))의 형태로 배포되거나, 또는 어플리케이션 스토어를 통해 또는 두개의 사용자 장치들(예: 스마트폰들) 간에 직접, 온라인으로 배포(예: 다운로드 또는 업로드)될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품(예: 다운로더블 앱(downloadable app))의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 기기로 읽을 수 있는 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.
이상, 실시예들이 상세하게 설명되었으나, 본 개시의 기술적 사상은 상기 실시예들에 한정되지 않고, 본 개시의 기술적 사상의 범위 내에서 당 분야에서 통상의 지식을 가진 자에 의하여 여러 가지 변형 및 변경이 가능하다.

Claims (13)

  1. AI를 이용하는 옵티컬 플로우의 복원 방법에 있어서,
    비트스트림으로부터 현재 영상에 대한 현재의 잔차 옵티컬 플로우(current residual optical flow)의 특징 데이터를 획득하는 단계;
    신경망 기반의 제 1 디코더에 상기 현재의 잔차 옵티컬 플로우의 특징 데이터를 적용하여 상기 현재의 잔차 옵티컬 플로우를 획득하는 단계;
    이전 옵티컬 플로우, 상기 이전 옵티컬 플로우의 특징 데이터, 및 이전의 잔차 옵티컬 플로우의 특징 데이터 중 적어도 하나에 기반하여 현재의 예측 옵티컬 플로우를 획득하는 단계; 및
    상기 현재의 잔차 옵티컬 플로우와 상기 현재의 예측 옵티컬 플로우에 기초하여 현재 옵티컬 플로우를 복원하는 단계를 포함하는, 옵티컬 플로우의 복원 방법.
  2. 제1항에 있어서,
    상기 복원된 현재 옵티컬 플로우와 이전 복원 영상에 기초하여 생성되는 현재 예측 영상과, 현재의 잔차 영상 데이터에 기반하여 상기 현재 영상이 복원되는, 옵티컬 플로우의 복원 방법.
  3. 제1항에 있어서,
    상기 현재의 예측 옵티컬 플로우를 획득하는 단계는,
    상기 이전 옵티컬 플로우를 상기 현재의 예측 옵티컬 플로우로 선택하는 단계를 포함하는, 옵티컬 플로우의 복원 방법.
  4. 제1항에 있어서,
    상기 현재의 예측 옵티컬 플로우를 획득하는 단계는,
    상기 이전 옵티컬 플로우, 상기 이전 옵티컬 플로우의 특징 데이터 및 상기 이전의 잔차 옵티컬 플로우의 특징 데이터 중 적어도 하나를 제 1 예측 신경망(first prediction neural network)에 적용하는 단계를 포함하는, 옵티컬 플로우의 복원 방법.
  5. 제1항에 있어서,
    상기 현재의 예측 옵티컬 플로우를 획득하는 단계는,
    상기 이전 옵티컬 플로우, 상기 이전 옵티컬 플로우의 특징 데이터 및 상기 이전의 잔차 옵티컬 플로우의 특징 데이터 중 적어도 하나를 제 2 예측 신경망(second prediction neural network)에 적용하여 상기 현재의 예측 옵티컬 플로우와 상기 이전 옵티컬 플로우 사이의 세컨드-오더 옵티컬 플로우(second-order optical flow)를 획득하는 단계; 및
    상기 이전 옵티컬 플로우를 상기 세컨드-오더 옵티컬 플로우에 따라 변경하여 상기 현재의 예측 옵티컬 플로우를 생성하는 단계를 포함하는, 옵티컬 플로우의 복원 방법.
  6. 제1항에 있어서,
    상기 현재의 예측 옵티컬 플로우를 획득하는 단계는,
    상기 비트스트림으로부터 상기 현재의 예측 옵티컬 플로우와 상기 이전 옵티컬 플로우 사이의 세컨드-오더 옵티컬 플로우의 특징 데이터를 획득하는 단계;
    상기 세컨드-오더 옵티컬 플로우의 특징 데이터를 신경망 기반의 제 3 디코더에 적용하여 상기 세컨드-오더 옵티컬 플로우를 획득하는 단계; 및
    상기 이전 옵티컬 플로우를 상기 세컨드-오더 옵티컬 플로우에 따라 변경하여 상기 현재의 예측 옵티컬 플로우를 생성하는 단계를 포함하는, 옵티컬 플로우의 복원 방법.
  7. 제1항에 있어서,
    상기 현재의 잔차 옵티컬 플로우의 특징 데이터는,
    상기 비트스트림에 대한 엔트로피 복호화 및 역양자화를 수행함으로써 획득되는, 옵티컬 플로우의 복원 방법.
  8. 제1항에 있어서,
    상기 신경망 기반의 제 1 디코더는,
    현재 훈련 영상(current training image)과 상기 현재 훈련 영상에 관련된 현재의 복원 훈련 영상(current reconstructed training image) 사이의 차이에 대응하는 제 1 손실 정보; 및
    상기 현재 훈련 영상의 현재의 잔차 옵티컬 플로우의 특징 데이터의 엔트로피에 대응하는 제 2 손실 정보를 기반으로 훈련되는, 옵티컬 플로우의 복원 방법.
  9. 제1항에 있어서,
    상기 현재의 잔차 옵티컬 플로우의 특징 데이터는,
    P(predictive) 프레임에 대응하는 상기 현재 영상, 및 상기 P 프레임을 뒤따르는 다른 P 프레임에 기초하여 상기 비트스트림으로부터 획득되는, 옵티컬 플로우의 복원 방법.
  10. 제9항에 있어서,
    상기 P 프레임을 뒤따르는 I(intra) 프레임에 기초하여 상기 옵티컬 플로우의 복원 방법은,
    비트스트림으로부터 현재 옵티컬 플로우의 특징 데이터를 획득하는 단계;
    신경망 기반의 제 4 디코더에 상기 현재 옵티컬 플로우의 특징 데이터를 적용하여 상기 현재 옵티컬 플로우를 복원하는 단계를 더 포함하는, 옵티컬 플로우의 복원 방법.
  11. 제1항의 방법을 수행하기 위한 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체.
  12. AI를 이용하는 옵티컬 플로우의 복원 장치에 있어서,
    비트스트림으로부터 상기 현재 영상에 대한 현재의 잔차 옵티컬 플로우의 특징 데이터를 획득하는 비트스트림 획득부; 및
    신경망 기반의 제 1 디코더에 상기 현재의 잔차 옵티컬 플로우의 특징 데이터를 적용하여 상기 현재의 잔차 옵티컬 플로우를 획득하고, 이전 옵티컬 플로우, 이전 옵티컬 플로우의 특징 데이터 및 이전의 잔차 옵티컬 플로우의 특징 데이터 중 적어도 하나를 이용하여 현재의 예측 옵티컬 플로우를 획득하고, 상기 현재의 잔차 옵티컬 플로우와 상기 현재의 예측 옵티컬 플로우에 기초하여 현재 옵티컬 플로우를 복원하는 예측 복호화부를 구현하는 적어도 하나의 프로세서를 포함하는, 옵티컬 플로우의 복원 장치.
  13. AI를 이용하는 옵티컬 플로우의 부호화 방법에 있어서,
    이전 옵티컬 플로우, 상기 이전 옵티컬 플로우의 특징 데이터 및 이전의 잔차 옵티컬 플로우의 특징 데이터 중 적어도 하나로부터 현재의 예측 옵티컬 플로우를 획득하는 단계;
    현재 영상, 이전 복원 영상 및 상기 현재의 예측 옵티컬 플로우를 신경망 기반의 제 1 인코더에 적용하여 현재의 잔차 옵티컬 플로우의 특징 데이터를 획득하는 단계; 및
    상기 현재의 잔차 옵티컬 플로우의 특징 데이터에 대응하는 비트스트림을 생성하는 단계를 포함하되,
    상기 현재의 잔차 옵티컬 플로우는, 현재 옵티컬 플로우와 상기 현재의 예측 옵티컬 플로우 사이의 차이에 대응하는, 옵티컬 플로우의 부호화 방법.
PCT/KR2022/002493 2021-02-22 2022-02-21 Ai 기반의 영상의 부호화 및 복호화 장치, 및 이에 의한 방법 WO2022177383A1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN202280016009.4A CN116868566A (zh) 2021-02-22 2022-02-21 基于ai的图像编码和解码装置及其方法
EP22756581.9A EP4250729A4 (en) 2021-02-22 2022-02-21 AI-BASED IMAGE ENCODING AND DECODING APPARATUS AND RELATED METHOD
US17/677,498 US11863783B2 (en) 2021-02-22 2022-02-22 Artificial intelligence-based image encoding and decoding apparatus and method

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
KR1020210171269A KR20220120436A (ko) 2021-02-22 2021-12-02 Ai 기반의 영상의 부호화 및 복호화 장치, 및 이에 의한 방법
KR10-2021-0171269 2021-12-02

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US17/677,498 Continuation US11863783B2 (en) 2021-02-22 2022-02-22 Artificial intelligence-based image encoding and decoding apparatus and method

Publications (1)

Publication Number Publication Date
WO2022177383A1 true WO2022177383A1 (ko) 2022-08-25

Family

ID=82930989

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2022/002493 WO2022177383A1 (ko) 2021-02-22 2022-02-21 Ai 기반의 영상의 부호화 및 복호화 장치, 및 이에 의한 방법

Country Status (1)

Country Link
WO (1) WO2022177383A1 (ko)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180052651A (ko) * 2015-09-03 2018-05-18 미디어텍 인크. 비디오 코딩에서의 신경망 기반 프로세싱의 방법 및 장치
US20190246102A1 (en) * 2018-02-08 2019-08-08 Electronics And Telecommunications Research Institute Method and apparatus for video encoding and video decoding based on neural network
US20200304798A1 (en) * 2017-12-08 2020-09-24 Huawei Technologies Co., Ltd. Polynomial fitting for motion compensation and luminance reconstruction in texture synthesis
KR20200140096A (ko) * 2019-06-05 2020-12-15 삼성전자주식회사 영상의 ai 부호화 및 ai 복호화 방법, 및 장치

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180052651A (ko) * 2015-09-03 2018-05-18 미디어텍 인크. 비디오 코딩에서의 신경망 기반 프로세싱의 방법 및 장치
US20200304798A1 (en) * 2017-12-08 2020-09-24 Huawei Technologies Co., Ltd. Polynomial fitting for motion compensation and luminance reconstruction in texture synthesis
US20190246102A1 (en) * 2018-02-08 2019-08-08 Electronics And Telecommunications Research Institute Method and apparatus for video encoding and video decoding based on neural network
KR20200140096A (ko) * 2019-06-05 2020-12-15 삼성전자주식회사 영상의 ai 부호화 및 ai 복호화 방법, 및 장치

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JIANPING LIN; DONG LIU; HOUQIANG LI; FENG WU: "M-LVC: Multiple Frames Prediction for Learned Video Compression", ARXIV.ORG, CORNELL UNIVERSITY LIBRARY, 201 OLIN LIBRARY CORNELL UNIVERSITY ITHACA, NY 14853, 21 April 2020 (2020-04-21), 201 Olin Library Cornell University Ithaca, NY 14853 , XP081951194, DOI: 10.1109/CVPR42600.2020.00360 *

Similar Documents

Publication Publication Date Title
WO2020080765A1 (en) Apparatuses and methods for performing artificial intelligence encoding and artificial intelligence decoding on image
WO2020080827A1 (en) Ai encoding apparatus and operation method of the same, and ai decoding apparatus and operation method of the same
WO2018030599A1 (ko) 인트라 예측 모드 기반 영상 처리 방법 및 이를 위한 장치
WO2011068360A2 (ko) 고해상도 영상의 부호화/복호화 방법 및 이를 수행하는 장치
EP3868096A1 (en) Artificial intelligence encoding and artificial intelligence decoding methods and apparatuses using deep neural network
WO2010107269A2 (ko) 멀티 채널 신호의 부호화/복호화 장치 및 방법
WO2020071616A1 (ko) Cclm에 기반한 인트라 예측 방법 및 그 장치
WO2016195455A1 (ko) 그래프 기반 변환을 이용하여 비디오 신호를 처리하는 방법 및 장치
WO2020055161A1 (ko) 영상 코딩 시스템에서 서브 블록 단위의 움직임 예측에 기반한 영상 디코딩 방법 및 장치
WO2020080782A1 (en) Artificial intelligence (ai) encoding device and operating method thereof and ai decoding device and operating method thereof
WO2020235951A1 (ko) 영상 부호화 방법 및 장치, 영상 복호화 방법 및 장치
WO2016190627A1 (ko) 비디오 신호 처리 방법 및 장치
WO2021172834A1 (en) Apparatus and method for performing artificial intelligence encoding and artificial intelligence decoding on image by using pre-processing
EP3868097A1 (en) Artificial intelligence (ai) encoding device and operating method thereof and ai decoding device and operating method thereof
WO2020013569A1 (ko) 영상 코딩 시스템에서 어파인 움직임 예측에 기반한 영상 디코딩 방법 및 장치
WO2020032609A1 (ko) 영상 코딩 시스템에서 어파인 머지 후보 리스트를 사용하는 어파인 움직임 예측에 기반한 영상 디코딩 방법 및 장치
WO2020080709A1 (en) Artificial intelligence encoding and artificial intelligence decoding methods and apparatuses using deep neural network
WO2021091178A1 (en) Artificial intelligence (ai) encoding apparatus and operating method thereof and ai decoding apparatus and operating method thereof
WO2018182310A1 (ko) 비디오 부호화 방법 및 장치, 비디오 복호화 방법 및 장치
WO2020050695A1 (ko) 영상 코딩 시스템에서 머지 후보 리스트를 사용하는 움직임 예측에 기반한 영상 디코딩 방법 및 장치
WO2010019002A2 (ko) H.264 표준의 영상 프레임에서 섬네일 이미지를 생성하는 방법
WO2020032526A1 (ko) 영상 코딩 시스템에서 컨스트럭티드 어파인 mvp 후보를 사용하는 어파인 움직임 예측에 기반한 영상 디코딩 방법 및 장치
WO2013168952A1 (ko) 인터 레이어 예측 방법 및 이를 이용하는 장치
EP3811617A1 (en) Apparatuses and methods for performing artificial intelligence encoding and artificial intelligence decoding on image
WO2022177383A1 (ko) Ai 기반의 영상의 부호화 및 복호화 장치, 및 이에 의한 방법

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: 22756581

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2022756581

Country of ref document: EP

Effective date: 20230620

WWE Wipo information: entry into national phase

Ref document number: 202280016009.4

Country of ref document: CN

NENP Non-entry into the national phase

Ref country code: DE