KR102394951B1 - 인코딩, 디코딩 장치 및 방법 - Google Patents

인코딩, 디코딩 장치 및 방법 Download PDF

Info

Publication number
KR102394951B1
KR102394951B1 KR1020200108299A KR20200108299A KR102394951B1 KR 102394951 B1 KR102394951 B1 KR 102394951B1 KR 1020200108299 A KR1020200108299 A KR 1020200108299A KR 20200108299 A KR20200108299 A KR 20200108299A KR 102394951 B1 KR102394951 B1 KR 102394951B1
Authority
KR
South Korea
Prior art keywords
unit
layer
weight
filter
transform
Prior art date
Application number
KR1020200108299A
Other languages
English (en)
Other versions
KR20220027435A (ko
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 KR1020200108299A priority Critical patent/KR102394951B1/ko
Publication of KR20220027435A publication Critical patent/KR20220027435A/ko
Application granted granted Critical
Publication of KR102394951B1 publication Critical patent/KR102394951B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/002Image coding using neural networks
    • 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/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/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

Landscapes

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

Abstract

본 발명은 인코딩, 디코딩 장치 및 장법에 관한 것이다. 본 발명의 일 실시예에 따른 인코딩 장치는, 딥 러닝 모델(deep learning model)에서 대규모 원소 매트릭스(matrix)의 가중치를 가지는 하나 이상의 필터에 대해 소규모 원소 매트릭스의 단위 영역 별로 이산 코사인 변환(DCT)을 수행하여 주파수 영역으로 변환하는 변환부; 상기 변환부의 출력을 양자화(quantization)하여 이산 데이터(discrete data)로 변환함으로써 양자화된 가중치를 생성하는 양자화부; 다수의 단위 영역에 대해 군집화하고, 각 단위 영역이 속한 위치에 대한 인덱스 정보를 생성하는 군집화부; 및 군집 별로 엔트로피 코딩(entropy coding) 기법을 적용하고 상기 인덱스 정보에 대해서도 엔트로피 코딩 기법을 적용하여, 군집 별 가중치의 압축 코드와 인덱스 정보의 압축 코드를 각각 포함하는 비트스트림(bitstream)을 생성하는 인코더부;를 포함하는 것을 특징으로 한다.

Description

인코딩, 디코딩 장치 및 방법{METHOD AND APPARATUS FOR ENCODING AND DECODING}
본 발명은 딥 러닝 모델(deep learning model)의 처리에 관한 것으로서, 더욱 상세하게는 딥 러닝 모델을 인코딩하거나 인코딩된 딥 러닝 모델을 디코딩하기 위한 장치 및 방법에 관한 것이다.
머신 러닝(machine learning) 기법 중에 하나인 딥 러닝(deep learning) 기법은 영상 인식, 음성 신호처리, 자연어 처리 등 다양한 응용 분야에서 종래의 전통적인 방법을 압도하는 고무적인 성능을 보이고 있다. 이러한 딥 러닝 기법은 가중치(Weights)와 편항치(Biases)로 구성된 모델을 주어진 응용 분야에 적합하게 학습하고, 학습된 모델을 다시 해당 응용 분야에 적용하여 성능을 개선한다. 하지만, 딥 러닝 기술이 발전할수록, 딥 러닝 모델의 데이터 크기가 점차 커지고 있으며, 이에 따라 딥 러닝 모델을 효율적으로 압축, 복원 및 전송하는 기술이 요구되고 있다.
딥 러닝 모델은 각 레이어(Layer) 간에 수행되는 가중치(weights)와 편항치 (biases)의 집합으로 각 레이어의 타입(Input layer, Output layer, Convolutional layer, Residual layer, Fully-Connected layer, Recurrent layer, Batch Normalization layer 등)에 따라 그 데이터 크기가 달라진다. 예를 들어, AlexNet의 경우에 약 240MB의 크기를 가지며, VGG-16의 경우에 약 552MB의 크기를 가진다. 이와 같이 데이터 크기가 큰 딥 러닝 모델은 저장 공간이 작은 내부 메모리(SRAM, Cache)에는 저장하기 어려우며, 저장 공간이 큰 외부 메모리(DRAM)에 저장해야 한다. 이 경우, 딥 러닝 연산을 위해 해당 모델을 빈번하게 외부 메모리에서 가져와야 하므로, 전력 소모(45nm CMOS 공정에서 32-bit DRAM 메모리 접근은 640pJ의 에너지 소모)가 커 재원이 낭비될 수밖에 없다. 이를 해결하기 위해, 딥 러닝 모델을 압축해서 저장함으로써, 모델 크기가 작아져 외부 메모리로의 접근율을 낮출 수 있으며, 전력 효율 측면에서도 큰 이점을 얻을 수 있다.
이러한 이점을 위해, 종래에 사용된 대표적인 딥 러닝 모델의 압축 기술은 딥 러닝 모델의 전체 데이터에 대해 가지치기(Pruning), 양자화(Quantization) 및 허프만 코딩(Huffman Encoding)을 차례로 수행하였다. 가령, 해당 종래 기술이 적용된 VGG-16의 경우, 원 데이터 대비 약 49배의 압축 성능을 보인다.
이때, 가지치기(Pruning) 기법은 딥 러닝 모델 내에서 매우 작은 값의 가중치에 대해서는 모델 성능에 크게 기여하지 않는 것으로 판단하여 뉴런 간의 연결을 끊어버린다(즉, 해당 가중치를 0으로 설정함). 즉, 재학습 과정을 통해 성능은 유지하면서 불필요한 가중치는 제거한다. 또한, 양자화(Quantization 기법은 레이어 내 가중치를 양자화하기 위한 최적 양자화 코드북을 학습 과정에서 도출한다. 마지막으로, 허프만 코딩(Huffman Encoding) 기법은 양자화된 가중치(Quantized weights)와 코드북(CodeBook, Index)을 비트스트림(bitstream)으로 변환하는 과정으로서, 이 과정에서 약 20 ~ 30% 정도의 추가 압축이 이뤄진다.
하지만, 이러한 종래 방법은 딥 러닝 모델을 레이어 단위 등과 같이 소규모 단위로 구분해서 처리 않고, 전체 모델의 대규모 단위에 대해서 한번에 각 기법을 적용하여 압축한다. 따라서, 종래 방법의 경우, 압축된 딥 러닝 모델의 비트스트림 내에 각 레이어 등과 같은 각 소규모 단위를 구분하는 별도의 인자가 포함되어 있지 않았다. 그 결과, 종래 방법은 매 소규모 단위(또는 레이어)를 처리할 때마다 외부 메모리에 저장된 압축된 딥 러닝 모델 전체를 불러와서 디코딩 처리해야 하므로, 그 처리가 비효율적일 수밖에 없는 문제점이 있었다.
KR 10-1715118 B
상기한 바와 같은 종래 기술의 문제점을 해결하기 위하여, 본 발명은 압축 및 디코딩 처리 효율을 동시에 높일 수 있는 인코딩, 디코딩 장치 및 장법을 제공하는데 그 목적이 있다.
다만, 본 발명이 해결하고자 하는 과제는 이상에서 언급한 과제에 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
상기와 같은 과제를 해결하기 위한 본 발명의 일 실시예에 따른 인코딩 장치는, 딥 러닝 모델(deep learning model)에서 대규모 원소 매트릭스(matrix)의 가중치를 가지는 하나 이상의 필터에 대해 소규모 원소 매트릭스의 단위 영역 별로 이산 코사인 변환(DCT)을 수행하여 주파수 영역으로 변환하는 변환부; 상기 변환부의 출력을 양자화(quantization)하여 이산 데이터(discrete data)로 변환함으로써 양자화된 가중치를 생성하는 양자화부; 다수의 단위 영역에 대해 군집화하고, 각 단위 영역이 속한 위치에 대한 인덱스 정보를 생성하는 군집화부; 및 군집 별로 엔트로피 코딩(entropy coding) 기법을 적용하고 상기 인덱스 정보에 대해서도 엔트로피 코딩 기법을 적용하여, 군집 별 가중치의 압축 코드와 인덱스 정보의 압축 코드를 각각 포함하는 비트스트림(bitstream)을 생성하는 인코더부;를 포함한다.
상기 딥 러닝 모델에 포함된 복수의 레이어(layer)에 대해 레이어 별로 상기 변환부, 상기 군집화부 및 상기 인코더부의 동작이 수행될 수 있다.
상기 군집화부는 레이어 별로 상기 인덱스 정보를 생성할 수 있으며, 상기 인코더부는 레이어 별로 상기 압축 코드를 구분한 비트스트림을 생성할 수 있다.
상기 필터는 3차원 매트릭스(h×w×d)(단, h, w 및 d은 자연수)의 가중치를 포함할 수 있으며, 상기 단위 영역은 상기 3차원 매트릭스에 속한 2차원 매트릭스(h×w)일 수 있다.
상기 변환부는 복수의 필터에 대한 단위 영역을 처리할 수 있다.
상기 필터는 컨볼루션 레이어(convolution layer)의 컨볼루션 필터일 수 있다.
상기 필터는 2차원 매트릭스(h'×w')(단, h' 및 w'는 자연수)의 가중치를 포함할 수 있으며, 상기 단위 영역은 상기 2차원 매트릭스에 포함된 소단위 2차원 매트릭스(h×w)(단, h 및 w는 자연수이고, h<h', w<w')일 수 있다.
상기 필터는 풀리 커넥티드 레이어(fully connected layer)의 필터일 수 있다.
상기 인코더부는 하나의 군집에 대해 그 군집에 포함된 다수의 단위 영역이 가지는 각 2차원 매트릭스에서 동일 위치의 가중치 엔트로피 코딩 기법을 적용할 수 있다.
상기 변환부는 필터의 종류 또는 필터가 포함된 레이어의 종류에 따라 이산 코사인 변환을 선택적으로 수행할 수 있다.
상기 양자화부는 변환부에서 이산 코사인 변환이 미수행될 경우 해당 필터의 각 가중치에 대한 양자화를 공간 영역에서 수행할 수 있다.
본 발명의 다른 일 실시예에 따른 인코딩 장치는, 딥 러닝 모델(deep learning model)에서 매트릭스(matrix)의 가중치를 가지는 하나 이상의 필터를 포함한 레이어에 대해 레이어 별로 이산 코사인 변환(DCT)을 수행하되, 레이어 또는 필터의 종류에 따라 이산 코사인 변환을 선택적으로 수행하여 주파수 영역으로 변환하는 변환부; 상기 변환부의 출력을 양자화(quantization)하여 이산 데이터(discrete data)로 변환함으로써 양자화된 가중치를 생성하며, 변환부에서 이산 코사인 변환이 미수행될 경우 해당 필터의 각 가중치에 대한 양자화를 공간 영역에서 수행하는 양자화부; 및 레이어 별로 엔트로피 코딩(entropy coding) 기법을 적용하여 레이어 별 가중치의 압축 코드를 포함하는 비트스트림(bitstream)을 생성하는 인코더부;를 포함한다.
본 발명의 일 실시예에 따른 디코딩 장치는 군집 별 가중치의 압축 코드와 인덱스 정보의 압축 코드를 포함하는 인코딩 코드에 대해 디코딩을 수행하는 장치로서, 상기 군집 별 가중치의 압축 코드에 대해 군집 별로 엔트로피 디코딩(entropy decoding) 기법을 적용하여 제1 디코딩 데이터를 생성하고, 딥 러닝 모델(deep learning model)의 대규모 원소 매트릭스(matrix)의 가중치를 가지는 하나 이상의 필터에서 소규모 원소 매트릭스의 각 단위 영역이 속한 위치를 나타내는 상기 인덱스 정보의 압축 코드에 대해 엔트로피 디코딩 기법을 적용하여 제2 디코딩 데이터를 생성하는 디코더부; 제1 디코딩 데이터를 역양자화(de-quantization)하여 세분화된 데이터로 변환함으로써 역양자화된 가중치를 생성하는 역양자화부; 및 단위 영역 별로 역이산 코사인 변환(IDCT)을 수행하여 주파수 영역의 역양자화된 가중치를 공간 영역으로 변환하는 역변환부;를 포함한다.
본 발명의 일 실시예에 따른 디코딩 장치는 상기 제2 디코딩 데이터를 이용하여 상기 제1 디코딩 데이터의 각 단위 영역이 상기 필터에서 속한 위치를 매칭시켜 상기 필터를 복원할 수 있다.
상기 역변환부는 필터의 종류 또는 필터가 포함된 레이어의 종류에 따라 역이산 코사인 변환을 선택적으로 수행할 수 있다.
본 발명의 다른 일 실시예에 따른 디코딩 장치는 딥 러닝 모델(deep learning model)에서 매트릭스(matrix)의 가중치를 가지는 하나 이상의 필터를 포함한 레이어에 대해 레이어 별 가중치의 압축 코드를 포함하는 인코딩 코드에 대해 디코딩을 수행하는 장치로서, 상기 레이어 별 가중치의 압축 코드에 대해 레이어 별로 엔트로피 디코딩(entropy decoding) 기법을 적용하여 디코딩 데이터를 생성하는 디코더부; 디코딩 데이터를 역양자화(de-quantization)하여 세분화된 데이터로 변환함으로써 역양자화된 가중치를 생성하는 역양자화부; 및 단위 영역 별로 역이산 코사인 변환(IDCT)을 수행하여 주파수 영역의 역양자화된 가중치를 공간 영역으로 변환하되, 레이어 또는 필터의 종류에 따라 역이산 코사인 변환을 선택적으로 수행하는 역변환부;를 포함한다.
본 발명의 일 실시예에 따른 인코딩 방법은 전자 장치에 의해 수행되는 인코딩 방법으로서, 딥 러닝 모델(deep learning model)에서 대규모 원소 매트릭스(matrix)의 가중치를 가지는 하나 이상의 필터에 대해 소규모 원소 매트릭스의 단위 영역 별로 이산 코사인 변환(DCT)을 수행하여 주파수 영역으로 변환하는 단계; 상기 DCT의 수행에 따른 출력을 양자화(quantization)하여 이산 데이터(discrete data)로 변환함으로써 양자화된 가중치를 생성하는 단계; 다수의 단위 영역에 대해 군집화하고, 각 단위 영역이 속한 위치에 대한 인덱스 정보를 생성하는 단계; 및 군집 별로 엔트로피 코딩(entropy coding) 기법을 적용하고 상기 인덱스 정보에 대해서도 엔트로피 코딩 기법을 적용하여, 군집 별 가중치의 압축 코드와 인덱스 정보의 압축 코드를 각각 포함하는 비트스트림을 생성하는 단계;를 포함한다.
본 발명의 다른 일 실시예에 따른 인코딩 방법은 전자 장치에 의해 수행되는 인코딩 방법으로서, 딥 러닝 모델(deep learning model)에서 매트릭스(matrix)의 가중치를 가지는 하나 이상의 필터를 포함한 레이어에 대해 레이어 별로 이산 코사인 변환(DCT)을 수행하되, 레이어 또는 필터의 종류에 따라 이산 코사인 변환을 선택적으로 수행하여 주파수 영역으로 변환하는 단계; 상기 이산 코사인 변환에 따른 출력을 양자화(quantization)하여 이산 데이터(discrete data)로 변환함으로써 양자화된 가중치를 생성하며, 상기 이산 코사인 변환이 미수행될 경우 해당 필터의 각 가중치에 대한 양자화를 공간 영역에서 수행하는 단계; 및 레이어 별로 엔트로피 코딩(entropy coding) 기법을 적용하여 레이어 별 가중치의 압축 코드를 포함하는 비트스트림(bitstream)을 생성하는 단계;를 포함한다.
본 발명의 일 실시예에 따른 디코딩 방법은 전자 장치에 의해 수행되며, 군집 별 가중치의 압축 코드와 인덱스 정보의 압축 코드를 포함하는 인코딩 코드에 대한 디코딩 방법으로서, 상기 군집 별 가중치의 압축 코드에 대해 군집 별로 엔트로피 디코딩(entropy decoding) 기법을 적용하여 제1 디코딩 데이터를 생성하고, 딥 러닝 모델(deep learning model)의 대규모 원소 매트릭스(matrix)의 가중치를 가지는 하나 이상의 필터에서 소규모 원소 매트릭스의 각 단위 영역이 속한 위치를 나타내는 상기 인덱스 정보의 압축 코드에 대해 엔트로피 디코딩 기법을 적용하여 제2 디코딩 데이터를 생성하는 단계; 제1 디코딩 데이터를 역양자화(de-quantization)하여 세분화된 데이터로 변환함으로써 역양자화된 가중치를 생성하는 단계; 및 단위 영역 별로 역이산 코사인 변환(IDCT)을 수행하여 주파수 영역의 역양자화된 가중치를 공간 영역으로 변환하는 단계;를 포함한다.
본 발명의 일 실시예에 따른 디코딩 방법은 상기 제2 디코딩 데이터를 이용하여, 상기 제1 디코딩 데이터의 각 단위 영역이 상기 필터에서 속한 위치를 매칭시켜 상기 필터를 복원할 수 있다.
본 발명의 다른 일 실시예에 따른 디코딩 방법은 전자 장치에 의해 수행되며, 딥 러닝 모델(deep learning model)에서 매트릭스(matrix)의 가중치를 가지는 하나 이상의 필터를 포함한 레이어에 대해 레이어 별 가중치의 압축 코드를 포함하는 인코딩 코드에 대한 디코딩 방법으로서, 상기 레이어 별 가중치의 압축 코드에 대해 레이어 별로 엔트로피 디코딩(entropy decoding) 기법을 적용하여 디코딩 데이터를 생성하는 단계; 디코딩 데이터를 역양자화(de-quantization)하여 세분화된 데이터로 변환함으로써 역양자화된 가중치를 생성하는 단계; 및 단위 영역 별로 역이산 코사인 변환(IDCT)을 수행하여 주파수 영역의 역양자화된 가중치를 공간 영역으로 변환하되, 레이어 또는 필터의 종류에 따라 역이산 코사인 변환을 선택적으로 수행하는 단계;를 포함한다.
상기와 같이 구성되는 본 발명은 압축 및 디코딩 처리 효율을 동시에 높일 수 있는 이점이 있다.
즉, 본 발명은 딥 러닝 모델의 복수의 레이어에 대해 레이어 또는 필터 별로 유사한 가중치에 대한 압축 처리를 수행함에 따라, 압축 심볼의 개수를 줄여 압축 효율을 향상시킬 수 있다.
특히, 본 발명은 군집 별로 엔트로피 코딩이 적용됨에 따라, 압축 효율을 향상시킬 수 있으며, 하나의 군집에 대해서도 원소 위치 별로 엔트로피 코딩을 적용할 경우에 해당 압축 효율을 더욱 향상시킬 수 있다.
또한, 본 발명은 레이어 별로 압축 처리 등을 수행하므로, 필요한 레이어 처리 시마다 외부 메모리에 저장된 압축된 딥 러닝 모델 중 해당 레이어에 대해서만 디코딩 처리하면 되어, 그 디코딩 처리 효율을 개선할 수 있다.
또한, 본 발명은 DCT 적용 여부의 선택이 가능하여 활용성이 큰 이점이 있고, DCT 적용시 에너지 집중 현상을 고려한 압축 수행으로 압축 손실을 최소화할 수 있으며, DCT 미적용시 처리 속도를 향상시킬 수 있다.
특히, 본 발명은 DCT 미적용시 인코딩 처리 대비 디코딩 처리의 연산량이 적어, 저사양의 디코딩 장치로도 디코딩 수행이 가능한 이점이 있다.
본 발명에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
도 1은 본 발명의 일 실시예에 따른 인코딩 장치(100)의 블록 구성도를 나타낸다.
도 2는 본 발명의 일 실시예에 따른 인코딩 장치(100)에서 딥 러닝 모델의 인코딩을 위한 제어부(150)의 구성을 나타낸다.
도 3은 본 발명의 일 실시예에 따른 인코딩 방법의 순서도를 나타낸다.
도 4는 3차원 매트릭스의 필터를 복수개 가지는 레이어에 대한 이산 코사인 변환의 일 예를 나타낸다.
도 5는 2차원 매트릭스 필터를 가지는 레이어에 대한 이산 코사인 변환의 일 예를 나타낸다.
도 6은 다수의 단위 영역(FS/FS')에 대해 군집화가 수행된 결과인 각 군집(C1, …Ck)(단, k는 2이상의 자연수)의 모습의 일 예를 나타낸다.
도 7은 어느 한 군집(Cs)(단, s는 2이상 k 이하인 자연수)에서 원소 위치 별로 엔트로피 코딩 기법이 수행되는 모습의 일 예를 나타낸다.
도 8은 본 발명의 일 실시예에 따른 인코딩 장치(100)에서 생성된 비트스트림의 구성을 나타낸다.
도 9는 본 발명의 일 실시예에 따른 디코딩 장치(200)의 블록 구성도를 나타낸다.
도 10은 본 발명의 일 실시예에 따른 디코딩 장치(200)에서 인코딩된 딥 러닝 모델의 디코딩을 위한 제어부(250)의 구성을 나타낸다.
도 11은 본 발명의 일 실시예에 따른 디코딩 방법의 순서도를 나타낸다.
도 12는 본 발명의 일 실시예에 따른 인코딩 방법과 디코딩 방법이 수행되는 일 예를 나타낸다.
본 발명의 상기 목적과 수단 및 그에 따른 효과는 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 보다 분명해질 것이며, 그에 따라 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 것이다. 또한, 본 발명을 설명함에 있어서 본 발명과 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략하기로 한다.
본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며, 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 경우에 따라 복수형도 포함한다. 본 명세서에서, "포함하다", “구비하다”, “마련하다” 또는 “가지다” 등의 용어는 언급된 구성요소 외의 하나 이상의 다른 구성요소의 존재 또는 추가를 배제하지 않는다.
본 명세서에서, “또는”, “적어도 하나” 등의 용어는 함께 나열된 단어들 중 하나를 나타내거나, 또는 둘 이상의 조합을 나타낼 수 있다. 예를 들어, “또는 B”“및 B 중 적어도 하나”는 A 또는 B 중 하나만을 포함할 수 있고, A와 B를 모두 포함할 수도 있다.
본 명세서에서, “예를 들어” 등에 따르는 설명은 인용된 특성, 변수, 또는 값과 같이 제시한 정보들이 정확하게 일치하지 않을 수 있고, 허용 오차, 측정 오차, 측정 정확도의 한계와 통상적으로 알려진 기타 요인을 비롯한 변형과 같은 효과로 본 발명의 다양한 실시 예에 따른 발명의 실시 형태를 한정하지 않아야 할 것이다.
본 명세서에서, 어떤 구성요소가 다른 구성요소에 '연결되어’ 있다거나 '접속되어' 있다고 기재된 경우, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성 요소에 '직접 연결되어' 있다거나 '직접 접속되어' 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해될 수 있어야 할 것이다.
본 명세서에서, 어떤 구성요소가 다른 구성요소의 '상에' 있다거나 '접하여' 있다고 기재된 경우, 다른 구성요소에 상에 직접 맞닿아 있거나 또는 연결되어 있을 수 있지만, 중간에 또 다른 구성요소가 존재할 수 있다고 이해되어야 할 것이다. 반면, 어떤 구성요소가 다른 구성요소의 '바로 위에' 있다거나 '직접 접하여' 있다고 기재된 경우에는, 중간에 또 다른 구성요소가 존재하지 않은 것으로 이해될 수 있다. 구성요소 간의 관계를 설명하는 다른 표현들, 예를 들면, '~사이에'와 '직접 ~사이에' 등도 마찬가지로 해석될 수 있다.
본 명세서에서, '제1', '제2' 등의 용어는 다양한 구성요소를 설명하는데 사용될 수 있지만, 해당 구성요소는 위 용어에 의해 한정되어서는 안 된다. 또한, 위 용어는 각 구성요소의 순서를 한정하기 위한 것으로 해석되어서는 안되며, 하나의 구성요소와 다른 구성요소를 구별하는 목적으로 사용될 수 있다. 예를 들어, '제1구성요소'는 '제2구성요소'로 명명될 수 있고, 유사하게 '제2구성요소'도 '제1구성요소'로 명명될 수 있다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또한, 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.
이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 일 실시예를 상세히 설명하도록 한다.
도 1은 본 발명의 일 실시예에 따른 인코딩 장치(100)의 블록 구성도를 나타낸다.
본 발명의 일 실시예에 따른 인코딩 장치(100)는 딥 러닝 모델(deep learning model)의 데이터를 압축 처리하도록 인코딩(encoding)하여 비트스트림(bitstream)을 생성하는 장치로서, 컴퓨팅(computing)이 가능한 전자 장치 또는 컴퓨팅 네트워크일 수 있다.
예를 들어, 전자 장치는 데스크탑 PC(desktop personal computer), 랩탑 PC(laptop personal computer), 태블릿 PC(tablet personal computer), 넷북 컴퓨터(netbook computer), 워크스테이션(workstation), PDA(personal digital assistant), 스마트폰(smartphone), 스마트패드(smartpad), 또는 휴대폰(mobile phone), 등일 수 있으나, 이에 한정되는 것은 아니다.
이러한 인코딩 장치(100)는, 도 1에 도시된 바와 같이, 입력부(110), 통신부(120), 디스플레이(130), 메모리(140) 및 제어부(150)를 포함할 수 있다.
입력부(110)는 다양한 사용자의 입력에 대응하여, 입력데이터를 발생시키며, 다양한 입력수단을 포함할 수 있다. 예를 들어, 입력부(110)는 키보드(key board), 키패드(key pad), 돔 스위치(dome switch), 터치 패널(touch panel), 터치 키(touch key), 터치 패드(touch pad), 마우스(mouse), 메뉴 버튼(menu button) 등을 포함할 수 있으나, 이에 한정되는 것은 아니다.
통신부(120)는 디코딩 장치(200), 서버 등과 같은 다른 장치와의 통신을 수행하는 구성으로서, 인코딩된 딥 러닝 모델의 비트스트림 등을 송신할 수 있다. 예를 들어, 통신부(120)는 5G(5th generation communication), LTE-A(long term evolution-advanced), LTE(long term evolution), 블루투스, BLE(bluetooth low energe), NFC(near field communication), 와이파이(WiFi) 통신 등의 무선 통신을 수행하거나, 케이블 통신 등의 유선 통신을 수행할 수 있으나, 이에 한정되는 것은 아니다.
디스플레이(130)는 다양한 영상 데이터를 화면으로 표시하는 것으로서, 비발광형 패널이나 발광형 패널로 구성될 수 있다. 예를 들어, 디스플레이(130)는 액정 디스플레이(LCD; liquid crystal display), 발광 다이오드(LED; light emitting diode) 디스플레이, 유기 발광 다이오드(OLED; organic LED) 디스플레이, 마이크로 전자기계 시스템(MEMS; micro electro mechanical systems) 디스플레이, 또는 전자 종이(electronic paper) 디스플레이 등을 포함할 수 있으나, 이에 한정되는 것은 아니다. 또한, 디스플레이(130)는 입력부(120)와 결합되어 터치 스크린(touch screen) 등으로 구현될 수 있다.
메모리(140)는 인코딩 장치(100)의 동작에 필요한 각종 정보를 저장한다. 저장 정보로는 딥 러닝 모델, 후술할 인코딩 방법에 관련된 프로그램 정보 등이 포함될 수 있으나, 이에 한정되는 것은 아니다. 예를 들어, 메모리(140)는 그 유형에 따라 하드디스크 타입(hard disk type), 마그네틱 매체 타입(Sagnetic media type), CD-ROM(compact disc read only memory), 광기록 매체 타입(Optical Media type), 자기-광 매체 타입(Sagneto-optical media type), 멀티미디어 카드 마이크로 타입(Sultimedia card micro type), 플래시 저장부 타입(flash memory type), 롬 타입(read only memory type), 또는 램 타입(random access memory type) 등을 포함할 수 있으나, 이에 한정되는 것은 아니다. 또한, 메모리(140)는 그 용도/위치에 따라 캐시(cache), 버퍼, 주기억장치, 또는 보조기억장치이거나 별도로 마련된 저장 시스템일 수 있으나, 이에 한정되는 것은 아니다.
제어부(150)는 인코딩 장치(100)의 다양한 제어 동작을 수행할 수 있다. 즉, 제어부(150)는 후술할 인코딩 방법의 수행을 제어할 수 있으며, 인코딩 장치(100)의 나머지 구성, 즉 입력부(110), 통신부(120), 디스플레이(130), 메모리(140) 등의 동작을 제어할 수 있다. 예를 들어, 제어부(150)는 하드웨어인 프로세서(processor) 또는 해당 프로세서에서 수행되는 소프트웨어인 프로세스(process) 등을 포함할 수 있으나, 이에 한정되는 것은 아니다.
도 2는 본 발명의 일 실시예에 따른 인코딩 장치(100)에서 딥 러닝 모델의 인코딩을 위한 제어부(150)의 구성을 나타내며, 도 3은 본 발명의 일 실시예에 따른 인코딩 방법의 순서도를 나타낸다. 또한, 도 12는 본 발명의 일 실시예에 따른 인코딩 방법과 디코딩 방법이 수행되는 일 예를 나타낸다.
제어부(150)는 본 발명의 일 실시예에 따른 인코딩 방법의 수행을 제어하며, 도 2에 도시된 바와 같이, 변환부(151), 양자화부(152), 군집화부(153) 및 인코더부(154)를 포함할 수 있다. 예를 들어, 변환부(151), 양자화부(152), 군집화부(153) 및 인코더부(154)는 제어부(150)의 하드웨어 구성이거나, 제어부(150)에서 수행되는 소프트웨어인 프로세스일 수 있으나, 이에 한정되는 것은 아니다.
한편, 딥 러닝 모델은 입력 데이터(또는 입력 데이터 및 출력 데이터 쌍)의 학습 데이터를 통해 딥 러닝 기법에 따라 학습된 모델이다. 예를 들어, 딥 러닝 기법은 Deep Neural Network(DNN), Convolutional Neural Network(CNN), Recurrent Neural Network(RNN), Restricted Boltzmann Machine(RBM), Deep Belief Network(DBN), Deep Q-Networks 등을 포함할 수 있으나, 이에 한정되는 것은 아니다.
딥 러닝 모델은 다수의 레이어(layer)를 포함하여, 입력 데이터와 출력 데이터의 관계에 대한 함수를 가진다. 즉, 딥 러닝 모델에 입력 데이터가 입력되는 경우, 해당 함수에 따른 출력 데이터가 출력될 수 있다. 딥 러닝 모델은 입력 데이터와 출력 데이터 간의 관계를 다수의 층(즉, 레이어)으로 표현하며, 이러한 다수의 표현층을 “신경망(neural network)”라 지칭하기도 한다.
신경망 내의 각 레이어는 적어도 하나 이상의 필터로 이루어지며, 각 필터는 가중치(weight)의 매트릭스(matrix)를 가진다. 즉, 해당 필터의 매트릭스에서 각 원소(픽셀)는 가중치의 값에 해당할 수 있다. 이러한 필터는 2차원 또는 3차원 매트릭스를 가질 수 있다. 즉, 2차원 매트릭스는 총 h'×w'(단, h' 및 w'는 자연수) 개의 가중치 원소를 가지며, 이를 “2차원 텐서(tensor)”라 지칭하기도 한다. 또한, 3차원 매트릭스는 총 h×w×d(단, h, w 및 d은 자연수) 개의 가중치 원소를 가지며, 이를 “3차원 텐서”라 지칭하기도 한다. 만일, 하나의 레이어 내에서 3차원 매트릭스(h×w×d)의 필터가 복수개인 m개(m은 2이상의 자연수)가 구비된 경우, 총 h×w×d×n 개의 가중치 원소를 가지며, 이를 “4차원 텐서”라 지칭하기도 한다.
도 3을 참조하면, 본 발명에 따른 인코딩 방법은 S101 내지 S106을 포함할 수 있다.
종래 기술이 경우, 딥 러닝 모델의 복수 레이어(대규모) 전체에 대해서 한번에 압축 처리 등을 수행하여 그 압축 효율이 떨어질 뿐 아니라, 필요한 레이어 처리 시마다 외부 메모리에 저장된 압축된 딥 러닝 모델 전체를 불러와 디코딩 처리해야 하므로, 그 디코딩 처리가 비효율적일 수밖에 없었다.
반면, 본 발명은 딥 러닝 모델의 복수의 레이어에 대해 각 레이어 별로 S101 내지 S106를 수행할 수 있다. 이에 따라, 본 발명은 레이어 또는 그 필터(소규모) 별로 가지는 특성을 반영하여 다양한 처리를 수행할 수 있으며, 그 결과 압축 효율을 종래 기술에 비해 개선할 수 있다. 또한, 본 발명은 레이어 별로 압축 처리 등을 수행하므로, 필요한 레이어 처리 시마다 외부 메모리에 저장된 압축된 딥 러닝 모델 중 해당 레이어에 대해서만 불러와 디코딩 처리하면 되어, 그 디코딩 처리 효율도 개선할 수 있다.
이하, 본 발명에 따른 인코딩 방법에 대해 보다 상세하게 설명하도록 한다.
먼저, 변환부(151)는 필터의 종류 또는 필터가 포함된 레이어의 종류에 따라 이산 코사인 변환(Discrete Cosine Transform; DCT)을 선택적으로 수행한다(S101, S102, S103). 즉, 필터의 종류 또는 필터가 포함된 레이어의 종류를 확인하여, 해당 종류가 DCT 대상인지 확인한 후(S101), DCT 대상인 경우에 DCT를 수행하며(S102), DCT 대상이 아닌 경우에 S102는 생략하고 S104를 수행한다.
도 4는 3차원 매트릭스의 필터를 복수개 가지는 레이어에 대한 이산 코사인 변환의 일 예를 나타내며, 도 5는 2차원 매트릭스 필터를 가지는 레이어에 대한 이산 코사인 변환의 일 예를 나타낸다.
도 4 및 도 5를 참조하면, S102에서, 변환부(151)는 대규모 원소 매트릭스의 가중치를 가지는 하나 이상의 필터(FL)에 대해 소규모 원소 매트릭스의 단위 영역(FS) 별로 이산 코사인 변환을 수행하여 주파수 영역으로 변환(FS')한다. 도 4에서, n은 자연수이다.
즉, 도 4와 같이 해당 레이어가 3차원 매트릭스(h×w×d)의 필터(FL)(n=1) 또는 해당 차원 매트릭스를 복수개(FL1, …FLn)(n>2) 가지는 경우, 해당 3차원 또는 4차원 텐서가 대규모 원소 매트릭스에 해당하며, 각 3차원 매트릭스에 속한 2차원 매트릭스(h×w)가 단위 영역(FS)에 해당한다. 예를 들어, 이러한 레이어로는 CNN의 컨볼루션 레이어(convolution layer) 등일 수 있으며, 해당 필터(FL)는 컨볼루션 레이어의 필터, 즉 컨볼루션 필터 등일 수 있으나, 이에 한정되는 것은 아니다. 변환부(151)는 이러한 각 단위 영역(FS)의 2차원 매트릭스(h×w)에 대해 DCT를 수행한다. 이때, 변환부(151)에서 DCT 블록도 2차원 매트릭스(h×w)를 가질 수 있으며, 단위 영역(FS)의 2차원 매트릭스(h×w)는 3차원 또는 4차원 텐서 내에서 총 d×n개가 있다. 그 결과, 변환부(151)는 단위 영역(FS)의 2차원 매트릭스(h×w)에 대해 d×n회의 DCT를 수행할 수 있다.
한편, 도 5와 같이 해당 레이어가 2차원 매트릭스(h'×w')의 필터(FL)를 가지는 경우, 해당 2차원 텐서가 대규모 원소 매트릭스에 해당하며, 각 2차원 매트릭스에 속한 소규모의 2차원 매트릭스(h×w)(단, h<h', w<w')가 단위 영역(FS)에 해당한다. 예를 들어, 이러한 레이어로는 CNN의 풀리 커넥티드 레이어(fully connected layer) 등일 수 있으며, 해당 필터(FL)는 풀리 커넥티드 레이어의 필터 등일 수 있으나, 이에 한정되는 것은 아니다. 변환부(151)는 이러한 각 단위 영역(FS)의 2차원 매트릭스(h×w)에 대해 DCT를 수행한다. 이때, 변환부(151)에서 DCT 블록도 2차원 매트릭스(h×w)를 가질 수 있다. 다만, h'는 h의 배수이고, w'도 w의 배수인 것이 바람직하며, 단위 영역(FS)의 2차원 매트릭스(h×w)는 2차원 텐서 내에서 총 (h'/h)×(w'/h)개가 있다. 그 결과, 변환부(151)는 단위 영역(FS)의 2차원 매트릭스(h×w)에 대해 (h'/h)×(w'/h)회의 DCT를 수행할 수 있다.
S102에 따라 DCT 수행될 경우, 공간 영역이 아닌 주파수 영역으로 변환하므로, 각 단위 영역(FS')에 대해서 에너지 집중 현상이 발생될 수 있다. 이러한 에너지 집중 현상이 발생이 고려될 경우, 이후의 S106의 압축 처리 동안에 발생할 수 있는 압축 손실이 최소화될 수 있다. 다만, 필터 또는 레이어의 종류에 따라, DCT를 수행하더라도 에너지 집중 현상이 덜 발생될 수도 있다. 이러한 종류의 필터 또는 레이어에 대해서는 S101에서 DCT 대상이 아닌 것으로 판단하여, DCT 수행 없이 S104를 수행함으로써, 그 처리 속도 등을 향상시킬 수 있다. 이러한 DCT 수행 여부에 대한 정보는 비트스트림의 후술할 NH 또는 LH 등의 헤더에 포함되어 디코딩 장치(200)에 전달될 수 있다.
이후, S104에서, S102의 DCT가 수행된 경우, 양자화부(152)는 변환부(151)의 출력을 양자화(quantization)하여 이산 데이터(discrete data)로 변환함으로써, 양자화된 가중치를 생성할 수 있다. 즉, DCT가 적용된 각 단위 영역(FS')의 원소가 가지는 가중치에 대해 양자화가 수행될 수 있다. 만일, DCT 대상이 아니어서 S102의 DCT가 미 수행된 경우, 양자화부(152)는 필터 매트릭스의 각 원소에 대해 양자화된 가중치를 생성할 수 있다. 즉, DCT가 미 적용된 각 단위 영역(FS)의 원소가 가지는 가중치에 대해 양자화가 수행될 수 있다.
예를 들어, 양자화 수행 시 DCT가 적용 또는 미 적용된 각 가중치가 가지는 32bits의 실수(real number) 데이터를 더 적은 비트의 정수 데이터로 바꿀 수 있으며, 양자화 방식은 스케일링, Clipping, min-max 양자화 등 다양한 방식을 선택할 수 있으나, 이에 한정되는 것은 아니다. 양자화의 방식, 양자화의 정도(할당 비트 수 등)에 대해서는 사용자에 의해 선택 가능할 수 있으며, 해당 양자화에 관련된 정보는 스케일링 팩터(scaling factor)로 비트스트림(bitstream)에 포함될 수 있다.
이후, 군집화부(153)는 양자화부(152)에 의해 양자화가 수행되는 다수의 단위 영역(FS/FS')에 대해 군집화(clustering)를 수행하면서, 각 단위 영역(FS/FS')이 속한 위치에 대한 인덱스 정보를 생성한다(S105).
도 6은 다수의 단위 영역(FS/FS')에 대해 군집화가 수행된 결과인 각 군집(C1, …Ck)(단, k는 2이상의 자연수)의 모습의 일 예를 나타낸다.
즉, 도 6을 참조하면, 군집화부(153)는 다양한 군집화 기법을 사용하여 유사한 특성을 가지는 단위 영역(FS/FS')을 하나의 군집(C)으로 모으며, 복수의 군집(C1, …Ck)을 생성한다. 이러한 군집(C1, …Ck)은 각 단위 영역(FS/FS')이 가지는 가중치의 값(합계, 평균, 분포 등)을 이용하여 구분될 수 있다. 특히, 유사 분포를 가지는 단위 영역(FS/FS')들을 하나의 군집(C)을 모을 수 있다. 다만, 군집(C1, …Ck)의 개수는 비트 단위로 표현하기 용이하게 2w개(단, w는 자연수)인 것이 바람직할 수 있다. 예를 들어, 군집화 기법은 K-Means 군집화 등을 포함할 수 있으나, 이에 한정되는 것은 아니다.
각 군집(C1, …Ck)은 다양한 개수의 단위 영역(FS/FS')를 포함할 수 있다. 특히, 군집화부(153)는 각 군집(C1, …Ck)에 포함된 단위 영역(FS/FS')가 원래 소속된 위치에 대한 정보인 인덱스 정보를 생성한다. 이러한 인덱스 정보는 배열 등의 형태로 저장될 수 있다. 가령, 군집화부(153)는 제1 군집(C1)의 첫번째 단위 영역(FS/FS')이 원래 필터의 어느 위치에 포함되어 있던 것인지에 대한 정보를 인덱스 정보로 생성할 수 있으며, 각 군집(C1, …Ck)에 소속된 모든 단위 영역(FS/FS')에 대한 해당 인덱스 정보를 생성할 수 있다.
이후, 인코더부(154)는 각 군집 C1, …Ck) 별로 엔트로피 코딩(entropy coding) 기법을 적용하여 군집 별 가중치의 압축 코드 및 엔트로피 코딩 테이블(엔트로피 코딩에 대한 관련 정보로, 해당 압축 코드의 디코딩에 따른 비트 재배열 시 필요)을 생성하고, 인덱스 정보에 대해서도 엔트로피 코딩 기법을 적용하여 인덱스 정보의 압축 코드 및 엔트로피 코딩 테이블을 생성한다. 즉, 인코더부(154)는 군집 별 가중치의 압축 코드, 인덱스 정보의 압축 코드 및 각 엔트로피 코딩 테이블을 포함하는 비트스트림(bitstream)을 생성할 수 있다.
예를 들어, 엔트로피 코딩은 허프만 코딩(Huffman coding), 범위 코딩(Range coding), 산술 코딩(Arithmetic coding) 등을 포함할 수 있으나, 이에 한정되는 것은 아니다. 다만, 허프만 코딩을 수행할 경우, 인코더부(154)는 군집 별 가중치에 대한 허프만 코드, 인덱스 정보에 대한 허프만 코드, 각 허프만 코드에 대한 관련 정보인 허프만 테이블을 각각 생성할 수 있다. 특히, 군집 별로 허프만 코딩이 적용되므로, 군집 개수만큼의 허프만 코드와 허프만 테이블이 생성될 수 있다.
이와 같이 군집 별로 엔트로피 코딩이 적용됨에 따라, 서로 유사한 특성을 가지는 단위 영역(FS/FS')의 가중치들 별로 엔트로피 코딩이 적용될 수 있다. 그 결과, 본 발명은 유사 가중치의 특성을 반영할 수 있어, 엔트로피 코딩에 필요한 심볼의 범위를 줄일 수 있으며, 엔트로피 코딩이 더 효율적으로 수행될 수 있어, 그 압축 효율을 개선할 수 있다.
도 7은 어느 한 군집(Cs)(단, s는 2이상 k 이하인 자연수)에서 원소 위치 별로 엔트로피 코딩 기법이 수행되는 모습의 일 예를 나타낸다.
특히, 각 군집(C1, …Ck)에서 동일 위치의 원소(픽셀)는 더욱 유사한 가중치의 특성을 가질 수 있다. 즉, 군집에서 동일 위치의 원소는 유사한 가중치의 값을 가질 확률이 크다.
예를 들어, 단위 영역(FS/FS')이 2×2의 2차원 매트릭스를 가진 경우, 하나의 군집(Cs)에서, 각 단위 영역(FS/FS')의 첫번째 원소(1×1 번째 원소)들은 서로 더욱 유사한 가중치의 특성을 가질 확률이 크다. 이는 두번째 원소(1×2 번째 원소)들, 세번째 원소(2×1 번째 원소)들, 네번째 원소(2×2 번째 원소)들도 마찬가지이다.
이러한 위치적 가중치 특성을 반영하기 위해, 도 7을 참조하면, 인코더부(154)는 하나의 군집(Cs)에 대해서도 그 군집(Cs)에 포함된 다수의 단위 영역(FS/FS')이 가지는 각 2차원 매트릭스에서 동일 위치의 가중치 별로 엔트로피 코딩 기법을 적용할 수 있다.
예를 들어, 단위 영역(FS/FS')이 2×2의 2차원 매트릭스를 가진 경우, 하나의 군집(Cs)에서, 각 단위 영역(FS/FS')의 첫번째 원소(1×1 번째 원소)들에 대해서 엔트로피 코딩 기법을 적용하고, 두번째 원소(1×2 번째 원소)들에 대해서 엔트로피 코딩 기법을 적용하며, 세번째 원소(2×1 번째 원소)들에 대해서 엔트로피 코딩 기법을 적용하고, 네번째 원소(2×2 번째 원소)들에 대해서 엔트로피 코딩 기법을 적용할 수 있다. 또한, 이러한 처리는 각 군집(C1, …Ck)에 대해서 모두 수행될 수 있다.
이 경우, 인코더부(154)는 각 군집의 원소 위치 별 가중치에 대한 압축 코드(가령, 각 군집의 원소 위치 별 가중치에 대한 허프만 코드)를 생성할 수 있으며, 각 군집의 원소 위치 별 가중치에 대한 엔트로피 코딩 테이블(가령, 각 군집의 원소 위치 별 가중치에 대한 허프만 테이블)을 생성할 수 있다.
이와 같이 하나의 군집에 대해서도 원소 위치 별로 엔트로피 코딩이 적용됨에 따라, 서로 더욱 유사한 특성을 가지는 동일 원소 위치의 가중치들 별로 엔트로피 코딩이 적용될 수 있다. 그 결과, 본 발명은 유사 가중치의 특성을 보다 더 반영할 수 있으므로, 엔트로피 코딩에 필요한 심볼의 범위를 더욱 줄일 수 있으며, 엔트로피 코딩이 더욱 효율적으로 수행될 수 있어, 그 압축 효율을 더욱 개선할 수 있다.
예를 들어, 3x3의 2차원 매트릭스의 필터로 이루어진 레이어가 16개의 군집(C1, …C16)으로 나눠진다면, 16x3x3개의 가중치 압축 코드(가령, 허프만 코드)와 엔트로피 코딩 테이블(가령, 허프만 테이블)이 생성될 수 있다.
엔트로피 코딩으로 압축된 가중치와 엔트로피 코딩 테이블을 생성하고 난 후, 군집화 때 생성된 인덱스 정보에도 엔트로피 코딩이 수행된다. 각 인덱스 정보는 2q bits(단, q는 자연수)로 표현될 수 있으며, 필터당 1개의 인덱스 배열이 생성될 수 있다.
또한, 본 발명은 각 레이어에 대해서, S101 내지 S106을 각각 수행하며, 레이어 별로, 가중치에 대한 압축 코드 및 엔트로피 코딩 테이블과, 인덱스 정보에 대한 압축 코드 및 엔트로피 코딩 테이블을 생성한다.
도 8은 본 발명의 일 실시예에 따른 인코딩 장치(100)에서 생성된 비트스트림의 구성을 나타낸다.
도 8을 참조하면, 인코딩 장치(100)에서 생성된 비트스트림은 각 레이어 별로 구분된 구조를 가질 수 있다. 즉, 비트스트림은 딥 러닝 모델에 대한 개괄적인 정보를 담은 헤더(NH)와, 딥 러닝 모델을 이루는 각 레이어에 대한 구체적인 정보(L1, …Lz)(단, z는 2이상의 자연수)를 각각 포함할 수 있다. 이때, 딥 러닝 모델은 z개의 레이어를 포함한다. NH는 딥 러닝 모델의 종류, 모델명, 구조, 스케일링 팩터, DCT 적용 여부 등에 대한 정보를 포함할 수 있으며, 구조 정보로는 딥 러닝 모델을 이루는 레이어의 개수, 종류, 위치 등에 대한 정보를 포함할 수 있다.
L1, …Lz는 각각 해당 레이어에 대한 개괄적인 정보를 담은 헤더 정보(LH)와, 해당 레이어에 포함된 필터에 대한 구체적인 정보(LD)를 포함할 수 있다. LH는 해당 레이어에 포함된 필터의 개수, 종류, 매트릭스의 구조, DCT 적용 여부 등에 대한 정보를 포함할 수 있으며, LD는 CT, C, WT, W 등을 포함할 수 있다. 이때, C는 인덱스 정보의 압축 코드(가령, 인덱스 정보의 허프만 코드)를 포함할 수 있고, CT는 인덱스 정보의 엔트로피 코딩 테이블(가령, 인덱스 정보의 허프만 테이블)를 포함할 수 있다, 또한, W는 군집 별 가중치의 압축 코드(가령, 군집 별 가중치의 허프만 코드)를 포함할 수 있으며, WT는 군집 별 가중치의 엔트로피 코딩 테이블 (가령, 군집 별 가중치의 허프만 테이블)을 포함할 수 있다.
물론, 군집(Cs)에서 단위 영역(FS/FS')의 원소의 위치적 가중치 특성을 반영하여 인코딩이 수행되는 경우, W는 군집의 원소 위치 별 가중치에 대한 압축 코드(가령, 군집의 원소 위치 별 가중치에 대한 허프만 코드)를 포함할 수 있으며, WT는 군집의 원소 위치 별 가중치에 대한 엔트로피 코딩 테이블(가령, 군집의 원소 위치 별 가중치에 대한 허프만 테이블)을 포함할 수 있다.
도 9는 본 발명의 일 실시예에 따른 디코딩 장치(200)의 블록 구성도를 나타낸다.
본 발명의 일 실시예에 따른 디코딩 장치(200)는 수신된 비트스트림의 데이터를 압축 해제 처리하도록 디코딩(decoding)하여 딥 러닝 모델을 복원하는 장치로서, 컴퓨팅(computing)이 가능한 전자 장치 또는 컴퓨팅 네트워크일 수 있다.
예를 들어, 전자 장치는 데스크탑 PC(desktop personal computer), 랩탑 PC(laptop personal computer), 태블릿 PC(tablet personal computer), 넷북 컴퓨터(netbook computer), 워크스테이션(workstation), PDA(personal digital assistant), 스마트폰(smartphone), 스마트패드(smartpad), 또는 휴대폰(mobile phone), 등일 수 있으나, 이에 한정되는 것은 아니다.
이러한 디코딩 장치(200)는, 도 9에 도시된 바와 같이, 입력부(210), 통신부(220), 디스플레이(230), 메모리(240) 및 제어부(250)를 포함할 수 있다.
입력부(210)는 다양한 사용자의 입력에 대응하여, 입력데이터를 발생시키며, 다양한 입력수단을 포함할 수 있다. 예를 들어, 입력부(210)는 키보드(key board), 키패드(key pad), 돔 스위치(dome switch), 터치 패널(touch panel), 터치 키(touch key), 터치 패드(touch pad), 마우스(mouse), 메뉴 버튼(menu button) 등을 포함할 수 있으나, 이에 한정되는 것은 아니다.
통신부(220)는 인코딩 장치(100), 서버 등과 같은 다른 장치와의 통신을 수행하는 구성으로서, 인코딩된 딥 러닝 모델의 비트스트림 등을 수신할 수 있다. 예를 들어, 통신부(220)는 5G(5th generation communication), LTE-A(long term evolution-advanced), LTE(long term evolution), 블루투스, BLE(bluetooth low energe), NFC(near field communication), 와이파이(WiFi) 통신 등의 무선 통신을 수행하거나, 케이블 통신 등의 유선 통신을 수행할 수 있으나, 이에 한정되는 것은 아니다.
디스플레이(230)는 다양한 영상 데이터를 화면으로 표시하는 것으로서, 비발광형 패널이나 발광형 패널로 구성될 수 있다. 예를 들어, 디스플레이(230)는 액정 디스플레이(LCD; liquid crystal display), 발광 다이오드(LED; light emitting diode) 디스플레이, 유기 발광 다이오드(OLED; organic LED) 디스플레이, 마이크로 전자기계 시스템(MEMS; micro electro mechanical systems) 디스플레이, 또는 전자 종이(electronic paper) 디스플레이 등을 포함할 수 있으나, 이에 한정되는 것은 아니다. 또한, 디스플레이(130)는 입력부(120)와 결합되어 터치 스크린(touch screen) 등으로 구현될 수 있다.
메모리(240)는 디코딩 장치(200)의 동작에 필요한 각종 정보를 저장한다. 저장 정보로는 수신한 비트스트림, 복원된 딥 러닝 모델, 후술할 디코딩 방법에 관련된 프로그램 정보 등이 포함될 수 있으나, 이에 한정되는 것은 아니다. 예를 들어, 메모리(240)는 그 유형에 따라 하드디스크 타입(hard disk type), 마그네틱 매체 타입(Sagnetic media type), CD-ROM(compact disc read only memory), 광기록 매체 타입(Optical Media type), 자기-광 매체 타입(Sagneto-optical media type), 멀티미디어 카드 마이크로 타입(Sultimedia card micro type), 플래시 저장부 타입(flash memory type), 롬 타입(read only memory type), 또는 램 타입(random access memory type) 등을 포함할 수 있으나, 이에 한정되는 것은 아니다. 또한, 메모리(140)는 그 용도/위치에 따라 캐시(cache), 버퍼, 주기억장치, 또는 보조기억장치이거나 별도로 마련된 저장 시스템일 수 있으나, 이에 한정되는 것은 아니다.
제어부(250)는 디코딩 장치(200)의 다양한 제어 동작을 수행할 수 있다. 즉, 제어부(250)는 후술할 디코딩 방법의 수행을 제어할 수 있으며, 디코딩 장치(200)의 나머지 구성, 즉 입력부(210), 통신부(220), 디스플레이(230), 메모리(240) 등의 동작을 제어할 수 있다. 예를 들어, 제어부(250)는 하드웨어인 프로세서(processor) 또는 해당 프로세서에서 수행되는 소프트웨어인 프로세스(process) 등을 포함할 수 있으나, 이에 한정되는 것은 아니다.
도 10은 본 발명의 일 실시예에 따른 디코딩 장치(200)에서 인코딩된 딥 러닝 모델의 디코딩을 위한 제어부(250)의 구성을 나타내며, 도 11은 본 발명의 일 실시예에 따른 디코딩 방법의 순서도를 나타낸다.
제어부(250)는 본 발명의 일 실시예에 따른 디코딩 방법의 수행을 제어하며, 도 10에 도시된 바와 같이, 디코더부(251), 역양자화부(252) 및 역변환부(253)를 포함할 수 있다. 예를 들어, 디코더부(251), 역양자화부(252), 역변환부(253)는 제어부(250)의 하드웨어 구성이거나, 제어부(250)에서 수행되는 소프트웨어인 프로세스일 수 있으나, 이에 한정되는 것은 아니다.
도 11을 참조하면, 본 발명에 따른 디코딩 방법은 S201 내지 S203을 포함할 수 있다. 즉, S201 내지 S203은 상술한 S101 내지 S106의 반대 과정에 해당한다.
먼저, 디코더부(251)는 비트스트림에 포함된 각 압축 코드에 대해서 엔트로피 디코딩(entropy decoding) 기법을 적용하여 디코딩 데이터를 생성한다(S201). 즉, 군집 별 가중치의 압축 코드에 대해 군집 별로 엔트로피 디코딩 기법을 적용하여 제1 디코딩 데이터를 생성한다. 또한, 인덱스 정보의 압축 코드에 대해 엔트로피 디코딩 기법을 적용하여 제2 디코딩 데이터를 생성한다.
이후, 역양자화부(252)는 제1 디코딩 데이터를 역양자화(de-quantization)하여 세분화된 데이터로 변환함으로써 역양자화된 가중치를 생성할 수 있다(S202). 이때, NH 등에 포함된 스케일링 팩터를 참조하여, 역양자화가 수행될 수 있다.
이후, 역변환부(253)는 필터 또는 레이어의 종류에 따라 역이산 코사인 변환(Inverse Discrete Cosine Transform; IDCT)을 선택적으로 수행할 수 있다(S203). S203에서, 인코딩 장치(100)에서 DCT가 수행된 필터 또는 레이어의 종류인 경우, 단위 영역 별로 IDCT를 수행하여 주파수 영역의 역양자화된 가중치를 공간 영역으로 변환할 수 있다. 반면, 인코딩 장치(100)에서 DCT가 미 수행된 필터 또는 레이어의 종류인 경우, 해당 IDCT는 생략될 수 있다.
마지막으로 IDCT (Inverse Discrete Cosine Transform) 과정을 통해 네트워크 계층 별 가중치를 복원한다. IDCT의 경우, 인코더에서 DCT를 On 했을 경우에만 수행되며 DCT를 수행하지 않은 경우, IDCT는 수행되지 않는다.
한편, 디코더부(251), 역변환부(253) 또는 제어부(250)의 다른 구성은 제2 디코딩 데이터를 이용하여 제1 디코딩 데이터의 각 단위 영역이 필터에서 속한 위치를 매칭시킬 수 있다. 이러한 과정은 S201 내지 S203의 중 어느 한 과정이나 그 후 다른 과정에서 처리될 수 있다. 이러한 매칭 과정을 통해 본 발명은 해당 필터를 복원시킬 수 있다.
이러한 S201 내지 S203과, 매칭 과정은 각 필터 및 레이어 별로 수행될 수 있으며, 최종 레이어까지 해당 과정이 수행되면 최종적으로 압축되었던 딥 러닝 모델에 대한 복원이 가능하다.
인코딩 장치(100)에서와 달리, 디코딩 장치(200)에서는 군집화 해제에 대한 처리가 필요 없다. 이는 매칭 과정을 통해 디코딩된 각 군집의 가중치에 대한 데이터가 그 인덱스 정보를 참고하여 해당 필터의 위치로 복원될 수 있기 때문이다. 이에 따라, 본 발명은 인코딩 방법 대비 디코딩 방법의 연산량이 적어, 저사양의 디코딩 장치(200)로도 해당 디코딩 방법의 수행이 가능한 이점이 있다.
본 발명의 상세한 설명에서는 구체적인 실시 예에 관하여 설명하였으나 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물론이다. 그러므로 본 발명의 범위는 설명된 실시 예에 국한되지 않으며, 후술되는 청구범위 및 이 청구범위와 균등한 것들에 의해 정해져야 한다.
100: 인코딩 장치 200: 디코딩 장치
110, 210: 입력부 120, 220: 통신부
130, 230: 디스플레이부 140, 240: 메모리
150, 250: 제어부 151: 변환부
152: 양자화부 153: 군집화부
154: 인코더부 251: 디코더부
252: 역양자화부 253: 역변환부

Claims (18)

  1. 딥 러닝 모델(deep learning model)에서 대규모 원소 매트릭스(matrix)의 가중치를 가지는 하나 이상의 필터에 대해 소규모 원소 매트릭스의 단위 영역 별로 이산 코사인 변환(DCT)을 수행하여 주파수 영역으로 변환하는 변환부;
    상기 변환부의 출력을 양자화(quantization)하여 이산 데이터(discrete data)로 변환함으로써 양자화된 가중치를 생성하는 양자화부;
    다수의 단위 영역에 대해 군집화하고, 각 단위 영역이 속한 위치에 대한 인덱스 정보를 생성하는 군집화부; 및
    군집 별로 엔트로피 코딩(entropy coding) 기법을 적용하고 상기 인덱스 정보에 대해서도 엔트로피 코딩 기법을 적용하여, 군집 별 가중치의 압축 코드와 인덱스 정보의 압축 코드를 각각 포함하는 비트스트림(bitstream)을 생성하는 인코더부;
    를 포함하는 인코딩 장치.
  2. 제1항에 있어서,
    상기 딥 러닝 모델에 포함된 복수의 레이어(layer)에 대해 레이어 별로 상기 변환부, 상기 군집화부 및 상기 인코더부의 동작이 수행되는 인코딩 장치.
  3. 제2항에 있어서,
    상기 군집화부는 레이어 별로 상기 인덱스 정보를 생성하며,
    상기 인코더부는 레이어 별로 상기 압축 코드를 구분한 비트스트림을 생성하는 인코딩 장치.
  4. 제1항에 있어서,
    상기 필터는 3차원 매트릭스(h×w×d)(단, h, w 및 d은 자연수)의 가중치를 포함하며,
    상기 단위 영역은 상기 3차원 매트릭스에 속한 2차원 매트릭스(h×w)인 인코딩 장치.
  5. 제4항에 있어서,
    상기 변환부는 복수의 필터에 대한 단위 영역을 처리하는 인코딩 장치.
  6. 제4항 또는 제5항에 있어서,
    상기 필터는 컨볼루션 레이어(convolution layer)의 컨볼루션 필터인 인코딩 장치.
  7. 제1항에 있어서,
    상기 필터는 2차원 매트릭스(h'×w')(단, h' 및 w'는 자연수)의 가중치를 포함하며,
    상기 단위 영역은 상기 2차원 매트릭스에 포함된 소단위 2차원 매트릭스(h×w)(단, h 및 w는 자연수이고, h<h', w<w')인 인코딩 장치.
  8. 제7항에 있어서,
    상기 필터는 풀리 커넥티드 레이어(fully connected layer)의 필터인 인코딩 장치.
  9. 제1항에 있어서,
    상기 인코더부는 하나의 군집에 대해 그 군집에 포함된 다수의 단위 영역이 가지는 각 2차원 매트릭스에서 동일 위치의 가중치 엔트로피 코딩 기법을 적용하는 인코딩 장치.
  10. 제1항에 있어서,
    상기 변환부는 필터의 종류 또는 필터가 포함된 레이어의 종류에 따라 이산 코사인 변환을 선택적으로 수행하며,
    상기 양자화부는 변환부에서 이산 코사인 변환이 미수행될 경우 해당 필터의 각 가중치에 대한 양자화를 공간 영역에서 수행하는 인코딩 장치.
  11. 딥 러닝 모델(deep learning model)에서 매트릭스(matrix)의 가중치를 가지는 하나 이상의 필터를 포함한 레이어에 대해 레이어 별로 이산 코사인 변환(DCT)을 수행하되, 레이어 또는 필터의 종류에 따라 이산 코사인 변환을 선택적으로 수행하여 주파수 영역으로 변환하는 변환부;
    상기 변환부의 출력을 양자화(quantization)하여 이산 데이터(discrete data)로 변환함으로써 양자화된 가중치를 생성하며, 변환부에서 이산 코사인 변환이 미수행될 경우 해당 필터의 각 가중치에 대한 양자화를 공간 영역에서 수행하는 양자화부; 및
    레이어 별로 엔트로피 코딩(entropy coding) 기법을 적용하여 레이어 별 가중치의 압축 코드를 포함하는 비트스트림(bitstream)을 생성하는 인코더부;
    를 포함하는 인코딩 장치.
  12. 군집 별 가중치의 압축 코드와 인덱스 정보의 압축 코드를 포함하는 인코딩 코드에 대해 디코딩을 수행하는 장치로서,
    상기 군집 별 가중치의 압축 코드에 대해 군집 별로 엔트로피 디코딩(entropy decoding) 기법을 적용하여 제1 디코딩 데이터를 생성하고, 딥 러닝 모델(deep learning model)의 대규모 원소 매트릭스(matrix)의 가중치를 가지는 하나 이상의 필터에서 소규모 원소 매트릭스의 각 단위 영역이 속한 위치를 나타내는 상기 인덱스 정보의 압축 코드에 대해 엔트로피 디코딩 기법을 적용하여 제2 디코딩 데이터를 생성하는 디코더부;
    제1 디코딩 데이터를 역양자화(de-quantization)하여 세분화된 데이터로 변환함으로써 역양자화된 가중치를 생성하는 역양자화부; 및
    단위 영역 별로 역이산 코사인 변환(IDCT)을 수행하여 주파수 영역의 역양자화된 가중치를 공간 영역으로 변환하는 역변환부;
    를 포함하며,
    상기 제2 디코딩 데이터를 이용하여 상기 제1 디코딩 데이터의 각 단위 영역이 상기 필터에서 속한 위치를 매칭시켜 상기 필터를 복원하는 디코딩 장치.
  13. 제12항에 있어서,
    상기 역변환부는 필터의 종류 또는 필터가 포함된 레이어의 종류에 따라 역이산 코사인 변환을 선택적으로 수행하는 디코딩 장치.
  14. 딥 러닝 모델(deep learning model)에서 매트릭스(matrix)의 가중치를 가지는 하나 이상의 필터를 포함한 레이어에 대해 레이어 별 가중치의 압축 코드를 포함하는 인코딩 코드에 대해 디코딩을 수행하는 장치로서,
    상기 레이어 별 가중치의 압축 코드에 대해 레이어 별로 엔트로피 디코딩(entropy decoding) 기법을 적용하여 디코딩 데이터를 생성하는 디코더부;
    디코딩 데이터를 역양자화(de-quantization)하여 세분화된 데이터로 변환함으로써 역양자화된 가중치를 생성하는 역양자화부; 및
    단위 영역 별로 역이산 코사인 변환(IDCT)을 수행하여 주파수 영역의 역양자화된 가중치를 공간 영역으로 변환하되, 레이어 또는 필터의 종류에 따라 역이산 코사인 변환을 선택적으로 수행하는 역변환부;
    를 포함하는 디코딩 장치.
  15. 전자 장치에 의해 수행되는 인코딩 방법으로서,
    딥 러닝 모델(deep learning model)에서 대규모 원소 매트릭스(matrix)의 가중치를 가지는 하나 이상의 필터에 대해 소규모 원소 매트릭스의 단위 영역 별로 이산 코사인 변환(DCT)을 수행하여 주파수 영역으로 변환하는 단계;
    상기 DCT의 수행에 따른 출력을 양자화(quantization)하여 이산 데이터(discrete data)로 변환함으로써 양자화된 가중치를 생성하는 단계;
    다수의 단위 영역에 대해 군집화하고, 각 단위 영역이 속한 위치에 대한 인덱스 정보를 생성하는 단계; 및
    군집 별로 엔트로피 코딩(entropy coding) 기법을 적용하고 상기 인덱스 정보에 대해서도 엔트로피 코딩 기법을 적용하여, 군집 별 가중치의 압축 코드와 인덱스 정보의 압축 코드를 각각 포함하는 비트스트림을 생성하는 단계;
    를 포함하는 인코딩 방법.
  16. 전자 장치에 의해 수행되는 인코딩 방법으로서,
    딥 러닝 모델(deep learning model)에서 매트릭스(matrix)의 가중치를 가지는 하나 이상의 필터를 포함한 레이어에 대해 레이어 별로 이산 코사인 변환(DCT)을 수행하되, 레이어 또는 필터의 종류에 따라 이산 코사인 변환을 선택적으로 수행하여 주파수 영역으로 변환하는 단계;
    상기 이산 코사인 변환의 수행에 따른 출력을 양자화(quantization)하여 이산 데이터(discrete data)로 변환함으로써 양자화된 가중치를 생성하며, 상기 이산 코사인 변환이 미수행될 경우 해당 필터의 각 가중치에 대한 양자화를 공간 영역에서 수행하는 단계; 및
    레이어 별로 엔트로피 코딩(entropy coding) 기법을 적용하여 레이어 별 가중치의 압축 코드를 포함하는 비트스트림(bitstream)을 생성하는 단계;
    를 포함하는 인코딩 방법.
  17. 전자 장치에 의해 수행되며, 군집 별 가중치의 압축 코드와 인덱스 정보의 압축 코드를 포함하는 인코딩 코드에 대한 디코딩 방법으로서,
    상기 군집 별 가중치의 압축 코드에 대해 군집 별로 엔트로피 디코딩(entropy decoding) 기법을 적용하여 제1 디코딩 데이터를 생성하고, 딥 러닝 모델(deep learning model)의 대규모 원소 매트릭스(matrix)의 가중치를 가지는 하나 이상의 필터에서 소규모 원소 매트릭스의 각 단위 영역이 속한 위치를 나타내는 상기 인덱스 정보의 압축 코드에 대해 엔트로피 디코딩 기법을 적용하여 제2 디코딩 데이터를 생성하는 단계;
    제1 디코딩 데이터를 역양자화(de-quantization)하여 세분화된 데이터로 변환함으로써 역양자화된 가중치를 생성하는 단계; 및
    단위 영역 별로 역이산 코사인 변환(IDCT)을 수행하여 주파수 영역의 역양자화된 가중치를 공간 영역으로 변환하는 단계;
    를 포함하며,
    상기 제2 디코딩 데이터를 이용하여, 상기 제1 디코딩 데이터의 각 단위 영역이 상기 필터에서 속한 위치를 매칭시켜 상기 필터를 복원하는 디코딩 방법.
  18. 전자 장치에 의해 수행되며, 딥 러닝 모델(deep learning model)에서 매트릭스(matrix)의 가중치를 가지는 하나 이상의 필터를 포함한 레이어에 대해 레이어 별 가중치의 압축 코드를 포함하는 인코딩 코드에 대한 디코딩 방법으로서,
    상기 레이어 별 가중치의 압축 코드에 대해 레이어 별로 엔트로피 디코딩(entropy decoding) 기법을 적용하여 디코딩 데이터를 생성하는 단계;
    디코딩 데이터를 역양자화(de-quantization)하여 세분화된 데이터로 변환함으로써 역양자화된 가중치를 생성하는 단계; 및
    단위 영역 별로 역이산 코사인 변환(IDCT)을 수행하여 주파수 영역의 역양자화된 가중치를 공간 영역으로 변환하되, 레이어 또는 필터의 종류에 따라 역이산 코사인 변환을 선택적으로 수행하는 단계;
    를 포함하는 디코딩 방법.
KR1020200108299A 2020-08-27 2020-08-27 인코딩, 디코딩 장치 및 방법 KR102394951B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200108299A KR102394951B1 (ko) 2020-08-27 2020-08-27 인코딩, 디코딩 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200108299A KR102394951B1 (ko) 2020-08-27 2020-08-27 인코딩, 디코딩 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20220027435A KR20220027435A (ko) 2022-03-08
KR102394951B1 true KR102394951B1 (ko) 2022-05-09

Family

ID=80812450

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200108299A KR102394951B1 (ko) 2020-08-27 2020-08-27 인코딩, 디코딩 장치 및 방법

Country Status (1)

Country Link
KR (1) KR102394951B1 (ko)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101715118B1 (ko) 2016-10-26 2017-03-10 가천대학교 산학협력단 문서 감정 분류용 딥러닝 인코딩 장치 및 방법.
WO2019009449A1 (ko) * 2017-07-06 2019-01-10 삼성전자 주식회사 영상을 부호화/복호화 하는 방법 및 그 장치
KR102535361B1 (ko) * 2017-10-19 2023-05-24 삼성전자주식회사 머신 러닝을 사용하는 영상 부호화기 및 그것의 데이터 처리 방법
KR20190116067A (ko) * 2018-04-03 2019-10-14 한국전자통신연구원 딥 러닝에 기반하여 생성된 참조 프레임을 이용하는 인터 예측을 위한 방법 및 장치

Also Published As

Publication number Publication date
KR20220027435A (ko) 2022-03-08

Similar Documents

Publication Publication Date Title
CN110520870B (zh) 用于具有动态向量长度和码本大小的高吞吐量向量去量化的灵活硬件
CN112437930A (zh) 以熟练的推理速度和功耗,生成神经网络的压缩表示
US11610124B2 (en) Learning compressible features
JP7408799B2 (ja) ニューラルネットワークモデルの圧縮
WO2022028197A1 (zh) 一种图像处理方法及其设备
JP2022525897A (ja) ニューラルネットワークモデルの圧縮/解凍のための方法および装置
US20230186927A1 (en) Compressing audio waveforms using neural networks and vector quantizers
Ko et al. Design and analysis of a neural network inference engine based on adaptive weight compression
US20190348999A1 (en) Method and apparatus for compression and decompression of a numerical file
KR102394951B1 (ko) 인코딩, 디코딩 장치 및 방법
CN114077844A (zh) 一种数据处理方法及装置
Sun et al. Efficient vector quantization using genetic algorithm
Malach et al. Hardware-based real-time deep neural network lossless weights compression
CN113038134B (zh) 一种图片处理方法、智能终端及存储介质
Vooturi et al. Efficient inferencing of compressed deep neural networks
Liu et al. Novel activation function with pixelwise modeling capacity for lightweight neural network design
Veda Sai Rochishna et al. Lossless Image Compression Using Machine Learning
Liu et al. Index compression for vector quantisation using modified coding tree assignment scheme
CN111294055B (zh) 一种基于自适应字典的数据压缩的编解码方法
Adate et al. Analysing image compression using generative adversarial networks
KR20230158597A (ko) 신경 이미지 압축에서의 온라인 트레이닝 기반 인코더 튜닝
JP2022182225A (ja) データ処理システムおよびデータ処理方法
Fonteles et al. High dimension lattice vector quantizer design for generalized gaussian distributions
Krishnamoorthy et al. Low bit-rate multi stage vector quantization based on energy clustered training set
Chen et al. Adaptive VQVAE: a learning-based image compression framework with vector quantization

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant