KR20210002601A - 비디오 인코딩 및 디코딩에서의 개선된 타일 어드레스 시그널링 - Google Patents

비디오 인코딩 및 디코딩에서의 개선된 타일 어드레스 시그널링 Download PDF

Info

Publication number
KR20210002601A
KR20210002601A KR1020207033532A KR20207033532A KR20210002601A KR 20210002601 A KR20210002601 A KR 20210002601A KR 1020207033532 A KR1020207033532 A KR 1020207033532A KR 20207033532 A KR20207033532 A KR 20207033532A KR 20210002601 A KR20210002601 A KR 20210002601A
Authority
KR
South Korea
Prior art keywords
segment group
segment
bitstream
decoding
value
Prior art date
Application number
KR1020207033532A
Other languages
English (en)
Other versions
KR102569347B1 (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 KR20210002601A publication Critical patent/KR20210002601A/ko
Application granted granted Critical
Publication of KR102569347B1 publication Critical patent/KR102569347B1/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/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/146Data rate or code amount at the encoder output
    • H04N19/147Data rate or code amount at the encoder output according to rate distortion criteria
    • 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
    • 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/46Embedding additional information in the video signal during the compression process
    • H04N19/463Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/597Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/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
    • 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/172Methods 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 picture, frame or field

Landscapes

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

Abstract

비트스트림으로부터 픽처를 디코딩하기 위한 방법이 제공되며, 픽처는 복수의 세그먼트 그룹들로 파티셔닝된다. 방법은 세그먼트 그룹 인덱스 값을 세그먼트 그룹 어드레스에 매핑하는 어드레스 매핑을 형성하기 위해 비트스트림의 제1 부분을 디코딩하는 단계; 및 비트스트림의 제2 부분을 디코딩하는 단계를 포함한다. 비트스트림의 제2 부분은 복수의 세그먼트 그룹들을 표현하는 코드 워드들을 포함한다. 비트스트림의 제2 부분을 디코딩하는 단계는 제1 세그먼트 그룹을 디코딩하는 단계를 포함한다. 제1 세그먼트 그룹을 디코딩하는 단계는 1) 제1 세그먼트 그룹에 대한 제1 세그먼트 그룹 인덱스 값을 디코딩하는 단계; 2) 제1 세그먼트 그룹 인덱스 값 및 어드레스 매핑에 기초하여 제1 세그먼트 그룹에 대한 제1 세그먼트 그룹 어드레스를 결정하는 단계; 3) 제1 세그먼트 그룹 어드레스에 기초하여 제1 세그먼트 그룹에 대한 제1 공간 위치를 결정하는 단계 - 제1 공간 위치는 픽처 내의 제1 세그먼트 그룹의 위치를 표현함 -; 및 4) 제1 세그먼트 그룹에 대한 적어도 하나의 샘플 값을 디코딩하고, 적어도 하나의 샘플 값을 제1 공간 위치에 의해 주어지는 디코딩된 픽처 내의 위치에 할당하는 단계를 포함한다.

Description

비디오 인코딩 및 디코딩에서의 개선된 타일 어드레스 시그널링
비디오 인코딩 및 디코딩과 관련된 실시예들이 개시된다.
고효율 비디오 코딩(High Efficiency Video Coding)(HEVC)은 시간적 및 공간적 예측을 모두 활용하는 MPEG 및 ITU-T에 의해 표준화된 블록-기반 비디오 코덱이다. 인코더에서, 원래 픽셀 데이터와 예측된 픽셀 데이터 사이의 차이(잔차(residual)로 지칭됨)는 예측 모드 및 모션 벡터들과 같은 필요한 예측 파라미터들(이러한 예측 파라미터들도 엔트로피-코딩됨)과 함께 송신되기 전에 주파수 도메인으로 변환되고, 양자화된 다음, 엔트로피-코딩된다. 변환된 잔차들을 양자화함으로써, 비트 레이트와 비디오 품질 사이의 트레이드오프가 제어될 수 있다. 디코더는 엔트로피 디코딩, 역 양자화 및 역변환을 수행하여 잔차를 획득한 다음, 잔차를 인트라- 또는 인터-예측에 더하여 픽처(picture)를 재구성한다.
MPEG 및 ITU-T는 JVET(Joint Video Exploratory Team) 내에서 HEVC의 후속 작업을 수행하고 있다. 개발 중인 이 비디오 코덱의 이름은 VVC(Versatile Video Coding)이다.
드래프트 VVC 비디오 코딩 표준은 QTBT+TT(quadtree-plus-binary-tree-plus-ternary-tree block structure)로 지칭되는 블록 구조를 사용하며, 여기서 각각의 픽처는 먼저 CTU(coding tree unit, 코딩 트리 유닛)들로 불리는 정사각형 블록들로 파티셔닝된다. 모든 CTU들의 사이즈는 동일하며, 파티셔닝은 이를 제어하는 임의의 신택스(syntax) 없이 수행된다. 각각의 CTU는 정사각형 또는 직사각형 형상들 중 어느 것을 가질 수 있는 CU(coding unit, 코딩 유닛)들로 추가로 파티셔닝된다. CTU는 먼저 쿼드-트리 구조에 의해 파티셔닝된 후, CU들을 형성하기 위해 이진 구조로 수직 또는 수평으로 동일한 사이즈의 파티션들로 추가로 파티셔닝될 수 있다. 따라서, 블록은 정사각형 또는 직사각형 형상 중 어느 것을 가질 수 있다. 쿼드 트리 및 이진 트리의 깊이는 비트스트림의 인코더에 의해 설정될 수 있다. QTBT를 사용하여 CTU를 분할하는 예가 도 1에 예시되어 있다. 구조의 TT(ternary tree) 부분은 CU를 2개의 동일한 사이즈의 파티션 대신 3개의 파티션으로 분할할 수 있는 가능성을 추가하고, 이것은 픽처의 컨텐츠 구조에 더 잘 맞는 블록 구조를 사용할 수 있는 가능성들을 증가시킨다.
드래프트 VVC 비디오 코딩 표준은 픽처를 직사각형의 공간-독립 영역들로 분할하는 타일들( tiles)로 불리는 도구를 포함한다. 드래프트 VVC 코딩 표준의 타일들은 HEVC에서 사용되는 타일들과 매우 유사한다. 타일들을 사용하면, VVC의 픽처는 샘플들의 행들 및 열들로 파티셔닝될 수 있으며, 여기서 타일은 행과 열의 교차점이다. 도 2는 4개의 타일 행 및 5개의 타일 열을 사용하는 타일 파티셔닝의 예를 도시하며, 그 결과, 픽처에 대해 총 20개의 타일이 생성된다.
타일 구조는 행들의 두께들 및 열들의 너비들을 지정함으로써 픽처 파라미터 세트(picture parameter set)(PPS)에서 시그널링된다. 개별 행들 및 열들은 상이한 사이즈들을 가질 수 있지만, 파티셔닝은 항상 전체 픽처에 걸쳐 왼쪽에서 오른쪽으로, 위에서 아래로 각각 스패닝된다.
드래프트 VVC 표준에서 타일 구조를 지정하는 데 사용되는 PPS 신택스가 표 1에 나열되어 있다. 먼저, 타일들이 사용되는지 여부를 나타내는 플래그 single_tile_in_pic_flag가 있다. 플래그가 0과 동일하게 설정되는 경우, 타일 열들 및 행들의 수가 지정된다. uniform_tile_spacing_flag는 열 너비들 및 행 높이들이 명시적으로 시그널링되는지 여부 또는 타일 테두리들을 균등하게 이격하기 위해 미리-정의된 방법이 사용되어야 하는지 여부를 지정하는 플래그이다. 명시적 시그널링이 나타나는 경우, 열 너비들이 순차적으로 시그널링된 후, 행 높이들이 시그널링된다. 마지막으로, loop_filter_across_tiles_enabled_flag는 타일 경계들을 가로지르는 루프 필터들이 픽처의 모든 타일 경계들에 대해 턴온되는지 또는 턴오프되는지를 지정한다. 타일 신택스는 또한 원시 바이트 시퀀스 페이로드(raw byte sequence payload)(RBSP) 후행 비트들도 포함한다.
Figure pct00001
동일한 픽처의 타일들 사이에는 디코딩 의존성이 없다. 이것은 인트라-예측, 엔트로피 코딩을 위한 컨텍스트 선택 및 모션 벡터 예측을 포함한다. 한 가지 예외는 일반적으로 타일들 사이에서 인-루프 필터링 의존성들은 허용된다는 것이다.
VVC에서 코딩된 픽처의 비트들은 tile_group_layer_rbsp() 데이터 청크들로 파티셔닝되며, 여기서 각각의 이러한 청크는 그 자체 그룹 네트워크 추상화 계층(network abstraction layer)(NAL) 유닛으로 캡슐화된다. 데이터 청크는 타일 그룹 헤더 및 타일 그룹 데이터로 구성되며, 여기서 타일 그룹 데이터는 정수 개의 코딩된 완전한 타일들로 구성된다. 표 2는 관련 드래프트 VVC 사양 표준 신택스를 보여준다. tile_group_header() 및 tile_group() 데이터 신택스가 아래에서 추가로 설명된다.
Figure pct00002
타일 그룹 헤더는 tile_group_pic_parameter_set_id 신택스 엘리먼트로 시작한다. 이 엘리먼트는 활성화되고 타일 그룹을 디코딩하는 데 사용되어야 하는 픽처 파라미터 세트(PPS)를 지정한다(표 1 참조). 타일 그룹 어드레스 코드 워드는 타일 그룹에서 제1 타일의 타일 어드레스를 지정한다. 어드레스는 0 내지 n-1 사이의 숫자로서 시그널링되며, 여기서 n은 픽처의 타일들의 수이다. 예를 들어, 도 2를 사용하면, 타일들의 수는 20개이므로, 이 픽처에 대한 유효한 타일 그룹 어드레스 값들은 0 내지 19이다. 타일 어드레스는 래스터 스캔 순서로 타일들을 지정하고, 도 2의 하단 부분에 도시되어 있다. 디코더는 이 어드레스 값을 디코딩하고, 활성 PPS로부터 디코딩된 타일 구조 정보를 사용함으로써, 디코더는 픽처에서 제1 타일의 공간 좌표들을 도출할 수 있다. 예를 들어, 도 2의 타일들이 모두 256x256 루마 샘플들과 동일한 사이즈를 갖는다고 가정하는 경우, 8의 타일 어드레스는 타일 그룹의 제1 타일의 y-좌표가 int(8/5)*256=1*256=256이고, x-좌표가 루마 샘플들에서 (8%5)*256=3*256=768임을 의미한다.
타일 그룹 헤더의 다음 코드 워드인 num_tiles_in_tile_group_minus1은 타일 그룹에 존재하는 타일들의 수를 지정한다. 타일 그룹에 2개 이상의 타일이 있는 경우, 제1 타일을 제외한 타일들의 엔트리 포인트들이 시그널링된다. 먼저, 각각의 오프셋들을 시그널링하는 데 사용되는 비트들의 수를 지정하는 코드 워드 offset_len_minus1이 있다. 그런 다음, 엔트리 포인트 오프셋 코드 워드들 entry_point_offset_minus1의 리스트가 존재한다. 이들은 병렬로 디코딩하기 위해 디코더에 의해 각각의 타일의 시작 포인트를 찾는 데 사용될 수 있는 비트스트림의 바이트 오프셋들을 지정한다. 이러한 오프셋들이 없으면, 디코더는 각각의 타일이 비트스트림에서 시작하는 위치를 찾기 위해 타일 데이터를 구문 분석해야 할 것이다. 타일 그룹의 제1 타일은 타일 그룹 헤더 바로 뒤에 있으므로, 해당 타일에 대해 전송되는 바이트 오프셋이 없다. 이것은 오프셋들의 수가 타일 그룹의 타일들의 수보다 하나 적다는 것을 의미한다.
Figure pct00003
타일 그룹 데이터는 타일 그룹의 모든 CTU들을 포함한다. 첫째, 타일 그룹의 모든 타일들에 대한 for 루프가 있다. 해당 루프 내에는, 타일의 모든 CTU들에 대한 for 루프가 있다. 타일 행 높이들 및 타일 열 너비들이 동일할 필요가 없기 때문에, 상이한 타일들에서 CTU들의 수는 상이할 수 있다는 것에 유의하도록 한다. 엔트로피-코딩 이유들로 인해, 각각의 타일의 끝에는 1로 설정된 비트가 있다. 각각의 타일은 바이트 정렬로 끝나며, 이는 타일 그룹의 각각의 타일에 대한 데이터가 비트스트림의 짝수 바이트 어드레스에서 시작됨을 의미한다. 이것은 엔트리 포인트들이 바이트들의 수로 지정되는 것을 필요로 한다. 타일 그룹 헤더도 바이트 정렬로 끝난다는 것에 유의하도록 한다.
Figure pct00004
타일들에 대한 헤더 오버헤드는 어드레스 시그널링, 타일 그룹의 타일들의 수, 바이트 정렬들 및 각각의 타일에 대한 엔트리 포인트 오프셋들로 구성된다. 드래프트 VVC 표준에서는, 타일들이 인에이블될 때, 타일 그룹 헤더에 엔트리 포인트 오프셋들을 포함해야 한다.
엔트리 포인트 오프셋들은 또한 타일 그룹들 또는 타일들의 추출 및 스티칭을 단순화하여, 이들을 출력 스트림으로 재구성한다. 이것은 타일 그룹들 또는 타일들을 시간적으로 독립적으로 만들기 위해 일부 인코더-측 제약 조건들을 필요로 한다. 인코더 제약 조건들 중 하나는 타일 그룹 또는 타일에 대한 모션 보상이 단지 이전 픽처들의 공간적으로 같은 위치에 있는 영역들에 포함된 샘플들만을 사용하도록 모션 벡터들이 제약될 필요가 있다는 것이다. 또 다른 제약 조건은 이러한 프로세스가 같은 위치에 있지 않은 영역들과 시간적으로 독립적이 되도록 TMVP(temporal motion vector prediction)를 제약하는 것이다. 완전한 독립성을 위해, 타일 그룹들 또는 타일들 사이의 인-루프 필터링을 디스에이블하는 것도 필요하다.
타일들은 HMD(head-mounted display) 디바이스들을 사용하여 소비하도록 의도되는 360도 비디오의 추출 및 스티칭에 때때로 사용된다. 오늘날의 HMD 디바이스들을 사용할 때의 시야는 전체 구의 약 20%로 제한되며, 이는 전체 360도 비디오의 20%만이 사용자에 의해 소비됨을 의미한다. 전체 360도 비디오 구가 HMD 디스플레이에 이용 가능하게 된 다음, 디바이스가 사용자를 위해 렌더링되는 부분을 크롭하는 것이 일반적이다. 해당 부분, 즉, 사용자가 보는 구의 어떤 부분을 뷰포트(viewport)라고 한다. 잘 알려진 자원들의 최적화는 HMD 디바이스 비디오 시스템이 머리 움직임들 및 사용자가 보고 있는 방향을 인식하게 하여, 사용자에게 렌더링되지 않은 비디오 샘플들을 프로세싱하는 데 더 적은 자원들이 소비되도록 하는 것이다. 여기의 자원들은 서버로부터 클라이언트로의 대역폭 또는 디바이스의 디코딩 능력일 수 있다. 현재의 기술 상태보다 더 큰 시야를 가진 미래의 HMD 디바이스들의 경우, 인간 비전 시스템은 중앙 비전 영역에서 더 높은 이미지 품질을 요구하므로 불균일한 자원 할당이 여전히 유용할 것이고(약 18˚의 수평 뷰), 이것은 주변 영역의 이미지 품질에 대한 요구를 더 낮춘다(편안한 수평 시야를 위해 약 120˚ 이상).
ROI(Region of Interest)에 대한 자원들을 최적화하는 것은 타일들에 대한 또 다른 사용 사례이다. ROI는 컨텐츠에서 지정될 수도 있고, 또는 시선 추적과 같은 방법들에 의해 추출될 수 있다.
필요한 자원들의 양을 감소시키기 위해 머리 움직임들을 사용하는 하나의 최첨단 방법은 타일들을 사용하는 것이다. 이것은 먼저 비디오 시퀀스를 여러 번 인코딩함으로써 수행될 수 있으며, 여기서 타일 파티셔닝 구조는 모든 인코딩들에서 동일하다. 인코딩들은 상이한 비디오 품질들로 수행되며, 그 결과, 적어도 하나의 고품질 인코딩 및 하나의 저품질 인코딩이 생성된다. 이것은, 특정 시점의 각각의 타일 위치에 대해, 적어도 하나의 고품질 타일 표현 및 적어도 하나의 저품질 타일 표현이 있음을 의미한다. 고품질 타일과 저품질 타일 사이의 차이는 고품질 타일이 저품질 타일보다 높은 비트레이트로 인코딩되거나, 또는 고품질 타일이 저품질 타일보다 해상도가 높다는 것일 수 있다.
도 3은 비디오를 고품질 타일들을 갖는 하나의 스트림(302) 및 저품질 타일들을 갖는 다른 스트림(304)으로 인코딩하는 예를 도시한다. 여기서는, 각각의 타일이 그 자체 타일 그룹에 있다고 가정한다. 타일들은 여기서 흰색 텍스트를 사용하여 도시되어 있는 래스터 스캔 순서로 번호가 매겨진 VVC 드래프트로 되어 있다. 이러한 타일 번호들은 타일 그룹 어드레스들로서 사용된다. 사용자가 보고 있는 위치에 따라, 클라이언트는 사용자가 보고 있는 위치에 대응하는 타일들은 높은 품질로 수신되고 사용자가 보고 있지 않은 타일들은 낮은 품질로 수신되도록 상이한 품질들의 타일들을 요청한다. 그런 다음, 클라이언트는 비트스트림 도메인에서 타일들을 함께 스티칭하고, 출력 비트스트림을 비디오 디코더에 공급한다. 예를 들어, 도 3은 스티칭 후의 출력 스트림(306)을 도시하며, 여기서 타일 열들(310 및 316)(2개의 외부 열)은 낮은 품질 스트림(304)으로부터의 타일들로 구성되고, 타일 열들(3123 및 316)(2개의 내부 열)은 높은 품질 스트림(302)으로부터의 타일들로 구성된다. 출력 픽처의 너비가 입력들보다 작다는 것에 유의하도록 한다. 그 이유는 여기서는 사용자가 보고 있는 뒤쪽 영역에 대해 타일들이 전혀 요청되지 않는다고 가정하기 때문이다.
임의의 수정들 없이 임의의 표준-준수 디코더가 출력 스트림을 디코딩하는 데 사용될 수 있도록 출력 비트스트림이 비트스트림 사양(예를 들어, 미래에 공개되는 VVC 사양)과 호환되도록 스티칭이 수행되는 것이 중요하다. 도 3에 도시된 스티칭 예가 VVC 드래프트 사양을 준수하려면, 타일 그룹 어드레스들(타일 그룹 헤더의 tile_group_address 코드 워드들)이 스티처에 의해 업데이트되어야 한다. 예를 들어, 출력 픽처의 우측 하단 타일 그룹에 대한 타일 그룹 어드레스는 15와 동일하게 설정되어야 하고, 입력 저품질 및 고품질 스트림의 해당 타일에 대한 타일 그룹 어드레스는 19와 동일하다.
예를 들어, 타일들을 함께 스티칭하는 것을 개선하기 위해 비디오 인코딩 및 디코딩을 개선하는 실시예들이 제공된다. 본 개시내용은 또한 세그먼트 그룹들, 세그먼트들 및 유닛들이라는 용어들을 도입한다. 여기서 사용되는 바와 같이, 세그먼트라는 용어는 타일들(VVC 드래프트에서 사용되는 것)보다 더 일반적인 용어이며, 실시예들은 HEVC 및 VVC 드래프트로부터 알려진 타일 파티션들뿐만 아니라 상이한 종류들의 픽처 파티셔닝 방식들에 적용 가능하다는 점에 유의하도록 한다. 본 명세서에서 사용되는 바와 같이, 이러한 드래프트들로부터의 "타일"은 세그먼트의 한 예이지만, 세그먼트들의 다른 예들도 있을 수 있다.
도 4에 도시된 바와 같이, 비디오 스트림의 단일 픽처(402)는 다양한 방식들로 파티셔닝된다. 예를 들어, 픽처(402)는 유닛들(410), 세그먼트들(412) 및 세그먼트 그룹들(414)로 파티셔닝된다. 도시된 바와 같이, 픽처(402)는 64개의 유닛(410)(도 4의 상단), 16개의 세그먼트(412)(도 4의 중간) 및 8개의 세그먼트 그룹(414)(도 4의 하단)을 포함한다. 도시된 바와 같이, 픽처(402)의 파티션 구조(413)(파선들로 도시됨)는 세그먼트들(412)을 정의한다. 각각의 세그먼트(412)는 다수의 유닛들(410)을 포함한다. 세그먼트(412)는 정수 개의 완전한 유닛들 또는 완전한 유닛 및 부분적인 유닛들의 조합을 포함할 수 있다. 다수의 세그먼트들(412)이 세그먼트 그룹(414)을 형성한다. 세그먼트 그룹은 래스터 스캔 순서로 세그먼트들을 포함할 수 있다. 대안적으로, 세그먼트 그룹은 함께 직사각형을 형성하는 임의의 세그먼트 그룹을 포함할 수 있다. 대안적으로, 세그먼트 그룹은 임의의 세그먼트 서브세트로 구성될 수 있다.
도 5에 도시된 바와 같이, 픽처(402)는 파티션 구조(파선들로 도시됨)에 의해 다수의 세그먼트들로 파티셔닝될 수 있으며, 여기서는 세그먼트들(502 및 504)을 포함하는 4개의 세그먼트가 도시되어 있다. 도 5는 또한 3개의 유닛(510, 512 및 514)을 도시하고, 이들 유닛들 중 2개(512 및 514)는 현재 세그먼트(504)에 속하고, 유닛들 중 하나(510)는 상이한 이웃 세그먼트(502)에 속한다. 세그먼트들은 다른 세그먼트들에 대해 독립적이며, 이는, 유닛들을 디코딩할 때, 세그먼트 경계들이 픽처 경계들과 유사하게 핸들링됨을 의미한다. 이것은, 예를 들어, 인트라-예측 모드들의 도출 및 양자화 파라미터 값들의 도출과 같은 디코딩 동안의 엘리먼트들의 도출 프로세스에 영향을 미친다.
인트라-예측 모드들은 본 기술에서 잘 알려져 있으며, 샘플 예측을 위해 현재 픽처의 이전에 디코딩된 샘플들로부터의 예측만을 사용하는 유닛들에 대해 사용되고 시그널링된다. 현재 유닛(512)에서 인트라-예측 모드의 도출은 다른 이웃 유닛들(514)에서 이전에 도출된 인트라-예측 모드들에 의존하는 것이 일반적이다. 세그먼트들이 독립적인 경우, 현재 유닛(512)에서 인트라-예측 모드의 도출은 현재 세그먼트(504)에 속하는 유닛들(514)에서 이전에 도출된 인트라-예측 모드들에만 의존할 수 있고, 상이한 세그먼트(502)에 속하는 임의의 유닛(510)에서의 임의의 인트라-예측 모드에는 의존하지 않을 수 있다.
이것은 도 5의 파티션 구조가 상이한 세그먼트(502)의 유닛들(510)의 인트라-예측 모드들이 현재 세그먼트(504)의 유닛들(512)에 대한 인트라-예측 모드의 도출에 사용 가능할 수 없게 한다는 것을 의미한다. 따라서, 세그먼트 경계는 현재 세그먼트(504)의 유닛들(512)에 대한 픽처 경계로서 인트라-예측 모드 도출에 대해 동일한 효과를 가질 수 있다. 해당 유닛들이 동일한 세그먼트에 속하게 되었을 경우, 상이한 세그먼트(502)의 일부 유닛들(510)에서의 모드는 현재 세그먼트(504)의 유닛(512)에서의 인트라-예측 모드의 도출에 잘 사용되었을 수 있다는 것에 유의하도록 한다.
본 명세서에서 사용되는 바와 같이, 세그먼트는 (일부 경우들에서) 타일 또는 슬라이스와 동일할 수 있으며, 따라서 이러한 용어들은 상호 교환적으로 사용될 수 있다. 마찬가지로, 세그먼트 그룹은 (일부 경우들에서) 타일 그룹과 동일할 수 있고, 유닛은 (일부 경우들에서) CTU와 동일할 수 있다.
위에서 설명된 바와 같이, 프로세스들은 하나 이상의 비트스트림을 입력으로서 취하고, 하나 이상의 입력 비트스트림으로부터 타일들을 선택함으로써 출력 비트스트림을 생성하기를 원할 수 있으며, 이러한 프로세스는 스티칭 프로세스(stitching process)로 지칭될 수 있다. 기존 비디오 인코딩 및 디코딩 솔루션들의 문제는 미래에 공개되는 VVC 사양과 같은 비트스트림 사양을 준수하는 출력 비트스트림을 생성하기 위해 스티칭 프로세스에 의해 타일 그룹 계층의 데이터가 수정될 필요가 있을 수 있다는 것이다. 이것은 재기입되어야 하는 초당 패킷들의 수가 매우 많아질 수 있으므로, 스티칭을 계산적으로 매우 복잡하게 한다. 예를 들어, 60fps(frames per second)의 프레임 레이트를 고려하도록 하며, 여기서 각각의 픽처는 16개의 타일 그룹을 포함한다. 각각의 타일이 그 자체 패킷에 놓인 경우, 초당 960(=60*16)개의 패킷이 재기입될 필요가 있을 수 있다.
기존 비디오 인코딩 및 디코딩 솔루션들의 또 다른 문제는 비트스트림의 타일 그룹 계층 부분들을 수정하지 않고 비트스트림에서 타일들을 추출, 스티칭 및/또는 재배치하는 것이 불가능하다는 것이다.
실시예들은 현재 타일 어드레스 시그널링을 타일 그룹 헤더의 인덱스 값으로 대체하고 이러한 인덱스 값들 사이의 매핑을 타일 어드레스들로 전달함으로써 이러한 문제들 및 다른 문제들을 극복한다. 이러한 매핑은, 예를 들어, PPS와 같은 파라미터 세트에서 전달될 수 있다. 인코딩 동안 스티칭을 염두에 두고 인덱스 값들이 설정되는 경우, 스티칭 동안 인덱스 값들이 그대로 유지될 수 있다(예를 들어, 상이한 품질과 같은 인코딩 버전들의 경우, 인코더는 인덱스 값들이 상이한 버전들에 걸쳐 고유하다는 조건을 강제할 수 있다). 타일 그룹 어드레스들의 변경들은 파라미터 세트의 타일 어드레스들에 대한 인덱스 값들의 매핑을 수정하는 것만으로 수행될 수 있다.
비트스트림의 타일 그룹 계층 부분들을 수정하지 않고 비트스트림에서 타일들의 추출, 스티칭 및/또는 재배치를 용이하게 하기 위해, 실시예들은 파라미터 세트에 인덱스 값들과 타일 그룹의 타일들의 수 사이의 매핑을 제공하며, 여기서 인덱스는 타일 그룹 헤더에서 전송된다.
실시예들의 장점들은, 타일 그룹 헤더들이 그대로 유지되는 동안, 파라미터 세트만을 재기입함으로써 스티칭이 수행되도록 하는 것을 포함한다. 위의 60fps 예를 취하고, 파라미터 세트들이 비트스트림에서 초당 한 번 패킷으로서 전송된다고 가정하는 경우, 실시예들은 초당 961개의 패킷 대신 최대 초당 1개의 패킷을 재기입할 필요가 있을 것이다. 따라서, 스티칭의 계산 복잡성이 크게 감소된다.
제1 양태에 따르면, 비트스트림으로부터 픽처를 디코딩하기 위한 방법이 제공되며, 픽처는 복수의 세그먼트 그룹들로 파티셔닝된다. 방법은 세그먼트 그룹 인덱스 값을 세그먼트 그룹 어드레스에 매핑하는 어드레스 매핑을 형성하기 위해 비트스트림의 제1 부분을 디코딩하는 단계; 및 비트스트림의 제2 부분을 디코딩하는 단계를 포함한다. 비트스트림의 제2 부분은 복수의 세그먼트 그룹들을 표현하는 코드 워드들을 포함한다. 비트스트림의 제2 부분을 디코딩하는 단계는 제1 세그먼트 그룹을 디코딩하는 단계를 포함한다. 제1 세그먼트 그룹을 디코딩하는 단계는 1) 제1 세그먼트 그룹에 대한 제1 세그먼트 그룹 인덱스 값을 디코딩하는 단계; 2) 제1 세그먼트 그룹 인덱스 값 및 어드레스 매핑에 기초하여 제1 세그먼트 그룹에 대한 제1 세그먼트 그룹 어드레스를 결정하는 단계; 3) 제1 세그먼트 그룹 어드레스에 기초하여 제1 세그먼트 그룹에 대한 제1 공간 위치를 결정하는 단계 - 제1 공간 위치는 픽처 내의 제1 세그먼트 그룹의 위치를 표현함 -; 및 4) 제1 세그먼트 그룹에 대한 적어도 하나의 샘플 값을 디코딩하고, 적어도 하나의 샘플 값을 제1 공간 위치에 의해 주어지는 디코딩된 픽처 내의 위치에 할당하는 단계를 포함한다.
일부 실시예들에서, 어드레스 매핑은 어레이 및/또는 리스트, 어레이들 및/또는 리스트들의 병렬 세트, 해시 맵, 및 연관 어레이(associative array) 중 하나 이상을 포함한다. 실시예들에서, 어드레스 매핑을 형성하기 위해 비트스트림의 제1 부분을 디코딩하는 단계는 비트스트림으로부터 리스트 값들의 수를 나타내는 제1 값을 디코딩하는 단계; 및 비트스트림으로부터 리스트 값들의 수를 디코딩함으로써 리스트를 형성하는 단계 - 리스트 값들의 수는 제1 값과 동일함 - 를 포함한다. 실시예들에서, 제1 세그먼트 그룹 인덱스 값 및 어드레스 매핑에 기초하여 제1 세그먼트 그룹에 대한 제1 세그먼트 그룹 어드레스를 결정하는 단계는 제1 세그먼트 그룹 인덱스 값을 사용하여 룩업 동작을 수행하는 단계를 포함한다.
일부 실시예들에서, 어드레스 매핑을 형성하기 위해 비트스트림의 제1 부분을 디코딩하는 단계는 비트스트림으로부터 리스트 값들의 수를 나타내는 제1 값을 디코딩하는 단계; 비트스트림으로부터 키-값 쌍들 k 및 v를 표현하는 값들의 수를 디코딩함으로써 제1 리스트(KEY) 및 제2 리스트(VALUE)를 형성하는 단계 - 키-값 쌍들의 수는 제1 값과 동일함 - 를 포함한다. 제1 리스트는 키들 k를 포함하고 제2 리스트는 키-값 쌍들의 값들 v를 포함하고, 제1 리스트 및 제2 리스트의 정렬은, 주어진 키-값 쌍에 대해, 제1 리스트의 주어진 키 k에 대한 인덱스가 제2 리스트의 주어진 값 v에 대한 인덱스에 대응하도록 된다. 실시예들에서, 어드레스 매핑을 형성하기 위해 비트스트림의 제1 부분을 디코딩하는 단계는 비트스트림으로부터 해시 값들의 수를 나타내는 제1 값을 디코딩하는 단계; 비트스트림으로부터 키-값 쌍들 k 및 v를 표현하는 값들의 수를 디코딩함으로써 해시 맵을 형성하는 단계 - 키-값 쌍들의 수는 제1 값과 동일하고, 주어진 키-값 쌍에 대해, 주어진 키 k에 대한 인덱스는 해시 맵에 의해 주어진 값 v에 매핑됨 - 를 포함한다.
일부 실시예들에서, 제1 세그먼트 그룹 인덱스 값 및 어드레스 매핑에 기초하여 제1 세그먼트 그룹에 대한 제1 세그먼트 그룹 어드레스를 결정하는 단계는 제1 리스트(KEY[i])의 인덱스에 대응하는 값이 제1 세그먼트 그룹 인덱스 값과 매치되도록 인덱스(i)를 결정하는 단계; 및 제1 세그먼트 그룹 어드레스를 제2 리스트(VALUE[i])의 인덱스에 대응하는 값이 되도록 결정하는 단계를 포함한다. 일부 실시예들에서, 제1 세그먼트 그룹 인덱스 값 및 어드레스 매핑에 기초하여 제1 세그먼트 그룹에 대한 제1 세그먼트 그룹 어드레스를 결정하는 단계는 제1 세그먼트 그룹 인덱스 값을 사용하여 해시 룩업 동작을 수행하는 단계를 포함한다. 일부 실시예들에서, 디코딩되는 키-값 쌍들 k 및 v를 표현하는 값들은 키 k를 표현하는 델타값을 포함하여, 제1 키-값 쌍의 경우, 키 k는 델타값에 의해 결정되고, 다른 키-값 쌍들의 경우, 키 k는 델타값을 이전에 결정된 키 값에 더함으로써 결정되어, 현재 키 k를 생성한다.
일부 실시예들에서, 세그먼트 그룹들은 타일 그룹들, 서브픽처들 및/또는 슬라이스들에 대응한다. 일부 실시예들에서, 세그먼트 그룹은 하나 이상의 세그먼트를 포함하고, 일부 실시예들에서, 세그먼트 그룹은 단지 하나의 세그먼트를 포함한다.
실시예들에서, 세그먼트 그룹들은 타일 그룹들에 대응한다. 실시예들에서, 비트스트림의 제1 부분은 파라미터 세트에 포함되고, 방법은 추가 세그먼트 그룹들을 디코딩하는 단계를 추가로 포함하고, 어드레스 매핑은 추가 세그먼트 그룹들을 디코딩하는 데 사용된다. 실시예들에서, 비트스트림의 제1 부분은 파라미터 세트에 포함되고, 방법은 추가 픽처들을 디코딩하는 단계를 추가로 포함하고, 어드레스 매핑은 추가 픽처들을 디코딩하는 데 사용된다.
제2 양태에 따르면, 비트스트림으로부터 픽처를 디코딩하기 위한 방법이 제공되며, 픽처는 복수의 세그먼트 그룹들로 파티셔닝된다. 방법은 세그먼트 그룹 인덱스 값을 제1 세그먼트 그룹에 대해 디코딩되는 세그먼트들의 수에 매핑하는 사이즈 매핑을 형성하기 위해 비트스트림의 제1 부분을 디코딩하는 단계; 및 비트스트림의 제2 부분을 디코딩하는 단계를 포함한다. 비트스트림의 제2 부분은 복수의 세그먼트 그룹들을 표현하는 코드 워드들을 포함한다. 비트스트림의 제2 부분을 디코딩하는 단계는 제1 세그먼트 그룹을 디코딩하는 단계를 포함한다. 제1 세그먼트 그룹을 디코딩하는 단계는 1) 제1 세그먼트 그룹에 대한 제1 세그먼트 그룹 인덱스 값을 디코딩하는 단계; 2) 제1 세그먼트 그룹 인덱스 값 및 사이즈 매핑에 기초하여 제1 세그먼트 그룹에 대한 제1 사이즈를 결정하는 단계; 및 3) 디코딩된 픽처를 형성하기 위해 세그먼트들의 수를 디코딩하는 단계 - 세그먼트들의 수는 제1 사이즈와 동일함 - 를 포함한다.
일부 실시예들에서, 사이즈 매핑은 어레이 및/또는 리스트, 어레이들 및/또는 리스트들의 병렬 세트, 해시 맵, 및 연관 어레이 중 하나 이상을 포함한다. 실시예들에서, 사이즈 매핑을 형성하기 위해 비트스트림의 제1 부분을 디코딩하는 단계는 비트스트림으로부터 리스트 값들의 수를 나타내는 제1 값을 디코딩하는 단계; 및 비트스트림으로부터 리스트 값들의 수를 디코딩함으로써 리스트를 형성하는 단계 - 리스트 값들의 수는 제1 값과 동일함 - 를 포함한다. 실시예들에서, 제1 세그먼트 그룹 인덱스 값 및 사이즈 매핑에 기초하여 제1 세그먼트 그룹에 대한 제1 사이즈를 결정하는 단계는 제1 세그먼트 그룹 인덱스 값을 사용하여 룩업 동작을 수행하는 단계를 포함한다.
일부 실시예들에서, 세그먼트 그룹들은 타일 그룹들, 서브픽처들 및/또는 슬라이스들에 대응한다. 일부 실시예들에서, 세그먼트 그룹은 하나 이상의 세그먼트를 포함하고, 일부 실시예들에서, 세그먼트 그룹은 단지 하나의 세그먼트를 포함한다.
제3 양태에 따르면, 픽처를 비트스트림으로 인코딩하기 위한 방법이 제공되며, 픽처는 복수의 세그먼트 그룹들로 파티셔닝된다. 방법은 세그먼트 그룹 인덱스 값을 복수의 세그먼트 그룹들에 대한 세그먼트 그룹 어드레스에 매핑하는 어드레스 매핑을 결정하는 단계; 비트스트림의 제1 부분을 인코딩하는 단계; 및 비트스트림의 제2 부분을 인코딩하는 단계를 포함한다. 비트스트림의 제1 부분을 인코딩하는 단계는 세그먼트 그룹 인덱스 값을 세그먼트 그룹 어드레스에 매핑하는 어드레스 매핑을 형성하는 코드 워드들을 생성하는 단계를 포함한다. 비트스트림의 제2 부분을 인코딩하는 단계는 복수의 세그먼트 그룹들을 표현하는 코드 워드들을 생성하는 단계를 포함한다. 비트스트림의 제2 부분을 인코딩하는 단계는 제1 세그먼트 그룹을 인코딩하는 단계를 포함한다. 제1 세그먼트 그룹을 인코딩하는 단계는 1) 제1 세그먼트 그룹에 대한 제1 세그먼트 그룹 어드레스로부터 제1 세그먼트 그룹 인덱스 값을 결정하는 단계 - 어드레스 매핑은 제1 세그먼트 그룹 인덱스 값을 제1 세그먼트 그룹 어드레스에 매핑함 -; 2) 제1 세그먼트 그룹에 대한 제1 세그먼트 그룹 인덱스 값을 인코딩하는 단계; 및 3) 제1 세그먼트 그룹에 대한 샘플 값들을 인코딩하는 단계를 포함한다.
제4 양태에 따르면, 픽처를 비트스트림으로 인코딩하기 위한 방법이 제공되며, 픽처는 복수의 세그먼트 그룹들로 파티셔닝된다. 방법은 세그먼트 그룹 인덱스 값을 제1 세그먼트 그룹에 대해 인코딩되는 세그먼트들의 수에 매핑하는 사이즈 매핑을 결정하는 단계; 비트스트림의 제1 부분을 인코딩하는 단계; 및 비트스트림의 제2 부분을 인코딩하는 단계를 포함한다. 비트스트림의 제1 부분을 인코딩하는 단계는 세그먼트 그룹 인덱스 값을 제1 세그먼트 그룹에 대해 인코딩되는 세그먼트들의 수에 매핑하는 사이즈 매핑을 형성하는 코드 워드들을 생성하는 단계를 포함한다. 비트스트림의 제2 부분을 인코딩하는 단계는 복수의 세그먼트 그룹들을 표현하는 코드 워드들을 생성하는 단계를 포함한다. 비트스트림의 제2 부분을 인코딩하는 단계는 제1 세그먼트 그룹을 인코딩하는 단계를 포함한다. 제1 세그먼트 그룹을 인코딩하는 단계는 1) 제1 세그먼트 그룹에 대한 제1 세그먼트 그룹 인덱스 값을 결정하는 단계 - 사이즈 매핑은 제1 세그먼트 그룹에 대한 제1 세그먼트 그룹 인덱스 값을 제1 사이즈에 매핑하고, 제1 사이즈는 제1 세그먼트 그룹에 대해 인코딩되는 세그먼트들의 수임 -; 2) 제1 세그먼트 그룹에 대한 제1 세그먼트 그룹 인덱스 값을 인코딩하는 단계; 및 3) 제1 세그먼트 그룹에 대한 세그먼트들의 수를 인코딩하는 단계 - 세그먼트들의 수는 제1 사이즈와 동일함 - 를 포함한다.
일부 실시예들에서, 제1 세그먼트 그룹 인덱스 값을 인코딩하는 단계는 제1 세그먼트 그룹 인덱스 값을 표현하는 하나 이상의 코드 워드를 생성하는 단계를 포함한다.
제5 양태에 따르면, 디코더가 제1 또는 제2 양태들의 실시예들 중 임의의 것을 수행하도록 적응된다.
제6 양태에 따르면, 인코더가 제3 또는 제4 양태들의 실시예들 중 임의의 것을 수행하도록 적응된다.
일부 실시예들에서, 인코더 및 디코더는 동일한 노드에 같이 위치될 수도 있고, 또는 이들은 서로 분리될 수도 있다. 실시예들에서, 인코더 및/또는 디코더는 네트워크 노드의 일부이고, 실시예들에서, 인코더 및/또는 디코더는 사용자 장비의 일부이다.
제7 양태에 따르면, 비트스트림으로부터 픽처를 디코딩하기 위한 디코더가 제공되며, 픽처는 복수의 세그먼트 그룹들로 파티셔닝된다. 디코더는 디코딩 유닛 및 결정 유닛을 포함한다. 디코딩 유닛은 세그먼트 그룹 인덱스 값을 세그먼트 그룹 어드레스에 매핑하는 어드레스 매핑을 형성하기 위해 비트스트림의 제1 부분을 디코딩하도록 구성되고, 비트스트림의 제2 부분을 디코딩하도록 추가로 구성된다. 비트스트림의 제2 부분은 복수의 세그먼트 그룹들을 표현하는 코드 워드들을 포함한다. 비트스트림의 제2 부분을 디코딩하는 것은 제1 세그먼트 그룹을 디코딩하는 것을 포함한다. 제1 세그먼트 그룹을 디코딩하는 것은 1) (디코딩 유닛에 의해) 제1 세그먼트 그룹에 대한 제1 세그먼트 그룹 인덱스 값을 디코딩하는 것; 2) (결정 유닛에 의해) 제1 세그먼트 그룹 인덱스 값 및 어드레스 매핑에 기초하여 제1 세그먼트 그룹에 대한 제1 세그먼트 그룹 어드레스를 결정하는 것; 3) (결정 유닛에 의해) 제1 세그먼트 그룹 어드레스에 기초하여 제1 세그먼트 그룹에 대한 제1 공간 위치를 결정하는 것 - 제1 공간 위치는 픽처 내의 제1 세그먼트 그룹의 위치를 표현함 -; 및 4) (디코딩 유닛에 의해) 제1 세그먼트 그룹에 대한 적어도 하나의 샘플 값을 디코딩하고, 적어도 하나의 샘플 값을 제1 공간 위치에 의해 주어지는 디코딩된 픽처 내의 위치에 할당하는 것을 포함한다.
제8 양태에 따르면, 비트스트림으로부터 픽처를 디코딩하기 위한 디코더가 제공되며, 픽처는 복수의 세그먼트 그룹들로 파티셔닝된다. 디코더는 디코딩 유닛 및 결정 유닛을 포함한다. 디코딩 유닛은 세그먼트 그룹 인덱스 값을 제1 세그먼트 그룹에 대해 디코딩되는 세그먼트들의 수에 매핑하는 사이즈 매핑을 형성하기 위해 비트스트림의 제1 부분을 디코딩하도록 구성되고, 비트스트림의 제2 부분을 디코딩하도록 추가로 구성된다. 비트스트림의 제2 부분은 복수의 세그먼트 그룹들을 표현하는 코드 워드들을 포함한다. 비트스트림의 제2 부분을 디코딩하는 것은 제1 세그먼트 그룹을 디코딩하는 것을 포함한다. 제1 세그먼트 그룹을 디코딩하는 것은 1) (디코딩 유닛에 의해) 제1 세그먼트 그룹에 대한 제1 세그먼트 그룹 인덱스 값을 디코딩하는 것; 2) (결정 유닛에 의해) 제1 세그먼트 그룹 인덱스 값 및 사이즈 매핑에 기초하여 제1 세그먼트 그룹에 대한 제1 사이즈를 결정하는 것; 및 3) (디코딩 유닛에 의해) 디코딩된 픽처를 형성하기 위해 세그먼트들의 수를 디코딩하는 것 - 세그먼트들의 수는 제1 사이즈와 동일함 - 을 포함한다.
제9 양태에 따르면, 비트스트림으로부터 픽처를 인코딩하기 위한 인코더가 제공되며, 픽처는 복수의 세그먼트 그룹들로 파티셔닝된다. 인코더는 인코딩 유닛 및 결정 유닛을 포함한다. 결정 유닛은 세그먼트 그룹 인덱스 값을 복수의 세그먼트 그룹들에 대한 세그먼트 그룹 어드레스에 매핑하는 어드레스 매핑을 결정하도록 구성된다. 인코딩 유닛은 비트스트림의 제1 부분을 인코딩하도록 구성되고, 비트스트림의 제2 부분을 인코딩하도록 추가로 구성된다. 비트스트림의 제1 부분을 인코딩하는 것은 세그먼트 그룹 인덱스 값을 세그먼트 그룹 어드레스에 매핑하는 어드레스 매핑을 형성하는 코드 워드들을 생성하는 것을 포함한다. 비트스트림의 제2 부분을 인코딩하는 것은 복수의 세그먼트 그룹들을 표현하는 코드 워드들을 생성하는 것을 포함한다. 비트스트림의 제2 부분을 인코딩하는 것은 제1 세그먼트 그룹을 인코딩하는 것을 포함한다. 제1 세그먼트 그룹을 인코딩하는 것은 1) (결정 유닛에 의해) 제1 세그먼트 그룹에 대한 제1 세그먼트 그룹 어드레스로부터 제1 세그먼트 그룹 인덱스 값을 결정하는 것 - 어드레스 매핑은 제1 세그먼트 그룹 인덱스 값을 제1 세그먼트 그룹 어드레스에 매핑함 -; 2) (인코딩 유닛에 의해) 제1 세그먼트 그룹에 대한 제1 세그먼트 그룹 인덱스 값을 인코딩하는 것; 및 3) (인코딩 유닛에 의해) 제1 세그먼트 그룹에 대한 샘플 값들을 인코딩하는 것을 포함한다.
제10 양태에 따르면, 픽처를 비트스트림으로 인코딩하기 위한 인코더가 제공되며, 픽처는 복수의 세그먼트 그룹들로 파티셔닝된다. 인코더는 인코딩 유닛 및 결정 유닛을 포함한다. 결정 유닛은 세그먼트 그룹 인덱스 값을 제1 세그먼트 그룹에 대해 인코딩되는 세그먼트들의 수에 매핑하는 사이즈 매핑을 결정하도록 구성된다. 인코딩 유닛은 비트스트림의 제1 부분을 인코딩하도록 구성되고, 비트스트림의 제2 부분을 인코딩하도록 추가로 구성된다. 비트스트림의 제1 부분을 인코딩하는 것은 세그먼트 그룹 인덱스 값을 제1 세그먼트 그룹에 대해 인코딩되는 세그먼트들의 수에 매핑하는 사이즈 매핑을 형성하는 코드 워드들을 생성하는 것을 포함한다. 비트스트림의 제2 부분을 인코딩하는 것은 복수의 세그먼트 그룹들을 표현하는 코드 워드들을 생성하는 것을 포함한다. 비트스트림의 제2 부분을 인코딩하는 것은 제1 세그먼트 그룹을 인코딩하는 것을 포함한다. 제1 세그먼트 그룹을 인코딩하는 것은 1) (결정 유닛에 의해) 제1 세그먼트 그룹에 대한 제1 세그먼트 그룹 인덱스 값을 결정하는 것 - 사이즈 매핑은 제1 세그먼트 그룹에 대한 제1 세그먼트 그룹 인덱스 값을 제1 사이즈에 매핑하고, 제1 사이즈는 제1 세그먼트 그룹에 대해 인코딩되는 세그먼트들의 수임 -; 2) (인코딩 유닛에 의해) 제1 세그먼트 그룹에 대한 제1 세그먼트 그룹 인덱스 값을 인코딩하는 것; 및 3) (인코딩 유닛에 의해) 제1 세그먼트 그룹에 대한 세그먼트들의 수를 인코딩하는 것 - 세그먼트들의 수는 제1 사이즈와 동일함 - 을 포함한다.
제11 양태에 따르면, 노드의 프로세싱 회로망에 의해 실행될 때, 노드로 하여금, 제1, 제2, 제3 및 제4 양태들 중 임의의 하나의 양태의 방법을 수행하게 하는 명령어들을 포함하는 컴퓨터 프로그램이 제공된다.
제12 양태에 따르면, 제11 양태의 임의의 실시예의 컴퓨터 프로그램을 포함하는 캐리어가 제공되며, 캐리어는 전자 신호, 광학 신호, 라디오 신호 및 컴퓨터 판독 가능 저장 매체 중 하나이다.
본 명세서에 통합되고 명세서의 일부를 형성하는 첨부 도면들은 다양한 실시예들을 예시한다.
도 1은 관련 기술에 따른 쿼드트리-플러스-이진-트리-플러스-터너리-트리 블록 구조(quadtree-plus-binary-tree-plus-ternary-tree block structure)를 예시한다.
도 2는 관련 기술에 따라 래스터 스캔 순서로 라벨링된 4개의 타일 행 및 5개의 타일 열을 사용하는 타일 파티셔닝의 예를 예시한다.
도 3은 고품질 스트림 및 저품질 스트림을 단일 출력 스트림으로 스티칭하는 예를 예시한다.
도 4는 실시예에 따른 픽처를 파티셔닝하는 예를 예시한다.
도 5는 실시예에 따른 픽처를 파티셔닝하는 예를 예시한다.
도 6은 실시예에 따른 인코딩된 비트스트림을 디코딩하는 예를 예시한다.
도 7은 실시예에 따라 2개의 입력 스트림을 단일 출력 스트림으로 스티칭하는 예를 예시한다.
도 8은 실시예에 따라 세그먼트 그룹 인덱스를 세그먼트 그룹 어드레스에 매핑하는 어드레스 매핑의 예를 예시한다.
도 9는 실시예에 따른 프로세스를 예시하는 흐름도이다.
도 10은 실시예에 따른 프로세스를 예시하는 흐름도이다.
도 11은 실시예에 따른 프로세스를 예시하는 흐름도이다.
도 12는 실시예에 따른 프로세스를 예시하는 흐름도이다.
도 13은 실시예들에 따른 인코더 및 디코더의 기능 유닛들을 도시하는 도면이다.
도 14는 실시예들에 따른 인코더 및/또는 디코더의 블록도이다.
도 6은 비트스트림(602) 및 비트스트림(602)을 디코딩한 결과인 대응하는 디코딩된 픽처(402)를 도시한다. 이 예에서의 비트스트림(602)은 파라미터 세트(604), 및 디코딩된 픽처(402)의 세그먼트 그룹(414)에 각각 대응하는 8개의 코딩된 세그먼트 그룹(606)을 포함한다. 즉, 코딩된 세그먼트 그룹들(606)은 디코딩될 때, 디코딩된 픽처(402)에서 세그먼트 그룹(414)을 생성한다. 통상적인 비트스트림은 2개 이상의 픽처를 포함하지만, 예시를 위해, 도면은 단지 하나의 픽처만을 도시한다.
파라미터 세트(604)는 세그먼트 그룹 어드레스 값들의 리스트로서 디코더에 의해 디코딩되는 신택스 엘리먼트들(616)을 포함한다. 리스트는 세그먼트 그룹 어드레스 값들의 어레이로서 구현될 수 있다. 이 설명에서, 어레이와 리스트라는 용어들은 상호 교환 가능하게 사용될 수 있다. 파라미터 세트(604)는 또한 픽처(402)가 세그먼트들(예를 들어, 도 4에 도시된 세그먼트들(412))로 파티셔닝되는 방법을 지정하는 파티션 구조(예를 들어, 도 4에 도시된 파티션 구조(413))로 디코더에 의해 디코딩되는 신택스 엘리먼트들(614)을 포함한다. 이 정보(614 및 616)는 일부 실시예들에서 동일한 파라미터 세트의 일부(도 6에 도시된 바와 같음)일 수도 있고, 또는 상이한 파라미터 세트들의 일부일 수도 있고, 또는 일부 다른 방식으로 인코딩될 수도 있다. 예를 들어, 신택스 엘리먼트들(614 및 616) 중 하나는 시퀀스 파라미터 세트의 일부일 수 있고, 다른 하나는 픽처 파라미터 세트의 일부일 수 있다. 신택스 엘리먼트들(614 및 616)은 또한 비트스트림의 임의의 곳에 배치될 수도 있고, 또는 심지어 대역 외로 전달될 수도 있다. 실시예들에서는, 신택스 엘리먼트들(614 및 616) 중 어느 것도 코딩된 세그먼트 그룹들(606)에 배치되지 않는 것이 중요하며, 예를 들어, 이에 따라, 개별 코딩된 세그먼트 그룹들(606)을 수정할 필요없이 정보가 수정될 수 있다.
각각의 코딩된 세그먼트 그룹(606)은 세그먼트 그룹 헤더(608) 및 세그먼트 그룹 데이터(608)를 포함한다. 세그먼트 그룹 데이터(608)는 세그먼트 그룹에 속하는 세그먼트들에 대한 샘플 값들로 디코딩되는 코딩된 비트들을 포함한다. 본 명세서에 설명되는 실시예들에서, 세그먼트 그룹 헤더(608)는 디코더에 의해 인덱스 값 i로 디코딩되는 하나 이상의 코드 워드(612)를 포함한다. 인덱스 값 i는 세그먼트 그룹 어드레스 값들의 리스트에서 인덱스로서 사용되어, 세그먼트 그룹에 대한 세그먼트 그룹 어드레스를 도출한다. 디코더는 세그먼트 그룹 어드레스를 사용하여 세그먼트 그룹의 제1 세그먼트에 대한 픽처 내의 공간 위치를 결정한다.
파라미터 세트의 세그먼트 그룹 어드레스 값들의 리스트 및 세그먼트 그룹 헤더의 해당 리스트에 대한 인덱스를 사용함으로써, 세그먼트 그룹 헤더를 수정하지 않고 세그먼트 그룹들의 스티칭이 수행될 수 있다. 이것은 세그먼트 그룹 어드레스 값들이 간접 계층에 의해 코딩된 세그먼트 그룹 데이터로부터 디커플링되기 때문이다. (위에서 설명된) 도 3의 예를 사용하며, 아래의 표 5는 인덱스들과 세그먼트 그룹 어드레스 값들 사이의 매핑이 어떻게 보일 수 있는지를 보여준다. 표 5의 중간 열은, 비디오를 고품질 및 저품질로 인코딩할 때, 인덱스들과 세그먼트 그룹 어드레스들 사이의 예시적인 매핑을 보여준다. 이 매핑은 세그먼트 그룹 어드레스 값들의 리스트를 전달하는 신택스 엘리먼트들(616)을 사용하여 원래 인코딩들 동안 파라미터 세트들(604)에 기입된다. 표 5의 맨 오른쪽 열은 스티칭 후 출력 비트스트림에서 인덱스들과 세그먼트 그룹 어드레스 값들 사이의 매핑이 어떻게 보일 수 있는지를 보여준다. 인코딩하는 동안 세그먼트 그룹들에 기입되는 인덱스들은 그대로 유지될 수 있고, 세그먼트 그룹 어드레스 값들의 리스트를 전달하는 신택스 엘리먼트들(616)을 사용하여 맨 오른쪽 열에 도시된 매핑을 포함하는 새로운 파라미터 세트(604)를 기입함으로써 스티칭이 수행될 수 있다. 그런 다음, 코딩된 세그먼트 그룹들(606)의 스티칭은 수정되지 않은 tile_group_layer_rbsp() 청크들을 복사 또는 포워딩함으로써 수행될 수 있다.
Figure pct00005
본 명세서에서 설명되는 바와 같이, 어드레스들을 갖는 것은 세그먼트 그룹들이다. 일부 실시예들에서, 어드레스들은 단지 각각의 세그먼트 그룹에 대한 것이 아니라, 각각의 세그먼트에 대해 대안적으로 또는 추가적으로 시그널링될 수 있다.
일부 실시예들에 따르면, 비디오 코딩 계층(Video Coding Layer)(VCL) NAL 유닛 데이터를 재기입하지 않고, 2개 이상의 픽처로부터의 세그먼트 그룹들을 하나의 픽처로 스티칭할 수 있다. 이것은 도 7에 도시되어 있으며, 여기서 원래 픽처들(702 및 704)의 각각의 세그먼트 그룹은 파라미터 세트의 세그먼트 그룹 어드레스 값에 대한 고유한 인덱스 매핑을 갖는다. 세그먼트 그룹들을 새로운 픽처(706)로 스티칭할 때, 세그먼트 그룹들의 인덱스들은 보존되지만, 파라미터 세트의 새로운 세그먼트 그룹 어드레스들에 매핑된다.
이제 몇 가지 예들이 설명된다.
제1 예는 다음과 같다. 제1 예는 파라미터 세트에 저장된 세그먼트 그룹 어드레스들에 대한 단일 리스트를 사용하는 것을 포함한다. 이 실시예에서, 세그먼트 그룹 어드레스 값들은 본 명세서에서 LIST라고 지칭하는 단일 리스트로서 파라미터 세트에 저장된다. 신택스 엘리먼트들(616)은 이 경우에 LIST의 코딩된 표현이고, LIST에 얼마나 많은 엔트리들이 있는지, 즉, LIST의 길이를 지정하는 숫자 N으로 디코딩되는 코드 워드들로 구성될 수 있다. 신택스 엘리먼트들(616)은 세그먼트 그룹 어드레스 값들을 지정하는 N개의 숫자로 디코딩되는 엔트리 당 하나 이상의 코드 워드로 추가적으로 구성된다. 예를 들어, LIST는 세그먼트 그룹 어드레스 값들의 순차적 어레이로서 비트스트림에서 인코딩될 수 있다.
다음의 의사-코드(pseudo-code)는 LIST가 비트스트림으로부터 디코딩되고 구성될 수 있는 방법을 보여준다.
Figure pct00006
함수들 decode_n_value_from_bitstream() 및 decode_value_from_bitstream()은 비트스트림으로부터 다음 코드 워드 또는 다수의 코드 워드들을 판독하고, 값을 리턴한다. 코드 워드는 고정-길이 코드 워드, 가변 길이 코드 워드, 엔트로피-인코딩된 코드 워드 또는 임의의 다른 타입의 코드 워드일 수 있다. 코드 워드는 신택스 엘리먼트(syntax element)라고도 지칭될 수 있다.
그런 다음, 파라미터 세트로부터 세그먼트 그룹 어드레스 값들의 LIST를 디코딩한 후, 세그먼트 그룹들이 디코딩될 수 있다. 각각의 세그먼트 그룹 헤더에는, 디코더에 의해 인덱스 값 i로 디코딩되는 하나 이상의 코드 워드(612)가 있다. 인덱스 값 i는 어드레스가 LIST[i]와 같게 되는 것과 같이 세그먼트 그룹에 대한 세그먼트 그룹 어드레스 값을 도출하기 위해 LIST에 대한 인덱스로서 사용된다.
세그먼트 그룹 어드레스 값들이 리스트에 저장되고 세그먼트 그룹 헤더들이 해당 리스트에 대한 인덱스를 포함하는 상기 예를 구현하기 위해, 인코더는 픽처 파라미터 세트 인코딩의 일부로서 세그먼트 그룹 어드레스 값들을 인코딩할 수 있다. 예를 들어, 리스트는 리스트의 사이즈를 먼저 인코딩한 후, 리스트의 각각의 어드레스 값들을 순차적으로 인코딩함으로써 인코딩될 수 있다. 또한, 인코더는 세그먼트 그룹 데이터를 인코딩할 때, 어드레스 값 리스트에 대한 인덱스를 세그먼트 그룹 헤더로 인코딩할 수 있으며, 여기서 인덱스에 의해 표현되는 어드레스 값은 픽처 내의 세그먼트 그룹의 공간 위치에 대응한다. 리스트 사이즈 인코딩 및/또는 어드레스 값들 인코딩은 하나 이상의 코드 워드를 비트스트림으로 인코딩하는 것을 포함할 수 있고, 예를 들어, 인코더는 고정 너비 인코딩, 가변 너비 인코딩, 엔트로피-기반 인코딩 등을 사용할 수 있다. 마찬가지로, 리스트 사이즈 디코딩 및/또는 어드레스 값들 디코딩은 비트스트림으로부터 하나 이상의 코드 워드를 디코딩하는 것을 포함할 수 있다.
디코더는 막 설명된 방식으로 인코딩된 비트스트림을 디코딩할 때, 세그먼트 그룹 어드레스 값 리스트를 디코딩할 수 있다. 예를 들어, 디코더는 비트스트림으로부터 리스트의 사이즈를 디코딩한 다음, 리스트를 표현하는 어드레스 값들 각각을 디코딩할 수 있다. 리스트 디코딩의 일부로서, 디코더는 어드레스 값들을, 예를 들어, LIST[e]=value에 의해 표현되는 (예를 들어) 리스트 또는 어레이 데이터 구조에 저장할 수 있으며, 여기서 e는 0 내지 디코딩된 리스트의 사이즈보다 1 작은 값의 범위이고, value는 디코딩된 대응하는 어드레스 값이다. 어드레스 값들은 (리스트가 인코딩된 방법에 기초하여 다른 표현들이 가능하더라도) 제e 디코딩된 어드레스 값이 리스트의 제e 엔트리로서 저장되도록 리스트에 저장될 수 있다. 그런 다음, 디코더는 픽처의 세그먼트 그룹들 각각에 대한 세그먼트 그룹 데이터를 디코딩할 수 있다. 디코더는 현재 세그먼트 그룹을 디코딩할 때, 현재 세그먼트 그룹에 대응하는 세그먼트 그룹 헤더를 디코딩할 수 있다. 세그먼트 그룹 헤더를 디코딩하는 것은 비트스트림으로부터(예를 들어, 하나 이상의 코드 워드로부터) 인덱스 값 i를 디코딩하는 것을 포함할 수 있으며, 여기서 인덱스 값 i는 세그먼트 그룹 어드레스 값 리스트에 대한 인덱스를 표현한다. 인덱스 값 i가 디코딩되면, 디코더는 세그먼트 그룹에 대한 어드레스 값을 리스트의 제i 엔트리에 대한 어드레스 값으로 설정함으로써 현재 세그먼트 그룹에 대한 어드레스 값을 도출할 수 있다. 예를 들어, 디코더는 이 값을 결정하기 위해 룩업 동작을 수행할 수 있다. 디코더는 또한 현재 세그먼트 그룹에 대해 디코딩되는 픽처 내의 공간 위치를 결정하기 위해 어드레스 값을 사용할 수 있다. 이것은 현재 세그먼트 그룹의 제1 세그먼트에 대해 디코딩되는 픽처 내의 공간 위치를 결정하는 것을 포함할 수 있다. 그런 다음, 디코더는, 현재 세그먼트 그룹에 대한 세그먼트 데이터를 디코딩된 샘플 값들로 디코딩할 때, 결정된 공간 위치를 사용할 수 있다. 예를 들어, 공간 위치는 디코딩된 픽처의 정확한 위치에 디코딩된 샘플 값들을 저장하기 위해 디코더에 의해 사용될 수 있다.
아래의 표 6 및 표 7은 위에서 설명된 예에 대한 예시적인 신택스 및 그 예시적인 시맨틱스(semantics)를 보여준다. 신택스 및 시맨틱스는 현재 VVC 드래프트 사양에 대한 수정들로서 보이도록 의도된다. 현재 VVC 드래프트 사양은 JVET-L0686-v2-SpecText.docx JVET 입력 컨트리뷰션에서 제공된다. 그러나, VVC 표준의 사용은 위에서 설명된 예를 적용하는 데 필요하지 않으며, 이에 대한 참조는 예시적인 목적을 위한 것이다.
Figure pct00007
num _tile_group_addresses_ minus1 플러스 1은 PPS와 연관된 타일 그룹 어드레스들의 수를 지정한다. num_tile_group_addresses_minus1의 값은 0 내지 maxNbrOfTileGroupAddresses의 범위에 있어야 한다(경계 포함). [참고: maxNbrOfTileGroupAddresses는, 예를 들어, 예시적인 수로서 2046으로 설정될 수 있다.]
pps_tile_group_address[i]는 PPS와 연관된 제i 타일 그룹 어드레스를 지정하는 데 사용된다.
pps_tile_group_address[i]의 길이는 Ceil(Log2(NumTilesInPic)) 비트이며, 여기서 Ceil은 천장 연산자(ceiling operator)를 지칭한다. [참고: NumTilesInPic은 픽처의 타일들의 수를 나타내는 변수이다. 이 수는 파라미터 세트의 다른 코드 워드들로부터 도출된다.]
pps_tile_group_address[i]의 값은 0 내지 NumTilesInPic-1의 범위에 있어야 한다(경계 포함).
i와 동일하지 않은 임의의 값의 j에 대해 pps_tile_group_address[i]의 값이 pps_tile_group_address[j]의 값과 동일하지 않아야 한다는 것은 비트스트림 적절성의 요구 사항이다.
Figure pct00008
tile_group_address_idc는 타일 그룹에서 제1 타일의 타일 어드레스를 지정하는 데 사용된다.
tile_group_address_idc의 값은 0 내지 num_tile_group_addresses_minus1의 범위에 있어야 한다(경계 포함).
변수 TileGroupAddress는 pps_tile_group_address와 동일하게 설정된다[tile_group_address_idc].
TileGroupAddress의 값은 0 내지 NumTilesInPic-1의 범위에 있어야 한다(경계 포함).
TileGroupAddress의 값은 동일한 코딩된 픽처의 임의의 다른 코딩된 타일 그룹 NAL 유닛의 TileGroupAddress의 값과 동일하지 않아야 한다.
num _tiles_in_tile_group_ minus1 플러스 1은 타일 그룹의 타일들의 수를 지정한다. num_tiles_in_tile_group_minus1의 값은 0 내지 NumTilesInPic-1의 범위에 있어야 한다(경계 포함). [참고: 이 설명은 현재 VVC 드래프트 사양에 존재한다.]
제1 예의 대안적인 버전들에서, pps_tile_group_address[i]에 대한 최대값의 제약은 상이한 방식으로, 예를 들어, NumTilesInPic의 배수와 같은 고정 최대값을 사용하거나 또는 비트스트림에서 시그널링되어 정의된다. 대안적인 버전에서, pps_tile_group_address[i] 코드 워드는 고정 길이 코드 워드 대신 가변 길이 코드 워드에 의해 시그널링된다. 가변 길이 코드 워드는 UVLC(Universal Variable Length Code) 코드 워드일 수 있다.
유사하게, 제1 예의 대안적인 버전들에서, num_tile_group_addresses_minus_1에 대한 최대값의 제약은 상이한 방식으로, 예를 들어, NumTilesInPic의 배수로서 고정 최대값을 사용하거나 또는 비트스트림에서 시그널링되어 정의된다.
제2 예는 다음과 같다. 제2 예는 파라미터 세트에 저장된 세그먼트 그룹 어드레스들에 대한 사전을 사용하는 것을 포함한다. 이 실시예에서, 세그먼트 그룹 어드레스 값들은 사전으로서 설정된 파라미터 세트에 저장된다. 사전은 적절한 데이터 구조, 예를 들어, 해시 맵 또는 연관 어레이에 의해 구현될 수 있다.
이 예의 한 버전에서, 사전은 단일 리스트로서 인코딩될 수 있으며, 여기서 단일 리스트의 각각의 엔트리는 값들의 쌍으로 구성되고, 여기서 쌍의 제1 엘리먼트는 사전 키 값이고, 쌍의 제2 엘리먼트는 사전 값(키-값 쌍으로도 알려짐)이다. 다른 버전에서는, 2개의 리스트가 사용되며, 제1 리스트는 키들의 리스트이고, 제2 리스트는 값들의 리스트이다. 2개의 리스트는 한 리스트의 제i 엔트리가 다른 리스트의 제i 엔트리와 연관되어 있다는 점에서 이들이 병렬이기 때문에 리스트들의 병렬 세트라고 지칭될 수 있다. 2개의 리스트는 2개의 어레이 또는 어레이들의 병렬 세트로서 구현될 수 있다. 사전의 다른 인코딩들 및 표현들도 가능하다. 2개의 리스트를 사용한 변형은 예시적인 목적을 위해 본 명세서에 설명되어 있다. 단일 리스트를 사용하는 예에 비해 이 예의 한 가지 장점은, 다수의 스트림들을 함께 스티칭할 때, 이 예가 (잠재적으로 수 많은) 빈 슬롯들을 갖는 것을 피할 수 있다는 것으로서, 즉, 최종 출력 스트림에서 사용되지 않는 리스트 값들을 피할 수 있다는 것이다.
이 예에서, 신택스 엘리먼트들(616)은 본 명세서에서 KEY 및 VALUE라고 불리는 2개의 리스트의 코딩된 표현이다. 일부 실시예들에서, 리스트들은 동일한 사이즈를 가지므로, 사이즈를 표현하는 단일 코드 워드로 충분한다. 따라서, 신택스 엘리먼트들(616)은 KEY 및 VALUE 리스트들에 대한 값들이 뒤따르는 리스트 사이즈로 구성될 수 있다. 각각의 값은 고정 길이, 가변 길이, 엔트로피 코딩 또는 기타 코딩 기술들을 사용하여 하나 이상의 코드 워드로서 인코딩될 수 있다. 실시예에서, VALUE 또는 KEY 리스트들에 대한 디코딩된 코드 워드들은, 예를 들어, KEY에 대한 제2 디코딩된 값이 KEY의 제2 엘리먼트로서 배치되도록 디코딩되는 순서대로 해당 리스트들에 배치된다. 일부 실시예들에서, KEY 리스트에 대한 값들은 VALUE 리스트들에 대해 순차적으로 인코딩되는 값들 이전에 순차적으로 인코딩되며, 다른 실시예들에서, 순서는 역전되고, 다른 실시예들에서, KEY 및 VALUE 리스트들의 대응하는 엘리먼트들은 함께 인코딩된다.
사전을 디코딩하는 예들이 다음과 같이 제공된다. 사전을 비트스트림으로 인코딩하는 것은 유사하며, 본질적으로 디코딩의 역 동작이다. 위의 제1 예에서와 같이, 세그먼트 그룹 어드레스 값 정보의 인코딩 및 디코딩은 세그먼트 그룹을 포함하는 세그먼트들에 대한 샘플 값들을 표현하는 세그먼트 그룹 데이터의 인코딩 및 디코딩과 개별적으로(예를 들어, 이전에) 발생할 수 있다.
이 예를 구현하기 위해, 먼저 디코더는 어드레스 값 정보를 디코딩할 수 있다. 두 가지 변형이 아래에 제시되어 있다.
KEY에 배치된 모든 값들이 VALUE에 배치된 임의의 값들 이전에 디코딩되는 변형의 경우, 다음 의사-코드는 디코더가 어떻게 기능할 수 있는지를 설명한다.
Figure pct00009
다른 변형에서, KEY 및 VALUE에 배치된 값들은 다음 의사-코드에 표시된 대로 인터리빙된다.
Figure pct00010
함수들 decode_n_value_from_bitstream(), decode_key_value_from_bitstream(), 및 decode_value_from_bitstream()은 각각 비트스트림으로부터 다음 코드 워드 또는 다수의 코드 워드들을 판독하고, 값을 리턴한다. 코드 워드는 고정-길이 코드 워드, 가변 길이 코드 워드, 엔트로피-인코딩된 코드 워드 또는 임의의 다른 타입의 코드 워드일 수 있다.
어드레스 값 정보가 디코딩되고 나면, 디코더는 그 후 픽처의 각각의 세그먼트 그룹들에 대한 세그먼트 그룹 데이터를 디코딩할 수 있다. 디코더는 현재 세그먼트 그룹을 디코딩할 때, 현재 세그먼트 그룹에 대응하는 세그먼트 그룹 헤더를 디코딩할 수 있다. 세그먼트 그룹 헤더를 디코딩하는 것은 비트스트림으로부터(예를 들어, 하나 이상의 코드 워드로부터) 인덱스 값 i를 디코딩하는 것을 포함할 수 있으며, 여기서 인덱스 값 i는 KEY 리스트에 대한 인덱스를 표현하며, VALUE 리스트에 대한 추가 인덱스를 포함한다. 인덱스 값 i가 디코딩되면, 디코더는 리스트 값 KEY[pos]가 인덱스 값 i와 매치되는 리스트 KEY의 포지션 pos를 결정한 다음, 세그먼트 그룹 어드레스 값이 VALUE[pos]임을 결정함으로써 현재 세그먼트 그룹에 대한 어드레스 값을 도출할 수 있다.
키 값을 제공함으로써 키 값과 연관된 값을 리트리브하는 동작을 키 값을 사용한 룩업 동작이라고 부른다. 이 실시예에서, 예를 들어, KEY[k]를 키 값으로서 사용하는 것에 의한 룩업 동작은 임의의 적절한 방법을 사용하여, 예를 들어, 해시 함수 또는 기타의 것들을 채택함으로써 구현될 수 있다.
이 예에서의 인덱스 i로부터 세그먼트 그룹 어드레스의 도출이 도 8에 예시되어 있다. 도 8은 KEY 및 VALUE 리스트들을 갖는 사전을 포함하는 파라미터 세트를 도시한다. 도 8은 또한 2개의 세그먼트 그룹 헤더를 도시하는데, 하나는 인덱스 i=4이고, 다른 하나는 인덱스 i=1이다. 도시된 바와 같이, 인덱스 i=4는 제1 세그먼트 그룹 헤더로부터 디코딩된다. 값 4는 VALUE[1]=3에 대응하는 파라미터 세트 KEY[1]의 사전에서 찾아지며, 이는 제1 세그먼트 그룹의 세그먼트 그룹 어드레스를 결정하는 데 사용된다(여기서는 3). 제2 세그먼트 그룹에서는, 인덱스 i=1이 디코딩되며, 여기서 사전의 KEY[0]에 대해 1이 찾아진다. 따라서, 대응하는 VALUE[0]=5가 제2 세그먼트 그룹의 세그먼트 그룹 어드레스를 결정하는 데 사용된다(여기서는 5). 이것은 도 8에 세그먼트 그룹 헤더로부터 대응하는 KEY 엔트리로의 화살표들, 및 대응하는 KEY 엔트리로부터 디코딩된 픽처의 대응하는 세그먼트 그룹 어드레스로의 화살표들에 의해 예시되어 있다.
대안적으로, KEY 및 VALUE 리스트들이 디코딩되고 있을 때, 해시 맵 MAP가 리스트 KEY에서 포지션 pos를 갖는 KEY의 각각의 키 k에 대해 MAP{k}=v가 되도록 채워질 수 있으며, 여기서 v=VALUE[pos]이다. 이 해시 맵을 사용하면, 인덱스 i로부터 세그먼트 그룹 어드레스를 결정하는 것이 MAP{i}와 같은 해시 맵 룩업 동작을 수행함으로써 달성될 수 있다. 이 데이터 구조의 장점은, 세그먼트 그룹 데이터를 디코딩하는 동안 세그먼트 그룹 어드레스들을 결정할 때, KEY 리스트의 선형 검색을 피할 수 있다는 것이다.
이 제1 예에서와 같이, 디코더는 세그먼트 데이터를 디코딩된 샘플들로 디코딩할 때 공간 위치를 결정하기 위해 세그먼트 그룹 어드레스를 사용할 수 있다.
표 8 및 표 9는 이 예에 대한 예시적인 신택스 및 그 예시적인 시맨틱스를 보여준다. 신택스 및 시맨틱스는 현재 VVC 드래프트 사양에 대한 수정들로서 보이도록 의도된다. 현재 VVC 드래프트 사양은 JVET-L0686-v2-SpecText.docx JVET 입력 컨트리뷰션에서 제공된다. 그러나, VVC 표준의 사용은 위에서 설명된 예를 적용하는 데 필요하지 않으며, 이에 대한 참조는 예시적인 목적을 위한 것이다.
Figure pct00011
num _tile_group_addresses_ minus1 플러스 1은 PPS와 연관된 타일 어드레스들의 수를 지정한다. num_tile_group_addresses_minus1의 값은 0 내지 NumTilesInPic-1의 범위에 있어야 한다(경계 포함).
pps_tile_group_idc[i]는 PPS와 연관된 제i 타일 그룹 idc를 지정하는 데 사용된다.
pps_tile_group_idc는 8*NumTilesInPic 이하여야 한다.
i와 동일하지 않은 임의의 값의 j에 대해 pps_tile_group_idc[i]의 값이 pps_tile_group_idc[j]의 값과 동일하지 않아야 한다는 것은 비트스트림 적절성의 요구 사항이다.
pps_tile_group_address[i]는 PPS와 연관된 제i 타일 그룹 어드레스를 지정하는 데 사용된다.
pps_tile_group_address[i]의 길이는 Ceil(Log2(NumTilesInPic)) 비트이다.
pps_tile_group_address[i]의 값은 0 내지 NumTilesInPic-1의 범위에 있어야 한다(경계 포함).
i와 동일하지 않은 임의의 값의 j에 대해 pps_tile_group_address[i]의 값이 pps_tile_group_address[j]의 값과 동일하지 않아야 한다는 것은 비트스트림 적절성의 요구 사항이다.
Figure pct00012
tile_group_address_idc는 타일 그룹에서 제1 타일의 타일 어드레스를 지정하는 데 사용된다.
변수 TileGroupAddress는 pps_tile_group_address[i]와 동일하게 설정되며, 여기서 i는 pps_tile_group_idc[i]가 tile_group_address_idc와 동일한 값이다.
0 내지 num_tile_group_addresses_minus1의 범위의 값 i가 존재하는 것(경계 포함)은 비트스트림 적절성의 요구 사항이며, 여기서 pps_tile_group_address[i]는 tile_group_address_idc와 동일하다.
TileGroupAddress의 값이 동일한 코딩된 픽처의 임의의 다른 코딩된 타일 그룹 NAL 유닛의 TileGroupAddress의 값과 동일하지 않아야 한다는 것은 비트스트림 적절성의 요구 사항이다.
num _tiles_in_tile_group_ minus1 플러스 1은 타일 그룹의 타일들의 수를 지정한다. num_tiles_in_tile_group_minus1의 값은 0 내지 NumTilesInPic-1의 범위에 있어야 한다(경계 포함). [참고: 이 설명은 현재 VVC 드래프트 사양에 존재한다.]
이 예의 대안적인 버전들에서, pps_tile_group_adress[i]에 대한 최대값의 제약은 상이한 방식으로, 예를 들어, NumTilesInPic의 배수로서 고정 최대값을 사용하거나, 또는 비트스트림에서 시그널링되어 정의된다. 대안적인 버전에서, pps_tile_group_address[i] 코드 워드는 고정 길이 코드 워드 대신 가변 길이 코드 워드에 의해 시그널링된다. 가변 길이 코드 워드는 UVLC 코드 워드일 수 있다.
유사하게, 이 예의 대안적인 버전들에서, num_tile_group_addresses_minus_1에 대한 최대값의 제약은 상이한 방식으로, 예를 들어, NumTilesInPic의 배수로서 고정 최대값을 사용하거나, 또는 비트스트림에서 시그널링되어 정의된다.
제3 예는 다음과 같다. 제3 예는 제2 예와 유사하고, 파라미터 세트에 저장된 세그먼트 그룹 어드레스들에 대한 사전을 사용하는 것을 포함하며, 여기서 사전은 델타 시그널링을 사용하여 인코딩 및 디코딩된다.
이 예에서, 사전 키 값들은 비트스트림으로의 또는 비트스트림으로부터의 델타값들로서 인코딩 및 디코딩된다. 예를 들어, 리스트들 KEY 및 VALUE의 디코딩은 다음 의사-코드에 의해 설명될 수 있다.
Figure pct00013
위의 제2 예에서와 같이, 값들은 임의의 순서로 디코딩될 수 있으며, 위의 의사-코드에 설명된 순서로 제한되지 않을 수 있다. 실시예들에서, 디코딩할 값들의 수는 2*n(KEY에 대한 하나의 값 및 VALUE에 대한 대응하는 값)이고, 값들을 디코딩하는 순서는 인코더가 모호함 없이 2개의 리스트 KEY 및 VALUE를 올바르게 전달할 수 있도록 정적이다.
위의 제2 예에 비해 이 예의 한 가지 장점은 절대값에 비해 델타값을 시그널링하는 것이 일반적으로 비트들의 측면에서 저렴하기 때문에 비트들을 절약한다는 것이다. 또 다른 장점은 델타값이 1 이상이 되도록 제약될 때이며, 이 경우, 각각의 사전 키 값은 정의에 의해 고유하게 지정될 것이다.
표 10 및 표 11은 이 실시예에 대한 예시적인 신택스 및 그 예시적인 시맨틱스를 보여준다. 이전에 언급된 바와 같이, VVC 표준의 사용은 위에서 설명된 예를 적용하는 데 필요하지 않으며, 이에 대한 참조는 예시적인 목적을 위한 것이다.
Figure pct00014
num _tile_group_addresses_ minus1 플러스 1은 PPS와 연관된 타일 어드레스들의 수를 지정한다. num_tile_group_addresses_minus1의 값은 0 내지 NumTilesInPic-1의 범위에 있어야 한다(경계 포함).
pps_tile_group_idc_delta_ minus1[i] 플러스 1은 PPS와 연관된 제i 타일 그룹 idc를 지정하는 데 사용된다.
변수 TileGroupAddressIdcPPS[i]는 다음과 같이 도출된다.
1. TileGroupAddressIdcPPS[0]는 pps_tile_group_idc_delta_minus1[0]과 동일하게 설정된다.
2. 0보다 큰 i의 값들의 경우, TileGroupAddressIdcPPS[i]는 TileGroupAddressIdcPPS[i-1] + pps_tile_group_idc_delta_minus1[i] + 1과 동일하게 설정된다.
TileGroupAddressIdcPPS[num_tile_group_addresses_minus1]는 8*NumTilesInPic 이하여야 한다.
pps_tile_group_address[i]는 PPS와 연관된 제i 타일 그룹 어드레스를 지정하는 데 사용된다.
pps_tile_group_address[i]의 길이는 Ceil(Log2(NumTilesInPic)) 비트이다.
pps_tile_group_address[i]의 값은 0 내지 NumTilesInPic-1의 범위에 있어야 한다(경계 포함).
i와 동일하지 않은 임의의 값의 j에 대해 pps_tile_group_address[i]의 값이 pps_tile_group_address[j]의 값과 동일하지 않아야 한다는 것은 비트스트림 적절성의 요구 사항이다.
Figure pct00015
tile_group_address_idc는 타일 그룹에서 제1 타일의 타일 어드레스를 지정하는 데 사용된다.
TileGroupAddress는 pps_tile_address[i]와 동일하게 설정되며, 여기서 i는 TileGroupAddressIdcPPS[i]가 tile_group_address_idc와 동일한 값이다.
대안적으로, 변수 TileGroupAddress는 다음과 같이 도출된다.
1. 타일 그룹 헤더에 tile_group_address_idc가 존재하지 않는 경우, TileGroupAddress의 값은 0과 동일하게 설정된다.
2. 그렇지 않으면, TileGroupAddress는 pps_tile_address[i]와 동일하게 설정되며, 여기서 i는 TileGroupAddressIdcPPS[i]가 tile_group_address_idc와 동일한 값이다.
0 내지 num_tile_group_addresses_minus1의 범위의 값 i가 존재하는 것(경계 포함)은 비트스트림 적절성의 요구 사항이며, 여기서 TileGroupAddressIdcPPS[i]는 tile_group_address_idc와 동일하다.
TileGroupAddress의 값이 동일한 코딩된 픽처의 임의의 다른 코딩된 타일 그룹 NAL 유닛의 TileGroupAddress의 값과 동일하지 않아야 한다는 것은 비트스트림 적절성의 요구 사항이다.
num _tiles_in_tile_group_ minus1 플러스 1은 타일 그룹의 타일들의 수를 지정한다. num_tiles_in_tile_group_minus1의 값은 0 내지 NumTilesInPic-1의 범위에 있어야 한다(경계 포함). [참고: 이 설명은 현재 VVC 드래프트 사양에 존재한다.]
이 예의 대안적인 버전에서, 제1 타일 그룹 인덱스는 pps_tile_group_idc_delta_minus1 [0] 신택스 엘리먼트를 사용하여 설정되지 않고, 그 자체 신택스 엘리먼트에서 명시적으로 지정된다. 표 12는 대안적인 버전에 대한 예시적인 파라미터 세트 신택스 및 시맨틱스를 보여준다.
Figure pct00016
pps_first_tile_group_idcpps_tile_group_idc_delta_ minus1[i] 플러스 1은 PPS와 연관된 제i 타일 그룹 idc를 지정하는 데 사용된다.
변수 TileGroupAddressIdcPPS[i]는 다음과 같이 도출된다.
1. TileGroupAddressIdcPPS[0]는 pps_first_tile_group_idc와 동일하게 설정된다.
2. 0보다 큰 i의 값들의 경우, TileGroupAddressIdcPPS[i]는 TileGroupAddressIdcPPS[i-1] + pps_tile_group_idc_delta_minus1[i] + 1과 동일하게 설정된다.
TileGroupAddressIdcPPS[num_tile_group_addresses_minus1]는 2046 이하여야 한다.
현재 예의 다른 대안적인 버전들에서, pps_tile_group_adress[i]에 대한 최대값의 제약은 상이한 방식으로, 예를 들어, NumTilesInPic의 배수로서 고정 최대값을 사용하거나, 또는 비트스트림에서 시그널링되어 정의된다.
유사하게, 현재 실시예의 다른 대안적인 버전들에서, num_tile_group_addresses_minus_1에 대한 최대값의 제약은 상이한 방식으로, 예를 들어, NumTilesInPic의 배수로서 고정 최대값을 사용하거나, 또는 비트스트림에서 시그널링되어 정의된다.
대안적인 버전에서, pps_tile_group_address[i] 코드 워드는 고정 길이 코드 워드 대신 가변 길이 코드 워드에 의해 시그널링된다. 가변 길이 코드 워드는 UVLC 코드 워드일 수 있다.
제4 예는 다음과 같다. 제4 예는 세그먼트 그룹 어드레스 값들 이외의 값들을 저장하기 위해 리스트 또는 사전 또는 기타 간접 계층을 사용하는 것을 포함한다. 예를 들어, 이전 예들은 비트스트림에서 타일 그룹들의 재배치를 가능하게 한다. 비트스트림의 타일 그룹 계층 부분들을 수정하지 않고 비트스트림에서 타일들의 추출, 스티칭 또는 재배치를 용이하게 하기 위해, 이제 타일 그룹들과 타일 그룹의 타일들의 수 사이의 (예를 들어, PPS에서의) 매핑을 도입한다.
매핑은 매핑을 인코딩 및 디코딩하기 위해, 예를 들어, 리스트, 사전 또는 델타 시그널링을 갖는 사전을 사용함으로써, 위의 예들 1-3과 유사하게 수행될 수 있다. 예를 들어, 위의 예 1에 따르면, 어드레스 값은 타일 그룹의 타일들의 수를 표현하는 값으로 대체될 수 있다. 예시를 위해, 아래에 예 2와 유사한 사전을 사용하여 추가적인 세부 사항이 제공된다.
현재 VVC 드래프트 사양에서, 타일 그룹의 타일들의 수는 num_tiles_in_tile_group_minus1 코드 워드를 사용하여 시그널링된다. 이 예는 해당 특정 코드 워드를 사용할 필요가 없으며, 타일 그룹에 있는 타일들의 수를 전달하는 임의의 단일 또는 다수의 코드 워드들도 적절할 것이다. num_tiles_in_tile_group_minus1 사용에 대한 대안적인 시그널링의 한 가지 예는 타일들의 유닛들로 타일 그룹의 높이 및 너비를 시그널링하는 2개의 코드 워드를 사용하는 것이다. 타일 그룹의 타일들의 수는 해당 두 코드 워드로부터 도출되는 2개의 값의 곱이다.
num_tiles_in_tile_group_minus1이 사용된다고 가정하면, 다음 의사-코드가 PPS 사전을 디코딩하는 데 사용될 수 있다.
Figure pct00017
함수들 decode_n_value_from_bitstream(), decode_key_value_from_bitstream(), decode_address_value_from_bitstream() 및 decode_size_value_from_bitstream()는 각각 비트스트림으로부터 다음 코드 워드 또는 다수의 코드 워드들을 판독하고, 값을 리턴한다. 코드 워드는 고정-길이 코드 워드, 가변 길이 코드 워드, 엔트로피-인코딩된 코드 워드 또는 임의의 다른 타입의 코드 워드일 수 있다.
그런 다음, 각각의 세그먼트 그룹 헤더에는, 디코더에 의해 인덱스 값 i로 디코딩되는 하나 이상의 코드 워드(612)가 있다. 그런 다음, 리스트 값 KEY[k]가 인덱스 값 i와 동일한 리스트 KEY의 포지션 k가 결정된다. 그런 다음, 어드레스 값은 ADDRESS[k]와 동일하게 설정되고, 사이즈 값은 SIZE[k]와 동일하게 설정된다.
표 13 및 표 14는 이 실시예에 대한 예시적인 신택스 및 그 예시적인 시맨틱스를 보여준다. 신택스 및 시맨틱스는 현재 VVC 드래프트 사양에 대한 수정들로서 보이도록 의도된다. 현재 VVC 드래프트 사양은 JVET-L0686-v2-SpecText.docx JVET 입력 컨트리뷰션에서 제공된다. 그러나, VVC 표준의 사용은 위에서 설명된 예를 적용하는 데 필요하지 않으며, 이에 대한 참조는 예시적인 목적을 위한 것이다.
Figure pct00018
num _tile_group_addresses_ minus1 플러스 1은 PPS와 연관된 타일 어드레스들의 수를 지정한다. num_tile_group_addresses_minus1의 값은 0 내지 NumTilesInPic-1의 범위에 있어야 한다(경계 포함).
pps_tile_group_idc[i]는 PPS와 연관된 제i 타일 그룹 idc를 지정하는 데 사용된다.
pps_tile_group_idc는 8*NumTilesInPic 이하여야 한다.
i와 동일하지 않은 임의의 값의 j에 대해 pps_tile_group_idc[i]의 값이 pps_tile_group_idc[j]의 값과 동일하지 않아야 한다는 것은 비트스트림 적절성의 요구 사항이다.
pps_tile_group_address[i]는 PPS와 연관된 제i 타일 그룹 어드레스를 지정하는 데 사용된다.
pps_tile_group_address[i]의 길이는 Ceil(Log2(NumTilesInPic)) 비트이다.
pps_tile_group_address[i]의 값은 0 내지 NumTilesInPic-1의 범위에 있어야 한다(경계 포함).
i와 동일하지 않은 임의의 값의 j에 대해 pps_tile_group_address[i]의 값이 pps_tile_group_address[j]의 값과 동일하지 않아야 한다는 것은 비트스트림 적절성의 요구 사항이다.
pps_tiles_in_tile_group_ minus1[i] 플러스 1은 PPS와 연관된 제i 타일들의 수를 지정한다. num_tiles_in_tile_group_minus1[i]의 값은 0 내지 NumTilesInPic-1의 범위에 있어야 한다(경계 포함).
Figure pct00019
tile_group_address_idc는 타일 그룹의 제1 타일의 타일 어드레스뿐만 아니라 타일 그룹의 타일들의 수를 지정하는 데 사용된다.
변수 TileGroupAddress는 pps_tile_group_address[i]와 동일하게 설정되며, 여기서 i는 pps_tile_group_idc[i]가 tile_group_address_idc와 동일한 값이다.
0 내지 num_tile_group_addresses_minus1 범위의 값 i가 존재하는 것(경계 포함)은 비트스트림 적절성의 요구 사항이며, 여기서 pps_tile_group_address[i]는 tile_group_address_idc와 동일하다.
TileGroupAddress의 값이 동일한 코딩된 픽처의 임의의 다른 코딩된 타일 그룹 NAL 유닛의 TileGroupAddress의 값과 동일하지 않아야 한다는 것은 비트스트림 적절성의 요구 사항이다.
변수 NumTilesInTileGroup은 pps_tiles_in_tile_group_minus1[i]+1의 값과 동일하게 설정되며, 여기서 i는 pps_tile_group_idc[i]가 tile_group_address_idc와 동일한 값이다.
사전에서 시그널링할 다른 잠재적인 값들은 각각의 타일 그룹에 대한 바이트 또는 비트 카운트, 타일 그룹의 각각의 타일에 대한 바이트 또는 비트 카운트, 타일 그룹의 각각의 타일의 높이 및 너비 등을 포함한다.
도 9는 실시예에 따른 프로세스를 예시하는 흐름도이다. 프로세스(900)는 비트스트림으로부터 픽처를 디코딩하기 위한 방법이며, 픽처는 복수의 세그먼트 그룹들로 파티셔닝된다. 방법은 세그먼트 그룹 인덱스 값을 세그먼트 그룹 어드레스에 매핑하는 어드레스 매핑을 형성하기 위해 비트스트림의 제1 부분을 디코딩하는 단계(단계(902)); 및 비트스트림의 제2 부분을 디코딩하는 단계(단계(904))를 포함한다. 비트스트림의 제2 부분은 복수의 세그먼트 그룹들을 표현하는 코드 워드들을 포함한다. 비트스트림의 제2 부분을 디코딩하는 단계는 제1 세그먼트 그룹을 디코딩하는 단계를 포함한다(단계(906)). 제1 세그먼트 그룹을 디코딩하는 단계는 1) 제1 세그먼트 그룹에 대한 제1 세그먼트 그룹 인덱스 값을 디코딩하는 단계(단계(908)); 2) 제1 세그먼트 그룹 인덱스 값 및 어드레스 매핑에 기초하여 제1 세그먼트 그룹에 대한 제1 세그먼트 그룹 어드레스를 결정하는 단계(단계(910)); 3) 제1 세그먼트 그룹 어드레스에 기초하여 제1 세그먼트 그룹에 대한 제1 공간 위치를 결정하는 단계 - 제1 공간 위치는 픽처 내의 제1 세그먼트 그룹의 위치를 표현함 - (단계(912)); 및 4) 제1 세그먼트 그룹에 대한 적어도 하나의 샘플 값을 디코딩하고, 적어도 하나의 샘플 값을 제1 공간 위치에 의해 주어지는 디코딩된 픽처 내의 위치에 할당하는 단계(단계(914))를 포함한다.
일부 실시예들에서, 어드레스 매핑은 어레이 및/또는 리스트, 어레이들 및/또는 리스트들의 병렬 세트, 해시 맵, 및 연관 어레이 중 하나 이상을 포함한다. 실시예들에서, 어드레스 매핑을 형성하기 위해 비트스트림의 제1 부분을 디코딩하는 단계는 비트스트림으로부터 리스트 값들의 수를 나타내는 제1 값을 디코딩하는 단계; 및 비트스트림으로부터 리스트 값들의 수를 디코딩함으로써 리스트를 형성하는 단계 - 리스트 값들의 수는 제1 값과 동일함 - 를 포함한다. 실시예들에서, 제1 세그먼트 그룹 인덱스 값 및 어드레스 매핑에 기초하여 제1 세그먼트 그룹에 대한 제1 세그먼트 그룹 어드레스를 결정하는 단계는 제1 세그먼트 그룹 인덱스 값을 사용하여 룩업 동작을 수행하는 단계를 포함한다.
일부 실시예들에서, 어드레스 매핑을 형성하기 위해 비트스트림의 제1 부분을 디코딩하는 단계는 비트스트림으로부터 리스트 값들의 수를 나타내는 제1 값을 디코딩하는 단계; 및 비트스트림으로부터 키-값 쌍들 k 및 v를 표현하는 값들의 수를 디코딩함으로써 제1 리스트(KEY) 및 제2 리스트(VALUE)를 형성하는 단계 - 키-값 쌍들의 수는 제1 값과 동일함 - 를 포함한다. 제1 리스트는 키들 k를 포함하고 제2 리스트는 키-값 쌍들의 값들 v를 포함하고, 제1 리스트 및 제2 리스트의 정렬은, 주어진 키-값 쌍에 대해, 제1 리스트의 주어진 키 k에 대한 인덱스가 제2 리스트의 주어진 값 v에 대한 인덱스에 대응하도록 된다. 실시예들에서, 어드레스 매핑을 형성하기 위해 비트스트림의 제1 부분을 디코딩하는 단계는 비트스트림으로부터 해시 값들의 수를 나타내는 제1 값을 디코딩하는 단계; 및 비트스트림으로부터 키-값 쌍들 k 및 v를 표현하는 값들의 수를 디코딩함으로써 해시 맵을 형성하는 단계 - 키-값 쌍들의 수는 제1 값과 동일하고, 주어진 키-값 쌍에 대해, 주어진 키 k에 대한 인덱스는 해시 맵에 의해 주어진 값 v에 매핑됨 - 를 포함한다.
일부 실시예들에서, 제1 세그먼트 그룹 인덱스 값 및 어드레스 매핑에 기초하여 제1 세그먼트 그룹에 대한 제1 세그먼트 그룹 어드레스를 결정하는 단계는 제1 리스트(KEY[i])의 인덱스에 대응하는 값이 제1 세그먼트 그룹 인덱스 값과 매치되도록 인덱스(i)를 결정하는 단계; 및 제1 세그먼트 그룹 어드레스를 제2 리스트(VALUE[i])의 인덱스에 대응하는 값이 되도록 결정하는 단계를 포함한다. 일부 실시예들에서, 제1 세그먼트 그룹 인덱스 값 및 어드레스 매핑에 기초하여 제1 세그먼트 그룹에 대한 제1 세그먼트 그룹 어드레스를 결정하는 단계는 제1 세그먼트 그룹 인덱스 값을 사용하여 해시 룩업 동작을 수행하는 단계를 포함한다. 일부 실시예들에서, 디코딩되는 키-값 쌍들 k 및 v를 표현하는 값들은 키 k를 표현하는 델타값을 포함하여, 제1 키-값 쌍의 경우, 키 k는 델타값에 의해 결정되고, 다른 키-값 쌍들의 경우, 키 k는 델타값을 이전에 결정된 키 값에 더함으로써 결정되어, 현재 키 k를 생성한다.
일부 실시예들에서, 세그먼트 그룹들은 타일 그룹들, 서브픽처들 및/또는 슬라이스들에 대응한다. 일부 실시예들에서, 세그먼트 그룹은 하나 이상의 세그먼트를 포함하고, 일부 실시예들에서, 세그먼트 그룹은 단지 하나의 세그먼트를 포함한다.
일부 실시예들에서, 세그먼트 그룹들은 타일 그룹들에 대응한다. 실시예들에서, 비트스트림의 제1 부분은 파라미터 세트에 포함되고, 방법은 추가 세그먼트 그룹들을 디코딩하는 단계를 추가로 포함하고, 어드레스 매핑은 추가 세그먼트 그룹들을 디코딩하는 데 사용된다. 실시예들에서, 비트스트림의 제1 부분은 파라미터 세트에 포함되고, 방법은 추가 픽처들을 디코딩하는 단계를 추가로 포함하고, 어드레스 매핑은 추가 픽처들을 디코딩하는 데 사용된다. 즉, 픽처가 다수의 세그먼트 그룹들로 인코딩될 수 있고, 픽처의 각각의 세그먼트 그룹은 파라미터 세트에서 송신된 것과 동일한 어드레스 매핑을 사용함으로써 디코딩될 수 있다. 또한, 다수의 픽처들은 스트림의 일부로서 인코딩될 수 있고, 각각의 이러한 픽처는 또한 파라미터 세트에서 송신된 것과 동일한 어드레스 매핑을 사용함으로써 디코딩될 수 있다.
도 10은 실시예에 따른 프로세스를 예시하는 흐름도이다. 프로세스(1000)는 비트스트림으로부터 픽처를 디코딩하기 위한 방법이며, 픽처는 복수의 세그먼트 그룹들로 파티셔닝된다. 방법은 세그먼트 그룹 인덱스 값을 제1 세그먼트 그룹에 대해 디코딩되는 세그먼트들의 수에 매핑하는 사이즈 매핑을 형성하기 위해 비트스트림의 제1 부분을 디코딩하는 단계(단계(1002)); 및 비트스트림의 제2 부분을 디코딩하는 단계(단계(1004))를 포함한다. 비트스트림의 제2 부분은 복수의 세그먼트 그룹들을 표현하는 코드 워드들을 포함한다. 비트스트림의 제2 부분을 디코딩하는 단계는 제1 세그먼트 그룹을 디코딩하는 단계를 포함한다(단계(1006)). 제1 세그먼트 그룹을 디코딩하는 단계는 1) 제1 세그먼트 그룹에 대한 제1 세그먼트 그룹 인덱스 값을 디코딩하는 단계(단계(1008)); 2) 제1 세그먼트 그룹 인덱스 값 및 사이즈 매핑에 기초하여 제1 세그먼트 그룹에 대한 제1 사이즈를 결정하는 단계(단계(1010)); 및 3) 디코딩된 픽처를 형성하기 위해 세그먼트들의 수를 디코딩하는 단계 - 세그먼트들의 수는 제1 사이즈와 동일함 - (단계(1012)) 를 포함한다.
일부 실시예들에서, 사이즈 매핑은 어레이 및/또는 리스트, 어레이들 및/또는 리스트들의 병렬 세트, 해시 맵, 및 연관 어레이 중 하나 이상을 포함한다. 실시예들에서, 사이즈 매핑을 형성하기 위해 비트스트림의 제1 부분을 디코딩하는 단계는 비트스트림으로부터 리스트 값들의 수를 나타내는 제1 값을 디코딩하는 단계; 및 비트스트림으로부터 리스트 값들의 수를 디코딩함으로써 리스트를 형성하는 단계 - 리스트 값들의 수는 제1 값과 동일함 - 를 포함한다. 실시예들에서, 제1 세그먼트 그룹 인덱스 값 및 사이즈 매핑에 기초하여 제1 세그먼트 그룹에 대한 제1 사이즈를 결정하는 단계는 제1 세그먼트 그룹 인덱스 값을 사용하여 룩업 동작을 수행하는 단계를 포함한다.
일부 실시예들에서, 세그먼트 그룹들은 타일 그룹들, 서브픽처들 및/또는 슬라이스들에 대응한다. 일부 실시예들에서, 세그먼트 그룹은 하나 이상의 세그먼트를 포함하고, 일부 실시예들에서, 세그먼트 그룹은 단지 하나의 세그먼트를 포함한다.
도 11은 실시예에 따른 프로세스를 예시하는 흐름도이다. 프로세스(1100)는 픽처를 비트스트림으로 인코딩하기 위한 방법이며, 픽처는 복수의 세그먼트 그룹들로 파티셔닝된다. 방법은 세그먼트 그룹 인덱스 값을 복수의 세그먼트 그룹들에 대한 세그먼트 그룹 어드레스에 매핑하는 어드레스 매핑을 결정하는 단계(단계(1102)); 비트스트림의 제1 부분을 인코딩하는 단계(단계(1104)); 및 비트스트림의 제2 부분을 인코딩하는 단계(단계(1106))를 포함한다. 비트스트림의 제1 부분을 인코딩하는 단계는 세그먼트 그룹 인덱스 값을 세그먼트 그룹 어드레스에 매핑하는 어드레스 매핑을 형성하는 코드 워드들을 생성하는 단계를 포함한다. 비트스트림의 제2 부분을 인코딩하는 단계는 복수의 세그먼트 그룹들을 표현하는 코드 워드들을 생성하는 단계를 포함한다. 비트스트림의 제2 부분을 인코딩하는 단계는 제1 세그먼트 그룹을 인코딩하는 단계를 포함한다(단계(1108)). 제1 세그먼트 그룹을 인코딩하는 단계는 1) 제1 세그먼트 그룹에 대한 제1 세그먼트 그룹 어드레스로부터 제1 세그먼트 그룹 인덱스 값을 결정하는 단계 - 어드레스 매핑은 제1 세그먼트 그룹 인덱스 값을 제1 세그먼트 그룹 어드레스에 매핑함 - (단계(1110)); 2) 제1 세그먼트 그룹에 대한 제1 세그먼트 그룹 인덱스 값을 인코딩하는 단계(단계(1112)); 및 3) 제1 세그먼트 그룹에 대한 샘플 값들을 인코딩하는 단계(단계(1114))를 포함한다.
어드레스 매핑은, 예를 들어, 인덱스 값을 입력으로서 취하고 어드레스 값을 출력으로서 리턴함으로써 인덱스 값을 어드레스 값에 매핑할 수 있다. 예를 들어, 어레이 또는 리스트는 어레이 또는 리스트의 제i 엘리먼트를 리턴함으로써 인덱스 값 i를 주어진 어드레스 값에 매핑할 수 있고, 유사하게, 해시 맵은 키 i와 연관된 값을 리턴함으로써 인덱스 값 i를 주어진 어드레스에 매핑할 수 있다. 인덱스를 값에 매핑하는 다른 방법들도 가능하며, 본 명세서에서 제공된 실시예들에 의해 포함된다.
도 12는 실시예에 따른 프로세스를 예시하는 흐름도이다. 프로세스(1200)는 픽처를 비트스트림으로 인코딩하기 위한 방법이며, 픽처는 복수의 세그먼트 그룹들로 파티셔닝된다. 방법은 세그먼트 그룹 인덱스 값을 제1 세그먼트 그룹에 대해 인코딩되는 세그먼트들의 수에 매핑하는 사이즈 매핑을 결정하는 단계(단계(1202)); 비트스트림의 제1 부분을 인코딩하는 단계(단계(1204)); 및 비트스트림의 제2 부분을 인코딩하는 단계(단계(1206))를 포함한다. 비트스트림의 제1 부분을 인코딩하는 단계는 세그먼트 그룹 인덱스 값을 제1 세그먼트 그룹에 대해 인코딩되는 세그먼트들의 수에 매핑하는 사이즈 매핑을 형성하는 코드 워드들을 생성하는 단계를 포함한다. 비트스트림의 제2 부분을 인코딩하는 단계는 복수의 세그먼트 그룹들을 표현하는 코드 워드들을 생성하는 단계를 포함한다. 비트스트림의 제2 부분을 인코딩하는 단계는 제1 세그먼트 그룹을 인코딩하는 단계를 포함한다(단계(1208)). 제1 세그먼트 그룹을 인코딩하는 단계는 1) 제1 세그먼트 그룹에 대한 제1 세그먼트 그룹 인덱스 값을 결정하는 단계 - 사이즈 매핑은 제1 세그먼트 그룹에 대한 제1 세그먼트 그룹 인덱스 값을 제1 사이즈에 매핑하고, 제1 사이즈는 제1 세그먼트 그룹에 대해 인코딩되는 세그먼트들의 수임 - (단계(1210)); 2) 제1 세그먼트 그룹에 대한 제1 세그먼트 그룹 인덱스 값을 인코딩하는 단계(단계(1212)); 및 3) 제1 세그먼트 그룹에 대한 세그먼트들의 수를 인코딩하는 단계 - 세그먼트들의 수는 제1 사이즈와 동일함 - (단계(1214))를 포함한다.
일부 실시예들에서, 제1 세그먼트 그룹 인덱스 값을 인코딩하는 단계는 제1 세그먼트 그룹 인덱스 값을 표현하는 하나 이상의 코드 워드를 생성하는 단계를 포함한다.
도 13은 실시예들에 따른 디코더(1302) 및 인코더(1304)의 기능 유닛들을 도시하는 도면이다. 디코더(1302)는 디코딩 유닛(1310) 및 결정 유닛(1312)을 포함한다. 인코더(1304)는 인코딩 유닛(1314) 및 결정 유닛(1316)을 포함한다.
실시예에서, 디코딩 유닛(1310)은 세그먼트 그룹 인덱스 값을 세그먼트 그룹 어드레스에 매핑하는 어드레스 매핑을 형성하기 위해 비트스트림의 제1 부분을 디코딩하도록 구성되고, 비트스트림의 제2 부분을 디코딩하도록 추가로 구성된다. 비트스트림의 제2 부분은 복수의 세그먼트 그룹들을 표현하는 코드 워드들을 포함한다. 비트스트림의 제2 부분을 디코딩하는 것은 제1 세그먼트 그룹을 디코딩하는 것을 포함한다. 제1 세그먼트 그룹을 디코딩하는 것은 1) (디코딩 유닛(1310)에 의해) 제1 세그먼트 그룹에 대한 제1 세그먼트 그룹 인덱스 값을 디코딩하는 것; 2) (결정 유닛(1312)에 의해) 제1 세그먼트 그룹 인덱스 값 및 어드레스 매핑에 기초하여 제1 세그먼트 그룹에 대한 제1 세그먼트 그룹 어드레스를 결정하는 것; 3) (결정 유닛(1312)에 의해) 제1 세그먼트 그룹 어드레스에 기초하여 제1 세그먼트 그룹에 대한 제1 공간 위치를 결정하는 것 - 제1 공간 위치는 픽처 내의 제1 세그먼트 그룹의 위치를 표현함 -; 및 4) (디코딩 유닛(1310)에 의해) 제1 세그먼트 그룹에 대한 적어도 하나의 샘플 값을 디코딩하고, 적어도 하나의 샘플 값을 제1 공간 위치에 의해 주어지는 디코딩된 픽처 내의 위치에 할당하는 것을 포함한다.
실시예에서, 디코딩 유닛(1310)은 세그먼트 그룹 인덱스 값을 제1 세그먼트 그룹에 대해 디코딩되는 세그먼트들의 수에 매핑하는 사이즈 매핑을 형성하기 위해 비트스트림의 제1 부분을 디코딩하도록 구성되고, 비트스트림의 제2 부분을 디코딩하도록 추가로 구성된다. 비트스트림의 제2 부분은 복수의 세그먼트 그룹들을 표현하는 코드 워드들을 포함한다. 비트스트림의 제2 부분을 디코딩하는 것은 제1 세그먼트 그룹을 디코딩하는 것을 포함한다. 제1 세그먼트 그룹을 디코딩하는 것은 1) (디코딩 유닛(1310)에 의해) 제1 세그먼트 그룹에 대한 제1 세그먼트 그룹 인덱스 값을 디코딩하는 것; 2) (결정 유닛(1312)에 의해) 제1 세그먼트 그룹 인덱스 값 및 사이즈 매핑에 기초하여 제1 세그먼트 그룹에 대한 제1 사이즈를 결정하는 것; 및 3) (디코딩 유닛(1310)에 의해) 디코딩된 픽처를 형성하기 위해 세그먼트들의 수를 디코딩하는 것 - 세그먼트들의 수는 제1 사이즈와 동일함 - 을 포함한다.
실시예에서, 결정 유닛(1316)은 세그먼트 그룹 인덱스 값을 복수의 세그먼트 그룹들에 대한 세그먼트 그룹 어드레스에 매핑하는 어드레스 매핑을 결정하도록 구성된다. 인코딩 유닛(1314)은 비트스트림의 제1 부분을 인코딩하도록 구성되고, 비트스트림의 제2 부분을 인코딩하도록 추가로 구성된다. 비트스트림의 제1 부분은 세그먼트 그룹 인덱스 값을 세그먼트 그룹 어드레스에 매핑하는 어드레스 매핑을 형성하는 코드 워드들을 포함한다. 비트스트림의 제2 부분은 복수의 세그먼트 그룹들을 표현하는 코드 워드들을 포함한다. 비트스트림의 제2 부분을 인코딩하는 것은 제1 세그먼트 그룹을 인코딩하는 것을 포함한다. 제1 세그먼트 그룹을 인코딩하는 것은 1) (결정 유닛(1316)에 의해) 제1 세그먼트 그룹에 대한 제1 세그먼트 그룹 어드레스로부터 제1 세그먼트 그룹 인덱스 값을 결정하는 것 - 어드레스 매핑은 제1 세그먼트 그룹 인덱스 값을 제1 세그먼트 그룹 어드레스에 매핑함 -; 2) (인코딩 유닛(1314)에 의해) 제1 세그먼트 그룹에 대한 제1 세그먼트 그룹 인덱스 값을 인코딩하는 것; 및 3) (인코딩 유닛(1314)에 의해) 제1 세그먼트 그룹에 대한 샘플 값들을 인코딩하는 것을 포함한다.
실시예에서, 결정 유닛(1316)은 세그먼트 그룹 인덱스 값을 제1 세그먼트 그룹에 대해 인코딩되는 세그먼트들의 수에 매핑하는 사이즈 매핑을 결정하도록 구성된다. 인코딩 유닛(1314)은 비트스트림의 제1 부분을 인코딩하도록 구성되고, 비트스트림의 제2 부분을 인코딩하도록 추가로 구성된다. 비트스트림의 제1 부분은 세그먼트 그룹 인덱스 값을 제1 세그먼트 그룹에 대해 인코딩되는 세그먼트들의 수에 매핑하는 사이즈 매핑을 형성하는 코드 워드들을 포함한다. 비트스트림의 제2 부분은 복수의 세그먼트 그룹들을 표현하는 코드 워드들을 포함한다. 비트스트림의 제2 부분을 인코딩하는 것은 제1 세그먼트 그룹을 인코딩하는 것을 포함한다. 제1 세그먼트 그룹을 인코딩하는 것은 1) (결정 유닛(1316)에 의해) 제1 세그먼트 그룹에 대한 제1 세그먼트 그룹 인덱스 값을 결정하는 것 - 사이즈 매핑은 제1 세그먼트 그룹에 대한 제1 세그먼트 그룹 인덱스 값을 제1 사이즈에 매핑하고, 제1 사이즈는 제1 세그먼트 그룹에 대해 인코딩되는 세그먼트들의 수임 -; 2) (인코딩 유닛(1314)에 의해) 제1 세그먼트 그룹에 대한 제1 세그먼트 그룹 인덱스 값을 인코딩하는 것; 및 3) (인코딩 유닛(1314)에 의해) 제1 세그먼트 그룹에 대한 세그먼트들의 수를 인코딩하는 것 - 세그먼트들의 수는 제1 사이즈와 동일함 - 을 포함한다.
도 14는 일부 실시예들에 따른 노드(예를 들어, 인코더(1302) 및/또는 디코더(1304))의 블록도이다. 도 X에 도시된 바와 같이, 노드는 하나 이상의 프로세서(P)(1455)(예를 들어, 범용 마이크로프로세서 및/또는 애플리케이션 특정 집적 회로(application specific integrated circuit)(ASIC), 필드-프로그램 가능 게이트 어레이(field-programmable gate array)(FPGA)들 등과 같은 하나 이상의 다른 프로세서)를 포함할 수 있는 프로세싱 회로망(processing circuitry)(PC)(1402); 네트워크 인터페이스(1448) - 네트워크 인터페이스(1448)는 노드가 네트워크 인터페이스(1448)가 연결되는 네트워크(1410)(예를 들어, 인터넷 프로토콜(Internet Protocol)(IP) 네트워크)에 연결된 다른 노드들에 데이터를 송신하고 이로부터 데이터를 수신하게 할 수 있는 송신기(Tx)(1445) 및 수신기(Rx)(1447)를 포함함 - ; 및 하나 이상의 비-휘발성 저장 디바이스 및/또는 하나 이상의 휘발성 저장 디바이스를 포함할 수 있는 로컬 저장 유닛("데이터 저장 시스템"이라고도 함)(1408)을 포함할 수 있다. PC(1402)가 프로그램 가능 프로세서를 포함하는 실시예들에서, 컴퓨터 프로그램 제품(computer program product)(CPP)(1441)이 제공될 수 있다. CPP(1441)는 컴퓨터 판독 가능 명령어(CRI)(computer readable instruction)들(1444)을 포함하는 컴퓨터 프로그램(computer program)(CP)(1443)을 저장하는 컴퓨터 판독 가능 매체(computer readable medium)(CRM)(1442)를 포함한다. CRM(1042)은 자기 매체(예를 들어, 하드 디스크), 광학 매체, 메모리 디바이스들(예를 들어, 랜덤 액세스 메모리, 플래시 메모리) 등과 같은 비-일시적 컴퓨터 판독 가능 매체일 수 있다. 일부 실시예들에서, 컴퓨터 프로그램(1443)의 CRI(1444)는, PC(1402)에 의해 실행될 때, CRI가 노드로 하여금 본 명세서에 설명된 단계들(예를 들어, 흐름도들을 참조하여 본 명세서에 설명된 단계들)을 수행하게 하도록 구성된다. 다른 실시예들에서, 노드는 코드에 대한 필요없이 본 명세서에 설명된 단계들을 수행하도록 구성될 수 있다. 즉, 예를 들어, PC(1402)는 단지 하나 이상의 ASIC로 구성될 수 있다. 따라서, 본 명세서에 설명된 실시예들의 피처들은 하드웨어 및/또는 소프트웨어로 구현될 수 있다.
본 개시내용의 다양한 실시예들이 본 명세서에서 설명되지만, 이들은 제한이 아닌 단지 예로서 제시된 것임이 이해되어야 한다. 따라서, 본 개시내용의 폭 및 범위는 위에서 설명된 예시적인 실시예들 중 임의의 것에 의해 제한되어서는 안된다. 더욱이, 그 모든 가능한 변형들에서 위에서 설명된 엘리먼트들의 임의의 조합은 본 명세서에서 달리 지시되거나 또는 문맥에 의해 달리 명백하게 모순되지 않는 한 본 개시내용에 의해 포함된다.
추가적으로, 위에서 설명되고 도면들에 예시된 프로세스들은 단계들의 시퀀스로서 도시되어 있지만, 이는 오로지 예시를 위해 수행되었다. 따라서, 일부 단계들이 추가될 수 있고, 일부 단계들이 생략될 수 있고, 단계들의 순서가 재배열될 수 있으며, 일부 단계들이 병렬로 수행될 수 있음이 고려된다.

Claims (37)

  1. 비트스트림으로부터 픽처(picture)를 디코딩하기 위한 방법으로서 - 상기 픽처는 복수의 세그먼트 그룹들로 파티셔닝됨 -,
    세그먼트 그룹 인덱스 값을 세그먼트 그룹 어드레스에 매핑하는 어드레스 매핑을 형성하기 위해 상기 비트스트림의 제1 부분을 디코딩하는 단계; 및
    상기 비트스트림의 제2 부분을 디코딩하는 단계
    를 포함하고,
    상기 비트스트림의 제2 부분은 상기 복수의 세그먼트 그룹들을 표현하는 코드 워드들을 포함하고,
    상기 비트스트림의 제2 부분을 디코딩하는 단계는 제1 세그먼트 그룹을 디코딩하는 단계를 포함하고,
    상기 제1 세그먼트 그룹을 디코딩하는 단계는,
    1) 상기 제1 세그먼트 그룹에 대한 제1 세그먼트 그룹 인덱스 값을 디코딩하는 단계;
    2) 상기 제1 세그먼트 그룹 인덱스 값 및 상기 어드레스 매핑에 기초하여 상기 제1 세그먼트 그룹에 대한 제1 세그먼트 그룹 어드레스를 결정하는 단계;
    3) 상기 제1 세그먼트 그룹 어드레스에 기초하여 상기 제1 세그먼트 그룹에 대한 제1 공간 위치를 결정하는 단계 - 상기 제1 공간 위치는 상기 픽처 내의 상기 제1 세그먼트 그룹의 위치를 표현함 -; 및
    4) 상기 제1 세그먼트 그룹에 대한 적어도 하나의 샘플 값을 디코딩하고, 상기 적어도 하나의 샘플 값을 상기 제1 공간 위치에 의해 주어지는 디코딩된 픽처 내의 위치에 할당하는 단계
    를 포함하는 방법.
  2. 제1항에 있어서, 상기 어드레스 매핑은 어레이 및/또는 리스트, 어레이들 및/또는 리스트들의 병렬 세트, 해시 맵, 및 연관 어레이(associative array) 중 하나 이상을 포함하는 방법.
  3. 제1항 또는 제2항에 있어서, 상기 어드레스 매핑을 형성하기 위해 상기 비트스트림의 제1 부분을 디코딩하는 단계는,
    상기 비트스트림으로부터 리스트 값들의 수를 나타내는 제1 값을 디코딩하는 단계; 및
    상기 비트스트림으로부터 리스트 값들의 수를 디코딩함으로써 리스트를 형성하는 단계 - 상기 리스트 값들의 수는 상기 제1 값과 동일함 -
    를 포함하는 방법.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서, 상기 제1 세그먼트 그룹 인덱스 값 및 상기 어드레스 매핑에 기초하여 상기 제1 세그먼트 그룹에 대한 제1 세그먼트 그룹 어드레스를 결정하는 단계는 상기 제1 세그먼트 그룹 인덱스 값을 사용하여 룩업 동작을 수행하는 단계를 포함하는 방법.
  5. 제1항 또는 제2항에 있어서, 상기 어드레스 매핑을 형성하기 위해 상기 비트스트림의 제1 부분을 디코딩하는 단계는,
    상기 비트스트림으로부터 리스트 값들의 수를 나타내는 제1 값을 디코딩하는 단계;
    상기 비트스트림으로부터 키-값 쌍들 k 및 v를 표현하는 값들의 수를 디코딩함으로써 제1 리스트(KEY) 및 제2 리스트(VALUE)를 형성하는 단계 - 상기 키-값 쌍들의 수는 상기 제1 값과 동일하며, 상기 제1 리스트는 키들 k를 포함하고 상기 제2 리스트는 상기 키-값 쌍들의 값들 v를 포함하고, 상기 제1 리스트 및 상기 제2 리스트의 정렬은, 주어진 키-값 쌍에 대해, 상기 제1 리스트의 주어진 키 k에 대한 인덱스가 상기 제2 리스트의 주어진 값 v에 대한 인덱스에 대응하도록 됨 -
    를 포함하는 방법.
  6. 제1항 또는 제2항에 있어서, 상기 어드레스 매핑을 형성하기 위해 상기 비트스트림의 제1 부분을 디코딩하는 단계는,
    상기 비트스트림으로부터 해시 값들의 수를 나타내는 제1 값을 디코딩하는 단계;
    상기 비트스트림으로부터 키-값 쌍들 k 및 v를 표현하는 값들의 수를 디코딩함으로써 해시 맵을 형성하는 단계 - 상기 키-값 쌍들의 수는 상기 제1 값과 동일하고, 주어진 키-값 쌍에 대해, 상기 주어진 키 k에 대한 인덱스는 상기 해시 맵에 의해 주어진 값 v에 매핑됨 -
    를 포함하는 방법.
  7. 제5항에 있어서, 상기 제1 세그먼트 그룹 인덱스 값 및 상기 어드레스 매핑에 기초하여 상기 제1 세그먼트 그룹에 대한 제1 세그먼트 그룹 어드레스를 결정하는 단계는,
    상기 제1 리스트(KEY[i])의 인덱스에 대응하는 값이 상기 제1 세그먼트 그룹 인덱스 값과 매치되도록 인덱스(i)를 결정하는 단계; 및
    상기 제1 세그먼트 그룹 어드레스를 상기 제2 리스트(VALUE[i])의 인덱스에 대응하는 값이 되도록 결정하는 단계
    를 포함하는 방법.
  8. 제5항 또는 제6항에 있어서, 상기 제1 세그먼트 그룹 인덱스 값 및 상기 어드레스 매핑에 기초하여 상기 제1 세그먼트 그룹에 대한 제1 세그먼트 그룹 어드레스를 결정하는 단계는 상기 제1 세그먼트 그룹 인덱스 값을 사용하여 해시 룩업 동작을 수행하는 단계를 포함하는 방법.
  9. 제5항 내지 제7항 중 어느 한 항에 있어서, 상기 디코딩되는 키-값 쌍들 k 및 v를 표현하는 값들은 상기 키 k를 표현하는 델타값을 포함하여, 제1 키-값 쌍의 경우, 상기 키 k는 상기 델타값에 의해 결정되고, 다른 키-값 쌍들의 경우, 상기 키 k는 상기 델타값을 이전에 결정된 키 값에 더함으로써 결정되어, 현재 키 k를 생성하는 방법.
  10. 제1항 내지 제9항 중 어느 한 항에 있어서, 세그먼트 그룹들은 타일 그룹들에 대응하는 방법.
  11. 제1항 내지 제10항 중 어느 한 항에 있어서, 세그먼트 그룹들은 서브픽처들에 대응하는 방법.
  12. 제1항 내지 제11항 중 어느 한 항에 있어서, 세그먼트가 슬라이스에 대응하는 방법.
  13. 제1항 내지 제12항 중 어느 한 항에 있어서, 세그먼트 그룹이 하나 이상의 세그먼트를 포함하는 방법.
  14. 제1항 내지 제12항 중 어느 한 항에 있어서, 세그먼트 그룹이 단지 하나의 세그먼트를 포함하는 방법.
  15. 제1항 내지 제14항 중 어느 한 항에 있어서, 상기 비트스트림의 제1 부분은 파라미터 세트에 포함되고, 상기 방법은 추가 세그먼트 그룹들을 디코딩하는 단계를 추가로 포함하고, 상기 어드레스 매핑은 상기 추가 세그먼트 그룹들을 디코딩하는 데 사용되는 방법.
  16. 제1항 내지 제15항 중 어느 한 항에 있어서, 상기 비트스트림의 제1 부분은 파라미터 세트에 포함되고, 상기 방법은 추가 픽처들을 디코딩하는 단계를 추가로 포함하고, 상기 어드레스 매핑은 상기 추가 픽처들을 디코딩하는 데 사용되는 방법.
  17. 비트스트림으로부터 픽처를 디코딩하기 위한 방법으로서 - 상기 픽처는 복수의 세그먼트 그룹들로 파티셔닝됨 -,
    세그먼트 그룹 인덱스 값을 제1 세그먼트 그룹에 대해 디코딩되는 세그먼트들의 수에 매핑하는 사이즈 매핑을 형성하기 위해 상기 비트스트림의 제1 부분을 디코딩하는 단계; 및
    상기 비트스트림의 제2 부분을 디코딩하는 단계
    를 포함하고,
    상기 비트스트림의 제2 부분은 상기 복수의 세그먼트 그룹들을 표현하는 코드 워드들을 포함하고,
    상기 비트스트림의 제2 부분을 디코딩하는 단계는 제1 세그먼트 그룹을 디코딩하는 단계를 포함하고,
    상기 제1 세그먼트 그룹을 디코딩하는 단계는,
    1) 상기 제1 세그먼트 그룹에 대한 제1 세그먼트 그룹 인덱스 값을 디코딩하는 단계;
    2) 상기 제1 세그먼트 그룹 인덱스 값 및 상기 사이즈 매핑에 기초하여 상기 제1 세그먼트 그룹에 대한 제1 사이즈를 결정하는 단계; 및
    3) 상기 디코딩된 픽처를 형성하기 위해 세그먼트들의 수를 디코딩하는 단계 - 상기 세그먼트들의 수는 상기 제1 사이즈와 동일함 -
    를 포함하는 방법.
  18. 제17항에 있어서, 상기 사이즈 매핑은 어레이 및/또는 리스트, 어레이들 및/또는 리스트들의 병렬 세트, 해시 맵, 및 연관 어레이 중 하나 이상을 포함하는 방법.
  19. 제17항 또는 제18항에 있어서, 상기 사이즈 매핑을 형성하기 위해 상기 비트스트림의 제1 부분을 디코딩하는 단계는,
    상기 비트스트림으로부터 리스트 값들의 수를 나타내는 제1 값을 디코딩하는 단계; 및
    상기 비트스트림으로부터 리스트 값들의 수를 디코딩함으로써 리스트를 형성하는 단계 - 상기 리스트 값들의 수는 상기 제1 값과 동일함 -
    를 포함하는 방법.
  20. 제19항에 있어서, 상기 제1 세그먼트 그룹 인덱스 값 및 상기 사이즈 매핑에 기초하여 상기 제1 세그먼트 그룹에 대한 제1 사이즈를 결정하는 단계는 상기 제1 세그먼트 그룹 인덱스 값을 사용하여 룩업 동작을 수행하는 단계를 포함하는 방법.
  21. 제17항 내지 제20항 중 어느 한 항에 있어서, 세그먼트 그룹들은 타일 그룹들에 대응하는 방법.
  22. 제17항 내지 제21항 중 어느 한 항에 있어서, 세그먼트 그룹들은 서브픽처들에 대응하는 방법.
  23. 제17항 내지 제22항 중 어느 한 항에 있어서, 세그먼트가 슬라이스에 대응하는 방법.
  24. 제17항 내지 제23항 중 어느 한 항에 있어서, 세그먼트 그룹이 하나 이상의 세그먼트를 포함하는 방법.
  25. 제17항 내지 제23항 중 어느 한 항에 있어서, 세그먼트 그룹이 단지 하나의 세그먼트를 포함하는 방법.
  26. 픽처를 비트스트림으로 인코딩하기 위한 방법으로서 - 상기 픽처는 복수의 세그먼트 그룹들로 파티셔닝됨 -,
    세그먼트 그룹 인덱스 값을 상기 복수의 세그먼트 그룹들에 대한 세그먼트 그룹 어드레스에 매핑하는 어드레스 매핑을 결정하는 단계;
    상기 비트스트림의 제1 부분을 인코딩하는 단계; 및
    상기 비트스트림의 제2 부분을 인코딩하는 단계
    를 포함하고,
    상기 비트스트림의 제1 부분을 인코딩하는 단계는 세그먼트 그룹 인덱스 값을 세그먼트 그룹 어드레스에 매핑하는 어드레스 매핑을 형성하는 코드 워드들을 생성하는 단계를 포함하고,
    상기 비트스트림의 제2 부분을 인코딩하는 단계는 상기 복수의 세그먼트 그룹들을 표현하는 코드 워드들을 생성하는 단계를 포함하고,
    상기 비트스트림의 제2 부분을 인코딩하는 단계는 제1 세그먼트 그룹을 인코딩하는 단계를 포함하고,
    상기 제1 세그먼트 그룹을 인코딩하는 단계는,
    1) 상기 제1 세그먼트 그룹에 대한 제1 세그먼트 그룹 어드레스로부터 제1 세그먼트 그룹 인덱스 값을 결정하는 단계 - 상기 어드레스 매핑은 상기 제1 세그먼트 그룹 인덱스 값을 상기 제1 세그먼트 그룹 어드레스에 매핑함 -;
    2) 상기 제1 세그먼트 그룹에 대한 제1 세그먼트 그룹 인덱스 값을 인코딩하는 단계; 및
    3) 상기 제1 세그먼트 그룹에 대한 샘플 값들을 인코딩하는 단계
    를 포함하는 방법.
  27. 제26항에 있어서, 상기 제1 세그먼트 그룹 인덱스 값을 인코딩하는 단계는 상기 제1 세그먼트 그룹 인덱스 값을 표현하는 하나 이상의 코드 워드를 생성하는 단계를 포함하는 방법.
  28. 픽처를 비트스트림으로 인코딩하기 위한 방법으로서 - 상기 픽처는 복수의 세그먼트 그룹들로 파티셔닝됨 -,
    세그먼트 그룹 인덱스 값을 제1 세그먼트 그룹에 대해 인코딩되는 세그먼트들의 수에 매핑하는 사이즈 매핑을 결정하는 단계;
    상기 비트스트림의 제1 부분을 인코딩하는 단계; 및
    상기 비트스트림의 제2 부분을 인코딩하는 단계
    를 포함하고,
    상기 비트스트림의 제1 부분을 인코딩하는 단계는 세그먼트 그룹 인덱스 값을 상기 제1 세그먼트 그룹에 대해 인코딩되는 세그먼트들의 수에 매핑하는 사이즈 매핑을 형성하는 코드 워드들을 생성하는 단계를 포함하고,
    상기 비트스트림의 제2 부분을 인코딩하는 단계는 상기 복수의 세그먼트 그룹들을 표현하는 코드 워드들을 생성하는 단계를 포함하고,
    상기 비트스트림의 제2 부분을 인코딩하는 단계는 제1 세그먼트 그룹을 인코딩하는 단계를 포함하고,
    상기 제1 세그먼트 그룹을 인코딩하는 단계는,
    1) 상기 제1 세그먼트 그룹에 대한 제1 세그먼트 그룹 인덱스 값을 결정하는 단계 - 상기 사이즈 매핑은 상기 제1 세그먼트 그룹에 대한 제1 세그먼트 그룹 인덱스 값을 제1 사이즈에 매핑하고, 상기 제1 사이즈는 상기 제1 세그먼트 그룹에 대해 인코딩되는 세그먼트들의 수임 -;
    2) 상기 제1 세그먼트 그룹에 대한 제1 세그먼트 그룹 인덱스 값을 인코딩하는 단계; 및
    3) 상기 제1 세그먼트 그룹에 대한 세그먼트들의 수를 인코딩하는 단계 - 상기 세그먼트들의 수는 상기 제1 사이즈와 동일함 -
    를 포함하는 방법.
  29. 제28항에 있어서, 상기 제1 세그먼트 그룹 인덱스 값을 인코딩하는 단계는 상기 제1 세그먼트 그룹 인덱스 값을 표현하는 하나 이상의 코드 워드를 생성하는 단계를 포함하는 방법.
  30. 제1항 내지 제25항 중 어느 한 항을 수행하도록 적응되는 디코더.
  31. 제26항 내지 제29항 중 어느 한 항을 수행하도록 적응되는 인코더.
  32. 비트스트림으로부터 픽처를 디코딩하기 위한 디코더로서 - 상기 픽처는 복수의 세그먼트 그룹들로 파티셔닝됨 -,
    디코딩 유닛 및 결정 유닛
    을 포함하고,
    상기 디코딩 유닛은 세그먼트 그룹 인덱스 값을 세그먼트 그룹 어드레스에 매핑하는 어드레스 매핑을 형성하기 위해 상기 비트스트림의 제1 부분을 디코딩하도록 구성되고,
    상기 디코딩 유닛은 상기 비트스트림의 제2 부분을 디코딩하도록 추가로 구성되고,
    상기 비트스트림의 제2 부분은 상기 복수의 세그먼트 그룹들을 표현하는 코드 워드들을 포함하고,
    상기 비트스트림의 제2 부분을 디코딩하는 것은 제1 세그먼트 그룹을 디코딩하는 것을 포함하고,
    상기 제1 세그먼트 그룹을 디코딩하는 것은,
    1) (상기 디코딩 유닛에 의해) 상기 제1 세그먼트 그룹에 대한 제1 세그먼트 그룹 인덱스 값을 디코딩하는 것;
    2) (상기 결정 유닛에 의해) 상기 제1 세그먼트 그룹 인덱스 값 및 상기 어드레스 매핑에 기초하여 상기 제1 세그먼트 그룹에 대한 제1 세그먼트 그룹 어드레스를 결정하는 것;
    3) (상기 결정 유닛에 의해) 상기 제1 세그먼트 그룹 어드레스에 기초하여 상기 제1 세그먼트 그룹에 대한 제1 공간 위치를 결정하는 것 - 상기 제1 공간 위치는 상기 픽처 내의 상기 제1 세그먼트 그룹의 위치를 표현함 -; 및
    4) (상기 디코딩 유닛에 의해) 상기 제1 세그먼트 그룹에 대한 적어도 하나의 샘플 값을 디코딩하고, 상기 적어도 하나의 샘플 값을 상기 제1 공간 위치에 의해 주어지는 디코딩된 픽처 내의 위치에 할당하는 것
    을 포함하는 디코더.
  33. 비트스트림으로부터 픽처를 디코딩하기 위한 디코더로서 - 상기 픽처는 복수의 세그먼트 그룹들로 파티셔닝됨 -,
    디코딩 유닛 및 결정 유닛
    을 포함하고,
    상기 디코딩 유닛은 세그먼트 그룹 인덱스 값을 제1 세그먼트 그룹에 대해 디코딩되는 세그먼트들의 수에 매핑하는 사이즈 매핑을 형성하기 위해 상기 비트스트림의 제1 부분을 디코딩하도록 구성되고,
    상기 디코딩 유닛은 상기 비트스트림의 제2 부분을 디코딩하도록 추가로 구성되고,
    상기 비트스트림의 제2 부분은 상기 복수의 세그먼트 그룹들을 표현하는 코드 워드들을 포함하고,
    상기 비트스트림의 제2 부분을 디코딩하는 것은 제1 세그먼트 그룹을 디코딩하는 것을 포함하고,
    상기 제1 세그먼트 그룹을 디코딩하는 것은,
    1) (상기 디코딩 유닛에 의해) 상기 제1 세그먼트 그룹에 대한 제1 세그먼트 그룹 인덱스 값을 디코딩하는 것;
    2) (상기 결정 유닛에 의해) 상기 제1 세그먼트 그룹 인덱스 값 및 상기 사이즈 매핑에 기초하여 상기 제1 세그먼트 그룹에 대한 제1 사이즈를 결정하는 것; 및
    3) (상기 디코딩 유닛에 의해) 디코딩된 픽처를 형성하기 위해 세그먼트들의 수를 디코딩하는 것 - 상기 세그먼트들의 수는 상기 제1 사이즈와 동일함 -
    을 포함하는 디코더.
  34. 비트스트림으로부터 픽처를 인코딩하기 위한 인코더로서 - 상기 픽처는 복수의 세그먼트 그룹들로 파티셔닝됨 -,
    인코딩 유닛 및 결정 유닛
    을 포함하고,
    상기 결정 유닛은 세그먼트 그룹 인덱스 값을 상기 복수의 세그먼트 그룹들에 대한 세그먼트 그룹 어드레스에 매핑하는 어드레스 매핑을 결정하도록 구성되고,
    상기 인코딩 유닛은 상기 비트스트림의 제1 부분을 인코딩하도록 구성되고,
    상기 인코딩 유닛은 상기 비트스트림의 제2 부분을 인코딩하도록 추가로 구성되고,
    상기 비트스트림의 제1 부분을 인코딩하는 것은 세그먼트 그룹 인덱스 값을 세그먼트 그룹 어드레스에 매핑하는 어드레스 매핑을 형성하는 코드 워드들을 생성하는 것을 포함하고,
    상기 비트스트림의 제2 부분을 인코딩하는 것은 상기 복수의 세그먼트 그룹들을 표현하는 코드 워드들을 생성하는 것을 포함하고,
    상기 비트스트림의 제2 부분을 인코딩하는 것은 제1 세그먼트 그룹을 인코딩하는 것을 포함하고,
    상기 제1 세그먼트 그룹을 인코딩하는 것은,
    1) (상기 결정 유닛에 의해) 상기 제1 세그먼트 그룹에 대한 제1 세그먼트 그룹 어드레스로부터 제1 세그먼트 그룹 인덱스 값을 결정하는 것 - 상기 어드레스 매핑은 상기 제1 세그먼트 그룹 인덱스 값을 상기 제1 세그먼트 그룹 어드레스에 매핑함 -;
    2) (상기 인코딩 유닛에 의해) 상기 제1 세그먼트 그룹에 대한 제1 세그먼트 그룹 인덱스 값을 인코딩하는 것; 및
    3) (상기 인코딩 유닛에 의해) 상기 제1 세그먼트 그룹에 대한 샘플 값들을 인코딩하는 것
    을 포함하는 인코더.
  35. 픽처를 비트스트림으로 인코딩하기 위한 인코더로서 - 상기 픽처는 복수의 세그먼트 그룹들로 파티셔닝됨 -,
    인코딩 유닛 및 결정 유닛
    을 포함하고,
    상기 결정 유닛은 세그먼트 그룹 인덱스 값을 제1 세그먼트 그룹에 대해 인코딩되는 세그먼트들의 수에 매핑하는 사이즈 매핑을 결정하도록 구성되고,
    상기 인코딩 유닛은 상기 비트스트림의 제1 부분을 인코딩하도록 구성되고,
    상기 인코딩 유닛은 상기 비트스트림의 제2 부분을 인코딩하도록 추가로 구성되고,
    상기 비트스트림의 제1 부분을 인코딩하는 것은 세그먼트 그룹 인덱스 값을 상기 제1 세그먼트 그룹에 대해 인코딩되는 세그먼트들의 수에 매핑하는 사이즈 매핑을 형성하는 코드 워드들을 생성하는 것을 포함하고,
    상기 비트스트림의 제2 부분을 인코딩하는 것은 상기 복수의 세그먼트 그룹들을 표현하는 코드 워드들을 생성하는 것을 포함하고,
    상기 비트스트림의 제2 부분을 인코딩하는 것은 제1 세그먼트 그룹을 인코딩하는 것을 포함하고,
    상기 제1 세그먼트 그룹을 인코딩하는 것은,
    1) (상기 결정 유닛에 의해) 상기 제1 세그먼트 그룹에 대한 제1 세그먼트 그룹 인덱스 값을 결정하는 것 - 상기 사이즈 매핑은 상기 제1 세그먼트 그룹에 대한 제1 세그먼트 그룹 인덱스 값을 제1 사이즈에 매핑하고, 상기 제1 사이즈는 상기 제1 세그먼트 그룹에 대해 인코딩되는 세그먼트들의 수임 -;
    2) (상기 인코딩 유닛에 의해) 상기 제1 세그먼트 그룹에 대한 제1 세그먼트 그룹 인덱스 값을 인코딩하는 것; 및
    3) (상기 인코딩 유닛에 의해) 상기 제1 세그먼트 그룹에 대한 세그먼트들의 수를 인코딩하는 것 - 상기 세그먼트들의 수는 상기 제1 사이즈와 동일함 -
    을 포함하는 인코더.
  36. 컴퓨터 프로그램으로서,
    노드의 프로세싱 회로망에 의해 실행될 때, 상기 노드로 하여금, 제1항 내지 제29항 중 어느 한 항의 방법을 수행하게 하는 명령어들을 포함하는 컴퓨터 프로그램.
  37. 캐리어로서,
    제36항의 컴퓨터 프로그램을 포함하고,
    상기 캐리어는 전자 신호, 광학 신호, 라디오 신호 및 컴퓨터 판독 가능 저장 매체 중 하나인 캐리어.
KR1020207033532A 2018-12-20 2019-12-13 비디오 인코딩 및 디코딩에서의 개선된 타일 어드레스 시그널링 KR102569347B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201862782722P 2018-12-20 2018-12-20
US62/782,722 2018-12-20
PCT/SE2019/051275 WO2020130912A1 (en) 2018-12-20 2019-12-13 Improved tile address signalling in video encoding and decoding

Publications (2)

Publication Number Publication Date
KR20210002601A true KR20210002601A (ko) 2021-01-08
KR102569347B1 KR102569347B1 (ko) 2023-08-22

Family

ID=71101533

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020207033532A KR102569347B1 (ko) 2018-12-20 2019-12-13 비디오 인코딩 및 디코딩에서의 개선된 타일 어드레스 시그널링

Country Status (8)

Country Link
US (2) US11272178B2 (ko)
EP (2) EP3766245A4 (ko)
JP (2) JP7158497B2 (ko)
KR (1) KR102569347B1 (ko)
CN (1) CN112088531B (ko)
BR (1) BR112020021892A2 (ko)
CO (1) CO2020013102A2 (ko)
WO (1) WO2020130912A1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102279486B1 (ko) * 2014-03-13 2021-07-20 삼성전자 주식회사 무선 통신 시스템에서 연결을 생성하는 방법 및 장치
US11863789B2 (en) * 2020-03-31 2024-01-02 Tencent America LLC Method for signaling rectangular slice partitioning in coded video stream
CN116737248B (zh) * 2023-08-09 2023-11-14 武汉凌久微电子有限公司 一种硬解码器的休眠和唤醒方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014030187A (ja) * 2012-07-02 2014-02-13 Canon Inc メディアファイル生成方法、メディアファイル生成プログラム
KR20150058428A (ko) * 2012-09-18 2015-05-28 브이아이디 스케일, 인크. 타일 및 타일 그룹을 이용한 관심 영역 비디오 코딩
US20160321294A1 (en) * 2015-04-30 2016-11-03 Vmware, Inc. Distributed, Scalable Key-Value Store
KR20170101983A (ko) * 2014-12-31 2017-09-06 노키아 테크놀로지스 오와이 스케일러블 비디오 코딩 및 디코딩을 위한 계층 간 예측
EP3293981A1 (en) * 2016-09-08 2018-03-14 Koninklijke KPN N.V. Partial video decoding method, device and system
KR20180127997A (ko) * 2016-03-30 2018-11-30 퀄컴 인코포레이티드 Hevc 및 l­hevc 파일 포맷들에서의 타일 그룹화에 대한 개선

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9300976B2 (en) * 2011-01-14 2016-03-29 Cisco Technology, Inc. Video encoder/decoder, method and computer program product that process tiles of video data
US9584819B2 (en) 2011-10-24 2017-02-28 Qualcomm Incorporated Grouping of tiles for video coding
US10013474B2 (en) * 2011-10-25 2018-07-03 The United States Of America, As Represented By The Secretary Of The Navy System and method for hierarchical synchronization of a dataset of image tiles
US9124895B2 (en) * 2011-11-04 2015-09-01 Qualcomm Incorporated Video coding with network abstraction layer units that include multiple encoded picture partitions
GB2513303B (en) 2013-04-16 2017-06-07 Canon Kk Method and device for partitioning an image
US20160124841A1 (en) * 2013-06-06 2016-05-05 Hitachi, Ltd. Information processing system and data processing method
AU2014294127B2 (en) 2013-07-22 2018-09-13 Sony Corporation Image processing device and method
EP3090558A4 (en) * 2014-01-03 2017-08-16 Nokia Technologies OY Parameter set coding
EP3162075B1 (en) * 2014-06-27 2020-04-08 Koninklijke KPN N.V. Hevc-tiled video streaming
EP3162074A1 (en) * 2014-06-27 2017-05-03 Koninklijke KPN N.V. Determining a region of interest on the basis of a hevc-tiled video stream
US10291923B2 (en) 2016-05-24 2019-05-14 Qualcomm Incorporated Mapping of tile grouping and samples in HEVC and L-HEVC file formats
US10917564B2 (en) 2016-10-12 2021-02-09 Qualcomm Incorporated Systems and methods of generating and processing files for partial decoding and most interested regions
KR102424829B1 (ko) 2017-02-22 2022-07-25 에스케이텔레콤 주식회사 비디오 데이터가 부호화된 비트스트림을 처리하는 방법
US11062738B2 (en) * 2017-03-23 2021-07-13 Qualcomm Incorporated Signalling of video content including sub-picture bitstreams for video coding
US10649969B2 (en) * 2017-06-13 2020-05-12 Western Digital Technologies, Inc. Memory efficient persistent key-value store for non-volatile memories
US11436353B2 (en) * 2017-09-13 2022-09-06 Vmware, Inc. Merge updates for key value stores

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014030187A (ja) * 2012-07-02 2014-02-13 Canon Inc メディアファイル生成方法、メディアファイル生成プログラム
KR20150058428A (ko) * 2012-09-18 2015-05-28 브이아이디 스케일, 인크. 타일 및 타일 그룹을 이용한 관심 영역 비디오 코딩
KR20170101983A (ko) * 2014-12-31 2017-09-06 노키아 테크놀로지스 오와이 스케일러블 비디오 코딩 및 디코딩을 위한 계층 간 예측
US20160321294A1 (en) * 2015-04-30 2016-11-03 Vmware, Inc. Distributed, Scalable Key-Value Store
KR20180127997A (ko) * 2016-03-30 2018-11-30 퀄컴 인코포레이티드 Hevc 및 l­hevc 파일 포맷들에서의 타일 그룹화에 대한 개선
EP3293981A1 (en) * 2016-09-08 2018-03-14 Koninklijke KPN N.V. Partial video decoding method, device and system
WO2018046705A2 (en) * 2016-09-08 2018-03-15 Koninklijke Kpn N.V. Partial video decoding method, device and system

Also Published As

Publication number Publication date
US20210144372A1 (en) 2021-05-13
JP2023024970A (ja) 2023-02-21
JP7158497B2 (ja) 2022-10-21
CN112088531B (zh) 2024-08-02
CO2020013102A2 (es) 2020-11-10
EP3866471A1 (en) 2021-08-18
US11272178B2 (en) 2022-03-08
EP3766245A4 (en) 2021-01-27
WO2020130912A1 (en) 2020-06-25
EP3766245A1 (en) 2021-01-20
US20220150495A1 (en) 2022-05-12
BR112020021892A2 (pt) 2021-07-27
JP2021528879A (ja) 2021-10-21
KR102569347B1 (ko) 2023-08-22
CN112088531A (zh) 2020-12-15

Similar Documents

Publication Publication Date Title
US11622132B2 (en) Slicing and tiling for sub-image signaling in video coding
US11477470B2 (en) Encoding and decoding pictures based on tile group ID
US20220150495A1 (en) Video encoding and decoding
JP2022525329A (ja) 混合されたnalユニットタイプを有するピクチャ
BR112021012632A2 (pt) Codificador de vídeo, decodificador de vídeo e métodos correspondentes
CN113545091A (zh) 最大变换大小控制
US11729384B2 (en) Explicit address signaling in video coding
JP7542066B2 (ja) 画像セグメントの順序付け
US20240171755A1 (en) Picture Tile Attributes Signaled Per-Tile
US20240323372A1 (en) Video encoding and decoding

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