KR20210006988A - 계층적 타일 - Google Patents

계층적 타일 Download PDF

Info

Publication number
KR20210006988A
KR20210006988A KR1020207035642A KR20207035642A KR20210006988A KR 20210006988 A KR20210006988 A KR 20210006988A KR 1020207035642 A KR1020207035642 A KR 1020207035642A KR 20207035642 A KR20207035642 A KR 20207035642A KR 20210006988 A KR20210006988 A KR 20210006988A
Authority
KR
South Korea
Prior art keywords
tile
prediction
layout
syntax structure
picture
Prior art date
Application number
KR1020207035642A
Other languages
English (en)
Other versions
KR102451281B1 (ko
Inventor
스테판 웽거
샨 리우
Original Assignee
텐센트 아메리카 엘엘씨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 텐센트 아메리카 엘엘씨 filed Critical 텐센트 아메리카 엘엘씨
Publication of KR20210006988A publication Critical patent/KR20210006988A/ko
Application granted granted Critical
Publication of KR102451281B1 publication Critical patent/KR102451281B1/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/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • 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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/167Position within a video image, e.g. region of interest [ROI]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • 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/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/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/55Motion estimation with spatial constraints, e.g. at image or region borders
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/96Tree coding, e.g. quad-tree coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

코딩된 비디오 시퀀스를 디코딩하는 방법은, 제1 타일 레이아웃에 의해 정의되는 제1 타일 경계 및 제2 타일 레이아웃에 의해 정의되는 제2 타일 경계를 포함하는 적어도 하나의 타일을 디코딩하는 단계를 포함하고, 코딩된 비디오 시퀀스는, 적어도 하나의 제1 예측 메커니즘이 제1 타일 경계에 걸쳐 이용 가능하고, 적어도 하나의 제1 예측 메커니즘이 제2 타일 경계에 걸쳐 이용 가능하지 않음을 표시한다.

Description

계층적 타일
본 출원은 35 U.S.C. §119 하에 2018년 7월 16일 미국 특허청에 출원된 미국 출원 제62/698,534호에 대해 우선권을 주장하며, 그 내용 전부는 참조에 의해 본 명세서에 포함된다.
본 발명은 비디오 코딩 및 디코딩, 보다 구체적으로, 복수의 오버랩되는 타일 세트의(동시) 사용에 관한 것이다. 예를 들어, 하나의 타일 세트는 병렬 인코딩 지원을 위해 설계될 수 있고, 다른 하나는, 예를 들어, 큐브 투영의 표면과 같은, 360 비디오 표면을 지원하는 화상 파티셔닝을 위해 설계될 수 있다. 타일 세트는, 타일 경계를 가로지르는 화상 내(in-picture) 및 화상 간(inter picture) 예측 메커니즘의 중단(interruption) 측면에서 상이한 특성을 가질 수 있다.
모션 보상을 포함하는 화상 간 예측을 이용하는 비디오 코딩 및 디코딩은 수십 년 동안 알려져 왔다. 압축되지 않은 디지털 비디오는 일련의 화상으로 구성될 수 있으며, 각각의 화상은, 예를 들어, 1920 x 1080 휘도 샘플(luminance sample) 및 연관된 색차 샘플(chrominance sample)의 공간 차원(spatial dimension)을 갖는다. 일련의 화상은, 예를 들어, 초당 60 화상 또는 60 Hz의 고정적 또는 가변적인 화상 레이트(비공식적으로 프레임 레이트라고도 함)를 가질 수 있다. 압축되지 않은 비디오에는 상당한 비트레이트 요구 사항이 있다. 예를 들어, 샘플 당 8 비트의 1080p60 4:2:0 비디오(60 Hz 프레임 레이트에서 1920x1080 휘도 샘플 해상도)는 1.5 Gbit/s에 달하는 대역폭을 필요로 한다. 1 시간 분량의 이러한 비디오는 600 GByte 가 넘는 저장 공간을 필요로 한다.
비디오 코딩 및 디코딩의 일 목적은, 압축을 통해, 입력 비디오 신호에서 리던던시(redundancy)를 감소시키는 것일 수 있다. 압축은, 위에서 언급한 대역폭 또는 저장 공간 요구 사항을, 경우에 따라 2 배 이상 감소시키는 데 도움이 될 수 있다. 무손실 및 손실 압축뿐만 아니라 이들의 조합이 사용될 수 있다. 무손실 압축은 원본 신호와 동일한 사본이 압축된 원본 신호로부터 재구성될 수 있는 기술을 의미한다. 손실 압축을 사용하는 경우, 재구성된 신호는 원본 신호와 동일하지 않을 수 있지만, 원본 신호와 재구성된 신호 사이의 왜곡은, 재구성된 신호가 의도된 애플리케이션에 유용할 수 있을 정도로 작다. 비디오의 경우, 손실 압축이 널리 사용된다. 견딜 수 있는 왜곡의 양은 애플리케이션에 따라 다르다. 예를 들어, 특정 소비자 스트리밍 애플리케이션의 사용자는, 텔레비전 기여 애플리케이션의 사용자보다 더 높은 왜곡을 견딜 수 있다. 달성 가능한 압축률은, 허용 가능한/견딜 수 있는 왜곡이 더 높을수록 압축률이 더 높아질 수 있음을 반영할 수 있다.
비디오 인코더 및 디코더는, 예를 들어, 모션 보상, 변환, 양자화 및 엔트로피 코딩을 포함하는 몇몇의 광범위한 카테고리로부터의 기술을 이용할 수 있으며, 이들 중 일부는 아래에서 소개될 것이다.
타일은 특정 비디오 코덱에서 사용할 수 있는 몇 가지 메커니즘 중 하나로서 코딩된 비디오 비트스트림을 파티셔닝하는 데 도움이 된다. 타일은 화상의 직사각형 영역일 수 있다. 블록, 매크로블록으로도 알려진 코딩 유닛(coding unit, CU)의 스캔 순서는 타일에 국한되고, 왼쪽에서 오른쪽으로, 다음으로 위에서 아래로일 수 있다. 화상은 다수의 타일로 분리될 수 있으며, 각 CU는 정확히 하나의 타일의 일부일 수 있다. 타일 외부로부터의 정보 예측은 제한될 수 있으며, 비디오 압축 기술 또는 표준에 하드 코딩되어 있다. 예를 들어, H.265에서, (독립적인) 타일은 타일 내부의 CU를 재구성하기 위해 동일한 화상의 외부 CU로부터의 데이터를 사용하지 않지만, 디코딩 순서에서 이전 화상으로부터의 모션 보상된 샘플 데이터를 사용할 수 있다. 모션 제한 타일은 해당 데이터를 사용하지 않으며, H.263의 직사각형 슬라이스와 비교할 수 있다. 타일이 도입되어, 최종 비트스트림 생성 프로세스를 제외하고 다른 타일을 담당하는 프로세서와의 통신이 필요하지 않다는 점에서, 각각의 프로세서 또는 코어가 코딩될 화상의 부분에만 관심을 집중하도록 함으로써 병렬 인코딩(및 디코딩)을 가능하도록 하였다.
다른 비트스트림 파티셔닝 도구를 슬라이스라고 한다. 슬라이스는 스캔 순서로 코딩된 CU의 모음이다. 스캔 순서는, 전체 화상 중 하나(타일이 사용되지 않는 경우)또는 타일 내의 로컬일 수 있다. 특정 비디오 압축 기술은 타일과 슬라이스 간의 타이 인터워킹(tie interworking)에 특정 제한을 두고 있다. 슬라이스의 주요 목적은 MTU(Maximum Transfer Unit) 크기 매칭, 즉, 코딩된 화상이 다수의 패킷에 걸쳐 있는 경우에도, 화상의 독립적으로 디코딩 가능한 부분이 2 이상의 MTU에 걸치지 않도록 하여 슬라이스를 단일 패킷에 넣을 수 있음을 보장하는 것이다.
타일과 슬라이스 간의 인터워킹은, 예를 들어, H.265의 표준화 과정 중 연구되었다.
일 실시 예에서, 코딩된 비디오 시퀀스를 디코딩하는 방법이 제공되며, 상기 방법은, 제1 타일 레이아웃에 의해 정의되는 제1 타일 경계 및 제2 타일 레이아웃에 의해 정의되는 제2 타일 경계를 포함하는 적어도 하나의 타일을 디코딩하는 단계를 포함하고, 코딩된 비디오 시퀀스는, 적어도 하나의 제1 예측 메커니즘이 제1 타일 경계에 걸쳐 이용 가능하고, 적어도 하나의 제1 예측 메커니즘이 제2 타일 경계에 걸쳐 이용 가능하지 않음을 표시한다.
일 실시 예에서, 코딩된 비디오 시퀀스를 디코딩하는 디바이스가 제공되며, 상기 디바이스는, 프로그램 코드를 저장하도록 구성되는 적어도 하나의 메모리; 및 프로그램 코드를 판독하고, 프로그램 코드에 의해 지시되는 바와 같이 동작하도록 구성되는 적어도 하나의 프로세서를 포함하고, 프로그램 코드는, 적어도 하나의 프로세서가, 제1 타일 레이아웃에 의해 정의되는 제1 타일 경계 및 제2 타일 레이아웃에 의해 정의되는 제2 타일 경계를 포함하는 적어도 하나의 타일을 디코딩하도록 구성되는 디코딩 코드를 포함하고, 코딩된 비디오 시퀀스는, 적어도 하나의 제1 예측 메커니즘이 제1 타일 경계에 걸쳐 이용 가능하고, 적어도 하나의 제1 예측 메커니즘이 제2 타일 경계에 걸쳐 이용 가능하지 않음을 표시한다.
일 실시 예에서, 명령을 저장하는 비 일시적인 컴퓨터로 판독 가능한 매체가 제공되며, 상기 명령은 하나 이상의 명령을 포함하고, 하나 이상의 명령은, 코딩된 비디오 시퀀스를 디코딩하는 디바이스의 하나 이상의 프로세서에 의해 실행될 때, 하나 이상의 프로세서가, 제1 타일 레이아웃에 의해 정의되는 제1 타일 경계 및 제2 타일 레이아웃에 의해 정의되는 제2 타일 경계를 포함하는 적어도 하나의 타일을 디코딩하도록 하고, 코딩된 비디오 시퀀스는, 적어도 하나의 제1 예측 메커니즘이 제1 타일 경계에 걸쳐 이용 가능하고, 적어도 하나의 제1 예측 메커니즘이 제2 타일 경계에 걸쳐 이용 가능하지 않음을 표시한다.
개시된 발명에 대한 추가적인 특징, 특성 및 다양한 장점은, 다음의 상세한 설명 및 첨부된 도면으로부터 보다 명백해질 것이다.
도 1은 본 발명의 일 실시 예에 따른 통신 시스템의 간략화된 블록도이다.
도 2는 스트리밍 환경에서의 비디오 인코더 및 디코더의 배치를 설명하기 위한 도면이다.
도 3은 본 개시의 일 실시 예에 따른 비디오 디코더의 기능 블록도이다.
도 4는 본 개시의 일 실시 예에 따른 비디오 인코더의 기능 블록도이다.
도 5는 본 개시의 일 실시 예에 따른 플렉서블 타일 레이아웃의 일 예를 설명하기 위한 도면이다.
도 6은 본 개시의 일 실시 예에 따른 계층적 타일 레이아웃의 일 예를 설명하기 위한 도면이다.
도 7은 본 개시의 일 실시 예에 따른, 코딩된 비디오 스트림을 디코딩하는 예시적인 프로세스의 흐름도이다.
도 8은 일 실시 예에 따른 컴퓨터 시스템의 도면이다.
도 1은 본 개시의 일 실시 예에 따른 통신 시스템(100)의 간략화된 블록도를 도시한다. 통신 시스템(100)은 네트워크(150)를 통해 상호 연결된 적어도 2 개의 단말(110-120)을 포함할 수 있다. 데이터의 단방향 전송을 위해, 제1 단말(110)은 네트워크(150)를 통해 다른 단말(120)에 전송하기 위해 로컬 위치에서 비디오 데이터를 코딩할 수 있다. 제2 단말(120)은 네트워크(150)로부터 다른 단말의 코딩된 비디오 데이터를 수신하고, 코딩된 데이터를 디코딩하고 복원된 비디오 데이터를 디스플레이할 수 있다. 단방향 데이터 전송은 미디어 서빙 애플리케이션(media serving application) 등에서 일반적일 수 있다.
도 1은, 예를 들어, 화상 회의 동안 발생할 수 있는 코딩된 비디오의 양방향 전송을 지원하기 위해 제공되는 제2 쌍의 단말(130, 140)을 도시한다. 데이터의 양방향 전송을 위해, 각각의 단말(130, 140)은 네트워크(150)를 통해 다른 단말에 전송하기 위해 로컬 위치에서 캡처된 비디오 데이터를 코딩할 수 있다. 각각의 단말(130, 140)은 또한 다른 단말에 의해 전송된, 코딩된 비디오 데이터를 수신할 수 있고, 코딩된 데이터를 디코딩할 수 있고, 복원된 비디오 데이터를 로컬 디스플레이 디바이스에 디스플레이할 수 있다.
도 1에서, 단말(110-140)은 서버, 개인용 컴퓨터 및 스마트 폰으로 예시될 수 있지만 본 발명의 원리는 그렇게 제한되지 않는다. 본 발명의 실시 예들은 랩톱 컴퓨터, 태블릿 컴퓨터, 미디어 플레이어 및/또는 전용 화상 회의 장비를 갖는 애플리케이션을 발견한다. 네트워크(150)는, 예를 들어, 유선 및/또는 무선 통신 네트워크를 포함하여, 단말(110-140) 사이에서, 코딩된 비디오 데이터를 전달하는 임의의 수의 네트워크를 나타낸다. 통신 네트워크(150)는 회로 교환 및/또는 패킷 교환 채널에서 데이터를 교환할 수 있다. 대표적인 네트워크는 통신 네트워크, 근거리 네트워크, 광역 네트워크 및/또는 인터넷을 포함한다. 본 논의의 목적 상, 네트워크(150)의 아키텍처 및 토폴로지는 이하에서 설명되지 않는 한 본 개시의 동작에 중요하지 않을 수 있다.
도 2는, 개시된 발명에 대한 애플리케이션의 일 예로서, 스트리밍 환경에서의 비디오 인코더 및 디코더의 배치를 도시한다. 개시된 발명은, 예를 들어, 화상 회의, 디지털 TV, CD, DVD, 메모리 스틱 등을 포함하는 디지털 매체 상에 압축된 비디오의 저장 등을 포함하는 다른 비디오 지원 애플리케이션에 동일하게 적용될 수 있다.
스트리밍 시스템은, 예를 들어, 압축되지 않은 비디오 샘플 스트림(202)을 생성하는 비디오 소스(201), 예를 들어 디지털 카메라를 포함할 수 있는 캡처 서브 시스템(213)을 포함할 수 있다. 인코딩된 비디오 비트스트림과 비교할 때 높은 데이터 볼륨을 강조하기 위해 굵은 선으로 도시된 샘플 스트림(202)은, 카메라(201)에 연결된 인코더(203)에 의해 프로세싱될 수 있다. 인코더(203)는, 아래에서 더욱 상세히 설명되는 바와 같이, 개시된 발명의 측면들을 가능하게 하거나 구현하기 위해, 하드웨어, 소프트웨어 또는 이들의 조합을 포함할 수 있다. 샘플 스트림과 비교할 때 더 낮은 데이터 볼륨을 강조하기 위해 가는 선으로 도시된 인코딩된 비디오 비트스트림(204)은, 추후 사용을 위해 스트리밍 서버(205)에 저장될 수 있다. 하나 이상의 스트리밍 클라이언트(206, 208)는 스트리밍 서버(205)에 액세스하여 인코딩된 비디오 비트스트림(204)의 사본(207, 209)을 검색할 수 있다. 클라이언트(206)는, 들어오는(incoming) 인코딩된 비디오 비트스트림(207)의 사본을 디코딩하고, 디스플레이(212) 또는 다른 렌더링 디바이스(도시되지 않음) 상에 렌더링될 수 있는, 나가는(outgoing) 비디오 샘플 스트림(211)을 생성하는 비디오 디코더(210)를 포함할 수 있다. 일부 스트리밍 시스템에서, 비디오 비트스트림(204, 207, 209)은 특정 비디오 코딩/압축 표준에 따라 인코딩될 수 있다. 이러한 표준의 예에는 ITU-T 권장 사항 H.265(ITU-T Recommendation H.265)가 포함된다. 개발 중인 것으로, 비공식적으로 VVC(Versatile Video Coding)로 알려진 비디오 코딩 표준이 있다. 개시된 발명은 VVC와 관련하여 사용될 수 있다.
도 3은 본 개시의 일 실시 예에 따른 비디오 디코더(210)의 기능 블록도일 수 있다.
수신기(310)는, 디코더(210)에 의해 디코딩될 하나 이상의 코덱 비디오 시퀀스; 동일하거나 다른 실시 예에서, 한 번에 하나의 코딩된 비디오 시퀀스를 수신할 수 있고; 각각의 코딩된 비디오 시퀀스의 디코딩은, 다른 코딩된 비디오 시퀀스와 독립적이다. 코딩된 비디오 시퀀스는, 인코딩된 비디오 데이터를 저장하는 저장 디바이스에 대한 하드웨어/소프트웨어 링크일 수 있는 채널(312)로부터 수신될 수 있다. 수신기(310)는, 다른 데이터, 예를 들어, 코딩된 오디오 데이터 및/또는 보조 데이터 스트림과 함께 인코딩된 비디오 데이터를 수신할 수 있으며, 이는 엔티티(도시되지 않음)를 사용하여 각각에 전달될 수 있다. 수신기(310)는 코딩된 비디오 시퀀스를 다른 데이터로부터 분리할 수 있다. 네트워크 지터(network jitter)에 대항하기 위해, 버퍼 메모리(315)는 수신기(310)와 엔트로피 디코더/파서(320)(이하 "파서") 사이에 결합될 수 있다. 수신기(310)가 충분한 대역폭 및 제어 가능성을 갖는 저장/전달 디바이스로부터, 또는 등시성 네트워크(isosychronous network)로부터 데이터를 수신하는 경우, 버퍼(315)는 필요하지 않거나, 작을 수 있다. 인터넷과 같은 최선 노력 패킷 네트워크(best effort packet network)에서 사용하기 위해, 버퍼(315)가 필요할 수 있고, 이는 비교적 클 수 있으며, 유리하게는 적응적인 크기일 수 있다.
비디오 디코더(210)는, 엔트로피 코딩된 비디오 시퀀스로부터 심볼(321)을 재구성하기 위한 파서(320)를 포함할 수 있다. 이들 심볼의 카테고리는, 디코더(210)의 동작을 관리하기 위해 사용되는 정보와, 잠재적으로, 도 3에서 도시되었던 바와 같이, 디코더의 필수적 부분은 아니지만 그것에 연결될 수 있는 디스플레이(212)와 같은 렌더링 디바이스를 제어하기 위한 정보를 포함한다. 렌더링 디바이스(들)에 대한 제어 정보는, SEI(Supplementary Enhancement Information) 메시지 또는 VUI(Video Usability Information) 파라미터 세트 프래그먼트(도시되지 않음)의 형태일 수 있다. 파서(320)는, 수신된, 코딩된 비디오 시퀀스를 파싱/엔트로피 디코딩할 수 있다. 코딩된 비디오 시퀀스의 코딩은 비디오 코딩 기술 또는 표준에 따를 수 있고, 가변 길이 코딩, 허프만 코딩, 상황 민감도(context sensitivity)를 갖거나 갖지 않는 산술 코딩을 포함하여, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 잘 알려진 원리를 따를 수 있다. 파서(320)는, 그룹에 대응하는 적어도 하나의 파라미터에 기초하여, 비디오 디코더에서 픽셀의 서브그룹 중 적어도 하나에 대한 서브그룹 파라미터의 세트를 코딩된 비디오 시퀀스로부터 추출할 수 있다. 서브그룹에는 GOP(Groups of Picture), 화상, 타일, 슬라이스, 매크로블록, CU(Coding Unit), 블록, TU(Transform Unit), PU(Prediction Unit) 등이 포함될 수 있다. 엔트로피 디코더/파서는 또한 변환 계수, 양자화기 파라미터(quantizer parameter, QP) 값, 모션 벡터 등과 같은 코딩된 비디오 시퀀스 정보로부터 추출할 수 있다.
파서(320)는 버퍼(315)로부터 수신된 비디오 시퀀스에 대해 엔트로피 디코딩/파싱 동작을 수행하여 심볼(321)을 생성할 수 있다. 파서(320)는 인코딩된 데이터를 수신하고, 특정 심볼(321)을 선택적으로 디코딩할 수 있다. 또한, 파서(320)는, 특정 심볼(321)이 모션 보상 예측 유닛(353), 스케일러/역변환 유닛(351), 인트라 예측 유닛(352) 또는 루프 필터(356)에 제공될지 여부를 결정할 수 있다.
심볼(321)의 재구성은, 코딩된 비디오 화상의 유형 또는 그 부분(예를 들어, 인터 및 인트라 화상, 인터 및 인트라 블록) 및 다른 인자에 따라 다수의 상이한 유닛을 포함할 수 있다. 파서(320)에 의해, 코딩된 비디오 시퀀스로부터 파싱된 서브그룹 제어 정보에 의해 어떤 유닛이 어떻게 관련되는지가 제어될 수 있다. 파서(320)와 아래의 다수의 유닛들 사이의 이러한 서브그룹 제어 정보의 흐름은 명확성을 위해 도시되지 않았다.
이미 언급된 기능 블록 이외에, 디코더(210)는, 아래에서 설명되는 바와 같이 개념적으로 다수의 기능 유닛으로 세분될 수 있다. 상업적인 제약 조건 하에서 운영되는 실제 구현에서, 이들 유닛들 중 다수는 서로 밀접하게 상호 작용하고, 적어도 부분적으로, 서로 통합될 수 있다. 그러나, 개시된 발명을 설명할 목적에서, 아래의 기능 유닛들로의 개념적 세분화가 적절하다.
제1 유닛은 스케일러/역변환 유닛(351)이다. 스케일러/역변환 유닛(351)은, 파서(320)로부터 심볼(621)로서, 사용할 변환, 블록 크기, 양자화 계수, 양자화 스케일링 행렬 등을 포함하는 제어 정보뿐만 아니라 양자화된 변환 계수를 수신한다. 그것은, 수집기(355)에 입력될 수 있는 샘플 값을 포함하는 블록을 출력할 수 있다.
일부 경우에, 스케일러/역변환(351)의 출력 샘플은 인트라 코딩된 블록; 즉, 이전에 재구성된 화상들로부터의 예측 정보를 사용하지 않지만, 현재 화상에 대한, 이전에 재구성된 부분들로부터의 예측 정보를 사용할 수 있는 블록과 관련될 수 있다. 이러한 예측 정보는 인트라 화상 예측 유닛(352)에 의해 제공될 수 있다. 일부 경우에, 인트라 화상 예측 유닛(352)은, 현재(부분적으로 재구성된) 화상(356)으로부터 페치(fetch)된, 주변의 이미 재구성된 정보를 이용하여, 재구성 중인 블록에 대한 동일한 크기 및 형상의 블록을 생성한다. 수집기(355)는, 일부 경우에, 스케일러/역변환 유닛(351)에 의해 제공되는 바와 같이, 인트라 예측 유닛(352)이 생성한 예측 정보를, 샘플 별로, 출력 샘플 정보에 부가한다.
다른 경우에, 스케일러/역변환 유닛(351)의 출력 샘플은, 인터 코딩되고 잠재적으로 모션 보상된 블록과 관련될 수 있다. 그러한 경우에, 모션 보상 예측 유닛(353)은, 예측에 사용된 샘플들을 페치하기 위해 참조 화상 메모리(357)에 액세스할 수 있다. 블록과 관련된 심볼(321)에 따라, 페치된 샘플을 모션 보상한 후, 이들 샘플은 수집기(355)에 의해 스케일러/역변환 유닛의 출력(이 경우 잔류 샘플(residual sample) 또는 잔류 신호(residual signal)라고 함)에 부가되어 출력 샘플 정보를 생성한다. 모션 보상 유닛이 예측 샘플을 페치하는 참조 화상 메모리 형태 내의 어드레스는, 예를 들어, X, Y 및 참조 화상 성분을 가질 수 있는 심볼(321)의 형태로 모션 보상 유닛에 이용 가능한 모션 벡터에 의해 제어될 수 있다. 모션 보상은 또한, 서브 샘플 정확한 모션 벡터(sub-sample exact motion vector)가 사용되는 경우, 참조 화상 메모리로부터 페치된 샘플 값의 보간, 모션 벡터 예측 메커니즘 등을 포함할 수 있다.
수집기(355)의 출력 샘플은 루프 필터 유닛(356)의 다양한 루프 필터링 기술에 따를 수 있다. 비디오 압축 기술은, 코딩된 비디오 비트스트림에 포함된 파라미터에 의해 제어되고, 파서(320)로부터 심볼(321)로서 루프 필터 유닛(356)에 이용 가능하지만, 또한 코딩된 화상 또는 코딩된 비디오 시퀀스의 (디코딩 순서에서) 이전 부분의 디코딩 동안 획득된 메타 정보에 응답할뿐만 아니라, 이전에 재구성되고 루프 필터링된 샘플 값에 응답할 수 있는 인 루프(in-loop) 필터 기술을 포함할 수 있다.
루프 필터 유닛(356)의 출력은, 렌더 디바이스(212)로 출력 될뿐만 아니라, 미래의 화상 인터 예측에 사용하기 위해 참조 화상 메모리(356)에 저장될 수 있는 샘플 스트림일 수 있다.
일단 완전히 재구성된 특정 코딩된 화상은 추후 예측을 위한 참조 화상으로 사용될 수 있다. 코딩된 화상이 완전히 재구성되고 코딩된 화상이 참조 화상으로서 식별되면(예를 들어, 파서(320)에 의해), 현재 참조 화상(656)은 참조 화상 버퍼(357)의 일부가 될 수 있고, 다음의 코딩된 화상의 재구성을 시작하기 전에 새로운 현재 화상 메모리가 재할당될 수 있다.
비디오 디코더(210)는 ITU-T Rec. H.265와 같은 표준으로 문서화될 수 있는 소정의 비디오 압축 기술에 따라 디코딩 동작을 수행할 수 있다. 코딩된 비디오 시퀀스는, 비디오 압축 기술 문서 또는 표준에, 그리고 그 프로파일 문서에 구체적으로 명세된 바와 같이, 비디오 압축 기술 또는 표준의 구문을 준수한다는 점에서, 사용되는 비디오 압축 기술 또는 표준에 의해 명세되는 구문을 따를 수 있다. 또한, 코딩된 비디오 시퀀스의 복잡도가, 비디오 압축 기술 또는 표준의 레벨에 의해 정의되는 범위 내에 있음을 준수할 필요가 있을 수 있다. 일부 경우에, 레벨은 최대 화상 크기, 최대 프레임 레이트, 최대 재구성 샘플 레이트(예를 들어, 초당 메가 샘플로 측정됨), 최대 참조 화상 크기 등을 제한한다. 레벨에 의해 설정된 제한은, 일부 경우에, 코딩된 비디오 시퀀스에서 시그널링되는 HRD 버퍼 관리를 위한 HRD(Hypothetical Reference Decoder) 사양 및 메타 데이터를 통해 추가로 제한될 수 있다.
일 실시 예에서, 수신기(310)는 인코딩된 비디오와 함께 추가(중복) 데이터를 수신할 수 있다. 추가 데이터는 코딩된 비디오 시퀀스(들)의 일부로서 포함될 수 있다. 추가 데이터는, 데이터를 적절하게 디코딩하고 및/또는 원본 비디오 데이터를 보다 정확하게 재구성하기 위해 비디오 디코더(210)에 의해 사용될 수 있다. 추가 데이터는, 예를 들어, 시간적, 공간적 또는 신호 대 잡음비(signal-to-noise ratio, SNR) 향상 계층, 중복 슬라이스, 중복 화상, 순방향 오류 정정 코드 등의 형태일 수 있다.
도 6은 본 개시의 일 실시 예에 따른 비디오 인코더(203)의 기능 블록도일 수 있다.
인코더(203)는, 인코더(203)에 의해 코딩될 비디오 이미지(들)를 캡처할 수 있는 비디오 소스(201)(인코더의 일부가 아님)로부터 비디오 샘플을 수신할 수 있다.
비디오 소스(201)는, 임의의 적절한 비트 깊이(예를 들어, 8 비트, 10 비트, 12 비트, ...), 임의의 색 공간(예를 들어, BT.601 Y CrCB, RGB, ...) 및 임의의 적절한 샘플링 구조(예를 들어, Y CrCb 4:2:0, Y CrCb 4:4:4)일 수 있는 디지털 비디오 샘플 스트림의 형태로 인코더(203)에 의해 코딩될 소스 비디오 시퀀스를 제공할 수 있다. 미디어 서빙 시스템에서, 비디오 소스(201)는 미리 준비된 비디오를 저장하는 저장 디바이스일 수 있다. 화상 회의 시스템에서, 비디오 소스(203)는 로컬 이미지 정보를 비디오 시퀀스로서 캡처하는 카메라일 수 있다. 비디오 데이터는 순차적으로 볼 때 움직임을 부여하는 복수의 개별 화상으로서 제공될 수 있다. 화상 자체는 픽셀의 공간 어레이로서 구성될 수 있으며, 각 픽셀은, 사용 중인, 샘플링 구조, 색 공간 등에 따라 하나 이상의 샘플을 포함할 수 있다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 픽셀과 샘플 사이의 관계를 쉽게 이해할 수 있다. 아래 설명은 샘플에 중점을 둔다.
일 실시 예에 따르면, 인코더(203)는, 소스 비디오 시퀀스의 화상을 코딩된 비디오 시퀀스(443)로 실시간으로 또는 애플리케이션에 의해 요구되는 임의의 다른 시간 제약 조건 하에 코딩 및 압축할 수 있다. 적절한 코딩 속도를 강화하는 것은 컨트롤러(450)의 기능 중 하나이다. 컨트롤러는 아래에서 설명되는 바와 같은 다른 기능 유닛을 제어하며, 이들 유닛에 기능적으로 연결된다. 명확성을 위해 연결은 도시되지 않았다. 제어기에 의해 설정되는 파라미터는, 레이트 제어 관련 파라미터(화상 스킵, 양자화기, 레이트 왜곡 최적화 기법의 람다 값, ...), 화상 크기, GOP(group of picture) 레이아웃, 최대 모션 벡터 검색 범위 등을 포함할 수 있다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는, 특정 시스템 설계에 대해 최적화된 비디오 인코더(203)에 관련될 수 있는 컨트롤러(450)의 다른 기능을 쉽게 식별할 수 있다.
일부 비디오 인코더는, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 "코딩 루프"로서 쉽게 인식하는 방식으로 작동한다. 지나치게 단순화된 설명으로서, 코딩 루프는 인코더(430)의 인코딩 부분(이후 "소스 코더")(코딩될 입력 화상 및 참조 화상(들)에 기초하여 심볼을 생성하는 것을 담당함), 및 (심볼과 코딩된 비디오 비트스트림 사이의 임의의 압축은, 개시된 발명에서 고려되는 비디오 압축 기술에서 무손실에 해당하므로) (리모트) 디코더가 또한 생성할 샘플 데이터를 생성하기 위해 심볼을 재구성하는 인코더(203)에 내장된 (로컬) 디코더(433)로 구성될 수 있다. 그 재구성된 샘플 스트림은 참조 화상 메모리(434)에 입력된다. 심볼 스트림의 디코딩은, 디코더 위치(로컬 또는 리모트)와 무관하게, 정확한 비트(bit-exact) 결과를 초래하기 때문에, 참조 화상 버퍼 내용은 또한 로컬 인코더와 리모트 인코더 사이의 정확한 비트이다. 다시 말해서, 인코더의 예측 부분은, 디코딩 동안 예측을 사용할 때 디코더가 "볼" 수 있는 것과 정확히 동일한 샘플 값을 참조 화상 샘플로서 "본다". 이러한 참조 화상 동기(synchronicity)의 기본 원리(및, 예를 들어 채널 오류로 인해, 동기가 유지될 수 없는 경우, 결과적인 드리프트)는 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 잘 알려져 있다.
"로컬" 디코더(433)의 동작은 "리모트" 디코더(210)의 동작과 동일할 수 있으며, 이는 도 3과 관련하여 이미 위에서 상세히 설명되었다. 그러나, 도 6을 간단히 참조하면, 심볼이 이용 가능하고 엔트로피 코더(445) 및 파서(320)에 의해 코딩된 비디오 시퀀스에 대한 심볼의 인/디코딩이 무손실일 수 있으므로, 채널(312), 수신기(310), 버퍼(315) 및 파서(320)를 포함하는 디코더(210)의 엔트로피 디코딩 부분은 로컬 디코더(433)에서 완전히 구현되지 않을 수 있다.
이 시점에서 수행될 수 있는 관찰은, 디코더에 존재하는 파싱/엔트로피 디코딩을 제외한 임의의 디코더 기술이 또한, 대응하는 인코더에, 실질적으로 동일한 기능 형태로, 존재할 필요가 있다는 것이다. 인코더 기술에 대한 설명은, 포괄적으로 설명된 디코더 기술과 반대이므로 생략할 수 있다. 특정 영역에서만 더욱 상세한 설명이 필요하며, 아래에서 제공된다.
그 동작의 일부로서, 소스 코더(430)는. "참조 프레임"으로 지정된 비디오 시퀀스로부터 하나 이상의 이전에 코딩된 프레임을 참조하여 입력 프레임을 예측적으로 코딩하는 모션 보상 예측 코딩을 수행할 수 있다. 이러한 방식으로, 코딩 엔진(432)은, 입력 프레임의 예측 블록(들)으로서 선택될 수 있는 입력 프레임의 픽셀 블록과 참조 프레임(들)의 픽셀 블록 사이의 차이를 코딩한다.
로컬 비디오 디코더(433)는, 소스 코더(430)에 의해 생성된 심볼에 기초하여, 참조 프레임으로서 지정될 수 있는 프레임들의 코딩된 비디오 데이터를 디코딩할 수 있다. 코딩 엔진(432)의 동작은 유리하게 손실 프로세스일 수 있다. 코딩된 비디오 데이터가 비디오 디코더(도 6에 도시되지 않음)에서 디코딩될 수 있는 경우, 재구성된 비디오 시퀀스는 전형적으로 약간의 에러를 갖는 소스 비디오 시퀀스의 복제물일 수 있다. 로컬 비디오 디코더(433)는, 참조 프레임 상에서 비디오 디코더에 의해 수행될 수 있고, 재구성된 참조 프레임이 참조 화상 캐시(434)에 저장되도록 할 수 있는 디코딩 프로세스를 복제한다. 이러한 방식으로, 인코더(203)는, 원단(far-end) 비디오 디코더에 의해 획득될 재구성된 참조 프레임들과 공통 내용을 갖는 재구성된 참조 프레임들의 사본들을 로컬에 저장할 수 있다(전송 오류 없음).
예측기(435)는 코딩 엔진(432)에 대한 예측 검색을 수행할 수 있다. 즉, 새로운 프레임이 코딩되기 위해, 예측기(435)는, 새로운 화상에 대한 적절한 예측 참조로서 작용할 수 있는, (후보 참조 픽셀 블록으로서) 샘플 데이터 또는 참조 화상 모션 벡터, 블록 형태 등과 같은 특정 메타 데이터에 대한 참조 화상 메모리(434)를 검색할 수 있다. 예측기(435)는, 적절한 예측 참조를 발견하기 위해 샘플 블록 별 픽셀 블록 단위로 동작할 수 있다. 일부 경우에, 예측기(435)에 의해 획득된 검색 결과에 의해 결정되는 바와 같이, 입력 화상은, 참조 화상 메모리(434)에 저장된 다수의 참조 화상으로부터 도출된 예측 참조를 가질 수 있다.
제어기(450)는, 예를 들어, 비디오 데이터를 인코딩하기 위해 사용되는 파라미터 및 서브그룹 파라미터의 설정을 포함하여, 비디오 코더(430)의 코딩 동작을 관리할 수 있다.
전술한 모든 기능 유닛의 출력은, 엔트로피 코더(445)에서 엔트로피 코딩될 수 있다. 엔트로피 코더는, 예를 들어, 허프만 코딩, 가변 길이 코딩, 산술 코딩 등과 같이, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 알려진 기술에 따라 심볼을 무손실 압축함으로써, 다양한 기능 유닛에 의해 생성된 심볼을 코딩된 비디오 시퀀스로 변환한다.
전송기(440)는, 엔트로피 코더(445)에 의해 생성된 바와 같은 코딩된 비디오 시퀀스(들)를 버퍼링하여, 통신 채널(460)을 통한 전송을 준비하고, 이는 인코딩된 비디오 데이터를 저장할 저장 디바이스에 대한 하드웨어/소프트웨어 링크일 수 있다. 전송기(440)는 비디오 코더(430)로부터의 코딩된 비디오 데이터를, 전송될 다른 데이터, 예를 들어, 코딩된 오디오 데이터 및/또는 보조 데이터 스트림(소스 미도시)과 병합할 수 있다.
제어부(450)는 인코더(203)의 동작을 관리할 수 있다. 코딩 동안, 제어기(450)는, 각각의 코딩된 화상에 특정 코딩된 화상 유형을 할당할 수 있으며, 이는 각각의 화상에 적용될 수 있는 코딩 기술에 영향을 미칠 수 있다. 예를 들어, 화상은 종종 다음 프레임 유형 중 하나로서 할당될 수 있다.
인트라 화상(Intra Picture)(I 화상)은, 시퀀스의 임의의 다른 프레임을 예측 소스로서 사용하지 않고 코딩 및 디코딩될 수 있는 화상일 수 있다. 일부 비디오 코덱은, 예를 들어 Independent Decoder Refresh Pictures를 포함하는, 여러 유형의 인트라 화상을 허용한다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 I 화상의 변형 및 그 각각의 응용 및 특징을 알고 있다.
예측 화상(Predictive picture)(P 화상)은, 각각의 블록의 샘플 값을 예측하기 위해, 최대 하나의 모션 벡터 및 참조 인덱스를 사용하는 인터 예측 또는 인트라 예측을 사용하여 코딩 및 디코딩될 수 있는 화상일 수 있다.
양방향 예측 화상(Bi-directionally Predictive Picture)(B 화상)은, 각각의 블록의 샘플 값을 예측하기 위해, 최대 2 개의 모션 벡터 및 참조 인덱스를 사용하는 인터 예측 또는 인트라 예측을 사용하여 코딩 및 디코딩될 수 있는 화상일 수 있다. 이와 유사하게, 다중 예측 화상은, 단일 블록의 재구성을 위해 2 개 이상의 참조 화상 및 연관 메타 데이터를 사용할 수 있다.
소스 화상은 일반적으로 복수의 샘플 블록(예를 들어, 각각 4 x 4, 8 x 8, 4 x 8 또는 16 x 16 샘플의 블록)으로 공간적으로 세분화될 수 있고, 블록 별로 코딩될 수 있다. 블록은, 블록의 각각의 화상에 적용되는 코딩 할당에 의해 결정됨에 따라, 다른(이미 코딩된) 블록을 참조하여 예측적으로 코딩될 수 있다. 예를 들어, I 화상의 블록은 비 예측적으로 코딩될 수 있거나, 동일한 화상의 이미 코딩된 블록을 참조하여 예측적으로 코딩될 수 있다(공간 예측 또는 인트라 예측). P 화상의 픽셀 블록은, 하나의 이전에 코딩된 참조 화상을 참조하여, 시간적 예측을 통해 또는 공간적 예측을 통해 비 예측적으로 코딩될 수 있다. B 화상의 블록은, 하나 또는 2 개의 이전에 코딩된 참조 화상을 참조하여, 시간적 예측을 통해 또는 공간적 예측을 통해 비 예측적으로 코딩될 수 있다.
비디오 디코더(203)는 ITU-T Rec. H.265와 같은, 소정의 비디오 압축 기술 또는 표준에 따라 코딩 동작을 수행할 수 있다. 그것의 동작에서, 비디오 코더(203)는, 입력 비디오 시퀀스에서 시간적 및 공간적 리던던시를 이용하는 예측 코딩 동작을 포함하는 다양한 압축 동작을 수행할 수 있다. 그러므로, 코딩된 비디오 데이터는, 사용되는 비디오 코딩 기술 또는 표준에 의해 명세된 구문을 따를 수 있다.
일 실시 예에서, 전송기(440)는 인코딩된 비디오와 함께 추가 데이터를 전송할 수 있다. 비디오 코더(430)는, 코딩된 비디오 시퀀스의 일부와 같은 데이터를 포함할 수 있다. 추가 데이터는, 시간적/공간적/SNR 향상 계층, 중복 화상 및 슬라이스와 같은 다른 형태의 중복 데이터, SEI(Supplementary Enhancement Information) 메시지, VUI(Visual Usability Information) 파라미터 세트 프래그먼트 등을 포함할 수 있다.
최근 몇 년 동안, 예를 들어 360 비디오와 같은, 프로젝션 비디오의 압축이 특히 관심을 받아왔다. 360 비디오에서, 구의 표면은, 큐브 투영을 통해 6 개의 평면 정사각형 표면을 통해 표현될 수 있다. 개시된 발명은 이러한 시나리오에서 사용될 수 있다. 이후 논의를 위해 사용될 또 다른 사용 케이스는, 서로 다른, 정의된 관심 영역을 갖는 평면 표면에 대한 코딩이다.
예를 들어 감시 카메라로부터의 일 장면이 도시된 도 5를 참조하면, 이는 다양한 크기 및 형상의 직사각형 블록으로 도시된 특정 수의 타일(501, 502)로 분할된다. H.265에서, 도시된 세분은 구문 제한으로 인해 가능하지 않을 수 있다; 그러나, 이러한 파티셔닝을 허용하기 위해 구문 변경이 연구되었으며; 예를 들어 http://phenix.it-sudparis.eu/jvet/doc_end_user/documents/11_Ljubljana/wg11/JVET-K0260-v2.zip에서 획득할 수 있는 R. Sjoberg, et. al., "Flexible Tiles", JVET-K0260, 7/2018을 참조할 수 있다. 도시된 파티셔닝은, 타일에서, 특정 속성을 가진 장면의 영역을 커버하는 CU를 함께 덩어리(lump)로 만들기 위해 사용될 수 있다. 감시 카메라, 예를 들어, 하늘을 나타내는 타일(501)은, 예를 들어, 타일(502)에 의해 캡처된 건물 입구와 관련이 없을 수 있다. 이미 언급한 바와 같이, 타일은 독립적으로 디코딩할 수 있다. 따라서, 디코더가 전체 장면을 디코딩하기 위한 전력이 불충분한 시나리오에서, 그것은, 애플리케이션과 관련성이 적은 CU(예를 들어, 타일(501)의 CU)를 포함하는 타일을 드롭하고, 대신 관련성이 있는 타일만을 디코딩할 수 있다(예를 들어, 타일(502)의 CU). 이와 마찬가지로, 네트워크의 SFU(selective forwarding unit)가 카메라에서 전체 장면을 수신하지만, 나가는 링크의 대역폭이 충분하지 않은 경우, 그것은, 애플리케이션과 관련성이 적은 타일을 드롭할 수 있다. 이것은 플렉서블 타일링 메커니즘이 왜 유용한지에 대한 하나의 동기일 뿐이다. 다른 예는, 큐브 맵의 6 개 표면 모두를 단일 화상으로 송신하는 것이며, 각각의 표면은 하나의 타일로 표현된다. 큐브를 역 투영으로 렌더링하는 경우, 큐브 외부의 임의의 주어진 시점에서 렌더링하기 위해 최대 3 개의 표면이 요구된다. 따라서, 최소 3 개의 표면이 전송되거나 디코딩될 필요가 없다. 플렉서블 타일링은 이에 따라 비트스트림을 파티셔닝하는 데 도움이 되어, SFU 또는 디코더가 높은 레벨의 구문 결정에 따라 불필요한 표면을 포함하는 불필요한 타일을 드롭할 수 있다.
타일은 원래 인코더 병렬화를 지원하기 위해 도입되었다. 이러한 시나리오에서, 타일 레이아웃은 인코더가 사용할 수 있는 프로세서(들)의 특성에 크게 영향을 받는다. 예를 들어, 4 개의 코어에서 실행되는 인코더는, 인코더의 로드의 균형을 맞추기 위해, 소스 화상과 대략 동일한 크기 및 대략 동일한 종횡비의 4 개의 직사각형 영역으로 화상을 분할할 수 있다. 유사한 종횡비는, 인트라 예측, 모션 보상 등과 같은 2 차원 코딩 툴을 활용하기에 유리할 수 있다.
예를 들어, Sjoberg et. al에서 제안된 바와 같이 H.265의 타일 구문이 수정된 경우에도 한 가지 중요한 문제가 남아 있다: 애플리케이션의 요구에 기초하여 화상을 타일 파티셔닝하는 경우, 해당 타일 파티셔닝은 병렬화에 최적이 아닐 수 있으며, 그 반대도 마찬가지이다.
상기 단점을 극복하기 위해 사용될 수 있는 다수의 가능한 기술이 존재한다.
(1) CU 개수 별 타일을 코어/프로세서에 할당함
여전히 도 6을 참조하면, 일 실시 예에서, 인코더는 해당 파티셔닝 스킴을 사용하고, 타일 크기에 기초하여 타일을 코어에 할당할 수 있어서, 각각의 코어는 대략 동일한 워크로드를 포함하는 타일 상에서 작동할 수 있다. 해당 워크로드는, 예를 들어, 샘플 수, CU 수(CU의 크기가 동일하다고 가정) 또는 유사한 측정치로 측정될 수 있다. 일 예로서, 인코더는, 타일(501)이 하늘을 표시하는 넓은 영역을 포함한다는 이론에 따라, 타일(501, 503, 504)을 하나의 코어에 할당하고 나머지 타일을 다른 코어에 할당할 수 있으며, 감시 시나리오에서 쉽게 검출 가능해야 하고 관련성이 제한되고, 따라서 쉽게 인코딩될 수 있으므로, 나머지 타일과 관련하여 타일(501, 503, 504)의 더 큰 공간 영역은 중요하지 않다. 이러한 메커니즘의 비용은, 주어진 코어가 담당하는 타일이 인접하지 않아서, 추가적인 메모리 액세스로 이어질 수 있다. 일부 비디오 인코더에서는 메모리 액세스가 핵심적인 병목 현상이 될 수 있다. 또 다른 문제는, 애플리케이션 구동 타일 레이아웃이 (타일에 포함된 CU 수의 관점에서) 적절한 크기의 타일의 이용 가능성을 보장할 수 없다는 것이다. 따라서, 각각 시간 간격 당 k 개 CU를 가질 수 있는 n 코어의 주어진 인코더는, 실시간으로 n x k CU의 타일 스티치된 화상(tile-stitched picture)을 코딩할 수 있다는 것을 보장할 수 없으며, 안전 인자(safety factor)를 계산하기 어려울 수 있다. 이러한 시나리오의 타일 레이아웃은 애플리케이션 구동이 될 수 있고, 인코더는 애플리케이션 구동 제약 조건을 따르는 것 외에는 선택의 여지가 없기 때문에, 이것은 실시간 애플리케이션에 중요할 수 있다. 일부 경우에, 애플리케이션 기반 타일 레이아웃을 처리하기 위해 인코더를 프로비저닝(provision)해야할 수도 있으며, 이 경우, 애플리케이션이 모든 CU를 단일 타일에 배치하기로 결정할 수 있기 때문에, 타일을 기반으로 한 인코더 기반 병렬화를 가정할 수 없다. .
(2) 애플리케이션 요구에 대한 타일링과 병렬화를 위한 타일링 기능의 분리: 계층적 타일
보다 명료한 솔루션은, 병렬화 목적을 위한 타일링과 애플리케이션 요구의 목적을 위한 타일링의 기능을 분리하는 것이다.
도 6을 참조하면, 도 5(실선, 601로 표시됨)와 동일한 애플리케이션 구동 타일 레이아웃이 도시되어 있지만, 병렬화에 최적화된 동일한 크기의 타일(굵은 파선, 602로 표시됨)의 2 x 2 그리드의 추가적인 오버레이를 포함한다. 본 시나리오에서, 가는 선과 굵은 선은 비트스트림 구성을 위해 타일 경계를 형성한다. 따라서, 화상이 분할되는 타일의 개수는 증가한다.
동일하거나 다른 실시 예에서, 병렬 인코더는, 병렬 타일 영역(파선으로 표시됨)에 위치한 타일이 각각의 코어에 할당되고 각각의 코어에 의해 프로세싱되는 것을 제외하고는, 일반적인 방식으로 이 타일 레이아웃(가는 선과 점선으로 생성됨)에서 동작한다. "애플리케이션" 타일 레이아웃은, 비트스트림 생성 프로세스 중에 관찰되지만, 코어 할당에는 사용되지 않는다. 따라서, 애플리케이션 구동 타일 레이아웃이 없는 경우와 마찬가지로 병렬처리는 애플리케이션 구동 타일 레이아웃으로도 달성될 수 있다. 비용은, 비트스트림에서 추가 타일을 사용하는 것이고, 이는 추가 비트를 소비할 수 있고, 또한 특별히 금지하는 단계가 취해지지 않는 한, 타일 경계에서 재구성된 화상 품질을 손상시킬 수도 있다(따라서 추가 비트를 소비함).
(3) 계층적 타일 세트
H.265에서, 타일 형상에 대한 제어 정보는 PPS(Picture Parameter Set)에 위치한다. 따라서, 타일 형상은 화상마다 그 형태가 변할 수 있다. 예를 들어, 팬 틸트 줌 카메라 또는 빠르게 이동하는 객체 및 객체 인식을 사용하여 타일 경계를 식별하는 경우, 장면의 내용이 빠르게 변화할 수 있기 때문에, 애플리케이션 구동 타일 레이아웃의 목적을 위해, 그것은 합리적인 디자인 선택일 수 있다. 그러나, 병렬화의 목적으로는, 이것이 최상의 솔루션이 아닐 수도 있다. 오늘날 지배적인 인코더 아키텍처에서, 코딩될 화상의 일부에 코어를 동적 할당하는 것은 초기화 시점에 한 번 일어날 수 있으며, 따라서 일반적으로 일정하게 유지된다.
이러한 상황을 반영하기 위해, 동일하거나 다른 실시 예에서, 타일 제어 정보는 계층으로 분할된다. 점선(602)으로 표현된 "더 높은" 타일 제어 정보는 주로 병렬화를 위해 사용될 수 있다. 응용 프로그램 기반 타일 제어 정보(실선으로 표시되는 타일 경계를 표시하는 601)는 화상 파라미터 세트(picture parameter set, PPS)를 계속 사용할 수 있는 반면 더 높은 레벨 구문 구조(예를 들어, 시퀀스 파라미터 세트(sequence parameter set, SPS))로 코딩될 수 있다. 이러한 할당은, 병렬화 타일 레이아웃(602)의 정적인, 하드웨어 구동 특성을 반영하는 동시에, 애플리케이션 타일 레이아웃(601)의 동적 재구성의 가능한 필요성을 존중한다. 이러한 타일 제어 정보를, 다른 파라미터 세트, 슬라이스 헤더, 화상 헤더, GOP 헤더 등과 같은 다른 구문 요소에 할당하는 것도 물론 가능하다.
타일로의 비트스트림 세분화는, 화상 내 또는 화상 간 예측의 관점에서 특정 특성을 가질 수 있음이 이미 지적되었다. 모든 타일 스킴이 구문 예측을 중단하고 CABAC를 재설정하지만, 특정 타일 스킴은, 현재 화상에 대해 또는 참조 화상에 대해 타일 외부로부터의 샘플 예측을 허용할 수 있다. 타일 제어 정보를 계층으로 분할함으로써, 타일 경계 당 예측의 특성은 요구, 예를 들어, 애플리케이션의 요구 또는 병렬화의 요구에 맞게 설계될 수 있다. 예를 들어, 타일이 병렬화에 사용되는 적어도 일부 구현에서, 타일 경계를 걸친 모션 보상이 가능하다. 이것은, 참조 화상이, 모든 코어에 의해 공유되는 느린 메모리에 저장될 수 있기 때문에 작동할 수 있다. 다른 한편으로, 타일 경계에 걸쳐, 타일 내부의 샘플과 의미적으로 공통점이 거의 없거나 전혀 없는 샘플이 존재할 수 있으므로, 애플리케이션 요구에 대해, 샘플 경계에 걸친 모션 보상은 금기될 수 있다. 일 예로서, 큐브 투영에서 큐브 표면을 따라 실행되는 타일 경계를 고려할 수 있다. 그러나, 타일 경계가 더 제한적일수록, 가능한 아티팩트를 언급하지 않고, 타일 경계에 대한 코딩 효율 페널티가 더 높아질 수 있다.
그러므로, 코딩 효율 관점에서 병렬화를 위해 도입되는 타일 경계는, 애플리케이션 요구를 위해 도입되는 타일 경계와 다르게 처리하는 것이 유용할 수 있다.
동일하거나 다른 실시 예에서, 타일 경계는, 그것과 연관된 제어 정보를 가질 수 있고, 해당 인코더 및 디코더는 해당 타일 경계에 걸친 예측의 정도를 결정하기 위해 사용할 수 있다. 이러한 정보는, 예를 들어, 플래그 세트로 표현될 수 있으며, 여기서 플래그는 특정 유형의 예측, 예를 들어 구문 예측, CABAC 리셋, 인트라 예측, 화상 내 참조 블록 예측(일명 인트라 블록 카피(intra block copy, IBC)), 모션 벡터 예측, 모션 보상 예측(샘플 레벨) 등의 중단을 나타낸다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는, 비디오 코딩 기술 또는 표준의 특성에 기초하여, 적절한 개수의 이러한 플래그를 용이하게 고안할 수 있다.
타일 경계마다 이러한 정보를 저장하는 것은, 레이트 왜곡 관점에서 부담스럽고 비효율적일 수 있다. 그러나, 상이한 경계에 대해 상이한 예측 메커니즘을 활성화/비활성화하는 이유는, 이러한 경계의 특성, 예를 들어 애플리케이션 구동 또는 병렬화 구동에 기인할 수 있다. 따라서, 동일하거나 다른 실시 예에서, 플래그 세트는, 예를 들어 SPS 및 PPS에 저장된 각각의 타일 계층에 위치하고 연관될 수 있다.
디코딩 시, 사용 중인 적절한 예측 메커니즘은 제어 정보로부터 도출될 수 있다. 사용 중인 예측 메커니즘은, 동일한 타일의 여러 경계에 따라 다를 수 있다. 예를 들어, 타일(603)을 디코딩할 때, 타일(603)의 상부 경계는(예를 들어, 모션 보상을 허용할 수 있는) SPS의 예측 메커니즘과 관련될 수 있는 반면, 타일(603)의 나머지 타일 경계는 PPS에 정의된 예측 메커니즘을 가질 수 있으며, 예를 들어, 모션이 제한될 수 있다.
도 7은 코딩된 비디오 시퀀스를 디코딩하기 위한 예시적인 프로세스(700)의 흐름도이다. 일부 구현들에서, 도 7의 하나 이상의 프로세스 블록들은 디코더(210)에 의해 수행될 수 있다. 일부 구현들에서, 도 7의 하나 이상의 프로세스 블록들은 인코더(203)와 같은 디코더(210)로부터 분리되거나 이를 포함하는 다른 디바이스 또는 디바이스 그룹에 의해 수행될 수 있다.
도 7에 도시된 바와 같이, 프로세스(700)는, 코딩된 비디오 시퀀스로부터, 적어도 하나의 제1 예측 메커니즘이 제1 타일 경계에 걸쳐 이용 가능함을 결정하는 것을 포함할 수 있다(블록 710).
도 7에 또한 도시된 바와 같이, 프로세스(700)는, 코딩된 비디오 시퀀스로부터, 적어도 하나의 제1 예측 메커니즘이 제2 타일 경계에 걸쳐 이용 가능하지 않음을 결정하는 것을 포함할 수 있다(블록 720).
도 7에 또한 도시된 바와 같이, 프로세스(700)는, 제1 타일 레이아웃에 의해 정의되는 제1 타일 경계 및 제2 타일 레이아웃에 의해 정의되는 제2 타일 경계를 포함할 수 있는 적어도 하나의 타일을 디코딩하는 것을 포함할 수 있다(블록 730).
일 실시 예에서, 제1 타일 레이아웃은 병렬화 구동 타일 레이아웃을 포함할 수 있고, 제2 타일 레이아웃은 애플리케이션 구동 타일 레이아웃을 포함할 수 있다.
일 실시 예에서, 코딩된 비디오 시퀀스는, 적어도 하나의 제2 예측 메커니즘이, 제1 타일 경계 및 제2 타일 경계에 걸쳐 이용 가능함을 표시한다.
일 실시 예에서, 제1 타일 레이아웃은, 코딩된 비디오 시퀀스의 제1 구문 구조로 기술되고, 제2 타일 레이아웃은, 코딩된 비디오 시퀀스의 제2 구문 구조로 기술되며, 제1 구문 구조는 제2 구문 구조와 상이하다.
일 실시 예에서, 제1 구문 구조는 제2 구문 구조보다 상위 레벨의 구문 구조이다.
일 실시 예에서, 제1 구문 구조는 시퀀스 파라미터 세트를 포함할 수 있고, 제2 구문 구조는 화상 파라미터 세트를 포함할 수 있다.
일 실시 예에서, 제1 타일 레이아웃 및 제2 타일 레이아웃은, 시퀀스 파라미터 세트, 화상 파라미터 세트, 슬라이스 헤더(slice header), 화상 헤더(picture header) 또는 화상 헤더의 그룹 중 적어도 하나로 기술된다.
일 실시 예에서, 적어도 하나의 제1 예측 메커니즘은, 구문 예측, 컨텍스트 적응형 이진 산술 코딩 리셋(context-adaptive binary arithmetic coding reset), 인트라 예측(intra prediction), 화상 내 참조 블록 예측(in-picture reference block prediction), 인트라 블록 카피(intra block copy), 모션 벡터 예측(motion vector prediction) 또는 모션 보상 예측(motion compensated prediction) 중 적어도 하나를 포함할 수 있다.
일 실시 예에서, 제1 타일 레이아웃의 기술은, 적어도 하나의 제1 예측 메커니즘이 제1 타일 경계에 걸쳐 이용 가능함을 표시하는 구문 요소를 포함할 수 있다.
일 실시 예에서, 제2 타일 레이아웃의 기술은, 적어도 하나의 제1 예측 메커니즘이 제2 타일 경계에 걸쳐 이용 가능하지 않음을 표시하는 구문 요소를 포함할 수 있다.
비록 도 7은 프로세스(700)의 예시적인 블록을 도시하지만, 일부 구현들에서, 프로세스(700)는, 도 7에 도시된 것에 비해, 추가 블록들, 더 적은 블록들, 다른 블록들 또는 다르게 배열된 블록들을 포함할 수 있다. 추가적으로 또는 대안 적으로, 프로세스(700)의 블록들 중 2 이상이 병렬로 수행될 수 있다.
또한, 제안된 방법은, 프로세싱 회로(예를 들어, 하나 이상의 프로세서 또는 하나 이상의 집적 회로)에 의해 구현될 수 있다. 일 예에서, 하나 이상의 프로세서는, 비 일시적인, 컴퓨터로 판독 가능한 매체에 저장된 프로그램을 실행하여, 제안된 방법 중 하나 이상을 수행한다.
전술한 기술은, 컴퓨터로 판독 가능 명령을 사용하여 컴퓨터 소프트웨어로서 구현될 수 있고, 하나 이상의 컴퓨터로 판독 가능한 매체에 물리적으로 저장될 수 있다. 예를 들어, 도 8은, 개시된 발명의 특정 실시 예들을 구현하기에 적합한 컴퓨터 시스템(800)을 도시한다.
컴퓨터 소프트웨어는, 임의의 적합한 머신 코드 또는 컴퓨터 언어를 사용하여 코딩될 수 있으며, 이는 컴퓨터 중앙 처리 장치(central processing unit, CPU), 그래픽 처리 장치(Graphics Processing Unit, GPU) 등에 의해 수행될 수 있는, 직접, 또는 해석, 마이크로 코드 실행 등을 통해 실행될 수 있는 명령을 포함하는 코드를 생성하기 위한 어셈블리, 컴파일, 링크 또는 유사한 메커니즘에 따를 수 있다.
명령은, 예를 들어, 개인용 컴퓨터, 태블릿 컴퓨터, 서버, 스마트 폰, 게임 디바이스, 사물 인터넷 디바이스 등을 포함하는, 다양한 유형의 컴퓨터 또는 그 구성 요소 상에서 실행될 수 있다.
컴퓨터 시스템(800)에 대한 도 8에 도시된 구성 요소들은 본질적으로 예시적인 것이며, 본 개시의 실시 예들을 구현하는 컴퓨터 소프트웨어의 사용 범위 또는 기능에 관한 제한을 제안하도록 의도되지 않는다. 구성 요소의 어떤 구성도, 컴퓨터 시스템(800)의 예시적인 실시 예에 도시된 구성 요소의 임의의 하나 또는 조합과 관련된 임의의 의존성 또는 요구 사항을 갖는 것으로 해석되어서는 안 된다.
컴퓨터 시스템(800)은 특정 인간 인터페이스 입력 디바이스를 포함할 수 있다. 이러한 인간 인터페이스 입력 디바이스는, 예를 들어, 촉각 입력(예를 들어, 키 스트로크, 스와이프, 데이터 글로브 이동), 오디오 입력(예를 들어, 음성, 박수), 시각적 입력(예를 들어, 제스처), 후각 입력(미도시)을 통해 하나 이상의 인간 사용자에 의한 입력에 응답할 수 있다. 인간 인터페이스 디바이스는, 오디오(예를 들어, 음성, 음악, 주변 소리), 이미지(예를 들어, 스캔된 이미지, 정지 영상 카메라로부터 획득한 사진 이미지), 비디오(예를 들어, 2 차원 비디오, 입체 비디오를 포함하는 3 차원 비디오)와 같이, 인간에 의한 의식적 입력과 직접 관련될 필요가 없는 특정 매체를 캡처하기 위해서도 사용될 수 있다.
입력 인간 인터페이스 디바이스는 키보드(801), 마우스(802), 트랙패드(803), 터치스크린(810), 데이터 글로브(804), 조이스틱(805), 마이크로폰(806), 스캐너(807), 카메라(808) 중 하나 이상(각각 하나만 도시됨)을 포함할 수 있다.
컴퓨터 시스템(800)은 또한 특정 인간 인터페이스 출력 디바이스를 포함할 수 있다. 이러한 인간 인터페이스 출력 디바이스는, 예를 들어, 촉각 출력, 사운드, 빛 및 냄새/맛을 통해 하나 이상의 인간 사용자의 감각을 자극할 수 있다. 이러한 인간 인터페이스 출력 디바이스는, 촉각 출력 디바이스(예를 들어, 터치 스크린(810), 데이터 글로브(804) 또는 조이스틱(805)에 의한 촉각 피드백, 그러나 입력 디바이스로서 기능하지 않는 촉각 피드백 디바이스일 수 있음), 오디오 출력 디바이스(예를 들어, 스피커(809), 헤드폰(도시되지 않음)), 시각적 출력 디바이스(예를 들어, 각각 터치 스크린 입력 기능이 있거나 없는, 각각 촉각 피드백 기능이 있거나 없는, CRT(cathode ray tube) 스크린, LCD(liquid-crystal display) 스크린, 플라즈마 스크린, OLED(organic light-emitting diode) 스크린을 포함하는 스크린(810), 일부는 입체 출력과 같은 수단을 통해 2차원 시각 출력 또는 3차원 이상의 출력을 출력할 수 있음; 가상 현실 안경(미도시), 홀로그램 디스플레이 및 연기 탱크(미도시)) 및 프린터(도시되지 않음)를 포함할 수 있다.
컴퓨터 시스템(800)은 또한 인간이 접근 가능한 저장 디바이스 및 이들 연관된 매체, 예를 들어, CD/DVD 등을 갖는 CD/DVD ROM/RW(820)를 포함하는 광학 매체, 매체(821), 썸 드라이브(thumb-drive)(822), 이동식 하드 드라이브 또는 솔리드 스테이트 드라이브(823), 테이프 및 플로피 디스크와 같은 레거시 자기 매체(도시되지 않음), 보안 동글과 같은 특수 ROM/ASIC/PLD 기반 디바이스(도시되지 않음) 등을 포함할 수 있다.
본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 또한, 여기서 개시된 발명과 관련하여 사용되는 "컴퓨터로 판독 가능한 매체"라는 용어가 전송 매체, 반송파 또는 다른 일시적 신호를 포함하지 않는다는 것을 이해해야 한다.
컴퓨터 시스템(800)은 또한 하나 이상의 통신 네트워크에 대한 인터페이스(들)를 포함할 수 있다. 네트워크는 예를 들어 무선, 유선, 광학일 수 있다. 네트워크는 또한 지역, 광역, 대도시, 차량 및 산업, 실시간, 지연 허용(delay-tolerant) 등이 될 수 있다. 네트워크의 예로는, 이더넷, 무선 LAN과 같은 근거리 네트워크, GSM(global systems for mobile communication), 3 세대(3G), 4 세대(4G), 5 세대(5G), LTE(Long-Term Evolution) 등을 포함하는 셀룰러 네트워크, 케이블 TV, 위성 TV 및 지상파 방송 TV를 포함하는 TV 유선 또는 무선 광역 디지털 네트워크, CANBus를 포함하는 차량 및 산업 등을 들 수 있다. 특정 네트워크는 일반적으로, 특정 범용 데이터 포트 또는 주변 장치 버스(849)에 연결되는 외부 네트워크 인터페이스 어댑터가 필요하며(예를 들어, 컴퓨터 시스템(800)의 USB(universal serial bus) 포트), 다른 것들은 아래에서 설명된 바와 같이 시스템 버스에 연결됨으로써 컴퓨터 시스템(800)의 코어에 통합된다(예를 들어, PC 컴퓨터 시스템으로의 이더넷 인터페이스 또는 스마트 폰 컴퓨터 시스템으로의 셀룰러 네트워크 인터페이스). 이들 네트워크 중 임의의 것을 사용하여, 컴퓨터 시스템(800)은 다른 엔티티와 통신할 수 있다. 이러한 통신은 단방향, 수신 전용(예를 들어, 브로드 캐스트 TV), 단방향 송신 전용(예를 들어, 특정 CANbus 디바이스에 대한 CANbus) 또는, 예를 들어, 로컬 또는 광역 디지털 네트워크를 사용하는 다른 컴퓨터 시스템에 대한 양방향 통신일 수 있다. 특정 프로토콜 및 프로토콜 스택은 위에서 설명한 이들 네트워크 및 네트워크 인터페이스 각각에서 사용될 수 있다.
전술한 인간 인터페이스 디바이스, 인간 액세스 가능 저장 디바이스 및 네트워크 인터페이스는 컴퓨터 시스템(800)의 코어(840)에 연결될 수 있다.
코어(840)는, 하나 이상의 CPU(Central Processing Unit)(841), GPU(Graphics Processing Unit)(842), FPGA(Field Programmable Gate Areas) 형태의 특수 프로그램 가능 프로세싱 유닛(843), 특정 작업을 위한 하드웨어 가속기(844) 등을 포함할 수 있다. ROM(Read-only memory)(845), RAM(Random-access memory)(846), 사용자가 액세스할 수 없는 내부 하드 드라이브, SSD(solid-state drive) 등과 같은 내부 대용량 저장 디바이스(847)와 함께 이들 디바이스는 시스템 버스(848)를 통해 연결된다. 일부 컴퓨터 시스템에서, 시스템 버스(848)는 추가적인 CPU, GPU 등에 의한 확장을 가능하도록 하기 위해, 하나 이상의 물리적 플러그 형태로 액세스될 수 있다. 주변 디바이스는 코어의 시스템 버스(848)에 직접 연결되거나, 주변 장치 버스(849)를 통해 연결될 수 있다. 주변 장치 버스의 아키텍처에는 PCI(peripheral component interconnect), USB 등이 있다.
CPU(841), GPU(842), FPGA(843) 및 가속기(844)는 전술한 컴퓨터 코드를 구성할 수 있는 특정 명령을 실행할 수 있다. 그 컴퓨터 코드는 ROM(845) 또는 RAM(846)에 저장될 수 있다. 전이 데이터(transitional data)는 또한 RAM(846)에 저장될 수 있는 한편, 영구 데이터(permanent data)는 예를 들어 내부 대용량 저장장치(847)에 저장될 수 있다. 하나 이상의 CPU(841), GPU(842), 대용량 저장장치(847), ROM(845), RAM(846) 등과 밀접하게 연관될 수 있는, 캐시 메모리의 사용을 통해 임의의 메모리 디바이스에 대한 빠른 저장 및 검색이 가능해질 수 있다.
컴퓨터로 판독 가능한 매체는 다양한 컴퓨터 구현 동작을 수행하기 위한 컴퓨터 코드를 포함할 수 있다. 상기 매체 및 컴퓨터 코드는, 본 발명의 목적을 위해 특별히 설계되고 구성된 것들이거나, 컴퓨터 소프트웨어 기술 분야에서 통상의 지식을 가진 자에게 공지되어 사용 가능한 것일 수도 있다.
비 제한적인 일 예로서, 아키텍처(800)를 갖는 컴퓨터 시스템, 특히 코어(840)는, 하나 이상의 유형의, 컴퓨터로 판독 가능한 매체에 구현된 소프트웨어를 실행하는 프로세서(들)(CPU, GPU, FPGA, 가속기 등을 포함함)에 대한 결과로서 기능을 제공할 수 있다. 이러한 컴퓨터로 판독 가능한 매체는, 전술한 바와 같이 사용자가 액세스할 수 있는 대용량 저장장치와 연관될 수 있는 매체뿐 아니라, 코어 내부 대용량 저장장치(847) 또는 ROM(845)과 같은 비 일시적 성질의 코어(840)의 특정 저장장치일 수 있다. 본 발명의 다양한 실시 예들을 구현하는 소프트웨어는 이러한 디바이스에 저장되어 코어(840)에 의해 실행될 수 있다. 컴퓨터로 판독 가능한 매체는, 특정 요구에 따라, 하나 이상의 메모리 디바이스 또는 칩을 포함할 수 있다. 소프트웨어는, 코어(840) 및 특히 프로세서(CPU, GPU, FPGA 등을 포함함)가, 소프트웨어에 의해 정의된 프로세스에 따라 RAM(846)에 저장된 데이터 구조를 정의하고 이러한 데이터 구조를 수정하는 것을 포함하여, 본 명세서에서 설명되는 특정 프로세스 또는 특정 프로세스의 특정 부분을 실행하도록 할 수 있다. 추가로 또는 대안으로서, 컴퓨터 시스템은, 본 명세서에서 설명되는 특정 프로세스 또는 특정 프로세스의 특정 부분을 실행하기 위해, 소프트웨어 대신 또는 소프트웨어와 함께 동작할 수 있는 회로(예를 들어, 가속기(844))에, 하드 와이어되거나 달리 구현된 로직에 대한 결과로서 기능을 제공할 수 있다. 소프트웨어에 대한 참조는, 적절한 경우, 논리를 포함할 수 있으며 그 반대도 마찬가지이다. 컴퓨터로 판독 가능한 매체에 대한 참조는, 적절한 경우, 실행을 위한 소프트웨어를 저장하는 회로(예를 들어, 집적 회로(integrated circuit, IC)), 실행을 위한 논리를 구현하는 회로, 또는 둘 다를 포함할 수 있다. 본 발명은 하드웨어 및 소프트웨어의 임의의 적절한 조합을 포함한다.
본 개시는 몇몇 예시적인 실시 예들을 설명하였지만, 본 개시의 범위 내에 속하는, 변경, 순열(permutation) 및 다양한 대체 균등물이 존재한다. 따라서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 여기에 명시 적으로 도시되거나 설명되지 않았지만 본 개시의 원리를 구현하고 따라서 그 사상 및 범위 내에 있는 수많은 시스템 및 방법을 고안할 수 있다는 점을 이해할 수 있다.

Claims (20)

  1. 코딩된 비디오 시퀀스를 디코딩하는 방법으로서,
    상기 방법은,
    제1 타일 레이아웃에 의해 정의되는 제1 타일 경계 및 제2 타일 레이아웃에 의해 정의되는 제2 타일 경계를 포함하는 적어도 하나의 타일을 디코딩하는 단계를 포함하고,
    상기 코딩된 비디오 시퀀스는, 적어도 하나의 제1 예측 메커니즘이 상기 제1 타일 경계에 걸쳐 이용 가능하고, 상기 적어도 하나의 제1 예측 메커니즘이 상기 제2 타일 경계에 걸쳐 이용 가능하지 않음을 표시하는,
    방법.
  2. 제1항에 있어서,
    상기 제1 타일 레이아웃은 병렬화 구동(parallelization-driven) 타일 레이아웃을 포함하고,
    상기 제2 타일 레이아웃은 애플리케이션 구동(application-driven) 타일 레이아웃을 포함하는, 방법.
  3. 제1항에 있어서,
    상기 코딩된 비디오 시퀀스는, 적어도 하나의 제2 예측 메커니즘이, 상기 제1 타일 경계 및 상기 제2 타일 경계에 걸쳐 이용 가능함을 표시하는, 방법.
  4. 제1항에 있어서,
    상기 제1 타일 레이아웃은, 상기 코딩된 비디오 시퀀스의 제1 구문(syntax) 구조로 기술되고,
    상기 제2 타일 레이아웃은, 상기 코딩된 비디오 시퀀스의 제2 구문 구조로 기술되고,
    상기 제1 구문 구조는 상기 제2 구문 구조와 상이한, 방법.
  5. 제4항에 있어서,
    상기 제1 구문 구조는, 상기 제2 구문 구조보다 상위 레벨의 구문 구조인, 방법.
  6. 제5항에 있어서,
    상기 제1 구문 구조는 시퀀스 파라미터 세트(sequence parameter set)를 포함하고,
    상기 제2 구문 구조는 화상 파라미터 세트(picture parameter set)를 포함하는, 방법.
  7. 제1항에 있어서,
    상기 제1 타일 레이아웃 및 상기 제2 타일 레이아웃은, 시퀀스 파라미터 세트, 화상 파라미터 세트, 슬라이스 헤더(slice header), 화상 헤더(picture header) 또는 화상 헤더의 그룹 중 적어도 하나로 기술되는, 방법.
  8. 제1항에 있어서,
    상기 적어도 하나의 제1 예측 메커니즘은, 구문 예측, 컨텍스트 적응형 이진 산술 코딩 리셋(context-adaptive binary arithmetic coding reset), 인트라 예측(intra prediction), 화상 내 참조 블록 예측(in-picture reference block prediction), 인트라 블록 카피(intra block copy), 모션 벡터 예측(motion vector prediction) 또는 모션 보상 예측(motion compensated prediction) 중 적어도 하나를 포함하는, 방법.
  9. 제1항에 있어서,
    상기 제1 타일 레이아웃의 기술은, 상기 적어도 하나의 제1 예측 메커니즘이 상기 제1 타일 경계에 걸쳐 이용 가능함을 표시하는 구문 요소를 포함하는, 방법.
  10. 제1항에 있어서,
    상기 제2 타일 레이아웃의 기술은, 상기 적어도 하나의 제1 예측 메커니즘이 상기 제2 타일 경계에 걸쳐 이용 가능하지 않음을 표시하는 구문 요소를 포함하는, 방법.
  11. 코딩된 비디오 시퀀스를 디코딩하는 디바이스로서,
    상기 디바이스는,
    프로그램 코드를 저장하도록 구성되는 적어도 하나의 메모리; 및
    상기 프로그램 코드를 판독하고, 상기 프로그램 코드에 의해 지시되는 바와 같이 동작하도록 구성되는 적어도 하나의 프로세서를 포함하고, 상기 프로그램 코드는,
    상기 적어도 하나의 프로세서가, 제1 타일 레이아웃에 의해 정의되는 제1 타일 경계 및 제2 타일 레이아웃에 의해 정의되는 제2 타일 경계를 포함하는 적어도 하나의 타일을 디코딩하도록 구성되는 디코딩 코드를 포함하고,
    상기 코딩된 비디오 시퀀스는, 적어도 하나의 제1 예측 메커니즘이 상기 제1 타일 경계에 걸쳐 이용 가능하고, 상기 적어도 하나의 제1 예측 메커니즘이 상기 제2 타일 경계에 걸쳐 이용 가능하지 않음을 표시하는,
    디바이스.
  12. 제11항에 있어서,
    상기 제1 타일 레이아웃은 병렬화 구동 타일 레이아웃을 포함하고,
    상기 제2 타일 레이아웃은 애플리케이션 구동 타일 레이아웃을 포함하는, 디바이스.
  13. 제11항에 있어서,
    상기 코딩된 비디오 시퀀스는, 적어도 하나의 제2 예측 메커니즘이, 상기 제1 타일 경계 및 상기 제2 타일 경계에 걸쳐 이용 가능함을 표시하는, 디바이스.
  14. 제11항에 있어서,
    상기 제1 타일 레이아웃은, 상기 코딩된 비디오 시퀀스의 제1 구문 구조로 기술되고,
    상기 제2 타일 레이아웃은, 상기 코딩된 비디오 시퀀스의 제2 구문 구조로 기술되고,
    상기 제1 구문 구조는 상기 제2 구문 구조와 상이한, 디바이스.
  15. 제14항에 있어서,
    상기 제1 구문 구조는, 상기 제2 구문 구조보다 상위 레벨의 구문 구조인, 디바이스.
  16. 제15항에 있어서,
    상기 제1 구문 구조는 시퀀스 파라미터 세트를 포함하고,
    상기 제2 구문 구조는 화상 파라미터 세트를 포함하는, 디바이스.
  17. 제11항에 있어서,
    상기 적어도 하나의 제1 예측 메커니즘은, 구문 예측, 컨텍스트 적응형 이진 산술 코딩 리셋, 인트라 예측, 화상 내 참조 블록 예측, 인트라 블록 카피, 모션 벡터 예측 또는 모션 보상 예측 중 적어도 하나를 포함하는, 디바이스.
  18. 제11항에 있어서,
    상기 제1 타일 레이아웃의 기술은, 상기 적어도 하나의 제1 예측 메커니즘이 상기 제1 타일 경계에 걸쳐 이용 가능함을 표시하는 구문 요소를 포함하는, 디바이스.
  19. 제11항에 있어서,
    상기 제2 타일 레이아웃의 기술은, 상기 적어도 하나의 제1 예측 메커니즘이 상기 제2 타일 경계에 걸쳐 이용 가능하지 않음을 표시하는 구문 요소를 포함하는, 디바이스.
  20. 명령을 저장하는 비 일시적인 컴퓨터로 판독 가능한 매체로서,
    상기 명령은 하나 이상의 명령을 포함하고, 상기 하나 이상의 명령은, 코딩된 비디오 시퀀스를 디코딩하는 디바이스의 하나 이상의 프로세서에 의해 실행될 때, 상기 하나 이상의 프로세서가,
    제1 타일 레이아웃에 의해 정의되는 제1 타일 경계 및 제2 타일 레이아웃에 의해 정의되는 제2 타일 경계를 포함하는 적어도 하나의 타일을 디코딩하도록 하고,
    상기 코딩된 비디오 시퀀스는, 적어도 하나의 제1 예측 메커니즘이 상기 제1 타일 경계에 걸쳐 이용 가능하고, 상기 적어도 하나의 제1 예측 메커니즘이 상기 제2 타일 경계에 걸쳐 이용 가능하지 않음을 표시하는,
    비 일시적인 컴퓨터로 판독 가능한 매체.
KR1020207035642A 2018-07-16 2019-06-03 계층적 타일 KR102451281B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201862698534P 2018-07-16 2018-07-16
US62/698,534 2018-07-16
US16/235,918 2018-12-28
US16/235,918 US10841602B2 (en) 2018-07-16 2018-12-28 Hierarchical tiles
PCT/US2019/035113 WO2020018180A1 (en) 2018-07-16 2019-06-03 Hierarchical tiles

Publications (2)

Publication Number Publication Date
KR20210006988A true KR20210006988A (ko) 2021-01-19
KR102451281B1 KR102451281B1 (ko) 2022-10-06

Family

ID=69138583

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020207035642A KR102451281B1 (ko) 2018-07-16 2019-06-03 계층적 타일

Country Status (6)

Country Link
US (3) US10841602B2 (ko)
EP (1) EP3791584A4 (ko)
JP (1) JP7066919B2 (ko)
KR (1) KR102451281B1 (ko)
CN (2) CN112400320B (ko)
WO (1) WO2020018180A1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7427688B2 (ja) 2019-03-06 2024-02-05 シャープ株式会社 ビデオ符号化におけるタイルグループ情報をシグナリングするためのシステム及び方法
WO2020238837A1 (en) * 2019-05-25 2020-12-03 Beijing Bytedance Network Technology Co., Ltd. Coding of block vectors for intra block copy-coded blocks
WO2021087843A1 (en) * 2019-11-07 2021-05-14 Intel Corporation Heterogeneous real-time streaming and decoding of ultra-high resolution video content
EP4091321A4 (en) * 2020-02-14 2023-04-12 Beijing Bytedance Network Technology Co., Ltd. INTERACTION BETWEEN LOOP FILTERING AND VIDEO TILES

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140057188A (ko) * 2011-08-11 2014-05-12 파나소닉 주식회사 화상 부호화 방법, 화상 복호 방법, 화상 부호화 장치, 화상 복호 장치, 및, 화상 부호화 복호 장치
EP2814243A1 (en) * 2012-06-25 2014-12-17 Sony Corporation Image decoding device, image decoding method, image encoding device, and image encoding method
KR20150140360A (ko) * 2013-04-08 2015-12-15 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 관심 영역 코딩을 위한 움직임 제약된 타일 세트
US20170150186A1 (en) * 2015-11-25 2017-05-25 Qualcomm Incorporated Flexible transform tree structure in video coding
WO2018107404A1 (en) * 2016-12-14 2018-06-21 SZ DJI Technology Co., Ltd. System and method for supporting video bit stream switching

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10244239B2 (en) * 2010-12-28 2019-03-26 Dolby Laboratories Licensing Corporation Parameter set for picture segmentation
US9584819B2 (en) * 2011-10-24 2017-02-28 Qualcomm Incorporated Grouping of tiles for video coding
US9247258B2 (en) * 2011-10-26 2016-01-26 Qualcomm Incorporated Unified design for picture partitioning schemes
CN104885456A (zh) * 2012-09-18 2015-09-02 Vid拓展公司 使用图块和图块组的感兴趣区域视频编码

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140057188A (ko) * 2011-08-11 2014-05-12 파나소닉 주식회사 화상 부호화 방법, 화상 복호 방법, 화상 부호화 장치, 화상 복호 장치, 및, 화상 부호화 복호 장치
EP2814243A1 (en) * 2012-06-25 2014-12-17 Sony Corporation Image decoding device, image decoding method, image encoding device, and image encoding method
US20150023407A1 (en) * 2012-06-25 2015-01-22 Sony Corporation Image decoding device, image decoding method, image encoding device, and image encoding method
KR20150140360A (ko) * 2013-04-08 2015-12-15 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 관심 영역 코딩을 위한 움직임 제약된 타일 세트
US20170150186A1 (en) * 2015-11-25 2017-05-25 Qualcomm Incorporated Flexible transform tree structure in video coding
WO2018107404A1 (en) * 2016-12-14 2018-06-21 SZ DJI Technology Co., Ltd. System and method for supporting video bit stream switching

Also Published As

Publication number Publication date
CN112400320A (zh) 2021-02-23
US10841602B2 (en) 2020-11-17
JP7066919B2 (ja) 2022-05-13
US20210112264A1 (en) 2021-04-15
US11240519B2 (en) 2022-02-01
WO2020018180A1 (en) 2020-01-23
US20200021827A1 (en) 2020-01-16
US20220116637A1 (en) 2022-04-14
CN115529464A (zh) 2022-12-27
JP2021521752A (ja) 2021-08-26
US11962794B2 (en) 2024-04-16
KR102451281B1 (ko) 2022-10-06
EP3791584A4 (en) 2022-06-08
EP3791584A1 (en) 2021-03-17
CN112400320B (zh) 2022-08-26

Similar Documents

Publication Publication Date Title
KR102659967B1 (ko) 비디오 시퀀스의 인코딩을 위한 방법 및 장치
KR20200121904A (ko) 비디오 디코딩을 위한 방법 및 장치
KR20200132993A (ko) 멀티-라인 인트라 예측을 위한 방법 및 장치
KR102660034B1 (ko) 비디오 스트림 내의 서브-영역 분할들을 이용한 패딩 처리를 위한 방법
JP7108138B2 (ja) ランダムアクセスポイントおよびピクチャタイプの識別方法
CN113273185B (zh) 对已编码图片进行解码的方法和相关装置
KR102451281B1 (ko) 계층적 타일
CN110708558B (zh) 变换类型的表示方法和设备
JP7362876B2 (ja) 簡略化された最確モードリスト生成スキーム
KR20200131328A (ko) 가장 가능성이 높은 모드를 도출하기 위한 방법 및 장치
JP7434499B2 (ja) ネットワーク抽象化ユニットヘッダからのタイルの識別化
KR20200128146A (ko) 디코딩에서 대역외 스트림 종료 nal 유닛을 사용하는 방법 및 디바이스
KR102637503B1 (ko) 비디오 시퀀스의 디코딩 또는 인코딩을 위한 인트라-인터 예측 모드를 제어하기 위한 방법 및 장치
KR20210130804A (ko) 스케일러블 비디오 스트림에서의 출력 계층 세트 시그널링을 위한 방법
KR20210089756A (ko) 개선된 최고 확률 모드 리스트 생성 스킴
JP7237410B2 (ja) ビデオビットストリームにおけるピクチャサイズおよび分割情報の効率的なシグナリングのための方法、装置、およびコンピュータプログラム
JP7326436B2 (ja) イントラ予測におけるイントラモード選択
KR20200125743A (ko) 비디오 코딩에서의 감소된 상위 라인 버퍼에 의한 인터 예측을 위한 방법 및 장치
CN110636296B (zh) 视频解码方法、装置、计算机设备以及存储介质
JP2023542333A (ja) Dnnベースのクロスコンポーネント予測

Legal Events

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