KR20240027510A - Ai에 기반한 영상 부호화 장치 및 영상 복호화 장치, 및 이들에 의한 영상의 부호화 및 복호화 방법 - Google Patents

Ai에 기반한 영상 부호화 장치 및 영상 복호화 장치, 및 이들에 의한 영상의 부호화 및 복호화 방법 Download PDF

Info

Publication number
KR20240027510A
KR20240027510A KR1020220163444A KR20220163444A KR20240027510A KR 20240027510 A KR20240027510 A KR 20240027510A KR 1020220163444 A KR1020220163444 A KR 1020220163444A KR 20220163444 A KR20220163444 A KR 20220163444A KR 20240027510 A KR20240027510 A KR 20240027510A
Authority
KR
South Korea
Prior art keywords
layer
image
motion vector
current
neural network
Prior art date
Application number
KR1020220163444A
Other languages
English (en)
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 PCT/KR2023/012207 priority Critical patent/WO2024043617A1/ko
Priority to US18/237,150 priority patent/US20240073425A1/en
Publication of KR20240027510A publication Critical patent/KR20240027510A/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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/53Multi-resolution motion estimation; Hierarchical motion estimation
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/002Image coding 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/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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20084Artificial neural networks [ANN]

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)
  • Computational Linguistics (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

현재 영상 및 이전 복원 영상을 움직임 벡터 인코더에 적용하여 복수의 해상도의 현재 영상에 대한 움직임 벡터 특징 데이터를 획득하고, 움직임 벡터 디코더에 상기 움직임 벡터 특징 데이터를 적용하여 현재 움직임 벡터를 획득하고, 현재 움직임 벡터와 이전 복원 영상을 이용하여 현재 예측 영상을 획득하고, 상기 움직임 벡터 특징 데이터를 포함하는 비트스트림을 생성하고, 상기 복수의 해상도는 상기 현재 영상의 원본 해상도 및 상기 현재 영상의 원본 해상도로부터 다운스케일된 해상도를 포함하는 AI에 기반한 영상 부호화 방법을 제안한다.

Description

AI에 기반한 영상 부호화 장치 및 영상 복호화 장치, 및 이들에 의한 영상의 부호화 및 복호화 방법{IMAGE ENCODING APPARATUS AND IMAGE DECODING APPARATUS BASED ON ARTIFICIAL INTELLIGENCE, AND METHOD FOR ENCODING AND DECONDG IMAGE THEREBY}
본 개시는 영상의 부호화 및 복호화에 관한 것이다. 보다 구체적으로, 본 개시는 AI(Artificial Intelligence), 예를 들어, 신경망을 이용하여 영상을 부호화 및 복호화하는 기술에 관한 것이다.
H.264 AVC(Advanced Video Coding) 및 HEVC(High Efficiency Video Coding)와 같은 코덱에서는, 영상을 블록으로 분할하고, 인터 예측(inter prediction) 또는 인트라 예측(intraprediction)을 통해 각각의 블록을 예측 부호화 및 예측 복호화할 수 있다.
인트라 예측은 영상 내의 공간적인 중복성을 제거하여 영상을 압축하는 방법이고, 인터 예측은 영상들 사이의 시간적인 중복성을 제거하여 영상을 압축하는 방법이다.
인터 예측의 대표적인 예로서, 움직임 추정 부호화가 존재한다. 움직임 추정 부호화는 참조 영상을 이용해 현재 영상의 블록들을 예측한다. 소정의 평가 함수를 이용하여 현재 블록과 가장 유사한 참조 블록을 소정의 검색 범위에서 탐색할 수 있다. 현재 블록을 참조 블록에 기초하여 예측하고, 예측 결과 생성된 예측 블록을 현재 블록으로부터 감산하여 잔차 블록을 생성 및 부호화한다.
참조 영상 내 참조 블록을 가리키는 움직임 벡터를 도출하기 위해, 이전에 부호화된 블록들의 움직임 벡터가 현재 블록의 움직임 벡터 예측자(Motion Vector Predictor)로 이용될 수 있다. 현재 블록의 움직임 벡터와 움직임 벡터 예측자 사이의 차이인 잔차 움직임 벡터(Differential Motion Vector)는 소정의 방식을 통해 디코더 측으로 시그널링된다.
최근, AI(Artificial Intelligent)를 이용하여 영상을 부호화/복호화하는 기술들이 제안되고 있는데, AI, 예를 들어, 신경망을 이용하여 영상을 효과적으로 부호화/복호화하는 방안이 요구된다.
일 실시예에 따른 AI에 기반한 영상 부호화 방법은, 현재 영상 및 이전 복원 영상을 움직임 벡터 인코더에 적용하여 복수의 해상도의 현재 영상에 대한 움직임 벡터 특징 데이터를 획득하는 단계; 움직임 벡터 디코더에 상기 움직임 벡터 특징 데이터를 적용하여 현재 움직임 벡터를 획득하는 단계; 상기 현재 움직임 벡터와 이전 복원 영상을 이용하여 현재 예측 영상을 획득하는 단계; 상기 움직임 벡터 특징 데이터를 포함하는 비트스트림을 생성하는 단계를 포함하고, 상기 복수의 해상도는 상기 현재 영상의 원본 해상도 및 상기 현재 영상의 원본 해상도로부터 다운스케일된 해상도를 포함할 수 있다.
일 실시예에 따른 AI에 기반한 영상 부호화 장치는 예측 부호화부, 예측 복호화부 및 생성부를 포함할 수 있다. 예측 부호화부는 현재 영상 및 이전 복원 영상을 움직임 벡터 인코더에 적용하여 복수의 해상도의 현재 영상에 대한 움직임 벡터 특징 데이터를 획득할 수 있다. 예측 복호화부는 움직임 벡터 디코더에 상기 움직임 벡터 특징 데이터를 적용하여 현재 움직임 벡터를 획득할 수 있다. 예측 복호화부는 현재 움직임 벡터와 이전 복원 영상을 이용하여 현재 예측 영상을 획득할 수 있다. 생성부는 움직임 벡터 특징 데이터를 포함하는 비트스트림을 생성할 수 있다.
일 실시예에 따른 AI에 기반한 영상 복호화 방법은, 비트스트림으로부터 복수의 해상도의 현재 영상에 대한 움직임 벡터 특징 데이터를 획득하는 단계; 움직임 벡터 디코더에 상기 움직임 벡터 특징 데이터를 적용하여 현재 움직임 벡터를 획득하는 단계; 상기 현재 움직임 벡터와 이전 복원 영상을 이용하여 현재 예측 영상을 획득하는 단계를 포함하고, 상기 복수의 해상도는 상기 현재 영상의 원본 해상도 및 상기 현재 영상의 원본 해상도로부터 다운스케일된 해상도를 포함할 수 있다.
일 실시예에 따른 AI에 기반한 영상 복호화 장치는 획득부 및 예측 복호화부를 포함할 수 있다. 획득부는 비트스트림으로부터 복수의 해상도의 현재 영상에 대한 움직임 벡터 특징 데이터를 획득할 수 있다. 예측 복호화부는 움직임 벡터 디코더에 상기 움직임 벡터 특징 데이터를 적용하여 현재 움직임 벡터를 획득할 수 있다. 예측 복호화부는 현재 움직임 벡터와 이전 복원 영상을 이용하여 현재 예측 영상을 획득할 수 있다.
도 1은 본 개시의 일 실시예에 따른 AI에 기반한 영상의 부호화 및 복호화 과정을 도시하는 도면이다.
도 2는 영상의 해상도에 따른 움직임 검색 범위를 설명하기 위한 도면이다.
도 3은 컨볼루션 연산에 따른 신경망의 수용 필드를 설명하기 위한 도면이다.
도 4는 본 개시의 일 실시예에 따른 움직임 벡터 인코더의 신경망 구조를 도시한다.
도 5는 본 개시의 일 실시예에 따른 움직임 벡터 인코더의 신경망 구조를 도시한다.
도 6은 본 개시의 일 실시예에 따른 움직임 벡터 디코더의 신경망 구조를 도시한다.
도 7은 본 개시의 일 실시예에 따른 움직임 벡터 디코더의 신경망 구조를 도시한다.
도 8은 본 개시의 일 실시예에 따른 움직임 벡터 인코더의 신경망 구조를 도시한다.
도 9는 본 개시의 일 실시예에 따른 움직임 벡터 디코더의 신경망 구조를 도시한다.
도 10은 풀링이 수행되는 방법의 일 예를 설명하기 위한 도면이다.
도 11은 확장 컨볼루션이 수행되는 방법의 일 예를 설명하기 위한 도면이다.
도 12는 본 개시의 일 실시예에 따른 영상 부호화 방법의 순서도이다.
도 13은 본 개시의 일 실시예에 따른 영상 부호화 장치의 구성을 도시하는 도면이다.
도 14는 본 개시의 일 실시예에 따른 영상 복호화 방법의 순서도이다.
도 15는 본 개시의 일 실시예에 따른 영상 복호화 방법의 순서도이다.
도 16은 본 개시의 일 실시예에 따른 움직임 벡터 인코더, 움직임 벡터 디코더, 잔차 인코더, 및 잔차 디코더의 훈련 방법을 설명하기 위한 도면이다.
본 개시는 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고, 이를 상세한 설명을 통해 설명하고자 한다. 그러나, 이는 본 개시의 실시 형태에 대해 한정하려는 것이 아니며, 본 개시는 여러 실시예들의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
실시예를 설명함에 있어서, 관련된 공지 기술에 대한 구체적인 설명이 본 개시의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 본 개시의 설명 과정에서 이용되는 숫자(예를 들어, 제 1, 제 2 등)는 하나의 구성요소를 다른 구성요소와 구분하기 위한 식별 기호에 불과하다.
본 개시에서, "a, b 또는 c 중 적어도 하나" 표현은 " a", " b", " c", "a 및 b", "a 및 c", "b 및 c", "a, b 및 c 모두", 혹은 그 변형들을 지칭할 수 있다.
또한, 본 개시에서, 일 구성요소가 다른 구성요소와 "연결된다" 거나 "접속된다" 등으로 언급된 때에는, 상기 일 구성요소가 상기 다른 구성요소와 직접 연결되거나 또는 직접 접속될 수도 있지만, 특별히 반대되는 기재가 존재하지 않는 이상, 중간에 또 다른 구성요소를 매개하여 연결되거나 또는 접속될 수도 있다고 이해되어야 할 것이다.
또한, 본 개시에서 '~부(유닛)', '모듈' 등으로 표현되는 구성요소는 2개 이상의 구성요소가 하나의 구성요소로 합쳐지거나 또는 하나의 구성요소가 보다 세분화된 기능별로 2개 이상으로 분화될 수도 있다. 또한, 이하에서 설명할 구성요소 각각은 자신이 담당하는 주기능 이외에도 다른 구성요소가 담당하는 기능 중 일부 또는 전부의 기능을 추가적으로 수행할 수도 있으며, 구성요소 각각이 담당하는 주기능 중 일부 기능이 다른 구성요소에 의해 전담되어 수행될 수도 있음은 물론이다.
또한, 본 개시에서, '영상(image)'은 정지 영상, 픽처, 프레임, 복수의 연속된 정지 영상으로 구성된 동영상, 또는 비디오를 나타낼 수 있다.
또한, 본 개시에서 '신경망(neural network)'은 뇌 신경을 모사한 인공 신경망 모델의 대표적인 예시로서, 특정 알고리즘을 사용한 인공 신경망 모델로 한정되지 않는다. 신경망은 심층 신경망(deep neural network)으로 참조될 수도 있다.
또한, 본 개시에서 '파라미터(parameter)'는 신경망을 이루는 각 레이어의 연산 과정에서 이용되는 값으로서 예를 들어, 입력 값을 소정 연산식에 적용할 때 이용될 수 있다. 파라미터는 훈련의 결과로 설정되는 값으로서, 필요에 따라 별도의 훈련 데이터(training data)를 통해 갱신될 수 있다.
또한, 본 개시에서 '특징 데이터'는 신경망 기반의 인코더가 입력 데이터를 처리함으로써 획득되는 데이터를 의미한다. 특징 데이터는 여러 샘플들을 포함하는 1차원 또는 2차원의 데이터일 수 있다. 특징 데이터는 잠재 표현(latent representation)으로 참조될 수도 있다. 특징 데이터는 후술하는 디코더가 출력하는 데이터에 잠재된 특징을 나타낼 수 있다.
또한, 본 개시에서 '현재 영상'은 현재의 처리 대상인 영상을 의미하고, '이전 영상'은 현재 영상 이전의 처리 대상인 영상을 의미한다. 또한, '현재 움직임 벡터'는 현재 영상의 처리를 위해 획득된 움직임 벡터를 의미한다.
또한, 본 개시에서, '샘플'은 영상, 특징 맵 또는 특징 데이터 내 샘플링 위치에 할당된 데이터로서 처리 대상이 되는 데이터를 의미한다. 예를 들어, 샘플은 2차원의 영상 내 픽셀을 포함할 수 있다.
도 1은 본 개시의 일 실시예에 따른 AI에 기반한 영상의 부호화 및 복호화 과정을 도시하는 도면이다.
도 1를 참고하면, AI에 기반한 인터 예측에서 움직임 벡터 인코더(110), 잔차 인코더(130), 움직임 벡터 디코더(150), 및 잔차 디코더(170)가 이용될 수 있다.
움직임 벡터 인코더(110), 잔차 인코더(130), 움직임 벡터 디코더(150), 및 잔차 디코더(170)는 신경망으로 구현될 수 있다.
움직임 벡터 인코더(110) 및 움직임 벡터 디코더(150)는 현재 영상(10)과 이전 복원 영상(30)으로부터 복수의 해상도의 현재 영상(10)에 대한 움직임 벡터 특징 데이터(wi)를 추출하고, 움직임 벡터 특징 데이터(wi)로부터 현재 움직임 벡터(gi)를 추출하기 위한 신경망으로 이해될 수 있다.
잔차 인코더(130)와 잔차 디코더(170)는 입력되는 잔차 영상(ri)의 특징 데이터를 추출하고, 특징 데이터로부터 영상을 복원하는 신경망일 수 있다.
인터 예측은 현재 영상(10)과 이전 복원 영상(30) 사이의 시간적 중복성을 이용하여 현재 영상(10)을 부호화 및 복호화하는 과정이다.
현재 영상(10) 내 블록들 또는 샘플들과 이전 복원 영상(30) 내 참조 블록들 또는 참조 샘플들 사이의 위치 차이(또는 움직임 벡터)가 현재 영상(10)의 부호화 및 복호화에 이용된다. 이러한 위치 차이는 또한 옵티컬 플로우로 참조될 수 있다.
옵티컬 플로우, 특히 현재 옵티컬 플로우는 이전 복원 영상(30) 내 샘플들의 위치가 현재 영상(10) 내에서 어떻게 변경되었는지, 또는 현재 영상(10)의 샘플들과 동일/유사한 샘플들이 이전 복원 영상(30) 내 어디에 위치하는지를 나타낼 수 있다.
예를 들어, 현재 영상(10) 내 (1, 1)에 위치한 샘플과 동일 또는 가장 유사한 샘플이 이전 복원 영상(30)에서 (2, 1)에 위치한다면, 해당 샘플에 대한 옵티컬 플로우 또는 움직임 벡터는 (1(=2-1), 0(=1-1))으로 도출될 수 있다.
AI를 이용한 영상의 부호화 및 복호화 과정에서는 현재 영상(10)에 대한 현재 움직임 벡터(gi)를 획득하기 위해 움직임 벡터 인코더(110) 및 움직임 벡터 디코더(150)를 이용할 수 있다.
구체적으로, 이전 복원 영상(30)과 현재 영상(10)이 움직임 벡터 인코더(110)에 입력될 수 있다. 움직임 벡터 인코더는 훈련의 결과로 설정된 파라미터에 따라 현재 영상(10)과 이전 복원 영상(30)을 처리하여 복수의 해상도의 현재 영상(10)에 대한 움직임 벡터 특징 데이터(wi)를 출력할 수 있다.
움직임 벡터 특징 데이터(wi)는 움직임 벡터 디코더(150)에 입력될 수 있다. 움직임 벡터 디코더(150)는 움직임 벡터 특징 데이터(wi)를 훈련의 결과로 설정된 파라미터에 따라 처리하여 현재 움직임 벡터(gi)를 출력할 수 있다.
이전 복원 영상(30)은 현재 움직임 벡터(gi)에 기반한 움직임 보상(190)이 수행되고, 움직임 보상(190)의 결과로 현재 예측 영상(x'i)이 획득될 수 있다.
움직임 보상(190)은 이전 복원 영상(30) 내에 움직임 벡터가 가리키는 픽셀을 이용하여 현재 영상(10)의 현재 예측 영상이 획득되는 처리 과정이다.
이전 복원 영상(30) 내 샘플들과 현재 영상(10) 내 샘플들 사이의 상대적인 위치 관계를 나타내는 움직임 벡터(gi)에 따라 이전 복원 영상(30)에 대해 움직임 보상(190)(또는, 워핑)이 적용됨으로써 현재 영상(10)과 유사한 현재 예측 영상(x'i)이 획득될 수 있다.
예를 들어, 이전 복원 영상(30) 내 (1, 1)에 위치한 샘플이 현재 영상(10) 내 (2, 1)에 위치하는 샘플과 가장 유사하다면, 움직임 보상(190)을 통해 이전 복원 영상(30) 내 (1, 1)에 위치한 샘플의 위치가 (2, 1)로 변경될 수 있다.
이전 복원 영상(30)으로부터 생성된 현재 예측 영상(x'i)은 현재 영상(10) 자체가 아니므로, 현재 예측 영상(x'i)과 현재 영상(10) 사이의 잔차 영상(ri)이 획득될 수 있다. 예를 들어, 현재 영상(10) 내 샘플 값들로부터 현재 예측 영상(x'i) 내 샘플 값들을 차감함으로써 잔차 영상(ri)이 획득될 수 있다.
잔차 영상(ri)은 잔차 인코더(130)로 입력될 수 있다. 잔차 인코더(130)는 훈련의 결과로 설정된 파라미터에 따라 잔차 영상(ri)을 처리하여 잔차 영상에 대한 특징 데이터(vi)를 출력할 수 있다.
잔차 영상에 대한 특징 데이터(vi)는 잔차 디코더(170)로 입력될 수 있다. 잔차 디코더(170)는 입력된 특징 데이터(vi)를 훈련의 결과로 설정된 파라미터에 따라 처리하여 복원된 잔차 영상(r'i)을 출력할 수 있다.
이전 복원 영상(30)에 대한 움직임 보상(190)을 통해 생성된 현재 예측 영상(x'i)과 복원된 잔차 영상(r'i)의 결합을 통해 현재 복원 영상(50)이 획득될 수 있다.
도 1에 도시된 영상의 부호화 및 복호화 과정이 부호화 장치 및 복호화 장치로 구현되는 경우, 부호화 장치는 현재 영상(10)에 대한 부호화 과정을 통해 획득한 움직임 벡터 특징 데이터(wi)와 잔차 영상의 특징 데이터(vi)를 양자화하고, 양자화된 특징 데이터를 포함하는 비트스트림을 생성하여 복호화 장치로 전송할 수 있다. 복호화 장치는 비트스트림으로부터 추출된 양자화된 특징 데이터를 역양자화하여 움직임 벡터 특징 데이터(wi)와 잔차 영상의 특징 데이터(vi)를 획득할 수 있다. 그리고, 복호화 장치는 움직임 벡터 특징 데이터(wi)와 잔차 영상의 특징 데이터(vi)를 움직임 벡터 디코더(150) 및 잔차디코더(170)로 처리하여 현재 복원 영상(50)을 획득할 수 있다.
도 2는 영상의 해상도에 따른 움직임 검색 범위를 설명하기 위한 도면이다.
움직임 추정은 참조 프레임의 픽셀과 현재 프레임의 픽셀을 비교하여 수행된다. 움직임 벡터의 검색가능한 크기는 움직임 검색 범위에 의해 결정된다. 움직임 검색 범위가 작은 경우에는 작은 움직임 벡터가 정확하게 추정될 수 있고, 움직임 검색 범위가 큰 경우에는 큰 움직임 벡터와 작은 움직임 벡터가 모두 정확하게 추정될 수 있다. 큰 움직임 시퀀스의 코딩 성능을 개선하기 위해서는 큰 움직임 검색 범위가 필요하다.
제한된 움직임 검색 범위에서는 해상도가 작을수록 큰 움직임 벡터의 움직임 검색에 적합하다.
도 2를 참조하면, 현재 픽셀의 움직임 벡터가 큰 경우, 고해상도의 원본 해상도의 현재 프레임(215)의 참조 프레임(210)에 대한 움직임 벡터가 가리키는 위치가 제한된 움직임 검색 범위 내에 있지 않아, 움직임 검색이 적합하지 않다. 즉, 원본 해상도에서는 현재 픽셀의 큰 움직임을 커버할 수 없다.
1/2로 다운스케일된 해상도의 현재 프레임(225)의 참조 프레임(220)에 대한 움직임 벡터의 경우에는 움직임 벡터가 가리키는 위치가 제한된 움직임 검색 범위 내에 위치할 수 있고, 움직임 검색 범위 경계에 위치하여 움직임 검색이 적합하지 않을 수 있다. 즉, 1/2로 다운스케일된 해상도에서는 현재 픽셀의 큰 움직임을 간신히 커버할 수 있다.
1/4로 다운스케일된 해상도의 현재 프레임(235)의 참조 프레임(230)에 대한 움직임 벡터의 경우에는 움직임 벡터가 가리키는 위치가 제한된 움직임 검색 범위 내에 위치하여, 움직임 검색에 적합하다. 즉, 1/4로 다운스케일된 해상도에서는 현재 픽셀의 큰 움직임을 완전히 커버할 수 있다.
도 3은 컨볼루션 연산에 따른 신경망의 수용 필드를 설명하기 위한 도면이다.
도 3을 참고하면, 5x5의 샘플 데이터의 제1 레이어(310)에 대하여 3x3 필터 커널을 적용하여 컨볼루션 연산을 수행하면 제2 레이어(320)에서 5x5의 샘플 데이터에 대응하는 부분은 3x3의 샘플 데이터가 획득된다. 제2 레이어(320)의 샘플 데이터 중 제1 레이어(310)에서의 5x5의 샘플 데이터에 대응하는 3x3의 샘플 데이터에 대하여 3x3 필터 커널을 적용하여 컨볼루션 연산을 수행하면 최종 레이어(330)에서 1x1의 최종 샘플 데이터가 획득된다. 여기서, 1x1의 최종 샘플 데이터를 획득되는데 이용되는 제1 레이어의 샘플 데이터가 5x5의 샘플 데이터이므로, 신경망의 수용 필드(receptive field)는 5x5가 된다. 즉, 최종 출력 픽셀에 기여하는 입력 픽셀들의 범위가 수용 필드이다.
예를 들어, 최종 레이어 전에 5개의 레이어가 있고 필터 커널이 3x3이라면 수용 필드는 11x11이 된다. 최종 레이어 전에 10개의 레이어가 있고 필터 커널이 3x3이라면 수용 필드는 21x21이 된다. 최종 레이어 전에 20개의 레이어가 있고 필터 커널이 3x3이라면 수용 필드는 41x41이 된다. 최종 레이어 전에 40개의 레이어가 있고 필터 커널이 3x3이라면 수용 필드는 81x81이 된다.
또한, 수용 필드 내의 모든 입력 픽셀이 최종 출력 픽셀에 중요한 기여를 하는 것은 아니다. 수용 필드의 중앙 부분에 있는 입력 픽셀들은 최종 출력 픽셀에 중요하게 기여되고 수용 필드의 경계 부분에 있는 입력 픽셀들은 최종 출력 픽셀에 평범하게 기여될 수 있다. 따라서, 유효 수용 필드(effective receptive field)는 수용 필드보다 작을 수 있다.
컨볼루션 신경망은 움직임 추정을 위해 작은 움직임 검색 범위가 제공된다. 따라서, 도 2와 같이, 영상의 해상도가 다운스케일된 해상도에서 움직임 추정을 수행함으로써 큰 움직임 벡터에 대해서 적합한 움직임 검색 범위 내에서 움직임 추정이 수행될 수 있다.
원본 해상도와 원본 해상도로부터 다운스케일된 해상도의 특징 데이터를 획득할 수 있는 신경망 구조를 통해, 유효 수용 필드가 확장되어, 제한적인 움직임 검색 범위에서 큰 움직임 벡터와 작은 움직임 벡터가 모두 커버될 수 있다.
이하 도 4 내지 9에서, 복수의 해상도에 대한 움직임 벡터 특징 데이터를 획득하고, 움직임 벡터 특징 데이터를 이용하여 현재 움직임 벡터를 획득하는 움직임 벡터 디코더 및 움직임 벡터 인코더의 신경망 구조의 일 예가 후술된다.
도 4는 본 개시의 일 실시예에 따른 움직임 벡터 인코더의 신경망 구조를 도시한다.
도 4를 참고하면, 움직임 벡터 인코더(110)는 복수의 신경망 레이어(405, 420, 440)을 포함할 수 있다. 구체적으로, 움직임 벡터 인코더(110)에서 현재 영상과 이전 복원 영상을 접합한 입력 영상(400)이 제1 신경망 레이어(405)에 입력된다. 제1 신경망 레이어(405) 내의 제1 컨볼루션 레이어(401)로부터 제1 특징 맵(410)이 획득되고, 제1 신경망 레이어(405) 내의 풀링 레이어(402)와 제2 컨볼루션 레이어(403)로부터 제2 특징 맵(415)이 획득된다.
제1 컨볼루션 레이어(401)는 스트라이드가 N인 컨볼루션 레이어이고, 풀링 레이어(402)는 특징맵의 크기를 M만큼 감소시키는 풀링 레이어이고, 제2 컨볼루션 레이어(403)는 스트라이드가 L인 컨볼루션 레이어이고 L은 N/M일 수 있다. 풀링 레이어는 입력 데이터의 크기를 감소시키기 때문에 풀링 레이어(402)와 제2 컨볼루션 레이어(403)를 통해 출력되는 제2 특징 맵은 입력 영상의 원본 해상도로부터 1/M로 다운스케일된 해상도에 대한 특징 맵일 수 있다.
"풀링"이 수행되는 방법은 도 10에서 후술된다.
예를 들어, N이 2이고, M이 2이면, L은 1일 수 있다. 이러한 경우, 제1 특징 맵은 입력 영상의 원본 해상도에 대한 특징 맵이고, 제2 특징 맵은 입력 영상의 원본 해상도로부터 1/2로 다운스케일된 해상도에 대한 특징 맵일 수 있다.
여기서, 제1 특징 맵(410)의 채널의 수와 제2 특징 맵(415)의 채널의 수는 반드시 동일할 필요는 없다.
제1 특징 맵(410) 및 제2 특징 맵(415)이 접합되어 제2 신경망 레이어(420)에 입력된다. 제2 신경망 레이어(420) 내의 제1 컨볼루션 레이어(421)로부터 제3 특징 맵(425)이 획득되고, 제1 신경망 레이어(420) 내의 풀링 레이어(422)와 제2 컨볼루션 레이어(423)로부터 제4 특징 맵(430)이 획득된다.
제2 신경망 레이어(420)는 제1 신경망 레이어(405)와 동일할 수 있다. 제1 컨볼루션 레이어(421)는 스트라이드가 N인 컨볼루션 레이어이고, 풀링 레이어(422)는 특징맵의 크기를 M만큼 감소시키는 풀링 레이어이고, 제2 컨볼루션 레이어(423)는 스트라이드가 L인 컨볼루션 레이어이고 L은 N/M일 수 있다. N이 2이고, M이 2이면, L은 1인 경우, 제3 특징 맵(425)은 입력 영상의 원본 해상도와 입력 영상의 원본 해상도로부터 1/2로 다운스케일된 해상도에 대한 특징 맵이고, 제4 특징 맵(430)은 입력 영상의 원본 해상도로부터 1/2로 다운스케일된 해상도와 입력 영상의 원본 해상도로부터 1/4로 다운스케일된 해상도에 대한 특징 맵일 수 있다.
여기서, 제3 특징 맵(425)의 채널의 수와 제4 특징 맵(430)의 채널의 수는 반드시 동일할 필요는 없다.
제3 특징 맵(425) 및 제4 특징 맵(430)이 접합되어 제3 신경망 레이어(440)에 입력된다. 제3 신경망 레이어(440) 내의 제1 컨볼루션 레이어(441)로부터 제5 특징 맵(450)이 획득되고, 제3 신경망 레이어(440) 내의 풀링 레이어(442)와 제2 컨볼루션 레이어(443)로부터 제6 특징 맵(450)이 획득된다.
제3 신경망 레이어(440)는 제1 신경망 레이어(405)와 동일할 수 있다. 제1 컨볼루션 레이어(441)는 스트라이드가 N인 컨볼루션 레이어이고, 풀링 레이어(442)는 특징맵의 크기를 M만큼 감소시키는 풀링 레이어이고, 제2 컨볼루션 레이어(443)는 스트라이드가 L인 컨볼루션 레이어이고 L은 N/M일 수 있다. N이 2이고, M이 2이면, L은 1인 경우, 제5 특징 맵(445)은 입력 영상의 원본 해상도, 입력 영상의 원본 해상도로부터 1/2로 다운스케일된 해상도, 및 입력 영상의 원본 해상도로부터 1/4로 다운스케일된 해상도에 대한 특징 맵이고, 제6 특징 맵(450)은 입력 영상의 원본 해상도로부터 1/2로 다운스케일된 해상도, 입력 영상의 원본 해상도로부터 1/4로 다운스케일된 해상도, 및 입력 영상의 원본 해상도로부터 1/8로 다운스케일된 해상도에 대한 특징 맵일 수 있다.
여기서, 입력 영상의 원본 해상도로부터 1/8로 다운스케일된 해상도에 대한 특징 맵의 경우, 상대적으로 큰 스케일의 해상도에 대한 특징 맵에 비해 유효 수용 필드가 매우 크기 때문에, 큰 크기의 움직임 벡터를 추정하는데 효과적일 수 있다. 일반적인 신경망 구조에서는 동일한 해상도에 대한 특징 맵만이 획득되므로, 유효 수용 필드가 제한적인 반면에, 도 4의 움직임 벡터 인코더에서는 컨볼루션 연산이 수행되기 전에 풀링이 수행됨으로써 다운스케일된 해상도의 특징 맵이 출력되는 레이어들에 대해서 유효 수용 필드가 유효 수용 필드가 확장된다.
여기서, 제5 특징 맵(445)의 채널의 수와 제6 특징 맵(450)의 채널의 수는 반드시 동일할 필요는 없다.
제5 특징 맵(445) 및 제6 특징 맵(450)을 이용하여 복수의 해상도의 현재 영상에 대한 움직임 벡터 특징 데이터가 획득된다.
움직임 벡터 인코더는 특징 맵을 다운스케일하는 적어도 하나의 레이어를 포함한다.
움직임 벡터 인코더의 각 레이어에서의 출력은 복수의 해상도에 대한 특징 맵이 혼합된 것이므로, 움직임 벡터 인코더에서 최종 출력 데이터는 복수의 해상도의 현재 영상에 대한 움직임 벡터 특징 데이터이다. 최종 출력된 복수의 해상도의 현재 영상에 대한 움직임 벡터 특징 데이터는 움직임 벡터 인코더를 통해 특징맵의 크기가 압축되어 비트레이트를 감소시킬 수 있다.
도 5는 본 개시의 일 실시예에 따른 움직임 벡터 인코더의 신경망 구조를 도시한다.
도 5를 참고하면, 움직임 벡터 인코더(110)는 복수의 신경망 레이어(505, 520, 540)을 포함할 수 있다. 구체적으로, 움직임 벡터 인코더(110)에서 현재 영상과 이전 복원 영상을 접합한 입력 영상(500)이 제1 신경망 레이어(505)에 입력된다. 제1 신경망 레이어(505) 내의 제1 컨볼루션 레이어(501)와 풀링 레이어(502)로부터 제1 특징 맵(510)이 획득되고, 제1 신경망 레이어(505) 내의 풀링 레이어(503)와 제2 컨볼루션 레이어(504)로부터 제2 특징 맵(515)이 획득된다.
제1 컨볼루션 레이어(501) 및 제2 컨볼루션 레이어(504)는 스트라이드가 N인 컨볼루션 레이어이고, 풀링 레이어(502) 및 풀링 레이어(503)는 특징맵의 크기를 M만큼 감소시키는 풀링 레이어일 수 있다. 풀링 레이어(503)는 입력 데이터의 크기를 감소시키기 때문에 풀링 레이어(503)와 제2 컨볼루션 레이어(504)를 통해 출력되는 제2 특징 맵은 입력 영상의 원본 해상도로부터 1/M로 다운스케일된 해상도에 대한 특징 맵일 수 있다. 반면에, 제1 컨볼루션 레이어(501)와 풀링 레이어(502)를 통해 출력되는 제1 특징 맵은 먼저 제1 컨볼루션 레이어(501)를 통해 중간 특징 맵이 획득된 후 중간 특징 맵의 크기를 감소시키는 것일 뿐이기 때문에 입력 영상의 원본 해상도에 대한 특징 맵일 수 있다.
예를 들어, N이 1이고, M이 2인 경우, 제1 특징 맵은 입력 영상의 원본 해상도에 대한 특징 맵이고, 제2 특징 맵은 입력 영상의 원본 해상도로부터 1/2로 다운스케일된 해상도에 대한 특징 맵일 수 있다.
여기서, 제1 특징 맵(510)의 채널의 수 및 제2 특징 맵(515)의 채널의 수는 반드시 동일할 필요는 없다.
제1 특징 맵(510) 및 제2 특징 맵(515)이 접합되어 제2 신경망 레이어(520)에 입력된다. 제2 신경망 레이어(520) 내의 제1 컨볼루션 레이어(521) 및 풀링 레이어(522)로부터 제3 특징 맵(525)이 획득되고, 제1 신경망 레이어(520) 내의 풀링 레이어(523)와 제2 컨볼루션 레이어(524)로부터 제4 특징 맵(530)이 획득된다.
제2 신경망 레이어(520)는 제1 신경망 레이어(505)와 동일할 수 있다. N이 1이고, M이 2인 경우, 제3 특징 맵(525)은 입력 영상의 원본 해상도와 입력 영상의 원본 해상도로부터 1/2로 다운스케일된 해상도에 대한 특징 맵이고, 제4 특징 맵(530)은 입력 영상의 원본 해상도로부터 1/2로 다운스케일된 해상도와 입력 영상의 원본 해상도로부터 1/4로 다운스케일된 해상도에 대한 특징 맵일 수 있다.
여기서, 제3 특징 맵(525)의 채널의 수 및 제4 특징 맵(530)의 채널의 수는 반드시 동일할 필요는 없다.
제3 특징 맵(525) 및 제4 특징 맵(530)이 접합되어 제3 신경망 레이어(540)에 입력된다. 제3 신경망 레이어(540) 내의 제1 컨볼루션 레이어(541) 및 풀링 레이어(542)로부터 제5 특징 맵(545)이 획득되고, 제3 신경망 레이어(440) 내의 풀링 레이어(543)와 제2 컨볼루션 레이어(544)로부터 제6 특징 맵(450)이 획득된다.
제3 신경망 레이어(540)는 제1 신경망 레이어(405)와 동일할 수 있다. N이 1이고, M이 2인 경우, 제5 특징 맵(545)은 입력 영상의 원본 해상도, 입력 영상의 원본 해상도로부터 1/2로 다운스케일된 해상도, 및 입력 영상의 원본 해상도로부터 1/4로 다운스케일된 해상도에 대한 특징 맵이고, 제6 특징 맵(550)은 입력 영상의 원본 해상도로부터 1/2로 다운스케일된 해상도, 입력 영상의 원본 해상도로부터 1/4로 다운스케일된 해상도, 및 입력 영상의 원본 해상도로부터 1/8로 다운스케일된 해상도에 대한 특징 맵일 수 있다.
여기서, 입력 영상의 원본 해상도로부터 1/8로 다운스케일된 해상도에 대한 특징 맵의 경우, 상대적으로 큰 스케일의 해상도에 대한 특징 맵에 비해 유효 수용 필드가 매우 크기 때문에, 큰 크기의 움직임 벡터를 추정하는데 효과적일 수 있다. 일반적인 신경망 구조에서는 동일한 해상도에 대한 특징 맵만이 획득되므로, 유효 수용 필드가 제한적인 반면에, 도 5의 움직임 벡터 인코더에서는 컨볼루션 연산이 수행되기 전에 풀링이 수행됨으로써 다운스케일된 해상도의 특징 맵이 출력되는 레이어들에 대해서 유효 수용 필드가 유효 수용 필드가 확장된다.
여기서, 제5 특징 맵(545)의 채널의 수 및 제6 특징 맵(550)의 채널의 수는 반드시 동일할 필요는 없다.
제5 특징 맵(545) 및 제6 특징 맵(550)을 이용하여 복수의 해상도의 현재 영상에 대한 움직임 벡터 특징 데이터가 획득된다.
또한, 제1 컨볼루션 레이어(501)의 스트라이드가 N1이고, 제2 컨볼루션 레이어(504)의 스트라이드가 N2이고, 풀링 레이어(502)의 다운스케일 비율이 M1이고, 풀링 레이어(503)의 다운스케일 비율이 M2면, N1*M1=N2*M2의 조건으로 움직임 벡터 인코더의 신경망 구조가 결정될 수 있다.
또한, 제1 컨볼루션 레이어(521)의 스트라이드가 N3이고, 제2 컨볼루션 레이어(524)의 스트라이드가 N4이고, 풀링 레이어(522)의 다운스케일 비율이 M3이고, 풀링 레이어(523)의 다운스케일 비율이 M4면, N3*M3=N4*M4의 조건으로 움직임 벡터 인코더의 신경망 구조가 결정될 수 있다.
또한, 제1 컨볼루션 레이어(541)의 스트라이드가 N5이고, 제2 컨볼루션 레이어(544)의 스트라이드가 N6이고, 풀링 레이어(542)의 다운스케일 비율이 M5이고, 풀링 레이어(543)의 다운스케일 비율이 M6면, N5*M5=N6*M6의 조건으로 움직임 벡터 인코더의 신경망 구조가 결정될 수 있다.움직임 벡터 인코더는 특징 맵을 다운스케일하는 적어도 하나의 레이어를 포함한다.
움직임 벡터 인코더의 각 레이어에서의 출력은 복수의 해상도에 대한 특징 맵이 혼합된 것이므로, 움직임 벡터 인코더에서 최종 출력 데이터는 복수의 해상도의 현재 영상에 대한 움직임 벡터 특징 데이터이다. 최종 출력된 복수의 해상도의 현재 영상에 대한 움직임 벡터 특징 데이터는 움직임 벡터 인코더를 통해 특징맵의 크기가 압축되어 비트레이트를 감소시킬 수 있다.
도 6은 본 개시의 일 실시예에 따른 움직임 벡터 디코더의 신경망 구조를 도시한다.
도 6을 참고하면, 움직임 벡터 디코더(150)는 복수의 신경망 레이어(605, 620, 640)을 포함할 수 있다. 구체적으로, 움직임 벡터 디코더(150)에서 복수의 해상도의 현재 영상(10)에 대한 움직임 벡터 특징 데이터(600)가 제1 신경망 레이어(605)에 입력된다. 제1 신경망 레이어(605) 내의 제1 업-컨볼루션 레이어(601)로부터 제1 특징 맵(610)이 획득되고, 제1 신경망 레이어(605) 내의 제2 업-컨볼루션 레이어(602)와 곱셈 연산 레이어(603)로부터 제2 특징 맵(615)이 획득된다.
제1 업-컨볼루션 레이어(601) 및 제2 업-컨볼루션 레이어(602)는 업샘플링과 콘볼루션의 역할을 모두 수행하는 컨볼루션 레이어이다. 업샘플링 비율은 움직임 벡터 인코더(110)의 다운스케일 비율에 대응하는 크기이다. 업-컨볼루션은 예를 들어, 디컨볼루션(deconvolution), 콘볼루션 연산과 픽셀 셔플(pixel shuffle)이 함께 수행되는 연산일 수 있다. 곱셈 연산 레이어(603)는 움직임 벡터 인코더(110)의 다운스케일 비율에 대응하는 크기를 곱하는 레이어이다.
제1 특징 맵(610) 및 제2 특징 맵(615)이 접합되어 제2 신경망 레이어(620)에 입력된다. 제2 신경망 레이어(620) 내의 제1 업-컨볼루션 레이어(621)로부터 제3 특징 맵(625)이 획득되고, 제2 신경망 레이어(620) 내의 제2 업-컨볼루션 레이어(622)와 곱셈 연산 레이어(623)로부터 제4 특징 맵(630)이 획득된다.
제3 특징 맵(625) 및 제4 특징 맵(630)이 접합되어 제3 신경망 레이어(640)에 입력된다. 제3 신경망 레이어(640) 내의 제1 업-컨볼루션 레이어(641)로부터 제5 특징 맵(645)이 획득되고, 제3 신경망 레이어(640) 내의 제2 업-컨볼루션 레이어(642)와 곱셈 연산 레이어(643)로부터 제6 특징 맵(650)이 획득된다.
제5 특징 맵(645) 및 제6 특징 맵(650)을 이용하여 현재 움직임 벡터가 획득된다.
또한, 움직임 벡터 인코더에서의 다운스케일 비율이 N인 경우, 제1 업-컨볼루션 레이어(601) 및 제2 업-컨볼루션 레이어(602)의 스트라이드는 N이고, 곱셈 연산 레이어(603)는 N이 곱해지는 레이어인 조건으로 움직임 벡터 디코더의 신경망 구조가 결정될 수 있다.
또한, 움직임 벡터 인코더에서의 다운스케일 비율이 N인 경우, 제1 업-컨볼루션 레이어(621) 및 제2 업-컨볼루션 레이어(622)의 스트라이드는 N이고, 곱셈 연산 레이어(623)는 N이 곱해지는 레이어인 조건으로 움직임 벡터 디코더의 신경망 구조가 결정될 수 있다.
또한, 움직임 벡터 인코더에서의 다운스케일 비율이 N인 경우, 제1 업-컨볼루션 레이어(641) 및 제2 업-컨볼루션 레이어(642)의 스트라이드는 N이고, 곱셈 연산 레이어(643)는 N이 곱해지는 레이어인 조건으로 움직임 벡터 디코더의 신경망 구조가 결정될 수 있다.
도 6의 움직임 벡터 디코더의 신경망 구조는 도 4 또는 도 5에서 전술된 움직임 벡터 인코더의 신경망 구조에 대응하는 것으로, 움직임 벡터 인코더로부터 출력된 작은 크기의 특징 데이터를 입력받아 압축된 데이터를 복원함으로써, 현재 움직임 벡터로 출력하기 위한 것이다. 출력된 현재 움직임 벡터는 복수의 해상도에서의 움직임 추정이 반영된 것이므로, 원래 움직임 벡터의 크기가 작은 경우뿐만 아니라 큰 경우에도 정확하게 복원될 수 있다.
도 7은 본 개시의 일 실시예에 따른 움직임 벡터 디코더의 신경망 구조를 도시한다.
도 7을 참고하면, 움직임 벡터 디코더(150)는 복수의 신경망 레이어(710, 730, 750)을 포함할 수 있다. 구체적으로, 움직임 벡터 디코더(150)에서 복수의 해상도의 현재 영상(10)에 대한 움직임 벡터 특징 데이터(700)가 제1 신경망 레이어(710)에 입력된다. 제1 신경망 레이어(710) 내의 제1 컨볼루션 레이어(701) 및 제1 업샘플링 레이어(702)로부터 제1 특징 맵(715)이 획득되고, 제1 신경망 레이어(710) 내의 제2 업샘플링 레이어(703), 제2 컨볼루션 레이어(704), 및 곱셈 연산 레이어(705)로부터 제2 특징 맵(615)이 획득된다.
제1 업샘플링 레이어(702) 및 제2 업샘플링 레이어(703)는 업샘플링 연산을 수행하는 레이어이다. 업샘플링 비율은 움직임 벡터 인코더(110)의 다운스케일 비율에 대응하는 크기이다.
곱셈 연산 레이어(705)는 움직임 벡터 인코더(110)의 다운스케일 비율에 대응하는 크기를 곱하는 레이어이다.
제1 특징 맵(715) 및 제2 특징 맵(720)이 접합되어 제2 신경망 레이어(730)에 입력된다. 제2 신경망 레이어(730) 내의 제1 컨볼루션 레이어(721) 및 제1 업샘플링 레이어(722)로부터 제3 특징 맵(735)이 획득되고, 제2 신경망 레이어(730) 내의 제2 업샘플링 레이어(723), 제2 컨볼루션 레이어(724), 및 곱셈 연산 레이어(725)로부터 제4 특징 맵(740)이 획득된다.
제3 특징 맵(735) 및 제4 특징 맵(740)이 접합되어 제3 신경망 레이어(750)에 입력된다. 제3 신경망 레이어(750) 내의 제1 컨볼루션 레이어(741) 및 제1 업샘플링 레이어(742)로부터 제5 특징 맵(755)이 획득되고, 제3 신경망 레이어(750) 내의 제2 업샘플링 레이어(743), 제2 컨볼루션 레이어(744), 및 곱셈 연산 레이어(745)로부터 제6 특징 맵(760)이 획득된다.
제5 특징 맵(755) 및 제6 특징 맵(760)을 이용하여 현재 움직임 벡터가 획득된다.
또한, 제1 컨볼루션 레이어(701)의 스트라이드가 N1이고, 제2 컨볼루션 레이어(704)의 스트라이드가 N2이고, 제1 업샘플링 레이어(702)의 업샘플링 비율이 M1이고, 제2 업샘플링 레이어(703)의 업샘플링 비율이 M2이면, N1*M1=N2*M2의 조건으로 움직임 벡터 디코더의 신경망 구조가 결정될 수 있다.
또한, 제1 컨볼루션 레이어(721)의 스트라이드가 N3이고, 제2 컨볼루션 레이어(724)의 스트라이드가 N4이고, 제1 업샘플링 레이어(722)의 업샘플링 비율이 M3이고, 제2 업샘플링 레이어(723)의 업샘플링 비율이 M4이면, N3*M3=N4*M4의 조건으로 움직임 벡터 디코더의 신경망 구조가 결정될 수 있다.
또한, 제1 컨볼루션 레이어(741)의 스트라이드가 N5이고, 제2 컨볼루션 레이어(744)의 스트라이드가 N6이고, 제1 업샘플링 레이어(742)의 업샘플링 비율이 M5이고, 제2 업샘플링 레이어(743)의 업샘플링 비율이 M6이면, N5*M5=N6*M6의 조건으로 움직임 벡터 디코더의 신경망 구조가 결정될 수 있다.도 7의 움직임 벡터 디코더의 신경망 구조는 도 4 또는 도 5에서 전술된 움직임 벡터 인코더의 신경망 구조에 대응하는 것으로, 움직임 벡터 인코더로부터 출력된 작은 크기의 특징 데이터를 입력받아 압축된 데이터를 복원함으로써, 현재 움직임 벡터로 출력하기 위한 것이다. 출력된 현재 움직임 벡터는 복수의 해상도에서의 움직임 추정이 반영된 것이므로, 원래 움직임 벡터의 크기가 작은 경우뿐만 아니라 큰 경우에도 정확하게 복원될 수 있다.
도 8은 본 개시의 일 실시예에 따른 움직임 벡터 인코더의 신경망 구조를 도시한다.
도 8을 참고하면, 움직임 벡터 인코더(110)는 복수의 신경망 레이어(605, 625, 645)를 포함할 수 있다. 구체적으로, 움직임 벡터 인코더(110)에서 현재 영상과 이전 복원 영상을 접합한 입력 영상(800)이 제1 신경망 레이어(805)에 입력된다. 제1 신경망 레이어(805) 내의 제1 확장 컨볼루션 레이어(801)로부터 제1 특징 맵(810)이 획득되고, 제1 신경망 레이어(805) 내의 제2 확장 컨볼루션 레이어(802)로부터 제2 특징 맵(815)이 획득되고, 제1 신경망 레이어(805) 내의 제3 확장 컨볼루션 레이어(803)로부터 제3 특징 맵(820)이 획득된다.
제1 확장 컨볼루션 레이어(801)는 확장 비율이 1인 확장 컨볼루션 연산이 수행되는 레이어이고, 제2 확장 컨볼루션 레이어(802)는 확장 비율이 d2인 확장 컨볼루션 연산이 수행되는 레이어이고, 제3 확장 컨볼루션 레이어(803)는 확장 비율이 d3인 확장 컨볼루션 연산이 수행되는 레이어일 수 있다.
제1 확장 컨볼루션 레이어(801), 제2 확장 컨볼루션 레이어(802), 및 제3 확장 컨볼루션 레이어(803)는 확장 비율은 다르고, 스트라이드는 동일한 컨볼루션 연산이 수행되는 레이어이다.
'확장 컨볼루션'에 대한 구체적인 설명은 도 11에서 후술된다.
확장 컨볼루션 연산은 확장 비율만큼 입력 데이터의 크기를 줄일 수 있기 때문에, 확장 비율이 1인 제1 확장 컨볼루션 레이어(801)로부터 획득되는 제1 특징 맵(810)은 입력 영상의 원본 해상도에 대한 특징 맵이고, 확장 비율이 d2인 제2 확장 컨볼루션 레이어(802)로부터 획득되는 제2 특징 맵(815)은 입력 영상의 원본 해상도로부터 d2에 기초하여 다운스케일된 해상도에 대한 특징 맵이고, 확장 비율이 d3인 제3 확장 컨볼루션 레이어(803)로부터 획득되는 제3 특징 맵(820)은 입력 영상의 원본 해상도로부터 d3에 기초하여 다운스케일된 해상도에 대한 특징 맵일 수 있다. 여기서, d2의 값은 2이고, d3의 값은 3일 수 있다.
제1 특징 맵(810), 제2 특징 맵(815), 및 제3 특징 맵(820)이 접합되어 제2 신경망 레이어(825)에 입력된다. 제2 신경망 레이어(825) 내의 제1 확장 컨볼루션 레이어(821)로부터 제4 특징 맵(830)이 획득되고, 제2 신경망 레이어(825) 내의 제2 확장 컨볼루션 레이어(822)로부터 제5 특징 맵(835)이 획득되고, 제2 신경망 레이어(845) 내의 제3 확장 컨볼루션 레이어(823)로부터 제6 특징 맵(840)이 획득된다.
제1 확장 컨볼루션 레이어(821)는 제1 확장 컨볼루션 레이어(801)와 동일하고, 제2 확장 컨볼루션 레이어(822)는 제2 확장 컨볼루션 레이어(802)와 동일하고, 제3 확장 컨볼루션 레이어(823)는 제3 확장 컨볼루션 레이어(803)와 동일할 수 있다. 이에 따라, 제4 특징 맵(830)은 입력 영상의 원본 해상도, 입력 영상의 원본 해상도로부터 d2에 기초하여 다운스케일된 해상도, 및 입력 영상의 원본 해상도로부터 d3에 기초하여 다운스케일된 해상도에 대한 특징 맵이고, 제5 특징 맵(835)은 입력 영상의 원본 해상도로부터 d2에 기초하여 다운스케일된 해상도, 입력 영상의 원본 해상도로부터 d2에 기초하여 2번 다운스케일된 해상도, 및 입력 영상의 원본 해상도로부터 d3 및 d2에 기초하여 다운스케일된 해상도에 대한 특징 맵이고, 제6 특징 맵(840)은 입력 영상의 원본 해상도로부터 d3에 기초하여 다운스케일된 해상도, 입력 영상의 원본 해상도로부터 d2 및 d3에 기초하여 다운스케일된 해상도, 및 입력 영상의 원본 해상도로부터 d3에 기초하여 2번 다운스케일된 해상도에 대한 특징 맵일 수 있다.
제1 확장 컨볼루션 레이어(821), 제2 확장 컨볼루션 레이어(822), 및 제3 확장 컨볼루션 레이어(823)는 확장 비율은 다르고, 스트라이드는 동일한 컨볼루션 연산이 수행되는 레이어이다.
제4 특징 맵(830), 제5 특징 맵(835), 및 제6 특징 맵(840)이 접합되어 제3 신경망 레이어(845)에 입력된다. 제3 신경망 레이어(845) 내의 제1 확장 컨볼루션 레이어(841)로부터 제7 특징 맵(850)이 획득되고, 제3 신경망 레이어(845) 내의 제2 확장 컨볼루션 레이어(842)로부터 제8 특징 맵(855)이 획득되고, 제3 신경망 레이어(845) 내의 제3 확장 컨볼루션 레이어(843)로부터 제9 특징 맵(860)이 획득된다.
제1 확장 컨볼루션 레이어(841)는 제1 확장 컨볼루션 레이어(801)와 동일하고, 제2 확장 컨볼루션 레이어(842)는 제2 확장 컨볼루션 레이어(802)와 동일하고, 제3 확장 컨볼루션 레이어(843)는 제3 확장 컨볼루션 레이어(803)와 동일할 수 있다. 이에 따라, 제7 특징 맵(850)은 입력 영상의 원본 해상도, 입력 영상의 원본 해상도로부터 d2에 기초하여 다운스케일된 해상도, 입력 영상의 원본 해상도로부터 d3에 기초하여 다운스케일된 해상도, 입력 영상의 원본 해상도로부터 d2에 기초하여 2번 다운스케일된 해상도, 입력 영상의 원본 해상도로부터 d3 및 d2에 기초하여 다운스케일된 해상도, 및 입력 영상의 원본 해상도로부터 d3에 기초하여 2번 다운스케일된 해상도에 대한 특징 맵이고, 제8 특징 맵(855)은 입력 영상의 원본 해상도로부터 d2에 기초하여 다운스케일된 해상도, 입력 영상의 원본 해상도로부터 d2에 기초하여 2번 다운스케일된 해상도, 입력 영상의 원본 해상도로부터 d3 및 d2에 기초하여 다운스케일된 해상도, 입력 영상의 원본 해상도로부터 d2에 기초하여 3번 다운스케일된 해상도, 입력 영상의 원본 해상도로부터 d3에 기초하여 1번 및 d2에 기초하여 2번 다운스케일된 해상도, 및 입력 영상의 원본 해상도로부터 d3에 기초하여 2번 및 d2에 기초하여 1번 다운스케일된 해상도에 대한 특징 맵이고, 제9 특징 맵(860)은 입력 영상의 원본 해상도로부터 d3에 기초하여 다운스케일된 해상도, 입력 영상의 원본 해상도로부터 d2 및 d3에 기초하여 다운스케일된 해상도, 입력 영상의 원본 해상도로부터 d3에 기초하여 2번 다운스케일된 해상도, 입력 영상의 원본 해상도로부터 d2에 기초하여 2번 및 d3에 기초하여 1번 다운스케일된 해상도, 입력 영상의 원본 해상도로부터 d3에 기초하여 2번 및 d2에 기초하여 1번 다운스케일된 해상도, 및 입력 영상의 원본 해상도로부터 d3에 기초하여 3번 다운스케일된 해상도에 대한 특징 맵일 수 있다.
제1 확장 컨볼루션 레이어(841), 제2 확장 컨볼루션 레이어(842), 및 제3 확장 컨볼루션 레이어(843)는 확장 비율은 다르고, 스트라이드는 동일한 컨볼루션 연산이 수행되는 레이어이다.
여기서, 입력 영상의 원본 해상도로부터 d3에 기초하여 3번 다운스케일된 해상도에 대한 특징 맵의 경우, 상대적으로 큰 스케일의 해상도에 대한 특징 맵에 비해 유효 수용 필드가 매우 크기 때문에, 큰 크기의 움직임 벡터를 추정하는데 효과적일 수 있다. 일반적인 신경망 구조에서는 동일한 해상도에 대한 특징 맵만이 획득되므로, 유효 수용 필드가 제한적인 반면에, 도 8의 움직임 벡터 인코더에서는 컨볼루션 연산이 수행되기 전에 풀링이 수행됨으로써 다운스케일된 해상도의 특징 맵이 출력되는 레이어들에 대해서 유효 수용 필드가 유효 수용 필드가 확장된다.
제7 특징 맵(850), 제8 특징 맵(855), 및 제9 특징 맵(860)을 이용하여 복수의 해상도의 현재 영상에 대한 움직임 벡터 특징 데이터가 획득된다.
움직임 벡터 인코더는 특징 맵을 다운스케일하는 적어도 하나의 레이어를 포함한다.
움직임 벡터 인코더의 각 레이어에서의 출력은 복수의 해상도에 대한 특징 맵이 혼합된 것이므로, 움직임 벡터 인코더에서 최종 출력 데이터는 복수의 해상도의 현재 영상에 대한 움직임 벡터 특징 데이터이다. 최종 출력된 복수의 해상도의 현재 영상에 대한 움직임 벡터 특징 데이터는 움직임 벡터 인코더를 통해 특징맵의 크기가 압축되어 비트레이트를 감소시킬 수 있다.
도 9는 본 개시의 일 실시예에 따른 움직임 벡터 디코더의 신경망 구조를 도시한다.
도 9를 참고하면, 움직임 벡터 디코더(150)는 복수의 신경망 레이어(905, 925, 945)를 포함할 수 있다. 구체적으로, 움직임 벡터 디코더(150)에서 복수의 해상도의 현재 영상에 대한 움직임 벡터 특징 데이터(900)가 제1 신경망 레이어(905)에 입력된다. 제1 신경망 레이어(905) 내의 제1 확장 컨볼루션의 역연산 레이어(901)로부터 제1 특징 맵(910)이 획득되고, 제1 신경망 레이어(905) 내의 제2 확장 컨볼루션의 역연산 레이어(902)로부터 제2 특징 맵(915)이 획득되고, 제1 신경망 레이어(905) 내의 제3 확장 컨볼루션의 역연산 레이어(903)로부터 제3 특징 맵(915)이 획득된다.
제1 확장 컨볼루션의 역연산 레이어(901)는 도 8의 제1 확장 컨볼루션 레이어(801)에 대응하는 역연산을 수행하는 레이어이고, 제2 확장 컨볼루션의 역연산 레이어(902)는 도 8의 제2 확장 컨볼루션 레이어(802)에 대응하는 역연산을 수행하는 레이어이고, 제3 확장 컨볼루션의 역연산 레이어(903)는 도 8의 제3 확장 컨볼루션 레이어(803)에 대응하는 역연산을 수행하는 레이어이다.
제1 확장 컨볼루션의 역연산 레이어(901), 제2 확장 컨볼루션의 역연산 레이어(902), 및 제3 확장 컨볼루션의 역연산 레이어(903)는 확장 비율이 다르고, 스트라이드가 동일한 확장 컨볼루션의 역연산을 수행하는 레이어이다.
제1 특징 맵(910), 제2 특징 맵(915), 및 제3 특징 맵(920)이 접합되어 제2 신경망 레이어(925)에 입력된다. 제2 신경망 레이어(925) 내의 제1 확장 컨볼루션의 역연산 레이어(921)로부터 제4 특징 맵(930)이 획득되고, 제2 신경망 레이어(925) 내의 제2 확장 컨볼루션의 역연산 레이어(922)로부터 제5 특징 맵(935)이 획득되고, 제2 신경망 레이어(925) 내의 제3 확장 컨볼루션의 역연산 레이어(923)로부터 제6 특징 맵(930)이 획득된다.
제1 특징 맵(910), 제2 특징 맵(915), 및 제3 특징 맵(920)이 접합되어 제2 신경망 레이어(925)에 입력된다. 제2 신경망 레이어(925) 내의 제1 확장 컨볼루션의 역연산 레이어(921)로부터 제4 특징 맵(930)이 획득되고, 제2 신경망 레이어(925) 내의 제2 확장 컨볼루션의 역연산 레이어(922)로부터 제5 특징 맵(935)이 획득되고, 제2 신경망 레이어(925) 내의 제3 확장 컨볼루션의 역연산 레이어(923)로부터 제6 특징 맵(930)이 획득된다.
제1 확장 컨볼루션의 역연산 레이어(921), 제2 확장 컨볼루션의 역연산 레이어(922), 및 제3 확장 컨볼루션의 역연산 레이어(923)는 확장 비율이 다르고, 스트라이드가 동일한 확장 컨볼루션의 역연산을 수행하는 레이어이다.
제4 특징 맵(930), 제5 특징 맵(935), 및 제6 특징 맵(940)이 접합되어 제3 신경망 레이어(945)에 입력된다. 제3 신경망 레이어(945) 내의 제1 확장 컨볼루션의 역연산 레이어(941)로부터 제7 특징 맵(950)이 획득되고, 제3 신경망 레이어(945) 내의 제3 확장 컨볼루션의 역연산 레이어(942)로부터 제8 특징 맵(955)이 획득되고, 제3 신경망 레이어(945) 내의 제3 확장 컨볼루션의 역연산 레이어(943)로부터 제9 특징 맵(960)이 획득된다.
제1 확장 컨볼루션의 역연산 레이어(941), 제2 확장 컨볼루션의 역연산 레이어(942), 및 제3 확장 컨볼루션의 역연산 레이어(943)는 확장 비율이 다르고, 스트라이드가 동일한 확장 컨볼루션의 역연산을 수행하는 레이어이다.
제7 특징 맵(950), 제8 특징 맵(955), 및 제9 특징 맵(960)을 이용하여 현재 움직임 벡터가 획득된다.
도 9의 움직임 벡터 디코더의 신경망 구조는 도 8에서 전술된 움직임 벡터 인코더의 신경망 구조에 대응하는 것으로, 움직임 벡터 인코더로부터 출력된 작은 크기의 특징 데이터를 입력받아 압축된 데이터를 복원함으로써, 현재 움직임 벡터로 출력하기 위한 것이다. 출력된 현재 움직임 벡터는 복수의 해상도에서의 움직임 추정이 반영된 것이므로, 원래 움직임 벡터의 크기가 작은 경우뿐만 아니라 큰 경우에도 정확하게 복원될 수 있다.
도 10은 풀링이 수행되는 방법의 일 예를 설명하기 위한 도면이다.
도 10을 참고하면, 6x6 크기의 제1 특징맵(1000)에 대하여 차원을 1/2로 축소하는 맥스-풀링(Max-pooling)이 수행되어 3x3 크기의 제2 특징맵(1010)이 획득될 수 있다. 이 경우, 제1 특징 맵(1000) 내부의 좌상측의 2x2의 4개의 픽셀들(1001) 중에서 가장 큰 픽셀의 값인 9가 제2 특징맵(1010) 내부의 좌상측 픽셀(1011)의 픽셀 값이 될 수 있다. 그리고, 제1 특징 맵(1000) 내부의 좌측의 2x2의 4개의 픽셀들(1002) 중에서 가장 큰 픽셀의 값인 7이 제2 특징맵(1010) 내부의 좌측 픽셀(1012)의 픽셀 값이 될 수 있다.
또한, 6x6 크기의 제3 특징맵(1020)에 대하여 차원을 1/2로 축소하는 평균-풀링(Average-pooling)이 수행되어 3x3 크기의 제4 특징맵(1030)이 획득될 수 있다. 평균-풀링은 픽셀들의 평균값 또는 평균값의 반올림 값으로 풀링될 수 있다. 이 경우, 제3 특징 맵(1020) 내부의 좌상측의 2x2의 4개의 픽셀들(1021)의 평균 값인 4.5를 반올림한 값인 5가 제4 특징맵(1030) 내부의 좌상측 픽셀(1031)의 픽셀 값이 될 수 있다. 그리고, 제3 특징 맵(1020) 내부의 좌측의 2x2의 4개의 픽셀들(1002)의 평균값인 4가 제4 특징맵(1030) 내부의 좌측 픽셀(1032)의 픽셀 값이 될 수 있다.
이외에도, 픽셀들 중 가장 최소값의 픽셀 값을 축소된 특징맵의 픽셀 값으로 결정하는 최소-풀링(Min-pooling)이 이용될 수 있다. 전술된 풀링 방법들은 대표적인 예시로서, 이에 한정되지 않는다.
풀링은 현재 입력 특징 맵 또는 현재 입력 프레임을 작은 스케일(즉, 작은 해상도)의 특징 맵 또는 프레임을 생성하는데 이용되고, 다양한 크기의 풀링들을 이용하면 다양한 스케일의 특징 맵 또는 프레임이 생성될 수 있다. 이에 따라, 큰 크기의 움직임 벡터를 추정하기 위해 유효 수용 필드가 확장될 수 있다.
도 11은 확장 컨볼루션이 수행되는 방법의 일 예를 설명하기 위한 도면이다.
도 11을 참고하면, 보통의 컨볼루션은 3x3의 컨볼루션 필터(1110)를 컨볼루션 연산의 대상이 되는 특징 맵(1120)에 그대로 적용하여 컨볼루션 연산이 수행된다. 이는 확장 비율(dilated rate)가 1인 경우에 해당된다.
그러나, 3x3의 컨볼루션 필터(1130)가 이용되고, 확장 비율이 2인 확장 컨볼루션(dilated convoluation)의 경우, 3x3의 컨볼루션 필터(1130)의 각 필터 가중치 사이에 가중치가 제로인 값들이 하나씩 패딩되어, 컨볼루션 연산의 대상이 되는 특징 맵(1140)에 5x5 크기의 컨볼루션 필터가 적용되는 것과 동일한 방식으로 컨볼루션 연산이 수행된다.
또한, 3x3의 컨볼루션 필터가 이용되고 확장 비율이 3인 확장 컨볼루션인 경우에는, 3x3의 컨볼루션 필터(1130)의 각 필터 가중치 사이에 가중치가 제로인 값들이 2개씩 패딩되어, 컨볼루션 연산의 대상이 되는 특징 맵에 7x7 크기의 컨볼루션 필터가 적용되는 것과 동일한 방식으로 컨볼루션 연산이 수행될 수 있다.
확장 비율이 큰 확장 컨볼루션이 수행되면 작은 스케일에 대응하는 큰 수용 필드가 획득되고, 확장 비율이 작은 확장 컨볼루션이 수행되면 상대적으로 큰 스케일에 대응하는 작은 수용 필드가 획득될 수 있다.
확장 컨볼루션은 현재 입력 특징 맵 또는 현재 입력 프레임을 작은 스케일(즉, 작은 해상도)의 특징 맵 또는 프레임을 생성하는데 이용되고, 다양한 확장 비율의 확장 컨볼루션을 이용하면 다양한 스케일의 특징 맵 또는 프레임이 생성될 수 있다. 이에 따라, 큰 크기의 움직임 벡터를 추정하기 위해 유효 수용 필드가 확장될 수 있다.
도 12는 본 개시의 일 실시예에 따른 영상 부호화 방법의 순서도이다.
S1210 단계에서, 영상 부호화 장치(1300)는 현재 영상 및 이전 복원 영상을 움직임 벡터 인코더에 적용하여 복수의 해상도의 현재 영상에 대한 움직임 벡터 특징 데이터를 획득한다.
일 실시예에 따라, 복수의 해상도는 현재 영상의 원본 해상도 및 현재 영상의 원본 해상도로부터 다운스케일된 해상도를 포함할 수 있다.
일 실시예에 따라, 움직임 벡터 인코더는 복수의 제1 부호화 신경망 레이어들을 포함하고, 상기 제1 부호화 신경망 레이어는 제1 부호화 레이어 및 제2 부호화 레이어를 병렬적으로 포함하고, 상기 제1 부호화 레이어는 제1 콘볼루션 레이어를 포함하고, 상기 제2 부호화 레이어는 풀링 레이어 및 제2 콘볼루션 레이어를 포함하는 제2 신경망 레이어를 포함할 수 있다.
일 실시예에 따라, 움직임 벡터 인코더는 복수의 제2 부호화 신경망 레이어들을 포함하고, 상기 제2 부호화 신경망 레이어는 제3 부호화 레이어 및 제4 부호화 레이어를 병렬적으로 포함하고, 상기 제3 부호화 레이어는 제3 콘볼루션 레이어 및 제1 풀링 레이어를 포함하고, 상기 제4 부호화 레이어는 제2 풀링 레이어 및 제4 콘볼루션 레이어를 포함할 수 있다.
일 실시예에 따라, 움직임 벡터 인코더는 복수의 제3 부호화 신경망 레이어를 포함하고, 상기 제3 부호화 신경망 레이어는 제1 확장된 컨볼루션(dilated convolution) 레이어, 제2 확장된 컨볼루션 레이어, 및 제3 확장된 컨볼루션 레이어를 병렬적으로 포함할 수 있다.
일 실시예에 따라, 현재 영상은 상기 현재 영상의 픽셀 데이터가 컨볼루션 신경망에 적용되어 출력된 특징 데이터이고, 상기 이전 복원 영상은 상기 이전 복원 영상의 픽셀 데이터가 컨볼루션 신경망에 적용되어 출력된 특징 데이터일 수 있다. 즉, 현재 영상 및 이전 복원 영상은 특징 맵 도메인(domain)일 수 있다.
일 실시예에 따라, 현재 영상은 상기 현재 영상의 픽셀 데이터이고, 상기 이전 복원 영상은 상기 이전 복원 영상의 픽셀 데이터일 수 있다. 즉, 현재 영상 및 이전 복원 영상은 픽셀 도메인일 수 있다.
S1230 단계에서, 영상 부호화 장치(1300)는 움직임 벡터 디코더에 움직임 벡터 특징 데이터를 적용하여 현재 움직임 벡터를 획득한다.
일 실시예에 따라, 움직임 벡터 디코더는 복수의 제1 복호화 신경망 레이어들을 포함하고, 상기 제1 복호화 신경망 레이어는 제1 복호화 레이어 및 제2 복호화 레이어를 병렬적으로 포함하고, 상기 제1 복호화 레이어는 제1 업-컨볼루션 레이어를 포함하고, 상기 제2 복호화 레이어는 제2 업-컨볼루션 레이어 및 다운스케일링 비율에 대응하는 업스케일 비율을 곱하는 제1 곱셈 연산 레이어를 포함할 수 있다.
일 실시예에 따라, 움직임 벡터 디코더는 복수의 제2 복호화 신경망 레이어들을 포함하고, 상기 제2 복호화 신경망 레이어는 제3 복호화 레이어 및 제4 복호화 레이어를 병렬적으로 포함하고, 상기 제3 복호화 레이어는 제1 컨볼루션 레이어 및 제1 업샘플링 연산 레이어를 포함하고, 상기 제4 복호화 레이어는 제2 업샘플링 연산 레이어, 제2 컨볼루션 레이어, 및 다운스케일링 비율에 대응하는 업스케일 비율을 곱하는 제1 곰셉 연산 레이어를 포함할 수 있다.
일 실시예에 따라, 움직임 벡터 디코더는 복수의 제3 복호화 신경망 레이어를 포함하고, 상기 제3 복호화 신경망 레이어는 확장된 컨볼루션에 대한 제1 역연산 레이어, 확장된 컨볼루션에 대한 제2 역연산 레이어, 및 확장된 컨볼루션에 대한 제3 역연산 레이어를 병렬적으로 포함할 수 있다.
S1250 단계에서, 영상 부호화 장치(1300)는 현재 움직임 벡터와 이전 복원 영상을 이용하여 현재 예측 영상을 획득한다.
S1270 단계에서, 영상 부호화 장치(1300)는 움직임 벡터 특징 데이터를 포함하는 비트스트림을 생성한다.
일 실시예에 따라, 영상 부호화 장치(1300)는 현재 예측 영상과 상기 현재 영상의 차이에 대응하는 현재 잔차 영상을 획득하고, 현재 잔차 영상을 잔차 인코더에 적용하여 현재 잔차 영상의 특징 데이터를 획득할 수 있다.
일 실시예에 따라, 비트스트림은 현재 잔차 영상의 특징 데이터를 더 포함할 수 있다.
도 13은 본 개시의 일 실시예에 따른 영상 부호화 장치의 구성을 도시하는 도면이다.
도 13을 참조하면, 본 개시의 일 실시예에 따른 영상 부호화 장치(1300)는 예측 부호화부(1310), 생성부(1320), 획득부(1330), 예측 복호화부(1340)를 포함할 수 있다.
예측 부호화부(1310), 생성부(1320), 획득부(1330), 예측 복호화부(1340)는 프로세서로 구현될 수 있다. 예측 부호화부(1310), 생성부(1320), 획득부(1330), 예측 복호화부(1340)는 메모리(미도시)에 저장된 인스트럭션에 따라 동작할 수 있다.
도 13은 예측 부호화부(1310), 생성부(1320), 획득부(1330), 예측 복호화부(1340)를 개별적으로 도시하고 있으나, 예측 부호화부(1310), 생성부(1320), 획득부(1330), 예측 복호화부(1340)는 하나의 프로세서를 통해 구현될 수 있다. 이 경우, 예측 부호화부(1310), 생성부(1320), 획득부(1330), 예측 복호화부(1340)는 전용 프로세서로 구현되거나, AP(application processor), CPU(central processing unit) 또는 GPU(graphic processing unit)와 같은 범용 프로세서와 소프트웨어의 조합을 통해 구현될 수도 있다. 또한, 전용 프로세서의 경우, 본 개시의 실시예를 구현하기 위한 메모리를 포함하거나, 외부 메모리를 이용하기 위한 메모리 처리부를 포함할 수 있다.
예측 부호화부(1310), 생성부(1320), 획득부(1330), 예측 복호화부(1340)는 복수의 프로세서로 구현될 수도 있다. 이 경우, 예측 부호화부(1310), 생성부(1320), 획득부(1330), 예측 복호화부(1340)는 전용 프로세서들의 조합으로 구현되거나, AP, CPU 또는 GPU와 같은 다수의 범용 프로세서들과 소프트웨어의 조합을 통해 구현될 수도 있다. 또한, 프로세서는 인공지능 전용 프로세서를 포함할 수 있다. 다른 예로, 인공지능 전용 프로세서는 프로세서와 별도의 칩으로 구성될 수 있다.
예측 부호화부(1310)는 움직임 벡터 인코더(1315)를 포함한다. 예측 부호화부(1310)는 현재 영상 및 이전 복원 영상을 움직임 벡터 인코더(1315)에 적용하여 복수의 해상도의 현재 영상에 대한 움직임 벡터 특징 데이터를 획득한다.
생성부(1320)는 예측 부호화부(1310)로부터 획득된 움직임 벡터 특징 데이터를 포함하는 비트스트림을 생성한다.
획득부(1330)는 생성부(1320)에서 생성된 비트스트림으로부터 움직임 벡터 특징 데이터를 획득한다.
또한, 예측 부호화부(1310)는 복수의 해상도의 현재 영상에 대한 움직임 벡터 특징 데이터를 생성부(1320) 및 획득부(1330)를 거치지 않고, 바로 예측 복호화부(1340)로 전송할 수 있다.
예측 복호화부(1340)는 움직임 보상부(1341)와 움직임 벡터 디코더(1342)를 포함한다. 예측 복호화부(1340)는 움직임 벡터 디코더(1342)에 움직임 벡터 특징 데이터를 적용하여 현재 움직임 벡터를 획득한다. 예측 복호화부(1340)는 현재 움직임 벡터를 움직임 보상부(1341)에 전송한다. 또한, 예측 복호화부(1340)는 이전 복원 영상을 획득하여 움직임 보상부(1341)에 전송한다.
예측 복호화부(1340)의 움직임 보상부(1341)는 현재 움직임 벡터와 이전 복원 영상을 이용하여 현재 예측 영상을 획득한다.
생성부(1320)는 예측 복호화부(1340)의 예측 결과에 기초하여 SATD(Sum of Transform Difference) 또는 RDO (Rate Distortion Optimization) 계산 등의 코스트 계산을 통해 움직임 벡터 특징 데이터를 엔트로피 부호화하여 비트스트림을 생성하여 영상 복호화 장치(1500)에 전달한다.
움직임 벡터 인코더(1315) 및 움직임 벡터 디코더(1342)는 하나 이상의 레이어(예를 들어, 컨볼루션 레이어)를 포함하는 신경망으로 구현될 수 있다. 구체적으로, 움직임 벡터 인코더(1315)는 전술된 도 4, 도 5, 도 8 중 하나의 신경망 구조를 포함할 수 있다. 움직임 벡터 디코더(1342)는 전술된 도 6, 도 7, 도 9 중 하나의 신경망 구조를 포함할 수 있다
움직임 벡터 인코더(1315) 및 움직임 벡터 디코더(1342)는 메모리에 저장될 수 있다. 움직임 벡터 인코더(1315) 및 움직임 벡터 디코더(1342)는 AI를 위한 적어도 하나의 전용 프로세서로 구현될 수도 있다.
일 실시예에 따라, 예측 부호화부(1310)는 잔차 인코더를 더 포함할 수 있다. 예측 부호화부(1310)는 예측 복호화부(1340)로부터 현재 예측 영상을 획득할 수 있다. 예측 부호화부(1310)는 현재 예측 영상과 현재 영상의 차이에 대응하는 현재 잔차 영상을 획득하고, 현재 잔차 영상을 잔차 인코더에 적용하여 현재 잔차 영상의 특징 데이터를 획득할 수 있다.
일 실시예에 따라, 생성부(1320)는 예측 부호화부(1310)로부터 획득된 현재 잔차 영상의 특징 데이터를 더 포함하는 비트스트림을 생성할 수 있다.
일 실시예에 따라, 획득부(1330)는 생성부(1320)에서 생성된 비트스트림으로부터 현재 잔차 영상의 특징 데이터를 더 획득할 수 있다.
일 실시예에 따라, 예측 복호화부(1340)는 잔차 디코더를 더 포함할 수 있다. 예측 복호화부(1340)는 잔차 디코더에 현재 잔차 영상의 특징 데이터 적용하여 현재 잔차 영상을 획득할 수 있다. 예측 복호화부(1340)는 현재 예측 영상과 현재 잔차 영상을 이용하여 현재 복원 영상을 획득할 수 있다.
잔차 인코더 및 잔차 디코더는 하나 이상의 레이어(예를 들어, 컨볼루션 레이어)를 포함하는 신경망으로 구현될 수 있다.
잔차 인코더 및 잔차 디코더는 메모리에 저장될 수 있다. 잔차 인코더 및 잔차 디코더는 AI를 위한 적어도 하나의 전용 프로세서로 구현될 수도 있다.
도 14는 본 개시의 일 실시예에 따른 영상 복호화 방법의 순서도이다.
S1410 단계에서, 영상 복호화 장치(1500)는 비트스트림으로부터 복수의 해상도의 현재 영상에 대한 움직임 벡터 특징 데이터를 획득한다.
일 실시예에 따라, 복수의 해상도는 상기 현재 영상의 원본 해상도 및 상기 현재 영상의 원본 해상도로부터 다운스케일된 해상도를 포함할 수 있다.
일 실시예에 따라, 현재 영상은 상기 현재 영상의 픽셀 데이터가 컨볼루션 신경망에 적용되어 출력된 특징 데이터이고, 상기 이전 복원 영상은 상기 이전 복원 영상의 픽셀 데이터가 컨볼루션 신경망에 적용되어 출력된 특징 데이터일 수 있다. 즉, 현재 영상 및 이전 복원 영상은 특징 맵 도메인일 수 있다.
일 실시예에 따라, 현재 영상은 상기 현재 영상의 픽셀 데이터이고, 상기 이전 복원 영상은 상기 이전 복원 영상의 픽셀 데이터일 수 있다. 즉, 현재 영상 및 이전 복원 영상은 픽셀 도메인일 수 있다.
S1430 단계에서, 영상 복호화 장치(1500)는 움직임 벡터 디코더에 움직임 벡터 특징 데이터를 적용하여 현재 움직임 벡터를 획득한다.
일 실시예에 따라, 움직임 벡터 디코더는 복수의 제1 복호화 신경망 레이어들을 포함하고, 상기 제1 복호화 신경망 레이어는 제1 복호화 레이어 및 제2 복호화 레이어를 병렬적으로 포함하고, 상기 제1 복호화 레이어는 제1 업-컨볼루션 레이어를 포함하고, 상기 제2 복호화 레이어는 제2 업-컨볼루션 레이어 및 다운스케일링 비율에 대응하는 업스케일 비율을 곱하는 제1 연산 레이어를 포함할 수 있다.
일 실시예에 따라, 움직임 벡터 디코더는 복수의 제2 복호화 신경망 레이어들을 포함하고, 상기 제2 복호화 신경망 레이어는 제3 복호화 레이어 및 제4 복호화 레이어를 병렬적으로 포함하고, 상기 제3 복호화 레이어는 제1 컨볼루션 레이어와 제1 업샘플링 연산 레이어를 포함하고, 상기 제4 복호화 레이어는 제2 업샘플링 연산 레이어, 제2 컨볼루션 레이어, 및 다운스케일링 비율에 대응하는 업스케일 비율을 곱하는 제1 연산 레이어를 포함할 수 있다.
일 실시예에 따라, 움직임 벡터 디코더는 복수의 제3 복호화 신경망 레이어를 포함하고, 상기 제3 복호화 신경망 레이어는 확장된 컨볼루션에 대한 제1 역연산 레이어, 확장된 컨볼루션에 대한 제2 역연산 레이어, 및 확장된 컨볼루션에 대한 제3 역연산 레이어를 병렬적으로 포함할 수 있다.
S1450 단계에서, 영상 복호화 장치(1500)는 현재 움직임 벡터와 이전 복원 영상을 이용하여 현재 예측 영상을 획득한다.
일 실시예에 따라, 영상 복호화 장치(1500)는 비트스트림으로부터 현재 잔차 영상의 특징 데이터를 획득하고, 잔차 디코더에 현재 잔차 영상의 특징 데이터를 적용하여 현재 잔차 영상을 획득하고, 현재 예측 영상 및 현재 잔차 영상을 이용하여 현재 복원 영상을 획득할 수 있다.
도 15는 본 개시의 일 실시예에 따른 영상 복호화 방법의 순서도이다.
도 15를 참조하면, 본 개시의 일 실시예에 따른 영상 복호화 장치(1500)는 획득부(1510), 예측 복호화부(1520)를 포함할 수 있다.
획득부(1510), 예측 복호화부(1520)는 프로세서로 구현될 수 있다. 획득부(1510), 예측 복호화부(1520)는 메모리(미도시)에 저장된 인스트럭션에 따라 동작할 수 있다.
도 15는 획득부(1510), 예측 복호화부(1520)를 개별적으로 도시하고 있으나, 획득부(1510), 예측 복호화부(1520)는 하나의 프로세서를 통해 구현될 수 있다. 이 경우, 획득부(1510), 예측 복호화부(1520)는 전용 프로세서로 구현되거나, AP(application processor), CPU(central processing unit) 또는 GPU(graphic processing unit)와 같은 범용 프로세서와 소프트웨어의 조합을 통해 구현될 수도 있다. 또한, 전용 프로세서의 경우, 본 개시의 실시예를 구현하기 위한 메모리를 포함하거나, 외부 메모리를 이용하기 위한 메모리 처리부를 포함할 수 있다.
획득부(1510), 예측 복호화부(1520)는 복수의 프로세서로 구현될 수도 있다. 이 경우, 획득부(1510), 예측 복호화부(1520)는 전용 프로세서들의 조합으로 구현되거나, AP, CPU 또는 GPU와 같은 다수의 범용 프로세서들과 소프트웨어의 조합을 통해 구현될 수도 있다. 또한, 프로세서는 인공지능 전용 프로세서를 포함할 수 있다. 다른 예로, 인공지능 전용 프로세서는 프로세서와 별도의 칩으로 구성될 수 있다.
획득부(1510)는 영상 복호화 장치로부터 비트스트림을 전송받는다.
획득부(1510)는 비트스트림으로부터 움직임 벡터 특징 데이터를 획득한다.
예측 복호화부(1520)는 움직임 보상부(1522)와 움직임 벡터 디코더(1521)를 포함한다. 예측 복호화부(1520)는 움직임 벡터 디코더(1521)에 움직임 벡터 특징 데이터를 적용하여 현재 움직임 벡터를 획득한다. 예측 복호화부(1520)는 현재 움직임 벡터를 움직임 보상부(1522)에 전송한다. 또한, 예측 복호화부(1520)는 이전 복원 영상을 획득하여 움직임 보상부(1522)에 전송한다.
예측 복호화부(1520)의 움직임 보상부(1522)는 현재 움직임 벡터와 이전 복원 영상을 이용하여 현재 예측 영상을 획득한다.
움직임 벡터 디코더(1521)는 하나 이상의 레이어(예를 들어, 컨볼루션 레이어)를 포함하는 신경망으로 구현될 수 있다. 구체적으로, 움직임 벡터 디코더(1521)는 전술된 도 6, 도 7, 도 9 중 하나의 신경망 구조를 포함할 수 있다
움직임 벡터 디코더(1521)는 메모리에 저장될 수 있다. 움직임 벡터 디코더(1521)는 AI를 위한 적어도 하나의 전용 프로세서로 구현될 수도 있다.
일 실시예에 따라, 획득부(1510)는 비트스트림으로부터 비트스트림으로부터 현재 잔차 영상의 특징 데이터를 더 획득할 수 있다.
일 실시예에 따라, 예측 복호화부(1520)는 잔차 디코더를 더 포함할 수 있다. 예측 복호화부(1520)는 잔차 디코더에 현재 잔차 영상의 특징 데이터 적용하여 현재 잔차 영상을 획득할 수 있다. 예측 복호화부(1340)는 현재 예측 영상과 현재 잔차 영상을 이용하여 현재 복원 영상을 획득할 수 있다.
잔차 디코더는 하나 이상의 레이어(예를 들어, 컨볼루션 레이어)를 포함하는 신경망으로 구현될 수 있다.
잔차 디코더는 메모리에 저장될 수 있다. 잔차 디코더는 AI를 위한 적어도 하나의 전용 프로세서로 구현될 수도 있다.
도 16은 본 개시의 일 실시예에 따른 움직임 벡터 인코더, 움직임 벡터 디코더, 잔차 인코더, 및 잔차 디코더의 훈련 방법을 설명하기 위한 도면이다.
도 16에서 현재 훈련 영상(1620), 이전 복원 훈련 영상(1610), 현재 예측 훈련 영상(x'i), 및 현재 복원 훈련 영상(1630)은 각각 전술한 현재 영상, 이전 복원 영상, 현재 예측 영상, 및 현재 복원 영상에 대응한다.
움직임 벡터 인코더(110), 움직임 벡터 디코더(150), 잔차 인코더(130), 및 잔차 디코더(170)를 훈련시키는데 있어, 현재 복원 훈련 영상(1630)이 현재 훈련 영상(1620)과 어느 정도로 유사한지, 그리고 현재 훈련 영상(1620)에 대한 부호화를 통해 생성되는 비트스트림의 비트레이트가 어느 정도로 큰지가 고려되어야 한다.
이를 위해, 일 실시예에서는 비트스트림의 크기가 어느 정도로 큰지에 대응하는 제 1 손실 정보(1640)와 제 2 손실 정보(1650), 및 현재 훈련 영상(1620)과 현재 복원 훈련 영상(1630) 사이의 유사도에 대응하는 제 3 손실 정보(1660)에 따라 움직임 벡터 인코더(110), 움직임 벡터 디코더(150), 잔차 인코더(130), 및 잔차 디코더(170)가 훈련될 수 있다.
도 16을 참조하면, 현재 훈련 영상(1620)과 이전 복원 훈련 영상(1610)은 움직임 벡터 인코더(110)로 입력될 수 있다. 움직임 벡터 인코더(110)는 현재 훈련 영상(1620)과 이전 복원 훈련 영상(1610)을 처리하여 복수의 해상도의 현재 영상에 대한 움직임 벡터 특징 데이터(wi)를 출력할 수 있다.
복수의 해상도의 현재 영상에 대한 움직임 벡터 특징 데이터(wi)는 움직임 벡터 디코더(150)로 입력될 수 있고, 움직임 벡터 디코더(150)는 복수의 해상도의 현재 영상에 대한 움직임 벡터 특징 데이터(wi)를 처리하여 현재 움직임 벡터(gi)를 출력할 수 있다.
이전 복원 훈련 영상(1610)과 현재 움직임 벡터(gi)를 이용하여 움직임 보상(190)함으로써, 현재 예측 훈련 영상(x'i)이 생성될 수 있다.
현재 예측 훈련 영상(x'i)과 현재 훈련 영상(1620)을 이용하여 잔차 훈련 영상(ri)이 생성되어 잔차 인코더(130)에 입력될 수 있다.
잔차 인코더(130)는 잔차 훈련 영상(ri)을 처리하여 잔차 영상에 대한 특징 데이터(vi)를 출력할 수 있다.
잔차 영상에 대한 특징 데이터(vi)는 잔차 디코더(170)로 입력될 수 있다. 잔차 디코더(170)는 복원된 잔차 훈련 영상(r'i)을 출력할 수 있다.
이전 복원 훈련 영상(1610)과 현재 움직임 벡터(gi)를 이용한 움직임 보상(190)을 통해 생성된 현재 예측 훈련 영상(x'i)과 복원된 잔차 훈련 영상(r'i)의 결합을 통해 현재 복원 훈련 영상(1630)이 획득될 수 있다.
제 1 손실 정보(1640)는 복수의 해상도의 현재 영상에 대한 움직임 벡터 특징 데이터(wi)의 엔트로피 또는 복수의 해상도의 현재 영상에 대한 움직임 벡터 특징 데이터(wi)에 대응하는 비트스트림의 비트레이트로부터 산출될 수 있다.
제 2 손실 정보(1650)는 잔차 영상에 대한 특징 데이터(vi)의 엔트로피 또는 잔차 영상에 대한 특징 데이터(vi)에 대응하는 비트스트림의 비트레이트로부터 산출될 수 있다.
제 1 손실 정보(1640)와 제 2 손실 정보(1650)는, 현재 훈련 영상(1620)에 대한 부호화 효율에 관련되므로, 제 1 손실 정보(1640)와 제 2 손실 정보(1650)는 압축도 손실 정보로 참조될 수 있다.
일 실시예에서, 도 16은 비트스트림의 비트레이트와 관련된 제 1 손실 정보(1640)와 제 2 손실 정보(1650)가 도출되는 것으로 도시하고 있으나, 현재 훈련 영상(1620)의 부호화를 통해 생성되는 하나의 비트스트림의 비트레이트에 대응하는 하나의 손실 정보가 도출될 수도 있다.
제 3 손실 정보(1660)는 현재 훈련 영상(1620)과 현재 복원 훈련 영상(1630) 사이의 차이에 대응할 수 있다. 현재 훈련 영상(1620)과 현재 복원 훈련 영상(1630) 사이의 차이는, 현재 훈련 영상(1620)과 현재 복원 훈련 영상(1630) 사이의 L1-norm 값, L2-norm 값, SSIM(Structural Similarity) 값, PSNR-HVS(Peak Signal-To-Noise Ratio-Human Vision System) 값, MS-SSIM(Multiscale SSIM) 값, VIF(Variance Inflation Factor) 값 및 VMAF(Video Multimethod Assessment Fusion) 값 중 적어도 하나를 포함할 수 있다.
제 3 손실 정보(1660)는 현재 복원 훈련 영상(1630)의 퀄리티와 관련이 있으므로, 제 3 손실 정보(1660)는 퀄리티 손실 정보로 참조될 수도 있다.
움직임 벡터 인코더(110), 움직임 벡터 디코더(150), 잔차 인코더(130), 및 잔차 디코더(170)는 제 1 손실 정보(1640), 제 2 손실 정보(1650) 및 제 3 손실 정보(1660) 중 적어도 하나로부터 도출되는 최종 손실 정보가 감소 또는 최소화되도록 훈련될 수 있다.
구체적으로, 움직임 벡터 인코더(110), 움직임 벡터 디코더(150), 잔차 인코더(130), 및 잔차 디코더(170)는 미리 설정된 파라미터의 값을 변경하면서 최종 손실 정보가 감소 또는 최소화되도록 할 수 있다.
일 실시예에서, 최종 손실 정보는 하기 수학식 1에 따라 산출될 수 있다.
[수학식 1]
최종 손실 정보 = a*제 1 손실 정보+b*제 2 손실 정보+c*제 3 손실 정보
수학식 1에서, a, b, c는 각각 제 1 손실 정보(1640), 제 2 손실 정보(1650) 및 제 3 손실 정보(1660) 각각에 적용되는 가중치이다.
수학식 1에 따르면, 움직임 벡터 인코더(110), 움직임 벡터 디코더(150), 잔차 인코더(130), 및 잔차 디코더(170)는 현재 복원 훈련 영상(1630)이 현재 훈련 영상(1620)에 최대한 유사해지고, 움직임 벡터 인코더(110) 및 잔차인코더(130)로부터 출력되는 데이터에 대응하는 비트스트림의 크기가 최소화되는 방향으로 훈련됨을 알 수 있다.
일 실시예에 따른 AI에 기반한 영상 부호화 방법은, 현재 영상 및 이전 복원 영상을 움직임 벡터 인코더에 적용하여 복수의 해상도의 현재 영상에 대한 움직임 벡터 특징 데이터를 획득하는 단계; 움직임 벡터 디코더에 상기 움직임 벡터 특징 데이터를 적용하여 현재 움직임 벡터를 획득하는 단계; 상기 현재 움직임 벡터와 이전 복원 영상을 이용하여 현재 예측 영상을 획득하는 단계; 상기 움직임 벡터 특징 데이터를 포함하는 비트스트림을 생성하는 단계를 포함하고, 상기 복수의 해상도는 상기 현재 영상의 원본 해상도 및 상기 현재 영상의 원본 해상도로부터 다운스케일된 해상도를 포함할 수 있다.
일 실시예에 따라, AI에 기반한 영상 부호화 방법은 현재 예측 영상과 상기 현재 영상의 차이에 대응하는 현재 잔차 영상을 획득하는 단계; 상기 현재 잔차 영상을 잔차 인코더에 적용하여 상기 현재 잔차 영상의 특징 데이터를 획득하는 단계;를 더 포함하고, 상기 비트스트림은 현재 잔차 영상의 특징 데이터를 더 포함할 수 있다.
일 실시예에 따라, 움직임 벡터 디코더는 복수의 제1 복호화 신경망 레이어들을 포함하고, 상기 제1 복호화 신경망 레이어는 제1 복호화 레이어 및 제2 복호화 레이어를 병렬적으로 포함하고, 상기 제1 복호화 레이어는 제1 업-컨볼루션 레이어를 포함하고, 상기 제2 복호화 레이어는 제2 업-컨볼루션 레이어 및 다운스케일링 비율에 대응하는 업스케일 비율을 곱하는 제1 곱셈 연산 레이어를 포함하고, 상기 움직임 벡터 인코더는 복수의 제1 부호화 신경망 레이어들을 포함하고, 상기 제1 부호화 신경망 레이어는 제1 부호화 레이어 및 제2 부호화 레이어를 병렬적으로 포함하고, 상기 제1 부호화 레이어는 제1 콘볼루션 레이어를 포함하고, 상기 제2 부호화 레이어는 풀링 레이어 및 제2 콘볼루션 레이어를 포함하는 제2 신경망 레이어를 포함할 수 있다.
일 실시예에 따라, 상기 움직임 벡터 디코더는 복수의 제2 복호화 신경망 레이어들을 포함하고, 상기 제2 복호화 신경망 레이어는 제3 복호화 레이어 및 제4 복호화 레이어를 병렬적으로 포함하고, 상기 제3 복호화 레이어는 제1 컨볼루션 레이어 및 제1 업샘플링 연산 레이어를 포함하고, 상기 제4 복호화 레이어는 제2 업샘플링 연산 레이어, 제2 컨볼루션 레이어, 및 다운스케일링 비율에 대응하는 업스케일 비율을 곱하는 제1 곰셉 연산 레이어를 포함하고, 상기 움직임 벡터 인코더는 복수의 제2 부호화 신경망 레이어들을 포함하고, 상기 제2 부호화 신경망 레이어는 제3 부호화 레이어 및 제4 부호화 레이어를 병렬적으로 포함하고, 상기 제3 부호화 레이어는 제3 콘볼루션 레이어 및 제1 풀링 레이어를 포함하고, 상기 제4 부호화 레이어는 제2 풀링 레이어 및 제4 콘볼루션 레이어를 포함할 수 있다.
일 실시예에 따라, 상기 움직임 벡터 디코더는 복수의 제3 복호화 신경망 레이어를 포함하고, 상기 제3 복호화 신경망 레이어는 확장된 컨볼루션에 대한 제1 역연산 레이어, 확장된 컨볼루션에 대한 제2 역연산 레이어, 및 확장된 컨볼루션에 대한 제3 역연산 레이어를 병렬적으로 포함하고, 상기 움직임 벡터 인코더는 복수의 제3 부호화 신경망 레이어를 포함하고, 상기 제3 부호화 신경망 레이어는 제1 확장된 컨볼루션(dilated convolution) 레이어, 제2 확장된 컨볼루션 레이어, 및 제3 확장된 컨볼루션 레이어를 병렬적으로 포함할 수 있다.
일 실시예에 따라, 현재 영상은 상기 현재 영상의 픽셀 데이터가 컨볼루션 신경망에 적용되어 출력된 특징 데이터이고, 상기 이전 복원 영상은 상기 이전 복원 영상의 픽셀 데이터가 컨볼루션 신경망에 적용되어 출력된 특징 데이터일 수 있다.
일 실시예에 따라, 현재 영상은 상기 현재 영상의 픽셀 데이터이고, 상기 이전 복원 영상은 상기 이전 복원 영상의 픽셀 데이터일 수 있다.
본 개시의 일 실시예에 따른 AI에 기반한 영상 부호화 방법은 입력 영상의 해상도를 유지하는 신경망 레이어와 입력 영상의 해상도를 다운스케일하는 신경망 레이어를 포함하는 신경망 구조의 움직임 벡터 인코더를 이용하여 복수의 해상도의 현재 영상에 대한 움직임 벡터 특징 데이터를 획득하고 움직임 벡터 특징 데이터를 움직임 벡터 디코터에 적용하여 현재 움직임 벡터를 획득함으로써, 확장된 유효 수용 필드를 적용하여 작은 크기의 움직임 벡터 뿐만 아니라 큰 크기의 움직임 벡터를 추정하는데 효과적이고, 움직임 벡터 인코더로부터 획득되는 복수의 해상도의 현재 영상에 대한 움직임 벡터 특징 데이터는 최종 레이어에서 출력된 작은 크기의 특징 맵이면서 모든 스케일에 대한 특징 맵이므로, 데이터 압축 측면에서 복수의 스케일의 특징 데이터의 부호화에 효율적이고, 비디오 코딩에 적합하다.
일 실시예에 따른 AI에 기반한 영상 복호화 방법은, 비트스트림으로부터 복수의 해상도의 현재 영상에 대한 움직임 벡터 특징 데이터를 획득하는 단계; 움직임 벡터 디코더에 상기 움직임 벡터 특징 데이터를 적용하여 현재 움직임 벡터를 획득하는 단계; 상기 현재 움직임 벡터와 이전 복원 영상을 이용하여 현재 예측 영상을 획득하는 단계를 포함하고, 상기 복수의 해상도는 상기 현재 영상의 원본 해상도 및 상기 현재 영상의 원본 해상도로부터 다운스케일된 해상도를 포함할 수 있다.
일 실시예에 따라, AI에 기반한 영상 복호화 방법은 비트스트림으로부터 현재 잔차 영상의 특징 데이터를 획득하는 단계; 잔차 디코더에 상기 현재 잔차 영상의 특징 데이터를 적용하여 상기 현재 잔차 영상을 획득하는 단계; 상기 현재 예측 영상 및 상기 현재 잔차 영상을 이용하여 현재 복원 영상을 획득하는 단계;를 더 포함할 수 있다.
일 실시예에 따라, 움직임 벡터 디코더는 복수의 제1 복호화 신경망 레이어들을 포함하고, 상기 제1 복호화 신경망 레이어는 제1 복호화 레이어 및 제2 복호화 레이어를 병렬적으로 포함하고, 상기 제1 복호화 레이어는 제1 업-컨볼루션 레이어를 포함하고, 상기 제2 복호화 레이어는 제2 업-컨볼루션 레이어 및 다운스케일링 비율에 대응하는 업스케일 비율을 곱하는 제1 연산 레이어를 포함할 수 있다.
일 실시예에 따라, 움직임 벡터 디코더는 복수의 제2 복호화 신경망 레이어들을 포함하고, 상기 제2 복호화 신경망 레이어는 제3 복호화 레이어 및 제4 복호화 레이어를 병렬적으로 포함하고, 상기 제3 복호화 레이어는 제1 컨볼루션 레이어와 제1 업샘플링 연산 레이어를 포함하고, 상기 제4 복호화 레이어는 제2 업샘플링 연산 레이어, 제2 컨볼루션 레이어, 및 다운스케일링 비율에 대응하는 업스케일 비율을 곱하는 제1 연산 레이어를 포함할 수 있다.
일 실시예에 따라, 움직임 벡터 디코더는 복수의 제3 복호화 신경망 레이어를 포함하고, 상기 제3 복호화 신경망 레이어는 확장된 컨볼루션에 대한 제1 역연산 레이어, 확장된 컨볼루션에 대한 제2 역연산 레이어, 및 확장된 컨볼루션에 대한 제3 역연산 레이어를 병렬적으로 포함할 수 있다.
일 실시예에 따라, 현재 영상은 상기 현재 영상의 픽셀 데이터가 컨볼루션 신경망에 적용되어 출력된 특징 데이터이고, 상기 이전 복원 영상은 상기 이전 복원 영상의 픽셀 데이터가 컨볼루션 신경망에 적용되어 출력된 특징 데이터일 수 있다.
일 실시예에 따라, 현재 영상은 상기 현재 영상의 픽셀 데이터이고, 상기 이전 복원 영상은 상기 이전 복원 영상의 픽셀 데이터일 수 있다.
본 개시의 일 실시예에 따른 AI에 기반한 영상 복호화 방법은 비트스트림으로부터 복수의 해상도의 현재 영상에 대한 움직임 벡터 특징 데이터를 획득하고 움직임 벡터 특징 데이터를 움직임 벡터 디코터에 적용하여 현재 움직임 벡터를 획득함으로써, 확장된 유효 수용 필드를 적용하여 작은 크기의 움직임 벡터 뿐만 아니라 큰 크기의 움직임 벡터를 추정하는데 효과적이고, 비트스트림으로부터 획득되는 복수의 해상도의 현재 영상에 대한 움직임 벡터 특징 데이터는 최종 레이어에서 출력된 작은 크기의 특징 맵이면서 모든 스케일에 대한 특징 맵이므로, 데이터 압축 측면에서 복수의 스케일의 특징 데이터의 부호화에 효율적이고, 비디오 코딩에 적합하다.
일 실시예에 따른 AI에 기반한 영상 부호화 장치는 현재 영상 및 이전 복원 영상을 움직임 벡터 인코더에 적용하여 복수의 해상도의 현재 영상에 대한 움직임 벡터 특징 데이터를 획득하는 예측 부호화부(1310); 움직임 벡터 디코더에 상기 움직임 벡터 특징 데이터를 적용하여 현재 움직임 벡터를 획득하고, 상기 현재 움직임 벡터와 이전 복원 영상을 이용하여 현재 예측 영상을 획득하는 예측 복호화부(1340); 및 상기 움직임 벡터 특징 데이터를 포함하는 비트스트림을 생성하는 생성부(1320)를 포함하고, 상기 복수의 해상도는 상기 현재 영상의 원본 해상도 및 상기 현재 영상의 원본 해상도로부터 다운스케일된 해상도를 포함할 수 있다.
일 실시예에 따라, 예측 부호화부는 현재 예측 영상과 상기 현재 영상의 차이에 대응하는 현재 잔차 영상을 획득할 수 있다. 예측 부호화부는 상기 현재 잔차 영상을 잔차 인코더에 적용하여 상기 현재 잔차 영상의 특징 데이터를 획득할 수 있다. 포함하고, 생성부는 현재 잔차 영상의 특징 데이터를 더 포함하는 비트스트림을 생성할 수 있다.
일 실시예에 따라, 움직임 벡터 디코더는 복수의 제1 복호화 신경망 레이어들을 포함하고, 상기 제1 복호화 신경망 레이어는 제1 복호화 레이어 및 제2 복호화 레이어를 병렬적으로 포함하고, 상기 제1 복호화 레이어는 제1 업-컨볼루션 레이어를 포함하고, 상기 제2 복호화 레이어는 제2 업-컨볼루션 레이어 및 다운스케일링 비율에 대응하는 업스케일 비율을 곱하는 제1 곱셈 연산 레이어를 포함하고, 상기 움직임 벡터 인코더는 복수의 제1 부호화 신경망 레이어들을 포함하고, 상기 제1 부호화 신경망 레이어는 제1 부호화 레이어 및 제2 부호화 레이어를 병렬적으로 포함하고, 상기 제1 부호화 레이어는 제1 콘볼루션 레이어를 포함하고, 상기 제2 부호화 레이어는 풀링 레이어 및 제2 콘볼루션 레이어를 포함하는 제2 신경망 레이어를 포함할 수 있다.
일 실시예에 따라, 상기 움직임 벡터 디코더는 복수의 제2 복호화 신경망 레이어들을 포함하고, 상기 제2 복호화 신경망 레이어는 제3 복호화 레이어 및 제4 복호화 레이어를 병렬적으로 포함하고, 상기 제3 복호화 레이어는 제1 컨볼루션 레이어 및 제1 업샘플링 연산 레이어를 포함하고, 상기 제4 복호화 레이어는 제2 업샘플링 연산 레이어, 제2 컨볼루션 레이어, 및 다운스케일링 비율에 대응하는 업스케일 비율을 곱하는 제1 곰셉 연산 레이어를 포함하고, 상기 움직임 벡터 인코더는 복수의 제2 부호화 신경망 레이어들을 포함하고, 상기 제2 부호화 신경망 레이어는 제3 부호화 레이어 및 제4 부호화 레이어를 병렬적으로 포함하고, 상기 제3 부호화 레이어는 제3 콘볼루션 레이어 및 제1 풀링 레이어를 포함하고, 상기 제4 부호화 레이어는 제2 풀링 레이어 및 제4 콘볼루션 레이어를 포함할 수 있다.
일 실시예에 따라, 상기 움직임 벡터 디코더는 복수의 제3 복호화 신경망 레이어를 포함하고, 상기 제3 복호화 신경망 레이어는 확장된 컨볼루션에 대한 제1 역연산 레이어, 확장된 컨볼루션에 대한 제2 역연산 레이어, 및 확장된 컨볼루션에 대한 제3 역연산 레이어를 병렬적으로 포함하고, 상기 움직임 벡터 인코더는 복수의 제3 부호화 신경망 레이어를 포함하고, 상기 제3 부호화 신경망 레이어는 제1 확장된 컨볼루션(dilated convolution) 레이어, 제2 확장된 컨볼루션 레이어, 및 제3 확장된 컨볼루션 레이어를 병렬적으로 포함할 수 있다.
일 실시예에 따라, 현재 영상은 상기 현재 영상의 픽셀 데이터가 컨볼루션 신경망에 적용되어 출력된 특징 데이터이고, 상기 이전 복원 영상은 상기 이전 복원 영상의 픽셀 데이터가 컨볼루션 신경망에 적용되어 출력된 특징 데이터일 수 있다.
일 실시예에 따라, 현재 영상은 상기 현재 영상의 픽셀 데이터이고, 상기 이전 복원 영상은 상기 이전 복원 영상의 픽셀 데이터일 수 있다.
본 개시의 일 실시예에 따른 AI에 기반한 영상 부호화 방법은 입력 영상의 해상도를 유지하는 신경망 레이어와 입력 영상의 해상도를 다운스케일하는 신경망 레이어를 포함하는 신경망 구조의 움직임 벡터 인코더를 이용하여 복수의 해상도의 현재 영상에 대한 움직임 벡터 특징 데이터를 획득하고 움직임 벡터 특징 데이터를 움직임 벡터 디코터에 적용하여 현재 움직임 벡터를 획득함으로써, 확장된 유효 수용 필드를 적용하여 작은 크기의 움직임 벡터 뿐만 아니라 큰 크기의 움직임 벡터를 추정하는데 효과적이고, 움직임 벡터 인코더로부터 획득되는 복수의 해상도의 현재 영상에 대한 움직임 벡터 특징 데이터는 최종 레이어에서 출력된 작은 크기의 특징 맵이면서 모든 스케일에 대한 특징 맵이므로, 데이터 압축 측면에서 복수의 스케일의 특징 데이터의 부호화에 효율적이고, 비디오 코딩에 적합하다.
일 실시예에 따른 AI에 기반한 영상 복호화 장치는 비트스트림으로부터 복수의 해상도의 현재 영상에 대한 움직임 벡터 특징 데이터를 획득하는 획득부(1510); 및 움직임 벡터 디코더에 상기 움직임 벡터 특징 데이터를 적용하여 현재 움직임 벡터를 획득하고, 상기 현재 움직임 벡터와 이전 복원 영상을 이용하여 현재 예측 영상을 획득하는 예측 복호화부(1520);를 포함하고, 상기 복수의 해상도는 상기 현재 영상의 원본 해상도 및 상기 현재 영상의 원본 해상도로부터 다운스케일된 해상도를 포함할 수 있다.
일 실시예에 따라, 획득부는 비트스트림으로부터 현재 잔차 영상의 특징 데이터를 획득할 수 있다. 예측 복호화부는 잔차 디코더에 상기 현재 잔차 영상의 특징 데이터를 적용하여 상기 현재 잔차 영상을 획득할 수 있다. 예측 복호화부는 상기 현재 예측 영상 및 상기 현재 잔차 영상을 이용하여 현재 복원 영상을 획득할 수 있다.
일 실시예에 따라, 움직임 벡터 디코더는 복수의 제1 복호화 신경망 레이어들을 포함하고, 상기 제1 복호화 신경망 레이어는 제1 복호화 레이어 및 제2 복호화 레이어를 병렬적으로 포함하고, 상기 제1 복호화 레이어는 제1 업-컨볼루션 레이어를 포함하고, 상기 제2 복호화 레이어는 제2 업-컨볼루션 레이어 및 다운스케일링 비율에 대응하는 업스케일 비율을 곱하는 제1 연산 레이어를 포함할 수 있다.
일 실시예에 따라, 움직임 벡터 디코더는 복수의 제2 복호화 신경망 레이어들을 포함하고, 상기 제2 복호화 신경망 레이어는 제3 복호화 레이어 및 제4 복호화 레이어를 병렬적으로 포함하고, 상기 제3 복호화 레이어는 제1 컨볼루션 레이어와 제1 업샘플링 연산 레이어를 포함하고, 상기 제4 복호화 레이어는 제2 업샘플링 연산 레이어, 제2 컨볼루션 레이어, 및 다운스케일링 비율에 대응하는 업스케일 비율을 곱하는 제1 연산 레이어를 포함할 수 있다.
일 실시예에 따라, 움직임 벡터 디코더는 복수의 제3 복호화 신경망 레이어를 포함하고, 상기 제3 복호화 신경망 레이어는 확장된 컨볼루션에 대한 제1 역연산 레이어, 확장된 컨볼루션에 대한 제2 역연산 레이어, 및 확장된 컨볼루션에 대한 제3 역연산 레이어를 병렬적으로 포함할 수 있다.
일 실시예에 따라, 현재 영상은 상기 현재 영상의 픽셀 데이터가 컨볼루션 신경망에 적용되어 출력된 특징 데이터이고, 상기 이전 복원 영상은 상기 이전 복원 영상의 픽셀 데이터가 컨볼루션 신경망에 적용되어 출력된 특징 데이터일 수 있다.
일 실시예에 따라, 현재 영상은 상기 현재 영상의 픽셀 데이터이고, 상기 이전 복원 영상은 상기 이전 복원 영상의 픽셀 데이터일 수 있다.
본 개시의 일 실시예에 따른 AI에 기반한 영상 복호화 장치는 비트스트림으로부터 복수의 해상도의 현재 영상에 대한 움직임 벡터 특징 데이터를 획득하고 움직임 벡터 특징 데이터를 움직임 벡터 디코터에 적용하여 현재 움직임 벡터를 획득함으로써, 확장된 유효 수용 필드를 적용하여 작은 크기의 움직임 벡터 뿐만 아니라 큰 크기의 움직임 벡터를 추정하는데 효과적이고, 비트스트림으로부터 획득되는 복수의 해상도의 현재 영상에 대한 움직임 벡터 특징 데이터는 최종 레이어에서 출력된 작은 크기의 특징 맵이면서 모든 스케일에 대한 특징 맵이므로, 데이터 압축 측면에서 복수의 스케일의 특징 데이터의 부호화에 효율적이고, 비디오 코딩에 적합하다.
기기로 읽을 수 있는 저장매체는, 비일시적(non-transitory) 저장매체의 형태로 제공될 수 있다. 여기서, ‘비일시적 저장매체'는 실재(tangible)하는 장치이고, 신호(signal)(예: 전자기파)를 포함하지 않는다는 것을 의미할 뿐이며, 이 용어는 데이터가 저장매체에 반영구적으로 저장되는 경우와 임시적으로 저장되는 경우를 구분하지 않는다. 예로, '비일시적 저장매체'는 데이터가 임시적으로 저장되는 버퍼를 포함할 수 있다.
일 실시예에 따르면, 본 문서에 개시된 다양한 실시예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory (CD-ROM))의 형태로 배포되거나, 또는 어플리케이션 스토어를 통해 또는 두개의 사용자 장치들(예: 스마트폰들) 간에 직접, 온라인으로 배포(예: 다운로드 또는 업로드)될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품(예: 다운로더블 앱(downloadable app))의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 기기로 읽을 수 있는 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.

Claims (15)

  1. AI에 기반한 영상 부호화 방법에 있어서,
    현재 영상 및 이전 복원 영상을 움직임 벡터 인코더에 적용하여 복수의 해상도의 현재 영상에 대한 움직임 벡터 특징 데이터를 획득(S1210)하는 단계;
    움직임 벡터 디코더에 상기 움직임 벡터 특징 데이터를 적용하여 현재 움직임 벡터를 획득(S1230)하는 단계;
    상기 현재 움직임 벡터와 이전 복원 영상을 이용하여 현재 예측 영상을 획득(S1250)하는 단계;
    상기 움직임 벡터 특징 데이터를 포함하는 비트스트림을 생성(S1270)하는 단계를 포함하고,
    상기 복수의 해상도는 상기 현재 영상의 원본 해상도 및 상기 현재 영상의 원본 해상도로부터 다운스케일된 해상도를 포함하는, AI에 기반한 영상 부호화 방법.
  2. 제1항에 있어서,
    상기 현재 예측 영상과 상기 현재 영상의 차이에 대응하는 현재 잔차 영상을 획득하는 단계;
    상기 현재 잔차 영상을 잔차 인코더에 적용하여 상기 현재 잔차 영상의 특징 데이터를 획득하는 단계;를 더 포함하고,
    상기 비트스트림은 현재 잔차 영상의 특징 데이터를 더 포함하는, AI에 기반한 영상 부호화 방법.
  3. 제1항 또는 제2항에 있어서,
    상기 움직임 벡터 디코더는 복수의 제1 복호화 신경망 레이어들을 포함하고,
    상기 제1 복호화 신경망 레이어는 제1 복호화 레이어 및 제2 복호화 레이어를 병렬적으로 포함하고,
    상기 제1 복호화 레이어는 제1 업-컨볼루션 레이어를 포함하고,
    상기 제2 복호화 레이어는 제2 업-컨볼루션 레이어 및 다운스케일링 비율에 대응하는 업스케일 비율을 곱하는 제1 곱셈 연산 레이어를 포함하고,
    상기 움직임 벡터 인코더는 복수의 제1 부호화 신경망 레이어들을 포함하고,
    상기 제1 부호화 신경망 레이어는 제1 부호화 레이어 및 제2 부호화 레이어를 병렬적으로 포함하고,
    상기 제1 부호화 레이어는 제1 콘볼루션 레이어를 포함하고,
    상기 제2 부호화 레이어는 풀링 레이어 및 제2 콘볼루션 레이어를 포함하는 제2 신경망 레이어를 포함하는, AI에 기반한 영상 부호화 방법.
  4. 제1항 내지 제2항 중 어느 한 항에 있어서,
    상기 움직임 벡터 디코더는 복수의 제2 복호화 신경망 레이어들을 포함하고,
    상기 제2 복호화 신경망 레이어는 제3 복호화 레이어 및 제4 복호화 레이어를 병렬적으로 포함하고,
    상기 제3 복호화 레이어는 제1 컨볼루션 레이어 및 제1 업샘플링 연산 레이어를 포함하고,
    상기 제4 복호화 레이어는 제2 업샘플링 연산 레이어, 제2 컨볼루션 레이어, 및 다운스케일링 비율에 대응하는 업스케일 비율을 곱하는 제1 곰셉 연산 레이어를 포함하고,
    상기 움직임 벡터 인코더는 복수의 제2 부호화 신경망 레이어들을 포함하고,
    상기 제2 부호화 신경망 레이어는 제3 부호화 레이어 및 제4 부호화 레이어를 병렬적으로 포함하고,
    상기 제3 부호화 레이어는 제3 콘볼루션 레이어 및 제1 풀링 레이어를 포함하고,
    상기 제4 부호화 레이어는 제2 풀링 레이어 및 제4 콘볼루션 레이어를 포함하는, AI에 기반한 영상 부호화 방법.
  5. 제1항 또는 제2항에 있어서,
    상기 움직임 벡터 디코더는 복수의 제3 복호화 신경망 레이어를 포함하고,
    상기 제3 복호화 신경망 레이어는 확장된 컨볼루션에 대한 제1 역연산 레이어, 확장된 컨볼루션에 대한 제2 역연산 레이어, 및 확장된 컨볼루션에 대한 제3 역연산 레이어를 병렬적으로 포함하고,
    상기 움직임 벡터 인코더는 복수의 제3 부호화 신경망 레이어를 포함하고,
    상기 제3 부호화 신경망 레이어는 제1 확장된 컨볼루션(dilated convolution) 레이어, 제2 확장된 컨볼루션 레이어, 및 제3 확장된 컨볼루션 레이어를 병렬적으로 포함하는, AI에 기반한 영상 부호화 방법.
  6. 제1항 내지 제5항 중 어느 한 항에 있어서,
    상기 현재 영상은 상기 현재 영상의 픽셀 데이터가 컨볼루션 신경망에 적용되어 출력된 특징 데이터이고, 상기 이전 복원 영상은 상기 이전 복원 영상의 픽셀 데이터가 컨볼루션 신경망에 적용되어 출력된 특징 데이터인, AI에 기반한 영상 부호화 방법.
  7. 제1항 내지 제5항 중 어느 한 항에 있어서,
    상기 현재 영상은 상기 현재 영상의 픽셀 데이터이고, 상기 이전 복원 영상은 상기 이전 복원 영상의 픽셀 데이터인, AI에 기반한 영상 부호화 방법.
  8. AI에 기반한 영상 복호화 방법에 있어서,
    비트스트림으로부터 복수의 해상도의 현재 영상에 대한 움직임 벡터 특징 데이터를 획득(S1410)하는 단계;
    움직임 벡터 디코더에 상기 움직임 벡터 특징 데이터를 적용하여 현재 움직임 벡터를 획득(S1430)하는 단계;
    상기 현재 움직임 벡터와 이전 복원 영상을 이용하여 현재 예측 영상을 획득(S1450)하는 단계를 포함하고,
    상기 복수의 해상도는 상기 현재 영상의 원본 해상도 및 상기 현재 영상의 원본 해상도로부터 다운스케일된 해상도를 포함하는, AI에 기반한 영상 복호화 방법.
  9. 제8항에 있어서,
    비트스트림으로부터 현재 잔차 영상의 특징 데이터를 획득하는 단계;
    잔차 디코더에 상기 현재 잔차 영상의 특징 데이터를 적용하여 상기 현재 잔차 영상을 획득하는 단계;
    상기 현재 예측 영상 및 상기 현재 잔차 영상을 이용하여 현재 복원 영상을 획득하는 단계;를 더 포함하는, AI에 기반한 영상 복호화 방법.
  10. 제8항 또는 제9항에 있어서,
    상기 움직임 벡터 디코더는 복수의 제1 복호화 신경망 레이어들을 포함하고,
    상기 제1 복호화 신경망 레이어는 제1 복호화 레이어 및 제2 복호화 레이어를 병렬적으로 포함하고,
    상기 제1 복호화 레이어는 제1 업-컨볼루션 레이어를 포함하고,
    상기 제2 복호화 레이어는 제2 업-컨볼루션 레이어 및 다운스케일링 비율에 대응하는 업스케일 비율을 곱하는 제1 연산 레이어를 포함하는, AI에 기반한 영상 복호화 방법.
  11. 제8항 또는 제9항에 있어서,
    상기 움직임 벡터 디코더는 복수의 제2 복호화 신경망 레이어들을 포함하고,
    상기 제2 복호화 신경망 레이어는 제3 복호화 레이어 및 제4 복호화 레이어를 병렬적으로 포함하고,
    상기 제3 복호화 레이어는 제1 컨볼루션 레이어와 제1 업샘플링 연산 레이어를 포함하고,
    상기 제4 복호화 레이어는 제2 업샘플링 연산 레이어, 제2 컨볼루션 레이어, 및 다운스케일링 비율에 대응하는 업스케일 비율을 곱하는 제1 연산 레이어를 포함하는, AI에 기반한 영상 복호화 방법.
  12. 제8항 또는 제9항에 있어서,
    상기 움직임 벡터 디코더는 복수의 제3 복호화 신경망 레이어를 포함하고,
    상기 제3 복호화 신경망 레이어는 확장된 컨볼루션에 대한 제1 역연산 레이어, 확장된 컨볼루션에 대한 제2 역연산 레이어, 및 확장된 컨볼루션에 대한 제3 역연산 레이어를 병렬적으로 포함하는, AI에 기반한 영상 복호화 방법.
  13. 제8항 내지 제12항 중 어느 한 항에 있어서,
    상기 현재 영상은 상기 현재 영상의 픽셀 데이터가 컨볼루션 신경망에 적용되어 출력된 특징 데이터이고, 상기 이전 복원 영상은 상기 이전 복원 영상의 픽셀 데이터가 컨볼루션 신경망에 적용되어 출력된 특징 데이터인, AI에 기반한 영상 복호화 방법.
  14. 제8항 내지 제12항 중 어느 한 항에 있어서,
    상기 현재 영상은 상기 현재 영상의 픽셀 데이터이고, 상기 이전 복원 영상은 상기 이전 복원 영상의 픽셀 데이터인, AI에 기반한 영상 복호화 방법.
  15. AI에 기반한 영상 부호화 장치(1300)에 있어서,
    현재 영상 및 이전 복원 영상을 움직임 벡터 인코더에 적용하여 복수의 해상도의 현재 영상에 대한 움직임 벡터 특징 데이터를 획득하는 예측 부호화부(1310);
    움직임 벡터 디코더에 상기 움직임 벡터 특징 데이터를 적용하여 현재 움직임 벡터를 획득하고, 상기 현재 움직임 벡터와 이전 복원 영상을 이용하여 현재 예측 영상을 획득하는 예측 복호화부(1340); 및
    상기 움직임 벡터 특징 데이터를 포함하는 비트스트림을 생성하는 생성부(1320)를 포함하고,
    상기 복수의 해상도는 상기 현재 영상의 원본 해상도 및 상기 현재 영상의 원본 해상도로부터 다운스케일된 해상도를 포함하는, AI에 기반한 영상 부호화 장치.
KR1020220163444A 2022-08-23 2022-11-29 Ai에 기반한 영상 부호화 장치 및 영상 복호화 장치, 및 이들에 의한 영상의 부호화 및 복호화 방법 KR20240027510A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
PCT/KR2023/012207 WO2024043617A1 (ko) 2022-08-23 2023-08-17 Ai에 기반한 영상 부호화 장치 및 영상 복호화 장치, 및 이들에 의한 영상의 부호화 및 복호화 방법
US18/237,150 US20240073425A1 (en) 2022-08-23 2023-08-23 Image encoding apparatus and image decoding apparatus both based on artificial intelligence, and image encoding method and image decoding method performed by the image encoding apparatus and the image decoding apparatus

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20220105805 2022-08-23
KR1020220105805 2022-08-23

Publications (1)

Publication Number Publication Date
KR20240027510A true KR20240027510A (ko) 2024-03-04

Family

ID=90297970

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220163444A KR20240027510A (ko) 2022-08-23 2022-11-29 Ai에 기반한 영상 부호화 장치 및 영상 복호화 장치, 및 이들에 의한 영상의 부호화 및 복호화 방법

Country Status (1)

Country Link
KR (1) KR20240027510A (ko)

Similar Documents

Publication Publication Date Title
US10425649B2 (en) Method and apparatus for performing graph-based prediction using optimization function
US11689713B2 (en) Predicted frame generation by deformable convolution for video coding
CN107633482B (zh) 一种基于序列图像的超分辨率重建方法
Hou et al. Sparse low-rank matrix approximation for data compression
EP2145476B1 (en) Image compression and decompression using the pixon method
CN115486068A (zh) 用于视频编码中基于深度神经网络的帧间预测的方法和设备
Van Chien et al. Block compressive sensing of image and video with nonlocal Lagrangian multiplier and patch-based sparse representation
US11601661B2 (en) Deep loop filter by temporal deformable convolution
US20140286589A1 (en) Method for coding a sequence of digital images
Xiang et al. Remote sensing image compression based on high-frequency and low-frequency components
KR20240027510A (ko) Ai에 기반한 영상 부호화 장치 및 영상 복호화 장치, 및 이들에 의한 영상의 부호화 및 복호화 방법
US20240073425A1 (en) Image encoding apparatus and image decoding apparatus both based on artificial intelligence, and image encoding method and image decoding method performed by the image encoding apparatus and the image decoding apparatus
Wang et al. Single image super-resolution via self-similarity and low-rank matrix recovery
US20230044603A1 (en) Apparatus and method for applying artificial intelligence-based filtering to image
US20240048711A1 (en) Artificial intelligence based video decoding apparatus and video decoding method and artificial intelligence based video encoding apparatus and video encoding method which perform chroma component prediction
Mishra Suppression of blocking artifact in compressed image
Khoshkhahtinat et al. Neural-based Video Compression on Solar Dynamics Observatory Images
KR20230022085A (ko) Ai 기반의 영상의 부호화 및 복호화 장치, 및 이에 의한 방법
KR20240025428A (ko) 적응적 양자화 및 역양자화를 위한 영상 복호화 장치, 영상 부호화 장치 및 이에 의한 방법
Amjoun et al. Predictive-DCT coding for 3D mesh sequences compression
KR20230022093A (ko) 영상에 대한 ai 기반 필터링을 위한 장치 및 방법
KR20230023460A (ko) 어플리케이션에 따라 ai 기반으로 영상을 재생하는 전자 장치 및 이에 의한 영상 재생 방법
Jagdale et al. Video resolution enhancement and quality assessment strategy
CN116888961A (zh) 使用ai的用于图像编码和解码的设备及其用于图像编码和解码的方法
Hou et al. CLRMA: Compact Low Rank Matrix Approximation for Data Compression