[go: up one dir, main page]

KR102815305B1 - 폴백 비트스트림을 사용한 뷰포트 기반 스트리밍을 위한 비트스트림 구조 - Google Patents

폴백 비트스트림을 사용한 뷰포트 기반 스트리밍을 위한 비트스트림 구조 Download PDF

Info

Publication number
KR102815305B1
KR102815305B1 KR1020227011891A KR20227011891A KR102815305B1 KR 102815305 B1 KR102815305 B1 KR 102815305B1 KR 1020227011891 A KR1020227011891 A KR 1020227011891A KR 20227011891 A KR20227011891 A KR 20227011891A KR 102815305 B1 KR102815305 B1 KR 102815305B1
Authority
KR
South Korea
Prior art keywords
bitstream
viewport
coded video
computer
picture
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
KR1020227011891A
Other languages
English (en)
Other versions
KR20220062060A (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 KR20220062060A publication Critical patent/KR20220062060A/ko
Application granted granted Critical
Publication of KR102815305B1 publication Critical patent/KR102815305B1/ko
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/597Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • 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/114Adapting the group of pictures [GOP] structure, e.g. number of B-frames between two anchor frames
    • 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/115Selection of the code volume for a coding unit prior to coding
    • 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/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • 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/162User input
    • 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/177Methods 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 group of pictures [GOP]
    • 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/184Methods 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 bits, e.g. of the compressed video stream
    • 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/587Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal sub-sampling or interpolation, e.g. decimation or subsequent interpolation of pictures in a video sequence
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/234327Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by decomposing into layers, e.g. base layer and one or more enhancement layers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/234345Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements the reformatting operation being performed only on part of the stream, e.g. a region of the image or a time segment
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/23439Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements for generating different versions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/472End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
    • H04N21/4728End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content for selecting a Region Of Interest [ROI], e.g. for requesting a higher resolution version of a selected region
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/81Monomedia components thereof
    • H04N21/816Monomedia components thereof involving special video data, e.g 3D video
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • H04N21/8456Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Human Computer Interaction (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

뷰포트 비트스트림을 분할하기 위한 방법, 컴퓨터 프로그램 및 컴퓨터 시스템이 제공된다. 제1 코딩된 비디오 비트스트림은 제1 해상도에서 제1 GOP(Group-of-Picture) 구조를 사용하여 적어도 부분적으로 인코딩된다. 복수의 타일로 구조화된 제2 코딩된 비디오 비트스트림은 제2 해상도에서 제2 GOP 구조를 사용하여 인코딩되며, 이에 의해 제2 GOP 구조는 제1 GOP 구조보다 더 적은 코딩된 픽처를 포함한다. 디코딩 또는 렌더링을 위한 스트리밍 비트스트림은 제1 코딩된 비디오 비트스트림과 제2 코딩된 비트스트림을 사용하여 생성된다.

Description

폴백 비트스트림을 사용한 뷰포트 기반 스트리밍을 위한 비트스트림 구조
본 출원은 2020년 5월 27일에 출원된 미국 가출원 제63/030,856호에 기초하여 우선권을 주장하는, 2021년 5월 7일에 출원된 미국 특허 출원 제17/314,296호에 대한 우선권의 이익을 주장하며, 그 전체가 참조로서 본 명세서 포함된다.
본 개시는 일반적으로 데이터 처리 분야에 관한 것으로, 구체적으로 비디오 스트리밍에 관한 것이다.
실감형 비디오 스트리밍은 전송기로부터 수신기로 "세계(world)" 또는 "전방향성" 뷰(view)의 전송을 수반하고, 수신기는 예를 들어 뷰포트(viewport)에 기초하여 수신된 세계 뷰의 일부만을 렌더링할 것이다. 뷰포트는 가상 현실 고글 착용 시 머리 움직임의 방향에 기초하여 선택될 수 있다. 뷰포트 종속 비디오 스트리밍은 "세계" 뷰를 커버하는 녹화된 장면에서 그 뷰의 일부만이 사용자가 선택한 뷰포트에 기초하여 사용자에게 전송되어 렌더링된다.
실시예는 뷰포트 비트스트림을 분할하기 위한 방법, 시스템 및 컴퓨터 판독가능 매체에 관한 것이다. 일 측면에 따르면, 뷰포트 비트스트림을 분할하기 위한 방법이 제공된다. 이 방법은 제1 해상도에서 제1 GOP(Group-of-Picture) 구조를 사용하여 제1 코딩된 비디오 비트스트림을 적어도 부분적으로 인코딩하는 단계를 포함할 수 있다. 복수의 타일로 구조화된 제2 코딩된 비디오 비트스트림은 제2 해상도에서 제2 GOP 구조를 사용하여 인코딩되며, 이에 의해 제2 GOP 구조는 제1 GOP 구조보다 더 적은 코딩된 픽처를 포함한다. 디코딩 또는 렌더링을 위한 스트리밍 비트스트림은 제1 코딩된 비디오 비트스트림과 제2 코딩된 비트스트림을 사용하여 생성된다.
다른 측면에 따르면, 뷰포트 비트스트림을 분할하기 위한 컴퓨터 시스템이 제공된다. 컴퓨터 시스템은 하나 이상의 프로세서, 하나 이상의 컴퓨터 판독 가능 메모리, 하나 이상의 컴퓨터 판독 가능한 유형의 저장 장치, 및 하나 이상의 메모리 중 적어도 하나를 통해 하나 이상의 프로세서 중 적어도 하나에 의한 실행을 위해 하나 이상의 저장 장치 중 적어도 하나에 저장된 프로그램 명령을 포함할 수 있으며, 이에 의해 컴퓨터 시스템은 방법을 수행할 수 있다. 이 방법은 제1 해상도에서 제1 GOP 구조를 사용하여 제1 코딩된 비디오 비트스트림을 적어도 부분적으로 인코딩하는 단계를 포함할 수 있다. 복수의 타일로 구조화된 제2 코딩된 비디오 비트스트림은 제2 해상도에서 제2 GOP 구조를 사용하여 인코딩되며, 이에 의해 제2 GOP 구조는 제1 GOP 구조보다 더 적은 코딩된 픽처를 포함한다. 디코딩 또는 렌더링을 위한 스트리밍 비트스트림은 제1 코딩된 비디오 비트스트림과 제2 코딩된 비트스트림을 사용하여 생성된다.
또 다른 측면에 따르면, 뷰포트 비트스트림을 분할하기 위한 컴퓨터 판독 가능 매체가 제공된다. 컴퓨터 판독 가능 매체는 하나 이상의 컴퓨터 판독 가능 저장 장치 및 하나 이상의 유형의 저장 장치 중 적어도 하나에 저장된 프로그램 명령을 포함할 수 있으며, 이 프로그램 명령은 프로세서에 의해 실행 가능하다. 프로그램 명령은 제1 해상도에서 제1 GOP 구조를 사용하여 제1 코딩된 비디오 비트스트림을 적어도 부분적으로 인코딩하는 것을 포함할 수 있는 방법을 수행하기 위해 프로세서에 의해 실행 가능하다. 복수의 타일로 구조화된 제2 코딩된 비디오 비트스트림은 제2 해상도에서 제2 GOP 구조를 사용하여 인코딩되며, 이에 의해 제2 GOP 구조는 제1 GOP 구조보다 더 적은 코딩된 픽처를 포함한다. 디코딩 또는 렌더링을 위한 스트리밍 비트스트림은 제1 코딩된 비디오 비트스트림과 제2 코딩된 비트스트림을 사용하여 생성된다.
이들 및 다른 목적, 특징 및 이점은 첨부 도면과 관련하여 읽혀질 예시적인 실시예의 다음의 상세한 설명으로부터 명백해질 것이다. 도면의 다양한 특징은 예시가 상세한 설명과 함께 당업자의 이해를 용이하게 하기 위한 명료함을 위한 것이기 때문에 축척에 맞지 않다. 도면에서:
도 1은 적어도 하나의 실시예에 따른, 실감형 비디오를 스트리밍하기 위한 에코시스템의 개략도이다.
도 2는 적어도 하나의 실시예에 따른, 실감형 비디오의 뷰포트 기반 스트리밍 워크플로우의 개략도이다.
도 3은 적어도 하나의 실시예에 따른, 프레임 경계를 갖는 단편화된 실감형 비디오 비트스트림의 개략도이다.
도 4는 적어도 하나의 실시예에 따른, 프레임 경계를 갖는 실감형 비트스트림 재생 동안 뷰포트 업데이트의 개략도이다.
도 5는 적어도 하나의 실시예에 따른, 프레임 경계를 갖는 8K 및 2K 실감형 비트스트림 단편화의 개략도이다.
도 6은 적어도 하나의 실시예에 따른, 뷰포트 비트스트림 분할을 위한 시스템의 블록도이다.
도 7은 적어도 하나의 실시예에 따른, 컴퓨터 시스템의 개략도이다.
도 8은 적어도 하나의 실시예에 따른, 뷰포트 비트스트림 분할을 위한 프로그램에 의해 수행되는 단계 예시하는 작동 흐름도이다.
청구된 구조 및 방법의 상세한 실시예가 여기에 개시되어 있으나, 그러나, 개시된 실시예는 단지 다양한 형태로 구현될 수 있는 청구된 구조 및 방법의 예시인 것으로 이해될 수 있다. 그러나, 이러한 구조 및 방법은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명되는 예시적인 실시예로 한정되는 것으로 해석되어서는 안 된다. 오히려, 이러한 예시적인 실시예는 본 개시가 철저하고 완전하며 본 기술 분야의 당업자에게 그 범위를 충분히 전달할 수 있도록 제공된다. 설명에서, 잘 알려진 특징 및 기술의 세부사항은 제시된 실시예를 불필요하게 모호하게 하는 것을 피하기 위해 생략될 수 있다.
실시예는 일반적으로 데이터 처리 분야에 관한 것으로, 보다 구체적으로 비디오 스트리밍에 관한 것이다. 다음에 설명되는 예시적인 실시예는 무엇보다도 뷰포트 기반 비디오 스트리밍을 위한 시스템, 방법 및 컴퓨터 프로그램을 제공한다. 따라서, 일부 실시예는 뷰포트 비트스트림을 DASH의 더 작은 단편화된 파일 또는 세그먼트로 분할을 허용함으로써 컴퓨팅 분야를 개선하고 재생에서 빠른 비트스트림 랜덤 액세스를 지원하기 위한 폴백 비트스트림 단편 또는 세그먼트를 제공하는 능력을 갖는다.
이전에 설명된 바와 같이, 실감형 비디오 스트리밍은 전송기로부터 수신기로 "세계" 또는 "전방향성" 뷰의 전송을 포함하고, 수신기는 예를 들어 뷰포트에 기초하여 수신된 세계 뷰의 일부만을 렌더링한다. 뷰포트는 가상 현실 고글 착용 시 머리 움직임의 방향에 따라 선택될 수 있다. 뷰포트 종속 비디오 스트리밍은 "세계" 뷰를 커버하는 녹화된 장면에서 사용자가 선택한 뷰포트에 기초하여 해당 뷰의 일부만이 사용자에게 전송되어 렌더링되는 기술과 관련될 수 있다.
그러나, 실감형 비트스트림을 스트리밍하는 경우, 뷰포트가 변경될 때마다, 뷰포트의 위치에 관계없이 랜덤 액세스 포인트 기간 내의 모든 프레임이 다운로드되어야 한다. 따라서, 뷰포트가 랜덤 액세스 기간의 중간에 있는 경우, 액세스 기간 내의 모든 프레임(예를 들어, 30 프레임과 같음)이 다운로드되어 디코딩되어야 한다. 타일 비트스트림은 랜덤 액세스 포인트 기간의 중간부터 디코딩될 수 없다. 따라서, 지연이 추가된다. 또한, 전체 프레임 픽처를 다운로드하면 사용자의 시계(field-of-view, FoV) 재생 및 렌더링에 필요한 것보다 더 많은 네트워크 대역폭을 소비할 수 있다. 고해상도 비디오를 스트리밍하는 경우, 네트워크 자원이 이상적이지 않을 때 세분화는 비트스트림 다운로드 및 렌더링을 지연시킬 수 있다. 시청자의 FoV가 변경되면 또한 (추가) 지연이 발생하고 사용자의 품질 경험(quality experience, QoE)이 저하될 수 있다. 따라서, 비트스트림을 재구성함으로써 실감형 비디오에서 뷰포트가 변경되는 경우 발생되는 지연을 줄이는 것이 유리할 수 있다.
측면은 다양한 실시예에 따른 방법, 장치(시스템), 및 컴퓨터 판독 가능 매체의 흐름도 예시 및/또는 블록도를 참조하여 여기에서 설명된다. 흐름도 예시 및/또는 블록도의 각각의 블록, 및 흐름도 예시 및/또는 블록도의 블록 조합은 컴퓨터 판독 가능 프로그램 명령에 의해 구현될 수 있음이 이해될 것이다.
다음에 설명된 예시적인 실시예는 뷰포트 비트스트림을 DASH의 더 작은 단편화된 파일 또는 세그먼트로 분할하고 재생시 고속 비트스트림 랜덤 액세스를 지원하기 위한 폴백(fallback) 비트스트림 단편 또는 세그먼트를 제공하는 시스템, 방법 및 컴퓨터 프로그램을 제공한다.
도 1은 실감형 비디오를 스트리밍하기 위한 에코시스템(100)의 블록도를 예시한다. 360 비디오(101)는 인코더(102)를 통해 전달되고 전체 픽처는 컨텐츠 전달 네트워크(content delivery network, CDN)(103)를 통해 스트리밍된다. 사용자는 VR 플레이어(105)에서 수신된 콘텐츠(104)를 디코딩하고 재구성한다. 전체 픽처를 전송하는 것의 단점은 주어진 시간에 사용자의 시계(FoV)(106)가 포함 정도에만 속하기 때문에 대역폭과 렌더링 자원이 낭비된다는 것이다. 사용자의 현재 시계를 벗어난 비트스트림은 볼 수 없으며 어쨌든 클라이언트에 의해 수신되고 렌더링된다. 뷰포트 선택은 예를 들어 가상 현실 고글 착용시 머리 움직임의 방향에 기초할 수 있다. 뷰포트 종속 비디오 스트리밍은 "세계" 뷰를 커버하여 녹화된 장면에서 사용자가 선택한 뷰포트에 기초하여 해당 뷰의 일부만이 사용자에게 전송되고 렌더링되는 기술과 관련될 수 있으므로, 전체 세계 뷰를 전달할 필요를 제거할 수 있다.
타일(또는 서브 픽처) 기반 실감형 비디오 스트리밍 기술은 대역폭 요구사항을 줄이고 비디오 재생의 비디오 품질을 개선하는 데 사용될 수 있다. 도 2를 참조하면, 360 뷰포트 종속 비디오 스트리밍 시스템(200)의 블록도가 도시되어 있다. 360 비디오 장면(201)은 비디오 장면이 예를 들어 등방형 또는 큐브맵 투영을 사용하여 평탄한 비디오로 적절하게 연결되고 투영된 후 평면 비디오 인코더(202)를 사용하여 인코딩된다.
DASH를 통해 코딩된 비디오 비트스트림을 사용하기 위해, 시퀀스는 비트스트림을 더 작은 HTTP 기반 비디오 비트스트림 세그먼트의 시퀀스로 분할하는 형식으로 파일에 넣을 수 있다. 이러한 비디오 파일은 상이한 비트레이트와 지속 시간을 갖는다. 그것들은 IP 네트워크를 통해 전송될 수 있으며 클라이언트 측에서 독립적으로 디코딩될 수 있다.
인코딩된 실감형 비디오는 전술한 바와 같이 DASH 패키저(203)에 의해 단편화될 수 있다. 단편화된 컨텐츠는 컨텐츠 전달 서버(도시되지 않음)에 저장되고 렌더링(206)을 위해 호환 가능한 플레이어(205)로 CDN(204)에 의해 전달될 수 있다. 여기서, 전송된 비디오(209)는 전체 픽처(207)를 전송하는 대신 고해상도 FoV(208)로만 구성된다. 수신기 측에서, 4K 픽처는 플레이어에서 디코딩되고 재구성된다.
타일 기반 스트리밍은 360 비디오 프레임을 다중 타일 또는 블록으로 공간적으로 분할한다. 여기서, 파노라마 비디오는 압축된 상태 후에 인코딩되어 타일로 분할된다. 그런 다음, 사용자는 사용자의 시계(FOV)에 완전히 또는 부분적으로 속하는 타일만을 요청한다. 큰 실감형 비디오 비트스트림 픽처를 더 작은 단편 또는 타일로 분할하고 사용자의 FOV에 속하는 조각 또는 타일을 전송함으로써 네트워크 및 렌더링 측면 자원을 절약할 수 있다.
큰 실감형 컨텐츠(예를 들어 평탄한 비디오 스트림의 투영 후)는 예를 들어 동일한 해상도의 타일로 공간적으로 세분화될 수 있다. 예를 들어, 4k x 2k 비디오 시퀀스의 소스 픽처는 512 x 156 샘플의 동일한 크기의 타일로 분할되어 64개의 타일이 생성될 수 있다. 각각의 타일은 (예를 들어, DASH에서) 상이한 비트레이트 및 품질 레벨에서 인코딩되고 패키징될 수 있고, 그의 이웃 타일과 상이한 품질로 요청될 수 있다. 사용자의 뷰포트에 있는 타일은 뷰포트 외부에 있는 타일보다 더 높은 품질로 우선 순위가 지정되고 스트리밍될 수 있다. 경우에 따라, 특정 타일이 전송에서 완전히 생략될 수 있다. 대비책으로, 예를 들어 전체 파노라마를 커버하는 더 낮은 해상도/품질/비트레이트를 갖는 추가 레이어가 사용될 수 있다. 적절한 플레이어 설계를 가정하면, 이렇게 하면 FoV가 변경되지만 네트워크/스트리밍 서버 지연으로 인해 새로운 타일이 즉시 사용할 수 없는 경우 시각적 아티팩트(artifact), 예를 들어 검은색 영역을 방지할 수 있다.
타일의 해상도는 사용자가 머리를 움직이는 경우에 변경될 수 있지만, 예를 들어 랜덤 액세스 포인트(random-access point, RAP)에서만 변경될 수 있다. RAP은 수신기가 타일 또는 비디오를 성공적으로 디코딩 시작할 수 있는 액세스 유닛일 수 있다. 픽처 프레임은 상이한 픽처 그룹(Group of picture, GOP) 크기로 함께 그룹화될 수 있다. I 프레임 다음에는 선행 프레임의 변경에 대한 코딩된 표현을 포함할 수 있는 P 프레임이 올 수 있다. 따라서, P 프레임은 I 프레임 및 이전 P 프레임에 종속된다. GOP 구조는 디코딩이 I 프레임에서 시작될 수 있도록 각각의 I 프레임이 랜덤 액세스 포인트가 되도록 하는 일반적인 인코더에서 사용된다. 따라서, 변경될 타일 변경에 필요한 응답 시간은 타일 입도 및 RAP 거리에 따라 달라진다. 사용자의 방향이 변경되는 경우, 현재 뷰포트에 있는 타일은 (적어도 부분적으로) 상이한 타일로 교체되어야 한다. 이러한 새로운 타일은 사용 가능한 다음 RAP에서만 전환될 수 있으므로, 사용자 입력에 대한 반응이 지연된다.
이제 도 3을 참조하면, 프레임 경계 실시예를 갖는 단편화된 실감형 비디오 비트스트림의 블록도(300)가 도시된다. 예를 들어, 8k (301 - 303) 및 2k (304 - 306) 해상도 비디오 비트스트림이 동일한 투영 장면의 표현 내에 포함될 수 있다. 저해상도(304 - 306)는 FoV를 변경하는 경우 폴백으로 사용될 수 있으며, 연속적으로 스트리밍될 수 있다. 고해상도(301 - 303)는 타일화된 표현일 수 있으며 전술한 바와 같이 뷰포트 독립 스트리밍에 대해 사용될 수 있다. 두 스트림 모두 동일한 프레임 카운트를 가질 수 있고 30 프레임의 랜덤 액세스 포인트 기간으로 구성될 수 있는 동일한 고정 프레임 단편으로 분할될 수 있다. FoV를 커버하는 데 필요한 8K 해상도의 특정 타일만 전달되는 반면, 2K 해상도의 전체 프레임은 폴백으로서 전달된다. RAP은 고정된 30 fps 프레임 레이트를 가정하여 1초마다 한 번씩 각각의 비트스트림에 존재할 수 있다.
그러한 구성은 FoV 변경의 경우 재구성된 폴백 비트스트림을 사용하여 렌더(render)에 의해 시각적으로 즐거운 빠른 반응을 허용할 수 있지만, 문제는 변경된 FoV로 인해 렌더링되지 않을 수 있으므로 고해상도 타일의 평균 15개 프레임이 쓸모없는 각각의 FoV 변경에서 전송되고 있다는 점이다.
도 4를 참조하면, 프레임 경계 실시예를 갖는 실감형 비트스트림 재생 동안 뷰포트 업데이트의 블록도(400)가 도시된다. 블록도(400)는 재생이 진행 중인 동안 FoV 업데이트를 에뮬레이트하는 것을 예시한다. 뷰포인트가 402로 변경되는 경우, I 프레임(401)이 프레임의 시작 부분에 위치되기 때문에 뷰포트가 프레임의 중간에 있더라도 404 및 405 외에 전체 403 프레임이 다운로드되어 디코딩된다. 현재 네트워크 대역폭이 덜 이상적인 경우, 8K 해상도로 새로운 단편을 다운로드하면 추가 지연이 발생할 수 있다.
이제 도 5를 참조하면, 프레임 경계 실시예를 갖는 8K 및 2k 실감형 비트스트림 단편화의 블록도(500)가 도시되어 있다. 랜덤 액세스 포인트 기간은 예를 들어 뷰포트의 고해상도 세그먼트에 대해 10 프레임(예를 들어, 10 프레임(501 - 508)) 중 하나 이상으로 감소될 수 있다. 제1 픽처는 I 프레임으로서 나머지는 P 프레임으로서 인코딩되고, 저해상도 폴백의 경우, 제1 픽처만 I 프레임으로서, 다음 픽처는 P 프레임으로서 인코딩되거나, 또는 불균등한 랜덤 액세스 기간을 갖는 고속 랜덤 액세스가 정의되어야 한다.
랜덤 액세스 기간이 짧은 경우, 뷰포트가 변경되는 시점에, 클라이언트는 30프레임 모두를 다운로드할 필요가 없고, 10 프레임만 다운로드하면 된다. 따라서, 랜덤 액세스 포인트 기간이 감소되고 이제 더 많은 수의 랜덤 액세스 포인트가 사용될 수 있으므로 새로운 뷰포트의 요청과 새로운 뷰포트 렌더링 사이의 지연이 감소된다. 덜 이상적인 네트워크 상황을 위해 더 낮은 비트스트림 해상도를 갖는 폴백 비트스트림(509)이 제공될 수 있다. 물론, 이러한 증가된 효율성은 추가의 랜덤 액세스 픽처의 코딩 오버헤드에 의해 획득된다.
이제 도 6을 참조하면, 뷰포트 비트스트림 분할 시스템(600)의 블록도가 도시된다. 카메라에 의해 캡처된 후 컨텐츠는 파노라마 표현(601)으로 스티칭되고 그 후 인코딩되며 저지연 패키저(603)를 통해 전달되고, 여기서 비트스트림은 감소된 랜덤 액세스 포인트 기간으로 구조화된다. 전송된 비디오(609)는 사용자의 FoV(608)의 고해상도 컨텐츠와 나머지 픽처(607)에 대한 감소된 품질을 포함한다. 이러한 컨텐츠는 렌더링(606)을 위해 CDN(604)을 통해 VR 플레이어(605)로 전달된다.
하나 이상의 실시예에서, 고해상도를 갖는 비트스트림은 짧은 세그먼트 크기를 가질 수 있는 반면, 저해상도를 갖는 비트스트림은 긴 세그먼트 크기를 가질 수 있다. 세그먼트 크기는 비트스트림마다 고정될 수 있거나, 또는 세그먼트 크기는 전체 비트스트림 내에서 변경될 수 있다.
동일한 실시예에서, 고해상도 비트스트림의 픽처는 저해상도 픽처의 일부분 또는 전체 영역을 커버할 수 있다. 따라서, 2개의 비트스트림이 디코더 크기로 전송되어 디코딩되는 경우, 저해상도 디코딩된 픽처는 업샘플링되어 고해상도 디코딩된 픽처와 블렌딩될 수 있다. 블렌딩되는 경우, 저해상도 디코딩된 픽처의 일부분 또는 전체 영역이 고해상도 디코딩된 픽처에 의해 대체되거나 평균화될 수 있다.
하나 이상의 실시예에서, 비트스트림의 각각의 세그먼트는 랜덤 액세스를 위해 사용되는 하나 이상의 I 픽처를 가질 수 있다. 각각의 세그먼트의 제1 픽처는 해당 픽처가 있는 지점에서 랜덤 액세스를 가능하게 하는 인트라 랜덤 액세스 포인트(Intra Random Access Point, IRAP) 픽처일 수 있다. IRAP 픽처는 AVC, HEVC, EVC 또는 VVC의 IDR, CRA, BLA 또는 GRA 픽처일 수 있다.
하나 이상의 실시예에서, 서버는 상이한 세그먼트 크기를 갖는 여러 비트스트림을 가질 수 있다. 예를 들어, 제1 비트스트림은 30 프레임과 동일한 세그먼트 크기를 가질 수 있고, 제2 비트스트림은 20 프레임과 동일한 세그먼트 크기를 가질 수 있으며, 제3 비트스트림은 10 프레임과 동일한 세그먼트 크기를 가질 수 있다.
동일한 실시예에서, 최종 사용자의 뷰포트가 느리게 변경되거나 또는 네트워크 대역폭이 충분하지 않은 경우, 긴 세그먼트 길이(30 프레임)를 갖는 제1 비트스트림이 실제 비트레이트를 타깃 비트레이트에 맞추거나 또는 시각적 품질을 향상시키기 위해 전송될 수 있다.
동일한 실시예에서, 최종 사용자의 뷰포트가 빠르게 변경되거나 또는 네트워크 대역폭이 높은 경우, 짧은 세그먼트 크기(20 또는 10 프레임)를 갖는 제2 또는 제3 비트스트림이 고속 랜덤 액세스로 타깃 뷰를 신속하게 변경하기 위해 전송될 수 있다.
상기한 실감형 뷰포트 기반 비디오 스트리밍을 위한 비트스트림 구조에 대한 기술은 컴퓨터 판독 가능 명령을 사용하여 컴퓨터 소프트웨어로서 구현될 수 있고 하나 이상의 컴퓨터 판독 가능 매체에 물리적으로 저장될 수 있다. 예를 들어, 도 7은 개시된 주제의 특정 실시예를 구현하기에 적합한 컴퓨터 시스템(700)을 도시한다.
컴퓨터 소프트웨어는 임의의 적절한 기계 코드 또는 컴퓨터 언어를 사용하여 코딩될 수 있으며, 이는 어셈블리, 컴파일, 링크 또는 유사한 메커니즘 하에서 컴퓨터 중앙 처리 장치(central processing unit, CPU), 그래픽 처리 장치(Graphics Processing Unit, GPU) 등에 의해 직접, 또는 해석(interpretation), 마이크로 코드 실행 등을 통해 실행될 수 있는 명령을 포함하는 코드를 생성한다.
명령은 예를 들어 개인용 컴퓨터, 태블릿 컴퓨터, 서버, 스마트 폰, 게임 장치, 사물 인터넷 장치 등을 포함하는 다양한 유형의 컴퓨터 또는 그 컴포넌트에서 실행될 수 있다.
컴퓨터 시스템(700)에 대해 도 7에 도시된 컴포넌트는 본질적으로 예시적이며 본 개시의 실시예를 구현하는 컴퓨터 소프트웨어의 사용 또는 기능의 범위에 대한 어떠한 제한도 제안하려는 것이 아니다. 컴포넌트의 구성은 컴퓨터 시스템(700)의 예시적인 실시예에 도시된 컴포넌트의 임의의 하나 또는 조합과 관련된 임의의 종속성 또는 요구사항을 갖는 것으로 해석되어서는 안된다.
컴퓨터 시스템(700)은 특정 휴먼 인터페이스 입력 장치를 포함할 수 있다. 이러한 휴먼 인터페이스 입력 장치는 예를 들어, 촉각 입력(예: 키 입력, 스와이프, 데이터 장갑 움직임), 오디오 입력(예: 음성, 박수), 시각적 입력(예: 제스처), 후각 입력(도시되지 않음)을 통해 한 명 이상의 인간 사용자에 의한 입력에 응답할 수 있다. 휴먼 인터페이스 장치는 또한 오디오(예: 음성, 음악, 주변 소리), 이미지(예: 스캔된 이미지, 정지 이미지 카메라로부터 획득하는 사진 이미지), 비디오(예: 2차원 비디오, 입체 비디오를 포함한 3차원 비디오)와 같이 인간에 의한 의식적 입력과 직접 관련이 없는 특정 매체를 캡처하는 데 사용될 수 있다.
입력 휴먼 인터페이스 장치는 키보드(701), 마우스(702), 트랙 패드(703), 터치 스크린(710), 데이터 장갑(도시되지 않음), 조이스틱(705), 마이크(706), 스캐너(707), 카메라(708) 중 하나 이상(각각 도시된 것 중 하나만)을 포함할 수 있다.
컴퓨터 시스템(700)은 또한 특정 휴먼 인터페이스 출력 장치를 포함할 수 있다. 이러한 인간 인터페이스 출력 장치는 예를 들어 촉각 출력, 소리, 빛 및 냄새/맛을 통해 한 명 이상의 인간 사용자의 감각을 자극할 수 있다. 이러한 휴먼 인터페이스 출력 장치는, 촉각 출력 장치(예를 들어, 터치 스크린(710), 데이터 장갑(도시되지 않음) 또는 조이스틱(705)에 의한 촉각 피드백을 포함하지만, 입력 장치로서 기능하지 않는 촉각 피드백 장치일 수도 있음), 오디오 출력 장치(스피커(709), 헤드폰(도시되지 않음)), 시각 출력 장치(CRT 스크린, LCD 스크린, 플라즈마 스크린, OLED 스크린, 터치 스크린 입력 능력을 갖거나 갖지 않는 각각, 촉각 피드백 능력을 갖거나 또는 갖지 않는 각각을 포함하는 스크린(710)과 같음 ― 그 중 일부는 입체 출력, 가상 현실 안경(도시되지 않음), 홀로그래픽 디스플레이 및 스모크 탱크(smoke tank, 도시되지 않음))와 같은 수단을 통해 2차원 시각적 출력 또는 3차원 이상의 출력을 출력할 수 있음) 및 프린터(도시되지 않음)를 포함할 수 있다.
컴퓨터 시스템(700)은 또한 인간이 액세스 가능한 저장 장치 및 CD/DVD를 갖는 CD/DVD ROM/RW(720)를 포함하는 광학 매체 또는 유사 매체, 썸 드라이브(thumb-drive)(722), 탈착식 하드 드라이브 또는 솔리드 스테이트 드라이브(723), 테이프 및 플로피 디스크(도시되지 않음)와 같은 레거시 자기 매체, 보안 동글(도시되지 않음)과 같은 특수 ROM/ASIC/PLD 기반 장치와 같은 이와 연관된 매체를 포함할 수 있다.
통상의 기술자는 또한 현재 개시된 주제와 관련하여 사용되는 "컴퓨터 판독 가능 매체"라는 용어가 전송 매체, 반송파 또는 다른 일시적 신호를 포함하지 않는다는 것을 이해해야 한다.
컴퓨터 시스템(700)은 또한 하나 이상의 통신 네트워크(1755)에 대한 인터페이스를 포함할 수 있다. 네트워크는 예를 들어 무선, 유선, 광일 수 있다. 네트워크는 또한 로컬, 광역, 대도시, 차량 및 산업, 실시간, 지연 허용 등일 수 있다. 네트워크의 예로는 이더넷과 같은 근거리 통신망, 무선 LAN, GSM, 3G, 4G, 5G, LTE 등을 포함하는 셀룰러 네트워크, 케이블 TV, 위성 TV 및 지상파 방송 TV를 포함하는 무선 광역 디지털 네트워크, CANBus 등을 포함하는 차량 및 산업용을 포함한다. 특정 네트워크에는 일반적으로 특정 범용 데이터 포트 또는 주변 장치 버스(749)(예를 들어, 컴퓨터 시스템(700)의 USB 포트(700)와 같음)에 부착된 외부 네트워크 인터페이스 어댑터가 필요하다. 다른 것들은 일반적으로 아래에 설명된 바와 같이 시스템 버스에 대한 부착에 의해 컴퓨터 시스템(700)의 코어에 통합된다(예를 들어, PC 컴퓨터 시스템에 대한 이더넷 인터페이스 또는 스마트 폰 컴퓨터 시스템에 대한 셀룰러 네트워크 인터페이스). 이러한 네트워크 중 하나를 사용하여 컴퓨터 시스템(700)은 다른 엔티티와 통신할 수 있다. 이러한 통신은 단방향, 수신 전용(예를 들어, 방송 TV), 단방향 전송 전용(예를 들어, CANbus에서 특정 CANbus 장치로) 또는 양방향, 예를 들어, 로컬 또는 광역 디지털 네트워크를 사용하는 다른 컴퓨터 시스템일 수 있다. 특정 프로토콜 및 프로토콜 스택은 상기한 바와 같이 각각의 네트워크 및 네트워크 인터페이스에서 사용될 수 있다.
전술한 휴먼 인터페이스 장치, 인간 액세스 가능 저장 장치 및 네트워크 인터페이스는 컴퓨터 시스템(700)의 코어(740)에 부착될 수 있다.
코어(740)는 하나 이상의 중앙 처리 장치(CPU)(741), 그래픽 처리 장치(GPU)(742), FPGA(Field Programmable Gate Area)(743) 형태의 특수 프로그램 가능 처리 유닛, 특정 태스크에 대한 하드웨어 가속기(744) 등을 포함할 수 있다. 읽기 전용 메모리(Read-only memory, ROM)(745), 랜덤 액세스 메모리(Random-access memory, 746), 내부 비 사용자 액세스 가능 하드 드라이브, SSD 등과 같은 내부 대용량 저장소(747)와 함께 이러한 장치는 시스템 버스(748)를 통해 연결될 수 있다. 일부 컴퓨터 시스템에서, 시스템 버스(748)는 추가 CPU, GPU 등에 의한 확장을 가능하게 하기 위해 하나 이상의 물리적 플러그의 형태로 액세스될 수 있다. 주변 장치는 코어의 시스템 버스(748)에 직접 부착되거나, 또는 주변 장치 버스(749)를 통해 부착될 수 있다. 주변 버스의 아키텍처에는 PCI, USB 등이 포함된다.
CPU(741), GPU(742), FPGA(743) 및 가속기(744)는 조합하여 전술한 컴퓨터 코드를 구성할 수 있는 특정 명령을 실행할 수 있다. 이 컴퓨터 코드는 ROM(745) 또는 RAM(746)에 저장될 수 있다. 과도기 데이터는 RAM(746)에 저장될 수도 있지만, 영구 데이터는 예를 들어 내부 대용량 저장소(747)에 저장될 수 있다. 하나 이상의 CPU(741), GPU(742), 대용량 저장소(747), ROM(745), RAM(746) 등과 밀접하게 연관될 수 있는 캐시 메모리의 사용을 통해 모든 메모리 장치에 대한 빠른 저장 및 검색이 가능해질 수 있다.
컴퓨터 판독 가능 매체는 다양한 컴퓨터 구현 작동을 수행하기 위한 컴퓨터 코드를 가질 수 있다. 매체 및 컴퓨터 코드는 본 개시의 목적을 위해 특별히 설계되고 구성된 것일 수 있거나, 또는 컴퓨터 소프트웨어 분야의 당업자에게 잘 알려져 있고 이용 가능한 종류일 수 있다.
예로서, 제한없이, 아키텍처(700)를 갖는 컴퓨터 시스템, 특히 코어(740)는 하나 이상의 유형의 컴퓨터 판독 가능 매체에 구현된 소프트웨어를 실행하는 프로세서(들)(CPU, GPU, FPGA, 가속기 등을 포함함)의 결과로서 기능을 제공할 수 있다. 이러한 컴퓨터 판독 가능 매체는 위에서 소개한 바와 같이 사용자 액세스 가능 대용량 저장소와 연관된 미디어일 수 있으며, 코어 내부 대용량 저장소(747) 또는 ROM(745)과 같은 비 일시적 특성을 가진 코어(740)의 특정 저장소일 수 있다. 본 개시의 다양한 실시예를 구현하는 소프트웨어는 이러한 장치에 저장되고 코어(740)에 의해 실행될 수 있다. 컴퓨터 판독 가능 매체는 특정 필요에 따라 하나 이상의 메모리 장치 또는 칩을 포함할 수 있다. 소프트웨어는 코어(740) 및 특히 그 안의 프로세서(CPU, GPU, FPGA 등을 포함함)가 RAM(746)에 저장된 데이터 구조를 정의하는 것과 소프트웨어에서 정의된 프로세스에 따라 이러한 데이터 구조를 수정하는 것을 포함하여 여기에서 설명된 특정 프로세스 또는 특정 프로세스의 특정 부분을 실행하도록 할 수 있다. 추가로 또는 다르게는, 컴퓨터 시스템은 여기에서 설명된 특정 프로세스나 특정 프로세스의 특정 부분을 실행하기 위해 소프트웨어 대신 또는 소프트웨어와 함께 작동할 수 있는 회로(예를 들어, 가속기(744))에 고정되거나 다른 방식으로 구현된 로직의 결과로서 기능을 제공할 수 있다. 소프트웨어에 대한 참조는 로직을 포함할 수 있으며, 적절한 경우에 그 반대도 마찬가지이다. 컴퓨터 판독 가능 매체에 대한 참조는 실행을 위한 소프트웨어를 저장하는 회로(집적 회로(integrated circuit, IC)와 같음), 실행을 위한 로직을 구현하는 회로, 또는 적절한 경우 둘 다를 포함할 수 있다. 본 개시는 하드웨어 및 소프트웨어의 임의의 적절한 조합을 포함한다.
이제 도 8을 참조하면, 뷰포트 비트스트림을 분할하기 위한 프로그램에 의해 수행되는 방법(800)의 단계를 예시하는 작동 흐름도가 도시된다.
단계 802에서, 방법(800)은 제1 해상도에서 제1 GOP(Group-of-Picture) 구조를 사용하여 제1 코딩된 비디오 비트스트림을 적어도 부분적으로 인코딩하는 단계를 포함할 수 있다.
단계 804에서, 방법(800)은 제2 해상도에서 제2 GOP 구조를 사용하여 복수의 타일로 구조화된 제2 코딩된 비디오 비트스트림을 인코딩하는 단계를 포함할 수 있으며, 여기서 제2 GOP 구조는 제1 GOP 구조보다 더 적은 코딩된 픽처를 포함한다.
단계 806에서, 방법(800)은 제1 코딩된 비디오 비트스트림 및 제2 코딩된 비트스트림을 사용하여 디코딩하거나 또는 렌더링하기 위한 스트리밍 비트스트림을 생성하는 단계를 포함할 수 있다.
도 8은 단지 하나의 구현의 예시를 제공하고 상이한 실시예가 구현될 수 있는 방법에 관한 어떠한 제한도 암시하지 않는다. 설명된 환경에 대한 많은 수정은 설계 및 구현 요구사항에 기초하여 행해질 수 있다.
일부 실시예는 통합의 임의의 가능한 기술적 상세 수준에서 시스템, 방법, 및/또는 컴퓨터 판독 가능 매체에 관한 것일 수 있다. 컴퓨터 판독 가능 매체는 프로세서로 하여금 작동을 수행하게 하기 위한 컴퓨터 판독 가능 프로그램 명령을 갖는 컴퓨터 판독 가능한 비일시적 저장 매체(또는 미디어)를 포함할 수 있다.
컴퓨터 판독 가능 저장 매체는 명령 실행 장치에 의해 사용하기 위한 명령을 유지하고 저장할 수 있는 유형의 장치일 수 있다. 컴퓨터 판독 가능 저장 매체는 예를 들어 전자 저장 장치, 자기 저장 장치, 광학 저장 장치, 전자기 저장 장치, 반도체 저장 장치, 또는 이들의 임의의 적절한 조합일 수 있지만, 이에 제한되지 않는다. 컴퓨터 판독 가능 저장 매체의 보다 구체적인 예의 비 배타적인 리스트는 휴대용 컴퓨터 디스켓, 하드 디스크, 랜덤 액세스 메모리(RAM), 읽기 전용 메모리(ROM), EPROM(erasable programmable read-only memory, 또는 플래시 메모리), SRAM(static random access memory), CD-ROM(portable compact disc read-only memory), DVD(digital versatile disk), 메모리 스틱, 플로피 디스크, 펀치 카드 또는 명령이 기록된 홈(groove)의 융기 구조(raised structure)와 같은 기계적으로 인코딩된 장치, 및 전술한 것의 임의의 적절한 조합을 포함한다. 여기에서 사용된 바와 같이. 컴퓨터 판독 가능 저장 매체는 전파 또는 기타 자유롭게 전파하는 전자기파, 도파관 또는 기타 전송 매체를 통해 전파하는 전자기파(예를 들어, 광섬유 케이블을 통과하는 광 펄스), 또는 와이어를 통해 전송되는 전기 신호와 같은, 일시적인 신호 그 자체로 해석되어서는 안된다.
여기에서 기술된 컴퓨터 판독 가능 프로그램 명령은, 컴퓨터 판독 가능 저장 매체로부터 각각의 컴퓨팅/처리 장치로, 또는 네트워크, 예를 들어, 인터넷, 근거리 통신망, 광역 네트워크 및 무선 네트워크를 통해 외부 컴퓨터 또는 외부 저장 장치로 다운로드될 수 있다. 네트워크는 구리 전송 케이블, 광 전송 섬유, 무선 전송, 라우터, 방화벽, 스위치, 게이트웨이 컴퓨터 및/또는 에지 서버를 포함할 수 있다. 각각의 컴퓨팅/처리 장치의 네트워크 어댑터 카드 또는 네트워크 인터페이스는 네트워크로부터 컴퓨터 판독 가능 프로그램 명령을 수신하고, 각각의 컴퓨팅/처리 장치 내의 컴퓨터 판독 가능 저장 매체에 저장하기 위해 컴퓨터 판독 가능 프로그램 명령을 전달한다.
작동을 수행하기 위한 컴퓨터 판독 가능 프로그램 코드/명령은, 어셈블러 명령, 명령 세트 아키텍처(instruction-set-architecture, ISA) 명령, 기계 명령, 기계 종속 명령, 마이크로코드, 펌웨어 명령, 상태 설정 데이터, 집적 회로용 구성 데이터 또는 Smalltalk, C++ 등과 같은 객체 지향 프로그래밍 언어 및 "C" 프로그래밍 언어 또는 유사한 프로그래밍 언어와 같은 절차적 프로그래밍 언어를 포함하는 하나 이상의 프로그래밍 언어의 임의의 조합으로 작성된 소스 코드 또는 객체 코드일 수 있다. 컴퓨터 판독 가능 프로그램 명령은 사용자의 컴퓨터에서 전적으로, 사용자의 컴퓨터에서 부분적으로, 독립 실행형 소프트웨어 패키지로서, 사용자의 컴퓨터에서 부분적으로 그리고 원격 컴퓨터에서 부분적으로 또는 원격 컴퓨터 또는 서버에서 전체적으로 실행될 수 있다. 후자의 시나리오에서, 원격 컴퓨터는 LAN(Local Area Network) 또는 WAN(Wide Area Network)을 포함하는 임의의 유형의 네트워크를 통해 사용자의 컴퓨터에 연결될 수 있거나, 또는 그 연결은 (예를 들어 인터넷 서비스 공급자를 사용하여 인터넷을 통해) 외부 컴퓨터에 대해 수행될 수 있다. 일부 실시예에서, 예를 들어 프로그램 가능 논리 회로, FPGA(field-programmable gate arrays), 또는 PLA(programmable logic arrays)를 포함하는 전자 회로는, 측면이나 작동을 수행하기 위해, 컴퓨터 판독 가능 프로그램 명령의 상태 정보를 활용하여 전자 회로를 개인화하는 것에 의해 컴퓨터 판독 가능 프로그램 명령을 실행할 수 있다.
이러한 컴퓨터 판독 가능 프로그램 명령은 범용 컴퓨터, 특수 목적 컴퓨터 또는 기타 프로그램 가능한 데이터 처리 장치의 프로세서에 제공되어 기계를 생성할 수 있으므로, 컴퓨터의 프로세서 또는 기타 프로그램 가능한 데이터 처리 장치를 통해 실행되는 이러한 명령은 흐름도 및/또는 블록도 블록 또는 블록들에 지정된 기능/행동을 구현하기 위한 수단을 생성한다. 이들 컴퓨터 판독 가능 프로그램 명령은 또한 컴퓨터, 프로그램 가능한 데이터 처리 장치, 및/또는 다른 장치가 특정 방식으로 기능하도록 지시할 수 있는 컴퓨터 판독 가능 저장 매체에 저장될 수 있으므로, 저장된 명령을 갖는 컴퓨터 판독 가능 저장 매체가 흐름도 및/또는 블록도 블록 또는 블록들에 지정된 기능/행동의 측면을 구현하는 명령을 포함하는 제조 물품을 포함한다.
컴퓨터 판독 가능 프로그램 명령은 또한 컴퓨터, 다른 프로그램 가능한 데이터 처리 장치 또는 다른 장치에 로딩되어, 컴퓨터, 다른 프로그램 가능한 장치 또는 다른 장치에서 일련의 작동 단계가 수행되어 컴퓨터 구현 프로세스를 생성하므로, 컴퓨터, 다른 프로그램 가능한 장치 또는 다른 장치에서 실행되는 명령이 흐름도 및/또는 블록도 블록 또는 블록들에 지정된 기능/행동을 구현할 수 있다.
도면의 흐름도 및 블록도는 다양한 실시예에 따른 시스템, 방법 및 컴퓨터 판독 가능 매체의 가능한 구현의 아키텍처, 기능 및 작동을 예시한다. 이와 관련하여, 흐름도 또는 블록도의 각각의 블록은 모듈, 세그먼트, 또는 특정 논리 기능(들)을 구현하기 위한 하나 이상의 실행 가능한 명령을 포함하는 명령의 일부를 나타낼 수 있다. 방법, 컴퓨터 시스템 및 컴퓨터 판독 가능 매체는 도면에 도시된 것보다 추가적인 블록, 더 적은 블록, 상이한 블록, 또는 다르게 배열된 블록을 포함할 수 있다. 일부 대안적인 구현에서, 블록에 언급된 기능은 도면에 언급된 순서와 다르게 발생할 수 있다. 예를 들어, 연속적으로 도시된 2개의 블록은 실제로 동시에 또는 실질적으로 동시에 실행될 수 있거나, 또는 관련된 기능에 따라 블록이 때때로 역순으로 실행될 수 있다. 또한, 블록도 및/또는 흐름도 예시의 각각의 블록과, 블록도 및/또는 흐름도 예시의 블록 조합은, 지정된 기능 또는 행동을 수행하거나 또는 특수 목적 하드웨어와 컴퓨터 명령의 조합을 수행하는 특수 목적 하드웨어 기반 시스템에 의해 구현될 수 있다.
여기에서 설명된 시스템 및/또는 방법은 하드웨어, 펌웨어, 또는 하드웨어와 소프트웨어의 조합의 다른 형태로 구현될 수 있음이 명백할 것이다. 이러한 시스템 및/또는 방법을 구현하는 데 사용되는 실제 특수 제어 하드웨어 또는 소프트웨어 코드는 구현을 제한하지 않는다. 따라서, 시스템 및/또는 방법의 작동 및 가동(behavior)은 특정 소프트웨어 코드를 참조하지 않고 여기에서 설명되었으며, 소프트웨어 및 하드웨어는 여기에서의 설명에 기반하여 시스템 및/또는 방법을 구현하도록 설계될 수 있음을 이해해야 한다.
여기에서 사용된 어떤 엘리먼트, 동작 또는 명령도 그렇게 명시적으로 설명되지 않는 한 중요하거나 필수적인 것으로 해석되어서는 안 된다. 또한, 여기에서 사용된 바와 같이, 관사 "하나(a)" 및 "하나(an)"는 하나 이상의 아이템을 포함하도록 의도되며, "하나 이상"과 상호교환적으로 사용될 수 있다. 또한, 여기에서 사용된 바와 같이, 용어 "세트"는 하나 이상의 아이템(예를 들어, 관련된 아이템, 관련되지 않은 아이템, 관련되고 그리고 관련되지 않은 아이템의 조합 등)을 포함하도록 의도되며, "하나 이상"과 상호 교환적으로 사용될 수 있다. 하나의 아이템만 의도된 경우, 용어 "하나" 또는 유사한 언어가 사용된다. 또한, 여기에서 사용된 바와 같이, 용어 "갖다(has)", "갖다(have)", "갖는(having)" 등은 개방형 용어(open-ended term)로 의도된다. 또한, "~에 기초하여"라는 문구는 달리 명시적으로 언급되지 않는 한 "적어도 부분적으로 ~에 기초하여"를 의미하도록 의도된다.
다양한 측면 및 실시예에 대한 설명은 예시의 목적으로 제시되었지만, 개시된 실시예로 완전하거나 제한되도록 의도되지 않는다. 특징들의 조합이 청구범위에서 언급되거나 그리고/또는 명세서에 개시되더라도, 이러한 조합은 가능한 구현의 개시를 제한하도록 의도되지 않는다. 사실, 이들 특징 중 다수는 구체적으로 청구범위에 언급되지 않거나 그리고/또는 명세서에 개시되지 않은 방식으로 조합될 수 있다. 아래에 나열된 각각의 종속 청구항은 하나의 청구항에만 직접적으로 의존할 수 있지만, 가능한 구현의 개시는 청구항 세트의 다른 모든 청구항과 조합된 각각의 종속 청구항을 포함한다. 기술된 실시예의 범위를 벗어나지 않으면서 많은 수정 및 변형이 당업자에게 명백할 것이다. 여기에서 사용된 용어는 실시예의 원리, 시장에서 발견되는 기술에 대한 실질적인 응용 또는 기술적 개선을 가장 잘 설명하거나, 또는 당업자가 여기에서 개시된 실시예를 이해할 수 있게 하기 위해 선택되었다.

Claims (20)

  1. 프로세서에 의해 실행 가능한 뷰포트 비트스트림을 분할하는 방법으로서,
    제1 해상도에서 제1 GOP(Group-of-Picture) 구조를 사용하여 제1 코딩된 비디오 비트스트림을 적어도 부분적으로 인코딩하는 단계;
    제2 해상도에서 제2 GOP 구조를 사용하여 복수의 타일로 구조화된 제2 코딩된 비디오 비트스트림을 인코딩하는 단계 ― 상기 제2 GOP 구조는 상기 제1 GOP 구조보다 더 적은 코딩된 픽처를 포함함 ―;
    HTTP를 통한 동적 적응 스트리밍(Dynamic Adaptive Streaming over HTTP, DASH)을 통해, 상기 제1 코딩된 비디오 비트스트림의 적어도 하나의 제1 세그먼트 및 상기 제2 코딩된 비디오 비트스트림의 복수의 제2 세그먼트들을 전달하기 위해 제공하는 단계 ― 상기 제2 세그먼트들 중 하나는 상기 제2 코딩된 비디오 비트스트림의 적어도 하나의 타일을 포함하지만 상기 제2 코딩된 비디오 비트스트림 전체에 포함되는 타일보다 적은 타일을 포함하고, 상기 제2 세그먼트의 세그먼트 크기는 단말 사용자의 뷰포트의 변화가 느린지 빠른지에 따라 가변적임 ―; 및
    상기 제1 코딩된 비디오 비트스트림 및 상기 제2 코딩된 비디오 비트스트림을 사용하여 디코딩하거나 또는 렌더링하기 위한 스트리밍 비트스트림을 생성하는 단계
    를 포함하는 뷰포트 비트스트림을 분할하는 방법.
  2. 제1항에 있어서,
    상기 제2 코딩된 비디오 비트스트림은 상기 제1 코딩된 비디오 비트스트림보다 더 짧은 세그먼트 크기를 갖는,
    뷰포트 비트스트림을 분할하는 방법.
  3. 제2항에 있어서,
    상기 제2 코딩된 비디오 비트스트림은 사용자의 시계(field of view, FoV)와 연관되는,
    뷰포트 비트스트림을 분할하는 방법.
  4. 제3항에 있어서,
    상기 사용자의 FoV의 느린 변화 또는 불충분한 네트워크 대역폭에 응답하여 타깃 비트레이트에 맞는 실제 비트레이트로 상기 제1 코딩된 비디오 비트스트림을 전송하는 단계
    를 더 포함하는, 뷰포트 비트스트림을 분할하는 방법.
  5. 제3항에 있어서,
    상기 사용자의 FoV의 빠른 변화에 응답하여 상기 제2 코딩된 비디오 비트스트림을 전송하는 단계
    를 더 포함하는, 뷰포트 비트스트림을 분할하는 방법.
  6. 제1항에 있어서,
    상기 제2 코딩된 비디오 비트스트림의 제2 픽처는 상기 제1 코딩된 비디오 비트스트림의 제1 픽처의 일부 또는 전체 영역을 커버하고,
    상기 비트스트림을 분할하는 방법은,
    상기 제1 픽처를 업샘플링하는 단계; 및
    전송되어 디코더에서 디코딩된 상기 제1 코딩된 비디오 비트스트림 및 상기 제2 코딩된 비디오 스트림에 응답하여 상기 제1 픽처를 상기 제2 픽처와 블렌딩하는 단계
    를 더 포함하는,
    뷰포트 비트스트림을 분할하는 방법.
  7. 제6항에 있어서,
    상기 제1 픽처를 상기 제2 픽처와 블렌딩하는 단계는,
    상기 제1 픽처의 일부 또는 전체 영역을 상기 제2 픽처에 의해 대체하거나 또는 평균화하는 단계
    를 더 포함하는, 뷰포트 비트스트림을 분할하는 방법.
  8. 뷰포트 비트스트림을 분할하기 위한 컴퓨터 시스템으로서,
    컴퓨터 프로그램 코드를 저장하도록 구성된 하나 이상의 컴퓨터 판독 가능 비일시적 저장 매체; 및
    상기 컴퓨터 프로그램 코드에 액세스하고 제1항 내지 제7항 중 어느 하나의 항에 따른 방법을 수행하도록 상기 컴퓨터 프로그램 코드에 의해 지시된 대로 작동하도록 구성된 하나 이상의 컴퓨터 프로세서
    를 포함하는, 컴퓨터 시스템.
  9. 뷰포트 비트스트림을 분할하기 위한 컴퓨터 프로그램을 저장한 비일시적 컴퓨터 판독 가능 매체로서,
    상기 컴퓨터 프로그램은 하나 이상의 컴퓨터 프로세서로 하여금 제1항 내지 제7항 중 어느 하나의 항에 따른 방법을 수행하게 하도록 구성되는,
    비일시적 컴퓨터 판독 가능 매체.
  10. 삭제
  11. 삭제
  12. 삭제
  13. 삭제
  14. 삭제
  15. 삭제
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
KR1020227011891A 2020-05-27 2021-05-25 폴백 비트스트림을 사용한 뷰포트 기반 스트리밍을 위한 비트스트림 구조 Active KR102815305B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US202063030856P 2020-05-27 2020-05-27
US63/030,856 2020-05-27
US17/314,296 2021-05-07
US17/314,296 US11503289B2 (en) 2020-05-27 2021-05-07 Bitstream structure for viewport-based streaming with a fallback bitstream
PCT/US2021/034045 WO2021242747A1 (en) 2020-05-27 2021-05-25 Bitstream structure for viewport-based streaming with a fallback bitstream

Publications (2)

Publication Number Publication Date
KR20220062060A KR20220062060A (ko) 2022-05-13
KR102815305B1 true KR102815305B1 (ko) 2025-06-02

Family

ID=78704449

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227011891A Active KR102815305B1 (ko) 2020-05-27 2021-05-25 폴백 비트스트림을 사용한 뷰포트 기반 스트리밍을 위한 비트스트림 구조

Country Status (6)

Country Link
US (1) US11503289B2 (ko)
EP (1) EP4014327A4 (ko)
JP (1) JP7516513B2 (ko)
KR (1) KR102815305B1 (ko)
CN (1) CN114747151A (ko)
WO (1) WO2021242747A1 (ko)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018146376A1 (en) * 2017-02-13 2018-08-16 Nokia Technologies Oy An apparatus, a method and a computer program for video coding and decoding
JP2019526178A (ja) 2016-05-25 2019-09-12 コニンクリーケ・ケイピーエヌ・ナムローゼ・フェンノートシャップ 空間的にタイリングされた全方位ビデオのストリーミング

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5155449B2 (ja) * 2008-07-26 2013-03-06 トムソン ライセンシング スケーラブルビデオコーディング(svc)を使用する高速チャネル変更アプリケーションのためのリアルタイムトランスポートプロトコル(rtp)パケット化方法
US9712837B2 (en) 2014-03-17 2017-07-18 Qualcomm Incorporated Level definitions for multi-layer video codecs
US10289092B2 (en) * 2016-01-14 2019-05-14 Hamilton Sundstrand Space Systems International Inc. Digital motor controller stability analysis tool
US9992502B2 (en) * 2016-01-29 2018-06-05 Gopro, Inc. Apparatus and methods for video compression using multi-resolution scalable coding
WO2017203098A1 (en) 2016-05-24 2017-11-30 Nokia Technologies Oy Method and an apparatus and a computer program for encoding media content
CN109511284B (zh) * 2016-05-26 2023-09-01 Vid拓展公司 视窗自适应360度视频传送的方法和设备
US10917564B2 (en) * 2016-10-12 2021-02-09 Qualcomm Incorporated Systems and methods of generating and processing files for partial decoding and most interested regions
WO2018193330A1 (en) * 2017-04-20 2018-10-25 Nokia Technologies Oy Method and apparatus for delivery of streamed panoramic images
MX2019014416A (es) * 2017-06-02 2020-02-05 Vid Scale Inc Suministro de video en 360 grados a través de la red de próxima generación.
US10757389B2 (en) * 2018-10-01 2020-08-25 Telefonaktiebolaget Lm Ericsson (Publ) Client optimization for providing quality control in 360° immersive video during pause

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019526178A (ja) 2016-05-25 2019-09-12 コニンクリーケ・ケイピーエヌ・ナムローゼ・フェンノートシャップ 空間的にタイリングされた全方位ビデオのストリーミング
WO2018146376A1 (en) * 2017-02-13 2018-08-16 Nokia Technologies Oy An apparatus, a method and a computer program for video coding and decoding

Also Published As

Publication number Publication date
CN114747151A (zh) 2022-07-12
EP4014327A4 (en) 2022-08-31
JP7516513B2 (ja) 2024-07-16
US20210377527A1 (en) 2021-12-02
WO2021242747A1 (en) 2021-12-02
KR20220062060A (ko) 2022-05-13
US11503289B2 (en) 2022-11-15
JP2023501484A (ja) 2023-01-18
EP4014327A1 (en) 2022-06-22

Similar Documents

Publication Publication Date Title
CN111355954B (zh) 为视频播放器装置处理视频数据
KR102027410B1 (ko) 계층화된 신호 품질 계층에서의 재구성 데이터의 송신
JP7373581B2 (ja) メディアコンテンツにおけるレイトバインディングのための方法および装置
WO2019202207A1 (en) Processing video patches for three-dimensional content
JP6672327B2 (ja) ユーザヘッドセットへの球状ビデオ帯域幅を減少させる方法および装置
CN112153391B (zh) 视频编码的方法、装置、电子设备及存储介质
CN113766235B (zh) 一种全景视频传输方法及设备
KR102566276B1 (ko) 원격 단말을 위한 몰입형 원격 회의 및 텔레프레즌스를 위한 오버레이 처리용 파라미터
JP7701123B2 (ja) 遠隔端末用の没入型テレビ会議及びテレプレゼンスのためのビットストリーム構造
JP2023171661A (ja) タイルベースの没入型ビデオをエンコードするためのエンコーダおよび方法
KR102220091B1 (ko) 시선 기반의 360도 영상 스트리밍
KR102815305B1 (ko) 폴백 비트스트림을 사용한 뷰포트 기반 스트리밍을 위한 비트스트림 구조
Rossi et al. Streaming and user behavior in omnidirectional videos
JP7789075B2 (ja) Mpd連鎖を使用して2つ以上の非線形メディアソースから線形メディアソース拡張(mse)バッファを構築するための方法、装置及びプログラム
HK40070680A (en) Bitstream structure with fallback bitstream for viewport-based streaming
HK40075914A (en) Method and apparatus for encoding viewport bitstreams
US20240129537A1 (en) Method and apparatus for signaling cmaf switching sets in isobmff
KR20230086792A (ko) 미디어 스트리밍 및 재생 동안 프리롤 및 미드롤을 지원하기 위한 방법 및 장치

Legal Events

Date Code Title Description
A201 Request for examination
PA0105 International application

Patent event date: 20220411

Patent event code: PA01051R01D

Comment text: International Patent Application

PA0201 Request for examination

Patent event code: PA02012R01D

Patent event date: 20220411

Comment text: Request for Examination of Application

PG1501 Laying open of application
E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20240829

Patent event code: PE09021S01D

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

Patent event code: PE07011S01D

Comment text: Decision to Grant Registration

Patent event date: 20250430

GRNT Written decision to grant
PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 20250527

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 20250528

End annual number: 3

Start annual number: 1

PG1601 Publication of registration