KR20220140706A - 컨볼루션 신경망(cnn) 기반 필터를 사용한 360도 비디오의 향상 - Google Patents

컨볼루션 신경망(cnn) 기반 필터를 사용한 360도 비디오의 향상 Download PDF

Info

Publication number
KR20220140706A
KR20220140706A KR1020227024293A KR20227024293A KR20220140706A KR 20220140706 A KR20220140706 A KR 20220140706A KR 1020227024293 A KR1020227024293 A KR 1020227024293A KR 20227024293 A KR20227024293 A KR 20227024293A KR 20220140706 A KR20220140706 A KR 20220140706A
Authority
KR
South Korea
Prior art keywords
cnn
artifacts
video
viewport
based filter
Prior art date
Application number
KR1020227024293A
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 인텔 코포레이션
Publication of KR20220140706A publication Critical patent/KR20220140706A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/698Control of cameras or camera modules for achieving an enlarged field of view, e.g. panoramic image capture
    • 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/597Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
    • 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
    • G06T5/002
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/20Image enhancement or restoration using local operators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/70Denoising; Smoothing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/77Retouching; Inpainting; Scratch removal
    • 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/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/86Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving reduction of coding artifacts, e.g. of blockiness
    • 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/20081Training; Learning
    • 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)
  • Biophysics (AREA)
  • Molecular Biology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Image Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

비디오를 향상시키기 위한 예시적인 장치는 디코딩된 360도 투영 포맷 비디오를 생성하기 위해, 수신된 360도 투영 포맷 비디오 비트스트림을 디코딩하기 위한 디코더를 포함한다. 장치는 또한 디코딩된 360도 투영 포맷 비디오로부터 뷰포트를 생성하기 위한 뷰포트 생성기를 포함한다. 장치는 향상된 이미지를 생성하기 위해 뷰포트로부터 아티팩트를 제거하기 위한 컨볼루션 신경망(CNN) 기반 필터를 더 포함한다. 장치는 향상된 이미지를 디스플레이에 송신하기 위한 디스플레이어를 더 포함한다.

Description

컨볼루션 신경망(CNN) 기반 필터를 사용한 360도 비디오의 향상
360도 비디오들은 전송 동안 크기를 줄이기 위해 다양한 포맷들을 사용하여 압축될 수 있다. 예를 들어, 이러한 압축은 직선 투영(rectilinear projection)과 같은 다양한 기하학적 변환들을 포함할 수 있다.
도 1은 CNN 기반 필터를 사용하여 비디오를 디코딩하기 위한 예시적인 시스템을 도시하는 블록도이다.
도 2는 예시적인 CNN 기반 필터를 도시하는 블록도이다.
도 3은 CNN 기반 필터를 사용하여 비디오를 디코딩하기 위한 방법을 도시하는 흐름도이다.
도 4는 CNN 기반 필터를 사용하여 비디오를 디코딩할 수 있는 예시적인 컴퓨팅 디바이스를 도시하는 블록도이다.
도 5는 CNN 기반 필터를 사용하여 비디오를 디코딩하기 위한 코드를 저장하는 컴퓨터 판독가능한 매체를 보여주는 블록도이다.
유사한 컴포넌트들 및 특징들을 참조하기 위해 본 개시내용 및 도면들 전체에 걸쳐 동일한 번호들이 사용된다. 100 계열의 숫자들은 최초로 도 1에서 발견되는 특징들을 지칭하고; 200 계열의 숫자들은 최초로 도 2에서 발견되는 특징들을 지칭하며; 기타 등등이다.
제한된 네트워크 대역폭 및 저장 용량을 갖는 애플리케이션들을 위해, 비디오들은 더 낮은 비트레이트의 압축 비디오들로 인코딩될 수 있다. 그러나, 그러한 인코딩은 무엇보다도 블록형 아티팩트들(blocky artifacts) 및 링잉 아티팩트들(ringing artifacts)과 같은 압축 아티팩트들을 포함할 수 있는 가시적인 아티팩트들을 도입할 수 있다. 이러한 압축 아티팩트들은 사용자들의 시청 경험을 심각하게 저하시킬 수 있다. 예를 들어, 압축 아티팩트들은 비디오를 시청하는 사용자들에게 보이고 주의를 산만하게 할 수 있다.
360도 비디오에서는 압축 아티팩트들이 발생할 수 있다. 본 명세서에서 사용될 때, 360도 비디오는 비디오 내에서 전체 360도 범위의 움직임을 가능하게 하는 전방향 비디오이다. 360도 비디오는 최종 사용자들이 그들의 선호하는 시청 방향을 자유롭게 선택하여 장면들을 볼 수 있도록 하는 전방향 비디오의 새로운 형태로 부상하고 있다. 예를 들어, 360도 비디오를 각각의 사용자의 뷰포트(viewport)에 매핑하기 위해 기하학적 변환이 사용될 수 있다. 본 명세서에서 사용되는 뷰포트는 3차원(3D) 장면을 가상 카메라의 위치에 투영하는 데 사용되는 2차원(2D) 직사각형을 지칭한다. 예를 들어, 가상 카메라의 위치는 헤드 마운트형 디스플레이(head mounted display)(HMD) 또는 임의의 다른 적절한 가상 현실 뷰잉 디바이스를 사용하여 제어될 수 있다. 일례에서, 기하학적 변환은 직선 투영일 수 있다. 캡처된 프레임에 직접 적용될 수 있는 종래의 비디오 압축과 달리, 360도 비디오의 인코딩 및 후속 압축은 투영 포맷(projection format)에 대신 적용된다. 결과적으로, 투영 포맷의 인코딩은 360도 비디오에서 비디오 인코더에 의해 도입된 압축 아티팩트들에 상당한 영향을 미칠 수 있다. 특히, 투영 포맷 내의 압축 아티팩트는 사용자의 뷰포트에 매핑될 때 심각하게 왜곡될 수 있다. 구체적으로, 기하학적 변환은 투영 포맷에 나타나는 종래의 압축 아티팩트들을 왜곡하고, 이러한 왜곡된 압축 아티팩트들을 최종 사용자의 뷰포트에 유도한다. 이러한 종류의 왜곡된 아티팩트는 인-루프 디블로킹(deblocking) 및 디링잉(de-ringing) 필터들과 같은 종래의 기술들에 의해 감소되거나 제거되지 않을 수 있다. 예를 들어, 360도 비디오의 인코딩 및 디코딩은 투영 포맷에 적용될 수 있으므로, 인-루프 디블로킹 또는 디링잉 필터는 투영 포맷에 나타나는 압축 아티팩트를 줄일 수 있다. 그러나, 사용자는 투영 포맷을 직접 보지 않고 뷰포트를 본다. 따라서, 인-루프 디블로킹 필터는 블록형 아티팩트를 줄일 수는 있지만 완전히 제거하지는 못한다. 특히, 인코딩 후에 블록형 아티팩트들이 심각할 수 있는 낮은 비트레이트 조건들에서, 투영 포맷 내의 잔여 블록형 아티팩트들이 뷰포트에 나타날 수 있고, 뷰포트 매핑 및 생성 프로세스 후에 왜곡될 수 있다. 반면에, 투영 포맷에서는 인식되지 않을 수 있는 이음매 아티팩트들(seam artifacts)이 또한 뷰포트에서 보이게 될 수 있다. 뷰포트 매핑 및 생성 스테이지는 디코더 루프 이후의 디스플레이 측에 있으므로, 인-루프 필터들이 존재하지 않고, 뷰포트에 나타나는 아티팩트들은 처리되지 않을 수 있다.
압축 동안의 다양한 지점들에서 압축 아티팩트들이 비디오에 주입될 수 있다. 따라서, 상이한 타입의 아티팩트들이 존재한다. 일부 경우들에서, 입력 비디오가 블록 기반 압축 방식으로 압축될 때 블록형 아티팩트들이 나타날 수 있다. 예를 들어, 디폴트 디블로킹 필터가 인에이블된 동안에도 블록형 아티팩트들이 심각할 수 있다. 디폴트 디블로킹 필터들은 블록형 아티팩트들을 완화하기 위해 사용되지만 모든 블록형 아티팩트를 제거하지는 못할 수도 있다. 예를 들어, 매우 낮은 비트레이트 조건들 하에서, 블록형 아티팩트들이 훨씬 더 심각하고, 디폴트 인-루프 디블로킹 필터의 강도들이 이러한 블록형 아티팩트를 완화할 만큼 충분히 강하지 않을 수 있다. 링잉 아티팩트들은 대부분 분명한 에지들을 따라 나타난다. 링잉 아티팩트들은 비디오 코딩 방식들에서 통상적으로 사용되는 블록 기반 변환 압축 알고리즘들에 의해 유발될 수 있다. 예를 들어, 압축된 비디오 프레임들은 특히 문자들 및 그래픽 에지들을 따라 심각한 링잉 아티팩트들을 포함할 수 있다. 화면 콘텐츠 비디오는 또한 통상적으로 자연 비디오들보다 더 선명한 에지들을 포함하므로, 화면 콘텐츠 비디오는 심각한 링잉 아티팩트들을 또한 가질 수 있다.
이러한 아티팩트들의 다른 예는 방사형 아티팩트들(radial artifacts)이다. 정방형 투영(Equirectangular Projection)(ERP) 포맷은 360도 비디오를 기술하기 위해 통상적으로 사용되는 투영 포맷이다. ERP 포맷은 경선들(meridians)을 일정한 간격의 수직 직선들에 매핑하고, 위도(latitude)의 원들을 일정한 간격의 수평 직선들에 매핑한다. 그러나, 극지 지역들(polar regions) 근처의 영역들은 적도 지역의 영역과 동일한 투영 폭을 유지하기 위해 심각하게 늘어날 수 있다. ERP 포맷 비디오에 대해 손실 코딩이 수행된 후, 오버샘플링된 극지 지역들 근처에 블록형 아티팩트들이 나타날 수 있으며, 이는 생성된 뷰포트들의 대응하는 영역들에서 방사형 아티팩트들로 변할 수 있다.
아티팩트들의 다른 예는 이음매 아티팩트들이다. 예를 들어, ERP 포맷의 좌측 및 우측 경계들은 구형 도메인(spherical domain)에서 원래 연속적이다. 인코더는 구형 도메인 대신에 투영 포맷에 적용되기 때문에, 이는 인코딩 동안 고려되지 않을 수 있다. 그 결과, 인코딩 후의 ERP 포맷의 좌측 및 우측 경계들을 따라 생성된 뷰포트에서 이음매 아티팩트가 관찰될 수 있다. 큐브 맵 투영(Cube Map Projection)(CMP) 포맷은 360도 비디오를 기술하기 위해 통상적으로 사용되는 또 다른 포맷이다. 특히, CMP 포맷은 장면을 큐브의 각각의 면에 투영한다. 그런 다음, 큐브의 모든 면이 3×2 레이아웃에 패킹된다. 예를 들어, 큐브는 총 6개의 정사각형 면을 가지므로, 6개의 면은 제1 행의 3개의 면과 제2 행의 3개의 면을 포함하는 3×2 레이아웃에 패킹될 수 있다. 그러나, 복수의 면을 사용하는 것은 복수의 면 경계에서 생성된 뷰포트 내의 심각한 이음매 아티팩트들로 이어질 수 있다.
일부 예들에서, 360도 비디오에 대해, 일부 방법들은 압축 전에 정방형 투영(ERP) 포맷에서 좌측 및 우측 프레임 경계 상의 픽셀들을 패딩함으로써 이음매 아티팩트를 줄이려고 시도한다. 디코더 측에서, 패딩된 ERP(PERP) 포맷은 복제된 샘플들을 크로핑하거나 블렌딩함으로써 ERP 포맷으로 다시 변환될 수 있다. 그러나, 이러한 솔루션들은 인-루프 필터들로서 압축 아티팩트들을 대부분 줄이고, 그에 의해 360도 비디오에 대해 뷰포트에 나타나는 왜곡된 압축 아티팩트들은 처리되지 못하게 된다. 또한, 일부 CNN 기반 솔루션들의 복잡도는 실시간 성능에 비해 지나치게 높을 수 있다. 이음매 아티팩트들을 제거하기 위해 360도 비디오 투영 포맷에 대한 패딩 동작이 사용될 수 있지만, 패딩된 포맷은 원래 포맷보다 해상도가 높기 때문에, 이러한 패딩 동작들은 코딩 효율성을 감소시킬 수 있다. 또한, ERP 포맷의 극지 지역들로부터 추출된 뷰포트에 나타나는 방사형 아티팩트들을 제거할 수 있는 어떠한 효과적인 방법도 없을 수 있다.
전통적으로, 고효율 비디오 코딩(High Efficiency Video Coding)(HEVC/H.265) 비디오 압축 표준에서 다양한 압축 아티팩트들을 제거하기 위해 샘플 적응 오프셋(sample adaptive offset)(SAO) 및 디블로킹 필터들이 채택되었으며, 그것의 최신 버전은 2019년 11월에 출시되었다. 재구성된 프레임 품질을 더 향상시키기 위해, 적응형 루프 필터(adaptive loop filter)(ALF)는 현재 2020년 7월 출시로 예정되어 있는 다용도 비디오 코딩(Versatile Video Coding)(VVC) 비디오 압축 표준에서 채택되었다. 그러나, 이러한 SAO, 디블로킹 필터들 및 적응형 루프 필터들은 위에서 논의된 모든 압축 아티팩트를 제거하지 못할 수 있다. 특히, 이러한 필터들은 모두 인-루프 필터이므로, 뷰포트가 아닌 투영 포맷에 나타나는 아티팩트만을 제거할 수 있을 수 있다.
본 개시내용은 일반적으로 360 비디오를 디코딩하기 위한 기술들에 관한 것이다. 구체적으로, 본 명세서에 설명된 기술들은 CNN 기반 필터를 사용하여 360도 비디오를 향상시키기 위한 장치, 방법 및 시스템을 포함한다. 특히, CNN 기반 필터는 아웃-루프 필터로서 디코딩된 비디오 품질을 향상시키기 위해 사용된다. 본 명세서에서 사용될 때, 아웃-루프 필터는 디코딩 처리 루프의 외부에 적용되는 필터이다. 예를 들어, 360도 투영 포맷의 비디오 비트스트림은 CNN 기반 필터에 의해 디코딩되고 필터링되어 다양한 아티팩트들 없이 디스플레이될 수 있다. 예시적인 장치는 디코딩된 360도 투영 포맷 비디오를 생성하기 위해, 수신된 360도 투영 포맷 비디오 비트스트림을 디코딩하기 위한 디코더를 포함한다. 장치는 또한 디코딩된 360도 투영 포맷 비디오로부터 뷰포트를 생성하기 위한 뷰포트 생성기를 포함한다. 장치는 향상된 이미지를 생성하도록 뷰포트로부터 아티팩트를 제거하기 위해 컨볼루션 신경망(CNN) 기반 필터를 더 포함한다. 장치는 향상된 이미지를 디스플레이에 송신하기 위한 디스플레이어를 더 포함한다.
따라서, 본 명세서에 설명된 기술들은 360도 비디오가 최소한의 아티팩트로 디코딩될 수 있게 한다. 추가로, 본 명세서에 설명된 기술들은 일반 비디오가 또한 최소한의 아티팩트들로 디코딩될 수 있도록 하는 데에도 사용될 수 있다. 특히, CNN 기반의 아티팩트 제거 방식은 모든 비디오 유형들에 대한 피크 신호 대 잡음비(peak signal-to-noise ratio)(PSNR)를 향상시킬 수 있다. 본 명세서에 설명된 바와 같은 높은 복잡도(high complexity)(HC) 네트워크 토폴로지를 갖는 CNN 기반 방식은 낮은 복잡도(low complexity)(LC) 네트워크 토폴로지를 갖는 것보다 더 높은 PSNR 개선을 달성할 수 있다. 또한, 본 명세서에 설명된 기술들은 블록형 아티팩트들 및 링잉 아티팩트들을 줄이고, 이미지들의 에지들 또는 경계들은 깨끗하고 선명해진다. 추가로, 이음매 아티팩트들 및 방사형 아티팩트들도 본 기술들을 사용하여 효과적으로 제거된다. 아웃-루프 필터를 사용함으로써, 인코더와 디코더를 수정하지 않고도 비디오 품질이 향상될 수 있다. 특히, 인-루프 필터들은 투영 포맷에서만 처리하거나 실행될 수 있으며, 본 명세서에 설명된 기술들의 아웃-루프 필터는 디코딩 프로세스 후에 생성된 뷰포트들에서 처리하거나 실행될 수 있다.
도 1은 CNN 기반 필터를 사용하여 비디오를 디코딩하기 위한 예시적인 시스템을 도시하는 블록도이다. 예시적인 시스템(100)은 도 3의 방법(300)을 사용하여 도 4의 컴퓨팅 디바이스(400)에서 구현될 수 있다.
예시적인 시스템(100)은 인코더(102)를 포함한다. 시스템(100)은 또한 인코더(102)에 통신가능하게 결합된 디코더(104)를 포함한다. 예를 들어, 디코더(104)는 네트워크를 통해 인코더(102)에 결합될 수 있다. 시스템(100)은 또한 컨볼루션 신경망(CNN) 기반 필터(106)를 포함한다. 시스템(100)은 또한 디코더(104) 및 CNN 기반 필터(106)에 통신가능하게 결합된 뷰포트 생성기(108)를 더 포함한다. 시스템(100)은 또한 디스플레이(110)를 포함한다. 예를 들어, 디스플레이는 모니터 또는 헤드 마운트형 디스플레이(HMD)일 수 있다.
시스템(100)은 인코더(102)로부터 압축된 비디오를 수신할 수 있다. 예를 들어, 압축된 비디오는 종래의 비디오(112) 및 360도 비디오(114) 둘 다를 포함할 수 있지만 이에 제한되지 않는다. 다양한 예들에서, 종래의 비디오(112)에 대해, CNN 기반 필터(106)는 압축된 비디오가 디코더(104)에서 디코딩된 후 후처리 필터로서 적용된다. 다음으로, 향상된 비디오는 디스플레이(110)에서 사용자를 위해 디스플레이된다. 예를 들어, 디스플레이는 모니터 또는 임의의 다른 적절한 디스플레이 디바이스일 수 있다.
다양한 예들에서, 360도 비디오(114)에 대해, CNN 기반 필터(106)는 360도 투영 포맷 비디오(114)를 직접 처리하는 대신에 사용자의 뷰포트에서 비디오 프레임들을 처리하도록 설계될 수 있다. 360도 투영 포맷 비디오(114)는 2D 표현을 사용하여 전체 3차원 장면의 정보를 기술할 수 있다. 따라서, 360도 투영 포맷 비디오(114) 프레임의 콘텐츠는 종래의 비디오와 많이 상이하고, 사용자가 직접 보지 못할 수 있다. 이에 반해, 뷰포트 비디오 프레임은 사용자가 직접 볼 수 있는 종래의 비디오 프레임이다. 다양한 예들에서, 뷰포트 프레임은 (HMD로부터의) 사용자의 뷰잉 각도 정보(viewing angle information)에 따라 투영 포맷 프레임으로부터의 직선 투영을 사용하여 생성된다. 뷰포트 프레임은 사용자의 뷰잉 영역에 있는 콘텐츠만을 포함한다. 따라서, 뷰포트 비디오의 프레임들은 단순히 360도 비디오로부터의 프레임들의 서브세트가 아니다. 따라서, CNN 기반 필터(106)는 인-루프 필터에 의해 제거될 수 없는 사용자의 뷰포트들 내의 가시적인 압축 아티팩트를 줄이기 위해 뷰포트들을 처리하도록 설계될 수 있다. 다음으로, 향상된 뷰포트는 디스플레이(110)에서 사용자를 위해 디스플레이될 수 있다. 다양한 예들에서, 디스플레이(110)는 HMD 디바이스 디스플레이일 수 있다.
다양한 예들에서, 제안된 CNN 기반 필터(106)의 네트워크 토폴로지는 엄격한 실시간 성능 사용을 위해 가벼운 복잡도(light complexity)(LC)로 설계될 수도 있다. 예를 들어, CNN 기반 필터(106)는 각각의 컨볼루션 레이어에서 감소된 수의 특징 맵들을 갖고서 도 2의 CNN 기반 필터(200)를 사용하여 구현될 수 있다. LC CNN 기반 필터(106)는 또한 감소된 수의 컨볼루션 레이어를 가질 수 있다. 일부 예들에서, CNN 기반 필터(106)는 고품질 시각적 경험을 제공하기 위해 높은 복잡도(HC)으로 설계될 수 있다. 예를 들어, CNN 기반 필터(106)는 각각의 컨볼루션 레이어에서 증가된 수의 특징 맵들을 갖고서 도 2의 CNN 기반 필터(200)를 사용하여 구현될 수 있다. 일부 예들에서, HC CNN 기반 필터(106)는 또한 더 많은 컨볼루션 레이어들을 가질 수 있다.
도 1의 도면은 예시적인 시스템(100)이 도 1에 도시된 컴포넌트들 전부를 포함해야 한다는 것을 나타내도록 의도되지 않는다. 오히려, 예시적인 시스템(100)은 도 1에 도시되지 않은 추가의 컴포넌트들(예를 들어, 추가 입력 비디오들, 인코더들, 디코더들, 필터들, 디스플레이들 등) 또는 더 적은 컴포넌트들을 사용하여 구현될 수 있다.
도 2는 예시적인 CNN 기반 필터를 도시하는 블록도이다. 예시적인 CNN 기반 필터(200)는 도 3의 방법(300)을 사용하여 도 4의 컴퓨팅 디바이스 컴퓨팅 디바이스(400)에서 구현될 수 있다.
예시적인 CNN 기반 필터(200)는 일련의 컨볼루션 레이어들(202A, 202B, 202C, 202D) 및 디컨볼루션 레이어(202E)를 포함한다. 예를 들어, 컨볼루션 레이어(202A)는 9×9 컨볼루션 커널을 사용할 수 있다. 컨볼루션 레이어(202A)는 한 번에 2개의 픽셀에 걸쳐 스트라이드하는 스트라이드 2 컨볼루션(stride two convolution)을 수행할 수 있다. 스트라이드는 컨볼루션 동작의 스텝을 지칭한다. 컨볼루션 레이어(202B)는 1×1 컨볼루션 커널을 사용할 수 있다. 컨볼루션 레이어(202C)는 7×7 컨볼루션 커널을 사용할 수 있다. 컨볼루션 레이어(202D)는 1×1 컨볼루션 커널을 사용할 수 있다. 다양한 예들에서, 컨볼루션 레이어들(202B-202D)은 1의 스트라이드들을 취할 수 있다. 디컨볼루션 레이어(202E)는 9×9 디컨볼루션 커널을 사용할 수 있다. 디컨볼루션 레이어(202E)는 스트라이드 2 디컨볼루션을 수행할 수 있다. CNN 기반 필터(200)는 또한 특징 맵들의 세트들(204A, 204B, 204C, 204D, 204E)을 포함한다. 예를 들어, 특징 맵들의 세트들(204A-204E)은 사용된 특정 토폴로지에 기초하여 다양한 수의 특징 맵을 가질 수 있다. 예를 들어, 토폴로지는 가벼운 복잡도(LC) 토폴로지 또는 높은 복잡도(HC) 토폴로지일 수 있다. CNN 기반 필터(200)는 특징 맵(204E)을 수신하도록 통신가능하게 결합된 합산 레이어(206)를 포함한다. 화살표(208)에 의해 도시된 바와 같이, 결합기(206)는 또한 입력 이미지(210)를 수신하도록 결합된다. 결합기(206)는 향상된 이미지(212)를 출력하는 것으로 도시된다. 예를 들어, 향상된 이미지는 입력 이미지(210)에 존재하는 임의의 수의 아티팩트를 배제할 수 있다.
일부 예들에서, CNN 기반 필터(200)는 엄격한 실시간 성능을 가능하게 하기 위해 가벼운 복잡도(LC) CNN 네트워크 토폴로지를 사용하여 구현될 수 있다. 예를 들어, 엄격한 실시간 성능은 CPU 또는 GPU와 같은 하드웨어의 계산 자원들에 의해 결정될 수 있다. 특히, CNN 네트워크가 단순할수록 계산 복잡도가 줄어들고 처리 시간이 단축될 수 있다.
따라서, 본 명세서에서, 실시간 성능은 LC CNN 네트워크 토폴로지가 뷰포트 비디오의 재생 동안 각각의 프레임의 아티팩트를 빠르게 줄일 수 있을 정도로 충분히 단순하다는 것을 의미한다. 다양한 예들에서, LC CNN 네트워크 토폴로지는 수 개의 컨볼루션 레이어들(204A-204D), 디컨볼루션 레이어(204E), 및 합산 레이어(206)를 갖는 종단 간 잔차 네트워크(end-to-end residual network)일 수 있다. 일부 예들에서, 각각의 컨볼루션 레이어의 뒤에 활성화 기능 레이어(도시되지 않음)가 삽입된다. LC CNN 네트워크 토폴로지에서, 특징 맵들의 세트들은 미리 정의된 수의 특징 맵들을 가질 수 있다. 예를 들어, 특징 맵들의 세트(204A)는 32개의 특징 맵을 포함할 수 있다. 특징 맵들의 세트(204B)는 16개의 특징 맵을 포함할 수 있다. 특징 맵들의 세트(204C)도 16개의 특징 맵을 포함할 수 있다. 특징 맵들의 세트(204D)는 32개의 특징 맵을 포함할 수 있다. 특징 맵들의 세트(204E)는 1개의 특징 맵을 포함할 수 있다. 예를 들어, 특징 맵(204E)은 입력 이미지(210)와 동일한 해상도를 가질 수 있다.
LC CNN 네트워크 토폴로지는 경량이면서도 병렬 컴퓨팅과 호환가능하여, 엄격한 실시간 성능을 가능하게 한다. 720p 입력 비디오에 대해, LC CNN 네트워크의 전체 계산 복잡도는 프레임당 4.32기가 FLOPS(floating point operations per second)일 수 있으며, 이는 실시간 성능을 위해 최신 컴퓨팅 리소스들에서 쉽게 실행될 수 있다.
일부 예들에서, CNN 기반 필터(200)는 높은 복잡도(HC) 토폴로지를 사용하여 구현될 수 있다. 예를 들어, HC 토폴로지를 갖는 CNN 기반 필터(200)는 64개의 특징 맵을 갖는 특징들의 세트(204A)를 포함할 수 있다. HC 토폴로지 내의 특징 맵들의 세트(204B 및 204C)는 32개의 특징 맵을 포함할 수 있다. 특징 맵들의 세트(204D)는 또한 64개의 특징 맵을 포함할 수 있다. 특징 맵들의 세트(204E)는 1개의 특징 맵을 포함할 수 있다. 예를 들어, 특징 맵(204E)은 입력 이미지(210)의 동일한 해상도를 가질 수 있다. 다양한 예들에서, HC 토폴로지는 실시간 요건을 만족시키기에 충분한 컴퓨팅 리소스들을 가질 수 있는 고성능 CPU들 및 GPU들에서 사용될 수 있다. 일부 예에서, HC 토폴로지는 이미지 아티팩트 제거와 같이 처리 시간이 덜 엄격한 일부 경우들에 또한 사용될 수 있다.
도 2의 도면은 예시적인 CNN 기반 필터(200)가 도 2에 도시된 컴포넌트들 전부를 포함해야 한다는 것을 나타내도록 의도되지 않는다. 오히려, 예시적인 CNN 기반 필터(200)는 도 2에 도시되지 않은 추가의 컴포넌트들(예를 들어, 추가 입력 이미지들, 특징 맵들, 레이어들, 향상된 이미지들 등) 또는 더 적은 컴포넌트들을 사용하여 구현될 수 있다.
도 3은 CNN 기반 필터를 사용하여 비디오를 디코딩하기 위한 방법을 도시하는 흐름도이다. 예시적인 방법(300)은 도 1의 시스템(100), 도 4의 컴퓨팅 디바이스(400), 또는 도 5의 컴퓨터 판독가능한 매체(500)에서 구현될 수 있다.
블록(302)에서, 360도 투영 포맷 비디오 비트스트림이 수신된다. 예를 들어, 360도 투영 포맷 비디오는 이웃 뷰들을 결합하는 다양한 기술들을 사용하여 압축될 수 있다. 일부 예들에서, 종래의 비디오 비트스트림이 또한 수신될 수 있다.
블록(304)에서, 360도 투영 포맷 비디오 비트스트림이 디코딩되어 디코딩된 360도 투영 포맷 비디오를 생성한다. 일부 예들에서, 종래의 비디오 비트스트림은 또한 임의의 적절한 코덱을 사용하여 디코딩될 수 있다. 다양한 예들에서, 디코딩 동작은 비디오 코딩 표준에 기초하여 수행될 수 있고, 다른 동작들 중에서도 역양자화, 역변환, 잔차 재구성을 수반할 수 있다.
블록(306)에서, 디코딩된 360도 투영 포맷 비디오로부터 뷰포트가 생성된다. 예를 들어, 프로세서는 디스플레이 디바이스로부터 뷰 정보를 수신할 수 있고, 뷰 정보에 기초하여, 디코딩된 360도 투영 포맷 비디오로부터 뷰포트를 생성할 수 있다. 예를 들어, 뷰 정보는 좌표들로서 제공되는 뷰어의 뷰 각도 정보일 수 있다. 다양한 예들에서, 뷰포트는 직선 투영을 사용하여 생성될 수 있고, 사용된 특정 코딩 표준에 의해 정의될 수 있다. 예를 들어, 특정 뷰포트는 HMD로부터 수신된 좌표들에 기초하여 생성될 수 있다. 뷰포트 생성은 HMD로부터 수신된 좌표들과 같은 투영된 뷰포트 상의 샘플 위치로부터 시작하여, 먼저 대응하는 3D(X, Y, Z) 좌표들을 찾은 다음, 소스 투영 포맷 평면에서 대응하는 2D 좌표들을 찾을 수 있다. 그런 다음, 뷰포트 생성 프로세스는 소스 2D 투영 포맷 평면의 대응하는 위치에서 대응하는 샘플 값을 취한다.
블록(308)에서, CNN 기반 필터를 통해 생성된 뷰포트로부터 아티팩트들이 제거되어 향상된 뷰포트를 생성한다. 예를 들어, 향상된 뷰포트는 생성된 뷰포트에 존재하는 하나 이상의 아티팩트를 배제할 수 있다. 다양한 예들에서, CNN 기반 필터는 아웃-루프 필터일 수 있다. 아웃-루프 필터는 디코딩 프로세스 외부에서 적용되는 필터일 수 있다. 일부 예들에서, CNN 기반 필터는 낮은 복잡도 토폴로지 또는 높은 복잡도 토폴로지를 갖는 컨볼루션 신경망을 포함한다. 예를 들어, 게임 애플리케이션들과 같이 엄격한 실시간 사용을 갖는 애플리케이션들은 낮은 복잡도 토폴로지를 사용할 수 있다. 다른 예들에서, 엄격한 실시간 사용이 고려할 요소가 아닌 경우, 더 높은 품질을 위해 높은 복잡도 토폴로지가 사용될 수 있다. 다양한 예들에서, CNN 기반 필터는 스트라이드 2 컨볼루션 레이어 및 스트라이드 2 디컨볼루션 레이어를 갖는 컨볼루션 신경망을 포함한다.
블록(310)에서, 향상된 뷰포트가 렌더링된다. 예를 들어, 뷰포트는 HMD 디바이스를 통해 디스플레이될 수 있다.
이 프로세스 흐름도는 예시적인 방법(300)의 블록들이 임의의 특정 순서로 실행되어야 한다는 것, 또는 모든 블록이 모든 경우에 포함되어야 한다는 것을 나타내도록 의도되지 않는다. 또한, 특정 구현의 세부사항들에 따라, 도시되지 않은 임의의 수의 추가 블록이 예시적인 방법(300) 내에 포함될 수 있다.
이제 도 4를 참조하면, CNN 기반 필터를 사용하여 비디오를 디코딩할 수 있는 예시적인 컴퓨팅 디바이스를 도시하는 블록도가 보여진다. 컴퓨팅 디바이스(400)는 다른 것들 중에서도, 예를 들어 랩톱 컴퓨터, 데스크탑 컴퓨터, 태블릿 컴퓨터, 모바일 디바이스, 또는 웨어러블 디바이스일 수 있다. 일부 예들에서, 컴퓨팅 디바이스(400)는 가상 현실 헤드셋과 같은 디스플레이 디바이스일 수 있다. 컴퓨팅 디바이스(400)는 저장된 명령어들을 실행하도록 구성된 중앙 처리 유닛(CPU)(402)은 물론, CPU(402)에 의해 실행가능한 명령어들을 저장하는 메모리 디바이스(404)를 포함할 수 있다. CPU(402)는 버스(406)에 의해 메모리 디바이스(404)에 결합될 수 있다. 추가로, CPU(402)는 단일 코어 프로세서, 멀티 코어 프로세서, 컴퓨팅 클러스터, 또는 임의의 수의 다른 구성일 수 있다. 또한, 컴퓨팅 디바이스(400)는 하나보다 많은 CPU(402)를 포함할 수 있다. 일부 예들에서, CPU(402)는 멀티 코어 프로세서 아키텍처를 갖는 시스템-온-칩(system-on-chip)(SoC)일 수 있다. 일부 예들에서, CPU(402)는 이미지 처리에 사용되는 특수 디지털 신호 프로세서(DSP)일 수 있다. 메모리 디바이스(404)는 랜덤 액세스 메모리(RAM), 판독 전용 메모리(ROM), 플래시 메모리, 또는 임의의 다른 적절한 메모리 시스템들을 포함할 수 있다. 예를 들어, 메모리 디바이스(404)는 동적 랜덤 액세스 메모리(dynamic random access memory)(DRAM)를 포함할 수 있다.
메모리 디바이스(404)는 랜덤 액세스 메모리(RAM), 판독 전용 메모리(ROM), 플래시 메모리, 또는 임의의 다른 적절한 메모리 시스템들을 포함할 수 있다. 예를 들어, 메모리 디바이스(404)는 동적 랜덤 액세스 메모리(DRAM)를 포함할 수 있다.
컴퓨팅 디바이스(400)는 또한 그래픽 처리 유닛(GPU)(408)을 포함할 수 있다. 도시된 바와 같이, CPU(402)는 버스(406)를 통해 GPU(408)에 결합될 수 있다. GPU(408)는 컴퓨팅 디바이스(400) 내에서 임의의 수의 그래픽 동작을 수행하도록 구성될 수 있다. 예를 들어, GPU(408)는 컴퓨팅 디바이스(400)의 사용자에게 디스플레이될 그래픽 이미지들, 그래픽 프레임들, 비디오들 또는 그와 유사한 것을 렌더링하거나 조작하도록 구성될 수 있다.
메모리 디바이스(404)는 랜덤 액세스 메모리(RAM), 판독 전용 메모리(ROM), 플래시 메모리, 또는 임의의 다른 적절한 메모리 시스템들을 포함할 수 있다. 예를 들어, 메모리 디바이스(404)는 동적 랜덤 액세스 메모리(DRAM)를 포함할 수 있다. 메모리 디바이스(404)는 시퀀스 독립 처리(sequence independent processing)를 수행하기 위해 복수의 컨볼루션 신경망을 훈련하기 위한 명령어들을 실행하도록 구성된 디바이스 드라이버들(410)을 포함할 수 있다. 디바이스 드라이버들(410)은 소프트웨어, 애플리케이션 프로그램, 애플리케이션 코드, 또는 그와 유사한 것일 수 있다.
CPU(402)는 또한 버스(406)를 통해, 컴퓨팅 디바이스(400)를 하나 이상의 입/출력(I/O) 디바이스(414)에 연결하도록 구성된 I/O 디바이스 인터페이스(412)에 연결될 수 있다. I/O 디바이스들(414)은, 예를 들어 키보드 및 포인팅 디바이스를 포함할 수 있고, 여기서 포인팅 디바이스는 다른 것들 중에서도 터치패드 또는 터치스크린을 포함할 수 있다. I/O 디바이스들(414)은 컴퓨팅 디바이스(400)의 내장 컴포넌트들일 수 있거나 컴퓨팅 디바이스(400)에 외부적으로 연결된 디바이스들일 수 있다. 일부 예들에서, 메모리(404)는 직접 메모리 액세스(direct memory access)(DMA)를 통해 I/O 디바이스들(414)에 통신가능하게 결합될 수 있다.
CPU(402)는 또한 버스(406)를 통해, 컴퓨팅 디바이스(400)를 디스플레이 디바이스(418)에 연결하도록 구성된 디스플레이 인터페이스(416)에 링크될 수 있다. 디스플레이 디바이스(418)는 컴퓨팅 디바이스(400)의 내장 컴포넌트인 디스플레이 스크린을 포함할 수 있다. 디스플레이 디바이스(418)는 또한 다른 것들 중에서도 컴퓨팅 디바이스(400)의 내부에 있거나 또는 그에 외부적으로 연결된 컴퓨터 모니터, 텔레비전 또는 프로젝터를 포함할 수 있다.
컴퓨팅 디바이스(400)는 또한 저장 디바이스(420)를 포함한다. 저장 디바이스(420)는 하드 드라이브, 광학 드라이브, 썸드라이브(thumbdrive), 드라이브들의 어레이, 솔리드 스테이트 드라이브, 또는 이들의 임의의 조합과 같은 물리적 메모리이다. 저장 디바이스(420)는 또한 원격 저장 드라이브들을 포함할 수 있다.
컴퓨팅 디바이스(400)는 또한 네트워크 인터페이스 컨트롤러(network interface controller)(NIC)(422)를 포함할 수 있다. NIC(422)는 컴퓨팅 디바이스(400)를 버스(406)를 통해 네트워크(424)에 연결하도록 구성될 수 있다. 네트워크(424)는 다른 것들 중에서도, 광역 네트워크(wide area network)(WAN), 근거리 네트워크(local area network)(LAN), 또는 인터넷일 수 있다. 일부 예들에서, 디바이스는 무선 기술을 통해 다른 디바이스들과 통신할 수 있다. 예를 들어, 디바이스는 무선 근거리 네트워크 연결을 통해 다른 디바이스들과 통신할 수 있다. 일부 예들에서, 디바이스는 Bluetooth® 또는 유사한 기술을 통해 다른 디바이스들에 연결되고 그들과 통신할 수 있다.
컴퓨팅 디바이스(400)는 카메라(426)를 더 포함한다. 예를 들어, 카메라(426)는 하나 이상의 이미징 센서를 포함할 수 있다. 일부 예들에서, 카메라(426)는 비디오 프레임들을 생성하기 위한 프로세서를 포함할 수 있다.
컴퓨팅 디바이스(400)는 컨볼루션 신경망(CNN) 기반 아티팩트 제거기(428)를 더 포함한다. 예를 들어, CNN 기반 아티팩트 제거기(428)는 감소된 아티팩트들로 360도 비디오를 디코딩하기 위해 사용될 수 있다. 일부 예들에서, CNN 기반 아티팩트 제거기(428)는 또한 감소된 아티팩트들로 종래의 비디오를 디코딩하기 위해 사용될 수 있다. CNN 기반 아티팩트 제거기(428)는 디코더(430), 뷰포트 생성기(432), CNN 기반 필터(434), 및 디스플레이어(436)를 포함할 수 있다. 일부 예들에서, CNN 기반 아티팩트 제거기(428)의 컴포넌트들(430-436) 각각은 마이크로컨트롤러, 임베디드 프로세서, 또는 소프트웨어 모듈일 수 있다. 디코더(430)는 수신된 360도 투영 포맷 비디오 비트스트림을 디코딩할 수 있다. 예를 들어, 360도 투영 포맷 비디오 비트스트림은 디코딩된 360도 투영 포맷 비디오를 생성한다. 일부 예들에서, 디코더(430)는 압축된 종래의 비디오 비트스트림을 수신하고, 종래의 비디오 프레임들을 생성하기 위해 종래의 비디오 비트스트림을 압축해제할 수 있다. 뷰포트 생성기(432)는 디코딩된 360도 투영 포맷 비디오로부터 뷰포트를 생성할 수 있다. CNN 기반 필터(434)는 생성된 뷰포트로부터 임의의 수의 아티팩트를 제거할 수 있다. 예를 들어, 아티팩트들은 블록형 아티팩트, 링잉 아티팩트, 방사형 아티팩트, 이음매 아티팩트, 또는 이들의 임의의 조합을 포함할 수 있다. 일부 예들에서, CNN 기반 필터(434)는 압축해제된 종래의 비디오로부터 아티팩트를 제거할 수 있다. 예를 들어, 아티팩트들은 블록형 아티팩트, 링잉 아티팩트, 방사형 아티팩트 또는 이음매 아티팩트일 수 있다. 다양한 예들에서, CNN 기반 필터(434)는 가벼운 복잡도(LC) 토폴로지를 포함한다. 일부 예들에서, CNN 기반 필터(434)는 높은 복잡도(HC) 토폴로지를 포함한다. 다양한 예들에서, CNN 기반 필터(434)는 스트라이드 2 컨볼루션 레이어 및 스트라이드 2 디컨볼루션 레이어를 포함한다. 일부 예들에서, CNN 기반 필터는 아웃-루프 필터를 포함한다. 디스플레이어(436)는 향상된 이미지를 디스플레이할 수 있다.
도 4의 블록도는 컴퓨팅 디바이스(400)가 도 4에 도시된 컴포넌트들 전부를 포함해야 한다는 것을 나타내도록 의도되지 않는다. 오히려, 컴퓨팅 디바이스(400)는 추가 버퍼들, 추가 프로세서들 및 그와 유사한 것과 같이 도 4에 도시되지 않은 추가의 컴포넌트들 또는 더 적은 컴포넌트들을 포함할 수 있다. 컴퓨팅 디바이스(400)는 특정 구현의 세부사항들에 따라, 도 4에 도시되지 않은 임의의 수의 추가 컴포넌트들을 포함할 수 있다. 또한, 디코더(430), 뷰포트 생성기(432), CNN 기반 필터(434), 및 디스플레이어(436)의 기능성들 중 임의의 것은 부분적으로 또는 전체적으로 하드웨어에서 및/또는 프로세서(402)에서 구현될 수 있다. 예를 들어, 기능성은 응용 특정 집적 회로(application specific integrated circuit)로, 프로세서(402)에서 구현된 로직에서, 또는 임의의 다른 디바이스에서 구현될 수 있다. 추가로, CPU(402)의 기능성들 중 임의의 것은 부분적으로 또는 전체적으로 하드웨어에서 및/또는 프로세서에서 구현될 수 있다. 예를 들어, CNN 기반 아티팩트 제거기(428)의 기능성은 응용 특정 집적 회로로, 프로세서에서 구현된 로직에서, GPU(408)와 같은 특수화된 그래픽 처리 유닛에서 구현된 로직에서, 또는 임의의 다른 디바이스에서 구현될 수 있다.
도 5는 CNN 기반 필터를 사용하여 비디오를 디코딩하기 위한 코드를 저장하는 컴퓨터 판독가능한 매체(500)를 보여주는 블록도이다. 컴퓨터 판독가능한 매체(500)는 컴퓨터 버스(504)를 통해 프로세서(502)에 의해 액세스될 수 있다. 또한, 컴퓨터 판독가능한 매체(500)는 프로세서(502)에게 본 명세서에 설명된 방법들을 수행하게끔 지시하도록 구성된 코드를 포함할 수 있다. 일부 실시예들에서, 컴퓨터 판독가능한 매체(500)는 비일시적 컴퓨터 판독가능한 매체일 수 있다. 일부 예들에서, 컴퓨터 판독가능한 매체(500)는 저장 매체일 수 있다.
본 명세서에서 논의된 다양한 소프트웨어 컴포넌트들은 도 5에 나타낸 바와 같이, 하나 이상의 컴퓨터 판독가능한 매체(500)에 저장될 수 있다. 예를 들어, 디코더 모듈(506)은 수신된 360도 투영 포맷 비디오 비트스트림을 디코딩하도록 구성될 수 있다. 예를 들어, 디코더 모듈(506)은 360도 투영 포맷 비디오 비트스트림에 기초하여, 디코딩된 360도 투영 포맷 비디오를 생성하도록 구성될 수 있다. 일부 예들에서, 디코더 모듈(506)은 또한 수신된 종래의 비디오 비트스트림들을 압축해제하여 종래의 비디오 프레임들을 생성하도록 구성될 수 있다. 뷰포트 생성기 모듈(508)은 디코딩된 360도 투영 포맷 비디오로부터 뷰포트를 생성하도록 구성될 수 있다. 예를 들어, 뷰포트 생성기 모듈(508)은 디스플레이 디바이스로부터 뷰 정보를 수신하고, 뷰 정보에 기초하여, 디코딩된 360도 투영 포맷 비디오로부터 뷰포트를 생성하도록 구성될 수 있다. CNN 기반 필터 모듈(510)은 향상된 이미지를 생성하기 위해, 생성된 뷰포트로부터 다수의 아티팩트를 제거하도록 구성될 수 있다. 예를 들어, CNN 기반 필터 모듈(510)은 낮은 복잡도 토폴로지로 구성될 수 있다. 일부 예들에서, CNN 기반 필터 모듈(510)은 높은 복잡도 토폴로지로 구성될 수 있다. 다양한 예들에서, CNN 기반 필터는 스트라이드 2 컨볼루션 레이어 및 스트라이드 2 디컨볼루션 레이어로 구성될 수 있다. 일부 예들에서, CNN 기반 필터 모듈(510)은 또한 종래의 비디오 프레임들로부터 아티팩트를 제거하도록 구성될 수 있다. 디스플레이어 모듈(512)은 향상된 이미지를 디스플레이하도록 구성될 수 있다. 예를 들어, 디스플레이어 모듈(512)은 향상된 이미지를 디스플레이를 위해 HMD 디바이스에 송신하도록 구성될 수 있다. 일부 예들에서, 디스플레이어 모듈(512)은 향상된 이미지를 모니터 또는 다른 디스플레이 디바이스에 송신하도록 구성될 수 있다.
도 5의 블록도는 컴퓨터 판독가능한 매체(500)가 도 5에 도시된 컴포넌트들 전부를 포함해야 한다는 것을 나타내도록 의도되지 않는다. 또한, 컴퓨터 판독가능한 매체(500)는 특정 구현의 세부사항들에 따라, 도 5에 도시되지 않은 임의의 수의 추가 컴포넌트들을 포함할 수 있다. 예를 들어, 컴퓨터 판독가능한 매체(500)는 또한 그라운드 트루스 이미지들(ground truth images) 및 블록형 아티팩트들이 추가된 대응하는 이미지들의 훈련 쌍들을 사용하여 블록형 아티팩트들을 제거하기 위해 CNN 기반 필터를 훈련하기 위한 훈련 모듈을 포함할 수 있다. 일부 예들에서, 훈련 모듈은 그라운드 트루스 이미지들 및 링잉 아티팩트들이 추가된 대응하는 이미지들의 훈련 쌍들을 사용하여 링잉 아티팩트들을 제거하기 위해 CNN 기반 필터를 훈련하도록 구성될 수 있다. 다양한 예들에서, 훈련 모듈은 그라운드 트루스 이미지들 및 방사형 아티팩트들이 추가된 대응하는 이미지들의 훈련 쌍들을 사용하여 블록형 방사형들을 제거하기 위해 CNN 기반 필터를 훈련하도록 구성될 수 있다. 일부 예들에서, 훈련 모듈은 그라운드 트루스 이미지들 및 이음매 아티팩트들이 추가된 대응하는 이미지들의 훈련 쌍들을 사용하여 블록형 아티팩트들을 제거하기 위해 CNN 기반 필터를 훈련하도록 구성될 수 있다.
예들
예 1은 비디오를 향상시키기 위한 장치이다. 장치는 디코딩된 360도 투영 포맷 비디오를 생성하기 위해, 수신된 360도 투영 포맷 비디오 비트스트림을 디코딩하기 위한 디코더를 포함한다. 장치는 또한 디코딩된 360도 투영 포맷 비디오로부터 뷰포트를 생성하기 위한 뷰포트 생성기를 포함한다. 장치는 향상된 이미지를 생성하기 위해 뷰포트로부터 아티팩트를 제거하기 위한 컨볼루션 신경망(CNN) 기반 필터를 더 포함한다. 장치는 또한 향상된 이미지를 디스플레이에 송신하기 위한 디스플레이어를 더 포함한다.
예 2는 임의적 특징들을 포함하거나 배제하는 예 1의 장치를 포함한다. 이 예에서, 디코더는 압축된 종래의 비디오를 수신하고 종래의 비디오를 압축해제하며, CNN 기반 필터는 압축해제된 종래의 비디오로부터 아티팩트를 제거한다.
예 3은 임의적 특징들을 포함하거나 배제하는 예 1 또는 예 2 중 어느 하나의 장치를 포함한다. 이 예에서, CNN 기반 필터는 가벼운 복잡도(LC) 토폴로지를 갖는 CNN을 포함한다.
예 4는 임의적 특징들을 포함하거나 배제하는 예 1 내지 예 3 중 어느 하나의 장치를 포함한다. 이 예에서, CNN 기반 필터는 높은 복잡도(HC) 토폴로지를 갖는 CNN을 포함한다.
예 5는 임의적 특징들을 포함하거나 배제하는 예 1 내지 예 4 중 어느 하나의 장치를 포함한다. 이 예에서, CNN 기반 필터는 스트라이드 2 컨볼루션 레이어 및 스트라이드 2 디컨볼루션 레이어를 갖는 CNN을 포함한다.
예 6은 임의적 특징들을 포함하거나 배제하는 예 1 내지 예 5 중 어느 하나의 장치를 포함한다. 이 예에서, CNN 기반 필터는 아웃-루프 필터를 포함한다.
예 7은 임의적 특징들을 포함하거나 배제하는 예 1 내지 예 6 중 어느 하나의 장치를 포함한다. 이 예에서, 아티팩트는 블록형 아티팩트를 포함한다.
예 8은 임의적 특징들을 포함하거나 배제하는 예 1 내지 예 7 중 어느 하나의 장치를 포함한다. 이 예에서, 아티팩트는 링잉 아티팩트를 포함한다.
예 9는 임의적 특징들을 포함하거나 배제하는 예 1 내지 예 8 중 어느 하나의 장치를 포함한다. 이 예에서, 아티팩트는 방사형 아티팩트를 포함한다.
예 10은 임의적 특징들을 포함하거나 배제하는 예 1 내지 예 9 중 어느 하나의 장치를 포함한다. 이 예에서, 아티팩트는 이음매 아티팩트를 포함한다.
예 11은 비디오를 향상시키기 위한 방법이다. 방법은 프로세서를 통해, 360도 투영 포맷 비디오 비트스트림을 수신하는 단계를 포함한다. 방법은 또한 프로세서를 통해, 디코딩된 360도 투영 포맷 비디오를 생성하기 위해, 360도 투영 포맷 비디오 비트스트림을 디코딩하는 단계를 포함한다. 방법은 프로세서를 통해, 디코딩된 360도 투영 포맷 비디오로부터 뷰포트를 생성하는 단계를 더 포함한다. 방법은 또한, 프로세서를 통해, 향상된 뷰포트를 생성하기 위해, 컨볼루션 신경망(CNN) 기반 필터를 통해, 생성된 뷰포트로부터 아티팩트를 제거하는 단계를 더 포함한다.
예 12는 임의적 특징들을 포함하거나 배제하는 예 11의 방법을 포함한다. 이 예에서, 뷰포트를 생성하는 단계는 디스플레이 디바이스로부터 뷰 정보를 수신하고, 뷰 정보에 기초하여 디코딩된 360도 투영 포맷 비디오로부터 뷰포트를 생성하는 단계를 포함한다.
예 13은 임의적 특징들을 포함하거나 배제하는 예 11 또는 예 12 중 어느 하나의 방법을 포함한다. 이 예에서, 아티팩트를 제거하는 단계는 낮은 복잡도 토폴로지를 갖는 CNN을 사용하는 단계를 포함한다.
예 14는 임의적 특징들을 포함하거나 배제하는 예 11 내지 예 13 중 어느 하나의 방법을 포함한다. 이 예에서, 아티팩트를 제거하는 단계는 높은 복잡도 토폴로지를 갖는 CNN을 사용하는 단계를 포함한다.
예 15는 임의적 특징들을 포함하거나 배제하는 예 11 내지 예 14 중 어느 하나의 방법을 포함한다. 이 예에서, 아티팩트를 제거하는 단계는 스트라이드 2 컨볼루션 레이어 및 스트라이드 2 디컨볼루션 레이어를 갖는 CNN 기반 필터를 사용하는 단계를 포함한다.
예 16은 임의적 특징들을 포함하거나 배제하는 예 11 내지 예 15 중 어느 하나의 방법을 포함한다. 이 예에서, 방법은 압축된 종래의 비디오 비트스트림을 수신하는 단계; 종래의 비디오 프레임들을 생성하기 위해, 종래의 비디오 비트스트림을 압축해제하는 단계; 및 CNN 기반 필터를 통해 종래의 비디오 프레임들로부터 아티팩트를 제거하는 단계를 포함한다.
예 17은 임의적 특징들을 포함하거나 배제하는 예 11 내지 예 16 중 어느 하나의 방법을 포함한다. 이 예에서, 방법은 그라운드 트루스 이미지들 및 블록형 아티팩트들이 추가된 대응하는 이미지들의 훈련 쌍들을 사용하여 블록형 아티팩트들을 제거하기 위해 CNN 기반 필터를 훈련하는 단계를 포함한다.
예 18은 임의적 특징들을 포함하거나 배제하는 예 11 내지 예 17 중 어느 하나의 방법을 포함한다. 이 예에서, 방법은 그라운드 트루스 이미지들 및 링잉 아티팩트들이 추가된 대응하는 이미지들의 훈련 쌍들을 사용하여 링잉 아티팩트들을 제거하기 위해 CNN 기반 필터를 훈련하는 단계를 포함한다.
예 19는 임의적 특징들을 포함하거나 배제하는 예 11 내지 예 18 중 어느 하나의 방법을 포함한다. 이 예에서, 방법은 그라운드 트루스 이미지들 및 방사형 아티팩트들이 추가된 대응하는 이미지들의 훈련 쌍들을 사용하여 블록형 방사형을 제거하기 위해 CNN 기반 필터를 훈련하는 단계를 포함한다.
예 20은 임의적 특징들을 포함하거나 배제하는 예 11 내지 예 19 중 어느 하나의 방법을 포함한다. 이 예에서, 방법은 그라운드 트루스 이미지들 및 이음매 아티팩트들이 추가된 대응하는 이미지들의 훈련 쌍들을 사용하여 블록형 아티팩트들을 제거하기 위해 CNN 기반 필터를 훈련하는 단계를 포함한다.
예 21은 프로세서에게 360도 투영 포맷 비디오 비트스트림을 수신하도록 지시하는 명령어들을 저장하고 있는, 비디오를 향상시키기 위한 적어도 하나의 컴퓨터 판독가능한 매체이다. 컴퓨터 판독가능한 매체는 또한 프로세서에게 디코딩된 360도 투영 포맷 비디오를 생성하기 위해, 360도 투영 포맷 비디오 비트스트림을 디코딩하도록 지시하는 명령어들을 포함한다. 컴퓨터 판독가능한 매체는 프로세서에게, 디코딩된 360도 투영 포맷 비디오로부터 뷰포트를 생성하도록 지시하는 명령어들을 더 포함한다. 컴퓨터 판독가능한 매체는 또한 프로세서에게, 향상된 뷰포트를 생성하기 위해, 생성된 뷰포트로부터 아티팩트를 제거하도록 지시하는 명령어들을 더 포함한다.
예 22는 임의적 특징들을 포함하거나 배제하는 예 21의 컴퓨터 판독가능한 매체를 포함한다. 이 예에서, 컴퓨터 판독가능한 매체는 프로세서로 하여금, 디스플레이 디바이스로부터 뷰 정보를 수신하고, 뷰 정보에 기초하여 디코딩된 360도 투영 포맷 비디오로부터 뷰포트를 생성하게 하는 명령어들을 포함한다.
예 23은 임의적 특징들을 포함하거나 배제하는 예 21 또는 예 22 중 어느 하나의 컴퓨터 판독가능한 매체를 포함한다. 이 예에서, 컴퓨터 판독가능한 매체는 프로세서로 하여금, 낮은 복잡도 토폴로지를 갖는 CNN을 사용하여 아티팩트를 제거하게 하는 명령어들을 포함한다.
예 24는 임의적 특징들을 포함하거나 배제하는 예 21 내지 예 23 중 어느 하나의 컴퓨터 판독가능한 매체를 포함한다. 이 예에서, 컴퓨터 판독가능한 매체는 프로세서로 하여금, 높은 복잡도 토폴로지를 갖는 CNN을 사용하여 아티팩트를 제거하게 하는 명령어들을 포함한다.
예 25는 임의적 특징들을 포함하거나 배제하는 예 21 내지 예 24 중 어느 하나의 컴퓨터 판독가능한 매체를 포함한다. 이 예에서, 컴퓨터 판독가능한 매체는 프로세서로 하여금, 스트라이드 2 컨볼루션 레이어 및 스트라이드 2 디컨볼루션 레이어를 갖는 CNN 기반 필터를 사용하여 아티팩트를 제거하게 하는 명령어들을 포함한다.
예 26은 임의적 특징들을 포함하거나 배제하는 예 21 내지 예 25 중 어느 하나의 컴퓨터 판독가능한 매체를 포함한다. 이 예에서, 컴퓨터 판독가능한 매체는 프로세서로 하여금, 압축된 종래의 비디오 비트스트림을 수신하고; 종래의 비디오 프레임들을 생성하기 위해, 종래의 비디오 비트스트림을 압축해제하고; 종래의 비디오 프레임들로부터 아티팩트를 제거하게 하는 명령어들을 포함한다.
예 27은 임의적 특징들을 포함하거나 배제하는 예 21 내지 예 26 중 어느 하나의 컴퓨터 판독가능한 매체를 포함한다. 이 예에서, 컴퓨터 판독가능한 매체는 프로세서로 하여금, 그라운드 트루스 이미지들 및 블록형 아티팩트들이 추가된 대응하는 이미지들의 훈련 쌍들을 사용하여 블록형 아티팩트들을 제거하기 위해 CNN 기반 필터를 훈련하게 하는 명령어들을 포함한다.
예 28은 임의적 특징들을 포함하거나 배제하는 예 21 내지 예 27 중 어느 하나의 컴퓨터 판독가능한 매체를 포함한다. 이 예에서, 컴퓨터 판독가능한 매체는 프로세서로 하여금, 그라운드 트루스 이미지들 및 링잉 아티팩트들이 추가된 대응하는 이미지들의 훈련 쌍들을 사용하여 링잉 아티팩트들을 제거하기 위해 CNN 기반 필터를 훈련하게 하는 명령어들을 포함한다.
예 29는 임의적 특징들을 포함하거나 배제하는 예 21 내지 예 28 중 어느 하나의 컴퓨터 판독가능한 매체를 포함한다. 이 예에서, 컴퓨터 판독가능한 매체는 프로세서로 하여금, 그라운드 트루스 이미지들 및 방사형 아티팩트들이 추가된 대응하는 이미지들의 훈련 쌍들을 사용하여 블록형 방사형을 제거하기 위해 CNN 기반 필터를 훈련하게 하는 명령어들을 포함한다.
예 30은 임의적 특징들을 포함하거나 배제하는 예 21 내지 예 29 중 어느 하나의 컴퓨터 판독가능한 매체를 포함한다. 이 예에서, 컴퓨터 판독가능한 매체는 프로세서로 하여금, 그라운드 트루스 이미지들 및 이음매 아티팩트들이 추가된 대응하는 이미지들의 훈련 쌍들을 사용하여 블록형 아티팩트들을 제거하기 위해 CNN 기반 필터를 훈련하게 하는 명령어들을 포함한다.
예 31은 비디오를 향상시키기 위한 시스템이다. 시스템은 디코딩된 360도 투영 포맷 비디오를 생성하기 위해, 수신된 360도 투영 포맷 비디오 비트스트림을 디코딩하기 위한 디코더를 포함한다. 시스템은 또한 디코딩된 360도 투영 포맷 비디오로부터 뷰포트를 생성하기 위한 뷰포트 생성기를 포함한다. 시스템은 향상된 이미지를 생성하기 위해, 뷰포트로부터 아티팩트를 제거하기 위한 컨볼루션 신경망(CNN) 기반 필터를 더 포함한다. 시스템은 또한 향상된 이미지를 디스플레이에 송신하기 위한 디스플레이어를 더 포함한다.
예 32는 임의적 특징들을 포함하거나 배제하는 예 31의 시스템을 포함한다. 이 예에서, 디코더는 압축된 종래의 비디오를 수신하고 종래의 비디오를 압축해제하며, CNN 기반 필터는 압축해제된 종래의 비디오로부터 아티팩트를 제거한다.
예 33은 임의적 특징들을 포함하거나 배제하는 예 31 또는 예 32 중 어느 하나의 시스템을 포함한다. 이 예에서, CNN 기반 필터는 가벼운 복잡도(LC) 토폴로지를 갖는 CNN을 포함한다.
예 34는 임의적 특징들을 포함하거나 배제하는 예 31 내지 예 33 중 어느 하나의 시스템을 포함한다. 이 예에서, CNN 기반 필터는 높은 복잡도(HC) 토폴로지를 갖는 CNN을 포함한다.
예 35는 임의적 특징들을 포함하거나 배제하는 예 31 내지 예 34 중 어느 하나의 시스템을 포함한다. 이 예에서, CNN 기반 필터는 스트라이드 2 컨볼루션 레이어 및 스트라이드 2 디컨볼루션 레이어를 갖는 CNN을 포함한다.
예 36은 임의적 특징들을 포함하거나 배제하는 예 31 내지 예 35 중 어느 하나의 시스템을 포함한다. 이 예에서, CNN 기반 필터는 아웃-루프 필터를 포함한다.
예 37은 임의적 특징들을 포함하거나 배제하는 예 31 내지 예 36 중 어느 하나의 시스템을 포함한다. 이 예에서, 아티팩트는 블록형 아티팩트를 포함한다.
예 38은 임의적 특징들을 포함하거나 배제하는 예 31 내지 예 37 중 어느 하나의 시스템을 포함한다. 이 예에서, 아티팩트는 링잉 아티팩트를 포함한다.
예 39는 임의적 특징들을 포함하거나 배제하는 예 31 내지 예 38 중 어느 하나의 시스템을 포함한다. 이 예에서, 아티팩트는 방사형 아티팩트를 포함한다.
예 40은 임의적 특징들을 포함하거나 배제하는 예 31 내지 예 39 중 어느 하나의 시스템을 포함한다. 이 예에서, 아티팩트는 이음매 아티팩트를 포함한다.
예 41은 비디오를 향상시키기 위한 시스템이다. 시스템은 디코딩된 360도 투영 포맷 비디오를 생성하기 위해, 수신된 360도 투영 포맷 비디오 비트스트림을 디코딩하기 위한 수단을 포함한다. 시스템은 또한 디코딩된 360도 투영 포맷 비디오로부터 뷰포트를 생성하기 위한 수단을 포함한다. 시스템은 향상된 이미지를 생성하기 위해, 뷰포트로부터 아티팩트를 제거하기 위한 수단을 더 포함한다. 시스템은 또한 향상된 이미지를 디스플레이에 송신하기 위한 수단을 더 포함한다.
예 42는 임의적 특징들을 포함하거나 배제하는 예 41의 시스템을 포함한다. 이 예에서, 수신된 360도 투영 포맷 비디오 비트스트림을 디코딩하기 위한 수단은 압축된 종래의 비디오를 수신하고, 종래의 비디오를 압축해제하며, CNN 기반 필터는 압축해제된 종래의 비디오로부터 아티팩트를 제거한다.
예 43은 임의적 특징들을 포함하거나 배제하는 예 41 또는 예 42 중 어느 하나의 시스템을 포함한다. 이 예에서, 아티팩트를 제거하기 위한 수단은 가벼운 복잡도(LC) 토폴로지를 갖는 CNN을 포함한다.
예 44는 임의적 특징들을 포함하거나 배제하는 예 41 내지 예 43 중 어느 하나의 시스템을 포함한다. 이 예에서, 아티팩트를 제거하기 위한 수단은 높은 복잡도(HC) 토폴로지를 갖는 CNN을 포함한다.
예 45는 임의적 특징들을 포함하거나 배제하는 예 41 내지 예 44 중 어느 하나의 시스템을 포함한다. 이 예에서, 아티팩트를 제거하기 위한 수단은 스트라이드 2 컨볼루션 레이어 및 스트라이드 2 디컨볼루션 레이어를 갖는 CNN을 포함한다.
예 46은 임의적 특징들을 포함하거나 배제하는 예 41 내지 예 45 중 어느 하나의 시스템을 포함한다. 이 예에서, 아티팩트를 제거하기 위한 수단은 아웃-루프 필터를 포함한다.
예 47은 임의적 특징들을 포함하거나 배제하는 예 41 내지 예 46 중 어느 하나의 시스템을 포함한다. 이 예에서, 아티팩트는 블록형 아티팩트를 포함한다.
예 48은 임의적 특징들을 포함하거나 배제하는 예 41 내지 예 47 중 어느 하나의 시스템을 포함한다. 이 예에서, 아티팩트는 링잉 아티팩트를 포함한다.
예 49는 임의적 특징들을 포함하거나 배제하는 예 41 내지 예 48 중 어느 하나의 시스템을 포함한다. 이 예에서, 아티팩트는 방사형 아티팩트를 포함한다.
예 50은 임의적 특징들을 포함하거나 배제하는 예 41 내지 예 49 중 어느 하나의 시스템을 포함한다. 이 예에서, 아티팩트는 이음매 아티팩트를 포함한다.
본 명세서에 설명되고 도시된 모든 컴포넌트, 특징, 구조, 특성 등이 특정 양태 또는 양태들에 포함될 필요는 없다. 명세서가 컴포넌트, 특징, 구조 또는 특성이 포함될 "수 있다(may, might, can, 또는 could)"고 명시하는 경우, 예를 들어, 해당 특정 컴포넌트, 특징, 구조 또는 특성이 포함되도록 요구되지는 않는다. 명세서 또는 청구항이 단수 요소를 언급하는 경우, 그것은 그 요소가 단 하나만 있음을 의미하지 않는다. 명세서 또는 청구항들이 "추가적인" 요소를 언급하는 경우, 그것은 하나보다 많은 추가 요소가 있는 것을 배제하지 않는다.
일부 양태들이 특정 구현들을 참조하여 설명되었지만, 일부 양태들에 따라 다른 구현들이 가능하다는 점에 유의해야 한다. 추가적으로, 도면들에 도시되고/되거나 본 명세서에 설명된 회로 요소들 또는 다른 특징들의 배열 및/또는 순서는 도시되고 설명된 특정 방식으로 배열될 필요가 없다. 일부 양태들에 따라 다수의 다른 배열이 가능하다.
도면에 도시된 각각의 시스템에서, 일부 경우들의 요소들은 표현된 요소들이 상이하고/거나 유사할 수 있음을 시사하기 위해 각각 동일한 참조 번호 또는 상이한 참조 번호를 가질 수 있다. 그러나, 요소는 상이한 구현들을 갖고 본 명세서에 보여지거나 설명된 시스템의 일부 또는 전체와 함께 작동하기에 충분히 유연할 수 있다. 도면들에 보여진 다양한 요소들은 동일하거나 상이할 수 있다. 어느 것을 제1 요소로 지칭하고 어느 것을 제2 요소로 지칭하는지는 임의적이다.
위에서 언급된 예들의 구체적인 사항들은 하나 이상의 양태에서 어디에서나 사용될 수 있음을 이해해야 한다. 예를 들어, 위에서 설명된 컴퓨팅 디바이스의 모든 임의적인 특징은 또한 본 명세서에 설명된 방법들 또는 컴퓨터 판독가능한 매체들 중 어느 하나와 관련하여 구현될 수 있다. 또한, 흐름도들 및/또는 상태도들이 본 명세서에서 양태들을 설명하기 위해 사용되었을 수 있지만, 기술들은 본 명세서의 해당 도면들 또는 대응하는 설명들로 제한되지 않는다. 예를 들어, 흐름은 각각의 도시된 상자 또는 상태를 통해, 또는 본 명세서에 도시되고 설명된 것과 정확히 동일한 순서로 진행할 필요가 없다.
본 기술은 본 명세서에 나열된 특정 세부 사항으로 제한되지 않는다. 실제로, 본 개시내용의 혜택을 받는 본 기술분야의 통상의 기술자들은 전술한 설명 및 도면들로부터의 많은 다른 변형이 본 기술들의 범위 내에서 이루어질 수 있음을 이해할 것이다. 따라서, 본 기술들의 범위를 정의하는 것은 그에 대한 임의의 보정을 포함하는 이하의 청구항들이다.

Claims (25)

  1. 비디오를 향상시키기 위한 장치로서,
    디코딩된 360도 투영 포맷 비디오(360-degree projection format video)를 생성하기 위해, 수신된 360도 투영 포맷 비디오 비트스트림을 디코딩하기 위한 디코더;
    상기 디코딩된 360도 투영 포맷 비디오로부터 뷰포트(viewport)를 생성하기 위한 뷰포트 생성기;
    향상된 이미지를 생성하기 위해 상기 뷰포트로부터 아티팩트를 제거하기 위한 컨볼루션 신경망(convolutional neural network)(CNN) 기반 필터; 및
    상기 향상된 이미지를 디스플레이에 송신하기 위한 디스플레이어
    를 포함하는, 장치.
  2. 제1항에 있어서, 상기 디코더는 압축된 종래의 비디오(conventional video)를 수신하고 상기 종래의 비디오를 압축해제하고, 상기 CNN 기반 필터는 압축해제된 종래의 비디오로부터 아티팩트를 제거하는, 장치.
  3. 제1항에 있어서, 상기 CNN 기반 필터는 가벼운 복잡도(light complexity)(LC) 토폴로지를 갖는 CNN을 포함하는, 장치.
  4. 제1항에 있어서, 상기 CNN 기반 필터는 높은 복잡도(high complexity)(HC) 토폴로지를 갖는 CNN을 포함하는, 장치.
  5. 제1항에 있어서, 상기 CNN 기반 필터는 스트라이드 2 컨볼루션 레이어(stride two convolutional layer) 및 스트라이드 2 디컨볼루션 레이어(stride two deconvolutional layer)를 갖는 CNN을 포함하는, 장치.
  6. 제1항 내지 제5항의 임의의 조합에 있어서, 상기 CNN 기반 필터는 아웃-루프 필터를 포함하는, 장치.
  7. 제1항 내지 제5항의 임의의 조합에 있어서, 상기 아티팩트는 블록형 아티팩트(blocky artifact)를 포함하는, 장치.
  8. 제1항 내지 제5항의 임의의 조합에 있어서, 상기 아티팩트는 링잉 아티팩트(ringing artifact)를 포함하는, 장치.
  9. 제1항 내지 제5항의 임의의 조합에 있어서, 상기 아티팩트는 방사형 아티팩트(radial artifact)를 포함하는, 장치.
  10. 제1항 내지 제5항의 임의의 조합에 있어서, 상기 아티팩트는 이음매 아티팩트(seam artifact)를 포함하는, 장치.
  11. 비디오를 향상시키기 위한 방법으로서,
    프로세서를 통해, 360도 투영 포맷 비디오 비트스트림을 수신하는 단계;
    상기 프로세서를 통해, 디코딩된 360도 투영 포맷 비디오를 생성하기 위해, 상기 360도 투영 포맷 비디오 비트스트림을 디코딩하는 단계;
    상기 프로세서를 통해, 상기 디코딩된 360도 투영 포맷 비디오로부터 뷰포트를 생성하는 단계; 및
    상기 프로세서를 통해, 향상된 뷰포트를 생성하기 위해, 컨볼루션 신경망(CNN) 기반 필터를 통해, 생성된 뷰포트로부터 아티팩트를 제거하는 단계
    를 포함하는, 방법.
  12. 제11항에 있어서, 상기 뷰포트를 생성하는 단계는 디스플레이 디바이스로부터 뷰 정보를 수신하고, 상기 뷰 정보에 기초하여 상기 디코딩된 360도 투영 포맷 비디오로부터 상기 뷰포트를 생성하는 단계를 포함하는, 방법.
  13. 제11항에 있어서, 상기 아티팩트를 제거하는 단계는 낮은 복잡도 토폴로지를 갖는 CNN을 사용하는 단계를 포함하는, 방법.
  14. 제11항에 있어서, 상기 아티팩트를 제거하는 단계는 높은 복잡도 토폴로지를 갖는 CNN을 사용하는 단계를 포함하는, 방법.
  15. 제11항에 있어서, 상기 아티팩트를 제거하는 단계는 스트라이드 2 컨볼루션 레이어 및 스트라이드 2 디컨볼루션 레이어를 갖는 CNN 기반 필터를 사용하는 단계를 포함하는, 방법.
  16. 제11항 내지 제15항의 임의의 조합에 있어서,
    압축된 종래의 비디오 비트스트림을 수신하는 단계;
    종래의 비디오 프레임들을 생성하기 위해, 상기 종래의 비디오 비트스트림을 압축해제하는 단계; 및
    상기 CNN 기반 필터를 통해 상기 종래의 비디오 프레임들로부터 아티팩트를 제거하는 단계
    를 더 포함하는, 방법.
  17. 제11항 내지 제15항의 임의의 조합에 있어서, 그라운드 트루스 이미지들 및 블록형 아티팩트들이 추가된 대응하는 이미지들의 훈련 쌍들을 사용하여 블록형 아티팩트들을 제거하기 위해 상기 CNN 기반 필터를 훈련하는 단계를 포함하는, 방법.
  18. 제11항 내지 제15항의 임의의 조합에 있어서, 그라운드 트루스 이미지들 및 링잉 아티팩트들이 추가된 대응하는 이미지들의 훈련 쌍들을 사용하여 링잉 아티팩트들을 제거하기 위해 상기 CNN 기반 필터를 훈련하는 단계를 포함하는, 방법.
  19. 제11항 내지 제15항의 임의의 조합에 있어서, 그라운드 트루스 이미지들 및 방사형 아티팩트들이 추가된 대응하는 이미지들의 훈련 쌍들을 사용하여 블록형 방사형을 제거하기 위해 상기 CNN 기반 필터를 훈련하는 단계를 포함하는, 방법.
  20. 제11항 내지 제15항의 임의의 조합에 있어서, 그라운드 트루스 이미지들 및 이음매 아티팩트들이 추가된 대응하는 이미지들의 훈련 쌍들을 사용하여 블록형 아티팩트들을 제거하기 위해 상기 CNN 기반 필터를 훈련하는 단계를 포함하는, 방법.
  21. 비디오를 향상시키기 위한 시스템으로서,
    디코딩된 360도 투영 포맷 비디오를 생성하기 위해, 수신된 360도 투영 포맷 비디오 비트스트림을 디코딩하기 위한 수단;
    상기 디코딩된 360도 투영 포맷 비디오로부터 뷰포트를 생성하기 위한 수단;
    향상된 이미지를 생성하기 위해, 상기 뷰포트로부터 아티팩트를 제거하기 위한 수단; 및
    상기 향상된 이미지를 디스플레이에 송신하기 위한 수단
    을 포함하는, 시스템.
  22. 제21항에 있어서, 상기 수신된 360도 투영 포맷 비디오 비트스트림을 디코딩하기 위한 수단은 또한, 종래의 비디오 프레임들을 생성하기 위해, 압축된 종래의 비디오 비트스트림을 수신하고 상기 종래의 비디오 비트스트림을 압축해제하고, 상기 아티팩트를 제거하기 위한 수단은 상기 종래의 비디오 프레임들로부터 아티팩트를 제거하는, 시스템.
  23. 제21항에 있어서, 상기 아티팩트를 제거하기 위한 수단은 가벼운 복잡도(LC) 토폴로지를 갖는 컨볼루션 신경망을 포함하는, 시스템.
  24. 제21항 내지 제23항의 임의의 조합에 있어서, 상기 아티팩트를 제거하기 위한 수단은 높은 복잡도(HC) 토폴로지를 갖는 컨볼루션 신경망을 포함하는, 시스템.
  25. 제21항 내지 제23항의 임의의 조합에 있어서, 상기 아티팩트를 제거하기 위한 수단은 스트라이드 2 컨볼루션 레이어 및 스트라이드 2 디컨볼루션 레이어를 갖는 컨볼루션 신경망을 포함하는, 시스템.
KR1020227024293A 2020-02-17 2020-02-17 컨볼루션 신경망(cnn) 기반 필터를 사용한 360도 비디오의 향상 KR20220140706A (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2020/075548 WO2021163845A1 (en) 2020-02-17 2020-02-17 Enhancing 360-degree video using convolutional neural network (cnn) -based filter

Publications (1)

Publication Number Publication Date
KR20220140706A true KR20220140706A (ko) 2022-10-18

Family

ID=77390304

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227024293A KR20220140706A (ko) 2020-02-17 2020-02-17 컨볼루션 신경망(cnn) 기반 필터를 사용한 360도 비디오의 향상

Country Status (5)

Country Link
US (1) US20230054523A1 (ko)
EP (1) EP4107966A4 (ko)
KR (1) KR20220140706A (ko)
CN (1) CN114982248A (ko)
WO (1) WO2021163845A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3916633A1 (de) * 2020-05-25 2021-12-01 Sick Ag Kamera und verfahren zum verarbeiten von bilddaten

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9576214B1 (en) * 2012-01-23 2017-02-21 Hrl Laboratories, Llc Robust object recognition from moving platforms by combining form and motion detection with bio-inspired classification
KR20230051319A (ko) * 2016-07-08 2023-04-17 브이아이디 스케일, 인크. 지오메트리 투영을 이용한 360도 비디오 코딩
US20180176468A1 (en) * 2016-12-19 2018-06-21 Qualcomm Incorporated Preferred rendering of signalled regions-of-interest or viewports in virtual reality video
KR20180096170A (ko) * 2017-02-20 2018-08-29 삼성전자주식회사 전자 장치 및 전자 장치에서 360도 영상 디스플레이 방법
US10616482B2 (en) * 2017-03-10 2020-04-07 Gopro, Inc. Image quality assessment
US10607329B2 (en) * 2017-03-13 2020-03-31 Adobe Inc. Illumination estimation from a single image
KR20230079466A (ko) * 2017-04-11 2023-06-07 브이아이디 스케일, 인크. 면 연속성을 사용하는 360 도 비디오 코딩
US20180338160A1 (en) * 2017-05-18 2018-11-22 Mediatek Inc. Method and Apparatus for Reduction of Artifacts in Coded Virtual-Reality Images
WO2018217057A1 (ko) * 2017-05-26 2018-11-29 엘지전자 주식회사 360 비디오 처리 방법 및 그 장치
US10484682B2 (en) * 2017-07-03 2019-11-19 Qualcomm Incorporated Reference picture derivation and motion compensation for 360-degree video coding
US10798417B2 (en) * 2017-07-05 2020-10-06 Qualcomm Incorporated Deblock filtering for 360-degree video coding
EP3729812A1 (en) * 2017-12-19 2020-10-28 VID SCALE, Inc. Face discontinuity filtering for 360-degree video coding
US10721465B2 (en) * 2018-02-14 2020-07-21 Qualcomm Incorporated Motion compensation for cubemap packed frames
US11212438B2 (en) * 2018-02-14 2021-12-28 Qualcomm Incorporated Loop filter padding for 360-degree video coding
TWI688258B (zh) * 2018-03-09 2020-03-11 聯發科技股份有限公司 一種用於重構的基於投影的幀的解塊方法
US20190289327A1 (en) * 2018-03-13 2019-09-19 Mediatek Inc. Method and Apparatus of Loop Filtering for VR360 Videos
WO2019194572A1 (en) * 2018-04-03 2019-10-10 Samsung Electronics Co., Ltd. Methods and apparatus for determining adjustment parameter during encoding of spherical multimedia content
KR102022648B1 (ko) * 2018-08-10 2019-09-19 삼성전자주식회사 전자 장치, 이의 제어 방법 및 서버의 제어 방법
US10744936B1 (en) * 2019-06-10 2020-08-18 Ambarella International Lp Using camera data to automatically change the tint of transparent materials
US11416002B1 (en) * 2019-06-11 2022-08-16 Ambarella International Lp Robotic vacuum with mobile security function
IT201900011403A1 (it) * 2019-07-10 2021-01-10 Ambarella Int Lp Detecting illegal use of phone to prevent the driver from getting a fine
AU2020309130B2 (en) * 2019-07-11 2023-06-08 Beijing Bytedance Network Technology Co., Ltd. Sample padding in adaptive loop filtering
US11193312B1 (en) * 2019-09-30 2021-12-07 Ambarella International Lp Child safety lock
US11109152B2 (en) * 2019-10-28 2021-08-31 Ambarella International Lp Optimize the audio capture during conference call in cars
EP4080883A4 (en) * 2019-12-17 2023-12-06 Apple Inc. METHOD FOR IMAGE SIGNAL CODING/DECODING AND DEVICE THEREFOR
US11343485B1 (en) * 2020-08-24 2022-05-24 Ambarella International Lp Virtual horizontal stereo camera

Also Published As

Publication number Publication date
US20230054523A1 (en) 2023-02-23
CN114982248A (zh) 2022-08-30
WO2021163845A1 (en) 2021-08-26
EP4107966A4 (en) 2023-07-26
EP4107966A1 (en) 2022-12-28

Similar Documents

Publication Publication Date Title
EP3669333B1 (en) Sequential encoding and decoding of volymetric video
US10157448B2 (en) Foveated video rendering
TWI751261B (zh) 360度環景視頻的解區塊濾波技術
CN107439010B (zh) 流传输球形视频
US10911781B2 (en) Image processing device and image processing method for encoding/decoding omnidirectional images at different resolutions
US10666979B2 (en) Image processing device and image processing method for encoding/decoding omnidirectional image divided vertically
TWI696378B (zh) 用於全視差光場顯示系統之方法及裝置
CN112204993B (zh) 使用重叠的被分区的分段的自适应全景视频流式传输
US11138460B2 (en) Image processing method and apparatus
CN111801947A (zh) 选择性环路滤波下的图像编码的装置及方法
JP7383128B2 (ja) 画像処理装置
CN113557729A (zh) 已编码点云数据的划分
WO2019115867A1 (en) An apparatus, a method and a computer program for volumetric video
CN113170154A (zh) 用于退火迭代几何平滑的方法和装置
US20210312588A1 (en) Immersive video bitstream processing
WO2021163845A1 (en) Enhancing 360-degree video using convolutional neural network (cnn) -based filter
JP7118501B2 (ja) 符号化された映像ストリームを映像点群符号化を使用して復号するための方法、装置、媒体、およびプログラム
KR102645652B1 (ko) 비디오 인코딩 시스템
US20230388542A1 (en) A method and apparatus for adapting a volumetric video to client devices
CN113452870A (zh) 视频处理方法和装置
WO2019166013A1 (en) Cube-based projection method that applies different mapping functions to different square projection faces, different axes, and/or different locations of axis
US11936912B2 (en) Method and apparatus for temporal smoothing for video
Groth et al. Wavelet-Based Fast Decoding of 360 Videos
Groth et al. Wavelet-Based Fast Decoding of 360-Degree Videos