Processing

Please wait...

Settings

Settings

Goto Application

1. WO2020111474 - IMAGE PROCESSING METHOD, IMAGE REPRODUCING METHOD, AND APPARATUSES THEREFOR

Document

명세서

발명의 명칭

기술분야

1  

배경기술

2   3  

발명의 상세한 설명

과제 해결 수단

4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22  

도면의 간단한 설명

23   24   25   26   27   28   29   30  

발명의 실시를 위한 최선의 형태

31   32   33   34   35   36   37   38   39   40   41   42   43   44   45   46   47   48   49   50   51   52   53   54   55   56   57   58   59   60   61   62   63   64   65   66   67   68   69   70   71   72   73   74   75   76   77   78   79   80   81   82   83   84   85   86   87   88   89   90   91   92   93   94   95   96   97   98   99   100   101   102   103   104   105   106  

청구범위

1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19  

도면

1   2   3   4   5   6   7   8  

명세서

발명의 명칭 : 영상을 처리하는 방법, 영상을 재생하는 방법 및 그 장치들

기술분야

[1]
아래 실시예들은 영상을 처리하는 방법, 영상을 재생하는 방법 및 그 장치들에 관한 것이다.

배경기술

[2]
스트리밍(Streaming)을 제공하기 위하여 사용자 시점에 기반하는 방법과 컨텐츠에 기반한 방법이 이용될 수 있다. 사용자 시점에 기반하는 방법은 사용자가 바라보는 영역, 다시 말해 사용자의 시점에 대응하는 영역만을 고품질로 인코딩하여 스트리밍하는 방법이다. 사용자 시점에 기반하는 방법에서는 사용자가 시점을 갑자기 바꿀 경우, 화질 변화의 레이턴시(Latency)가 발생할 수 있다. 또한, 사용자 시점에 기반하는 방법에서 하나의 콘텐츠를 시점 별로 다르게 멀티 인코딩을 수행하는 경우, 영상의 용량 및 계산 과부하가 발생할 수 있다.
[3]
컨텐츠에 기반하는 방법은 이미지의 중요도를 기반으로 영상의 각 그리드(grid)의 넓이를 최적화하여 스트리밍하는 방법이다. 컨텐츠에 기반하는 방법에서는 이미지의 중요도를 산출하고, 각 그리드의 넓이를 최적화하는 데에 많은 시간이 소요될 수 있다.

발명의 상세한 설명

과제 해결 수단

[4]
일 측에 따르면, 영상을 처리하는 방법은 복수의 프레임들을 포함하는 제1 영상을 수신하는 단계; 상기 복수의 프레임들에 포함된 적어도 하나의 영역의 중요도를 지시하는 중요도 정보를 획득하는 단계; 상기 중요도 정보에 기초하여 상기 제1 영상의 적어도 하나의 영역을 위한 그리드(grid)의 축(axis)들을 결정하는 단계; 상기 그리드의 축들에 기초하여 상기 제1 영상을 인코딩하여, 제2 영상을 생성하는 단계; 및 상기 제2 영상 및 상기 그리드의 축들에 관한 정보를 출력하는 단계를 포함한다.
[5]
상기 그리드의 축들을 결정하는 단계는 상기 중요도 정보에 기초하여, 상기 적어도 하나의 영역의 해상도가 유지되고, 상기 적어도 하나의 영역을 제외한 나머지 영역의 해상도가 다운 샘플링(down-sampling) 되도록, 상기 그리드의 축들을 결정하는 단계를 포함할 수 있다.
[6]
상기 그리드의 축들을 결정하는 단계는 미리 설정된 영상의 타겟 용량을 기초로, 상기 제1 영상의 복수의 프레임들에 포함된 적어도 하나의 영역을 위한 그리드의 개수 및 그리드의 타겟 해상도 중 적어도 하나를 설정함으로써 상기 그리드의 축들을 결정하는 단계를 포함할 수 있다.
[7]
상기 그리드의 축들을 결정하는 단계는 상기 제1 영상의 소스 해상도를 상기 그리드의 타겟 해상도에 대응하는 제1 영역의 제1 해상도로 결정함으로써 상기 그리드의 축들을 결정하는 단계; 상기 제1 영역을 제외한 나머지 제2 영역의 해상도가 상기 제1 해상도보다 낮은 제2 해상도로 다운 샘플링을 되도록 상기 그리드의 축들을 결정하는 단계; 및 상기 제1 영역에 인접한 제3 영역들의 해상도가 상기 제1 해상도로부터 상기 제2 해상도까지 점진적으로 변화되는 제3 해상도들로 다운 샘플링되도록 상기 그리드의 축들을 결정하는 단계 중 적어도 하나를 포함할 수 있다.
[8]
상기 제2 해상도는 상기 미리 설정된 영상의 타겟 용량에 기초하여 결정될 수 있다.
[9]
상기 그리드의 축들을 결정하는 단계는 상기 그리드에 포함된 컬럼의 크기 및 로우의 크기를 결정하는 단계를 포함할 수 있다.
[10]
상기 컬럼의 크기 및 로우의 크기를 결정하는 단계는 상기 중요도 정보에 의하여 지시되는 중요도가 미리 설정된 기준에 비해 높은 영역일수록 해당하는 영역을 위한 컬럼의 크기 및 로우의 크기 중 적어도 하나를 증가시키는 단계를 포함할 수 있다.
[11]
상기 제2 영상을 생성하는 단계는 상기 그리드의 축들에 기초하여 상기 제1 영상을 복수의 영역들로 구분하는 단계; 및 상기 복수의 영역들의 크기에 따라 상기 제1 영상의 정보를 샘플링하는 단계를 포함할 수 있다.
[12]
상기 출력하는 단계는 상기 그리드의 축들에 관한 정보를 시각적으로 인코딩하는 단계; 및 상기 시각적으로 인코딩된 정보와 상기 제2 영상을 결합하여 출력하는 단계를 포함할 수 있다.
[13]
상기 중요도 정보를 획득하는 단계는 상기 제1 영상을 모니터링하는 제작자 단말로부터, 상기 제1 영상의 각 프레임의 적어도 하나의 영역에 대응하여 설정된 상기 중요도 정보를 수신하는 단계; 및 미리 학습된 신경망에 의해 상기 제1 영상의 각 프레임의 적어도 하나의 영역에 대응하여 실시간으로 결정된 중요도 정보를 수신하는 단계 중 적어도 하나를 포함할 수 있다.
[14]
상기 제1 영상은 360도 가상 현실 라이브 스트리밍 컨텐츠를 포함할 수 있다.
[15]
상기 영상을 처리하는 방법은 상기 제2 영상 및 상기 그리드의 축들에 관한 정보를 클라우드 저장소(Cloud storage)에 저장하는 단계를 더 포함할 수 있다.
[16]
일 측에 따르면, 영상을 재생하는 방법은 복수의 해상도를 포함하는 복수의 영역들을 가지는 영상을 획득하는 단계; 상기 복수의 영역들을 구분하는 그리드의 축들에 관한 정보를 획득하는 단계; 상기 그리드의 축들에 대한 정보에 기초하여 상기 영상을 재생하는 단계를 포함한다.
[17]
상기 그리드의 축들에 대한 정보는 상기 그리드에 포함된 컬럼의 크기 및 로우의 크기를 포함할 수 있다.
[18]
상기 영상을 디코딩하는 단계는 상기 영상으로부터, 상기 영상의 적어도 하나의 영역에 대응하는 상기 그리드의 축들에 대한 정보를 추출하는 단계를 포함할 수 있다.
[19]
상기 영상을 재생하는 단계는 상기 영상 및 상기 그리드의 축들에 대한 정보에 기초하여, 상기 복수의 영역들을 렌더링하는 단계를 포함할 수 있다.
[20]
상기 영상을 재생하는 단계는 상기 렌더링된 복수의 영역들 중 재생 카메라의 현재 시점에 대응하는 적어도 일부의 영역을 재생하는 단계를 더 포함할 수 있다.
[21]
일 측에 따르면, 영상 처리 장치는 복수의 프레임들을 포함하는 제1 영상을 수신하는 통신 인터페이스; 및 상기 복수의 프레임들에 포함된 적어도 하나의 영역의 중요도를 지시하는 중요도 정보를 획득하고, 상기 중요도 정보에 기초하여 상기 제1 영상의 적어도 하나의 영역을 위한 그리드의 축들을 결정하며, 상기 그리드의 축들에 기초하여 상기 제1 영상을 인코딩하여, 제2 영상을 생성하는 프로세서를 포함하고, 상기 통신 인터페이스는 상기 제2 영상 및 상기 그리드의 축들에 관한 정보를 출력한다.
[22]
일 측에 따르면, 영상 재생 장치는 복수의 해상도를 포함하는 복수의 영역들을 가지는 영상을 획득하는 통신 인터페이스; 및 상기 복수의 영역들을 구분하는 그리드의 축들에 관한 정보를 획득하고, 상기 그리드의 축들에 대한 정보에 기초하여 상기 영상을 재생하는 프로세서를 포함한다.

도면의 간단한 설명

[23]
도 1은 일 실시예에 따른 영상을 처리하는 방법을 설명하기 위한 도면.
[24]
도 2는 일 실시예에 따른 영상을 처리하는 방법을 나타낸 흐름도.
[25]
도 3은 일 실시예에 따라 중요도 정보를 획득하는 방법을 설명하기 위한 도면.
[26]
도 4는 일 실시예에 따라 제2 영상을 생성하는 방법을 설명하기 위한 도면.
[27]
도 5는 일 실시예에 따른 영상을 재생하는 방법을 설명하기 위한 도면.
[28]
도 6은 일 실시예에 따른 영상을 재생하는 방법을 나타낸 흐름도.
[29]
도 7은 일 실시예에 따른 영상 처리 시스템의 구성을 설명하기 위한 도면.
[30]
도 8은 일 실시예에 따른 영상 처리 장치 또는 영상 재생 장치의 블록도.

발명의 실시를 위한 최선의 형태

[31]
본 명세서에서 개시되어 있는 특정한 구조적 또는 기능적 설명들은 단지 기술적 개념에 따른 실시예들을 설명하기 위한 목적으로 예시된 것으로서, 실시예들은 다양한 다른 형태로 실시될 수 있으며 본 명세서에 설명된 실시예들에 한정되지 않는다.
[32]
제1 또는 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 이런 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 이해되어야 한다. 예를 들어 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소는 제1 구성요소로도 명명될 수 있다.
[33]
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 표현들, 예를 들어 "~간의에"와 "바로~간의에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
[34]
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함으로 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
[35]
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 해당 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
[36]
[37]
도 1은 일 실시예에 따른 영상을 처리하는 방법을 설명하기 위한 도면이다. 도 1을 참조하면, 일 실시예에 따른 영상을 처리하는 장치(이하, '영상 처리 장치')(130)는 예를 들어, 모니터링 서버(110) 또는 제작자 단말(120)로부터 중요도 정보(103)를 획득할 수 있다. 여기서, 중요도 정보는 원본 영상(101)의 복수의 프레임들에 포함된 영역(들)의 중요도를 지시하는 정보일 수 있다. 중요도 정보(103)는 원본 영상(101)의 각 프레임의 적어도 하나의 영역에 대응하여 설정될 수 있다. 중요도 정보는 마스킹(masking) 혹은 히트맵(heatmap) 등 다양한 형태로 표현될 수 있다. 중요도 정보(103)는 예를 들어, 원본 영상(101)의 복수의 프레임들에 포함된 적어도 하나의 영역의 중요도 이외에도, 복수의 프레임들 중 적어도 하나 영역을 포함하는 프레임의 재생 시점, 적어도 하나의 영역에 포함된 정점들(vertices)의 개수, 적어도 하나의 영역에 대응하는 마스크(mask)의 번호 등을 더 포함할 수 있다.
[38]
중요도 정보(103)는 예를 들어, 원본 영상(101)을 모니터링하는 모니터링 서버(110)를 통해 설정될 수도 있고, 제작자 단말(120)에 의해 설정될 수도 있다. 제작자는 예를 들어, 아래의 도 3과 같이 제작자 단말(120)에게 제공되는 모니터링 어플리케이션을 통해 원본 영상(101)에 대한 중요도 정보(103)를 설정할 수 있다. 또는 모니터링 서버(110)는 미리 학습된 신경망에 의해 원본 영상(101)에 대하여 자동으로 중요도 정보(103)를 설정할 수 있다. 원본 영상(101)이 라이브 영상인 경우, 모니터링 서버(110)는 중요도 정보(103)를 실시간으로 생성할 수도 있다. 신경망은 예를 들어, 많은 시청자들이 관람한 시청자들의 시점을 기준으로 원본 영상(101)에서 중요도가 높은 영역, 다시 말해 중요 영역을 인식하도록 미리 학습된 신경망일 수 있다. 또는 신경망은 예를 들어, 원본 영상(101)에 포함된 관객을 제외한 공연자, 공연 무대 등과 같이 중요도가 높은 영역을 인식하도록 미리 학습된 신경망일 수 있다. 신경망은 예를 들어, 컨볼루션 레이어(Convolution Layer)를 포함하는 심층 신경망(Deep Neural Network)일 수도 있다.
[39]
원본 영상(101)은 다양한 스트리밍 프로토콜(streaming protocol)을 통해 송출된 360도 컨텐츠 영상일 수 있다. 스트리밍 프로토콜은 오디오, 비디오 및 기타 데이터 등을 인터넷을 통해 스트리밍하는 데에 이용되는 프로토콜로서, 예를 들어, 리얼 타임 메시징 프로토콜(Real Time Messaging Protocol; RTMP)이나 HLS 등을 포함할 수 있다. 원본 영상(101)은 예를 들어, 폭(w) x 높이(h)의 크기를 갖는 영상일 수 있다. 이때, 폭(w)은 전체 컬럼(column)들이 폭 방향으로 차지하는 크기에 해당하고, 높이(h)는 전체 로우(row)들이 높이 방향으로 차지하는 크기에 해당할 수 있다. 이하, 설명의 편의를 위해 원본 영상(101)은 '제1 영상'이라 부를 수 있다.
[40]
영상 처리 장치(130)는 통신 인터페이스(131)를 통해 원본 영상(101) 및 중요도 정보(103)를 수신할 수 있다. 영상 처리 장치(130)는 중요도 정보(103)에 기초하여 원본 영상(101)의 적어도 하나의 영역의 크기를 결정할 수 있다. 영상 처리 장치(130)는 그리드(140)에 해당하는 중요 영역의 해상도가 유지되고, 중요 영역을 제외한 나머지 영역의 해상도는 다운 샘플링(down-sampling) 되도록 그리드의 축들을 결정할 수 있다.
[41]
영상 처리 장치(130)는 예를 들어, 중요도 정보(103)에 기초하여 원본 영상(101)의 적어도 하나의 영역을 위한 그리드(grid)의 축(axis)들을 결정함으로써 적어도 하나의 영역의 크기를 최적화할 수 있다. 최적화 과정에서, 영상 처리 장치는 각 프레임에 그리드(140)를 생성할 수 있다. 영상 처리 장치(130)는 예를 들어, 미리 설정된 영상의 타겟 용량을 기초로, 그리드(140)의 각 행과 각 열의 단위로 적어도 하나의 영역의 중요도에 따른 최적의 넓이 값을 산출할 수 있다.
[42]
영상 처리 장치(130)는 그리드의 축들에 대한 정보에 기초하여 원본 영상(101)을 인코딩(encoding)함으로써 라이브 스트리밍 서비스를 위한 영상(105)을 생성할 수 있다. 이때, 그리드의 축들에 대한 정보는 그리드(140)에 포함된 컬럼의 크기 및 로우의 크기를 대한 정보를 포함할 수 있다. 영상(105)은 예를 들어, 폭(w') x 높이(h')의 크기를 갖는 영상일 수 있다. 이하, 설명의 편의를 위해 스트리밍 서비스를 위한 영상(105)은 '제2 영상'이라 부를 수 있다. 스트리밍 서비스는 실시간(live) 방송을 위한 스트리밍 서비스와 VOD 재생을 위한 스트리밍 서비스를 포함할 수 있다. 이하, 설명의 편의를 위한 라이브 스트리밍 서비스를 가정한다.
[43]
영상 처리 장치(130)는 영상(105) 및 그리드의 축들에 대한 정보를 출력할 수 있다. 이때, 그리드의 축들에 대한 정보는 컬러 인코딩(color encoding)되어 영상(105)에 포함 될 수 있다. 영상 처리 장치(130)는 예를 들어, 라이브 스트리밍 서비스를 제공하는 서비스 서버(도 7의 서비스 서버(710) 참조)일 수 있다.
[44]
일 실시예에 따른 영상 처리 장치(130)는 전술한 그리드의 축들에 대한 정보를 통해 각 그리드의 넓이를 결정하는 데에 소요되는 시간을 줄이는 한편, 중요 영역의 해상도는 유지하되, 중요 영역을 제외한 나머지 영역의 해상도는 낮춤으로써 영상 컨텐츠의 전체 용량을 줄여 컨텐츠에 기반한 스트리밍 서비스를 실시간으로 제공할 수 있다.
[45]
[46]
도 2는 일 실시예에 따른 영상을 처리하는 방법을 나타낸 흐름도이다. 도 2를 참조하면, 일 실시예에 따른 영상을 처리하는 장치(이하, '영상 처리 장치')는 복수의 프레임들을 포함하는 제1 영상을 수신한다(210). 제1 영상은 예를 들어, 라이브 스트림 프로토콜을 통해 송출된 360도 영상일 수 있다.
[47]
영상 처리 장치는 복수의 프레임들에 포함된 적어도 하나의 영역의 중요도를 지시하는 중요도 정보를 획득한다(220). 여기서, 적어도 하나의 영역의 중요도는 예를 들어, 제1 영상 내 복수의 프레임들 각각에 대응하는 영역의 픽셀들의 이미지 그래디언트(image gradient), 각 영역에서의 에지(edge) 검출 여부, 각 영역에 포함된 정점들(또는 특징점들)의 개수, 및 각 영역에서의 객체(예를 들어, 사람, 동물, 자동차 등)의 검출 여부 등에 기초하여 결정될 수 있다.
[48]
예를 들어, 제1 영상 내 적어도 하나의 영역의 픽셀들의 이미지 그래디언트가 미리 정해진 기준보다 크거나 같은 경우, 적어도 하나의 영역의 중요도는 높게 결정될 수 있다. 또는 제1 영상 내 적어도 하나의 영역의 픽셀들의 이미지 그래디언트가 미리 정해진 기준보다 작은 경우, 적어도 하나의 영역의 중요도는 낮게 결정될 수 있다.
[49]
예를 들어, 제1 영상 내 적어도 하나의 영역이 에지에 해당하는 경우, 적어도 하나의 영역의 중요도는 높게 결정될 수 있다. 제1 영역 내 적어도 하나의 영역이 에지에 해당하지 않는 경우, 적어도 하나의 영역의 중요도는 낮게 결정될 수 있다. 또는 예를 들어, 제1 영상 내 적어도 하나의 영역이 객체(예를 들어, 사람, 물건 등)에 해당하는 경우, 적어도 하나의 영역의 중요도는 높게 결정될 수 있다. 적어도 하나의 영역의 중요도는 예를 들어, 0 에서 1 또는 0에서 10 사이의 값을 가질 수 있다.
[50]
영상 처리 장치는 예를 들어, 제1 영상을 모니터링하는 제작자 단말로부터, 제1 영상의 각 프레임의 적어도 하나의 영역에 대응하여 설정된 중요도 정보를 수신할 수 있다. 또는 영상 처리 장치는 미리 학습된 신경망에 의해 제1 영상의 각 프레임의 적어도 하나의 영역에 대응하여 실시간으로 결정된 중요도 정보를 수신할 수 있다. 영상 처리 장치가 제작자 단말로부터 중요도 정보를 획득하는 방법은 아래의 도 3을 참조하여 구체적으로 설명한다.
[51]
영상 처리 장치는 중요도 정보에 기초하여 제1 영상의 적어도 하나의 영역을 위한 그리드의 축들을 결정한다(230). 영상 처리 장치는 중요도 정보에 기초하여, 적어도 하나의 영역의 해상도가 유지되고, 적어도 하나의 영역을 제외한 나머지 영역의 해상도가 다운 샘플링 되도록, 그리드의 축들을 결정할 수 있다. 영상 처리 장치는 그리드에 포함된 컬럼의 크기 및 로우의 크기를 결정할 수 있다. 영상 처리 장치는 예를 들어, 중요도 정보에 의하여 지시되는 중요도가 미리 설정된 기준에 비해 높은 영역일수록 해당하는 영역을 위한 컬럼의 크기 및 로우의 크기 중 적어도 하나를 증가시킬 수 있다. 또는 영상 처리 장치는 예를 들어, 중요도 정보에 의하여 지시되는 중요도가 미리 설정된 기준에 비해 낮은 영역일수록 해당하는 영역을 위한 컬럼의 크기 및 로우의 크기 중 적어도 하나를 감소시킬 수 있다.
[52]
영상 처리 장치는 예를 들어, 미리 설정된 영상의 타겟 용량을 기초로, 제1 영상의 복수의 프레임들에 포함된 적어도 하나의 영역을 위한 그리드의 개수 및 그리드의 타겟 해상도 중 적어도 하나를 설정함으로써 그리드의 축들을 결정할 수 있다. 예를 들어, 영상의 타겟 용량이 720Mbyte라고 하자. 영상 처리 장치는 중요 영역을 위한 그리드(들)의 개수, 해당 그리드(들)의 타겟 해상도 및 해당 그리드(들)을 제외한 나머지 영역의 해상도에 따른 영상의 총 용량이 타겟 용량인 720Mbyte를 초과하지 않도록 그리드의 축들을 결정할 수 있다.
[53]
단계(230)에서, 영상 처리 장치는 제1 영상의 소스 해상도, 다시 말해 원본 영상의 해상도를 그리드에 대응하는 제1 영역의 제1 해상도로 결정함으로써 그리드의 축들을 결정할 수 있다. 또는 영상 처리 장치는 제1 영역을 제외한 나머지 제2 영역의 해상도가 제1 해상도보다 낮은 제2 해상도로 다운 샘플링을 되도록 그리드의 축들을 결정할 수 있다. 이때, 제2 해상도는 미리 설정된 영상의 타겟 용량에 기초하여 결정될 수 있다. 예를 들어, 미리 설정된 영상의 타겟 용량에서 제1 영역으로 인한 용량을 제외한 나머지 용량에 기초하여, 제2 해상도가 결정될 수 있다.
[54]
이 밖에도, 영상 처리 장치는 제1 영역에 인접한 제3 영역들의 해상도가 제1 해상도로부터 제2 해상도까지 점진적으로 변화되는 제3 해상도들로 다운 샘플링되도록 그리드의 축들을 결정할 수 있다.
[55]
영상 처리 장치는 그리드의 축들에 기초하여 제1 영상을 인코딩하여, 제2 영상을 생성한다(240). 영상 처리 장치는 그리드의 축들에 기초하여 제1 영상을 복수의 영역들로 구분할 수 있다. 영상 처리 장치는 복수의 영역들의 크기에 따라 제1 영상의 정보를 샘플링하여 제2 영상을 생성할 수 있다. 영상 처리 장치는 미리 설정된 코덱(codec)으로 제1 영상을 인코딩하여 제2 영상을 생성할 수 있다. 영상 처리 장치가 제2 영상을 생성하는 방법은 아래의 도 4를 참조하여 구체적으로 설명한다.
[56]
영상 처리 장치는 제2 영상 및 그리드의 축들에 관한 정보를 출력한다(250). 영상 처리 장치는 그리드의 축들에 관한 정보를 시각적으로 인코딩할 수 있다. 영상 처리 장치는 시각적으로 인코딩된 정보와 제2 영상을 결합하여 출력할 수 있다. 영상 처리 장치는 예를 들어, 그리드의 축들에 대한 정보를 제2 영상에 컬러 인코딩하여 출력할 수 있다. 실시예들에 따라, 그리드의 축들에 관한 정보를 인코딩하는 방식 및 출력(혹은 전송)하는 방식은 다양하게 변형될 수 있다.
[57]
영상 처리 장치는 제2 영상 및 그리드의 축들에 관한 정보를 예를 들어, 클라우드 저장소(Cloud storage)에 저장할 수 있다.
[58]
[59]
도 3은 일 실시예에 따라 중요도 정보를 획득하는 방법을 설명하기 위한 도면이다. 도 3을 참조하면, 중요도 정보를 설정하기 위해 모니터링 어플리케이션을 통해 제작자 단말에게 제공되는 화면(300)이 도시된다.
[60]
화면(300)에는 원본 영상(예를 들어, 원본 비디오 스트림)(310)이 제공될 수 있다. 제작자는 원본 비디오 스트림을 생중계하면서 중요 영역에 마스크(mask)를 지정함으로써 적어도 하나의 영역의 중요도를 지시하는 중요도 정보를 영상 처리 장치에게 제공할 수 있다. 제작자는 예를 들어, 원본 영상(310)에 대한 마우스 클릭(mouse click) 및/또는 드래깅(dragging) 등의 동작을 통해 적어도 하나의 영역에 대해 마스크를 설정할 수 있다. 제작자에게 제공되는 모니터링 어플리케이션은 사용자 인터페이스(340)를 통해 원본 영상(310)에 대한 실시간 모니터링, 중요도 마스트 생성 및 편집 기능 등을 제공할 수 있다.
[61]
원본 영상(310)에는 예를 들어, 구형 모델(Sphere-shaped model)의 표면(surface)을 복수의 다각형들로 분할하는 메쉬(mesh)의 정점들(315)이 함께 표시될 수 있다. 이때, 분할된 복수의 다각형들의 면적은 동일할 수 있다.
[62]
제작자는 예를 들어, 사용자 인터페이스(340)를 통해 원본 영상(310)에 두 개의 마스크들(320, 330)을 지정할 수 있다. 또한, 제작자는 사용자 인터페이스(340)를 통해 두 개의 마스크들(320, 330)에 대응하는 영역들 각각의 중요도, 두 개의 마스크들(320, 330)을 포함하는 프레임의 제생 시점, 두 개의 마스크들(320, 330)에 대응하는 영역들 각각에 포함된 정점들(vertices)의 개수, 및/또는 적어도 하나의 영역에 대응하는 마스크의 번호 등을 설정할 수 있다. 전술한 영역들 각각의 중요도, 영역들을 포함하는 프레임의 재생 시점, 영역들 각각에 포함된 정점들의 개수, 및/또는 영역들 각각에 대응하는 마스크의 번호 등은 중요도 정보로서 영상 처리 장치에게 제공될 수 있다.
[63]
[64]
도 4는 일 실시예에 따라 제2 영상을 생성하는 방법을 설명하기 위한 도면이다. 도 4의 (a)를 참조하면, 일 실시예에 따른 영상 처리 장치가 제1 영상(410)의 중요 영역(415)을 위하여 결정한 그리드의 축에 기초하여 생성된 제2 영상(430)이 도시된다.
[65]
영상 처리 장치는 각 영상 프레임에 그리드를 생성할 수 있다. 영상 처리 장치는 예를 들어, 미리 설정된 제2 영상(430)의 타겟 용량을 기초로, 그리드의 각 행과 각 열의 단위로 해당 영역의 중요도에 따른 넓이 값을 산출할 수 있다. 영상 처리 장치는 그리드에 해당하는 중요 영역(415)의 해상도가 유지되고, 중요 영역(415)을 제외한 나머지 영역의 해상도는 다운 샘플링 되도록 그리드의 축들을 결정할 수 있다.
[66]
보다 구체적으로, 영상 처리 장치는 중요도 정보에 기초하여, 제1 영상(410)의 중요 영역(예를 들어, 제1 영역(415))의 제1 해상도가 다른 영역의 제2 해상도보다 높아지도록, 그리드에 포함된 컬럼의 크기 및 로우의 크기를 결정할 수 있다.
[67]
예를 들어, 영상 처리 장치는 중요도 정보에 기초하여, 제1 영상(410)의 중요 영역(예를 들어, 제1 영역(415))의 제1 해상도가 제1 영상의 소스 해상도와 동일하게 유지되고, 제1 영역(415)을 제외한 나머지 영역(예를 들어, 제2 영역)의 제2 해상도가 다운 샘플링 되도록, 그리드에 포함된 컬럼의 크기 및 로우의 크기를 결정할 수 있다.
[68]
이에 따라, 제2 영상(430)에서 제1 영상(410)의 제1 영역(415)에 대응하는 영역의 해상도는 제1 영상의 소스 해상도와 동일한 제1 해상도로 유지되는 반면, 제2 영상(430)에서 제1 영역(415)을 제외한 나머지 영역(예를 들어, 제2 영역)에 대응하는 영역의 해상도는 제1 해상도 보다 낮은 제2 해상도로 설정될 수 있다.
[69]
영상 처리 장치는 전술한 바와 같이 중요 영역(415)을 위하여 결정한 그리드의 축에 기초하여 제1 영상(410)을 실시간으로 워핑(warping)하여 제2 영상(430)을 생성할 수 있다.
[70]
도 4의 (b)를 참조하면, 일 실시예에 따른 영상 처리 장치가 제1 영상(410)의 중요 영역(415)을 위하여 결정한 그리드의 축에 기초하여 생성된 제2 영상(450)이 도시된다.
[71]
영상 처리 장치는 중요도 정보에 기초하여, 제1 영상(410)의 중요 영역(예를 들어, 제1 영역(415))의 제1 해상도가 제1 영상(410)의 소스 해상도와 동일하게 유지되고, 제1 영역(415)에 인접한 제3 영역들의 해상도가 제1 해상도로부터 제2 해상도까지 점진적으로 변화되는 제3 해상도들로 다운 샘플링되도록 그리드에 포함된 컬럼의 크기 및 로우의 크기를 결정할 수 있다. 이때, 제3 영역들은 전술한 제2 영역 중 제1 영역(415)에 인접한 일부 영역들일 수 있다.
[72]
이에 따라, 제2 영상(430)에서 제1 영상(410)의 제1 영역(415)에 대응하는 영역의 해상도는 제1 영상의 소스 해상도와 동일한 제1 해상도로 유지되는 반면, 제2 영상(430)에서 제1 영역(415)에 인접한 제3 영역들의 해상도는 제1 영상(410)의 제1 영역(415)에 대응하는 영역으로부터 멀어질수록 부드럽게(smoothly) 낮아질 수 있다.
[73]
영상 처리 장치는 각 프레임에서 그리드의 축들에 대한 정보를 기초로, 그리드를 컬럼 또는 로우의 방향으로 움직임으로써 빠르고 효율적으로 워핑을 수행할 수 있다. 이를 통해 영상 처리 장치는 예를 들어, 워핑 시에 각 정점마다 폭(w)과 높이(h)를 계산하는 데에 소요되는 최적화 시간을 O(w * h)에서 O(w + h)으로 감소시킬 수 있다.
[74]
[75]
도 5는 일 실시예에 따른 영상을 재생하는 방법을 설명하기 위한 도면이다. 도 5를 참조하면, 일 실시예에 따른 영상을 재생하는 장치(이하, '영상 재생 장치')는 실시간 라이브 스트리밍 서비스를 위한 영상(501) 및 영상(501)에 대응하는 그리드의 축들에 대한 정보(503)를 수신할 수 있다. 일 실시예에 따르면, 그리드의 축들에 대한 정보(503)는 컬러 인코딩되어 영상(501)에 삽입될 수 있다.
[76]
영상 재생 장치는 텍스쳐 맵핑(texture mapping)을 통해 3D 영상을 복원할 수 있다(505). 영상 재생 장치는 그리드의 축들에 대한 정보(503)를 기초로 영상(501)을 텍스쳐 맵핑함으로써 3D 영상을 복원할 수 있다. 3D 영상은 예를 들어, 360도 가상 현실 스트리밍 컨텐츠일 수 있다.
[77]
영상 재생 장치는 재생 카메라(510)를 통해 복원한 3D 영상을 재생할 수 있다(507). 영상 재생 장치는 예를 들어, 셰이더(shader)를 통해 3D 영상을 재생할 수 있다. 영상 재생 장치는 재생 카메라(510)의 현재 시점에 대응하는 영상이 재생되도록 3D 영상을 렌더링(rendering)할 수 있다. 예를 들어, 3D 영상이 360도의 원형 영상이 경우, 영상 재생 장치는 원형 영상의 각 정점들이 구형 표면을 균일하게 분할하는 복수의 다각형들을 포함하는 뷰잉 스피어(viewing sphere)에서 어떤 점의 정보를 읽어와야 하는지를 파악하여 3D 영상을 재생할 수 있다.
[78]
[79]
도 6은 일 실시예에 따른 영상을 재생하는 방법을 나타낸 흐름도이다. 도 6을 참조하면, 일 실시예에 따른 영상 재생 장치는 복수의 해상도를 포함하는 복수의 영역들을 가지는 영상을 획득한다(610). 이때, 영상은 예를 들어, 적어도 하나의 영역에 대응하는 그리드의 축들에 대한 정보가 다양한 색상을 통해 시각적으로 인코딩된 정보를 포함할 수 있다.
[80]
영상 재생 장치는 복수의 영역들을 구분하는 그리드의 축들에 관한 정보를 획득한다(620). 예를 들어, 영상 재생 장치는 영상에 시각적으로 인코딩된 그리드의 축들에 대한 정보를 추출할 수 있다. 그리드의 축들에 대한 정보는 예를 들어, 그리드에 포함된 컬럼의 크기 및 로우의 크기를 포함할 수 있다.
[81]
영상 재생 장치는 그리드의 축들에 대한 정보에 기초하여 영상을 재생한다(630). 일 실시예에 따르면, 영상 재생 장치는 그리드의 축들에 대한 정보에 기초하여, 복수의 영역들을 렌더링할 수 있다. 예를 들어, 영상 재생 장치는 그리드의 축들에 대한 정보에 기초하여 360도 영상을 균일하게 분할하는 영역들의 텍스쳐를 결정할 수 있다. 영상 재생 장치는 구형 표면을 균일하게 분할하는 복수의 다각형들을 포함하는 뷰잉 스피어에 텍스쳐 매핑할 수 있다. 이 때, 중요한 영역의 경우, 인코딩된 영상에 상대적으로 더 많은 픽셀들을 포함하고 있으므로 상대적으로 높은 해상도로 텍스쳐 매핑된다. 중요하지 않은 영역의 경우, 인코딩된 영상에 상대적으로 더 적은 픽셀들을 포함하고 있으므로 상대적으로 낮은 해상도로 텍스쳐 매핑된다. 일 실시예에 따르면, 360도 영상을 재생할 때, 영상 재생 장치는 뷰잉 스피어에서 현재 시점에 대응하는 영역의 영상을 재생할 수 있다.
[82]
[83]
도 7은 일 실시예에 따른 영상 처리 시스템의 구성을 설명하기 위한 도면이다. 도 7을 참조하면, 일 실시예에 따른 클라우드 기반 콘텐츠 적응형 360 VR 라이브 스트리밍 시스템(이하, '라이브 스트리밍 시스템')(700)의 구성 블럭도가 도시된다.
[84]
일 실시예에 따른 라이브 스트리밍 시스템(700)은 라이브 스트리밍 서비스를 제공하는 서비스 서버(710)를 포함할 수 있다. 예를 들어, 영상 제작자가 360도 영상을 라이브 스트림 프로토콜을 통해 송출하면, 서비스 서버(710)는 클라우드를 통해 컨텐츠 내 중요한 영역의 해상도를 최대한 보존하는 다운 스케일링(Down-scaling)과 스트리밍 서비스를 실시간으로 수행할 수 있다. 서비스 서버(710)는 필요 시에 가상 서버(또는 가상 머신)(들)를 구동할 수 있으며, 원하는 만큼 가상 서버(들)의 개수를 늘려 다채널 라이브 스트리밍 서비스를 제공할 수도 있다.
[85]
서비스 서버(710)는 라이브 스트림 수집 서버(711), 리마스터링 및 인코딩 서버(Remastering & Encoding Server)(713), 네트워크 드라이브(Network Drive)(715), 스트리밍 서버(Streaming Server)(717)를 포함할 수 있다.
[86]
라이브 스트림 수집 서버(711)는 예를 들어, 라이브 스트림 프로토콜을 통해 송출된 방송(예를 들어, 소스 비디오(Source Video)(701))을 수집할 수 있다. 라이브 스트림 수집 서버(711)는 영상 처리를 위해 소스 비디오(701)를 리마스터링 및 인코딩 서버(713)에게 전송할 수 있다.
[87]
이때, 제작자 단말은 라이브 스트림 프로토콜을 통해 송출된 소스 비디오(701)를 미리 모니터링하여 영상 프레임의 적어도 하나의 영역(예를 들어, 중요 영역)의 중요도를 지시하는 중요도 정보를 리마스터링 및 인코딩 서버(713)에게 전송할 수 있다. 실시예에 따라서, 라이브 스트림 수집 서버(711)는 라이브 모니터링을 위해 소스 비디오(701)를 제작자 단말에게 전송할 수도 있다.
[88]
서비스 서버(710)는 중요도 정보를 기초로, 중요 영역의 원본 해상도를 유지하는 다운 스케일링을 통해 낮은 네트워크 환경에서도 고품질의 영상 스트리밍 서비스를 제공할 수 있다. 보다 구체적으로, 리마스터링 및 인코딩 서버(713)는 소스 비디오(701)와 중요도 정보를 이용하여 소스 비디오(701)를 인코딩할 수 있다. 리마스터링 및 인코딩 서버(713)는 제작자가 라이브 모니터링을 통해 설정한 소스 비디오(701)의 각 프레임의 중요 영역에 대하여는 원본 해상도를 최대한 유지하고, 중요 영역을 제외한 나머지 영역은 다운 샘플링하여 라이브 스트리밍 서비스를 위한 영상의 용량을 감소시킬 수 있다.
[89]
리마스터링 및 인코딩 서버(713)에서의 인코딩 결과물은 해상도 적응형 스트리밍을 위해 서로 다른 해상도들(예를 들어, 1080p, 720p, 480p 등)로 인코딩되어 네트워크 드라이브(715)에 저장될 수 있다. 이때, 네트워크 드라이브(715)는 예를 들어, LAN 등의 네트워크로 접속된 다른 컴퓨터의 하드 디스크 등을 자신의 단말에 연결된 드라이브인 것처럼 취급하여 사용하는 네트워크 상의 드라이브일 수 있다.
[90]
네트워크 드라이브(715)에 저장된 인코딩 결과물은 라이브 스트리밍 서비스를 위해 스트리밍 서버(717)에 제공될 수 있다.
[91]
스트리밍 서버(717)는 인코딩 결과물에 대한 자동 스케일링(Auto Scaling)을 수행할 수 있다. 스트리밍 서버(717)는 부하 분산(load balancing)을 위한 복수의 가상 머신들(Virtual Machines)을 포함할 수 있다. 스트리밍 서버(717)는 예를 들어, 영상을 관람하는 시청자의 수에 따라 가상 머신들의 개수를 조정할 수 있다. 각 가상 머신은 HTTP Request를 처리하는 서버 역할을 수행할 수 있다.
[92]
스트리밍 서버(717)를 통해 분배된 영상은 컨텐츠 전송 네트워크(Content Delivery Network; CDN)(740)를 통해 사용자 단말(750)에게 전달됨으로써 사용자에게 라이브 스트리밍 서비스를 제공하는 데에 이용될 수 있다.
[93]
서비스 서버(710)는 인코딩 결과물(새로운 영상)을 클라우드 저장소(Cloud Storage)(730)에 저장할 수 있다. 서비스 서버(710)는 VOD 서비스를 위해 클라우드 저장소(730)에 저장된 새로운 영상을 HTTP 서버(미도시)와 연결함으로써 사용자에게 VOD(Video On Demand) 서비스를 제공할 수 있다. 클라우드 저장소(730)에 저장된 새로운 영상은 컨텐츠 전송 네트워크(CDN)(740)을 통해 사용자 단말(760)에게 전달됨으로써 사용자에게 VOD 서비스를 제공하는 데에 이용될 수 있다.
[94]
[95]
도 8은 일 실시예에 따른 영상을 처리하는 장치 또는 영상을 재생하는 장치의 블록도이다. 도 8을 참조하면, 일 실시예에 따른 장치(800)는 통신 인터페이스(810) 및 프로세서(830)를 포함한다. 장치(800)는 메모리(850) 및 디스플레이 장치(870)를 더 포함할 수 있다. 통신 인터페이스(810), 프로세서(830), 메모리(850), 및 디스플레이 장치(870)는 통신 버스(805)를 통해 서로 통신할 수 있다.
[96]
통신 인터페이스(810)는 복수의 프레임들을 포함하는 제1 영상을 수신한다. 제1 영상은 예를 들어, 장치(800)에 포함된 카메라 또는 이미지 센서 등과 같은 촬영 장치(미도시)를 통해 캡쳐 또는 촬영된 것일 수도 있고, 장치(800) 외부에서 촬영된 영상일 수도 있다. 또한, 제1 영상은 예를 들어, 라이브 스트림 프로토콜을 통해 송출된 360도 컨텐츠 영상일 수 있다. 통신 인터페이스(810)는 제2 영상 및 그리드의 축들에 관한 정보를 출력한다. 또는 통신 인터페이스(810)는 복수의 해상도를 포함하는 복수의 영역들을 가지는 영상을 획득한다.
[97]
프로세서(830)는 복수의 프레임들에 포함된 적어도 하나의 영역의 중요도를 지시하는 중요도 정보를 획득한다. 프로세서(830)는 중요도 정보에 기초하여 제1 영상의 적어도 하나의 영역을 위한 그리드의 축들을 결정한다. 프로세서(830)는 그리드의 축들에 기초하여 제1 영상을 인코딩하여, 제2 영상을 생성한다.
[98]
메모리(850)는 프로세서(830)에 의해 생성된 제2 영상 및/또는 프로세서(830)에 의해 결정된 그리드의 축들에 대한 정보를 저장할 수 있다.
[99]
또는 프로세서(830)는 복수의 영역들을 구분하는 그리드의 축들에 관한 정보를 추출한다. 프로세서(830)는 그리드의 축들에 대한 정보에 기초하여 영상을 재생한다. 프로세서(830)는 영상을 예를 들어, 디스플레이(870)를 통해 재생할 수 있다.
[100]
또한, 프로세서(830)는 도 1 내지 도 7을 통해 전술한 적어도 하나의 방법 또는 적어도 하나의 방법에 대응되는 알고리즘을 수행할 수 있다. 프로세서(830)는 목적하는 동작들(desired operations)을 실행시키기 위한 물리적인 구조를 갖는 회로를 가지는 하드웨어로 구현된 데이터 처리 장치일 수 있다. 예를 들어, 목적하는 동작들은 프로그램에 포함된 코드(code) 또는 인스트럭션들(instructions)을 포함할 수 있다. 예를 들어, 하드웨어로 구현된 데이터 처리 장치는 마이크로프로세서(microprocessor), 중앙 처리 장치(central processing unit), 프로세서 코어(processor core), 멀티-코어 프로세서(multi-core processor), 멀티프로세서(multiprocessor), ASIC(Application-Specific Integrated Circuit), FPGA(Field Programmable Gate Array)를 포함할 수 있다.
[101]
프로세서(830)는 프로그램을 실행하고, 장치(800)를 제어할 수 있다. 프로세서(830)에 의하여 실행되는 프로그램 코드는 메모리(850)에 저장될 수 있다.
[102]
메모리(850)는 전술한 프로세서(830)의 처리 과정에서 생성되는 다양한 정보들을 저장할 수 있다. 이 밖에도, 메모리(850)는 각종 데이터와 프로그램 등을 저장할 수 있다. 메모리(850)는 휘발성 메모리 또는 비휘발성 메모리를 포함할 수 있다. 메모리(850)는 하드 디스크 등과 같은 대용량 저장 매체를 구비하여 각종 데이터를 저장할 수 있다.
[103]
[104]
이상에서 설명된 실시예들은 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치, 방법 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, 중앙 처리 장치(Central Processing Unit; CPU), 그래픽 프로세싱 유닛(Graphics Processing Unit; GPU), ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 주문형 집적 회로(Application Specific Integrated Circuits; ASICS), 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다.
[105]
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
[106]
이상과 같이 비록 한정된 도면에 의해 실시예들이 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다. 그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.

청구범위

[청구항 1]
복수의 프레임들을 포함하는 제1 영상을 수신하는 단계; 상기 복수의 프레임들에 포함된 적어도 하나의 영역의 중요도를 지시하는 중요도 정보를 획득하는 단계; 상기 중요도 정보에 기초하여 상기 제1 영상의 적어도 하나의 영역을 위한 그리드(grid)의 축(axis)들을 결정하는 단계; 상기 그리드의 축들에 기초하여 상기 제1 영상을 인코딩하여, 제2 영상을 생성하는 단계; 및 상기 제2 영상 및 상기 그리드의 축들에 관한 정보를 출력하는 단계 를 포함하는, 영상을 처리하는 방법.
[청구항 2]
제1항에 있어서, 상기 그리드의 축들을 결정하는 단계는 상기 중요도 정보에 기초하여, 상기 적어도 하나의 영역의 해상도가 유지되고, 상기 적어도 하나의 영역을 제외한 나머지 영역의 해상도가 다운 샘플링(down-sampling) 되도록, 상기 그리드의 축들을 결정하는 단계 를 포함하는, 영상을 처리하는 방법.
[청구항 3]
제1항에 있어서, 상기 그리드의 축들을 결정하는 단계는 미리 설정된 영상의 타겟 용량을 기초로, 상기 제1 영상의 복수의 프레임들에 포함된 적어도 하나의 영역을 위한 그리드의 개수 및 그리드의 타겟 해상도 중 적어도 하나를 설정함으로써 상기 그리드의 축들을 결정하는 단계 를 포함하는, 영상을 처리하는 방법.
[청구항 4]
제3항에 있어서, 상기 그리드의 축들을 결정하는 단계는 상기 제1 영상의 소스 해상도를 상기 그리드의 타겟 해상도에 대응하는 제1 영역의 제1 해상도로 결정함으로써 상기 그리드의 축들을 결정하는 단계; 상기 제1 영역을 제외한 나머지 제2 영역의 해상도가 상기 제1 해상도보다 낮은 제2 해상도로 다운 샘플링을 되도록 상기 그리드의 축들을 결정하는 단계; 및 상기 제1 영역에 인접한 제3 영역들의 해상도가 상기 제1 해상도로부터 상기 제2 해상도까지 점진적으로 변화되는 제3 해상도들로 다운 샘플링되도록 상기 그리드의 축들을 결정하는 단계 중 적어도 하나를 포함하는, 영상을 처리하는 방법.
[청구항 5]
제4항에 있어서, 상기 제2 해상도는 상기 미리 설정된 영상의 타겟 용량에 기초하여 결정되는, 영상을 처리하는 방법.
[청구항 6]
제1항에 있어서, 상기 그리드의 축들을 결정하는 단계는 상기 그리드에 포함된 컬럼의 크기 및 로우의 크기를 결정하는 단계 를 포함하는, 영상을 처리하는 방법.
[청구항 7]
제6항에 있어서, 상기 컬럼의 크기 및 로우의 크기를 결정하는 단계는 상기 중요도 정보에 의하여 지시되는 중요도가 미리 설정된 기준에 비해 높은 영역일수록 해당하는 영역을 위한 컬럼의 크기 및 로우의 크기 중 적어도 하나를 증가시키는 단계 를 포함하는, 영상을 처리하는 방법.
[청구항 8]
제1항에 있어서, 상기 제2 영상을 생성하는 단계는 상기 그리드의 축들에 기초하여 상기 제1 영상을 복수의 영역들로 구분하는 단계; 및 상기 복수의 영역들의 크기에 따라 상기 제1 영상의 정보를 샘플링하는 단계 를 포함하는, 영상을 처리하는 방법.
[청구항 9]
제1항에 있어서, 상기 출력하는 단계는 상기 그리드의 축들에 관한 정보를 시각적으로 인코딩하는 단계; 및 상기 시각적으로 인코딩된 정보와 상기 제2 영상을 결합하여 출력하는 단계 를 포함하는, 영상을 처리하는 방법.
[청구항 10]
제1항에 있어서, 상기 중요도 정보를 획득하는 단계는 상기 제1 영상을 모니터링하는 제작자 단말로부터, 상기 제1 영상의 각 프레임의 적어도 하나의 영역에 대응하여 설정된 상기 중요도 정보를 수신하는 단계; 및 미리 학습된 신경망에 의해 상기 제1 영상의 각 프레임의 적어도 하나의 영역에 대응하여 실시간으로 결정된 중요도 정보를 수신하는 단계 중 적어도 하나를 포함하는, 영상을 처리하는 방법.
[청구항 11]
제1항에 있어서, 상기 제1 영상은 360도 가상 현실 라이브 스트리밍 컨텐츠를 포함하는, 영상을 처리하는 방법.
[청구항 12]
제1항에 있어서, 상기 제2 영상 및 상기 그리드의 축들에 관한 정보를 클라우드 저장소(Cloud storage)에 저장하는 단계 를 더 포함하는, 영상을 처리하는 방법.
[청구항 13]
복수의 해상도를 포함하는 복수의 영역들을 가지는 영상을 획득하는 단계; 상기 복수의 영역들을 구분하는 그리드의 축들에 관한 정보를 획득하는 단계; 및 상기 그리드의 축들에 대한 정보에 기초하여 상기 영상을 재생하는 단계 를 포함하는, 영상을 재생하는 방법.
[청구항 14]
제13항에 있어서, 상기 그리드의 축들에 대한 정보는 상기 그리드에 포함된 컬럼의 크기 및 로우의 크기를 포함하는, 영상을 재생하는 방법.
[청구항 15]
제13항에 있어서, 상기 영상으로부터, 상기 영상의 적어도 하나의 영역에 대응하는 상기 그리드의 축들에 대한 정보를 추출하는 단계 를 포함하는, 영상을 재생하는 방법.
[청구항 16]
제13항에 있어서, 상기 영상을 재생하는 단계는 상기 영상 및 상기 그리드의 축들에 대한 정보에 기초하여, 상기 복수의 영역들을 렌더링하는 단계 를 포함하는, 영상을 재생하는 방법.
[청구항 17]
제16항에 있어서, 상기 영상을 재생하는 단계는 상기 렌더링된 복수의 영역들 중 재생 카메라의 현재 시점에 대응하는 적어도 일부의 영역을 재생하는 단계 를 더 포함하는, 영상을 재생하는 방법.
[청구항 18]
제1항 또는 제13항의 방법을 실행시키기 위한 프로그램이 기록된 컴퓨터 판독 가능한 기록 매체.
[청구항 19]
복수의 프레임들을 포함하는 제1 영상을 수신하는 통신 인터페이스; 및 상기 복수의 프레임들에 포함된 적어도 하나의 영역의 중요도를 지시하는 중요도 정보를 획득하고, 상기 중요도 정보에 기초하여 상기 제1 영상의 적어도 하나의 영역을 위한 그리드의 축들을 결정하며, 상기 그리드의 축들에 기초하여 상기 제1 영상을 인코딩하여, 제2 영상을 생성하는 프로세서 를 포함하고, 상기 통신 인터페이스는 상기 제2 영상 및 상기 그리드의 축들에 관한 정보를 출력하는, 영상을 처리하는 장치.

도면

[도1]

[도2]

[도3]

[도4]

[도5]

[도6]

[도7]

[도8]