KR20210065161A - 비디오 인코딩 및 디코딩 방법 및 장치 - Google Patents

비디오 인코딩 및 디코딩 방법 및 장치 Download PDF

Info

Publication number
KR20210065161A
KR20210065161A KR1020217012495A KR20217012495A KR20210065161A KR 20210065161 A KR20210065161 A KR 20210065161A KR 1020217012495 A KR1020217012495 A KR 1020217012495A KR 20217012495 A KR20217012495 A KR 20217012495A KR 20210065161 A KR20210065161 A KR 20210065161A
Authority
KR
South Korea
Prior art keywords
tile
slice
picture
unit
parameter
Prior art date
Application number
KR1020217012495A
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 KR20210065161A publication Critical patent/KR20210065161A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/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/124Quantisation
    • 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/129Scanning of coding units, e.g. zig-zag scan of transform coefficients or flexible macroblock ordering [FMO]
    • 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/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/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/436Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Abstract

하나 이상의 서브-비트스트림을 형성하기 위해 하나 이상의 비트스트림을 인코딩, 디코딩 및 추출하기 위한 기술이 설명된다. 일 예시적인 양태에서, 비디오 또는 픽처 프로세싱을 위한 방법은 픽처를 하나 이상의 타일로 파티셔닝하는 단계 및 하나 이상의 타일에 기초하여 하나 이상의 구성을 사용하여 하나 이상의 비트스트림을 생성하는 단계를 포함한다. 하나 이상의 비트스트림을 생성하는 단계는 하나 이상의 타일 각각을 하나 이상의 슬라이스로 파티셔닝하는 단계, 및, 하나 이상의 슬라이스 중 각각의 슬라이스에 대해, 타일 식별자를 슬라이스의 헤더에서 인코딩하기 위한 제1 인코딩 단계, 및 타일에서의 슬라이스의 위치를 나타내는 슬라이스의 제2 어드레스를, 슬라이스의 헤더에, 인코딩하기 위한 제2 인코딩 단계를 수행하는 단계를 포함한다.

Description

비디오 인코딩 및 디코딩 방법 및 장치
본 특허 문서는 일반적으로 비디오 프로세싱 및 통신에 관한 것이다.
비디오 프로세싱 기술이 발전함에 따라, 재동기화, 병렬 프로세싱, 관심 영역 코딩 및 스트리밍, 패킷화된 전송, 및/또는 뷰포트 종속적 스트리밍을 용이하게 하기 위해 비디오 또는 픽처를 영역으로 파티셔닝하는 것이 종종 바람직하다. 픽처에서의 관심 영역에 대한 더 효율적인 액세스를 가능하게 하기 위해 기존의 파티셔닝 방법을 개선시킬 필요가 있다.
본 특허 문서는, 무엇보다도, 디지털 비디오 또는 픽처를 인코딩하여 하나 이상의 비트스트림을 생성하는 것, 비트스트림을 디코딩하여 디지털 비디오 또는 픽처를 재구성하는 것, 및 하나 이상의 비트스트림을 추출하여 하나 이상의 서브-비트스트림을 형성하는 것을 위한 기술을 설명한다.
일 예시적인 양태상에서, 비디오 또는 픽처 프로세싱을 위한 방법이 개시된다. 이 방법은 픽처를 하나 이상의 타일로 파티셔닝하는 단계 및 하나 이상의 타일에 기초하여 하나 이상의 구성을 사용하여 하나 이상의 비트스트림을 생성하는 단계를 포함한다. 하나 이상의 비트스트림을 생성하는 단계는 하나 이상의 타일 각각을 하나 이상의 슬라이스로 파티셔닝하는 단계, 및, 하나 이상의 슬라이스 중 각각의 슬라이스에 대해, 타일 식별자를 슬라이스의 헤더에서 인코딩하기 위한 제1 인코딩 단계, 및 타일에서의 슬라이스의 위치를 나타내는 슬라이스의 제2 어드레스를, 슬라이스의 헤더에, 인코딩하기 위한 제2 인코딩 단계를 수행하는 단계를 포함한다. 타일 식별자는 슬라이스가 상주(reside)하는 타일을 나타낸다. 제2 어드레스는 픽처에서의 슬라이스의 위치를 나타내는 슬라이스의 제1 어드레스와 타일의 어드레스에 기초하여 결정된다.
다른 예시적인 양태에서, 비디오 또는 픽처 프로세싱에서 픽처를 디코딩하기 위한 방법이 개시된다. 픽처는 하나 이상의 타일로 파티셔닝되고, 하나 이상의 타일 각각은 하나 이상의 슬라이스로 파티셔닝된다. 이 방법은 비트스트림 내의 슬라이스의 헤더로부터 타일 식별자를 획득하는 단계, 비트스트림 내의 슬라이스의 헤더로부터 제2 어드레스를 획득하는 단계, 및 타일 식별자 및 제2 어드레스에 기초하여 픽처에서의 슬라이스의 위치를 나타내는 슬라이스의 제1 어드레스를 결정하는 단계를 포함한다. 타일 식별자는 슬라이스가 상주하는 타일을 나타낸다. 제2 어드레스는 타일에서의 슬라이스의 위치를 나타낸다.
다른 예시적인 양태에서, 비디오 또는 픽처의 하나 이상의 비트스트림을 프로세싱하기 위한 방법이 개시된다. 픽처는 하나 이상의 타일로 파티셔닝되고, 하나 이상의 타일 각각은 하나 이상의 슬라이스로 파티셔닝된다. 이 방법은 픽처의 타겟 영역에 위치된 하나 이상의 타겟 타일을 식별하는 하나 이상의 타겟 타일 식별자를 결정하는 단계를 포함한다. 하나 이상의 타겟 타일 식별자는 하나 이상의 비트스트림에 포함된다. 이 방법은, 하나 이상의 비트스트림 각각으로부터, 슬라이스의 헤더로부터의 타일 식별자를 획득하는 단계를 포함한다. 타일 식별자는 슬라이스가 상주하는 타일을 나타낸다. 이 방법은 슬라이스의 헤더로부터의 타일 식별자가 하나 이상의 타겟 타일 식별자 중 하나와 동일하다는 결정에 기초하여 비트스트림으로부터 서브-비트스트림을 작성(compose)하는 단계를 포함한다. 이 방법은 타겟 영역에 대응하는 타겟 타일 파라미터를 결정하는 단계를 포함한다. 타겟 타일 파라미터는 하나 이상의 타겟 타일의 파티셔닝 방식을 나타내는 타겟 타일 파티셔닝 파라미터를 포함한다. 타겟 타일 파라미터는 하나 이상의 타겟 타일 식별자를 더 포함한다. 이 방법은 타겟 타일 파라미터를 서브-비트스트림의 데이터 유닛에서 인코딩하는 단계를 또한 포함한다.
다른 예시적인 양태에서, 비디오 또는 픽처 프로세싱을 위한 장치가 개시된다. 이 장치는 하나 이상의 구성을 생성하도록 구성된 코더 제어 유닛(coder control unit), 및 하나 이상의 비트스트림을 생성하기 위해 코더 제어 유닛으로부터 하나 이상의 구성을 수신하도록 구성된 인코더를 포함한다. 인코더는 픽처를 하나 이상의 타일로 파티셔닝하고 하나 이상의 타일 각각을 하나 이상의 슬라이스로 파티셔닝하도록 구성된 파티션 유닛을 포함한다. 파티션 유닛은, 하나 이상의 슬라이스 중 각각의 슬라이스에 대해, 슬라이스가 상주하는 타일을 나타내는 타일 식별자를 결정하는 것, 및 타일에서의 슬라이스의 위치를 나타내는 슬라이스의 제2 어드레스를 결정하는 것을 수행하도록 추가로 구성된다. 제2 어드레스는 픽처에서의 슬라이스의 위치를 나타내는 슬라이스의 제1 어드레스와 타일의 어드레스에 기초하여 결정된다.
다른 예시적인 양태에서, 비디오 또는 픽처 프로세싱에서 픽처를 디코딩하기 위한 장치가 개시된다. 픽처는 하나 이상의 타일로 파티셔닝되고, 하나 이상의 타일 각각은 하나 이상의 슬라이스로 파티셔닝된다. 이 장치는 비트스트림 내의 슬라이스의 헤더로부터 타일 식별자를 획득하는 단계, 비트스트림 내의 슬라이스의 헤더로부터 제2 어드레스를 획득하는 단계, 및 타일 식별자 및 제2 어드레스에 기초하여 픽처에서의 슬라이스의 위치를 나타내는 슬라이스의 제1 어드레스를 결정하는 단계를 포함하는 방법을 구현하도록 구성된다. 타일 식별자는 슬라이스가 상주하는 타일을 나타낸다. 제2 어드레스는 타일에서의 슬라이스의 위치를 나타낸다.
다른 예시적인 양태에서, 비디오 또는 픽처의 하나 이상의 비트스트림을 프로세싱하기 위한 장치가 개시된다. 픽처는 하나 이상의 타일로 파티셔닝되고, 하나 이상의 타일 각각은 하나 이상의 슬라이스로 파티셔닝된다. 이 장치는 픽처의 타겟 영역에 위치된 하나 이상의 타겟 타일을 식별하는 하나 이상의 타겟 타일 식별자를 결정하도록 구성된 제어 유닛을 포함한다. 하나 이상의 타겟 타일 식별자는 하나 이상의 비트스트림에 포함된다. 이 장치는, 하나 이상의 비트스트림 각각으로부터, 슬라이스의 헤더로부터의 타일 식별자를 획득하도록 구성된 파싱 유닛(parsing unit)을 포함한다. 타일 식별자는 슬라이스가 상주하는 타일을 나타낸다. 이 장치는 슬라이스의 헤더로부터의 타일 식별자가 하나 이상의 타겟 타일 식별자 중 하나와 동일하다는 결정에 기초하여 서브-비트스트림을 작성하고, 타겟 영역에 대응하는 타겟 타일 파라미터를 결정하며, 타겟 타일 파라미터를 서브-비트스트림의 데이터 유닛에서 인코딩하도록 구성된 형성 유닛을 포함한다. 타겟 타일 파라미터는 하나 이상의 타겟 타일의 파티셔닝 방식을 나타내는 타겟 타일 파티셔닝 파라미터를 포함한다. 타겟 타일 파라미터는 하나 이상의 타겟 타일 식별자를 더 포함한다.
또 다른 예시적인 양태에서, 컴퓨터 프로그램 저장 매체가 개시된다. 컴퓨터 프로그램 저장 매체는 그에 저장된 코드를 포함한다. 이 코드는, 프로세서에 의해 실행될 때, 프로세서로 하여금 설명된 방법을 구현하게 한다.
이들 및 다른 양태가 본 문서에 설명되어 있다.
도 1a는 H.265 표준에서 픽처를 다수의 슬라이스들 및 타일들로 파티셔닝하는 예를 도시한다.
도 1b는 H.265 표준에서 픽처를 다수의 슬라이스들 및 타일들로 파티셔닝하는 다른 예를 도시한다.
도 2는 본 기술의 하나 이상의 실시예에 따른, 비디오 또는 픽처를 코딩하는 예시적인 인코더를 묘사한다.
도 3은 본 기술의 하나 이상의 실시예에 따른, 픽처를 타일들 및 슬라이스들로 파티셔닝하는 예를 도시한다.
도 4는 본 기술의 하나 이상의 실시예에 따른, 픽처를 타일들 및 슬라이스들로 파티셔닝하는 다른 예를 도시한다.
도 5a는 본 기술의 하나 이상의 실시예에 따른, 비트스트림에 타일 파라미터를 표현하기 위한 신택스 구조의 예를 예시한다.
도 5b는 본 기술의 하나 이상의 실시예에 따른, 비트스트림에 타일 파라미터를 표현하기 위한 신택스 구조의 다른 예를 예시한다.
도 5c는 본 기술의 하나 이상의 실시예에 따른, 비트스트림에 타일 파라미터를 표현하기 위한 신택스 구조의 다른 예를 예시한다.
도 5d는 본 기술의 하나 이상의 실시예에 따른, 비트스트림에 타일 파라미터를 표현하기 위한 신택스 구조의 다른 예를 예시한다.
도 5e는 본 기술의 하나 이상의 실시예에 따른, 비트스트림에 타일 파라미터를 표현하기 위한 신택스 구조의 다른 예를 예시한다.
도 5f는 본 기술의 하나 이상의 실시예에 따른, 비트스트림에 타일 파라미터를 표현하기 위한 신택스 구조의 다른 예를 예시한다.
도 5g는 본 기술의 하나 이상의 실시예에 따른, 비트스트림에 타일 파라미터를 표현하기 위한 신택스 구조의 또 다른 예를 예시한다.
도 6a는 본 기술의 하나 이상의 실시예에 따른, 비트스트림에 타일 식별자 및 슬라이스 어드레스를 표현하기 위한 신택스 구조의 예를 도시한다.
도 6b는 본 기술의 하나 이상의 실시예에 따른, 비트스트림에 타일 식별자 및 슬라이스 어드레스를 표현하기 위한 신택스 구조의 다른 예를 도시한다.
도 7은 본 기술의 하나 이상의 실시예에 따른, 비트스트림을 디코딩하는 예시적인 디코더를 묘사한다.
도 8은 본 기술의 하나 이상의 실시예에 따른 추출기의 예를 도시한다.
도 9는 본 기술의 하나 이상의 실시예에 따른 기술을 구현하는 소스 디바이스의 예를 묘사한다.
도 10은 본 기술의 하나 이상의 실시예에 따른 미디어 디바이스의 예를 도시한다.
도 11은 본 기술의 하나 이상의 실시예에 따른, 서브-비트스트림에서의 픽처의 타일 및 슬라이스 파티셔닝의 예를 도시한다.
도 12는 본 기술의 하나 이상의 실시예에 따른, 적어도 비디오 인코더 또는 픽처 인코더를 포함하는 예시적인 디바이스를 도시한다.
도 13은 본 기술의 하나 이상의 실시예에 따른, 적어도 예시적인 디코더를 포함하는 다른 예시적인 디바이스를 도시한다.
도 14는 본 기술의 하나 이상의 실시예에 따른 예시적인 전자 시스템을 도시한다.
도 15는 본 기술의 하나 이상의 실시예에 따른, 비디오 또는 픽처 프로세싱을 위한 방법의 플로차트 표현이다.
도 16은 본 기술의 하나 이상의 실시예에 따른, 비디오 또는 픽처 프로세싱에서 픽처를 디코딩하기 위한 방법의 플로차트 표현이다.
도 17은 본 기술의 하나 이상의 실시예에 따른, 비디오 또는 픽처 프로세싱에서 하나 이상의 비트스트림을 프로세싱하기 위한 방법의 플로차트 표현이다.
섹션 제목은 본 문서에서 가독성을 개선시키기 위해서만 사용되며 각각의 섹션에 개시된 실시예 및 기술의 범위를 해당 섹션으로만 제한하지 않는다. 특정 특징은 H.264/AVC 및 H.265/HEVC 표준의 예를 사용하여 설명된다. 그렇지만, 개시된 기술의 적용 가능성이 H.264/AVC 또는 H.265/HEVC 시스템으로만 제한되지 않는다.
디지털 비디오 및 픽처를 압축하기 위한 기술은 비디오 및 픽처에서의 중복성을 제거하기 위해 픽셀 샘플들 간의 상관 특성을 활용한다. 인코더는 픽처를 다수의 유닛을 포함하는 하나 이상의 영역으로 파티셔닝할 수 있다. 그러한 영역은, 동일한 픽처에서의 다른 영역의 데이터를 참조하지 않고 영역이 디코딩될 수 있도록(또는 이 영역에 대응하는 적어도 신택스 요소가 올바르게 파싱될 수 있도록), 픽처 내에서의 예측 종속성을 깨뜨린다. 영역의 파티셔닝은 데이터 손실 이후의 재동기화, 병렬 프로세싱, 관심 영역 코딩 및 스트리밍, 패킷화된 전송, 뷰포트 종속적 스트리밍 등을 용이하게 한다. 예를 들어, H.264/AVC 표준에서, 그러한 영역의 일 예는 슬라이스 및 슬라이스 그룹일 수 있다. H.265/HEVC 표준에서, 그러한 영역의 예는 슬라이스 및 타일일 수 있다.
차세대 비디오 코딩 표준의 개발에서, MPEG(Moving Picture Experts Group)는 차세대 비디오 코덱에 압축된 비트스트림으로부터 원하는 뷰포트의 효율적인 추출을 가능하게 하도록 요구한다. 추가적으로, 4K, 8K 및 심지어 더 고해상도 비디오를 포함하는 애플리케이션에서, 뷰어가 단말 디바이스에서 렌더링하기 위한 뷰포트를 선택하도록 허용될 수 있다. 따라서, 원래 해상도에 대응하는 비트스트림으로부터 서브-비트스트림의 효율적인 추출을 가능하게 하는 것이 필요하다.
H.265/HEVC 표준이 현재 발표된 비디오 코딩 표준들 중 가장 높은 코딩 효율을 제공하기 때문에, H.265/HEVC는 전형적으로 현재 스테이지에서 위에서 설명된 비디오 서비스를 배포하는 데 코덱으로서 선택된다. H.265/HEVC 표준은 슬라이스와 타일을 정의한다. 픽처는 하나 이상의 타일과 슬라이스로 파티셔닝될 수 있다. 도 1a 및 도 1b는 H.265/HEVC 표준에서 픽처를 다수의 슬라이스들과 타일들로 파티셔닝하는 예를 도시한다. H.265/HEVC 표준에 따르면, 적합성 요구사항은 각각의 슬라이스 및 타일에 대해 이하의 조건들 중 하나 또는 둘 모두가 충족되어야 한다는 것이다:
- 슬라이스 내의 모든 코딩 트리 유닛(CTU)은 동일한 타일에 속한다.
- 타일 내의 모든 CTU는 동일한 슬라이스에 속한다.
타일 경계에서 루프 필터링 동작을 제한하는 것(예를 들면, PPS에서 loop_filter_across_tiles_enabled_flag가 0으로 설정됨)에 의해, 픽처 내의 타일은 타일 외부의 픽처의 다른 영역을 참조하지 않고 독립적으로 디코딩될 수 있다. 코딩된 비디오 시퀀스(CVS) 내의 모든 픽처에 동일한 타일 파티셔닝이 적용된다고 가정한다. 게다가, 인코더가 하나 이상의 타일로 구성된 영역의 탐색 범위를 인터 예측 코딩을 위한 하나 이상의 참조 픽처에서의 타일의 공존 영역(collocated region)으로서 제한하는 경우, 디코더는 공간적으로 영역을 포함하는 현재 디코딩 픽처에서도 및 시간적으로 참조 픽처에서도 영역 외부의 어떤 다른 부분도 참조하지 않고 영역을 디코딩할 것이다. 그러한 영역은 MCTS(motion constrained tile set)라고 지칭될 수 있다.
원래 비트스트림으로부터 MCTS에 대응하는 부분 비트스트림을 추출하면 서브-비트스트림이 얻어진다. 서브-비트스트림을 디코딩하는 것은 MCTS에 의해 표현된 픽처 영역과 동일한 해상도의 비디오를 획득한다. 서브-비트스트림을 디코딩 가능하게 만들기 위해, 추출 프로세스에서 일부 신택스 요소가 재기입될 필요가 있다. 예를 들어, 픽처의 중앙에 위치된 하나 이상의 MCTS가 원래 비트스트림으로부터 추출되어 서브-비트스트림을 형성하는 경우, 서브-비트스트림에서 슬라이스 어드레스가 0부터 시작하도록 추출 프로세스에서 슬라이스 어드레스(예를 들면, 슬라이스 헤더에서 시그널링됨)가 재기입된다.
그렇지만, 기존의 기술에서는 몇 가지 문제점이 존재한다. 일반적으로, 슬라이스 레이어 RBSP(Raw Byte Sequence Payload)를 위한 NAL(Network Abstraction Layer) 유닛은 VCL(Video Coding Layer) NAL 유닛으로서 분류된다. 기존의 기술은 비트스트림으로부터 MCTS 서브세트의 VCL NAL 유닛을 추출할 때 VCL NAL 유닛 수정을 수행하고 VCL NAL 유닛을 재배치하여 서브-비트스트림을 형성할 필요가 있다. 그러한 수정 동작은 단말 디바이스에 서브-비트스트림의 스트리밍을 제공하는 디바이스의 계산 부담을 크게 증가시킨다.
게다가, 각각의 타일의 크기와 위치를 명시하는 PPS에서의 타일 파티셔닝에 대한 표시를 제외하고는, 다른 데이터 구조 또는 신택스 요소가 타일에 대응하는 비트스트림에서 제시되지 않으며, 이는 구현에서의 추가 복잡도를 가져온다. 예를 들어, 디바이스는 이 슬라이스가 어느 타일에 상주하는지를 결정하기 위해 슬라이스 어드레스를 획득해야 한다. 원래 비트스트림으로부터 서브-비트스트림을 추출하는 것을 수행할 때, 디바이스 내의 추출기는 먼저 PPS를 디코딩하여 원래 픽처에서의 추출될 타겟 타일에 의해 커버되는 영역을 확정(nail down)하고, 이 원래 비트스트림 내의 모든 슬라이스 헤더를 디코딩하여 슬라이스 어드레스의 값을 획득한다. 이어서 추출기는 슬라이스 어드레스를 슬라이스의 좌표 값(예를 들면, 슬라이스 내의 제1 샘플의 좌표)으로 변환하여 이 슬라이스가 이 타겟 타일에 있는지 여부를 결정한다. 만약 그렇다면, 추출기는 이 슬라이스를 포함하는 NAL 유닛을 추출하여 서브-비트스트림을 구성하고, 필요한 경우 슬라이스 어드레스를 재기입한다.
이 특허 문서는 추출 프로세스에서 슬라이스 헤더에 슬라이스 어드레스를 재기입하는 것을 피하기 위해 다양한 기술이 적용될 수 있다는 것을 설명한다. 예를 들어, 슬라이스 어드레스는 슬라이스 내의 제1 샘플의 좌표로서 표현될 수 있다. 일부 실시예에서, 슬라이스 어드레스는 파라미터 세트에 표시된 제1 어드레스와 슬라이스 헤더에 표시된 제2 어드레스의 합으로서 계산된다. 제1 어드레스는 픽처 내의 모든 슬라이스들의 전역 어드레스이고, 제2 어드레스는 전역 어드레스로부터 슬라이스 내의 제1 샘플의 오프셋이다. (2D 픽처에서 또는 구형 픽처(spherical picture)에서) 단일 타일 또는 다수의 인접 타일들의 NAL 유닛을 추출하여 서브-비트스트림을 형성할 때, 추출된 타일들이, 슬라이스 헤더 내의 제2 어드레스를 수정함이 없이, 서브-비트스트림을 디코딩하여 획득된 픽처("서브-픽처"라고 표기됨)에서의 의도된 위치에 배치되도록, 추출기는 파라미터 세트 내의 제1 어드레스를 수정하기만 하면 된다.
예를 들어, 타일 내의 슬라이스의 어드레스는 (600, 800)이다. 비트스트림에서, 파라미터 세트 내의 제1 어드레스는 (0, 0)으로 코딩되고, 제2 어드레스는 (600, 800)으로 코딩된다. 추출기는 이 타일에 대응하는 NAL 유닛들을 수집하여 서브-비트스트림을 구성한다. 서브-픽처에서, 슬라이스의 어드레스는 (0, 0)이다. 이 추출기는 새로운 제1 어드레스를 (-600, -800)으로 결정하고, 새로운 제1 어드레스를 사용하여 파라미터 세트 내의 제1 어드레스를 대체한다. 즉, 이 추출기는 파라미터 세트 내의 제1 어드레스를 (-600, -800)으로 재기입한다. 따라서, 이 추출기는 슬라이스 헤더 내의 제2 어드레스를 재기입할 필요가 없어, 위에서 논의된 문제를 제거한다.
개시된 기술의 일부 예는 이하의 예시적인 실시예에서 설명된다. 비디오가 하나 이상의 픽처의 시퀀스로 작성된다는 점에 유의한다. 비디오 기본 스트림(video elementary stream)이라고도 지칭되는 비트스트림은 비디오 또는 픽처를 프로세싱하는 인코더에 의해 생성된다. 비트스트림은 또한 비디오 또는 픽처 인코더에 의해 생성된 비디오 기본 스트림에 대해 시스템 레이어 프로세스를 수행한 출력인 전송 스트림 또는 미디어 파일일 수 있다. 비트스트림을 디코딩하면 비디오 또는 픽처가 얻어진다. 시스템 레이어 프로세스는 비디오 기본 스트림을 캡슐화하는 것이다. 예를 들어, 비디오 기본 스트림은 전송 스트림 또는 미디어 파일에 페이로드로서 패킹된다. 시스템 레이어 프로세스는 전송 스트림 또는 미디어 파일을 전송을 위한 스트림 또는 저장을 위한 파일에 페이로드로서 캡슐화하는 동작을 또한 포함한다. 시스템 레이어 프로세스에서 생성된 데이터 유닛은 시스템 레이어 데이터 유닛이라고 지칭된다. 시스템 레이어 프로세스에서 페이로드를 캡슐화하는 동안 시스템 레이어 데이터 유닛에 첨부된 정보는 시스템 레이어 정보, 예를 들어, 시스템 레이어 데이터 유닛의 헤더라고 한다. 비트스트림을 추출하는 것은 비트스트림의 비트들의 일부는 물론 추출 프로세스에 의한 신택스 요소들에 대한 하나 이상의 필요한 수정을 포함하는 서브-비트스트림을 획득한다. 서브-비트스트림을 디코딩하는 것은 비디오 또는 픽처를 결과하고, 이는, 비트스트림을 디코딩하는 것에 의해 획득된 비디오 또는 픽처와 비교하여, 더 낮은 해상도 및/또는 더 낮은 프레임 레이트를 가질 수 있다. 서브-비트스트림으로부터 획득된 비디오 또는 픽처가 또한 비트스트림으로부터 획득된 비디오 또는 픽처의 영역일 수 있다.
실시예 1
이 실시예는 인코더에 의해 사용될 수 있는 다양한 기술을 설명한다. 도 2는 본 기술의 하나 이상의 실시예에 따른, 비디오 또는 픽처를 코딩하는 예시적인 인코더(200)를 묘사한다. 도 2에 도시된 바와 같이, 인코더(200)의 입력은 비디오이고 출력은 비트스트림이다. 비디오는 픽처들의 시퀀스를 포함한다. 인코더(200)는 미리 설정된 순서(예를 들면, 인코딩 순서)로 픽처들을 하나씩 프로세싱한다. 인코딩 순서는 인코더에 대한 구성 파일에 명시된 예측 구조에 따라 결정된다. 비디오에서의 픽처들의 인코딩 순서(디코더 단(decoder end)에서의 픽처들의 디코딩 순서에 대응함)는 픽처들의 디스플레이 순서와 동일할 수 있거나 또는 픽처들의 디스플레이 순서와 상이할 수 있다는 점에 유의한다.
파티션 유닛(201)은 인코더(200)의 구성에 따라 입력 비디오에서의 픽처를 파티셔닝한다. 일반적으로, 픽처는 하나 이상의 최대 코딩 블록으로 파티셔닝될 수 있다. 최대 코딩 블록은 인코딩 프로세스에서의 허용된 또는 구성된 최대 블록이며 일반적으로 픽처 내의 정사각형 영역이다. 픽처는 하나 이상의 타일로 파티셔닝될 수 있고, 타일은 정수 개수의 최대 코딩 블록 또는 비-정수 개수의 최대 코딩 블록을 포함할 수 있다. 타일은 추가로 하나 이상의 슬라이스로 파티셔닝될 수 있고, 각각의 슬라이스는 정수 개수의 최대 코딩 블록 또는 비-정수 개수의 최대 코딩 블록을 포함할 수 있다. 파티션 유닛(201)은 고정 패턴(예를 들면, 픽처가 최대 코딩 블록들의 행을 포함하는 슬라이스들로 파티셔닝됨)을 사용하여 또는 동적 패턴을 사용하여 픽처를 파티셔닝하도록 구성될 수 있다. 예를 들어, 최대 전송 유닛(MTU) 크기의 제한에 적응하기 위해, 파티션 유닛(201)은 모든 슬라이스의 코딩 비트들의 개수가 MTU 제한을 초과하지 않도록 보장하기 위해 동적 슬라이스 파티셔닝 방법을 이용할 수 있다.
도 3은 본 기술의 하나 이상의 실시예에 따른, 픽처를 타일들 및 슬라이스들로 파티셔닝하는 예를 도시한다. 파티션 유닛(201)은 픽처(30)를 8개의 타일(300, 310, 320, 330, 340, 350, 360 및 370)로 파티셔닝한다. 일반적으로, 픽처를 하나 이상의 타일로 파티셔닝하는 것은 인코더 구성 파일에 따라 수행된다. 파티션 유닛(201)은 픽처를 타일들로 파티셔닝하는 방식을 나타내기 위해 파티셔닝 파라미터를 설정한다. 예를 들어, 파티셔닝 방식은 픽처를 동일한 크기 또는 거의 동일한 크기의 타일들로 파티셔닝하는 것일 수 있다. 다른 예로서, 파티셔닝 방식은 유연한 파티셔닝을 용이하게 하기 위해 행 및/또는 열에서의 타일 경계의 위치를 나타낼 수 있다.
파티션 유닛(201)은 타일에 타일 식별자를 할당한다. 일부 실시예에서, 파티션 유닛(201)은 픽처에서 래스터 스캐닝 순서(raster scanning order)로(즉, 수평 방향으로 좌에서 우로, 수직 방향으로 위에서 아래로) 타일들을 스캔한다. 파티션 유닛(201)은 이어서 타일 식별자를 타일에 하나씩 할당한다. 타일 식별자는 기본 값(default value) 또는 미리 설정된 값으로부터 시작하여 오름차순 또는 내림차순으로 설정될 수 있다. 예를 들어, 도 3에 도시된 바와 같이, 파티션 유닛(201)은 타일 식별자(0, 1, 2, 3, 4, 5, 6 및 7)를 타일(300, 310, 320, 330, 340, 350, 360 및 370)에 제각기 할당한다. 일부 구현예에서, 파티션 유닛(201)은 또한 임의의 값의 타일 식별자를 타일에 할당할 수 있다. 예를 들어, 파티션 유닛(201)이 픽처 내의 임의의 2개의 타일에 상이한 타일 식별자가 할당된다는 적합성 제한을 충족시키는 한, 파티션 유닛(201)은 타일 식별자(19, 2000, 69, 256, 1450, 109, 666 및 190)를 타일(300, 310, 320, 330, 340, 350, 360 및 370)에 제각기 할당할 수 있다.
도 4는 본 기술의 하나 이상의 실시예에 따른, 픽처를 타일들 및 슬라이스들로 파티셔닝하는 다른 예를 도시한다. 파티션 유닛(201)은 픽처(40)를 8개의 타일(4100, 4110, 4120, 4130, 4140, 4150, 4160 및 4170)로 파티셔닝한다. 파티션 유닛(201)은 타일 식별자(10, 11, 12, 13, 14, 15, 16 및 17)를 타일(4100, 4110, 4120, 4130, 4140, 4150, 4160 및 4170)에 제각기 할당한다. 일부 구현예에서, 파티션 유닛(201)은 또한 임의의 값의 타일 식별자를 타일에 할당할 수 있다. 예를 들어, 파티션 유닛(201)이 픽처 내의 임의의 2개의 타일에 상이한 타일 식별자가 할당된다는 적합성 제한을 충족시키는 한, 파티션 유닛(201)은 타일 식별자(100, 20, 60, 45, 37, 1000, 555 및 32)를 타일(4100, 4110, 4120, 4130, 4140, 4150, 4160 및 4170)에 제각기 할당할 수 있다.
파티션 유닛(201)은 또한 픽처를 타일들로 파티셔닝하는 방식을 나타내는 타일 파티셔닝 파라미터 및 타일 식별자를 포함하는 타일 파라미터를 결정한다. 파티션 유닛(201)은 타일 파라미터를 그의 출력 파라미터들 중 하나로서 취한다.
파티션 유닛(201)은 픽처 내의 각각의 타일을 하나 이상의 슬라이스로 추가로 파티셔닝한다. 파티션 유닛(201)은 동적 슬라이스 파티셔닝 스킴 및/또는 고정 슬라이스 파티셔닝 스킴을 이용하도록 선택할 수 있다. 도 3을 다시 참조하면, 파티션 유닛(201)은 동적 슬라이스 파티셔닝 스킴을 사용한다. 파티션 유닛(201)은 슬라이스가 어느 타일에 상주하는지를 나타내기 위해 슬라이스에 대한 타일 식별자를 결정한다. 파티션 유닛(201)은 이어서 타일(300)을 하나의 슬라이스(3000)로 파티셔닝하고, 이 슬라이스의 타일 식별자를 0과 동일하게 설정하며, 타일(310)을 3개의 슬라이스(3100, 3101 및 3102)로 파티셔닝하고, 슬라이스들의 타일 식별자들을 1과 동일하게 설정한다. 파티션 유닛(201)은 또한 타일(320)을 3개의 슬라이스(3200, 3201 및 3202)로 파티셔닝하고 슬라이스들의 타일 식별자들을 2와 동일하게 설정한다. 유사하게, 파티션 유닛(201)은 타일(330)을 2개의 슬라이스(3300 및 3301)로 파티셔닝하고, 슬라이스들의 타일 식별자들을 3과 동일하게 설정하며, 이하 마찬가지이다. 동적 슬라이스 파티셔닝의 일 구현 예는 MTU 크기의 제한에 적응하는 것이다. 인코더는 슬라이스의 코딩 비트들의 개수를 모니터링하고, 코딩 비트들의 개수가 MTU의 크기에 따른 임계치에 도달할 때 슬라이스를 종료한다. 특히, 타일 내의 마지막 슬라이스를 인코딩할 때, 이 슬라이스의 코딩 비트들의 개수가 임계치 미만인 경우, 인코더는 이 슬라이스의 코딩 비트들을 포함하는 패킷에 비트들을 패딩할 수 있다.
도 4를 다시 참조하면, 파티션 유닛(201)은 이 예에서 고정 슬라이스 파티셔닝 스킴을 사용한다. 파티션 유닛(201)은 동일한 방식으로 픽처(40) 내의 각각의 타일을 4개의 슬라이스로 파티셔닝한다. 파티션 유닛(201)은 슬라이스가 어느 타일에 상주하는지를 나타내기 위해 슬라이스에 대한 타일 식별자를 결정한다. 파티션 유닛(201)은 타일(4100)을 4개의 슬라이스(41000, 41001, 41002 및 41003)로 파티셔닝하고, 슬라이스들의 타일 식별자들을 10과 동일하게 설정한다. 파티션 유닛(201)은 이어서 타일(4110)을 4개의 슬라이스(41100, 41101, 41102 및 41103)로 파티셔닝하고, 슬라이스들의 타일 식별자들을 11과 동일하게 설정한다. 유사하게, 파티션 유닛(201)은 타일(4120)을 4개의 슬라이스(41200, 41201, 41202 및 41203)로 파티셔닝하고, 슬라이스들의 타일 식별자들을 12와 동일하게 설정하며, 이하 마찬가지이다. 파티션 유닛(201)의 출력 파라미터가 슬라이스의 타일 식별자를 포함한다는 점에 유의한다.
픽처를 파티셔닝할 때, 파티션 유닛(201)은 픽처에서의 타일의 어드레스를 기록한다. 일부 실시예에서, 타일의 어드레스는 픽처 내의 타일에서의 제1 샘플의 위치의 좌표로서 표현될 수 있다. 일부 실시예에서, 타일의 어드레스는 픽처 내의 타일에서의 제1 코딩 블록의 순서 번호로서 표현될 수 있다. 파티션 유닛(201)은 또한 타일에 의해 커버되는 픽처에서의 범위를, 예를 들어, 픽처 내의 타일의 시작 샘플의 위치 및 종료 샘플의 위치로서 또는 픽처 내의 타일의 시작 코딩 블록의 순서 번호 및 종료 블록의 순서 번호로서 기록한다.
게다가, 파티션 유닛(201)은 픽처에서의 슬라이스의 어드레스를 기록한다. 픽처에서의 슬라이스의 어드레스는 슬라이스의 제1 어드레스로서 표기된다. 일부 실시예에서, 슬라이스의 제1 어드레스는 픽처 내의 슬라이스에서의 제1 샘플의 위치의 좌표로서 표현될 수 있다. 일부 실시예에서, 슬라이스의 제1 어드레스는 픽처 내의 슬라이스에서의 제1 블록의 순서 번호로서 표현될 수 있다. 파티션 유닛(201)은 또한 슬라이스에 의해 커버되는 픽처에서의 범위를, 예를 들어, 픽처에서의 슬라이스의 시작 샘플의 위치 및 종료 샘플의 위치로서 또는 픽처에서의 슬라이스의 시작 코딩 블록의 순서 번호 및 종료 블록의 순서 번호로서 기록한다. 파티션 유닛(201)이 (예를 들면, 인코더 구성 파일로부터) 코딩 블록의 크기를 이미 알고 있기 때문에, 파티션 유닛(201)은 좌표를 순서 번호로 그리고 그 반대로 변환할 수 있다.
파티션 유닛(201)이 슬라이스가 슬라이스의 제1 어드레스에 따른 타일, 픽처 내의 타일, 및 픽처 내의 타일의 커버 범위에 있다고 결정할 때, 파티션 유닛(201)은 슬라이스의 제2 어드레스를 타일 내의 슬라이스에서의 제1 샘플의 위치의 좌표로서 또는 타일 내의 슬라이스에서의 제1 코딩 블록의 순서 번호로서 결정한다. 제1 어드레스가 좌표에 의해 표현되는 경우, 제2 어드레스는 슬라이스 내의 제1 샘플의 위치와 슬라이스가 상주하는 타일 내의 제1 샘플의 위치 사이의 좌표 오프셋과 동일하다. 제1 어드레스가 코딩 블록의 순서 번호에 의해 표현되는 경우, 제2 슬라이스 어드레스는 타일 내의 제1 코딩 블록의 순서 번호와 동일하다. 순서 번호는 미리 정의되거나 선택된 순서(예를 들면, 래스터 스캐닝 순서)의 타일 내의 코딩 블록들의 스캐닝 순서에 기초하여 결정된다. 예를 들어, 어느 스캐닝 순서가 사용되는지에 관계없이 타일 내의 제1 슬라이스의 제1 코딩 블록의 순서 번호가 0이기 때문에, 타일 내의 제1 슬라이스의 제2 슬라이스 어드레스는 0과 같다. 또한, 파티션 유닛(201)의 출력 파라미터가 슬라이스의 제2 어드레스를 또한 포함한다는 점에 유의한다.
도 2를 다시 참조하면, 예측 유닛(202)은 코딩 블록의 예측 샘플을 결정한다. 예측 유닛(202)은 블록 파티션 유닛(203), 모션 추정(ME) 유닛(204), 모션 보상(MC) 유닛(205) 및 인트라 예측 유닛(206)을 포함한다. 예측 유닛(202)의 입력은 파티션 유닛(201)에 의해 출력된 최대 코딩 블록을 포함한다. 예측 유닛(202)의 입력은, 픽처, 슬라이스 및/또는 타일에서의 최대 코딩 블록의 위치와 같은, 최대 코딩 블록과 연관된 속성 파라미터를 또한 포함한다. 예측 유닛(202)은 최대 코딩 블록을 하나 이상의 코딩 블록으로 파티셔닝하고, 이 코딩 블록은 쿼드트리(quadtree), 이진 분할(binary split) 및/또는 삼진 분할(ternary split)과 같은 하나 이상의 파티셔닝 방법을 사용하여 더 작은 코딩 블록들로 추가로 파티셔닝될 수 있다. 예측 유닛(202)은 파티셔닝에서 획득된 코딩 블록에 대한 예측 샘플을 결정한다. 선택적으로, 예측 유닛(202)은 예측 샘플을 결정하기 위해 코딩 블록을 하나 이상의 예측 블록으로 추가로 파티셔닝할 수 있다. 예측 유닛(202)은 DPB(Decoded Picture Buffer) 유닛(214) 내의 하나 이상의 픽처를 참조로서 이용하여 코딩 블록의 인터 예측 샘플을 결정할 수 있다. 예측 유닛(202)은 또한 (필터링 유닛(213)에 의해 프로세싱되지 않은) 가산기(212)로부터의 픽처의 재구성된 부분을 참조로서 이용하여 코딩 블록의 인터 예측 샘플을 도출할 수 있다. 일부 실시예에서, 예측 유닛(202)은 일반적인 RDO(rate-distortion optimization) 방법을 사용하여, 예측 유닛(202)의 출력 파라미터이기도 한, 코딩 블록의 예측 샘플 및 예측 샘플을 도출하기 위한 연관된 파라미터를 결정한다.
예측 유닛(202) 내에서, 블록 파티션 유닛(203)은 코딩 블록의 파티셔닝을 결정한다. 블록 파티션 유닛(203)은 최대 코딩 블록을 하나 이상의 코딩 블록으로 파티셔닝하고, 이 코딩 블록은 또한 더 작은 코딩 블록들로 추가로 파티셔닝될 수 있다. 쿼드트리, 이진 분할 및 삼진 분할과 같은, 하나 이상의 파티셔닝 방법이 적용될 수 있다. 선택적으로, 블록 파티션 유닛(203)은 예측 샘플을 결정하기 위해 코딩 블록을 하나 이상의 예측 블록으로 추가로 파티셔닝할 수 있다. 블록 파티션 유닛(203)은 코딩 블록의 파티셔닝의 결정에서 RDO 방법을 채택할 수 있다. 블록 파티션 유닛(203)의 출력 파라미터는 코딩 블록의 파티셔닝을 나타내는 하나 이상의 파라미터를 포함한다.
ME 유닛(204) 및 MC 유닛(205)은 DPB 유닛(214)으로부터의 하나 이상의 디코딩된 픽처를 참조 픽처로서 사용하여 코딩 블록의 인터 예측 샘플을 결정한다. ME 유닛(204)은 하나 이상의 참조 픽처를 포함하는 하나 이상의 참조 리스트를 구성하고 코딩 블록에 대한 참조 픽처에서 하나 이상의 매칭 블록을 결정한다. MC 유닛(205)는 매칭 블록에서의 샘플을 사용하여 예측 샘플을 도출하고, 코딩 블록에서의 원래 샘플과 예측 샘플 간의 차이(예를 들면, 잔차)를 계산한다. 참조 리스트 인덱스, 참조 인덱스(refIdx), 모션 벡터(MV) 등을 포함한, ME 유닛(204)의 출력 파라미터는 매칭 블록의 위치를 나타낸다. 참조 리스트 인덱스는 매칭 블록이 위치되는 참조 픽처를 포함하는 참조 리스트를 나타낸다. 참조 인덱스는 매칭 블록을 포함하는 참조 리스트에서의 참조 픽처를 나타낸다. MV는 픽처에서의 픽셀의 위치를 표현하기 위한, 코딩 블록의 위치와 동일한 좌표에 있는 매칭 블록의 위치 간의 상대 오프셋을 나타낸다. MC 유닛(205)의 출력 파라미터는 코딩 블록의 인터 예측 샘플은 물론, 인터 예측 샘플을 구성하기 위한 파라미터를 포함한다. 예를 들어, 매칭 블록에서의 샘플에 대한 가중 파라미터, 필터 유형 및 매칭 블록에서의 샘플을 필터링을 위한 파라미터가 출력 파라미터로서 포함될 수 있다. 일부 실시예에서, RDO 방법은 RD(rate-distortion) 관점에서의 최적의 매칭 블록 및 2개의 유닛의 대응하는 출력 파라미터를 획득하기 위해 ME 유닛(204) 및 MC 유닛(205)에 공동으로 적용될 수 있다.
일부 구현예에서, ME 유닛(204) 및 MC 유닛(205)은 코딩 블록을 포함하는 현재 픽처를 참조로서 사용하여 코딩 블록의 인트라 예측 샘플을 획득할 수 있다. 본 문서에서, 인트라 예측이란 코딩 블록을 포함하는 픽처에서의 데이터만이 코딩 블록의 예측 샘플을 도출하기 위한 참조로서 이용된다는 것을 의미한다. 이 경우에, ME 유닛(204) 및 MC 유닛(205)은 현재 픽처에서의 재구성된 부분을 사용한다. 재구성된 부분은 가산기(212)의 출력으로부터의 것이며 필터링 유닛(213)에 의해 프로세싱되지 않는다. 예를 들어, 인코더(200)는 가산기(212)의 출력 데이터를 (일시적으로) 저장하기 위해 픽처 버퍼를 할당한다. 인코더에 대한 다른 방법은 가산기(212)로부터의 데이터를 유지하기 위해 DPB 유닛(214) 내의 특수 픽처 버퍼를 예약하는 것이다.
인트라 예측 유닛(206)은 코딩 블록을 포함하는 현재 픽처의 재구성된 부분을 참조로서 사용하여 코딩 블록의 인트라 예측 샘플을 획득한다. 재구성된 부분은 필터링 유닛(213)에 의해 프로세싱되지 않는다. 인트라 예측 유닛(206)은 코딩 블록의 재구성된 이웃 샘플을 코딩 블록의 인트라 예측 샘플을 도출하기 위한 필터의 입력으로서 취한다. 필터는 (예를 들면, 각도 인트라 예측(angular intra prediction)을 사용할 때 예측 샘플을 계산하기 위한) 보간 필터 또는 (예를 들면, DC 값을 계산하기 위한) 저역 통과 필터일 수 있다. 일부 구현예에서, 인트라 예측 유닛(206)은 현재 픽처에서의 재구성된 부분들의 범위에서 코딩 블록의 매칭 블록을 획득하기 위해 탐색 동작을 수행할 수 있다. 인트라 예측 유닛은 이어서 매칭 블록에서의 샘플을 코딩 블록의 인트라 예측 샘플로서 설정한다. 일부 실시예에서, 인트라 예측 유닛(206)은 인트라 예측 모드(예를 들면, 코딩 블록에 대한 인트라 예측 샘플을 계산하기 위한 방법) 및 대응하는 예측 샘플을 결정하기 위해 RDO 방법을 호출한다. 인트라 예측 샘플 외에도, 인트라 예측 유닛(206)의 출력은 사용 중인 인트라 예측 모드를 나타내는 하나 이상의 파라미터를 또한 포함한다.
가산기(207)는 코딩 블록의 원래 샘플과 예측 샘플 간의 차이를 계산하도록 구성된다. 일부 실시예에서, 가산기(207)의 출력은 코딩 블록의 잔차이다. 잔차는 N x M 2차원 행렬로서 표현될 수 있으며, 여기서 N과 M은 2개의 양의 정수이다. N과 M은 동일하거나 상이한 값일 수 있다.
변환 유닛(208)은 가산기(207)로부터의 출력(예를 들면, 잔차)을 그의 입력으로서 취한다. 변환 유닛(208)은 하나 이상의 변환 방법을 잔차에 적용할 수 있다. 신호 프로세싱의 관점에서, 변환 방법은 변환 행렬에 의해 표현될 수 있다. 선택적으로, 변환 유닛(208)은 코딩 블록과 동일한 형상 및 크기를 갖는 직사각형 블록(정사각형 블록이 직사각형 블록의 특수한 경우임에 유의함)을 잔차에 대한 변환 블록으로 사용하기로 결정할 수 있다. 선택적으로, 변환 유닛(208)은 잔차를 여러 직사각형 블록들(직사각형 블록의 폭 또는 높이가 하나의 샘플인 특수한 경우를 포함함)로 파티셔닝하고 여러 직사각형들에 대해 순차적으로 변환 동작을 수행하기로 결정할 수 있다. 예를 들어, 변환 동작은 기본 순서(예를 들면, 래스터 스캐닝 순서), 미리 정의된 순서(예를 들면, 예측 모드 또는 변환 방법에 대응하는 순서) 및/또는 여러 후보 순서들에 대한 선택된 순서에 따라 수행될 수 있다. 변환 유닛(208)은 잔차에 대해 다수의 변환을 수행하기로 결정할 수 있다. 예를 들어, 변환 유닛(208)은 먼저 잔차에 대해 코어 변환(core transform)을 수행하고, 이어서 코어 변환을 완료한 후에 획득된 계수들에 대해 2차 변환(secondary transform)을 수행한다. 변환 유닛(208)은 잔차 블록에 적용되는 변환 프로세스에서 사용되는 실행 방식을 나타내는 변환 파라미터를 결정하기 위해 RDO 방법을 사용할 수 있다. 예를 들어, 실행 방식은 잔차 블록을 변환 블록들로 파티셔닝하는 것, 변환 행렬, 다수의 변환 등을 포함한다. 변환 파라미터는 변환 유닛(208)의 출력 파라미터에 포함된다. 변환 유닛(208)의 출력 파라미터는 2차원 행렬에 의해 표현될 수 있는 잔차(예를 들면, 변환 계수)를 변환한 후에 획득된 데이터를 또한 포함할 수 있다.
양자화 유닛(209)은 잔차를 변환한 후에 변환 유닛(208)에 의해 출력된 데이터를 양자화한다. 양자화 유닛(209)에서 사용되는 양자화기는 스칼라 양자화기 및 벡터 양자화기 중 하나 또는 둘 모두일 수 있다. 일부 비디오 인코더에서, 양자화 유닛(209)은 스칼라 양자화기를 이용한다. 스칼라 양자화기의 양자화 스텝은 비디오 인코더에서 양자화 파라미터(QP)에 의해 표현된다. 일부 실시예에서, QP와 양자화 스텝 사이의 동일한 매핑이 인코더 및 대응 디코더에서 미리 설정되거나 미리 정의된다. QP의 값(예를 들면, 픽처 레벨 QP 및/또는 블록 레벨 QP)은 인코더에 적용되는 구성 파일에 따라 설정되거나 인코더 내의 코더 제어 유닛에 의해 결정될 수 있다. 예를 들어, 코더 제어 유닛은 레이트 제어(RC) 방법을 사용하여 픽처 및/또는 블록의 양자화 스텝를 결정하고 이어서 QP와 양자화 스텝 간의 매핑에 따라 양자화 스텝을 QP로 변환한다. 양자화 유닛(209)에 대한 제어 파라미터는 QP를 포함한다. 양자화 유닛(209)의 출력은 2차원 행렬의 형태로 표현된 하나 이상의 양자화된 변환 계수("레벨"이라고도 함)를 포함한다.
역양자화 유닛(210)은 재구성된 계수를 얻기 위해 양자화 유닛(209)의 출력에 대해 스케일링 동작을 수행한다. 역변환 유닛(211)은 변환 유닛(208)으로부터의 변환 파라미터에 따라 역양자화(210)로부터의 재구성된 계수에 대해 역변환을 수행한다. 역변환 유닛(211)의 출력은 재구성된 잔차를 포함한다. 특히, 인코더가 블록을 코딩함에 있어서 양자화를 스킵하기로 결정할 때(예를 들면, 인코더가 코딩 블록에 양자화를 적용할지 여부를 결정하기 위해 RDO 방법을 구현함), 인코더는 양자화 유닛(209) 및 역양자화(210)를 바이패싱하는 것에 의해 변환 유닛(208)의 출력 데이터를 역변환 유닛(211)으로 안내한다.
가산기(212)는 예측 유닛(202)으로부터의 코딩 블록의 재구성된 잔차 및 예측 샘플을 그의 입력으로서 취하고 코딩 블록의 재구성된 샘플을 계산한다. 가산기(212)는 이어서 재구성된 샘플을 버퍼(예를 들면, 픽처 버퍼)에 넣는다. 예를 들어, 인코더(200)는 가산기(212)의 출력 데이터를 (일시적으로) 저장하기 위해 픽처 버퍼를 할당한다. 인코더(200)에 대한 다른 방법은 가산기(212)로부터의 데이터를 유지하기 위해 DPB 유닛(214) 내의 특수 픽처 버퍼를 예약하는 것이다.
필터링 유닛(213)은 디코딩된 픽처 버퍼(decoded picture buffer) 내의 재구성된 픽처 샘플에 대해 필터링 동작을 수행하고 디코딩된 픽처를 출력한다. 필터링 유닛(213)은 하나의 필터 또는 여러 캐스케이딩 필터들을 포함할 수 있다. 예를 들어, H.265/HEVC 표준에 따르면, 필터링 유닛(210)은 2개의 캐스케이딩 필터, 즉 디블로킹 필터 및 SAO(sample adaptive offset) 필터를 포함한다. 필터링 유닛(213)은 신경 네트워크 필터를 또한 포함할 수 있다. 필터링 유닛(213)은, 픽처 내의 모든 코딩 블록의 재구성된 샘플이 디코딩된 픽처 버퍼에 저장되었을 때, 픽처의 재구성된 샘플을 필터링하기 시작할 수 있으며, 이는 "픽처 레이어 필터링"이라고 지칭될 수 있다. 선택적으로, 필터링 유닛(213)에 대한 픽처 레이어 필터링의 대안적인 구현("블록 레이어 필터링"이라고 지칭됨)은, 재구성된 샘플이 픽처 내의 모든 연속적인 코딩 블록을 인코딩할 때 참조로서 사용되지 않는 경우, 픽처 내의 코딩 블록의 재구성된 샘플을 필터링하기 시작하는 것이다. 블록 레이어 필터링은 픽처의 모든 재구성된 샘플이 이용 가능할 때까지 필터링 유닛(213)에 필터링 동작을 유지하도록 요구하지 않으며, 따라서 인코더에서의 스레드들 간의 시간 지연을 절감한다. 일부 실시예에서, 필터링 유닛(213)은 RDO 방법을 호출하는 것에 의해 필터링 파라미터를 결정한다. 필터링 유닛(213)의 출력은 픽처의 디코딩된 샘플 및 필터의 표시 정보, 필터 계수, 필터 제어 파라미터 등을 포함하는 필터링 파라미터를 포함한다.
인코더(200)는 필터링 유닛(213)로부터의 디코딩된 픽처를 DPB(214)에 저장한다. 인코더(200)는 DPB(214) 내의 픽처에 대한 동작을 제어하는 데 사용되는, DPB(214)에 적용되는 하나 이상의 지시사항을 결정할 수 있다. 예를 들어, 지시사항은 DPB(214)에 저장하는 픽처의 시간 길이, DPB(214)로부터 픽처를 출력하는 것 등을 포함한다. 그러한 지시사항이 DPB(214)의 출력 파라미터일 수 있다는 점에 유의한다.
엔트로피 코딩 유닛(215)은 픽처의 하나 이상의 코딩 파라미터에 대해 이진화 및 엔트로피 코딩을 수행하며, 이는 코딩 파라미터의 값을 이진 심벌 "0"과 "1"로 구성된 코드 워드로 변환하고 코드 워드를 규격 또는 표준에 따라 비트스트림에 기입한다. 코딩 파라미터는 텍스처 데이터와 비-텍스쳐 데이터로 분류될 수 있다. 텍스처 데이터는 코딩 블록의 변환 계수이고, 비-텍스처 데이터는, 인코더 내의 유닛들의 출력 파라미터, 파라미터 세트, 헤더, 보충 정보 등을 포함하여, 텍스처 데이터를 제외한 코딩 파라미터 내의 다른 데이터이다. 엔트로피 코딩 유닛(215)의 출력은 규격 또는 표준을 따르는 비트스트림을 포함한다.
엔트로피 코딩 유닛(215)은 파티션 유닛(201)으로부터의 출력 파라미터, 특히 픽처를 타일들로의 파티셔닝하는 방식을 나타내는 타일 파티셔닝 파라미터를 포함하는 타일 파라미터 및 타일 식별자, 슬라이스가 상주하는 타일을 나타내는 슬라이스의 타일 식별자, 및 타일에서의 슬라이스의 위치를 나타내는 슬라이스의 제2 어드레스를 수신한다. 엔트로피 코딩 유닛(215)은 비트스트림 내의 데이터 유닛(예를 들면, 아래에서 논의될, 파라미터 세트 데이터 유닛)에 타일 파라미터를 코딩한다.
도 5a 내지 도 5e는 본 기술의 하나 이상의 실시예에 따른, 비트스트림에 타일 파라미터를 표현하기 위한 신택스 구조의 예를 예시한다. 도 5a 및 도 5e에서 굵게 표시된 신택스는 비트스트림에 존재하는 하나 이상의 비트의 스트링에 의해 표현되는 신택스 요소이고, u(1) 및 ue(v)는 H.264/AVC 및 H.265/HEVC와 같은 발표된 표준에서와 동일한 기능을 갖는 두 가지 코딩 방법이라는 점에 유의한다.
도 5f는 본 기술의 하나 이상의 실시예에 따른, 픽처를 타일들로 파티셔닝하는 방식을 나타내는 타일 파티셔닝 파라미터를 코딩하기 위한 신택스 구조의 예를 예시한다. 도 5f에서의 신택스 요소는 개념적으로 데이터 구조, 즉 tile_partitioning()에 패킹된다. 도 5g는 본 기술의 하나 이상의 실시예에 따른, 타일 식별자를 코딩하기 위한 신택스 구조의 예를 도시한다. 유사하게, 도 5g에서의 신택스 요소는 개념적으로 데이터 구조 즉, tile_ids()에 패킹된다. 도 5g에서, 변수 numTilesInPic은 (num_tile_columns_minus1 + 1)과 (num_tile_rows_minus1 + 1)의 곱과 동일하게 설정된다.
도 5a 및 도 5f에서, 신택스 요소의 시맨틱스는 H.265/HEVC 표준에 명시된 것과 동일하다. 도 5g에서의 신택스 요소의 시맨틱스는 다음과 같이 제시된다:
tile_id_present_flag: tile_id_present_flag = 1은 타일 식별자 신택스 요소의 존재를 명시한다. tile_id_present_flag = 0은 타일 식별자 신택스 요소의 부재를 명시한다. tile_id_present_flag가 0과 동일할 때, 픽처 내의 타일의 타일 식별자는 0부터 시작하여 픽처 내의 타일의 스캐닝 순서(예를 들면, 래스터 스캐닝 순서)와 함께 오름차순으로 증가하는 것으로서 도출된다. 타일 식별자 신택스 요소가 제시되어 있지 않을 때, tile_id_present_flag는 0인 것으로 유추된다.
tile_id_ascending_flag: tile_id_asencding_flag = 1은 픽처 내의 타일의 타일 식별자가 tile_id_starting_value에 의해 명시된 미리 설정된 값으로부터 시작하여 픽처 내의 타일의 스캔 순서와 함께 오름차순으로 증가하는 값으로서 도출된다는 것을 명시한다. tile_id_ascending_flag = 0은 픽처 내의 타일의 스캐닝 순서에서 i 번째 타일의 타일 식별자가 tile_id[i]에 의해 명시된 값과 동일하도록 설정된다는 것을 명시한다.
tile_id[i]: tile_id[i]는 픽처 내의 타일의 스캐닝 순서(예를 들면, 래스터 스캐닝 순서)에서 i 번째 타일의 타일 식별자를 명시한다.
예로서 도 3을 다시 참조하면, 엔트로피 코딩 유닛(215)은 파티션 유닛(201)으로부터의 타일 파티셔닝 파라미터에 따라 도 5f에서의 신택스 요소들의 값들을 다음과 같이 설정한다:
num_tile_columns_minus1 = 3;
num_tile_rows_minus1 = 1;
uniform_spacing_flag = 1.
엔트로피 코딩 유닛(215)은 파티션 유닛(201)으로부터의 타일 식별자에 따라 도 5g에서의 신택스 요소들의 값들을 다음과 같이 설정한다:
tile_id_present_flag = 0.
다른 예로서 도 4를 다시 참조하면, 엔트로피 코딩 유닛(215)은 파티션 유닛(201)으로부터의 타일 파티셔닝 파라미터에 따라 도 5f에서의 신택스 요소들의 값들을 다음과 같이 설정한다:
num_tile_columns_minus1 = 3;
num_tile_rows_minus1 = 1;
uniform_spacing_flag = 1.
엔트로피 코딩 유닛(215)은 파티션 유닛(201)으로부터의 타일 식별자에 따라 도 5g에서의 신택스 요소들의 값들을 다음과 같이 설정한다:
tile_id_present_flag = 1;
tile_id_ascending_flag = 1;
tile_id_starting_value = 10.
엔트로피 코딩 유닛(215)은 상기 신택스 요소를 인코딩하고 코딩 비트를 비트스트림에 기입한다. 도 5a, 도 5b 및 도 5c에서의 신택스 구조는 비트스트림 내의 하나 이상의 데이터 유닛에 개별적으로 제시될 수 있다. 일부 실시예에서, 데이터 유닛은 파라미터 세트 데이터 유닛일 수 있다. 도 5a, 도 5b 및 도 5c에서의 신택스 구조가 단일 데이터 유닛에 제시되더라도, 엔트로피 코딩 유닛(215)은, 도 5d에서의 예에 도시된 바와 같이, 이러한 3개의 신택스 구조의 대응하는 비트들을 서로 부분적으로 인접하게 구성할 수 있으며, 여기서 tile_ids()에서의 신택스 요소들의 비트들은 tile_partitioning()에서의 신택스 요소들의 비트들을 따른다. 일부 실시예에서, 엔트로피 코딩 유닛(215)은 또한, 도 5e에서의 예에 도시된 바와 같이, 이러한 3개의 신택스 구조의 대응하는 비트들을 서로 인접하게 구성할 수 있으며, 여기서 tile_partitioning()의 비트들은 tiles_enable_flag를 따르고, tile_ids()에서의 신택스 요소들의 비트들은 tile_partitioning()에서의 신택스 요소들의 비트를 따른다.
도 6a 및 도 6b는 본 기술의 하나 이상의 실시예에 따른, 비트스트림에 타일 식별자 및 슬라이스 어드레스(예를 들면, 제2 어드레스)를 표현하기 위한 신택스 구조의 예를 도시한다. 굵게 표시된 신택스는 비트스트림에 존재하는 하나 이상의 비트의 스트링에 의해 표현되는 신택스 요소이고, u(1) 및 ue(v)는 H.264/AVC 및 H.265/HEVC와 같은 발표된 표준에서와 동일한 기능을 갖는 두 가지 코딩 방법이라는 점에 유의한다.
도 6a에서의 신택스 요소의 시맨틱스는 다음과 같이 제시된다:
slice_tile_id: slice_tile_id는 슬라이스가 상주하는 타일의 타일 식별자를 명시한다;
slice_address: slice_address는 타일의 코딩 블록 스캔(예를 들면, 래스터 스캔)에서, 슬라이스 또는 슬라이스 세그먼트 내의 제1 코딩 블록의 어드레스를 명시한다.
예로서 도 3을 다시 참조하면, 파티션 유닛(201)으로부터의 슬라이스의 타일 식별자 및 슬라이스의 제2 어드레스에 따라, 엔트로피 코딩 유닛(215)은 슬라이스(3300)에 대한 도 6a에서의 신택스 요소들의 값들을 다음과 같이 설정한다:
slice_tile_id = 3;
slice_address = 0.
코딩 순서에서 타일(330)에 슬라이스(3301)보다 앞서 12개의 코딩 블록이 있다고 가정하면, 슬라이스(3301)에 대한 값들은 다음과 같이 설정된다:
slice_tile_id = 3;
slice_address = 12.
엔트로피 코딩 유닛(215)은 슬라이스 헤더 또는 슬라이스 세그먼트 헤더에 도 6b에 도시된 신택스 요소들의 코딩 비트들을 구성할 수 있다. 엔트로피 코딩 유닛(215)은 slice_tile_id와 slice_address 사이에 0개 이상의 다른 신택스 요소를 추가할 수 있다. 일부 실시예에서, 엔트로피 코딩 유닛(215)은 slice_address를 타일 내의 슬라이스 또는 슬라이스 세그먼트에서의 제1 샘플의 좌표로서 표현할 수 있다.
도 6b에서의 신택스 요소의 시맨틱스는 다음과 같이 제시된다:
slice_tile_id: slice_tile_id는 슬라이스가 상주하는 타일의 타일 식별자를 명시한다.
first_slice_in_tile_flag: first_slice_in_tile_flag = 1은 슬라이스 또는 슬라이스 세그먼트가 디코딩 순서에서 타일의 제1 슬라이스 또는 슬라이스 세그먼트라는 것을 명시한다. first_slice_in_pic_flag = 0은 슬라이스 또는 슬라이스 세그먼트가 디코딩 순서에서 타일의 제1 슬라이스 또는 슬라이스 세그먼트가 아니라는 것을 명시한다.
slice_address: slice_address는 타일의 코딩 블록 스캔(예를 들면, 래스터 스캔)에서, 슬라이스 또는 슬라이스 세그먼트 내의 제1 코딩 블록의 어드레스를 명시한다.
일부 실시예에서, 엔트로피 코딩 유닛(215)은 슬라이스 헤더 또는 슬라이스 세그먼트 헤더에 도 6b에 도시된 신택스 요소들의 코딩 비트들을 구성할 수 있다. 일부 구현예에서, 엔트로피 코딩 유닛(215)은 slice_tile_id와 first_slice_in_tile_flag 사이에 0개 이상의 다른 신택스 요소를 추가할 수 있다. 일부 구현예에서, 엔트로피 코딩 유닛(215)은 first_slice_in_tile_flag와 slice_address 사이에 0개 이상의 다른 신택스 요소를 추가할 수 있다. 일부 구현예에서, 엔트로피 코딩 유닛(215)은 slice_address를 타일 내의 슬라이스 또는 슬라이스 세그먼트에서의 제1 샘플의 좌표로서 표현할 수 있다.
예로서 도 3을 다시 참조하면, 파티션 유닛(201)으로부터의 슬라이스의 타일 식별자 및 슬라이스의 제2 어드레스에 따라, 엔트로피 코딩 유닛(215)은 슬라이스(3300)에 대한 도 6b에서의 신택스 요소들의 값들을 다음과 같이 설정한다:
slice_tile_id = 3;
first_slice_in_tile_flag = 1.
코딩 순서에서 타일(330)에 슬라이스(3301)보다 앞서 12개의 코딩 블록이 있다고 가정하면, 슬라이스(3301)에 대한 신택스 요소들의 값들은 다음과 같이 설정된다:
slice_tile_id = 3;
first_slice_in_tile_flag = 0;
slice_address = 12.
엔트로피 코딩 유닛(215)은 슬라이스 헤더 또는 슬라이스 세그먼트 헤더에 도 6a에서의 신택스 요소들의 코딩 비트들을 구성할 수 있다. 일부 실시예에서, 엔트로피 코딩 유닛(215)은 slice_tile_id와 slice_address 사이에 0개 이상의 다른 신택스 요소를 추가할 수 있다. 일부 구현예에서, 엔트로피 코딩 유닛(215)은 slice_address를 타일 내의 슬라이스 또는 슬라이스 세그먼트에서의 제1 샘플의 좌표로서 표현할 수 있다.
도 15는 본 기술의 하나 이상의 실시예에 따른, 비디오 또는 픽처 프로세싱을 위한 방법(1500)의 플로차트 표현이다. 방법(1500)은, 단계(1501)에서, 픽처를 하나 이상의 타일로 파티셔닝하는 단계를 포함한다. 방법(1500)은, 단계(1502)에서, 하나 이상의 타일에 기초하여 하나 이상의 구성을 사용하여 하나 이상의 비트스트림을 생성하는 단계를 또한 포함한다. 특히, 하나 이상의 비트스트림을 생성하는 단계는 하나 이상의 타일 각각을 하나 이상의 슬라이스로 파티셔닝하는 단계, 및, 하나 이상의 슬라이스 중 각각의 슬라이스에 대해: (1) 타일 식별자를 슬라이스의 헤더에서 인코딩하기 위한 제1 인코딩 단계, 및 (2) 타일에서의 슬라이스의 위치를 나타내는 슬라이스의 제2 어드레스를, 슬라이스의 헤더에, 인코딩하기 위한 제2 인코딩 단계를 수행하는 단계를 포함한다. 타일 식별자는 슬라이스가 상주하는 타일을 나타내며, 제2 어드레스는 픽처에서의 슬라이스의 위치를 나타내는 슬라이스의 제1 어드레스와 타일의 어드레스에 기초하여 결정된다.
실시예 2
이 실시예는 디코더에 의해 사용될 수 있는 다양한 기술을 설명한다. 도 7은 본 기술의 하나 이상의 실시예에 따른, 비트스트림을 디코딩하는 예시적인 디코더(700)를 묘사한다. 도 7에 도시된 바와 같이, 디코더(700)의 입력은 비트스트림이고, 디코더(700)의 출력은 비트스트림을 디코딩하는 것에 의해 획득된 디코딩된 비디오 또는 픽처이다.
디코더(700) 내의 파싱 유닛(701)은 입력 비트스트림을 파싱한다. 파싱 유닛(701)은 표준에 명시된 엔트로피 디코딩 방법 및/또는 이진화 방법을 사용하여 하나 이상의 이진 심벌(즉, "0" 및 "1")을 포함하는 비트스트림 내의 각각의 코드 워드를 대응하는 파라미터의 수치 값으로 변환한다. 파싱 유닛(701)은 또한 하나 이상의 이용 가능한 파라미터에 따라 파라미터 값을 도출한다. 예를 들어, 비트스트림 내의 플래그가 디코딩 블록이 픽처 내의 제1 디코딩 블록임을 나타낼 때, 파싱 유닛(701)은 픽처에서의 슬라이스의 제1 디코딩 블록의 어드레스를 나타내는 어드레스 파라미터를 0으로 설정한다.
파싱 유닛(701)은 타일 파라미터를 획득하기 위해 비트스트림 내의, 파라미터 세트 데이터 유닛과 같은, 하나 이상의 데이터 유닛을 파싱한다. 타일 파라미터는 픽처를 타일들로 파티셔닝하는 방식을 나타내는 타일 파티셔닝 파라미터 및 이에 대응하여 하나 이상의 타일 식별자를 포함한다.
도 5a 내지 도 5e는 파싱 유닛(701)에 의해 비트스트림 내의 타일 파라미터를 파싱하기 위한 신택스 구조의 예를 예시한다. 도 5a, 도 5b 및 도 5c에서의 신택스 구조는 비트스트림 내의 하나 이상의 데이터 유닛으로부터 개별적으로 파싱되어 획득될 수 있다. 일부 실시예에서, 데이터 유닛은 파라미터 세트 데이터 유닛일 수 있다. 일부 실시예에서, 도 5a, 도 5b 및 도 5c에서의 신택스 구조가 비트스트림 내의 단일 데이터 유닛에 제시되는 경우, 파싱 유닛(701)은 서로 인접한 대응하는 비트들을 판독하는 것에 의해 3개의 신택스 구조를 파싱할 수 있다. 예를 들어, 도 5d에서의 예에 도시된 바와 같이, tile_ids() 내의 신택스 요소들의 비트들은 tile_partitioning() 내의 신택스 요소들의 비트들을 따른다. 일부 실시예에서, 파싱 유닛(701)은 또한 서로 인접한 대응하는 비트들을 판독하는 것에 의해 3개의 신택스 구조를 파싱할 수 있다. 도 5e에서의 예에 도시된 바와 같이, tile_partitioning()의 비트들은 tiles_enable_flag를 따르고, tile_ids() 내의 신택스 요소들의 비트들은 tile_partitioning() 내의 신택스 요소들의 비트들을 따른다.
파싱 유닛(701)은 다음과 같이 도 5f에서의 신택스 요소들의 값들을 획득할 수 있다:
num_tile_columns_minus1 = 3;
num_tile_rows_minus1 = 1;
uniform_spacing_flag = 1.
파싱 유닛(701)은 또한 다음과 같이 도 5g에서의 신택스 요소들의 값들을 획득할 수 있다:
tile_id_present_flag = 0.
파싱 유닛(701)은 이어서 파티셔닝 방식을 "픽처를 4개의 열과 2개의 행으로 균일하게 파티셔닝"하는 것으로서 결정하고, 타일의 타일 식별자를 "픽처 내의 타일들의 래스터 스캐닝 순서에서 오름차순으로 0부터 시작하는 것"으로 할당할 수 있다. 즉, 파싱 유닛(701)은 도 3에 예시된 바와 같이 픽처(30)의 타일 파티셔닝 및 타일 식별자를 결정할 수 있다.
파싱 유닛(701)은 다음과 같이 도 5f에서의 신택스 요소들의 값들을 획득할 수 있다:
num_tile_columns_minus1 = 3;
num_tile_rows_minus1 = 1;
uniform_spacing_flag = 1.
파싱 유닛(701)은 또한 다음과 같이 도 5g에서의 신택스 요소들의 값들을 획득할 수 있다:
tile_id_present_flag = 1;
tile_id_ascending_flag = 1;
tile_id_starting_value = 10.
파싱 유닛(701)은 이어서 파티셔닝 방식을 "픽처를 4개의 열과 2개의 행으로 균일하게 파티셔닝"하는 것으로서 결정하고, 타일의 타일 식별자를 "픽처 내의 타일들의 래스터 스캐닝 순서에서 오름차순으로 10부터 시작하는 것"으로 할당할 수 있다. 즉, 파싱 유닛(701)은 도 4에 예시된 바와 같이 픽처(40)의 타일 파티셔닝 및 타일 식별자를 결정한다.
추가적으로, 픽처의 폭과 높이 및 타일 파티셔닝 방식에 따라, 파싱 유닛(701)은 픽처 내의 타일의 어드레스를 도출할 수 있다. 타일의 어드레스는 픽처 내의 타일에서의 제1 샘플의 위치의 좌표 또는 픽처 내의 슬라이스에서의 제1 코딩 블록의 순서 번호로서 표현될 수 있다. 예를 들어, 픽처의 높이와 폭이 picHeight와 picWidth라고 가정하면, 픽처 내의 타일의 래스터 스캐닝 순서는 (0부터 시작하는) tileR이다. 도 3에서의 타일 파티셔닝을 예로 든다. 파싱 유닛(701)은 픽처 내의 타일에서의 제1 샘플의 좌표 (tileX, tileY)로서 표현된 타일의 어드레스를 다음과 같이 계산한다:
tileX = (picWidth / (num_tile_columns_minus1+1) * (tileR % (num_tile_columns_minus1+1)), 및
tileY = (picHeight / (num_tile_rows_minus1+1)) * (tileR/ (num_tile_columns_minus1+1)).
더욱이, 파싱 유닛(701)은 또한 도 3에서의 타일의 폭(tileWidth)과 높이(tileHeight)를 다음과 같이 결정한다:
tileWidth = picWidth / (num_tile_columns_minus1 + 1),
tileHeight = picHeight / (num_tile_rows_minus1 + 1).
위의 계산에서 사용된 모든 산술 연산자는 H.265/HEVC 표준에 명시된 것과 동일하다.
예로서 도 3을 다시 참조하면, 파싱 유닛(701)은 다음과 같이 도 6a에 도시된 제1 슬라이스의 신택스 요소들의 값들을 획득할 수 있다:
slice_tile_id = 3;
slice_address = 0.
파싱 유닛(701)은 또한 다음과 같이 도 6a에서의 제2 슬라이스의 신택스 요소들을 획득할 수 있다:
slice_tile_id = 3;
slice_address = 12.
파싱 유닛(701)이 픽처(30)에 대응하는 비트스트림에서 slice_tile_id = 3인 어떤 다른 슬라이스도 획득하지 못하고, 제1 슬라이스에 12개의 디코딩 블록이 있다고 가정하면, 파싱 유닛(701)은 이들 슬라이스 둘 모두가 slice_tile_id에 의해 표시된 바와 같이 3과 동일한 타일 식별자를 갖는 타일에 상주한다고 결정할 수 있다. 즉, 슬라이스(3300)(제1 슬라이스)와 슬라이스(3301)(제2 슬라이스)가 타일(330)에 있다.
슬라이스의 어드레스는 픽처 내의 슬라이스에서의 제1 샘플의 위치의 좌표 또는 픽처 내의 슬라이스에서의 제1 블록의 순서 번호로서 표현될 수 있다. 디코딩 블록의 크기가 nBlock x nBlock이라고 가정하면, 파싱 유닛(701)은 타일에서의 좌표 (xBlockInTile, yBlockInTile)로서 표현되는 슬라이스의 제2 슬라이스 어드레스를 다음과 같이 계산할 수 있다:
xBlockInTile = (slice_address % (tileWidth / nBlock)) * nBlock,
yBlockInTile = (slice_address / (tileWidth / nBlock)) * nBlock.
파싱 유닛(701)은 이어서 픽처에서의 좌표 (xBlockInPic, yBlockInPic)로서 표현되는 슬라이스의 제1 슬라이스 어드레스를 다음과 같이 계산한다:
xBlockInPic = xBlockInTile + tileX,
xBlockInPic = yBlockInTile + tileY.
위의 계산에서 사용된 모든 산술 연산자는 H.265/HEVC 표준에 명시된 것과 동일하다. 파싱 유닛(701)은, 디코딩 블록 크기에 대한 지식을 사용하여, 좌표를 순서 번호로 그리고 그 반대로 변환할 수 있다.
예로서 또다시 도 3을 다시 참조하면, 파싱 유닛(701)은 다음과 같이 도 6b에서의 제1 슬라이스의 신택스 요소들의 값들을 획득할 수 있다:
slice_tile_id = 3;
first_slice_in_tile_flag = 1.
파싱 유닛(701)은 또한 다음과 같이 도 6b에서의 제2 슬라이스의 신택스 요소들을 획득할 수 있다:
slice_tile_id = 3;
first_slice_in_tile_flag = 0;
slice_address = 12.
파싱 유닛(701)이 픽처에 대응하는 비트스트림에서 slice_tile_id = 3인 어떤 다른 슬라이스도 획득하지 못하고, 제1 슬라이스에 12개의 디코딩 블록이 있다고 가정하면, 파싱 유닛(701)은 이들 슬라이스 둘 모두가 slice_tile_id에 의해 표시된 바와 같이 3과 동일한 타일 식별자를 갖는 타일에 상주한다고 결정한다. 즉, 슬라이스(3300)(제1 슬라이스)와 슬라이스(3301)(제2 슬라이스)가 타일(330)에 있고, 슬라이스(3300)에 대한 slice_address는 0이다.
디코딩 블록의 크기가 nBlock x nBlock이라고 가정하면, 파싱 유닛(701)은 타일에서의 좌표 (xBlockInTile, yBlockInTile)로서 표현되는 슬라이스의 제2 슬라이스 어드레스를 다음과 같이 계산할 수 있다:
xBlockInTile = (slice_address % (tileWidth / nBlock)) * nBlock,
yBlockInTile = (slice_address / (tileWidth / nBlock)) * nBlock.
파싱 유닛(701)은 이어서 픽처에서의 좌표 (xBlockInPic, yBlockInPic)로서 표현되는 슬라이스의 제1 슬라이스 어드레스를 다음과 같이 계산한다:
xBlockInPic = xBlockInTile + tileX,
xBlockInPic = yBlockInTile + tileY.
위의 계산에서 사용된 모든 산술 연산자는 H.265/HEVC 표준에 명시된 것과 동일하다. 파싱 유닛(701)은, 디코딩 블록 크기에 대한 지식을 사용하여, 좌표를 순서 번호로 그리고 그 반대로 변환할 수 있다.
파싱 유닛(701)은 관련 디코딩 프로세스(예를 들면, 이웃 블록 및 샘플의 도출, 디코딩 블록의 재구성된 샘플을 버퍼에 저장하는 것, 필터링될 샘플의 결정 등)에서 사용되는 타일, 슬라이스 및 디코딩 블록의 위치를 결정하기 위해 위에서 결정된 파라미터를 디코더 내의 다른 유닛에 전달할 수 있다.
파싱 유닛(701)은 디코딩 블록의 예측 샘플을 도출하기 위한 하나 이상의 예측 파라미터를 예측 유닛(702)에 전달할 수 있다. 예측 파라미터는 전술한 인코더 내의 파티션 유닛(201) 및 예측 유닛(202)의 출력 파라미터를 포함할 수 있다.
파싱 유닛(701)은 디코딩 블록의 잔차를 재구성하기 위한 하나 이상의 잔차 파라미터를 스케일링 유닛(705) 및 변환 유닛(706)에 전달할 수 있다. 잔차 파라미터는 변환 유닛(208) 및 양자화 유닛(209)의 출력 파라미터 및 인코더 내의 양자화 유닛(209)에 의해 출력된 하나 이상의 양자화된 계수(예를 들면, "레벨")를 포함할 수 있다.
파싱 유닛(701)은 또한 픽처 내의 재구성된 샘플을 필터링(예를 들면, 인-루프 필터링(in-loop filtering))하기 위해 필터링 파라미터를 필터링 유닛(708)에 전달할 수 있다.
예측 유닛(702)은 예측 파라미터에 따라 디코딩 블록의 예측 샘플을 도출할 수 있다. 예측 유닛(702)은 MC 유닛(703) 및 인트라 예측 유닛(704)을 포함한다. 예측 유닛(702)의 입력은 (필터링 유닛(708)에 의해 프로세싱되지 않은) 가산기(707)로부터 출력된 현재 디코딩 픽처의 재구성된 부분 및 DPB(709) 내의 하나 이상의 디코딩된 픽처를 또한 포함할 수 있다.
예측 파라미터가 디코딩 블록의 예측 샘플을 도출하는 데 인터 예측 모드가 사용된다는 것을 나타낼 때, 예측 유닛(702)은 하나 이상의 참조 픽처 리스트를 구성하기 위해 인코더 내의 ME 유닛(204)에 대한 것과 동일한 접근법을 이용한다. 참조 리스트는 DPB(709)로부터의 하나 이상의 참조 픽처를 포함할 수 있다. MC 유닛(703)은 예측 파라미터에서의 참조 리스트, 참조 인덱스 및 MV의 표시에 따라 디코딩 블록에 대한 하나 이상의 매칭 블록을 결정할 수 있다. MC 유닛(703)은 디코딩 블록의 인터 예측 샘플을 획득하기 위해 인코더 내의 MC 유닛(205)에서의 것과 동일한 방법을 사용할 수 있다. 예측 유닛(702)는 인터 예측 샘플을 디코딩 블록의 예측 샘플로서 출력한다.
일부 실시예에서, MC 유닛(703)은 디코딩 블록을 포함하는 현재 디코딩 픽처를 참조로서 사용하여 디코딩 블록의 인트라 예측 샘플을 획득할 수 있다. 인트라 예측이란 코딩 블록을 포함하는 픽처에서의 데이터만이 코딩 블록의 예측 샘플을 도출하기 위한 참조로서 이용된다는 것을 의미한다. 이 경우에, MC 유닛(703)은 현재 픽처에서의 재구성된 부분을 사용한다. 재구성된 부분은 가산기(707)의 출력으로부터의 것이며 필터링 유닛(708)에 의해 프로세싱되지 않는다. 예를 들어, 디코더는 가산기(707)의 출력 데이터를 (일시적으로) 저장하기 위해 픽처 버퍼를 할당한다. 디코더에 대한 다른 방법은 가산기(707)로부터의 데이터를 유지하기 위해 DPB(709) 내의 특수 픽처 버퍼를 예약하는 것이다.
예측 파라미터가 디코딩 블록의 예측 샘플을 도출하는 데 인트라 예측 모드가 사용된다는 것을 나타낼 때, 예측 유닛(702)은 디코딩 블록의 재구성된 이웃 샘플로부터 인트라 예측 유닛(704)에 대한 참조 샘플을 결정하기 위해 인코더 내의 인트라 예측 유닛(206)에 대한 것과 동일한 접근법을 이용한다. 인트라 예측 유닛(704)은 인트라 예측 모드(예를 들면, DC 모드, 플래너 모드(Planar mode) 또는 각도 예측 모드)를 획득하고, 인트라 예측 모드의 명시된 프로세스에 따라 참조 샘플을 사용하여 디코딩 블록의 인트라 예측 샘플을 도출한다. 인트라 예측 모드의 동일한 도출 프로세스가 인코더(예를 들면, 인트라 예측 유닛(206)) 및 디코더(예를 들면, 인트라 예측 유닛(704))에서 구현된다는 점에 유의한다. 일부 실시예에서, 예측 파라미터가 디코딩 블록에 대한 현재 디코딩 픽처(디코딩 블록을 포함함) 내의 매칭 블록(그 위치를 포함함)을 나타내는 경우, 인트라 예측 유닛(704)은 매칭 블록에서의 샘플을 사용하여 디코딩 블록의 인트라 예측 샘플을 도출한다. 예를 들어, 인트라 예측 유닛(704)은 인트라 예측 샘플을 매칭 블록에서의 샘플과 동일하게 설정할 수 있다. 예측 유닛(702)는 디코딩 블록의 예측 샘플을 인트라 예측 유닛(704)에 의해 출력된 인트라 예측 샘플과 동일하게 설정할 수 있다.
디코더(700)는 역양자화를 프로세싱하여 재구성된 계수를 출력으로서 획득하기 위해 QP 및 양자화된 계수를 스케일링 유닛(705)에 전달한다. 디코더(700)는 스케일링 유닛(705)으로부터의 재구성된 계수 및 잔차 파라미터 내의 변환 파라미터(예를 들면, 인코더(200) 내의 변환 유닛(208)의 출력에서의 변환 파라미터)를 변환 유닛(706)에 피드한다. 일부 실시예에서, 잔차 파라미터가 블록을 디코딩함에 있어서 스케일링을 스킵하는 것을 나타내는 경우, 디코더(700)는 스케일링 유닛(705)을 바이패싱하는 것에 의해 잔차 파라미터에서의 계수를 변환 유닛(706)으로 안내한다.
변환 유닛(706)은 표준에 명시된 변환 프로세스에 따라 입력 계수에 대해 변환 동작을 수행한다. 변환 유닛(706)에서 사용되는 변환 행렬은 인코더(200) 내의 역변환 유닛(211)에서 사용되는 것과 동일하다. 변환 유닛(706)의 출력은 디코딩 블록의 재구성된 잔차이다.
일반적으로, 디코딩 프로세스만이 표준에 명시되어 있으므로, 비디오 코딩 표준의 관점에서 볼 때, 디코딩 프로세스에서의 프로세스 및 관련 행렬은 표준 본문에서 "변환 프로세스" 및 "변환 행렬"이라고 명시되어 있다. 따라서, 디코더에 대한 설명에서는 변환 프로세스를 구현하는 유닛을 "변환 유닛"이라고 명명한다. 그렇지만, 디코딩 프로세스가 인코딩의 역 프로세스로 간주될 수 있기 때문에 이 유닛은 "역변환 유닛"이라고도 명명될 수 있다.
가산기(707)는 변환 유닛(706)의 출력 내의 재구성된 잔차 및 예측 유닛(702)의 출력 내의 예측 샘플을 입력 데이터로서 취한다. 가산기(707)는 디코딩 블록의 재구성된 샘플을 계산한다. 가산기(707)는 재구성된 샘플을 픽처 버퍼에 저장한다. 예를 들어, 디코더는 가산기(707)의 출력 데이터를 (일시적으로) 저장하기 위해 픽처 버퍼를 할당한다. 디코더에 대한 다른 방법은 가산기(707)로부터의 데이터를 유지하기 위해 DPB(709) 내의 특수 픽처 버퍼를 예약하는 것이다.
디코더(700)는 파싱 유닛(701)으로부터 필터링 유닛(708)으로 필터링 파라미터를 전달한다. 필터링 유닛(708)에 대한 필터링 파라미터는 인코더(200) 내의 필터링 유닛(213)의 출력 내의 필터링 파라미터와 동일하다. 필터링 파라미터는 사용될 하나 이상의 필터, 필터 계수 및 필터링 제어 파라미터에 대한 정보를 포함한다. 필터링 유닛(708)는 디코딩된 픽처 버퍼에 저장된 픽처의 재구성된 샘플에 대해 필터링 파라미터를 이용하여 필터링 프로세싱을 수행하고 디코딩된 픽처를 출력한다. 필터링 유닛(708)은 하나의 필터 또는 여러 캐스케이딩 필터들을 포함할 수 있다. 예를 들어, H.265/HEVC 표준에 따르면, 필터링 유닛은 2개의 캐스케이딩 필터, 즉 디블로킹 필터 및 SAO(sample adaptive offset) 필터를 포함한다. 필터링 유닛(708)은 신경 네트워크 필터를 또한 포함할 수 있다. 필터링 유닛(708)은, 픽처 내의 모든 코딩 블록의 재구성된 샘플이 디코딩된 픽처 버퍼에 저장되었을 때, 픽처의 재구성된 샘플을 필터링하기 시작할 수 있으며, 이는 "픽처 레이어 필터링"이라고 지칭될 수 있다. 일부 실시예에서, 필터링 유닛(708)에 대한 픽처 레이어 필터링의 대안적인 구현("블록 레이어 필터링"이라고 지칭됨)은, 재구성된 샘플이 픽처 내의 모든 연속적인 코딩 블록을 디코딩할 때 참조로서 사용되지 않는 경우, 픽처 내의 코딩 블록의 재구성된 샘플을 필터링하기 시작하는 것이다. 블록 레이어 필터링은 픽처의 모든 재구성된 샘플이 이용 가능할 때까지 필터링 유닛(708)에 필터링 동작을 유지하도록 요구하지 않으며, 따라서 디코더에서의 스레드들 간의 시간 지연을 절감한다.
디코더(700)는 필터링 유닛(708)에 의해 출력된 디코딩된 픽처를 DPB(709)에 저장한다. 추가적으로, 디코더(700)는 파싱 유닛(701)에 의해 출력된 하나 이상의 지시사항(예를 들면, DPB(709)에 저장하는 픽처의 시간 길이, DPB(709)로부터 영상을 출력하는 것 등)에 따라 DPB(709) 내의 픽처에 대해 하나 이상의 제어 동작을 수행할 수 있다.
도 16은 본 기술의 하나 이상의 실시예에 따른, 비디오 또는 픽처 프로세싱에서 픽처를 디코딩하기 위한 방법(1600)의 플로차트 표현이다. 픽처는 하나 이상의 타일로 파티셔닝되고, 하나 이상의 타일 각각은 하나 이상의 슬라이스로 파티셔닝된다. 방법(1600)은, 단계(1601)에서, 비트스트림 내의 슬라이스의 헤더로부터 타일 식별자를 획득하는 단계를 포함한다. 타일 식별자는 슬라이스가 상주하는 타일을 나타낸다. 방법(1600)은, 단계(1602)에서, 비트스트림 내의 슬라이스의 헤더로부터 제2 어드레스를 획득하는 단계를 포함한다. 제2 어드레스는 타일에서의 슬라이스의 위치를 나타낸다. 방법(1600)은, 단계(1603)에서, 타일 식별자 및 제2 어드레스에 기초하여 픽처에서의 슬라이스의 위치를 나타내는 슬라이스의 제1 어드레스를 결정하는 단계를 또한 포함한다.
실시예 3
도 8은 본 기술의 하나 이상의 실시예에 따른 추출기(800)의 예를 도시한다. 추출기의 입력들 중 하나는 도 2에서의 인코더(200)에 의해 생성된 비트스트림이다. 추출기의 다른 입력은 추출할 타겟 픽처 영역을 나타내는 애플리케이션 데이터이다. 추출기의 출력은 도 7에서의 디코더(700)에 의해 디코딩 가능한 서브-비트스트림이다. 이 서브-비트스트림은, 추가로 추출 가능한 경우, 추출기의 입력 비트스트림일 수도 있다.
추출기의 기본 기능은 원래 비트스트림으로부터 서브-비트스트림을 형성하는 것이다. 예를 들어, 사용자는 고해상도 비디오에서의 한 영역을 자신의 스마트 폰에 디스플레이하기 위해 이 영역을 선택하고, 스마트 폰은 선택된 영역(예를 들면, 타겟 픽처 영역)에 대응하는 미디어 데이터를 요청하기 위해 애플리케이션 데이터를 원격 디바이스(예를 들면, 원격 서버) 또는 내부 프로세싱 유닛(예를 들면, 이 스마트폰에 설치된 소프트웨어 절차)로 송신한다. 원격 디바이스 또는 내부 프로세싱 디바이스 상의 추출기(또는 동등한 프로세싱 유닛)는 원래 고해상도 비디오에 대응하는 비트스트림으로부터 타겟 픽처 영역에 대응하는 서브-비트스트림을 추출한다.
다른 예는 HMD(Head Mounted Device)가 뷰어의 현재 뷰포트를 검출하고 이 뷰포트를 렌더링하기 위한 미디어 데이터를 요청하는 것이다. 이전 예와 유사하게, HMD는 또한 검출된 뷰포트의 최종 렌더링 영역(예를 들면, 타겟 픽처 영역)을 커버하는 비디오 픽처에서의 영역을 나타내는 애플리케이션 데이터를 생성하고, 애플리케이션 데이터를 원격 디바이스 또는 그의 내부 프로세싱 유닛으로 송신한다. 원격 디바이스 또는 내부 프로세싱 유닛 상의 추출기(또는 동등한 프로세싱 유닛)는 더 넓은 렌더링 뷰포트를 커버하는 비디오에 대응하는 비트스트림으로부터 타겟 픽처 영역에 대응하는 서브-비트스트림을 추출한다.
이 실시예에서, 예시적인 입력 비트스트림은 위에서 설명된 타일 파라미터 및 슬라이스 파티셔닝을 사용하여 픽처를 인코딩하는 것에 의해 인코더(200)에 의해 생성된 비트스트림이다.
파싱 유닛(801)은 입력 비트스트림 내의 하나 이상의 데이터 유닛(예를 들면, 파라미터 세트 데이터 유닛)으로부터 타일 파라미터를 획득하기 위해 입력 비트스트림을 파싱한다. 타일 파라미터는 픽처를 타일들로 파티셔닝하는 방식을 나타내는 타일 파티셔닝 파라미터 및 하나 이상의 대응하는 타일 식별자를 포함한다. 파싱 유닛(801)은 타일 파라미터를 획득하기 위해 파싱 유닛(701)에서의 것과 유사한 프로세싱을 실행한다. 파싱 유닛(801)은 추출할 타겟 타일을 결정하기 위한 타일 파라미터 및 다른 필요한 데이터(예를 들면, 픽처 폭 및 높이)를 데이터 흐름(80)에 넣고 데이터 흐름(80)을 제어 유닛(802)으로 송신한다.
여기서 데이터 흐름은 소프트웨어 구현에서 함수의 입력 파라미터 및 반환 파라미터, 및/또는 하드웨어 구현에서 버스를 통한 데이터 전송 및 저장 유닛들 간의 데이터 공유(레지스터들 간의 데이터 공유도 포함함)를 지칭한다는 점에 유의한다.
파싱 유닛(801)은 파싱 유닛(701)에서의 것과 유사한 방법을 사용하여 슬라이스의 슬라이스 헤더로부터 슬라이스 레이어 타일 식별자를 획득하기 위해 입력 비트스트림을 파싱한다. 파싱 유닛(801)은 슬라이스 레이어 타일 식별자를 데이터 흐름(81)에 넣고 데이터 흐름(81)을 형성 유닛(803)으로 송신한다. 파싱 유닛(801)은 또한 입력 비트스트림을 파싱하고 필요한 경우 서브-비트스트림을 생성하는 프로세스에서 데이터 흐름(81)을 통해 다른 데이터를 형성 유닛(803)으로 전달한다. 파싱 유닛(801)은 또한 입력 비트스트림을 데이터 흐름(81)에 포함시킨다.
제어 유닛(802)은 픽처에서의 타겟 픽처 영역의 위치 및 크기를 포함한, 그의 애플리케이션 데이터 입력으로부터 타겟 픽처 영역을 획득한다. 제어 유닛(802)은 데이터 흐름(80)으로부터 타일 파라미터 및 픽처의 폭과 높이를 획득한다. 제어 유닛(802)은 파싱 유닛(701)에서의 것과 유사한 방법을 이용하여 픽처 내의 타일의 어드레스 및 크기를 결정하고, 이어서 타겟 픽처 영역에 위치된 하나 이상의 타겟 타일을 결정한다. 제어 유닛(802)은 또한 타일 파라미터에 따라 타겟 타일 식별자를 타겟 타일의 타일 식별자로서 획득한다. 이 예에서, 타겟 픽처 영역이 타일(320 및 330)을 포함한다고 가정하면, 제어 유닛(802)은 타겟 타일 식별자(예를 들면, 타일(320)의 경우 2, 타일(303)의 경우 3) 및 타겟 픽처 영역의 크기(즉, targetPicWidth 및 targetPicHeight)를 데이터 흐름(82)에 넣는다.
형성 유닛(803)은 데이터 흐름(81 및 82)을 수신하고 데이터 흐름(81)에서 전달되는 입력 비트스트림으로부터 데이터 유닛을 추출한다. 형성 유닛(803)은 또한 타겟 픽처 영역에 대한 새로운 파라미터에 따라 새로운 파라미터 세트를 생성하고, 이어서 추출된 데이터 유닛과 새로운 파라미터 세트를 작성하는 것에 의해 서브-비트스트림을 형성한다. 형성 유닛(803)은 추출 유닛(804) 및 생성 유닛(805)을 포함한다. 추출 유닛(804)이 타겟 타일 식별자들 중 하나와 동일한 슬라이스 레이어 타일 식별자를 검출할 때, 추출 유닛(804)은 이 슬라이스의 하나 이상의 데이터 유닛을 추출한다. 예로서 또다시 도 3을 다시 참조하면, 추출 유닛(804)은 슬라이스 레이어 타일 식별자가 2와 동일한 슬라이스(3200, 3201 및 3203)의 슬라이스 데이터 유닛을 추출한다. 추출 유닛(804)은 또한 슬라이스 레이어 타일 식별자가 3과 동일한 슬라이스(3300 및 3301)의 슬라이스 데이터 유닛을 추출한다. 이 예에서, 추출 유닛(804)는 targetPicWidth를 타일(320 및 330)의 폭들의 합의 폭과 동일하게 설정하고, targetPicHeight를 타일(320)(또는 타일(330))의 높이와 동일하게 설정한다.
생성 유닛(805)은 타겟 픽처 영역 및 서브-비트스트림의 새로운 특징을 시그널링하기 위해 하나 이상의 새로운 파라미터 세트 데이터 유닛을 생성한다. 예를 들어, 생성 유닛(805)은 비디오 코딩 표준에 따라 타겟 픽처 영역의 픽처 폭과 높이(예를 들면, targetPicWidth와 targetPicHeight)를 나타내도록 파라미터 세트 내의 대응하는 신택스 요소를 설정한다. 생성 유닛(805)은 또한 추출된 서브-비트스트림의 동작점을 나타내도록 파라미터 세트 내의 대응하는 신택스 요소를 설정한다.
생성 유닛(805)은 엔트로피 코딩 유닛(215)에 의해 채택된 유사한 방법을 사용하여 새로운 파라미터 세트 내의 타일 파라미터 관련 신택스 요소를 설정한다. 예를 들어, 생성 유닛(805)은 도 5a에서의 신택스 요소의 값을 다음과 같이 설정하는데:
tiles_enable_flag = 1
그 이유는 추출된 서브-비트스트림을 도 7에서의 디코더를 사용하여 디코딩하는 것에 의해 획득되는 디코딩된 픽처인 타겟 픽처 영역에 2개의 타일이 있기 때문이다. 생성 유닛(805)은 타겟 픽처 영역의 타일 파티셔닝 파라미터(예를 들면, 2개의 타일 열로 균일하게 파티셔닝하는 것, 또는 2개의 타일을 나란히 동등하게 결합하여 타겟 픽처 영역을 형성하는 것)에 따라 도 5f에서의 신택스 요소들의 값들을 다음과 같이 설정한다:
num_tile_columns_minus1 = 1;
num_tile_rows_minus1 = 0;
uniform_spacing_flag = 1.
생성 유닛(805)은 타겟 타일 식별자(예를 들면, 2 및 3)에 따라 도 5g에서의 신택스 요소들의 값들을 다음과 같이 설정한다:
tile_id_present_flag = 1;
tile_id_ascending_flag = 1;
tile_id_starting_value = 2.
"타겟 타일 파라미터"는 타겟 픽처 영역을 형성하기 위해 타겟 타일들을 결합하는 방식을 나타내는 타겟 타일 파티셔닝 파라미터 및 타겟 타일의 타겟 타일 식별자를 집합적으로 지칭하기 위해 이용될 수 있다.
형성 유닛(803)은 데이터 흐름(81) 내의 비트스트림으로부터 추출된 슬라이스 데이터 유닛(은 물론 다른 연관된 데이터 유닛) 및 새로운 파라미터 세트의 데이터 유닛을 포함한 데이터 유닛들을 조립하여, 비디오 코딩 표준의 명시된 비트스트림 구조에 따라 서브-비트스트림을 형성한다. 형성 유닛(803)의 출력은, 도 7에서의 디코더(700)에 의해 디코딩 가능한, 서브-비트스트림이다.
더욱이, 이 예에서의 서브-비트스트림이 2개의 타일을 포함하기 때문에, 서브-비트스트림은 여전히 추출 가능하고 추출기의 입력이 될 수 있으며, 예를 들어, 타겟 픽처 영역은 타일 식별자가 2인 타일을 커버하게 설정된다.
위에서 설명된 기술을 사용하면, 슬라이스 데이터 유닛을 프로세싱할 때 재기입 동작이 필요하지 않으며, 슬라이스 어드레스와 픽처 내의 타일 커버리지 영역을 비교하는 것에 의해 타겟 타일에 어느 슬라이스가 있는지의 복잡한 결정이 슬라이스 레이어 타일 식별자와 타겟 타일 식별자를 단순히 비교하는 것에 의해 제거된다. 따라서, 기존의 방법에서의 단점은 인코더를 사용하여 원래 비트스트림을 생성하고, 추출기를 사용하여 서브-비트스트림을 획득하며, 디코더를 사용하여 서브-비트스트림(은 물론 원래 비트스트림)을 디코딩하는 것에 의해 해결된다.
도 17은 본 기술의 하나 이상의 실시예에 따른, 비디오 또는 픽처 프로세싱에서 하나 이상의 비트스트림을 프로세싱하기 위한 방법(1700)의 플로차트 표현이다. 방법(1700)은, 단계(1701)에서, 픽처의 타겟 영역에 위치된 하나 이상의 타겟 타일을 식별하는 하나 이상의 타겟 타일 식별자를 결정하는 단계를 포함한다. 하나 이상의 타겟 타일 식별자는 하나 이상의 비트스트림에 포함된다. 방법(1700)은, 단계(1702)에서, 하나 이상의 비트스트림 각각으로부터, 슬라이스의 헤더로부터의 타일 식별자를 획득하는 단계를 포함한다. 타일 식별자는 슬라이스가 상주하는 타일을 나타낸다. 방법(1700)은, 단계(1703)에서, 슬라이스의 헤더로부터의 타일 식별자가 하나 이상의 타겟 타일 식별자 중 하나와 동일하다는 결정에 기초하여 비트스트림으로부터 서브-비트스트림을 작성하는 단계를 포함한다. 방법(1700)은, 단계(1704)에서, 타겟 영역에 대응하는 타겟 타일 파라미터를 결정하는 단계를 포함한다. 타겟 타일 파라미터는 하나 이상의 타겟 타일의 파티셔닝 방식을 나타내는 타겟 타일 파티셔닝 파라미터를 포함한다. 타겟 타일 파라미터는 하나 이상의 타겟 타일 식별자를 더 포함한다. 방법(1700)은, 단계(1705)에서, 타겟 타일 파라미터를 서브-비트스트림의 데이터 유닛에서 인코딩하는 단계를 또한 포함한다.
실시예 4
도 9는 본 기술의 하나 이상의 실시예에 따른 기술을 구현하는 소스 디바이스(900)의 예를 묘사한다.
코더 제어 유닛(901)은 인코더 구성을 생성하고, 이를 데이터 흐름(90)을 통해 인코더(902)로 전달한다. 인코더 구성은 입력 비디오를 인코딩함에 있어서의 타일 파티셔닝 방식과 하나 이상의 인코딩 파라미터를 나타낸다. 인코더(902)는 도 2에 묘사된 예시적인 인코더에 따라 구현된다. 인코더(902)는 데이터 흐름(90) 내의 인코더 구성을 사용하여 입력 비디오를 인코딩하여 출력 비트스트림을 생성한다. 출력 비트스트림은 도 7에 묘사된 예시적인 디코더에 의해 디코딩 가능하다.
일부 실시예에서, 소스 디바이스(900)는 동일한 입력 비디오를 인코딩하는 데 상이한 인코더 구성을 사용하여 다수의 독립적인 비트스트림을 생성할 수 있다. 그러한 비트스트림은 대응하는 다수의 인코더 구성(예를 들면, 픽처에 사용되는 양자화 파라미터, 픽처의 해상도, 타일에 사용되는 양자화 파라미터 및 타일의 해상도 등)에서 상이한 세트들의 결과인, 서로 상이한 다수의 품질 특징을 가질 수 있다.
예를 들어, 무지향성 360도 비디오의 뷰포트 기반 스트리밍을 용이하게 하기 위해, 소스 디바이스(900)는 (예를 들면, 상이한 양자화 파라미터를 사용하여) 상이한 코딩 품질을 갖는 다수의 비트스트림을 생성할 수 있다. HMD가 뷰어의 현재 포커싱 포인트의 뷰포트에 대응하는 비트스트림을 필요로 할 때, 미디어 서버는 HMD에 렌더링하기 위한 현재 뷰포트를 커버하는 높은 품질의 영역 및 뷰어가 다른 뷰포트로 시프트할 때 다른 뷰포트의 "임시" 렌더링을 위한 다른 상대적으로 낮은 품질의 영역을 포함하는 비트스트림을 형성할 수 있다. HMD가 뷰어가 새로운 뷰포트에 초점을 맞추고 있다는 것을 검출할 때, HMD는 요청을 서버로 송신하고 서버는 HMD에 렌더링하기 위한 현재 시프트된 뷰포트를 커버하는 높은 품질의 영역을 포함하는 새로운 비트스트림을 생성하고 이 새로운 비트스트림을 HMD로 송신한다.
이 경우에, 코더 제어 유닛(901)는 2개의 인코더 구성을 설정한다. 2개의 인코더 구성에서의 타일 파티셔닝 방식은 동일하지만, 양자화 파라미터는 상이하다. 인코더(902)는 입력 비디오를 2개의 구성을 사용하여 개별적으로 인코딩하여 2개의 비트스트림(903 및 904)을 획득한다.
비트스트림(903)을 생성할 때, 코더 제어 유닛(901)은 높은 양자화 파라미터를 제1 인코더 구성에 설정하고, 비트스트림(903)을 디코딩하는 것에 의해 획득되는 픽처는 상대적으로 낮은 지각 품질을 갖는다.
비트스트림(904)을 생성할 때, 코더 제어 유닛(901)은 낮은 양자화 파라미터를 제2 인코더 구성에 설정하고, 비트스트림(904)을 디코딩하는 것에 의해 획득되는 픽처는 상대적으로 높은 지각 품질을 갖는다.
비트스트림(903 및 904)으로부터의 데이터 유닛들을 결합하는 것에 의해 서브-비트스트림을 추출하는 것을 지원하기 위해, 인코더(902)는 다수의 비트스트림을 생성할 때 상이한 타일 식별자를 할당한다. 예를 들어, 인코더(902)는 비트스트림(903) 및 비트스트림(904)을 생성할 때 도 3에서의 타일 파라미터 및 도 4에서의 타일 파라미터(타일 파티셔닝 방식 및 타일 식별자의 대응하는 할당을 포함함)를 사용한다. 즉, 비트스트림(903)에서의 픽처 내의 8개의 타일에 대한 타일 식별자는 0, 1, 2, 3, 4, 5, 6 및 7이고, 비트스트림(904)에서의 픽처 내의 8개의 타일에 대한 타일 식별자는 10, 11, 12, 13, 14, 15, 16 및 17이다.
도 10은 본 기술의 하나 이상의 실시예에 따른 미디어 디바이스(1000)의 예를 도시한다. 미디어 디바이스(1000)는 애플리케이션 유닛(1001) 및 추출기(1002)를 포함한다.
애플리케이션 유닛(1001)은 애플리케이션 요구사항을 수집하고 애플리케이션 데이터를 생성한다. 애플리케이션 요구사항은, 예를 들어, 사용자에 의한 고해상도 픽처 내의 영역의 선택, HMD에 의해 검출된 뷰포트 등일 수 있다. 생성된 애플리케이션 데이터는 추출할 타겟 픽처 영역을 포함하는, 제어 유닛(802)의 입력으로서 도 8에 설명된 것과 동일하다. 생성된 애플리케이션 데이터는 픽처에서의 현재 포커싱 뷰포트의 위치를 또한 포함할 수 있다. 애플리케이션 유닛(1001)은 생성된 애플리케이션 데이터를 데이터 흐름(100)을 통해 전달한다.
추출기(1002)는 다수의 입력 비트스트림을 프로세싱하는 추가 능력을 갖는, 도 8에 예시된 추출기에 따라 구현된다. 추출기(1002)는 도 8에 도시된 것과 동일한 유닛들 및 데이터 흐름들을 포함한다. 예를 들어, 추출기(1002)의 입력이 단일 비트스트림일 때, 추출기(1002)는 위에서 기술된 것과 동일한 방식으로 단일 비트스트림을 프로세싱한다.
다른 예로서, 추출기(1002)의 입력은 다수의 비트스트림을 포함한다. 예를 들어, 소스 디바이스(900)에 의해 생성된 2개의 비트스트림(903 및 904)은 이제, 제각기, 입력 비트스트림(1003) 및 입력 비트스트림(1004)이 된다.
추출기(1002) 내의 파싱 유닛(801)은 다수의 입력 비트스트림 내의 데이터 유닛(예를 들면, 파라미터 세트 데이터 유닛)으로부터 다수의 타일 파라미터를 획득하기 위해 다수의 입력 비트스트림을 파싱한다. 타일 파라미터 각각은 픽처를 타일들로 파티셔닝하는 방식을 나타내는 타일 파티셔닝 파라미터 및 이에 대응하여 하나 이상의 타일 식별자를 포함한다. 추출기(1002) 내의 파싱 유닛(801)은 타일 파라미터를 획득하기 위해 파싱 유닛(701)과 유사한 프로세스를 실행한다. 파싱 유닛(801)은 입력 비트스트림(1003 및 1004)으로부터 획득되는 추출할 타겟 타일을 결정하기 위한 타일 파라미터 및 다른 필요한 데이터(예를 들면, 픽처 폭 및 높이)를 추출기(1002) 내의 데이터 흐름(80)에 넣고 데이터 흐름(80)을 추출기(1002) 내의 제어 유닛(802)으로 송신한다.
추출기(1002) 내의 파싱 유닛(801)은 파싱 유닛(701)에서의 것과 유사한 방법을 사용하여 슬라이스의 슬라이스 헤더로부터 슬라이스 레이어 타일 식별자를 획득하기 위해 다수의 입력 비트스트림 각각을 파싱한다. 추출기(1002) 내의 파싱 유닛(801)은 입력 비트스트림(1003 및 1004)으로부터 획득된 슬라이스 레이어 타일 식별자를 데이터 흐름(81)에 넣고 데이터 흐름(81)을 추출기(1002) 내의 형성 유닛(803)으로 송신한다. 추출기(1002) 내의 파싱 유닛(801)은 또한 다수의 입력 비트스트림 각각을 파싱하고 필요한 경우 서브-비트스트림을 생성하는 프로세스에서 데이터 흐름(81)을 통해 추출기(1002) 내의 형성 유닛(803)으로 다른 데이터를 전달한다. 추출기(1002) 내의 파싱 유닛(801)은 또한 다수의 입력 비트스트림을 데이터 흐름(81)에 포함시킨다.
추출기(1002) 내의 제어 유닛(802)은, 픽처에서의 타겟 픽처 영역의 위치와 크기 및 어쩌면 또한 픽처에서의 현재 포커싱 뷰포트의 위치를 포함한, 데이터 흐름(100)으로부터 타겟 픽처 영역을 획득한다. 추출기(1002) 내의 제어 유닛(802)은 데이터 흐름(80)으로부터 타일 파라미터 및 픽처의 폭과 높이를 획득한다. 추출기(1002) 내의 제어 유닛(802)은 파싱 유닛(701)에 의해 사용된 것과 유사한 방법을 이용하여 픽처 내의 타일의 어드레스 및 크기를 결정하고, 이어서 타겟 픽처 영역에 위치된 하나 이상의 타겟 타일을 결정한다. 제어 유닛(802)은 또한 타일 파라미터에 따라 타겟 타일 식별자를 타겟 타일의 타일 식별자로서 결정한다. 이 예에서, 픽처 내의 현재 포커싱 뷰포트가 픽처의 우측 절반이라고 가정하면, 추출기(1002) 내의 제어 유닛(802)은 타겟 픽처 영역이 (높은 지각 품질에 대한) 입력 비트스트림(1004) 내의 픽처의 우측 절반 및 (전송 비트를 절감하기 위한 낮은 지각 품질에 대한) 입력 비트스트림(1003) 내의 픽처의 좌측 절반을 포함한다고 결정한다. 따라서, 다수의 비트스트림으로부터의 최종적인 추출된 픽처는 도 3에 예시된 바와 같은 타일(300, 310, 340 및 350) 및 도 4에 예시된 바와 같은 타일(4120, 4130, 4160 및 4170)을 포함한다. 추출기(1002) 내의 제어 유닛(802)은 타겟 타일 식별자(예를 들면, 입력 비트스트림(1003) 내의 타일에 대한 0, 1, 4 및 5, 및 입력 비트스트림(1004) 내의 타일에 대한 12, 13, 16 및 17) 및 타겟 픽처 영역의 크기(예를 들면, targetPicWidth 및 targetPicHeight)를 데이터 흐름(82)에 넣는다. 이 예에서, 추출기(1002) 내의 제어 유닛(802)은 targetPicWidth 및 targetPicHeight를, 제각기, 픽처의 폭 및 높이와 동일하게 설정한다.
추출기(1002) 내의 제어 유닛(802)은 또한 픽처를 형성할 8개의 타일의 결합 방식을 데이터 흐름(82)에 넣는다. 이와 동등하게, 그러한 결합 방식은 또한 픽처를 타일들로 파티셔닝하는 방식을 나타낼 수 있다. 도 11은 본 기술의 하나 이상의 실시예에 따른, 서브-비트스트림에서의 픽처의 타일 및 슬라이스 파티셔닝의 예를 도시한다. 픽처(110)는 서브-비트스트림(예를 들면, 출력 비트스트림(1005))을 디코딩하는 것에 의해 획득된 픽처이다. 타일(110300, 110310, 110340 및 110350)은 입력 비트스트림(1003)으로부터의 도 3에 예시된 타일(300, 310, 340 및 350)(제각기, 동일한 타일 식별자를 가짐)이다. 타일(1104120, 1104130, 1104160, 1104170)은 도 4에 예시된 타일(4120, 4130, 4160 및 4170)(제각기, 동일한 타일 식별자를 가짐)이다. 추출기(1002) 내의 제어 유닛(802)은 타일 파티셔닝 방식 및 대응하는 타일 식별자를, 예를 들어, 픽처(110)의 타일 파라미터의 형태로, 데이터 흐름(82)에 넣는다.
추출기(1002) 내의 형성 유닛(803)은 데이터 흐름(81 및 82)을 수신하고, 데이터 흐름(81)에서 전달되는 다수의 입력 비트스트림으로부터 데이터 유닛을 추출하며, 타겟 픽처 영역에 대한 새로운 파라미터에 따라 새로운 파라미터 세트를 생성하고, 이어서 추출된 데이터 유닛과 새로운 파라미터 세트를 작성하는 것에 의해 서브-비트스트림을 형성한다. 추출기(1002) 내의 형성 유닛(803)은 추출 유닛(804) 및 생성 유닛(805)을 포함한다. 추출 유닛(804)이 타겟 타일 식별자들 중 하나와 동일한 슬라이스 레이어 타일 식별자를 검출할 때, 추출 유닛(804)은 이 슬라이스의 하나 이상의 데이터 유닛을 추출한다. 이 예에서, 추출 유닛(804)은, 슬라이스 레이어 타일 식별자가 0, 1, 4 및 5 중 하나와 동일한, 도 3에 예시된 바와 같은 슬라이스(3000, 3100, 3101, 3102, 3400, 3401, 3500 및 3501)의 슬라이스 데이터 유닛을, 입력 비트스트림(1003)으로부터, 추출한다. 추출 유닛(804)은 또한, 슬라이스 레이어 타일 식별자가 12, 13, 16 및 17 중 하나와 동일한, 도 4에 예시된 바와 같은 슬라이스(41200, 41201, 41202, 41203, 41300, 41301, 41302, 41303, 41600, 41601, 41602, 41603, 41700, 41701, 41702 및 41703)를, 입력 비트스트림(1004)으로부터, 추출한다. 도 11에 예시된 바와 같이, 픽처(110) 내의 대응하는 슬라이스는 픽처(110)의 좌측 절반 내의 슬라이스(1103000, 1103100, 1103101, 1103102, 1103400, 1103401, 1103500 및 1103501) 및 픽처(110)의 우측 절반 내의 슬라이스(11041200, 11041201, 11041202, 11041203, 11041300, 11041301, 11041302, 11041303, 11041600, 11041601, 11041602, 11041603, 11041700, 11041701, 11041702 및 11041703)이다.
생성 유닛(805)은 타겟 픽처 영역(예를 들면, 픽처(110)) 및 서브-비트스트림(예를 들면, 출력 비트스트림(1005))의 새로운 특징을 나타내기 위해 하나 이상의 새로운 파라미터 세트 데이터 유닛을 생성한다. 예를 들어, 생성 유닛(805)은 비디오 코딩 표준에 따라 타겟 픽처 영역의 픽처 폭과 높이(예를 들면, targetPicWidth와 targetPicHeight)를 나타내도록 파라미터 세트 내의 대응하는 신택스 요소를 설정한다. 생성 유닛(805)은 또한 서브-비트스트림의 동작점을 나타내도록 파라미터 세트 내의 대응하는 신택스 요소를 설정한다.
생성 유닛(805)은 엔트로피 코딩 유닛(215)에 의해 사용된 유사한 방법을 사용하여 새로운 파라미터 세트 내의 타일 파라미터 관련 신택스 요소를 설정한다. 예를 들어, 생성 유닛(805)은 도 5a에서의 신택스 요소의 값을 다음과 같이 설정하는데:
tiles_enable_flag = 1
그 이유는, 도 7에서의 디코더를 사용하여 출력 비트스트림(1005)을 디코딩하는 것에 의해 획득되는 디코딩된 픽처인, 픽처(110)에 8개의 타일이 있기 때문이다. 생성 유닛(805)은 픽처(110)의 타일 파티셔닝 파라미터(예를 들면, 4개의 타일 열과 2개의 타일 행으로 균일하게 파티셔닝하는 것)에 따라 도 5f에서의 신택스 요소들의 값들을 다음과 같이 설정한다:
num_tile_columns_minus1 = 3;
num_tile_rows_minus1 = 1;
uniform_spacing_flag = 1.
생성 유닛(805)은 픽처(110)에서의 타겟 타일 식별자에 따라 도 5g에서의 신택스 요소들의 값들을 다음과 같이 설정한다:
tile_id_present_flag = 1;
tile_id_ascending_flag = 0;
tile_id[0] = 0 (도 11에서의 타일(110300))
tile_id[1] = 1 (도 11에서의 타일(110310))
tile_id[2] = 12 (도 11에서의 타일(1104120))
tile_id[3] = 13 (도 11에서의 타일(1104130))
tile_id[4] = 4 (도 11에서의 타일(110340))
tile_id[5] = 5 (도 11에서의 타일(110350))
tile_id[6] = 16 (도 11에서의 타일(1104160))
tile_id[7] = 17 (도 11에서의 타일(1104170))
"타겟 타일 파라미터"는 타겟 픽처 영역을 형성하기 위해 타겟 타일들을 결합하는 방식을 나타내는 타겟 타일 파티셔닝 파라미터 및 타겟 타일의 타겟 타일 식별자를 집합적으로 지칭하기 위해 이용될 수 있다.
추출기(1002) 내의 형성 유닛(803)은 데이터 흐름(81) 내의 다수의 입력 비트스트림으로부터 추출된 슬라이스 데이터 유닛(은 물론 다른 연관된 데이터 유닛) 및 새로운 파라미터 세트의 데이터 유닛을 포함한 데이터 유닛들을 조립하여, 비디오 코딩 표준의 명시된 비트스트림 구조에 따라 서브-비트스트림을 형성한다. 추출기(1002) 내의 형성 유닛(803)의 출력은, 도 7에서의 디코더(700)에 의해 디코딩 가능한, 출력 비트스트림(1005)이다.
더욱이, 이 예에서의 출력 비트스트림(1005)이 8개의 타일을 포함하므로, 출력 비트스트림(1005)은 여전히 추출 가능하고 도 8 또는 도 10에 예시된 추출기의 입력일 수 있다.
실시예 5
도 12는 본 기술의 하나 이상의 실시예에 따른, 적어도 비디오 인코더 또는 픽처 인코더를 포함하는 예시적인 디바이스(1200)를 도시한다. 도 12에서, 취득 유닛(1201)은 비디오 및 픽처를 캡처한다. 취득 유닛(1201)은 자연 경관의 비디오 또는 픽처를 촬영하기 위한 하나 이상의 카메라를 장비할 수 있다. 일부 실시예에서, 취득 유닛(1201)은 깊이 비디오 또는 깊이 픽처를 획득하기 위해 카메라로 구현될 수 있다. 일부 실시예에서, 취득 유닛(1201)은 적외선 카메라의 컴포넌트를 포함할 수 있다. 일부 실시예에서, 취득 유닛(1201)은 원격 감지 카메라로 구성될 수 있다. 취득 유닛(1201)은 또한 방사선을 사용하여 객체를 스캔하는 것에 의해 비디오 또는 픽처를 생성하는 장치 또는 디바이스일 수 있다.
일부 실시예에서, 취득 유닛(1201)은 비디오 또는 픽처에 대한 프리-프로세싱(예를 들면, 자동 화이트 밸런스, 자동 초점, 자동 노출, 백라이트 보상, 샤프닝, 디노이징, 스티칭, 업 샘플링/다운 샘플링, 프레임 레이트 변환, 가상 뷰 합성 등)을 수행할 수 있다.
일부 실시예에서, 취득 유닛(1201)은 또한 다른 디바이스 또는 프로세싱 유닛으로부터 비디오 또는 픽처를 수신할 수 있다. 예를 들어, 취득 유닛(1201)은 트랜스코더 내의 컴포넌트 유닛일 수 있다. 트랜스코더는 하나 이상의 디코딩된(또는 부분 디코딩된) 픽처를 취득 유닛(1201)에 피드한다. 다른 예로서, 취득 유닛(1201)은 다른 디바이스로부터의 비디오 또는 픽처를 해당 디바이스에 대한 데이터 링크를 통해 획득한다.
취득 유닛(1201)은 비디오 및 픽처 이외의 다른 유형의 미디어 정보(예를 들면, 오디오 신호)를 캡처하는 데 사용될 수 있다는 점에 유의한다. 취득 유닛(1201)은 또한 인공 정보(예를 들면, 문자, 텍스트, 컴퓨터 생성 비디오 또는 픽처 등)를 수신할 수 있다.
인코더(1202)는 본 기술의 하나 이상의 실시예에 따라 구현된다. 인코더(1202)의 입력은 취득 유닛(1201)에 의해 출력된 비디오 또는 픽처이다. 인코더(1202)는 비디오 또는 픽처를 인코딩하고 생성된 비디오 또는 픽처 비트스트림을 출력한다.
저장/송신 유닛(1203)은 인코더(1202)로부터 비디오 또는 픽처 비트스트림을 수신하고, 비트스트림에 대해 시스템 레이어 프로세싱을 수행한다. 예를 들어, 저장/송신 유닛(1203)는 전송 표준 및 미디어 파일 포맷(예를 들면, MPEG-2 TS, ISOBMFF, DASH, MMT 등)에 따라 비트스트림을 캡슐화한다. 저장/송신 유닛(1203)은 캡슐화 이후 획득된 전송 스트림 또는 미디어 파일을 제1 예시적인 디바이스의 메모리 또는 디스크에 저장하거나, 유선 또는 무선 네트워크를 통해 전송 스트림 또는 미디어 파일을 송신한다.
인코더(1202)로부터의 비디오 또는 픽처 비트스트림 이외에, 저장/송신 유닛(1203)의 입력이 오디오, 텍스트, 이미지, 그래픽 등을 또한 포함할 수 있음에 유의한다. 저장/송신 유닛(1203)은 그러한 상이한 유형의 미디어 비트스트림을 캡슐화하는 것에 의해 전송 또는 미디어 파일을 생성한다.
저장/송신 유닛(1203)은 본 기술의 하나 이상의 실시예에 따라 구현된 추출기를 또한 포함할 수 있다. 저장/송신 유닛(1203)은 저장 또는 전송을 위한 서브-비트스트림을 생성할 수 있다.
이 실시예에서 설명된 예시적인 디바이스(1200)는 비디오 통신의 애플리케이션에서 비디오(또는 픽처) 비트스트림을 생성하거나 프로세싱할 수 있는 디바이스(예를 들면, 모바일 폰, 컴퓨터, 미디어 서버, 휴대용 모바일 단말, 디지털 카메라, 방송 디바이스, CDN(content distribution network) 디바이스, 감시 카메라, 화상 회의 디바이스 등)일 수 있다.
실시예 6
도 13은 본 기술의 하나 이상의 실시예에 따른, 적어도 예시적인 디코더를 포함하는 다른 예시적인 디바이스(1300)를 도시한다.
수신 유닛(1301)은 유선 또는 무선 네트워크로부터 비트스트림을 획득하는 것에 의해, 전자 디바이스 내의 메모리 또는 디스크를 판독하는 것에 의해, 또는 데이터 링크를 통해 다른 디바이스로부터 데이터를 가져오는 것에 의해 비디오 또는 픽처 비트스트림을 수신한다. 수신 유닛(1301)의 입력은 비디오 또는 픽처 비트스트림을 포함하는 전송 스트림 또는 미디어 파일을 또한 포함할 수 있다. 수신 유닛(1301)은 전송 스트림의 규격 또는 미디어 파일 포맷에 따라 전송 스트림 또는 미디어 파일로부터 비디오 또는 픽처 비트스트림을 추출한다.
수신 유닛(1301)은 본 기술의 하나 이상의 실시예에 따라 구현된 추출기를 또한 포함할 수 있다. 수신 유닛(1301)은 디코딩 및 렌더링을 위해 하나 이상의 수신된 비트스트림을 추출하는 것에 의해 서브-비트스트림을 생성할 수 있다.
수신 유닛(1301)은 비디오 또는 픽처 비트스트림을 출력하고 디코더(1302)로 전달한다. 비디오 또는 픽처 비트스트림 이외에, 수신 유닛(1301)의 출력은 오디오 비트스트림, 문자, 텍스트, 이미지, 그래픽 등을 또한 포함할 수 있다는 점에 유의한다. 수신 유닛(1301)은 출력을 예시적인 디바이스(1300) 내의 대응하는 프로세싱 유닛으로 전달한다. 예를 들어, 수신 유닛(1301)은 출력 오디오 비트스트림을 이 디바이스(1300) 내의 오디오 디코더로 전달한다.
인코더(1302)의 입력은 수신 유닛(1301)에 의해 출력된 비디오 또는 픽처 비트스트림이다. 디코더(1302)는 비디오 또는 픽처 비트스트림을 디코딩하고 디코딩된 비디오 또는 픽처를 출력한다.
렌더링 유닛(1303)은 디코더(1302)로부터 디코딩된 비디오 또는 픽처를 수신한다. 렌더링 유닛(1303)은 디코딩된 비디오 또는 픽처를 뷰어에게 제시한다. 렌더링 유닛(1303)은 예시적인 디바이스(1300)의 컴포넌트(예를 들면, 스크린)일 수 있다. 렌더링 유닛(1303)은 또한 예시적인 디바이스(1300)(예를 들면, 프로젝터, 모니터, TV 세트 등)에 대한 데이터 링크를 갖는 예시적인 디바이스(1300)와 별개의 디바이스일 수 있다. 일부 실시예에서, 렌더링 유닛(1303)은 비디오 또는 픽처를 뷰어에 제시하기 전에 이에 대한 포스트-프로세싱(예를 들면, 자동 화이트 밸런스, 자동 초점, 자동 노출, 백라이트 보상, 샤프닝, 디노이징, 스티칭, 업 샘플링/다운 샘플링, 프레임 레이트 변환, 가상 뷰 합성 등)을 수행한다.
디코딩된 비디오 또는 픽처 이외에, 렌더링 유닛(1303)의 입력이 제2 예시적인 디바이스의 하나 이상의 유닛으로부터의 다른 미디어 데이터(예를 들면, 오디오, 문자, 텍스트, 이미지, 그래픽 등)를 포함할 수 있다는 점에 유의한다. 렌더링 유닛(1303)의 입력은 인공 데이터(예를 들면, 원격 교육 애플리케이션에서 관심을 끌기 위해 슬라이드에 지역 교사가 그린 선 및 마크)를 또한 포함할 수 있다. 렌더링 유닛(1303)은 상이한 유형의 미디어를 함께 포함하고 이어서 작성물을 뷰어에게 제시한다.
이 실시예에서 설명된 예시적인 디바이스(1300)는 비디오 통신의 애플리케이션에서 비디오(또는 픽처) 비트스트림을 디코딩하거나 프로세싱할 수 있는 디바이스(예를 들면, 모바일 폰, 컴퓨터, 셋톱 박스, TV 세트, HMD, 모니터, 미디어 서버, 휴대용 모바일 단말, 디지털 카메라, 방송 디바이스, 콘텐츠 분배 네트워크 디바이스, 감시, 화상 회의 디바이스 등)일 수 있다.
실시예 7
도 14는 본 기술의 하나 이상의 실시예에 따른 예시적인 전자 시스템을 도시한다. 시스템(1400)은 서비스 디바이스(1401), 저장 매체/전송 네트워크(1402) 및 목적지 디바이스(1403)를 포함한다. 서비스 디바이스(1401)는 위에서 설명된 실시예 5에 따라 구현될 수 있다. 저장 매체/전송 네트워크(1402)는 디바이스 또는 전자 시스템의 내부 메모리 리소스, 데이터 링크를 통해 액세스 가능한 외부 메모리 리소스, 및/또는 유선 및/또는 무선 네트워크를 포함한 데이터 전송 네트워크를 포함할 수 있다. 저장 매체/전송 네트워크(1402)는 서비스 디바이스(1401) 내의 저장/송신 유닛(1203)을 위한 저장 리소스 또는 데이터 전송 네트워크를 제공한다.
목적지 디바이스(1403)는 위에서 설명된 실시예 6에 따라 구현될 수 있다. 예를 들어, 목적지 디바이스(1403) 내의 수신 유닛(1301)은 저장 매체/전송 네트워크(1402)로부터 비디오 또는 픽처 비트스트림, 비디오 또는 픽처 비트스트림을 포함하는 전송 스트림 또는 비디오 또는 픽처 비트스트림을 포함하는 미디어 파일을 수신한다.
이 실시예에서 설명된 전자 시스템(1400)은 비디오 통신의 애플리케이션에서 비디오(또는 픽처) 비트스트림을 생성, 저장 또는 전송 및 디코딩할 수 있는 디바이스 또는 시스템(예를 들면, 모바일 폰, 컴퓨터, IPTV 시스템, OTT 시스템, 인터넷 상의 멀티미디어 시스템, 디지털 TV 방송 시스템, 비디오 감시 시스템, 휴대용 모바일 단말, 디지털 카메라, 화상 회의 시스템 등)일 수 있다.
설명된 구현이 "타일" 및 "슬라이스"를 대응 개념(counterpart concept) 및 영역 정의로 대체하는 것에 의해 픽처를 파티셔닝하기 위한 임의의 다른 유사한 개념 및 영역 정의에 적용될 수 있다는 점에 유의한다. 예를 들어, 본 개시에서의 방법은 "타일"을 H.264/AVC 표준에 명시된 "슬라이스 그룹"으로 대체하는 것에 의해 H.264/AVC 코덱에 적용될 것이다.
본 문서가 슬라이스 어드레스의 중복 기입을 방지하고 슬라이스 위치를 결정하는 계산 비용을 최소화하여, 이에 의해 재동기화, 병렬 프로세싱, 관심 영역 코딩 및 스트리밍, 패킷화된 전송 및/또는 뷰포트 종속적 스트리밍을 지원하도록 개별 슬라이스에 액세스하는 효율을 증가시키기 위해 비디오 또는 픽처 프로세싱의 상이한 스테이지(예를 들면, 인코딩, 디코딩, 추출)에서 다양한 실시예에 적용될 수 있는 기술을 개시하고 있음이 이해될 것이다.
예시적인 양태에서, 비디오 또는 픽처 프로세싱을 위한 방법은 픽처를 하나 이상의 타일로 파티셔닝하는 단계, 및 하나 이상의 타일에 기초하여 하나 이상의 구성을 사용하여 하나 이상의 비트스트림을 생성하는 단계를 포함한다. 하나 이상의 비트스트림을 생성하는 단계는 하나 이상의 타일 각각을 하나 이상의 슬라이스로 파티셔닝하는 단계, 및, 하나 이상의 슬라이스 중 각각의 슬라이스에 대해: 타일 식별자를 슬라이스의 헤더에서 인코딩하기 위한 제1 인코딩 단계, 및 타일에서의 슬라이스의 위치를 나타내는 슬라이스의 제2 어드레스를, 슬라이스의 헤더에, 인코딩하기 위한 제2 인코딩 단계를 수행하는 단계를 포함한다. 타일 식별자는 슬라이스가 상주하는 타일을 나타낸다. 제2 어드레스는 픽처에서의 슬라이스의 위치를 나타내는 슬라이스의 제1 어드레스와 타일의 어드레스에 기초하여 결정된다.
일부 실시예에서, 하나 이상의 비트스트림을 생성하는 단계는 타일 파라미터를 픽처의 데이터 유닛에서 인코딩하는 단계를 포함한다. 타일 파라미터는 픽처에서의 하나 이상의 타일의 파티셔닝 방식을 나타내는 타일 파티셔닝 파라미터를 포함하고, 타일 파라미터는 하나 이상의 타일 각각을 식별하는 타일 식별자를 더 포함한다. 일부 실시예에서, 데이터 유닛은 파라미터 세트의 데이터 유닛을 포함한다.
일부 실시예에서, 슬라이스의 제1 어드레스는 픽처에서의 슬라이스의 제1 샘플의 위치를 포함한다. 일부 실시예에서, 슬라이스의 제1 어드레스는 픽처 내의 타일의 제1 코딩 블록의 순서 번호를 포함한다.
일부 실시예에서, 제2 어드레스는 타일 내의 슬라이스의 제1 샘플의 위치를 포함한다. 일부 구현예에서, 제2 어드레스는 슬라이스의 제1 샘플의 위치와 타일의 제1 샘플의 위치 사이의 좌표 오프셋을 포함한다. 일부 실시예에서, 제2 어드레스는 타일 내의 슬라이스의 제1 코딩 블록의 순서 번호를 포함한다. 일부 실시예에서, 슬라이스의 제1 코딩 블록의 순서 번호는 코딩 블록들의 스캐닝 순서에 기초하여 결정된다. 일부 구현예에서, 스캐닝 순서는 래스터 스캐닝 순서를 포함한다.
일부 실시예에서, 하나 이상의 구성은 값이 상이한 적어도 하나의 파라미터를 포함하고, 하나의 파라미터는: 픽처에 대한 양자화 파라미터, 픽처의 해상도, 하나 이상의 타일에 대한 양자화 파라미터, 또는 하나 이상의 타일의 해상도를 포함한다.
다른 예시적인 양태에서, 비디오 또는 픽처 프로세싱에서 픽처를 디코딩하기 위한 방법이 설명된다. 픽처는 하나 이상의 타일로 파티셔닝되고, 하나 이상의 타일 각각은 하나 이상의 슬라이스로 파티셔닝된다. 이 방법은 비트스트림 내의 슬라이스의 헤더로부터 타일 식별자를 획득하는 단계 - 타일 식별자는 슬라이스가 상주하는 타일을 나타냄 - ; 비트스트림 내의 슬라이스의 헤더로부터 제2 어드레스를 획득하는 단계 - 제2 어드레스는 타일에서의 슬라이스의 위치를 나타냄 - ; 및 타일 식별자 및 제2 어드레스에 기초하여 픽처에서의 슬라이스의 위치를 나타내는 슬라이스의 제1 어드레스를 결정하는 단계를 포함한다.
일부 실시예에서, 이 방법은 비트스트림 내의 픽처의 데이터 유닛으로부터 타일 파라미터를 획득하는 단계를 포함한다. 타일 파라미터는 하나 이상의 타일의 파티셔닝 방식을 나타내는 타일 파티셔닝 파라미터를 포함하고, 타일 파라미터는 하나 이상의 타일 각각을 식별하는 타일 식별자를 더 포함한다. 일부 실시예에서, 데이터 유닛은 파라미터 세트의 데이터 유닛을 포함한다.
일부 실시예에서, 슬라이스의 제1 어드레스는 픽처에서의 슬라이스의 제1 샘플의 위치를 포함한다. 일부 실시예에서, 슬라이스의 제1 어드레스는 픽처 내의 타일의 제1 코딩 블록의 순서 번호를 포함한다.
일부 실시예에서, 제2 어드레스는 타일 내의 슬라이스의 제1 샘플의 위치를 포함한다. 일부 구현예에서, 제2 어드레스는 슬라이스의 제1 샘플의 위치와 타일의 제1 샘플의 위치 사이의 좌표 오프셋을 포함한다. 일부 실시예에서, 제2 어드레스는 타일 내의 슬라이스의 제1 코딩 블록의 순서 번호를 포함한다. 일부 실시예에서, 슬라이스의 제1 코딩 블록의 순서 번호는 코딩 블록들의 스캐닝 순서에 기초하여 결정된다. 일부 구현예에서, 스캐닝 순서는 래스터 스캐닝 순서를 포함한다.
다른 예시적인 양태에서, 비디오 또는 픽처 프로세싱에서 픽처를 디코딩하기 위한 장치가 설명된다. 이 장치는 상기 디코딩 방법을 구현하도록 구성된 파싱 유닛을 포함한다.
다른 예시적인 양태에서, 비디오 또는 픽처의 하나 이상의 비트스트림을 프로세싱하기 위한 방법이 기술된다. 픽처는 하나 이상의 타일로 파티셔닝되고, 하나 이상의 타일 각각은 하나 이상의 슬라이스로 파티셔닝된다. 이 방법은 픽처의 타겟 영역에 위치된 하나 이상의 타겟 타일을 식별하는 하나 이상의 타겟 타일 식별자를 결정하는 단계를 포함한다. 하나 이상의 타겟 타일 식별자는 하나 이상의 비트스트림에 포함된다. 이 방법은, 하나 이상의 비트스트림 각각으로부터, 슬라이스의 헤더로부터의 타일 식별자를 획득하는 단계를 포함한다. 타일 식별자는 슬라이스가 상주하는 타일을 나타낸다. 이 방법은 슬라이스의 헤더로부터의 타일 식별자가 하나 이상의 타겟 타일 식별자 중 하나와 동일하다는 결정에 기초하여 서브-비트스트림을 작성하는 단계 및 타겟 영역에 대응하는 타겟 타일 파라미터를 결정하는 단계를 포함한다. 타겟 타일 파라미터는 하나 이상의 타겟 타일의 파티셔닝 방식을 나타내는 타겟 타일 파티셔닝 파라미터를 포함하고, 타겟 타일 파라미터는 하나 이상의 타겟 타일 식별자를 더 포함한다. 이 방법은 타겟 타일 파라미터를 서브-비트스트림의 데이터 유닛에서 인코딩하는 단계를 또한 포함한다.
일부 실시예에서, 데이터 유닛은 파라미터 세트의 데이터 유닛을 포함한다. 일부 실시예에서, 이 방법은 하나 이상의 타일 파라미터를 획득하기 위해 하나 이상의 비트스트림을 파싱하는 단계를 포함한다. 각각의 타일 파라미터는 픽처에서의 하나 이상의 타일의 파티셔닝 방식을 나타내는 타일 파라미터를 포함하고, 타일 파라미터는 하나 이상의 타일 각각을 식별하는 타일 식별자를 더 포함한다.
다른 예시적인 양태에서, 비디오 또는 픽처 프로세싱을 위한 장치는 하나 이상의 구성을 생성하도록 구성된 코더 제어 유닛, 및 하나 이상의 비트스트림을 생성하기 위해 코더 제어 유닛으로부터 하나 이상의 구성을 수신하도록 구성된 인코더를 포함한다. 인코더는 픽처를 하나 이상의 타일로 파티셔닝하고 하나 이상의 타일 각각을 하나 이상의 슬라이스로 파티셔닝하도록 구성된 파티션 유닛을 포함한다. 파티션 유닛은, 하나 이상의 슬라이스 중 각각의 슬라이스에 대해, 슬라이스가 상주하는 타일을 나타내는 타일 식별자를 결정하는 것, 및 타일에서의 슬라이스의 위치를 나타내는 슬라이스의 제2 어드레스를 결정하는 것을 수행하도록 추가로 구성된다. 제2 어드레스는 픽처에서의 슬라이스의 위치를 나타내는 슬라이스의 제1 어드레스와 타일의 어드레스에 기초하여 결정된다.
일부 실시예에서, 파티션 유닛은 픽처에서의 하나 이상의 타일의 파티셔닝 방식을 나타내는 타일 파티셔닝 파라미터를 포함하는 타일 파라미터를 결정하도록 구성되고, 타일 파라미터는 하나 이상의 타일 각각을 식별하는 타일 식별자를 더 포함한다.
일부 실시예에서, 인코더는 타일 파라미터, 하나 이상의 슬라이스 각각에 대한 타일 식별자, 및 하나 이상의 슬라이스 각각에 대한 슬라이스의 제2 어드레스를, 파티션 유닛으로부터, 수신하고; 타일 파라미터를 픽처의 데이터 유닛에서 인코딩하며; 타일 식별자를 하나 이상의 슬라이스 각각의 헤더에서 인코딩하고; 슬라이스의 제2 어드레스를 하나 이상의 슬라이스 각각의 헤더에서 인코딩하도록 구성된 인코딩 유닛(예를 들면, 위에서 기술된 바와 같은 엔트로피 코딩 유닛(215))을 포함한다. 일부 구현예에서, 데이터 유닛은 파라미터 세트의 데이터 유닛을 포함한다.
일부 실시예에서, 슬라이스의 제1 어드레스는 픽처에서의 슬라이스의 제1 샘플의 위치를 포함한다. 일부 실시예에서, 슬라이스의 제1 어드레스는 픽처 내의 타일의 제1 코딩 블록의 순서 번호를 포함한다.
일부 실시예에서, 제2 어드레스는 타일 내의 슬라이스의 제1 샘플의 위치를 포함한다. 일부 구현예에서, 제2 어드레스는 슬라이스의 제1 샘플의 위치와 타일의 제1 샘플의 위치 사이의 좌표 오프셋을 포함한다. 일부 실시예에서, 제2 어드레스는 타일 내의 슬라이스의 제1 코딩 블록의 순서 번호를 포함한다. 일부 실시예에서, 슬라이스의 제1 코딩 블록의 순서 번호는 코딩 블록들의 스캐닝 순서에 기초하여 결정된다. 일부 구현예에서, 스캐닝 순서는 래스터 스캐닝 순서를 포함한다.
일부 실시예에서, 하나 이상의 구성은 값이 상이한 적어도 하나의 파라미터를 포함하고, 하나의 파라미터는: 픽처에 대한 양자화 파라미터, 픽처의 해상도, 하나 이상의 타일에 대한 양자화 파라미터, 또는 하나 이상의 타일의 해상도를 포함한다.
다른 예시적인 양태에서, 비디오 또는 픽처의 하나 이상의 비트스트림을 프로세싱하기 위한 장치가 기술된다. 픽처는 하나 이상의 타일로 파티셔닝되고, 하나 이상의 타일 각각은 하나 이상의 슬라이스로 파티셔닝된다. 이 장치는 픽처의 타겟 영역에 위치된 하나 이상의 타겟 타일을 식별하는 하나 이상의 타겟 타일 식별자를 결정하도록 구성된 제어 유닛을 포함한다. 하나 이상의 타겟 타일 식별자는 하나 이상의 비트스트림에 포함된다. 이 장치는, 하나 이상의 비트스트림 각각으로부터, 슬라이스의 헤더로부터의 타일 식별자를 획득하도록 구성된 파싱 유닛을 포함한다. 타일 식별자는 슬라이스가 상주하는 타일을 나타낸다. 이 장치는 슬라이스의 헤더로부터의 타일 식별자가 하나 이상의 타겟 타일 식별자 중 하나와 동일하다는 결정에 기초하여 서브-비트스트림을 작성하고; 타겟 영역에 대응하는 타겟 타일 파라미터를 결정하며 - 타겟 타일 파라미터는 하나 이상의 타겟 타일의 파티셔닝 방식을 나타내는 타겟 타일 파티셔닝 파라미터를 포함하고, 타겟 타일 파라미터는 하나 이상의 타겟 타일 식별자를 더 포함함 - ; 타겟 타일 파라미터를 서브-비트스트림의 데이터 유닛에서 인코딩하도록 구성된 형성 유닛을 포함한다.
일부 실시예에서, 데이터 유닛은 파라미터 세트의 데이터 유닛을 포함한다. 일부 실시예에서, 파싱 유닛은 하나 이상의 타일 파라미터를 획득하기 위해 하나 이상의 비트스트림을 파싱하도록 구성된다. 각각의 타일 파라미터는 픽처에서의 하나 이상의 타일의 파티셔닝 방식을 나타내는 타일 파라미터를 포함하고, 타일 파라미터는 하나 이상의 타일 각각을 식별하는 타일 식별자를 더 포함한다.
또 다른 예시적인 양태에서, 컴퓨터 프로그램 저장 매체가 개시된다. 컴퓨터 프로그램 저장 매체는 그에 저장된 코드를 포함한다. 이 코드는, 프로세서에 의해 실행될 때, 프로세서로 하여금 설명된 방법을 구현하게 한다.
본 문서에서 설명된 개시된 및 다른 실시예, 모듈 및 기능 동작은 디지털 전자 회로로, 또는 본 문서에 개시된 구조 및 그의 구조적 등가물을 포함한, 컴퓨터 소프트웨어, 펌웨어, 또는 하드웨어로, 또는 이들 중 하나 이상의 조합으로 구현될 수 있다. 개시된 및 다른 실시예는 하나 이상의 컴퓨터 프로그램 제품으로서, 즉 데이터 프로세싱 장치에 의한 실행을 위해 또는 데이터 프로세싱 장치의 동작을 제어하기 위해 컴퓨터 판독 가능 매체에 인코딩된 컴퓨터 프로그램 명령어의 하나 이상의 모듈로서 구현될 수 있다. 컴퓨터 판독 가능 매체는 머신 판독 가능 저장 디바이스, 머신 판독 가능 저장 기판, 메모리 디바이스, 머신 판독 가능 전파 신호를 실현하는 작성물(composition of matter), 또는 이들 중 하나 이상의 조합일 수 있다. “데이터 프로세싱 장치"라는 용어는, 예로서, 프로그래밍 가능 프로세서, 컴퓨터, 또는 다수의 프로세서 또는 컴퓨터를 포함한, 데이터를 프로세싱하기 위한 모든 장치, 디바이스, 및 머신을 포괄한다. 장치는, 하드웨어 외에도, 문제의 컴퓨터 프로그램을 위한 실행 환경을 생성하는 코드, 예를 들면, 프로세서 펌웨어, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 체제, 또는 이들 중 하나 이상의 조합을 구성하는 코드를 포함할 수 있다. 전파 신호는 인공적으로 생성된 신호, 예를 들면, 적절한 수신기 장치로 전송하기 위한 정보를 인코딩하기 위해 생성되는 머신 생성 전기, 광학, 또는 전자기 신호이다.
컴퓨터 프로그램(프로그램, 소프트웨어, 소프트웨어 애플리케이션, 스크립트 또는 코드라고도 함)은, 컴파일되는(compiled) 또는 인터프리트되는(interpreted) 언어를 포함한, 임의의 형태의 프로그래밍 언어로 작성될 수 있고, 독립형 프로그램(stand-alone program)으로서 또는 모듈, 컴포넌트, 서브루틴 또는 컴퓨팅 환경에서 사용하기에 적절한 다른 유닛으로서를 포함한, 임의의 형태로 배포(deploy)될 수 있다. 컴퓨터 프로그램이 파일 시스템에서의 파일에 반드시 대응하는 것은 아니다. 프로그램은 다른 프로그램 또는 데이터(예를 들면, 마크업 언어 문서에 저장된 하나 이상의 스크립트)를 보유하는 파일의 일 부분에, 문제의 프로그램에 전용된 단일 파일에, 또는 다수의 통합 파일(coordinated file)(예를 들면, 하나 이상의 모듈, 서브 프로그램(sub program), 또는 코드 부분(portion of code)을 저장하는 파일)에 저장될 수 있다. 컴퓨터 프로그램은 하나의 컴퓨터에서 또는 하나의 사이트에 위치되거나 다수의 사이트에 걸쳐 분산되고 통신 네트워크에 의해 상호연결되는 다수의 컴퓨터에서 실행되도록 배포될 수 있다.
본 문서에서 설명된 프로세스 및 로직 흐름은 입력 데이터에 대해 동작하여 출력을 생성함으로써 기능을 수행하기 위해 하나 이상의 컴퓨터 프로그램을 실행하는 하나 이상의 프로그래밍 가능 컴퓨터에 의해 수행될 수 있다. 프로세스 및 로직 흐름이 또한 특수 목적 로직 회로, 예를 들면, FPGA(field programmable gate array) 또는 ASIC(application specific integrated circuit)에 의해 수행될 수 있고, 장치가 또한 이들로서 구현될 수 있다.
컴퓨터 프로그램의 실행에 적절한 프로세서는, 예로서, 범용 및 특수 목적 마이크로프로세서 둘 모두, 및 임의의 종류의 디지털 컴퓨터의 임의의 하나 이상의 프로세서를 포함한다. 일반적으로, 프로세서는 판독 전용 메모리 또는 랜덤 액세스 메모리 또는 둘 모두로부터 명령어 및 데이터를 수신할 것이다. 컴퓨터의 필수 요소는 명령어를 수행하기 위한 프로세서 및 명령어와 데이터를 저장하기 위한 하나 이상의 메모리 디바이스이다. 일반적으로, 컴퓨터는 또한 데이터를 저장하기 위한 하나 이상의 대용량 저장 디바이스, 예를 들면, 자기, 자기 광학 디스크, 또는 광학 디스크를 포함할 것이거나, 또는 이들로부터 데이터를 수신하거나 이들로 데이터를 전송하도록 동작 가능하게 결합될 수 있거나, 또는 둘 모두일 것이다. 그렇지만, 컴퓨터가 그러한 디바이스를 가질 필요는 없다. 컴퓨터 프로그램 명령어와 데이터를 저장하기에 적절한 컴퓨터 판독 가능 매체는, 예로서, 반도체 메모리 디바이스, 예를 들면, EPROM, EEPROM, 및 플래시 메모리 디바이스; 자기 디스크, 예를 들면, 내장형 하드 디스크 또는 이동식 디스크; 자기 광학 디스크; 및 CD ROM과 DVD-ROM 디스크를 포함한, 모든 형태의 비휘발성 메모리, 매체 및 메모리 디바이스를 포함한다. 프로세서 및 메모리는 특수 목적 로직 회로에 의해 보완되거나 이에 통합될 수 있다.
본 특허 문서가 많은 구체적 사항을 포함하지만, 이들은 임의의 발명의 범위 또는 청구될 수 있는 것의 범위에 대한 제한으로서 해석되어서는 안되며, 오히려 특정 발명의 특정의 실시예에 특정적일 수 있는 특징에 대한 설명으로서 해석되어야 한다. 개별적인 실시예의 맥락에서 본 특허 문서에 설명되는 특정한 특징이 또한 단일 실시예에서 조합하여 구현될 수 있다. 이와 달리, 단일 실시예의 맥락에서 설명되는 다양한 특징이 또한 다수의 실시예에서 개별적으로 또는 임의의 적절한 하위 조합으로 구현될 수 있다. 더욱이, 특징이 특정 조합으로 기능하는 것으로 위에서 설명되고 심지어 처음에 그 자체로서 청구될 수 있지만, 청구된 조합으로부터의 하나 이상의 특징이 일부 경우에 그 조합으로부터 제거될 수 있고, 청구된 조합은 하위 조합 또는 하위 조합의 변형에 관한 것일 수 있다.
이와 유사하게, 동작들이 도면에서 특정의 순서로 묘사되지만, 이것은, 바람직한 결과를 달성하기 위해, 그러한 동작들이 도시된 특정의 순서로 또는 순차적 순서로 수행되어야 하거나, 모든 예시된 동작들이 수행되어야 하는 것을 요구하는 것으로 이해되어서는 안된다. 더욱이, 본 특허 문서에 설명된 실시예에서 다양한 시스템 컴포넌트의 분리가 모든 실시예에서 그러한 분리를 요구하는 것으로서 이해되어서는 안된다.
단지 몇 가지 구현 및 예가 설명되고 다른 구현, 향상 및 변형이 이 특허 문서에 설명되고 예시된 것에 기초하여 이루어질 수 있다.

Claims (41)

  1. 비디오 또는 픽처 프로세싱을 위한 방법으로서,
    픽처를 하나 이상의 타일로 파티셔닝하는 단계; 및
    상기 하나 이상의 타일에 기초하여 하나 이상의 구성을 사용하여 하나 이상의 비트스트림을 생성하는 단계
    를 포함하고, 상기 하나 이상의 비트스트림을 생성하는 단계는,
    상기 하나 이상의 타일 각각을 하나 이상의 슬라이스로 파티셔닝하는 단계, 및
    상기 하나 이상의 슬라이스 중 각각의 슬라이스에 대해,
    타일 식별자를 상기 슬라이스의 헤더에서 인코딩하기 위한 제1 인코딩 단계 - 상기 타일 식별자는 상기 슬라이스가 상주(reside)하는 타일을 나타냄 - , 및
    상기 타일에서의 상기 슬라이스의 위치를 나타내는 상기 슬라이스의 제2 어드레스를 상기 슬라이스의 헤더에서 인코딩하기 위한 제2 인코딩 단계 - 상기 제2 어드레스는 상기 픽처에서의 상기 슬라이스의 위치를 나타내는 상기 슬라이스의 제1 어드레스 및 상기 타일의 어드레스에 기초하여 결정됨 - 를 수행하는 단계
    를 포함하는 것인, 비디오 또는 픽처 프로세싱을 위한 방법.
  2. 제1항에 있어서, 상기 하나 이상의 비트스트림을 생성하는 단계는,
    타일 파라미터를 상기 픽처의 데이터 유닛에서 인코딩하는 단계를 포함하고, 상기 타일 파라미터는 상기 픽처에서의 상기 하나 이상의 타일의 파티셔닝 방식을 나타내는 타일 파티셔닝 파라미터를 포함하고, 상기 타일 파라미터는 상기 하나 이상의 타일 각각을 식별하는 타일 식별자를 더 포함하는 것인, 방법.
  3. 제2항에 있어서, 상기 데이터 유닛은 파라미터 세트의 데이터 유닛을 포함하는 것인, 방법.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서, 상기 슬라이스의 제1 어드레스는 상기 픽처에서의 상기 슬라이스의 제1 샘플의 위치를 포함하는 것인, 방법.
  5. 제1항 내지 제3항 중 어느 한 항에 있어서, 상기 슬라이스의 제1 어드레스는 상기 픽처에서의 상기 타일의 제1 코딩 블록의 순서 번호를 포함하는 것인, 방법.
  6. 제1항 내지 제5항 중 어느 한 항에 있어서, 상기 제2 어드레스는 상기 타일에서의 상기 슬라이스의 제1 샘플의 위치를 포함하는 것인, 방법.
  7. 제6항에 있어서, 상기 제2 어드레스는 상기 슬라이스의 제1 샘플의 위치와 상기 타일의 제1 샘플의 위치 사이의 좌표 오프셋을 포함하는 것인, 방법.
  8. 제1항 내지 제5항 중 어느 한 항에 있어서, 상기 제2 어드레스는 상기 타일에서의 상기 슬라이스의 제1 코딩 블록의 순서 번호를 포함하는 것인, 방법.
  9. 제8항에 있어서, 상기 슬라이스의 제1 코딩 블록의 순서 번호는 코딩 블록들의 스캐닝 순서에 기초하여 결정되는 것인, 방법.
  10. 제9항에 있어서, 상기 스캐닝 순서는 래스터 스캐닝 순서(raster scanning order)를 포함하는 것인, 방법.
  11. 제1항 내지 제10항 중 어느 한 항에 있어서, 상기 하나 이상의 구성은 값이 상이한 적어도 하나의 파라미터를 포함하고, 상기 적어도 하나의 파라미터는, 상기 픽처에 대한 양자화 파라미터, 상기 픽처의 해상도, 상기 하나 이상의 타일에 대한 양자화 파라미터, 또는 상기 하나 이상의 타일의 해상도를 포함하는 것인, 방법.
  12. 비디오 또는 픽처 프로세싱에서 픽처를 디코딩하기 위한 방법 - 상기 픽처는 하나 이상의 타일로 파티셔닝되고, 상기 하나 이상의 타일 각각은 하나 이상의 슬라이스로 파티셔닝됨 - 으로서,
    비트스트림 내의 슬라이스의 헤더로부터 타일 식별자를 획득하는 단계 - 상기 타일 식별자는 상기 슬라이스가 상주하는 타일을 나타냄 - ;
    상기 비트스트림 내의 상기 슬라이스의 헤더로부터 제2 어드레스를 획득하는 단계 - 상기 제2 어드레스는 상기 타일에서의 상기 슬라이스의 위치를 나타냄 - ; 및
    상기 타일 식별자 및 상기 제2 어드레스에 기초하여 상기 픽처에서의 상기 슬라이스의 위치를 나타내는 상기 슬라이스의 제1 어드레스를 결정하는 단계
    를 포함하는, 비디오 또는 픽처 프로세싱에서 픽처를 디코딩하기 위한 방법.
  13. 제12항에 있어서,
    상기 비트스트림 내의 상기 픽처의 데이터 유닛으로부터 타일 파라미터를 획득하는 단계를 포함하고, 상기 타일 파라미터는 상기 하나 이상의 타일의 파티셔닝 방식을 나타내는 타일 파티셔닝 파라미터를 포함하고, 상기 타일 파라미터는 상기 하나 이상의 타일 각각을 식별하는 타일 식별자를 더 포함하는 것인, 방법.
  14. 제13항에 있어서, 상기 데이터 유닛은 파라미터 세트의 데이터 유닛을 포함하는 것인, 방법.
  15. 제12항 내지 제14항 중 어느 한 항에 있어서, 상기 슬라이스의 제1 어드레스는 상기 픽처에서의 상기 슬라이스의 제1 샘플의 위치를 포함하는 것인, 방법.
  16. 제12항 내지 제14항 중 어느 한 항에 있어서, 상기 슬라이스의 제1 어드레스는 상기 픽처에서의 상기 타일의 제1 코딩 블록의 순서 번호를 포함하는 것인, 방법.
  17. 제12항 내지 제16항 중 어느 한 항에 있어서, 상기 제2 어드레스는 상기 타일에서의 상기 슬라이스의 제1 샘플의 위치를 포함하는 것인, 방법.
  18. 제17항에 있어서, 상기 제2 어드레스는 상기 슬라이스의 제1 샘플의 위치와 상기 타일의 제1 샘플의 위치 사이의 좌표 오프셋을 포함하는 것인, 방법.
  19. 제12항 내지 제16항 중 어느 한 항에 있어서, 상기 제2 어드레스는 상기 타일에서의 상기 슬라이스의 제1 코딩 블록의 순서 번호를 포함하는 것인, 방법.
  20. 제19항에 있어서, 상기 슬라이스의 제1 코딩 블록의 순서 번호는 코딩 블록들의 스캐닝 순서에 기초하여 결정되는 것인, 방법.
  21. 제20항에 있어서, 상기 스캐닝 순서는 래스터 스캐닝 순서를 포함하는 것인, 방법.
  22. 비디오 또는 픽처의 하나 이상의 비트스트림을 프로세싱하기 위한 방법 - 상기 픽처는 하나 이상의 타일로 파티셔닝되고, 상기 하나 이상의 타일 각각은 하나 이상의 슬라이스로 파티셔닝됨 - 으로서,
    상기 픽처의 타겟 영역에 위치된 하나 이상의 타겟 타일을 식별하는 하나 이상의 타겟 타일 식별자를 결정하는 단계 - 상기 하나 이상의 타겟 타일 식별자는 상기 하나 이상의 비트스트림에 포함됨 - ;
    상기 하나 이상의 비트스트림 각각으로부터, 슬라이스의 헤더로부터의 타일 식별자를 획득하는 단계 - 상기 타일 식별자는 상기 슬라이스가 상주하는 타일을 나타냄 - ;
    상기 슬라이스의 헤더로부터의 상기 타일 식별자가 상기 하나 이상의 타겟 타일 식별자 중 하나와 동일하다는 결정에 기초하여 서브-비트스트림을 작성(compose)하는 단계;
    상기 타겟 영역에 대응하는 타겟 타일 파라미터를 결정하는 단계 - 상기 타겟 타일 파라미터는 상기 하나 이상의 타겟 타일의 파티셔닝 방식을 나타내는 타겟 타일 파티셔닝 파라미터를 포함하고, 상기 타겟 타일 파라미터는 상기 하나 이상의 타겟 타일 식별자를 더 포함함 - ; 및
    상기 타겟 타일 파라미터를 상기 서브-비트스트림의 데이터 유닛에서 인코딩하는 단계
    를 포함하는, 비디오 또는 픽처의 하나 이상의 비트스트림을 프로세싱하기 위한 방법.
  23. 제22항에 있어서, 상기 데이터 유닛은 파라미터 세트의 데이터 유닛을 포함하는 것인, 방법.
  24. 제22항 또는 제23항에 있어서,
    하나 이상의 타일 파라미터를 획득하기 위해 상기 하나 이상의 비트스트림을 파싱(parsing)하는 단계를 포함하고, 각각의 타일 파라미터는 상기 픽처에서의 상기 하나 이상의 타일의 파티셔닝 방식을 나타내는 타일 파라미터를 포함하고, 상기 타일 파라미터는 상기 하나 이상의 타일 각각을 식별하는 타일 식별자를 더 포함하는 것인, 방법.
  25. 비디오 또는 픽처 프로세싱을 위한 장치로서,
    하나 이상의 구성을 생성하도록 구성된 코더 제어 유닛(coder control unit), 및
    하나 이상의 비트스트림을 생성하기 위해 상기 코더 제어 유닛으로부터 상기 하나 이상의 구성을 수신하도록 구성된 인코더
    를 포함하고, 상기 인코더는,
    픽처를 하나 이상의 타일로 파티셔닝하고 상기 하나 이상의 타일 각각을 하나 이상의 슬라이스로 파티셔닝하도록 구성된 파티션 유닛을 포함하며, 상기 파티션 유닛은 또한, 상기 하나 이상의 슬라이스 중 각각의 슬라이스에 대해,
    상기 슬라이스가 상주하는 타일을 나타내는 타일 식별자를 결정하는 것, 및
    상기 타일에서의 상기 슬라이스의 위치를 나타내는 상기 슬라이스의 제2 어드레스를 결정하는 것 - 상기 제2 어드레스는 상기 픽처에서의 상기 슬라이스의 위치를 나타내는 상기 슬라이스의 제1 어드레스 및 상기 타일의 어드레스에 기초하여 결정됨 -
    을 수행하도록 구성되는 것인, 비디오 또는 픽처 프로세싱을 위한 장치.
  26. 제25항에 있어서, 상기 파티션 유닛은 상기 픽처에서의 상기 하나 이상의 타일의 파티셔닝 방식을 나타내는 타일 파티셔닝 파라미터를 포함하는 타일 파라미터를 결정하도록 구성되고, 상기 타일 파라미터는 상기 하나 이상의 타일 각각을 식별하는 타일 식별자를 더 포함하는 것인, 장치.
  27. 제26항에 있어서, 상기 인코더는 인코딩 유닛을 포함하고, 상기 인코딩 유닛은,
    상기 파티션 유닛으로부터, 상기 타일 파라미터, 상기 하나 이상의 슬라이스 각각에 대한 상기 타일 식별자, 및 상기 하나 이상의 슬라이스 각각에 대한 상기 슬라이스의 제2 어드레스를 수신하도록,
    상기 타일 파라미터를 상기 픽처의 데이터 유닛에서 인코딩하도록,
    상기 타일 식별자를 상기 하나 이상의 슬라이스 각각의 헤더에서 인코딩하도록, 그리고
    상기 슬라이스의 제2 어드레스를 상기 하나 이상의 슬라이스 각각의 헤더에서 인코딩하도록
    구성되는 것인, 장치.
  28. 제27항에 있어서, 상기 데이터 유닛은 파라미터 세트의 데이터 유닛을 포함하는 것인, 장치.
  29. 제25항 내지 제28항 중 어느 한 항에 있어서, 상기 슬라이스의 제1 어드레스는 상기 픽처에서의 상기 슬라이스의 제1 샘플의 위치를 포함하는 것인, 장치.
  30. 제25항 내지 제28항 중 어느 한 항에 있어서, 상기 슬라이스의 제1 어드레스는 상기 픽처에서의 상기 타일의 제1 코딩 블록의 순서 번호를 포함하는 것인, 장치.
  31. 제25항 내지 제30항 중 어느 한 항에 있어서, 상기 제2 어드레스는 상기 타일에서의 상기 슬라이스의 제1 샘플의 위치를 포함하는 것인, 장치.
  32. 제31항에 있어서, 상기 제2 어드레스는 상기 슬라이스의 제1 샘플의 위치와 상기 타일의 제1 샘플의 위치 사이의 좌표 오프셋을 포함하는 것인, 장치.
  33. 제25항 내지 제30항 중 어느 한 항에 있어서, 상기 제2 어드레스는 상기 타일에서의 상기 슬라이스의 제1 코딩 블록의 순서 번호를 포함하는 것인, 장치.
  34. 제33항에 있어서, 상기 슬라이스의 제1 코딩 블록의 순서 번호는 코딩 블록들의 스캐닝 순서에 기초하여 결정되는 것인, 장치.
  35. 제34항에 있어서, 상기 스캐닝 순서는 래스터 스캐닝 순서를 포함하는 것인, 장치.
  36. 제25항 내지 제35항 중 어느 한 항에 있어서, 상기 하나 이상의 구성은 값이 상이한 적어도 하나의 파라미터를 포함하고, 상기 적어도 하나의 파라미터는, 상기 픽처에 대한 양자화 파라미터, 상기 픽처의 해상도, 상기 하나 이상의 타일에 대한 양자화 파라미터, 또는 상기 하나 이상의 타일의 해상도를 포함하는 것인, 장치.
  37. 제12항 내지 제21항 중 어느 한 항에 기재된 방법을 구현하도록 구성된 파싱 유닛을 포함하는, 비디오 또는 픽처 프로세싱에서 픽처를 디코딩하기 위한 장치로서, 상기 픽처는 하나 이상의 타일로 파티셔닝되고, 상기 하나 이상의 타일 각각은 하나 이상의 슬라이스로 파티셔닝되는 것인, 비디오 또는 픽처 프로세싱에서 픽처를 디코딩하기 위한 장치.
  38. 비디오 또는 픽처의 하나 이상의 비트스트림을 프로세싱하기 위한 장치 - 상기 픽처는 하나 이상의 타일로 파티셔닝되고, 상기 하나 이상의 타일 각각은 하나 이상의 슬라이스로 파티셔닝됨 - 로서,
    상기 픽처의 타겟 영역에 위치된 하나 이상의 타겟 타일을 식별하는 하나 이상의 타겟 타일 식별자를 결정하도록 구성된 제어 유닛 - 상기 하나 이상의 타겟 타일 식별자는 상기 하나 이상의 비트스트림에 포함됨 - ;
    상기 하나 이상의 비트스트림 각각으로부터, 슬라이스의 헤더로부터의 타일 식별자를 획득하도록 구성된 파싱 유닛 - 상기 타일 식별자는 상기 슬라이스가 상주하는 타일을 나타냄 - ; 및
    형성 유닛
    을 포함하고, 상기 형성 유닛은,
    상기 슬라이스의 헤더로부터의 상기 타일 식별자가 상기 하나 이상의 타겟 타일 식별자 중 하나와 동일하다는 결정에 기초하여 서브-비트스트림을 작성하도록;
    상기 타겟 영역에 대응하는 타겟 타일 파라미터를 결정하도록 - 상기 타겟 타일 파라미터는 상기 하나 이상의 타겟 타일의 파티셔닝 방식을 나타내는 타겟 타일 파티셔닝 파라미터를 포함하고, 상기 타겟 타일 파라미터는 상기 하나 이상의 타겟 타일 식별자를 더 포함함 - ; 그리고
    상기 타겟 타일 파라미터를 상기 서브-비트스트림의 데이터 유닛에서 인코딩하도록
    구성되는 것인, 비디오 또는 픽처의 하나 이상의 비트스트림을 프로세싱하기 위한 장치.
  39. 제38항에 있어서, 상기 데이터 유닛은 파라미터 세트의 데이터 유닛을 포함하는 것인, 장치.
  40. 제38항 또는 제39항에 있어서, 상기 파싱 유닛은 하나 이상의 타일 파라미터를 획득하기 위해 상기 하나 이상의 비트스트림을 파싱하도록 구성되고, 각각의 타일 파라미터는 상기 픽처에서의 상기 하나 이상의 타일의 파티셔닝 방식을 나타내는 타일 파라미터를 포함하며, 상기 타일 파라미터는 상기 하나 이상의 타일 각각을 식별하는 타일 식별자를 더 포함하는 것인, 장치.
  41. 코드가 저장되어 있는 컴퓨터 프로그램 제품으로서, 상기 코드는, 프로세서에 의해 실행될 때, 상기 프로세서가 제1항 내지 제24항 중 어느 한 항에 기재된 방법을 구현하게 하는 것인, 코드가 저장되어 있는 컴퓨터 프로그램 제품.
KR1020217012495A 2018-09-28 2018-09-28 비디오 인코딩 및 디코딩 방법 및 장치 KR20210065161A (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2018/108244 WO2020034330A1 (en) 2018-09-28 2018-09-28 Video encoding and decoding methods and apparatus

Publications (1)

Publication Number Publication Date
KR20210065161A true KR20210065161A (ko) 2021-06-03

Family

ID=69525031

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217012495A KR20210065161A (ko) 2018-09-28 2018-09-28 비디오 인코딩 및 디코딩 방법 및 장치

Country Status (7)

Country Link
US (1) US11589047B2 (ko)
EP (1) EP3857905A4 (ko)
JP (2) JP2022502955A (ko)
KR (1) KR20210065161A (ko)
CN (1) CN113170237B (ko)
CA (1) CA3114453C (ko)
WO (1) WO2020034330A1 (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114586361A (zh) * 2019-09-23 2022-06-03 瑞典爱立信有限公司 具有子图片片位置导出的片段位置信令
WO2021160165A1 (en) * 2020-02-14 2021-08-19 Beijing Bytedance Network Technology Co., Ltd. Collocated picture indication in video bitstreams
US11405649B2 (en) * 2020-02-18 2022-08-02 Mediatek Inc. Specifying slice chunks of a slice within a tile
CN115191115A (zh) 2020-02-24 2022-10-14 字节跳动有限公司 子图片和片行信令通知之间的交互
EP4097980A4 (en) 2020-03-03 2023-04-19 ByteDance Inc. NON-SEPARABLE LOW-FREQUENCY TRANSFORMATION SIGNALING IN VIDEO ENCODING
US20220337855A1 (en) * 2021-04-20 2022-10-20 Samsung Electronics Co., Ltd. Operation of video decoding engine for evc

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7768520B2 (en) * 2006-05-03 2010-08-03 Ittiam Systems (P) Ltd. Hierarchical tiling of data for efficient data access in high performance video applications
JP2013141094A (ja) * 2011-12-28 2013-07-18 Sharp Corp 画像復号装置、画像符号化装置、画像フィルタ装置、および符号化データのデータ構造
CA2861951C (en) * 2012-01-20 2020-08-11 Thomas Schierl Coding concept allowing parallel processing, transport demultiplexer and video bitstream
CN107257490B (zh) * 2012-01-27 2019-12-17 太阳专利托管公司 图像编码方法及图像编码装置
WO2013115560A1 (ko) * 2012-01-30 2013-08-08 삼성전자 주식회사 공간 서브영역별로 비디오를 부호화하는 방법 및 그 장치, 공간 서브영역별로 비디오를 복호화하는 방법 및 그 장치
CN104813669B (zh) * 2012-09-21 2018-05-22 诺基亚技术有限公司 用于视频编码的方法和装置
US20140192899A1 (en) * 2013-01-09 2014-07-10 Mediatek Inc. Method and apparatus for referring to bitstream address related information derived from segment of multi-tile picture to determine bitstream start address of tile of multi-tile picture
CN104902343B (zh) * 2015-05-26 2018-11-23 北京微吼时代科技有限公司 一种传输和播放音视频与消息的方法、服务器及终端
CN108156478A (zh) * 2016-12-06 2018-06-12 创盛视联数码科技(北京)有限公司 mp4格式文件转hls格式的视频点播系统及方法
JP7220223B6 (ja) 2018-01-25 2023-03-10 フラウンホファー ゲセルシャフト ツール フェールデルンク ダー アンゲヴァンテン フォルシュンク エー.ファオ. 効率的なサブピクチャ抽出
US11290728B2 (en) * 2018-07-02 2022-03-29 Nokia Technologies Oy Method and apparatus for tile-relative addressing in video coding
KR20210057148A (ko) * 2018-09-14 2021-05-20 후아웨이 테크놀러지 컴퍼니 리미티드 비디오 코딩에서의 슬라이싱 및 타일링

Also Published As

Publication number Publication date
US20210218965A1 (en) 2021-07-15
WO2020034330A1 (en) 2020-02-20
US11589047B2 (en) 2023-02-21
JP2022502955A (ja) 2022-01-11
EP3857905A1 (en) 2021-08-04
CN113170237A (zh) 2021-07-23
EP3857905A4 (en) 2021-09-22
CA3114453A1 (en) 2020-02-20
JP7432032B2 (ja) 2024-02-15
CN113170237B (zh) 2023-02-28
CA3114453C (en) 2023-07-18
JP2023060310A (ja) 2023-04-27

Similar Documents

Publication Publication Date Title
US11589047B2 (en) Video encoding and decoding methods and apparatus
KR102539065B1 (ko) 효율적인 확장가능한 코딩 개념
US20210409779A1 (en) Parameter set signaling in digital video
US20230060709A1 (en) Video coding supporting subpictures, slices and tiles
US20220417499A1 (en) Image processing apparatus and method
US11838519B2 (en) Image encoding/decoding method and apparatus for signaling image feature information, and method for transmitting bitstream
US20220038721A1 (en) Cross-component quantization in video coding
CN112567739B (zh) 用于视觉媒体编码和解码的平面预测模式
US20210400295A1 (en) Null tile coding in video coding
CN114762349A (zh) 用于图像/视频编译的高级别语法信令方法和装置
WO2020175908A1 (ko) 시그널링된 정보에 기반한 픽처 파티셔닝 방법 및 장치
CN115152214A (zh) 基于画面划分的图像编码装置和方法
CN115136608A (zh) 基于虚拟边界的图像编码装置和方法
CN115004708A (zh) 用于发信号通知图像信息的方法和设备

Legal Events

Date Code Title Description
A201 Request for examination
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
X091 Application refused [patent]
E601 Decision to refuse application
E801 Decision on dismissal of amendment