KR20200050284A - 영상 적응적 양자화 테이블을 이용한 영상의 부호화 장치 및 방법 - Google Patents

영상 적응적 양자화 테이블을 이용한 영상의 부호화 장치 및 방법 Download PDF

Info

Publication number
KR20200050284A
KR20200050284A KR1020180133137A KR20180133137A KR20200050284A KR 20200050284 A KR20200050284 A KR 20200050284A KR 1020180133137 A KR1020180133137 A KR 1020180133137A KR 20180133137 A KR20180133137 A KR 20180133137A KR 20200050284 A KR20200050284 A KR 20200050284A
Authority
KR
South Korea
Prior art keywords
image
machine learning
learning model
training
quantization table
Prior art date
Application number
KR1020180133137A
Other languages
English (en)
Other versions
KR102621118B1 (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 KR1020180133137A priority Critical patent/KR102621118B1/ko
Priority to US16/671,286 priority patent/US11122267B2/en
Publication of KR20200050284A publication Critical patent/KR20200050284A/ko
Application granted granted Critical
Publication of KR102621118B1 publication Critical patent/KR102621118B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/241Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • G06N20/10Machine learning using kernel methods, e.g. support vector machines [SVM]
    • 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/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/764Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
    • 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/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • 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/18Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a set of transform coefficients
    • 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/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/196Methods 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 being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters

Landscapes

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

Abstract

영상으로부터 복수의 패치를 획득하는 단계; 복수의 패치 각각에 대응하는 복수의 변환 계수 그룹을 획득하는 단계; 복수의 변환 계수 그룹 각각에 포함된 변환 계수들에 대응하는 입력 값들을 머신 러닝 모델에 입력하는 단계; 머신 러닝 모델에서 출력되는 양자화 테이블을 이용하여 영상에 대응하는 변환 계수들을 양자화하는 단계; 및 양자화 테이블에 대한 정보 및 양자화 결과 생성된 데이터를 포함하는 비트스트림을 생성하는 단계를 포함하는 것을 특징으로 하는 일 실시예에 따른 영상의 부호화 방법이 개시된다.

Description

영상 적응적 양자화 테이블을 이용한 영상의 부호화 장치 및 방법{ENCODING APPARATUS AND METHOD OF IMAGE USING QUANTIZATION TABLE ADAPTIVE TO IMAGE}
본 개시는 영상의 부호화 분야에 관한 것이다. 보다 구체적으로, 본 개시는 부호화하고자 하는 영상에 대해 적응적으로 생성된 양자화 테이블을 이용하여 영상을 부호화하는 방법 및 장치에 관한 것이다.
고해상도 또는 고화질의 비디오 컨텐트를 재생, 저장할 수 있는 하드웨어의 개발 및 보급에 따라, 고해상도 또는 고화질의 비디오 컨텐트를 효과적으로 부호화하거나 복호화하는 압축 방식의 필요성이 증대하고 있다.
특히, 디지털 영상 신호의 경우 정보량이 매우 방대하기 때문에 정보의 저장과 검색, 전송 등을 보다 효율적으로 하기 위해서는 영상 데이터를 압축하는 것이 필수적이다.
따라서, 영상 데이터에 대한 압축 기법들이 많이 개발되어 왔으며, 영상 압축 기법과 관련하여 정지 영상 압축 방식의 국제 표준 규격인 JPEG(Joint Photographic Experts Group)방식이 이용되고 있다. JPEG 방식은 널리 호환되는 이미지 압축 방식이지만, 최근의 다른 이미지 압축 방식에 비해 압축률이 높지 않다는 문제점이 있다.
일 실시예에 따른 영상 적응적 양자화 테이블을 이용한 영상의 부호화 장치 및 방법은 낮은 비트레이트 대비 고화질로 영상을 부호화하는 것을 기술적 과제로 한다.
일 실시예에 따른 영상의 부호화 방법은,
영상으로부터 복수의 패치를 획득하는 단계; 상기 복수의 패치 각각에 대응하는 복수의 변환 계수 그룹을 획득하는 단계; 상기 복수의 변환 계수 그룹 각각에 포함된 변환 계수들에 대응하는 입력 값들을 머신 러닝 모델에 입력하는 단계; 상기 머신 러닝 모델에서 출력되는 양자화 테이블을 이용하여 상기 영상에 대응하는 변환 계수들을 양자화하는 단계; 및 상기 양자화 테이블에 대한 정보 및 상기 양자화 결과 생성된 데이터를 포함하는 비트스트림을 생성하는 단계를 포함할 수 있다.
일 실시예에서, 상기 머신 러닝 모델은, 상기 입력 값들을 입력받는 입력 FCL(full connected layer) 및 상기 양자화 테이블에 포함된 엘리먼트 값들을 출력하는 출력 FCL을 포함하되, 상기 입력 FCL의 입력 노드들의 개수는 상기 입력 값들의 개수에 대응하고, 상기 출력 FCL의 출력 노드들의 개수는 상기 양자화 테이블에 포함된 엘리먼트들의 개수에 대응할 수 있다.
일 실시예에서, 상기 복수의 패치를 획득하는 단계는, 소정 크기로 상기 영상을 분할하여 상기 복수의 패치를 획득하는 단계를 포함할 수 있다.
일 실시예에서, 상기 영상을 상기 소정 크기로 분할할 때, 상기 영상 내 서로 인접한 소정 크기의 분할 영역들의 일부가 중첩될 수 있다.
일 실시예에서, 상기 복수의 패치를 획득하는 단계는, 상기 영상에 포함된 픽셀들을 소정 순서대로 상기 복수의 패치 각각에 번갈아 할당하여 상기 복수의 패치를 획득하는 단계를 포함할 수 있다.
일 실시예에서, 상기 영상의 부호화 방법은, 상기 복수의 변환 계수 그룹 각각에 포함된 변환 계수들을 변환 계수 그룹 내에서의 위치 별로 분류한 후, 위치 별로 분류된 변환 계수들에 기초하여 입력 값들을 획득하는 단계를 더 포함할 수 있다.
일 실시예에서, 상기 입력 값들을 획득하는 단계는, 상기 위치 별로 분류된 변환 계수들의 최대 값, 최소 값 및 평균 값 중 적어도 하나를 상기 입력 값으로 획득하는 단계를 포함할 수 있다.
일 실시예에서, 상기 머신 러닝 모델은, 훈련용 영상에 대응하는 훈련용 입력 값을 상기 머신 러닝 모델에 입력하여 획득한 훈련용 양자화 테이블로, 상기 훈련용 영상에 대응하는 훈련용 변환 계수들을 양자화 및 역양자화한 후, 양자화되기 전의 훈련용 변환 계수들과 상기 역양자화된 훈련용 변환 계수들 사이의 차이에 기초하여 도출한 제 1 손실 값이 감소되도록 훈련될 수 있다.
일 실시예에서, 상기 머신 러닝 모델은, 훈련용 영상에 대응하는 훈련용 입력 값을 상기 머신 러닝 모델에 입력하여 획득한 훈련용 양자화 테이블로, 상기 훈련용 영상에 대응하는 훈련용 변환 계수들을 양자화 및 역양자화하고, 역양자화된 훈련용 변환 계수들을 공간 영역의 데이터들로 역변환하여 훈련용 영상을 복원한 후, 상기 복원된 훈련용 영상과 상기 훈련용 영상 사이의 차이에 기초하여 도출한 제 2 손실 값이 감소되도록 훈련될 수 있다.
일 실시예에서, 상기 머신 러닝 모델은, 훈련용 영상에 대응하는 훈련용 입력 값을 상기 머신 러닝 모델에 입력하여 획득한 훈련용 양자화 테이블로, 상기 훈련용 영상에 대응하는 훈련용 변환 계수들을 양자화한 후, 양자화된 훈련용 변환 계수들이 0에 해당하는지에 기초하여 산출한 제 3 손실 값이 감소되도록 훈련될 수 있다.
일 실시예에서, 저주파에서 고주파로 갈수록, 양자화된 훈련용 변환 계수들이 0이 아닌 경우, 상기 제 3 손실 값이 높게 산출될 수 있다.
일 실시예에서, 상기 머신 러닝 모델은, 상기 입력 값들을 입력받아 예측 양자화 테이블을 출력하는 제 1 서브 모델; 및 상기 예측 양자화 테이블로 상기 입력 값들을 양자화 및 역양자화한 결과와, 상기 입력 값들을 입력받아 상기 양자화 테이블을 출력하는 제 2 서브 모델을 포함할 수 있다.
일 실시예에 따른 영상의 부호화 방법은,
영상에 대응하는 적어도 하나의 2차원 데이터를 머신 러닝 모델에 입력하는 단계; 상기 머신 러닝 모델에서 출력되는 양자화 테이블을 이용하여 상기 영상에 대응하는 변환 계수들을 양자화하는 단계; 및 상기 양자화 테이블에 대한 정보 및 상기 양자화 결과 생성된 데이터를 포함하는 비트스트림을 생성하는 단계를 포함하되, 상기 머신 러닝 모델은, 필터 커널을 이용하여 입력된 데이터를 컨볼루션 처리하는 복수의 컨볼루션 레이어를 포함하는 CNN(convolution neural network)일 수 있다.
일 실시예에서, 상기 영상의 부호화 방법은, 상기 2차원 데이터의 크기가 미리 결정된 크기와 상이한 경우, 상기 2차원 데이터를 다운샘플링 또는 업샘플링하는 단계를 더 포함할 수 있다.
일 실시예에서, 상기 적어도 하나의 2차원 데이터를 머신 러닝 모델에 입력하는 단계는, 복수의 머신 러닝 모델 중 상기 2차원 데이터의 크기에 대응하는 머신 러닝 모델에 상기 적어도 하나의 2차원 데이터를 입력하는 단계를 포함할 수 있다.
일 실시예에 따른 영상 부호화 장치는,
머신 러닝 모델 및 적어도 하나의 프로그램을 저장하는 메모리; 및 상기 적어도 하나의 프로그램에 따라 동작하는 프로세서를 포함하되, 상기 프로세서는, 상기 적어도 하나의 프로그램이 실행됨으로써, 영상으로부터 복수의 패치를 획득하고, 상기 복수의 패치 각각에 대응하는 복수의 변환 계수 그룹을 획득하고, 상기 복수의 변환 계수 그룹 각각에 포함된 변환 계수들에 대응하는 입력 값들을 상기 머신 러닝 모델에 입력하고, 상기 머신 러닝 모델에서 출력되는 양자화 테이블을 이용하여 상기 영상에 대응하는 변환 계수들을 양자화하고, 상기 양자화 테이블에 대한 정보 및 상기 양자화 결과 생성된 데이터를 포함하는 비트스트림을 생성할 수 있다.
일 실시예에 따른 영상 적응적 양자화 테이블을 이용한 영상의 부호화 장치 및 방법은 낮은 비트레이트 대비 고화질로 영상을 부호화할 수 있다.
다만, 일 실시예에 따른 영상 적응적 양자화 테이블을 이용한 영상의 부호화 장치 및 방법이 달성할 수 있는 효과는 이상에서 언급한 것들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
본 명세서에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 간단한 설명이 제공된다.
도 1은 일 실시예에 따른 영상 부호화 장치의 구성을 나타내는 블록도이다.
도 2는 일 실시예에 따른 양자화 테이블의 생성 방법을 설명하기 위한 도면이다.
도 3은 일 실시예에 따라 영상으로부터 복수의 패치를 획득하는 방법을 설명하기 위한 도면이다.
도 4는 다른 실시예에 따라 영상으로부터 복수의 패치를 획득하는 방법을 설명하기 위한 도면이다.
도 5는 또 다른 실시예에 따라 영상으로부터 복수의 패치를 획득하는 방법을 설명하기 위한 도면이다.
도 6은 복수의 변환 계수 그룹으로부터 머신 러닝 모델에 입력될 입력 값들을 획득하는 방법을 설명하기 위한 도면이다.
도 7은 일 실시예에 따른 머신 러닝 모델의 구조를 설명하기 위한 도면이다.
도 8은 다른 실시예에 따른 머신 러닝 모델의 구조를 설명하기 위한 도면이다.
도 9는 또 다른 실시예에 따른 머신 러닝 모델의 구조를 설명하기 위한 도면이다.
도 10은 양자화 테이블을 생성하는데 있어 복수의 머신 러닝 모델 중 어느 하나의 머신 러닝 모델이 이용될 수 있음을 설명하기 위한 도면이다.
도 11은 일 실시예에 따른 머신 러닝 모델을 훈련시키는 방법을 설명하기 위한 도면이다.
도 12는 일 실시예에 따른 머신 러닝 모델을 훈련시키기 위해 이용되는 가중치 테이블을 나타내는 도면이다.
도 13은 일 실시예에 따른 영상의 부호화 방법을 설명하기 위한 순서도이다.
도 14는 일 실시예에 따른 영상 복호화 장치의 구성을 도시하는 블록도이다.
본 개시는 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고, 이를 상세한 설명을 통해 설명하고자 한다. 그러나, 이는 본 개시를 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 개시의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
실시예를 설명함에 있어서, 관련된 공지 기술에 대한 구체적인 설명이 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 실시예의 설명 과정에서 이용되는 숫자(예를 들어, 제 1, 제 2 등)는 하나의 구성요소를 다른 구성요소와 구분하기 위한 식별기호에 불과하다.
또한, 본 명세서에서 일 구성요소가 다른 구성요소와 "연결된다" 거나 "접속된다" 등으로 언급된 때에는, 상기 일 구성요소가 상기 다른 구성요소와 직접 연결되거나 또는 직접 접속될 수도 있지만, 특별히 반대되는 기재가 존재하지 않는 이상, 중간에 또 다른 구성요소를 매개하여 연결되거나 또는 접속될 수도 있다고 이해되어야 할 것이다.
또한, 본 명세서에서 '~부(유닛)', '모듈' 등으로 표현되는 구성요소는 2개 이상의 구성요소가 하나의 구성요소로 합쳐지거나 또는 하나의 구성요소가 보다 세분화된 기능별로 2개 이상으로 분화될 수도 있다. 또한, 이하에서 설명할 구성요소 각각은 자신이 담당하는 주기능 이외에도 다른 구성요소가 담당하는 기능 중 일부 또는 전부의 기능을 추가적으로 수행할 수도 있으며, 구성요소 각각이 담당하는 주기능 중 일부 기능이 다른 구성요소에 의해 전담되어 수행될 수도 있음은 물론이다.
또한, 본 명세서에서, '영상(image)' 또는 '픽처'는 정지 영상 또는 동영상을 나타낼 수 있다.
또한, 본 명세서에서 '샘플' 또는 '신호'는, 영상의 샘플링 위치에 할당된 데이터로서 프로세싱 대상이 되는 데이터를 의미한다. 예를 들어, 공간 영역의 영상에서 픽셀 값, 변환 영역 상의 변환 계수들이 샘플들일 수 있다. 이러한 적어도 하나의 샘플들을 포함하는 단위를 블록이라고 정의할 수 있다.
또한, 본 명세서에서 블록의 형태는 정사각형 또는 직사각형일 수 있으며, 임의의 기하학적 형태일 수도 있다. 블록은 8×8 크기일 수 있으나, 이에 한정되는 것은 아니다.
이하, 본 개시의 기술적 사상에 의한 실시예들을 차례로 상세히 설명한다.
JPEG 방식에 따른 부호화 과정에서, 영상은 블록 단위의 주파수 변환 과정을 통해 변환 계수로 변환되고, 변환 계수에 대해 양자화 테이블을 이용한 양자화가 수행된다. 양자화된 변환 계수는 엔트로피 부호화 과정을 거쳐 비트스트림으로 출력될 수 있다. 또한, 복호화 과정에서, 엔트로피 복호화를 통해 비트스트림으로부터 양자화된 변환 계수가 추출되고, 양자화된 변환 계수에 대해 역양자화 및 역변환 과정이 적용되어 영상이 복원될 수 있다. JPEG 표준에 따르면, 영상에 대해 8x8 크기의 블록 단위의 이산여현변환(Discrete Cosine Transform)이 적용되고, 변환 계수들에 대해 8x8 크기의 양자화 테이블을 이용한 양자화가 적용되는데, 양자화 테이블에 포함된 엘리먼트 값들이 부호화하고자 하는 영상에 최적화되어 있지 않다는 점에서 의도치 않은 화질 저하를 야기할 수 있다.
본 개시에 따른 영상 부호화 방법에 따르면, 영상의 특성에 부합하는 양자화 테이블을 머신 러닝 모델(machine learning model)을 통해 생성하므로, 비트스트림의 비트레이트를 감소시킬 수 있고, 양자화에 따른 화질 저하를 방지할 수 있다.
도 1은 일 실시예에 따른 영상 부호화 장치(100)의 구성을 나타내는 블록도이다.
도 1을 참조하면, 일 실시예에 따른 영상 부호화 장치(100)는 부호화부(110), 머신 러닝 모델(130) 및 비트스트림 생성부(150)를 포함할 수 있다.
부호화부(110)는 부호화하고자 하는 영상의 특성에 부합하는 양자화 테이블을 머신 러닝 모델(130)을 이용하여 생성할 수 있다. 부호화부(110)는 영상을 주파수 변환하고, 양자화 테이블로 변환 계수들을 양자화할 수 있다. 예를 들어, 부호화부(110)는 영상을 소정 크기(예를 들어, 8x8)의 블록 단위로 주파수 변환하고, 변환 계수들을 양자화 테이블로 양자화할 수 있다. 부호화부(110)는 영상을 이산여현변환(Discrete Cosine Transform)할 수 있으나, 주파수 변환 방법은 이산여현변환에 한정되는 것은 아니다.
비트스트림 생성부(150)는 영상의 부호화 결과에 대응하는 비트스트림을 생성할 수 있다. 일 실시예에서, 비트스트림 생성부(150)는 부호화부(110)에 의한 양자화 결과 생성된 데이터 및 양자화 테이블에 관한 정보를 포함하는 비트스트림을 생성할 수 있다.
일 실시예에 따른 부호화부(110) 및 비트스트림 생성부(150)는 적어도 하나의 프로세서로 구현될 수 있고, 메모리(미도시)에 저장된 적어도 하나의 프로그램이 실행됨에 따라 영상의 부호화 동작을 수행할 수 있다. 또한, 상기 메모리에는 머신 러닝 모델(130)이 저장될 수 있다.
일 실시예에 따른 영상 부호화 장치(100)는, 부호화부(110) 및 비트스트림 생성부(150)를 제어하는 중앙 프로세서(미도시)를 포함할 수 있다. 또는, 부호화부(110) 및 비트스트림 생성부(150)가 각각의 자체 프로세서(미도시)에 의해 작동되며, 프로세서(미도시)들이 상호 유기적으로 작동함에 따라 영상 부호화 장치(100)가 전체적으로 작동될 수도 있다. 또는, 외부 프로세서(미도시)의 제어에 따라, 부호화부(110) 및 비트스트림 생성부(150)가 제어될 수도 있다.
영상 부호화 장치(100)는, 부호화부(110) 및 비트스트림 생성부(150)의 입출력 데이터가 저장되는 하나 이상의 데이터 저장부(미도시)를 포함할 수 있다. 영상 부호화 장치(100)는, 데이터 저장부(미도시)의 데이터 입출력을 제어하는 메모리 제어부(미도시)를 포함할 수도 있다.
영상 부호화 장치(100)는, 영상을 부호화하기 위해, 내부에 탑재된 인코딩 프로세서 또는 외부의 인코딩 프로세서와 연계하여 작동함으로써, 영상 부호화 동작을 수행할 수 있다. 일 실시예에 따른 영상 부호화 장치(100)의 내부 인코딩 프로세서는, 별개의 프로세서뿐만 아니라, 중앙 연산 장치 또는 그래픽 연산 장치가 인코딩 프로세싱 모듈을 포함함으로써 기본적인 영상 부호화 동작을 구현할 수도 있다.
도 2는 일 실시예에 따른 양자화 테이블의 생성 방법을 설명하기 위한 도면이다.
부호화부(110)는 부호화하고자 하는 영상(210)이 입력되면, 영상(210)으로부터 소정 크기의 복수의 패치(220)를 획득할 수 있다. 각각의 패치(220)의 크기는 영상의 크기보다 작을 수 있다. 도 2를 참조하면, AxA 크기의 영상(210)으로부터 BxB 크기의 패치들(220)이 획득될 수 있다. 도 2에서, d는 뎁스(depth)로서 패치들(220)의 개수에 대응할 수 있다.
복수의 패치(220)를 획득하는 방법은 다양할 수 있는데, 일 실시예에서, 도 3에 도시된 바와 같이, 부호화부(110)는 영상(210)을 소정 크기(예를 들어, 8x8)로 분할하고, 영상(210) 내 소정 크기의 영역 각각을 패치(220-1, 220-2, 220-3, ... ,220-d)로 추출할 수 있다. 예를 들어, 영상(210)의 크기가 240x240이고, 패치의 크기가 8x8이라면, 부호화부(110)는 240x240 크기의 영상(210)을 8x8로 분할하여 총 900개의 패치(220)를 추출할 수 있다.
또한, 일 실시예에서, 도 4에 도시된 바와 같이, 부호화부(110)는 영상(210) 내 서로 인접한 영역들의 일부가 중첩되도록 영상(210)을 소정 크기(BxB)로 분할할 수도 있고, 분할된 영역들 각각이 패치로서 추출될 수 있다. 도 4를 참조하면, 영상(210) 내 영역(210-1)의 일부는 그에 인접한 영역들(210-2, 210-3, 210-4)과 중첩되는 것을 알 수 있다.
도 3에서 영상(210)의 크기가 240x240이고, 패치의 크기가 8x8이라면, 총 900개의 패치(220)가 추출될 수 있으나, 도 4와 같이 영상(210) 내 서로 인접한 영역들의 일부가 중첩되도록 영상(210)을 분할하는 경우, 900개 보다 많은 수의 패치가 추출될 수 있다.
또한, 일 실시예에서, 부호화부(110)는 영상(210)에 포함된 픽셀들을 복수의 패치(220) 각각으로 배분함으로써, 복수의 패치(220)를 획득할 수도 있다. 예를 들어, 영상(210)의 크기가 240x240이고, 패치의 크기가 8x8이라면, 영상(210) 내 240x240 개의 픽셀들을 다양한 방법으로 900개의 그룹으로 분류하고, 각 그룹에 포함된 픽셀들을 갖는 패치를 획득할 수 있다.
일 예에서, 부호화부(110)는 영상(210)에 포함된 픽셀들을 소정 순서대로 복수의 패치(220) 각각에 번갈아 할당함으로써 복수의 패치(220)를 획득할 수도 있다. 도 5를 참조하여 설명하면, 영상(210)의 크기가 9x9이고, 패치의 크기가 3x3인 경우, 총 9개의 패치(220)가 생성되어야 하므로, 부호화부(110)는 영상(210)에 포함된 픽셀들을 제 1 패치(220-1) 내지 제 9 패치(220-9)의 순서로 번갈아 할당할 수 있다.
도 5에서 영상(210) 내 픽셀들에 할당된 숫자는, 픽셀이 할당되어야 할 패치의 번호를 의미할 수 있다. 예를 들어, 영상(210) 내 1이 표시된 픽셀들은 제 1 패치(220-1)에 포함될 픽셀을 나타내고, 2로 표시된 픽셀들은 제 2 패치(220-2)에 포함될 픽셀을 나타낼 수 있다. 도 3 및 도 4와 같이, 영상(210)을 소정 크기로 분할하는 경우, 각 패치는 영상(210)의 지역적 특징만을 가지므로, 패치 각각이 영상(210)의 전체적 특징을 나타내지 못할 수 있다. 이러한 점을 고려하여, 도 5에 도시된 바와 같이, 영상(210) 내 픽셀들을 복수의 패치(220) 각각에 번갈아 할당함으로써, 각 패치가 영상(210)의 전체적 특성을 가지도록 하는 것이다.
다시 도 2를 보면, 부호화부(110)는 복수의 패치(220) 각각을 주파수 변환하여 복수의 변환 계수 그룹(230)을 생성한다. 2차원의 변환 계수 그룹의 크기는 패치의 크기와 동일할 수 있다. 예를 들어, 패치의 크기가 8x8인 경우, 그에 대응하는 변환 계수 그룹 역시 8x8의 크기(64개의 변환 계수)일 수 있다. 일 예에서, 부호화부(110)는 복수의 패치(220) 각각을 이산여현변환할 수 있다.
부호화부(110)는 복수의 변환 계수 그룹(230)에 포함된 변환 계수들을 이용하여 머신 러닝 모델(130)에 입력될 입력 값들(240)을 획득한다. 입력 값들(240)의 개수는 복수의 변환 계수 그룹(230)에 포함된 변환 계수들의 개수보다 적을 수 있다. 일 실시예에서, 복수의 변환 계수 그룹(230)에 포함된 변환 계수들 자체가 입력 값으로서 머신 러닝 모델(130)에 입력될 수도 있다.
복수의 변환 계수 그룹(230)에 포함된 변환 계수들을 이용하여 변환 계수들이 개수보다 적은 개수의 입력 값들(240)을 획득하는 이유는, 머신 러닝 모델(130)에 입력될 데이터의 개수를 일정하게 유지하기 위함이다. 따라서, 복수의 변환 계수 그룹(230)에 포함된 변환 계수들의 개수가 기 설정된 개수에 대응하는 경우, 변환 계수들의 개수를 감소시켜 입력 값들(240)을 획득할 필요가 없게 된다.
후술하는 바와 같이, 일 실시예에 따른 머신 러닝 모델(130)은 입력 값들(240)을 입력받는 입력 레이어를 포함할 수 있는데, 이 입력 레이어는 FCL(Full Connected Layer)일 수 있다. FCL은 입력 노드의 개수가 미리 결정되어 있다는 점에서 입력 값들(240)의 개수를 입력 노드의 개수와 동일하게 제한하여야 할 필요가 있다.
일 실시예에서, 부호화부(110)는 복수의 변환 계수 그룹(230) 각각에 포함된 변환 계수들을 변환 계수 그룹 내에서의 위치 별로 분류한 후, 위치 별로 분류된 변환 계수들에 기초하여 입력 값들(240)을 획득할 수 있다. 일 예에서, 위치 별로 분류된 변환 계수들의 최대 값, 최소 값 및 평균 값 중 적어도 하나가 상기 입력 값(240)으로 획득될 수 있다. 예를 들어, 복수의 변환 계수 그룹(230) 각각에 포함된 변환 계수들 중 동일 위치에 있는 변환 계수들 사이의 최대 값들이 입력 값(240)으로서 머신 러닝 모델(130)에 입력될 수 있다.
도 6을 참조하여 설명하면, 각각의 변환 계수 그룹(230-1, 230-2, ..., 230-d)에 포함된 변환 계수들 중 (0,0)의 위치에 있는 변환 계수들 사이의 최대 값, 최소 값 및 평균 값 중 적어도 하나가 첫 번째 행 및 첫 번째 열의 입력 값으로 할당될 수 있다. 도 6에서, n은 입력 값들(240)의 뎁스로서, 최대 값(240-1), 최소 값(240-2) 및 평균 값(240-3) 중 어느 하나가 입력 값으로 이용되는 경우에는 1, 최대 값(240-1), 최소 값(240-2) 및 평균 값(240-3) 중 어느 두 개가 입력 값으로 이용되는 경우에는 2, 최대 값(240-1), 최소 값(240-2) 및 평균 값(240-3) 모두가 입력 값으로 이용되는 경우 3일 수 있다.
변환 계수 그룹의 크기가 BxB이고, 변환 계수 그룹의 개수가 d일 때, 각각의 변환 계수 그룹에서 동일 위치에 있는 변환 계수들의 최대 값들(240-1), 최소 값들(240-2) 및 평균 값들(240-3) 각각은 2차원으로 그 크기가 BxB가 된다. 일 실시예에서, 부호화부(110)는 머신 러닝 모델(130)의 입력 레이어의 입력 노드들의 개수에 대응하는 개수의 입력 값들(240)을 획득할 수 있다. 예를 들어, 머신 러닝 모델(130)의 입력 레이어의 입력 노드들의 개수가 BxB개이면, 부호화부(110)는 각각의 변환 계수 그룹에서 동일 위치에 위치하는 변환 계수들의 최대 값들(240-1), 최소 값들(240-2) 또는 평균 값들(240-3)을 입력 값(240)으로 획득할 수 있고, 머신 러닝 모델(130)의 입력 레이어의 입력 노드들의 개수가 BxBx2개이면, 부호화부(110)는 각각의 변환 계수 그룹에서 동일 위치에 위치하는 변환 계수들의 최대 값들(240-1), 최소 값들(240-2) 및 평균 값들(240-3) 중 최대 값들(240-1)과 최소 값들(240-2), 최대 값들(240-1)과 평균 값들(240-3) 또는 최소 값들(240-2)과 평균 값들(240-3)을 입력 값(240)으로 획득할 수 있다. 또한, 머신 러닝 모델(130)의 입력 레이어의 입력 노드들의 개수가 BxBx3개이면, 부호화부(110)는 각각의 변환 계수 그룹에서 동일 위치에 위치하는 변환 계수들의 최대 값들(240-1), 최소 값들(240-2) 및 평균 값들(240-3) 모두를 입력 값(240)으로 획득할 수 있다.
일 실시예에서, 부호화부(110)는 각각의 변환 계수 그룹에서 동일 위치에 위치하는 변환 계수들의 최대 값, 최소 값 및 평균 값을 입력 값(240)으로 이용하는 것 이외에도 동일 위치에 위치하는 변환 계수들을 미리 결정된 식에 적용하여 입력 값(240)을 획득할 수도 있다.
일 실시예에서, 부호화부(110)는 입력 값들(240)의 개수를 조절하기 위해 변환 계수 그룹들에 포함된 변환 계수들의 개수를 다운샘플링 또는 업샘플링할 수도 있다. 예를 들어, 부호화부(110)는 공지의 주파수 변환 방법으로 영상(210)을 변환한 후, 변환 계수들의 개수가 머신 러닝 모델(130)에 입력될 수 있는 기 설정된 개수를 초과하는 경우, 변환 계수들의 개수가 기 설정된 개수와 동일해지도록 변환 계수들의 개수를 감소시키는 다운샘플링을 할 수 있다. 또한, 예를 들어, 부호화부(110)는 공지의 주파수 변환 방법으로 영상(210)을 변환한 후, 변환 계수들의 개수가 머신 러닝 모델(130)에 입력될 수 있는 기 설정된 개수 미만인 경우, 변환 계수들의 개수가 기 설정된 개수와 동일해지도록 변환 계수들의 개수를 증가시키는 업샘플링을 할 수도 있다.
다시 도 2를 참조하면, 입력 값들(240)이 머신 러닝 모델(130)로 입력되면, 머신 러닝 모델(130)은 미리 훈련된 가중치에 따라 입력 값들(240)을 처리하여 소정 크기(예를 들어, 8x8)의 양자화 테이블을 출력한다. 도 6 등에서 입력 값들(240)은 2차원 데이터로 생성되었지만, 머신 러닝 모델(130)에 입력될 때에는 각 입력 값들이 2차원상에서 배열된 순서에 따라 1차원 데이터로 입력될 수 있다. 도 2는 하나의 영상(210)에 대응하는 양자화 테이블(250)을 생성하는 실시예에 대해 설명하고 있으나, 복수의 영상(210)에 대응하는 입력 값(240)들이 배치(batch) 형태로 머신 러닝 모델(130)에 입력되어 복수의 영상(210) 각각에 대응하는 복수의 양자화 테이블(250)이 생성될 수도 있다.
부호화부(110)는 영상(210)에 대응하는 변환 계수들을 머신 러닝 모델(130)에서 출력된 양자화 테이블(250)을 이용하여 양자화한다. 일 예에서, 부호화부(110)는 영상(210)에 대응하는 복수의 패치(220)를 주파수 변환하여 생성한 복수의 변환 계수 그룹(230)을 양자화 테이블(250)로 양자화할 수 있다.
비트스트림 생성부(150)는 양자화 결과 생성된 데이터와, 머신 러닝 모델(130)에서 출력된 양자화 테이블(250)에 대한 정보를 포함하는 비트스트림을 생성할 수 있다. 비트스트림 생성부(150)는 비트스트림의 생성을 위해 양자화 결과 생성된 데이터 및 머신 러닝 모델(130)에서 출력된 양자화 테이블(250)에 대한 정보를 엔트로피 코딩할 수 있다.
한편, 일 실시예에서, 부호화부(110)는 영상(210)의 픽셀들의 휘도(luminance) 성분을 위한 제 1 양자화 테이블과 영상(210)의 픽셀들의 색차(chrominance) 성분을 위한 제 2 양자화 테이블을 생성한 후, 영상(210)의 픽셀들의 휘도 성분에 대응하는 변환 계수들을 제 1 양자화 테이블로 양자화하고, 영상(210)의 픽셀들의 색차 성분에 대응하는 변환 계수들을 제 2 양자화 테이블로 양자화할 수도 있다. 제 1 양자화 테이블 및 제 2 양자화 테이블의 생성을 위해, 부호화부(110)는 영상(210) 내 픽셀들의 휘도 성분에 기초하여 생성되는 입력 값들을 머신 러닝 모델(130)에 입력하고, 영상(210) 내 픽셀들의 색차 성분에 기초하여 생성되는 입력 값들을 머신 러닝 모델(130)에 입력할 수 있다.
또한, 부호화부(110)는 후술하는 CNN 구조의 머신 러닝 모델에, 영상(210)의 휘도 성분에 대응하는 2차원 데이터와 영상(210)의 색차 성분에 대응하는 2차원 데이터 각각을 입력하여 제 1 양자화 테이블과 제 2 양자화 테이블을 생성할 수도 있다.
이하에서는, 도 7 내지 도 10을 참조하여, 머신 러닝 모델(130)의 구조에 대해 상세히 설명한다.
도 7은 일 실시예에 따른 머신 러닝 모델(730)의 구조를 설명하기 위한 도면이다.
도 7을 참조하면, 머신 러닝 모델(730)은 복수의 FCL 및 복수의 활성 레이어를 포함할 수 있다. FCL은 입력 노드와 출력 노드를 가지고, 입력 노드로 입력된 데이터를 내부 가중치로 연산한 후 출력 노드를 통해 다음 레이어로 출력한다.
활성화 레이어는 이전 레이어의 출력 결과에 대해 비선형(Non-linear) 특성을 부여할 수 있다. 활성화 레이어는 활성화 함수를 이용할 수 있다. 도 7은 활성화 함수로 Leaky ReLU (Rectified Linear Unit)를 도시하고 있으나, 이에 한정되는 것은 아니고, 활성화 함수는 시그모이드 함수(sigmoid function), Tanh 함수, ReLU 함수 등을 포함할 수 있다.
또한, 도 7에 도시된 FCL의 개수 및 활성화 레이어의 개수는 예시일 뿐이며, 복수의 FCL이 연속하여 연결될 수도 있고, 또는 복수의 활성화 레이어가 연속하여 연결될 수도 있다.
머신 러닝 모델(730)의 입력 레이어(731)에는 미리 결정된 수의 입력 값들(240)이 입력되는데, 일 실시예에서, 입력 레이어(731)에는 입력 값(240) 이외에 양자화된 변환 계수에 0이 아닌 변환 계수(non-zero coefficient)들이 몇 개인지를 나타내는 값(710)이 더 입력될 수도 있다. 입력 레이어(731)의 입력 노드의 개수는 입력 레이어(731)로 입력되는 데이터의 개수와 동일할 수 있다.
머신 러닝 모델(730)의 출력 레이어(739)에서는 양자화 테이블(250)에 포함될 엘리먼트 값들이 출력되는데, 출력 레이어(739)의 출력 노드들의 개수는 양자화 테이블(250)에 포함되는 엘리먼트들의 개수와 동일할 수 있다. 예를 들어, 양자화 테이블(250)의 크기가 8x8인 경우, 양자화 테이블(250)에 포함되는 엘리먼트들의 개수는 64개이므로, 출력 레이어(739)의 출력 노드들의 개수 역시 64개일 수 있다.
도 8은 다른 실시예에 따른 머신 러닝 모델(830)의 구조를 설명하기 위한 도면이다.
도 8을 참조하면, 머신 러닝 모델(830)은 제 1 서브 모델(832)과 제 2 서브 모델(834)을 포함할 수 있다. 제 1 서브 모델(832)은 예측 양자화 테이블(820)을 출력하며, 제 2 서브 모델(834)은 양자화 테이블(250)을 출력한다.
제 1 서브 모델(832)은 도 7에 도시한 머신 러닝 모델(730)과 유사하게 복수의 FCL과 복수의 활성화 레이어를 포함할 수 있다. 제 1 서브 모델(832)의 입력 레이어로 입력 값들(240)과 non-zero coefficient의 개수 정보(810)가 입력되고, 제 1 서브 모델(832)의 출력 레이어에서는 예측 양자화 테이블(820)이 출력될 수 있다. 제 1 서브 모델(832)의 입력 레이어의 입력 노드의 개수는, 입력 값들(240)의 개수에 non-zero coefficient의 개수를 나타내는 값(810)의 개수를 합한 값과 동일할 수 있다. 또한, 제 1 서브 모델(832)의 출력 레이어의 출력 노드의 개수는 예측 양자화 테이블(820)에 포함되는 엘리먼트들의 개수와 동일할 수 있다. 예측 양자화 테이블(820)의 크기는 제 2 서브 모델(834)에서 출력되는 양자화 테이블(250)의 크기와 동일할 수 있다.
제 2 서브 모델(834)은 복수의 FCL과 복수의 활성화 레이어를 포함할 수 있다. 제 2 서브 모델(834)은 제 1 서브 모델(832)로 입력된 입력 값들(240)과, 예측 양자화 테이블(820)로 non-zero coefficient의 개수를 나타내는 값(810)과 입력 값들(240)을 양자화 및 역양자화한 결과를 입력받는다. 제 2 서브 모델(834)의 입력 레이어의 입력 노드의 개수는 입력 값들(240)의 개수, non-zero coefficient의 개수를 나타내는 값(810)의 개수 및 역양자화 결과 생성된 데이터(825)의 개수를 합한 값과 동일할 수 있다. 제 2 서브 모델(834)의 출력 레이어는 출력 노드를 통해 양자화 테이블(250)에 포함될 엘리먼트 값들을 출력한다.
도 8에 도시된 머신 러닝 모델(830)은 제 1 서브 모델(832)에서 양자화 테이블의 예측 값(820)을 출력하고, 이를 다시 제 2 서브 모델(834)로 입력하므로, 하나의 서브 모델에 대응하는 머신 러닝 모델(예를 들어, 도 7에 도시된 머신 러닝 모델(730))에 비해 부호화 효율이 높은 양자화 테이블(250)의 생성이 가능하다.
도 9는 또 다른 실시예에 따른 머신 러닝 모델(930)의 구조를 설명하기 위한 도면이다.
일 실시예에서, 머신 러닝 모델(930)은 CNN(convolution neural network)으로서 복수의 컨볼루션 레이어 및 복수의 활성화 레이어를 포함할 수 있다. 컨볼루션 레이어는 미리 결정된 크기의 필터 커널로 입력된 데이터를 컨볼루션 처리하고, 컨볼루션 처리 결과를 다음 레이어로 출력한다.
도 9에서 입력 컨볼루션 레이어(931)은 8x8x3의 차원 정보를 갖는데, 이는 입력 컨볼루션 레이어(931)가 8x8의 크기의 필터 커널 3개로 입력되는 데이터를 컨볼루션 처리한다는 것을 의미한다. 각각의 컨볼루션 레이어에서 이용하는 필터 커널의 크기 및 개수는 도 9에 도시된 것에 한정되는 것은 아니고, 당업자에게 자명한 범위 내에서 다양하게 변경될 수 있다.
입력 컨볼루션 레이어(931)는 입력 데이터(940)로서 2차원 데이터를 입력받는데, 여기서, 입력 데이터(940)는 앞서 설명한 복수의 변환 계수 그룹들(230), 복수의 변환 계수 그룹들(230)로부터 획득된 2차원 형태의 입력 값들(240), 복수의 패치들(220) 및 영상(210) 중 적어도 하나를 포함할 수 있다.
본 개시에 따른 일 실시예에서 머신 러닝 모델(930)의 출력 레이어(939)는 특정 크기의 양자화 테이블(250)을 생성하여야 하므로, 입력 데이터(940)로 입력되는 2차원 데이터 역시 미리 결정된 크기를 가져야 한다. 구체적으로, 컨볼루션 레이어에서는 미리 결정된 크기의 필터 커널로 미리 결정된 스트라이드(stride)에 따라 2차원 데이터를 컨볼루션 처리하므로, 입력되는 2차원 데이터의 크기에 따라 출력 데이터의 크기가 달라질 수 있다. 따라서, 부호화부(110)는 복수의 컨볼루션 레이어를 포함하는 머신 러닝 모델(930)로 입력되는 데이터(940)의 크기가 미리 결정된 크기보다 크거나 작으면, 2차원 데이터(940)의 크기가 미리 결정된 크기와 동일해지도록 2차원 데이터(940)를 다운샘플링 또는 업샘플링할 수 있다. 다운샘플링 및 업샘플링은 영상 처리 분야에서 자명하게 사용되고 있으므로, 그 구체적인 방법의 설명은 생략한다.
또한, 일 실시예에서, 도 10에 도시된 바와 같이, 머신 러닝 모델(130)은 서로 다른 크기의 2차원 데이터를 입력받을 수 있는 복수의 머신 러닝 모델(1030(a), 1030(b), 1030(c))을 포함할 수도 있다. 부호화부(110)는 복수의 머신 러닝 모델(1030(a), 1030(b), 1030(c)) 중 2차원 데이터의 크기에 대응하는 머신 러닝 모델에 2차원 데이터를 입력하여 양자화 테이블(250)을 생성할 수 있다. 복수의 머신 러닝 모델(1030(a), 1030(b), 1030(c))의 입력 레이어(1031(a), 1031(b), 1031(c))에서 이용되는 필터 커널의 크기 및/또는 스트라이드(stride)의 크기는 서로 상이할 수 있다.
도 10에 도시된 복수의 머신 러닝 모델(1030(a), 1030(b), 1030(c))의 입력 레이어들(1031(a), 1031(b), 1031(c))로 입력되는 데이터의 크기는 서로 상이하지만, 복수의 머신 러닝 모델(1030(a), 1030(b), 1030(c))의 출력 레이어(1039(a), 1039(b), 1039(c))에서 출력되는 데이터의 크기는 서로 동일할 수 있다.
도 11은 일 실시예에 따른 머신 러닝 모델(130)을 훈련시키는 방법을 설명하기 위한 도면이다. 도 11에서 N은 배치(batch)의 개수로서, 1 이상의 정수일 수 있다.
훈련용 영상(1110)으로부터 복수의 훈련용 패치(1120)가 추출되고, 복수의 훈련용 패치(1120)가 주파수 변환되어 복수의 훈련용 변환 계수 그룹(1130)이 생성될 수 있다. 복수의 훈련용 변환 계수 그룹(1130)에 기초하여 획득된 복수의 훈련용 입력 값들(1140)이 머신 러닝 모델(130)로 입력되고, 머신 러닝 모델(130)에서 훈련용 양자화 테이블(1150)이 출력된다. 훈련용 양자화 테이블(1150)로 훈련용 영상(1110)에 대응하는 변환 계수들이 양자화 및 역양자화된다. 그리고, 양자화되기 전의 변환 계수들과, 역양자화된 변환 계수들 사이의 차이에 해당하는 제 1 손실 값이 산출된다.
또한, 훈련용 영상(1110)에 대응하는 변환 계수들이 훈련용 양자화 테이블(1150)로 양자화 및 역양자화된 후, 공간 영역으로 역변환되어 훈련용 영상이 복원되며, 복원된 훈련용 영상과 훈련용 영상(1110) 사이의 차이에 해당하는 제 2 손실 값이 산출된다.
상기 제 1 손실 값 및 제 2 손실 값으로서, L1-norm 값, L2-norm 값, SSIM 값, PSNR-HVS 값, MS-SSIM 값, VIF 값 및 VMAF 값 중 어느 하나 또는 이들 중 2개 이상을 조합한 결과가 이용될 수 있다.
일 실시예에서, 제 1 손실 값 및 제 2 손실 값 중 적어도 하나가 감소되도록 머신 러닝 모델(130)이 훈련될 수 있다. 예를 들어, 제 1 손실 값 및 제 2 손실 값 중 적어도 하나가 최소화되도록 머신 러닝 모델(130)이 훈련될 수도 있다. 제 1 손실 값 및 제 2 손실 값 중 적어도 하나는 머신 러닝 모델(130)로 입력되고, 머신 러닝 모델(130)은 제 1 손실 값 및 제 2 손실 값 중 적어도 하나가 감소되도록 내부 가중치를 갱신할 수 있다.
일 실시예에서, 훈련용 영상(1110)에 대응하는 훈련용 입력 값(1140)을 머신 러닝 모델(130)에 입력하여 출력된 훈련용 양자화 테이블(1150)로, 훈련용 영상(1110)에 대응하는 훈련용 변환 계수들을 양자화한 후, 양자화된 훈련용 변환 계수들이 0에 해당하는지에 기초하여 제 3 손실 값이 산출될 수 있다. 제 3 손실 값은 저주파에서 고주파로 갈수록, 양자화된 훈련용 변환 계수들이 0이 아닌 경우, 높게 산출될 수 있다.
제 3 손실 값은 아래의 수학식 1에 따라 산출될 수 있다.
[수학식 1]
Figure pat00001
상기 수학식 1에서
Figure pat00002
는 양자화된 변환 계수 그룹에 포함된 (i, j) 위치의 변환 계수를 나타내고,
Figure pat00003
는 양자화된 변환 계수 그룹에 포함된 (i, j) 위치에 대응하는 가중치로서 양자화된 변환 계수 그룹의 크기가 8x8인 경우의 가중치들은 도 12에 도시되어 있다.
도 12를 참조하면, 우측 하단으로 갈수록 가중치의 크기가 커지고 있는데, 이는 양자화 결과 값들 중 고주파에 해당하는 값들이 최대한 0에 가까워지도록 설정된 것이다. 상기 수학식 1의 R은
Figure pat00004
가 0아 아닌 경우에 커지는데,
Figure pat00005
가 고주파에 해당할수록 R의 증가 정도는 저주파에 비해 더욱 커지는 것이다.
일 실시예에서, 머신 러닝 모델(130)의 훈련을 위한 최종 손실 값(Loss)은 아래의 수학식 2에 따라 산출될 수 있다.
[수학식 2]
Figure pat00006
상기 수학식 2에서 w0, w1, w2 각각은 손실 값에 적용되는 가중치로서 미리 설정된 값이고, Lrate는 제 3 손실 값, Ldist는 제 1 손실 값 또는 제 2 손실 값, 또는 제 1 손실 값과 제 2 손실 값을 조합한 값에 해당한다. Lreg는 정규화 텀(term)으로서, 머신 러닝 모델(130)의 오버피팅(overfitting)을 방지하기 위한 값이다. Lreg는 머신 러닝 모델(130)의 모든 레이어의 내부 가중치들의 제곱의 합으로 산출될 수 있다.
머신 러닝 모델(130)은 최종 손실 값이 감소되도록 훈련될 수 있다. 예를 들어, 머신 러닝 모델(130)은 최종 손실 값이 최소화되도록 훈련될 수 있다.
제 1 손실 값과 제 2 손실 값은 양자화 테이블을 이용하여 변환 계수들을 양자화한 후, 양자화된 결과를 역양자화 및 역변환하여 복원한 영상의 화질 저감을 방지하기 위해 산출되는 값이고, 제 3 손실 값은 양자화된 결과에 0이 많이 포함되도록, 즉, 비트스트림에 포함된 비트 개수를 감소시키기 위해 산출되는 값이므로, 머신 러닝 모델(130)은 양자화에 따른 화질 저화를 최소화하면서, 비트레이트를 최대로 감축시키도록 훈련될 수 있다.
도 13은 일 실시예에 따른 영상의 부호화 방법을 설명하기 위한 순서도이다.
S1310 단계에서, 영상 부호화 장치(100)는 영상으로부터 복수의 패치를 획득한다. 복수의 패치는 기 설정된 크기를 가질 수 있다.
S1320 단계에서, 영상 부호화 장치(100)는 복수의 패치를 주파수 변환하여 복수의 변환 계수 그룹을 획득한다. 각각의 변환 계수 그룹의 크기는 패치의 크기와 동일할 수 있다.
S1330 단계에서, 영상 부호화 장치(100)는 복수의 변환 계수 그룹들에 기초하여 획득되는 입력 값들을 머신 러닝 모델(130)에 입력한다. 복수의 변환 계수 그룹들에 포함된 변환 계수들 자체가 입력 값들에 해당할 수 있고, 또는, 복수의 변환 계수 그룹들에 포함된 변환 계수들을 이용하여 산출된 값들이 입력 값들에 해당할 수도 있다.
S1340 단계에서, 영상 부호화 장치(100)는 머신 러닝 모델(130)에서 출력되는 양자화 테이블을 이용하여 영상에 대응하는 변환 계수들을 양자화한다. 영상 부호화 장치(100)는 복수의 패치를 주파수 변환하여 획득한 복수의 변환 계수 그룹 내 변환 계수들을 양자화 테이블로 양자화할 수도 있고, 또는, 영상을 임의의 방법으로 주파수 변환하여 획득한 변환 계수들을 양자화 테이블로 양자화할 수도 있다.
S1350 단계에서, 영상 부호화 장치(100)는 양자화 결과 생성된 데이터 및 양자화 테이블에 대한 정보를 포함하는 비트스트림을 생성한다.
영상 부호화 장치(100)는 소정 표준(예를 들어, JPEG 표준)에 부합하는 비트스트림을 생성하면서, 해당 비트스트림에 양자화 테이블에 대한 정보를 포함시킬 수 있다. 예를 들어, 영상 부호화 장치(100)는 compressed image data의 비트스트림 내 marker segment에 quantization table-specification으로서 머신 러닝 모델(130)에서 생성된 양자화 테이블에 대한 정보를 포함시킬 수 있다.
도 14는 일 실시예에 따른 영상 복호화 장치(1400)의 구성을 도시하는 블록도이다.
도 14를 참조하면, 일 실시예에 따른 영상 복호화 장치(1400)는 비트스트림 획득부(1410) 및 복호화부(1430)를 포함할 수 있다.
비트스트림 획득부(1410)는 영상의 부호화 결과 생성된 비트스트림을 획득하고, 복호화부(1430)는 비트스트림에 포함된 정보에 기초하여 영상을 복호화할 수 있다. 일 실시예에서, 비트스트림 획득부(1410) 및 복호화부(1430)는 적어도 하나의 프로세서로 구현될 수 있고, 도시되지 않은 메모리에 저장된 프로그램이 실행됨으로써 영상 복호화 동작을 수행할 수 있다.
일 실시예에 따른 영상 복호화 장치(1400)는, 비트스트림 획득부(1410) 및 복호화부(1430)를 제어하는 중앙 프로세서(미도시)를 포함할 수 있다. 또는, 비트스트림 획득부(1410) 및 복호화부(1430)가 각각의 자체 프로세서(미도시)에 의해 작동되며, 프로세서(미도시)들이 상호 유기적으로 작동함에 따라 영상 복호화 장치(1400)가 전체적으로 작동될 수도 있다. 또는, 영상 복호화 장치(1400)의 외부 프로세서(미도시)의 제어에 따라, 비트스트림 획득부(1410) 및 복호화부(1430)가 제어될 수도 있다.
영상 복호화 장치(1400)는, 비트스트림 획득부(1410) 및 복호화부(1430)의 입출력 데이터가 저장되는 하나 이상의 데이터 저장부(미도시)를 포함할 수 있다. 영상 복호화 장치(1400)는, 데이터 저장부(미도시)의 데이터 입출력을 제어하는 메모리 제어부(미도시)를 포함할 수도 있다.
영상 복호화 장치(1400)는, 영상 복호화를 통해 영상을 복원하기 위해, 내부에 탑재된 디코딩 프로세서 또는 외부의 디코딩 프로세서와 연계하여 작동함으로써, 영상 복호화 동작을 수행할 수 있다. 일 실시예에 따른 영상 복호화 장치(1400)의 내부 디코딩 프로세서는, 별개의 프로세서뿐만 아니라, 중앙 연산 장치 또는 그래픽 연산 장치가 영상 디코딩 프로세싱 모듈을 포함함으로써 기본적인 영상 복호화 동작을 구현할 수도 있다.
비트스트림 획득부(1410)는 영상의 부호화 결과 생성된 비트스트림을 획득하고, 비트스트림으로부터 양자화 테이블에 대한 정보 및, 영상의 양자화 결과 생성된 데이터를 획득할 수 있다. 상기 양자화 테이블은 전술한 영상 부호화 장치(100)가 머신 러닝 모델(130)을 통해 생성한 양자화 테이블에 해당할 수 있다.
복호화부(1430)는 양자화 결과 생성된 데이터를 양자화 테이블에 따라 역양자화하고, 역양자화된 결과를 공간 영역으로 역변환하여 영상을 복원할 수 있다.
영상 부호화 장치(100)가 머신 러닝 모델(130)을 이용하여 양자화 테이블을 생성하지 않고, 대신 소정 표준(예를 들어, JPEG 표준)에 미리 결정된 양자화 테이블을 이용하여 영상을 부호화하는 경우, 일 실시예에 따른 영상 복호화 장치(1400)는 머신 러닝 모델(130)을 통해 양자화 테이블을 새롭게 생성할 수도 있다.
일 실시예에서, 복호화부(1430)는 비트스트림에 기초하여 획득한 양자화 테이블을 이용하여 영상을 복원한 후, 복원 영상을 대상으로 하여 머신 러닝 모델(130)을 통해 새로운 양자화 테이블을 생성하고, 새롭게 생성된 양자화 테이블로 영상을 재복원할 수 있다.
구체적으로, 복호화부(1430)는 비트스트림에 기초하여 획득한 양자화 테이블을 이용하여 비트스트림에 포함된 양자화 결과 값을 역양자화하고, 역양자화 결과 값을 공간 영역으로 역변환할 수 있다. 그리고, 복호화부(1430)는 역변환 결과 생성된 복원 영상으로부터 복수의 패치를 획득하고, 복수의 패치를 주파수 변환하여 복수의 변환 계수 그룹을 획득할 수 있다. 복호화부(1430)는 복수의 변환 계수 그룹에 대응하는 입력 값들을 전술한 머신 러닝 모델(130)에 입력하여 양자화 테이블을 획득할 수 있다. 그리고, 복호화부(1430)는 새롭게 생성한 양자화 테이블로, 비트스트림에 포함된 양자화 결과 값을 다시 역양자화하고, 역양자화 결과 값을 공간 영역으로 역변환하여 영상을 재복원할 수 있다. 복호화부(1430)가 머신 러닝 모델(130)을 통해 양자화 테이블을 생성하는 과정은 전술한 영상 부호화 장치(100)가 머신 러닝 모델(130)을 통해 양자화 테이블을 생성하는 과정과 동일하므로 상세한 설명은 생략한다.
한편, 일 실시예에 따른 영상 부호화 장치(100) 및 영상 복호화 장치(1400)는 스마트폰, 태블릿 PC, 데스크탑 PC, 텔레비전, 스마트워치, 스마트글래스 서버 등에 포함될 수 있다.
영상 부호화 장치(100) 및/또는 영상 복호화 장치(1400)에 저장되는 머신 러닝 모델(130)의 훈련은 다양한 장치에서 이루어질 수 있다.
일 실시예에서, 머신 러닝 모델(130)의 훈련이 외부 장치(예를 들어, 서버 등)에서 수행되고, 훈련된 머신 러닝 모델(130)이 영상 부호화 장치(100) 및 영상 복호화 장치(1400)에 저장될 수 있다.
또는, 일 예에서, 머신 러닝 모델(130)이 영상 부호화 장치(100)와 영상 복호화 장치(1400)에 저장된 상태에서, 머신 러닝 모델(130)의 훈련이 영상 부호화 장치(100) 및 영상 복호화 장치(1400)에서 수행될 수 있다.
또는, 일 예에서, 머신 러닝 모델(130)의 훈련이 외부 장치(예를 들어, 서버 등)에서 수행된 후, 머신 러닝 모델(130)의 내부 가중치를 나타내는 정보가 외부 장치로부터 영상 부호화 장치(100) 및 영상 복호화 장치(1400)로 통신망을 통해 전송될 수도 있다. 영상 부호화 장치(100) 및 영상 복호화 장치(1400)는 수신된 내부 가중치 정보에 따라 미리 저장된 머신 러닝 모델(130)을 훈련시킬 수 있다.
한편, 상술한 본 개시의 실시예들은 컴퓨터에서 실행될 수 있는 프로그램으로 작성가능하고, 작성된 프로그램은 매체에 저장될 수 있다.
매체는 컴퓨터로 실행 가능한 프로그램을 계속 저장하거나, 실행 또는 다운로드를 위해 임시 저장하는 것일 수도 있다. 또한, 매체는 단일 또는 수개 하드웨어가 결합된 형태의 다양한 기록수단 또는 저장수단일 수 있는데, 어떤 컴퓨터 시스템에 직접 접속되는 매체에 한정되지 않고, 네트워크 상에 분산 존재하는 것일 수도 있다. 매체의 예시로는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM 및 DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical medium), 및 ROM, RAM, 플래시 메모리 등을 포함하여 프로그램 명령어가 저장되도록 구성된 것이 있을 수 있다. 또한, 다른 매체의 예시로, 애플리케이션을 유통하는 앱 스토어나 기타 다양한 소프트웨어를 공급 내지 유통하는 사이트, 서버 등에서 관리하는 기록매체 내지 저장매체도 들 수 있다.
이상, 본 개시의 기술적 사상을 바람직한 실시예를 들어 상세하게 설명하였으나, 본 개시의 기술적 사상은 상기 실시예들에 한정되지 않고, 본 개시의 기술적 사상의 범위 내에서 당 분야에서 통상의 지식을 가진 자에 의하여 여러 가지 변형 및 변경이 가능하다.
100: 영상 부호화 장치
110: 부호화부
130: 머신 러닝 모델
150: 비트스트림 생성부
1400: 영상 복호화 장치
1410: 비트스트림 획득부
1430: 복호화부

Claims (16)

  1. 영상으로부터 복수의 패치를 획득하는 단계;
    상기 복수의 패치 각각에 대응하는 복수의 변환 계수 그룹을 획득하는 단계;
    상기 복수의 변환 계수 그룹 각각에 포함된 변환 계수들에 대응하는 입력 값들을 머신 러닝 모델에 입력하는 단계;
    상기 머신 러닝 모델에서 출력되는 양자화 테이블을 이용하여 상기 영상에 대응하는 변환 계수들을 양자화하는 단계; 및
    상기 양자화 테이블에 대한 정보 및 상기 양자화 결과 생성된 데이터를 포함하는 비트스트림을 생성하는 단계를 포함하는 것을 특징으로 하는 영상의 부호화 방법.
  2. 제1항에 있어서,
    상기 머신 러닝 모델은,
    상기 입력 값들을 입력받는 입력 FCL(full connected layer) 및 상기 양자화 테이블에 포함된 엘리먼트 값들을 출력하는 출력 FCL을 포함하되,
    상기 입력 FCL의 입력 노드들의 개수는 상기 입력 값들의 개수에 대응하고, 상기 출력 FCL의 출력 노드들의 개수는 상기 양자화 테이블에 포함된 엘리먼트들의 개수에 대응하는 것을 특징으로 하는 영상의 부호화 방법.
  3. 제1항에 있어서,
    상기 복수의 패치를 획득하는 단계는,
    소정 크기로 상기 영상을 분할하여 상기 복수의 패치를 획득하는 단계를 포함하는 것을 특징으로 하는 영상의 부호화 방법.
  4. 제3항에 있어서,
    상기 영상을 상기 소정 크기로 분할할 때, 상기 영상 내 서로 인접한 소정 크기의 분할 영역들의 일부가 중첩되는 것을 특징으로 하는 영상의 부호화 방법.
  5. 제1항에 있어서,
    상기 복수의 패치를 획득하는 단계는,
    상기 영상에 포함된 픽셀들을 소정 순서대로 상기 복수의 패치 각각에 번갈아 할당하여 상기 복수의 패치를 획득하는 단계를 포함하는 것을 특징으로 하는 영상의 부호화 방법.
  6. 제1항에 있어서,
    상기 영상의 부호화 방법은,
    상기 복수의 변환 계수 그룹 각각에 포함된 변환 계수들을 변환 계수 그룹 내에서의 위치 별로 분류한 후, 위치 별로 분류된 변환 계수들에 기초하여 입력 값들을 획득하는 단계를 더 포함하는 것을 특징으로 하는 영상의 부호화 방법.
  7. 제6항에 있어서,
    상기 입력 값들을 획득하는 단계는,
    상기 위치 별로 분류된 변환 계수들의 최대 값, 최소 값 및 평균 값 중 적어도 하나를 상기 입력 값으로 획득하는 단계를 포함하는 것을 특징으로 하는 영상의 부호화 방법.
  8. 제1항에 있어서,
    상기 머신 러닝 모델은,
    훈련용 영상에 대응하는 훈련용 입력 값을 상기 머신 러닝 모델에 입력하여 획득한 훈련용 양자화 테이블로, 상기 훈련용 영상에 대응하는 훈련용 변환 계수들을 양자화 및 역양자화한 후, 양자화되기 전의 훈련용 변환 계수들과 상기 역양자화된 훈련용 변환 계수들 사이의 차이에 기초하여 도출한 제 1 손실 값이 감소되도록 훈련된 것을 특징으로 하는 영상의 부호화 방법.
  9. 제1항에 있어서,
    상기 머신 러닝 모델은,
    훈련용 영상에 대응하는 훈련용 입력 값을 상기 머신 러닝 모델에 입력하여 획득한 훈련용 양자화 테이블로, 상기 훈련용 영상에 대응하는 훈련용 변환 계수들을 양자화 및 역양자화하고, 역양자화된 훈련용 변환 계수들을 공간 영역의 데이터들로 역변환하여 훈련용 영상을 복원한 후, 상기 복원된 훈련용 영상과 상기 훈련용 영상 사이의 차이에 기초하여 도출한 제 2 손실 값이 감소되도록 훈련된 것을 특징으로 하는 영상의 부호화 방법.
  10. 제1항에 있어서,
    상기 머신 러닝 모델은,
    훈련용 영상에 대응하는 훈련용 입력 값을 상기 머신 러닝 모델에 입력하여 획득한 훈련용 양자화 테이블로, 상기 훈련용 영상에 대응하는 훈련용 변환 계수들을 양자화한 후, 양자화된 훈련용 변환 계수들이 0에 해당하는지에 기초하여 산출한 제 3 손실 값이 감소되도록 훈련된 것을 특징으로 하는 영상의 부호화 방법.
  11. 제10항에 있어서,
    저주파에서 고주파로 갈수록, 양자화된 훈련용 변환 계수들이 0이 아닌 경우, 상기 제 3 손실 값이 높게 산출되는 것을 특징으로 하는 영상의 부호화 방법.
  12. 제1항에 있어서,
    상기 머신 러닝 모델은,
    상기 입력 값들을 입력받아 예측 양자화 테이블을 출력하는 제 1 서브 모델; 및
    상기 예측 양자화 테이블로 상기 입력 값들을 양자화 및 역양자화한 결과와, 상기 입력 값들을 입력받아 상기 양자화 테이블을 출력하는 제 2 서브 모델을 포함하는 것을 특징으로 하는 영상의 부호화 방법.
  13. 영상에 대응하는 적어도 하나의 2차원 데이터를 머신 러닝 모델에 입력하는 단계;
    상기 머신 러닝 모델에서 출력되는 양자화 테이블을 이용하여 상기 영상에 대응하는 변환 계수들을 양자화하는 단계; 및
    상기 양자화 테이블에 대한 정보 및 상기 양자화 결과 생성된 데이터를 포함하는 비트스트림을 생성하는 단계를 포함하되,
    상기 머신 러닝 모델은, 필터 커널을 이용하여 입력된 데이터를 컨볼루션 처리하는 복수의 컨볼루션 레이어를 포함하는 CNN(convolution neural network)인 것을 특징으로 하는 영상의 부호화 방법.
  14. 제13항에 있어서,
    상기 영상의 부호화 방법은,
    상기 2차원 데이터의 크기가 미리 결정된 크기와 상이한 경우, 상기 2차원 데이터를 다운샘플링 또는 업샘플링하는 단계를 더 포함하는 것을 특징으로 하는 영상의 부호화 방법.
  15. 제13항에 있어서,
    상기 적어도 하나의 2차원 데이터를 머신 러닝 모델에 입력하는 단계는,
    복수의 머신 러닝 모델 중 상기 2차원 데이터의 크기에 대응하는 머신 러닝 모델에 상기 적어도 하나의 2차원 데이터를 입력하는 단계를 포함하는 것을 특징으로 하는 영상의 부호화 방법.
  16. 머신 러닝 모델 및 적어도 하나의 프로그램을 저장하는 메모리; 및
    상기 적어도 하나의 프로그램에 따라 동작하는 프로세서를 포함하되,
    상기 프로세서는, 상기 적어도 하나의 프로그램이 실행됨으로써,
    영상으로부터 복수의 패치를 획득하고,
    상기 복수의 패치 각각에 대응하는 복수의 변환 계수 그룹을 획득하고,
    상기 복수의 변환 계수 그룹 각각에 포함된 변환 계수들에 대응하는 입력 값들을 상기 머신 러닝 모델에 입력하고,
    상기 머신 러닝 모델에서 출력되는 양자화 테이블을 이용하여 상기 영상에 대응하는 변환 계수들을 양자화하고,
    상기 양자화 테이블에 대한 정보 및 상기 양자화 결과 생성된 데이터를 포함하는 비트스트림을 생성하는 것을 특징으로 하는 영상의 부호화 장치.
KR1020180133137A 2018-11-01 2018-11-01 영상 적응적 양자화 테이블을 이용한 영상의 부호화 장치 및 방법 KR102621118B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020180133137A KR102621118B1 (ko) 2018-11-01 2018-11-01 영상 적응적 양자화 테이블을 이용한 영상의 부호화 장치 및 방법
US16/671,286 US11122267B2 (en) 2018-11-01 2019-11-01 Method and apparatus for encoding image by using quantization table adaptive to image

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180133137A KR102621118B1 (ko) 2018-11-01 2018-11-01 영상 적응적 양자화 테이블을 이용한 영상의 부호화 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20200050284A true KR20200050284A (ko) 2020-05-11
KR102621118B1 KR102621118B1 (ko) 2024-01-04

Family

ID=70458207

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180133137A KR102621118B1 (ko) 2018-11-01 2018-11-01 영상 적응적 양자화 테이블을 이용한 영상의 부호화 장치 및 방법

Country Status (2)

Country Link
US (1) US11122267B2 (ko)
KR (1) KR102621118B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220048875A (ko) * 2020-10-13 2022-04-20 주식회사 카카오 타겟 태스크별 양자화 테이블 생성 방법

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11977388B2 (en) * 2019-02-21 2024-05-07 Nvidia Corporation Quantizing autoencoders in a neural network
US11475298B2 (en) * 2019-03-20 2022-10-18 Gyrfalcon Technology Inc. Using quantization in training an artificial intelligence model in a semiconductor solution
US11496769B2 (en) * 2019-09-27 2022-11-08 Apple Inc. Neural network based image set compression
US11197004B1 (en) * 2020-07-02 2021-12-07 Google Llc Inter-prediction mode-dependent transforms for video coding

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110028734A (ko) * 2009-09-14 2011-03-22 에스케이 텔레콤주식회사 고해상도 동영상의 부호화/복호화 방법 및 장치
KR20120123132A (ko) * 2010-02-02 2012-11-07 톰슨 라이센싱 패치 시프팅을 통해 벡터 양자화 에러를 감소시키기 위한 방법들 및 장치
KR20180001428A (ko) * 2016-06-24 2018-01-04 한국과학기술원 Cnn 기반 인루프 필터를 포함하는 부호화 방법과 장치 및 복호화 방법과 장치

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3373008B2 (ja) * 1993-10-20 2003-02-04 オリンパス光学工業株式会社 画像像域分離装置
KR100529311B1 (ko) * 2003-01-21 2005-11-17 삼성전자주식회사 신경 회로망을 이용하여 가변 길이 부호화 비트 스트림의길이를 선택하는 장치 및 방법
WO2016140414A1 (ko) 2015-03-02 2016-09-09 삼성전자 주식회사 촬영 정보에 기초하여 영상을 압축하는 방법 및 장치
US10432932B2 (en) * 2015-07-10 2019-10-01 Mozilla Corporation Directional deringing filters
KR102437698B1 (ko) * 2015-08-11 2022-08-30 삼성전자주식회사 전자 장치 및 전자 장치의 이미지 인코딩 방법
US20190073582A1 (en) * 2015-09-23 2019-03-07 Yi Yang Apparatus and method for local quantization for convolutional neural networks (cnns)
US10003821B2 (en) * 2015-10-27 2018-06-19 Canon Kabushiki Kaisha Image encoding apparatus and method of controlling same
US20170132511A1 (en) * 2015-11-10 2017-05-11 Facebook, Inc. Systems and methods for utilizing compressed convolutional neural networks to perform media content processing
US20170280139A1 (en) * 2016-03-22 2017-09-28 Qualcomm Incorporated Apparatus and methods for adaptive calculation of quantization parameters in display stream compression
US10621486B2 (en) * 2016-08-12 2020-04-14 Beijing Deephi Intelligent Technology Co., Ltd. Method for optimizing an artificial neural network (ANN)
US10291911B2 (en) * 2016-11-29 2019-05-14 Motorola Mobility Llc Classes of tables for use in image compression
CN108271026B (zh) * 2016-12-30 2020-03-31 上海寒武纪信息科技有限公司 压缩/解压缩的装置和系统、芯片、电子装置、方法
US11934934B2 (en) * 2017-04-17 2024-03-19 Intel Corporation Convolutional neural network optimization mechanism
WO2018199721A1 (ko) * 2017-04-28 2018-11-01 서울대학교 산학협력단 뉴럴네트워크에서 데이터 처리를 가속화하는 방법 및 장치
CA3066204C (en) * 2017-07-07 2022-04-26 Mitsubishi Electric Corporation Data processing device, data processing method, and non-transitory computer-readable storage medium
US20190050710A1 (en) * 2017-08-14 2019-02-14 Midea Group Co., Ltd. Adaptive bit-width reduction for neural networks
US11195096B2 (en) * 2017-10-24 2021-12-07 International Business Machines Corporation Facilitating neural network efficiency
US10719744B2 (en) * 2017-12-28 2020-07-21 Intel Corporation Automated semantic inference of visual features and scenes
US10546393B2 (en) * 2017-12-30 2020-01-28 Intel Corporation Compression in machine learning and deep learning processing
US11928601B2 (en) * 2018-02-09 2024-03-12 Google Llc Neural network compression
US11902369B2 (en) * 2018-02-09 2024-02-13 Preferred Networks, Inc. Autoencoder, data processing system, data processing method and non-transitory computer readable medium
WO2020019236A1 (en) * 2018-07-26 2020-01-30 Intel Corporation Loss-error-aware quantization of a low-bit neural network

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110028734A (ko) * 2009-09-14 2011-03-22 에스케이 텔레콤주식회사 고해상도 동영상의 부호화/복호화 방법 및 장치
KR20120123132A (ko) * 2010-02-02 2012-11-07 톰슨 라이센싱 패치 시프팅을 통해 벡터 양자화 에러를 감소시키기 위한 방법들 및 장치
KR20180001428A (ko) * 2016-06-24 2018-01-04 한국과학기술원 Cnn 기반 인루프 필터를 포함하는 부호화 방법과 장치 및 복호화 방법과 장치

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220048875A (ko) * 2020-10-13 2022-04-20 주식회사 카카오 타겟 태스크별 양자화 테이블 생성 방법

Also Published As

Publication number Publication date
US11122267B2 (en) 2021-09-14
KR102621118B1 (ko) 2024-01-04
US20200145662A1 (en) 2020-05-07

Similar Documents

Publication Publication Date Title
US10750179B2 (en) Decomposition of residual data during signal encoding, decoding and reconstruction in a tiered hierarchy
KR102621118B1 (ko) 영상 적응적 양자화 테이블을 이용한 영상의 부호화 장치 및 방법
JP5957559B2 (ja) 大きいサイズの変換単位を用いた映像符号化、復号化方法及び装置
CN108028941B (zh) 用于通过超像素编码和解码数字图像的方法和装置
CN110798690B (zh) 视频解码方法、环路滤波模型的训练方法、装置和设备
US11431985B2 (en) Method and device for signaling information on chroma format
US11895300B2 (en) Signaling of information indicating transform kernel set in image coding
CN114788283A (zh) 用于向后兼容的分级改进的嵌入式信令以及超分辨率信令的用途
US11843778B2 (en) Transform coefficient coding method and device therefor
US11909972B2 (en) Coding of information about transform kernel set
KR20230107627A (ko) 후처리 제어를 이용한 비디오 디코딩
JP2024505798A (ja) 点群符号化・復号化方法及びシステム、点群符号器並びに点群復号器
US11622114B2 (en) Context coding for information on transform kernel set in image coding system
US20240040160A1 (en) Video encoding using pre-processing
US20240048764A1 (en) Method and apparatus for multi view video encoding and decoding, and method for transmitting bitstream generated by the multi view video encoding method
CN116708793B (zh) 视频的传输方法、装置、设备及存储介质
US20240064331A1 (en) Image decoding apparatus and method and image encoding apparatus and method
WO2023133889A1 (zh) 图像处理方法、装置、遥控设备、系统及存储介质
WO2023000182A1 (zh) 图像编解码及处理方法、装置及设备
Siddeq Novel methods of image compression for 3D reconstruction
Singh et al. COMPARATIVE STUDIES OF VARIOUS TECHNIQUES FOR IMAGE COMPRESSION ALGORITHM
Chen et al. Adaptive VQVAE: a learning-based image compression framework with vector quantization
KR102398232B1 (ko) 참조 영상 필터링을 통한 비디오 신호 복호화 방법 및 장치
CN117939157A (zh) 图像处理方法、装置及设备
Schmalz Digital Images: Compression

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right