KR20190128689A - 360-도 비디오의 효율적 압축을 위한 구체 극 투영들 - Google Patents

360-도 비디오의 효율적 압축을 위한 구체 극 투영들 Download PDF

Info

Publication number
KR20190128689A
KR20190128689A KR1020197030441A KR20197030441A KR20190128689A KR 20190128689 A KR20190128689 A KR 20190128689A KR 1020197030441 A KR1020197030441 A KR 1020197030441A KR 20197030441 A KR20197030441 A KR 20197030441A KR 20190128689 A KR20190128689 A KR 20190128689A
Authority
KR
South Korea
Prior art keywords
region
rectangular
mapping
video
video frame
Prior art date
Application number
KR1020197030441A
Other languages
English (en)
Other versions
KR102646967B1 (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 KR20190128689A publication Critical patent/KR20190128689A/ko
Application granted granted Critical
Publication of KR102646967B1 publication Critical patent/KR102646967B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/01Head-up displays
    • G02B27/017Head mounted
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/11Region-based segmentation
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/01Head-up displays
    • G02B27/017Head mounted
    • G02B27/0172Head mounted characterised by optical features
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/006Mixed reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/08Projecting images onto non-planar surfaces, e.g. geodetic screens
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/12Panospheric to cylindrical image transformations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/18Image warping, e.g. rearranging pixels individually
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/106Processing image signals
    • H04N13/111Transformation of image signals corresponding to virtual viewpoints, e.g. spatial image interpolation
    • H04N13/117Transformation of image signals corresponding to virtual viewpoints, e.g. spatial image interpolation the virtual viewpoint locations being selected by the viewers or determined by viewer tracking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/106Processing image signals
    • H04N13/161Encoding, multiplexing or demultiplexing different image signal components
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/194Transmission of image signals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/117Filters, e.g. for pre-processing or post-processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/182Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a pixel
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/196Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
    • H04N19/197Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters including determination of the initial value of an encoding parameter
    • 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
    • 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
    • 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/88Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving rearrangement of data among different coding units, e.g. shuffling, interleaving, scrambling or permutation of pixel data or permutation of transform coefficient data among different blocks
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/01Head-up displays
    • G02B27/0101Head-up displays characterised by optical features
    • G02B2027/0138Head-up displays characterised by optical features comprising image capture systems, e.g. camera
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/01Head-up displays
    • G02B27/0101Head-up displays characterised by optical features
    • G02B2027/014Head-up displays characterised by optical features comprising information/image processing systems
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Optics & Photonics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Computer Graphics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Image Processing (AREA)

Abstract

360-도 비디오 데이터를 프로세싱하기 위한 시스템 및 방법이 제공된다. 여러 구현들에서, 360-도 비디오 프레임의 구체형 표현은 상부 영역, 하부 영역 및 중간 영역으로 세그먼트화될 수 있다. 중간 영역은 출력 비디오 프레임의 하나 이상의 직사각형 영역들에 맵핑될 수 있다. 상부 영역은 사각형을 원형으로 변환하는 맵핑을 사용하여 출력 비디오 프레임의 제 1 직사각형 영역에 맵핑될 수 있고, 이에 따라 원형 상부 영역에서의 픽셀은 제 1 직사각형 영역을 채우도록 확장된다. 상부 영역은 출력 비디오 프레임의 제 2 직사각형 영역에 맵핑될 수 있고, 이에 따라 원형 하부 영역에서의 픽셀은 제 2 직사각형 영역을 채우도록 확장된다.

Description

360-도 비디오의 효율적 압축을 위한 구체 극 투영들
가상 현실 (VR) 은 겉보기에 현실적이거나 또는 물리적인 방식 안에서 상호작용될 수 있는 3-차원, 컴퓨터-생성된 환경을 설명한다. 일반적으로, 가상 현실 환경을 경험하는 사용자는, 좌측 또는 우측으로 돌거나, 위 또는 아래를 보거나, 및/또는 앞으로 및 뒤로 움직여, 가상 환경의 그녀의 관점을 변경할 수 있다. 사용자에게 제시되는 360-도 비디오가 그에 따라 변경될 수 있어, 사용자의 경험은 현실 세계에서만큼 심리스 (seamless) 하게 된다. 가상 현실 비디오는 매우 높은 품질로 캡처 및 렌더링될 수 있어, 잠재적으로 진정 몰입형 가상 현실 경험을 제공한다.
심리스한 360-도 뷰를 제공하기 위해, 360-도 비디오 캡처 시스템에 의해 캡처된 비디오는 통상적으로 이미지 스티칭 (image stitching) 을 받는다. 360-도 비디오 생성의 경우에서의 이미지 스티칭은 인접한 카메라들로부터의 비디오 프레임들을, 그 비디오 프레임들이 오버랩되거나 또는 다르게는 연결되는 에어리어에서 결합 또는 병합하는 것을 수반한다. 그 결과는 대략 구형 프레임일 것이다. 그러나, Mercator 투영과 유사하게, 병합된 데이터는 통상적으로 평면 방식으로 표현된다. 예를 들어, 병합된 비디오 프레임에서의 픽셀들은 큐브 형상, 또는 일부 다른 3-차원, 평면 형상 (예를 들어, 피라미드, 8면체, 10면체 등) 의 평면들 상으로 맵핑될 수도 있다. 비디오 캡처 및 비디오 디스플레이 디바이스들은 일반적으로 래스터 원리 - 비디오 프레임이 픽셀들의 그리드로서 처리됨을 의미 - 에 입각하여 동작하므로, 정사각형 또는 직사각형 평면들이 통상적으로 구형 환경을 표현하는데 사용된다.
360-도 비디오가 저장 및/또는 송신을 위해 인코딩될 수 있다. 비디오 코딩 표준들은 국제전기통신연합 (ITU) ITU-T H.261, ISO/IEC (International Standards Organization/International Electronics Commission) 모션 픽처 그룹 (MPEG) MPEG-1 비주얼, ITU-T H.262 또는 ISO/IEC MPEG-2 비주얼, ITU-T H.263, ISO/IEC MPEG-4 비주얼, ITU-T H.264 (ISO/IEC MPEG-4 AVC 로도 또한 알려짐) (그 스케일러블 비디오 코딩 (SVC) 및 멀티뷰 비디오 코딩 (MVC) 확장들 및 ITU-T H.265 (ISO/IEC MPEG-4 HEVC 로도 또한 알려짐) (그 확장들을 가짐) 를 포함함) 를 포함한다.
다양한 구현에서, 360-도 비디오 데이터를 프로세싱하여 더 우수한 코딩 효율을 획득하기 위한 기술들 및 시스템들이 설명된다. 이들 기술 및 시스템은 360-도 비디오 프레임의 구체형 표현을 북극 또는 상부 영역, 남극 또는 하부 영역, 및 적도 또는 중간 영역으로 분할하기 위해 세그먼트화된 구체형 투영을 사용하는 것을 포함할 수 있다. 그 후, 영역들은 코딩 디바이스들이 조작하기에 더 용이할 수 있는 2 차원의 직사각형 포맷에 맵핑될 수 있다. 이 맵핑을 생성함에 있어서, 세그먼트화된 구체형 투영의 원형 북극 및 남극 영역은 다양한 기술을 사용하여 확장되어 출력 비디오 프레임의 직사각형 영역을 채울 수 있다. 극 영역들을 직사각형 영역의 모든 코너들에 맵핑하는 것에 의해 출력 비디오 프레임에서 모든 사용가능한 픽셀들은 사용가능한 데이터를 포함할 수 있다. 이러한 방식으로 생성된 비디오 프레임은 다른 방법들을 사용하여 생성된 360-도 비디오를 위한 비디오 프레임보다 더 효율적으로 인코딩할 수 있다.
다양한 구현들에서, 출력 비디오 프레임의 특정 영역에서의 점진적 샘플링 조정을 적용하는 것에 의해 추가적인 시각적 개선이 달성될 수 있다. 예를 들어, 극 영역이 맵핑되었던 직사각형 영역과 적도 영역의 일부가 맵핑되었던 직사각형 영역 사이의 임의의 불연속성은 샘플들이 맵핑된 비디오 프레임에서의 위치에 점진적 변화를 적용하는 것에 의해 감소될 수 있다. 이 예 및 다른 예에서, 점진적 변화는 구체형 비디오 데이터의 극 영역에 대한 직사각형 영역에 적용된다.
적어도 하나의 예에 따르면, 비디오 데이터를 인코딩하는 방법이 제공된다. 다양한 구현들에서, 방법은 복수의 비디오 프레임들을 포함하는 360-도 비디오 데이터를 획득하는 단계를 포함하고, 복수의 비디오 프레임들의 각각의 비디오 프레임은 비디오 프레임에 대한 비디오 데이터의 구체형 표현을 포함한다. 방법은 복수의 비디오 프레임들로부터의 비디오 프레임을 상부 영역, 중간 영역 및 하부 영역으로 세그먼트화하는 단계를 더 포함하며, 상부 영역은 구체형 표현의 제 1 원형 영역을 포함하고, 하부 영역은 제 1 원형 영역으로부터의 구체형 표현에 반대편인 구체형 표현의 제 2 원형 영역을 포함하고, 중간 영역은 상부 영역 또는 하부 영역에 포함되지 않는 구체형 표현의 영역을 포함한다. 이 방법은 상부 영역을 출력 비디오 프레임의 제 1 직사각형 영역에 맵핑하는 단계를 더 포함하고, 상부 영역을 맵핑하는 단계는 제 1 원형 영역에 포함된 비디오 데이터를 확장하여 제 1 직사각형 영역을 채우는 단계를 포함한다. 이 방법은 하부 영역을 출력 비디오 프레임의 제 2 직사각형 영역에 맵핑하는 단계를 더 포함하고, 하부 영역을 맵핑하는 단계는 제 2 원형 영역에 포함된 비디오 데이터를 확장하여 제 2 직사각형 영역을 채우는 단계를 포함한다.
다른 예에서, 360-도 비디오 데이터를 저장하도록 구성되는 메모리와 프로세서를 포함하는 장치가 제공된다. 360-도 비디오 데이터는 복수의 비디오 프레임들을 포함하고, 복수의 비디오 프레임들의 각각의 비디오 프레임은 비디오 프레임에 대한 비디오 데이터의 구체형 표현을 포함한다. 프로세서는 복수의 비디오 프레임들로부터의 비디오 프레임을 상부 영역, 중간 영역 및 하부 영역으로 세그먼트화하도록 구성되어 세그먼트화할 수 있으며, 상부 영역은 구체형 표현의 제 1 원형 영역을 포함하고, 하부 영역은 제 1 원형 영역으로부터의 구체형 표현에 반대편인 구체형 표현의 제 2 원형 영역을 포함하고, 중간 영역은 상부 영역 또는 하부 영역에 포함되지 않는 구체형 표현의 영역을 포함한다. 프로세서는 상부 영역을 출력 비디오 프레임의 제 1 직사각형 영역에 맵핑하도록 구성되어 맵핑할 수 있으며, 상부 영역을 맵핑하는 것은 제 1 원형 영역에 포함된 비디오 데이터를 확장하여 제 1 직사각형 영역을 채우는 것을 포함한다. 프로세서는 하부 영역을 출력 비디오 프레임의 제 2 직사각형 영역에 맵핑하도록 구성되어 맵핑할 수 있으며, 하부 영역을 맵핑하는 것은 제 2 원형 영역에 포함된 비디오 데이터를 확장하여 제 2 직사각형 영역을 채우는 것을 포함한다.
또 다른 예에서, 명령들이 저장된 비일시적 컴퓨터 판독가능 매체가 제공되며, 명령들은 하나 이상의 프로세서들에 의해 실행될 때, 하나 이상의 프로세서들로 하여금 복수의 비디오 프레임들을 포함하는 360-도 비디오 데이터를 획득하는 것을 포함하는 동작들을 수행하게 하며, 복수의 비디오 프레임들의 각각의 비디오 프레임은 비디오 프레임에 대한 비디오 데이터의 구체형 표현을 포함한다. 명령들은 또한 하나 이상의 프로세서들로 하여금, 복수의 비디오 프레임들로부터의 비디오 프레임을 상부 영역, 중간 영역 및 하부 영역으로 세그먼트화는 것을 포함하는 동작들을 수행하게 할 수 있으며, 상부 영역은 구체형 표현의 제 1 원형 영역을 포함하고, 하부 영역은 제 1 원형 영역으로부터의 구체형 표현에 반대편인 구체형 표현의 제 2 원형 영역을 포함하고, 중간 영역은 상부 영역 또는 하부 영역에 포함되지 않는 구체형 표현의 영역을 포함한다. 명령들은 또한 하나 이상의 프로세서들로 하여금, 상부 영역을 출력 비디오 프레임의 제 1 직사각형 영역에 맵핑하는 것을 포함하는 동작들을 수행하게 할 수 있으며, 상부 영역을 맵핑하는 것은 제 1 원형 영역에 포함된 비디오 데이터를 확장하여 제 1 직사각형 영역을 채우는 것을 포함한다. 명령들은 또한 하나 이상의 프로세서들로 하여금, 하부 영역을 출력 비디오 프레임의 제 2 직사각형 영역에 맵핑하는 것을 포함하는 동작들을 수행하게 할 수 있으며, 하부 영역을 맵핑하는 것은 제 2 원형 영역에 포함된 비디오 데이터를 확장하여 제 2 직사각형 영역을 채우는 것을 포함한다.
다른 예에서, 복수의 비디오 프레임들을 포함하는 360-도 비디오 데이터를 획득하기 위한 수단을 포함하는 장치가 제공되며, 복수의 비디오 프레임들의 각각의 비디오 프레임은 비디오 프레임에 대한 비디오 데이터의 구체형 표현을 포함한다. 장치는 복수의 비디오 프레임들로부터의 비디오 프레임을 상부 영역, 중간 영역 및 하부 영역으로 세그먼트화하기 위한 수단을 더 포함하며, 상부 영역은 구체형 표현의 제 1 원형 영역을 포함하고, 하부 영역은 제 1 원형 영역으로부터의 구체형 표현에 반대편인 구체형 표현의 제 2 원형 영역을 포함하고, 중간 영역은 상부 영역 또는 하부 영역에 포함되지 않는 구체형 표현의 영역을 포함한다. 장치는 상부 영역을 출력 비디오 프레임의 제 1 직사각형 영역에 맵핑하기 위한 수단을 더 포함하고, 상부 영역을 맵핑하는 것은 제 1 원형 영역에 포함된 비디오 데이터를 확장하여 제 1 직사각형 영역을 채우는 것을 포함한다. 장치는 하부 영역을 출력 비디오 프레임의 제 2 직사각형 영역에 맵핑하기 위한 수단을 더 포함하고, 하부 영역을 맵핑하는 것은 제 2 원형 영역에 포함된 비디오 데이터를 확장하여 제 2 직사각형 영역을 채우는 것을 포함한다.
일부 양태들에서, 비디오 프레임은 구체형 표현의 적도 위의 제 1 위도 및 적도 아래의 제 2 위도에서 세그먼트화되며, 제 1 위도 및 제 2 위도는 적도로부터 등거리이며, 상부 영역은 제 1 위도 위에 있으며 하부 영역은 제 2 위도 아래에 있다.
일부 양태들에서, 상부 영역을 맵핑하고 하부 영역을 맵핑하는 것은 출력 비디오 프레임에서 픽셀 위치를 선택하는 것 및 픽셀 위치에 대응하는 구체형 표현 상의 포인트를 결정하는 것을 포함하며, 구체형 표현 상의 포인트는 정사각형으로부터 원형으로 변환하기 위한 맵핑을 사용하여 결정된다. 이들 양태는 구체형 표현 상의 포인트로부터 픽셀을 샘플링하는 것 및 샘플링된 픽셀을 픽셀 위치에 배치하는 것을 더 포함한다. 일부 양태들에서, 정사각형을 원형으로 변환하기 위한 맵핑은 출력 비디오 프레임에서의 왜곡을 최소화한다. 일부 양태들에서, 상부 영역을 맵핑하고 하부 영역을 맵핑하는 것은 점진적 곡선 함수를 사용하여 픽셀 위치를 조정하는 것을 더 포함한다. 일부 양태들에서, 점진적 곡선 함수는 비디오 프레임에서 제 3 직사각형 영역에 인접한 영역의 픽셀 위치에서 사용된다. 일부 양태들에서, 점진적 곡선 함수는 제 1 직사각형 영역 또는 제 2 직사각형 영역의 중간 영역을 향해 픽셀 위치들을 덜 변화시키고, 제 1 직사각형 영역 또는 제 2 직사각형 영역의 외부 영역을 향해 픽셀 위치들을 더 변화시킨다.
일부 양태들에서, 방법들, 장치 및 컴퓨터 판독가능 매체는 중간 영역을 출력 비디오 프레임의 하나 이상의 직사각형 영역들에 맵핑하는 것을 더 포함한다.일부 양태들에서, 중간 영역은 좌측 뷰, 정면 뷰 및 우측 뷰를 포함하고, 좌측 뷰는 정면 뷰에 인접한 출력 비디오 프레임에 배치되고, 우측 뷰는 정면 뷰에 인접하여 배치된다.
일부 양태들에서, 중간 영역은 후면 뷰를 포함하고, 하부 영역은 후면 뷰에 인접한 출력 비디오 프레임에 배치되고, 상부 영역은 후면 뷰에 인접하여 배치된다.
일부 양태들에서, 상부 영역을 제 1 직사각형 영역에 맵핑하는 것은 출력 비디오 프레임에서 제 1 직사각형 영역이 제 3 직사각형 영역에 인접해 있는 영역에 점진적 조정을 적용하는 것을 포함하고, 하부 영역을 제 2 직사각형 영역에 맵핑하는 것은 출력 비디오 프레임에서 제 2 직사각형 영역이 제 4 직사각형 영역에 인접해 있는 영역에 점진적 조정을 적용하는 것을 포함한다.
일부 양태들에서, 출력 비디오 프레임은 3 바이 2 애스펙트비를 갖는다.
적어도 하나의 예에 따르면, 비디오 데이터를 인코딩하는 방법이 제공된다. 다양한 구현들에서, 방법은 복수의 비디오 프레임들을 포함하는 360-도 비디오 데이터를 획득하는 단계를 포함하고, 복수의 비디오 프레임들의 각각의 비디오 프레임은 비디오 프레임에 대한 비디오 데이터의 2-차원 표현을 포함한다. 본 방법은 복수의 비디오 프레임들로부터 비디오 프레임의 제 1 직사각형 영역을 식별하는 단계를 더 포함한다. 본 방법은 비디오 프레임에 대한 비디오 데이터의 구체형 표현의 상부 영역에 제 1 직사각형 영역을 맵핑하는 단계를 더 포함하고, 상부 영역은 구체형 표현의 제 1 원형 영역을 포함하고, 제 1 직사각형 영역을 맵핑하는 단계는 비디오 데이터를 제 1 직사각형 영역으로부터 제 1 원형 영역으로 배열하는 단계를 포함한다. 본 방법은 비디오 프레임의 제 2 직사각형 영역을 식별하는 단계를 더 포함한다. 본 방법은 구체형 표현의 하부 영역에 제 2 직사각형 영역을 맵핑하는 단계를 더 포함하고, 하부 영역은 구체형 표현의 제 2 원형 영역을 포함하고, 제 2 직사각형 영역을 맵핑하는 단계는 비디오 데이터를 제 2 직사각형 영역으로부터 제 2 원형 영역으로 배열하는 단계를 포함한다.
다른 예에서, 360-도 비디오 데이터를 저장하도록 구성되는 메모리와 프로세서를 포함하는 장치가 제공된다. 360-도 비디오 데이터는 복수의 비디오 프레임들을 포함할 수 있고, 복수의 비디오 프레임들의 각각의 비디오 프레임은 비디오 프레임에 대한 비디오 데이터의 2-차원 표현을 포함한다. 프로세서는 복수의 비디오 프레임들로부터 비디오 프레임의 제 1 직사각형 영역을 식별하도록 구성되어 식별할 수 있다. 프로세서는 비디오 프레임에 대한 비디오 데이터의 구체형 표현의 상부 영역에 제 1 직사각형 영역을 맵핑하도록 구성되어 맵핑할 수 있고, 상부 영역은 구체형 표현의 제 1 원형 영역을 포함하고, 제 1 직사각형 영역을 맵핑하는 것은 비디오 데이터를 제 1 직사각형 영역으로부터 제 1 원형 영역으로 배열하는 것을 포함한다. 프로세서는 비디오 프레임의 제 2 직사각형 영역을 식별하도록 구성되어 식별할 수 있다. 프로세서는 구체형 표현의 하부 영역에 제 2 직사각형 영역을 맵핑하도록 구성되어 맵핑할 수 있고, 하부 영역은 구체형 표현의 제 2 원형 영역을 포함하고, 제 2 직사각형 영역을 맵핑하는 것은 비디오 데이터를 제 2 직사각형 영역으로부터 제 2 원형 영역으로 배열하는 것을 포함한다.
또 다른 예에서, 명령들이 저장된 비일시적 컴퓨터 판독가능 매체가 제공되며, 명령들은 하나 이상의 프로세서들에 의해 실행될 때, 하나 이상의 프로세서들로 하여금 복수의 비디오 프레임들을 포함하는 360-도 비디오 데이터를 획득하는 것을 포함하는 동작들을 수행하게 하며, 복수의 비디오 프레임들의 각각의 비디오 프레임은 비디오 프레임에 대한 비디오 데이터의 2-차원 표현을 포함한다. 명령들은 또한 하나 이상의 프로세서들로 하여금, 복수의 비디오 프레임들로부터 비디오 프레임의 제 1 직사각형 영역을 식별하는 것을 포함하는 동작들을 수행하게 할 수 있다. 명령들은 또한 하나 이상의 프로세서들로 하여금, 비디오 프레임에 대한 비디오 데이터의 구체형 표현의 상부 영역에 제 1 직사각형 영역을 맵핑하는 것을 포함하는 동작들을 수행하게 할 수 있고, 상부 영역은 구체형 표현의 제 1 원형 영역을 포함하고, 제 1 직사각형 영역을 맵핑하는 것은 비디오 데이터를 제 1 직사각형 영역으로부터 제 1 원형 영역으로 배열하는 것을 포함한다. 명령들은 또한 하나 이상의 프로세서들로 하여금, 비디오 프레임의 제 2 직사각형 영역을 식별하는 것을 포함하는 동작들을 수행하게 할 수 있다. 명령들은 또한 하나 이상의 프로세서들로 하여금, 구체형 표현의 하부 영역에 제 2 직사각형 영역을 맵핑하는 것을 포함하는 동작들을 수행하게 할 수 있고, 하부 영역은 구체형 표현의 제 2 원형 영역을 포함하고, 제 2 직사각형 영역을 맵핑하는 것은 비디오 데이터를 제 2 직사각형 영역으로부터 제 2 원형 영역으로 배열하는 것을 포함한다.
다른 예에서, 복수의 비디오 프레임들을 포함하는 360-도 비디오 데이터를 획득하기 위한 수단을 포함하는 장치가 제공되며, 복수의 비디오 프레임들의 각각의 비디오 프레임은 비디오 프레임에 대한 비디오 데이터의 2-차원 표현을 포함한다. 장치는 복수의 비디오 프레임들로부터 비디오 프레임의 제 1 직사각형 영역을 식별하기 위한 수단을 더 포함한다. 장치는 비디오 프레임에 대한 비디오 데이터의 구체형 표현의 상부 영역에 제 1 직사각형 영역을 맵핑하기 위한 수단을 더 포함하고, 상부 영역은 구체형 표현의 제 1 원형 영역을 포함하고, 제 1 직사각형 영역을 맵핑하는 것은 비디오 데이터를 제 1 직사각형 영역으로부터 제 1 원형 영역으로 배열하는 것을 포함한다. 장치는 비디오 프레임의 제 2 직사각형 영역을 식별하기 위한 수단을 더 포함한다. 장치는 구체형 표현의 하부 영역에 제 2 직사각형 영역을 맵핑하기 위한 수단을 더 포함하고, 하부 영역은 구체형 표현의 제 2 원형 영역을 포함하고, 제 2 직사각형 영역을 맵핑하는 것은 비디오 데이터를 제 2 직사각형 영역으로부터 제 2 원형 영역으로 배열하는 것을 포함한다.
일부 양태들에서, 상부 영역은 구체형 표현의 제 1 위도 위의 구체형 표현의 표면을 포함하며, 하부 영역은 구체형 표현의 제 2 위도 아래의 구체형 표현의 표면을 포함하고, 제 1 위도 및 제 2 위도는 구체형 표현의 적도로부터 등거리에 있다
일부 양태들에서, 하나 이상의 직사각형 영역들을 맵핑하는 것은 구체형 표현 상에서 포인트를 선택하는 것, 및 포인트에 대응하는 비디오 프레임에서의 픽셀 위치를 결정하는 것을 포함하며, 픽셀 위치는 3-차원 구체를 2-차원 직사각형으로 변환하기 위한 맵핑을 사용하여 결정된다. 이들 양태는 픽셀 위치로부터 픽셀을 샘플링하는 것 및 샘플링된 픽셀을 포인트에 배치하는 것을 더 포함한다.
일부 양태들에서, 제 1 직사각형 영역을 맵핑하고 제 2 직사각형 영역을 맵핑하는 것은 구체형 표현 상에서 포인트를 선택하는 것, 및 포인트에 대응하는 비디오 프레임에서의 픽셀 위치를 결정하는 것을 포함하며, 픽셀 위치는 원을 정사각형으로 변환하기 위한 맵핑을 사용하여 결정된다. 이들 양태는 픽셀 위치로부터 픽셀을 샘플링하는 것 및 샘플링된 픽셀을 포인트에 배치하는 것을 더 포함한다. 일부 양태들에서, 원을 정사각형으로 변환하기 위한 맵핑은 제 1 직사각형 영역 또는 제 2 직사각형 영역에서의 비디오 데이터가 제 1 직사각형 영역 또는 제 2 직사각형 영역을 채우도록 확장될 때 야기되는 왜곡을 역전시킨다. 일부 양태들에서, 제 1 직사각형 영역을 맵핑하고 제 2 직사각형 영역을 맵핑하는 것은 점진적 곡선 함수를 사용하여 픽셀 위치를 조정하는 것을 더 포함한다. 일부 양태들에서, 점진적 곡선 함수는 하나 이상의 추가적 직사각형 영역들 중 적어도 하나에 인접하는 영역에서의 픽셀 위치들에서 사용된다. 일부 양태들에서, 점진적 곡선 함수는 제 1 직사각형 영역 또는 제 2 직사각형 영역의 중간 영역을 향해 픽셀 위치들을 덜 변화시키고, 제 1 직사각형 영역 또는 제 2 직사각형 영역의 외부 영역을 향해 픽셀 위치들을 더 변화시킨다.
일부 양태들에서, 방법들, 장치 및 컴퓨터 판독가능 매체는 비디오 프레임의 하나 이상의 추가적 직사각형 영역들을 구체형 표현의 중간 영역에 맵핑하는 것을 더 포함한다. 일부 양태들에서, 하나 이상의 추가적 직사각형 영역들은 좌측 뷰, 정면 뷰 및 우측 뷰를 포함하고, 좌측 뷰는 정면 뷰에 인접하여 위치되고, 우측 뷰는 정면 뷰에 인접한다.
일부 양태들에서, 하나 이상의 추가적 직사각형 영역들은 후면 뷰를 포함하고, 제 1 직사각형 영역은 후면 뷰에 인접하고, 제 2 직사각형 영역은 후면 뷰에 인접한다.
일부 양태들에서, 제 1 직사각형 영역을 상부 영역에 맵핑하는 것은 제 1 직사각형 영역이 하나 이상의 추가적 직사각형 영역들로부터의 제 3 직사각형 영역에 인접해 있는 영역에 점진적 조정을 적용하는 것을 포함하고, 제 2 직사각형 영역을 하부 영역에 맵핑하는 것은 제 2 직사각형 영역이 하나 이상의 추가적 직사각형 영역들로부터의 제 4 직사각형 영역에 인접해 있는 영역에 점진적 조정을 적용하는 것을 포함한다.
이 개요는 청구된 대상의 핵심 또는 본질적 특징들을 식별하기 위해 의도된 것이 아니며, 청구된 대상의 범위를 결정하는데 단독으로 사용되도록 의도된 것도 아니다. 청구대상은 이 특허의 전체 명세서, 임의의 또는 모두 도면들, 및 각각의 청구항의 적절한 부분들을 참조하여 이해되어야 한다.
전술한 바는, 다른 특징들 및 실시형태들과 함께, 다음의 상세한 설명, 청구범위, 및 첨부 도면들을 참조할 시 더 명확하게 될 것이다.
특허 또는 출원 파일은 컬러로 작성된 적어도 하나의 도면을 포함한다. 컬러 도면(들)이 포함된 이러한 특허 또는 공개 특허 출원의 사본은 요청 시 필요한 비용을 지불하면 사무국이 제공할 것이다.
본 발명의 예시적인 실시형태들이 이하 도면들을 참조하여 상세히 설명된다.
도 1a 는 360-도 비디오 프레임의 등장방형 투영을 포함하는 비디오 프레임을 예시한다.
도 1b 는 360-도 비디오 프레임의 큐브 맵 투영을 포함하는 비디오 프레임을 예시한다.
도 2a 는 수직 맵핑에 대한 구체의 표면의 세그먼트화된 구체형 투영을 예시하는 도면이다.
도 2b 는 세그먼트화된 구체형 투영을 사용하여 생성될 수 있는 맵핑의 3 x 2 배열을 사용하여 생성된 예시적인 비디오 프레임을 예시하는 도면이다.
도 3 은 원을 정사각형에 맵핑하고 정사각형을 원에 맵핑하는 예를 예시하는 도면이다.
도 4 는 정사각형을 원에 맵핑하고 원을 정사각형에 맵핑하는 수개의 기술들에 대한 일 예의 출력을 예시하는 도면이다.
도 5a 및 도 5b 는 각을 이룬 피쉬아이 투영을 사용하여 맵핑되었던 구체형 비디오 데이터의 극 영역들의 예들을 예시하는 도면들이다.
도 6a 및 도 6b 는 본원에 논의된 기술을 사용하여 맵핑되었던 구체형 비디오 데이터의 극 영역들의 예들을 예시하는 도면들이다.
도 7 은 세그먼트화된 구체형 투영 및 본원에 논의된 기술을 사용하여 360-도 비디오 프레임을 맵핑하는 것에 의해 생성된 비디오 프레임의 예를 도시한다.
도 8 은 위에 논의된 점진적 트랜지션 기술을 사용하지 않고 맵핑되었던 제 1 부분 비디오 프레임 및 점진적 트랜지션 기술에 따라 맵핑되었던 제 2 부분 비디오 프레임의 예를 예시한다.
도 9 는 함수의 출력들이 플롯된 그래프를 예시한다.
도 10 은 본원에 논의된 기술들을 사용하여 비디오 데이터를 프로세싱하는 프로세스의 일 예를 예시하는 흐름도이다.
도 11 은 본원에 논의된 기술들을 사용하여 비디오 데이터를 프로세싱하는 프로세스의 일 예를 예시하는 흐름도이다.
도 12 는 예시적인 인코딩 디바이스를 도시하는 블록도이다.
도 13 은 예시적인 디코딩 디바이스를 도시하는 블록도이다.
본 개시의 소정의 양태들 및 실시형태들이 이하에 제공된다. 이들 양태들 및 실시형태들 중 일부는 독립적으로 적용될 수도 있고 그들 중 일부는 당업자들에게 명백할 바와 같이 조합하여 적용될 수도 있다. 다음의 설명에서, 설명의 목적들로, 특정 상세들이 본 발명의 실시형태들의 철저한 이해를 제공하기 위하여 제시된다. 그러나, 다양한 실시형태들이 이들 특정 상세들 없이 실시될 수도 있다는 것이 명백할 것이다. 도면들 및 설명은 제한적인 것으로 의도되지 않는다.
다음의 설명은 예들을 단지 제공하고, 본 개시의 범위, 적용가능성, 또는 구성을 한정하도록 의도되지 않는다. 오히려, 다양한 예들의 다음의 설명은 임의의 예들을 구현하기 위한 가능한 설명을 당업자들에게 제공할 것이다. 첨부된 청구항들에 제시된 바와 같이 본 발명의 사상 및 범위로부터 벗어남 없이 엘리먼트들의 기능 및 배열에 다양한 변경들이 행해질 수도 있음을 이해해야 한다.
특정 상세들이 예들의 철저한 이해를 제공하기 위해 다음의 설명에서 주어진다. 그러나, 예들은 이들 특정 상세들 없이 실시될 수도 있음이 당업자에 의해 이해될 것이다. 예를 들면, 회로들, 시스템들, 네트워크들, 프로세스들, 및 다른 컴포넌트들은, 예들을 불필요한 상세로 모호하게 하지 않기 위하여 블록 다이어그램 형태의 컴포넌트들로서 도시될 수도 있다. 다른 인스턴스들에서, 잘 알려진 회로들, 프로세스들, 알고리즘들, 구조들, 및 기법들은 예들을 모호하게 하는 것을 회피하기 위하여 불필요한 상세 없이 도시될 수도 있다.
또한, 개개의 예들은 플로우차트, 플로우 다이어그램, 데이터 플로우 다이어그램, 구조 다이어그램, 또는 블록 다이어그램으로서 도시되는 프로세스로서 설명될 수도 있음에 유의한다. 플로우차트가 동작들을 순차적 프로세스로서 설명할 수도 있지만, 동작들 대부분은 병렬로 또는 동시에 수행될 수 있다. 추가로, 동작들의 순서는 재배열될 수도 있다. 프로세스는 그의 동작들이 완료되면 종료되지만, 도면에 포함되지 않은 추가적인 단계들을 가질 수 있다. 프로세스는 방법, 함수, 절차, 서브루틴, 서브프로그램 등에 대응할 수도 있다. 프로세스가 함수에 대응할 때, 그의 종료는 그 함수의 호출 함수 또는 메인 함수로의 복귀에 대응할 수 있다.
용어 "컴퓨터 판독가능 매체" 는 휴대용 또는 비-휴대용 저장 디바이스들, 광학 저장 디바이스들, 및 명령(들) 및/또는 데이터를 저장, 포함, 또는 반송 가능한 다양한 다른 매체들을 포함하지만 이들에 한정되지 않는다. 컴퓨터 판독가능 매체는 데이터가 저장될 수 있고 무선으로 또는 유선 접속들을 통해 전파하는 일시적 전자 신호들 및/또는 반송파들을 포함하지 않는 비일시적 매체를 포함할 수도 있다. 비일시적 매체의 예들은 자기 디스크 또는 테이프, 콤팩트 디스크 (CD) 또는 디지털 다기능 디스크 (DVD) 와 같은 광학 저장 매체들, 플래시 메모리, 메모리 또는 메모리 디바이스들을 포함할 수도 있지만, 이에 한정되지 않는다. 컴퓨터 판독가능 매체는 절차, 함수, 서브프로그램, 프로그램, 루틴, 서브루틴, 모듈, 소프트웨어 패키지, 클래스, 또는 명령들, 데이터 구조들, 또는 프로그램 스테이트먼트들의 임의의 조합을 나타낼 수도 있는 코드 및/또는 머신 실행가능 명령들을 저장하고 있을 수도 있다. 코드 세그먼트는, 정보, 데이터, 인수 (argument) 들, 파라미터들, 또는 메모리 컨텐츠들을 전달 및/또는 수신함으로써 다른 코드 세그먼트 또는 하드웨어 회로에 커플링될 수도 있다. 정보, 인수들, 파라미터들, 데이터 등은 메모리 공유, 메시지 전달, 토큰 전달, 네트워크 송신 등을 포함한 임의의 적합한 수단을 통해 전달, 포워딩, 또는 송신될 수도 있다.
더욱이, 다양한 예들은 하드웨어, 소프트웨어, 펌웨어, 미들웨어, 마이크로코드, 하드웨어 기술 언어들, 또는 이들의 임의의 조합에 의해 구현될 수도 있다. 소프트웨어, 펌웨어, 미들웨어 또는 마이크로코드로 구현될 때, 필요한 태스크들을 수행하기 위한 프로그램 코드 또는 코드 세그먼트들 (예를 들어, 컴퓨터 프로그램 제품) 은 컴퓨터 판독가능 또는 머신 판독가능 매체에 저장될 수도 있다. 프로세서(들)는 필요한 태스크들을 수행할 수도 있다.
가상 현실 (VR) 은 겉보기에 현실적이거나 또는 물리적인 방식 안에서 상호작용될 수 있는 3-차원, 컴퓨터-생성된 환경을 설명한다. 일부 경우들에서, 가상 현실 환경을 경험하는 사용자는 전자 장비, 이를 테면 헤드 장착 디스플레이 (HMD) 그리고 옵션으로는 또한 센서가 달린 글러브와 같은 착용할 수 있는 다른 물품들을 사용하여, 가상 환경과 상호작용한다. 사용자가 현실 세계에서 움직이면, 가상 환경에서 렌더링된 이미지들도 변경되어, 가상 환경 내에서 사용자가 움직이고 있다는 지각을 사용자에게 준다. 일부 경우들에서, 가상 환경은 사용자의 움직임들과 상관되는 사운드를 포함하여, 사운드들이 특정한 방향 또는 소스에서 발생했다는 인상을 사용자에게 준다. 가상 현실 비디오는 매우 높은 품질로 캡처 및 렌더링될 수 있어, 잠재적으로 진정 몰입형 가상 현실 경험을 제공한다. 가상 현실 애플리케이션들은, 다른 것들 중에서, 게이밍, 훈련, 교육, 스포츠 비디오, 및 온라인 쇼핑을 포함한다.
360-도 비디오는 가상 현실 환경에서 디스플레이를 위해 캡처된 비디오이다. 예를 들어, 360-도 비디오의 프레임은 주어진 점에서 보이는 풀 360 도를 포함할 수 있어, 프레임이 점 상에 센터링된 구의 전부 또는 일부에 대한 픽셀들을 포함한다. 360-도 비디오 데이터는 또한, 각각의 360-도 비디오 프레임이 캡처된 픽셀들의 구로서 시각화될 수 있도록, 360-도 비디오가 모든 방향들에서 뷰를 캡처하기 때문에, 구형 비디오로 지칭될 수 있다. 360-도 비디오의 프레임은 컴퓨터-생성될 수 있고, 허구 환경들을 제시하는데 사용될 수도 있다. 일부 애플리케이션들에서, 현실 세계로부터의 비디오는 가상 현실 환경의 프리젠테이션에서 사용될 수 있다. 이들 애플리케이션들에서, 사용자는, 사용자가 현재 로케이션을 경험할 수 있는 것과 동일한 방식으로 다른 로케이션을 경험할 수 있다. 예를 들어, 사용자는 샌프란시스코에 위치하고 있는 360-도 비디오 시스템을 사용하면서 베를린의 도보 여행을 경험할 수 있다.
360-도 비디오 시스템은 비디오 캡처 디바이스 및 비디오 디스플레이 디바이스, 및 가능하게는 또한 서버들, 데이터 스토리지, 및 데이터 송신 장비와 같은 다른 중간 디바이스들을 포함할 수 있다. 비디오 캡처 디바이스는 카메라 세트, 즉 각각 상이한 방향으로 배향되고 상이한 뷰를 캡처하는 다중 카메라들의 세트를 포함할 수도 있다. 다양한 애플리케이션들에서, 2 내지 6 개의 카메라들이 카메라 세트의 로케이션 상에 센터링된 풀 360-도 뷰를 캡처하는데 사용될 수 있다. 일부 비디오 캡처 디바이스들은, 예를 들어 주로 사이드-대-사이드 (side-to-side) 뷰들을 캡처하는 비디오 캡처 디바이스들과 같이 적은 수의 카메라들을 사용할 수도 있다. 비디오는 프레임들을 포함하고, 여기서 프레임은 장면의 전자적으로 코딩된 스틸 이미지이다. 카메라들은 초당 소정 수의 프레임들을 캡처하는데, 이는 카메라의 프레임 레이트로 지칭된다.
일부 경우들에서, 심리스한 360-도 뷰를 제공하기 위해, 카메라 세트 내의 각각의 카메라들에 의해 캡처된 비디오는 이미지 스티칭을 받는다. 360-도 비디오 생성의 경우에서의 이미지 스티칭은 인접한 카메라들로부터의 비디오 프레임들을, 그 비디오 프레임들이 오버랩되거나 또는 다르게는 연결되는 에어리어에서 결합 또는 병합하는 것을 수반한다. 결과는 비디오 데이터의 대략 구형 프레임이다. 기존 비디오 시스템들과 통합하기 위해, 비디오 데이터의 구형 프레임은 평면 포맷으로 맵핑될 수 있다. 맵핑을 위해 Mercator 투영들을 생성하는데 사용되는 것들과 같은 기법들이 등장방형 포맷을 생성하는데 사용될 수 있다. 다른 예로서, 병합된 비디오 프레임 내의 픽셀들은 큐브 형상, 또는 일부 다른 3-차원, 평면 형상 (예를 들어, 피라미드, 8면체, 10면체 등) 의 평면들 상으로 맵핑될 수도 있다. 비디오 캡처 및 비디오 디스플레이 디바이스들은 래스터 원리 - 비디오 프레임이 픽셀들의 그리드로서 처리됨을 의미 - 에 입각하여 동작하므로, 정사각형 또는 직사각형 평면들이 통상적으로 구형 환경을 표현하는데 사용된다.
평면 표현으로 맵핑된 360-도 비디오 프레임들은 저장 및/또는 송신을 위해 인코딩 및/또는 압축될 수 있다. 인코딩 및/또는 압축은 비디오 코덱 (예를 들어, H.265 로도 또한 알려진 고효율 비디오 코딩 (HEVC) 표준과 호환되는 코덱, 또는 H.264 로도 또한 알려진 어드밴스드 비디오 코딩 표준, 또는 다른 적합한 코딩 표준과 호환되는 코덱) 을 사용하여 달성될 수 있고, 이는 인코딩된 및/또는 압축된 비디오 비트스트림 또는 비트스트림들의 그룹을 초래한다. 비디오 코덱을 사용하는 비디오 데이터의 인코딩은 이하에서 더 상세히 설명된다.
일부 구현들에서, 인코딩된 비디오 비트스트림(들)은 미디어 포맷 또는 파일 포맷으로 저장 및/또는 캡슐화될 수 있다. 저장된 비트스트림(들)은, 예를 들어, 네트워크를 통해, 디스플레이를 위해 비디오를 디코딩 및 렌더링할 수 있는 수신기 디바이스에 송신될 수 있다. 이러한 수신기 디바이스는 본 명세서에서 비디오 디스플레이 디바이스로 지칭될 수도 있다. 예를 들어, 360-도 비디오 시스템은 (예를 들어, 국제 표준 기구 (ISO) 베이스 미디어 파일 포맷 및/또는 파생 파일 포맷들을 사용하여) 인코딩된 비디오 데이터로부터 캡슐화된 파일들을 생성할 수 있다. 예를 들어, 비디오 코덱은 비디오 데이터를 인코딩할 수 있고 캡슐화 엔진은 하나 이상의 ISO 포맷 미디어 파일들에 비디오 데이터를 캡슐화하는 것에 의해 미디어 파일들을 생성할 수 있다. 대안적으로 또는 추가적으로, 저장된 비트스트림(들)은 저장 매체로부터 수신기 디바이스에 직접 제공될 수 있다.
수신기 디바이스는 또한 인코딩된 비디오 비트스트림을 디코딩 및/또는 압축해제하기 위한 코덱을 구현할 수 있다. 인코딩된 비디오 비트스트림(들)이 미디어 포맷 또는 파일 포맷으로 저장 및/또는 캡슐화되는 경우들에서, 수신기 디바이스는 비디오 비트스트림을 파일 (또는 파일들) 로 팩킹하는데 사용되었던 미디어 또는 파일 포맷을 지원할 수 있고, 비디오 (및 가능하게는 또한 오디오) 데이터를 추출하여 인코딩된 비디오 데이터를 생성할 수 있다. 예를 들어, 수신기 디바이스는 미디어 파일들을 캡슐화된 비디오 데이터로 파싱하여 인코딩된 비디오 데이터를 생성할 수 있고, 수신기 디바이스 내의 코덱은 인코딩된 비디오 데이터를 디코딩할 수 있다.
수신기 디바이스는 그 후 디코딩된 비디오 신호를 렌더링 디바이스 (예를 들어, 비디오 디스플레이 디바이스, 플레이어 디바이스, 또는 다른 적합한 렌더링 디바이스) 로 전송할 수 있다. 렌더링 디바이스들은, 예를 들어, 헤드 장착 디스플레이들, 가상 현실 텔레비전들, 및 다른 180 또는 360-도 디스플레이 디바이스들을 포함한다. 일반적으로, 헤드 장착 디스플레이는 착용자의 머리의 움직임 및/또는 착용자의 눈의 움직임을 추적 가능하다. 헤드 장착 디스플레이는 추적 정보를 사용하여 착용자가 보고 있는 방향에 대응하는 360-도 비디오의 부분을 렌더링할 수 있어, 착용자는 그녀가 현실 세계를 경험하는 것과 동일한 방식으로 가상 환경을 경험한다. 렌더링 디바이스는 비디오가 캡처된 것과 동일한 프레임 레이트로 또는 상이한 프레임 레이트로 비디오를 렌더링할 수도 있다.
투영들 및 맵핑들은 2-차원 (2-D) 맵들 상에 3-차원 (3-D) 표면들을 표현하는데 사용된다. 예를 들어, 360-도 비디오 애플리케이션들에서, 투영들 및 맵핑들은, 카메라로부터 모든 방향들에서 픽셀들을 캡처하고 따라서 구로서 시각화될 수 있는 360-도 비디오 프레임을 2-차원 비디오 프레임 상으로 맵핑하는데 사용될 수 있다. 2-차원 투영들의 예들은 다른 것들 중에서, 등장방형 (ERP) 투영 및 큐브 맵 (CMP) 투영을 포함한다. 도 1a 는 360-도 비디오 프레임의 등장방형 투영을 포함하는 비디오 프레임 (110) 을 예시한다. 등장방형 투영은 구체 상의 점들의 위도 및 경도를 비디오 프레임 (110) 에서의 (x,y) 좌표들로 선형 맵핑함으로써 구체 상의 점들을 2-차원 맵으로 맵핑한다. 등장방형 투영은 360-도 비디오 프레임으로부터 2-차원 비디오 프레임 (110) 으로의 모든 픽셀들을 포함 가능하고, 따라서 비디오 프레임 (110) 의 하나의 에어리어로부터 다른 에어리어로의 트랜지션들이 심리스하다. 심리스한 트랜지션들은, 인코딩된 비디오 프레임의 사이즈의 관점에서, 등장방형 비디오 프레임이 효율적으로 인코딩할 수도 있음을 의미한다. 이것은 비디오 프레임들 간의 모션이 연속적인 것으로 나타날 때 모션 추정 및 모션 보상과 같은 동작들이 더 나은 결과들을 생성하기 때문이다.
도 1b 는 360-도 비디오 프레임의 큐브 맵 투영을 포함하는 비디오 프레임 (120) 을 예시한다. 큐브 맵 투영은 구의 표면 상의 점들을 구체 표면에 접하는 평면들 상의 점들에 프로젝팅한다. 즉, 픽셀들은 큐브의 6 개의 면들에 피팅되고, 큐브의 높이, 폭, 및 길이는 큐브가 구체 내에 피팅하도록 존재할 수 있다. 도 1b 의 예는 3 x 2 배열; 즉, 가로 3 개의 큐브 면들 및 높이 2 개의 큐브 면들이다. 3 x 2 배열은 효율적으로 인코딩할 수 있는 애스펙트 비를 초래한다. 예를 들어, 1 x 2 와 같은 배열이 사용되는 경우보다 픽셀들의 라인 당 더 적은 데이터가 저장될 필요가 있다.
도 1b 의 예의 비디오 프레임 (120) 에서, 앞을 향하는 전방 면 (122) 으로 간주될 수 있는 큐브 면은 비디오 프레임 (120) 의 상측 절반의 중간에 배치된다. 전방 면의 우측 및 좌측에 대한 큐브 면들 (예를 들어, 우측 면 (124) 및 좌측 면 (126)) 은 비디오 프레임 (120) 의 상측 절반의, 우측 측면 및 좌측 측면에 각각 배치된다. 후방 면 (128) 으로 간주될 수 있는 큐브 면은 -90 도 회전되고 비디오 프레임 (120) 의 하측 절반의 중심에 배치된다. 위쪽을 향한 또는 상부 면 (130) 으로 간주될 수 있는 큐브 면은 후방 면 (128) 의 우측에 배치되고, 또한 상부 면 (130) 의 에지가 후방 면 (128) 의 에지에 매칭하도록 회전된다. 아래쪽 또는 하부 면 (132) 으로 간주될 수 있는 큐브 면은 후방 면 (128) 의 좌측에 배치되고, 후방 면 (128) 의 에지에 매칭하도록 회전된다.
도 1b 의 예에서, 전방 면 (122) 에 포함된 픽셀들은 뷰어 바로 앞에 배치될 뷰로서 선택되었다. 다른 예들에서는, 비디오 데이터의 상이한 부분이 전방 뷰인 것으로 선택될 수 있다. 추가적으로, 도 1b 의 예의 비디오 프레임 (120) 에서 예시되는 큐브 면들의 배열은 하나의 예의 배열이다. 다른 배열들이 또한 가능하다.
큐브 맵 투영은, 큐브 면들의 에지에서 발생하는 픽셀 데이터의 일부 압축으로 인해, 등장방형 투영보다 더 콤팩트할 수 있다. 큐브 맵은 또한, 이미지의 더 적은 왜곡을 생성하며, 이는 코딩 효율을 향상시킬 수 있다.
다른 투영은 세그먼트화된 구체형 투영 (segmented sphere projection; SSP) 이라 지칭된다. 세그먼트화된 구체형 투영은 "Algorithm descriptions of projection format conversion and video quality metrics in 360Lib" (JVET-E1003, Jan. 2017) 에 설명되어 있으며, 이는 전체적으로 그리고 모든 목적상 본원에 참조로서 포함된다. 도 2a 는 세그먼트화된 구체를 따라 생성된 예시의 2 차원 수직 맵핑 (210) 에 대한 구체 (202) 의 표면의 세그먼트화된 구체형 투영을 예시하는 도면이다. 세그먼트화된 구체형 투영은 구체를 3 개의 세그먼트들, 즉 북극 세그먼트 (204), 남극 세그먼트 (208) 및 적도 세그먼트 (206) 로 분할한다. 북극 및 남극 세그먼트는 또한 본 원에서 구체 극 또는 구체 극 세그먼트로 지칭된다. 예시된 예에서, 3 개의 세그먼트들은 (예를 들어, 구체 (202) 의 중심으로부터의 척도로서) 북쪽 45도 및 남쪽 45 도의 위도에서 분할된다. 다른 실시형태들에서, 3 개의 세그먼트들이 상이한 위도의 각도에서 분할될 수 있다.
도 2a 에 예시된 예시의 2 차원 맵핑 (210) 에서, 북극 세그먼트 (204) 에 의해 커버되는 영역은 제 1 원형 영역에 맵핑되며, 이는 상부 뷰 (214) 로 지칭될 것이다. 이와 유사하게, 남극 세그먼트 (208) 에 의해 커버되는 영역은 제 21 원형 영역에 맵핑되며, 이는 하부 뷰 (218) 로 지칭될 것이다. 이 예에서, 하부 뷰 (218) 는 상부 뷰 (214) 의 옆에 그리고 아래에 맵핑 (210) 에 배치된다. 상부 뷰 (214) 및 하부 뷰 (21) 는 또한 각각 면 0 및 면 1 로 라벨링된다. 적도 세그먼트 (206) 는 4 개의 동일한 세그먼트로 분할되고, 각각의 세그먼트는 정사각형 영역에 맵핑되고, 이 영역은 하부 뷰 (218) 아래에 연달아 (one below the other) 맵핑 (210) 에 배치된다. 이 예의 목적을 위해, 적도 영역 (206) 의 정사각형 영역은 상부로부터 하부까지 좌측 뷰 (216a), 정면 뷰 (216b), 우측 뷰 (216c) 및 휴면 뷰 (216d) 또는 면 2, 면 3, 면 4, 및 면 5 로 각각 지칭될 것이다. 다른 예들에서, 좌측, 우측, 정면 및 후면 뷰들은 여기에 설명된 것과 다른 순서로 배열될 수 있다. 다른 예들에서, 적도 세그먼트 (206) 가 맵핑되는 영역들은 정사각형이 아닐 수도 있다. 예를 들어, 45도 이외의 각도를 사용하여 극 영역을 묘사하는데 사용될 때 정사각형이 아닌 직사각형 영역은 픽셀 데이터에 더 잘 맞을 수 있으며 이 예에서 데이터가 정사각형에 맵핑된 경우보다 더 적은 왜곡을 초래할 수도 있다.
비디오 애플리케이션에서, 각각의 북극 세그먼트 (204) 및 남극 세그먼트 (208) 로부터의 픽셀들은 일반적으로 피쉬아이 투영으로 알려진 각도 투영을 사용하여 상부 뷰 (214) 및 하부 뷰 (218) 의 원형 영역에 맵핑될 수 있다. 이 예에서, 평면도 (214) 및 저면도 (218) 의 각각에서의 원형 영역의 직경은 90 도의 위도를 커버하는 각각의 뷰에 기인하여 각각의 적도 세그먼트의 에지와 동일하다. 좌측 뷰 (216a), 정면 뷰 (216b), 우측 뷰 (216c) 및 후면 뷰 (216c) 각각은 등장방형 투영을 생성하는데 사용 된 투영을 사용하여 생성될 수 있으며, 이는 이들 뷰 사이에서 비교적 매끄러운 트랜지션들을 야기할 수 있다.
도 2b 는 세그먼트화된 구체형 투영을 사용하여 생성될 수 있는 맵핑의 3 x 2 배열을 사용하여 생성된 예시적인 2차원 비디오 프레임 (220) 을 예시하는 도면이다. 예시적인 비디오 프레임 (220) 에서, 정면 뷰 (216b) 가 비디오 프레임 (220) 의 상측 절반부의 중간에 배치된다. 좌측 뷰 (216a) 및 우측 뷰 (216c) 는 각각 정면 뷰 (216b) 의 좌측 및 우측에 배치된다. 후방 뷰 (128) 는 -90도 회전되어 비디오 프레임 (220) 의 하측 절반부의 중앙에 배치된다. 상부 뷰 (212) 는 또한 상부 뷰의 좌측 에지가 후방 뷰 (216d) 의 우측 에지와 정렬되고 후방 뷰 (216d) 의 우측에 배치되도록 회전된다. 하부 뷰 (218) 는 또한 하부 뷰 (218) 의 우측 에지가 후방 뷰 (216d) 의 좌측 에지와 정렬되고 후방 뷰 (216d) 의 좌측에 배치되도록 회전된다. 이 예에서, "정렬"은 오리지널 구체 (202) 에 인접한 각각의 뷰로부터의 적어도 몇몇 픽셀들이 비디오 프레임 (220) 에 인접함을 의미한다. 이 예에서, 피쉬아이 투영의 외부에 있는 상부 뷰 (212) 및 하부 뷰 (218) 의 코너 영역들은 그레이 컬러로 채워진다. 다른 예에서, 이들 코너 영역은 다른 컬러로 채워질 수 있다.
세그먼트화된 구체형 투영은 등장방형 투영 또는 큐브 맵 투영을 사용하여 생성된 비디오 프레임보다 더 우수한 코딩 효율을 갖는 비디오 프레임을 생성할 수 있다. 예를 들어, 세그먼트화된 구체형 투영을 사용할 때 왜곡이 적고 더 매끄러운 트랜지션이 발생할 수 있으며, 이 둘 모두 코딩 효율을 향상시킬 수 있다.
그러나, 더 우수한 코딩 효율이 달성될 수 있다. 예를 들어, 상부 및 하부 뷰들에서, 코너 영역들은 픽셀 데이터를 캡처하지 않고, 따라서, 비디오 프레임의 컨텐츠들을 디스플레이할 때 필요하지 않은 비디오 프레임에 데이터를 추가한다. 이 추가 데이터는 일부 경우들에서, 동일한 수의 활성 픽셀들을 제공하면서 큐브 맵 투영을 사용할 때보다 더 큰 인코딩된 비디오 프레임을 초래할 수도 있다.
세그먼트화된 구체형 투영은 또한 몇 가지 새로운 문제를 도입한다. 예를 들어, 상부 및 하부 뷰들의 둘레는 좌측, 정면, 우측 및 후면 뷰들의 결합된 폭보다 더 짧다. 이 차이는 뷰가 디스플레이를 위해 재조립될 때, 북극 지역과 적도 지역, 그리고 적도 지역과 남극 지역 사이에 가시적인 경계를 초래할 수 있다.
다양한 구현들에서, 위에서 논의된 문제들을 회피하는 세그먼트화된 구체형 투영을 사용하여 360-도 비디오 데이터를 프로세싱하기 위한 시스템 및 방법이 제공된다. 다양한 구현들에서, 세그먼트화된 구체형 투영은 360-도 비디오 프레임을 2 차원의 직사각형 포맷으로 맵핑하는데 사용될 수 있으며, 이는 비디오 송신기 및 수신기가 보다 쉽게 취급될 수 있다. 이 맵핑을 생성함에 있어서, 세그먼트화된 구체형 투영의 원형 북극 및 남극 영역은 다양한 기술을 사용하여 확장되어 출력 비디오 프레임의 직사각형 영역을 채울 수 있다. 극 영역들을 직사각형 영역의 모든 코너들에 맵핑하는 것에 의해 출력 비디오 프레임에서 모든 사용가능한 픽셀들은 사용가능한 데이터를 포함할 수 있다. 또한, 상부 및 하부 뷰의 둘레는 결합된 좌측, 정면, 우측 및 후면 뷰의 전체 길이와 동일하게 이루어질 수 있으므로 상부 및 하부 뷰와의 경계에서 임의의 왜곡이나 아티팩트들을 감소시킬 수 있다. 더욱이, 극 영역을 확장시켜 생성된 추가적 픽셀들은 극 영역에서 픽셀들의 더 밀한 샘플링을 초래할 수 있고, 따라서 이 영역들에서의 더 정확한 표현을 초래할 수 있다.
위에 주지된 바와 같이, 세그먼트화된 구체형 투영의 적도 영역은 정방향 투영을 생성하는데 사용될 수 있는 기술과 같은 기술을 사용하여 출력 비디오 프레임의 하나 이상의 정사각형 또는 직사각형 영역에 맵핑될 수 있다. 적도 영역은 또한 원통형 등면적 (equal area) 투영과 같은 다른 투영들을 사용하여 맵핑될 수 있다. 원통형 등면적 투영들의 사용은 ____에 출원된 미국 출원 번호 ____ (대리인 도켓 넘버 173550) 에 추가로 논의되어 있으며, 이 출원은 그 전체가 참고로 본원에 포함된다.
세그먼트화된 구체형 투영의 적도 영역을 출력 비디오 프레임의 정사각형 또는 직사각형 영역에 맵핑하기 위하여, 원형을 정사각형에 맵핑하기 위한 기술들이 사용될 수 있다. 도 3 은 원 (302) 을 정사각형 (304) 에 맵핑하고 정사각형 (304) 을 원 (302) 에 맵핑하는 예를 예시하는 도면이다. 여러 기술들이 이러한 맵핑을 실현하기 위해 사용될 수 있으며, 그 중 일부는 M. Lambers 의 "Mappings between Sphere, Disc, and Square" (Journal of Computer Graphics Techniques, Vol. 5, No. 2, 2016) 에 설명되어 있으며, 그 전체 내용에서 및 모든 목적을 위해 참고로 본 명세서에 포함된다.
도 4 는 정사각형 (404) 을 원에 맵핑하고 원 (402) 을 정사각형에 맵핑하는 수개의 기술들에 대한 일 예의 출력을 예시하는 도면이다. 예시된 기술은 방사형 늘림 (412), Shirley 의 등면적 맵핑 (414), Fernandez-Gausti 의 스쿼클 맵핑 (416) (이는 본원에서 스쿼클 맵핑이라 지칭됨), 타원형 아크 맵핑 (418) 및 등각 맵핑 (420) 을 포함한다. 이들 및 다른 기술은 출력 맵핑의 다른 부분에서 다양한 왜곡 정도를 생성할 수 있다. 비디오 애플리케이션에서, 스쿼클 맵핑 (416) 또는 타원형 아크 맵핑 (418) 과 같이, 오리지널 이미지에 대해 최소한의 수정을 야기하는 기술이 사용된다. 오리지널 이미지를 최대한 많이 유지하는 것이 코딩 효율성에 유리할 수 있다.
Lambers 에서 논의된 기술 및 많은 다른 기술들이 원을 정사각형에 맵핑하는데 사용될 수 있지만, 스쿼클 맵핑 및 타원형 아크 맵핑은 360-도 비디오 데이터를 2차원 직사각형 포맷에 맵핑하기 위한 세그먼트화된 구체형 투영의 사용을 설명하는 예로 사용된다. 다른 예들에서, 다른 사각형-원형 맵핑 기술들이 사용될 수 있다.
스쿼클 맵핑은 다음 수학식들을 사용하여 정사각형-투-원형 맵핑을 제공한다:
Figure pct00001
식 (1) 및 (2) 에서, (x, y) 는 정사각형 내의 직교 좌표이고, (u, v) 는 원 내의 직교 좌표이다.
타원형 아크 맵핑은 다음 수학식들을 사용하여 정사각형-투-원형 맵핑을 제공한다:
Figure pct00002
360-도 비디오 프레임을 2 차원 직사각형 포맷으로 맵핑하는 것은 360-도 비디오 데이터의 3 차원 공간으로부터 출력 비디오 프레임의 2 차원 공간으로 변환하는 것을 포함한다. 이 변환을 실행하는 것은 출력 비디오 프레임에서 픽셀 위치 (m, n) 를 선택하고 구체형 비디오 데이터에서 포인트 (
Figure pct00003
, θ) 를 결정할 수 있다.랄 픽셀 샘플은 (
Figure pct00004
, θ) 로 지정된 포인트로부터 취출되어 출력 비디오 프레임의 포인트 (m, n) 에 배치될 수 있다.
일부 예들에서, 위에 논의된 바와 같이, 구체형 데이터의 극 영역들은 출력 비디오 프레임의 직사각형 영역에 맵핑될 수 있다. 이들 예에서, 정사각형의 치수는 AxA로 표기될 수 있다. 다른 예들에서, 직사각형 영역의 길이 및 폭은 서로 다를 수 있다.
비디오 프레임의 픽셀 위치들은 대부분 종종 래스터 순서로 제공되며, 0 번째 픽셀 포지션은 비디오 프레임의 좌측 상부 코너에 있다. 따라서, 3-D 공간에서 2-D 공간으로 변환하는 제 1 단계는 비디오 프레임에서의 좌표들 (m, n) 을 직교 좌표들 (x, y) 로 재정규화하는 것이다. 이는 다음 수학식을 사용하여 더 성립될 수 있다:
Figure pct00005
일 예에서, 수학식 (5) 및 (6) 은 스쿼클 맵핑에 의해 제공되는 정사각형-투-원형 수학식과 결합되어 원에서 직교 좌표 (u, v) 를 결정할 수 있다.
Figure pct00006
다른 예에서, 수학식 (5) 및 (6) 은 타원형 아크 맵핑에 의해 제공되는 정사각형-투-원형 수학식과 결합되어 원에서 (u, v) 를 결정할 수 있다.
Figure pct00007
다음 단계는 위의 예들 중 어느 것에서 결정된 바와 같이 또는 정사각형-투-원형 맵핑을 위한 다른 방법을 사용하여 (u, v) 에 대응하는 3 차원 극 좌표를 결정하는 것이다. 도 2a 에 예시된 바와 같이, 3차원 극 좌표는 반경, 적도 각도 (
Figure pct00008
)(예를 들어, 0 도인 것으로 선택된 포인트로부터 구체의 적도를 따르는 각도) 및 수직 각도 (θ)(예를 들어, 적도와 극들 중 한 극 사이의 각도) 를 포함한다. 북극 영역에 대한 극 좌표들 (도 2a 의 예에서 면 0) 은 다음 수학식을 사용하여 결정될 수 있다:
Figure pct00009
남극 영역에 대한 극 좌표들 (도 2a 의 예에서 면 1) 은 다음 수학식을 사용하여 결정될 수 있다:
Figure pct00010
북극 영역과 남극 영역 모두에 대해
Figure pct00011
이다.
도 5a 및 도 5b 는 각을 이룬 피쉬아이 투영을 사용하여 맵핑되었던 구체형 비디오 데이터의 극 영역들의 예들을 예시하는 도면들이며, 이 투영은 또한 원형 극 맵핑으로서 설명될 수 있다. 도 5a 는 남극 영역을 맵핑하는 것에 의해 획득된 하부뷰 (508) 를 도시한다. 도 5b 는 북극 영역을 맵핑하는 것에 의해 획득된 상부뷰 (504) 를 도시한다.
위에서 논의된 바와 같이, 피쉬아이 투영은 북극 및 남극 영역의 픽셀들이 픽셀들이 맵핑되는 정사각형 영역들 (526, 528) 내에서 원형 영역 (522, 524) 을 점유하게 한다. 픽셀이 원형으로 틀어지게 되는 것에 기인하여 일부 손실들이 발생할 수 있지만, 투영은 구체형 비디오 데이터로부터 대부분의 데이터를 보존할 수 있다. 또한, 각각의 정사각형 영역은 픽셀들이 구체형 비디오 데이터로부터의 픽셀 데이터에 의한 것보다는 그레이 또는 일부 다른 값으로 채워지는 코너 영역 (530) 을 갖는다. 인코딩될 때, 코너 영역들 (530) 은 비-비디오 데이터를 갖는 것에 기인하여 코딩 효율을 감소시킬 수 있다. 또한, 코너 영역 (530) 은 비디오 프레임이 디스플레이를 위해 재조립될 때 코너 영역 (530) 으로부터의 데이터가 폐기되므로, 불필요한 데이터를 추가한다.
도 6a 및 도 6b 는 위에 논의된 수학식을 사용하여 맵핑되었던 구체형 비디오 데이터의 극 영역들의 예들을 예시하는 도면들이다. 도 6a 는 하부뷰 (608) 를 예시하고 도 6b 는 상부뷰 (604) 를 예시한다. 하부 뷰 (608) 및 상부 뷰 (604) 는 각각 도 5a 및 도 5b 에 예시된 뷰들에 맵핑되었던 동일 데이터로 시작한다. 도 6a 및 도 6b 에서, 위의 수학식의 적용은 데이터가 각각의 정사각형 영역 (626, 628) 의 코너 영역 (630) 에 맞도록 늘려진다. 이들 예에서, 불필요한 비디오는 출력 비디오 프레임에 추가되지 않는다. 또한, 구체형 비디오 데이터로부터의 더 많은 픽셀 데이터는 데이터를 원형 영역으로 왑핑시키기보다는 데이터를 코너 영역 (630) 내로 늘리는 것에 의해 보존될 수 있다.
도 7 은 세그먼트화된 구체형 투영 및 본원에 논의된 수학식을 사용하여 360-도 비디오 프레임을 맵핑하는 것에 의해 생성된 비디오 프레임 (710) 의 예를 도시한다. 예시적인 비디오 프레임 (710) 은 좌측, 정면, 우측, 하부, 후면 및 상부 뷰의 3 x 2 배열을 포함한다. 비디오 프레임 (710) 의 상측 절반부에서, 좌측 뷰 (726), 정면 뷰 (722) 및 우측 뷰 (724) 는 연속 영역을 형성하기 위해 서로 나란히 배열된다. 비디오 프레임 (710) 의 하측 절반부에서, 후면 뷰 (728) 는 -90도 회전되어 중간에 배치된다. 이 예에서, 정면 뷰 (730) 에 대한 데이터는 후면 뷰 (728) 의 오른쪽에 있는 정사각형 영역에 맵핑되기 전에 45도만큼 회전된다. 이 예에서, 정면 뷰 (732) 에 대한 데이터는 후면 뷰 (728) 의 오른쪽에 있는 정사각형 영역에 맵핑되기 전에 45도만큼 회전된다.
비디오 프레임 (710) 의 하측 절반부에서의 하부 뷰 (732), 후면 뷰 (728) 및 정면 뷰 (730) 의 배열은 준연속 영역을 초래한다. 트랜지션이 급격할 때보다는 보다 콤팩트한 인코딩된 표현을 비디오 프레임의 인코딩이 초래할 수 있기 때문에, 각각의 뷰 사이의 매끄러운 트랜지션이 바람직하다. 다른 예들에서, 1 x 6 배열 또는 6 x 1 배열과 같은 뷰의 다른 배열이 사용될 수 있다. 대안적으로 또는 추가적으로, 다른 예들에서, 상부 및 하부 뷰들은 비디오 프레임 (710) 의 상부 또는 하부, 좌측 또는 우측, 또는 비디오 프레임 (710) 의 일부 다른 부분에 배치될 수 있다. 대안적으로 또는 추가적으로, 상이한 준-연속 영역들을 실현하기 위해 상부 및 하부 뷰가 비디오 프레임에 맵핑되기 전에 상부 및 하부 뷰의 다른 회전들이 적용될 수 있다.
비디오 프레임 (710) 의 픽셀들 사이의 연속성은 코딩 효율을 향상시킬 수 있고, 비디오 프레임 (710) 이 디스플레이를 위해 투영될 때 아티팩트 또는 가시적 결함의 발생을 또한 감소시킬 수 있다. 도 7 의 예시적인 비디오 프레임 (710) 에서, 상부 뷰 (730) 및 하부 뷰 (732) 의 코너 영역들 (750) 이 후면 뷰 (728) 를 만나는 경우 일부 불연속성이 명백해진다. 이 불연속성은 후면 뷰 (728) 및 정면 뷰 및 하부 뷰를 생성하기 위해 사용되는 상이한 방법들 및/또는 구체형 비디오 프레임으로부터 취해지는 데이터의 형상에서의 차이에 기인할 수 있다.
구체형 비디오 데이터로부터 픽셀들의 샘플링을 점진적이고 연속적으로 조정하는 것에 의해 코너 영역들 (750) 에 의해 야기된 불연속성이 감소될 수 있다. 예를 들어, 정면 뷰 (730) 를 취하는 것에 의해, (이 예에서) 후면 뷰 (728) 에 인접한 에지로부터 정면 뷰 (730) 의 우측을 향하여 점진적으로 구체형 데이터로부터 샘플들이 취출될 수 있다. 부가적으로, 샘플링 조정은 후면에서의 불연속성이 덜 명백한 중간을 향해서보다 상부 뷰 (730) 의 외부 에지를 향해 (예를 들어, 코너 영역 (750) 을 향해) 보다 더 적용될 수 있다. 하부 뷰 (732) 를 맵핑할 때 동일한 조정들이 적용될 수 있다.
여러 구현들에서, 픽셀들의 점진적 샘플링은 위에서 논의 된 2-D 에서 3-D 로의 변환을 조정하는 것을 포함한다. 예를 들어, 비디오 프레임에서 선택된 포인트 (m, n) 에 대응하는 직교 좌표 (x, y) 는 다음 수학식을 사용하여 결정될 수 있다:
Figure pct00012
앞에서와 같이, A 는 구체형 비디오 데이터가 맵핑되고 있는 정사각형 영역의 측면의 길이이다.
상부 뷰 (예를 들어, 면 0) 에 대해, x 좌표는 다음 수학식에 따라 조정될 수 있다:
Figure pct00013
후면 뷰 (예를 들어, 면 1) 에 대해, x 좌표는 다음 수학식에 따라 조정될 수 있다:
Figure pct00014
위의 수학식에서, b 는 픽셀 샘플링이 상부 또는 하부 뷰의 에지로부터 뷰의 중간을 향하여 변화하는 양을 변경하는데 사용될 수 있는 파라미터이다. b 에 대한 값을 선택하는 것은 아래 자세하게 논의된다. 일부 예들에서, b 에 대해 0.2 의 값은 정면 뷰의 중앙 영역에서의 픽셀들의 샘플링에 현저하게 영향을 주지 않고 후면 뷰와 정면 뷰 사이의 불연속성을 감소시킨다.
도 7 의 예에서, 하부 뷰 (728) 는 -90도 회전되기 때문에, x 축은 상하 방향이고 y 축은 좌우 방향임을 주지한다.
여러 구현들에서, y-좌표는 수학식 (17) 에 따라 결정되는 바와 같이 조정되지 않는다. 추가적으로, 쌍곡선 탄젠트 함수는 0 과 1 사이의 점진적 트랜지션을 생성하는 함수의 일 예로서 사용된다. 다른 예들에서, 다른 함수들, 이를 테면, 사인, 다항식 함수, 또는 점진적 트랜지션을 생성하는 다른 함수들이 사용될 수 있다.
여러 구현들에서, 조정된 x 값 및 y 값은 위에서 논의된 정사각형-투-원형 맵핑에서 추가로 사용될 수 있다. 도 8 은 위에 논의된 점진적 트랜지션 기술을 사용하지 않고 맵핑되었던 제 1 부분 비디오 프레임 (810) 및 점진적 트랜지션 기술에 따라 맵핑되었던 제 2 부분 비디오 프레임 (820) 의 예를 예시한다. 이 예에서, 상부 뷰 (830) 는 각각의 부분적 비디오 프레임의 상부에 나타나고, 하부 뷰 (832) 는 부분적 비디오 프레임의 하부에 있고, 후면 뷰 (828) 는 중간에 있다.
제 1 부분 비디오 프레임들 (810) 에서, 예를 들어, 몇 개의 불연속부들 (850) 이 원형화되어 있다. 이러한 불연속부들 (850) 은 상부 뷰 (830) 와 하부 뷰 (832) 가 후면 뷰 (828) 와 만나는 곳에서 발생한다. 불연속부들 (850) 은 수평 라인으로서 나타나며, 이는 비디오 프레임이 디스플레이를 위해 제시될 때 존재할 수 있다.
제 2 부분적 비디오 프레임 (820) 에서, 불연속부 (852) 의 영역이 또한 강조되지만, 조정된 x-좌표 수학식이 상부 뷰 (830) 및 하부 뷰 (832) 를 맵핑하는데 사용 되는 것에 기인하여 불연속성이 덜 명확해진다.
이 예에서 x 축이 수평 방향임을 주지한다. 또한, 이 예에서, x 좌표에 대한 조정은 제 2 부분적 비디오 프레임 (820) 의 상부 및 하부 에지에서가 아니라, 상부 뷰 (830) 및 하부 뷰 (832) 가 후면 뷰 (828) 를 만나는 곳에서만 적용된다. 다른 예들에서, 조정은 또한 프레임의 상부 및 하부 에지들에서도 적용될 수 있다.
위에 주지된 바와 같이, 파라미터 b 는 수학식 (18) 및 (19) 에서 x 가 감소 또는 증가함에 따라 x 좌표가 변화하는 정도를 조정하기 위해 사용된다. b 의 값이 클수록 예를 들어 후면 뷰로부터 상부 뷰로의 보다 급격한 트랜지션을 초래할 수 있고 (가능성있게 가시적인 불연속성을 초래하고) b의 값이 작을수록 보다 매끄러운 트랜지션을 초래할 수 있다. 그러나 b 값이 작으면 뷰의 중심을 향하여 더 많은 픽셀들이 영향을 받게 할 수 있다. 구체형 비디오 데이터에서의 픽셀들의 배향에 대해 가능한 가깝게 이들 픽셀들을 유지하는 것은 보다 양호한 코딩 효율을 초래하고 비디오 프레임이 디스플레이될 때 보다 양호한 외관을 초래할 수 있기 때문에 뷰의 중심에서의 픽셀들의 변경을 한정하는 것이 바람직할 수 있다.
b 에 대한 상이한 값들의 효과의 일 예로서, 도 9 는 (x', y) 가 상이한 b 의 값들 로 수학식 (18) 에 따라 플롯팅된 그래프 (900) 를 도시한다. 상단 뷰가 후면 뷰를 만나면 y = -1이고 후면과 반대편인 상단 뷰의 가장자리는 y = 1입니다. x'= 0 에서 점진적 샘플링이 비활성화되며, 이는 예를 들어, 스쿼클 또는 타원형 아크 맵핑이 적용함을 의미한다. x'=1 에서, 후면 뷰의 에지의 샘플링과 수학적으로 매칭하는 샘플링이 발생한다. 그래프 900 에서 최좌측 플롯은 b = 0.2 에 대한 것이다. 각각의 연속하는 플롯은 좌측에서부터 우측으로 이동하면서 b 를 0.1 씩 증가시킨다. 최우측 플롯은 b = 2.0 에 대한 것이다.
도 9 에 예시된 예에서 알 수 있는 바와 같이, b 가 증가함에 따라, 샘플링 조정은 뷰의 모든 픽셀들이 영향을 받을 때까지 상부 뷰에 대한 맵핑에 점점더 영향을 미친다. 이전에 주지된 바와 같이, 뷰의 중간 영역에서 샘플들을 변경하는 것은 출력 비디오 프레임의 코딩 효율에 악영향을 줄 수 있다. 그러나, b 의 값이 낮을수록 y 로의 변화가 빠르게 감소하여 조정이 특정 영역으로 제한된다.
위에 논의된 기술들에 따라 생성된 비디오 프레임은 저장 및/또는 송신을 위해 인코딩될 수 있다. 비디오 프레임은 이어서 디스플레이를 위해 디코딩될 수 있다. 비디오 프레임을 디스플레이하기 위해, 비디오 프레임의 픽셀들은 비디오 프레임의 2 차원 배열로부터 3 차원 표현, 예를 들어 구체형 데이터로 다시 맵핑될 수 있다. 그 후, 재구성된 구체형 데이터는 예를 들어 가상 현실 가능 디스플레이를 사용하여 디스플레이될 수 있다.
구체형 비디오 데이터를 재구성하기 위해, 비디오 프레임을 맵핑하는데 사용된 것으로부터의 역 동작이 적용될 수 있다. 예를 들어, 비디오 프레임으로부터의 좌측, 정면, 우측 및 후면 뷰들은 예를 들어 등장방형 투영을 생성하기 위해 사용된 투영의 역을 사용하여 세그먼트화된 구체형 투영의 적도 영역으로 다시 맵핑될 수 있다. 구체 상에서 포인트 (
Figure pct00015
, θ) (예를 들어, 수평 각도 및 수직 각도) 를 선택하는 것; 및 비디오 프레임에서 대응하는 포인트 (m, n) 를 결정하는 것에 의해 상부 및 하부 뷰를 북극 및 남극 지역으로 다시 맵핑 할 수 있다. 포인트 (m, n) 로부터 샘플링된 픽셀은 그 다음 (
Figure pct00016
, θ) 에 배치될 수 있다.
다음에 오는 예에서, 스쿼클 맵핑 및 타원형 아크 맵핑에 의해 제공되는 원형-투-정사각형 맵핑은 비디오 프레임의 사각형 영역에 저장된 픽셀 데이터를 원형 영역으로 변환하는 데 사용될 수 있는 기술들의 예로서 사용될 것이다. 다른 예들에서, 다른 원형-정사각형 맵핑 기술들이 사용될 수 있다.
상부 뷰 (예를 들어, 면 0) 에 대해,
Figure pct00017
Figure pct00018
이다. 극 좌표들 (
Figure pct00019
, θ) 로부터 직교 좌표 (u, v) 로 변환하기 위해, 다음 수학식들이 상부 뷰에 대해 사용될 수 있다:
Figure pct00020
하부 뷰 (예를 들어, 면 1) 에 대해,
Figure pct00021
Figure pct00022
이다. 극 좌표들 (
Figure pct00023
, θ) 로부터 직교 좌표 (u, v) 로 변환하기 위해, 다음 수학식들이 하부 뷰에 대해 사용될 수 있다:
Figure pct00024
다음으로, 포인트 (u, v) 가 주어지면, 비디오에서 대응하는 위치 (x, y) 가 결정될 수 있다. 제 1 예로서, 스쿼클 맵핑은 원형-투-정사각형 맵핑을 수행하기 위한 다음 수학식을 제공한다:
Figure pct00025
수학식 (26) 에서, sgn은 사인 함수이다.
제 2 예로서, 타원형 아크 맵핑은 원형-투-정사각형 맵핑을 수행하기 위한 다음 수학식을 제공한다:
Figure pct00026
마지막으로, (x, y) 좌표들은 비디오 프레임의 좌표계로 비정규화될 수 있다. 위에 주지된 바와 같이, (x, y) 는 직교 좌표인 반면, 비디오 프레임은 좌측 상부 코너를 점 (0, 0)으로 사용할 수 있다. 비디오 프레임의 (m, n) 좌표들에 대한 변환은 다음 수학식을 사용하여 결정될 수 있다:
Figure pct00027
스쿼클 맵핑 또는 타원형 아크 맵핑 (또는 다른 기술) 을 사용하여 결정된 위치 (m, n) 는 비디오 프레임으로부터 픽셀을 선택하는데 사용될 수 있다. 그 다음 픽셀은 비디오 프레임의 구체형 표현 상에 포인트 (
Figure pct00028
, θ) 에 맵핑될 수 있다.
다양한 구현들에서, 비디오 프레임의 일부 부분들의 점진적 조정은 뷰들 사이의 경계에서 정렬되지 않은 픽셀에 의해 야기되는 가시적 왜곡을 감소시키기 위해 적용될 수 있다. 예를 들어, 위에 논의된 기술들을 사용하여 점진적 조정이 수행될 수 있다. 이들 예에서 x 좌표는 다음 수학식을 사용하여 (x, y) 를 (m, n) 으로 변환하기 전에 조정될 수 있다.
Figure pct00029
이전에 주지된 바와 같이, 세그먼트화된 구체형 맵핑과 스 퀴클 또는 타원형 아크 맵핑의 조합을 사용하여 생성된 비디오 프레임은 세그먼트화된 구체형 맵핑만으로 생성된 비디오 프레임보다 더 효율적으로 인코딩할 수 있다. 예를 들어, 동일한 수의 2 차원 맵 샘플들에 대해, 스 쿼클 맵핑은 J. Boyce, E. Alshina, A. Abbas, Y. Ye 의 "JVET common test conditions and evaluation procedures for 360-degree video"(JVET-E1030) 에 설명된 바와 같이, 일반적인 테스트 조건 당 약 1 % 만큼 세그먼트화된 구체형 투영을 능가할 수 있으며, 이 문헌은 그 모든 목적을 위하여 그리고 그 전체적으로 본원에 참조로서 통합된다.
도 10 은 본원에 논의된 기술들을 사용하여 비디오 데이터를 프로세싱하는 프로세스 (1000) 의 일 예를 예시하는 흐름도이다. 1002 에서, 프로세스 (1000) 는 복수의 비디오 프레임들을 포함하는 360-도 비디오 데이터를 획득하는 것을 포함하고, 복수의 비디오 프레임들의 각각의 비디오 프레임은 비디오 프레임에 대한 비디오 데이터의 구체형 표현을 포함한다. 일부 예들에서, 360-도 비디오 데이터는 비디오 캡처 디바이스로부터 직접 획득될 수 있다. 이들 예에서, 구체형 표현은 다수의 직사각형 픽처들 또는 하나 이상의 피쉬아이 픽처들과 같이 동시에 캡처된 다수의 픽처들을 포함할 수 있다. 대안적으로 또는 추가적으로, 360-도 비디오 데이터는 비디오 캡처 디바이스 또는 다른 디바이스에 의해 함께 스티칭된 다수의 픽처가 있는 비디오 프레임들을 포함할 수 있다. 일부 예들에서, 직사각형 포맷 (예를 들어, 등장방형 또는 큐브 맵 포맷) 으로 획득된 360-도 비디오 데이터는 구체형 표현에 맵핑될 수 있다.
1004 에서, 프로세스 (1000) 는 비디오 플임을 복수의 비디오 프레임들로부터 상부 영역, 중간 영역 및 하부 영역으로 세그먼트화하는 것을 포함한다. 상부 영역은 구체형 표현의 제 1 원형 영역을 포함한다. 하부 영역은 제 1 원형 영역으로부터의 구체형 표현과 반대편인 구체형 표현의 제 2 원형 영역을 포함한다. 중간 영역은 상부 영역 또는 하부 영역에 포함되지 않는 구체형 표현의 영역을 포함한다. 비디오 프레임은 구체형 표현의 적도 위의 제 1 위도와 적도 아래의 제 2 위도에서 세그먼트화될 수 있다. 제 1 위도 및 제 2 위도는 적도로부터 등거리에 있을 수 있다. 일부 예들에서, 위도의 각도는 적도에서 45 도이다. 다른 예들에서, 위도의 각도는 45 도 보다 크거나 작다.
일부 구현들에서, 프로세스 (1000) 는 중간 영역을 출력 비디오 프레임의 하나 이상의 직사각형 영역들에 맵핑하는 것을 더 포함한다. 중간 영역을 맵핑하는 것은 예를 들어 출력 비디오 프레임에서 픽셀 위치를 선택하고 픽셀 위치에 대응하는 구체형 표현 상의 포인트를 결정하는 것을 포함할 수 있다. 이 예에서, 구체형 표현 상의 포인트는 2 차원 직사각형을 등장방형 투영과 같은 3 차원 구체로 변환하기 위한 맵핑을 사용하여 결정될 수 있다. 중간 영역을 맵핑하는 것은 구형 표현 상의 포인트에서의 픽셀을 샘플링하는 것, 및 샘플링된 픽셀을 비디오 프레임의 픽셀 위치에 배치하는 것을 더 포함할 수 있다.
1006 에서, 프로세스 (1000) 는 출력 비디오 프레임의 제 1 직사각형 영역에 상부 영역을 맵핑하는 것을 포함한다. 상부 영역을 맵핑하는 것은 제 1 직사각형 영역을 채우기 위해 제 1 원형 영역에 포함된 비디오 데이터를 확장하여, 제 1 직사각형 영역이 비디오 프레임으로부터의 픽셀들을 포함하지 않는 픽셀 위치들을 갖고 있지 않도록 하는 것을 포함할 수 있다.
1008 에서, 프로세스 (1000) 는 출력 비디오 프레임의 제 2 직사각형 영역에 하부 영역을 맵핑하는 것을 포함한다. 하부 영역을 맵핑하는 것은 제 2 직사각형 영역을 채우기 위해 제 2 원형 영역에 포함된 비디오 데이터를 확장하는 것을 포함할 수 있다.
상부 영역을 맵핑하는 것 및 하부 영역을 맵핑하는 것은 예를 들어 출력 비디오 프레임에서 픽셀 위치를 선택하고 픽셀 위치에 대응하는 구체형 표현 상의 포인트를 결정하는 것을 포함할 수 있다. 이 예에서, 구체형 표현 상의 포인트는 직사각형으로부터 원형으로 변환하기 위한 맵핑, 이를 테면, 스퀴클 맵핑 또는 타원형 아크 맵핑 또는 다른 맵핑을 사용하여 결정될 수 있다. 상부 영역 및 하부 영역을 맵핑하는 것은 구형 표현 상의 포인트로부터의 픽셀 샘플링하는 것, 및 샘플링된 픽셀을 출력 비디오 프레임에서의 픽셀 위치에 배치하는 것을 더 포함할 수 있다.
일부 예들에서, 정사각형을 원형으로 변환하기 위한 맵핑은 출력 비디오 프레임에서의 왜곡을 최소화한다. 이들 예에서, 제 1 및 제 2 직사각형 영역의 중심 영역은 구체형 표현으로부터 출력 비디오 프레임으로의 직접 맵핑을 포함하며, 그 결과 이 영역에 왜곡이 거의 초래되지 않는다.
일부 예들에서, 상부 영역 및 하부 영역을 맵핑하는 것은 점진적 곡선 함수를 사용하여 픽셀 위치를 조정하는 것을 더 포함할 수 있다. 점진적 곡선 함수는 예를 들어, 하나 이상의 직사각형 영역들 중 적어도 하나에 인접하는 영역에서의 픽셀 위치들에서 사용될 수 있다. 예를 들어, 제 1 직사각형 영역이 다른 직사각형 영역 (예를 들어, 중간 영역에 대한 직사각형 영역 중 하나) 에 인접하면, 점진적 곡선 함수가 적용될 수 있다. 다른 예로서, 제 2 직사각형 영역이 다른 직사각형 영역에 인접하면, 점진적 곡선 함수가 적용될 수 있다. 점진적 곡선 함수의 적용은 비디오 프레임에서 제 1 및 제 2 직사각형 영역이 다른 직사각형 영역과 만날 경우에 나타날 수 있는 왜곡을 감소시킬 수 있다. 점진적 곡선 함수는 제 1 직사각형 영역 또는 제 2 직사각형 영역의 중간 영역을 향해 픽셀 위치들을 덜 변화시킬 수 있고, 제 1 직사각형 영역 또는 제 2 직사각형 영역의 외부 영역을 향해 픽셀 위치들을 더 변화시킬 수 있다. 점진적 곡선 함수의 예에는 쌍곡선 탄젠트, 사인, 다항식 함수 및 기타 함수를 포함한다.
일부 예들에서, 중간 영역은 좌측 뷰, 정면 뷰 및 우측 뷰로 지정될 수 있는 부분들을 포함한다. 이들 예에서, 좌측 뷰로 지정된 부분은 정면 뷰로 지정된 부분에 인접한 출력 비디오 프레임에 배치될 수 있다. 추가적으로, 우측 뷰로 지정된 부분은 정면 뷰에 인접하여 배치된다. 이들 예에서, 좌측, 정면 및 우측 뷰는 출력 비디오 프레임에서 연속 영역을 형성할 수 있으며, 연속성은 구형 표현에서 인접한 픽셀이 출력 비디오 프레임에서 서로 인접하게 배치된다는 것을 의미한다.
일부 예들에서, 중간 영역은 후방 뷰로서 지정될 수 있는 부분들을 포함한다. 이들 예들에서, 하부 영역은 후방 뷰로서 지정된 부분에 인접한 출력 비디오 프레임에 배치될 수 있고, 상부 영역은 또한 후방 뷰에 인접하여 배치될 수 있다. 이들 예에서, 하부 영역 및 상부 영역은 실질적으로 연속하는 출력 비디오 프레임들에서의 영역을 형성할 수 있다.
일부 예들에서, 상부 영역을 제 1 직사각형 영역으로 맵핑하는 것은 제 1 직사각형 영역이 하나 이상의 직사각형 영역들로부터의 직사각형 영역에 인접한 영역에서 점진적 조정을 적용하는 것을 포함할 수 있다. 예를 들어, 제 1 직사각형 영역이 다른 직사각형 영역에 인접하는 경우, 구체형 비디오 데이터로부터 샘플링된 픽셀은 다른 직사각형 영역으로부터의 픽셀과 더 잘 정렬되도록 시프트될 수 있다. 이 점진적 조정은 제 1 직사각형 영역의 에지로부터 더 멀리 떨어진 픽셀 위치에 대해 점진적으로 감소될 수 있다. 일부 예들에서, 동일한 점진적 조정이 제 2 직사각형 영역에 적용될 수 있다.
일부 예들에서, 출력 비디오 프레임은 3 바이 2 애스펙트비를 갖는다. 3 바이 2 애스펙트 비는 다른 애스펙트 비보다 더 효율적으로 인코딩할 수 있다. 일부 예들에서, 출력 비디오 프레임은 예를 들어 저장 및/또는 송신을 위해 HEVC 또는 AVC 코덱 (또는 다른 코덱) 을 사용하여 인코딩될 수 있다.
도 11 은 본원에 논의된 기술들을 사용하여 비디오 데이터를 프로세싱하는 프로세스 (1100) 의 일 예를 예시하는 흐름도이다. 1102 에서, 프로세스 (1100) 는 복수의 비디오 프레임들을 포함하는 360-도 비디오 데이터를 획득하는 단계를 포함하고, 복수의 비디오 프레임들의 각각의 비디오 프레임은 비디오 프레임에 대한 비디오 데이터의 2-차원 표현을 포함한다. 일부 예들에서, 360-도 비디오 데이터는 인코딩된 비트스트림으로부터 획득될 수 있다. 인코딩된 비트스트림은 저장 위치로부터 판독될 수 있고/있거나 송신물로부터 수신될 수 있다. 이들 예에서, 비트스트림은 직사각형 비디오 프레임들로 디코딩될 수 있다.
1104 에서, 프로세스 (1100) 는 복수의 비디오 프레임들로부터 비디오 프레임의 제 1 직사각형 영역을 식별하는 것을 더 포함한다. 1106 에서, 프로세스 (1100) 는 제 1 직사각형 영역을 비디오 프레임에 대한 비디오 데이터의 구체형 표현의 상부 영역에 맵핑하는 것을 포함한다. 상부 영역은 구체형 표현의 제 1 원형 영역을 포함할 수 있다. 제 1 직사각형 영역을 맵핑하는 것은 제 1 직사각형 영역으로부터 제 1 원형 영역으로 비디오 데이터를 배열하는 것을 포함할 수 있다.
1108 에서, 프로세스 (1100) 는 비디오 프레임의 제 2 직사각형 영역을 식별하는 것을 더 포함한다. 1110 에서, 프로세스 (1100) 는 제 2 직사각형 영역을 구체형 표현의 하부 영역에 맵핑하는 것을 포함한다. 하부 영역은 구체형 표현의 제 2 원형 영역을 포함할 수 있다. 제 2 직사각형 영역을 맵핑하는 것은 제 2 직사각형 영역으로부터 제 2 원형 영역으로 비디오 데이터를 배열하는 것을 포함할 수 있다.
상부 영역은 예를 들어 구체형 표현의 제 1 위도 위에 있는 구체형 표현의 표면을 포함할 수 있다. 다른 예로서, 하부 영역은 구체형 표현의 제 2 위도 아래에 있는 구체형 표현의 표면을 포함할 수 있다. 이 예에서, 제 1 위도 및 제 2 위도는 구체형 표현의 적도로부터 등거리에 있을 수 있다. 일부 예들에서, 위도는 적도에서 45 도에 있다. 일부 예들에서, 위도의 각도는 45 도 보다 크거나 작은 각에 있다.
일부 예들에서, 제 1 직사각형 영역을 맵핑하고 제 2 직사각형 영역을 맵핑하는 것은 구체형 표현 상에서 포인트를 선택하는 것, 및 포인트에 대응하는 비디오 프레임에서의 픽셀 위치를 결정하는 것을 포함한다. 픽셀 위치는 원형으로부터 직사각형으로 변환하기 위한 맵핑, 이를 테면, 스퀴클 맵핑 또는 타원형 아크 맵핑 또는 다른 맵핑을 사용하여 결정될 수 있다. 이들 맵핑은 원이 압축되고 직사각형으로 변형되는 것을 초래할 수 있다. 제 1 및 제 2 직사각형 영역들을 맵핑하는 것은 픽셀 위치로부터 픽셀을 샘플링하는 것 및 구체형 표현 상에 포인트에서 샘플링된 픽셀을 배치하는 것을 더 포함할 수 있다.
일부 예들에서, 원을 정사각형으로 변환하기 위한 맵핑은 제 1 직사각형 영역 또는 제 2 직사각형 영역에서의 비디오 데이터가 제 1 직사각형 영역 또는 제 2 직사각형 영역을 채우도록 확장될 때 야기되는 왜곡을 역전시킨다. 예를 들어, 제 1 및 제 2 직사각형 영역은 360-도 비디오의 구체형 표현의 원형 영역을 직사각형 영역으로 변환하는 것에 의해 픽셀 데이터로 채워질 수도 있고, 이는 픽셀들의 일부 가시적인 왜곡을 초래할 수 있다. 픽셀들을 직사각형 형상으로부터 다시 원형 형상으로 맵핑하는 것에 의해 왜곡이 제거될 수 있다.
일부 예들에서, 제 1 직사각형 영역을 맵핑하고 제 2 직사각형 영역을 맵핑하는 것은 점진적 곡선 함수를 사용하여 픽셀 위치를 조정하는 것을 더 포함한다. 예를 들어, 점진적 곡선 함수는 하나 이상의 직사각형 영역들 중 적어도 하나에 인접하는 영역에서의 픽셀 위치들에서 사용될 수 있다. 이들 예에서, 픽셀이 구체형 표현에 맵핑될 때 제 1 또는 제 2 직사각형 영역에 인접한 픽셀들과 제 1 또는 제 2 직사각형 영역의 픽셀들 사이의 연속적인 트랜지션이 보전될 수 있다. 일부 예들에서, 점진적 곡선 함수는 제 1 직사각형 영역 또는 제 2 직사각형 영역의 중간 영역을 향해 픽셀 위치들을 덜 변화시키고, 제 1 직사각형 영역 또는 제 2 직사각형 영역의 외부 영역을 향해 픽셀 위치들을 더 변화시킨다.
일부 구현들에서, 프로세스 (1100) 는 비디오 프레임의 하나 이상의 추가적 직사각형 영역들을 구체형 표현의 중간 영역에 맵핑하는 것을 포함한다. 하나 이상의 추가적인 직사각형 영역들을 맵핑하는 것은 예를 들어, 구체형 표현 상에서 포인트를 선택하는 것, 및 포인트에 대응하는 비디오 프레임에서의 픽셀 위치를 결정하는 것을 포함할 수 있다. 픽셀 위치는 3차원 구체를 2차원 직사각형으로 변환하기 위한 맵핑, 이를 테면, 등장방형 투영, 큐브 맵 투영 또는 다른 투영을 사용하여 결정될 수 있다. 하나 이상의 추가적인 직사각형 영역들을 맵핑하는 것은 픽셀 위치로부터 픽셀을 샘플링하는 것 및 구체형 표현 상에 포인트에서 샘플링된 픽셀을 배치하는 것을 더 포함할 수 있다.
일부 예들에서, 하나 이상의 추가적인 직사각형 영역들은 좌측 뷰, 정면 뷰 및 우측 뷰로 지정될 수 있는 영역들을 포함한다. 이들 예에서, 좌측 뷰로 지정된 영역은 정면 뷰로 지정된 영역에 인접하여 위치될 수 있고, 우측 뷰로 지정된 영역은 정면 뷰에 인접하여 또한 위치될 수 있다. 이들 예들에서, 좌측, 정면 및 우측 뷰는 비디오 프레임에서 연속하는 영역을 형성할 수 있다.
일부 예들에서, 하나 이상의 추가적인 직사각형 영역들은 후면 뷰로 지정될 수 있는 영역을 포함한다. 이들 예에서, 제 1 직사각형 영역은 후면 뷰로 지정된 영역에 인접하여 위치될 수 있고, 제 2 직사각형 영역은 후면 뷰로 지정된 영역에 인접할 수 있다. 이들 예들에서, 제 1 직사각형 영역, 후면 뷰 및 제 2 직사각형 영역은 비디오 프레임에서 연속하는 영역을 형성할 수 있다.
일부 예들에서, 제 1 직사각형 영역을 상부 영역에 맵핑하는 것은 제 1 직사각형 영역이 다른 직사각형 영역에 인접해 있는 영역에서 점진적 조정을 적용하는 것을 포함할 수 있다. 이들 예들에서, 비디오 프레임에서의 픽셀 위치들이 시프트될 수 있어, 제 1 직사각형 영역과 제 2 직사각형 영역 사이의 연속하는 트랜지션이 생성되게 된다. 이 연속적인 트랜지션은 픽셀들이 비디오 프레임으로부터 구형 표현으로 맵핑될 때 점진적 조정을 적용하는 것에 의해 구형 표현에서 보존될 수 있다. 유사한 점진적 조정이 또한 제 2 직사각형 영역에 적용될 수 있다.
일부 예들에서, 프로세스들 (1000 및 1100) 은 비디오 코딩 디바이스 (예를 들어, 인코딩 디바이스 (104) 및/또는 디코딩 디바이스 (112)) 와 같은 장치 또는 컴퓨팅 디바이스에 의해 수행될 수도 있다. 비디오 코딩 디바이스는 예를 들어, 비디오 인코딩 시스템 및/또는 비디오 디코딩 시스템을 포함할 수 있다. 일부 경우들에서, 컴퓨팅 디바이스 또는 장치는 프로세스 (1000, 1100) 의 단계들을 수행하도록 구성되는 디바이스의 프로세서, 마이크로프로세서, 마이크로컴퓨터, 또는 다른 컴포넌트를 포함할 수도 있다. 일부 예에서, 컴퓨팅 디바이스 또는 장치는 비디오 프레임들을 포함하는 비디오 데이터 (예를 들어, 비디오 시퀀스) 를 캡처하도록 구성된 카메라를 포함할 수도 있다. 예를 들어, 컴퓨팅 디바이스는 비디오 코덱을 포함할 수도 있는 카메라 디바이스 (예를 들어, IP 카메라 또는 다른 유형의 카메라 디바이스) 를 포함할 수도 있다. 일부 예에서, 비디오 데이터를 캡처하는 카메라 또는 다른 캡처 디바이스는 컴퓨팅 디바이스로부터 분리되어 있으며, 이 경우 컴퓨팅 디바이스는 캡처된 비디오 데이터를 수신한다. 컴퓨팅 디바이스는 비디오 데이터를 통신하도록 구성된 네트워크 인터페이스를 더 포함할 수도 있다. 네트워크 인터페이스는 인터넷 프로토콜 (IP) 기반 데이터를 통신하도록 구성될 수도 있다.
프로세스들 (1000, 1100) 은 논리 흐름도로서 나타나 있고, 그의 동작들은 하드웨어, 컴퓨터 명령 또는 이들의 조합으로 구현될 수 있는 동작들의 시퀀스를 표현한다. 컴퓨터 명령들의 맥락에서, 그 동작들은 하나 이상의 프로세서들에 의해 실행될 때 열거된 동작들을 수행하는, 하나 이상의 컴퓨터 판독 가능 저장 매체에 저장된 컴퓨터 실행 가능 명령들을 나타낸다. 일반적으로, 컴퓨터 실행 가능 명령들은 특정 기능들을 수행하거나 또는 특정 데이터 유형을 구현하는 루틴, 프로그램, 오브젝트, 컴포넌트, 데이터 구조 등을 포함한다. 동작들이 기재되는 순서는 제한으로서 해석되게 의도되지 않으며, 기재된 동작들의 임의의 수는 임의의 순서 및/또는 병렬로 조합되어 프로세스를 구현할 수 있다.
추가적으로, 프로세스들 (1000 및 1100) 은 실행가능 명령들로 구성된 하나 이상의 컴퓨터 시스템들의 제어 하에서 수행될 수도 있고, 집합적으로 하나 이상의 프로세서 상에서 실행하는 코드 (예를 들어, 실행가능 명령들, 하나 이상의 컴퓨터 프로그램들, 또는 하나 이상의 애플리케이션들) 로서, 하드웨어에 의해, 또는 이들의 조합으로 구현될 수도 있다. 전술한 바와 같이, 코드는 예를 들어, 하나 이상의 프로세서에 의해 실행 가능한 복수의 명령을 포함하는 컴퓨터 프로그램의 형태로 컴퓨터 판독 가능 또는 머신 판독 가능 저장 매체에 저장될 수도 있다. 컴퓨터 판독가능 또는 머신 판독가능 저장 매체는 비일시적일 수도 있다.
카메라 (예를 들어, 피쉬아이 카메라 또는 다른 적절한 카메라 또는 카메라들) 에 의해 캡처된 비디오 데이터는 송신 및 저장을 위하여 요구되는 데이터량을 감소시키기 위해 코딩될 수도 있다. 코딩 기법들은 예시의 비디오 인코딩 및 디코딩 시스템에서 구현될 수도 있다. 일부 예에서, 시스템은, 목적지 디바이스에 의해 나중에 디코딩될 인코딩된 비디오 데이터를 제공하는 소스 디바이스를 포함한다. 특히, 소스 디바이스는, 컴퓨터 판독 가능 매체를 통해 목적지 디바이스로 비디오 데이터를 제공한다. 소스 디바이스 및 목적지 디바이스는 데스크탑 컴퓨터들, 노트북 (즉, 랩탑) 컴퓨터들, 태블릿 컴퓨터들, 셋탑 박스들, 소위 "스마트" 폰들과 같은 전화기 핸드셋들, 소위 "스마트" 패드들, 텔레비전들, 카메라들, 디스플레이 디바이스들, 디지털 미디어 플레이어들, 비디오 게이밍 콘솔들, 비디오 스트리밍 디바이스 등을 포함한 광범위한 디바이스들 중 임의의 디바이스를 포함할 수도 있다. 일부 경우들에 있어서, 소스 디바이스 및 목적지 디바이스는 무선 통신을 위해 장비될 수도 있다.
인코딩 시스템 및/또는 디코딩 시스템을 포함하는 비디오 코딩 시스템은 비디오 데이터를 인코딩 및/또는 디코딩하는데 사용될 수 있다. 일 예의 비디오 인코딩 및 디코딩 시스템은, 목적지 디바이스에 의해 나중에 디코딩될 인코딩된 비디오 데이터를 제공하는 소스 디바이스를 포함한다. 특히, 소스 디바이스는 비디오 데이터를, 컴퓨터 판독가능 매체를 통해 목적지 디바이스에 제공한다. 소스 디바이스 및 목적지 디바이스는, 데스크탑 컴퓨터들, 노트북 (즉, 랩톱) 컴퓨터들, 태블릿 컴퓨터들, 셋톱 박스들, 전화기 핸드셋 이를테면 소위 "스마트" 폰들, 소위 "스마트" 패드, 텔레비전들, 카메라들, 디스플레이 디바이스들, 디지털 미디어 재생기들, 비디오 게임용 콘솔들, 비디오 스트리밍 디바이스 등을 포함한, 광범위한 디바이스들 중 어느 것을 포함할 수도 있다. 일부 경우들에서, 소스 디바이스 및 목적지 디바이스는 무선 통신을 위해 설치될 수도 있다.
목적지 디바이스는 디코딩될 인코딩된 비디오 데이터를 컴퓨터 판독가능 매체를 통해 수신할 수도 있다. 컴퓨터 판독가능 매체는, 인코딩된 비디오 데이터를 소스 디바이스로부터 목적지 디바이스로 이동시킬 수 있는 임의의 타입의 매체 또는 디바이스를 포함할 수도 있다. 하나의 예에서, 컴퓨터 판독가능 매체는, 소스 디바이스로 하여금 인코딩된 비디오 데이터를 직접 목적지 디바이스로 실시간으로 송신할 수 있게 하는 통신 매체를 포함할 수도 있다. 인코딩된 비디오 데이터는, 무선 통신 프로토콜과 같은 통신 표준에 따라 변조되고, 목적지 디바이스에 송신될 수도 있다. 통신 매체는 무선 주파수 (RF) 스펙트럼 또는 하나 이상의 물리적 송신 라인들과 같은 임의의 무선 또는 유선 통신 매체를 포함할 수도 있다. 통신 매체는 로컬 영역 네트워크, 광역 네트워크, 또는 인터넷과 같은 글로벌 네트워크와 같은 패킷 기반 네트워크의 일부를 형성할 수도 있다. 통신 매체는 라우터들, 스위치들, 기지국들, 또는 소스 디바이스로부터 목적지 디바이스로의 통신을 용이하게 하는데 유용할 수도 있는 임의의 다른 장비를 포함할 수도 있다.
일부 예들에서, 인코딩된 데이터는 출력 인터페이스로부터 저장 디바이스로 출력될 수도 있다. 유사하게, 인코딩된 데이터는 입력 인터페이스에 의해 저장 디바이스로부터 액세스될 수도 있다. 저장 디바이스는 하드 드라이브, 블루-레이 디스크들, DVD들, CD-ROM들, 플래시 메모리, 휘발성 또는 비휘발성 메모리, 또는 인코딩된 비디오 데이터를 저장하기 위한 임의의 다른 적합한 디지털 저장 매체들과 같은 다양한 분산된 또는 로컬로 액세스된 데이터 저장 매체들 중 임의의 것을 포함할 수도 있다. 추가 예에서, 저장 디바이스는, 소스 디바이스에 의해 생성되는 인코딩된 비디오를 저장할 수도 있는, 파일 서버 또는 다른 중간 저장 디바이스에 대응할 수도 있다. 목적지 디바이스는, 스트리밍 또는 다운로드를 통해 저장 디바이스로부터 저장된 비디오 데이터에 액세스할 수도 있다. 파일 서버는, 인코딩된 비디오 데이터를 저장하고 그리고 그 인코딩된 비디오 데이터를 목적지 디바이스에 송신하는 것이 가능한 임의의 타입의 서버일 수도 있다. 예의 파일 서버들은 웹 서버 (예를 들어, 웹 사이트용), FTP 서버, NAS (network attached storage) 디바이스들, 또는 로컬 디스크 드라이브를 포함한다. 목적지 디바이스는, 인터넷 접속을 포함한, 임의의 표준 데이터 접속을 통해 인코딩된 비디오 데이터에 액세스할 수도 있다. 이것은 무선 채널 (예를 들어, Wi-Fi 접속), 유선 접속 (예를 들어, DSL, 케이블 모뎀 등), 또는 파일 서버 상에 저장된 인코딩된 비디오 데이터에 액세스하기에 적합한 양자 모두의 조합을 포함할 수도 있다. 저장 디바이스로부터의 인코딩된 비디오 데이터의 송신은 스트리밍 송신, 다운로드 송신, 또는 이들의 조합일 수도 있다.
본 개시의 기법들은 무선 애플리케이션들 또는 세팅들에 반드시 한정되는 것은 아니다. 기법들은, 공중 경유 (over-the-air) 텔레비전 브로드캐스트들, 케이블 텔레비전 송신들, 위성 텔레비전 송신들, HTTP 상으로의 동적 적응적 스트리밍 (DASH) 과 같은 인터넷 스트리밍 비디오 송신들, 데이터 저장 매체 상으로 인코딩되는 디지털 비디오, 데이터 저장 매체 상에 저장된 디지털 비디오의 디코딩, 또는 다른 애플리케이션들과 같은 다양한 멀티미디어 애플리케이션들 중 임의의 것을 지원하여 비디오 코딩에 적용될 수도 있다. 일부 예들에서, 시스템은, 비디오 스트리밍, 비디오 플레이백, 비디오 브로드캐스팅, 및/또는 비디오 텔레포니와 같은 애플리케이션들을 지원하기 위해 일방향 또는 양방향 비디오 송신을 지원하도록 구성될 수도 있다.
하나의 예에서, 소스 디바이스는 비디오 소스, 비디오 인코더, 및 출력 인터페이스를 포함한다. 목적지 디바이스는 입력 인터페이스, 비디오 디코더, 및 디스플레이 디바이스를 포함할 수도 있다. 소스 디바이스의 비디오 인코더는 본 명세서에서 개시된 기법들을 적용하도록 구성될 수도 있다. 다른 예들에서, 소스 디바이스 및 목적지 디바이스는 다른 컴포넌트들 또는 배열체들을 포함할 수도 있다. 예를 들어, 소스 디바이스는 외부 카메라와 같은 외부 비디오 소스로부터 비디오 데이터를 수신할 수도 있다. 마찬가지로, 목적지 디바이스는 통합된 디스플레이 디바이스를 포함하기 보다는, 외부 디스플레이 디바이스와 인터페이스할 수도 있다.
상기 예의 시스템은 하나의 예일 뿐이다. 병렬로 비디오 데이터를 프로세싱하기 위한 기법들은 임의의 디지털 비디오 인코딩 및/또는 디코딩 디바이스에 의해 수행될 수도 있다. 일반적으로 본 개시의 기법들은 비디오 인코딩 디바이스에 의해 수행되지만, 그 기법들은 또한, "코덱 (CODEC)" 으로 통상적으로 지칭되는, 비디오 인코더/디코더에 의해 수행될 수도 있다. 더욱이, 본 개시의 기법들은 또한 비디오 프리프로세서에 의해 수행될 수도 있다. 소스 디바이스 및 목적지 디바이스는, 소스 디바이스가 목적지 디바이스로의 송신을 위해 코딩된 비디오 데이터를 생성하는 그러한 코딩 디바이스들의 예들일 뿐이다. 일부 예들에서, 소스 및 목적지 디바이스들은, 디바이스들의 각각이 비디오 인코딩 및 디코딩 컴포넌트들을 포함하도록 실질적으로 대칭적인 방식으로 동작할 수도 있다. 이런 이유로, 예의 시스템들은 예를 들면, 비디오 스트리밍, 비디오 플레이백, 비디오 브로드캐스팅, 또는 비디오 텔레포니를 위해, 비디오 디바이스들 간의 일방향 또는 양방향 비디오 송신을 지원할 수도 있다.
비디오 소스는 비디오 캡처 디바이스, 이를 테면 비디오 카메라, 이전에 캡처된 비디오를 포함하는 비디오 아카이브, 및/또는 비디오 컨텐츠 제공자로부터 비디오를 수신하기 위한 비디오 피드 인터페이스를 포함할 수도 있다. 추가 대안으로서, 비디오 소스는 소스 비디오, 또는 라이브 비디오, 아카이브된 비디오, 및 컴퓨터 생성된 비디오의 조합으로서 컴퓨터 그래픽스-기반 데이터를 생성할 수도 있다. 일부 경우들에서, 비디오 소스가 비디오 카메라이면, 소스 디바이스 및 목적지 디바이스는 소위 카메라 폰들 또는 비디오 폰들을 형성할 수도 있다. 그러나, 상기 언급된 바와 같이, 본 개시에서 설명된 기법들은 일반적으로 비디오 코딩에 적용가능할 수도 있고, 무선 및/또는 유선 애플리케이션들에 적용될 수도 있다. 각각의 경우에, 캡처된, 미리캡처된, 또는 컴퓨터-생성된 비디오는 비디오 인코더에 의해 인코딩될 수도 있다. 인코딩된 비디오 정보는 그 후 컴퓨터 판독가능 매체 상으로 출력 인터페이스에 의해 출력될 수도 있다.
언급된 바와 같이, 컴퓨터 판독가능 매체는 무선 브로드캐스트 또는 유선 네트워크 송신과 같은 일시적 매체들, 또는 하드 디스크, 플래시 드라이브, 콤팩트 디스크, 디지털 비디오 디스크, 블루-레이 디스크, 또는 다른 컴퓨터 판독가능 매체들과 같은 저장 매체들 (즉, 비일시적 저장 매체들) 을 포함할 수도 있다. 일부 예들에서, 네트워크 서버 (미도시) 는 소스 디바이스로부터 인코딩된 비디오 데이터를 수신하고 그 인코딩된 비디오 데이터를, 예를 들어, 네트워크 송신을 통해 목적지 디바이스에 제공할 수도 있다. 유사하게, 디스크 스탬핑 설비와 같은 매체 생산 설비의 컴퓨팅 디바이스는, 소스 디바이스로부터 인코딩된 비디오 데이터를 수신하고 그 인코딩된 비디오 데이터를 포함하는 디스크를 생산할 수도 있다. 따라서, 컴퓨터 판독가능 매체는, 다양한 예들에서, 다양한 형태들의 하나 이상의 컴퓨터 판독가능 매체들을 포함하는 것으로 이해될 수도 있다.
당업자는 본 명세서에 사용된 미만 ("<") 및 초과 (">") 기호들 또는 용어가 본 설명의 범위로부터 벗어남 없이 각각 이하 ("≤") 및 이상 ("≥") 기호들로 대체될 수 있음을 알 것이다.
인코딩 디바이스 (104) 및 디코딩 디바이스 (112) 의 특정 상세들이 각각 도 12 및 도 13 에 도시된다. 도 12 는 본 개시에서 설명된 기법들 중 하나 이상을 구현할 수도 있는 예의 인코딩 디바이스 (104) 를 예시하는 블록 다이어그램이다. 인코딩 디바이스 (104) 는 예를 들어, 본 명세서에서 설명된 신택스 구조들 (예를 들어, VPS, SPS, PPS 또는 다른 신택스 엘리먼트들의 신택스 구조들) 을 생성할 수도 있다. 인코딩 디바이스 (104) 는, 비디오 슬라이스들 내의 비디오 블록들의 인트라-예측 및 인터-예측 코딩을 수행할 수도 있다. 이전에 설명된 바와 같이, 인트라-코딩은, 주어진 비디오 프레임 또는 픽처 내에서 공간 리던던시를 감소 또는 제거하기 위해 공간 예측에 적어도 부분적으로 의존한다. 인터-코딩은, 비디오 시퀀스의 인접한 또는 주위의 프레임들 내에서 시간 리던던시를 감소 또는 제거하기 위해 시간 예측에 적어도 부분적으로 의존한다. 인트라-모드 (I 모드) 는 여러 공간 기반 압축 모드들 중 임의의 것을 지칭할 수도 있다. 단방향 예측 (P 모드) 또는 양방향 예측 (B 모드) 과 같은 인터-모드들은 여러 시간-기반 압축 모드들 중 임의의 것을 지칭할 수도 있다.
인코딩 디바이스 (104) 는 파티셔닝 유닛 (35), 예측 프로세싱 유닛 (41), 필터 유닛 (63), 픽처 메모리 (64), 합산기 (50), 변환 프로세싱 유닛 (52), 양자화 유닛 (54), 및 엔트로피 인코딩 유닛 (56) 을 포함한다. 예측 프로세싱 유닛 (41) 은 모션 추정 유닛 (42), 모션 보상 유닛 (44), 및 인트라 예측 프로세싱 유닛 (46) 을 포함한다. 비디오 블록 복원을 위해, 인코딩 디바이스 (104) 는 또한, 역 양자화 유닛 (58), 역 변환 프로세싱 유닛 (60), 및 합산기 (62) 를 포함한다. 필터 유닛 (63) 은 디블록킹 (deblocking) 필터, 적응적 루프 필터 (ALF), 및 샘플 적응적 오프셋 (SAO) 필터와 같은 하나 이상의 루프 필터들을 나타내도록 의도된다. 필터 유닛 (63) 은 도 12 에서 인 루프 (in loop) 필터인 것으로서 도시되지만, 다른 구성들에서, 필터 유닛 (63) 은 포스트 루프 필터로서 구현될 수도 있다. 포스트 프로세싱 디바이스 (57) 는 인코딩 디바이스 (104) 에 의해 생성되는 인코딩된 비디오 데이터에 대해 추가적인 프로세싱을 수행할 수도 있다. 본 개시의 기법들은 일부 인스턴스들에서 인코딩 디바이스 (104) 에 의해 구현될 수도 있다. 그러나, 다른 인스턴스들에서, 본 개시의 기법들 중 하나 이상은 포스트 프로세싱 디바이스 (57) 에 의해 구현될 수도 있다.
도 12 에 도시된 바와 같이, 인코딩 디바이스 (104) 는 비디오 데이터를 수신하고, 파티셔닝 유닛 (35) 은 데이터를 비디오 블록들로 파티셔닝한다. 파티셔닝은 또한, 예를 들어, LCU들 및 CU들의 쿼드트리 구조에 따른, 비디오 블록 파티셔닝은 물론, 슬라이스들, 슬라이스 세그먼트들, 타일들, 또는 다른 더 큰 유닛들로의 파티셔닝을 포함할 수도 있다. 인코딩 디바이스 (104) 는 일반적으로, 인코딩될 비디오 슬라이스 내의 비디오 블록들을 인코딩하는 컴포넌트들을 예시한다. 슬라이스는 다중 비디오 블록들로 (및 가능하게는 타일들로 지칭된 비디오 블록들의 세트들로) 분할될 수도 있다. 예측 프로세싱 유닛 (41) 은 에러 결과들 (예를 들어, 코딩 레이트 및 왜곡의 레벨 등) 에 기초하여 현재 비디오 블록에 대해 복수의 인트라 예측 코딩 모드들 중 하나 또는 복수의 인터 예측 코딩 모드들 중 하나와 같은, 복수의 가능한 코딩 모드들 중 하나를 선택할 수도 있다. 예측 프로세싱 유닛 (41) 은 결과의 인트라- 또는 인터-코딩된 블록을 잔차 블록 데이터를 생성하기 위해 합산기 (50) 에, 그리고 참조 픽처로서의 사용을 위한 인코딩된 블록을 복원하기 위해 합산기 (62) 에 제공할 수도 있다.
예측 프로세싱 유닛 (41) 내의 인트라 예측 프로세싱 유닛 (46) 은 공간 압축을 제공하기 위해 코딩될 현재 블록과 동일한 프레임 또는 슬라이스에서의 하나 이상의 이웃 블록들에 대해 현재 비디오 블록의 인트라-예측 코딩을 수행할 수도 있다. 예측 프로세싱 유닛 (41) 내의 모션 추정 유닛 (42) 및 모션 보상 유닛 (44) 은 시간 압축을 제공하기 위해 하나 이상의 참조 픽처들에서의 하나 이상의 예측 블록들에 대해 현재 비디오 블록의 인터-예측 코딩을 수행한다.
모션 추정 유닛 (42) 은 비디오 시퀀스에 대한 미리결정된 패턴에 따라 비디오 슬라이스에 대한 인터-예측 모드를 결정하도록 구성될 수도 있다. 미리결정된 패턴은 시퀀스에서의 비디오 슬라이스들을, P 슬라이스들, B 슬라이스들, 또는 GPB 슬라이스들로서 지정할 수도 있다. 모션 추정 유닛 (42) 및 모션 보상 유닛 (44) 은 고도로 통합될 수도 있지만, 개념적인 목적을 위해 별도로 예시된다. 모션 추정 유닛 (42) 에 의해 수행된 모션 추정은 비디오 블록들에 대한 모션을 추정하는 모션 벡터들을 생성하는 프로세스이다. 모션 벡터는, 예를 들어, 참조 픽처 내의 예측 블록에 대한 현재 비디오 프레임 또는 픽처 내의 비디오 블록의 예측 유닛 (PU) 의 변위를 표시할 수도 있다.
예측 블록은 픽셀 차이의 관점에서 코딩될 비디오 블록의 PU 와 밀접하게 매칭하도록 발견되는 블록이며, 이 픽셀 차이는 절대 차이의 합 (SAD), 제곱 차이의 합 (SSD), 또는 다른 상이한 메트릭들에 의해 결정될 수도 있다. 일부 예들에서, 인코딩 디바이스 (104) 는 픽처 메모리 (64) 에 저장된 참조 픽처들의 서브-정수 픽셀 포지션들에 대한 값들을 계산할 수도 있다. 예를 들어, 인코딩 디바이스 (104) 는 참조 픽처의 1/4 픽셀 포지션들, 1/8 픽셀 포지션들, 또는 다른 분수 픽셀 포지션들의 값들을 보간할 수도 있다. 따라서, 모션 추정 유닛 (42) 은 풀 픽셀 포지션들 및 분수 픽셀 포지션들에 대한 모션 탐색을 수행하고, 분수 픽셀 정밀도로 모션 벡터를 출력할 수도 있다.
모션 추정 유닛 (42) 은 인터-코딩된 슬라이스에서의 비디오 블록의 PU 에 대한 모션 벡터를, 그 PU 의 포지션을 참조 픽처의 예측 블록의 포지션과 비교함으로써 계산한다. 참조 픽처는 제 1 참조 픽처 리스트 (List 0) 또는 제 2 참조 픽처 리스트 (List 1) 로부터 선택될 수도 있고, 이들 각각은 픽처 메모리 (64) 에 저장된 하나 이상의 참조 픽처들을 식별한다. 모션 추정 유닛 (42) 은 계산된 모션 벡터를 엔트로피 인코딩 유닛 (56) 및 모션 보상 유닛 (44) 으로 전송한다.
모션 보상 유닛 (44) 에 의해 수행된 모션 보상은, 모션 추정에 의해 결정된 모션 벡터에 기초하여 예측 블록을 페칭 또는 생성하여, 가능하게는 서브-픽셀 정밀도로 보간들을 수행하는 것을 수반할 수도 있다. 현재 비디오 블록의 PU 에 대한 모션 벡터를 수신 시, 모션 보상 유닛 (44) 은, 모션 벡터가 참조 픽처 리스트에서 가리키는 예측 블록을 로케이트할 수도 있다. 인코딩 디바이스 (104) 는, 코딩되고 있는 현재 비디오 블록의 픽셀 값들로부터 예측 블록의 픽셀 값들을 감산하여 픽셀 차이 값들을 형성함으로써 잔차 비디오 블록을 형성한다. 픽셀 차이 값들은 블록에 대한 잔차 데이터를 형성하고, 루마 및 크로마 차이 컴포넌트들 양자 모두를 포함할 수도 있다. 합산기 (50) 는 이 감산 연산을 수행하는 컴포넌트 또는 컴포넌트들을 나타낸다. 모션 보상 유닛 (44) 은 또한, 비디오 슬라이스의 비디오 블록들을 디코딩함에 있어서 디코딩 디바이스 (112) 에 의한 사용을 위해 비디오 블록들 및 비디오 슬라이스와 연관된 신택스 엘리먼트들을 생성할 수도 있다.
인트라 예측 프로세싱 유닛 (46) 은 현재 블록을, 상기 설명된 바와 같은 모션 추정 유닛 (42) 및 모션 보상 유닛 (44) 에 의해 수행된 인터-예측에 대한 대안으로서 인트라-예측할 수도 있다. 특히, 인트라 예측 프로세싱 유닛 (46) 은 현재 블록을 인코딩하는데 이용하기 위한 인트라-예측 모드를 결정할 수도 있다. 일부 예들에서, 인트라 예측 프로세싱 유닛 (46) 은 예를 들어 별도의 인코딩 패스들 동안에 다양한 인트라-예측 모드들을 사용하여 현재 블록을 인코딩할 수도 있으며, 인트라 예측 프로세싱 유닛 (46) (또는 일부 예들에서는 모드 선택 유닛 (40)) 은 테스팅된 모드들로부터 사용하기 위해 적절한 인트라-예측 모드를 선택할 수도 있다. 예를 들어, 인트라 예측 프로세싱 유닛 (46) 은 다양한 테스팅된 인트라-예측 모드들에 대한 레이트-왜곡 분석을 사용하여 레이트-왜곡 값들을 계산할 수도 있고, 테스팅된 모드들 중 최상의 레이트-왜곡 특성들을 갖는 인트라-예측 모드를 선택할 수도 있다. 레이트-왜곡 분석은 일반적으로, 인코딩된 블록과 그 인코딩된 블록을 생성하도록 인코딩되었던 원래의, 인코딩되지 않은 블록 간의 왜곡 (또는 에러) 의 양 뿐만 아니라 인코딩된 블록을 생성하는데 사용된 비트 레이트 (즉, 비트들의 수) 를 결정한다. 인트라 예측 프로세싱 유닛 (46) 은 다양한 인코딩된 블록들에 대한 왜곡들 및 레이트들로부터 비율들을 계산하여, 어느 인트라-예측 모드가 그 블록에 대한 최상의 레이트-왜곡 값을 나타내는지를 결정할 수도 있다.
어떤 경우든, 블록에 대한 인트라-예측 모드를 선택한 후, 인트라 예측 프로세싱 유닛 (46) 은 블록에 대한 선택된 인트라-예측 모드를 나타내는 정보를 엔트로피 인코딩 유닛 (56) 에 제공할 수도 있다. 엔트로피 인코딩 유닛 (56) 은 선택된 인트라-예측 모드를 표시하는 정보를 인코딩할 수도 있다. 인코딩 디바이스 (104) 는 다양한 블록들에 대한 인코딩 콘텍스트들의 정의들 뿐만 아니라 그 콘텍스트들 각각에 대해 사용할 가장 가능성있는 인트라-예측 모드, 인트라-예측 모드 인덱스 테이블, 및 수정된 인트라-예측 모드 인덱스 테이블의 표시들을 송신된 비트스트림 구성 데이터에 포함할 수도 있다. 비트스트림 구성 데이터는 복수의 인트라-예측 모드 인덱스 테이블들 및 복수의 수정된 인트라-예측 모드 인덱스 테이블들 (코드워드 맵핑 테이블들로도 또한 지칭됨) 을 포함할 수도 있다.
예측 프로세싱 유닛 (41) 이 인터-예측 또는 인트라-예측 중 어느 하나를 통해 현재 비디오 블록에 대한 예측 블록을 생성한 후, 인코딩 디바이스 (104) 는 현재 비디오 블록으로부터 예측 블록을 감산함으로써 잔차 비디오 블록을 형성한다. 잔차 블록에서의 잔차 비디오 데이터는 하나 이상의 TU들에 포함되고 변환 프로세싱 유닛 (52) 에 적용될 수도 있다. 변환 프로세싱 유닛 (52) 은 이산 코사인 변환 (discrete cosine transform; DCT) 또는 개념상 유사한 변환과 같은 변환을 사용하여 잔차 비디오 데이터를 잔차 변환 계수들로 변환한다. 변환 프로세싱 유닛 (52) 은 잔차 비디오 데이터를 픽셀 도메인으로부터, 주파수 도메인과 같은 변환 도메인으로 컨버팅할 수도 있다.
변환 프로세싱 유닛 (52) 은 결과의 변환 계수들을 양자화 유닛 (54) 으로 전송할 수도 있다. 양자화 유닛 (54) 은 비트 레이트를 추가로 감소시키기 위해 변환 계수들을 양자화한다. 양자화 프로세스는 계수들의 일부 또는 전부와 연관된 비트 심도를 감소시킬 수도 있다. 양자화의 정도는 양자화 파라미터를 조정함으로써 수정될 수도 있다. 일부 예들에서, 양자화 유닛 (54) 은 그 후 양자화된 변환 계수들을 포함하는 매트릭스의 스캔을 수행할 수도 있다. 대안적으로, 엔트로피 인코딩 유닛 (56) 이 스캔을 수행할 수도 있다.
양자화에 이어, 엔트로피 인코딩 유닛 (56) 은 양자화된 변환 계수들을 엔트로피 인코딩한다. 예를 들어, 엔트로피 인코딩 유닛 (56) 은 콘텍스트 적응적 가변 길이 코딩 (CAVLC), 콘텍스트 적응적 바이너리 산술 코딩 (CABAC), 신택스-기반 콘텍스트-적응적 바이너리 산술 코딩 (SBAC), 확률 간격 파티셔닝 엔트로피 (PIPE) 코딩 또는 다른 엔트로피 인코딩 기법을 수행할 수도 있다. 엔트로피 인코딩 유닛 (56) 에 의한 엔트로피 인코딩에 이어, 인코딩된 비트스트림은 디코딩 디바이스 (112) 에 송신되거나, 또는 디코딩 디바이스 (112) 에 의한 나중의 송신 또는 취출을 위해 아카이브될 수도 있다. 엔트로피 인코딩 유닛 (56) 은 또한, 코딩되고 있는 현재 비디오 슬라이스에 대한 모션 벡터들 및 다른 신택스 엘리먼트들을 엔트로피 인코딩할 수도 있다.
역 양자화 유닛 (58) 및 역 변환 프로세싱 유닛 (60) 은, 각각, 역 양자화 및 역 변환을 적용하여, 참조 픽처의 참조 블록으로서의 나중의 사용을 위해 픽셀 도메인에서 잔차 블록을 복원한다. 모션 보상 유닛 (44) 은, 참조 픽처 리스트 내의 참조 픽처들 중 하나의 예측 블록에 잔차 블록을 가산함으로써 참조 블록을 계산할 수도 있다. 모션 보상 유닛 (44) 은 또한, 하나 이상의 보간 필터들을 복원된 잔차 블록에 적용하여, 모션 추정에서의 사용을 위한 서브-정수 픽셀 값들을 계산할 수도 있다. 합산기 (62) 는 복원된 잔차 블록을, 모션 보상 유닛 (44) 에 의해 생성된 모션 보상된 예측 블록에 가산하여, 픽처 메모리 (64) 에의 저장을 위한 참조 블록을 생성한다. 참조 블록은, 후속 비디오 프레임 또는 픽처에서 블록을 인터-예측하기 위해 참조 블록으로서 모션 추정 유닛 (42) 및 모션 보상 유닛 (44) 에 의해 사용될 수도 있다.
이 방식으로, 도 12 의 인코딩 디바이스 (104) 는 인코딩된 비디오 비트스트림에 대한 신택스를 생성하도록 구성된 비디오 인코더의 예를 나타낸다. 인코딩 디바이스 (104) 는, 예를 들어, 상기 설명된 바와 같이 VPS, SPS, 및 PPS 파라미터 세트들을 생성할 수도 있다. 인코딩 디바이스 (104) 는 상기 설명된 프로세스를 포함하는, 본 명세서에서 설명된 기법들 중 임의의 것을 수행할 수도 있다. 본 개시의 기법들은 일반적으로 인코딩 디바이스 (104) 에 대하여 설명되었지만, 상기 언급된 바와 같이, 본 개시의 기법들 중 일부는 또한 포스트 프로세싱 디바이스 (57) 에 의해 구현될 수도 있다.
도 13 은 예의 디코딩 디바이스 (112) 를 예시하는 블록 다이어그램이다. 디코딩 디바이스 (112) 는 엔트로피 디코딩 유닛 (80), 예측 프로세싱 유닛 (81), 역 양자화 유닛 (86), 역 변환 프로세싱 유닛 (88), 합산기 (90), 필터 유닛 (91), 및 픽처 메모리 (92) 를 포함한다. 예측 프로세싱 유닛 (81) 은 모션 보상 유닛 (82) 및 인트라 예측 프로세싱 유닛 (84) 을 포함한다. 디코딩 디바이스 (112) 는, 일부 예들에서, 도 12 로부터 인코딩 디바이스 (104) 에 대하여 설명된 인코딩 패스에 일반적으로 상반되는 디코딩 패스를 수행할 수도 있다.
디코딩 프로세스 동안, 디코딩 디바이스 (112) 는 인코딩 디바이스 (104) 에 의해 전송된 인코딩된 비디오 슬라이스의 비디오 블록들 및 연관된 신택스 엘리먼트들을 표현하는 인코딩된 비디오 비트스트림을 수신한다. 일부 실시형태들에서, 디코딩 디바이스 (112) 는 인코딩 디바이스 (104) 로부터 인코딩된 비디오 비트스트림을 수신할 수도 있다. 일부 실시형태들에서, 디코딩 디바이스 (112) 는 서버, 미디어-인식 네트워크 엘리먼트 (MANE), 비디오 편집기/스플라이서 (splicer), 또는 상기 설명된 기법들 중 하나 이상을 구현하도록 구성된 다른 이러한 디바이스와 같은 네트워크 엔티티 (79) 로부터 인코딩된 비디오 비트스트림을 수신할 수도 있다. 네트워크 엔티티 (79) 는 인코딩 디바이스 (104) 를 포함할 수도 있거나 또는 포함하지 않을 수도 있다. 본 개시에서 설명된 기법들 중 일부는 네트워크 엔티티 (79) 가 인코딩된 비디오 비트스트림을 디코딩 디바이스 (112) 에 송신하기 이전에 네트워크 엔티티 (79) 에 의해 구현될 수도 있다. 일부 비디오 디코딩 시스템들에서, 네트워크 엔티티 (79) 및 디코딩 디바이스 (112) 는 별도의 디바이스들의 부분들일 수도 있지만, 다른 인스턴스들에서, 네트워크 엔티티 (79) 에 대하여 설명된 기능성은 디코딩 디바이스 (112) 를 포함하는 동일한 디바이스에 의해 수행될 수도 있다.
디코딩 디바이스 (112) 의 엔트로피 디코딩 유닛 (80) 은 비트스트림을 엔트로피 디코딩하여, 양자화된 계수들, 모션 벡터들, 및 다른 신택스 엘리먼트들을 생성한다. 엔트로피 디코딩 유닛 (80) 은 모션 벡터들 및 다른 신택스 엘리먼트들을 예측 프로세싱 유닛 (81) 으로 포워딩한다. 디코딩 디바이스 (112) 는 신택스 엘리먼트들을 비디오 슬라이스 레벨 및/또는 비디오 블록 레벨에서 수신할 수도 있다. 엔트로피 디코딩 유닛 (80) 은 VPS, SPS, 및 PPS 와 같은 하나 이상의 파라미터 세트들에서 고정-길이 신택스 엘리먼트들 및 가변-길이 신택스 엘리먼트들 양자 모두를 프로세싱 및 파싱할 수도 있다.
비디오 슬라이스가 인트라-코딩된 (I) 슬라이스로서 코딩될 때, 예측 프로세싱 유닛 (81) 의 인트라 예측 프로세싱 유닛 (84) 은 현재 프레임 또는 픽처의 이전에 디코딩된 블록들로부터의 시그널링된 인트라-예측 모드 및 데이터에 기초하여 현재 비디오 슬라이스의 비디오 블록에 대한 예측 데이터를 생성할 수도 있다. 비디오 프레임이 인터-코딩된 (즉, B, P 또는 GPB) 슬라이스로서 코딩될 때, 예측 프로세싱 유닛 (81) 의 모션 보상 유닛 (82) 은 엔트로피 디코딩 유닛 (80) 으로부터 수신된 모션 벡터들 및 다른 신택스 엘리먼트들에 기초하여 현재 비디오 슬라이스의 비디오 블록에 대한 예측 블록들을 생성한다. 예측 블록들은 참조 픽처 리스트 내의 참조 픽처들 중 하나로부터 생성될 수도 있다. 디코딩 디바이스 (112) 는 픽처 메모리 (92) 에 저장된 참조 픽처들에 기초한 디폴트 구성 기법들을 사용하여 참조 프레임 리스트들, 즉, List 0 및 List 1 을 구성할 수도 있다.
모션 보상 유닛 (82) 은 모션 벡터들 및 다른 신택스 엘리먼트들을 파싱함으로써 현재 비디오 슬라이스의 비디오 블록에 대한 예측 정보를 결정하고, 그 예측 정보를 사용하여, 디코딩되고 있는 현재 비디오 블록에 대한 예측 블록들을 생성한다. 예를 들어, 모션 보상 유닛 (82) 은 파라미터 세트 내의 하나 이상의 신택스 엘리먼트들을 사용하여 비디오 슬라이스의 비디오 블록들을 코딩하는데 사용되는 예측 모드 (예를 들어, 인트라- 또는 인터-예측), 인터-예측 슬라이스 타입 (예를 들어, B 슬라이스, P 슬라이스, 또는 GPB 슬라이스), 슬라이스에 대한 하나 이상의 참조 픽처 리스트들에 대한 구성 정보, 슬라이스의 각각의 인터-인코딩된 비디오 블록에 대한 모션 벡터들, 슬라이스의 각각의 인터-코딩된 비디오 블록에 대한 인터-예측 스테이터스, 및 현재 비디오 슬라이스 내의 비디오 블록들을 디코딩하기 위한 다른 정보를 결정할 수도 있다.
모션 보상 유닛 (82) 은 또한, 보간 필터들에 기초하여 보간을 수행할 수도 있다. 모션 보상 유닛 (82) 은 비디오 블록들의 인코딩 동안 인코딩 디바이스 (104) 에 의해 사용된 바와 같은 보간 필터들을 사용하여, 참조 블록들의 서브-정수 픽셀들에 대한 보간된 값들을 계산할 수도 있다. 이 경우에, 모션 보상 유닛 (82) 은 수신된 신택스 엘리먼트들로부터 인코딩 디바이스 (104) 에 의해 사용되는 보간 필터들을 결정할 수도 있고, 보간 필터들을 사용하여 예측 블록들을 생성할 수도 있다.
역 양자화 유닛 (86) 은 비트스트림에서 제공되고 엔트로피 디코딩 유닛 (80) 에 의해 디코딩되는 양자화된 변환 계수들을 역 양자화, 또는 양자화해제 (de-quantize) 한다. 역 양자화 프로세스는 적용되어야 하는 양자화의 정도, 및 마찬가지로 역 양자화의 정도를 결정하기 위해 비디오 슬라이스에서 각각의 비디오 블록에 대한 인코딩 디바이스 (104) 에 의해 계산된 양자화 파라미터의 사용을 포함할 수도 있다. 역 변환 프로세싱 유닛 (88) 은 픽셀 도메인에서 잔차 블록들을 생성하기 위하여, 역 변환 (예를 들어, 역 DCT 또는 다른 적합한 역 변환), 역 정수 변환, 또는 개념상 유사한 역 변환 프로세스를 변환 계수들에 적용한다.
모션 보상 유닛 (82) 이 모션 벡터들 및 다른 신택스 엘리먼트들에 기초하여 현재 비디오 블록에 대한 예측 블록을 생성한 후, 디코딩 디바이스 (112) 는 역 변환 프로세싱 유닛 (88) 으로부터의 잔차 블록들을 모션 보상 유닛 (82) 에 의해 생성된 대응하는 예측 블록들과 합산함으로써 디코딩된 비디오 블록을 형성한다. 합산기 (90) 는 이 합산 연산을 수행하는 컴포넌트 또는 컴포넌트들을 나타낸다. 원한다면, (코딩 루프 내 또는 코딩 루프 이후의) 루프 필터들이 또한 픽셀 트랜지션들을 평활화하거나, 또는 다르게는 비디오 품질을 향상시키는데 사용될 수도 있다. 필터 유닛 (91) 은 디블록킹 필터, 적응적 루프 필터 (ALF), 및 샘플 적응적 오프셋 (SAO) 필터와 같은 하나 이상의 루프 필터들을 나타내도록 의도된다. 필터 유닛 (91) 은 도 13 에서 인 루프 필터인 것으로서 도시되지만, 다른 구성들에서, 필터 유닛 (91) 은 포스트 루프 필터로서 구현될 수도 있다. 주어진 프레임 또는 픽처에서의 디코딩된 비디오 블록들은 그 후, 후속 모션 보상을 위해 사용되는 참조 픽처들을 저장하는 픽처 메모리 (92) 에 저장된다. 픽처 메모리 (92) 는 또한, 디스플레이 디바이스 상에의 나중의 프로젠테이션을 위해 디코딩된 비디오를 저장한다.
전술한 설명에서, 본 출원의 양태들은 그의 특정 실시형태들을 참조하여 설명되지만, 당업자들은 본 발명이 그에 한정되지 않음을 인식할 것이다. 따라서, 본 출원의 예시적인 실시형태들이 본 명세서에서 상세히 설명되었지만, 발명적 개념들은 다르게는 다양하게 구현 및 채용될 수도 있고, 첨부된 청구항들은, 종래 기술에 의해 한정되는 것을 제외하고는, 이러한 변형들을 포함하는 것으로 해석되도록 의도됨이 이해될 것이다. 상기 설명된 본 발명의 다양한 피처들 및 양태들은 개별적으로 또는 공동으로 사용될 수도 있다. 게다가, 실시형태들은 본 명세서의 더 넓은 사상 및 범위로부터 벗어남 없이 본 명세서에서 설명된 것들을 넘어서 임의의 수의 환경들 및 애플리케이션들에서 활용될 수 있다. 이에 따라, 명세서 및 도면들은 제한적이라기 보다는 예시적인 것으로서 간주되어야 한다. 예시의 목적들로, 방법들은 특정한 순서로 설명되었다. 대안 실시형태들에서, 상기 방법들은 설명된 것과는 상이한 순서로 수행될 수도 있다는 것을 알아야 한다.
컴포넌트들이 소정의 동작들을 수행 "하도록 구성된" 것으로서 설명되는 경우, 이러한 구성은, 예를 들어, 동작을 수행하도록 전자 회로들 또는 다른 하드웨어를 설계함으로써, 동작을 수행하도록 프로그래밍가능 전자 회로들 (예를 들어, 마이크로프로세서들, 또는 다른 적합한 전자 회로들) 을 프로그래밍함으로써, 또는 이들의 임의의 조합으로 달성될 수 있다.
본 명세서에서 개시된 실시형태들과 관련하여 설명된 다양한 예시적인 논리 블록들, 모듈들, 회로들, 및 알고리즘 단계들은 전자 하드웨어, 컴퓨터 소프트웨어, 펌웨어, 또는 이들의 조합들로서 구현될 수도 있다. 하드웨어와 소프트웨어의 이러한 상호교환가능성을 명확히 예시하기 위해, 다양한 예시적인 컴포넌트들, 블록들, 모듈들, 회로들, 및 단계들은 그들의 기능성의 관점에서 일반적으로 상기 설명되었다. 이러한 기능성이 하드웨어로서 구현되는지 또는 소프트웨어로서 구현되는지는 전체 시스템에 부과된 설계 제약들 및 특정한 애플리케이션에 의존한다. 당업자들은 설명된 기능성을 각각의 특정한 애플리케이션에 대해 다양한 방식들로 구현할 수도 있지만, 이러한 구현 판정들은 본 발명의 범위로부터의 벗어남을 야기하는 것으로서 해석되지는 않아야 한다.
본 명세서에서 설명된 기법들은 또한 전자 하드웨어, 컴퓨터 소프트웨어, 펌웨어, 또는 이들의 임의의 조합으로 구현될 수도 있다. 이러한 기법들은 범용 컴퓨터들, 무선 통신 디바이스 핸드셋들, 또는 무선 통신 디바이스 핸드셋들 및 다른 디바이스들에서의 애플리케이션을 포함하는 다중 사용들을 갖는 집적 회로 디바이스들과 같은 임의의 다양한 디바이스들에서 구현될 수도 있다. 모듈들 또는 컴포넌트들로서 설명된 임의의 피처들은 통합된 로직 디바이스에서 함께 또는 별개지만 상호운용가능한 로직 디바이스들로서 별도로 구현될 수도 있다. 소프트웨어로 구현되면, 그 기법들은, 실행될 때, 상기 설명된 방법들 중 하나 이상을 수행하는 명령들을 포함하는 프로그램 코드를 포함하는 컴퓨터 판독가능 데이터 저장 매체에 의해 적어도 부분적으로 실현될 수도 있다. 컴퓨터 판독가능 데이터 저장 매체는 컴퓨터 프로그램 제품의 부분을 형성할 수도 있으며, 이는 패키징 재료들을 포함할 수도 있다. 컴퓨터 판독가능 매체는 동기식 동적 랜덤 액세스 메모리 (SDRAM) 와 같은 랜덤 액세스 메모리 (RAM), 판독 전용 메모리 (ROM), 비휘발성 랜덤 액세스 메모리 (NVRAM), 전기적으로 소거가능한 프로그래밍가능 판독 전용 메모리 (EEPROM), FLASH 메모리, 자기 또는 광학 데이터 저장 매체들 등과 같은 메모리 또는 데이터 저장 매체들을 포함할 수도 있다. 기법들은, 추가적으로 또는 대안적으로, 전파된 신호들 또는 파들과 같은, 명령들 또는 데이터 구조들의 형태로 프로그램 코드를 반송 또는 통신하고 컴퓨터에 의해 액세스, 판독, 및/또는 실행될 수 있는 컴퓨터 판독가능 통신 매체에 의해 적어도 부분적으로 실현될 수도 있다.
프로그램 코드는, 하나 이상의 디지털 신호 프로세서들 (DSP들), 범용 마이크로프로세서들, 주문형 집적 회로들 (ASIC들), 필드 프로그래밍가능 로직 어레이들 (FPGA들), 또는 다른 등가의 집적된 또는 별개의 로직 회로부와 같은 하나 이상의 프로세서들을 포함할 수도 있는 프로세서에 의해 실행될 수도 있다. 이러한 프로세서는 본 개시에서 설명된 기법들 중 임의의 것을 수행하도록 구성될 수도 있다. 범용 프로세서는 마이크로프로세서일 수도 있지만; 대안으로, 그 프로세서는 임의의 종래의 프로세서, 제어기, 마이크로제어기, 또는 상태 머신일 수도 있다. 프로세서는 또한, 컴퓨팅 디바이스들의 조합, 예를 들어, DSP 와 마이크로프로세서의 조합, 복수의 마이크로프로세서들, DSP 코어와 결합된 하나 이상의 마이크로프로세서들, 또는 임의의 다른 이러한 구성으로서 구현될 수도 있다. 이에 따라, 본 명세서에서 사용된 바와 같은 용어 "프로세서" 는 전술한 구조, 전술한 구조의 임의의 조합, 또는 본 명세서에서 설명된 기법들의 구현에 적합한 임의의 다른 구조 또는 장치 중 임의의 것을 지칭할 수도 있다. 추가로, 일부 양태들에서, 본 명세서에서 설명된 기능성은, 인코딩 및 디코딩을 위해 구성된 전용 소프트웨어 모듈들 또는 하드웨어 모듈들 내에서 제공되거나, 또는 결합된 비디오 인코더-디코더 (CODEC) 에 통합될 수도 있다.

Claims (29)

  1. 비디오 데이터를 프로세싱하는 방법으로서,
    복수의 비디오 프레임들을 포함하는 360-도 비디오 데이터를 획득하는 단계로서, 상기 복수의 비디오 프레임들의 각각의 비디오 프레임은 상기 비디오 프레임에 대한 비디오 데이터의 구체형 표현 (spherical representation) 을 포함하는, 상기 360-도 비디오 데이터를 획득하는 단계;
    상기 복수의 비디오 프레임들로부터의 비디오 프레임을 상부 영역, 중간 영역 및 하부 영역으로 세그먼트화하는 단계로서, 상기 상부 영역은 상기 구체형 표현의 제 1 원형 영역을 포함하고, 상기 하부 영역은 상기 제 1 원형 영역으로부터의 상기 구체형 표현에 반대편인 상기 구체형 표현의 제 2 원형 영역을 포함하고, 상기 중간 영역은 상기 상부 영역 또는 상기 하부 영역에 포함되지 않는 상기 구체형 표현의 영역을 포함하는, 상기 상부 영역, 중간 영역 및 하부 영역으로 세그먼트화하는 단계;
    출력 비디오 프레임의 제 1 직사각형 영역에 상기 상부 영역을 맵핑하는 단계로서, 상기 상부 영역을 맵핑하는 단계는 상기 제 1 원형 영역에 포함된 비디오 데이터를 확장하여 상기 제 1 직사각형 영역을 채우는 단계를 포함하는, 상기 상부 영역을 맵핑하는 단계; 및
    상기 출력 비디오 프레임의 제 2 직사각형 영역에 상기 하부 영역을 맵핑하는 단계로서, 상기 하부 영역을 맵핑하는 단계는 상기 제 2 원형 영역에 포함된 비디오 데이터를 확장하여 상기 제 2 직사각형 영역을 채우는 단계를 포함하는, 상기 하부 영역을 맵핑하는 단계를 포함하는, 비디오 데이터를 프로세싱하는 방법.
  2. 제 1 항에 있어서,
    상기 비디오 프레임은 상기 구체형 표현의 적도 위의 제 1 위도 및 상기 적도 아래의 제 2 위도에서 세그먼트화되며, 상기 제 1 위도 및 제 2 위도는 적도로부터 등거리에 있으며, 상기 상부 영역은 상기 제 1 위도 위에 있으며 상기 하부 영역은 상기 제 2 위도 아래에 있는, 비디오 데이터를 프로세싱하는 방법.
  3. 제 1 항에 있어서,
    상기 상부 영역을 맵핑하는 단계 및 상기 하부 영역을 맵핑하는 단계는:
    상기 출력 비디오 프레임에서 픽셀 위치를 선택하는 단계;
    상기 픽셀 위치에 대응하는 상기 구체형 표현 상의 포인트를 결정하는 단계로서, 상기 구체형 표현 상의 포인트는 정사각형으로부터 원형으로 변환하기 위한 맵핑을 사용하여 결정되는, 상기 포인트를 결정하는 단계;
    상기 구체형 표현 상의 포인트로부터 픽셀을 샘플링하는 단계; 및
    샘플링된 상기 픽셀을 상기 픽셀 위치에 배치하는 단계를 포함하는, 비디오 데이터를 프로세싱하는 방법.
  4. 제 3 항에 있어서,
    상기 정사각형을 원형으로 변환하기 위한 맵핑은 상기 출력 비디오 프레임에서의 왜곡을 최소화하는, 비디오 데이터를 프로세싱하는 방법.
  5. 제 3 항에 있어서,
    상기 상부 영역을 맵핑하는 단계 및 상기 하부 영역을 맵핑하는 단계는:
    점진적 곡선 함수를 사용하여 상기 픽셀 위치를 조정하는 단계를 더 포함하는, 비디오 데이터를 프로세싱하는 방법.
  6. 제 5 항에 있어서,
    상기 점진적 곡선 함수는 상기 출력 비디오 프레임에서 추가적 직사각형 영역들에 인접한 영역에서의 픽셀 위치들에 사용되는, 비디오 데이터를 프로세싱하는 방법.
  7. 제 5 항에 있어서,
    상기 점진적 곡선 함수는 상기 제 1 직사각형 영역 또는 상기 제 2 직사각형 영역의 중간 영역을 향해 픽셀 위치들을 덜 변화시키고, 상기 제 1 직사각형 영역 또는 상기 제 2 직사각형 영역의 외부 영역을 향해 픽셀 위치들을 더 변화시키는, 비디오 데이터를 프로세싱하는 방법.
  8. 제 1 항에 있어서,
    상기 중간 영역을 출력 비디오 프레임의 하나 이상의 직사각형 영역들에 맵핑하는 단계를 더 포함하는, 비디오 데이터를 프로세싱하는 방법.
  9. 제 8 항에 있어서,
    상기 중간 영역은 좌측 뷰, 정면 뷰 및 우측 뷰를 포함하고, 상기 좌측 뷰는 상기 정면 뷰에 인접한 출력 비디오 프레임에 배치되고, 상기 우측 뷰는 상기 정면 뷰에 인접하여 배치되는, 비디오 데이터를 프로세싱하는 방법.
  10. 제 1 항에 있어서,
    상기 중간 영역은 후면 뷰를 포함하고, 상기 하부 영역은 상기 후면 뷰에 인접한 출력 비디오 프레임에 배치되고, 상기 상부 영역은 상기 후면 뷰에 인접하여 배치되는, 비디오 데이터를 프로세싱하는 방법.
  11. 제 1 항에 있어서,
    상기 상부 영역을 상기 제 1 직사각형 영역에 맵핑하는 단계는 상기 제 1 직사각형 영역이 상기 출력 비디오 프레임에서 제 3 직사각형 영역에 인접해 있는 영역에 점진적 조정을 적용하는 단계를 포함하고, 상기 하부 영역을 상기 제 2 직사각형 영역에 맵핑하는 단계는 상기 제 2 직사각형 영역이 상기 출력 비디오 프레임에서 제 4 직사각형 영역에 인접해 있는 영역에 점진적 조정을 적용하는 단계를 포함하는, 비디오 데이터를 프로세싱하는 방법.
  12. 제 1 항에 있어서,
    상기 출력 비디오 프레임은 3 바이 2 애스펙트비를 갖는, 비디오 데이터를 프로세싱하는 방법.
  13. 비디오 코딩 디바이스로서,
    복수의 비디오 프레임들을 포함하는 360-도 비디오 데이터를 저장하도록 구성되는 메모리로서, 상기 복수의 비디오 프레임들의 각각의 비디오 프레임은 상기 비디오 프레임에 대한 비디오 데이터의 구체형 표현을 포함하는, 상기 메모리; 및
    프로세서를 포함하고,
    상기 프로세서는:
    상기 복수의 비디오 프레임들로부터의 비디오 프레임을 상부 영역, 중간 영역 및 하부 영역으로 세그먼트화하는 것으로서, 상기 상부 영역은 상기 구체형 표현의 제 1 원형 영역을 포함하고, 상기 하부 영역은 상기 제 1 원형 영역으로부터의 상기 구체형 표현에 반대편인 상기 구체형 표현의 제 2 원형 영역을 포함하고, 상기 중간 영역은 상기 상부 영역 또는 상기 하부 영역에 포함되지 않는 상기 구체형 표현의 영역을 포함하는, 상기 상부 영역, 중간 영역 및 하부 영역으로 세그먼트화하고;
    출력 비디오 프레임의 제 1 직사각형 영역에 상기 상부 영역을 맵핑하는 것으로서, 상기 상부 영역을 맵핑하는 것은 상기 제 1 원형 영역에 포함된 비디오 데이터를 확장하여 상기 제 1 직사각형 영역을 채우는 것을 포함하는, 상기 상부 영역을 맵핑하고; 그리고
    상기 출력 비디오 프레임의 제 2 직사각형 영역에 상기 하부 영역을 맵핑하는 것으로서, 상기 하부 영역을 맵핑하는 것은 상기 제 2 원형 영역에 포함된 비디오 데이터를 확장하여 상기 제 2 직사각형 영역을 채우는 것을 포함하는, 상기 하부 영역을 맵핑하도록 구성되는, 비디오 코딩 디바이스.
  14. 명령들이 저장된 비일시적 컴퓨터 판독가능 저장 매체로서,
    상기 명령들은, 하나 이상의 프로세서들에 의해 실행될 때, 상기 하나 이상의 프로세서들로 하여금:
    복수의 비디오 프레임들을 포함하는 360-도 비디오 데이터를 획득하는 것으로서, 상기 복수의 비디오 프레임들의 각각의 비디오 프레임은 상기 비디오 프레임에 대한 비디오 데이터의 구체형 표현을 포함하는, 상기 360-도 비디오 데이터를 획득하는 것;
    상기 복수의 비디오 프레임들로부터의 비디오 프레임을 상부 영역, 중간 영역 및 하부 영역으로 세그먼트화하는 것으로서, 상기 상부 영역은 상기 구체형 표현의 제 1 원형 영역을 포함하고, 상기 하부 영역은 상기 제 1 원형 영역으로부터의 상기 구체형 표현에 반대편인 상기 구체형 표현의 제 2 원형 영역을 포함하고, 상기 중간 영역은 상기 상부 영역 또는 상기 하부 영역에 포함되지 않는 상기 구체형 표현의 영역을 포함하는, 상기 상부 영역, 중간 영역 및 하부 영역으로 세그먼트화하는 것;
    출력 비디오 프레임의 제 1 직사각형 영역에 상기 상부 영역을 맵핑하는 것으로서, 상기 상부 영역을 맵핑하는 것은 상기 제 1 원형 영역에 포함된 비디오 데이터를 확장하여 상기 제 1 직사각형 영역을 채우는 것을 포함하는, 상기 상부 영역을 맵핑하는 것; 및
    상기 출력 비디오 프레임의 제 2 직사각형 영역에 상기 하부 영역을 맵핑하는 것으로서, 상기 하부 영역을 맵핑하는 것은 상기 제 2 원형 영역에 포함된 비디오 데이터를 확장하여 상기 제 2 직사각형 영역을 채우는 것을 포함하는, 상기 하부 영역을 맵핑하는 것을 포함하는 동작들을 수행하게 하는, 비일시적 컴퓨터 판독가능 저장 매체.
  15. 장치로서,
    복수의 비디오 프레임들을 포함하는 360-도 비디오 데이터를 획득하기 위한 수단으로서, 상기 복수의 비디오 프레임들의 각각의 비디오 프레임은 상기 비디오 프레임에 대한 비디오 데이터의 구체형 표현을 포함하는, 상기 360-도 비디오 데이터를 획득하기 위한 수단;
    상기 복수의 비디오 프레임들로부터의 비디오 프레임을 상부 영역, 중간 영역 및 하부 영역으로 세그먼트화하기 위한 수단으로서, 상기 상부 영역은 상기 구체형 표현의 제 1 원형 영역을 포함하고, 상기 하부 영역은 상기 제 1 원형 영역으로부터의 상기 구체형 표현에 반대편인 상기 구체형 표현의 제 2 원형 영역을 포함하고, 상기 중간 영역은 상기 상부 영역 또는 상기 하부 영역에 포함되지 않는 상기 구체형 표현의 영역을 포함하는, 상기 상부 영역, 중간 영역 및 하부 영역으로 세그먼트화하기 위한 수단;
    출력 비디오 프레임의 제 1 직사각형 영역에 상기 상부 영역을 맵핑하기 위한 수단으로서, 상기 상부 영역을 맵핑하는 것은 상기 제 1 원형 영역에 포함된 비디오 데이터를 확장하여 상기 제 1 직사각형 영역을 채우는 것을 포함하는, 상기 상부 영역을 맵핑하기 위한 수단; 및
    상기 출력 비디오 프레임의 제 2 직사각형 영역에 상기 하부 영역을 맵핑하기 위한 수단으로서, 상기 하부 영역을 맵핑하는 것은 상기 제 2 원형 영역에 포함된 비디오 데이터를 확장하여 상기 제 2 직사각형 영역을 채우는 것을 포함하는, 상기 하부 영역을 맵핑하기 위한 수단을 포함하는, 장치.
  16. 비디오 데이터를 프로세싱하는 방법으로서,
    복수의 비디오 프레임들을 포함하는 360-도 비디오 데이터를 획득하는 단계로서, 상기 복수의 비디오 프레임들의 각각의 비디오 프레임은 상기 비디오 프레임에 대한 비디오 데이터의 2차원 표현을 포함하는, 상기 360-도 비디오 데이터를 획득하는 단계;
    상기 복수의 비디오 프레임들로부터 비디오 프레임의 제 1 직사각형 영역을 식별하는 단계;
    상기 비디오 프레임에 대한 비디오 데이터의 구체형 표현의 상부 영역에 상기 제 1 직사각형 영역을 맵핑하는 단계로서, 상기 상부 영역은 상기 구체형 표현의 제 1 원형 영역을 포함하고, 상기 제 1 직사각형 영역을 맵핑하는 단계는 비디오 데이터를 제 1 직사각형 영역으로부터 상기 제 1 원형 영역으로 배열하는 단계를 포함하는, 상기 제 1 직사각형 영역을 맵핑하는 단계;
    상기 비디오 프레임의 제 2 직사각형 영역을 식별하는 단계;
    상기 구체형 표현의 하부 영역에 상기 제 2 직사각형 영역을 맵핑하는 단계로서, 상기 하부 영역은 상기 구체형 표현의 제 2 원형 영역을 포함하고, 상기 제 2 직사각형 영역을 맵핑하는 단계는 비디오 데이터를 상기 제 2 직사각형 영역으로부터 상기 제 2 원형 영역으로 배열하는 단계를 포함하는, 상기 제 2 직사각형 영역을 맵핑하는 단계를 포함하는, 비디오 데이터를 프로세싱하는 방법.
  17. 제 16 항에 있어서,
    상기 상부 영역은 상기 구체형 표현의 제 1 위도 위의 구체형 표현의 표면을 포함하며, 상기 하부 영역은 상기 구체형 표현의 제 2 위도 아래의 구체형 표현의 표면을 포함하고, 상기 제 1 위도 및 상기 제 2 위도는 상기 구체형 표현의 적도로부터 등거리에 있는, 비디오 데이터를 프로세싱하는 방법.
  18. 제 16 항에 있어서,
    상기 제 1 직사각형 영역을 맵핑하는 단계 및 상기 제 2 직사각형 영역을 맵핑하는 단계는:
    상기 구체형 표현 상의 포인트를 선택하는 단계;
    상기 포인트에 대응하는 비디오 프레임에서의 픽셀 위치를 결정하는 단계로서, 상기 픽셀 위치는 원을 정사각형으로 변환하기 위한 맵핑을 사용하여 결정되는, 상기 픽셀 위치를 결정하는 단계;
    상기 픽셀 위치로부터 픽셀을 샘플링하는 단계; 및
    샘플링된 상기 픽셀을 상기 포인트에 배치하는 단계를 포함하는, 비디오 데이터를 프로세싱하는 방법.
  19. 제 18 항에 있어서,
    원을 정사각형으로 변환하기 위한 맵핑은 상기 제 1 직사각형 영역 또는 상기 제 2 직사각형 영역에서의 비디오 데이터가 상기 제 1 직사각형 영역 또는 상기 제 2 직사각형 영역을 채우도록 확장될 때 야기되는 왜곡을 역전시키는, 비디오 데이터를 프로세싱하는 방법.
  20. 제 18 항에 있어서,
    상기 제 1 직사각형 영역을 맵핑하는 단계 및 상기 제 2 직사각형 영역을 맵핑하는 단계는:
    점진적 곡선 함수를 사용하여 상기 픽셀 위치를 조정하는 단계를 더 포함하는, 비디오 데이터를 프로세싱하는 방법.
  21. 제 20 항에 있어서,
    상기 점진적 곡선 함수는 하나 이상의 추가적 직사각형 영역들 중 적어도 하나에 인접하는 영역에서의 픽셀 위치들에서 사용되는, 비디오 데이터를 프로세싱하는 방법.
  22. 제 20 항에 있어서,
    상기 점진적 곡선 함수는 상기 제 1 직사각형 영역 또는 상기 제 2 직사각형 영역의 중간 영역을 향해 픽셀 위치들을 덜 변화시키고, 상기 제 1 직사각형 영역 또는 상기 제 2 직사각형 영역의 외부 영역을 향해 픽셀 위치들을 더 변화시키는, 비디오 데이터를 프로세싱하는 방법.
  23. 제 16 항에 있어서,
    상기 비디오 프레임의 하나 이상의 추가적 직사각형 영역들을 상기 구체형 표현의 중간 영역에 맵핑하는 단계를 더 포함하는, 비디오 데이터를 프로세싱하는 방법.
  24. 제 23 항에 있어서,
    상기 하나 이상의 추가적 직사각형 영역들은 좌측 뷰, 정면 뷰 및 우측 뷰를 포함하고, 상기 좌측 뷰는 상기 정면 뷰에 인접하여 위치되고, 상기 우측 뷰는 상기 정면 뷰에 인접하는, 비디오 데이터를 프로세싱하는 방법.
  25. 제 16 항에 있어서,
    상기 비디오 프레임의 하나 이상의 추가적 직사각형 영역들은 후면 뷰를 포함하고, 상기 제 1 직사각형 영역은 상기 후면 뷰에 인접하고, 상기 제 2 직사각형 영역은 상기 후면 뷰에 인접하는, 비디오 데이터를 프로세싱하는 방법.
  26. 제 16 항에 있어서,
    상기 제 1 직사각형 영역을 상기 상부 영역에 맵핑하는 단계는 상기 제 1 직사각형 영역이 상기 비디오 프레임에서의 제 3 직사각형 영역에 인접해 있는 영역에서 점진적 조정을 적용하는 단계를 포함하고, 상기 제 2 직사각형 영역을 상기 하부 영역에 맵핑하는 단계는 상기 제 2 직사각형 영역이 상기 비디오 프레임에서의 제 4 직사각형 영역에 인접해 있는 영역에서 점진적 조정을 적용하는 단계를 포함하는, 비디오 데이터를 프로세싱하는 방법.
  27. 비디오 코딩 디바이스로서,
    복수의 비디오 프레임들을 포함하는 360-도 비디오 데이터를 저장하도록 구성되는 메모리로서, 상기 복수의 비디오 프레임들의 각각의 비디오 프레임은 상기 비디오 프레임에 대한 비디오 데이터의 2차원 표현을 포함하는, 상기 메모리; 및
    프로세서를 포함하고,
    상기 프로세서는:
    상기 복수의 비디오 프레임들로부터 비디오 프레임의 제 1 직사각형 영역을 식별하고;
    상기 비디오 프레임에 대한 비디오 데이터의 구체형 표현의 상부 영역에 상기 제 1 직사각형 영역을 맵핑하는 것으로서, 상기 상부 영역은 상기 구체형 표현의 제 1 원형 영역을 포함하고, 상기 제 1 직사각형 영역을 맵핑하는 것은 비디오 데이터를 제 1 직사각형 영역으로부터 상기 제 1 원형 영역으로 배열하는 것을 포함하는, 상기 제 1 직사각형 영역을 맵핑하고;
    상기 비디오 프레임의 제 2 직사각형 영역을 식별하고;
    상기 구체형 표현의 하부 영역에 상기 제 2 직사각형 영역을 맵핑하는 것으로서, 상기 하부 영역은 상기 구체형 표현의 제 2 원형 영역을 포함하고, 상기 제 2 직사각형 영역을 맵핑하는 것은 비디오 데이터를 상기 제 2 직사각형 영역으로부터 상기 제 2 원형 영역으로 배열하는 것을 포함하는, 상기 제 2 직사각형 영역을 맵핑하도록 구성되는, 비디오 코딩 디바이스.
  28. 명령들이 저장된 비일시적 컴퓨터 판독가능 저장 매체로서,
    상기 명령들은, 하나 이상의 프로세서들에 의해 실행될 때, 상기 하나 이상의 프로세서들로 하여금:
    복수의 비디오 프레임들을 포함하는 360-도 비디오 데이터를 획득하는 것으로서, 상기 복수의 비디오 프레임들의 각각의 비디오 프레임은 상기 비디오 프레임에 대한 비디오 데이터의 2차원 표현을 포함하는, 상기 360-도 비디오 데이터를 획득하는 것;
    상기 복수의 비디오 프레임들로부터 비디오 프레임의 제 1 직사각형 영역을 식별하는 것;
    상기 비디오 프레임에 대한 비디오 데이터의 구체형 표현의 상부 영역에 상기 제 1 직사각형 영역을 맵핑하는 것으로서, 상기 상부 영역은 상기 구체형 표현의 제 1 원형 영역을 포함하고, 상기 제 1 직사각형 영역을 맵핑하는 것은 비디오 데이터를 제 1 직사각형 영역으로부터 상기 제 1 원형 영역으로 배열하는 것을 포함하는, 상기 제 1 직사각형 영역을 맵핑하는 것;
    상기 비디오 프레임의 제 2 직사각형 영역을 식별하는 것;
    상기 구체형 표현의 하부 영역에 상기 제 2 직사각형 영역을 맵핑하는 것으로서, 상기 하부 영역은 상기 구체형 표현의 제 2 원형 영역을 포함하고, 상기 제 2 직사각형 영역을 맵핑하는 것은 비디오 데이터를 상기 제 2 직사각형 영역으로부터 상기 제 2 원형 영역으로 배열하는 것을 포함하는, 상기 제 2 직사각형 영역을 맵핑하는 것을 포함하는 동작들을 수행하게 하는, 비일시적 컴퓨터 판독가능 저장 매체.
  29. 장치로서,
    복수의 비디오 프레임들을 포함하는 360-도 비디오 데이터를 획득하기 위한 수단으로서, 상기 복수의 비디오 프레임들의 각각의 비디오 프레임은 상기 비디오 프레임에 대한 비디오 데이터의 2차원 표현을 포함하는, 상기 360-도 비디오 데이터를 획득하기 위한 수단;
    상기 복수의 비디오 프레임들로부터 비디오 프레임의 제 1 직사각형 영역을 식별하기 위한 수단;
    상기 비디오 프레임에 대한 비디오 데이터의 구체형 표현의 상부 영역에 상기 제 1 직사각형 영역을 맵핑하기 위한 수단으로서, 상기 상부 영역은 상기 구체형 표현의 제 1 원형 영역을 포함하고, 상기 제 1 직사각형 영역을 맵핑하는 것은 비디오 데이터를 제 1 직사각형 영역으로부터 상기 제 1 원형 영역으로 배열하는 것을 포함하는, 상기 제 1 직사각형 영역을 맵핑하기 위한 수단;
    상기 비디오 프레임의 제 2 직사각형 영역을 식별하기 위한 수단;
    상기 구체형 표현의 하부 영역에 상기 제 2 직사각형 영역을 맵핑하기 위한 수단으로서, 상기 하부 영역은 상기 구체형 표현의 제 2 원형 영역을 포함하고, 상기 제 2 직사각형 영역을 맵핑하는 것은 비디오 데이터를 상기 제 2 직사각형 영역으로부터 상기 제 2 원형 영역으로 배열하는 것을 포함하는, 상기 제 2 직사각형 영역을 맵핑하기 위한 수단을 포함하는, 장치.
KR1020197030441A 2017-03-22 2018-03-21 360-도 비디오의 효율적 압축을 위한 구체 극 투영들 KR102646967B1 (ko)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US201762474767P 2017-03-22 2017-03-22
US62/474,767 2017-03-22
US201762528264P 2017-07-03 2017-07-03
US62/528,264 2017-07-03
US15/926,957 2018-03-20
US15/926,957 US10957044B2 (en) 2017-03-22 2018-03-20 Sphere pole projections for efficient compression of 360-degree video
PCT/US2018/023604 WO2018175614A1 (en) 2017-03-22 2018-03-21 Sphere pole projections for efficient compression of 360-degree video

Publications (2)

Publication Number Publication Date
KR20190128689A true KR20190128689A (ko) 2019-11-18
KR102646967B1 KR102646967B1 (ko) 2024-03-13

Family

ID=63581810

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020197030441A KR102646967B1 (ko) 2017-03-22 2018-03-21 360-도 비디오의 효율적 압축을 위한 구체 극 투영들

Country Status (9)

Country Link
US (3) US10957044B2 (ko)
EP (1) EP3603072A1 (ko)
KR (1) KR102646967B1 (ko)
CN (1) CN110463205B (ko)
AU (1) AU2018239451A1 (ko)
BR (1) BR112019019191A2 (ko)
SG (1) SG11201907262QA (ko)
TW (1) TW201840181A (ko)
WO (1) WO2018175614A1 (ko)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10999602B2 (en) 2016-12-23 2021-05-04 Apple Inc. Sphere projected motion estimation/compensation and mode decision
US11259046B2 (en) 2017-02-15 2022-02-22 Apple Inc. Processing of equirectangular object data to compensate for distortion by spherical projections
US10924747B2 (en) 2017-02-27 2021-02-16 Apple Inc. Video coding techniques for multi-view video
US10957044B2 (en) 2017-03-22 2021-03-23 Qualcomm Incorporated Sphere pole projections for efficient compression of 360-degree video
US10839480B2 (en) * 2017-03-22 2020-11-17 Qualcomm Incorporated Sphere equator projection for efficient compression of 360-degree video
US10506196B2 (en) * 2017-04-01 2019-12-10 Intel Corporation 360 neighbor-based quality selector, range adjuster, viewport manager, and motion estimator for graphics
US10587800B2 (en) 2017-04-10 2020-03-10 Intel Corporation Technology to encode 360 degree video content
US10579898B2 (en) * 2017-04-16 2020-03-03 Facebook, Inc. Systems and methods for provisioning content using barrel projection representation
US11093752B2 (en) 2017-06-02 2021-08-17 Apple Inc. Object tracking in multi-view video
US20190005709A1 (en) * 2017-06-30 2019-01-03 Apple Inc. Techniques for Correction of Visual Artifacts in Multi-View Images
US10754242B2 (en) 2017-06-30 2020-08-25 Apple Inc. Adaptive resolution and projection format in multi-direction video
EP3425483B1 (en) * 2017-07-07 2024-01-10 Accenture Global Solutions Limited Intelligent object recognizer
US11212438B2 (en) 2018-02-14 2021-12-28 Qualcomm Incorporated Loop filter padding for 360-degree video coding
US10715832B2 (en) * 2018-03-16 2020-07-14 Mediatek Inc. Method and apparatus of block partition for VR360 video coding
CN110349226B (zh) * 2018-04-01 2021-06-01 浙江大学 一种全景图像处理方法及装置
US10771764B2 (en) * 2018-06-22 2020-09-08 Lg Electronics Inc. Method for transmitting 360-degree video, method for receiving 360-degree video, apparatus for transmitting 360-degree video, and apparatus for receiving 360-degree video
US11463671B2 (en) * 2018-07-09 2022-10-04 Lg Electronics Inc. Video transmitting method, video transmitting device, video receiving method and video receiving device
US20200213570A1 (en) * 2019-01-02 2020-07-02 Mediatek Inc. Method for processing projection-based frame that includes at least one projection face and at least one padding region packed in 360-degree virtual reality projection layout
US12020395B2 (en) * 2019-03-15 2024-06-25 STX Financing, LLC Systems and methods for compressing and decompressing a sequence of images
US10614553B1 (en) * 2019-05-17 2020-04-07 National Chiao Tung University Method for spherical camera image stitching
US11816757B1 (en) * 2019-12-11 2023-11-14 Meta Platforms Technologies, Llc Device-side capture of data representative of an artificial reality environment
CN113542203B (zh) * 2020-04-21 2022-06-28 ***通信集团贵州有限公司 一种视频业务dpi识别方法及服务器
CN111666434B (zh) * 2020-05-26 2021-11-02 武汉大学 基于深度全局特征的街景图片检索方法
TWI756956B (zh) 2020-12-01 2022-03-01 財團法人工業技術研究院 用於環景影像的影像處理方法及裝置
US11622100B2 (en) * 2021-02-17 2023-04-04 flexxCOACH VR 360-degree virtual-reality system for dynamic events
US20240040259A1 (en) * 2022-07-26 2024-02-01 KKStream Limited Systems and methods for free-view video streaming
CN115640091B (zh) * 2022-10-28 2023-05-02 合肥通用机械研究院有限公司 一种基于黎曼球面的交互式多样化图案展示控制方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150068299A (ko) * 2013-12-09 2015-06-19 씨제이씨지브이 주식회사 다면 영상 생성 방법 및 시스템

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100412694C (zh) * 2005-03-30 2008-08-20 北京大学 一种自动球形全景图的生成方法
JP2007013514A (ja) * 2005-06-30 2007-01-18 Taiji Kajikawa 720°全方位矩形画像モニタリングシステム
US9883101B1 (en) * 2014-07-23 2018-01-30 Hoyos Integrity Corporation Providing a real-time via a wireless communication channel associated with a panoramic video capture device
JP6344723B2 (ja) 2015-07-14 2018-06-20 パナソニックIpマネジメント株式会社 映像表示システム、映像表示装置及び映像表示方法
CN105898344A (zh) * 2016-04-12 2016-08-24 乐视控股(北京)有限公司 一种全景视频的播放方法和装置
KR102503342B1 (ko) * 2017-01-10 2023-02-28 삼성전자주식회사 스테레오 스코픽 비디오 콘텐츠를 전송하기 위한 방법 및 장치
CN106803275A (zh) * 2017-02-20 2017-06-06 苏州中科广视文化科技有限公司 基于相机位姿估计和空间采样的2d全景视频生成
US10957044B2 (en) 2017-03-22 2021-03-23 Qualcomm Incorporated Sphere pole projections for efficient compression of 360-degree video

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150068299A (ko) * 2013-12-09 2015-06-19 씨제이씨지브이 주식회사 다면 영상 생성 방법 및 시스템

Also Published As

Publication number Publication date
US20180276826A1 (en) 2018-09-27
US20240070871A1 (en) 2024-02-29
KR102646967B1 (ko) 2024-03-13
TW201840181A (zh) 2018-11-01
EP3603072A1 (en) 2020-02-05
US20210166394A1 (en) 2021-06-03
BR112019019191A2 (pt) 2020-04-22
SG11201907262QA (en) 2019-10-30
AU2018239451A1 (en) 2019-08-29
CN110463205A (zh) 2019-11-15
CN110463205B (zh) 2023-05-09
US11798166B2 (en) 2023-10-24
WO2018175614A1 (en) 2018-09-27
US10957044B2 (en) 2021-03-23

Similar Documents

Publication Publication Date Title
US11798166B2 (en) Sphere pole projections for efficient compression of 360-degree video
CN110383843B (zh) 用于360度视频的有效压缩的球体赤道投影
US10319071B2 (en) Truncated square pyramid geometry and frame packing structure for representing virtual reality video content
US10313664B2 (en) Adjusting field of view of truncated square pyramid projection for 360-degree video
US10848761B2 (en) Reducing seam artifacts in 360-degree video
US10699389B2 (en) Fisheye rendering with lens distortion correction for 360-degree video
WO2018175491A1 (en) Adaptive perturbed cube map projection

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant