KR20220138008A - 비디오 코딩 및 디코딩을 위한 고레벨 신택스 - Google Patents
비디오 코딩 및 디코딩을 위한 고레벨 신택스 Download PDFInfo
- Publication number
- KR20220138008A KR20220138008A KR1020227033338A KR20227033338A KR20220138008A KR 20220138008 A KR20220138008 A KR 20220138008A KR 1020227033338 A KR1020227033338 A KR 1020227033338A KR 20227033338 A KR20227033338 A KR 20227033338A KR 20220138008 A KR20220138008 A KR 20220138008A
- Authority
- KR
- South Korea
- Prior art keywords
- decoding
- slice
- aps
- syntax element
- picture
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/103—Selection of coding mode or of prediction mode
- H04N19/105—Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/117—Filters, e.g. for pre-processing or post-processing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/124—Quantisation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/157—Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/17—Methods 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/174—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/184—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being bits, e.g. of the compressed video stream
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/30—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
본 개시내용은 하나 이상의 슬라이스에 대응하는 비디오 데이터를 포함하는 비트스트림으로부터 비디오 데이터를 디코딩하는 방법에 관한 것이다. 비트스트림은 하나 이상의 슬라이스를 디코딩할 때 이용될 신택스 요소들을 포함하는 픽처 헤더, 및 슬라이스를 디코딩할 때 이용될 신택스 요소들을 포함하는 슬라이스 헤더를 포함한다. 디코딩하는 것은, 픽처 헤더에서, 디코딩 툴이 픽처에서 이용될 수 있는지를 나타내는 적어도 하나의 신택스 요소를 파싱하는 것을 포함한다. 디코딩 툴이 픽처에서 이용될 때, 적어도 하나의 APS ID 관련 신택스 요소가 픽처 헤더에서 디코딩 툴에 대해 파싱된다. 디코딩하는 것은 또한, 슬라이스 헤더에서, 다른 디코딩 툴들에 관련된 신택스 요소들 전에 디코딩 툴이 그 슬라이스에 대해 이용될 것인지 여부를 나타내는 적어도 하나의 신택스 요소를 파싱하는 것을 포함한다. 비트스트림은 상기 신택스 요소들을 이용하여 디코딩된다. 관련 인코딩 방법들, 디바이스들 및 컴퓨터 프로그램들이 또한 개시된다.
Description
본 발명은 비디오 코딩 및 디코딩에 관한 것으로, 특히 비트스트림에서 이용되는 고레벨 신택스(high level syntax)에 관한 것이다.
최근, MPEG 및 ITU-T 연구 그룹 16의 VCEG에 의해 형성된 협업 팀인 JVET(Joint Video Experts Team)는, 다목적 비디오 코딩(Versatile Video Coding)(VVC)이라고 하는 새로운 비디오 코딩 표준에 관한 작업을 개시하였다. VVC의 목표는, 기존의 HEVC 표준에 비해 압축 성능의 상당한 개선들(즉, 통상적으로 이전보다 2배)을 제공하고 2020년에 완료되는 것이다. 주요 타겟 애플리케이션들 및 서비스들은, 360도 및 높은 동적 범위(high-dynamic-range)(HDR) 비디오들을 포함하지만, 이것으로 제한되는 것은 아니다. 전체적으로, JVET는 독립된 테스트 실험실들에 의해 수행된 공식적 주관적인 테스트들을 이용하여 32개 조직으로부터의 응답들을 평가하였다. 일부 제안들은 HEVC를 이용하는 것과 비교할 때 통상적으로 40% 이상의 압축 효율 이득들을 보여주었다. 초고해상도(UHD) 비디오 테스트 자료에 대해 특정한 유효성이 보여졌다. 따라서, 최종 표준에 대해 타겟팅된 50%를 훨씬 넘는 압축 효율 이득들을 예상할 수 있다.
JVET 탐색 모델(JEM)은 모든 HEVC 툴들을 이용하고 다수의 새로운 툴들을 도입하였다. 이러한 변경들은 비트스트림의 구조, 특히 비트스트림의 전체 비트레이트에 영향을 미칠 수 있는 고레벨 신택스에 대한 변경을 필요로 하였다.
고레벨 신택스에 대한 하나의 중요한 변경은 '픽처 헤더'를 비트스트림에 도입하는 것이다. 픽처 헤더는 특정 픽처(또는 프레임) 내의 각각의 슬라이스를 디코딩하는데 이용될 신택스 요소들을 지정하는 헤더이다. 따라서, 픽처 헤더는 비트스트림에서 슬라이스들과 관련된 데이터 전에 배치되고, 슬라이스들 각각은 그 자신의 '슬라이스 헤더'를 갖는다. 이 구조는 도 6을 참조하여 아래에서 더 상세히 설명된다.
'AHG17: Picture Header'라는 제목의, 16차 회의: 제네바, CH, 2019년 10월 1일-11일의 문서 JVET-P0239는 VVC에의 필수 픽처 헤더의 도입을 제안하였고, 이것은 문서 JVET_P2001로서 업로드된, 다목적 비디오 코딩(드래프트 7)으로서 채택되었다.
그러나, 이 헤더는 다수의 파라미터를 가지며, 이들 모두는 임의의 특정 디코딩 툴을 이용하기 위해 파싱될 필요가 있다.
본 발명은 이러한 파싱 프로세스를 단순화하기 위한 픽처 헤더의 구조에 대한 개선에 관한 것이며, 이는 코딩 성능에서의 어떠한 저하도 없이 복잡도에서의 감소로 이어진다.
특히, 픽처 헤더의 시작 부분에 APS ID 정보와 관련된 신택스 요소들을 설정함으로써, 이들 요소들이 먼저 파싱될 수 있고, 이는 헤더의 나머지를 파싱할 필요성을 배제할 수 있다.
유사하게, 슬라이스 헤더에 APS ID 정보와 관련된 신택스 요소들이 있는 경우에, 이들은 슬라이스 헤더의 시작 부분에 설정된다.
일 예에서, 픽처 헤더 및 슬라이스 헤더의 초기 스테이지에서 APS ID와 관련된 신택스 요소들을 이동시키는 것이 제안된다. 이 수정의 목적은 미사용 APS를 제거하기 위해 픽처 헤더 및 슬라이스 헤더에서 APS ID를 추적할 필요가 있는 일부 스트리밍 애플리케이션들에 대한 파싱 복잡도를 감소시키는 것이다. 제안된 수정은 BDR 성능에 영향을 미치지 않는다.
이것은 APS ID 정보가 헤더로부터 요구되는 전부일 수 있는 스트리밍 애플리케이션들에 대한 파싱 복잡도를 감소시킨다. 다른 스트리밍 관련 신택스 요소들은 동일한 이유로 헤더의 상단 쪽으로 이동될 수 있다.
'시작 부분(beginning)'이라는 용어는, APS ID 정보와 관련된 신택스 요소들 전에 다수의 도입 신택스 요소들이 있을 수 있기 때문에, 각각의 헤더에서의 맨 처음 엔트리를 의미하지 않는다는 것을 이해해야 한다. 그 상세한 설명은 다양한 예들을 제시하지만, 일반적인 정의는, APS ID 정보와 관련된 신택스 요소들이 디코딩 툴과 관련된 신택스 요소들 전에 제공된다는 것이다. 하나의 특정 예에서, ALF, LMCS 및 스케일링 리스트의 APS ID와 관련된 신택스 요소들은 poc_msb_val 신택스 요소 바로 뒤에 설정된다.
본 발명의 제1 양태에 따르면, 비트스트림으로부터 비디오 데이터를 디코딩하는 방법을 제공하고, 비트스트림은 하나 이상의 슬라이스에 대응하는 비디오 데이터를 포함한다. 비트스트림은, 하나 이상의 슬라이스를 디코딩할 때 이용될 신택스 요소들을 포함하는 픽처 헤더, 및 슬라이스를 디코딩할 때 이용될 신택스 요소들을 포함하는 슬라이스 헤더를 포함한다. 디코딩하는 것은, 픽처 헤더에서, 디코딩 툴 또는 파라미터가 픽처에서 이용될 수 있는지를 나타내는 적어도 하나의 신택스 요소를 파싱하는 것을 포함하고, 디코딩 툴 또는 파라미터가 픽처에서 이용될 때, 적어도 하나의 APS ID 관련 신택스 요소가 픽처 헤더에서 디코딩 툴 또는 파라미터에 대해 파싱된다. 디코딩하는 것은, 슬라이스 헤더에서, 디코딩 툴 또는 파라미터가 다른 디코딩 툴들 또는 파라미터들에 관련된 신택스 요소들 전에 그 슬라이스에 대해 이용될 것인지 여부를 나타내는 적어도 하나의 신택스 요소를 파싱하는 것 및 상기 신택스 요소들을 이용하여 상기 비트스트림을 디코딩하는 것을 추가로 포함한다.
따라서, LMCS(크로마 스케일링을 이용한 루마 매핑) 또는 스케일링 리스트와 같은, 슬라이스 레벨에서의 디코딩 툴 또는 파라미터의 인에이블 또는 디스에이블과 관련된 정보는 슬라이스 헤더의 시작 부분에 또는 그 근처에 설정된다. 이것은, 특히, 스트리밍 애플리케이션들에 대해, 더 간단하고 더 빠른 파싱 프로세스를 가능하게 한다.
APS ID 관련 신택스 요소를 포함하는 다른 (추가의) 디코딩 툴에 대한 파라미터들 또는 파라미터는, 인에이블될 때, (예를 들어, LMCS 또는 스케일링 리스트에 관련된 디코딩 툴 또는 파라미터 전의) 디코딩 툴 또는 파라미터가 그 슬라이스에 대해 이용될 것인지 여부를 나타내는 신택스 요소 전에 파싱될 수 있다. APS ID 관련 신택스 요소는 적응적 루프 필터링(Adaptive Loop Filtering) APS ID에 관련될 수 있다.
이것은 비유용한 APS NAL 유닛들을 제거하기 위해 APS ID 이용을 추적할 필요가 있는 스트리밍 애플리케이션들에 대한 복잡도 감소를 제공한다. 슬라이스 헤더 내에 특정 디코딩 툴들 및 파라미터들(예를 들어, LMCS 또는 스케일링 리스트)과 관련된 APS ID가 존재하지 않지만(예를 들어, LMCS 또는 스케일링 리스트와 관련된 APS ID에 대한 신택스 요소(들)가 슬라이스 헤더에서 파싱되지 않음), 이러한 디코딩 툴 또는 파라미터가 슬라이스 레벨에서 디스에이블될 때, 이것은 현재 픽처에 대해 이용되는 APS ID에 영향을 미칠 것이다. 예를 들어, 서브픽처 추출 애플리케이션에서, APS ID는 픽처 헤더에서 전송되어야 하지만, 추출된 서브픽처는 하나의 슬라이스만을 포함할 것이다. 이러한 하나의 슬라이스에서, 디코딩 툴 또는 파라미터(예를 들어, LMCS 또는 스케일링 리스트)는 슬라이스 헤더에서 디스에이블될 수 있다. 픽처 헤더에서 식별된 APS가 다른 프레임에서 결코 이용되지 않는 경우, 추출 애플리케이션은 추출된 서브픽처에 대해 필요하지 않기 때문에 관련된 APS ID를 갖는 APS(예를 들어, LMCS 또는 스케일링 리스트 APS)를 제거해야 한다. 따라서, APS가 제거될 필요가 있는지 여부에 대한 결정은 효율적으로 그리고 슬라이스 헤더에서의 다른 데이터를 먼저 파싱할 필요 없이 취해질 수 있다.
디코딩 툴 또는 파라미터가 이용될 것인지를 나타내는 슬라이스 헤더에서의 신택스 요소는 적응적 루프 필터링(ALF) 파라미터들에 관련된 신택스 요소들에 바로 후속할 수 있다.
디코딩 툴 또는 파라미터는 LMCS(크로마 스케일링을 이용한 루마 매핑)와 관련될 수 있다. 디코딩 툴 또는 파라미터가 이용될 것인지 여부를 나타내는 신택스 요소는 LMCS가 슬라이스에 대해 이용될 것인지를 시그널링하는 플래그일 수 있다.
디코딩 툴 또는 파라미터는 스케일링 리스트와 관련될 수 있다. 디코딩 툴 또는 파라미터가 이용될 것인지 여부를 나타내는 신택스 요소는 스케일링 리스트가 슬라이스에 대해 이용될 것인지를 시그널링하는 플래그일 수 있다.
실시예에서, 비트스트림으로부터 비디오 데이터를 디코딩하는 방법을 제공하며, 비트스트림은 하나 이상의 슬라이스에 대응하는 비디오 데이터를 포함하고, 비트스트림은 하나 이상의 슬라이스를 디코딩할 때 이용될 신택스 요소들을 포함하는 픽처 헤더, 및 슬라이스를 디코딩할 때 이용될 신택스 요소들을 포함하는 슬라이스 헤더를 포함하고, 이 방법은, 픽처 헤더에서, LMCS 또는 스케일링 리스트 디코딩 툴이 픽처에서 이용될 수 있는지를 나타내는 적어도 하나의 신택스 요소를 파싱하는 단계 - LMCS 또는 스케일링 리스트 디코딩 툴이 픽처에서 이용될 때, 적어도 하나의 APS ID 관련 신택스 요소가 픽처 헤더에서 LMCS 또는 스케일링 리스트 디코딩 툴에 대해 파싱됨 -; 슬라이스 헤더에서, 다른 디코딩 툴들에 관련된 신택스 요소들 전에 그 슬라이스에 대해 LMCS 또는 스케일링 리스트 디코딩 툴이 이용될 것인지 여부를 나타내는 적어도 하나의 신택스 요소를 파싱하는 단계 - ALF APS ID 신택스 요소들은, 인에이블될 때, 그 슬라이스에 대해 LMCS 또는 스케일링 리스트 디코딩 툴이 이용될 것인지 여부를 나타내는 적어도 하나의 신택스 요소 전에 파싱됨 -; 및 상기 신택스 요소들을 이용하여 비트스트림으로부터 비디오 데이터를 디코딩하는 단계를 포함한다.
본 발명의 제2 양태에 따르면, 비트스트림으로 비디오 데이터를 인코딩하는 비디오 데이터의 인코딩 방법을 제공하고, 비트스트림은 하나 이상의 슬라이스에 대응하는 비디오 데이터를 포함한다. 비트스트림은, 하나 이상의 슬라이스를 디코딩할 때 이용될 신택스 요소들을 포함하는 헤더, 및 슬라이스를 디코딩할 때 이용될 신택스 요소들을 포함하는 슬라이스 헤더를 포함한다. 인코딩하는 것은, 픽처 헤더에서, 디코딩 툴 또는 파라미터가 픽처에서 이용될 수 있는지를 나타내는 적어도 하나의 신택스 요소를 인코딩하는 것 - 디코딩 툴 또는 파라미터가 픽처에서 이용될 수 있을 때, 적어도 하나의 APS ID 관련 신택스 요소가 픽처 헤더에서 디코딩 툴 또는 파라미터에 대해 인코딩됨 -; 및 슬라이스 헤더에서, 디코딩 툴 또는 파라미터가 다른 디코딩 툴들 또는 파라미터들에 관련된 신택스 요소들 전에 그 슬라이스에 대해 이용될 것인지 여부를 나타내는 적어도 하나의 신택스 요소를 인코딩하는 것을 포함한다.
APS ID 관련 신택스 요소를 포함하는 다른 (추가의) 디코딩 툴에 대한 파라미터들은, 인에이블될 때, (예를 들어, LMCS 또는 스케일링 리스트에 관련된 디코딩 툴 또는 파라미터 전의) 디코딩 툴 또는 파라미터가 그 슬라이스에 대해 이용될 것인지 여부를 나타내는 신택스 요소 전에 인코딩될 수 있다.
다른 디코딩 툴에 대한 APS ID 관련 신택스 요소는 적응적 루프 필터링 APS ID와 관련될 수 있다.
이 프로세스에 따른 비트스트림의 인코딩은 비유용한 APS NAL 유닛들을 제거하기 위해 APS ID 이용을 추적할 필요가 있는 스트리밍 애플리케이션들에 대한 복잡도 감소를 제공한다. 슬라이스 헤더 내에 특정 디코딩 툴들 및 파라미터들(예를 들어, LMCS 또는 스케일링 리스트)과 관련된 APS ID가 존재하지 않지만(예를 들어, LMCS 또는 스케일링 리스트와 관련된 APS ID에 대한 신택스 요소(들)가 슬라이스 헤더에서 인코딩되지 않음), 이러한 디코딩 툴 또는 파라미터가 슬라이스 레벨에서 디스에이블될 때, 이것은 현재 픽처에 대해 이용되는 APS ID에 영향을 미칠 것이다. 예를 들어, 서브픽처 추출 애플리케이션에서, APS ID는 픽처 헤더에서 전송되어야 하지만, 추출된 서브픽처는 하나의 슬라이스만을 포함할 것이다. 이러한 하나의 슬라이스에서, 디코딩 툴 또는 파라미터(예를 들어, LMCS 또는 스케일링 리스트)는 슬라이스 헤더에서 디스에이블될 수 있다. 픽처 헤더에서 식별된 APS가 다른 프레임에서 결코 이용되지 않는 경우, 추출 애플리케이션은 추출된 서브픽처에 대해 필요하지 않기 때문에 관련된 APS ID를 갖는 APS(예를 들어, LMCS 또는 스케일링 리스트 APS)를 제거해야 한다. 따라서, APS가 제거될 필요가 있는지 여부에 대한 결정은 효율적으로 그리고 슬라이스 헤더에서의 다른 데이터를 먼저 파싱할 필요 없이 취해질 수 있다.
디코딩 툴 또는 파라미터가 이용될 것인지를 나타내는 슬라이스 헤더에서의 신택스 요소는 ALF 파라미터들에 바로 후속하여 인코딩된다.
디코딩 툴 또는 파라미터는 LMCS와 관련될 수 있다. 디코딩 툴 또는 파라미터가 이용될 것인지 여부를 나타내는 인코딩된 신택스 요소는 LMCS가 슬라이스에 대해 이용될 것인지를 시그널링하는 플래그일 수 있다.
디코딩 툴 또는 파라미터는 스케일링 리스트와 관련될 수 있다. 디코딩 툴 또는 파라미터가 이용될 것인지 여부를 나타내는 인코딩된 신택스 요소는 스케일링 리스트가 슬라이스에 대해 이용될 것인지를 시그널링하는 플래그일 수 있다.
제2 양태에 따른 실시예에서, 비트스트림으로 비디오 데이터를 인코딩하는 방법을 제공하고, 비트스트림은 하나 이상의 슬라이스에 대응하는 비디오 데이터를 포함하고, 비트스트림은 하나 이상의 슬라이스를 디코딩할 때 이용될 신택스 요소들을 포함하는 픽처 헤더, 및 슬라이스를 디코딩할 때 이용될 신택스 요소들을 포함하는 슬라이스 헤더를 포함하고, 이 방법은, 픽처 헤더에서, LMCS 또는 스케일링 리스트 디코딩 툴이 픽처에서 이용될 수 있는지를 나타내는 적어도 하나의 신택스 요소를 인코딩하는 단계 - LMCS 또는 스케일링 리스트 디코딩 툴이 픽처에서 이용될 때, 적어도 하나의 APS ID 관련 신택스 요소가 픽처 헤더에서 LMCS 또는 스케일링 리스트 디코딩 툴에 대해 인코딩됨 -; 슬라이스 헤더에서, 다른 디코딩 툴들에 관련된 신택스 요소들 전에 LMCS 또는 스케일링 리스트 디코딩 툴이 그 슬라이스에 대해 이용될 것인지 여부를 나타내는 적어도 하나의 신택스 요소를 인코딩하는 단계 - ALF APS ID 신택스 요소들은, 인에이블될 때, LMCS 또는 스케일링 리스트 디코딩 툴이 그 슬라이스에 대해 이용될 것인지 여부를 나타내는 적어도 하나의 신택스 요소 전에 인코딩됨 -; 및 상기 신택스 요소들을 이용하여 비트스트림으로 비디오 데이터를 인코딩하는 단계를 포함한다.
본 발명에 따른 제3 양태에서, 비트스트림으로부터 비디오 데이터를 디코딩하기 위한 디코더가 제공되며, 디코더는 제1 양태의 임의의 구현에 따른 방법을 수행하도록 구성된다.
본 발명에 따른 제4 양태에서, 비트스트림으로 비디오 데이터를 인코딩하기 위한 인코더가 제공되며, 인코더는 제2 양태의 임의의 구현에 따른 방법을 수행하도록 구성된다.
본 발명에 따른 제5 양태에서, 실행 시에 제1 또는 제2 양태들 중 임의의 양태의 방법이 수행되게 하는 컴퓨터 프로그램이 제공된다. 프로그램은 자체적으로 제공되거나 캐리어 매체 상에, 캐리어 매체에 의해 또는 캐리어 매체 내에 저장될 수 있다. 캐리어 매체는 비일시적, 예를 들어 저장 매체, 특히 컴퓨터 판독가능한 저장 매체일 수 있다. 캐리어 매체는 또한 일시적, 예를 들어 신호 또는 다른 전송 매체일 수 있다. 신호는 인터넷을 포함하는 임의의 적절한 네트워크를 통해 전송될 수 있다.
본 발명에 따른 제6 양태에서, 하나 이상의 슬라이스에 대응하는 비디오 데이터를 포함하는 비트스트림을 파싱하는 방법이 제공된다. 비트스트림은 하나 이상의 슬라이스를 디코딩할 때 이용될 신택스 요소들을 포함하는 픽처 헤더, 및 슬라이스를 디코딩할 때 이용될 신택스 요소들을 포함하는 슬라이스 헤더를 포함하고, 이 방법은, 픽처 헤더에서, 디코딩 툴 또는 파라미터가 슬라이스에서 이용될 수 있는지를 나타내는 적어도 하나의 신택스 요소를 파싱하는 단계 - 디코딩 툴 또는 파라미터가 픽처에서 이용될 때, 적어도 하나의 APS ID 관련 신택스 요소가 픽처 헤더에서 디코딩 툴에 대해 파싱됨 -; 및 슬라이스 헤더에서, 다른 디코딩 툴들 또는 파라미터들에 관련된 신택스 요소들 전에 디코딩 툴 또는 파라미터가 그 슬라이스에 대해 이용될 것인지 여부를 나타내는 적어도 하나의 신택스 요소를 파싱하지 않는 단계를 포함한다.
플래그 또는 정보가 디코딩 툴 또는 파라미터(LMCS 또는 스케일링 리스트)에 대해 슬라이스 레벨에서 설정되는 경우와 비교하여, 이 방법은 슬라이스 헤더가 LMCS에 대해 파싱될 필요가 없기 때문에 복잡도를 감소시킨다.
디코딩 툴 또는 파라미터는 LMCS(크로마 스케일링을 이용한 루마 매핑)와 관련될 수 있다. 대안으로 또는 추가로, 디코딩 툴 또는 파라미터는 스케일링 리스트와 관련될 수 있다.
본 발명에 따른 제7 양태에서, 제6 양태에 따른 비트스트림을 파싱하는 단계를 포함하는 이미지 데이터를 스트리밍하는 방법이 제공된다.
제8 양태에서, 제6 양태에 따른 방법을 수행하도록 구성되는 디바이스가 제공된다.
제9 양태에서, 실행 시에 제6 양태의 방법이 수행되게 하는 컴퓨터 프로그램이 제공된다. 프로그램은, 자체적으로 제공되거나 캐리어 매체 상에서, 캐리어 매체에 의해 또는 캐리어 매체 내에서 운반될 수 있다. 캐리어 매체는 비일시적, 예를 들어 저장 매체, 특히 컴퓨터 판독가능한 저장 매체일 수 있다. 캐리어 매체는 또한 일시적, 예를 들어 신호 또는 다른 전송 매체일 수 있다. 신호는 인터넷을 포함하는 임의의 적절한 네트워크를 통해 전송될 수 있다. 본 발명의 추가 특징들은 독립항 및 종속항에 의해 특징화된다.
제10 양태에서, 비트스트림이 제공되며, 비트스트림은 하나 이상의 슬라이스에 대응하는 비디오 데이터를 포함하고, 비트스트림은 하나 이상의 슬라이스를 디코딩할 때 이용될 신택스 요소들을 포함하는 픽처 헤더, 및 슬라이스를 디코딩할 때 이용될 신택스 요소들을 포함하는 슬라이스 헤더를 포함하고, 비트스트림은 픽처 헤더에서, LMCS 또는 스케일링 리스트 디코딩 툴이 픽처에서 이용될 수 있는지를 나타내는 적어도 하나의 신택스 요소가 인코딩되고 - LMCS 또는 스케일링 리스트 디코딩 툴이 픽처에서 이용될 때, 적어도 하나의 APS ID 관련 신택스 요소가 픽처 헤더에서 LMCS 또는 스케일링 리스트 디코딩 툴에 대해 인코딩됨 -; 슬라이스 헤더에서, LMCS 또는 스케일링 리스트 디코딩 툴이 다른 디코딩 툴들에 관련된 신택스 요소들 전에 그 슬라이스에 대해 이용될 것인지 여부를 나타내는 적어도 하나의 신택스 요소가 인코딩되고, ALF APS ID 신택스 요소들은 인에이블될 때, LMCS 또는 스케일링 리스트 디코딩 툴이 그 슬라이스에 대해 이용될 것인지 여부를 나타내는 적어도 하나의 신택스 요소 전에 파싱되고, 비디오 데이터는 상기 신택스 요소들을 이용하여 비트스트림으로부터 디코딩될 수 있다.
제11 양태에서, 제10 양태에 따른 비트스트림을 디코딩하는 방법이 제공된다.
제10 양태의 비트스트림은 비트스트림을 운반하는 신호에 의해 구현될 수 있다. 신호는, 일시적 매체(무선 또는 유선 데이터 캐리어 상의 데이터, 예를 들어 인터넷을 통한 디지털 다운로드 또는 스트리밍된 데이터) 또는 비일시적 매체(예를 들어, 물리적 매체, 예컨대 (블루 레이) 디스크, 메모리) 상에서 운반될 수 있다.
다른 양태에서, 비트스트림으로부터 비디오 데이터를 인코딩/디코딩하는 방법을 제공하며, 이 방법은, 픽처 헤더에서, LMCS 또는 스케일링 리스트 디코딩 툴이 픽처에서 이용될 수 있는지를 나타내는 신택스 요소를 인코딩/파싱하는 단계; 슬라이스 헤더에서, LMCS 또는 스케일링 리스트 디코딩 툴이 다른 디코딩 툴들에 관련된 신택스 요소들 전에 그 슬라이스에 대해 이용될 것인지 여부를 나타내는 적어도 하나의 신택스 요소를 인코딩/파싱하는 단계를 포함한다. 다른 디코딩 툴들은 저레벨 디코딩 툴들일 수 있고 ALF를 포함하지 않는다. 적응적 루프 필터링 APS ID 신택스 요소들은, LMCS 또는 스케일링 리스트 디코딩 툴이 그 슬라이스에 대해 이용될 것인지 여부를 나타내는 적어도 하나의 신택스 요소 전에 (예를 들어, 인에이블될 때) 인코딩/파싱될 수 있다. 비디오 데이터는 상기 신택스 요소들에 따라 비트스트림으로 인코딩/비트스트림으로부터 디코딩될 수 있다. 이 방법은, LMCS 또는 스케일링 리스트 디코딩 툴이 픽처에서 이용될 때, LMCS 또는 스케일링 리스트 디코딩 툴이 픽처에서 이용될 수 있는지를 나타내는 적어도 하나의 신택스 요소를 픽처 헤더에서 인코딩/픽처 헤더로부터 디코딩하는 단계를 더 포함할 수 있다. 디바이스는 이 방법을 수행하도록 구성될 수 있다. 컴퓨터 프로그램은 실행 시에 이 방법이 (예를 들어, 하나 이상의 프로세서에 의해) 수행되게 하는 명령어들을 포함할 수 있다.
본 발명의 일 양태에서의 임의의 특징은 임의의 적절한 조합으로 본 발명의 다른 양태들에 적용될 수 있다. 특히, 방법 양태들은 장치 양태들에 적용될 수 있고, 그 반대도 가능하다.
또한, 하드웨어로 구현되는 특징들은 소프트웨어로 구현될 수 있고, 그 반대도 가능하다. 본 명세서에서의 소프트웨어 및 하드웨어 특징들에 대한 임의의 언급은 이에 따라 해석되어야 한다.
본 명세서에 설명된 임의의 장치 특징은 또한 방법 특징으로서 제공될 수 있고, 그 반대도 가능하다. 본 명세서에서 사용되는 바와 같이, 수단 플러스 기능 특징들(means plus function features)은 적절하게 프로그래밍된 프로세서 및 연관된 메모리와 같은 그 대응하는 구조의 면에서 대안으로 표현될 수 있다.
또한, 본 발명의 임의의 양태들에서 설명되고 정의되는 다양한 특징들의 특정 조합들이 독립적으로 구현 및/또는 공급 및/또는 이용될 수 있음을 이해해야 한다.
이제, 첨부 도면들을 예로서 참조할 것이다.
도 1은 HEVC 및 VVC에서 이용되는 코딩 구조를 설명하는데 이용하기 위한 도면이다.
도 2는 본 발명의 하나 이상의 실시예가 구현될 수 있는 데이터 통신 시스템을 개략적으로 나타내는 블록도이다.
도 3은 본 발명의 하나 이상의 실시예가 구현될 수 있는 처리 디바이스의 구성요소들을 나타내는 블록도이다.
도 4는 본 발명의 실시예들에 따른 인코딩 방법의 단계들을 나타내는 흐름도이다.
도 5는 본 발명의 실시예들에 따른 디코딩 방법의 단계들을 나타내는 흐름도이다.
도 6은 예시적인 코딩 시스템 VVC에서의 비트스트림의 구조를 도시한다.
도 7은 루마 모델링 크로마 스케일링(LMCS)을 도시한다.
도 8은 LMCS의 서브-툴을 도시한다.
도 9는 본 발명의 실시예들에 따른, 인코더 또는 디코더 및 통신 네트워크를 포함하는 시스템을 도시하는 도면이다.
도 10은 본 발명의 하나 이상의 실시예의 구현을 위한 컴퓨팅 디바이스의 개략적인 블록도이다.
도 11은 네트워크 카메라 시스템을 도시하는 도면이다.
도 12는 스마트폰을 도시하는 도면이다.
도 1은 HEVC 및 VVC에서 이용되는 코딩 구조를 설명하는데 이용하기 위한 도면이다.
도 2는 본 발명의 하나 이상의 실시예가 구현될 수 있는 데이터 통신 시스템을 개략적으로 나타내는 블록도이다.
도 3은 본 발명의 하나 이상의 실시예가 구현될 수 있는 처리 디바이스의 구성요소들을 나타내는 블록도이다.
도 4는 본 발명의 실시예들에 따른 인코딩 방법의 단계들을 나타내는 흐름도이다.
도 5는 본 발명의 실시예들에 따른 디코딩 방법의 단계들을 나타내는 흐름도이다.
도 6은 예시적인 코딩 시스템 VVC에서의 비트스트림의 구조를 도시한다.
도 7은 루마 모델링 크로마 스케일링(LMCS)을 도시한다.
도 8은 LMCS의 서브-툴을 도시한다.
도 9는 본 발명의 실시예들에 따른, 인코더 또는 디코더 및 통신 네트워크를 포함하는 시스템을 도시하는 도면이다.
도 10은 본 발명의 하나 이상의 실시예의 구현을 위한 컴퓨팅 디바이스의 개략적인 블록도이다.
도 11은 네트워크 카메라 시스템을 도시하는 도면이다.
도 12는 스마트폰을 도시하는 도면이다.
도 1은 고효율 비디오 코딩(HEVC) 비디오 표준에서 이용되는 코딩 구조에 관한 것이다. 비디오 시퀀스(1)는 일련의 디지털 이미지들 i로 구성된다. 각각의 이러한 디지털 이미지는 하나 이상의 행렬로 표현된다. 행렬 계수들은 픽셀들을 나타낸다.
시퀀스의 이미지(2)는 슬라이스들(3)로 분할될 수 있다. 슬라이스는 일부 경우들에서 전체 이미지를 구성할 수 있다. 이들 슬라이스들은 비-중첩 코딩 트리 유닛들(CTU들)로 분할된다. 코딩 트리 유닛(CTU)은 고효율 비디오 코딩(HEVC) 비디오 표준의 기본 처리 유닛이고 개념적으로 구조상 여러 이전 비디오 표준들에서 이용되었던 매크로블록 유닛들에 대응한다. CTU는 때때로 최대 코딩 유닛(LCU)이라고도 한다. CTU는 루마 및 크로마 성분 부분들을 가지며, 이들 성분 부분들 각각은 코딩 트리 블록(CTB)이라고 불린다. 이들 상이한 컬러 성분들은 도 1에 도시되지 않는다.
CTU는 일반적으로 크기가 64 픽셀 x 64 픽셀이다. 각각의 CTU는 차례로 쿼드트리 분해(quadtree decomposition)를 이용하여 보다 작은 가변 크기의 코딩 유닛들(CU들)(5)로 반복적으로 분할될 수 있다.
코딩 유닛들은 기본 코딩 요소들이고, 예측 유닛(PU) 및 변환 유닛(TU)이라고 불리는 2가지 종류의 서브유닛에 의해 구성된다. PU 또는 TU의 최대 크기는 CU 크기와 동일하다. 예측 유닛은 픽셀 값들의 예측을 위한 CU의 파티션에 대응한다. 4개의 정사각형 PU로의 파티션 및 2개의 직사각형 PU로의 2개의 상이한 파티션을 포함하는 CU의 PU들로의 다양한 상이한 파티션들이 606에 의해 도시된 바와 같이 가능하다. 변환 유닛은 DCT를 이용한 공간적 변환을 겪는 기본 유닛이다. CU는 쿼드트리 표현(607)에 기반하여 TU들로 파티셔닝될 수 있다.
각각의 슬라이스는 하나의 네트워크 추상화 계층(Network Abstraction Layer)(NAL) 유닛에 임베딩된다. 또한, 비디오 시퀀스의 코딩 파라미터들은 파라미터 세트들이라 불리는 전용 NAL 유닛들에 저장된다. HEVC 및 H.264/AVC에서, 2가지 종류의 파라미터 세트 NAL 유닛들이 이용된다: 첫째, 전체 비디오 시퀀스 동안 변경되지 않는 모든 파라미터들을 수집하는 시퀀스 파라미터 세트(SPS) NAL 유닛이다. 전형적으로, 이것은 코딩 프로파일, 비디오 프레임들의 크기 및 다른 파라미터들을 처리한다. 둘째, 픽처 파라미터 세트(PPS) NAL 유닛은 시퀀스의 하나의 이미지(또는 프레임)로부터 다른 것으로 변경할 수 있는 파라미터들을 포함한다. HEVC는 또한 비트스트림의 전체 구조를 기술하는 파라미터들을 포함하는 비디오 파라미터 세트(VPS) NAL 유닛을 포함한다. VPS는 HEVC에서 정의된 새로운 유형의 파라미터 세트이고, 비트스트림의 계층들 모두에 적용된다. 계층은 복수의 시간적 서브계층들을 포함할 수 있고, 모든 버전 1 비트스트림들은 단일 계층으로 제한된다. HEVC는 확장성 및 멀티뷰를 위한 특정 계층화된 확장들을 가지며, 이들은 역호환 버전 1 베이스 계층과 함께 복수의 계층들을 가능하게 할 것이다.
도 2는 본 발명의 하나 이상의 실시예가 구현될 수 있는 데이터 통신 시스템을 도시한다. 데이터 통신 시스템은 데이터 통신 네트워크(200)를 통해 데이터 스트림의 데이터 패킷들을 수신 디바이스, 이 경우에는 클라이언트 단말기(202)에 전송하도록 동작가능한 전송 디바이스, 이 경우에는 서버(201)를 포함한다. 데이터 통신 네트워크(200)는 WAN(Wide Area Network) 또는 LAN(Local Area Network)일 수 있다. 이러한 네트워크는, 예를 들어, 무선 네트워크(Wifi/802.11a 또는 b 또는 g), 이더넷 네트워크, 인터넷 네트워크, 또는 수 개의 상이한 네트워크들로 구성된 혼합 네트워크일 수 있다. 본 발명의 특정 실시예에서, 데이터 통신 시스템은 서버(201)가 동일한 데이터 콘텐츠를 복수의 클라이언트들에 전송하는 디지털 텔레비전 방송 시스템일 수 있다.
서버(201)에 의해 제공되는 데이터 스트림(204)은 비디오 및 오디오 데이터를 나타내는 멀티미디어 데이터로 구성될 수 있다. 오디오 및 비디오 데이터 스트림들은, 본 발명의 일부 실시예들에서, 각각 마이크로폰 및 카메라를 이용하여 서버(201)에 의해 캡처될 수 있다. 일부 실시예들에서, 데이터 스트림들은 서버(201) 상에 저장되거나 서버(201)에 의해 다른 데이터 제공자로부터 수신되거나, 서버(201)에서 생성될 수 있다. 서버(201)에는 비디오 및 오디오 스트림들을 인코딩하기 위한 인코더가 제공되어, 특히 인코더에 대한 입력으로서 제시되는 데이터의 보다 콤팩트한 표현인 전송을 위한 압축된 비트스트림을 제공한다.
전송된 데이터의 품질 대 전송된 데이터의 양에 대한 보다 나은 비율을 획득하기 위해, 비디오 데이터의 압축은, 예를 들어, HEVC 포맷 또는 H.264/AVC 포맷을 따를 수 있다.
클라이언트(202)는 전송된 비트스트림을 수신하고, 디스플레이 디바이스 상에서 비디오 이미지들을 그리고 라우드 스피커에 의해 오디오 데이터를 재생하기 위해 재구성된 비트스트림을 디코딩한다.
도 2의 예에서 스트리밍 시나리오가 고려되지만, 본 발명의 일부 실시예들에서, 인코더와 디코더 사이의 데이터 통신이, 예를 들어, 광학 디스크 등의 미디어 저장 디바이스를 이용하여 수행될 수 있다는 것을 이해할 것이다.
본 발명의 하나 이상의 실시예에서, 비디오 이미지는 최종 이미지에서 필터링된 픽셀들을 제공하기 위해 이미지의 재구성된 픽셀들에 적용하기 위한 보상 오프셋들을 나타내는 데이터와 함께 전송된다.
도 3은 본 발명의 적어도 하나의 실시예를 구현하도록 구성된 처리 디바이스(300)를 개략적으로 도시한다. 처리 디바이스(300)는 마이크로컴퓨터, 워크스테이션 또는 경량 휴대용 디바이스와 같은 디바이스일 수 있다. 디바이스(300)는,
- CPU로 표시되는, 마이크로프로세서와 같은 중앙 처리 유닛(311);
- 본 발명을 구현하기 위한 컴퓨터 프로그램들을 저장하기 위한, ROM으로 표시된 판독 전용 메모리(306);
- 본 발명의 실시예들의 방법의 실행가능한 코드뿐만 아니라, 본 발명의 실시예들에 따라 디지털 이미지들의 시퀀스를 인코딩하는 방법 및/또는 비트스트림을 디코딩하는 방법을 구현하는데 필요한 변수들 및 파라미터들을 기록하도록 적응되는 레지스터들을 저장하기 위한, RAM으로 표시된 랜덤 액세스 메모리(312); 및
- 처리될 디지털 데이터가 전송되거나 수신되는 통신 네트워크(303)에 접속된 통신 인터페이스(302)
에 접속된 통신 버스(313)를 포함한다.
선택적으로, 장치(300)는 또한 다음과 같은 구성요소들을 포함할 수 있다:
- 본 발명의 하나 이상의 실시예의 방법들을 구현하기 위한 컴퓨터 프로그램들 및 본 발명의 하나 이상의 실시예의 구현 동안 이용되거나 생성되는 데이터를 저장하기 위한, 하드 디스크와 같은 데이터 저장 수단(304);
- 디스크(306)로부터 데이터를 판독하거나 상기 디스크 상에 데이터를 기입하도록 적응되는, 디스크(306)를 위한 디스크 드라이브(305);
- 키보드(310) 또는 임의의 다른 포인팅 수단에 의해, 데이터를 표시하고/하거나 사용자와의 그래픽 인터페이스로서 역할을 하기 위한 스크린(309).
장치(300)는, 예를 들어, 디지털 카메라(320) 또는 마이크로폰(308) 등의 다양한 주변기기들에 접속될 수 있고, 그 각각은 멀티미디어 데이터를 장치(300)에 공급하기 위해 입력/출력 카드(도시되지 않음)에 접속되어 있다.
통신 버스는 장치(300)에 포함되거나 이에 접속된 다양한 요소들 사이의 통신 및 상호운용성을 제공한다. 버스의 표현은 제한적이지 않고, 특히 중앙 처리 유닛은 직접 또는 장치(300)의 다른 요소에 의해 장치(300)의 임의의 요소에 명령어들을 통신하도록 동작가능하다.
디스크(306)는, 예를 들어, 콤팩트 디스크(CD-ROM)(재기입가능하거나 그렇지 않음), ZIP 디스크 또는 메모리 카드 등의 임의의 정보 매체로, 그리고, 일반적인 표현으로, 마이크로컴퓨터에 의해 또는 마이크로프로세서에 의해 판독될 수 있고, 장치 내에 통합되거나 통합되지 않을 수 있으며, 가능하게는 이동식이고 그 실행이 구현될 본 발명에 따라 디지털 이미지들의 시퀀스를 인코딩하는 방법 및/또는 비트스트림을 디코딩하는 방법을 가능하게 하는 하나 이상의 프로그램을 저장하도록 적응될 수 있는 정보 저장 수단으로 대체될 수 있다.
실행가능한 코드는 판독 전용 메모리(306)에, 하드 디스크(304) 상에, 또는 예를 들어 전술한 바와 같은 디스크(306) 등의 이동식 디지털 매체 상에 저장될 수 있다. 변형예에 따르면, 프로그램들의 실행가능한 코드는 실행되기 전에 하드 디스크(304)와 같은 장치(300)의 저장 수단들 중 하나에 저장되기 위해 인터페이스(302)를 통해 통신 네트워크(303)에 의해 수신될 수 있다.
중앙 처리 유닛(311)은 본 발명에 따른 프로그램 또는 프로그램들의 소프트웨어 코드의 명령어들 또는 부분들, 전술한 저장 수단들 중 하나에 저장된 명령어들의 실행을 제어 및 지시하도록 적응된다. 전원이 켜지면, 비휘발성 메모리, 예를 들어 하드 디스크(304) 또는 판독 전용 메모리(306)에 저장된 프로그램 또는 프로그램들은 랜덤 액세스 메모리(312)로 전송되고, 랜덤 액세스 메모리(312)는 그 후 프로그램 또는 프로그램들의 실행가능한 코드뿐만 아니라, 본 발명을 구현하는데 필요한 변수들 및 파라미터들을 저장하기 위한 레지스터들을 포함한다.
이 실시예에서, 장치는 본 발명을 구현하기 위해 소프트웨어를 이용하는 프로그래밍가능한 장치이다. 그러나, 대안으로, 본 발명은 하드웨어로(예를 들어, 주문형 집적 회로 또는 ASIC의 형태로) 구현될 수 있다.
도 4는 본 발명의 적어도 하나의 실시예에 따른 인코더의 블록도를 도시한다. 인코더는 접속된 모듈들에 의해 표현되고, 각각의 모듈은, 예를 들어, 디바이스(300)의 CPU(311)에 의해 실행될 프로그래밍 명령어들의 형태로, 본 발명의 하나 이상의 실시예에 따라 이미지들의 시퀀스 중의 이미지를 인코딩하는 적어도 하나의 실시예를 구현하는 방법의 적어도 하나의 대응하는 단계를 구현하도록 적응된다.
원래 시퀀스의 디지털 이미지들 i0 내지 in(401)이 인코더(400)에 의해 입력으로서 수신된다. 각각의 디지털 이미지는 픽셀들로 알려진 샘플들의 세트로 표현된다.
비트스트림(410)은 인코딩 프로세스의 구현 후에 인코더(400)에 의해 출력된다. 비트스트림(410)은 복수의 인코딩 유닛 또는 슬라이스를 포함하고, 각각의 슬라이스는 슬라이스를 인코딩하는데 이용되는 인코딩 파라미터들의 인코딩 값들을 전송하기 위한 슬라이스 헤더와, 인코딩된 비디오 데이터를 포함하는 슬라이스 바디를 포함한다.
입력 디지털 이미지들 i0 내지 in(401)은 모듈(402)에 의해 픽셀들의 블록들로 분할된다. 블록들은 이미지 부분들에 대응하고 가변 크기들을 가질 수 있다(예를 들어, 4x4, 8x8, 16x16, 32x32, 64x64, 128x128 픽셀들 및 몇몇 직사각형 블록 크기들이 또한 고려될 수 있다). 코딩 모드가 각각의 입력 블록에 대해 선택된다. 두 가지 부류의 코딩 모드들, 즉 공간적 예측 코딩에 기반한 코딩 모드들(인트라 예측), 및 시간적 예측에 기반한 코딩 모드들(인터 코딩, 병합, 스킵)이 제공된다. 가능한 코딩 모드들이 테스트된다.
모듈(403)은, 인코딩될 주어진 블록이 인코딩될 상기 블록의 이웃의 픽셀들로부터 계산된 예측자에 의해 예측되는 인트라 예측 프로세스를 구현한다. 인트라 코딩이 선택되는 경우, 선택된 인트라 예측자의 표시 및 주어진 블록과 그 예측자 사이의 차이가 인코딩되어 잔차를 제공한다.
시간적 예측은 모션 추정 모듈(404) 및 모션 보상 모듈(405)에 의해 구현된다. 먼저, 참조 이미지들(416)의 세트 중에서 참조 이미지가 선택되고, 인코딩될 주어진 블록에 가장 가까운 영역인, 참조 영역 또는 이미지 부분으로 또한 불리는 참조 이미지의 부분이 모션 추정 모듈(404)에 의해 선택된다. 모션 보상 모듈(405)은 그 후 선택된 영역을 이용하여 인코딩될 블록을 예측한다. 선택된 참조 영역과, 잔차 블록으로 또한 불리는 주어진 블록 사이의 차이는 모션 보상 모듈(405)에 의해 계산된다. 선택된 참조 영역은 모션 벡터에 의해 표시된다.
따라서, 양 경우들(공간적 예측 및 시간적 예측)에서, 잔차는 원래 블록으로부터 예측을 감산함으로써 계산된다.
모듈(403)에 의해 구현되는 인트라(INTRA) 예측에서, 예측 방향이 인코딩된다. 시간적 예측에서, 적어도 하나의 모션 벡터가 인코딩된다. 모듈들(404, 405, 416, 418, 417)에 의해 구현되는 인터 예측에서, 적어도 하나의 모션 벡터 또는 이러한 모션 벡터를 식별하기 위한 데이터가 시간적 예측을 위해 인코딩된다.
인터 예측이 선택되면 모션 벡터 및 잔차 블록에 대한 정보가 인코딩된다. 모션이 균일하다고 가정하여, 비트레이트를 추가로 감소시키기 위해, 모션 벡터는 모션 벡터 예측자에 대한 차이에 의해 인코딩된다. 모션 정보 예측자들의 세트의 모션 벡터 예측자들은 모션 벡터 예측 및 코딩 모듈(417)에 의해 모션 벡터 필드(418)로부터 획득된다.
인코더(400)는 레이트-왜곡 기준과 같은 인코딩 비용 기준을 적용함으로써 코딩 모드의 선택을 위한 선택 모듈(406)을 추가로 포함한다. 리던던시들을 추가로 감소시키기 위해, 변환 모듈(407)에 의해 변환(예를 들어, DCT)이 잔차 블록에 적용되고, 이어서 획득된 변환된 데이터는 양자화 모듈(408)에 의해 양자화되고 엔트로피 인코딩 모듈(409)에 의해 엔트로피 인코딩된다. 마지막으로, 인코딩되는 현재 블록의 인코딩된 잔차 블록이 비트스트림(410)에 삽입된다.
인코더(400)는 또한 후속 이미지들의 모션 추정을 위한 참조 이미지를 생성하기 위해 인코딩된 이미지의 디코딩을 수행한다. 이것은 비트스트림을 수신하는 인코더 및 디코더가 동일한 참조 프레임들을 가질 수 있게 한다. 역양자화 모듈(411)은 양자화된 데이터의 역양자화를 수행하고, 역변환 모듈(412)에 의한 역변환이 이어진다. 역인트라 예측 모듈(413)은 주어진 블록에 대해 어느 예측자를 이용할지를 결정하기 위해 예측 정보를 이용하고, 역모션 보상 모듈(414)은 실제로 모듈(412)에 의해 획득된 잔차를 참조 이미지들(416)의 세트로부터 획득된 참조 영역에 추가한다.
이어서, 재구성된 픽셀 프레임을 필터링하기 위해 모듈(415)에 의해 후필터링이 적용된다. 본 발명의 실시예들에서, 보상 오프셋들이 재구성된 이미지의 재구성된 픽셀들의 픽셀 값들에 추가되는 SAO 루프 필터가 이용된다.
도 5는 본 발명의 실시예에 따른, 인코더로부터 데이터를 수신하는데 이용될 수 있는 디코더(60)의 블록도를 나타낸 것이다. 디코더는 접속된 모듈들로 표현되며, 각각의 모듈은, 예를 들어, 디바이스(300)의 CPU(311)에 의해 실행될 프로그래밍 명령어들의 형태로, 디코더(60)에 의해 구현되는 방법의 대응하는 단계를 구현하도록 적응된다.
디코더(60)는 인코딩 유닛들을 포함하는 비트스트림(61)을 수신하고, 각각의 인코딩 유닛은 인코딩 파라미터들에 관한 정보를 포함하는 헤더 및 인코딩된 비디오 데이터를 포함하는 바디로 구성된다. VVC에서의 비트스트림의 구조는 도 6을 참조하여 아래에 더 상세히 설명된다. 도 4와 관련하여 설명된 바와 같이, 인코딩된 비디오 데이터는 엔트로피 인코딩되고, 모션 벡터 예측자들의 인덱스들은 주어진 블록에 대해 미리 결정된 수의 비트들로 인코딩된다. 수신된 인코딩된 비디오 데이터는 모듈(62)에 의해 엔트로피 디코딩된다. 잔차 데이터는 그 후 모듈(63)에 의해 역양자화되고, 그 후 픽셀 값들을 획득하기 위해 모듈(64)에 의해 역변환이 적용된다.
코딩 모드를 나타내는 모드 데이터가 또한 엔트로피 디코딩되고, 그 모드에 기반하여, 인트라 유형 디코딩 또는 인터 유형 디코딩이 인코딩된 이미지 데이터 블록들에 대해 수행된다.
인트라 모드의 경우에, 비트스트림에 지정된 인트라 예측 모드에 기반하여 역인트라 예측 모듈(65)에 의해 인트라 예측자가 결정된다.
모드가 인터(INTER)인 경우, 인코더에 의해 이용되는 참조 영역을 찾기 위해 비트스트림으로부터 모션 예측 정보가 추출된다. 모션 예측 정보는 참조 프레임 인덱스 및 모션 벡터 잔차로 구성된다. 모션 벡터 디코딩 모듈(70)에 의해 모션 벡터를 획득하기 위해 모션 벡터 예측자가 모션 벡터 잔차에 추가된다.
모션 벡터 디코딩 모듈(70)은 모션 예측에 의해 인코딩된 각각의 현재 블록에 대해 모션 벡터 디코딩을 적용한다. 현재 블록에 대한 모션 벡터 예측자의 인덱스가 획득되었다면, 현재 블록과 연관된 모션 벡터의 실제 값이 디코딩되어 모듈(66)에 의해 역모션 보상을 적용하는데 이용될 수 있다. 디코딩된 모션 벡터에 의해 표시된 참조 이미지 부분은 역모션 보상(66)을 적용하기 위해 참조 이미지(68)로부터 추출된다. 모션 벡터 필드 데이터(71)는 후속 디코딩된 모션 벡터들의 역예측에 이용되기 위해 디코딩된 모션 벡터로 업데이트된다.
마지막으로, 디코딩된 블록이 획득된다. 후필터링은 후필터링 모듈(67)에 의해 적용된다. 디코딩된 비디오 신호(69)가 최종적으로 디코더(60)에 의해 제공된다.
도 6은 JVET_P2001-VE에 기술된 바와 같은 예시적인 코딩 시스템(VVC)에서의 비트스트림의 구성을 예시한다.
VVC 코딩 시스템에 따른 비트스트림(61)은 신택스 요소들 및 코딩된 데이터의 순서화된 시퀀스로 구성된다. 신택스 요소들 및 코딩된 데이터는 네트워크 추상화 계층(NAL) 유닛들(601-608)에 배치된다. 상이한 NAL 유닛 유형들이 존재한다. 네트워크 추상화 계층은 비트스트림을 실시간 프로토콜/인터넷 프로토콜, ISO 베이스 미디어 파일 포맷 등을 나타내는 RTP/IP와 같은 상이한 프로토콜들로 캡슐화하는 능력을 제공한다. 네트워크 추상화 계층은 또한 패킷 손실 복원력을 위한 프레임워크를 제공한다.
NAL 유닛들은 비디오 코딩 계층(VCL) NAL 유닛들 및 비-VCL NAL 유닛들로 분할된다. VCL NAL 유닛들은 실제 인코딩된 비디오 데이터를 포함한다. 비-VCL NAL 유닛들은 추가 정보를 포함한다. 이 추가 정보는 인코딩된 비디오 데이터 또는 디코딩된 비디오 데이터의 유용성을 향상시킬 수 있는 보충 데이터의 디코딩에 필요한 파라미터들일 수 있다. NAL 유닛들(606)은 슬라이스들에 대응하고 비트스트림의 VCL NAL 유닛들을 구성한다.
상이한 NAL 유닛들(601-605)은 상이한 파라미터 세트들에 대응하고, 이러한 NAL 유닛들은 비-VCL NAL 유닛들이다. 디코더 파라미터 세트(DPS) NAL 유닛(301)은 주어진 디코딩 프로세스에 대해 일정한 파라미터들을 포함한다. 비디오 파라미터 세트(VPS) NAL 유닛(602)은 전체 비디오, 및 이에 따른 전체 비트스트림에 대해 정의된 파라미터들을 포함한다. DPS NAL 유닛은 VPS에서의 파라미터들보다 더 정적인 파라미터들을 정의할 수 있다. 즉, DPS의 파라미터들은 VPS의 파라미터보다 덜 빈번하게 변한다.
시퀀스 파라미터 세트(SPS) NAL 유닛(603)은 비디오 시퀀스에 대해 정의된 파라미터들을 포함한다. 특히, SPS NAL 유닛은 비디오 시퀀스들의 서브픽처 레이아웃 및 연관된 파라미터들을 정의할 수 있다. 각각의 서브픽처에 연관된 파라미터들은 서브픽처에 적용되는 코딩 제약들을 지정한다. 특히, 이는 서브픽처들 간의 시간적 예측이 동일한 서브픽처로부터 오는 데이터로 제한된다는 것을 나타내는 플래그를 포함한다. 다른 플래그는 서브픽처 경계들에 걸쳐 루프 필터들을 인에이블 또는 디스에이블할 수 있다.
픽처 파라미터 세트(PPS) NAL 유닛(604)의 PPS는 픽처 또는 픽처들의 그룹에 대해 정의된 파라미터들을 포함한다. 적응 파라미터 세트(APS) NAL 유닛(605)은 슬라이스 레벨에서 이용되는 루프 필터들, 전형적으로 ALF(Adaptive Loop Filter) 또는 재정형기 모델(또는 크로마 스케일링을 이용한 루마 매핑(luma mapping with chroma scaling)(LMCS) 모델) 또는 스케일링 행렬들에 대한 파라미터들을 포함한다.
VVC의 현재 버전에서 제안된 바와 같은 PPS의 신택스는 루마 샘플들 내의 픽처의 크기 그리고 또한 타일들 및 슬라이스들 내의 각각의 픽처의 파티셔닝을 지정하는 신택스 요소들을 포함한다.
PPS는 프레임 내의 슬라이스 위치를 결정하는 것을 가능하게 하는 신택스 요소들을 포함한다. 서브픽처가 프레임 내에 직사각형 영역을 형성하기 때문에, 파라미터 세트 NAL 유닛들로부터 서브픽처에 속하는 슬라이스들의 세트, 타일들의 부분들 또는 타일들을 결정하는 것이 가능하다. APS로서의 PPS는 전송되는 동일한 PPS의 양을 제한하기 위한 ID 메커니즘을 갖는다.
PPS와 픽처 헤더 사이의 주요 차이점은 그 전송이고, PPS는 일반적으로 각각의 픽처에 대해 체계적으로 전송되는 PH에 비해 픽처들의 그룹에 대해 전송된다. 따라서, PH에 비해 PPS는 여러 픽처에 대해 일정할 수 있는 파라미터들을 포함한다.
비트스트림은 또한 SEI(Supplemental Enhancement Information) NAL 유닛들(도 6에 표현되지 않음)을 포함할 수 있다. 비트스트림에서의 이러한 파라미터 세트들의 발생의 주기성은 가변적이다. 전체 비트스트림에 대해 정의되는 VPS는 비트스트림에서 한 번만 발생할 수 있다. 반대로, 슬라이스에 대해 정의되는 APS는 각각의 픽처 내의 각각의 슬라이스에 대해 한 번 발생할 수 있다. 실제로, 상이한 슬라이스들은 동일한 APS에 의존할 수 있고, 따라서 일반적으로 각각의 픽처 내의 슬라이스들보다 더 적은 APS가 존재한다. 특히, APS는 픽처 헤더에서 정의된다. 그러나, ALF APS는 슬라이스 헤더에서 정밀화될 수 있다.
액세스 유닛 구분자(Access Unit Delimiter)(AUD) NAL 유닛(607)은 2개의 액세스 유닛을 분리한다. 액세스 유닛은 동일한 디코딩 타임스탬프를 갖는 하나 이상의 코딩된 픽처를 포함할 수 있는 NAL 유닛들의 세트이다. 이 선택적 NAL 유닛은 현재 VVC 사양에서 하나의 신택스 요소, 즉 pic_type만을 포함하고, 이 신택스 요소는 AU에서의 코딩된 픽처들의 모든 슬라이스들에 대한 slice_type 값들을 나타낸다. pic_type가 0과 동일하게 설정되면, AU는 인트라 슬라이스만을 포함한다. 이것이 1과 동일하면, P 및 I 슬라이스들을 포함한다. 이것이 2와 동일하면, B, P 또는 인트라 슬라이스를 포함한다. 이 NAL 유닛은 pic-type의 하나의 신택스 요소만을 포함한다.
표 1
JVET-P2001-vE에서, pic _type는 다음과 같이 정의된다:
"pic_type는 AU 구분자 NAL 유닛을 포함하는 AU에서의 코딩된 픽처들의 모든 슬라이스들에 대한 slice_type 값들이 pic_type의 주어진 값에 대해 표 2에 열거된 세트의 멤버들임을 나타낸다. pic_type의 값은 이 사양의 이 버전에 따르는 비트스트림들에서 0, 1 또는 2와 동일할 것이다. pic_type의 다른 값들은 ITU-T | ISO/IEC에 의해 장래의 이용을 위해 예비된다. 이 사양의 이 버전에 따르는 디코더들은 pic_type의 예비된 값들을 무시할 것이다".
표 2
PH NAL 유닛(608)은 하나의 코딩된 픽처의 슬라이스들의 세트에 공통인 파라미터들을 그룹화하는 픽처 헤더 NAL 유닛이다. 픽처는 픽처의 슬라이스들에 의해 이용되는 AFL 파라미터들, 재정형기 모델 및 스케일링 행렬들을 나타내기 위해 하나 이상의 APS를 참조할 수 있다.
VCL NAL 유닛들(606) 각각은 슬라이스를 포함한다. 슬라이스는 전체 픽처 또는 서브픽처, 단일 타일 또는 복수의 타일 또는 타일의 일부에 대응할 수 있다. 예를 들어, 도 3의 슬라이스는 몇 개의 타일들(620)을 포함한다. 슬라이스는 슬라이스 헤더(610)와, 코딩된 블록들(640)로서 인코딩된 코딩된 픽셀 데이터를 포함하는 원시 바이트 시퀀스 페이로드(RBSP)(611)로 구성된다.
VVC의 현재 버전에서 제안된 바와 같은 PPS의 신택스는 루마 샘플들 내의 픽처의 크기 그리고 또한 타일들 및 슬라이스들 내의 각각의 픽처의 파티셔닝을 지정하는 신택스 요소들을 포함한다.
PPS는 프레임 내의 슬라이스 위치를 결정하는 것을 가능하게 하는 신택스 요소들을 포함한다. 서브픽처가 프레임에서 직사각형 영역을 형성하기 때문에, 파라미터 세트 NAL 유닛들로부터 서브픽처에 속하는 슬라이스들의 세트, 타일들의 부분들 또는 타일들을 결정하는 것이 가능하다.
NAL 유닛 슬라이스
NAL 유닛 슬라이스 계층은 표 3에 나타낸 바와 같이 슬라이스 헤더와 슬라이스 데이터를 포함한다.
표 3
APS
적응 파라미터 세트(APS) NAL 유닛(605)은 신택스 요소들을 보여주는 표 4에 정의된다.
표 4에 나타낸 바와 같이, aps_params_type 신택스 요소에 의해 주어진 3개의 가능한 유형의 APS가 있다:
표 4
이들 3가지 유형의 APS 파라미터는 이하에서 차례로 논의된다.
ALF APS
ALF 파라미터들은 적응적 루프 필터 데이터 신택스 요소들(표 5)에 기술되어 있다. 먼저, ALF 필터들이 루마 및/또는 크로마에 대해 전송되는지 여부를 지정하는데 2개의 플래그가 전용된다. 루마 필터 플래그가 인에이블되는 경우, 클립 값들이 시그널링되는지를 알기 위해 다른 플래그(alf_luma_clip_flag)가 디코딩된다. 이어서, 시그널링된 필터들의 수가 alf_luma_num_filters_signalled_minus1 신택스 요소를 이용하여 디코딩된다. 필요한 경우, ALF 계수 델타 "alf_luma_coeff_delta_idx"를 나타내는 신택스 요소가 각각의 인에이블된 필터에 대해 디코딩된다. 이어서, 각각의 필터의 각각의 계수에 대한 절대값 및 부호가 디코딩된다.
alf_luma_clip_flag가 인에이블되면, 각각의 인에이블된 필터의 각각의 계수에 대한 클립 인덱스가 디코딩된다.
동일한 방식으로, 필요한 경우 ALF 크로마 계수들이 디코딩된다.
표 5
루마 매핑 및 크로마 스케일링 둘 다에 대한 LMCS 신택스 요소들
아래의 표 6은 aps_params_type 파라미터가 1(LMCS_APS)로 설정될 때 적응 파라미터 세트(APS) 신택스 구조에서 코딩되는 모든 LMCS 신택스 요소들을 제공한다. 코딩된 비디오 시퀀스에서 최대 4개의 LMCS APS가 이용될 수 있지만, 주어진 픽처에 대해 단일 LMCS APS만이 이용될 수 있다.
이러한 파라미터들은 루마에 대한 순방향 및 역방향 매핑 함수들 및 크로마에 대한 스케일링 함수를 구축하는데 이용된다.
표 6
스케일링 리스트
APS
스케일링 리스트는 정량화에 이용되는 양자화 행렬을 업데이트할 가능성을 제공한다. VVC에서, 이 스케일링 행렬은 스케일링 리스트 데이터 신택스 요소들(표 7)에 기술된 바와 같이 APS에 있다. 이 신택스는 스케일링 행렬이 플래그 scaling_matrix_for_lfnst_disabled_flag에 기반하여 LFNST(Low Frequency Non-Separable Transform) 툴에 이용되는지를 지정한다. 그 후, 스케일링 행렬을 구축하는데 필요한 신택스 요소들(scaling_list_copy_mode_flag, scaling_list_pred_mode_flag, scaling_list_pred_id_delta, scaling_list_dc_coef, scaling_list_delta_coef)이 디코딩된다.
표 7
픽처 헤더
픽처 헤더는 각각의 픽처의 시작 부분에서 전송된다. 픽처 헤더 표 신택스는 현재 82개의 신택스 요소 및 약 60개의 테스팅 조건 또는 루프를 포함한다. 이것은 그 표준의 이전 드래프트들에서의 이전 헤더들에 비해 매우 크다. 모든 이러한 파라미터들의 완전한 설명은 JVET_P2001-VE에서 발견될 수 있다. 표 8은 현재 픽처 헤더 디코딩 신택스에서의 이러한 파라미터들을 보여준다. 이러한 단순화된 표 버전에서, 일부 신택스 요소들은 판독의 용이성을 위해 그룹화되었다.
디코딩될 수 있는 관련된 신택스 요소들은 다음과 관련된다:
고정 길이를 갖는 3개의 제1 플래그는 비트스트림 내의 픽처 특성들과 관련된 정보를 제공하는 non_reference_picture_flag, gdr_pic_flag, no_output_of_prior_pics_flag이다.
그 후 gdr_pic_flag가 인에이블되면, recovery_poc_cnt가 디코딩된다.
PPS 파라미터들 "PS_parameters()"는 PPS ID 및 필요한 경우 일부 다른 정보를 설정한다. 이것은 3개의 신택스 요소를 포함한다:
서브픽처 파라미터들 Subpic_parameter()는 그들이 SPS에서 인에이블될 때 그리고 서브픽처 id 시그널링이 디스에이블되면 인에이블된다. 이것은 또한 가상 경계들에 대한 일부 정보를 포함한다. 서브픽처 파라미터들에 대해, 8개의 신택스 요소가 정의된다:
그 후, 컬러 평면 id "colour_plane_id"는 시퀀스가 별개의 컬러 평면들을 포함하는 경우 디코딩되고, 존재하는 경우 pic_output_flag가 후속된다.
그 후, 참조 픽처 리스트에 대한 파라미터들 "reference_picture_list_parameters()"가 디코딩되고, 다음의 신택스 요소들을 포함한다:
필요한 경우, 8개의 다른 신택스 요소를 포함하는 참조 픽처 리스트 구조 "ref_pic_list_struct"와 관련된 신택스 요소들의 다른 그룹이 또한 디코딩될 수 있다.
파티셔닝 파라미터 세트 "partitioning_parameters()"는 필요한 경우 디코딩되고 다음의 13개의 신택스 요소를 포함한다:
이러한 파티셔닝 파라미터들 후에, 4개의 델타 QP 신택스 요소 "Delta_QP_Parameters()"는 필요한 경우 디코딩될 수 있다:
pic_joint_cbcr_sign_flag는 그 후 필요한 경우 디코딩되고 3개의 SAO 신택스 요소 세트 "SAO_parameters()"가 뒤따른다:
그 다음, ALF가 SPS 레벨에서 인에이블된다면 ALF APS id 신택스 요소들의 세트가 디코딩된다.
먼저 pic_alf_enabled_present_flag가 디코딩되어 pic_alf_enabled_flag가 디코딩되어야 하는지 여부를 결정한다. pic_alf_enabled_flag가 인에이블되면, ALF는 현재 픽처의 모든 슬라이스들에 대해 인에이블된다.
ALF가 인에이블되면, 루마에 대한 ALF APS id의 양은 pic_num_alf_aps_ids_luma 신택스 요소를 이용하여 디코딩된다. 각각의 APS id에 대해, 루마에 대한 APS id 값은 "pic_alf_aps_id_luma"로 디코딩된다.
크로마 신택스 요소에 대해, pic_alf_chroma_idc가 디코딩되어 ALF가 크로마에 대해, Cr만에 대해, 또는 Cb만에 대해 인에이블되는지 여부를 결정한다. 인에이블되는 경우, 크로마에 대한 APS Id의 값은 pic_alf_aps_id_chroma 신택스 요소를 이용하여 디코딩된다.
ALF APS id 파라미터들의 세트 후에, 픽처 헤더에 대한 양자화 파라미터들이 필요한 경우 디코딩된다:
이어서, 3개의 디블로킹 필터 신택스 요소 세트 "deblocking_filter_parameters()"가 필요한 경우 디코딩된다:
LMCS가 SPS에서 인에이블된 후에 LMCS APS ID 신택스 요소들의 세트가 디코딩된다. 먼저 pic_lmcs_enabled_flag가 디코딩되어 LMCS가 현재 픽처에 대해 인에이블되어 있는지 여부를 결정한다. LMCS가 인에이블되는 경우, Id 값이 pic_lmcs_aps_id로 디코딩된다. 크로마에 대해, pic_chroma_residual_scale_flag만이 디코딩되어 크로마에 대한 방법을 인에이블 또는 디스에이블한다.
스케일링 리스트 세트 APS ID는 그 후 스케일링 리스트가 SPS 레벨에서 인에이블되면 디코딩된다. pic_scaling_list_present_flag가 디코딩되어 현재 픽처에 대해 스케일링 행렬이 인에이블되는지 여부를 결정한다. 그리고, APS ID의 값 pic_scaling_list_aps_id가 그 후 디코딩된다. 스케일링 리스트가 시퀀스 레벨, 즉, SPS 레벨에서 인에이블될 때(sps_scaling_list_enabled_flag가 1과 동일함), 그리고 그것이 픽처 헤더 레벨에서 인에이블되었을 때(pic_scaling_list_present_flag가 1과 동일함), 현재 슬라이스에 대해 스케일링 리스트가 인에이블되는지를 나타내는, 플래그 slice_scaling_list_present_flag가 슬라이스 헤더에서 비트스트림으로부터 추출된다.
마지막으로, 픽처 헤더 확장 신택스 요소들이 필요한 경우 디코딩된다.
표 8
슬라이스 헤더
슬라이스 헤더는 각각의 슬라이스의 시작 부분에서 전송된다. 슬라이스 헤더 표 신택스는 현재 57개의 신택스 요소를 포함한다. 이것은 그 표준의 이전 버전들에서의 이전 슬라이스 헤더에 비해 매우 크다. 모든 슬라이스 헤더 파라미터들의 완전한 설명은 JVET_P2001-VE에서 발견될 수 있다. 표 9는 현재 픽처 헤더 디코딩 신택스에서의 이들 파라미터들을 보여준다. 이 단순화된 표 버전에서, 일부 신택스 요소들은 그 표를 더 판독가능하게 만들기 위해 그룹화되었다.
표 9
먼저, slice_pic_order_cnt_lsb가 디코딩되어 현재 슬라이스의 POC를 결정한다.
그 후, 필요한 경우, slice_subpic_id를 디코딩하여 현재 슬라이스의 서브픽처 id를 결정한다. 그 후, slice_address를 디코딩하여 현재 슬라이스의 어드레스를 결정한다. 그 후, num_tiles_in_slice_minus1은 현재 픽처 내의 타일들의 수가 1보다 크면 디코딩된다.
그 후 slice_type가 디코딩된다.
참조 픽처 리스트 파라미터들의 세트가 디코딩되고; 이들은 픽처 헤더에서의 것들과 유사하다.
슬라이스 유형이 인트라가 아닐 때 그리고 필요한 경우, cabac_init_flag 및/또는 collocated_from_l0_flag 및 collocated_ref_idx가 디코딩된다. 이러한 데이터는 병치된 모션 벡터 및 CABAC 코딩과 관련된다.
동일한 방식으로, 슬라이스 유형이 인트라가 아닐 때, 가중된 예측 파라미터들 pred_weight_table()가 디코딩된다.
slice_quantization_parameters()에서, slice_qp_delta는 필요한 경우 QP 오프셋의 다른 파라미터들 전에 체계적으로 디코딩된다:
slice_cb_qp_offset, slice_cr_qp_offset, slice_joint_cbcr_qp_offset, cu_chroma_qp_offset_enabled_flag.
SAO에 대한 인에이블된 플래그들은 루마 및 크로마 둘 다에 대해, 즉 픽처 헤더에서 시그널링되었던 경우 slice_sao_luma_flag, slice_sao_chroma_flag에 대해 디코딩된다.
그 후, APS ALF ID는 픽처 헤더에서와 유사한 데이터 제한으로, 필요한 경우 디코딩된다.
그 후, 디블로킹 필터 파라미터들은 다른 데이터(slice_deblocking_filter_parameters()) 전에 디코딩된다.
픽처 헤더에서와 같이, ALF APS ID는 슬라이스 헤더의 끝에서 설정된다.
픽처 헤더에서의 APS
표 8에 나타낸 바와 같이, 3개의 툴 ALF, LMCS 및 스케일링 리스트에 대한 APS ID 정보는 픽처 헤더 신택스 요소들 상의 끝에 있다.
스트리밍 애플리케이션들
일부 스트리밍 애플리케이션들은 비트스트림의 특정 부분들만을 추출한다. 이러한 추출들은 (서브픽처로서) 공간적 또는 시간적(비디오 시퀀스의 하위 부분)일 수 있다. 그 후, 이러한 추출된 부분들은 다른 비트스트림들과 병합될 수 있다. 일부 다른 애플리케이션들은 일부 프레임들만을 추출함으로써 프레임 레이트를 감소시킨다. 일반적으로, 이러한 스트리밍 애플리케이션들의 주요 목적은 허용된 대역폭의 최대치를 이용하여 최종 사용자에게 최대 품질을 생성하는 것이다.
VVC에서, APS ID 넘버링은 프레임에 대한 새로운 APS id 번호가 시간적 계층구조에서 상위 레벨에 있는 프레임에 대해 이용될 수 없도록 프레임 레이트 감소를 위해 제한되었다. 그러나, 비트스트림의 부분들을 추출하는 스트리밍 애플리케이션들의 경우, APS ID는 (IRAP로서) 프레임이 APS ID의 넘버링을 리셋하지 않으므로 비트스트림의 하위 부분에 대해 어느 APS가 유지되어야 하는지를 결정하기 위해 추적될 필요가 있다.
LMCS(크로마 스케일링을 이용한 루마 매핑)
크로마 스케일링을 이용한 루마 매핑(LMCS) 기술은 VVC와 같은 비디오 디코더에서 루프 필터들을 적용하기 전에 블록에 적용되는 샘플 값 변환 방법이다.
LMCS는 2개의 서브-툴로 분할될 수 있다. 후술하는 바와 같이, 제1 서브-툴은 루마 블록에 적용되는 반면, 제2 서브-툴은 크로마 블록들에 적용된다:
1) 제1 서브-툴은 적응적 구간 선형 모델들(adaptive piecewise linear models)에 기반한 루마 성분의 인-루프 매핑이다. 루마 성분의 인-루프 매핑은 압축 효율을 향상시키기 위해 동적 범위에 걸쳐 코드워드들을 재분배함으로써 입력 신호의 동적 범위를 조정한다. 루마 매핑은 "매핑된 도메인"으로의 순방향 매핑 함수 및 "입력 도메인"에서 돌아오는 대응하는 역방향 매핑 함수를 이용한다.
2) 제2 서브-툴은 루마-의존적 크로마 잔차 스케일링이 적용되는 크로마 성분들과 관련된다. 크로마 잔차 스케일링은 루마 신호와 그 대응하는 크로마 신호들 사이의 상호작용을 보상하도록 설계된다. 크로마 잔차 스케일링은 현재 블록의 상단 및/또는 좌측 재구성된 이웃 루마 샘플들의 평균 값에 의존한다.
VVC와 같은 비디오 코더에서의 대부분의 다른 툴들과 같이, LMCS는 SPS 플래그를 이용하여 시퀀스 레벨에서 인에이블/디스에이블될 수 있다. 크로마 잔차 스케일링이 인에이블되는지 여부는 또한 픽처 레벨에서 시그널링된다. 루마 매핑이 픽처 레벨에서 인에이블되는 경우, 루마-의존적 크로마 잔차 스케일링이 인에이블되는지 여부를 나타내기 위해 추가 플래그가 시그널링된다. 루마 매핑이 SPS 레벨에서 이용되지 않는 경우, 루마-의존적 크로마 잔차 스케일링은 SPS를 참조하는 모든 픽처들에 대해 완전히 디스에이블된다. 또한, 루마-의존적 크로마 잔차 스케일링은 그 크기가 4 이하인 크로마 블록들에 대해 항상 디스에이블된다. LMCS가 SPS 레벨에서 인에이블되는 경우, LMCS가 현재 픽처에 대해 인에이블되는지 여부를 알기 위해 픽처 헤더에서 플래그 pic_lmcs_enabled_flag가 디코딩된다. LMCS가 픽처 레벨에서 인에이블되는 경우(pic_lmcs_enabled_flag가 1과 동일함), 다른 플래그 slice_lmcs_enabled_flag가 각각의 슬라이스에 대해 디코딩된다. 이 플래그는 픽처 헤더에서 디코딩된 파라미터들을 갖는 현재 슬라이스에 대해 LMCS를 인에이블할지 여부를 나타낸다. 슬라이스 헤더에서는, LMCS와 관련된 APS ID 정보가 없다. 그 결과, LMCS의 인에이블 또는 디스에이블에 관한 정보만이 존재한다.
도 7은 루마 매핑 서브-툴에 대해 전술한 바와 같은 LMCS의 원리를 도시한다. 도 7의 빗금친 블록들은 루마 신호의 순방향 및 역방향 매핑을 포함하는 새로운 LMCS 기능 블록들이다. LMCS를 이용할 때, 일부 디코딩 동작들이 "매핑된 도메인"에서 적용된다는 점에 유의하는 것이 중요하다. 이러한 동작들은 이 도 7에서 파선들의 블록들에 의해 나타내진다. 이들은 통상적으로 역양자화, 역변환, 루마 인트라 예측, 및 루마 잔차로 루마 예측을 추가하는 것으로 구성되는 재구성 단계에 대응한다. 반대로, 도 7의 실선 블록들은 디코딩 프로세스가 원래의(즉, 비-매핑된) 도메인에 적용되는 곳을 나타내고, 이것은 루프 필터링, 예컨대 디블로킹, ALF, 및 SAO, 모션 보상된 예측, 및 참조 픽처들(DPB)로서 디코딩된 픽처들의 저장을 포함한다.
도 8은 도 7과 유사한 도면을 도시하지만, 이번에 이것은 LMCS 툴의 크로마 스케일링 서브-툴에 대한 것이다. 도 8의 빗금친 블록은 루마-의존적 크로마 스케일링 프로세스를 포함하는 새로운 LMCS 기능 블록이다. 그러나, 크로마에서는, 루마 경우에 비해 일부 중요한 차이들이 있다. 여기서, 파선들의 블록에 의해 표현된 역양자화 및 역변환만이 크로마 샘플들에 대해 "매핑된 도메인"에서 수행된다. 인트라 크로마 예측, 모션 보상, 루프 필터링의 모든 다른 단계들은 원래의 도메인에서 수행된다. 도 8에 도시된 바와 같이, 스케일링 프로세스만이 존재하고, 루마 매핑에 대한 것과 같은 순방향 및 역방향 처리가 없다.
구간 선형 모델을 이용한 루마 매핑
루마 매핑 서브-툴은 구간 선형 모델을 이용하고 있다. 이는 구간 선형 모델이 입력 신호 동적 범위를 16개의 동일한 하위 범위로 분리하고, 각각의 하위 범위에 대해, 그 선형 매핑 파라미터들이 그 범위에 할당된 코드워드들의 수를 이용하여 표현된다는 것을 의미한다.
루마 매핑에 대한 시맨틱스
신택스 요소 lmcs_min_bin_idx는 크로마 스케일링을 이용한 루마 매핑(LMCS) 구성 프로세스에서 이용되는 최소 빈 인덱스를 지정한다. lmcs_min_bin_idx의 값은 0 내지 15(경계 포함)의 범위에 있어야 한다.
신택스 요소 lmcs_delta_max_bin_idx는 크로마 스케일링 구성 프로세스를 갖는 루마 매핑에서 이용되는 15와 최대 빈 인덱스 LmcsMaxBinIdx 사이의 델타 값을 지정한다. lmcs_delta_max_bin_idx의 값은 0 내지 15(경계 포함)의 범위에 있어야 한다. LmcsMaxBinIdx의 값은 15 - lmcs_delta_max_bin_idx와 동일하게 설정된다. LmcsMaxBinIdx의 값은 lmcs_min_bin_idx보다 크거나 같아야 한다.
신택스 요소 lmcs_delta_cw_prec_minus1 + 1은 신택스 lmcs_delta_abs_cw[i]의 표현에 이용되는 비트 수를 지정한다.
신택스 요소 lmcs_delta_abs_cw[i]는 i번째 빈에 대한 절대 델타 코드워드 값을 지정한다.
신택스 요소 lmcs_delta_sign_cw_flag[i]는 변수 lmcsDeltaCW[i]의 부호를 지정한다. lmcs_delta_sign_cw_flag[i]가 존재하지 않을 때, 이는 0과 동일한 것으로 추론된다.
루마 매핑을 위한 LMCS 중간 변수 계산
순방향 및 역방향 루마 매핑 프로세스들을 적용하기 위해, 일부 중간 변수들 및 데이터 어레이들이 필요하다.
우선, 변수 OrgCW는 다음과 같이 도출된다:
OrgCW = (1 << BitDepth) / 16
그 다음, i = lmcs_min_bin_idx .. LmcsMaxBinIdx인 변수 lmcsDeltaCW[i]는 다음과 같이 계산된다:
lmcsDeltaCW[i]=(1-2*lmcs_delta_sign_cw_flag[i])*lmcs_delta_abs_cw[i]
새로운 변수 lmcsCW[i]는 다음과 같이 도출된다:
- i = 0 .. lmcs_min_bin_idx - 1에 대해, lmcsCW[i]는 0으로 설정된다.
- i = lmcs_min_bin_idx .. LmcsMaxBinIdx에 대해, 다음이 적용된다:
lmcsCW[i] = OrgCW + lmcsDeltaCW[i]
lmcsCW[i]의 값은 (OrgCW>>3) 내지 (OrgCW<<3 - 1)(경계 포함)의 범위에 있어야 한다.
- i = LmcsMaxBinIdx + 1 .. 15에 대해, lmcsCW[i]는 0과 동일하게 설정된다.
i = 0 .. 16인 변수 InputPivot[i]는 다음과 같이 도출된다:
InputPivot[i] = i*OrgCW
i = 0 .. 16인 변수 LmcsPivot[i], i = 0 .. 15인 변수들 ScaleCoeff[i] 및 InvScaleCoeff[i]는 다음과 같이 계산된다:
순방향 루마 매핑
도 7에 도시된 바와 같이, LMCS가 루마에 적용될 때, predMapSamples[i][j]라고 하는 루마 리매핑된 샘플은 예측 샘플 predSamples[i][j]로부터 획득된다.
predMapSamples[i][j]는 다음과 같이 계산된다:
우선, 인덱스 idxY가 위치(i, j)에서 예측 샘플 predSamples[i][j]로부터 계산된다:
idxY = predSamples[i][j] >> Log2(OrgCW)
이어서, 섹션 0의 중간 변수들 idxY, LmcsPivot[idxY] 및 InputPivot[idxY]를 이용하여 predMapSamples[i][j]가 다음과 같이 도출된다:
루마 재구성 샘플들
재구성 프로세스는 예측된 루마 샘플 predMapSample[i][j] 및 잔차 루마 샘플들 resiSamples[i][j]로부터 획득된다.
재구성된 루마 픽처 샘플 recSamples[i][j]는 다음과 같이 resiSamples[i][j]에 predMapSample[i][j]를 추가함으로써 간단히 획득된다:
이러한 위의 관계에서, 클립 1 함수는 재구성된 샘플이 0과 1 << BitDepth - 1 사이인 것을 확인하기 위한 클리핑 함수이다.
역방향 루마 매핑
도 7에 따라 역방향 루마 매핑을 적용할 때, 처리되고 있는 현재 블록의 각각의 샘플 recSample[i][j]에 대해 다음의 동작들이 적용된다:
우선, 인덱스 idxY가 위치(i,j)에서 재구성 샘플 recSamples[i][j]로부터 계산된다:
역방향 매핑된 루마 샘플 invLumaSample[i][j]는 다음에 기반하여 다음과 같이 도출된다:
이어서, 클리핑 동작을 수행하여 최종 샘플을 얻는다:
크로마 스케일링
크로마 스케일링에 대한 LMCS 시맨틱스
표 6에서의 신택스 요소 lmcs_delta_abs_crs는 변수 lmcsDeltaCrs의 절대 코드워드 값을 지정한다. lmcs_delta_abs_crs의 값은 0 및 7(경계 포함)의 범위에 있어야 한다. 존재하지 않을 때, lmcs_delta_abs_crs는 0과 동일한 것으로 추론된다.
신택스 요소 lmcs_delta_sign_crs_flag는 변수 lmcsDeltaCrs의 부호를 지정한다. 존재하지 않을 때, lmcs_delta_sign_crs_flag는 0과 동일한 것으로 추론된다.
크로마 스케일링을 위한 LMCS 중간 변수 계산
크로마 스케일링 프로세스를 적용하기 위해, 일부 중간 변수들이 필요하다.
변수 lmcsDeltaCrs는 다음과 같이 도출된다:
i = 0 ... 15인 변수 ChromaScaleCoeff[i]는 다음과 같이 도출된다:
크로마 스케일링 프로세스
제1 단계에서, 현재 대응하는 크로마 블록 주위의 재구성된 루마 샘플들의 평균 루마 값을 계산하기 위해 변수 invAvgLuma가 도출된다. 평균 루마는 대응하는 크로마 블록 주위의 좌측 및 상단 루마 블록으로부터 계산된다.
샘플이 이용가능하지 않은 경우, 변수 invAvgLuma는 다음과 같이 설정된다:
섹션 0의 중간 어레이들 LmcsPivot[ ]에 기반하여, 변수 idxYInv는 다음과 같이 도출된다:
변수 varScale는 다음과 같이 도출된다:
변환이 현재 크로마 블록에 적용될 때, 재구성된 크로마 픽처 샘플 어레이 recSamples는 다음과 같이 도출된다:
현재 블록에 대해 변환이 적용되지 않았다면, 다음이 적용된다:
인코더 고려사항
LMCS 인코더의 기본 원리는 그 동적 범위 세그먼트들이 평균 분산보다 더 낮은 코드워드들을 갖는 범위들에 더 많은 코드워드들을 먼저 할당하는 것이다. 이것의 대안적인 공식에서, LMCS의 주요 목표는 평균 분산보다 더 높은 코드워드들을 갖는 그 동적 범위 세그먼트들에 더 적은 코드워드들을 할당하는 것이다. 이러한 방식으로, 픽처의 매끄러운 영역들이 평균보다 더 많은 코드워드들로 코딩될 것이고, 그 반대도 가능하다. APS에 저장되는 LMCS 툴들의 모든 파라미터들(표 6 참조)은 인코더 측에서 결정된다. LMCS 인코더 알고리즘은 로컬 루마 분산의 평가에 기반하고, 전술한 기본 원리에 따라 LMCS 파라미터들의 결정을 최적화한다. 그 후, 최적화는 주어진 블록의 최종 재구성된 샘플들에 대한 최상의 PSNR 메트릭들을 얻기 위해 수행된다.
후술하는 바와 같이, 슬라이스/픽처 헤더의 시작 부분에서 APS ID 정보를 설정함으로써 파싱 복잡도가 감소될 수 있다. 이는 APS ID와 관련된 신택스 요소들이 디코딩 툴들과 관련된 신택스 요소들 전에 파싱되는 것을 허용한다.
픽처 헤더
다음의 설명은 픽처 헤더에 대한 신택스 요소들의 다음의 표의 상세들 또는 대안들을 제공한다. 표 10은 픽처 헤더의 예시적인 수정(위의 표 8 참조)을 나타내고, 여기서 LMCS, ALF 및 스케일링 리스트에 대한 APS ID 정보는 종래 기술의 파싱 문제를 해결하기 위해 픽처 헤더의 시작 부분에 가깝게 설정된다. 이 변경은 취소선 및 밑줄친 텍스트에 의해 나타내진다. 신택스 요소들의 이 표로, APS ID의 추적은 더 낮은 복잡도를 갖는다.
표 10
APS ID 관련 신택스 요소들은 다음 중 하나 이상을 포함할 수 있다:
o LNST 방법을 위한 스케일링 행렬을 인에이블하게 하는 정보를 포함하는 APS 스케일링 리스트
o 클리핑 값들의 시그널링과 관련된 정보를 포함하는 APS ALF 리스트
일 예에서, APS ID 관련 신택스 요소들은 픽처 헤더의 시작 부분에 또는 그 근방에 설정된다.
이 특징의 이점은 유용하지 않은 APS NAL 유닛들을 제거하기 위해 APS ID 이용을 추적할 필요가 있는 스트리밍 애플리케이션들에 대한 복잡도 감소이다.
위에서 논의된 바와 같이, '시작 부분'이라는 표현은 일부 신택스 요소들이 APS ID 관련 신택스 요소들 전에 올 수 있기 때문에 '맨 처음(the very beginning)'을 반드시 의미하지는 않는다. 이에 대해서는 아래에서 차례로 논의된다.
APS ID 관련 신택스 요소들의 세트는 다음 중 하나 이상의 후에 설정된다:
현재 픽처가 참조 픽처로서 결코 이용되지 않는다는 것을 나타내는 신택스 요소(예를 들어, non_reference_picture_flag)이며, 이는, 1과 동일할 때, 그 픽처가 참조 픽처로서 결코 이용되지 않는다는 것을 나타낸다. 이 정보는 많은 스트리밍 애플리케이션들에 유용하므로, APS ID LMCS 신택스 요소들의 세트 전에 이 플래그를 설정하는 것이 바람직하다.
o 현재 픽처가 점진적 디코딩 리프레시 픽처임을 나타내는 신택스 요소(예를 들어, gdr_pic_flag 신택스)이며, 이는, 1과 동일할 때, 현재 픽처가 GDR 픽처임을 나타낸다. 이러한 유형의 픽처들은 비트스트림이 이전 픽처들과 독립적임을 암시한다. 이는 많은 스트리밍 애플리케이션들에 대한 중요한 정보이다. 동일한 이유로, APS ID LMCS 신택스 요소 세트는 gdr_pic_flag가 인에이블되면 디코딩되는 recovery_poc_cnt 신택스 요소 후에 있어야 한다.
디코딩 픽처 버퍼에서의 이전에 디코딩된 픽처들의 변경을 나타내는 신택스 요소(예를 들어, no_output_of_prior_pics_flag)이며, 이는 디코딩된 픽처 버퍼(DBP)에 영향을 미친다. 이것은 많은 애플리케이션들에 대한 중요한 정보이다.
특히 유리한 예에서, APS ID 관련 신택스 요소들의 세트는, 그 디코딩을 위한 조건 없이 고정 길이 코드워드를 갖는 픽처 헤더의 시작 부분에서 신택스 요소들 후에 설정된다. 고정 길이 코드워드는 신택스 요소의 표에서 기술자(descriptor) u(N)를 갖는 신택스 요소들에 대응하고, 여기서 N은 정수 값이다.
현재의 VVC 사양과 비교하여, 이는 non_reference_picture_flag, gdr_pic_flag 및 no_output_of_prior_pics_flag 플래그들에 대응한다.
이것의 이점은, 비트들의 수가 픽처 헤더의 시작 부분에서 항상 동일하기 때문에 이들 제1 코드워드들을 용이하게 우회할 수 있고 대응하는 애플리케이션에 대한 유용한 정보로 직접 가는 스트리밍 애플리케이션들에 대한 것이다. 이와 같이, 디코더는 헤더 내의 동일한 비트 위치에 항상 있기 때문에 헤더로부터 APS ID 관련 신택스 요소들을 직접 파싱할 수 있다.
파싱 복잡도를 감소시키는 변형예에서, APS ID 관련 신택스 요소들의 세트는 다른 헤더로부터의 하나 이상의 값을 필요로 하지 않는 픽처 헤더의 시작 부분에서 신택스 요소들 후에 설정된다. 이러한 신택스 요소들의 파싱은 파싱의 복잡도를 감소시키는 그 파싱을 위한 다른 변수들을 필요로 하지 않는다.
일 변형예에서, APS ID 스케일링 리스트 신택스 요소 세트는 픽처 헤더의 시작 부분에서 설정된다.
이 변형예의 이점은 유용하지 않은 APS NAL 유닛들을 제거하기 위해 APS ID 이용을 추적할 필요가 있는 스트리밍 애플리케이션들에 대한 복잡도 감소이다.
위의 유형들의 APS ID 관련 신택스 요소들은 개별적으로 또는 조합하여 처리될 수 있다는 것을 이해해야 한다. 특히 유리한 조합들의 비-포괄적 리스트가 아래에서 논의된다.
APS ID LMCS 신택스 요소 세트 및 APS ID 스케일링 리스트 신택스 요소 세트는 픽처 헤더의 시작 부분에서 또는 그 근방에서 그리고 선택적으로 스트리밍 애플리케이션들에 대한 유용한 정보 후에 설정된다.
APS ID LMCS 신택스 요소 세트 및 APS ID ALF 신택스 요소 세트는 픽처 헤더의 시작 부분에서 그리고 선택적으로 스트리밍 애플리케이션들에 대한 유용한 정보 후에 설정된다.
APS ID LMCS 신택스 요소 세트, APS ID 스케일링 리스트 신택스 요소 세트 및 APS ID ALF 신택스 요소 세트는 픽처 헤더의 시작 부분에서 또는 그 근방에서 그리고 선택적으로 스트리밍 애플리케이션들에 대한 유용한 정보 후에 설정된다.
일 실시예에서, APS ID 관련 신택스 요소들(APS LMCS, APS 스케일링 리스트, 및/또는 APS ALF)은 저레벨 툴 파라미터들 전에 설정된다.
이것은 각각의 픽처에 대해 상이한 APS ID를 추적할 필요가 있는 일부 스트리밍 애플리케이션들에 대한 복잡도의 감소를 제공한다. 실제로, 저레벨 툴들과 관련된 정보는 슬라이스 데이터의 파싱 및 디코딩을 위해 필요하지만, 디코딩 없이 비트스트림만을 추출하는 이러한 애플리케이션들에 대해서는 필요하지 않다. 저레벨 툴들의 예들이 아래에 제공된다:
양자화 파라미터들의 세트이며; 이들 파라미터들은 슬라이스 데이터 파싱 및 디코딩에 필요하다.
위의 유형들의 APS ID 관련 신택스 요소들은 개별적으로 또는 조합하여 처리될 수 있다는 것을 이해해야 한다. 특히 유리한 조합들의 비-포괄적 리스트가 아래에서 논의된다.
APS ID LMCS 신택스 요소 세트 및 APS ID 스케일링 리스트 신택스 요소 세트는 저레벨 툴 신택스 요소들 전에 설정된다.
APS ID LMCS 신택스 요소 세트 및 APS ID ALF 신택스 요소 세트는 저레벨 툴 신택스 요소들 전에 설정된다.
APS ID LMCS 신택스 요소 세트, APS ID 스케일링 리스트 신택스 요소 세트 및 APS ID ALF 신택스 요소 세트는 저레벨 툴 신택스 요소들 전에 설정된다.
재동기화 픽처들
비트스트림에는 일부 재동기화 프레임들 또는 슬라이스들이 있다. 이러한 프레임들을 이용함으로써, 비트스트림은 이전의 디코딩 정보를 고려하지 않고 판독될 수 있다. 예를 들어, 클린 랜덤 액세스 픽처(CRA 픽처)는 그 디코딩 프로세스에서 인터 예측을 위해 그 자신 이외의 임의의 픽처를 참조하지 않는다. 이것은 이 픽처의 슬라이스가 인트라 또는 IBC라는 것을 의미한다. VVC에서, CRA 픽처는 각각의 VCL NAL 유닛이 CRA_NUT와 동일한 nal unit_type를 갖는 IRAP(Intra Random Access Point) 픽처이다.
VVC에서, 이러한 재동기화 프레임들은 IRAP 픽처들 또는 GDR 픽처들일 수 있다.
그러나, 일부 구성들에 대한 IRAP 또는 GDR 픽처들, 또는 IRAP 슬라이스들은 이전에 디코딩된 APS로부터 유래하는 그 픽처 헤더에서의 APS ID를 가질 수 있다. 따라서, APS ID는 실제 랜덤 액세스 포인트에 대해, 또는 비트스트림이 분할될 때 추적되어야 한다.
이 문제를 개선하는 한 가지 방법은, IRAP 또는 GDR 픽처가 디코딩될 때, 모든 APS ID가 리셋되고/되거나 다른 디코딩된 APS로부터 어떠한 APS도 취해지는 것이 허용되지 않는 것이다. APS는 LMCS 또는 스케일링 리스트 또는 ALF에 대한 것일 수 있다. 따라서, 디코더는 픽처가 재동기화 프로세스와 관련되는지를 결정하고, 그렇다면, 디코딩은 APS ID를 리셋하는 것을 포함한다.
변형예에서, 픽처 내의 하나의 슬라이스가 IRAP일 때, 모든 APS ID들이 리셋된다.
APS ID의 리셋은 디코더가 모든 이전 APS가 더 이상 유효하지 않다는 것을 고려하고 그 결과 어떠한 APS ID 값도 이전 APS를 참조하지 않는다는 것을 의미한다.
이 재동기화 프로세스는 APS ID 정보가 더 쉽게 파싱되고 디코딩될 수 있기 때문에 위의 신택스 구조와 조합할 때 특히 유리하며, 이는 필요할 때 더 빠르고 더 효율적인 재동기화로 이어진다.
실시예(들)
슬라이스 헤더에서의 APS ID 관련 정보
이하의 설명은 슬라이스 헤더에서의 신택스 요소들의 표에 대한 수정에 관련된 실시예들에 대한 것이다. 이 표에서, ALF에 대한 APS ID 정보는 위에서 논의된 파싱 문제를 해결하기 위해 슬라이스 헤더의 시작 부분에 가깝게 설정된다. 표 11에서의 수정된 슬라이스 헤더는 취소선 및 밑줄로 나타내진 수정들과 함께 신택스 요소들의 현재 슬라이스 헤더(위의 표 9 참조)의 설명에 기반한다.
표 11
슬라이스 헤더의 시작 부분에서의 APS ID ALF
표 11에 나타낸 바와 같이, 실시예에서, APS ID ALF 신택스 요소 세트는 슬라이스 헤더의 시작 부분에서 또는 그 근방에서 설정된다. 특히, ALF APS는 클리핑 값들의 시그널링과 관련된 신택스 요소를 적어도 포함한다.
이것은 유용하지 않은 APS NAL 유닛들을 제거하기 위해 APS ID 이용을 추적할 필요가 있는 스트리밍 애플리케이션들에 대한 복잡도 감소를 제공한다.
APS ID ALF 신택스 요소들의 세트는, 파싱 툴 파라미터들 없이 비디오 시퀀스들의 부분들을 파싱 또는 절단 또는 분할 또는 추출할 필요가 있는 스트리밍 애플리케이션들에 유용한 신택스 요소들 후에 설정될 수 있다. 이런 신택스 요소들의 예들이 이하에 제공된다:
현재 슬라이스의 POC를 나타내는 slice_pic_order_cnt_lsb 신택스 요소이다. 이 정보는 많은 스트리밍 애플리케이션들에 유용하므로, APS ID ALF 신택스 요소들의 세트 전에 이 플래그를 설정하는 것이 바람직하다.
현재 슬라이스의 서브픽처 ID를 나타내는 slice_subpic_id 신택스 요소이다. 이 정보는 많은 스트리밍 애플리케이션들에 유용하므로, APS ID ALF 신택스 요소들의 세트 전에 이 플래그를 설정하는 것이 바람직하다.
슬라이스의 어드레스를 나타내는 slice_address 신택스 요소이다. 이 정보는 많은 스트리밍 애플리케이션들에 유용하므로, APS ID ALF 신택스 요소들의 세트 전에 이 플래그를 설정하는 것이 바람직하다.
num_tiles_in_slice_minus 신택스 요소이다. 이 정보는 많은 스트리밍 애플리케이션들에 유용하므로, APS ID ALF 신택스 요소들의 세트 전에 이 플래그를 설정하는 것이 바람직하다.
현재 슬라이스의 유형을 나타내는 slice_type 요소이다. 이 정보는 많은 스트리밍 애플리케이션들에 유용하므로, APS ID ALF 신택스 요소들의 세트 전에 이 플래그를 설정하는 것이 바람직하다.
실시예에서, APS ID ALF 신택스 요소 세트는 ALF APS가 클리핑 값들의 시그널링과 관련된 신택스 요소를 적어도 포함할 때 슬라이스 헤더에서의 저레벨 툴 파라미터들 전에 설정된다.
이것은 각각의 픽처에 대해 상이한 APS ALF APS ID를 추적할 필요가 있는 일부 스트리밍 애플리케이션들에 대한 복잡도 감소를 제공한다. 실제로, 저레벨 툴들과 관련된 정보는 슬라이스 데이터의 파싱 및 디코딩을 위해 필요하지만, 디코딩 없이 비트스트림만을 추출하는 이러한 애플리케이션들에 대해서는 필요하지 않다. 이러한 신택스 요소들의 예들이 아래에 제공된다:
전술한 특징들은 서로 조합하여 제공될 수 있다는 것을 이해해야 한다. 전술한 특정 조합에서와 같이, 그렇게 하는 것은 특정 구현에 적합한 특정 이점들, 예를 들어 증가된 유연성, 또는 '최악의 경우' 예의 지정을 제공할 수 있다. 다른 예들에서, 복잡도 요건들은 (예를 들어) 레이트 감소보다 더 높은 우선순위를 가질 수 있고, 이러한 특징은 개별적으로 구현될 수 있다.
표 11에 도시된 바와 같이, 실시예들에 따르면, 슬라이스 레벨에서의 LMCS의 인에이블 또는 디스에이블에 관련된 정보는 슬라이스 헤더의 시작 부분에 또는 그 근처에 설정된다.
이것은 비유용한 APS NAL 유닛들을 제거하기 위해 APS ID 이용을 추적할 필요가 있는 스트리밍 애플리케이션들에 대한 복잡도 감소를 제공한다. 슬라이스 헤더 내에 LMCS와 관련된 APS ID가 없지만, 이것이 (즉, 플래그를 갖는 슬라이스 레벨에서) 디스에이블될 때, 이는 현재 픽처에 대해 이용되는 APS ID에 영향을 미친다. 예를 들어, 서브픽처 추출을 위해, APS ID는 픽처 헤더에서 전송되어야 하지만, 추출된 서브픽처는 슬라이스 헤더에서 LMCS가 디스에이블될 수 있는 하나의 슬라이스만을 포함할 것이다. 이 APS가 다른 프레임에서 이용되지 않으면, 추출 애플리케이션은 추출된 서브픽처에 대해 필요하지 않기 때문에 관련된 APS ID를 갖는 APS LMCS를 제거해야 한다.
슬라이스 레벨에서 LMCS를 인에이블 또는 디스에이블하는 것에 관련된 플래그는 ALF에 관련된 정보에 근접하게, 그리고 바람직하게는 슬라이스 헤더의 신택스 표에서 이들 ALF 신택스 요소들 뒤에 설정된다. 예를 들어, 표 11에 도시된 바와 같이, LMCS 플래그는 (인에이블될 때) ALF 신택스 요소들에 바로 후속할 수 있다. 따라서, LMCS에 대한 신택스는, 모든 툴 파라미터들을 파싱할 필요 없이, 비디오 시퀀스들의 부분들을 파싱 또는 절단 또는 분할 또는 추출할 필요가 있는, 스트리밍 애플리케이션들에 유용한 신택스 요소들 뒤에 설정(파싱)될 수 있다. 이러한 신택스 요소들의 예들이 전술되었다.
표 11에 도시된 바와 같이, 본 발명의 실시예에서, 슬라이스 레벨에서의 스케일링 리스트의 인에이블 또는 디스에이블과 관련된 정보는 슬라이스 헤더의 시작 부분에 또는 그 근처에 설정된다.
LMCS에 대한 것과 유사한 방식으로, 이것은 비유용한 APS NAL 유닛들을 제거하기 위해 APS ID 이용을 추적할 필요가 있는 스트리밍 애플리케이션들에 대한 복잡도 감소를 제공한다. 슬라이스 헤더 내에 스케일링 리스트와 관련된 APS ID가 없지만, 이것이 (즉, 슬라이스 레벨에서 설정된 플래그와 같은 정보에 의해) 디스에이블될 때, 이는 현재 픽처에 대해 이용되는 APS ID에 영향을 미친다. 예를 들어, 서브픽처 추출을 위해, APS ID는 픽처 헤더에서 전송되어야 하지만, 추출된 서브픽처는 슬라이스 헤더에서 스케일링 리스트가 디스에이블될 수 있는 하나의 슬라이스만을 포함할 것이다. 이 APS가 다른 프레임에서 결코 이용되지 않는 경우, 추출 애플리케이션은 추출된 서브픽처에 대해 필요하지 않기 때문에 관련된 APS ID를 갖는 APS 스케일링 리스트를 제거해야 한다.
슬라이스 레벨에서 스케일링 리스트를 인에이블 또는 디스에이블하는 것에 관련된 플래그는 ALF와 관련된 정보에 근접하게 설정되고, 바람직하게는 슬라이스 헤더의 신택스 표에서 이들 ALF 신택스 요소들 뒤에 그리고 더 바람직하게는 LMCS와 관련된 정보(예를 들어, 슬라이스 레벨에서 LMCS를 인에이블 또는 디스에이블하는 정보) 뒤에 설정된다. 따라서, 스케일링 리스트를 인에이블 또는 디스에이블하는 것에 관련된 플래그는, 모든 툴 파라미터들을 파싱할 필요 없이, 비디오 시퀀스들의 부분들을 파싱 또는 절단 또는 분할 또는 추출할 필요가 있는, 스트리밍 애플리케이션들에 유용한 신택스 요소들 뒤에 설정될 수 있다. 이러한 신택스 요소들의 예들이 전술되었다. 따라서, APS ID ALF 신택스 요소들에 더하여, LMCS 및/또는 스케일링 리스트와 관련된 신택스 요소들의 설정/파싱은 이미 위에서 언급된 저레벨 툴 파라미터들 전에 수행될 수 있다.
실시예에서, 스트리밍 애플리케이션은 올바른 APS를 선택하기 위해 슬라이스 레벨에서 LMCS 플래그(slice_lmcs_enabled_flag)를 살펴보지 않는다. 이전 실시예와 비교하여, 이는 복잡도를 감소시키는데, 그 이유는 슬라이스 헤더가 LMCS에 대해 파싱될 필요가 없기 때문이다. 그러나, 이것은 LMCS에 대한 일부 APS가 디코딩 프로세스에 이용되지 않을지라도 전송되기 때문에 비트레이트를 잠재적으로 증가시킨다. 그러나, 이는 스트리밍 애플리케이션에 달려 있다. 예를 들어, 파일 포맷으로의 비트스트림 캡슐화에서, 픽처 헤더에서 시그널링되는 APS LMCS가 임의의 슬라이스에서 결코 이용되지 않을 가능성이 없다. 즉, 비트스트림 캡슐화에서, APS LMCS가 적어도 하나의 슬라이스에서 이용될 것임을 확신할 수 있다.
실시예에서, 추가로 또는 대안으로, 스트리밍 애플리케이션은 스케일링 리스트와 관련된 올바른 APS를 선택하기 위해 슬라이스 레벨에서 스케일링 리스트(slice_scaling_list_present_flag) 플래그를 살펴보지 않는다. 이전 실시예들에 비해, 슬라이스 헤더가 스케일링 리스트에 대해 파싱될 필요가 없으므로 복잡도가 감소된다. 그러나, 이것은 스케일링 리스트에 대한 일부 APS가 디코딩 프로세스에 이용되지 않을지라도 전송되기 때문에 때때로 비트레이트를 증가시킨다. 그러나, 이는 스트리밍 애플리케이션에 달려 있다. 예를 들어, 파일 포맷으로의 비트스트림 캡슐화에서, 픽처 헤더에서 시그널링되는 APS 스케일링 리스트가 임의의 슬라이스에서 결코 이용되지 않을 가능성이 없다. 즉, 비트스트림 캡슐화에서, APS 스케일링 리스트가 적어도 하나의 슬라이스에서 이용될 것임을 확신할 수 있다.
위의 실시예들에서, 본 발명자들은 이러한 방법들이 적용될 수 있는 툴들로서 LMCS 및 스케일링 리스트를 언급한다. 그러나, 본 발명은 단지 LMCS 및 스케일링 리스트에 제한되지 않는다. 본 발명은 픽처 레벨에서 인에이블될 수 있는 임의의 디코딩 툴 또는 파라미터, 및 획득되지만 그 후 후속하여 슬라이스 레벨에서 디스에이블되는 APS 또는 다른 파라미터들에 적용가능하다.
본 발명의 구현
도 9는 본 발명의 실시예들에 따른, 인코더(150) 또는 디코더(100) 및 통신 네트워크(199) 중 적어도 하나를 포함하는 시스템(191)(195)을 도시한다. 실시예에 따르면, 시스템(195)은 콘텐츠(예를 들어, 비디오/오디오 콘텐츠를 표시/출력 또는 스트리밍하기 위한 비디오 및 오디오 콘텐츠)를 처리하고 이를 사용자에게 제공하기 위한 것이며, 사용자는 예를 들어, 디코더(100)를 포함하는 사용자 단말기 또는 디코더(100)와 통신가능한 사용자 단말기의 사용자 인터페이스를 통해 디코더(100)에 액세스한다. 이러한 사용자 단말기는, (제공된/스트리밍된) 콘텐츠를 사용자에게 제공/표시할 수 있는 컴퓨터, 모바일 폰, 태블릿 또는 임의의 다른 유형의 디바이스일 수 있다. 시스템(195)은 통신 네트워크(200)를 통해 (예를 들어, 더 이른 비디오/오디오가 표시/출력되고 있는 동안 연속적인 스트림 또는 신호의 형태로) 비트스트림(101)을 획득/수신한다. 실시예에 따르면, 시스템(191)은 콘텐츠를 처리하고 처리된 콘텐츠, 예를 들어, 나중에 표시/출력/스트리밍을 위해 처리된 비디오 및 오디오 콘텐츠를 저장하기 위한 것이다. 시스템(191)은 인코더(150)에 의해 수신 및 처리(본 발명에 따른 디블로킹 필터에 의한 필터링을 포함함)되는 이미지들(151)의 원래의 시퀀스를 포함하는 콘텐츠를 획득/수신하고, 인코더(150)는 통신 네트워크(191)를 통해 디코더(100)에 통신될 비트스트림(101)을 생성한다. 이어서, 비트스트림(101)은, 다수의 방식으로 디코더(100)에 통신되고, 예를 들어, 인코더(150)에 의해 미리 생성되고, 사용자가 저장 장치로부터 콘텐츠(즉, 비트스트림 데이터)를 요청할 때까지 (예를 들어, 서버 또는 클라우드 저장소 상에서) 통신 네트워크(200) 내의 저장 장치에 데이터로서 저장될 수 있고, 요청 시에 데이터는 저장 장치로부터 디코더(100)에 통신/스트리밍된다. 시스템(191, 195)은 또한, (예를 들어, 사용자 단말기 상에 표시될 사용자 인터페이스에 대한 데이터를 통신함으로써) 사용자에게, 저장 장치에 저장된 콘텐츠에 대한 콘텐츠 정보(예를 들어, 콘텐츠의 제목 및 콘텐츠를 식별, 선택 및 요청하기 위한 다른 메타/저장 위치 데이터)를 제공/스트리밍하고, 콘텐츠에 대한 사용자 요청을 수신 및 처리하여 요청된 콘텐츠가 저장 장치로부터 사용자 단말기에 통신/스트리밍될 수 있게 하기 위한 콘텐츠 제공 장치를 포함할 수 있다. 대안으로, 인코더(150)는 비트스트림(101)을 생성하고, 사용자가 콘텐츠를 요청할 때 이를 디코더(100)에 직접 통신/스트리밍한다. 그 다음, 디코더(100)는 비트스트림(101)(또는 신호)을 수신하고, 본 발명에 따른 디블로킹 필터에 의한 필터링을 수행하여 비디오 신호(109) 및/또는 오디오 신호를 획득/생성하며, 이는 그 후 사용자에게 요청된 콘텐츠를 제공하기 위해 사용자 단말기에 의해 이용된다.
본 명세서에 설명된 기능들 또는 본 발명에 따른 방법/프로세스의 임의의 단계는 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 임의의 조합으로 구현될 수 있다. 소프트웨어로 구현되는 경우, 단계들/기능들은 하나 이상의 명령어 또는 코드 또는 프로그램, 또는 컴퓨터 판독가능한 매체로서 저장되거나 그를 통해 전송될 수 있고, PC("개인용 컴퓨터"), DSP("디지털 신호 프로세서"), 회로, 회로부, 프로세서 및 메모리, 범용 마이크로프로세서 또는 중앙 처리 유닛, 마이크로제어기, ASIC("주문형 집적 회로"), 필드 프로그래밍가능한 로직 어레이들(FPGA들), 또는 다른 등가의 집적 또는 이산 로직 회로일 수 있는 프로그래밍가능한 컴퓨팅 머신과 같은 하나 이상의 하드웨어 기반 처리 유닛에 의해 실행될 수 있다. 따라서, 본 명세서에서 사용되는 용어 "프로세서"는 전술한 구조 중 어느 하나 또는 본 명세서에 설명된 기술들의 구현에 적합한 임의의 다른 구조를 지칭할 수 있다.
본 발명의 실시예들은 또한 무선 핸드셋, 집적 회로(IC) 또는 JC 세트(예를 들어, 칩셋)를 포함하는 매우 다양한 디바이스들 또는 장치들에 의해 실현될 수 있다. 다양한 구성요소들, 모듈들, 또는 유닛들은 이러한 실시예들을 수행하도록 구성된 디바이스들/장치들의 기능적 양태들을 예시하기 위해 본 명세서에서 설명되지만, 반드시 상이한 하드웨어 유닛들에 의한 실현을 요구하는 것은 아니다. 오히려, 다양한 모듈들/유닛들은 코덱 하드웨어 유닛에 결합되거나, 적절한 소프트웨어/펌웨어와 함께 하나 이상의 프로세서를 포함하는 상호운용적 하드웨어 유닛들의 집합에 의해 제공될 수 있다.
본 발명의 실시예들은, 전술된 실시예들 중 하나 이상의 모듈들/유닛들/기능들을 수행하기 위해 저장 매체 상에 기록된 컴퓨터 실행가능한 명령어들(예를 들어, 하나 이상의 프로그램)을 판독 및 실행하고/하거나 전술된 실시예들 중 하나 이상의 기능들을 수행하기 위한 하나 이상의 처리 유닛 또는 회로를 포함하는 시스템 또는 장치의 컴퓨터에 의해, 그리고 예를 들어, 전술된 실시예들 중 하나 이상의 기능들을 수행하기 위해 저장 매체로부터 컴퓨터 실행가능한 명령어들을 판독 및 실행하고/하거나 전술된 실시예들 중 하나 이상의 기능들을 수행하기 위해 하나 이상의 처리 유닛 또는 회로를 제어함으로써 시스템 또는 장치의 컴퓨터에 의해 수행되는 방법에 의해 실현될 수 있다. 컴퓨터는 컴퓨터 실행가능한 명령어들을 판독 및 실행하기 위해 별개의 컴퓨터들 또는 별개의 처리 유닛들의 네트워크를 포함할 수 있다. 컴퓨터 실행가능한 명령어들은, 예를 들어, 네트워크 또는 유형의 저장 매체를 통해 통신 매체 등의 컴퓨터 판독가능한 매체로부터 컴퓨터에 제공될 수 있다. 통신 매체는 신호/비트스트림/캐리어파일 수 있다. 유형의 저장 매체는, 예를 들어, 하드 디스크, 랜덤 액세스 메모리(RAM), 판독 전용 메모리(ROM), 분산형 컴퓨팅 시스템 저장소, 광학 디스크(예를 들어, 콤팩트 디스크(CD), 디지털 다기능 디스크(DVD), 또는 블루-레이 디스크(BDTM)), 플래시 메모리 디바이스, 메모리 카드 등 중 하나 이상을 포함할 수 있는 "비일시적 컴퓨터 판독가능한 저장 매체"이다. 단계들/기능들 중 적어도 일부는 또한, FPGA("Field-Programmable Gate Array") 또는 ASIC("Application-Specific Integrated Circuit") 등의 머신 또는 전용 구성요소에 의해 하드웨어로 구현될 수 있다.
도 10은 본 발명의 하나 이상의 실시예의 구현을 위한 컴퓨팅 디바이스(2000)의 개략적인 블록도이다. 컴퓨팅 디바이스(2000)는 마이크로컴퓨터, 워크스테이션 또는 경량 휴대용 디바이스와 같은 디바이스일 수 있다. 컴퓨팅 디바이스(2000)는 통신 버스를 포함하고, 이 통신 버스는, 마이크로프로세서와 같은 중앙 처리 유닛(CPU)(2001); 본 발명의 실시예들의 방법의 실행가능한 코드뿐만 아니라, 본 발명의 실시예들에 따른 이미지의 적어도 일부를 인코딩 또는 디코딩하기 위한 방법을 구현하는데 필요한 변수들 및 파라미터들을 기록하도록 적응된 레지스터들을 저장하기 위한 랜덤 액세스 메모리(RAM)(2002) - 그 메모리 용량은, 예를 들어, 확장 포트에 접속된 선택적인 RAM에 의해 확장될 수 있음 -; 본 발명의 실시예들을 구현하기 위한 컴퓨터 프로그램들을 저장하기 위한 판독 전용 메모리(ROM)(2003); 처리될 디지털 데이터가 전송 또는 수신되는 통신 네트워크에 전형적으로 접속되는 네트워크 인터페이스(NET)(2004)에 접속된다. 네트워크 인터페이스(NET)(2004)는 단일 네트워크 인터페이스일 수 있거나, 상이한 네트워크 인터페이스들(예를 들어, 유선 및 무선 인터페이스들, 또는 상이한 종류들의 유선 또는 무선 인터페이스들)의 세트로 구성될 수 있다. 데이터 패킷들은 CPU(2001)에서 실행되는 소프트웨어 애플리케이션의 제어 하에 전송을 위해 네트워크 인터페이스에 기입되거나, 수신을 위해 네트워크 인터페이스로부터 판독되고; 사용자 인터페이스(UI)(2005)는 사용자로부터 입력들을 수신하거나 정보를 사용자에게 표시하는데 이용될 수 있고; 하드 디스크(HD)(2006)는 대용량 저장 디바이스로서 제공될 수 있고; 입력/출력 모듈(IO)(2007)은 비디오 소스 또는 디스플레이와 같은 외부 디바이스들로부터/로 데이터를 수신/전송하는데 이용될 수 있다. 실행가능한 코드는 ROM(2003)에, HD(2006) 상에 또는 예를 들어, 디스크와 같은 이동식 디지털 매체 상에 저장될 수 있다. 변형예에 따르면, 프로그램들의 실행가능한 코드는, 실행되기 전에, 통신 디바이스(2000)의 저장 수단들 중 하나, 예컨대 HD(2006) 내에 저장되기 위해, NET(2004)를 통해, 통신 네트워크에 의해 수신될 수 있다. CPU(2001)는 본 발명의 실시예들에 따른 프로그램 또는 프로그램들의 소프트웨어 코드의 명령어들 또는 부분들의 실행을 제어 및 지시하도록 적응되고, 명령어들은 전술한 저장 수단들 중 하나에 저장된다. 전원이 켜진 후에, CPU(2001)는 그 명령어들이 예를 들어 프로그램 ROM(2003) 또는 HD(2006)로부터 로딩된 후에 소프트웨어 애플리케이션과 관련된 주 RAM 메모리(2002)로부터의 명령어들을 실행할 수 있다. 이러한 소프트웨어 애플리케이션은 CPU(2001)에 의해 실행될 때, 본 발명에 따른 방법의 단계들이 수행되게 한다.
또한, 본 발명의 다른 실시예에 따르면, 컴퓨터, 모바일 폰(셀룰러 폰), 테이블 또는 사용자에게 콘텐츠를 제공/표시할 수 있는 임의의 다른 유형의 디바이스(예를 들어, 디스플레이 장치)와 같은 사용자 단말기에 전술한 실시예에 따른 디코더가 제공된다는 것을 이해한다. 또 다른 실시예에 따르면, 전술한 실시예에 따른 인코더는 인코더가 인코딩할 콘텐츠를 캡처 및 제공하는 카메라, 비디오 카메라 또는 네트워크 카메라(예를 들어, 폐회로 텔레비전 또는 비디오 감시 카메라)를 또한 포함하는 이미지 캡처 장치에 제공된다. 2개의 이러한 예가 도 11 및 도 12를 참조하여 아래에 제공된다.
네트워크 카메라
도 11은 네트워크 카메라(2102) 및 클라이언트 장치(2104)를 포함하는 네트워크 카메라 시스템(2100)을 도시하는 도면이다.
네트워크 카메라(2102)는 이미징 유닛(2106), 인코딩 유닛(2108), 통신 유닛(2110) 및 제어 유닛(2112)을 포함한다.
네트워크 카메라(2102)와 클라이언트 장치(2104)는 네트워크(200)를 통해 서로 통신할 수 있도록 상호 접속된다.
이미징 유닛(2106)은 렌즈 및 이미지 센서(예를 들어, 전하 결합 디바이스(CCD) 또는 상보형 금속 산화물 반도체(CMOS))를 포함하고, 객체의 이미지를 캡처하고 이미지에 기반하여 이미지 데이터를 생성한다. 이 이미지는 정지 이미지 또는 비디오 이미지일 수 있다.
인코딩 유닛(2108)은 전술한 상기 인코딩 방법들을 이용하여 이미지 데이터를 인코딩한다.
네트워크 카메라(2102)의 통신 유닛(2110)은 인코딩 유닛(2108)에 의해 인코딩된, 인코딩된 이미지 데이터를 클라이언트 장치(2104)에 전송한다.
또한, 통신 유닛(2110)은 클라이언트 장치(2104)로부터 명령들을 수신한다. 이러한 명령들은 인코딩 유닛(2108)의 인코딩을 위한 파라미터들을 설정하기 위한 명령들을 포함한다.
제어 유닛(2112)은 통신 유닛(2110)에 의해 수신된 명령들에 따라 네트워크 카메라(2102) 내의 다른 유닛들을 제어한다.
클라이언트 장치(2104)는 통신 유닛(2114), 디코딩 유닛(2116), 및 제어 유닛(2118)을 포함한다.
클라이언트 장치(2104)의 통신 유닛(2114)은 명령들을 네트워크 카메라(2102)에 전송한다.
또한, 클라이언트 장치(2104)의 통신 유닛(2114)은 네트워크 카메라(2102)로부터 인코딩된 이미지 데이터를 수신한다.
디코딩 유닛(2116)은 전술한 상기 디코딩 방법들을 이용하여, 인코딩된 이미지 데이터를 디코딩한다.
클라이언트 장치(2104)의 제어 유닛(2118)은 통신 유닛(2114)에 의해 수신된 사용자 동작 또는 명령들에 따라 클라이언트 장치(2104) 내의 다른 유닛들을 제어한다.
클라이언트 장치(2104)의 제어 유닛(2118)은 디코딩 유닛(2116)에 의해 디코딩된 이미지를 표시하도록 디스플레이 장치(2120)를 제어한다.
클라이언트 장치(2104)의 제어 유닛(2118)은 또한 인코딩 유닛(2108)의 인코딩을 위한 파라미터들을 포함하는, 네트워크 카메라(2102)에 대한 파라미터들의 값들을 지정하기 위해 GUI(Graphical User Interface)를 표시하도록 디스플레이 장치(2120)를 제어한다.
클라이언트 장치(2104)의 제어 유닛(2118)은 또한 디스플레이 장치(2120)에 의해 표시된 GUI에 입력되는 사용자 동작에 따라 클라이언트 장치(2104) 내의 다른 유닛들을 제어한다.
클라이언트 장치(2104)의 제어 유닛(2118)은 디스플레이 장치(2120)에 의해 표시된 GUI에 입력되는 사용자 동작에 따라, 네트워크 카메라(2102)에 대한 파라미터들의 값들을 지정하는 명령들을 네트워크 카메라(2102)에 전송하도록 클라이언트 장치(2104)의 통신 유닛(2114)을 제어한다.
스마트폰
도 12는 스마트폰(2200)을 도시하는 도면이다.
스마트폰(2200)은 통신 유닛(2202), 디코딩 유닛(2204), 제어 유닛(2206), 디스플레이 유닛(2208), 이미지 기록 디바이스(2210) 및 센서들(2212)을 포함한다.
통신 유닛(2202)은 네트워크(200)를 통해, 인코딩된 이미지 데이터를 수신한다.
디코딩 유닛(2204)은 통신 유닛(2202)에 의해 수신된 인코딩된 이미지 데이터를 디코딩한다.
디코딩 유닛(2204)은 전술한 상기 디코딩 방법들을 이용하여, 인코딩된 이미지 데이터를 디코딩한다.
제어 유닛(2206)은 통신 유닛(2202)에 의해 수신된 사용자 동작 또는 명령들에 따라 스마트폰(2200) 내의 다른 유닛들을 제어한다.
예를 들어, 제어 유닛(2206)은 디코딩 유닛(2204)에 의해 디코딩된 이미지를 표시하도록 디스플레이 유닛(2208)을 제어한다.
본 발명이 실시예들을 참조하여 설명되었지만, 본 발명은 개시된 실시예들로 제한되지 않는다는 것을 이해해야 한다. 본 기술분야의 통상의 기술자라면, 첨부된 청구항들에 정의된 바와 같은 본 발명의 범위로부터 벗어나지 않고 다양한 변경들 및 수정이 이루어질 수 있다는 것을 이해할 것이다. (임의의 첨부된 청구항들, 요약서 및 도면들을 포함한) 본 명세서에 개시된 모든 특징들, 및/또는 이와 같이 개시된 임의의 방법 또는 프로세스의 모든 단계들은, 이러한 특징들 및/또는 단계들 중 적어도 일부가 상호 배타적인 조합들을 제외하고는, 임의의 조합으로 결합될 수 있다. (임의의 첨부된 청구항들, 요약서 및 도면들을 포함한) 본 명세서에 개시된 각각의 특징은, 명시적으로 달리 언급되지 않는 한, 동일하거나, 동등하거나 유사한 목적을 제공하는 대안적인 특징들로 대체될 수 있다. 따라서, 명시적으로 달리 언급되지 않는 한, 개시된 각각의 특징은 일반적인 일련의 동등하거나 유사한 특징들의 일 예에 불과하다.
또한, 예를 들어 디코딩 프로세스 동안, 비교, 결정, 평가, 선택, 실행, 수행 또는 고려를 실제로 수행하는 대신에, 표시된 또는 결정된/추론된 결과가 처리에서 이용될 수 있도록, 위에서 설명된 비교, 결정, 평가, 선택, 실행, 수행 또는 고려, 예를 들어, 인코딩 또는 필터링 프로세스 동안 이루어진 선택의 임의의 결과가 비트스트림에서의 데이터, 예를 들어 결과를 나타내는 플래그 또는 데이터에 표시되거나 그로부터 결정가능/추론가능할 수 있음이 이해된다.
청구항들에서, 단어 "포함하는"은 다른 요소들 또는 단계들을 배제하지 않고, 단수형은 복수를 배제하지 않는다. 상이한 특징들이 서로 상이한 종속항들에서 인용된다는 단순한 사실은 이러한 특징들의 조합이 유리하게 이용될 수 없다는 것을 나타내지 않는다.
청구항들에 나타나는 참조 번호들은 예시에 불과하고, 청구항들의 범위를 제한하는 효과를 갖지 않아야 한다.
Claims (26)
- 하나 이상의 슬라이스에 대응하는 비디오 데이터를 포함하는 비트스트림으로부터 비디오 데이터를 디코딩하는 방법으로서,
상기 비트스트림은 하나 이상의 슬라이스를 디코딩할 때 이용될 신택스 요소들을 포함하는 픽처 헤더, 및 슬라이스를 디코딩할 때 이용될 신택스 요소들을 포함하는 슬라이스 헤더를 포함하고;
상기 디코딩하는 것은, 상기 픽처 헤더에서, 디코딩 툴이 픽처에서 이용될 수 있는지를 나타내는 적어도 하나의 신택스 요소를 파싱하는 것 - 상기 디코딩 툴이 상기 픽처에서 이용될 때, 적어도 하나의 APS ID 관련 신택스 요소가 상기 픽처 헤더에서 상기 디코딩 툴에 대해 파싱됨 -;
슬라이스 헤더에서, 다른 디코딩 툴들에 관련된 신택스 요소들 전에 상기 디코딩 툴이 해당 슬라이스에 대해 이용될 것인지 여부를 나타내는 적어도 하나의 신택스 요소를 파싱하는 것; 및
상기 신택스 요소들을 이용하여 상기 비트스트림을 디코딩하는 것
을 포함하는, 방법. - 제1항에 있어서,
APS ID 관련 신택스 요소를 포함하는 다른 디코딩 툴에 대한 파라미터들은, 인에이블될 때, 상기 디코딩 툴이 해당 슬라이스에 대해 이용될 것인지 여부를 나타내는 신택스 요소 전에 파싱되는, 방법. - 제2항에 있어서,
상기 APS ID 관련 신택스 요소는 적응적 루프 필터링 APS ID 신택스 요소와 관련되는, 방법. - 제1항 내지 제3항 중 어느 한 항에 있어서,
상기 디코딩 툴 또는 파라미터가 이용될 것인지를 나타내는 상기 슬라이스 헤더에서의 신택스 요소는 적응적 루프 필터링 파라미터들에 관련된 신택스 요소들에 바로 후속하는, 방법. - 제1항 내지 제4항 중 어느 한 항에 있어서,
상기 디코딩 툴은 LMCS와 관련되는, 방법. - 제5항에 있어서,
상기 디코딩 툴이 이용될 것인지 여부를 나타내는 신택스 요소는 LMCS가 슬라이스에 대해 이용될 것인지를 시그널링하는 플래그인, 방법. - 제1항 내지 제4항 중 어느 한 항에 있어서,
상기 디코딩 툴은 스케일링 리스트와 관련되는, 방법. - 제7항에 있어서,
상기 디코딩 툴이 이용될 것인지 여부를 나타내는 신택스 요소는 상기 스케일링 리스트가 슬라이스에 대해 이용될 것인지를 시그널링하는 플래그인, 방법. - 하나 이상의 슬라이스에 대응하는 비디오 데이터를 포함하는 비트스트림으로 비디오 데이터를 인코딩하는 비디오 데이터의 인코딩 방법으로서,
상기 비트스트림은 하나 이상의 슬라이스를 디코딩할 때 이용될 신택스 요소들을 포함하는 헤더, 및 슬라이스를 디코딩할 때 이용될 신택스 요소들을 포함하는 슬라이스 헤더를 포함하고;
상기 인코딩하는 것은, 픽처 헤더에서, 디코딩 툴이 픽처에서 이용될 수 있는지를 나타내는 적어도 하나의 신택스 요소를 인코딩하는 것 - 상기 디코딩 툴이 상기 픽처에서 이용될 수 있을 때, 적어도 하나의 APS ID 관련 신택스 요소가 상기 픽처 헤더에서 상기 디코딩 툴에 대해 인코딩됨 -; 및
슬라이스 헤더에서, 다른 디코딩 툴들 또는 파라미터들에 관련된 신택스 요소들 전에 상기 디코딩 툴이 해당 슬라이스에 대해 이용될 것인지 여부를 나타내는 적어도 하나의 신택스 요소를 인코딩하는 것
을 포함하는, 방법. - 제9항에 있어서,
APS ID 관련 신택스 요소를 포함하는 추가의 디코딩 툴에 대한 파라미터들은, 인에이블될 때, 상기 디코딩 툴이 해당 슬라이스에 대해 이용될 것인지 여부를 나타내는 신택스 요소 전에 인코딩되는, 방법. - 제10항에 있어서,
상기 APS ID 관련 신택스 요소는 적응적 루프 필터링 APS ID 신택스 요소와 관련되는, 방법. - 제9항 내지 제11항 중 어느 한 항에 있어서,
디코딩 툴이 이용될 것인지를 나타내는 상기 슬라이스 헤더에서의 신택스 요소는 ALF 파라미터들에 바로 후속하도록 인코딩되는, 방법. - 제9항 내지 제12항 중 어느 한 항에 있어서,
상기 디코딩 툴은 LMCS와 관련되는, 방법. - 제13항에 있어서,
상기 디코딩 툴이 이용될 것인지 여부를 나타내는 인코딩된 신택스 요소는 LMCS가 슬라이스에 대해 이용될 것인지를 시그널링하는 플래그인, 방법. - 제9항 내지 제12항 중 어느 한 항에 있어서,
상기 디코딩 툴은 스케일링 리스트와 관련되는, 방법. - 제15항에 있어서,
상기 디코딩 툴이 이용될 것인지 여부를 나타내는 신택스 요소는 상기 스케일링 리스트가 슬라이스에 대해 이용될 것인지를 시그널링하는 플래그인, 방법. - 비트스트림으로부터 비디오 데이터를 디코딩하기 위한 디코더로서,
제1항 내지 제8항 중 어느 한 항의 방법을 수행하도록 구성되는, 디코더. - 비트스트림으로 비디오 데이터를 인코딩하기 위한 인코더로서,
제9항 내지 제16항 중 어느 한 항의 방법을 수행하도록 구성되는, 인코더. - 컴퓨터 프로그램으로서,
실행 시에 제1항 내지 제16항 중 어느 한 항의 방법이 수행되게 하는, 컴퓨터 프로그램. - 하나 이상의 슬라이스에 대응하는 비디오 데이터를 포함하는 비트스트림을 파싱하는 방법으로서 - 상기 비트스트림은 하나 이상의 슬라이스를 디코딩할 때 이용될 신택스 요소들을 포함하는 픽처 헤더, 및 슬라이스를 디코딩할 때 이용될 신택스 요소들을 포함하는 슬라이스 헤더를 포함함 -,
상기 픽처 헤더에서, 디코딩 툴이 슬라이스에서 이용될 수 있는지를 나타내는 적어도 하나의 신택스 요소를 파싱하는 단계 - 상기 디코딩 툴이 픽처에서 이용될 때, 적어도 하나의 APS ID 관련 신택스 요소가 상기 픽처 헤더에서 상기 디코딩 툴에 대해 파싱됨 -;
슬라이스 헤더에서, 다른 디코딩 툴들 또는 파라미터들에 관련된 신택스 요소들 전에 상기 디코딩 툴이 해당 슬라이스에 대해 이용될 것인지 여부를 나타내는 적어도 하나의 신택스 요소를 파싱하지 않는 단계
를 포함하는, 방법. - 제20항에 있어서,
상기 디코딩 툴은 LMCS와 관련되는, 방법. - 제20항에 있어서,
상기 디코딩 툴은 스케일링 리스트와 관련되는, 방법. - 이미지 데이터를 스트리밍하는 방법으로서,
제20항 내지 제22항 중 어느 한 항에 따른 비트스트림을 파싱하는 단계를 포함하는, 방법. - 비디오 데이터를 인코딩 또는 디코딩하는 방법으로서,
픽처 헤더에서, LMCS 또는 스케일링 리스트 디코딩 툴이 픽처에서 이용될 수 있는지를 나타내는 신택스 요소를 인코딩/파싱하는 단계;
슬라이스 헤더에서, 상기 LMCS 또는 스케일링 리스트 디코딩 툴이 다른 디코딩 툴들에 관련된 신택스 요소들 전에 해당 슬라이스에 대해 이용될 것인지 여부를 나타내는 적어도 하나의 신택스 요소를 인코딩/파싱하는 단계
를 포함하는, 방법. - 디바이스로서,
제20항 내지 제24항 중 어느 한 항의 방법을 수행하도록 구성되는, 디바이스. - 컴퓨터 프로그램으로서,
실행 시에 제20항 내지 제24항 중 어느 한 항의 방법이 수행되게 하는, 컴퓨터 프로그램.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB2003219.9 | 2020-03-05 | ||
GB2003219.9A GB2592656B (en) | 2020-03-05 | 2020-03-05 | High level syntax for video coding and decoding |
PCT/EP2021/054931 WO2021175736A1 (en) | 2020-03-05 | 2021-02-26 | High level syntax for video coding and decoding |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20220138008A true KR20220138008A (ko) | 2022-10-12 |
Family
ID=70278218
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020227033338A KR20220138008A (ko) | 2020-03-05 | 2021-02-26 | 비디오 코딩 및 디코딩을 위한 고레벨 신택스 |
Country Status (8)
Country | Link |
---|---|
US (6) | US12003779B2 (ko) |
EP (1) | EP4115618A1 (ko) |
JP (2) | JP7383808B2 (ko) |
KR (1) | KR20220138008A (ko) |
CN (1) | CN115244935A (ko) |
GB (1) | GB2592656B (ko) |
TW (1) | TWI828970B (ko) |
WO (1) | WO2021175736A1 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024090905A1 (ko) | 2022-10-25 | 2024-05-02 | 주식회사 엘지에너지솔루션 | 고분자 고체 전해질 및 이를 포함하는 전고체 전지 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022108421A1 (ko) * | 2020-11-23 | 2022-05-27 | 현대자동차주식회사 | 적응적 대체 모드를 이용한 영상 부호화 및 복호화 방법 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
MX2014003556A (es) * | 2011-09-27 | 2014-05-28 | Koninkl Philips Nv | Aparato y metodo para transformacion de intervalo dinamico de imagenes. |
EP3742735B1 (en) * | 2011-10-19 | 2022-07-06 | Sun Patent Trust | Image decoding method and image decoding apparatus |
WO2020224525A1 (en) * | 2019-05-03 | 2020-11-12 | Mediatek Inc. | Methods and apparatuses of syntax signaling and referencing constraint in video coding system |
US20220353536A1 (en) * | 2019-08-22 | 2022-11-03 | Sharp Kabushiki Kaisha | Systems and methods for signaling picture information in video coding |
JP7415027B2 (ja) * | 2020-02-29 | 2024-01-16 | 北京字節跳動網絡技術有限公司 | ハイレベルシンタックス要素のための制約 |
-
2020
- 2020-03-05 GB GB2003219.9A patent/GB2592656B/en active Active
-
2021
- 2021-02-23 TW TW110106251A patent/TWI828970B/zh active
- 2021-02-26 KR KR1020227033338A patent/KR20220138008A/ko active Search and Examination
- 2021-02-26 CN CN202180018944.XA patent/CN115244935A/zh active Pending
- 2021-02-26 WO PCT/EP2021/054931 patent/WO2021175736A1/en unknown
- 2021-02-26 US US17/909,160 patent/US12003779B2/en active Active
- 2021-02-26 JP JP2022524729A patent/JP7383808B2/ja active Active
- 2021-02-26 EP EP21709909.2A patent/EP4115618A1/en active Pending
-
2023
- 2023-10-27 JP JP2023185011A patent/JP7561256B2/ja active Active
-
2024
- 2024-05-03 US US18/654,672 patent/US20240292037A1/en active Pending
- 2024-05-03 US US18/654,638 patent/US20240305826A1/en active Pending
- 2024-05-03 US US18/654,626 patent/US20240305825A1/en active Pending
- 2024-05-03 US US18/654,610 patent/US20240292036A1/en active Pending
- 2024-05-03 US US18/654,656 patent/US20240298035A1/en active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024090905A1 (ko) | 2022-10-25 | 2024-05-02 | 주식회사 엘지에너지솔루션 | 고분자 고체 전해질 및 이를 포함하는 전고체 전지 |
Also Published As
Publication number | Publication date |
---|---|
TW202135532A (zh) | 2021-09-16 |
US20240305825A1 (en) | 2024-09-12 |
CN115244935A (zh) | 2022-10-25 |
US20230089002A1 (en) | 2023-03-23 |
GB2592656A (en) | 2021-09-08 |
TWI828970B (zh) | 2024-01-11 |
WO2021175736A1 (en) | 2021-09-10 |
GB2592656A9 (en) | 2023-02-01 |
JP7561256B2 (ja) | 2024-10-03 |
GB202003219D0 (en) | 2020-04-22 |
EP4115618A1 (en) | 2023-01-11 |
JP2023507877A (ja) | 2023-02-28 |
US20240305826A1 (en) | 2024-09-12 |
US20240292036A1 (en) | 2024-08-29 |
US20240292037A1 (en) | 2024-08-29 |
GB2592656B (en) | 2023-04-19 |
US12003779B2 (en) | 2024-06-04 |
JP2024001274A (ja) | 2024-01-09 |
JP7383808B2 (ja) | 2023-11-20 |
US20240298035A1 (en) | 2024-09-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7403633B2 (ja) | ビデオの符号化及び復号のための高レベルシンタックス | |
KR20220114602A (ko) | 비디오 코딩 및 디코딩을 위한 고레벨 신택스 | |
JP7475455B2 (ja) | ビデオの符号化および復号のためのハイレベルシンタックス | |
US20230145618A1 (en) | High level syntax for video coding and decoding | |
JP7434580B2 (ja) | ビデオの符号化及び復号のための高レベルシンタックス | |
JP7561256B2 (ja) | ビデオコーディング及び復号のための高レベルシンタックス | |
JP2024105712A (ja) | ビデオの符号化及び復号のための高レベルシンタックス | |
GB2613299A (en) | High level syntax for video coding and decoding | |
GB2613300A (en) | High level syntax for video coding and decoding |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination |