WO2023075488A1 - 엔트로피 코딩에 기반한 피쳐 부호화/복호화 방법, 장치, 비트스트림을 저장한 기록 매체 및 비트스트림 전송 방법 - Google Patents

엔트로피 코딩에 기반한 피쳐 부호화/복호화 방법, 장치, 비트스트림을 저장한 기록 매체 및 비트스트림 전송 방법 Download PDF

Info

Publication number
WO2023075488A1
WO2023075488A1 PCT/KR2022/016656 KR2022016656W WO2023075488A1 WO 2023075488 A1 WO2023075488 A1 WO 2023075488A1 KR 2022016656 W KR2022016656 W KR 2022016656W WO 2023075488 A1 WO2023075488 A1 WO 2023075488A1
Authority
WO
WIPO (PCT)
Prior art keywords
channel
feature
information
context model
encoding
Prior art date
Application number
PCT/KR2022/016656
Other languages
English (en)
French (fr)
Inventor
김철근
장형문
Original Assignee
엘지전자 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 엘지전자 주식회사 filed Critical 엘지전자 주식회사
Priority to KR1020247011003A priority Critical patent/KR20240056566A/ko
Publication of WO2023075488A1 publication Critical patent/WO2023075488A1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/174Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a slice, e.g. a line of blocks or a group of blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/184Methods 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/625Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using discrete cosine transform [DCT]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods 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 feature encoding/decoding method and apparatus, and more particularly, to a feature encoding/decoding method and apparatus based on entropy coding, and a recording medium storing a bitstream generated by the feature encoding method/device of the present disclosure. and a bitstream transmission method.
  • An object of the present disclosure is to provide a feature encoding/decoding method and apparatus having improved encoding/decoding efficiency.
  • an object of the present disclosure is to provide a method and apparatus for encoding/decoding a feature based on entropy coding.
  • an object of the present disclosure is to provide a feature encoding/decoding method and apparatus based on context model synchronization between channels.
  • an object of the present disclosure is to provide a feature encoding/decoding method and apparatus based on a multi-context model.
  • an object of the present disclosure is to provide a feature encoding/decoding method and apparatus based on limited reference information for intra prediction or inter prediction.
  • an object of the present disclosure is to provide a method for transmitting a bitstream generated by a feature 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 feature encoding method or apparatus according to the present disclosure.
  • an object of the present disclosure is to provide a recording medium storing a bitstream received and decoded by a feature decoding apparatus according to the present disclosure and used for restoring a feature.
  • a feature decoding method includes obtaining channel information of a current coding unit, determining a context model for the current coding unit based on the channel information, and the context model. Decoding the current coding unit based on, wherein the channel information includes channel grouping information of a feature map including the current coding unit, and the context model may be determined based on the channel grouping information. .
  • a feature decoding apparatus includes a memory and at least one processor, wherein the at least one processor obtains channel information of a current coding unit, and generates the current coding unit based on the channel information. determine a context model for the context model, and decode the current coding unit based on the context model, wherein the channel information includes channel grouping information of a feature map including the current coding unit, and the context model It may be determined based on the channel grouping information.
  • a feature encoding method includes determining channel information of a current coding unit, determining a context model for the current coding unit based on the channel information, and the context model. Encoding the current coding unit based on a model, wherein the channel information includes channel grouping information of a feature map including the current coding unit, and the context model may be determined based on the channel grouping information. there is.
  • An apparatus for encoding feature information of an image includes a memory and at least one processor, wherein the at least one processor determines channel information of a current coding unit, and based on the channel information, the current coding unit. Determine a context model for a coding unit, and encode the current coding unit based on the context model, wherein the channel information includes channel grouping information of a feature map including the current coding unit, A context model may be determined based on the channel grouping information.
  • a recording medium may store a bitstream generated by a feature encoding method or a feature encoding apparatus according to the present disclosure.
  • a bitstream transmission method may transmit a bitstream generated by a feature encoding method or a feature encoding apparatus according to the present disclosure to a feature 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 based on entropy coding may be provided.
  • a video encoding/decoding method and apparatus based on context model synchronization between channels may be provided.
  • a video encoding/decoding method and apparatus based on a multi-context model may be provided.
  • a video encoding/decoding method and apparatus based on limited reference information for intra prediction or inter prediction may be provided.
  • a method of transmitting a bitstream generated by a feature encoding method or apparatus according to the present disclosure may be provided.
  • a recording medium storing a bitstream generated by a feature encoding method or apparatus according to the present disclosure may be provided.
  • a recording medium storing a bitstream received and decoded by the feature decoding apparatus according to the present disclosure and used for feature restoration may be provided.
  • FIG. 1 is a diagram schematically illustrating a VCM system to which embodiments of the present disclosure may be applied.
  • FIG. 2 is a diagram schematically illustrating a VCM pipeline structure to which embodiments of the present disclosure may be applied.
  • FIG. 3 is a diagram schematically illustrating an image/video encoder to which embodiments of the present disclosure may be applied.
  • FIG. 4 is a diagram schematically illustrating an image/video decoder to which embodiments of the present disclosure may be applied.
  • FIG. 5 is a flowchart schematically illustrating a feature/feature map encoding procedure to which embodiments of the present disclosure may be applied.
  • FIG. 6 is a flowchart schematically illustrating a feature/feature map decoding procedure to which embodiments of the present disclosure may be applied.
  • FIG. 7 is a diagram illustrating an example of a feature extraction method using a feature extraction network.
  • 8A is a diagram showing data distribution characteristics of a video source.
  • 8B is a diagram illustrating data distribution characteristics of feature sets.
  • FIG. 9 is a diagram illustrating a CABAC encoding structure.
  • 10A and 10B are diagrams for explaining an entropy encoding procedure.
  • 11A and 11B are diagrams for explaining an entropy decoding procedure.
  • FIG. 12 is a diagram illustrating a feature encoding device and a feature decoding device.
  • 13 is a diagram illustrating an example of conversion of feature information.
  • FIG. 14 is a diagram for explaining a problem that occurs when a CABAC entropy coding technique is applied to channel coding.
  • 15A and 15B are diagrams illustrating syntaxes for entropy coding initialization according to an embodiment of the present disclosure.
  • 16 is a diagram illustrating examples of channels to which an entropy coding initialization method according to an embodiment of the present disclosure may be applied.
  • 17A and 17B are diagrams for explaining a context model synchronization method according to an embodiment of the present disclosure.
  • 18 is a diagram illustrating syntax for entropy coding synchronization according to an embodiment of the present disclosure.
  • FIG. 19 is a flowchart illustrating an entropy coding synchronization process according to an embodiment of the present disclosure.
  • 20 is a diagram for explaining a multi-context model application and synchronization method according to an embodiment of the present disclosure.
  • 21 is a diagram illustrating syntax for applying and synchronizing a multi-context model according to an embodiment of the present disclosure.
  • 22 is a diagram illustrating an encoder structure for performing channel clustering.
  • 23 is a diagram illustrating an example of channel grouping.
  • 24A is a diagram illustrating feature channel coding syntax according to an embodiment of the present disclosure.
  • 24B is a diagram illustrating a feature frame parameter set according to an embodiment of the present disclosure.
  • 25 is a diagram illustrating feature channel coding syntax according to an embodiment of the present disclosure.
  • 26A is a diagram illustrating a feature sequence parameter set according to an embodiment of the present disclosure.
  • 26B is a diagram illustrating feature channel coding syntax according to an embodiment of the present disclosure.
  • 27 is a diagram illustrating an example of a feature map composed of four consecutive channels.
  • 28A and 28B are diagrams illustrating feature sequence parameter sets according to an embodiment of the present disclosure.
  • 29A and 29B are diagrams illustrating examples of replacing reference information in intra prediction.
  • FIG. 30 is a flowchart illustrating a reference information substitution method according to an embodiment of the present disclosure.
  • 31A to 31C are diagrams illustrating syntaxes including reference information control information according to an embodiment of the present disclosure.
  • 32 is a flowchart illustrating a reference information configuration method according to an embodiment of the present disclosure.
  • 33 is a flowchart illustrating a feature encoding method according to an embodiment of the present disclosure.
  • 34 is a flowchart illustrating a feature decoding method according to an embodiment of the present disclosure.
  • 35 is a diagram illustrating an example of a content streaming system to which embodiments of the present disclosure may be applied.
  • 36 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.
  • 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”.
  • the present disclosure relates to video/image coding for machines (VCM).
  • VCM video/image coding for machines
  • VCM refers to a compression technology for encoding/decoding a part of a source image/video or information obtained from a source image/video for the purpose of machine vision.
  • an encoding/decoding target may be referred to as a feature.
  • a feature may refer to information extracted from a source image/video based on a task purpose, requirements, surrounding environment, and the like.
  • a feature may have an information type different from that of a source image/video, and accordingly, a compression method and expression format of a feature may also be different from that of a video source.
  • VCM can be applied in a variety of applications.
  • the VCM may be used to store or transmit object recognition information.
  • the VCM is a vehicle location information collected from GPS, sensing information collected from LIDAR, radar, etc., and various vehicles It can be used to transmit control information to other vehicles or infrastructure.
  • the VCM may be used to perform individual tasks of interconnected sensor nodes or devices.
  • FIG. 1 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 10 and a decoding device 20 .
  • the encoding apparatus 10 may generate a bitstream by compressing/encoding features/feature maps extracted from source images/videos, and transmit the generated bitstream to the decoding apparatus 20 through a storage medium or a network.
  • the encoding device 10 may also be referred to as a feature encoding device.
  • a feature/feature map can be created in each hidden layer of a neural network. The size and number of channels of the generated feature map 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.
  • the encoding device 10 may include a feature obtaining unit 11 , an encoding unit 12 and a transmission unit 13 .
  • the feature obtaining unit 11 may obtain a feature/feature map of a source image/video.
  • the feature obtaining unit 11 may obtain a feature/feature map from an external device, for example, a feature extraction network.
  • the feature obtaining unit 11 performs a feature receiving interface function.
  • the feature obtaining unit 11 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 11 performs a feature extraction network function.
  • a neural network e.g., CNN, DNN, etc.
  • the encoding device 10 may further include a source image generator (not shown) for obtaining a source image/video.
  • the source image generation 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 generated source image/video may be transmitted to a feature extraction network and used as input data for extracting a feature/feature map.
  • the encoder 12 may encode the feature/feature map acquired by the feature acquirer 11 .
  • the encoder 12 may perform a series of procedures such as prediction, transformation, and quantization to increase encoding efficiency.
  • Encoded data (encoded feature/feature map information) may be output in the form of a bitstream.
  • a bitstream including coded feature/feature map information may be referred to as a VCM bitstream.
  • the transmission unit 13 may transmit feature/feature map information or data output in the form of a bitstream to the decoding device 20 in a file or streaming form through a digital storage medium or network.
  • the digital storage medium may include various storage media such as USB, SD, CD, DVD, Blu-ray, HDD, and SSD.
  • the transmission unit 13 may include elements for generating a media file having a predetermined file format or elements for data transmission through a broadcasting/communication network.
  • the decoding apparatus 20 may obtain feature/feature map information from the encoding apparatus 10 and restore the feature/feature map based on the obtained information.
  • the decoding device 20 may include a receiving unit 21 and a decoding unit 22 .
  • the receiver 21 may receive a bitstream from the encoding device 10, obtain feature/feature map information from the received bitstream, and transmit the obtained feature/feature map information to the decoder 22.
  • the decoder 22 may decode the feature/feature map based on the obtained feature/feature map information.
  • the decoder 22 may perform a series of procedures such as inverse quantization, inverse transform, and prediction corresponding to the operation of the encoder 14 to increase decoding efficiency.
  • the decoding device 20 may further include a task analysis/rendering unit 23 .
  • the task analysis/rendering unit 23 may perform task analysis based on the decoded feature/feature map. Also, the task analysis/rendering unit 23 may render the decoded feature/feature map in a form suitable for performing the task. Various machine (directed) tasks may be performed based on the task analysis result and the rendered feature/feature map.
  • the VCM system can encode/decode features extracted from source images/videos according to user and/or machine requests, task objectives, and surrounding environments, and perform various machine (oriented) tasks based on the decoded features.
  • the VCM system may be implemented by extending/redesigning a video/image coding system, and may perform various encoding/decoding methods defined in the VCM standard.
  • FIG. 2 is a diagram schematically illustrating a VCM pipeline structure to which embodiments of the present disclosure may be applied.
  • the VCM pipeline 200 may include a first pipeline 210 for image/video encoding/decoding and a second pipeline 220 for feature/feature map encoding/decoding.
  • first pipeline 210 may be referred to as a video codec pipeline
  • second pipeline 220 may be referred to as a feature codec pipeline.
  • the first pipeline 210 may include a first stage 211 encoding an input image/video and a second stage 212 decoding the encoded image/video to generate a reconstructed image/video.
  • the restored image/video may be used for human viewing, that is, for human vision.
  • the second pipeline 220 includes a third stage 221 that extracts features/feature maps from input images/videos, a fourth stage 222 that encodes the extracted features/feature maps, and encoded features/feature maps.
  • a fifth stage 223 of decoding the map to generate a reconstructed feature/feature map may be included.
  • the reconstructed feature/feature map can be used for machine (vision) tasks.
  • the machine (vision) task may mean a task in which an image/video is consumed by a machine.
  • Machine (vision) tasks may be applied to service scenarios such as surveillance, intelligent transportation, smart city, intelligent industry, and intelligent content.
  • the reconstructed feature/feature map may be used for human vision.
  • the feature/feature map encoded in the fourth stage 222 may be transferred to the first stage 221 and used to encode an image/video.
  • an additional bitstream may be generated based on the encoded feature/feature map, and the generated additional bitstream may be transferred to the second stage 222 and used to decode an image/video.
  • the feature/feature map decoded in the fifth stage 223 may be transferred to the second stage 222 and used to decode the image/video.
  • FIG. 2 shows a case in which the VCM pipeline 200 includes the first pipeline 210 and the second pipeline 220, this is illustrative only and the embodiments of the present disclosure are not limited thereto.
  • the VCM pipeline 200 may include only the second pipeline 220, or the second pipeline 220 may be extended to a plurality of feature codec pipelines.
  • the first stage 211 may be performed by an image/video encoder
  • the second stage 212 may be performed by an image/video decoder.
  • the third stage 221 is performed by a VCM encoder (or feature/feature map encoder)
  • the fourth stage 222 is performed by a VCM decoder (or feature/feature map encoder). decoder).
  • VCM encoder or feature/feature map encoder
  • decoder or feature/feature map encoder
  • FIG. 3 is a diagram schematically illustrating an image/video encoder to which embodiments of the present disclosure may be applied.
  • the image/video encoder 300 includes an image partitioner 310, a predictor 320, a residual processor 330, and an entropy encoder 340. ), an adder 350, a filter 360, and a memory 370.
  • the prediction unit 320 may include an inter prediction unit 321 and an intra prediction unit 322 .
  • the residual processing unit 330 may include a transformer 332, a quantizer 333, a dequantizer 334, and an inverse transformer 335.
  • the residual processing unit 330 may further include a subtractor 331 .
  • the adder 350 may be referred to as a reconstructor or a reconstructed block generator.
  • the above-described image segmentation unit 310, prediction unit 320, residual processing unit 330, entropy encoding unit 340, adder 350, and filtering unit 360 may be one or more hardware components (for example, an encoder chipset or processor).
  • the memory 370 may include a decoded picture buffer (DPB) and may be configured by a digital storage medium.
  • DPB decoded picture buffer
  • the hardware components described above may further include the memory 370 as an internal/external component.
  • the image divider 310 may divide an input image (or picture or frame) input to the image/video encoder 300 into one or more processing units.
  • a processing unit may be referred to as a coding unit (CU).
  • a coding unit may be partitioned recursively from a coding tree unit (CTU) or a largest coding unit (LCU) according to a quad-tree binary-tree ternary-tree (QTBTTT) structure.
  • QTBTTT quad-tree binary-tree ternary-tree
  • one coding unit may be divided into a plurality of coding units of deeper depth based on a quad tree structure, a binary tree structure, and/or a ternary structure.
  • a quad tree structure may be applied first and a binary tree structure and/or ternary structure may be applied later.
  • a binary tree structure may be applied first.
  • An image/video coding procedure according to the present disclosure may be performed based on a final coding unit that is not further divided.
  • the maximum coding unit may be directly used as the final coding unit based on the coding efficiency according to the video characteristics, or the coding unit may be recursively divided into coding units of lower depth as needed to obtain an optimal coding unit.
  • a coding unit having a size of may be used as the final coding unit.
  • the coding procedure may include procedures such as prediction, transformation, and restoration to be described later.
  • the processing unit may further include a prediction unit (PU) or a transform unit (TU).
  • PU prediction unit
  • TU transform unit
  • each of the prediction unit and the transform unit may be divided or partitioned from the above-described final coding unit.
  • 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.
  • an MxN block may represent a set of samples or transform coefficients consisting of M columns and N rows.
  • 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 sample may be used as a term corresponding to a pixel or a pel.
  • the video/video encoder 300 subtracts the prediction signal (predicted block, prediction sample array) output from the inter prediction unit 321 or the intra prediction unit 322 from the input video signal (original block, original sample array).
  • a residual signal residual block, residual sample array
  • a unit for subtracting a prediction signal (prediction block, prediction sample array) from an input video signal (original block, original sample array) in the video/video encoder 300 is referred to as a subtraction unit 331. It can be.
  • the prediction unit may perform prediction on a block to be processed (hereinafter referred to as a 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 in units of current blocks or CUs.
  • the prediction unit may generate various types of information related to prediction, such as prediction mode information, and transmit them to the entropy encoding unit 340 .
  • Prediction-related information may be encoded in the entropy encoding unit 340 and output in the form of a bitstream.
  • the intra predictor 322 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 the prediction mode.
  • 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 just an example, and more or less directional prediction modes may be used according to settings.
  • the intra prediction unit 322 may determine a prediction mode applied to the current block by using a prediction mode applied to neighboring blocks.
  • the inter-prediction unit 321 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.
  • 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 a reference block and a reference picture including a temporal neighboring block may be the same or different.
  • a temporal neighboring block may be referred to as a collocated reference block, a collocated CU (colCU), and the like, and a reference picture including a temporal neighboring block may be referred to as a collocated picture (colPic) .
  • the inter prediction unit 321 constructs a motion information candidate list based on neighboring blocks, and generates information indicating which candidate is used to derive a motion vector and/or reference picture index of a current block. can do. Inter prediction may be performed based on various prediction modes.
  • the inter prediction unit 321 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.
  • MVP motion vector prediction
  • the prediction unit 320 may generate prediction signals based on various prediction methods. For example, the prediction unit may apply intra-prediction or inter-prediction to predict one block, or simultaneously apply intra-prediction and inter-prediction. This can be called combined inter and intra prediction (CIIP). Also, the prediction unit may be based on an intra block copy (IBC) prediction mode or a palette mode for block prediction.
  • IBC intra block copy
  • the IBC prediction mode or the palette mode can be used for video/video coding of content such as games, for example, such as screen content coding (SCC). 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.
  • Palette mode can be viewed as an example of intra coding or intra prediction. When the palette mode is applied, a sample value within a picture may be signaled based on information about a palette table and a palette index.
  • the prediction signal generated by the prediction unit 320 may be used to generate a reconstruction signal or a residual signal.
  • the transform unit 332 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 conversion process may be applied to square pixel blocks having the
  • the quantization unit 333 quantizes the transform coefficients and transmits them to the entropy encoding unit 340, and the entropy encoding unit 340 may encode the quantized signal (information on the quantized transform coefficients) and output it as a bitstream. There is. Information about quantized transform coefficients may be referred to as residual information.
  • the quantization unit 333 may rearrange the block-type quantized transform coefficients into a 1-dimensional vector form based on the coefficient scan order, and the quantized transform coefficients based on the quantized transform coefficients in the 1-dimensional vector form. You can also generate information about them.
  • the entropy encoding unit 340 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 340 may encode information necessary for image/video reconstruction (e.g., values of syntax elements, etc.) together with or separately from quantized transform coefficients.
  • Encoded information e.g., encoded image/video information
  • NAL network abstraction layer
  • the image/video information may further include information about 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 image/video information may further include general constraint information.
  • the image/video information may further include a method of generating and using the encoded information, a purpose, and the like.
  • information and/or syntax elements transmitted/signaled from a video/video encoder to a video/video decoder may be included in the video/video information.
  • Image/video information may be encoded through the above-described encoding procedure and included in a bitstream.
  • the bitstream may be transmitted over 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) for transmitting the signal output from the entropy encoding unit 340 and/or a storage unit (not shown) for storing the signal output from the entropy encoding unit 340 may be configured as internal/external elements of the video/video encoder 300, or The transmission unit may be included in the entropy encoding unit 340 .
  • Quantized transform coefficients output from the quantization unit 333 may be used to generate a prediction signal.
  • a residual signal residual block or residual samples
  • the adder 350 adds the reconstructed residual signal to the prediction signal output from the inter prediction unit 321 or the intra prediction unit 322 to obtain a reconstructed signal (a reconstructed picture, a reconstructed block, and a reconstructed sample array). can be created
  • a predicted block may be used as a reconstruction block.
  • the adder 350 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 below.
  • LMCS luma mapping with chroma scaling
  • the filtering unit 360 may improve subjective/objective picture quality by applying filtering to the reconstructed signal.
  • the filtering unit 360 may generate a modified reconstructed picture by applying various filtering methods to the reconstructed picture, and store the modified reconstructed picture in the memory 370, specifically the DPB of the memory 370. can be stored in Various filtering methods may include, for example, deblocking filtering, sample adaptive offset, adaptive loop filter, bilateral filter, and the like.
  • the filtering unit 360 may generate various types of filtering-related information and transmit them to the entropy encoding unit 340 . Filtering-related information may be encoded in the entropy encoding unit 340 and output in the form of a bitstream.
  • the modified reconstructed picture transmitted to the memory 370 may be used as a reference picture in the inter prediction unit 321 . Through this, prediction mismatch in the encoder and decoder stages can be avoided, and encoding efficiency can be improved.
  • the DPB of the memory 370 may store the modified reconstructed picture to be used as a reference picture in the inter prediction unit 321 .
  • the memory 370 may store motion information of a block in the 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 321 to be used as motion information of a spatial neighboring block or motion information of a temporal neighboring block.
  • the memory 370 may store reconstructed samples of reconstructed blocks in the current picture and transfer the stored reconstructed samples to the intra predictor 322 .
  • the video/video encoder basically described with reference to FIG. 3 in that a VCM encoder (or feature/feature map encoder) performs a series of procedures such as prediction, transformation, and quantization to encode a feature/feature map. It may have the same/similar structure to (300). However, the VCM encoder differs from the video/video encoder 300 in that it encodes features/feature maps, and accordingly, the names of each unit (or component) (e.g., video segmentation unit 310, etc.) ) and its specific operation content may differ from that of the video/video encoder 300. Detailed operation of the VCM encoder will be described later.
  • FIG. 4 is a diagram schematically illustrating an image/video decoder to which embodiments of the present disclosure may be applied.
  • the video/video decoder 400 includes an entropy decoder 410, a residual processor 420, a predictor 430, an adder 440, A filter 450 and a memory 460 may be included.
  • the predictor 430 may include an inter predictor 431 and an intra predictor 432 .
  • the residual processing unit 420 may include a dequantizer 421 and an inverse transformer 422 .
  • the above-described entropy decoding unit 410, residual processing unit 420, prediction unit 430, adder 440, and filtering unit 450 may be one hardware component (eg, decoder chipset or processor) according to an embodiment. can be configured by Also, the memory 460 may include a decoded picture buffer (DPB) and may be configured by a digital storage medium.
  • the hardware component may further include the memory 460 as an internal/external component.
  • the image/video decoder 400 may restore the image/video in accordance with the process in which the image/video information is processed in the image/video encoder 300 of FIG. 3 .
  • the image/video decoder 400 may derive units/blocks based on block division related information obtained from a bitstream.
  • the video/video decoder 400 may perform decoding using a processing unit applied in the video/video encoder.
  • a processing unit of decoding may be, for example, a coding unit, and a coding unit may be partitioned from a coding tree unit or a largest coding unit according to a quad tree structure, a binary tree structure, and/or a ternary tree structure.
  • One or more transform units may be derived from a coding unit.
  • the restored video signal decoded and outputted through the video/video decoder 400 may be reproduced through a playback device.
  • the video/video decoder 400 may receive a signal output from the encoder of FIG. 3 in the form of a bitstream, and the received signal may be decoded through the entropy decoding unit 410 .
  • the entropy decoding unit 410 may parse the bitstream to derive information (e.g., image/video information) necessary for image restoration (or picture restoration).
  • the image/video information may further include information about 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 image/video information may further include general constraint information.
  • the image/video information may include a method of generating and using the decoded information, a purpose, and the like.
  • the image/video decoder 400 may decode a picture further based on parameter set information and/or general restriction information. Signaled/received information and/or syntax elements may be obtained from a bitstream by being decoded through a decoding procedure.
  • the entropy decoding unit 410 decodes information in a bitstream based on a coding method such as exponential Golomb coding, CAVLC, or CABAC, and quantizes values of syntax elements required for image reconstruction and transform coefficients for residuals. values can be output.
  • the CABAC entropy decoding method receives bins corresponding to each syntax element in a bitstream, and receives decoding target syntax element information and decoding information of neighboring and decoding target blocks or symbols/bins decoded in the previous step. It is possible to determine a context model using the information of , predict a bin occurrence probability according to the determined context model, and perform arithmetic decoding of the bin to generate a symbol corresponding to the value of each syntax element. there is. At this time, the CABAC entropy decoding method may update the context model by using information on 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 432 and intra prediction unit 431), and entropy decoding is performed by the entropy decoding unit 410.
  • Dual values that is, quantized transform coefficients and related parameter information may be input to the residual processing unit 420 .
  • the residual processor 420 may derive a residual signal (residual block, residual samples, residual sample array).
  • information about filtering may be provided to the filtering unit 450 .
  • a receiver for receiving a signal output from the video/video encoder may be further configured as an internal/external element of the video/video decoder 400, or the receiver may be a component of the entropy decoding unit 410. It could be.
  • the video/video decoder according to the present disclosure may be referred to as a video/video decoding device, and the video/video decoder may be divided into an information decoder (video/video information decoder) and a sample decoder (video/video sample decoder). .
  • the information decoder may include an entropy decoding unit 410, and the sample decoder may include an inverse quantization unit 321, an inverse transform unit 322, an adder 440, a filtering unit 450, and a memory 460. , may include at least one of an inter predictor 432 and an intra predictor 431.
  • the inverse quantization unit 421 may inversely quantize the quantized transform coefficients and output the transform coefficients.
  • the inverse quantization unit 421 may rearrange the quantized transform coefficients in the form of a 2D block. In this case, rearrangement may be performed based on a coefficient scanning order performed by the video/video encoder.
  • the inverse quantization unit 321 may perform inverse quantization on the quantized transform coefficients using a quantization parameter (e.g., quantization step size information) and obtain transform coefficients.
  • a quantization parameter e.g., quantization step size information
  • a residual signal (residual block, residual sample array) is obtained by inverse transforming the transform coefficients.
  • the prediction unit 430 may perform prediction on the current block and generate a predicted block including prediction samples of the current block.
  • the predictor may determine whether intra-prediction or inter-prediction is applied to the current block based on the prediction information output from the entropy decoder 410, and may determine a specific intra/inter prediction mode.
  • the prediction unit 420 may generate prediction signals based on various prediction methods.
  • the predictor may apply intra-prediction or inter-prediction to predict one block, as well as apply intra-prediction and inter-prediction at the same time. This can be called combined inter and intra prediction (CIIP).
  • the prediction unit may be based on an intra block copy (IBC) prediction mode or a palette mode for block prediction.
  • IBC intra block copy
  • the IBC prediction mode or the palette mode can be used for video/video coding of content such as games, for example, such as screen content coding (SCC).
  • SCC screen content coding
  • 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 document.
  • Palette mode can be viewed as an example of intra coding or intra prediction. When the palette mode is applied, information on a palette table and a palette index may be included in image/video information and signal
  • the intra predictor 431 may predict a current block by referring to samples in the current picture. Referenced samples may be located in the neighborhood of the current block or may be located apart from each other according to the prediction mode.
  • prediction modes may include a plurality of non-directional modes and a plurality of directional modes.
  • the intra predictor 431 may determine a prediction mode applied to the current block by using a prediction mode applied to neighboring blocks.
  • the inter-prediction unit 432 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.
  • 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 432 may construct 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, and prediction information may include information indicating an inter prediction mode for a current block.
  • the adder 440 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 432 and/or the intra prediction unit 431). 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 adder 440 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, output after filtering as described later, or may be used for inter prediction of the next picture.
  • LMCS luma mapping with chroma scaling
  • the filtering unit 450 may improve subjective/objective picture quality by applying filtering to the reconstructed signal.
  • the filtering unit 450 may generate a modified reconstructed picture by applying various filtering methods to the reconstructed picture, and store the modified reconstructed picture in the memory 460, specifically the DPB of the memory 460.
  • 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 460 may be used as a reference picture in the inter prediction unit 432 .
  • the memory 460 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 432 to be used as motion information of spatial neighboring blocks or motion information of temporal neighboring blocks.
  • the memory 460 may store reconstructed samples of reconstructed blocks in the current picture and transfer them to the intra prediction unit 431 .
  • the VCM decoder (or feature/feature map decoder) basically performs a series of procedures such as prediction, inverse transformation, and inverse quantization to decode the feature/feature map. It may have the same/similar structure as the video decoder 400. However, the VCM decoder differs from the video/video decoder 400 in that it targets features/feature maps for decoding, and accordingly, the names of each unit (or component) (e.g., DPB, etc.) and its specific operation. It may be different from the image/video decoder 400 in content. The operation of the VCM decoder may correspond to the operation of the VCM encoder, and its detailed operation will be described later in detail.
  • FIG. 5 is a flowchart schematically illustrating a feature/feature map encoding procedure to which embodiments of the present disclosure may be applied.
  • a feature/feature map encoding procedure may include a prediction procedure (S510), a residual processing procedure (S520), and an information encoding procedure (S530).
  • the prediction procedure ( S510 ) may be performed by the prediction unit 320 described above with reference to FIG. 3 .
  • the intra prediction unit 322 may predict a current block (ie, a set of feature elements to be currently encoded) by referring to feature elements in a current feature/feature map. Intra prediction may be performed based on spatial similarity of feature elements constituting a feature/feature map. For example, feature elements included in the same region of interest (RoI) within an image/video may be estimated to have similar data distribution characteristics. Accordingly, the intra predictor 322 may predict the current block by referring to the feature elements of the region of interest including the current block and with the undulations restored. In this case, the referenced feature elements may be located adjacent to the current block or may be located apart from the current block according to the prediction mode.
  • a current block ie, a set of feature elements to be currently encoded
  • Intra prediction may be performed based on spatial similarity of feature elements constituting a feature/feature map. For example, feature elements included in the same region of interest (RoI) within an image/video may be estimated to have similar data distribution characteristics. Accordingly, the intra predict
  • Intra prediction modes for feature/feature map encoding may include a plurality of non-directional prediction modes and a plurality of directional prediction modes.
  • Non-directional prediction modes may include, for example, prediction modes corresponding to a DC mode and a planner mode of an image/video encoding procedure.
  • the directional modes may include, for example, prediction modes corresponding to 33 directional modes or 65 directional modes of an image/video encoding procedure.
  • this is just an example, and the type and number of intra prediction modes may be set/changed in various ways according to embodiments.
  • the inter predictor 321 may predict a current block based on a reference block specified by motion information on a reference feature/feature map (ie, a set of referenced feature elements). Inter prediction may be performed based on temporal similarity of feature elements constituting a feature/feature map. For example, temporally contiguous features may have similar data distribution characteristics. Accordingly, the inter predictor 321 may predict the current block by referring to the restored feature elements of features temporally adjacent to the current feature.
  • the motion information for specifying referenced feature elements may include a motion vector and a reference feature/feature map index.
  • the motion information may further include information about an inter prediction direction (e.g., L0 prediction, L1 prediction, Bi prediction, etc.).
  • a neighboring block may include a spatial neighboring block present in a current feature/feature map and a temporal neighboring block present in a reference feature/feature map.
  • the reference feature/feature map including the reference block and the reference feature/feature map including the temporal neighboring block may be the same or different.
  • a temporal neighboring block may be referred to as a collocated reference block, etc.
  • a reference feature/feature map including a temporal neighboring block may be referred to as a collocated feature/feature map.
  • the inter prediction unit 321 constructs a motion information candidate list based on neighboring blocks and generates information indicating which candidate is used to derive a motion vector and/or a reference feature/feature map index of the current block.
  • Inter prediction may be performed based on various prediction modes.
  • the inter prediction unit 321 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.
  • MVP motion vector prediction
  • motion vectors of neighboring blocks are used as motion vector predictors and motion vector differences are signaled to determine the motion vectors of the current block.
  • the prediction unit 320 may generate a prediction signal based on various prediction methods other than intra prediction and inter prediction described above.
  • the prediction signal generated by the prediction unit 320 may be used to generate a residual signal (residual block, residual feature elements) (S520).
  • the residual processing procedure ( S520 ) may be performed by the residual processing unit 330 described above with reference to FIG. 3 .
  • (quantized) transform coefficients may be generated through a transform and/or quantization procedure for the residual signal, and the entropy encoding unit 340 converts information about the (quantized) transform coefficients into bits as residual information. It can be encoded in the stream (S530).
  • the entropy encoding unit 340 may encode information necessary for feature/feature map reconstruction, for example, prediction information (e.g., prediction mode information, motion information, etc.) into the bitstream.
  • the feature/feature map encoding procedure encodes information for feature/feature map reconstruction (e.g., prediction information, residual information, partitioning information, etc.) and outputs it in a bitstream form (S530), as well as A procedure for generating a reconstructed feature/feature map for the feature map and a procedure for applying in-loop filtering to the reconstructed feature/feature map (optional) may be further included.
  • information for feature/feature map reconstruction e.g., prediction information, residual information, partitioning information, etc.
  • S530 bitstream form
  • a procedure for generating a reconstructed feature/feature map for the feature map and a procedure for applying in-loop filtering to the reconstructed feature/feature map (optional) may be further included.
  • the VCM encoder may derive the (modified) residual feature(s) from the quantized transform coefficient(s) through inverse quantization and inverse transformation, and the predicted feature(s) and the (modified) residual
  • a restoration feature/feature map can be created based on the feature(s).
  • the reconstructed feature/feature map generated in this way may be the same as the reconstructed feature/feature map generated by the VCM decoder.
  • a modified reconstructed feature/feature map may be generated through the in-loop filtering procedure on the reconstructed feature/feature map.
  • the modified reconstructed feature/feature map is stored in a decoded feature buffer (DFB) or memory, and can be used as a reference feature/feature map in a subsequent feature/feature map prediction procedure.
  • (in-loop) filtering-related information may be encoded and output in the form of a bitstream.
  • noise that may occur during feature/feature map coding may be removed, and performance of a feature/feature map-based task performance may be improved.
  • by performing an in-loop filtering procedure at both the encoder end and the decoder end it is possible to ensure uniformity of prediction results, improve the reliability of feature/feature map coding, and reduce the amount of data transmission for feature/feature map coding. there is.
  • FIG. 6 is a flowchart schematically illustrating a feature/feature map decoding procedure to which embodiments of the present disclosure may be applied.
  • the feature/feature map decoding procedure includes image/video information acquisition procedure (S610), feature/feature map restoration procedure (S620 to S640), and in-loop filtering procedure for the reconstructed feature/feature map (S650).
  • S610 image/video information acquisition procedure
  • S620 to S640 feature/feature map restoration procedure
  • S650 in-loop filtering procedure for the reconstructed feature/feature map
  • the feature/feature map reconstruction procedure is applied to the prediction signal and the residual signal obtained through the process of inter/intra prediction (S620) and residual processing (S630), inverse quantization of quantized transform coefficients, and inverse transformation) described in the present disclosure. can be performed based on A modified reconstructed feature/feature map may be generated through an in-loop filtering procedure on the reconstructed feature/feature map, and the modified reconstructed feature/feature map may be output as a decoded feature/feature map.
  • the decoded feature/feature map may be stored in a decoded feature buffer (DFB) or memory and used as a reference feature/feature map in an inter-prediction procedure when decoding a feature/feature map thereafter.
  • the above-described in-loop filtering procedure may be omitted.
  • the reconstructed feature/feature map may be output as it is as a decoded feature/feature map, stored in the decoded feature buffer (DFB) or memory, and then referenced in the inter prediction procedure when decoding the feature/feature map/feature map. can be used as
  • FIG. 7 is a diagram illustrating an example of a feature extraction method using a feature extraction network.
  • the feature extraction network 700 may output a feature set 720 of the video source 710 by receiving a video source 710 and performing a feature extraction operation.
  • the feature set 720 may include a plurality of features (C 0 , C 1 , ... , C n ) extracted from the video source 710 and may be expressed as a feature map.
  • Each feature (C 0 , C 1 , ... , C n ) includes a plurality of feature elements and may have different data distribution characteristics.
  • W, H, and C may mean the width, height, and number of channels of the video source 710, respectively.
  • the number of channels C of the video source 710 may be determined based on the video format of the video source 710 . For example, when the video source 710 has an RGB image format, the number of channels C of the video source 710 may be three.
  • W', H', and C' may mean the width, height, and number of channels of the feature set 720, respectively.
  • the number of channels (C′) of the feature set 720 may be equal to the total number of features (C 0 , C 1 , ... , C n ) extracted from the video source 710 (n+1). In one example, the number of channels (C′) of feature set 720 may be greater than the number of channels (C) of video source 710 .
  • the attributes (W', H', and C') of the feature set 720 may vary depending on the attributes (W, H, and C) of the video source 710. For example, as the number of channels (C) of the video source 710 increases, the number of channels (C′) of the feature set 720 may also increase.
  • the attributes (W', H', C') of the feature set 720 may vary depending on the type and attribute of the feature extraction network 700. For example, when the feature extraction network 700 is implemented as an artificial neural network (eg, CNN, DNN, etc.), each feature (C 0 , C 1 , ... , C n ) is located at the position of the output layer. Accordingly, the attributes (W', H', C') of the feature set 720 may also vary.
  • Video source 710 and feature set 720 may have different data distribution characteristics.
  • the video source 710 may typically consist of one (Grayscale image) channel or three (RGB image) channels. Pixels included in the video source 710 may have the same integer value range for all channels, and may have non-negative values. Also, each pixel value may be evenly distributed within a predetermined integer value range.
  • the feature set 720 consists of channels of various numbers (e.g., 32, 64, 128, 256, 512, etc.) according to the type (e.g., CNN, DNN, etc.) and layer location of the feature extraction network 700. can be configured.
  • the feature elements included in the feature set 720 may have different ranges of real values for each channel or may have negative values. In addition, each feature element value may be intensively distributed in a specific region within a predetermined real value range.
  • FIG. 8A is a diagram showing data distribution characteristics of a video source
  • FIG. 8B is a diagram showing data distribution characteristics of a feature set.
  • a video source is composed of three channels, R, G, and B, and each pixel value may have an integer value range from 0 to 255.
  • the data type of the video source may be expressed as an 8-bit integer type.
  • a feature set is composed of 64 channels (features), and each feature element value may have a real value range from - ⁇ to + ⁇ .
  • the data type of the feature set may be expressed as a 32-bit floating point type.
  • a feature set may have floating point type feature element values, and may have different data distribution characteristics for each channel (or feature).
  • Table 1 shows an example of data distribution characteristics for each channel of the feature set.
  • a feature set may consist of a total of n+1 channels (C 0 , C 1 , ... , C n ).
  • the average value ( ⁇ ), standard deviation ( ⁇ ), maximum value (Max), and minimum value (Min) of feature elements may be different for each channel (C 0 , C 1 , ... , C n ).
  • the average value ( ⁇ ) of feature elements included in channel 0 (C 0 ) may be 10
  • the standard deviation ( ⁇ ) may be 20
  • the maximum value (Max) may be 90
  • the minimum value (Min) may be 60.
  • the average value ( ⁇ ) of the feature elements included in channel 1 (C 1 ) may be 30, the standard deviation ( ⁇ ) may be 10, the maximum value (Max) may be 70.5, and the minimum value (Min) may be -70.2.
  • the average value ( ⁇ ) of the feature elements included in channel n (C n ) may be 100, the standard deviation ( ⁇ ) may be 5, the maximum value (Max) may be 115.8, and the minimum value (Min) may be 80.2.
  • Quantization of the feature/feature map may be performed, for example, based on the above-described different data distribution characteristics for each channel.
  • Feature/feature map data of a floating point type may be converted into an integer type through quantization.
  • feature sets and/or channels successively extracted from a video source may have the same/similar data distribution characteristics.
  • An example of data distribution characteristics of consecutive feature sets is shown in Table 2.
  • f F0 denotes the first feature set extracted from frame 0 (F0)
  • f F1 denotes the second feature set extracted from frame 1 (F1)
  • f F2 denotes frame 2 This means the third feature set extracted from (F2).
  • consecutive first to third feature sets (f F0 , f F1 , f F2 ) are the same/similar average value ( ⁇ ), standard deviation ( ⁇ ), maximum value (Max), and minimum value ( Min) can be
  • corresponding channels in feature sets consecutively extracted from a video source may have the same/similar data distribution characteristics.
  • An example of data distribution characteristics of corresponding channels of consecutive feature sets is shown in Table 3.
  • f F0C0 means the first channel in the first feature set extracted from the frame 0 (F0)
  • f F1C0 means the first channel in the second feature set extracted from the first frame (F1).
  • the first channel (f F0C0 ) in the first feature set and the first channel (f F1C0 ) in the second feature set corresponding thereto have the same/similar mean value ( ⁇ ) and standard deviation ( ⁇ ) , may have a maximum value (Max) and a minimum value (Min).
  • Prediction of a feature/feature map may be performed, for example, based on the similarity of data distribution characteristics between the aforementioned feature sets or channels.
  • feature/feature map information may be encoded by the entropy encoding unit, and some or all of the feature/feature map information may be decoded by the entropy decoding unit.
  • feature/feature map information may be encoded/decoded in units of syntax elements, similarly to image/video information. Encoding/decoding information in this disclosure may include encoding/decoding by a method described in this paragraph.
  • FIG. 9 is a diagram illustrating a CABAC encoding structure for encoding one syntax element.
  • the input signal is a syntax element that is not a binary value
  • the input signal is converted into a binary value through binarization. If the input signal already has a binary value, it is bypassed without binarization.
  • each binary number 0 or 1 constituting the binary value is called a bin.
  • bin(s) for one syntax element may represent the value of the corresponding syntax element.
  • the binarized bins are input into a regular coding engine or a bypass coding engine.
  • the canonical coding engine allocates a context model reflecting a probability value to a corresponding bin, and encodes the corresponding bin based on the assigned context model.
  • the regular coding engine after coding for each bin, the probabilistic model for the bin can be updated. Bins coded in this way are called context-coded bins.
  • the bypass coding engine omits the process of estimating a probability for an input bin and the process of updating a probability model applied to a corresponding bin after coding. Instead of assigning contexts, coding speed is improved by coding input bins by applying a uniform probability distribution (e.g., 50:50).
  • Bins coded in this way are called bypass bins.
  • the context model may be assigned and updated for each bin that is context-coded (regular coding), and the context model may be indicated based on ctxidx or ctxInc.
  • ctxidx may be derived based on ctxInc.
  • a context index (ctxidx) indicating a context model for each of the regularly coded bins may be derived as the sum of a context index increment (ctxInc) and a context index offset (ctxIdxOffset).
  • ctxInc may be derived differently for each bin.
  • ctxIdxOffset may be represented by the lowest value of ctxIdx.
  • ctxIdxOffset may generally be determined according to a slice type, and a context model for one syntax element in a slice may be classified/derived based on ctxinc.
  • Entropy decoding performs the same process as entropy encoding in reverse order.
  • the above entropy coding may be performed as follows, for example.
  • 10A and 10B are diagrams for explaining an entropy encoding procedure.
  • an encoder performs an entropy coding procedure on feature/feature map information.
  • Feature/feature map information may include prediction related information (e.g., inter/intra prediction classification information, intra prediction mode information, inter prediction mode information, etc.), residual information, in-loop filtering related information, etc., or It may contain various syntax elements.
  • Entropy coding may be performed in units of syntax elements.
  • the encoder performs binarization on the target syntax element (S1010).
  • binarization may be based on various binarization methods such as a truncated rice binarization process and a fixed-length binarization process, and a binarization method for a target syntax element may be predefined.
  • the binarization procedure may be performed by the binarization unit 1010 in the entropy encoding unit 1000.
  • the encoder performs entropy encoding on the target syntax element (S1020).
  • the encoder may encode an empty string of a target syntax element based on regular coding (context based) or bypass coding based on an entropy coding technique such as context-adaptive arithmetic coding (CABAC) or context-adaptive variable length coding (CAVLC). and the output may be included in the bitstream.
  • CABAC context-adaptive arithmetic coding
  • CAVLC context-adaptive variable length coding
  • the entropy encoding process may be performed by the entropy encoding processor 1020 in the entropy encoding unit 1000 .
  • the output bitstream can be delivered to the decoder through a (digital) storage medium or network.
  • 11A and 11B are diagrams for explaining an entropy decoding procedure.
  • a decoder may decode encoded feature/feature map information.
  • Feature/feature map information may include prediction related information (e.g., inter/intra prediction classification information, intra prediction mode information, inter prediction mode information, etc.), residual information, in-loop filtering related information, etc., or It may contain various syntax elements. Entropy coding may be performed in units of syntax elements.
  • the decoder performs binarization on the target syntax element (S1110).
  • binarization may be based on various binarization methods such as a truncated rice binarization process and a fixed-length binarization process, and a binarization method for a target syntax element may be predefined.
  • the decoder may derive available empty strings (empty string candidates) for available values of the target syntax element through a binarization procedure.
  • the binarization process may be performed by the binarization unit 1110 in the entropy decoding unit 1100.
  • the decoder performs entropy decoding on the target syntax element (S1120).
  • the decoder sequentially decodes and parses each bin for a target syntax element from the input bit(s) in the bitstream, and compares the derived bin string with available bin strings for the syntax element. If the derived bin string is equal to one of the available bin strings, a value corresponding to the bin string is derived as the value of the corresponding syntax element. If not, the above procedure is performed again after further parsing the next bit in the bitstream. Through this process, corresponding information can be signaled using variable length bits without using a start bit or an end bit for specific information (specific syntax element) in the bitstream. Through this, relatively fewer bits can be allocated for low values, and overall coding efficiency can be increased.
  • the decoder may perform context-based or bypass-based decoding of each bin in a bin string from a bitstream based on an entropy coding technique such as CABAC or CAVLC.
  • the entropy decoding procedure may be performed by the entropy decoding processing unit 1120 in the entropy decoding unit 1100.
  • the bitstream may include various pieces of information for feature/feature map decoding.
  • the bitstream may be delivered to the decoder through a (digital) storage medium or network.
  • a table including syntax elements may be used to indicate signaling of information from an encoder to a decoder.
  • the order of syntax elements in a table containing syntax elements used in this disclosure may indicate a parsing order of syntax elements from a bitstream.
  • An encoder may construct and encode a syntax table so that syntax elements can be parsed by a decoder in a corresponding parsing order, and a decoder parses and decodes syntax elements of a corresponding syntax table from a bitstream according to a corresponding parsing order to obtain values of syntax elements. can be obtained
  • FIG. 12 is a diagram illustrating a feature encoding device and a feature decoding device.
  • feature data obtained from an input image by a feature extraction network 1210 may be transferred to a feature encoding device 1220 .
  • the output of the feature extraction network may be floating point data, and the floating point data may be quantized by the feature quantizer 1221 and converted into integer data having a predefined number of bits.
  • the encoder 1223 may encode feature data converted into integer data and output the encoded feature data in the form of a bitstream, and the decoder 1231 may receive the bitstream and output decoded feature data.
  • the output value of the decoder 1231 may be quantized data, and the feature inverse quantizer 1233 may inverse quantize the quantized data and transmit the quantized data to the task network 1240 .
  • the task network 1240 may generate a final output value through a network suitable for each task based on the feature data restored through the above-described process.
  • Feature information input to the feature encoding device 1220 may be obtained by converting an output of the feature extraction network 1210 into a form that is easy to compress.
  • An example of the conversion is as shown in FIG. 13 .
  • 12 channels can be connected to each other to form one large picture.
  • 12 channels may be integrated into one channel and then input to an encoder and encoded into one frame.
  • it may be considered to use an existing video codec for encoding the frame.
  • existing video codecs are designed to compress a relatively small number of channels such as RGB or YUV, there is a problem in that they are not suitable for compressing dozens of channel information output through a feature extraction network.
  • the entropy coding technique of the existing video codec will be described as an example.
  • CABAC performs coding while updating the probability model for the context (regular coding mode). Accordingly, when encoding objects have similar context distribution characteristics, a probability model may be more accurate and exhibit high performance. On the other hand, in the case of data for which it is difficult to estimate the context probability, bypass coding is performed (bypass coding mode), which applies a defined probability distribution instead of assigning a context.
  • a feature map may be composed of a plurality of channels having different data distribution characteristics.
  • the plurality of channels may be reconstructed in a form that is easy to code as in the example of FIG. 14 .
  • context discontinuity may occur at the boundary between channels.
  • a prediction mode used for channel encoding may also be different for each channel. For example, in the case of channel 0 of FIG. 14 , edge information is removed and a prediction mode suitable for a smooth signal (e.g., DC mode) is highly likely to be selected when intra prediction is applied.
  • a prediction mode suitable for a smooth signal e.g., DC mode
  • Embodiment 1 of the present disclosure relates to a method for initializing a context model (ie, entropy coding initialization) in order to prevent degradation of coding efficiency due to context discontinuity occurring at an inter-channel boundary.
  • entropy coding initialization may be performed for each channel of a feature map, and for this purpose, syntaxes as shown in FIGS. 15A and 15B may be provided.
  • 15A and 15B are diagrams illustrating syntaxes for entropy coding initialization according to an embodiment of the present disclosure.
  • syntax Feature_seq_parameter_set_rbsp( ) may include syntax elements sps_entropy_coding_init_flag and channel_entropy_coding_enabled_flag.
  • a syntax element sps_entropy_coding_init_flag may indicate whether entropy coding initialization is performed. For example, sps_entropy_coding_init_flag of a first value (e.g., 1) may indicate that entropy coding initialization (e.g., context mode) is performed when encoding/decoding a first coding unit of a channel. In contrast, sps_entropy_coding_init_flag of the second value (e.g., 0) may indicate that entropy coding is performed using existing information (e.g., context model) as it is without performing entropy coding initialization. When sps_entropy_coding_init_flag has a first value (e.g., 1), channel_entropy_coding_enabled_flag to be described later may be signaled.
  • a first value e.g. 1, 1
  • channel_entropy_coding_enabled_flag may indicate whether entropy coding initialization can be performed for each channel (ie, whether channel unit initialization is activated).
  • channel_entropy_coding_enabled_flag of a first value (e.g., 1) may represent that entropy coding initialization can be performed for each channel (ie, channel unit).
  • the second value (e.g., 0) of channel_entropy_coding_enabled_flag may represent that entropy coding initialization is not performed for each channel. In this case, entropy coding initialization is performed only once for all channels constituting one frame, and it may be advantageous in terms of coding efficiency when data distribution characteristics between channels are similar.
  • the syntax Feature_Channel_parameter_set_rbsp( ) may include a syntax element channel_entropy_coding_init_flag.
  • channel_entropy_coding_init_flag may indicate whether entropy coding initialization is performed for a current channel referring to a corresponding syntax.
  • channel_entropy_coding_init_flag of a first value (e.g., 1) may indicate that entropy coding is initialized at the encoding/decoding time of the current channel.
  • channel_entropy_coding_init_flag of the second value e.g., 0
  • the second value e.g., 0
  • channel_entropy_coding_init_flag may be signaled only when both the syntax elements sps_entropy_coding_init_flag and channel_entropy_coding_enable_flag of FIG. 15A have a first value (e.g., 1).
  • a channel to which the above-described entropy coding initialization method can be applied may include a channel output through a feature extraction network as well as a channel obtained by transforming the corresponding channel.
  • a specific example is as shown in FIG. 16 .
  • 16 is a diagram illustrating examples of channels to which an entropy coding initialization method according to an embodiment of the present disclosure may be applied.
  • PCA prediction data may include an average feature channel ( ⁇ ), principal component channels (C 0 to C n ⁇ 1 ), and feature representation in a reduced dimension.
  • average feature channel
  • C 0 to C n ⁇ 1 principal component channels
  • feature representation in a reduced dimension.
  • the average feature channel ⁇ and the principal component channels C 0 to C n ⁇ 1 may be subjected to the above-described entropy coding initialization method.
  • whether to initialize entropy coding and whether to initialize in a channel unit can be determined in the sequence stage.
  • whether to initialize entropy coding may be individually determined for each channel. Accordingly, since context discontinuity occurring at the boundary between channels can be removed, coding efficiency and accuracy can be further improved.
  • Embodiment 2 of the present disclosure relates to a method for synchronizing a context model between channels having similar data distribution characteristics.
  • channels having similar data distribution characteristics may be grouped, and a context model may be synchronized and used between channels belonging to the same channel group.
  • the similarity of data distribution characteristics between channels may be determined based on at least one of edge characteristics, average value ( ⁇ ), standard deviation ( ⁇ ), maximum value (Max), and minimum value (Min) of each channel. For example, channels in which the average difference between feature elements is less than a predetermined threshold may be classified as similar channels. Alternatively, channels in which the average difference between feature elements is greater than or equal to the threshold may be classified as different channels.
  • Data distribution characteristics of feature/feature maps are as described above with reference to Tables 1 to 3.
  • the channels included in the feature map may be rearranged based on the similarity of the data distribution characteristics, and the context models may be synchronized and used between channels adjacent to each other.
  • the channel grouping and the channel rearrangement may be performed together. For example, after channels are grouped based on the similarity of data distribution characteristics, channels belonging to each channel group may be rearranged based on the similarity.
  • context model synchronization may be limited to be performed only between a predetermined number (e.g., up to 4) of adjacent channels within each channel group.
  • 17A and 17B are diagrams for explaining a context model synchronization method according to an embodiment of the present disclosure.
  • channels 0, 6, and 9 have similar data distribution characteristics (e.g., mean value, edge characteristics, etc.), and channels 1, 7, and 8 have similar data distribution characteristics, Channels 2 to 5 and channels 10 and 11 may have similar data distribution characteristics. Accordingly, channels 0, 6, and 9 are grouped into channel group 0, channels 1, 7, and 8 are grouped into channel group 1, and channels 2 to 5 and channels 10 and 11 are grouped into channel group 2. can be grouped into.
  • the channel grouping methods of FIGS. 17A and 17B are exemplary, the embodiments of the present disclosure are not limited thereto. For example, the number of channel groups and a grouping method may be set and changed in various ways according to system requirements, task objectives, encoder/decoder designs, and the like.
  • the channels of the feature map may be grouped and rearranged (in encoding/decoding order) based on similarities in data distribution characteristics.
  • 17A shows an example in which only channel grouping is performed
  • FIG. 17B shows an example in which both channel grouping and rearrangement are performed.
  • channel encoding/decoding may be sequentially performed from channel 0 to channel 11.
  • the context model may be initialized since channel 0 is the first channel belonging to channel group 0 (A1).
  • the context model can be stored for the next channel (A2).
  • a predetermined storage space e.g., a context buffer
  • the stored context model can be used as a context model for channel 6, which is the next encoding/decoding target in channel group 0 (A3).
  • the context model stored immediately before within the same channel group 0 may be synchronized and used instead of being initialized and used.
  • context model initialization may be performed (B1).
  • the context model can be stored for the next channel (B2).
  • the stored context model can be synchronized and used as a context model for channel 7, which is the next encoding/decoding target within channel group 1 (B3).
  • context model initialization may be performed (C1).
  • the context model can be stored for the next channel (C2).
  • the stored context model can be synchronized and used as a context model for channel 3, which is the next encoding/decoding target in channel group 2 (C3).
  • channel encoding/decoding may proceed in the order of channel 0, channel 6, channel 9, channel 1, channel 7, channel 8, channel 2-5, and channel 10-11.
  • a context model for channel group 0 may be initialized (A1).
  • the context model finally updated for channel 0 can be synchronized and used as a context model for channel 6 to be encoded/decoded next (A3).
  • the last updated context model may mean a context model upon completion of encoding/decoding for channel 0, and may be stored in a predetermined storage space (e.g., context buffer) for the next channel (A2).
  • the last updated context model may be used for the next channel without being separately stored. This can be seen as being due to the continuous use of the context model by channel rearrangement. When encoding/decoding of channel group 0 is completed in this way, encoding/decoding of channel group 1 may proceed.
  • a context model may be initialized (B1), and the last updated context model for channel 1 is for channel 7, which is the next encoding/decoding target. It can be used in synchronization with the context model (B3). At this time, the last updated context model may be stored in a predetermined storage space for the next channel (B2), or may be used for the next channel without separate storage.
  • the context model when coding/decoding the first coding unit of channel 2 belonging to channel group 2, the context model may be initialized (C1), and the context model finally updated for channel 2 is channel 3, which is the next coding/decoding target. It can be synchronized and used as a context model for (C3). At this time, the last updated context model may be stored in a predetermined storage space for the next channel (C2), or may be used for the next channel without separate storage.
  • syntax as shown in FIG. 18 may be provided.
  • 18 is a diagram illustrating syntax for entropy coding synchronization according to an embodiment of the present disclosure.
  • syntax Feature_seq_parameter_set_rbsp( ) may include a syntax element channel_entropy_coding_sync_flag.
  • channel_entropy_coding_sync_flag may indicate whether entropy coding synchronization is performed.
  • channel_entropy_coding_sync_flag of a first value (e.g., 1) may indicate that synchronization with a pre-stored context model is performed during encoding/decoding of the first coding unit of the channel. If a context model to be used for synchronization does not exist, the synchronization process is skipped, and a context model is newly defined and then initialized and used for encoding/decoding. In this case, the available context model may vary depending on the method of packing and encoding the feature map. In contrast, channel_entropy_coding_sync_flag of the second value (e.g., 0) may indicate that the synchronization is not performed.
  • FIG. 19 is a flowchart illustrating an entropy coding synchronization process according to an embodiment of the present disclosure.
  • Each step of FIG. 19 may be performed by the feature encoding device or feature decoding device described above with reference to FIG. 12 .
  • each step of FIG. 19 will be described based on a feature encoding device.
  • the feature encoding apparatus may determine whether a current coding unit to be encoded is the first coding unit of a channel and entropy coding synchronization is performed (S1910). In one embodiment, whether to perform entropy coding synchronization may be determined based on the channel_entropy_coding_sync_flag described above with reference to FIG. 18 .
  • the feature encoding device can determine whether a pre-stored context model is available. Yes (S1920).
  • the feature encoding apparatus may synchronize the context model for the current channel with the pre-stored context model (S1930).
  • the feature encoding apparatus may initialize the context model for the current channel (S1940).
  • initializing the context model it goes without saying that the entropy coding initialization method of the first embodiment described above can be applied.
  • the feature encoding apparatus may encode the current coding unit using a context model applied to a previous coding unit in coding order or a context model applied to a previous channel in coding order.
  • entropy coding synchronization between channels may be performed.
  • channel grouping and rearrangement based on the similarity of data distribution characteristics may be performed. Accordingly, compared to initializing the context model for each channel without any condition at the boundary between channels, redundancy of the probability model is removed and accuracy is increased, so that coding efficiency can be further improved.
  • Embodiment 3 of the present disclosure relates to a method of applying a multi-context model to a channel and a method of synchronizing the context model.
  • 20 is a diagram for explaining a multi-context model application and synchronization method according to an embodiment of the present disclosure.
  • context model 0 may be applied to a first region
  • context model 1 may be applied to a second region
  • context model 2 may be applied to a third region
  • context model 3 may be applied to a fourth region.
  • context model synchronization based on a location within a channel may be performed.
  • the context model for the current coding unit in channel 1 may be set (or synchronized) with context model 0 applied at the same position as or corresponding to the current coding unit in channel 0 where encoding/decoding is completed.
  • the same position or corresponding position may mean a position having the same coordinates as the upper left position of the current coding unit within the reference channel.
  • syntax as shown in FIG. 21 may be provided.
  • 21 is a diagram illustrating syntax for applying and synchronizing a multi-context model according to an embodiment of the present disclosure.
  • syntax Feature_seq_parameter_set_rbsp( ) may include syntax elements channel_entropy_coding_collocated_sync_flag, multiple_context_enable_flag, and num_context_model_minus1.
  • channel_entropy_coding_collocated_sync_flag may indicate whether to perform synchronization with a context model of the same position or a corresponding position in a previous channel in a current channel referring to a corresponding syntax.
  • channel_entropy_coding_collocated_sync_flag of a first value (e.g., 1) may indicate that synchronization with a context model of the same location or a corresponding location in the current channel is performed.
  • channel_entropy_coding_collocated_sync_flag of the second value e.g., 0
  • the second value e.g., 0
  • the syntax element multiple_context_enable_flag may indicate whether a plurality of context models, that is, a multi-context model can be applied to a current channel. For example, channel_entropy_coding_collocated_sync_flag of a first value (e.g., 1) may indicate that the multi-context model can be applied to the current channel (ie, activated). In contrast, channel_entropy_coding_collocated_sync_flag of the second value (e.g., 0) may indicate that the multi-context model cannot be applied to the current channel (ie, deactivated).
  • the syntax element num_context_model_minus1 may indicate a value obtained by subtracting 1 from the maximum available context model. num_context_model_minus1 may be signaled only when multiple_context_enable_flag is the first value (e.g, 1).
  • a region-based multi-context model may be applied to each channel. Also, context model synchronization of the same location or a corresponding location between channels may be performed. Accordingly, since the data distribution characteristics of the channel can be reflected more accurately, the redundancy of the probability model is removed and the accuracy is increased, so that the coding efficiency can be further improved.
  • Embodiment 4 of the present disclosure relates to a channel grouping method.
  • Tiles and subpictures of existing video codecs aim for independent coding/decoding. That is, since different tiles and subpictures do not have intercoding/decoding dependence, spatial prediction and entropy coding processes can be independently applied.
  • the above-described embodiments 1 to 4 relate to context model management (ie, initialization and/or synchronization) at a channel boundary, and discontinuity removal and coding efficiency at a channel boundary rather than independent encoding/decoding of a channel. aim for improvement. Therefore, in VCM, independence between spatial prediction and entropy coding processes may not exist.
  • the location of a current tile can be derived based on information about a current encoding/decoding position and tile columns and rows.
  • spatial continuity may not exist between channels constituting a channel group.
  • a plurality of channels included in the feature map may be grouped based on a clustering technique.
  • the specific process is shown in Table 4 below.
  • (channel) clusters may be configured such that the similarity between data belonging to the same (channel) cluster is higher than the similarity between data belonging to different (channel) clusters through a clustering process.
  • the degree of similarity between the data may be determined based on a Euclidien distance. For example, data having a Euclidean distance less than a predetermined threshold may be classified as having a relatively high degree of similarity, and data having a Euclidean distance greater than or equal to the threshold may be classified as having a relatively low degree of similarity.
  • the clustering process may be performed after the feature extraction process and before the feature encoding process.
  • a plurality of channels included in the feature map may be grouped based on a predetermined threshold.
  • the specific process is shown in Table 5 below.
  • the threshold value may vary according to system requirements, task purpose, and encoder/decoder design, and reflects statistical characteristics (e.g., average value, variance, etc.) of feature values of the donated/decoded feature map (or frame). can be determined adaptively.
  • channels may be grouped in various ways according to task purpose, video type, and the like.
  • the channel grouping process may be executed by an external network (e.g., channel grouping manager) together with or separately from the feature extraction process.
  • the channel grouping process may be performed by an external network in front of the encoder.
  • channel grouping-related information e.g., grouping result - mapping table, threshold, etc.
  • Information related to channel grouping may be defined in several layers. For example, as shown in FIG. 23, channel grouping-related information may be defined at the channel level. In order to signal channel grouping related information at the channel level, syntaxes such as those of FIGS. 24A and 24B may be provided.
  • 24A is a diagram illustrating feature channel coding syntax according to an embodiment of the present disclosure.
  • feature channel coding syntax may include syntax elements channel_group_id and channel_group_id_sync_flag.
  • the feature channel coding syntax is an example of encoding/decoding information related to channel grouping in units of channels.
  • a syntax element channel_group_id may indicate a channel group to which a current channel referring to the syntax belongs.
  • channel_group_id of channel 0 may be 0 and channel_group_id of channel 1 may be 2.
  • the channel_group_id may be signaled only when the channel_entropy_coding_sync_flag described above with reference to FIG. 18 is a first value (e.g., 1) (ie, when entropy coding synchronization between channels is performed).
  • the context model may be initialized (initialization(contextmodel[channel_group_id])).
  • each channel since each channel represents a unique feature of an input video, it may have similar data distribution characteristics between adjacent frames (that is, temporally). Accordingly, channel_group_id may be the same or similar between corresponding channels of adjacent frames. Accordingly, channel_group_id reuse information of the previous frame may be signaled.
  • 24B is a diagram illustrating a feature frame parameter set according to an embodiment of the present disclosure.
  • a feature frame parameter set (feature_frame_parameter_set_rbsp( )) may include a syntax element channel_group_id_sync_flag.
  • channel_group_id_sync_flag may indicate whether channel_group_id of a previous (feature) frame is reused for a current (feature) frame referring to the parameter set.
  • channel_group_id_sync_flag of a first value e.g., 1
  • the channel_group_id_sync_flag of the second value e.g., 0
  • the channel_group_id of the current (feature) frame is encoded/decoded without reusing the channel_group_id of the previous (feature) frame.
  • FIG. 25 An example of feature channel coding syntax specifying whether to reuse channel_group_id is shown in FIG. 25 .
  • 25 is a diagram illustrating feature channel coding syntax according to an embodiment of the present disclosure.
  • feature channel coding syntax may include syntax elements channel_group_id. Semantics of channel_group_id are as described above with reference to FIG. 24A.
  • channel_entropy_coding_sync_flag a first value (e.g., 1) (ie, entropy coding synchronization between channels is performed)
  • channel_group_id may be defined at the channel level, but may also be defined at a higher level, for example, at the frame level.
  • channel_group_id may be encoded/decoded in the order of channels at the frame level.
  • syntaxes such as those of FIGS. 26A and 26B may be provided.
  • 26A is a diagram illustrating a feature sequence parameter set according to an embodiment of the present disclosure.
  • a feature sequence parameter set (Feature_seq_parameter_set_rbsp( )) may include syntax elements channel_entropy_coding_sync_flag, frame_group_id_enable_flag, and channel_group_ids[i].
  • Semantics of the syntax element channel_entropy_coding_sync_flag are as described above with reference to FIG. 18 .
  • frame_group_id_enable_flag may indicate whether channel_group_id is encoded/decoded at a frame level or a channel level.
  • frame_group_id_enable_flag of the first value e.g, 1
  • frame_group_id_enable_flag of the second value e.g, 0
  • frame_group_id_enable_flag of the second value e.g, 0
  • channel_group_ids[i] may indicate channel_group_id of each channel in the current frame referring to the feature sequence parameter set.
  • Channel_group_ids[i] may be encoded/decoded as much as the number of channels in the current frame (num_channel_minus1 + 1).
  • 26B is a diagram illustrating feature channel coding syntax according to an embodiment of the present disclosure.
  • a variable current_channel represents a current channel to be encoded/decoded.
  • the current_channel may be derived based on the currently encoded/decoded position, the number (size) of channels, the size of the input feature map, and the like.
  • the variable prev_channel_group_ids may represent channel_group_ids of co-located or corresponding-located channels in the previous frame.
  • 'channel_group_id prev_channel_group_ids[current_channel]' may indicate that the channel_group_id of a channel co-located with or corresponding to the current channel in the previous frame is used as the channel_group_id of the current channel.
  • channels of a feature map may be grouped in various ways. Also, information related to channel grouping may be encoded/decoded at various levels, for example, a channel level or a frame level.
  • Embodiment 5 of the present disclosure relates to a method for constructing reference information for prediction.
  • FIG. 27 is a diagram illustrating an example of a feature map composed of four consecutive channels.
  • a feature map may consist of channels 0 to 3, and channels 0 to 3 may be sequentially encoded.
  • the restored feature information of channels 0 to 3 adjacent to the current coding unit is used as reference information.
  • spatial distance from the current coding unit (or location within each channel) is not close. Accordingly, when the corresponding information is used as reference information for intra prediction, coding efficiency may be degraded, and complexity may increase due to unnecessary calculations.
  • reference information used for prediction when constructing reference information used for prediction, it may be limited to use only information of the current channel. Syntaxes such as those of FIGS. 28A and 28B may be provided to define constraints on reference information used for prediction.
  • 28A and 28B are diagrams illustrating feature sequence parameter sets according to an embodiment of the present disclosure.
  • a feature sequence parameter set (Feature_seq_parameter_set_rbsp( )) may include a syntax element channel_constrained_intra_pred_flag.
  • channel_constrained_intra_pred_flag may represent whether information on a channel different from a channel of a sub/decoding target region can be referred to during intra prediction.
  • channel_constrained_intra_pred_flag of a first value e.g., 1
  • channel_constrained_intra_pred_flag of the second value e.g., 0
  • the prediction target may mean a feature or video to be encoded/decoded.
  • information of other channels does not include syntax and semantic information generated in the encoding/decoding process, and the corresponding information can be used for intra prediction regardless of channel_constrained_intra_pred_flag.
  • the feature sequence parameter set (Feature_seq_parameter_set_rbsp( )) may include a syntax element channel_constrained_inter_pred_flag.
  • channel_constrained_inter_pred_flag may indicate whether information on a channel different from a channel of a sub/decoding target region can be referred to during inter prediction.
  • channel_constrained_inter_pred_flag of a first value (e.g., 1) may indicate that inter prediction is restricted so as not to refer to information of other channels. In this case, the range of motion prediction and compensation is limited to the same channel as the current channel.
  • channel_constrained_inter_pred_flag of the second value (e.g., 0) may indicate that information of another channel can be referred to during inter prediction.
  • the prediction target may mean a feature or video to be encoded/decoded.
  • the information of other channels does not include syntax and semantic information generated in the encoding/decoding process, and the corresponding information can be used for inter prediction regardless of channel_constrained_inter_pred_flag.
  • the reference information candidate belongs to the same channel as the current channel, if there is no prediction constraint condition, information of another channel may be used during encoding/decoding. In this case, if the target of the current encoding/decoding target is independent encoding/decoding, the corresponding reference information candidate should not be used as reference information for intra prediction and inter prediction.
  • the corresponding channel information when information of another channel cannot be referred to, the corresponding channel information may be replaced with information of the most fake current channel available.
  • 29A and 29B show examples of replacing reference information in intra prediction.
  • the up reference information of the current channel/decoding area when the up reference information of the current channel/decoding area is unavailable as information of another channel, the up reference information is a pre-restored feature of the current channel existing on the left side of the encoding/decoding area. information can be replaced.
  • FIG. 29B when left reference information of the current channel/decoding area is unavailable as information of another channel, the left reference information is pre-restored data of the current channel existing above the encoding/decoding area. It can be replaced with feature information.
  • other unavailable channel information may be replaced with a specific value (e.g., 0).
  • FIG. 30 is a flowchart illustrating a reference information substitution method according to an embodiment of the present disclosure.
  • Each step of FIG. 30 may be performed by the feature encoding device or feature decoding device described above with reference to FIG. 12 .
  • each step of FIG. 30 will be described based on a feature encoding device.
  • the feature encoding apparatus may define a reference information candidate set (CRL) and a reference information set (RL) for prediction of a current coding unit (S3010). Also, the feature encoding apparatus may define the size (SizeOfRL) of the reference information set (RL) and set a variable indexCount indicating a reference information index to 0.
  • the feature encoding apparatus may determine whether a candidate corresponding to indexCount is available in the reference information candidate set (CRL) (S3020).
  • the feature encoding apparatus may determine whether prediction constraints are applied (e.g., channel_constrained_intra_pred_flag or channel_constrained_inter_pred_flag) (S3030).
  • prediction constraints e.g., channel_constrained_intra_pred_flag or channel_constrained_inter_pred_flag
  • the feature encoding apparatus may determine whether the reference information candidate belongs to the same channel as the current coding unit (step S3040).
  • step S3040 if the reference information candidate belongs to the same channel as the current coding unit ('YES' in S3040), the feature encoding apparatus inputs the reference information candidate to the reference information set RL (S3050), and in step S3060 can proceed with
  • the feature encoding apparatus determines that the reference information candidate is unavailable and determines that the reference information candidate is unavailable at indexCount in the reference information set (RL). It is possible to input the identification marking indicated (S3070).
  • step S3020 if the candidate is unavailable ('NO' in step S3020), the feature encoding apparatus may proceed to step S3070 to input the above-described identification marking.
  • the feature encoding apparatus may input the reference information candidate into the reference information set RL (step S3050) and proceed to step S3060.
  • the feature encoding apparatus may determine whether indexCount is smaller than the size (SizeOfRL) of a predefined reference information set (RL) (S3060). As a result of the determination, if indexCount is smaller than the size (SizeOfRL) of the reference information set (RL) ('YES' in S3060), the feature encoding apparatus may increase indexCount by 1 and return to step S3020 to repeat the above-described process. In contrast, when indexCount is greater than or equal to the size (SizeOfRL) of the reference information set (RL) ('NO' in S3060), the feature encoding apparatus terminates the above-described process, and The reference information marked for identification may be replaced with the reference information closest to the corresponding set (S3090).
  • reference information used for prediction when constructing reference information used for prediction, it may be limited to use only information of a current channel. Also, unavailable reference information may be replaced with adjacent available information within the current channel. Accordingly, since prediction can be performed using reference information having similar data distribution characteristics, coding efficiency can be further improved.
  • Embodiment 6 of the present disclosure relates to constraints when constructing reference information for prediction for independent encoding/decoding of a coding unit.
  • reference information used for prediction may be limited to belong to the same channel and same transmission unit as the current coding unit.
  • the reference information must be coded/decoded without referring to other channel information, and may be limited to information to which inter prediction is not applied.
  • the above constraints can be applied at various levels. For example, the constraint condition may be applied at the sequence level as shown in FIG. 31A. Alternatively, the constraint condition may be applied at the channel level as shown in FIG. 31B. Alternatively, the constraint condition may be applied at the feature level as shown in FIG. 31C.
  • syntaxes according to FIGS. 31A to 31C to control the constraint condition may include a syntax element channel_independent_pred_flag.
  • channel_independent_pred_flag may indicate whether the constraint condition is applied.
  • channel_independent_pred_flag of a first value e.g., 1
  • the corresponding reference information may be restricted not to be used.
  • channel_independent_pred_flag of the second value e.g., 0
  • FIG. 32 is a flowchart illustrating a reference information configuration method according to an embodiment of the present disclosure. Each step of FIG. 32 may be performed by the feature encoding device or feature decoding device described above with reference to FIG. 12 . Hereinafter, for convenience of description, each step of FIG. 32 will be described based on a feature encoding device.
  • the feature encoding apparatus may determine whether a reference information candidate is the same transmission unit (e.g., slice, tile, etc.) as a current coding unit (S3210).
  • a reference information candidate is the same transmission unit (e.g., slice, tile, etc.) as a current coding unit (S3210).
  • the feature encoding apparatus determines whether the channel_independent_pred_flag for the reference information is a first value (e.g., 1). It can (S3220).
  • the feature encoding apparatus may configure reference information of the current coding unit using the corresponding reference information candidate (S3230).
  • step S3220 when channel_independent_pred_flag is the second value (e.g., 0), the feature encoding apparatus may determine whether inter prediction is applied to the reference information or information of another channel or other transmission unit is referred to (S3240). ).
  • step S3240 if inter prediction is not applied to the reference information and information of another channel or other transmission unit is not referenced ('YES' in S3240), the feature encoding apparatus uses the reference information candidate to determine the current coding unit. It is possible to configure the reference information of (S3230).
  • step S3240 if inter prediction is applied to the reference information or information of another channel or other transmission unit is referred to ('NO' in S3240), the feature encoding apparatus determines not to use the reference information candidate and performs the above-described process. can be terminated.
  • step S3210 if the reference information candidate is not the same transmission unit as the current coding unit ('NO' in S3210), the feature encoding apparatus determines not to use the reference information candidate and ends the above-described process.
  • prediction may be performed using only reference information belonging to the same channel and the same transmission unit. Also, reference information to which inter-prediction is applied or to information of another channel or other transmission unit may be restricted from being used for prediction of the current coding unit. Accordingly, independent coding/decoding of coding units can be guaranteed.
  • FIG. 33 is a flowchart illustrating a feature encoding method according to an embodiment of the present disclosure.
  • the feature information encoding method of FIG. 33 may be performed by the encoding apparatus of FIG. 1 .
  • the encoding device may determine channel information of a current coding unit (S3310).
  • the channel information may include channel grouping information of a feature map including the current coding unit.
  • the encoding device may determine a context model for the current coding unit based on the channel information (S3320) and encode the current coding unit based on the context model (S3330).
  • the context model may be determined based on the channel grouping information.
  • channels of the feature map are grouped into a plurality of channel groups, and the context model may be individually determined for each of the channel groups.
  • the context model may be obtained through an entropy coding initialization process.
  • the context model may be obtained through an entropy coding synchronization process with the pre-stored context model.
  • the channel grouping information may include channel group identification information indicating a channel group to which a current channel including the current coding unit belongs.
  • the channel group identification information may be obtained based on whether an entropy coding synchronization process is performed.
  • the current channel including the current coding unit is divided into a plurality of regions, and a different context model may be applied to each of the plurality of regions.
  • the context model may be obtained through an entropy coding synchronization process with a context model applied at the same position as or corresponding to the current coding unit within the restored channel.
  • the above-described feature encoding method may further include predicting the current coding unit to be encoded based on predetermined reference information.
  • the reference information may be limited to the restored feature information in the current channel including the current coding unit.
  • FIG. 34 is a flowchart illustrating a feature decoding method according to an embodiment of the present disclosure.
  • the feature decoding method of FIG. 34 may be performed by the decoding apparatus of FIG. 1 .
  • the decoding apparatus may obtain channel information of a current coding unit (S3410).
  • the channel information may include channel grouping information of a feature map including the current coding unit.
  • the decoding apparatus may determine a context model for the current coding unit based on the channel information (S3420) and decode the current coding unit based on the context model (S3430).
  • the context model may be determined based on the channel grouping information.
  • channels of the feature map are grouped into a plurality of channel groups, and the context model may be individually determined for each of the channel groups.
  • the context model may be obtained through an entropy coding initialization process.
  • the context model may be obtained through an entropy coding synchronization process with the pre-stored context model.
  • the channel grouping information may include channel group identification information indicating a channel group to which a current channel including the current coding unit belongs.
  • the channel group identification information may be obtained based on whether an entropy coding synchronization process is performed.
  • the current channel including the current coding unit is divided into a plurality of regions, and a different context model may be applied to each of the plurality of regions.
  • the context model may be obtained through an entropy coding synchronization process with a context model applied at the same position as or corresponding to the current coding unit within the restored channel.
  • the above-described feature decoding method may further include predicting the current coding unit to be decoded based on predetermined reference information.
  • the reference information may be limited to the restored feature information in the current channel including the current coding unit.
  • 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
  • the embodiments described in this disclosure may be implemented and performed on a processor, microprocessor, controller, or chip.
  • functional units shown in each drawing may be implemented and performed on a computer, processor, microprocessor, controller, or chip.
  • information for implementation e.g., information on instructions
  • algorithm may be stored in a digital storage medium.
  • a decoder (decoding device) and an encoder (encoding device) to which the embodiment(s) of the present disclosure are applied may be a multimedia broadcast transmission/reception device, a mobile communication terminal, a home cinema video device, a digital cinema video device, a surveillance camera, and a video conversation. device, real-time communication device such as video communication, mobile streaming device, storage medium, camcorder, video-on-demand (VoD) service providing device, OTT video (Over the top video) device, Internet streaming service providing device, 3-dimensional (3D) video device, VR (virtual reality) device, AR (argumente reality) device, video phone video device, transportation device (ex.
  • real-time communication device such as video communication, mobile streaming device, storage medium, camcorder, video-on-demand (VoD) service providing device, OTT video (Over the top video) device, Internet streaming service providing device, 3-dimensional (3D) video device, VR (virtual reality) device, AR (argumente reality) device, video phone video device, transportation device (ex
  • OTT 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.
  • the processing method to which the embodiment(s) of the present disclosure is applied may be produced in the form of a program executed by a computer and stored in a computer-readable recording medium.
  • Multimedia data having a data structure according to the embodiment(s) of this document may also be stored in a computer-readable recording medium.
  • the computer-readable recording medium includes all types of storage devices and distributed storage devices in which computer-readable data is stored.
  • Computer-readable recording media include, for example, Blu-ray Disc (BD), Universal Serial Bus (USB), ROM, PROM, EPROM, EEPROM, RAM, CD-ROM, magnetic tape, floppy disk, and optical data
  • a storage device may be included.
  • a computer-readable recording medium includes media implemented in the form of a carrier wave (eg, transmission through the Internet).
  • the bitstream generated by the encoding method may be stored in a computer-readable recording medium or transmitted through a wired or wireless communication network.
  • embodiment(s) of the present disclosure may be implemented as a computer program product using program codes, and the program codes may be executed on a computer by the embodiment(s) of the present disclosure.
  • the program code may be stored on a carrier readable by a computer.
  • 35 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 bit stream and transmits it to a 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 while transmitting or receiving the bitstream.
  • the streaming server transmits multimedia data to a user device based on a user's request through the web server, and the web server may serve as a medium informing the 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 commands/responses between devices in the content streaming system.
  • a streaming server may receive content from a media store and/or an encoding server. For example, when receiving content from an encoding server, the content may be received in real time. In this case, in order to provide a smooth streaming service, the streaming server may store the bitstream for a certain period of time.
  • Examples of user devices include mobile phones, smart phones, laptop computers, digital broadcasting terminals, personal digital assistants (PDAs), portable multimedia players (PMPs), navigation devices, slate PCs, and tablets.
  • PDAs personal digital assistants
  • PMPs portable multimedia players
  • PC tablet PC
  • ultrabook wearable device (e.g., watch type terminal (smartwatch), glass type terminal (smart glass), HMD (head mounted display)), digital TV, desktop computer , 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.
  • 36 is a diagram illustrating another example of a content streaming system to which embodiments of the present disclosure may be applied.
  • a user terminal may perform a task or an external device (e.g., a streaming server, an analysis server, etc.) You can also perform tasks in .
  • an external device e.g., a streaming server, an analysis server, etc.
  • the user terminal directly or through an encoding server provides a bitstream including information necessary for performing the task (e.g., information such as task, neural network, and/or purpose). can be created through
  • the analysis server may perform the requested task of the user terminal.
  • the analysis server may transmit the result obtained through task performance back to the user terminal or to another related service server (e.g., web server).
  • 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 it to the analysis server, and the analysis server may transmit data about the service to the user terminal.
  • the control server of the content streaming system may play a role of controlling commands/responses between devices in the streaming system.
  • Embodiments according to the present disclosure may be used to encode/decode features/feature maps.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Medical Informatics (AREA)
  • Evolutionary Computation (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • General Engineering & Computer Science (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Discrete Mathematics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

피쳐 부호화/복호화 방법, 장치, 상기 피쳐 부호화 방법에 의해 생성된 비트스트림을 저장한 기록 매체 및 상기 비트스트림을 전송하는 방법이 제공된다. 본 개시에 따른 피쳐 복호화 방법은, 현재 코딩 유닛의 채널 정보를 획득하는 단계, 상기 채널 정보에 기반하여 상기 현재 코딩 유닛에 대한 컨텍스트 모델(context model)을 결정하는 단계, 및 상기 컨텍스트 모델에 기반하여 상기 현재 코딩 유닛을 복호화하는 단계를 포함하되, 상기 채널 정보는 상기 현재 코딩 유닛을 포함하는 피쳐맵의 채널 그룹핑 정보를 포함하고, 상기 컨텍스트 모델은 상기 채널 그룹핑 정보에 기반하여 결정될 수 있다.

Description

엔트로피 코딩에 기반한 피쳐 부호화/복호화 방법, 장치, 비트스트림을 저장한 기록 매체 및 비트스트림 전송 방법
본 개시는 피쳐 부호화/복호화 방법 및 장치에 관한 것으로서, 보다 상세하게는, 엔트로피 코딩에 기반한 피쳐 부호화/복호화 방법, 장치, 본 개시의 피쳐 부호화 방법/장치에 의해 생성된 비트스트림을 저장한 기록 매체 및 비트스트림 전송 방법에 관한 것이다.
머신러닝 기술의 발전과 함께 영상 처리 기반의 인공지능 서비스에 대한 수요가 증가하고 있다. 인공지능 서비스에서 요구되는 방대한 양의 영상 데이터를 한정된 리소스 내에서 효과적으로 처리하기 위해서는, 머신 태스크 수행에 최적화된 영상 압축 기술이 필수적이다. 하지만, 기존의 영상 압축 기술은 휴먼 비전을 위한 고해상도, 고품질의 영상 처리를 목표로 발전해 왔는 바, 인공지능 서비스에는 부적합하다는 문제가 있다. 이에 따라, 인공지능 서비스에 적합한 머신 지향의 새로운 영상 압축 기술에 대한 연구 개발이 활발히 진행되고 있다.
본 개시는 부호화/복호화 효율이 향상된 피쳐 부호화/복호화 방법 및 장치를 제공하는 것을 목적으로 한다.
또한, 본 개시는 엔트로피 코딩에 기반한 피쳐 부호화/복호화 방법 및 장치를 제공하는 것을 목적으로 한다.
또한, 본 개시는 채널간 컨텍스트 모델 동기화에 기반한 피쳐 부호화/복호화 방법 및 장치를 제공하는 것을 목적으로 한다.
또한, 본 개시는 멀티 컨텍스트 모델에 기반한 피쳐 부호화/복호화 방법 및 장치를 제공하는 것을 목적으로 한다.
또한, 본 개시는 인트라 예측 또는 인터 예측을 위한 제한된 참조 정보에 기반한 피쳐 부호화/복호화 방법 및 장치를 제공하는 것을 목적으로 한다.
또한, 본 개시는 본 개시에 따른 피쳐 부호화 방법 또는 장치에 의해 생성된 비트스트림을 전송하는 방법을 제공하는 것을 목적으로 한다.
또한, 본 개시는 본 개시에 따른 피쳐 부호화 방법 또는 장치에 의해 생성된 비트스트림을 저장한 기록 매체를 제공하는 것을 목적으로 한다.
또한, 본 개시는 본 개시에 따른 피쳐 복호화 장치에 의해 수신되고 복호화되어 피쳐의 복원에 이용되는 비트스트림을 저장한 기록 매체를 제공하는 것을 목적으로 한다.
본 개시에서 이루고자 하는 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급하지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
본 개시의 일 양상에 따른 피쳐 복호화 방법은, 현재 코딩 유닛의 채널 정보를 획득하는 단계, 상기 채널 정보에 기반하여 상기 현재 코딩 유닛에 대한 컨텍스트 모델(context model)을 결정하는 단계, 및 상기 컨텍스트 모델에 기반하여 상기 현재 코딩 유닛을 복호화하는 단계를 포함하되, 상기 채널 정보는 상기 현재 코딩 유닛을 포함하는 피쳐맵의 채널 그룹핑 정보를 포함하고, 상기 컨텍스트 모델은 상기 채널 그룹핑 정보에 기반하여 결정될 수 있다.
본 개시의 다른 양상에 따른 피쳐 복호화 장치는, 메모리 및 적어도 하나의 프로세서를 포함하고, 상기 적어도 하나의 프로세서는, 현재 코딩 유닛의 채널 정보를 획득하고, 상기 채널 정보에 기반하여 상기 현재 코딩 유닛에 대한 컨텍스트 모델(context model)을 결정하며, 상기 컨텍스트 모델에 기반하여 상기 현재 코딩 유닛을 복호화하되, 상기 채널 정보는 상기 현재 코딩 유닛을 포함하는 피쳐맵의 채널 그룹핑 정보를 포함하고, 상기 컨텍스트 모델은 상기 채널 그룹핑 정보에 기반하여 결정될 수 있다.
본 개시의 또 다른 양상에 따른 피쳐 부호화 방법은, 현재 코딩 유닛의 채널 정보를 결정하는 단계, 상기 채널 정보에 기반하여 상기 현재 코딩 유닛에 대한 컨텍스트 모델(context model)을 결정하는 단계, 및 상기 컨텍스트 모델에 기반하여 상기 현재 코딩 유닛을 부호화하는 단계를 포함하되, 상기 채널 정보는 상기 현재 코딩 유닛을 포함하는 피쳐맵의 채널 그룹핑 정보를 포함하고, 상기 컨텍스트 모델은 상기 채널 그룹핑 정보에 기반하여 결정될 수 있다.
본 개시의 다른 양상에 따른 영상의 피쳐 정보 부호화 장치는, 메모리 및 적어도 하나의 프로세서를 포함하고, 상기 적어도 하나의 프로세서는, 현재 코딩 유닛의 채널 정보를 결정하고, 상기 채널 정보에 기반하여 상기 현재 코딩 유닛에 대한 컨텍스트 모델(context model)을 결정하며, 상기 컨텍스트 모델에 기반하여 상기 현재 코딩 유닛을 부호화하되, 상기 채널 정보는 상기 현재 코딩 유닛을 포함하는 피쳐맵의 채널 그룹핑 정보를 포함하고, 상기 컨텍스트 모델은 상기 채널 그룹핑 정보에 기반하여 결정될 수 있다.
본 개시의 또 다른 양상에 따른 기록 매체는, 본 개시의 피쳐 부호화 방법 또는 피쳐 부호화 장치에 의해 생성된 비트스트림을 저장할 수 있다.
본 개시의 또 다른 양상에 따른 비트스트림 전송 방법은, 본 개시의 피쳐 부호화 방법 또는 피쳐 부호화 장치에 의해 생성된 비트스트림을 피쳐 복호화 장치로 전송할 수 있다.
본 개시에 대하여 위에서 간략하게 요약된 특징들은 후술하는 본 개시의 상세한 설명의 예시적인 양상일 뿐이며, 본 개시의 범위를 제한하는 것은 아니다.
본 개시에 따르면, 부호화/복호화 효율이 향상된 피쳐 정보 부호화/복호화 방법 및 장치가 제공될 수 있다.
또한, 본 개시에 따르면, 엔트로피 코딩에 기반한 영상 부호화/복호화 방법 및 장치가 제공될 수 있다.
또한, 본 개시에 따르면, 채널간 컨텍스트 모델 동기화에 기반한 영상 부호화/복호화 방법 및 장치가 제공될 수 있다.
또한, 본 개시에 따르면, 멀티 컨텍스트 모델에 기반한 영상 부호화/복호화 방법 및 장치가 제공될 수 있다.
또한, 본 개시에 따르면, 인트라 예측 또는 인터 예측을 위한 제한된 참조 정보에 기반한 영상 부호화/복호화 방법 및 장치가 제공될 수 있다.
또한, 본 개시에 따르면, 본 개시에 따른 피쳐 부호화 방법 또는 장치에 의해 생성된 비트스트림을 전송하는 방법이 제공될 수 있다.
또한, 본 개시에 따르면, 본 개시에 따른 피쳐 부호화 방법 또는 장치에 의해 생성된 비트스트림을 저장한 기록 매체가 제공될 수 있다.
또한, 본 개시에 따르면, 본 개시에 따른 피쳐 복호화 장치에 의해 수신되고 복호화되어 피쳐 복원에 이용되는 비트스트림을 저장한 기록 매체가 제공될 수 있다.
본 개시에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
도 1은 본 개시의 실시예들이 적용될 수 있는 VCM 시스템을 개략적으로 나타낸 도면이다.
도 2는 본 개시의 실시예들이 적용될 수 있는 VCM 파이프라인 구조를 개략적으로 나타낸 도면이다.
도 3은 본 개시의 실시예들이 적용될 수 있는 영상/비디오 인코더를 개략적으로 나타낸 도면이다.
도 4는 본 개시의 실시예들이 적용될 수 있는 영상/비디오 디코더를 개략적으로 나타낸 도면이다.
도 5는 본 개시의 실시예들이 적용될 수 있는 피쳐/피쳐맵 인코딩 절차를 개략적으로 나타낸 흐름도이다.
도 6은 본 개시의 실시예들이 적용될 수 있는 피쳐/피쳐맵 디코딩 절차를 개략적으로 나타낸 흐름도이다.
도 7은 피쳐 추출 네트워크를 이용한 피쳐 추출 방법의 일 예를 나타낸 도면이다.
도 8a는 비디오 소스의 데이터 분포 특성을 나타낸 도면이다.
도 8b는 피쳐셋의 데이터 분포 특성을 나타낸 도면이다.
도 9는 CABAC 인코딩 구조를 나타낸 도면이다.
도 10a 및 도 10b는 엔트로피 인코딩 절차를 설명하기 위한 도면들이다.
도 11a 및 도 11b는 엔트로피 디코딩 절차를 설명하기 위한 도면들이다.
도 12는 피쳐 인코딩 장치 및 피쳐 디코딩 장치를 나타낸 도면이다.
도 13은 피쳐 정보의 변환 예를 나타낸 도면이다.
도 14는 CABAC 엔트로피 코딩 기법을 채널 부호화에 적용할 경우 발생되는 문제를 설명하기 위한 도면이다.
도 15a 및 도 15b는 본 개시의 일 실시예에 따른 엔트로피 코딩 초기화를 위한 신택스들을 나타낸 도면이다.
도 16은 본 개시의 일 실시예에 따른 엔트로피 코딩 초기화 방법이 적용될 수 있는 채널들의 예를 나타낸 도면이다.
도 17a 및 도 17b는 본 개시의 일 실시예에 따른 컨텍스트 모델 동기화 방법을 설명하기 위한 도면들이다.
도 18은 본 개시의 일 실시예에 따른 엔트로피 코딩 동기화를 위한 신택스를 나타낸 도면이다.
도 19는 본 개시의 일 실시예에 따른 엔트로피 코딩 동기화 과정을 나타낸 흐름도이다.
도 20은 본 개시의 일 실시예에 따른 멀티 컨텍스트 모델 적용 및 동기화 방법을 설명하기 위한 도면이다.
도 21은 본 개시의 일 실시예에 따른 멀티 컨텍스트 모델 적용 및 동기화를 위한 신택스를 나타낸 도면이다.
도 22는 채널 클러스터링을 수행하는 인코더 구조를 나타낸 도면이다.
도 23은 채널 그룹핑 예를 나타낸 도면이다.
도 24a는 본 개시의 일 실시예에 따른 피쳐 채널 코딩 신택스를 나타낸 도면이다.
도 24b는 본 개시의 일 실시예에 따른 피쳐 프레임 파라미터 셋을 나타낸 도면이다.
도 25는 본 개시의 일 실시예에 따른 피쳐 채널 코딩 신택스를 나타낸 도면이다.
도 26a는 본 개시의 일 실시예에 따른 피쳐 시퀀스 파라미터 셋을 나타낸 도면이다.
도 26b는 본 개시의 일 실시예에 따른 피쳐 채널 코딩 신택스를 나타낸 도면이다.
도 27은 4개의 연속된 채널들로 구성된 피쳐맵의 일 예를 나타내는 도면이다.
도 28a 및 도 28b는 본 개시의 일 실시예에 따른 피쳐 시퀀스 파라미터 셋을 나타낸 도면들이다.
도 29a 및 도 29b는 인트라 예측시 참조 정보 대체의 예를 나타낸 도면들이다.
도 30은 본 개시의 일 실시예에 따른 참조 정보 대체 방법을 나타낸 흐름도이다.
도 31a 내지 도 31c는 본 개시의 일 실시예에 따른 참조 정보 제어 정보를 포함하는 신택스들을 나타낸 도면들이다.
도 32는 본 개시의 일 실시예에 따른 참조 정보 구성 방법을 나타낸 흐름도이다.
도 33은 본 개시의 일 실시예에 따른 피쳐 부호화 방법을 나타낸 흐름도이다.
도 34는 본 개시의 일 실시예에 따른 피쳐 복호화 방법을 나타낸 흐름도이다.
도 35는 본 개시의 실시예들이 적용될 수 있는 컨텐츠 스트리밍 시스템의 일 예를 나타내는 도면이다.
도 36은 본 개시의 실시예들이 적용될 수 있는 컨텐츠 스트리밍 시스템의 다른 예를 나타내는 도면이다.
이하에서는 첨부한 도면을 참고로 하여 본 개시의 실시예에 대하여 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나, 본 개시는 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다.
본 개시의 실시예를 설명함에 있어서 공지 구성 또는 기능에 대한 구체적인 설명이 본 개시의 요지를 흐릴 수 있다고 판단되는 경우에는 그에 대한 상세한 설명은 생략한다. 그리고, 도면에서 본 개시에 대한 설명과 관계없는 부분은 생략하였으며, 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
본 개시에 있어서, 어떤 구성요소가 다른 구성요소와 "연결", "결합" 또는 "접속"되어 있다고 할 때, 이는 직접적인 연결관계뿐만 아니라, 그 중간에 또 다른 구성요소가 존재하는 간접적인 연결관계도 포함할 수 있다. 또한 어떤 구성요소가 다른 구성요소를 "포함한다" 또는 "가진다"고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 배제하는 것이 아니라 또 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
본 개시에 있어서, 제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)"를 의미할 수 있다.
본 개시는 VCM(Video/image coding for machines)에 관한 것이다.
VCM은 머신 비전을 목적으로 하여 소스 영상/비디오의 일부 또는 소스 영상/비디오로부터 획득된 정보를 부호화/복호화하는 압축 기술을 일컫는다. VCM에서 부호화/복호화 대상은 피쳐(feature)로 지칭될 수 있다. 피쳐는 태스크 목적, 요구사항, 주변 환경 등에 기반하여 소스 영상/비디오로부터 추출된 정보를 의미할 수 있다. 피쳐는 소스 영상/비디오와는 상이한 정보 형태를 가질 수 있으며, 이에 따라 피쳐의 압축 방법 및 표현 형식 또한 비디오 소스와는 상이할 수 있다.
VCM은 다양한 응용 분야에 적용될 수 있다. 예를 들어, 물체나 사람을 인식하고 추적하는 감시 시스템(Surveillance system)에 있어서, VCM은 객체 인식 정보를 저장하거나 전송하기 위해 이용될 수 있다. 또한, 지능형 운송(Intelligent Transportation) 또는 스마트 트래픽 시스템(Smart Traffic system)에 있어서, VCM은 GPS로부터 수집한 차량의 위치 정보, 라이다(LIDAR), 레이더(Radar) 등으로부터 수집한 센싱 정보 및 각종 차량 제어 정보를 다른 차량이나 인프라 스트럭처(infrastructure)로 전송하기 위해 이용될 수 있다. 또한, 스마트 시트(Smart city) 분야에 있어서, VCM은 상호 연결된 센서 노드 또는 장치의 개별 태스크 수행을 위해 이용될 수 있다.
본 개시는 피쳐/피쳐맵 코딩에 관한 다양한 실시예들을 제공한다. 다른 특별한 언급이 없는 한, 본 개시의 실시예들은 각각 개별적으로 구현될 수도 있고, 또는 2 이상의 조합으로 구현될 수도 있다.
VCM 시스템 개요
도 1은 본 개시의 실시예들이 적용될 수 있는 VCM 시스템을 개략적으로 나타낸 도면이다.
도 1을 참조하면, VCM 시스템은 부호화 장치(10) 및 복호화 장치(20)를 포함할 수 있다.
부호화 장치(10)는 소스 영상/비디오로부터 추출된 피쳐/피쳐맵을 압축/부호화하여 비트스트림을 생성하고, 생성된 비트스트림을 저장매체 또는 네트워크를 통해 복호화 장치(20)로 전송할 수 있다. 부호화 장치(10)는 피쳐 부호화 장치로 지칭될 수도 있다. VCM 시스템에서, 피쳐/피쳐맵은 신경망의 각 은닉층(hidden layer)에서 생성될 수 있다. 생성된 피쳐맵의 크기 및 채널수는 신경망의 종류나 은닉층의 위치에 따라 달라질 수 있다. 본 개시에서, 피쳐맵은 피쳐셋으로 지칭될 수 있다.
부호화 장치(10)는 피쳐 획득부(11), 부호화부(12) 및 전송부(13)를 포함할 수 있다.
피쳐 획득부(11)는 소스 영상/비디오에 대한 피쳐/피쳐맵을 획득할 수 있다. 실시예에 따라, 피쳐 획득부(11)는 외부 장치, 예컨대 피쳐 추출 네트워크로부터 피쳐/피쳐맵을 획득할 수 있다. 이 경우, 피쳐 획득부(11)는 피쳐 수신 인터페이스 기능을 수행하게 된다. 또는, 피쳐 획득부(11)는 소스 영상/비디오를 입력으로 하여 신경망(e.g., CNN, DNN 등)을 실행함으로써 피쳐/피쳐맵을 획득할 수도 있다. 이 경우, 피쳐 획득부(11)는 피쳐 추출 네트워크 기능을 수행하게 된다.
실시예에 따라, 부호화 장치(10)는 소스 영상/비디오를 획득하기 위한 소스 영상 생성부(미도시)를 더 포함할 수 있다. 소스 영상 생성부는 이미지 센서, 카메라 모듈 등으로 구현될 수 있으며, 영상/비디오의 캡쳐, 합성 또는 생성 과정 등을 통해 소스 영상/비디오를 획득할 수 있다. 이 경우, 생성된 소스 영상/비디오는 피쳐 추출 네트워크로 전달되어, 피쳐/피쳐맵을 추출하기 위한 입력 데이터로 이용될 수 있다.
부호화부(12)는 피쳐 획득부(11)에 의해 획득된 피쳐/피쳐맵을 부호화할 수 있다. 부호화부(12)는 부호화 효율을 높이기 위해 예측, 변환, 양자화 등 일련의 절차를 수행할 수 있다. 부호화된 데이터(부호화된 피쳐/피쳐맵 정보)는 비트스트림 형태로 출력될 수 있다. 부호화된 피쳐/피쳐맵 정보를 포함하는 비트스트림은 VCM 비트스트림으로 지칭될 수 있다.
전송부(13)는 비트스트림 형태로 출력된 피쳐/피쳐맵 정보 또는 데이터를 파일 또는 스트리밍 형태로 디지털 저장매체 또는 네트워크를 통해 복호화 장치(20)로 전달할 수 있다. 여기서, 디지털 저장 매체는 USB, SD, CD, DVD, 블루레이, HDD, SSD 등 다양한 저장 매체들을 포함할 수 있다. 전송부(13)는 소정의 파일 포맷을 갖는 미디어 파일을 생성하기 위한 엘리먼트들 또는 방송/통신 네트워크를 통한 데이터 전송을 위한 엘리먼트들을 포함할 수 있다.
복호화 장치(20)는 부호화 장치(10)로부터 피쳐/피쳐맵 정보를 획득하고, 획득된 정보에 기반하여 피쳐/피쳐맵을 복원할 수 있다.
복호화 장치(20)는 수신부(21) 및 복호화부(22)를 포함할 수 있다.
수신부(21)는 부호화 장치(10)로부터 비트스트림을 수신하고, 수신된 비트스트림으로부터 피쳐/피쳐맵 정보를 획득하여 복호화부(22)로 전달할 수 있다.
복호화부(22)는 획득된 피쳐/피쳐맵 정보에 기반하여 피쳐/피쳐맵을 복호화할 수 있다. 복호화부(22)는 복호화 효율을 높이기 위해 부호화부(14)의 동작에 대응하는 역양자화, 역변환, 예측 등 일련의 절차를 수행할 수 있다.
실시예에 따라, 복호화 장치(20)는 태스크 분석/렌더링부(23)를 더 포함할 수 있다.
태스크 분석/렌더링부(23)는 복호화된 피쳐/피쳐맵에 기반하여 태스크 분석을 수행할 수 있다. 또한, 태스크 분석/렌더링부(23)는 복호화된 피쳐/피쳐맵을 태스크 수행에 적합한 형태로 렌더링(rendering)할 수 있다. 태스크 분석 결과 및 렌더링된 피쳐/피쳐맵에 기반하여 다양한 머신 (지향형) 태스크가 수행될 수 있다.
이상, VCM 시스템은 사용자 및/또는 머신의 요청, 태스크 목적 및 주변 환경에 따라 소스 영상/비디오로부터 추출된 피쳐를 부호화/복호화하고, 복호화된 피쳐에 기반하여 다양한 머신 (지향형) 태스크들을 수행할 수 있다. VCM 시스템은 비디오/영상 코딩 시스템을 확장/재설계함으로써 구현될 수도 있으며, VCM 표준에서 정의되는 다양한 부호화/복호화 방법들을 수행할 수 있다.
VCM 파이프라인
도 2는 본 개시의 실시예들이 적용될 수 있는 VCM 파이프라인 구조를 개략적으로 나타낸 도면이다.
도 2를 참조하면, VCM 파이프라인(200)은 영상/비디오의 부호화/복호화를 위한 제1 파이프라인(210) 및 피쳐/피쳐맵의 부호화/복호화를 위한 제2 파이프라인(220)을 포함할 수 있다. 본 개시에서, 제1 파이프라인(210)은 비디오 코덱 파이프라인으로 지칭될 수 있고, 제2 파이프라인(220)은 피쳐 코덱 파이프라인으로 지칭될 수 있다.
제1 파이프라인(210)은 입력된 영상/비디오를 부호화하는 제1 스테이지(211) 및 부호화된 영상/비디오를 복호화하여 복원된 영상/비디오를 생성하는 제2 스테이지(212)를 포함할 수 있다. 복원된 영상/비디오는 사람의 시청용, 즉 휴먼 비전을 위해 이용될 수 있다.
제2 파이프라인(220)은 입력된 영상/비디오로부터 피쳐/피쳐맵을 추출하는 제3 스테이지(221), 추출된 피쳐/피쳐맵을 부호화하는 제4 스테이지(222), 및 부호화된 피쳐/피쳐맵을 복호화하여 복원된 피쳐/피쳐맵을 생성하는 제5 스테이지(223)를 포함할 수 있다. 복원된 피쳐/피쳐맵은 머신 (비전) 태스크를 위해 이용될 수 있다. 여기서, 머신 (비전) 태스크란 머신에 의해 영상/비디오가 소비되는 형태의 태스크를 의미할 수 있다. 머신 (비전) 태스크는, 예컨대, 감시(Surveillance), 지능형 교통(Intelligent Transportation), 스마트 시티(Smart City), 지능형 산업(Intelligent Industry), 지능형 컨텐츠(Intelligent Content) 등과 같은 서비스 시나리오에 적용될 수 있다. 실시예에 따라, 복원된 피쳐/피쳐맵은 휴먼 비전을 위해 이용될 수도 있다.
실시예에 따라, 제4 스테이지(222)에서 부호화된 피쳐/피쳐맵은 제1 스테이지(221)로 전달되어 영상/비디오를 부호화하는 데 이용될 수 있다. 이 경우, 부호화된 피쳐/피쳐맵에 기반하여 부가 비트스트림이 생성될 수 있으며, 생성된 부가 비트스트림은 제2 스테이지(222)로 전달되어 영상/비디오를 복호화하는 데 이용될 수 있다.
실시예에 따라, 제5 스테이지(223)에서 복호화된 피쳐/피쳐맵은 제2 스테이지(222)로 전달되어 영상/비디오를 복호화하는 데 이용될 수 있다.
도 2에서는 VCM 파이프라인(200)이 제1 파이프라인(210) 및 제2 파이프라인(220)을 포함하는 경우를 도시하나, 이는 예시적인 것일 뿐 본 개시의 실시예들이 이에 제한되는 것은 아니다. 예를 들어, VCM 파이프라인(200)은 제2 파이프라인(220)만을 포함할 수도 있고, 또는 제2 파이프라인(220)이 복수의 피쳐 코덱 파이프라인들로 확장될 수도 있다.
한편, 제1 파이프라인(210)에서, 제1 스테이지(211)는 영상/비디오 인코더에 의해 수행되고, 제2 스테이지(212)는 영상/비디오 디코더에 의해 수행될 수 있다. 또한, 제2 파이프라인(220)에서, 제3 스테이지(221)는 VCM 인코더(또는, 피쳐/피쳐맵 인코더)에 의해 수행되고, 제4 스테이지(222)는 VCM 디코더(또는, 피쳐/피쳐맵 디코더)에 의해 수행될 수 있다. 이하, 인코더/디코더 구조를 상세히 설명한다.
인코더(Encoder)
도 3은 본 개시의 실시예들이 적용될 수 있는 영상/비디오 인코더를 개략적으로 나타낸 도면이다.
도 3을 참조하면, 영상/비디오 인코더(300)는 영상 분할부(image partitioner, 310), 예측부(predictor, 320), 레지듀얼 처리부(residual processor, 330), 엔트로피 인코딩부(entropy encoder, 340), 가산부(adder, 350), 필터링부(filter, 360), 및 메모리(memory, 370)를 포함할 수 있다. 예측부(320)는 인터 예측부(321) 및 인트라 예측부(322)를 포함할 수 있다. 레지듀얼 처리부(330)는 변환부(transformer, 332), 양자화부(quantizer, 333), 역양자화부(dequantizer, 334) 및 역변환부(inverse transformer, 335)를 포함할 수 있다. 레지듀얼 처리부(330)은 감산부(subtractor, 331)를 더 포함할 수 있다. 가산부(350)는 복원부(reconstructor) 또는 복원 블록 생성부(recontructged block generator)로 지칭될 수 있다. 상술한 영상 분할부(310), 예측부(320), 레지듀얼 처리부(330), 엔트로피 인코딩부(340), 가산부(350) 및 필터링부(360)는 실시예에 따라 하나 이상의 하드웨어 컴포넌트(예컨대, 인코더 칩셋 또는 프로세서)에 의하여 구성될 수 있다. 또한, 메모리(370)는 DPB(decoded picture buffer)를 포함할 수 있고, 디지털 저장 매체에 의해 구성될 수도 있다. 상술한 하드웨어 컴포넌트는 메모리(370)를 내/외부 컴포넌트로 더 포함할 수도 있다.
영상 분할부(310)는 영상/비디오 인코더(300)에 입력된 입력 영상(또는, 픽처, 프레임)을 하나 이상의 프로세싱 유닛(processing unit)으로 분할할 수 있다. 일 예로, 프로세싱 유닛은 코딩 유닛(coding unit, CU)으로 지칭될 수도 있다. 코딩 유닛은 코딩 트리 유닛(coding tree unit, CTU) 또는 최대 코딩 유닛(largest coding unit, LCU)으로부터 QTBTTT(Quad-tree binary-tree ternary-tree) 구조에 따라 재귀적으로(recursively) 분할될 수 있다. 예를 들어, 하나의 코딩 유닛은 쿼드 트리 구조, 바이너리 트리 구조, 및/또는 터너리 구조를 기반으로 하위(deeper) 뎁스의 복수의 코딩 유닛들로 분할될 수 있다. 이 경우, 예를 들어 쿼드 트리 구조가 먼저 적용되고 바이너리 트리 구조 및/또는 터너리 구조가 나중에 적용될 수 있다. 또는, 바이너리 트리 구조가 먼저 적용될 수도 있다. 더 이상 분할되지 않는 최종 코딩 유닛을 기반으로 본 개시에 따른 영상/비디오 코딩 절차가 수행될 수 있다. 이 경우, 영상 특성에 따른 코딩 효율 등을 기반으로 최대 코딩 유닛이 바로 최종 코딩 유닛으로 사용될 수도 있고, 또는 필요에 따라 코딩 유닛은 재귀적으로(recursively) 보다 하위 뎁스의 코딩 유닛들로 분할되어 최적의 사이즈의 코딩 유닛이 최종 코딩 유닛으로 사용될 수도 있다. 여기서, 코딩 절차라 함은 후술하는 예측, 변환, 및 복원 등의 절차를 포함할 수 있다. 다른 예로, 프로세싱 유닛은 예측 유닛(PU: Prediction Unit) 또는 변환 유닛(TU: Transform Unit)을 더 포함할 수 있다. 이 경우, 예측 유닛 및 변환 유닛은 각각 상술한 최종 코딩 유닛으로부터 분할 또는 파티셔닝될 수 있다. 예측 유닛은 샘플 예측의 단위일 수 있고, 변환 유닛은 변환 계수를 유도하는 단위 및/또는 변환 계수로부터 레지듀얼 신호(residual signal)를 유도하는 단위일 수 있다.
유닛은 경우에 따라 블록(block) 또는 영역(area) 등의 용어와 혼용하여 사용될 수 있다. 일반적인 경우, MxN 블록은 M개의 열과 N개의 행으로 이루어진 샘플들 또는 변환 계수들(transform coefficients)의 집합을 나타낼 수 있다. 샘플은 일반적으로 픽셀 또는 픽셀의 값을 나타낼 수 있으며, 휘도(luma) 성분의 픽셀/픽셀값만을 나타낼 수도 있고, 채도(chroma) 성분의 픽셀/픽셀 값만을 나타낼 수도 있다. 샘플은 픽셀(pixel) 또는 펠(pel)에 대응하는 용어로서 사용될 수 있다.
영상/비디오 인코더(300)는 입력 영상 신호(원본 블록, 원본 샘플 어레이)에서 인터 예측부(321) 또는 인트라 예측부(322)로부터 출력된 예측 신호(예측된 블록, 예측 샘플 어레이)를 감산하여 레지듀얼 신호(residual signal, 잔여 블록, 잔여 샘플 어레이)를 생성할 수 있고, 생성된 레지듀얼 신호는 변환부(332)로 전송된다. 이 경우, 도시된 바와 같이 영상/비디오 인코더(300) 내에서 입력 영상 신호(원본 블록, 원본 샘플 어레이)에서 예측 신호(예측 블록, 예측 샘플 어레이)를 감산하는 유닛은 감산부(331)라고 지칭될 수 있다. 예측부는 처리 대상 블록(이하, 현재 블록이라 함)에 대한 예측을 수행하고, 현재 블록에 대한 예측 샘플들을 포함하는 예측된 블록(predicted block)을 생성할 수 있다. 예측부는 현재 블록 또는 CU 단위로 인트라 예측이 적용되는지 또는 인터 예측이 적용되는지를 결정할 수 있다. 예측부는 예측 모드 정보 등 예측에 관한 다양한 정보를 생성하여 엔트로피 인코딩부(340)로 전달할 수 있다. 예측에 관한 정보는 엔트로피 인코딩부(340)에서 인코딩되어 비트스트림 형태로 출력될 수 있다.
인트라 예측부(322)는 현재 픽처 내의 샘플들을 참조하여 현재 블록을 예측할 수 있다. 이 때, 참조되는 샘플들은 예측 모드에 따라 현재 블록의 주변(neighbor)에 위치할 수도 있고, 또는 떨어져서 위치할 수도 있다. 인트라 예측에서 예측 모드들은 복수의 비방향성 모드와 복수의 방향성 모드를 포함할 수 있다. 비방향성 모드는, 예를 들어 DC 모드 및 플래너 모드(Planar 모드)를 포함할 수 있다. 방향성 모드는 예측 방향의 세밀한 정도에 따라, 예를 들어 33개의 방향성 예측 모드 또는 65개의 방향성 예측 모드를 포함할 수 있다. 다만 이는 예시로서, 설정에 따라 그 이상 또는 그 이하의 개수의 방향성 예측 모드들이 사용될 수 있다. 인트라 예측부(322)는 주변 블록에 적용된 예측 모드를 이용하여, 현재 블록에 적용되는 예측 모드를 결정할 수도 있다.
인터 예측부(321)는 참조 픽처 상에서 움직임 벡터에 의해 특정되는 참조 블록(참조 샘플 어레이)을 기반으로, 현재 블록에 대한 예측된 블록을 유도할 수 있다. 이 때, 인터 예측 모드에서 전송되는 움직임 정보의 양을 줄이기 위해 주변 블록과 현재 블록 간의 움직임 정보의 상관성에 기초하여 움직임 정보를 블록, 서브블록 또는 샘플 단위로 예측할 수 있다. 움직임 정보는 움직임 벡터 및 참조 픽처 인덱스를 포함할 수 있다. 움직임 정보는 인터 예측 방향(L0 예측, L1 예측, Bi 예측 등) 정보를 더 포함할 수 있다. 인터 예측의 경우에, 주변 블록은 현재 픽처 내에 존재하는 공간적 주변 블록(spatial neighboring block)과 참조 픽처에 존재하는 시간적 주변 블록(temporal neighboring block)을 포함할 수 있다. 참조 블록을 포함하는 참조 픽처와 시간적 주변 블록을 포함하는 참조 픽처는 동일할 수도 있고, 다를 수도 있다. 시간적 주변 블록은 동일 위치 참조 블록(collocated reference block), 동일 위치 CU(colCU) 등으로 지칭될 수 있으며, 시간적 주변 블록을 포함하는 참조 픽처는 동일 위치 픽처(collocated picture, colPic)로 지칭될 수도 있다. 예를 들어, 인터 예측부(321)는 주변 블록들을 기반으로 움직임 정보 후보 리스트를 구성하고, 현재 블록의 움직임 벡터 및/또는 참조 픽처 인덱스를 도출하기 위하여 어떤 후보가 사용되는지를 지시하는 정보를 생성할 수 있다. 다양한 예측 모드를 기반으로 인터 예측이 수행될 수 있으며, 예를 들어 스킵 모드와 머지 모드의 경우에, 인터 예측부(321)는 주변 블록의 움직임 정보를 현재 블록의 움직임 정보로 이용할 수 있다. 스킵 모드의 경우, 머지 모드와 달리 레지듀얼 신호가 전송되지 않을 수 있다. 움직임 정보 예측(motion vector prediction, MVP) 모드의 경우, 주변 블록의 움직임 벡터를 움직임 벡터 예측자(motion vector predictor)로 이용하고, 움직임 벡터 차분(motion vector difference)을 시그널링함으로써 현재 블록의 움직임 벡터를 지시할 수 있다.
예측부(320)는 다양한 예측 방법을 기반으로 예측 신호를 생성할 수 있다. 예를 들어, 예측부는 하나의 블록에 대한 예측을 위하여 인트라 예측 또는 인터 예측을 적용할 수 있을 뿐 아니라, 인트라 예측과 인터 예측을 동시에 적용할 수도 있다. 이를 combined inter and intra prediction (CIIP)라고 부를 수 있다. 또한, 예측부는 블록에 대한 예측을 위하여 인트라 블록 카피(intra block copy, IBC) 예측 모드에 기반할 수도 있고 또는 팔레트 모드(palette mode)에 기반할 수도 있다. IBC 예측 모드 또는 팔레트 모드는 예를 들어 SCC(screen content coding) 등과 같이 게임 등의 컨텐츠 영상/동영상 코딩을 위하여 사용될 수 있다. IBC는 기본적으로 현재 픽처 내에서 예측을 수행하나 현재 픽처 내에서 참조 블록을 도출하는 점에서 인터 예측과 유사하게 수행될 수 있다. 즉, IBC는 본 개시에서 설명되는 인터 예측 기법들 중 적어도 하나를 이용할 수 있다. 팔레트 모드는 인트라 코딩 또는 인트라 예측의 일 예로 볼 수 있다. 팔레트 모드가 적용되는 경우 팔레트 테이블 및 팔레트 인덱스에 관한 정보를 기반으로 픽처 내 샘플 값을 시그널링할 수 있다.
예측부(320)에 의해 생성된 예측 신호는 복원 신호를 생성하기 위해 이용되거나 레지듀얼 신호를 생성하기 위해 이용될 수 있다. 변환부(332)는 레지듀얼 신호에 변환 기법을 적용하여 변환 계수들(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 pixels)을 이용하여 예측 신호를 생성하고 그에 기초하여 획득되는 변환을 의미한다. 또한, 변환 과정은 정사각형의 동일한 크기를 갖는 픽셀 블록에 적용될 수도 있고, 정사각형이 아닌 가변 크기의 블록에도 적용될 수 있다.
양자화부(333)는 변환 계수들을 양자화하여 엔트로피 인코딩부(340)로 전송하고, 엔트로피 인코딩부(340)는 양자화된 신호(양자화된 변환 계수들에 관한 정보)를 인코딩하여 비트스트림으로 출력할 수 있다. 양자화된 변환 계수들에 관한 정보는 레지듀얼 정보라고 불릴 수 있다. 양자화부(333)는 계수 스캔 순서(scan order)를 기반으로 블록 형태의 양자화된 변환 계수들을 1차원 벡터 형태로 재정렬할 수 있고, 1차원 벡터 형태의 양자화된 변환 계수들을 기반으로 양자화된 변환 계수들에 관한 정보를 생성할 수도 있다. 엔트로피 인코딩부(340)는, 예를 들어 지수 골롬(exponential Golomb), CAVLC(context-adaptive variable length coding), CABAC(context-adaptive binary arithmetic coding) 등과 같은 다양한 인코딩 방법을 수행할 수 있다. 엔트로피 인코딩부(340)는 양자화된 변환 계수들 외 영상/비디오 복원에 필요한 정보들(e.g., 신택스 요소들(syntax elements)의 값 등)을 함께 또는 별도로 인코딩할 수도 있다. 인코딩된 정보(e.g., 인코딩된 영상/비디오 정보)는 비트스트림 형태로 NAL(network abstraction layer) 유닛 단위로 전송 또는 저장될 수 있다. 영상/비디오 정보는 어댑테이션 파라미터 세트(APS), 픽처 파라미터 세트(PPS), 시퀀스 파라미터 세트(SPS) 또는 비디오 파라미터 세트(VPS) 등 다양한 파라미터 세트에 관한 정보를 더 포함할 수 있다. 또한, 영상/비디오 정보는 일반 제한 정보(general constraint information)를 더 포함할 수 있다. 또한, 영상/비디오 정보는 부호화된 정보의 생성 방법 및 사용 방법, 목적 등을 더 포함할 수 있다. 본 개시에서 영상/비디오 인코더에서 영상/비디오 디코더로 전달/시그널링되는 정보 및/또는 신택스 요소들은 영상/비디오 정보에 포함될 수 있다. 영상/비디오 정보는 상술한 인코딩 절차를 통하여 인코딩되어 비트스트림에 포함될 수 있다. 비트스트림은 네트워크를 통하여 전송될 수 있고, 또는 디지털 저장매체에 저장될 수 있다. 여기서, 네트워크는 방송망 및/또는 통신망 등을 포함할 수 있고, 디지털 저장매체는 USB, SD, CD, DVD, 블루레이, HDD, SSD 등 다양한 저장매체를 포함할 수 있다. 엔트로피 인코딩부(340)로부터 출력된 신호를 전송하는 전송부(미도시) 및/또는 저장하는 저장부(미도시)가 영상/비디오 인코더(300)의 내/외부 엘리먼트로서 구성될 수 있고, 또는 전송부는 엔트로피 인코딩부(340)에 포함될 수도 있다.
양자화부(333)로부터 출력된 양자화된 변환 계수들은 예측 신호를 생성하기 위해 이용될 수 있다. 예를 들어, 양자화된 변환 계수들에 역양자화부(334) 및 역변환부(335)를 통해 역양자화 및 역변환을 적용함으로써 레지듀얼 신호(레지듀얼 블록 or 레지듀얼 샘플들)를 복원할 수 있다. 가산부(350)는 복원된 레지듀얼 신호를 인터 예측부(321) 또는 인트라 예측부(322)로부터 출력된 예측 신호에 더함으로써 복원(reconstructed) 신호(복원 픽처, 복원 블록, 복원 샘플 어레이)가 생성될 수 있다. 스킵 모드가 적용된 경우와 같이 처리 대상 블록에 대한 레지듀얼이 없는 경우, 예측된 블록이 복원 블록으로 사용될 수 있다. 가산부(350)는 복원부 또는 복원 블록 생성부라고 불릴 수 있다. 생성된 복원 신호는 현재 픽처 내 다음 처리 대상 블록의 인트라 예측을 위하여 사용될 수 있고, 후술하는 바와 같이 필터링을 거쳐서 다음 픽처의 인터 예측을 위하여 사용될 수도 있다.
한편 픽처 인코딩 및/또는 복원 과정에서 LMCS (luma mapping with chroma scaling)가 적용될 수도 있다.
필터링부(360)는 복원 신호에 필터링을 적용하여 주관적/객관적 화질을 향상시킬 수 있다. 예를 들어, 필터링부(360)은 복원 픽처에 다양한 필터링 방법을 적용하여 수정된(modified) 복원 픽처를 생성할 수 있고, 수정된 복원 픽처를 메모리(370), 구체적으로 메모리(370)의 DPB에 저장할 수 있다. 다양한 필터링 방법은, 예를 들어 디블록킹 필터링, 샘플 적응적 오프셋(sample adaptive offset), 적응적 루프 필터(adaptive loop filter), 양방향 필터(bilateral filter) 등을 포함할 수 있다. 필터링부(360)은 필터링에 관한 다양한 정보를 생성하여 엔트로피 인코딩부(340)로 전달할 수 있다. 필터링 관한 정보는 엔트로피 인코딩부(340)에서 인코딩되어 비트스트림 형태로 출력될 수 있다.
메모리(370)에 전송된 수정된 복원 픽처는 인터 예측부(321)에서 참조 픽처로 사용될 수 있다. 이를 통해, 인코더단 및 디코더단에서의 예측 미스매치를 피할 수 있고, 부호화 효율도 향상시킬 수 있다.
메모리(370)의 DPB는 수정된 복원 픽처를 인터 예측부(321)에서의 참조 픽처로 사용하기 위해 저장할 수 있다. 메모리(370)는 현재 픽처 내 움직임 정보가 도출된(또는, 인코딩된) 블록의 움직임 정보 및/또는 이미 복원된 픽처 내 블록들의 움직임 정보를 저장할 수 있다. 저장된 움직임 정보는 공간적 주변 블록의 움직임 정보 또는 시간적 주변 블록의 움직임 정보로 활용하기 위하여 인터 예측부(321)에 전달될 수 있다. 메모리(370)는 현재 픽처 내 복원된 블록들의 복원 샘플들을 저장할 수 있고, 저장된 복원 샘플들을 인트라 예측부(322)에 전달할 수 있다.
한편, VCM 인코더(또는, 피쳐/피쳐맵 인코더)는, 피쳐/피쳐맵을 인코딩하기 위하여 예측, 변환, 양자화 등 일련의 절차를 수행한다는 점에서, 기본적으로 도 3을 참조하여 설명한 영상/비디오 인코더(300)와 동일/유사한 구조를 가질 수 있다. 다만, VCM 인코더는 피쳐/피쳐맵을 부호화 대상으로 한다는 점에서 영상/비디오 인코더(300)와는 차이가 있으며, 이에 따라 각 유닛(또는, 구성요소)의 명칭(e.g., 영상 분할부(310) 등)과 그 구체적 동작 내용에 있어서 영상/비디오 인코더(300)와는 상이할 수 있다. VCM 인코더의 구체적 동작 내용에 대해서는 상세히 후술하기로 한다.
디코더(Decoder)
도 4는 본 개시의 실시예들이 적용될 수 있는 영상/비디오 디코더를 개략적으로 나타낸 도면이다.
도 4를 참조하면, 영상/비디오 디코더(400)는 엔트로피 디코딩부(entropy decoder, 410), 레지듀얼 처리부(residual processor, 420), 예측부(predictor, 430), 가산부(adder, 440), 필터링부(filter, 450) 및 메모리(memoery, 460)를 포함할 수 있다. 예측부(430)는 인터 예측부(431) 및 인트라 예측부(432)를 포함할 수 있다. 레지듀얼 처리부(420)는 역양자화부(dequantizer, 421) 및 역변환부(inverse transformer, 422)를 포함할 수 있다. 상술한 엔트로피 디코딩부(410), 레지듀얼 처리부(420), 예측부(430), 가산부(440) 및 필터링부(450)는 실시예에 따라 하나의 하드웨어 컴포넌트(예컨대, 디코더 칩셋 또는 프로세서)에 의하여 구성될 수 있다. 또한 메모리(460)는 DPB(decoded picture buffer)를 포함할 수 있고, 디지털 저장 매체에 의하여 구성될 수도 있다. 하드웨어 컴포넌트는 메모리(460)을 내/외부 컴포넌트로 더 포함할 수도 있다.
비디오/영상 정보를 포함하는 비트스트림이 입력되면, 영상/비디오 디코더(400)는 도 3의 영상/비디오 인코더(300)에서 영상/비디오 정보가 처리된 프로세스에 대응하여 영상/비디오를 복원할 수 있다. 예를 들어, 영상/비디오 디코더(400)는 비트스트림으로부터 획득한 블록 분할 관련 정보를 기반으로 유닛들/블록들을 도출할 수 있다. 영상/비디오 디코더(400)는 영상/비디오 인코더에서 적용된 프로세싱 유닛을 이용하여 디코딩을 수행할 수 있다. 따라서, 디코딩의 프로세싱 유닛은, 예컨대 코딩 유닛일 수 있고, 코딩 유닛은 코딩 트리 유닛 또는 최대 코딩 유닛으로부터 쿼드 트리 구조, 바이너리 트리 구조 및/또는 터너리 트리 구조를 따라서 분할될 수 있다. 코딩 유닛으로부터 하나 이상의 변환 유닛이 도출될 수 있다. 그리고, 영상/비디오 디코더(400)를 통해 디코딩 및 출력된 복원 영상 신호는 재생 장치를 통해 재생될 수 있다.
영상/비디오 디코더(400)는 도 3의 인코더로부터 출력된 신호를 비트스트림 형태로 수신할 수 있고, 수신된 신호는 엔트로피 디코딩부(410)를 통해 디코딩될 수 있다. 예를 들어, 엔트로피 디코딩부(410)는 비트스트림을 파싱하여 영상 복원(또는, 픽처 복원)에 필요한 정보(e.g., 영상/비디오 정보)를 도출할 수 있다. 영상/비디오 정보는 어댑테이션 파라미터 세트(APS), 픽처 파라미터 세트(PPS), 시퀀스 파라미터 세트(SPS) 또는 비디오 파라미터 세트(VPS) 등 다양한 파라미터 세트에 관한 정보를 더 포함할 수 있다. 또한, 영상/비디오 정보는 일반 제한 정보(general constraint information)을 더 포함할 수 있다. 또한, 영상/비디오 정보는 복호화된 정보의 생성 방법 및 사용 방법, 목적 등을 포함할 수 있다. 영상/비디오 디코더(400)는 파라미터 세트에 관한 정보 및/또는 일반 제한 정보를 더 기반으로 픽처를 디코딩할 수 있다. 시그널링/수신되는 정보 및/또는 신택스 요소들은 디코딩 절차를 통하여 디코딩되어 비트스트림으로부터 획득될 수 있다. 예를 들어, 엔트로피 디코딩부(410)는 지수 골롬 부호화, CAVLC 또는 CABAC 등의 코딩 방법을 기초로 비트스트림 내 정보를 디코딩하고, 영상 복원에 필요한 신택스 요소들의 값들, 레지듀얼에 관한 변환 계수의 양자화된 값들을 출력할 수 있다. 보다 상세하게, CABAC 엔트로피 디코딩 방법은, 비트스트림에서 각 구문 요소에 해당하는 빈(bin)을 수신하고, 디코딩 대상 구문 요소 정보와 주변 및 디코딩 대상 블록의 디코딩 정보 혹은 이전 단계에서 디코딩된 심볼/빈의 정보를 이용하여 문맥(context) 모델을 결정하고, 결정된 문맥 모델에 따라 빈의 발생 확률을 예측하여 빈의 산술 디코딩(arithmetic decoding)를 수행하여 각 신택스 요소의 값에 해당하는 심볼을 생성할 수 있다. 이 때, CABAC 엔트로피 디코딩 방법은 문맥 모델 결정 후 다음 심볼/빈의 문맥 모델을 위해 디코딩된 심볼/빈의 정보를 이용하여 문맥 모델을 업데이트할 수 있다. 엔트로피 디코딩부(410)에서 디코딩된 정보 중 예측에 관한 정보는 예측부(인터 예측부(432) 및 인트라 예측부(431))로 제공되고, 엔트로피 디코딩부(410)에서 엔트로피 디코딩이 수행된 레지듀얼 값, 즉 양자화된 변환 계수들 및 관련 파라미터 정보는 레지듀얼 처리부(420)로 입력될 수 있다. 레지듀얼 처리부(420)는 레지듀얼 신호(레지듀얼 블록, 레지듀얼 샘플들, 레지듀얼 샘플 어레이)를 도출할 수 있다. 또한, 엔트로피 디코딩부(410)에서 디코딩된 정보 중 필터링에 관한 정보는 필터링부(450)로 제공될 수 있다. 한편, 영상/비디오 인코더로부터 출력된 신호를 수신하는 수신부(미도시)가 영상/비디오 디코더(400)의 내/외부 엘리먼트로서 더 구성될 수 있고, 또는 수신부는 엔트로피 디코딩부(410)의 구성요소일 수도 있다. 한편, 본 개시에 따른 영상/비디오 디코더는 영상/비디오 디코딩 장치라고 불릴 수 있고, 영상/비디오 디코더는 정보 디코더(영상/비디오 정보 디코더) 및 샘플 디코더(영상/비디오 샘플 디코더)로 구분될 수도 있다. 이 경우, 정보 디코더는 엔트로피 디코딩부(410)를 포함할 수 있고, 샘플 디코더는 역양자화부(321), 역변환부(322), 가산부(440), 필터링부(450), 메모리(460), 인터 예측부(432) 및 인트라 예측부(431) 중 적어도 하나를 포함할 수 있다.
역양자화부(421)에서는 양자화된 변환 계수들을 역양자화하여 변환 계수들을 출력할 수 있다. 역양자화부(421)는 양자화된 변환 계수들을 2차원의 블록 형태로 재정렬할 수 있다. 이 경우, 재정렬은 영상/비디오 인코더에서 수행된 계수 스캔 순서를 기반하여 재정렬을 수행할 수 있다. 역양자화부(321)는 양자화 파라미터(e.g., 양자화 스텝 사이즈 정보)를 이용하여 양자화된 변환 계수들에 대한 역양자화를 수행하고, 변환 계수들(transform coefficients)을 획득할 수 있다.
역변환부(422)에서는 변환 계수들를 역변환하여 레지듀얼 신호(레지듀얼 블록, 레지듀얼 샘플 어레이)를 획득하게 된다.
예측부(430)는 현재 블록에 대한 예측을 수행하고, 현재 블록에 대한 예측 샘플들을 포함하는 예측된 블록(predicted block)을 생성할 수 있다. 예측부는 엔트로피 디코딩부(410)로부터 출력된 예측에 관한 정보를 기반으로 현재 블록에 인트라 예측이 적용되는지 또는 인터 예측이 적용되는지 결정할 수 있고, 구체적인 인트라/인터 예측 모드를 결정할 수 있다.
예측부(420)는 다양한 예측 방법을 기반으로 예측 신호를 생성할 수 있다. 예를 들어, 예측부는 하나의 블록에 대한 예측을 위하여 인트라 예측 또는 인터 예측을 적용할 수 있을 뿐 아니라, 인트라 예측과 인터 예측을 동시에 적용할 수 있다. 이를 combined inter and intra prediction (CIIP)라고 부를 수 있다. 또한, 예측부는 블록에 대한 예측을 위하여 인트라 블록 카피(intra block copy, IBC) 예측 모드에 기반할 수도 있고 또는 팔레트 모드(palette mode)에 기반할 수도 있다. IBC 예측 모드 또는 팔레트 모드는 예를 들어 SCC(screen content coding) 등과 같이 게임 등의 컨텐츠 영상/동영상 코딩을 위하여 사용될 수 있다. IBC는 기본적으로 현재 픽처 내에서 예측을 수행하나 현재 픽처 내에서 참조 블록을 도출하는 점에서 인터 예측과 유사하게 수행될 수 있다. 즉, IBC는 본 문서에서 설명되는 인터 예측 기법들 중 적어도 하나를 이용할 수 있다. 팔레트 모드는 인트라 코딩 또는 인트라 예측의 일 예로 볼 수 있다. 팔레트 모드가 적용되는 경우 팔레트 테이블 및 팔레트 인덱스에 관한 정보가 영상/비디오 정보에 포함되어 시그널링될 수 있다.
인트라 예측부(431)는 현재 픽처 내의 샘플들을 참조하여 현재 블록을 예측할 수 있다. 참조되는 샘플들은 예측 모드에 따라 현재 블록의 주변(neighbor)에 위치할 수 있고, 또는 떨어져서 위치할 수도 있다. 인트라 예측에서 예측 모드들은 복수의 비방향성 모드와 복수의 방향성 모드를 포함할 수 있다. 인트라 예측부(431)는 주변 블록에 적용된 예측 모드를 이용하여, 현재 블록에 적용되는 예측 모드를 결정할 수도 있다.
인터 예측부(432)는 참조 픽처 상에서 움직임 벡터에 의해 특정되는 참조 블록(참조 샘플 어레이)을 기반으로, 현재 블록에 대한 예측된 블록을 유도할 수 있다. 이 때, 인터 예측 모드에서 전송되는 움직임 정보의 양을 줄이기 위해 주변 블록과 현재 블록 간의 움직임 정보의 상관성에 기초하여 움직임 정보를 블록, 서브블록 또는 샘플 단위로 예측할 수 있다. 움직임 정보는 움직임 벡터 및 참조 픽처 인덱스를 포함할 수 있다. 움직임 정보는 인터 예측 방향(L0 예측, L1 예측, Bi 예측 등) 정보를 더 포함할 수 있다. 인터 예측의 경우에, 주변 블록은 현재 픽처 내에 존재하는 공간적 주변 블록(spatial neighboring block)과 참조 픽처에 존재하는 시간적 주변 블록(temporal neighboring block)을 포함할 수 있다. 예를 들어, 인터 예측부(432)는 주변 블록들을 기반으로 움직임 정보 후보 리스트를 구성하고, 수신한 후보 선택 정보를 기반으로 현재 블록의 움직임 벡터 및/또는 참조 픽처 인덱스를 도출할 수 있다. 다양한 예측 모드를 기반으로 인터 예측이 수행될 수 있으며, 예측에 관한 정보는 현재 블록에 대한 인터 예측의 모드를 지시하는 정보를 포함할 수 있다.
가산부(440)는 획득된 레지듀얼 신호를 예측부(인터 예측부(432) 및/또는 인트라 예측부(431) 포함)로부터 출력된 예측 신호(예측된 블록, 예측 샘플 어레이)에 더함으로써 복원 신호(복원 픽처, 복원 블록, 복원 샘플 어레이)를 생성할 수 있다. 스킵 모드가 적용된 경우와 같이 처리 대상 블록에 대한 레지듀얼이 없는 경우, 예측된 블록이 복원 블록으로 사용될 수 있다.
가산부(440)는 복원부 또는 복원 블록 생성부라고 불릴 수 있다. 생성된 복원 신호는 현재 픽처 내 다음 처리 대상 블록의 인트라 예측을 위하여 사용될 수 있고, 후술하는 바와 같이 필터링을 거쳐서 출력될 수도 있고 또는 다음 픽처의 인터 예측을 위하여 사용될 수도 있다.
한편, 픽처 디코딩 과정에서 LMCS (luma mapping with chroma scaling)가 적용될 수도 있다.
필터링부(450)는 복원 신호에 필터링을 적용하여 주관적/객관적 화질을 향상시킬 수 있다. 예를 들어, 필터링부(450)는 복원 픽처에 다양한 필터링 방법을 적용하여 수정된(modified) 복원 픽처를 생성할 수 있고, 수정된 복원 픽처를 메모리(460), 구체적으로 메모리(460)의 DPB에 전송할 수 있다. 다양한 필터링 방법은, 예컨대 디블록킹 필터링, 샘플 적응적 오프셋(sample adaptive offset), 적응적 루프 필터(adaptive loop filter), 양방향 필터(bilateral filter) 등을 포함할 수 있다.
메모리(460)의 DPB에 저장된 (수정된) 복원 픽처는 인터 예측부(432)에서 참조 픽처로 사용될 수 있다. 메모리(460)는 현재 픽처 내 움직임 정보가 도출된(또는 디코딩된) 블록의 움직임 정보 및/또는 이미 복원된 픽처 내 블록들의 움직임 정보를 저장할 수 있다. 저장된 움직임 정보는 공간적 주변 블록의 움직임 정보 또는 시간적 주변 블록의 움직임 정보로 활용하기 위하여 인터 예측부(432)에 전달할 수 있다. 메모리(460)는 현재 픽처 내 복원된 블록들의 복원 샘플들을 저장할 수 있고, 인트라 예측부(431)에 전달할 수 있다.
한편, VCM 디코더(또는, 피쳐/피쳐맵 디코더)는, 피쳐/피쳐맵을 디코딩하기 위하여 예측, 역변환, 역양자화 등 일련의 절차를 수행한다는 점에서, 기본적으로 도 4를 참조하여 상술한 영상/비디오 디코더(400)와 동일/유사한 구조를 가질 수 있다. 다만, VCM 디코더는 피쳐/피쳐맵을 복호화 대상으로 한다는 점에서 영상/비디오 디코더(400)와는 차이가 있으며, 이에 따라 각 유닛(또는, 구성요소)의 명칭(e.g., DPB 등)과 그 구체적 동작 내용에 있어서 영상/비디오 디코더(400)와는 상이할 수 있다. VCM 디코더의 동작은 VCM 인코더의 동작에 대응할 수 있으며, 그 구체적 동작 내용에 대해서는 상세히 후술하기로 한다.
피쳐/피쳐맵 인코딩 절차
도 5는 본 개시의 실시예들이 적용될 수 있는 피쳐/피쳐맵 인코딩 절차를 개략적으로 나타낸 흐름도이다.
도 5를 참조하면, 피쳐/피쳐맵 인코딩 절차는 예측 절차(S510), 레지듀얼 처리 절차(S520) 및 정보 인코딩 절차(S530)를 포함할 수 있다.
예측 절차(S510)는 도 3을 참조하여 전술한 예측부(320)에 의해 수행될 수 있다.
구체적으로, 인트라 예측부(322)는 현재 피쳐/피쳐맵 내의 피쳐 엘리먼트들을 참조하여 현재 블록(즉, 현재 부호화 대상이 되는 피쳐 엘리먼트들의 집합)을 예측할 수 있다. 인트라 예측은 피쳐/피쳐맵을 구성하는 피쳐 엘리먼트들의 공간적 유사성에 기반하여 수행될 수 있다. 예를 들어, 영상/비디오 내에서 동일한 관심 영역(Region of Interest, RoI)에 포함된 피쳐 엘리먼트들은 유사한 데이터 분포 특성을 갖는 것으로 추정될 수 있다. 따라서, 인트라 예측부(322)는 현재 블록을 포함하는 관심 영역 내에서 기복원된 피쳐 엘리먼트들을 참조하여 현재 블록을 예측할 수 있다. 이 때, 참조되는 피쳐 엘리먼트들은 예측 모드에 따라 현재 블록과 인접하여 위치할 수도 있고, 또는 현재 블록과 이격하여 위치할 수도 있다. 피쳐/피쳐맵 부호화를 위한 인트라 예측 모드들은 복수의 비방향성 예측 모드들 및 복수의 방향성 예측 모드들을 포함할 수 있다. 비방향성 예측 모드들은, 예컨대 영상/비디오 인코딩 절차의 DC 모드 및 플래너 모드에 대응하는 예측 모드들을 포함할 수 있다. 또한, 방향성 모드들은, 예컨대 영상/비디오 인코딩 절차의 33개의 방향성 모드들 또는 65개의 방향성 모드들에 대응하는 예측 모드들을 포함할 수 있다. 다만 이는 예시로서, 인트라 예측 모드들의 유형 및 개수는 실시예에 따라 다양하게 설정/변경될 수 있다.
인터 예측부(321)는 참조 피쳐/피쳐맵 상에서 움직임 정보에 의해 특정되는 참조 블록(즉, 참조되는 피쳐 엘리먼트들의 집합)을 기반으로, 현재 블록을 예측할 수 있다. 인터 예측은 피쳐/피쳐맵을 구성하는 피쳐 엘리먼트들의 시간적 유사성에 기반하여 수행될 수 있다. 예를 들어, 시간적으로 연속된 피쳐들은 유사한 데이터 분포 특성을 가질 수 있다. 따라서, 인터 예측부(321)는 현재 피쳐와 시간적으로 인접한 피쳐의 기복원된 피쳐 엘리먼트들을 참조하여 현재 블록을 예측할 수 있다. 이 때, 참조되는 피쳐 엘리먼트들을 특정하기 위한 움직임 정보는 움직임 벡터 및 참조 피쳐/피쳐맵 인덱스를 포함할 수 있다. 움직임 정보는 인터 예측 방향(e.g., L0 예측, L1 예측, Bi 예측 등)에 관한 정보를 더 포함할 수 있다. 인터 예측의 경우에, 주변 블록은 현재 피쳐/피쳐맵 내에 존재하는 공간적 주변 블록(spatial neighboring block)과 참조 피쳐/피쳐맵 내에 존재하는 시간적 주변 블록(temporal neighboring block)을 포함할 수 있다. 참조 블록을 포함하는 참조 피쳐/피쳐맵과 시간적 주변 블록을 포함하는 참조 피쳐/피쳐맵은 동일할 수도 있고, 다를 수도 있다. 시간적 주변 블록은 동일 위치 참조 블록(collocated reference block) 등으로 지칭될 수 있으며, 시간적 주변 블록을 포함하는 참조 피쳐/피쳐맵은 동일 위치 피쳐/피쳐맵(collocated feature/feature map)으로 지칭될 수도 있다. 인터 예측부(321)는 주변 블록들을 기반으로 움직임 정보 후보 리스트를 구성하고, 현재 블록의 움직임 벡터 및/또는 참조 피쳐/피쳐맵 인덱스를 도출하기 위하여 어떤 후보가 사용되는지를 지시하는 정보를 생성할 수 있다. 다양한 예측 모드들을 기반으로 인터 예측이 수행될 수 있으며, 예를 들어 스킵 모드와 머지 모드의 경우에, 인터 예측부(321)는 주변 블록의 움직임 정보를 현재 블록의 움직임 정보로 이용할 수 있다. 스킵 모드의 경우, 머지 모드와 달리 레지듀얼 신호가 전송되지 않을 수 있다. 움직임 정보 예측(motion vector prediction, MVP) 모드의 경우, 주변 블록의 움직임 벡터를 움직임 벡터 예측자(motion vector predictor)로 이용하고, 움직임 벡터 차분(motion vector difference)을 시그널링함으로써 현재 블록의 움직임 벡터를 지시할 수 있다. 예측부(320)는 상술한 인트라 예측 및 인터 예측 이외에도 다양한 예측 방법에 기반하여 예측 신호를 생성할 수 있다.
예측부(320)에 의해 생성된 예측 신호는 레지듀얼 신호(레지듀얼 블록, 레지듀얼 피쳐 엘리먼트들)을 생성하기 위해 이용될 수 있다(S520). 레지듀얼 처리 절차(S520)는 도 3을 참조하여 전술한 레지듀얼 처리부(330)에 의해 수행될 수 있다. 그리고, 레지듀얼 신호에 대한 변환 및/또는 양자화 절차를 통해 (양자화된) 변환 계수들이 생성될 수 있으며, 엔트로피 인코딩부(340)는 (양자화된) 변환 계수들에 관한 정보를 레지듀얼 정보로서 비트스트림 내에 인코딩할 수 있다(S530). 또한, 엔트로피 인코딩부(340)는 레지듀얼 정보 외에 피쳐/피쳐맵 복원에 필요한 정보, 예컨대 예측 정보(e.g., 예측 모드 정보, 움직임 정보 등)를 비트스트림 내에 인코딩할 수 있다.
한편, 피쳐/피쳐맵 인코딩 절차는 피쳐/피쳐맵 복원을 위한 정보(e.g., 예측 정보, 레지듀얼 정보, 파티셔닝 정보 등)를 인코딩하여 비트스트림 형태로 출력하는 절차(S530)뿐만 아니라, 현재 피쳐/피쳐맵에 대한 복원 피쳐/피쳐맵을 생성하는 절차 및 복원 피쳐/피쳐맵에 대해 인루프 필터링을 적용하는 절차(optional)를 더 포함할 수 있다.
VCM 인코더는 역양자화 및 역변환을 통해 양자화된 변환 계수(들)로부터 (수정된) 레지듀얼 피쳐(들)을 도출할 수 있으며, 단계 S510의 출력인 예측 피쳐(들)과 (수정된) 레지듀얼 피쳐(들)을 기반으로 복원 피쳐/피쳐맵을 생성할 수 있다. 이렇게 생성된 복원 피쳐/피쳐맵은 VCM 디코더에서 생성된 복원 피쳐/피쳐맵과 동일할 수 있다. 복원 피쳐/피쳐맵에 대해 인루프 필터링 절차가 수행되는 경우, 복원 피쳐/피쳐맵에 대한 인루프 필터링 절차를 통해 수정된 복원 피쳐/피쳐맵이 생성될 수 있다. 수정된 복원 피쳐/피쳐맵은 복호 피쳐 버퍼(decoded feature buffer, DFB) 또는 메모리에 저장되어, 이후 피쳐/피쳐맵의 예측 절차에서 참조 피쳐/피쳐맵으로 이용될 수 있다. 또한, (인루프) 필터링 관련 정보(파라미터)가 인코딩되어 비트스트림 형태로 출력될 수 있다. 인루프 필터링 절차를 통해 피쳐/피쳐맵 코딩시 발생할 수 있는 노이즈를 제거할 수 있으며, 피쳐/피쳐맵 기반의 태스크 수행 성능을 향상시킬 수 있다. 또한, 인코더단 및 디코더단 모두에서 인루프 필터링 절차를 수행함으로써, 예측 결과의 동일성을 보장하고 피쳐/피쳐맵 코딩의 신뢰성을 향상시킬 수 있으며, 피쳐/피쳐맵 코딩을 위한 데이터 전송량을 감소시킬 수 있다.
피쳐/피쳐맵 디코딩 절차
도 6은 본 개시의 실시예들이 적용될 수 있는 피쳐/피쳐맵 디코딩 절차를 개략적으로 나타낸 흐름도이다.
도 6을 참조하면, 피쳐/피쳐맵 디코딩 절차는 영상/비디오 정보 획득 절차(S610), 피쳐/피쳐맵 복원 절차(S620~S640) 및 복원된 피쳐/피쳐맵에 대한 인루프 필터링 절차(S650)를 포함할 수 있다. 피쳐/피쳐맵 복원 절차는 본 개시에서 설명된 인터/인트라 예측(S620) 및 레지듀얼 처리(S630), 양자화된 변환 계수에 대한 역양자화, 역변환) 과정을 통해 획득되는 예측 신호 및 레지듀얼 신호에 기반하여 수행될 수 있다. 복원 피쳐/피쳐맵에 대한 인루프 필터링 절차를 통해 수정된(modified) 복원 피쳐/피쳐맵이 생성될 수 있으며, 수정된 복원 피쳐/피쳐맵은 디코딩된 피쳐/피쳐맵으로서 출력될 수 있다. 디코딩된 피쳐/피쳐맵은 복호 피쳐 버퍼(DFB) 또는 메모리에 저장되어 이후 피쳐/피쳐맵의 디코딩시 인터 예측 절차에서 참조 피쳐/피쳐맵으로 사용될 수 있다. 경우에 따라, 상술한 인루프 필터링 절차는 생략될 수 있다. 이 경우, 복원 피쳐/피쳐맵이 디코딩된 피쳐/피쳐맵으로서 그대로 출력될 수 있고, 복호 피쳐 버퍼(DFB) 또는 메모리에 저장되어 이후 피처/피쳐맵의 디코딩시 인터 예측 절차에서 참조 피쳐/피쳐맵으로 사용될 수 있다.
피쳐 추출 방법 및 데이터 분포 특성
도 7은 피쳐 추출 네트워크를 이용한 피쳐 추출 방법의 일 예를 나타낸 도면이다.
도 7을 참조하면, 피쳐 추출 네트워크(700)는 비디오 소스(710)를 입력받아 피쳐 추출 동작을 수행함으로써 비디오 소스(710)의 피쳐셋(720)을 출력할 수 있다. 피쳐셋(720)은 비디오 소스(710)로부터 추출된 복수의 피쳐들(C0, C1, ... , Cn)을 포함할 수 있으며, 피쳐 맵으로 표현될 수 있다. 각각의 피쳐(C0, C1, ... , Cn)는 복수의 피쳐 엘리먼트들을 포함하며, 서로 다른 데이터 분포 특성을 가질 수 있다.
도 7에서, W, H 및 C는 각각 비디오 소스(710)의 너비, 높이 및 채널 개수를 의미할 수 있다. 여기서, 비디오 소스(710)의 채널 개수(C)는 비디오 소스(710)의 영상 포맷에 기반하여 결정될 수 있다. 예를 들어, 비디오 소스(710)가 RGB 영상 포맷을 갖는 경우, 비디오 소스(710)의 채널 개수(C)는 3일 수 있다.
또한, W', H' 및 C'은 각각 피쳐셋(720)의 너비, 높이 및 채널 개수를 의미할 수 있다. 피쳐셋(720)의 채널 개수(C')는 비디오 소스(710)로부터 추출된 피쳐들(C0, C1, ... , Cn)의 총 개수(n+1)와 같을 수 있다. 일 예에서, 피쳐셋(720)의 채널 개수(C')는 비디오 소스(710)의 채널 개수(C)보다 클 수 있다.
피쳐셋(720)의 속성(W', H', C')은 비디오 소스(710)의 속성(W, H, C)에 따라 달라질 수 있다. 예를 들어, 비디오 소스(710)의 채널 개수(C)가 증가함에 따라 피쳐셋(720)의 채널 개수(C')도 함께 증가할 수 있다. 또한, 피쳐셋(720)의 속성(W', H', C')은 피쳐 추출 네트워크(700)의 종류 및 속성에 따라 달라질 수 있다. 예를 들어, 피쳐 추출 네트워크(700)가 인공 신경망(e.g., CNN, DNN 등)으로 구현되는 경우, 각각의 피쳐(C0, C1, ... , Cn)를 출력하는 레이어의 위치에 따라 피쳐셋(720)의 속성(W', H', C') 또한 달라질 수 있다.
비디오 소스(710) 및 피쳐셋(720)은 서로 다른 데이터 분포 특성을 가질 수 있다. 예를 들어, 비디오 소스(710)는 일반적으로 한 개(Grayscale image) 채널 또는 세 개(RGB image) 채널들로 구성될 수 있다. 비디오 소스(710)에 포함된 픽셀들은 모든 채널들에 대하여 동일한 정수값 범위를 가질 수 있으며, 음이 아닌 값을 가질 수 있다. 또한, 각각의 픽셀값은 소정의 정수값 범위 내에서 고르게 분포할 수 있다. 이에 반해, 피쳐셋(720)은 피쳐 추출 네트워크(700)의 유형(e.g., CNN, DNN 등) 및 레이어 위치에 따라 다양한 개수(e.g., 32, 64, 128, 256, 512 등)의 채널들로 구성될 수 있다. 피쳐셋(720)에 포함된 피쳐 엘리먼트들은 각 채널별로 서로 다른 실수값 범위를 가질 수 있으며, 음의 값을 가질 수도 있다. 또한, 각각의 피쳐 엘리먼트값은 소정의 실수값 범위 내에서 특정 영역에 집중적으로 분포할 수 있다.
도 8a는 비디오 소스의 데이터 분포 특성을 나타낸 도면이고, 도 8b는 피쳐셋의 데이터 분포 특성을 나타낸 도면이다.
먼저 도 8a를 참조하면, 비디오 소스는 R, G, B 총 3개 채널들로 구성되며, 각각의 픽셀값은 0부터 255까지의 정수값 범위를 가질 수 있다. 이 경우, 비디오 소스의 데이터 타입은 8-bit 정수 타입(integer type)으로 표현될 수 있다.
이에 반해, 도 8b를 참조하면, 피쳐셋은 64개의 채널들(피쳐들)로 구성되며, 각각의 피쳐 엘리먼트값은 -∞에서 +∞까지의 실수값 범위를 가질 수 있다. 이 경우, 피쳐셋의 데이터 타입은 32-bit 부동소수점 타입(float type)으로 표현될 수 있다.
피쳐셋은 부동소수점 타입의 피쳐 엘리먼트값들을 가질 수 있으며, 각 채널(또는, 피쳐)별로 상이한 데이터 분포 특성을 가질 수 있다. 피쳐셋의 각 채널별 데이터 분포 특성의 일 예는 표 1과 같다.
[표 1]
Figure PCTKR2022016656-appb-img-000001
표 1을 참조하면, 피쳐셋은 총 n+1 개의 채널들(C0, C1, ... ,Cn)로 구성될 수 있다. 피쳐 엘리먼트들의 평균값(μ), 표준 편차(σ), 최대값(Max) 및 최소값(Min)은 각 채널(C0, C1, ... ,Cn)별로 상이할 수 있다. 예를 들어, 0번 채널(C0)에 포함된 피쳐 엘리먼트들의 평균값(μ)은 10, 표준 편차(σ)는 20, 최대값(Max)은 90, 최소값(Min)은 60일 수 있다. 또한, 1번 채널(C1)에 포함된 피쳐 엘리먼트들의 평균값(μ)은 30, 표준 편차(σ)는 10, 최대값(Max)은 70.5, 최소값(Min)은 -70.2일 수 있다. 또한, n번 채널(Cn)에 포함된 피쳐 엘리먼트들의 평균값(μ)은 100, 표준 편차(σ)는 5, 최대값(Max)은 115.8, 최소값(Min)은 80.2일 수 있다.
피쳐/피쳐맵에 대한 양자화는, 예컨대 상술한 각 채널별 상이한 데이터 분포 특성에 기반하여 수행될 수 있다. 부동소수점 타입의 피쳐/피쳐맵 데이터는 양자화를 통해 정수 타입으로 변환될 수 있다.
한편, 연속된 프레임들 간의 시공간적 유사성에 기인하여, 비디오 소스로부터 연속하여 추출된 피쳐셋들 및/또는 채널들은 서로 동일/유사한 데이터 분포 특성을 가질 수 있다. 연속된 피쳐셋들의 데이터 분포 특성의 일 예는 표 2와 같다.
[표 2]
Figure PCTKR2022016656-appb-img-000002
표 2에서, fF0는 0번 프레임(F0)으로부터 추출된 제1 피쳐셋을 의미하고, fF1은 1번 프레임(F1)으로부터 추출된 제2 피쳐셋을 의미하며, fF2는 2번 프레임(F2)으로부터 추출된 제3 피쳐셋을 의미한다.
표 2를 참조하면, 연속된 제1 내지 제3 피쳐셋들(fF0, fF1, fF2)은 서로 동일/유사한 평균값(μ), 표준 편차(σ), 최대값(Max) 및 최소값(Min)을 가질 수 있다.
또한, 연속된 프레임들 간의 시공간적 유사성에 기인하여, 비디오 소스로부터 연속하여 추출된 피쳐셋들 내의 대응 채널들은 서로 동일/유사한 데이터 분포 특성을 가질 수 있다. 연속된 피쳐셋들의 대응 채널들의 데이터 분포 특성의 일 예는 표 3과 같다.
[표 3]
Figure PCTKR2022016656-appb-img-000003
표 3에서, fF0C0는 0번 프레임(F0)으로부터 추출된 제1 피쳐셋 내의 제1 채널을 의미하고, fF1C0은 1번 프레임(F1)으로부터 추출된 제2 피쳐셋 내의 제1 채널을 의미한다.
표 3을 참조하면, 제1 피쳐셋 내의 제1 채널(fF0C0)과 이에 대응하는 제2 피쳐셋 내의 제1 채널(fF1C0)은, 서로 동일/유사한 평균값(μ), 표준 편차(σ), 최대값(Max) 및 최소값(Min)을 가질 수 있다.
피쳐/피쳐맵에 대한 예측은, 예컨대 상술한 피쳐셋들 또는 채널들 간의 데이터 분포 특성의 유사성에 기반하여 수행될 수 있다.
엔트로피 코딩
피쳐/피쳐맵 정보의 일부 또는 전부는 엔트로피 인코딩부에 의해 인코딩될 수 있고, 피쳐/피쳐맵 정보의 일부 또는 전부는 엔트로피 디코딩부에 의해 디코딩될 수 있다. 이 경우, 피쳐/피쳐맵 정보는 영상/비디오 정보와 마찬가지로 신택스 요소(syntax element) 단위로 인코딩/디코딩될 수 있다. 본 개시에서 정보가 인코딩/디코딩된다 함은 본 단락에서 설명되는 방법에 의하여 인코딩/디코딩되는 것을 포함할 수 있다.
도 9는 하나의 신택스 요소를 부호화하기 위한 CABAC 인코딩 구조를 나타낸 도면이다.
도 9를 참조하면, CABAC의 인코딩 과정은 먼저 입력 신호가 이진값이 아닌 신택스 요소인 경우 이진화(binarization)를 통해 입력 신호를 이진값으로 변환한다. 입력 신호가 이미 이진값인 경우에는 이진화를 거치지 않고 바이패스 된다. 여기서, 이진값을 구성하는 각각의 이진수 0 또는 1을 빈(bin)이라고 한다. 예를 들어, 이진화된 후의 이진 스트링(빈 스트링)이 110인 경우, 1, 1, 0 각각을 하나의 빈이라고 한다. 하나의 신택스 요소에 대한 빈(들)은 해당 신택스 요소의 값을 나타낼 수 있다.
이진화된 빈들은 정규(regular) 코딩 엔진 또는 바이패스 코딩 엔진으로 입력된다. 정규 코딩 엔진은 해당 빈에 대해 확률값을 반영하는 문맥(context) 모델을 할당하고, 할당된 문맥 모델에 기반하여 해당 빈을 부호화한다. 정규 코딩 엔진에서는 각 빈에 대한 코딩을 수행한 뒤에 해당 빈에 대한 확률 모델을 갱신할 수 있다. 이렇게 코딩되는 빈들을 문맥 코딩된 빈(context-coded bin)이라 한다. 바이패스 코딩 엔진은 입력된 빈에 대해 확률을 추정하는 절차와 코딩 후에 해당 빈에 적용했던 확률 모델을 갱신하는 절차를 생략한다. 문맥을 할당하는 대신 균일한 확률 분포(e.g., 50:50)를 적용해 입력되는 빈을 코딩함으로써 코딩 속도를 향상시킨다. 이렇게 코딩되는 빈들을 바이패스 빈(bypass bin)이라 한다. 문맥 모델은 문맥 코딩(정규 코딩)되는 빈 별로 할당 및 업데이트될 수 있으며, 문맥 모델은 ctxidx 또는 ctxInc를 기반으로 지시될 수 있다. ctxidx는 ctxInc를 기반으로 도출될 수 있다. 구체적으로 예를 들어, 정규 코딩되는 빈들 각각에 대한 문맥 모델을 가리키는 컨텍스트 인덱스(ctxidx)는 context index increment (ctxInc) 및 context index offset (ctxIdxOffset)의 합으로 도출될 수 있다. 여기서, ctxInc는 각 빈별로 다르게 도출될 수 있다. ctxIdxOffset는 ctxIdx의 최소값(the lowest value)로 나타내질 수 있다. ctxIdxOffset은 일반적으로 슬라이스 타입에 따라 결정될 수 있으며, 슬라이스 내 하나의 신택스 요소에 대한 문맥 모델은 ctxinc를 기반으로 구분/도출될 수 있다.
엔트로피 인코딩 절차에서 정규 코딩 엔진을 통해 인코딩을 수행할 것인지, 바이패스 코딩 엔진을 통해 인코딩을 수행할 것인지를 결정하고, 코딩 경로를 스위칭할 수 있다. 엔트로피 디코딩은 엔트로피 인코딩과 동일한 과정을 역순으로 수행한다.
상술한 엔트로피 코딩은 예를 들어 다음과 같이 수행될 수 있다.
도 10a 및 도 10b는 엔트로피 인코딩 절차를 설명하기 위한 도면들이다.
도 10a 및 도 10b를 함께 참조하면, 인코더(엔트로피 인코딩부)는 피쳐/피쳐맵 정보에 관한 엔트로피 코딩 절차를 수행한다. 피쳐/피쳐맵 정보는 예측 관련 정보(e.g., 인터/인트라 예측 구분 정보, 인트라 예측 모드 정보, 인터 예측 모드 정보 등), 레지듀얼 정보, 인루프 필터링 관련 정보 등을 포함할 수 있고, 또는 그에 관한 다양한 신택스 요소들을 포함할 수 있다. 엔트로피 코딩은 신택스 요소 단위로 수행될 수 있다.
인코더는 대상 신택스 요소에 대한 이진화를 수행한다(S1010). 여기서, 이진화는 Truncated Rice binarization process, Fixed-length binarization process 등 다양한 이진화 방법에 기반할 수 있으며, 대상 신택스 요소에 대한 이진화 방법은 미리 정의될 수 있다. 이진화 절차는 엔트로피 인코딩부(1000) 내의 이진화부(1010)에 의해 수행될 수 있다.
인코더는 대상 신택스 요소에 대한 엔트로피 인코딩을 수행한다(S1020). 인코더는 CABAC (context-adaptive arithmetic coding) 또는 CAVLC (context-adaptive variable length coding) 등의 엔트로피 코딩 기법을 기반으로 대상 신택스 요소의 빈 스트링을 정규 코딩 기반(컨텍스트 기반) 또는 바이패스 코딩 기반 인코딩할 수 있으며, 그 출력은 비트스트림에 포함될 수 있다. 엔트로피 인코딩 절차는 엔트로피 인코딩부(1000) 내의 엔트로피 인코딩 처리부(1020)에 의하여 수행될 수 있다. 출력된 비트스트림은 (디지털) 저장매체 또는 네트워크를 통하여 디코더로 전달될 수 있음을 전술한 바와 같다.
도 11a 및 도 11b는 엔트로피 디코딩 절차를 설명하기 위한 도면이다.
도 11a 및 도 11b를 함께 참조하면, 디코더(엔트로피 디코딩부)는 인코딩된 피쳐/피쳐맵 정보를 디코딩할 수 있다. 피쳐/피쳐맵 정보는 예측 관련 정보(e.g., 인터/인트라 예측 구분 정보, 인트라 예측 모드 정보, 인터 예측 모드 정보 등), 레지듀얼 정보, 인루프 필터링 관련 정보 등을 포함할 수 있고, 또는 그에 관한 다양한 신택스 요소들을 포함할 수 있다. 엔트로피 코딩은 신택스 요소 단위로 수행될 수 있다.
디코더는 대상 신택스 요소에 대한 이진화를 수행한다(S1110). 여기서, 이진화는 Truncated Rice binarization process, Fixed-length binarization process 등 다양한 이진화 방법에 기반할 수 있으며, 대상 신택스 요소에 대한 이진화 방법은 미리 정의될 수 있다. 디코더는 이진화 절차를 통하여 대상 신택스 요소의 가용 값들에 대한 가용 빈 스트링들(빈 스트링 후보들)을 도출할 수 있다. 이진화 절차는 엔트로피 디코딩부(1100) 내의 이진화부(1110)에 의해 수행될 수 있다.
디코더는 대상 신택스 요소에 대한 엔트로피 디코딩을 수행한다(S1120). 디코더는 비트스트림 내 입력 비트(들)로부터 대상 신택스 요소에 대한 각 빈들을 순차적으로 디코딩 및 파싱하면서, 도출된 빈 스트링을 해당 신택스 요소에 대한 가용 빈 스트링들과 비교한다. 만약 도출된 빈 스트링이 가용 빈 스트링들 중 하나와 같으면, 해당 빈 스트링에 대응하는 값이 해당 신택스 요소의 값으로 도출된다. 만약, 그렇지 않으면, 비트스트림 내 다음 비트를 더 파싱한 후 상술한 절차를 다시 수행한다. 이러한 과정을 통하여 비트스트림 내에 특정 정보(특정 신택스 요소)에 대한 시작 비트나 끝 비트를 사용하지 않고도 가변 길이 비트를 이용하여 해당 정보를 시그널링할 수 있다. 이를 통해 낮은 값에 대하여는 상대적으로 더 적은 비트를 할당할 수 있으며, 전반적인 코딩 효율을 높일 수 있다.
디코더는 CABAC 또는 CAVLC 등의 엔트로피 코딩 기법을 기반으로 비트스트림으로부터 빈 스트링 내 각 빈들을 컨텍스트 기반 또는 바이패스 기반 디코딩할 수 있다. 엔트로피 디코딩 절차는 엔트로피 디코딩부(1100) 내의 엔트로피 디코딩 처리부(1120)에 의하여 수행될 수 있다. 비트스트림은 상술한 바와 같이 피쳐/피쳐맵 디코딩을 위한 다양한 정보를 포함할 수 있다. 비트스트림은 (디지털) 저장매체 또는 네트워크를 통하여 디코더로 전달될 수 있음을 전술한 바와 같다.
본 개시에서 인코더에서 디코더로의 정보의 시그널링을 나타내기 위하여 신택스 요소들을 포함하는 표(신택스 표)가 사용될 수 있다. 본 개시에서 사용되는 신택스 요소들을 포함하는 표의 신택스 요소들의 순서는 비트스트림으로부터 신택스 요소들의 파싱 순서(parsing order)를 나타낼 수 있다. 인코더는 신택스 요소들이 해당 파싱 순서로 디코더에서 파싱될 수 있도록 신택스 표를 구성 및 인코딩할 수 있으며, 디코더는 비트스트림으로부터 해당 신택스 표의 신택스 요소들을 해당 파싱 순서에 따라 파싱 및 디코딩하여 신택스 요소들의 값을 획득할 수 있다.
도 12는 피쳐 인코딩 장치 및 피쳐 디코딩 장치를 나타낸 도면이다.
도 12를 참조하면, 피쳐 추출 네트워크(1210)에 의해 입력 영상으로부터 획득된 피쳐 데이터가 피쳐 인코딩 장치(1220)로 전달될 수 있다. 피쳐 추출 네트워크의 출력은 전술한 바와 같이 부동 소수점 형태의 데이터일 수 있으며, 상기 부동 소수점 형태의 데이터는 피쳐 양자화기(1221)에 의해 양자화되어 기정의된 비트수의 정수형 데이터로 변환될 수 있다. 인코더(1223)는 정수형 데이터로 변환된 피쳐 데이터를 부호화하여 비트스트림 형태로 출력할 수 있으며, 디코더(1231)는 상기 비트스트림을 입력 받아 복호화된 피쳐 데이터를 출력할 수 있다. 이 때, 디코더(1231)의 출력값은 양자화된 데이터일 수 있으며, 피쳐 역양자화기(1233)는 상기 양자화된 데이터를 역양자화하여 태스크 네트워크(1240)로 전달할 수 있다. 태스크 네트워크(1240)는 상술한 과정을 통해 복원된 피쳐 데이터에 기반하여 각 태스크에 적합한 네트워크를 통해 최종 출력값을 생성할 수 있다.
피쳐 인코딩 장치(1220)로 입력되는 피쳐 정보는 피쳐 추출 네트워크(1210)의 출력을 압축에 용이한 형태로 변환한 것일 수 있다. 상기 변환의 일 예는 도 13에 도시된 바와 같다. 도 13을 참조하면, 12개의 채널들을 서로 이어 붙여서 하나의 큰 픽쳐 형태로 만들 수 있다. 이 경우, 12개의 채널들은 하나의 채널로 통합된 후 인코더로 입력되어 하나의 프레임으로 부호화될 수 있다. 이 때, 상기 프레임 부호화를 위해 기존 비디오 코덱을 이용하는 것을 고려해 볼 수 있다. 하지만, 기존 비디오 코덱은 RGB 또는 YUV와 같이 비교적 적은 개수의 채널들을 압축하기 위해 설계되었는 바, 피쳐 추출 네트워크를 통해 출력되는 수십개의 채널 정보를 압축하는 데는 적합하지 않다는 문제가 있다. 구체적으로, 기존 비디오 코덱의 엔트로피 코딩 기법을 예로 들어 설명하면 다음과 같다.
CABAC은 컨텍스트에 대한 확률 모델을 업데이트해가며 부호화를 수행한다(regular coding mode). 따라서, 부호화 대상들 간의 컨텍스트 분포 특성이 유사한 경우, 확률 모델이 보다 정확해져 높은 성능을 보일 수 있다. 반면에, 컨텍스트의 확률 추정이 어려운 데이터의 경우, 컨텍스트를 할당하는 대신 규인한 확률 분포를 적용하는 바이패스 부호화를 수행하게 된다(bypass coding mode).
한편, 피쳐맵은 서로 다른 데이터 분포 특성을 갖는 다수의 채널들로 구성될 수 있다. 상기 다수의 채널들은 도 14의 예와 같이 부호화에 용이한 형태로 재구성될 수 있다. 이 때, 각 채널간 경계에서 컨텍스트 불연속성이 발생할 수 있다. 구체적으로, 다수의 채널들은 서로 다른 데이터 분포 특성을 가질 수 있으므로, 채널 부호화에 사용된 예측 모드 또한 각 채널별로 상이할 수 있다. 예를 들어, 도 14의 채널 0의 경우, 엣지 정보가 제거되어 인트라 예측 적용시 평활한 신호에 적합한 예측 모드(e.g., DC mode)가 선택될 가능성이 높다. 이와 달리, 채널 1의 경우, 채널 0에 비해 엣지 특성이 강하여 방향적 특성을 갖는 신호에 적합한 예측 모드(e.g., angular mode)가 선택될 가능성이 높다. 이 때, 채널 0 부터 채널 11까지 컨텍스트 모델을 업데이트해가면서 순차적으로 부호화를 수행하는 경우, 컨텍스트의 불연속성이 발생하여 코딩 효율이 저하되는 문제가 발생할 수 있다.
이에, 본 개시의 실시예들에 따르면, 피쳐맵의 채널 부호화를 위해 각 채널의 데이터 분포 특성을 고려한 새로운 엔트로피 코딩 기법이 제공될 수 있다. 이하, 첨부된 도면들을 참조하여, 본 개시의 실시예들을 상세히 설명하기로 한다.
실시예 1
본 개시의 실시예 1은 채널간 경계에서 발생하는 컨텍스트 불연속성으로 인한 코딩 효율 저하를 방지하기 위하여, 컨텍스트 모델을 초기화하는 방법(즉, 엔트로피 코딩 초기화)에 관한 것이다. 실시예 1에 따르면, 피쳐맵의 각 채널별로 엔트로피 코딩 초기화가 수행될 수 있으며, 이를 위해 도 15a 및 도 15b와 같은 신택스들이 제공될 수 있다.
도 15a 및 도 15b는 본 개시의 일 실시예에 따른 엔트로피 코딩 초기화를 위한 신택스들을 나타낸 도면이다.
먼저 도 15a를 참조하면, 신택스 Feature_seq_parameter_set_rbsp( )는 신택스 요소들 sps_entropy_coding_init_flag 및 channel_entropy_coding_enabled_flag를 포함할 수 있다.
신택스 요소 sps_entropy_coding_init_flag는 엔트로피 코딩 초기화의 수행 여부를 나타낼 수 있다. 예를 들어, 제1 값(e.g., 1)의 sps_entropy_coding_init_flag는 채널의 첫번째 코딩 유닛의 부/복호화시 엔트로피 코딩 초기화(e.g., context mode)가 수행됨을 나타낼 수 있다. 이와 달리, 제2 값(e.g., 0)의 sps_entropy_coding_init_flag는 엔트로피 코딩 초기화를 수행하지 않고 기존 정보(e.g., context model)를 그대로 이용하여 엔트로피 코딩이 수행됨을 나타낼 수 있다. sps_entropy_coding_init_flag가 제1 값(e.g., 1)을 갖는 경우, 후술할 channel_entropy_coding_enabled_flag가 시그널링될 수 있다.
신택스 요소 channel_entropy_coding_enabled_flag는 엔트로피 코딩 초기화가 각 채널별로 수행될 수 있는지 여부(즉, 채널 단위 초기화의 활성화 여부)를 나타낼 수 있다. 예를 들어, 제1 값(e.g., 1)의 channel_entropy_coding_enabled_flag는 엔트로피 코딩 초기화가 각 채널별(즉, 채널 단위)로 수행될 수 있음을 나타낼 수 있다. 이와 달리, 제2 값(e.g., 0)의 channel_entropy_coding_enabled_flag는 엔트로피 코딩 초기화가 각 채널별로 수행되지 않음을 나타낼 수 있다. 이 경우, 엔트로피 코딩 초기화는 하나의 프레임을 구성하는 모든 채널들에 대하여 오직 한 번만 수행되게 되며, 채널간 데이터 분포 특성이 유사한 경우에 있어서는 코딩 효율 측면에서 유리할 수 있다.
다음으로 도 15b를 참조하면, 신택스 Feature_Channel_parameter_set_rbsp( )는 신택스 요소 channel_entropy_coding_init_flag를 포함할 수 있다.
신택스 요소 channel_entropy_coding_init_flag는 해당 신택스를 참조하는 현재 채널에 대한 엔트로피 코딩 초기화의 수행 여부를 나타낼 수 있다. 예를 들어, 제1 값(e.g., 1)의 channel_entropy_coding_init_flag는 현재 채널의 부/복호화 시점에 엔트로피 코딩 초기화가 수행됨을 나타낼 수 있다. 이와 달리, 제2 값(e.g., 0)의 channel_entropy_coding_init_flag는 현재 채널의 부/복호화 시점에 엔트로피 코딩 초기화가 수행되지 않음을 나타낼 수 있다. channel_entropy_coding_init_flag는 도 15a의 신택스 요소들 sps_entropy_coding_init_flag 및 channel_entropy_coding_enable_flag가 모두 제1 값(e.g., 1)인 경우에만 시그널링될 수 있다.
한편, 상술한 엔트로피 코딩 초기화 방법이 적용될 수 있는 채널에는 피쳐 추출 네트워크를 통해 출력된 채널뿐만 아니라, 해당 채널을 변환한 채널도 포함될 수 있다. 구체적 예는 도 16에 도시된 바와 같다.
도 16은 본 개시의 일 실시예에 따른 엔트로피 코딩 초기화 방법이 적용될 수 있는 채널들의 예를 나타낸 도면이다.
도 16을 참조하면, PCA 예측 데이터는 평균 피쳐 채널(μ), 주성분 채널들(C0 내지 Cn-1), 및 축소된 차원에서의 피쳐 표현(representation)으로 구성될 수 있다. 이 때, 평균 피쳐 채널(μ) 및 주성분 채널들(C0 내지 Cn-1)은 상술한 엔트로피 코딩 초기화 방법의 적용 대상이 될 수 있다.
이상, 본 개시의 실시예 1에 따르면, 엔트로피 코딩 초기화 여부 및 채널 단위 초기화 여부가 시퀀스단에서 결정될 수 있다. 채널 단위 초기화가 수행되는 것으로 결정된 경우, 엔트로피 코딩 초기화 여부는 각 채널별로 개별적으로 결정될 수 있다. 이에 따라, 채널간 경계에서 발생하는 컨텍스 불연속성을 제거할 수 있게 되므로, 코딩 효율 및 정확도를 보다 향상시킬 수 있다.
실시예 2
본 개시의 실시예 2는 유사한 데이터 분포 특성을 갖는 채널간에 컨텍스트 모델을 동기화하는 방법에 관한 것이다.
실시예 2에 따르면, 유사한 데이터 분포 특성을 갖는 채널들을 그룹핑하고, 동일한 채널 그룹에 속하는 채널간에는 컨텍스트 모델을 동기화하여 사용할 수 있다. 일 실시예에서, 채널간 데이터 분포 특성의 유사도는 각 채널의 엣지 특성, 평균값(μ), 표준 편차(σ), 최대값(Max) 또는 최소값(Min) 중 적어도 하나에 기반하여 결정될 수 있다. 예를 들어, 피쳐 엘리먼트들의 평균값 차이가 소정의 임계치 미만인 채널들은 상호 유사한 채널들로 분류될 수 있다. 이와 달리, 피쳐 엘리먼트들의 평균값 차이가 상기 임계치 이상인 채널들은 상이한 채널들로 분류될 수 있다. 피쳐/피쳐맵의 데이터 분포 특성은 표 1 내지 표 3을 참조하여 전술한 바와 같다.
또한, 실시예 2에 따르면, 피쳐맵에 포함된 채널들을 데이터 분포 특성의 유사도에 기반하여 재정렬(reordering)하고, 서로 인접한 채널간에 컨텍스트 모델을 동기화하여 사용할 수 있다. 실시예에 따라, 상기 채널 그룹핑 및 상기 채널 재정렬은 함께 수행될 수 있다. 예를 들어, 데이터 분포 특성의 유사도에 기반하여 채널들을 그룹핑한 후, 각각의 채널 그룹에 속한 채널들을 상기 유사도에 기반하여 재정렬할 수 있다. 이 때, 컨텍스트 모델 동기화는 각각의 채널 그룹 내에서 소정 개수(e.g., 최대 4개)의 인접 채널간에만 수행되도록 제한될 수도 있다.
도 17a 및 도 17b는 본 개시의 일 실시예에 따른 컨텍스트 모델 동기화 방법을 설명하기 위한 도면들이다.
도 17a 및 도 17b에서, 채널 0, 채널 6 및 채널 9는 서로 유사한 데이터 분포 특성(e.g., 평균값, 엣지 특성 등)을 갖고, 채널 1, 채널 7 및 채널 8은 서로 유사한 데이터 분포 특성을 가지며, 채널 2 내지 채널 5와 채널 10 및 채널 11은 서로 유사한 데이터 분포 특성을 가질 수 있다. 이에 따라, 채널 0, 채널 6 및 채널 9는 채널 그룹 0으로 그룹핑되고, 채널 1, 채널 7 및 채널 8은 채널 그룹 1로 그룹핑되며, 채널 2 내지 채널 5와 채널 10 및 채널 11은 채널 그룹 2로 그룹핑될 수 있다. 다만, 도 17a 및 도 17b의 채널 그룹핑 방법은 예시적인 것이므로, 본 개시의 실시예들이 이제 제한되는 것은 아니다. 예를 들어, 시스템 요구사항, 태스크 목적 및 인코더/디코더 설계 등에 따라, 채널 그룹의 개수 및 그룹핑 방법은 다양하게 설정 및 변경될 수 있다. 한편, 실시예에 따라, 피쳐맵의 채널들은 그룹핑됨과 더불어 데이터 분포 특성의 유사도에 기반하여 (부/복호화 순서상) 재정렬될 수 있다. 도 17a는 채널 그룹핑만이 수행된 예를 나타내고, 도 17b는 채널 그룹핑 및 재정렬이 모두 수행된 예를 나타낸다.
먼저 도 17a를 참조하면, 채널 부/복호화는 채널 0부터 채널 11까지 순차적으로 진행될 수 있다. 채널 0의 첫번째 코딩 유닛에 대한 부/복호화시, 채널 0은 채널 그룹 0에 속하는 첫번째 채널이므로 컨텍스트 모델이 초기화될 수 있다(A1). 채널 0에 대해 Z-스캔 순서에 따른 부/복호화가 완료되는 경우, 상기 컨텍스트 모델은 다음 채널을 위해 저장될 수 있다(A2). 일 실시예에서, 컨텍스트 모델을 저장하기 위한 소정의 저장 공간(e.g., 컨텍스트 버퍼)이 미리 정의될 수 있다. 그리고, 상기 저장된 컨텍스트 모델은 채널 그룹 0 내에서 다음 부/복호화 대상이 되는 채널 6에 대한 컨텍스트 모델로 사용될 수 있다(A3). 다시 말해, 채널 6의 첫번째 코딩 유닛에 대한 부/복호화시 컨텍스트 모델을 초기화하여 사용하는 것이 아니라, 동일한 채널 그룹 0 내에서 직전에 저장된 컨텍스트 모델을 동기화하여 사용할 수 있다.
또한, 채널 1의 첫번째 코딩 유닛에 대한 부/복호화시, 채널 1은 채널 그룹 1에 속하는 첫번째 채널이므로 컨텍스트 모델 초기화가 수행될 수 있다(B1). 채널 1에 대한 Z-스캔 순서에 따른 부/복호화가 완료되는 경우, 상기 컨텍스트 모델은 다음 채널을 위해 저장될 수 있다(B2). 그리고, 상기 저장된 컨텍스트 모델은 채널 그룹 1 내에서 다음 부/복호화 대상이 되는 채널 7에 대한 컨텍스트 모델로 동기화되어 사용될 수 있다(B3).
마찬가지로, 채널 2의 첫번째 코딩 유닛에 대한 부/복호화시, 채널 2는 채널 그룹 2에 속하는 첫번째 채널이므로 컨텍스트 모델 초기화가 수행될 수 있다(C1). 채널 2에 대한 Z-스캔 순서에 따른 부/복호화가 완료되는 경우, 상기 컨텍스트 모델은 다음 채널을 위해 저장될 수 있다(C2). 그리고, 상기 저장된 컨텍스트 모델은 채널 그룹 2 내에서 다음 부/복호화 대상이 되는 채널 3에 대한 컨텍스트 모델로 동기화되어 사용될 수 있다(C3).
이상 도 17a의 예와 같이, 동일한 채널 그룹에 속하는 채널간에는 컨텍스트 모델을 동기화하여 사용함으로써, 확률 모델의 정확도를 높이고 코딩 효율을 보다 향상시킬 수 있게 된다.
다음으로 도 17b를 참조하면, 3개의 채널 그룹들로 그룹핑된 12개의 채널들은 데이터 분포 특성의 유사도에 따라 (디코딩 순서상) 재정렬될 수 있다. 이에 따라, 채널 부/복호화는 채널 0, 채널 6, 채널 9, 채널 1, 채널 7, 채널 8, 채널 2-5 및 채널 10-11의 순으로 진행될 수 있다. 채널 0의 첫번째 코딩 유닛에 대한 부/복호화시, 채널 그룹 0에 대한 컨텍스트 모델이 초기화될 수 있다(A1). 그리고, 채널 0에 대해 최종 업데이트된 컨텍스트 모델은 다음 부/복호화 대상이 되는 채널 6에 대한 컨텍스트 모델로 동기화되어 사용될 수 있다(A3). 이 때, 상기 최종 업데이트된 컨텍스트 모델이란 채널 0에 대한 부/복호화 완료시의 컨텍스트 모델을 의미할 수 있으며, 다음 채널을 위해 소정의 저장 공간(e.g., 컨텍스트 버퍼)에 저장될 수 있다(A2). 또는, 실시예에 따라, 상기 최종 업데이트된 컨텍스트 모델을 별도로 저장하지 않고 다음 채널을 위해 사용할 수도 있다. 이는, 채널 재정렬에 의해 컨텍스트 모델을 연속적으로 사용할 수 있게 된 데 따른 것으로 볼 수 있다. 이와 같은 방법으로 채널 그룹 0에 대한 부/복호화가 완료되는 경우, 채널 그룹 1에 대한 부/복호화가 진행될 수 있다.
채널 그룹 1에 속하는 채널 1의 첫번째 코딩 유닛에 대한 부/복호화시, 컨텍스트 모델이 초기화될 수 있고(B1), 채널 1에 대해 최종 업데이트된 컨텍스트 모델은 다음 부/복호화 대상이 되는 채널 7에 대한 컨텍스트 모델로 동기화되어 사용될 수 있다(B3). 이 때, 상기 최종 업데이트된 컨텍스트 모델은 다음 채널을 위해 소정의 저장 공간에 저장될 수도 있고(B2), 또는 별도의 저장없이 다음 채널을 위해 사용될 수도 있다. 이와 같은 방법으로 채널 그룹 1에 대한 부/복호화가 완료되는 경우, 채널 그룹 2에 대한 부/복호화가 진행될 수 있다.
마찬가지로, 채널 그룹 2에 속하는 채널 2의 첫번째 코딩 유닛에 대한 부/복호화시, 컨텍스트 모델이 초기화될 수 있고(C1), 채널 2에 대해 최종 업데이트된 컨텍스트 모델은 다음 부/복호화 대상이 되는 채널 3에 대한 컨텍스트 모델로 동기화되어 사용될 수 있다(C3). 이 때, 상기 최종 업데이트된 컨텍스트 모델은 다음 채널을 위해 소정의 저장 공간에 저장될 수도 있고(C2), 또는 별도의 저장없이 다음 채널을 위해 사용될 수도 있다.
이상 도 17b의 예와 같이, 데이터 분포 특성의 유사도에 기반하여 채널 그룹핑 및 재정렬을 모두 수행하여 컨텍스트 모델 동기화를 수행함으로써, 확률 모델의 정확도를 높이고 코딩 효율을 보다 향상시킬 수 있게 된다. 또한, 실시예에 따라, 컨텍스트 모델을 저장하기 위한 별도의 저장 공간이 불필요하게 되어, 메모리 소비가 감소되고, 컨텍스트 모델 변경에 따른 복잡도 증가를 억제할 수 있게 된다.
한편, 상술한 컨텍스트 모델 동기화(즉, 엔트로피 코딩 동기화)를 지원하기 위해, 도 18과 같은 신택스가 제공될 수 있다.
도 18은 본 개시의 일 실시예에 따른 엔트로피 코딩 동기화를 위한 신택스를 나타낸 도면이다.
도 18을 참조하면, 신택스 Feature_seq_parameter_set_rbsp( )는 신택스 요소 channel_entropy_coding_sync_flag를 포함할 수 있다.
신택스 요소 channel_entropy_coding_sync_flag는 엔트로피 코딩 동기화의 수행 여부를 나타낼 수 있다. 예를 들어, 제1 값(e.g., 1)의 channel_entropy_coding_sync_flag는 채널의 첫번째 코딩 유닛의 부/복호화시 기저장된 컨텍스트 모델과의 동기화가 수행됨을 나타낼 수 있다. 동기화에 사용될 컨텍스트 모델이 존재하지 않는 경우, 상기 동기화 과정은 스킵되고 컨텍스트 모델을 새롭게 정의한 후 초기화하여 부/복호화에 사용할 수 있다. 이 때, 가용한 컨텍스트 모델은 피쳐맵의 패킹(packing) 및 부호화 방법에 따라 달라질 수 있다. 이와 달리, 제2 값(e.g., 0)의 channel_entropy_coding_sync_flag는 상기 동기화가 수행되지 않음을 나타낼 수 있다.
도 19는 본 개시의 일 실시예에 따른 엔트로피 코딩 동기화 과정을 나타낸 흐름도이다. 도 19의 각 단계는 도 12를 참조하여 전술한 피쳐 인코딩 장치 또는 피쳐 디코딩 장치에 의해 수행될 수 있다. 이하, 설명의 편의를 위해, 피쳐 인코딩 장치를 기준으로 도 19의 각 단계를 설명하기로 한다.
도 19를 참조하면, 피쳐 인코딩 장치는, 부호화 대상이 되는 현재 코딩 유닛이 채널의 첫번째 코딩 유닛이고 엔트로피 코딩 동기화가 수행되는지 여부를 판단할 수 있다(S1910). 일 실시예에서, 엔트로피 코딩 동기화 수행 여부는 도 18을 참조하여 전술한 channel_entropy_coding_sync_flag에 기반하여 결정할 수 있다.
판단 결과, 현재 코딩 유닛이 채널의 첫번째 코딩 유닛이고 엔트로피 코딩 동기화가 수행되는 경우(e.g., channel_entropy_coding_sync_flag = 1)(S1910의 'YES'), 피쳐 인코딩 장치는 기저장된 컨텍스트 모델을 가용 여부를 판단할 수 있다(S1920).
판단 결과, 기저장된 컨텍스트 모델이 가용한 경우(S1920의 'YES'), 피쳐 인코딩 장치는 현재 채널에 대한 컨텍스트 모델을 상기 기저장된 컨텍스트 모델과 동기화할 수 있다(S1930).
이와 달리, 기저장된 컨텍스트 모델이 가용하지 않은 경우(S1920의 'NO'), 피쳐 인코딩 장치는 현재 채널에 대한 컨텍스트 모델을 초기화할 수 있다(S1940). 상기 컨텍스트 모델을 초기화함에 있어서, 전술한 실시예 1의 엔트로피 코딩 초기화 방법이 적용될 수 있음은 물론이다.
한편, 현재 코딩 유닛이 채널의 첫번째 코딩 유닛이 아니거나 또는 엔트로피 코딩 동기화가 수행되지 않는 경우(S1910의 'NO'), 엔트로피 코딩 동기화 과정은 스킵될 수 있다. 이 경우, 피쳐 인코딩 장치는 부호화 순서상 이전 코딩 유닛에 적용된 컨텍스트 모델 또는 부호화 순서상 이전 채널에 적용된 컨텍스트 모델을 사용하여 현재 코딩 유닛을 부호화할 수 있다.
이상, 본 개시의 실시예 2에 따르면, 채널간 엔트로피 코딩 동기화를 수행할 수 있다. 이를 위해, 데이터 분포 특성의 유사도에 기반한 채널 그룹핑 및 재정렬이 수행될 수 있다. 이에 따라, 채널간 경계에서 아무런 조건없이 채널별로 컨텍스트 모델을 초기화하는 것에 비해, 확률 모델의 중복성이 제거되고 정확도가 높아지게 되어 코딩 효율이 보다 향상될 수 있다.
실시예 3
본 개시의 실시예 3은 채널에 멀티 컨텍스트 모델을 적용하는 방법 및 컨텍스트 모델을 동기화하는 방법에 관한 것이다.
피쳐맵의 경우 일반적인 영상/비디오와 달리 공간적 상관도가 높지 않다. 다시 말해, 채널 내에서도 데이터 분포 특성이 상이한 다수의 영역들이 존재할 수 있다. 따라서, 채널에 오직 하나의 컨텍스트 모델을 적용하는 것은 비효율적일 수 있다. 이에, 실시예 3에 따르면, 채널 내 데이터 분포 특성이 유사한 복수의 영역들을 정의하고, 상기 영역들 각각에 서로 다른 컨텍스트 모델을 적용할 수 있다. 나아가, 동일 위치 또는 대응되는 위치에 존재하는 코딩 유닛들 간에 컨텍스트 모델을 동기화할 수 있다.
도 20은 본 개시의 일 실시예에 따른 멀티 컨텍스트 모델 적용 및 동기화 방법을 설명하기 위한 도면이다.
도 20을 참조하면, 채널 0 내에는 데이터 분포 특성의 유사도(e.g., 엣지 특성, 평균값 등)에 기반하여 4개 영역들이 정의될 수 있다. 그리고, 각각의 영역에는 서로 다른 컨텍스트 모델이 적용될 수 있다. 예를 들어, 제1 영역에는 컨텍스트 모델 0이 적용되고, 제2 영역에는 컨텍스트 모델 1이 적용되며, 제3 영역에는 컨텍스트 모델 2가 적용되고, 제4 영역에는 컨텍스트 모델 3이 적용될 수 있다.
채널 0에 대한 부/복호화가 완료된 이후, 채널 1에 대한 부/복호화를 수행함에 있어서, 채널 내 위치에 기반한 컨텍스트 모델 동기화가 수행될 수 있다. 예를 들어, 채널 1 내의 현재 코딩 유닛에 대한 컨텍스트 모델은 부/복호화가 완료된 채널 0 내에서 상기 현재 코딩 유닛과 동일 위치 또는 대응되는 위치에 적용된 컨텍스트 모델 0으로 설정(또는, 동기화)될 수 있다. 여기서, 동일 위치 또는 대응되는 위치란 참조 채널 내에서 현재 코딩 유닛의 좌상단 위치와 동일한 좌표를 갖는 위치를 의미할 수 있다. 한편, 상술한 멀티 컨텍스트 모델 적용 및 동기화를 지원하기 위해, 도 21과 같은 신택스가 제공될 수 있다.
도 21은 본 개시의 일 실시예에 따른 멀티 컨텍스트 모델 적용 및 동기화를 위한 신택스를 나타낸 도면이다.
도 21을 참조하면, 신택스 Feature_seq_parameter_set_rbsp( )는 신택스 요소들 channel_entropy_coding_collocated_sync_flag, multiple_context_enable_flag 및 num_context_model_minus1을 포함할 수 있다.
신택스 요소 channel_entropy_coding_collocated_sync_flag는 해당 신택스를 참조하는 현재 채널에 있어서 이전 채널 내의 동일 위치 또는 대응되는 위치의 컨텍스트 모델과의 동기화 수행 여부를 나타낼 수 있다. 예를 들어, 제1 값(e.g., 1)의 channel_entropy_coding_collocated_sync_flag는 현재 채널에 있어서 동일 위치 또는 대응되는 위치의 컨텍스트 모델과의 동기화가 수행됨을 나타낼 수 있다. 이와 달리, 제2 값(e.g., 0)의 channel_entropy_coding_collocated_sync_flag는 현재 채널에 있어서 동일 위치 또는 대응되는 위치의 컨텍스트 모델과의 동기화가 수행되지 않음을 나타낼 수 있다.
신택스 요소 multiple_context_enable_flag는 현재 채널에 대해 복수의 컨텍스트 모델, 즉 멀티 컨텍스트 모델을 적용할 수 있는지 여부를 나타낼 수 있다. 예를 들어, 제1 값(e.g., 1)의 channel_entropy_coding_collocated_sync_flag는 현재 채널에 대해 멀티 컨텍스트 모델을 적용할 수 있음(즉, 활성화)을 나타낼 수 있다. 이와 달리, 제2 값(e.g., 0)의 channel_entropy_coding_collocated_sync_flag는 현재 채널에 대해 멀티 컨텍스트 모델을 적용할 수 없음(즉, 비활성화)을 나타낼 수 있다.
신택스 요소 num_context_model_minus1은 가용한 최대 컨텍스트 모델에서 1을 차감한 값을 나타낼 수 있다. num_context_model_minus1은 multiple_context_enable_flag가 제1 값(e.g, 1)인 경우에만 시그널링될 수 있다.
이상, 본 개시의 실시예 3에 따르면, 각 채널에 대해 영역 기반의 멀티 컨텍스트 모델이 적용될 수 있다. 또한, 채널간 동일 위치 또는 대응되는 위치의 컨텍스트 모델 동기화가 수행될 수 있다. 이에 따라, 채널의 데이터 분포 특성을 보다 정확하게 반영할 수 있게 되므로, 확률 모델의 중복성이 제거되고 정확도가 높아지게 되어 코딩 효율이 보다 향상될 수 있다.
실시예 4
본 개시의 실시예 4는 채널 그룹핑 방법에 관한 것이다.
기존 비디오 코덱의 타일 및 서브픽처는 독립된 부/복호화를 목표로 한다. 즉, 서로 다른 타일들 및 서브픽처들은 상호 부/복호화 의존성이 없어 공간적 예측 및 엔트로피 코딩 과정이 독립적으로 적용될 수 있다. 이에 반해, 전술한 실시예 1 내지 실시예 4는 채널 경계에서의 컨텍스트 모델 관리(즉, 초기화 및/또는 동기화)에 관한 것으로서, 채널의 독립된 부/복호화가 아닌 채널 경계에서의 불연속성 제거 및 코딩 효율 향상을 목표로 한다. 따라서, VCM에 있어서, 공간적 예측과 엔트로피 코딩 과정의 독립성은 존재하지 않을 수 있다. 나아가, 기존 비디오 코덱에 있어서, 타일은 타일 열 및 행으로 나뉘어 연속적으로 정의되는 바, 현재 부/복호화 위치와 타일 열 및 행에 관한 정보에 기반하여 현재 타일의 위치를 유도할 수 있다. 이에 반해, VCM에 있어서, 채널 그룹을 구성하는 채널간에는 공간적 연속성은 존재하지 않을 수 있다.
채널 그룹의 데이터 분포 특성은 각 채널들의 데이터 분포 특성에 기반하여 정의되기 때문에, 채널 그룹에 대한 정보가 별도로 부/복호화될 필요가 있다. 또한, 채널 그룹에 속하는 채널들의 개수 또한 각 채널의 데이터 분포 특성에 기반하여 달라질 수 있으므로, 채널 그룹에 속하는 채널들의 개수에 관한 정보 또한 별도로 부/복호화될 필요가 있다. 실시예 4에 따르면, 채널 그룹핑 방법 및 관련 정보를 시그널링하기 위한 신택스들이 제공될 수 있다.
일 실시예에서, 피쳐맵에 포함된 복수의 채널들은 클러스터링 기법에 기반하여 그룹핑될 수 있다. 그 구체적 과정은 아래의 표 4와 같다.
[표 4]
Figure PCTKR2022016656-appb-img-000004
표 4에서, 클러스터링 과정을 통해 동일한 (채널) 군집에 속하는 데이터간의 유사도가 다른 (채널) 군집에 속하는 데이터간의 유사도보다 높도록 (채널) 군집이 구성될 수 있다. 실시예에 따라, 상기 데이터간의 유사도는 유클리드 거리(Euclidien distance)에 기반하여 결정될 수 있다. 예를 들어, 유클리드 거리가 소정의 임계치 미만인 데이터간에는 상대적으로 유사도가 높은 것으로 분류되고, 유클리드 거리가 상기 임계치 이상인 데이터간에는 상대적으로 유사도가 낮은 것으로 분류될 수 있다. 클러스터링 과정은 도 22에 도시된 바와 같이 피쳐 추출 과정의 후단 및 피쳐 부호화 과정의 전단에서 수행될 수 있다.
다른 실시예에서, 피쳐맵에 포함된 복수의 채널들은 소정의 임계치에 기반하여 그룹핑될 수 있다. 그 구체적 과정은 아래의 표 5와 같다.
[표 5]
Figure PCTKR2022016656-appb-img-000005
표 5에서, 임계치 설정 개수는 채널 그룹의 개수에 기반하여 결정될 수 있다(e.g., 임계치 개수 = 채널 그룹 개수 - 1). 또한, 임계치 값은 시스템 요구사항, 태스크 목적 및 인코더/디코더 설계에 따라 달라질 수 있으며, 기 부/복호화된 피쳐맵(또는, 프레임)의 피쳐값의 통계적 특성(e.g., 평균값, 분산 등)을 반영하여 적응적으로 결정될 수 있다.
상술한 예들은 채널 그룹핑 방법의 다양한 예들 중 하나일 뿐, 본 개시의 실시예들이 이에 제한되는 것은 아니다. 예를 들어, 채널들은 태스크 목적, 영상 유형 등에 따라 다양한 방법으로 그룹핑될 수 있다. 채널 그룹핑 과정은 피쳐 추출 과정과 함께 또는 이와 별개로 외부 네트워크(e.g., 채널 그룹핑 매니저)에 의해 실행될 수도 있다. 예를 들어, 도 22에 도시된 바와 달리, 채널 그룹핑 과정은 인코더 전단의 외부 네트워크에 의해 수행될 수도 있다.
한편, 채널 복호화를 위해 채널 그룹핑 관련 정보(e.g., 그룹핑 결과 - 매핑 테이블, 임계치 등)가 부호화되어 디코더로 시그널링될 수 있다. 채널 그룹핑 관련 정보는 여러 계층에서 정의될 수 있다. 예를 들어, 도 23에 도시된 바와 같이, 채널 그룹핑 관련 정보는 채널 레벨에서 정의될 수 있다. 채널 그룹핑 관련 정보를 채널 레벨에서 시그널링하기 위해, 도 24a 및 도 24b와 같은 신택스들이 제공될 수 있다.
도 24a는 본 개시의 일 실시예에 따른 피쳐 채널 코딩 신택스를 나타낸 도면이다.
도 24a를 참조하면, 피쳐 채널 코딩 신택스(Feature_channel_coding( ))는 신택스 요소들 channel_group_id 및 channel_group_id_sync_flag를 포함할 수 있다. 피쳐 채널 코딩 신택스(Feature_channel_coding( ))는 채널 단위로 채널 그룹핑 관련 정보를 부/복호화하는 예이다.
신택스 요소 channel_group_id는 상기 신택스를 참조하는 현재 채널이 속한 채널 그룹을 나타낼 수 있다. 도 23의 예에서, 채널 0의 channel_group_id는 0이고, 채널 1의 channel_group_id는 2일 수 있다. channel_group_id는 도 18을 참조하여 전술한 channel_entropy_coding_sync_flag가 제1 값(e.g., 1)인 경우(즉, 채널간 엔트로피 코딩 동기화가 수행되는 경우)에만 시그널링될 수 있다.
channel_group_id에 대응하는 컨텍스트 모델이 존재하는 경우(contextmodel[channel_group_id] = true), 해당 컨텍스트 모델에 동기화하여 엔트로피 코딩에 사용할 수 있다(synchronization(contextmodel[channel_group_id])). 이와 달리, channel_group_id에 대응하는 컨텍스트 모델이 존재하지 않는 경우(contextmodel[channel_group_id] = false), 컨텍스트 모델을 초기화할 수 있다(initialization(contextmodel[channel_group_id])).
한편, 각 채널은 입력 비디오의 고유한 특징을 나타내기 때문에, 인접 프레임간에(즉, 시간적으로) 유사한 데이터 분포 특성을 가질 수 있다. 따라서, 인접 프레임들의 대응 채널간에 channel_group_id가 동일 또는 유사할 수 있다. 이에, 이전 프레임의 channel_group_id 재사용 정보가 시그널링될 수 있다.
도 24b는 본 개시의 일 실시예에 따른 피쳐 프레임 파라미터 셋을 나타낸 도면이다.
도 24b를 참조하면, 피쳐 프레임 파라미터 셋(feature_frame_parameter_set_rbsp( ))은 신택스 요소 channel_group_id_sync_flag를 포함할 수 있다.
신택스 요소 channel_group_id_sync_flag는 상기 파라미터 셋을 참조하는 현재 (피쳐) 프레임에 대해 이전 (피쳐) 프레임의 channel_group_id를 재사용하는지 여부를 나타낼 수 있다. 예를 들어, 제1 값(e.g., 1)의 channel_group_id_sync_flag는 이전 (피쳐) 프레임의 channel_group_id를 재사용함을 나타낼 수 있다. 이와 달리, 제2 값(e.g., 0)의 channel_group_id_sync_flag는 이전 (피쳐) 프레임의 channel_group_id를 재사용하지 않고, 현재 (피쳐) 프레임에 대하여 channel_group_id를 부/복호화함을 나타낼 수 있다.
channel_group_id의 재사용 여부를 지정하는 피쳐 채널 코딩 신택스의 일 예는 도 25에 도시된 바와 같다.
도 25는 본 개시의 일 실시예에 따른 피쳐 채널 코딩 신택스를 나타낸 도면이다.
도 25를 참조하면, 피쳐 채널 코딩 신택스(Feature_channel_coding( ))는 신택스 요소들 channel_group_id를 포함할 수 있다. channel_group_id의 시맨틱스는 도 24a를 참조하여 전술한 바와 같다.
channel_entropy_coding_sync_flag가 제1 값(e.g., 1)인 경우(즉, 채널간 엔트로피 코딩 동기화가 수행되는 경우), 상기 신택스를 참조하는 현재 채널의 채널 그룹은 이전 프레임의 동일 위치 또는 대응되는 위치의 채널 그룹과 동일하게 설정될 수 있다(channel_group_id = prev_channel_group_id).
전술한 예에서와 같이 channel_group_id는 채널 레벨에서 정의될 수도 있지만, 보다 상위 레벨, 예컨대 프레임 레벨에서 정의될 수도 있다. 예를 들어, 도 21의 예에서 channel_group_id는 프레임 레벨에서 채널 순으로 부/복호화될 수도 있다. 채널 그룹핑 관련 정보를 프레임 레벨에서 시그널링하기 위해, 도 26a 및 도 26b와 같은 신택스들이 제공될 수 있다.
도 26a는 본 개시의 일 실시예에 따른 피쳐 시퀀스 파라미터 셋을 나타낸 도면이다.
도 26a를 참조하면, 피쳐 시퀀스 파라미터 셋(Feature_seq_parameter_set_rbsp( ))은 신택스 요소들 channel_entropy_coding_sync_flag, frame_group_id_enable_flag 및 channel_group_ids[i]를 포함할 수 있다.
신택스 요소 channel_entropy_coding_sync_flag의 시맨틱스는 도 18을 참조하여 전술한 바와 같다.
신택스 요소 frame_group_id_enable_flag는 channel_group_id가 프레임 레벨에서 부/복호화되는지 아니면 채널 레벨에서 부/복호화되는지 여부를 나타낼 수 있다. 예를 들어, 제1 값(e.g, 1)의 frame_group_id_enable_flag는 channel_group_id가 프레임 레벨에서 부/복호화됨을 나타낼 수 있다. 이와 달리, 제2 값(e.g, 0)의 frame_group_id_enable_flag는 channel_group_id가 채널 레벨에서 부/복호화됨을 나타낼 수 있다.
신택스 요소 channel_group_ids[ i ]는 상기 피쳐 시퀀스 파라미터 셋을 참조하는 현재 프레임 내의 각 채널의 channel_group_id를 나타낼 수 있다. 현재 프레임 내 채널들의 개수(num_channel_minus1 + 1)만큼 channel_group_ids[ i ]가 부/복호화될 수 있다.
도 26b는 본 개시의 일 실시예에 따른 피쳐 채널 코딩 신택스를 나타낸 도면이다.
도 26b는 신택스 요소들 frame_group_id_enable_flag 및 channel_group_id_sync_flag를 모두 사용하여 채널 그룹핑 관련 정보를 부/복호화하는 예를 나타낸다. 도 26b에서 변수 current_channel은 부/복호화 대상이 되는 현재 채널을 나타낸다. current_channel은 현재 부/복호화되는 위치, 채널들의 개수(크기), 입력 피쳐맵의 크기 등에 기반하여 유도될 수 있다. 변수 prev_channel_group_ids는 이전 프레임의 동일 위치 또는 대응 위치 채널의 channel_group_ids를 나타낼 수 있다. 예를 들어, 'channel_group_id = prev_channel_group_ids[current_channel]'이란 이전 프레임에서 현재 채널과 동일 위치 또는 대응 위치 채널의 channel_group_id를 현재 채널의 channel_group_id로 사용함을 나타낼 수 있다.
이상, 본 개시의 실시예 4에 따르면, 피쳐맵의 채널들은 다양한 방법으로 그룹핑될 수 있다. 또한, 채널 그룹핑 관련 정보는 다양한 레벨, 예컨대 채널 레벨 또는 프레임 레벨에서 부/복호화될 수 있다.
이하, 인트라 예측 또는 인터 예측을 수행함에 있어서, 참조 정보를 구성하는 방법에 관해 상세히 설명하기로 한다.
실시예 5
본 개시의 실시예 5는 예측 위한 참조 정보 구성 방법에 관한 것이다. 관련하여, 도 27은 4개의 연속된 채널들로 구성된 피쳐맵의 일 예를 나타내는 도면이다. 도 27을 참조하면, 피쳐맵은 채널 0 내지 채널 3으로 구성될 수 있으며, 채널 0 내지 채널 3은 순차적으로 부호화될 수 있다. 채널 3의 좌상측 블록이 현재 코딩 유닛이고 인트라 예측을 통해 부호화하는 경우, 현재 코딩 유닛에 인접한 채널 0 내지 채널 3의 기복원된 피쳐 정보를 참조 정보로 사용하게 된다. 하지만, 각 채널의 데이터 분포 특성이 다르고, 채널 0의 우하측, 채널 1의 하측, 채널 2의 우측의 피쳐 정보를 참조하게 되므로, 현재 코딩 유닛과는 공간적 거리(또는, 각 채널 내에서의 위치)가 가깝지 않다. 따라서, 해당 정보를 인트라 예측의 참조 정보로 사용할 경우, 코딩 효율을 저하시킬 수 있으며, 불필요한 연산이 필요하게 되어 복잡도가 증가하게 되는 문제가 발생할 수 있다.
이에 본 개시의 실시예 5에 따르면, 예측에 사용되는 참조 정보 구성시 현재 채널의 정보만을 사용하도록 제한될 수 있다. 예측에 사용되는 참조 정보에 관한 제약을 정의하기 위해 도 28a 및 도 28b와 같은 신택스들이 제공될 수 있다.
도 28a 및 도 28b는 본 개시의 일 실시예에 따른 피쳐 시퀀스 파라미터 셋을 나타낸 도면들이다.
먼저 도 28a를 참조하면, 피쳐 시퀀스 파라미터 셋(Feature_seq_parameter_set_rbsp( ))은 신택스 요소 channel_constrained_intra_pred_flag를 포함할 수 있다.
신택스 요소 channel_constrained_intra_pred_flag는 인트라 예측시 부/복호화 대상 영역의 채널과는 다른 채널의 정보를 참조할 수 있는지 여부를 나타낼 수 있다. 예를 들어, 제1 값(e.g., 1)의 channel_constrained_intra_pred_flag는 인트라 예측시 다른 채널의 정보를 참조하지 않도록 제한됨을 나타낼 수 있다. 이와 달리, 제2 값(e.g., 0)의 channel_constrained_intra_pred_flag는 인트라 예측시 다른 채널의 정보를 참조할 수 있음을 나타낼 수 있다. 여기서, 예측 대상은 부/복호화 대상이 되는 피쳐 또는 비디오를 의미할 수 있다. 또한, 다른 채널의 정보에는 부/복호화 과정에서 생성되는 신택스 및 시맨틱 정보는 포함되지 않으며, 해당 정보는 channel_constrained_intra_pred_flag와 무관하게 인트라 예측에 사용할 수 있다.
다음으로 도 28b를 참조하면, 피쳐 시퀀스 파라미터 셋(Feature_seq_parameter_set_rbsp( ))은 신택스 요소 channel_constrained_inter_pred_flag를 포함할 수 있다.
신택스 요소 channel_constrained_inter_pred_flag는 인터 예측시 부/복호화 대상 영역의 채널과는 다른 채널의 정보를 참조할 수 있는지 여부를 나타낼 수 있다. 예를 들어, 제1 값(e.g., 1)의 channel_constrained_inter_pred_flag는 인터 예측시 다른 채널의 정보를 참조하지 않도록 제한됨을 나타낼 수 있다. 이 경우, 움직임 예측 및 보상 범위는 현재 채널과 동일한 채널로 제한된다. 이와 달리, 제2 값(e.g., 0)의 channel_constrained_inter_pred_flag는 인터 예측시 다른 채널의 정보를 참조할 수 있음을 나타낼 수 있다. 여기서, 예측 대상은 부/복호화 대상이 되는 피쳐 또는 비디오를 의미할 수 있다. 또한, 다른 채널의 정보에는 부/복호화 과정에서 생성되는 신택스 및 시맨틱 정보는 포함되지 않으며, 해당 정보는 channel_constrained_inter_pred_flag와 무관하게 인터 예측에 사용할 수 있다.
참조 정보 후보가 현재 채널과 동일한 채널에 속하더라도 예측 제약 조건이 없는 경우, 부/복호화시 다른 채널의 정보를 이용했을 수도 있다. 이 경우, 현재 부/복호화 대상의 목표가 독립적 부/복호화라면, 해당 참조 정보 후보를 인트라 예측 및 인터 예측의 참조 정보로 사용해서는 안 된다.
일 실시예에서, 인트라 예측을 위한 참조 정보 구성시, 다른 채널의 정보를 참조할 수 없는 경우, 해당 채널 정보는 가용한 가장 가짜운 현재 채널의 정보로 대체될 수 있다. 도 29a 및 도 29b는 인트라 예측시 참조 정보 대체의 예를 나타낸다. 먼저 도 29a를 참조하면, 현재 채널 내 부/복호화 영역의 상측 참조 정보가 다른 채널의 정보로서 비가용한 경우, 상기 상측 참조 정보는 상기 부/복호화 영역의 좌측에 존재하는 현재 채널의 기 복원된 피쳐 정보로 대체될 수 있다. 다음으로 도 29b를 참조하면, 현재 채널 내 부/복호화 영역의 좌측 참조 정보가 다른 채널의 정보로서 비가용한 경우, 상기 좌측 참조 정보는 상기 부/복호화 영역의 상측에 존재하는 현재 채널의 기 복원된 피쳐 정보로 대체될 수 있다. 한편, 상술한 예들에서, 대체 가능한 현재 채널 정보가 존재하지 않는 경우, 비가용한 다른 채널 정보는 특정 값(e.g., 0)으로 대체될 수도 있다.
도 30은 본 개시의 일 실시예에 따른 참조 정보 대체 방법을 나타낸 흐름도이다. 도 30의 각 단계는 도 12를 참조하여 전술한 피쳐 인코딩 장치 또는 피쳐 디코딩 장치에 의해 수행될 수 있다. 이하, 설명의 편의를 위해, 피쳐 인코딩 장치를 기준으로 도 30의 각 단계를 설명하기로 한다.
도 30을 참조하면, 피쳐 인코딩 장치는 현재 코딩 유닛의 예측을 위한 참조 정보 후보 집합(CRL) 및 참조 정보 집합(RL)을 정의할 수 있다(S3010). 또한, 피쳐 인코딩 장치는 참조 정보 집합(RL)의 크기(SizeOfRL)을 정의하고, 참조 정보 인덱스를 나타내는 변수 indexCount를 0으로 설정할 수 있다.
그리고, 피쳐 인코딩 장치는 참조 정보 후보 집합(CRL) 내에서 indexCount에 대응하는 후보가 가용한지 여부를 판단할 수 있다(S3020).
단계 S3020의 판단 결과, 상기 후보가 가용한 경우(S3020의 'YES'), 피쳐 인코딩 장치는 예측 제약 조건의 적용 여부(e.g., channel_constrained_intra_pred_flag 또는 channel_constrained_inter_pred_flag)를 판단할 수 있다(S3030).
단계 S3030의 판단 결과, 예측 제약 조건이 적용되는 경우(S3030의 'YES'), 피쳐 인코딩 장치는 참조 정보 후보가 현재 코딩 유닛과 동일 채널에 속하는지 여부를 판단할 수 있다(S3040).
단계 S3040의 판단 결과, 참조 정보 후보가 현재 코딩 유닛과 동일 채널에 속하는 경우(S3040의 'YES'), 피쳐 인코딩 장치는 참조 정보 후보를 참조 정보 집합(RL)에 입력하고(S3050), 단계 S3060으로 진행할 수 있다. 이와 달리, 참조 정보 후보가 현재 코딩 유닛과 다른 채널에 속하는 경우(S3040의 'NO'), 피쳐 인코딩 장치는 상기 참조 정보 후보가 비가용하다고 판단하고 참조 정보 집합(RL) 내 indexCount에 비가용함을 나타내는 식별 마킹을 입력할 수 있다(S3070).
단계 S3020의 판단 결과, 상기 후보가 비가용한 경우(S3020의 'NO'), 피쳐 인코딩 장치는 단계 S3070으로 진행하여 상술한 식별 마킹을 입력할 수 있다.
단계 S3030의 판단 결과, 예측 제약 조건이 적용되지 않는 경우(S3030의 'NO'), 피쳐 인코딩 장치는 참조 정보 후보를 참조 정보 집합(RL)에 입력하고(S3050), 단계 S3060으로 진행할 수 있다.
피쳐 인코딩 장치는 indexCount가 기정의된 참조 정보 집합(RL)의 크기(SizeOfRL)보다 작은지 여부를 판단할 수 있다(S3060). 판단 결과, indexCount가 상기 참조 정보 집합(RL)의 크기(SizeOfRL)보다 작은 경우(S3060의 'YES'), 피쳐 인코딩 장치는 indexCount를 1 증가시키고 단계 S3020으로 돌아가 상술한 과정을 반복할 수 있다. 이와 달리, indexCount가 상기 참조 정보 집합(RL)의 크기(SizeOfRL)보다 크거나 같은 경우(S3060의 'NO'), 피쳐 인코딩 장치는 상술한 과정을 종료하고, 참조 정보 집합(RL) 내에서 비가용 식별 마킹된 참조 정보를 해당 집합 내 가장 인접한 참조 정보로 대체할 수 있다(S3090).
이상, 본 개시의 실시예 5에 따르면, 예측에 사용되는 참조 정보 구성시 현재 채널의 정보만을 사용하도록 제한될 수 있다. 또한, 비가용한 참조 정보는 현재 채널 내의 인접한 가용 정보로 대체될 수 있다. 이에 따라, 유사한 데이터 분포 특성을 갖는 참조 정보를 이용하여 예측을 수행할 수 있게 되므로, 코딩 효율이 보다 향상될 수 있다.
실시예 6
본 개시의 실시예 6은 코딩 유닛의 독립적인 부/복호화를 위해 예측을 위한 참조 정보 구성시 제약 조건에 관한 것이다. 실시예 6에 따르면, 예측에 사용되는 참조 정보는 현재 코딩 유닛과 동일 채널 및 동일 전송 단위에 속하도록 제한될 수 있다. 또한, 상기 참조 정보는 다른 채널 정보를 참조하지 않고 부/복호화된 것이야 하며, 인터 예측이 적용되지 않은 정보로 제한될 수 있다. 상기 제약 조건은 다양한 레벨에서 적용될 수 있다. 예를 들어, 상기 제약 조건은 도 31a와 같이 시퀀스 레벨에서 적용될 수 있다. 또는, 상기 제약 조건은 도 31b와 같이 채널 레벨에서 적용될 수도 있다. 또는, 상기 제약 조건은 도 31c와 같이 피쳐 레벨에서 적용될 수도 있다.
한편, 상기 제약 조건을 제어하기 위해 도 31a 내지 도 31c에 따른 신택스들은 신택스 요소 channel_independent_pred_flag를 포함할 수 있다.
신택스 요소 channel_independent_pred_flag는 상기 제약 조건이 적용되는지 여부를 나타낼 수 있다. 예를 들어, 제1 값(e.g., 1)의 channel_independent_pred_flag는 현재 코딩 유닛의 예측시 동일 채널 및 동일 전송 단위의 정보만을 참조하도록 제한됨을 나타낼 수 있다. 또한, 인터 예측이 적용되었거나 다른 채널 또는 다른 전송 단위의 정보를 참조한 경우 해당 참조 정보는 사용하지 않도록 제한될 수 있다. 이와 달리, 제2 값(e.g., 0)의 channel_independent_pred_flag는 상기 제약 조건이 적용되지 않음을 나타낼 수 있다.
도 32는 본 개시의 일 실시예에 따른 참조 정보 구성 방법을 나타낸 흐름도이다. 도 32의 각 단계는 도 12를 참조하여 전술한 피쳐 인코딩 장치 또는 피쳐 디코딩 장치에 의해 수행될 수 있다. 이하, 설명의 편의를 위해, 피쳐 인코딩 장치를 기준으로 도 32의 각 단계를 설명하기로 한다.
도 32를 참조하면, 피쳐 인코딩 장치는 참조 정보 후보가 현재 코딩 유닛과 동일 전송 단위(e.g., slice, tile 등)인지 여부를 판단할 수 있다(S3210).
단계 S3210의 판단 결과, 참조 정보 후보가 현재 코딩 유닛과 동일 전송 단위인 경우(S3210의 'YES'), 피쳐 인코딩 장치는 참조 정보에 대한 channel_independent_pred_flag가 제1 값(e.g., 1)인지 여부를 판단할 수 있다(S3220).
단계 S3220의 판단 결과, channel_independent_pred_flag가 제1 값(e.g., 1)인 경우, 피쳐 인코딩 장치는 해당 참조 정보 후보를 이용하여 현재 코딩 유닛의 참조 정보를 구성할 수 있다(S3230).
단계 S3220의 판단 결과, channel_independent_pred_flag가 제2 값(e.g., 0)인 경우, 피쳐 인코딩 장치는 참조 정보가 인터 예측이 적용되었거나 다른 채널 또는 다른 전송 단위의 정보를 참조했는지 여부를 판단할 수 있다(S3240).
단계 S3240의 판단 결과, 참조 정보가 인터 예측이 적용되지 않았고 다른 채널 또는 다른 전송 단위의 정보를 참조하지 않은 경우(S3240의 'YES'), 피쳐 인코딩 장치는 해당 참조 정보 후보를 이용하여 현재 코딩 유닛의 참조 정보를 구성할 수 있다(S3230).
단계 S3240의 판단 결과, 참조 정보가 인터 예측이 적용되었거나 다른 채널 또는 다른 전송 단위의 정보를 참조한 경우(S3240의 'NO'), 피쳐 인코딩 장치는 해당 참조 정보 후보를 사용하지 않기로 결정하고 상술한 과정을 종료할 수 있다.
또한, 단계 S3210의 판단 결과, 참조 정보 후보가 현재 코딩 유닛과 동일 전송 단위가 아닌 경우(S3210의 'NO'), 피쳐 인코딩 장치는 해당 참조 정보 후보를 사용하지 않기로 결정하고 상술한 과정을 종료할 수 있다.
이상 본 개시의 실시예 6에 따르면, 동일 채널 및 동일 전송 단위에 속하는 참조 정보만을 이용하여 예측을 수행하도록 제한될 수 있다. 또한, 인터 예측이 적용되었거나 혹은 다른 채널 또는 다른 전송 단위의 정보를 참조한 참조 정보는 현재 코딩 유닛의 예측에 이용되지 않도록 제한될 수 있다. 이에 따라, 코딩 유닛의 독립적 부/복호화가 보장될 수 있다.
이하, 도 33 및 도 34를 참조하여, 본 개시의 일 실시예에 따른 피쳐 부호화/복호화 방법을 상세히 설명하기로 한다.
도 33은 본 개시의 일 실시예에 따른 피쳐 부호화 방법을 나타낸 흐름도이다. 도 33의 피쳐 정보 부호화 방법은 도 1의 부호화 장치에 의해 수행될 수 있다.
도 33을 참조하면, 부호화 장치는 현재 코딩 유닛의 채널 정보를 결정할 수 있다(S3310). 일 실시예에서, 상기 채널 정보는 상기 현재 코딩 유닛을 포함하는 피쳐맵의 채널 그룹핑 정보를 포함할 수 있다.
부호화 장치는 상기 채널 정보에 기반하여 상기 현재 코딩 유닛에 대한 컨텍스트 모델(context model)을 결정하고(S3320), 상기 컨텍스트 모델에 기반하여 상기 현재 코딩 유닛을 부호화할 수 있다(S3330). 일 실시예에서, 상기 컨텍스트 모델은 상기 채널 그룹핑 정보에 기반하여 결정될 수 있다.
일 실시예에서, 상기 피쳐맵의 채널들은 복수의 채널 그룹들로 그룹핑되고, 상기 컨텍스트 모델은 상기 채널 그룹들 각각에 대해 개별적으로 결정될 수 있다.
일 실시예에서, 상기 채널 그룹들 각각에 대해 기저장된 컨텍스트 모델이 존재하지 않음에 기반하여, 상기 컨텍스트 모델은 엔트로피 코딩 초기화 과정을 통해 획득될 수 있다.
일 실시예예서, 상기 채널 그룹들 각각에 대해 기저장된 컨텍스트 모델이 존재함에 기반하여, 상기 컨텍스트 모델은 상기 기저장된 컨텍스트 모델과의 엔트로피 코딩 동기화 과정을 통해 획득될 수 있다.
일 실시예예서, 상기 채널 그룹핑 정보는 상기 현재 코딩 유닛을 포함하는 현재 채널이 속한 채널 그룹을 나타내는 채널 그룹 식별 정보를 포함할 수 있다.
일 실시예예서, 상기 채널 그룹 식별 정보는 엔트로피 코딩 동기화 과정의 수행 여부에 기반하여 획득될 수 있다.
일 실시예예서, 상기 현재 코딩 유닛을 포함하는 현재 채널은 복수의 영역들로 분할되고, 상기 복수의 영역들 각각에 대하여 서로 다른 컨텍스트 모델이 적용될 수 있다.
일 실시예예서, 상기 컨텍스트 모델은, 기복원된 채널 내에서 상기 현재 코딩 유닛과 동일 위치 또는 대응되는 위치에 적용된 컨텍스트 모델과의 엔트로피 코딩 동기화 과정을 통해 획득될 수 있다.
일 실시예예서, 상술한 피쳐 부호화 방법은 소정의 참조 정보에 기반하여 상기 부호화될 현재 코딩 유닛을 예측하는 단계를 더 포함할 수 있다. 이 경우, 상기 참조 정보는 상기 현재 코딩 유닛을 포함하는 현재 채널 내의 기복원된 피쳐 정보로 제한될 수 있다.
도 34는 본 개시의 일 실시예에 따른 피쳐 복호화 방법을 나타낸 흐름도이다. 도 34의 피쳐 복호화 방법은 도 1의 복호화 장치에 의해 수행될 수 있다.
도 34를 참조하면, 복호화 장치는 현재 코딩 유닛의 채널 정보를 획득할 수 있다(S3410). 일 실시예에서, 상기 채널 정보는 상기 현재 코딩 유닛을 포함하는 피쳐맵의 채널 그룹핑 정보를 포함할 수 있다.
복호화 장치는 상기 채널 정보에 기반하여 상기 현재 코딩 유닛에 대한 컨텍스트 모델(context model)을 결정하고(S3420), 상기 컨텍스트 모델에 기반하여 상기 현재 코딩 유닛을 복호화할 수 있다(S3430). 일 실시예에서, 상기 컨텍스트 모델은 상기 채널 그룹핑 정보에 기반하여 결정될 수 있다.
일 실시예에서, 상기 피쳐맵의 채널들은 복수의 채널 그룹들로 그룹핑되고, 상기 컨텍스트 모델은 상기 채널 그룹들 각각에 대해 개별적으로 결정될 수 있다.
일 실시예에서, 상기 채널 그룹들 각각에 대해 기저장된 컨텍스트 모델이 존재하지 않음에 기반하여, 상기 컨텍스트 모델은 엔트로피 코딩 초기화 과정을 통해 획득될 수 있다.
일 실시예예서, 상기 채널 그룹들 각각에 대해 기저장된 컨텍스트 모델이 존재함에 기반하여, 상기 컨텍스트 모델은 상기 기저장된 컨텍스트 모델과의 엔트로피 코딩 동기화 과정을 통해 획득될 수 있다.
일 실시예예서, 상기 채널 그룹핑 정보는 상기 현재 코딩 유닛을 포함하는 현재 채널이 속한 채널 그룹을 나타내는 채널 그룹 식별 정보를 포함할 수 있다.
일 실시예예서, 상기 채널 그룹 식별 정보는 엔트로피 코딩 동기화 과정의 수행 여부에 기반하여 획득될 수 있다.
일 실시예예서, 상기 현재 코딩 유닛을 포함하는 현재 채널은 복수의 영역들로 분할되고, 상기 복수의 영역들 각각에 대하여 서로 다른 컨텍스트 모델이 적용될 수 있다.
일 실시예예서, 상기 컨텍스트 모델은, 기복원된 채널 내에서 상기 현재 코딩 유닛과 동일 위치 또는 대응되는 위치에 적용된 컨텍스트 모델과의 엔트로피 코딩 동기화 과정을 통해 획득될 수 있다.
일 실시예예서, 상술한 피쳐 복호화 방법은 소정의 참조 정보에 기반하여 상기 복호화될 현재 코딩 유닛을 예측하는 단계를 더 포함할 수 있다. 이 경우, 상기 참조 정보는 상기 현재 코딩 유닛을 포함하는 현재 채널 내의 기복원된 피쳐 정보로 제한될 수 있다.
본 개시의 예시적인 방법들은 설명의 명확성을 위해서 동작의 시리즈로 표현되어 있지만, 이는 단계가 수행되는 순서를 제한하기 위한 것은 아니며, 필요한 경우에는 각각의 단계가 동시에 또는 상이한 순서로 수행될 수도 있다. 본 개시에 따른 방법을 구현하기 위해서, 예시하는 단계에 추가적으로 다른 단계를 포함하거나, 일부의 단계를 제외하고 나머지 단계를 포함하거나, 또는 일부의 단계를 제외하고 추가적인 다른 단계를 포함할 수도 있다.
본 개시에 있어서, 소정의 동작(단계)을 수행하는 영상 부호화 장치 또는 영상 복호화 장치는 해당 동작(단계)의 수행 조건이나 상황을 확인하는 동작(단계)을 수행할 수 있다. 예를 들어, 소정의 조건이 만족되는 경우 소정의 동작을 수행한다고 기재된 경우, 영상 부호화 장치 또는 영상 복호화 장치는 상기 소정의 조건이 만족되는지 여부를 확인하는 동작을 수행한 후, 상기 소정의 동작을 수행할 수 있다.
본 개시의 다양한 실시예는 모든 가능한 조합을 나열한 것이 아니고 본 개시의 대표적인 양상을 설명하기 위한 것이며, 다양한 실시예에서 설명하는 사항들은 독립적으로 적용되거나 또는 둘 이상의 조합으로 적용될 수도 있다.
본 개시에서 설명한 실시예들은 프로세서, 마이크로 프로세서, 컨트롤러 또는 칩 상에서 구현되어 수행될 수 있다. 예를 들어, 각 도면에서 도시한 기능 유닛들은 컴퓨터, 프로세서, 마이크로 프로세서, 컨트롤러 또는 칩 상에서 구현되어 수행될 수 있다. 이 경우 구현을 위한 정보(e.g., information on instructions) 또는 알고리즘이 디지털 저장 매체에 저장될 수 있다.
또한, 본 개시의 실시예(들)이 적용되는 디코더(디코딩 장치) 및 인코더(인코딩 장치)는 멀티미디어 방송 송수신 장치, 모바일 통신 단말, 홈 시네마 비디오 장치, 디지털 시네마 비디오 장치, 감시용 카메라, 비디오 대화 장치, 비디오 통신과 같은 실시간 통신 장치, 모바일 스트리밍 장치, 저장 매체, 캠코더, 주문형 비디오(VoD) 서비스 제공 장치, OTT 비디오(Over the top video) 장치, 인터넷 스트리밍 서비스 제공 장치, 3차원(3D) 비디오 장치, VR(virtual reality) 장치, AR(argumente reality) 장치, 화상 전화 비디오 장치, 운송 수단 단말 (ex. 차량(자율주행차량 포함) 단말, 로보트 단말, 비행기 단말, 선박 단말 등) 및 의료용 비디오 장치 등에 포함될 수 있으며, 비디오 신호 또는 데이터 신호를 처리하기 위해 사용될 수 있다. 예를 들어, OTT 비디오(Over the top video) 장치로는 게임 콘솔, 블루레이 플레이어, 인터넷 접속 TV, 홈시어터 시스템, 스마트폰, 태블릿 PC, DVR(Digital Video Recorder) 등을 포함할 수 있다.
또한, 본 개시의 실시예(들)이 적용되는 처리 방법은 컴퓨터로 실행되는 프로그램의 형태로 생산될 수 있으며, 컴퓨터가 판독할 수 있는 기록 매체에 저장될 수 있다. 본 문서의 실시예(들)에 따른 데이터 구조를 가지는 멀티미디어 데이터도 또한 컴퓨터가 판독할 수 있는 기록 매체에 저장될 수 있다. 컴퓨터가 판독할 수 있는 기록 매체는 컴퓨터로 읽을 수 있는 데이터가 저장되는 모든 종류의 저장 장치 및 분산 저장 장치를 포함한다. 컴퓨터가 판독할 수 있는 기록 매체는, 예를 들어, 블루레이 디스크(BD), 범용 직렬 버스(USB), ROM, PROM, EPROM, EEPROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크 및 광학적 데이터 저장 장치를 포함할 수 있다. 또한, 컴퓨터가 판독할 수 있는 기록 매체는 반송파(예를 들어, 인터넷을 통한 전송)의 형태로 구현된 미디어를 포함한다. 또한, 인코딩 방법으로 생성된 비트스트림이 컴퓨터가 판독할 수 있는 기록 매체에 저장되거나 유무선 통신 네트워크를 통해 전송될 수 있다.
또한, 본 개시의 실시예(들)는 프로그램 코드에 의한 컴퓨터 프로그램 제품으로 구현될 수 있고, 프로그램 코드는 본 개시의 실시예(들)에 의해 컴퓨터에서 수행될 수 있다. 프로그램 코드는 컴퓨터에 의해 판독가능한 캐리어 상에 저장될 수 있다.
도 35는 본 개시의 실시예들이 적용될 수 있는 컨텐츠 스트리밍 시스템의 일 예를 나타내는 도면이다.
도 35를 참조하면, 본 개시의 실시예가 적용된 컨텐츠 스트리밍 시스템은 크게 인코딩 서버, 스트리밍 서버, 웹 서버, 미디어 저장소, 사용자 장치 및 멀티미디어 입력 장치를 포함할 수 있다.
인코딩 서버는 스마트폰, 카메라, 캠코더 등과 같은 멀티미디어 입력 장치들로부터 입력된 컨텐츠를 디지털 데이터로 압축하여 비트스트림을 생성하고 이를 스트리밍 서버로 전송하는 역할을 한다. 다른 예로, 스마트폰, 카메라, 캠코더 등과 같은 멀티미디어 입력 장치들이 비트스트림을 직접 생성하는 경우, 인코딩 서버는 생략될 수 있다.
비트스트림은 본 개시의 실시예가 적용된 영상 부호화 방법 및/또는 영상 부호화 장치에 의해 생성될 수 있고, 스트리밍 서버는 비트스트림을 전송 또는 수신하는 과정에서 일시적으로 비트스트림을 저장할 수 있다.
스트리밍 서버는 웹 서버를 통한 사용자 요청에 기반하여 멀티미디어 데이터를 사용자 장치에 전송하고, 웹 서버는 사용자에게 어떠한 서비스가 있는지를 알려주는 매개체 역할을 할 수 있다. 사용자가 웹 서버에 원하는 서비스를 요청하면, 웹 서버는 이를 스트리밍 서버에 전달하고, 스트리밍 서버는 사용자에게 멀티미디어 데이터를 전송할 수 있다. 이 때, 컨텐츠 스트리밍 시스템은 별도의 제어 서버를 포함할 수 있고, 이 경우 제어 서버는 컨텐츠 스트리밍 시스템 내 각 장치 간 명령/응답을 제어하는 역할을 수행할 수 있다.
스트리밍 서버는 미디어 저장소 및/또는 인코딩 서버로부터 컨텐츠를 수신할 수 있다. 예를 들어, 인코딩 서버로부터 컨텐츠를 수신하는 경우, 컨텐츠를 실시간으로 수신할 수 있다. 이 경우, 원활한 스트리밍 서비스를 제공하기 위하여 스트리밍 서버는 비트스트림을 일정 시간동안 저장할 수 있다.
사용자 장치의 예로는, 휴대폰, 스마트 폰(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, 데스크탑 컴퓨터, 디지털 사이니지 등이 있을 수 있다.
컨텐츠 스트리밍 시스템 내 각 서버들은 분산 서버로 운영될 수 있으며, 이 경우 각 서버에서 수신하는 데이터는 분산 처리될 수 있다.
도 36은 본 개시의 실시예들이 적용될 수 있는 컨텐츠 스트리밍 시스템의 다른 예를 나타내는 도면이다.
도 36을 참조하면, VCM과 같은 실시예에서, 기기의 성능, 사용자의 요청, 수행하고자 하는 태스크의 특성 등에 따라 사용자 단말에서 태스크를 수행할 수도 있고 외부 기기(e.g., 스트리밍 서버, 분석 서버 등)에서 태스크를 수행할 수도 있다. 이와 같이, 태스크 수행에 필요한 정보를 외부 기기로 전송하기 위하여, 사용자 단말은 태스크 수행에 필요한 정보(e.g., 태스크, 신경망 네트워크 및/또는 용도와 같은 정보)를 포함하는 비트스트림을 직접 또는 인코딩 서버를 통해 생성할 수 있다.
분석 서버는 사용자 단말로부터(또는, 인코딩 서버로부터) 전송받은 부호화된 정보를 복호화한 후, 사용자 단말의 요청 태스크를 수행할 수 있다. 분석 서버는 태스크 수행을 통해 얻은 결과를 사용자 단말에게 다시 전송하거나 연계된 다른 서비스 서버(e.g., 웹 서버)에 전송할 수 있다. 예를 들어, 분석 서버는 화재를 판별하는 태스크를 수행하여 얻은 결과를 소방 관련 서버로 전송할 수 있다. 분석 서버는 별도의 제어 서버를 포함할 수 있고, 이 경우 제어 서버는 분석 서버와 연관된 각 장치와 서버 간 명령/응답을 제어하는 역할을 할 수 있다. 또한, 분석 서버는 사용자 기기가 수행하고자 하는 태스크와 수행할 수 있는 태스크 정보를 기반으로 웹 서버에게 원하는 정보를 요청할 수도 있다. 분석 서버가 웹 서버에 원하는 서비스를 요청하면, 웹 서버는 이를 분석 서버에 전달하고, 분석 서버는 사용자 단말로 그에 대한 데이터를 전송할 수 있다. 이 때, 컨텐츠 스트리밍 시스템의 제어 서버는 스트리밍 시스템 내 각 장치 간 명령/응답을 제어하는 역할을 수행할 수 있다.
본 개시에 따른 실시예는 피쳐/피쳐맵을 부호화/복호화하는데 이용될 수 있다.

Claims (16)

  1. 피쳐 복호화 장치에 의해 수행되는 피쳐 복호화 방법으로서, 상기 피쳐 복호화 방법은,
    현재 코딩 유닛의 채널 정보를 획득하는 단계;
    상기 채널 정보에 기반하여 상기 현재 코딩 유닛에 대한 컨텍스트 모델(context model)을 결정하는 단계; 및
    상기 컨텍스트 모델에 기반하여 상기 현재 코딩 유닛을 복호화하는 단계를 포함하되,
    상기 채널 정보는 상기 현재 코딩 유닛을 포함하는 피쳐맵의 채널 그룹핑 정보를 포함하고,
    상기 컨텍스트 모델은 상기 채널 그룹핑 정보에 기반하여 결정되는
    피쳐 복호화 방법.
  2. 제1항에 있어서,
    상기 피쳐맵의 채널들은 복수의 채널 그룹들로 그룹핑되고,
    상기 컨텍스트 모델은 상기 채널 그룹들 각각에 대해 개별적으로 결정되는
    피쳐 복호화 방법.
  3. 제2항에 있어서,
    상기 채널 그룹들 각각에 대해 기저장된 컨텍스트 모델이 존재하지 않음에 기반하여, 상기 컨텍스트 모델은 엔트로피 코딩 초기화 과정을 통해 획득되는
    피쳐 복호화 방법.
  4. 제2항에 있어서,
    상기 채널 그룹들 각각에 대해 기저장된 컨텍스트 모델이 존재함에 기반하여, 상기 컨텍스트 모델은 상기 기저장된 컨텍스트 모델과의 엔트로피 코딩 동기화 과정을 통해 획득되는
    피쳐 복호화 방법.
  5. 제1항에 있어서,
    상기 채널 그룹핑 정보는 상기 현재 코딩 유닛을 포함하는 현재 채널이 속한 채널 그룹을 나타내는 채널 그룹 식별 정보를 포함하는
    피쳐 복호화 방법.
  6. 제5항에 있어서,
    상기 채널 그룹 식별 정보는 엔트로피 코딩 동기화 과정의 수행 여부에 기반하여 획득되는
    피쳐 복호화 방법.
  7. 제1항에 있어서,
    상기 현재 코딩 유닛을 포함하는 현재 채널은 복수의 영역들로 분할되고,
    상기 복수의 영역들 각각에 대하여 서로 다른 컨텍스트 모델이 적용되는
    피쳐 복호화 방법.
  8. 제1항에 있어서,
    상기 컨텍스트 모델은, 기복원된 채널 내에서 상기 현재 코딩 유닛과 동일 위치 또는 대응되는 위치에 적용된 컨텍스트 모델과의 엔트로피 코딩 동기화 과정을 통해 획득되는
    피쳐 복호화 방법.
  9. 제1항에 있어서,
    소정의 참조 정보에 기반하여 상기 복호화될 현재 코딩 유닛을 예측하는 단계를 더 포함하고,
    상기 참조 정보는 상기 현재 코딩 유닛을 포함하는 현재 채널 내의 기복원된 피쳐 정보로 제한되는
    피쳐 복호화 방법.
  10. 피쳐 부호화 장치에 의해 수행되는 피쳐 부호화 방법으로서, 상기 피쳐 부호화 방법은,
    현재 코딩 유닛의 채널 정보를 결정하는 단계;
    상기 채널 정보에 기반하여 상기 현재 코딩 유닛에 대한 컨텍스트 모델(context model)을 결정하는 단계; 및
    상기 컨텍스트 모델에 기반하여 상기 현재 코딩 유닛을 부호화하는 단계를 포함하되,
    상기 채널 정보는 상기 현재 코딩 유닛을 포함하는 피쳐맵의 채널 그룹핑 정보를 포함하고,
    상기 컨텍스트 모델은 상기 채널 그룹핑 정보에 기반하여 결정되는
    피쳐 부호화 방법.
  11. 제10항에 있어서,
    상기 피쳐맵의 채널들은 복수의 채널 그룹들로 그룹핑되고,
    상기 컨텍스트 모델은 상기 채널 그룹들 각각에 대해 개별적으로 결정되는
    피쳐 부호화 방법.
  12. 제11항에 있어서,
    상기 채널 그룹들 각각에 대해 기저장된 컨텍스트 모델이 존재하지 않음에 기반하여, 상기 컨텍스트 모델은 엔트로피 코딩 초기화 과정을 통해 획득되는
    피쳐 부호화 방법.
  13. 제11항에 있어서,
    상기 채널 그룹들 각각에 대해 기저장된 컨텍스트 모델이 존재함에 기반하여, 상기 컨텍스트 모델은 상기 기저장된 컨텍스트 모델과의 엔트로피 코딩 동기화 과정을 통해 획득되는
    피쳐 부호화 방법.
  14. 제10항에 있어서,
    상기 현재 코딩 유닛을 포함하는 현재 채널은 복수의 영역들로 분할되고,
    상기 복수의 영역들 각각에 대하여 서로 다른 컨텍스트 모델이 적용되는
    피쳐 부호화 방법.
  15. 제10항의 피쳐 부호화 방법에 의해 생성된 비트스트림을 저장하는 컴퓨터 판독가능한 기록 매체
  16. 피쳐 부호화 방법에 의해 생성된 비트스트림을 전송하는 방법에 있어서, 상기 피쳐 부호화 방법은,
    현재 코딩 유닛의 채널 정보를 결정하는 단계;
    상기 채널 정보에 기반하여 상기 현재 코딩 유닛에 대한 컨텍스트 모델(context model)을 결정하는 단계; 및
    상기 컨텍스트 모델에 기반하여 상기 현재 코딩 유닛을 부호화하는 단계를 포함하되,
    상기 채널 정보는 상기 현재 코딩 유닛을 포함하는 피쳐맵의 채널 그룹핑 정보를 포함하고,
    상기 컨텍스트 모델은 상기 채널 그룹핑 정보에 기반하여 결정되는
    전송 방법.
PCT/KR2022/016656 2021-10-28 2022-10-28 엔트로피 코딩에 기반한 피쳐 부호화/복호화 방법, 장치, 비트스트림을 저장한 기록 매체 및 비트스트림 전송 방법 WO2023075488A1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020247011003A KR20240056566A (ko) 2021-10-28 2022-10-28 엔트로피 코딩에 기반한 피쳐 부호화/복호화 방법, 장치, 비트스트림을 저장한 기록 매체 및 비트스트림 전송 방법

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
KR20210145811 2021-10-28
KR10-2021-0145811 2021-10-28
KR20210148139 2021-11-01
KR10-2021-0148139 2021-11-01
KR10-2022-0101436 2022-08-12
KR20220101436 2022-08-12

Publications (1)

Publication Number Publication Date
WO2023075488A1 true WO2023075488A1 (ko) 2023-05-04

Family

ID=86159620

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2022/016656 WO2023075488A1 (ko) 2021-10-28 2022-10-28 엔트로피 코딩에 기반한 피쳐 부호화/복호화 방법, 장치, 비트스트림을 저장한 기록 매체 및 비트스트림 전송 방법

Country Status (2)

Country Link
KR (1) KR20240056566A (ko)
WO (1) WO2023075488A1 (ko)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102040315B1 (ko) * 2013-01-04 2019-11-04 삼성전자주식회사 슬라이스 세그먼트의 엔트로피 부호화 방법 및 그 장치, 슬라이스 세그먼트의 엔트로피 복호화 방법 및 그 장치
KR20200109904A (ko) * 2019-03-15 2020-09-23 (주)인시그널 Dnn 기반 이미지 또는 비디오 코딩을 위한 시스템 및 방법
US20200327701A1 (en) * 2019-04-11 2020-10-15 Fujitsu Limited Image encoding method and apparatus and image decoding method and apparatus
US20210203997A1 (en) * 2018-09-10 2021-07-01 Huawei Technologies Co., Ltd. Hybrid video and feature coding and decoding

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102040315B1 (ko) * 2013-01-04 2019-11-04 삼성전자주식회사 슬라이스 세그먼트의 엔트로피 부호화 방법 및 그 장치, 슬라이스 세그먼트의 엔트로피 복호화 방법 및 그 장치
US20210203997A1 (en) * 2018-09-10 2021-07-01 Huawei Technologies Co., Ltd. Hybrid video and feature coding and decoding
KR20200109904A (ko) * 2019-03-15 2020-09-23 (주)인시그널 Dnn 기반 이미지 또는 비디오 코딩을 위한 시스템 및 방법
US20200327701A1 (en) * 2019-04-11 2020-10-15 Fujitsu Limited Image encoding method and apparatus and image decoding method and apparatus

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
YUAN LIANG; LUO JIXIANG; LI SHAOHUI; DAI WENRUI; LI CHENGLIN; ZOU JUNNI; XIONG HONGKAI: "Learned Image Compression with Channel-Wise Grouped Context Modeling", 2021 IEEE INTERNATIONAL CONFERENCE ON IMAGE PROCESSING (ICIP), IEEE, 19 September 2021 (2021-09-19), pages 2099 - 2103, XP034123356, DOI: 10.1109/ICIP42928.2021.9506076 *

Also Published As

Publication number Publication date
KR20240056566A (ko) 2024-04-30

Similar Documents

Publication Publication Date Title
WO2020009556A1 (ko) 변환에 기반한 영상 코딩 방법 및 그 장치
WO2020046091A1 (ko) 다중 변환 선택에 기반한 영상 코딩 방법 및 그 장치
WO2020213944A1 (ko) 영상 코딩에서 매트릭스 기반의 인트라 예측을 위한 변환
WO2020231140A1 (ko) 적응적 루프 필터 기반 비디오 또는 영상 코딩
WO2020213946A1 (ko) 변환 인덱스를 이용하는 영상 코딩
WO2020204413A1 (ko) 복원 픽처를 수정하는 비디오 또는 영상 코딩
WO2020256391A1 (ko) 영상 디코딩 방법 및 그 장치
WO2020055014A1 (ko) 레지듀얼 코딩 방법 및 그 장치
WO2020213945A1 (ko) 인트라 예측 기반 영상 코딩에서의 변환
WO2020076064A1 (ko) Mpm 리스트를 사용하는 인트라 예측 기반 영상 코딩 방법 및 그 장치
WO2020231139A1 (ko) 루마 맵핑 및 크로마 스케일링 기반 비디오 또는 영상 코딩
WO2021040483A1 (ko) 영상 코딩 장치 및 방법
WO2020180143A1 (ko) 루마 맵핑 및 크로마 스케일링 기반 비디오 또는 영상 코딩
WO2020180122A1 (ko) 조건적으로 파싱되는 alf 모델 및 리셰이핑 모델 기반 비디오 또는 영상 코딩
WO2021172956A1 (ko) 영상 특징 정보 시그널링을 위한 영상 부호화/복호화 방법, 장치 및 비트스트림을 전송하는 방법
WO2021066618A1 (ko) 변환 스킵 및 팔레트 코딩 관련 정보의 시그널링 기반 영상 또는 비디오 코딩
WO2021141226A1 (ko) 루마 성분 및 크로마 성분에 대한 bdpcm 기반 영상 디코딩 방법 및 그 장치
WO2020184928A1 (ko) 루마 맵핑 및 크로마 스케일링 기반 비디오 또는 영상 코딩
WO2021241963A1 (ko) 비디오 또는 영상 코딩 시스템에서의 poc 정보 및 비-참조 픽처 플래그에 기반한 영상 코딩 방법
WO2021162494A1 (ko) 필터 가용 정보를 선택적으로 시그널링 하는 영상 부호화/복호화 방법, 장치 및 비트스트림을 전송하는 방법
WO2021066609A1 (ko) 변환 스킵 및 팔레트 코딩 관련 고급 문법 요소 기반 영상 또는 비디오 코딩
WO2020246790A1 (ko) 맵핑된 루마 성분 및 스케일링된 크로마 성분 기반 비디오 또는 영상 코딩
WO2020190085A1 (ko) 인루프 필터링 기반 비디오 또는 영상 코딩
WO2020204412A1 (ko) 적응적 루프 필터 절차를 동반한 비디오 또는 영상 코딩
WO2023075488A1 (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: 22887683

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 20247011003

Country of ref document: KR

Kind code of ref document: A