KR20240029026A - 비디오 코딩 중의 시퀀스 레벨 및 슬라이스 레벨 문법 표시 - Google Patents

비디오 코딩 중의 시퀀스 레벨 및 슬라이스 레벨 문법 표시 Download PDF

Info

Publication number
KR20240029026A
KR20240029026A KR1020247001697A KR20247001697A KR20240029026A KR 20240029026 A KR20240029026 A KR 20240029026A KR 1020247001697 A KR1020247001697 A KR 1020247001697A KR 20247001697 A KR20247001697 A KR 20247001697A KR 20240029026 A KR20240029026 A KR 20240029026A
Authority
KR
South Korea
Prior art keywords
value
flag
parameter
slice
encoding
Prior art date
Application number
KR1020247001697A
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 KR20240029026A publication Critical patent/KR20240029026A/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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/167Position within a video image, e.g. region of interest [ROI]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/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

Landscapes

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

Abstract

비디오는 이미지 시퀀스를 포함하고, 각 상기 이미지는 하나 또는 복수 개의 슬라이스를 포함한다. 비트 스트림을 파싱하여 제1 플래그의 값을 획득한다. 상기 제1 플래그의 상기 값이 헤더 확장 파라미터 세트가 존재함을 지시하는지 여부를 결정한다. 상기 제1 플래그의 상기 값이 상기 헤더 확장 파라미터 세트가 존재함을 지시하는 것에 응답하여, 상기 비트 스트림을 파싱하여 제2 플래그의 값을 획득한다. 상기 제2 플래그의 상기 값이 상기 시퀀스에 대해 상기 헤더 확장 파라미터 세트 중의 제1 파라미터를 인에이블하는 것을 지시하는지 여부를 결정한다. 상기 제2 플래그의 상기 값이 상기 제1 파라미터를 인에이블하는 것을 지시하는 것에 응답하여, 상기 비트 스트림을 파싱하여 상기 시퀀스 중의 상기 슬라이스 중 하나에 사용되는 상기 제1 파라미터의 값을 획득한다. 상기 제1 파라미터의 상기 값에 기반하여 상기 슬라이스를 디코딩한다.

Description

비디오 코딩 중의 시퀀스 레벨 및 슬라이스 레벨 문법 표시
본 출원은 2021년 7월 7일에 제출된 발명 명칭이 “REPRESENTATION OF SEVERAL SPS AND SLICE RELATED SYNTAX ELEMENTS FOR VIDEO CODING”인 제63/219, 173호 미국 임시 출원의 우선권 권익에 대하여 요구한다. 선행 출원의 모든 공개 내용은 전체 참조를 통해 본문에 인용된다.
본 발명의 실시예는 비디오 코딩에 관한 것이다.
디지털 비디오는 주류가 되었으며 디지털 텔레비전, 비디오 전화 및 전화 회의를 포함한 다양한 응용 분야에서 널리 사용된다. 이러한 디지털 비디오 응용 프로그램의 실행 가능성은 컴퓨팅 및 통신 기술의 발전 및 효율적인 비디오 인코딩 및 디코딩 기술 덕분이다. 각 비디오 코딩 기술을 사용하여 비디오 데이터를 압축할 수 있음으로써, 하나 또는 복수 개의 비디오 코딩 표준으로 비디오 데이터의 인코딩 및 디코딩을 실행한다. 예시적으로 비디오 코딩 표준은 범용 비디오 코딩(H.266/VVC), 고효율 비디오 코딩(H.265/HEVC), 고급 비디오 코딩(H.264/AVC), 운동 이미지 전문가 그룹(movingpictureexpertgroup, MPEG) 코딩과 같은 예를 포함하지만 이에 한정되지 않는다.
본 발명의 일 측면에 따르면, 비디오 디코딩 방법을 공개한다.
상기 비디오는 이미지 시퀀스를 포함하고, 각 상기 이미지는 하나 또는 복수 개의 슬라이스를 포함한다. 프로세서는 비트 스트림을 파싱하여 제1 플래그의 값을 획득한다. 상기 프로세서는 상기 제1 플래그의 상기 값이 헤더 확장 파라미터 세트가 존재함을 지시하는지 여부를 결정한다. 상기 제1 플래그의 상기 값이 상기 헤더 확장 파라미터 세트가 존재함을 지시하는 것에 응답하여, 상기 프로세서는 상기 비트 스트림을 파싱하여 제2 플래그의 값을 획득한다. 상기 프로세서는 상기 제2 플래그의 상기 값이 상기 이미지 시퀀스에 대해 상기 헤더 확장 파라미터 세트 중의 제1 파라미터를 인에이블하는 것을 지시하는지 여부를 결정한다. 상기 제2 플래그의 상기 값이 상기 이미지 시퀀스에 대해 상기 제1 파라미터를 인에이블하는 것을 지시하는 것에 응답하여, 상기 비트 스트림을 파싱하여 상기 이미지 시퀀스 중의 상기 슬라이스 중 하나에 사용되는 상기 제1 파라미터의 값을 획득한다. 상기 프로세서는 상기 슬라이스에 사용되는 상기 제1 파라미터의 상기 값에 기반하여 상기 슬라이스를 디코딩한다.
본 발명의 다른 일 측면에 따르면, 비디오 디코딩 시스템은 명령어를 저장하도록 구성된 메모리 및 상기 메모리에 커플링된 프로세서를 포함한다. 상기 비디오는 이미지 시퀀스를 포함하고, 각 상기 이미지는 하나 또는 복수 개의 슬라이스를 포함한다. 상기 프로세서는 상기 명령어를 실행하는 경우, 비트 스트림을 파싱하여 제1 플래그의 값을 획득하도록 구성된다. 상기 프로세서는 또한 상기 명령어를 실행하는 경우, 상기 제1 플래그의 상기 값이 헤더 확장 파라미터 세트가 존재함을 지시하는지 여부를 결정하고, 상기 제1 플래그의 상기 값이 상기 헤더 확장 파라미터 세트가 존재함을 지시하는 것에 응답하여, 상기 비트 스트림을 파싱하여 제2 플래그의 값을 획득하도록 구성된다. 상기 프로세서는 또한 상기 명령어를 실행하는 경우, 상기 제2 플래그의 상기 값이 상기 이미지 시퀀스에 대해 상기 헤더 확장 파라미터 세트 중의 제1 파라미터를 인에이블하는 것을 지시하는지 여부를 결정하고, 상기 제2 플래그의 상기 값이 상기 이미지 시퀀스에 대해 상기 제1 파라미터를 인에이블하는 것을 지시하는 것에 응답하여, 상기 비트 스트림을 파싱하여 상기 이미지 시퀀스 중의 상기 슬라이스 중 하나에 사용되는 상기 제1 파라미터의 값을 획득하도록 구성된다. 상기 프로세서는 또한 상기 명령어를 실행하는 경우, 상기 슬라이스에 사용되는 상기 제1 파라미터의 상기 값에 기반하여 상기 슬라이스를 디코딩한다.
본 발명의 다른 일 측면에 따르면, 비디오 인코딩 방법을 공개한다. 상기 비디오는 이미지 시퀀스를 포함하고, 각 상기 이미지는 하나 또는 복수 개의 슬라이스를 포함한다. 프로세서는 상기 이미지 시퀀스 중의 적어도 하나의 상기 슬라이스의 헤더 확장 파라미터 세트 중의 제1 파라미터의 값을 결정한다. 상기 프로세서는 상기 제1 파라미터의 상기 값에 기반하여 상기 헤더 확장 파라미터 세트가 존재하는지 여부를 지시하기 위한 제1 플래그의 값을 결정한다. 상기 제1 파라미터의 상기 값에 기반하여 상기 이미지 시퀀스에 대해 상기 제1 파라미터를 인에이블하는지 여부를 지시하기 위한 제2 플래그의 값을 결정한다. 상기 프로세서는 상기 제1 파라미터의 상기 값에 기반하여 상기 적어도 하나의 슬라이스를 비트 스트림에 인코딩한다. 상기 프로세서는 상기 제1 플래그의 상기 값, 상기 제2 플래그의 상기 값 및 상기 제1 파라미터의 상기 값을 상기 비트 스트림에 인코딩한다.
본 발명의 다른 일 측면에 따르면, 비디오 인코딩 시스템은 명령어를 저장하도록 구성된 메모리 및 상기 메모리에 커플링된 프로세서를 포함한다. 상기 비디오는 이미지 시퀀스를 포함하고, 각 상기 이미지는 하나 또는 복수 개의 슬라이스를 포함한다. 상기 프로세서는 상기 명령어를 실행하는 경우, 상기 이미지 시퀀스 중의 적어도 하나의 상기 슬라이스의 헤더 확장 파라미터 세트 중의 제1 파라미터의 값을 결정하도록 구성된다. 상기 프로세서는 또한 상기 명령어를 실행하는 경우, 상기 제1 파라미터의 상기 값에 기반하여 헤더 확장 파라미터 세트가 존재하는지 여부를 지시하기 위한 제1 플래그의 값을 결정하도록 구성된다. 상기 프로세서는 또한 상기 명령어를 실행하는 경우, 상기 제1 파라미터의 상기 값에 기반하여 상기 이미지 시퀀스에 대해 상기 제1 파라미터를 인에이블하는지 여부를 지시하기 위한 제2 플래그의 값을 결정하도록 구성된다. 상기 프로세서는 또한 상기 명령어를 실행하는 경우, 상기 제1 파라미터의 상기 값에 기반하여 상기 적어도 하나의 슬라이스를 비트 스트림에 인코딩하고, 상기 제1 플래그의 상기 값, 상기 제2 플래그의 상기 값 및 상기 제1 파라미터의 상기 값을 상기 비트 스트림에 인코딩한다.
이러한 설명성 실시예에 대한 언급은 본 발명을 한정하거나 정의하는 것이 아니라 이해에 도움이 되는 예를 제공하는 것을 목적으로 한다. 명세서에 부가 실시예가 상세히 설명되어 있으며, 아래에서는 추가적인 설명을 제공한다.
본문에 통합되고 명세서의 일부분으로 형성되는 첨부 도면은, 본 발명의 실시예를 도시하고, 명세서와 함께 추가로 본 발명의 원리를 해석하는데 사용됨으로써, 관련 분야의 기술자로 하여금 본 발명을 제작 및 사용하도록 한다.
도 1은 본 발명의 일부 실시예에 따른 예시적 인코딩 시스템의 블록도이다.
도 2는 본 발명의 일부 실시예에 따른 예시적 디코딩 시스템의 블록도이다.
도 3은 본 발명의 일부 실시예에 따른 도 1의 인코딩 시스템의 예시적 인코더의 상세한 블록도이다.
도 4는 본 발명의 일부 실시예에 따른 도 2의 디코딩 시스템의 예시적 디코더의 상세한 블록도이다.
도 5a는 본 발명의 일부 실시예에 따른 이미지 시퀀스로 분할된 예시적 비디오이다.
도 5b는 본 발명의 일부 실시예에 따른 슬라이스로 분할된 예시적 이미지이다.
도 5c는 본 발명의 일부 실시예에 따른 코딩 트리 유닛(codingtreeunit, CTU)로 분할된 예시적 슬라이스이다.
도 5d는 본 발명의 일부 실시예에 따른 코딩 유닛(codingunit, Cu)으로 분할된 예시적 CTU이다.
도 6은 본 발명의 일부 실시예에 따른 규칙 잔차 코딩(regularresidualcoding, RRC)을 사용하여 인코딩된 예시적 변환 블록이다.
도 7은 RRC 중의 인코딩 채널이다.
도 8a는 본 발명의 일부 실시예에 따른 RRC 중의 일 예시적 하이 쓰루풋 모드이다.
도 8b는 본 발명의 일부 실시예에 따른 RRC 중의 다른 일 예시적 하이 쓰루풋 모드이다.
도 8c는 본 발명의 일부 실시예에 따른 변환 유닛(transformunit, TU) 인코딩 중의 다른 일 예시적 하이 쓰루풋 모드이다.
도 8d는 본 발명의 일부 실시예에 따른 TU 인코딩 중의 예시적 하이 쓰루풋 모드이다.
도 9는 본 발명의 일부 실시예에 따른 예시적 비디오 디코딩 방법의 흐름도이다.
도 10은 본 발명의 일부 실시예에 따른 예시적 비디오 인코딩 방법의 흐름도이다.
첨부 도면을 참조하여 본 발명의 실시예를 설명한다.
일부 구성 및 배치에 대해 논의했지만 이는 설명의 목적일 뿐임을 이해해야 한다. 관련 분야의 기술자는 본 발명의 정신 및 범위를 벗어나지 않는 전제 하에, 다른 구성 및 배치를 사용할 수 있음을 인식할 것이다. 관련 분야의 기술자의 경우, 본 발명은 다른 응용 프로램에서도 사용할 수 있는 것은 명백한 것이다.
유의해야 할 것은, 명세서에 언급된 “하나의 실시예”, “일 실시예”, “일 예시적 실시예”, “일부 실시예”, “특정된 실시예”는 설명된 실시예가 특정된 특징, 구조 또는 특성을 포함할 수 있는 것을 지시할 수 있지만, 각 실시예가 모두 상기 특정된 특징, 구조 또는 특성을 포함하는 것은 아니다. 또한, 이러한 문구는 동일한 실시예를 지칭하는 것은 아니다. 더 나아가, 실시예와 결합하여 특정된 특징, 구조 또는 특성을 설명하는 경우, 명확하게 설명되었는지 여부에 관계없이, 관련 분야의 기술자의 지식 범위 내에서 다른 실시예와 결합하는 것을 통해 상기 특징, 구조 또는 특성을 구현한다.
일반적으로, 컨텍스트 중의 용법에 따라 적어도 부분적으로 용어를 이해할 수 있다. 예를 들어, 본문에서 사용되는 용어“하나 또는 복수 개”는 적어도 부분적으로 컨텍스트에 따라 결정되며, 단수적 의미의 모든 특징, 구조 또는 특성을 설명하는데 사용될 수 있거나, 복수적 의미의 특징, 구조 또는 특성의 조합을 설명하는데 사용할 수 있다. 마찬가지로, “일”, “하나” 또는 “상기 ”와 같은 용어는 적어도 부분적으로 컨텍스트에 따라 결정되며, 단수 용법 또는 복수 용법을 전달하는 것으로 이해될 수 있다. 또한, “기반”이라는 용어는 반드시 일련의 배타적 요소를 전달하기 위한 것으로 이해될 필요는 없지만, 반드시 명확하게 설명되지 않는 적어도 부분적으로 컨텍스트에 따르는 추가 요소의 존재를 허용할 수 있다.
현재 각 장치 및 방법을 참조하여 비디오 코딩 시스템의 각 측면을 설명한다. 이러한 장치 및 방법은 아래의 상세한 설명에서 설명되고, 각 모듈, 컴포넌트, 회로, 단계, 작동, 과정, 알고리즘(“소자”로 총칭됨) 등을 통해 도면에 도시된다. 전자 하드웨어, 펌웨어, 컴퓨터 프로그램 또는 이들의 임의의 조합을 사용하여 이러한 소자를 구현할 수 있다. 이러한 소자가 하드웨어, 펌웨어 또는 소프트웨어로 구현될지는 전체 시스템에 가하는 특정 응용 프로그램 및 설계 제약에 따라 결정된다.
본문에 설명된 기술은 비디오 코딩 응용 프로그램에 사용될 수 있다. 본문에 설명된 바와 같이, 비디오 코딩은 비디오에 대해 인코딩 및 디코딩을 수행하는 것을 포함한다. 블록을 유닛으로 하여 비디오의 인코딩 및 디코딩을 수행할 수 있다. 예를 들어, 인코딩 블록, 변환 블록 또는 예측 블록에서 변환, 양자화, 예측, 루프 필터링, 재구축 등과 같은 인코딩/디코딩 과정을 실행할 수 있다. 본문에 설명된 바와 같이, 인코딩될/디코딩될 블록은 “현재 블록”으로 지칭된다. 예를 들어, 현재 인코딩/디코딩 과정에 따라, 현재 블록은 코딩 블록, 변환 블록 또는 예측 블록으로 표시될 수 있다. 또한, 이해해야 할 것은, 본 발명에서 사용되는 용어 “유닛” 은 특정된 인코딩/디코딩 과정을 실행하는 기본 유닛을 지시하기 위한 것이고, 용어 “블록”은 미리 결정된 크기의 샘플 어레이를 지시하기 위한 것이다. 달리 명시되지 않는 한, “블록” 및 “유닛”은 호환 사용할 수 있다.
비디오 인코딩에 있어서, 양자화를 사용하여 변환된 또는 변환되지 않은 비디오 신호의 동적 범위를 줄임으로써, 더욱 적은 비트를 사용하여 비디오 신호를 표시하는데 용이하다. 양자화 이전에, 특정된 위치의 변환된 또는 변환되지 않은 비디오 신호는 “계수”로 지칭된다. 양자화 이후, 상기 계수의 양자화 값은 “양자화 레벨” 또는 “레벨”로 지칭된다. 본 발명에 있어서, 하나의 위치의 양자화 레벨은 상기 위치에서의 계수의 양자화 레벨을 의미한다. 비디오 인코딩에 있어서, 잔차 인코딩은 복수 개의 위치의 양자화 레벨을 비트 스트림으로 인코딩하기 위한 것이다. 양자화 이후, N×M 인코딩 블록의 경우, N×M 개의 양자화 레벨이 존재한다. 이 N×M 개의 양자화 레벨은 0값 또는 0이 아닌값일 수 있다. 0이 아닌 레벨이 이진법이 아닌 경우, 이진화 방법을 사용하여 0이 아닌 레벨을 추가로 이진법 표시(예를 들어, 이진법 bin)로 전환(예를 들어, 이진화)한다. 다음, 인코딩 알고리즘(예를 들어, 엔트로피 인코딩 알고리즘)을 사용하여 이진법 표시(예를 들어, 이진법 bin)를 비트 스트림으로 압축한다. 이진화 방법의 예는 결합 결단 라이스 인코딩(truncatedRice, TR), 유한 k차 지수 콜럼버스 인코딩(Exp-Golomb, EGk) 이진화 및 k 차 Exp-Golomb 이진화와 같은 콜럼브라이스 인코딩(Golomb-Rice) 이진화를 포함하지만 이에 한정되지 않는다. 엔트로피 인코딩 알고리즘의 예는 가변 길이 인코딩(variable-lengthcoding, VLC) 방안, 컨텍스트 적응형 VLC 방안(context-adaptiveVLCscheme, CAVLC), 산술 인코딩 방안, 이진화, 컨텍스트 적응형 이진법 산술 인코딩(contextadaptivebinaryarithmeticcoding, CABAC), 문법 기반 컨텍스트 적응형 이진법 산술 인코딩(syntax-basedcontext-adaptivebinaryarithmeticcoding, SBAC), 확률 간격 구획 엔트로피(probabilityintervalpartitioningentropy, PIPE) 인코딩 또는 다른 엔트로피 인코딩 기술을 포함하지만 이에 한정되지 않는다.
레벨(또는 특정된 경우에 따라 계수)의 표시 외에, 비디오 인코딩에 사용되는 다른 정보(예를 들어, 문법 요소)의 표시는 비트 스트림에 인코딩/기입될 수도 있다. 비디오 인코딩은 비디오를 상이한 단편(예를 들어, 시퀀스, 이미지, 슬라이스 등)으로 분할하는 것을 통해 상이한 레벨에서 조직되기 때문에, 문법 요소의 표시도 상응한 헤더 정보와 같이 상이한 레벨(예를 들어, 시퀀스 레벨, 이미지 레벨, 슬라이스 레벨)에 배치된다. 또한, 비디오 인코딩 중의 일부 문법 요소를 파싱하려면 복수 개의 조건 검사가 필요할 수 있고, 이는 문법 요소 표시를 조직 및 파싱하는 복잡도를 추가로 증가한다.
본 발명은 다양한 방안을 제공하여, 비디오 인코딩 중의 문법 요소의 표시를 조직 및 파싱하는 효율을 향상시키고 복잡도를 저하시킨다. 본 발명의 일부 측면에 따르면, 상이한 레벨의 각 문법 요소(예를 들어, 시퀀스 레벨 플래그 및 슬라이스 레벨 플래그)와 상이한 레벨의 상응한 조건 검사를 결합하여, 특정된 선택 가능한 파라미터(예를 들어, 헤더 확장 파라미터)를 단순하고 효과적인 방식으로 조직 및 파싱하는데 사용할 수 있다. 일부 실시예에 있어서, 플래그는 헤더 확장 파라미터 세트가 존재함을 지시하기 위한 것이다. 헤더 확장 파라미터는 일부 이미지 시퀀스와 연관될 수 있지만, 다른 이미지 시퀀스와 연관되지 않는 다양한 파라미터를 포함할 수 있다. 일부 실시예에 있어서, 상기 헤더 확장 파라미터 세트가 존재하면, 시퀀스 레벨 플래그는 상기 헤더 확장 파라미터 세트 중의 각 파라미터에 대해 비디오 중의 특정된 이미지 시퀀스에 대해 상응한 파라미터를 인에이블하는지 여부를 지시한다. 일부 실시예에 있어서, 시퀀스 레벨에서 파라미터를 인에이블하면, 슬라이스 레벨 문법 요소는 각 파라미터에 대해 이미지 시퀀스 중의 특정된 슬라이스를 인코딩/디코딩하는데 사용되는 파라미터의 값을 지시하기 위한 것이다.
본 발명의 일부 측면에 따르면, 동일한 레벨의 동일한 조건 검사에서의 상이한 문법 요소의 표시를 그룹화하여, 조건 검사의 개수를 줄임으로써, 추가로 상기 방안을 단순화할 수 있다.
도 1은 본 발명의 일부 실시예에 따른 예시적 인코딩 시스템(100)의 블록도이다. 도 2는 본 발명의 일부 실시예에 따른 예시적 디코딩 시스템(200)의 블록도이다. 시스템(100) 또는 시스템(200)은 컴퓨터 및 무선 통신 기기와 같은 데이터 처리를 수행할 수 있는 각 시스템 및 장치에 적용 또는 집적될 수 있다. 예를 들어, 시스템(100) 또는 시스템(200)은 휴대폰, 데스크톱 컴퓨터, 랩톱 컴퓨터, 태블릿 컴퓨터, 차량용 컴퓨터, 게임 콘솔, 프린터, 포지셔닝 기기, 웨어러블 전자 기기, 지능형 센서, 가상 현실(virtualreality, VR) 기기, 증강 현실(argumentreality, AR) 기기 또는 데이터 처리 능력을 구비하는 다른 적절한 전자 기기의 전체 또는 일부일 수 있다. 도 1 및 도 2에 도시된 바와 같이, 시스템(100) 또는 시스템(200)은 프로세서(102), 메모리(104) 및 인터페이스(106)를 포함할 수 있다. 이러한 컴포넌트는 버스를 통해 상호 연결되도록 표시되지만, 다른 연결 타입도 허용한다. 이해해야 할 것은, 시스템(100) 또는 시스템(200)은 본문에 설명된 기능을 실행하는데 사용되는 다른 적절한 컴포넌트를 포함할 수 있다.
프로세서(102)는 그래픽 처리 유닛(graphicprocessingunit, GPU), 이미지 신호 프로세서(imagesignalprocessor, ISP), 중앙 처리 유닛(CPU), 디지털 신호 프로세서(DSP), 텐서 처리 유닛(tensorprocessingunit, TPU), 시각 처리 유닛(visionprocessingunit, VPU), 신경 처리 유닛(neuralprocessingunit, NPU), 시너지 처리 유닛(synergisticprocessingunit, SPU) 또는 물리 처리 유닛(physicsprocessingunit, PPU), 마이크로 컨트롤러 유닛(microcontrollerunit, MCU), 특수 집적 회로(ASIC), 현장 프로그래머블 게이트 어레이(FPGA), 프로그래머블 논리 디바이스(programmablelogicdevice, PLD), 상태 기계, 게이트 제어 논리, 분립 하드웨어 회어 및 본 발명에 설명된 다양한 기능을 실행하도록 구성된 다른 적절한 하드웨어와 같은 마이크로 프로세서를 포함할 수 있다. 도 1 및 도 2는 하나의 프로세서만을 도시하지만, 복수 개의 프로세서를 포함할 수 있음을 이해할 수 있다. 프로세서(102)는 하나 또는 복수 개의 처리 코어를 구비하는 하드웨어 기기일 수 있다. 프로세서(102)는 소프트웨어를 실행할 수 있다. 소프트웨어는 소프트웨어, 펌웨어, 미들 웨어, 마이크로코드, 하드웨어 설명 언어 또는 다른 명령어, 명령어 세트, 코드, 코드 세그먼트, 프로그램 코드, 프로그램, 서브 프로그램, 소프트웨어 모듈, 응용 프로그램, 소프트웨어 응용 프로그램, 소프트웨어 패키지, 루틴, 서브 루틴, 대상, 실행 가능한 파일, 실행 스레드, 과정, 기능 등을 의미하는 것으로 광범위하게 파싱되어야 한다. 소프트웨어는 파싱 언어, 컴파일 언어 또는 기계 코드로 작성된 컴퓨터 명령어를 포함할 수 있다. 소프트웨어라는 범주에서, 다른 기술을 사용하여 하드웨어를 지도하는 것을 허용한다.
메모리(104)는 스토리지(메인 메모리/시스템 메모리로도 지칭됨) 및 메모리(보조 메모리로도 지칭됨)를 광범위하게 포함할 수 있다. 예를 들어, 메모리(104)는 랜덤 액세스 메모리(RAM), 읽기 전용 메모리(ROM), 정적 RAM(SRAM), 동적 RAM(DRAM), 강유전체 RAM(FRAM), 전기적 소거 프로그램 가능한 ROM(EEPROM), 광디스크 읽기 전용 메모리(CD-ROM) 또는 다른 광디스크 메모리, 하드 디스크 드라이브(harddiskdrive, HDD), 디스크 메모리 또는 다른 자성 저장 기기, 플래시 메모리 드라이브, 솔리드 스테이트 드라이브(solid-statedrive, SSD), 또는 프로세서(102)에 의해 액세스되고 실행 가능한 명령어의 형태로 캐리되거나 원하는 프로그램 코드를 저장하는 모든 다른 매체를 포함할 수 있다. 넓은 의미에서 말하면, 메모리(104)는 비일시적 컴퓨터 판독 가능한 매체와 같은 모든 컴퓨터 판독 가능한 매체로 구현될 수 있다. 도 1 및 도 2는 하나의 메모리만을 도시하지만, 복수 개의 메모리를 포함할 수 있음을 이해할 수 있다.
인터페이스(106)는 광범위하게 데이터 인터페이스 및 통신 인터페이스를 포함할 수 있고, 상기 통신 인터페이스는 다른 외부 네트워크 소자로부터 정보를 수신 및 송신하는 과정에서 신호를 수신 및 송신하도록 구성된다. 예를 들어, 인터페이스(106)는 입력/출력(I/O) 기기 및 유선 또는 무선 트랜시버를 포함할 수 있다. 도 1 및 도 2는 하나의 메모리만을 도시하지만, 복수 개의 인터페이스를 포함할 수 있음을 이해할 수 있다.
프로세서(102), 메모리(104) 및 인터페이스(106)는 비디오 코딩 기능을 실행하기 위해 시스템(100) 또는 시스템(200)에서 다양한 형태로 구현될 수 있다. 일부 실시예에 있어서, 시스템(100) 또는 시스템(200)의 프로세서(102), 메모리(104) 및 인터페이스(106)는 하나 또는 복수 개시스템 온 칩(system-on-chip, SOC)에서 구현(예를 들어, 집적)된다. 하나의 예에 있어서, 프로세서(102), 메모리(104) 및 인터페이스(106)는 응용 프로세서(applicationprocessor, AP) SoC에 집적될 수 있고, 상기 APSoC는 오퍼레이팅 시스템(operatingsystem, OS) 환경 응용 프로그램 처리를 처리할 수 있고, 비디오 인코딩 및 디코딩 응용 프로그램을 작동하는 것을 포함한다. 다른 하나의 예에 있어서, 프로세서(102), 메모리(104) 및 인터페이스(106)는 비디오 코딩에 사용되는 전용 프로세서 칩에 집적될 수 있고, 예를 들어 실시간 오퍼레이팅 시스템(real-timeoperatingsystem, RTOS) 중의 이미지 및 비디오 처리에 전용 GPU 또는 ISP 칩에 집적될 수 있다.
도 1에 도시된 바와 같이, 인코딩 시스템(100)에 있어서, 프로세서(102)는, 인코더(101)와 같은 하나 또는 복수 개 모듈을 포함할 수 있다. 도 1은 인코더(101)가 하나의 프로세서(102) 내에 위치하는 것을 도시하지만, 이해할 수 있는 것은, 인코더(101)는 하나 또는 복수 개의 서브 모듈을 포함할 수 있지만, 이러한 서브 모듈은 서로 가깝거나 멀리 떨어진 프로세서에서 구현될 수 있다. 인코더(101)(및 모든 상응한 서브 모듈 또는 서브 유닛)는 프로세서(102)의 하드웨어 유닛(예를 들어, 집적 회로의 일부)일 수 있고, 상기 하드웨어 유닛은 프로세서(102)가 프로그램의 적어도 일부(즉 명령어)를 실행하는 것을 통해 구현하는 다른 컴포넌트 또는 소프트웨어 유닛과 함께 사용하도록 설계된다. 프로그램의 명령어는 메모리(104)와 같은 컴퓨터 판독 가능한 매체에 저장될 수 있고, 프로세서(102)에 의해 실행되는 경우, 상기 명령어는 아래에서 상세히 설명된 이미지 구획, 인터 예측, 인트라 예측, 변환, 양자화, 필터링, 엔트로피 인코딩 등과 같은 비디오 인코딩과 관련된 하나 또는 복수 개의 기능을 구비하는 프로세스를 수행할 수 있다.
마찬가지로, 도 2에 도시된 바와 같이, 디코딩 시스템(200)에 있어서, 프로세서(102)는 디코더(201)와 같은 하나 또는 복수 개 모듈을 포함할 수 있다. 도 2는 디코더(201)가 하나의 프로세서(102) 내에 위치하는 것을 도시하지만, 이해할 수 있는 것은, 디코더(201)는 하나 또는 복수 개의 서브 모듈을 포함할 수 있지만, 이러한 서브 모듈은 서로 가깝거나 멀리 떨어진 프로세서에서 구현될 수 있다. 디코더(201)(및 모든 상응한 서브 모듈 또는 서브 유닛)는 프로세서(102)의 하드웨어 유닛(예를 들어, 집적 회로의 일부)일 수 있고, 상기 하드웨어 유닛은 프로세서(102)가 프로그램의 적어도 일부(즉 명령어)를 실행하는 것을 통해 구현하는 다른 컴포넌트 또는 소프트웨어 유닛과 함께 사용하도록 설계된다. 프로그램의 명령어는 메모리(104)와 같은 컴퓨터 판독 가능한 매체에 저장될 수 있고, 프로세서(102)에 의해 실행되는 경우, 상기 명령어는 아래에서 상세히 설명된 엔트로피 디코딩, 역양자화, 역변환, 인터 예측, 인트라 예측, 필터링 등과 같은 비디오 디코딩과 관련된 하나 또는 복수 개의 기능을 구비하는 프로세스를 수행할 수 있다.
도 3은 본 발명의 일부 실시예에 따른 도 1의 인코딩 시스템(100)의 예시적 인코더(101)의 상세한 블록도이다. 도 3에 도시된 바와 같이, 인코더(101)는 구획 모듈(302), 인터 예측 모듈(304), 인트라 예측 모듈(306), 변환 모듈(308), 양자화 모듈(310), 탈양자화 모듈(312), 역변환 모듈(314), 필터 모듈(314), 버퍼 모듈(318) 및 인코딩 모듈(320)을 포함할 수 있다. 이해해야 할 것은, 도 3에 도시된 각 소자는 비디오 인코더 중의 서로 상이한 특성 기능을 표시하기 위해 독립적으로 도시되지만, 각 컴포넌트는 독립적인 하드웨어 또는 단일 소프트웨어의 구성 유닛으로 형성된다는 의미는 아니다. 다시 말해, 파싱을 용이하게 하기 위해 포함된 각 소자를 단일 소자로 나열하고, 적어도 두 개의 소자는 조합되어 단일 소자로 형성될 수 있거나, 하나의 소자는 복수 개의 소자로 분할되어 기능을 수행할 수 있다. 더 이해해야 할 것은, 특정된 소자는 본 발명에 설명된 기능을 실행하는데 필요한 소자가 아니라, 성능을 개선시킬 수 있는 선택 가능한 소자일 수 있다. 더 이해해야 할 것은, 전자 하드웨어, 펌웨어, 컴퓨터 프로그램 또는 이들의 임의의 조합을 사용하여 이러한 소자를 구현할 수 있다. 이러한 소자가 하드웨어, 펌웨어 또는 소프트웨어로 구현될지는 인코더(101)에 가하는 특정 응용 프로그램 및 설계 제약에 따라 결정된다.
구획 모듈(302)은 비디오의 입력 이미지를 적어도 하나의 처리 유닛으로 구획하도록 구성될 수 있다. 이미지는 비디오의 프레임 또는 비디오의 필드일 수 있다. 도 5a 내지 5d에 도시된 바와 같이, 비디오는 상이한 레벨의 단편으로 분할되어 비디오 코딩에 사용될 수 있다. 예를 들어, 도 5a에 있어서, 비디오(500)는 하나 또는 복수 개의 시퀀스(502)로 분할될 수 있고, 각 시퀀스(502)는 하나 또는 복수 개의 이미지(504)를 포함할 수 있다. 일부 실시예에 있어서, 이미지(504)는 단일 색상 포맷의 밝기 샘플 어레이, 또는 하나의 밝기 샘플 어레이 및 두 개의 상응한 색도 샘플 어레이를 포함한다. 이때, 처리 유닛은 예측 유닛(predictionunit, PU), 변환 유닛(transformunit, TU) 또는 CU일 수 있다. 구획 모듈(302)은 이미지를 복수 개의 코딩 유닛, 예측 유닛 및 변환 유닛의 조합을 구획할 수 있고, 예정 표준(예를 들어, 비용 함수)에 기반하여 코딩 유닛, 예측 유닛 및 변환 유닛의 조합을 선택하여 이미지에 대해 인코딩을 수행한다.
일부 실시예에 있어서, 예를 들어, 도 5b에 도시된 바와 같이, 구획 모듈(302)을 통해 이미지(504)를 하나 또는 복수 개의 슬라이스(slice, 506)로 분할한다. 이해해야 할 것은, 상이한 예에 있어서, 각 이미지(504) 중의 슬라이스(506)의 형태 및 슬라이스(506)의 개수는 상이할 수 있다. 일부 실시예에 따르면, 각 슬라이스(506)는 루트 이미지(504)만큼 클 수 있거나, 루트 이미지(504)의 세분화일 수 있다.
H.265/HEVC와 유사하게, H.266/VVC는 블록 기반 하이브리드 시공간 예측 코딩 방안이다. 도 5c에 도시된 바와 같이, 인코딩을 수행하는 동안, 슬라이스(506)는 구획 모듈(302)에 의해 추가로 정사각형 블록 CTU508로 분할될 수 있다. 예를 들어, CTU508은 128×128 픽셀의 블록일 수 있다. 다시 말해, 슬라이스(506)는 복수 개의 CTU508을 포함할 수 있다. 도 5d에 도시된 바와 같이, 각 CTU508은 구획 모듈(302)에 의해 추가로 예측 및 변환에 사용될 수 있는 하나 또는 복수 개의CU510으로 구획될 수 있다. H.265/HEVC와 상이하게, H.266/VVC에서, CU510은 직사각형이거나 정사각형일 수 있고, 예측 유닛 또는 변환 유닛으로 추가로 구획될 필요없이 인코딩을 수행할 수 있다. 예를 들어, 도 5d에 도시된 바와 같이, CTU508로부터 CU510의 구획은 쿼드트리 분할(실선들로 지시됨), 이진트리 분할(점선들로 지시됨) 및 삼진트리 분할(대수-점선들로 지시됨)을 포함할 수 있다. 일부 실시예에 따르면, 각 CU510은 루트 CTU508만큼 클 수 있거나, 루트 CTU508의 4×4블록 만큼 작은 세분화일 수 있다. 아래에 상세히 설명된 바와 같이, 비디오(500)를 상이한 레벨의 복수 개의 단편(예를 들어, 시퀀스(502), 이미지(504), 슬라이스(506), CTU508, CU510 등)으로 분할하는 것을 통해, 비디오(500)에 대해 인코딩을 수행하는 경우, 상이한 레벨에서 문법 요소를 사용하여, 비디오 인코딩의 유연성 및 효율을 증가할 수 있다.
도 3을 참조하면, 인터 예측 모듈(304)은 예측 유닛에 대해 인터 예측을 실행하도록 구성될 수 있고, 인트라 예측 모듈(306)은 예측 유닛에 대해 인트라 예측을 실행하도록 구성될 수 있다. 예측 유닛에 대해 인터 예측을 사용할지 아니면 예측 유닛에 대해 인트라 예측을 수행할지를 결정할 수 있고, 각 예측 방법에 따라 특정된 정보(예를 들어, 인트라 예측 모드, 모션 벡터, 참조 이미지 등)를 결정한다. 이때, 예측을 실행하기 위한 처리 유닛은 예측 방법 및 특정된 내용을 결정하기 위한 처리 유닛과 상이할 수 있다. 예를 들어, 예측 유닛에서 예측 방법 및 예측 모드를 결정할 수 있고, 변환 유닛에서 예측을 실행할 수 있다. 생성된 예측 블록 및 원시 블록 간의 잔차 블록 중의 잔차 계수를 변환 모듈(308)에 입력할 수 있다. 또한, 인코딩 모듈(320)은 예측에 사용되는 예측 모드 정보, 모션 벡터 정보 등과 잔차 계수 또는 양자화 레벨를 함께 비트 스트림에 인코딩할 수 있다. 이해해야 할 것은, 특정된 인코딩 모드에서, 원시 블록은 예측 모듈(304) 또는 (306)을 통해 예측 블록을 생성하지 않고, 그대로 인코딩할 수 있다. 더 이해해야 할 것은, 특정된 인코딩 모드에서, 예측, 변환 및 양자화 중 적어도 하나를 건너뛸 수도 있다.
일부 실시예에 있어서, 인터 예측 모듈(304)은 현재 이미지 이전 또는 이후의 이미지 중의 적어도 하나의 이미지의 정보에 기반하여 예측 유닛을 예측할 수 있고, 일부 경우, 현재 이미지 중 인코딩된 부분 영역의 정보에 기반하여 예측 유닛을 예측할 수 있다. 인터 예측 모듈(304)은 참조 이미지 보간 모듈, 모션 예측 모듈 및 모션 보상 모듈(도시되지 않음)과 같은 서브 모듈을 포함할 수 있다. 예를 들어, 참조 이미지 보간 모듈은 버퍼 모듈(318)로부터 참조 이미지 정보를 수신하고, 참조 이미지로부터 정수 개 픽셀 또는 정수 개 이하의 픽셀의 픽셀 정보를 생성할 수 있다. 밝기 픽셀의 경우, 필터 계수가 가변되는 이산 코사인 변환(discretecosinetransform, DCT) 기반의 8탭 보간 필터는 1/4픽셀을 유닛으로 하여 정수 개 픽셀 또는 정수 개 이하의 픽셀의 픽셀 정보를 생성하는데 사용될 수 있다. 색차 신호의 경우, 필터 계수가 가변되는 DCT 기반의 4탭 보간 필터는 1/8픽셀을 유닛으로 하여 정수 개 픽셀 또는 정수 개 이하의 픽셀의 픽셀 정보를 생성하는데 사용될 수 있다. 모션 예측 모듈은 참조 이미지 보간 부분에 의해 보간을 수행하는 참조 이미지에 기반하여 모션 예측을 실행할 수 있다. 전체 검색 기반 블록 매칭 알고리즘(fullsearch-basedblockmatchingalgorithm, FBMA), 3단계 검색(three-stepsearch, TSS) 및 새로운 3단계 검색 알고리즘(newthree-stepsearchalgorithm, NTS)과 같은 다양한 방법을 모션 벡터를 계산하는 방법으로 사용할 수 있다. 모션 벡터는 1/2픽셀, 1/4픽셀 또는 1/16픽셀을 유닛으로 하거나 보간 픽셀을 기반으로 하는 정수 개 픽셀의 모션 벡터값을 구비할 수 있다. 모션 예측 모듈은 모션 예측 방법을 변경하는 것을 통해 현재 예측 유닛을 예측할 수 있다. 스킵 방법, 병합 방법, 고급 모션 벡터 예측(advancedmotionvectorprediction, AMVP) 방법, 블록 내 복제 방법 등과 같은 다양한 방법을 모션 예측 방법으로 사용할 수 있다.
일부 실시예에 있어서, 인트라 예측 모듈(306)은 현재 블록 주위의 참조 픽셀의 정보에 기반하여 예측 유닛을 생성할 수 있고, 상기 정보는 현재 이미지 중의 픽셀 정보이다. 현재 예측 유닛의 인접 영역 중의 블록이 인터 예측이 수행된 블록이므로, 참조 픽셀이 인터 예측이 수행된 픽셀인 경우, 인터 예측이 수행된 블록에 포함된 참조 픽셀을 사용하여 인트라 예측이 수행된 인접 영역 중의 블록의 참조 픽셀 정보를 대체할 수 있다. 즉, 참조 픽셀을 사용할 수 없는 경우, 참조 픽셀 중의 적어도 하나의 참조 픽셀을 사용하여 사용할 수 없는 참조 픽셀 정보를 대체할 수 있다. 인트라 예측에서, 예측 모드는 예측 방향에 따라 참조 픽셀 정보를 사용하는 각도 예측 모드, 및 예측을 실행하는 경우 방향 정보를 사용하지 않는 비각도 예측 모드를 구비할 수 있다. 밝기 정보를 예측하기 위한 모드는 색차 정보를 예측하기 위한 모드와 상이할 수 있고, 밝기 정보를 예측하기 위한 인트라 예측 모드 정보 또는 예측된 밝기 신호 정보는 색차 정보의 예측에 사용될 수 있다. 인트라 예측을 실행하는 경우 예측 유닛의 크기와 변환 유닛의 크기가 동일하면, 예측 유닛의 왼쪽 픽셀, 왼쪽 위 픽셀 및 꼭대기 픽셀에 기반하여 예측 유닛에 대해 인트라 예측을 실행할 수 있다. 그러나, 인트라 예측을 실행하는 경우 예측 유닛의 크기가 변환 유닛의 크기와 상이하면, 변환 유닛에 기반하여 참조 픽셀을 사용하여 인트라 예측을 실행할 수 있다.
인트라 예측 방법은 예측 모드에 따라 적응형 인트라 스무딩(adaptiveintrasmoothing, AIS) 필터를 참조 픽셀에 적용한 후 예측 블록을 생성할 수 있다. 참조 픽셀에 적용되는 AIS 필터의 타입은 변경될 수 있다. 인트라 예측 방법을 실행하기 위해, 현재 예측 유닛의 인접 영역에 존재하는 예측 유닛의 인트라 예측 모드로부터 현재 예측 유닛의 인트라 예측 모드를 예측할 수 있다. 인접 예측 유닛으로부터 예측된 모드 정보를 사용하여 현재 예측 유닛의 예측 모드를 예측하는 경우, 현재 예측 유닛의 인트라 예측 모드와 인접 영역 중의 예측 유닛의 인트라 예측 모드가 동일하면, 예정된 플래그 정보를 사용하여 현재 예측 유닛의 예측 모드와 인접 영역 중의 예측 유닛의 예측 모드가 동일하다는 정보를 전송 지시하고, 현재 예측 유닛의 예측 모드와 인접 영역 중의 예측 유닛의 예측 모드가 서로 상이하면, 추가 플래그 정보를 통해 현재 블록의 예측 모드 정보를 인코딩할 수 있다.
도 3에 도시된 바와 같이, 예측 모듈(304) 또는 (306)에 의해 생성된 예측 유닛에 기반하여 예측을 실행하는 예측 유닛 및 잔차 계수 정보를 포함하는 잔차 블록을 생성할 수 있고, 상기 잔차 계수 정보는 예측 유닛과 원시 블록의 차이값이다. 생성된 잔차 블록을 변환 모듈(308)에 입력한다.
변환 모듈(308)은, DCT, 이산 사인 변환(discretesinetransform, DST), Karhunen-Lo
Figure pct00001
ve 변환(KLT) 또는 변환 스킵과 같은 변환 방법을 사용하여, 원시 블록 및 예측 모듈(304) 및 (306)을 통해 생성된 예측 유닛의 잔차 계수 정보를 포함하는 잔차 블록을 변환하도록 구성될 수 있다. 잔차 블록을 생성하기 위한 예측 유닛의 인트라 예측 모드 정보에 기반하여 DCT, DST 또는 KLT를 적용하여 잔차 블록을 변화할지 여부를 결정할 수 있다. 변환 모듈(308)은 잔차 블록 중의 비디오 신호를 픽셀 도메인으로부터 변환 도메인(예를 들어, 변환 방법의 주파수 도메인에 따라 결정됨)으로 변환할 수 있다. 이해해야 할 것은, 일부 예에 있어서, 변환 모듈(308)을 스킵할 수 있고, 비디오 신호를 변환 도메인으로 변환하지 않을 수 있다.
양자화 모듈(310)은 인코딩 블록 중 각 위치의 계수를 양자화하여, 위치의 양자화 레벨을 생성하도록 구성될 수 있다. 현재 블록은 잔차 블록일 수 있다. 다시 말해, 양자화 모듈(310)은 각 잔차 블록에 대해 양자화 처리를 실행할 수 있다. 잔차 블록은 N×M 개의 위치(샘플)를 포함할 수 있고, 각 위치(샘플)와 변환된 또는 변환되지 않은 비디오 신호/데이터는 연관되고, 예를 들어 밝기 및 색도 정보 중 적어도 하나, 여기서 N 및 M은 양의 정수이다. 본 발명에 있어서, 양자화 이전에, 특정된 위치의 변환된 또는 변환되지 않은 비디오 신호는 본문에서“계수”로 지칭된다. 양자화 이후, 상기 계수의 양자화 값은 본문에서 “양자화 레벨” 또는 “레벨”로 지칭된다.
양자화를 사용하여 변환된 또는 변환되지 않은 비디오 신호의 동적 범위를 줄일 수 있음으로써, 더욱 적은 비트를 사용하여 비디오 신호를 표시하는데 용이하다. 양자화는 일반적으로 양자화 스텝사이즈 및 사사오입으로 나누는 것에 관련되고, 탈양자화(역양자화로도 지칭됨)는 양자화 스텝사이즈를 곱하는 것에 관련된다. 양자화 스텝사이즈는 양자화 파라미터(quantizationparameter, QP)에 의해 지시될 수 있다. 이러한 양자화 과정은 스칼라 양자화로 지칭된다. 하나의 인코딩 블록 내의 모든 계수의 양자화는 독립적으로 완료될 수 있고, 이러한 양자화 방법은 H.264/AVC 및 H.265/HEVC와 같은 일부 기존의 비디오 압축 표준에 사용된다. 양자화 중의 QP는 비디오 인코딩에 사용되는 비트율에 영향을 미친다. 예를 들어, 비교적 높은 QP는 비교적 낮은 비트율을 초래할 수 있고, 비교적 낮은 QP는 비교적 높은 비트율을 초래할 수 있다.
N×M 개의 인코딩 블록의 경우, 특정된 인코딩 스캔 순서를 사용하여 블록의 이차원(2D) 계수를 일차원(1D) 순서로 전환하여 계수 양자화 및 인코딩에 사용한다. 일반적으로, 인코딩 스캔은 인코딩 블록의 왼쪽 위 모서리로부터 시작되고, 인코딩 블록의 오른쪽 아래 모서리 또는 오른쪽 아래 방향에서의 마지막 0이 아닌 계수/레벨에서 중지된다. 이해해야 할 것은, 인코딩 스캔 순서는 지그재그 스캔 순서, 수직(열) 스캔 순서, 수평(행) 스캔 순서, 대각선 스캔 순서 또는 이들의 조합과 같은 모든 적절한 순서를 포함할 수 있다. 인코딩 블록 내의 계수의 양자화는 인코딩 스캔 순서 정보를 이용할 수 있다. 예를 들어, 인코딩 스캔 순서의 이전 양자화 레벨의 상태에 따라 결정될 수 있다. 인코딩 효율을 추가로 향상시키기 위해, 양자화 모듈(310)은 하나 이상의 양자화기를 사용할 수 있고, 예를 들어 두 개의 스칼라 양자화기를 사용할 수 있다. 현재 계수를 양자화하기 위해 사용할 양자화기는 인코딩 스캔 순서에서 현재 계수의 이전 정보에 따라 결정될 수 있다. 이러한 양자화 과정은 관련 양자화로 지칭된다.
도 3을 참조하면, 인코딩 모듈(320)은 인코딩 블록 중의 각 위치의 양자화 레벨을 비트 스트림에 인코딩하도록 구성될 수 있다. 일부 실시예에 있어서, 인코딩 모듈(320)은 인코딩 블록에 대해 엔트로피 인코딩을 실행할 수 있다. 엔트로피 인코딩은 EGk이진화 및 결합된 TR 및 유한 EGk 이진화를 포함하는 Golomb-Rice이진화와 같은 다양한 이진화 방법을 사용하여, 각 양자화 레벨을 이진법 bin과 같은 대응되는 이진법 표시로 전환할 수 있다. 다음, VLC, CAVLC, CABAC, SBAC, PIPE 인코딩 등과 같은 엔트로피 인코딩 알고리즘을 사용하여, 추가로 이진법 표시를 압축할 수 있다. 압축 데이터를 비트 스트림에 첨가할 수 있다. 일부 실시예에 있어서, 인코딩 모듈(320)은 인코딩 블록에 대해 잔차 인코딩을 실행하여, 양자화 레벨을 비트 스트림으로 전환할 수 있다. 예를 들어, 양자화 이후, N×M 인코딩 블록의 경우, N×M 개의 양자화 레벨이 존재할 수 있다. 이 N×M 개의 레벨은 0값 또는 0이 아닌값일 수 있다. 0이 아닌 레벨이 이진법이 아닌 경우, 예를 들어 결합된 TR 및 유한 EGk 이진화를 사용하여 추가로 0이 아닌 레벨을 이진법 bin으로 이진화할 수 있다.
양자화 레벨 외에, 인코딩 모듈(320)은 코딩 유닛의 블록 타입 정보, 예측 모드 정보, 구획 유닛 정보, 예측 유닛 정보, 전송 유닛 정보, 모션 벡터 정보, 참조 프레임 정보, 블록 보간 정보 및 예측 모듈(304) 및 (306)로부터 입력된 필터링 정보와 같은 다양한 다른 정보에 대해 인코딩을 수행할 수 있다. 양자화 레벨 또는 계수 외의 정보(예를 들어 비디오 인코딩에서 사용되는 파라미터)를 시퀀스(502)의 헤더, 이미지(504)의 헤더, 슬라이스(506)의 헤더, CTU508의 헤더, CU510의 헤더 등과 같은 상이한 레벨의 헤더에 조직 및 포함되도록 할 수 있다. 예를 들어, 각 시퀀스(502)의 헤더는 시퀀스 레벨 문법 요소(예를 들어, 플래그)를 포함할 수 있고, 각 시퀀스 레벨 문법 요소는 대응되는 시퀀스(502) 중의 모든 이미지(504)에 적용되는 값을 구비하고, 각 슬라이스(506)의 헤더는 또한 슬라이스 레벨 문법 요소(예를 들어, 플래그)를 포함할 수 있으며, 각 슬라이스 레벨 문법 요소는 대응되는 슬라이스(506) 중의 모든 CTU508에 적용되는 값을 구비한다.
본 발명의 범위와 일치하게, H.266/VVC에서, 비디오 인코딩에 사용되는 일부 파라미터는 선택적인 것으로 간주되기 때문에, 예를 들어, 각 시퀀스(502)에 항상 적용되는 것은 아니며, 이러한 파라미터는 헤더 확장 파라미터 세트로 지칭될 수 있으며, 적절한 레벨의 헤더 끝에 이러한 파라미터가 상기 레벨에 존재하는지 여부에 기반하여 정의되거나 파싱될 수 있다. 예를 들어, 상기 헤더 확장 파라미터 세트는 마지막 유효 계수의 위치를 참조하기 위한 참조 위치를 지시하기 위한, (i)마지막 유효 계수 역방향 플래그(alastsignificantcoefficientreverseflag), 슬라이스가 하이 쓰루풋 모드로 인코딩되었는지 여부를 지시하기 위한 (ii)하이 쓰루풋 모드 플래그, 슬라이스의 잔차 인코딩 중의 잔차 데이터 비트가 시프트되었는지 여부를 지시하기 위한 (iii)잔차 데이터 비트 시프트 플래그 및 슬라이스의 밝기/색도 잔차 인코딩 중의 시프트 비트의 개수를 지시하기 위한 (iv)밝기/색도 시프트 문법 요소와 같은 설명의 목적으로만 상세히 설명되는 슬라이스 레벨 문법 요소를 포함할 수 있다.
본 발명의 일부 측면에 따르면, H.266/VVC에서, 인코딩 블록은 규칙 잔차 코딩(regularresidualcoding, RRC)을 사용하여 인코딩된 변환 블록이다. 4×4보다 큰 변환 블록을 분리된 4×4 서브 블록으로 분할할 수 있고, 이러한 서브 블록은 역방향 대각선 스캔 모드를 사용하여 처리된다. 이해해야 할 것은, 비 정사각형의 직사각형 형태의 변환 블록을 지원하기 때문에, H.266/VVC는 비 4×4 서브 블록을 지원한다. 설명에 용이하게 하고 일반성을 잃지 않기 위해, 도 6은 16×16 변환 블록의 예를 나타내고, 여기서 상기 변환 블록은 추가로 4×4 서브 블록으로 구획된다. 역방향 대각선 스캔 모드는 변환 블록의 서브 블록을 처리 및 각 서브 블록 내의 주파수 위치를 처리하기 위한 것이다.
RRC에 있어서, 마지막 0이 아닌 레벨의 위치(마지막 유효 스캔 위치로도 지칭됨)는 인코딩 스캔 순서를 따른 마지막 0이 아닌 레벨의 위치로 정의될 수 있다. 마지막 0이 아닌 레벨의 2D 좌표(last_sig_coeff_x 및 last_sig_coeff_y)는 먼저 4개에 달하는 문법 요소, 즉, 두 개의 컨텍스트 인코딩된 문법 요소, 두 개의 마지막 유효 계수 프리픽스(last_sig_coeff_x_prefix 및 last_sig_coeff_y_prefix) 및 두 개의 바이패스 인코딩된 문법 요소, 두 개의 마지막 유효 계수 서픽스(last_sig_coeff_x_suffix 및 last_sig_coeff_x_suffix)를 사용하여 인코딩을 수행할 수 있다. 서브 블록 내에서, RRC는 먼저 컨텍스트 인코딩된 bin을 인코딩할 수 있고, 즉 인코딩된 서브 블록 플래그(sb_coded_flag)를 인코딩하여, 현재 서브 블록이 0과 동일한 모든 레벨을 구비하는지 여부를 지시할 수 있다. 예를 들어, sb_coded_flag가 1과 동일하면, 현재 서브 블록에는 적어도 하나의 0이 아닌 계수가 존재할 수 있고; sb_coded_flag가 0과 동일하면, 현재 서브 블록 중의 모든 계수는 0이다. 이해해야 될 것은, 마지막 0이 아닌 레벨을 구비하는 마지막 0이 아닌 서브 블록의 sb_coded_flag는 인코딩 스캔 순서에 따라 last_sig_coeff_x 및 last_sig_coeff_y로부터 도출될 수 있고, 비트 스트림에 인코딩될 필요가 없다. 마찬가지로, 전체 블록의 DC 상주에 사용되는 제1 서브 블록의 sb_coded_flag는 인코딩 스캔 순서에 따라 도출될 수 있고, 비트 스트림에 인코딩될 필요가 없다. 다른 sb_coded_flag를 컨텍스트 인코딩된 bin으로 인코딩할 수 있다. RRC는 마지막 0이 아닌 서브 블록으로부터 시작하여 역방향 인코딩 스캔 순서로 서브 블록별로 인코딩할 수 있다.
일부 실시예에 있어서, 왼쪽 위 모서리(0, 0)를 참조하여 마지막 유효 스캔 위치/계수의 좌표를 측정한다. 하이 비트 깊이를 구비하는 비디오 인코딩(예를 들어, 비디오 인코딩의 하이 쓰루풋 모드)의 하이 비트율(예를 들어, 16비트 또는 이상)의 경우, 변환 계수는 변환 블록에 더 널리 분포되어 있다. 결과적으로, 마지막 유효 계수 스캔 위치/계수는 왼쪽 위 모서리가 아닌 오른쪽 아래 모서리에 더 가까운 경향이 있다. 따라서, 일부 실시예에 있어서, 참조 변환 블록의 오른쪽 아래 모서리는 마지막 유효 계수의 대체 가능한 좌표 집합을 측정 및 인코딩한다. 너비 마이너스 1 또는 높이 마이너스 1에서 대체 가능한 좌표를 마이너스하는 것을 통해 실제 좌표를 계산할 수 있다. 일부 실시예에 있어서, 실제 좌표에 대해 인코딩을 수행하는 경우, 변환 블록에 대해 제로 아웃 처리를 적용할 수 있다. 예를 들어, 좌표는 (Log2ZoTbWidth<<1)-1, (Log2ZoTbHeight<<1)-1에 기반하여 인코딩을 수행할 수 있고, 여기서 (Log2ZoTbWidth<<1) 및 (Log2ZoTbHeight<<1)은 변환 블록 내의 제로 아웃 영역의 너비 및 높이를 의미하고, 상기 제로 아웃 영역은 변환 블록 내의 서브 영역으로 정의되고, 제로 아웃 영역 외의 모든 계수는 각각 0이다.
본 발명의 범위와 일치하게, 예를 들어 특정된 시퀀스의 헤더 확장에서 시퀀스 레벨 플래그(sps_reverse_last_sig_coeff_enabled_flag)를 제공하여, 상기 시퀀스 중의 슬라이스에 대해 슬라이스 레벨 플래그(sh_reverse_last_sig_coeff_flag)가 인에이블되었는지 여부를 지시한다. 슬라이스 레벨 플래그(sh_reverse_last_sig_coeff_flag)는 마지막 유효 계수 역방향 플래그일 수 있고, 슬라이스 중 마지막 유효 계수의 위치를 참조하기 위한 참조 위치를 지시하기 위한 것일 수 있고, 또한 시퀀스 레벨 플래그(sps_reverse_last_sig_coeff_enabled_flag)는 상응한 시퀀스에서 마지막 유효 계수 역방향 플래그의 사용을 허용/금지하기 위한 플래그일 수 있다. 다음, 예를 들어 시퀀스 중의 각 슬라이스의 헤더에서 상응한 슬라이스 레벨 플래그(sh_reverse_last_sig_coeff_flag)를 제공하고, 상기 플래그의 값은 마지막 유효 계수의 위치를 참조하기 위한 위치(예를 들어, 왼쪽 위 모서리 또는 오른쪽 아래 모서리)를 지시하고, 즉 상응한 슬라이스 중의 마지막 유효 계수의 경우, 대체 가능한 좌표를 사용하는지 여부를 지시한다. 예를 들어, 시퀀스 헤더 확장 중의 sps_reverse_last_sig_coeff_enabled_flag가 1과 동일하면, 시퀀스 중의 각 슬라이스의 경우, 슬라이스 헤더 중의 sh_reverse_last_sig_coeff_flag가 추가로 신호를 사용하여 대체 가능한 좌표를 사용할 것을 통지할 수 있다. sh_reverse_last_sig_coeff_flag가 1과 동일한 경우, 대응되는 슬라이스의 대체 가능한 좌표를 사용하는 것을 통해 마지막 유효 계수를 인코딩할 수 있다. 그렇지 않을 경우, 마지막 유효 계수의 정규 좌표를 상응한 슬라이스에 사용할 수 있다. 시퀀스 헤더 확장 중의 sps_reverse_last_sig_coeff_enabled_flag가 0과 동일하면, 마지막 유효 계수의 정규 좌표는 시퀀스 중의 모든 슬라이스에 사용될 수 있고, sh_reverse_last_sig_coeff_flag를 사용하여 슬라이스 레벨에서 추가로 시그널링을 송신할 필요가 없다. 아래는 예시적으로 시퀀스 헤더 확장 중의 sps_reverse_last_sig_coeff_enabled_flag 및 슬라이스 헤더 중의 sh_reverse_last_sig_coeff_flag를 설명한다.
본 발명의 일부 측면에 따르면, H.266/VVC, H.265/HEVC 및 H.264/AVC에 사용되는 컨텍스트 적응형 모델링 기반 이진법 산술 인코딩(context-adaptivemodelingbasedbinaryarithmeticcoding, CABAC)은 bin을 사용하여 위치의 양자화 레벨을 비트로 인코딩한다. CABAC는 두 가지의 컨텍스트 모델링 기반 인코딩 방법을 사용한다. 컨텍스트 기반 방법은 인접한 인코딩 정보에 따라 컨텍스트 모델을 적응적으로 업데이트하고; 이러한 방식으로 인코딩된 bin을 컨텍스트 인코딩 bin(context-codedbin, CCB)으로 지칭한다. 대조적으로, 다른 하나의 바이패스 방법은 1 또는 0의 확률이 항상 50%라고 가정하므로, 항상 고정된 컨텍스트를 사용하여 모델링하고 적응하지 않으며; 이러한 방법을 통해 인코딩된 bin을 바이패스 인코딩 bin(bypass-codedbin, BCB)으로 지칭한다. 하이 비트 깊이 및 하이 비트율의 비디오 인코딩의 경우, 쓰루풋은 더 엄중한 문제가 되었다. 그러나, 바이패스 인코딩 bin을 인코딩하는 것에 비해, 컨텍스트 인코딩 bin을 사용한 인코딩은 일반적으로 상대적으로 복잡한 하드웨어로 구현하여야 하고, 비디오 인코딩의 쓰루풋을 저하시키므로, 이는 하이 비트 깊이 및 하이 비트율 비디오 인코딩의 쓰루풋을 향상시키는 장애가 되었다.
비디오 인코딩을 향상시키기 위해, 특히 하이 비트 깊이 및 하이 비트율 비디오 인코딩의 쓰루풋을 향상시키기 위해, 예를 들어 더 나은 쓰루풋을 획득하기 위해 하이 비트 깊이 및 하이 비트율 비디오 인코딩이 필요한 응용 프로그램의 경우, 필요에 따라 잔차 인코딩 기간 동안 하이 쓰루풋 모드를 인에이블할 수 있다. 일부 실시예에 있어서, 하이 쓰루풋 모드에서 잔차 인코딩에 사용되는 일부 또는 전체 컨텍스트 인코딩 bin을 바이패스 인코딩 bin으로 변경할 수 있다. 일부 실시예에 있어서, 하이 쓰루풋 모드에서 잔차 인코딩에 사용되는 일부 또는 전체 컨텍스트 인코딩 bin을 스킵할 수 있다. 결과적으로, 하이 쓰루풋 모드에서, 바이패스 인코딩 bin만이 잔차 인코딩에 사용될 수 있다. 또한, 추가로 바이패스 인코딩된 쓰루풋을 향상시키기 위해, 하이 쓰루풋 모드에서 바이패스 비트 동기화를 적용할 수 있고, 시프트 동작을 통해 비트 동기화를 적용한 후에 통상적인 CABAC 동작으로 바이패스 인코딩을 구현하는 것을 대체할 수 있으므로, 이는 복수 개의 바이패스 인코딩 bin을 사용하여 동시에 인코딩을 수행하는 것을 가능하게 할 수 있다. 하이 쓰루풋 모드에서, 필요에 따라 현재 인코딩 블록의 인코딩 과정의 시작, 변환 유닛의 인코딩 과정의 시작 등과 같은 잔차 인코딩의 상이한 단계에서 바이패스 비트 동기화를 호출할 수 있다.
최악의 경우에서의 쓰루풋을 보장하기 위해, 나머지 컨텍스트 인코딩 bin의 값(remBinsPass1)은 컨텍스트 인코딩 bin의 최대 개수를 제한하는데 사용될 수 있다. remBinsPass1의 초기값은 적어도 부분적으로 인코딩 블록의 길이 및 너비에 기반하여 계산될 수 있다. 서브 블록 내에서, RRC는 역방향 인코딩 스캔 순서를 사용하여 각 위치의 레벨을 인코딩할 수 있다. 미리 정의된 임계값과 remBinsPass1을 비교하여, 컨텍스트 인코딩 bin의 최대 개수에 도달했는지 여부를 결정할 수 있다. 예를 들어, H.266/VVC에서 remBinsPass1의 임계값을 4로 미리 정의할 수 있다.
도 7에 도시된 바와 같이, remBinsPass1이 4(도 7 중의 “나머지 CCB≥4”)보다 작지 않으면, 서브 블록(도 7 중의 “SB”)의 각 위치의 양자화 레벨에 대해 인코딩을 수행하는 경우, 먼저 중요성 플래그(sig_coeff_flag, 도 7 중의 “sig”)를 비트 스트림에 인코딩하여, 레벨이 0인지 0이 아닌지를 지시할 수 있다. 레벨이 0이 아닌 경우, 1보다 큰 플래그(abs_level_gtx_flag[n][0], n은 서브 블록 내의 현재 위치의 스캔 순서에 따른 인덱스, 도 7 중의 “gt1”)를 비트 스트림에 인코딩하여, 절대 레벨이 1인지 1보다 큰지를 지시한다. 절대 레벨이 1보다 크지 않으면, 패리티 플래그(par_level_flag, 도 7 중의 “par”)를 비트 스트림에 인코딩하여 레벨이 홀수인지 짝수인지를 지시한 다음, 더 큰 플래그(abs_level_gtx_flag[n][1], 도 7 중의 “gt”)가 존재할 수 있다. par_level_flag 플래그 및 abs_level_gtx_flag[n][1] 플래그는 레벨이 2, 3인지 또는 3보다 큰지를 지시하는데 함께 사용될 수도 있다. 컨텍스트 인코딩 방법(즉 컨텍스트 인코딩 bin)을 사용하여 상기 각 문법 요소에 대해 인코딩을 수행한 이후, remBinsPass1의 값은 1이 마이너스될 수 있다. 다시 말해, 중요성 플래그, 1보다 큰 플래그, 패리티 플래그 및 더 큰 플래그를 제1 인코딩 채널(도 7 중의 "채널1")중 각 서브 블록의 각 위치의 컨텍스트 인코딩 bin으로 인코딩할 수 있다.
절대 레벨이 5보다 크거나 remBinsPass1의 값이 4보다 작으면, 상기 컨텍스트 인코딩 bin에 대해 인코딩을 수행한 이후, 나머지 레벨의 경우, 제2 인코딩 채널(도 7 중의 “채널2”) 및 제3 인코딩 채널(도 7 중의 “채널3”)에서 각각 다른 두 개의 문법 요소를, 즉 알림(abs_remainder, 도 7 중의 “rem”, 본 발명에서 “나머지 레벨”로도 지칭됨) 및 절대 레벨(dec_abs_level, 도 7 중의 “decAbsLevel”)을 바이패스 인코딩 bin으로 인코딩한다. 또한, 제4 인코딩 채널(도 7 중의 “채널4”)에서 각 0이 아닌 레벨의 계수 심볼 플래그(coeff_sign_flag, 도 7 중의 “sign”)를 바이패스 인코딩 bin로 인코딩하여, 양자화 레벨을 완전히 표시한다.
일부 실시예에 있어서, 보다 일반적인 잔차 인코딩 방법은 변환 블록의 레벨 인코딩에 사용되는 문법 요소를 조건적으로 파싱하는 것을 허용하기 이해 레벨이 더 큰 플래그(abs_level_gtxX_flag) 및 나머지 레벨 bin을 사용하고, 상응한 레벨 절대값의 이진화는 아래 표 I에서 표시된다. 여기서, abs_level_gtxX_flag는 레벨의 절대값이 X보다 큰지 여부를 설명하고, 여기서 X는 정수이며, 예를 들어 0, 1, 2, ...... 또는N이다. abs_level_gtxX_flag가 0이고, 여기서 X가 0 내지 N-1 사이의 정수이면, abs_level_gtx(X+1)_flag는 존재하지 않는다. abs_level_gtxX_flag가 1이면, abs_level_gtx(X+1)_flag가 존재한다. 또한, abs_level_gtxN_flag가 0이면, 나머지 수가 존재하지 않는다. abs_level_gtxN_flag가 1이면, 레벨로부터 (N+1)을 제거한 후의 값을 표시하는 나머지 수가 존재한다. 전형적으로, abs_level_gtxX_flag를 컨텍스트 인코딩 bin으로 인코딩하고, 나머지 레벨 bin을 바이패스 인코딩 bin으로 인코딩한다.
표 I abs_level_gtxX_flagbin 및 나머지 수 bin에 기반한 잔차 인코딩
도 8a는 본 발명의 일부 실시예에 따른 RRC 중의 일 예시적 하이 쓰루풋 모드이다. 도 8a에 도시된 바와 같이, 비트 스트림은 변환 유닛의 변환 유닛 bin으로부터 시작될 수 있다. 다양한 변환 유닛 bin은 CABAC에 사용되는 컨텍스트 인코딩된 컨텍스트 인코딩 bin으로 유지될 수 있다. 변환 유닛 bin은 인코딩된 Cb 변환 블록 플래그(tu_cb_coded_flag), 인코딩된 Cr 변환 블록 플래그(tu_cr_coded_flag), 인코딩된 밝기 변환 블록 플래그(tu_y_coded_flag), 양자화 파라미터 증분값(cu_qp_delta_abs), 색도 양자화 파라미터 오프셋 플래그(cu_chroma_qp_offset_flag), 색도 양자화 파라미터 오프셋 인덱스(cu_chroma_qp_offset_idx), 연합 색도 플래그(tu_joint_cbcr_residual_flag) 및 변환 스킵 플래그(transform_skip_flag)를 포함할 수 있다. 이해해야 할 것은, 변환 유닛 bin은 또한 일부 예 중의 양자화 파라미터 증분 심볼 플래그(cu_qp_delta_sign_flag)와 같은 바이패스 인코딩 bin을 포함할 수 있다.
도 8a에 도시된 바와 같이, 변환 유닛은 밝기 샘플의 하나의 인코딩 블록(예를 들어, RRC에 사용되는 변환 블록)(도 8a 중의 “Y”) 및 색도 샘플의 두 개의 상응한 인코딩 블록(도 8a 중의 “Cb” 및 “Cr”)에 대응될 수 있다. 따라서, 변환 유닛 bin은 각각 Y, Cb 및 Cr 인코딩 블록에 사용되는 컨텍스트 인코딩 bin인 세 개의 transform_skip_flag를 포함할 수 있다. 각 인코딩 블록의 경우, transform_skip_flag 이후 비트 스트림에서 인코딩/디코딩을 수행하는 인코딩 블록의 제1 잔차 인코딩 bin은 컨텍스트 인코딩 bin으로 유지되는 마지막 유효 계수 프리픽스(last_sig_coeff_x_prefix 및 last_sig_coeff_y_prefix)일 수 있다. 도 8a에 도시된 바와 같이, 각 인코딩 블록 중의 모든 다른 잔차 인코딩 bin은 바이패스 인코딩 bin일 수 있다. 예를 들어, 바이패스 인코딩된 잔차 인코딩 bin은 마지막 유효 계수 서픽스(last_sig_coeff_x_suffix 및 last_sig_coeff_y_suffix), 인코딩된 서브 블록 플래그(sb_coded_flag), 절대 레벨(dec_abs_level) 및 계수 심볼 플래그(coeff_sign_flag)를 포함할 수 있다.
즉, last_sig_coeff_x_prefix 및 last_sig_coeff_y_prefix 이후, sb_coded_flag 이전의 각 인코딩 블록에 대해 하이 쓰루풋 모드를 인에이블할 수 있다. 또한 last_sig_coeff_x_sufix 및 last_sig_coeff_y_sufix를 인코딩해야하는 일부 실시예에서, last_sig_coeff_x_prefix 및 last_sig_coeff_y_prefix 이후, last_sig_coeff_x_sufix 및 last_sig_coeff_y_sufix 이전의 각 인코딩 블록에 대해 하이 쓰루풋 모드를 인에이블할 수 있다. 다시 말해, last_sig_coeff_x_prefix 및 last_sig_coeff_y_prefix 직후의 각 인코딩 블록에 대해 하이 쓰루풋 모드를 인에이블할 수 있다. 하이 쓰루풋 모드에서, 각 서브 블록의 각 위치의 경우, 잔차 인코딩 bin, 즉 sb_coded_flag를 컨텍스트 인코딩 bin으로부터 바이패스 인코딩 bin으로 변경할 수 있다. 예를 들어 나머지 컨텍스트 인코딩 bin(remBinsPass1)의 값을 임계값 4(예를 들어 0)보다 작은 값으로 설정하는 것을 통해, 중요성 플래그(sig_coeff_flag), 1보다 큰 플래그(abs_level_gtx_flag[n][0]), 패리티 플래그(par_level_flag) 및 더 큰 플래그(abs_level_gtx_flag[n][1])와 같은 모든 다른 컨텍스트 인코딩 bin의 인코딩을 스킵할 수 있다. 따라서, 나머지 레벨/알림(abs_remains[n])의 인코딩도 스킵될 수 있다. 다시 말해, 하이 쓰루풋 모드에서, 인코딩 블록의 각 서브 블록의 각 위치의 제1 인코딩 채널 및 제2 인코딩 채널을 스킵하여, 컨텍스트 인코딩 bin으로 하여금 제1 인코딩 채널에 나타나지 않도록 할 수 있다. 결과적으로, 하이 쓰루풋 모드에서, last_sig_coeff_x_prefix 및 last_sig_coeff_y_prefix를 제외한 바이패스 인코딩 bin만을 사용하여 각 인코딩 블록에 대해 인코딩을 수행할 수 있다. 각 양자화 레벨의 인코딩은 나머지 레벨/알림(abs_remainder)이 아니라 바이패스 인코딩된 절대 레벨(dec_abs_level)에 의해 완료될 수 있다.
도 8b는 본 발명의 일부 실시예에 따른 RRC 중의 다른 일 예시적 하이 쓰루풋 모드이다. 도 8a 중의 바이패스 인코딩과 상이하게, 도 8b의 하이 쓰루풋 모드는 추가로 last_sig_coeff_x_prefix 및 last_sig_coeff_y_prefix를 컨텍스트 인코딩 bin으로부터 바이패스 인코딩 bin으로 변경하여, 도 8b의 하이 쓰루풋 모드에서 바이패스 인코딩 bin만을 사용하여 각 인코딩 블록을 인코딩하도록 한다. 도 8b에 도시된 바와 같이, 인코딩 블록 레벨에서 하이 쓰루풋 모드를 인에이블할 수 있다. 도 8a 중의 방안에 비해, 도 8b 중의 방안은 마지막 유효 계수 프리픽스를 컨텍스트 인코딩 bin으로부터 바이패스 인코딩 bin으로 변경시키는 것을 통해 추가로 비디오 인코딩의 쓰루풋을 향상시킬 수 있다. 하이 비트율 및 하이 비트 깊이 동작 범위의 경우, 대다수 블록은 비교적 작은 블록 크기로 인코딩되기 때문에 마지막 유효 계수의 위치의 비트도 매우 높을 수 있다. 컨텍스트 변수의 인덱스는 last_sig_coeff_x_prefix 및 last_sig_coeff_y_prefix의 각 bin에 대해 도출되기 때문에, last_sig_coeff_x_prefix 및 last_sig_coeff_y_prefix의 컨텍스트 인덱스의 도출은 쓰루풋에 영향을 줄 수 있다.
도 8c는 본 발명의 일부 실시예에 따른 변환 유닛 인코딩 중의 다른 일 예시적 하이 쓰루풋 모드이다. 도 8b 중의 하이 쓰루풋 모드와 상이하게, 도 8c의 바이패스 인코딩 모드는 추가로 transform_skip_flag를 컨텍스트 인코딩 bin으로부터 바이패스 인코딩 bin으로 변경한다.
도 8d는 본 발명의 일부 실시예에 따른 변환 유닛 인코딩 중의 다른 일 예시적 하이 쓰루풋 모드이다. 도 8c와 상이하게, 도 8d의 하이 쓰루풋 모드는 추가로 변환 유닛의 변환 유닛 bin을 컨텍스트 인코딩 bin으로부터 바이패스 인코딩 bin으로 변경하여, 변환 유닛의 모든 변환 유닛 bin으로 하여금 하이 쓰루풋 모드에서 바이패스 인코딩 bin으로 인코딩되도록 한다. 예를 들어, 바이패스 인코딩 모드에서, transform_skip_flags를 제외한 외에, 또한 tu_cb_coded_flag, tu_cr_coded_flag, tu_y_coded_flag, cu_qp_delta_abs, cu_chroma_qp_offset_flag, cu_chroma_qp_offset_idx 및 tu_joint_cbcr_residual_flag를 컨텍스트 인코딩 bin으로부터 바이패스 인코딩 bin으로 변경할 수 있다. 결과적으로, 도 8d의 하이 쓰루풋 모드에서, 바이패스 인코딩 bin만을 사용하여 변환 유닛 및 세 개의 상응한 인코딩 블록에 대해 인코딩을 수행할 수 있다. 도 8c 중의 방안에 비해, 도 8d 중의 바이패스 인코딩 모드는 변환 유닛 bin을 바이패스 인코딩 bin만으로 인코딩하는 것을 통해 비디오 인코딩의 쓰루풋을 추가로 향상시켜, 변환 유닛을 인코딩하는 경우, CABAC 인코딩 엔진에 의한 컨텍스트 인코딩 및 바이패스 인코딩 사이의 모든 전환을 방지할 수 있다. 변환 유닛 레벨에서 바이패스 인코딩 모드를 인에이블할 수 있다.
본 발명의 범위와 일치하게, 예를 들어 특정된 시퀀스의 헤더 확장에서 다른 하나의 시퀀스 레벨 플래그(sps_high_throughput_mode_enabled_flag)를 제공하여, 상기 시퀀스 중의 슬라이스에 대해 슬라이스 레벨 플래그(sh_high_throughput_mode_flag)가 인에이블되었는지 여부를 지시한다. 다음 예를 들어 시퀀스 중의 각 슬라이스의 헤더에서 상응한 슬라이스 레벨 플래그(sh_high_throughput_mode_flag)를 제공하고, 상기 플래그의 값은 상기 슬라이스가 하이 쓰루풋 모드로 인코딩되었는지 여부를 지시한다. 예를 들어, 시퀀스 헤더 확장 중의 sps_high_throughput_mode_enabled_flag가 1과 동일하면, 시퀀스 중의 각 슬라이스의 경우, 슬라이스 헤더 중의 sh_high_throughput_mode_flag가 추가로 신호를 사용하여 슬라이스의 인코딩에 사용되는 하이 쓰루풋 모드의 사용을 통지할 수 있다. sh_high_throughput_mode_flag가 1과 동일하면, 하이 쓰루풋 모드에서 슬라이스에 대해 인코딩을 수행할 수 있다. 그렇지 않을 경우, 하이 쓰루풋 모드에서 슬라이스를 인코딩하지 않을 수 있다. 시퀀스 헤더 확장 중의 sps_high_throughput_mode_enabled_flag가 0과 동일하면, 시퀀스 중의 모든 슬라이스에 대해 하이 쓰루풋 모드를 호출하지 않을 수 있고, sh_high_throughput_mode_flag를 사용하여 슬라이스 레벨에서 추가로 시그널링을 송신할 필요가 없다. 아래는 예시적으로 시퀀스 헤더 확장 중의 sps_high_throughput_mode_enabled_flag 및 슬라이스 헤더 중의 sh_high_throughput_mode_flag를 설명한다.
본 발명의 일부 측면에 따르면, 잔차 데이터의 인코딩에 대한 수정을 사용할 수 있고, 여기서 중요성 GT1 및 Gt2는 왼쪽으로 복수 개의 비트를 이동하고, 플래그 자체의 인코딩 효율이 비교적 낮지만, 계수값에 대한 더많은 정보를 제공하기 때문에, 이는 계수 인코딩의 효율을 향상시킬 수 있다. 집합 bin 점수의 감소도 계수 개수의 감수를 초래하기 때문에, Golomb-Rice 인코딩이 필요하다.
본 발명의 범위와 일치하게, 예를 들어 특정된 시퀀스의 헤더 확장에서 또 하나의 시퀀스 레벨 플래그(sps_shift_residual_data_enabled_flag)를 제공하여, 상기 시퀀스 중의 슬라이스에 대해 슬라이스 레벨 플래그(slice_flagshift_luma 및 slice_flagshift_chroma)가 인에이블되었는지 여부를 지시한다. 슬라이스 레벨 문법 요소(slice_flagshift_luma 및 slice_flagshift_chroma)는 슬라이스의 잔차 인코딩 중의 밝기/색도 데이터의 시프트 비트수를 지시하기 위한 문법 요소일 수 있고, 시퀀스 레벨 플래그(sps_shift_residual_data_enabled_flag)는 상응한 시퀀스 중의 슬라이스 레벨 비트 시프트 문법 요소의 사용을 인에이블/디세이블을 지시하기 위한 플래그일 수 있다. 다음 예를 들어 시퀀스 중의 각 슬라이스의 헤더에서 상응한 슬라이스 레벨 문법 요소(slice_flagshift_luma 및 slice_flagshift_chroma)를 제공하고, 이러한 문법 요소의 값은 상기 슬라이스의 밝기/색도 잔차 인코딩에서 시프트된 비트의 개수를 지시한다. 예를 들어, 시퀀스 헤더 확장 중의 sps_shift_residual_data_enabled_flag가 1과 동일하면, 시퀀스 중의 각 슬라이스의 경우, 슬라이스 헤더 중의 slice_flagshift_luma 및slice_flagshift_chroma가 추가로 신호를 사용하여 슬라이스의 인코딩에 사용되는 잔차 데이터 비트 시프트의 사용을 통지할 수 있다. slice_flagshift_luma 및 slice_flagshift_chroma의 값은 상응한 밝기 및 색도 잔차 데이터에 대해 시프트된 비트 개수를 지시할 수 있다. 시퀀스 헤더 확장 중의 sps_shift_residual_data_enabled_flag가 0과 동일하면, 시퀀스 중의 모든 슬라이스에 대해 잔차 데이터 비트 시프트의 사용을 호출하지 않을 수 있고, slice_flagshift_luma 및 slice_flagshift_chroma를 사용하여 슬라이스 레벨에서 추가로 지정할 필요가 없다. 아래의 예는 시퀀스 헤더 확장 중의 sps_shift_residual_data_enabled_flag 및 슬라이스 헤더 중의 slice_flagshift_luma 및 slice_flagshift_chroma를 설명한다.
일부 실시예에 있어서, 시퀀스 레벨 플래그(sps_shift_residual_data_enabled_flag) 및 슬라이스 레벨 문법 요소(slice_flagshift_luma 및 slice_flagshift_chroma) 사이에 다른 하나의 슬라이스 레벨 플래그(sh_shift_residual_data_enabled_flag)를 첨가하여, 슬라이스 레벨에서 다른 한 층의 조건 검사/파싱을 추가한다. 예를 들어, 특정된 시퀀스의 헤더 확장에서 제공된 sps_shift_residual_data_enabled_flag는 잔차 데이터 비트 시프트 플래그(sh_shift_residual_data_enabled_flag)가 상기 시퀀스 중의 슬라이스에 대해 인이에블된 슬라이스의 잔차 인코딩에서 잔차 데이터 비트가 시프트되었는지 여부를 지시하는 것인지 여부를 지시할 수 있다. 다음 예를 들어 시퀀스 중의 각 슬라이스의 헤더에서 상응한 슬라이스 레벨 플래그(sh_shift_residual_data_enabled_flag)를 제공하고, 또한 상기 플래그의 값(“0” 또는 “1”)은 잔차 데이터 비트가 슬라이스의 잔차 인코딩에서 시프트되었는지 여부를 지시한다. 예를 들어, 슬라이스 헤더 중의 sh_shift_residual_data_enabled_flag가 1과 동일하면, 요약한바와 같이, slice_flagshift_luma 및 slice_flagshift_chroma가 추가로 슬라이스의 잔차 인코딩에서의 잔차 데이터 비트 시프트의 사용을 지정할 수 있다. 그렇지 않을 경우, 슬라이스는 잔차 데이터 비트 시프트를 사용하지 않고 인코딩될 수 있고, 추가로 slice_flagshift_luma 및 slice_flagshift_chroma의 값을 지정할 필요가 없다. 아래의 예는 슬라이스 헤더 중의 sh_shift_residual_data_enabled_flag, slice_flagshift_luma 및 slice_flagshift_chroma를 설명한다.
요약하면, 상기 마지막 유효 계수 역방향 플래그, 하이 쓰루풋 모드 플래그, 잔차 데이터 비트 시프트 플래그 및 밝기/색도 시프트 플래그는 문법 요소의 예이고, 이러한 문법 요소는 슬라이스 레벨에서 값을 통해 지정할 수 있으며, 시퀀스 레벨은 상응한 시퀀스 레벨 인에이블 플래그를 통해 인에이블/디세이블된다. 문법 요소들의 그러한 예는, 다른 적절한 문법 요소와 함께, 모든 적절한 레벨에서 헤더 확장 파라미터 세트에 속하는 파라미터들의 일부분일 수 있다. 본 발명의 범위와 일치하게, 예를 들어 모든 적절한 레벨의 헤더에서 PPS 플래그(pps_slice_header_extension_present_flag)를 제공하여, 상기 레벨에 헤더 확장 파라미터 세트가 존재하는지 여부를 지시한다. 예를 들어, 시퀀스의 헤더 확장에서 특정된 시퀀스 레벨 플래그(예를 들어, sps_reverse_last_sig_coeff_enabled_flag, sps_high_throughput_mode_enabled_flag 및 sps_shift_residual_data_enabled_flag)를 제공하고, 위에서 상세히 설명한 바와 같이, 특정된 시퀀스 레벨 플래그들의 값은 시퀀스에서 상응한 헤더 확장 파라미터를 인에이블하는지 여부를 지시한다. 예를 들어, pps_slice_header_extension_present_flag가 1과 동일하면, 시퀀스 헤더로부터 추가로 헤더 확장 파라미터에 사용되는 특정된 시퀀스 레벨 플래그(예를 들어, sps_reverse_last_sig_coeff_enabled_flag, sps_high_throughput_mode_enabled_flag 및 sps_shift_residual_data_enabled_flag)를 파싱한다. pps_slice_header_extension_present_flag가 0과 동일하면, 헤더 확장 파라미터를 사용하지 않고, 추가로 헤더 확장 파라미터의 특정된 시퀀스 레벨 플래그를 파싱하여 시퀀스를 인코딩할 필요가 없다.
본 발명의 일부 측면에 따르면, 동일한 조건 검사/파싱에서의 문법 요소를 그룹화하여, 추가로 복잡도를 저하시키고 비디오 인코딩의 효율을 증가시킬 수 있다. 예를 들어, 일부 또는 전체 문법 요소(예를 들어, 헤더 확장 파라미터 및 헤더 확장 파라미터들의 상응한 특정된 시퀀스 레벨 플래그)는 동일한 조건 검사/파싱에서 범용 플래그(pps_slice_header_extension_present_flag)에 의해 그룹화될 수 있고, 아래의 두 개의 예에서 도시된 바와 같다.
일부 실시예에 있어서, 설계 복잡도를 저하시키기 위해, 슬라이스 헤더 확장에서 조건적으로 헤더 확장 파라미터의 슬라이스 레벨 문법 요소를 파싱할 수 있다. 예를 들어, 헤더 확장 파라미터의 몇 개의 슬라이스 레벨 문법 요소가 소비하는 총 비트가 복수 개의 바이트이면, 이러한 문법 요소는 바이트 바운더리에 존재할 수 있다. 하나의 예에 있어서, 슬라이스 레벨 확장에 사용되는 헤더 확장 파라미터에 5 개의 문법 요소가 존재하고, 3 개의 문법 요소가 요소당 1 비트를 소비하고, 2 개의 문법 요소는 요소당 4 비트를 소비하면, 두 개의 8비트(바이트) 문법을 사용하여 이 5 개의 문법 요소를 표시할 수 있고, 상기 바이트를 바이트 정렬 바운더리에 배치할 수 있음으로써, 추가적인 비트로 상기 바이트를 정렬하는 것을 방지할 수 있다. 위의 예에 도시된 바와 같이, more_data_in_slice_header_extension()은 임의의 값일 수 있고, slice_header_extension_data_bit를 지정하는 조건으로 사용될 수 있다. 예를 들어, 슬라이스 헤더 중의 현재 위치에서 slice_header_extension_length 바로 뒤의 위치를 감한 값이 (slice_header_extension_length×8)보다 작으면, more_data_in_slice_header_extension()의 반환값은 TRUE와 동일하고, 이는 slice_header_extension_data_bit를 트리거한다. 그렇지 않을 경우, more_data_in_slice_header_extension()의 반환값은 FALSE와 동일하다.
도 3으로 돌아가서, 탈양자화 모듈(312)은 탈양자화 모듈(312)을 통해 양자화 레벨에 대해 탈양자화를 수행하도록 구성될 수 있고, 역변환 모듈(314)은 변환 모듈(308)에 의해 변환된 계수에 대해 역변환을 수행하도록 구성될 수 있다. 탈양자화 모듈(312) 및 역변환 모듈(314)에 의해 재구축된 잔차 블록은 예측 모듈(304) 또는 (306)을 통해 예측된 예측 유닛과 결합되어 재구축된 블록을 생성한다.
필터 모듈(314)은 디블록킹 필터, 샘플링 적응형 오프셋(sampleadaptiveoffset, SAO) 및 적응형 루프 필터(adaptiveloopfilter, ALF) 중의 적어도 하나를 포함할 수 있다. 디블록킹 필터는 재구축된 이미지 중의 블록 사이의 바운더리에 의해 생성된 블록 왜곡을 제거할 수 있다. 디블록킹 처리가 실행된 비디오의 경우, SAO 모듈은 픽셀을 유닛으로 하여 원시 비디오의 오프셋을 교정할 수 있다. 재구축 및 필터링된 비디오 및 원시 비디오를 비교하는 것을 통해 획득한 값에 기반하여 ALF를 실행할 수 있다. 버퍼 모듈(318)은 필터 모듈(314)을 통해 계산된 재구축된 블록 또는 이미지를 저장하고, 인터 예측을 실행하는 경우 재구축 및 저장된 블록 또는 이미지를 인터 예측 모듈(304)에 제공하도록 구성될 수 있다.
도 4는 본 발명의 일부 실시예에 따른 도 2의 디코딩 시스템(200)의 예시적 디코더(201)의 상세한 블록도이다. 도 4에 도시된 바와 같이, 디코더(201)는 디코딩 모듈(402), 탈양자화 모듈(404), 역변환 모듈(406), 인터 예측 모듈(408), 인트라 예측 모듈(410), 필터 모듈(412) 및 버퍼 모듈(414)을 포함할 수 있다. 이해해야 할 것은, 도 4에 도시된 각 소자는 비디오 디코더 중의 서로 상이한 특성 기능을 표시하기 위해 독립적으로 도시되지만, 각 컴포넌트는 독립적인 하드웨어 또는 단일 소프트웨어의 구성 유닛으로 형성된다는 의미는 아니다. 다시 말해, 파싱을 용이하게 하기 위해 포함된 각 소자를 단일 소자로 나열하고, 적어도 두 개의 소자는 조합되어 단일 소자로 형성될 수 있거나, 하나의 소자는 복수 개의 소자로 분할되어 기능을 수행할 수 있다. 더 이해해야 할 것은, 일부 소자는 본 발명에 설명된 기능을 실행하는데 필요한 소자가 아니라, 성능을 개선시킬 수 있는 선택 가능한 소자일 수 있다. 더 이해해야 할 것은, 전자 하드웨어, 펌웨어, 컴퓨터 프로그램 또는 이들의 임의의 조합을 사용하여 이러한 소자를 구현할 수 있다. 이러한 소자가 하드웨어, 펌웨어 또는 소프트웨어로 구현될지는 디코더(201)에 가하는 특정 응용 프로그램 및 설계 제약에 따라 결정된다.
비디오 인코더(예를 들어, 인코더(101))로부터 비디오 비트 스트림을 입력하는 경우, 디코더(201)가 비디오 인코더와 반대되는 과정으로 입력 비트 스트림에 대해 디코딩을 수행할 수 있다. 따라서, 설명을 용이하게 하기 위해, 위의 내용의 코딩 설명의 디코딩에 대한 위의 세부 사항 중 일부를 스킵할 수 있다. 디코딩 모듈(402)은 비트 스트림을 디코딩하여, 인코딩 블록 중 각 위치의 양자화 레벨과 같은 비트 스트림에 인코딩된 다양한 정보를 획득하도록 구성될 수 있다. 일부 실시예에 있어서, 디코딩 모듈(402)은 인코더에 의해 실행되는 엔트로피 인코딩(압축)에 대응되는 엔트로피 디코딩(압축 해재)을 실행할 수 있고, 예를 들어 VLC, CAVLC, CABAC, SBAC, PIPE 코딩 등을 실행하여, 이진법 표시(예를 들어, 이진법 bin)를 획득한다. 디코딩 모듈(402)은 또한 Golomb-Rice 이진화(예를 들어 EGk 이진화 및 결합된 TR 및 유한 EGk 이진화를 포함)를 사용하여 이진법 표시를 양자화 레벨로 전환할 수 있다. 변환 유닛 중의 위치의 양자화 레벨 외에, 디코딩 모듈(402)은 Golomb-Rice 이진화에 사용되는 파라미터(예를 들어, Rice파라미터), 코딩 유닛의 블록 타입 정보, 예측 모드 정보, 구획 유닛 정보, 예측 유닛 정보, 전송 유닛 정보, 모션 벡터 정보, 참조 프레임 정보, 블록 보간 정보 및 필터링 정보와 같은 다양한 다른 정보를 디코딩할 수 있다. 디코딩 처리 기간 동안, 디코딩 모듈(402)은 비트 스트림에 대해 재배열을 실행하여, 인코더에 의해 사용되는 스캔 순서 기반 역스캔 방법을 통해, 데이터를 1D 순서로부터 2D 재배열 블록으로 재구축 및 재배열할 수 있다.
본 발명의 범위와 일치하게, 디코딩 모듈(402)은 비트 스트림을 파싱하여 헤더 확장 파라미터의 존재를 지시하는 범용 플래그, 다양한 헤더 확장 파라미터의 시퀀스 레벨 플래그 및 다양한 슬라이스 레벨 헤더 확장 파라미터와 같은 본 발명에서 개시된 상이한 레벨의 헤더 확장 파라미터와 관련된 다양한 문법 요소의 값을 획득할 수 있다. 일부 실시예에 있어서, 디코딩 모듈(402)은 동일한 조건(예를 들어 위에서 상세히 설명된 헤더 확장 파라미터의 존재)에서 한 그룹의 문법 요소의 조건 파싱을 실행할 수 있다. 조건 검사의 결과에 따라, 비교적 낮은 레벨의 문법 요소의 파싱을 스킵할 수 있다. 예를 들어, 시퀀스 레벨의 조건 검사가 통과되지 않으면, 디코더(201)가 슬라이스 레벨 플래그에 대한 파싱을 수행할 필요가 없으므로, 디코더(201)에 의해 실행되는 과정을 단순화할 수 있다. 시퀀스 레벨의 조건 검사가 통과되면, 디코딩 모듈(402)은 특정된 슬라이스의 헤더 확장 파라미터의 값을 획득할 수 있고, 획득된 값에 기반하여 슬라이스를 디코딩할 수 있다.
탈양자화 모듈(404)은 인코딩 블록(예를 들어, 2D 재구축된 블록)의 각 위치의 양자화 레벨에 대해 탈양자화를 수행하여, 각 위치의 계수를 획득하도록 구성될 수 있다. 일부 실시예에 있어서, 탈양자화 모듈(404)은 인코더에 의해 제공되는 양자화 파라미터에 기반하여 관련된 탈양자화를 실행할 수도 있으며, 상기 양자화 파라미터는 각 양자화기에 의해 사용되는 양자화 스텝사이즈와 같은 관련된 양자화에서 사용되는 양자화기와 관련된 정보를 포함한다.
역변환 모듈(406)은 각각 인코더에 의해 실행되는 DCT, DST 및 KLT에 대해 역변환을 실행하고, 예를 들어 역 DCT, 역 DST 및 역 KLT를 실행하여, 데이터를 변환 도메인(예를 들어, 계수)으로부터 픽셀 도메인(예를 들어, 밝기 및 색도 정보 중 적어도 하나)으로 다시 변환하도록 구성될 수 있다. 일부 실시예에 있어서, 역변환 모듈(406)은 예측 방법, 현재 블록의 크기, 예측 방향 등 복수 개의 정보에 따라 선택적으로 변환 동작(예를 들어, DCT, DST, KLT)을 실행할 수 있다.
인터 예측 모듈(408) 및 인트라 예측 모듈(410)은 디코딩 모듈(402)에 의해 제공된 예측 블록의 생성에 관련된 정보 및 버퍼 모듈(414)에 의해 제공된 이전에 디코딩된 블록 또는 이미지의 정보에 기반하여 예측 블록을 생성하도록 구성될 수 있다. 요약하면, 인코더의 동작과 동일한 방식으로 인트라 예측을 수행하는 경우, 예측 유닛의 크기와 변환 유닛의 크기가 동일하면, 예측 유닛의 왼쪽에 존재하는 픽셀, 왼쪽 위에 존재하는 픽셀 및 꼭대기에 존재하는 픽셀에 기반하여 예측 유닛에서 인트라 예측을 실행할 수 있다. 그러나, 인트라 예측을 실행하는 경우 예측 유닛의 크기 및 변환 유닛의 크기가 상이하면, 변환 유닛에 기반한 참조 픽셀을 사용하여 인트라 예측을 실행할 수 있다.
역변환 모듈(406) 및 예측 모듈(408) 또는 (410)의 출력으로부터 결합된 재구축된 블록 또는 재구축된 이미지를 필터 모듈(412)에 제공할 수 있다. 필터 모듈(412)은 디블록킹 필터, 오프셋 교정 모듈 및 ALF를 포함할 수 있다. 버퍼 모듈(414)은 재구축된 이미지 또는 블록을 저장하고, 인터 예측 모듈(408)의 참조 이미지 또는 참조 블록으로 사용할 수 있으며, 재구축된 이미지를 출력할 수 있다.
본 발명의 범위와 일치하게, 인코딩 모듈(320) 및 디코딩 모듈(402)은 본문에서 개시된 다양한 방안을 구현하도록 구성되어, 효율을 향상시키고 비디오 코딩 중 문법 요소의 표시의 복잡도를 조직 및 파싱할 수 있다.
도 9는 본 발명의 일부 실시예에 따른 예시적 비디오 디코딩 방법(900)의 흐름도이다. 방법(900)은 디코딩 시스템(200) 중의 디코더(201) 또는 다른 적절한 비디오 디코딩 시스템에 의해 시퀀스 레벨 및 슬라이스 레벨에서 실행될 수 있다. 아래에 설명된 바와 같이, 방법(900)은 동작(902), (904), (906), (908), (910), (912), (914), (916) 및 (918)을 포함할 수 있다. 이해해야 할 것은, 특정된 동작은 선택 가능할 수 있고, 특정된 동작은 동시에 실행될 수 있거나, 도 9에 도시된 순서와 상이하게 실행될 수 있다.
동작(902)에 있어서, 비트 스트림을 파싱하여 제1 플래그의 값을 획득한다. 상기 제1 플래그의 값은 헤더 확장 파라미터 세트가 존재하는지 여부를 지시한다. 예를 들어, 도 4에 도시된 바와 같이, 디코딩 모듈(402)은 입력 비트 스트림을 파싱하여 범용 플래그(pps_slice_header_extension_present_flag)의 값(예를 들어, “0” 또는 “1”)을 획득하도록 구성될 수 있다.
동작(904)에 있어서, 상기 제1 플래그의 상기 값이 헤더 확장 파라미터 세트가 존재함을 지시하는지 여부를 결정한다. 예를 들어, 도 4에 도시된 바와 같이, 디코딩 모듈(402)은 범용 플래그의 값이“1”이면 헤더 확장 파라미터가 존재함을 지시하고, 범용 플래그의 값이“0”이면 헤더 확장 파라미터가 존재하지 않음을 결정하도록 구성될 수 있다.
동작(906)에 있어서, 상기 제1 플래그의 상기 값이 상기 헤더 확장 파라미터 세트가 존재함을 지시하는 것에 응답하여, 상기 비트 스트림을 파싱하여 제2 플래그의 값을 획득한다. 상기 제2 플래그의 상기 값은 상기 이미지 상기 헤더 확장 파라미터 세트 중의 제1 파라미터를 인에이블하는지 여부를 지시한다. 상기 제1 파라미터는 마지막 유효 계수의 위치를 참조하기 위한 참조 위치를 지시하기 위한 마지막 유효 계수 역방향 플래그, 슬라이스가 하이 쓰루풋 모드로 인코딩되었는지 여부를 지시하기 위한 하이 쓰루풋 모드 플래그, 또는 잔차 데이터 비트가 상기 슬라이스의 잔차 인코딩에서 시프트되었는지 여부를 지시하기 위한 잔차 데이터 비트 시프트 플래그를 포함할 수 있다. 예를 들어, 도 4에 도시된 바와 같이, 디코딩 모듈(402)이 헤더 확장 파라미터가 존재한다고 결정하는 경우에만, 디코딩 모듈(402)은 입력 비트 스트림을 추가로 파싱하여 헤더 확장 파라미터의 특정된 시퀀스 레벨 플래그(sps_shift_residual_data_enabled_flag, sps_reverse_last_sig_coeff_enabled_flag 또는 sps_high_throughput_flag)의 값(예를 들어“0” 또는 “1”)을 획득하도록 구성될 수 있다. 그렇지 않을 경우, 디코딩 모듈(402)은 헤더 확장 파라미터의 모든 특정된 시퀀스 레벨 플래그의 값을 획득하기 위해 입력 비트 스트림을 추가로 파싱할 필요가 없다.
동작(908)에 있어서, 상기 제2 플래그의 상기 값이 상기 이미지 시퀀스에 대해 상기 헤더 확장 파라미터 세트 중의 상기 제1 파라미터를 인에이블하는 것을 지시하는지 여부를 결정한다. 예를 들어, 도 4에 도시된 바와 같이, 디코딩 모듈(402)은 특정된 시퀀스 레벨 플래그 값이 “1”이면 상기 시퀀스에 대해 상응한 헤더 확장 파라미터를 인에이블하고, 특정된 시퀀스 레벨 플래그 값이 “0”이면 상기 시퀀스에 대해 상응한 헤더 확장 파라미터를 디세이블하는 것을 결정하도록 구성될 수 있다.
동작(910)에 있어서, 상기 제2 플래그의 상기 값이 상기 이미지 시퀀스에 대해 상기 제1 파라미터를 인에이블하는 것을 지시하는 것에 응답하여, 상기 비트 스트림을 파싱하여 상기 이미지 시퀀스 중의 상기 슬라이스 중 하나에 사용되는 상기 제1 파라미터의 값을 획득한다. 예를 들어, 도 4에 도시된 바와 같이, 디코딩 모듈(402)이 시퀀스에 대해 상응한 헤더 확장 파라미터를 인에이블하는 것을 결정하는 경우에만, 디코딩 모듈(402)은 입력 비트 스트림을 추가로 파싱하여 상응한 헤더 확장 파라미터(sh_shift_residual_data_flag, slice_flagshift_luma/slice_flagshift_chroma, sh_reverse_last_sig_coeff_flag 또는 sh_high_throughput_mode_flag)의 값을 획득하도록 구성될 수 있다. 그렇지 않을 경우, 디코딩 모듈(402)은 상응한 헤더 확장 파라미터의 값을 획득하기 위해 입력 비트 스트림을 추가로 파싱하지 않을 수 있다.
선택적으로, 동작(912)에 있어서, 상기 제1 플래그의 상기 값이 상기 헤더 확장 파라미터 세트가 존재함을 지시하는 것에 응답하여, 상기 비트 스트림을 파싱하여 제3 플래그의 값을 획득한다. 상기 제3 플래그의 상기 값은 상기 이미지 시퀀스에 대해 상기 헤더 확장 파라미터 세트 중의 제2 파라미터를 인에이블하는지 여부를 지시한다. 상기 제2 파라미터는 마지막 유효 계수 역방향 플래그, 하이 쓰루풋 모드 플래그, 또는 잔차 데이터 비트가 슬라이스의 잔차 인코딩에서 시프트되었는지 여부를 지시하기 위한 잔차 데이터 비트 시프트 플래그를 포함할 수 있다. 예를 들어, 도 4에 도시된 바와 같이, 디코딩 모듈(402)이 시퀀스를 위해 헤더 확장 파라미터가 존재한다고 결정하는 경우에만, 디코딩 모듈(402)은 입력 비트 스트림을 추가로 파싱하여 다른 하나의 헤더 확장 파라미터의 다른 하나의 특정된 시퀀스 레벨 플래그(sps_shift_residual_data_enabled_flag, sps_reverse_last_sig_coeff_enabled_flag 또는 sps_high_throughput_flag)의 값(예를 들어“0” 또는 “1”)을 획득하도록 구성될 수 있다.
선택적으로, 동작(914)에 있어서, 상기 제3 플래그의 상기 값이 상기 이미지 시퀀스에 대해 상기 헤더 확장 파라미터 세트 중의 상기 제2 파라미터를 인에이블하는 것을 지시하는지 여부를 결정한다. 예를 들어, 도 4에 도시된 바와 같이, 디코딩 모듈(402)은 다른 하나의 특정된 시퀀스 레벨 플래그 값이 “1”이면 상기 시퀀스에 대해 상응한 다른 하나의 헤더 확장 파라미터를 인에이블하고, 특정된 시퀀스 레벨 플래그 값이 “0”이면 상기 시퀀스에 대해 상응한 다른 하나의 헤더 확장 파라미터를 디세이블하는 것을 결정하도록 구성될 수 있다.
선택적으로, 동작(916)에 있어서, 상기 제3 플래그의 상기 값이 상기 이미지 시퀀스에 대해 상기 제2 파라미터를 인에이블하는 것을 지시하는 것에 응답하여, 상기 비트 스트림을 파싱하여 상기 슬라이스에 사용되는 상기 제2 파라미터의 값을 획득한다. 예를 들어, 도 4에 도시된 바와 같이, 디코딩 모듈(402)이 시퀀스에 대해 상응한 다른 하나의 헤더 확장 파라미터를 인에이블하는 것을 결정하는 경우에만, 디코딩 모듈(402)은 입력 비트 스트림을 추가로 파싱하여 상응한 헤더 확장 파라미터(sh_shift_residual_data_flag, slice_flagshift_luma/slice_flagshift_chroma, sh_reverse_last_sig_coeff_flag 또는 sh_high_throughput_mode_flag)의 값을 획득하도록 구성될 수 있다. 그렇지 않을 경우, 디코딩 모듈(402)은 상응한 다른 하나의 헤더 확장 파라미터의 값을 획득하기 위해 입력 비트 스트림을 추가로 파싱하지 않을 수 있다.
동작(918)에 있어서, 상기 슬라이스에 사용되는 상기 제1 파라미터의 상기 값 및 상기 제2 파라미터의 상기 값에 기반하여 상기 슬라이스를 디코딩한다. 예를 들어, 도 4에 도시된 바와 같이, 디코딩 모듈(402)은 마지막 유효 계수의 위치를 참조하는데 사용되는 참조 위치, 슬라이스가 하이 쓰루풋 모드로 인코딩되는지 여부 및 슬라이스의 밝기/색도 잔차 인코딩 중 시프트된 비트의 개수와 같은 획득된 헤더 확장 파라미터의 값에 기반하여 슬라이스를 디코딩하도록 구성될 수 있다.
도 10은 본 발명의 일부 실시예에 따른 예시적 비디오 인코딩 방법(1000)의 흐름도이다. 방법(1000)은 인코딩 시스템(100) 중의 인코더(101) 또는 다른 적절한 비디오 인코딩 시스템에 의해 변환 유닛 레벨에서 실행될 수 있다. 아래에 설명된 바와 같이, 방법(1000)은 동작(1002), (1004), (1006), (1008), (1010), (1012) 및 (1014)을 포함할 수 있다. 이해해야 할 것은, 특정된 동작은 선택 가능할 수 있고, 특정된 동작은 동시에 실행될 수 있거나, 도 10에 도시된 순서와 상이하게 실행될 수 있다.
동작(1002)에 있어서, 이미지 시퀀스 중의 적어도 하나의 슬라이스의 헤더 확장 파라미터 세트 중의 제1 파라미터의 값을 결정한다. 상기 제1 파라미터는 마지막 유효 계수의 위치를 참조하기 위한 참조 위치를 지시하기 위한 마지막 유효 계수 역방향 플래그, 슬라이스가 하이 쓰루풋 모드로 인코딩되었는지 여부를 지시하기 위한 하이 쓰루풋 모드 플래그, 또는 잔차 데이터 비트가 상기 적어도 하나의 슬라이스의 잔차 인코딩에서 시프트되었는지 여부를 지시하기 위한 잔차 데이터 비트 시프트 플래그를 포함할 수 있다. 예를 들어, 도 3에 도시된 바와 같이, 인코딩 모듈(320)은 슬라이스를 인코딩하는 경우 적어도 하나의 슬라이스에서 상응한 헤더 확장 파라미터(예를 들어, 하이 쓰루풋 모드에서, 대체 가능한 좌표를 사용하여 마지막 유효 계수에 대해 인코딩을 수행하거나, 잔차 인코딩에 잔차 데이터 비트 시프트를 적용)를 사용해야 하면, 슬라이스 레벨 플래그(sh_shift_residual_data_flag, sh_reverse_last_sig_coeff_flag 또는 sh_high_throughput_mode_flag) 중의 임의의 값을 “1”과 동일하게 결정하도록 구성될 수 있다.
동작(1004)에 있어서, 상기 제1 파라미터의 상기 값에 기반하여 상기 헤더 확장 파라미터 세트가 존재하는지 여부를 지시하기 위한 제1 플래그의 값을 결정한다. 예를 들어, 도 3에 도시된 바와 같이, 인코딩 모듈(320)은 결정된 헤더 확장 파라미터 중 하나의 값(“0” 또는 “1”)에 기반하여 범용 플래그(pps_slice_header_extension_present_flag)의 값(“0” 또는 “1”)을 결정할 수 있다. 예를 들어, 슬라이스 레벨 플래그(sh_shift_residual_data_flag, sh_reverse_last_sig_coeff_flag 또는 sh_high_throughput_mode_flag) 중의 하나의 값이 “1”과 동일하면, 적어도 하나의 슬라이스를 인코딩하는 경우 상응한 헤더 확장 파라미터를 사용해야 하는 것을 의미하고, 더 확장 파라미터가 존재함을 지시하기 위해, 범용 플래그(pps_slice_header_extension_present_flag)의 값을 “1”과 동일하게 결정할 수도 있다.
동작(1006)에 있어서, 상기 제1 파라미터의 상기 값에 기반하여 상기 이미지 시퀀스에 대해 상기 제1 파라미터를 인에이블하는지 여부를 지시하기 위한 제2 플래그의 값을 결정한다. 예를 들어, 도 3에 도시된 바와 같이, 인코딩 모듈(320)은 또한 결정된 헤더 확장 파라미터의 값(“0” 또는 “1”)에 기반하여 상응한 시퀀스 레벨 플래그(sps_shift_residual_data_enabled_flag, sps_reverse_last_sig_coeff_enabled_flag 또는 sps_high_throughput_flag)의 값(“0” 또는 “1”)을 결정할 수 있다. 예를 들어, 슬라이스 레벨 플래그(sh_shift_residual_data_flag, sh_reverse_last_sig_coeff_flag 또는 sh_high_throughput_mode_flag) 중 하나의 값이“1”과 동일하면, 적어도 하나의 슬라이스를 인코딩하는 경우 상응한 헤더 확장 파라미터를 사용해야 하는 것을 의미하고, 시퀀스 레벨에서 헤더 확장 파라미터를 인에이블하는 것을 지시하기 위해, 상응한 시퀀스 레벨 플래그(sps_shift_residual_data_enabled_flag, sps_reverse_last_sig_coeff_enabled_flag, sps_high_throughput_flag)의 값을 “1”과 동일하게 결정할 수도 있다.
선택적으로, 동작(1008)에 있어서, 상기 적어도 하나의 상기 슬라이스의 상기 헤더 확장 파라미터 세트 중의 제2 파라미터의 값을 결정한다. 상기 제2 파라미터는 상기 마지막 유효 계수의 위치를 참조하기 위한 참조 위치를 지시하기 위한 상기 마지막 유효 계수 역방향 플래그, 슬라이스가 상기 하이 쓰루풋 모드로 인코딩되었는지 여부를 지시하기 위한 상기 하이 쓰루풋 모드 플래그, 또는 잔차 데이터 비트가 상기 적어도 하나의 슬라이스의 잔차 인코딩에서 시프트되었는지 여부를 지시하기 위한 상기 잔차 데이터 비트 시프트 플래그를 포함할 수 있다. 예를 들어, 도 3에 도시된 바와 같이, 인코딩 모듈(320)은 슬라이스를 인코딩하는 경우 적어도 하나의 슬라이스에서 상응한 다른 하나의 헤더 확장 파라미터(예를 들어, 하이 쓰루풋 모드에서, 대체 가능한 좌표를 사용하여 마지막 유효 계수에 대해 인코딩을 수행하거나, 잔차 인코딩에 잔차 데이터 비트 시프트를 적용)를 사용해야 하면, 슬라이스 레벨 플래그(sh_shift_residual_data_flag, sh_reverse_last_sig_coeff_flag 또는 sh_high_throughput_mode_flag) 중의 다른 하나의 값도 “1”과 동일하게 결정하도록 구성될 수 있다.
선택적으로, 동작(1010)에 있어서, 상기 제2 파라미터의 상기 값에 기반하여 상기 이미지 시퀀스에 대해 상기 제2 파라미터를 인에이블하는지 여부를 지시하기 위한 제3 플래그의 값을 결정한다. 예를 들어, 도 3에 도시된 바와 같이, 인코딩 모듈(320)은 또한 결정된 다른 하나의 헤더 확장 파라미터의 값(“0” 또는 “1”)에 기반하여 상응한 시퀀스 레벨 플래그(sps_shift_residual_data_enabled_flag, sps_reverse_last_sig_coeff_enabled_flag 또는 sps_high_throughput_flag)의 값(“0” 또는 “1”)을 결정할 수 있다. 예를 들어, 슬라이스 레벨 플래그(sh_shift_residual_data_flag, sh_reverse_last_sig_coeff_flag 또는 sh_high_throughput_mode_flag) 중의 다른 하나의 값이“1”과 동일하면, 적어도 하나의 슬라이스를 인코딩하는 경우 상응한 다른 하나의 헤더 확장 파라미터를 사용해야 하는 것을 의미하고, 시퀀스 레벨에서 다른 하나의 헤더 확장 파라미터를 인에이블하는 것을 지시하기 위해, 상응한 시퀀스 레벨 플래그(sps_shift_residual_data_enabled_flag, sps_reverse_last_sig_coeff_enabled_flag, sps_high_throughput_flag)의 값을 “1”과 동일하게 결정할 수도 있다.
동작(1012)에 있어서, 상기 슬라이스에 사용되는 상기 제1 파라미터의 상기 값 및 상기 제2 파라미터의 상기 값에 기반하여 상기 슬라이스를 비트 스트림에 인코딩한다. 예를 들어, 도 3에 도시된 바와 같이, 인코딩 모듈(320)은 마지막 유효 계수의 위치를 참조하는데 사용되는 참조 위치, 슬라이스가 하이 쓰루풋 모드로 인코딩되었는지 여부 및 슬라이스의 밝기/색도 잔차 인코딩 중 시프트된 비트의 개수와 같은 헤더 확장 파라미터의 값에 기반하여 슬라이스를 인코딩하도록 구성될 수 있다.
동작(1014)에 있어서, 상기 제1 플래그의 상기 값 및 상기 제2 플래그의 상기 값 및 상기 제1 파라미터의 상기 값 및 상기 제2 파라미터의 상기 값도 상기 비트 스트림에 인코딩한다. 예를 들어, 도 3에 도시된 바와 같이, 인코딩 모듈(320)은 획득된 범용 플래그의 값, 시퀀스 레벨 플래그의 값 및 헤더 확장 파라미터의 값을 비트 스트림에 인코딩하도록 구성될 수 있다.
본 발명의 다양한 측면에서, 본문에서 설명된 기능은 하드웨어, 소프트웨어, 펌웨어 또는 이들의 임의의 조합으로 구현될 수 있다. 소프트웨어에서 구현하는 경우, 이러한 기능은 명령어로 사용되어 비일시적 컴퓨터 판독 가능한 매체에 저장될 수 있다. 컴퓨터 판독 가능한 매체는 컴퓨터 저장 매체를 포함한다. 저장 매체는 도 1 및 도 2 중의 프로세서(102)가 액세스할 수 있는 모든 사용 가능한 매체와 같은 프로세서일 수 있다. 제한이 아닌 예로서, 이러한 컴퓨터 판독 가능한 매체는 RAM, ROM, EEPROM, CD-ROM 또는 다른 광디스크 메모리, HDD(예를 들어 디스크메모리 또는 다른 자성 저장 기기), 플래시 드라이브, SSD 또는 임의의 다른 매체, 상기 매체는 명령어 또는 데이터 구조의 형태로 원하는 프로그램 코드를 캐리하거나 저장는데 사용될 수 있고, 처리 시스템(예를 들어 이동 기기 또는 컴퓨터)에 의해 액세스될 수 있다. 본문에서 사용되는 디스크(disk) 또는 디스크(disc)는 CD, 레이저 광디스크, 광디스크, 디지털 비디오 디스크(digitalvideodisc, DVD) 및 플로피디스크를 포함하고, 여기서 디스크(disk)는 일반적으로 자기적으로 디스크를 재생하고, 디스크(disc)는 레이저로 데이터를 광학적으로 재생한다. 상기 조합도 컴퓨터 판독 가능한 매체의 범위 내에 포함되어야 한다.
본 발명의 일 측면에 따르면, 비디오 디코딩 방법을 개시한다. 상기 비디오는 이미지 시퀀스를 포함하고, 각 상기 이미지는 하나 또는 복수 개의 슬라이스를 포함한다. 프로세서는 비트 스트림을 파싱하여 제1 플래그의 값을 획득한다. 상기 프로세서는 상기 제1 플래그의 상기 값이 헤더 확장 파라미터 세트가 존재함을 지시하는지 여부를 결정한다. 상기 제1 플래그의 상기 값이 상기 헤더 확장 파라미터 세트가 존재함을 지시하는 것에 응답하여, 상기 프로세서는 상기 비트 스트림을 파싱하여 제2 플래그의 값을 획득한다. 상기 프로세서는 상기 제2 플래그의 상기 값이 상기 이미지 시퀀스에 대해 상기 헤더 확장 파라미터 세트 중의 제1 파라미터를 인에이블하는 것을 지시하는지 여부를 결정한다. 상기 제2 플래그의 상기 값이 상기 이미지 시퀀스에 대해 상기 제1 파라미터를 인에이블하는 것을 지시하는 것에 응답하여, 상기 비트 스트림을 파싱하여 상기 이미지 시퀀스 중의 상기 슬라이스 중 하나에 사용되는 상기 제1 파라미터의 값을 획득한다. 상기 프로세서는 상기 슬라이스에 사용되는 상기 제1 파라미터의 상기 값에 기반하여 상기 슬라이스를 디코딩한다.
일부 실시예에 있어서, 상기 제1 파라미터는 마지막 유효 계수의 위치를 참조하기 위한 참조 위치를 지시하기 위한 마지막 유효 계수 역방향 플래그를 포함한다.
일부 실시예에 있어서, 상기 제1 파라미터는 상기 슬라이스가 하이 쓰루풋 모드로 인코딩되었는지 여부를 지시하기 위한 하이 쓰루풋 모드 플래그를 포함한다.
일부 실시예에 있어서, 상기 제1 파라미터는 잔차 데이터 비트가 상기 슬라이스의 잔차 인코딩에서 시프트되었는지 여부를 지시하기 위한 잔차 데이터 비트 시프트 플래그를 포함한다.
일부 실시예에 있어서, 상기 제2 플래그의 상기 값을 상기 이미지 시퀀스의 헤더 확장에 인코딩한다.
일부 실시예에 있어서, 상기 제1 파라미터의 상기 값을 상기 슬라이스의 헤더에 인코딩한다.
일부 실시예에 있어서, 상기 제1 플래그의 상기 값이 상기 헤더 확장 파라미터 세트가 존재함을 지시하는 것에 응답하여, 상기 프로세서는 상기 비트 스트림을 파싱하여 제3 플래그의 값을 획득한다. 일부 실시예에 있어서, 상기 프로세서는 상기 제3 플래그의 상기 값이 상기 이미지 시퀀스에 대해 상기 헤더 확장 파라미터 세트 중의 제2 파라미터를 인에이블하는 것을 지시하는지 여부를 결정한다. 일부 실시예에 있어서, 상기 제3 플래그의 상기 값이 상기 이미지 시퀀스에 대해 상기 제2 파라미터를 인에이블하는 것을 지시하는 것에 응답하여, 상기 프로세서는 상기 비트 스트림을 파싱하여 상기 슬라이스에 사용되는 상기 제2 파라미터의 값을 획득한다. 일부 실시예에 있어서, 상기 프로세서는 상기 슬라이스에 사용되는 상기 제1 파라미터의 상기 값 및 상기 제2 파라미터의 상기 값에 기반하여 상기 슬라이스를 디코딩한다.
본 발명의 다른 일 측면에 따르면, 비디오 디코딩 시스템은 명령어를 저장하도록 구성된 메모리 및 상기 메모리에 커플링된 프로세서를 포함한다. 상기 비디오는 이미지 시퀀스를 포함하고, 각 상기 이미지는 하나 또는 복수 개의 슬라이스를 포함한다. 상기 프로세서는 상기 명령어를 실행하는 경우, 비트 스트림을 파싱하여 제1 플래그의 값을 획득하도록 구성된다. 상기 프로세서는 또한 상기 명령어를 실행하는 경우, 상기 제1 플래그의 상기 값이 헤더 확장 파라미터 세트가 존재함을 지시하는지 여부를 결정하고, 상기 제1 플래그의 상기 값이 상기 헤더 확장 파라미터 세트가 존재함을 지시하는 것에 응답하여, 상기 비트 스트림을 파싱하여 제2 플래그의 값을 획득하도록 구성된다. 상기 프로세서는 또한 상기 명령어를 실행하는 경우, 상기 제2 플래그의 상기 값이 상기 이미지 시퀀스에 대해 상기 헤더 확장 파라미터 세트 중의 제1 파라미터를 인에이블하는 것을 지시하는지 여부를 결정하고, 상기 제2 플래그의 상기 값이 상기 이미지 시퀀스에 대해 상기 제1 파라미터를 인에이블하는 것을 지시하는 것에 응답하여, 상기 비트 스트림을 파싱하여 상기 이미지 시퀀스 중의 상기 슬라이스 중 하나에 사용되는 상기 제1 파라미터의 값을 획득하도록 구성된다. 상기 프로세서는 또한 상기 명령어를 실행하는 경우, 상기 슬라이스에 사용되는 상기 제1 파라미터의 상기 값에 기반하여 상기 슬라이스를 디코딩한다.
일부 실시예에 있어서, 상기 제1 파라미터는 마지막 유효 계수의 위치를 참조하기 위한 참조 위치를 지시하기 위한 마지막 유효 계수 역방향 플래그를 포함한다.
일부 실시예에 있어서, 상기 제1 파라미터는 상기 슬라이스가 하이 쓰루풋 모드로 인코딩되었는지 여부를 지시하기 위한 하이 쓰루풋 모드 플래그를 포함한다.
일부 실시예에 있어서, 상기 제1 파라미터는 잔차 데이터 비트가 상기 슬라이스의 잔차 인코딩에서 시프트되었는지 여부를 지시하기 위한 잔차 데이터 비트 시프트 플래그를 포함한다.
일부 실시예에 있어서, 상기 제2 플래그의 상기 값을 상기 이미지 시퀀스의 헤더 확장에 인코딩한다.
일부 실시예에 있어서, 상기 제1 파라미터의 상기 값을 상기 슬라이스의 헤더에 인코딩한다.
일부 실시예에 있어서, 상기 프로세서는 또한, 상기 제1 플래그의 상기 값이 상기 헤더 확장 파라미터 세트가 존재함을 지시하는 것에 응답하여, 상기 비트 스트림을 파싱하여 제3 플래그의 값을 획득하도록 구성된다. 일부 실시예에 있어서, 상기 프로세서는 또한 상기 제3 플래그의 상기 값이 상기 이미지 시퀀스에 대해 상기 헤더 확장 파라미터 세트 중의 제2 파라미터를 인에이블하는 것을 지시하는지 여부를 결정하도록 구성된다. 일부 실시예에 있어서, 상기 프로세서는 또한, 상기 제3 플래그의 상기 값이 상기 이미지 시퀀스에 대해 상기 제2 파라미터를 인에이블하는 것을 지시하는 것에 응답하여, 상기 비트 스트림을 파싱하여 상기 슬라이스에 사용되는 상기 제2 파라미터의 값을 획득하도록 구성된다. 일부 실시예에 있어서, 상기 프로세서는 또한 상기 슬라이스에 사용되는 상기 제1 파라미터의 상기 값 및 상기 제2 파라미터의 상기 값에 기반하여 상기 슬라이스를 디코딩하도록 구성된다.
본 발명의 다른 일 측면에 따르면, 비디오 인코딩 방법을 공개한다. 상기 비디오는 이미지 시퀀스를 포함하고, 각 상기 이미지는 하나 또는 복수 개의 슬라이스를 포함한다. 프로세서는 상기 이미지 시퀀스 중의 적어도 하나의 상기 슬라이스의 헤더 확장 파라미터 세트 중의 제1 파라미터의 값을 결정한다. 상기 프로세서는 상기 제1 파라미터의 상기 값에 기반하여 상기 헤더 확장 파라미터 세트가 존재하는지 여부를 지시하기 위한 제1 플래그의 값을 결정한다. 상기 제1 파라미터의 상기 값에 기반하여 상기 이미지 시퀀스에 대해 상기 제1 파라미터를 인에이블하는지 여부를 지시하기 위한 제2 플래그의 값을 결정한다. 상기 프로세서는 상기 제1 파라미터의 상기 값에 기반하여 상기 적어도 하나의 슬라이스를 비트 스트림에 인코딩한다. 상기 프로세서는 상기 제1 플래그의 상기 값, 상기 제2 플래그의 상기 값 및 상기 제1 파라미터의 상기 값을 상기 비트 스트림에 인코딩한다.
일부 실시예에 있어서, 상기 제1 파라미터는 마지막 유효 계수의 위치를 참조하기 위한 참조 위치를 지시하기 위한 마지막 유효 계수 역방향 플래그를 포함한다.
일부 실시예에 있어서, 상기 제1 파라미터는 상기 적어도 하나의 슬라이스가 하이 쓰루풋 모드로 인코딩되었는지 여부를 지시하기 위한 하이 쓰루풋 모드 플래그를 포함한다.
일부 실시예에 있어서, 상기 제1 파라미터는 잔차 데이터 비트가 상기 적어도 하나의 슬라이스의 잔차 인코딩에서 시프트되었는지 여부를 지시하기 위한 잔차 데이터 비트 시프트 플래그를 포함한다.
일부 실시예에 있어서, 상기 제2 플래그의 상기 값을 상기 이미지 시퀀스의 헤더 확장에 인코딩한다.
일부 실시예에 있어서, 상기 제1 파라미터의 상기 값을 상기 적어도 하나의 슬라이스의 헤더에 인코딩한다.
일부 실시예에 있어서, 상기 프로세서는 상기 적어도 하나의 상기 슬라이스의 상기 헤더 확장 파라미터 세트 중의 제2 파라미터의 값을 결정한다. 일부 실시예에 있어서, 상기 프로세서는 상기 제2 파라미터의 상기 값에 기반하여 상기 이미지 시퀀스에 대해 상기 제2 파라미터를 인에이블하는지 여부를 지시하기 위한 제3 플래그의 값을 결정한다. 일부 실시예에 있어서, 상기 프로세서는 상기 제1 파라미터의 상기 값 및 상기 제2 파라미터의 상기 값에 기반하여 상기 적어도 하나의 슬라이스를 상기 비트 스트림에 인코딩한다. 일부 실시예에 있어서, 상기 프로세서는 상기 제1 플래그의 상기 값 및 상기 제2 플래그의 상기 값 및 상기 제1 파라미터의 상기 값 및 상기 제2 파라미터의 상기 값을 상기 비트 스트림에 인코딩한다.
본 발명의 다른 일 측면에 따르면, 비디오 인코딩 시스템은 명령어를 저장하도록 구성된 메모리 및 상기 메모리에 커플링된 프로세서를 포함한다. 상기 비디오는 이미지 시퀀스를 포함하고, 각 상기 이미지는 하나 또는 복수 개의 슬라이스를 포함한다. 상기 프로세서는 상기 명령어를 실행하는 경우, 상기 이미지 시퀀스 중의 적어도 하나의 상기 슬라이스의 헤더 확장 파라미터 세트 중의 제1 파라미터의 값을 결정하도록 구성된다. 상기 프로세서는 또한 상기 명령어를 실행하는 경우, 상기 제1 파라미터의 상기 값에 기반하여 상기 헤더 확장 파라미터 세트가 존재하는지 여부를 지시하기 위한 제1 플래그의 값을 결정하도록 구성된다. 상기 프로세서는 또한 상기 명령어를 실행하는 경우, 상기 제1 파라미터의 상기 값에 기반하여 상기 이미지 시퀀스에 대해 상기 제1 파라미터를 인에이블하는지 여부를 지시하기 위한 제2 플래그의 값을 결정하도록 구성된다. 상기 프로세서는 또한 상기 명령어를 실행하는 경우, 상기 제1 파라미터의 상기 값에 기반하여 상기 적어도 하나의 슬라이스를 비트 스트림에 인코딩하고, 상기 제1 플래그의 상기 값, 상기 제2 플래그의 상기 값 및 상기 제1 파라미터의 상기 값을 상기 비트 스트림에 인코딩한다.
일부 실시예에 있어서, 상기 제1 파라미터는 마지막 유효 계수의 위치를 참조하기 위한 참조 위치를 지시하기 위한 마지막 유효 계수 역방향 플래그를 포함한다.
일부 실시예에 있어서, 상기 제1 파라미터는 적어도 하나의 슬라이스가 하이 쓰루풋 모드로 인코딩되었는지 여부를 지시하기 위한 하이 쓰루풋 모드 플래그를 포함한다.
일부 실시예에 있어서, 상기 제1 파라미터는 잔차 데이터 비트가 상기 적어도 하나의 슬라이스의 잔차 인코딩에서 시프트되었는지 여부를 지시하기 위한 잔차 데이터 비트 시프트 플래그를 포함한다.
일부 실시예에 있어서, 상기 제2 플래그의 상기 값을 상기 이미지 시퀀스의 헤더 확장에 인코딩한다.
일부 실시예에 있어서, 상기 제1 파라미터의 상기 값을 상기 적어도 하나의 슬라이스의 헤더에 인코딩한다.
일부 실시예에 있어서, 상기 프로세서는 또한, 상기 적어도 하나의 슬라이스의 상기 헤더 확장 파라미터 세트 중의 제2 파라미터의 값을 결정하도록 구성된다. 일부 실시예에 있어서, 상기 프로세서는 또한 상기 제2 파라미터의 상기 값에 기반하여 상기 이미지 시퀀스에 대해 상기 제2 파라미터를 인에이블하는지 여부를 지시하기 위한 제3 플래그의 값을 결정하도록 구성된다. 일부 실시예에 있어서, 상기 프로세서는 또한 상기 제1 파라미터의 상기 값 및 상기 제2 파라미터의 상기 값에 기반하여 상기 적어도 하나의 슬라이스를 상기 비트 스트림에 인코딩하도록 구성된다. 일부 실시예에 있어서, 상기 프로세서는 또한, 상기 제1 플래그의 상기 값, 상기 제2 플래그의 상기 값, 상기 제1 파라미터의 상기 값 및 상기 제2 파라미터의 상기 값을 상기 비트 스트림에 인코딩하도록 구성된다.
실시예에 대한 이전 설명은 본 발명의 일반적인 특성을 나타내므로, 다른 사람들이 부적절한 실험 없이 본 발명의 일반적인 개념을 이탈하지 않고 본 분야의 기술 내에서 지식을 적용하여 이러한 실시예의 다양한 응용을 쉽게 수정하는 것 및 적응 하는 것 중 적어도 하나를 수행할 수 있다. 따라서, 이러한 적응 및 수정은 본문에서 주어진 지침 및 지도에 따라 개시된 실시예의 동등성의 의미와 범위 내에서 의도된다. 본문 중의 용어 또는 문언은 기술자가 교시 및 지침에 따라 이 설명서의 용어 또는 문언을 설명할 수 있도록 제한 목적이 아닌 설명에 있음을 이해해야 한다.
본 발명의 실시예는 지정된 기능의 실시 형태 및 그 관계를 나타내는 기능 구축 모듈의 도움으로 설명된다. 설명을 용이하게 하기 위해, 본문에서는 이러한 기능의 구축 블록에 대한 바운더리를 임의로 정의한다. 지정된 기능과 그 관계가 적절하게 수행되는 한 대체 가능한 바운더리 정의할 수 있다.
발명 내용 및 요약 섹션은 발명자가 의도한 본 발명의 모든 것이 아닌 하나 이상의 예시적인 실시예를 설명할 수 있으므로, 본 발명 및 첨부된 청구항을 어떠한 방식으로도 제한하는 것을 목적으로 하지 않는다.
위의 내용에서는 다양한 기능 블록, 모듈 및 단계가 개시되어 있다. 제공된 배치는 제한적이지 않고 설명적이다. 따라서, 기능 블록, 모듈 및 단계 위의 내용에서 제공한 예와 상이한 방식으로 재정렬되거나 결합될 수 있다. 마찬가지로, 일부 실시예에는 기능 블록, 모듈 및 단계의 서브 집합만 포함되며 이러한 서브 집합은 허용된다.
본 발명의 폭과 범위는 위에서 상기 예시적 실시예에 의해 제한되어서는 안되며 청구항 및 그 동등물에 의해서만 정의되어야 한다.

Claims (28)

  1. 비디오 디코딩 방법으로서,
    상기 비디오는 이미지 시퀀스를 포함하고, 각 상기 이미지는 하나 또는 복수 개의 슬라이스를 포함하며, 상기 비디오 디코딩 방법은,
    프로세서가 비트 스트림을 파싱하여 제1 플래그의 값을 획득하는 단계;
    상기 프로세서가 상기 제1 플래그의 상기 값이 헤더 확장 파라미터 세트가 존재함을 지시하는지 여부를 결정하는 단계;
    상기 제1 플래그의 상기 값이 상기 헤더 확장 파라미터 세트가 존재함을 지시하는 것에 응답하여, 상기 프로세서가 상기 비트 스트림을 파싱하여 제2 플래그의 값을 획득하는 단계;
    상기 프로세서가 상기 제2 플래그의 상기 값이 상기 이미지 시퀀스에 대해 상기 헤더 확장 파라미터 세트 중의 제1 파라미터를 인에이블하는 것을 지시하는지 여부를 결정하는 단계;
    상기 제2 플래그의 상기 값이 상기 이미지 시퀀스에 대해 상기 제1 파라미터를 인에이블하는 것을 지시하는 것에 응답하여, 상기 프로세서가 상기 비트 스트림을 파싱하여 상기 이미지 시퀀스 중의 상기 슬라이스 중 하나에 사용되는 상기 제1 파라미터의 값을 획득하는 단계; 및
    상기 프로세서가 상기 슬라이스에 사용되는 상기 제1 파라미터의 상기 값에 기반하여 상기 슬라이스를 디코딩하는 단계를 포함하는 것을 특징으로 하는 비디오 디코딩 방법.
  2. 제1항에 있어서,
    상기 제1 파라미터는 마지막 유효 계수의 위치를 참조하기 위한 참조 위치를 지시하기 위한 마지막 유효 계수 역방향 플래그를 포함하는 것을 특징으로 하는 비디오 디코딩 방법.
  3. 제1항에 있어서,
    상기 제1 파라미터는 상기 슬라이스가 하이 쓰루풋 모드로 인코딩되었는지 여부를 지시하기 위한 하이 쓰루풋 모드 플래그를 포함하는 것을 특징으로 하는 비디오 디코딩 방법.
  4. 제1항에 있어서,
    상기 제1 파라미터는 잔차 데이터 비트가 상기 슬라이스의 잔차 인코딩에서 시프트되었는지 여부를 지시하기 위한 잔차 데이터 비트 시프트 플래그를 포함하는 것을 특징으로 하는 비디오 디코딩 방법.
  5. 제1항에 있어서,
    상기 제2 플래그의 상기 값을 상기 이미지 시퀀스의 헤더 확장에 인코딩하는 것을 특징으로 하는 비디오 디코딩 방법.
  6. 제1항에 있어서,
    상기 제1 파라미터의 상기 값을 상기 슬라이스의 헤더에 인코딩하는 것을 특징으로 하는 비디오 디코딩 방법.
  7. 제1항에 있어서,
    상기 비디오 디코딩 방법은,
    상기 제1 플래그의 상기 값이 상기 헤더 확장 파라미터 세트가 존재함을 지시하는 것에 응답하여, 상기 프로세서가 상기 비트 스트림을 파싱하여 제3 플래그의 값을 획득하는 단계;
    상기 프로세서가 상기 제3 플래그의 상기 값이 상기 이미지 시퀀스에 대해 상기 헤더 확장 파라미터 세트 중의 제2 파라미터를 인에이블하는 것을 지시하는지 여부를 결정하는 단계;
    상기 제3 플래그의 상기 값이 상기 이미지 시퀀스에 대해 상기 제2 파라미터를 인에이블하는 것을 지시하는 것에 응답하여, 상기 프로세서가 상기 비트 스트림을 파싱하여 상기 슬라이스에 사용되는 상기 제2 파라미터의 값을 획득하는 단계; 및
    상기 프로세서가 상기 슬라이스에 사용되는 상기 제1 파라미터의 상기 값 및 상기 제2 파라미터의 상기 값에 기반하여 상기 슬라이스를 디코딩하는 단계를 더 포함하는 것을 특징으로 하는 비디오 디코딩 방법.
  8. 비디오 디코딩 시스템으로서,
    상기 비디오는 이미지 시퀀스를 포함하고, 각 상기 이미지는 하나 또는 복수 개의 슬라이스를 포함하며, 상기 비디오 디코딩 시스템은,
    명령어를 저장하도록 구성된 메모리; 및
    상기 메모리에 커플링되어 상기 명령어를 실행하는 경우,
    비트 스트림을 파싱하여 제1 플래그의 값을 획득하는 단계;
    상기 제1 플래그의 상기 값이 헤더 확장 파라미터 세트가 존재함을 지시하는지 여부를 결정하는 단계;
    상기 제1 플래그의 상기 값이 상기 헤더 확장 파라미터 세트가 존재함을 지시하는 것에 응답하여, 상기 비트 스트림을 파싱하여 제2 플래그의 값을 획득하는 단계;
    상기 제2 플래그의 상기 값이 상기 이미지 시퀀스에 대해 상기 헤더 확장 파라미터 세트 중의 제1 파라미터를 인에이블하는 것을 지시하는지 여부를 결정하는 단계;
    상기 제2 플래그의 상기 값이 상기 이미지 시퀀스에 대해 상기 제1 파라미터를 인에이블하는 것을 지시하는 것에 응답하여, 상기 비트 스트림을 파싱하여 상기 이미지 시퀀스 중의 상기 슬라이스 중 하나에 사용되는 상기 제1 파라미터의 값을 획득하는 단계; 및
    상기 슬라이스에 사용되는 상기 제1 파라미터의 상기 값에 기반하여 상기 슬라이스를 디코딩하는 단계를 실행하도록 구성된 프로세서를 포함하는 것을 특징으로 하는 비디오 디코딩 시스템.
  9. 제8항에 있어서,
    상기 제1 파라미터는 마지막 유효 계수의 위치를 참조하기 위한 참조 위치를 지시하기 위한 마지막 유효 계수 역방향 플래그를 포함하는 것을 특징으로 하는 비디오 디코딩 시스템.
  10. 제8항에 있어서,
    상기 제1 파라미터는 상기 슬라이스가 하이 쓰루풋 모드로 인코딩되었는지 여부를 지시하기 위한 하이 쓰루풋 모드 플래그를 포함하는 것을 특징으로 하는 비디오 디코딩 시스템.
  11. 제8항에 있어서,
    상기 제1 파라미터는 잔차 데이터 비트가 상기 슬라이스의 잔차 인코딩에서 시프트되었는지 여부를 지시하기 위한 잔차 데이터 비트 시프트 플래그를 포함하는 것을 특징으로 하는 비디오 디코딩 시스템.
  12. 제8항에 있어서,
    상기 제2 플래그의 상기 값을 상기 이미지 시퀀스의 헤더 확장에 인코딩하는 것을 특징으로 하는 비디오 디코딩 시스템.
  13. 제8항에 있어서,
    상기 제1 파라미터의 상기 값을 상기 슬라이스의 헤더에 인코딩하는 것을 특징으로 하는 비디오 디코딩 시스템.
  14. 제8항에 있어서,
    상기 프로세서는 또한,
    상기 제1 플래그의 상기 값이 상기 헤더 확장 파라미터 세트가 존재함을 지시하는 것에 응답하여, 상기 비트 스트림을 파싱하여 제3 플래그의 값을 획득하고;
    상기 제3 플래그의 상기 값이 상기 이미지 시퀀스에 대해 상기 헤더 확장 파라미터 세트 중의 제2 파라미터를 인에이블하는 것을 지시하는지 여부를 결정하며;
    상기 제3 플래그의 상기 값이 상기 이미지 시퀀스에 대해 상기 제2 파라미터를 인에이블하는 것을 지시하는 것에 응답하여, 상기 비트 스트림을 파싱하여 상기 슬라이스에 사용되는 상기 제2 파라미터의 값을 획득하고;
    상기 슬라이스에 사용되는 상기 제1 파라미터의 상기 값 및 상기 제2 파라미터의 상기 값에 기반하여 상기 슬라이스를 디코딩하도록 구성된 비디오 디코딩 시스템.
  15. 비디오 인코딩 방법으로서,
    상기 비디오는 이미지 시퀀스를 포함하고, 각 상기 이미지는 하나 또는 복수 개의 슬라이스를 포함하며, 상기 비디오 인코딩 방법은,
    프로세서가 상기 이미지 시퀀스 중의 적어도 하나의 상기 슬라이스의 헤더 확장 파라미터 세트 중의 제1 파라미터의 값을 결정하는 단계;
    상기 프로세서가 상기 제1 파라미터의 상기 값에 기반하여 상기 헤더 확장 파라미터 세트가 존재하는지 여부를 지시하기 위한 제1 플래그의 값을 결정하는 단계;
    상기 프로세서가 상기 제1 파라미터의 상기 값에 기반하여 상기 이미지 시퀀스에 대해 상기 제1 파라미터를 인에이블하는지 여부를 지시하기 위한 제2 플래그의 값을 결정하는 단계;
    상기 프로세서가 상기 제1 파라미터의 상기 값에 기반하여 상기 적어도 하나의 슬라이스를 비트 스트림에 인코딩하는 단계; 및
    상기 프로세서가 상기 제1 플래그의 상기 값, 상기 제2 플래그의 상기 값 및 상기 제1 파라미터의 상기 값을 상기 비트 스트림에 인코딩하는 단계를 포함하는 것을 특징으로 하는 비디오 인코딩 방법.
  16. 제15항에 있어서,
    상기 제1 파라미터는 마지막 유효 계수의 위치를 참조하기 위한 참조 위치를 지시하기 위한 마지막 유효 계수 역방향 플래그를 포함하는 것을 특징으로 하는 비디오 인코딩 방법.
  17. 제15항에 있어서,
    상기 제1 파라미터는 상기 적어도 하나의 슬라이스가 하이 쓰루풋 모드로 인코딩되었는지 여부를 지시하기 위한 하이 쓰루풋 모드 플래그를 포함하는 것을 특징으로 하는 비디오 인코딩 방법.
  18. 제15항에 있어서,
    상기 제1 파라미터는 잔차 데이터 비트가 상기 적어도 하나의 슬라이스의 잔차 인코딩에서 시프트되었는지 여부를 지시하기 위한 잔차 데이터 비트 시프트 플래그를 포함하는 것을 특징으로 하는 비디오 인코딩 방법.
  19. 제15항에 있어서,
    상기 제2 플래그의 상기 값을 상기 이미지 시퀀스의 헤더 확장에 인코딩하는 것을 특징으로 하는 비디오 인코딩 방법.
  20. 제15항에 있어서,
    상기 제1 파라미터의 상기 값을 상기 적어도 하나의 슬라이스의 헤더에 인코딩하는 것을 특징으로 하는 비디오 인코딩 방법.
  21. 제15항에 있어서,
    상기 비디오 인코딩 방법은,
    상기 프로세서가 상기 적어도 하나의 슬라이스의 상기 헤더 확장 파라미터 세트 중의 제2 파라미터의 값을 결정하는 단계;
    상기 프로세서가 상기 제2 파라미터의 상기 값에 기반하여 상기 이미지 시퀀스에 대해 상기 제2 파라미터를 인에이블하는지 여부를 지시하기 위한 제3 플래그의 값을 결정하는 단계;
    상기 프로세서가 상기 제1 파라미터의 상기 값 및 상기 제2 파라미터의 상기 값에 기반하여 상기 적어도 하나의 슬라이스를 상기 비트 스트림에 인코딩하는 단계; 및
    상기 프로세서가 상기 제1 플래그의 상기 값, 상기 제2 플래그의 상기 값, 상기 제1 파라미터의 상기 값 및 상기 제2 파라미터의 상기 값을 상기 비트 스트림에 인코딩하는 단계를 더 포함하는 것을 특징으로 하는 비디오 인코딩 방법.
  22. 비디오 인코딩 시스템으로서,
    상기 비디오는 이미지 시퀀스를 포함하고, 각 상기 이미지는 하나 또는 복수 개의 슬라이스를 포함하며, 상기 비디오 인코딩 시스템은,
    명령어를 저장하도록 구성된 메모리; 및
    상기 메모리에 커플링되어 상기 명령어를 실행하는 경우,
    상기 이미지 시퀀스 중의 적어도 하나의 상기 슬라이스의 헤더 확장 파라미터 세트 중의 제1 파라미터의 값을 결정하는 단계;
    상기 제1 파라미터의 상기 값에 기반하여 상기 헤더 확장 파라미터 세트가 존재하는지 여부를 지시하기 위한 제1 플래그의 값을 결정하는 단계;
    상기 제1 파라미터의 상기 값에 기반하여 상기 이미지 시퀀스에 대해 상기 제1 파라미터를 인에이블하는지 여부를 지시하기 위한 제2 플래그의 값을 결정하는 단계;
    상기 제1 파라미터의 상기 값에 기반하여 상기 적어도 하나의 슬라이스를 비트 스트림에 인코딩하는 단계; 및
    상기 제1 플래그의 상기 값, 상기 제2 플래그의 상기 값 및 상기 제1 파라미터의 상기 값을 상기 비트 스트림에 인코딩하는 단계를 실행하도록 구성된 프로세서를 포함하는 것을 특징으로 하는 비디오 인코딩 시스템.
  23. 제22항에 있어서,
    상기 제1 파라미터는 마지막 유효 계수의 위치를 참조하기 위한 참조 위치를 지시하기 위한 마지막 유효 계수 역방향 플래그를 포함하는 것을 특징으로 하는 비디오 인코딩 시스템.
  24. 제22항에 있어서,
    상기 제1 파라미터는 상기 적어도 하나의 슬라이스가 하이 쓰루풋 모드로 인코딩되었는지 여부를 지시하기 위한 하이 쓰루풋 모드 플래그를 포함하는 것을 특징으로 하는 비디오 인코딩 시스템.
  25. 제22항에 있어서,
    상기 제1 파라미터는 잔차 데이터 비트가 상기 적어도 하나의 슬라이스의 잔차 인코딩에서 시프트되었는지 여부를 지시하기 위한 잔차 데이터 비트 시프트 플래그를 포함하는 것을 특징으로 하는 비디오 인코딩 시스템.
  26. 제22항에 있어서,
    상기 제2 플래그의 상기 값을 상기 이미지 시퀀스의 헤더 확장에 인코딩하는 것을 특징으로 하는 비디오 인코딩 시스템.
  27. 제22항에 있어서,
    상기 제1 파라미터의 상기 값을 상기 적어도 하나의 슬라이스의 헤더에 인코딩하는 것을 특징으로 하는 비디오 인코딩 시스템.
  28. 제22항에 있어서,
    상기 프로세서는 또한,
    상기 적어도 하나의 슬라이스의 상기 헤더 확장 파라미터 세트 중의 제2 파라미터의 값을 결정하고;
    상기 제2 파라미터의 상기 값에 기반하여 상기 이미지 시퀀스에 대해 상기 제2 파라미터를 인에이블하는지 여부를 지시하기 위한 제3 플래그의 값을 결정하며;
    상기 제1 파라미터의 상기 값 및 상기 제2 파라미터의 상기 값에 기반하여 상기 적어도 하나의 슬라이스를 상기 비트 스트림에 인코딩하고;
    상기 제1 플래그의 상기 값, 상기 제2 플 래그의 상기 값, 상기 제1 파라미터의 상기 값 및 상기 제2 파라미터의 상기 값을 상기 비트 스트림에 인코딩하는 것을 특징으로 하는 비디오 인코딩 시스템.
KR1020247001697A 2021-07-07 2022-07-07 비디오 코딩 중의 시퀀스 레벨 및 슬라이스 레벨 문법 표시 KR20240029026A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US202163219173P 2021-07-07 2021-07-07
US63/219,173 2021-07-07
PCT/US2022/036360 WO2023283336A1 (en) 2021-07-07 2022-07-07 Sequence-level and slice-level syntax representation in video coding

Publications (1)

Publication Number Publication Date
KR20240029026A true KR20240029026A (ko) 2024-03-05

Family

ID=84802023

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020247001697A KR20240029026A (ko) 2021-07-07 2022-07-07 비디오 코딩 중의 시퀀스 레벨 및 슬라이스 레벨 문법 표시

Country Status (5)

Country Link
EP (1) EP4367884A1 (ko)
KR (1) KR20240029026A (ko)
CN (1) CN117652141A (ko)
AU (1) AU2022308668A1 (ko)
WO (1) WO2023283336A1 (ko)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2127395B1 (en) * 2007-01-10 2016-08-17 Thomson Licensing Video encoding method and video decoding method for enabling bit depth scalability
US10616581B2 (en) * 2012-01-19 2020-04-07 Huawei Technologies Co., Ltd. Modified coding for a transform skipped block for CABAC in HEVC
EP2837176B1 (en) * 2012-04-12 2016-03-23 Telefonaktiebolaget LM Ericsson (publ) Extension data handling
EP3503557A1 (en) * 2017-12-22 2019-06-26 Thomson Licensing Method and apparatus for video encoding and decoding based on context switching

Also Published As

Publication number Publication date
CN117652141A (zh) 2024-03-05
EP4367884A1 (en) 2024-05-15
WO2023283336A1 (en) 2023-01-12
AU2022308668A1 (en) 2024-01-18

Similar Documents

Publication Publication Date Title
CN113841409B (zh) 用于视频处理的简化二次变换的有条件使用
CN112640448B (zh) 编码转换系数的熵编解码方法与装置
US10893273B2 (en) Data encoding and decoding
CN114208190B (zh) 视频编解码中缩减二次变换的矩阵的选择
JP7277616B2 (ja) ビデオ・データを処理する方法、装置及び記憶媒体
CN113853785B (zh) 用于残差编解码的上下文建模
JP2024502109A (ja) ビデオコーディング用の残差および係数のコーディング
CN113841410B (zh) 多种帧内预测方法的编解码
CN113966611B (zh) 视频编解码中的重要系数信令
KR20240029026A (ko) 비디오 코딩 중의 시퀀스 레벨 및 슬라이스 레벨 문법 표시
US20240137567A1 (en) Method and system for decoding/encoding video including sequence pictures
WO2022217442A1 (zh) 系数编解码方法、编码器、解码器以及计算机存储介质
CN117203960A (zh) 视频编码中的旁路对齐
WO2022232061A1 (en) Bypass alignment in video coding
CN116918327A (zh) 视频编码中基于状态的依赖量化和残差编码