KR20240050412A - 비디오 처리를 위한 방법, 기기 및 매체 - Google Patents

비디오 처리를 위한 방법, 기기 및 매체 Download PDF

Info

Publication number
KR20240050412A
KR20240050412A KR1020247010238A KR20247010238A KR20240050412A KR 20240050412 A KR20240050412 A KR 20240050412A KR 1020247010238 A KR1020247010238 A KR 1020247010238A KR 20247010238 A KR20247010238 A KR 20247010238A KR 20240050412 A KR20240050412 A KR 20240050412A
Authority
KR
South Korea
Prior art keywords
video
group
video data
data units
bitstream
Prior art date
Application number
KR1020247010238A
Other languages
English (en)
Inventor
예-쿠이 왕
Original Assignee
바이트댄스 아이엔씨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 바이트댄스 아이엔씨 filed Critical 바이트댄스 아이엔씨
Publication of KR20240050412A publication Critical patent/KR20240050412A/ko

Links

Classifications

    • 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, manipulating MPEG-4 scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/234363Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by altering the spatial resolution, e.g. for clients with a lower screen resolution
    • 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/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/174Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a slice, e.g. a line of blocks or a group of blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/188Methods 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 video data packet, e.g. a network abstraction layer [NAL] unit
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • H04N19/33Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability in the spatial domain
    • 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/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
    • 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/236Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
    • H04N21/2362Generation or processing of Service Information [SI]
    • 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/236Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
    • H04N21/2365Multiplexing of several video streams
    • 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/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/431Generation of visual interfaces for content selection or interaction; Content or additional data rendering
    • H04N21/4312Generation of visual interfaces for content selection or interaction; Content or additional data rendering involving specific graphical features, e.g. screen layout, special fonts or colors, blinking icons, highlights or animations
    • H04N21/4316Generation of visual interfaces for content selection or interaction; Content or additional data rendering involving specific graphical features, e.g. screen layout, special fonts or colors, blinking icons, highlights or animations for displaying supplemental content in a region of the screen, e.g. an advertisement in a separate window
    • 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/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/434Disassembling of a multiplex stream, e.g. demultiplexing audio and video streams, extraction of additional data from a video stream; Remultiplexing of multiplex streams; Extraction or processing of SI; Disassembling of packetised elementary stream
    • H04N21/4345Extraction or processing of SI, e.g. extracting service information from an MPEG stream
    • 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/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/434Disassembling of a multiplex stream, e.g. demultiplexing audio and video streams, extraction of additional data from a video stream; Remultiplexing of multiplex streams; Extraction or processing of SI; Disassembling of packetised elementary stream
    • H04N21/4347Demultiplexing of several video streams
    • 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/8451Structuring of content, e.g. decomposing content into time segments using Advanced Video Coding [AVC]
    • 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/85Assembly of content; Generation of multimedia applications
    • H04N21/854Content authoring
    • H04N21/85406Content authoring involving a specific file format, e.g. MP4 format

Abstract

본 발명의 실시예들은 비디오 처리를 위한 해결책을 제공한다. 비디오 처리를 위한 방법은: 제1 비디오의 미디어 파일과 제1 비디오의 비트스트림 간의 변환을 수행하는 단계를 포함하고, 상기 미디어 파일은 상기 제1 비디오의 비트스트림을 운반하는 제1 트랙 및 상기 제2 비디오의 비트스트림을 운반하는 제2트랙이 화면 속 화면 서비스를 제공하기 위한 트랙 쌍임을 표시하는 표시를 포함하는, 미디어 파일. 제안하는 방법은 ISO 기반 미디어 파일 형식(ISOBMFF)을 기반으로 미디어 파일에서 화면 속 화면 서비스를 지원할 수 있는 장점이 있다.

Description

비디오 처리를 위한 방법, 기기 및 매체
관련 애플리케이션에 대한 교차 참조
본 출원은 2021년 9월 27일 출원된 미국 임시 출원 제63/248,832호의 이익을 주장하며, 그 내용은 본 명세서에 전체적인 참조로 통합된다.
[기술분야]
본 발명의 실시예들은 일반적으로 비디오 처리 기술에 관한 것으로, 더 상세하게는 화면 속 화면 지원을 위한 파일 형식 설계에 관한 것이다.
미디어 스트리밍 응용 프로그램은 일반적으로 인터넷 프로토콜(IP), 전송 제어 프로토콜(TCP) 및 하이퍼텍스트 전송 프로토콜(HTTP) 전송 방식을 기반으로 하며, 일반적으로 ISO 기본 미디어 파일 형식(ISOBMFF)과 같은 파일 형식에 의존한다. 그러한 스트리밍 시스템 중 하나는 HTTP에 기반한 동적 적응 스트리밍(DASH)이다. DASH에서, 멀티미디어 내용의 비디오 및/또는 오디오 데이터에 대한 다수의 표현이 있을 수 있고, 상이한 표현은 상이한 코딩 특성(예를 들어, 비디오 코딩 표준의 상이한 프로파일 또는 레벨, 상이한 비트레이트, 상이한 공간 해상도 등)에 대응할 수 있다. 이 밖에 “화면 속 화면”라는 이름의 기술도 제안되었다. 따라서 화면 속 화면 서비스를 지원하는 파일 형식에 대해 연구할 가치가 있다.
본 발명의 실시예들은 비디오 처리를 위한 해결책을 제공한다.
첫 번째 측면에서 비디오 처리를 위한 방법이 제안된다. 이 방법은 제1 비디오의 미디어 파일과 제1 비디오의 비트스트림 간의 변환을 수행하는 단계를 포함한다. 이 미디어 파일은 제1 비디오에서 타겟 화면 속 화면 영역을 표시하는 제1 그룹의 코딩된 비디오 데이터 유닛이 제2 비디오와 연관된 제2 그룹의 코딩된 비디오 데이터 유닛에 의해 대체될 수 있을지 여부를 표시하는 제1 지시를 포함한다.
제안된 방법에 따르면, 표시는 제1 비디오에서 타겟 화면 속 화면 영역을 표시하는 코딩된 비디오 데이터 유닛이 제2 비디오와 연관된 코딩된 비디오 데이터 유닛에 의해 대체될 수 있을지 여부를 지시하기 위해 사용된다. 따라서 제안된 방법은 유리하게도 ISOBMFF를 기반으로 미디어 파일에서 화면 속 화면 서비스를 지원할 수 있다.
두 번째 측면에서 비디오 데이터를 처리하기 위한 장치가 제안된다. 비디오 데이터를 처리하기 위한 장치는 프로세서 및 명령어를 포함하는 비일시적 메모리를 포함한다. 명령어들은 프로세서에 의해 실행될 때, 프로세서로 하여금 본 발명의 첫 번째 측면에 따른 방법을 수행하게 한다.
세 번째 측면에서, 비일시적 컴퓨터 판독가능한 저장 매체가 제안된다. 비일시적 컴퓨터 판독가능한 저장 매체는 프로세서로 하여금 본 발명의 첫 번째 측면에 따른 방법을 수행하게 하는 명령어들을 저장한다.
네 번째 측면에서, 또 다른 비일시적 컴퓨터 판독가능한 기록 매체가 제안된다. 상기 비일시적 컴퓨터 판독가능한 기록 매체는 비디오 처리 장치에 의해 수행되는 방법에 의해 생성된 제1 비디오의 비트스트림을 저장한다. 이 방법은 제1 비디오의 미디어 파일과 비트스트림 간의 변환을 수행하는 단계를 포함한다. 이 미디어 파일은 제1 비디오에서 타겟 화면 속 화면 영역을 표시하는 제1 그룹의 코딩된 비디오 데이터 유닛이 제2 비디오와 연관된 제2 그룹의 코딩된 비디오 데이터 유닛에 의해 대체될 수 있을지 여부를 표시하는 제1 지시를 포함한다.
다섯 번째 측면에서 제1 비디오의 비트스트림을 저장하기 위한 방법 제안된다. 이 방법은 제1 비디오의 미디어 파일과 비트스트림 간의 변환을 수행하는 단계 및 비트스트림을 비일시적 컴퓨터 판독가능한 기록 매체에 저장하는 단계를 포함한다. 이 미디어 파일은 제1 비디오에서 타겟 화면 속 화면 영역을 표시하는 제1 그룹의 코딩된 비디오 데이터 유닛이 제2 비디오와 연관된 제2 그룹의 코딩된 비디오 데이터 유닛에 의해 대체될 수 있을지 여부를 표시하는 제1 지시를 포함한다.
여섯 번째 측면에서 또 다른 비일시적 컴퓨터 판독가능한 기록 매체가 제안된다. 상기 비일시적 컴퓨터 판독 가능한 저장 매체는 비디오 처리 장치에 의해 수행되는 방법에 의해 생성된 제1 비디오의 미디어 파일을 저장한다. 이 방법은 미디어 파일과 제1 비디오의 비트스트림 간의 변환을 포함한다. 이 미디어 파일은 제1 비디오에서 타겟 화면 속 화면 영역을 표시하는 제1 그룹의 코딩된 비디오 데이터 유닛이 제2 비디오와 연관된 제2 그룹의 코딩된 비디오 데이터 유닛에 의해 대체될 수 있을지 여부를 표시하는 제1 지시를 포함한다.
일곱 번째 측면에서 제1 비디오의 미디어 파일을 저장하기 위한 방법이 제안된다. 이 방법은 미디어 파일과 제1 비디오의 비트스트림 간의 변환을 수행하는 단계 및 비트스트림을 비일시적 컴퓨터 판독가능한 기록 매체에 저장하는 단계를 포함한다. 이 미디어 파일은 제1 비디오에서 타겟 화면 속 화면 영역을 표시하는 제1 그룹의 코딩된 비디오 데이터 유닛이 제2 비디오와 연관된 제2 그룹의 코딩된 비디오 데이터 유닛에 의해 대체될 수 있을지 여부를 표시하는 제1 지시를 포함한다.
본 발명의 내용은 다음과 같은 상세한 설명에서 진일보한 개념의 선택을 간략한 형식으로 소개하기 위한 것이다. 본 발명의 내용은 보호가 필요한 주제의 핵심 특징이나 기본 특징을 식별하거나 보호가 필요한 주제의 범위를 제한하는 데 사용되지 않는다.
첨부된 도면들을 참조하여 아래의 상세한 설명을 통해, 본 발명의 예시적인 실시예들의 상기와 다른 목적, 특징 및 이점이 보다 명확해질 것이다. 본 발명의 예시적인 실시예에서, 동일한 참조 번호는 일반적으로 동일한 구성요소를 지칭한다.
도 1은 본 발명의 일부 실시예에 따른 비디오 코딩 시스템을 예시하는 블록도를 도시한다.
도 2는 본 발명의 일부 실시예에 따른 첫 번째 예시 비디오인코더를 예시하는 블록도를 도시한다.
도 3은 본 발명의 일부 실시예에 따른 하나의 예시 비디오 디코더를 예시하는 블록도를 도시한다.
도 4는 18개의 타일, 24개의 슬라이스 및 24개의 서브 이미지로 분할된 화면을 도시한다.
도 5는 일반적인 서브 이미지 기반의 뷰포트 의존성 360o 비디오 전송 방식을 도시한다.
도 6은 2 개의 서브 이미지와 4 개의 슬라이스가 포함된 비트스트림에서 서브 이미지를 추출하는 것을 도시한다.
도 7은 VVC 서브 이미지를 기반으로 한 화면에서 화면 속 화면 지원의 예를 도시한다.
도 8은 본 발명의 일부 실시예에 따른 비디오 처리 방법의 흐름도를 도시한다. 및
도 9는 본 발명의 다양한 실시예들이 구현될 수 있는 컴퓨팅 장치의 블록도를 도시한 것이다.
도면 전체에서 동일하거나 유사한 참조 번호는 일반적으로 동일하거나 유사한 요소를 지칭한다.
본 발명의 원리는 이제 일부 실시예들을 참조하여 설명될 것이다. 이러한 실시예들은 본 발명의 범위에 대한 어떠한 제한도 제시하지 않고, 단지 예시를 목적으로 기술되고 당업자가 본 발명을 이해하고 구현하도록 돕는 것임을 이해하는 것이다. 본 명세서에 기재된 발명 내용은 아래에 기재된 발명 내용 외에 다양한 방식으로 구현될 수 있다.
아래의 기술 및 청구항들에서, 달리 정의되지 않는 한, 본 명세서에서 사용되는 모든 기술적 및 과학적 용어들은 본 발명 내용이 속하는 기술분야의 통상의 기술자들 중 하나에 의해 일반적으로 이해되는 것과 동일한 의미를 갖는다.
본 발명에서 “일 실시예”, “한 실시예”,“한 예시적인 실시예” 등에 대한 언급은 기재된 실시예가 특정 특징, 구조 또는 특성을 포함할 수 있음을 표시하지만, 모든 실시예가 특정 특징, 구조 또는 특성을 포함할 필요는 없다. 이 밖에 이런 구절이 반드시 동일한 실시예를 가리키는 것은 아니다. 또한, 특정 특징, 구조 또는 특성이 예시적인 실시예와 관련하여 기술될 때명시적으로 설명되었는지 여부에 관계없이 다른 실시예를 결합하여 그러한 특징, 구조 또는 특성이 해당 분야의 기술자의 지식 범위에 영향을 미친다고 생각한다.
여기서 “제 1” 및 “제 2” 등의 용어가 다양한 요소를 설명하는 데 사용될 수 있지만 이러한 요소가 이러한 용어에 의해 제한되어서는 안 된다는 것을 이해해야 한다. 이 용어는 한 요소와 다른 요소를 구별하는 데만 사용된다. 예를 들어, 제1 요소는 제2 요소로 명명될 수 있고, 유사하게, 예시적인 실시예들의 범위를 벗어나지 않는 경우, 제2 요소는 제1 요소로 명명될 수 있다. 본 발명에서 사용되는 바와 같이, 용어 “및/또는”에는 나열된 용어들 중 하나 이상의 임의의 및 모든 조합이 포함된다.
본 발명에서 사용되는 용어는 특정 실시예들만을 설명하기 위한 목적이며, 예시적인 실시예들을 제한하기 위한 것은 아니다. 본 발명에서 사용되는 바와 같이, 단수 형태 “한”, “일” 및 “그”는 문맥상 명백하게 다르게 뜻하지 않는 한 복수 형태도 포함하도록 되어 있다. 본 발명에서 사용되는 용어 “구성함”, “구성되어 있음”,“보유함”, “보유하고 있음”,“포함” 및/또는 “포함되어 있음”은 명시된 특징, 요소 및/또는 구성요소 등의 존재를 명시하지만, 하나 이상의 다른 특징, 요소, 구성요소 및/또는 이들의 조합의 존재 또는 추가를 배제하는 것은 아니다.
예시 환경
도 1은 본 명세서의 기술을 활용할 수 있는 하나의 예시적인 비디오 코딩 시스템 (100)을 도시하는 블록도이다. 도시된 바와 같이, 비디오 코딩 시스템(100)은 소스 장치(110) 및 목표 장치(120)를 포함할 수 있다. 소스 장치(110)는 비디오 코딩 장치라고도 지칭될 수 있고, 목표 장치(120)는 비디오 디코딩 장치라고도 지칭될 수 있다. 이 동작에서, 소스 장치(110)는 코딩된 비디오 데이터를 생성하도록 구성될 수 있고, 목표 장치(120)는 소스 장치(110)에 의해 생성된 코딩된 비디오 데이터를 디코딩하도록 구성될 수 있다. 소스 장치(110)는 비디오 소스(112), 비디오 인코더(114) 및 입출력(I/O) 인터페이스(116)를 포함할 수 있다.
비디오 소스(112)는 비디오 캡처 장치와 같은 소스를 포함할 수 있다. 비디오 캡처 장치의 예시는 비디오 내용 제공자로부터 비디오 데이터를 수신하기 위한 인터페이스, 비디오 데이터를 생성하기 위한 컴퓨터 그래픽 시스템, 및/또는 이들의 조합을 포함하지만, 이에 제한되지는 않는다.
비디오 데이터는 하나 또는 그 이상의 화면으로 구성될 수 있다. 비디오 인코더(114)는 비디오 소스(112)로부터의 비디오 데이터를 코딩하여 비트스트림을 생성한다. 비트스트림은 비디오 데이터의 코딩된 표현을 형성하는 비트의 시퀀스를 포함할 수 있다. 비트스트림은 코딩된 화면 및 연관된 데이터를 포함할 수 있다. 코딩된 화면은 화면의 코딩된 표현이다. 연관된 데이터는 시퀀스 파라미터 세트, 화면 파라미터 세트, 및 다른 구문 구조를 포함할 수 있다. I/O 인터페이스(116)는 변조기/복조기 및/또는 송신기를 포함할 수 있다. 코딩된 비디오 데이터는 네트워크(130A)를 통해 I/O 인터페이스(116)를 거쳐 목표 장치(120)로 직접 전송될 수 있다. 코딩된 비디오 데이터는 또한 목표 장치(120)에 의한 액세스를 위해 저장 매체/서버(130B) 상에 저장될 수 있다.
목표 장치(120)는 I/O 인터페이스(126), 비디오 디코더(124) 및 표시 장치(122)를 포함할 수 있다. I/O 인터페이스(126)는 수신기 및/또는 모뎀을 포함할 수 있다. I/O 인터페이스(126)는 소스 장치(110) 또는 저장 매체/서버(130B)로부터 코딩된 비디오 데이터를 획득할 수 있다. 비디오 디코더(124)는 코딩된 비디오 데이터를 디코딩할 수 있다. 표시 장치(122)는 디코딩된 비디오 데이터를 사용자에게 표시할 수 있다. 표시 장치(122)는 목표 장치(120)와 일체화될 수도 있고, 외부 표시 장치와 인터페이스하도록 구성된 목표 장치(120)의 외부에 있을 수도 있다.
비디오 인코더(114) 및 비디오 디코더(124)는 고효율 비디오 코딩(HEVC) 표준, 다용도 비디오 코딩(VVC) 표준 및 다른 현재 및/또는 추가 표준과 같은 비디오 압축 표준에 따라 동작할 수 있다.
도 2는 본 발명에서 발명된 일부 실시예에 따른 도 1에 도시된 시스템(100)에서의 비디오 인코더(114)의 일례일 수 있는 비디오 인코더(200)의 일례를 도시하는 블록도이다.
비디오 인코더(200)는 본 명세서의 기술들 중 임의의 것 또는 전부를 구현하도록 구성될 수 있다. 도 2의 예에서, 비디오 인코더(200)는 복수의 기능성 구성요소를 포함한다. 본 명세서에 기술된 기술들은 비디오 인코더(200)의 다양한 구성요소들 간에 공유될 수 있다. 일부 예에서, 프로세서는 본 명세서에 기술된 기술들 중 임의의 것 또는 전부를 수행하도록 구성될 수 있다.
일부 실시예에서, 비디오 인코더(200)는 분할부(201)와 모드 선택부(203), 움직임 추정부(204), 움직임 보상부(205) 및 화면내 예측부(206), 잔차 생성부(207), 변환부(208), 양자화부(209), 역양자화부(210), 역변환부(211), 복원부(212), 버퍼(213) 및 엔트로피 코딩부(214)를 포함할 수 있는 예측부(202)를 포함할 수 있다.
다른 예에서, 비디오 인코더(200)는 더 많거나, 더 적거나, 또는 상이한 기능적 구성요소들을 포함할 수 있다. 일 예에서, 예측부(202)은 블록 내 복제 (IBC) 유닛을 포함할 수 있다. IBC 유닛은 적어도 하나의 참조 화면이 현재 비디오 블록이 위치한 화면인 IBC 모드에서 예측을 수행할 수 있다.
또한, 움직임 추정부(204) 및 움직임 보상부(205)와 같은 일부 구성요소들은 통합될 수 있으나, 도 2의 예에서는 설명을 위해 별도로 표시하였다.
분할부(201)는 화면을 하나 이상의 비디오 블록으로 분할할 수 있다. 비디오 인코더(200) 및 비디오 디코더(300)는 다양한 비디오 블록 크기를 지원할 수 있다.
모드 선택부(203)는 예를 들어, 오류 결과에 기초하여, 코딩된 모드들 중에서 화면내 또는 화면간 중 하나를 선택하고, 결과적으로 화면내-코딩되거나 화면간-코딩된 블록을 잔차 생성부(207)에 제공하여 잔차 블록 데이터를 생성하고, 코딩된 블록을 참조 화면으로서 사용하기 위해 재구성부(212)에 제공할 수도 있다. 일부 예에서, 모드 선택부(203)는 예측이 화면간예측 신호 및 화면내예측 신호에 기초하는 화면간과 화면내 예측(CIIP)모드의 조합을 선택할 수 있다. 모드 선택부(203)는 화면간 예측의 경우 블록에 대한 움직임 벡터(예를 들어, 부분 픽셀 또는 정수형 픽셀 정밀도)에 대한 해상도를 선택할 수도 있다.
움직임 추정부(204)는 현재 비디오 블록에 대한 화면간 예측을 수행하기 위해 버퍼(213)로부터의 하나 이상의 참조 프레임을 현재 비디오 블록과 비교하여 현재 비디오 블록에 대한 움직임 정보를 생성할 수 있다. 움직임 보상부(205)는 현재 비디오 블록과 연관된 화면 이외의 화면들의 움직임 정보 및 버퍼(213)로부터의 디코딩된 샘플들에 기초하여 현재 비디오 블록에 대한 예측 비디오 블록을 결정할 수도 있다.
움직임 추정부(204) 및 움직임 보상부(205)는 예를 들어, 현재 비디오 블록이 I 슬라이스인지, P 슬라이스인지, 또는 B 슬라이스인지에 따라 현재 비디오 블록에 대해 서로 다른 동작을 수행할 수 있다. 본 발명에서 사용되는 바와 같이, “I-슬라이스”는 매크로블록으로 구성된 화면의 일부분을 지칭할 수 있으며, 이들 모두는 동일한 화면 내의 매크로블록을 기반으로 한다. 또한, 본 발명에서 사용되는 바와 같이, 일부 측면에서, “P-슬라이스” 및 “B-슬라이스”은 동일한 화면 내의 매크로블록에 의존하지 않는 매크로블록으로 구성된 화면의 일부분을 지칭할 수도 있다.
일부 예에서, 움직임 추정부(204)는 현재 비디오 블록에 대해 단방향 예측을 수행할 수 있고, 움직임 추정부(204)는 현재 비디오 블록에 대한 참조 비디오 블록에 대해 리스트 0 또는 리스트 1의 참조 화면을 검색할 수 있다. 움직임 추정부(204)는 이후 참조 비디오 블록을 포함하는 리스트 0 또는 리스트 1에서 참조 화면을 표시하는 참조 인덱스 및 현재 비디오 블록과 참조 비디오 블록 사이의 공간 변위를 표시하는 움직임 벡터를 생성할 수 있다. 움직임 추정부(204)는 참조 인덱스, 예측 방향 표시기 및 움직임 벡터를 현재 비디오 블록의 움직임 정보로서 출력할 수 있다. 움직임 보상부(205)는 현재 비디오 블록의 움직임 정보에 의해 표시된 참조 비디오 블록을 기반으로 현재 비디오 블록의 예측 비디오 블록을 생성할 수 있다.
또는, 다른 예에서, 움직임 추정부(204)은 현재 비디오 블록에 대해 양방향 예측을 수행할 수 있다. 움직임 추정부(204)는 현재 비디오 블록에 대한 참조 비디오 블록을 위해 리스트 0 내의 참조 화면을 검색할 수 있고, 또한 리스트 1 내의 참조 화면을 현재 비디오 블록에 대한 다른 참조 비디오 블록을 검색할 수도 있다. 움직임 추정부(204)는 이후 참조 비디오 블록을 포함하는 리스트 0 및 리스트 1 내의 참조 화면을 표시하는 참조 인덱스들 및 참조 비디오 블록과 현재 비디오 블록 사이의 공간 변위를 표시하는 움직임 벡터를 생성할 수도 있다. 움직임 추정부(204)는 참조 인덱스 및 현재 비디오 블록의 움직임 벡터를 현재 비디오 블록의 움직임 정보로서 출력할 수 있다. 움직임 보상부(205)는 현재 비디오 블록의 움직임 정보에 의해 표시된 참조 비디오 블록을 기반으로 현재 비디오 블록의 예측 비디오 블록을 생성할 수 있다.
다른 예에서, 움직임 추정부(204)은 디코더의 디코딩 처리를 위한 움직임 정보의 전체 그룹을 출력할 수 있다. 또는, 일부 실시예에서, 움직임 추정부(204)는 다른 비디오 블록의 움직임 정보를 참조하여 현재 비디오 블록의 움직임 정보를 신호 알림할 수도 있다. 예를 들어, 움직임 추정부(204)는 현재 비디오 블록의 움직임 정보가 주변 비디오 블록의 움직임 정보와 충분히 유사하다고 판단할 수 있다.
일 예에서, 움직임 추정부(204)는 현재 비디오 블록과 연관된 구문 구조에서, 현재 비디오 블록이 다른 비디오 블록과 동일한 움직임 정보를 갖는다는 것을 비디오 디코더(300)에 표시하는 값을 나타낼 수 있다.
다른 예에서, 움직임 추정부(204)는 현재 비디오 블록과 연관된 구문 구조에서 다른 비디오 블록 및 움직임 벡터 차이(MVD)를 식별할 수 있다. 움직임 벡터 차이는 현재 비디오 블록의 움직임 벡터와 표시된 비디오 블록의 움직임 벡터의 차이를 나타낸다. 비디오 디코더(300)는 지시된 비디오 블록의 움직임 벡터와 움직임 벡터 차이를 이용하여 현재 비디오 블록의 움직임 벡터를 결정할 수 있다.
앞서 설명한 바와 같이, 비디오 인코더(200)는 움직임 벡터를 예측적으로 신호 알림할 수 있다. 비디오 인코더(200)에 의해 구현될 수 있는 예측 신호 알림 기술의 두 가지 예는 고급 움직임 벡터 예측(AMVP) 및 병합 모드 신호 알림을 포함한다.
화면내 예측부(206)는 현재 비디오 블록에 대한 화면내 예측을 수행할 수 있다. 화면내 예측부(206)가 현재 비디오 블록에 대해 화면내 예측을 수행하는 경우, 화면내 예측부(206)는 동일한 화면 내의 다른 비디오 블록의 디코딩된 샘플에 기초하여 현재 비디오 블록에 대한 예측 데이터를 생성할 수도 있다. 현재 비디오 블록에 대한 예측 데이터는 예측된 비디오 블록 및 다양한 구문 요소를 포함할 수 있다.
잔차 생성부(207)는 현재 비디오 블록에서 현재 비디오 블록의 예측된 비디오 블록(들)을 감산(예를 들어, 마이너스 부호로 표시)함으로써 현재 비디오 블록에 대한 잔차 데이터를 생성할 수 있다. 현재 비디오 블록의 잔차 데이터는 현재 비디오 블록 내 샘플의 상이한 샘플 구성요소에 대응하는 잔차 비디오 블록을 포함할 수 있다.
다른 예에서, 예를 들어 스킵 모드에서 현재 비디오 블록에 대한 현재 비디오 블록에 대한 잔차 데이터가 없을 수 있고, 잔차 생성부(207)는 감산 동작을 수행하지 않을 수 있다.
변환 처리부(208)는 현재 비디오 블록과 연관된 잔차 비디오 블록에 하나 또는 그 이상의 변환을 적용함으로써 현재 비디오 블록에 대한 하나 또는 그 이상의 변환 계수 비디오 블록을 생성할 수 있다.
변환 처리부(208)는 현재 비디오 블록과 연관된 변환 계수 비디오 블록을 생성한 후, 양자화부(209)는 현재 비디오 블록과 연관된 하나 또는 그 이상의 양자화 파라미터(QP) 값에 기초하여 현재 비디오 블록과 연관된 변환 계수 비디오 블록을 양자화할 수 있다.
역양자화부(210) 및 역변환부(211)는 변환 계수 비디오 블록에 역양자화 및 역변환을 각각 적용하여 변환 계수 비디오 블록으로부터 잔차 비디오 블록을 복원할 수 있다. 재구성부(212)는 예측부(202)에 의해 생성된 하나 또는 그 이상의 예측된 비디오 블록으로부터의 대응하는 샘플에 재구성된 잔차 비디오 블록을 추가하여 버퍼(213)에 저장하기 위한 현재 비디오 블록과 연관된 재구성된 비디오 블록을 생성할 수도 있다.
재구성부(212)는 비디오 블록을 재구성한 후, 비디오 블록 내의 비디오 차단 아티팩트를 줄이기 위해 루프 필터링 동작이 수행될 수 있다.
엔트로피 코딩부(214)는 비디오 코딩기(200)의 다른 기능적 구성요소들로부터 데이터를 수신할 수 있다. 엔트로피 코딩부(214)가 데이터를 수신하면, 엔트로피 코딩부(214)는 엔트로피 코딩 데이터를 생성하고, 엔트로피 코딩 데이터를 포함하는 비트스트림을 출력하기 위해 하나 또는 그 이상의 엔트로피 코딩 동작을 수행할 수 있다.
도 3은 본 발명의 일부 실시예에 따른 도 1에 도시된 시스템(100)에서 비디오 디코더(124)의 일례일 수 있는 비디오 디코더(300)의 일례를 도시하는 블록도이다.
비디오 디코더(300)는 본 명세서의 기술들 중 임의의 것 또는 전부를 수행하도록 구성될 수 있다. 도 3의 예에서, 비디오 디코더(300)는 복수의 기능성 구성요소들을 포함한다. 본 명세서에 기술된 기술들은 비디오 디코더(300)의 다양한 구성요소들 간에 공유될 수 있다. 일부 예에서, 프로세서는 본 명세서에 기술된 기술들 중 임의의 것 또는 전부를 수행하도록 구성될 수 있다.
도 3의 예에서, 비디오 디코더(300)는 엔트로피 코딩부(301), 움직임 보상부(302), 화면내 예측부(303), 역양자화부(304), 역변환부(305), 및 복원부(306) 및 버퍼(307)를 포함한다. 일부 예에서 비디오 디코더(300)는 일반적으로 비디오 인코더(200)에 대해 기술하는 코딩 패스와 반대되는 디코딩 패스를 수행할 수 있다.
엔트로피 디코딩부(301)는 코딩된 비트스트림을 검색할 수 있다. 코딩된 비트스트림은 엔트로피 코딩된 비디오 데이터(예를 들어, 비디오 데이터의 코딩된 블록들)를 포함할 수 있다. 엔트로피 디코딩부(301)는 엔트로피 코딩된 비디오 데이터를 디코딩하고, 엔트로피 디코딩된 비디오 데이터로부터 움직임 보상부(302)는 움직임 벡터, 움직임 벡터 정밀도, 참조 화면 리스트 인덱스 및 기타 움직임 정보를 포함하는 움직임 정보를 결정할 수 있다. 움직임 보상부(302)는 예를 들어, AMVP 및 병합 모드를 수행하여 이러한 정보를 결정할 수 있다. AMVP는 인접 PB들의 데이터와 참조 화면을 기반으로 가장 가능성이 높은 여러 후보를 도출하는 것을 포함하여 사용된다. 움직임 정보는 일반적으로 수평 및 수직 움직임 벡터 변위 값들, 하나 또는 두 개의 참조 화면 인덱스들, 및 B 슬라이스들에서의 예측 영역들의 경우, 어떤 참조 화면 리스트가 각각의 인덱스와 연관되는지에 대한 식별을 포함한다. 본 발명에서 사용되는 바와 같이, 일부 측면에서, “병합 모드”는 공간적으로 또는 시간적으로 인접 블록들로부터 움직임 정보를 도출하는 것을 지칭할 수 있다.
움직임 보상부(302)는 보간 필터에 기초하여 보간을 수행할 수 있는 움직임 보상 블록을 생성할 수 있다. 부분 픽셀 정밀도로 사용될 보간 필터에 대한 식별자들이 구문 요소에 포함될 수 있다.
움직임 보상부(302)는 참조 블록의 서브 정수형 픽셀에 대한 보간 값을 계산하기 위해 비디오 인코더(200)에 의해 사용되는 보간 필터를 사용할 수 있다. 움직임 보상부(302)는 수신된 구문 정보에 따라 비디오 인코더(200)에서 사용되는 보간 필터를 결정하고, 보간 필터를 이용하여 예측 블록을 생성할 수 있다.
움직임 보상부(302)은 코딩된 비디오 시퀀스의 프레임(들) 및/또는 슬라이스(들)를 코딩하기 위해 사용되는 블록의 크기를 결정하기 위해, 구문 정보의 적어도 일부를 사용할 수도 있고, 코딩된 비디오 시퀀스의 화면의 각각의 매크로블록이 어떻게 분할되는지를 기술하는 분할 정보, 각각의 분할이 코딩되는 방법을 표시하는 모드, 각각의 코딩되는 블록에 대한 하나 또는 그 이상의 참조 프레임(및 참조 프레임 리스트), 및 코딩된 비디오 시퀀스를 디코딩하기 위한 다른 정보이다. 본 발명에서 사용되는 바와 같이, 일부 측면에서, “슬라이스”는 엔트로피 코딩, 신호 예측 및 잔차 신호 재구성의 관점에서, 동일한 화면의 다른 슬라이스들로부터 독립적으로 디코딩될 수 있는 데이터 구조를 지칭할 수도 있다. 슬라이스는 전체 화면 또는 화면의 일 영역이 될 수 있다.
화면내 예측부(303)은 비트스트림에서 수신되는 화면내 예측 모드와 같은 모드를 사용하여 공간적으로 인접한 블록으로부터 예측 블록을 형성할 수 있다. 역양자화부(304)는 비트스트림에 제공되고 엔트로피 디코딩부(301)에 의해 디코딩되고 양자화된 비디오 블록 계수를 역양자화, 즉 탈양자화를 수행한다. 역변환부(305)는 역변환을 적용한다.
재구성부(306)은 예를 들어, 움직임 보상부(302) 또는 화면내 예측부(303)에 의해 생성된 대응하는 예측 블록과 잔차 블록을 합산함으로써 디코딩된 블록을 획득할 수 있다. 원하는 경우, 블록성 아티팩트를 제거하기 위해 디블록킹 필터를 사용하여 디코딩된 블록을 여과할 수도 있다. 그런 다음 디코딩된 비디오 블록은 버퍼(307)에 저장되며, 버퍼(307)는 후속 움직임 보상/화면내 예측을 위한 참조 블록을 제공하고 또한 표시 장치에서 보여주기 위한 디코딩된 비디오를 생성한다.
본 발명의 일부 예시적인 실시예들은 아래에서 상세하게 기술될 것이다. 본 발명 문서에서 세션 제목을 사용하는 것은 이해를 용이하게 하기 위한 것이며, 한 세션에 공개된 실시예를 이 세션으로만 제한하지 않음을 이해해야 한다. 또한, 특정 실시예들이 다기능 비디오 코딩 또는 다른 특정 비디오 코덱을 참조하여 기술되지만, 공개된 기술은 다른 비디오 코딩 기술에도 적용될 수 있다. 게다가, 일부 실시예들이 비디오 코딩 단계를 상세하게 기술하지만, 코딩을 해제하는 해당 단계의 디코딩은 디코더에 의해 구현된다는 것을 이해할 것이다. 또한, 비디오 처리라는 용어는 비디오 코딩 또는 압축, 비디오 디코딩 또는 압축해제 및 비디오 변환 코딩을 포함하며, 여기서 비디오 픽셀은 하나의 압축된 형식으로부터 다른 압축된 형식으로 또는 다른 압축된 비트레이트로 표현된다.
1. 발명의 개요
본 명세서는 비디오 파일 형식과 관련된 것이다. 구체적으로 미디어 파일에서 화면 속 화면를 지원하는 것과 관련이 있다. 이 아이디어는 예를 들어 ISO 기반 미디어 파일 형식(ISOBMFF) 또는 그 확장자를 기반으로 미디어 파일 형식에 대해 개별적으로 또는 다양한 조합으로 적용될 수 있다.
2. 발명의 배경
2.1 비디오 코딩 표준
비디오 코딩 표준은 주로 잘 알려진 ITU-T 및 ISO/IEC 표준의 개발을 통해 발전되었다. ITU-T는 H.261과 H.263을, ISO/IEC는 MPEG-1과 MPEG-4 Visual을, 두 기관은 H.262/MPEG-2 Video와 H.264/MPEG-4 고급 비디오 코딩 (AVC)과 H.265/HEVC 표준을 공동으로 제작하였다. H.262 이후로 비디오 코딩 표준은 시간 예측과 변환 코딩이 사용되는 하이브리드 비디오 코딩 구조를 기반으로 한다. HEVC를 넘어 미래의 비디오 코딩 기술을 탐구하기 위해 2015년 VCEG와 MPEG가 공동으로 합동 비디오 전문가팀(JVET)을 설립하였다. 그 이후로 JVET는 많은 새로운 방법을 채택하여 공동성명 모델(JEM)이라는 이름의 참조 소프트웨어에 넣었다. JVET는 이후 다용도 비디오 코딩(VVC) 프로젝트가 공식적으로 시작되며 합동 비디오 전문가팀(JVET)으로 이름이 바뀌었다. VVC는 2020년 7월 1일에 종료된 제19차 회의에서 JVET가 최종 확정한 HEVC 대비 50%의 비트레이트 절감을 목표로 하는 새로운 코딩 표준이다.
다용도 비디오 코딩(VVC) 표준(ITU-T H.266 | ISO/IEC 23090-3) 및 관련 다용도 보조 기능 강화 정보(VSEI) 표준(ITU-T H.274 | ISO/IEC 23002-7)은 텔레비전 방송, 화상 회의 또는 저장 매체로부터의 재생과 같은 전통적인 용도뿐만 아니라, 적응적 비트레이트 스트리밍, 비디오 영역 추출, 다중 코딩 비디오 비트스트림, 멀티뷰 비디오, 확장 가능한 계층 코딩 및 뷰포트 적응형 360° 몰입형 미디어로부터의 내용의 구성 및 병합과 같은 최대로 광범위한 응용 분야에서 사용하도록 설계되었다.
기본 비디오 코딩(EVC) 표준(ISO/IEC 23094-1)은 최근 MPEG에 의해 개발된 또 다른 비디오 코딩 표준이다.
2.2 파일 형식 표준
미디어 스트리밍 응용 프로그램은 일반적으로 IP, TCP 및 HTTP 전송 방식을 기반으로 하며, 일반적으로 ISO 기본 미디어 파일 형식(ISOBMFF)과 같은 파일 형식에 의존한다. 그러한 스트리밍 시스템 중 하나는 HTTP에 기반한 동적 적응 스트리밍(DASH)이다. ISOBMFF 및 DASH와 함께 비디오 형식을 사용하는 경우, AVC 파일 형식 및 HEVC 파일 형식과 같은 비디오 형식에 고유한 파일 형식 사양이 ISOBMFF 트랙 및 DASH 표현 및 세그먼트에 비디오 내용을 캡슐화하는 데 필요하다. 비디오 비트스트림에 대한 중요한 정보, 예를 들어 프로파일, 티어 , 레벨 및 기타 많은 정보는 스트리밍 세션 시작 시 초기화 및 스트리밍 세션 중 스트림 적응을 위한 적절한 미디어 세그먼트 선택을 위해 파일 형식 레벨 메타데이터 및/또는 DASH 미디어 프레젠테이션 설명(MPD)으로 노출되어야 한다.
마찬가지로 ISOBMFF와 함께 이미지 형식을 사용하려면 AVC 이미지 파일 형식 및 HEVC 이미지 파일 형식과 같은 이미지 형식별 파일 형식 사양이 필요하다.
ISOBMFF 기반의 VVC 비디오 내용 저장을 위한 파일 형식인 VVC 비디오 파일 형식은 현재 MPEG에서 개발 중에 있다. 현재 MPEG는 ISOBMFF를 기반으로 VVC를 이용하여 코딩된 이미지 내용의 저장을 위한 파일 형식인 VVC 영상 파일 형식을 개발하고 있다.
2.3 VVC에서 화면 분할 및 서브 이미지
VVC에서 화면은 하나 또는 그 이상의 타일 행과 하나 또는 그 이상의 타일 열로 구분된다. 타일은 화면의 직사각형 영역을 덮어쓰는 CTU 시퀀스이다. 타일의 CTU는 해당 타일 내에서 래스터 스캔 순서로 스캔된다.
슬라이스는 그림의 타일 내에 있는 완전한 타일의 정수 또는 연속적인 완전한 CTU 행의 정수로 구성된다.
두 가지 슬라이스 모드, 즉 래스터 스캔 슬라이스 모드와 직사각형 슬라이스 모드가 지원된다. 래스터 스캔 슬라이스 모드에서 슬라이스는 그림의 타일 래스터 스캔에서 일련의 완전한 타일을 포함한다. 직사각형 슬라이스 모드에서 슬라이스는 그림의 직사각형 영역을 집합적으로 형성하는 다수의 완전한 타일 또는 그림의 직사각형 영역을 집합적으로 형성하는 다수의 연속적인 완전한 CTU 행을 포함한다. 직사각형 슬라이스 내의 타일은 해당 슬라이스에 해당하는 직사각형 영역 내의 타일 래스터 스캔 순서로 스캔된다.
서브 이미지는 그림의 직사각형 영역을 포괄하는 하나 또는 그 이상의 슬라이스를 포함한다.
2.3.1 서브 이미지 개념 및 기능
VVC에서 각각의 서브 이미지는, 예를 들어, 도 4에 나타낸 바와 같이, 그림의 직사각형 영역을 일괄적으로 커버하는 하나 또는 그 이상의 완전한 직사각형 슬라이스들로 구성된다. 서브 이미지는 추출 가능하도록 지정되거나(즉, 동일한 그림의 다른 서브 이미지들 및 디코딩 순서에 따라 이전 그림들과 별도로 코딩됨) 추출 불가능하게 지정될 수도 있다. 인코더는 서브 이미지의 추출 가능 여부와 관계없이 각 서브 이미지에 대해 별도의 서브 이미지 경계에 걸쳐 인-루프 필터링(디블록킹, SAO 및 ALF 포함)을 적용할지 여부를 제어할 수 있다.
기능적으로 서브 이미지는 HEVC의 움직임-제약 타일 세트(MCTS)와 유사하다. 둘 다 뷰포트 의존성 360° 비디오 스트리밍 최적화 및 관심 영역(ROI) 응용 프로그램과 같은 사용 사례를 위해 코딩된 그림 시퀀스의 직사각형 부분 그룹을 독립적으로 코딩하고 추출할 수 있다.
360° 비디오의 스트리밍에서, 즉, 전방향 비디오는 임의의 특정 순간에 전체 전방향 비디오 구의 부분 그룹(즉, 현재 뷰포트)만이 사용자에게 표시되는 반면, 사용자는 언제든지 고개를 돌려 시청 방향을 변경하고 결과적으로 현재 뷰포트를 변경할 수 있다. 클라이언트에서 이용 가능한 현재 뷰포트에 의해 덮혀 있지 않고 사용자에게 렌더링될 준비가 되어 있는 영역의 적어도 일부의 저품질 표현이 바람직하지만, 사용자가 갑자기 자신의 시청 방향을 구의 임의의 곳이든 변경하는 경우를 대비하여, 전방향 비디오의 고품질 표현은 임의의 주어진 순간에 사용자에게 표시되고 있는 현재 뷰포트에 대해서만 필요하다. 전체 전방향 비디오의 고품질 표현을 적절한 세분화로 서브 이미지로 분할하면 도 4와 같은 최적화가 가능하며, 좌측에 12개의 고해상도 서브 이미지가 있고, 우측에 12개의 고해상도 서브 이미지가 낮은 해상도의 전방향 비디오의 나머지 12개의 서브 이미지가 있다.
또 다른 전형적인 서브 이미지 기반 뷰포트 의존성 360° 비디오 전송 방식이 도5에 나타나 있으며, 전체 비디오의 고해상도 표현만이 서브 이미지들로 구성되는 반면, 전체 비디오의 저해상도 표현은 서브 이미지들을 사용하지 않고 고해상도 표현보다 더 적은 빈도의 RAP로 코딩될 수 있다. 클라이언트는 전체 비디오를 저해상도로 수신하는 반면, 고해상도 비디오의 경우 클라이언트는 현재 뷰포트를 덮여쓰는 서브 이미지만 수신하고 디코딩한다.
2.3.2 서브 이미지와 MCTS의 차이
서브 이미지와 MCTS 사이에는 몇 가지 중요한 설계 차이가 있다. 첫째, VVC에서의 서브 이미지 특징은 서브 이미지 경계들에서와 마찬가지로 서브 이미지가 서브 이미지 경계들에서 샘플 패딩을 적용함으로써 추출가능한 경우에도 서브 이미지 외부를 가리키는 코딩 블록의 움직임 벡터를 허용한다. 둘째, 병합 모드 및 VVC의 디코더 측 움직임 벡터 미세화 과정에서 움직임 벡터의 선택 및 도출을 위한 추가적인 변화가 도입되었다. 이를 통해 MCTS에 대해 인코더 측에서 적용되는 비규범적 움직임 제약 조건에 비해 더 높은 코딩 효율성을 얻을 수 있다. 셋째, 부합 비트스트림인 서브-비트스트림을 생성하기 위해, 그림의 시퀀스로부터 하나 이상의 추출가능한 서브 이미지를 추출할 때, SH(및 PH NAL 유닛, 존재하는 경우)의 재작성이 필요하지 않는다. HEVC MCTS를 기반으로 한 서브-비트스트림 추출에서는 SH의 재작성이 필요한다. HEVC MCTS 추출 및 VVC 서브 이미지 추출 모두에서 SPS 및 PPS의 재작성이 필요한다. 그러나 일반적으로 비트스트림에는 몇 개의 파라미터 세트만 있는 반면, 각 그림에는 적어도 하나의 슬라이스가 있으므로 SH에 대한 재작성은 응용 시스템에 상당한 부담이 될 수 있다. 넷째, 그림 내의 서로 다른 서브 이미지의 슬라이스는 서로 다른 NAL 유닛 유형을 갖도록 허용된다. 이는 아래에서 더 자세히 설명하는 그림 내의 혼합된 NAL 유닛 유형 또는 혼합된 서브 이미지 유형으로 자주 언급되는 기능이다. 다섯째, VVC는 서브 이미지 시퀀스에 대한 HRD 및 레벨 정의를 지정하고, 따라서 각각의 추출 가능한 서브 이미지 시퀀스의 서브-비트스트림의 적합성은 인코더에 의해 보장될 수 있다.
2.3.3 그림 내에 혼합된 서브 이미지 유형
AVC 및 HEVC에서 그림의 모든 VCL NAL 유닛은 동일한 NAL 유닛 유형을 갖춰야 한다. VVC는 그림 내에서 특정한 다른 VCL NAL 유닛 유형과 서브 이미지를 혼합하는 옵션을 도입하여 그림 레벨뿐만 아니라 서브 이미지 레벨에서도 무작위 액세스를 지원한다. 서브 이미지 내의 VVC VCL NAL 유닛은 여전히 동일한 NAL 유닛 유형이 필요한다.
IRAP 서브 이미지에서 랜덤 액세스 기능은 360° 비디오 응용 프로그램에 유용한다. 도 5에 도시된 것과 유사한 뷰포트 의존성 360° 비디오 전송 방식에서, 공간적으로 인접한 뷰포트의 내용은 대부분 중복된다. 즉, 뷰포트 방향 변경 중에 뷰포트의 일부 서브 이미지만 새로운 서브 이미지로 대체되는 반면, 대부분의 서브 이미지는 뷰포트에 남아 있다. 뷰포트에 새로 도입되는 서브 이미지 시퀀스는 IRAP 슬라이스로 시작해야 하지만 뷰포트 변경 시 나머지 서브 이미지가 화면간예측을 수행할 수 있도록 허용하면 전체 전송 비트율을 크게 줄일 수 있다.
그림이 단일 유형의 NAL 유닛만 포함하는지 또는 둘 이상의 유형을 포함하는지에 대한 표시는 그림이 참조하는 PPS에 제공된다(즉, pps_mixed_nalu_types_in_pic_flag라고 하는 플래그 사용). 그림은 IRAP 슬라이스를 포함하는 서브 이미지와 트레일링 슬라이스를 포함하는 서브 이미지로 동시에 구성될 수 있다. 그림 내의 다른 NAL 유닛 유형의 몇 가지 다른 조합도 허용되며, 여기에는 NAL 유닛 유형 RASL 및 RADL의 선행 그림 슬라이스가 포함되며, 이는 서로 다른 비트스트림에서 추출된 오픈-GOP 및 클로즈-GOP 코딩 구조를 갖춘 서브 이미지 시퀀스를 하나의 비트스트림으로 병합할 수 있다.
2.3.4 서브 이미지 레이아웃 및 ID 신호 알림
VVC의 서브 이미지 레이아웃은 SPS에서 신호로 알리므로 CLVS에서는 일정하다. 각 서브 이미지는 왼쪽 상단 CTU의 위치와 CTU 개수의 너비 및 높이를 통해 신호로 알리는 서브 이미지가 그림의 직사각형 영역을 CTU 세분화로 덮여쓰도록 한다. SPS에서 서브 이미지가 신호로 알리는 순서에 따라 그림 내의 각 서브 이미지의 인덱스가 결정된다.
SH 또는 PH의 재작성 없이 서브 이미지 시퀀스의 추출 및 병합을 가능하게 하기 위해, VVC에서의 슬라이스 어드레싱 방식은 서브 이미지 ID 및 서브 이미지에 슬라이스를 연관시키기 위한 서브 이미지-특정 슬라이스 인덱스에 기초한다. SH에서는 슬라이스를 포함하는 서브 이미지의 서브 이미지 ID와 서브 이미지 레벨 슬라이스 인덱스가 신호로 알린다. 특정 서브 이미지의 서브 이미지 ID 값은 서브 이미지 인덱스 값과 다를 수 있다. 둘 사이의 매핑은 SPS 또는 PPS(그러나 둘 다 가진 것 아님)에서 신호로 알리거나 암시적으로 추정된다. 존재하는 경우 서브 이미지 서브-비트스트림 추출 과정 중에 SPS 및 PPS를 재작성할 때 서브 이미지 ID 매핑을 재작성하거나 추가해야 한다. 서브 이미지 ID 및 서브 이미지 레벨 슬라이스 인덱스는 디코딩된 그림의 DPB 슬롯 내에서 슬라이스의 첫 번째 디코딩된 CTU의 정확한 위치를 디코더에 함께 표시한다. 서브-비트스트림 추출 후 서브 이미지의 서브 이미지 ID는 변경되지 않는 반면 서브 이미지 인덱스는 변경될 수 있다. 서브 이미지에서 슬라이스 내의 첫번째 CTU의 래스터-스캔 CTU 주소가 기준의 비트스트림 내의 값과 비교하여 변경된 경우에도, 각각의 SH 내의 서브 이미지 ID 및 서브 이미지-레벨 슬라이스 인덱스의 변경되지 않은 값은 여전히 추출된 서브-비트스트림의 디코딩된 그림 내의 각각의 CTU 위치를 정확하게 결정할 것이다. 도 6은 2개의 서브 이미지 및 4개의 슬라이스를 포함하는 예로 서브 이미지 추출을 가능하게 하기 위한 서브 이미지 ID, 서브 이미지 인덱스 및 서브 이미지 레벨 슬라이스 인덱스의 사용을 도시한다.
서브 이미지 추출과 유사하게, 서브 이미지에 대한 신호 알림은 서로 다른 비트스트림이 조화롭게 생성되는 경우(예를 들어, 서로 다른 서브 이미지 ID를 사용하지만, 다른 측면에서 대부분 정렬된 SPS, PPS 및 CTU 크기, 크로마 형식, 코딩 도구 등과 같은 PH 파라미터를 사용함) SPS 및 PPS를 재작성하기만 함으로써 서로 다른 비트스트림의 여러 서브 이미지를 하나의 비트스트림으로 병합할 수 있다.
서브 이미지와 슬라이스는 각각 SPS 및 PPS에서 독립적으로 신호로 보내지지만, 서브 이미지와 슬라이스 레이아웃 사이에는 적합한 비트스트림을 형성하기 위해 고유한 상호 제약 조건이 있다. 첫째, 서브 이미지의 존재는 직사각형 슬라이스를 사용해야 하며 래스터 스캔 슬라이스를 금지한다. 둘째, 주어진 서브 이미지의 슬라이스는 디코딩 순서에 따라 연속적인 NAL 유닛이어야 하며, 이는 서브 이미지 레이아웃이 비트스트림 내의 코딩된 슬라이스 NAL 유닛의 순서를 제한한다는 것을 의미한다.
2.4 화면 속 화면 서비스
화면 속 화면 서비스는 작은 해상도의 화면을 더 큰 해상도의 화면 내에 포함할 수 있는 기능을 제공한다. 이러한 서비스는 사용자에게 두 개의 비디오를 동시에 보여주는 데 도움이 될 수 있으며, 따라서 해상도가 더 큰 비디오가 메인 비디오로 간주되고 해상도가 더 작은 비디오가 보조 비디오로 간주된다. 이런 화면 속 화면 서비스는 무장애 서비스를 제공하는 데 사용될 수 있으며, 그 중 메인 비디오는 표지판 비디오으로 보완된다.
VVC 서브 이미지는 VVC 서브 이미지의 추출 및 병합 속성을 모두 사용하여 화면 속 화면 서비스에 사용될 수 있다. 이러한 서비스를 위해, 메인 비디오는 다수의 서브 이미지를 사용하여 코딩되며, 그 중 하나는 보조 비디오와 동일한 크기를 가지며, 보조 비디오가 메인 비디오에 합성되도록 의도되는 정확한 위치에 위치하고, 추출이 가능하도록 독립적으로 코딩되는 것을 특징으로 한다. 도 7에 도시된 바와 같이, 사용자가 보조 비디오를 포함하는 서비스의 버전을 시청하도록 선택하면, 메인 비디오의 화면 속 화면 영역에 대응하는 서브 이미지가 메인 비디오 비트스트림으로부터 추출되고, 그 대신에 보조 비디오 비트스트림이 메인 비디오 비트스트림에 병합된다. 도 7은 VVC 서브 이미지를 기반으로 한 화면 속 화면 지원의 예를 도시한다.
이 경우 메인 비디오와 보조 비디오의 그림은 동일한 비디오 특성, 특히 비트 깊이, 샘플 종횡비, 크기, 프레임 속도, 색상 공간 및 전송 특성, 크로마 샘플 위치가 동일해야 한다. 메인 및 보조 비디오 비트스트림은 각 그림 내에서 NAL 유닛 유형을 사용할 필요가 없다. 그러나 병합하려면 메인 및 보조 비트스트림에서의 그림의 코딩 순서가 동일해야 한다.
여기서는 서브 이미지의 병합이 필요하므로 메인 비디오와 보조 비디오 내에서 사용되는 서브 이미지 ID는 중복될 수 없다. 보조 비디오 비트스트림이 더 이상의 타일 또는 슬라이스 분할없이 하나의 서브 이미지로 구성되더라도, 서브 이미지 정보, 특히 서브 이미지 ID 및 서브 이미지 ID 길이는 보조 비디오 비트스트림과 메인 비디오 비트스트림의 병합을 가능하게 하기 위해 신호 알림될 필요가 있다. 보조 비디오 비트스트림의 슬라이스 NAL 유닛 내에서 서브 이미지 ID 구문 요소의 길이를 시그널하기 위해 사용되는 서브 이미지 ID 길이는 메인 비디오 비트스트림의 슬라이스 NAL 유닛 내에서 서브 이미지 ID들을 시그널하기 위해 사용되는 서브 이미지 ID 길이와 동일해야 한다. 또한, PPS 분할 정보를 재작성할 필요 없이 보조 비디오 비트스트림과 메인 비디오 비트스트림의 병합을 단순화하기 위해, 보조 비디오를 코딩하기 위해 그리고 메인 비디오의 해당 영역 내에서 하나의 슬라이스 및 하나의 타일만을 사용하는 것이 유익할 수 있다. 메인 및 보조 비디오 비트스트림은 SPS, PPS 및 그림 헤더에서 동일한 코딩 도구에 신호로 알려야 한다. 여기에는 블록 분할에 대해 동일한 최대 및 최소 허용 크기를 사용하고 PPS(pps_init_qp_minus26 구문 요소의 동일한 값)에 표시된 것과 동일한 초기 양자화 파라미터 값을 사용하는 것이 포함된다. 코딩 도구 사용은 슬라이스 헤더 레벨에서 수정할 수 있다.
메인 비트스트림과 보조 비트스트림을 모두 ISOBMFF 기반 미디어 파일에서 사용할 수 있는 경우, 메인 비트스트림과 보조 비트스트림을 두 개의 개별 파일 형식 트랙에 저장할 수 있다.
3. 문제
ISOBMFF 기반 미디어 파일의 화면 속 화면 지원과 관련하여 다음과 같은 문제가 발견되었다:
1) 화면 속 화면 메인 및 보조 비트스트림을 개별적으로 저장하기 위해 상이한 파일 형식 트랙을 사용할 수 있지만, ISOBMFF를 기반으로 하는 미디어 파일에서 그러한 한 쌍의 트랙에 대한 그러한 목적을 표시하기 위한 메커니즘이 없다.
2) 예를 들어, 상기 기술된 바와 같이, 화면 속 화면 경험을 위해 VVC 서브 이미지를 사용하는 것이 가능하지만, 메인 비디오에서 타겟 화면 속 화면 영역을 표시하는 코딩된 비디오 데이터 유닛을 보조 비디오의 대응하는 비디오 데이터 유닛으로 대체할 수 없는 다른 코덱 및 방법을 사용하는 것도 가능하다. 따라서 ISOBMFF 기반 미디어 파일에 이러한 대체가 가능한지 여부를 지시할 필요가 있다.
3) 상기 대체가 가능한 경우, 클라이언트는 메인 비디오의 각 그림에서 어떤 코딩된 비디오 데이터 유닛이 타겟 화면 속 화면 영역을 표시하는지 알아야 대체를 수행할 수 있다. 따라서 이 경우에는, ISOBMFF 기반 미디어 파일에서 신호로 이 정보를 알려야 한다.
4) 내용 선택 목적 및 가능한 다른 목적을 위해, ISOBMFF 기반 미디어 파일에는 메인 비디오 내의 타겟 화면 속 화면 영역의 위치 및 크기를 신호로 알리는 것이 유용할 것이다.
4. 예시적인 실시예
앞서 기술한 문제를 해결하기 위해, 아래에 요약된 방법들이 개시되었다. 실시예는 일반적인 개념을 설명하기 위한 예시로 간주되어야 하며 편협한 방식으로 해석되어서는 안 된다. 또한, 이러한 실시예는 개별적으로 또는 임의의 방식으로 조합될 수 있다. 편의를 위해 화면 속 화면 경험을 함께 제공하는 메인 비트스트림 및 보조 비트스트림을 운반하는 한 쌍의 트랙을 화면 속 화면 트랙 또는 화면 속 화면 트랙 쌍이라고 한다.
1) 첫 번째 문제를 해결하기 위해, 트랙 참조를 포함하는 트랙과 트랙 참조에 의해 참조되는 트랙이 한 쌍의 화면 속 화면 트랙임을 표시하기 위해, 새로운 유형의 트랙 참조가 정의된다.
a. 일 예에서, 이 새로운 유형의 트랙 참조는 특정 값, 예를 들어 ‘pips’(“화면 속 화면 보조 비트스트림을 지칭함”의 의미)와 동일한 트랙 참조 유형에 의해 표시되며, 이 트랙 참조를 포함하는 트랙은 메인 비트스트림을 운반하고, 트랙 참조에 의해 지칭된 트랙은 보조 비트스트림을 운반한다.
b. 일 예에서, 이 새로운 유형의 트랙 참조는 특정 값, 예를 들어 ‘pi’(“화면 속 화면 메인 비트스트림을 지칭함”의 의미)와 동일한 트랙 참조 유형에 의해 표시되며, 이 트랙 참조를 포함하는 트랙은 메인 비트스트림을 운반하고, 트랙 참조에 의해 지칭된 트랙은 메인 비트스트림을 운반한다.
c. 또 다른 예에서, 전술한 바와 같은 두 트랙 참조 유형이 모두 정의된다.
2) 첫 번째 및 두 번째 문제를 해결하기 위해, 메인 비트스트림을 운반하는 트랙에 포함될 두 개의 새로운 유형의 트랙 참조가 정의되며, 하나는 메인 비디오 내의 타겟 화면 속 화면 영역을 표시하는 코딩된 비디오 데이터 유닛을 보조 비트스트림의 대응하는 비디오 데이터 유닛으로 대체하는 것을 가능하게 하는 한 쌍의 화면 속 화면 트랙을 표시하고, 다른 하나는 그러한 비디오 데이터 유닛의 대체가 가능하지 않은 한 쌍의 화면 속 화면 트랙을 표시하는 것이다.
a. 일 예에서, 이 두 가지 새로운 유형의 트랙 참조는 각각 ‘ppsr’ (“비디오 데이터 유닛 교체가 활성화된 상태에서 화면 속 화면 보조 비트스트림을 지칭함”의 의미) 및‘ppsn’(“비디오 데이터 유닛 교체가 활성화되지 않은 상태에서 화면 속 화면 보조 비트스트림을 지칭함”의 의미)과 동일한 트랙 참조 유형 값으로 표시된다.
3) 첫 번째 및 두 번째 문제를 해결하기 위해, 대안적으로, 보조 비트스트림을 운반하는 트랙에 포함될 두 가지 새로운 유형의 트랙 참조가 정의되고, 하나는 메인 비디오 내의 타겟 화면 속 화면 영역을 표시하는 코딩된 비디오 데이터 유닛을 보조 비디오의 대응하는 비디오 데이터 유닛으로 대체하는 것을 가능하게 하는 한 쌍의 화면 속 화면 트랙들을 표시하고, 다른 하나는 그러한 비디오 데이터 유닛의 대체가 가능하지 않은 한 쌍의 화면 속 화면 트랙을 표시하는 것이다.
a. 일 예에서, 이 두 가지 새로운 유형의 트랙 참조는 각각 ‘ppmr’ (“비디오 데이터 유닛 교체가 활성화된 상태에서 화면 속 화면 메인 비트스트림을 지칭함”의 의미) 및 ‘ppmn’(비디오 데이터 유닛 교체가 활성화되지 않은 상태에서 화면 속 화면 메인 비트스트림을 지칭함”의 의미)과 동일한 트랙 참조 유형 값으로 표시된다.
4) 첫 번째 및 두 번째 문제를 해결하기 위해, 대안적으로, 상기 항목 2 및 항목3에 기술된 바와 같이, 4개의 새로운 유형의 트랙 참조가 정의된다.
5) 네 가지 문제를 모두 해결하기 위해, 아래에 요약된 새로운 유형의 개체 그룹화를 정의한다.
a. 새로운 유형의 개체 그룹화는 화면 속 화면 개체 그룹화로 명명되며, grouping_type(그룹화 유형)은 ‘pinp’(또는 다른 이름 또는 다른 그룹화 유형 값이지만 아래에서 기술하는 것과 유사한 기능을 갖춤)과 동일하다.
b. 일 예에서, 개체 그룹의 각 개체는 비디오 트랙이어야 한다고 지정된다.
c. PicInPicEntityGroupBox(화면 속 화면 개체 그룹 박스)는 EntityToGroupBox(개체-그룹 박스)를 확장하여 다음 정보 중 하나 또는 그 이상을 전송하도록 정의된다:
i. 메인 비트스트림 트랙 수는 N개이다. EntityToGroupBox(개체-그룹 박스)의 첫 번째 N개의 entity_id(개체 아이디)값으로 식별된 개체(즉, 이 컨텍스트의 트랙)는 메인 비트스트림 트랙이고, EntityToGroupBox(개체-그룹 박스)의 다른 entity_id(개체 아이디) 값으로 식별된 개체는 보조 비트스트림 트랙이다. 화면 속 화면 경험의 재생을 위해, 메인 비트스트림 트랙 중 하나가 선택되고, 보조 비트스트림 트랙 중 하나가 선택된다.
1. 또는 메인 비트스트림 트랙은 EntityToGroupBox(개체-그룹 박스)의 entity_id(개체 아이디) 값 목록에 대한 인덱스 목록에 의해 신호가 알림되며, 개체 그룹의 다른 개체/트랙은 보조 비트스트림 트랙이다.
2. 또는 메인 비트스트림 트랙은 track_id(트랙 아이디) 값 목록으로 신호를 알리고 개체 그룹의 다른 개체/트랙은 보조 비트스트림 트랙이다.
ii. 메인 비디오에서 타겟 화면 속 화면 영역을 표시하는 코딩된 비디오 데이터 유닛을 보조 비디오의 대응하는 비디오 데이터 유닛으로 대체하는 것이 가능한지 여부를 표시하는 표시이다.
1. 일 예에서, 표시는 data_units_replacable(교체 가능한 데이터 유닛)이라는 이름의 원비트 플래그로 신호를 알리며, 값 1과 0은 각각 그러한 비디오 데이터 유닛 교체가 활성화 및 비활성화되었음을 나타낸다.
iii. 메인 비디오의 각 그림에서 어떤 코딩된 비디오 데이터 유닛이 타겟 화면 속 화면 영역을 표시하는지를 표시하기 위한 영역 ID의 목록이다.
1. 일 예에서, 특정 비디오 코덱에 대해 영역 ID를 명시적으로 지정해야 하는 특정 의미를 지정한다.
a. 일 예에서, VVC의 경우, 영역 ID는 서브 이미지 ID이고, 코딩된 비디오 데이터 유닛은 VCL NAL 유닛인 것이 지정된다. 메인 비디오에서 타겟 화면 속 화면 영역을 표시하는 VCL NAL 유닛은 이러한 서브 이미지 ID를 갖는 것으로서, 보조 비디오의 대응하는 VCL NAL 유닛 내의 서브 이미지 ID와 동일한다(일반적으로, 보조 비디오 내의 하나의 그림의 모든 VCL NAL 유닛은 명시적으로 신호를 알리는 동일한 서브 이미지 ID를 공유하고, 이 경우, 영역 ID의 목록 내에 오직 하나의 영역 ID만이 존재함).
b. 일 예에서, VVC의 경우에, 클라이언트가 비디오 디코더로 송신하기 전에, 메인 비디오 내의 타겟 화면 속 화면 영역을 표시하는 코딩된 비디오 데이터 유닛(VCL NAL 유닛)을 보조 비디오의 대응하는 VCL NAL 유닛으로 대체하도록 선택할 때, 각각의 서브 이미지 ID에 대해, 메인 비디오 내의 VCL NAL 유닛은 대응하는 VCL NAL 유닛의 순서를 변경하지 않고, 보조 비디오 내의 그 서브 이미지 ID를 갖는 대응하는 VCL NAL 유닛으로 대체되는 것이 지정된다.
iv. 보조 영상을 내장/중복하기 위한 메인 영상 내 위치 및 크기로서, 메인 영상보다 크기가 작다.
1. 일 예에서, 이는 신호에 의해 지시된 네 가지 값(x, y, 너비, 높이)이고, x, y는 영역의 왼쪽 상단 모서리 위치를 지정하고, 너비와 높이는 영역의 너비와 높이를 지정한다. 단위는 루마 샘플/픽셀일 수 있다.
2. 일 예에서,data_units_replacable(교체 가능한 데이터 유닛)이 1이고 위치 및 크기 정보가 있는 경우 위치 및 크기는 메인 비디오의 타겟 화면 속 화면 영역을 정확히 표시하야 한다고 지정한다.
3. 일 예에서, data_units_replacable(교체 가능한 데이터 유닛)이 0이고 위치 및 크기 정보가 있는 경우,위치 및 크기 정보는 보조 비디오를 덮어쓰며 내장하기 위해 선호된 영역이 지정된다(즉, 클라이언트는 메인 비디오의 다른 영역에 보조 비디오를 덮어쓰도록 선택할 수 있음).
4. 일 예에서,data_units_replacable(교체 가능한 데이터 유닛)이 0이고 위치 및 크기 정보가 없는 경우, 보조 비디오를 덮어쓸 위치에 대한 정보 또는 권장 사항이 없으며 완전히 클라이언트가 선택할 수 있도록 지정된다.
5. 실시예
아래는 예시적인 실시예 항목5 및 섹션4에서 상기 요약된 보조 항목 중 일부에 대한 몇 가지 예시적인 실시예이다.
이러한 실시예는 ISOBMFF에 적용될 수 있다.
5.1 화면 속 화면 개체 그룹화
5.1.1 정의
화면 속 화면 서비스는 공간 해상도가 더 작은 비디오를 공간 해상도가 더 큰 비디오 내에 포함할 수 있는 기능을 제공하며, 각각 보조 비디오와 메인 비디오라고 한다. grouping_type(그룹화 유형)이 ‘pinp’와 같은 동일한 개체 그룹의 트랙은 메인 비디오를 포함하도록 표시된 트랙 중 하나와 다른 트랙 중 하나(보조 비디오 포함)를 선택하여 화면 속 화면 서비스 지원에 사용할 수 있다.
화면 속 화면 개체 그룹의 모든 개체는 비디오 트랙이어야 한다.
5.1.2 구문
aligned(8) class PicInPicEntityGroupBox extends EntityToGroupBox('pinp',0,0) {
unsigned int(8) num_main_video_tracks;
unsigned int(1) data_units_replacable;
unsigned int(1) pinp_window_info_present;
bit (6) reserved = 0;
if(data_units_replacable) {
unsigned int(8) num_region_ids;
for(i=0; i<num_region_ids; i++)
unsigned int(16) region_id[i];
}
if(pinp_window_info_present) {
unsigned int(16) x;
unsigned int(16) y;
unsigned int(16) width;
unsigned int(16) height;
}
}
5.1.3 어의학
num_main_video_tracks은 화면 속 화면 메인 비디오를 운반하는 개체 그룹의 트랙 수를 지정한다.
data_units_replacable은 메인 비디오에서 타겟 화면 속 화면 영역을 표시하는 코딩된 비디오 데이터 유닛이 보조 비디오의 해당 비디오 데이터 유닛으로 대체될 수 있는지 여부를 나타낸다. 값 1은 그러한 비디오 데이터 유닛 교체가 활성화되었음을 표시하고, 값 0은 그러한 비디오 데이터 유닛 교체가 활성화되지 않았음을 나타낸다.
data_units_replacable이 1일 때, 플레이어는 디코딩을 위해 비디오 디코더로 전송하기 전에 메인 비디오에서 타겟 화면 속 화면 영역을 표시하는 코딩된 비디오 데이터 유닛을 보조 비디오의 대응하는 코딩된 비디오 데이터 유닛으로 대체하도록 선택할 수 있다. 이 경우, 메인 비디오 내의 특정 그림에 대해, 보조 비디오의 대응하는 비디오 데이터 유닛은 보조 비디오 트랙 내의 디코딩-시간-동기화된 샘플 내의 모든 코딩된 비디오 데이터 유닛이다. VVC의 경우, 클라이언트가 비디오 디코더로 전송하기 전에, 메인 비디오에서 타겟 화면 속 화면 영역을 표시하는 코딩된 비디오 데이터 유닛(VCL NAL 유닛)을 보조 비디오의 대응하는 VCL NAL 유닛으로 대체하도록 선택할 때, 각각의 서브 이미지 ID에 대해, 메인 비디오의 VCL NAL 유닛은 대응하는 VCL NAL 유닛의 순서를 변경하지 않고, 보조 비디오 내의 그 서브 이미지 ID를 갖는 대응하는 VCL NAL 유닛으로 대체되는 것이 지정된다.
1과 동일한 pinp_window_info_present는 x, y, width(너비) 및 height(높이)필드가 있음을 지정한다. 값1은 이러한 필드가 없음을 지정한다.
num_region_ids는 다음 region_id[i] 필드의 수를 지정한다.
region_id[i]는 타겟 화면 속 화면 영역을 표시하는 코딩된 비디오 데이터 유닛에 대한 i번째 ID를 지정한다.
특정 비디오 코덱에 대해 영역 ID의 구체적인 어의를 명시적으로 지정해야 한다. VVC의 경우, 영역 ID는 서브 이미지 ID이고, 코딩된 비디오 데이터 유닛은 VCL NAL 유닛이다. 메인 비디오에서 타겟 화면 속 화면 영역을 표시하는 VCL NAL 유닛은 이러한 서브 이미지 ID를 갖는 것으로서, 보조 비디오의 대응하는 VCL NAL 유닛에서의 서브 이미지 ID와 동일한다.
x는 메인 비디오에서 타겟 화면 속 화면 영역의 왼쪽 상단 코딩된 비디오 픽셀(샘플)의 수평 위치를 지정한다. 단위는 비디오 픽셀(샘플)이다.
y는 메인 비디오에서 타겟 화면 속 화면 영역의 왼쪽 상단 코딩된 비디오 픽셀(샘플)의 수직 위치를 지정한다. 단위는 비디오 픽셀(샘플)이다.
width는 메인 비디오에서 타겟 화면 속 화면 영역의 너비를 지정한다. 단위는 비디오 픽셀(샘플)이다.
height는 메인 비디오에서 타겟 화면 속 화면 영역의 높이를 지정한다. 단위는 비디오 픽셀(샘플)이다.
본 발명의 실시예는 화면 속 화면 지원을 위한 파일 형식 설계에 관한 것이다. 본 명세서에서 사용되는 바와 같이, “화면 속 화면(PiP) 서비스”는 더 큰 공간 해상도를 갖는 비디오 (“보조 비디오” 또는 “PiP 비디오”라고도 함) 내에 더 작은 공간 해상도를 갖는 비디오를 포함하는 기능을 제공한다.
도 8은 본 발명의 일부 실시예에 따른 비디오 처리를 위한 방법(800)의 흐름도를 도시한다. 방법(800)은 클라이언트 또는 서버에서 구현될 수 있다. 본 발명에서 사용되는 “클라이언트”는 컴퓨터 네트워크의 클라이언트-서버 모델의 일부로서 서버에 의해 이용가능하게 되는 서비스에 액세스하는 컴퓨터 하드웨어 또는 소프트웨어를 지칭할 수 있다. 예를 들어, 클라이언트는 스마트폰 또는 태블릿일 수 있다. 여기서 용어 “서버”는 컴퓨팅이 가능한 장치를 의미할 수 있으며, 이 경우 클라이언트는 네트워크를 통해 서비스에 액세스한다. 서버는 물리적 컴퓨팅 장치 또는 가상 컴퓨팅 장치일 수 있다.
도 8에 도시된 바와 같이, 방법(800)은 제1 비디오의 미디어 파일과 제1 비디오의 비트스트림 간의 변환이 수행되는 (802)에서 시작된다. 이 미디어 파일은 제1 비디오에서 타겟 화면 속 화면 영역을 표시하는 제1 그룹의 코딩된 비디오 데이터 유닛이 제2 비디오와 연관된 제2 그룹의 코딩된 비디오 데이터 유닛에 의해 대체될 수 있을지 여부를 표시하는 제1 지시를 포함한다. 예를 들어, 제1 지시는 1 비트 플래그를 포함할 수 있다. 일 예에서, 상기 플래그가 제1값(예를 들어, 1)인 경우, 상기 제1 그룹의 코딩된 비디오 데이터 유닛은 제2 그룹의 코딩된 비디오 데이터 유닛에 의해 대체 가능하고, 상기 플래그가 제2값(예를 들어, 0)인 경우, 상기 제1 그룹의 코딩된 비디오 데이터 유닛은 제2 그룹의 코딩된 비디오 데이터 유닛에 의해 대체 가능하지 않은다. 상기 예시들은 단지 설명을 목적으로 기술된 것으로 이해되어야 한다. 본 발명의 범위는 이와 관련하여 제한되지 않는다.
상기 방법(800)에 따르면, 표시는 제1 비디오에서 타겟 화면 속 화면 영역을 표시하는 코딩된 비디오 데이터 유닛이 제2 비디오와 연관된 코딩된 비디오 데이터 유닛에 의해 대체 가능한지 여부를 지시하기 위해 사용된다. 따라서 제안된 방법은 유리하게도 ISOBMFF를 기반으로 미디어 파일에서 화면 속 화면 서비스를 지원할 수 있다.
일부 실시예에서, 제2 비디오의 공간 해상도는 제1 비디오의 공간 해상도보다 작다. 즉, 제2 비디오는 보조 비디오가고, 제1 비디오는 메인 비디오가다.
일부 실시예에서, 제1 지시는 제2 비디오의 비트스트림을 운반하는 트랙을 표시하는 제1 트랙 참조를 포함할 수 있다. 예를 들어, 제1 트랙 참조가 제1유형인 경우, 제1 그룹의 코딩된 비디오 데이터 유닛은 제2 그룹의 코딩된 비디오 데이터 유닛에 의해 대체 가능하고, 제1 트랙 참조가 제2유형인 경우, 제2 그룹의 코딩된 비디오 데이터 유닛은 제2 그룹의 코딩된 비디오 데이터 유닛에 의해 대체 가능하지 않은다. 일 예에서, 제1유형의 제1 트랙 참조는“ppsr”트랙 참조이며, 제1유형의 제1 트랙 참조는 “ppsn” 트랙 참조이다. 상기 예시들은 단지 설명을 목적으로 기술된 것으로 이해되어야 한다. 본 발명의 범위는 이와 관련하여 제한되지 않는다.
일부 실시예에서, 제2 비디오의 미디어 파일은 제1 그룹의 코딩된 비디오 데이터 유닛이 제2 그룹의 코딩된 비디오 데이터 유닛에 의해 대체 가능한지 여부를 표시하는 제2지시를 포함한다. 예를 들어, 제2지시는 제1 비디오의 비트스트림을 운반하는 트랙을 표시하는 제2트랙 참조를 포함할 수 있다. 제2트랙 참조가 제3 유형인 경우, 제1 그룹의 코딩된 비디오 데이터 유닛은 제2 그룹의 코딩된 비디오 데이터 유닛에 의해 대체 가능하고, 제2트랙 참조가 제4 유형인 경우, 제1 그룹의 코딩된 비디오 데이터 유닛은 제2 그룹의 코딩된 비디오 데이터 유닛에 의해 대체 가능하지 않은다. 일 예에서, 제3유형의 제2트랙 참조는 “ppsr”트랙 참조이며, 제4유형의 제2트랙 참조는 “ppsn” 트랙 참조이다. 상기 예시들은 단지 설명을 목적으로 기술된 것으로 이해되어야 한다. 본 발명의 범위는 이와 관련하여 제한되지 않는다.
일부 실시예에서, 제1 그룹의 코딩된 비디오 데이터 유닛은 비디오 코딩 계층 네트워크 추상화 계층(VCL NAL) 유닛을 포함할 수 있고, 제2 그룹의 코딩된 비디오 데이터 유닛은 VCL NAL 유닛을 포함할 수 있다.
일부 실시예에서, 변환은 미디어 파일을 생성하고 비트스트림을 미디어 파일에 저장하는 단계를 포함할 수 있다. 일부 추가적인 또는 대안적인 실시예에서, 변환은 비트스트림을 재구성하기 위해 미디어 파일을 파싱하는 단계를 포함할 수 있다.
일부 실시예에서, 제1 비디오의 비트스트림은 비일시적 컴퓨터 판독가능한 기록 매체에 저장될 수 있다. 제1 비디오의 비트스트림은 비디오 처리 장치에 의해 수행되는 방법에 의해 생성될 수 있다. 상기 방법에 따르면, 변환이 제1 비디오의 미디어 파일과 비트스트림 간에 수행된다. 이 미디어 파일은 제1 비디오에서 타겟 화면 속 화면 영역을 표시하는 제1 그룹의 코딩된 비디오 데이터 유닛이 제2 비디오와 연관된 제2 그룹의 코딩된 비디오 데이터 유닛에 의해 대체될 수 있을지 여부를 표시하는 제1 지시를 포함한다.
일부 실시예에서, 변환이 제1 비디오의 미디어 파일과 비트스트림 간에 수행된다. 이 미디어 파일은 제1 비디오에서 타겟 화면 속 화면 영역을 표시하는 제1 그룹의 코딩된 비디오 데이터 유닛이 제2 비디오와 연관된 제2 그룹의 코딩된 비디오 데이터 유닛에 의해 대체될 수 있을지 여부를 표시하는 제1 지시를 포함한다. 비트스트림은 비일시적인 컴퓨터 판독가능한 기록 매체에 저장될 수 있다.
일부 실시예에서, 제1 비디오의 미디어 파일은 비일시적 컴퓨터 판독가능한 기록 매체에 저장될 수 있다. 제1 비디오의 미디어 파일은 비디오 처리 장치에 의해 수행되는 방법에 의해 생성될 수 있다. 상기 방법에 따르면, 변환이 제1 비디오의 미디어 파일과 비트스트림 간에 수행된다. 이 미디어 파일은 제1 비디오에서 타겟 화면 속 화면 영역을 표시하는 제1 그룹의 코딩된 비디오 데이터 유닛이 제2 비디오와 연관된 제2 그룹의 코딩된 비디오 데이터 유닛에 의해 대체될 수 있을지 여부를 표시하는 제1 지시를 포함한다.
일부 실시예에서, 변환이 제1 비디오의 미디어 파일과 비트스트림 간에 수행된다. 이 미디어 파일은 제1 비디오에서 타겟 화면 속 화면 영역을 표시하는 제1 그룹의 코딩된 비디오 데이터 유닛이 제2 비디오와 연관된 제2 그룹의 코딩된 비디오 데이터 유닛에 의해 대체될 수 있을지 여부를 표시하는 제1 지시를 포함한다. 상기 미디어 파일은 비일시적 컴퓨터 판독 가능한 기록 매체에 저장될 수 있다.
본 발명의 실시예는 아래의 조항들을 고려하여 설명될 수 있으며, 그 특징은 어떤 합리적인 방법으로 조합될 수 있다.
조항 1. 제1 비디오의 미디어 파일과 제1 비디오의 비트스트림 간의 변환을 수행하는 단계를 포함하는 비디오 처리를 위한 방법으로서, 상기 미디어 파일은 상기 제1 비디오 내의 타겟 화면 속 화면 영역을 표시하는 제1 그룹의 코딩된 비디오 데이터 유닛이 제2 비디오와 연관된 제2 그룹의 코딩된 비디오 데이터 유닛에 의해 대체될 수 있는지 여부를 표시하는 제1 지시를 포함하는, 미디어 파일.
조항 2. 조항 1에 있어서, 상기 제2 비디오의 공간 해상도는 제1 비디오의 공간 해상도보다 작다.
조항 3. 조항 1 내지 조항 2 중 어느 한 항에 있어서, 상기 제1 지시는 하나의 비트 플래그를 포함하는, 제1 지시.
조항 4. 조항 3에 있어서, 상기 플래그가 제1값인 경우, 제1 그룹의 코딩된 비디오 데이터 유닛은 제2 그룹의 코딩된 비디오 데이터 유닛에 의해 대체 가능하고, 플래그가 제2값인 경우, 제1 그룹의 코딩된 비디오 데이터 유닛은 제2 그룹의 코딩된 비디오 데이터 유닛에 의해 대체 가능하지 않은, 방법.
조항 5. 조항 1 내지 조항 2 중 어느 한 항에 있어서, 상기 제1 지시는 상기 제2 비디오의 비트스트림을 운반하는 트랙을 표시하는 제1 트랙 참조를 포함하는, 제1 지시.
조항 6. 조항 5에 있어서, 상기 제1 트랙 참조가 제1유형인 경우, 제1 그룹의 코딩된 비디오 데이터 유닛은 제2 그룹의 코딩된 비디오 데이터 유닛에 의해 대체 가능하고, 제1 트랙 참조가 제2유형인 경우, 제2 그룹의 코딩된 비디오 데이터 유닛은 제2 그룹의 코딩된 비디오 데이터 유닛에 의해 대체 가능하지 않은, 방법.
조항 7. 조항 6에 있어서, 상기 제1유형의 제1 트랙 참조는“ppsr”트랙 참조이며, 제1유형의 제1 트랙 참조는 “ppsn” 트랙 참조인, 방법.
조항 8. 조항 5 내지 조항 7 중 어느 한 항에 있어서, 상기 제2 비디오의 미디어 파일은 제1 그룹의 코딩된 비디오 데이터 유닛이 제2 그룹의 코딩된 비디오 데이터 유닛에 의해 대체 가능한지 여부를 표시하는 제2지시를 포함하는, 제2 비디오의 미디어 파일.
조항 9. 조항 8에 있어서, 상기 제2지시는 상기 제1 비디오의 비트스트림을 운반하는 트랙을 표시하는 제2트랙 참조를 포함하는, 제2지시.
조항 10. 조항 9에 있어서, 상기 제2트랙 참조가 제3유형인 경우, 제1 그룹의 코딩된 비디오 데이터 유닛은 제2 그룹의 코딩된 비디오 데이터 유닛에 의해 대체 가능하고, 제2트랙 참조가 제3유형인 경우, 제2 그룹의 코딩된 비디오 데이터 유닛은 제2 그룹의 코딩된 비디오 데이터 유닛에 의해 대체 가능하지 않은, 방법.
조항 11. 조항 10에 있어서, 상기 제3유형의 제2트랙 참조는“ppmr”트랙 참조이며, 제4유형의 제2트랙 참조는 “ppmr” 트랙 참조인, 방법.
조항 12. 조항 1 내지 조항 11 중 어느 한 항에 있어서, 상기 제1 그룹의 코딩된 비디오 데이터 유닛은 비디오 코딩 계층 네트워크 추상화 계층(VCL NAL) 유닛을 포함하고, 제2 그룹의 코딩된 비디오 데이터 유닛은 VCL NAL 유닛을 포함하는, 제1 그룹의 코딩된 비디오 데이터 유닛.
조항 13. 조항 1 내지 조항 12 중 어느 한 항에 있어서, 상기 변환은 상기 미디어 파일을 생성하고 상기 비트스트림을 상기 미디어 파일에 저장하는 단계를 포함하는, 변환.
조항 14. 조항 1 내지 조항 12 중 어느 한 항에 있어서, 상기 변환은 상기 비트스트림을 재구성하기 위해 상기 미디어 파일을 파싱하는 단계를 포함하는, 변환.
조항 15. 조항 1 내지 조항 14 중 어느 한 항에 따른 방법이 상기 프로세서에 의해 실행될 때 상기 명령어는 상기 프로세서로 하여금 수행되도록 하는, 프로세서 및 명령어가 있는 비일시적 메모리를 포함하는, 비디오 데이터를 처리하기 위한 장치.
조항 16. 조항 1 내지 조항 14 중 어느 한 항에 따른 방법을 프로세서로 하여금 수행하게 하는 명령어들을 저장하는, 비일시적 컴퓨터 판독가능한 저장 매체.
조항 17. 비디오 처리 장치에 의해 수행되는 방법에 의해 생성되는 제1 비디오의 비트스트림을 저장하는 비일시적 컴퓨터 판독가능한 기록 매체로서, 상기 방법은: 상기 제1 비디오의 미디어 파일과 상기 비트스트림 간의 변환을 수행하는 단계를 포함하고, 상기 미디어 파일은 제1 비디오 내의 타겟 화면 속 화면 영역을 표시하는 제1 그룹의 코딩된 비디오 데이터 유닛이 제2 비디오와 연관된 제2 그룹의 코딩된 비디오 데이터 유닛에 의해 대체 가능한지 여부를 표시하는 제1 지시를 포함하는, 미디어 파일.
조항 18. 제1 비디오의 비트스트림을 저장하기 위한 방법은: 제1 비디오의 미디어 파일과 비트스트림 간의 변환을 수행하는 단계 및 상기 비트스트림을 비일시적 컴퓨터 판독가능 기록 매체에 저장하는 단계를 포함하고, 상기 미디어 파일은 상기 제1 비디오 내의 타겟 화면 속 화면 영역을 표시하는 제1 그룹의 코딩된 비디오 데이터 유닛이 제2 비디오와 연관된 제2 그룹의 코딩된 비디오 데이터 유닛에 의해 대체 가능한지 여부를 표시하는 제1 지시를 포함하는, 비트스트림을 저장하기 위한 방법.
조항 19. 비디오 처리 장치에 의해 수행되는 방법에 의해 생성되는 제1 비디오의 미디어 파일을 저장하는 비일시적 컴퓨터 판독가능한 기록 매체로서, 상기 방법은: 상기 제1 비디오의 미디어 파일과 상기 비트스트림 간의 변환을 수행하는 단계를 포함하고, 상기 미디어 파일은 상기 제1 비디오 내의 타겟 화면 속 화면 영역을 표시하는 제1 그룹의 코딩된 비디오 데이터 유닛이 제2 비디오와 연관된 제2 그룹의 코딩된 비디오 데이터 유닛에 의해 대체될 수 있는지 여부를 표시하는 제1 지시를 포함하는, 미디어 파일.
조항 20. 제1 비디오의 미디어 파일을 저장하기 위한 방법은: 미디어 파일과 제1 비디오의 비트스트림 간의 변환을 수행하는 단계 및 상기 비트스트림을 비일시적 컴퓨터 판독가능한 기록 매체에 저장하는 단계를 포함하고, 상기 미디어 파일은 상기 제1 비디오 내의 타겟 화면 속 화면 영역을 표시하는 제1 그룹의 코딩된 비디오 데이터 유닛이 제2 비디오와 연관된 제2 그룹의 코딩된 비디오 데이터 유닛에 의해 대체 가능한지 여부를 표시하는 제1 지시를 포함하는, 미디어 파일.
예시 장치
도 9는 본 발명의 다양한 실시예가 구현될 수 있는 컴퓨팅 장치(900)의 블록도를 도시한다. 컴퓨팅 장치(900)는 소스 장치(110)(또는 비디오 인코더(114) 또는 (200)) 또는 목표 장치(120)(또는 비디오 디코더(124) 또는 (300))로서 구현되거나 그에 포함될 수 있다.
도 9에 도시된 컴퓨팅 장치(900)는 어떠한 방식으로도 본 발명의 실시예의 기능 및 범위에 대한 어떠한 제한도 제안하지 않고, 단지 도시를 위한 것이라는 것을 인식할 것이다.
도 9에 도시된 바와 같이, 컴퓨팅 장치(900)는 범용 컴퓨팅 장치(900)를 포함한다. 컴퓨팅 장치(900)는 적어도 하나 또는 그 이상의 프로세서들 또는 처리부(910), 메모리(920), 저장부(930), 하나 또는 그 이상의 통신부(940), 하나 또는 그 이상의 입력 장치(950), 및 하나 또는 그 이상의 출력 장치(960)를 포함할 수 있다.
일부 실시예에서, 컴퓨팅 장치(900)는 컴퓨팅 능력을 갖는 임의의 사용자 단말 또는 서버 단말로서 구현될 수 있다. 서버 단말은 서비스 제공자에 의해 제공되는 서버 또는 대규모 컴퓨팅 장치 등일 수 있다. 사용자 단말은 예를 들어, 휴대 전화, 스테이션, 유닛, 장치, 멀티미디어 컴퓨터, 멀티미디어 태블릿, 인터넷 노드, 통신기, 데스크톱 컴퓨터, 휴대용 컴퓨터, 노트북 컴퓨터, 태블릿 컴퓨터, 태블릿 컴퓨터, 개인 통신 시스템(PCS) 장치, 개인 네비게이션 장치, 개인 디지털 어시스턴트(PDA), 오디오/비디오 플레이어, 디지털 카메라/비디오 카메라, 포지셔닝 장치, 텔레비전 수신기, 라디오 방송 수신기, 전자책 장치, 게임 장치, 또는 이들의 임의의 조합을 포함하는 임의의 유형의 휴대 단말일 수 있다. 컴퓨팅 장치(900)는 사용자에 대한 임의의 유형의 인터페이스(예를 들어, “착용식” 회로 등)를 지원할 수 있다고 상상할 수 있다.
처리부(910)는 물리적 프로세서 또는 가상 프로세서일 수 있으며, 메모리(920)에 저장된 프로그램을 기반으로 다양한 프로세스를 구현할 수 있다. 멀티-프로세서 시스템에서, 컴퓨팅 장치(900)의 병렬 처리 능력을 향상시키기 위해, 복수의 처리부는 컴퓨터 실행가능한 명령어를 병렬로 실행한다. 처리부(910)은 중앙처리부(CPU), 마이크로프로세서, 컨트롤러 또는 마이크로컨트롤러로 지칭될 수도 있다.
컴퓨팅 장치(900)는 전형적으로 다양한 컴퓨터 저장 매체를 포함한다. 이러한 매체는 휘발성 및 비휘발성 매체, 또는 분리형 및 비분리형 매체를 포함하되 이에 제한되지 않는 컴퓨팅 장치(900)에 의해 액세스 가능한 임의의 매체일 수 있다. 메모리(920)는 휘발성 메모리(예를 들어, 레지스터, 캐시, 랜덤 액세스 메모리(RAM)), 비 휘발성 메모리(예를 들어, 읽기용 기억 장치(ROM), 전기적 소거 및 프로그램 가능 읽기 전용 기억 장치(EEPROM)), 또는 플래시 메모리 중 임의의 조합일 수 있다. 저장부(930)는 임의의 분리형 또는 비분리형 매체일 수 있고, 메모리, 플래시 메모리 드라이브, 자기 디스크 또는 다른 매체와 같은 기계 판독가능한 매체를 포함할 수 있으며, 이는 정보 및/또는 데이터를 저장하기 위해 사용될 수 있고 컴퓨팅 장치(900)에서 액세스될 수 있다.
컴퓨팅 장치(900)는 추가적인 분리형/비분리형, 휘발성/비휘발성 메모리 매체를 더 포함할 수 있다. 도 9에 도시되지 않았지만, 분리형 및 비휘발성 자기 디스크로 판독 및/또는 기입하기 위한 자기 디스크 드라이브 및 분리형 및 비휘발성 광학 디스크로 판독 및/또는 기입하기 위한 광학 디스크 드라이브를 제공할 수 있다. 이러한 경우 각 드라이브는 하나 이상의 데이터 매체 인터페이스를 통해 버스(미도시)에 연결될 수 있다.
통신부(940)는 통신 매체를 통해 다른 컴퓨팅 장치와 통신을 수행한다. 또한, 컴퓨팅 장치(900) 내의 구성요소의 기능은 통신 연결을 통해 통신할 수 있는 단일 컴퓨팅 클러스터 또는 복수의 컴퓨팅 장치에 의해 구현될 수 있다. 따라서, 컴퓨팅 장치(900)는 하나 또는 그 이상의 다른 서버, 네트워크화된 개인용 컴퓨터(PC)들 또는 더 나아가 일반적인 네트워크 노드와의 논리적인 연결을 사용하여 네트워크화된 환경에서 동작할 수 있다.
입력 장치(950)는 마우스, 키보드, 트래킹 볼, 음성 입력 장치 등과 같은 다양한 입력 장치 중 하나 또는 그 이상일 수 있다. 출력 장치(960)는 디스플레이, 라우드스피커, 프린터 등과 같은 다양한 출력 장치들 중 하나 또는 그 이상일 수 있다. 통신부(940)에 의해, 컴퓨팅 장치(900)는 저장 장치 및 디스플레이 장치와 같은 하나 또는 그 이상의 외부 장치와 통신할 수 있으며, 사용자가 컴퓨팅 장치(900)와 상호 작용할 수 있는 하나 또는 그 이상의 장치 또는 임의의 장치(예: 네트워크 카드, 모뎀 등) 와 통신할 수 있으므로 컴퓨팅 장치(900)는 필요할 때 하나 또는 그 이상의 다른 컴퓨팅 장치와 통신할 수 있다. 이러한 통신은 입력/출력(I/O) 인터페이스(미도시)를 통해 수행될 수 있다.
일부 실시예에서, 단일 장치에 통합되는 대신, 컴퓨팅 장치(900)의 일부 또는 모든 구성요소는 또한 클라우드 컴퓨팅 아키텍처에 배열될 수 있다. 클라우드 컴퓨팅 아키텍처에서, 구성요소는 원격으로 제공될 수 있고, 본 발명에서 기술된 기능을 구현하기 위해 함께 작동할 수 있다. 일부 실시예에서, 클라우드 컴퓨팅은 컴퓨팅, 소프트웨어, 데이터 액세스 및 스토리지 서비스를 제공하며, 이는 최종 사용자가 이러한 서비스를 제공하는 시스템 또는 하드웨어의 물리적 위치 또는 구성을 인식할 필요가 없다. 다양한 실시예에서, 클라우드 컴퓨팅은 적합한 프로토콜을 사용하여 광역 네트워크(예를 들어, 인터넷)를 통해 서비스을 제공한다. 예를 들어, 클라우드 컴퓨팅 제공자는 웹 브라우저 또는 기타 컴퓨팅 구성요소를 통해 액세스할 수 있는 광역 네트워크를 통해 응용 프로그램을 제공한다. 클라우드 컴퓨팅 아키텍처의 소프트웨어 또는 구성요소 및 이에 대응하는 데이터는 원격 위치의 서버에 저장될 수 있다. 클라우드 컴퓨팅 환경의 컴퓨팅 원은 원격 데이터 센터의 위치에 병합되거나 분산될 수 있다. 클라우드 컴퓨팅 인프라는 사용자에게 단일 액세스 포인트 역할을 하지만 공유 데이터 센터를 통해 서비스를 제공할 수 있다. 따라서, 클라우드 컴퓨팅 아키텍처들은 원격 위치의 서비스 제공자로부터 본 명세서에 기술된 구성요소 및 기능을 제공하기 위해 사용될 수 있다. 또는 기존 서버에서 제공하거나 클라이언트 장치에 직접 설치할 수도 있다.
컴퓨팅 장치(900)는 본 발명의 실시예에서 비디오 코딩/복화화를 구현하기 위해 사용될 수 있다. 메모리(920)는 하나 또는 그 이상의 프로그램 명령어를 갖는 하나 또는 그 이상의 비디오 코딩 모듈(925)을 포함할 수 있다. 이들 모듈은 본 발명에 기술된 다양한 실시예의 기능들 수행하기 위해 처리부(910)에 의해 액세스 가능하고 실행가능한다.
비디오 코딩을 수행하는 예시적인 실시예에 있어서, 입력 장치(950)는 코딩될 비디오 데이터를 입력(970)으로 수신할 수 있다. 비디오 데이터는 예를 들어, 비디오 코딩 모듈(925)에 의해 코딩된 비트스트림을 생성하기 위해 처리될 수 있다. 코딩된 비트스트림은 출력 장치(960)를 통해 출력(980)으로서 제공될 수 있다.
비디오 디코딩을 수행하는 예시적인 실시예에 있어서, 입력 장치(950)는 코딩될 비트스트림을 입력(970)으로서 수신할 수 있다. 코딩된 비트스트림은 예를 들어, 비디오 코딩 모듈(925)에 의해 처리되어 디코딩된 비디오 데이터를 생성할 수 있다. 코딩된 비디오 데이터는 출력 장치(960)를 통해 출력(980)으로서 제공될 수 있다.
본 명세서가 특히 그의 바람직한 실시예를 참조하여 도시되고 기술되었지만, 첨부된 청구항들에 의해 정의된 본 출원의 정신 및 범위를 벗어나지 않는 상황에서 그 안에 형식 및 세부 사항의 다양한 변경이 이루어질 수 있음은 당업자들에 의해 이해될 것이다. 이러한 변경은 본 출원의 범위에서 포함되도록 설계되어 있다. 이와 같이, 본 출원의 실시예에 대한 전술된 설명은 제한적인 것을 의도하지 않는다.

Claims (20)

  1. 제1 비디오의 미디어 파일과 제1 비디오의 비트스트림 간의 변환을 수행하는 단계를 포함하고,
    여기서, 상기 미디어 파일은 상기 제1 비디오 중의 타겟 화면 속 화면 영역을 표시하는 제1 그룹의 코딩된 비디오 데이터 유닛이 제2 비디오와 연관된 제2 그룹의 코딩된 비디오 데이터 유닛에 의해 대체 가능한지 여부를 지시하는 제1 지시를 포함하는 것을 특징으로 하는, 비디오 처리를 위한 방법.
  2. 제1항에 있어서,
    상기 제2 비디오의 공간 해상도는 상기 제1 비디오의 공간 해상도보다 작은 것을 특징으로 하는, 비디오 처리를 위한 방법.
  3. 제1항 내지 제2항 중 어느 한 항에 있어서,
    상기 제1 지시는 하나의 비트 플래그를 포함하는 것을 특징으로 하는, 비디오 처리를 위한 방법.
  4. 제3항에 있어서,
    상기 플래그가 제1값인 경우, 상기 제1 그룹의 코딩된 비디오 데이터 유닛은 제2 그룹의 코딩된 비디오 데이터 유닛에 의해 대체 가능하고, 또한,
    상기 플래그가 제2값인 경우, 상기 제1 그룹의 코딩된 비디오 데이터 유닛은 제2 그룹의 코딩된 비디오 데이터 유닛에 의해 대체 가능하지 않은 것을 특징으로 하는, 비디오 처리를 위한 방법.
  5. 제1항 내지 제2항 중 어느 한 항에 있어서,
    상기 제1 지시는 상기 제2 비디오의 비트스트림을 운반하는 트랙을 지시하는 제1 트랙 참조를 포함하는 것을 특징으로 하는, 비디오 처리를 위한 방법.
  6. 제5항에 있어서,
    상기 제1 트랙 참조가 제1유형인 경우, 상기 제1 그룹의 코딩된 비디오 데이터 유닛은 상기 제2 그룹의 코딩된 비디오 데이터 유닛에 의해 대체 가능하고, 또한,
    상기 제1 트랙 참조가 제2유형인 경우, 제1 그룹의 코딩된 비디오 데이터 유닛은 제2 그룹의 코딩된 비디오 데이터 유닛에 의해 대체 가능하지 않은 것을 특징으로 하는, 비디오 처리를 위한 방법.
  7. 제6항에 있어서,
    상기 제1유형의 상기 제1 트랙 참조는“ppsr” 트랙 참조이며, 상기 제1유형의 상기 제1 트랙 참조는 “ppsn” 트랙 참조인 것을 특징으로 하는, 비디오 처리를 위한 방법.
  8. 제5항 내지 제7항 중 어느 한 항에 있어서,
    상기 제2 비디오의 미디어 파일은 상기 제1 그룹의 코딩된 비디오 데이터 유닛이 상기 제2 그룹의 코딩된 비디오 데이터 유닛에 의해 대체 가능한지 여부를 지시하는 제2지시를 포함하는 것을 특징으로 하는, 비디오 처리를 위한 방법.
  9. 제8항에 있어서,
    상기 제2지시는 상기 제1 비디오의 상기 비트스트림을 운반하는 트랙을 지시하는 제2트랙 참조를 포함하는 것을 특징으로 하는, 비디오 처리를 위한 방법.
  10. 제9항에 있어서,
    상기 제2트랙 참조가 제3유형인 경우, 상기 제1 그룹의 코딩된 비디오 데이터 유닛은 상기 제2 그룹의 코딩된 비디오 데이터 유닛에 의해 대체 가능하고, 또한,
    상기 제2트랙 참조가 제4유형인 경우, 상기 제1 그룹의 코딩된 비디오 데이터 유닛은 상기 제2 그룹의 코딩된 비디오 데이터 유닛에 의해 대체 가능하지 않은 것을 특징으로 하는, 비디오 처리를 위한 방법.
  11. 제10항에 있어서,
    상기 제3유형의 상기 제2트랙 참조는“ppmr” 트랙 참조이며, 상기 제4유형의 상기 제2트랙 참조는 “ppmn” 트랙 참조인 것을 특징으로 하는, 비디오 처리를 위한 방법.
  12. 제1항 내지 제11항 중 어느 한 항에 있어서,
    상기 제1 그룹의 코딩된 비디오 데이터 유닛은 비디오 코딩 계층 네트워크 추상화 계층(VCL NAL) 유닛을 포함하고, 또한 상기 제2 그룹의 코딩된 비디오 데이터 유닛은 VCL NAL 유닛을 포함하는 것을 특징으로 하는, 비디오 처리를 위한 방법.
  13. 제1항 내지 제12항 중 어느 한 항에 있어서,
    상기 변환은 상기 미디어 파일을 생성하고, 상기 비트스트림을 상기 미디어 파일에 저장하는 단계를 포함하는 것을 특징으로 하는, 비디오 처리를 위한 방법.
  14. 제1항 내지 제12항 중 어느 한 항에 있어서,
    상기 변환은 상기 비트스트림을 재구성하기 위해 상기 미디어 파일을 파싱하는 단계를 포함하는 것을 특징으로 하는, 비디오 처리를 위한 방법.
  15. 프로세서 및 명령어가 저장된 비일시적 메모리를 포함하고, 여기서 상기 명령어가 상기 프로세서에 의해 실행될 때, 상기 프로세서가 제1항 내지 제14항 중 어느 한 항에 따른 방법을 수행하게 하는 것을 특징으로 하는, 비디오 데이터를 처리하기 위한 장치.
  16. 명령어는 프로세서가 제1항 내지 제14항 중 어느 한 항에 따른 방법을 수행하게 하는 것을 특징으로 하는, 명령어가 저장된 비일시적 컴퓨터 판독가능한 저장 매체.
  17. 비디오 처리 장치에 의해 수행되는 방법에 의해 생성되는 제1 비디오의 비트스트림을 저장하는 비일시적 컴퓨터 판독가능한 기록 매체에 있어서, 상기 방법은:
    상기 제1 비디오의 미디어 파일과 상기 비트스트림 간의 변환을 수행하는 단계를 포함하고,
    여기서, 상기 미디어 파일은 상기 제1 비디오 중의 타겟 화면 속 화면 영역을 표시하는 제1 그룹의 코딩된 비디오 데이터 유닛이 제2 비디오와 연관된 제2 그룹의 코딩된 비디오 데이터 유닛에 의해 대체 가능한지 여부를 지시하는 제1 지시를 포함하는 것을 특징으로 하는, 비일시적 컴퓨터 판독가능한 기록 매체.
  18. 제1 비디오의 미디어 파일과 비트스트림 간의 변환을 수행하는 단계; 및
    상기 비트스트림을 비일시적 컴퓨터 판독가능한 기록 매체에 저장하는 단계를 포함하고,
    여기서, 상기 미디어 파일은 상기 제1 비디오 중의 타겟 화면 속 화면 영역을 표시하는 제1 그룹의 코딩된 비디오 데이터 유닛이 제2 비디오와 연관된 제2 그룹의 코딩된 비디오 데이터 유닛에 의해 대체 가능한지 여부를 지시하는 제1 지시를 포함하는 것을 특징으로 하는, 제1 비디오의 비트스트림을 저장하기 위한 방법.
  19. 비디오 처리 장치에 의해 수행되는 방법에 의해 생성되는 제1 비디오의 미디어 파일을 저장하는 비일시적 컴퓨터 판독가능 기록 매체에 있어서, 상기 방법은:
    상기 미디어 파일과 상기 제1 비디오의 비트스트림 간의 변환을 수행하는 단계를 포함하고,
    여기서, 상기 미디어 파일은 상기 제1 비디오 중의 타겟 화면 속 화면 영역을 표시하는 제1 그룹의 코딩된 비디오 데이터 유닛이 제2 비디오와 연관된 제2 그룹의 코딩된 비디오 데이터 유닛에 의해 대체 가능한지 여부를 지시하는 제1 지시를 포함하는 것을 특징으로 하는, 비일시적 컴퓨터 판독가능 기록 매체.
  20. 미디어 파일과 제1 비디오의 비트스트림 간의 변환을 수행하는 단계; 및
    상기 비트스트림을 비일시적 컴퓨터 판독가능한 기록 매체에 저장하는 단계를 포함하고,
    여기서 상기 미디어 파일은 상기 제1 비디오 중의 타겟 화면 속 화면 영역을 표시하는 제1 그룹의 코딩된 비디오 데이터 유닛이 제2 비디오와 연관된 제2 그룹의 코딩된 비디오 데이터 유닛에 의해 대체 가능한지 여부를 지시하는 제1 지시를 포함하는 것을 특징으로 하는, 제1 비디오의 미디어 파일을 저장하기 위한 방법.
KR1020247010238A 2021-09-27 2022-09-26 비디오 처리를 위한 방법, 기기 및 매체 KR20240050412A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US202163248832P 2021-09-27 2021-09-27
US63/248,832 2021-09-27
PCT/US2022/077043 WO2023049911A1 (en) 2021-09-27 2022-09-26 Method, apparatus, and medium for video processing

Publications (1)

Publication Number Publication Date
KR20240050412A true KR20240050412A (ko) 2024-04-18

Family

ID=85721305

Family Applications (3)

Application Number Title Priority Date Filing Date
KR1020247010242A KR20240050414A (ko) 2021-09-27 2022-09-26 비디오 처리를 위한 방법, 기기 및 매체
KR1020247010320A KR20240049612A (ko) 2021-09-27 2022-09-26 비디오 처리를 위한 방법, 기기 및 매체
KR1020247010238A KR20240050412A (ko) 2021-09-27 2022-09-26 비디오 처리를 위한 방법, 기기 및 매체

Family Applications Before (2)

Application Number Title Priority Date Filing Date
KR1020247010242A KR20240050414A (ko) 2021-09-27 2022-09-26 비디오 처리를 위한 방법, 기기 및 매체
KR1020247010320A KR20240049612A (ko) 2021-09-27 2022-09-26 비디오 처리를 위한 방법, 기기 및 매체

Country Status (3)

Country Link
KR (3) KR20240050414A (ko)
CN (1) CN117999788A (ko)
WO (3) WO2023049910A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024072753A1 (en) * 2022-09-26 2024-04-04 Bytedance Inc. Enhanced signalling of picture-in-picture in media files

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8081684B2 (en) * 2005-08-19 2011-12-20 Qualcomm Incorporated Picture-in-picture processing for video telephony
JP4564464B2 (ja) * 2006-01-05 2010-10-20 株式会社東芝 デジタルコンテンツ再生装置、方法およびプログラム
US20150201199A1 (en) * 2011-12-07 2015-07-16 Google Inc. Systems and methods for facilitating video encoding for screen-sharing applications
US20180242028A1 (en) * 2015-08-20 2018-08-23 Koninklijke Kpn N.V. Forming A Tiled Video On The Basis Of Media Streams
GB2548346B (en) * 2016-03-11 2020-11-18 Sony Interactive Entertainment Europe Ltd Image processing method and apparatus
WO2019195037A1 (en) * 2018-04-03 2019-10-10 Futurewei Technologies, Inc. Bitstream signaling of error mitigation in sub-picture bitstream based viewport dependent video coding
WO2020008106A1 (en) * 2018-07-02 2020-01-09 Nokia Technologies Oy An apparatus, a method and a computer program for video coding and decoding
EP4358036A2 (en) * 2019-03-11 2024-04-24 Huawei Technologies Co., Ltd. Interpolation filter clipping for sub-picture motion vectors

Also Published As

Publication number Publication date
CN117999788A (zh) 2024-05-07
KR20240050414A (ko) 2024-04-18
WO2023049910A1 (en) 2023-03-30
WO2023049911A9 (en) 2024-03-28
WO2023049912A1 (en) 2023-03-30
WO2023049911A1 (en) 2023-03-30
KR20240049612A (ko) 2024-04-16

Similar Documents

Publication Publication Date Title
US20240040139A1 (en) Scalability dimension information constraints
KR20240050412A (ko) 비디오 처리를 위한 방법, 기기 및 매체
KR20240050413A (ko) 비디오 처리를 위한 방법, 장치 및 매체
US20230007210A1 (en) Signaling the Purpose of Preselection
US11985333B2 (en) Indicating which video data units represent a target picture-in-picture region
US20230019913A1 (en) Signaling Size and Position of Target Picture-In-Picture Region
WO2024061331A1 (en) Method, apparatus, and medium for video processing
WO2024061136A1 (en) Method, apparatus, and medium for video processing
CN118044205A (en) Method, apparatus and medium for video processing
KR20240051256A (ko) 비디오 처리를 위한 방법, 장치 및 매체
WO2023137281A2 (en) Method, apparatus, and medium for video processing
WO2023092019A1 (en) Method, apparatus, and medium for video processing
CN118044175A (en) Method, apparatus and medium for video processing
WO2023056455A1 (en) Methods, apparatus, and medium for video prcessing
CN118044177A (en) Video processing method, device and medium
CN118044176A (en) Video processing method, device and medium
CN118020310A (en) Video processing method, device and medium