KR102476057B1 - 클라우드 가상 현실을 위한 imu 센서 데이터를 활용한 비디오 인코딩 및 디코딩 가속 방법 및 장치 - Google Patents

클라우드 가상 현실을 위한 imu 센서 데이터를 활용한 비디오 인코딩 및 디코딩 가속 방법 및 장치 Download PDF

Info

Publication number
KR102476057B1
KR102476057B1 KR1020227010529A KR20227010529A KR102476057B1 KR 102476057 B1 KR102476057 B1 KR 102476057B1 KR 1020227010529 A KR1020227010529 A KR 1020227010529A KR 20227010529 A KR20227010529 A KR 20227010529A KR 102476057 B1 KR102476057 B1 KR 102476057B1
Authority
KR
South Korea
Prior art keywords
frame
current frame
encoding
block
specific reference
Prior art date
Application number
KR1020227010529A
Other languages
English (en)
Other versions
KR20220044879A (ko
Inventor
손주형
파탄 아디 프라나야
곽진삼
윤지훈
Original Assignee
주식회사 윌러스표준기술연구소
서울과학기술대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 윌러스표준기술연구소, 서울과학기술대학교 산학협력단 filed Critical 주식회사 윌러스표준기술연구소
Publication of KR20220044879A publication Critical patent/KR20220044879A/ko
Application granted granted Critical
Publication of KR102476057B1 publication Critical patent/KR102476057B1/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/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/002Image coding using neural networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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
    • 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/107Selection of coding mode or of prediction mode between spatial and temporal predictive coding, e.g. picture refresh
    • 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/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding 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/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/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/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/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
    • 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/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • G06F3/012Head tracking input arrangements
    • 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/40Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video transcoding, i.e. partial or full decoding of a coded input stream followed by re-encoding of the decoded output stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Abstract

클라우드 VR(Virtual Reality) 비디오의 인코딩 가속 방법은, 현재 프레임의 인코딩을 위한 참조 프레임 후보를 구성하는 단계; IMU(Inertial Measurement Unit)의 센서 데이터에 기초하여 상기 참조 프레임 후보 중 특정 참조 프레임을 선택하는 단계; 상기 특정 참조 프레임에 포함된 정보에 기초하여 상기 현재 프레임을 인코딩하기 위한 예측 모드를 선택하는 단계; 및 상기 선택된 예측 모드에 기초하여 상기 현재 프레임을 인코딩하는 단계를 포함한다.

Description

클라우드 가상 현실을 위한 IMU 센서 데이터를 활용한 비디오 인코딩 및 디코딩 가속 방법 및 장치
클라우드 가상 현실(Virtual Reality, VR) 시스템에서 VR 콘텐츠는 고해상도 영상이 필요하며 클라우드 VR에서 네트워크를 통해 전송되기 전에 인코딩되어야 한다. 인코딩 과정은 클라우드 VR에서 많은 연산 부담과 처리 시간이 소요되는 과정 중 하나이다. 따라서 클라우드 VR은 클라우드 VR 시스템의 총 지연시간을 최소화하기 위해 빠른 비디오 인코딩 방법 및 장치가 필요하다.
최근 몇 년 동안 많은 빅테크 회사들이 가상 현실 (Virtual Reality, VR)에서 큰 발전을 이루고 있다. 그러나 지금까지 이러한 모든 큰 발전들에도 불구하고 아직까지 VR 기기의 높은 가격으로 인해 사용자에 대한 접근성이 떨어지는 문제가 있다. 대중 사용자들 사이에서 VR을 대중화하는 데 있어 가장 큰 장애물 중 하나는 기기 비용이다.
오늘날 VR의 높은 가격을 해결할 수 있는 방법 중 하나로 클라우드 게임의 기술을 활용하는 방법이 있다. 클라우드 게임은 서버 측에서 게임 콘텐츠를 렌더링한 다음 렌더링 된 영상을 사용자의 원격 디스플레이에 직접 비디오 스트리밍하는 개념이다. 이를 적용한 기법이 클라우드 VR이다.
비디오 인코딩 또는 비디오 압축은 일반적으로 원하는 응용 프로그램 및 디스플레이 하드웨어와의 호환성 및 효율성을 위해 디지털 비디오 형식을 한 표준에서 다른 표준으로 변경하는 프로세스이다. 제한된 전송 대역폭으로 인해 비디오 압축은 클라우드 VR에서 매우 중요하다. VR 콘텐츠는 클라이언트로 전송되기 전에 최대한 효율적으로 압축해야 한다. 그러나 비디오 압축은 처리 시간을 필요로 한다. 압축 수준이 높을수록 더 많은 시간이 걸립니다. 비디오의 압축률에 영향을 미치는 프로세스 중 하나는 모션 추정 프로세스이다.
모션 추정(Motion Estimation, ME)은 현재 프레임의 블록에 대해 참조 프레임에서 가장 잘 일치하는 블록의 변위를 모션 벡터(Motion Vector, MV) 형태로 찾는 기법이다. 움직임 벡터 차이(MV와 주변 블록 MV 예측의 차이)와 예측 레지듀얼(현재 블록의 픽셀별 신호 값과 참조 블록의 픽셀별 신호 값과의 차이)만을 계산하여 인코딩함으로써 많은 비트를 절약할 수 있어 영상 압축률이 높아진다.
하드웨어 가속 비디오 인코더는 하드웨어 기반으로 가속된 비디오 인코딩 기능을 제공하는 특정 하드웨어 칩셋이다. 인코딩이 별도 하드웨어로 오프로드되면 CPU는 다른 작업에 사용될 수 있다. 비디오 인코딩을 위한 GPU 하드웨어 가속 엔진은 실시간 비디오 처리에서 매우 빠른 속도를 지원하므로 클라우드 VR 스트리밍 애플리케이션에 사용하기에 적합하다. Nvidia의 기존 하드웨어 가속 비디오 인코더 중 하나는 NVIDIA Video Codec SDK(구 NVENC)로 불린다.
본 발명은 IMU(Inertial Measurement Unit) 센서 데이터를 이용한 효율적인 비디오 인코딩/디코딩 방법을 제공한다.
본 발명은 다음과 같은 비디오 인코딩 가속 방법 및 인코딩 가속 장치를 제공한다.
먼저, 본 발명의 일 실시예에 따른 클라우드 VR(Virtual Reality) 영상의 인코딩 가속 방법에 있어서, 현재 프레임의 인코딩을 위한 참조 프레임 후보를 구성하는 단계; IMU(Inertial Measurement Unit)의 센서 데이터에 기초하여 상기 참조 프레임 후보 중 특정 참조 프레임을 선택하는 단계; 상기 특정 참조 프레임에 포함된 정보에 기초하여 상기 현재 프레임을 인코딩하기 위한 예측 모드를 선택하는 단계; 및 상기 선택된 예측 모드에 기초하여 상기 현재 프레임을 인코딩하는 단계를 포함한다.
상기 IMU에는 가속도계, 자이로스코프 및 자력계가 포함된다.
상기 참조 프레임 후보의 회전 방향과 상기 현재 프레임의 회전 방향이 동일하다.
상기 특정 참조 프레임은 상기 참조 프레임 후보 중 현재 프레임으로부터 최소 유클리드 거리를 갖는 프레임이다.
상기 특정 참조 프레임의 롤(Roll)과 상기 현재 프레임의 롤 간의 차이는 기 설정된 임계 값보다 작다.
상기 참조 프레임 후보는 탐색 영역 내의 중심점을 가지는 하나 이상의 프레임으로 구성되고, 상기 탐색 영역은 현재 프레임의 높이의 2배, 현재 프레임의 너비의 2배에 해당한다.
상기 특정 참조 프레임에 포함된 정보에 기초하여 상기 현재 프레임을 인코딩하기 위한 예측 모드를 선택하는 단계는, 상기 현재 프레임의 특정 현재 블록에 대응하는 상기 특정 참조 프레임의 특정 참조 블록을 선택하는 단계; 상기 특정 참조 블록의 움직임 벡터에 기초하여 상기 특정 현재 블록을 인코딩하는 단계를 포함한다.
상기 특정 참조 블록은 현재 프레임과 상기 특정 참조 프레임 사이의 중첩 영역의 블록들 중 하나이다.
상기 특정 참조 블록은 상기 중첩 영역의 블록들의 SAD (Sum of Absolute Difference) 중 가장 작은 SAD를 가지는 블록이고, 상기 SAD는 상기 중첩 영역의 블록들 중 왼쪽 상단 블록으로부터 계산된다.
클라우드 VR(Virtual Reality) 영상의 인코딩 가속 방법을 수행하는 인코딩 가속 장치에 있어서, 프로세서를 포함하고, 상기 프로세서는, 현재 프레임의 인코딩을 위한 참조 프레임 후보를 구성하고, IMU(Inertial Measurement Unit)의 센서 데이터에 기초하여 상기 참조 프레임 후보 중 특정 참조 프레임을 선택하고, 상기 특정 참조 프레임에 포함된 정보에 기초하여 상기 현재 프레임을 인코딩하기 위한 예측 모드를 선택하며, 상기 선택된 예측 모드에 기초하여 상기 현재 프레임을 인코딩한다.
상기 IMU에는 가속도계, 자이로스코프 및 자력계가 포함된다.
상기 참조 프레임 후보의 회전 방향과 상기 현재 프레임의 회전 방향이 동일하다.
상기 특정 참조 프레임은 상기 참조 프레임 후보 중 상기 현재 프레임으로부터 최소 유클리드 거리를 갖는 프레임이다.
상기 특정 참조 프레임의 롤(Roll)과 상기 현재 프레임의 롤 간의 차이는 기 설정된 임계 값보다 작다.
상기 참조 프레임 후보는 탐색 영역 내의 중심점을 가지는 하나 이상의 프레임으로 구성되고, 상기 탐색 영역은 상기 현재 프레임의 높이의 2배, 상기 현재 프레임의 너비의 2배에 해당한다.
상기 프로세서는, 상기 현재 프레임의 특정 현재 블록에 대응하는 상기 특정 참조 프레임의 특정 참조 블록을 선택하고, 상기 특정 참조 블록의 움직임 벡터에 기초하여 상기 특정 현재 블록을 인코딩한다.
상기 특정 참조 블록은 현재 프레임과 상기 특정 참조 프레임 사이의 중첩 영역의 블록들 중 하나이다.
상기 특정 참조 블록은 상기 중첩 영역의 블록들의 SAD(Sum of Absolute Difference) 중 가장 작은 SAD를 가진 블록이고, 상기 SAD는 상기 중첩 영역의 블록들 중 왼쪽 상단 블록으로부터 계산된다.
제안된 솔루션은 클라우드 VR(Virtual Reality) 스트리밍을 위한 비디오 인코딩을 가속화 한다.
제안된 솔루션은 보다 정확한 비디오 프레임 예측을 통해 더 높은 비디오 품질과 압축률을 제공한다.
제안된 솔루션은 소프트웨어 기반 인코더의 속도를 높여 기존 HMD(Head Mounted Display)와 하위 호환성이 높아 클라우드 VR에 적용 가능하다.
제안된 솔루션은 하드웨어 가속 인코더에도 적용하여 성능을 향상시킬 수 있다.
제안된 솔루션은 비동기 타임워프의 결과로 화면의 "여백"을 줄일 수 있다.
제안된 솔루션은 클라이언트 측에서 수신한 비디오 프레임을 효율적으로 디코딩할 수 있다.
도 1은 클라우드 VR 시스템 아키텍처를 보여준다.
도 2는 비디오 인코딩에서의 움직임 탐색 과정을 보여준다.
도 3은 x264에 대한 NVENC 성능 향상을 보여준다.
도 4는 전체 솔루션 아키텍처를 보여준다.
도 5는 제안된 솔루션에 대한 세부 절차를 보여준다.
도 6은 Madgwick IMU 센서 융합 알고리즘을 보여준다.
도 7은 프레임 B의 방향이 프레임 A와의 정렬에서
Figure 112022033952561-pct00001
축 주위의 각도 θ인 회전에 의해 달성되었음을 보여준다.
도 8은 (x, y, z 축)에서 가상 세계의 원점을 보여준다.
도 9는 IMU 데이터에 기초한 참조 픽처 선택을 나타낸다.
도 10은 탐색 영역과 롤 방향 요소 검증을 보여준다.
도 11은 피치 및 요 헤드 움직임 IMU 센서 추적 측정을 보여준다.
도 12는 인코딩 예측 프로세스의 3가지 조건을 나타낸다: (a) 완전한 인터 모드, (b) 부분적으로 인터 및 인트라 모드, (c) 완전한 인트라 모드.
도 13은 모션 탐색 시작점 결정 과정을 나타낸다.
도 14는 현재 처리된 프레임과 참조 프레임 사이의 중첩 영역을 나타낸다.
도 15는 인코딩 과정에서 움직임 벡터 탐색 방향을 나타낸다.
도 16은 x-성분을 나타낸다: (a)
Figure 112022033952561-pct00002
(b)
Figure 112022033952561-pct00003
.
도 17은 y-성분을 나타낸다: (a)
Figure 112022033952561-pct00004
(b)
Figure 112022033952561-pct00005
.
도 18은 움직임 탐색 알고리즘에서 탐색 창 크기를 나타낸다.
도 19는 탐색 윈도우 크기를 결정하는 예를 도시한다.
도 20은 높은 우선순위 블록과 낮은 우선순위 블록을 나타낸다.
도 21은 우선순위 기반 블록 전송 큐를 나타낸다.
도 22는 실제 시야(Field of view, FoV) 계산을 보여준다.
도 23은 참조 블록 재사용 제한을 보여준다.
도 24는 비디오 프레임에서 블록의 두 가지 범주를 보여준다.
도 25는 우선순위 기반 블록 복호화 및 비동기 시간 왜곡을 나타낸다.
클라우드 가상 현실(Virtual Reality, VR) 시스템에 클라우드 게임 기술을 적용하면 고급 PC 없이도 VR 콘텐츠를 체험하고 즐길 수 있다. 고성능 컴퓨터를 서버로 활용하여 VR 콘텐츠를 생성하고 씬 클라이언트에 스트리밍하는 클라우드 VR은 VR의 광범위한 도입을 위한 유망한 솔루션 중 하나이다. 도 1은 클라우드 VR 시스템 아키텍처를 보여준다.
그러나 이 클라우드 VR 솔루션에는 몇 가지 한계와 약점이 있다. 클라이언트/서버 기반 시스템이므로 콘텐츠 처리 및 전송을 위한 약간의 추가 지연시간(latency)이 있다. VR 시스템의 지연시간(모션-투-포톤 레이턴시(motion-to-photon latency))는 훌륭한 VR 경험과 사용자의 메스꺼움을 줄이기 위해 20ms 미만이어야 한다. 따라서 클라우드 VR에서는 전체 모션-투-포톤 레이턴시를 최소화하기 위해 실시간 컴퓨터 그래픽(Computer Graphic, CG) 렌더링 및 렌더링된 이미지의 인코딩(압축 부호화)을 극히 짧은 시간 내에 처리해야 한다.
비디오 인코딩 및 압축
일반적인 모션 추정(Motion Estimation, ME)은 모션 벡터 예측자(Motion Vector Predictor, MVP) 결정, 정수 화소 모션 탐색 및 분수 화소(하프 및 쿼터) 모션 탐색을 포함하는 세 가지 단계로 구성된다. 정수 픽셀 모션 탐색은 비디오 인코딩에서 가장 중요하고 시간이 많이 소요되는 부분이다. 탐색 범위 내의 모든 블록을 탐색하고 가장 잘 일치하는 정수 모션 벡터 위치를 찾는다. 이는 전체 인코딩 시간의 50% 이상을 차지한다. 정수 모션 탐색은 탐색 창 위치(탐색 시작점) 및 탐색 창 크기에 크게 영향을 받는다. 도 2는 비디오 인코딩에서 모션 탐색 프로세스를 보여준다.
기술적으로 탐색 창 배치는 MVP들이 얼마나 정확한지에 의해 영향을 받는다. MVP들은 움직임 추정 과정의 탐색 시작점 결정 중 하나로 사용된다. 또한 탐색 창 크기도 비디오 인코더의 성능에 큰 영향을 준다. 더 큰 창 크기로 인코딩 프로세스. 탐색 창이 큰 인코딩 프로세스는 압축률이 높지만 프로세스 시간이 오래 걸리고 CPU 작업 부하가 크며 그 반대의 경우도 마찬가지이다. 따라서 탐색 창 크기와 시작점의 결정은 움직임 추정 과정에서 인코더의 성능에 중요한 역할을 한다.
일반적인 모션 추정(ME)은 모션 벡터 예측자(MVP) 결정, 정수 화소 모션 탐색 및 분수 화소(하프 및 쿼터) 모션 탐색을 포함하는 세 가지 주요 단계로 구성된다. 정수 픽셀 모션 탐색은 비디오 인코딩에서 가장 중요하고 시간이 많이 소요되는 부분이다. 탐색 범위 내의 모든 블록을 탐색하고 가장 잘 일치하는 정수-펠 위치를 찾는다. 전체 인코딩 시간의 50% 이상을 차지한다. 정수-펠 탐색은 탐색 창 위치(탐색 시작점) 및 탐색 창 크기에 크게 영향을 받는다. 도 2는 비디오 인코딩에서 모션 탐색 프로세스를 보여준다.
기술적으로 탐색 창 배치는 MVP들이 얼마나 정확한지에 의해 영향을 받는다. MVP들은 움직임 추정 과정의 탐색 시작점 결정 중 하나로 사용된다. 또한 탐색 창 크기도 비디오 인코더의 성능에 큰 영향을 준다. 더 큰 창 크기로 인코딩 프로세스. 탐색 창이 큰 인코딩 프로세스는 압축률이 높지만 프로세스 시간이 오래 걸리고 CPU 작업 부하가 크며 그 반대의 경우도 마찬가지이다. 따라서 탐색 창 크기와 시작점의 결정은 움직임 추정 과정에서 인코더의 성능에 중요한 역할을 한다.
일반적인 모션 추정(ME)은 모션 벡터 예측자(MVP) 결정, 정수 화소 모션 탐색 및 분수 화소(하프 및 쿼터) 모션 탐색을 포함하는 세 가지 주요 단계로 구성된다. 정수 픽셀 모션 탐색은 비디오 인코딩에서 가장 중요하고 시간이 많이 소요되는 부분이다. 탐색 범위 내의 모든 블록을 탐색하고 가장 잘 일치하는 정수-펠 위치를 찾는다. 전체 인코딩 시간의 50% 이상을 차지한다. 정수-펠 탐색은 탐색 창 위치(탐색 시작점) 및 탐색 창 크기에 크게 영향을 받는다. 도 2는 비디오 인코딩에서 모션 탐색 프로세스를 보여준다.
기술적으로 탐색 창 배치는 MVP가 얼마나 정확한지에 의해 영향을 받는다. MVP는 움직임 추정 과정의 탐색 시작점 결정 중 하나로 사용된다. 또한 탐색 창 크기도 비디오 인코더의 성능에 큰 영향을 준다. 더 큰 창 크기로 인코딩 프로세스. 탐색 창이 큰 인코딩 프로세스는 압축률이 높지만 프로세스 시간이 오래 걸리고 CPU 작업 부하가 크며 그 반대의 경우도 마찬가지이다. 따라서 탐색 창 크기와 시작점의 결정은 움직임 추정 과정에서 인코더의 성능에 중요한 역할을 한다.
일반적인 모션 추정(ME)은 모션 벡터 예측자(MVP) 결정, 정수 화소 모션 탐색 및 분수 화소(하프 및 쿼터) 모션 탐색을 포함하는 세 가지 주요 단계로 구성된다. 정수 픽셀 모션 탐색은 비디오 인코딩에서 가장 중요하고 시간이 많이 소요되는 부분이다. 탐색 범위 내의 모든 블록을 탐색하고 가장 잘 일치하는 정수-펠 위치를 찾는다. 전체 인코딩 시간의 50% 이상을 차지한다. 정수-펠 탐색은 탐색 창 위치(탐색 시작점) 및 탐색 창 크기에 크게 영향을 받는다. 도 2는 비디오 인코딩에서 모션 탐색 프로세스를 보여준다.
기술적으로 탐색 창 배치는 MVP가 얼마나 정확한지에 영향을 받는다. MVP는 움직임 추정 과정의 탐색 시작점 결정에 사용된다. 또한 탐색 창 크기도 비디오 인코더의 성능에 큰 영향을 준다. 큰 탐색 창을 사용하는 인코딩 프로세스는 압축률이 높지만 프로세스 시간이 오래 걸리고 CPU 작업 부하가 크다. 따라서 탐색 창 크기와 시작점의 결정은 움직임 추정 과정에서 인코더의 성능에 중요한 역할을 한다.
하드웨어 가속 비디오 인코더
다음은 소프트웨어 기반 인코더인 x264를 기반으로 한 NVENC의 성능 향상에 대해 설명한다. 도 3은 NVENC가 x264에 비해 더 나은 성능을 보여준다. 그래프는 NVENC 성능이 느린 사전 설정(Preset)보다 빠른 사전 설정(Preset)에서 개선되는 경향을 보여준다. 그러나 NVENC의 성능은 비디오 해상도가 높아짐에 따라 크게 떨어진다. 720p 해상도의 경우 NVENC는 800FPS 이상을 생성하지만 더 큰 해상도(1080p)에서는 성능이 약 350FPS로 두 배 이상 감소한다.
반면 가상현실은 초고해상도(4K)와 90FPS 이상의 높은 FPS를 요구한다. 그래프의 추세를 기반으로 예측하면 VR에 필요한 해상도에 대해 NVENC 성능이 약 60-70FPS로 감소한다. 따라서 이것은 하드웨어 가속 비디오 인코더가 VR의 높은 사용자 경험의 최소 요구 사항을 여전히 수용할 수 없음을 증명한다.
클라우드 VR 시스템에서 고해상도 비디오 VR 콘텐츠가 필요하며 클라우드 VR에서 네트워크를 통해 전송되기 전에 인코딩되어야 한다. 인코딩 과정은 클라우드 VR에서 많은 연산 부담과 처리 시간이 소요되는 과정 중 하나이다. 비디오 인코더의 속도와 성능은 클라우드 VR 시스템의 총 지연시간을 줄이는데 매우 중요하다. 현재 압축률이 큰 비디오 인코더 솔루션이 많이 있다. 그러나 이러한 솔루션들은 여전히 매우 짧은 시간에 매우 높은 해상도의 VR 콘텐츠를 처리할 수는 없다. 따라서 클라우드 VR은 시스템의 총 지연시간을 최소화하기 위해 여전히 빠른 비디오 인코딩이 필요하다.
비디오 인코더의 성능을 개선하기 위한 한 가지 솔루션은 VR 관련 정보를 인코딩 프로세스에 활용하는 것이다. VR에서 IMU는 사용자 머리의 회전을 추적하고, 피치(Pitch), 요(Yaw) 및 롤(Roll)의 회전 운동을 측정하는 역할을 한다. 이 회전 운동 측정의 결과는 가상 세계에서 3D 개체를 변환하는 데 사용된다. 이러한 회전 운동은 사용자가 HMD(Head Mounted Display)를 움직일 때 가상 세계에서의 변화나 움직임을 만든다.
그러나 현재 IMU는 가상 세계에서 3D 개체를 변환하는 데만 사용된다. IMU에 의해 생성된 회전 운동과 생성된 VR 장면 사이에는 상관관계가 있다. 생성된 VR 장면은 클라이언트로 전송되기 전에 인코딩 및 압축되어야 한다. 따라서 VR 장면과 이를 구성하는 IMU 데이터 간의 상관관계를 활용하여 IMU를 추가 정보로 사용하여 클라우드 VR 시스템에서 비디오 인코딩 성능을 향상시킬 수 있다.
위에서 설명한 것처럼 VR 인코딩 프로세스에서 성능을 향상시킬 수 있는 몇 가지 방법이 있을 수 있다. 방향 추적에만 주로 사용되는 IMU 데이터도 인코딩 프로세스의 성능을 향상시키는 데 활용할 수 있다. 일부 불필요한 프로세스를 제거하여 계산 비용을 줄일 수 있다. 클라이언트 측에서는 IMU 데이터를 활용하여 디코딩 프로세스의 성능을 향상시킬 수 있다. 디코딩 프로세스가 인코딩 프로세스만큼 시간이 오래 걸리지는 않지만 작은 개선이라도 여전히 전체 클라우드 VR 시스템에 주목할만한 영향을 준다.
VR HMD의 IMU 데이터를 활용하여 클라우드 VR에서 비디오 인코더 및 디코더의 성능을 최적화할 수 있는 솔루션을 제안한다. 도 4는 전체 솔루션 아키텍처를 보여준다.
클라이언트 측의 VR HMD는 IMU에서 읽은 센서 판독 값과 시선 추적 데이터를 서버로 전송한다. 서버 측에서 VR 렌더러는 IMU 데이터를 기반으로 가상 세계의 VR 이미지를 생성한다. 그 후, 렌더링된 VR 이미지는 클라이언트 측으로 전송되기 전에 비디오 인코더에 의해 인코딩되고 압축된다. 논의한 바와 같이 클라우드 VR 시스템의 총 지연시간을 줄이기 위해서는 인코딩 프로세스의 성능과 속도를 높이는 것이 매우 중요하다. 본 특허에서는 IMU 데이터를 추가 정보로 활용하여 인터 예측 프로세스에서 모션 탐색의 오버헤드를 줄여 클라우드 VR에서 비디오 인코딩 속도를 향상시키는 방안을 제안한다.
비디오 인코딩 프로세스를 위한 IMU 데이터 활용은 4가지 개선 부분으로 구성된다.
1. 프레임 간 참조 픽처 선택을 결정,
2. 예측 방법 결정 (인트라 예측 또는 인터 예측),
3. 모션 탐색 시작점을 결정,
4. 모션 탐색 창 크기를 결정한다.
클라이언트 측에서는 우선 순위에 따라 비디오 프레임 블록을 수신하고 디코딩한다. 각 블록의 우선 순위는 전송되기 전에 서버 측에서 결정된다. 블록의 우선 순위는 블록이 이전 비디오 프레임에서 인코딩되었는지 여부에 따라 결정된다. 이전 비디오 프레임에서 인코딩된 적이 없는 블록은 이전에 인코딩된 다른 블록보다 높은 우선 순위를 받는다.
클라이언트 측에서 IMU 데이터 활용은 2가지 개선 부분으로 구성된다.
1. 우선순위 기반 블록 전송 및 디코딩 프로세스,
2. 비동기식 타임워프 프로세스 향상.
이 섹션에서는 발명에 대한 자세한 절차를 설명한다. 도 5는 제안된 솔루션에 대한 세부 절차를 보여준다.
인코딩 향상
방향 추정 및 센서 융합
관성 측정 장치(Inertial Measurement Unit, IMU)는 가속도계, 자이로스코프 및 자력계로 구성된 전자 센서이다. 장치의 각속도, 가속도계 및 중력을 측정한다. VR에서 IMU는 HMD의 회전 추적을 수행하는 데 사용된다. 회전 운동과 피치, 요 및 롤의 방향을 측정한다. 이 정보는 가상 세계에서 3D 개체를 변환하는 기초로 사용된다.
IMU 센서 데이터를 가상 현실에서 사용하기 전에 방향 값으로 전처리해야 한다. 자이로스코프는 초기 조건이 알려진 경우 시간이 지남에 따라 통합되어 센서의 방향을 계산할 수 있는 각속도를 측정한다. 자이로스코프 측정 오류를 통합하면 계산된 방향에 누적 오류가 발생한다. 따라서 자이로스코프만으로는 절대 방향 측정을 제공할 수 없다.
가속도계와 자력계는 각각 지구의 중력장과 자기장을 측정하여 방향의 절대 기준을 제공한다. 그러나 높은 수준의 소음에 노출될 수 있다. 예를 들어, 움직임으로 인한 가속은 측정된 중력 방향을 손상시킨다. 방향 필터의 작업은 자이로스코프, 가속도계 및 자력계 측정의 최적 융합을 통해 방향의 단일 추정치를 계산하는 것이다.
칼만 필터는 대부분의 오리엔테이션 필터 알고리즘의 기본이 되었지만 칼만 기반 솔루션은 계산 부하 및 복잡성과 관련하여 여러 가지 단점이 있다. Sebastian Madgwick은 칼만 필터 기반 접근 방식과 관련된 계산 부하 및 복잡성 문제를 해결하는 효율적인 방향 필터 알고리즘을 개발했다. 전체 알고리즘 프로세스는 도 6에서 볼 수 있다. 일반적으로 알고리즘에는 세 가지 주요 프로세스가 있다. 첫 번째 프로세스는 자이로스코프 측정 결과의 각속도(
Figure 112022033952561-pct00006
)를 활용하는 쿼터니언 미분 적분을 사용하여 방향을 계산한다. 두 번째 프로세스는 가속도계(
Figure 112022033952561-pct00007
)와 자력계(
Figure 112022033952561-pct00008
)의 측정 결과를 입력으로 결합하여 기울기 하강 알고리즘을 사용하여 방향을 추정한다. 첫 번째 및 두 번째 프로세스는 각각 지구 프레임에 대한 센서 프레임의 두 가지 방향 추정 (
Figure 112022033952561-pct00009
,
Figure 112022033952561-pct00010
)을 유도한다. 마지막으로 필터 융합 알고리즘을 사용하여 이전 두 프로세스에서 추정된 방향 결과의 융합을 통해 최적의 추정된 방향(
Figure 112022033952561-pct00011
)을 계산한다.
Madgwick 알고리즘은 3차원에서 방향의 결합된 특성을 설명하기 위해 방향의 쿼터니언 표현을 사용한다. 쿼터니언은 3차원 공간에서 능선 또는 좌표 프레임의 방향을 나타내는 데 사용할 수 있는 4차원 복소수이다. 프레임 A에 대한 프레임 B의 특정 방향은 프레임 A에 정의된 축
Figure 112022033952561-pct00012
을 중심으로 각도 θ의 회전을 통해 달성할 수 있다(도 7). 이 방향을 설명하는 쿼터니언
Figure 112022033952561-pct00013
은 수학식 1로 정의된다.
Figure 112022033952561-pct00014
오일러 각
Figure 112022033952561-pct00015
, φ 및 ψ는 프레임 A와의 정렬에서 ψ주위
Figure 112022033952561-pct00016
, θ주위
Figure 112022033952561-pct00017
Figure 112022033952561-pct00018
주위
Figure 112022033952561-pct00019
의 순차적 회전에 의해 달성되는 프레임 B의 방향을 설명한다. 이 오일러 각 표현은 수학식 2, 3 및 4로 정의된다.
Figure 112022033952561-pct00020
Figure 112022033952561-pct00021
Figure 112022033952561-pct00022
프레임 계산의 중심점
IMU 데이터는 각 VR 이미지의 식별자로 사용되며, 보다 구체적으로 VR 이미지의 중심점의 좌표 위치가 각 VR 이미지의 식별자로 사용된다. 첫째, 가상 세계의 원점을 (0, 0, r)으로 정의한다. 여기서 r은 사용자와 가상 세계 사이의 가상 거리이다. 이 원점은 도 8과 같이 설명할 수 있다.
다음 단계는 VR 이미지의 중심점을 계산하는 것이다. 이것은 수학식 5로 표현된 특정 VR 영상의 방향에서 파생된 회전 행렬로 원점 위치를 회전함으로써 수행될 수 있다. 회전 행렬
Figure 112022033952561-pct00023
은 수학식 6으로 표현된 방향 정보
Figure 112022033952561-pct00024
에서 파생될 수 있다.
Figure 112022033952561-pct00025
원점에 적용되는 회전 행렬로
Figure 112022033952561-pct00026
는 시간 t에서의 3D 좌표 위치 동안 원점에 대한 시간 t에서의 방향 정보이다.
Figure 112022033952561-pct00027
Figure 112022033952561-pct00028
,
Figure 112022033952561-pct00029
참조 픽처 선택
비디오 인코딩 과정에서 일부 픽처는 다른 픽처를 인코딩할 때 참조 픽처로 사용될 수 있다. 이 참조 픽처는 높은 코딩 효율을 위해 비디오 신호 간의 중복성을 제거하는데 매우 중요하다. VR 이미지는 HMD의 IMU 데이터를 기반으로 렌더링된다. 렌더링된 VR 이미지와 IMU 데이터 간에 강력한 상관 관계가 있어야 한다. 이를 활용하여 본 특허에서는 비디오 인코딩의 정확도와 속도를 향상시키고자 한다.
비디오 인코딩의 주요 프로세스 중 하나는 참조 픽처 선택이다. 현재 처리된 비디오 프레임이 참조로 사용할 가장 적합한 인코딩된 비디오 프레임을 선택하는 과정이다. 먼저 렌더링된 VR 이미지는 생성에 사용된 IMU 데이터를 기반으로 고유한 식별자로 표현된다. 위에서 설명한 대로 VR 이미지의 중심점을 식별자로 선택한다. 그 후, VR 이미지 중심점을 기반으로 결정된 탐색 영역 내에서 주변 인코딩된 이미지의 n개의 가장 가까운 중심점을 탐색하여 탐색 프로세스를 보다 효율적으로 만든다. 기준 좌표계의 후보를 결정하기 전에 각 기준 좌표계에서 롤 방향 구성 요소를 검증해야 한다. 롤 방향 구성 요소 유효성 검사 후에는 현재 처리된 프레임과 동일한 회전 방향을 가진 참조 프레임 후보만 남게 된다. 마지막으로 현재 처리된 프레임과 참조 프레임 후보 사이의 최소 유클리드 거리를 찾아 IMU 데이터를 기반으로 최상의 참조 프레임을 결정한다. IMU 데이터를 기반으로 한 참조 픽처 선택의 전체 프로세스는 도 9와 같이 나타내어질 수 있다.
초기에는 이미 인코딩된 비디오 프레임이 여러 개 있을 수 있다. 각 비디오 프레임은 이미 가상 세계 좌표계의 중심점과 연결되어 있다. 처리 오버헤드를 최소화하기 위해 먼저 주변 인코딩된 프레임의 중심점이 탐색 영역 내에 있는지 확인한다. 탐색 영역은 비디오 프레임의 너비와 높이의 2배로 결정된다. 도 10에 나타내어진 바와 같이 프레임 A는 현재 처리된 프레임이고 프레임 B, 프레임 C, 프레임 D는 참조 프레임으로 사용할 수 있는 인코딩된 프레임이다.
참조 화상 선택을 위한 탐색 과정은 탐색 영역 내 중심점을 갖는 주변의 인코딩된 프레임만을 처리한다. 중심점이 탐색 영역 밖에 있는 프레임은 해당 프레임과 현재 프레임 사이에 교차/중첩 영역이 없기 때문에 추가 프로세스가 필요하지 않다. 예를 들어, 도 10에서 프레임 B는 프레임 A에 대한 적절한 참조 프레임이다. 프레임 D와 프레임 C는 스캔 영역 내에 있지 않는 반면 B는 스캔 영역 내에 있기 때문이다.
또한 프레임 D의 회전 방향이 프레임 A와 다르기 때문에 프레임 D도 A에 대한 좋은 참조 프레임이 아니다. 현재 인코딩 기술은 여전히 2D 공간(x-y 축)에서 비디오 프레임의 변환만 지원한다. 그러나 롤 축의 머리 이동 유형은 비디오 프레임의 회전을 유발한다. 따라서 참조 사진 선택 과정에서 롤 방향 성분의 검증이 필요하다.
머리의 움직임 유형은 각 방향 구성 요소 자체의 값에 따라 구분할 수 있다. 예를 들어, 피치 전용 움직임은 피치(
Figure 112022033952561-pct00030
) 구성 요소만 크기만 있고 다른 구성 요소는 0이다. 이를 증명하기 위해 우리는 피치 전용 및 요 전용 움직임에 대한 방향 추적 측정을 수행하여 이러한 움직임에 롤 구성 요소 효과가 있는지 확인했다.
측정 결과인 도 11에 따르면, 피치 전용 및 요 전용 이동 모두에서 z축(롤 구성 요소)을 중심으로 작은 회전이 있음을 보여준다. 요만 움직일 때 평균 1.9도의 롤 성분이 있고 최대 14도의 회전이 발생한다. 또한 피치만 움직일 때도 z축을 중심으로 평균 4.18도 회전하며 최대 20도까지 회전한다. 이 측정의 결과는 한 방향에서 피치만 움직이는 것과 같은 머리 움직임 유형에서 다른 축에서 여전히 약간의 회전이 있음을 보여준다. 따라서 본 발명에서는 롤 구성요소에 대한 임계 값(
Figure 112022033952561-pct00031
)으로 20도를 설정한다.
이 임계 값은 참조 프레임을 현재 처리된 프레임에 대한 참조로 사용해야 하는지 여부를 결정하는 데 사용된다. 먼저, 현재 처리된 프레임과 참조 프레임 사이의 롤 성분의 차이를 계산한다. 그 후 이 값은 지정된 임계 값과 비교된다. 값이 여전히 임계 값 미만인 경우 프레임은 여전히 참조 프레임의 후보로 사용될 수 있다. 그러나 구성 요소 롤의 차이가 임계 값을 초과하는 경우 참조 프레임 후보 목록에서 참조 프레임이 제외된다.
마지막으로, 다음을 충족하는 모든 인코딩 된 프레임에 대해:
1. 프레임의 중심점이 탐색 영역 내에 있고,
2. 롤 방향 성분의 차이가 임계값 미만이고,
현재 프레임의 중심점과 인코딩된 프레임 사이의 유클리드 거리를 계산한다. 결국 선택된 참조 프레임은 유클리드 거리가 가장 작은 프레임이다.
인터 또는 인트라 예측의 조기 결정
비디오 인코딩 프로세스는 분할, 예측, 변환/양자화 및 엔트로피 인코딩을 포함하는 4개 부분으로 나눌 수 있다. 예측은 더 높은 압축률을 가능하게 하는 인접 프레임 간의 공간적(인트라) 또는 시간적(인터) 중복성을 활용하여 더 높은 압축률을 가능하게 한다.
이전 프로세스인 참조 픽처 선택은 n개의 참조 픽처 프레임을 생성한다. 이를 통해 참조 프레임에 포함된 정보를 사용하여 현재 처리할 프레임을 인코딩할 수 있다. 도 12에 따르면 인코딩에는 세 가지 방법이 있다.
(a) 완전 인터 예측 모드,
(b) 부분적으로 인터 및 부분적으로 인트라 예측 모드 및
(c) 완전 인터 예측 모드.
첫 번째 조건 (a)는 현재 처리된 프레임의 모든 부분을 포함하는 n개의 참조 프레임이 있을 때 발생한다. 따라서 현재 프레임의 모든 정보는 인터 프레임 방식을 사용하여 참조 프레임의 정보로 표현될 수 있다. 이것은 비디오 인코딩의 결과가 더 높은 압축률을 가질 수 있는 최상의 조건이다.
두 번째 조건 (b)는 프레임이 다른 프레임 예측 방법인 인터 및 인트라 예측을 사용하도록 요구한다. 이것은 참조 픽처 선택 과정에서 지정된 참조 프레임이 현재 처리할 프레임의 모든 부분을 포함할 수 없기 때문에 발생한다. 따라서 이 조건에서 커버되지 않은 부분은 인트라 모드를 사용하여 처리되고 참조 프레임에 포함된 부분은 인터 모드를 사용하여 인코딩된다.
마지막 조건 (c)는 참조 픽처 선택 과정에서 현재 프레임이 참조로 사용할 수 있는 인코딩 된 프레임을 찾지 못하기 때문에 최악의 조건이다. 이는 탐색 영역 안에 중심점이 위치하는 인코딩 된 프레임이 없기 때문에 발생할 수 있다. 롤 방향 성분의 차이가 너무 커서 기준 좌표계를 찾지 못한 것이 원인이 될 수도 있다. 따라서 현재 프레임이 인트라 모드를 사용하여 완전히 처리되도록 하므로, 낮은 압축률을 초래한다.
그러나 (a), (b) 또는 (c) 어떤 조건이 발생하든 비디오 인코딩에 IMU 데이터를 사용하여 얻을 수 있는 긍정적인 점은 프레임이 어떤 예측을 수행할지 결정하는 데 필요한 시간을 줄일 수 있다는 것이다. 기존의 비디오 인코딩 솔루션은 비디오 인코딩에 사용할 예측 모드를 결정하는 데 상당히 오랜 시간이 걸리고 상당히 큰 계산 부하가 걸린다.
모션 탐색의 시작점 결정
모션 탐색 시작점의 결정은 참조 프레임에서 참조 블록의 시작 위치를 정확하게 선택하는 것을 목적으로 하는 비디오 인코딩 과정 중 하나이다. 현재 영상 인코딩 과정에서는 주변 블록의 정보를 기반으로 움직임 탐색의 시작점을 결정한다(AMVP). 이 경우 현재 처리된 참조 블록과 선택한 참조 블록 간에 큰 상관 관계가 없기 때문에 모션 탐색의 시작점이 덜 정확할 수 있다. 비효율적인 모션 벡터 탐색 프로세스로 인해 컴퓨팅 오버헤드와 지연시간이 발생한다. 본 특허에서는 IMU 데이터와 렌더링된 VR 이미지 간의 상관 관계는 모션 탐색 프로세스에서 시작점을 결정하는 효율성을 향상시키기 위해 사용된다.
IMU 기반의 움직임 탐색 시작점 결정 과정은 도 13과 같다. 이 과정은 이전 과정(참조 픽처 선택)에서 참조 프레임을 찾은 경우에만 실행된다. 움직임 탐색의 시작점을 결정하는 것은 도 14와 같이 예시될 수 있다. 도 14에서 현재 처리된 프레임 및 참조 프레임을 개시한다. 도 14를 기반으로 겹치는 영역도 존재함을 알 수 있다. 이 중첩 영역은 움직임 예측 과정에서 참조로 사용하기에 가장 좋은 후보이다. 따라서 현재 처리 중인 프레임과 참조 프레임 간의 중첩 영역 정보로부터 모션 탐색의 시작점을 결정할 수 있다.
모션 탐색 알고리즘은 도 15와 같이 탐색 영역의 왼쪽 상단에서 오른쪽 하단으로 탐색 프로세스를 시작한다. 결정된 탐색 범위 내의 모든 블록을 반복적으로 현재 처리된 블록과 모든 블록을 탐색 영역에 넣습니다. 최소 SAD(Sum of absolute Difference)를 갖는 블록은 현재 처리된 블록을 인코딩하기 위한 모션 벡터 예측자(Predictor)로 선택된다. 이를 바탕으로 우리가 제안하는 솔루션은 참조 프레임과 현재 처리 중인 프레임 간의 중첩 영역의 왼쪽 상단 지점을 계산하여 모션 탐색의 시작점을 결정한다.
중첩 영역의 왼쪽 위 위치를 계산할 때 x 및 y 축 구성 요소를 분리한다. 도 14에서 중첩 영역의 x 및 y 성분은 각각
Figure 112022033952561-pct00032
Figure 112022033952561-pct00033
로 표시된다. 현재 비디오 프레임의 중심점(
Figure 112022033952561-pct00034
,
Figure 112022033952561-pct00035
)과 참조 비디오 프레임의 중심점(
Figure 112022033952561-pct00036
,
Figure 112022033952561-pct00037
)도 중첩 영역의 왼쪽 상단 위치를 도출하는 데 사용된다. 현재 및 참조 프레임 위치 및 x-y 축 구성 요소를 기반으로 계산을 4가지 경우로 나눈다:
X축 구성요소
(1) 현재 좌표계가 참조 좌표계보다 오른쪽에 위치한다 (
Figure 112022033952561-pct00038
).
예: 비디오 프레임의 너비가 1280이라고 가정한다. 현재 프레임과 참조 프레임의 중심점은 (800, Y)와 (0, Y)이다. 이 예는 도 16(a)와 같이 설명할 수 있다.
Figure 112022033952561-pct00039
Figure 112022033952561-pct00040
에서 비디오 프레임 너비의 절반을 뺀 값이다. 따라서 이 예에서는
Figure 112022033952561-pct00041
=160(=800-640)이 된다.
(2) 현재 좌표계가 기준 좌표계보다 왼쪽에 위치한다 (
Figure 112022033952561-pct00042
).
예: 비디오 프레임의 너비가 1280이라고 가정한다. 현재 프레임과 참조 프레임의 중심점은 (0, Y) 및 (800, Y)이다. 이 예는 도 16(b)와 같이 설명할 수 있다.
Figure 112022033952561-pct00043
Figure 112022033952561-pct00044
에서 비디오 프레임 너비의 절반을 뺀 값이다.
Y축 구성요소
(3) 현재 프레임이 참조 프레임보다 위쪽에 있다 (
Figure 112022033952561-pct00045
).
예: 비디오 프레임의 높이가 640이라고 가정한다. 현재 프레임과 참조 프레임의 중심점은 (X,500)과 (X,0)이다. 이 예는 도 17(a)와 같이 설명할 수 있다.
Figure 112022033952561-pct00046
Figure 112022033952561-pct00047
에 비디오 프레임 높이의 절반을 더한 값이다. 따라서 이 예에서는
Figure 112022033952561-pct00048
=320=(0+320)이 된다.
(4) 현재 좌표계는 기준 좌표계보다 아래에 있다 (
Figure 112022033952561-pct00049
).
예: 비디오 프레임의 높이가 640이라고 가정한다. 현재 프레임과 참조 프레임의 중심점은 (X,0) 및 (X,500)이다. 이 예는 도 17(b)와 같이 설명할 수 있다.
Figure 112022033952561-pct00050
Figure 112022033952561-pct00051
에 비디오 프레임 높이의 절반을 더한 값이다.
설명한 바와 같이 모션 탐색 시작점은 참조 프레임과 현재 프레임이 겹치는 영역의 왼쪽 상단이다. 이전 예제를 기반으로 x축 및 y축에 대해 각각 수학식 7과 수학식 8을 사용하여 겹치는 영역의 왼쪽 상단 위치를 계산할 수 있다. 다음은 수학식 7과 수학식 8에 대한 설명이다.
-
Figure 112022033952561-pct00052
Figure 112022033952561-pct00053
: 현재 비디오 프레임 중심점의 좌표 위치
-
Figure 112022033952561-pct00054
Figure 112022033952561-pct00055
: 기준 비디오 프레임 중심점의 좌표 위치
- 너비: 비디오 프레임 크기의 너비
- 높이: 비디오 프레임 크기의 높이
-
Figure 112022033952561-pct00056
Figure 112022033952561-pct00057
: 모션 탐색 시작점의 좌표 위치
Figure 112022033952561-pct00058
Figure 112022033952561-pct00059
모션 탐색 창 크기 결정
모션 탐색 알고리즘은 도 18과 같이 모션 추정을 위해 일련의 디지털 비디오 프레임에서 일치하는 블록을 찾는 방법이다. 이것은 비디오 시퀀스에서 시간적 중복성을 발견하는 데 사용할 수 있어 프레임 간 비디오 압축의 효율성을 높일 수 있다. 이 알고리즘은 비디오의 현재 프레임을 블록으로 나누고 각 블록을 이전 프레임의 탐색 영역 내의 참조 블록들과 비교하는 작업을 포함한다. 탐색 영역이 클수록 잠재적인 모션과 좋은 일치를 찾을 가능성이 커진다. 그러나 모든 잠재적 블록에 대해 전체 탐색을 수행하는 것은 계산 비용이 많이 드는 작업이다.
더 큰 탐색 영역은 더 작은 탐색 영역에 비해 확실히 더 정확한 결과를 제공한다. 그러나 모든 경우에 넓은 탐색 영역이 필요한 것은 아니다. 프레임 간에 모션의 움직임이 큰 경우, 큰 탐색 영역이 필요할 수 있다. 그러나 반대로 큰 변화가 거의 없거나 전혀 없는 프레임의 경우 큰 탐색 영역을 필요로 하지 않는다. 가상 현실의 경우 큰 움직임은 더 나은 결과를 얻기 위해 더 큰 탐색 영역이 필요할 수 있지만 움직임이 작거나 없는 경우에는 계산 비용이 많이 드는 문제로 인해 큰 탐색 영역을 사용하지 않는 것이 좋습니다. 따라서 움직임 추정 과정에서 화면 변화에 따른 동적 탐색 범위를 활용하면 인코딩 과정을 보다 효율적으로 할 수 있다.
기본적으로 탐색 창 크기의 결정은 현재 처리된 프레임과 참조 프레임 사이의 중첩 영역을 기반으로 한다. 도 19에서 참조 프레임과 현재 프레임 사이의 중첩 영역의 크기는 x축과 y축에 대해 각각
Figure 112022033952561-pct00060
Figure 112022033952561-pct00061
로 표시됨을 알 수 있다. 이전 단계에서는 현재 프레임과 참조 프레임 간의 IMU 차이를 기반으로 시작점을 결정했다. 이를 기반으로 수학식 9 및 10과 같이 움직임 벡터 탐색 윈도우 크기(
Figure 112022033952561-pct00062
Figure 112022033952561-pct00063
)를 도출하여 결정할 수 있다. 도 19는 탐색 윈도우 크기를 결정하는 예이다. 그 예에는 다음과 같은 정보가 있다.
- 비디오 프레임의 크기(너비, 높이) = (1280, 720)
- 현재 프레임의 중심점(
Figure 112022033952561-pct00064
,
Figure 112022033952561-pct00065
) = (960, 360)
- 기준 좌표계의 중심점(
Figure 112022033952561-pct00066
,
Figure 112022033952561-pct00067
) = (0, 0)
- 모션 탐색 시작점 (
Figure 112022033952561-pct00068
,
Figure 112022033952561-pct00069
) = (320, 360)
이 정보에서 우리는 현재 프레임이 참조 프레임의 위쪽에 있고 더 오른쪽에 있다는 것을 압니다. 따라서
Figure 112022033952561-pct00070
Figure 112022033952561-pct00071
는 다음과 같이 계산할 수 있다.
Figure 112022033952561-pct00072
현재 비디오 인코딩 표준은 정사각형 탐색 창 영역만 지원하므로
Figure 112022033952561-pct00073
Figure 112022033952561-pct00074
를 얻은 후 이 값 사이의 최대값을 취하여 탐색 창 크기를 결정한다. 따라서 위의 예에서 탐색 창 크기 값은 360이 된다.
Figure 112022033952561-pct00075
Figure 112022033952561-pct00076
디코딩 향상
앞서 언급했듯이 클라우드 VR에서는 비디오 압축이 중요하다. VR 콘텐츠는 클라이언트로 전송되기 전에 최대한 효율적으로 압축해야 한다. 비디오를 클라이언트로 보내기 전에 서버에서 압축하는 프로세스를 인코딩이라고 한다. 한편, 클라이언트 측에서 수신한 영상을 사용자에게 보여주기 전에 압축을 푸는 과정을 디코딩이라고 한다.
제한된 대역폭으로 인해 비디오 압축은 VR 시스템에서 매우 중요하다. 그것은 많은 컴퓨팅 리소스를 소비하고 서버와 클라이언트 모두에 매우 큰 컴퓨팅 부담을 준다. 따라서 VR 시스템을 개선하기 위해서는 비디오 압축의 개선과 향상이 필요하다.
이전 섹션에서 설명했듯이 VR 비디오 인코딩 프로세스에서 성능을 향상시키는 몇 가지 방법이 있다. 방향 추적에만 주로 사용되는 IMU 데이터도 인코딩 프로세스의 성능을 향상시키는 데 활용할 수 있다. 일부 불필요한 프로세스를 제거하여 계산 비용을 줄이다. 이 접근 방식을 기반으로 IMU 데이터를 활용하여 디코딩 프로세스의 성능을 향상시키는 것도 제안한다. 디코딩 프로세스가 인코딩 프로세스만큼 연산이 복잡하지는 않지만 작은 개선 방안들은 여전히 전체 VR 시스템 성능에 큰 영향을 미친다.
우선 순위 기반 블록 전송 큐잉
IMU를 사용하여 디코딩 프로세스를 향상시키기 위한 주요 아이디어는 우선 순위 기반 디코딩 방법이다. 그것은 단순히 이전에 인코딩된 적이 없는 비디오 프레임에 더 많은 우선 순위를 부여한다. 먼저 인접한 CTU(코딩 트리 유닛)를 블록이라는 그룹으로 클러스터링한다. 그 후 모든 블록은 우선 순위가 높은 블록 또는 우선 순위가 낮은 블록으로 분류된다. 높은 우선 순위 블록은 이전에 인코딩된 적이 없는 블록이다. 반대로, 낮은 우선순위 블록은 이전에 인코딩된 적이 있는 블록이며, 이는 현재 처리된 프레임과 이전 인코딩된 프레임 사이의 중첩 영역임을 의미한다.
블록을 분류하려면 이전에 접근 방식으로 현재 및 이전 인코딩 된 프레임 사이의 중첩 영역을 결정해야 한다. 그 결과 해당 프레임 사이에 겹치는 영역이 생긴다. 그런 다음 중첩 영역 내에 있는 블록은 낮은 우선 순위 블록으로 분류되고 외부 영역은 높은 우선 순위 블록으로 분류된다. 이 두 블록 범주의 차이점은 도 20에서 시각적으로 쉽게 설명할 수 있다.
블록을 분류한 후 우선 순위가 높은 블록은 우선 순위가 낮은 블록보다 먼저 클라이언트로 전송 및 디코딩될 수 있다. 따라서 비디오 프레임의 모든 블록은 도 21에 표시된 큐의 순서에 따라 클라이언트로 전송될 수 있다. 도 21의 위쪽 부분은 우선 순위가 높은 블록과 낮은 우선 순위 블록 간의 차이 영역을 보여준다. 그런 다음 디코딩을 위해 클라이언트에 보내기 전에 전송 큐에 매핑된다.
낮은 우선 순위 블록보다 높은 우선 순위 블록을 보내는 이유는 네트워크 대기 시간과 관련이 있다. 매우 나쁜 네트워크 상태에서 클라이언트는 렌더링할 모든 블록 정보를 수신하지 못할 수 있다. 이런 일이 발생하면 클라이언트 측에서 전혀 디코딩되지 않았던 우선 순위가 높은 블록을 손실하는 경우 매우 위험하다. 이는 클라이언트가 이 정보에 대한 별도의 단서가 없음을 의미한다. 높은 우선 순위 블록과 달리 낮은 우선 순위 블록은 이전에 이미 디코딩된 적이 있다. 블록이 렌더링 시간에 도착하지 않았더라도 디코더는 이전에 디코딩된 프레임을 사용하여 이 누락된 블록의 정보를 복구할 수 있다. 이 문제와 해결 방법에 대한 자세한 내용은 다음 장에서 설명한다.
실제 FoV 계산
클라우드 VR의 프로세스로 인한 지연시간(Dt)은 서버에서 비디오 프레임 인코딩을 처리하는 데 사용되는 모션 데이터(IMUt-Dt)와 비디오 프레임이 사용자에게 표시될 때 모션 데이터(IMUt) 간의 차이에 영향을 준다. 이러한 모션 데이터의 차이로 인해 VR HMD에 표시되어야 하는 시야(Field of View, FoV)가 이동한다. VR 사용자가 느끼는 멀미를 예방하거나 줄이기 위해 이러한 전환이 필요하다.
이러한 FoV 전환은 비디오 프레임에서 블록의 디코딩 우선 순위를 결정하기 위한 고려 사항으로 사용될 수 있다. 도 22를 기반으로, 프로세스 시작 시에 클라이언트는 IMUt-Dt 정보 모션 데이터를 서버로 전송하여 VR 비디오 인코딩의 기반으로 사용할 수 있다. IMUt-Dt 데이터는 인코딩 된 전송되는 비디오 프레임과 연결된다. 클라이언트 측에서 비디오 프레임을 수신한 후 가장 먼저 하는 일은 비디오 프레임의 모션 데이터 값(IMUt-Dt)과 현재 VR HMD에서 읽은 최신 모션 데이터(IMUt)를 비교하는 것이다.
그런 다음 IMUt-Dt와 IMUt 간의 차이를 계산하여 서버 측 인코딩 결과의 원래 FoVt-Dt와 현재 IMU 센서 판독 값의 실제 FoVt 결과 사이의 중첩 영역을 찾는다. 중첩 영역의 결정은 비디오 프레임의 각 블록의 디코딩 우선 순위를 결정하기 위한 기초 역할을 한다. 중첩 영역 내부의 블록은 우선 순위가 높은 디코딩 블록으로 설정되고, 이 영역 외부의 블록은 낮은 우선 순위로 지정된다. 이 결정의 이유는 중첩 영역에 포함된 블록이 사용자에게 표시 및 렌더링되는 실제 FoV의 블록이기 때문이다.
이전에 디코딩된 블록 재사용 제한
오늘날의 디코더 알고리즘은 비디오의 시간적 중복성으로부터 엄청난 이점을 얻는다. 그러나 중복적인 참조 픽처를 지속적으로 사용하는 것도 좋은 방법이 아니다. 장기간 또는 상당히 동적인 비디오 시퀀스에서는 이 방법을 사용하는 것이 적절하지 않다.
예를 들어, 도 23에서 (t) 시점의 여러 비디오 프레임 블록은 (t-1)의 비디오 프레임에 포함된 블록의 시간적 중복성을 활용한다. (t)의 비디오 프레임의 블록 F, G, H는 (t-1)의 비디오 프레임에서 이전에 디코딩되지 않은 블록을 나타냅니다. 이전에 디코딩되지 않은 블록은 디코딩 프로세스가 이전 프레임의 시간적 중복성을 활용하지 않는 블록, 즉 독립 블록들이다. F, G, H 블록은 이전 비디오 프레임에 의존하지 않는 독립 블록들이기 때문에 이러한 경우는 허용된다.
한편, (t)의 비디오 프레임의 K, L, M 블록은 (t-1) 시점의 비디오 프레임의 K, L, M 블록을 참조하며, 여기서 블록은 이전의 (t-2) 시점의 K, L, M 블록도 참조한다. 짧은 시간 동안 이 방법의 효과는 그다지 눈에 띄지 않지만, 오랜 시간 동안 또는 매우 역동적인 변화가 있는 비디오 장면에서 이 방법은 변경되어야 하는 비디오 블록 영역의 비가용성에 영향을 미친다. 이것은 비디오 프레임의 블록이 여전히 이전 비디오 프레임의 동일한 정보를 사용하기 때문에 발생한다. 이것은 좋지 않은 사용자 경험을 초래한다.
이러한 사실을 바탕으로 본 명세서에서 제안하는 솔루션은 비디오 프레임에서 각 블록의 우선 순위 디코딩을 설정하여 시간적 중복성의 연속 사용을 제한하는 것이다. 도 23에서 블록은 높은 우선순위 블록과 낮은 우선순위 블록의 2가지 그룹으로 분류된다. 높은 우선 순위 블록은 특정 블록에 대한 참조로 사용할 수 있는 이전 비디오 프레임이 없기 때문에 미리 처리되도록 우선 순위가 지정된 블록이다. 낮은 우선 순위 블록은 이전에 디코딩된 비디오 프레임에 대한 참조 블록이 존재하는 블록이다.
(t) 시점의 비디오 프레임에서 F, G, H, 블록 및 K, L, M의 블록은 실제로 이전 비디오 프레임을 참조할 수 있는 블록이다. 따라서 이러한 블록은 우선 순위가 낮은 블록으로 분류될 수 있다. 그러나 K, L, M 블록을 보면 이 블록의 참조 (t-1의 비디오 프레임)도 이전 참조 블록 (t-2의 비디오 프레임)을 사용한다. 이 장의 시작 부분에서 설명한 것처럼 임시 중복성을 지속적으로 사용하는 것은 적절하지 않다. 따라서, (t)의 비디오 프레임의 블록 K, L, M은 높은 우선순위 블록으로 지정되어 이러한 블록이 이전에 디코딩된 비디오 프레임의 블록을 참조하는 것을 방지한다.
블록 기반 비동기 시간 왜곡
이상적으로 렌더링 엔진은 이미지가 화면에 표시되기 직전에 측정된 IMU 데이터를 사용하여 이미지를 렌더링한다. 그러나 렌더링 엔진의 연산에 시간이 걸리므로, 실제로 이미지가 화면에 표시되기 몇 밀리초 전에 발생한 포즈에 기반하여 렌더링이 된다. 이 몇 밀리초 동안 머리가 움직이면 실제 포즈 발생 시점보다 약간 지연되는 이미지가 표시된다.
시간 왜곡(Time Warping, TW)은 렌더 엔진이 머리 회전 판독을 수행한 시간과 시간 왜곡이 시작되는 시간 사이에 머리가 얼마나 더 회전했는지에 따라 이미지를 변환한다. 렌더 엔진이 이미지를 렌더링한 다음 렌더가 완료되면 결과 이미지에 시간 왜곡이 적용된다. 그러나 렌더 엔진이 프레임 간의 고정된 차이 시간보다 더 많은 렌더링 시간을 소요할 가능성이 있다. 이 문제는 비동기 시간 왜곡(Asynchronous Time Warping, ATW)라고 하는 다른 버전의 시간 왜곡으로 처리할 수 있다. ATW는 사용 가능한 마지막 프레임을 가져와서 시간 왜곡을 적용한다. 렌더러가 제 시간에 완료되지 않은 경우 ATW는 이전 프레임을 가져와서 시간 왜곡을 적용한 후 디스플레이 한다. 매우 이전의 프레임을 활용하면 그 사이 헤드가 더 많이 회전할 수 있으므로 더 큰 이동이 필요하다.
ATW에서는 이전 프레임에 포함되지 않은 화면의 일부가 비어 있을 가능성이 있다. 이것은 ATW가 실제 현재 이미지 프레임에 대한 추가 계산 없이 단순히 이전 화면을 이동만 하기 때문에 발생한다. 현재 실제 비디오 프레임의 정보를 사용하는 대신 ATW 시스템은 단순히 이를 버리고 이전 비디오 프레임을 사용하여 위치만을 변경하여 표시한다. 이 섹션에서는 우선 순위 기반 블록 디코딩 접근 방식을 사용하여 이 ATW의 파생 문제를 해결하려고 한다.
도 24에 도시된 바와 같이, 비디오 프레임은 우선순위가 높은 블록과 우선 순위가 낮은 블록의 두 가지 블록으로 구성된다. 이전 섹션에서 설명했듯이 이전에 디코딩된 프레임에 포함되지 않은 높은 우선순위 블록이 클라이언트 측에 더 빨리 도착하여 처리되도록 하는 비디오 전송 큐를 제안했다. 도착한 이 높은 우선 순위 블록은 ATW에서 화면의 빈 부분을 생성하는 데 사용할 수 있다.
도 25는 블록 기반 비동기 시간 왜곡 메커니즘이 작동하는 방식을 보여준다. Vsync(t-1) 이전에 모든 것이 정상이고 네트워크 상태가 양호하고 전송된 모든 비디오 프레임 블록이 클라이언트 측에서 잘 수신되고 처리되었다. 그러나 이후 원치 않는 이벤트가 발생한다 (Vsync(t)). 네트워크 품질이 저하되어 비디오 프레임의 블록 수신이 지연된다. 이 조건은 비디오 프레임을 디코딩하고 렌더링하는 과정에서 지연을 초래한다. 이 원치 않는 이벤트는 클라우드 VR 시스템의 서비스 품질을 유지하기 위해 수행될 비동기 시간 왜곡(ATW) 프로세스를 트리거한다.
사용자에게 아무 것도 표시하지 않는 대신 ATW는 현재 사용자 머리 자세 IMU 데이터를 기반으로 이전에 디코딩된 비디오 프레임을 활용하여 그 차이만큼 이동한다. 결과 이미지는 매우 짧은 시간 내에 클라이언트 VR 디스플레이에 즉시 렌더링된다. 사용자가 많이 움직이면 이전 비디오 프레임의 IMU 데이터와 현재 IMU 데이터의 차이가 매우 커서 이전 이미지로부터 더 큰 이동 작업이 필요하다. 이전 이미지에 대해 더 크게 이동하면 이전 이미지에 해당 정보가 포함되어 있지 않기 때문에 화면에 외곽에 일부 빈 공간이 생성된다. 본 특허의 블록 기반 ATW는 이러한 시나리오가 발생하지 않도록 한다.
일반 ATW와 달리 블록 기반 ATW는 우선 순위가 높은 블록을 먼저 수신하여 처리한다. 이러한 우선 순위가 높은 블록은 ATW의 공백 공간에 표시되어야 할 비디오 정보를 보유하고 있기 때문에 ATW를 개선하는 데 활용된다. 도 22에서 우선 순위가 높은 블록이 먼저 수신되고 처리되는 것을 볼 수 있다. 이 블록은 이전 비디오 프레임에 존재하지 않는 정보를 보유한다. 사용자에게 이미지를 표시하는 데 기준 시간이 초과되는 경우 ATW가 수행되고 ATW의 결과인 공백 자리는 수신된 우선 순위가 높은 블록을 구성하여 채워진다. 모든 높은 우선 순위 블록이 Vsync 시간에 도착하지 않았을 가능성이 있지만 ATW로 발생하는 공백 공간은 이미 도착한 우선 순의 블록들의 수만큼 줄어든다. 따라서 블록 기반 비동기 타임워프는 일반 ATW에 비해 성능과 이점이 더 좋다.

Claims (18)

  1. 클라우드 VR(Virtual Reality) 영상의 인코딩 가속 방법에 있어서,
    현재 프레임의 중심점을 상기 현재 프레임의 식별자로 획득하고, 상기 현재 프레임의 중심점은 IMU(Inertial Measurement Unit)의 센서 데이터에 따라 결정되고,
    상기 현재 프레임의 중심점을 기초로 상기 현재 프레임의 인코딩을 위한 참조 프레임 후보를 구성하는 단계;
    상기 참조 프레임 후보의 회전 방향과 상기 현재 프레임의 회전 방향을 기초로 상기 참조 프레임 후보 중 특정 참조 프레임을 선택하는 단계, 상기 현재 프레임의 회전 방향은 상기 IMU의 센서 데이터에 따라 결정되고;
    상기 특정 참조 프레임에 포함된 정보에 기초하여 상기 현재 프레임을 인코딩하기 위한 예측 모드를 선택하는 단계; 및
    상기 선택된 예측 모드에 기초하여 상기 현재 프레임을 인코딩하는 단계를 포함하는 것을 특징으로 하는 방법.
  2. 제 1항에 있어서,
    상기 IMU는 가속도계, 자이로스코프 및 자력계를 포함하는 것을 특징으로 하는 방법.
  3. 삭제
  4. 제 1항에 있어서,
    상기 특정 참조 프레임은 상기 참조 프레임 후보 중 상기 현재 프레임으로부터 최소 유클리드 거리를 갖는 프레임인 것을 특징으로 하는 방법.
  5. 제 4항에 있어서,
    상기 특정 참조 프레임의 롤(Roll)과 상기 현재 프레임의 롤 간의 차이는 기 설정된 임계 값보다 작은 것을 특징으로 하는 방법.
  6. 제 1항에 있어서,
    상기 참조 프레임 후보는 탐색 영역 내의 중심점을 가지는 하나 이상의 프레임으로 구성되고,
    상기 탐색 영역은 상기 현재 프레임의 높이의 2배 및 상기 현재 프레임의 너비의 2배에 해당하는 것을 특징으로 하는 방법.
  7. 제 1항에 있어서,
    상기 특정 참조 프레임에 포함된 정보에 기초하여 상기 현재 프레임을 인코딩하기 위한 예측 모드를 선택하는 단계는,
    상기 현재 프레임의 특정 현재 블록에 대응하는 상기 특정 참조 프레임의 특정 참조 블록을 선택하는 단계;
    상기 특정 참조 블록의 움직임 벡터에 기초하여 상기 특정 현재 블록을 인코딩하는 단계를 포함하는 것을 특징으로 하는 방법.
  8. 제 7항에 있어서,
    상기 특정 참조 블록은 상기 현재 프레임과 상기 특정 참조 프레임 사이의 중첩 영역의 블록들 중 하나인 것을 특징으로 하는 방법.
  9. 제 8항에 있어서,
    상기 특정 참조 블록은 상기 중첩 영역의 블록들의 SAD(Sum of Absolute Difference) 중 가장 작은 SAD를 가진 블록이고,
    상기 SAD는 상기 중첩 영역의 블록들 중 왼쪽 상단 블록으로부터 계산되는 것을 특징으로 하는 방법.
  10. 클라우드 VR(Virtual Reality) 영상의 인코딩 가속 방법을 수행하는 인코딩 가속 장치에 있어서, 상기 가속 장치는,
    프로세서를 포함하고,
    상기 프로세서는,
    현재 프레임의 중심점을 상기 현재 프레임의 식별자로 획득하고, 상기 현재 프레임의 중심점은 IMU(Inertial Measurement Unit)의 센서 데이터에 따라 결정되고,
    상기 현재 프레임의 중심점을 기초로 상기 현재 프레임의 인코딩을 위한 참조 프레임 후보를 구성하고,
    상기 참조 프레임 후보의 회전 방향과 상기 현재 프레임의 회전 방향을 기초로 상기 참조 프레임 후보 중 특정 참조 프레임을 선택하고, 상기 현재 프레임의 회전 방향은 상기 IMU의 센서 데이터에 따라 결정되고,
    상기 특정 참조 프레임에 포함된 정보에 기초하여 상기 현재 프레임을 인코딩하기 위한 예측 모드를 선택하고,
    상기 선택된 예측 모드에 기초하여 상기 현재 프레임을 인코딩하는 것을 특징으로 하는 장치.
  11. 제 10항에 있어서,
    상기 IMU는 가속도계, 자이로스코프 및 자력계를 포함하는 것을 특징으로 하는 장치.
  12. 삭제
  13. 제 10항에 있어서,
    상기 특정 참조 프레임은 상기 참조 프레임 후보 중 상기 현재 프레임으로부터 최소 유클리드 거리를 갖는 프레임인 것을 특징으로 하는 장치.
  14. 제 13항에 있어서,
    상기 특정 참조 프레임의 롤(Roll)과 상기 현재 프레임의 롤 간의 차이는 기 설정된 임계 값보다 작은 것을 특징으로 하는 장치.
  15. 제 10항에 있어서,
    상기 참조 프레임 후보는 탐색 영역 내의 중심점을 가지는 하나 이상의 프레임으로 구성되고,
    상기 탐색 영역은 상기 현재 프레임의 높이의 2배 및 상기 현재 프레임의 너비의 2배에 해당하는 것을 특징으로 하는 장치.
  16. 제 10항에 있어서,
    상기 프로세서는,
    상기 현재 프레임의 특정 현재 블록에 대응하는 상기 특정 참조 프레임 특정 참조 블록을 선택하고,
    상기 특정 참조 블록의 움직임 벡터에 기초하여 상기 특정 현재 블록을 인코딩하는 것을 특징으로 하는 장치.
  17. 제 16항에 있어서,
    상기 특정 참조 블록은 상기 현재 프레임과 상기 특정 참조 프레임 사이의 중첩 영역의 블록들 중 하나인 것을 특징으로 하는 장치.
  18. 제 17항에 있어서,
    상기 특정 참조 블록은 상기 중첩 영역의 블록들의 SAD(Sum of Absolute Difference)중 가장 작은 SAD를 가진 블록이고,
    상기 SAD는 중첩 영역의 블록 중 왼쪽 상단 블록으로부터 계산되는 것을 특징으로 하는 장치.
KR1020227010529A 2019-09-04 2020-09-03 클라우드 가상 현실을 위한 imu 센서 데이터를 활용한 비디오 인코딩 및 디코딩 가속 방법 및 장치 KR102476057B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
KR1020190109782 2019-09-04
KR20190109782 2019-09-04
PCT/KR2020/011875 WO2021045536A1 (en) 2019-09-04 2020-09-03 Video encoding and decoding acceleration utilizing imu sensor data for cloud virtual reality

Publications (2)

Publication Number Publication Date
KR20220044879A KR20220044879A (ko) 2022-04-11
KR102476057B1 true KR102476057B1 (ko) 2022-12-09

Family

ID=74852847

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227010529A KR102476057B1 (ko) 2019-09-04 2020-09-03 클라우드 가상 현실을 위한 imu 센서 데이터를 활용한 비디오 인코딩 및 디코딩 가속 방법 및 장치

Country Status (3)

Country Link
US (2) US11546582B2 (ko)
KR (1) KR102476057B1 (ko)
WO (1) WO2021045536A1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020256308A1 (ko) * 2019-06-21 2020-12-24 엘지전자 주식회사 포인트 클라우드 데이터 처리 장치 및 방법
WO2021045536A1 (en) 2019-09-04 2021-03-11 Wilus Institute Of Standards And Technology Inc. Video encoding and decoding acceleration utilizing imu sensor data for cloud virtual reality
JPWO2021070952A1 (ko) * 2019-10-09 2021-04-15
CN112911294A (zh) * 2021-03-22 2021-06-04 杭州灵伴科技有限公司 一种使用imu数据的视频编码、解码方法,xr设备和计算机存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170374385A1 (en) * 2016-06-27 2017-12-28 Mediatek Inc. Method and Apparatus of Inter Coding for VR Video Using Virtual Reference Frames
US20180332301A1 (en) * 2017-05-15 2018-11-15 Peking University Method, apparatus, and system for deep feature coding and decoding
US20190087978A1 (en) * 2017-09-18 2019-03-21 Apple Inc. Point cloud compression using non-cubic projections and masks

Family Cites Families (59)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6474159B1 (en) * 2000-04-21 2002-11-05 Intersense, Inc. Motion-tracking
US20060056511A1 (en) * 2004-08-27 2006-03-16 University Of Victoria Innovation And Development Corporation Flexible polygon motion estimating method and system
CN102075760B (zh) * 2010-10-27 2012-11-21 无锡中星微电子有限公司 快速运动估计方法及装置
US9609347B2 (en) * 2013-04-04 2017-03-28 Qualcomm Incorporated Advanced merge mode for three-dimensional (3D) video coding
KR20150002974A (ko) * 2013-06-28 2015-01-08 주식회사 웨이브엠 스마트폰 센서를 이용한 동영상 압축 방법
EP3143774A4 (en) * 2014-05-13 2018-04-25 PCP VR Inc. Method, system and apparatus for generation and playback of virtual reality multimedia
US10192133B2 (en) * 2015-06-22 2019-01-29 Seiko Epson Corporation Marker, method of detecting position and pose of marker, and computer program
WO2017060423A1 (en) * 2015-10-08 2017-04-13 Koninklijke Kpn N.V. Enhancing a region of interest in video frames of a video stream
EP3378221B1 (en) * 2015-11-16 2022-01-12 Google LLC Stabilization based on accelerometer data
CA3005894A1 (en) * 2015-11-20 2017-05-26 Magic Leap, Inc. Methods and systems for large-scale determination of rgbd camera poses
US20170214937A1 (en) * 2016-01-22 2017-07-27 Mediatek Inc. Apparatus of Inter Prediction for Spherical Images and Cubic Images
US10645362B2 (en) * 2016-04-11 2020-05-05 Gopro, Inc. Systems, methods and apparatus for compressing video content
WO2018002882A1 (en) * 2016-06-30 2018-01-04 Nokia Technologies Oy Method and apparatus for rotation and switching of video content
EP3301928A1 (en) * 2016-09-30 2018-04-04 Thomson Licensing Methods, devices and stream to encode global rotation motion compensated images
EP3301915A1 (en) * 2016-09-30 2018-04-04 Thomson Licensing Method and apparatus for omnidirectional video coding with adaptive intra most probable modes
EP3301931A1 (en) * 2016-09-30 2018-04-04 Thomson Licensing Method and apparatus for omnidirectional video coding with adaptive intra prediction
KR102317776B1 (ko) * 2016-10-05 2021-10-25 매직 립, 인코포레이티드 표면 모델링 시스템들 및 방법들
WO2018083378A1 (en) * 2016-11-01 2018-05-11 Nokia Technologies Oy An apparatus, a method and a computer program for video coding and decoding
US10560678B2 (en) * 2016-11-09 2020-02-11 Mediatek Inc. Method and apparatus having video encoding function with syntax element signaling of rotation information of content-oriented rotation applied to 360-degree image content or 360-degree video content represented in projection format and associated method and apparatus having video decoding function
US10832378B2 (en) * 2016-11-17 2020-11-10 Intel Corporation Spherical rotation for encoding wide view video
BR112019007279A2 (pt) * 2016-11-17 2019-07-09 Intel Corp indicação de janela de visualização sugerida para vídeo panorâmico
US10863198B2 (en) * 2017-01-03 2020-12-08 Lg Electronics Inc. Intra-prediction method and device in image coding system for 360-degree video
EP3566445A4 (en) * 2017-01-03 2020-09-02 Nokia Technologies Oy APPARATUS, PROCESS AND COMPUTER PROGRAM FOR VIDEO CODING AND DECODING
US10371530B2 (en) * 2017-01-04 2019-08-06 Qualcomm Incorporated Systems and methods for using a global positioning system velocity in visual-inertial odometry
US10600155B2 (en) * 2017-02-09 2020-03-24 Verizon Patent And Licensing Inc. Generating virtual reality content based on corrections to stitching errors
US20180262774A1 (en) * 2017-03-09 2018-09-13 Mediatek Inc. Video processing apparatus using one or both of reference frame re-rotation and content-oriented rotation selection and associated video processing method
US20180364048A1 (en) * 2017-06-20 2018-12-20 Idhl Holdings, Inc. Methods, architectures, apparatuses, systems directed to device position tracking
US20210337202A1 (en) * 2017-06-21 2021-10-28 Vid Scale, Inc. Adaptive quantization method for 360-degree video coding
US10893256B2 (en) * 2017-06-26 2021-01-12 Nokia Technologies Oy Apparatus, a method and a computer program for omnidirectional video
CN110870317B (zh) * 2017-06-30 2023-05-23 Vid拓展公司 用于对360度视频内容进行编码的方法和装置
US10484682B2 (en) * 2017-07-03 2019-11-19 Qualcomm Incorporated Reference picture derivation and motion compensation for 360-degree video coding
US20190014326A1 (en) * 2017-07-06 2019-01-10 Intel Corporation Imu enhanced reference list management and encoding
JP6771435B2 (ja) * 2017-07-20 2020-10-21 株式会社ソニー・インタラクティブエンタテインメント 情報処理装置および位置情報取得方法
EP3432581A1 (en) * 2017-07-21 2019-01-23 Thomson Licensing Methods, devices and stream for encoding and decoding volumetric video
US20190045213A1 (en) * 2017-08-03 2019-02-07 Intel Corporation Reference frame reprojection for improved video coding
JP6721550B2 (ja) * 2017-08-04 2020-07-15 株式会社ソニー・インタラクティブエンタテインメント 情報処理装置および位置情報取得方法
US20190045212A1 (en) * 2017-08-07 2019-02-07 The Regents Of The University Of California METHOD AND APPARATUS FOR PREDICTIVE CODING OF 360º VIDEO
US20190082183A1 (en) * 2017-09-13 2019-03-14 Mediatek Inc. Method and Apparatus for Video Coding of VR images with Inactive Areas
US10897269B2 (en) * 2017-09-14 2021-01-19 Apple Inc. Hierarchical point cloud compression
US10861196B2 (en) * 2017-09-14 2020-12-08 Apple Inc. Point cloud compression
US10909725B2 (en) * 2017-09-18 2021-02-02 Apple Inc. Point cloud compression
KR102642418B1 (ko) * 2017-11-16 2024-03-04 삼성전자주식회사 3차원 영상을 처리하는 방법 및 장치
US10607373B2 (en) * 2017-11-22 2020-03-31 Apple Inc. Point cloud compression with closed-loop color conversion
JP6704893B2 (ja) * 2017-11-30 2020-06-03 キヤノン株式会社 固体撮像装置、撮像システム、および固体撮像装置の駆動方法
US10764605B2 (en) * 2018-02-14 2020-09-01 Qualcomm Incorporated Intra prediction for 360-degree video
EP3542877A1 (en) * 2018-03-20 2019-09-25 InterDigital CE Patent Holdings Optimized content sharing interaction using a mixed reality environment
US10867414B2 (en) * 2018-04-10 2020-12-15 Apple Inc. Point cloud attribute transfer algorithm
US11010928B2 (en) * 2018-04-10 2021-05-18 Apple Inc. Adaptive distance based point cloud compression
US10909727B2 (en) * 2018-04-10 2021-02-02 Apple Inc. Hierarchical point cloud compression with smoothing
EP3554074A1 (en) * 2018-04-13 2019-10-16 Thomson Licensing Methods and apparatus for depth encoding and decoding
US11044478B2 (en) * 2018-07-02 2021-06-22 Apple Inc. Compression with multi-level encoding
US11012713B2 (en) * 2018-07-12 2021-05-18 Apple Inc. Bit stream structure for compressed point cloud data
US20200045288A1 (en) * 2018-07-31 2020-02-06 Intel Corporation Six degree of freedom video transcoding mechanism
US11454710B2 (en) * 2019-01-08 2022-09-27 Apple Inc. Point cloud compression using a space filling curve for level of detail generation
US10931972B2 (en) * 2019-01-24 2021-02-23 Dell Products, L.P. Forward channel contextual error concealment and sync for virtual, augmented, or mixed reality (XR) content in connectivity-constrained environments
US10768695B2 (en) * 2019-02-01 2020-09-08 Facebook Technologies, Llc Artificial reality system having adaptive degrees of freedom (DOF) selection
CN111526362B (zh) * 2019-02-01 2023-12-29 华为技术有限公司 帧间预测方法和装置
US10802579B2 (en) * 2019-02-01 2020-10-13 Facebook Technologies, Llc Artificial reality system having multiple modes of engagement
WO2021045536A1 (en) 2019-09-04 2021-03-11 Wilus Institute Of Standards And Technology Inc. Video encoding and decoding acceleration utilizing imu sensor data for cloud virtual reality

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170374385A1 (en) * 2016-06-27 2017-12-28 Mediatek Inc. Method and Apparatus of Inter Coding for VR Video Using Virtual Reference Frames
US20180332301A1 (en) * 2017-05-15 2018-11-15 Peking University Method, apparatus, and system for deep feature coding and decoding
US20190087978A1 (en) * 2017-09-18 2019-03-21 Apple Inc. Point cloud compression using non-cubic projections and masks

Also Published As

Publication number Publication date
KR20220044879A (ko) 2022-04-11
US20220232209A1 (en) 2022-07-21
WO2021045536A1 (en) 2021-03-11
US11792392B2 (en) 2023-10-17
US11546582B2 (en) 2023-01-03
US20220182605A1 (en) 2022-06-09

Similar Documents

Publication Publication Date Title
KR102476057B1 (ko) 클라우드 가상 현실을 위한 imu 센서 데이터를 활용한 비디오 인코딩 및 디코딩 가속 방법 및 장치
US11132818B2 (en) Predicting attributes for point cloud compression according to a space filling curve
US11120837B2 (en) System and method for use in playing back panorama video content
US20220174252A1 (en) Selective culling of multi-dimensional data sets
US9773333B2 (en) Information processing device, information processing method, and program
EP1638338B1 (en) Video evaluation device, frame rate determination device, video process device, video evaluation method, and video evaluation program
US8913664B2 (en) Three-dimensional motion mapping for cloud gaming
EP3043320B1 (en) System and method for compression of 3d computer graphics
CN110322542B (zh) 重建真实世界3d场景的视图
US8331435B2 (en) Compression system, program and method
US20140092439A1 (en) Encoding images using a 3d mesh of polygons and corresponding textures
WO2018064331A1 (en) Streaming volumetric video for six degrees of freedom virtual reality
WO2017181074A1 (en) Efficient streaming of virtual reality content
EP3731528A1 (en) Image processing device, content processing device, content processing system, and image processing method
CN109074152A (zh) 一种虚拟现实图像发送方法及装置
US20030112327A1 (en) Camera information coding/decoding method for synthesizing stereoscopic real video and a computer graphic image
JP2008252651A (ja) 動きベクトル探索プログラム、情報記憶媒体、動きベクトル探索装置、及び、ネットワークシステム
JP2006518157A (ja) オブジェクトベースの動き補償の方法及び装置
Guan et al. MetaStream: Live Volumetric Content Capture, Creation, Delivery, and Rendering in Real Time
WO2016186782A1 (en) Video encoding and decoding
US20190014326A1 (en) Imu enhanced reference list management and encoding
CN111417016A (zh) 一种姿态估计方法、服务器和网络设备
CN117135358A (zh) 视频编码方法、视频解码方法及相关装置
CN115668953A (zh) 使用边缘计算服务的图像内容传输方法和设备
EP4202611A1 (en) Rendering a virtual object in spatial alignment with a pose of an electronic device

Legal Events

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