KR20220130149A - 인 루프 필터링과 비디오 슬라이스들 간의 상호작용 - Google Patents

인 루프 필터링과 비디오 슬라이스들 간의 상호작용 Download PDF

Info

Publication number
KR20220130149A
KR20220130149A KR1020227027174A KR20227027174A KR20220130149A KR 20220130149 A KR20220130149 A KR 20220130149A KR 1020227027174 A KR1020227027174 A KR 1020227027174A KR 20227027174 A KR20227027174 A KR 20227027174A KR 20220130149 A KR20220130149 A KR 20220130149A
Authority
KR
South Korea
Prior art keywords
video
bitstream
slice
coding
block
Prior art date
Application number
KR1020227027174A
Other languages
English (en)
Inventor
카이 장
리 장
양 왕
이에-쿠이 왕
즐핀 덩
지장 수
홍빈 리우
Original Assignee
베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드
바이트댄스 아이엔씨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드, 바이트댄스 아이엔씨 filed Critical 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드
Publication of KR20220130149A publication Critical patent/KR20220130149A/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/117Filters, e.g. for pre-processing or post-processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/174Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a slice, e.g. a line of blocks or a group of blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/186Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component
    • 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
    • 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/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/63Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets
    • H04N19/635Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets characterised by filter definition or implementation details
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • H04N19/82Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/86Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving reduction of coding artifacts, e.g. of blockiness

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Discrete Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

비디오 처리를 위한 방법들, 장치들 및 시스템들이 개시된다. 일 예시적 방법은 비디오 유닛을 포함하는 비디오와 상기 비디오의 비트스트림 간의 변환을 실시하는 단계를 포함하고, 이때 상기 비트스트림은 포맷 규칙을 따르며, 그리고 상기 포맷 규칙은 인 루프 필터링 동작이 슬라이스 경계들을 가로질러 실시되는지 여부를 지시하는 신택스 요소가 상기 비디오 유닛이 슬라이스들로 분할되는지 여부 또는 어떻게 분할되는지에 대응하여 상기 비트스트림에 선택적으로 포함됨을 명시한다.

Description

인 루프 필터링과 비디오 슬라이스들 간의 상호작용
관련 출원들에 대한 상호 참조
파리협약에 따른 적용가능한 특허법 및/또는 규칙에 따라, 본 출원은 2020년 2월 14일에 제출된 국제출원 No. PCT/CN2020/075216의 우선권과 혜택을 적시에 주장하기 위해 만들어졌다. 상기 법 하의 모든 목적을 위해, 상기 출원의 전체 개시물은 본 출원의 개시의 일부로서 참고로 통합된다.
본 특허 문서는 영상 및 비디오 코딩에 관한 것이다
디지털 비디오는 인터넷 및 기타 디지털 통신 네트워크에서 가장 큰 대역폭을 차지한다. 비디오를 수신하고 표시할 수 있는 접속된 사용자 디바이스들의 수가 증가함에 따라, 디지털 비디오 사용을 위한 대역폭 수요가 계속 증가할 것으로 예상된다.
본 문서는 비디오 인코더들 및 디코더들이 코딩된 표현의 디코딩에 유용한 제어 정보를 사용하여 상기 코딩된 표현을 처리하기 위해 사용할 수 있는 기술들을 개시한다.
일 예시적 측면에서, 비디오 처리 방법이 개시된다. 상기 방법은 비디오 유닛을 포함하는 비디오와 상기 비디오의 비트스트림 간의 변환을 실시하는 단계를 포함하고, 이때 상기 비트스트림은 포맷 규칙을 따르고, 그리고 상기 포맷 규칙은 인 루프 필터링 동작이 타일 경계들을 가로질러 실시되는지 여부를 지시하는 제1 신택스 요소가 상기 비디오 유닛이 타일들로 분할되는지 여부 또는 어떻게 분할되는지에 대응하여 상기 비트스트림에 선택적으로 포함된다고 명시한다.
다른 예시적 측면에서, 비디오 처리 방법이 개시된다. 상기 방법은 비디오의 비디오 유닛과 상기 비디오의 비트스트림 간의 변환을 실시하는 단계를 포함하고, 이때 상기 비트스트림은 포맷 규칙을 따르고, 그리고 상기 포맷 규칙은 인 루프 필터링 동작이 슬라이스 경계들을 가로질러 실시되는지 여부를 지시하는 신택스 요소가 상기 비디오 유닛이 슬라이스들로 분할되는지 여부 또는 어떻게 분할되는지에 대응하여 상기 비트스트림에 선택적으로 포함된다고 명시한다.
다른 예시적 측면에서, 비디오 처리 방법이 개시된다. 상기 방법은 비디오의 비디오 영역과 상기 비디오의 비트스트림 간의 변환을 실시하는 단계를 포함하고, 이때 상기 비트스트림은 포맷 규칙을 따르고, 상기 포맷 규칙은 상기 변환에 대한 툴의 적용 가능성에 관한 정보가 비디오 슬라이스 레벨 및/또는 비디오 픽처 레벨에서 상기 비트스트림에서 지시된다고 명시하며, 그리고 상기 툴은 루마 샘플들을 특정 값들에 매핑시키고 스캐일링 동작을 크로마 샘플들의 값들에 선택적으로 적용한다.
다른 예시적 측면에서, 비디오 처리 방법이 개시된다. 상기 방법은 비디오의 비디오 영역과 상기 비디오의 비트스트림 간의 변환을 실시하는 단계를 포함하고, 이때 상기 변환은 크기 규칙을 따르고, 그리고 상기 크기 규칙은 변환 스킵(TS: transform skip) 코딩 방식 또는 블록 기반 델타 펄스 코드 변조(BDPCM: block-based delta pulse code modulation) 코딩 방식을 사용하여 코딩된 상기 비디오 영역의 최대 크기 또는 상기 비디오 영역의 코딩 특성에 따른 상기 비디오 영역을 위한 변환 블록의 최대 크기를 명시한다.
다른 예시적 측면에서, 비디오 처리 방법이 개시된다. 상기 방법은 비디오의 비디오 영역과 상기 비디오의 비트스트림 간의 변환을 실시하는 단계를 포함하고, 이때 상기 변환은 상기 변환 동안 사용되는 최소 허용 코딩 블록 크기가 최대 허용 변환 블록 크기가 상기 비트스트림에 포함되는지 여부 및/또는 어떻게 포함되는지를 제어한다고 명시하는 포맷 규칙을 따른다.
다른 예시적 측면에서, 비디오 처리 방법이 개시된다. 상기 방법은 비디오의 비디오 영역과 상기 비디오의 비트스트림 간의 변환을 실시하는 단계를 포함하고, 이때 상기 비트스트림은 상기 변환 동안 사용되는 최소 허용 코딩 블록 크기가 변환 스킵(TS) 방식 또는 블록 기반 델타 펄스 코디 변조(BDPCM) 방식을 사용하여 코딩하거나 디코딩하기 위한 비디오 영역의 최대 크기의 지시가 상기 비트스트림에 포함되는지 여부 및/또는 어떻게 포함되는지를 제어한다고 명시하는 포맷 규칙을 따른다.
다른 예시적 측면에서, 비디오 처리 방법이 개시된다. 상기 방법은 비디오의 비디오 유닛과 상기 비디오의 비트스트림 간의 변환을 포맷 규칙에 따라 실시하는 단계를 포함하며, 이때 상기 비트스트림은 상기 변환 동안 사용되는 최소 허용 코딩 블록 크기가 변환 스킵(TS) 방식 또는 블록 기반 델타 펄스 코디 변조(BDPCM) 방식이 활성화되는지 또는 비활성화되는지를 지시하는 필드가 상기 비트스트림에 포함되는지 여부 및/또는 어떻게 포함되는지를 제어한다고 명시하는 상기 포맷 규칙을 따른다.
다른 예시적 측면에서, 비디오 처리 방법이 개시된다. 상기 방법은 비디오의 비디오 유닛과 상기 비디오의 비트스트림 간의 변환을 포맷 규칙에 따라 실시하는 단계를 포함하며, 이때 상기 비트스트림은 상기 변환 동안 사용되는 최소 허용 코딩 블록 크기가 상기 변환에서 코딩 툴의 적용가능성에 관한 정보를 전달하는 필드가 상기 비트스트림에서 비디오 영역 레벨에 포함되는지 여부 및/또는 어떻게 포함되는지를 제어한다고 명시하는 상기 포맷 규칙을 따른다.
다른 예시적 측면에서, 비디오 처리 방법이 개시된다. 상기 방법은, 비디오의 비디오 영역과 상기 비디오의 비트스트림 간의 변환을 위해, 상기 비디오 영역에 대해 이중 트리 코딩 방식이 활성화되었기 때문에 상기 비디오의 루마 성분 및 크로마 성분에 대해 사용되는 분할 방식들이 상이한 최소 허용 블록 크기들을 가지고 있음을 판단하는 단계, 그리고 상기 판단을 기반으로 상기 변환을 실시하는 단계를 포함한다.
다른 예시적 측면에서, 비디오 처리 방법이 개시된다. 상기 방법은, 비디오의 비디오 영역과 상기 비디오의 비트스트림 간의 변환을 위해, 상기 비디오 영역에 대해 허용된 서브 블록 기반 머지 후보들의 최대 수를 규칙에 기반하여 결정하는 단계, 그리고 상기 결정에 기반하여 상기 변환을 실시하는 단계를 포함하며, 이때 상기 규칙은 상기 변환 동안 사용되는 서브 블록 기반 머지 후보들의 최대 수가 제1 변수 및 제2 변수의 합으로 유도될 수 있다고 명시하며, 상기 제1 변수는 어파인 예측이 비활성화되는 것에 상응하여 제로(0)과 같고, 그리고 상기 제2 변수는 서브 블록 기반 시간적 모션 벡터 예측(sbTMVP: sub-block based temporal motion vector prediction)이 활성화되는지 여부에 기반한다.
다른 예시적 측면에서, 비디오 처리 방법이 개시된다. 상기 방법은, 비디오가 4:2:2 비디오 또는 4:4:4 비디오인 관계로 변환에 적용가능한 처리 규칙을 준수함으로써, 상기 비디오의 비디오 영역과 상기 비디오 영역의 비트스트림 간의 상기 변환을 실시하는 단계를 포함하며, 이때 상기 처리 규칙은 (a) 적응적 루프 필터링(ALF: adaptive loop filtering) 동작의 가상 경계와 코딩 트리 블록(CTB)의 하단 경계 사이의 픽셀 라인들의 수, 또는 (b) 상기 ALF 동작의 상기 가상 경계와 상기 CTB의 상기 하단 경계 사이의 행에 적용되는 필터의 필터 강도, 또는 (c) 동일한 행에 있는 루마 및 크로마 샘플들을 패딩하기 위해 사용되는 패딩 방법 중 하나 또는 그 이상을 위해 크로마와 루마가 정렬된다고 정의한다.
다른 예시적 측면에서, 비디오 처리 방법이 개시된다. 상기 방법은, 비디오의 비디오 유닛과 상기 비디오의 코딩된 표현 간의 변환을 위해, 상기 비디오의 비디오 영역들을 가로지르는 인 루프 필터링의 적용가능성의 지시가 상기 코딩된 표현에 포함되는지 여부를 판단하는 단계, 그리고 상기 판단에 기반하여 상기 변환을 실시하는 단계를 포함한다.
다른 예시적 측면에서, 비디오 처리 방법이 개시된다. 상기 방법은 비디오의 비디오 영역과 상기 비디오의 코딩된 표현 간의 변환을 실시하는 단계를 포함하며, 이때 상기 코딩된 표현은 포맷 규칙을 따르고, 상기 포맷 규칙은 루마 매핑 및 크로마 스케일링(LMCS: luma mapping with chroma scaling) 툴의 상기 변환으로의 적용가능성에 관한 정보가 비디오 슬라이스 레벨에서 상기 코딩된 표현에서 지시된다고 명시하고, 상기 LMCS 툴은, 상기 변환 동안, 제1 도메인 및 제2 도메인에 기초하여 상기 현재 비디오 블록을 구성하는 것을 포함하고/포함하거나 크로마 잔차가 루마 의존적 방식으로 스케일링 된다.
다른 예시적 측면에서, 비디오 처리 방법이 개시된다. 상기 방법은 비디오와 상기 비디오의 코딩된 표현 간의 변환을 실시하는 단계를 포함하며, 이때 상기 변환은 크기 규칙을 따르며, 상기 크기 규칙은, 인코딩 동안, 변환 스킵 코딩 방식 또는 델타 펄스 코딩된 변조 코딩 방식을 사용하여 코딩된 비디오 영역의 최대 크기에 대해 상기 크기 규칙을 실시하거나, 또는, 디코딩 동안, 변환 스킵 디코딩 방식 또는 델타 펄스 코딩된 변조 디코딩 방식을 사용하여 디코딩된 상기 비디오 영역의 상기 최대 크기에 대해 상기 크기 규칙을 실시함으로써 상기 코딩된 표현을 파싱 및 디코딩함을 명시한다.
다른 예시적 측면에서, 비디오 처리 방법이 개시된다. 상기 방법은 비디오의 비디오 영역과 상기 비디오의 코딩된 표현 간의 변환을 실시하는 단계를 포함하며, 이때 상기 코딩된 표현은 상기 변환 동안 사용된 최소 허용 변환 블록 크기가 최대 허용 변환 블록 크기의 지시가 상기 코딩된 표현에 포함되는지 여부를 또는 어떻게 포함되는지를 제어한다고 명시하는 포맷 규칙을 따른다.
다른 예시적 측면에서, 비디오 처리 방법이 개시된다. 상기 방법은 비디오의 비디오 유닛과 상기 비디오의 코딩된 표현 간의 변환을 포맷 규칙에 따라 실시하는 단계를 포함하며, 이때 상기 코딩된 표현은, 상기 변환 동안 사용된 최소 허용 코딩 블록 크기가 상기 변환에의 코딩 툴의 적용가능성에 관한 정보를 전달하는 필드가 비디오 영역 레벨에서 포함되는지 여부를 제어함을 명시하는, 상기 포맷 규칙을 따른다.
다른 예시적 측면에서, 비디오 처리 방법이 개시된다. 상기 방법은, 비디오의 비디오 영역과 상기 비디오의 코딩된 표현 간의 변환에 대해, 이중 트리 코딩이 상기 변환에 대해 사용되는 관계로, 상기 비디오의 루마 및 크로마 성분들에 대해 사용되는 분할 방식들이 상기 루마 및 크로마 성분들에 대해 상이한 최소 허용 블록 크기들을 가지고 있음을 판단하는 단계, 그리고 상기 판단에 기반하여 상기 변환을 실시하는 단계를 포함한다.
다른 예시적 측면에서, 비디오 처리 방법이 개시된다. 상기 방법은 비디오의 비디오 영역과 상기 비디오 영역의 코딩된 표현 간의 변환을 상기 코딩된 표현에 대한 포맷 규칙을 준수하여 실시하는 단계를 포함하며, 이때 상기 포맷 규칙은 상기 변환 동안 사용된 서브 블록 기반 머지 후보들의 최대 수가 제1 변수와 제2 변수의 합으로 도출 가능하다고 명시하고, 어파인 예측의 사용이 상기 제1 변수의 값을 제어하고, 그리고 서브 블록 기반 시간적 모션 벡터 예측의 사용이 상기 제2 변수의 값을 제어한다.
다른 예시적 측면에서, 비디오 처리 방법이 개시된다. 상기 방법은 비디오가 4:2:2 비디오 또는 4:4:4 비디오인 관계로 변환에 적용가능한 처리 규칙을 준수함으로써, 상기 비디오의 비디오 영역과 상기 비디오 영역의 코딩된 표현 간의 상기 변환을 실시하는 단계를 포함하며, 이때 상기 처리 규칙은 (a) 적응적 루프 필터링 동작의 가상 경계와 코딩 트리 블록의 하단 경계 사이의 픽셀 라인들의 수, 또는 (b) 상기 적응적 루프 필터링 동작의 상기 가상 경계와 상기 코딩 트리 블록의 상기 하단 경계 사이의 행에 적용되는 필터의 필터 강도, 또는 (c) 행에 있는 비디오 샘플들을 패딩하기 위해 사용되는 패딩 방법 중 하나 또는 그 이상을 위해 크로마와 루마가 정렬된다고 정의한다.
또 다른 예시적 측면에서, 비디오 인코더 장치가 개시된다. 상기 비디오 인코더는 상기 기술된 방법들을 실행하도록 구성된 프로세서를 포함한다.
또 다른 예시적 측면에서, 비디오 디코더 장치가 개시된다. 상기 비디오 디코더는 상기 기술된 방법들을 실행하도록 구성된 프로세서를 포함한다.
또 다른 예시적 측면에서, 코드를 저장하는 컴퓨터 판독 가능한 매체가 개시된다. 상기 코드는 여기에 기술된 방법들 중 하나를 프로세서로 실행 가능한 코드의 형태로 구현한다.
이와 같은 특성들 및 여타 특성들은 본 문서 전체에 걸쳐 기술된다.
도 1은 12개의 타일들 및 3개의 래스터 스캔 슬라이스들로 분할되는 픽처의 래스터 스캔 슬라이스 분할의 예를 도시한다.
도 2는 24개의 타일들(6개의 타일 열 및 4개의 타일 행) 및 9개의 직사각형 슬라이스들로 분할되는 픽처의 직사각형 슬라이스 분할의 예를 도시한다.
도 3은 타일들 및 직사각형 슬라이스들로 분할되는 픽처의 예를 도시하며, 여기서 상기 픽처는 4개의 타일들(2개의 타일 열 및 2개의 타일 행) 및 4개의 직사각형 슬라이스들로 분할된다.
도 4는 15개의 타일들, 24개의 슬라이스들 그리고 24개의 서브픽처들로 분할되는 픽처를 도시한다.
도 5는 픽처에서 4:2:2 루마 및 크로마 샘플들의 공칭 수직 및 수평 위치들을 도시한다.
도 6은 ALF 필터 모양들의 예를 도시한다.
도 7A 내지 7D는 서브샘플링된 라플라시안 계산을 도시한다. 도 7A는 수직 그래디언트에 대한 서브샘플링된 위치들을 도시한다. 도 7B는 수평 그래디언트에 대한 서브샘플링된 위치들을 도시한다. 도 7C는 대각선 그래디언트에 대한 서브샘플링된 위치들을 도시한다. 도 7D는 대각선 그래디언트에 대한 서브샘플링된 위치들을 도시한다.
도 8은 루마 성분에 대한 VTM-4.0에서의 루프 필터 라인 버터 요구사항의 예를 도시한다.
도 9는 크로마 성분에 대한 VTM-4.0에서의 루프 필터 라인 버터 요구사항의 예를 도시한다.
도 10은 가상 경계들에서 수정된 블록 분류를 도시한다.
도 11은 가상 경계들에서 루마 성분에 대한 수정된 ALF 필터링의 예를 도시한다.
도 12A 내지 도 12C는 가상 경계에서 수정된 루마 ALF 필터링을 도시한다.
도 13은 픽처 또는 서브픽처 또는 슬라이스 또는 타일 경계에서 루마 ALF 필터링을 위한 반복적 패딩의 예들을 도시한다.
도 14A 내지 도 14D는 ALF에 대해 미러링된 패딩을 위한 예를 도시한다.
도 15는 예시적 비디오 처리 시스템의 블록도이다.
도 16은 비디오 처리 장치의 블록도이다.
도 17은 비디오 처리의 예시적인 방법을 위한 순서도다.
도 18은 본 개시의 일부 실시예들에 따른 비디오 코딩 시스템을 도시하는 블록도이다.
도 19는 본 개시의 일부 실시예들에 따른 인코더를 도시하는 블록도이다.
도 20은 본 개시의 일부 실시예들에 따른 디코더를 도시하는 블록도이다.
도 21 내지 도 31은 비디오 처리의 예시적 방법들에 대한 순서도들이다.
섹션 표제들은 본 문서에서 이해의 편의를 위해 사용된 것으로 각 섹션에 개시된 기술들 및 실시예들의 적용을 해당 섹션으로 한정하지 않는다. 또한, H.266용어는 일부 설명에서 이해의 편의를 위해서만 사용되며 개시된 기술들의 범위를 제한하기 위한 것이 아니다. 이와 같이, 여기에 설명된 기술은 다른 비디오 코덱 프로토콜 및 설계에도 적용할 수 있다.
1. 요약 (Summary)
본 문서는 비디오 코딩 기술들에 관한 것이다. 구체적으로 서브픽처들, 타일들 그리고 슬라이스들의 시그널링에 관한 것이다. 착안들은, 개별적으로 또는 다양한 조합으로, 임의의 비디오 코딩 표준 또는 멀티 레이어 비디오 코딩을 지원하는 비표준 비디오 코덱, 예를 들면, 개발중인 VVC(Versatile Video Coding)에 적용될 수 있다.
2. 약어 (Abbreviations)
APS Adaptation Parameter Set (적응 파라미터 세트)
AU Access Unit (액세스 유닛)
AUD Access Unit Delimiter (액세스 유닛 구분자)
AVC Advanced Video Coding (고급 비디오 코딩)
CLVS Coded Layer Video Sequence (코딩된 레이어 비디오 시퀀스)
CPB Coded Picture Buffer (코딩된 픽처 버퍼)
CRA Clean Random Access (클린 랜덤 액세스)
CTU Coding Tree Unit (코딩 트리 유닛)
CVS Coded Video Sequence (코딩된 비디오 시퀀스)
DPB Decoded Picture Buffer (디코딩된 픽처 버퍼)
DPS Decoding Parameter Set (디코딩 파라미터 세트)
EOB End Of Bitstream (비트스트림 끝)
EOS End Of Sequence (시퀀스 끝)
GDR Gradual Decoding Refresh (점진적 디코딩 리프레시)
HEVC High Efficiency Video Coding (고효율 비디오 코딩)
HRD Hypothetical Reference Decoder (가상 참조 디코더)
IDR Instantaneous Decoding Refresh (순시 디코딩 리프레시)
JEM Joint Exploration Model (합동 탐사 모델)
MCTS Motion-Constrained Tile Sets (모션 제약 타일 세트)
NAL Network Abstraction Layer (네트워크 추상 레이어)
OLS Output Layer Set (출력 레이어 세트)
PH Picture Header (픽처 헤더)
PPS Picture Parameter Set (픽처 파라미터 세트)
PTL Profile, Tier and Level (프로파일, 티어 및 레벨)
PU Picture Unit (픽처 유닛)
RBSP Raw Byte Sequence Payload (로 바이트 시퀀스 페이로드)
SEI Supplemental Enhancement Information (추가 향상 정보)
SPS Sequence Parameter Set (시퀀스 파라미터 세트)
SVC Scalable Video Coding (스캐일러블 비디오 코딩)
VCL Video Coding Layer (비디오 코딩 레이어)
VPS Video Parameter Set (비디오 파라미터 세트)
VTM VVC Test Model (VVC 테스트 모델)
VUI Video Usability Information (비디오 사용성 정보)
VVC Versatile Video Coding (다목적 비디오 코딩)
3. 도입적인 논의 (Initial Discussion)
비디오 코딩 표준들은 잘 알려진 ITU-T 및 ISO/IEC 표준들의 개발을 통해 주로 발전해 왔다. ITU-T는 H.261및 H.263을 제작했으며, ISO/IEC는 MPEG-1 및 MPEG-4 Visual을 제작하였다. 두 기관은 H.262/MPEG-2 Video, H.264/MPEG-4 Advanced Video Coding (AVC) 그리고 H.265/HEVC 표준들을 공동으로 제작하였다. H.262 이후, 비디오 코딩 표준들은 시간 예측과 변환 코딩이 함께 활용되는 하이브리드 비디오 코딩 구조를 기반으로 한다. HEVC를 넘어서는 미래형 비디오 코딩 기술들을 탐구하기 위해, 2015년에 VCEG와 MPEG는 공동 비디오 탐사 팀 (Joint Video Exploration Team (JVET))를 공동 설립하였다. 그 이후로, 많은 새로운 기법들이 JVET에 의해 채택되어 공동 탐사 모델 (Joint Exploration Model (JEM))이라는 참조 소프트웨어에 포함되었다. JVET 회의는 매 분기마다 동시에 개최되며, 새로운 코딩 표준은 HEVC 대비 비트 레이트 50% 감소를 목표로 한다. 2018년 4월 새로운 코딩 표준은 VVC라는 공식적인 이름을 가지게 되었고, 당시에 VVC 테스트 모델 (VTM)의 첫 번째 버전이 출시되었다. VVC 표준화에 대한 지속적인 노력이 있는 관계로, 매 JVET 회의 마다 새로운 코딩 기술들이 VVC 표준에 채택되고 있다. 이후 상기 VVC 규격 초안 및 테스트 모델 VTM은 매 회의 마다 업데이트되었다. 이제 상기 VVC 프로젝트는 2020년 7월 회의에서 기술적 완성(FDIS)를 목표로 하고 있다.
3.1. HEVC에서 픽처분할 방식들
HEVC는 일반(regular) 슬라이스들, 종속적인 슬라이스들, 타일들 및 파면 병렬 프로세싱(WPP: wavefront parallel processing) 등 네 가지 서로 다른 픽처 분할 방식들을 포함하고 있으며 최대 전송 유닛(MTU: maximum transfer unit) 크기 매칭, 병렬 프로세싱 및 감소된 단대단(end-to-end) 지연에 적용될 수 있다.
일반 슬라이스들은 H.264/AVC에서와 유사하다. 각 일반 슬라이스는 고유 NAL 유닛에 캡슐화되고, 픽처 내 예측(인트라 샘플 예측, 모션 정보 예측, 코딩 모드 예측) 및 슬라이스 경계에 걸친 엔트로피 코딩 종속성이 비활성화된다. 따라서, 일반 슬라이스는 동일한 픽처 내의 다른 일반 슬라이스들에 독립적으로 복원될 수 있다(그러나, 루프 필터링 동작으로 인해 여전히 상호종속성은 가지고 있을 수 있음).
일반 슬라이스는 H.264/AVC에서도 거의 동일한 형태로 사용 가능한 병렬화에 사용할 수 있는 유일한 도구이다. 일반 슬라이스 기반 병렬화는 많은 인터 프로세서 또는 인터 코어 통신을 필요로 하지 않는다 (예측 코딩된 픽처를 디코딩할 때 모션 보상을 위한 인터 프로세서 또는 인터 코어 데이터 공유를 제외하면, 일반적으로 픽처 내 예측으로 인한 인터 프로세서 또는 인터 코어 데이터 공유보다 훨씬 무겁다). 그러나, 동일한 근거로, 일반 슬라이스를 사용하면 슬라이스 헤더의 비트 비용과 슬라이스 경계들에 걸친 예측 부족으로 인해 상당한 코딩 오버헤드가 발생할 수 있다. 또한, 일반 슬라이스(하기에 언급된 다른 도구들과 대조적으로)는 일반 슬라이스의 픽처 내 독립성 및 각 일반 슬라이스가 고유 NAL 유닛으로 캡슐화되어있기 때문에 MTU 크기 요구 사항과 일치하도록 비트스트림 분할을 위한 핵심 메커니즘으로도 사용된다. 많은 경우에, 병렬화의 목표 및 MTU 크기 매칭의 목표는 픽처 내 슬라이스 레이아웃에 대한 요구와 상충된다. 이러한 상황이 실제로 발생함에 따라 하기에 언급된 병렬화 도구들의 개발로 이어졌다.
종속 슬라이스는 짧은 슬라이스 헤더를 가지며, 픽처 내 예측을 깨뜨리지 않고 트리블록 경계에서 비트스트림의 분할을 허용한다. 기본적으로, 종속 슬라이스는 일반 슬라이스를 복수의 NAL 유닛들로 조각화 하여 제공하는데, 전체 일반 슬라이스의 인코딩이 완결되기 전에 일반 슬라이스의 일부가 전송되는 것을 허용함으로써 단대단 지연을 감소시키기 위함이다.
WPP에서, 픽처는 코딩 트리 블록(CTB)들의 단일 행들로 분할된다. 엔트로피 디코딩 및 예측은 CTB의 데이터를 다른 분할들에서 사용할 수 있다. 병렬 프로세싱은 CTB 행들의 병렬 디코딩을 통해 가능하며, 여기서 CTB 행의 디코딩 시작은 두 CTB만큼 지연되므로, 대상 CTB가 디코딩되기 전에 대상 CTB의 상단 및 우측의 CTB와 연관된 데이터를 사용할 수 있다. 이러한 시차가 있는 시작(그래픽으로 표현될 때 파면처럼 나타남)을 사용하여, 픽처가 CTB 행을 포함하는 만큼의 프로세서 및 코어로 병렬화가 가능하다. 픽처 내의 인접 트리 블록 행들 간의 픽처 내 예측이 허용되기 때문에, 픽처 내 예측을 가능하게 하기 위해 필수적인 인터 프로세서/인터 코어 통신이 다수 발생할 수 있다. WPP 분할은 적용되지 않을 때와 비교하여 추가적인 NAL 유닛을 생성하지 않으므로, WPP는 MTU 크기 매칭을 위한 도구가 아니다. 그러나, MTU 크기 매칭이 필요한 경우, 일반 슬라이스는 특정 코딩 오버헤드와 함께 WPP와 사용될 수 있다.
타일들은 픽처를 타일 열들 및 행들로 분할하는 수평 및 수직 경계들를 정의한다. 타일 열은 픽처의 상단에서 상기 픽처의 하단까지 이어진다. 마찬가지로, 타일 행은 픽처의 좌측부터 상기 픽처의 우측까지 이어진다. 픽처에서 타일들의 수는 타일 행의 수와 타일 열의 수를 곱함으로써 단순하게 유도될 수 있다.
CTB의 스캔 순서는 픽처의 타일 래스터 스캔 순서로 다음 타일의 좌측 상단 CTB를 디코딩 하기 전에 타일 내에서 로컬(local)로 변경(타일의 CTB 래스터 스캔 순서로) 된다. 일반 슬라이스와 마찬가지로, 타일들은 엔트로피 디코딩 종속성뿐 아니라 픽처 내 예측 종속성도 파기한다. 그러나, 이들이 각 NAL 유닛들에 포함될 필요는 없다(이점에서 WPP와 동일). 따라서, 타일들은 MTU크기 매칭에 사용될 수 없다. 각 타일은 하나의 프로세서/코어에 의해 처리될 수 있으며, 슬라이스가 둘 이상의 타일에 걸쳐있는 경우, 인접 타일들을 디코딩하는 프로세싱 유닛들 간의 픽처 내 예측에 필수적인 인터 프로세서/인터 코어 통신은 공유 슬라이스 헤더를 전달하고 복원 샘플 및 메타데이터의 공유와 연결된 루프 필터링으로 제한된다. 둘 이상의 타일 또는 WPP 세그먼트가 슬라이스에 포함될 때, 슬라이스의 첫번째 타일 이외의 각 타일 또는 WPP 세그먼트에 대한 엔트리 포인트 바이트 오프셋은 슬라이스 헤더에서 시그널링된다.
단순화를 위해, 4개의 서로 다른 픽처 분할 방식들의 적용에 대한 제한이 HEVC에서 특정되었다. 주어진 코딩된 비디오 시퀀스는 HEVC에서 특정된 프로필들의 대부분에 대한 타일과 파면을 모두 포함할 수 없다. 각 슬라이스 및 타일에 대해, 하기 조건들 중 어느 하나 또는 모두가 충족되어야 한다: 1) 슬라이스의 모든 코딩된 트리블록들은 동일한 타일에 속한다. 2) 타일의 모든 코딩된 트리블록들은 동일한 슬라이스에 속한다. 최종적으로, 파면 세그먼트는 정확히 한 CTB 행을 포함하며, WPP가 사용 중이고, 슬라이스가 CTB 행 내에서 시작되면, 동일한 CTB 행에서 종료되어야 한다.
HEVC에서의 최근 수정 사항은 2017년 10월 24일에 하기에서 공개된 JCT-VC 출력 문서 JCTVC-AC1005, J. Boyce, A. Ramasubramonian, R. Skupin, G. J. Sullivan, A. Tourapis, Y.-K. Wang (editors), "HEVC Additional Supplemental Enhancement Information (Draft 4)," Oct. 24, 2017, publicly available herein: http://phenix.int-evry.fr/jct/doc_end_user/documents/29_Macau/wg11/JCTVC-AC1005-v2.zip에서 명시된다. 이 수정 사항이 포함되면서, HEVC는 3 개의 MCTS 관련 SEI 메시지들, 즉 시간적 MCTS SEI 메시지, MCTS 추출 정보 세트 SEI 메시지 그리고 MCTS 추출 정보 네스팅 SEI 메시지를 특정한다.
시간적 MCTSs SEI 메시지는 비트스트림 내의 MCTS들의 존재를 지시하고, MCTS들을 시그널링한다. 각 MCTS에 대해, 모션 벡터들은 MCTS 내의 풀샘플 위치들을 지시하도록 제한되며, 보간을 위해 MCTS 내부의 풀-샘플 위치들만을 필요로 하는 분수 샘플 위치들을 지시하도록 제한되고, MCTS 외부의 블록들에서 유도되는 시간적 모션 벡터 예측을 위한 모션 벡터 후보들의 사용은 허용되지 않는다. 이러한 방식으로, 각 MCTS는 MCTS에 포함되지 않은 타일들이 존재하지 않게 독립적으로 디코딩될 수 있다.
MCTS 추출 정보 세트 SEI 메시지는 MCTS 세트에 대해 적합한 비트스트림을 생성하기 위해 MCTS 서브 비트스트림 추출(SEI 메시지 시멘틱스의 일부로 특정됨)에 사용될 수 있는 보충적인 정보를 제공한다. 상기 정보는 복수 개의 추출 정보 세트들로 구성되되, 각각 MCTS 세트들의 수를 정의하고, MCTS 서브 비트스트림 추출 프로세스 동안 사용될 대체 VPS들, SPS 들, PPS들의 RBSP 바이트를 포함한다. MCTS 서브 비트스트림 추출 프로세스에 따라 서브 비트스트림을 추출할 때, 파라미터 세트들(VPS들, SPS들, PPS들)은 재작성되거나 대체되어야 하며, 슬라이스 주소 관련 신택스 요소(first_slice_segment_in_pic_flag 및 slice_segment_address를 포함) 중 하나 또는 전부는 일반적으로 서로 다른 값을 가져야 하므로, 슬라이스 헤더들이 약간씩 업데이트되어야 한다
3.2. VVC 에서 픽처 분할 (Partitioning of pictures in VVC)
VVC에서, 픽처는 하나 이상의 타일 행들 및 하나 이상의 타일 열들로 나눠진다. 타일은 픽처의 직사각형 영역을 커버하는 CTU들의 시퀀스이다. 타일의 CTU들은 타일 내에서 래스터 스캔 순서(raster scan order)로 스캔된다.
슬라이스는 정수 개의 완전한 타일들 또는 픽처의 타일 내에서 정수 개의 연속적인 완전한 CTU 행들로 구성된다.
슬라이스의 두 모드들, 즉 래스터 스캔 슬라이스 모드 및 직사각형 슬라이스 모드가 지원된다. 래스터 스캔 슬라이스 모드에서, 슬라이스는 픽처의 타일 래스터 스캔에서 완전한 타일들의 시퀀스를 포함한다. 직사각형 슬라이스 모드에서, 슬라이스는 상기 픽처의 직사각형 영역을 집합적으로 형성하는 복수 개의 완전한 타일들 또는 상기 픽처의 직사각형 영역을 집합적으로 형성하는 하나의 타일의 복수 개의 연속적인 완전한 CTU 행들을 포함한다. 직사각형 슬라이스 내의 타일들은 해당 슬라이스에 대응되는 직사각형 영역 내의 타일 래스터 스캔 순서로 스캔된다.
서브픽처는 픽처의 직사각형 영역을 집합적으로 커버하는 하나 이상의 슬라이스를 포함한다.
도 1은 12개의 타일들 및 3개의 래스터 스캔 슬라이스들로 분할되는 픽처의 래스터 스캔 슬라이스 분할의 예를 도시한다.
도 2는 24개의 타일들(6개의 타일 열 및 4개의 타일 행) 및 9개의 직사각형 슬라이스들로 분할되는 픽처의 직사각형 슬라이스 분할의 예를 도시한다.
도 3은 타일들 및 직사각형 슬라이스들로 분할되는 픽처의 예를 도시하며, 여기서 상기 픽처는 4개의 타일들(2개의 타일 열 및 2개의 타일 행) 및 4개의 직사각형 슬라이스들로 분할된다.
도 4는 픽처의 서브픽처 분할의 예를 도시하며, 이때 픽처는 18개의 타일들로 분할되는데, 12개는 좌측에 있으며 각각 4x4 CTU들로 구성된 하나의 슬라이스를 커버하며 우측에 있는 6개 타일 각각은 2x2 CTU들로 구성된 2개의 수직으로 포개어진 슬라이스들을 커버하므로, 다양한 치수의 총 24개의 슬라이스들 및 24개의 서브픽처들이 된다(각 슬라이스는 서브픽처).
3.3. VVC (JVET-Q2001-vB)에서 SPS/PPS/픽처 헤더/슬라이스 헤더의 시그널링
7.3.2.3 시퀀스 파라미터 세트 RBSP 신택스
Figure pct00001
Figure pct00002
Figure pct00003
Figure pct00004
Figure pct00005
Figure pct00006
Figure pct00007
Figure pct00008
Figure pct00009
Figure pct00010
7.3.2.4 픽처 파라미터 세트 RBSP 신택스
Figure pct00011
Figure pct00012
Figure pct00013
Figure pct00014
Figure pct00015
Figure pct00016
7.3.2.7 픽처 헤더 구조 신택스
Figure pct00017
Figure pct00018
Figure pct00019
Figure pct00020
Figure pct00021
Figure pct00022
Figure pct00023
7.3.7.1 일반 슬라이스 헤더 신택스
Figure pct00024
Figure pct00025
Figure pct00026
Figure pct00027
Figure pct00028
3.4. 컬러 공간 및 크로마 서브샘플링
컬러 모델(또는 컬러 시스템)이라고도 하는 컬러 공간은 일반적으로 3개 또는 4개의 값들 또는 컬러 성분들(예를 들어, RGB)로 컬러 범위를 숫자의 줄로 묘사하는 추상적인 수학적 모델이다. 기본적으로 컬러 공간은 좌표계와 서브 공간의 정교화이다
비디오 압축의 경우 가장 자주 사용되는 컬러 공간은 YCbCr 및 RGB이다.
YCbCr, Y'CbCr, 또는 Y'Pb/Cb Pr/Cr은 YCBCR 또는 Y'CBCR으로 기재된 컬러 공간의 제품군으로, 비디오 및 디지털 픽처 시스템의 컬러 이미지 파이프라이닝의 일부로 사용된다. Y'는 루마 성분이고 CB와 CR은 청색-차이 및 적색-차이 크로마 성분들이다. Y'(프라임 포함)는 휘도인 Y와 구별되고, 즉, 감마 보정된 RGB 프라이머리에 기초하여 빛의 강도가 비선형적으로 인코딩 된다.
크로마 서브 샘플링은 휘도보다 컬러 차이에 대한 인간 시각 시스템의 낮은 선명도를 사용하여 루마 정보보다 크로마 정보에 대해 더 낮은 해상도를 구현하여 이미지를 인코딩 하는 방식이다.
3.4.1. 4:4:4
3개의 Y'CbCr 성분들 각각은 동일한 샘플 레이트를 가지므로 크로마 서브 샘플링이 없다. 이 방식은 때때로 고급 필름 스캐너와 시네마틱 포스트 프로덕션에 사용된다.
3.4.2. 4:2:2
두 크로마 성분들은 루마의 샘플 레이트의 절반으로 샘플링되며, 예를 들어 수평 크로마 해상도가 반으로 줄어드는 반면에 수직 크로마 해상도는 변하지 않는다. 이렇게 하면 압축되지 않은 비디오 신호의 대역폭이 시각적 차이가 거의 또는 전혀 없는 3분의 1로 줄어든다. 4:2:2 컬러 포맷의 공칭 수직 및 수평 위치들의 예는 VVC 규격 초안의 도 5에 기술된다.
도 5는 픽처에서 4:2:2 루마 및 크로마 샘플들의 공칭 수직 및 수평 위치들을 도시한다
3.4.3. 4:2:0
4:2:0에서, 수평 샘플링은 4:1:1에 비해 두 배가되지만 Cb 및 Cr 채널들은 이 방식의 각 대체 줄에서만 샘플링되기 때문에 수직 해상도가 반으로 줄어든다. 따라서 데이터 속도(data rate)는 동일하다. Cb와 Cr은 각각 수평 및 수직 모두에서 2의 계수로 서브 샘플링 된다. 4:2:0 방식의 세 가지 변형이 있으며, 수평 및 수직 위치가 상이하다.
· MPEG-2에서는 Cb와 Cr이 수평으로 구비된다. Cb와 Cr은 수직 방향으로 픽셀들 사이에 위치된다(중간에 위치됨).
· JPEG/JFIF, H.261 및 MPEG-1에서 Cb와 Cr은 대체 루마 샘플들 사이의 중간에 교차하여 위치된다.
· 4:2:0 DV에서 Cb와 Cr은 수평 방향으로 공동 위치로 지정된다. 수직 방향으로는 교대선에 공동으로 위치한다.
표 3-1. chroma_format_idc 및 separate_colour_plane_flag로부터 유도된 SubWidthC 및 SubHeightC 값들
Figure pct00029
3.5. 적응적 루프 필터(ALF: Adaptive Loop Filter)
VVC에서는, 블록 기반 필터 적응을 가지는 적응적 루프 필터(ALF)가 적용된다. 루마 성분의 경우, 로컬 그래디언트들의 방향 및 활성도를 기반으로, 25개의 필터 중 하나가 각 4x4 블록에 대해 선택된다.
3.5.1. 필터 형상
(도 6에 도시된 것과 같은) 2 개의 다이아몬드 필터 형상이 사용된다. 7Х7 다이아몬드 형상은 루마 성분에 적용되고 5x5 다이아몬드 형상은 크로마 성분들에 적용된다.
도 6은 ALF 필터 형상들의 예(크로마: 5x5 다이아몬드, 루마: 7x7 다이아몬드)를 도시한다
3.5.1. 블록 분류
루마 성분의 경우, 각 4x4 블록은 25개 클래스들 중 하나로 분류된다. 분류 인덱스 C 는 아래와 같이 그것의 방향성 D 및 활성도
Figure pct00030
의 양자화된 값에 기반하여 유도된다.
Figure pct00031
D 와
Figure pct00032
를 계산하기 위해, 수평, 수직 그리고 2개의 대각선 방향들의 그래디언트들이 1-D 라플라시안을 사용하여 먼저 계산된다.
Figure pct00033
여기서, 인덱스들
Figure pct00034
Figure pct00035
는 4x4 블록에서의 좌측 상부 샘플의 좌표들을 지칭하고, R(i,j)는 좌표 (i,j)에 있는 재구성된 샘플을 나타낸다.
블록 분류의 복잡도를 감소시키기 위해, 서브샘플링된 1-D 라플라시안 계산이 적용된다. 도 7A 내지 도 7D에 도시된 바와 같이, 동일한 서브샘플링된 위치들이 모든 방향들의 그래디언트 계산에 사용된다.
도 7A 내지 도 7D는 서브샘플링된 라플라시안 계산을 도시한다.
이어서, 수평 방향 및 수직 방향의 그래디언트들의 D 최대값 및 최소값이 다음과 같이 설정된다.
Figure pct00036
2 개의 대각선 방향의 그래디언트의 최대값과 최소값은 다음과 같이 설정된다.
Figure pct00037
방향성 D 의 값을 유도하기 위해, 이러한 값들은 서로 비교되며 2 개의 임계치 t 1 t 2 와 비교된다.
단계 1.
Figure pct00038
Figure pct00039
모두 참이면, D 는 0으로 설정된다.
단계 2.
Figure pct00040
이면, 단계 3에서 계속하고, 그렇지 않으면 단계 4에서 계속한다.
단계 3.
Figure pct00041
이면, D 는 2로 설정되고, 그렇지 않으면 D 는 1로 설정된다.
단계 4.
Figure pct00042
이면, D 는 4로 설정되고, 그렇지 않으면 D 는 3으로 설정된다.
활성도 값
Figure pct00043
는 아래와 같이 계산된다.
Figure pct00044
A는 0 내지 4의 범위로 더 양자화되고, 상기 양자화된 값은
Figure pct00045
로 표시된다.
픽처 내의 크로마 성분들에 대해, 분류 방법이 적용되지 않는다. 즉, 각각의 크로마 성분에 대해 ALF 계수들의 단일 세트가 적용된다.
3.5.3. 필터 계수들 및 클리핑 값들의 기하학적 변환들
각각의 4Х4 루마 블록을 필터링하기 전에, 회전 또는 대각선 및 수직 뒤집기와 같은 기하학적 변환들이 해당 블록에 대해 계산된 그래디언트 값들에 따라, 필터 계수들 f(k,l) 및 대응하는 필터 플리핑 값들 c(k,l)에 적용된다. 이는 필터 서포트 영역 내의 샘플들에 이러한 변환들을 적용하는 것과 동등하다. 착안점은 ALF가 적용되는 상이한 블록들을 그들의 방향성을 정렬하는 것에 의해 보다 유사하게 만드는 것이다.
대각선(diagonal), 수직 뒤집기(vertical flip) 및 회전(rotation)을 포함한 세 가지 기하학적 변환이 도입된다
Figure pct00046
여기서 K는 필터의 크기이고, 위치 (0, 0)이 좌측 상부 코너에 있고 위치 (K-1, K-1)이 우측 하부 코너에 있도록, 0 ≤ k, lK-1은 계수 좌표이다. 변환은 해당 블록에 대해 계산된 그래디언트 값들에 따라 필터 계수들 f(k, l) 및 클리핑 값들 c(k,l)에 적용된다. 변환과 4개의 방향의 4개의 그래디언트들 사이의 관계는 다음 표에 요약되어 있다.
표 3-2. 하나의 블록에 대해 계산된 그래디언트와 변환들의 매핑
Figure pct00047
3.5.4. 필터 파라미터 시그널링
ALF 필터 파라미터들이 적응 파라미터 세트(APS)에서 시그널링된다. 하나의 APS에서, 최대 25개의 루마 필터 계수 및 클리핑 값 인덱스 세트들 및 최대 8개의 크로마 필터 계수 및 클리핑 값 인덱스 세트들이 시그널링될 수 있다. 비트 오버헤드를 감소시키기 위해, 루마 성분에 대한 상이한 분류의 필터 계수들은 병합될 수 있다. 슬라이스 헤더에서, 현재 슬라이스에 대한 사용되는 APS들의 인덱스들이 시그널링된다.
APS로부터 디코딩된 클리핑 값 인덱스들은 루마 및 크로마 성분들 모두에 대해 클리핑 값들의 표를 사용하여 클리핑 값들을 결정할 수 있게 한다. 이러한 클리핑 값들은 내부 비트 깊이에 의존한다. 보다 정확하게는, 상기 클리핑 값들은 다음 공식에 의해 획득된다.
Figure pct00048
B는 내부 비트 깊이와 동일하고, a는 2.35와 같은 미리 정의된 상수 값이며, N은 VVC에서의 허용된 클리핑 값들의 수인 4와 동일하다.
슬라이스 헤더에서, 최대 7개의 APS 인덱스들이 현재 슬라이스에 대해 사용되는 루마 필터 세트들을 특정하기 위해 시그널링 될 수 있다. 필터링 프로세스는 CTB 레벨에서 더 제어될 수 있다. 플래그는 ALF가 루마 CTB에 적용되는지 여부를 지시하기 위해 항상 시그널링된다. 루마 CTB는 16개의 고정 필터 세트들 가운데에서 필터 세트를 선택할 수 있으며, 상기 필터 세트들은 APS들로부터 선택된다. 필터 세트 인덱스는 어떤 필터 세트가 적용되는지를 지시하기 위해 루마 CTB에 대해 시그널링된다. 상기 16개의 고정 필터 세트들은 인코더 및 디코더 모두에서 미리 정의되며 하드 코딩된다.
크로마 성분의 경우, APS 인덱스는 현재 슬라이스에 대해 사용되고 있는 크로마 필터 세트들을 지시하기 위해 슬라이스 헤더에서 시그널링된다. CTB 레벨에서, APS에 둘 이상의 크로마 필터 세트들이 존재하는 경우, 필터 인덱스는 각각의 크로마 CTB에 대해 시그널링된다.
필터 계수들은 128과 동일한 기준으로 양자화된다. 곱셈 복잡도를 제한하기 위해, 비중앙 위치의 계수 값이 -27 내지 27 - 1 의 범위에 있어야 하도록 비트스트림 적합성이 적용된다. 중앙 위치 계수는 비트스트림에서 시그널링되지 않으며 128과 동일한 것으로 간주된다.
3.5.5. 필터링 프로세스
디코더 측에서, ALF가 CTB에 대해 활성화되는 경우, CU 내의 각 샘플
Figure pct00049
는 필터링되며, 그 결과는 아래 보이는 바와 같이 샘플 값
Figure pct00050
이다.
Figure pct00051
여기서,
Figure pct00052
는 디코딩된 필터 계수들을 나타내고,
Figure pct00053
는 클리핑 함수이며,
Figure pct00054
는 디코딩된 클리핑 파라미터들을 나타낸다. 변수 k 및 l는
Figure pct00055
Figure pct00056
사이에서 변하며, 이때 L 은 필터 강도를 나타낸다. 클리핑 함수
Figure pct00057
는 함수
Figure pct00058
에 해당한다.
3.5.6. 라인 버퍼 감소를 위한 가상 경계 필터링 프로세스
하드웨어 및 내장된 소프트웨어에서, 픽처 기반 처리는 그것의 높은 픽처 버퍼 요구사항으로 인해 실질적으로 수용될 수 있다. 온칩 픽처 버퍼들을 사용하는 것은 매우 비싸고 오프칩 픽처 버퍼들을 사용하는 것은 외부 메모리 액세스, 전력 소비 및 데이터 액세스 지연시간을 상당히 증가시킨다. 따라서, 실제 제품들에서는 DF, SAO 및 ALF가 픽처 기반 디코딩으로부터 LCU 기반 디코딩으로 변경될 것이다. LCU 기반 처리가 DF, SAO 및 ALF에 사용될 때, 전체 디코딩 프로세스는 다수의 LCU들의 병렬 처리를 위한 LCU 파이프라이닝 방식으로 래스터 스캔에서 LCU별로 행해질 수 있다. 이 경우에, 하나의 LCU 행을 처리하는 것이 위쪽 LCU 행으로부터의 픽셀들을 필요로 하기 때문에 DF, SAO 및 ALF에 대해 라인 버퍼들이 필요하다. 오프칩 라인 버퍼들(예를 들면, DRAM)이 사용되는 경우, 외부 메모리 대역폭과 전력 소비가 증가될 것이며, 온칩 라인 버퍼들(예를 들면, SRAM)이 사용되는 경우, 칩 면적이 증가될 것이다. 따라서, 라인 버퍼들이 이미 픽처 버퍼들보다 훨씬 더 작더라도, 라인 버퍼들을 감소시키는 것이 여전히 바람직하다.
VTM-4.0에서, 도 8에 도시된 바와 같이, 필요한 라인 버퍼들의 총수는 루마 성분의 경우 11.25 라인이다. 라인 버퍼 요구사항에 대한 설명은 다음과 같다: 결정 및 필터링이 첫 번째 CTU로부터의 라인들 K, L, M, M 및 하단 CTU로부터의 라인들 O, P를 필요로 하기 때문에 CTU 에지와 중첩하는 수평 에지의 디블로킹이 수행될 수 없다. 따라서, CTU 경계와 중첩하는 수평 에지들의 디블로킹은 하위 CTU가 올 때까지 연기된다. 따라서, 라인들 K, L, M, N에 대해, 재구성된 루마 샘플들은 라인 버퍼(4 개의 라인)에 저장되어야 한다. 이어서 라인들 A 내지 J에 대해 SAO 필터링이 수행될 수 있다. 디블로킹이 라인 K에 있는 샘플들을 변경하지 않기 때문에 라인 J는 SAO 필터링될 수 있다. 라인 K의 SAO 필터링의 경우, 에지 오프셋 분류 결정은 (0.25 루마 라인인) 라인 버퍼에만 저장된다. ALF 필터링은 라인들 A 내지 F에 대해서만 수행할 수 있다. 도 8에 도시된 바와 같이, 각각의 4x4 블록에 대해 ALF 분류가 수행된다. 각각의 4x4 블록 분류는 8x8 크기의 활성도 창을 필요로 하며, 이는 차례로 그래디언트를 결정하기 위해 1d 라플라시안을 계산하기 위해 9x9 창을 필요로 한다.
따라서, 라인들 G, H, I, J와 중첩하는 4x4 블록의 블록 분류를 위해, 가상 경계 아래의 SAO 필터링된 샘플들이 필요하다. 추가적으로, ALF 분류를 위해 라인들 D, E, F의 SAO 필터링된 샘플들이 필요하다. 더욱이, 라인 G의 ALF 필터링은 위쪽 라인들로부터의 3개의 SAO 필터링된 라인 D, E, F를 필요로 한다. 따라서, 총 라인 버퍼 요구사항은 다음과 같다.
- 라인들 K 내지 N(수평 DF 픽셀들): 4개의 라인
- 라인들 D 내지 J(SAO 필터링된 픽셀들): 7개의 라인
- 라인 J와 라인 K 사이의 SAO 에지 오프셋 분류기 값들: 0.25 라인
따라서, 필요한 루마 라인들의 총수는 7 + 4 + 0.25 = 11.25이다.
유사하게, 크로마 성분의 라인 버퍼 요구사항은 도 9에 예시되어 있다. 크로마 성분에 대한 라인 버퍼 요구사항은 6.25개의 라인인 것으로 평가된다.
도 8은 루마 성분에 대한 VTM-4.0에서의 루프 필터 라인 버터 요구사항의 예를 도시한다.
도 9는 크로마 성분에 대한 VTM-4.0에서의 루프 필터 라인 버터 요구사항의 예를 도시한다.
SAO 및 ALF의 라인 버퍼 요구사항들을 제거하기 위해, 최신 VVC에서 가상 경계(VB)의 개념이 도입되어 ALF의 라인 버퍼 요구사항을 감소시킨다. 수정된 블록 분류 및 필터링은 수평 CTU 경계들 근처의 샘플들에 대해 채용된다. 도 8에 도시된 바와 같이, VB들은 N개의 픽셀만큼 상향 시프트된 수평 LCU 경계들이다. 각각의 LCU에 대해, SAO 및 ALF는 하위 LCU가 오기 전에 VB 위쪽의 픽셀들을 처리할 수 있지만, 하위 LCU가 올 때까지 VB 아래의 픽셀들을 처리할 수 없으며, 이는 DF에 의해 야기된다. 하드웨어 구현 비용을 고려하여, 제안된 VB와 수평 LCU 경계 사이의 공간은 루마의 경우 4개의 픽셀로서 설정되고(즉, 도 8에서의 N=4) 크로마의 경우 2개의 픽셀로서 설정된다(즉, N=2).
도 10은 가상 경계들에서 수정된 블록 분류를 도시한다.
수정된 블록 분류는 도 11에 도시된 것과 같이 루마 성분에 대해 적용된다. 가상 경계 위의 4x4 블록의 1D 라플라시안 그래디언트 계산을 위해, 가상 경계 위의 샘플들만이 사용된다. 유사하게, 가상 경계 아래의 4x4 블록의 1D 라플라시안 그래디언트 계산을 위해, 가상 경계 아래의 샘플들만이 사용된다. 따라서, 활성도 값 A의 양자화는 1D 라플라시안 그래디언트 계산에 사용된 샘플들의 감소된 수를 고려하여 스케일링된다.
필터링 처리를 위해, 가상 경계들에서의 미러링된 (대칭) 패딩 동작이 루마 및 크로마 성분들 모두에 대해 사용된다. 도 11에 도시된 바와 같이, 필터링되는 샘플이 가상 경계 아래에 위치하면, 가상 경계 위에 위치하는 이웃 샘플들은 패딩된다. 한편, 다른 변들에 위치한 대응하는 샘플들 또한 대칭적으로 패딩된다.
다른 예로, (i, j)에 위치한 하나의 샘플이 패딩되는 경우(예를 들어, 도 12B에서 점선으로 표시된 P0A), (m, n)에 위치하는 대응 샘플(예를 들어, 도 12B에서 동일한 필터 계수를 공유하는 점선으로 표시된 P3B) 또한 패딩되며, 도 12A 내지 도12C에 도시되는 것과 같이 해당 샘플도 이용 가능하다.
도 12A는 (각 변별로) 패딩되어야 할 VB 위/아래에 요구되는 하나의 라인을 도시한다.
도 12B는 (각 변별로) 패딩되어야 할 VB 위/아래에 요구되는 두 개의 라인을 도시한다.
도 12C는 (각 변별로) 패딩되어야 할 VB 위/아래에 요구되는 세 개의 라인을 도시한다.
수평 CTU 경계들에 사용되는 미러링된 (대칭) 패딩 방법과는 달리, 경계들을 가로지르는 필터가 비활성화되는 경우, 반복적인 (단변) 패딩 프로세스가 슬라이스, 타일 및 서브픽처 경계들에 대해 적용된다. 상기 반복적 (단변) 패딩 프로세스는 픽처 경계에서도 적용된다. 패딩된 샘플들은 분류 및 필터링 프로세스에 모두 사용된다. 도 13은 픽처/서브픽처/슬라이스/타일 경계에서 루마 ALF 필터링에 대한 반복 패딩 방법의 일 예를 도시한다.
3.5.7. Spec에서 적응적 루프 필터 프로세스
8.8.5.2 루마 샘플들에 대한 코딩 트리 블록 필터링 프로세스
이 프로세스의 입력들은 다음과 같다.
- 적응적 루프 필터링 프로세스 이전의 재구성된 루마 픽처 샘플 어레이 recPicture,
- 필터링된 재구성된 루마 픽처 샘플 어레이 alfPictureL,
- 현재 픽처의 좌측 상단 샘플에 상대적인 현재 루마 코딩 트리 블록의 좌측 상단 샘플을 지정하는 루마 위치 ( xCtb, yCtb ).
이 프로세스의 출력은 수정된 필터링된 재구성된 루마 픽처 샘플 어레이alfPictureL 이다.
8.8.5.3 절에서의 필터 인덱스에 대한 유도 프로세스는 위치 (xCtb, yCtb) 및 재구성된 루마 픽처 샘플 어레이 recPictureL을 입력들로 하고, filtIdx[x][y] 및 transposeIdx[x][y] (x, y = 0..CtbSizeY - 1)을 출력들로 하여 호출된다.
필터링된 재구성된 루마 샘플들 alfPictureL[x][y]의 도출을 위해, 현재 루마 코딩 트리 블록 recPictureL[x][y] 내의 각각의 재구성된 루마 샘플은 다음과 같이 필터링되며, 단, x, y = 0..CtbSizeY - 1이다.
- 루마 필터 계수들의 어레이 f[j] 및 filtIdx[x][y]에 의해 명시되는 필터에 대응하는 루마 클리핑 값들의 어레이 c[j]는 다음과 같이 도출되며, 단, j = 0..11이다.
- AlfCtbFiltSetIdxY[ xCtb  >>  CtbLog2SizeY ][ yCtb  >>  CtbLog2SizeY ]가 16 미만인 경우, 다음이 적용된다.
Figure pct00059
- 그렇지 않은 경우, (AlfCtbFiltSetIdxY[ xCtb  >>  CtbLog2SizeY ][ yCtb  >>  CtbLog2SizeY ]가 16 이상인 경우, 다음이 적용된다.
Figure pct00060
- 루마 필터 계수들 및 클리핑 값 인덱스 idx는 다음과 같이 transposeIdx[ x ][ y ]에 따라 도출된다.
- 만약 transposeIndex[ x ][ y ]가 1과 같으면, 다음이 적용된다.
Figure pct00061
- 그렇지 않고, 만약 transposeIndex[ x ][ y ]가 2와 같으면, 다음이 적용된다
Figure pct00062
- 그렇지 않고, 만약 transposeIndex[ x ][ y ]가 3과 같으면, 다음이 적용된다
Figure pct00063
- 그렇지 않으면, 다음이 적용된다.
Figure pct00064
- 루마 샘플들의 주어진 어레이 recPicture 내의 대응하는 루마 샘플들 (x, y) 각각에 대한 위치들
Figure pct00065
(단, i, j = 3..3임)은 다음과 같이 도출된다.
Figure pct00066
- 변수들 clipLeftPos, clipRightPos, clipTopPos, clipBottomPos, clipTopLeftFlag 및 clipBotRightFlag는 ( xCtb, yCtb ) 및 ( x, y )를 입력으로 하여, 8.8.5.5절에서 명시된 ALF 경계 위치 유도 프로세스를 호출하여 도출된다.
- 변수들 hx + i 및 vy + j는 8.8.5.6절에 명시된 ALF 샘플 패딩 프로세스를 호출하고 ( xCtb, yCtb ), ( hx + i, vy + j ), 0, clipLeftPos, clipRightPos, clipTopPos, clipBottomPos, clipTopLeftFlag 그리고 clipBotRightFlag를 입력으로 하여 수정된다.
- 변수 applyAlfLineBufBoundary는 아래와 같이 도출된다.
- 만약 현재 코딩 트리 블록의 하단 경계가 현재 픽처 및 pic_height_in_luma_samples - yCtb  <=  CtbSizeY - 4의 하단 경계인 경우, applyAlfLineBufBoundary는 0과 같게 설정된다.
- 그렇지 않으면, applyAlfLineBufBoundary는 1과 같게 설정된다.
- 수직 샘플 위치 오프세트들 y1, y2, y3 및 변수 alfShiftY는 수직 루마 샘플 위치 y와 applyAlfLineBufBoundary에 따라 표 45에서 명시된다.
- 변수 curr는 아래와 같이 도출된다.
Figure pct00067
- 변수 sum은 아래와 같이 도출된다.
Figure pct00068
Figure pct00069
- 수정되고 필터링된 재구성된 루마 픽처 샘플 alfPictureL[ xCtb + x ][ yCtb + y ]은 아래와 같이 도출된다.
Figure pct00070
표 45 - 수직 루마 샘플 위치 y 및 applyAlfLineBufBoundary에 따른 y1, y2, y3 및 alfShiftY의 사양
Figure pct00071
8.8.5.4 크로마 샘플들에 대한 코딩 트리 블록 필터링 프로세스
이 프로세스의 입력들은 다음과 같다.
- 적응적 루프 필터링 프로세스 이전의 재구성된 크로마 픽처 샘플 어레이 recPicture,
- 필터링된 재구성된 크로마 픽처 샘플 어레이 alfPicture,
- 현재 픽처의 좌측 상단 샘플에 상대적인 현재 크로마 코딩 트리 블록의 좌측 상단 샘플을 지정하는 크로마 위치 ( xCtbC, yCtbC ),
- 대안적인 크로마 필터 인덱스 altIdx.
이 프로세스의 출력은 수정된 필터링된 재구성된 크로마 픽처 샘플 어레이 alfPicture이다.
현재 크로마 코딩 트리 블록의 폭 및 높이 ctbWidthC 및 ctbHeightC는 다음과 같이 도출된다.
Figure pct00072
필터링된 재구성된 크로마 샘플들 alfPicture[x][y]의 도출을 위해, 현재 크로마 코딩 트리 블록 recPicture[x][y] 내의 각각의 재구성된 크로마 샘플은 다음과 같이 필터링되며, 단, x = 0..ctbWidthC - 1, y = 0..ctbHeightC - 1이다.
- 크로마 샘플들의 주어진 어레이 recPicture 내의 대응하는 크로마 샘플들 (x, y) 각각에 대한 위치들 (hx+i, vy+j)(단, i,j = -2..2임)은 다음과 같이 도출된다.
Figure pct00073
- 변수들 clipLeftPos, clipRightPos, clipTopPos, clipBottomPos, clipTopLeftFlag 및 clipBotRightFlag는 8.8.5.5절에 명시된 ALF 경계 위치 유도 프로세스를 호출하고 ( xCtbC * SubWidthC, yCtbC * SubHeightC ) 및 ( x * SubWidthC, y *SubHeightC )를 입력으로 하여 도출된다.
- 변수들 hx + i 및 vy + j는 8.8.5.6절에 명시된 ALF 샘플 패딩 프로세스를 호출하고 ( xCtb, yCtb ), ( hx + i, vy + j ), 1로 설정된 변수 isChroma, clipLeftPos, clipRightPos, clipTopPos, clipBottomPos, clipTopLeftFlag 및 clipBotRightFlag를 입력으로 하여 수정된다.
- 변수 applyAlfLineBufBoundary는 다음과 같이 도출된다.
- 만약 현재 코딩 트리 블록의 하단 경계가 현재 픽처 및 pic_height_in_luma_samples - ( yCtbC * SubHeightC ) < CtbSizeY - 4의 하단 경계인 경우, applyAlfLineBufBoundary는 0과 같게 설정된다.
- 그렇지 않으면, applyAlfLineBufBoundary는 1과 같게 설정된다.
- 수직 샘플 위치 오프세트들 y1, y2 및 변수 alfShiftC는 수직 크로마 샘플 위치 y와 applyAlfLineBufBoundary에 따라 표 45에서 명시된다.
- 변수 curr는 아래와 같이 유도된다.
Figure pct00074
- 크로마 필터 계수들의 어레이 f[ j ] 및 크로마 클리핑 값들의 어레이 c[ j ]는 j = 0..5로 아래와 같이 도출된다.
Figure pct00075
- 변수 sum은 아래와 같이 도출된다.
Figure pct00076
Figure pct00077
- 수정된 필터링되고 재구성된 크로마 픽처 샘플 alfPicture[ xCtbC + x ][ yCtbC + y ]는 아래과 같이 도출된다.
Figure pct00078
표 46 - 수직 크로마 샘플 위치 y 및 applyAlfLineBufBoundary에 따른 y1, y2 및 alfShifC의 사양
Figure pct00079
4. 개시된 해결수단들이 다루는 기술적 문제들의 예시들
VVC에서 SPS/PPS/픽처 헤더/슬라이스 헤더의 시그널링에 대한 기존 설계들은 아래와 같은 문제들을 가지고 있다.
1) loop_filter_across_tiles_enabled_flag는 오직 하나의 타일만이 있는 경우에도 시그널링된다.
2) loop_filter_across_slices_enabled_flag는 오직 하나의 슬라이스만이 있는 경우에도 시그널링된다.
3) LMCS 정보는 슬라이스 헤더가 아닌 픽처 헤더에서 시그널링된다.
4) 최대 허용 TS 블록 크기는 최대 CU 크기 보다 클 수 있다.
5) MaxNumSubblockMergeCand는 어파인이 활성화되는지 여부에 따라 상이한 방식으로 도출된다.
6) 미러링된 패딩은 ALF (예를 들어, 루마 ALF 및 크로마 ALF)에 대해 이용 불가능한 샘플들 및 그것들에 상응하는 샘플들을 획득하기 위해 ALF 가상 경계에서 적용되며, 이때 ALF 가상 경계의 상기 위치는 어떤 샘플들이 이용 불가하여 패딩될 필요가 있는지를 판단하는 데에 활용된다. 하지만, 현재 설계에서, 크로마 ALF에서의 ALF 가상 경계의 위치는 4:2:2/4:4:4 크로마 포맷 비디오에 대해 루마 ALF에서의 위치와 정렬되지 않는다.
7) 현재 설계에서, 필터 강도는 가상 수평 CTU 경계에 인접한 행들의 ALF 필터링을 위해 감소되며, 이는 가상 경계의 위치에 의존한다. 하지만, ALF 가상 경계의 부정확한 위치는 필터 강도가 의도치 않은 샘플 행들에서 감소되도록 한다
5. 예시적인 기술들 및 실시예들
상기 문제들 및 기타 문제들을 해결하기 위해, 아래 요약된 방법들이 개시된다. 아래에 열거된 항목들은 일반적인 개념들을 설명하기 위한 예시로서 간주되어야 하며, 좁은 의미로 해석해서는 안 된다. 또한 이러한 항목들은 개별적으로 적용되거나 임의의 방식으로 결합될 수 있다.
개시에서, 만약 (인접 또는 비인접) 이웃 샘플(또는 라인 또는 행)이 상이한 비디오 처리 유닛(예를 들어, 현재 픽처 또는 현재 서브픽처 또는 현재 타일 또는 현재 슬라이스 또는 현재 브릭 또는 현재 CTU 또는 (ALF 처리 유닛 또는 좁은 ALF 처리 유닛과 같은) 현재 처리 유닛 또는 기타 현재 비디오 유닛의 외부)에 위치하거나 또는 재구성되지 않거나 또는 크로스 필터링 비디오 처리 유닛이 허용되지 않는 경우, 그것은 "사용불가능"하다.
ALF 가상 경계들에 대해 사용되는 패딩 방법은 '미러링된 패딩'이라고 부를 수 있으며, 이때 (i, j)에 위치하는 제1 이용불가 샘플(또는 제1 이용불가 라인 j 또는 제1 이용불가 행 i)의 경우, 그것은 패딩될 필요가 있고, ALF에서 필터 서포트(예를 들어, (m, n)(또는 해당 라인 n, 또는 해당 행 m)에 위치하며 현재 샘플(또는 현재 라인 또는 현재 행)으로부터 동일한 거리를 공유하는 해당 샘플)에 있는 '상기 제1 샘플'의 상응하는 샘플'로 정의되는 제2 샘플(또는 '상기 제1 라인의 상응하는 라인' 또는 '상기 제1행의 상응하는 행') 또한, 상기 제2 샘플이 이용가능한 경우에도 패딩된다.
1. 인 루프 필터링 동작들이 타일 경계들을 가로질러 실시되는 여부에 대한 지시(예를 들어, loop_filter_across_tiles_enabled_flag)의 시그널링은 비디오 유닛(예를 들어, 픽처)가 타일들로 분할되는지 여부 및/또는 어떻게 분할되는지에 의존할 수 있다.
a. 일 예에서, loop_filter_across_tiles_enabled_flag는 오직 상기 비디오 유닛이 둘 이상의 타일들로 분할되는 경우에만 시그널링된다.
b. 또는 loop_filter_across_tiles_enabled_flag의 시그널링은 상기 비디오 유닛에 대한 타일이 오직 하나인 경우 스킵된다.
c. 일반 제약 플래그 one_tile_per_pic_constraint_flag가 0과 같은 경우에만, loop_filter_across_tiles_enabled_flag가 시그널링된다.
i. 또는, 만약 일반 제약 플래그 one_tile_per_pic_constraint_flag가 1과 같으면, loop_filter_across_tiles_enabled_flag는 0과 같다고 지칭된다(또는 요구된다).
2. 인 루프 필터링 동작들이 슬라이스 경계들을 가로질러 실시되는 여부에 대한 지시(예를 들어, loop_filter_across_slices_enabled_flag)의 시그널링은 비디오 유닛(예를 들어, 픽처 및/또는 서브픽처)가 슬라이스들로 분할되는지 여부 및/또는 어떻게 분할되는지에 의존할 수 있다.
a. 일 예에서, loop_filter_across_slices_enabled_flag는 오직 상기 비디오 유닛이 둘 이상의 슬라이스들로 분할되는 경우에만 시그널링된다.
b. 일 예에서, 만약 각 서브픽처가 오직 하나의 슬라이스로만 분할되면(예를 들어, single_slice_per_subpic_flag가 1과 같은 경우), loop_filter_across_slices_enabled_flag는 시그널링되지 않는다.
c. 일 예에서, 만약 각 서브픽처가 오직 하나의 슬라이스로만 분할되면(예를 들어, single_slice_per_subpic_flag가 1과 같은 경우), loop_filter_across_slices_enabled_flag는 시그널링 된다.
d. 일 예에서, 만약 픽처가 비-직사각형 방식으로 슬라이스들로 분할되면(예를 들어, rect_slice_flag가 0과 같은 경우), loop_filter_across_slices_enabled_flag는 시그널링된다.
e. 일 예에서, 만약 픽처가 직사각형 방식으로(예를 들어, rect_slice_flag가 0) 슬라이스들로 분할되고 슬라이스들의 수가 1과 같으면(예를 들어, num_slices_in_pic_minus1가 0), loop_filter_across_slices_enabled_flag는 시그널링되지 않는다.
f. 일 예에서, 일반 제약 플래그 one_slice_per_pic_constraint_flag가 0과 같은 경우에만, loop_filter_across_slices_enabled_flag는 시그널링된다.
i. 또는, 일반 제약 플래그 one_slice_per_pic_constraint_flag가 1과 같은 경우, loop_filter_across_slices_enabled_flag는 0과 같다고 지칭된다(또는 요구된다).
3. LMCS 정보(예를 들어, LMCS의 사용 및/또는 루마 재성형의 사용 및/또는 사용될 LMCS APS의 adaptation_parameter_set_id 및/또는 크로마 잔차 스케일링의 사용)는 슬라이스 헤더 및/또는 픽처 헤더에서 시그널링될 수 있다.
a. LMCS 정보는 ph_lmcs_enabled_flag 또는 slice_lmcs_enabled_flag와 같은 LMCS를 활성화할지 여부에 관한 제1 지시를 포함할 수 있다.
b. LMCS 정보는 ph_lmcs_aps_id 및/또는 ph_chroma_residual_scale_flag와 같은 LMCS 파라미터들의 제2 지시를 포함할 수 있다.
c. LMCS 정보는 슬라이스 헤더와 픽처 헤더 모두에서 시그널링될 수 있다.
d. LMCS 정보는, 그것이 슬라이스 헤더에 존재하고, 픽처 헤더가 존재하면서 재작성될 수 있는 경우, 픽처 헤더와 슬라이스 헤더 모두에서 시그널링될 수 있다.
e. LMCS 정보는 슬라이스 헤더 또는 픽처 헤더 중 어느 하나에서 시그널링 되지만 둘 다에서 시그널링되지 않을 수 있다.
f. 일 예에서, 신택스 요소는 슬라이스 헤더에서 시그널링되어 어떤 LMCS APS가 현재 슬라이스를 위해 사용되는지를 지시할 수 있다.
g. 일 예에서, (lmcs_info_in_ph_flag와 같은) 신택스 요소는 SPS 또는 PPS와 같은 상위 레벨 비디오 유닛에서 시그널링되어, LMCS 정보가 픽처 헤더 또는 슬라이스 헤더에서 시그널링되는지 여부를 지시한다.
i. 신택스 요소는 상기 제1 지시만을 제어할 수 있다.
ii. 신택스 요소는 상기 제2 지시만을 제어할 수 있다.
iii. 신택스 요소는 상기 제1 및 제2 지시들 모두를 제어할 수 있다.
h. 픽처 헤더에서 LMCS 정보의 신택스 요소는, 만약 그것이 존재하지 않는 다면, 디폴트 값으로 설정될 수 있다.
i. 슬라이스 헤더에서 LMCS 정보의 신택스 요소는, 만약 그것이 존재하지 않는 다면, 디폴트 값으로 설정될 수 있다.
i. 슬라이스 헤더에서 LMCS 정보의 신택스 요소는, 만약 그것이 존재하지 않는다면, 픽처 헤더에서의 LMCS 정보의 해당 신택스 요소의 값으로 설정될 수 있다.
j. 일 예에서, PH와 연관된 슬라이스들이 참조하는 LMCS APS의 둘 이상의 adaptation_parameter_set_id (가령 ph_lmcs_aps_id[]의 리스트)는 픽처 헤더에서 시그널링될 수 있다.
i. 일 예에서, ph_lmcs_aps_id[]의 리스트의 길이는 픽처 내 슬라이스들의 수에 의존할 수 있다.
ii. 일 예에서, 신택스 요소는 슬라이스 헤더에서 시그널링되어 ph_lmcs_aps_id[] 리스트 내 어떤 LMCS APS가 현재 슬라이스를 위해 사용되는지를 지시한다.
4. 변환 스킵(TS: Transform Skip) 및/또는 BDPCM에 대한 최대 허용 크기는 코딩 트리 블록(CTB) 크기 보다 작거나 같아야 한다.
a. 예를 들어, 루마 블록에 대한 TS 및/또는 BDPCM에 대한 최대 허용 폭 및 높이는 CtbSizeY 보다 작거나 같아야 한다고 요구된다.
b. 예를 들어, 크로마 블록에 대한 TS 및/또는 BDPCM에 대한 최대 허용 폭 및 높이는 CtbSizeY/subWidthC 및/또는 CtbSizeY/subHeightC 보다 작거나 같아야 한다고 요구된다.
i. 또는, 크로마 블록에 대한 TS 및/또는 BDPCM에 대한 최대 허용 폭은 CtbSizeY/subWidthC 및/또는 CtbSizeY/subHeightC 보다 작거나 같아야 한다고 요구된다.
ii. 또는, 크로마 블록에 대한 TS 및/또는 BDPCM에 대한 최대 허용 높이는 CtbSizeY/subWidthC 및/또는 CtbSizeY/subHeightC 보다 작거나 같아야 한다고 요구된다.
c. 예를 들어, log2_transform_skip_max_size_minus2 플러스 2는 CtbLog2SizeY 보다 작거나 같아야 한다고 요구된다.
d. 예를 들어, log2_transform_skip_max_size_minus2의 최대값은 CtbLog2SizeY - 2와 같다.
e. 예를 들어, MaxTsSize는 아래와 같이 도출된다.
MaxTsSize = Min( CtbSizeY, 1  <<  ( log2_transform_skip_max_size_minus2 + 2 ) ).
f. 예를 들어, MaxTsSize는 아래와 같이 도출된다.
MaxTsSize = 1  <<  Min( log2_transform_skip_max_size_minus2 + 2 , CtbLog2SizeY ).
g. 크로마 블록에 대한 TS 및/또는 BDPCM에 대한 최대 허용 블록 크기는 크로마 블록에 대한 최대 변환 블록 크기 보다 작거나 같아야 한다.
i. 일 예에서, MaxTbSizeY가 루마 블록에 대한 최대 변환 크기라 가정하면, 크로마 블록에 대한 TS 및/또는 BDPCM에 대한 최대 허용 폭 및 높이는 MaxTbSizeY / SubWidthC 보다 작거나 같아야 한다.
ii. 일 예에서, MaxTbSizeY가 루마 블록에 대한 최대 변환 크기라 가정하면, 크로마 블록에 대한 TS 및/또는 BDPCM에 대한 최대 허용 폭은 MaxTbSizeY / SubWidthC 보다 작거나 같아야 한다.
iii. 일 예에서, MaxTbSizeY가 루마 블록에 대한 최대 변환 크기라 가정하면, 크로마 블록에 대한 TS 및/또는 BDPCM에 대한 최대 허용 높이는 MaxTbSizeY / SubHeightC 보다 작거나 같아야 한다.
h. 최대 허용 변환 스킵(TS) 블록 크기는 이진 신택스 요소(가령, "0"은 16과 같다고 표현하고, "1"은 32와 같다고 표현)로 시그널링될 수 있다.
5. 최대 허용 변환 스킵(TS) 블록 크기 및/또는 최대 허용 변환 블록 크기는 최소 코딩 블록 크기 보다 작아서는 안 된다.
6. 최대 허용 변환 블록 크기(JVET-Q2001-vB에서 MaxTbSizeY로 표시)를 시그널링 또는 해석 또는 제한할지 여부 및/또는 그 방법은 최소 허용 코딩 블록 크기(JVET-Q2001-vB에서 MinCbSizeY로 표시)에 의존할 수 있다.
a. 일 예에서, MaxTbSizeY는 MinCbSizeY 보다 크거나 같아야 한다고 요구된다.
i. 일 예에서, MinCbSizeY가 64와 같으면, sps_max_luma_transform_size_64_flag의 값은 1과 같아야 한다.
ii. 일 예에서, MinCbSizeY가 64와 같으면, sps_max_luma_transform_size_64_flag는 시그널링되지 않으며 1이라 추론된다.
7. TS 및/또는 BDPCM 코딩의 최대 허용 크기(가령, JVET-Q2001-vB에서 MaxTsSiz로 표시)를 시그널링 또는 해석 또는 제한할지 여부 및/또는 그 방법은 최소 허용 코딩 블록 크기(JVET-Q2001-vB에서 MinCbSizeY로 표시)에 의존할 수 있다.
a. 일 예에서, MaxTsSize는 MinCbSizeY 보다 크거나 같아야 한다.
b. 일 예에서, MaxTsSize는 W 보다 작거나 같아야 한다고 요구되며, 이때 W는 예를 들어 32와 같은 정수이다.
i. 예를 들어, MaxTsSize는 MinCbSizeY<=MaxTsSize<=W를 만족해야 한다고 요구된다.
ii. 예를 들어, TS 및/또는 BDPCM 코딩이 활성화되는 경우, MinCbSizeY는 X 보다 작거나 같아야 한다.
c. 일 예에서, TS 및/또는 BDPCM이 활성화되는 경우(가령, sps_transform_skip_enabled_flag가 1과 같음), MaxTsSize는 MinCbSizeY 보다 크거나 같아야 한다고 요구된다.
i. 예를 들어, sps_transform_skip_enabled_flag가 1과 같은 경우, log2_transform_skip_max_size_minus2log2_min_luma_coding_block_size_minus2 보다 크거나 같아야 한다.
d. 일 예에서, MaxTsSize = max(MaxTsSize, MinCbSizeY).
i. 다른 예에서, MaxTsSize = min(W, max(MaxTsSize, MinCbSizeY), 여기서 W는 예를 들어 32와 같은 정수.
e. 일 예에서, TS 및/또는 BDPCM이 활성화되는 경우(가령, sps_transform_skip_enabled_flag가 1과 같음), MaxTsSize = max(MaxTsSize, MinCbSizeY).
i. 일 예에서, TS 및/또는 BDPCM이 활성화되는 경우(가령, sps_transform_skip_enabled_flag가 1과 같음), MaxTsSize = min(W, max(MaxTsSize, MinCbSizeY)), 여기서 W는 예를 들어 32와 같은 정수.
f. 일 예에서, MaxTsSize (가령, JVET-Q2001-vB에서 log2_transform_skip_max_size_minus2)의 시그널링은 MinCbSizeY에 의존할 수 있다.
i. 일 예에서, log2_transform_skip_max_size_minus2log2_min_luma_coding_block_size_minus2 사이의 차이는(log2_diff_max_trasform_skip_min_coding_block로 표기) MaxTsSize를 지시하기 위해 시그널링될 수 있다.
1) 예를 들어, MaxTsSize = 1<<(MinCbLog2SizeY+ log2_diff_max_trasform_skip_min_coding_block).
2) 예를 들어, MaxTsSize = min(W, 1<<(MinCbLog2SizeY+ log2_diff_max_trasform_skip_min_coding_block)) 여기서 W는 예를 들어 32와 같은 정수.
8. TS 및/또는 BDPCM 코딩의 지시(가령, JVET-Q2001-vB에서 sps_transform_skip_enabled_flag로 표시)를 시그널링 또는 해석 또는 제한할지 여부 및/또는 그 방법은 최소 허용 코딩 블록 크기(JVET-Q2001-vB에서 MinCbSizeY로 표시)에 의존할 수 있다.
a. 일 예에서, MinCbSizeY가 64와 같으면, sps_transform_skip_enabled_flag는 시그널링되지 않고 0이라 추론된다.
b. 일 예에서, MinCbSizeY가 TS 및/또는 BDPCM에 대한 최대 허용 크기 보다 크면(가령, TS 및/또는 BDPCM에 대한 상기 최대 허용 크기가 32), sps_transform_skip_enabled_flag는 시그널링되지 않고 0이라 추론된다.
9. SPS/PPS/픽처 헤더/슬라이스 헤더에서 코딩 툴 X의 지시를 시그널링 또는 해석할지 여부 및/또는 그 방법은 최소 허용 코딩 블록 크기(JVET-Q2001-vB에서 MinCbSizeY)에 의존할 수 있다.
a. SPS/PPS/픽처 헤더/슬라이스 헤더에서 코딩 툴 X의 지시는, 최소 허용 코딩 블록 크기가 T 보다 크면, 시그널링되지 않고 사용되지 않는 것으로 추론될 수 있으며, 이때 T는 예를 들어 32와 같은 정수이다.
b. 최소 허용 코딩 블록 크기가 T 보다 크면 SPS/PPS/픽처 헤더/슬라이스 헤더에서 코딩 툴 X는 사용되지 않는 것으로 지시되어야 한다고 요구되며, 이때 T는 예를 들어 32와 같은 정수이다.
c. 코딩 툴 X는 인터 인트라 결합 예측(CIIP: Combined Inter-Intra Prediction)일 수 있다.
d. 코딩 툴 X는 다중 변환 선택(MTS: Multiple Transform Selection)일 수 있다.
e. 코딩 툴 X는 세그먼트 블록 변환(SBT: Segment Block Transform)일 수 있다.
f. 코딩 툴 X는 대칭 모션 벡터 차분(SMVD: Symmetric Motion Vector Difference)일 수 있다.
g. 코딩 툴 X는 BDOF일 수 있다.
h. 코딩 툴 X는 어파인 예측일 수 있다.
i. 코딩 툴 X는 광학 흐름을 이용한 예측 조정(PROF: Prediction Refine with Optical Flow)일 수 있다.
j. 코딩 툴 X는 디코더 측 모션 벡터 조정(DMVR: Decoder-side Motion Vector Refinement)일 수 있다.
k. 코딩 툴 X는 CU 레벨 가중치 이용 양-예측(BCW: Bi-prediction with CU-level Weights)일 수 있다.
l. 코딩 툴 X는 모션 벡터 차이에 의한 병합(MMVD: Merge with Motion Vector Difference)일 수 있다.
m. 코딩 툴 X는 기하학적 분할 모드(GPM: Geometric Partitioning Mode)일 수 있다.
n. 코딩 툴 X는 인트라 블록 카피(IBC: Intra Block Copy)일 수 있다.
o. 코딩 툴 X는 팔레트 코딩일 수 있다.
p. 코딩 툴 X는 적응형 컬러 변환(ACT: Adaptive Color Transform)일 수 있다.
q. 코딩 툴 X는 조인트 Cb-Cr 잔차 코딩(JCCR: Joint Cb-Cr Residue coding)일 수 있다.
r. 코딩 툴 X는 크로스 컴포넌트 선형 모델 예측(CCLM: Cross-Component Linear Model prediction)일 수 있다.
s. 코딩 툴 X는 다중 참조 라인(MRL: Multiple Reference Line)일 수 있다.
t. 코딩 툴 X는 행렬 기반 인트라 예측(MIP: Matrix-baesd Intra-Prediction)일 수 있다.
u. 코딩 툴 X는 인트라 서브파티션 예측(ISP: Intra Subpartitions Prediction)일 수 있다.
10. 이중 트리 코딩이 적용되는 경우, 이진 트리 분할에 대한 최소 허용 블록 크기(가령, JVET-Q2001-vB에서의 MinBtSizeY)는 루마 성분 및 크로마 성분들에 대해 상이할 수 있다.
a. 일 예에서, MinBtSizeY = 1 << MinBtLog2SizeY는 루마 성분에 대한 이진 트리 분할을 위한 최소 허용 블록 크기이며, MinBtSizeC = 1 << MinBtLog2SizeC는 크로마 성분들에 대한 이진 트리 분할을 위한 최소 허용 블록 크기이고, 이때, MinBtLog2SizeY는 MinBtLog2SizeC와 같지 않을 수 있다.
i. MinBtLog2SizeY는 MinCbLog2SizeY에 의해 예측되어 시그널링 될 수 있다. 예를 들어, MinBtLog2SizeY 와 MinCbLog2SizeY 간의 차이가 시그널링 될 수 있다.
ii. MinBtLog2SizeC는 MinCbLog2SizeY에 의해 예측되어 시그널링 될 수 있다. 예를 들어, MinBtLog2SizeC 와 MinCbLog2SizeY 간의 차이가 시그널링 될 수 있다.
11. 이중 트리 코딩이 적용되는 경우, 삼진 트리 분할에 대한 최소 허용 블록 크기(가령, JVET-Q2001-vB에서의 MinTtSizeY)는 루마 성분 및 크로마 성분들에 대해 상이할 수 있다
a. 일 예에서, MinTtSizeY = 1 << MinTtLog2SizeY는 루마 성분에 대한 삼진 트리 분할을 위한 최소 허용 블록 크기이며, MinTtSizeC = 1 << MinTtLog2SizeC는 크로마 성분들에 대한 삼진 트리 분할을 위한 최소 허용 블록 크기이고, 이때, MinTtLog2SizeY는 MinTtLog2SizeC와 같지 않을 수 있다.
i. MinTtLog2SizeY는 MinCbLog2SizeY에 의해 예측되어 시그널링 될 수 있다. 예를 들어, MinTtLog2SizeY 와 MinCbLog2SizeY간의 차이가 시그널링 될 수 있다.
ii. MinTtLog2SizeC는 MinCbLog2SizeY에 의해 예측되어 시그널링 될 수 있다. 예를 들어, MinTtLog2SizeC 와 MinCbLog2SizeY간의 차이가 시그널링 될 수 있다.
12. 서브블록 기반 머지 후보들의 최대 수(가령, MaxNumSubblockMergeCand)는 제1 변수와 제2 변수의 합으로 도출되며, 이때, 어파인 예측이 비활성화되는 경우(가령, sps_affine_enabled_flag가 0과 같다), 상기 제1 변수는 0과 같으며, 상기 제2 변수는 서브블록 기반 TMVP (sbTMVP)이 활성화되는지 여부에 의존한다.
a. 일 예에서, 상기 제1 변수는 허용된 어파인 머지 후보들의 수를 표현한다.
b. 일 예에서, 상기 제2 변수는 ( sps_sbtmvp_enabled_flag && ph_temporal_mvp_enable_flag )로 설정될 수 있다.
c. 일 예에서, 상기 제1 변수는 K-S로 도출되며, 이때 S는 신택스 요소(가령, five_minus_ num_affine_merge_cand)에 의해 시그널링되는 값이고, K는 4 또는 5와 같은 고정된 수이다.
d. 일 예에서, MaxNumSubblockMergeCand = 5 - five_minus_max_num_affine_merge_cand + ( sps_sbtmvp_enabled_flag && ph_temporal_mvp_enable_flag ).
e. 일 예에서, MaxNumSubblockMergeCand = 4 - four_minus_max_num_affine_merge_cand + ( sps_sbtmvp_enabled_flag && ph_temporal_mvp_enable_flag ).
f. 일 예에서, MaxNumSubblockMergeCand = Min( W, MaxNumSubblockMergeCand ), 이때 W는 예를 들어 5와 같은 고정된 수이다.
g. 일 예에서, 상기 제1 변수의 지시(가령, five_minus_max_num_affine_merge_cand 또는 four_minus_max_num_affine_merge_cand)는 조건적으로 시그널링될 수 있다.
i. 일 예에서, 그것은 sps_affine_enabled_flag가 1과 같은 경우에만 시그널링될 수 있다.
ii. 존재하지 않는 경우, five_minus_max_num_affine_merge_cand는 K와 같다고 추론된다(가령, K = 4 또는 5).
13. 루마 성분 크로마 성분에 대한 ALF 가상 경계 및 CTB 하단 경계 사이의 행들(라인들)의 수 및/또한 루마 성분에 대한 ALF 가상 경계 및 CTB 하단 경계 사이의 행에 대한 필터 강도 및 크로마 성분의 해당 행에 대한 필터 강도 그리고/또는 동일한 행을 가진 루마 및 크로마 샘플들에 대한 패딩 방법은 4:2:2 및 4:4:4 경우들에 대해 정렬된다.
a. 일 예에서, 크로마 ALF에서 ALF 가상 경계(VB)의 수직 (및/또는 수평) 위치는 4:2:2/4:4:4 크로마 포맷 비디오에 대해 루마 ALF에서 ALF 가상 경계(VB)의 수직 (및/또는 수평) 위치와 정렬되어야 한다. 루마 ALF에서의 ALF VB의 수직 (및/또는 수평) 위치를 vbPosY로 표시하고, 크로마 ALF에서의 ALF VB의 수직 (및/또는 수평) 위치를 vbPosC로 표시한다.
i. 일 예에서, 루마 ALF에서의 ALF VB의 수직 (및/또는 수평) 위치 vbPosY가 CtbSizeY - S와 같으면, 크로마 성분에 대한 ALF VB의 수직 위치 vbPosC는 ( CtbSizeY - S ) / SubHeightC와 같게 설정될 수 있다.
ii. 일 예에서, 루마 ALF에서의 ALF VB의 수평 위치 vbPosY가 CtbSizeY - S와 같으면, 크로마 성분에 대한 ALF VB의 수평 위치 vbPosC는 ( CtbSizeY - S ) / SubWidthC와 같다.
iii. 상기 예들에서, CtbSizeY는 각 CTU의 루마 코딩 트리 블록 크기를 명시하며, SubHeightC 및 SubWidthC는 표 3-1에서 정의된다. S는 예를 들어 4와 같은 정수이다.
b. ALF VB의 수직 (및/또는 수평) 위치 근처의 K개 라인들 (및/또는 H개 열들)에 대한 크로마 ALF에서의 패딩 방법은 루마 ALF에서의 패딩 방법과 정렬되어야 한다. 수직 (또는 수평) 크로마 샘플 위치는 Yc로 표시한다.
i. 일 예에서, Yc가 vbPosC와 같은 경우(가령, 도 14B), 다음이 적용된다.
1) 상단(또는 좌측) K개(가령, K = 2)의 사용 불가능한 라인들이 패딩될 수 있다. 또는, 더 나아가서, 현재 라이 아래(또는 우측)의 이 사용 불가능한 라인들 중 해당하는 K개 라인들 또한, 그것들이 사용가능한 경우에도, 패딩될 수 있다.
a. 일 예에서, 상단 K개 사용 불가능한 라인들은 현재 라인을 사용하여 패딩될 수 있다.
i. 일 예에서, 도 14B에서, 현재 라인 상단의 C1, C2, C3는 C5, C6, C5와 같게 설정될 수 있다. 현재 라인 상단의 C0는 C6와 같게 설정될 수 있다.
b. 일 예에서, 상단의 상응하는 K개 라인들은 현재 라인을 사용하여 패딩될 수 있다.
i. 일 예에서, 도 14B에서, 현재 라인 상단 C3, C2, C1은 C5, C6, C5와 같게 설정될 수 있다. 현재 라인 하단 C0는 C6와 같게 설정될 수 있다.
2) 상기 하단 (또는 우측) K개 사용 불가능한 라인들은 패딩될 수 있다. 또는, 더 나아가서, 현재 라인 상단(또는 좌측)의 이 사용 불가능한 라인들의 상응하는 K개 라인들 또한, 그것들이 사용 가능한 경우에도, 패딩될 수 있다.
ii. 일 예에서, Yc가 vbPosC - M (가령, M = 1, 2)와 같은 경우(가령, 도 14A 및 도 14D), 다음이 적용될 수 있다.
1) 하단(또는 우측)의 K개(가령, K = 1, 2) 사용 불가능한 라인들이 패딩될 수 있다. 그리고 현재 라인 상단(또는 좌측)의 이 사용 불가능한 라인들의 상응하는 K개 라인들 또한, 그것들이 사용 가능함에도 불구하고, 패딩될 수 있다.
a. 일 예에서, M이 1과 같은 경우, 상기 하단의 K개 사용 불가능한 라인들은 현재 라인을 사용하여 패딩될 수 있다.
i. 일 예에서, 도 14A에서, 현재 라인 하단의 C3, C2, C1은 C5, C6 C5와 같게 설정될 수 있다. 그리고 현재 라인 하단의 C0은 C6와 같게 설정될 수 있다.
b. 일 예에서, M이 1과 같은 경우, 상단의 상응하는 K개 라인들은 현재 라인을 사용하여 패딩될 수 있다.
i. 일 예에서, 도 14A에서, 현재 라인 상단의 C1, C2, C3은 C5, C6 C5와 같게 설정될 수 있다. 그리고 현재 라인 상단의 C0은 C6와 같게 설정될 수 있다.
c. 일 예에서, M이 2 보다 크거나 같은 경우, 하단의 K개의 사용 불가능한 라인들은 ALF 가상 경계 상단의 최하측 라인을 사용하여 패딩될 수 있다(가령, vbPosC - 1).
i. 일 예에서, 도 14D에서, 현재 라인 하단의 C0는 C6와 같게 설정될 수 있다.
d. 일 예에서, M이 2 보다 크거나 같은 경우, 상응하는 K개 라인들은 ALF 가상 경계 상단의 최하측 라인의 상응하는 라인을 사용하여 패딩될 수 있다(가령, vbPos - 2*M + 1).
i. 일 예에서, 도 14D에서, 현재 라인 상단의 C0는 C6와 같게 설정될 수 있다.
iii. 일 예에서, Yc가 vbPosC + N(가령, N =1)와 같은 경우(가령, 도 14C), 다음이 적용된다.
1) 상단(또는 좌측) K개(가령, K = 1)의 사용 불가능한 라인들이 패딩될 수 있다. 그리고 현재 라인 하단(또는 우측)의 이 사용 불가능한 라인들의 상응하는 K개 라인들 또한, 그것들이 사용 가능함에도 불구하고, 패딩될 수 있다.
a. 일 예에서, 상단 K개 사용 불가능한 라인들은 현재 라인을 사용하여 패딩될 수 있다.
i. 일 예에서, 도 14C에서, 현재 라인 상단의 C0은 C6와 같게 설정될 수 있다.
b. 일 예에서, 상응하는 K개 라인들은 현재 라인을 사용하여 패딩될 수 있다.
i. 일 예에서, 도 14C에서, 현재 라인 하단의 C0은 C6와 같게 설정될 수 있다.
c. 일 예에서, 크로마 ALF에서 ALF VB의 수직(또는 수평) 위치 근처 M개 라인들(또는 N개 열들)의 ALF 필터 강도는 4:2:2/4:4:4 크로마 포맷 비디오에 대해 루마 ALF에서의 필터 강도와 함께 정렬되어야 한다. 루마 ALF 및 크로마 ALF의 ALF 필터 강도는 alfShiftY (가령, 표 45) 및 alfShiftC (가령, 표 46)에 의해 제어된다.
i. 일 예에서, Yc = = vbPosC - M (가령, M = 0, 1)이면, alfShiftC = T1이고, Yc != vbPosC - M이면, alfShiftC = T2이다.
1) 일 예에서, T1 = 10, T2 = 7.
ii. 일 예에서, Yc = = vbPosC + M (가령, M = 0, 1)이면, alfShiftC = T1이고, Yc != vbPosC + M이면, alfShiftC = T2이다.
1) 일 예에서, T1 = 10, T2 = 7.
6. 실시예들
6.1. loop_filter_across_tiles_enabled_flag 시그널링의 실시예
7.3.2.4 픽처 파라미터 세트 RBSP 신택스
Figure pct00080
6.2. loop_filter_across_slices_enabled_flag 시그널링의 실시예 #1
7.3.2.4 픽처 파라미터 세트 RBSP 신택스
Figure pct00081
6.3. loop_filter_across_slices_enabled_flag 시그널링의 실시예 #2
7.3.2.4 픽처 파라미터 세트 RBSP 신택스
Figure pct00082
6.4. loop_filter_across_slices_enabled_flag 시그널링의 실시예 #3
7.3.2.4 픽처 파라미터 세트 RBSP 신택스
Figure pct00083
6.5. loop_filter_across_slices_enabled_flag 시그널링의 실시예 #5
7.3.2.4 픽처 파라미터 세트 RBSP 신택스
Figure pct00084
6.6. LMCS 정보 시그널링의 실시예 #1
7.3.2.4 픽처 파라미터 세트 RBSP 신택스
Figure pct00085
6.7. LMCS 정보 시그널링의 실시예 #2
7.3.2.7 픽처 파라미터 세트 RBSP 신택스
Figure pct00086
6.8. LMCS 정보 시그널링의 실시예 #3
7.3.7.1 일반 슬라이스 헤더 신택스
Figure pct00087
6.9. LMCS 정보 시그널링의 실시예 #4
7.3.2.7 픽처 파라미터 세트 RBSP 신택스
Figure pct00088
6.10. LMCS 정보 시그널링의 실시예 #5
7.3.7.1 일반 슬라이스 헤더 신택스
Figure pct00089
6.11. LMCS 정보 시그널링의 실시예 #6
예시 1: slice_lmcs_enabled_flag가 존재하지 않는 경우, 그것은 ph_lmcs_enabled_flag와 같다고 추론된다.
예시 2: slice_lmcs_aps_id가 존재하지 않는 경우, 그것은 ph_lmcs_aps_id와 같다고 추론된다.
예시 3: slice_chroma_residual_scale_flag가 존재하지 않는 경우, 그것은 ph_chroma_residual_scale_flag와 같다고 추론된다.
6.12. 슬라이스 정보 시그널링의 실시예 #1
7.3.2.4 픽처 파라미터 세트 RBSP 신택스
Figure pct00090
Figure pct00091
6.13. ALF 가상 경계를 처리하는 실시예
8.8.5.4 크로마 샘플들에 대한 코딩 트리 블록 필터링 프로세스
...
- 수직 샘플 위치 오프세트들 y1, y2 및 변수 alfShiftC는 수직 크로마 샘플 위치 y와 applyAlfLineBufBoundary에 따라 표 46 에서 명시된다.
- 변수 curr는 아래와 같이 유도된다.
Figure pct00092
- 크로마 필터 계수들의 어레이 f[ j ] 및 크로마 클리핑 값들의 어레이 c[ j ]는 j = 0..5로 아래와 같이 도출된다.
Figure pct00093
- 변수 sum은 아래와 같이 도출된다.
Figure pct00094
Figure pct00095
- 수정된 필터링되고 재구성된 크로마 픽처 샘플 alfPicture[ xCtbC + x ][ yCtbC + y ]는 아래과 같이 도출된다.
Figure pct00096
표 46 - 수직 크로마 샘플 위치 y 및 applyAlfLineBufBoundary에 따른 y1, y2 및 alfShifC의 사양
Figure pct00097
도 15는 여기서 개시된 다양한 기술들이 구현될 수 있는 예시적인 비디오 처리 시스템(1900)을 보여주는 블록도이다. 다양한 구현들은 상기 시스템(1900)의 일부 또는 모든 구성품들을 포함할 수 있다. 상기 시스템(1900)은 비디오 콘텐츠를 수신하기 위한 입력(1902)을 포함할 수 있다. 상기 비디오 콘텐츠는 가공되지 않거나 압축되지 않은 포맷, 예를 들어, 8 또는 10 비트 다중 성분 픽셀 값들로 수신되거나 압축되거나 인코딩된 포맷으로 수신될 수 있다. 상기 입력(1902)은 네트워크 인터페이스, 주변 버스 인터페이스, 또는 저장 인터페이스를 나타낼 수 있다. 네트워크 인터페이스의 예들은 이더넷, 수동 광학 네트워크(Passive Optical Network: PON) 등과 같은 유선 인터페이스들 및 와이파이 또는 셀룰러 인터페이스와 같은 무선 인터페이스들을 포함한다.
상기 시스템(1900)은 현재 문서에서 기술되는 다양한 코딩 또는 인코딩 방법들을 구현할 수 있는 코딩 구성요소(1904)을 포함할 수 있다. 상기 코딩 구성요소(1904)는 상기 코딩 구성요소(1904)의 상기 입력(1902)로부터 상기 출력까지의 비디오의 평균 비트레이트를 줄여 상기 비디오의 코딩된 표현을 산출할 수 있다. 따라서 코딩 기술들은 종종 비디오 압축 또는 비디오 트랜스코딩 기술들이라 불린다. 상기 코딩 구성요소(1904)의 출력은, 상기 구성요소(1906)에 의해 나타난 대로, 연결된 통신을 통해 저장 또는 송신될 수 있다. 상기 입력(1902)에서 수신된 상기 비디오의 상기 저장 또는 통신된 비트스트림(또는 코딩된) 표현은 디스플레이 인터페이스(1910)에 보내지는 디스플레이가능한 비디오 또는 픽셀 값들을 생성하기 위해 상기 구성요소(1908)에 의해 사용될 수 있다. 사용자가 볼 수 있는 비디오를 상기 비트스트림 표현으로부터 생성시키는 절차는 종종 비디오 압축해제라 불린다. 더 나아가서, 특정 비디오 처리 작업들이 "코딩" 작업 또는 툴로 불리는 관계로, 상기 코딩 툴 또는 작업들이 인코더에서 사용되고 상응하는 디코딩 툴 또는 작업들은 코딩의 결과를 반전시키는 것들로써 디코더에 의해 실행된다는 것이 이해될 것이다.
주변 버스 인터페이스 또는 디스플레이 인터페이스의 예들은 범용 직렬 버스(USB: Universal Serial Bus) 또는 고화질 멀티미디어 인터페이스(HDMI: High Definition Multimedia Interface) 또는 디스플레이 포트 등을 포함할 수 있다. 저장 인터페이스의 예들은 SATA (serial advanced technology attachment), PCI, IDE 인터페이스 등을 포함한다. 본 문서에 설명된 기술들은 휴대폰, 노트북, 스마트폰, 또는 디지털 데이터 처리 및/또는 비디오 디스플레이를 실행할 수 있는 디바이스들과 같은 다양한 전자 디바이스들에서 구현될 수 있다.
도 16은 비디오 처리 장치(3600)의 블록도이다. 상기 장치(3600)는 여기서 기술된 하나 또는 그 이상의 방법들을 실행하는 데에 사용될 수 있다. 상기 장치(3600)는 스마트폰, 태블릿, 컴퓨터, IoT 수신기 등에서 구현될 수 있다. 상기 장치(3600)는 하나 또는 그 이상의 프로세서들(3602), 하나 또는 그 이상의 메모리들(3604) 그리고 비디오 처리 하드웨어(3606)을 포함할 수 있다. 상기 프로세서(들)(3602)은 본 문서에 기술된 하나 또는 그 이상의 방법들을 실행하기 위해 구성될 수 있다. 상기 메모리(메모리들)(3604)은 여기서 기술된 방법들 및 기술들을 구현하기 위해 사용되는 데이터 및 코드를 저장하는 데에 사용될 수 있다. 상기 비디오 처리 하드웨어(3606)는 본 문서에 기술된 몇몇 기술들을 하드웨어 회로에서 구현하는 데에 사용될 수 있다.
도 18은 본 개시의 기술들을 활용할 수 있는 예시적인 비디오 코딩 시스템(100)을 도시한 블록도이다.
도 18에 나타난 바와 같이, 비디오 코딩 시스템(100)은 소스 장치(110) 및 대상 장치(120)를 포함할 수 있다. 소스 장치(110)는 인코딩된 비디오 데이터를 생성할 수 있으며, 비디오 인코딩 장치로 지칭될 수 있다. 대상 장치(120)는 소스 장치(110)에 의해 생성된 인코딩된 비디오 데이터를 디코딩할 수 있으며, 비디오 디코딩 장치로 지칭될 수 있다.
소스 장치(110)는 비디오 소스(112), 비디오 인코더(114) 및 입력/출력(I/O) 인터페이스(116)를 포함할 수 있다.
비디오 소스(112)는 비디오 캡처 장치, 비디오 콘텐츠 제공자로부터 비디오 데이터를 수신하는 인터페이스, 그리고/또는 비디오 데이터 생성을 위한 컴퓨터 그래픽스 시스템, 또는 이러한 소스들의 조합 등과 같은 소스를 포함할 수 있다. 비디오 데이터는 하나 이상의 픽처를 포함할 수 있다. 비디오 인코더(114)는 비트스트림을 생성하기 위해 비디오 소스(112)로부터 비디오 데이터를 인코딩한다. 비트스트림은 비디오 데이터의 코딩된 표현을 형성하는 비트들의 시퀀스를 포함할 수 있다. 비트스트림은 코딩된 픽처들 및 관련 데이터를 포함할 수 있다. 코딩된 픽처는 픽처의 코딩된 표현이다. 관련 데이터는 시퀀스 파라미터 세트, 픽처 파라미터 세트 및 다른 신택스 구조들을 포함할 수 있다. I/O 인터페이스(116)는 변조기/역변조기 (모뎀) 및/또는 전송기를 포함할 수 있다. 인코딩된 비디오 데이터는 I/O 인터페이스(116)를 통해 네트워크(130a)를 거쳐 직접 대상 장치(120)에 전송될 수 있다. 인코딩된 비디오 데이터는 또한 대상 장치(120)에 의한 액세스를 위해 저장 매체/서버(130b)에 저장될 수 있다.
대상 장치(120)는 I/O 인터페이스(126), 비디오 디코더(124) 및 디스플레이 장치(122)를 포함할 수 있다.
I/O 인터페이스(126)는 수신기 및/또는 모뎀을 포함할 수 있다. I/O 인터페이스(126)은 소스 장치(110) 또는 저장 매체/서버 (130b)로부터 인코딩된 비디오 데이터를 획득할 수 있다. 비디오 디코더(124)는 인코딩된 비디오 데이터를 디코딩할 수 있다. 디스플레이 장치(122)는 사용자에게 디코딩된 비디오 데이터를 디스플레이할 수 있다. 디스플레이 장치(122)는 대상 장치(120)와 통합되거나 외부 디스플레이 장치와 인터페이스하도록 구성된 대상 장치(120)의 외부에 존재할 수 있다.
비디오 인코더(114) 및 비디오 디코더(124)는 HEVC(High Efficiency Video Coding) 표준, VVC(Versatile Video Coding) 표준 및 다른 현재 및/혹은 미래의 표준들과 같은 비디오 압축 표준에 따라 동작할 수 있다.
도 19는 도 18의 시스템(100)에서 비디오 인코더(114)일 수 있는 비디오 인코더(200)의 일 예를 도시하는 블록도이다.
비디오 인코더(200)는 본 개시의 일부 혹은 모든 기술을 수행하도록 구성될 수 있다. 도 19에서, 비디오 인코더(200)는 복수의 기능적 구성요소들을 포함한다. 본 개시에 설명된 기술들은 비디오 인코더(200)의 다양한 구성요소들 사이에서 공유될 수 있다. 일부 예시들에서, 프로세서는 본 개시에서 설명된 일부 혹은 모든 기술들을 수행하도록 구성될 수 있다.
비디오 인코더(200)의 기능적 구성요소들은 분할부(201), 모드 선택부(203), 모션 추정부(204), 모션 보상부(205) 및 인트라 예측부(206)를 포함할 수 있는 예측부(202), 잔차 생성부(207), 변환부(208), 양자화부(209), 역양자화부(210), 역변환부(211), 복원부(212), 버퍼(213), 그리고 엔트로피 인코딩부(214)를 포함할 수 있다.
다른 예들에서, 비디오 인코더(200)는 더 많은 수의, 적은 수의 또는 상이한 기능적 구성요소들을 포함할 수 있다. 일 예에서, 예측부(202)는 인트라 블록 카피(IBC) 유닛을 포함한다. 상기 IBC 유닛은 적어도 하나의 참조 픽처가 현재 비디오 블록이 위치하는 픽처인 IBC 모드로 예측을 수행할 수 있다.
게다가, 모션 추정부(204) 및 모션 보상부(205)와 같은 몇몇 구성요소들은 고도로 통합될 수 있지만, 설명의 목적을 위해 도 19의 예에서는 별도로 도시되었다.
분할부(201)는 픽처를 하나 또는 그 이상의 비디오 블록들로 분할할 수 있다. 비디오 인코더(200) 및 비디오 디코더(300)는 다양한 비디오 블록 크기들을 지원할 수 있다.
모드 선택부(203)는 예를 들어 오류 결과들에 기반하여, 인터 또는 인트라 코딩 모드들 중 하나를 선택할 수 있으며, 그 결과로 인트라 또는 인터 코딩된 블록을 잔차 생성부(207)에 제공하여 잔차 블록 데이터를 생성하도록 하고, 복원부(212)에 제공하여 인코딩된 블록을 참조 픽처로 사용하기 위해 복원하도록 할 수 있다. 몇몇 예들에서, 모드 선택부(203)는 예측이 인트라 예측 신호 및 인터 예측 신호에 기반하는 인트라 인터 결합 예측(CIIP) 모드를 선택할 수 있다. 모드 선택부(203)는 또한 인터 예측의 경우 블록에 대한 모션 벡터를 위한 해상도(예를 들어, 서브 픽셀 또는 정수 픽셀 정밀도)를 선택할 수 있다.
현재 비디오 블록에 인터 예측을 실시하기 위해, 모션 추정부(204)는 버퍼(213)에서부터 상기 현재 비디오 블록까지 하나 또는 그 이상의 참조 프레임들을 비교하여 상기 현재 비디오 블록에 대한 모션 정보를 생성할 수 있다. 모션 보상부(205)는 상기 모션 정보 및 버퍼(213)로부터 상기 현재 블록에 관련된 픽처가 아닌 픽처들의 디코딩된 샘플들에 기반하여 상기 현재 비디오에 대한 예측 비디오 블록을 결정할 수 있다.
모션 추정부(204) 및 모션 보상부(205)는 현재 비디오 블록에 대해, 예를 들어 상기 현재 비디오 블록이 I 슬라이스, P 슬라이스 또는 B 슬라이스에 있는지 여부에 의존하여, 상이한 동작들을 실시할 수 있다.
일부 예들에서, 모션 추정부(204)는 현재 비디오 블록에 대해 단방향(uni-directional) 예측을 실시할 수 있으며, 모션 추정부(204)는 현재 비디오 블록을 위한 참조 비디오 블록에 대해 리스트 0 또는 리스트 1의 참조 픽처들을 탐색할 수 있다. 그리고 나서, 모션 추정부(204)는 참조 비디오 블록을 포함하는 리스트 0 또는 리스트 1에서 참조 픽처를 지시하는 참조 인덱스를 그리고 상기 현재 비디오 블록과 상기 참조 비디오 블록 사이의 공간적 이동(displacement)을 지시하는 모션 벡터를 생성할 수 있다. 모션 추정부(204)는 상기 참조 인덱스, 예측 방향 지시자 그리고 상기 모션 벡터를 상기 비디오 블록의 모션 정보로 출력할 수 있다. 모션 보상부(205)는 상기 현재 비디오 블록의 상기 모션 정보에 의해 지시되는 상기 참조 비디오 블록에 기반하여 상기 현재 블록의 예측 비디오 블록을 생성할 수 있다.
다른 예들에서, 모션 추정부(204)는 현재 비디오 블록에 대해 양방향(bi-directional) 예측을 실시할 수 있으며, 모션 추정부(204)는 현재 비디오 블록을 위한 참조 비디오 블록에 대해 리스트 0의 참조 픽처들을 탐색할 수 있고, 현재 비디오 블록을 위한 다른 참조 비디오 블록에 대해 리스트 1의 참조 픽처들을 탐색할 수 있다. 그리고 나서, 모션 추정부(204)는 참조 비디오 블록들을 포함하는 리스트 0 또는 리스트 0에서 참조 픽처들을 지시하는 참조 인덱스를 그리고 상기 현재 비디오 블록과 상기 참조 비디오 블록들 사이의 공간적 이동들(displacements)을 지시하는 모션 벡터들을 생성할 수 있다. 모션 추정부(204)는 상기 참조 인덱스들 및 상기 현재 비디오 블록의 상기 모션 벡터들을 상기 비디오 블록의 모션 정보로 출력할 수 있다. 모션 보상부(205)는 상기 현재 비디오 블록의 상기 모션 정보에 의해 지시되는 상기 참조 비디오 블록들에 기반하여 상기 현재 블록의 예측 비디오 블록을 생성할 수 있다.
일부 예들에서, 모션 추정부(204)는 디코더의 디코딩 처리를 위한 모션 정보의 풀 세트를 출력할 수 있다.
일부 예들에서, 모션 추정부(204)는 현재 비디오에 대한 모션 정보의 풀 세트를 출력하지 않을 수 있다. 오히려, 모션 추정부(204)는 다른 비디오 블록의 모션 정보를 참조하여 현재 비디오 블록의 모션 정보를 시그널링할 수 있다. 예를 들어, 모션 추정부(204)는 현재 비디오 블록의 모션 정보가 이웃 비디오 블록의 모션 정보와 충분히 유사하다고 판단할 수 있다.
일 예에서, 모션 추정부(204)는 현재 비디오 블록과 연관된 신택스 구조에서 현재 비디오 블록이 다른 비디오 블록과 동일한 모션 정보를 가지고 있다는 것을 비디오 디코더(300)에게 지시하는 값을 지시할 수 있다.
다른 예에서, 모션 추정부(204)는 현재 비디오 블록과 연관된 신택스 구조에서 다른 비디오 블록 및 모션 벡터 차분(MVD: motion vector difference)을 식별할 수 있다. 상기 모션 벡터 차분은 현재 비디오 블록과 지시되는 비디오 블록의 모션 벡터 사이의 차분을 지시한다. 비디오 디코더(300)는 지시되는 비디오 블록의 모션 벡터 및 모션 벡터 차분을 이용하여 현재 비디오 블록의 모션 벡터를 결정할 수 있다.
위에서 논의된 것처럼, 비디오 인코더(200)는 모션 벡터를 예측적으로 시그널링할 수 있다. 비디오 인코더(200)에 의해 실시될 수 있는 예측적 시그널링 기술들의 두 가지 예에는 향상된 모션 벡터 예측(AMVP: advanced motion vector prediction)과 머지 모드 시그널링이 있다.
인트라 예측부(206)는 현재 비디오 블록에 대해 인트라 예측을 실시할 수 있다. 인트라 예측부(206)가 현재 비디오 블록에 대해 인트라 예측을 실시하는 경우, 인트라 예측부(206)는 동일한 픽처의 다른 비디오 블록들의 디코딩된 샘플들에 기반하여 현재 비디오 블록에 대한 예측 데이터를 생성할 수 있다. 현재 비디오 블록에 대한 예측 데이터는 예측된 비디오 블록 및 다양한 신택스 요소들을 포함할 수 있다.
잔차 생성부(207)는 현재 비디오 블록에서 현재 비디오 블록의 예측 비디오 블록(들)을 차감하여(예를 들어, 마이너스 기호로 지시) 현재 비디오 블록에 대한 잔차 데이터를 생성할 수 있다. 현재 비디오 블록의 상기 잔차 데이터는 현재 비디오 블록의 샘플들의 상이한 샘플 구성요소들에 해당하는 잔차 비디오 블록들을 포함할 수 있다.
다른 예들에서, 가령 스킵 모드에서, 현재 비디오 블록에 대한 잔차 데이터가 없을 수 있으며, 잔차 생성부(207)는 감산 동작을 실시하지 않을 수 있다.
변환 처리부(208)는 하나 또는 그 이상의 변환들을 현재 비디오 블록과 연관된 잔차 비디오 블록에 적용하여 현재 비디오 블록에 대한 하나 또는 그 이상의 변환 계수 비디오 블록들을 생성할 수 있다.
변환 처리부(208)가 현재 비디오 블록과 관련된 변환 계수 비디오 블록을 생성한 후, 양자화부(209)는 현재 비디오 블록과 관련된 하나 또는 그 이상의 양자화 파라미터(QP: quantization parameter) 값들에 기반하여 현재 비디오 블록과 관련된 상기 변환 계수 비디오 블록을 양자화 할 수 있다.
역양자화부(210) 및 역변환부(211)는 역양자화 및 역변환을 상기 변환 계수 비디오 블록에 각각 적용하여 상기 변환 계수 비디오 블록으로부터 잔차 비디오 블록을 복원할 수 있다. 복원부(212)는 상기 복원된 잔차 비디오 블록을 예측부(202)에 의해 생성된 하나 또는 그 이상의 예측 비디오 블록들에 해당하는 샘플들에 더하여 버퍼(213)에 저장하기 위해 현재 블록과 관련된 복원 비디오 블록을 생성할 수 있다.
복원부(212)가 상기 비디오 블록을 복원한 후에, 루프 필터링 동작이 상기 비디오 블록에서 비디오 블로킹 아티팩트들을 감소시키기 위해 실시될 수 있다.
엔트로피 인코딩부(214)는 비디오 인코더(200)의 다른 기능적 구성요소들로부터 데이터를 수신할 수 있다. 엔트로피 인코딩부(214)가 상기 데이터를 수신할 때, 엔트로피 인코딩부(214)는 하나 또는 그 이상의 엔트로피 인코딩 동작들을 실시하여 엔트로피 인코딩된 데이터를 생성하고 상기 엔트로피 인코딩된 데이터를 포함하는 비트스트림을 출력할 수 있다.
개시된 기술의 일부 실시예들은 비디오 처리 도구 또는 모드를 활성화하기 위한 판단 또는 결정을 하는 것을 포함한다. 일 예에서, 비디오 처리 도구 또는 모드가 활성화될 때, 인코더는 비디오의 블록의 처리 시 상기 도구 또는 모드를 사용하거나 구현하지만 상기 도구 또는 모드의 사용에 기초하여 결과적인 비트스트림을 반드시 수정하는 것은 아닐 수 있다. 즉, 비디오의 블록으로부터 비디오의 비트스트림 표현으로의 변환은 판단 또는 결정에 기초하여 활성화될 때 비디오 처리 도구 또는 모드를 사용할 것이다. 다른 예에서, 비디오 처리 도구 또는 모드가 활성화될 때, 디코더는 비디오 처리 도구 또는 모드에 기초하여 비트스트림이 수정되었다는 지식으로 비트스트림을 처리할 것이다. 즉, 비디오의 비트스트림 표현으로부터의 비디오의 블록으로의 변환은 판단 또는 결정에 기초하여 활성화된 비디오 처리 도구 또는 모드를 사용하여 수행될 것이다.
도 20은 도 18에 도시된 시스템(100) 내의 비디오 디코더(114)일 수 있는 비디오 디코더(300)의 일 예를 도시하는 블록도이다.
비디오 디코더(300)는 본 개시의 기술들 중 어느 하나 또는 전부를 실시하도록 구성될 수 있다. 도 20의 예에서, 비디오 디코더(300)는 복수의 기능적 구성요소들을 포함한다. 본 개시에서 설명되는 기술들은 비디오 디코더(300)의 다양한 구성요소들 사이에 공유될 수 있다. 일부 예들에서, 프로세서는 본 개시에서 설명되는 기술들 중 어느 하나 또는 전부를 실시하도록 구성될 수 있다.
도 20의 예에서, 비디오 디코더(300)는 엔트로피 디코딩부(301), 모션 보상부(302), 인트라 예측부(303), 역양자화부(304), 역변환부(305), 복원부(306), 그리고 버퍼(307)를 포함한다. 일부 예들에서, 비디오 디코더(300)는 비디오 인코더(200)(도 19)와 관련하여 설명된 인코딩 패스에 일반적으로 상반된 디코딩 패스를 실시할 수 있다.
엔트로피 디코딩부(301)는 인코딩된 비트스트림을 검색할 수 있다. 상기 인코딩된 비트스트림은 엔트로피 코딩된 비디오 데이터(예를 들어, 비디오 데이터의 인코딩된 블록들)을 포함할 수 있다. 엔트로피 디코딩부(301)는 상기 엔트로피 코딩된 비디오 데이터를 디코딩할 수 있으며, 엔트로피 디코딩된 비디오 데이터로부터, 모션 보상부(302)는 모션 벡터들, 모션 벡터 정밀도 및 참조 픽처 리스트 인덱스들을 포함하는 모션 정보 및 기타 모션 정보를 결정할 수 있다. 예를 들어, 모션 보상부(302)는 AMVP 및 머지 모드를 실행하여 이러한 정보를 결정할 수 있다.
모션 보상부(302)는 가능한 경우 보간 필터들에 기반한 보간을 실시하여 움직임 보상된 블록들을 산출할 수 있다. 서브 픽셀 정밀도와 함께 사용될 보간 필터들에 대한 식별자들은 신택스 요소들에 포함될 수 있다.
모션 보상부(302)는 비디오 인코더(200)가 비디오 블록의 인코딩 동안 사용한 것과 같이 보간 필터들을 사용하여 참조 블록의 서브-정수 픽셀들에 대한 보간된 값들을 계산할 수 있다. 모션 보상부(302)는 비디오 인코더(200)가 사용한 상기 보간 필터들을 수신된 신택스 정보에 따라 결정할 수 있으며, 상기 보간 필터들을 사용하여 예측적 블록들을 생성할 수 있다.
모션 보상부(302)는 인코딩된 비디오 시퀀스의 프레임(들) 및/또는 슬라이스(들)을 인코딩 하는 데에 사용된 블록들의 크기들을 판단하기 위한 일부 신택스 정보, 인코딩된 비디오 시퀀스의 픽처의 각 매크로블록이 어떻게 분할되는지를 기술하는 분할 정보, 각 파티션이 어떻게 인코딩되었는지를 지지하는 모드들, 각각의 인트라 인코딩된 블록에 대한 하나 또는 그 상의 참조 프레임들 (및 참조 프레임 리스트들), 그리고 인코딩된 비디오 시퀀스를 디코딩하기 위한 기타 정보를 이용할 수 있다.
인트라 예측부(303)는 공간적으로 인접한 블록들로부터 예측 블록을 형성하기 위해 예를 들어 비트스트림에서 수신된 인트라 예측 모드들을 이용할 수 있다. 역양자화부(303)는 비트스트림에서 제공되며 엔트로피 디코딩부(301)에 의해 디코딩된 양자화된 비디오 블록 계수들을 역 양자화(즉 양자화 해제)한다. 역변환부(303)는 역변환을 적용한다.
복원부(306)는 모션 보상부(202) 또는 인트라 예측부(303)에 의해 생성된 해당 예측 블록들과 잔차 블록들을 합산하여 디코딩된 블록들을 형성할 수 있다. 요망되는 경우, 디블로킹 필터 또한 블록화 아티팩트(blockiness artifacts)를 제거하기 위해 디코딩된 블록들의 필터링에 적용될 수 있다. 그리고 나서, 디코딩된 비디오 블록들은 버퍼(307)에 저장되며, 버퍼는 후속 모션 보상을 위한 참조 블록들을 제공하고 디스플레이 장치 상에 제시하기 위해 디코딩된 비디오를 또한 산출한다.
다음으로, 일부 실시예들에 의해 선호되는 해결 수단들의 리스트가 제공된다.
아래 해결 수단들은 이전 섹션(예를 들어, 항목 1 및 2)에서 논의된 기술들의 예시적 실시예들을 보여준다.
1. 비디오 처리 방법으로(예를 들어, 도 17에 도시된 방법(1700)), 비디오의 비디오 유닛과 상기 비디오의 코딩된 표현 간의 변환을 위해, 상기 비디오 유닛의 비디오 영역들을 가로지르는 인 루프 필터링의 적용가능성의 지시가 상기 코딩된 표현에 포함되는지 여부를 판단하는 단계(1702) 및 상기 판단에 기반하여 상기 변환을 실시하는 단계(1704)를 포함하는, 비디오 처리 방법.
2. 해결 수단 1에 있어서, 상기 비디오 유닛은 픽처를 포함하는, 비디오 처리 방법.
3. 해결 수단 1 내지 2 중 어느 것에 있어서, 상기 비디오 영역은 타일을 포함하는, 비디오 처리 방법.
4. 해결 수단 1 내지 2 중 어느 것에 있어서, 상기 비디오 영역은 슬라이스를 포함하는, 비디오 처리 방법.
아래 해결 수단들은 이전 섹션(예를 들어, 항목 3)에서 논의된 기술들의 예시적 실시예들을 보여준다.
5. 비디오 처리 방법으로, 비디오의 비디오 영역과 상기 비디오의 코딩된 표현 간의 변환을 실시하는 단계를 포함하며, 이때 상기 코딩된 표현은 포맷 규칙을 따르고, 상기 포맷 규칙은 루마 매핑 및 크로마 스케일링(LMCS) 툴의 상기 변환으로의 적용가능성에 관한 정보가 비디오 슬라이스 레벨에서 상기 코딩된 표현에서 지시된다고 명시하고, 상기 LMCS 툴은, 상기 변환 동안, 제1 도메인 및 제2 도메인에 기초하여 상기 현재 비디오 블록을 구성하는 것을 포함하고/포함하거나 크로마 잔차가 루마 의존적 방식으로 스케일링 되는, 비디오 처리 방법.
아래 해결 수단들은 이전 섹션(예를 들어, 항목들 4, 5, 7, 8)에서 논의된 기술들의 예시적 실시예들을 보여준다.
6. 비디오 처리 방법으로, 비디오와 상기 비디오의 코딩된 표현 간의 변환을 실시하는 단계를 포함하며, 이때 상기 변환은 크기 규칙을 따르고, 상기 크기 규칙은, 인코딩 동안, 변환 스킵 코딩 방식 또는 델타 펄스 코딩된 변조 코딩 방식을 사용하여 코딩된 비디오 영역의 최대 크기에 대해 상기 크기 규칙을 실시하거나, 또는, 디코딩 동안, 변환 스킵 디코딩 방식 또는 델타 펄스 코딩된 변조 디코딩 방식을 사용하여 디코딩된 상기 비디오 영역의 상기 최대 크기에 대해 상기 크기 규칙을 실시함으로써 상기 코딩된 표현을 파싱 및 디코딩함을 명시하는, 비디오 처리 방법.
7. 해결 수단 6에 있어서, 상기 크기 규칙은 변환 스킵 블록인 상기 비디오 영역의 상기 최대 크기가 코딩 트리 블록 크기 보다 작거나 같다고 명시하는, 비디오 처리 방법.
8. 해결수단 6에 있어서, 상기 크기 규칙은 블록 기반 델타 펄스 모드 코딩을 사용하여 처리되는 상기 비디오 영역의 상기 최대 크기가 코딩 트리 블록 크기 보다 작거나 같다고 명시하는, 비디오 처리 방법.
아래 해결 수단들은 이전 섹션(예를 들어, 항목 5)에서 논의된 기술들의 예시적 실시예들을 보여준다.
9. 해결 수단 6에 있어서, 상기 크기 규칙은 변환 스킵 블록인 상기 비디오 영역의 상기 최대 크기가 최소 코딩 블록 크기 보다 작거나 같다고 명시하는, 비디오 처리 방법.
10. 해결 수단 6에 있어서, 상기 크기 규칙은 블록 기반 델타 펄스 모드 코딩을 사용하여 처리되는 상기 비디오 영역의 상기 최대 크기가 최대 코딩 블록 크기 보다 작거나 같다고 명시하는, 비디오 처리 방법.
아래 해결 수단들은 이전 섹션(예를 들어, 항목 7)에서 논의된 기술들의 예시적 실시예들을 보여준다.
11. 해결 수단 6 내지 해결 수단 10 중 어느 것에 있어서, 상기 크기는 상기 코딩된 표현에서 필드에서 지시되고, 상기 변환을 위한 최소 허용 코딩 블록 크기가 상기 필드는 상기 코딩된 표현 내 어디에서 발생하는지 및/또는 상기 크기가 상기 필드로부터 어떻게 해석되는지를 제어하는, 비디오 처리 방법.
아래 해결 수단들은 이전 섹션(예를 들어, 항목 8)에서 논의된 기술들의 예시적 실시예들을 보여준다.
12. 해결 수단 6 내지 해결 수단 10 중 어느 것에 있어서, 상기 변환을 위한 최소 허용 코딩 블록 크기는 상기 크기 규칙을 가리키는 필드가 상기 코딩된 표현에서 발생하는지 여부 및/또는 상기 크기가 상기 필드로부터 어떻게 해석되는지를 제어하는, 비디오 처리 방법.
아래 해결 수단들은 이전 섹션(예를 들어, 항목 6)에서 논의된 기술들의 예시적 실시예들을 보여준다.
13. 비디오 처리 방법으로, 비디오의 비디오 영역과 상기 비디오의 코딩된 표현 간의 변환을 실시하는 단계를 포함하고, 이때 상기 코딩된 표현은 상기 변환 동안 사용되는 최소 허용 변환 블록 크기가 최대 허용 변환 블록 크기가 상기 코딩된 표현에 포함되는지 여부 또는 어떻게 포함되는지를 제어한다고 명시하는 포맷 규칙을 따르는, 비디오 처리 방법.
14. 해결 수단 13에 있어서, 상기 포맷 규칙은 상기 최소 허용 변환 블록 크기가 상기 최소 허용 코딩 블록 크기 보다 크거나 같다고 명시하는, 비디오 처리 방법.
아래 해결 수단들은 이전 섹션(예를 들어, 항목 9)에서 논의된 기술들의 예시적 실시예들을 보여준다.
15. 비디오 처리 방법으로, 비디오의 비디오 유닛과 상기 비디오의 코딩된 표현 간의 변환을 포맷 규칙에 따라 실시하는 단계를 포함하며, 이때 상기 코딩된 표현은, 상기 변환 동안 사용된 최소 허용 코딩 블록 크기가 상기 변환에의 코딩 툴의 적용가능성에 관한 정보를 전달하는 필드가 비디오 영역 레벨에서 포함되는지 여부를 제어함을 명시하는 상기 포맷 규칙을 따르는, 비디오 처리 방법.
16. 해결 수단 15에 있어서, 상기 비디오 영역은 시퀀스 파라미터 세트 또는 픽처 파라미터 세트 또는 픽처 헤더 또는 슬라이스 헤더에 해당하는, 비디오 처리 방법.
17. 해결 수단 15 내지 해결 수단 16 중 어느 것에 있어서, 상기 코딩 툴은 인터 인트라 결합 예측 툴을 포함하는, 비디오 처리 방법.
18. 해결 수단 15 내지 해결 수단 16 중 어느 것에 있어서, 상기 코딩 툴은 다중 변환 선택 코딩 툴을 포함하는, 비디오 처리 방법.
아래 해결 수단들은 이전 섹션(예를 들어, 항목들 10, 11)에서 논의된 기술들의 예시적 실시예들을 보여준다.
19. 비디오 처리 방법으로, 비디오의 비디오 영역과 상기 비디오의 코딩된 표현 간의 변환을 위해, 이중 트리 코딩이 상기 변환에 대해 사용되는 관계로, 상기 비디오의 루마 및 크로마 성분들에 대해 사용되는 분할 방식들이 상기 루마 및 크로마 성분들에 대해 상이한 최소 허용 블록 크기들을 가지고 있음을 판단하는 단계 및 상기 판단에 기반하여 상기 변환을 실시하는 단계를 포함하는, 비디오 처리 방법.
20. 해결 수단 19에 있어서, 상기 분할 방식들은 이진 트리 분할을 포함하는, 비디오 처리 방법.
21. 해결 수단 19에 있어서, 상기 분할 방식들은 삼진 트리 분할을 포함하는, 비디오 처리 방법.
아래 해결 수단들은 이전 섹션(예를 들어, 항목 12)에서 논의된 기술들의 예시적 실시예들을 보여준다.
22. 비디오 처리 방법으로, 비디오의 비디오 영역과 상기 비디오 영역의 코딩된 표현 간의 변환을 상기 코딩된 표현에 대한 포맷 규칙을 준수하여 실시하는 단계를 포함하며, 이때 상기 포맷 규칙은 상기 변환 동안 사용된 서브 블록 기반 머지 후보들의 최대 수가 제1 변수와 제2 변수의 합으로 도출 가능하다고 명시하고, 어파인 예측의 사용이 상기 제1 변수의 값을 제어하고, 그리고 서브 블록 기반 시간적 모션 벡터 예측의 사용이 상기 제2 변수의 값을 제어하는, 비디오 처리 방법.
23. 해결 수단 22에 있어서, 상기 제1 변수는 허용된 어파인 머지 후보들의 수를 표현하는, 비디오 처리 방법.
아래 해결 수단들은 이전 섹션(예를 들어, 항목 13)에서 논의된 기술들의 예시적 실시예들을 보여준다.
24. 비디오 처리 방법으로, 비디오가 4:2:2 비디오 또는 4:4:4 비디오인 관계로 변환에 적용가능한 처리 규칙을 준수함으로써, 상기 비디오의 비디오 영역과 상기 비디오 영역의 코딩된 표현 간의 상기 변환을 실시하는 단계를 포함하며, 이때 상기 처리 규칙은 (a) 적응적 루프 필터링 동작의 가상 경계와 코딩 트리 블록의 하단 경계 사이의 픽셀 라인들의 수, 또는 (b) 상기 적응적 루프 필터링 동작의 상기 가상 경계와 상기 코딩 트리 블록의 상기 하단 경계 사이의 행에 적용되는 필터의 필터 강도, 또는 (c) 행에 있는 비디오 샘플들을 패딩하기 위해 사용되는 패딩 방법 중 하나 또는 그 이상을 위해 크로마와 루마가 정렬된다고 정의하는, 비디오 처리 방법.
25. 해결 수단 24에 있어서, 상기 처리 규칙은 크로마 및 루마 성분들 사이의 가상 경계들의 수직 정렬을 더 정의하는, 비디오 처리 방법.
26. 해결 수단 24에 있어서, 상기 처리 규칙은 크로마의 K개 라인들 및/또는 H개 열들을 패딩하는 데에 사용되는 패딩 방법이 루마에 대해 사용되는 패딩 방법과 정렬되는, 비디오 처리 방법.
27. 상기 해결 수단들 중 어느 것에 있어서, 상기 비디오 영역은 비디오 코딩 유닛을 포함하는, 비디오 처리 방법.
28. 상기 해결 수단들 중 어느 것에 있어서, 상기 비디오 영역은 비디오 픽처를 포함하는, 비디오 처리 방법.
29. 해결 수단 1 내지 해결 수단 28 중 어느 것에 있어서, 상기 변환은 상기 비디오를 상기 코딩된 표현으로 인코딩하는 단계를 포함하는, 비디오 처리 방법.
30. 해결 수단 1 내지 해결 수단 28 중 어느 것에 있어서, 상기 변환은 상기 비디오의 픽셀 값들을 생성하기 위해 상기 코딩된 표현을 디코딩하는 단계를 포함하는, 비디오 처리 방법.
31. 해결 수단 1 내지 해결 수단 30 중 하나 또는 그 이상에서의 방법을 실시하도록 구성된 프로세서를 포함하는 비디오 디코딩 장치.
32. 해결 수단 1 내지 해결 수단 30 중 하나 또는 그 이상에서의 방법을 실시하도록 구성된 프로세서를 포함하는 비디오 인코딩 장치.
33. 컴퓨터 코드를 저장하는 컴퓨터 프로그램 제품으로, 상기 코드는, 프로세서에 의해 실행 시, 상기 프로세서로 하여금 해결 수단 1 내지 30 중 어느 것에서의 방법을 실시하도록 하는, 컴퓨터 프로그램 제품.
34. 본 문서에 기술된, 방법, 장치 또는 시스템.
도 21은 비디오 처리의 예시적 방법(2100)을 위한 순서도이다. 동작(2102)은 비디오 유닛을 포함하는 비디오와 상기 비디오의 비트스트림 간의 변환을 실시하는 단계를 포함하며, 이때 상기 비트스트림은 포맷 규칙을 따르고, 상기 포맷 규칙이 명시하는 것은, 인 루프 필터링 동작이 타일 경계들을 가로질러 실시되는지 여부를 지시하는 제1 신택스 요소가 상기 비디오 유닛이 타일들로 분할되는지 여부 또는 어떻게 분할되는지에 대응하여 상기 비트스트림에 선택적으로 포함된다는 것이다.
방법(2100)을 위한 일부 실시예들에서, 상기 비디오 유닛은 픽처를 포함한다. 방법(2100)을 위한 일부 실시예들에서, 상기 제1 신택스 요소는 픽처 파라미터 세트에 있다. 방법(2100)을 위한 일부 실시예들에서, 상기 포맷 규칙이 명시하는 것은, 상기 비디오 유닛이 둘 이상의 타일들로 분할되는 것에 대응하여 상기 제1 신택스 요소가 상기 비트스트림에 포함된다는 것이다. 방법(2100)을 위한 일부 실시예들에서, 상기 포맷 규칙이 명시하는 것은, 상기 비디오 유닛이 오직 하나의 타일 만을 포함하는 것에 대응하여 상기 제1 신택스 요소가 상기 비트스트림에 포함되지 않는다는 것이다. 방법(2100)을 위한 일부 실시예들에서, 상기 포맷 규칙이 명시하는 것은, 상기 비트스트림이 픽처당 하나의 타일이 있는지 여부를 제약으로 지시하는 제2 신택스 요소에 대해 제로 값을 포함하는 것에 대응하여 상기 제1 신택스 요소가 상기 비트스트림에 포함된다는 것이다.
방법(2100)을 위한 일부 실시예들에서, 상기 포맷 규칙이 명시하는 것은, 픽처 당 하나의 타일이 있는지 여부를 제약으로 지시하는 제2 신택스 요소에 대해 상기 비트스트림이 1의 값을 포함하는 것에 대응하여 상기 제1 신택스 요소가 0과 같도록 요구되며 상기 비트스트림에 포함된다는 것이다. 방법(2100)을 위한 일부 실시예들에서, 상기 제2 신택스 요소는 one_tile_per_pic_constraint_flag이다. 방법(2100)을 위한 일부 실시예들에서, 상기 인 루프 필터링 동작은 디블로킹 필터 동작, 샘플 적응적 오프세트 동작, 또는 적응적 루프 필터 동작 중 적어도 하나를 포함한다. 방법(2100)을 위한 일부 실시예들에서, 상기 제1 신택스 요소는 loop_filter_across_tiles_enabled_flag이다. 방법(2100)을 위한 일부 실시예들에서, 상기 변환을 실시하는 단계는 상기 비디오를 상기 비트스트림으로 인코딩하는 단계를 포함한다.
방법(2100)을 위한 일부 실시예들에서, 상기 변환을 실시하는 단계는 상기 비디오로부터 상기 비트스트림을 생성하는 단계를 포함하며, 상기 방법은 상기 비트스트림을 비일시적 컴퓨터 판독가능 기록 매체에 저장하는 단계를 포함한다. 방법(2100)을 위한 일부 실시예들에서, 상기 변환을 실시하는 단계는 상기 비디오를 상기 비트스트림으로부터 디코딩하는 단계를 포함한다. 일부 실시예들에서, 비디오 디코딩 장치는 방법(2100) 및 관련 실시예들의 동작들을 실행하도록 구성된 프로세서를 포함한다. 일부 실시예들에서, 비디오 인코딩 장치는 방법(2100) 및 관련 실시예들의 동작들을 실행하도록 구성된 프로세서를 포함한다.
일부 실시예들에서, 컴퓨터 명령들을 그 안에 저장하는 컴퓨터 프로그램 제품에 있어서, 상기 명령들은, 프로세서에 의해 실행될 때, 상기 프로세서로 하여금 방법(2100) 및 관련 실시예들의 동작들을 실행하도록 한다. 일부 실시예들에서, 비디오 처리 장치로 실시되는 방법에 의해 생성된 비트스트림을 저장하기 위한 비일시적 컴퓨터 판독 가능 기록 매체에 있어서, 상기 방법은 비디오 유닛을 포함하는 상기 비디오로부터 상기 비트스트림을 생성하는 단계를 포함하고, 이때 상기 비트스트림은 포맷 규칙을 따르며, 상기 포맷 규칙이 명시하는 것은, 인 루프 필터링 동작이 타일 경계들을 가로질러 실시되는지 여부를 지시하는 제1 신택스 요소가 상기 비디오 유닛이 타일들로 분할되는지 여부 또는 어떻게 분할되는지에 대응하여 상기 비트스트림에 선택적으로 포함된다는 것이다. 일부 실시예들에서, 명령들을 저장하는 비일시적 컴퓨터 판독가능 저장 매체에 있어서, 상기 명령들은 프로세서로 하여금 방법(2100) 및 관련 실시예들의 동작들을 실시하도록 한다. 일부 실시예들에서, 비트스트림 생성의 방법은 방법(2100) 및 상기 관련 실시예들의 동작들에 따라 비디오의 비트스트림을 생성하는 단계 및 컴퓨터 판독가능 프로그램 매체에 상기 비트스트림을 저장하는 단계를 포함한다.
도 22는 비디오 처리의 예시적 방법(2200)을 위한 순서도이다. 동작(2202)은 비디오의 비디오 유닛과 상기 비디오의 비트스트림 간의 변환을 실시하는 단계를 포함하고, 이때 상기 비트스트림은 포맷 규칙을 따르고, 그리고 상기 포맷 규칙이 명시하는 것은, 인 루프 필터링 동작이 슬라이스 경계들을 가로질러 실시되는지 여부를 지시하는 신택스 요소가 상기 비디오 유닛이 슬라이스들로 분할되는지 여부 또는 어떻게 분할되는지에 대응하여 상기 비트스트림에 선택적으로 포함된다는 것이다.
방법(2200)의 일부 실시예들에서, 상기 비디오 유닛을 픽처를 포함한다. 방법(2200)의 일부 실시예들에서, 상기 비디오 유닛은 서브픽처를 포함한다. 방법(2200)의 일부 실시예들에서, 상기 신택스 요소는 픽처 파라미터 세트에 있다.
방법(2200)의 일부 실시예들에서, 상기 규칙이 명시하는 것은, 상기 비디오 유닛이 오직 하나의 슬라이스로 분할되는 것에 대응하여 상기 신택스 요소가 상기 비트스트림에 포함되지 않는다는 것이다. 방법(2200)의 일부 실시예들에서, 상기 규칙이 명시하는 것은, 상기 비디오 유닛의 각 서브픽처가 오직 하나의 슬라이스로 분할되는 것에 대응하여 상기 신택스 요소가 상기 비트스트림에 포함되지 않는다는 것이다. 방법(2200)의 일부 실시예들에서, 상기 규칙이 명시하는 것은, 상기 비디오 유닛의 각 서브픽처가 오직 하나의 슬라이스로 분할되는 것에 대응하여 상기 신택스 요소가 상기 비트스트림에 포함된다는 것이다.
방법(2200)의 일부 실시예들에서, 상기 규칙이 명시하는 것은, 제1 플래그가 1과 같다는 것, 즉 각 서브픽처가 오직 하나의 직사각형 슬라이스로 구성된다는 것을 명시함에 대응하여 상기 신택스 요소가 상기 비트스트림에 포함된다는 것이다. 방법(2200)의 일부 실시예들에서, 상기 제1 플래그는 single_slice_per_subpic_flag이다. 방법(2200)의 일부 실시예들에서, 상기 제1 플래그는 픽처 파라미터 세트에 있다.
방법(2200)의 일부 실시예들에서, 상기 규칙이 명시하는 것은, 상기 비디오 유닛이 비직사각형 모양으로 분할되는 픽처를 포함하는 것에 대응하여 상기 신택스 요소가 상기 비트스트림에 포함된다는 것이다. 방법(2200)의 일부 실시예들에서, 상기 규칙이 명시하는 것은, 제2 플래그가 0과 같다는 것, 즉 래스터 스캔 슬라이스 모드가 각 픽처에 대해 사용 중이라는 것을 명시함에 대응하여 상기 신택스 요소가 상기 비트스트림에 포함된다는 것이다. 방법(2200)의 일부 실시예들에서, 상기 래스터 스캔 슬라이스 모드는 비-직사각형 슬라이스 모드(non-rectangular slice mode)이다. 방법(2200)의 일부 실시예들에서, 상기 제2 플래그는 rect_slice_flag이다. 방법(2200)의 일부 실시예들에서, 상기 제2 플래그는 픽처 파라미터 세트에 있다. 방법(2200)의 일부 실시예들에서, 상기 규칙이 명시하는 것은, 상기 비디오 유닛이 직사각형 모양으로 분할되는 픽처를 포함하는 것에 대응하여 상기 신택스 요소가 상기 비트스트림에 포함되고 상기 비디오 유닛의 슬라이스들의 수가 1과 같다는 것이다.
방법(2200)의 일부 실시예들에서, 상기 규칙이 명시하는 것은, 픽처 당 하나의 슬라이스가 있는지 여부를 제약으로 지시하는 신택스 요소에 대해 상기 비트스트림이 0의 값을 포함하는 것에 대응하여 상기 신택스 요소가 상기 비트스트림에 포함된다는 것이다. 방법(2200)의 일부 실시예들에서, 상기 규칙이 명시하는 것은, 픽처 당 하나의 슬라이스가 있는지 여부를 제약으로 지시하는 신택스 요소에 대해 상기 비트스트림이 1의 값을 포함하는 것에 대응하여 상기 신택스 요소가 0과 같도록 요구되며 상기 비트스트림에 포함된다는 것이다. 방법(2200)의 일부 실시예들에서, 상기 인 루프 필터링 동작은 디블로킹 필터 동작, 샘플 적응적 오프세트 동작, 또는 적응적 루프 필터 동작 중 적어도 하나를 포함한다. 방법(2200)의 일부 실시예들에서, 상기 변환을 실시하는 단계는 상기 비디오를 상기 비트스트림으로 인코딩하는 단계를 포함한다. 방법(2200)의 일부 실시예들에서, 상기 변환을 실시하는 단계는 상기 비디오로부터 상기 비트스트림을 생성하는 단계를 포함하며, 상기 방법은 상기 비트스트림을 비일시적 컴퓨터 판독가능 기록 매체에 저장하는 단계를 더 포함한다.
방법(2200)의 일부 실시예들에서, 상기 변환을 실시하는 단계는 상기 비디오를 상기 비트스트림으로부터 디코딩하는 단계를 포함한다. 일부 실시예들에서, 비디오 디코딩 장치는 방법(2200) 및 관련 실시예들의 동작들을 실행하도록 구성된 프로세서를 포함한다. 일부 실시예들에서, 비디오 인코딩 장치는 방법(2200) 및 관련 실시예들의 동작들을 실행하도록 구성된 프로세서를 포함한다. 일부 실시예들에서, 컴퓨터 명령들을 그 안에 저장하는 컴퓨터 프로그램 제품에 있어서, 상기 명령들은, 프로세서에 의해 실행될 때, 상기 프로세서로 하여금 방법(2200) 및 관련 실시예들의 동작들을 실행하도록 한다. 일부 실시예들에서, 비디오 처리 장치로 실시되는 방법에 의해 생성된 비트스트림을 저장하기 위한 비일시적 컴퓨터 판독 가능 기록 매체에 있어서, 상기 방법은 상기 비디오의 비디오 유닛으로부터 상기 비트스트림을 생성하는 단계를 포함하고, 이때 상기 비트스트림은 포맷 규칙을 따르며, 상기 포맷 규칙이 명시하는 것은, 인 루프 필터링 동작이 슬라이스 경계들을 가로질러 실시되는지 여부를 지시하는 신택스 요소가 상기 비디오 유닛이 슬라이스들로 분할되는지 여부 또는 어떻게 분할되는지에 대응하여 상기 비트스트림에 선택적으로 포함된다는 것이다.
일부 실시예들에서, 명령들을 저장하는 비일시적 컴퓨터 판독가능 저장 매체에 있어서, 상기 명령들은 프로세서로 하여금 방법(2200) 및 관련 실시예들의 동작들을 실시하도록 한다. 일부 실시예들에서, 비트스트림 생성의 방법은 방법(2200) 및 상기 관련 실시예들의 동작들에 따라 비디오의 비트스트림을 생성하는 단계 및 컴퓨터 판독가능 프로그램 매체에 상기 비트스트림을 저장하는 단계를 포함한다.
도 23은 비디오 처리의 예시적 방법(2300)을 위한 순서도이다. 동작(2302)은 비디오의 비디오 영역과 상기 비디오의 비트스트림 간의 변환을 실시하는 단계를 포함하며, 이때 상기 비트스트림은 포맷 규칙을 따르고, 상기 포맷 규칙은 상기 변환에의 툴의 적용 가능성에 관한 정보가 비디오 슬라이스 레벨 및/또는 비디오 픽처 레벨에서 상기 비트스트림에서 지시된다고 명시하며, 그리고 상기 툴은 루마 샘플들을 특정 값들에 매핑시키고 스캐일링 동작을 크로마 샘플들의 값들에 선택적으로 적용한다.
방법(2300)의 일부 실시예들에서, 상기 포맷 규칙이 명시하는 것은, 상기 툴의 적용가능성에 관한 상기 정보가 상기 툴을 활성화할 것인지 여부를 지시하는 제1 지시를 포함한다는 것이다. 방법(2300)의 일부 실시예들에서, 상기 포맷 규칙이 명시하는 것은, 상기 툴의 적용가능성에 관한 상기 정보가 파라미터들의 제2 지시를 포함한다는 것이며, 상기 파라미터들은 상기 비디오 픽처 레벨에서 적응 파라미터 세트(APS)의 식별자 및/또는 크로마 잔차 스케일이 비디오 픽처 레벨에서 활성화되는지 여부를 지시하는 값이다. 방법(2300)의 일부 실시예들에서, 상기 포맷 규칙이 명시하는 것은, 상기 툴의 적용가능성에 관한 상기 정보가 상기 비디오 슬라이스 레벨 및 상기 비디오 픽처 레벨 모두에서 지시된다는 것이다.
방법(2300)의 일부 실시예들에서, 상기 포맷 규칙이 명시하는 것은, 상기 툴의 적용가능성에 관한 상기 정보가 상기 비디오 슬라이스 레벨 및 상기 비디오 픽처 레벨 모두에서 지시되고, 상기 비디오 픽처 레벨에서 포함될 때의 상기 툴의 적용가능성에 관한 이전 정보가 상기 툴의 적용가능성에 관한 상기 정보가 상기 비디오 픽처 레벨에서 포함될 때의 상기 툴의 적용가능성에 관한 상기 정보로 재작성된다는 것이다. 방법(2300)의 일부 실시예들에서, 상기 포맷 규칙이 명시하는 것은, 상기 툴의 적용가능성에 관한 상기 정보가 상기 비디오 슬라이스 레벨 또는 상기 비디오 픽처 레벨에서 지시된다는 것이다. 방법(2300)의 일부 실시예들에서, 상기 포맷 규칙이 명시하는 것은, 상기 툴의 적용가능성에 관한 상기 정보가 상기 비디오 영역의 현재 슬라이스에 대해 어느 적응 파라미터 세트(APS)가 사용되는지를 지시하기 위해 상기 비디오 슬라이스 레벨에서 지시된다는 것이다. 방법(2300)의 일부 실시예들에서, 상기 포맷 규칙이 명시하는 것은, 상기 비트스트림이 신택스 요소를 시퀀스 파라미터 세트(SPS) 또는 픽처 파라미터 세트(PPS)에서 포함하여 상기 툴의 적용가능성에 관한 상기 정보가 상기 비디오 슬라이스 레벨 또는 상기 비디오 픽처 레벨 중 어디에서 지시되는지를 지시한다는 것이다.
방법(2300)의 일부 실시예들에서, 상기 신택스 요소는 오직 상기 제1 지시만을 제어한다. 방법(2300)의 일부 실시예들에서, 상기 신택스 요소는 오직 상기 제2 지시만을 제어한다. 방법(2300)의 일부 실시예들에서, 상기 신택스 요소는 상기 제1 지시 및 상기 제2 지시 모두를 제어한다. 방법(2300)의 일부 실시예들에서, 상기 포맷 규칙이 명시하는 것은, 상기 툴의 적용가능성에 관한 상기 정보가 상기 정보가 픽처 헤더에 존재하지 않는 것에 대응하여 디폴트 값으로 상기 픽처 헤더 내 신택스 요소에서 지시된다는 것이다. 방법(2300)의 일부 실시예들에서, 상기 포맷 규칙이 명시하는 것은, 상기 툴의 적용가능성에 관한 상기 정보가 상기 정보가 슬라이스 헤더에 존재하지 않는 것에 대응하여 디폴트 값으로 상기 슬라이스 헤더 내 신택스 요소에서 지시된다는 것이다. 방법(2300)의 일부 실시예들에서, 상기 포맷 규칙이 명시하는 것은, 상기 툴의 적용가능성에 관한 상기 정보가 슬라이스 헤더 내 신택스 요소에서 지시된다는 것이며, 상기 포맷 규칙이 명시하는 것은, 상기 신택스 요소가 픽처 헤더에서 상기 툴의 적용가능성에 관한 상기 정보를 지시하는 상응하는 신택스 요소의 값을 가진다는 것이고, 그리고 상기 포맷 규칙이 명시하는 것은, 상기 정보가 상기 슬라이스 헤더에 존재하지 않음에 대응하여 상기 신택스 요소가 상기 상응하는 신택스 요소의 상기 값을 가진다는 것이다.
방법(2300)의 일부 실시예들에서, 상기 포맷 규칙이 명시하는 것은, APS에 의해 활성화된 툴의 복수의 적응 파라미터 세트(APS) 식별자들이 상기 복수의 APS 식별자들을 참조하는 픽처 헤더와 연관된 슬라이스들에 대응하여 상기 픽처 헤더에서 지시된다는 것이다. 방법(2300)의 일부 실시예들에서, 상기 복수의 APS 식별자들의 리스트의 길이는 픽처에서 상기 슬라이스들의 수에 의존한다. 방법(2300)의 일부 실시예들에서, 상기 포맷 규칙은 신택스 요소가 슬라이스 헤더에 포함된다고 명시하며, 상기 신택스 요소는 상기 복수의 APS 중 APS에 의해 활성화된 어떤 툴이 현재 슬라이스를 위해 사용되어야 하는지 지시한다. 방법(2300)의 일부 실시예들에서, 상기 툴은, 활성화 시, 상기 비디오 영역이 루마 성분으로부터 온 경우 상기 비디오 영역에 대한 재성형된(reshaped) 도메인 및 원본 도메인의 샘플들 간 스위칭을 실시하거나, 상기 툴은, 활성화 시, 상기 비디오 영역이 크로마 성분으로부터 온 경우 상기 비디오 영역의 크로마 잔차의 스케일링을 실시한다.
도 24는 비디오 처리의 예시적 방법(2400)을 위한 순서도이다. 동작(2402)은 비디오의 비디오 영역과 상기 비디오의 비트스트림 간의 변환을 실시하는 단계를 포함하며, 이때 상기 변환은 크기 규칙을 준수하고, 그리고 상기 크기 규칙은 변환 스킵(TS) 코딩 방식 또는 블록 기반 델타 펄스 코드 변조(BDPCM) 코딩 방식을 사용하여 코딩된 상기 비디오 영역의 최대 크기 또는 상기 비디오 영역의 코딩 특성에 따른 상기 비디오 영역에 대한 변환 블록의 최대 크기를 특정한다.
방법(2400)의 일부 실시예들에서, 상기 크기 규칙은 상기 비디오 영역의 상기 최대 크기가 코딩 트리 블록(CTB) 크기 보다 작거나 같다고 명시한다. 방법(2400)의 일부 실시예들에서, 상기 크기 규칙은 루마 블록에 대해 상기 TS 코딩 또는 디코딩 방식 및/또는 상기 BDPCM 코딩 또는 디코딩 방식에 대한 최대 허용 폭 및 높이가 상기 CTB 크기 보다 작거나 같다고 명시한다. 방법(2400)의 일부 실시예들에서, 상기 크기 규칙은 크로마 블록에 대해 상기 TS 코딩 또는 디코딩 방식 및/또는 상기 BDPCM 코딩 또는 디코딩 방식에 대한 최대 허용 폭 및 높이가 상기 CTB 크기를 subWidthC로 나눈 것 및/또는 상기 CTB 크기를 subHeightC로 나눈 것 보다 작거나 같다고 명시하며, 이때 상기 subWidthC 및 subHeightC는 상기 비디오의 크로마 포맷에 의존한다. 방법(2400)의 일부 실시예들에서, 상기 크기 규칙은 크로마 블록에 대해 상기 TS 코딩 또는 디코딩 방식 및/또는 상기 BDPCM 코딩 또는 디코딩 방식에 대한 최대 허용 폭이 상기 CTB 크기를 subWidthC로 나눈 것 및/또는 상기 CTB 크기를 subHeightC로 나눈 것 보다 작거나 같다고 명시한다.
방법(2400)의 일부 실시예들에서, 상기 크기 규칙은 크로마 블록에 대해 상기 TS 코딩 또는 디코딩 방식 및/또는 상기 BDPCM 코딩 또는 디코딩 방식에 대한 최대 허용 높이가 상기 CTB 크기를 subWidthC로 나눈 것 및/또는 상기 CTB 크기를 subHeightC로 나눈 것 보다 작거나 같다고 명시한다. 방법(2400)의 일부 실시예들에서, 제1 값은 log2_transform_skip_max_size_minus2 플러스 2와 같으며, 이때 상기 제1 값은 CtbLog2SizeY에 대한 제2 값 보다 작거나 같고, log2_transform_skip_max_size_minus2 플러스 2는 상기 TS 코딩 방식에 대해 또는 상기 TS 디코딩 방식에 대해 사용된 최대 블록 크기의 log2와 같다.
방법(2400)의 일부 실시예들에서, 제1 값은 CtbLog2SizeY 마이너스 2에 대한 제2 값과 같은 log2_transform_skip_max_size_minus2에 대한 최대 값을 기술하며, 이때 log2_transform_skip_max_size_minus2 플러스 2는 상기 TS 코딩 방식에 대해 또는 상기 TS 디코딩 방식에 대해 사용된 최대 블록 크기의 log2와 같다. 방법(2400)의 일부 실시예들에서, 상기 크기 규칙은 변환 스킵 블록인 상기 비디오 영역의 상기 최대 크기가 (CtbSizeY, 1 << (log2_transform_skip_max_size_minus2 + 2))의 최소값임을 명시하며, 이때 <<는 좌측 시프트 연산을 지시하고, CtbSizeY는 상기 CTB 크기이고, log2_transform_skip_max_size_minus2 플러스 2는 상기 TS 코딩 방식에 대해 또는 상기 TS 디코딩 방식에 대해 사용된 최대 블록 크기의 log2와 같다. 방법(2400)의 일부 실시예들에서, 상기 크기 규칙은 변환 스킵 블록인 상기 비디오 영역의 상기 최대 크기가 1 << Min(log2_transform_skip_max_size_minus2 + 2 , CtbLog2SizeY)임을 명시하며, 이때 <<는 좌측 시프트 연산을 지시하고, CtbSizeY는 상기 CTB 크기이며, log2_transform_skip_max_size_minus2 플러스 2는 상기 TS 코딩 방식에 대해 또는 상기 TS 디코딩 방식에 대해 사용된 최대 블록 크기의 log2와 같다. 방법(2400)의 일부 실시예들에서, 상기 크기 규칙은 크로마 블록에 대한 상기 TS 코딩 또는 디코딩 방식 및/또는 상기 BDPCM 코딩 또는 디코딩 방식에 대한 상기 최대 크기가 상기 크로마 블록에 대한 최대 변환 블록 크기 보다 작거나 같다고 명시한다.
방법(2400)의 일부 실시예들에서, 상기 크로마 블록에 대한 상기 TS 코딩 또는 디코딩 방식 및/또는 상기 BDPCM 코딩 또는 디코딩 방식에 대해 최대 허용된 폭 및 높이는 루마 블록에 대한 최대 변환 블록 크기를 SubWidthC로 나눈 것 보다 작거나 같다. 방법(2400)의 일부 실시예들에서, 상기 크로마 블록에 대한 상기 TS 코딩 또는 디코딩 방식 및/또는 상기 BDPCM 코딩 또는 디코딩 방식에 대해 최대 허용 폭은 루마 블록에 대한 최대 변환 블록 크기를 SubWidthC로 나눈 것 보다 작거나 같다. 방법(2400)의 일부 실시예들에서, 상기 크로마 블록에 대한 상기 TS 코딩 또는 디코딩 방식 및/또는 상기 BDPCM 코딩 또는 디코딩 방식에 대해 최대 허용 높이는 루마 블록에 대한 최대 변환 블록 크기를 subHeightC로 나눈 것 보다 작거나 같다. 방법(2400)의 일부 실시예들에서, 상기 크기 규칙 변환 스킵 블록인 상기 비디오 영역에 대한 상기 최대 크기가 이진 신택스 요소로 상기 비트스트림에서 지시된다고 명시한다. 방법(2400)의 일부 실시예들에서, 상기 크기 규칙은 변환 스킵 블록인 상기 비디오 영역에 대한 상기 최대 크기 및/또는 최대 허용 변환 블록 크기가 최소 코딩 블록 크기 보다 크거나 같다고 명시한다.
도 25는 비디오 처리의 예시적 방법(2500)을 위한 순서도이다. 동작(2502)은 비디오의 비디오 영역과 상기 비디오의 비트스트림 간의 변환을 실시하는 단계를 포함하며, 이때 상기 비트스트림은 상기 변환 동안 사용된 최소 허용 코딩 블록 크기가 최대 허용 변환 블록 크기가 상기 비트스트림에 포함되는지 여부 및/또는 어떻게 포함되는지를 제어한다고 명시하는 포맷 규칙을 따른다.
방법(2500)의 일부 실시예들에서, 상기 포맷 규칙은 상기 최소 허용 변환 블록 크기가 상기 최소 코딩 블록 크기 보다 크거나 같다고 명시한다. 방법(2500)의 일부 실시예들에서, 64와 같은 상기 최소 허용 코딩 블록 크기에 대응하여 상기 비트스트림에 포함된 sps_max_luma_transform_size_64_flag의 값은 1과 같다. 방법(2500)의 일부 실시예들에서, 64와 같은 상기 최소 허용 코딩 블록 크기에 대응하여, sps_max_luma_transform_size_64_flag의 값은 상기 비트스트림에 포함되지 않으며 1과 같다고 추론된다.
도 26은 비디오 처리의 예시적 방법(2600)을 위한 순서도이다. 동작(2602)은 비디오의 비디오 영역과 상기 비디오의 비트스트림 간의 변환을 실시하는 단계를 포함하며, 이때, 상기 비트스트림은 상기 변환 동안 사용된 최소 허용 코딩 블록 크기가 변환 스킵(TS) 방식 또는 블록 기반 델타 펄스 코드 변조(BDPCM) 방식을 사용하여 코딩 또는 디코딩하기 위한 비디오 영역의 최대 크기의 지시가 상기 비트스트림에 포함되는지 여부 및/또는 어떻게 포함되는지를 제어한다고 명시하는 포맷 규칙을 따른다.
방법(2600)의 일부 실시예들에서, 상기 포맷 규칙은 상기 비디오 영역의 상기 최대 크기가 상기 최소 허용 코딩 블록 크기 보다 크거나 같다고 명시한다. 방법(2600)의 일부 실시예들에서, 상기 포맷 규칙은 상기 비디오 영역의 상기 최대 크기가 W 보다 작거나 같다고 명시하며, 이때 W는 정수이다. 방법(2600)의 일부 실시예들에서, W는 32이다. 방법(2600)의 일부 실시예들에서, 상기 포맷 규칙은 상기 비디오 영역의 상기 최대 크기가 상기 최소 허용 코딩 블록 크기 보다 크거나 같다고 명시하며, 상기 포맷 규칙은 상기 비디오 영역의 상기 최대 크기가 W 보다 작거나 같다고 명시한다. 방법(2600)의 일부 실시예들에서, 상기 포맷 규칙은, 상기 TS 방식 및/또는 상기 BDPCM 방식이 활성화되는 경우, 상기 최소 허용 코딩 블록 크기가 X 보다 작거나 같다고 명시한다. 방법(2600)의 일부 실시예들에서, 상기 포맷 규칙은, 상기 TS 방식 및/또는 상기 BDPCM 방식이 활성화되는 경우, 상기 비디오 영역의 상기 최대 크기가 상기 최소 허용 코딩 블록 크기 보다 크거나 같다고 명시한다.
방법(2600)의 일부 실시예들에서, 상기 포맷 규칙은, 상기 TS 방식이 활성화되는 경우, 상기 최대 크기의 log2가 최소 루마 코딩 블록 크기의 log2 보다 크거나 같다고 명시한다. 방법(2600)의 일부 실시예들에서, 상기 포맷 규칙은 상기 비디오 영역의 상기 최대 크기가 상기 최대 크기 또는 상기 최소 허용 코딩 블록 크기의 최대 값이라고 명시한다. 방법(2600)의 일부 실시예들에서, 상기 포맷 규칙은 상기 비디오 영역의 상기 최대 크기가 제1 값 및 제2 값 중 최소 값이며, 상기 제1 값은 정수 W, 그리고 상기 제2 값은 상기 최대 크기 또는 상기 최소 허용 코딩 블록 크기의 최대 값이라고 명시한다. 방법(2600)의 일부 실시예들에서, 상기 포맷 규칙은 상기 비디오 영역의 최대 크기가, 상기 TS 방식 및/또는 상기 BDPCM 방식이 활성화되는 경우, 상기 최대 크기 또는 상기 최소 허용 코딩 블록 크기의 최대 값이라고 명시한다. 방법(2600)의 일부 실시예들에서, 상기 포맷 규칙은 상기 비디오 영역의 상기 최대 크기가, 상기 TS 방식 및/또는 상기 BDPCM 방식이 활성화되는 경우, 제1 값 및 제2 값의 최소 값이며, 상기 제1 값은 정수 W, 그리고 상기 제2 값은 상기 최대 크기 또는 상기 최소 허용 코딩 블록 크기의 최대 값이라고 명시한다.
방법(2600)의 일부 실시예들에서, 상기 포맷 규칙은 상기 비디오 영역의 상기 최대 크기가 상기 최소 허용 코딩 블록 크기에 기반하여 상기 비트스트림에 포함됨을 명시한다. 방법(2600)의 일부 실시예들에서, 상기 포맷 규칙은 상기 비디오 영역의 상기 최대 크기는 상기 비디오 영역의 상기 최대 크기의 log2와 상기 최소 허용 코딩 블록 크기의 log2 사이의 차이를 상기 비트스트림에 포함시킴으로써 지시된다고 명시한다. 방법(2600)의 일부 실시예들에서, 상기 포맷 규칙은 다음을 명시한다. MaxTsSize = 1<<(MinCbLog2SizeY+ log2_diff_max_trasform_skip_min_coding_block). <<는 좌측 시프트 연산을 지시한다. 이때, MaxTsSize는 상기 비디오 영역의 상기 최대 크기이고, MinCbLog2SizeY는 최소 코딩 유닛 크기의 log2, 그리고 log2_diff_max_trasform_skip_min_coding_block은 상기 비트스트림에서 상기 비디오 영역의 상기 최대 크기와 상기 최소 허용 코딩 블록 크기 사이의 차이의 log2이다.
방법(2600)의 일부 실시예들에서, 상기 포맷 규칙은 다음을 명시한다.
MaxTsSize=min(W,1<<(MinCbLog2SizeY+log2_diff_max_trasform_skip_min_coding_block)), 여기서 <<는 좌측 시프트 연산을 지시하고, W는 정수이며, MaxTsSize는 상기 비디오 영역의 상기 최대 크기이고, MinCbLog2SizeY는 최소 코딩 유닛 크기의 log2이며, 그리고 log2_diff_max_trasform_skip_min_coding_block은 상기 비트스트림에서 상기 비디오 영역의 상기 최대 크기와 상기 최소 허용 코딩 블록 크기 사이의 차이의 log2이다.
도 27은 비디오 처리의 예시적 방법(2700)을 위한 순서도이다. 동작(2702)은 비디오의 비디오 유닛과 상기 비디오의 비트스트림 간의 변환을 포맷 규칙에 따라 실시하는 단계를 포함하며, 이때 상기 비트스트림은, 상기 변환 동안 사용되는 최소 허용 코딩 블록 크기가 변환 스킵(TS) 방식 또는 블록 기반 델타 펄스 코드 변조(BDPCM) 방식이 활성화되는지 비활성화되는지 여부 및 어떻게 활성화 또는 비활성화되는지를 제어한다고 명시하는 포맷 규칙을 따른다.
방법(2700)의 일부 실시예들에서, 상기 포맷 규칙은, 상기 최소 허용 코딩 블록 크기가 64와 같음에 대응하여, 상기 필드가 제로(0)로 추론되며 상기 비트스트림에 포함되지 않는다고 명시한다. 방법(2700)의 일부 실시예들에서, 상기 포맷 규칙은, 상기 최소 허용 코딩 블록 크기가 상기 TS 코딩 방식 및/또는 상기 BDPCM 코딩 방식에 대한 최소 허용 크기 보다 큼에 대응하여, 상기 필드가 제로(0)로 추론되며 상기 비트스트림에 포함되지 않는다고 명시한다.
도 28은 비디오 처리의 예시적 방법(2800)을 위한 순서도이다. 동작(2802)은 비디오의 비디오 유닛과 상기 비디오의 비트스트림 간의 변환을 포맷 규칙에 따라 실시하는 단계를 포함하며, 이때 상기 비트스트림은, 상기 변환 동안 사용되는 최소 허용 코딩 블록 크기가 상기 변환에서 코딩 툴의 적용가능성에 관한 정보를 전달하는 필드가 상기 비트스트림에서 비디오 영역 레벨에 포함되는지 여부 및/또는 어떻게 포함되는지를 제어한다고 명시하는 포맷 규칙을 따른다.
방법(2800)의 일부 실시예들에서, 상기 비디오 영역 레벨은 시퀀스 파라미터 세트 또는 픽처 파라미터 세트 또는 픽처 헤더 또는 슬라이스 헤더에 해당한다. 방법(2800)의 일부 실시예들에서, 상기 포맷 규칙은, 상기 최소 허용 코딩 블록 크기가 정수 T 보다 큼에 대응하여, 상기 코딩 툴에 대한 상기 필드가 사용되지 않는다고 추론되며 상기 비트스트림에 포함되지 않는다고 명시한다. 방법(2800)의 일부 실시예들에서, 상기 포맷 규칙은 상기 코딩 툴에 대한 상기 필드가, 상기 최소 허용 코딩 블록 크기가 정수 T 보다 큼에 대응하여, 상기 코딩 툴이 사용되지 않고 상기 비트스트림에 포함된다고 지시한다고 명시한다. 방법(2800)의 일부 실시예들에서, 상기 코딩 툴은 인터 인트라 결합 예측(CIIP)을 포함한다. 방법(2800)의 일부 실시예들에서, 상기 코딩 툴은 다중 변환 선택(MTS) 코딩 툴을 포함한다. 방법(2800)의 일부 실시예들에서, 상기 코딩 툴은 세그먼트 블록 변환(SBT) 코딩 툴을 포함한다. 방법(2800)의 일부 실시예들에서, 상기 코딩 툴은 대칭 모션 벡터 차분(SMVD) 코딩 툴을 포함한다. 방법(2800)의 일부 실시예들에서, 상기 코딩 툴은 양방향 광학 흐름(BDOF) 코딩 툴을 포함한다. 방법(2800)의 일부 실시예들에서, 상기 코딩 툴은 어파인 예측 코딩 툴을 포함한다.
방법(2800)의 일부 실시예들에서, 상기 코딩 툴은 광학 흐름을 이용한 예측 조정(PROF) 코딩 툴을 포함한다. 방법(2800)의 일부 실시예들에서, 상기 코딩 툴은 디코더측 모션 벡터 조정(DMVR) 코딩 툴을 포함한다. 방법(2800)의 일부 실시예들에서, 상기 코딩 툴은 CU 레벨 가중치 이용 양 예측(BCW) 코딩 툴을 포함한다. 방법(2800)의 일부 실시예들에서, 상기 코딩 툴은 모션 벡터 차이에 의한 병합(MMVD) 코딩 툴을 포함한다. 방법(2800)의 일부 실시예들에서, 상기 코딩 툴은 기하학적 분할 모드(GPM) 코딩 툴을 포함한다. 방법(2800)의 일부 실시예들에서, 상기 코딩 툴은 인트라 블록 카피(IBC) 코딩 툴을 포함한다. 방법(2800)의 일부 실시예들에서, 상기 코딩 툴은 팔레트 코딩 툴을 포함한다. 방법(2800)의 일부 실시예들에서, 상기 코딩 툴은 적응형 컬러 변환(ACT) 코딩 툴을 포함한다. 방법(2800)의 일부 실시예들에서, 상기 코딩 툴은 조인트 Cb-Cr 잔차 코딩(JCCR) 코딩 툴을 포함한다. 방법(2800)의 일부 실시예들에서, 상기 코딩 툴은 크로스 컴포넌트 선형 모델 예측(CCLM) 코딩 툴을 포함한다. 방법(2800)의 일부 실시예들에서, 상기 코딩 툴은 다중 참조 라인(MRL) 코딩 툴을 포함한다. 방법(2800)의 일부 실시예들에서, 상기 코딩 툴은 행렬 기반 인트라 예측(MIP) 코딩 툴을 포함한다. 방법(2800)의 일부 실시예들에서, 상기 코딩 툴은 인트라 서브파티션 예측(ISP) 코딩 툴을 포함한다.
도 29는 비디오 처리의 예시적 방법(2900)을 위한 흐름도이다. 동작(2902)은, 비디오의 비디오 영역과 상기 비디오의 비트스트림 간의 변환을 위해, 상기 비디오 영역에 대해 이중 트리 코딩 방식이 활성화되었기 때문에 상기 비디오의 루마 성분 및 크로마 성분에 대해 사용되는 분할 방식들이 상이한 최소 허용 블록 크기들을 가지고 있음을 판단하는 단계를 포함한다. 동작(2904)은 상기 판단을 기반으로 상기 변환을 실시하는 단계를 포함한다.
방법(2900)의 일부 실시예들에서, 상기 분할 방식들은 이진 트리 분할을 포함한다. 방법(2900)의 일부 실시예들에서, 상기 루마 성분을 위한 상기 이진 트리 분할에 대한 제1 최소 허용 블록 크기는 MinBtSizeY = 1 << MinBtLog2SizeY이며, 이때 상기 크로마 성분을 위한 상기 이진 트리 분할에 대한 제2 최소 허용 블록 크기는 MinBtSizeC = 1 << MinBtLog2SizeC이고, <<는 좌측 시프트 연산이며, MinBtSizeY는 상기 제1 최소 허용 블록 크기이고, MinBtLog2SizeY는 MinBtSizeY의 log2, MinBtSizeC는 상기 제1 최소 허용 블록 크기, MinBtLog2SizeC는 MinBtSizeC의 log2, 그리고 MinBtLog2SizeY는 MinBtLog2SizeC와 같지 않다. 방법(2900)의 일부 실시예들에서, MinBtLog2SizeY는 최소 코딩 유닛 크기에 기반하여 예측됨으로써 시그널링된다. 방법(2900)의 일부 실시예들에서, MinBtLog2SizeY와 상기 최소 코딩 유닛 크기의 log2 간의 차이는 상기 비트스트림에 포함된다. 방법(2900)의 일부 실시예들에서, MinBtLog2SizeC는 최소 코딩 유닛 크기에 기반하여 예측됨으로써 시그널링된다.
방법(2900)의 일부 실시예들에서, MinBtLog2SizeC와 상기 최소 코딩 유닛 크기의 log2 간의 차이는 상기 비트스트림에 포함된다. 방법(2900)의 일부 실시예들에서, 상기 분할 방식들은 삼진 트리 분할을 포함한다. 방법(2900)의 일부 실시예들에서, 최소 허용 코딩 블록 크기MinCbSizeY는 1 << MinCbLog2SizeY과 같으며, 이때 <<는 좌측 시프트 연산을 지시하고, MinCbLog2SizeY는 최소 코딩 유닛 크기의 log2이다. 방법(2900)의 일부 실시예들에서, 상기 루마 성분을 위한 상기 삼진 트리 분할에 대한 제1 최소 허용 블록 크기는 MinTtSizeY = 1 << MinTtLog2SizeY이며, 이때 상기 크로마 성분을 위한 상기 삼진 트리 분할에 대한 제2 최소 허용 블록 크기는 MinTtSizeC = 1 << MinTtLog2SizeC이고, <<는 좌측 시프트 연산을 지시하고, MinTtSizeY는 상기 제1 최소 허용 블록 크기이며, MinTtLog2SizeY는 MinTtSizeY의 log2이며, MinTtSizeC는 상기 제1 최소 허용 블록 크기이고, MinTtLog2SizeC는 MinTtSizeC의 log2이고, 그리고 MinTtLog2SizeY는 MinTtLog2SizeC와 같지 않다. 방법(2900)의 일부 실시예들에서, MinTtLog2SizeY는 최소 코딩 유닛 크기에 기반하여 예측됨으로써 시그널링된다. 방법(2900)의 일부 실시예들에서, MinTtLog2SizeY와 상기 최소 코딩 유닛 크기의 log2 간의 차이는 상기 비트스트림에 포함된다. 방법(2900)의 일부 실시예들에서, MinTtLog2SizeC는 최소 코딩 유닛 크기에 기반하여 예측됨으로써 시그널링된다. 방법(2900)의 일부 실시예들에서, MinTtLog2SizeC와 상기 최소 코딩 유닛 크기의 log2 간의 차이는 상기 비트스트림에 포함된다.
도 30은 비디오 처리의 예시적 방법(3000)을 위한 순서도이다. 동작(3002)은, 비디오의 비디오 영역과 상기 비디오의 비트스트림 간의 변환을 위해, 상기 비디오 영역에 대해 허용된 서브블록 기반 머지 후보들의 최대수를 규칙에 기반하여 결정하는 단계를 포함한다. 동작(3004)은 상기 결정에 기반하여 상기 변환을 실시하는 단계를 포함하며, 이때 상기 규칙은 상기 변환 동안 사용되는 서브블록 기반 머지 후보들의 상기 최대수가 제1 변수 및 제2 변수의 합으로 도출가능하다고 명시하고, 상기 제1 변수는, 어파인 예측이 비활성화됨에 대응하여 제로(0)와 같고, 그리고 상기 제2 변수는 서브블록 기반 시간적 모션 벡터 예측(sbTMVP)이 활성화되는지 여부에 기반한다.
방법(3000)의 일부 실시예들에서, 상기 제1 변수는 허용된 어파인 머지 후보들의 수를 표현한다. 방법(3000)의 일부 실시예들에서, 상기 제2 변수는 ( sps_sbtmvp_enabled_flag && ph_temporal_mvp_enable_flag)로 설정된다. 방법(3000)의 일부 실시예들에서, 상기 제1 변수는 K-S로 도출되며, 이때 S는 신택스 요소에 의해 시그널링되는 값이고, K는 고정된 수이다. 방법(3000)의 일부 실시예들에서, 서브블록 기반 머지 후보들의 최대수는 MaxNumSubblockMergeCand이고, 이때 상기 제1 변수는 five_minus_max_num_affine_merge_cand이며, MaxNumSubblockMergeCand = 5 - five_minus_max_num_affine_merge_cand + ( sps_sbtmvp_enabled_flag && ph_temporal_mvp_enable_flag )이다. 방법(3000)의 일부 실시예들에서, 서브블록 기반 머지 후보들의 최대수는 MaxNumSubblockMergeCand이고, 이때 상기 제1 변수는 four_minus_max_num_affine_merge_cand이고, 그리고 MaxNumSubblockMergeCand = 4 - four_minus_max_num_affine_merge_cand + ( sps_sbtmvp_enabled_flag && ph_temporal_mvp_enable_flag )이다. 방법(3000)의 일부 실시예들에서, 서브블록 기반 머지 후보들의 최대수는 MaxNumSubblockMergeCand이고, 그리고 MaxNumSubblockMergeCand = Min( W, MaxNumSubblockMergeCand )이며, 이때, W는 고정된 수이다. 방법(3000)의 일부 실시예들에서, 상기 제1 변수는 상기 비트스트림에서 조건적으로 시그널링된다. 방법(3000)의 일부 실시예들에서, 상기 제1 변수는 sps_affine_enabled_flag가 1과 같음에 대응하여 상기 비트스트림에서 시그널링된다. 방법(3000)의 일부 실시예들에서, five_minus_max_num_affine_merge_cand는 상기 제1 변수가 상기 비트스트림에 부재함에 대응하여 K로 추론된다.
도 31은 비디오 처리의 예시적 방법(3100)을 위한 순서도이다. 동작(3102)은 비디오가 4:2:2 비디오 또는 4:4:4 비디오인 관계로 변환에 적용가능한 처리 규칙을 준수함으로써, 상기 비디오의 비디오 영역과 상기 비디오 영역의 비트스트림 간의 상기 변환을 실시하는 단계를 포함하고, 이때 상기 처리 규칙은 (a) 적응적 루프 필터링(ALF) 동작의 가상 경계와 코딩 트리 블록(CTB)의 하단 경계 사이의 픽셀 라인들의 수, 또는 (b) 상기 ALF 동작의 상기 가상 경계와 상기 CTB의 상기 하단 경계 사이의 행에 적용되는 필터의 필터 강도, 또는 (c) 동일한 행에 있는 루마 및 크로마 샘플들을 패딩하기 위해 사용되는 패딩 방법 중 하나 또는 그 이상을 위해 크로마와 루마가 정렬된다고 정의한다.
방법(3100)의 일부 실시예들에서, 상기 처리 규칙은 수직 위치 및/또는 수평 위치가 상기 ALF 동작을 위한 크로마 및 루마 성분들 사이의 상기 가상 경계에 대해 정렬된다고 명시한다. 방법(3100)의 일부 실시예들에서, 상기 처리 규칙은, 상기 루마 성분에 대한 상기 가상 경계의 수직 위치(vbPosY)가 (CtbSizeY - S)와 같음에 대응하여, 상기 크로마 성분에 대한 상기 가상 경계의 수직 위치(vbPosC)가 (CtbSizeY - S) / SubHeightC와 같다고 명시한다. 방법(3100)의 일부 실시예들에서, 상기 처리 규칙은, 상기 루마 성분에 대한 상기 가상 경계의 수평 위치(vbPosY)가 (CtbSizeY - S)와 같음에 대응하여, 상기 크로마 성분에 대한 상기 가상 경계의 수평 위치(vbPosC)가 (CtbSizeY - S) / SubWidthC와 같다고 명시한다. 방법(3100)의 일부 실시예들에서, CtbSizeY는 각 코딩 트리 유닛(CTU)의 루마 CTB 크기이며, 이때 S는 정수이고, SubHeightC 및/또는 SubWidthC는 값이 1 또는 2이다. 방법(3100)의 일부 실시예들에서, 상기 처리 규칙이 명시하는 것은, 상기 가상 경계의 수직 위치 및/또는 수평 위치 근처의 크로마 성분의 K개 라인들 및/또는 H개 열들을 패딩하기 위해 사용되는 상기 패딩 방법은 상기 루마 성분에 대해 사용되는 상기 패딩 방법과 정렬된다는 것이며, 그리고 이때 Yc는 수직 또는 수평 크로마 샘플 위치이다. 방법(3100)의 일부 실시예들에서, Yc는 상기 크로마 성분에 대한 상기 가상 경계의 수직 또는 수평 위치와 같다.
방법(3100)의 일부 실시예들에서, 상단 또는 좌측 K개 사용 불가능한 라인들이 패딩되며, 이때 상기 가상 경계 아래 또는 우측의 해당 K개 사용 불가능한 라인들의 K개 라인들이 패딩되며, 또는 상기 가상 경계 아래 또는 우측의 해당 K개 사용가능한 라인들의 K개 라인들이 패딩된다. 방법(3100)의 일부 실시예들에서, 상기 상단 K개 사용 불가능한 라인들은 상기 가상 경계를 사용하여 패딩된다. 방법(3100)의 일부 실시예들에서, 샘플들의 제1 행은 상기 가상 경계 바로 위에 위치하며, 이때 상기 제1 행 바로 위의 제2 행의 샘플들은 상기 제1 행의 샘플들과 같게 설정되며, 그리고 상기 제1 행에서 2행 위에 있는 제3 행의 샘플은 상기 제1 행의 샘플과 같게 설정된다. 방법(3100)의 일부 실시예들에서, 상기 K개 라인들은 상기 가상 경계를 사용하여 패딩된다. 방법(3100)의 일부 실시예들에서, 샘플들의 제1 행은 상기 가상 경계 바로 아래에 위치하며, 이때 상기 제1 행 바로 아래에 위치한 제2 행의 샘플들은 상기 제1 행의 샘플들과 같게 설정되고, 그리고 상기 제1 행에서 2행 아래에 있는 제3 행의 샘플은 상기 제1 행의 샘플과 같게 설정된다.
방법(3100)의 일부 실시예들에서, 하단 또는 우측 K개 사용 불가능한 라인들이 패딩되며, 이때 상기 가상 경계 위 또는 좌측의 해당 K개 사용 불가능한 라인들의 K개 라인들이 패딩되며, 또는 상기 가상 경계 위 또는 좌측의 해당 K개 사용가능한 라인들의 K개 라인들이 패딩된다. 방법(3100)의 일부 실시예들에서, Yc는 상기 크로마 성분을 위한 상기 가상 경계의 수직 또는 수평 위치에서 M을 뺀 것과 같으며, 이때 M은 정수이다. 방법(3100)의 일부 실시예들에서, 하단 또는 우측 K개 사용 불가능한 라인들이 패딩되며, 이때 상기 가상 경계의 위 또는 좌측의 해당 K개 사용 불가능한 라인들의 K개 라인들이 패딩되거나, 또는 상기 가상 경계의 위 또는 좌측의 해당 K개 사용 가능한 라인들의 K개 라인들이 패딩된다. 방법(3100)의 일부 실시예들에서, 상기 하단 K개 사용 불가능한 라인들은, M이 1과 같은 것에 대응하여, 상기 가상 경계를 사용하여 패딩된다. 방법(3100)의 일부 실시예들에서, 샘플들의 제1 행은 상기 가상 경계 바로 아래에 위치하며, 이때 상기 제1 행 바로 아래의 제2 행의 샘플들은 상기 제1 행의 샘플들과 같게 설정되며, 그리고 상기 제1 행에서 2행 아래에 있는 제3 행의 샘플은 상기 제1 행의 샘플과 같게 설정된다. 방법(3100)의 일부 실시예들에서, 상기 해당 K개 사용 불가능한 라인들 또는 상기 해당 K개 사용가능한 라인들은, M이 1과 같음에 대응하여, 상기 가상 경계를 사용하여 패딩된다. 방법(3100)의 일부 실시예들에서, 샘플들의 제1 행은 상기 가상 경계 바로 위에 위치하며, 이때 상기 제1 행 바로 위 제2 행의 샘플들은 상기 제1 행의 샘플들과 같게 설정되고, 그리고 상기 제1 행에서 2행 위에 있는 제3 행의 샘플은 상기 제1 행의 샘플과 같게 설정된다.
방법(3100)의 일부 실시예들에서, 상기 하단 K개 사용 불가능한 라이들은, M이 2 보다 크거나 같음에 대응하여, 상기 가상 경계 위의 최하측 라인을 사용하여 패딩된다. 방법(3100)의 일부 실시예들에서, 샘플들의 제1 행은 상기 가상 경계에서 2행 위에 위치하며, 이때 상기 가상 경계 바로 아래에 위치하는 제2 행의 샘플은 상기 제1 행의 샘플과 같다. 방법(3100)의 일부 실시예들에서, 상기 해당 K개 사용 불가능한 라인들 또는 상기 해당 K개 사용가능한 라인들은, M이 2 보다 크거나 같음에 대응하여, 상기 가상 경계 위의 최하측 라인의 상응하는 라인을 사용하여 패딩된다. 방법(3100)의 일부 실시예들에서, 샘플들의 제1 행은 상기 가상 경계의 2행 위에 위치하며, 이때 상기 제1행에서 2행 위에 위치하는 제2행의 샘플은 상기 제1행의 샘플과 같다. 방법(3100)의 일부 실시예들에서, Yc는 상기 크로마 성분을 위한 상기 가상 경계의 수직 또는 수평 위치에 N을 더한 것과 같고, 이때 N은 정수이다. 방법(3100)의 일부 실시예들에서, 상단 또는 좌측 K개 사용 불가능한 라인들이 패딩되며, 이때 상기 가상 경계의 위 또는 우측의 해당 K개 사용 불가능한 라인들의 K개 라인들이 패딩되고, 또는 상기 가상 경계의 위 또는 우측의 해당 K개 사용가능한 라인들의 K개 라인들이 패딩된다. 방법(3100)의 일부 실시예들에서, 상기 상단 K개 사용 불가능한 라인들은 상기 가상 경계를 사용하여 패딩된다.
방법(3100)의 일부 실시예들에서, 샘플들의 제1 행은 상기 가상 경계에서 2행 아래에 위치하며, 이때 상기 가상 경계 바로 위에 위치한 제2 행의 샘플은 상기 제1 행의 샘플과 같다. 방법(3100)의 일부 실시예들에서, 상기 해당 K개 사용 불가능한 라인들 또는 상기 해당 K개 사용가능한 라인들은 상기 가상 경계를 사용하여 패딩된다. 방법(3100)의 일부 실시예들에서, 샘플들의 제1 행은 상기 가상 경계에서 2행 아래에 위치하며, 이때 상기 제1 행에서 2행 아래에 위치하는 제2 행의 샘플은 상기 제1 행의 샘플과 같다. 방법(3100)의 일부 실시예들에서, 상기 처리 규칙은 상기 가상 경계의 수직 위치 또는 수평 위치 근처의 크로마 성분의 M개 라인들 또는 N개 열들의 제1 필터 강도가 상기 루마 성분을 위해 사용되는 제2 필터 강도와 정렬된다고 명시하며, 이때 상기 루마 성분을 위한 상기 제2 필터 강도 및 상기 크로마 성분을 위한 상기 제1 필터 강도는 각각 alfShiftY 및 alfShiftC에 의해 제어되고, 그리고 Yc는 수직 또는 수평 크로마 샘플 위치이다. 방법(3100)의 일부 실시예들에서, Yc = = vbPosC - M이면, alfShiftC = T1이고, Yc != vbPosC - M이면, alfShiftC = T2이고, 이때 vbPosC는 상기 크로마 성분을 위한 상기 가상 경계의 수평 위치이다. 방법(3100)의 일부 실시예들에서, T1 = 10이고, T2 = 7이다. 방법(3100)의 일부 실시예들에서, Yc = = vbPosC + M (예를 들어, M = 0, 1)이면, alfShiftC = T1이고, 그리고 Yc != vbPosC + M이면, alfShiftC = T2이고, 이때 vbPosC는 상기 크로마 성분을 위한 상기 가상 경계의 수평 위치이다. 방법(3100)의 일부 실시예들에서, T1 = 10이고, 그리고 T2 = 7이다.
방법(2300) 내지 방법(3100)의 일부 실시예들에서, 상기 변환을 실시하는 상기 단계는 상기 비디오를 상기 비트스트림으로 인코딩하는 단계를 포함한다. 방법(2300) 내지 방법(3100)의 일부 실시예들에서, 상기 변환을 실시하는 상기 단계는 상기 비디오로부터 상기 비트스트림을 생성하는 단계를 포함하며, 상기 방법은 상기 비트스트림을 비일시적 컴퓨터 판독 가능 기록 매체에 저장하는 단계를 더 포함한다. 방법(2300) 내지 방법(3100)의 일부 실시예들에서, 상기 변환을 실시하는 상기 단계는 상기 비트스트림으로부터 상기 비디오를 디코딩하는 단계를 포함한다. 일부 실시예들에서, 비디오 디코딩 장치는 방법(2300) 내지 방법(3100) 및 관련 실시예들의 동작들을 실시하도록 구성된 프로세서를 포함한다. 일부 실시예들에서, 비디오 인코딩 장치는 방법(2300) 내지 방법(3100) 및 관련 실시예들의 동작들을 실시하도록 구성된 프로세서를 포함한다. 일부 실시예들에서, 컴퓨터 프로그램 제품은 컴퓨터 명령들을 저장하고, 상기 명령들은, 프로세서에 의해 실행 시, 상기 프로세서로 하여금 방법(2300) 내지 방법(3100) 및 관련 실시예들의 동작들을 실시하도록 한다. 일부 실시예들에서, 비일시적 컴퓨터 판독가능 기록 매체는 비디오 처리 장치에 의해 실시되는 방법에 의해 생성된 비디오의 비트스트림을 저장하며, 이때 상기 방법은 상기 비디오의 상기 비디오 영역으로부터 상기 비트스트림을 생성하는 단계를 포함하고, 상기 비트스트림은 포맷 규칙을 따르고, 상기 포맷 규칙은 툴의 상기 변환에 대한 적용가능성에 관한 정보가 비디오 슬라이스 레벨 및/또는 비디오 픽처 레벨에서 상기 비트스트림 내에서 지시됨을 명시하고, 상기 툴은 특정 값들에 루마 샘플들을 매핑하고 크로마 샘플들의 값들에 스케일링 동작을 선택적으로 적용한다. 일부 실시예들에서, 비일시적 컴퓨터 판독가능 저장 매체는 프로세서로 하여금 방법(2300) 내지 방법(3100) 및 관련 실시예들의 동작들을 실시하도록 하는 명령들을 저장한다. 일부 실시예들에서, 비트스트림 생성의 방법은 방법(2300) 내지 방법(3100) 및 관련 실시예들의 동작들에 따라 비디오의 비트스트림을 생성하는 단계 및 상기 비트스트림을 컴퓨터 판독가능 프로그램 매체에 저장하는 단계를 포함한다. 일부 실시예들에서, 방법, 장치, 개시된 방법 따라 생성된 비트스트림 또는 본 문서에 기술된 시스템이 개시된다.
본 문서에서, 용어 "비디오 처리”는 비디오 인코딩, 비디오 디코딩, 비디오 압축 또는 비디오 압축 해제를 가리킬 수 있다. 예를 들어, 비디오 압축 알고리즘들은 비디오의 픽셀 표현으로부터 상응하는 비트스트림 표현으로 변환하는 동안 또는 그 반대의 경우에 적용될 수 있다. 현재 비디오 블록의 비트스트림 표현은, 예를 들어, 신택스의 의해 정의되는 대로, 비트스트림 내에서 같은 위치에 있거나(co-located) 상이한 곳에 분산되어 있는 비트들에 해당할 수 있다. 예를 들어, 매크로블록은 변환되고 코딩된 오류 잔차 값들로 그리고 헤더들 및 비트스트림의 다른 필드들의 비트들을 사용하여 인코딩될 수 있다. 더 나아가, 디코더는, 변환동안, 상기 해결 수단들에 기술된 바와 같이, 상기 판단에 기반하여, 일부 필드들이 존재 또는 부재할 수 있다는 지식으로 비트스트림을 파싱할 수 있다. 유사하게, 인코더는 특정 신택스 필드들이 포함되어야 또는 포함되지 않아야 한다고 결정하고 상기 신택스 필드들을 상기 코딩된 표현에 포함시키거나 상기 코딩된 표현에서 배제시킴으로써 그에 맞게 상기 코딩된 표현을 생성할 수 있다.
상기 개시된 그리고 여타 해결 수단들, 예시들, 실시예들, 모듈들 그리고 본 문서에 기술된 기능적 동작들은, 본 문서에 개시된 구조들 및 그것들의 구조적 등가물들을 포함하는, 디지털 전자 회로 또는 컴퓨터 소프트웨어, 펌웨어 또는 하드웨어, 또는 이것들 중 하나 또는 그 이상의 조합들에서 구현될 수 있다. 상기 개시된 그리고 여타 실시예들은 하나 또는 그 이상의 컴퓨터 프로그램 제품들로, 즉, 컴퓨터 판독 가능 매체에 인코딩된 컴퓨터 프로그램 명령들의 하나 또는 그 이상의 모듈들로 구현되어 데이터 처리 장치에 의해 실행되거나 또는 상기 장치의 동작을 제어할 수 있다. 상기 컴퓨터 판독 가능 매체는 기계 판독 가능 저장 디바이스, 기계 판독 가능 저장 기관, 메모리 디바이스, 기계 판독 가능 전파 신호에 영향을 주는 물질의 조성, 또는 이것들 중 하나 이상의 조합일 수 있다. 용어 "데이터 처리 장치"는 예로서 프로그램가능 프로세서, 컴퓨터, 또는 다수의 프로세서들 또는 컴퓨터들을 포함하는, 데이터를 처리하기 위한 모든 장치, 디바이스들 및 머신들을 포함한다. 장치는 하드웨어에 더하여, 해당 컴퓨터 프로그램에 대한 실행 환경을 생성하는 코드, 예를 들어 프로세서 펌웨어, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 체제, 또는 이들 중 하나 이상의 조합을 구성하는 코드를 포함할 수 있다. 전파 신호는 적합한 수신기 장치로의 송신을 위해 정보를 인코딩하도록 생성되는 인위적으로 생성된 신호, 예를 들어 머신 생성 전기, 광 또는 전자기 신호이다.
컴퓨터 프로그램(또한, 프로그램, 소프트웨어, 소프트웨어 애플리케이션, 스크립트, 또는 코드라고도 알려져 있음)은 컴파일된 또는 해석된 언어들을 포함하는 임의의 형태의 프로그래밍 언어로 작성될 수 있고, 이는 독립형 프로그램(stand-alone program)으로서, 또는 모듈, 컴포넌트, 서브루틴, 또는 컴퓨팅 환경에서 사용하기에 적합한 다른 유닛 등과 같이 어떤 형태로도 배치될 수 있다. 컴퓨터 프로그램은 파일 시스템 내의 파일에 반드시 대응하지는 않는다. 프로그램은 다른 프로그램들 또는 데이터(예를 들어, 마크업 언어 문서에 저장된 하나 이상의 스크립트들)를 보유하는 파일의 일부 내에, 해당 프로그램에 전용된 단일 파일 내에, 또는 다수의 협력하는 파일들(예를 들어, 하나 이상의 모듈들, 서브 프로그램들, 또는 코드의 부분들을 저장하는 파일들) 내에 저장될 수 있다. 컴퓨터 프로그램은 하나의 컴퓨터 상에서, 또는 한 장소에 위치하거나 다수의 위치에 걸쳐 분산되어 통신 네트워크에 의해 상호접속되는 다수의 컴퓨터 상에서 실행되도록 배치될 수 있다.
본 문서에 설명된 프로세스들 및 로직 흐름들은 입력 데이터에 대해 동작하고 출력을 생성함으로써 기능들을 수행하기 위해 하나 이상의 컴퓨터 프로그램을 실행하는 하나 이상의 프로그램가능 프로세서에 의해 수행될 수 있다. 프로세스들 및 로직 흐름들은 또한 특수 목적 로직 회로, 예를 들어, FPGA(field programmable gate array) 또는 ASIC(application specific integrated circuit)에 의해 수행될 수 있고, 장치는 또한 그것들로 구현될 수 있다.
컴퓨터 프로그램의 실행에 적합한 프로세서들은, 예로서, 범용 및 특수 목적 마이크로프로세서 양자 모두, 및 임의의 종류의 디지털 컴퓨터의 임의의 하나 이상의 프로세서를 포함한다. 일반적으로, 프로세서는 판독 전용 메모리 또는 랜덤 액세스 메모리 또는 둘 다로부터 명령어들 및 데이터를 수신할 것이다. 컴퓨터의 필수 요소들은 명령어들을 수행하기 위한 프로세서 및 명령어들 및 데이터를 저장하기 위한 하나 이상의 메모리 디바이스이다. 일반적으로, 컴퓨터는 또한 데이터를 저장하기 위한 하나 이상의 대용량 저장 디바이스, 예를 들어, 자기, 광자기 디스크들, 또는 광 디스크들을 포함하거나, 또는 이들로부터 데이터를 수신하거나 데이터를 이에 전송하거나, 또는 양자 모두를 수행하도록 동작적으로 결합될 것이다. 그러나, 컴퓨터가 이러한 디바이스들을 가질 필요는 없다. 컴퓨터 프로그램 명령어들 및 데이터를 저장하기에 적합한 컴퓨터 판독가능 매체는 예로서 반도체 메모리 디바이스들, 예를 들어 EPROM, EEPROM 및 플래시 메모리 디바이스들; 자기 디스크들, 예를 들어, 내부 하드 디스크들 또는 이동식 디스크들; 광자기 디스크들; 및 CD ROM 및 DVD-ROM 디스크들을 포함하는 모든 형태의 비휘발성 메모리, 매체 및 메모리 디바이스들을 포함한다. 프로세서 및 메모리는 특수 목적 로직 회로에 의해 보완되거나 그에 통합될 수 있다.
본 특허 문서가 많은 세부사항을 포함하고 있지만, 이들은 임의의 발명 또는 청구될 수 있는 것의 범위에 대한 제한으로서 해석되어서는 안되며, 오히려 특정 발명의 특정 실시예에 해당할 수 있는 특징들에 대한 설명으로서 해석되어야 한다. 개별 실시예들에 관련하여 본 특허 문서에 설명되는 특정 특징들은 또한 단일 실시예에서 조합하여 구현될 수 있다. 반대로, 단일 실시예에 관련하여 설명되는 다양한 특징들은 또한 다수의 실시예들에서 개별적으로 또는 임의의 적절한 하위조합으로 구현될 수 있다. 또한, 특징들이 특정 조합들로 작용하는 것으로 앞서 설명되고 심지어 처음에 이와 같이 청구될 수 있지만, 청구된 조합으로부터의 하나 이상의 특징은 일부 경우들에서 조합으로부터 삭제될 수 있고, 청구된 조합은 하위조합 또는 하위조합의 변형에 관련될 수 있다.
유사하게, 동작들이 특정 순서로 도면들에 도시되지만, 이것은 바람직한 결과들을 달성하기 위해, 그러한 동작들이 도시된 특정 순서로 또는 순차적인 순서로 수행되거나, 모든 예시된 동작들이 수행되는 것을 요구하는 것으로 이해되어서는 안 된다. 또한, 본 특허 문서에 설명된 실시예들에서의 다양한 시스템 컴포넌트들의 분리는 모든 실시예들에서 이러한 분리가 요구되는 것으로 이해되어서는 안 된다.
몇몇 구현들 및 예들만이 설명되고, 본 특허 문서에서 설명되고 예시된 것에 기초하여 다른 구현들, 향상들 및 변형들이 이루어질 수 있다.

Claims (29)

  1. 비디오 처리 방법에 있어서,
    비디오 유닛을 포함하는 비디오와 상기 비디오의 비트스트림 간의 변환을 실시하는 단계를 포함하되,
    상기 비트스트림은 포맷 규칙을 따르고, 상기 포맷 규칙은 인 루프 필터링 동작이 슬라이스 경계들을 가로질러 실시되는지 여부를 지시하는 신택스 요소가 상기 비디오 유닛이 슬라이스들로 분할되는지 여부 또는 어떻게 분할되는지에 대응하여 상기 비트스트림에 선택적으로 포함됨을 명시하는, 비디오 처리 방법.
  2. 제1항에 있어서,
    상기 비디오 유닛은 픽처를 포함하는, 비디오 처리 방법.
  3. 제1항에 있어서,
    상기 비디오 유닛은 서브픽처를 포함하는, 비디오 처리 방법.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 신택스 요소는 픽처 파라미터 세트에 있는, 비디오 처리 방법.
  5. 제1항에 있어서,
    상기 비디오 유닛이 오직 하나의 슬라이스로 분할되는 것에 대응하여 상기 신택스 요소가 상기 비트스트림에 포함되지 않음을 명시하는, 비디오 처리 방법.
  6. 제1항에 있어서,
    상기 규칙은 상기 비디오 유닛의 각 서브픽처가 오직 하나의 슬라이스로 분할되는 것에 대응하여 상기 신택스 요소가 상기 비트스트림에 포함되지 않음을 명시하는, 비디오 처리 방법.
  7. 제1항에 있어서,
    상기 규칙은 상기 비디오 유닛의 각 서브픽처가 오직 하나의 슬라이스로 분할되는 것에 대응하여 상기 신택스 요소가 상기 비트스트림에 포함됨을 명시하는, 비디오 처리 방법.
  8. 제7항에 있어서,
    상기 규칙은, 각 서브픽처가 오직 하나의 직사각형 슬라이스로 구성됨을 명시하는 제1 플래그가 1인 경우에 대응하여 상기 신택스 요소가 상기 비트스트림에 포함됨을 명시하는, 비디오 처리 방법.
  9. 제8항에 있어서,
    상기 제1 플래그는 single_slice_per_subpic_flag인, 비디오 처리 방법.
  10. 제8항에 있어서,
    상기 제1 플래그는 픽처 파라미터 세트에 있는, 비디오 처리 방법.
  11. 제1항에 있어서,
    상기 규칙은, 상기 비디오 유닛이 비직사각형 모양으로 분할되는 픽처를 포함하는 것에 대응하여 상기 신택스 요소가 상기 비트스트림에 포함됨을 명시하는, 비디오 처리 방법.
  12. 제11항에 있어서,
    상기 규칙은, 래스터 스캔 슬라이스 모드가 각 픽처에 대해 사용 중임을 명시하는 제2 플래그가 0인 경우에 대응하여 상기 신택스 요소가 상기 비트스트림에 포함됨을 명시하는, 비디오 처리 방법.
  13. 제12항에 있어서,
    상기 래스터 스캔 슬라이스 모드는 비직사각형 슬라이스 모드(non-rectangular slice mode)인, 비디오 처리 방법.
  14. 제12항에 있어서,
    상기 제2 플래그는 rect_slice_flag인, 비디오 처리 방법.
  15. 제12항에 있어서,
    상기 제2 플래그는 픽처 파라미터 세트에 있는, 비디오 처리 방법.
  16. 제1항에 있어서,
    상기 규칙은, 상기 비디오 유닛이 직사각형 모양으로 분할되는 픽처를 포함하는 것에 대응하여 상기 신택스 요소가 상기 비트스트림에 포함되고 상기 비디오 유닛의 슬라이스들의 수가 1과 같음을 명시하는, 비디오 처리 방법.
  17. 제1항에 있어서,
    상기 규칙은, 픽처 당 하나의 슬라이스가 있는지 여부를 제약으로 지시하는 신택스 요소에 대해 상기 비트스트림이 0의 값을 포함하는 것에 대응하여 상기 신택스 요소가 상기 비트스트림에 포함됨을 명시하는, 비디오 처리 방법.
  18. 제1항에 있어서,
    상기 규칙은, 픽처 당 하나의 슬라이스가 있는지 여부를 제약으로 지시하는 신택스 요소에 대해 상기 비트스트림이 1의 값을 포함하는 것에 대응하여 상기 신택스 요소가 0과 같도록 요구되며 상기 비트스트림에 포함됨을 명시하는, 비디오 처리 방법.
  19. 제1항 내지 제18항 중 어느 한 항에 있어서,
    상기 인 루프 필터링 동작은 디블로킹 필터 동작, 샘플 적응적 오프세트 동작, 또는 적응적 루프 필터 동작 중 적어도 하나를 포함하는, 비디오 처리 방법.
  20. 제1항 내지 제19항 중 어느 한 항에 있어서,
    상기 변환을 실시하는 단계는 상기 비디오를 상기 비트스트림으로 인코딩하는 것을 포함하는, 비디오 처리 방법.
  21. 제1항 내지 제19항 중 어느 한 항에 있어서,
    상기 변환을 실시하는 단계는 상기 비디오로부터 상기 비트스트림을 생성하는 단계를 포함하며, 상기 방법은 상기 비트스트림을 비일시적 컴퓨터 판독가능 기록 매체에 저장하는 단계를 더 포함하는, 비디오 처리 방법.
  22. 제1항 내지 제19항 중 어느 한 항에 있어서,
    상기 변환을 실시하는 단계는 상기 비디오를 상기 비트스트림으로부터 디코딩하는 것을 포함하는, 비디오 처리 방법.
  23. 비디오 디코딩 장치에 있어서,
    제1항 내지 제22항 중 하나 또는 그 이상에서의 방법을 구현하도록 구성된 프로세서를 포함하는, 비디오 디코딩 장치.
  24. 비디오 인코딩 장치에 있어서,
    제1항 내지 제22항 중 하나 또는 그 이상에서의 방법을 구현하도록 구성된 프로세서를 포함하는, 비디오 인코딩 장치.
  25. 컴퓨터 명령들을 저장하는 컴퓨터 프로그램 제품으로,
    상기 명령들은, 프로세서에 의해 실행되는 경우, 상기 프로세서가 제1항 내지 제22항 중 어느 항에서의 방법을 구현하도록 하는, 컴퓨터 프로그램 제품.
  26. 비디오 처리 장치에 의해 실시되는 방법에 의해 생성되는 비디오의 비트스트림을 저장하는 비일시적 컴퓨터 판독가능 기록 매체로서,
    상기 방법은 비디오 유닛을 포함하는 상기 비디오로부터 상기 비트스트림을 생성하는 단계를 포함하고,
    상기 비트스트림은 포맷 규칙을 따르고, 상기 포맷 규칙은 인 루프 필터링 동작이 슬라이스 경계들을 가로질러 실시되는지 여부를 지시하는 신택스 요소가 상기 비디오 유닛이 슬라이스들로 분할되는지 여부 또는 어떻게 분할되는지에 대응하여 상기 비트스트림에 선택적으로 포함됨을 명시하는, 비일시적 컴퓨터 판독가능 기록 매체.
  27. 비일시적 컴퓨터 판독가능 저장 매체로서,
    프로세서로 하여금 제1항 내지 제22항 중 어느 항에서의 방법을 구현하도록 하는 명령들을 저장하는, 비일시적 컴퓨터 판독가능 저장 매체.
  28. 비트스트림 생성 방법에 있어서,
    제1항 내지 제22항 중 어느 항에서의 방법에 따라 비디오의 비트스트림을 생성하는 단계 및
    상기 비트스트림을 컴퓨터 판독가능 프로그램 매체에 저장하는 단계를 포함하는, 비트스트림 생성 방법.
  29. 본 문서에 기술된 방법, 장치, 개시된 방법에 따라 생성된 비트스트림, 또는 시스템.
KR1020227027174A 2020-02-14 2021-02-09 인 루프 필터링과 비디오 슬라이스들 간의 상호작용 KR20220130149A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CNPCT/CN2020/075216 2020-02-14
CN2020075216 2020-02-14
PCT/CN2021/076255 WO2021160126A1 (en) 2020-02-14 2021-02-09 Interplay between in-loop filtering and video slices

Publications (1)

Publication Number Publication Date
KR20220130149A true KR20220130149A (ko) 2022-09-26

Family

ID=77292662

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020227027173A KR20220138052A (ko) 2020-02-14 2021-02-09 인 루프 필터링과 비디오 타일들 간의 상호작용
KR1020227027174A KR20220130149A (ko) 2020-02-14 2021-02-09 인 루프 필터링과 비디오 슬라이스들 간의 상호작용

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020227027173A KR20220138052A (ko) 2020-02-14 2021-02-09 인 루프 필터링과 비디오 타일들 간의 상호작용

Country Status (7)

Country Link
US (3) US11825123B2 (ko)
EP (2) EP4091321A4 (ko)
JP (2) JP7401689B2 (ko)
KR (2) KR20220138052A (ko)
CN (3) CN115211126A (ko)
BR (1) BR112022016130A2 (ko)
WO (3) WO2021160126A1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AR121127A1 (es) * 2020-02-29 2022-04-20 Beijing Bytedance Network Tech Co Ltd Señalización de información de imagen de referencia en un flujo de bits de video
US20230119121A1 (en) * 2020-04-01 2023-04-20 Hfi Innovation Inc. Method and Apparatus for Signaling Slice Partition Information in Image and Video Coding

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101232780B1 (ko) * 2006-01-12 2013-09-03 (주)휴맥스 통합 코덱 장치 및 방법
US20100208829A1 (en) * 2007-04-04 2010-08-19 Jang Euee-Seon Bitstream decoding device and method having decoding solution
US9807426B2 (en) * 2011-07-01 2017-10-31 Qualcomm Incorporated Applying non-square transforms to video data
US20130107973A1 (en) * 2011-10-28 2013-05-02 Qualcomm Incorporated Loop filtering control over tile boundaries
US20130195172A1 (en) * 2012-01-30 2013-08-01 Qualcomm Incorporated Method of coding video and storing video content
WO2013144144A1 (en) * 2012-03-30 2013-10-03 Panasonic Corporation Syntax and semantics for adaptive loop filter and sample adaptive offset
US9706200B2 (en) * 2012-06-18 2017-07-11 Qualcomm Incorporated Unification of signaling lossless coding mode and pulse code modulation (PCM) mode in video coding
US9749627B2 (en) 2013-04-08 2017-08-29 Microsoft Technology Licensing, Llc Control data for motion-constrained tile set
US9936207B2 (en) 2013-10-14 2018-04-03 Qualcomm Incorporated Indication of parallel processing in video coding
US20160165238A1 (en) * 2014-12-09 2016-06-09 Vixs Systems Inc. Neighbor tile buffering for deblock filtering across tile boundaries
US20180054613A1 (en) * 2016-08-22 2018-02-22 Mediatek Inc. Video encoding method and apparatus with in-loop filtering process not applied to reconstructed blocks located at image content discontinuity edge and associated video decoding method and apparatus
WO2019103126A1 (en) 2017-11-22 2019-05-31 Sharp Kabushiki Kaisha Systems and methods for signaling tile structures for pictures of coded video
US10841602B2 (en) * 2018-07-16 2020-11-17 Tencent America LLC Hierarchical tiles
US11284114B2 (en) * 2019-04-23 2022-03-22 Qualcomm Incorporated Adaptive loop filter set index signaling
US11363307B2 (en) * 2019-08-08 2022-06-14 Hfi Innovation Inc. Video coding with subpictures
GB2590632B (en) 2019-12-20 2023-07-26 Canon Kk Video coding and decoding
JP2023513788A (ja) 2020-02-14 2023-04-03 エルジー エレクトロニクス インコーポレイティド フィルタ利用可能情報を選択的にシグナリングする画像符号化/復号化方法及び装置、並びにビットストリームを伝送する方法
AR121127A1 (es) 2020-02-29 2022-04-20 Beijing Bytedance Network Tech Co Ltd Señalización de información de imagen de referencia en un flujo de bits de video
CN115428444A (zh) 2020-04-01 2022-12-02 抖音视界有限公司 对自适应参数集语法元素的约束
US11503342B2 (en) 2020-06-10 2022-11-15 Sharp Kabushiki Kaisha Systems and methods for signaling sequence parameter information in video coding

Also Published As

Publication number Publication date
US20220394306A1 (en) 2022-12-08
CN115211108A (zh) 2022-10-18
US20240073457A1 (en) 2024-02-29
WO2021160126A1 (en) 2021-08-19
EP4091321A1 (en) 2022-11-23
JP2023513708A (ja) 2023-04-03
US11825123B2 (en) 2023-11-21
BR112022016130A2 (pt) 2022-10-04
WO2021160128A1 (en) 2021-08-19
CN115211126A (zh) 2022-10-18
JP7401689B2 (ja) 2023-12-19
US20220394250A1 (en) 2022-12-08
EP4091321A4 (en) 2023-04-12
JP2023513710A (ja) 2023-04-03
JP7469488B2 (ja) 2024-04-16
EP4091329A4 (en) 2023-04-12
WO2021160125A1 (en) 2021-08-19
CN115362682A (zh) 2022-11-18
EP4091329A1 (en) 2022-11-23
KR20220138052A (ko) 2022-10-12

Similar Documents

Publication Publication Date Title
JP7482220B2 (ja) サブピクチャのパラメータセットシグナリングにおける構文制約
KR20220044271A (ko) 비디오 비트스트림들에서의 서브픽처 의존적 시그널링
KR102609308B1 (ko) 비디오 비트스트림에서의 서브픽처 시그널링을 위한 신택스
CN114556924A (zh) 视频处理中色度残差的联合编解码与滤波
US11825123B2 (en) Interplay between in-loop filtering and video tiles
KR20220123650A (ko) 비디오 스트림들 내의 필러 데이터 유닛들의 프로세싱
CN117544777A (zh) 用于视频编解码的跨分量自适应环路滤波
KR20220143857A (ko) 비디오 코딩에서의 저 주파수 비-분리가능 변환 시그널링
KR20220137903A (ko) 비디오 코딩의 슬라이스 및 타일 파티셔닝
WO2021164785A1 (en) Coding of pictures containing slices and tiles
JP7397213B2 (ja) サブピクチャレベルに基づいたパーティション計算
KR20220114555A (ko) 비디오 비트스트림에서 서브픽처 레벨의 파라미터들의 시그널링
KR20230016047A (ko) 비디오 코딩에서의 서브픽처들 및 타일들의 사용
CN115462085A (zh) 视频编解码中滤波的高级控制