WO2021118285A1 - 심층 신경망 모델의 부호화/복호화 방법 및 장치 - Google Patents

심층 신경망 모델의 부호화/복호화 방법 및 장치 Download PDF

Info

Publication number
WO2021118285A1
WO2021118285A1 PCT/KR2020/018140 KR2020018140W WO2021118285A1 WO 2021118285 A1 WO2021118285 A1 WO 2021118285A1 KR 2020018140 W KR2020018140 W KR 2020018140W WO 2021118285 A1 WO2021118285 A1 WO 2021118285A1
Authority
WO
WIPO (PCT)
Prior art keywords
quantization
information
current layer
neural network
local
Prior art date
Application number
PCT/KR2020/018140
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 US17/784,856 priority Critical patent/US20230008124A1/en
Publication of WO2021118285A1 publication Critical patent/WO2021118285A1/ko

Links

Images

Classifications

    • 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/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/192Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding the adaptation method, adaptation tool or adaptation type being iterative or recursive
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • 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/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/0495Quantised networks; Sparse networks; Compressed networks

Definitions

  • the present disclosure relates to a method and apparatus for encoding/decoding a deep neural network, by performing quantization/dequantization on a plurality of layers included in a deep neural network and entropy encoding/decoding quantization information for a plurality of layers to encode/decode a deep neural network It relates to a method and apparatus for decryption.
  • a deep neural network is largely composed of processing elements regarded as neurons of the human brain, and the processing elements may include weights of connections between neurons.
  • the purpose of a deep neural network is a process of 'learning' that updates the connection weights of neurons according to a given input.
  • a format including information that can define the learned connection weight and structure of a single deep neural network was created.
  • connection weights of multiple layers and complex neurons are required, which leads to an increase in computational complexity for deep neural networks.
  • the computational complexity of the deep neural network increases and the size of the model increases, the necessity of compressing and transmitting information existing in the model is increasing in order to be more efficiently applied to industrial applications.
  • An object of the present disclosure is to provide a method and apparatus for encoding/decoding a deep neural network.
  • Another object of the present disclosure is to provide a method and apparatus for encoding/decoding a deep neural network by applying global quantization to a plurality of layers of a deep neural network.
  • Another object of the present disclosure is to provide a method and apparatus for encoding/decoding a deep neural network by applying local quantization to a plurality of layers of a deep neural network.
  • Another object of the present disclosure is to provide a method and apparatus for encoding/decoding a deep neural network by entropy encoding/decoding quantization information.
  • Another object of the present disclosure is to provide a method and apparatus for efficiently encoding/decoding a deep neural network.
  • entropy decoding quantization information for a current layer performing inverse quantization on the current layer; and obtaining a plurality of layers of the deep neural network, but performing at least one of global quantization and local quantization on the current layer may be provided.
  • the quantization information includes global quantization mode information on global quantization mode, bit size information on bit size, uniform quantization application information on whether or not uniform quantization is applied, and of the plurality of layers.
  • At least one of individual decoding information on individual decoding, parallel decoding information on whether to perform parallel decoding, codebook information on a codebook, step size information on step size, and channel number information on the number of channels in the current layer It may be characterized by including the above.
  • the quantization information may include singular value-aware quantization application information regarding application of a singular value-aware quantization mode.
  • the quantization information may include transform function list position information regarding a position in the transform function list.
  • the quantization information includes local quantization application information on whether to apply local quantization to the entire current layer, sub-block size fixed information on whether to fix the sub-block size, and sub-related information on the sub-block size.
  • Block size information, sub-block local quantization application information on whether or not local quantization is applied to a sub-block local quantization mode information on a local quantization mode
  • sub-block position information on a sub-block position sub-block codebook information on a sub-block codebook
  • It may be characterized in that it includes at least one or more of the channel number information regarding the number of channels of the current layer.
  • the quantization information may include local quantization bit size information on a size of a local quantization bit.
  • the entropy decoding of the quantization information for the current layer includes a limited K-th order Exp_Golomb binarization method, a fixed-length binarization method, a unary binarization method, and a truncated binary (K-th order Exp_Golomb) binarization method.
  • Truncated Binary may be characterized in that at least one of the binarization methods is used.
  • the entropy decoding of the quantization information for the current layer includes a context-based adaptive binary arithmetic method (CABAC, Context-Adaptive Binary Arithmetic Coding), a context-based adaptive variable length method (CAVLC, Context-) for information generated through binarization. It may be characterized by using at least one of an adaptive variable length coding), an adaptive arithmetic method (Conditional Arithmetic Coding), and a bypass coding method.
  • CABAC Context-Adaptive Binary Arithmetic Coding
  • CAVLC context-based adaptive variable length method
  • CABAC Context-Adaptive Binary Arithmetic Coding
  • CAVLC Context-
  • It may be characterized by using at least one of an adaptive variable length coding), an adaptive arithmetic method (Conditional Arithmetic Coding), and a bypass coding method.
  • performing quantization on the current layer entropy encoding the quantization information for the current layer; and generating a bitstream including the quantization information, wherein at least one of global quantization and local quantization is performed on the current layer.
  • At least one of a limited K-order exponential-Golomb binarization method, a fixed-length binarization method, a unary binarization method, and a truncated binary binarization method may be used.
  • At least one of a context-based adaptive binary arithmetic method, a context-based adaptive variable length method, an adaptive arithmetic method, and a bypass method is used for information generated through binarization. can be characterized.
  • the decoding method of the deep neural network is a plurality of layers of the deep neural network, for the current layer entropy-decoding the quantization information; performing inverse quantization on the current layer; and obtaining the current layer, wherein at least one of global quantization and local quantization is performed on the current layer.
  • a method and apparatus for encoding/decoding a deep neural network may be provided.
  • a method and apparatus for encoding/decoding a deep neural network by applying global quantization to a plurality of layers of a deep neural network may be provided.
  • a method and apparatus for encoding/decoding a deep neural network by applying local quantization to a plurality of layers of a deep neural network may be provided.
  • a method and apparatus for encoding/decoding a deep neural network by entropy encoding/decoding quantization information may be provided.
  • a method and apparatus for efficiently encoding/decoding a deep neural network may be provided.
  • FIG. 1 illustrates a decoder structure of a deep neural network model according to an embodiment of the present disclosure.
  • FIG. 2A illustrates a quantization process according to an embodiment of the present disclosure.
  • FIG. 2B illustrates an inverse quantization process according to an embodiment of the present disclosure.
  • FIG 3 illustrates a sub-block of one layer in a deep neural network according to an embodiment of the present disclosure.
  • FIG. 4 illustrates a flowchart of performing local quantization according to an embodiment of the present disclosure.
  • FIG. 5 illustrates global quantization of one layer in a deep neural network according to an embodiment of the present disclosure.
  • FIG. 6 illustrates local quantization of one layer in a deep neural network according to an embodiment of the present disclosure.
  • FIG. 7 illustrates a deep neural network decoding flowchart according to an embodiment of the present disclosure.
  • FIG. 8 illustrates a deep neural network encoding flowchart according to an embodiment of the present disclosure.
  • first, second, etc. may be used to describe various elements, but the elements should not be limited by the terms. The above terms are used only for the purpose of distinguishing one component from another.
  • a first component may be referred to as a second component, and similarly, a second component may also be referred to as a first component. and/or includes a combination of a plurality of related listed items or any of a plurality of related listed items.
  • each component shown in the embodiment of the present disclosure are shown independently to represent different characteristic functions, and it does not mean that each component is formed of separate hardware or a single software component. That is, each component is listed as each component for convenience of description, and at least two components of each component are combined to form one component, or one component can be divided into a plurality of components to perform a function, and each of these components can be divided into a plurality of components. Integrated embodiments and separate embodiments of the components are also included in the scope of the present disclosure without departing from the essence of the present disclosure.
  • Some components of the present disclosure are not essential components for performing an essential function in the present disclosure, but may be optional components for merely improving performance.
  • the present disclosure may be implemented by including only essential components to implement the essence of the present disclosure, except for components used for performance improvement, and a structure including only essential components excluding optional components used for performance improvement Also included in the scope of the present disclosure.
  • a deep neural network may have M positive integer layers.
  • One layer among the plurality of layers of the deep neural network may have N positive integer dimensions (channels).
  • one layer of the deep neural network may correspond to a learned weight matrix having one dimension.
  • one layer of the deep neural network may correspond to a learned weight matrix having two dimensions.
  • one layer of the deep neural network may correspond to a learned weight matrix having three dimensions.
  • one layer of the deep neural network may correspond to a learned weight matrix having four dimensions.
  • one layer of the deep neural network may be reshaped into blocks having X dimensions, which are positive integers.
  • the positive integer X must be smaller than the positive integer N, which is the number of dimensions of one layer among a plurality of layers of the deep neural network.
  • N the number of dimensions of one layer among a plurality of layers of the deep neural network.
  • one layer among a plurality of layers of the deep neural network is a matrix having four dimensions, it may be a block having two dimensions through rearrangement.
  • the present invention is not limited to the above embodiment.
  • the deep neural network decoder may include an entropy decoder and an inverse quantum part.
  • a bitstream can be generated by encoding a deep neural network.
  • the bitstream may be transmitted to a decoder.
  • the bitstream transmitted to the decoder may be entropy-decoded in the entropy decoder.
  • the inverse quantization unit may perform inverse quantization. And, it can be restored to a deep neural network.
  • FIG. 2A illustrates a quantization process according to an embodiment of the present disclosure.
  • global quantization and local quantization may be performed on the current layer. Also, only global quantization can be performed on the current layer. Also, only local quantization can be performed on the current layer.
  • a global quantization mode may be configured in the current layer.
  • global quantization information of the current layer may be entropy-encoded. The current layer may be quantized by using at least one method from among global quantization mode configuration and global quantization information entropy encoding.
  • a local quantization mode When local quantization is performed on the current layer, a local quantization mode may be configured in a subblock of the current layer.
  • local quantization information of a subblock of the current layer may be entropy-encoded.
  • the current layer may be quantized using at least one of a local quantization mode configuration and a local quantization information entropy encoding method.
  • FIG. 2B illustrates an inverse quantization process according to an embodiment of the present disclosure.
  • global inverse quantization and local inverse quantization may be performed on the current layer. Also, only global inverse quantization may be performed on the current layer. Also, only local inverse quantization can be performed on the current layer.
  • a global quantization mode may be configured in the current layer.
  • global quantization information of the current layer may be entropy-decoded. The current layer may be inversely quantized by using at least one method from among global quantization mode configuration and global quantization information entropy decoding.
  • a local quantization mode When local inverse quantization is performed on the current layer, a local quantization mode may be configured in a sub-block of the current layer. And, the local quantization information of the sub-block of the current layer may be entropy-decoded.
  • the current layer may be inversely quantized by using at least one of a local quantization mode configuration and a local quantization information entropy decoding method.
  • FIG 3 illustrates a sub-block of one layer in a deep neural network according to an embodiment of the present disclosure.
  • one layer in a deep neural network may include a plurality of blocks. And, in the deep neural network, one layer may include a plurality of sub-blocks. Each sub-block may include a plurality of blocks. For example, a sub-block may correspond to a 2x2 block unit. For example, a sub-block may correspond to a 4x4 block unit. For example, a sub-block may correspond to an 8x8 block unit.
  • the present invention is not limited to the above embodiment.
  • FIG. 4 illustrates a flowchart of performing local quantization according to an embodiment of the present disclosure.
  • FIG. 5 illustrates global quantization of one layer in a deep neural network according to an embodiment of the present disclosure.
  • information on a global quantization mode may be signaled.
  • Information on the size of the global quantization bit may be signaled.
  • information indicating whether uniform quantization is applied eg, uniform_mode_flag
  • uniform_mode_flag information indicating whether uniform quantization is applied
  • uniform_mode_flag information indicating whether uniform quantization is applied
  • uniform_mode_flag may indicate 0.
  • indicator information specifying the non-uniform quantization mode may be signaled.
  • codebook information and step size information (eg, step_size) according to the bit size may be signaled.
  • information eg, parallel_decoding_flag
  • parallel_decoding_flag information on whether to perform parallel decoding for efficient decoding
  • state list information (eg, dependent_state_list) may be signaled in units of columns or rows.
  • context information eg, cabac_context_list
  • cabac_context_list may also be signaled in units of columns or rows.
  • quantization/dequantization of the current layer is performed using at least one method among a method using a global quantization mode and a method for encoding/decoding global quantization information entropy in quantizing/dequantizing the current layer.
  • bit size information to be input may be signaled.
  • step size information eg, step_size
  • information eg, layer_independently_flag
  • the size of the current layer may correspond to N positive integer dimensions.
  • the size of the original dimension of the current layer and the dimension after the rearrangement may also be signaled.
  • the present invention is not limited to the above embodiment.
  • a quantization technique applied to the current layer may be distinguished through an indicator for distinguishing between a case in which global quantization is performed on the current layer and a case in which global quantization is not performed.
  • a quantization technique applied to the current layer may be distinguished through an indicator for distinguishing between a case in which local quantization is performed and a case in which local quantization is not performed on the current layer.
  • Global quantization may mean that quantization is performed by applying the same quantization parameter to all blocks of the current layer.
  • the global quantization mode may correspond to at least one of various modes such as uniform/linear quantization, nonuniform/nonlinear quantization, and outlier-aware quantization.
  • the general global quantization mode at least one quantization mode among uniform quantization and non-uniform quantization may be defined as a general global quantization mode.
  • the special global quantization mode at least one quantization mode among global quantization modes excluding general global quantization modes such as uniform quantization and non-uniform quantization may be defined as a special global quantization mode.
  • a certain specific mode indicator may be used.
  • a transform function list candidate may be configured.
  • the transform function list is ⁇ Non-DCT, DCT-2, DCT-8, ... ⁇ can be configured.
  • Global quantization information of the current layer may be entropy encoded/decoded.
  • a quantization result value of global quantization and information may be signaled.
  • a quantization value of each element and step size information eg, step_size
  • a quantization value of each element and codebook information may be signaled.
  • An indicator indicating whether the global quantization mode matches a specific mode may be signaled.
  • information indicating whether uniform quantization is applied eg, uniform_mode_flag
  • information indicating whether uniform quantization is applied may indicate 0.
  • information (eg, nonunform_idx) on whether to perform only non-uniform quantization or singular value recognition quantization may be signaled.
  • information (eg, nonunform_idx) on whether to perform only non-uniform quantization or singular value recognition quantization may indicate 0.
  • nonunform_idx when singular value-aware quantization (non-uniform/non-linear) is performed, information on whether to perform only non-uniform quantization or singular value-aware quantization (eg, nonunform_idx) may indicate 1.
  • information on whether to perform only non-uniform quantization or singular value-aware quantization e.g., For example, nonunform_idx
  • nonunform_idx may represent 2.
  • non-uniform_idx information on whether to perform only non-uniform quantization or singular value-aware quantization (eg For example, nonunform_idx) may represent 3.
  • nonunform_idx information on whether to perform only non-uniform quantization or singular value-aware quantization
  • index information designating the selected mode may be signaled.
  • index information eg, transform_idx
  • index information eg, nchannel_idx
  • index information indicating the number of channels of the current layer
  • index information eg, overall_Pbit
  • CABAC Context-Adaptive Binary Arithmetic Coding
  • CAVLC Context-Adaptive Variable Length Coding
  • global quantization may be applied to the current layer 510 .
  • the current layer 510 may include 4x4 blocks.
  • uniform quantization may be applied to the current layer 510 .
  • information indicating whether uniform quantization is applied (eg, uniform_mode_flag) may indicate 1.
  • the number of bits of global quantization may correspond to three.
  • Quantization may be performed by applying the same quantization parameter to all blocks of the current layer 510 .
  • the current layer 510 may be quantized to the layer 520 after the global quantization is performed. And, such global quantization information may be entropy-encoded/decoded.
  • information eg, local_mode_flag
  • information eg, local_mode_flag
  • information eg, local_mode_flag
  • information indicating whether or not local quantization is applied to the entire current layer may indicate 1.
  • information indicating whether or not local quantization is applied to the entire current layer may indicate 0.
  • size fixed information eg, sub_fix_flag
  • size information (eg, sub_idx) of a subblock on which local quantization is performed may be signaled.
  • Size information (eg, sub_idx) of a sub-block on which local quantization is performed may be defined in the form of a table. For example, when size information (eg, sub_idx) of a subblock on which local quantization is performed is 0, it may correspond to a 2x2 block unit. For example, when size information (eg, sub_idx) of a subblock on which local quantization is performed is 1, it may correspond to a 4x4 block unit. For example, when size information (eg, sub_idx) of a subblock on which local quantization is performed is 2, it may correspond to an 8x8 block unit.
  • the present invention is not limited to the above embodiment.
  • index information eg, local_mode_idx
  • location information eg, sub_pos
  • codebook information eg, repre_c
  • local quantization When local quantization is performed on the current layer, quantization/inverse quantization of the current layer using at least one method among a method using a local quantization mode and a method for encoding/decoding local quantization information entropy in quantizing/dequantizing the current layer can be performed.
  • Local quantization may be performed in units of sub-blocks in the current layer.
  • the local quantization mode may correspond to at least one of various modes such as overall non-local quantization, local binary, and binary clustering.
  • the general local quantization mode may be defined as at least one of uniform quantization and non-uniform quantization as a general local quantization mode.
  • the non-local quantization mode may be defined as a special local quantization mode.
  • information indicating whether or not local quantization is applied to the entire current layer eg, local_mode_flag
  • the size of the sub-block may correspond to AxB, and A and B may each correspond to a positive integer value. And, A and B may correspond to a common divisor value of the block size of the current layer. For example, when the current layer is 64x48, A and B of the sub-block AxB may correspond to one of 16, 8, 4, and 2.
  • the size of the sub-block may be fixed. Also, the size of the sub-block may correspond to an adaptive form. Size information (eg, sub_idx) of a sub-block on which local quantization is performed may be selected from an index of a list of common factors of a block size of a current layer.
  • the size candidate of the sub-block may be included in the list of common factors of the block size of the current layer. And, codebook information of the sub-block may be signaled.
  • Each of the representative values in the codebook may be determined by an RD optimization method, an average value of the corresponding values, or the like.
  • a predetermined specific mode indicator may be used.
  • the local quantization mode may be signaled in units of the entire layer. For example, when local quantization is performed on the entire current layer, information (eg, local_mode_flag) indicating whether or not local quantization is applied to the entire current layer may indicate 1. For example, when local quantization is not performed on the entire current layer, information indicating whether or not local quantization is applied to the entire current layer (eg, local_mode_flag) may indicate 0.
  • the local quantization mode may be signaled in units of sub-blocks. Local and clustering modes are not limited to binarization, and may be performed with bits larger than 1 bit.
  • the non-local quantization mode may be performed on the corresponding sub-block.
  • the local quantization mode may be performed on the corresponding sub-block.
  • the local binarization mode may be performed on the corresponding sub-block.
  • the local D bit mode may be performed for the corresponding sub-block.
  • the D bit should be smaller than the size of the P bit of the global quantization mode.
  • the previous clustering mode may be performed for the corresponding sub-block.
  • the present invention is not limited to the above embodiment.
  • Codebook information and the like generated according to the performance of local quantization may be signaled.
  • the size of the codebook may be set according to the local quantization mode. For example, when the local quantization mode is the binarization mode, the size of the codebook may indicate 1. When the local quantization mode is the binary clustering mode, the bit size may be determined without the need for the size of a separate codebook to be signaled. When the local quantization mode needs to set a separate bit size, separate bit size information (eg, local_dbits_idx) may be signaled. Codebook information (eg, repre_c) for local quantization may be determined according to the size of the codebook. In this case, the codebook size should be smaller than the global quantization bit size. Each codebook may be determined by various methods such as RD optimization or an average value of the original kernel values.
  • Local quantization information may be entropy encoded/decoded in a subblock of the current layer. Entropy encoding/decoding may be performed in units of blocks of the entire current layer. Information on whether local quantization is performed on the entire current layer may be signaled. For example, when local quantization is performed on the entire current layer, information (eg, local_mode_flag) indicating whether or not local quantization is applied to the entire current layer may indicate 1. For example, when local quantization is not performed on the entire current layer, information indicating whether or not local quantization is applied to the entire current layer (eg, local_mode_flag) may indicate 0. Information on the sub-block may be signaled.
  • information eg, local_mode_flag
  • information on fixing the size of the sub-block may indicate 1.
  • size information (eg, sub_idx) of the sub-block may be signaled.
  • entropy encoding/decoding may be performed in units of sub-blocks.
  • An indicator indicating whether a specific mode of local quantization is matched may be signaled.
  • information eg, local_sub_flag
  • index information eg, local_mode_idx
  • index information eg, local_mode_idx
  • index information (eg, local_mode_idx) of the local quantization mode may indicate 2.
  • separate bit size information (eg, local_dbits_idx) may be signaled.
  • the D bit must be smaller than the global quantization bit size.
  • information eg, local_sub_flag
  • location information eg, sub_pos
  • codebook information eg, repre_c for local quantization may be signaled.
  • index information indicating a rearrangement mode (eg, reshaping mode_idx) may be signaled.
  • index information (eg, nchannel_idx) indicating the number of channels of the corresponding layer may be signaled.
  • At least one or more methods among a limited K-order exponential-Golomb binarization method, a fixed-length binarization method, a unary binarization method, and a truncated binary binarization method may be used.
  • at least one method among context-based adaptive binary arithmetic encoding, context-based adaptive variable length encoding, adaptive arithmetic encoding, and bypass encoding may be used.
  • entropy encoding/decoding is adaptively performed using at least one encoding information among prediction information of a neighboring layer, a probability model, and the size of a sub-block for local binarization.
  • a context model of prediction information of the current block may be used differently according to syntax information of an already encoded/decoded neighboring layer.
  • local quantization may be performed on the current layer 610 . Since local quantization is not performed on the entire current layer, information indicating whether or not local quantization is applied to the entire current layer (eg, local_mode_flag) may indicate 0. Also, since the size of a sub-block on which local quantization is performed is 2x2 block unit, size information (eg, sub_idx) of a sub-block on which local quantization is performed may indicate 2. However, when size information (eg, sub_idx) of a sub-block on which local quantization is performed is defined in a table form, size information (eg, sub_idx) of a sub-block on which local quantization is performed may indicate 0. .
  • Local quantization may be performed on the 2x2 sub-block 630 located at the upper left of the layer 620 on which the local quantization is performed. Accordingly, information (eg, local_sub_flag) indicating whether local quantization is performed on the corresponding sub-block 630 may indicate 1. Also, the local quantization mode in the corresponding sub-block 630 may correspond to the binary clustering mode. Accordingly, index information (eg, local_mode_idx) of the local quantization mode in the corresponding sub-block 630 may indicate 1. Since the location of the corresponding sub-block 630 is located at the upper left of the current layer, location information (eg, sub_pos) of the corresponding sub-block 630 may indicate 0. Since binarization is applied according to the binary clustering mode, the value of c may indicate 0 or 1 in codebook information (eg, repre_c) for local quantization of the corresponding sub-block 630 .
  • codebook information eg, repre_c
  • Local quantization may not be performed on the 2x2 sub-block 640 located at the lower right of the layer 620 on which the local quantization has been performed. Accordingly, information indicating whether local quantization is performed on the corresponding sub-block 640 (eg, local_sub_flag) may indicate 0. Since the location of the corresponding sub-block 640 is located at the lower right of the current layer, location information (eg, sub_pos) of the corresponding sub-block 640 may indicate 3 . And, such local quantization information may be entropy-encoded/decoded.
  • FIG. 7 illustrates a deep neural network decoding flowchart according to an embodiment of the present disclosure.
  • quantization information for a current layer may be entropy-decoded ( S710 ).
  • At least one of global quantization and local quantization may be performed on the current layer.
  • the quantization information includes global quantization mode information on the global quantization mode, bit size information on bit size, uniform quantization application information on whether uniform quantization is applied, and individual decoding information on individual decoding of the plurality of layers.
  • parallel decoding information on whether or not parallel decoding is performed, codebook information on a codebook, step size information on a step size, and channel number information on the number of channels in a current layer may include at least one or more.
  • the quantization information may include singular value-aware quantization application information regarding the singular value-aware quantization mode application.
  • the quantization information may include transform function list position information regarding a position in the transform function list.
  • the quantization information when local quantization is performed on the current layer, includes local quantization application information on whether to apply local quantization to the entire current layer, sub-block size fixed information on whether to fix the sub-block size, and sub-blocks.
  • Sub-block size information on the size, sub-block regional quantization application information on whether or not local quantization is applied to a sub-block, regional quantization mode information on a local quantization mode, sub-block position information on a sub-block position, sub-related information on a sub-block codebook It may include at least one of block codebook information and channel number information regarding the number of channels of the current layer.
  • the quantization information may include local quantization bit size information regarding the size of the local quantization bit.
  • At least one of a limited K-order exponential-Golomb binarization method, a fixed-length binarization method, a unary binarization method, and a truncated binary binarization method may be used.
  • the entropy decoding of the quantization information for the current layer includes at least one of a context-based adaptive binary arithmetic method, a context-based adaptive variable length method, an adaptive arithmetic method, and a bypass method for information generated through binarization. More than one may be used.
  • inverse quantization may be performed on the current layer (S720).
  • a plurality of layers of the deep neural network may be obtained (S730).
  • FIG. 8 illustrates a deep neural network encoding flowchart according to an embodiment of the present disclosure.
  • quantization may be performed on a current layer ( S810 ).
  • At least one of global quantization and local quantization may be performed on the current layer.
  • At least one of a limited K-order exponential-Golomb binarization method, a fixed-length binarization method, a unary binarization method, and a truncated binary binarization method may be used.
  • the entropy encoding of the quantization information for the current layer includes at least one of a context-based adaptive binary arithmetic method, a context-based adaptive variable length method, an adaptive arithmetic method, and a bypass method for information generated through binarization. More than one may be used.
  • quantization information for the current layer may be entropy-encoded (S820).
  • bitstream including quantization information may be generated (S830).
  • the embodiments according to the present disclosure described above may be implemented in the form of program instructions that can be executed through various computer components and recorded in a computer-readable recording medium.
  • the computer-readable recording medium may include program instructions, data files, data structures, etc. alone or in combination.
  • the program instructions recorded on the computer-readable recording medium may be specially designed and configured for the present disclosure, or may be known and available to those skilled in the computer software field.
  • Examples of the computer-readable recording medium include a hard disk, a magnetic medium such as a floppy disk and a magnetic tape, an optical recording medium such as a CD-ROM, a DVD, and a magneto-optical medium such as a floppy disk.
  • program instructions include not only machine language codes such as those generated by a compiler, but also high-level language codes that can be executed by a computer using an interpreter or the like.
  • the hardware device may be configured to operate as one or more software modules to perform processing according to the present disclosure, and vice versa.
  • the present invention can be used to encode/decode deep neural networks.

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Biomedical Technology (AREA)
  • Molecular Biology (AREA)
  • Biophysics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

본 발명은 심층 신경망 부호화/복호화 방법 및 장치에 관한 것이다. 본 발명의 실시예에 따르면, 심층 신경망을 복호화 하는 방법은 심층 신경망의 복수의 계층에 있어서, 현재 계층에 대한 양자화 정보를 엔트로피 복호화 하는 단계 상기 현재 계층에 대해 역양자화를 수행하는 단계 및 상기 심층 신경망의 복수의 계층을 획득하는 단계를 포함하되 상기 현재 계층에 전역 양자화 및 지역 양자화 중에서 적어도 하나 이상을 수행하는 것을 특징으로 할 수 있다.

Description

심층 신경망 모델의 부호화/복호화 방법 및 장치
본 개시는 심층 신경망 부호화/복호화 방법 및 장치에 관한 것으로서, 심층 신경망에 포함된 복수개의 계층에 대해 양자화/역양자화를 수행하고 복수개의 계층에 대한 양자화 정보를 엔트로피 부호화/복호화하여 심층 신경망을 부호화/복호화 하는 방법 및 장치에 관한 것이다.
심층 신경망(DNN, Deep Neural Network)은 크게 인간 두뇌의 뉴런으로 간주되는 프로세싱 요소로 구성되며, 프로세싱 요소로는 뉴런의 연결의 가중치 등이 포함될 수 있다. 심층 신경망의 목적은 주어진 입력에 따른 뉴런들의 연결 가중치 등을 업데이트 하는 '학습'의 과정이다. 최근에는 심층 신경망의 학습을 위한 연산 방법들이 개발되면서 다양한 산업 분야에 활용하기 시작하였으며, 각각의 산업 분야에서의 성능 이 크게 향상되었다. 또한, 심층 신경망을 다양한 응용분야에 접목시키기 위해서 하나의 심층 신경망을 학습된 연결 가중치 및 구조를 정의할 수 있는 정보를 포함한 포맷을 만들었다.
그러나, 다양하고 복잡한 응용에 사용되기 위해서는 다수의 계층 및 복잡한 뉴런의 연결 가중치가 필요하며 이는 심층 신경망에 대한 계산 복잡도의 상승하는 결과를 야기시킨다. 심층 신경망의 계산 복잡도가 증가하고 모델의 크기가 커짐에 따라 산업 응용분야에 더 효율적으로 적용되기 위해서는 모델 내에 존재하는 정보 들을 압축하여 전송할 필요성이 증대되고 있다.
본 개시는 심층 신경망 부호화/복호화 하는 방법 및 장치를 제공하는 것을 목적으로 한다.
또한, 본 개시는 심층 신경망 복수의 계층에 전역 양자화를 적용하여 심층 신경망 부호화/복호화 하는 방법 및 장치를 제공하는 것을 목적으로 한다.
또한, 본 개시는 심층 신경망 복수의 계층에 지역 양자화를 적용하여 심층 신경망 부호화/복호화 하는 방법 및 장치를 제공하는 것을 목적으로 한다.
또한, 본 개시는 양자화 정보를 엔트로피 부호화/복호화 하여 심층 신경망 부호화/복호화 하는 방법 및 장치를 제공하는 것을 목적으로 한다.
또한, 본 개시는 심층 신경망을 효율적으로 부호화/복호화 하는 방법 및 장치를 제공하는 것을 목적으로 한다.
본 개시의 다른 목적 및 장점들은 하기의 설명에 의해서 이해될 수 있으며, 본 개시의 실시예에 의해 보다 분명하게 알게 될 것이다. 또한, 본 개시의 목적 및 장점들은 특허청구범위에 나타낸 수단 및 그 조합에 의해 실현될 수 있음을 쉽게 알 수 있을 것이다.
본 개시에 따르면, 심층 신경망의 복수의 계층에 있어서, 현재 계층에 대한 양자화 정보를 엔트로피 복호화 하는 단계; 상기 현재 계층에 대해 역양자화를 수행하는 단계; 및 상기 심층 신경망의 복수의 계층을 획득하는 단계를 포함하되 상기 현재 계층에 전역 양자화 및 지역 양자화 중에서 적어도 하나 이상을 수행하는 것을 특징으로 하는 심층 신경망 복호화 방법이 제공될 수 있다.
상기 현재 계층에 대해 전역 양자화를 수행한 경우, 상기 양자화 정보는 전역 양자화 모드에 관한 전역 양자화 모드 정보, 비트 크기에 관한 비트 크기 정보, 균일 양자화 적용 여부에 관한 균일 양자화 적용 정보, 상기 복수의 계층의 개별적 복호화에 관한 개별적 복호화 정보, 병렬적 복호화 여부에 관한 병렬적 복호화 정보, 코드북(Codebook)에 관한 코드북 정보, 스텝 크기에 관한 스텝 크기 정보 및 상기 현재 계층의 채널수에 관한 채널수 정보 중에서 적어도 하나 이상을 포함하는 것을 특징으로 할 수 있다.
상기 현재 계층에 대해 비균일 양자화를 수행한 경우, 상기 양자화 정보는 특이 값 인식 양자화 모드 적용에 관한 특이 값 인식 양자화 적용 정보를 포함하는 것을 특징으로 할 수 있다.
상기 전역 양자화 모드가 특수 전역 양자화 모드인 경우, 상기 양자화 정보는 변환 함수 리스트내 위치에 관한 변환 함수 리스트 위치 정보를 포함하는 것을 특징으로 할 수 있다.
상기 현재 계층에 대해 지역 양자화를 수행한 경우, 상기 양자화 정보는 현재 계층 전체에 지역 양자화 적용여부에 관한 지역 양자화 적용 정보, 서브 블록 크기 고정여부에 관한 서브 블록 크기 고정 정보, 서브 블록 크기에 관한 서브 블록 크기 정보, 서브 블록에 지역 양자화 적용여부에 관한 서브 블록 지역 양자화 적용 정보, 지역 양자화 모드에 관한 지역 양자화 모드 정보, 서브 블록 위치에 관한 서브 블록 위치 정보, 서브 블록 코드북에 관한 서브 블록 코드북 정보 및 상기 현재 계층의 채널수에 관한 채널수 정보 중에서 적어도 하나 이상을 포함하는 것을 특징으로 할 수 있다.
상기 지역 양자화 모드가 특정 비트를 할당하는 모드인 경우, 상기 양자화 정보는 지역 양자화 비트 크기에 관한 지역 양자화 비트 크기 정보를 포함하는 것을 특징으로 할 수 있다.
상기 현재 계층에 대한 양자화 정보를 엔트로피 복호화 하는 단계는 제한된 K차수 지수-골롬(K-th order Exp_Golomb) 이진화 방법, 고정 길이(Fixed-length) 이진화 방법, 단항(Unary) 이진화 방법 및 절삭된 이진(Truncated Binary) 이진화 방법 중에서 적어도 하나 이상을 이용하는 것을 특징으로 할 수 있다.
상기 현재 계층에 대한 양자화 정보를 엔트로피 복호화 하는 단계는 이진화를 통해 발생한 정보에 대해 문맥기반 적응적 이진 산술 방법(CABAC, Context-Adaptive Binary Arithmetic Coding), 문맥기반 적응적 가변길이 방법(CAVLC, Context-Adaptive Variable Length Coding), 적응적 산술 방법 (Conditional Arithmetic Coding) 및 우회 방법(bypass coding) 중에서 적어도 하나 이상을 이용하는 것을 특징으로 할 수 있다.
심층 신경망의 복수의 계층에 있어서, 현재 계층에 대해 양자화를 수행하는 단계; 상기 현재 계층에 대한 양자화 정보를 엔트로피 부호화 하는 단계; 및 상기 양자화 정보를 포함하는 비트스트림을 생성하는 단계를 포함하되 상기 현재 계층에 전역 양자화 및 지역 양자화 중에서 적어도 하나 이상을 수행하는 것을 특징으로 하는 심층 신경망 부호화 방법이 제공될 수 있다.
상기 현재 계층에 대한 양자화 정보를 엔트로피 부호화 하는 단계는 제한된 K차수 지수-골롬 이진화 방법, 고정 길이 이진화 방법, 단항 이진화 방법 및 절삭된 이진 이진화 방법 중에서 적어도 하나 이상을 이용하는 것을 특징으로 할 수 있다.
상기 현재 계층에 대한 양자화 정보를 엔트로피 부호화 하는 단계는 이진화를 통해 발생한 정보에 대해 문맥기반 적응적 이진 산술 방법, 문맥기반 적응적 가변길이 방법, 적응적 산술 방법 및 우회 방법 중에서 적어도 하나 이상을 이용하는 것을 특징으로 할 수 있다.
심층 신경망 복호화 장치에 의해 수신되고 복호화되어 심층 신경망을 복원하는데 이용되는 비트스트림을 저장한 컴퓨터 판독 가능한 기록 매체로서, 상기 심층 신경망의 복호화 방법은 상기 심층 신경망의 복수의 계층에 있어서, 현재 계층에 대한 양자화 정보를 엔트로피 복호화 하는 단계; 상기 현재 계층에 대해 역양자화를 수행하는 단계; 및 상기 현재 계층을 획득하는 단계를 포함하되 상기 현재 계층에 전역 양자화 및 지역 양자화 중에서 적어도 하나 이상을 수행하는 것을 특징으로 하는 컴퓨터로 판독 가능한 기록 매체가 제공될 수 있다.
본 개시에 따르면, 심층 신경망 부호화/복호화 하는 방법 및 장치가 제공될 수 있다.
또한, 본 개시에 따르면, 심층 신경망 복수의 계층에 전역 양자화를 적용하여 심층 신경망 부호화/복호화 하는 방법 및 장치가 제공될 수 있다.
또한, 본 개시에 따르면, 심층 신경망 복수의 계층에 지역 양자화를 적용하여 심층 신경망 부호화/복호화 하는 방법 및 장치가 제공될 수 있다.
또한, 본 개시에 따르면, 양자화 정보를 엔트로피 부호화/복호화 하여 심층 신경망 부호화/복호화 하는 방법 및 장치가 제공될 수 있다.
또한, 본 개시에 따르면, 심층 신경망을 효율적으로 부호화/복호화 하는 방법 및 장치가 제공될 수 있다.
도 1은 본 개시의 일 실시예에 따른 심층 신경망 모델의 복호화기 구조를 설명한다.
도 2a는 본 개시의 일 실시예에 따른 양자화 과정을 설명한다.
도 2b는 본 개시의 일 실시예에 따른 역양자화 과정을 설명한다.
도 3은 본 개시의 일 실시예에 따른 심층 신경망에서 하나의 계층의 서브 블록을 설명한다.
도 4는 본 개시의 일 실시예에 따른 지역 양자화 수행의 흐름도를 설명한다.
도 5는 본 개시의 일 실시예에 따른 심층 신경망에서 하나의 계층의 전역 양자화를 설명한다.
도 6은 본 개시의 일 실시예에 따른 심층 신경망에서 하나의 계층의 지역 양자화를 설명한다.
도 7은 본 개시의 일 실시예에 따른 심층 신경망 복호화 순서도를 설명한다.
도 8은 본 개시의 일 실시예에 따른 심층 신경망 부호화 순서도를 설명한다.
본 개시는 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 개시을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 개시의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 도면에서 유사한 참조부호는 여러 측면에 걸쳐서 동일하거나 유사한 기능을 지칭한다. 도면에서의 요소들의 형상 및 크기 등은 보다 명확한 설명을 위해 과장될 수 있다. 후술하는 예시적 실시예들에 대한 상세한 설명은, 특정 실시예를 예시로서 도시하는 첨부 도면을 참조한다. 이들 실시예는 당업자가 실시예를 실시할 수 있기에 충분하도록 상세히 설명된다. 다양한 실시예들은 서로 다르지만 상호 배타적일 필요는 없음이 이해되어야 한다. 예를 들어, 여기에 기재되어 있는 특정 형상, 구조 및 특성은 일 실시예에 관련하여 본 개시의 정신 및 범위를 벗어나지 않으면서 다른 실시예로 구현될 수 있다. 또한, 각각의 개시된 실시예 내의 개별 구성요소의 위치 또는 배치는 실시예의 정신 및 범위를 벗어나지 않으면서 변경될 수 있음이 이해되어야 한다. 따라서, 후술하는 상세한 설명은 한정적인 의미로서 취하려는 것이 아니며, 예시적 실시예들의 범위는, 적절하게 설명된다면, 그 청구항들이 주장하는 것과 균등한 모든 범위와 더불어 첨부된 청구항에 의해서만 한정된다.
본 개시에서 제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 개시의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
본 개시의 어떤 구성 요소가 다른 구성 요소에 “연결되어” 있다거나 “접속되어” 있다고 언급된 때에는, 그 다른 구성 요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있으나, 중간에 다른 구성 요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어"있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 개시의 실시예에 나타나는 구성부들은 서로 다른 특징적인 기능들을 나타내기 위해 독립적으로 도시되는 것으로, 각 구성부들이 분리된 하드웨어나 하나의 소프트웨어 구성단위로 이루어짐을 의미하지 않는다. 즉, 각 구성부는 설명의 편의상 각각의 구성부로 나열하여 포함한 것으로 각 구성부 중 적어도 두개의 구성부가 합쳐져 하나의 구성부로 이루어지거나, 하나의 구성부가 복수 개의 구성부로 나뉘어져 기능을 수행할 수 있고 이러한 각 구성부의 통합된 실시예 및 분리된 실시예도 본 개시의 본질에서 벗어나지 않는 한 본 개시의 권리범위에 포함된다.
본 개시에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 개시를 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 개시에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다. 즉, 본 개시에서 특정 구성을 “포함”한다고 기술하는 내용은 해당 구성 이외의 구성을 배제하는 것이 아니며, 추가적인 구성이 본 개시의 실시 또는 본 개시의 기술적 사상의 범위에 포함될 수 있음을 의미한다.
본 개시의 일부의 구성 요소는 본 개시에서 본질적인 기능을 수행하는 필수적인 구성 요소는 아니고 단지 성능을 향상시키기 위한 선택적 구성 요소일 수 있다. 본 개시는 단지 성능 향상을 위해 사용되는 구성 요소를 제외한 본 개시의 본질을 구현하는데 필수적인 구성부만을 포함하여 구현될 수 있고, 단지 성능 향상을 위해 사용되는 선택적 구성 요소를 제외한 필수 구성 요소만을 포함한 구조도 본 개시의 권리범위에 포함된다.
이하, 도면을 참조하여 본 개시의 실시 형태에 대하여 구체적으로 설명한다. 본 명세서의 실시예를 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 명세서의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략하고, 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
도 1은 본 개시의 일 실시예에 따른 심층 신경망 모델의 복호화기 구조를 설명한다. 심층 신경망은 양의 정수 M개의 계층을 가질 수 있다. 심층 신경망의 복수의 계층 중에서 하나의 계층은 양의 정수 N개의 차원(채널)을 가질 수 있다. 그리고, 심층 신경망의 하나의 계층은 1개의 차원을 가지는 학습된 가중치 행렬에 해당될 수 있다. 또한, 심층 신경망의 하나의 계층은 2개의 차원을 가지는 학습된 가중치 행렬에 해당될 수 있다. 또한, 심층 신경망의 하나의 계층은 3개의 차원을 가지는 학습된 가중치 행렬에 해당될 수 있다. 또한, 심층 신경망의 하나의 계층은 4개의 차원을 가지는 학습된 가중치 행렬에 해당될 수 있다.
심층 신경망의 양자화 단계에서는 심층 신경망의 하나의 계층은 양의 정수 X개의 차원을 가지는 블록으로 재배열(Reshaping)될 수 있다. 이 때, 양의 정수 X는 심층 신경망의 복수의 계층 중에서 하나의 계층의 차원 수인 양의 정수 N보다 작아야 한다. 일 예로, 심층 신경망의 복수의 계층 중에서 하나의 계층이 4개의 차원을 가지는 행렬인 경우, 재배열을 통해 2개의 차원을 가지는 블록이 될 수 있다. 다만 본 발명은 상기 실시예에 한정되지 않는다.
도 1을 참조하면, 심층 신경망 복호화기는 엔트로피 복호화부와 역양자부를 포함할 수 있다. 심층 신경망을 부호화 하여 비트스트림이 생성될 수 있다. 비트스트림은 복호화기로 전송될 수 있다. 복호화기로 전송된 비트스트림은 엔트로피 복호화부에서 엔트로피 복호화가 수행될 수 있다. 그리고, 역양자화부에서 역양자화가 수행될 수 있다. 그리고, 심층 신경망으로 복원될 수 있다.
도 2a는 본 개시의 일 실시예에 따른 양자화 과정을 설명한다.
도 2a를 참조하면, 심층 신경망의 복수의 계층에서 현재 계층의 양자화를 수행함에 있어서, 현재 계층에 전역 양자화와 지역 양자화가 수행될 수 있다. 또한, 현재 계층에 전역 양자화만이 수행될 수 있다. 또한, 현재 계층에 지역 양자화만이 수행될 수 있다. 현재 계층에 전역 양자화가 수행되는 경우, 현재 계층에 전역 양자화 모드가 구성될 수 있다. 그리고, 현재 계층의 전역 양자화 정보가 엔트로피 부호화될 수 있다. 전역 양자화 모드 구성 및 전역 양자화 정보 엔트로피 부호화 중에서 적어도 하나 이상의 방법을 이용하여 현재 계층이 양자화될 수 있다.
현재 계층에 지역 양자화가 수행되는 경우, 현재 계층의 서브 블록에 지역 양자화 모드가 구성될 수 있다. 그리고, 현재 계층의 서브 블록의 지역 양자화 정보가 엔트로피 부호화될 수 있다. 지역 양자화 모드 구성 및 지역 양자화 정보 엔트로피 부호화 중에서 적어도 하나 이상의 방법을 이용하여 현재 계층이 양자화될 수 있다.
도 2b는 본 개시의 일 실시예에 따른 역양자화 과정을 설명한다.
도 2b를 참조하면, 심층 신경망의 심층 신경망의 복수의 계층에서 현재 계층의 역양자화를 수행함에 있어서, 현재 계층에 전역 역양자화와 지역 역양자화가 수행될 수 있다. 또한, 현재 계층에 전역 역양자화만이 수행될 수 있다. 또한, 현재 계층에 지역 역양자화만이 수행될 수 있다. 현재 계층에 전역 역양자화가 수행되는 경우, 현재 계층에 전역 양자화 모드가 구성될 수 있다. 그리고, 현재 계층의 전역 양자화 정보가 엔트로피 복호화될 수 있다. 전역 양자화 모드 구성 및 전역 양자화 정보 엔트로피 복호화 중에서 적어도 하나 이상의 방법을 이용하여 현재 계층이 역양자화될 수 있다.
현재 계층에 지역 역양자화가 수행되는 경우, 현재 계층의 서브 블록에 지역 양자화 모드가 구성될 수 있다. 그리고, 현재 계층의 서브 블록의 지역 양자화 정보가 엔트로피 복호화될 수 있다. 지역 양자화 모드 구성 및 지역 양자화 정보 엔트로피 복호화 중에서 적어도 하나 이상의 방법을 이용하여 현재 계층이 역양자화될 수 있다.
도 3은 본 개시의 일 실시예에 따른 심층 신경망에서 하나의 계층의 서브 블록을 설명한다.
도 3을 참조하면, 심층 신경망에서 하나의 계층은 복수의 블록을 포함할 수 있다. 그리고, 심층 신경망에서 하나의 계층은 복수의 서브 블록을 포함할 수 있다. 각각의 서브 블록은 복수의 블록을 포함할 수 있다. 일 예로, 서브 블록은 2x2블록단위에 해당될 수 있다. 일 예로, 서브 블록은 4x4블록단위에 해당될 수 있다. 일 예로, 서브 블록은 8x8블록단위에 해당될 수 있다. 다만 본 발명은 상기 실시예에 한정되지 않는다.
도 4는 본 개시의 일 실시예에 따른 지역 양자화 수행의 흐름도를 설명한다.
도 4를 참조하면, 심층 신경만의 하나의 계층에 지역 양자화가 수행될 때, 하나의 계층에 포함된 모든 블록이 탐색될 수 있다. 하나의 계층에 포함된 서브 블록에 지역 양자화가 수행될 수 있다. 서브 블록에서 지역 양자화 모드가 정해질 수 있다. 그리고, 지역 양자화 모드는 지역 이진화(Local Binary) 모드 및 이진화 클러스터링(Binary Clustering) 모드 중에서 적어도 하나 이상에 해당될 수 있다. 그리고 왜곡(Distortion) 검사를 통해 지역 양자화 적용여부가 결정될 수 있다. 왜곡의 정도가 소정의 임계값보다 큰 경우, 지역 양자화가 수행되지 않고(LQ_flag=0) 전역 양자화가 수행될 수 있다. 그리고, 왜곡의 정도가 소정의 임계값보다 작거나 같은 경우, 지역 양자화가 수행될 수 있다(LQ_flag=1).
도 5는 본 개시의 일 실시예에 따른 심층 신경망에서 하나의 계층의 전역 양자화를 설명한다. 심층 신경망의 복수의 계층에서 현재 계층에 전역 양자화가 수행되는 경우, 전역 양자화 모드에 대한 정보가 시그널링될 수 있다. 전역 양자화 비트의 크기에 대한 정보가 시그널링될 수 있다. 그리고, 균일 양자화 적용 여부를 나타내는 정보(예를 들어, uniform_mode_flag)가 시그널링될 수 있다. 균일 양자화가 적용되는 경우 균일 양자화 적용 여부를 나타내는 정보(예를 들어, uniform_mode_flag)는 1을 나타낼 수 있다. 균일 양자화가 적용되지 않는 경우, 균일 양자화 적용 여부를 나타내는 정보(예를 들어, uniform_mode_flag)는 0을 나타낼 수 있다. 이 때, 비균일 양자화 모드를 특정하는 지시자 정보가 시그널링 될 수 있다. 일 예로, 비균일/비선형 모드에 해당될 수 있다. 일 예로, 특이 값 인식 모드에 해당될 수 있다. 일 예로, 의존적 양자화 모드에 해당될 수 있다. 다만 본 발명은 상기 실시예에 한정되지 않는다. 또한, 비트 크기에 따른 코드북(codebook) 정보와 스텝 크기 정보(예를 들어, step_size)가 시그널링될 수 있다. 또한, 효율적인 복호화를 위한 병렬적 복호화 여부에 대한 정보(예를 들어, parallel_decoding_flag)가 시그널링될 수 있다. 여기서 병렬적 복호화가 적용되는 경우(예를 들어, parallel_decoding_flag=1), 열 또는 행 단위로 양자화 및 엔트로피 복호화가 병렬적으로 수행될 수 있다. 이 때, 의존적 양자화 모드의 경우, 상태리스트 정보(예를 들어, dependent_state_list)가 열 또는 행 단위로 시그널링 될 수 있다. 그리고, 문맥기반 적응적 이진 산술 부호화의 경우, 문맥 정보(예를 들어, cabac_context_list)도 열 또는 행 단위로 시그널링될 수 있다.
현재 계층에 전역 양자화가 수행된 경우, 현재 계층을 양자화/역양자화 하는데 있어, 전역 양자화 모드를 이용한 방법 및 전역 양자화 정보 엔트로피 부호화/복호화 방법 중에서 적어도 하나 이상의 방법을 이용하여 현재 계층의 양자화/역양자화가 수행될 수 있다. 현재 계층에 전역 양자화가 수행되는 경우, 입력해야 하는 비트 크기 정보가 시그널링될 수 있다. 또는 스텝 크기 정보(예를 들어, step_size)가 시그널링될 수 있다. 또한, 심층 신경망의 복수의 계층에서 각 계층에 대한 개별적인 복호화 여부를 나타내는 정보(예를 들어, layer_independently_flag)가 시그널링될 수 있다. 현재 계층의 크기는 양의 정수 N개의 차원에 해당될 수 있다. 현재 계층이 재배열 되는 경우, 현재 계층의 원래의 차원과 재배열 이후 차원의 크기도 시그널링될 수 있다. 일 예로, 4차원(N=4)의 계층 행렬이 2차원의 행렬로 재배열될 수 있다. 다만 본 발명은 상기 실시예에 한정되지 않는다. 또한, 현재 계층에 전역 양자화를 수행하는 경우와 수행하지 않는 경우를 구분하기 위한 지시자를 통해 현재 계층에 적용되는 양자화 기법이 구분될 수 있다. 현재 계층에 지역 양자화를 수행하는 경우와 수행하지 않는 경우를 구분하기 위한 지시자를 통해 현재 계층에 적용되는 양자화 기법이 구분될 수 있다.
전역 양자화는 현재 계층의 전체 블록에 대해 동일한 양자화 파라미터를 적용하여 양자화가 수행되는 것을 의미할 수 있다. 전역 양자화 모드는 균일/선형 양자화(uniform/linear quantization), 비균일/비선형 양자화(nonuniform/nonlinear quantization) 및 특이 값 인식 양자화(outlier-aware quantization)등 다양한 모드 중에서 적어도 하나 이상에 해당될 수 있다. 여기서, 일반 전역 양자화 모드는 균일 양자화, 비균일 양자화 중에서 적어도 하나 이상의 양자화 모드가 일반 전역 양자화 모드로 정의될 수 있다. 또한, 특수 전역 양자화 모드는 균일 양자화, 비균일 양자화 등 일반 전역 양자화 모드를 제외한 전역 양자화 모드 중에서 적어도 하나 이상의 양자화 모드가 특수 전역 양자화 모드로 정의될 수 있다.
현재 계층에 전역 양자화 모드를 구성할 때, 소정의 특정 모드 지시자가 이용될 수 있다. 특수 전역 양자화 모드에 해당될 경우, 변환 함수 리스트 후보가 구성될 수 있다. 일 예로, 특이 값 인식 양자화의 경우, 변환 함수 리스트는 {Non-DCT, DCT-2, DCT-8, …}로 구성될 수 있다.
현재 계층의 전역 양자화 정보가 엔트로피 부호화/복호화 될 수 있다. 전역 양자화의 양자화 결과 값 및 정보가 시그널링될 수 있다. 일 예로, 균일 양자화가 적용된 경우, 각 요소의 양자화 값과 스텝 크기 정보(예를 들어, step_size)가 시그널링될 수 있다. 일 예로, 비균일 양자화가 적용된 경우, 각 요소의 양자화 값과 코드북 정보가 시그널링될 수 있다. 전역 양자화 모드의 특정 모드 매칭 여부를 나타내는 지시자가 시그널링될 수 있다. 일 예로, 특정 모드가 균일 양자화인 경우, 균일 양자화 적용 여부를 나타내는 정보(예를 들어, uniform_mode_flag)는 1을 나타낼 수 있다. 일 예로, 특정 모드가 비균일 양자화인 경우, 균일 양자화 적용 여부를 나타내는 정보(예를 들어, uniform_mode_flag)는 0을 나타낼 수 있다. 그리고, 비균일 양자화인 경우, 비균일 양자화만 수행할지 특이 값 인식 양자화를 수행할지에 대한 정보(예를 들어, nonunform_idx)가 시그널링될 수 있다. 일 예로, 비선형 양자화가 수행되는 경우, 비균일 양자화만 수행할지 특이 값 인식 양자화를 수행할지에 대한 정보(예를 들어, nonunform_idx)는 0을 나타낼 수 있다. 일 예로, 특이 값 인식 양자화(비균일/비선형)가 수행되는 경우, 비균일 양자화만 수행할지 특이 값 인식 양자화를 수행할지에 대한 정보(예를 들어, nonunform_idx)는 1을 나타낼 수 있다. 일 예로, 특이 값 인식 양자화를 수행하면서 특이 값에 대해서는 균일 양자화, 특이 값이 아닌 값에 대해서는 비균일 양자화가 수행되는 경우, 비균일 양자화만 수행할지 특이 값 인식 양자화를 수행할지에 대한 정보(예를 들어, nonunform_idx)는 2를 나타낼 수 있다. 일 예로, 특이 값 인식 양자화를 수행하면서 특이 값에 대해서는 비균일 양자화, 특이 값이 아닌 값에 대해서는 균일 양자화가 수행되는 경우, 비균일 양자화만 수행할지 특이 값 인식 양자화를 수행할지에 대한 정보(예를 들어, nonunform_idx)는 3을 나타낼 수 있다. 다만 본 발명은 상기 실시예에 한정되지 않는다.
전역 양자화가 2개 이상의 특정 모드를 이용하는 경우 선택된 모드를 지정해주는 색인 정보가 시그널링될 수 있다. 특수 전역 양자화 모드인 경우, 변환 함수 리스트내에서 위치를 지정해주는 색인 정보(예를 들어, transform_idx)가 시그널링될 수 있다. 그리고, 현재 계층의 채널 수를 나타내는 색인 정보(예를 들어, nchannel_idx)가 시그널링될 수 있다. 그리고, 현재 계층의 전역 양자화 비트 수를 나타내는 색인 정보(예를 들어, overall_Pbit)가 시그널링될 수 있다.
전역 양자화 정보 엔트로피 부호화/복호화 할 때, 제한된 K차수 지수-골롬(K-th order Exp_Golomb) 이진화 방법, 고정 길이(Fixed-length) 이진화 방법, 단항(Unary) 이진화 방법 및 절삭된 이진(Truncated Binary) 이진화 방법 중에서 적어도 하나 이상의 방법이 이용될 수 있다. 그리고, 이진화를 통해 발생한 이진 정보 엔트로피 부호화/복호화 할 때, 문맥기반 적응적 이진 산술 부호화(CABAC, Context-Adaptive Binary Arithmetic Coding), 문맥기반 적응적 가변길이 부호화(CAVLC, Context-Adaptive Variable Length Coding), 적응적 산술 부호화 (Conditional Arithmetic Coding) 및 우회 부호화(bypass coding) 중에서 적어도 하나 이상의 방법이 이용될 수 있다.
도 5를 참조하면, 현재 계층(510)에 전역 양자화가 적용될 수 있다. 현재 계층(510)은 4x4블록을 포함할 수 있다. 그리고, 현재 계층(510)에 균일 양자화가 적용될 수 있다. 이에 따라, 균일 양자화 적용 여부를 나타내는 정보(예를 들어, uniform_mode_flag)는 1을 나타낼 수 있다. 전역양자화의 비트 수는 3에 해당될 수 있다. 현재 계층(510)의 전체 블록에 대해 동일한 양자화 파라미터를 적용하여 양자화가 수행될 수 있다. 전역 양자화 수행에 따라, 현재 계층(510)은 전역 양자화 수행 이후 계층(520)으로 양자화될 수 있다. 그리고, 이와 같은 전역 양자화 정보는 엔트로피 부호화/복호화 될 수 있다.
도 6은 본 개시의 일 실시예에 따른 심층 신경망에서 하나의 계층의 지역 양자화를 설명한다. 지역 양자화의 경우, 현재 계층 전체에 지역 양자화 적용여부를 나타내는 정보(예를 들어, local_mode_flag)가 시그널링될 수 있다. 현재 계층 전체에 지역 양자화가 수행될 경우, 현재 계층 전체에 지역 양자화 적용여부를 나타내는 정보(예를 들어, local_mode_flag)는 1을 나타낼 수 있다. 현재 계층 전체에 지역 양자화가 수행되지 않는 경우, 현재 계층 전체에 지역 양자화 적용여부를 나타내는 정보(예를 들어, local_mode_flag)는 0을 나타낼 수 있다. 또한, 지역 양자화가 수행되는 서브 블록의 크기 고정 정보(예를 들어, sub_fix_flag)가 시그널링될 수 있다, 또한, 지역 양자화가 수행되는 서브 블록의 크기 정보(예를 들어, sub_idx)가 시그널링될 수 있다. 지역 양자화가 수행되는 서브 블록의 크기 정보(예를 들어, sub_idx)는 테이블 형태로 정의될 수 있다. 일 예로, 지역 양자화가 수행되는 서브 블록의 크기 정보(예를 들어, sub_idx)가 0인 경우, 2x2블록단위에 해당될 수 있다. 일 예로, 지역 양자화가 수행되는 서브 블록의 크기 정보(예를 들어, sub_idx)가 1인 경우, 4x4블록단위에 해당될 수 있다. 일 예로, 지역 양자화가 수행되는 서브 블록의 크기 정보(예를 들어, sub_idx)가 2인 경우, 8x8블록단위에 해당될 수 있다. 다만 본 발명은 상기 실시예에 한정되지 않는다.
해당 서브 블록에 지역 양자화가 수행되는지를 나타내는 정보(예를 들어, local_sub_flag)가 시그널링될 수 있다. 또한, 지역 양자화 모드의 색인 정보(예를 들어, local_mode_idx)가 시그널링될 수 있다. 또한, 서브 블록의 위치 정보(예를 들어, sub_pos)가 시그널링될 수 있다. 또한, 지역 양자화에 대한 코드북 정보(예를 들어, repre_c)가 시그널링될 수 있다.
현재 계층에 지역 양자화가 수행된 경우, 현재 계층을 양자화/역양자화 하는데 있어, 지역 양자화 모드를 이용한 방법 및 지역 양자화 정보 엔트로피 부호화/복호화 방법 중에서 적어도 하나 이상의 방법을 이용하여 현재 계층의 양자화/역양자화가 수행될 수 있다. 지역 양자화는 현재 계층에서 서브 블록 단위로 수행될 수 있다. 지역 양자화 모드는 비지역 양자화(Overall Non-local quantization), 지역 이진화(Local Binary), 이진화 클러스터링(Binary clustering) 등 다양한 모드 중 적어도 하나 이상에 해당될 수 있다. 여기서 일반 지역 양자화 모드는 균일 양자화, 비균일 양자화 중에서 적어도 하나 이상이 일반 지역 양자화 모드로 정의될 수 있다. 비지역 양자화 모드는 특수 지역 양자화 모드로 정의될 수 있다. 비지역 양자화 모드인 경우, 현재 계층 전체에 지역 양자화 적용여부를 나타내는 정보(예를 들어, local_mode_flag)는 0을 나타낼 수 있다.
서브 블록의 크기는 AxB에 해당될 수 있고 A와 B는 각각 양의 정수의 값에 해당될 수 있다. 그리고, A와 B는 현재 계층의 블록 크기의 공약수 값에 해당될 수 있다. 일 예로, 현재 계층이 64x48인 경우, 서브 블록 AxB의 A와 B는 16, 8, 4, 2중 하나에 해당될 수 있다. 서브 블록의 크기는 고정될 수 있다. 또한, 서브 블록의 크기는 적응적 형태에 해당될 수 있다. 지역 양자화가 수행되는 서브 블록의 크기 정보(예를 들어, sub_idx)는 현재 계층의 블록 크기의 공약수 리스트의 색인에서 선택될 수 있다. 서브 블록의 크기가 적응적 형태인 경우, 서브 블록의 크기 후보는 현재 계층의 블록 크기의 공약수 리스트 안에 포함될 수 있다. 그리고, 서브 블록의 코드북 정보가 시그널링될 수 있다. 코드북 내의 대표 값들은 각각 RD최적화 방법이나, 해당 값들의 평균 값 등의 방법 등으로 결정될 수 있다. 지역 이진화의 설정된 bi (= D)의 크기에 따라 코드북의 크기는 달라지며, 각각의 코드북 내의 대표 값은 서브 블록 단위로 전송될 수 있다.
현재 계층의 서브 블록에 지역 양자화 모드를 구성할 때, 소정의 특정 모드 지시자가 이용될 수 있다. 지역 양자화 모드는 계층 전체 단위로 시그널링될 수 있다. 일 예로, 현재 계층 전체에 지역 양자화가 수행되는 경우, 현재 계층 전체에 지역 양자화 적용여부를 나타내는 정보(예를 들어, local_mode_flag)는 1을 나타낼 수 있다. 일 예로, 현재 계층 전체에 지역 양자화가 수행되지 않는 경우, 현재 계층 전체에 지역 양자화 적용여부를 나타내는 정보(예를 들어, local_mode_flag)는 0을 나타낼 수 있다. 지역 양자화 모드는 서브 블록 단위로 시그널링될 수 있다. 지역 및 클러스터링 모드는 이진화에 한정되지 않고, 1비트 보다 큰 비트로 수행될 수 있다. 일 예로, 해당 서브 블록에 대하여 비지역 양자화 모드가 수행될 수 있다. 일 예로, 해당 서브 블록에 대하여 지역 양자화 모드가 수행될 수 있다. 일 예로, 해당 서브 블록에 대하여 지역 이진화 모드가 수행될 수 있다. 일 예로, 해당 서브 블록에 대하여 지역 D 비트 모드가 수행될 수 있다. 여기서, D 비트는 전역 양자화 모드의 P 비트의 크기보다 작아야 한다. 일 예로, 해당 서브 블록에 대하여 이전 클러스터링 모드가 수행될 수 있다. 다만 본 발명은 상기 실시예에 한정되지 않는다.
지역 양자화의 수행에 따라 발생되는 코드북 정보 등이 시그널링될 수 있다. 코드북의 크기는 지역 양자화 모드에 따라 설정될 수 있다. 일 예로, 지역 양자화 모드가 이진화 모드일 경우, 코드북의 크기는 1을 나타낼 수 있다. 지역 양자화 모드가 이진 클러스터링 모드인 경우, 별도의 코드북의 크기가 시그널링될 필요 없이 비트 크기가 결정될 수 있다. 지역 양자화 모드가 별도 비트 크기를 설정해야 하는 경우, 별도 비트 크기 정보(예를 들어, local_dbits_idx)가 시그널링될 수 있다. 지역 양자화에 대한 코드북 정보(예를 들어, repre_c)는 코드북의 크기에 따라 결정될 수 있다. 이 때, 코드북 크기는 전역 양자화 비트 크기보다 작아야 한다. 각각의 코드북들은 RD 최적화나 원래의 커널 값의 평균 값 등 다양한 방법에 의해 결정될 수 있다.
현재 계층의 서브 블록에서 지역 양자화 정보가 엔트로피 부호화/복호화 될 수 있다. 현재 계층 전체 블록 단위로 엔트로피 부호화/복호화 될 수 있다. 현재 계층 전체에 지역 양자화가 수행되는지에 대한 정보가 시그널링될 수 있다. 일 예로, 현재 계층 전체에 지역 양자화가 수행되는 경우, 현재 계층 전체에 지역 양자화 적용여부를 나타내는 정보(예를 들어, local_mode_flag)는 1을 나타낼 수 있다. 일 예로, 현재 계층 전체에 지역 양자화가 수행되지 않는 경우, 현재 계층 전체에 지역 양자화 적용여부를 나타내는 정보(예를 들어, local_mode_flag)는 0을 나타낼 수 있다. 서브 블록에 대한 정보가 시그널링될 수 있다. 일 예로, 서브 블록의 크기가 고정된 경우, 서브 블록의 크기 고정 정보(예를 들어, sub_fix_flag)는 1을 나타낼 수 있다. 또한, 서브 블록의 크기 정보(예를 들어, sub_idx)가 시그널링될 수 있다.
현재 계층의 지역 양자화 정보 엔트로피 부호화/복호화에 있어 서브 블록단위 엔트로피 부호화/복호화 될 수 있다. 지역 양자화의 특정 모드 매칭 여부를 나타내는 지시자가 시그널링될 수 있다. 일 예로, 특정 모드가 지역 양자화 모드인 경우, 해당 서브 블록에 지역 양자화가 수행되는지를 나타내는 정보(예를 들어, local_sub_flag)는 1을 나타낼 수 있다. 일 예로, 특정 모드가 이진화 모드인 경우, 지역 양자화 모드의 색인 정보(예를 들어, local_mode_idx)는 0을 나타낼 수 있다. 일 예로, 특정 모드가 이진 클러스터링 모드인 경우, 지역 양자화 모드의 색인 정보(예를 들어, local_mode_idx)는 1을 나타낼 수 있다. 일 예로, 특정 모드가 지역 D 비트 양자화 모드인 경우, 지역 양자화 모드의 색인 정보(예를 들어, local_mode_idx)는 2를 나타낼 수 있다. 이 경우, 별도 비트 크기 정보(예를 들어, local_dbits_idx)가 시그널링될 수 있다. 여기서, D 비트는 전역 양자화 비트 크기보다 작아야 한다. 일 예로, 특정 모드가 비지역 양자화 모드인 경우, 해당 서브 블록에 지역 양자화가 수행되는지를 나타내는 정보(예를 들어, local_sub_flag)는 0을 나타낼 수 있다. 그리고, 서브 블록의 위치 정보(예를 들어, sub_pos)가 시그널링될 수 있다. 또한, 지역 양자화에 대한 코드북 정보(예를 들어, repre_c)가 시그널링될 수 있다. 또한, 재배열 모드를 나타내는 색인 정보(예를 들어, reshaping mode_idx)가 시그널링될 수 있다. 또한, 해당 계층의 채널 수를 나타내는 색인 정보(예를 들어, nchannel_idx)가 시그널링될 수 있다.
지역 양자화 정보 엔트로피 부호화/복호화 할 때, 제한된 K차수 지수-골롬 이진화 방법, 고정 길이 이진화 방법, 단항 이진화 방법 및 절삭된 이진 이진화 방법 중에서 적어도 하나 이상의 방법이 이용될 수 있다. 그리고, 이진화를 통해 발생한 이진 정보 엔트로피 부호화/복호화 할 때, 문맥기반 적응적 이진 산술 부호화, 문맥기반 적응적 가변길이 부호화, 적응적 산술 부호화 및 우회 부호화 중에서 적어도 하나 이상의 방법이 이용될 수 있다. 또한, 이진화를 통해 발생한 이진 정보 엔트로피 부호화/복호화 할 때, 주변 계층의 예측 정보, 확률 모델, 지역 이진화를 위한 서브 블록의 크기 중에서 적어도 하나 이상의 부호화 정보를 이용하여 적응적으로 엔트로피 부호화/복호화가 수행될 수 있다. 일 예로, 현재 계층의 예측 정보를 부호화/복호화함에 있어서, 이미 부호화/복호화된 주변 계층의 신택스(Syntax) 정보에 따라 현재 블록의 예측 정보의 문맥 모델이 다르게 사용될 수 있다.
도 6을 참조하면, 현재 계층(610)에 지역 양자화가 수행될 수 있다. 현재 계층 전체에 지역 양자화가 수행되지 않으므로, 현재 계층 전체에 지역 양자화 적용여부를 나타내는 정보(예를 들어, local_mode_flag)가 0을 나타낼 수 있다. 또한, 지역 양자화가 수행되는 서브 블록의 크기가 2x2 블록단위 이므로, 지역 양자화가 수행되는 서브 블록의 크기 정보(예를 들어, sub_idx)는 2를 나타낼 수 있다. 다만, 지역 양자화가 수행되는 서브 블록의 크기 정보(예를 들어, sub_idx)는 테이블 형태로 정의된 경우, 지역 양자화가 수행되는 서브 블록의 크기 정보(예를 들어, sub_idx)는 0을 나타낼 수 있다. 지역 양자화가 수행된 계층(620)에서 왼쪽 상단에 위치한 2x2 서브 블록(630)에 지역 양자화가 수행될 수 있다. 이에 따라 해당 서브 블록(630)에 지역 양자화가 수행되는지를 나타내는 정보(예를 들어, local_sub_flag)는 1을 나타낼 수 있다. 또한, 해당 서브 블록(630)에 지역 양자화 모드가 이진 클러스터링 모드에 해당될 수 있다. 이에 따라, 해당 서브 블록(630)에서 지역 양자화 모드의 색인 정보(예를 들어, local_mode_idx)는 1을 나타낼 수 있다. 해당 서브 블록(630)의 위치가 현재 계층의 왼쪽 상단에 위치하므로, 해당 서브 블록(630)의 위치 정보(예를 들어, sub_pos)는 0을 나타낼 수 있다. 이진 클러스터링 모드에 따라 이진화가 적용되므로 해당 서브 블록(630)의 지역 양자화에 대한 코드북 정보(예를 들어, repre_c)는 c 값이 0 또는 1을 나타낼 수 있다.
지역 양자화가 수행된 계층(620)에서 오른쪽 하단에 위치한 2x2 서브 블록(640)에 지역 양자화가 수행되지 않을 수 있다. 이에 따라, 해당 서브 블록(640)에 지역 양자화가 수행되는지를 나타내는 정보(예를 들어, local_sub_flag)는 0을 나타낼 수 있다. 해당 서브 블록(640)의 위치가 현재 계층의 오른쪽 하단에 위치하므로, 해당 서브 블록(640)의 위치 정보(예를 들어, sub_pos)는 3을 나타낼 수 있다. 그리고, 이와 같은 지역 양자화 정보는 엔트로피 부호화/복호화 될 수 있다.
도 7은 본 개시의 일 실시예에 따른 심층 신경망 복호화 순서도를 설명한다.
도 7을 참조하면, 심층 신경망의 복수의 계층에 있어서, 현재 계층에 대한 양자화 정보가 엔트로피 복호화될 수 있다(S710).
일 실시예에 따르면, 현재 계층에 전역 양자화 및 지역 양자화 중에서 적어도 하나 이상이 수행될 수 있다.
일 실시예에 따르면, 양자화 정보는 전역 양자화 모드에 관한 전역 양자화 모드 정보, 비트 크기에 관한 비트 크기 정보, 균일 양자화 적용 여부에 관한 균일 양자화 적용 정보, 상기 복수의 계층의 개별적 복호화에 관한 개별적 복호화 정보, 병렬적 복호화 여부에 관한 병렬적 복호화 정보, 코드북에 관한 코드북 정보, 스텝 크기에 관한 스텝 크기 정보 및 현재 계층의 채널수에 관한 채널수 정보 중에서 적어도 하나 이상을 포함할 수 있다.
일 실시예에 따르면, 현재 계층에 대해 비균일 양자화를 수행한 경우, 양자화 정보는 특이 값 인식 양자화 모드 적용에 관한 특이 값 인식 양자화 적용 정보를 포함할 수 있다.
일 실시예에 따르면, 전역 양자화 모드가 특수 전역 양자화 모드인 경우, 양자화 정보는 변환 함수 리스트내 위치에 관한 변환 함수 리스트 위치 정보를 포함할 수 있다.
일 실시예에 따르면, 현재 계층에 대해 지역 양자화를 수행한 경우, 양자화 정보는 현재 계층 전체에 지역 양자화 적용여부에 관한 지역 양자화 적용 정보, 서브 블록 크기 고정여부에 관한 서브 블록 크기 고정 정보, 서브 블록 크기에 관한 서브 블록 크기 정보, 서브 블록에 지역 양자화 적용여부에 관한 서브 블록 지역 양자화 적용 정보, 지역 양자화 모드에 관한 지역 양자화 모드 정보, 서브 블록 위치에 관한 서브 블록 위치 정보, 서브 블록 코드북에 관한 서브 블록 코드북 정보 및 현재 계층의 채널수에 관한 채널수 정보 중에서 적어도 하나 이상을 포함할 수 있다.
일 실시예에 따르면, 지역 양자화 모드가 특정 비트를 할당하는 모드인 경우, 양자화 정보는 지역 양자화 비트 크기에 관한 지역 양자화 비트 크기 정보를 포함할 수 있다.
일 실시예에 따르면, 현재 계층에 대한 양자화 정보를 엔트로피 복호화 하는 단계는 제한된 K차수 지수-골롬 이진화 방법, 고정 길이 이진화 방법, 단항 이진화 방법 및 절삭된 이진 이진화 방법 중에서 적어도 하나 이상을 이용할 수 있다.
일 실시예에 따르면, 현재 계층에 대한 양자화 정보를 엔트로피 복호화 하는 단계는 이진화를 통해 발생한 정보에 대해 문맥기반 적응적 이진 산술 방법, 문맥기반 적응적 가변길이 방법, 적응적 산술 방법 및 우회 방법 중에서 적어도 하나 이상을 이용할 수 있다.
그리고, 현재 계층에 대해 역양자화가 수행될 수 있다(S720).
그리고, 심층 신경망의 복수의 계층이 획득될 수 있다(S730).
도 8은 본 개시의 일 실시예에 따른 심층 신경망 부호화 순서도를 설명한다.
도 8을 참조하면, 심층 신경망의 복수의 계층에 있어서, 현재 계층에 대해 양자화가 수행될 수 있다(S810).
일 실시예에 따르면, 현재 계층에 전역 양자화 및 지역 양자화 중에서 적어도 하나 이상을 수행할 수 있다.
일 실시예에 따르면, 현재 계층에 대한 양자화 정보를 엔트로피 부호화 하는 단계는 제한된 K차수 지수-골롬 이진화 방법, 고정 길이 이진화 방법, 단항 이진화 방법 및 절삭된 이진 이진화 방법 중에서 적어도 하나 이상을 이용할 수 있다.
일 실시예에 따르면, 현재 계층에 대한 양자화 정보를 엔트로피 부호화 하는 단계는 이진화를 통해 발생한 정보에 대해 문맥기반 적응적 이진 산술 방법, 문맥기반 적응적 가변길이 방법, 적응적 산술 방법 및 우회 방법 중에서 적어도 하나 이상을 이용할 수 있다.
그리고, 현재 계층에 대한 양자화 정보가 엔트로피 부호화될 수 있다(S820).
그리고, 양자화 정보를 포함하는 비트스트림이 생성될 수 있다(S830).
상술한 실시예들에서, 방법들은 일련의 단계 또는 유닛으로서 순서도를 기초로 설명되고 있으나, 본 개시는 단계들의 순서에 한정되는 것은 아니며, 어떤 단계는 상술한 바와 다른 단계와 다른 순서로 또는 동시에 발생할 수 있다. 또한, 당해 기술 분야에서 통상의 지식을 가진 자라면 순서도에 나타난 단계들이 배타적이지 않고, 다른 단계가 포함되거나, 순서도의 하나 또는 그 이상의 단계가 본 개시의 범위에 영향을 미치지 않고 삭제될 수 있음을 이해할 수 있을 것이다.
상술한 실시예는 다양한 양태의 예시들을 포함한다. 다양한 양태들을 나타내기 위한 모든 가능한 조합을 기술할 수는 없지만, 해당 기술 분야의 통상의 지식을 가진 자는 다른 조합이 가능함을 인식할 수 있을 것이다. 따라서, 본 개시는 이하의 특허청구범위 내에 속하는 모든 다른 교체, 수정 및 변경을 포함한다고 할 것이다.
이상 설명된 본 개시에 따른 실시예들은 다양한 컴퓨터 구성요소를 통하여 수행될 수 있는 프로그램 명령어의 형태로 구현되어 컴퓨터 판독 가능한 기록 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능한 기록 매체는 프로그램 명령어, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 컴퓨터 판독 가능한 기록 매체에 기록되는 프로그램 명령어는 본 개시를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 분야의 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능한 기록 매체의 예에는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 ROM, RAM, 플래시 메모리 등과 같은 프로그램 명령어를 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령어의 예에는, 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드도 포함된다. 상기 하드웨어 장치는 본 개시에 따른 처리를 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상에서 본 개시가 구체적인 구성요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나, 이는 본 개시의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 개시가 상기 실시예들에 한정되는 것은 아니며, 본 개시가 속하는 기술분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형을 꾀할 수 있다.
따라서, 본 개시의 사상은 상기 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위 뿐만 아니라 이 특허청구범위와 균등하게 또는 등가적으로 변형된 모든 것들은 본 개시의 사상의 범주에 속한다고 할 것이다.
본 발명은 심층 신경망을 부호화/복호화하는데 이용될 수 있다.

Claims (12)

  1. 심층 신경망의 복수의 계층에 있어서, 현재 계층에 대한 양자화 정보를 엔트로피 복호화 하는 단계;
    상기 현재 계층에 대해 역양자화를 수행하는 단계; 및
    상기 심층 신경망의 복수의 계층을 획득하는 단계를 포함하되 상기 현재 계층에 전역 양자화 및 지역 양자화 중에서 적어도 하나 이상을 수행하는 것을 특징으로 하는 심층 신경망 복호화 방법.
  2. 제1항에 있어서,
    상기 현재 계층에 대해 전역 양자화를 수행한 경우,
    상기 양자화 정보는 전역 양자화 모드에 관한 전역 양자화 모드 정보, 비트 크기에 관한 비트 크기 정보, 균일 양자화 적용 여부에 관한 균일 양자화 적용 정보, 상기 복수의 계층의 개별적 복호화에 관한 개별적 복호화 정보, 병렬적 복호화 여부에 관한 병렬적 복호화 정보, 코드북(Codebook)에 관한 코드북 정보, 스텝 크기에 관한 스텝 크기 정보 및 상기 현재 계층의 채널수에 관한 채널수 정보 중에서 적어도 하나 이상을 포함하는 것을 특징으로 하는 심층 신경망 복호화 방법.
  3. 제2항에 있어서,
    상기 현재 계층에 대해 비균일 양자화를 수행한 경우,
    상기 양자화 정보는 특이 값 인식 양자화 모드 적용에 관한 특이 값 인식 양자화 적용 정보를 포함하는 것을 특징으로 하는 심층 신경망 복호화 방법.
  4. 제2항에 있어서,
    상기 전역 양자화 모드가 특수 전역 양자화 모드인 경우,
    상기 양자화 정보는 변환 함수 리스트내 위치에 관한 변환 함수 리스트 위치 정보를 포함하는 것을 특징으로 하는 심층 신경망 복호화 방법.
  5. 제1항에 있어서,
    상기 현재 계층에 대해 지역 양자화를 수행한 경우,
    상기 양자화 정보는 현재 계층 전체에 지역 양자화 적용여부에 관한 지역 양자화 적용 정보, 서브 블록 크기 고정여부에 관한 서브 블록 크기 고정 정보, 서브 블록 크기에 관한 서브 블록 크기 정보, 서브 블록에 지역 양자화 적용여부에 관한 서브 블록 지역 양자화 적용 정보, 지역 양자화 모드에 관한 지역 양자화 모드 정보, 서브 블록 위치에 관한 서브 블록 위치 정보, 서브 블록 코드북에 관한 서브 블록 코드북 정보 및 상기 현재 계층의 채널수에 관한 채널수 정보 중에서 적어도 하나 이상을 포함하는 것을 특징으로 하는 심층 신경망 복호화 방법.
  6. 제5항에 있어서,
    상기 지역 양자화 모드가 특정 비트를 할당하는 모드인 경우,
    상기 양자화 정보는 지역 양자화 비트 크기에 관한 지역 양자화 비트 크기 정보를 포함하는 것을 특징으로 하는 심층 신경망 복호화 방법.
  7. 제1항에 있어서,
    상기 현재 계층에 대한 양자화 정보를 엔트로피 복호화 하는 단계는
    제한된 K차수 지수-골롬(K-th order Exp_Golomb) 이진화 방법, 고정 길이(Fixed-length) 이진화 방법, 단항(Unary) 이진화 방법 및 절삭된 이진(Truncated Binary) 이진화 방법 중에서 적어도 하나 이상을 이용하는 것을 특징으로 하는 심층 신경망 복호화 방법.
  8. 제7항에 있어서,
    상기 현재 계층에 대한 양자화 정보를 엔트로피 복호화 하는 단계는
    이진화를 통해 발생한 정보에 대해 문맥기반 적응적 이진 산술 방법(CABAC, Context-Adaptive Binary Arithmetic Coding), 문맥기반 적응적 가변길이 방법(CAVLC, Context-Adaptive Variable Length Coding), 적응적 산술 방법 (Conditional Arithmetic Coding) 및 우회 방법(bypass coding) 중에서 적어도 하나 이상을 이용하는 것을 특징으로 하는 심층 신경망 복호화 방법.
  9. 심층 신경망의 복수의 계층에 있어서, 현재 계층에 대해 양자화를 수행하는 단계;
    상기 현재 계층에 대한 양자화 정보를 엔트로피 부호화 하는 단계; 및
    상기 양자화 정보를 포함하는 비트스트림을 생성하는 단계를 포함하되 상기 현재 계층에 전역 양자화 및 지역 양자화 중에서 적어도 하나 이상을 수행하는 것을 특징으로 하는 심층 신경망 부호화 방법.
  10. 제9항에 있어서,
    상기 현재 계층에 대한 양자화 정보를 엔트로피 부호화 하는 단계는
    제한된 K차수 지수-골롬 이진화 방법, 고정 길이 이진화 방법, 단항 이진화 방법 및 절삭된 이진 이진화 방법 중에서 적어도 하나 이상을 이용하는 것을 특징으로 하는 심층 신경망 부호화 방법.
  11. 제10항에 있어서,
    상기 현재 계층에 대한 양자화 정보를 엔트로피 부호화 하는 단계는
    이진화를 통해 발생한 정보에 대해 문맥기반 적응적 이진 산술 방법, 문맥기반 적응적 가변길이 방법, 적응적 산술 방법 및 우회 방법 중에서 적어도 하나 이상을 이용하는 것을 특징으로 하는 심층 신경망 부호화 방법.
  12. 심층 신경망 복호화 장치에 의해 수신되고 복호화되어 심층 신경망을 복원하는데 이용되는 비트스트림을 저장한 컴퓨터 판독 가능한 기록 매체로서,
    상기 심층 신경망의 복호화 방법은
    상기 심층 신경망의 복수의 계층에 있어서, 현재 계층에 대한 양자화 정보를 엔트로피 복호화 하는 단계;
    상기 현재 계층에 대해 역양자화를 수행하는 단계; 및
    상기 현재 계층을 획득하는 단계를 포함하되 상기 현재 계층에 전역 양자화 및 지역 양자화 중에서 적어도 하나 이상을 수행하는 것을 특징으로 하는 컴퓨터로 판독 가능한 기록 매체.
PCT/KR2020/018140 2019-12-11 2020-12-11 심층 신경망 모델의 부호화/복호화 방법 및 장치 WO2021118285A1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US17/784,856 US20230008124A1 (en) 2019-12-11 2020-12-11 Method and device for encoding/decoding deep neural network model

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR20190164756 2019-12-11
KR10-2019-0164756 2019-12-11
KR20200061583 2020-05-22
KR10-2020-0061583 2020-05-22

Publications (1)

Publication Number Publication Date
WO2021118285A1 true WO2021118285A1 (ko) 2021-06-17

Family

ID=76330836

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2020/018140 WO2021118285A1 (ko) 2019-12-11 2020-12-11 심층 신경망 모델의 부호화/복호화 방법 및 장치

Country Status (3)

Country Link
US (1) US20230008124A1 (ko)
KR (1) KR20210074228A (ko)
WO (1) WO2021118285A1 (ko)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180001428A (ko) * 2016-06-24 2018-01-04 한국과학기술원 Cnn 기반 인루프 필터를 포함하는 부호화 방법과 장치 및 복호화 방법과 장치
US10225607B1 (en) * 2018-01-25 2019-03-05 Novatek Microelectronics Corp. Video processing apparatus and video processing method thereof
US20190073582A1 (en) * 2015-09-23 2019-03-07 Yi Yang Apparatus and method for local quantization for convolutional neural networks (cnns)
KR20190067107A (ko) * 2017-12-06 2019-06-14 한국과학기술원 왜곡 제거 방법 및 장치
KR20190096281A (ko) * 2018-02-08 2019-08-19 한국전자통신연구원 신경망에 기반하는 비디오 부호화 및 비디오 복호화를 위한 방법 및 장치

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190073582A1 (en) * 2015-09-23 2019-03-07 Yi Yang Apparatus and method for local quantization for convolutional neural networks (cnns)
KR20180001428A (ko) * 2016-06-24 2018-01-04 한국과학기술원 Cnn 기반 인루프 필터를 포함하는 부호화 방법과 장치 및 복호화 방법과 장치
KR20190067107A (ko) * 2017-12-06 2019-06-14 한국과학기술원 왜곡 제거 방법 및 장치
US10225607B1 (en) * 2018-01-25 2019-03-05 Novatek Microelectronics Corp. Video processing apparatus and video processing method thereof
KR20190096281A (ko) * 2018-02-08 2019-08-19 한국전자통신연구원 신경망에 기반하는 비디오 부호화 및 비디오 복호화를 위한 방법 및 장치

Also Published As

Publication number Publication date
KR20210074228A (ko) 2021-06-21
US20230008124A1 (en) 2023-01-12

Similar Documents

Publication Publication Date Title
US20210195195A1 (en) Look-up table for enhanced multiple transform
WO2011139099A2 (ko) 비디오 신호의 처리 방법 및 장치
WO2011034380A2 (en) Method and apparatus for encoding and decoding image based on skip mode
AU2010310286B2 (en) Method and device for encoding and decoding video
JP7170669B2 (ja) 最後の有意係数フラグのコーディング
WO2012057528A2 (ko) 적응적 화면내 예측 부호화 및 복호화 방법
US10893286B2 (en) Methods and apparatus for low-complexity MTS
WO2017043769A1 (ko) 부호화 장치, 복호화 장치 및 그 부호화 방법 및 복호화 방법
WO2017043763A1 (ko) 부호화 장치, 복호화 장치, 그 부호화 및 복호화 방법
EP2765780A1 (en) Binarizing method and device thereof
JP2019508969A (ja) 最適化されたコンパクト多重パス変換を使用する効率的な変換コーディング
WO2010077071A2 (ko) 블록 모드 부호화/복호화 방법 및 장치와 그를 이용한 영상 부호화/복호화 방법 및 장치
TW201545543A (zh) 基於調色板之視訊寫碼
CN104221373A (zh) 用于采样自适应偏移代码化和/或信号通知的设备和方法
WO2017043766A1 (ko) 비디오 부호화, 복호화 방법 및 장치
CN111869209A (zh) 灵活的树结构
WO2020020221A1 (en) Methods and apparatus for entropy coding and decoding aspects of video data
US11991359B2 (en) Method and apparatus for selecting transform selection in an encoder and decoder
WO2021118285A1 (ko) 심층 신경망 모델의 부호화/복호화 방법 및 장치
TW201336311A (zh) 圖片用於視訊處理的系統及其方法
WO2018159987A1 (ko) 프리 스캔을 이용한 블록 기반 동영상 복호화 방법 및 그 장치
CN113545055B (zh) 视频编解码的方法、装置和存储介质
WO2018169267A1 (ko) 영상 부호화 또는 복호화하기 위한 장치 및 방법
WO2020251124A1 (ko) 기계 학습 모델에 기초한 블록 체인을 이용한 hevc 분산형 복호화 방법, 장치 및 시스템
CN110622509B (zh) 用于对编码单元进行分割的方法及装置

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

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 20899651

Country of ref document: EP

Kind code of ref document: A1