KR102332476B1 - 신경망을 이용한 타일 이미지 압축 - Google Patents

신경망을 이용한 타일 이미지 압축 Download PDF

Info

Publication number
KR102332476B1
KR102332476B1 KR1020197032378A KR20197032378A KR102332476B1 KR 102332476 B1 KR102332476 B1 KR 102332476B1 KR 1020197032378 A KR1020197032378 A KR 1020197032378A KR 20197032378 A KR20197032378 A KR 20197032378A KR 102332476 B1 KR102332476 B1 KR 102332476B1
Authority
KR
South Korea
Prior art keywords
tile
image
context
input
input image
Prior art date
Application number
KR1020197032378A
Other languages
English (en)
Other versions
KR20190133044A (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 구글 엘엘씨
Publication of KR20190133044A publication Critical patent/KR20190133044A/ko
Application granted granted Critical
Publication of KR102332476B1 publication Critical patent/KR102332476B1/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/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/002Image coding using neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • G06N3/0445
    • 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
    • G06N3/0454
    • 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
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • G06T3/4046Scaling of whole images or parts thereof, e.g. expanding or contracting using neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/0002Inspection of images, e.g. flaw detection
    • 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

Landscapes

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

Abstract

이미지 압축 및 재구성을 위한 컴퓨터 저장 매체에 인코딩된 컴퓨터 프로그램을 포함하는 방법, 시스템 및 장치가 개시된다. 이미지 인코더 시스템은 복수의 타일로 분할된 입력 이미지의 인코딩된 표현을 생성하라는 요청을 수신하고 입력 이미지의 인코딩된 표현을 생성한다. 인코딩된 표현을 생성하기 위해, 시스템은 입력 타일에 대한 컨텍스트를 처리하도록 훈련된 공간 컨텍스트 예측 신경망을 사용하여 각 타일에 대한 컨텍스트를 처리하고 입력 타일의 예측인 출력 타일을 생성한다. 시스템은 특정 타일에 대한 컨텍스트를 처리함으로써 공간 컨텍스트 예측 신경망에 의해 생성된 출력 타일과 특정 타일 사이의 리지듀얼 이미지를 결정하고 그리고 인코더 신경망을 사용하여 리지듀얼 이미지를 인코딩함으로써 특정 타일에 대한 이진 코드 세트를 생성한다.

Description

신경망을 이용한 타일 이미지 압축
본 명세서는 신경망을 사용한 이미지 압축 및 재구성에 관한 것이다.
신경망은 수신된 입력에 대한 출력을 예측하기 위해 하나 이상의 비선형 유닛 계층을 사용하는 기계 학습 모델이다. 일부 신경망은 출력층 외에 하나 이상의 은닉층을 포함한다. 각 은닉층의 출력은 네트워크에서 다음 계층, 즉 다음 은닉층 또는 출력층에 대한 입력으로 사용된다. 네트워크의 각 계층은 각 파라미터 세트의 현재 값에 따라 수신된 입력으로부터 출력을 생성한다.
일부 신경망은 순환 신경망이다. 순환 신경망은 입력 시퀀스를 수신하고 그 입력 시퀀스로부터 출력 시퀀스를 생성하는 신경망이다. 특히, 순환 신경망은 현재 시간 단계(타임 스텝)에서의 출력을 계산하는데 이전 시간 단계로부터 네트워크의 내부 상태의 일부 또는 전부를 사용할 수 있다. 순환 신경망의 예는 하나 이상의 LSTM(long short term) 메모리 블록을 포함하는 LSTM 신경망이다. 각각의 LSTM 메모리 블록은, 예를 들어, CA(current activation)를 생성하거나 LSTM 신경망의 다른 컴포넌트에 제공될 때 사용하기 위해 셀이 셀에 대한 이전 상태를 저장할 수 있게 하는 입력 게이트, 망각 게이트(forget gate) 및 출력 게이트를 각각 포함하는 하나 이상의 셀을 포함할 수 있다.
본 명세서는 타일 심층 망(tiled deep network)을 사용한 이미지 압축 및 재구성 기술을 설명한다. 이들 기술은 일반적으로 입력 이미지를 타일로 분할하고, 공간 컨텍스트를 사용하여 각 타일 내의 픽셀 값을 초기 예측하고 리지듀얼(residual)을 점진적으로 인코딩하는 것을 포함한다.
일반적으로, 본 명세서에 기술된 요지의 하나의 혁신적인 양태는 이미지 압축 및 재구성의 동작을 포함하는 방법으로 구현될 수 있다. 이 양태의 다른 실시 예는 각각 해당 방법의 동작을 수행하도록 구성된 하나 이상의 컴퓨터 저장 장치에 기록될 수 있는 컴퓨터 시스템, 장치 및 컴퓨터 프로그램을 포함한다. 특정 동작 또는 액션을 수행하도록 하나 이상의 컴퓨터 시스템을 구성하려면 시스템에 소프트웨어, 펌웨어, 하드웨어 또는 이들의 조합이 설치되어 시스템에서 동작 또는 액션을 수행하게 된다. 특정 동작 또는 액션을 수행하도록 구성되는 하나 이상의 컴퓨터 프로그램을 의미한다는 것은 하나 이상의 프로그램이 데이터 처리 장치에 의해 실행될 때 장치로 하여금 동작 또는 액션을 수행하게 하는 명령(명령어)을 포함한다는 것을 의미한다.
전술한 실시 예 및 다른 실시 예는 각각 다음 특징 중 하나 이상을 단독으로 또는 조합하여 선택적으로 포함할 수 있다. 특히, 일 실시 예는 다음의 모든 특징들을 조합하여 포함한다.
이미지 인코더 시스템은 타일들로 분할된 입력 이미지의 인코딩된 표현(representation)을 생성하라는 요청을 수신할 수 있다. 이미지 인코더 시스템은 입력 이미지의 인코딩된 표현을 생성한다. 인코딩된 표현은 각 타일에 대한 각각의 이진 코드 세트를 포함한다. 특정 타일에 대해 인코딩된 표현을 생성하는 것은,
입력 타일에 대한 컨텍스트를 처리하여 입력 타일의 예측인 출력 타일을 생성하도록 훈련(학습)된 공간 컨텍스트 예측 신경망을 사용하여 특정 타일에 대한 컨텍스트를 처리하는 단계를 포함한다. 컨텍스트는 입력 이미지에서 특정 타일에 인접한 하나 이상의 타일을 포함할 수 있다. 특정 타일에 대한 컨텍스트를 처리함으로써 공간 컨텍스트 예측 신경망에 의해 생성된 특정 타일과 출력 타일 사이에서 리지듀얼(residual) 이미지가 결정될 수 있고, 특정 타일에 대한 이진 코드 세트는 인코더 신경망을 이용하여 리지듀얼 이미지를 인코딩함으로써 생성될 수 있다. 입력 이미지는 데이터 압축 알고리즘을 사용하여 인코딩된 표현에서 이진 코드를 압축함으로써 압축될 수 있다. 데이터 압축 알고리즘은 훈련된 엔트로피 코더일 수 있다. 압축된 입력 이미지는 입력 이미지의 압축 해제를 위해 이미지 디코더 시스템으로 전송될 수 있다.
인코더 신경망은 각각의 시간 단계에서, 시간 단계에 대한 인코더 입력을 수신하고 그리고 시간 단계에 대한 이진 코드 세트를 생성하기 위해 인코더 입력을 처리함으로써 리지듀얼을 인코딩하도록 구성된 순환 신경망일 수 있다. 제1 시간 단계에 대한 인코더 입력은 리지듀얼 이미지일 수 있다. 제1 시간 단계 이후의 시간 단계에 대한 인코더 입력은 (i) 리지듀얼과 (ii) 이전 시간 단계에서의 이진 코드 세트로부터 디코더 신경망에 의해 생성된 재구성 사이의 일시적인(temporary) 리지듀얼 이미지일 수 있고, 디코더 신경망은 각 시간 단계에서, 시간 단계에 대한 이진 코드 세트를 포함하는 디코더 입력을 수신하고 그리고 시간 단계에서 인코더 입력의 재구성을 생성하기 위해 디코더 입력을 처리하도록 구성되는 순환 신경망이다.
특정 타일에 대한 이진 코드 세트를 생성하는 단계는, 각각의 시간 단계에서, 임의의 이전 시간 단계 및 상기 시간 단계에서 이미 생성된 이진 코드부터 재구성될 때 특정 타일에 대한 품질 임계 값이 만족되는지 여부를 시간 단계에 대한 인코더 입력의 재구성으로부터 결정하는 단계를 포함한다.
특정 타일에 대한 이진 코드 세트를 생성하는 단계는 품질 임계 값이 만족되었다는 결정에 응답하여, 입력 이미지의 인코딩된 표현에서 특정 타일에 대한 이진 코드의 세트로서 상기 이미 생성된 이진 코드를 사용하는 단계를 포함한다.
특정 타일에 대한 이진 코드 세트를 생성하는 단계는, 각 시간 단계에서, 현재 시간 단계에서 생성된 이진 코드 세트로부터 특정 타일이 재구성될 때 특정 타일에 대한 품질 임계 값이 만족되는지 여부를 결정하는 단계; 품질 임계 값이 만족(충족)되었다는 결정에 응답하여, 입력 이미지의 인코딩된 표현에서 특정 타일에 대한 이진 코드 세트로서 상기 특정 타일에 대한 현재 시간 단계에서 생성된 이진 코드 세트를 사용하는 단계를 포함한다.
특정 타일이 입력 이미지의 좌측 또는 상부 경계(top border)에 있지 않은 경우, 컨텍스트는 입력 이미지에서 특정 타일의 좌측 및 상부에 인접한 타일일 수 있다.
특정 타일이 입력 이미지의 좌측 경계에 있고 입력 이미지의 상부 경계에 있지 않은 경우, 컨텍스트는 플레이스홀더(placeholder) 컨텍스트 데이터 및 특정 타일 위의 인접 타일일 수 있다.
특정 타일이 입력 이미지의 좌측 상단 코너에 있을 때, 컨텍스트는 플레이스홀더 컨텍스트 데이터일 수 있다.
특정 타일이 입력 이미지의 상단 경계에 있고 입력 이미지의 좌측 상단 코너에 있지 않은 경우, 컨텍스트는 플레이스홀더 컨텍스트 데이터 및 특정 타일의 좌측에 인접한 타일일 수 있다.
다른 실시 예는 입력 이미지의 인코딩된 표현으로부터 입력 이미지를 재구성하라는 요청을 수신하는 것을 포함할 수 있고, 입력 이미지는 타일로 분할될 수 있고 인코딩된 표현은 각 타일에 대한 각각의 이진 코드 세트를 포함할 수 있다.
입력 이미지의 재구성은 입력 타일에 대한 컨텍스트를 처리하여 입력 타일의 초기 재구성 이미지인 출력 타일을 생성하도록 훈련된 공간 컨텍스트 예측 신경망을 사용하여 특정 타일에 대한 컨텍스트를 처리함으로써 특정 타일에 대해 생성될 수 있다. 컨텍스트는 입력 이미지에서 특정 타일에 인접한 하나 이상의 타일의 재구성을 포함할 수 있다. 특정 타일의 리지듀얼 재구성 이미지는 디코더 신경망을 이용하여 타일에 대한 이진 코드 세트를 처리함으로써 생성될 수 있고, 상기 초기 재구성 이미지는 특정 타일의 리지듀얼 재구성 이미지와 결합되어 특정 타일의 최종 재구성을 생성할 수 있다.
재구성을 생성하는 단계는 압축된 입력 이미지를 수신하고 그리고 데이터 압축 해제 알고리즘을 사용하여 압축된 입력 이미지를 압축해제하여 타일에 대한 각각의 이진 코드 세트를 생성하는 단계를 포함할 수 있다.
데이터 압축 해제 알고리즘은 훈련된 엔트로피 디코더일 수 있다.
특정 타일에 대한 이진 코드 세트는 각각의 시간 단계에 대한 이진 코드의 각각의 서브 세트를 포함할 수 있다.
디코더 신경망은 시간 단계 재구성 리지듀얼 이미지를 생성하기 위해 각 시간 간격에서 시간 단계에 대한 이진 코드의 서브 세트를 처리함으로써 리지듀얼을 발생시키도록 구성된 순환 신경망일 수 있다.
재구성 리지듀얼 이미지를 생성하는 단계는 시간 단계들에 대한 시간 단계 재구성 리지듀얼 이미지들을 결합하는 단계를 포함할 수 있다.
본 명세서에서 설명된 요지는 다음의 장점들 중 하나 이상을 실현하기 위해 특정 실시 예들에서 구현될 수 있다. 이 문서에 설명 된 이미지 압축 및 재구성 시스템은 심층 컨벌루션 신경망의 장점과 타일 컨벌루션(tiled convolutional) 신경망을 사용하는 비트 레이트 적응을 결합한다. 시스템은 이미지 타일들과 실제 이미지 타일들에 대한 공간 컨텍스트 예측 데이터 간의 리지듀얼을 사용하여 이미지를 인코딩 및 디코딩한다. 이 프로세스는 여전히 고품질 출력을 생성하면서 인코더에서 디코더로 전송되는 데 필요한 데이터를 줄인다. 특히, 소정의 타일은 공간 컨텍스트 예측기 신경망의 사용으로 인해 그리고 압축된 비트는 전체 타일이 아닌 리지듀얼만을 나타내기 때문에 더 작은 크기로 압축될 수 있는 더 적은 비트 또는 덜 복잡한 비트 열을 사용하여 표현될 수 있다. 종래의 이미지 압축 기술에서, 로컬 정보 공유는 근처의 이진 코드에 대한 의존성을 생성하여, 이미지의 비트 레이트를 조정하는 것을 어렵게 한다. 신경망 기반의 기존 이미지 압축 알고리즘은 각 이미지에서 일정한 공간 비트 레이트로 양자화된 표현을 학습한다. 대조적으로, 기술된 바와 같이 타일 컨벌루션 신경망의 블록 기반 아키텍처를 사용함으로써, 이미지 압축 시스템은 해상도 유연성 및 로컬 정보 공유를 달성하면서 로컬 재구성 품질에 기초한 비트 레이트 적응의 구현을 상당히 단순화시킨다.
또한, 모델이 완전히 컨벌루션이기 때문에 기존 신경망 압축 아키텍처에서는 적응 비트 할당이 어렵다. 이러한 네트워크가 모든 이진 코드로 훈련되면 누락된 코드로 재구성하는 것이 임의적으로(arbitrarily) 나빠질 수 있다.
이 시스템은 각 타일 내에서 이진 코드의 정보를 공유하여 임의적으로 나쁜 재구성을 회피한다. 이 방법을 사용하면 인접한 타일의 품질을 저하시키지 않고 타일의 한 영역에서 비트 레이트를 줄일 수 있다. 이 시스템은 공간 컨텍스트 예측 신경망, 리지듀얼 인코딩 신경망 및 리지듀얼 디코딩 신경망을 사용하여 이미지 세부 사항을 정확하게 재구성하고 객체 경계에 걸쳐 픽셀 값을 예측한다. 이 시스템은 상대적으로 먼 픽셀들 간의 상관관계를 이용하므로 한 타일에서 다른 타일로 일관된 시각적 정보를 다시 인코딩하는 비용을 회피할 수 있다. 또 다른 장점은 타일식의 적응형 접근 방식으로 일정한 품질(예: 전체 이미지에서 유사한 PSNR)로 이미지를 쉽게 인코딩할 수 있어 주관적 평가가 향상된다는 것이다.
본 명세서의 요지의 하나 이상의 실시 예의 세부 사항은 첨부 도면 및 이하의 설명에 기재되어 있다. 본 요지의 다른 특징, 양태 및 장점은 상세한 설명, 도면 및 청구 범위로부터 명백해질 것이다.
도 1은 이미지를 압축 및 재구성하기 위해 타일형 컨벌루션 신경망과 함께 공간적 적응 방식을 사용하는 이미지 압축 및 재구성 시스템의 예를 도시한다.
도 2a는 예시적인 컨텍스트 패치(context patch)를 도시한다.
도 2b는 예시적인 컨텍스트 패치를 도시한다.
도 2c는 예시적인 컨텍스트 패치를 도시한다.
도 2d는 예시적인 컨텍스트 패치를 도시한다.
도 3은 예시적인 공간적 컨텍스트 예측 신경망을 도시한다.
도 4는 예시적인 리지듀얼 인코더 신경망을 도시한다.
도 5a는 공간적 적응 방식을 사용하여 이미지를 압축 및 재구성하기 위한 예시적인 프로세스를 도시한다.
도 5b는 공간적 적응 방식을 사용하여 이미지를 압축 및 재구성하기 위한 예시적인 프로세스를 도시한다.
도 6은 공간적 적응 방식을 사용하여 압축된 이미지를 디코딩하는 예시적인 프로세스를 도시한다.
다양한 도면에서 유사한 참조 번호 및 명칭은 유사한 구성요소를 나타낸다.
본 명세서는 일반적으로 이미지 압축 및 재구성을 위해 타일형 컨벌루션 신경망과 함께 공간적 적응 방식을 사용하는 이미지 압축 및 재구성 시스템 및 방법을 설명한다.
이미지 압축은 디지털 이미지 저장 또는 전송 비용을 줄이기 위해 디지털 이미지에 적용되는 데이터 압축 유형이다. 이 이미지 압축은 손실이 없거나 손실이 있을 수 있다. 무손실 압축은 압축된 데이터로부터 원본 데이터를 완전히 재구성 할 수 있는 반면, 손실 압축은 원본 데이터의 근사치의 재구성을 제공한다.
예시적인 이미지 압축 및 재구성 시스템은 손실 이미지 압축을 위해 타일형 컨벌루션 신경망과 함께 블록 기반의 공간적 적응 방식을 사용한다.
도 1은 예시적인 이미지 압축 및 재구성 시스템(100)을 도시한다. 이미지 압축 및 재구성 시스템(100)은 하나 이상의 위치에서 하나 이상의 컴퓨터상에서 컴퓨터 프로그램으로서 구현되는 시스템의 예이며, 여기서 후술되는 시스템, 컴포넌트 및 기술이 구현될 수 있다. 시스템(100)은 입력 이미지(104)를 압축하고 그리고 타 일(타일형) 신경망을 이용하여 품질에 민감한 비트 레이트 공간적 적응으로 입력 이미지의 이미지 재구성을 결정한다. 이러한 공간적 적응은 시스템이 더 복잡하거나 시각적으로 현저한 입력 이미지의 영역들을 우선적으로 기술함으로써 추가 비트를 보다 효과적으로 사용할 수 있게 한다. 도 1은 동일한 시스템의 일부로서 시스템의 인코딩 및 디코딩 컴포넌트들 모두를 도시하지만, 일부 구현에서, 상기 컴포넌트들은 별도의 시스템일 수 있고 별도의 컴퓨팅 장치에 위치할 수 있다. 예를 들어, 일 예시적인 구현에서, 인코딩 컴포넌트, 즉 입력 이미지를 압축하는데 필요한 컴포넌트들은 서버상에 위치될 수 있고 그리고 디코딩 컴포넌트, 즉 입력 이미지를 재구성하는데 필요한 컴포넌트는 클라이언트 장치상에 위치될 수 있다.
동작 동안, 이미지 압축 및 재구성 시스템(100)은 압축될 입력 이미지(104)를 취하고 분할 실행기(106)는 이미지를 타일로 분할한다. 예를 들어, 입력 이미지(104)는 각각 32 x 32 픽셀로 형성된 타일로 분할되거나 임의의 다른 적합한 수의 픽셀의 타일로 분할될 수 있다.
시스템(100)은 이미지(104)를 타일별(tile-by-tile)로 인코딩한다.
각각의 타일에 대해, 공간 컨텍스트(context) 예측기(제공자)(108)는 이웃하는 타일을 공간 컨텍스트로서 사용하여 '컨텍스트 패치'를 생성한다.
도 2a-d는 타겟 타일(target tile)(202)의 값이 아직 처리되지 않은 예시적인 64 x 64 컨텍스트 패치(200a-d)를 도시한다. 특정 타일(202a)이 입력 이미지의 좌측 또는 상부 경계에 있지 않은 경우, 도 2a에 도시된 바와 같이, 공간 컨텍스트는 입력 이미지(204a, 206a, 208)에서 특정 타일의 왼쪽 및 상부(above)의 이웃 타일을 사용하여 생성된다. 특정 타일(202b)이 입력 이미지의 좌측 경계에 있고 그리고 입력 이미지의 좌측 상단 코너에 있지 않은 경우, 도 2b에 도시된 바와 같이, 공간 컨텍스트는 특정 타일(202b) 위의 이웃 타일(204a)을 사용하여 생성된다. 도 2c는 특정 타일(202c)이 입력 이미지의 좌측 상단 코너에 있을 때, 특정 타일(202c)에 대한 공간 컨텍스트가 플레이스홀더 컨텍스트 데이터와 함께 생성되는 것을 도시한다. 도 2d는 특정 타일(202d)이 입력 이미지의 상단 경계에 있고 그리고 입력 이미지의 좌측 상단 코너에 있지 않을 때 공간 컨텍스트가 플레이스홀더 컨텍스트 데이터 및 특정 타일(205d)의 좌측의 이웃 이미지를 사용하여 생성되는 것을 도시한다.
도 1에 도시된 바와 같이, 공간적 컨텍스트 예측기(108)는 입력 타일의 예측 인 출력 타일을 생성하기 위해 입력 타일에 대한 컨텍스트를 처리하도록 훈련된 신경망이다. 예를 들어, 공간적 컨텍스트 예측기(108)는 입력 타일에 대한 이미지 컨텍스트 패치, 예를 들어 도 2a-d에 도시된 바와 같은 64 x 64 픽셀 컨텍스트 패치를 수신하고, 입력 타일의 예측(prediction)을 생성할 수 있다. 공간적 컨텍스트 예측기는 도 3과 관련하여 아래에서 더 상세히 설명될 것이다.
이어서 시스템(100)은 재구성 이미지 세부 사항을 채우기 위해 리지듀얼 네트워크(130)를 사용한다. 리지듀얼 네트워크(130)는 순환 자동-인코더들에 기초한 심층 네트워크(망)이다. 리지듀얼 네트워크(130)는 인코더(110) 및 디코더(114)를 포함한다. 인코더(110) 및 디코더(114) 신경망에 대한 예시적인 순환 아키텍처는 "G. Toderici, D. Vincent, N. Johnston, S.J. Hwang, D. Minnen, J. Shor, M. Covell"의 "순환 신경망을 이용한 풀 해상도 이미지 압축(Full resolution image compression with recurrent neural networks)”으로서 "CoRR, vol. abs / 1608.05148, 2016"에 개시되며, 이의 전체 내용은 특히 인코더 및 디코더 신경망에 대한 순환 아키텍처와 관련하여 본 명세서에 참조로 포함된다.
각각의 타일에 대해, 인코더(110)는 실제 이미지 타일과 초기 예측 사이의 리지듀얼을 인코딩한다. 일부 구현들에서, 인코더는 인코딩을 반복적으로 실행한다. 각각의 반복에서, 인코더(110)는 반복에 대한 인코더 입력을 수신하고, 인코딩된 타일의 버전을 나타내는 입력 이미지의 각 타일에 대한 이진 코드 세트를 생성하기 위해 인코더 입력을 인코딩한다. 첫 번째(제1) 반복에서, 인코더 입력은 실제 이미지 타일과 초기 예측 사이의 리지듀얼(residual)이다. 인코더(110)는 이진 코드를 생성하기 위해 리지듀얼을 인코딩하고, 디코더(114)를 사용하여 이진으로부터의 입력을 재구성하여 이전 반복으로부터 남아있는 리지듀얼을 캡처한다. 디코딩된 픽셀 값은 저장되고(122) 후속 타일을 예측하기 위한 컨텍스트로서 사용된다. 첫 번째(제1) 반복 이후의 각 반복에서, 인코더 입력은 이전 반복의 리지듀얼 타일이다. 타일을 재구성하고 이전 반복에서 남은 리지듀얼을 캡처함으로써, 시스템은 원래 입력의 더 나은 근사치(better approximations)를 연속적으로 제공한다.
리지듀얼 네트워크(130)는 이미지 입력(104)의 모든 타일이 처리될 때까지 인코딩 프로세스를 반복적으로 계속한다. 이미지 압축 및 재구성 시스템(100)은 이미지(140)에 대한 압축된 이진(바이너리)을 제공한다.
일부 구현들에서, 일단 타일이 인코딩되면, 리지듀얼 네트워크는 인코딩된 리지듀얼들(142), 즉 이진 코드 또는 압축된 이진 코드를 디코딩을 위해 디코더(128)에 전송할 수 있다. 이미지 디코딩은 타일 단위로 래스터 순서로 진행된다. 이미지 압축 및 재구성 시스템(100)은 예측된 타일을 얻기 위해 타일에 대한 컨텍스트상에서 디코더에 대한 공간(공간적) 컨텍스트 예측기(124)를 실행한다. 컨텍스트는 이미 재구성된 타일(150)을 사용하여 획득될 수 있다. 디코더(128)는 공간 컨텍스트 예측기(124)로부터 실제 디코딩된 타일과 예측된 타일 사이의 리지듀얼을 얻기 위해 이진 코드를 반복적으로 디코딩한다. 그 다음, 결합기(132)는 디코딩된 리지듀얼과 예측된 타일을 결합하여 타일(150)의 전체 재구성(full reconstruction)을 획득한다. 공간 컨텍스트 예측기(124)는 비트 레이트를 증가시키지 않고 타일 경계(tile boundaries)를 가로 질러 정보를 공유함으로써 타일들 사이의 경계 아티팩트(artifacts)의 출현을 회피함으로써 유리할 수 있다. 본질적으로, 컨텍스트 예측 신경망은 컨텍스트와 잘 메쉬(mesh)하는 픽셀을 생성할 수 있고, 타일의 예측된 픽셀이 컨텍스트 픽셀 근처에서보다 상세하고 정확하기 때문에, 네트워크는 경계 아티팩트를 최소화하도록 동작할 수 있다. 디코더(128)는 신경망이다.
디코더 신경망에 대한 예시적인 순환 아키텍처는 "G. Toderici, D. Vincent, N. Johnston, S.J. Hwang, D. Minnen, J. Shor, and M. Covell"의 “순환 신경망을 이용한 풀 해상도 이미지 압축(Full resolution image compression with recurrent neural networks)"으로서, "CoRR, vol. abs / 1608.05148, 2016"에 개시되며, 이의 전체 내용은 특히 디코더 신경망에 대한 순환 아키텍처와 관련하여 본 명세서에 참조로 포함된다.
이미지 압축 및 재구성 시스템(100)은 공간 컨텍스트 예측기(108)를 위한 훈련(학습) 엔진(공간 컨텍스트 예측기 훈련 엔진)(116) 및 리지듀얼 인코딩 네트워크(130)를 위한 훈련 엔진(리지듀얼 인코딩 네트워크 훈련 엔진)(118)을 또한 포함한다. 공간 컨텍스트 예측기(108) 및 리지듀얼 인코딩 네트워크(130)는 순차적으로 훈련(학습)된다. 공간 컨텍스트 예측기(108)는 입력 타일의 컨텍스트를 처리하여 입력 타일의 예측인 출력 타일을 생성하도록 훈련된다. 리지듀얼 인코더 네트워크는 공간 컨텍스트 예측기를 실행한 후 각 타일 내의 리지듀얼을 압축하도록 훈련된다. 인코더 네트워크는 공간 컨텍스트 예측 후에 남아있는 특정 픽셀 에러를 인코딩하는 것을 학습한다. 각각의 훈련 프로세스는 32개의 이미지의 미니-배치(mini-batch) 크기 및 20,000의 단계(step) 크기를 갖는 지수 감쇠 스케줄(B = 0.95)에 따라 0.5의 초기 학습 레이트를 사용할 수 있다. 일부 구현들에서, 2개의 네트워크는 함께 훈련될 수 있다. 다른 구현에서, 2개의 네트워크는 개별적으로 훈련될 수 있다.
훈련(학습) 데이터는 컨텍스트 이미지 패치, 예를 들어 도 2a-d에 도시된 바와 같은 64 x 64 이미지 패치일 수 있다. 이러한 이미지 패치는 이미지 모음(collection)에서 크롭(cropped)될 수 있다. 훈련 절차는 "G. Toderici, D. Vincent, N. Johnston, S.J. Hwang, D. Minnen, J. Shor, and M. Covell"의 "순환 신경망을 이용한 풀 해상도 이미지 압축(Full resolution image compression with recurrent neural networks)”으로서, "CoRR, vol. abs / 1608.05148, 2016"에 설명된 것과 유사할 수 있으며, 이의 전체 내용은 특히 훈련 절차와 관련하여 본원에 참조로 포함된다.
도 1은 동일한 시스템의 일부로서 공간 컨텍스트 예측기뿐만 아니라 인코딩 및 디코딩 구성 요소를 도시하지만, 일부 구현에서, 컴포넌트들은 개별 시스템일 수 있고 개별 컴퓨팅 장치에 위치될 수 있다. 예를 들어, 일 실시 예에서, 인코더(110)는 서버상에 위치될 수 있고, 디코더(114)는 클라이언트 장치에 위치될 수 있다. 공간 컨텍스트 예측기(108)는 제3 컴퓨팅 장치에 있을 수 있다.
도 3은 공간 컨텍스트 예측기 네트워크의 예시적인 아키텍처(300)를 도시한다. 공간 컨텍스트 예측기 네트워크는 스트라이드(strided) 컨벌루션을 사용하여 컨텍스트 타일로부터 특징을 추출하고 분수(fractional) 컨벌루션을 사용하여 타겟 타일에 대한 RGB 예측을 생성한다.
공간 컨텍스트 예측기는 입력으로서 (3-채널) 컨텍스트 패치(302)를 취한다. 예측기는 4개의 컨벌루션 계층들(310, 311, 312, 313)을 사용하여 입력을 처리한다. 이들 계층들 각각은 해상도가 감소되고 깊이가 더 높은 특징 맵을 학습한다. 상기 예측기는 깊이-방식(depth-wise) 컨벌루션 계층(320)에 이어서 포인트방식(pointwise) 컨벌루션 계층(321)을 사용하여 채널 방식으로 완전히 연결된 계층을 구현하며, 이는 2016년 "CVPR"의 "Deepak Pathak, Philipp Krahenbuhl, Jeff Donahue, Trevor Darrell, and Alexei Efros"의 “Context encoders: Feature learning by Inpainting,” 에 설명되어 있으며, 이의 전체 내용은 특히 채널 방식으로 완전히 연결된 계층(fully-connected layer)과 관련하여 본원에 참조로 포함된다. 이 계층을 사용하면 완전히 연결된 계층의 전체 2차 비용을 발생시키지 않고 정보가 전체 타일에 전파될 수 있다.
상기 네트워크의 마지막 단계에서, 예측기는 분수 컨벌루션 계층(330, 331, 332)를 사용하여 마지막 계층이 이전 32 x 32 x 64 특징 맵(feature map)에서 3-채널 이미지를 생성할 때까지 공간 분해능을 점진적으로 증가시켜 타겟 예측(340)을 생성한다.
상기 시스템은 공간 컨텍스트 예측 신경망에 의해 생성된 타겟 예측(340)과 실제 타일 사이의 리지듀얼 이미지를 결정한다. 리지듀얼 네트워크는 리지듀얼 이미지 타일을 처리하여 각 타일 내의 리지듀얼을 압축한다.
도 4는 리지듀얼 이미지를 압축 및 재구성하는 예시적인 리지듀얼 네트워크(400)를 도시한다. 리지듀얼 네트워크(400)는 각 계층이 정의된 높이, 폭 및 깊이를 갖는 순환 자동-인코더 아키텍처를 사용한다. 공간 컨텍스트 예측기는 각각의 새로운 타일에 대해 정확하고, LF(low frequency) 데이터를 생성할 수 있다. 공간 컨텍스트 예측기가 많은 이미지 세부 사항을 복구할 수 없는 경우, 순환 자동-인코더 아키텍처를 갖는 리지듀얼 이미지의 압축 및 재구성에 의해 재구성 품질이 개선될 수 있다. 각각의 반복에서, 리지듀얼 인코더는 입력으로부터 특징을 추출하고 이를 양자화하여 128 비트를 생성한다. 도 4는 4 개의 반복을 도시한다.
각 시간 단계에서, 리지듀얼 인코더 네트워크는 시간 단계에 대한 인코더 입력을 수신하고. 시간 단계에 대한 이진 코드 세트를 생성하기 위해 인코더(110)를 사용하여 입력을 처리한다. 첫 번째 시간 단계에서, 인코더 입력은 공간 컨텍스트 예측 신경망의 타겟 예측과 입력 이미지의 실제 타일 사이의 리지듀얼 이미지이다.
상기 시스템은 데이터 압축 알고리즘, 예를 들어 훈련된 엔트로피 코더를 사용하여 인코딩된 표현에서 이진 코드를 압축함으로써 입력 이미지를 압축한다. 상기 시스템은 입력 이미지의 압축 해제를 위해 상기 압축된 입력 이미지를 이미지 디코더로 전송할 수 있다.
디코더(114)는 이들 이진 코드로부터 입력을 재구성하는 것을 학습한다.
재구성은 상기 압축된 이진 코드를 압축 해제하여 타일에 대한 이진 코드의 각각의 세트를 생성하는 것을 포함할 수 있다. 각 반복은 이전 반복(Pi)에서 남은 리지듀얼을 캡처하려고 시도하므로 반복 출력의 합은 원래 입력에 대한 연속적인 더 나은 근사치를 제공한다.
제1 시간 단계 이후의 시간 단계들에 대한 인코더 입력은 (i) 리지듀얼과 (ii) 이전 시간 단계에서의 이진 코드 세트로부터 디코더 신경망에 의해 생성된 재구성 사이의 일시적인(temporary) 리지듀얼 이미지이다.
네트워크의 인코더 부분은 하나의 컨벌루션 계층을 사용하여 입력 리지듀얼 이미지에서 특징을 추출한 다음 이어서 공간 해상도(spatial resolution)를 줄이고 특징 맵을 생성하는 세 개의 컨벌루션 LSTM 계층을 사용한다. 가중치는 모든 반복에서 공유되며, 재순환(recurrent) 연결을 통해 정보가 한 반복에서 다음 반복으로 전파될 수 있다.
이진 병목(bottleneck) 계층(402)은 1x1 컨벌루션 및 그 후 쌍곡탄젠트(tanh) 활성화 함수를 사용하여 수신 특징(incoming features)을 (-1, 1)에 매핑한다. 시스템은 파라미터 공간에서의 탐색을 장려하기 위해 "tanh (P(b=1)=0.5 -(1+tanh(x)))"의 출력에서 샘플링한다.
예시적인 샘플링의 세부 사항은 "Raiko, M. Berglund, G. Alain, and L. Dinh"의 "이진 확률적 피드포워드 신경망 학습 기법(Techniques for learning binary stochastic feedforward neural networks,)"인 "ICLR, 2015"에 설명되어 있으며, 그 샘플링에 관한 내용은 여기에 참조로 포함된다. 상기 시스템이 훈련된 네트워크를 실제 이미지에 적용하면, 상기 시스템은 결정적으로 이진화한다(b = sign (tanh(x)), x = 0일 때 b = 1).
도 4에 도시되어 있지 않지만. 디코더(114)는 인코더(110)와 동일한 구조를 갖는다. 그러나, 디코더(114)는 분수 컨벌루션을 사용하여 각각의 특징 맵의 해상도를 증가시킨다. 마지막 계층은 32 x 32 x 64 모양의 특징 맵인 디코더의 출력을 가져오고 쌍곡 탄젠트(tanh) 활성화를 사용하여 특징들을 [-1, 1] 범위의 세 값에 매핑한다. 그 다음 출력을 스케일링, 클리핑 및 8비트 RGB 값으로 양자화한다(R=round(min (max(R1 * 142 + 128,0), 255)))). 상기 시스템은 128개가 아닌 142 개로 확장하여, 네트워크가 학습 속도가 매우 느려질 수 있는 작은 경사(gradients)를 갖는 쌍곡탄젠트(tanh) 범위에 들어가지 않고도 극단적인 픽셀 값을 보다 쉽게 예측할 수 있다.
상기 시스템은 현재 시간 단계 또는 임의의 이전 시간 단계에서 이미 생성된 이진 코드로부터 특정 타일이 재구성될 때 상기 특정 타일에 대한 품질 임계값(임계치)이 만족되는지를 결정함으로써, 각 시간 단계에서 특정 타일에 대한 이진 코드 세트를 생성한다. 품질 임계값은 예를 들어 재구성된 이미지에 대한 타겟 품질을 나타내는 미리 결정된 임계값일 수 있다. 품질 임계값이 만족되면, 상기 시스템은 이미 생성된 이진 코드를 입력 이미지의 인코딩된 표현에서 상기 특정 타일에 대한 이진 코드 세트로서 사용한다. 이 적응 방식은 리지듀얼 인코더가 임의의 단계 후에 중단될 수 있는 순환 네트워크인 것에 의해 용이해 진다. 각각의 단계는 추가 비트를 생성하기 때문에, 이 메커니즘은 상이한 타일들 사이에 적응형 비트 할당을 허용하고, 따라서 단일 신경망이 상이한 비트 레이트들에서 인코딩을 생성할 수 있게 한다.
도 5는 타일 컨벌루션 신경망과 함께 공간 적응 방식을 사용하여 이미지를 압축 및 재구성하기 위한 예시적인 프로세스(500)의 흐름도이다. 편의상, 프로세스(500)는 하나 이상의 위치에 위치되고 본 명세서에 따라 적절히 프로그래밍된 하나 이상의 컴퓨터의 시스템에 의해 수행되는 것으로 설명될 것이다. 예를 들어, 이미지 압축 및 재구성 시스템, 예를 들어, 적절하게 프로그램된 도 1의 이미지 압축 및 재구성 시스템(100)이 프로세스(500)를 수행할 수 있다.
도 5a 및 5b에 도시된 바와 같이, 이미지 압축 및 재구성 시스템은 타일로 분할된 입력 이미지의 인코딩된 표현을 생성하라는 요청을 수신한다(502). 그 후 시스템은 입력 이미지의 각각의 타일에 대한 각각의 이진 코드 세트를 포함하는 입력 이미지의 인코딩된 표현을 생성한다(504). 상기 시스템은 공간 컨텍스트 예측 신경망을 사용하여 특정 타일에 대한 컨텍스트를 먼저 처리함으로써 인코딩된 표현을 생성한다(506). 전술한 바와 같이, 공간 컨텍스트 예측 신경망은 입력 타일에 대한 컨텍스트를 처리하여 입력 타일의 예측인 출력 타일을 생성하도록 훈련된다. 그 후 상기 시스템은 공간 컨텍스트 예측 신경망에 의해 생성된 출력 타일과 특정 입력 타일 사이의 리지듀얼 이미지를 결정한다(507). 상기 시스템은 인코더 신경망을 사용하여 상기 리지듀얼 이미지를 인코딩함으로써 상기 특정 타일에 대한 이진 코드 세트를 생성한다(508). 이 인코딩 프로세스는 도 4와 관련하여 위에서 설명되었다.
도 6은 공간 적응 방식(spatially-adaptive approach)을 사용하여 압축된 이미지를 디코딩하기 위한 예시적인 프로세스(600)의 흐름도이다. 편의상, 프로세스(600)는 하나 이상의 위치에 위치되고 본 명세서에 따라 적절하게 프로그래밍된 하나 이상의 컴퓨터의 시스템에 의해 수행되는 것으로 설명될 것이다. 예를 들어, 이미지 압축 및 재구성 시스템, 예를 들어, 적절하게 프로그램된 도 1의 이미지 압축 및 재구성 시스템(100)은 프로세스(600)를 수행할 수 있다.
도 6에 도시된 바와 같이, 이미지 압축 및 재구성 시스템은 이미 디코딩(또는 재구성)된 특정 타일에 대한 컨텍스트 타일을 결정한다(602). 그 후, 시스템은 공간 컨텍스트 예측 네트워크를 사용하여 컨텍스트 타일을 처리하여 타겟 타일의 초기 재구성을 생성한다(604). 상기 시스템은 디코더 신경망을 사용하여 특정 타일에 대한 이진 코드를 처리함으로써 리지듀얼 재구성 이미지를 생성한다(606). 그 후, 시스템은 리지듀얼 재구성 이미지를 초기 재구성과 결합하여 최종 재구성 타일을 획득한다(608).
본 명세서에서 설명된 요지 및 기능적 동작의 실시 예는 디지털 전자 회로, 유형적으로 구현된 컴퓨터 소프트웨어 또는 펌웨어, 컴퓨터 하드웨어로 구현될 수 있으며, 이는 본 명세서에 개시된 구조 및 구조적 등가물 또는 이들 중 하나 이상의 조합을 포함한다. 본 명세서에서 설명된 요지의 실시 예는 하나 이상의 컴퓨터 프로그램, 즉 데이터 처리 장치에 의해 실행되거나 데이터 처리 장치의 동작을 제어하기 위한 유형적인 비 일시적 저장 매체상에 인코딩된 컴퓨터 프로그램 명령어의 하나 이상의 모듈로서 구현될 수 있다. 컴퓨터 저장 매체는 기계 판독 가능 저장 장치, 기계 판독 가능 저장 기판, 랜덤 또는 시리얼 액세스 메모리 장치, 또는 이들 중 하나 이상의 조합일 수 있다. 선택적으로 또는 부가적으로, 프로그램 명령어는 데이터 처리 장치에 의한 실행을 위해 적절한 수신기 장치로의 송신을 위해 정보를 인코딩하기 위해 생성되는 인위적으로 생성된 전파된 신호, 예를 들어, 기계-생성 전기, 광학 또는 전자기 신호 상에 인코딩될 수 있다.
"데이터 처리 장치"라는 용어는 데이터 처리 하드웨어를 지칭하며, 예를 들어 프로그램 가능 프로세서, 컴퓨터, 또는 다중 프로세서 또는 컴퓨터를 포함하여 데이터를 처리하기 위한 모든 종류의 장치, 디바이스 및 기계를 포함한다. 이 장치는 또한 특수 목적 논리 회로, 예를 들어, FPGA (field programmable gate array) 또는 ASIC(application specific integrated circuit)일 수 있거나, 포함할 수 있다. 상기 장치는 하드웨어 외에, 컴퓨터 프로그램, 예를 들어 프로세서 펌웨어, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 체제, 또는 하나 이상의 이들의 조합을 구성하는 코드와 같은 실행 환경을 생성하는 코드를 선택적으로 포함할 수 있다.
프로그램, 소프트웨어, 소프트웨어 애플리케이션, 애플리케이션, 모듈, 소프트웨어 모듈, 스크립트 또는 코드로 지칭되거나 설명될 수 있는 컴퓨터 프로그램은 컴파일된 언어 또는 해석된 언어 또는 선언적 또는 절차적 언어를 포함한 모든 형태의 프로그래밍 언어로 작성될 수 있으며, 독립 실행형 프로그램 또는 모듈로서, 컴포넌트, 서브 루틴 또는 컴퓨팅 환경에서 사용하기에 적합한 다른 장치를 포함하여 어떤 형태로든 배포될 수 있다. 프로그램은 파일 시스템의 파일에 해당할 수도 있지만 그렇지 않을 수도 있다. 프로그램은 마크 업 언어 문서에 저장된 하나 이상의 스크립트와 같은 다른 프로그램이나 데이터를 보유하고 있는 파일의 일부분, 해당 프로그램 전용의 단일 파일 또는 하나 이상의 모듈, 서브 프로그램 또는 코드의 일부를 저장하는 파일과 같은 다수의 조정된 파일에 저장될 수 있다. 컴퓨터 프로그램은 하나의 컴퓨터 또는 한 사이트에 있거나 여러 사이트에 분산되어 있으며 데이터 통신 네트워크로 상호 연결된 여러 대의 컴퓨터에서 실행되도록 배포될 수 있다.
본 명세서에서 설명되는 프로세스 및 로직 흐름은 입력 데이터를 조작하고 출력을 생성함으로써 기능을 수행하기 위해 하나 이상의 컴퓨터 프로그램을 실행하는 하나 이상의 프로그램 가능 컴퓨터에 의해 수행될 수 있다. 프로세스 및 로직 흐름은 또한 특수 목적 로직 회로, 예를 들어 FPGA 또는 ASIC에 의해, 또는 특수 목적 로직 회로와 하나 이상의 프로그래밍된 컴퓨터의 조합에 의해 수행될 수 있다.
컴퓨터 프로그램의 실행에 적합한 컴퓨터는 범용 또는 특수 목적 마이크로프로세서 또는 둘 모두 또는 임의의 다른 종류의 중앙 처리 장치를 기반으로 할 수 있다. 일반적으로, 중앙 처리 장치는 판독 전용 메모리 또는 랜덤 액세스 메모리 또는 둘 모두로부터 명령어 및 데이터를 수신할 것이다. 컴퓨터의 필수 구성요소는 명령어를 수행하거나 실행하기 위한 중앙 처리 장치 및 명령어 및 데이터를 저장하기 위한 하나 이상의 메모리 장치이다. 중앙 처리 장치 및 메모리는 특수 목적 로직 회로에 의해 보충되거나 또는 그 안에 포함될 수 있다. 일반적으로, 컴퓨터는 데이터(예를 들어, 자기, 광 자기 디스크 또는 광 디스크)를 저장하기 위한 하나 이상의 대용량 저장 장치로부터 데이터를 수신하거나 하나 이상의 대용량 저장 장치에 전송하기 위해 동작 가능하게 결합될 것이다. 그러나, 컴퓨터에는 이러한 장치가 있을 필요가 없다. 또한, 컴퓨터는 이동 전화, 개인 휴대 정보 단말기(PDA), 모바일 오디오 또는 비디오 플레이어, 게임 콘솔, 위성 위치 확인 시스템(GPS) 수신기 또는 휴대용 저장 장치(예를 들어 범용 직렬 버스(USB) 플래시 드라이브)와 같은 다른 장치에 내장될 수 있다.
컴퓨터 프로그램 명령어 및 데이터를 저장하기에 적합한 컴퓨터 판독 가능 매체는 예를 들어 EPROM, EEPROM 및 플래시 메모리 장치와 같은 반도체 메모리 장치, 내부 하드 디스크 또는 이동식 디스크와 같은 자기 디스크; 광 자기 디스크; 및 CD ROM 및 DVD-ROM 디스크를 포함하는 모든 형태의 비휘발성 메모리, 매체 및 메모리 장치를 포함한다.
사용자와의 상호 작용을 제공하기 위해, 본 명세서에서 설명된 요지의 실시 예는 정보를 사용자에게 디스플레이하기 위한 CRT(cathode ray tube) 또는 LCD(liquid crystal display) 모니터와 같은 디스플레이 장치와, 예를 들어 사용자가 컴퓨터에 입력을 제공할 수 있는 마우스 또는 트랙볼과 같은 포인팅 장치 및 키보드를 갖는 컴퓨터상에서 구현될 수 있다. 다른 종류의 장치가 사용자와의 상호 작용을 제공하는 데 사용될 수 있으며, 예를 들어, 사용자에게 제공되는 피드백은 시각 피드백, 청각 피드백 또는 촉각 피드백과 같은 임의의 형태의 감각 피드백일 수 있으며, 사용자로부터의 입력은 음향, 음성 또는 촉각 입력을 포함하는 임의의 형태로 수신될 수 있다. 또한, 컴퓨터는 사용자가 사용하는 장치로 문서를 보내고 문서를 수신하여 사용자와 상호 작용할 수 있으며, 예를 들어, 웹 브라우저로부터 수신된 요청에 응답하여 사용자의 장치상의 웹 브라우저에 웹 페이지를 전송함으로써 수행될 수 있다. 또한, 컴퓨터는 문자 메시지 또는 다른 형태의 메시지를 개인용 장치(예를 들어, 메시징 애플리케이션을 실행중인 스마트폰)에 송신하고 사용자로부터 응답 메시지를 수신함으로써 사용자와 상호 작용할 수 있다.
본 명세서에서 설명된 요지의 실시 예는 예를 들어 데이터 서버와 같은 백 엔드 컴포넌트를 포함하는 컴퓨팅 시스템에서 구현될 수 있거나, 또는 예를 들어 애플리케이션 서버와 같은 미들웨어 컴포넌트를 포함하는 컴퓨팅 시스템에서 구현될 수 있거나, 또는 예를 들어, 그래픽 사용자 인터페이스, 웹 브라우저 또는 사용자가 본 명세서에 설명된 요지의 구현예와 상호 작용할 수 있는 앱을 갖는 클라이언트 컴퓨터와 같은 프론트 엔드 컴포넌트를 포함하는 컴퓨팅 시스템에서 구현될 수 있거나, 또는 하나 이상의 그러한 백 엔드, 미들웨어 또는 프런트 엔드 컴포넌트의 임의의 조합을 포함하는 컴퓨팅 시스템에서 구현될 수 있다. 시스템의 컴포넌트는 디지털 데이터 통신의 임의의 형태 또는 매체, 예를 들어 통신 네트워크에 의해 상호 접속될 수 있다. 통신 네트워크의 예는 근거리 통신망(LAN) 및 광역 통신망(WAN), 예를 들어 인터넷을 포함한다.
컴퓨팅 시스템은 클라이언트와 서버를 포함할 수 있다. 클라이언트와 서버는 일반적으로 서로 멀리 떨어져 있으며, 일반적으로 통신 네트워크를 통해 상호 작용한다. 클라이언트와 서버의 관계는 각각의 컴퓨터에서 실행되고 서로 클라이언트-서버 관계를 갖는 컴퓨터 프로그램에 의해 발생한다. 일부 실시 예에서, 서버는 예를 들어, 클라이언트로서 동작하는 장치와 상호 작용하는 사용자에게 데이터를 디스플레이하고 사용자로부터 사용자 입력을 수신하기 위해 데이터, 예컨대 HTML 페이지를 사용자 장치로 송신한다. 사용자 장치에서 생성된 데이터, 예를 들어 사용자 상호 작용의 결과는 그 장치로부터 서버에서 수신될 수 있다.
첨부된 청구 범위의 실시 예 및 전술한 실시 예 외에, 다음의 번호가 매겨진 실시 예 또한 혁신적이다.
본 명세서는 많은 특정 구현 세부 사항을 포함하지만, 이들은 임의의 발명의 범위 또는 청구 범위에 대한 제한으로서 해석되어서는 안되며, 오히려 특정 발명의 특정 실시 예에 특정될 수 있는 특징에 대한 설명으로 해석되어야 한다. 별도의 실시 예와 관련하여 본 명세서에서 설명되는 특정 특징은 또한 단일 실시 예에서 조합하여 구현될 수 있다. 반대로, 단일 실시 예의 문맥에서 설명된 다양한 특징은 또한 다수의 실시 예에서 개별적으로 또는 임의의 적합한 하위 조합으로 구현될 수 있다. 더욱이, 특징들은 특정 조합으로 작용하고 상술된 바와 같이 초기에 주장될지라도, 어떤 경우에는 청구된 조합으로부터의 하나 이상의 특징이 그 조합으로부터 제거될 수 있고, 청구된 조합은 하위 조합 또는 하위 조합의 변형을 지향할 수 있다.
유사하게, 동작들이 도면들에 도시되고 특정 순서로 청구 범위들에 인용되어 있지만, 이는 바람직한 동작을 달성하기 위해 이러한 동작이 도시된 순서 또는 순차적인 순서로 수행되거나 도시된 모든 동작이 수행될 것을 요구하는 것으로 이해되어서는 안된다. 특정 상황에서 멀티태스킹 및 병렬 처리가 유리할 수 있다. 또한, 상술한 실시 예에서 다양한 시스템 모듈 및 컴포넌트의 분리는 모든 실시 예에서 이러한 분리를 요구하는 것으로 이해되어서는 안되며, 서술된 프로그램 컴포넌트들 및 시스템들은 일반적으로 단일 소프트웨어 제품에 함께 통합되거나 다중 소프트웨어 제품들로 패키징될 수 있다는 것을 이해해야 한다.
실시 예 1은 방법이며, 상기 방법은,
하나 이상의 컴퓨터들을 포함하는 이미지 인코더 시스템에 의해, 복수의 타일들로 분할된 입력 이미지의 인코딩된 표현을 생성하도록 하는 요청을 수신하는 단계; 그리고
상기 이미지 인코더 시스템에 의해, 상기 입력 이미지의 인코딩된 표현을 생성하는 단계를 포함하며, 상기 인코딩된 표현은 상기 복수의 타일들 각각에 대한 이진 코드 세트를 포함하고, 상기 생성 단계는, 상기 복수의 타일들 중 특정 타일에 대해:
상기 입력 타일의 예측인 출력 타일을 생성하기 위해 입력 타일에 대한 컨텍스트를 처리하도록 훈련된 공간 컨텍스트 예측 신경망을 사용하여 상기 특정 타일에 대한 컨텍스트를 처리하는 단계 - 상기 컨텍스트는 상기 입력 이미지에서 상기 특정 타일에 인접한 하나 이상의 타일들을 포함함-;
상기 특정 타일에 대한 컨텍스트를 처리함으로써 상기 공간 컨텍스트 예측 신경망에 의해 생성된 출력 타일과 상기 특정 타일 사이의 리지듀얼(residual) 이미지를 결정하는 단계; 그리고
인코더 신경망을 사용하여 상기 리지듀얼 이미지를 인코딩함으로써 상기 특정 타일에 대한 이진 코드 세트를 생성하는 단계를 포함한다.
실시 예 2는 실시 예 1의 방법으로서, 상기 방법은, 데이터 압축 알고리즘을 사용하여 상기 인코딩된 표현에서 이진 코드를 압축함으로써 상기 입력 이미지를 압축하는 단계를 더 포함한다.
실시 예 3은 실시 예 2의 방법으로서, 상기 데이터 압축 알고리즘은 훈련된 엔트로피 코더이다.
실시 예 4는 실시 예 2 또는 3중 어느 하나의 방법으로서, 상기 압축된 입력 이미지를 상기 입력 이미지의 압축해제를 위해 이미지 디코더 시스템으로 전송하는 단계를 더 포함한다.
실시 예 5는 실시 예 1 내지 4중 어느 하나의 방법으로서, 상기 인코더 신경망은, 복수의 시간 단계들 각각에서, 시간 단계에 대한 인코더 입력을 수신하고, 상기 시간 단계에 대한 이진 코드 세트를 생성하도록 상기 인코더 입력을 처리함으로써, 상기 리지듀얼을 인코딩하도록 구성된 순환 신경망이다.
실시 예 6은 실시 예 5의 방법으로서, 상기 복수의 시간 단계들 중 제1 시간 단계에 대한 상기 인코더 입력은 상기 리지듀얼 이미지이다.
실시 예 7은 실시 예 5 또는 6중 어느 하나의 방법으로서, 상기 제1 시간 단계 이후에 상기 복수의 시간 단계들 중 하나의 시간 단계에 대한 인코더 입력은 (i) 리지듀얼과 (ii) 상기 이전 시간 단계에서 디코더 신경망에 의해 이진 코드 세트로부터 생성된 재구성 사이의 일시적(temporary) 리지듀얼 이미지이고;
상기 디코더 신경망은, 상기 복수의 시간 단계들 각각에서, 시간 단계에 대한 이진 코드 세트를 포함하는 디코더 입력을 수신하고, 상기 시간 단계에서 상기 인코더 입력의 재구성을 생성하기 위해 디코더 입력을 처리하도록 구성된 순환 신경망이다.
실시 예 8은 실시 예 7의 방법으로서, 상기 특정 타일에 대한 이진 코드 세트를 생성하는 단계는, 상기 복수의 시간 단계들 각각에서, 임의의 이전 시간 단계들 및 상기 시간 단계에서 이미 생성된 이진 코드로부터 재구성될 때 상기 특정 타일에 대한 품질 임계값이 만족되는지 여부를 상기 시간 단계에 대한 인코더 입력의 재구성으로부터 결정하는 단계를 포함한다.
실시 예 9는 실시 예 8의 방법으로서, 상기 특정 타일에 대한 이진 코드 세트를 생성하는 단계는, 상기 품질 임계값이 만족되었다는 결정에 응답하여, 이미 생성된 이진 코드를 상기 입력 이미지의 인코딩된 표현에서 상기 특정 타일에 대한 이진 코드 세트로서 사용하는 단계를 포함한다.
실시 예 10은 실시 예 1 내지 6 중 어느 하나의 방법으로서, 상기 특정 타일에 대한 이진 코드 세트를 생성하는 단계는, 복수의 시간 단계들 각각에서:
현재 시간 단계에서 생성된 이진 코드 세트로부터 상기 특정 타일이 재구성될 때 상기 특정 타일에 대한 품질 임계값이 만족되는지를 결정하는 단계; 그리고
상기 품질 임계값이 만족되었다는 결정에 응답하여, 상기 입력 이미지의 인코딩된 표현에서 상기 특정 타일에 대한 이진 코드 세트로서 상기 특정 타일에 대한 현재 시간 단계에서 생성된 이진 코드 세트를 사용하는 단계를 포함한다.
실시 예 11은 실시 예 1-10 중 어느 하나의 방법으로서, 상기 특정 타일이 상기 입력 이미지의 좌측 또는 상부 경계상에 있지 않을 때, 상기 컨텍스트는 상기 입력 이미지의 상기 특정 타일의 좌측 및 상부에 인접한 타일들이다.
실시 예 12는 실시 예 11의 방법으로서, 상기 특정 타일이 상기 입력 이미지의 왼쪽 경계에 있고 그리고 상기 입력 이미지의 좌측 상단 코너에 있지 않은 경우, 상기 컨텍스트는 플레이스홀더 컨텍스트 데이터 및 상기 특정 타일 위의 인접 타일이다.
실시 예 13은 실시 예 12의 방법으로서, 상기 특정 타일이 상기 입력 이미지의 좌측 상단 코너에있을 때, 상기 컨텍스트는 플레이스홀더 컨텍스트 데이터이다.
실시 예 14는 실시 예 11 내지 13중 어느 하나의 방법으로서, 상기 특정 타일이 상기 입력 이미지의 상단 경계에 있고 그리고 상기 입력 이미지의 좌측 상단코너에 있지 않은 경우, 상기 컨텍스트는 플레이스홀더 컨텍스트 데이터 및 특정 타일의 좌측에 인접한 타일이다.
실시 예 15는 방법으로서,
하나 이상의 컴퓨터들을 포함하는 이미지 디코더 시스템에 의해, 입력 이미지의 인코딩된 표현으로부터 입력 이미지를 재구성하도록 하는 요청을 수신하는 단계 -상기 입력 이미지는 복수의 타일들로 분할되고, 상기 인코딩된 표현은 복수의 타일들 각각에 대한 이진 코드 세트를 포함함-; 그리고
상기 이미지 디코더 시스템에 의해, 상기 입력 이미지의 재구성을 생성하는 단계를 포함하며,
상기 생성하는 단계는, 상기 복수의 타일들 중 특정 타일에 대해:
입력 타일에 대한 컨텍스트를 처리하여 입력 타일의 초기 재구성 이미지인 출력 타일을 생성하도록 훈련된 공간 컨텍스트 예측 신경망을 사용하여 상기 특정 타일에 대한 컨텍스트를 처리하는 단계 -상기 컨텍스트는 입력 이미지에서 특정 타일에 인접한 하나 이상의 타일들의 재구성을 포함함-;
디코더 신경망을 사용하여 상기 타일에 대한 이진 코드 세트를 처리함으로써 상기 특정 타일의 리지듀얼 재구성 이미지를 생성하는 단계; 그리고
상기 특정 타일의 리지듀얼 재구성 이미지 및 초기 재구성 이미지를 결합하여 상기 특정 타일의 최종 재구성을 생성하는 단계를 포함한다.
실시 예 16은 실시 예 15의 방법으로서, 상기 재구성을 생성하는 단계는,
압축된 입력 이미지를 수신하는 단계; 그리고
데이터 압축해제 알고리즘을 사용하여 상기 압축된 입력 이미지를 압축해제하여 상기 타일들에 대한 각각의 이진 코드 세트를 생성하는 단계를 더 포함한다.
실시 예 17은 실시 예 16의 방법으로서, 상기 데이터 압축해제 알고리즘은 훈련된 엔트로피 디코더이다.
실시 예 18은 실시 예 15-17 중 어느 하나의 방법으로서, 상기 특정 타일에 대한 이진 코드 세트는 복수의 시간 단계들 각각에 대한 이진 코드 서브세트를 포함하고, 상기 디코더 신경망은 상기 복수의 시간 단계들 각각에서, 시간 단계 재구성 리지듀얼 이미지를 생성하기 위해 상기 시간 단계에 대한 이진 코드 서브세트를 처리(프로세싱)함으로써, 상기 리지듀얼을 생성하도록 구성된 순환 신경망이다.
실시 예 19는 실시 예 18의 방법으로서, 상기 재구성 리지듀얼 이미지를 생성하는 단계는, 상기 복수의 시간 단계들에 대한 시간 단계 재구성 리지듀얼 이미지들을 결합하는 단계를 포함한다.
실시 예 20은 실시 예 15-19 중 어느 하나의 방법으로서, 상기 특정 타일이 상기 입력 이미지의 좌측 또는 상부 경계에 있지 않은 경우, 상기 컨텍스트는 상기 입력 이미지에서 상기 특정 타일의 좌측 및 상부의 인접 타일들의 재구성이다.
실시 예 21은 실시 예 20의 방법으로서, 상기 특정 타일이 상기 입력 이미지의 좌측 경계에 있고 그리고 상기 입력 이미지의 좌측 상단 코너에 있지 않은 경우, 상기 컨텍스트는 플레이스홀더 컨텍스트 데이터 및 상기 특정 타일 위의 인접 타일의 재구성이다.
실시 예 22는 실시 예 21의 방법으로서, 상기 특정 타일이 상기 입력 이미지의 좌측 상단 코너에 있을 때, 상기 컨텍스트는 플레이스홀더 컨텍스트 데이터이다.
실시 예 23은 실시 예 20-22 중 어느 하나의 방법으로서, 상기 특정 타일이 상기 입력 이미지의 상단 경계에 있고 그리고 상기 입력 이미지의 좌측 상단 코너에 있지 않은 경우, 상기 컨텍스트는 플레이스홀더 컨텍스트 데이터 및 상기 특정 타일의 좌측에 인접한 타일의 재구성이다.
실시 예 24는 하나 이상의 컴퓨터들 및 하나 이상의 컴퓨터들에 의해 실행될 때 상기 하나 이상의 컴퓨터로들 하여금 실시 예 1-23 중 어느 하나의 방법의 동작들을 수행하게 하는 명령어들을 저장하는 하나 이상의 저장 장치들을 포함하는 시스템이다.
실시 예 25는 하나 이상의 컴퓨터들에 의해 실행될 때 상기 하나 이상의 컴퓨터들로 하여금 실시 예 1-23 중 어느 하나의 방법의 동작들을 수행하게 하는 명령어들을 저장하는 하나 이상의 컴퓨터 저장 매체이다.
본 발명의 특정 실시 예가 설명되었다. 다른 실시 예들은 다음의 청구항들의 범위 내에 있다. 예를 들어, 청구 범위에서 열거된 동작은 상이한 순서로 수행될 수 있으며 여전히 바람직한 결과를 달성한다. 일례로서, 첨부된 도면에 도시된 프로세스는 바람직한 결과를 얻기 위해 도시된 특정 순서 또는 순차적 순서를 반드시 필요로하지는 않는다. 어떤 경우에는 멀티태스킹 및 병렬 처리가 유리할 수 있다.

Claims (25)

  1. 이미지를 인코딩하는 방법으로서,
    하나 이상의 컴퓨터들을 포함하는 이미지 인코더 시스템에 의해, 복수의 타일들로 분할된 입력 이미지의 인코딩된 표현을 생성하도록 하는 요청을 수신하는 단계; 그리고
    상기 이미지 인코더 시스템에 의해, 상기 입력 이미지의 인코딩된 표현을 생성하는 단계를 포함하며, 상기 인코딩된 표현은 상기 복수의 타일들 각각에 대한 이진 코드 세트를 포함하고, 상기 생성하는 단계는, 상기 복수의 타일들 중 특정 타일에 대해:
    입력 타일의 예측인 출력 타일을 생성하기 위해 입력 타일에 대한 컨텍스트를 처리하도록 훈련된 공간 컨텍스트 예측 신경망을 사용하여 상기 특정 타일에 대한 컨텍스트를 처리하는 단계 - 상기 컨텍스트는 상기 입력 이미지에서 상기 특정 타일에 인접한 하나 이상의 타일들을 포함함-;
    상기 특정 타일에 대한 컨텍스트를 처리함으로써 상기 공간 컨텍스트 예측 신경망에 의해 생성된 출력 타일과 상기 특정 타일 사이의 리지듀얼(residual) 이미지를 결정하는 단계; 그리고
    인코더 신경망을 사용하여 상기 리지듀얼 이미지를 인코딩함으로써 상기 특정 타일에 대한 이진 코드 세트를 생성하는 단계를 포함하며,
    상기 인코더 신경망은,
    복수의 시간 단계들 각각에서,
    시간 단계에 대한 인코더 입력을 수신하고, 상기 인코더 입력을 처리하여 상기 시간 단계에 대한 이진 코드 세트를 생성함으로써, 상기 리지듀얼 이미지를 인코딩하도록 구성된 순환 신경망인 것을 특징으로 하는 이미지를 인코딩하는 방법.
  2. 제1항에 있어서, 상기 방법은, 데이터 압축 알고리즘을 사용하여 상기 인코딩된 표현에서 이진 코드를 압축함으로써 상기 입력 이미지를 압축하는 단계를 더 포함하는 것을 특징으로 하는 이미지를 인코딩하는 방법.
  3. 제2항에 있어서,
    상기 데이터 압축 알고리즘은 훈련된 엔트로피 코더인 것을 특징으로 하는 이미지를 인코딩하는 방법.
  4. 제2항에 있어서, 상기 방법은,
    상기 압축된 입력 이미지를 상기 입력 이미지의 압축해제를 위해 이미지 디코더 시스템으로 전송하는 단계를 더 포함하는 것을 특징으로 하는 이미지를 인코딩하는 방법.
  5. 삭제
  6. 제1항에 있어서,
    상기 복수의 시간 단계들 중 제1 시간 단계에 대한 상기 인코더 입력은 상기 리지듀얼 이미지인 것을 특징으로 하는 이미지를 인코딩하는 방법.
  7. 제6항에 있어서,
    상기 제1 시간 단계 이후에 상기 복수의 시간 단계들 중 시간 단계에 대한 인코더 입력은 (i) 리지듀얼 이미지와 (ii) 상기 제1 시간 단계를 포함하는 임의의 이전 시간 단계에서 디코더 신경망에 의해 이진 코드 세트로부터 생성된 재구성 이미지 사이의 템포러리(temporary) 리지듀얼 이미지이고;
    상기 디코더 신경망은, 상기 복수의 시간 단계들 각각에서, 시간 단계에 대한 이진 코드 세트를 포함하는 디코더 입력을 수신하고, 상기 시간 단계에서 상기 인코더 입력의 재구성을 생성하기 위해 디코더 입력을 처리하도록 구성된 순환 신경망인 것을 특징으로 하는 이미지를 인코딩하는 방법.
  8. 제7항에 있어서,
    상기 특정 타일에 대한 이진 코드 세트를 생성하는 단계는, 상기 복수의 시간 단계들 각각에서,
    상기 제1 시간 단계를 포함하는 임의의 이전 시간 단계들 및 상기 시간 단계에서 이미 생성된 이진 코드로부터 재구성될 때 상기 특정 타일에 대한 품질 임계값이 만족되는지 여부를 상기 시간 단계에 대한 인코더 입력의 재구성으로부터 결정하는 단계를 포함하는 것을 특징으로 하는 이미지를 인코딩하는 방법.
  9. 제8항에 있어서,
    상기 특정 타일에 대한 이진 코드 세트를 생성하는 단계는,
    상기 품질 임계값이 만족되었다는 결정에 응답하여, 이미 생성된 이진 코드를 상기 입력 이미지의 인코딩된 표현에서 상기 특정 타일에 대한 이진 코드 세트로서 사용하는 단계를 포함하는 것을 특징으로 하는 이미지를 인코딩하는 방법.
  10. 제1항에 있어서, 상기 특정 타일에 대한 이진 코드 세트를 생성하는 단계는, 복수의 시간 단계들 각각에서:
    시간 단계에서 생성된 이진 코드 세트로부터 상기 특정 타일이 재구성될 때 상기 특정 타일에 대한 품질 임계값이 만족되는지를 결정하는 단계; 그리고
    상기 품질 임계값이 만족되었다는 결정에 응답하여, 상기 입력 이미지의 인코딩된 표현에서 상기 특정 타일에 대한 이진 코드 세트로서 상기 특정 타일에 대한 시간 단계에서 생성된 이진 코드 세트를 사용하는 단계를 포함하는 것을 특징으로 하는 이미지를 인코딩하는 방법.
  11. 제1항에 있어서,
    상기 특정 타일이 상기 입력 이미지의 좌측 또는 상부 경계에 있지 않을 때, 상기 컨텍스트는 상기 입력 이미지의 상기 특정 타일의 좌측 및 상부에 인접한 타일들인 것을 특징으로 하는 이미지를 인코딩하는 방법.
  12. 제11항에 있어서,
    상기 특정 타일이 상기 입력 이미지의 좌측 경계에 있고 그리고 상기 입력 이미지의 좌측 상단 코너에 있지 않은 경우, 상기 컨텍스트는 플레이스홀더 컨텍스트 데이터 및 상기 특정 타일 위의 인접 타일인 것을 특징으로 하는 이미지를 인코딩하는 방법.
  13. 제12항에 있어서, 상기 특정 타일이 상기 입력 이미지의 좌측 상단 코너에 있을 때, 상기 컨텍스트는 플레이스홀더 컨텍스트 데이터인 것을 특징으로 하는 이미지를 인코딩하는 방법.
  14. 제11항에 있어서,
    상기 특정 타일이 상기 입력 이미지의 상단 경계에 있고 그리고 상기 입력 이미지의 좌측 상단 코너에 있지 않은 경우, 상기 컨텍스트는 플레이스홀더 컨텍스트 데이터 및 상기 특정 타일의 좌측에 인접한 타일인 것을 특징으로 하는 이미지를 인코딩하는 방법.
  15. 이미지를 디코딩하는 방법으로서,
    하나 이상의 컴퓨터들을 포함하는 이미지 디코더 시스템에 의해, 입력 이미지의 인코딩된 표현으로부터 입력 이미지를 재구성하도록 하는 요청을 수신하는 단계 -상기 입력 이미지는 복수의 타일들로 분할되고, 상기 인코딩된 표현은 복수의 타일들 각각에 대한 이진 코드 세트를 포함함-; 그리고
    상기 이미지 디코더 시스템에 의해, 상기 입력 이미지의 재구성을 생성하는 단계를 포함하며,
    상기 생성하는 단계는, 상기 복수의 타일들 중 특정 타일에 대해:
    입력 타일에 대한 컨텍스트를 처리하여 입력 타일의 초기 재구성 이미지인 출력 타일을 생성하도록 훈련된 공간 컨텍스트 예측 신경망을 사용하여 상기 특정 타일에 대한 컨텍스트를 처리하는 단계 -상기 컨텍스트는 입력 이미지의 특정 타일에 인접한 하나 이상의 타일들의 재구성을 포함함-;
    디코더 신경망을 사용하여 특정 타일에 대한 이진 코드 세트를 처리함으로써 상기 특정 타일의 리지듀얼 재구성 이미지를 생성하는 단계; 그리고
    상기 특정 타일의 리지듀얼 재구성 이미지 및 초기 재구성 이미지를 결합하여 상기 특정 타일의 최종 재구성을 생성하는 단계를 포함하며,
    상기 특정 타일에 대한 이진 코드 세트는 복수의 시간 단계들 각각에 대한 이진 코드 서브세트를 포함하고,
    상기 디코더 신경망은, 상기 복수의 시간 단계들 각각에서:
    상기 시간 단계에 대한 상기 이진 코드 서브세트를 처리하여 시간 단계 재구성 리지듀얼 이미지를 생성함으로써, 상기 리지듀얼 재구성 이미지를 생성하도록 구성된 순환 신경망인 것을 특징으로 하는 이미지를 디코딩하는 방법.
  16. 제15항에 있어서, 상기 재구성을 생성하는 단계는,
    압축된 입력 이미지를 수신하는 단계; 그리고
    데이터 압축해제 알고리즘을 사용하여 상기 압축된 입력 이미지를 압축해제하여 타일들에 대한 각각의 이진 코드 세트를 생성하는 단계를 더 포함하는 것을 특징으로 하는 이미지를 디코딩하는 방법.
  17. 제16항에 있어서, 상기 데이터 압축해제 알고리즘은 훈련된 엔트로피 디코더인 것을 특징으로 하는 이미지를 디코딩하는 방법.
  18. 삭제
  19. 제15항에 있어서, 상기 재구성 리지듀얼 이미지를 생성하는 단계는,
    상기 복수의 시간 단계들에 대한 시간 단계 재구성 리지듀얼 이미지들을 결합하는 단계를 포함하는 것을 특징으로 하는 이미지를 디코딩하는 방법.
  20. 제15항에 있어서,
    상기 특정 타일이 상기 입력 이미지의 좌측 또는 상부 경계에 있지 않은 경우, 상기 컨텍스트는 상기 입력 이미지의 상기 특정 타일의 좌측 및 상부의 인접 타일들의 재구성인 것을 특징으로 하는 이미지를 디코딩하는 방법.
  21. 제20항에 있어서,
    상기 특정 타일이 상기 입력 이미지의 좌측 경계에 있고 그리고 상기 입력 이미지의 좌측 상단 코너에 있지 않은 경우, 상기 컨텍스트는 플레이스홀더 컨텍스트 데이터 및 상기 특정 타일 위의 인접 타일의 재구성인 것을 특징으로 하는 이미지를 디코딩하는 방법.
  22. 제21항에 있어서, 상기 특정 타일이 상기 입력 이미지의 좌측 상단 코너에 있을 때, 상기 컨텍스트는 플레이스홀더 컨텍스트 데이터인 것을 특징으로 하는 이미지를 디코딩하는 방법.
  23. 제20항에 있어서,
    상기 특정 타일이 상기 입력 이미지의 상단 경계에 있고 그리고 상기 입력 이미지의 좌측 상단 코너에 있지 않은 경우, 상기 컨텍스트는 플레이스홀더 컨텍스트 데이터 및 상기 특정 타일의 좌측에 인접한 타일의 재구성인 것을 특징으로 하는 이미지를 디코딩하는 방법.
  24. 시스템으로서,
    하나 이상의 컴퓨터들 및
    상기 하나 이상의 컴퓨터들에 의해 실행될 때 상기 하나 이상의 컴퓨터들로 하여금 제1항 내지 제4항, 제6항 내지 제17항, 제19항 내지 제23항중 어느 한 항의 방법의 동작들을 수행하게 하는 명령어들을 저장하는 하나 이상의 저장 장치들을 포함하는 것을 특징으로 하는 시스템.
  25. 하나 이상의 컴퓨터 저장 매체로서,
    하나 이상의 컴퓨터들에 의해 실행될 때 상기 하나 이상의 컴퓨터들로 하여금 제1항 내지 제4항, 제6항 내지 제17항, 제19항 내지 제23항 중 어느 한 항의 방법의 동작들을 수행하게 하는 명령어들을 저장하는 것을 특징으로 하는 하나 이상의 컴퓨터 저장 매체.
KR1020197032378A 2017-05-26 2018-05-29 신경망을 이용한 타일 이미지 압축 KR102332476B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201762511935P 2017-05-26 2017-05-26
US62/511,935 2017-05-26
PCT/US2018/034933 WO2018218249A1 (en) 2017-05-26 2018-05-29 Tiled image compression using neural networks

Publications (2)

Publication Number Publication Date
KR20190133044A KR20190133044A (ko) 2019-11-29
KR102332476B1 true KR102332476B1 (ko) 2021-11-30

Family

ID=63080457

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020197032378A KR102332476B1 (ko) 2017-05-26 2018-05-29 신경망을 이용한 타일 이미지 압축

Country Status (6)

Country Link
US (1) US11250595B2 (ko)
EP (1) EP3603070A1 (ko)
JP (2) JP6956803B2 (ko)
KR (1) KR102332476B1 (ko)
CN (1) CN110915215B (ko)
WO (1) WO2018218249A1 (ko)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3603070A1 (en) * 2017-05-26 2020-02-05 Google LLC Tiled image compression using neural networks
US11082720B2 (en) * 2017-11-21 2021-08-03 Nvidia Corporation Using residual video data resulting from a compression of original video data to improve a decompression of the original video data
EP3776477A4 (en) * 2018-04-09 2022-01-26 Nokia Technologies Oy DEVICE, METHOD AND COMPUTER PROGRAM FOR VIDEO ENCODING AND DECODING
US10999606B2 (en) * 2019-01-08 2021-05-04 Intel Corporation Method and system of neural network loop filtering for video coding
US11240492B2 (en) * 2019-01-22 2022-02-01 Apple Inc. Neural network based residual coding and prediction for predictive coding
US11182929B2 (en) * 2019-02-25 2021-11-23 Center For Deep Learning In Electronics Manufacturing, Inc. Methods and systems for compressing shape data for electronic designs
EP3705944A1 (en) * 2019-03-06 2020-09-09 ASML Netherlands B.V. Extracting a feature from a data set
US10373300B1 (en) 2019-04-29 2019-08-06 Deep Render Ltd. System and method for lossy image and video compression and transmission utilizing neural networks
CN110728726B (zh) * 2019-10-24 2022-09-23 湖南大学 一种基于用户交互与深度神经网络的图像压缩方法
US20210406691A1 (en) * 2020-06-29 2021-12-30 Tencent America LLC Method and apparatus for multi-rate neural image compression with micro-structured masks
CN114079776A (zh) * 2020-08-21 2022-02-22 Oppo广东移动通信有限公司 图像处理方法、装置、设备、计算机存储介质和系统
FR3114933B1 (fr) * 2020-10-06 2023-10-13 Fond B Com Procédé et dispositif électronique de décodage d’un flux de données, et programme d’ordinateur associé
US11816871B2 (en) * 2020-12-30 2023-11-14 Advanced Micro Devices, Inc. Real-time low latency computer vision/machine learning compute accelerator with smart convolutional neural network scheduler
US20220345717A1 (en) * 2021-04-16 2022-10-27 Tencent America LLC Method and apparatus for dynamic learning rates of substitution in neural image compression
KR102620823B1 (ko) * 2021-07-06 2024-01-04 한국과학기술원 인공지능 기반의 변형가능한 기준 마커 생성 및 인식 방법 및 그 시스템
CN113810693B (zh) * 2021-09-01 2022-11-11 上海交通大学 一种jpeg图像无损压缩和解压缩方法、系统与装置
CN113949882A (zh) * 2021-09-17 2022-01-18 镕铭微电子(济南)有限公司 基于卷积神经网络的视频编解码方法及装置
US11546614B1 (en) 2021-10-25 2023-01-03 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Encoder and decoder for encoding and decoding images
CN114494569B (zh) * 2022-01-27 2023-09-19 光线云(杭州)科技有限公司 基于轻量级神经网络和残差流式传输的云渲染方法和装置
CN114501011B (zh) * 2022-02-22 2023-04-21 北京市商汤科技开发有限公司 图像压缩方法、图像解压缩方法及装置
CN115278257A (zh) * 2022-07-28 2022-11-01 北京大学深圳研究生院 一种图像压缩方法、装置、电子设备及存储介质

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
HUP0301368A3 (en) * 2003-05-20 2005-09-28 Amt Advanced Multimedia Techno Method and equipment for compressing motion picture data
JP4717860B2 (ja) 2007-08-22 2011-07-06 眞一郎 湯村 データ圧縮方法及び画像表示方法及び表示画像拡大方法
JP5222870B2 (ja) 2010-03-05 2013-06-26 日本放送協会 イントラ予測装置、符号化器、復号器及びプログラム
US8615138B2 (en) * 2011-11-03 2013-12-24 Google Inc. Image compression using sub-resolution images
WO2015176280A1 (en) * 2014-05-22 2015-11-26 Microsoft Technology Licensing, Llc Re-encoding image sets using frequency-domain differences
CN107736027B (zh) 2015-06-12 2021-06-01 松下知识产权经营株式会社 图像编码方法、图像解码方法、图像编码装置及图像解码装置
US11321609B2 (en) * 2016-10-19 2022-05-03 Samsung Electronics Co., Ltd Method and apparatus for neural network quantization
US11593632B2 (en) * 2016-12-15 2023-02-28 WaveOne Inc. Deep learning based on image encoding and decoding
WO2018213499A1 (en) * 2017-05-16 2018-11-22 Google Llc Stop code tolerant image compression neural networks
EP3603070A1 (en) * 2017-05-26 2020-02-05 Google LLC Tiled image compression using neural networks
CN108960333B (zh) * 2018-07-12 2021-12-17 西安电子科技大学 基于深度学习的高光谱图像无损压缩方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
George Toderici et al, Full Resolution Image Compression with Recurrent Neural Networks, arXivpreprint arXiv:1608.05148 (2016.08.18.)*
Syed A. Rizvi et al, Finite-State Residual Vector Quantization Using a Tree-Structured Competitive Neural Network, IEEE TRANSACTIONS ON CSVT, VOL. 7, NO. 2 (1997.04.)*

Also Published As

Publication number Publication date
WO2018218249A1 (en) 2018-11-29
US11250595B2 (en) 2022-02-15
US20200111238A1 (en) 2020-04-09
JP2020522153A (ja) 2020-07-27
JP2021192525A (ja) 2021-12-16
JP7225333B2 (ja) 2023-02-20
KR20190133044A (ko) 2019-11-29
JP6956803B2 (ja) 2021-11-02
EP3603070A1 (en) 2020-02-05
CN110915215B (zh) 2024-03-08
CN110915215A (zh) 2020-03-24

Similar Documents

Publication Publication Date Title
KR102332476B1 (ko) 신경망을 이용한 타일 이미지 압축
Minnen et al. Spatially adaptive image compression using a tiled deep network
US11310509B2 (en) Method and apparatus for applying deep learning techniques in video coding, restoration and video quality analysis (VQA)
KR102287947B1 (ko) 영상의 ai 부호화 및 ai 복호화 방법, 및 장치
CN111868753A (zh) 使用条件熵模型的数据压缩
EP2916543A1 (en) Method for coding/decoding depth image and coding/decoding device
US10531082B2 (en) Predictive light-field compression
WO2020062074A1 (en) Reconstructing distorted images using convolutional neural network
WO2013107555A1 (en) Methods and devices for pixel-prediction for compression of visual data
KR102138650B1 (ko) 디지털 이미지의 블록을 처리하는 시스템 및 방법
Ayzik et al. Deep image compression using decoder side information
CN108632630B (zh) 一种结合位运算和概率预测的二值图像编码方法
García Aranda et al. Logarithmical hopping encoding: a low computational complexity algorithm for image compression
CN108353180A (zh) 具有延迟重构的视频编码
KR20210070944A (ko) 픽셀-공간 예측을 이용하는 종단 간 압축을 위한 방법, 장치 및 기록 매체
CN115941966B (zh) 一种视频压缩方法及电子设备
Wang et al. Enhancing HEVC spatial prediction by context-based learning
KR102250088B1 (ko) 비디오 스트림을 복호화하는 방법 및 장치
US20200314451A1 (en) A New Pyramid Algorithm For Video Compression And Video Analysis
Nortje et al. BINet: A binary inpainting network for deep patch-based image compression
Kumar et al. A novel method for image compression using spectrum
KR20200035879A (ko) 문맥-적응적 엔트로피 모델을 사용하는 영상 처리를 위한 방법 및 방법
US11979587B2 (en) Hybrid inter-frame coding using an autoregressive model
CN115311138B (zh) 图像超分辨率方法及装置
US20220312017A1 (en) Video compression technique using a machine learning system

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
X091 Application refused [patent]
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant