KR20190052015A - 넓은 시야 비디오를 인코딩 및 디코딩하기 위한 방법 및 장치 - Google Patents

넓은 시야 비디오를 인코딩 및 디코딩하기 위한 방법 및 장치 Download PDF

Info

Publication number
KR20190052015A
KR20190052015A KR1020197008874A KR20197008874A KR20190052015A KR 20190052015 A KR20190052015 A KR 20190052015A KR 1020197008874 A KR1020197008874 A KR 1020197008874A KR 20197008874 A KR20197008874 A KR 20197008874A KR 20190052015 A KR20190052015 A KR 20190052015A
Authority
KR
South Korea
Prior art keywords
intra prediction
prediction mode
mode
picture
list
Prior art date
Application number
KR1020197008874A
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 KR20190052015A publication Critical patent/KR20190052015A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • 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/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/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • 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/103Selection of coding mode or of prediction mode
    • H04N19/11Selection of coding mode or of prediction mode among a plurality of spatial predictive coding modes
    • 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/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • 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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • 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/172Methods 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 picture, frame or field
    • 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/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

넓은 시야 비디오를 비트스트림으로 코딩하기 위한 방법 및 장치가 개시된다. 상기 넓은 시야 비디오의 적어도 하나의 픽처는 면으로서 표현되고, 상기 면은 투영 함수를 이용하여 적어도 하나의 2D 픽처상으로 투영된다. 상기 적어도 하나의 2D 픽처의 적어도 하나의 현재 블록에 대해, 상기 2D 픽처에서의 상기 현재 블록에 공간적으로 인접하지 않은 상기 2D 픽처의 적어도 하나의 이웃 블록은 상기 투영 함수로부터 결정되고, 상기 적어도 하나의 이웃 블록은 상기 면상에서 상기 현재 블록에 공간적으로 인접한다. 이후 상기 현재 블록은 적어도 상기 결정된 이웃 블록을 이용하여 인코딩된다. 대응하는 디코딩 방법 및 장치도 개시된다.

Description

넓은 시야 비디오를 인코딩 및 디코딩하기 위한 방법 및 장치
본 개시내용은, 예를 들어 몰입형 비디오들이 가상 현실, 증강 현실, 또는 증강 가상을 위한 시스템에서 처리될 때 및 예를 들어 헤드 장착 디스플레이 디바이스에 디스플레이될 때 이러한 몰입형 비디오들을 인코딩 및 디코딩하는 것에 관한 것이다.
최근에, 이용 가능한 넓은 시야 콘텐츠(360°까지의 것)의 성장이 있었다. 그러한 콘텐츠는 헤드 장착 디스플레이, 스마트 안경, PC 스크린, 태블릿, 스마트폰 등과 같은 몰입형 디스플레이 디바이스상에서 콘텐츠를 시청하는 사용자에게 잠재적으로 완전히 가시적이지는 않다. 이는, 주어진 순간에, 사용자가 콘텐츠의 일부만을 시청하고 있을 수 있다는 것을 의미한다. 그러나 사용자는 통상적으로 머리 움직임, 마우스 움직임, 터치 스크린, 음성 등과 같은 다양한 수단에 의해 콘텐츠 내에서 탐색할 수 있다. 통상적으로 이 콘텐츠를 인코딩 및 디코딩하는 것이 바람직하다.
본 원리의 양태에 따르면, 넓은 시야(large filed of view) 비디오를 비트스트림으로 코딩하기 위한 방법이 개시된다. 상기 넓은 시야 비디오의 적어도 하나의 픽처는 3D 면으로서 표현되고, 상기 3D 면은 투영 함수를 이용하여 적어도 하나의 2D 픽처상으로 투영된다. 인코딩 방법은, 상기 적어도 하나의 2D 픽처의 적어도 하나의 현재 블록에 대해,
상기 투영 함수로부터, 상기 2D 픽처에서 상기 현재 블록에 공간적으로 인접하지 않은 상기 2D 픽처의 적어도 하나의 이웃 블록을 결정하는 단계 - 상기 적어도 하나의 이웃 블록은 상기 3D 면상에서 상기 현재 블록에 공간적으로 인접함 -;
적어도 상기 결정된 이웃 블록을 이용하여 상기 현재 블록을 인코딩하는 단계를 포함한다.
본 원리는, 3D 면상의 공간적으로 인접한 이웃하는 블록들이 현재 블록을 코딩하는데 이용가능할 때, 하나 이상의 픽처상으로 3D 면을 투영하는데 사용되는 투영 함수에 따라 코딩될 현재 블록에 대한 새로운 이웃을 결정하는 것을 허용한다. 예를 들어, 현재 블록이 2D 장방형 픽처의 경계에 또는 입방체 투영의 면의 경계에 위치할 때, 이미 코딩되고 디코딩된 3D 면상의 현재 블록에 공간적으로 인접한 블록들이 현재 블록을 코딩하기 위한 새로운 이웃 블록들로서 결정될 수 있다. 현재 블록의 이러한 적응된 이웃은 3D 면이 2D 픽처상에 투영될 때 그러한 3D 면에서의 영역의 공간적으로 인접한 이웃을 복원하는 것을 허용한다.
적응된 이웃은 현재 블록을 인코딩하기 위한 2D 비디오 코더의 임의의 인코딩 모듈들에 의해 사용될 수 있으며, 따라서 넓은 시야 비디오에 적용되는 2D 비디오 코딩 방식의 압축 효율을 증가시키는 것을 허용한다.
본 개시내용의 일 실시예에 따르면, 상기 현재 블록을 인코딩하는 것은 적어도:
상기 현재 블록에 대한 인트라 예측 모드(intra prediction mode)를 코딩하기 위한 최고 확률 모드 리스트를 결정하는 것,
상기 현재 블록에 대한 움직임 벡터를 코딩하기 위한 움직임 벡터 예측기를 도출하는 것,
상기 현재 블록을 코딩하기 위한 인터 예측 병합 모드(inter-prediction merging mode)에서 움직임 정보를 도출하는 것,
상기 현재 블록을 컨텍스트 산술 엔트로피 코딩(contextual arithmetic entropy coding)하는 것,
상기 현재 블록의 적어도 하나의 샘플을 샘플 적응 오프셋 필터링하는 것을 포함하는 그룹에 속한다.
본 개시내용의 또 다른 실시예에 따르면, 인코딩 방법은 상기 투영 함수에 관련된 정보의 아이템을 코딩하는 단계를 더 포함한다.
넓은 시야 비디오를 나타내는 비트스트림을 디코딩하기 위한 방법이 또한 개시된다. 그러한 디코딩 방법은 3D 면으로서 표현되는 넓은 시야 비디오의 픽처의 투영을 나타내는 적어도 하나의 2D 픽처의 적어도 하나의 현재 블록에 대해:
상기 투영 함수로부터, 상기 2D 픽처에서 상기 현재 블록에 공간적으로 인접하지 않은 상기 2D 픽처의 적어도 하나의 이웃 블록을 결정하는 단계 - 상기 적어도 하나의 이웃 블록은 상기 3D 면상에서 상기 현재 블록에 공간적으로 인접함 -;
적어도 상기 결정된 이웃 블록을 이용하여 상기 현재 블록을 디코딩하는 단계를 포함한다.
본 개시내용의 일 실시예에 따르면, 상기 현재 블록을 디코딩하는 것은 적어도:
상기 현재 블록에 대한 인트라 예측 모드를 디코딩하기 위한 최고 확률 모드 리스트를 결정하는 것,
상기 현재 블록에 대한 움직임 벡터를 재구성하기 위한 움직임 벡터 예측기를 도출하는 것,
상기 현재 블록을 재구성하기 위한 인터 예측 병합 모드에서 움직임 정보를 도출하는 것,
상기 현재 블록을 컨텍스트 산술 엔트로피 디코딩하는 것,
상기 현재 블록의 적어도 하나의 샘플을 필터링하기 위해 샘플 적응 오프셋하는 것을 포함하는 그룹에 속한다.
본 개시내용의 또 다른 실시예에 따르면, 상기 디코딩 방법은 상기 투영 함수에 관련한 정보의 아이템을 디코딩하는 단계를 더 포함한다.
본 개시내용의 또 다른 실시예에 따르면, 3D 면은 구이고, 투영 함수는 등장방형 투영(equi-rectangular projection)이다. 이 실시예의 변형에 따르면, 현재 블록은 2D 픽처의 우측 경계상에 위치하고, 적어도 하나의 이웃 블록은 2D 픽처의 좌측 경계상에 위치한다.
본 개시내용의 또 다른 실시예에 따르면, 상기 현재 블록을 인코딩 또는 디코딩하는 것은 적어도 하나의 이웃 블록으로부터 획득된 적어도 예측 데이터를 포함하는 예측기 리스트를 구성하는 것을 포함하고, 여기서 상기 현재 블록으로부터의 데이터는 상기 예측기 리스트로부터의 예측 데이터의 선택된 후보를 이용하여 코딩되거나 디코딩된다.
이 실시예에 따르면, 현재 블록의 새로운 결정된 이웃 블록에 의해 제공되는 예측 데이터가 현재 블록을 코딩 또는 디코딩하기 위해 사용되는 예측기 리스트에 추가된다. 예를 들어, 그러한 예측기 리스트는 현재 블록이 인트라 코딩될 때 인트라 예측 모드의 최고 확률 모드(Most Probable Mode)일 수 있다. 현재 블록이 인터 예측될 때, 예측기 리스트는 현재 블록의 움직임 벡터를 예측하기 위한 움직임 벡터 예측기들의 세트에 또는 현재 블록이 현재 블록을 예측하기 위한 움직임 정보를 그로부터 상속하는 움직임 후보의 세트에 대응할 수 있다.
예측기 리스트는 또한 필터링 파라미터들, 예를 들어 HEVC 표준으로부터 SAO라고도 알려진 샘플 적응 오프셋 파라미터들에 대응할 수 있고, 현재 블록은 현재 블록의 재구성된 픽셀들을 처리하기 위해 이것을 상속한다.
넓은 시야 비디오를 비트스트림으로 코딩하기 위한 장치가 또한 개시된다. 이러한 장치는, 3D 면으로서 표현되는 넓은 시야 비디오의 픽처의 투영을 나타내는 적어도 하나의 2D 픽처의 적어도 하나의 현재 블록에 대해, 상기 투영 함수로부터 상기 2D 픽처에서 상기 현재 블록에 공간적으로 인접하지 않은 상기 2D 픽처의 적어도 하나의 이웃 블록을 결정하기 위한 수단 - 상기 적어도 하나의 이웃 블록은 상기 3D 면상에서 상기 현재 블록에 공간적으로 인접함 -, 및 적어도 상기 결정된 이웃 블록을 이용하여 상기 현재 블록을 인코딩하기 위한 수단을 포함한다.
넓은 시야 비디오를 나타내는 비트스트림을 디코딩하기 위한 장치가 또한 개시된다. 상기 장치는, 3D 면으로서 표현되는 넓은 시야 비디오의 픽처의 투영을 나타내는 상기 적어도 하나의 2D 픽처의 적어도 하나의 현재 블록에 대해:
상기 투영 함수로부터 상기 2D 픽처에서의 상기 현재 블록에 공간적으로 인접하지 않은 상기 2D 픽처의 적어도 하나의 이웃 블록을 결정하기 위한 수단 - 상기 적어도 하나의 이웃 블록은 상기 3D 면상에서 상기 현재 블록에 공간적으로 인접함 -;
적어도 상기 결정된 이웃 블록을 이용하여 상기 현재 블록을 디코딩하기 위한 수단을 포함한다.
코딩된 넓은 시야 비디오를 나타내는 비트스트림이 또한 개시된다. 상기 넓은 시야 비디오의 적어도 하나의 픽처는 3D 면으로서 표현되고, 상기 3D 면은 투영 함수를 이용하여 적어도 하나의 2D 픽처상으로 투영된다. 비트스트림은 상기 2D 픽처의 적어도 하나의 현재 블록을 나타내는 코딩된 데이터를 포함하고, 상기 현재 블록은 상기 2D 픽처에서 상기 현재 블록에 공간적으로 인접하지 않은 상기 2D 픽처의 적어도 하나의 이웃 블록을 이용하여 코딩되고, 상기 적어도 하나의 이웃 블록은 상기 3D 면상에서 상기 현재 블록에 공간적으로 인접한다.
본 개시내용의 일 실시예에 따르면, 비트스트림은 상기 투영 함수에 관련한 정보의 아이템을 나타내는 코딩된 데이터를 더 포함한다.
본 개시내용의 또 다른 실시예에 따르면, 비트스트림은 비일시적 프로세서 판독가능 매체상에 저장된다.
넓은 시야 비디오를 나타내는 비트스트림을 디코딩하기 위한 장치를 포함하는 몰입형 렌더링 디바이스가 또한 개시된다.
비트스트림으로 인코딩된 넓은 시야 비디오의 몰입형 렌더링을 위한 시스템이 또한 개시된다. 이러한 시스템은 적어도:
데이터 네트워크로부터 상기 비트스트림을 수신하기 위한 네트워크 인터페이스,
본 명세서에 개시된 실시예들 중 임의의 하나에 따라 상기 비트스트림을 디코딩하기 위한 장치,
디코딩된 넓은 시야 비디오를 렌더링하기 위한 몰입형 렌더링 디바이스를 포함한다.
일 구현에 따르면, 여기 위에서 설명된 대로 넓은 시야 비디오를 코딩하기 위한 또는 넓은 시야 비디오를 나타내는 비트스트림을 디코딩하기 위한 방법의 상이한 단계들은, 넓은 시야 비디오를 코딩하기 위한 또는 넓은 시야 비디오를 나타내는 비트스트림을 디코딩하기 위한 장치의 데이터 프로세서에 의한 실행을 위해 의도된 소프트웨어 명령어들을 포함하는 하나 이상의 소프트웨어 프로그램 또는 소프트웨어 모듈 프로그램에 의해 구현되고, 이러한 소프트웨어 명령어들은 본 원리들에 따른 방법들의 상이한 단계들의 실행을 명령하도록 설계된다.
컴퓨터에 의해 또는 데이터 프로세서에 의해 실행될 수 있는 컴퓨터 프로그램이 또한 개시되며, 이 프로그램은 여기 위에서 언급한 바와 같이 넓은 시야 비디오를 코딩하기 위한 방법의 단계들의 또는 넓은 시야 비디오를 나타내는 비트스트림을 디코딩하기 위한 방법의 단계들의 실행을 명령하기 위한 명령어들을 포함한다.
이 프로그램은 무엇이든 간에 임의의 프로그래밍 언어를 사용할 수 있고, 소스 코드, 오브젝트 코드 또는 소스 코드와 오브젝트 코드 사이의 중간 코드의 형태로, 예를 들어 부분적으로 컴파일된 형태 또는 무엇이든 간에 임의의 다른 바람직한 형태로 되어 있을 수 있다.
정보 캐리어는 프로그램을 저장할 수 있는 것은 무엇이든 임의의 엔티티 또는 장치일 수 있다. 예를 들어, 캐리어는 ROM, 예를 들어 CD ROM 또는 마이크로 전자 회로 ROM과 같은 저장 수단, 또는 다시 자기 기록 수단, 예를 들어 플로피 디스크 또는 하드 디스크 드라이브를 포함할 수 있다.
다시, 정보 캐리어는 전기 또는 광 케이블을 통해, 무선에 의해 또는 다른 수단에 의해 운반될 수 있는 전기 또는 광 신호와 같은 전송가능 캐리어일 수 있다. 본 원리들에 따른 프로그램은 특히 인터넷 타입 네트워크에 업로드될 수 있다.
대안으로서, 정보 캐리어는 프로그램이 그에 통합되는 집적 회로일 수 있고, 이 회로는 해당 방법들의 실행을 위해 또는 그 실행에 사용되도록 구성된다.
일 실시예에 따르면, 방법들/장치들은 소프트웨어 및/또는 하드웨어 컴포넌트들에 의해 구현될 수 있다. 이와 관련하여, "모듈" 또는 "유닛"이라는 용어는 이 문서에서 소프트웨어 컴포넌트에 그리고 하드웨어 컴포넌트에 그리고 하드웨어 컴포넌트와 소프트웨어 컴포넌트들의 세트에 동등하게 잘 대응할 수 있다.
소프트웨어 컴포넌트는 하나 이상의 컴퓨터 프로그램, 프로그램의 하나 이상의 서브 프로그램, 또는 보다 일반적으로는 관련된 모듈에 대해 이하에서 설명되는 바와 같은 기능 또는 기능들의 세트를 구현할 수 있는 프로그램 또는 소프트웨어 피스의 임의의 요소에 대응한다. 이러한 소프트웨어 컴포넌트는 물리 엔티티(단말, 서버 등)의 데이터 프로세서에 의해 실행되고, 이 물리 엔티티의 하드웨어 리소스들(메모리, 기록 매체, 통신 버스들, 입/출력 전자 보드들, 사용자 인터페이스들 등)에 액세스할 수 있다.
동일한 방식으로, 하드웨어 컴포넌트는 관련된 모듈에 대해 이하에서 설명되는 바와 같은 기능 또는 기능들의 세트를 구현할 수 있는 하드웨어 유닛의 임의의 요소에 대응한다. 이것은 프로그램가능 하드웨어 컴포넌트 또는 소프트웨어의 실행을 위한 통합된 프로세서를 갖는 컴포넌트, 예를 들어 집적 회로, 스마트카드, 메모리 카드, 펌웨어 실행을 위한 전자 보드 등일 수 있다.
전방향성 비디오 외에도, 본 원리는 또한 넓은 시야 비디오 콘텐츠, 예를 들어, 180°에도 적용된다.
도 1은 본 개시내용의 실시예들의 바람직한 환경에 따른 인코딩 및 디코딩 시스템의 기능적 개요를 나타낸다.
도 2는 본 개시내용에 따른 시스템의 제1 실시예를 나타낸다.
도 3은 본 개시내용에 따른 시스템의 제1 실시예를 나타낸다.
도 4는 본 개시내용에 따른 시스템의 제1 실시예를 나타낸다.
도 5는 본 개시내용에 따른 시스템의 제1 실시예를 나타낸다.
도 6은 본 개시내용에 따른 시스템의 제1 실시예를 나타낸다.
도 7은 본 개시내용에 따른 시스템의 제1 실시예를 나타낸다.
도 8은 본 개시내용에 따른 시스템의 제1 실시예를 나타낸다.
도 9는 본 개시내용에 따른 시스템의 제1 실시예를 나타낸다.
도 10은 본 개시내용에 따른 몰입형 비디오 렌더링 디바이스의 제1 실시예를 나타낸다.
도 11은 본 개시내용에 따른 몰입형 비디오 렌더링 디바이스의 제1 실시예를 나타낸다.
도 12는 본 개시내용에 따른 몰입형 비디오 렌더링 디바이스의 제1 실시예를 나타낸다.
도 13a는 구면 S로부터 장방형 픽처 F로의 투영의 예를 도해한다.
도 13b는 픽처 F의 XY 평면 기준 시스템을 도해한다.
도 13c는 구 S상의 각도 기준 시스템을 도해한다.
도 14a는 입방체 면 S로부터 6개의 픽처상으로의 투영의 예를 도해한다.
도 14b는 입방체 기준 시스템을 도해한다.
도 14c는 2D 픽처 F의 XY 평면 기준 시스템을 도해한다.
도 14d는 2D 픽처상에 투영된 입방체의 6개 면의 레이아웃을 도해한다.
도 14e는 도 14d에 도시된 레이아웃에 따른 대응하는 재배열된 장방형 픽처를 도해한다.
도 15는 종래의 비디오 코딩 방식으로부터의 인과적 공간 이웃을 도해한다.
도 16a는 구로서 표현된 전방향성 비디오가 등장방형 투영을 이용하여 그 상으로 투영된 장방형 픽처를 도해한다.
도 16b는 입방체로서 표현된 전방향성 비디오가 도 14d에 따른 입방체 투영 및 6개 면의 레이아웃을 이용하여 그 상으로 투영된 장방형 픽처를 도해한다.
도 17은 본 개시내용의 일 실시예에 따라, 전방향성 비디오의 투영인 2D 픽처의 현재 블록을 코딩하기 위한 예시적인 방법에 대한 블록도들을 도해한다.
도 18은 본 개시내용의 실시예에 따라 전방향성 비디오를 비트스트림으로 코딩하기 위한 예시적인 방법에 대한 블록도들을 도해한다.
도 19는 본 개시내용의 일 실시예에 따라, 전방향성 비디오의 투영인 2D 픽처의 현재 블록을 디코딩하기 위한 예시적인 방법에 대한 블록도들을 도해한다.
도 20은 본 개시내용의 실시예에 따른 비트스트림으로부터 전방향성 비디오의 3D 픽처를 나타내는 2D 픽처의 현재 블록을 디코딩하기 위한 예시적인 방법의 블록도들을 도해한다.
도 21은 일 실시예에 따라 전방향성 비디오를 비트스트림으로 인코딩하기 위한 예시적인 장치를 도해한다.
도 22는 일 실시예에 따라 전방향성 비디오를 나타내는 비트스트림을 디코딩하기 위한 예시적인 장치를 도해한다.
도 23은 본 개시내용의 실시예에 따라 최고 확률 인트라 예측 모드를 결정하기 위한 현재 블록에 대한 적응된 이웃을 도해한다.
도 24는 본 개시내용의 일 실시예에 따라, 움직임 벡터 예측기 또는 움직임 정보를 도출하기 위한 현재 블록에 대한 적응된 이웃을 도해한다.
도 25는 본 개시내용의 일 실시예에 따라, 컨텍스트 산술 이진 코딩을 위한 컨텍스트를 도출하기 위한 현재 블록에 대한 적응된 이웃을 도해한다.
도 26은 본 개시내용의 실시예에 따라, 샘플 적응 오프셋 파라미터들을 도출하기 위한 현재 블록에 대한 적응된 이웃을 도해한다.
도 27은 HEVC에서의 인트라 예측 방향들을 묘사하는 그림 예이다.
넓은 시야 콘텐츠는, 무엇보다도, 3차원 컴퓨터 그래픽 이미지 장면(3D CGI 장면), 포인트 클라우드 또는 몰입형 비디오일 수 있다. 많은 용어들이, 예를 들어 가상 현실(VR), 360, 파노라마, 4π 스테라디안(steradian), 몰입형, 전방향성, 넓은 시야와 같은 것이 그러한 몰입형 비디오들을 설계하는 데 사용될 수 있다.
예를 들어, 데이터 네트워크를 통한 전송을 위해 전방향성 비디오를 비트스트림으로 코딩하기 위해, HEVC, H.264/AVC와 같은 전통적인 비디오 코덱이 사용될 수 있다. 전방향성 비디오의 각각의 픽처는 따라서 적절한 투영 함수를 이용하여 하나 이상의 2D 픽처, 예를 들어 하나 이상의 장방형 픽처에 먼저 투영된다. 실제상, 전방향성 비디오로부터의 픽처는 3D 면으로서 표현된다. 투영의 용이함을 위해, 보통은 구 또는 입방체 또는 피라미드와 같은 볼록하고 간단한 면이 투영을 위해 사용된다. 전방향성 비디오를 나타내는 투영된 2D 픽처들은 이후 전통적인 비디오 코덱을 이용하여 코딩된다.
도 13a는 등장방형 투영을 이용하여 구로서 표현된 면 S상에 매핑된 전방향성 비디오의 프레임을 하나의 장방형 픽처 I상으로 투영하는 예를 도시한다.
도 14a는 여기서 입방체로서 표현된 면 S상에 매핑된 전방향성 비디오의 프레임을 6개의 픽처 또는 면상으로 투영하는 또 다른 예를 도시한다. 그 참조 시스템이 도 14b에 도해된 입방체의 면들이, 도 14d에 도해된 레이아웃을 이용하여 도 14e에 도시된 바와 같은 하나의 장방형 픽처가 되도록 가능하게는 재배열될 수 있다.
전방향성 비디오를 코딩하기 위해, 면의 투영된 장방형 픽처는 이후 HEVC, H.264/AVC 등과 같은 종래의 비디오 코딩 표준들을 이용하여 코딩될 수 있다. 그러한 표준들에 따르면, 2D 픽처는 먼저 그것을 작은 비중첩 블록들로 분할하고 그 후 그런 블록들을 개별적으로 인코딩함으로써 인코딩된다. 중복성을 감소시키기 위해, 종래의 비디오 코더들은 코딩할 현재 블록의 값들을 예측하기 위해 인과적인 공간 이웃 블록들 데이터를 사용한다. 이러한 인과적인 공간 이웃 블록들의 예가 도 15에 도해되어 있는데, 여기서 코딩할 현재 블록 BK는 이미 코딩/디코딩되었고 또한 현재 블록 BK에 대한 코딩/디코딩 처리의 코딩 단계에서 사용하기 위해 이용가능한 4개의 이웃 블록: A, B, C 및 D를 가진다. 이러한 이웃은 인트라 예측, 최고 확률 코딩 모드 결정(HEVC에서의 MPM 결정, 또는 H.264/AVC로도 알려짐), 인터 픽처 코딩에서의 움직임 벡터 예측에 대해 사용될 수 있다. 이러한 이웃은 또한 디블로킹 필터링 처리 또는 (HEVC에서 SAO로 알려진) 샘플 적응 오프셋(sample adaptive offset) 처리에서와 같이 인코딩 후에 현재 블록을 필터링하는 데 사용될 수 있다. 수행될 처리에 좌우되어, 또 다른 인과적 공간적/시간적 이웃이 사용될 수 있다.
여기서, 인과적 공간적 이웃 블록들은 픽처들의 스캔 순서(예를 들어, 래스터 스캔 순서)에 따라 이미 코딩되고 디코딩된 블록들로서 이해될 것이다.
전방향성 비디오에서, 등장방형 투영을 이용할 때, 구의 원형 대칭으로 인해, 3D 면으로부터의 블록은 블록의 좌측상에 그리고 블록의 우측상에 이웃하는 블록들을 갖는다. 그러나, 3D 면을 2D 장방형 픽처상으로 투영할 때, 일부 이웃하는 블록들은 블록에 대해 더 이상 이용가능하지 않을 수 있다. 예를 들어, 등장방형 투영에서, 2D 픽처의 우측 경계에 위치하는 2D 픽처의 블록들상으로 투영되는 3D 면의 블록들은 2D 픽처의 좌측 경계에 위치하는 2D 블록들상으로 투영되는 3D 면의 블록들에 3D 면상에서 인접한다. 예를 들어, 도 16a에 도해된 바와 같이, 3D 면상에서, 2D 픽처의 우측 경계상에 위치한 블록들 F 및 J는 블록들 A 및 G에 공간적으로 인접한다.
그러나, 2D 픽처에서, 픽처의 우측 경계에 위치한 블록들은 픽처의 좌측 경계에 위치한 블록들에 더 이상 인접하지 않는다. 도 16a에 도해된 바와 같이, 2D 픽처상에서, 블록들 F 및 J는 블록들 A 및 G에 더 이상 공간적으로 인접하지 않는다.
종래의 비디오 코딩 방식들은 픽처의 경계에 위치하지 않는 2D 블록들의 코딩과 비교하여 특별한 방식으로 이들 블록을 코딩한다. 실제로, 이들은 누락된 이웃을 다루어야만 한다.
또한, 2D 픽처의 디코딩 후에 2D 픽처를 3D 면상으로 재투영할 때, 3D 면의 연속성이 단절되었고 픽셀 전파 또는 패딩(padding)과 같은 적응적 처리가 2D 픽처의 인코딩 처리에서 적용될 수 있으므로, 2D 픽처의 경계에 위치한 2D 블록들로부터 투영된 3D 블록들을 포함하는 위도에서 일부 시각적 아티팩트들이 출현할 수 있다.
도 14e 또는 도 14f에 도해된 바와 같이, 전방향성 비디오를 3D 입방체로서 표현하고 장방형 픽처상에 입방체의 투영된 6개 면을 재배열하는 경우에도 유사한 문제들이 발생한다. 이러한 투영된 픽처들에서, 입방체의 투영된 면들의 경계들상에 위치한 블록들은 3D 입방체상의 인접한 면들에 속하는 인과적인 이웃 블록들로부터의 2D 픽처에서 이득을 볼 수 없다.
따라서, 전방향성 비디오들에 대한 새로운 인코딩 및 디코딩 방법이 필요하다.
본 원리는 여기서 전방향성 비디오의 경우에 대해 개시되어 있는데, 이는 매우 넓은 시야를 가지며 획득되는, 예를 들어 물고기 눈 렌즈와 같은 매우 작은 초점 거리를 가지며 획득되는 종래의 평면 이미지들의 경우에도 적용될 수 있다.
도 1은 예시적인 실시예에 따른 인코딩 및 디코딩 시스템의 일반적인 개요를 도해한다. 도 1의 시스템은 기능적 시스템이다. 전처리 모듈(300)은 인코딩 디바이스(400)에 의한 인코딩을 위해 콘텐츠를 준비할 수 있다. 전처리 모듈(300)은 다중 이미지 획득, 공통 공간(방향들을 인코딩하는 경우 통상적으로 3D 구)에서의 획득된 다중 이미지의 병합, 및 예를 들어 등장방형 매핑 또는 입방체 매핑(이것들에만 제한되지는 않음)을 이용하여 3D 구의 2D 프레임으로의 매핑을 수행할 수 있다. 전처리 모듈(300)은 또한 특정 포맷(예를 들어, 등장방형)으로 전방향성 비디오를 입력으로서 수용할 수 있고, 비디오를 전처리하여 인코딩에 더 적합한 포맷으로 매핑을 변경할 수 있다. 획득된 비디오 데이터 표현에 의존하여, 전처리 모듈은 매핑 공간 변경을 수행할 수 있다. 인코딩 디바이스(400) 및 인코딩 방법은 본 명세서의 다른 도면들에 대하여 설명될 것이다. 인코딩된 후에, 예를 들어, 몰입형 비디오 데이터 또는 3D CGI 인코딩된 데이터를 인코딩할 수 있는 데이터는 네트워크 인터페이스(500)에 송신되는데, 이것은 통상적으로 예를 들어, 게이트웨이에 존재하는 임의의 네트워크 인터페이스에 구현될 수 있다. 그 후, 데이터는 인터넷과 같은 통신 네트워크를 통해 전송되지만, 임의의 다른 네트워크가 예상될 수 있다. 그 후, 데이터는 네트워크 인터페이스(600)를 통해 수신된다. 네트워크 인터페이스(600)는 게이트웨이에서, 텔레비전에서, 셋톱 박스에서, 헤드 장착 디스플레이 디바이스에서, 몰입형(투영) 벽에서, 또는 임의의 몰입형 비디오 렌더링 디바이스에서 구현될 수 있다. 수신 후에, 데이터는 디코딩 디바이스(700)에 송신된다. 디코딩 기능은 이하의 도 2 내지 도 12에서 설명된 처리 기능들 중 하나이다. 이후, 디코딩된 데이터는 플레이어(800)에 의해 처리된다. 플레이어(800)는 렌더링 디바이스(900)를 위해 데이터를 준비하고, 센서들 또는 사용자 입력 데이터로부터 외부 데이터를 수신할 수 있다. 더 정확하게는, 플레이어(800)는 렌더링 디바이스(900)에 의해 디스플레이될 비디오 콘텐츠의 부분을 준비한다. 디코딩 디바이스(700) 및 플레이어(800)는 단일 디바이스(예를 들어, 스마트폰, 게임 콘솔, STB, 태블릿, 컴퓨터 등)에 통합될 수 있다. 변형에서, 플레이어(800)는 렌더링 디바이스(900)에 통합된다.
예를 들어, 몰입형 비디오를 렌더링할 때 몰입형 디스플레이 디바이스의 디코딩, 재생 및 렌더링 기능들을 수행하기 위해 여러 유형의 시스템들이 구상될 수 있다.
증강 현실, 가상 현실, 또는 증강 가상 콘텐츠를 처리하기 위한 제1 시스템이 도 2 내지 도 6에 도해된다. 이러한 시스템은 처리 기능들, 및 예를 들어 HMD(head-mounted display), 태블릿 또는 스마트폰일 수 있고 센서들을 포함할 수 있는 몰입형 비디오 렌더링 디바이스를 포함한다. 몰입형 비디오 렌더링 디바이스는 또한 디스플레이 디바이스와 처리 기능들 사이에 추가적인 인터페이스 모듈들을 포함할 수 있다. 처리 기능들은 하나 또는 여러 디바이스에 의해 수행될 수 있다. 이들은 몰입형 비디오 렌더링 디바이스 내에 통합될 수 있거나, 또는 이들은 하나 또는 여러 개의 처리 디바이스에 통합될 수 있다. 처리 디바이스는 하나 또는 여러 개의 프로세서, 및 무선 또는 유선 통신 인터페이스와 같은, 몰입형 비디오 렌더링 디바이스와의 통신 인터페이스를 포함한다.
처리 디바이스는 또한 인터넷과 같은 와이드 액세스 네트워크와의 제2 통신 인터페이스를 포함하고, 직접적으로 또는 가정 또는 로컬 게이트웨이와 같은 네트워크 디바이스를 통해 클라우드상에 위치한 콘텐츠에 액세스할 수 있다. 처리 디바이스는 또한 이더넷 타입의 로컬 액세스 네트워크 인터페이스와 같은 제3 인터페이스를 통해 로컬 저장소에 액세스할 수 있다. 일 실시예에서, 처리 디바이스는 하나 또는 여러 개의 처리 유닛을 갖는 컴퓨터 시스템일 수 있다. 또 다른 실시예에서, 이것은 몰입형 비디오 렌더링 디바이스에 유선 또는 무선 링크를 통해 접속될 수 있거나 또는 몰입형 비디오 렌더링 디바이스의 하우징에 삽입될 수 있고 이것과 커넥터를 통해 또는 역시 무선으로 통신하는 스마트폰일 수 있다. 처리 디바이스의 통신 인터페이스들은 유선 인터페이스(예를 들어, 버스 인터페이스, 광역 네트워크 인터페이스, 로컬 영역 네트워크 인터페이스) 또는 무선 인터페이스(예를 들어, IEEE 802.11 인터페이스 또는 Bluetooth® 인터페이스)이다.
처리 기능들이 몰입형 비디오 렌더링 디바이스에 의해 수행될 때, 몰입형 비디오 렌더링 디바이스는 콘텐츠를 수신 및/또는 송신하기 위해 직접적으로 또는 게이트웨이를 통해 네트워크에의 인터페이스를 제공받을 수 있다.
또 다른 실시예에서, 시스템은 몰입형 비디오 렌더링 디바이스와 및 처리 디바이스와 통신하는 보조 디바이스를 포함한다. 이러한 실시예에서, 이 보조 디바이스는 처리 기능들 중 적어도 하나를 포함할 수 있다.
몰입형 비디오 렌더링 디바이스는 하나 또는 여러 개의 디스플레이를 포함할 수 있다. 디바이스는 그것의 디스플레이 각각의 전면에 렌즈들과 같은 광학계를 채택할 수 있다. 디스플레이는 또한 스마트폰들 또는 태블릿들의 경우에서와 같이 몰입형 디스플레이 디바이스의 일부일 수 있다. 또 다른 실시예에서, 디스플레이들 및 광학계는 헬멧, 안경, 또는 사용자가 착용할 수 있는 바이저(visor)에 내장될 수 있다. 몰입형 비디오 렌더링 디바이스는 또한 후술하는 바와 같이 여러 개의 센서를 통합할 수 있다. 몰입형 비디오 렌더링 디바이스는 또한 몇 개의 인터페이스 또는 커넥터를 포함할 수 있다. 이것은 센서들, 처리 기능들, 핸드헬드 또는 다른 바디 부분 관련 디바이스들 또는 센서들과 통신하기 위해 하나 또는 여러 개의 무선 모듈을 포함할 수 있다.
몰입형 비디오 렌더링 디바이스는 또한 하나 또는 여러 개의 프로세서에 의해 실행되고 또한 콘텐츠를 디코딩하거나 콘텐츠를 처리하도록 구성된 처리 기능들을 포함할 수 있다. 여기서 콘텐츠를 처리함으로써, 디스플레이될 수 있는 콘텐츠를 준비하는 모든 기능들이 이해된다. 이는, 예를 들어, 콘텐츠를 디코딩하는 것, 콘텐츠를 디스플레이하기 전에 콘텐츠를 병합하는 것, 및 디스플레이 디바이스에 맞도록 콘텐츠를 수정하는 것을 포함할 수 있다.
몰입형 콘텐츠 렌더링 디바이스의 하나의 기능은 가상 볼륨(virtual volume)으로서 구조화된 콘텐츠의 적어도 일부를 캡처하는 가상 카메라를 제어하는 것이다. 시스템은 가상 카메라의 자세(pose)를 처리하기 위해, 사용자의 자세, 예를 들어, 사용자의 머리의 자세를 완전히 또는 부분적으로 추적하는 자세 추적 센서들을 포함할 수 있다. 일부 포지셔닝 센서들은 사용자의 변위를 추적할 수 있다. 시스템은 또한 예를 들어 조명, 온도 또는 소리 상태들을 측정하기 위한 다른 환경 관련 센서들을 포함할 수 있다. 이러한 센서들은 또한, 예를 들어, 땀 또는 심박수를 측정하기 위해 사용자들의 신체들과 관계될 수 있다. 이러한 센서들을 통해 획득된 정보는 콘텐츠를 처리하는 데 사용될 수 있다. 시스템은 또한 사용자 입력 디바이스들(예를 들어, 마우스, 키보드, 리모콘, 조이스틱)을 포함할 수 있다. 사용자 입력 디바이스들로부터의 정보는 콘텐츠를 처리하거나, 사용자 인터페이스들을 관리하거나, 또는 가상 카메라의 자세를 제어하는 데 사용될 수 있다. 센서들 및 사용자 입력 디바이스들은 유선 또는 무선 통신 인터페이스들을 통해 처리 디바이스와 및/또는 몰입형 렌더링 디바이스와 통신한다.
도 2 내지 도 6을 사용하여, 증강 현실, 가상 현실, 증강 가상 또는 증강 현실로부터 가상 현실로의 임의의 콘텐츠를 디스플레이하기 위한 제1 유형의 시스템에 대해 여러 실시예가 설명된다. 도 2는 몰입형 비디오들을 디코딩, 처리 및 렌더링하도록 구성된 시스템의 특정 실시예를 도해한다. 시스템은 몰입형 비디오 렌더링 디바이스(10), 센서들(20), 사용자 입력 디바이스들(30), 컴퓨터(40) 및 게이트웨이(50)(선택적)를 포함한다.
도 10에 도해된 몰입형 비디오 렌더링 디바이스(10)는 디스플레이(101)를 포함한다. 디스플레이는, 예를 들어, OLED 또는 LCD 타입이다. 몰입형 비디오 렌더링 디바이스(10)는, 예를 들어, HMD, 태블릿 또는 스마트폰이다. 디바이스(10)는 터치 표면(102)(예를 들어, 터치패드 또는 촉각 스크린), 카메라(103), 적어도 하나의 프로세서(104)와 접속된 메모리(105), 및 적어도 하나의 통신 인터페이스(106)를 포함할 수 있다. 적어도 하나의 프로세서(104)는 센서들(20)로부터 수신된 신호들을 처리한다. 센서들로부터의 측정들 중 일부는 디바이스의 자세를 계산하고 가상 카메라를 제어하는 데 사용된다. 자세 추정을 위해 사용되는 센서들은, 예를 들어, 자이로스코프, 가속도계 또는 나침반이다. 예를 들어, 카메라들의 리그(rig)를 이용하는 더 복잡한 시스템들이 또한 사용될 수 있다. 이 경우, 적어도 하나의 프로세서는 디바이스(10)의 자세를 추정하기 위해 이미지 처리를 수행한다. 환경 조건들 또는 사용자의 반응에 따라 콘텐츠를 처리하기 위해 일부 다른 측정들이 사용된다. 환경 및 사용자들을 관찰하기 위해 사용되는 센서들은, 예를 들어, 마이크로폰들, 광 센서 또는 접촉 센서들이다. 더 복잡한 시스템들이 또한, 예를 들어 사용자의 눈을 추적하는 비디오 카메라처럼 사용될 수 있다. 이 경우, 적어도 하나의 프로세서는 예상된 측정을 작동시키기 위해 이미지 처리를 수행한다. 센서들(20) 및 사용자 입력 디바이스들(30) 데이터는 또한 이들 센서의 입력에 따라 데이터를 처리할 컴퓨터(40)에 전송될 수 있다.
메모리(105)는 프로세서(104)에 대한 파라미터들 및 코드 프로그램 명령어들을 포함한다. 메모리(105)는 또한 센서들(20) 및 사용자 입력 디바이스들(30)로부터 수신된 파라미터들을 포함할 수 있다. 통신 인터페이스(106)는 몰입형 비디오 렌더링 디바이스가 컴퓨터(40)와 통신할 수 있게 한다. 처리 디바이스의 통신 인터페이스(106)는 유선 인터페이스들(예를 들어, 버스 인터페이스, 광역 네트워크 인터페이스, 로컬 영역 네트워크 인터페이스) 또는 무선 인터페이스들(예를 들어, IEEE 802.11 인터페이스 또는 Bluetooth® 인터페이스)이다. 컴퓨터(40)는 데이터 및 선택적으로 제어 명령들을 몰입형 비디오 렌더링 디바이스(10)에 송신한다. 컴퓨터(40)는 데이터를 처리하는 것을 담당하는데, 즉 몰입형 비디오 렌더링 디바이스(10)에 의한 디스플레이를 위해 이들을 준비한다. 처리는 컴퓨터(40)에 의해 배타적으로 행해질 수 있거나 또는 처리의 일부가 컴퓨터에 의해 행해질 수 있고 일부는 몰입형 비디오 렌더링 디바이스(10)에 의해 이루어질 수 있다. 컴퓨터(40)는 직접적으로 또는 게이트웨이 또는 네트워크 인터페이스(50)를 통해 인터넷에 접속된다. 컴퓨터(40)는 인터넷으로부터 몰입형 비디오를 나타내는 데이터를 수신하고, 이들 데이터를 처리하고(예를 들어, 이들을 디코딩하여 몰입형 비디오 렌더링 디바이스(10)에 의해 디스플레이될 비디오 콘텐츠의 부분을 가능하게는 준비하고), 처리된 데이터를 디스플레이를 위해 몰입형 비디오 렌더링 디바이스(10)에 송신한다. 변형에서, 시스템은 또한 몰입형 비디오를 나타내는 데이터가 저장되는 로컬 저장소(표현되지 않음)를 포함할 수 있고, 상기 로컬 저장소는 컴퓨터(40)상에 또는 예를 들어 (표현되지 않은) 로컬 영역 네트워크를 통해 액세스가능한 로컬 서버상에 있을 수 있다.
도 3은 제2 실시예를 나타낸다. 이 실시예에서, STB(90)는 인터넷과 같은 네트워크에 직접 접속되거나(즉, STB(90)는 네트워크 인터페이스를 포함함) 또는 게이트웨이 또는 네트워크 인터페이스(50)를 통해 접속된다. STB(90)는 무선 인터페이스를 통해 또는 유선 인터페이스를 통해 텔레비전 세트(100) 또는 몰입형 비디오 렌더링 디바이스(200)와 같은 렌더링 디바이스들에 접속된다. STB의 고전적인 기능들에 더하여, STB(90)는 텔레비전(100)상에 또는 임의의 몰입형 비디오 렌더링 디바이스(200)상에 렌더링하기 위해 비디오 콘텐츠를 처리하기 위한 처리 기능들을 포함한다. 이들 처리 기능은 컴퓨터(40)에 대해 설명된 것들과 동일하며, 여기서 다시 설명되지 않는다. 센서들(20)및 사용자 입력 디바이스들(30)은 또한 도 2와 관련하여 전술한 것들과 동일한 타입의 것들이다. STB(90)는 인터넷으로부터 몰입형 비디오를 나타내는 데이터를 획득한다. 변형에서, STB(90)는 몰입형 비디오를 나타내는 데이터가 저장되는 로컬 저장소(표현되지 않음)로부터 몰입형 비디오를 나타내는 데이터를 획득하고, 상기 로컬 저장소는 예를 들어 (표현되지 않은) 로컬 영역 네트워크를 통해 액세스가능한 로컬 서버상에 있을 수 있다.
도 4는 도 2에 나타낸 것과 관계된 제3 실시예를 나타낸다. 게임 콘솔(60)은 콘텐츠 데이터를 처리한다. 게임 콘솔(60)은 데이터 및 선택적으로 제어 명령들을 몰입형 비디오 렌더링 디바이스(10)에 송신한다. 게임 콘솔(60)은 몰입형 비디오를 나타내는 데이터를 처리하고 및 처리된 데이터를 디스플레이를 위해 몰입형 비디오 렌더링 디바이스(10)에 송신하도록 구성된다. 처리는 게임 콘솔(60)에 의해 배타적으로 행해질 수 있거나 또는 처리의 일부가 몰입형 비디오 렌더링 디바이스(10)에 의해 행해질 수 있다.
게임 콘솔(60)은 직접적으로 또는 게이트웨이 또는 네트워크 인터페이스(50)를 통해 인터넷에 접속된다. 게임 콘솔(60)은 인터넷으로부터 몰입형 비디오를 나타내는 데이터를 획득한다. 변형에서, 게임 콘솔(60)은 몰입형 비디오를 나타내는 데이터가 저장된 로컬 저장소(표현되지 않음)로부터 몰입형 비디오를 나타내는 데이터를 획득하는데, 상기 로컬 저장소는 게임 콘솔(60)상에 또는 예를 들어 (표현되지 않은) 로컬 영역 네트워크를 통해 액세스가능한 로컬 서버상에 있을 수 있다.
게임 콘솔(60)은 인터넷으로부터 몰입형 비디오를 나타내는 데이터를 수신하고, 이들 데이터를 처리하고(예를 들어, 이들을 디코딩하고 가능하게는 디스플레이될 비디오의 일부를 준비하고), 처리된 데이터를 디스플레이를 위해 몰입형 비디오 렌더링 디바이스(10)에 송신한다. 게임 콘솔(60)은 센서들(20) 및 사용자 입력 디바이스들(30)로부터 데이터를 수신할 수 있고, 인터넷으로부터 또는 로컬 저장소로부터 획득된 몰입형 비디오를 나타내는 데이터를 처리하기 위해 이들을 사용할 수 있다.
도 5는 몰입형 비디오 렌더링 디바이스(70)가 하우징(705)에 삽입된 스마트폰(701)에 의해 형성되는 상기 제1 유형의 시스템의 제4 실시예를 나타낸다. 스마트폰(701)은 인터넷에 접속될 수 있고, 따라서 인터넷으로부터 몰입형 비디오를 나타내는 데이터를 획득할 수 있다. 변형에서, 스마트폰(701)은 몰입형 비디오를 나타내는 데이터가 저장된 로컬 저장소(표현되지 않음)로부터 몰입형 비디오를 나타내는 데이터를 획득하는데, 상기 로컬 저장소는 스마트폰(701)상에 또는 예를 들어 (표현되지 않은) 로컬 영역 네트워크를 통해 액세스가능한 로컬 서버상에 있을 수 있다.
몰입형 비디오 렌더링 디바이스(70)는 몰입형 비디오 렌더링 디바이스(70)의 바람직한 실시예를 제공하는 도 11을 참조하여 설명된다. 그것은 선택적으로 적어도 하나의 네트워크 인터페이스(702) 및 스마트폰(701)을 위한 하우징(705)을 포함한다. 스마트폰(701)은 스마트폰 및 디스플레이의 모든 기능들을 포함한다. 스마트폰의 디스플레이는 몰입형 비디오 렌더링 디바이스(70) 디스플레이로서 사용된다. 따라서, 스마트폰(701)의 디스플레이 이외의 어떤 디스플레이도 포함되지 않는다. 그러나, 스마트폰 디스플레이상의 데이터를 보기 위해 렌즈와 같은 광학계(704)가 포함된다. 스마트폰(701)은 가능하게는 센서들(20)로부터 그리고 사용자 입력 디바이스들(30)로부터 수신된 데이터에 따라 몰입형 비디오를 나타내는 데이터를 처리(예를 들어, 디스플레이를 위해 디코딩하고 준비)하도록 구성된다. 센서들로부터의 측정들 중 일부는 디바이스의 자세를 계산하고 가상 카메라를 제어하는 데 사용된다. 자세 추정을 위해 사용되는 센서들은, 예를 들어, 자이로스코프, 가속도계 또는 나침반이다. 예를 들어, 카메라들의 리그(rig)를 이용하는 더 복잡한 시스템들이 또한 사용될 수 있다. 이 경우, 적어도 하나의 프로세서는 디바이스(10)의 자세를 추정하기 위해 이미지 처리를 수행한다. 환경 조건들 또는 사용자의 반응에 따라 콘텐츠를 처리하기 위해 일부 다른 측정들이 사용된다. 환경 및 사용자들을 관찰하기 위해 사용되는 센서들은, 예를 들어, 마이크로폰들, 광 센서 또는 접촉 센서들이다. 더 복잡한 시스템들이 또한, 예를 들어 사용자의 눈을 추적하는 비디오 카메라처럼 사용될 수 있다. 이 경우, 적어도 하나의 프로세서는 예상된 측정을 작동시키기 위해 이미지 처리를 수행한다.
도 6은 몰입형 비디오 렌더링 디바이스(80)가 데이터 콘텐츠를 처리하고 디스플레이하기 위한 모든 기능들을 포함하는 상기 제1 유형의 시스템의 제5 실시예를 나타낸다. 시스템은 몰입형 비디오 렌더링 디바이스(80), 센서들(20) 및 사용자 입력 디바이스들(30)을 포함한다. 몰입형 비디오 렌더링 디바이스(80)는 가능하게는 센서들(20)로부터 그리고 사용자 입력 디바이스들(30)로부터 수신된 데이터에 따라 몰입형 비디오를 나타내는 데이터를 처리(예를 들어, 디스플레이를 위해 디코딩하고 준비)하도록 구성된다. 몰입형 비디오 렌더링 디바이스(80)는 인터넷에 접속될 수 있고, 따라서 인터넷으로부터 몰입형 비디오를 나타내는 데이터를 획득할 수 있다. 변형에서, 몰입형 비디오 렌더링 디바이스(80)는 몰입형 비디오를 나타내는 데이터가 저장되는 로컬 저장소(표현되지 않음)로부터 몰입형 비디오를 나타내는 데이터를 획득하는데, 상기 로컬 저장소는 몰입형 비디오 렌더링 디바이스(80)상에 또는 예를 들어 (표현되지 않은) 로컬 영역 네트워크를 통해 액세스가능한 로컬 서버상에 있을 수 있다.
몰입형 비디오 렌더링 디바이스(80)가 도 12에 도해된다. 몰입형 비디오 렌더링 디바이스는 디스플레이(801)를 포함한다. 디스플레이는 예를 들어 OLED 또는 LCD 타입, 터치패드(선택적)(802), 카메라(선택적)(803), 적어도 하나의 프로세서(804)와 접속된 메모리(805) 및 적어도 하나의 통신 인터페이스(806)일 수 있다. 메모리(805)는 프로세서(804)에 대한 파라미터들 및 코드 프로그램 명령어들을 포함한다. 메모리(805)는 또한 센서들(20) 및 사용자 입력 디바이스들(30)로부터 수신된 파라미터들을 포함할 수 있다. 메모리는 또한 몰입형 비디오 콘텐츠를 나타내는 데이터를 저장하기에 충분히 클 수 있다. 메모리(805)는 상이한 타입들(SD 카드, 하드 디스크, 휘발성 또는 비휘발성 메모리...)일 수 있다. 통신 인터페이스(806)는 몰입형 비디오 렌더링 디바이스가 인터넷 네트워크와 통신할 수 있게 한다. 프로세서(804)는 디스플레이(801)상에 비디오를 나타내는 데이터를 디스플레이하기 위해 비디오를 나타내는 데이터를 처리한다. 카메라(803)는 이미지 처리 단계를 위해 환경의 이미지들을 캡처한다. 몰입형 비디오 렌더링 디바이스를 제어하기 위해 이 단계로부터 데이터가 추출된다.
증강 현실, 가상 현실 또는 증강 가상 콘텐츠를 처리하기 위한 제2 시스템이 도 7 내지 도 9에 도해된다. 이러한 시스템은 몰입형 벽을 포함한다.
도 7은 제2 타입의 시스템을 나타낸다. 이것은 컴퓨터(4000)로부터 데이터를 수신하는 몰입형(투영) 벽인 디스플레이(1000)를 포함한다. 컴퓨터(4000)는 인터넷으로부터 몰입형 비디오 데이터를 수신할 수 있다. 컴퓨터(4000)는 보통은 인터넷에 직접적으로 또는 게이트웨이(5000) 또는 네트워크 인터페이스를 통해 접속된다. 변형에서, 몰입형 비디오 데이터는 몰입형 비디오를 나타내는 데이터가 저장되는 로컬 저장소(표현되지 않음)로부터 컴퓨터(4000)에 의해 획득되는데, 상기 로컬 저장소는 컴퓨터(4000)에 또는 예를 들어 (표현되지 않은) 로컬 영역 네트워크를 통해 액세스가능한 로컬 서버에 있을 수 있다.
이 시스템은 또한 센서들(2000)및 사용자 입력 디바이스들(3000)을 포함할 수 있다. 몰입형 벽(1000)은 OLED 또는 LCD 타입의 것일 수 있다. 그것은 하나 또는 여러 개의 카메라를 구비할 수 있다. 몰입형 벽(1000)은 센서(2000)(또는 복수의 센서(2000))로부터 수신된 데이터를 처리할 수 있다. 센서들(2000)로부터 수신된 데이터는 조명 조건들, 온도, 사용자의 환경, 예를 들어 물체들의 위치에 관계될 수 있다.
몰입형 벽(1000)은 또한 사용자 입력 디바이스들(3000)로부터 수신된 데이터를 처리할 수 있다. 사용자 입력 디바이스들(3000)은 사용자 감정에 대한 피드백을 제공하기 위해 햅틱 신호와 같은 데이터를 송신한다. 사용자 입력 디바이스들(3000)의 예는 스마트폰, 리모콘, 및 자이로스코프 기능을 갖는 디바이스와 같은 핸드헬드 디바이스이다.
센서들(2000) 및 사용자 입력 디바이스들(3000) 데이터는 또한 컴퓨터(4000)에 전송될 수 있다. 컴퓨터(4000)는 이러한 센서들/사용자 입력 디바이스들로부터 수신된 데이터에 따라 비디오 데이터를 처리(예를 들어, 디스플레이를 위해 이들을 디코딩하고 그들을 준비)할 수 있다. 센서 신호들은 몰입형 벽의 통신 인터페이스를 통해 수신될 수 있다. 이 통신 인터페이스는 블루투스 타입, WIFI 타입 또는 임의의 다른 타입의 접속일 수 있지만, 우선적으로는 무선이지만 유선 접속일 수도 있다.
컴퓨터(4000)는 처리된 데이터 및 선택적으로 제어 명령들을 몰입형 벽(1000)에 송신한다. 컴퓨터(4000)는 몰입형 벽(1000)에 의해 디스플레이되도록 데이터를 처리하기 위해, 즉 디스플레이를 위해 이들을 준비하도록 구성된다. 처리는 컴퓨터(4000)에 의해 배타적으로 행해질 수 있거나, 처리의 일부는 컴퓨터(4000)에 의해 행해질 수 있고 일부는 몰입형 벽(1000)에 의해 행해질 수 있다.
도 8은 제2 타입의 또 다른 시스템을 나타낸다. 이것은 비디오 콘텐츠를 처리(예를 들어, 디스플레이를 위해 데이터를 디코딩하고 준비)하고 비디오 콘텐츠를 디스플레이하도록 구성되는 몰입형(투영) 벽(6000)을 포함한다. 그것은 센서들(2000), 사용자 입력 디바이스들(3000)을 더 포함한다.
몰입형 벽(6000)은 게이트웨이(5000)를 통해 인터넷으로부터 또는 인터넷으로부터 직접적으로 몰입형 비디오 데이터를 수신한다. 변형에서, 몰입형 비디오 데이터는 몰입형 비디오를 나타내는 데이터가 저장되는 로컬 저장소(표현되지 않음)로부터 몰입형 벽(6000)에 의해 획득되는데, 상기 로컬 저장소는 몰입형 벽(6000)에 또는 예를 들어 (표현되지 않은) 로컬 영역 네트워크를 통해 액세스가능한 로컬 서버에 있을 수 있다.
이 시스템은 또한 센서들(2000) 및 사용자 입력 디바이스들(3000)을 포함할 수 있다. 몰입형 벽(6000)은 OLED 또는 LCD 타입의 것일 수 있다. 그것은 하나 또는 여러 개의 카메라를 구비할 수 있다. 몰입형 벽(6000)은 센서(2000)(또는 복수의 센서(2000))로부터 수신된 데이터를 처리할 수 있다. 센서들(2000)로부터 수신된 데이터는 조명 조건들, 온도, 사용자의 환경, 예를 들어 물체들의 위치에 관계될 수 있다.
몰입형 벽(6000)은 또한 사용자 입력 디바이스들(3000)로부터 수신된 데이터를 처리할 수 있다. 사용자 입력 디바이스들(3000)은 사용자 감정에 대한 피드백을 제공하기 위해 햅틱 신호와 같은 데이터를 송신한다. 사용자 입력 디바이스들(3000)의 예는 스마트폰, 리모콘, 및 자이로스코프 기능을 갖는 디바이스와 같은 핸드헬드 디바이스이다.
몰입형 벽(6000)은 이러한 센서들/사용자 입력 디바이스들로부터 수신된 데이터에 따라 비디오 데이터를 처리(예를 들어, 디스플레이를 위해 이들을 디코딩하고 그들을 준비)할 수 있다. 센서 신호들은 몰입형 벽의 통신 인터페이스를 통해 수신될 수 있다. 이 통신 인터페이스는 블루투스 타입, WIFI 타입 또는 임의의 다른 타입의 접속일 수 있지만, 우선적으로는 무선이지만 유선 접속일 수도 있다. 몰입형 벽(6000)은 센서들과 및 인터넷과 통신하기 위해 적어도 하나의 통신 인터페이스를 포함할 수 있다.
도 9는 몰입형 벽이 게임을 위해 사용되는 제3 실시예를 도해한다. 하나 또는 여러 개의 게임 콘솔(7000)이 바람직하게는 몰입형 벽(6000)에의 무선 인터페이스를 통해 접속된다. 몰입형 벽(6000)은 게이트웨이(5000)를 통해 인터넷으로부터 또는 인터넷으로부터 직접적으로 몰입형 비디오 데이터를 수신한다. 변형에서, 몰입형 비디오 데이터는 몰입형 비디오를 나타내는 데이터가 저장되는 로컬 저장소(표현되지 않음)로부터 몰입형 벽(6000)에 의해 획득되는데, 상기 로컬 저장소는 몰입형 벽(6000)에 또는 예를 들어 (표현되지 않은) 로컬 영역 네트워크를 통해 액세스가능한 로컬 서버에 있을 수 있다.
게임 콘솔(7000)은 명령어들 및 사용자 입력 파라미터들을 몰입형 벽(6000)에 송신한다. 몰입형 벽(6000)은 디스플레이를 위해 콘텐츠를 준비하기 위해 가능하게는 센서들(2000) 및 사용자 입력 디바이스들(3000) 및 게임 콘솔들(7000)로부터 수신된 입력 데이터에 따라 몰입형 비디오 콘텐츠를 처리한다. 몰입형 벽(6000)은 또한 디스플레이될 콘텐츠를 저장하기 위한 내부 메모리를 포함할 수 있다. 몰입형 벽(6000)은 OLED 또는 LCD 타입의 것일 수 있다. 그것은 하나 또는 여러 개의 카메라를 구비할 수 있다.
센서들(2000)로부터 수신된 데이터는 조명 조건들, 온도, 사용자의 환경, 예를 들어 물체들의 위치에 관계될 수 있다. 몰입형 벽(6000)은 또한 사용자 입력 디바이스들(3000)로부터 수신된 데이터를 처리할 수 있다. 사용자 입력 디바이스들(3000)은 사용자 감정에 대한 피드백을 제공하기 위해 햅틱 신호와 같은 데이터를 송신한다. 사용자 입력 디바이스들(3000)의 예는 스마트폰, 리모콘, 및 자이로스코프 기능을 갖는 디바이스와 같은 핸드헬드 디바이스이다.
몰입형 벽(6000)은 이들 센서들/사용자 입력 디바이스들로부터 수신된 데이터에 따라 몰입형 비디오 데이터를 처리(예를 들어, 디스플레이를 위해 이들을 디코딩하고 이들을 준비)할 수 있다. 센서 신호들은 몰입형 벽의 통신 인터페이스를 통해 수신될 수 있다. 이 통신 인터페이스는 블루투스 타입, WIFI 타입 또는 임의의 다른 타입의 접속일 수 있지만, 우선적으로는 무선이지만 유선 접속일 수도 있다. 몰입형 벽(6000)은 센서들과 및 인터넷과 통신하기 위해 적어도 하나의 통신 인터페이스를 포함할 수 있다.
도 17은 본 개시내용의 일 실시예에 따라 전방향성 비디오의 투영인 2D 픽처의 현재 블록을 코딩하기 위한 예시적인 방법에 대한 블록도들을 도해한다. 상기 전방향성 비디오의 적어도 하나의 픽처는 위에 개시된 바와 같이 구 또는 입방체와 같은 3D 면으로서 표현된다. 그러나, 본 원리는 전방향성 비디오의 임의의 3D 표현에 적용될 수 있다. 3D 면은 투영 함수를 이용하여 적어도 하나의 2D 픽처상에 투영된다. 예를 들어, 그러한 투영 함수는 등장방형 투영 또는 다른 타입의 투영 함수일 수 있다. 그 후, 2D 결과적 픽처는 픽셀의 비중첩 블록들로 분할된다. 본 방법은, 도 15에 개시된 것과 같은 종래의 이웃을 이용하여, 종래의 2D 비디오 코딩 방식을 이용하여 인코딩될 2D 픽처의 적어도 하나의 현재 블록에 대해 여기 개시된다.
블록 1700에서, 상기 2D 픽처의 적어도 하나의 이웃 블록이, 3D 면을 2D 픽처상으로 투영하기 위해 사용되는 투영 함수에 따라 상기 현재 블록에 대해 결정된다. 결정된 이웃 블록은 2D 픽처에서 상기 현재 블록에 공간적으로 인접하지 않지만, 이웃 블록은 상기 3D 면 상에서 현재 블록에 공간적으로 인접한다.
본 원리의 일 실시예에 따르면, 투영 함수는 등장방형 투영이고, 3D 면은 구이다. 2D 픽처의 우측 경계상에 위치한 현재 블록에 대한 이웃 블록은 도 13b에 도해된 바와 같이 XY 평면에 대한 데카르트 좌표들(정규화됨)과 도 13c에 도해된 바와 같은 구에 대한 각 좌표들 사이의 하기 관계를 이용함으로써 결정된다:
Figure pct00001
여기서, (x,y)는 2D 픽처의 정규화된 XY 평면상의 포인트 M의 위치에 대응하고,
Figure pct00002
는 구상의 대응하는 포인트 M'의 좌표들이다.
도 16a의 경우에, 2D 픽처의 최종 열의 블록의 우측 이웃 블록, 예를 들어 블록 F에 대해, 블록의 좌상 코너의 포인트는 2D 픽처에서의 열 인덱스 w에 위치하고, XY 평면상의 x=1에 위치한다. 구상의 그의 대응하는 포인트는 각 좌표
Figure pct00003
를 갖는다.
따라서, 2D 픽처의 우측 경계상에 위치한 현재 블록(즉, 2D 픽처의 마지막 열)에 대해, 이웃 블록은 현재 블록의 동일한 행상의 2D 픽처의 제1 블록인 것으로서 결정된다. 예를 들어, 도 16a에 도해된 바와 같이, 현재 블록들 F 및 J에 대해, 결정된 이웃 블록들은 제각기 A 및 G이다.
본 개시내용의 일 실시예에 따르면, 2D 픽처의 우측 경계상에 위치한 현재 블록에 대한 이웃 블록은 또한 현재 블록의 행 아래의 또는 그 위의 행상에 2D 픽처의 좌측 경계상에 위치한 이웃 블록들일 수 있다. 등장방형 투영으로 인해, 그러한 이웃 블록들은 구상의 현재 블록에 적어도 부분적으로 공간적으로 인접한다. 예를 들어, 도 16a에 도해된 블록 J에 대해, 블록 A 및/또는 K는 본 원리에 따라 이웃 블록으로서 결정될 수 있는데, 그 이유는 그러한 블록들이 3D 면상에서 블록 J에 적어도 부분적으로 공간적으로 인접하기 때문이다. 그러나, 이웃 블록으로서 결정되기 위해, 타겟 블록, 예를 들어 K는 현재 블록을 코딩하기 위해 이용가능해야 하는데, 즉, 이웃 블록은 코딩/디코딩을 위해 사용되는 스캔 순서에 따라 현재 블록 이전에 코딩/디코딩되어야 할 것이다. 이웃 블록 K 및 현재 블록 J에 대해, 예를 들어, 블록들 K 및 J가 코딩 유닛의 동일한 행에 위치하는 블록들의 그룹을 포함하는 코딩 유닛들에 속할 때, 그러한 경우가 발생할 수 있다.
또 다른 실시예에 따르면, 투영 함수가 입방체 투영일 때, 2D 픽처상에 투영된 입방체의 현재 면의 경계상에(입방체의 현재 면의 마지막 또는 제1 열상에) 위치한 현재 블록에 대해, 이웃 블록은 현재 면이 3D 면상의 에지를 공유하는 입방체의 또 다른 면의 경계상의 블록인 것으로서 결정된다. 예를 들어, 도 16b는 입방체의 6개의 투영된 면이 도 16c에 도시된 레이아웃에 따라 그 상에 재배열된 2D 픽처를 도해한다. 현재 블록들 C, A, E, 및 K에 대해, 본 원리에 따라 결정되는 이웃 블록들은 제각기 D, F, I, 및 H이다. 입방체 투영에 따라 이웃 블록들을 결정하기 위해, 이하에 개시된 바와 같이 도 14c에 도해된 XY 평면에서의 포인트의 데카르트 좌표들과 입방체상의 것들 사이의 관계가 이용될 수 있다.
Figure pct00004
대응하는 레이아웃은 도 16c에 도해된다. 좌표 k는 면 번호를 나타내고,
Figure pct00005
, 여기서
Figure pct00006
인데, 해당 면상의 좌표를 나타낸다. 입방체의 각각의 면은 폭 w 및 높이 h를 갖는다.
블록 1701에서, 일단 적어도 하나의 이웃 블록이 본 원리에 따라 결정되면, 현재 블록은 적어도 결정된 이웃 블록을 이용하여 상기 비트스트림으로 인코딩된다. 현재 블록의 인코딩 동안, 모든 인코딩 모듈들 또는 이들 중 일부만이 결정된 이웃 블록을 이용할 수 있는데, 이는 아래에 상세히 설명될 것이다.
블록 1702에서, 투영 함수에 관련한 정보의 적어도 하나의 아이템이 비트스트림으로 코딩된다. 이러한 정보 아이템은 3D 면을 2D 픽처상으로 투영하는 데 사용되는 투영 함수의 종류를 디코더에 표시하는 것을 허용한다. 따라서, 디코더는 인코딩 동안 수행된 대로의 현재 블록의 이웃을 결정하고 동일한 이웃을 사용할 수 있다.
상이한 변형들에 따르면, 투영 함수에 관련한 정보의 아이템은 H.264/AVC 표준 또는 HEVC 표준에 의해 정의된 바와 같은 시퀀스 파라미터 세트 신택스 요소에서, 또는 H.264/AVC 표준 또는 HEVC 표준에 의해 정의된 바와 같은 픽처 파라미터 세트 신택스 요소에서, 또는 H.264/AVC 표준 또는 HEVC 표준에 의해 정의된 바와 같은 상기 2D 픽처에 대응하는 슬라이스 헤더 신택스 요소에서 코딩될 수 있다. 투영 함수에 관련한 정보의 아이템은 픽처 또는 시퀀스 레벨에서 그러한 아이템을 시그널링하는 것을 허용하는 임의의 적합한 신택스 요소에서 코딩될 수 있다.
도 18은 예시적인 비디오 인코더(400)를 도해하는 개략적인 블록도이다. 이러한 비디오 인코더(400)는 본 원리의 일 실시예에 따라, 전방향성 비디오의 투영을 나타내는 픽처들의 세트의 비트스트림으로 인코딩하는 것을 수행한다. 비디오 인코더(400)는 HEVC 코더에 부합하는 것으로서 개시되지만, 본 원리는 2D 픽처들의 시퀀스로서 비디오를 처리하는 임의의 2D 비디오 코딩 방식들에 적용될 수 있다.
전통적으로, 비디오 인코더(400)는 도 18에 도해된 바와 같이, 블록 기반 비디오 인코딩을 위한 여러 개의 모듈을 포함할 수 있다. 전방향으로부터의 투영된 픽처, 인코딩될 비디오를 나타내는 2D 픽처 I가 인코더(400)에 입력된다.
먼저, 세분할 모듈은 픽처 I를 픽셀 유닛들의 세트로 분할한다.
사용된 비디오 코딩 표준에 의존하여, 세분할 모듈에 의해 전달되는 픽셀들의 유닛들은 H.264/AVC에서와 같은 매크로블록들(MB) 또는 HEVC에서와 같은 코딩 트리 유닛(CTU)일 수 있다.
HEVC 코더에 따르면, 코딩 트리 유닛은 휘도 샘플들의 한 코딩 트리 블록(CTB) 및 크로미넌스 샘플들의 2개의 코딩 트리 블록 및 코딩 트리 블록들의 추가 세분화에 관한 대응하는 신택스 요소들을 포함한다. 휘도 샘플들의 한 코딩 트리 블록은 16x16 픽셀들, 32x32 픽셀들 또는 64x64 픽셀들의 크기를 가질 수 있다. 각각의 코딩 트리 블록은 트리 구조 및 사분트리(quadtree) 같은 시그널링을 이용하여 (코딩 블록들(CB)로 알려진) 더 작은 블록들로 추가로 세분할될 수 있다. 사분트리의 루트는 코딩 트리 유닛과 연관된다. 휘도 코딩 트리 블록의 크기는 휘도 코딩 블록에 대한 최대 지원 크기이다. 하나의 휘도 코딩 블록 및 통상적으로 2개의 크로미넌스 코딩 블록은 코딩 유닛(CU)을 형성한다. 코딩 트리 유닛은 하나의 코딩 유닛을 포함할 수 있거나, 또는 다중 코딩 유닛을 형성하도록 분할될 수 있고, 각각의 코딩 유닛은 예측 유닛들(PU) 및 변환 유닛(TU)의 트리로의 연관된 분할을 갖는다. 인터 픽처 또는 인트라 픽처 예측을 이용하여 픽처 영역을 코딩할지의 결정은 코딩 유닛 레벨에서 이루어진다. 예측 유닛 파티셔닝 구조는 코딩 유닛 레벨에 그 루트를 갖는다. 기본 예측 타입 결정에 의존하여, 휘도 및 크로미넌스 코딩 블록들은 그 후 크기가 더 분할되고 휘도 및 크로미넌스 예측 블록들(PB)로부터 예측될 수 있다. HEVC 표준은 64x64로부터 아래로 4x4 샘플까지의 가변 예측 블록 크기들을 지원한다. 예측 잔차는 블록 변환들을 이용하여 코딩된다. 변환 유닛(TU) 트리 구조는 코딩 유닛 레벨에 그 루트를 갖는다. 휘도 코딩 블록 잔차는 휘도 변환 블록과 동일할 수 있거나, 또는 더 작은 휘도 변환 블록들로 더 분할될 수 있다. 동일한 것이 크로미넌스 변환 블록들에도 적용된다. 변환 블록은 4x4, 8x8, 16x16 또는 32x32 샘플의 크기를 가질 수 있다.
인코딩 프로세스는 블록(BLK)이라고 불리는 픽셀들의 유닛에 적용하는 것으로서 후술된다. 그러한 블록(BLK)은 매크로블록, 또는 코딩 트리 유닛, 또는 전술한 유닛들 중 하나로부터의 임의의 서브블록, 또는 휘도 샘플들 및 크로미넌스 샘플들, 또는 휘도 샘플들만을 포함하는 픽처 I의 임의의 다른 세분화 레이아웃에 대응할 수 있다.
후술하는 인코딩 및 디코딩 프로세스들은 예시를 위한 것이다. 일부 실시예들에 따르면, 인코딩 또는 디코딩 모듈들은 추가되거나 또는 제거될 수 있거나, 또는 이하 모듈들과 달라질 수 있다. 그러나, 본 명세서에 개시된 원리는 여전히 이러한 실시예들에 적용될 수 있다.
본 원리는 등장방형 투영의 경우에 대해 여기에 개시된다. 그러나, 다른 투영 함수들이 사용될 수 있다. 따라서, 블록(1700)에 따라 결정된 2D 픽처의 경계에서의 현재 블록에 대한 이웃 블록이 이 투영 함수에 따라 결정된다.
인코더(400)는 다음과 같이 픽처 I의 각각의 블록의 인코딩을 수행한다. 인코더(400)는 예를 들어 레이트/왜곡 최적화에 기초하여, 코딩될 픽처의 블록(BLK)에 대한 코딩 모드를 선택하기 위한 모드 선택 유닛을 포함한다. 이러한 모드 선택 유닛은:
코딩될 픽처의 하나의 현재 블록과 참조 픽처들 사이의 움직임을 추정하기 위한 움직임 추정 모듈,
추정된 움직임을 이용하여 현재 블록을 예측하기 위한 움직임 보상 모듈,
현재 블록을 공간적으로 예측하기 위한 인트라 예측 모듈을 포함한다.
모드 선택 유닛은 또한 예를 들어 레이트/왜곡 최적화에 따라 블록의 세분할이 필요한지를 결정할 수 있다. 해당 경우에, 이후 모드 선택 유닛은 블록(BLK)의 각각의 서브 블록에 대해 동작한다.
모드 선택 유닛은 2D 픽처의 우측 경계상에 위치한 현재 BLK의 이웃 블록을 도출하기 위해 도 17과 관련하여 개시된 원리를 적용할 수 있다.
변형에 따르면, 개시된 원리는 현재 블록(BLK)에 대한 인트라 예측 코딩 모드를 코딩하기 위한 최고 확률 모드 리스트를 결정할 때 수행된다. 이 변형에 따르면, 인트라 예측 모드 코딩은 예측 유닛 레벨에서 수행되고, 따라서 현재 블록(BLK)은 예측 유닛(도 23에 도시된 바와 같은 현재 PU)에 대응한다. HEVC 표준은 33개의 방향성 배향에 대응하는 33개의 방향성 예측 모드(2로부터 34로 인덱싱됨), 평면 예측 모드(0으로 인덱싱됨), 및 DC 예측 모드(1로 인덱싱됨)를 지정하고, 결과적으로 도 27에 도시된 바와 같이 현재 예측 유닛을 공간적으로 예측하기 위한 35개의 가능한 인트라 예측 모드의 세트를 낳는다. 어느 인트라 예측 모드가 현재 예측 유닛을 코딩하는데 사용되는지를 시그널링하는데 필요한 비트레이트를 감소시키기 위해, 최고 확률 모드(MPM) 리스트가 구성된다. MPM 리스트는 현재 블록에 대한 3개의 최고 확률 인트라 예측 모드를 코드에 포함한다. 이들 3개의 MPM은 현재 블록의 이웃 블록들을 코딩하기 위해 사용되는 인트라 예측 모드들에 따라 결정된다. HEVC에 따르면, 현재 블록의 좌측 및 상위 이웃 블록들만이 고려되는데, 도 23a에 도시된 현재 PU에 대한 블록들 A 및 B가 제각기 고려된다. 2개의 블록 A 및/또는 B 중 어느 하나가 이용가능하지 않거나 인트라 코딩되지 않은 경우, 해당 블록에 대해 DC 예측 모드가 가정된다. 이하에서, 블록 A의 인트라 예측 모드는 m_A로 표시되고, 블록 B의 인트라 예측 모드는 m_B로 표기된다.
HEVC에서, MPM들의 세트는 다음과 같이 구성된다:
(HEVC_1) m_A 및 m_B가 동일하지 않으면, MPM[0] = m_A, MPM[1] = m_B이다. MPM[2] 로 표시된 세트의 제3 최고 확률 모드는 다음과 같이 결정된다:
m_A도 m_B도 평면 모드(도 27의 인덱스 0)가 아닌 경우, MPM[2] = 평면 모드(0),
그렇지 않고 이들 중 하나(즉, m_A 또는 m_B 중 어느 하나)가 평면 모드이지만, m_A도 m_B도 DC 모드가 아닌 경우, MPM[2] = DC 모드(1),
그렇지 않고, m_A 및 m_B 중 하나가 평면 모드이고 다른 하나가 DC 모드인 경우, MPM[2] = 수직 각 인트라 예측 모드(도 27의 방향 모드 26)이다.
(HEVC_2) m_A 및 m_B가 동일하지만, 이들이 평면 모드 또는 DC 모드와 상이한 경우, MPM[0] = m_A, MPM[1] = m_A-, MPM[2] = m_A+이고, 여기서 m_A- 및 m_A+는 HEVC 표준에 의해 지정되는 바와 같은 블록 A의 인트라-예측 모드의 2개의 인접 각 모드를 표시하고, 그 밖에, MPM[0] = 모드 평면(HEVC에 대해 인덱스 0), MPM[1] = 모드 DC (HEVC에 대해 인덱스 1), 및 MPM[2] = 수직 각 인트라 예측 모드 26(도27에 있는 방향성 모드 26)이다. + 및 -는 m_A의 현재 각 방향의 양측에 위치한 각 방향을 지칭한다. 예를 들어, m_A가 도 17의 인덱스 14의 모드와 동일한 경우, m_A-는 인덱스 13의 모드와 동일하고, m_A+는 인덱스 15의 모드와 동일하다. 모드들 2 및 34에 대한 2가지 특별한 경우가 있다. m_A가 2이면, m_A-는 33이고 m_A+는 3이다. m_A가 34이면, m_A-는 33이고 m_A+는 3이다.
본 원리에 따르면, 최고 확률 모드들의 세트의 구성은 픽처의 우측에 위치한 블록들에 대해서만 수정된다.
도 23b에 도시된 바와 같이, 현재 블록에 대한 새로운 이웃 블록은 현재 블록의 우측에서의 블록 C인 것으로 결정되는데, 즉 투영 함수에 따라, 이웃 블록은 현재 블록이 속하는 현재 CTU와 동일한 행에서의 제1 CTU에서의 블록이다. 등장방형 투영(equi-rectangular projection)에서의 연속성 때문에, 행을 따른 최초 및 최종 CTU들은 공간 이웃들이다.
이후, 현재 블록의 상기 및 좌측 블록들 외에, 우측에서의 이웃 블록이 또한 MPM의 리스트를 결정하기 위해 사용된다. 인코더/디코더는 행에서의 제1 CTU에서의 인트라 코딩된(좌측) 경계 블록들에 대한 인트라 예측 모드들을 저장하고, 최종 CTU 에서의 (우측) 경계 블록들을 코딩하기 위해 이들을 사용한다. 하나의 CTU에서만 경계 블록들에 대한 정보를 저장할 필요가 있기 때문에, 메모리 요건은 매우 낮다. MPM들의 세트는 이제 현재 블록에 대해 도 23b에 도시된 바와 같이 3개의 이웃 블록(A, B 및 C)에서 사용되는 예측 모드들에 기초한다. MPM의 세트는 다음과 같이 구성된다:
m_A 및 m_B가 동일하지 않지만, C의 인트라 예측 모드(m_C로 표시됨)가 m_A 또는 m_B 중 어느 하나와 동일하면, 그 세트는 규칙 HEVC_1을 이용하여 구성된다. 그러나, m_C가 이들 중 어느 것과도 동일하지 않다면, m_C는 m_A와 m_B 양쪽 모두와 상이하고, MPM[0]=m_A, MPM[1]=m_B, 및 MPM[2]=m_C이다.
m_A 및 m_B가 동일하고, m_C가 이들 모두와 동일하다면, 그 세트는 규칙 HEVC_2를 이용하여 구성된다.
그렇지 않고, m_A 및 m_B가 동일하지만, m_C가 이들과 동일하지 않다면, 세트는 규칙 HEVC_1을 이용하여 구성되고, 여기서 B는 C로 대체된다.
크로마 예측(chroma prediction)에 대해, HEVC 크로마 예측은, 크로마에 대한 예측 모드가 이웃 블록들의 것들에 기초하여 도출되지 않기 때문에 현재 블록에 대해 변경되지 않은 채로 남아 있을 수 있다.
현재 블록에 대한 인트라 예측 모드를 코딩하기 위한 프로세스의 나머지는 HEVC에서 정의된 것과 동일하게 남아 있다. 현재 블록의 인트라 예측 모드가 MPM 세트에 속하면, 플래그 prev _ intra _ luma _ pred _flag가 설정되고, mpm _ idx라고 불리는 또 다른 플래그가 MPM 세트로부터의 후보에 시그널링한다. 플래그 prev_intra_luma_pred_flag가 설정되지 않으면, 플래그 rem_ intra _ luma _ pred _mode가 잔여 32 예측 모드로부터의 특정 모드에 시그널링한다.
현재 블록이 인트라 코딩될 때, 예측 블록은 현재 블록에 대해 선택된 인트라 예측 모드에 따라 인트라 예측을 수행함으로써 계산된다. 이러한 프로세스는 본 기술분야의 통상의 기술자에게 공지되어 있으며, 추가로 논의되지 않는다.
또 다른 변형에 따르면, 개시된 원리는 현재 블록이 인터 예측될 때 현재 블록에 대한 움직임 벡터를 코딩하기 위한 움직임 벡터 예측기를 도출할 때 수행된다. 현재 블록이 인터 예측될 때, 그 움직임 벡터는 이용 가능한 예측 방향에 의존하여 참조 픽처 리스트 l0 및/또는 I1에 존재하는 참조 픽처들을 사용하여 추정된다. 예측된 블록은 추정된 움직임 벡터를 이용하여 현재 블록을 움직임 보상함으로써 계산된다. 그 다음, 현재 블록의 움직임 벡터는 비트스트림으로 코딩된다.
HEVC는 인터 예측을 갖는 CU의 움직임 벡터들을 인코딩하기 전에 AMVP(advanced motion vector prediction)를 사용한다. 현재의 움직임 벡터에 대한 예측으로서 이웃하는 움직임 벡터들로부터 단일 움직임 벡터가 구성되는 H.264와 달리, HEVC에서, 도 24a에 도시된 바와 같이, 5개의 공간적 이웃 블록으로부터의 움직임 벡터를 이용하여 2개의 움직임 벡터의 세트가 획득되고, 공동 위치된 시간적 움직임 벡터가 획득된다. 2개의 후보 움직임 벡터 A 및 B는 다음과 같이 선택된다.
후보 움직임 벡터 A는 공간적 이웃들 A0 및 A1의 움직임 벡터들에 기초하여 구성되고, 후보 벡터 B는 후보 블록들이라고도 불리는 공간 이웃들 B0, B1, 및 B2의 움직임 벡터들에 기초하여 구성된다. 이것은 2-패스 프로세스이다. 제1 패스에서, 후보 블록들 중 임의의 것이 현재 블록의 참조 인덱스와 동일한 참조 인덱스를 갖는지가 검사된다. A0 및 A1은 순차적으로 검사된다. 제1 움직임 벡터는 후보 A로서 취해진다. A0 및 A1로부터의 참조 인덱스들 모두가 현재 블록의 참조 인덱스와 상이한 참조 픽처를 가리키는 경우에, 연관된 움직임 벡터들은 그대로 사용될 수 없다. 따라서, 제2 패스에서, 현재 참조 픽처, 즉 현재 블록의 참조 픽처, 및 후보 참조 픽처, 즉 (시퀀스 순서 A0 및 이후 A1으로 검색되는) 후보 블록의 참조 픽처가 모두 단기적(short-term)인지가 먼저 검사된다. 검사가 검증되면, 즉 현재 참조 픽처 및 후보 참조 픽처가 모두 단기적이면, 대응하는 후보 블록의 모든 벡터는 스케일링되고 후보 움직임 벡터 A로서 사용된다. 스케일링 인자는 후보 참조 픽처와 현재 픽처 사이의 시간적 거리에, 및 또한 현재 참조 픽처와 현재 픽처 사이의 시간적 거리에 의존한다. 결과적으로, A0이 현재 블록의 참조 인덱스와 동일한 참조 인덱스를 갖는 경우, 제1 패스에서 A1을 검사할 필요가 없다. A0의 움직임 벡터가 후보 A로서 취해진다. A0이 현재 블록의 참조 인덱스와 상이한 참조 인덱스를 갖는다면, A1이 현재 블록의 참조 인덱스와 동일한 참조 인덱스를 갖는지를 검사한다. 그러한 경우라면, A1의 움직임 벡터는 후보 A로서 취해지고, 그렇지 않은 경우에는 제2 패스가 적용된다.
후보 움직임 벡터 B에 대해, 후보 블록들 B0, B1, 및 B2는 제1 패스에서 A0 및 A1의 순서대로 검색된다. 현재 블록과 동일한 참조 인덱스를 갖는 제1 후보 블록이 움직임 벡터 B로서 사용된다. A0과 A1이 이용가능하지 않거나 또는 인트라 예측된다면, 후보 A는 B와 동일하게 설정된다. 이 경우, 제2 패스에서, 현재 블록과 동일한 참조 인덱스를 갖는 제2 후보 블록이 검색되고, 및 발견된다면, 그 움직임 벡터는 후보 B로서 사용된다. 그렇지 않으면, 현재 참조 픽처 및 후보 참조 픽처 둘 다가 단기적 픽처들인 경우에 스케일링된 움직임 벡터가 계산되고 후보 B로서 사용된다. 제1 패스가 현재 블록과 동일한 참조 인덱스를 갖는 후보를 발견하지 못한 경우에, A0 및 A1이 이용가능하지 않거나 또는 인트라 예측된다면 제2 패스가 수행된다. 이 경우, 현재 참조 픽처 및 후보 참조 픽처 둘 다가 단기적 픽처들인 경우에 스케일링된 움직임 벡터가 계산되고 후보 B로서 사용된다. 따라서, 제2 패스는 블록들 A0과 A1이 어떠한 움직임 정보도 포함하지 않을 때에만 수행된다. 시간적 후보들은 2개의 공간적 후보들이 이용가능하지 않은 경우에만 또는 이들이 동일한 경우에 고려된다.
2개의 움직임 벡터 중에서, 하나는 현재 움직임 벡터의 예측을 위한 후보 움직임 벡터로서 선택된다. 선택된 움직임 벡터는 list_0 및 list_1 참조 픽처들에 대응하는 mvp_l0_flagmvp_l1_flag를 사용하여 표시된다.
이 실시예에 따르면, 2개의 후보 움직임 벡터를 선택하기 위해, 도 24b에 도시된 바와 같이, 우측 경계에 놓인 현재 블록에 대해 7개의 이웃 블록의 움직임 벡터들이 고려된다.
이러한 현재 블록에 대해, 이웃 블록 B0은 종래의 HEVC 방법이 사용되는 경우에 이용 가능하지 않다.
본 명세서에 개시된 원리에 따르면, 블록들 B0, C0, 및 C1은 프레임의 좌측 경계에서 동일한 행상의 제1 CTU의 일부이다. 이들 블록들은 이미 인코딩되었고 우측 경계에서의 현재 블록이 인코딩될 때 그들의 움직임 벡터 정보가 이용가능하다. 따라서, 그들의 움직임 벡터 정보는 후보 움직임 벡터들의 세트를 개선하는 데 사용될 수 있다.
이 변형에 따르면, 후보 A에 대해, 블록들 A0, A1, C0 및 C1의 움직임 벡터들이 해당 순서로 고려된다.
4개의 후보가 고려되는 것을 제외하고는, 알고리즘은 HEVC에서와 동일하게 유지된다.
제1 패스에서, A0, A1, C0, 및 C1이 순차적으로 검사된다. 현재 블록의 참조 인덱스와 동일한 참조 인덱스를 갖는 4개의 후보 블록 중 제1 후보 블록이 후보 A로서 취해진다. 4개의 후보 블록 중 어느 것도 동일한 참조 인덱스를 갖지 않는다면, 제2 패스에서, 현재 참조 픽처 및 후보 참조 픽처(위와 것과 동일한 순서로 취해짐)가 모두 단기적인지가 검사된다. 검사가 검증되면, 고려된 후보의 움직임 벡터가 스케일링되고 후보 움직임 벡터 A로서 사용된다. 스케일링 인자들은 그들의 참조 픽처들과 현재 픽처 사이의 시간적 거리에 의존하고, 및 또한 현재 블록의 참조 픽처와 현재 픽처 사이의 시간적 거리에 의존한다. 스케일링은 HEVC에서와 같이 행해진다.
후보 B의 경우, 알고리즘은 HEVC 표준에서 그런 것과 동일하게 유지된다. 제1 패스에서 A0 및 A1이 검사되는 것과 동일한 방식으로 후보들 B0 내지 B2가 순차적으로 검사된다. 그러나, 제2 패스는 블록들 A0 및 A1이 어떠한 움직임 정보도 포함하지 않을 때에만 수행되는데, 예를 들어 이용 가능하지 않거나 또는 인트라 예측되는 경우에 그러하다.
일 비트 신택스 요소들 mvp _l0_flagmvp _l1_flag 인코딩들은, 어떤 여분의 정보도 코딩될 필요가 없기 때문에 HEVC에서 동일하게 남아 있는다. 이 실시예에 따르면, 그로부터 예측기들의 세트가 증가 되고 세트의 구성이 수정되는 예측기들의 수가 변경되지만, 세트에서의 예측기들의 수는 동일하게 유지되고, 따라서 어떠한 여분의 정보도 코딩될 필요가 없다.
또 다른 변형에 따르면, 2D 픽처의 경계상의 현재 블록에 대한 움직임 벡터를 추정할 때, 움직임 추정 모듈은 움직임이 추정되는 2D 참조 픽처의 좌측 및 우측 경계들에서의 연속성으로부터 이익을 얻을 수 있다. 종래의 블록 기반 움직임 추정 기술에서, 검색 범위는 절단되어 움직임 벡터가 2D 참조 픽처 외부에 위치한 비가용 픽셀들을 가리키지 않도록 된다. 검색 범위는 움직임 벡터가 검색되는 범위이다.
이 변형에 따르면, 2D 픽처의 경계상에 위치한 현재 블록에 대한 움직임을 추정할 때 전체 검색 범위가 이제 고려될 수 있다. 2D 참조 픽처의 경계는 대향 경계로부터의 픽셀들을 사용함으로써 대칭적으로 확장될 수 있다. 그 결과, 추정된 움직임 벡터는 현재 블록으로부터 참조 픽처 외부의 픽셀들로 가리킬 수 있다. 참조 픽처 외부의 이러한 위치는 2D 참조 픽처의 대칭적으로 확장된 블록들에 대응한다. 디코더 측에서, 디코더는 단지 그러한 움직임 벡터들에 대한 참조 픽처들의 대칭 확장을 수행해야 한다.
또 다른 변형에 따르면, 개시된 원리는 2D 픽처의 우측 경계에 위치하는 현재 블록을 코딩하기 위한 인터 예측 병합 모드에서 움직임 정보를 도출할 때 수행된다. AMVP 외에, HEVC는 또한 예측 블록 병합을 이용하여 움직임 정보의 인코딩을 감소시킨다. 그 목적을 위해, HEVC 인코더는 (도 24a 에 도시된 바와 같이) 동일한 5개의 공간적 이웃 및 잠재적으로 하나의 시간적 이웃의 움직임 정보를 고려함으로써 현재 블록이 인터 코딩될 병합 리스트를 만들어낸다. 선택된 후보의 움직임 정보(참조 픽처들의 픽처 기준 리스트들 I0 및 l1으로도 지칭되는 예측 방향, 픽처 참조 리스트에서의 참조 픽처의 참조 인덱스, 및 움직임 벡터들)가 임의의 다른 사이드 정보(side information) 없이 현재 블록을 예측하기 위해 직접 사용된다. 이 병합 모드에서, 현재 블록은 선택된 후보로부터 모든 움직임 정보를 상속함으로써 예측된다. 따라서, 예측된 블록은 상속된 움직임 정보를 이용하여 현재 블록을 움직임 보상함으로써 계산된다.
인터 예측 병합 모드를 시그널링하기 위해, 인코더는 merge_flag라고 불리는 플래그를 이용한다. merge_flag가 1이면, 신택스 요소 merge_ idx는 선택된 후보에 시그널링한다. 병합 리스트에서의 후보의 최대 수는 슬라이스 헤더에서 시그널링되는 cMax라고 불리는 파라미터를 이용하여 시그널링된다. 병합 리스트는 5개의 공간적 이웃, 하나의 시간적 후보, 및 조합된 양방향 예측 후보들과 제로 움직임 벡터 후보들을 포함하는 추가 병합 후보들로부터 도출된 4개까지의 병합 후보를 포함할 수 있다.
이 실시예에 따르면, 우측 경계 CU들상에 위치한 현재 블록에 대한 병합 리스트에서의 공간적 움직임 후보들의 수는 5로 증가된다. 추가 움직임 후보는 B0, C0, 및 C1로부터 도출된다. 이러한 추가 움직임 후보는 HEVC에 의해 도출된 다른 4개의 후보와 함께 포함된다. 결과적으로, 경계 CU들에 대해, 후보들의 수는 cMax+1로서 취해진다.
도 18로 돌아가면, 일단 현재 블록(BLK)에 대해 코딩 모드가 선택되면, 모드 선택 유닛은 디코더에서 동일한 블록 예측을 수행하기 위해 비트스트림으로 코딩될 예측된 블록(PRED) 및 대응하는 신택스 요소들을 전달한다.
잔차 블록(RES)은 그 후 원래의 블록(BLK)으로부터 예측된 블록(PRED)을 감산함으로써 획득된다.
잔차 블록(RES)은 변환된 계수들의 변환 블록(TCOEF)을 전달하는 변환 처리 모듈에 의해 변환된다. 각각의 전달된 변환 블록(TCOEF)은 양자화된 잔차 변환 계수들의 양자화된 변환 블록(QCOEF)을 전달하는 양자화 모듈에 의해 양자화된다.
그 후, 블록(QCOEF)의 신택스 요소들 및 양자화된 잔차 변환 계수들은 비트스트림(STR)의 코딩된 비디오 데이터를 전달하기 위해 엔트로피 코딩 모듈에 입력된다.
또 다른 변형에 따르면, 개시된 원리는 엔트로피 코딩 모듈에 의해 사용될 수 있다. HEVC는 CABAC라고도 알려진 컨텍스트 산술 엔트로피 코딩을 사용한다. 엔트로피 코딩 모듈에 의해 수행되는 산술 코딩은 비트들의 전체 스트림을 인코딩하고, 이는 인코딩하기 위한 심볼들의 적절한 이진화(신택스 요소, 양자화된 변환 계수들 등) 후에, (0, 1)에서의 간격으로 표현되는 그들의 결합 확률에 의해 획득된다. 엔트로피 코딩 모듈은 상이한 신택스 요소들에 대한 컨텍스트 모델들을 통해 심볼들의 확률들을 모델링하고 모든 비트마다를 인코딩한 후에 모델 상태들을 업데이트함으로써 산술 코딩을 수행한다. 컨텍스트 모델들은 이웃 인코딩 정보에 기초하여 확률들을 초기화한다.
HEVC에서, CU_split_flagCU_skip_flag가 제각기 코딩 유닛이 추가로 분할되는지 및 코딩 유닛이 스킵되는지를 표시하기 위해(즉, 다른 정보가 현재 코딩 유닛에 대해 코딩되는지를 표시하기 위해) 현재 코딩 유닛에 대해 코딩된다. 이러한 플래그들을 코딩하기 위한 엔트로피 코딩 모듈은 이들 플래그들을 인코딩하기 위해 사용되는 컨텍스트 모델을 선택하기 위해 이전에 코딩된 이웃 CU들로부터의 정보를 이용한다. 각각의 적용가능한 초기화 타입에 대한 3개의 컨텍스트 모델의 세트가 이용가능하다. 도 25a에 도시된 바와 같이, 현재 블록에 대한 CU_split_flagCU_skip_flag에 대한 컨텍스트 모델들은 이웃 블록들 A 및 B에 기초하여 결정된다. CU_split_flag 컨텍스트는 이웃이 이용가능하고 또한 그 코딩 트리 유닛 깊이가 현재 블록보다 크다면 1만큼 증분된다. 유사하게, CU_skip_flag 컨텍스트의 컨텍스트는 이웃이 이용가능하고 또한 그 CU_skip_flag가 설정된다면 1만큼 증분된다.
본 원리에 따르면, 2D 픽처의 우측 경계에서의 현재 블록에 대해, 이미 인코딩된 좌측 경계상의 CTU의 일부인 이웃 블록으로부터의 정보도 고려된다. 이것은 도 25b에 도시된다. 2D 픽처의 우측 경계에 위치한 현재 블록에 대하여, CU_split_flagCU_skip_flag 모드에 대해, 4 컨텍스트 모델이 사용된다. HEVC에서와 같이, CU_split_flag 컨텍스트는 이웃(상부, 좌측, 우측)이 이용가능하고 또한 그 코딩 트리 유닛 깊이가 현재 블록보다 크다면 1만큼 증분된다. 유사하게, CU_skip_flag 컨텍스트는 이웃(상부, 좌측, 우측)이 이용가능하고 또한 그 CU_skip_flag가 설정된다면 1만큼 증분된다.
도 18로 돌아가서, 양자화된 변환 블록(QCOEF)의 양자화된 잔차 변환 계수들은 양자화되지 않은 변환 계수들의 블록(TCOEFF')을 전달하는 역 양자화 모듈에 의해 처리된다. 블록(TCOEF')은 잔차 예측의 블록(RES')을 재구성하기 위한 역 변환 모듈에 넘겨진다.
그 후, 블록(BLK)의 재구성된 버전(REC)은 예측 블록(PRED)을 재구성된 잔차 예측 블록(RES')에 추가함으로써 획득된다. 재구성된 블록(REC)은 픽처 I의 디코딩된 버전 I'을 재구성하기 위해 픽처 재구성 모듈에 의한 나중의 사용을 위해 메모리에 저장된다. 일단 픽처 I의 모든 블록들(BLK)가 코딩되었다면, 픽처 재구성 모듈은 재구성된 블록들(REC)로부터의 픽처 I의 디코딩된 버전 I'의 재구성을 수행한다. 선택적으로, 재구성된 블록들 사이의 블로킹 아티팩트를 제거하기 위해 재구성된 픽처 I' 에 디블로킹 필터링이 적용될 수 있다.
또 다른 변형에 따르면, 우측 경계 CTU에 대해 샘플 적응 오프셋 필터링을 수행하는 SAO 모듈은 개시된 원리를 이용할 수 있다. SAO는 인코더에 의해 전송되는 룩업 테이블들에서의 값들에 기초하여, 디블로킹 필터의 적용 후에 오프셋 값을 각각의 샘플에 조건부로 더함으로써 디코딩된 샘플들을 수정하는 프로세스이다. SAO는 CTU당 선택된 필터링 타입에 기초하여 영역 기반으로 수행된다.
HEVC에서, CTU는 SAO 파라미터들을 시그널링하기 위해 3개의 옵션을 사용할 수 있다: 좌측 CTU 또는 상부 CTU의 SAO 파라미터들을 재사용함으로써(도 26a), 또는 새로운 SAO 파라미터들을 전송함으로써. sao_merge_left_flagsao_merge_top_flag라고 불리는 2개의 플래그가 좌측 CTU 또는 우측 CTU SAO 정보가 사용되는지에 의존하여 설정된다.
일 실시예에 따르면, sao_merge_right_flag라고 불리는 추가 플래그가 프레임의 우측 경계상에서 CTU들에 대해 추가된다. 동일한 행상의 좌측 경계상의 CTU는 우측 이웃으로서 사용된다. 현재 CTU가 우측 이웃의 SAO 정보를 이용하면, sao_merge_right_flag가 설정된다.
HEVC는 sao_merge_left_flagsao_merge_top_flag를 인코딩하기 위한 하나의 컨텍스트 모델을 사용한다. 이 변형에서, 동일한 컨텍스트가 우측 경계 CTU들에 대한 sao_merge_right_flag를 인코딩하기 위해 사용된다.
도 18로 되돌아가면, 일단 재구성된 픽처 I'이 디블로킹되었고 SAO 필터링을 겪었다면, 결과적인 재구성된 픽처는 그 후 코딩될 픽처들의 세트의 다음 픽처들을 인코딩하기 위한 참조 픽처로서의 이 후의 사용을 위해 참조 픽처 메모리에 추가된다.
전술한 인코딩 프로세스로부터 생성된 비트스트림은 그 후 데이터 네트워크를 통해 전송되거나 또는 비트스트림(STR)으로부터 디코딩된 전방향성 비디오의 몰입형 렌더링을 위한 메모리에 저장된다.
도 19는 본 개시내용의 일 실시예에 따라, 투영 함수를 이용하여 전방향성 비디오의 투영을 나타내는 2D 픽처의 현재 블록을 디코딩하기 위한 예시적인 방법에 대한 블록도를 도해한다. 이러한 방법은 예를 들어 본 명세서에 개시된 것과 같은 몰입형 시스템의 디코더(700)에 의해 수행될 수 있다.
블록(1900)에서, 상기 투영 함수에 관련한 정보의 아이템이 전방향성 비디오를 나타내는 비트스트림으로부터 디코딩된다. 대안적으로, 디코더는 전방향성 비디오를 2D 픽처상에 투영하기 위해 사용되는 투영 함수를 알 수 있다. 예를 들어, 이러한 정보는 디코더의 메모리에 저장될 수 있다.
블록(1901)에서, 상기 2D 픽처의 현재 블록에 대해, 상기 2D 픽처의 적어도 하나의 이웃 블록이 도 17로부터의 블록(1700)에 개시된 바와 같은 투영 함수에 따라 결정된다.
블록(1902)에서, 현재 블록은 적어도 결정된 이웃 블록을 이용하여 디코딩된다. 현재 블록의 디코딩 동안, 결정된 이웃 블록은 디코더의 디코딩 모듈들 모두에 의해 또는 이들 중 일부에 의해 사용될 수 있다. 예를 들어, 그러한 디코딩 모듈들은 다음을 포함하는 그룹에 포함될 수 있다:
상기 현재 블록에 대한 인트라 예측 모드를 디코딩하기 위한 최고 확률 모드 리스트를 결정하기 위한 모듈,
상기 현재 블록에 대한 움직임 벡터를 재구성하기 위한 움직임 벡터 예측기를 도출하기 위한 모듈,
상기 현재 블록을 재구성하기 위한 인터 예측 병합 모드에서 움직임 정보를 도출하기 위한 모듈,
상기 현재 블록을 컨텍스트 산술 엔트로피 디코딩하기 위한 모듈,
상기 현재 블록의 적어도 하나의 샘플을 필터링하기 위한 샘플 적응 오프셋을 위한 모듈.
도 19에 개시된 방법들의 실시예 중 임의의 하나는, 본 개시내용의 실시예에 따라, 이하 및 도 20에 개시된 바와 같이, 전방향성 비디오를 나타내는 비트스트림을 디코딩하기 위한 예시적인 디코더에서 구현될 수 있다.
도 20은 본 원리를 이용하여 인코딩된 비트스트림을 디코딩하도록 적응된 예시적인 비디오 디코더 방법을 도해하는 개략적인 블록도이다. 전방향성 비디오의 상기 2D 픽처로의 투영을 나타내는 코딩된 픽처들을 나타내는 비트스트림(STR)은 상기 2D 픽처의 적어도 하나의 현재 블록(BLK)을 나타내는 코딩된 데이터를 포함한다. 이러한 현재 블록은 본 개시내용의 실시예에 따라 코딩되었을 수 있다.
일 실시예에 따르면, 비트스트림(STR)은 또한 투영 함수에 관련한 정보의 아이템을 나타내는 코딩된 데이터를 포함할 수 있다.
본 명세서에 개시된 비디오 디코더(700)는 HEVC 비디오 코딩 표준에 따라 픽처들의 디코딩을 수행한다. 그러나, 본 원리는 임의의 비디오 코딩 표준들에 쉽게 적용될 수 있다.
비디오 디코더(700)는 픽처 단위로 코딩된 픽처들을 비트스트림으로부터 디코딩함으로써 그리고 블록 단위로 각각의 픽처를 디코딩함으로써 전방향성 비디오의 재구성을 수행한다. 사용되는 비디오 압축 스킴에 따르면, 병렬 처리가 픽처 기반으로 또는 블록 기반으로 비트스트림을 디코딩하기 위해 사용될 수 있다. 따라서, 픽처 I'는 다음과 같이 압축된 비트스트림으로부터 재구성된다.
코딩된 데이터는 비디오 디코더(700)의 비디오 디코딩 모듈에 넘겨진다. 도 20에 도해된 바와 같이, 코딩된 데이터는 엔트로피 디코딩 모듈에 넘겨지고 엔트로피 디코딩 모듈은 엔트로피 디코딩을 수행하고 양자화된 변환 계수들의 블록(QCOEF)을 역 양자화 모듈에 그리고 신택스 요소들을 예측 모듈에 전달한다. 본 원리의 실시예에 따르면, 엔트로피 디코딩 모듈은, 현재 블록에 대해 CU_split_flag의 및/또는 CU_skip_flag의 산술 이진 디코딩을 수행하도록 컨텍스트 모델을 도출하기 위해 도 19로부터의 블록들(1901 및 1902)에 개시된 대로의 처리를 수행할 수 있다.
엔트로피 디코딩 후에, 양자화된 변환 계수들의 블록(QCOEF)은 역 양자화 모듈에 의해 역 양자화되어 양자화 해제된 변환 계수들의 블록(TCOEF')을 전달한다.
양자화 해제된 변환 계수들의 블록(TCOEF')은 잔차 예측 블록(RES')을 전달하는 역 변환 모듈에 의해 역 변환된다.
예측 모듈은 신택스 요소에 따라 그리고 현재 블록이 인터 예측되었다면 움직임 보상 모듈을 이용하여 또는 현재 블록이 공간적으로 예측되었다면 인트라 예측 모듈을 이용하여 예측 블록(PRED)을 구축한다. 현재 블록이 2D 픽처의 경계상의 블록일 때, 현재 블록에 대한 예측 블록(PRED)을 구축하기 위해, 예측 모듈은 도 19로부터의 블록들(1901) 및 (1902)에 개시된 바와 같은 처리를 수행할 수 있고, 따라서 본 원리에 따라 현재 블록에 대한 이웃 블록을 결정할 수 있다:
잔차 움직임 벡터가 현재 블록에 대해 비트스트림으로 명시적으로 코딩될 때 현재 블록에 대한 움직임 벡터를 재구성하기 위해 움직임 벡터 예측기를 도출하기 위해, 또는
현재 블록이 인터 예측 병합 모드를 이용하여 코딩되었을 때 현재 블록에 대한 움직임 정보를 도출하기 위해; 또는
현재 블록이 인트라 예측 모드를 이용하여 코딩되었을 때 최고 확률 모드 리스트를 결정하기 위해.
이후, 재구성된 블록(REC)은 예측 블록(PRED)을 재구성된 잔차 예측 블록(RES')에 더함으로써 획득된다. 재구성된 블록(REC)은 디코딩된 픽처 I'를 재구성하기 위해 픽처 재구성 모듈에 의한 이 후의 사용을 위해 메모리에 저장된다. 일단 픽처 I의 모든 블록이 디코딩되었다면, 픽처 재구성 모듈은 재구성된 블록(REC)으로부터 디코딩된 픽처 I'의 재구성을 수행한다. 선택적으로, 재구성된 블록들 사이의 블로킹 아티팩트를 제거하기 위해 재구성된 픽처 I'에 디블로킹 필터링이 적용될 수 있다.
본 개시내용의 실시예에 따라 현재 블록의 이웃을 도출하기 위한 프로세스가 SAO 모듈에서의 인코더에서 적용되는 경우, SAO 필터링은 또한 인코더에서와 동일한 방식으로 디코더에서 적용된다. 따라서, 2D 픽처의 경계상의 현재 블록에 대해, SAO 모듈은 도 19로부터의 블록들(1901) 및 (1902)에 개시된 바와 같은 처리를 수행할 수 있고, 따라서 본 원리에 따라 현재 블록을 위한 이웃 블록을 결정할 수 있다.
이후 재구성된 픽처 I'는 디코딩될 픽처들의 세트의 후속하는 픽처들을 디코딩하기 위해 참조 픽처로서 나중에 사용하기 위해 참조 픽처 메모리에 저장된다.
이후 재구성된 픽처 I'은 위에 개시된 바와 같이 메모리에 저장되거나 또는 비디오 디코더 장치(700)에 의해 몰입형 렌더링 디바이스(10)에 출력된다. 비디오 디코더 장치(700)는 또한 몰입형 렌더링 디바이스(80)에 포함될 수 있다. 그 경우, 재구성된 픽처 I'은 디코더 장치에 의해 몰입형 렌더링 디바이스(80)의 디스플레이 모듈에 출력된다.
구현된 몰입형 렌더링 시스템에 따르면, 개시된 디코더 장치는, 본 명세서에 개시된 바와 같은 몰입형 렌더링 시스템의 처리 디바이스들 중 어느 하나에, 예를 들어 컴퓨터(40), 또는 게임 콘솔(60), 또는 스마트폰(701), 또는 몰입형 렌더링 디바이스(80) 또는 몰입형 벽(6000)에 포함될 수 있다.
장치 디코더(700)는 하드웨어 또는 소프트웨어 또는 하드웨어 및 소프트웨어의 조합으로서 구현될 수 있다.
도 21은 일 실시예에 따라 전방향성 비디오를 코딩하기 위한 장치(400)의 간략화된 구조를 도해한다. 이러한 장치는 도 17 및 도 18을 참조하여 여기서 전술한 본 원리에 따라 전방향성 비디오를 코딩하기 위한 방법을 구현하도록 구성된다.
일 실시예에 따르면, 인코더 장치는 예를 들어 프로세서를 구비하고 메모리(MEM)에 저장된 컴퓨터 프로그램(PG)에 의해 구동되고 본 원리들에 따라 전방향성 비디오를 코딩하기 위한 방법을 구현하는 처리 유닛(PROC)을 포함한다.
초기화에서, 컴퓨터 프로그램(PG)의 코드 명령어들은 예를 들어 RAM(도시되지 않음)에 로딩되고, 이후 처리 유닛(PROC)의 프로세서에 의해 실행된다. 처리 유닛(PROC)의 프로세서는, 컴퓨터 프로그램(PG)의 명령어들에 따라, 여기서 전술한 전방향성 비디오를 코딩하기 위한 방법의 단계들을 구현한다.
인코더 장치는 인코딩된 비트스트림(STR)을 데이터 네트워크에 전송하는 통신 유닛(COMOUT)을 포함한다.
인코더 장치는 또한 코딩될 픽처 또는 인코딩될 전방향성 비디오를 수신하기 위한 인터페이스(COMIN)를 포함한다.
도 22는 일 실시예에 따라 전방향성 비디오를 나타내는 비트스트림을 디코딩하기 위한 장치(700)의 간략화된 구조를 도해한다. 이러한 장치는 본 원리에 따라 전방향성 비디오를 나타내는 비트스트림을 디코딩하기 위한 방법을 구현하도록 구성되고, 이는 도 19 및 도 20과 관련하여 여기서 전술되었다.
일 실시예에 따르면, 디코더 장치는 예를 들어 프로세서를 구비하고 메모리(MEM)에 저장된 컴퓨터 프로그램(PG)에 의해 구동되고 또한 본 원리들에 따라 전방향성 비디오를 나타내는 비트스트림을 디코딩하기 위한 방법을 구현하는 처리 유닛(PROC)을 포함한다.
초기화에서, 컴퓨터 프로그램(PG)의 코드 명령어들은 예를 들어 RAM(도시되지 않음)에 로딩되고, 이후 처리 유닛(PROC)의 프로세서에 의해 실행된다. 처리 유닛(PROC)의 프로세서는, 컴퓨터 프로그램(PG)의 명령어들에 따라, 여기서 전술한 전방향성 비디오를 나타내는 비트스트림을 디코딩하기 위한 방법의 단계들을 구현한다.
장치는 비디오 데이터의 재구성된 픽처들을 렌더링 디바이스에 전송하는 통신 유닛(COMOUT)을 포함할 수 있다.
장치는 또한 데이터 네트워크, 또는 게이트웨이, 또는 셋톱 박스로부터 디코딩될 전방향성 비디오를 나타내는 비트스트림(STR)을 수신하기 위한 인터페이스(COMIN)를 포함한다.

Claims (22)

  1. 넓은 시야 비디오를 비트스트림으로 코딩하기 위한 방법으로서, 상기 넓은 시야 비디오의 적어도 하나의 픽처는 면으로서 표현되고, 상기 면은 투영 함수를 이용하여 적어도 하나의 2D 픽처상으로 투영되고, 상기 방법은 현재 인트라 예측 모드 m에 따라 코딩되는 상기 적어도 하나의 2D 픽처의 적어도 하나의 현재 블록에 대해:
    상기 투영 함수로부터, 상기 2D 픽처에서 상기 현재 블록에 공간적으로 인접하지 않은, 제1 이웃 블록 C라고 불리는 상기 2D 픽처의 적어도 하나의 이웃 블록을 결정하는 단계 - 상기 적어도 하나의 이웃 블록은 상기 면상에서 상기 현재 블록에 공간적으로 인접함 -;
    상기 제1 이웃 블록 C의 인트라 예측 모드 m_C에 기초하여 그리고 적어도 제2 이웃 블록 A의 인트라 예측 모드 m_A 및 제3 이웃 블록 B의 인트라 예측 모드 m_B에 추가로 기초하여, 최고 확률 모드들의 리스트를 결정하는 단계 - 상기 제2 및 제3 이웃 블록들은 상기 2D 픽처에서 상기 현재 블록에 공간적으로 인접함 -;
    상기 최고 확률 모드들의 리스트로부터 상기 현재 인트라 예측 모드를 인코딩하는 단계를 포함하는 방법.
  2. 제1항에 있어서, 상기 최고 확률 모드들의 리스트를 결정하는 단계는:
    m_A 및 m_B가 상이한 경우:
    m_C가 m_A 또는 m_B 중 어느 하나와 동일하다면, 상기 최고 확률 모드들의 리스트는 m_A 및 m_B 및 추가적 인트라 예측 모드를 포함하고, 상기 추가적 인트라 예측 모드는 m_A도 그리고 m_B도 평면 모드가 아닌 경우에 평면 모드와 동일하고, m_A 또는 m_B가 평면 모드이지만, m_A도 그리고 m_B도 DC 모드가 아닌 경우에 DC모드와 동일하고, 다른 경우에 수직 인트라 예측 모드와 동일하고;
    그렇지 않으면, 상기 최고 확률 모드들의 리스트는 m_A, m_B 및 m_C를 포함하다와 같이 상기 리스트를 결정하고;
    m_A 및 m_B가 동일한 경우:
    m_C가 m_A와 동일하다면, 상기 최고 확률 모드들의 리스트는 m_A가 평면 및 DC 모드들과 상이한 경우에 m_A 및 m_A의 2개의 인접한 각 모드를 포함하고, 다른 경우에 상기 최고 확률 모드들의 리스트는 평면 모드, DC 모드 및 수직 모드를 포함하고;
    그렇지 않으면, 상기 최고 확률 모드들의 리스트는 m_A 및 m_C 및 추가적 인트라 예측 모드를 포함하고, 상기 추가적 인트라 예측 모드는 m_A도 그리고 m_C도 평면 모드가 아닌 경우에 평면 모드와 동일하고, m_A 또는 m_C가 평면 모드이지만 m_A도 그리고 m_C도 DC 모드가 아닌 경우에 DC 모드와 동일하고, 다른 경우에 수직 인트라 예측 모드와 동일하다와 같이 상기 리스트를 결정하는 단계를 포함하는 방법.
  3. 제1항 또는 제2항에 있어서, 상기 현재 인트라 예측 모드를 인코딩하는 단계는:
    상기 현재 인트라 예측 모드가 상기 최고 확률 모드들의 리스트 중 하나의 모드와 동일한지를 표시하는 플래그를 인코딩하는 단계;
    상기 현재 인트라 예측 모드가 상기 최고 확률 모드들의 리스트 중 하나의 모드와 동일한 경우에 상기 현재 인트라 예측 모드와 동일한 상기 리스트의 최고 확률 모드를 식별하는 인덱스를 인코딩하고, 다른 경우에 상기 현재 인트라 예측 모드를 식별하는 인덱스를 인코딩하는 단계를 포함하는 방법.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서, 상기 투영 함수에 관련한 정보의 아이템을 코딩하는 단계를 추가로 포함하는 방법.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서, 상기 3D 면은 구이고, 상기 투영 함수는 등장방형(equi-rectangular) 투영인 방법.
  6. 넓은 시야 비디오를 비트스트림으로 코딩하기 위한 장치로서, 상기 넓은 시야 비디오의 적어도 하나의 픽처는 면으로서 표현되고, 상기 면은 투영 함수를 이용하여 적어도 하나의 2D 픽처상으로 투영되고, 상기 장치는:
    상기 투영 함수로부터, 현재 인트라 예측 모드 m에 따라 코딩된 상기 적어도 하나의 2D 픽처의 적어도 하나의 현재 블록에 대해, 상기 2D 픽처에서 상기 현재 블록에 공간적으로 인접하지 않은, 제1 이웃 블록 C라고 불리는 상기 2D 픽처의 적어도 하나의 이웃 블록을 결정하는 수단 - 상기 적어도 하나의 이웃 블록은 상기 면상에서 상기 현재 블록에 공간적으로 인접함 -;
    상기 제1 이웃 블록 C의 인트라 예측 모드 m_C에 기초하여 그리고 적어도 제2 이웃 블록 A의 인트라 예측 모드 m_A 및 제3 이웃 블록 B의 인트라 예측 모드 m_B에 추가로 기초하여, 최고 확률 모드들의 리스트를 결정하는 수단 - 상기 제2 및 제3 이웃 블록들은 상기 2D 픽처에서 상기 현재 블록에 공간적으로 인접함 -;
    상기 최고 확률 모드들의 리스트로부터 상기 현재 인트라 예측 모드를 인코딩하는 수단을 포함하는 장치.
  7. 제6항에 있어서, 상기 최고 확률 모드들의 리스트를 결정하는 수단은:
    m_A 및 m_B가 상이한 경우,
    m_C가 m_A 또는 m_B 중 어느 하나와 동일하다면, 상기 최고 확률 모드들의 리스트는 m_A 및 m_B 및 추가적 인트라 예측 모드를 포함하고, 상기 추가적 인트라 예측 모드는 m_A도 그리고 m_B도 평면 모드가 아닌 경우에 평면 모드와 동일하고, m_A 또는 m_B가 평면 모드이지만, m_A도 그리고 m_B도 DC 모드가 아닌 경우에 DC 모드와 동일하고, 다른 경우에 수직 인트라 예측 모드와 동일하고;
    그렇지 않으면, 상기 최고 확률 모드들의 리스트는 m_A, m_B 및 m_C를 포함하고;
    m_A 및 m_B가 동일한 경우,
    m_C가 m_A와 동일하다면, 상기 최고 확률 모드들의 리스트는 m_A가 평면 및 DC 모드들과 상이한 경우에 m_A 및 m_A의 2개의 인접한 각 모드를 포함하고, 다른 경우에 상기 최고 확률 모드들의 리스트는 평면 모드, DC 모드 및 수직 모드를 포함하고;
    그렇지 않은 경우에, 상기 최고 확률 모드들의 리스트는 m_A 및 m_C 및 추가적 인트라 예측 모드를 포함하고, 상기 추가적 인트라 예측 모드는 m_A도 그리고 m_C도 평면 모드가 아닌 경우에 평면 모드와 동일하고, m_A 또는 m_C가 평면 모드이지만 m_A도 그리고 m_C도 DC 모드가 아닌 경우에 DC 모드와 동일하고, 다른 경우에 수직 인트라 예측 모드와 동일하다와 같이 상기 최고 확률 모드들의 리스트를 결정하도록 구성되는 장치.
  8. 제6항 또는 제7항에 있어서, 상기 현재 인트라 예측 모드를 인코딩하는 수단은:
    상기 현재 인트라 예측 모드가 상기 최고 확률 모드들의 리스트 중 하나의 모드와 동일한지를 표시하는 플래그를 인코딩하고;
    상기 현재 인트라 예측 모드가 상기 최고 확률 모드들의 리스트 중 하나의 모드와 동일한 경우에 상기 현재 인트라 예측 모드와 동일한 상기 리스트의 최고 확률 모드를 식별하는 인덱스를 인코딩하고, 다른 경우에 상기 현재 인트라 예측 모드를 식별하는 인덱스를 인코딩하도록 구성되는 장치.
  9. 제6항 내지 제8항 중 어느 한 항에 있어서, 상기 인코딩하는 수단은 상기 투영 함수에 관련한 정보의 아이템을 인코딩하도록 추가로 구성되는 장치.
  10. 제6항 내지 제9항 중 어느 한 항에 있어서, 상기 3D 면은 구이고, 상기 투영 함수는 등장방형 투영인 장치.
  11. 넓은 시야 비디오를 나타내는 비트스트림을 디코딩하기 위한 방법으로서, 상기 넓은 시야 비디오의 적어도 하나의 픽처는 면으로서 표현되고, 상기 면은 투영 함수를 이용하여 적어도 하나의 2D 픽처상으로 투영되고, 상기 방법은 현재 인트라 예측 모드 m에 따라 코딩되는 상기 적어도 하나의 2D 픽처의 적어도 하나의 현재 블록에 대해:
    상기 투영 함수로부터, 상기 2D 픽처에서 상기 현재 블록에 공간적으로 인접하지 않은, 제1 이웃 블록 C라고 불리는 상기 2D 픽처의 적어도 하나의 이웃 블록을 결정하는 단계 - 상기 적어도 하나의 이웃 블록은 상기 면상에서 상기 현재 블록에 공간적으로 인접함 -;
    상기 제1 이웃 블록 C의 인트라 예측 모드 m_C에 기초하여 또한 적어도 제2 이웃 블록 A의 인트라 예측 모드 m_A 및 제3 이웃 블록 B의 인트라 예측 모드 m_B에 추가로 기초하여, 최고 확률 모드들의 리스트를 결정하는 단계 - 상기 제2 및 제3 이웃 블록들은 상기 2D 픽처에서 상기 현재 블록에 공간적으로 인접함 -; 및
    상기 최고 확률 모드들의 리스트로부터 상기 현재 인트라 예측 모드를 디코딩하는 단계를 포함하는 방법.
  12. 제11항에 있어서, 상기 최고 확률 모드들의 리스트를 결정하는 단계는:
    m_A 및 m_B가 상이한 경우:
    m_C가 m_A 또는 m_B 중 어느 하나와 동일하다면, 상기 최고 확률 모드들의 리스트는 m_A 및 m_B 및 추가적 인트라 예측 모드를 포함하고, 상기 추가적 인트라 예측 모드는 m_A도 그리고 m_B도 평면 모드가 아닌 경우에 평면 모드와 동일하고, m_A 또는 m_B가 평면 모드이지만, m_A도 그리고 m_B도 DC 모드가 아닌 경우에 DC모드와 동일하고, 다른 경우에 수직 인트라 예측 모드와 동일하고;
    그렇지 않으면, 상기 최고 확률 모드들의 리스트는 m_A, m_B 및 m_C를 포함하다와 같이 상기 리스트를 결정하고;
    m_A 및 m_B가 동일한 경우:
    m_C가 m_A와 동일하다면, 상기 최고 확률 모드들의 리스트는 m_A가 평면 및 DC 모드들과 상이한 경우에 m_A 및 m_A의 2개의 인접한 각 모드를 포함하고, 다른 경우에 상기 최고 확률 모드들의 리스트는 평면 모드, DC 모드 및 수직 모드를 포함하고;
    그렇지 않은 경우에, 상기 최고 확률 모드들의 리스트는 m_A 및 m_C 및 추가적 인트라 예측 모드를 포함하고, 상기 추가적 인트라 예측 모드는 m_A도 그리고 m_C도 평면 모드가 아닌 경우에 평면 모드와 동일하고, m_A 또는 m_C가 평면 모드이지만 m_A도 그리고 m_C도 DC 모드가 아닌 경우에 DC 모드와 동일하고, 다른 경우에 수직 인트라 예측 모드와 동일하다와 같이 상기 리스트를 결정하는 단계를 포함하는 방법.
  13. 제11항 또는 제12항에 있어서, 상기 현재 인트라 예측 모드를 디코딩하는 단계는:
    상기 현재 인트라 예측 모드가 상기 최고 확률 모드들의 리스트 중 하나의 모드와 동일한지를 표시하는 플래그를 디코딩하는 단계;
    상기 현재 인트라 예측 모드가 상기 최고 확률 모드들의 리스트 중 하나의 모드와 동일한 경우에 상기 현재 인트라 예측 모드와 동일한 상기 리스트의 최고 확률 모드를 식별하는 인덱스를 디코딩하고, 다른 경우에 상기 현재 인트라 예측 모드를 식별하는 인덱스를 디코딩하는 단계를 포함하는 방법.
  14. 제11항 내지 제13항 중 어느 한 항에 있어서, 상기 투영 함수에 관련한 정보의 아이템을 디코딩하는 단계를 추가로 포함하는 방법.
  15. 제11항 내지 제14항 중 어느 한 항에 있어서, 상기 3D 면은 구이고, 상기 투영 함수는 등장방형 투영인 방법.
  16. 넓은 시야 비디오를 나타내는 비트스트림을 디코딩하기 위한 장치로서, 상기 넓은 시야 비디오의 적어도 하나의 픽처는 면으로서 표현되고, 상기 면은 투영 함수를 이용하여 적어도 하나의 2D 픽처상으로 투영되고, 상기 장치는:
    현재 인트라 예측 모드 m에 따라 코딩된 상기 적어도 하나의 2D 픽처의 적어도 하나의 현재 블록에 대해, 상기 투영 함수로부터, 상기 2D 픽처에서 상기 현재 블록에 공간적으로 인접하지 않은, 제1 이웃 블록 C라고 불리는 상기 2D 픽처의 적어도 하나의 이웃 블록을 결정하는 수단 - 상기 적어도 하나의 이웃 블록은 상기 면상에서 상기 현재 블록에 공간적으로 인접함 -;
    상기 제1 이웃 블록 C의 인트라 예측 모드 m_C에 기초하여 그리고 적어도 제2 이웃 블록 A의 인트라 예측 모드 m_A 및 제3 이웃 블록 B의 인트라 예측 모드 m_B에 추가로 기초하여, 최고 확률 모드들의 리스트를 결정하는 수단 - 상기 제2 및 제3 이웃 블록들은 상기 2D 픽처에서 상기 현재 블록에 공간적으로 인접함 -; 및
    상기 최고 확률 모드들의 리스트로부터 상기 현재 인트라 예측 모드를 디코딩하는 수단을 포함하는 장치.
  17. 제16항에 있어서, 상기 최고 확률 모드들의 리스트를 결정하는 수단은,
    m_A 및 m_B가 상이한 경우,
    m_C가 m_A 또는 m_B 중 어느 하나와 동일하다면, 상기 최고 확률 모드들의 리스트는 m_A 및 m_B 및 추가적 인트라 예측 모드를 포함하고, 상기 추가적 인트라 예측 모드는 m_A도 그리고 m_B도 평면 모드가 아닌 경우에 평면 모드와 동일하고, m_A 또는 m_B가 평면 모드이지만 m_A도 그리고 m_B도 DC 모드가 아닌 경우에 DC 모드와 동일하고, 다른 경우에 수직 인트라 예측 모드와 동일하고;
    그렇지 않으면, 상기 최고 확률 모드들의 리스트는 m_A, m_B 및 m_C를 포함하고;
    m_A 및 m_B가 동일한 경우,
    m_C가 m_A와 동일하다면, 상기 최고 확률 모드들의 리스트는 m_A가 평면 및 DC 모드들과 상이한 경우에 m_A 및 m_A의 2개의 인접한 각 모드를 포함하고, 다른 경우에 상기 최고 확률 모드들의 리스트는 평면 모드, DC 모드 및 수직 모드를 포함하고;
    그렇지 않은 경우에, 상기 최고 확률 모드들의 리스트는 m_A 및 m_C 및 추가적 인트라 예측 모드를 포함하고, 상기 추가적 인트라 예측 모드는 m_A도 그리고 m_C도 평면 모드가 아닌 경우에 평면 모드와 동일하고, m_A 또는 m_C가 평면 모드이지만 m_A도 그리고 m_C도 DC 모드가 아닌 경우에 DC 모드와 동일하고, 다른 경우에 수직 인트라 예측 모드와 동일하다와 같이 상기 최고 확률 모드들의 리스트를 결정하도록 구성되는 장치.
  18. 제17항에 있어서, 상기 현재 인트라 예측 모드를 디코딩하는 수단은:
    상기 현재 인트라 예측 모드가 상기 최고 확률 모드들의 리스트 중 하나의 모드와 동일한지를 표시하는 플래그를 디코딩하고;
    상기 현재 인트라 예측 모드가 상기 최고 확률 모드들의 리스트 중 하나의 모드와 동일한 경우 상기 현재 인트라 예측 모드와 동일한 상기 리스트의 최고 확률 모드를 식별하는 인덱스를 디코딩하고, 다른 경우에 상기 현재 인트라 예측 모드를 식별하는 인덱스를 디코딩하도록 구성되는 장치.
  19. 제16항 내지 제18항 중 어느 한 항에 있어서, 상기 디코딩하는 수단은 상기 투영 함수에 관련한 정보의 아이템을 디코딩하도록 추가로 구성되는 장치.
  20. 제16항 내지 제19항 중 어느 한 항에 있어서, 상기 3D 면은 구이고, 상기 투영 함수는 등장방형 투영인 장치.
  21. 제16항 내지 제20항 중 어느 한 항에 따라 넓은 시야 비디오를 나타내는 비트스트림을 디코딩하기 위한 장치를 포함하는 몰입형 렌더링 디바이스.
  22. 비트스트림으로 인코딩된 넓은 시야 비디오의 몰입형 렌더링을 위한 시스템으로서, 적어도:
    데이터 네트워크로부터 상기 비트스트림을 수신하기 위한 네트워크 인터페이스(600),
    제16항 내지 제20항 중 어느 한 항에 따라 상기 비트스트림을 디코딩하기 위한 장치(700), 및
    몰입형 렌더링 디바이스(900)를 포함하는 시스템.
KR1020197008874A 2016-09-30 2017-09-14 넓은 시야 비디오를 인코딩 및 디코딩하기 위한 방법 및 장치 KR20190052015A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP16306262.3 2016-09-30
EP16306262.3A EP3301914A1 (en) 2016-09-30 2016-09-30 Method and apparatus for encoding and decoding a large field of view video
PCT/EP2017/073101 WO2018059946A1 (en) 2016-09-30 2017-09-14 Method and apparatus for encoding and decoding a large field of view video

Publications (1)

Publication Number Publication Date
KR20190052015A true KR20190052015A (ko) 2019-05-15

Family

ID=57137998

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020197008874A KR20190052015A (ko) 2016-09-30 2017-09-14 넓은 시야 비디오를 인코딩 및 디코딩하기 위한 방법 및 장치

Country Status (6)

Country Link
US (1) US20200029092A1 (ko)
EP (2) EP3301914A1 (ko)
JP (1) JP2019534620A (ko)
KR (1) KR20190052015A (ko)
CN (1) CN109792517A (ko)
WO (1) WO2018059946A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022092891A1 (ko) * 2020-10-30 2022-05-05 엘지전자 주식회사 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190253624A1 (en) 2017-07-17 2019-08-15 Ki Baek Kim Image data encoding/decoding method and apparatus
KR20230070062A (ko) 2016-10-04 2023-05-19 주식회사 비원영상기술연구소 영상 데이터 부호화/복호화 방법 및 장치
US10863198B2 (en) * 2017-01-03 2020-12-08 Lg Electronics Inc. Intra-prediction method and device in image coding system for 360-degree video
KR20230079466A (ko) * 2017-04-11 2023-06-07 브이아이디 스케일, 인크. 면 연속성을 사용하는 360 도 비디오 코딩
US11405643B2 (en) 2017-08-15 2022-08-02 Nokia Technologies Oy Sequential encoding and decoding of volumetric video
EP3669330A4 (en) * 2017-08-15 2021-04-07 Nokia Technologies Oy ENCODING AND DECODING VOLUMETRIC VIDEO
WO2019060443A1 (en) 2017-09-20 2019-03-28 Vid Scale, Inc. HANDLING FACIAL DISCONTINUITIES IN 360-DEGREE VIDEO CODING
EP4213096A1 (en) 2018-01-18 2023-07-19 BlackBerry Limited Methods and devices for entropy coding point clouds
CN111819845A (zh) * 2018-03-08 2020-10-23 三星电子株式会社 视频解码方法和装置以及视频编码方法和装置
CN117294837A (zh) 2018-04-02 2023-12-26 深圳市大疆创新科技有限公司 用于图像处理的方法和图像处理装置
EP3553745B1 (en) 2018-04-09 2021-09-01 BlackBerry Limited Methods and devices for binary entropy coding of point clouds
WO2019199510A1 (en) * 2018-04-11 2019-10-17 Interdigital Vc Holdings, Inc. A method and apparatus for encoding/decoding a point cloud representing a 3d object
CN112567771A (zh) 2018-08-09 2021-03-26 华为技术有限公司 基于历史的帧内模式编解码方法和装置
TWI822863B (zh) 2018-09-27 2023-11-21 美商Vid衡器股份有限公司 360度視訊寫碼樣本導出
JP7328328B2 (ja) * 2018-10-08 2023-08-16 ホアウェイ・テクノロジーズ・カンパニー・リミテッド コーディングブロックの三角形パーティションのインター予測のための装置および方法
CN113545041A (zh) * 2019-03-07 2021-10-22 数字洞察力有限公司 图像编码/解码方法和设备
WO2020182079A1 (en) * 2019-03-10 2020-09-17 Huawei Technologies Co., Ltd. An encoder, a decoder and corresponding methods using intra mode coding for intra prediction
EP3987806A4 (en) 2019-07-20 2022-08-31 Beijing Bytedance Network Technology Co., Ltd. CONDITIONAL CODING OF PALETTE MODE USE INDICATION
US20220400287A1 (en) * 2019-11-15 2022-12-15 Hfi Innovation Inc. Method and Apparatus for Signaling Horizontal Wraparound Motion Compensation in VR360 Video Coding

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100677142B1 (ko) * 2004-08-13 2007-02-02 경희대학교 산학협력단 파노라마 영상의 움직임 추정 및 보상
US9088796B2 (en) * 2011-11-07 2015-07-21 Sharp Kabushiki Kaisha Video decoder with enhanced CABAC decoding
US9918082B2 (en) * 2014-10-20 2018-03-13 Google Llc Continuous prediction domain
GB2534606A (en) * 2015-01-29 2016-08-03 Canon Kk Method and device for encoding or decoding an image comprising encoding of decoding information representing prediction modes

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022092891A1 (ko) * 2020-10-30 2022-05-05 엘지전자 주식회사 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법

Also Published As

Publication number Publication date
WO2018059946A1 (en) 2018-04-05
CN109792517A (zh) 2019-05-21
EP3301914A1 (en) 2018-04-04
JP2019534620A (ja) 2019-11-28
EP3520397A1 (en) 2019-08-07
US20200029092A1 (en) 2020-01-23

Similar Documents

Publication Publication Date Title
KR20190052015A (ko) 넓은 시야 비디오를 인코딩 및 디코딩하기 위한 방법 및 장치
CN109804633B (zh) 利用自适应帧内预测的全向视频编码和解码的方法和装置
JP7043148B2 (ja) 適応型イントラ最確モードを用いた全方位映像符号化のための方法および装置
US20190313097A1 (en) Method and apparatus for coding/decoding a large field of view video
CN109845264B (zh) 用于编码和解码大视场视频的方法和装置
EP3301916A1 (en) Method and apparatus for omnidirectional video coding with adaptive intra most probable modes
KR20190055101A (ko) 전방향성 비디오를 인코딩하고 디코딩하기 위한 방법 및 장치
KR102254986B1 (ko) 구면 투영부들에 의한 왜곡을 보상하기 위한 등장방형 객체 데이터의 프로세싱
CN111052746B (zh) 用于编码和解码全向视频的方法和装置
CN111448799A (zh) 全向视频切片段
EP3349463A1 (en) Method and apparatus for coding/decoding a picture of an omnidirectional video
EP3349462A1 (en) Method and apparatus for coding/decoding a picture of an omnidirectional video

Legal Events

Date Code Title Description
A201 Request for examination
WITB Written withdrawal of application