KR102645652B1 - 비디오 인코딩 시스템 - Google Patents

비디오 인코딩 시스템 Download PDF

Info

Publication number
KR102645652B1
KR102645652B1 KR1020227037046A KR20227037046A KR102645652B1 KR 102645652 B1 KR102645652 B1 KR 102645652B1 KR 1020227037046 A KR1020227037046 A KR 1020227037046A KR 20227037046 A KR20227037046 A KR 20227037046A KR 102645652 B1 KR102645652 B1 KR 102645652B1
Authority
KR
South Korea
Prior art keywords
blocks
frequency
frequency bands
video frame
data
Prior art date
Application number
KR1020227037046A
Other languages
English (en)
Other versions
KR20220150412A (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 애플 인크.
Priority to KR1020247007240A priority Critical patent/KR20240033186A/ko
Publication of KR20220150412A publication Critical patent/KR20220150412A/ko
Application granted granted Critical
Publication of KR102645652B1 publication Critical patent/KR102645652B1/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/63Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets
    • 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
    • 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/106Processing image signals
    • H04N13/172Processing image signals image signals comprising non-image signal components, e.g. headers or format information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/30Image reproducers
    • H04N13/332Displays for viewing with the aid of special glasses or head-mounted displays [HMD]
    • 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/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/146Data rate or code amount at the encoder output
    • H04N19/147Data rate or code amount at the encoder output according to rate distortion criteria
    • 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/164Feedback from the receiver or from the transmission channel
    • 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/167Position within a video image, e.g. region of interest [ROI]
    • 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/174Methods 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 slice, e.g. a line of blocks or a group of blocks
    • 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/18Methods 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 set of transform coefficients
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • H04N19/37Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability with arrangements for assigning different transmission priorities to video input data or to video coded data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/86Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving reduction of coding artifacts, e.g. of blockiness

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Optics & Photonics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

인코딩 이전에 픽셀 데이터가 주파수 대역들로 분해되는 비디오 인코딩 시스템. 주파수 대역들은 블록 기반 인코더에 제공되는 블록들로 조직화된다. 인코딩된 주파수 데이터는 패킷화되고 수신 디바이스로 송신된다. 수신 디바이스 상에서, 인코딩된 데이터는 디코딩되어 주파수 대역들이 복구된다. 이어서, 주파수 대역들에 대해 웨이브렛(wavelet) 합성이 수행되어 디스플레이를 위한 픽셀 데이터를 재구성한다. 시스템은 하나 이상의 인코더들을 사용하여 프레임들의 부분들(타일들 또는 슬라이스들)을 인코딩하고, 인코딩된 부분들을 그들이 준비됨에 따라 송신할 수 있다. 사전-필터링 컴포넌트는 웨이브렛 변환 이전에 픽셀 데이터에 대한 렌즈 워핑을 수행할 수 있다.

Description

비디오 인코딩 시스템{VIDEO ENCODING SYSTEM}
가상 현실(virtual reality, VR)은 사용자들이 몰입형 인공 환경을 경험하고/하거나 그와 상호작용하게 하고, 그에 따라, 사용자는 자신들이 물리적으로 그 환경 내에 있는 것처럼 느끼게 된다. 예를 들어, 가상 현실 시스템들은 깊이의 착각을 불러일으키기 위해 사용자들에게 입체 장면을 디스플레이할 수 있고, 컴퓨터는 장면 내에서 움직인다는 사용자의 착각을 제공하기 위해 장면 콘텐츠를 실시간으로 조정할 수 있다. 사용자가 가상 현실 시스템을 통해 이미지들을 볼 때, 사용자는 그에 따라 1인칭 시점으로부터 자신들이 장면 내에서 움직이고 있는 것처럼 느낄 수 있다. 유사하게, 혼합 현실(mixed reality, MR)은 사용자의 세계관을 증강시키거나, 또는 그에 콘텐츠를 추가하도록 컴퓨터 생성 정보(가상 콘텐츠로 지칭됨)를 현실 세계 이미지들 또는 현실 세계 뷰와 조합하거나, 또는 대안적으로 현실 세계 객체들의 가상 표현들을 3차원(3D) 가상 세계의 뷰들과 조합한다. 따라서, 가상 현실의 시뮬레이션된 환경들 및/또는 혼합 현실의 혼합된 환경들은 다수의 애플리케이션들에 대한 대화형 사용자 경험을 제공하기 위해 이용될 수 있다.
비디오 인코딩 시스템의 다양한 실시예들이 기술되며, 이는 통신 링크(예컨대, 무선 링크)를 통해 디코딩 및 디스플레이를 위한 디바이스로의 송신을 위해 고해상도 비디오 소스들을 낮은 레이턴시들로 인코딩할 수 있다. 비디오 인코딩 시스템의 실시예들은 또한, 통신 링크의 채널 용량의 변동들과 같은 다양한 조건들에서 원하는 프레임 레이트를 유지하기 위해 디바이스에 송신된 인코딩된 비디오의 점진적 저하(graceful degradation)를 제공할 수 있다. 비디오 인코딩 시스템의 예시적인 애플리케이션이 가상 또는 혼합 현실 시스템들에 있으며, 여기서 가상 콘텐츠를 포함하는 비디오 프레임들은 렌더링되고 인코딩되어, 디코딩 및 디스플레이를 위해 디바이스(예컨대, 노트북 또는 랩톱 컴퓨터, 패드 또는 태블릿 디바이스, 스마트폰, 또는 사용자가 착용할 수 있는 헤드셋, 헬멧, 고글 또는 안경과 같은 머리-장착형 디스플레이(head-mounted display, HMD))로 기지국에 의해 송신된다.
무선 링크를 통해 목표 프레임 레이트를 유지하고, 프레임 렌더링, 송신, 및 디스플레이에서의 레이턴시를 최소화하기 위해 다양한 방법들 및 장치가 비디오 인코딩 시스템에 의해 구현될 수 있다. 또한, 방법들 및 장치는 통신 링크의 채널 용량의 변동들과 같은 다양한 조건들에서 원하는 프레임 레이트를 유지하기 위해 디바이스에 송신된 인코딩된 비디오의 점진적 저하를 제공할 수 있다.
일부 실시예들에서, 비디오 인코딩 시스템은 인코딩 이전에 픽셀 데이터에 대해 웨이브렛(wavelet) 변환을 수행하여 픽셀 데이터를 주파수 대역들로 분해할 수 있다. 이어서, 주파수 대역들은 인코딩/압축을 위해 블록 기반 인코더에 제공되는 블록들로 조직화된다. 이어서, 인코딩된 주파수 데이터는 인코딩된 주파수 데이터를 패킷화하고 패킷들을 수신 디바이스로 송신하는 무선 인터페이스로 전송된다. 수신 디바이스 상에서, 인코딩된 데이터는 디패킷화되고 블록-기반 디코더를 통과하여 주파수 대역들이 복구된다. 이어서, 복구된 주파수 대역들에 대해 웨이브렛 합성이 수행되어 디스플레이를 위한 픽셀 데이터를 재구성한다.
일부 실시예들에서, 비디오 인코딩 시스템은 슬라이스 기반 렌더링, 인코딩, 및 송신을 수행할 수 있다. 기지국에서 전체 프레임들을 렌더링 및 인코딩하고 렌더링된 프레임들을 디바이스에 송신하는 것이 아니라, 기지국은 프레임들의 부분들 또는 일부분들(슬라이스들로 지칭됨)을 렌더링 및 인코딩하고, 인코딩된 슬라이스들을 그들이 준비됨에 따라 디바이스에 송신할 수 있다. 슬라이스 기반 렌더링 및 인코딩은 레이턴시를 감소시키는 것을 도울 수 있고, 또한 버퍼링에 필요한 메모리의 양을 감소시킬 수 있으며, 이는 칩(들) 또는 프로세서(들) 상의 메모리 풋프린트뿐만 아니라 전력 요건들을 감소시킨다.
일부 실시예들에서, 비디오 인코딩 시스템은 타일 기반 렌더링, 인코딩, 및 송신을 수행할 수 있다. 타일 기반 렌더링, 인코딩, 및 송신에서, 각각의 슬라이스는 다수의 타일들(예컨대, 4개의 타일들)로 분할될 수 있고, 기지국은 타일들을 렌더링 및 인코딩할 수 있고, 인코딩된 타일들을 그들이 준비됨에 따라 디바이스에 송신할 수 있다.
일부 실시예들에서, 비디오 인코딩 시스템은 각각의 슬라이스로부터의 타일들을 프로세싱하기 위해 단일의 인코더를 사용하여 타일 기반 인코딩을 수행할 수 있다. 그러나, 일부 실시예들에서, 비디오 인코딩 시스템은 각각의 슬라이스로부터 각자의 타일들을 프로세싱하기 위해 다수의 인코더들을 사용하여 타일 기반 인코딩을 수행할 수 있다. 예를 들어, 일부 실시예들에서, 각각의 슬라이스는 4개의 타일들로 분할될 수 있고, 2개의 인코더들이 각각의 슬라이스로부터의 2개의 타일들에 대해 동작할 수 있다. 각각의 인코더는 그의 타일들 사이에 상이한 주파수 대역들로부터의 블록들의 프로세싱을 다중화하여, 동일한 주파수 대역으로부터의 블록들의 프로세싱 사이에 다수의 시간 단위들을 허용할 수 있다. 타일들 사이에 블록들의 프로세싱을 다중화함으로써, 주파수 대역에서의 블록들 사이의 의존성들이 적절히 처리될 수 있다.
일부 실시예들에서, 비디오 인코딩 시스템은 웨이브렛 변환 이전에 프레임들 내의 픽셀 데이터의 사전-필터링을 수행할 수 있다. 일부 실시예들에서, 사전-필터링은 웨이브렛 변환 이전에 기지국 상에서 프레임들에 대한 렌즈 워핑(lens warp) 기능을 수행하는 것을 포함할 수 있다. 렌즈 워핑은 이미지들이 통과하여 보여지는 디바이스의(예컨대, HMD의) 렌즈들에 의해 야기된 이미지들의 왜곡을 보정하기 위해 수행되며, 이에 따라 이미지들의 품질이 향상된다. 렌즈 워핑을 사전-필터링 스테이지에서 기지국 상에서 수행하는 것은 웨이브렛 변환 및 인코딩을 수행하기 전에 프레임들의 해상도를 감소시킬 수 있고, 이는 압축을 개선하는 데 도움을 줄 수 있고, 레이턴시 및 무선 링크 상의 대역폭 사용을 감소시킬 수 있다. 또한, 렌즈 워핑을 디코딩 이후에 디바이스 상에서 수행하지 않고 사전-필터링 스테이지에서 기지국 상에서 수행함으로써, 이미지 데이터의 필터링은, 인코딩 이전에 해상도를 낮추기 위해 기지국 상에서 필터링을 수행한 다음 디바이스 상에서 렌즈 워핑 필터링을 수행하는 것과는 대조적으로 한 번만 수행될 필요가 있을 수 있다.
일부 실시예들에서, 사전-필터링은 주변 영역들에서 해상도를 감소시키는 한편 포비티드(foveated) 영역들에서 더 높은 해상도를 유지하기 위해 필터링하는 것을 포함할 수 있다. 이러한 방법에서, 디바이스로부터 획득된 시선 추적 정보는 사용자가 현재 보고 있는 방향을 식별하는 데 사용될 수 있다. 중심와(fovea)에 대응하는 프레임의 영역(포비티드 영역으로 지칭됨)은 결정된 시선 방향에 적어도 부분적으로 기초하여 식별될 수 있다. 일부 실시예들에서, 주변 영역(즉, 포비티드 영역 외부의 프레임의 일부분)은 주변 영역에서 해상도를 감소시키기 위해 사전-필터링될 수 있다.
도 1은 적어도 일부 실시예들에 따른, 인코딩 이전의 웨이브렛 변환을 사용하여 픽셀 데이터를 주파수 대역들로 분해하는 비디오 인코딩 시스템을 도시한 블록도이다.
도 2는 적어도 일부 실시예들에 따른, 프레임들로부터의 타일들을 병렬로 프로세싱하는 다수의 인코더들을 포함하는 비디오 인코딩 시스템을 도시한다.
도 3a는 적어도 일부 실시예들에 따른, 슬라이스들 및 타일들로 분할되는 예시적인 프레임을 도시한다.
도 3b는 적어도 일부 실시예들에 따른, 블록들로 분할된 예시적인 타일을 도시한다.
도 3c는 적어도 일부 실시예들에 따른, 인코딩 이전에 픽셀 데이터를 저장하는 픽셀 블록의 웨이브렛 변환을 수행하여 주파수 대역 데이터를 생성하는 것을 도시한다.
도 4는 적어도 일부 실시예들에 따른, 도 1 및 도 2에 도시된 바와 같은 비디오 인코딩 시스템들을 포함하는 VR/MR 시스템들을 위한 동작 방법의 상위 레벨 흐름도이다.
도 5는 적어도 일부 실시예들에 따른, 도 1에 도시된 바와 같은 비디오 인코딩 시스템을 위한 동작 방법의 흐름도이다.
도 6은 적어도 일부 실시예들에 따른, 도 2에 도시된 바와 같은 비디오 인코딩 시스템을 위한 동작 방법의 흐름도이다.
도 7은 적어도 일부 실시예들에 따른, 비디오 인코딩 시스템을 구현할 수 있는 예시적인 VR/MR 시스템을 도시한다.
도 8은 적어도 일부 실시예들에 따른, 도 7에 도시된 VR/MR 시스템의 컴포넌트들을 도시한 블록도이다.
본 명세서는 "일 실시예" 또는 "실시예"에 대한 언급들을 포함한다. "일 실시예에서" 또는 "실시예에서"라는 문구들의 등장들은 반드시 동일한 실시예를 지칭하는 것은 아니다. 특정 특징들, 구조들 또는 특성들이 본 개시와 일관성을 유지하는 임의의 적합한 방식으로 조합될 수 있다.
"포함하는(Comprising)". 이러한 용어는 개방형(open-ended)이다. 청구범위에서 사용되는 바와 같이, 이러한 용어는 부가적인 구조 또는 단계들을 배제(foreclose)하지 않는다. "... 하나 이상의 프로세서 유닛들을 포함하는 장치"를 언급하는 청구항을 고려한다. 그러한 청구항은 장치가 부가적인 컴포넌트들(예컨대, 네트워크 인터페이스 유닛, 그래픽 회로부 등)을 포함하는 것을 배제하지 않는다.
"~하도록 구성되는(configured to)". 다양한 유닛들, 회로들 또는 다른 컴포넌트들이 태스크 또는 태스크들을 수행"하도록 구성"되는 것으로 설명되거나 청구될 수 있다. 그러한 문맥들에서, "~하도록 구성되는"은 유닛들/회로들/컴포넌트들이 동작 동안에 그들 태스크 또는 태스크들을 수행하는 구조물(예컨대, 회로부)을 포함한다는 것을 표시함으로써 구조물을 내포하는 데 사용된다. 이와 같이, 유닛/회로/컴포넌트는, 특정된 유닛/회로/컴포넌트가 현재 동작중이지 않은 경우(예컨대, 켜진 상태가 아닌 경우)에도 태스크를 수행하도록 구성되는 것으로 칭해질 수 있다. "~하도록 구성되는"이라는 문구와 함께 사용되는 유닛들/회로들/컴포넌트들은 하드웨어 - 예를 들어, 회로들, 동작을 구현하도록 실행가능한 프로그램 명령어들을 저장하는 메모리 등 -를 포함한다. 유닛/회로/컴포넌트가 하나 이상의 태스크들을 수행"하도록 구성"됨을 언급하는 것은 그 유닛/회로/컴포넌트에 대해 미국 특허법 35 U.S.C. § 112, (f) 문단 규정이 적용되지 않도록 하기 위한 의도의 명시이다. 추가로, "~하도록 구성되는"은 사안이 되는 태스크(들)를 수행할 수 있는 방식으로 동작하도록 소프트웨어 또는 펌웨어(예컨대, FPGA 또는 소프트웨어를 실행하는 범용 프로세서)에 의해 조작되는 일반 구조물(예를 들어, 일반 회로부)을 포함할 수 있다. "~하도록 구성되는"은 또한 하나 이상의 태스크들을 구현하거나 수행하도록 적응된 디바이스들(예컨대, 집적 회로들)을 제조하도록 제조 프로세스(예컨대, 반도체 제조 설비)를 적응하는 것을 포함할 수 있다.
"제1", "제2", 등. 본 명세서에서 사용되는 바와 같이, 이러한 용어들은 이들이 선행하고 있는 명사들에 대한 라벨들로서 사용되고, 임의의 유형의(예컨대, 공간적, 시간적, 논리적 등) 순서를 암시하는 것은 아니다. 예를 들어, 버퍼 회로는 "제1" 및 "제2" 값들에 대한 기입 동작들을 수행하는 것으로서 본 명세서에 설명될 수 있다. 용어들 "제1" 및 "제2"는 반드시 제1 값이 제2 값 전에 기입되어야 한다는 것을 암시하지는 않는다.
"~에 기초하여" 또는 "~에 따라". 본 명세서에서 사용되는 바와 같이, 이 용어들은 결정에 영향을 주는 하나 이상의 인자들을 기술하는 데 사용된다. 이 용어들은 결정에 영향을 줄 수 있는 추가적 인자들을 배제하지 않는다. 즉, 결정은 오직 그들 인자들에만 기초하거나 또는 그들 인자들에 적어도 부분적으로 기초할 수 있다. "B에 기초하여 A를 결정한다"라는 문구를 고려한다. 이 경우에, B가 A의 결정에 영향을 주는 인자이기는 하지만, 그러한 문구는 A의 결정이 또한 C에도 기초하는 것임을 배제하지 않는다. 다른 예시들에서, A는 오직 B에만 기초하여 결정될 수 있다.
"또는". 청구범위에 사용될 때, 용어 "또는"은 포괄적인 '또는'으로서 사용되고 배타적인 '또는'으로서 사용되지 않는다. 예를 들어, 문구 "x, y, 또는 z 중 적어도 하나"는 x, y, 및 z 중 어느 하나뿐만 아니라 이들의 임의의 조합을 의미한다.
비디오 인코딩 시스템의 다양한 실시예들이 기술된다. 비디오 인코딩 시스템의 실시예들은 디코딩 및 디스플레이를 위한 디바이스로의 통신 링크(예컨대, 무선 링크)를 통한 송신을 위해 고해상도 비디오 소스들을 낮은 레이턴시들로 인코딩할 수 있다. 비디오 인코딩 시스템의 실시예들은 또한, 통신 링크의 채널 용량의 변동들과 같은 다양한 조건들에서 원하는 프레임 레이트를 유지하기 위해 디바이스에 송신된 인코딩된 비디오의 점진적 저하를 제공할 수 있다.
비디오 인코딩 시스템의 예시적인 애플리케이션으로는 가상 콘텐츠를 포함하는 비디오 프레임들이 렌더링되고 인코딩되어 디코딩 및 디스플레이를 위해 디바이스에 송신되는 가상 또는 혼합 현실 시스템들이 있다. 비디오 인코딩 시스템의 실시예들이 구현될 수 있는 가상 또는 혼합 현실 시스템(본 명세서에서 VR/MR 시스템으로 지칭됨)의 실시예들이 기술된다. 일부 실시예들에서, VR/MR 시스템은 디바이스(예컨대, 패드 또는 태블릿 디바이스, 스마트폰, 또는 본 명세서에서 머리-장착형 디스플레이(HMD)로 지칭되는, 사용자가 착용하는 헤드셋, 헬멧, 고글, 또는 안경), 및 본 명세서에서 기지국으로 지칭되는 별개의 컴퓨팅 디바이스를 포함할 수 있다. 일부 실시예들에서, 디바이스 및 기지국은 각각 디바이스 및 기지국이 무선 접속을 통해 데이터를 통신 및 교환할 수 있게 하는 무선 통신 기술을 포함할 수 있다. 일부 실시예들에서, 디바이스는 사용자의 환경에 대한 정보(예컨대, 비디오, 깊이 정보, 조명 정보 등), 및 사용자에 대한 정보(예컨대, 사용자의 표정들, 눈 움직임, 손 제스처들 등)를 수집하는 센서들을 포함할 수 있다. 센서들에 의해 수집된 정보는 무선 접속을 통해 기지국으로 송신될 수 있다. 기지국은 무선 접속을 통해 디바이스로부터 수신된 센서 정보에 적어도 부분적으로 기초하여 가상 콘텐츠를 포함하는 프레임들을 생성하고 렌더링하도록 구성된 소프트웨어 및 하드웨어(예컨대, 프로세서들(시스템-온-칩(SOC), CPU들, 이미지 신호 프로세서들(ISP들), 그래픽 처리 장치들(GPU들), 인코더/디코더들(코덱들) 등), 메모리 등)를 포함할 수 있다. 기지국은 또한 렌더링된 프레임들을 사전-필터링하고 압축하여 디스플레이를 위해 디바이스에 무선 접속을 통해 송신할 수 있는 본 명세서에 기술된 바와 같은 비디오 인코딩 시스템의 실시예를 포함할 수 있다.
일부 실시예들에서, VR/MR 시스템은 디바이스와 기지국 사이에 고도로 지향성인 무선 링크를 제공하는 독점적 무선 통신 기술을 구현할 수 있다. 일부 실시예들에서, 무선 통신 기술의 지향성 및 대역폭은 기지국과 통신하는 다수의 디바이스들을 동시에 지원하여 다수의 사용자들이 공존(co-located) 환경에서 동시에 시스템을 사용할 수 있게 할 수 있다. 그러나, 일부 실시예들에서, 다른 상업적(예컨대, Wi-Fi, 블루투스 등) 또는 독점적 무선 통신 기술들이 지원될 수 있다.
무선 링크 상에서 고려되어야 하는 주요 제약들은 대역폭 및 레이턴시를 포함한다. VR/MR 시스템의 목표는 고해상도, 넓은 시야(FOV) 가상 디스플레이를, 사용자에게 고품질 VR/MR 뷰를 제공하는 프레임 레이트로 제공하는 것이다. 다른 목표는 프레임이 기지국에 의해 렌더링되는 시간과 프레임이 디바이스에 의해 디스플레이되는 시간 사이의 레이턴시를 최소화하는 것이다. 그러나, 무선 링크의 채널 용량은 시간에 따라 변할 수 있고, 따라서 무선 링크는 임의의 주어진 시간에 송신될 특정 양의 정보만을 지원할 수 있다.
무선 링크를 통해 목표 프레임 레이트를 유지하고 프레임 렌더링, 송신, 및 디스플레이에서의 레이턴시를 최소화하기 위해 비디오 인코딩 시스템에 의해 구현될 수 있는 다양한 방법들 및 장치가 본 명세서에 기술된다. 또한, 방법들 및 장치는 통신 링크의 채널 용량의 변동들과 같은 다양한 조건들에서 원하는 프레임 레이트를 유지하기 위해 디바이스에 송신된 인코딩된 비디오의 점진적 저하를 제공할 수 있다.
일부 실시예들에서, 비디오 인코딩 시스템은 인코딩 이전에 픽셀 데이터에 대해 웨이브렛 변환을 수행하여 픽셀 데이터를 주파수 대역들로 분해할 수 있다. 이어서, 주파수 대역들은 인코딩/압축을 위해 블록 기반 인코더에 제공되는 블록들로 조직화된다. 예로서, 프레임은 128x128 블록들로 분할될 수 있고, 2-레벨 웨이브렛 분해가 각각의 128x128 블록에 적용되어 7개의 주파수 대역들을 나타내는 주파수 데이터의 16개의 32x32 블록들을 생성할 수 있으며, 이들은 이어서 인코더(예컨대, 고효율 비디오 코딩(HEVC) 인코더)로 전송되어 인코딩될 수 있다. 이어서, 인코딩된 주파수 데이터는 인코딩된 주파수 데이터를 패킷화하고 패킷들을 수신 디바이스(예컨대, HMD)로 송신하는 무선 인터페이스로 전송된다. 수신 디바이스 상에서, 인코딩된 데이터는 디패킷화되고 블록-기반 디코더를 통과하여 주파수 대역들이 복구된다. 이어서, 복구된 주파수 대역들에 대해 웨이브렛 합성이 수행되어 디스플레이를 위한 픽셀 데이터를 재구성한다.
웨이브렛 변환이 비디오 프레임으로부터 각각의 픽셀 블록에 적용되는 2-레벨 웨이브렛 분해인 실시예들이 일반적으로 기술되지만, 다양한 실시예들에서 웨이브렛 분해는 임의의 수(N)의 레벨들(예컨대, 하나의 레벨, 2개의 레벨들, 3개의 레벨들, 4개의 레벨들 등)일 수 있고, 레벨들의 수(N)는 인코딩된 이미지의 품질 대 인코딩될 블록들의 복잡성을 절충(trade-off)하도록 조정될 수 있다.
일부 실시예들에서, 웨이브렛 분해 내의 웨이브렛 계수들 각각에 코어링(coring) 기능이 적용될 수 있다. "코어링"은 계수들의 소프트-임계화(soft-thresholding)를 지칭하며, 노이즈를 제거하는 데 효과적이다. 이것은 중요도 대 가용 대역폭의 영역들에 따라 적응적 방식으로 행해질 수 있다.
일부 실시예들에서, 비디오 인코딩 시스템은 슬라이스 기반 렌더링, 인코딩, 및 송신을 수행할 수 있다. 전체 프레임들을 렌더링, 인코딩, 및 송신하는 것은 각각의 프레임이 완료되고, 저장되고, 이어서 VR/MR 시스템의 다음 스테이지로 송신될 필요가 있기 때문에, 레이턴시 및 메모리에 영향을 미칠 수 있다. 슬라이스 기반 렌더링에서, 기지국에서 전체 프레임들을 렌더링 및 인코딩하고 렌더링된 프레임들을 디바이스에 송신하는 것이 아니라, 기지국은 프레임들의 부분들(슬라이스들로 지칭됨)을 렌더링 및 인코딩하고, 인코딩된 슬라이스들을 그들이 준비됨에 따라 디바이스에 송신할 수 있다. 예를 들어, 슬라이스는 128x128 블록들의 행, 또는 블록들의 2개 이상의 행들일 수 있다. 슬라이스 기반 렌더링 및 인코딩은 레이턴시를 감소시키는 것을 도울 수 있고, 또한 버퍼링에 필요한 메모리의 양을 감소시킬 수 있으며, 이는 칩(들) 또는 프로세서(들) 상의 메모리 풋프린트뿐만 아니라 전력 요건들을 감소시킬 수 있다.
일부 실시예들에서, 비디오 인코딩 시스템은 타일 기반 렌더링, 인코딩, 및 송신을 수행할 수 있다. 타일 기반 렌더링, 인코딩, 및 송신에서, 각각의 슬라이스는 다수의 타일들(예컨대, 4개의 타일들)로 분할될 수 있고, 기지국은 타일들을 렌더링 및 인코딩할 수 있고, 인코딩된 타일들을 그들이 준비됨에 따라 디바이스에 송신할 수 있다.
일부 실시예들에서, 비디오 인코딩 시스템은 단일의 인코더를 사용하여 타일 기반 인코딩을 수행하여 각각의 슬라이스로부터 타일들을 프로세싱할 수 있다. 그러나, 일부 실시예들에서, 비디오 인코딩 시스템은 각각의 슬라이스로부터 각자의 타일들을 프로세싱하기 위해 다수의 인코더들을 사용하여 타일 기반 인코딩을 수행할 수 있다. 예를 들어, 일부 실시예들에서, 각각의 슬라이스는 4개의 타일들로 분할될 수 있으며, 각각의 타일은 다수의 128x128 블록들을 포함하고, 2개의 인코더들(e0 및 e1)은 각각의 슬라이스로부터의 2개의 타일들에 대해 동작할 수 있다(예컨대, e0는 t0 및 t1에 대해 동작하고; e1은 t2 및 t3에 대해 동작함). 각각의 인코더는 그의 2개의 타일들 사이에 상이한 주파수 대역들로부터의 블록들의 프로세싱을 다중화하여, 동일한 주파수 대역으로부터의 블록들의 프로세싱 사이에 16개의 시간 단위들을 허용할 수 있다. 2개의 타일들 사이에 블록들의 프로세싱을 다중화함으로써, 주파수 대역에서의 블록들 사이의 의존성들이 적절히 처리될 수 있다. 각각의 슬라이스가 4개의 타일들로 분할되고 2개의 인코더들이 각각의 슬라이스로부터의 각자의 타일들에 대해 동작하는 실시예들이 기술되지만, 슬라이스들은 일부 실시예들에서 더 많은 타일들(예컨대, 6개 또는 8개의 타일들)로 분할될 수 있고, 더 많은 인코더들(예컨대, 3개 또는 4개의 인코더들)이 일부 실시예들에서 사용될 수 있다.
일부 실시예들에서, 비디오 인코딩 시스템은 웨이브렛 변환 이전에 프레임들 내의 픽셀 데이터의 사전-필터링을 수행할 수 있다. 예를 들어, 사전-필터링은 기지국에 의해 렌더링된 프레임들의 해상도를 프레임들의 웨이브렛 변환, 인코딩, 및 무선 링크를 통한 디바이스로의 송신을 수행하기 전에 감소시킬 수 있으며, 이는 압축을 개선하는 데 도움을 줄 수 있고, 레이턴시 및 무선 링크 상의 대역폭 사용을 감소시킬 수 있다.
디바이스가 HMD인 일부 실시예들에서, 사전-필터링은 웨이브렛 변환 이전에 기지국 상에서 프레임들에 대한 렌즈 워핑을 수행하는 것을 포함할 수 있다. 렌즈 워핑은 이미지들이 통과하여 보여지는 HMD 상의 렌즈들에 의해 야기된 이미지들의 왜곡을 보정하기 위해 수행되며, 이에 따라 이미지들의 품질이 향상된다. 일부 실시예들에서, HMD는 예를 들어 교정 프로세스에 의해 생성된 렌즈들에 대한 렌즈 워핑 데이터를 저장할 수 있고, 무선 접속을 통해 렌즈 워핑 데이터를 기지국에 제공할 수 있다. 이어서, 기지국은 그 HMD에 대한 렌즈 워핑 데이터에 기초하여 프레임들에 대해 렌즈 워핑을 수행할 수 있다. 종래의 VR/MR 시스템들에서, 렌즈 워핑은 디코딩 이후 그리고 디스플레이 이전에 HMD 상에서 수행된다. 렌즈 워핑을 사전-필터링 스테이지에서 기지국 상에서 수행하는 것은 웨이브렛 변환 및 인코딩을 수행하기 전에 프레임들의 해상도를 감소시킬 수 있고, 이는 압축을 개선하는 데 도움을 줄 수 있고, 레이턴시 및 무선 링크 상의 대역폭 사용을 감소시킬 수 있다. 또한, 렌즈 워핑을 디코딩 이후에 HMD 상에서 수행하지 않고 사전-필터링 스테이지에서 기지국 상에서 수행함으로써, 이미지 데이터의 필터링은, 인코딩 이전에 해상도를 낮추기 위해 기지국 상에서 필터링을 수행한 다음 HMD 상에서 렌즈 워핑 필터링을 수행하는 것과는 대조적으로 한 번만 수행될 필요가 있을 수 있다.
일부 실시예들에서, 사전-필터링은 주변 영역들에서의 해상도를 감소시키는 한편 포비티드 영역들에서 더 높은 해상도를 유지하기 위해 필터링하는 것을 포함할 수 있다. 이러한 방법에서, 디바이스로부터 획득된 시선 추적 정보는 사용자가 현재 보고 있는 방향을 식별하는 데 사용될 수 있다. 인간의 눈은 주변 영역에서보다 중심와 영역에서 더 높은 해상도를 인지할 수 있다. 따라서, 중심와에 대응하는 프레임의 영역(포비티드 영역으로 지칭됨)은 결정된 시선 방향에 적어도 부분적으로 기초하여 식별될 수 있다. 일부 실시예들에서, 주변 영역(즉, 포비티드 영역 외부의 프레임의 일부분)은 예를 들어 고주파 정보를 필터링하고/하거나 색상 압축을 증가시킴으로써 인간 시각 시스템의 지식에 기초하여 정보를 감소시키기 위해 사전-필터링될 수 있다. 일부 실시예들에서, 주변 영역에 적용되는 필터링 양은 프레임의 주변을 향해 연장하여 증가할 수 있다. 주변 영역의 사전-필터링은 프레임의 개선된 압축을 제공하는 것을 도울 수 있다.
도 1은 적어도 일부 실시예들에 따른, 인코딩 이전의 웨이브렛 변환을 사용하여 픽셀 데이터를 주파수 대역들로 분해하는 비디오 인코딩 시스템(120)을 도시한 블록도이다. VR/MR 시스템(10)은 적어도 하나의 디바이스(150)(예컨대, 패드 또는 태블릿 디바이스, 스마트폰, 또는 사용자가 착용할 수 있는 헤드셋, 헬멧, 고글, 또는 안경과 같은 HMD) 및 컴퓨팅 디바이스(100)(본 명세서에서 기지국으로 지칭됨)를 포함할 수 있다. 기지국(100)은 가상 콘텐츠를 포함하는 VR 또는 MR 프레임들을 렌더링하고, 프레임들을 인코딩하고, 인코딩된 프레임들을 디바이스(150)에 의한 디코딩 및 디스플레이를 위해 무선 접속(180)을 통해 디바이스(150)로 송신한다.
일부 실시예들에서, 디바이스(150)는 사용자(190)의 환경에 대한 정보(예컨대, 비디오, 깊이 정보, 조명 정보 등), 및 사용자(190)에 대한 정보(예컨대, 사용자의 표정들, 눈 움직임, 시선 방향, 손 제스처들 등)를 수집하는 센서들(160)을 포함할 수 있다. 디바이스(150)는 센서들(160)에 의해 수집된 정보의 적어도 일부를 무선 접속(180)을 통해 기지국(100)으로 송신할 수 있다. 기지국(100)은, 센서들(160)로부터 획득된 다양한 정보에 적어도 부분적으로 기초하여, 디바이스(150)에 의한 디스플레이를 위한, 가상 콘텐츠를 포함하는 프레임들을 렌더링하고, 프레임들을 인코딩하고, 인코딩된 프레임들을 무선 접속(180)을 통해 디코딩 및 사용자로의 디스플레이를 위해 디바이스(150)에 송신할 수 있다.
기지국(100) 및 디바이스(150)는 기지국(100)과 디바이스(150)가 무선 접속(180)을 통해 데이터를 통신 및 교환할 수 있게 하는 무선 통신 기술을 구현할 수 있다. 일부 실시예들에서, 무선 접속(180)은 디바이스(150)와 기지국(100) 사이에 고도로 지향성인 무선 링크를 제공하는 독점적 무선 통신 기술에 따라 구현될 수 있다. 그러나, 일부 실시예들에서, 다른 상업적(예컨대, Wi-Fi, 블루투스 등) 또는 독점적 무선 통신 기술들이 사용될 수 있다.
VR/MR 시스템(10)에서 디바이스(150)와 기지국(100) 사이의 무선 접속(180)에 고려되는 주요 제약들은 대역폭 및 레이턴시를 포함한다. 예를 들어, 일부 실시예들에서, 목표는 고해상도, 넓은 시야(FOV) 가상 디스플레이를, 사용자에게 고품질 VR/MR 뷰를 제공하는 프레임 레이트로 사용자에게 제공하는 것이다. 다른 목표는 비디오 프레임이 디바이스에 의해 캡처되는 시간과 비디오 프레임에 기초하여 렌더링된 VR/MR 프레임이 디바이스에 의해 디스플레이되는 시간 사이의 레이턴시를 최소화하는 것이다.
기지국(100)은 본 명세서에 기술된 바와 같은 비디오 및/또는 이미지들을 렌더링, 필터링, 인코딩, 및 송신하기 위한 다양한 하드웨어 컴포넌트들, 예를 들어 다양한 유형들의 프로세서들, 집적 회로들(IC들), 중앙 처리 유닛들(CPU들), 그래픽 처리 유닛들(GPU들), 이미지 신호 프로세서들(ISP들), 인코더/디코더들(코덱들) 등을 포함할 수 있다. 기지국(100)은 GPU 렌더링(110) 컴포넌트, 무선 인터페이스(130) 컴포넌트, 및 무선 접속(180)을 통해 목표 프레임 레이트를 유지하고 프레임 렌더링, 인코딩, 송신, 및 디스플레이에서의 레이턴시를 최소화하는 것을 도울 수 있는 다양한 방법들을 구현하는 하나 이상의 하드웨어 컴포넌트들을 포함할 수 있는 비디오 인코딩 시스템(120)을 포함할 수 있지만, 이에 제한되지 않는다. 비디오 인코딩 시스템(120)은 사전-필터링(122) 컴포넌트(예컨대, N-채널 필터 뱅크), 웨이브렛 변환(124) 컴포넌트, 및 인코더(126) 컴포넌트를 포함할 수 있지만, 이에 제한되지 않는다.
GPU 렌더링(110)은 센서들(160)로부터 획득된 다양한 정보에 적어도 부분적으로 기초하여, 디바이스(150)에 의한 디스플레이를 위한, 가상 콘텐츠를 포함하는 프레임들을 렌더링할 수 있는 하나 이상의 하드웨어 컴포넌트들을 포함할 수 있다.
일부 실시예들에서, 비디오 인코딩 시스템(120)은 렌더링된 프레임들 내의 픽셀 데이터를 웨이브렛 변환(124)을 수행하기 전에 사전-필터링(122)하는 하나 이상의 하드웨어 컴포넌트들을 포함할 수 있다. 예를 들어, 사전-필터링(122)은 기지국(100) 상에서 렌더링된 프레임들의 해상도를 웨이브렛 변환(124), 인코딩(126) 및 무선 접속(180)을 통한 디바이스(150)로의 송신을 수행하기 전에 감소시킬 수 있으며, 이는 압축을 개선하는 데 도움을 줄 수 있고, 무선 접속(180)에 대한 레이턴시 및 대역폭 사용을 감소시킬 수 있다.
일부 실시예들에서, 사전-필터링(122)은 웨이브렛 변환(124) 이전에 기지국(100) 상에서 프레임들에 대해 렌즈 워핑을 수행할 수 있다. 렌즈 워핑은 이미지들이 통과하여 보여지는 디바이스 상의 렌즈들에 의해 야기된 이미지들의 왜곡을 보정하기 위해 수행되며, 이에 따라 이미지들의 품질이 향상된다. 일부 실시예들에서, 디바이스(150)는 예를 들어 교정 프로세스에 의해 생성된 렌즈들에 대한 렌즈 워핑 데이터를 저장할 수 있고, 무선 접속(180)을 통해 렌즈 워핑 데이터를 기지국(100)에 제공할 수 있다. 이어서, 비디오 인코딩 시스템(120)의 사전-필터링(122) 컴포넌트는 그 디바이스(150)에 대한 렌즈 워핑 데이터에 기초하여 프레임들에 대해 렌즈 워핑을 수행할 수 있다. 종래의 VR/MR 시스템들에서, 렌즈 워핑은 디코딩 이후 그리고 디스플레이 이전에 디바이스(150) 상에서 수행된다. 렌즈 워핑을 사전-필터링(122) 스테이지에서 기지국(100) 상에서 수행하는 것은 웨이브렛 변환(124) 및 인코딩(126)을 수행하기 전에 프레임들의 해상도를 감소시킬 수 있고, 이는 압축을 개선하는 데 도움을 줄 수 있고, 레이턴시 및 무선 접속(180) 상의 대역폭 사용을 감소시킬 수 있다. 또한, 렌즈 워핑을 디코딩 이후에 디바이스(150) 상에서 수행하지 않고 사전-필터링(122) 스테이지에서 기지국(100) 상에서 수행함으로써, 이미지 데이터의 필터링은, 인코딩(126) 이전에 해상도를 낮추기 위해 기지국(100) 상에서 필터링을 수행한 다음 디바이스(150) 상에서 렌즈 워핑 필터링을 수행하는 것과는 대조적으로 한 번만 수행될 필요가 있을 수 있다.
일부 실시예들에서, 사전-필터링(122)은 또한 주변 영역들에서의 해상도를 감소시키는 한편 포비티드 영역들에서 더 높은 해상도를 유지하기 위한 하나 이상의 필터들을 적용할 수 있다. 이러한 방법에서, 디바이스(150)로부터 획득된 시선 추적 정보는 사용자가 현재 보고 있는 방향을 식별하는 데 사용될 수 있다. 인간의 눈은 주변 영역에서보다 중심와 영역에서 더 높은 해상도를 인지할 수 있다. 따라서, 중심와에 대응하는 프레임의 영역(포비티드 영역으로 지칭됨)은 결정된 시선 방향에 적어도 부분적으로 기초하여 식별될 수 있다. 일부 실시예들에서, 주변 영역(즉, 포비티드 영역 외부의 프레임의 일부분)은 예를 들어 고주파 정보를 필터링하고/하거나 색상 압축을 증가시킴으로써 인간 시각 시스템의 지식에 기초하여 정보를 감소시키기 위해 사전-필터링될 수 있다. 일부 실시예들에서, 주변 영역에 적용되는 필터링 양은 프레임의 주변을 향해 연장하여 증가할 수 있다. 주변 영역의 사전-필터링은 프레임의 개선된 압축을 제공하는 것을 도울 수 있다.
일부 실시예들에서, 비디오 인코딩 시스템(120)의 웨이브렛 변환(124) 컴포넌트는 인코딩 이전에 픽셀 데이터에 대해 웨이브렛 변환을 수행하여 픽셀 데이터를 주파수 대역들로 분해하는 하나 이상의 하드웨어 컴포넌트들(예컨대, N-채널 필터 뱅크)을 포함할 수 있다. 이어서, 주파수 대역들은 인코딩/압축을 위해 블록 기반 인코더(126)에 제공되는 블록들로 조직화된다. 예로서, 도 3a 내지 도 3c에 도시된 바와 같이, 프레임은 128x128 블록들로 분할될 수 있고, 2-레벨 웨이브렛 분해가 각각의 128x128 블록에 적용되어 7개의 주파수 대역들을 나타내는 주파수 데이터의 16개의 32x32 블록들을 생성할 수 있으며, 이들은 이어서 블록-기반 인코더(126)(예컨대, 고효율 비디오 코딩(HEVC) 인코더)로 전송되어 인코딩될 수 있다. 이어서, 인코딩된 주파수 데이터는 하나 이상의 하드웨어 컴포넌트들에 의해 구현되는 무선 인터페이스(130)로 전송되며, 이는 데이터를 패킷화하고 패킷들을 무선 접속(180)을 통해 디바이스(150)로 송신한다.
디바이스(150)는 본 명세서에 기술된 바와 같은 비디오 및/또는 이미지들을 디코딩 및 디스플레이하기 위한 다양한 하드웨어 컴포넌트들, 예를 들어, 다양한 유형들의 프로세서들, 집적 회로들(IC들), 중앙 처리 유닛들(CPU들), 그래픽 처리 유닛들(GPU들), 이미지 신호 프로세서들(ISP들), 인코더/디코더들(코덱들) 등을 포함할 수 있다. 디바이스(150)는 무선 인터페이스(152), 디코더(154) 컴포넌트(예컨대, 고효율 비디오 코딩(HEVC) 디코더), 웨이브렛 합성(156) 컴포넌트, 및 디스플레이(158) 컴포넌트를 포함할 수 있지만, 이에 제한되지 않는다. 디바이스(150) 상에서, 무선 인터페이스(152)는 기지국(100)에 의해 무선 접속(180)을 통해 송신된 패킷들을 수신한다. 인코딩된 데이터는 디패킷화되고 블록-기반 디코더(154)(예컨대, 고효율 비디오 코딩(HEVC) 디코더)를 통과하여 주파수 대역들이 복구된다. 이어서, 복구된 주파수 데이터에 대해 웨이브렛 합성(156)이 수행되어 디스플레이(158)를 위한 픽셀 데이터를 재구성한다.
일부 실시예들에서, 비디오 인코딩 시스템(120)은 슬라이스 기반 렌더링, 인코딩, 및 송신을 수행할 수 있다. 전체 프레임들을 렌더링, 인코딩, 및 송신하는 것은 각각의 프레임이 완료되고, 저장되고, 이어서 VR/MR 시스템(10)의 다음 스테이지로 송신될 필요가 있기 때문에, 레이턴시 및 메모리에 영향을 미칠 수 있다. 슬라이스 기반 렌더링에서, 기지국(100)에서 전체 프레임들을 렌더링 및 인코딩하고 렌더링된 프레임들을 디바이스(150)에 송신하는 것이 아니라, 기지국(100)은 프레임들의 부분들(슬라이스들로 지칭됨)을 렌더링 및 인코딩하고, 인코딩된 슬라이스들을 그들이 준비됨에 따라 디바이스(150)에 송신할 수 있다. 예를 들어, 슬라이스는 128x128 블록들의 행일 수 있다. 슬라이스 기반 렌더링 및 인코딩은 레이턴시를 감소시키는 것을 도울 수 있고, 또한 버퍼링에 필요한 메모리의 양을 감소시킬 수 있으며, 이는 칩(들) 또는 프로세서(들) 상의 메모리 풋프린트뿐만 아니라 전력 요건들을 감소시킨다.
일부 실시예들에서, 비디오 인코딩 시스템(120)은 타일 기반 렌더링, 인코딩, 및 송신을 수행할 수 있다. 타일 기반 렌더링, 인코딩, 및 송신에서, 각각의 슬라이스는 다수의 타일들(예컨대, 4개의 타일들)로 분할될 수 있고, 기지국(100)은 타일들을 렌더링 및 인코딩할 수 있고, 인코딩된 타일들을 그들이 준비됨에 따라 디바이스(150)에 송신할 수 있다.
일부 실시예들에서, 비디오 인코딩 시스템(120)은 각각의 슬라이스로부터의 타일들을 프로세싱하기 위해 단일의 인코더(126)를 사용하여 타일 기반 렌더링, 인코딩, 및 송신을 수행할 수 있다. 그러나, 일부 실시예들에서, 비디오 인코딩 시스템(120)은 각각의 슬라이스로부터 각자의 타일들을 프로세싱하기 위해 다수의 인코더들(126)을 사용하여 타일 기반 인코딩을 수행할 수 있다. 도 2는 적어도 일부 실시예들에 따른, 렌더링된 프레임들로부터의 타일들을 병렬로 프로세싱하는 다수의 인코더들(본 예에서는, 2개의 인코더들(226A, 226B))을 포함하는 비디오 인코딩 시스템(220)을 도시한다.
기지국(200)의 GPU 렌더링(210) 컴포넌트는 디스플레이를 위한 프레임들(또는 프레임들의 슬라이스들)을 렌더링하는 하나 이상의 GPU들 및/또는 다른 컴포넌트들을 포함할 수 있다. 예를 들어, 프레임은 도 3a에 도시된 바와 같이 슬라이스들로 분할될 수 있다. 도 3a에 도시된 바와 같이, 각각의 슬라이스는 다수의 타일들(본 예에서는 4개)로 분할될 수 있고, 각각의 타일은 다수의 블록들을 포함할 수 있다. 도 3b는 4개의 128x128 블록들을 포함하는 예시적인 타일을 도시한다. 그러나, 다른 크기들(예컨대, 64x64, 32x32 등)의 블록들이 일부 실시예들에서 사용될 수 있고, 타일은 더 많거나 더 적은 블록들을 포함할 수 있다.
이어서, 비디오 인코딩 시스템(220)의 사전-필터링(222) 및 웨이브렛 변환(224) 컴포넌트들은 인코딩(226) 이전에 각각의 타일을 프로세싱할 수 있다. 일부 실시예들에서, 비디오 인코딩 시스템(220)은 각각의 타일을 프로세싱하기 위한 별개의 사전-필터링(222) 컴포넌트 및 웨이브렛 변환(224) 컴포넌트를 포함할 수 있다. 이러한 예에서, 사전-필터링(222A) 컴포넌트 및 웨이브렛 변환(224A) 컴포넌트 프로세스 타일 0, 사전-필터링(222B) 컴포넌트 및 웨이브렛 변환(224B) 컴포넌트 프로세스 타일 1, 사전-필터링(222C) 컴포넌트 및 웨이브렛 변환(224C) 컴포넌트 프로세스 타일 2, 및 사전-필터링(222D) 컴포넌트 및 웨이브렛 변환(224D) 컴포넌트 프로세스 타일 3. 사전-필터링(222) 컴포넌트들은 본 명세서에 기술된 바와 같이 타일들의 사전-필터링을 수행하고, 웨이브렛 변환(224) 컴포넌트들은 본 명세서에 기술된 바와 같이 타일들을 주파수 대역들로 분해한다. 그러나, 일부 실시예들에서, 비디오 인코딩 시스템(220)은 타일들을 프로세싱하는 단일의 사전-필터링(222) 컴포넌트 및 단일의 웨이브렛 변환(224) 컴포넌트를 포함할 수 있다. 일부 실시예들에서, 비디오 인코딩 시스템(220)은, 각각이 다수의(예컨대, 2개) 타일들을 프로세싱하는 다수의(예컨대, 2개) 사전-필터링(222) 컴포넌트들 및 다수의(예컨대, 2개) 웨이브렛 변환(224) 컴포넌트들을 포함할 수 있다.
2개의 인코더들(226A, 226B)은 각각의 슬라이스로부터의 2개의 타일들에 대해 동작할 수 있다(예컨대, 인코더(226A)는 타일(0) 및 타일(1)에 대해 동작하고; 인코더(226B)는 타일(2) 및 타일(3)에 대해 동작함). 각각의 인코더(226)는 그의 2개의 타일들 사이에 상이한 주파수 대역들로부터의 블록들(즉, 도 3c에 도시된 16개의 32x32 블록들)의 프로세싱을 다중화하여, 동일한 주파수 대역으로부터의 블록들의 프로세싱 사이에 16개의 시간 단위들을 허용할 수 있다. 2개의 타일들 사이에 블록들의 프로세싱을 다중화함으로써, 동일한 주파수 대역에서의 블록들 사이의 의존성들이 적절히 처리될 수 있다.
각각의 슬라이스가 4개의 타일들로 분할되고 2개의 인코더들이 각각의 슬라이스로부터의 각자의 타일들에 대해 동작하는 실시예들이 기술되지만, 슬라이스들은 일부 실시예들에서 더 많은 타일들(예컨대, 6개 또는 8개의 타일들)로 분할될 수 있고, 더 많은 인코더들(예컨대, 3개, 4개 또는 그보다 많은 인코더들)이 일부 실시예들에서 사용될 수 있다.
도 3c는 적어도 일부 실시예들에 따른, 인코딩 이전에 픽셀 데이터를 저장하는 픽셀 블록의 웨이브렛 변환을 수행하여 주파수 대역 데이터를 생성하는 것을 도시한다. 본 예에서, 2-레벨 웨이브렛 분해는 웨이브렛 변환(324) 컴포넌트에 의해 128x128 픽셀 블록(300)에 적용되어 7개의 주파수 대역들을 나타내는 주파수 데이터의 16개의 32x32 블록들(302)을 생성한다. 이어서, 주파수 블록들(302)은 인코딩을 위해 인코더(326)에 제공된다. 예를 들어, 주파수 블록들(302)은 웨이브렛 변환(324) 컴포넌트에 의해 버퍼에 기록되고, 인코더(326) 컴포넌트에 의해 버퍼로부터 판독될 수 있다.
주파수 블록들(302)의 라벨들에서, 문자 L은 저역 통과 필터를 나타내고, 문자 H는 고역 통과 필터를 나타낸다. 2개의 문자들로 라벨링된 블록들(302)은 1-레벨(2D) 웨이브렛 변환 또는 분해를 나타낸다. 2개의 문자들로 라벨링된 블록들(302)(7개의 주파수 대역들 중에서 3개 즉, LH, HL, 및 HH를 나타냄)에서, 첫 번째 문자는 첫 번째로 수행된 수직 필터(하이 또는 로우 중 어느 하나)를 나타내고, 두 번째 문자는 두 번째로 수행된 수평 필터(하이 또는 로우 중 어느 하나)를 나타낸다. 4개의 문자들로 라벨링된 블록들(302)은 2-레벨 웨이브렛 변환 또는 분해를 나타낸다. 4개의 문자들로 라벨링된 블록들(302)에서, 첫 번째 2개의 문자들(LL)은, 첫 번째 수직 저역 통과 필터에 이어 수평 저역 통과 필터가 있음을 나타내고; 이어서 두 번째 2개의 문자들은 생성된 LL 블록이 4개의 방식들, LL, LH, HL, 및 HH로 필터링되었음을 나타낸다(따라서, 7개의 주파수 대역들 중 4개(LLLL, LLLH, LLHL, 및 LLHH)를 생성함).
도 3c에 도시된 바와 같이 픽셀 데이터를 주파수 대역들로 분해하는 것은 주파수 대역들이 인코더(326)에 의해 별개의 스트림들로서 버퍼링되고 프로세싱될 수 있게 한다. 주파수 대역들을 별개의 스트림들로서 프로세싱하는 것은 인코더(326) 컴포넌트가 독립적인 스트림들의 프로세싱을 다중화할 수 있게 한다. HEVC 인코딩과 같은 블록 기반 인코딩 방법들에서, 블록들(코딩 트리 단위들(CTU들)로 지칭됨)은 다수의 스테이지들에서 블록 프로세싱 파이프라인에서 프로세싱되고; 주어진 클록 사이클에서 2개 이상의 블록들이 파이프라인의 상이한 스테이지들에 있을 수 있고, 블록들은 클록 사이클들에 따라 파이프라인을 통해 이동한다. 주어진 블록의 프로세싱은 하나 이상의 이전에 프로세싱된 이웃 블록들, 예를 들어 주어진 블록 위의 행 내의 하나 이상의 블록들 및/또는 주어진 블록의 좌측의 블록에 대해 의존성들을 가질 수 있다. 주파수 대역 데이터의 스트림들의 프로세싱을 다중화함으로써, 인코더(326)는 주어진 스트림 내의 블록들의 프로세싱에 간격을 두어(space out), 주어진 블록이 의존성들을 갖는 이웃 블록을 프로세싱하기 위한 추가적인 클록 사이클들을 제공한다. 예를 들어, 주어진 블록이 이전에 프로세싱된 이웃 블록에 의존하는 스테이지에 도달할 때, 주어진 블록의 좌측의 블록은 파이프라인 내의 주어진 블록의 여러 스테이지들 앞의 블록일 수 있다. 이는 이전에 프로세싱된 블록들에 대한 의존성들을 인코더(326)가 더 잘 처리할 수 있게 하고, 이웃 블록에 의존하는 스테이지에서 주어진 블록을 프로세싱하기 전에 파이프라인 내의 이웃 블록의 프로세싱의 완료를 기다릴 필요성을 감소시키거나 제거한다.
또한, 도 3c에 도시된 바와 같이, 픽셀 데이터를 주파수 대역들로 분해하는 것은 주파수 대역들이 인코더(326) 및 무선 인터페이스에 의해 우선순위화될 수 있게 한다. 전형적으로, 이미지 및 비디오 송신에서, 하위 주파수들이 더 중요한 한편, 상위 주파수들은 덜 중요하다. 상위 주파수들은 보통 이미지에서의 상세 사항들에 상응하며, 따라서 하위 우선순위로서 간주될 수 있다. 상위 주파수 대역들은 이미지에서 더 작은 퍼센티지의 에너지를 포함한다. 대부분의 에너지는 하위 주파수 대역들에 포함된다. 따라서, 픽셀 데이터를 주파수 대역들로 분해하는 것은 데이터 스트림에 대한 우선순위 순서를 제공하며, 이는 데이터 스트림을 인코딩 및 송신할 때 인코더(326) 및 무선 인터페이스에 의해 레버리지(leverage)될 수 있다. 예를 들어, 일부 실시예들에서, 상이한 압축 기법들이 상이한 주파수 대역들에 사용될 수 있으며, 보다 공격적인 압축은 하위 우선순위 대역들에 적용되고, 보다 보수적인 압축은 상위 우선순위 대역들에 적용될 수 있다. 다른 예로서, 주파수 대역들의 우선순위 순서는 VR/MR 시스템의 점진적 저하를 제공하는 데 도움을 줄 수 있다. 무선 접속의 성능이 모니터링될 수 있고, 디바이스로부터의 피드백이 전체 시스템의 성능을 추적하기 위해 고려될 수 있다. 시스템이 일부 이유로 뒤처지면, 예를 들어 무선 접속이 저하되고 무선 접속의 대역폭 용량이 임계치 미만으로 떨어지면, 인코더(326) 및 무선 인터페이스는 하위 주파수 대역들 중 하나 이상의 인코딩 및 송신을 우선순위화할 수 있고, 하위 우선순위 레벨이 할당된 하나 이상의 주파수 레벨들, 예를 들어 상위 주파수 대역들 중 하나 이상의 인코딩 및/또는 송신을 감소 또는 저하시킬 수 있다.
전술된 바와 같이, 웨이브렛 변환은 이미지를 주파수 대역들로 분해한다. 일부 실시예들에서, 이는 다양한 해상도의 디스플레이들에 동일한 신호를 전송하기 위해 레버리지될 수 있다. 예로서, 2-레벨 웨이브렛 분해가 신호를 7개의 주파수 대역들로 분해하기 위해 적용될 수 있다. 4개의 대역들(LLLL, LLLH, LLHL 및 LLHH)이 디스플레이 패널로 전송되는 경우, 대역들은 하위 시각적 품질에서 원래의 의도된 해상도로 재구성될 수 있다. 대안으로서, 대역들은 더 낮은 디스플레이 해상도를 갖는 디스플레이 패널에 적합할 수 있는 1/4 해상도(각각의 차원에서의 1/2)로 재구성될 수 있다.
도 4는 적어도 일부 실시예들에 따른, 도 1 및 도 2에 도시된 바와 같은 비디오 인코딩 시스템들을 포함하는 VR/MR 시스템들을 위한 동작 방법의 상위 레벨 흐름도이다. 400에 나타낸 바와 같이, 디바이스는 무선 접속을 통해 기지국으로 데이터를 전송한다. 410에 나타낸 바와 같이, 기지국은 디바이스로부터 수신된 데이터에 적어도 부분적으로 기초하여 가상 콘텐츠를 포함하는 프레임들을 렌더링한다. 420에 나타낸 바와 같이, 기지국은 렌더링된 데이터를 압축하고, 압축된 데이터를 무선 접속을 통해 디바이스로 전송한다. 430에 나타낸 바와 같이, 디바이스는 가상 콘텐츠를 압축해제하고 디스플레이하여 사용자가 보기 위한 3D 가상 뷰를 생성한다. 430으로부터 400으로 복귀하는 화살표로 나타낸 바와 같이, 방법은 사용자가 VR/MR 시스템을 사용하는 한 계속된다.
일부 실시예들에서, 기지국에서 전체 프레임들을 렌더링 및 인코딩하고 렌더링된 프레임들을 디바이스에 송신하는 것이 아니라, 기지국은 프레임들의 부분들(슬라이스들로 지칭됨)을 렌더링 및 인코딩하고, 인코딩된 슬라이스들을 그들이 준비됨에 따라 디바이스에 송신할 수 있다. 예를 들어, 슬라이스는 128x128 블록들의 행일 수 있다. 일부 실시예들에서, 비디오 인코딩 시스템은 타일 기반 렌더링, 인코딩, 및 송신을 수행할 수 있다. 타일 기반 렌더링, 인코딩, 및 송신에서, 각각의 슬라이스는 하나 이상의 블록들을 각각 포함하는 다수의 타일들(예컨대, 4개의 블록들을 각각 포함하는 4개의 타일들)로 분할될 수 있고, 기지국은 타일들을 렌더링 및 인코딩할 수 있고, 인코딩된 타일들을 그들이 준비됨에 따라 디바이스에 송신할 수 있다.
도 5는 적어도 일부 실시예들에 따른, 도 1에 도시된 바와 같은 비디오 인코딩 시스템을 위한 동작 방법의 흐름도이다. 예를 들어, 도 5의 방법은 도 4의 420에서 수행될 수 있다. 도 5의 방법은 슬라이스 기반 인코딩 및 송신이 수행되고 있다고 가정한다. 그러나, 일부 실시예들에서, 타일 기반 인코딩 및 송신이 수행될 수 있다.
510에 나타낸 바와 같이, 사전-필터링 컴포넌트는 프레임의 슬라이스 내의 픽셀 블록들에 렌즈 워핑 및/또는 포비에이션(foveation) 필터들을 적용한다. 일부 실시예들에서, 사전-필터링은 웨이브렛 변환 이전에 기지국 상에서 프레임들에 대한 렌즈 워핑을 수행하는 것을 포함할 수 있다. 렌즈 워핑은 이미지들이 통과하여 보여지는 디바이스 상의 렌즈들에 의해 야기된 이미지들의 왜곡을 보정하기 위해 수행되며, 이에 따라 이미지들의 품질이 향상된다. 일부 실시예들에서, 디바이스는 예를 들어 교정 프로세스에 의해 생성된 렌즈들에 대한 렌즈 워핑 데이터를 저장할 수 있고, 무선 접속을 통해 렌즈 워핑 데이터를 기지국에 제공할 수 있다. 이어서, 기지국은 그 디바이스에 대한 렌즈 워핑 데이터에 기초하여 프레임들에 대해 렌즈 워핑을 수행할 수 있다. 렌즈 워핑을 사전-필터링 스테이지에서 기지국 상에서 수행하는 것은 웨이브렛 변환 및 인코딩을 수행하기 전에 프레임들의 해상도를 감소시킬 수 있고, 이는 압축을 개선하는 데 도움을 줄 수 있고, 레이턴시 및 무선 링크 상의 대역폭 사용을 감소시킬 수 있다. 또한, 렌즈 워핑을 디코딩 이후에 디바이스 상에서 수행하지 않고 사전-필터링 스테이지에서 기지국 상에서 수행함으로써, 이미지 데이터의 필터링은, 인코딩 이전에 해상도를 낮추기 위해 기지국 상에서 필터링을 수행한 다음 디바이스 상에서 렌즈 워핑 필터링을 수행하는 것과는 대조적으로 한 번만 수행될 필요가 있을 수 있다.
일부 실시예들에서, 510에서의 사전-필터링은 또한 주변 영역들에서의 해상도를 감소시키는 한편 포비티드 영역들에서 더 높은 해상도를 유지하기 위해 필터링하는 것을 포함할 수 있다. 일부 실시예들에서, 디바이스로부터 획득된 시선 추적 정보는 사용자가 현재 보고 있는 방향을 식별하는 데 사용될 수 있다. 중심와에 대응하는 프레임의 영역(포비티드 영역으로 지칭됨)은 결정된 시선 방향에 적어도 부분적으로 기초하여 식별될 수 있다. 주변 영역(즉, 포비티드 영역 외부의 프레임의 일부분)은 예를 들어 고주파 정보를 필터링하고/하거나 색상 압축을 증가시킴으로써 인간 시각 시스템의 지식에 기초하여 정보를 감소시키기 위해 사전-필터링될 수 있다. 주변 영역의 사전-필터링은 프레임의 개선된 압축을 제공하는 것을 도울 수 있다.
520에 나타낸 바와 같이, 웨이브렛 변환 컴포넌트는 픽셀 블록들에 웨이브렛 변환 기법을 적용하여 픽셀 데이터를 N개(예컨대, 7개)의 주파수 대역들로 분해한다. 이어서, 주파수 대역들은 인코딩/압축을 위해 블록 기반 인코더에 제공되는 블록들로 조직화된다. 예로서, 예를 들어 도 3c에 도시된 바와 같이, 프레임은 128x128 블록들로 분할될 수 있고, 2-레벨 웨이브렛 분해가 각각의 128x128 블록에 적용되어 7개의 주파수 대역들을 나타내는 주파수 데이터의 16개의 32x32 블록들을 생성할 수 있다.
530에 나타난 바와 같이, 인코더는 블록들 내의 주파수 대역들에 인코딩 기법을 적용하여 데이터를 압축한다. 예를 들어, 인코더는 고효율 비디오 코딩(HEVC) 인코더일 수 있다. 그러나, 다른 인코딩 기법들이 일부 실시예들에서 사용될 수 있다. 요소(520)에 나타낸 바와 같이 픽셀 데이터를 주파수 대역들로 분해하는 것은 주파수 대역들이 인코더에 의해 별개의 스트림들로서 버퍼링되고 프로세싱되게 할 수 있다. 주파수 대역들을 별개의 스트림들로서 프로세싱하는 것은 인코더 컴포넌트가 독립적인 스트림들의 프로세싱을 다중화할 수 있게 한다. HEVC 인코딩과 같은 블록 기반 인코딩 방법들에서, 블록들(코딩 트리 단위들(CTU들)로 지칭됨)은 다수의 스테이지들에서 파이프라인에서 프로세싱되고; 주어진 클록 사이클에서 2개 이상의 블록들이 파이프라인의 상이한 스테이지들에 있을 수 있고, 블록들은 클록 사이클들에 따라 파이프라인을 통해 이동한다. 주어진 블록의 프로세싱은 하나 이상의 이전에 프로세싱된 이웃 블록들, 예를 들어 주어진 블록 위의 행 내의 하나 이상의 블록들 및/또는 주어진 블록의 좌측의 블록에 대해 의존성들을 가질 수 있다. 스트림들의 프로세싱을 다중화함으로써, 인코더는 주어진 스트림 내의 블록들의 프로세싱에 간격을 두어, 주어진 블록이 의존성들을 갖는 이웃 블록을 프로세싱하기 위한 추가적인 클록 사이클들을 제공한다. 예를 들어, 주어진 블록이 이전에 프로세싱된 이웃 블록에 의존하는 스테이지에 도달할 때, 주어진 블록의 좌측의 블록은 파이프라인 내의 주어진 블록의 여러 스테이지들 앞의 블록일 수 있다. 이는 이전에 프로세싱된 블록들에 대한 의존성들을 인코더가 더 잘 처리할 수 있게 하고, 이웃 블록에 의존하는 스테이지에서 주어진 블록을 프로세싱하기 전에 파이프라인 내의 이웃 블록의 프로세싱의 완료를 기다릴 필요성을 감소시키거나 제거한다.
540에 나타낸 바와 같이, 무선 인터페이스는 압축된 데이터를 패킷화하고 무선 접속을 통해 패킷들을 디바이스에 전송한다.
요소(520)에 나타낸 바와 같이 픽셀 데이터를 주파수 대역들로 분해하는 것은 주파수 대역들이 요소(530)에서 인코더, 그리고 요소(540)에서 무선 인터페이스에 의해 우선순위화될 수 있게 한다. 전형적으로, 이미지 및 비디오 송신에서, 하위 주파수들이 더 중요한 한편, 상위 주파수들은 덜 중요하다. 상위 주파수들은 보통 이미지에서의 상세 사항들에 상응하며, 따라서 하위 우선순위로서 간주될 수 있다. 상위 주파수 대역들은 이미지에서 더 작은 퍼센티지의 에너지를 포함한다. 대부분의 에너지는 하위 주파수 대역들에 포함된다. 따라서, 픽셀 데이터를 주파수 대역들로 분해하는 것은 데이터 스트림에 대한 우선순위 순서를 제공하며, 이는 데이터 스트림을 인코딩 및 송신할 때 인코더 및 무선 인터페이스에 의해 레버리지될 수 있다. 예를 들어, 일부 실시예들에서, 상이한 압축 기법들이 상이한 주파수 대역들에 사용될 수 있으며, 보다 공격적인 압축은 하위 우선순위 대역들에 적용되고, 보다 보수적인 압축은 상위 우선순위 대역들에 적용될 수 있다. 다른 예로서, 주파수 대역들의 우선순위 순서는 VR/MR 시스템의 점진적 저하를 제공하는 데 도움을 줄 수 있다. 무선 접속의 성능이 모니터링될 수 있고, 디바이스로부터의 피드백이 전체 시스템의 성능을 추적하기 위해 고려될 수 있다. 시스템이 일부 이유로 뒤처지면, 예를 들어 무선 접속이 저하되고 무선 접속의 대역폭 용량이 임계치 미만으로 떨어지면, 인코더 및 무선 인터페이스는 하위 주파수 대역들 중 하나 이상의 인코딩 및 송신을 우선순위화할 수 있고, 하위 우선순위 레벨이 할당된 하나 이상의 주파수 레벨들, 예를 들어 상위 주파수 대역들 중 하나 이상의 인코딩 및/또는 송신을 감소 또는 저하시킬 수 있다.
550에서, 인코딩되고 송신될 더 많은 슬라이스들이 있다면, 방법은 다음 슬라이스를 프로세싱하기 위해 요소(510)로 복귀한다. 그렇지 않으면, 560에서, 인코딩되고 송신될 더 많은 프레임들이 있다면, 방법은 다음 프레임을 프로세싱하기 시작하기 위해 요소(510)로 복귀한다.
도 6은 적어도 일부 실시예들에 따른, 도 2에 도시된 바와 같은 비디오 인코딩 시스템을 위한 동작 방법의 흐름도이다. 예를 들어, 도 6의 방법은 도 4의 420에서 수행될 수 있다. 도 6의 방법에서, 비디오 인코딩 시스템은 각각의 슬라이스로부터 각자의 타일들을 프로세싱하기 위해 다수의 인코더들을 사용하여 타일 기반 인코딩을 수행할 수 있다.
600에 나타낸 바와 같이, 렌더링 엔진은 다수의 타일들(본 예에서는 4개의 타일들)을 포함하는 슬라이스를 렌더링하고, 각각의 타일들은 다수의 픽셀 블록들(본 예에서, 4개의 128x128 픽셀 블록들)을 포함한다.
610에 나타낸 바와 같이, 사전-필터링 컴포넌트는 슬라이스에 렌즈 워핑 및/또는 포비에이션 필터들을 적용한다. 일부 실시예들에서, 사전-필터링은 웨이브렛 변환 이전에 기지국 상에서 프레임들에 대한 렌즈 워핑을 수행하는 것을 포함할 수 있다. 렌즈 워핑은 이미지들이 통과하여 보여지는 디바이스 상의 렌즈들에 의해 야기된 이미지들의 왜곡을 보정하기 위해 수행되며, 이에 따라 이미지들의 품질이 향상된다. 일부 실시예들에서, 디바이스는 예를 들어 교정 프로세스에 의해 생성된 렌즈들에 대한 렌즈 워핑 데이터를 저장할 수 있고, 무선 접속을 통해 렌즈 워핑 데이터를 기지국에 제공할 수 있다. 이어서, 기지국은 그 디바이스에 대한 렌즈 워핑 데이터에 기초하여 프레임들에 대해 렌즈 워핑을 수행할 수 있다. 렌즈 워핑을 사전-필터링 스테이지에서 기지국 상에서 수행하는 것은 웨이브렛 변환 및 인코딩을 수행하기 전에 프레임들의 해상도를 감소시킬 수 있고, 이는 압축을 개선하는 데 도움을 줄 수 있고, 레이턴시 및 무선 링크 상의 대역폭 사용을 감소시킬 수 있다. 또한, 렌즈 워핑을 디코딩 이후에 디바이스 상에서 수행하지 않고 사전-필터링 스테이지에서 기지국 상에서 수행함으로써, 이미지 데이터의 필터링은, 인코딩 이전에 해상도를 낮추기 위해 기지국 상에서 필터링을 수행한 다음 디바이스 상에서 렌즈 워핑 필터링을 수행하는 것과는 대조적으로 한 번만 수행될 필요가 있을 수 있다.
일부 실시예들에서, 610에서의 사전-필터링은 또한 주변 영역들에서 해상도를 감소시키는 한편 포비티드 영역들에서 더 높은 해상도를 유지하기 위해 필터링하는 것을 포함할 수 있다. 일부 실시예들에서, 디바이스에 의해 획득된 시선 추적 정보는 사용자가 현재 보고 있는 방향을 식별하는 데 사용될 수 있다. 중심와에 대응하는 프레임의 영역(포비티드 영역으로 지칭됨)은 결정된 시선 방향에 적어도 부분적으로 기초하여 식별될 수 있다. 주변 영역(즉, 포비티드 영역 외부의 프레임의 일부분)은 예를 들어 고주파 정보를 필터링하고/하거나 색상 압축을 증가시킴으로써 인간 시각 시스템의 지식에 기초하여 정보를 감소시키기 위해 사전-필터링될 수 있다. 주변 영역의 사전-필터링은 프레임의 개선된 압축을 제공하는 것을 도울 수 있다.
일부 실시예들에서, 비디오 인코딩 시스템은 타일들을 프로세싱하는 단일의 사전-필터링 컴포넌트를 포함할 수 있다. 일부 실시예들에서, 비디오 인코딩 시스템은 각각의 타일을 프로세싱하기 위한 별개의 사전-필터링 컴포넌트를 포함할 수 있다. 일부 실시예들에서, 비디오 인코딩 시스템은 다수의(예컨대, 2개) 타일들을 각각 프로세싱하는 다수의(예컨대, 2개) 사전-필터링 컴포넌트들을 포함할 수 있다.
620에 나타낸 바와 같이, 웨이브렛 변환 컴포넌트는 슬라이스 내의 픽셀 블록들에 웨이브렛 변환 기법을 적용하여 픽셀 데이터를 N개(예컨대, 7개)의 주파수 대역들로 분해한다. 이어서, 주파수 대역들은 인코딩/압축을 위해 블록 기반 인코더에 제공될 수 있는 블록들(예컨대, CTU들)로 조직화된다. 예로서, 예를 들어 도 3c에 도시된 바와 같이, 프레임은 128x128 블록들로 분할될 수 있고, 2-레벨 웨이브렛 분해가 각각의 128x128 블록에 적용되어 7개의 주파수 대역들을 나타내는 주파수 데이터의 16개의 32x32 블록들을 생성할 수 있다.
일부 실시예들에서, 비디오 인코딩 시스템은 타일들을 프로세싱하는 단일의 웨이브렛 변환 컴포넌트를 포함할 수 있다. 일부 실시예들에서, 비디오 인코딩 시스템은 각각의 타일을 프로세싱하기 위한 별개의 웨이브렛 변환 컴포넌트를 포함할 수 있다. 일부 실시예들에서, 비디오 인코딩 시스템은 다수의(예컨대, 2개) 타일들을 각각 프로세싱하는 다수의(예컨대, 2개) 웨이브렛 변환 컴포넌트들을 포함할 수 있다.
도 6의 방법에서, 예시적인 비디오 인코딩 시스템은 요소(620)에서 생성되는 슬라이스들 중 상이한 것들로부터의 주파수 데이터의 블록들을 병렬로 인코딩하도록 구성된 2개의 인코더들을 포함한다. 예를 들어, 제1 인코더는 슬라이스들(0, 1)로부터의 블록들을 인코딩하도록 구성될 수 있고, 제2 인코더는 슬라이스들(2, 3)로부터의 블록들을 인코딩하도록 구성될 수 있다. 630A에 나타낸 바와 같이, 제1 인코더는 타일들(0, 1)의 블록들 내의 주파수 대역들에 인코딩 기법을 적용하여, 2개의 상이한 타일들 사이에 상이한 주파수 대역들로부터의 블록들의 프로세싱을 다중화한다. 630B에 나타낸 바와 같이, 제2 인코더는 타일들(2, 3)의 블록들 내의 주파수 대역들에 인코딩 기법을 적용하여, 2개의 상이한 타일들 사이에 상이한 주파수 대역들로부터의 블록들의 프로세싱을 다중화한다.
예를 들어, 인코더들은 고효율 비디오 코딩(HEVC) 인코더들일 수 있다. 그러나, 다른 인코딩 기법들이 일부 실시예들에서 사용될 수 있다. 요소(620)에 나타낸 바와 같이 픽셀 데이터를 주파수 대역들로 분해하는 것은 주파수 대역들이 요소들(630A, 630B)에서 인코더들에 의해 별개의 스트림들로서 버퍼링되고 프로세싱될 수 있게 한다. 주파수 대역들을 별개의 스트림들로서 프로세싱하는 것은 인코더들이 독립적인 스트림들의 프로세싱을 다중화할 수 있게 한다. HEVC 인코딩과 같은 블록 기반 인코딩 방법들에서, 블록들(코딩 트리 단위들(CTU들)로 지칭됨)은 다수의 스테이지들에서 파이프라인에서 프로세싱되고; 주어진 클록 사이클에서 2개 이상의 블록들이 파이프라인의 상이한 스테이지들에 있을 수 있고, 블록들은 클록 사이클들에 따라 파이프라인을 통해 이동한다. 주어진 블록의 프로세싱은 하나 이상의 이전에 프로세싱된 이웃 블록들, 예를 들어 주어진 블록 위의 행 내의 하나 이상의 블록들 및/또는 주어진 블록의 좌측의 블록에 대해 의존성들을 가질 수 있다. 스트림들의 프로세싱을 다중화함으로써, 인코더는 주어진 스트림 내의 블록들의 프로세싱에 간격을 두어, 주어진 블록이 의존성들을 갖는 이웃 블록을 프로세싱하기 위한 추가적인 클록 사이클들을 제공한다. 예를 들어, 주어진 블록이 이전에 프로세싱된 이웃 블록에 의존하는 스테이지에 도달할 때, 주어진 블록의 좌측의 블록은 파이프라인 내의 주어진 블록의 여러 스테이지들 앞의 블록일 수 있다. 이는 이전에 프로세싱된 블록들에 대한 의존성들을 인코더가 더 잘 처리할 수 있게 하고, 이웃 블록에 의존하는 스테이지에서 주어진 블록을 프로세싱하기 전에 파이프라인 내의 이웃 블록의 프로세싱의 완료를 기다릴 필요성을 감소시키거나 제거한다.
640에 나타낸 바와 같이, 요소(530)에서 무선 인터페이스는 인코더들에 의해 생성된 압축 데이터를 패킷화하고, 무선 접속을 통해 패킷들을 디바이스로 전송한다. 650으로부터 600으로 복귀하는 화살표로 나타낸 바와 같이, 방법은 사용자가 VR/MR 시스템을 사용하는 한 계속된다.
요소(620)에 나타낸 바와 같이 픽셀 데이터를 주파수 대역들로 분해하는 것은 주파수 대역들이 요소들(630A, 630B)에서 인코더들, 그리고 요소(640)에서 무선 인터페이스에 의해 우선순위화될 수 있게 한다. 전형적으로, 이미지 및 비디오 송신에서, 하위 주파수들이 더 중요한 한편, 상위 주파수들은 덜 중요하다. 상위 주파수들은 보통 이미지에서의 상세 사항들에 상응하며, 따라서 하위 우선순위로서 간주될 수 있다. 상위 주파수 대역들은 이미지에서 더 작은 퍼센티지의 에너지를 포함한다. 대부분의 에너지는 하위 주파수 대역들에 포함된다. 따라서, 픽셀 데이터를 주파수 대역들로 분해하는 것은 데이터 스트림에 대한 우선순위 순서를 제공하며, 이는 데이터 스트림을 인코딩 및 송신할 때 인코더 및 무선 인터페이스에 의해 레버리지될 수 있다. 예를 들어, 일부 실시예들에서, 상이한 압축 기법들이 상이한 주파수 대역들에 사용될 수 있으며, 보다 공격적인 압축은 하위 우선순위 대역들에 적용되고, 보다 보수적인 압축은 상위 우선순위 대역들에 적용될 수 있다. 다른 예로서, 주파수 대역들의 우선순위 순서는 VR/MR 시스템의 점진적 저하를 제공하는 데 도움을 줄 수 있다. 무선 접속의 성능이 모니터링될 수 있고, 디바이스로부터의 피드백이 전체 시스템의 성능을 추적하기 위해 고려될 수 있다. 시스템이 일부 이유로 뒤처지면, 예를 들어 무선 접속이 저하되고 무선 접속의 대역폭 용량이 임계치 미만으로 떨어지면, 인코더 및 무선 인터페이스는 하위 주파수 대역들 중 하나 이상의 인코딩 및 송신을 우선순위화할 수 있고, 하위 우선순위 레벨이 할당된 하나 이상의 주파수 레벨들, 예를 들어 상위 주파수 대역들 중 하나 이상의 인코딩 및/또는 송신을 감소 또는 저하시킬 수 있다.
각각의 슬라이스가 4개의 타일들로 분할되고 2개의 인코더들이 각각의 슬라이스로부터의 각자의 타일들에 대해 동작하는 실시예들이 기술되지만, 슬라이스들은 일부 실시예들에서 더 많은 타일들(예컨대, 6개 또는 8개의 타일들)로 분할될 수 있고, 더 많은 인코더들(예컨대, 3개 또는 4개의 인코더들)이 일부 실시예들에서 사용될 수 있다.
예시적인 VR/MR 시스템
도 7은 적어도 일부 실시예들에 따른, 비디오 인코딩 시스템을 구현할 수 있는 예시적인 VR/MR 시스템(2000)을 도시한다. VR/MR 시스템(2000)은 적어도 하나의 디바이스(2150)(예컨대, 노트북 또는 랩톱 컴퓨터, 패드 또는 태블릿 디바이스, 스마트폰, 핸드헬드 컴퓨팅 디바이스 또는 사용자가 착용할 수 있는 헤드셋, 헬멧, 고글, 또는 안경과 같은 HMD) 및 컴퓨팅 디바이스(2100)(본 명세서에서 기지국으로 지칭됨)를 포함할 수 있다. 기지국(2100)은 가상 콘텐츠를 포함하는 VR 또는 MR 프레임들을 렌더링하고, 프레임들을 인코딩하고, 인코딩된 프레임들을 디바이스(2150)에 의한 디코딩 및 디스플레이를 위해 무선 접속(2180)을 통해 디바이스(2150)로 송신한다.
기지국(2100) 및 디바이스(2150)는 기지국(2100)과 디바이스(2150)가 무선 접속(2180)을 통해 데이터를 통신 및 교환할 수 있게 하는 무선 통신 기술을 각각 포함할 수 있다. 일부 실시예들에서, 무선 접속(2180)은 디바이스(2150)와 기지국(2100) 사이에 고도로 지향성인 무선 링크를 제공하는 독점적 무선 통신 기술에 따라 구현될 수 있다. 그러나, 일부 실시예들에서, 다른 상업적(예컨대, Wi-Fi, 블루투스 등) 또는 독점적 무선 통신 기술들이 사용될 수 있다.
일부 실시예들에서, 디바이스(2150)는 사용자의 환경에 대한 정보(예컨대, 비디오, 깊이 정보, 조명 정보 등), 및/또는 사용자에 대한 정보(예컨대, 사용자의 표정들, 눈 움직임, 시선 방향, 손 제스처들 등)를 수집하는 센서들을 포함할 수 있다. 디바이스(2150)는 센서들에 의해 수집된 정보의 적어도 일부를 무선 접속(2180)을 통해 기지국(2100)으로 송신할 수 있다. 기지국(2100)은, 센서들로부터 획득된 다양한 정보에 적어도 부분적으로 기초하여, 디바이스(2150)에 의한 디스플레이를 위한, 가상 콘텐츠를 포함하는 프레임들을 렌더링하고, 프레임들을 인코딩하고, 인코딩된 프레임들을 무선 접속(2180)을 통해 디코딩 및 사용자로의 디스플레이를 위해 디바이스(2150)에 송신할 수 있다. 프레임들을 인코딩하고 송신하기 위해, 기지국(2100)은 도 1 내지 도 6에 도시된 바와 같은 비디오 인코딩 시스템을 구현할 수 있다.
도 8은 일부 실시예들에 따른, 도 7에 도시된 예시적인 VR/MR 시스템의 기능적인 컴포넌트들 및 VR/MR 시스템에서의 프로세싱을 도시한 블록도이다. 디바이스(2150)는 노트북 또는 랩톱 컴퓨터, 패드 또는 태블릿 디바이스, 스마트폰, 핸드헬드 컴퓨팅 디바이스 또는 사용자가 착용할 수 있는 헤드셋, 헬멧, 고글, 또는 안경과 같은 HMD일 수 있지만, 이에 제한되지 않는다. 디바이스(2150)는 다양한 유형들의 가상 또는 증강 현실 디스플레이 기술들 중 임의의 것을 구현할 수 있는 디스플레이(2156) 컴포넌트 또는 서브시스템을 포함할 수 있다. 예를 들어, HMD 디바이스(2150)는 사용자의 눈 앞의 스크린 상에 피험자에 의해 관찰되는 좌측 및 우측 이미지들을 디스플레이하는 근안 시스템, 예컨대 DLP(digital light processing), LCD(liquid crystal display) 및 LCoS(liquid crystal on silicon) 기술 VR 시스템들일 수 있다. 다른 예로서, HMD 디바이스(2150)는 피험자의 눈에, 픽셀 단위로, 좌측 및 우측 이미지들을 스캐닝하는 직접 망막 프로젝터 시스템일 수 있다. 이미지들을 스캐닝하기 위해, 좌측 및 우측 프로젝터들은 사용자의 눈 앞에 위치된 좌측 및 우측 반사 컴포넌트들(예컨대, 타원형 미러들)로 지향되는 빔들을 생성하고; 반사 컴포넌트들은 빔들을 사용자의 눈으로 반사한다. 3차원(3D) 효과를 생성하기 위해, 3D 가상 뷰에서 상이한 깊이 또는 거리에 있는 가상 콘텐츠는 거리의 삼각측량의 함수로서 2개의 이미지들에서 좌측 또는 우측으로 시프트되는데, 이때 더 가까운 객체들은 더 먼 물체보다 더 많이 시프트된다.
디바이스(2150)는 또한 본 명세서에 기술된 바와 같이 VR/MR 시스템(2000)의 디바이스 측 기능을 구현하도록 구성된 제어기(2154)를 포함할 수 있다. 일부 실시예들에서, HMD(2150)는 또한 제어기(2154)에 의해 실행가능한 VR/MR 시스템(2000)의 디바이스 컴포넌트의 소프트웨어(코드(2172))뿐만 아니라, 제어기(2154) 상에서 실행 중일 때 소프트웨어에 의해 사용될 수 있는 데이터(2174)를 저장하도록 구성된 메모리(2170)를 포함할 수 있다. 다양한 실시예들에서, 제어기(2154)는 하나의 프로세서를 포함하는 단일프로세서 시스템, 또는 여러 개(예컨대, 2개, 4개, 8개, 또는 다른 적합한 개수)의 프로세서들을 포함하는 멀티프로세서 시스템일 수 있다. 제어기(2154)는 임의의 적합한 명령어 세트 아키텍처를 구현하도록 구성된 중앙 프로세싱 유닛(CPU)들을 포함할 수 있고, 그 명령어 세트 아키텍처 내에 정의된 명령어들을 실행하도록 구성될 수 있다. 예를 들어, 다양한 실시예들에서, 제어기(2154)는 x86, PowerPC, SPARC, RISC 또는 MIPS ISA들, 또는 임의의 다른 적합한 ISA와 같은 다양한 명령어 세트 아키텍처(ISA)들 중 임의의 것을 구현하는 범용 또는 임베디드 프로세서들을 포함할 수 있다. 멀티프로세서 시스템들에서, 프로세서들 각각은 일반적으로 동일한 ISA를 구현할 수 있지만 반드시 그러한 것은 아니다. 제어기(2154)는 스칼라, 수퍼스칼라, 파이프라인형, 수퍼파이프라인형, 비순차형, 순차형, 추측형, 비추측형 등 또는 이들의 조합을 포함하는 임의의 마이크로아키텍처를 채택할 수 있다. 제어기(2154)는 마이크로코딩 기법들을 구현하기 위한 회로부를 포함할 수 있다. 제어기(2154)는 하나 이상의 프로세싱 코어들을 포함할 수 있고, 이는 각각 명령어들을 실행하도록 구성된다. 제어기(2154)는 하나 이상의 레벨들의 캐시들을 포함할 수 있고, 이는 임의의 크기 및 임의의 구성(세트 연관, 직접 맵핑 등)을 채택할 수 있다. 일부 실시예들에서, 제어기(2154)는 임의의 적합한 그래픽 프로세싱 회로부를 포함할 수 있는 적어도 하나의 그래픽 프로세싱 유닛(GPU)을 포함할 수 있다. 일반적으로, GPU는 디스플레이될 객체들을 프레임 버퍼(예컨대, 전체 프레임에 대한 픽셀 데이터를 포함하는 것) 내에 렌더링하도록 구성될 수 있다. GPU는 그래픽 동작의 일부 또는 전부를 수행하기 위한 그래픽 소프트웨어 또는 소정 그래픽 동작들의 하드웨어 가속을 실행할 수 있는 하나 이상의 그래픽 프로세서들을 포함할 수 있다. 일부 실시예들에서, 제어기(2154)는 비디오 및/또는 이미지들을 프로세싱 및 렌더링하기 위한 하나 이상의 다른 컴포넌트들, 예를 들어 이미지 신호 프로세서들(ISP들), 인코더/디코더들(코덱들) 등을 포함할 수 있다. 일부 실시예들에서, 제어기(2154)는 적어도 하나의 시스템 온 칩(SOC)을 포함할 수 있다.
메모리(2170)는, 동적 랜덤 액세스 메모리(DRAM), 동기식 DRAM(SDRAM), 더블 데이터 레이트(DDR, DDR2, DDR3 등) SDRAM(mDDR3 등과 같은 모바일 버전들의 SDRAM들, 또는 LPDDR2 등과 같은 저전력 버전들의 SDRAM들을 포함), RAMBUS DRAM(RDRAM), 정적 RAM(SRAM) 등과 같은 임의의 유형의 메모리를 포함할 수 있다. 일부 실시예들에서, 하나 이상의 메모리 디바이스들은 단일의 인라인 메모리 모듈(SIMM)들, 듀얼 인라인 메모리 모듈(DIMM)들 등과 같은 메모리 모듈들을 형성하기 위해 회로 보드 상에 결합될 수 있다. 대안적으로, 디바이스들은 칩-온-칩 구성, 패키지-온-패키지 구성 또는 멀티-칩 모듈 구성으로 시스템을 구현하는 집적 회로로 실장될 수 있다.
일부 실시예들에서, 센서들(2160)은 사용자의 눈의 위치 및 움직임을 추적하기 위해 사용될 수 있는 하나 이상의 시선 추적 센서들(예컨대, IR 조명원을 갖는 IR 카메라들)을 포함할 수 있지만 이에 제한되지는 않는다. 일부 실시예들에서, 2개의 시선 추적 센서들이 있을 수 있으며, 각각의 시선 추적 센서는 각자의 눈을 추적할 수 있다. 일부 실시예들에서, 시선 추적 센서들에 의해 수집된 정보는, 사용자의 눈이 보고 있는 방향 및 각도에 기초하여, 기지국(2100)에 의해 이미지들의 렌더링을 조정하고/하거나, 디바이스(2150)의 프로젝션 시스템에 의해 이미지들의 투사를 조정하기 위해 사용될 수 있다. 예를 들어, 일부 실시예들에서, 사용자의 눈이 현재 보고 있는 위치 주위의 영역 내의 이미지들의 콘텐츠는 사용자가 보고 있지 않는 영역들 내의 콘텐츠보다 더 상세히 그리고 더 높은 해상도로 렌더링될 수 있으며, 이는 이미지 데이터를 위해 이용가능한 프로세싱 시간이 눈의 주변 영역들에 의해 관찰되는 콘텐츠에 대해서보다는 눈의 중심와 영역들에 의해 관찰되는 콘텐츠에 대해 쓰여질 수 있게 한다. 유사하게, 사용자가 보고 있지 않는 영역들 내의 이미지들의 콘텐츠는 사용자가 현재 보고 있는 지점 주위의 영역의 콘텐츠보다 더 많이 압축될 수 있다. 일부 실시예들에서, 센서들이 사용자의 눈 중 각자의 눈의 뷰들을 갖도록 하는 위치들에서 디바이스(2150)의 내측 표면 상에 위치된 2개의 시선 추적 센서들이 있을 수 있다. 그러나, 다양한 실시예들에서, 더 많거나 더 적은 시선 추적 센서들이 사용될 수 있고, 시선 추적 센서들은 다른 위치들에 위치될 수 있다. 예시적인 비제한적인 실시예에서, 각각의 시선 추적 센서는 IR 광원 및 IR 카메라, 예를 들어 120 FPS 이상의 프레임 레이트, 70 도의 HFOV, 및 10 밀리미터(mm) 내지 80 mm의 작동 거리를 갖는 400x400 픽셀 카운트 카메라를 포함할 수 있다.
일부 실시예들에서, 디바이스(2150)는 디바이스(2150)의 위치, 배향 및/또는 모션을 검출하고, 검출된 위치, 배향 및/또는 모션 데이터를 HMD(2150)의 제어기(2154) 및/또는 기지국(2100)에 제공하도록 구성된 적어도 하나의 관성 측정 유닛(IMU)(2162)을 포함할 수 있다.
디바이스(2150)는 또한 무선 접속(2180)을 통해 외부 기지국(2100)과 통신하여 기지국(2100)으로 센서 입력들을 전송하고 기지국(2100)으로부터 압축된 렌더링된 프레임들, 슬라이스들, 또는 타일들을 수신하도록 구성된 무선 인터페이스(2152)를 포함할 수 있다. 일부 실시예들에서, 무선 인터페이스(2152)는 디바이스(2150)와 기지국(2100) 사이에 고도로 지향성인 무선 링크를 제공하는 독점적 무선 통신 기술을 구현할 수 있다. 그러나, 일부 실시예들에서, 다른 상업적(예컨대, Wi-Fi, 블루투스 등) 또는 독점적 무선 통신 기술들이 사용될 수 있다.
기지국(2100)은 무선 인터페이스(2180)를 통해 디바이스(2150)에 통신가능하게 결합된 외부 디바이스(예컨대, 컴퓨팅 시스템, 게임 콘솔 등)일 수 있다. 기지국(2100)은 비디오 및/또는 이미지들을 렌더링, 필터링, 인코딩, 및 송신하기 위한 다양한 유형들의 프로세서들(예컨대, SOC들, CPU들, ISP들, GPU들, 코덱들, 및/또는 다른 컴포넌트들) 중 하나 이상을 포함할 수 있다. 기지국(2100)은 무선 접속부(2180)를 통해 센서들(2160)로부터 획득된 다양한 입력들에 적어도 부분적으로 기초하여 가상 콘텐츠를 포함하는 프레임들(각각의 프레임은 좌측 및 우측 이미지를 포함함)을 렌더링하고, 렌더링된 프레임들(또는 프레임들의 슬라이스들)을 본 명세서에 기술된 바와 같은 비디오 인코딩 시스템을 사용하여 필터링 및 압축하고, 압축된 프레임들 또는 슬라이스들을 디스플레이를 위해 디바이스(2150)에 송신할 수 있다.
기지국(2100)은 데스크톱 컴퓨터, 노트북 또는 랩톱 컴퓨터, 패드 또는 태블릿 디바이스, 스마트폰, 핸드-헬드 컴퓨팅 디바이스, 게임 제어기, 게임 시스템 등과 같은 임의의 유형의 컴퓨팅 시스템 또는 컴퓨팅 디바이스일 수 있거나 이를 포함할 수 있다. 기지국(2100)은 본 명세서에 기술된 바와 같은 비디오 인코딩 시스템을 포함하는 VR/MR 시스템(2000)의 베이스측 기능을 구현하는 하나 이상의 프로세서들을 포함하는 제어기(2110)를 포함할 수 있다. 기지국(2100)은 또한 기지국 제어기(2110)에 의해 실행가능한 VR/MR 시스템(2000)의 기지국 컴포넌트의 소프트웨어(코드(2122))뿐만 아니라 제어기(2110) 상에서 실행 중일 때 소프트웨어에 의해 사용될 수 있는 데이터(2124)를 저장하도록 구성된 메모리(2120)를 포함할 수 있다.
다양한 실시예들에서, 기지국 제어기(2110)는 하나의 프로세서를 포함하는 단일프로세서 시스템, 또는 여러 개(예컨대, 2개, 4개, 8개, 또는 다른 적합한 개수)의 프로세서들을 포함하는 멀티프로세서 시스템일 수 있다. 제어기(2110)는 임의의 적합한 명령어 세트 아키텍처를 구현하도록 구성된 중앙 프로세싱 유닛(CPU)들을 포함할 수 있고, 그 명령어 세트 아키텍처 내에 정의된 명령어들을 실행하도록 구성될 수 있다. 예를 들어, 다양한 실시예들에서, 제어기(2110)는 x86, PowerPC, SPARC, RISC 또는 MIPS ISA들, 또는 임의의 다른 적합한 ISA와 같은 다양한 명령어 세트 아키텍처(ISA)들 중 임의의 것을 구현하는 범용 또는 임베디드 프로세서들을 포함할 수 있다. 멀티프로세서 시스템들에서, 프로세서들 각각은 일반적으로 동일한 ISA를 구현할 수 있지만 반드시 그러한 것은 아니다. 제어기(2110)는 스칼라, 수퍼스칼라, 파이프라인형, 수퍼파이프라인형, 비순차형, 순차형, 추측형, 비추측형 등 또는 이들의 조합을 포함하는 임의의 마이크로아키텍처를 채택할 수 있다. 제어기(2110)는 마이크로코딩 기법들을 구현하기 위한 회로부를 포함할 수 있다. 제어기(2110)는 하나 이상의 프로세싱 코어들을 포함할 수 있고, 이는 각각 명령어들을 실행하도록 구성된다. 제어기(2110)는 하나 이상의 레벨들의 캐시들을 포함할 수 있고, 이는 임의의 크기 및 임의의 구성(세트 연관, 직접 맵핑 등)을 채택할 수 있다. 일부 실시예들에서, 제어기(2110)는 임의의 적합한 그래픽 프로세싱 회로부를 포함할 수 있는 적어도 하나의 그래픽 프로세싱 유닛(GPU)을 포함할 수 있다. 일반적으로, GPU는 디스플레이될 객체들을 프레임 버퍼(예컨대, 전체 프레임에 대한 픽셀 데이터를 포함하는 것) 내에 렌더링하도록 구성될 수 있다. GPU는 그래픽 동작의 일부 또는 전부를 수행하기 위한 그래픽 소프트웨어 또는 소정 그래픽 동작들의 하드웨어 가속을 실행할 수 있는 하나 이상의 그래픽 프로세서들을 포함할 수 있다. 일부 실시예들에서, 제어기(2110)는 본 명세서에 기술된 바와 같은 비디오 및/또는 이미지들을 프로세싱, 렌더링, 필터링, 및 인코딩하기 위한 하나 이상의 다른 컴포넌트들, 예를 들어, 다양한 유형들의 집적 회로들(IC들), 이미지 신호 프로세서들(ISP들), 인코더/디코더들(코덱들) 등 중 하나 이상을 포함할 수 있다. 일부 실시예들에서, 제어기(2110)는 적어도 하나의 시스템 온 칩(SOC)을 포함할 수 있다.
기지국 메모리(2120)는, 동적 랜덤 액세스 메모리(DRAM), 동기식 DRAM(SDRAM), 더블 데이터 레이트(DDR, DDR2, DDR3 등) SDRAM(mDDR3 등과 같은 모바일 버전들의 SDRAM들, 또는 LPDDR2 등과 같은 저전력 버전들의 SDRAM들을 포함), RAMBUS DRAM(RDRAM), 정적 RAM(SRAM) 등과 같은 임의의 유형의 메모리를 포함할 수 있다. 일부 실시예들에서, 하나 이상의 메모리 디바이스들은 단일의 인라인 메모리 모듈(SIMM)들, 듀얼 인라인 메모리 모듈(DIMM)들 등과 같은 메모리 모듈들을 형성하기 위해 회로 보드 상에 결합될 수 있다. 대안적으로, 디바이스들은 칩-온-칩 구성, 패키지-온-패키지 구성 또는 멀티-칩 모듈 구성으로 시스템을 구현하는 집적 회로로 실장될 수 있다.
기지국(2100)은 또한 무선 접속(2180)을 통해 디바이스(2150)와 통신하여 디바이스(2150)로부터 센서 입력들을 수신하고 기지국(2100)으로부터 디바이스(2150)로 압축 프레임들, 슬라이스들, 또는 타일들을 전송하도록 구성된 하나 이상의 무선 기술 인터페이스들(2130)을 포함할 수 있다. 일부 실시예들에서, 무선 기술 인터페이스(2130)는 디바이스(2150)와 기지국(2100) 사이에 고도로 지향성인 무선 링크를 제공하는 독점적 무선 통신 기술을 구현할 수 있다. 일부 실시예들에서, 무선 통신 기술의 지향성 및 대역 폭은 기지국(2100)과 통신하는 다수의 디바이스들(2150)을 동시에 지원하여 다수의 사용자들이 공존 환경에서 동시에 시스템(2000)을 사용할 수 있게 할 수 있다. 그러나, 일부 실시예들에서, 다른 상업적(예컨대, Wi-Fi, 블루투스 등) 또는 독점적 무선 통신 기술들이 사용될 수 있다.
일부 실시예들에서, 기지국(2100)은 디바이스(2150)로부터 수신된 센서(2160) 입력들에 적어도 부분적으로 기초하여 사용자에 대한 3D 가상 뷰를 제공하도록 프레임들을 렌더링하고 디바이스(2150)에 송신하도록 구성될 수 있다. 일부 실시예들에서, 가상 뷰는, 디스플레이를 위해 실시간으로 사용자의 환경의 고품질, 고해상도 비디오를 캡처하는 하나 이상의 장면 카메라들(예컨대, RGB (가시광) 비디오 카메라들)에 의해 캡처된 비디오에 기초한, 사용자의 환경에서의 실제 객체들의 렌더링들을 포함하는 사용자의 환경의 렌더링들을 포함할 수 있다. 일부 실시예들에서, 가상 뷰는 또한 기지국(2100)에 의해 렌더링되고 사용자의 실제 환경의 투영된 3D 뷰와 합성된 가상 콘텐츠(예컨대, 가상 객체들, 실제 객체들에 대한 가상 태그들, 사용자의 아바타들 등)를 포함할 수 있다.
도 7 및 도 8에 도시되지 않았지만, 일부 실시예들에서, VR/MR 시스템(2000)은 하나 이상의 다른 컴포넌트들을 포함할 수 있다. 예를 들어, 시스템은 가상 콘텐츠와 상호작용하기 위해 3D 가상 뷰 내의 가상 커서를 이동시키기 위한 커서 제어 디바이스(예컨대, 마우스)를 포함할 수 있다. 도 7 및 도 8은 단일의 디바이스(2150)를 도시하며, 일부 실시예들에서 VR/MR 시스템(2000)은 기지국(2100)과 통신하는 다수의 디바이스들(2150)을 동시에 지원하여 다수의 사용자들이 공존 환경에서 동시에 시스템을 사용할 수 있게 할 수 있다.
본 명세서에 설명된 방법들은, 상이한 실시예들에서, 소프트웨어, 하드웨어, 또는 이들의 조합으로 구현될 수 있다. 부가적으로, 방법들의 블록들의 순서는 변경될 수 있고, 다양한 요소들이 부가, 재순서화, 조합, 생략, 수정, 기타 등등될 수 있다. 본 개시의 이익을 가진 당업자에게 명백한 바와 같이 다양한 수정들 및 변화들이 이루어질 수 있다. 본 명세서에 설명된 다양한 실시예들은 예시적인 것이며 제한하려는 것으로 의도되지 않는다. 많은 변형들, 수정들, 부가들 및 개선들이 가능하다. 따라서, 복수의 예시들이 본 명세서에 설명된 컴포넌트들에 대해 단일의 예시로서 제공될 수 있다. 다양한 컴포넌트들, 동작들, 및 데이터 저장들 사이의 경계들은 다소 임의적이고, 특정 동작들은 특정 예시 구성들의 맥락에서 예시된다. 기능의 다른 할당들이 계획되고, 다음의 청구범위의 범주 내에 속할 수 있다. 마지막으로, 예시적인 구성들에서 별개의 컴포넌트들로서 제시된 구조들 및 기능은 조합된 구조 또는 컴포넌트로서 구현될 수 있다. 이들 및 다른 변형들, 수정들, 부가들 및 개선들은 다음의 청구범위에 정의된 바와 같은 실시예들의 범주 내에 속할 수 있다.

Claims (19)

  1. 비디오 인코딩 시스템으로서,
    하나 이상의 프로세서들; 및
    프로그램 명령어들을 저장하는 메모리를 포함하고, 상기 프로그램 명령어들은, 상기 하나 이상의 프로세서들에 의해 실행될 때, 상기 하나 이상의 프로세서들로 하여금,
    사전-필터링 컴포넌트 - 상기 사전-필터링 컴포넌트는,
    렌더링된 비디오 프레임으로부터 픽셀 블록들을 사전-필터링하도록 구성되고, 상기 픽셀 블록들을 사전-필터링하기 위해, 상기 사전-필터링 컴포넌트는 상기 렌더링된 비디오 프레임에 필터를 적용하여 수신 디바이스에 야기될 왜곡을 보정하도록 더 구성됨 -;
    웨이브렛(wavelet) 변환 컴포넌트 - 상기 웨이브렛 변환 컴포넌트는,
    상기 사전-필터링된 픽셀 블록들에 웨이브렛 변환을 적용하여 상기 사전-필터링된 픽셀 블록들을 복수의 주파수 대역들로 분해하고;
    상기 복수의 주파수 대역들을 상기 주파수 대역들 중 각자의 하나에 대한 주파수 데이터를 각각 포함하는 복수의 주파수 블록들로 조직화하고;
    상기 주파수 블록들 중 각자의 하나를 별개의 스트림들로서 제공하도록 구성되고, 각각의 스트림은 상기 주파수 대역들 중 각자의 하나에 대응함 -; 및
    적어도 하나의 블록 기반 인코더를 구현하게 하고,
    상기 적어도 하나의 블록 기반 인코더는,
    주파수 블록들의 상기 별개의 스트림들을 프로세싱하고 - 주어진 스트림 내의 상기 주파수 블록들을 프로세싱하기 위해, 상기 적어도 하나의 블록 기반 인코더는 상기 주파수 블록들에 인코딩 기법을 적용하여 상기 주파수 블록들 내의 상기 주파수 데이터를 압축하도록 구성됨 -;
    상기 별개의 스트림들로부터의 상기 압축된 주파수 데이터를 무선 접속을 통한 상기 수신 디바이스로의 송신을 위해 무선 인터페이스에 제공하도록 구성되는, 비디오 인코딩 시스템.
  2. 제1항에 있어서, 상기 필터는 상기 수신 디바이스의 렌즈에 의해 야기될 왜곡을 필터링하도록 구성된 렌즈 워핑(lens warp) 필터인, 비디오 인코딩 시스템.
  3. 제2항에 있어서, 상기 하나 이상의 프로세서들은, 상기 무선 접속을 통해, 상기 수신 디바이스의 렌즈들에 대해, 상기 수신 디바이스의 렌즈들에 의해 야기될 왜곡을 보정하기 위해 상기 사전-필터링 컴포넌트에 의해 사용될 렌즈 워핑 데이터를 수신하도록 더 구성되는, 비디오 인코딩 시스템.
  4. 제1항에 있어서, 상기 픽셀 블록들을 사전-필터링하기 위해, 상기 사전-필터링 컴포넌트는,
    상기 렌더링된 비디오 프레임의 주변 영역에 적어도 하나의 필터를 적용하여 상기 주변 영역에서의 해상도를 감소시키는 한편 상기 렌더링된 비디오 프레임의 포비티드(foveated) 영역에서 더 높은 해상도를 유지하도록 더 구성되는, 비디오 인코딩 시스템.
  5. 제1항에 있어서, 상기 렌더링된 비디오 프레임은 복수의 슬라이스들로 분할되고, 각각의 슬라이스는 픽셀 블록들의 적어도 하나의 행을 포함하고, 상기 비디오 인코딩 시스템은,
    상기 렌더링된 비디오 프레임의 주어진 슬라이스를 획득하고;
    상기 주어진 슬라이스 내의 상기 사전-필터링된 픽셀 블록들을 사전-필터링하고 - 상기 사전-필터링 컴포넌트는 상기 수신 디바이스에 야기될 왜곡을 보정하기 위해 상기 필터를 적용하도록 더 구성됨 -;
    상기 주어진 슬라이스 내의 상기 픽셀 블록들에 상기 웨이브렛 변환을 적용하여 상기 사전-필터링된 픽셀 블록들을 상기 주파수 대역들 중 하나에 대한 주파수 데이터를 각각 포함하는 복수의 주파수 블록들로 조직화되는 복수의 주파수 대역들로 분해하고;
    상기 주파수 블록들 중 각자의 하나를 별개의 스트림들로서 제공하고 - 각각의 스트림은 상기 주파수 대역들 중 각자의 하나에 대응함 -;
    주파수 블록들의 상기 별개의 스트림들을 프로세싱하고 - 주어진 스트림 내의 상기 주파수 블록들을 프로세싱하기 위해, 상기 적어도 하나의 블록 기반 인코더는 상기 주어진 슬라이스로부터의 상기 주어진 스트림의 상기 주파수 블록들에 상기 인코딩 기법을 적용하여 상기 주파수 블록들 내의 상기 주파수 데이터를 압축하도록 구성됨 -;
    상기 슬라이스에 대한 상기 별개의 스트림들로부터의 상기 압축된 주파수 데이터를 상기 무선 접속을 통한 상기 수신 디바이스로의 송신을 위해 상기 무선 인터페이스에 제공하는 것을 반복적으로 수행하도록 구성되는, 비디오 인코딩 시스템.
  6. 제1항에 있어서, 상기 렌더링된 비디오 프레임은 복수의 슬라이스들로 분할되고, 각각의 슬라이스는 2개 이상의 타일들을 포함하고, 각각의 타일은 2개 이상의 픽셀 블록들을 포함하며, 상기 비디오 인코딩 시스템은 적어도 2개의 블록 기반 인코더들을 포함하고, 각각의 인코더는, 각각의 슬라이스로부터의 상기 타일들의 서브세트로부터, 주파수 블록들의 상기 별개의 스트림들을 프로세싱하여, 각각의 슬라이스로부터의 상기 타일들의 상기 각자의 서브세트들로부터, 상기 주파수 블록들 내의 상기 주파수 데이터를 압축하도록 구성되는, 비디오 인코딩 시스템.
  7. 제6항에 있어서, 각각의 인코더는 상기 각자의 서브세트들 내의 상기 타일들 사이에 상기 주파수 대역들에 대한 상기 주파수 블록들의 상기 프로세싱을 다중화하여 각각의 주파수 대역의 주파수 블록들의 상기 프로세싱 사이에 다수의 시간 단위들을 허용하도록 구성되는, 비디오 인코딩 시스템.
  8. 제1항에 있어서, 상기 웨이브렛 변환은 상기 렌더링된 비디오 프레임으로부터의 각각의 픽셀 블록에 적용되는 2-레벨 웨이브렛 분해인, 비디오 인코딩 시스템.
  9. 제1항에 있어서, 상기 웨이브렛 변환은 상기 렌더링된 비디오 프레임으로부터의 각각의 픽셀 블록에 적용되는 N-레벨 웨이브렛 분해이고, 여기서 N은 조정가능한, 비디오 인코딩 시스템.
  10. 제1항에 있어서, 상기 픽셀 블록들은 128x128 픽셀 블록들이고, 상기 웨이브렛 변환은 각각의 픽셀 블록을 7개의 상이한 주파수 대역들을 나타내는 주파수 데이터의 16개의 32x32 블록들로 분해하는, 비디오 인코딩 시스템.
  11. 방법으로서,
    하나 이상의 프로세서들을 포함하고, 상기 하나 이상의 프로세서들은,
    렌더링된 비디오 프레임으로부터 픽셀 블록들을 사전-필터링하는 단계 - 상기 사전-필터링하는 단계는 상기 렌더링된 비디오 프레임에 필터를 적용하여 수신 디바이스에 야기될 왜곡을 보정하는 단계를 포함함 -;
    상기 렌더링된 비디오 프레임으로부터의 상기 사전-필터링된 픽셀 블록들에 웨이브렛 변환을 적용하여 상기 사전-필터링된 픽셀 블록들을 복수의 주파수 대역들로 분해하는 단계;
    상기 복수의 주파수 대역들을 상기 주파수 대역들 중 각자의 하나에 대한 주파수 데이터를 각각 포함하는 복수의 주파수 블록들로 조직화하는 단계;
    상기 주파수 블록들 중 각자의 하나를 별개의 스트림들로서 제공하는 단계 - 각각의 스트림은 상기 주파수 대역들 중 각자의 하나에 대응함 -;
    상기 주파수 블록들의 별개의 스트림들을 프로세싱하는 단계 - 주어진 스트림 내의 상기 주파수 블록들을 프로세싱하는 단계는 상기 주파수 블록들에 인코딩 기법을 적용하여 상기 주파수 블록들 내의 상기 주파수 데이터를 압축하는 단계를 포함함 -; 및
    상기 압축된 주파수 데이터를 무선 접속을 통해 상기 수신 디바이스로 송신하는 단계를 구현하도록 구성되는, 방법.
  12. 제11항에 있어서, 상기 픽셀 블록들을 사전-필터링하는 단계는
    상기 렌더링된 비디오 프레임의 주변 영역에 적어도 하나의 필터를 적용하여 상기 주변 영역에서의 해상도를 감소시키는 한편 상기 렌더링된 비디오 프레임의 포비티드 영역에서 더 높은 해상도를 유지하는 단계를 더 포함하는, 방법.
  13. 제11항에 있어서, 상기 비디오 프레임은 복수의 슬라이스들로 분할되고, 각각의 슬라이스는 픽셀 블록들의 적어도 하나의 행을 포함하며, 상기 하나 이상의 프로세서들은, 상기 렌더링된 비디오 프레임의 각각의 슬라이스에 대해, 상기 픽셀 블록들을 사전-필터링하는 단계, 상기 웨이브렛 변환을 적용하는 단계, 상기 조직화하는 단계, 상기 제공하는 단계, 상기 주파수 블록들의 상기 별개의 스트림들을 프로세싱하는 단계, 및 상기 송신하는 단계를 수행하는, 방법.
  14. 제11항에 있어서, 상기 렌더링된 비디오 프레임은 복수의 슬라이스들로 분할되고, 각각의 슬라이스는 2개 이상의 타일들을 포함하고, 각각의 타일은 2개 이상의 픽셀 블록들을 포함하며, 상기 하나 이상의 프로세서들은, 상기 렌더링된 비디오 프레임의 각각의 타일에 대해, 상기 픽셀 블록들을 사전-필터링하는 단계, 상기 웨이브렛 변환을 적용하는 단계, 상기 조직화하는 단계, 상기 제공하는 단계, 상기 주파수 블록들의 상기 별개의 스트림들을 프로세싱하는 단계, 및 상기 송신하는 단계를 수행하는, 방법.
  15. 제14항에 있어서, 상기 주파수 블록들의 상기 별개의 스트림들을 프로세싱하는 단계는 적어도 2개의 블록 기반 인코더들에 의해 수행되고, 각각의 인코더는, 각각의 슬라이스로부터의 상기 타일들의 서브세트로부터, 주파수 블록들의 상기 별개의 스트림들을 프로세싱하여, 각각의 슬라이스로부터의 상기 타일들의 상기 각자의 서브세트들로부터, 상기 주파수 블록들 내의 상기 주파수 데이터를 압축하고, 상기 방법은, 각각의 인코더가 상기 각자의 서브세트들 내의 상기 타일들 사이에 상기 주파수 대역들에 대한 상기 주파수 블록들의 상기 프로세싱을 다중화하여 각각의 주파수 대역의 주파수 블록들의 상기 프로세싱 사이에 다수의 시간 단위들을 허용하는 단계를 더 포함하는, 방법.
  16. 제11항에 있어서, 상기 웨이브렛 변환은 상기 렌더링된 비디오 프레임으로부터의 각각의 픽셀 블록에 적용되는 2-레벨 웨이브렛 분해인, 방법.
  17. 시스템으로서,
    하나 이상의 프로세서들 및 디스플레이 서브시스템을 포함하는 디바이스; 및
    기지국을 포함하며, 상기 기지국은,
    하나 이상의 프로세서들 - 상기 하나 이상의 프로세서들은,
    렌더링된 비디오 프레임으로부터의 픽셀 데이터를 포함하는 픽셀 블록들을 사전-필터링하고 - 사전-필터링하는 것은 상기 렌더링된 비디오 프레임에 필터를 적용하여 상기 디스플레이 서브시스템에 야기될 왜곡을 보정하는 것을 포함함 -;
    픽셀 데이터를 포함하는 사전-필터링된 픽셀 블록들에 웨이브렛 변환을 적용하여 상기 픽셀 데이터를 복수의 주파수 대역들로 분해하고;
    상기 복수의 주파수 대역들을 상기 주파수 대역들 중 각자의 하나에 대한 주파수 데이터를 각각 포함하는 복수의 주파수 블록들로 조직화하고;
    상기 주파수 블록들 중 각자의 하나를 별개의 스트림들로서 제공하도록 구성되고, 각각의 스트림은 상기 주파수 대역들 중 각자의 하나에 대응함 -;
    주파수 블록들의 상기 별개의 스트림들을 프로세싱하도록 구성된 적어도 하나의 블록 기반 인코더 - 주어진 스트림 내의 상기 주파수 블록들을 프로세싱하기 위해, 상기 적어도 하나의 블록 기반 인코더는 상기 주파수 블록들에 인코딩 기법을 적용하여 상기 주파수 대역들을 압축하도록 구성됨 -; 및
    상기 압축된 주파수 대역들을 무선 접속을 통해 상기 디바이스로 송신하도록 구성된 무선 인터페이스를 포함하고,
    상기 디바이스의 상기 하나 이상의 프로세서들은,
    상기 기지국으로부터 수신된 상기 압축된 주파수 대역들을 압축해제하고;
    상기 압축해제된 주파수 대역들에 대해 웨이브렛 합성을 수행하여 상기 렌더링된 비디오 프레임에 대한 상기 픽셀 데이터를 재구성하고;
    상기 재구성된 픽셀 데이터를 디스플레이를 위해 상기 디스플레이 서브시스템에 제공하도록 구성되는, 시스템.
  18. 제17항에 있어서, 상기 픽셀 블록들을 사전-필터링하는 것은
    상기 렌더링된 비디오 프레임의 주변 영역에 적어도 하나의 필터를 적용하여 상기 주변 영역에서의 해상도를 감소시키는 한편 상기 렌더링된 비디오 프레임의 포비티드 영역에서 더 높은 해상도를 유지하는 것을 더 포함하는, 시스템.
  19. 제17항에 있어서, 상기 디바이스는 머리-장착형 디스플레이(head-mounted display, HMD)인, 시스템.
KR1020227037046A 2018-06-28 2019-06-27 비디오 인코딩 시스템 KR102645652B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020247007240A KR20240033186A (ko) 2018-06-28 2019-06-27 비디오 인코딩 시스템

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201862691423P 2018-06-28 2018-06-28
US62/691,423 2018-06-28
KR1020207036204A KR20210011407A (ko) 2018-06-28 2019-06-27 비디오 인코딩 시스템
PCT/US2019/039595 WO2020006293A1 (en) 2018-06-28 2019-06-27 Video encoding system

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020207036204A Division KR20210011407A (ko) 2018-06-28 2019-06-27 비디오 인코딩 시스템

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020247007240A Division KR20240033186A (ko) 2018-06-28 2019-06-27 비디오 인코딩 시스템

Publications (2)

Publication Number Publication Date
KR20220150412A KR20220150412A (ko) 2022-11-10
KR102645652B1 true KR102645652B1 (ko) 2024-03-11

Family

ID=67439355

Family Applications (3)

Application Number Title Priority Date Filing Date
KR1020247007240A KR20240033186A (ko) 2018-06-28 2019-06-27 비디오 인코딩 시스템
KR1020227037046A KR102645652B1 (ko) 2018-06-28 2019-06-27 비디오 인코딩 시스템
KR1020207036204A KR20210011407A (ko) 2018-06-28 2019-06-27 비디오 인코딩 시스템

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020247007240A KR20240033186A (ko) 2018-06-28 2019-06-27 비디오 인코딩 시스템

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020207036204A KR20210011407A (ko) 2018-06-28 2019-06-27 비디오 인코딩 시스템

Country Status (6)

Country Link
US (2) US11653026B2 (ko)
EP (1) EP3815368A1 (ko)
JP (3) JP7171768B2 (ko)
KR (3) KR20240033186A (ko)
CN (1) CN112313954A (ko)
WO (1) WO2020006293A1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7249364B2 (ja) 2018-06-28 2023-03-30 アップル インコーポレイテッド 低レイテンシ動画符号化及び送信のレート制御
KR102582407B1 (ko) * 2019-07-28 2023-09-26 구글 엘엘씨 포비에이티드 메시들로 몰입형 비디오 콘텐츠를 렌더링하기 위한 방법들, 시스템들, 및 매체들
CN117354545B (zh) * 2023-12-06 2024-02-23 成都索贝数码科技股份有限公司 视频图像小波变换高频系数按限定尺寸分块编码方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005032137A1 (en) * 2003-09-26 2005-04-07 The Regents Of The University Of California Video encoding methods and devices
US20170287112A1 (en) * 2016-03-31 2017-10-05 Sony Computer Entertainment Inc. Selective peripheral vision filtering in a foveated rendering system
US20170301065A1 (en) * 2016-04-15 2017-10-19 Gopro, Inc. Systems and methods for combined pipeline processing of panoramic images

Family Cites Families (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03181232A (ja) 1989-12-11 1991-08-07 Toshiba Corp 可変レート符号化方式
GB2267194B (en) * 1992-05-13 1995-10-04 Sony Broadcast & Communication Apparatus and method for processing image data
JPH09212623A (ja) 1996-01-30 1997-08-15 Fuji Photo Film Co Ltd 画像処理方法
US6937659B1 (en) 1997-11-14 2005-08-30 Ac Capital Management, Inc. Apparatus and method for compressing video information
JP4686516B2 (ja) 1997-12-05 2011-05-25 株式会社ユニバーサルエンターテインメント 遊技機
WO1999049413A1 (en) 1998-03-20 1999-09-30 Mitsubishi Electric Corp. Lossy/lossless region-of-interest image coding
CN100481946C (zh) * 1998-03-20 2009-04-22 三菱电机株式会社 编码和解码及压缩图像的方法和装置
AU762996B2 (en) 1999-02-09 2003-07-10 Motorola Australia Pty Ltd An image compression system and method of determining quantisation parameters therefor
KR100580158B1 (ko) 1999-06-12 2006-05-15 삼성전자주식회사 화상 패킷 전송을 위한 무선통신 시스템
JP4254017B2 (ja) 2000-03-10 2009-04-15 ソニー株式会社 画像符号化装置及び方法
US6937988B1 (en) 2001-08-10 2005-08-30 Cirrus Logic, Inc. Methods and systems for prefilling a buffer in streaming data applications
US20030067476A1 (en) 2001-10-04 2003-04-10 Eastman Kodak Company Method and system for displaying an image
JP2003152544A (ja) 2001-11-12 2003-05-23 Sony Corp データ通信システム、データ送信装置、データ受信装置、および方法、並びにコンピュータ・プログラム
US6757434B2 (en) 2002-11-12 2004-06-29 Nokia Corporation Region-of-interest tracking method and device for wavelet-based video coding
JP3948619B2 (ja) 2003-03-31 2007-07-25 株式会社リコー 画像圧縮装置、画像圧縮方法、プログラム及び記録媒体
JP2004350263A (ja) * 2003-04-28 2004-12-09 Canon Inc 画像処理装置及び画像処理方法
JP4151963B2 (ja) 2003-09-19 2008-09-17 株式会社リコー 画像サーバ装置、クライアント装置、動画像配信方法、プログラム、及び、情報記録媒体
US9325998B2 (en) 2003-09-30 2016-04-26 Sharp Laboratories Of America, Inc. Wireless video transmission system
JP2006222555A (ja) 2005-02-08 2006-08-24 Matsushita Electric Ind Co Ltd 符号化装置及び符号化方法
US8768084B2 (en) 2005-03-01 2014-07-01 Qualcomm Incorporated Region-of-interest coding in video telephony using RHO domain bit allocation
KR100677446B1 (ko) 2005-03-31 2007-02-02 엘지전자 주식회사 휴대단말기의 영상신호 압축 코딩장치 및 방법
JP4812585B2 (ja) 2006-04-28 2011-11-09 株式会社リコー 符号変換装置、符号変換方法、プログラム及び記録媒体
US20080019398A1 (en) 2006-07-20 2008-01-24 Adimos Systems Ltd. Clock recovery in wireless media streaming
US20080062322A1 (en) 2006-08-28 2008-03-13 Ortiva Wireless Digital video content customization
JP4254867B2 (ja) 2007-01-31 2009-04-15 ソニー株式会社 情報処理装置および方法、プログラム、並びに記録媒体
US8331444B2 (en) * 2007-06-26 2012-12-11 Qualcomm Incorporated Sub-band scanning techniques for entropy coding of sub-bands
JP2009044483A (ja) 2007-08-09 2009-02-26 Panasonic Corp 画像符号化装置
WO2009094591A2 (en) 2008-01-24 2009-07-30 Micropower Appliance Video delivery systems using wireless cameras
US8406297B2 (en) 2008-10-17 2013-03-26 Futurewei Technologies, Inc. System and method for bit-allocation in video coding
JP2010239288A (ja) 2009-03-30 2010-10-21 Sony Corp 情報処理装置および方法
US20110250948A1 (en) 2010-04-08 2011-10-13 Wms Gaming, Inc. Video compression in gaming machines
US11541233B2 (en) 2013-06-30 2023-01-03 Greatbatch Ltd. ECA oxide-resistant connection to a hermetic seal ferrule for an active implantable medical device
US9215472B2 (en) 2013-09-27 2015-12-15 Apple Inc. Parallel hardware and software block processing pipelines
CN106233706B (zh) * 2014-02-25 2020-01-03 苹果公司 用于提供具有标准动态范围和高动态范围两者的视频的向后兼容的装置和方法
US10264269B2 (en) 2014-10-13 2019-04-16 Apple Inc. Metadata hints to support best effort decoding for green MPEG applications
WO2016126735A2 (en) 2015-02-02 2016-08-11 Accelerated Media Technologies, Inc. Systems and methods for electronic news gathering
JP6616592B2 (ja) 2015-05-20 2019-12-04 日本放送協会 符号化装置及びそのプログラム
US10255021B2 (en) 2015-05-28 2019-04-09 Qualcomm Incorporated Low latency screen mirroring
KR20170017573A (ko) 2015-08-07 2017-02-15 삼성전자주식회사 영상 데이터 처리 방법 및 이를 지원하는 전자 장치
JP6722995B2 (ja) 2015-10-23 2020-07-15 キヤノン株式会社 符号化方法及び符号化装置、撮像装置及びプログラム
US9955176B2 (en) 2015-11-30 2018-04-24 Intel Corporation Efficient and scalable intra video/image coding using wavelets and AVC, modified AVC, VPx, modified VPx, or modified HEVC coding
US20170155905A1 (en) * 2015-11-30 2017-06-01 Intel Corporation Efficient intra video/image coding using wavelets and variable size transform coding
US20180040164A1 (en) 2016-08-05 2018-02-08 Gopro, Inc. Apparatus and methods for selective coding of images
US10123040B2 (en) 2016-08-30 2018-11-06 Qualcomm Incorporated Intra-coded video frame caching for video telephony sessions
JP2018061141A (ja) 2016-10-05 2018-04-12 富士通株式会社 通信装置および通信方法
KR102543444B1 (ko) 2017-08-29 2023-06-13 삼성전자주식회사 영상 부호화 장치
CN116016955A (zh) 2018-06-28 2023-04-25 苹果公司 基于优先级的视频编码和传输
JP7249364B2 (ja) 2018-06-28 2023-03-30 アップル インコーポレイテッド 低レイテンシ動画符号化及び送信のレート制御

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005032137A1 (en) * 2003-09-26 2005-04-07 The Regents Of The University Of California Video encoding methods and devices
US20170287112A1 (en) * 2016-03-31 2017-10-05 Sony Computer Entertainment Inc. Selective peripheral vision filtering in a foveated rendering system
US20170301065A1 (en) * 2016-04-15 2017-10-19 Gopro, Inc. Systems and methods for combined pipeline processing of panoramic images

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
A. Hanjalic et al, Image and Video Databases: Restoration, Watermarking and Retrieval - Chapter 5 On the optimization of de-interlacing, Vol. 8, Pages 93-121, https://doi.org/10.1016/S0928-1479(00)80033-9 (2014.06.27.) 1부.*

Also Published As

Publication number Publication date
US12052440B2 (en) 2024-07-30
JP7171768B2 (ja) 2022-11-15
US20230254510A1 (en) 2023-08-10
JP2023017896A (ja) 2023-02-07
US11653026B2 (en) 2023-05-16
WO2020006293A1 (en) 2020-01-02
JP2021527977A (ja) 2021-10-14
JP7441924B2 (ja) 2024-03-01
KR20220150412A (ko) 2022-11-10
JP2024056936A (ja) 2024-04-23
KR20210011407A (ko) 2021-02-01
US20210250616A1 (en) 2021-08-12
CN112313954A (zh) 2021-02-02
EP3815368A1 (en) 2021-05-05
KR20240033186A (ko) 2024-03-12

Similar Documents

Publication Publication Date Title
JP7490726B2 (ja) 低レイテンシ動画符号化及び送信のレート制御
US12086919B2 (en) Video pipeline
US20230092305A1 (en) Priority-based video encoding and transmission
US11914152B2 (en) Video compression methods and apparatus
JP7441924B2 (ja) 動画符号化システム

Legal Events

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