WO2022265401A1 - 범용의 변환 행렬에 기반한 피쳐 정보 부호화/복호화 방법, 장치 및 비트스트림을 저장하는 기록 매체 - Google Patents
범용의 변환 행렬에 기반한 피쳐 정보 부호화/복호화 방법, 장치 및 비트스트림을 저장하는 기록 매체 Download PDFInfo
- Publication number
- WO2022265401A1 WO2022265401A1 PCT/KR2022/008491 KR2022008491W WO2022265401A1 WO 2022265401 A1 WO2022265401 A1 WO 2022265401A1 KR 2022008491 W KR2022008491 W KR 2022008491W WO 2022265401 A1 WO2022265401 A1 WO 2022265401A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- feature
- transformation matrix
- information
- image
- encoding
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/40—Extraction of image or video features
- G06V10/42—Global feature extraction by analysis of the whole pattern, e.g. using frequency domain transformations or autocorrelation
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/20—Image preprocessing
- G06V10/25—Determination of region of interest [ROI] or a volume of interest [VOI]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/167—Position within a video image, e.g. region of interest [ROI]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/184—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being bits, e.g. of the compressed video stream
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/20—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video object coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
Definitions
- the present disclosure relates to a method and apparatus for encoding/decoding, and more particularly, to a method and apparatus for encoding/decoding feature information based on a general-purpose transformation matrix, and to store a bitstream generated by the method and apparatus for encoding/decoding feature information of the present disclosure. It relates to a recording medium that
- An object of the present disclosure is to provide a method and apparatus for encoding/decoding feature information with improved encoding/decoding efficiency.
- an object of the present disclosure is to provide a feature information encoding/decoding method and apparatus for performing feature transformation/inverse transformation based on a general-purpose transformation matrix.
- an object of the present disclosure is to provide a method for transmitting a bitstream generated by a feature information encoding method or apparatus according to the present disclosure.
- an object of the present disclosure is to provide a recording medium storing a bitstream generated by a method or apparatus for encoding feature information according to the present disclosure.
- an object of the present disclosure is to provide a recording medium storing a bitstream that is received and decoded by the feature information decoding apparatus according to the present disclosure and used for restoring an image.
- a method for decoding feature information of an image includes obtaining at least one feature map for a first image, determining at least one feature transformation matrix for the feature map, and the determined feature map. Inverse transforming a plurality of features included in the feature map based on a transformation matrix, wherein the at least one feature transformation matrix includes a general-purpose feature transformation matrix commonly applied to two or more features,
- the general-purpose feature transformation matrix may be generated in advance based on a predetermined feature data set obtained from the second image.
- An apparatus for decoding feature information of an image includes a memory and at least one processor, wherein the at least one processor obtains at least one feature map of a first image, and stores the feature map in the feature map. Determines at least one feature transformation matrix for, and inversely transforms a plurality of features included in the feature map based on the determined feature transformation matrix, wherein the at least one feature transformation matrix is commonly applied to two or more features
- a general-purpose feature transformation matrix may be included, and the general-purpose feature transformation matrix may be generated in advance based on a predetermined feature data set obtained from the second image.
- a method for encoding feature information of an image includes obtaining at least one feature map for a first image, determining at least one feature transformation matrix for the feature map, and the determined Transforming a plurality of features included in the feature map based on a feature transformation matrix, wherein the at least one feature transformation matrix includes a general-purpose feature transformation matrix commonly applied to two or more features; ,
- the universal feature transformation matrix may be generated in advance based on a predetermined feature data set obtained from the second image.
- An apparatus for encoding feature information of an image includes a memory and at least one processor, wherein the at least one processor obtains at least one feature map of a first image, and uses the feature map in the feature map. Determining at least one feature transformation matrix for, transforming a plurality of features included in the feature map based on the determined feature transformation matrix, wherein the at least one feature transformation matrix is commonly applied to two or more features
- a general-purpose feature transformation matrix may be included, and the general-purpose feature transformation matrix may be generated in advance based on a predetermined feature data set obtained from the second image.
- a recording medium may store a bitstream generated by the feature information encoding method or feature information encoding apparatus of the present disclosure.
- a bitstream generated by the feature information encoding method or the feature information encoding apparatus of the present disclosure may be transmitted to a feature information decoding apparatus.
- a method and apparatus for encoding/decoding feature information with improved encoding/decoding efficiency may be provided.
- an image encoding/decoding method and apparatus for performing feature transformation/inverse transformation based on a general-purpose transformation matrix may be provided.
- a method of transmitting a bitstream generated by a method or apparatus for encoding feature information according to the present disclosure may be provided.
- a recording medium storing a bitstream generated by a method or apparatus for encoding feature information according to the present disclosure may be provided.
- a recording medium storing a bitstream used for feature restoration after being received and decoded by the feature information decoding apparatus according to the present disclosure may be provided.
- FIG. 1 is a diagram schematically illustrating a video coding system to which embodiments according to the present disclosure may be applied.
- FIG. 2 is a diagram schematically illustrating an image encoding apparatus to which embodiments according to the present disclosure may be applied.
- FIG. 3 is a diagram schematically illustrating an image decoding apparatus to which embodiments according to the present disclosure may be applied.
- FIG. 4 is a flowchart schematically illustrating a picture decoding procedure to which embodiments of the present disclosure may be applied.
- FIG. 5 is a flowchart schematically illustrating a picture encoding procedure to which embodiments of the present disclosure may be applied.
- FIG. 6 is a diagram illustrating a hierarchical structure of a coded image.
- FIG. 7 is a diagram schematically illustrating a VCM system to which embodiments of the present disclosure may be applied.
- FIG. 8 is a diagram illustrating an example of a VCM pipeline that can be applied to embodiments of the present disclosure.
- 9 to 11 are diagrams for explaining the operation of a feature extraction network.
- FIG. 12 is a diagram illustrating a PCA-based feature conversion process.
- 13 to 15 are views for explaining a method of constructing a feature data set according to an embodiment of the present disclosure.
- 16 to 18 are diagrams for explaining a method for generating a feature transformation matrix according to an embodiment of the present disclosure.
- 19 is a diagram schematically illustrating an encoder/decoder structure according to an embodiment of the present disclosure.
- 20 and 21 are diagrams for explaining a method of generating a feature data set according to an embodiment of the present disclosure.
- 22 is a diagram for explaining a method of generating a plurality of feature transformation matrices according to an embodiment of the present disclosure.
- 23 is a diagram schematically illustrating an encoder/decoder structure according to an embodiment of the present disclosure.
- 24 is a diagram for explaining a method for generating a feature transformation matrix according to an embodiment of the present disclosure.
- 25 is a diagram illustrating an example of clustering feature data sets according to an embodiment of the present disclosure.
- 26 is a flowchart illustrating a method of determining a feature transformation matrix by a decoding apparatus according to an embodiment of the present disclosure.
- 27 and 28 are diagrams for explaining an MPM encoding method of a feature transformation matrix index according to an embodiment of the present disclosure.
- 29 is a flowchart illustrating a feature information encoding method according to an embodiment of the present disclosure.
- FIG. 30 is a flowchart illustrating a feature information decoding method according to an embodiment of the present disclosure.
- FIG. 31 is a diagram illustrating an example of a content streaming system to which embodiments of the present disclosure may be applied.
- FIG. 32 is a diagram illustrating another example of a content streaming system to which embodiments of the present disclosure may be applied.
- first and second are used only for the purpose of distinguishing one element from another, and do not limit the order or importance of elements unless otherwise specified. Accordingly, within the scope of the present disclosure, a first component in one embodiment may be referred to as a second component in another embodiment, and similarly, a second component in one embodiment may be referred to as a first component in another embodiment. can also be called
- components that are distinguished from each other are intended to clearly explain each characteristic, and do not necessarily mean that the components are separated. That is, a plurality of components may be integrated to form a single hardware or software unit, or a single component may be distributed to form a plurality of hardware or software units. Accordingly, even such integrated or distributed embodiments are included in the scope of the present disclosure, even if not mentioned separately.
- components described in various embodiments do not necessarily mean essential components, and some may be optional components. Accordingly, an embodiment comprising a subset of elements described in one embodiment is also included in the scope of the present disclosure. In addition, embodiments including other components in addition to the components described in various embodiments are also included in the scope of the present disclosure.
- the present disclosure relates to encoding and decoding of an image, and terms used in the present disclosure may have common meanings commonly used in the technical field to which the present disclosure belongs unless newly defined in the present disclosure.
- the present disclosure may be applied to a method disclosed in a Versatile Video Coding (VVC) standard and/or a Video Coding for Machines (VCM) standard.
- VVC Versatile Video Coding
- VCM Video Coding for Machines
- EVC essential video coding
- AV1 AOMedia Video 1
- AVS2 2nd generation of audio video coding standard
- next-generation video/video coding standard e.g., H.267 or H.268, etc.
- video refers to a series of It may mean a set of images.
- An “image” may be information generated by artificial intelligence (AI).
- AI artificial intelligence
- Input information used in the process of performing a series of tasks by AI, information generated during information processing, and output information can be used as images.
- a “picture” generally means a unit representing one image in a specific time period, and a slice/tile is a coding unit constituting a part of a picture in coding.
- One picture may consist of one or more slices/tiles.
- a slice/tile may include one or more coding tree units (CTUs).
- CTUs coding tree units
- the CTU may be divided into one or more CUs.
- a tile is a rectangular area existing in a specific tile row and specific tile column in a picture, and may be composed of a plurality of CTUs.
- a tile column may be defined as a rectangular area of CTUs, has the same height as the picture height, and may have a width specified by a syntax element signaled from a bitstream part such as a picture parameter set.
- a tile row may be defined as a rectangular area of CTUs, has the same width as the width of a picture, and may have a height specified by a syntax element signaled from a bitstream part such as a picture parameter set.
- Tile scan is a method of specifying a predetermined contiguous ordering of CTUs dividing a picture.
- CTUs may be sequentially assigned an order according to a CTU raster scan within a tile, and tiles within a picture may be sequentially assigned an order according to a raster scan order of tiles of the picture.
- a slice may contain an integer number of complete tiles, or may contain a contiguous integer number of complete CTU rows within one tile of one picture.
- a slice may be contained exclusively in one single NAL unit.
- One picture may be composed of one or more tile groups.
- One tile group may include one or more tiles.
- a brick may represent a rectangular area of CTU rows within a tile in a picture.
- One tile may include one or more bricks.
- a brick may represent a rectangular area of CTU rows in a tile.
- One tile may be divided into a plurality of bricks, and each brick may include one or more CTU rows belonging to the tile. Tiles that are not divided into multiple bricks can also be treated as bricks.
- pixel or “pel” may mean a minimum unit constituting one picture (or image).
- sample may be used as a term corresponding to a pixel.
- a sample may generally represent a pixel or a pixel value, may represent only a pixel/pixel value of a luma component, or only a pixel/pixel value of a chroma component.
- a pixel/pixel value is independent information of each component or a pixel of a component generated through combination, synthesis, or analysis when there is a picture composed of a set of components having different characteristics and meanings.
- / can also indicate a pixel value.
- a pixel/pixel value For example, in the RGB input, only the pixel/pixel value of R may be displayed, only the pixel/pixel value of G may be displayed, or only the pixel/pixel value of B may be displayed.
- only pixel/pixel values of a Luma component synthesized using R, G, and B components may be indicated.
- only pixels/pixel values of images and information extracted from R, G, and B components through analysis may be indicated.
- a “unit” may represent a basic unit of image processing.
- a unit may include at least one of a specific region of a picture and information related to the region.
- One unit may include one luma block and two chroma (e.g., Cb, Cr) blocks.
- Unit may be used interchangeably with terms such as "sample array", "block” or "area” depending on the case.
- an MxN block may include samples (or a sample array) or a set (or array) of transform coefficients consisting of M columns and N rows.
- the unit may represent a basic unit containing information for performing a specific task.
- “current block” may mean one of “current coding block”, “current coding unit”, “encoding object block”, “decoding object block”, or “processing object block”.
- “current block” may mean “current prediction block” or “prediction target block”.
- transform inverse transform
- quantization inverse quantization
- “current block” may mean “current transform block” or “transform target block”.
- filtering filtering target block.
- current block may mean “luma block of the current block” unless explicitly described as a chroma block.
- the “chroma block of the current block” may be expressed by including an explicit description of the chroma block, such as “chroma block” or “current chroma block”.
- “/” and “,” may be interpreted as “and/or”.
- “A/B” and “A, B” could be interpreted as “A and/or B”.
- “A/B/C” and “A, B, C” may mean “at least one of A, B and/or C”.
- FIG. 1 is a diagram schematically illustrating a video coding system to which embodiments according to the present disclosure may be applied.
- a video coding system may include a source device 10 and a receiving device 20 .
- the source device 10 may transmit coded video and/or image information or data to the receiving device 20 in a file or streaming form through a digital storage medium or network.
- the source device 10 may include a video source generator 11, an encoding device 12, and a transmission unit 13.
- the receiving device 20 may include a receiving unit 21 , a decoding apparatus 12 and a rendering unit 23 .
- the encoding device 12 may be called a video/image encoding device, and the decoding device 12 may be called a video/image decoding device.
- the transmission unit 13 may be included in the encoding device 12 .
- the receiving unit 21 may be included in the decoding device 12 .
- the rendering unit 23 may include a display unit, and the display unit may be configured as a separate device or an external component.
- the video source generator 11 may acquire video/images through a process of capturing, synthesizing, or generating video/images.
- the video source generating unit 11 may include a video/image capture device and/or a video/image generating device.
- a video/image capture device may include, for example, one or more cameras, a video/image archive containing previously captured video/images, and the like.
- Video/image generating devices may include, for example, computers, tablets and smart phones, etc., and may (electronically) generate video/images.
- a virtual video/image may be generated through a computer or the like, and in this case, a video/image capture process may be replaced by a process of generating related data.
- video/video synthesis and generation may be performed during information processing by AI (AI input information, information processing information, and output information). In this case, information generated during the video/image capture process may be used as input information for AI.
- the encoding device 12 may encode the input video/video.
- the encoding device 12 may perform a series of procedures such as prediction, transformation, and quantization for compression and encoding efficiency.
- the encoding device 12 may output encoded data (encoded video/image information) in the form of a bitstream.
- the transmission unit 13 may transmit the encoded video/image information or data output in the form of a bitstream to the reception unit 21 of the reception device 20 through a digital storage medium or network in a file or streaming form.
- Digital storage media may include various storage media such as USB, SD, CD, DVD, Blu-ray, HDD, and SSD.
- the transmission unit 13 may include an element for generating a media file through a predetermined file format, and may include an element for transmission through a broadcasting/communication network.
- the receiving unit 21 may extract/receive the bitstream from the storage medium or network and deliver it to the decoding device 12.
- the decoding device 12 may decode video/video by performing a series of procedures such as inverse quantization, inverse transformation, and prediction corresponding to operations of the encoding device 12 .
- the rendering unit 23 may render the decoded video/image.
- the rendered video/image may be displayed through the display unit.
- the decoded video can be used not only for rendering but also as input information for use in other systems.
- decoded video can be used as input information for AI task performance.
- the decoded video may be used as input information for AI tasks such as face recognition, action recognition, lane recognition, and the like.
- FIG. 2 is a diagram schematically illustrating an image encoding apparatus to which embodiments according to the present disclosure may be applied.
- the image encoding apparatus 100 includes an image division unit 110, a subtraction unit 115, a transform unit 120, a quantization unit 130, an inverse quantization unit 140, and an inverse transform unit ( 150), an adder 155, a filtering unit 160, a memory 170, an inter prediction unit 180, an intra prediction unit 185, and an entropy encoding unit 190.
- the inter prediction unit 180 and the intra prediction unit 185 may collectively be referred to as a “prediction unit”.
- the transform unit 120, the quantization unit 130, the inverse quantization unit 140, and the inverse transform unit 150 may be included in a residual processing unit.
- the residual processing unit may further include a subtraction unit 115 .
- All or at least some of the plurality of components constituting the image encoding apparatus 100 may be implemented as one hardware component (eg, an encoder or a processor) according to embodiments.
- the memory 170 may include a decoded picture buffer (DPB) and may be implemented by a digital storage medium.
- DPB decoded picture buffer
- the image segmentation unit 110 may divide the input image (or picture or frame) input to the image encoding device 100 into one or more processing units - here, the input image is acquired by an image sensor. It may be a normal image and/or an image generated by AI.
- the processing unit may be called a coding unit (CU).
- the coding unit recursively converts a coding tree unit (CTU) or a largest coding unit (LCU) according to a Quad-tree/binary-tree/ternary-tree (QT/BT/TT) structure ( It can be obtained by dividing recursively.
- CTU coding tree unit
- LCU largest coding unit
- QT/BT/TT Quad-tree/binary-tree/ternary-tree
- one coding unit may be divided into a plurality of deeper depth coding units based on a quad tree structure, a binary tree structure, and/or a ternary tree structure.
- a quad tree structure may be applied first and a binary tree structure and/or ternary tree structure may be applied later.
- a coding procedure according to the present disclosure may be performed based on a final coding unit that is not further divided.
- the largest coding unit may be directly used as the final coding unit, and a coding unit of a lower depth obtained by dividing the largest coding unit may be used as the final cornet unit.
- the coding procedure may include procedures such as prediction, transformation, and/or reconstruction, which will be described later.
- the processing unit of the coding procedure may be a prediction unit (PU) or a transform unit (TU).
- the prediction unit and the transform unit may be divided or partitioned from the final coding unit, respectively.
- the prediction unit may be a unit of sample prediction
- the transform unit may be a unit for deriving transform coefficients and/or a unit for deriving a residual signal from transform coefficients.
- a prediction unit performs prediction on a processing target block (current block), and generates a predicted block including prediction samples for the current block.
- the prediction unit may determine whether intra prediction or inter prediction is applied in units of current blocks or CUs.
- the prediction unit may generate various types of information related to prediction of the current block and transmit them to the entropy encoding unit 190 .
- Prediction-related information may be encoded in the entropy encoding unit 190 and output in the form of a bitstream.
- the intra predictor 185 may predict a current block by referring to samples in the current picture.
- the referenced samples may be located in the neighborhood of the current block or may be located apart from each other according to an intra prediction mode and/or an intra prediction technique.
- Intra prediction modes may include a plurality of non-directional modes and a plurality of directional modes.
- the non-directional mode may include, for example, a DC mode and a planar mode.
- the directional modes may include, for example, 33 directional prediction modes or 65 directional prediction modes according to the degree of detail of the prediction direction. However, this is an example, and more or less directional prediction modes may be used according to settings.
- the intra prediction unit 185 may determine a prediction mode applied to the current block by using a prediction mode applied to neighboring blocks.
- the inter prediction unit 180 may derive a predicted block for a current block based on a reference block (reference sample array) specified by a motion vector on a reference picture.
- motion information may be predicted in units of blocks, subblocks, or samples based on correlation of motion information between neighboring blocks and the current block.
- the motion information may include a motion vector and a reference picture index.
- the motion information may further include inter prediction direction (L0 prediction, L1 prediction, Bi prediction, etc.) information.
- a neighboring block may include a spatial neighboring block present in the current picture and a temporal neighboring block present in the reference picture.
- a reference picture including the reference block and a reference picture including the temporal neighboring block may be the same or different.
- the temporal neighboring block may be called a collocated reference block, a collocated CU (colCU), and the like.
- a reference picture including the temporal neighboring block may be referred to as a collocated picture (colPic).
- the inter-prediction unit 180 constructs a motion information candidate list based on neighboring blocks, and provides information indicating which candidate is used to derive the motion vector and/or reference picture index of the current block. can create Inter prediction may be performed based on various prediction modes. For example, in the case of skip mode and merge mode, the inter prediction unit 180 may use motion information of neighboring blocks as motion information of the current block.
- the residual signal may not be transmitted unlike the merge mode.
- motion vector prediction (MVP) mode motion vectors of neighboring blocks are used as motion vector predictors, and motion vector differences and motion vector predictor indicators ( indicator), the motion vector of the current block can be signaled.
- the motion vector difference may refer to a difference between a motion vector of a current block and a motion vector predictor.
- the prediction unit may generate a prediction signal based on various prediction methods and/or prediction techniques described below.
- the predictor may apply intra-prediction or inter-prediction to predict the current block as well as apply both intra-prediction and inter-prediction at the same time.
- a prediction method that simultaneously applies intra prediction and inter prediction for prediction of a current block may be called combined inter and intra prediction (CIIP).
- the prediction unit may perform intra block copy (IBC) to predict the current block.
- Intra-block copying can be used for video/video coding of content such as games, for example, such as screen content coding (SCC).
- IBC is a method of predicting a current block using a restored reference block in a current picture located at a distance from the current block by a predetermined distance.
- the position of the reference block in the current picture can be encoded as a vector (block vector) corresponding to the predetermined distance.
- IBC basically performs prediction within the current picture, but may be performed similarly to inter prediction in that a reference block is derived within the current picture. That is, IBC may use at least one of the inter prediction techniques described in this disclosure.
- the prediction signal generated through the prediction unit may be used to generate a reconstruction signal or a residual signal.
- the subtraction unit 115 subtracts the prediction signal (predicted block, prediction sample array) output from the prediction unit from the input image signal (original block, original sample array) to obtain a residual signal (residual signal, residual block, residual sample array). ) can be created.
- the generated residual signal may be transmitted to the conversion unit 120 .
- the transform unit 120 may generate transform coefficients by applying a transform technique to the residual signal.
- the transform technique uses at least one of a Discrete Cosine Transform (DCT), a Discrete Sine Transform (DST), a Karhunen-Loeve Transform (KLT), a Graph-Based Transform (GBT), or a Conditionally Non-linear Transform (CNT).
- DCT Discrete Cosine Transform
- DST Discrete Sine Transform
- KLT Karhunen-Loeve Transform
- GBT Graph-Based Transform
- CNT Conditionally Non-linear Transform
- GBT means a conversion obtained from the graph when relation information between pixels is expressed as a graph.
- CNT means a transformation obtained based on generating a prediction signal using all previously reconstructed pixels.
- the transformation process may be applied to square pixel blocks having the same size or may be applied to non-square blocks of variable size.
- the quantization unit 130 may quantize the transform coefficients and transmit them to the entropy encoding unit 190 .
- the entropy encoding unit 190 may encode the quantized signal (information on quantized transform coefficients) and output the encoded signal as a bitstream.
- Information about the quantized transform coefficients may be referred to as residual information.
- the quantization unit 130 may rearrange block-type quantized transform coefficients into a one-dimensional vector form based on a coefficient scan order, and the quantized transform coefficients based on the quantized transform coefficients of the one-dimensional vector form. Information about transform coefficients may be generated.
- the entropy encoding unit 190 may perform various encoding methods such as exponential Golomb, context-adaptive variable length coding (CAVLC), and context-adaptive binary arithmetic coding (CABAC).
- the entropy encoding unit 190 may encode together or separately information necessary for video/image reconstruction (eg, values of syntax elements) other than quantized transform coefficients.
- Encoded information e.g., encoded video/video information
- NAL network abstraction layer
- the video/video information may further include information on various parameter sets such as an adaptation parameter set (APS), a picture parameter set (PPS), a sequence parameter set (SPS), or a video parameter set (VPS).
- the video/image information may further include general constraint information.
- the video/image information may include a method of generating, using, and purpose of encoded information. For example, when applied to VCM in particular, the video/image information is information indicating which AI task the coded information is coded for, and which network (e.g., neural network) the coded information is used to encode. and/or information indicating what purpose the coded information was coded for.
- Information and/or syntax elements transmitted/signaled from the encoding device to the decoding device according to the present disclosure may be included in video/image information.
- the signaling information, transmitted information, and/or syntax elements mentioned in this disclosure may be encoded through the above-described encoding procedure and included in the bitstream.
- the bitstream may be transmitted through a network or stored in a digital storage medium.
- the network may include a broadcasting network and/or a communication network
- the digital storage medium may include various storage media such as USB, SD, CD, DVD, Blu-ray, HDD, and SSD.
- a transmission unit (not shown) that transmits the signal output from the entropy encoding unit 190 and/or a storage unit (not shown) that stores the signal output from the entropy encoding unit 190 may be provided as internal/external elements of the image encoding apparatus 100, or may be transmitted. The part may be provided as a component of the entropy encoding unit 190.
- the quantized transform coefficients output from the quantization unit 130 may be used to generate a residual signal.
- a residual signal residual block or residual samples
- a residual signal residual block or residual samples
- the adder 155 adds the reconstructed residual signal to the prediction signal output from the inter prediction unit 180 or the intra prediction unit 185 to obtain a reconstructed signal (reconstructed picture, reconstructed block, reconstructed sample array) can create
- a predicted block may be used as a reconstruction block.
- the adder 155 may be called a restoration unit or a restoration block generation unit.
- the generated reconstruction signal may be used for intra prediction of the next processing target block in the current picture, or may be used for inter prediction of the next picture after filtering as described later.
- the filtering unit 160 may improve subjective/objective picture quality by applying filtering to the reconstructed signal.
- the filtering unit 160 may generate a modified reconstructed picture by applying various filtering methods to the reconstructed picture, and store the modified reconstructed picture in the memory 170, specifically the DPB of the memory 170. can be stored in
- the various filtering methods may include, for example, deblocking filtering, sample adaptive offset, adaptive loop filter, bilateral filter, and the like.
- the filtering unit 160 may generate various types of filtering-related information and transmit them to the entropy encoding unit 190, as will be described later in the description of each filtering method.
- Information on filtering may be encoded in the entropy encoding unit 190 and output in the form of a bitstream.
- the modified reconstructed picture transmitted to the memory 170 may be used as a reference picture in the inter prediction unit 180 .
- the image encoding apparatus 100 can avoid prediction mismatch between the image encoding apparatus 100 and the video decoding apparatus, and can also improve encoding efficiency.
- the DPB in the memory 170 may store a modified reconstructed picture to be used as a reference picture in the inter prediction unit 180.
- the memory 170 may store motion information of a block in a current picture from which motion information is derived (or encoded) and/or motion information of blocks in a previously reconstructed picture.
- the stored motion information may be transmitted to the inter prediction unit 180 to be used as motion information of a spatial neighboring block or motion information of a temporal neighboring block.
- the memory 170 may store reconstructed samples of reconstructed blocks in the current picture and transfer them to the intra predictor 185 .
- FIG. 3 is a diagram schematically illustrating an image decoding apparatus to which embodiments according to the present disclosure may be applied.
- the image decoding apparatus 200 includes an entropy decoding unit 210, an inverse quantization unit 220, an inverse transform unit 230, an adder 235, a filtering unit 240, and a memory 250. ), an inter predictor 260 and an intra predictor 265 may be included.
- the inter prediction unit 260 and the intra prediction unit 265 may be collectively referred to as a "prediction unit”.
- the inverse quantization unit 220 and the inverse transform unit 230 may be included in the residual processing unit.
- All or at least some of the plurality of components constituting the image decoding apparatus 200 may be implemented as one hardware component (eg, a decoder or a processor) according to embodiments.
- the memory 170 may include a DPB and may be implemented by a digital storage medium.
- the video decoding apparatus 200 may restore the video by performing a process corresponding to the process performed in the video encoding apparatus 100 of FIG. 2 .
- the video decoding apparatus 200 may perform decoding using a processing unit applied in the video encoding apparatus.
- a processing unit of decoding may thus be a coding unit, for example.
- a coding unit may be a coding tree unit or may be obtained by dividing a largest coding unit.
- the restored video signal decoded and output through the video decoding apparatus 200 may be reproduced through a reproducing apparatus (not shown).
- the image decoding device 200 may receive a signal output from the image encoding device of FIG. 2 in the form of a bitstream.
- the received signal may be decoded through the entropy decoding unit 210 .
- the entropy decoding unit 210 may parse the bitstream to derive information (eg, video/image information) required for image restoration (or picture restoration).
- the video/video information may further include information on various parameter sets such as an adaptation parameter set (APS), a picture parameter set (PPS), a sequence parameter set (SPS), or a video parameter set (VPS).
- the video/image information may further include general constraint information.
- the video/video information when applied to VCM in particular, includes information indicating which AI task the coded information was coded to perform, and which network (e.g., neural network) the coded information was coded using. and/or information indicating what purpose the coded information was coded for.
- a value for this image may be forced to be described.
- the video decoding apparatus may additionally use the information about the parameter set and/or the general restriction information to decode video.
- the signaling information, received information, and/or syntax elements mentioned in this disclosure may be obtained from the bitstream by being decoded through the decoding procedure.
- the entropy decoding unit 210 decodes information in a bitstream based on a coding method such as exponential Golomb coding, CAVLC, or CABAC, and values of syntax elements required for video reconstruction and quantized values of residual transform coefficients. can output them.
- the CABAC entropy decoding method receives bins corresponding to each syntax element in a bitstream, and decodes syntax element information to be decoded and decoding information of neighboring blocks and blocks to be decoded or information of symbols/bins decoded in the previous step.
- a context model is determined using , a bin occurrence probability is predicted according to the determined context model, and a symbol corresponding to the value of each syntax element is generated by arithmetic decoding of the bin.
- the CABAC entropy decoding method may update the context model by using information of the decoded symbol/bin for the context model of the next symbol/bin after determining the context model.
- prediction-related information is provided to the prediction unit (inter prediction unit 260 and intra prediction unit 265), and entropy decoding is performed by the entropy decoding unit 210.
- Dual values that is, quantized transform coefficients and related parameter information may be input to the inverse quantization unit 220 .
- information on filtering may be provided to the filtering unit 240.
- a receiving unit for receiving a signal output from the image encoding device may be additionally provided as an internal/external element of the image decoding device 200, or the receiving unit may be provided as a component of the entropy decoding unit 210. It could be.
- the video decoding apparatus may include an information decoder (video/video/picture information decoder) and/or a sample decoder (video/video/picture sample decoder).
- the information decoder may include an entropy decoding unit 210, and the sample decoder includes an inverse quantization unit 220, an inverse transform unit 230, an adder 235, a filtering unit 240, a memory 250, At least one of an inter prediction unit 260 and an intra prediction unit 265 may be included.
- the inverse quantization unit 220 may inversely quantize the quantized transform coefficients and output the transform coefficients.
- the inverse quantization unit 220 may rearrange the quantized transform coefficients in the form of a 2D block. In this case, the rearrangement may be performed based on a coefficient scanning order performed by the video encoding device.
- the inverse quantization unit 220 may perform inverse quantization on quantized transform coefficients using a quantization parameter (eg, quantization step size information) and obtain transform coefficients.
- a quantization parameter eg, quantization step size information
- the inverse transform unit 230 may obtain a residual signal (residual block, residual sample array) by inverse transforming transform coefficients.
- the prediction unit may perform prediction on the current block and generate a predicted block including predicted samples of the current block.
- the prediction unit may determine whether intra prediction or inter prediction is applied to the current block based on the information about the prediction output from the entropy decoding unit 210, and determine a specific intra/inter prediction mode (prediction technique).
- the prediction unit can generate a prediction signal based on various prediction methods (methods) described later is the same as mentioned in the description of the prediction unit of the image encoding apparatus 100.
- the intra predictor 265 may predict the current block by referring to samples in the current picture.
- the description of the intra predictor 185 may be equally applied to the intra predictor 265 .
- the inter prediction unit 260 may derive a predicted block for a current block based on a reference block (reference sample array) specified by a motion vector on a reference picture.
- motion information may be predicted in units of blocks, subblocks, or samples based on correlation of motion information between neighboring blocks and the current block.
- the motion information may include a motion vector and a reference picture index.
- the motion information may further include inter prediction direction (L0 prediction, L1 prediction, Bi prediction, etc.) information.
- a neighboring block may include a spatial neighboring block present in the current picture and a temporal neighboring block present in the reference picture.
- the inter predictor 260 may configure a motion information candidate list based on neighboring blocks and derive a motion vector and/or reference picture index of the current block based on the received candidate selection information. Inter prediction may be performed based on various prediction modes (methods), and the prediction-related information may include information indicating an inter prediction mode (method) for the current block.
- the adder 235 restores the obtained residual signal by adding it to the prediction signal (predicted block, prediction sample array) output from the prediction unit (including the inter prediction unit 260 and/or the intra prediction unit 265). Signals (reconstructed picture, reconstructed block, reconstructed sample array) can be generated. When there is no residual for the block to be processed, such as when the skip mode is applied, a predicted block may be used as a reconstruction block. The description of the adder 155 may be equally applied to the adder 235 .
- the adder 235 may be called a restoration unit or a restoration block generation unit.
- the generated reconstruction signal may be used for intra prediction of the next processing target block in the current picture, or may be used for inter prediction of the next picture after filtering as described later.
- the filtering unit 240 may improve subjective/objective picture quality by applying filtering to the reconstructed signal.
- the filtering unit 240 may generate a modified reconstructed picture by applying various filtering methods to the reconstructed picture, and store the modified reconstructed picture in the memory 250, specifically the DPB of the memory 250.
- the various filtering methods may include, for example, deblocking filtering, sample adaptive offset, adaptive loop filter, bilateral filter, and the like.
- a (modified) reconstructed picture stored in the DPB of the memory 250 may be used as a reference picture in the inter prediction unit 260 .
- the memory 250 may store motion information of a block in the current picture from which motion information is derived (or decoded) and/or motion information of blocks in a previously reconstructed picture.
- the stored motion information may be transmitted to the inter prediction unit 260 to be used as motion information of a spatial neighboring block or motion information of a temporal neighboring block.
- the memory 250 may store reconstructed samples of reconstructed blocks in the current picture and transfer them to the intra prediction unit 265 .
- the embodiments described in the filtering unit 160, the inter prediction unit 180, and the intra prediction unit 185 of the video encoding apparatus 100 are the filtering unit 240 of the video decoding apparatus 200, The same or corresponding to the inter prediction unit 260 and the intra prediction unit 265 may be applied.
- pictures constituting the video/video may be encoded/decoded according to a series of decoding orders.
- a picture order corresponding to the output order of decoded pictures may be set differently from the decoding order, and based on this, not only forward prediction but also backward prediction may be performed during inter prediction.
- S410 may be performed by the entropy decoding unit 210 of the decoding apparatus described above in FIG. 3, and S420 may be performed by a prediction unit including the intra prediction unit 265 and the inter prediction unit 260, , S430 may be performed by the residual processing unit including the inverse quantization unit 220 and the inverse transform unit 230, S440 may be performed by the addition unit 235, and S450 may be performed by the filtering unit 240.
- S410 may include the information decoding procedure described in this disclosure
- S420 may include the inter/intra prediction procedure described in this disclosure
- S430 may include the residual processing procedure described in this disclosure
- S440 may include the block/picture restoration procedure described in this disclosure
- S450 may include the in-loop filtering procedure described in this disclosure.
- the picture decoding procedure schematically as shown in the description of FIG.
- An in-loop filtering procedure for a picture (S450) may be included.
- the picture reconstruction procedure is based on prediction samples and residual samples obtained through the process of inter/intra prediction (S420) and residual processing (S430, inverse quantization of quantized transform coefficients, inverse transformation) described in this disclosure. can be performed.
- a modified reconstructed picture may be generated through an in-loop filtering procedure for the reconstructed picture generated through the picture reconstruction procedure, and the modified reconstructed picture may be output as a decoded picture. It is stored in the decoded picture buffer or memory 250 and can be used as a reference picture in an inter-prediction procedure when decoding a later picture.
- the in-loop filtering procedure may be omitted.
- the reconstructed picture may be output as a decoded picture, and may be stored in the decoded picture buffer or the memory 250 of the decoding apparatus to be interpolated during decoding of a later picture. It can be used as a reference picture in the prediction procedure.
- the in-loop filtering procedure may include a deblocking filtering procedure, a sample adaptive offset (SAO) procedure, an adaptive loop filter (ALF) procedure, and/or a bi-lateral filter procedure. may be, and some or all of them may be omitted.
- one or some of the deblocking filtering procedure, sample adaptive offset (SAO) procedure, adaptive loop filter (ALF) procedure, and bi-lateral filter procedure may be sequentially applied, or all of them may be sequentially applied.
- SAO sample adaptive offset
- ALF adaptive loop filter
- bi-lateral filter procedure may be sequentially applied, or all of them may be sequentially applied.
- SAO SAO procedure
- ALF adaptive loop filter
- bi-lateral filter procedure may be sequentially applied.
- an SAO procedure may be performed after a deblocking filtering procedure is applied to a reconstructed picture.
- the ALF procedure may be performed after a deblocking filtering procedure is applied to the reconstructed picture. This may also be performed in the encoding device as well.
- S510 may be performed by a prediction unit including the intra prediction unit 185 or the inter prediction unit 180 of the encoding device described above in FIG. 2, and S520 is performed by the transform unit 120 and/or the quantization unit ( 130), and S530 may be performed in the entropy encoding unit 190.
- S510 may include the inter/intra prediction procedure described in this disclosure
- S520 may include the residual processing procedure described in this disclosure
- S530 may include the information encoding procedure described in this disclosure. .
- a picture encoding procedure is a procedure of encoding picture reconstruction information (e.g., prediction information, residual information, partitioning information, etc.) and outputting it in the form of a bitstream, as schematically shown in the description of FIG. 2.
- a procedure for generating a reconstructed picture for the current picture and a procedure for applying in-loop filtering to the reconstructed picture may be included.
- the encoding device may derive (modified) residual samples from the transform coefficients quantized through the inverse quantization unit 140 and the inverse transform unit 150, and the predicted samples output from S510 and the (modified) residual A reconstructed picture may be generated based on the samples.
- the reconstructed picture generated in this way may be the same as the reconstructed picture generated by the decoding apparatus described above.
- a modified reconstructed picture may be generated through an in-loop filtering procedure for the reconstructed picture, which may be stored in a decoded picture buffer or memory 170, and, as in the case of a decoding apparatus, when encoding a picture thereafter, an inter-reconstructed picture may be generated. It can be used as a reference picture in the prediction procedure. As described above, some or all of the in-loop filtering procedure may be omitted depending on the case.
- (in-loop) filtering-related information may be encoded in the entropy encoding unit 190 and output in the form of a bitstream, and the decoding device performs encoding based on the filtering-related information.
- the in-loop filtering procedure may be performed in the same way as the device.
- noise generated during video/video coding such as blocking artifacts and ringing artifacts
- the encoding and decoding devices can derive the same prediction result, increase the reliability of picture coding, and reduce the amount of data to be transmitted for picture coding. can be reduced
- the picture restoration procedure may be performed not only by the decoding device but also by the encoding device.
- a reconstructed block may be generated based on intra prediction/inter prediction in units of blocks, and a reconstructed picture including the reconstructed blocks may be generated.
- the current picture/slice/tile group is an I-picture/slice/tile group
- blocks included in the current picture/slice/tile group may be reconstructed based only on intra prediction.
- the current picture/slice/tile group is a P or B picture/slice/tile group
- blocks included in the current picture/slice/tile group may be reconstructed based on intra prediction or inter prediction.
- inter prediction may be applied to some blocks in the current picture/slice/tile group, and intra prediction may be applied to the remaining blocks.
- a color component of a picture may include a luma component and a chroma component, and unless explicitly limited in the present disclosure, methods and embodiments proposed in the present disclosure may be applied to the luma component and the chroma component.
- the encoding apparatus may derive a residual block (residual samples) based on a block (prediction samples) predicted through intra/inter/IBC prediction, etc., and the derived residual samples Transform and quantization may be applied to derive quantized transform coefficients.
- Information on quantized transform coefficients may be included in residual coding syntax and output in the form of a bitstream after encoding.
- the decoding apparatus may obtain information (residual information) on the quantized transform coefficients from the bitstream, and decode the quantized transform coefficients.
- the decoding apparatus may derive residual samples through inverse quantization/inverse transformation based on the quantized transform coefficients.
- At least one of the quantization/inverse quantization and/or transform/inverse transform may be omitted. If the transform/inverse transform is omitted, the transform coefficients may be called coefficients or residual coefficients, or may still be called transform coefficients for unity of expression. Whether to skip the transform/inverse transform may be signaled based on transform_skip_flag.
- the transform/inverse transform may be performed based on transform kernel(s).
- a multiple transform selection (MTS) scheme may be applied.
- some of a plurality of transform kernel sets may be selected and applied to the current block.
- Transformation kernels can be called various terms such as transformation matrix and transformation type.
- a set of transform kernels may represent a combination of vertical transform kernels (vertical transform kernels) and horizontal transform kernels (horizontal transform kernels).
- MTS index information (or tu_mts_idx syntax element) may be generated/encoded by an encoding device and signaled to a decoding device to indicate one of the conversion kernel sets.
- the conversion kernel set may be determined based on, for example, cu_sbt_horizontal_flag and cu_sbt_pos_flag.
- the transform kernel set may be determined based on an intra prediction mode for the current block, for example.
- the MTS-based transform is applied as a primary transform, and a secondary transform may be further applied.
- the secondary transform may be applied only to coefficients in the upper left wxh region of the coefficient block to which the primary transform is applied, and may be referred to as a reduced secondary transform (RST).
- RST reduced secondary transform
- w and/or h may be 4 or 8.
- the primary transform and the secondary transform may be sequentially applied to the residual block, and in the inverse transform, the inverse secondary transform and the inverse primary transform may be sequentially applied to transform coefficients.
- the secondary transform (RST transform) may be called a low frequency coefficients transform (LFCT) or a low frequency non-seperable transform (LFNST).
- the inverse secondary transform may be called inverse LFCT or inverse LFNST.
- the transform/inverse transform may be performed in units of CUs or TUs. That is, the transform/inverse transform may be applied to residual samples in the CU or residual samples in the TU.
- the CU size and TU size may be the same, or a plurality of TUs may exist in the CU area. Meanwhile, the CU size may generally indicate the luma component (sample) CB size.
- the TU size may generally indicate a luma component (sample) TB size.
- Chroma component (sample) CB or TB size depends on the component ratio according to the color format (chroma format, e.g., 4:4:4, 4:2:2, 4:2:0, etc.) Luma component (sample) CB or TB It can be derived based on size.
- the TU size may be derived based on maxTbSize. For example, when the CU size is greater than the maxTbSize, a plurality of TUs (TBs) of the maxTbSize may be derived from the CU, and transformation/inverse transformation may be performed in units of the TU (TB).
- the maxTbSize may be considered for determining whether to apply various intra prediction types such as ISP.
- the information on maxTbSize may be predetermined, or may be generated and encoded by an encoding device and signaled to a decoding device.
- Coded video/pictures according to the present disclosure may be processed according to, for example, a coding layer and structure described later.
- FIG. 6 is a diagram illustrating a hierarchical structure of a coded image.
- a coded image exists between a video coding layer (VCL) that handles video decoding and itself, a subsystem that transmits and stores coded information, and between the VCL and the subsystem. It can be divided into NAL (network abstraction layer) responsible for network adaptation function.
- VCL video coding layer
- NAL network abstraction layer
- VCL data including compressed video data is generated, or Picture Parameter Set (PPS), Sequence Parameter Set (SPS), and Video Parameter Set (Video Parameter Set: A parameter set including information such as VPS) or a Supplemental Enhancement Information (SEI) message additionally necessary for a video decoding process may be generated.
- PPS Picture Parameter Set
- SPS Sequence Parameter Set
- SEI Supplemental Enhancement Information
- a NAL unit may be generated by adding header information (NAL unit header) to a raw byte sequence payload (RBSP) generated in VCL.
- RBSP refers to slice data, parameter set, SEI message, etc. generated in the VCL.
- the NAL unit header may include NAL unit type information specified according to RBSP data included in the corresponding NAL unit.
- NAL units may be classified into VCL NAL units and non-VCL NAL units according to RBSPs generated in VCL.
- a VCL NAL unit may refer to a NAL unit including information about an image (slice data)
- a non-VCL NAL unit may refer to a NAL unit including information (parameter set or SEI message) necessary for decoding an image.
- information indicating that the corresponding encoded image is image information for performing a specific task may be included in the VCL NAL unit.
- information indicating that the corresponding encoded image is image information for performing a specific task may be included in the non-VCL NAL unit.
- VCL NAL unit and non-VCL NAL unit may be transmitted through a network by attaching header information according to the data standard of the subsystem.
- the NAL unit may be transformed into a data format of a predetermined standard such as an H.266/VVC file format, a real-time transport protocol (RTP), or a transport stream (TS) and transmitted through various networks.
- a predetermined standard such as an H.266/VVC file format, a real-time transport protocol (RTP), or a transport stream (TS)
- the NAL unit type of the NAL unit may be specified according to the RBSP data structure included in the NAL unit, and information on such a NAL unit type may be stored in a NAL unit header and signaled.
- the NAL unit may be largely classified into a VCL NAL unit type and a non-VCL NAL unit type according to whether or not the NAL unit includes information about an image (slice data).
- VCL NAL unit types can be classified according to the nature and type of pictures included in the VCL NAL unit, and non-VCL NAL unit types can be classified according to the type of parameter set.
- NAL unit types specified according to the type of parameter set/information included in the Non-VCL NAL unit type.
- NAL unit type for NAL unit including DCI
- NAL unit Type for NAL unit including VPS
- NAL unit type for NAL unit including SPS
- NAL unit Type for NAL unit including PPS
- NAL unit Type for NAL unit including APS
- NAL unit Type for NAL unit including PH
- NAL unit types have syntax information for the NAL unit type, and the syntax information may be stored in a NAL unit header and signaled.
- the syntax information may be nal_unit_type, and NAL unit types may be specified with a nal_unit_type value.
- one picture may include a plurality of slices, and one slice may include a slice header and slice data.
- one picture header may be further added to a plurality of slices (slice header and slice data set) in one picture.
- the picture header (picture header syntax) may include information/parameters commonly applicable to the pictures.
- the slice header may include information/parameters commonly applicable to the slices.
- the APS APS Syntax
- PPS PPS Syntax
- the SPS SPS Syntax
- the VPS VPS syntax
- the DCI DCI syntax
- high level syntax may include at least one of the APS syntax, PPS syntax, SPS syntax, VPS syntax, DCI syntax, picture header syntax, and slice header syntax.
- low level syntax may include, for example, slice data syntax, CTU syntax, coding unit syntax, transformation unit syntax, and the like.
- video/video information encoded from an encoding device to a decoding device and signaled in the form of a bitstream includes information related to partitioning in a picture, intra/inter prediction information, residual information, in-loop filtering information, and the like, and the like. It may include slice header information, picture header information, APS information, PPS information, SPS information, VPS information, and/or DCI information. In addition, the image/video information may further include general constraint information and/or NAL unit header information.
- Video/image coding for machines refers to acquiring all or part of a video source and/or information necessary for a video source according to a user's and/or machine's request, purpose, surrounding environment, etc., and encoding/decoding it.
- VCM technology can be used in a variety of applications.
- VCM technology can be used in the fields of surveillance system, intelligent transportation, smart city, intelligent industry, and intelligent content.
- a surveillance system that recognizes and tracks an object or person
- VCM technology may be used to transmit or store information obtained from a surveillance camera.
- VCM technology uses vehicle location information collected from GPS, various sensing information collected from LIDAR, radar, etc. and to transmit vehicle control information to other vehicles or infrastructure.
- VCM technology can be used to transmit information necessary for performing individual tasks of (interconnected) sensor nodes and devices.
- an encoding/decoding target may be referred to as a feature.
- a feature may refer to a data set including time series information extracted/processed from a video source.
- a feature may have a separate information type and properties different from that of the video source, and may be reconstructed to suit a specific task according to an embodiment. Accordingly, a compression method or expression format of a feature may be different from that of a video source.
- the present disclosure provides various embodiments related to feature encoding/decoding methods. Unless otherwise specified, the embodiments of the present disclosure may be implemented individually, or may be implemented in combination of two or more. Hereinafter, embodiments of the present disclosure will be described in detail with reference to the accompanying drawings.
- FIG. 7 is a diagram schematically illustrating a VCM system to which embodiments of the present disclosure may be applied.
- the VCM system may include an encoding device 30 and a decoding device 40 .
- the encoding device 30 may compress/encode features/feature maps extracted from the source image/video to generate a bitstream, and transmit the generated bitstream to the decoding device 40 through a storage medium or network.
- the encoding device 30 may include a feature obtaining unit 31 , an encoding unit 32 and a transmission unit 33 .
- the feature obtaining unit 31 may obtain a feature/feature map of the source image/video. Depending on the embodiment, the feature obtaining unit 31 may obtain a pre-extracted feature/feature map from an external device, for example, a feature extraction network. In this case, the feature acquisition unit 31 performs a feature signaling interface function. Unlike this, the feature acquisition unit 31 may acquire features/feature maps by executing a neural network (e.g., CNN, DNN, etc.) with the source image/video as an input. In this case, the feature acquisition unit 31 performs a feature extraction network function.
- a neural network e.g., CNN, DNN, etc.
- the encoding device 30 may further include a source image generation unit for obtaining a source image/video.
- the source image generating unit may be implemented with an image sensor, a camera module, or the like, and may obtain the source image/video through a process of capturing, synthesizing, or generating the image/video.
- the source image/video generated by the source image generator may be transmitted to a feature extraction network and used as input information for extracting a feature/feature map.
- the encoder 32 may encode the feature/feature map obtained by the feature acquirer 31 .
- the encoder 32 may perform a series of procedures such as prediction, transformation, and quantization to increase encoding efficiency.
- the encoded data e.g., feature information
- a bitstream containing feature information may be referred to as a VCM bitstream.
- the transmission unit 33 may transmit the bitstream to the decoding device 40 in the form of a file through a digital storage medium.
- Digital storage media may include various storage media such as USB, SD, CD, DVD, Blu-ray, HDD, and SSD.
- the transmission unit 33 may include an element for generating a media file having a predetermined file format.
- the transmission unit 33 may transmit the encoded feature information to the decoding apparatus 40 in a streaming form through a network.
- the network may include wired and wireless communication networks such as the Internet, a local area network (LAN), and a wide LAN (WLAN).
- the transmission unit 33 may include an element for transmitting encoded feature information through a broadcasting/communication network.
- the decoding device 40 may obtain feature information from the encoding device 30 and reconstruct a feature/feature map based on the acquired feature information.
- the decoding device 40 may include a receiving unit 41 and a decoding unit 42 . Also, according to embodiments, the decoding device 40 may further include a task analysis/rendering unit 43 .
- the receiver 41 may receive a bitstream from the encoding device 30, obtain feature information from the received bitstream, and transmit the obtained feature information to the decoder 42.
- the decoder 42 may decode a feature/feature map based on the obtained feature information.
- the decoder 42 may perform a series of procedures such as inverse quantization, inverse transform, and prediction corresponding to the operation of the encoder 34 to increase decoding efficiency.
- the task analysis/rendering unit 43 may perform a predetermined task (e.g., a computer vision task such as face recognition, action recognition, lane recognition, etc.) by performing a task analysis and rendering process using the decoded feature. .
- a predetermined task e.g., a computer vision task such as face recognition, action recognition, lane recognition, etc.
- the task analysis/rendering unit 43 may be implemented outside the decoding device 40 .
- the decoded feature may be transmitted to the task analysis/rendering unit 43 through the feature signaling interface and used to perform a predetermined task.
- the VCM system encodes/decodes features extracted from source images/videos according to user and/or machine requests, task objectives, and surrounding environments, and performs various machine-oriented tasks using the features.
- the VCM system may be implemented by extending/redesigning the video/image coding system described above with reference to FIG. 1, and may perform various encoding/decoding methods defined in the Video Coding for Machines (VCM) standard. there is.
- VCM Video Coding for Machines
- features/feature maps may be generated in each hidden layer of the neural network.
- the size of the feature map and the number of channels may vary depending on the type of neural network or the location of the hidden layer.
- a feature map may be referred to as a feature set.
- Embodiments of the present disclosure provide an encoding/decoding method necessary to compress/restore a feature/feature map generated in a hidden layer of a neural network, for example, a convolutional neural network (CNN) or a deep neural network (DNN).
- a convolutional neural network CNN
- DNN deep neural network
- FIG. 8 is a diagram illustrating an example of a VCM pipeline that can be applied to embodiments of the present disclosure.
- the VCM pipeline includes a first stage 810 that extracts features/feature maps from an input image, a second stage 820 that encodes the extracted features/feature maps, and a coded feature/feature map. It may include a third stage 830 of decoding, and a fourth stage 840 of performing a predetermined task (e.g., machine task or machine/human vision hybrid task, etc.) based on the decoded feature/feature map. .
- a predetermined task e.g., machine task or machine/human vision hybrid task, etc.
- the first stage 810 may be performed by a feature extraction network, such as a CNN or DNN.
- the feature extraction network may mean a set of consecutive hidden layers from an input of a neural network, and features/feature maps may be extracted by performing a predetermined neural network operation on an input image.
- the second stage 820 may be executed by a feature encoding apparatus.
- the feature encoding apparatus may generate a bitstream by compressing/encoding the feature/feature map extracted in the first stage 810 .
- the feature encoding device differs only in that the target of compression/encoding is a feature/feature map rather than a video/video, and may basically have the same/similar structure as the image encoding device 200 described above with reference to FIG. 2 there is.
- the third stage 830 may be executed by a feature decoding apparatus.
- the feature decoding apparatus may decode/restore a feature/feature map from the bitstream generated in the second stage 820 .
- the feature decoding apparatus is basically the same as the video decoding apparatus 300 described above with reference to FIG. / can have a similar structure.
- the fourth stage 840 may be executed by a task network.
- the task network may perform a predetermined task based on the feature/feature map reconstructed in the third stage 830 .
- the task may be a machine task such as object detection or a hybrid task in which a machine task and human vision are mixed.
- the task network may perform task analysis and feature/feature map rendering in order to perform the task.
- 9 to 11 are diagrams for explaining the operation of a feature extraction network.
- FIG. 9 shows an example of input and output of a feature extraction network.
- the feature extraction network 900 may extract a feature map (or feature set) from an input source.
- W, H, and C may respectively mean the width, height, and number of channels of an input source.
- the number of channels C of the input source may be three.
- W', H', and C' may mean the width, height, and number of channels of a feature map, which are output values, respectively.
- the number of channels C' of the feature map may vary depending on the feature extraction method, and may generally be greater than the number of channels C of the input source.
- each feature (or channel) output from the feature extraction network may be smaller than the size of the input source.
- the number of channels of the feature map is greater than the number of channels of the input source, the total size of the feature map may be greater than the size of the input source. Accordingly, as shown in FIG. 11, the amount of data of the feature map output from the feature extraction network may be much larger than the amount of data of the input source, and as a result, encoding/decoding performance and complexity may be greatly reduced.
- embodiments of the present disclosure provide a method for efficiently reducing the size of a feature map. Specifically, embodiments of the present disclosure, i) a method for projecting a high-dimensional feature to a low-dimensional through feature transformation, ii) a method for generating / managing a transformation matrix for low-dimensional projection, and iii) a feature projected to a low-dimensional It relates to a method of restoring to a higher dimension again.
- Embodiment 1 of the present disclosure relates to a method for reducing the dimensionality of a feature map obtained from a source image/video.
- a high-dimensional feature map is projected into a low-dimensional feature map through feature transformation, thereby reducing the dimensionality of the feature map.
- the dimension of the feature map may mean the number of channels of the feature map described above with reference to FIGS. 9 to 11 .
- feature transformation may be performed based on dimensionality reduction techniques, such as Principle Component Analysis (PCA).
- PCA Principle Component Analysis
- FIG. 12 is a diagram illustrating a PCA-based feature conversion process.
- a feature map including N channels (f 0 to f N-1 ) each having a size of WxH may be obtained by executing a neural network operation using a source image/video as an input (1210). ).
- principal components (C 0 to C n-1 ) may be obtained by performing a PCA operation on the obtained feature maps (f 0 to f N-1 ) (1220).
- n principal components ( C 0 to C n ⁇ 1 ) can be obtained.
- the dimension reduction effect of the feature map may decrease.
- the performance of the feature map-based task can be further improved.
- Arbitrary feature map data fx represented by WxH pixels may be projected onto the main component Cx and expressed as n coefficient values P x(0) to P x(n-1) (1230). ). At this time, n may be greater than or equal to 1 and less than or equal to WxH. Accordingly, feature map data fx having WxH dimensions may be converted into n-dimensional data.
- a predetermined projection matrix e.g., eigenvector, transformation matrix, etc.
- a predetermined projection matrix e.g., eigenvector, transformation matrix, etc.
- feature transformation may be performed based on a general-purpose dimension reduction technique that is not dependent on input data.
- a feature data set for generating a transformation matrix may be configured from a predetermined input data set including video/video.
- a transformation matrix may be referred to as a feature transformation matrix.
- 13 to 15 are diagrams for explaining a feature data set configuration method according to an embodiment of the present disclosure.
- FIG. 13 schematically illustrates a method of constructing a feature data set.
- the feature extraction network 1310 may extract a feature map including a plurality of features from the input data set DSi. Also, the feature data set generator 1320 may configure the feature data set DSf by processing the extracted feature map into a form usable for learning. In an embodiment, the feature data set generator 1320 may configure the feature data set DSf by selecting only features necessary for performing a specific task based on the task result TRi.
- the feature data set generator 1420 may configure (or generate) a feature data set DSf based on the input data set DSi and the label information TRi.
- the label information TRi may mean a result of performing a specific task using the input data set DSi (ie, task result).
- the label information TRi may include information about a region of interest (ROI) region in which a detected object in an image exists.
- ROI region of interest
- the feature data set generator 1420 may configure the feature data set DSf by selecting some features from the feature map extracted from the input data set DSi based on the label information TRi. For example, the feature data set generator 1420 may configure the feature data set DSf using only the features of the ROI area. Meanwhile, unlike in FIG. 14 , when the label information TRi of the input data set DSi is not provided, the feature data set generator 1420 generates some features in the feature map based on the distribution characteristics or importance of the features. By selecting them, a feature data set DSf may be configured.
- the feature data set generator may construct a feature data set DSf by processing features acquired from the input data set DSi into a form that is easy to learn. For example, the feature data set generator converts a 2-dimensional feature having a width of r and a length of c into a 1-dimensional column vector having a size of r c (1510), and inputs the feature data set DSf. can (1520).
- the feature data set generator may select some features from the feature map, process the selected features, and input the selected features to the feature data set DSf. Meanwhile, according to embodiments, at least a part of the selection process of FIG. 14 and the processing process of FIG. 15 may be omitted.
- the feature data set generator may select some features from the feature map and input the selected features to the feature data set DSf without a separate processing process.
- the feature data set generator may process all features of the feature map and input them into the feature data set DSf without a separate selection process.
- the feature data set generator may input all features of the feature map into the feature data set DSf without a separate selection and processing process.
- the generated feature data set DSf may be used as training data for generating a feature transformation matrix.
- 16 to 18 are diagrams for explaining a method for generating a feature transformation matrix according to an embodiment of the present disclosure.
- 16 schematically illustrates a method of generating a feature transformation matrix by performing feature transformation training.
- the feature transformation matrix generator 1610 performs feature transformation training using a feature data set DSf to generate a feature transformation matrix (e.g., eigenvectors) and matrix information (e.g., eigenvalues, applicable tasks). type, etc.) can be created.
- a feature transformation matrix e.g., eigenvectors
- matrix information e.g., eigenvalues, applicable tasks. type, etc.
- the type of task to which the feature transformation matrix can be applied may vary according to the attribute of the feature data set DSf. For example, when the feature data set DSf includes only features for performing a specific task, a feature conversion matrix generated based on the corresponding feature data set may perform a function of converting only information necessary for performing the corresponding task.
- transformation means as described above, defining a dimension capable of projecting information necessary for performing a specific task, and projecting feature information of a high dimension to a predefined low dimension.
- information necessary for the task is effectively projected into a predefined low dimension, and information unnecessary for the task may not be effectively projected into a predefined low dimension.
- the feature transformation matrix can perform a mask function of feature information, and through this, unnecessary information is removed and only information necessary for performing a specific task is encoded, thereby further improving compression efficiency.
- the feature transformation matrix and matrix information generated by the feature transformation matrix generator 1610 may be maintained/managed by the feature transformation matrix manager 1620.
- the feature transformation matrix manager 1620 may store a feature transformation matrix and matrix information in a predetermined storage space and provide related information to an encoder and/or a decoder upon request.
- the feature transformation matrix manager 1620 may be implemented as a physical or logical entity external to the encoder and decoder.
- the feature transformation matrix manager 1620 is an external device and may be implemented using at least one hardware or software module, or a combination thereof.
- the feature transformation matrix generator 1610 and the feature transformation matrix manager 1620 may be integrally implemented as one entity.
- 17 specifically illustrates a method of performing feature transformation training based on PCA.
- the feature transformation matrix generator 1710 may obtain an average value ⁇ of the feature data set DSf (see Equation 1). Also, the feature transformation matrix generator 1710 may obtain a covariance matrix C based on the average value ⁇ of the feature data set DSf (see Equation 2). The feature transformation matrix generator 1710 may generate a feature transformation matrix by calculating eigenvectors and eigenvalues of the obtained covariance matrix C.
- the eigenvector may include information about a dimension onto which feature information is projected, and the eigenvalue may indicate the amount of information included in the corresponding eigenvector.
- 18 shows a distribution range of original feature map data that can be expressed according to the number of principal components. Referring to FIG. 18 , as the number of principal components increases, the cumulative variance approaches 1.0, and it can be confirmed that the variance of the original feature map data can be expressed more accurately. Since the variance of the original feature map data according to the number of principal components can be known through the eigenvalue, an appropriate number of principal components can be determined through this.
- the feature transformation matrix generated according to the first embodiment of the present disclosure may be universally used regardless of input data (eg, video source).
- the feature transformation method according to the first embodiment of the present disclosure may be different from existing dimensionality reduction techniques dependent on input data. Accordingly, unlike conventional dimensionality reduction techniques, there is no need to encode/decode feature transformation matrices for each input data, and like general transformation techniques (e.g., DCT), as long as the encoder and decoder have the same feature transformation matrix in advance, Suffice. As a result, encoding/decoding efficiency can be further improved.
- general transformation techniques e.g., DCT
- 19 is a diagram schematically illustrating an encoder/decoder structure according to an embodiment of the present disclosure.
- an encoder 1910 may encode a feature (or feature map) by performing feature transformation based on a feature transformation matrix.
- the feature transformation matrix performs a function of reducing the dimensionality of the feature map, and may be a general-purpose transformation matrix independent of input data as described above with reference to FIGS. 16 to 18 .
- the feature transformation matrix may be pre-generated based on a predetermined feature data set and maintained/managed by the feature transformation matrix manager 1930.
- the encoder 1910 may obtain a feature transformation matrix from the feature transformation matrix manager 1930 for feature transformation. Accordingly, since it is not necessary to generate a feature transformation matrix for each input data, complexity can be reduced. In addition, since it is not necessary to separately encode a feature transformation matrix and matrix information used for feature transformation, encoding/decoding efficiency can be further improved.
- the encoder 1910 may generate a bitstream by encoding projection component information.
- Projection component information may include a principal component generated through feature transformation and information related to the principal component.
- the main component-related information may include information about the size and use (e.g., applicable task type, etc.) of the main component.
- An example of a syntax structure including projection component information is shown in Table 1.
- a PCA_Data_coding function including projection component information may be called within feature coding syntax (feature_coding).
- principal components principal_components
- principal component-related information information_of_component
- feature transformation may be performed based on a general-purpose feature transformation matrix.
- a general-purpose feature transformation matrix may be created in advance based on a predetermined feature data set and maintained/managed by a feature transformation matrix manager. Accordingly, since the encoder and the decoder do not need to separately generate/manage feature transformation matrices, complexity can be reduced and encoding/decoding efficiency can be further improved.
- VCM in addition to machine tasks such as object detection, hybrid tasks in which human vision and machine tasks are mixed may be targeted. In this case, essential information for human vision may be included in the non-ROI area. Therefore, in order to prevent performance degradation of the hybrid task, it is necessary to create/manage a feature transformation matrix for the non-ROI area separately from the feature transformation matrix for the ROI area.
- a plurality of feature transformation matrices may be used.
- a plurality of feature transformation matrices may be generated by performing feature transformation training using different feature data sets.
- the plurality of feature transformation matrices are general-purpose transformation matrices that are independent of input data, and their basic properties may be the same as those of the first embodiment described above with reference to FIGS. 13 to 18 .
- a feature transformation matrix and a feature transformation method using the same according to Example 2 will be described in detail, focusing on differences from Example 1.
- 20 and 21 are diagrams for explaining a method of generating a feature data set according to an embodiment of the present disclosure.
- FIG. 20 shows a method of constructing individual feature data sets for each of an ROI area and a non-ROI area.
- the feature data set generator 2020 may construct a feature data set DSf x based on an input data set DSi and label information TRi.
- the label information TRi may mean a result of performing a specific task using the input data set DSi.
- Features extracted from the input data set DSi may be grouped based on the label information TRi and classified according to feature types. For example, when the label information TRi includes information on an ROI region and a non-ROI region, features extracted from the input data set DSi may be classified into ROI features and non-ROI features.
- the label information TRi includes information about the first ROI area where a human face is detected, the second ROI area where text is detected, and the non-ROI area, features extracted from the input data set DSi are It can be classified into a first ROI feature, a second ROI feature, and a non-ROI feature.
- the feature data set generator 2020 may configure a plurality of feature data sets DSf x by classifying features extracted from the input data set DSi according to the aforementioned feature types. For example, the feature data set generator 2020 may construct an ROI feature data set using only ROI features among features extracted by the feature extraction network 2010. Also, the feature data set generator 2020 may construct a non-ROI feature data set using only non-ROI features among features extracted by the feature extraction network 2010.
- 21 shows a method of constructing a feature data set by processing features.
- the feature data set generator processes features obtained from the input data set into a form that is easy to learn for each feature type (2110) (eg, data structure change) to generate a plurality of feature data sets (DSf x ) can be configured (2120).
- the feature data set generator may construct an ROI feature data set (DSf 0 ) by converting 2-dimensional ROI features having a width of r and a length of c into a 1-dimensional column vector having a size of r c. .
- the feature data set generator constructs a non-ROI feature data set (DSf 1 ) by converting 2-dimensional non-ROI features having a width of r and a length of c into a 1-dimensional column vector having a size of r c.
- can 21 shows an example in which the ROI feature data set (DSf 0 ) and the non-ROI feature data set (DSf 1 ) have the same size (or number), but the second embodiment of the present disclosure is not limited thereto. That is, according to embodiments, at least some of the plurality of feature data sets may be configured to have different sizes.
- the plurality of generated feature data sets DSf x may be used as training data for generating different feature transformation matrices.
- 22 is a diagram for explaining a method of generating a plurality of feature transformation matrices according to an embodiment of the present disclosure. 22 schematically illustrates a method of generating a plurality of feature transformation matrices by performing feature transformation training.
- the feature transformation matrix generator 2210 may generate a plurality of feature transformation matrices and matrix information by performing feature transformation training using a plurality of feature data sets DSf x .
- the feature transformation matrix generator 2220 may generate an ROI feature transformation matrix and ROI matrix information by performing feature transformation training using the ROI feature data set.
- the feature transformation matrix generator 2210 may generate a non-ROI feature transformation matrix and non-ROI matrix information by performing feature transformation training using the non-ROI feature data set.
- the matrix information may include information about transformation coefficients (eg, eigenvectors), variance (eg, eigenvalues), and purpose (or task type) (eg, object detection) of each feature transformation matrix. .
- a plurality of feature transformation matrices and matrix information generated by the feature transformation matrix generator 2210 may be maintained/managed by the feature transformation matrix manager 2220 .
- the feature transformation matrix manager 2220 stores a plurality of feature transformation matrices and matrix information in a predetermined storage space, and upon request, sends any one of the plurality of feature transformation matrices and the matrix information to an encoder and an encoder. /or can be provided to the decoder.
- the plurality of feature transformation matrices generated according to the second embodiment of the present disclosure may be universally used regardless of input data (eg, video source). As a result, unlike conventional dimension reduction techniques, it is not necessary to encode/decode feature transformation matrices for each input data, so that encoding/decoding efficiency can be further improved. Meanwhile, according to the second embodiment of the present disclosure, in that a plurality of feature transformation matrices are provided, it may be different from the first embodiment in which a single feature transformation matrix is provided. Accordingly, since any one of a plurality of feature transformation matrices can be selectively used according to the purpose/type of the task, multi-task support can be made possible.
- 23 is a diagram schematically illustrating an encoder/decoder structure according to an embodiment of the present disclosure.
- an encoder 2310 may encode a feature (or feature map) by performing feature transformation based on a feature transformation matrix.
- the feature transformation matrix performs a function of reducing the dimensionality of the feature map, and as described above, it may be a general-purpose transformation matrix independent of input data.
- the encoder 2310 may select one of a plurality of feature transformation matrices maintained/managed by the feature transformation matrix manager 2330 to perform feature transformation.
- the encoder 2310 may select a feature transformation matrix based on a result of comparing an error between a feature reconstructed by each feature transformation matrix and an original feature. A specific example thereof is shown in Table 2.
- P roi may mean a feature transformation matrix for an ROI feature, that is, an ROI feature transformation matrix
- P non_roi may mean a feature transformation matrix for a non-ROI feature, that is, a non-ROI feature transformation matrix
- p roi and p non_roi may mean coefficients obtained by each feature transformation matrix.
- P roi and P non_roi can be eigenvectors for each feature (in this case, they can be part of eigenvectors rather than all eigenvectors), and p roi and p non_roi are eigenvectors It may be a principal component extracted through a vector.
- u' roi and u' non_roi may mean input features reconstructed through inverse transformation of p roi and p non_roi .
- a feature transformation matrix with a smaller error can be selected for feature transformation.
- the encoder 2310 may encode a matrix index representing the selected feature transformation matrix into the bitstream.
- An example of matrix index setting is shown in Table 3.
- the matrix index of the ROI feature for the object detection task may be set to 0, the matrix index of the ROI feature for the face recognition task may be set to 1, and the matrix index of the non-ROI feature may be set to 2.
- the matrix index of the non-ROI feature may be set to 0, the matrix index of the ROI feature for the object detection task may be set to 1, and the matrix index of the ROI feature for the face recognition task may be set to 2.
- a larger number e.g., 4
- a larger number of matrix indices may be set by subdividing the object detection task by object type.
- matrix indices can be set/derived in various ways.
- matrix indices may be set by dividing into ROI and non-ROI.
- the matrix index may be separately set for each task type.
- the matrix index may be set separately for each task group.
- matrix indices may be derived according to a predetermined method without being separately encoded/decoded. For example, matrix indices may be derived based on side information such as average values of features. In addition, matrix indices may be derived based on matrix indices of surrounding features.
- matrix indices of neighboring features may be used to encode/decode matrix indices of the current feature.
- the matrix index of the current feature may be encoded/decoded as a difference between matrix indices of neighboring features.
- the matrix index may be set to represent the selected feature transformation matrix step by step.
- the ROI may be additionally classified according to the task type based on the second flag/index.
- tasks may be additionally classified according to task types based on the fourth flag/index.
- the matrix index may be set in 2-steps according to a predetermined classification criterion.
- the matrix index may be divided/set with more steps (e.g., 3-step, 4-step) than this.
- matrix indices may be encoded using various binarization techniques such as FLC, unary, truncated unary, exponential golomb, and golomb rice.
- matrix indices may be coded using various entropy coding techniques such as variable length coding, Huffman coding, and arithmetic coding.
- surrounding information e.g., matrix index information of neighboring coding units
- matrix indices may be differently defined for each feature coding unit.
- An example of a feature coding unit is shown in Table 4.
- a feature coding unit may include a sequence level, a feature set (or feature map) group, and a feature set and feature coding unit.
- the sequence level may be subdivided into whole sequence units and partial sequence units.
- Tables 5 to 9 exemplarily show syntaxes for encoding information about a feature transformation matrix.
- sequence header may include syntax elements AdaptiveFeatureTransform_flag and AdaptiveFeatureTransform_Unit.
- the syntax element AdaptiveFeatureTransform_flag may indicate whether a plurality of feature transformation matrices are used.
- AdaptiveFeatureTransform_Unit may indicate a feature coding unit to which a feature transformation matrix is applied.
- AdaptiveFeatureTransform_Unit of the first value e.g., 0
- AdaptiveFeatureTransform_Unit of the second value e.g., 1
- AdaptiveFeatureTransform_Unit of the third value e.g., 2)
- AdaptiveFeatureTransform_Unit of a fourth value e.g., 3
- AdaptiveFeatureTransform_Unit can be encoded/signaled only when AdaptiveFeatureTransform_flag has a second value (e.g., 1).
- sequence header may include syntax elements AdaptiveFeatureTransform_flag and Sequnce_level.
- Sequence_level may define that the feature transformation matrix is determined at the sequence level. Sequence_level can be encoded/signaled only when AdaptiveFeatureTransform_flag has the second value (e.g., 1).
- the GOF header (GOF_header) may include a syntax element GOF_level.
- the syntax element GOF_level may define that the feature transformation matrix is determined at the GOF level.
- GOF_level can be encoded/signaled only when AdaptiveFeatureTransform_flag of Table 4 or Table 5 has the second value (e.g., 1).
- the featureset header may include a syntax element, Featureset_level.
- the syntax element Featureset_level may define that a feature transformation matrix is determined at a feature set level.
- Featureset_level can be coded/signaled only when AdaptiveFeatureTransform_flag of Table 4 or Table 5 has a second value (e.g., 1).
- the PCA_Data_coding function may be called based on the value of the aforementioned syntax element AdaptiveFeatureTransform. Specifically, when AdaptiveFeatureTransform has a second value (e.g., 1) (ie, when a plurality of feature transformation matrices are used), the principal components (principal_components), principal component related information (information_of_component), and matrix index (Matrix_index) are called and input.
- the PCA_Data_coding function can be called with the value.
- the PCA_Data_coding function uses the principal components (principal_components) and principal component related information (information_of_component) as call input values. can be called
- feature transformation may be performed based on a plurality of universal feature transformation matrices.
- a plurality of universal feature transformation matrices may be generated in advance based on a plurality of feature data sets and maintained/managed by a feature transformation matrix manager.
- a general-purpose feature transformation matrix is used, it is unnecessary for an encoder and a decoder to separately generate/manage a feature transformation matrix, so complexity can be reduced and encoding/decoding efficiency can be further improved.
- any one of a plurality of feature transformation matrices can be selectively used according to the task purpose/type, multi-task support can be made possible.
- 24 is a diagram for explaining a method for generating a feature transformation matrix according to an embodiment of the present disclosure.
- FIG. 24 schematically illustrates a method of generating a feature transformation matrix by clustering a feature data set.
- features may be extracted from input data, eg, a source image, by a feature extraction network.
- feature data sets may be generated from extracted features by a feature data set generator.
- the extracted features may be clustered and then divided into predetermined units for feature transformation training. Also, after the divided features are clustered, they may be processed into a form that is easy to learn.
- the feature data set generator or the feature transformation matrix generator determines how many groups (or clusters) to cluster the feature data sets into.
- the number of feature transformation matrices may increase in proportion to the number of groups (or clusters).
- feature transformation performance can be improved, but storage costs inevitably increase because more feature transformation matrices need to be stored.
- overall coding performance may deteriorate.
- feature data sets may be classified and clustered based on the determined number of groups.
- a feature transformation matrix may be generated for each generated group by the feature transformation matrix generator.
- the feature transformation matrix manager may maintain/manage the generated feature transformation matrix.
- 25 is a diagram illustrating an example of clustering feature data sets according to an embodiment of the present disclosure.
- feature data sets DSf may be classified into 8 groups (or clusters) based on a predetermined clustering technique, for example, a K-mean clustering technique. At this time, each group may be distinguished based on predetermined group information, for example, average and variance.
- the encoding device may determine which group the current feature belongs to based on the group information, and determine a feature transformation matrix to be used for the current feature based on the determination result. Meanwhile, since information for dimension restoration (e.g., an average value, etc.) may be included in principal component related information (Information_of_principal component), the decoding apparatus may infer and use a feature transformation matrix used in encoding based on the corresponding information.
- Information_of_principal component principal component related information
- 26 is a flowchart illustrating a method of determining a feature transformation matrix by a decoding apparatus according to an embodiment of the present disclosure.
- the decoding apparatus may parse Matrix_index_coded_flag obtained from the bitstream (S2610).
- Matrix_index_coded_flag may indicate whether a feature transformation matrix index (e.g., Matrix_index) is coded.
- Matrix_index_coded_flag of a first value e.g., 0 or False
- Matrix_index_coded_flag of the second value e.g., 1 or True
- the decoding device may determine whether Matrix_index_coded_flag is a second value (e.g., 1 or True) (S2620).
- the decoding apparatus may calculate (or derive) a feature transformation matrix index according to a predetermined rule (S2630). Also, the decoding apparatus may determine a feature transformation matrix for the current feature based on the calculated feature transformation matrix index. For example, the decoding apparatus may derive a feature transformation matrix based on information (e.g., an average value, etc.) for dimensional reconstruction included in information_of_principal component.
- a predetermined rule e.g., 0 or False
- the decoding apparatus may parse the feature transformation matrix index (e.g., Matrix_index) obtained from the bitstream (S2640). . Also, the decoding apparatus may determine a feature transformation matrix for the current feature based on the parsed feature transformation matrix index.
- the feature transformation matrix index may be encoded based on feature transformation matrix index information of neighboring features.
- 27 and 28 are diagrams for explaining an MPM encoding method of a feature transformation matrix index according to an embodiment of the present disclosure.
- the MPM encoding method of the feature transformation matrix index may be the same as/similar to that of an existing video codec, for example, the MPM encoding method of the Versatile Video Codec (VVC) standard.
- FIG. 28 is a flowchart illustrating a method of determining a feature transformation matrix by a decoding apparatus according to an embodiment of the present disclosure.
- a description of overlapping contents with the method of FIG. 26 will be omitted.
- the decoding apparatus may parse Matrix_index_coded_flag obtained from the bitstream (S2810).
- the decoding device may determine whether Matrix_index_coded_flag is a second value (e.g., 1 or True) (S2820).
- the decoding apparatus may calculate (or derive) a feature transformation matrix index according to a predetermined rule (S2830). Also, the decoding apparatus may determine a feature transformation matrix for the current feature based on the calculated feature transformation matrix index (S2830). For example, the decoding apparatus may derive a feature transformation matrix based on information (e.g., a mean value, etc.) for dimensional reconstruction included in principal component related information (Information_of_principal component).
- information e.g., a mean value, etc.
- MPM_flag may indicate whether a feature transformation matrix for a current feature exists in a Most Probable Matrix (MPM) list. For example, MPM_flag of a first value (e.g., 0 or False) may indicate that the feature transformation matrix for the current feature does not exist in the MPM list. Alternatively, MPM_flag of a second value (e.g., 1 or True) may indicate that the feature transformation matrix for the current feature exists in the MPM list.
- MPM_flag of a first value e.g., 0 or False
- MPM_flag of a second value e.g., 1 or True
- the decoding device may parse the MPM index (e.g., MPM_index) (S2850). Also, the decoding apparatus may determine a feature transformation matrix for the current feature based on the parsed MPM index.
- the decoding apparatus may parse a feature transformation matrix index (e.g., Matrix_index) (S2860). Also, the decoding apparatus may determine a feature transformation matrix for the current feature based on the parsed feature transformation matrix index.
- a feature transformation matrix index e.g., Matrix_index
- a feature transformation matrix may be determined using predetermined flag information (e.g., Matrix_index_coded_flag, MPM_flag, etc.). Accordingly, signaling overhead can be reduced and encoding/decoding efficiency can be further improved.
- Embodiment 4 of the present disclosure provides a method of utilizing the PCA technique for feature data compression.
- the encoding apparatus may determine the number of principal components that can optimally represent feature data to be encoded. At this time, matters to be considered in determining the optimal number of principal components include the size of information related to principal component analysis (e.g., average and principal component feature data, principal component coefficients for each feature) to be transmitted to the decoding device, and original features according to the number of principal components. There may be predictive accuracy of the data and the like.
- principal component analysis e.g., average and principal component feature data, principal component coefficients for each feature
- Equation 1 a predicted value Pred x of the feature map data fx may be obtained.
- ⁇ denotes an average of all feature map data
- P x(i) denotes a coefficient projected to each principal component
- Ci denotes each principal component.
- the residual value (Resid) of the feature map data (fx) may be obtained by subtracting the predicted value (Pred x ), which is the restored feature map data, from the original feature map data.
- the encoding device may generate a bitstream by encoding the residual value (Resid) (ie, encoding the residual).
- the decoding apparatus may decode the feature map data fx based on the reconstructed residual value Resid. For example, the decoding apparatus may reconstruct the residual value (Resid) of the feature map data (fx) based on the residual signal obtained from the bitstream. Also, the decoding apparatus may reconstruct the predicted value (Pred x ) of the feature map data (fx) according to Equation 1. Also, the decoding apparatus may decode the feature map data fx by adding the reconstructed residual value Resid and the predicted value Pred x .
- Table 11 shows an example of feature coding syntax (feature_coding) according to the fourth embodiment.
- the PCA mode may mean a mode for predicting feature map data using the above-described PCA technique.
- the PCA_Data_coding function may be called by using principal components (principal_components) and principal component related information (information_of_component) as call input values.
- principal component data may be transmitted.
- a syntax element skip_channel[i] may be encoded in the feature coding syntax (feature_coding).
- skip_channel[i] may be flag information indicating whether skip mode is applied for each channel of feature map data. For example, skip_channel[i] of a first value (e.g., 0 or False) may indicate that residual data of feature map data is encoded for the i-th channel (ie, skip mode is not applied).
- skip_channel[i] of the second value e.g., 1 or True
- skip_channel[i] of the second value e.g., 1 or True
- skip_channel[i] is the first value (e.g., 0 or False)
- the resid_data_coding function for transmitting residual data may be called within the feature coding syntax (feature_coding).
- feature_coding the second value (e.g., 1 or True)
- residual data is not transmitted separately, and the decoding apparatus can use the prediction value reconstructed based on the PCA prediction data as reconstructed feature map data.
- VVC Versatile Video Codec
- FIG. 29 is a flowchart illustrating a feature information encoding method according to an embodiment of the present disclosure.
- the feature information encoding method of FIG. 29 may be performed by the encoding apparatus of FIG. 7 .
- the encoding device may obtain at least one feature map of the first image (S2910).
- the first image may refer to a video/image source generated by the source image generator.
- the source image generator may be an independent external device (e.g., camera, camcorder, etc.) implemented to enable communication with the encoding device.
- the source image generator may be an internal device (e.g., an image sensor module, etc.) implemented to perform limited functions such as video/video capture.
- a feature map may mean a set of features (ie, a feature set) extracted from an input image using a feature extraction method based on an artificial neural network (e.g., CNN, DNN, etc.).
- feature map extraction may be performed by a feature extraction network external to an encoding device.
- “obtaining a feature map” may mean receiving a feature map from a feature extraction network.
- feature map extraction may be performed by an encoding device.
- “obtaining a feature map” may mean extracting a feature map from the first image.
- the encoding device may determine at least one feature transformation matrix for the obtained feature map (S2920).
- the at least one feature transformation matrix may include a general-purpose feature transformation matrix commonly applied to two or more features.
- a general-purpose feature transformation matrix may be generated based on a predetermined feature data set obtained from the second image.
- the second image may mean a predetermined input data set having a task performance result (e.g., an object detection result in an object detection task) as label information.
- a general-purpose feature transformation matrix may be generated by an external device, for example, the feature transformation matrix generator described above with reference to FIG. 16 .
- the feature transformation matrix generator may generate a feature transformation matrix (e.g., eigenvectors) and matrix information (e.g., eigenvalues, applicable task types, etc.) by performing feature transformation training using the feature data set.
- the generated general-purpose feature transformation matrix may be maintained/managed by an external device, for example, the feature transformation matrix manager described above with reference to FIG. 16 .
- the feature transformation matrix manager may store the feature transformation matrix and matrix information in a predetermined storage space and provide related information to an encoder and/or a decoder upon request.
- the feature transformation matrix manager and the feature transformation matrix generator may constitute one physical or logical entity.
- the number of general-purpose feature transformation matrices used for feature transformation may be determined differently according to the type of target task. For example, when the target task is a machine task such as object detection, the number of general-purpose feature transformation matrices used for feature transformation may be only one. On the other hand, when the target task is a hybrid task in which a machine task and a human vision are mixed, the number of general-purpose feature transformation matrices used for feature transformation may be plural.
- a general-purpose feature transformation matrix may be generated by applying a predetermined dimensionality reduction algorithm, such as principal component analysis (PCA) or sparse coding algorithm, to a feature data set.
- PCA principal component analysis
- sparse coding algorithm sparse coding algorithm
- the feature data set may include a plurality of features selected (or selected) from at least one feature map of the second image. That is, the feature data set may be constructed using some features selected from among features extracted from the second image.
- the plurality of selected features may have a transformed data structure within the feature data set. That is, the data structure of the plurality of selected features may be transformed into a form that is easy to learn and then input as a feature data set.
- the feature data set may include only a plurality of region of interest (ROI) features obtained from the second image.
- ROI region of interest
- the feature data set may be individually generated for ROI features and non-ROI features obtained from the second image.
- features obtained from the second image may be clustered and included in the feature data set.
- the encoding apparatus may encode matrix index information representing the determined feature transformation matrix.
- matrix index information is as described above with reference to Table 3.
- a feature transformation matrix may be determined based on a most probable matrix (MPM) list for a current feature.
- the MPM list may include feature transformation matrices for features encoded before the current feature as MPM candidates.
- MPM candidate identical to the feature transformation matrix for the current feature exists in the MPM list
- the encoding apparatus may encode an MPM index indicating the corresponding MPM candidate.
- the decoding device can determine a feature transformation matrix for the current feature based on the MPM index obtained from the encoding device.
- the encoding apparatus may transform a plurality of features included in the feature map based on the feature transformation matrix determined in step S2920 (S2930).
- video codec techniques such as prediction, residualization, and skip mode may be used, and the details are as described above with reference to Tables 10 and 11, so a separate description is omitted. do it with
- FIG. 30 is a flowchart illustrating a feature information decoding method according to an embodiment of the present disclosure.
- the feature information decoding method of FIG. 30 may be performed by the decoding apparatus of FIG. 7 .
- the decoding apparatus may obtain at least one feature map of the first image (S3010).
- the feature map may mean feature map data compressed/encoded by an encoding device.
- Feature map data may be obtained through a bitstream.
- feature map data and additional information required for feature map reconstruction may be transmitted through different bitstreams.
- the decoding apparatus may determine at least one feature transformation matrix for the acquired feature map (S3020).
- the at least one feature transformation matrix may include a general-purpose feature transformation matrix commonly applied to two or more features.
- a general-purpose feature transformation matrix may be generated based on a predetermined feature data set obtained from the second image.
- the second image may mean a predetermined input data set having a task performance result (e.g., an object detection result in an object detection task) as label information.
- a general-purpose feature transformation matrix may be generated by an external device, for example, the feature transformation matrix generator described above with reference to FIG. 16 .
- the generated general-purpose feature transformation matrix may be maintained/managed by an external device, for example, the feature transformation matrix manager described above with reference to FIG. 16 .
- the number of general-purpose feature transformation matrices used for feature transformation may be determined differently according to the type of target task. For example, when the target task is a machine task such as object detection, the number of general-purpose feature transformation matrices used for feature transformation may be only one. On the other hand, when the target task is a hybrid task in which a machine task and a human vision are mixed, the number of general-purpose feature transformation matrices used for feature transformation may be plural.
- a general-purpose feature transformation matrix may be generated by applying a predetermined dimensionality reduction algorithm, such as principal component analysis (PCA) or sparse coding algorithm, to a feature data set.
- PCA principal component analysis
- sparse coding algorithm sparse coding algorithm
- the feature data set may include a plurality of features selected (or selected) from at least one feature map of the second image. That is, the feature data set may be constructed using some features selected from among features extracted from the second image.
- the plurality of selected features may have a transformed data structure within the feature data set. That is, the data structure of the plurality of selected features may be transformed into a form that is easy to learn and then input as a feature data set.
- the feature data set may include only a plurality of region of interest (ROI) features obtained from the second image.
- ROI region of interest
- the feature data set may be individually generated for ROI features and non-ROI features obtained from the second image.
- features obtained from the second image may be clustered and included in the feature data set.
- the decoding apparatus may encode matrix index information representing the determined feature transformation matrix.
- matrix index information is as described above with reference to Table 3.
- a feature transformation matrix may be determined based on a most probable matrix (MPM) list for a current feature.
- the MPM list may include feature transformation matrices for features encoded before the current feature as MPM candidates.
- the decoding apparatus can determine the feature transformation matrix for the current feature based on the MPM index obtained from the encoding apparatus.
- the decoding apparatus may inversely transform a plurality of features included in the feature map based on the feature transformation matrix determined in step S3020 (S3030).
- video codec techniques such as prediction, residualization, and skip mode may be used, and details thereof are as described above with reference to Tables 10 and 11.
- feature transformation/inverse transformation may be performed based on a general-purpose feature transformation matrix.
- a general-purpose feature transformation matrix may be created in advance based on a predetermined feature data set and maintained/managed by a feature transformation matrix manager. Accordingly, since the encoding/decoding apparatus does not need to separately generate/manage a feature transformation matrix, complexity can be reduced and encoding/decoding efficiency can be further improved.
- feature transformation may be performed based on a plurality of general-purpose feature transformation matrices. Accordingly, since any one of a plurality of feature transformation matrices can be selectively used according to the purpose/type of the task, multi-task support can be made possible.
- Exemplary methods of this disclosure are presented as a series of operations for clarity of explanation, but this is not intended to limit the order in which steps are performed, and each step may be performed concurrently or in a different order, if desired.
- other steps may be included in addition to the exemplified steps, other steps may be included except for some steps, or additional other steps may be included except for some steps.
- an image encoding device or an image decoding device that performs a predetermined operation may perform an operation (step) for confirming an execution condition or situation of the corresponding operation (step). For example, when it is described that a predetermined operation is performed when a predetermined condition is satisfied, the video encoding apparatus or the video decoding apparatus performs an operation to check whether the predetermined condition is satisfied, and then performs the predetermined operation. can be done
- various embodiments of the present disclosure may be implemented by hardware, firmware, software, or a combination thereof.
- ASICs application specific integrated circuits
- DSPs digital signal processors
- DSPDs digital signal processing devices
- PLDs programmable logic devices
- FPGAs field programmable gate arrays
- It may be implemented by a processor (general processor), controller, microcontroller, microprocessor, or the like.
- the video decoding apparatus and the video encoding apparatus to which the embodiments of the present disclosure are applied are real-time communication devices such as multimedia broadcasting transmitting and receiving devices, mobile communication terminals, home cinema video devices, digital cinema video devices, monitoring cameras, video conversation devices, and video communication.
- mobile streaming devices storage media, camcorders, video-on-demand (VoD) service providing devices, OTT video (Over the top video) devices, Internet streaming service providing devices, three-dimensional (3D) video devices, video telephony video devices, and medical It may be included in a video device or the like, and may be used to process a video signal or a data signal.
- OTT over the top video
- video devices may include game consoles, Blu-ray players, Internet-connected TVs, home theater systems, smart phones, tablet PCs, digital video recorders (DVRs), and the like.
- FIG. 31 is a diagram illustrating an example of a content streaming system to which embodiments of the present disclosure may be applied.
- a content streaming system to which an embodiment of the present disclosure is applied may largely include an encoding server, a streaming server, a web server, a media storage, a user device, and a multimedia input device.
- the encoding server compresses content input from multimedia input devices such as smart phones, cameras, camcorders, etc. into digital data to generate a bitstream and transmits it to the streaming server.
- multimedia input devices such as smart phones, cameras, and camcorders directly generate bitstreams
- the encoding server may be omitted.
- the bitstream may be generated by an image encoding method and/or an image encoding apparatus to which an embodiment of the present disclosure is applied, and the streaming server may temporarily store the bitstream in a process of transmitting or receiving the bitstream.
- the streaming server transmits multimedia data to a user device based on a user request through a web server, and the web server may serve as a medium informing a user of what kind of service is available.
- the web server transmits it to the streaming server, and the streaming server can transmit multimedia data to the user.
- the content streaming system may include a separate control server, and in this case, the control server may play a role of controlling command/response between devices in the content streaming system.
- the streaming server may receive content from a media storage and/or encoding server. For example, when receiving content from the encoding server, the content may be received in real time. In this case, in order to provide smooth streaming service, the streaming server may store the bitstream for a certain period of time.
- Examples of the user devices include mobile phones, smart phones, laptop computers, digital broadcasting terminals, personal digital assistants (PDAs), portable multimedia players (PMPs), navigation devices, slate PCs, Tablet PC, ultrabook, wearable device (e.g., smartwatch, smart glass, HMD (head mounted display)), digital TV, desktop There may be computers, digital signage, and the like.
- PDAs personal digital assistants
- PMPs portable multimedia players
- navigation devices slate PCs
- Tablet PC ultrabook
- wearable device e.g., smartwatch, smart glass, HMD (head mounted display)
- digital TV desktop There may be computers, digital signage, and the like.
- Each server in the content streaming system may be operated as a distributed server, and in this case, data received from each server may be distributed and processed.
- FIG. 32 is a diagram illustrating another example of a content streaming system to which embodiments of the present disclosure may be applied.
- a task may be performed in a user terminal or an external device (e.g., a streaming server, an analysis server, etc.) You can also perform tasks in .
- a user terminal directly or through an encoding server provides a bitstream including information necessary for performing a task (e.g., information such as a task, a neural network, and/or a purpose). can be created through
- the analysis server may decode the encoded information transmitted from the user terminal (or from the encoding server) and then perform the requested task of the user terminal. At this time, the analysis server may transmit the result obtained through the task performance back to the user terminal or to another related service server (e.g., web server). For example, the analysis server may transmit a result obtained by performing a task of determining fire to a fire-related server.
- the analysis server may include a separate control server, and in this case, the control server may serve to control commands/responses between each device associated with the analysis server and the server.
- the analysis server may request desired information from the web server based on task information that the user device wants to perform and tasks that can be performed.
- the web server When the analysis server requests a desired service from the web server, the web server transmits the requested service to the analysis server, and the analysis server may transmit related data to a user terminal.
- the control server of the content streaming system may play a role of controlling commands/responses between devices in the streaming system.
- the scope of the present disclosure is software or machine-executable instructions (eg, operating systems, applications, firmware, programs, etc.) that cause operations in accordance with the methods of various embodiments to be executed on a device or computer, and such software or It includes a non-transitory computer-readable medium in which instructions and the like are stored and executable on a device or computer.
- Embodiments according to the present disclosure may be used to encode/decode feature information.
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Multimedia (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Signal Processing (AREA)
- Computer Vision & Pattern Recognition (AREA)
- General Health & Medical Sciences (AREA)
- Biophysics (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Biomedical Technology (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
영상의 피쳐 정보를 부호화/복호화하는 방법, 장치 및 상기 부호화 방법에 의해 생성된 컴퓨터 판독 가능한 기록매체가 제공된다. 본 개시에 따른 부호화 방법은, 제1 영상에 대한 적어도 하나의 피쳐맵을 획득하는 단계, 상기 피쳐맵에 대한 적어도 하나의 피쳐 변환 행렬을 결정하는 단계, 및 상기 결정된 피쳐 변환 행렬에 기반하여 상기 피쳐맵에 포함된 복수의 피쳐들을 역변환하는 단계를 포함하되, 상기 적어도 하나의 피쳐 변환 행렬은 2 이상의 피쳐들에 대해 공통적으로 적용되는 범용의 피쳐 변환 행렬을 포함하고, 상기 범용의 피쳐 변환 행렬은 제2 영상으로부터 획득된 소정의 피쳐 데이터 셋에 기반하여 미리 생성될 수 있다.
Description
본 개시는 부호화/복호화 방법 및 장치에 관한 것으로서, 보다 상세하게는, 범용의 변환 행렬에 기반한 피쳐 정보 부호화/복호화 방법, 장치 및 본 개시의 피쳐 정보 부호화 방법/장치에 의해 생성된 비트스트림을 저장하는 기록 매체에 관한 것이다.
최근 HD(High Definition) 영상 및 UHD(Ultra High Definition) 영상과 같은 고해상도, 고품질의 영상에 대한 수요가 다양한 분야에서 증가하고 있다. 영상 데이터가 고해상도, 고품질이 될수록 기존의 영상 데이터에 비해 상대적으로 전송되는 정보량 또는 비트량이 증가하게 된다. 전송되는 정보량 또는 비트량의 증가는 전송 비용과 저장 비용의 증가를 초래한다.
이에 따라, 고해상도, 고품질 영상의 정보를 효과적으로 전송하거나 저장하고, 재생하기 위한 고효율의 영상 압축 기술이 요구된다.
본 개시는 부호화/복호화 효율이 향상된 피쳐 정보 부호화/복호화 방법 및 장치를 제공하는 것을 목적으로 한다.
또한, 본 개시는 범용의 변환 행렬에 기반하여 피쳐 변환/역변환을 수행하는 피쳐 정보 부호화/복호화 방법 및 장치를 제공하는 것을 목적으로 한다.
또한, 본 개시는 본 개시에 따른 피쳐 정보 부호화 방법 또는 장치에 의해 생성된 비트스트림을 전송하는 방법을 제공하는 것을 목적으로 한다.
또한, 본 개시는 본 개시에 따른 피쳐 정보 부호화 방법 또는 장치에 의해 생성된 비트스트림을 저장한 기록 매체를 제공하는 것을 목적으로 한다.
또한, 본 개시는 본 개시에 따른 피쳐 정보 복호화 장치에 의해 수신되고 복호화되어 영상의 복원에 이용되는 비트스트림을 저장한 기록 매체를 제공하는 것을 목적으로 한다.
본 개시에서 이루고자 하는 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급하지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
본 개시의 일 양상에 따른 영상의 피쳐 정보 복호화 방법은, 제1 영상에 대한 적어도 하나의 피쳐맵을 획득하는 단계, 상기 피쳐맵에 대한 적어도 하나의 피쳐 변환 행렬을 결정하는 단계, 및 상기 결정된 피쳐 변환 행렬에 기반하여, 상기 피쳐맵에 포함된 복수의 피쳐들을 역변환하는 단계를 포함하되, 상기 적어도 하나의 피쳐 변환 행렬은 2 이상의 피쳐들에 대해 공통적으로 적용되는 범용의 피쳐 변환 행렬을 포함하고, 상기 범용의 피쳐 변환 행렬은 제2 영상으로부터 획득된 소정의 피쳐 데이터 셋에 기반하여 미리 생성될 수 있다.
본 개시의 다른 양상에 따른 영상의 피쳐 정보 복호화 장치는, 메모리 및 적어도 하나의 프로세서를 포함하고, 상기 적어도 하나의 프로세서는, 제1 영상에 대한 적어도 하나의 피쳐맵을 획득하고, 상기 피쳐맵에 대한 적어도 하나의 피쳐 변환 행렬을 결정하며, 상기 결정된 피쳐 변환 행렬에 기반하여 상기 피쳐맵에 포함된 복수의 피쳐들을 역변환하되, 상기 적어도 하나의 피쳐 변환 행렬은 2 이상의 피쳐들에 대해 공통적으로 적용되는 범용의 피쳐 변환 행렬을 포함하고, 상기 범용의 피쳐 변환 행렬은 제2 영상으로부터 획득된 소정의 피쳐 데이터 셋에 기반하여 미리 생성될 수 있다.
본 개시의 또 다른 양상에 따른 영상의 피쳐 정보 부호화 방법은, 제1 영상에 대한 적어도 하나의 피쳐맵을 획득하는 단계, 상기 피쳐맵에 대한 적어도 하나의 피쳐 변환 행렬을 결정하는 단계, 및 상기 결정된 피쳐 변환 행렬에 기반하여, 상기 피쳐맵에 포함된 복수의 피쳐들을 변환하는 단계를 포함하되, 상기 적어도 하나의 피쳐 변환 행렬은 2 이상의 피쳐들에 대해 공통적으로 적용되는 범용의 피쳐 변환 행렬을 포함하고, 상기 범용의 피쳐 변환 행렬은 제2 영상으로부터 획득되는 소정의 피쳐 데이터 셋에 기반하여 미리 생성될 수 있다.
본 개시의 다른 양상에 따른 영상의 피쳐 정보 부호화 장치는, 메모리 및 적어도 하나의 프로세서를 포함하고, 상기 적어도 하나의 프로세서는, 제1 영상에 대한 적어도 하나의 피쳐맵을 획득하고, 상기 피쳐맵에 대한 적어도 하나의 피쳐 변환 행렬을 결정하며, 상기 결정된 피쳐 변환 행렬에 기반하여 상기 피쳐맵에 포함된 복수의 피쳐들을 변환하되, 상기 적어도 하나의 피쳐 변환 행렬은 2 이상의 피쳐들에 대해 공통적으로 적용되는 범용의 피쳐 변환 행렬을 포함하고, 상기 범용의 피쳐 변환 행렬은 제2 영상으로부터 획득된 소정의 피쳐 데이터 셋에 기반하여 미리 생성될 수 있다.
본 개시의 또 다른 양상에 따른 기록 매체는, 본 개시의 피쳐 정보 부호화 방법 또는 피쳐 정보 부호화 장치에 의해 생성된 비트스트림을 저장할 수 있다.
본 개시의 또 다른 양상에 따른 비트스트림 전송 방법은, 본 개시의 피쳐 정보 부호화 방법 또는 피쳐 정보 부호화 장치에 의해 생성된 비트스트림을 피쳐 정보 복호화 장치로 전송할 수 있다.
본 개시에 대하여 위에서 간략하게 요약된 특징들은 후술하는 본 개시의 상세한 설명의 예시적인 양상일 뿐이며, 본 개시의 범위를 제한하는 것은 아니다.
본 개시에 따르면, 부호화/복호화 효율이 향상된 피쳐 정보 부호화/복호화 방법 및 장치가 제공될 수 있다.
또한, 본 개시에 따르면, 범용의 변환 행렬에 기반하여 피쳐 변환/역변환을 수행하는 영상 부호화/복호화 방법 및 장치가 제공될 수 있다.
또한, 본 개시에 따르면, 본 개시에 따른 피쳐 정보 부호화 방법 또는 장치에 의해 생성된 비트스트림을 전송하는 방법이 제공될 수 있다.
또한, 본 개시에 따르면, 본 개시에 따른 피쳐 정보 부호화 방법 또는 장치에 의해 생성된 비트스트림을 저장한 기록 매체가 제공될 수 있다.
또한, 본 개시에 따르면, 본 개시에 따른 피쳐 정보 복호화 장치에 의해 수신되고 복호화되어 피쳐 복원에 이용되는 비트스트림을 저장한 기록 매체가 제공될 수 있다.
본 개시에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
도 1은 본 개시에 따른 실시예들이 적용될 수 있는 비디오 코딩 시스템을 개략적으로 나타낸 도면이다.
도 2는 본 개시에 따른 실시예들이 적용될 수 있는 영상 부호화 장치를 개략적으로 나타낸 도면이다.
도 3은 본 개시에 따른 실시예들이 적용될 수 있는 영상 복호화 장치를 개략적으로 나타낸 도면이다.
도 4는 본 개시의 실시예들이 적용될 수 있는 픽처 디코딩 절차를 개략적으로 나타낸 흐름도이다.
도 5는 본 개시의 실시예들이 적용될 수 있는 픽처 인코딩 절차를 개략적으로 나타낸 흐름도이다.
도 6은 코딩된 영상에 대한 계층 구조를 나타낸 도면이다.
도 7은 본 개시의 실시예들이 적용될 수 있는 VCM 시스템을 개략적으로 나타낸 도면이다.
도 8은 본 개시의 실시예들에 적용될 수 있는 VCM 파이프라인의 일 예를 나타낸 도면이다.
도 9 내지 도 11은 피쳐 추출 네트워크의 동작을 설명하기 위한 도면들이다.
도 12는 PCA 기반의 피쳐 변환 과정을 나타낸 도면이다.
도 13 내지 도 15는 본 개시의 일 실시예에 따른 피쳐 데이터 셋의 구성 방법을 설명하기 위한 도면들이다.
도 16 내지 도 18은 본 개시의 일 실시예에 따른 피쳐 변환 행렬 생성 방법을 설명하기 위한 도면들이다.
도 19는 본 개시의 일 실시예에 따른 인코더/디코더 구조를 개략적으로 나타낸 도면이다.
도 20 및 도 21은 본 개시의 일 실시예에 따른 피쳐 데이터 셋의 생성 방법을 설명하기 위한 도면들이다.
도 22는 본 개시의 일 실시예에 따른 복수의 피쳐 변환 행렬들의 생성 방법을 설명하기 위한 도면이다.
도 23은 본 개시의 일 실시예에 따른 인코더/디코더 구조를 개략적으로 나타낸 도면이다.
도 24는 본 개시의 일 실시예에 따른 피쳐 변환 행렬 생성 방법을 설명하기 위한 도면이다.
도 25는 본 개시의 일 실시예에 따른 피쳐 데이터 셋을 클러스터링한 예를 나타낸 도면이다.
도 26은 본 개시의 일 실시예에 따른 복호화 장치가 피쳐 변환 행렬을 결정하는 방법을 나타낸 흐름도이다.
도 27 및 도 28은 본 개시의 일 실시예에 따른 피쳐 변환 행렬 인덱스의 MPM 부호화 방법을 설명하기 위한 도면들이다.
도 29는 본 개시의 일 실시예에 따른 피쳐 정보 부호화 방법을 나타낸 흐름도이다.
도 30은 본 개시의 일 실시예에 따른 피쳐 정보 복호화 방법을 나타낸 흐름도이다.
도 31은 본 개시의 실시예들이 적용될 수 있는 컨텐츠 스트리밍 시스템의 일 예를 나타낸 도면이다.
도 32는 본 개시의 실시예들이 적용될 수 있는 컨텐츠 스트리밍 시스템의 다른 예를 나타낸 도면이다.
이하에서는 첨부한 도면을 참고로 하여 본 개시의 실시예에 대하여 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나, 본 개시는 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다.
본 개시의 실시예를 설명함에 있어서 공지 구성 또는 기능에 대한 구체적인 설명이 본 개시의 요지를 흐릴 수 있다고 판단되는 경우에는 그에 대한 상세한 설명은 생략한다. 그리고, 도면에서 본 개시에 대한 설명과 관계없는 부분은 생략하였으며, 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
본 개시에 있어서, 어떤 구성요소가 다른 구성요소와 "연결", "결합" 또는 "접속"되어 있다고 할 때, 이는 직접적인 연결관계뿐만 아니라, 그 중간에 또 다른 구성요소가 존재하는 간접적인 연결관계도 포함할 수 있다. 또한 어떤 구성요소가 다른 구성요소를 "포함한다" 또는 "가진다"고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 배제하는 것이 아니라 또 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
본 개시에 있어서, 제1, 제2 등의 용어는 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용되며, 특별히 언급되지 않는 한 구성요소들간의 순서 또는 중요도 등을 한정하지 않는다. 따라서, 본 개시의 범위 내에서 일 실시예에서의 제1 구성요소는 다른 실시예에서 제2 구성요소라고 칭할 수도 있고, 마찬가지로 일 실시예에서의 제2 구성요소를 다른 실시예에서 제1 구성요소라고 칭할 수도 있다.
본 개시에 있어서, 서로 구별되는 구성요소들은 각각의 특징을 명확하게 설명하기 위함이며, 구성요소들이 반드시 분리되는 것을 의미하지는 않는다. 즉, 복수의 구성요소가 통합되어 하나의 하드웨어 또는 소프트웨어 단위로 이루어질 수도 있고, 하나의 구성요소가 분산되어 복수의 하드웨어 또는 소프트웨어 단위로 이루어질 수도 있다. 따라서, 별도로 언급하지 않더라도 이와 같이 통합된 또는 분산된 실시예도 본 개시의 범위에 포함된다.
본 개시에 있어서, 다양한 실시예에서 설명하는 구성요소들이 반드시 필수적인 구성요소들을 의미하는 것은 아니며, 일부는 선택적인 구성요소일 수 있다. 따라서, 일 실시예에서 설명하는 구성요소들의 부분집합으로 구성되는 실시예도 본 개시의 범위에 포함된다. 또한, 다양한 실시예에서 설명하는 구성요소들에 추가적으로 다른 구성요소를 포함하는 실시예도 본 개시의 범위에 포함된다.
본 개시는 영상의 부호화 및 복호화에 관한 것으로서, 본 개시에서 사용되는 용어는, 본 개시에서 새롭게 정의되지 않는 한 본 개시가 속한 기술 분야에서 통용되는 통상의 의미를 가질 수 있다.
본 개시는 VVC(Versatile Video Coding) 표준 및/또는 VCM(Video Coding for Machines) 표준에 개시되는 방법에 적용될 수 있다. 또한, 본 개시는 EVC (essential video coding) 표준, AV1 (AOMedia Video 1) 표준, AVS2 (2nd generation of audio video coding standard) 또는 차세대 비디오/영상 코딩 표준(e.g., H.267 or H.268 등)에 개시되는 방법에 적용될 수 있다.
본 개시는 비디오/영상 코딩에 관한 다양한 실시예들을 제시하며, 다른 언급이 없는 한 상기 실시예들은 서로 조합되어 수행될 수도 있다.본 개시에서 "비디오(video)"는 시간의 흐름에 따른 일련의 영상(image)들의 집합을 의미할 수 있다. "영상(image)"은 AI(artificial intelligence)에 의해 생성된 정보일 수 있다. AI가 일련의 태스크를 수행하는 과정에서 사용하는 입력 정보, 정보 처리 과정 중에 발생하는 정보와 출력하는 정보가 영상(image)으로 쓰일 수 있다. "픽처(picture)"는 일반적으로 특정 시간대의 하나의 영상을 나타내는 단위를 의미하며, 슬라이스(slice)/타일(tile)은 부호화에 있어서 픽처의 일부를 구성하는 부호화 단위이다. 하나의 픽처는 하나 이상의 슬라이스/타일로 구성될 수 있다. 또한, 슬라이스/타일은 하나 이상의 CTU(coding tree unit)를 포함할 수 있다. 상기 CTU는 하나 이상의 CU로 분할될 수 있다. 타일은 픽처 내의 특정 타일 행(Tile Row) 및 특정 타일 열(Tile Column) 내에 존재하는 사각 영역으로, 복수의 CTU로 구성될 수 있다. 타일 열은 CTU들의 사각 영역으로 정의될 수 있으며, 픽쳐의 높이와 동일한 높이를 가지고, 픽쳐 파라미터 셋과 같은 비트스트림 부분으로부터 시그널링 되는 신택스 요소에 의하여 명세되는 너비를 가질 수 있다. 타일 행은 CTU들의 사각 영역으로 정의될 수 있으며, 픽쳐의 너비와 동일한 너비를 가지고, 픽쳐 파라미터 셋과 같은 비트스트림 부분으로부터 시그널링 되는 신택스 요소에 의하여 명세되는 높이를 가질 수 있다. 타일 스캔은 픽쳐를 분할하는 CTU들의 소정의 연속된 순서 지정 방법이다. 여기서, CTU들은 타일 내에서 CTU 래스터 스캔(raster scan)에 따라 연속적으로 순서를 부여받을 수 있고, 픽쳐내의 타일들은 픽쳐의 타일들의 래스터 스캔 순서에 따라 연속적으로 순서를 부여받을 수 있다. 슬라이스는 정수개의 완전한 타일들을 포함하거나, 하나의 픽쳐의 하나의 타일 내의 연속하는 정수개의 완전한 CTU 행을 포함할 수 있다. 슬라이스는 하나의 싱글 NAL 유닛에 독점적으로 포함될 수 있다. 하나의 픽처는 하나 이상의 타일 그룹으로 구성될 수 있다. 하나의 타일 그룹은 하나 이상의 타일들을 포함할 수 있다. 브릭은 픽처 내 타일 이내의 CTU행들의 사각 영역을 나타낼 수 있다. 하나의 타일은 하나 이상의 브릭(Brick)을 포함할 수 있다. 브릭은 타일 내 CTU 행들의 사각 영역을 나타낼 수 있다. 하나의 타일은 복수의 브릭으로 분할될 수 있으며, 각각의 브릭은 타일에 속한 하나 이상의 CTU행을 포함할 수 있다. 복수의 브릭으로 분할되지 않는 타일 또한 브릭으로 취급될 수 있다.
본 개시에서 "픽셀(pixel)" 또는 "펠(pel)"은 하나의 픽처(또는 영상)를 구성하는 최소의 단위를 의미할 수 있다. 또한, 픽셀에 대응하는 용어로서 "샘플(sample)"이 사용될 수 있다. 샘플은 일반적으로 픽셀 또는 픽셀의 값을 나타낼 수 있으며, 루마(luma) 성분의 픽셀/픽셀값만을 나타낼 수도 있고, 크로마(chroma) 성분의 픽셀/픽셀 값만을 나타낼 수도 있다.
일 실시예에서, 특히 VCM에 적용되는 경우, 픽셀/픽셀값은 다른 특성 및 의미를 갖는 성분들의 집합으로 구성된 픽쳐가 있을 때 각 성분들의 독립적 정보 혹은 조합, 합성, 분석을 통해 생성된 성분의 픽셀/픽셀값을 나타낼 수도 있다. 예를 들어 RGB 입력에서 R의 픽셀/픽셀값만을 나타낼 수도 있고 G의 픽셀/픽셀값만을 나타낼 수도 있고 B의 픽셀/픽셀값만을 나타낼 수도 있다. 예를 들어 R, G, B 성분을 이용해 합성된 루마(Luma) 성분의 픽셀/픽셀값만을 나타낼 수도 있다. 예를 들어 R, G, B 성분을 성분에서 분석을 통해 추출한 영상, 정보의 픽셀/픽셀 값만을 나타낼 수도 있다.
본 개시에서 "유닛(unit)"은 영상 처리의 기본 단위를 나타낼 수 있다. 유닛은 픽처의 특정 영역 및 해당 영역에 관련된 정보 중 적어도 하나를 포함할 수 있다. 하나의 유닛은 하나의 루마 블록 및 두개의 크로마(e.g., Cb, Cr) 블록을 포함할 수 있다. 유닛은 경우에 따라서 "샘플 어레이", "블록(block)" 또는 "영역(area)" 등의 용어와 혼용하여 사용될 수 있다. 일반적인 경우, MxN 블록은 M개의 열과 N개의 행으로 이루어진 샘플들(또는 샘플 어레이) 또는 변환 계수(transform coefficient)들의 집합(또는 어레이)을 포함할 수 있다. 일 실시예에서, 특히 VCM에 적용되는 경우, 유닛은 특정 태스크를 수행하기 위한 정보를 담고 있는 기본 단위를 나타낼 수 있다.
본 개시에서 "현재 블록"은 "현재 코딩 블록", "현재 코딩 유닛", "부호화 대상 블록", "복호화 대상 블록" 또는 "처리 대상 블록" 중 하나를 의미할 수 있다. 예측이 수행되는 경우, "현재 블록"은 "현재 예측 블록" 또는 "예측 대상 블록"을 의미할 수 있다. 변환(역변환)/양자화(역양자화)가 수행되는 경우, "현재 블록"은 "현재 변환 블록" 또는 "변환 대상 블록"을 의미할 수 있다. 필터링이 수행되는 경우, "현재 블록"은 "필터링 대상 블록"을 의미할 수 있다.
또한, 본 개시에서 "현재 블록"은 크로마 블록이라는 명시적인 기재가 없는 한 "현재 블록의 루마 블록"을 의미할 수 있다. "현재 블록의 크로마 블록"은 명시적으로 "크로마 블록" 또는 "현재 크로마 블록"과 같이 크로마 블록이라는 명시적인 기재를 포함하여 표현될 수 있다.
본 개시에서 "/"와 ","는 "및/또는"으로 해석될 수 있다. 예를 들어, "A/B"와 "A, B"는 "A 및/또는 B"로 해석될 수 있다. 또한, "A/B/C"와 "A, B, C"는 "A, B 및/또는 C 중 적어도 하나"를 의미할 수 있다.
본 개시에서 "또는"은 "및/또는"으로 해석될 수 있다. 예를 들어, "A 또는 B"는, 1) "A" 만을 의미하거나 2) "B" 만을 의미하거나, 3) "A 및 B"를 의미할 수 있다. 또는, 본 개시에서 "또는"은 "추가적으로 또는 대체적으로(additionally or alternatively)"를 의미할 수 있다.
비디오 코딩 시스템 개요
도 1은 본 개시에 따른 실시예들이 적용될 수 있는 비디오 코딩 시스템을 개략적으로 나타낸 도면이다.
일 실시예에 따른 비디오 코딩 시스템은 소스 디바이스(10) 및 수신 디바이스(20)를 포함할 수 있다. 소스 디바이스(10)는 부호화된 비디오(video) 및/또는 영상(image) 정보 또는 데이터를 파일 또는 스트리밍 형태로 디지털 저장매체 또는 네트워크를 통하여 수신 디바이스(20)로 전달할 수 있다.
일 실시예예 따른 소스 디바이스(10)는 비디오 소스 생성부(11), 부호화 장치(12), 전송부(13)를 포함할 수 있다. 일 실시예에 따른 수신 디바이스(20)는 수신부(21), 복호화 장치(12) 및 렌더링부(23)를 포함할 수 있다. 상기 부호화 장치(12)는 비디오/영상 부호화 장치라고 불릴 수 있고, 상기 복호화 장치(12)는 비디오/영상 복호화 장치라고 불릴 수 있다. 전송부(13)는 부호화 장치(12)에 포함될 수 있다. 수신부(21)는 복호화 장치(12)에 포함될 수 있다. 렌더링부(23)는 디스플레이부를 포함할 수도 있고, 디스플레이부는 별개의 디바이스 또는 외부 컴포넌트로 구성될 수도 있다.
비디오 소스 생성부(11)는 비디오/영상의 캡쳐, 합성 또는 생성 과정 등을 통하여 비디오/영상을 획득할 수 있다. 비디오 소스 생성부(11)는 비디오/영상 캡쳐 디바이스 및/또는 비디오/영상 생성 디바이스를 포함할 수 있다. 비디오/영상 캡쳐 디바이스는 예를 들어, 하나 이상의 카메라, 이전에 캡쳐된 비디오/영상을 포함하는 비디오/영상 아카이브 등을 포함할 수 있다. 비디오/영상 생성 디바이스는 예를 들어 컴퓨터, 타블렛 및 스마트폰 등을 포함할 수 있으며 (전자적으로) 비디오/영상을 생성할 수 있다. 예를 들어, 컴퓨터 등을 통하여 가상의 비디오/영상이 생성될 수 있으며, 이 경우 관련 데이터가 생성되는 과정으로 비디오/영상 캡쳐 과정이 갈음될 수 있다. 일 실시예에서, 비디오/영상 합성 및 생성은 AI에 의한 정보 처리 과정(AI의 입력 정보, 정보 처리 과정 중인 정보, 출력 정보) 중에 이루어 질 수 있다. 이러한 경우, 비디오/영상 캡쳐 과정에서 발생한 정보는 AI의 입력 정보로 활용될 수도 있다.
부호화 장치(12)는 입력 비디오/영상을 부호화할 수 있다. 부호화 장치(12)는 압축 및 부호화 효율을 위하여 예측, 변환, 양자화 등 일련의 절차를 수행할 수 있다. 부호화 장치(12)는 부호화된 데이터(부호화된 비디오/영상 정보)를 비트스트림(bitstream) 형태로 출력할 수 있다.
전송부(13)는 비트스트림 형태로 출력된 부호화된 비디오/영상 정보 또는 데이터를 파일 또는 스트리밍 형태로 디지털 저장매체 또는 네트워크를 통하여 수신 디바이스(20)의 수신부(21)로 전달할 수 있다. 디지털 저장 매체는 USB, SD, CD, DVD, 블루레이, HDD, SSD 등 다양한 저장 매체를 포함할 수 있다. 전송부(13)는 미리 정해진 파일 포멧을 통하여 미디어 파일을 생성하기 위한 엘리먼트를 포함할 수 있고, 방송/통신 네트워크를 통한 전송을 위한 엘리먼트를 포함할 수 있다. 수신부(21)는 상기 저장매체 또는 네트워크로부터 상기 비트스트림을 추출/수신하여 복호화 장치(12)로 전달할 수 있다.
복호화 장치(12)는 부호화 장치(12)의 동작에 대응하는 역양자화, 역변환, 예측 등 일련의 절차를 수행하여 비디오/영상을 복호화할 수 있다.
렌더링부(23)는 복호화된 비디오/영상을 렌더링할 수 있다. 렌더링된 비디오/영상은 디스플레이부를 통하여 디스플레이될 수 있다.
복호화된 비디오는 렌더링뿐만 아니라 다른 시스템에서 활용하기 위한 입력 정보로도 활용이 될 수 있다. 예를 들어, 복호화된 비디오는 AI의 태스크 수행을 위한 입력정보로 활용될 수 있다. 예를들어, 복호화된 비디오는 얼굴 인식, 행동 인식, 차선 인식 등과 같은 AI의 태스크를 수행하기 위한 입력 정보로 활용될 수 있다.
영상 부호화 장치 개요
도 2는 본 개시에 따른 실시예들이 적용될 수 있는 영상 부호화 장치를 개략적으로 나타낸 도면이다.
도 2에 도시된 바와 같이, 영상 부호화 장치(100)는 영상 분할부(110), 감산부(115), 변환부(120), 양자화부(130), 역양자화부(140), 역변환부(150), 가산부(155), 필터링부(160), 메모리(170), 인터 예측부(180), 인트라 예측부(185) 및 엔트로피 인코딩부(190)를 포함할 수 있다. 인터 예측부(180) 및 인트라 예측부(185)는 합쳐서 "예측부"라고 지칭될 수 있다. 변환부(120), 양자화부(130), 역양자화부(140), 역변환부(150)는 레지듀얼(residual) 처리부에 포함될 수 있다. 레지듀얼 처리부는 감산부(115)를 더 포함할 수도 있다.
영상 부호화 장치(100)를 구성하는 복수의 구성부들의 전부 또는 적어도 일부는 실시예에 따라 하나의 하드웨어 컴포넌트(예를 들어, 인코더 또는 프로세서)로 구현될 수 있다. 또한 메모리(170)는 DPB(decoded picture buffer)를 포함할 수 있고, 디지털 저장 매체에 의하여 구현될 수 있다.
영상 분할부(110)는 영상 부호화 장치(100)에 입력된 입력 영상(또는, 픽쳐, 프레임)을 하나 이상의 처리 유닛(processing unit)으로 분할할 수 있다- 여기서, 입력되는 영상은 이미지 센서로 획득된 통상의 영상 및/또는 AI에 의해 생성된 영상일 수 있음-. 일 예로, 상기 처리 유닛은 코딩 유닛(coding unit, CU)이라고 불릴 수 있다. 코딩 유닛은 코딩 트리 유닛(coding tree unit, CTU) 또는 최대 코딩 유닛(largest coding unit, LCU)을 QT/BT/TT (Quad-tree/binary-tree/ternary-tree) 구조에 따라 재귀적으로(recursively) 분할함으로써 획득될 수 있다. 예를 들어, 하나의 코딩 유닛은 쿼드 트리 구조, 바이너리 트리 구조 및/또는 터너리 트리 구조를 기반으로 하위(deeper) 뎁스의 복수의 코딩 유닛들로 분할될 수 있다. 코딩 유닛의 분할을 위해, 쿼드 트리 구조가 먼저 적용되고 바이너리 트리 구조 및/또는 터너리 트리 구조가 나중에 적용될 수 있다. 더 이상 분할되지 않는 최종 코딩 유닛을 기반으로 본 개시에 따른 코딩 절차가 수행될 수 있다. 최대 코딩 유닛이 바로 최종 코딩 유닛으로 사용될 수 있고, 최대 코딩 유닛을 분할하여 획득한 하위 뎁스의 코딩 유닛이 최종 코닛 유닛으로 사용될 수도 있다. 여기서 코딩 절차라 함은 후술하는 예측, 변환 및/또는 복원 등의 절차를 포함할 수 있다. 다른 예로, 상기 코딩 절차의 처리 유닛은 예측 유닛(PU: Prediction Unit) 또는 변환 유닛(TU: Transform Unit)일 수 있다. 상기 예측 유닛 및 상기 변환 유닛은 각각 상기 최종 코딩 유닛으로부터 분할 또는 파티셔닝될 수 있다. 상기 예측 유닛은 샘플 예측의 단위일 수 있고, 상기 변환 유닛은 변환 계수를 유도하는 단위 및/또는 변환 계수로부터 레지듀얼 신호(residual signal)를 유도하는 단위일 수 있다.
예측부(인터 예측부(180) 또는 인트라 예측부(185))는 처리 대상 블록(현재 블록)에 대한 예측을 수행하고, 상기 현재 블록에 대한 예측 샘플들을 포함하는 예측된 블록(predicted block)을 생성할 수 있다. 예측부는 현재 블록 또는 CU 단위로 인트라 예측이 적용되는지 또는 인터 예측이 적용되는지 결정할 수 있다. 예측부는 현재 블록의 예측에 관한 다양한 정보를 생성하여 엔트로피 인코딩부(190)로 전달할 수 있다. 예측에 관한 정보는 엔트로피 인코딩부(190)에서 인코딩되어 비트스트림 형태로 출력될 수 있다.
인트라 예측부(185)는 현재 픽처 내의 샘플들을 참조하여 현재 블록을 예측할 수 있다. 상기 참조되는 샘플들은 인트라 예측 모드 및/또는 인트라 예측 기법에 따라 상기 현재 블록의 주변(neighbor)에 위치할 수 있고, 또는 떨어져서 위치할 수도 있다. 인트라 예측 모드들은 복수의 비방향성 모드와 복수의 방향성 모드를 포함할 수 있다. 비방향성 모드는 예를 들어 DC 모드 및 플래너 모드(Planar 모드)를 포함할 수 있다. 방향성 모드는 예측 방향의 세밀한 정도에 따라, 예를 들어 33개의 방향성 예측 모드 또는 65개의 방향성 예측 모드를 포함할 수 있다. 다만, 이는 예시로서 설정에 따라 그 이상 또는 그 이하의 개수의 방향성 예측 모드들이 사용될 수 있다. 인트라 예측부(185)는 주변 블록에 적용된 예측 모드를 이용하여, 현재 블록에 적용되는 예측 모드를 결정할 수도 있다.
인터 예측부(180)는 참조 픽처 상에서 움직임 벡터에 의해 특정되는 참조 블록(참조 샘플 어레이)을 기반으로, 현재 블록에 대한 예측된 블록을 유도할 수 있다. 이 때, 인터 예측 모드에서 전송되는 움직임 정보의 양을 줄이기 위해 주변 블록과 현재 블록 간의 움직임 정보의 상관성에 기반하여 움직임 정보를 블록, 서브블록 또는 샘플 단위로 예측할 수 있다. 상기 움직임 정보는 움직임 벡터 및 참조 픽처 인덱스를 포함할 수 있다. 상기 움직임 정보는 인터 예측 방향(L0 예측, L1 예측, Bi 예측 등) 정보를 더 포함할 수 있다. 인터 예측의 경우, 주변 블록은 현재 픽처 내에 존재하는 공간적 주변 블록(spatial neighboring block)과 참조 픽처에 존재하는 시간적 주변 블록(temporal neighboring block)을 포함할 수 있다. 상기 참조 블록을 포함하는 참조 픽처와 상기 시간적 주변 블록을 포함하는 참조 픽처는 동일할 수도 있고, 서로 다를 수도 있다. 상기 시간적 주변 블록은 동일 위치 참조 블록(collocated reference block), 동일 위치 CU(colCU) 등의 이름으로 불릴 수 있다. 상기 시간적 주변 블록을 포함하는 참조 픽처는 동일 위치 픽처(collocated picture, colPic)라고 불릴 수 있다. 예를 들어, 인터 예측부(180)는 주변 블록들을 기반으로 움직임 정보 후보 리스트를 구성하고, 상기 현재 블록의 움직임 벡터 및/또는 참조 픽처 인덱스를 도출하기 위하여 어떤 후보가 사용되는지를 지시하는 정보를 생성할 수 있다. 다양한 예측 모드를 기반으로 인터 예측이 수행될 수 있으며, 예를 들어 스킵 모드와 머지 모드의 경우에, 인터 예측부(180)는 주변 블록의 움직임 정보를 현재 블록의 움직임 정보로 이용할 수 있다. 스킵 모드의 경우, 머지 모드와 달리 레지듀얼 신호가 전송되지 않을 수 있다. 움직임 정보 예측(motion vector prediction, MVP) 모드의 경우, 주변 블록의 움직임 벡터를 움직임 벡터 예측자(motion vector predictor)로 이용하고, 움직임 벡터 차분(motion vector difference) 및 움직임 벡터 예측자에 대한 지시자(indicator)를 부호화함으로써 현재 블록의 움직임 벡터를 시그널링할 수 있다. 움직임 벡터 차분은 현재 블록의 움직임 벡터와 움직임 벡터 예측자 간의 차이를 의미할 수 있다.
예측부는 후술하는 다양한 예측 방법 및/또는 예측 기법을 기반으로 예측 신호를 생성할 수 있다. 예를 들어, 예측부는 현재 블록의 예측을 위해 인트라 예측 또는 인터 예측을 적용할 수 있을 뿐 아니라, 인트라 예측과 인터 예측을 동시에 적용할 수 있다. 현재 블록의 예측을 위해 인트라 예측과 인터 예측을 동시에 적용하는 예측 방법은 combined inter and intra prediction (CIIP)라고 불릴 수 있다. 또한, 예측부는 현재 블록의 예측을 위해 인트라 블록 카피(intra block copy, IBC)를 수행할 수도 있다. 인트라 블록 카피는 예를 들어 SCC(screen content coding) 등과 같이 게임 등의 컨텐츠 영상/동영상 코딩을 위하여 사용될 수 있다. IBC는 현재 블록으로부터 소정의 거리만큼 떨어진 위치의 현재 픽처 내 기복원된 참조 블록을 이용하여 현재 블록을 예측하는 방법이다. IBC가 적용되는 경우, 현재 픽처 내 참조 블록의 위치는 상기 소정의 거리에 해당하는 벡터(블록 벡터)로서 부호화될 수 있다. IBC는 기본적으로 현재 픽처 내에서 예측을 수행하나, 현재 픽처 내에서 참조 블록을 도출하는 점에서, 인터 예측과 유사하게 수행될 수 있다. 즉 IBC는 본 개시에서 설명되는 인터 예측 기법들 중 적어도 하나를 이용할 수 있다.
예측부를 통해 생성된 예측 신호는 복원 신호를 생성하기 위해 이용되거나 레지듀얼 신호를 생성하기 위해 이용될 수 있다. 감산부(115)는 입력 영상 신호(원본 블록, 원본 샘플 어레이)로부터 예측부에서 출력된 예측 신호(예측된 블록, 예측 샘플 어레이)를 감산하여 레지듀얼 신호(residual signal, 잔여 블록, 잔여 샘플 어레이)를 생성할 수 있다. 생성된 레지듀얼 신호는 변환부(120)로 전송될 수 있다.
변환부(120)는 레지듀얼 신호에 변환 기법을 적용하여 변환 계수들(transform coefficients)을 생성할 수 있다. 예를 들어, 변환 기법은 DCT(Discrete Cosine Transform), DST(Discrete Sine Transform), KLT(Karhunen-Loeve Transform), GBT(Graph-Based Transform), 또는 CNT(Conditionally Non-linear Transform) 중 적어도 하나를 포함할 수 있다. 여기서, GBT는 픽셀 간의 관계 정보를 그래프로 표현한다고 할 때 이 그래프로부터 얻어진 변환을 의미한다. CNT는 이전에 복원된 모든 픽셀(all previously reconstructed pixel)을 이용하여 예측 신호를 생성하고 그에 기반하여 획득되는 변환을 의미한다. 변환 과정은 정사각형의 동일한 크기를 갖는 픽셀 블록에 적용될 수도 있고, 정사각형이 아닌 가변 크기의 블록에도 적용될 수 있다.
양자화부(130)는 변환 계수들을 양자화하여 엔트로피 인코딩부(190)로 전송할 수 있다. 엔트로피 인코딩부(190)는 양자화된 신호(양자화된 변환 계수들에 관한 정보)를 인코딩하여 비트스트림으로 출력할 수 있다. 상기 양자화된 변환 계수들에 관한 정보는 레지듀얼 정보라고 불릴 수 있다. 양자화부(130)는 계수 스캔 순서(scan order)를 기반으로 블록 형태의 양자화된 변환 계수들을 1차원 벡터 형태로 재정렬할 수 있고, 상기 1차원 벡터 형태의 양자화된 변환 계수들을 기반으로 상기 양자화된 변환 계수들에 관한 정보를 생성할 수도 있다.
엔트로피 인코딩부(190)는 예를 들어 지수 골롬(exponential Golomb), CAVLC(context-adaptive variable length coding), CABAC(context-adaptive binary arithmetic coding) 등과 같은 다양한 인코딩 방법을 수행할 수 있다. 엔트로피 인코딩부(190)는 양자화된 변환 계수들 외 비디오/이미지 복원에 필요한 정보들(예컨대 신택스 요소들(syntax elements)의 값 등)을 함께 또는 별도로 인코딩할 수도 있다. 인코딩된 정보(e.g., 인코딩된 비디오/영상 정보)는 비트스트림 형태로 NAL(network abstraction layer) 유닛 단위로 전송 또는 저장될 수 있다. 상기 비디오/영상 정보는 어댑테이션 파라미터 세트(APS), 픽처 파라미터 세트(PPS), 시퀀스 파라미터 세트(SPS) 또는 비디오 파라미터 세트(VPS) 등 다양한 파라미터 세트에 관한 정보를 더 포함할 수 있다. 또한 상기 비디오/영상 정보는 일반 제한 정보(general constraint information)를 더 포함할 수 있다. 또한 상기 비디오/영상 정보는 부호화된 정보의 생성 방법 및 사용 방법, 목적등을 포함 수 있다. 예를들어, 특히 VCM에 적용되는 경우, 상기 비디오/영상 정보는 부호화된 정보가 어떠한 AI 태스크를 수행하기 위해 부호화된 것인지를 나타내는 정보, 부호화된 정보가 어떠한 네트워크(e.g., 신경망)를 사용하여 부호화 되었는지를 나타내는 정보, 및/또는 부호화된 정보가 어떠한 용도로 부호화된 것인 지를 나타내는 정보등을 포함할 수 있다.
본 개시의 부호화 장치에서 복호화 장치로 전달/시그널링 되는 정보 및/또는 신택스 요소들은 비디오/영상 정보에 포함될 수 있다. 본 개시에서 언급된 시그널링 정보, 전송되는 정보 및/또는 신택스 요소들은 상술한 인코딩 절차를 통하여 인코딩되어 상기 비트스트림에 포함될 수 있다. 상기 비트스트림은 네트워크를 통하여 전송될 수 있고, 또는 디지털 저장매체에 저장될 수 있다. 여기서 네트워크는 방송망 및/또는 통신망 등을 포함할 수 있고, 디지털 저장매체는 USB, SD, CD, DVD, 블루레이, HDD, SSD 등 다양한 저장매체를 포함할 수 있다. 엔트로피 인코딩부(190)로부터 출력된 신호를 전송하는 전송부(미도시) 및/또는 저장하는 저장부(미도시)가 영상 부호화 장치(100)의 내/외부 엘리먼트로서 구비될 수 있고, 또는 전송부는 엔트로피 인코딩부(190)의 구성요소로서 구비될 수도 있다.
양자화부(130)로부터 출력된 양자화된 변환 계수들은 레지듀얼 신호를 생성하기 위해 이용될 수 있다. 예를 들어, 양자화된 변환 계수들에 역양자화부(140) 및 역변환부(150)를 통해 역양자화 및 역변환을 적용함으로써 레지듀얼 신호(레지듀얼 블록 or 레지듀얼 샘플들)를 복원할 수 있다.
가산부(155)는 복원된 레지듀얼 신호를 인터 예측부(180) 또는 인트라 예측부(185)로부터 출력된 예측 신호에 더함으로써 복원(reconstructed) 신호(복원 픽처, 복원 블록, 복원 샘플 어레이)를 생성할 수 있다. 스킵 모드가 적용된 경우와 같이 처리 대상 블록에 대한 레지듀얼이 없는 경우, 예측된 블록이 복원 블록으로 사용될 수 있다. 가산부(155)는 복원부 또는 복원 블록 생성부라고 불릴 수 있다. 생성된 복원 신호는 현재 픽처 내 다음 처리 대상 블록의 인트라 예측을 위하여 사용될 수 있고, 후술하는 바와 같이 필터링을 거쳐서 다음 픽처의 인터 예측을 위하여 사용될 수도 있다.
필터링부(160)는 복원 신호에 필터링을 적용하여 주관적/객관적 화질을 향상시킬 수 있다. 예를 들어 필터링부(160)는 복원 픽처에 다양한 필터링 방법을 적용하여 수정된(modified) 복원 픽처를 생성할 수 있고, 상기 수정된 복원 픽처를 메모리(170), 구체적으로 메모리(170)의 DPB에 저장할 수 있다. 상기 다양한 필터링 방법은 예를 들어, 디블록킹 필터링, 샘플 적응적 오프셋(sample adaptive offset), 적응적 루프 필터(adaptive loop filter), 양방향 필터(bilateral filter) 등을 포함할 수 있다. 필터링부(160)는 각 필터링 방법에 대한 설명에서 후술하는 바와 같이 필터링에 관한 다양한 정보를 생성하여 엔트로피 인코딩부(190)로 전달할 수 있다. 필터링에 관한 정보는 엔트로피 인코딩부(190)에서 인코딩되어 비트스트림 형태로 출력될 수 있다.
메모리(170)에 전송된 수정된 복원 픽처는 인터 예측부(180)에서 참조 픽처로 사용될 수 있다. 영상 부호화 장치(100)는 이를 통하여 인터 예측이 적용되는 경우, 영상 부호화 장치(100)와 영상 복호화 장치에서의 예측 미스매치를 피할 수 있고, 부호화 효율도 향상시킬 수 있다.
메모리(170) 내 DPB는 인터 예측부(180)에서의 참조 픽처로 사용하기 위해 수정된 복원 픽처를 저장할 수 있다. 메모리(170)는 현재 픽처 내 움직임 정보가 도출된(또는 인코딩된) 블록의 움직임 정보 및/또는 이미 복원된 픽처 내 블록들의 움직임 정보를 저장할 수 있다. 상기 저장된 움직임 정보는 공간적 주변 블록의 움직임 정보 또는 시간적 주변 블록의 움직임 정보로 활용하기 위하여 인터 예측부(180)에 전달될 수 있다. 메모리(170)는 현재 픽처 내 복원된 블록들의 복원 샘플들을 저장할 수 있고, 인트라 예측부(185)에 전달할 수 있다.
영상 복호화 장치 개요
도 3은 본 개시에 따른 실시예들이 적용될 수 있는 영상 복호화 장치를 개략적으로 나타낸 도면이다.
도 3에 도시된 바와 같이, 영상 복호화 장치(200)는 엔트로피 디코딩부(210), 역양자화부(220), 역변환부(230), 가산부(235), 필터링부(240), 메모리(250), 인터 예측부(260) 및 인트라 예측부(265)를 포함하여 구성될 수 있다. 인터 예측부(260) 및 인트라 예측부(265)를 합쳐서 "예측부"라고 지칭될 수 있다. 역양자화부(220), 역변환부(230)는 레지듀얼 처리부에 포함될 수 있다.
영상 복호화 장치(200)를 구성하는 복수의 구성부들의 전부 또는 적어도 일부는 실시예에 따라 하나의 하드웨어 컴포넌트(예를 들어 디코더 또는 프로세서)로 구현될 수 있다. 또한 메모리(170)는 DPB를 포함할 수 있고, 디지털 저장 매체에 의하여 구현될 수 있다.
비디오/영상 정보를 포함하는 비트스트림을 수신한 영상 복호화 장치(200)는 도 2의 영상 부호화 장치(100)에서 수행된 프로세스에 대응하는 프로세스를 수행하여 영상을 복원할 수 있다. 예를 들어, 영상 복호화 장치(200)는 영상 부호화 장치에서 적용된 처리 유닛을 이용하여 디코딩을 수행할 수 있다. 따라서 디코딩의 처리 유닛은 예를 들어 코딩 유닛일 수 있다. 코딩 유닛은 코딩 트리 유닛이거나 또는 최대 코딩 유닛을 분할하여 획득될 수 있다. 그리고, 영상 복호화 장치(200)를 통해 디코딩 및 출력된 복원 영상 신호는 재생 장치(미도시)를 통해 재생될 수 있다.
영상 복호화 장치(200)는 도 2의 영상 부호화 장치로부터 출력된 신호를 비트스트림 형태로 수신할 수 있다. 수신된 신호는 엔트로피 디코딩부(210)를 통해 디코딩될 수 있다. 예를 들어, 엔트로피 디코딩부(210)는 상기 비트스트림을 파싱하여 영상 복원(또는 픽처 복원)에 필요한 정보(예컨대, 비디오/영상 정보)를 도출할 수 있다. 상기 비디오/영상 정보는 어댑테이션 파라미터 세트(APS), 픽처 파라미터 세트(PPS), 시퀀스 파라미터 세트(SPS) 또는 비디오 파라미터 세트(VPS) 등 다양한 파라미터 세트에 관한 정보를 더 포함할 수 있다. 또한 상기 비디오/영상 정보는 일반 제한 정보(general constraint information)를 더 포함할 수 있다. 예를들어, 특히 VCM에 적용되는 경우, 상기 비디오/영상 정보는 부호화된 정보가 어떠한 AI 태스크를 수행하기 위해 부호화되었는 지를 나타내는 정보, 부호화된 정보가 어떠한 네트워크(e.g., 신경망)를 사용하여 부호화되었는 지를 나타내는 정보, 및/또는 부호화된 정보가 어떠한 용도로 부호화되었는 지를 나타내는 정보등을 포함할 수 있다. 일 실시예에서, 설령 해당 영상이 일반적인 태스크, 네트워크, 및/또는 용도를 가지는 일반 특성을 가지는 영상인 경우에도, 이에 대한 값이 기술되어 있도록 강제될 수 있다.
영상 복호화 장치는 영상을 디코딩하기 위해 상기 파라미터 세트에 관한 정보 및/또는 상기 일반 제한 정보를 추가적으로 이용할 수 있다. 본 개시에서 언급된 시그널링 정보, 수신되는 정보 및/또는 신택스 요소들은 상기 디코딩 절차를 통하여 디코딩됨으로써 상기 비트스트림으로부터 획득될 수 있다. 예컨대, 엔트로피 디코딩부(210)는 지수 골롬 부호화, CAVLC 또는 CABAC 등의 코딩 방법을 기초로 비트스트림 내 정보를 디코딩하고, 영상 복원에 필요한 신택스 엘리먼트의 값, 레지듀얼에 관한 변환 계수의 양자화된 값들을 출력할 수 있다. 보다 상세하게, CABAC 엔트로피 디코딩 방법은, 비트스트림에서 각 신택스 요소에 해당하는 빈을 수신하고, 디코딩 대상 신택스 요소 정보와 주변 블록 및 디코딩 대상 블록의 디코딩 정보 혹은 이전 단계에서 디코딩된 심볼/빈의 정보를 이용하여 문맥(context) 모델을 결정하고, 결정된 문맥 모델에 따라 빈(bin)의 발생 확률을 예측하여 빈의 산술 디코딩(arithmetic decoding)을 수행하여 각 신택스 요소의 값에 해당하는 심볼을 생성할 수 있다. 이때, CABAC 엔트로피 디코딩 방법은 문맥 모델 결정 후 다음 심볼/빈의 문맥 모델을 위해 디코딩된 심볼/빈의 정보를 이용하여 문맥 모델을 업데이트할 수 있다. 엔트로피 디코딩부(210)에서 디코딩된 정보 중 예측에 관한 정보는 예측부(인터 예측부(260) 및 인트라 예측부(265))로 제공되고, 엔트로피 디코딩부(210)에서 엔트로피 디코딩이 수행된 레지듀얼 값, 즉 양자화된 변환 계수들 및 관련 파라미터 정보는 역양자화부(220)로 입력될 수 있다. 또한, 엔트로피 디코딩부(210)에서 디코딩된 정보 중 필터링에 관한 정보는 필터링부(240)로 제공될 수 있다. 한편, 영상 부호화 장치로부터 출력된 신호를 수신하는 수신부(미도시)가 영상 복호화 장치(200)의 내/외부 엘리먼트로서 추가적으로 구비될 수 있고, 또는 수신부는 엔트로피 디코딩부(210)의 구성요소로서 구비될 수도 있다.
한편, 본 개시에 따른 영상 복호화 장치는 비디오/영상/픽처 복호화 장치라고 불릴 수 있다. 상기 영상 복호화 장치는 정보 디코더(비디오/영상/픽처 정보 디코더) 및/또는 샘플 디코더(비디오/영상/픽처 샘플 디코더)를 포함할 수도 있다. 상기 정보 디코더는 엔트로피 디코딩부(210)를 포함할 수 있고, 상기 샘플 디코더는 역양자화부(220), 역변환부(230), 가산부(235), 필터링부(240), 메모리(250), 인터 예측부(260) 및 인트라 예측부(265) 중 적어도 하나를 포함할 수 있다.
역양자화부(220)에서는 양자화된 변환 계수들을 역양자화하여 변환 계수들을 출력할 수 있다. 역양자화부(220)는 양자화된 변환 계수들을 2차원의 블록 형태로 재정렬할 수 있다. 이 경우 상기 재정렬은 영상 부호화 장치에서 수행된 계수 스캔 순서에 기반하여 수행될 수 있다. 역양자화부(220)는 양자화 파라미터(예를 들어 양자화 스텝 사이즈 정보)를 이용하여 양자화된 변환 계수들에 대한 역양자화를 수행하고, 변환 계수들(transform coefficient)을 획득할 수 있다.
역변환부(230)에서는 변환 계수들를 역변환하여 레지듀얼 신호(레지듀얼 블록, 레지듀얼 샘플 어레이)를 획득할 수 있다.
예측부는 현재 블록에 대한 예측을 수행하고, 상기 현재 블록에 대한 예측 샘플들을 포함하는 예측된 블록(predicted block)을 생성할 수 있다. 예측부는 엔트로피 디코딩부(210)로부터 출력된 상기 예측에 관한 정보를 기반으로 상기 현재 블록에 인트라 예측이 적용되는지 또는 인터 예측이 적용되는지 결정할 수 있고, 구체적인 인트라/인터 예측 모드(예측 기법)를 결정할 수 있다.
예측부가 후술하는 다양한 예측 방법(기법)을 기반으로 예측 신호를 생성할 수 있음은 영상 부호화 장치(100)의 예측부에 대한 설명에서 언급된 바와 동일하다.
인트라 예측부(265)는 현재 픽처 내의 샘플들을 참조하여 현재 블록을 예측할 수 있다. 인트라 예측부(185)에 대한 설명은 인트라 예측부(265)에 대해서도 동일하게 적용될 수 있다.
인터 예측부(260)는 참조 픽처 상에서 움직임 벡터에 의해 특정되는 참조 블록(참조 샘플 어레이)을 기반으로, 현재 블록에 대한 예측된 블록을 유도할 수 있다. 이 때, 인터 예측 모드에서 전송되는 움직임 정보의 양을 줄이기 위해 주변 블록과 현재 블록 간의 움직임 정보의 상관성에 기반하여 움직임 정보를 블록, 서브블록 또는 샘플 단위로 예측할 수 있다. 상기 움직임 정보는 움직임 벡터 및 참조 픽처 인덱스를 포함할 수 있다. 상기 움직임 정보는 인터 예측 방향(L0 예측, L1 예측, Bi 예측 등) 정보를 더 포함할 수 있다. 인터 예측의 경우에, 주변 블록은 현재 픽처 내에 존재하는 공간적 주변 블록(spatial neighboring block)과 참조 픽처에 존재하는 시간적 주변 블록(temporal neighboring block)을 포함할 수 있다. 예를 들어, 인터 예측부(260)는 주변 블록들을 기반으로 움직임 정보 후보 리스트를 구성하고, 수신한 후보 선택 정보를 기반으로 상기 현재 블록의 움직임 벡터 및/또는 참조 픽처 인덱스를 도출할 수 있다. 다양한 예측 모드(기법)를 기반으로 인터 예측이 수행될 수 있으며, 상기 예측에 관한 정보는 상기 현재 블록에 대한 인터 예측의 모드(기법)를 지시하는 정보를 포함할 수 있다.
가산부(235)는 획득된 레지듀얼 신호를 예측부(인터 예측부(260) 및/또는 인트라 예측부(265) 포함)로부터 출력된 예측 신호(예측된 블록, 예측 샘플 어레이)에 더함으로써 복원 신호(복원 픽처, 복원 블록, 복원 샘플 어레이)를 생성할 수 있다. 스킵 모드가 적용된 경우와 같이 처리 대상 블록에 대한 레지듀얼이 없는 경우, 예측된 블록이 복원 블록으로 사용될 수 있다. 가산부(155)에 대한 설명은 가산부(235)에 대해서도 동일하게 적용될 수 있다. 가산부(235)는 복원부 또는 복원 블록 생성부라고 불릴 수 있다. 생성된 복원 신호는 현재 픽처 내 다음 처리 대상 블록의 인트라 예측을 위하여 사용될 수 있고, 후술하는 바와 같이 필터링을 거쳐서 다음 픽처의 인터 예측을 위하여 사용될 수도 있다.
필터링부(240)는 복원 신호에 필터링을 적용하여 주관적/객관적 화질을 향상시킬 수 있다. 예를 들어 필터링부(240)는 복원 픽처에 다양한 필터링 방법을 적용하여 수정된(modified) 복원 픽처를 생성할 수 있고, 상기 수정된 복원 픽처를 메모리(250), 구체적으로 메모리(250)의 DPB에 저장할 수 있다. 상기 다양한 필터링 방법은 예를 들어, 디블록킹 필터링, 샘플 적응적 오프셋(sample adaptive offset), 적응적 루프 필터(adaptive loop filter), 양방향 필터(bilateral filter) 등을 포함할 수 있다.
메모리(250)의 DPB에 저장된 (수정된) 복원 픽처는 인터 예측부(260)에서 참조 픽쳐로 사용될 수 있다. 메모리(250)는 현재 픽처 내 움직임 정보가 도출된(또는 디코딩된) 블록의 움직임 정보 및/또는 이미 복원된 픽처 내 블록들의 움직임 정보를 저장할 수 있다. 상기 저장된 움직임 정보는 공간적 주변 블록의 움직임 정보 또는 시간적 주변 블록의 움직임 정보로 활용하기 위하여 인터 예측부(260)에 전달할 수 있다. 메모리(250)는 현재 픽처 내 복원된 블록들의 복원 샘플들을 저장할 수 있고, 인트라 예측부(265)에 전달할 수 있다.
본 명세서에서, 영상 부호화 장치(100)의 필터링부(160), 인터 예측부(180) 및 인트라 예측부(185)에서 설명된 실시예들은 각각 영상 복호화 장치(200)의 필터링부(240), 인터 예측부(260) 및 인트라 예측부(265)에도 동일 또는 대응되도록 적용될 수 있다.
영상/비디오 코딩 절차 일반
영상/비디오 코딩에 있어서, 영상/비디오를 구성하는 픽처는 일련의 디코딩 순서(decoding order)에 따라 인코딩/디코딩될 수 있다. 디코딩된 픽처의 출력 순서(output order)에 해당하는 픽처 순서(picture order)는 상기 디코딩 순서와 다르게 설정될 수 있으며, 이를 기반으로 인터 예측시 순방향 예측뿐 아니라 역방향 예측 또한 수행할 수 있다.
도 4는 본 개시의 실시예들이 적용될 수 있는 픽처 디코딩 절차를 개략적으로 나타내는 흐름도이다. 도 4에서 S410은 도 3에서 상술한 복호화 장치의 엔트로피 디코딩부(210)에서 수행될 수 있고, S420은 인트라 예측부(265) 및 인터 예측부(260)를 포함하는 예측부에서 수행될 수 있고, S430은 역양자화부(220) 및 역변환부(230)을 포함하는 레지듀얼 처리부에서 수행될 수 있고, S440은 가산부(235)에서 수행될 수 있고, S450은 필터링부(240)에서 수행될 수 있다. S410은 본 개시에서 설명된 정보 디코딩 절차를 포함할 수 있고, S420은 본 개시에서 설명된 인터/인트라 예측 절차를 포함할 수 있고, S430은 본 개시에서 설명된 레지듀얼 처리 절차를 포함할 수 있고, S440은 본 개시에서 설명된 블록/픽처 복원 절차를 포함할 수 있고, S450은 본 개시에서 설명된 인루프 필터링 절차를 포함할 수 있다.
도 4를 참조하면, 픽처 디코딩 절차는 도 3에 대한 설명에서 나타난 바와 같이 개략적으로 비트스트림으로부터 (디코딩을 통한) 영상/비디오 정보 획득 절차(S410), 픽처 복원 절차(S420~S440) 및 복원된 픽처에 대한 인루프 필터링 절차(S450)를 포함할 수 있다. 상기 픽처 복원 절차는 본 개시에서 설명된 인터/인트라 예측(S420) 및 레지듀얼 처리(S430, 양자화된 변환 계수에 대한 역양자화, 역변환) 과정을 거쳐서 획득한 예측 샘플들 및 레지듀얼 샘플들을 기반으로 수행될 수 있다. 상기 픽처 복원 절차를 통하여 생성된 복원 픽처에 대한 인루프 필터링 절차를 통하여 수정된(modified) 복원 픽처가 생성될 수 있으며, 상기 수정된 복원 픽처가 디코딩된 픽처로서 출력될 수 있고, 또한 복호화 장치의 복호 픽처 버퍼 또는 메모리(250)에 저장되어 이후 픽처의 디코딩시 인터 예측 절차에서 참조 픽처로 사용될 수 있다. 경우에 따라서 상기 인루프 필터링 절차는 생략될 수 있으며, 이 경우 상기 복원 픽처가 디코딩된 픽처로서 출력될 수 있고, 또한 복호화 장치의 복호 픽처 버퍼 또는 메모리(250)에 저장되어 이후 픽처의 디코딩시 인터 예측 절차에서 참조 픽처로 사용될 수 있다. 상기 인루프 필터링 절차(S450)는 상술한 바와 같이 디블록킹 필터링 절차, SAO(sample adaptive offset) 절차, ALF(adaptive loop filter) 절차 및/또는 바이래터럴 필터(bi-lateral filter) 절차 등을 포함할 수 있고, 그 일부 또는 전부가 생략될 수 있다. 또한, 상기 디블록킹 필터링 절차, SAO(sample adaptive offset) 절차, ALF(adaptive loop filter) 절차 및 바이래터럴 필터(bi-lateral filter) 절차들 중 하나 또는 일부가 순차적으로 적용될 수 있고, 또는 모두가 순차적으로 적용될 수도 있다. 예를 들어, 복원 픽처에 대하여 디블록킹 필터링 절차가 적용된 후 SAO 절차가 수행될 수 있다. 또는, 예를 들어 복원 픽처에 대하여 디블록킹 필터링 절차가 적용된 후 ALF 절차가 수행될 수 있다. 이는 부호화 장치에서도 마찬가지로 수행될 수 있다.
도 5는 본 개시의 실시예들이 적용될 수 있는 픽처 인코딩 절차를 개략적으로 나타내는 흐름도이다. 도 5에서 S510은 도 2에서 상술한 부호화 장치의 인트라 예측부(185) 또는 인터 예측부(180)를 포함하는 예측부에서 수행될 수 있고, S520은 변환부(120) 및/또는 양자화부(130)를 포함하는 레지듀얼 처리부에서 수행될 수 있고, S530은 엔트로피 인코딩부(190)에서 수행될 수 있다. S510은 본 개시에서 설명된 인터/인트라 예측 절차를 포함할 수 있고, S520은 본 개시에서 설명된 레지듀얼 처리 절차를 포함할 수 있고, S530은 본 개시에서 설명된 정보 인코딩 절차를 포함할 수 있다.
도 5를 참조하면, 픽처 인코딩 절차는 도 2에 대한 설명에서 나타난 바와 같이 개략적으로 픽처 복원을 위한 정보(e.g., 예측 정보, 레지듀얼 정보, 파티셔닝 정보 등)을 인코딩하여 비트스트림 형태로 출력하는 절차뿐 아니라, 현재 픽처에 대한 복원 픽처를 생성하는 절차 및 복원 픽처에 인루프 필터링을 적용하는 절차(optional)를 포함할 수 있다. 부호화 장치는 역양자화부(140) 및 역변환부(150)를 통하여 양자화된 변환 계수로부터 (수정된) 레지듀얼 샘플들을 도출할 수 있으며, S510의 출력인 예측 샘플들과 상기 (수정된) 레지듀얼 샘플들을 기반으로 복원 픽처를 생성할 수 있다. 이렇게 생성된 복원 픽처는 상술한 복호화 장치에서 생성한 복원 픽처와 동일할 수 있다. 상기 복원 픽처에 대한 인루프 필터링 절차를 통하여 수정된 복원 픽처가 생성될 수 있으며, 이는 복호 픽처 버퍼 또는 메모리(170)에 저장될 수 있으며, 복호화 장치에서의 경우와 마찬가지로, 이후 픽처의 인코딩시 인터 예측 절차에서 참조 픽처로 사용될 수 있다. 상술한 바와 같이 경우에 따라서 상기 인루프 필터링 절차의 일부 또는 전부는 생략될 수 있다. 상기 인루프 필터링 절차가 수행되는 경우, (인루프) 필터링 관련 정보(파라미터)가 엔트로피 인코딩부(190)에서 인코딩되어 비트스트림 형태로 출력될 수 있고, 복호화 장치는 상기 필터링 관련 정보를 기반으로 부호화 장치와 동일한 방법으로 인루프 필터링 절차를 수행할 수 있다.
이러한 인루프 필터링 절차를 통하여 블록킹 아티팩트(artifact) 및 링잉(ringing) 아티팩트 등 영상/동영상 코딩시 발생하는 노이즈를 줄일 수 있으며, 주관적/객관적 비주얼 퀄리티를 높일 수 있다. 또한, 부호화 장치와 복호화 장치에서 둘 다 인루프 필터링 절차를 수행함으로서, 부호화 장치와 복호화 장치는 동일한 예측 결과를 도출할 수 있으며, 픽처 코딩의 신뢰성을 높이고, 픽처 코딩을 위하여 전송되어야 하는 데이터량을 줄일 수 있다.
상술한 바와 같이 복호화 장치뿐 아니라 부호화 장치에서도 픽처 복원 절차가 수행될 수 있다. 각 블록 단위로 인트라 예측/인터 예측에 기반하여 복원 블록이 생성될 수 있으며, 복원 블록들을 포함하는 복원 픽처가 생성될 수 있다. 현재 픽처/슬라이스/타일 그룹이 I 픽처/슬라이스/타일 그룹인 경우 상기 현재 픽처/슬라이스/타일 그룹에 포함되는 블록들은 인트라 예측만을 기반으로 복원될 수 있다. 한편, 현재 픽처/슬라이스/타일 그룹이 P 또는 B 픽처/슬라이스/타일 그룹인 경우 상기 현재 픽처/슬라이스/타일 그룹에 포함되는 블록들은 인트라 예측 또는 인터 예측을 기반으로 복원될 수 있다. 이 경우 현재 픽처/슬라이스/타일 그룹 내 일부 블록들에 대하여는 인터 예측이 적용되고, 나머지 일부 블록들에 대하여는 인트라 예측이 적용될 수도 있다. 픽처의 컬러 성분은 루마 성분 및 크로마 성분을 포함할 수 있으며, 본 개시에서 명시적으로 제한하지 않으면 본 개시에서 제안되는 방법들 및 실시예들은 루마 성분 및 크로마 성분에 적용될 수 있다.
변환/역변환의 개요
전술한 바와 같이, 부호화 장치는 인트라/인터/IBC 예측 등을 통하여 예측된 블록(예측 샘플들)을 기반으로 레지듀얼 블록(레지듀얼 샘플들)을 도출할 수 있고, 도출된 레지듀얼 샘플들에 변환 및 양자화를 적용하여 양자화된 변환 계수들을 도출할 수 있다. 양자화된 변환 계수들에 대한 정보(레지듀얼 정보)는 레지듀얼 코딩 신택스에 포함되어 인코딩 후 비트스트림 형태로 출력될 수 있다. 복호화 장치는 상기 비트스트림으로부터 상기 양자화된 변환 계수들에 대한 정보(레지듀얼 정보)를 획득하고, 디코딩하여 양자화된 변환 계수들을 도출할 수 있다. 복호화 장치는 양자화된 변환 계수들을 기반으로 역양자화/역변환을 거쳐서 레지듀얼 샘플들을 도출할 수 있다. 상술한 바와 같이 상기 양자화/역양자화 및/또는 변환/역변환 중 적어도 하나는 생략될 수 있다. 상기 변환/역변환이 생략되는 경우, 상기 변환 계수는 계수 또는 레지듀얼 계수라고 불릴 수도 있고, 또는 표현의 통일성을 위하여 변환 계수라고 여전히 불릴 수도 있다. 상기 변환/역변환의 생략 여부는 transform_skip_flag를 기반으로 시그널링될 수 있다.
상기 변환/역변환은 변환 커널(들)을 기반으로 수행될 수 있다. 예를 들어, 본 개시에 따르면 MTS(multiple transform selection) 스킴(scheme)이 적용될 수 있다. 이 경우, 다수의 변환 커널 세트들 중 일부가 선택되어 현재 블록에 적용될 수 있다. 변환 커널은 변환 매트릭스, 변환 타입 등 다양한 용어로 불릴 수 있다. 예를 들어, 변환 커널 세트는 수직 방향 변환 커널(수직 변환 커널) 및 수평 방향 변환 커널(수평 변환 커널)의 조합을 나타낼 수 있다.
예를 들어, MTS 인덱스 정보(or tu_mts_idx 신텍스 요소)가 상기 변환 커널 세트들 중 하나를 지시하기 위하여 인코딩 장치에서 생성/인코딩되어 디코딩 장치로 시그널링될 수 있다.
상기 변환 커널 세트는 예를 들어, cu_sbt_horizontal_flag 및 cu__sbt_pos_flag를 기반으로 결정될 수도 있다. 또는, 상기 변환 커널 세트는 예를 들어, 현재 블록에 대한 인트라 예측 모드를 기반으로 결정될 수도 있다.
본 개시에서 상기 MTS 기반 변환은 1차 변환(primary transform)으로 적용되고, 2차 변환(Secondary transform)이 더 적용될 수 있다. 상기 2차 변환은 상기 1차 변환이 적용된 계수 블록의 좌상단 wxh 영역의 계수들에 대하여만 적용될 수도 있으며, Reduced secondary transform(RST)이라고 불릴 수 있다. 예를 들어, 상기 w 및/또는 h는 4 또는 8일 수 있다. 변환에서 레지듀얼 블록에 상기 1차 변환 및 상기 2차 변환이 순차적으로 적용될 수 있고, 역변환에서는 변환 계수들에 역2차 변환 및 역 1차 변환이 순차적으로 적용될 수 있다. 상기 2차 변환(RST 변환)은 low freueqncy coefficients transform (LFCT) 또는 low frequency non-seperable transform (LFNST)이라고 불릴 수 있다. 상기 역 2차 변환은 역 LFCT 또는 역 LFNST라고 불릴 수 있다.
상기 변환/역변환은 CU 또는 TU 단위로 수행될 수 있다. 즉, 상기 변환/역변환은 CU 내의 레지듀얼 샘플들 또는 TU 내의 레지듀얼 샘플들에 대하여 적용될 수 있다. CU 사이즈와 TU 사이즈가 같을 수 있고, 또는 CU 영역 내에 복수의 TU가 존재할 수도 있다. 한편, CU 사이즈라 함은 일반적으로 루마 성분(샘플) CB 사이즈를 나타낼 수 있다. TU 사이즈라 함은 일반적으로 루마 성분(샘플) TB 사이즈를 나타낼 수 있다. 크로마 성분(샘플) CB 또는 TB 사이즈는 컬러 포멧(크로마 포멧, e.g., 4:4:4, 4:2:2, 4:2:0 등)에 따른 성분비에 따라 루마 성분(샘플) CB 또는 TB 사이즈를 기반으로 도출될 수 있다. 상기 TU 사이즈는 maxTbSize를 기반으로 도출될 수 있다. 예를 들어, 상기 CU 사이즈가 상기 maxTbSize보다 큰 경우, 상기 CU로부터 상기 maxTbSize의 복수의 TU(TB)들이 도출되고, 상기 TU(TB) 단위로 변환/역변환이 수행될 수 있다. 상기 maxTbSize는 ISP 등 다양한 인트라 예측 타입의 적용 여부 판단 등에 고려될 수 있다. 상기 maxTbSize에 대한 정보는 미리 결정될 수도 있고, 또는 인코딩 장치에서 생성 및 인코딩되어 디코딩 장치로 시그널링될 수 있다.
코딩 계층 및 구조의 예
본 개시에 따른 코딩된 비디오/영상은, 예를 들어 후술하는 코딩 계층 및 구조에 따라 처리될 수 있다.
도 6은 코딩된 영상에 대한 계층 구조를 나타낸 도면이다.
도 6을 참조하면, 코딩된 영상은 영상의 디코딩 처리 및 그 자체를 다루는 VCL(video coding layer, 비디오 코딩 계층), 부호화된 정보를 전송하고 저장하는 하위 시스템, 그리고 VCL과 하위 시스템 사이에 존재하며 네트워크 적응 기능을 담당하는 NAL(network abstraction layer, 네트워크 추상 계층)로 구분될 수 있다.
VCL에서는 압축된 영상 데이터(슬라이스 데이터)를 포함하는 VCL 데이터를 생성하거나, 혹은 픽처 파라미터 세트(Picture Parameter Set: PPS), 시퀀스 파라미터 세트(Sequence Parameter Set: SPS), 비디오 파라미터 세트(Video Parameter Set: VPS) 등의 정보를 포함하는 파라미터 세트 또는 영상의 디코딩 과정에 부가적으로 필요한 SEI(Supplemental Enhancement Information) 메시지를 생성할 수 있다. 상기의 정보/메시지에는 부호화된 영상을 통해 수행할 수 있는 태스크 정보와 부호화 대상 영상의 생성 방법등과 같은 영상에 대한 부가 정보가 소정의 신택스 테이블에 따라 신택스 요소로 기술될 수 있다.
NAL에서는 VCL에서 생성된 RBSP(Raw Byte Sequence Payload)에 헤더 정보(NAL 유닛 헤더)를 부가하여 NAL 유닛을 생성할 수 있다. 이 때, RBSP는 VCL에서 생성된 슬라이스 데이터, 파라미터 세트, SEI 메시지 등을 말한다. NAL 유닛 헤더에는 해당 NAL 유닛에 포함되는 RBSP 데이터에 따라 특정되는 NAL 유닛 타입 정보를 포함할 수 있다.
상기 도면에서 도시된 바와 같이, NAL 유닛은 VCL에서 생성된 RBSP의 따라 VCL NAL 유닛과 Non-VCL NAL 유닛으로 구분될 수 있다. VCL NAL 유닛은 영상에 대한 정보(슬라이스 데이터)를 포함하고 있는 NAL 유닛을 의미할 수 있고, Non-VCL NAL 유닛은 영상을 디코딩하기 위하여 필요한 정보(파라미터 세트 또는 SEI 메시지)를 포함하고 있는 NAL 유닛을 의미할 수 있다. 일 실시예에서, 해당 부호화 영상이 특정 태스크를 수행하기 위한 영상 정보임을 나타내는 정보가 VCL NAL 유닛에 포함될 수 있다. 또는, 해당 부호화 영상이 특정 태스크를 수행하기 위한 영상 정보임을 나타내는 정보가 non-VCL NAL 유닛에 포함될 수도 있다.
상술한 VCL NAL 유닛, Non-VCL NAL 유닛은 하위 시스템의 데이터 규격에 따라 헤더 정보를 붙여서 네트워크를 통해 전송될 수 있다. 예컨대, NAL 유닛은 H.266/VVC 파일 포맷, RTP(Real-time Transport Protocol), TS(Transport Stream) 등과 같은 소정 규격의 데이터 형태로 변형되어 다양한 네트워크를 통해 전송될 수 있다.
상술한 바와 같이, NAL 유닛은 해당 NAL 유닛에 포함되는 RBSP 데이터 구조(structure)에 따라 NAL 유닛 타입이 특정될 수 있으며, 이러한 NAL 유닛 타입에 대한 정보는 NAL 유닛 헤더에 저장되어 시그널링될 수 있다.
예를 들어, NAL 유닛이 영상에 대한 정보(슬라이스 데이터)를 포함하는지 여부에 따라 크게 VCL NAL 유닛 타입과 Non-VCL NAL 유닛 타입으로 분류될 수 있다. VCL NAL 유닛 타입은 VCL NAL 유닛이 포함하는 픽처의 성질 및 종류 등에 따라 분류될 수 있으며, Non-VCL NAL 유닛 타입은 파라미터 세트의 종류 등에 따라 분류될 수 있다.
아래는 Non-VCL NAL 유닛 타입이 포함하는 파라미터 세트/정보의 종류 등에 따라 특정된 NAL 유닛 타입의 일예를 나열한다.
- DCI (Decoding capability information) NAL unit : DCI를 포함하는 NAL 유닛에 대한 타입
- VPS(Video Parameter Set) NAL unit : VPS를 포함하는 NAL 유닛에 대한 타입
- SPS(Sequence Parameter Set) NAL unit: SPS를 포함하는 NAL 유닛에 대한 타입
- PPS(Picture Parameter Set) NAL unit : PPS를 포함하는 NAL 유닛에 대한 타입
- APS (Adaptation Parameter Set) NAL unit : APS를 포함하는 NAL 유닛에 대한 타입
- PH (Picture header) NAL unit : Type for NAL unit including PH
상술한 NAL 유닛 타입들은 NAL 유닛 타입을 위한 신택스 정보를 가지며, 상기 신택스 정보는 NAL 유닛 헤더에 저장되어 시그널링될 수 있다. 예컨대, 상기 신택스 정보는 nal_unit_type일 수 있으며, NAL 유닛 타입들은 nal_unit_type 값으로 특정될 수 있다.
한편, 상술한 바와 같이 하나의 픽처는 복수의 슬라이스를 포함할 수 있으며, 하나의 슬라이스는 슬라이스 헤더 및 슬라이스 데이터를 포함할 수 있다. 이 경우, 하나의 픽처 내 복수의 슬라이스(슬라이스 헤더 및 슬라이스 데이터 집합)에 대하여 하나의 픽처 헤더가 더 부가될 수 있다. 상기 픽처 헤더(픽처 헤더 신택스)는 상기 픽처에 공통적으로 적용할 수 있는 정보/파라미터를 포함할 수 있다.
상기 슬라이스 헤더(슬라이스 헤더 신택스)는 상기 슬라이스에 공통적으로 적용할 수 있는 정보/파라미터를 포함할 수 있다. 상기 APS(APS 신택스) 또는 PPS(PPS 신택스)는 하나 이상의 슬라이스 또는 픽처에 공통적으로 적용할 수 있는 정보/파라미터를 포함할 수 있다. 상기 SPS(SPS 신택스)는 하나 이상의 시퀀스에 공통적으로 적용할 수 있는 정보/파라미터를 포함할 수 있다. 상기 VPS(VPS 신택스)는 다중 레이어에 공통적으로 적용할 수 있는 정보/파라미터를 포함할 수 있다. 상기 DCI(DCI 신택스)는 비디오 전반에 공통적으로 적용할 수 있는 정보/파라미터를 포함할 수 있다. 상기 DCI는 디코딩 능력(decoding capability)에 관련된 정보/파라미터를 포함할 수 있다. 본 개시에서 상위 레벨 신택스(High level syntax, HLS)라 함은 상기 APS 신택스, PPS 신택스, SPS 신택스, VPS 신택스, DCI 신택스, 픽쳐 헤더 신택스, 슬라이스 헤더 신택스 중 적어도 하나를 포함할 수 있다. 한편, 본 개시에서 하위 레벨 신택스(low level syntax, LLS)는 예를 들어, 슬라이스 데이터 신택스, CTU 신택스, 부호화 단위 신택스, 변환 단위 신택스 등을 포함할 수 있다.
본 개시에서 부호화 장치에서 복호화 장치로 인코딩되어 비트스트림 형태로 시그널링되는 영상/비디오 정보는 픽처 내 파티셔닝 관련 정보, 인트라/인터 예측 정보, 레지듀얼 정보, 인루프 필터링 정보 등을 포함할 뿐 아니라, 상기 슬라이스 헤더의 정보, 상기 픽쳐 헤더의 정보, 상기 APS의 정보, 상기 PPS의 정보, SPS의 정보, VPS의 정보 및/또는 DCI의 정보를 포함할 수 있다. 또한 상기 영상/비디오 정보는 일반 제한 정보(general constraint information) 및/또는 NAL unit header의 정보를 더 포함할 수 있다.
VCM 개요
VCM(Video/image coding for machines)은 사용자 및/또는 머신의 요청, 목적, 주변 환경 등에 따라 비디오 소스의 전부 또는 일부 및/또는 비디오 소스에 필요한 정보를 획득하여 부호화/복호화하는 것을 의미한다.
VCM 기술은 다양한 응용 분야에서 이용될 수 있다. 예를 들어, VCM 기술은, 감시 시스템(Surveillance system), 지능형 운송(Intelligent Transportation), 스마트 시티(Smart City), 지능형 산업(Intelligent Industry), 지능형 콘텐츠(Intelligent Content) 분야에서 이용될 수 있다. 물체나 사람을 인식하고 추적하는 감시 시스템(Surveillance system)에 있어서, VCM 기술은 감시 카메라로부터 획득된 정보를 전송하거나 저장하기 위해 이용될 수 있다. 또한, 지능형 운송(Intelligent Transportaion)과 관련된 스마트 트래픽 시스템(Smart traffic system)에 있어서, VCM 기술은 GPS로부터 수집된 차량의 위치 정보, 라이다(LIDAR), 레이더(Radar) 등으로부터 수집된 각종 센싱 정보 및 차량 제어 정보를 다른 차량이나 인프라 스트럭처(infrastructure)로 전송하기 위해 이용될 수 있다. 또한, 교통 상황을 모니터링하고 리소스를 할당하는 스마트 시트(smart city) 분야에 있어서, VCM 기술은 (상호 연결된) 센서 노드 및 장치의 개별 태스크 수행에 필요한 정보를 전송하기 위해 이용될 수 있다.
VCM에서 부호화/복호화 대상은 피쳐(feature)라고 지칭될 수 있다. 피쳐는 비디오 소스로부터 추출/가공된 시계열 정보를 포함하는 데이터 셋을 의미할 수 있다. 피쳐는 비디오 소스와는 다른 별개의 정보 형태 및 속성을 가질 수 있으며, 실시예에 따라 특정 태스크에 적합하게 재구성될 수 있다. 이에 따라, 피쳐의 압축 방식이나 표현 형식은 비디오 소스와는 상이할 수 있다.
본 개시는 피쳐 부호화/복호화 방법과 관련된 다양한 실시예들을 제공한다. 다른 특별한 언급이 없는 한, 본 개시의 실시예들은 개별적으로 구현될 수도 있고, 또는 2 이상으로 조합으로 구현될 수도 있다. 이하, 첨부된 도면들을 참조하여, 본 개시의 실시예들을 상세히 설명하기로 한다.
도 7은 본 개시의 실시예들이 적용될 수 있는 VCM 시스템을 개략적으로 나타낸 도면이다.
도 7을 참조하면, VCM 시스템은 부호화 장치(30) 및 복호화 장치(40)를 포함할 수 있다.
부호화 장치(30)는 소스 영상/비디오로부터 추출된 피쳐/피쳐맵을 압축/부호화하여 비트스트림을 생성하고, 생성된 비트스트림을 저장매체 또는 네트워크를 통해 복호화 장치(40)로 전송할 수 있다.
부호화 장치(30)는 피쳐 획득부(31), 부호화부(32) 및 전송부(33)를 포함할 수 있다.
피쳐 획득부(31)는 소스 영상/비디오에 대한 피쳐/피쳐맵을 획득할 수 있다. 실시예에 따라, 피쳐 획득부(31)는 외부 장치, 예컨대 피쳐 추출 네트워크로부터 기추출된 피쳐/피쳐맵을 획득할 수 있다. 이 경우, 피쳐 획득부(31)는 피쳐 시그널링 인터페이스 기능을 수행하게 된다. 이와 달리, 피쳐 획득부(31)는 소스 영상/비디오를 입력으로 하여 신경망(e.g., CNN, DNN 등)을 실행함으로써 피쳐/피쳐맵을 획득할 수 있다. 이 경우, 피쳐 획득부(31)는 피쳐 추출 네트워크 기능을 수행하게 된다.
한편, 도시하지 않았으나, 부호화 장치(30)는 소스 영상/비디오를 획득하기 위한 소스 영상 생성부를 더 포함할 수 있다. 소스 영상 생성부는 이미지 센서, 카메라 모듈 등으로 구현될 수 있으며, 영상/비디오의 캡쳐, 합성 또는 생성 과정을 통해 소스 영상/비디오를 획득할 수 있다. 소스 영상 생성부에 의해 생성된 소스 영상/비디오는 피쳐 추출 네트워크로 전달되어, 피쳐/피쳐맵을 추출하기 위한 입력 정보로 사용될 수 있다.
부호화부(32)는 피쳐 획득부(31)에 의해 획득된 피쳐/피쳐맵을 부호화할 수 있다. 부호화부(32)는 부호화 효율을 높이기 위하여 예측, 변환, 양자화 등 일련의 절차를 수행할 수 있다. 그리고, 부호화된 데이터(e.g., 피쳐 정보)는 비트스트림 형태로 출력될 수 있다. 본 개시에서, 피쳐 정보를 포함하는 비트스트림은 VCM 비트스트림으로 지칭될 수도 있다.
전송부(33)는 비트스트림을 디지털 저장매체를 통해 파일 형태로 복호화 장치(40)에 전송할 수 있다. 디지털 저장 매체는 USB, SD, CD, DVD, 블루레이, HDD, SSD 등 다양한 저장 매체들을 포함할 수 있다. 전송부(33)는 소정의 파일 포맷을 갖는 미디어 파일을 생성하기 위한 엘리먼트를 포함할 수 있다. 또는, 전송부(33)는 부호화된 피쳐 정보를 네트워크를 통해 스트리밍 형태로 복호화 장치(40)에 전송할 수도 있다. 네트워크는 인터넷(Internet), LAN(Local Area Network), WLAN(Wide LAN) 등과 같은 유무선 통신 네트워크를 포함할 수 있다. 전송부(33)는 부호화된 피쳐 정보를 방송/통신 네트워크를 통해 전송하기 위한 엘리먼트를 포함할 수 있다.
복호화 장치(40)는 부호화 장치(30)로부터 피쳐 정보를 획득하고, 획득된 피쳐 정보에 기반하여 피쳐/피쳐맵을 복원할 수 있다.
복호화 장치(40)는 수신부(41) 및 복호화부(42)를 포함할 수 있다. 또한, 실시예에 따라, 복호화 장치(40)는 태스크 분석/렌더링부(43)를 더 포함할 수 있다.
수신부(41)는 부호화 장치(30)로부터 비트스트림을 수신하고, 수신된 비트스트림으로부터 피쳐 정보를 획득하여 복호화부(42)로 전달할 수 있다.
복호화부(42)는 획득된 피쳐 정보에 기반하여 피쳐/피쳐맵을 복호화할 수 있다. 복호화부(42)는 복호화 효율을 높이기 위하여 부호화부(34)의 동작에 대응하는 역양자화, 역변환, 예측 등 일련의 절차를 수행할 수 있다.
태스크 분석/렌더링부(43)는 복호화된 피쳐를 이용하여 태스크 분석 및 렌더링 과정을 수행함으로써, 소정의 태스크(e.g., 얼굴 인식, 행동 인식, 차선 인식 등과 같은 컴퓨터 비전 태스크 등)를 수행할 수 있다. 실시예에 따라, 태스크 분석/렌더링부(43)는 복호화 장치(40)의 외부에 구현될 수도 있다. 이 경우, 복호화된 피쳐는 피쳐 시그널링 인터페이스를 통해 태스크 분석/렌더링부(43)로 전달되어 소정의 태스크를 수행하는 데 사용될 수 있다.
이상, VCM 시스템은 사용자 및/또는 머신의 요청, 태스크 목적 및 주변 환경에 따라 소스 영상/비디오로부터 추출된 피쳐를 부호화/복호화하고, 상기 피쳐를 이용하여 머신 지향(machine-oriented)의 다양한 태스크들을 수행할 수 있다. 일 예에서, VCM 시스템은 도 1을 참조하여 전술한 비디오/영상 코딩 시스템을 확장/재설계함으로써 구현될 수 있으며, VCM(Video Coding for Machines) 표준에서 정의되는 다양한 부호화/복호화 방법들을 수행할 수 있다.
한편, VCM 시스템에서, 피쳐/피쳐맵은 신경망의 각 은닉층(hidden layer)에서 생성될 수 있다. 이 때, 피쳐맵의 크기 및 채널 수는 신경망의 종류나 은닉층 위치에 따라 달라질 수 있다. 본 개시에서, 피쳐맵은 피쳐셋으로 지칭될 수도 있다.
본 개시의 실시예들은 신경망, 예컨대 CNN(Convolutional Neural Network) 또는 DNN(Deep Neural Network)의 은닉층에서 생성된 피쳐/피쳐맵을 압축/복원하기 위해 필요한 부호화/복호화 방법을 제공한다.
도 8은 본 개시의 실시예들에 적용될 수 있는 VCM 파이프라인의 일 예를 나타낸 도면이다.
도 8을 참조하면, VCM 파이프라인은 입력 영상으로부터 피쳐/피쳐맵을 추출하는 제1 스테이지(810), 추출된 피쳐/피쳐맵을 부호화하는 제2 스테이지(820), 부호화된 피쳐/피쳐맵을 복호화하는 제3 스테이지(830), 및 복호화된 피쳐/피쳐맵에 기반하여 소정의 태스크(e.g., 머신 태스크 또는 머신/휴먼비젼 하이브리드 태스크 등)을 수행하는 제4 스테이지(840)를 포함할 수 있다.
제1 스테이지(810)는 피쳐 추출 네트워크, 예컨대 CNN 또는 DNN에 의해 실행될 수 있다. 피쳐 추출 네트워크는 신경망의 입력으로부터 연속되는 은닉층들의 집합을 의미할 수 있으며, 입력 영상에 대해 소정의 신경망 연산을 수행함으로써 피쳐/피쳐맵을 추출할 수 있다.
제2 스테이지(820)는 피쳐 부호화 장치에 의해 실행될 수 있다. 피쳐 부호화 장치는 제1 스테이지(810)에서 추출된 피쳐/피쳐맵을 압축/부호화하여 비트스트림을 생성할 수 있다. 피쳐 부호화 장치는 압축/부호화의 대상이 비디오/영상이 아닌 피쳐/피쳐맵이라는 점에서 차이가 있을 뿐, 기본적으로 도 2를 참조하여 전술한 영상 부호화 장치(200)와 동일/유사한 구조를 가질 수 있다.
제3 스테이지(830)는 피쳐 복호화 장치에 의해 실행될 수 있다. 피쳐 복호화 장치는 제2 스테이지(820)에서 생성된 비트스트림으로부터 피쳐/피쳐맵을 복호화/복원할 수 있다. 피쳐 부호화 장치와 마찬가지로, 피쳐 복호화 장치는 복호화/복원의 대상이 비디오/영상이 아닌 피쳐/피쳐맵이라는 점에서 차이가 있을 뿐, 기본적으로 도 3을 참조하여 전술한 영상 복호화 장치(300)와 동일/유사한 구조를 가질 수 있다.
제4 스테이지(840)는 태스크 네트워크에 의해 실행될 수 있다. 태스크 네트워크는 제3 스테이지(830)에서 복원된 피쳐/피쳐맵에 기반하여 소정의 태스크를 수행할 수 있다. 여기서, 태스크는 객체 검출과 같은 머신 태스크일 수도 있고, 또는 머신 태스크와 휴먼 비젼이 혼합된 하이브리드 태스크일 수도 있다. 태스크 네트워크는 태스크 수행을 위해 태스크 분석 및 피쳐/피쳐맵 렌더링을 수행할 수 있다.
도 9 내지 도 11은 피쳐 추출 네트워크의 동작을 설명하기 위한 도면들이다.
도 9는 피쳐 추출 네트워크의 입출력 예를 나타낸다.
먼저 도 9를 참조하면, 피쳐 추출 네트워크(900)는 입력 소스로부터 피쳐맵(또는, 피쳐셋)을 추출할 수 있다. 도 9에서, W, H 및 C는 각각 입력 소스의 너비, 높이 및 채널 수를 의미할 수 있다. 입력 소스가 RGB 영상인 경우, 입력 소스의 채널 수 C는 3일 수 있다. 또한, W', H' 및 C'은 각각 출력값인 피쳐맵의 너비, 높이 및 채널 수를 의미할 수 있다. 피쳐맵의 채널 수 C'은 피쳐 추출 방법에 따라 달라질 수 있으며, 일반적으로 입력 소스의 채널 수 C보다는 클 수 있다.
도 10은 단일의 입력 소스로부터 64개의 피쳐들(또는, 채널들)이 추출된 예를 나타낸다. 도 10을 참조하면, 피쳐 추출 네트워크로부터 출력된 각 피쳐(또는, 채널)의 크기는 입력 소스의 크기보다 작을 수 있다. 하지만, 피쳐맵의 채널 수가 입력 소스의 채널 수보다 많기 때문에, 피쳐맵의 전체 크기는 입력 소스의 크기보다 커질 수 있다. 이에 따라, 도 11에 도시된 바와 같이, 피쳐 추출 네트워크로부터 출력된 피쳐맵의 데이터량은 입력 소스의 데이터량보다 매우 커질 수 있으며, 그 결과 부호화/복호화 성능 및 복잡도는 크게 저하될 수 있다.
이와 같은 문제를 해결하기 위하여, 본 개시의 실시예들은 피쳐맵의 크기를 효율적으로 감소시키는 방법을 제공한다. 구체적으로, 본 개시의 실시예들은, i) 피쳐 변환을 통해 고차원의 피쳐를 저차원으로 투영하는 방법, ii) 저차원 투영을 위한 변환 행렬 생성/관리 방법, 및 iii) 저차원으로 투영된 피쳐를 다시 고차원으로 복원하는 방법에 관한 것이다.
실시예 1
본 개시의 실시예 1은 소스 영상/비디오로부터 획득된 피쳐맵의 차원을 감소시키기 위한 방법에 관한 것이다. 구체적으로, 본 개시의 실시예 1에 따르면, 피쳐 변환을 통해 고차원의 피쳐맵을 저차원으로 투영(projection)함으로써, 피쳐맵의 차원을 감소시킬 수 있다. 여기서, 피쳐맵의 차원이란 도 9 내지 도 11을 참조하여 전술한 피쳐맵의 채널 수를 의미할 수 있다. 일 실시예에서, 피쳐 변환은 차원 축소 기법, 예컨대 PCA(Principle Component Analysis)에 기반하여 수행될 수 있다.
도 12는 PCA 기반의 피쳐 변환 과정을 나타낸 도면이다.
도 12를 참조하면, 소스 영상/비디오를 입력으로 하여 신경망 연산을 실행함으로써, 각각 WxH 크기를 갖는 N개의 채널들(f0 내지 fN-1)을 포함하는 피쳐맵이 획득될 수 있다(1210).
그리고, 획득된 피쳐맵(f0 내지 fN-1)에 대하여 PCA 연산을 실행함으로써 주성분들(C0 내지 Cn-1)이 획득될 수 있다(1220). 예를 들어, 피쳐맵 내 각 픽셀 위치에서 동일 위치 픽셀값들의 평균값(μ)을 구하고, 각 픽셀의 픽셀값에서 해당 위치의 평균값(μ)을 빼준 후 주성분 분석을 수행함으로써, n개의 주성분들(C0 내지 Cn-1)이 획득될 수 있다. 이 때, 주성분들(C0 내지 Cn-1)의 개수(n)가 많아질수록 피쳐맵의 차원 축소 효과는 감소할 수 있다. 하지만, 이 경우 차원 축소 후의 데이터가 원본 데이터의 분산을 보다 정확히 반영하게 되므로 피쳐맵 기반의 태스크 성능은 보다 향상될 수 있다.
WxH 개의 픽셀들로 표현되는 임의의 피쳐맵 데이터(fx)는 주성분(Cx)에 투영되어 n개의 계수값들(Px(0) 내지 Px(n-1))로 표현될 수 있다(1230). 이 때, n은 1 이상이고 WxH 이하일 수 있다. 이에 따라, WxH 차원을 갖는 피쳐맵 데이터(fx)는 n 차원의 데이터로 변환될 수 있다.
한편, n 차원 데이터로 변환된 피쳐맵 데이터(fx)를 복원하기 위하여, 상술한 평균값(μ) 및 주성분(Cx) 뿐만 아니라, 소정의 투영 행렬(e.g., 고유 벡터, 변환 행렬 등)이 이용될 수 있다(1240). 이는, 비디오 코덱에서 널리 쓰이는 DCT 변환 기법이 입력 데이터와는 독립적인 반면, PCA와 같은 차원 축소 기법은 입력 데이터의 공분산을 기반으로 변환 행렬이 생성되기 때문이다. 다시 말해, PCA를 위한 변환 행렬은 입력 데이터에 의존적이므로 각각의 입력 데이터 별로 변환 행렬을 생성/관리해야 하며, 그 결과 코딩 효율이 저하되고 복잡도가 증가할 수 있다는 문제가 있다.
이와 같은 문제를 해결하기 위하여, 본 개시의 실시예 1에 따르면, 피쳐 변환은 입력 데이터에 종속적이지 않은 범용의 차원 축소 기법에 기반하여 수행될 수 있다. 이를 위해, 비디오/영상을 포함하는 소정의 입력 데이터 셋으로부터 변환 행렬 생성을 위한 피쳐 데이터 셋이 구성될 수 있다. 본 개시에서, 변환 행렬은 피쳐 변환 행렬로 지칭될 수도 있다.
도 13 내지 도 15는 본 개시의 일 실시예에 따른 피쳐 데이터 셋 구성 방법을 설명하기 위한 도면들이다.
도 13은 피쳐 데이터 셋을 구성하는 방법을 개략적으로 나타낸다.
도 13을 참조하면, 피쳐 추출 네트워크(1310)은 입력 데이터 셋(DSi)으로부터 복수의 피쳐들을 포함하는 피쳐맵을 추출할 수 있다. 그리고, 피쳐 데이터 셋 생성기(1320)는 추출된 피쳐맵을 학습에 이용 가능한 형태로 가공하여 피쳐 데이터 셋(DSf)을 구성할 수 있다. 일 실시예에서, 피쳐 데이터 셋 생성기(1320)는 태스크 결과(TRi)를 기초로 특정 태스크 수행에 필요한 피쳐들만을 선별하여 피쳐 데이터 셋(DSf)을 구성할 수 있다.
도 14는 피쳐들을 선별하여 피쳐 데이터 셋을 구성하는 방법을 구체적으로 나타낸다.
도 14를 참조하면, 피쳐 데이터 셋 생성기(1420)는 입력 데이터 셋(DSi) 및 레이블 정보(TRi)에 기반하여 피쳐 데이터 셋(DSf)을 구성(또는, 생성)할 수 있다. 여기서, 레이블 정보(TRi)란 입력 데이터 셋(DSi)을 이용하여 특정 태스크를 수행한 결과(즉, 태스크 결과)를 의미할 수 있다. 예를 들어, 특정 태스크가 객체 검출(object detection) 태스크인 경우, 레이블 정보(TRi)는 영상 내 검출된 객체가 존재하는 영역인 ROI(Region Of Interest) 영역에 관한 정보를 포함할 수 있다.
피쳐 데이터 셋 생성기(1420)는, 입력 데이터 셋(DSi)으로부터 추출된 피쳐맵에서 일부 피쳐들을 레이블 정보(TRi)에 기반하여 선별함으로써, 피쳐 데이터 셋(DSf)을 구성할 수 있다. 예를 들어, 피쳐 데이터 셋 생성기(1420)는 ROI 영역의 피쳐들만을 이용하여 피쳐 데이터 셋(DSf)을 구성할 수 있다. 한편, 도 14에 도시된 바와 달리 입력 데이터 셋(DSi)의 레이블 정보(TRi)가 제공되지 않은 경우, 피쳐 데이터 셋 생성기(1420)는, 피쳐들의 분포 특성이나 중요도를 기반으로 피쳐맵 내 일부 피쳐들을 선별함으로써, 피쳐 데이터 셋(DSf)을 구성할 수 있다.
도 15는 피쳐를 가공하여 피쳐 데이터 셋을 구성하는 방법을 구체적으로 나타낸다.
도 15를 참조하면, 피쳐 데이터 셋 생성기는 입력 데이터 셋(DSi)으로부터 획득된 피쳐들을 학습에 용이한 형태로 가공하여 피쳐 데이터 셋(DSf)을 구성할 수 있다. 예를 들어, 피쳐 데이터 셋 생성기는, 가로가 r이고 세로가 c인 2차원 피쳐를 r·c 크기를 갖는 1차원 열(column) 벡터로 변환하여(1510), 피쳐 데이터 셋(DSf)에 입력할 수 있다(1520).
이와 같이, 피쳐 데이터 셋 생성기는 피쳐맵으로부터 일부 피쳐들을 선별하고, 선별된 피쳐들을 가공하여 피쳐 데이터 셋(DSf)에 입력할 수 있다. 한편, 실시예에 따라, 도 14의 선별 과정 및 도 15의 가공 과정 중 적어도 일부는 생략될 수 있다. 예를 들어, 피쳐 데이터 셋 생성기는 피쳐맵으로부터 일부 피쳐들을 선별하고, 별도의 가공 과정없이 선별된 피쳐들을 피쳐 데이터 셋(DSf)에 입력할 수 있다. 또한, 피쳐 데이터 셋 생성기는 별도의 선별 과정없이 피쳐맵의 모든 피쳐들을 가공하여 피쳐 데이터 셋(DSf)에 입력할 수도 있다. 또한, 피쳐 데이터 셋 생성기는 별도의 선별 및 가공 과정없이 피쳐맵의 모든 피쳐들을 피쳐 데이터 셋(DSf)에 입력할 수도 있다.
그리고, 생성된 피쳐 데이터 셋(DSf)은 피쳐 변환 행렬을 생성하기 위한 트레이닝 데이터로 이용될 수 있다.
도 16 내지 도 18은 본 개시의 일 실시예에 따른 피쳐 변환 행렬 생성 방법을 설명하기 위한 도면들이다.
도 16은 피쳐 변환 트레이닝을 수행하여 피쳐 변환 행렬을 생성하는 방법을 개략적으로 나타낸다.
도 16을 참조하면, 피쳐 변환 행렬 생성기(1610)는 피쳐 데이터 셋(DSf)을 이용하여 피쳐 변환 트레이닝을 수행함으로써 피쳐 변환 행렬(e.g., 고유 벡터) 및 행렬 정보(e.g., 고유값, 적용 가능한 태스크 유형 등)를 생성할 수 있다. 이 때, 피쳐 변환 행렬이 적용될 수 있는 태스크 유형은 피쳐 데이터 셋(DSf)의 속성에 따라 달라질 수 있다. 예를 들어, 피쳐 데이터 셋(DSf)이 특정 태스크 수행을 위한 피쳐들만으로 구성된 경우, 해당 피쳐 데이터 셋에 기반하여 생성되는 피쳐 변환 행렬은 해당 태스크 수행에 필요한 정보만을 변환하는 기능을 수행할 수 있다. 여기서, 변환이란, 전술한 바와 같이 특정 태스크 수행에 필요한 정보를 투영할 수 있는 차원을 정의하고, 고차원의 피쳐 정보를 기정의된 저차원으로 투영하는 것을 의미한다. 특정 태스크 용도의 피쳐 변환 행렬을 이용하여 피쳐 변환을 수행하는 경우, 해당 태스크에 필요한 정보는 기정의된 저차원으로 효과적으로 투영되고, 해당 태스크에 불필요한 정보는 기정의된 저차원으로 효과적으로 투영되지 않을 수 있다. 이와 같이, 피쳐 변환 행렬은 피쳐 정보의 마스크 기능을 수행할 수 있으며, 이를 통해 불필요한 정보가 제거되고 특정 태스크 수행에 필요한 정보만이 부호화되어 압축 효율이 보다 향상될 수 있다.
한편, 피쳐 변환 행렬 생성기(1610)에 의해 생성된 피쳐 변환 행렬 및 행렬 정보는 피쳐 변환 행렬 관리기(1620)에 의해 유지/관리될 수 있다. 예를 들어, 피쳐 변환 행렬 관리기(1620)는 피쳐 변환 행렬 및 행렬 정보를 소정의 저장 공간에 저장하고, 요청이 있는 경우 관련 정보를 인코더 및/또는 디코더에 제공할 수 있다. 실시예에 따라, 피쳐 변환 행렬 관리기(1620)는 인코더 및 디코더 외부의 물리적 또는 논리적 엔티티로 구현될 수 있다. 예를 들어, 피쳐 변환 행렬 관리기(1620)는 외부장치로서, 적어도 하나의 하드웨어 또는 소프트웨어 모듈을 이용해 구현될 수도 있고, 또는 이들의 조합으로 구현될 수도 있다. 또한, 실시예에 따라, 피쳐 변환 행렬 생성기(1610) 및 피쳐 변환 행렬 관리기(1620)는 하나의 엔티티로서 통합적으로 구현될 수도 있다.
도 17은 PCA에 기반하여 피쳐 변환 트레이닝을 수행하는 방법을 구체적으로 나타낸다.
도 17을 참조하면, 피쳐 변환 행렬 생성기(1710)는 피쳐 데이터 셋(DSf)의 평균값(μ)을 획득할 수 있다(수식 1 참조). 그리고, 피쳐 변환 행렬 생성기(1710)는 피쳐 데이터 셋(DSf)의 평균값(μ)에 기반하여 공분산 행렬(C)를 획득할 수 있다(수식 2 참조). 피쳐 변환 행렬 생성기(1710)는 획득된 공분산 행렬(C)의 고유 벡터 및 고유값을 산출함으로써 피쳐 변환 행렬을 생성할 수 있다. 이 때, 고유 벡터는 피쳐 정보를 투영할 차원에 관한 정보를 포함할 수 있으며, 고유값은 해당 고유 벡터가 포함하는 정보량을 나타낼 수 있다.
피쳐 정보를 투영할 차원이 커질수록 정보 손실은 적어지는 반면, 부호화해야 할 정보량은 많아질 수 있다(즉, 트레이드 오프 관계). 도 18은 주성분 개수에 따라 표현 가능한 원본 피쳐맵 데이터의 분산 범위를 나타낸다. 도 18을 참조하면, 주성분의 개수가 증가함에 따라 누적 분산이 1.0에 가까워져 원본 피쳐맵 데이터의 분산을 보다 정확하게 표현할 수 있음을 확인할 수 있다. 고유값을 통해 주성분 개수에 따른 원본 피쳐맵 데이터의 분산을 알 수 있으므로, 이를 통해 적절한 수의 주성분을 결정할 수 있게 된다.
이상 본 개시의 실시예 1에 따라 생성된 피쳐 변환 행렬은 입력 데이터(e.g., 비디오 소스)와는 무관하게 범용적으로 이용될 수 있다. 이 점에서, 본 개시의 실시예 1에 따른 피쳐 변환 방법은 입력 데이터에 의존적인 기존의 차원 감소 기법과는 상이할 수 있다. 이에 따라, 기존의 차원 감소 기법과 달리 피쳐 변환 행렬을 입력 데이터별로 부호화/복호화할 필요가 없으며, 일반적인 변환 기법(e.g., DCT)과 마찬가지로 인코더 및 디코더가 동일한 피쳐 변환 행렬을 사전에 보유하고 있기만 하면 충분하다. 그 결과, 부호화/복호화 효율은 보다 향상될 수 있다.
도 19는 본 개시의 일 실시예에 따른 인코더/디코더 구조를 개략적으로 나타낸 도면이다.
도 19를 참조하면, 인코더(1910)는 피쳐 변환 행렬에 기반하여 피쳐 변환을 수행함으로써, 피쳐(또는, 피쳐맵)을 부호화할 수 있다. 피쳐 변환 행렬은 피쳐맵의 차원을 감소시키는 기능을 수행하며, 도 16 내지 도 18을 참조하여 전술한 바와 같이 입력 데이터에 비의존적인 범용의 변환 행렬일 수 있다. 피쳐 변환 행렬은 소정의 피쳐 데이터 셋을 기반으로 미리 생성되어 피쳐 변환 행렬 관리기(1930)에 의해 유지/관리될 수 있다. 그리고, 인코더(1910)는 피쳐 변환을 위해 피쳐 변환 행렬 관리기(1930)로부터 피쳐 변환 행렬을 획득할 수 있다. 이에 따라, 입력 데이터별로 피쳐 변환 행렬을 생성할 필요가 없으므로, 복잡도가 감소할 수 있다. 또한, 피쳐 변환에 이용된 피쳐 변환 행렬 및 행렬 정보를 별도로 부호화할 필요가 없으므로, 부호화/복호화 효율은 보다 향상될 수 있다.
일 실시예에서, 인코더(1910)는 투영 성분(projection component) 정보를 부호화하여 비트스트림을 생성할 수 있다. 투영 성분 정보는 피쳐 변환을 통해 생성된 주성분 및 주성분 관련 정보를 포함할 수 있다. 이 때, 주성분 관련 정보는 주성분의 크기 및 용도(e.g., 적용 가능한 태스크 유형 등)에 관한 정보를 포함할 수 있다. 투영 성분 정보를 포함하는 신택스 구조의 일 예는 표 1과 같다.
표 1을 참조하면, 피쳐 코딩 신택스(feature_coding) 내에서 투영 성분 정보를 포함하는 PCA_Data_coding 함수가 호출될 수 있다. 이 때, 주성분(principal_components) 및 주성분 관련 정보(information_of_component)는 PCA_Data_coding 함수의 호출 입력값으로 이용될 수 있다.
이상, 본 개시의 실시예 1에 따르면, 피쳐 변환은 범용의 피쳐 변환 행렬에 기반하여 수행될 수 있다. 범용의 피쳐 변환 행렬은 소정의 피쳐 데이터 셋에 기반하여 미리 생성될 수 있으며, 피쳐 변환 행렬 관리기에 의해 유지/관리될 수 있다. 이에 따라, 인코더 및 디코더가 피쳐 변환 행렬을 별도로 생성/관리할 필요가 없게 되므로, 복잡도가 감소하고 부호화/복호화 효율이 보다 향상될 수 있다.
실시예 2
도 14의 예에서와 같이 ROI 영역의 피쳐들만을 이용하여 피쳐 데이터 셋을 구성하고, 해당 피쳐 데이터 셋에 기반하여 피쳐 변환 행렬을 생성/이용하는 경우, non-ROI 영역의 피쳐들에 대한 변환 및 복원 성능이 저하될 수 있다. VCM에서는 객체 검출과 같은 머신 태스크 이외에도 휴먼 비젼과 머신 태스크가 혼합된 하이브리드 태스크를 타겟팅할 수도 있으며, 이 경우 휴먼 비젼을 위한 필수 정보가 non-ROI 영역에 포함될 수 있다. 따라서, 하이브리드 태스크의 성능 저하를 방지하기 위해서는, non-ROI 영역에 대한 피쳐 변환 행렬을 ROI 영역에 대한 피쳐 변환 행렬과 별도로 생성/관리할 필요가 있다.
이에, 본 개시의 실시예 2에 따르면, 피쳐 유형, 태스크 유형 및 특성 등 다양한 조건에 따른 복수의 피쳐 변환 행렬들이 이용될 수 있다. 복수의 피쳐 변환 행렬들은 각각 서로 다른 피쳐 데이터 셋을 이용하여 피쳐 변환 트레이닝을 수행함으로써 생성될 수 있다. 복수의 피쳐 변환 행렬들은 입력 데이터에 비의존적인 범용의 변환 행렬로서, 그 기본적인 속성은 도 13 내지 도 18을 참조하여 전술한 실시예 1과 같을 수 있다. 이하, 실시예 2에 따른 피쳐 변환 행렬 및 이를 이용한 피쳐 변환 방법을 실시예 1과의 차이점을 중심으로 상세히 설명한다.
도 20 및 도 21은 본 개시의 일 실시예에 따른 피쳐 데이터 셋의 생성 방법을 설명하기 위한 도면들이다.
도 20는 ROI 영역 및 non-ROI 영역 각각에 대해 개별적인 피쳐 데이터 셋을 구성하는 방법을 나타낸다.
도 20을 참조하면, 피쳐 데이터 셋 생성기(2020)는 입력 데이터 셋(DSi) 및 레이블 정보(TRi)에 기반하여 피쳐 데이터 셋(DSfx)을 구성할 수 있다. 여기서, 레이블 정보(TRi)란 입력 데이터 셋(DSi)을 이용하여 특정 태스크를 수행한 결과를 의미할 수 있다. 입력 데이터 셋(DSi)으로부터 추출된 피쳐들은 레이블 정보(TRi)에 기반하여 그룹핑되어 피쳐 유형별로 분류될 수 있다. 예를 들어, 레이블 정보(TRi)가 ROI 영역 및 non-ROI 영역에 관한 정보를 포함하는 경우, 입력 데이터 셋(DSi)으로부터 추출된 피쳐들은 ROI 피쳐 및 non-ROI 피쳐로 분류될 수 있다. 또한, 레이블 정보(TRi)가 사람 얼굴이 검출된 제1 ROI 영역, 텍스트가 검출된 제2 ROI 영역 및 non-ROI 영역에 관한 정보를 포함하는 경우, 입력 데이터 셋(DSi)으로부터 추출된 피쳐들은 제1 ROI 피쳐, 제2 ROI 피쳐 및 non-ROI 피쳐로 분류될 수 있다.
피쳐 데이터 셋 생성기(2020)는 입력 데이터 셋(DSi)으로부터 추출된 피쳐들을 상술한 피쳐 유형별로 분류하여 복수의 피쳐 데이터 셋(DSfx)을 구성할 수 있다. 예를 들어, 피쳐 데이터 셋 생성기(2020)는 피쳐 추출 네트워크(2010)에 의해 추출된 피쳐들 중 ROI 피쳐들만을 이용하여 ROI 피쳐 데이터 셋을 구성할 수 있다. 또한, 피쳐 데이터 셋 생성기(2020)는 피쳐 추출 네트워크(2010)에 의해 추출된 피쳐들 중 non-ROI 피쳐들만을 이용하여 non-ROI 피쳐 데이터 셋을 구성할 수 있다.
도 21은 피쳐를 가공하여 피쳐 데이터 셋을 구성하는 방법을 나타낸다.
도 21을 참조하면, 피쳐 데이터 셋 생성기는, 입력 데이터 셋으로부터 획득된 피쳐들을 피쳐 유형별로 학습에 용이한 형태로 가공하여(2110)(예컨대, 데이터 구조 변경), 복수의 피쳐 데이터 셋들(DSfx)을 구성할 수 있다(2120). 예를 들어, 피쳐 데이터 셋 생성기는, 가로가 r이고 세로가 c인 2차원 ROI 피쳐들을 r·c 크기를 갖는 1차원 열 벡터로 변환함으로써, ROI 피쳐 데이터 셋(DSf0)을 구성할 수 있다. 또한, 피쳐 데이터 셋 생성기는, 가로가 r이고 세로가 c인 2차원 non-ROI 피쳐들을 r·c 크기를 갖는 1차원 열 벡터로 변환함으로써, non-ROI 피쳐 데이터 셋(DSf1)을 구성할 수 있다. 도 21에서는 ROI 피쳐 데이터 셋(DSf0)과 non-ROI 피쳐 데이터 셋(DSf1)이 동일한 크기(또는, 개수)로 구성된 예를 도시하나, 본 개시의 실시예 2가 이에 한정되는 것은 아니다. 즉, 실시예에 따라, 복수의 피쳐 데이터 셋들 중 적어도 일부는 서로 다른 크기를 갖도록 구성될 수 있다.
생성된 복수의 피쳐 데이터 셋들(DSfx)은 각각 서로 다른 피쳐 변환 행렬을 생성하기 위한 트레이닝 데이터로 이용될 수 있다.
도 22는 본 개시의 일 실시예에 따른 복수의 피쳐 변환 행렬들의 생성 방법을 설명하기 위한 도면이다. 도 22는 피쳐 변환 트레이닝을 수행하여 복수의 피쳐 변환 행렬들을 생성하는 방법을 개략적으로 나타낸다.
도 22를 참조하면, 피쳐 변환 행렬 생성기(2210)는 복수의 피쳐 데이터 셋들(DSfx)을 이용하여 피쳐 변환 트레이닝을 수행함으로써 복수의 피쳐 변환 행렬들 및 행렬 정보를 생성할 수 있다. 예를 들어, 피쳐 변환 행렬 생성기(2220)는 ROI 피쳐 데이터 셋을 이용하여 피쳐 변환 트레이닝을 수행함으로써 ROI 피쳐 변환 행렬 및 ROI 행렬 정보를 생성할 수 있다. 또한, 피쳐 변환 행렬 생성기(2210)는 non-ROI 피쳐 데이터 셋을 이용하여 피쳐 변환 트레이닝을 수행함으로써 non-ROI 피쳐 변환 행렬 및 non-ROI 행렬 정보를 생성할 수 있다. 여기서, 행렬 정보는 각 피쳐 변환 행렬의 변환 계수들(e.g., 고유 벡터), 분산(e.g., 고유값), 및 용도(또는, 태스크 유형)(e.g., 객체 검출)에 관한 정보를 포함할 수 있다.
한편, 피쳐 변환 행렬 생성기(2210)에 의해 생성된 복수의 피쳐 변환 행렬들 및 행렬 정보는 피쳐 변환 행렬 관리기(2220)에 의해 유지/관리될 수 있다. 예를 들어, 피쳐 변환 행렬 관리기(2220)는 복수의 피쳐 변환 행렬들 및 행렬 정보를 소정의 저장 공간에 저장하고, 요청이 있는 경우 복수의 피쳐 변환 행렬들 중 어느 하나 및 그 행렬 정보를 인코더 및/또는 디코더에 제공할 수 있다.
이상 본 개시의 실시예 2에 따라 생성된 복수의 피쳐 변환 행렬들은 입력 데이터(e.g., 비디오 소스)와는 무관하게 범용적으로 이용될 수 있다. 그 결과, 기존의 차원 감소 기법과 달리 피쳐 변환 행렬을 입력 데이터별로 부호화/복호화할 필요가 없게 되므로, 부호화/복호화 효율이 보다 향상될 수 있다. 한편, 본 개시의 실시예 2에 따르면 복수의 피쳐 변환 행렬들이 제공된다는 점에서, 단일의 피쳐 변환 행렬을 제공하는 실시예 1과는 상이할 수 있다. 이에 따라, 태스크 목적/유형에 따라 복수의 피쳐 변환 행렬들 중 어느 하나를 선택적으로 이용할 수 있게 되므로, 멀티 태스크 지원이 가능해 질 수 있다.
도 23은 본 개시의 일 실시예에 따른 인코더/디코더 구조를 개략적으로 나타낸 도면이다.
도 23을 참조하면, 인코더(2310)는 피쳐 변환 행렬에 기반하여 피쳐 변환을 수행함으로써, 피쳐(또는, 피쳐맵)을 부호화할 수 있다. 피쳐 변환 행렬은 피쳐맵의 차원을 감소시키는 기능을 수행하며, 전술한 바와 같이 입력 데이터에 비의존적인 범용의 변환 행렬일 수 있다.
인코더(2310)는 피쳐 변환 행렬 관리기(2330)에 의해 유지/관리되는 복수의 피쳐 변환 행렬들 중 어느 하나를 선택하여 피쳐 변환을 수행할 수 있다. 일 실시예에서, 인코더(2310)는, 각각의 피쳐 변환 행렬에 의해 재구성된 피쳐와 원본 피쳐 사이의 오차를 비교한 결과에 기반하여, 피쳐 변환 행렬을 선택할 수 있다. 그 구체적 일 예는 표 2와 같다.
표 2에서, Proi는 ROI 피쳐에 대한 피쳐 변환 행렬, 즉 ROI 피쳐 변환 행렬을 의미하고, Pnon_roi는 non-ROI 피쳐에 대한 피쳐 변환 행렬, 즉 non-ROI 피쳐 변환 행렬을 의미할 수 있다. 또한, proi와 pnon_roi는 각각의 피쳐 변환 행렬에 의해 획득되는 계수를 의미할 수 있다. PCA에 기반하여 피쳐 변환이 수행되는 경우, Proi와 Pnon_roi는 각 피쳐에 대한 고유 벡터일 수 있으며(이 경우, 모든 고유 벡터가 아닌 고유 벡터의 일부일 수 있음), proi와 pnon_roi는 고유 벡터를 통해 추출된 주성분일 수 있다. 또한, u'roi와 u'non_roi는 proi와 pnon_roi의 역변환을 통해 재구성된 입력 피쳐를 의미할 수 있다.
표 2를 참조하면, 동일한 피쳐 입력에 대하여, non-ROI 피쳐 변환 행렬에 기반하여 변환 및 재구성한 경우의 오차(errorroi)와 ROI 피쳐 변환 행렬에 기반하여 변환 및 재구성한 경우의 오차(errornon_roi)를 비교하여, 오차가 보다 작은 피쳐 변환 행렬이 피쳐 변환을 위해 선택될 수 있다. 예를 들어, ROI 피쳐 변환 행렬의 오차(errorroi)가 non-ROI 피쳐 변환 행렬의 오차(errornon_roi)보다 큰 경우, non-ROI 피쳐 변환 행렬이 피쳐 변환을 위해 선택될 수 있다(i.e., Matrix_index = A). 이와 달리, ROI 피쳐 변환 행렬의 오차(errorroi)가 non-ROI 피쳐 변환 행렬의 오차(errornon_roi)보다 작거나 같은 경우, ROI 피쳐 변환 행렬이 피쳐 변환을 위해 선택될 수 있다(i.e., Matrix_index = B).
인코더(2310)는 선택된 피쳐 변환 행렬을 나타내는 행렬 인덱스를 비트스트림 내에 부호화할 수 있다. 행렬 인덱스 설정 예는 표 3과 같다.
표 3을 참조하면, 객체 검출 태스크를 위한 ROI 피쳐의 행렬 인덱스는 0, 얼굴 인식 태스크를 위한 ROI 피쳐의 행렬 인덱스는 1, non-ROI 피쳐의 행렬 인덱스는 2로 설정될 수 있다. 다만, 이는 하나의 예일 뿐이므로, 본 개시의 실시예들이 이에 한정되는 것은 아니다. 예를 들어, 표 3의 예와 달리, non-ROI 피쳐의 행렬 인덱스는 0, 객체 검출 태스크를 위한 ROI 피쳐의 행렬 인덱스는 1, 얼굴 인식 태스크를 위한 ROI 피쳐의 행렬 인덱스는 2로 설정될 수 있다. 또한, 객체 검출 태스크를 객체 유형별로 세분화하여 보다 많은 개수(e.g., 4)의 행렬 인덱스들이 설정될 수도 있다.
이와 같이, 행렬 인덱스는 다양한 방법으로 설정/유도될 수 있다.
실시예에 따라, 행렬 인덱스는 ROI 및 non-ROI로 구분하여 설정될 수 있다. 또한, 행렬 인덱스는 각각의 태스크 유형별로 구분하여 설정될 수 있다. 또한, 행렬 인덱스는 소정의 태스크 그룹별로 구분하여 설정될 수 있다.
실시예에 따라, 행렬 인덱스는 별도로 부호화/복호화되지 않고 소정 방식에 따라 유도될 수 있다. 예를 들어, 행렬 인덱스는 피쳐의 평균값 등과 같은 부가 정보에 기반하여 유도될 수 있다. 또한, 행렬 인덱스는 주변 피쳐의 행렬 인덱스에 기반하여 유도될 수 있다.
실시예에 따라, 현재 피쳐의 행렬 인덱스를 부호화/복호화하기 위하여 주변 피쳐의 행렬 인덱스가 이용될 수 있다. 예를 들어, 현재 피쳐의 행렬 인덱스를 주변 피쳐의 행렬 인덱스와의 차분으로 부호화/복호화할 수 있다.
상술한 실시예들은 개별적으로 또는 2 이상의 조합으로 이용될 수 있다.
행렬 인덱스는 선택된 피쳐 변환 행렬을 단계적으로 나타내도록 설정될 수 있다.
실시예에 따라, ROI 및 non-ROI를 제1 플래그/인덱스로 구분한 후, 제2 플래그/인덱스에 기반하여 ROI를 태스크 유형에 따라 추가적으로 구분할 수 있다. 또는, 다수의 태스크를 제3 플래그/인덱스로 구분한 후, 제4 플래그/인덱스에 기반하여 태스크 유형에 따라 태스크를 추가적으로 구분할 수 있다. 이와 같이, 행렬 인덱스는 소정의 분류 기준에 따라 2-스텝으로 설정될 수 있다. 다만, 실시예에 따라, 행렬 인덱스는 이보다 많은 스텝(e.g., 3-스텝, 4-스텝)으로 구분/설정될 수 있음은 물론이다.
행렬 인덱스를 효율적으로 부호화하기 위하여, 다양한 이진화 기법 및 엔트로피 코딩 기법이 이용될 수 있다. 예를 들어, 행렬 인덱스는, FLC, unary, truncated unary, exponential golomb, golomb rice 등과 같은 다양한 이진화 기법을 이용하여 부호화될 수 있다. 또한, 행렬 인덱스는, variable length coding, huffman coding, arithmetic coding 등과 같은 다양한 엔트로피 코딩 기법을 이용하여 부호화될 수 있다. 일 실시예에서, 엔트로피 코딩 효율을 높이기 위하여, 주변 정보(e.g., 주변 코딩 유닛의 행렬 인덱스 정보)가 컨텍스트로 이용될 수 있다.
한편, 부호화/복호화 효율을 높이기 위해서는, 피쳐 변환 행렬에 관한 정보는 비트스트림 내에서 중복되지 않게 효율적으로 표현되어야 한다. 이에, 본 개시의 실시예 2에 따르면, 행렬 인덱스는 피쳐 부호화 단위 별로 상이하게 정의될 수 있다. 피쳐 부호화 단위의 일 예는 표 4와 같다.
표 4를 참조하면, 피쳐 부호화 단위는 시퀀스 레벨, 피쳐셋(또는, 피쳐맵) 그룹, 피쳐셋 및 피쳐 코딩 유닛을 포함할 수 있다. 시퀀스 레벨은 시퀀스 전체 단위 및 시퀀스 일부 단위로 세분화될 수 있다.
표 5 내지 표 9는 피쳐 변환 행렬에 관한 정보를 부호화하기 위한 신택스들을 예시적으로 나타낸다.
먼저 표 5를 참조하면, 시퀀스 헤더(sequence_header)는 신택스 요소들 AdaptiveFeatureTransform_flag 및 AdaptiveFeatureTransform_Unit을 포함할 수 있다.
신택스 요소 AdaptiveFeatureTransform_flag는 복수의 피쳐 변환 행렬이 이용되는지 여부를 나타낼 수 있다.
신택스 요소 AdaptiveFeatureTransform_Unit은 피쳐 변환 행렬이 적용되는 피쳐 부호화 단위를 나타낼 수 있다. 예를 들어, 제1 값(e.g., 0)의 AdaptiveFeatureTransform_Unit은, 피쳐 변환 행렬이 시퀀스 레벨에서 적용됨을 나타낼 수 있다. 또한, 제2 값(e.g., 1)의 AdaptiveFeatureTransform_Unit은, 피쳐 변환 행렬이 GOF 단위로 적용됨을 나타낼 수 있다. 또한, 제3 값(e.g., 2)의 AdaptiveFeatureTransform_Unit은, 피쳐 변환 행렬이 피쳐셋 단위로 적용됨을 나타낼 수 있다. 또한, 제4 값(e.g., 3)의 AdaptiveFeatureTransform_Unit은 피쳐 변환 행렬이 피쳐 코딩 유닛 단위로 적용됨을 나타낼 수 있다. 한편, AdaptiveFeatureTransform_Unit은 AdaptiveFeatureTransform_flag가 제2 값(e.g., 1)을 갖는 경우에만 부호화/시그널링될 수 있다.
다음으로 표 6을 참조하면, 시퀀스 헤더(sequence_header)는 신택스 요소들 AdaptiveFeatureTransform_flag 및 Sequnce_level을 포함할 수 있다.
신택스 요소 AdaptiveFeatureTransform_flag의 시맨틱스는 표 4를 참조하여 전술한 바와 같다.
신택스 요소 Sequence_level은 피쳐 변환 행렬이 시퀀스 레벨로 결정됨을 정의할 수 있다. Sequence_level은 AdaptiveFeatureTransform_flag가 제2 값(e.g., 1)을 갖는 경우에만 부호화/시그널링될 수 있다.
다음으로 표 7을 참조하면, GOF 헤더(GOF_header)는 신택스 요소 GOF_level을 포함할 수 있다.
신택스 요소 GOF_level은 피쳐 변환 행렬이 GOF 레벨로 결정됨을 정의할 수 있다. GOF_level은 표 4 또는 표 5의 AdaptiveFeatureTransform_flag가 제2 값(e.g., 1)을 갖는 경우에만 부호화/시그널링될 수 있다.
다음으로 표 8을 참조하면, 피쳐셋 헤더(featureset_header)는 신택스 요소 Featureset_level을 포함할 수 있다.
신택스 요소 Featureset_level은 피쳐 변환 행렬이 피쳐셋 레벨로 결정됨을 정의할 수 있다. Featureset_level은 표 4 또는 표 5의 AdaptiveFeatureTransform_flag가 제2 값(e.g., 1)을 갖는 경우에만 부호화/시그널링될 수 있다.
다음으로 표 9를 참조하면, 피쳐 코딩 신택스(feature_coding) 내에서는 전술한 신택스 요소 AdaptiveFeatureTransform의 값에 기반하여 PCA_Data_coding 함수가 호출될 수 있다. 구체적으로, AdaptiveFeatureTransform가 제2 값(e.g., 1)을 갖는 경우(즉, 복수의 피쳐 변환 행렬이 이용되는 경우), 주성분(principal_components), 주성분 관련 정보(information_of_component) 및 행렬 인덱스(Matrix_index)를 호출 입력값으로 하여 PCA_Data_coding 함수가 호출될 수 있다. 이와 달리, AdaptiveFeatureTransform가 제1 값(e.g., 0)을 갖는 경우(즉, 하나의 피쳐 변환 행렬이 이용되는 경우), 주성분(principal_components) 및 주성분 관련 정보(information_of_component)를 호출 입력값으로 하여 PCA_Data_coding 함수가 호출될 수 있다.
이상, 본 개시의 실시예 2에 따르면, 피쳐 변환은 복수의 범용 피쳐 변환 행렬들에 기반하여 수행될 수 있다. 복수의 범용 피쳐 변환 행렬들은 복수의 피쳐 데이터 셋들에 기반하여 미리 생성될 수 있으며, 피쳐 변환 행렬 관리기에 의해 유지/관리될 수 있다. 범용의 피쳐 변환 행렬을 이용함에 따라, 인코더 및 디코더가 피쳐 변환 행렬을 별도로 생성/관리할 필요가 없게 되므로, 복잡도가 감소하고 부호화/복호화 효율이 보다 향상될 수 있다. 또한, 태스크 목적/유형에 따라 복수의 피쳐 변환 행렬들 중 어느 하나를 선택적으로 이용할 수 있게 되므로, 멀티 태스크 지원이 가능해 질 수 있다.
실시예 3
특정 머신 태스크를 위한 ROI 피쳐들만을 이용하여 피쳐 데이터 셋을 구성하는 경우, 멀티 태스크 지원이 불가능하고, 태스크 변경시 필요한 정보를 효율적으로 부호화할 수 없게 되는 문제가 발생한다.
이와 같은 문제를 해결하기 위하여, 본 개시의 실시예 3에 따르면, 특정 태스크에 국한되지 않는 범용적인 피쳐 분류 방법 및 피쳐 변환 행렬의 생성 방법을 제공한다. 이하, 첨부된 도면을 참조하여, 본 개시의 실시예 3을 상세히 설명한다.
도 24는 본 개시의 일 실시예에 따른 피쳐 변환 행렬 생성 방법을 설명하기 위한 도면이다.
도 24는 피쳐 데이터 셋의 클러스터링을 수행하여 피쳐 변환 행렬을 생성하는 방법을 개략적으로 나타내다.
도 24를 참조하면, 제1 스테이지(2410)에서는, 피쳐 추출 네트워크에 의해, 입력 데이터, 예컨대 소스 영상으로부터 피쳐들이 추출될 수 있다.
제2 스테이지(2420)에서는, 피쳐 데이터 셋 생성기에 의해, 추출된 피쳐들로부터 피쳐 데이터 셋들이 생성될 수 있다. 일 실시예에서, 추출된 피쳐들은 클러스터링된 후, 피쳐 변환 트레이닝을 위한 소정 단위로 분할될 수 있다. 또한, 분할된 피쳐들은 클러스터링된 후, 학습에 용이한 형태로 가공될 수 있다.
제3 스테이지(2430)에서는, 피쳐 데이터 셋 생성기 또는 피쳐 변환 행렬 생성기에 의해, 피쳐 데이터 셋들을 몇 개의 그룹(또는, 군집)으로 클러스터링할 지가 결정될 수 있다. 일반적으로, 그룹(또는, 군집)의 개수에 비례하여 피쳐 변환 행렬들의 개수도 증가할 수 있다. 피쳐 변환 행렬들의 개수가 증가함에 따라, 피쳐 변환 성능은 향상될 수 있으나, 더 많은 피쳐 변환 행렬을 저장해야 하므로 저장 비용의 증가가 불가피하다. 또한, 피쳐 변환 행렬에 관한 정보량이 증가하게 되어 전체적인 코딩 성능이 저하될 수 있다. 한편, 피쳐 데이터 셋들은 결정된 그룹 개수에 기반하여 분류 및 클러스터링될 수 있다.
제4 스테이지(2440)에서는, 피쳐 변환 행렬 생성기에 의해, 생성된 그룹별로 피쳐 변환 행렬이 생성될 수 있다.
제5 스테이지(2450)에서는, 피쳐 변환 행렬 관리기에 의해, 생성된 피쳐 변환 행렬이 유지/관리될 수 있다.
도 25는 본 개시의 일 실시예에 따른 피쳐 데이터 셋을 클러스터링한 예를 나타낸 도면이다.
도 25를 참조하면, 피쳐 데이터 셋들(DSf)은 소정의 클러스터링 기법, 예컨대 K-mean 클러스터링 기법에 기반하여 8개의 그룹들(또는, 군집들)로 분류될 수 있다. 이 때, 각각의 그룹은 소정의 그룹 정보, 예컨대 평균 및 분산에 기반하여 구분될 수 있다. 부호화 장치는 그룹 정보에 기반하여 현재 피쳐가 속한 그룹이 무엇인지 판별하고, 판별 결과에 기초하여 현재 피쳐에 이용될 피쳐 변환 행렬을 결정할 수 있다. 한편, 복호화 장치는 주성분 관련 정보(Information_of_principal component)에 차원 복원을 위한 정보(e.g., 평균값 등)가 포함될 수 있으므로, 해당 정보에 기초하여 부호화시 이용된 피쳐 변환 행렬을 유추하여 이용할 수 있다.
도 26은 본 개시의 일 실시예에 따른 복호화 장치가 피쳐 변환 행렬을 결정하는 방법을 나타낸 흐름도이다.
도 26을 참조하면, 복호화 장치는 비트스트림으로부터 획득된 Matrix_index_coded_flag를 파싱할 수 있다(S2610). Matrix_index_coded_flag는 피쳐 변환 행렬 인덱스(e.g., Matrix_index)가 부호화되었는지 여부를 나타낼 수 있다. 예를 들어, 제1 값(e.g., 0 또는 False)의 Matrix_index_coded_flag는 피쳐 변환 행렬 인덱스가 부호화되지 않음을 나타낼 수 있다. 이와 달리, 제2 값(e.g., 1 또는 True)의 Matrix_index_coded_flag는 피쳐 변환 행렬 인덱스가 부호화됨을 나타낼 수 있다.
복호화 장치는 Matrix_index_coded_flag가 제2 값(e.g., 1 또는 True)인지 여부를 판별할 수 있다(S2620).
Matrix_index_coded_flag가 제1 값(e.g., 0 또는 False)인 경우(S2820의 'NO'), 복호화 장치는 소정 룰에 따라 피쳐 변환 행렬 인덱스를 산출(또는, 유도)할 수 있다(S2630). 그리고, 복호화 장치는 산출된 피쳐 변환 행렬 인덱스에 기반하여 현재 피쳐에 대한 피쳐 변환 행렬을 결정할 수 있다. 예를 들어, 복호화 장치는 주성분 관련 정보(Information_of_principal component)에 포함된 차원 복원을 위한 정보(e.g., 평균값 등)에 기초하여 피쳐 변환 행렬을 유도할 수 있다.
이와 달리, Matrix_index_coded_flag가 제2 값(e.g., 1 또는 True)인 경우(S2820의 'YES'), 복호화 장치는 비트스트림으로부터 획득된 피쳐 변환 행렬 인덱스(e.g., Matrix_index)를 파싱할 수 있다(S2640). 그리고, 복호화 장치는 파싱된 피쳐 변환 행렬 인덱스에 기반하여 현재 피쳐에 대한 피쳐 변환 행렬을 결정할 수 있다.
한편, 인접한 피쳐 부호화 단위들은 서로 유사한 속성을 가지므로, 피쳐 부호화 과정에서의 여러 컨텍스트(context)들 또한 유사할 수 있으며, 특히 동일/유사한 피쳐 변환 행렬 인덱스 값을 가질 수 있다. 이에, 일 실시예에서, 피쳐 변환 행렬 인덱스는 주변 피쳐의 피쳐 변환 행렬 인덱스 정보에 기반하여 부호화될 수 있다.
도 27 및 도 28은 본 개시의 일 실시예에 따른 피쳐 변환 행렬 인덱스의 MPM 부호화 방법을 설명하기 위한 도면들이다.
먼저 도 27을 참조하면, 이전 부호화 과정에서 인덱스 6 내지 8의 피쳐 변환 행렬들이 이용된 경우, 현재 피쳐에 피쳐 변환 행렬도 인덱스 6 내지 8의 피쳐 변환 행렬들 중 하나일 가능성이 높다. 따라서, 인덱스 6 내지 8의 피쳐 변환 행렬들을 이용하여 MPM(Most Probable Matrix) 리스트를 구성하고, MPM 리스트 관련 정보만을 부호화함으로써, 피쳐 변환 행렬 인덱스의 부호화에 필요한 정보량을 감소시킬 수 있다. 이 때, 피쳐 변환 행렬 인덱스의 MPM 부호화 방법은 기존의 비디오 코덱, 예컨대 VVC(Versatile Video Codec) 표준의 MPM 부호화 방법과 동일/유사할 수 있다.
도 28은 본 개시의 일 실시예에 따른 복호화 장치가 피쳐 변환 행렬을 결정하는 방법을 나타내는 흐름도이다. 이하, 도 26의 방법과 중복된 내용에 대한 설명은 생략하기로 한다.
도 28을 참조하면, 복호화 장치는 비트스트림으로부터 획득된 Matrix_index_coded_flag를 파싱할 수 있다(S2810).
복호화 장치는 Matrix_index_coded_flag가 제2 값(e.g., 1 또는 True)인지 여부를 판별할 수 있다(S2820).
Matrix_index_coded_flag가 제1 값(e.g., 0 또는 False)인 경우(S3020의 'NO'), 복호화 장치는 소정 룰에 따라 피쳐 변환 행렬 인덱스를 산출(또는, 유도)할 수 있다(S2830). 그리고, 복호화 장치는 산출된 피쳐 변환 행렬 인덱스에 기반하여 현재 피쳐에 대한 피쳐 변환 행렬을 결정할 수 있다(S2830). 예를 들어, 복호화 장치는 주성분 관련 정보(Information_of_principal component)에 포함된 차원 복원을 위한 정보(e.g., Mean 값 등)에 기초하여 피쳐 변환 행렬을 유도할 수 있다.
이와 달리, Matrix_index_coded_flag가 제2 값(e.g., 1 또는 True)인 경우(S2820의 'YES'), 복호화 장치는 비트스트림으로부터 획득된 MPM_flag가 제2 값(e.g., 1 또는 True)인지 여부를 판별할 수 있다(S2840). MPM_flag는 현재 피쳐에 대한 피쳐 변환 행렬이 MPM(Most Probable Matrix) 리스트 내에 존재하는지 여부를 나타낼 수 있다. 예를 들어, 제1 값(e.g., 0 또는 False)의 MPM_flag는 현재 피쳐에 대한 피쳐 변환 행렬이 MPM 리스트 내에 존재하지 않음을 나타낼 수 있다. 이와 달리, 제2 값(e.g., 1 또는 True)의 MPM_flag는 현재 피쳐에 대한 피쳐 변환 행렬이 MPM 리스트 내에 존재함을 나타낼 수 있다.
MPM_flag가 제2 값(e.g., 1 또는 True)인 경우(S3040의 'YES'), 복호화 장치는 MPM 인덱스(e.g., MPM_index)를 파싱할 수 있다(S2850). 그리고, 복호화 장치는 파싱된 MPM 인덱스에 기반하여 현재 피쳐에 대한 피쳐 변환 행렬을 결정할 수 있다.
이와 달리, MPM_flag가 제1 값(e.g., 0 또는 False)인 경우(S3040의 'NO'), 복호화 장치는 피쳐 변환 행렬 인덱스(e.g., Matrix_index)를 파싱할 수 있다(S2860). 그리고, 복호화 장치는 파싱된 피쳐 변환 행렬 인덱스에 기반하여 현재 피쳐에 대한 피쳐 변환 행렬을 결정할 수 있다.
이상 본 개시의 실시예 3에 따르면, 클러스터링된 피쳐 데이터 셋에 기반하여 피쳐 변환 행렬을 생성함으로써, 특정 태스크에 국한되지 않는 범용의 피쳐 변환 행렬을 이용할 수 있게 된다. 이에 따라, 멀티 태스크 지원이 가능해지고, 태스크가 변경되더라도 필요한 정보를 효율적으로 부호화할 수 있다. 또한, 본 개시의 실시예 3에 따르면, 소정의 플래그 정보(e.g., Matrix_index_coded_flag, MPM_flag 등)을 이용하여 피쳐 변환 행렬을 결정할 수 있다. 이에 따라, 시그널링 오버헤드가 감소하고 부호화/복호화 효율이 보다 향상될 수 있다.
실시예 4
본 개시의 실시예 4는 PCA 기법을 피쳐 데이터 압축에 활용하는 방법을 제공한다.
부호화 장치는 피쳐 데이터에 대한 주성분 분석을 수행한 후, 부호화할 피쳐 데이터를 최적으로 표현할 수 있는 주성분 개수를 결정할 수 있다. 이 때, 최적의 주성분 개수를 결정함에 있어 고려해야할 사항으로는, 복호화 장치에 전송할 주성분 분석 관련 정보의 크기(e.g., 평균 및 주성분 피쳐 데이터, 각 피쳐 별 주성분 계수들) 및 주성분 개수에 따른 원본 피쳐 데이터의 예측 정확도 등이 있을 수 있다.
피쳐맵 데이터를 복원하는 방법의 일 예는 표 10과 같다.
표 10을 참조하면, 수식 1에 따라, 피쳐맵 데이터(fx)의 예측값(Predx)이 획득될 수 있다. 수식 1에서, μ는 전체 피쳐맵 데이터의 평균을 의미하고, Px(i)는 각각의 주성분에 투영된 계수를 의미하며, Ci는 각각의 주성분을 의미할 수 있다.
그리고, 수식 2에 따라, 원본 피쳐맵 데이터에서 복원된 피쳐맵 데이터인 예측값(Predx)을 차감함으로써, 피쳐맵 데이터(fx)의 잔차값(Resid)이 획득될 수 있다. 부호화 장치는 잔차값(Resid)을 부호화하여 비트스트림을 생성할 수 있다(즉, 잔차 부호화).
마찬가지로, 복호화 장치는 복원된 잔차값(Resid)에 기반하여 피쳐맵 데이터(fx)를 복호화할 수 있다. 예를 들어, 복호화 장치는 비트스트림으로부터 획득된 잔차 신호에 기반하여 피쳐맵 데이터(fx)의 잔차값(Resid)을 복원할 수 있다. 또한, 복호화 장치는 수식 1에 따라 피쳐맵 데이터(fx)의 예측값(Predx)을 복원할 수 있다. 그리고, 복호화 장치는 복원된 잔차값(Resid) 및 예측값(Predx)을 가산함으로써 피쳐맵 데이터(fx)를 복호화할 수 있다.
실시예 4에 따른 피쳐 코딩 신택스(feature_coding)의 일 예는 표 11과 같다.
표 11을 참조하면, 피쳐 코딩 신택스(feature_coding) 내에서 피쳐 예측 모드가 PCA 모드인지 여부를 판별할 수 있다(FeaturePredMode == PCA). 여기서, PCA 모드란 전술한 PCA 기법을 이용하여 피쳐맵 데이터를 예측하는 모드를 의미할 수 있다.
판별 결과, 피쳐 예측 모드가 PCA 모드인 경우, 주성분(principal_components) 및 주성분 관련 정보(information_of_component)를 호출 입력값으로 하여 PCA_Data_coding 함수가 호출될 수 있다. PCA_Data_coding 함수가 호출되는 경우, 주성분 데이터가 전송될 수 있다. 또한, 피쳐 코딩 신택스(feature_coding) 내에는 신택스 요소 skip_channel[i]가 부호화될 수 있다. skip_channel[i]는 피쳐맵 데이터의 각 채널 별로 스킵 모드가 적용되는지 여부를 나타내는 플래그 정보일 수 있다. 예를 들어, 제1 값(e.g., 0 또는 False)의 skip_channel[i]는, i-번째 채널에 대하여, 피쳐맵 데이터의 잔차 데이터가 부호화됨을 나타낼 수 있다(즉, 스킵 모드 미적용). 이와 달리, 제2 값(e.g., 1 또는 True)의 skip_channel[i]는, i-번째 채널에 대하여, 피쳐맵 데이터의 잔차 데이터가 부호화되지 않음을 나타낼 수 있다(즉, 스킵 모드 적용).
skip_channel[i]가 제1 값(e.g., 0 또는 False)인 경우에만, 피쳐 코딩 신택스(feature_coding) 내에서 잔차 데이터 전송을 위한 resid_data_coding 함수가 호출될 수 있다. skip_channel[i]가 제2 값(e.g., 1 또는 True)인 경우, 잔차 데이터는 별도로 전송되지 않으며, 복호화 장치는 PCA 예측 데이터에 기반하여 복원된 예측값을 복원된 피쳐맵 데이터로서 그대로 이용할 수 있다.
이상, 본 개시의 실시예 4에 따르면, 피쳐맵 데이터의 압축/복원을 위한 다양한 코딩 기법 및 신택스 구조가 제공될 수 있다. VCM의 목적과 특성을 해치지 않는 범위에서, 기존의 비디오 코덱, 예컨대 VVC(Versatile Video Codec) 표준의 압축/복원 기술이 본 개시에도 적용될 수 있다. 이에 따라, 부호화/복호화 효율이 보다 향상될 수 있다.
이하, 도 29 및 도 30을 참조하여, 본 개시의 일 실시예에 따른 영상의 피쳐 정보를 부호화/복호화하는 방법을 상세히 설명한다.
도 29는 본 개시의 일 실시예에 따른 피쳐 정보 부호화 방법을 나타낸 흐름도이다. 도 29의 피쳐 정보 부호화 방법은 도 7의 부호화 장치에 의해 수행될 수 있다.
도 29를 참조하면, 부호화 장치는 제1 영상에 대한 적어도 하나의 피쳐맵을 획득할 수 있다(S2910).
여기서, 제1 영상은 소스 영상 생성기에 의해 생성된 비디오/영상 소스를 의미할 수 있다. 실시예에 따라, 소스 영상 생성기는 부호화 장치와 통신을 수행하는 것이 가능하도록 구현된 독립된 외부 장치(e.g., 카메라, 캠코더 등)일 수 있다. 또는, 소스 영상 생성기는 비디오/영상의 캡쳐 등과 같은 제한된 기능을 수행하도록 구현된 내부 장치(e.g., 이미지 센서 모듈 등)일 수도 있다.
피쳐맵은 인공 신경망(e.g., CNN, DNN 등) 기반의 피쳐 추출 방법을 이용하여 입력 영상으로부터 추출된 피쳐들의 집합(즉, 피쳐셋)을 의미할 수 있다. 실시예에 따라, 피쳐맵 추출은 부호화 장치 외부의 피쳐 추출 네트워크에 의해 수행될 수 있다. 이 경우, "피쳐맵의 획득"은 피쳐 추출 네트워크로부터 피쳐맵을 수신하는 것을 의미할 수 있다. 또는, 피쳐맵 추출은 부호화 장치에 의해 수행될 수도 있다. 이 경우, "피쳐맵의 획득"은 제1 영상으로부터 피쳐맵을 추출하는 것을 의미할 수 있다.
부호화 장치는 획득된 피쳐맵에 대한 적어도 하나의 피쳐 변환 행렬을 결정할 수 있다(S2920). 여기서, 적어도 하나의 피쳐 변환 행렬은 2 이상의 피쳐들에 대해 공통적으로 적용되는 범용의 피쳐 변환 행렬을 포함할 수 있다.
범용의 피쳐 변환 행렬은 제2 영상으로부터 획득된 소정의 피쳐 데이터 셋에 기반하여 생성될 수 있다. 여기서, 제2 영상은 태스크 수행 결과(e.g., 객체 검출 태스크에 있어 객체 검출 결과)를 레이블 정보로 갖는 소정의 입력 데이터 셋을 의미할 수 있다.
범용의 피쳐 변환 행렬은, 외부 장치, 예컨대 도 16을 참조하여 전술한 피쳐 변환 행렬 생성기에 의해 생성될 수 있다. 이 경우, 피쳐 변환 행렬 생성기는 피쳐 데이터 셋을 이용하여 피쳐 변환 트레이닝을 수행함으로써 피쳐 변환 행렬(e.g., 고유 벡터) 및 행렬 정보(e.g., 고유값, 적용 가능한 태스크 유형 등)를 생성할 수 있다. 그리고, 생성된 범용의 피쳐 변환 행렬은, 외부 장치, 예컨대 도 16을 참조하여 전술한 피쳐 변환 행렬 관리기에 의해 유지/관리될 수 있다. 이 경우, 피쳐 변환 행렬 관리기는 피쳐 변환 행렬 및 행렬 정보를 소정의 저장 공간에 저장하고, 요청이 있는 경우 관련 정보를 인코더 및/또는 디코더에 제공할 수 있다. 실시예에 따라, 피쳐 변환 행렬 관리기는 피쳐 변환 행렬 생성기와 함께 하나의 물리적 또는 논리적 엔티티를 구성할 수 있다.
일 실시예에서, 피쳐 변환에 이용되는 범용의 피쳐 변환 행렬의 개수는, 타겟 태스크의 유형에 따라 상이하게 결정될 수 있다. 예를 들어, 타겟 태스크가 객체 검출과 같은 머신 태스크인 경우, 피쳐 변환에 이용되는 범용의 피쳐 변환 행렬의 개수는 오직 1개일 수 있다. 이에 반해, 타겟 태스크가 머신 태스크와 휴먼 비젼이 혼합된 하이브리드 태스크인 경우, 피쳐 변환에 이용되는 범용의 피쳐 변환 행렬의 개수는 복수개일 수 있다.
일 실시예에서, 범용의 피쳐 변환 행렬은 피쳐 데이터 셋에 대하여 소정의 차원 감소 알고리즘, 예컨대 주성분 분석(principle component analysis, PCA) 또는 희소 코딩(sparse coding) 알고리즘을 적용함으로써 생성될 수 있다.
일 실시예에서, 피쳐 데이터 셋은 제2 영상에 대한 적어도 하나의 피쳐맵으로부터 선택된(또는, 선별된) 복수의 피쳐들을 포함할 수 있다. 즉, 피쳐 데이터 셋은, 제2 영상으로부터 추출된 피쳐들 중에서 선별된 일부 피쳐들을 이용하여 구성될 수 있다. 이 때, 선택된 복수의 피쳐들은 피쳐 데이터 셋 내에서 변형된 데이터 구조를 가질 수 있다. 즉, 선택된 복수의 피쳐들의 데이터 구조는 학습에 용이한 형태로 변형된 후 피쳐 데이터 셋으로 입력될 수 있다.
일 실시예에서, 피쳐 데이터 셋은 제2 영상으로부터 획득된 복수의 ROI(region of interest) 피쳐들만을 포함할 수 있다. 또는, 피쳐 데이터 셋은 제2 영상으로부터 획득된 ROI 피쳐들 및 non-ROI 피쳐들 각각에 대해 개별적으로 생성될 수 있다.
일 실시예에서, 제2 영상으로부터 획득된 피쳐들은 클러스터링(clustering)되어 상기 피쳐 데이터 셋에 포함될 수 있다.
일 실시예에서, 부호화 장치는 결정된 피쳐 변환 행렬을 나타내는 행렬 인덱스 정보를 부호화할 수 있다. 행렬 인덱스 정보의 일 예는 표 3을 참조하여 전술한 바와 같다. 피쳐 변환 행렬은, 현재 피쳐에 대한 MPM(most probable matrix) 리스트에 기반하여 결정될 수 있다. MPM 리스트는 현재 피쳐 이전에 부호화된 피쳐에 대한 피쳐 변환 행렬을 MPM 후보로서 포함할 수 있다. 현재 피쳐에 대한 피쳐 변환 행렬과 동일한 MPM 후보가 MPM 리스트 내에 존재하는 경우, 부호화 장치는, 해당 MPM 후보를 나타내는 MPM 인덱스를 부호화할 수 있다. 이 경우, 복호화 장치는, 부호화 장치로부터 획득된 MPM 인덱스에 기반하여 현재 피쳐에 대한 피쳐 변환 행렬을 결정할 수 있게 된다.
부호화 장치는 단계 S2920에서 결정된 피쳐 변환 행렬에 기반하여, 피쳐맵에 포함된 복수의 피쳐들을 변환할 수 있다(S2930).
한편, 피쳐 정보를 부호화함에 있어, 예측, 잔차화, 스킵 모드 등과 같은 비디오 코덱 기법들이 이용될 수 있으며, 그 구체적 내용은 표 10 및 표 11을 참조하여 전술한 바와 같으므로 별도의 설명은 생략하기로 한다.
도 30은 본 개시의 일 실시예에 따른 피쳐 정보 복호화 방법을 나타낸 흐름도이다. 도 30의 피쳐 정보 복호화 방법은 도 7의 복호화 장치에 의해 수행될 수 있다.
도 30을 참조하면, 복호화 장치는 제1 영상에 대한 적어도 하나의 피쳐맵을 획득할 수 있다(S3010). 여기서, 피쳐맵은 부호화 장치에 의해 압축/부호화된 피쳐맵 데이터를 의미할 수 있다. 피쳐맵 데이터는 비트스트림을 통해 획득될 수 있다. 이 경우, 피쳐맵 데이터와 피쳐맵 복원에 필요한 부가 정보는 서로 다른 비트스트림을 통해 전송될 수 있다.
복호화 장치는 획득된 피쳐맵에 대한 적어도 하나의 피쳐 변환 행렬을 결정할 수 있다(S3020). 여기서, 적어도 하나의 피쳐 변환 행렬은 2 이상의 피쳐들에 대해 공통적으로 적용되는 범용의 피쳐 변환 행렬을 포함할 수 있다.
범용의 피쳐 변환 행렬은 제2 영상으로부터 획득된 소정의 피쳐 데이터 셋에 기반하여 생성될 수 있다. 여기서, 제2 영상은 태스크 수행 결과(e.g., 객체 검출 태스크에 있어 객체 검출 결과)를 레이블 정보로 갖는 소정의 입력 데이터 셋을 의미할 수 있다.
범용의 피쳐 변환 행렬은, 외부 장치, 예컨대 도 16을 참조하여 전술한 피쳐 변환 행렬 생성기에 의해 생성될 수 있다. 그리고, 생성된 범용의 피쳐 변환 행렬은, 외부 장치, 예컨대 도 16을 참조하여 전술한 피쳐 변환 행렬 관리기에 의해 유지/관리될 수 있다.
일 실시예에서, 피쳐 변환에 이용되는 범용의 피쳐 변환 행렬의 개수는, 타겟 태스크의 유형에 따라 상이하게 결정될 수 있다. 예를 들어, 타겟 태스크가 객체 검출과 같은 머신 태스크인 경우, 피쳐 변환에 이용되는 범용의 피쳐 변환 행렬의 개수는 오직 1개일 수 있다. 이에 반해, 타겟 태스크가 머신 태스크와 휴먼 비젼이 혼합된 하이브리드 태스크인 경우, 피쳐 변환에 이용되는 범용의 피쳐 변환 행렬의 개수는 복수개일 수 있다.
일 실시예에서, 범용의 피쳐 변환 행렬은 피쳐 데이터 셋에 대하여 소정의 차원 감소 알고리즘, 예컨대 주성분 분석(principle component analysis, PCA) 또는 희소 코딩(sparse coding) 알고리즘을 적용함으로써 생성될 수 있다.
일 실시예에서, 피쳐 데이터 셋은 제2 영상에 대한 적어도 하나의 피쳐맵으로부터 선택된(또는, 선별된) 복수의 피쳐들을 포함할 수 있다. 즉, 피쳐 데이터 셋은, 제2 영상으로부터 추출된 피쳐들 중에서 선별된 일부 피쳐들을 이용하여 구성될 수 있다. 이 때, 선택된 복수의 피쳐들은 피쳐 데이터 셋 내에서 변형된 데이터 구조를 가질 수 있다. 즉, 선택된 복수의 피쳐들의 데이터 구조는 학습에 용이한 형태로 변형된 후 피쳐 데이터 셋으로 입력될 수 있다.
일 실시예에서, 피쳐 데이터 셋은 제2 영상으로부터 획득된 복수의 ROI(region of interest) 피쳐들만을 포함할 수 있다. 또는, 피쳐 데이터 셋은 제2 영상으로부터 획득된 ROI 피쳐들 및 non-ROI 피쳐들 각각에 대해 개별적으로 생성될 수 있다.
일 실시예에서, 제2 영상으로부터 획득된 피쳐들은 클러스터링(clustering)되어 상기 피쳐 데이터 셋에 포함될 수 있다.
일 실시예에서, 복호화 장치는 결정된 피쳐 변환 행렬을 나타내는 행렬 인덱스 정보를 부호화할 수 있다. 행렬 인덱스 정보의 일 예는 표 3을 참조하여 전술한 바와 같다. 피쳐 변환 행렬은, 현재 피쳐에 대한 MPM(most probable matrix) 리스트에 기반하여 결정될 수 있다. MPM 리스트는 현재 피쳐 이전에 부호화된 피쳐에 대한 피쳐 변환 행렬을 MPM 후보로서 포함할 수 있다. 현재 피쳐에 대한 피쳐 변환 행렬과 동일한 MPM 후보가 MPM 리스트 내에 존재하는 경우, 복호화 장치는 부호화 장치로부터 획득된 MPM 인덱스에 기반하여 현재 피쳐에 대한 피쳐 변환 행렬을 결정할 수 있게 된다.
복호화 장치는 단계 S3020에서 결정된 피쳐 변환 행렬에 기반하여, 피쳐맵에 포함된 복수의 피쳐들을 역변환할 수 있다(S3030).
한편, 피쳐 정보를 복호화함에 있어, 예측, 잔차화, 스킵 모드 등과 같은 비디오 코덱 기법들이 이용될 수 있으며, 그 구체적 내용은 표 10 및 표 11을 참조하여 전술한 바와 같다.
이상, 도 29 및 도 30을 참조하여 전술한 피쳐 정보 부호화/복호화 방법에 따르면, 피쳐 변환/역변환은 범용의 피쳐 변환 행렬에 기반하여 수행될 수 있다. 범용의 피쳐 변환 행렬은 소정의 피쳐 데이터 셋에 기반하여 미리 생성될 수 있으며, 피쳐 변환 행렬 관리기에 의해 유지/관리될 수 있다. 이에 따라, 부호화/복호화 장치가 피쳐 변환 행렬을 별도로 생성/관리할 필요가 없게 되므로, 복잡도가 감소하고 부호화/복호화 효율이 보다 향상될 수 있다.
또한, 피쳐 변환은 복수의 범용의 피쳐 변환 행렬들에 기반하여 수행될 수 있다. 이에 따라, 태스크 목적/유형에 따라 복수의 피쳐 변환 행렬들 중 어느 하나를 선택적으로 이용할 수 있게 되므로, 멀티 태스크 지원이 가능해 질 수 있다.
또한, 클러스터링된 피쳐 데이터 셋에 기반하여 피쳐 변환 행렬을 생성함으로써, 특정 태스크에 국한되지 않는 범용의 피쳐 변환 행렬을 이용할 수 있게 된다. 이에 따라, 멀티 태스크 지원이 가능해지고, 태스크가 변경되더라도 필요한 정보를 효율적으로 부호화할 수 있다.
본 개시의 예시적인 방법들은 설명의 명확성을 위해서 동작의 시리즈로 표현되어 있지만, 이는 단계가 수행되는 순서를 제한하기 위한 것은 아니며, 필요한 경우에는 각각의 단계가 동시에 또는 상이한 순서로 수행될 수도 있다. 본 개시에 따른 방법을 구현하기 위해서, 예시하는 단계에 추가적으로 다른 단계를 포함하거나, 일부의 단계를 제외하고 나머지 단계를 포함하거나, 또는 일부의 단계를 제외하고 추가적인 다른 단계를 포함할 수도 있다.
본 개시에 있어서, 소정의 동작(단계)을 수행하는 영상 부호화 장치 또는 영상 복호화 장치는 해당 동작(단계)의 수행 조건이나 상황을 확인하는 동작(단계)을 수행할 수 있다. 예를 들어, 소정의 조건이 만족되는 경우 소정의 동작을 수행한다고 기재된 경우, 영상 부호화 장치 또는 영상 복호화 장치는 상기 소정의 조건이 만족되는지 여부를 확인하는 동작을 수행한 후, 상기 소정의 동작을 수행할 수 있다.
본 개시의 다양한 실시예는 모든 가능한 조합을 나열한 것이 아니고 본 개시의 대표적인 양상을 설명하기 위한 것이며, 다양한 실시예에서 설명하는 사항들은 독립적으로 적용되거나 또는 둘 이상의 조합으로 적용될 수도 있다.
또한, 본 개시의 다양한 실시예는 하드웨어, 펌웨어(firmware), 소프트웨어, 또는 그들의 결합 등에 의해 구현될 수 있다. 하드웨어에 의한 구현의 경우, 하나 또는 그 이상의 ASICs(Application Specific Integrated Circuits), DSPs(Digital Signal Processors), DSPDs(Digital Signal Processing Devices), PLDs(Programmable Logic Devices), FPGAs(Field Programmable Gate Arrays), 범용 프로세서(general processor), 컨트롤러, 마이크로 컨트롤러, 마이크로 프로세서 등에 의해 구현될 수 있다.
또한, 본 개시의 실시예가 적용된 영상 복호화 장치 및 영상 부호화 장치는 멀티미디어 방송 송수신 장치, 모바일 통신 단말, 홈 시네마 비디오 장치, 디지털 시네마 비디오 장치, 감시용 카메라, 비디오 대화 장치, 비디오 통신과 같은 실시간 통신 장치, 모바일 스트리밍 장치, 저장 매체, 캠코더, 주문형 비디오(VoD) 서비스 제공 장치, OTT 비디오(Over the top video) 장치, 인터넷 스트리밍 서비스 제공 장치, 3차원(3D) 비디오 장치, 화상 전화 비디오 장치, 및 의료용 비디오 장치 등에 포함될 수 있으며, 비디오 신호 또는 데이터 신호를 처리하기 위해 사용될 수 있다. 예를 들어, OTT 비디오(Over the top video) 장치로는 게임 콘솔, 블루레이 플레이어, 인터넷 접속 TV, 홈시어터 시스템, 스마트폰, 태블릿 PC, DVR(Digital Video Recoder) 등을 포함할 수 있다.
도 31은 본 개시의 실시예들이 적용될 수 있는 컨텐츠 스트리밍 시스템의 일 예를 나타낸 도면이다.
도 31을 참조하면, 본 개시의 실시예가 적용된 컨텐츠 스트리밍 시스템은 크게 인코딩 서버, 스트리밍 서버, 웹 서버, 미디어 저장소, 사용자 장치 및 멀티미디어 입력 장치를 포함할 수 있다.
상기 인코딩 서버는 스마트폰, 카메라, 캠코더 등과 같은 멀티미디어 입력 장치들로부터 입력된 컨텐츠를 디지털 데이터로 압축하여 비트스트림을 생성하고 이를 상기 스트리밍 서버로 전송하는 역할을 한다. 다른 예로, 스마트폰, 카메라, 캠코더 등과 같은 멀티미디어 입력 장치들이 비트스트림을 직접 생성하는 경우, 상기 인코딩 서버는 생략될 수 있다.
상기 비트스트림은 본 개시의 실시예가 적용된 영상 부호화 방법 및/또는 영상 부호화 장치에 의해 생성될 수 있고, 상기 스트리밍 서버는 상기 비트스트림을 전송 또는 수신하는 과정에서 일시적으로 상기 비트스트림을 저장할 수 있다.
상기 스트리밍 서버는 웹 서버를 통한 사용자 요청에 기반하여 멀티미디어 데이터를 사용자 장치에 전송하고, 상기 웹 서버는 사용자에게 어떠한 서비스가 있는지를 알려주는 매개체 역할을 할 수 있다. 사용자가 상기 웹 서버에 원하는 서비스를 요청하면, 상기 웹 서버는 이를 스트리밍 서버에 전달하고, 상기 스트리밍 서버는 사용자에게 멀티미디어 데이터를 전송할 수 있다. 이 때, 상기 컨텐츠 스트리밍 시스템은 별도의 제어 서버를 포함할 수 있고, 이 경우 상기 제어 서버는 상기 컨텐츠 스트리밍 시스템 내 각 장치 간 명령/응답을 제어하는 역할을 수행할 수 있다.
상기 스트리밍 서버는 미디어 저장소 및/또는 인코딩 서버로부터 컨텐츠를 수신할 수 있다. 예를 들어, 상기 인코딩 서버로부터 컨텐츠를 수신하는 경우, 상기 컨텐츠를 실시간으로 수신할 수 있다. 이 경우, 원활한 스트리밍 서비스를 제공하기 위하여 상기 스트리밍 서버는 상기 비트스트림을 일정 시간동안 저장할 수 있다.
상기 사용자 장치의 예로는, 휴대폰, 스마트 폰(smart phone), 노트북 컴퓨터(laptop computer), 디지털방송용 단말기, PDA(personal digital assistants), PMP(portable multimedia player), 네비게이션, 슬레이트 PC(slate PC), 태블릿 PC(tablet PC), 울트라북(ultrabook), 웨어러블 디바이스(wearable device, 예를 들어, 워치형 단말기 (smartwatch), 글래스형 단말기 (smart glass), HMD(head mounted display)), 디지털 TV, 데스크탑 컴퓨터, 디지털 사이니지 등이 있을 수 있다.
상기 컨텐츠 스트리밍 시스템 내 각 서버들은 분산 서버로 운영될 수 있으며, 이 경우 각 서버에서 수신하는 데이터는 분산 처리될 수 있다.
도 32는 본 개시의 실시예들이 적용될 수 있는 컨텐츠 스트리밍 시스템의 다른 예를 나타낸 도면이다.
도 32를 참조하면, VCM과 같은 실시예에서, 기기의 성능, 사용자의 요청, 수행하고자 하는 태스크의 특성 등에 따라 사용자 단말에서 태스크를 수행할 수도 있고 외부 기기(e.g., 스트리밍 서버, 분석 서버 등)에서 태스크를 수행할 수도 있다. 이와 같이, 태스크 수행에 필요한 정보를 외부 기기로 전송하기 위하여, 사용자 단말은 태스크 수행에 필요한 정보(e.g., 태스크, 신경망 네트워크 및/또는 용도와 같은 정보)를 포함하는 비트스트림을 직접 또는 인코딩 서버를 통해 생성할 수 있다.
일 실시예에서, 분석 서버는 사용자 단말로부터(또는, 인코딩 서버로부터) 전송받은 부호화된 정보를 복호화한 후, 사용자 단말의 요청 태스크를 수행할 수 있다. 이 때, 분석 서버는 태스크 수행을 통해 얻은 결과를 사용자 단말에게 다시 전송하거나 연계된 다른 서비스 서버(e.g., 웹 서버)에 전송할 수 있다. 예를 들어, 분석 서버는 화재를 판별하는 태스크를 수행하여 얻은 결과를 소방 관련 서버로 전송할 수 있다. 이 때, 분석 서버는 별도의 제어 서버를 포함할 수 있고, 이 경우 상기 제어 서버는 분석 서버와 연관된 각 장치와 서버 간 명령/응답을 제어하는 역할을 할 수 있다. 또한, 상기 분석 서버는 사용자 기기가 수행하고자 하는 태스크와 수행할 수 있는 태스크 정보를 기반으로 웹 서버에게 원하는 정보를 요청할 수도 있다. 분석 서버가 상기 웹 서버에 원하는 서비스를 요청하면, 상기 웹 서버는 이를 분석 서버에 전달하고, 상기 분석 서버는 사용자 단말로 그에 대한 데이터를 전송할 수 있다. 이 때, 상기 컨텐츠 스트리밍 시스템의 제어 서버는 상기 스트리밍 시스템 내 각 장치 간 명령/응답을 제어하는 역할을 수행할 수 있다.
본 개시의 범위는 다양한 실시예의 방법에 따른 동작이 장치 또는 컴퓨터 상에서 실행되도록 하는 소프트웨어 또는 머신-실행가능한 명령들(예를 들어, 운영체제, 애플리케이션, 펌웨어(firmware), 프로그램 등), 및 이러한 소프트웨어 또는 명령 등이 저장되어 장치 또는 컴퓨터 상에서 실행 가능한 비-일시적 컴퓨터-판독가능 매체(non-transitory computer-readable medium)를 포함한다.
본 개시에 따른 실시예는 피쳐 정보를 부호화/복호화하는데 이용될 수 있다.
Claims (15)
- 복호화 장치에 의해 수행되는 영상의 피쳐 정보를 복호화하는 방법에 있어서,제1 영상에 대한 적어도 하나의 피쳐맵을 획득하는 단계;상기 피쳐맵에 대한 적어도 하나의 피쳐 변환 행렬을 결정하는 단계; 및상기 결정된 피쳐 변환 행렬에 기반하여, 상기 피쳐맵에 포함된 복수의 피쳐들을 역변환하는 단계를 포함하되,상기 적어도 하나의 피쳐 변환 행렬은, 2 이상의 피쳐들에 대해 공통적으로 적용되는 범용의 피쳐 변환 행렬을 포함하고,상기 범용의 피쳐 변환 행렬은, 제2 영상으로부터 획득된 소정의 피쳐 데이터 셋에 기반하여 미리 생성되는복호화 방법.
- 제1항에 있어서,상기 범용의 피쳐 변환 행렬의 개수는, 상기 피쳐맵에 기반하여 수행되는 타겟 태스크의 유형에 따라 상이하게 결정되는복호화 방법.
- 제1항에 있어서,상기 범용의 피쳐 변환 행렬은, 상기 피쳐 데이터 셋에 대하여 소정의 차원 감소 알고리즘을 적용함으로써 생성되는복호화 방법.
- 제1항에 있어서,상기 피쳐 데이터 셋은, 상기 제2 영상으로부터 획득된 복수의 피쳐들 중에서 선택되는 적어도 하나의 피쳐를 포함하는복호화 방법.
- 제4항에 있어서,상기 선택된 피쳐는, 상기 피쳐 데이터 셋 내에서 변형된 데이터 구조를 갖는복호화 방법.
- 제1항에 있어서,상기 피쳐 데이터 셋은, 상기 제2 영상으로부터 획득된 복수의 ROI(region of interest) 피쳐들만을 포함하는복호화 방법.
- 제1항에 있어서,상기 피쳐 데이터 셋은, 상기 제2 영상으로부터 획득된 ROI 피쳐들 및 non-ROI 피쳐들 각각에 대해 개별적으로 생성되는복호화 방법.
- 제1항에 있어서,상기 피쳐 변환 행렬은, 비트스트림으로부터 획득되는 행렬 인덱스 정보에 기반하여 결정되는복호화 방법.
- 제1항에 있어서,상기 제2 영상으로부터 획득된 피쳐들은 클러스터링(clustering)되어 상기 피쳐 데이터 셋에 포함되는복호화 방법.
- 제1항에 있어서,상기 피쳐 변환 행렬은, 현재 피쳐에 대한 MPM(most probable matrix) 리스트에 기반하여 결정되고,상기 MPM 리스트는, 상기 현재 피쳐 이전에 복원된 피쳐에 대한 피쳐 변환 행렬을 MPM 후보로서 포함하는복호화 방법.
- 제1항에 있어서,상기 피쳐맵은, 상기 역변환된 복수의 피쳐들로부터 획득되는 예측값에 기반하여 복호화되는복호화 방법.
- 부호화 장치에 의해 수행되는 영상의 피쳐 정보를 부호화하는 방법에 있어서,제1 영상에 대한 적어도 하나의 피쳐맵을 획득하는 단계;상기 피쳐맵에 대한 적어도 하나의 피쳐 변환 행렬을 결정하는 단계; 및상기 결정된 피쳐 변환 행렬에 기반하여, 상기 피쳐맵에 포함된 복수의 피쳐들을 변환하는 단계를 포함하되,상기 적어도 하나의 피쳐 변환 행렬은, 2 이상의 피쳐들에 대해 공통적으로 적용되는 범용의 피쳐 변환 행렬을 포함하고,상기 범용의 피쳐 변환 행렬은, 제2 영상으로부터 획득되는 소정의 피쳐 데이터 셋에 기반하여 미리 생성되는부호화 방법.
- 제12항에 있어서,상기 범용의 피쳐 변환 행렬의 개수는, 상기 피쳐맵에 기반하여 수행되는 타겟 태스크의 유형에 따라 상이하게 결정되는부호화 방법.
- 제12항에 있어서,상기 범용의 피쳐 변환 행렬은, 상기 피쳐 데이터 셋에 대하여 소정의 차원 감소 알고리즘을 적용함으로써 생성되는부호화 방법.
- 영상의 피쳐 정보를 부호화하는 방법에 의해 생성된 비트스트림을 저장하는 컴퓨터 판독가능한 기록 매체에 있어서, 상기 부호화 방법은,제1 영상에 대한 적어도 하나의 피쳐맵을 획득하는 단계;상기 피쳐맵에 대한 적어도 하나의 피쳐 변환 행렬을 결정하는 단계; 및상기 결정된 피쳐 변환 행렬에 기반하여, 상기 피쳐맵에 포함된 복수의 피쳐들을 변환하는 단계를 포함하되,상기 적어도 하나의 피쳐 변환 행렬은, 2 이상의 피쳐들에 대해 공통적으로 적용되는 범용의 피쳐 변환 행렬을 포함하고,상기 범용의 피쳐 변환 행렬은, 제2 영상으로부터 획득되는 소정의 피쳐 데이터 셋에 기반하여 미리 생성되는기록 매체.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US18/571,028 US20240296649A1 (en) | 2021-06-15 | 2022-06-15 | Method and apparatus for encoding/decoding feature information on basis of general-purpose transformation matrix, and recording medium for storing bitstream |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR10-2021-0077104 | 2021-06-15 | ||
| KR20210077104 | 2021-06-15 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2022265401A1 true WO2022265401A1 (ko) | 2022-12-22 |
Family
ID=84525817
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/KR2022/008491 Ceased WO2022265401A1 (ko) | 2021-06-15 | 2022-06-15 | 범용의 변환 행렬에 기반한 피쳐 정보 부호화/복호화 방법, 장치 및 비트스트림을 저장하는 기록 매체 |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US20240296649A1 (ko) |
| WO (1) | WO2022265401A1 (ko) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2024254776A1 (zh) * | 2023-06-14 | 2024-12-19 | 华为技术有限公司 | 一种通信方法及装置 |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR20190030151A (ko) * | 2017-09-13 | 2019-03-21 | 이재준 | 영상 분석 방법, 장치 및 컴퓨터 프로그램 |
| EP3825916A2 (en) * | 2020-04-23 | 2021-05-26 | Beijing Baidu Netcom Science And Technology Co., Ltd. | Method and apparatus for retrieving image and computer-readable storage medium |
-
2022
- 2022-06-15 WO PCT/KR2022/008491 patent/WO2022265401A1/ko not_active Ceased
- 2022-06-15 US US18/571,028 patent/US20240296649A1/en active Pending
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR20190030151A (ko) * | 2017-09-13 | 2019-03-21 | 이재준 | 영상 분석 방법, 장치 및 컴퓨터 프로그램 |
| EP3825916A2 (en) * | 2020-04-23 | 2021-05-26 | Beijing Baidu Netcom Science And Technology Co., Ltd. | Method and apparatus for retrieving image and computer-readable storage medium |
Non-Patent Citations (3)
| Title |
|---|
| CHMIEL BRIAN; BASKIN CHAIM; ZHELTONOZHSKII EVGENII; BANNER RON; YERMOLIN YEVGENY; KARBACHEVSKY ALEX; BRONSTEIN ALEX M.; MENDELSON : "Feature Map Transform Coding for Energy-Efficient CNN Inference", 2020 INTERNATIONAL JOINT CONFERENCE ON NEURAL NETWORKS (IJCNN), IEEE, 19 July 2020 (2020-07-19), pages 1 - 9, XP033831299, DOI: 10.1109/IJCNN48605.2020.9206968 * |
| HUBERT DE GUISE, OLIVIA DI MATTEO, LUIS L. SANCHEZ-SOTO: "Simple synthesis of unitary transformations", ARXIV:1708.00735V1, ARXIV, CORNELL UNIVERSITY LIBRARY, 2 August 2017 (2017-08-02), pages 1 - 5, XP009541950, DOI: 10.48550/arXiv.1708.00735 * |
| NA LI; YUN ZHANG; C.-C. JAY KUO: "Explainable Machine Learning based Transform Coding for High Efficiency Intra Prediction", ARXIV.ORG, CORNELL UNIVERSITY LIBRARY, 201 OLIN LIBRARY CORNELL UNIVERSITY ITHACA, NY 14853, 21 December 2020 (2020-12-21), 201 Olin Library Cornell University Ithaca, NY 14853 , XP081843269 * |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2024254776A1 (zh) * | 2023-06-14 | 2024-12-19 | 华为技术有限公司 | 一种通信方法及装置 |
Also Published As
| Publication number | Publication date |
|---|---|
| US20240296649A1 (en) | 2024-09-05 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| WO2021177652A1 (ko) | 피쳐 양자화/역양자화를 수행하는 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장하는 기록 매체 | |
| WO2020046091A1 (ko) | 다중 변환 선택에 기반한 영상 코딩 방법 및 그 장치 | |
| WO2021172956A1 (ko) | 영상 특징 정보 시그널링을 위한 영상 부호화/복호화 방법, 장치 및 비트스트림을 전송하는 방법 | |
| WO2020213946A1 (ko) | 변환 인덱스를 이용하는 영상 코딩 | |
| WO2021040483A1 (ko) | 영상 코딩 장치 및 방법 | |
| WO2021040484A1 (ko) | 크로스-컴포넌트 적응적 루프 필터링 기반 영상 코딩 장치 및 방법 | |
| WO2020213944A1 (ko) | 영상 코딩에서 매트릭스 기반의 인트라 예측을 위한 변환 | |
| WO2020213945A1 (ko) | 인트라 예측 기반 영상 코딩에서의 변환 | |
| WO2020231140A1 (ko) | 적응적 루프 필터 기반 비디오 또는 영상 코딩 | |
| WO2020204413A1 (ko) | 복원 픽처를 수정하는 비디오 또는 영상 코딩 | |
| WO2022220514A1 (ko) | 복수의 dimd 모드 기반 인트라 예측 방법 및 장치 | |
| WO2021141226A1 (ko) | 루마 성분 및 크로마 성분에 대한 bdpcm 기반 영상 디코딩 방법 및 그 장치 | |
| WO2020180143A1 (ko) | 루마 맵핑 및 크로마 스케일링 기반 비디오 또는 영상 코딩 | |
| WO2020213867A1 (ko) | 스케일링 리스트 데이터의 시그널링 기반 비디오 또는 영상 코딩 | |
| WO2021125700A1 (ko) | 예측 가중 테이블 기반 영상/비디오 코딩 방법 및 장치 | |
| WO2021101203A1 (ko) | 필터링 기반 영상 코딩 장치 및 방법 | |
| WO2020204419A1 (ko) | 적응적 루프 필터 기반 비디오 또는 영상 코딩 | |
| WO2021125702A1 (ko) | 가중된 예측에 기반한 영상/비디오 코딩 방법 및 장치 | |
| WO2020184928A1 (ko) | 루마 맵핑 및 크로마 스케일링 기반 비디오 또는 영상 코딩 | |
| WO2020197207A1 (ko) | 맵핑을 포함하는 필터링 기반 비디오 또는 영상 코딩 | |
| WO2020180122A1 (ko) | 조건적으로 파싱되는 alf 모델 및 리셰이핑 모델 기반 비디오 또는 영상 코딩 | |
| WO2023132622A1 (ko) | Dimd 모드 기반 인트라 예측 방법 및 장치 | |
| WO2023128703A1 (ko) | 인트라 예측 모드 도출 기반 인트라 예측 방법 및 장치 | |
| WO2023055167A1 (ko) | 인트라 예측 모드 도출 기반 인트라 예측 방법 및 장치 | |
| WO2021162494A1 (ko) | 필터 가용 정보를 선택적으로 시그널링 하는 영상 부호화/복호화 방법, 장치 및 비트스트림을 전송하는 방법 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 22825324 Country of ref document: EP Kind code of ref document: A1 |
|
| WWE | Wipo information: entry into national phase |
Ref document number: 18571028 Country of ref document: US |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| 122 | Ep: pct application non-entry in european phase |
Ref document number: 22825324 Country of ref document: EP Kind code of ref document: A1 |