KR102569844B1 - 이미지 인코딩, 디코딩 방법 및 장치, 전자 설비 및 시스템 - Google Patents

이미지 인코딩, 디코딩 방법 및 장치, 전자 설비 및 시스템 Download PDF

Info

Publication number
KR102569844B1
KR102569844B1 KR1020217002590A KR20217002590A KR102569844B1 KR 102569844 B1 KR102569844 B1 KR 102569844B1 KR 1020217002590 A KR1020217002590 A KR 1020217002590A KR 20217002590 A KR20217002590 A KR 20217002590A KR 102569844 B1 KR102569844 B1 KR 102569844B1
Authority
KR
South Korea
Prior art keywords
parameter
coefficient
transform
value
size
Prior art date
Application number
KR1020217002590A
Other languages
English (en)
Other versions
KR20210024619A (ko
Inventor
밍 리
Original Assignee
지티이 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 지티이 코포레이션 filed Critical 지티이 코포레이션
Publication of KR20210024619A publication Critical patent/KR20210024619A/ko
Application granted granted Critical
Publication of KR102569844B1 publication Critical patent/KR102569844B1/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/129Scanning of coding units, e.g. zig-zag scan of transform coefficients or flexible macroblock ordering [FMO]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/117Filters, e.g. for pre-processing or post-processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/147Data rate or code amount at the encoder output according to rate distortion criteria
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/18Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a set of transform coefficients
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • 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

Landscapes

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

Abstract

본 출원은 이미지 인코딩, 디코딩 방법 및 장치, 전자 설비 및 시스템을 제공한다. 여기서 이미지 인코딩 방법은 인코딩 블록의 예측값을 확정하고, 상기 인코딩 블록과 상기 예측값 간의 예측 차이값을 계산하는 단계; 상기 예측 차이값에 대해 적어도 한 번의 변환을 수행하여 변환 데이터를 획득하고, 상기 변환 데이터를 사용하여 변환 계수를 확정하는 단계; 상기 변환 계수의 스캐닝 모드와 계수 그룹의 크기를 확정하고, 상기 변환 계수를 적어도 하나의 계수 그룹으로 분할하고, 상기 스캐닝 모드에 따라 각각의 상기 계수 그룹에 포함된 변환 계수를 스캔하고, 상기 변환 계수를 적어도 하나의 구문 요소로 전환하는 단계; 상기 계수 그룹의 크기와 상기 구문 요소의 값을 인코딩하고 인코딩 비트를 비트 스트림에 기록하는 단계; 를 포함한다.

Description

이미지 인코딩, 디코딩 방법 및 장치, 전자 설비 및 시스템
본 출원은 통신분야에 관한 것으로, 구체적으로 이미지 인코딩, 디코딩 방법 및 장치, 전자 설비 및 시스템에 관한 것이다.
본 출원은 2018년 06월 27일에 중국 특허청에 제출된 출원 번호가 201810681664.7인 중국 특허 출원의 우선권을 주장하는 바, 해당 출원의 전부 내용은 참조로 본 출원에 포함된다.
디지털 비디오(Video)와 이미지(Picture)의 압축 인코딩 기술은 비디오와 이미지의 화소점 샘플값 사이의 관련성을 사용하여 비디오와 이미지에 존재하는 중복을 제거한다. 이미지 압축은 이미지에서 인접한 화소점(Pixel) 샘플값(Sample) 사이의 공간 도메인의 관련성을 사용하고 인접한 인코딩된 화소점을 사용하여 인코딩될 화소점을 예측하는 방법을 통해, 공간 도메인에서 인접한 화소점 사이의 중복을 감소시킨다. 이러한 유형의 방법을 일반적으로 인트라 예측(Intra Prediction)이라고 한다. 디지털 비디오는 일련의 연속되는 이미지로 구성된다. 디지털 비디오 압축은 단일 프레임 이미지 중 공간 도메인의 인접한 화소점 사이의 관령성을 사용할 뿐만 아니라, 시간 도메인에서 인접한 이미지 사의의 관련성도 사용하고, 예를 들어, 모션 예측(Motion Estimation) 및 모션 보상(Motion Compensation) 방법을 사용하고, 인코딩된 이미지를 참조로 사용하여 현재 인코딩 이미지에 대해 예측한다. 이러한 유형의 방법을 일반적으로 인터 예측(Inter Prediction)이라고 한다.
인코딩 과정에서 인코더는 인트라 예측 및 인터 예측 방법을 사용하여 인코딩 블록의 예측값을 확정하고, 상기 인코딩 블록의 샘플값과 상기 예측값 사이의 차이값을 계산하여 상기 인코딩 블록의 예측 차이값(Residual)으로 사용한다. 예측 차이값에 존재하는 공간 도메인 중복을 더 줄이기 위해 인코더는 예측 차이를 변환(Transformation)할 수 있다. 일반적으로 상기 인코딩 블록의 예측 차이는 MxN인 2차원 행렬로 나타낼 수 있으며, 여기서 M과 N은 모두 양의 정수이고 M과 N은 동일하거나 상이할 수 있다. 인코더는 상기 2 차원 행렬을 변환하고, 변환하여 얻은 2 차원 행렬의 데이터를 처리하여 엔트로피 인코딩될 변환 계수(Coefficient)를 얻는다. 예를 들어, H.265/HEVC 표준에서 상기 처리는 상기 데이터를 양자화(Quantization)하거나 상기 데이터를 양자화하지 않는 것일 수 있다. 인코더는 2 차원 행렬이 나타내는 변환 계수를 스캔하고 변환 계수를 인코딩한다. H.265/HEVC 표준에서 인코더 변환 계수의 2 차원 행렬은 하나 또는 다수의 4x4 고정 크기의 계수 그룹(Coefficient Group, CG)으로 분할된다. 인코더는 지정된 스캐닝 순서를 사용하여 4x4 블록 중의 변환 계수를 순차적으로 인코딩한다. 이러한 방법의 주요 단점은 고정된 크기의 계수 그룹을 사용함으로 인해 인코더가 2 차원 행렬 중 변환 계수의 분포 상황에 따라 가장 효과적인 인코딩 계수의 인코딩 방법을 선택할 수 없다는 것이고, 예를 들어 계수 그룹의 크기가 4x4 블록으로 고정된 경우, 계수 스캐닝 순서(실제로는 역순)에 따라, 0이 아닌 마지막 계수를 포함하는 계수 그룹부터 시작하여 각 계수 그룹을 위해, 해당 계수 그룹에 0이 아닌 변환 계수가 포함되어 있는지 여부를 나타내기 위한 플래그 비트를 인코딩하여야 하고, 따라서 변환 계수 행렬에 0이 아닌 계수가 비교적 많은 경우, 해당 플래그 비트의 인코딩 오버 헤드가 비교적 크다.
본 발명의 실시예는 적어도 관련 기술에서 고정된 크기의 계수 그룹을 사용함으로 인해 인코더가 2 차원 행렬 중 변환 계수의 분포 상황에 따라 가장 효과적인 인코딩 계수의 인코딩 모드를 선택할 수 없는 문제를 해결하기 위한 이미지 인코딩, 디코딩 방법 및 장치, 전자 설비 및 시스템을 제공한다.
본 출원의 일 실시예에 따르면, 인코딩 블록의 예측값을 확정하고, 상기 인코딩 블록과 상기 예측값의 예측 차이값을 계산하는 단계; 상기 예측 차이값에 대해 한 번 또는 다수 번의 변환을 수행하여 변환 데이터를 획득하고, 상기 변환 데이터를 사용하여 변환 계수를 확정하는 단계; 상기 변환 계수의 스캐닝 모드와 계수 그룹의 크기를 확정하고, 상기 변환 계수를 하나 또는 다수의 계수 그룹으로 분할하고, 상기 스캐닝 모드에 따라 각각의 상기 계수 그룹에 포함된 변환 계수를 스캔하고, 상기 변환 계수를 하나 또는 다수의 구문(Syntax) 요소로 전환하는 단계; 상기 계수 그룹의 크기와 상기 구문 요소의 값을 인코딩하고 인코딩 비트를 비트 스트림에 기록하는 단계; 를 포함하는 이미지 인코딩 방법을 제공한다.
선택적으로, 상기 인코딩 블록의 예측값을 확정하는 단계는 하나 또는 다수의 인코딩된 이미지를 참조 이미지로 사용하여 인코딩 블록의 예측값을 확정하는 방법; 또는, 상기 인코딩 블록이 위치한 이미지에서 인코딩된 부분을 참조로 하여 상기 인코딩 블록의 예측값을 확정하는 방법; 중 적어도 하나를 포함한다.
선택적으로, 상기 변환 데이터를 사용하여 변환 계수를 확정하는 단계는 상기 변환 데이터에 대해 양자화를 수행하는 것으로 판단하는 경우, 상기 변환 데이터에 대해 양자화 처리하여 상기 변환 계수를 획득하는 것; 상기 변환 데이터에 대해 양자화를 수행하지 않는 것으로 판단하는 경우, 상기 변환 데이터를 사용하여 상기 변환 계수를 설정하는 것; 을 포함한다.
선택적으로, 상기 변환 계수의 계수 그룹의 크기를 확정하는 단계는 기설정된 후보 값에 따라 상기 변환 계수의 계수 그룹의 크기를 확정하는 것을 포함한다.
선택적으로, 기설정된 상기 후보 값에 따라 상기 변환 계수의 계수 그룹의 크기를 확정하는 단계는 레이트 왜곡 최적화 방법을 사용하여 상기 후보 값에서 상기 변환 계수의 계수 그룹의 크기를 확정하는 것을 포함한다.
선택적으로, 상기 후보 값 중의 값을 계수 그룹의 크기로 사용할 때의 상기 변환 계수의 인코딩 비트 수를 계산하고, 상기 인코딩 비트 수를 최소화할 수 있는 상기 후보 값 중의 값을 선택하여 상기 변환 계수의 계수 그룹의 크기로 한다.
선택적으로, 기설정된 상기 후보 값에 따라 상기 변환 계수의 계수 그룹의 크기를 확정하는 단계는은 상기 변환 계수의 분포 상황에 따라 상기 변환 계수의 계수 그룹의 크기를 확정하는 것을 포함한다.
선택적으로, 상기 변환 계수의 분포 상황은 상기 변환 계수를 스캔한 후 검출된 상기 변환계수에서 0이 아닌 계수의 집중 정도를 의미하며, 여기서 상기 0이 아닌 계수의 집중 정도는 상기 변환 계수의 0이 아닌 계수 사이에서 값이 0인 계수의 개수를 의미하고, 상기 값이 0인 계수의 개수가 적을수록 0이 아닌 계수의 집중 정도가 더 높은 것을 나타내고; 상기 후보 값에서 상기 집중 정도를 가장 높게 할수 있는 상기 후보 값 중의 값을 선택하여 상기 변환 계수의 계수 그룹의 크기로 한다.
선택적으로, 상기 후보 값은 하나 또는 다수의 고정값, 하나 또는 다수의 구성된 값 및 상기 인코딩 블록의 인접한 인코딩된 블록이 사용하는 계수 그룹의 크기의 값 중 적어도 하나를 포함한다.
선택적으로, 상기 계수 그룹의 크기의 기설정된 후보 값은 상기 하나 또는 다수의 구성된 값인 경우, 상기 방법은 상기 후보 값의 식별자 파라미터를 상기 비트 스트림의 하나 또는 다수의 데이터 유닛에 기록하는 단계를 더 포함하고, 여기서, 상기 식별자 파라미터는 상기 구성된 상기 후보 값을 지시하는데 사용되고; 상기 비트 스트림 중의 데이터 유닛은 하나 또는 다수의 파라미터 세트, 슬라이스 헤더, 블록 레이어 데이터 유닛 중 적어도 하나를 포함한다.
선택적으로, 상기 계수 그룹의 크기의 기설정된 후보 값의 식별자 파라미터는 계수 그룹의 크기, 계수 그룹의 변의 길이, 계수 그룹의 너비 및 높이 중 적어도 하나를 포함한다.
선택적으로, 상기 식별자 파라미터의 최대값 및 최소값을 상기 비트 스트림에 기록하는 방법; 상기 식별자 파라미터의 최대값 및 상기 계수 그룹의 최대 분할 계층을 상기 비트 스트림에 기록하는 방법; 상기 식별자 파라미터의 최대값 및 상기 계수 그룹의 크기의 최대값과 최소값 사이의 차이값을 상기 비트 스트림에 기록하는 방법; 상기 식별자 파라미터의 최소값 및 상기 계수 그룹의 최대 상향 분할 계층을 상기 비트 스트림에 기록하는 방법; 상기 식별자 파라미터의 최소값 및 상기 계수 그룹의 크기의 최대값과 최소값 사이의 차이값을 상기 비트 스트림에 기록하는 방법; 중 하나 또는 다수의 방법을 사용하여 상기 식별자 파라미터를 상기 비트 스트림에 기록한다.
선택적으로, 하나 또는 다수의 방법을 사용하여 상기 식별자 파라미터를 상기 비트 스트림에 기록하는 단계는 상기 식별자 파라미터의 디폴트 값을 상기 비트 스트림에 기록하는 것을 더 포함한다.
선택적으로, 상기 계수 그룹의 크기의 기설정된 후보 값의 식별자 파라미터는 대응되는 계수 그룹의 크기가 상기 후보 값에 포함되는 계수 그룹의 크기인지 여부를 지시하는 하나 또는 다수의 플래그 비트를 포함한다.
선택적으로, 상기 계수 그룹의 크기의 기설정된 후보 값의 식별자 파라미터는 상기 식별자 파라미터가 지시하는 기설정된 하나 또는 다수의 예측모드에 대응되는 하나 또는 다수의 계수 그룹의 크기를 포함한다.
선택적으로, 상기 계수 그룹의 크기의 기설정된 후보 값의 식별자 파라미터는 상기 식별자 파라미터가 지시하는 기설정된 한 번 또는 다수 번의 변환에 대응되는 하나 또는 다수의 계수 그룹의 크기를 포함한다.
선택적으로, 상기 계수 그룹의 크기의 기설정된 후보 값의 식별자 파라미터는 상기 식별자 파라미터가 지시하는 기설정된 하나 또는 다수의 변환 유형에 대응되는 하나 또는 다수의 계수 그룹의 크기를 포함한다.
선택적으로, 상기 계수 그룹의 크기의 기설정된 후보 값의 식별자 파라미터는 상기 식별자 파라미터가 지시하는 기설정된 하나 또는 다수의 양자화 파라미터에 대응되는 하나 또는 다수의 계수 그룹의 크기; 또는, 상기 식별자 파라미터가 지시하는 기설정된 하나 또는 다수의 양자화 파라미터의 값 범위에 대응되는 하나 또는 다수의 계수 그룹의 크기를 포함한다.
선택적으로, 상기 계수 그룹의 크기의 기설정된 후보 값의 식별자 파라미터는 상기 식별자 파라미터가 지시하는 기설정된 프로파일/티어/레벨(Profile/Tier/Level)에 대응되는 하나 또는 다수의 계수 그룹의 크기를 포함한다.
선택적으로, 상기 변환 계수의 계수 그룹의 크기를 확정하는 단계는 상기 인코딩 블록의 제 1 인코딩 파라미터에 따라, 상기 인코딩 블록에서 상기 변환 계수의 계수 그룹의 크기를 상기 제 1 인코딩 파라미터에 대응되는 계수 그룹의 크기로 설정하는 것을 포함하고, 여기서 상기 제 1 인코딩 파라미터는 상기 인코딩 블록에 포함된 변환 블록의 크기, 상기 인코딩 블록의 예측모드, 상기 인코딩 블록에 포함된 변환 블록이 사용하는 변환 유형, 양자화 파라미터 중 적어도 하나를 포함한다.
선택적으로, 상기 인코딩 블록의 제 1 인코딩 파라미터에 따라, 상기 인코딩 블록에서 상기 변환 계수의 계수 그룹의 크기를 상기 제 1 인코딩 파라미터에 대응되는 계수 그룹의 크기로 설정하는 단계는 상기 인코딩 블록에 포함된 변환 블록의 크기가 제 1 기설정 값과 동일한 경우, 상기 계수 그룹의 크기를 상기 제 1 기설정 값에 대응되는 계수 그룹의 크기로 설정하는 것을 포함한다.
선택적으로, 상기 인코딩 블록의 제 1 인코딩 파라미터에 따라, 상기 인코딩 블록에서 상기 변환 계수의 계수 그룹의 크기를 상기 제 1 인코딩 파라미터에 대응되는 계수 그룹의 크기로 설정하는 단계는 상기 인코딩 블록의 예측모드가 제 1 기설정 모드인 경우, 상기 계수 그룹의 크기를 상기 제 1 기설정 모드에 대응되는 계수 그룹의 크기로 설정하는 것을 포함한다.
선택적으로, 상기 인코딩 블록의 제 1 인코딩 파라미터에 따라, 상기 인코딩 블록에서 상기 변환 계수의 계수 그룹의 크기를 상기 제 1 인코딩 파라미터에 대응되는 계수 그룹의 크기로 설정하는 단계는 상기 인코딩 블록에 포함된 변환 블록이 사용하는 변환 유형이 제 1 변환 유형인 경우, 상기 계수 그룹의 크기를 상기 제 1 변환 유형에 대응되는 계수 그룹의 크기로 설정하는 것을 포함한다.
선택적으로, 상기 인코딩 블록의 제 1 인코딩 파라미터에 따라, 상기 인코딩 블록에서 상기 변환 계수의 계수 그룹의 크기를 상기 제 1 인코딩 파라미터에 대응되는 계수 그룹의 크기로 설정하는 단계는 상기 양자화 파라미터의 값이 제 2 기설정 값과 동일한 경우, 상기 계수 그룹의 크기를 상기 제 2 기설정 값에 대응되는 계수 그룹의 크기로 설정하는 것; 또는 상기 양자화 파라미터의 값이 제 1 기설정 값의 범위 내에 있는 경우, 상기 계수 그룹의 크기를 상기 제 1 기설정 값의 범위에 대응되는 계수 그룹의 크기로 설정하는 것을 포함한다.
선택적으로, 상기 변환 계수의 스캐닝 모드를 확정하는 단계는 기설정된 후보 스캐닝 모드에 따라 상기 변환 계수에 대해 스캐닝 모드를 확정하는 것을 포함하고, 여기서 상기 스캐닝 모드는 상기 변환 계수의 2 차원 행렬 중 요소에 대한 처리 순서이다.
선택적으로, 기설정된 후보 스캐닝 모드에 따라 상기 변환 계수에 대해 스캐닝 모드를 확정하는 단계는 레이트 왜곡 최적화 방법을 사용하여 상기 후보 스캐닝 모드에서 상기 변환 계수의 스캐닝 모드를 확정하는 것을 포함한다.
선택적으로, 상기 후보 스캐닝 모드 중의 스캐닝 모드를 사용할 때의 상기 변환 계수의 인코딩 비트 수를 계산하고, 상기 인코딩 비트 수를 최소화할 수 있는 상기 후보 스캐닝 모드 중의 스캐닝 모드를 선택하여 상기 변환 계수의 스캐닝 모드로 한다.
선택적으로, 기설정된 후보 스캐닝 모드에 따라 상기 변환 계수에 대해 스캐닝 모드를 확정하는 단계는 상기 변환 계수의 분포 상황에 따라 상기 변환 계수의 스캐닝 모드를 확정하는 것을 포함한다.
선택적으로, 상기 변환 계수의 분포 상황은 상기 변환 계수를 스캔한 후 검출된 상기 변환계수에서 0이 아닌 계수의 집중 정도를 의미하며, 여기서 상기 0이 아닌 계수의 집중 정도는 상기 변환 계수의 0이 아닌 계수 사이에서 값이 0인 계수의 개수를 의미하고, 상기 값이 0인 계수의 개수가 적을수록 0이 아닌 계수의 집중 정도가 더 높은 것을 나타내고; 상기 후보 스캐닝 모드에서 상기 집중 정도를 가장 높게 할수 있는 상기 후보 값 중의 스캐닝 모드를 선택하여 상기 변환 계수의 스캐닝 모드로 한다.
선택적으로, 상기 후보 스캐닝 모드는 하나 또는 다수의 고정 스캐닝 모드; 하나 또는 다수의 구성된 스캐닝 모드; 상기 인코딩 블록의 인접한 인코딩된 블록이 사용하는 스캐닝 모드; 중 적어도 하나를 포함한다.
선택적으로, 상기 후보 스캐닝 모드가 상기 하나 또는 다수의 구성된 스캐닝 모드인 경우, 상기 방법은 상기 후보 스캐닝 모드 파라미터를 상기 비트 스트림의 하나 또는 다수의 데이터 유닛에 기록하는 단계를 더 포함하고, 여기서 상기 후보 스캐닝 모드 파라미터는 상기 구성된 상기 후보 스캐닝 모드를 지시하는데 사용되고; 상기 비트 스트림 중의 데이터 유닛은 하나 또는 다수의 파라미터 세트, 슬라이스 헤더, 블록 레이어 데이터 유닛 중 적어도 하나를 포함한다.
선택적으로, 상기 후보 스캐닝 모드 파라미터는 상기 변환 계수의 2 차원 행렬 중 요소의 처리 순서를 더 포함한다.
선택적으로, 상기 후보 스캐닝 모드 파라미터는 상기 스캐닝 모드의 파라미터의 디폴트 값을 더 포함한다.
선택적으로, 상기 후보 스캐닝 모드 파라미터는 대응되는 스캐닝 모드가 상기 후보 스캐닝 모드에 포함되는지 여부를 지시하는 하나 또는 다수의 플래그 비트를 포함한다.
선택적으로, 상기 후보 스캐닝 모드 파라미터는 상기 후보 스캐닝 모드 파라미터가 지시하는 기설정된 하나 또는 다수의 예측모드에 대응되는 하나 또는 다수의 스캐닝 모드를 포함한다.
선택적으로, 상기 후보 스캐닝 모드 파라미터는 상기 후보 스캐닝 모드 파라미터가 지시하는 기설정된 한 번 또는 다수 번의 변환에 대응되는 하나 또는 다수의 스캐닝 모드를 포함한다.
선택적으로, 상기 후보 스캐닝 모드 파라미터는 상기 후보 스캐닝 모드 파라미터가 지시하는 기설정된 하나 또는 다수의 변환 유형에 대응되는 하나 또는 다수의 스캐닝 모드를 포함한다.
선택적으로, 상기 후보 스캐닝 모드 파라미터는 상기 후보 스캐닝 모드 파라미터가 지시하는 기설정된 하나 또는 다수의 양자화 파라미터에 대응되는 하나 또는 다수의 스캐닝 모드; 또는 상기 후보 스캐닝 모드 파라미터가 지시하는 기설정된 하나 또는 다수의 양자화 파라미터의 값 범위에 대응되는 하나 또는 다수의 스캐닝 모드를 포함한다.
선택적으로, 상기 후보 스캐닝 모드 파라미터는 상기 후보 스캐닝 모드 파라미터가 지시하는 기설정된 Profile/Tier/Level에 대응되는 하나 또는 다수의 스캐닝 모드를 포함한다.
선택적으로, 상기 변환 계수의 스캐닝 모드를 확정하는 단계는 상기 변환 블록의 제 2 인코딩 파라미터에 따라, 상기 인코딩 블록에서 상기 변환 계수의 스캐닝 모드를 상기 제 2 인코딩 파라미터에 대응되는 계수 그룹의 스캐닝 모드로 설정하는 것을 포함하고, 여기서 상기 제 2 인코딩 파라미터는 상기 인코딩 블록에 포함된 변환 블록의 크기, 상기 인코딩 블록의 예측모드, 상기 인코딩 블록에 포함된 변환 블록이 사용하는 변환 유형, 상기 인코딩 블록의 크기 중 적어도 하나를 포함하고; 상기 스캐닝 모드는 상기 변환 계수의 2 차원 행렬 중 요소에 대한 처리 순서이다.
선택적으로, 상기 변환 블록의 제 2 인코딩 파라미터에 따라, 상기 인코딩 블록에서 상기 변환 계수의 스캐닝 모드를 상기 제 2 인코딩 파라미터에 대응되는 계수 그룹의 스캐닝 모드로 설정하는 단계는 상기 인코딩 블록에 포함된 변환 블록의 크기가 제 3 기설정 값과 동일한 경우, 상기 변환 계수의 스캐닝 모드를 상기 제 3 기설정 값에 대응되는 스캐닝 모드로 설정하는 것을 포함한다.
선택적으로, 상기 변환 블록의 제 2 인코딩 파라미터에 따라, 상기 인코딩 블록에서 상기 변환 계수의 스캐닝 모드를 상기 제 2 인코딩 파라미터에 대응되는 계수 그룹의 스캐닝 모드로 설정하는 단계는 상기 인코딩 블록의 예측모드가 제 2 기설정 모드인 경우, 상기 변환 계수의 스캐닝 모드를 상기 제 2 기설정 모드에 대응되는 스캐닝 모드로 설정하는 것을 포함한다.
선택적으로, 상기 변환 블록의 제 2 인코딩 파라미터에 따라, 상기 인코딩 블록에서 상기 변환 계수의 스캐닝 모드를 상기 제 2 인코딩 파라미터에 대응되는 계수 그룹의 스캐닝 모드로 설정하는 단계는 상기 인코딩 블록에 포함된 변환 블록이 사용하는 변환 유형이 제 2 변환 유형인 경우, 상기 변환 계수의 스캐닝 모드를 상기 제 2 변환 유형에 대응되는 스캐닝 모드로 설정하는 것을 포함한다.
선택적으로, 상기 변환 블록의 제 2 인코딩 파라미터에 따라, 상기 인코딩 블록에서 상기 변환 계수의 스캐닝 모드를 상기 제 2 인코딩 파라미터에 대응되는 계수 그룹의 스캐닝 모드로 설정하는 단계는 상기 인코딩 블록의 크기가 제 4 기설정 값과 동일한 경우, 상기 변환 계수의 스캐닝 모드를 상기 제 4 기설정 값에 대응되는 스캐닝 모드로 설정하는 것을 포함한다.
선택적으로, 상기 변환 계수의 스캐닝 모드와 계수 그룹의 크기를 확정하는 단계는 레이트 왜곡 최적화 방법을 사용하여 상기 변환 계수의 계수 그룹의 크기 및 스캐닝 모드를 공동으로 확정하는 것을 포함한다.
선택적으로, 상기 변환 계수를 하나 또는 다수의 구문 요소로 전환하는 단계는 상기 계수 그룹의 크기와 스캐닝 모드에 따라 상기 변환 계수를 하나 또는 다수의 계수 그룹으로 분할하고 상기 스캐닝 모드에 따라 상기 계수 그룹에 포함된 변환 계수를 스캔하며, 상기 변환 계수를 다음의 구문 요소: 0이 아닌 계수의 시작 위치를 지시하는 구문 요소; 계수 그룹에 포함된 0이 아닌 계수를 지시하는 구문 요소; 계수 그룹에서 0이 아닌 계수의 위치를 지시하는 구문 요소; 계수 그룹에서 0이 아닌 계수의 값을 지시하는 구문 요소; 중 적어도 하나로 표시하는 것을 포함한다.
선택적으로, 상기 계수 그룹의 크기와 상기 구문 요소의 값을 인코딩하고, 인코딩 비트를 비트 스트림에 기록하는 단계는 상기 계수 그룹의 크기를 인코딩하는 방법; 상기 계수 그룹의 크기에 대응되는 인덱스 번호의 값을 인코딩하는 방법; 상기 계수 그룹의 크기에 대응되는 플래그 비트를 설정하고, 상기 플래그 비트의 값을 인코딩하는 방법; 중 하나의 방법을 사용하여 상기 변환 계수가 사용하는 계수 그룹의 크기를 인코딩하는 것을 포함한다.
선택적으로, 상기 계수 그룹의 크기와 상기 구문 요소의 값을 인코딩하고, 인코딩 비트를 비트 스트림에 기록하는 단계는 인코딩 비트를 비트 스트림 중의 데이터 유닛에 기록하는 것을 포함하고, 상기 비트 스트림 중의 데이터 유닛은 하나 또는 다수의 파라미터 세트, 슬라이스 헤더, 블록 레이어 데이터 유닛 중 적어도 하나를 포함한다.
본 출원의 다른 실시예에 따르면, 비트 스트림을 파싱하여 디코딩 블록의 예측값을 확정하는 단계; 상기 비트 스트림을 파싱하여 상기 디코딩 블록 중 변환 계수의 스캐닝 모드, 계수 그룹의 크기 및 변환 계수와 관련된 구문 요소의 값을 확정하는 단계; 상기 스캐닝 모드 및 상기 계수 그룹의 크기에 따라 상기 디코딩 블록 중의 계수 그룹을 처리하고, 상기 구문 요소를 상기 계수 그룹 중의 변환 계수로 전환하는 단계; 상기 변환 계수를 처리하여 변환 계수의 복원 값을 얻는 단계; 상기 변환 계수의 복원 값에 대해 한 번 또는 다수 번의 변환을 수행하여 상기 디코딩 블록의 예측 차이값을 얻는 단계; 상기 예측값과 상기 예측 차이를 사용하여 상기 디코딩 블록의 복원 값을 확정하는 단계; 를 포함하는 이미지 디코딩 방법을 제공한다.
선택적으로, 상기 비트 스트림을 파싱하여 상기 디코딩 블록의 예측값을 확정하는 단계는 상기 비트 스트림을 파싱하여 상기 디코딩 블록의 인터 예측 파라미터를 획득하고; 상기 인터 예측 파라미터에 따라 하나 또는 다수의 디코딩된 이미지를 참조 이미지로 사용하여 상기 디코딩 블록의 예측값을 확정하는 방법; 또는, 상기 비트 스트림을 파싱하여 상기 디코딩 블록의 인트라 예측 파라미터를 획득하고; 상기 인트라 예측 파라미터에 따라 상기 디코딩 블록이 위치한 이미지에서 디코딩된 부분을 참조로 하여 상기 디코딩 블록의 예측값을 확정하는 방법; 중 적어도 하나를 포함한다.
선택적으로, 상기 비트 스트림을 파싱하여 상기 디코딩 블록 중 변환 계수의 계수 그룹의 크기를 확정하는 단계는 상기 비트 스트림을 파싱하여 상기 비트 스트림 중의 데이터 유닛으로부터 제 1 계수 그룹 파라미터를 획득하고, 상기 제 1 계수 그룹 파라미터에 따라 상기 계수 그룹의 크기를 확정하는 것을 포함하고; 여기서, 상기 비트 스트림 중의 데이터 유닛은 하나 또는 다수의 파라미터 세트, 슬라이스 헤더, 블록 레이어 데이터 유닛 중 적어도 하나를 포함한다.
선택적으로, 상기 제 1 계수 그룹 파라미터에 따라 상기 계수 그룹의 크기를 확정하는 단계는 상기 제 1 계수 그룹 파라미터를 사용하여 상기 계수 그룹의 크기를 설정하는 것을 포함한다.
선택적으로, 상기 제 1 계수 그룹 파라미터에 따라 상기 계수 그룹의 크기를 확정하는 단계는 상기 제 1 계수 그룹 파라미터가 상기 디코딩 블록의 인접한 디코딩된 블록을 지시하고, 상기 인접한 디코딩된 블록의 계수 그룹의 크기를 사용하여 상기 계수 그룹의 크기를 설정하는 것을 포함한다.
선택적으로, 상기 제 1 계수 그룹 파라미터에 따라 상기 계수 그룹의 크기를 확정하는 단계는 상기 제 1 계수 그룹 파라미터에 따라 계수 그룹의 크기의 후보 값으로부터 상기 디코딩 블록의 변환 계수의 계수 그룹의 크기를 확정하는 것을 포함한다.
선택적으로, 상기 제 1 계수 그룹 파라미터는 인덱스 번호를 포함하고, 상기 후보 값에서 상기 인덱스 번호에 대응되는 계수 그룹의 크기를 사용하여 상기 계수 그룹의 크기를 설정한다.
선택적으로, 상기 제 1 계수 그룹 파라미터는 플래그 비트를 포함하고, 상기 후보 값에서 상기 플래그 비트에 대응되는 계수 그룹의 크기를 사용하여 상기 계수 그룹의 크기를 설정한다.
선택적으로, 상기 계수 그룹의 크기의 후보 값은 하나 또는 다수의 고정값이다.
선택적으로, 상기 제 1 계수 그룹 파라미터는 식별자 파라미터를 포함하고, 상기 식별자 파라미터를 사용하여 상기 계수 그룹의 크기의 후보 값을 구성한다.
선택적으로, 상기 식별자 파라미터는 계수 그룹의 크기, 계수 그룹의 변의 길이, 계수 그룹의 너비 및 높이 중 적어도 하나를 포함한다.
선택적으로, 상기 식별자 파라미터의 최대값과 최소값을 획득하고, 기설정된 분할 모드에 따라 상기 최대값과 상기 최소값 이외의 상기 식별자 파라미터의 값을 확정하며, 상기 식별자 파라미터의 값을 사용하여 상기 후보 값을 설정하는 방법; 상기 식별자 파라미터의 최대값과 상기 계수 그룹의 최대 분할 계층을 획득하고, 상기 기설정된 분할 모드에 따라 최대값 이외의 상기 식별자 파라미터의 값을 확정하며, 상기 식별자 파라미터의 값을 사용하여 상기 후보 값을 설정하는 방법; 상기 식별자 파라미터의 최대값과 상기 계수 그룹의 크기의 최대값과 최소값 사이의 차이값을 획득하고, 상기 기설정된 분할 모드에 따라 최대값 이외의 상기 식별자 파라미터의 값을 확정하며, 상기 식별자 파라미터의 값을 사용하여 상기 후보 값을 설정하는 방법; 상기 식별자 파라미터의 최소값과 상기 계수 그룹의 최대 상향 분할 계층을 획득하고, 상기 기설정된 분할 모드에 따라 최소값 이외의 상기 식별자 파라미터의 값을 확정하며, 상기 식별자 파라미터의 값을 사용하여 상기 후보 값을 설정하는 방법; 상기 식별자 파라미터의 최소값과 상기 계수 그룹의 크기의 최대값과 최소값 사이의 차이값을 획득하고, 상기 기설정된 분할 모드에 따라 최소값 이외의 상기 식별자 파라미터의 값을 확정하며, 상기 식별자 파라미터의 값을 사용하여 상기 후보 값을 설정하는 방법; 중 하나 또는 다수의 방법을 사용하고, 상기 식별자 파라미터를 사용하여 상기 계수 그룹의 크기의 후보 값을 구성한다.
선택적으로, 상기 기설정된 분할 모드는 4진 분할(quaternary division), 3진 분할(trinary division) 및 2진 분할(binary division) 중 적어도 하나를 포함한다.
선택적으로, 상기 식별자 파라미터를 사용하여 상기 계수 그룹의 크기의 후보 값을 구성하는 단계는 상기 식별자 파라미터의 디폴트 값을 사용하여 상기 후보 값을 설정하는 것을 포함한다.
선택적으로, 상기 식별자 파라미터를 사용하여 상기 계수 그룹의 크기의 후보 값을 구성하는 단계는 상기 식별자 파라미터는 대응되는 계수 그룹의 크기가 상기 후보 값에 포함되는지 여부를 지시하는 하나 또는 다수의 플래그 비트이고, 상기 식별자 파라미터에 따라 상기 후보 값에 포함되는 계수 그룹의 크기를 설정하는 것을 포함한다.
선택적으로, 상기 식별자 파라미터를 사용하여 상기 계수 그룹의 크기의 후보 값을 구성하는 단계는 상기 식별자 파라미터는 기설정된 Profile/Tier/Level에 대응되는 하나 또는 다수의 계수 그룹의 크기를 지시하고, 상기 식별자 파라미터에 따라 상기 후보 값에 포함되는 계수 그룹의 크기를 설정하는 것을 포함한다.
선택적으로, 상기 제 1 계수 그룹 파라미터에 따라 상기 계수 그룹의 크기를 확정하는 단계는 상기 제 1 파리미터 그룹 파라미터에는 상기 디코딩 블록의 제 1 디코딩 파라미터가 포함되고, 상기 디코딩 블록의 제 1 디코딩 파라미터에 따라 상기 계수 그룹의 크기를 상기 제 1 디코딩 파라미터에 대응되는 계수 그룹의 크기로 설정하는 것을 포함하고, 여기서, 상기 제 1 디코딩 파라미터는 상기 디코딩 블록에 포함된 변환 블록의 크기, 상기 디코딩 블록의 예측모드, 상기 디코딩 블록에 포함된 변환 블록이 사용하는 변환 유형, 양자화 파라미터 중 적어도 하나를 포함한다.
선택적으로, 상기 계수 그룹의 크기를 상기 제 1 디코딩 파라미터에 대응되는 계수 그룹의 크기로 설정하는 단계는 상기 디코딩 블록에 포함된 변환 블록의 크기가 제 1 기설정 값과 동일한 경우, 상기 계수 그룹의 크기를 상기 제 1 기설정 값에 대응되는 계수 그룹의 크기로 설정하는 것을 포함한다.
선택적으로, 상기 제 1 파리미터 그룹 파라미터에 따라 상기 제 1 기설정 값에 대응되는 계수 그룹의 크기를 획득한다.
선택적으로, 상기 계수 그룹의 크기를 상기 제 1 디코딩 파라미터에 대응되는 계수 그룹의 크기로 설정하는 단계는 상기 디코딩 블록의 예측모드가 제 1 기설정 모드인 경우, 상기 계수 그룹의 크기를 상기 제 1 기설정 모드에 대응되는 계수 그룹의 크기로 설정하는 것을 포함한다.
선택적으로, 상기 제 1 파리미터 그룹 파라미터에 따라, 상기 제 1 기설정 모드에 대응되는 계수 그룹의 크기를 획득한다.
선택적으로, 상기 계수 그룹의 크기를 상기 제 1 디코딩 파라미터에 대응되는 계수 그룹의 크기로 설정하는 단계는 상기 디코딩 블록에 포함된 변환 블록이 사용하는 변환 유형이 제 1 변환 유형인 경우, 상기 계수 그룹의 크기를 상기 제 1 변환 유형에 대응되는 계수 그룹의 크기로 설정하는 것을 포함한다.
선택적으로, 상기 제 1 파리미터 그룹 파라미터에 따라, 상기 제 1 변환 유형에 대응되는 계수 그룹의 크기를 획득한다.
선택적으로, 상기 계수 그룹의 크기를 상기 제 1 디코딩 파라미터에 대응되는 계수 그룹의 크기로 설정하는 단계는 상기 양자화 파라미터의 값이 제 2 기설정 값과 동일한 경우, 상기 계수 그룹의 크기를 상기 제 2 기설정 값에 대응되는 계수 그룹의 크기로 설정하는 것; 또는, 상기 양자화 파라미터의 값이 제 1 기설정 값의 범위 내에 있는 경우, 상기 계수 그룹의 크기를 상기 제 1 기설정 값의 범위에 대응되는 계수 그룹의 크기로 설정하는 것; 을 포함한다.
선택적으로, 상기 제 1 파리미터 그룹 파라미터에 따라, 상기 제 2 기설정 값에 대응되는 계수 그룹의 크기를 획득한다. 또는, 상기 제 1 파리미터 그룹 파라미터에 따라, 상기 제 1 기설정 값의 범위에 대응되는 계수 그룹의 크기를 획득한다.
선택적으로, 상기 비트 스트림을 파싱하여 상기 변환 계수의 스캐닝 모드를 확정하는 단계는 상기 비트 스트림 중의 데이터 유닛을 파싱하여 제 1 스캐닝 모드 파라미터를 획득하고, 상기 제 1 스캐닝 모드 파라미터에 따라 상기 변환 계수의 스캐닝 모드를 확정하는 것을 포함하고, 여기서, 상기 스캐닝 모드는 상기 변환 계수의 2 차원 행렬 중 요소에 대한 처리 순서이고; 상기 비트 스트림 중의 데이터 유닛은 하나 또는 다수의 파라미터 세트, 슬라이스 헤더, 블록 레이어 데이터 유닛 중 적어도 하나를 포함한다.
선택적으로, 상기 비트 스트림 중의 데이터 유닛을 파싱하여 제 1 스캐닝 모드 파라미터를 획득하고, 상기 제 1 스캐닝 모드 파라미터에 따라 상기 변환 계수의 스캐닝 모드를 확정하는 단계는 상기 제 1 스캐닝 모드 파라미터가 지시하는 스캐닝 모드를 상기 변환 계수의 스캐닝 모드로 사용하는 것을 포함한다.
선택적으로, 상기 제 1 스캐닝 모드 파라미터가 지시하는 스캐닝 모드를 상기 변환 계수의 스캐닝 모드로 사용하는 단계는 상기 제 1 스캐닝 모드 파라미터가 상기 디코딩 블록의 인접한 디코딩된 블록을 지시하고, 상기 인접한 디코딩된 블록의 스캐닝 모드를 사용하여 상기 변환 계수의 스캐닝 모드를 설정하는 것을 포함한다.
선택적으로, 상기 제 1 스캐닝 모드 파라미터가 지시하는 스캐닝 모드를 상기 변환 계수의 스캐닝 모드로 사용하는 단계는 상기 제 1 스캐닝 모드 파라미터에 따라 후보 스캐닝 모드로부터 상기 변환 계수의 스캐닝 모드를 확정하는 것을 더 포함한다.
선택적으로, 상기 제 1 스캐닝 모드 파라미터는 스캐닝 모드 인덱스 번호를 포함하고, 상기 후보 스캐닝 모드에서 상기 스캐닝 모드 인덱스 번호에 대응되는 스캐닝 모드를 사용하여 상기 변환 계수의 스캐닝 모드를 설정한다.
선택적으로, 상기 제 1 스캐닝 모드 파라미터는 스캐닝 모드 지시 플래그 비트를 포함하고, 상기 후보 스캐닝 모드에서 상기 스캐닝 모드 지시 플래그 비트에 대응되는 스캐닝 모드를 사용하여 상기 변환 계수의 스캐닝 모드를 설정하는 단계를 더 포함한다.
선택적으로, 상기 후보 스캐닝 모드는 하나 또는 다수의 고정 스캐닝 모드; 상기 제 1 스캐닝 모드 파라미터를 사용하여 구성된 상기 후보 스캐닝 모드; 중 적어도 하나를 포함한다.
선택적으로, 상기 제 1 스캐닝 모드 파라미터를 사용하여 상기 후보 스캐닝 모드를 구성하는 단계는 상기 제 1 스캐닝 모드 파라미터는 디폴트 스캐닝 모드를 포함하고, 상기 디폴트 스캐닝 모드를 사용하여 상기 후보 스캐닝 모드를 설정하는 것을 포함한다.
선택적으로, 상기 제 1 스캐닝 모드 파라미터를 사용하여 상기 후보 스캐닝 모드를 구성하는 단계는 상기 제 1 후보 스캐닝 모드 파라미터는 하나 또는 다수의 후보 스캐닝 모드 지시 플래그 비트를 포함하고, 상기 후보 스캐닝 모드 지시 플래그 비트에 대응되는 스캐닝 모드를 사용하여 상기 후보 스캐닝 모드를 설정하는 것을 포함한다.
선택적으로, 상기 제 1 스캐닝 모드 파라미터를 사용하여 상기 후보 스캐닝 모드를 구성하는 단계는 상기 제 1 스캐닝 모드 파라미터가 지시하는 기설정된 Profile/Tier/Level에 대응되는 하나 또는 다수의 스캐닝 모드를 사용하여 상기 후보 스캐닝 모드를 설정하는 것을 포함한다.
선택적으로, 상기 제 1 스캐닝 모드 파라미터를 사용하여 상기 후보 스캐닝 모드를 구성하는 단계는 상기 제 1 스캐닝 모드 파라미터가 지시하는 상기 변환 계수의 위치와 스캔 후의 변환 계수의 위치 사이의 대응관계를 사용하여 상기 후보 스캐닝 모드를 설정하는 것을 포함한다.
선택적으로, 상기 비트 스트림 중의 데이터 유닛을 파싱하여 제 1 스캐닝 모드 파라미터를 획득하고, 상기 제 1 스캐닝 모드 파라미터에 따라 상기 변환 계수의 스캐닝 모드를 확정하는 단계는 상기 제 1 스캐닝 모드 파라미터는 상기 디코딩 블록의 제 2 디코딩 파라미터를 포함하는 것; 상기 제 2 디코딩 파라미터에 따라 상기 변환 계수의 스캐닝 모드를 확정하는 것을 포함하며, 여기서 상기 제 2 디코딩 파라미터는 상기 디코딩 블록에 포함된 변환 블록의 크기, 상기 디코딩 블록의 예측모드, 상기 디코딩 블록에 포함된 변환 블록이 사용하는 변환 유형, 상기 디코딩 블록의 크기 중 적어도 하나를 포함한다.
선택적으로, 상기 제 2 디코딩 파라미터에 따라 상기 변환 계수의 스캐닝 모드를 상기 제 2 디코딩 파라미터에 대응되는 스캐닝 모드로 설정하는 단계는 상기 디코딩 블록에 포함된 변환 블록의 크기가 제 3 기설정 값과 동일한 경우, 상기 변환 계수의 스캐닝 모드를 상기 제 3 기설정 값에 대응되는 스캐닝 모드로 설정하는 것을 포함한다.
선택적으로, 상기 제 1 파리미터 그룹 파라미터에 따라 상기 제 3 기설정 값에 대응되는 스캐닝 모드를 획득한다.
선택적으로, 상기 제 2 디코딩 파라미터에 따라 상기 변환 계수의 스캐닝 모드를 상기 제 2 디코딩 파라미터에 대응되는 스캐닝 모드로 설정하는 단계는 상기 디코딩 블록의 예측모드가 제 2 기설정 모드인 경우, 상기 변환 계수의 스캐닝 모드를 상기 제 2 기설정 모드에 대응되는 스캐닝 모드로 설정하는 것을 포함한다.
선택적으로, 상기 제 1 파리미터 그룹 파라미터에 따라 상기 제 2 기설정 모드에 대응되는 스캐닝 모드를 획득한다.
선택적으로, 상기 제 2 디코딩 파라미터에 따라 상기 변환 계수의 스캐닝 모드를 상기 제 2 디코딩 파라미터에 대응되는 스캐닝 모드로 설정하는 단계는 상기 디코딩 블록에 포함된 변환 블록이 사용하는 변환 유형이 제 2 변환 유형인 경우, 상기 변환 계수의 스캐닝 모드를 상기 제 2 변환 유형에 대응되는 스캐닝 모드로 설정하는 것을 포함한다.
선택적으로, 상기 제 1 파리미터 그룹 파라미터에 따라 상기 제 2 변환 유형에 대응되는 스캐닝 모드를 획득한다.
선택적으로, 상기 제 2 디코딩 파라미터에 따라 상기 변환 계수의 스캐닝 모드를 상기 제 2 디코딩 파라미터에 대응되는 스캐닝 모드로 설정하는 단계는 상기 디코딩 블록의 크기가 제 4 기설정 값과 동일한 경우, 상기 변환 계수의 스캐닝 모드를 상기 제 4 기설정 값에 대응되는 스캐닝 모드로 설정하는 것을 포함한다.
선택적으로, 상기 제 1 파리미터 그룹 파라미터에 따라 제 4 기설정 값에 대응되는 스캐닝 모드를 획득한다.
선택적으로, 상기 비트 스트림을 파싱하여 변환 계수와 관련된 구문 요소의 값을 확정하는 단계는 상기 구문 요소가 0이 아닌 계수의 시작 위치를 지시하는 구문 요소; 계수 그룹에 포함된 0이 아닌 계수를 지시하는 구문 요소; 계수 그룹에서 0이 아닌 계수의 위치를 지시하는 구문 요소; 계수 그룹에서 0이 아닌 계수의 값을 지시하는 구문 요소; 중 적어도 하나를 포함하는 것을 포함한다.
선택적으로, 상기 변환 계수를 처리하여 변환 계수의 복원 값을 얻는 단계는 상기 변환 계수에 대해 스케일링(Scaling) 처리를 수행하는 것으로 판단하는 경우, 상기 변환 데이터를 스케일링 처리하여 상기 변환 계수의 복원 값을 획득하는 것; 상기 변환 데이터에 대해 스케일링 처리를 수행하지 않는 것으로 판단하는 경우, 상기 변환 계수를 사용하여 상기 변환 계수의 복원 값을 설정하는 것을 포함한다.
선택적으로, 상기 변환 계수를 처리하기 전에, 상기 방법은 상기 비트 스트림을 파싱하여 상기 디코딩 블록의 예측 차이값의 복원 값을 구성하기 위해 사용되는 제 3 파라미터를 획득하는 단계; 상기 제 3 파라미터에 따라 상기 변환 계수에 대해 스케일링 처리를 수행하는지 여부를 판단하는 단계를 더 포함한다.
선택적으로, 상기 예측값과 상기 예측 차이값을 사용하여 상기 디코딩 블록의 복원 값을 확정하고 해당 방법은 상기 예측값과 상기 예측 차이값의 합에 대해 루프 필터링 처리를 수행하는 단계를 더 포함한다.
본 발명의 다른 실시예에 따르면, 이미지 인코딩 장치를 제공하고, 상기 이미지 인코딩 장치는 인코딩 블록의 예측값을 확정하고, 상기 인코딩 블록과 상기 예측값의 예측 차이값을 계산하는 제 1 확정 모듈; 상기 예측 차이값에 대해 한 번 또는 다수 번의 변환을 수행하여 변환 데이터를 획득하고, 상기 변환 데이터를 사용하여 변환 계수를 확정하는 변환 모듈; 상기 변환 계수의 스캐닝 모드와 계수 그룹의 크기를 확정하고, 상기 변환 계수를 하나 또는 다수의 계수 그룹으로 분할하고, 상기 스캐닝 모드에 따라 각각의 상기 계수 그룹에 포함된 변환 계수를 스캔하고, 상기 변환 계수를 하나 또는 다수의 구문 요소로 전환하는 제 2 확정 모듈; 상기 계수 그룹의 크기와 상기 구문 요소의 값을 인코딩하고 인코딩 후의 비트를 비트 스트림에 기록하는 인코딩 모듈; 을 포함한다.
본 출원의 다른 실시예에 따르면, 이미지 디코딩 장치를 제공하고, 상기 이미지 디코딩 장치는 비트 스트림을 파싱하여 상기 디코딩 블록의 예측값, 상기 디코딩 블록 중 변환 계수의 스캐닝 모드, 계수 그룹의 크기 및 변환 계수와 관련된 구문 요소의 값을 확정하는 디코딩 모듈; 상기 스캐닝 모드 및 상기 계수 그룹의 크기에 따라 상기 디코딩 블록 중의 계수 그룹을 처리하고, 상기 구문 요소를 상기 계수 그룹 중의 변환 계수로 전환하는 전환 모듈; 상기 변환 계수를 처리하여 변환 계수의 복원 값을 얻는 처리 모듈; 상기 변환 계수를 처리하고 처리 후의 데이터에 대해 한 번 또는 다수 번의 변환을 수행하여 상기 디코딩 블록의 예측 차이값을 얻는 변환 모듈; 상기 예측값 및 상기 예측 차이를 사용하여 상기 디코딩 블록의 복원 값을 확정하는 계산 모듈; 을 포함한다.
본 출원의 다른 실시예에 따르면, 전자 설비를 제공하고, 상기 전자 설비는 상술한 인코딩 장치, 수집 설비 및 저장 설비를 포함하며, 여기서 상기 수집 설비는 상기 인코딩 블록에 대응되는 이미지를 수집하고 상기 이미지에 대해 전처리를 수행한 후 출력하는데 사용되고; 상기 저장 설비는 출력한 비트 스트림을 수신하고 상기 비트 스트림에 대해 시스템 레이어 처리를 수행한 후 저장하는데 사용된다.
본 출원의 다른 실시예에 따르면, 전자 설비를 제공하고, 상기 전자 설비는 전술한 디코딩 장치, 수신 설비 및 디스플레이 설비를 포함하며, 여기서 상기 수신 설비는 비트 스트림을 수신하는데 사용되고, 상기 디스플레이 설비는 복원된 후의 이미지를 디스플레이하는데 사용된다.
본 출원의 또 다른 실시예에 따르면, 저장 매체를 더 제공하고, 상기 저장 매체에는 컴퓨터 프로그램이 저장되며, 여기서 상기 컴퓨터 프로그램은 실행시 전술한 방법 실시예 중 어느 하나의 단계를 실행하도록 구성된다.
본 출원을 통해, 고정되지 않은 크기의 계수 그룹을 사용하여 변환 계수 행렬을 인코딩 및 디코딩하는 것이 허용되므로, 고정된 크기의 계수 그룹을 사용함으로 인해 인코더가 2 차원 행렬 중 변환 계수의 분포 상황에 따라 가장 효과적인 인코딩 계수의 인코딩 방식을 선택할 수 없는 문제를 해결할 수 있고, 따라서 계수 그룹의 플래그 비트의 인코딩 오버헤드를 효과적으로 감소시키고 변환 계수의 인코딩 효율을 향상시킨다.
본문에 설명된 도면은 본 출원에 대한 추가적인 이해를 제공하기 위해 사용되며 본 출원의 일부를 구성하며, 본 출원의 예시적인 실시예 및 이에 대한 설명은 본 출원을 설명하는데 사용되며 본 출원에 대한 부적절한 한정을 구성하지 않는다. 도면 중:
도 1은 본 발명의 실시예에 따른 이미지 인코딩 방법의 이동 단말의 하드웨어 구조 블록도이다.
도 2는 본 발명의 실시예에 따른 이미지 인코딩 방법의 흐름도이다.
도 3은 본 발명의 실시예에 따른 계수 그룹의 크기를 인코딩하는 데이터 처리 흐름도이다.
도 4는 본 발명의 실시예에 따른 스캐닝 모드 파라미터를 인코딩하는 데이터 처리 흐름도이다.
도 5는 본 발명의 실시예에 따른 이미지 디코딩의 흐름도이다.
도 6은 본 발명의 실시예에 따른 계수 그룹의 크기를 파싱하는 데이터 처리 흐름도이다.
도 7은 본 발명의 실시예에 따른 스캐닝 모드 파라미터를 파싱하는 데이터 처리 흐름도이다.
도 8은 본 발명의 실시예에 따른 이미지 인코딩 장치의 구조 블록도이다.
도 9는 본 발명의 실시예에 따른 다른 이미지 인코딩 장치의 구조 블록도이다.
도 10은 본 발명의 실시예에 따른 이미지 디코딩 장치의 구조 블록도이다.
도 11은 본 발명의 실시예에 따른 다른 이미지 디코딩 장치의 구조 블록도이다.
도 12는 상기에 나타난 이미지 인코딩 장치를 포함하는 전자 설비의 도면이다.
도 13은 상기에 나타난 이미지 디코딩 장치를 포함하는 전자 설비의 도면이다.
도 14는 상기에 나타난 전자 설비를 포함하는 전자 시스템이다.
이하, 도면을 참조하고 실시예를 결합하여 본 출원을 상세하게 설명하도록 한다. 설명해야 할 것은, 본 출원의 실시예와 실시예의 특징은 충돌이 없는 경우 서로 결합될 수 있다.
설명해야 할 것은, 본 출원의 명세서 및 청구범위 및 상기 도면에서 "제 1" 및 "제 2" 등 용어는 유사한 객체를 구별하기 위해 사용되며 특정된 순서 또는 선후순서를 설명하는데 반드시 사용되는 것은 아니다.
이하의 실시예에서 비디오는 이미지로 구성된 이미지 시퀀스를 의미한다. 상기 비트 스트림은, 비디오 인코더가 비디오를 인코딩하여 생성된 비트 스트림을 의미하고, 또한 비디오 인코더가 비디오를 인코딩하여 생성된 비트 스트림을 시스템 레이어 처리하여 얻은, 상기 비디오 인코더가 비디오를 인코딩하여 생성된 비트 스트림을 포함하는 전송 스트림 및/또는 미디어 파일을 의미하며, 상기 비트 스트림을 디코딩하여 비디오를 획득할 수 있다. 상기 시스템 레이어 처리는 비디오 비트 스트림에 대한 패키징 작업이며, 예를 들어 비디오 비트 스트림을 데이터 로드로서 전송 스트림으로 패키징하거나 비디오 비트 스트림을 로드로서 미디어 파일로 패키징하는 것이다. 상기 시스템 레이어 처리는 또한 비디오 스트림을 포함하는 전송 스트림 또는 미디어를 데이터 로드로서 전송용 스트림 또는 저장용 파일로 패키징하는 것을 포함한다. 상기 시스템 레이어 처리에 의해 생성된 데이터 유닛을 시스템 레이어 데이터 유닛이라고도 하고, 상기 시스템 레이어 처리에서 데이터 로드를 패키징하는 과정에서 상기 시스템 레이어 데이터 유닛에 추가된 정보(예를 들면 시스템 레이어 데이터 유닛의 헤더 정보 등)를 시스템 레이어 정보라고 한다. 상기 서브 스트림은 비트 스트림에서 추출 작업을 통해 얻은 비트 스트림의 일부를 의미하며, 상기 서브 스트림을 디코딩하여 비디오 이미지를 얻을 수 있으며, 해당 비디오 이미지는 상기 비트 스트림을 디코딩하여 얻은 비디오 이미지보다 해상도가 낮은 이미지일 수 있고, 또한 상기 비트 스트림을 디코딩하여 얻은 비디오보다 낮은 프레임 레이트를 가진 이미지일 수 있으며, 상기 비디오 이미지에는 상기 비트 스트림을 디코딩하여 얻은 비디오 이미지의 일부가 포함될 수 있다.
실시예 1
본 출원의 실시예 1에서 제공되는 방법 실시예는 이동 단말, 컴퓨터 단말, 또는 유사한 컴퓨팅 장치에서 실행될 수 있다. 이동 단말에서 실행되는 것을 예로 들며, 도 1은 본 발명의 실시예에 따른 이미지 인코딩 방법의 이동 단말의 하드웨어의 구조 블록도이다. 도 1에 도시된 바와 같이, 이동 단말(10)은 하나 또는 다수(도 1에는 하나만 도시됨)의 프로세서(102)(프로세서(102)는 마이크로 프로세서(MCU) 또는 프로그래밍 가능한 논리 장치(FPGA) 등 처리 장치를 포함할 수 있지만 이에 한정되지 않음) 및 데이터를 저장하기 위한 메모리(104)를 포함할 수 있고, 선택적으로, 상기 이동 단말은 통신 기능을 위한 전송 장치(106) 및 입출력 설비(108)를 더 포함할 수 있다. 본 기술 분야 당업자라면 도 1에 도시된 구조는 단지 예시일 뿐, 상기 이동 단말의 구조를 한정하지 않음을 이해할 수 있을 것이다. 예를 들어, 이동 단말(10)은 도 1에 도시된 것보다 더 많거나 적은 구성 요소를 포함할 수도 있고, 도 1에 도시된 것과 다른 구성을 가질 수도 있다.
메모리(104)는 컴퓨터 프로그램을 저장하는데 사용될 수 있고, 예를 들어 본 발명의 실시예에서의 이미지 인코딩 방법에 대응되는 컴퓨터 프로그램과 같은 응용 소프트웨어의 소프트웨어 프로그램 및 모듈을 저장하는데 사용될 수 있고, 프로세서(102)는 메모리(104)에 저장된 컴퓨터 프로그램을 실행하여, 다양한 기능적 응용 및 데이터 처리를 수행하며, 즉 상기의 방법을 구현할 수 있다. 메모리(104)는 고속 랜덤 액세스 메모리를 포함할 수 있고, 또한 하나 또는 다수의 자기 저장 장치, 플래시 메모리, 또는 기타 비 휘발성 고체 상태 메모리와 같은 비 휘발성 메모리를 포함할 수도 있다. 일부 실시예에서, 메모리(104)는 프로세서(102)에 대해 원격으로 제공되는 메모리를 더 포함할 수 있고, 이러한 원격 메모리는 네트워크를 통해 이동 단말(10)에 연결될 수 있다. 상기 네트워크의 예는 인터넷, 인트라넷, 근거리 통신망, 이동 통신 네트워크 및 이들의 조합을 포함하지만 이에 한정되지 않는다.
전송 장치(106)는 네트워크를 통해 데이터를 수신하거나 전송하는데 사용된다. 상기 네트워크의 구체적인 예는 이동 단말(10)의 통신 공급업체가 제공하는 무선 네트워크를 포함할 수 있다. 일 실시예에서, 전송 장치(106)는 네트워크 어댑터(Network Interface Controller, NIC)를 포함하고, 이는 기지국을 통해 기타 네트워크 설비와 연결될 수 있어 인터넷과 통신을 진행할 수 있다. 일 실시예에서, 전송 장치(106)는 무선 방식으로 인터넷과 통신하는데 사용되는 무선 주파수(Radio Frequency, RF) 모듈일 수 있다.
본 실시예에서는 상기 이동 단말에서 실행되는 이미지 인코딩 방법을 제공하고, 도 2는 본 발명의 실시예에 따른 이미지 인코딩 방법의 흐름도이고, 도 2에 도시된 바와 같이, 해당 흐름은,
인코딩 블록의 예측값을 확정하고, 상기 인코딩 블록과 상기 예측값의 예측 차이값을 계산하는 단계(S202);
상기 예측 차이값에 대해 한 번 또는 다수 번의 변환을 수행하여 변환 데이터를 획득하고, 상기 변환 데이터를 사용하여 변환 계수를 확정하는 단계(S204);
상기 변환 계수의 스캐닝 모드와 계수 그룹의 크기를 확정하고, 상기 변환 계수를 하나 또는 다수의 계수 그룹으로 분할하고, 상기 스캐닝 모드에 따라 각각의 상기 계수 그룹에 포함된 변환 계수를 스캔하고, 상기 변환 계수를 하나 또는 다수의 구문 요소로 전환하는 단계(S206);
상기 계수 그룹의 크기와 구문 요소의 값을 인코딩하고 인코딩 비트를 비트 스트림에 기록하는 단계(S208); 를 포함한다.
선택적으로, 상기 인코딩 블록의 예측값을 확정하는 단계는 하나 또는 다수의 인코딩된 이미지를 참조 이미지로 사용하여 인코딩 블록의 예측값을 확정하는 방법; 또는, 상기 인코딩 블록이 위치한 이미지에서 인코딩된 부분을 참조로 하여 상기 인코딩 블록의 예측값을 확정하는 방법; 중 적어도 하나를 포함한다.
선택적으로, 상기 변환 데이터를 사용하여 변환 계수를 확정하는 단계는 상기 변환 데이터에 대해 양자화를 수행하는 것으로 판단하는 경우, 상기 변환 데이터에 대해 양자화 처리하여 상기 변환 계수를 획득하는 것; 상기 변환 데이터에 대해 양자화를 수행하지 않는 것으로 판단하는 경우, 상기 변환 데이터를 사용하여 상기 변환 계수를 설정하는 것; 을 포함한다.
선택적으로, 상기 변환 계수의 계수 그룹의 크기를 확정하는 단계는 기설정된 후보 값에 따라 상기 변환 계수의 계수 그룹의 크기를 확정하는 것을 포함한다.
선택적으로, 기설정된 상기 후보 값에 따라 상기 변환 계수의 계수 그룹의 크기를 확정하는 단계는 레이트 왜곡 최적화 방법을 사용하여 상기 후보 값에서 상기 변환 계수의 계수 그룹의 크기를 확정하는 것을 포함한다.
선택적으로, 상기 후보 값 중의 값을 계수 그룹의 크기로 사용할 때의 상기 변환 계수의 인코딩 비트 수를 계산하고, 상기 인코딩 비트 수를 최소화할 수 있는 상기 후보 값 중의 값을 선택하여 상기 변환 계수의 계수 그룹의 크기로 한다.
선택적으로, 기설정된 상기 후보 값에 따라 상기 변환 계수의 계수 그룹의 크기를 확정하는 단계는 상기 변환 계수의 분포 상황에 따라 상기 변환 계수의 계수 그룹의 크기를 확정하는 것을 포함한다.
선택적으로, 상기 변환 계수의 분포 상황은 상기 변환 계수를 스캔한 후 검출된 상기 변환계수에서 0이 아닌 계수의 집중 정도를 의미하며, 여기서 상기 0이 아닌 계수의 집중 정도는 상기 변환 계수의 0이 아닌 계수 사이에서 값이 0인 계수의 개수를 의미하고, 상기 값이 0인 계수의 개수가 적을수록 0이 아닌 계수의 집중 정도가 더 높은 것을 나타내고; 상기 후보 값에서 상기 집중 정도를 가장 높게 할수 있는 상기 후보 값 중의 값을 선택하여 상기 변환 계수의 계수 그룹의 크기로 한다.
선택적으로, 상기 후보 값은 하나 또는 다수의 고정값, 하나 또는 다수의 구성된 값 및 상기 인코딩 블록의 인접한 인코딩된 블록이 사용하는 계수 그룹의 크기의 값 중 적어도 하나를 포함한다.
선택적으로, 상기 계수 그룹의 크기의 기설정된 후보 값은 상기 하나 또는 다수의 구성된 값인 경우, 상기 방법은 상기 후보 값의 식별자 파라미터를 상기 비트 스트림의 하나 또는 다수의 데이터 유닛에 기록하는 단계를 더 포함하고, 여기서, 상기 식별자 파라미터는 상기 구성된 상기 후보 값을 지시하는데 사용되고; 상기 비트 스트림 중의 데이터 유닛은 하나 또는 다수의 파라미터 세트, 슬라이스 헤더, 블록 레이어 데이터 유닛 중 적어도 하나를 포함한다.
선택적으로, 상기 계수 그룹의 크기의 기설정된 후보 값의 식별자 파라미터는 계수 그룹의 크기, 계수 그룹의 변의 길이, 계수 그룹의 너비 및 높이 중 적어도 하나를 포함한다.
선택적으로, 상기 식별자 파라미터의 최대값 및 최소값을 상기 비트 스트림에 기록하는 방법; 상기 식별자 파라미터의 최대값 및 상기 계수 그룹의 최대 분할 계층을 상기 비트 스트림에 기록하는 방법; 상기 식별자 파라미터의 최대값 및 상기 계수 그룹의 크기의 최대값과 최소값 사이의 차이값을 상기 비트 스트림에 기록하는 방법; 상기 식별자 파라미터의 최소값 및 상기 계수 그룹의 최대 상향 분할 계층을 상기 비트 스트림에 기록하는 방법; 상기 식별자 파라미터의 최소값 및 상기 계수 그룹의 크기의 최대값과 최소값 사이의 차이값을 상기 비트 스트림에 기록하는 방법; 중 하나 또는 다수의 방법을 사용하여 상기 식별자 파라미터를 상기 비트 스트림에 기록한다.
선택적으로, 하나 또는 다수의 방법을 사용하여 상기 식별자 파라미터를 상기 비트 스트림에 기록하는 단계는 상기 식별자 파라미터의 디폴트 값을 상기 비트 스트림에 기록하는 것을 더 포함한다.
선택적으로, 상기 계수 그룹의 크기의 기설정된 후보 값의 식별자 파라미터는 대응되는 계수 그룹의 크기가 상기 후보 값에 포함되는 계수 그룹의 크기인지 여부를 지시하는 하나 또는 다수의 플래그 비트를 포함한다.
선택적으로, 상기 계수 그룹의 크기의 기설정된 후보 값의 식별자 파라미터는 상기 식별자 파라미터가 지시하는 기설정된 하나 또는 다수의 예측모드에 대응되는 하나 또는 다수의 계수 그룹의 크기를 포함한다.
선택적으로, 상기 계수 그룹의 크기의 기설정된 후보 값의 식별자 파라미터는 상기 식별자 파라미터가 지시하는 기설정된 한 번 또는 다수 번의 변환에 대응되는 하나 또는 다수의 계수 그룹의 크기를 포함한다.
선택적으로, 상기 계수 그룹의 크기의 기설정된 후보 값의 식별자 파라미터는 상기 식별자 파라미터가 지시하는 기설정된 하나 또는 다수의 변환 유형에 대응되는 하나 또는 다수의 계수 그룹의 크기를 포함한다.
선택적으로, 상기 계수 그룹의 크기의 기설정된 후보 값의 식별자 파라미터는 상기 식별자 파라미터가 지시하는 기설정된 하나 또는 다수의 양자화 파라미터에 대응되는 하나 또는 다수의 계수 그룹의 크기; 또는, 상기 식별자 파라미터가 지시하는 기설정된 하나 또는 다수의 양자화 파라미터의 값 범위에 대응되는 하나 또는 다수의 계수 그룹의 크기를 포함한다.
선택적으로, 상기 계수 그룹의 크기의 기설정된 후보 값의 식별자 파라미터는 상기 식별자 파라미터가 지시하는 기설정된 프로파일/티어/레벨(Profile/Tier/Level)에 대응되는 하나 또는 다수의 계수 그룹의 크기를 포함한다.
선택적으로, 상기 변환 계수의 계수 그룹의 크기를 확정하는 단계는 상기 인코딩 블록의 제 1 인코딩 파라미터에 따라, 상기 인코딩 블록에서 상기 변환 계수의 계수 그룹의 크기를 상기 제 1 인코딩 파라미터에 대응되는 계수 그룹의 크기로 설정하는 것을 포함하고, 여기서 상기 제 1 인코딩 파라미터는 상기 인코딩 블록에 포함된 변환 블록의 크기, 상기 인코딩 블록의 예측모드, 상기 인코딩 블록에 포함된 변환 블록이 사용하는 변환 유형, 양자화 파라미터 중 적어도 하나를 포함한다.
선택적으로, 상기 인코딩 블록의 제 1 인코딩 파라미터에 따라, 상기 인코딩 블록에서 상기 변환 계수의 계수 그룹의 크기를 상기 제 1 인코딩 파라미터에 대응되는 계수 그룹의 크기로 설정하는 단계는 상기 인코딩 블록에 포함된 변환 블록의 크기가 제 1 기설정 값과 동일한 경우, 상기 계수 그룹의 크기를 상기 제 1 기설정 값에 대응되는 계수 그룹의 크기로 설정하는 것을 포함한다.
선택적으로, 상기 인코딩 블록의 제 1 인코딩 파라미터에 따라, 상기 인코딩 블록에서 상기 변환 계수의 계수 그룹의 크기를 상기 제 1 인코딩 파라미터에 대응되는 계수 그룹의 크기로 설정하는 단계는 상기 인코딩 블록의 예측모드가 제 1 기설정 모드인 경우, 상기 계수 그룹의 크기를 상기 제 1 기설정 모드에 대응되는 계수 그룹의 크기로 설정하는 것을 포함한다.
선택적으로, 상기 인코딩 블록의 제 1 인코딩 파라미터에 따라, 상기 인코딩 블록에서 상기 변환 계수의 계수 그룹의 크기를 상기 제 1 인코딩 파라미터에 대응되는 계수 그룹의 크기로 설정하는 단계는 상기 인코딩 블록에 포함된 변환 블록이 사용하는 변환 유형이 제 1 변환 유형인 경우, 상기 계수 그룹의 크기를 상기 제 1 변환 유형에 대응되는 계수 그룹의 크기로 설정하는 것을 포함한다.
선택적으로, 상기 인코딩 블록의 제 1 인코딩 파라미터에 따라, 상기 인코딩 블록에서 상기 변환 계수의 계수 그룹의 크기를 상기 제 1 인코딩 파라미터에 대응되는 계수 그룹의 크기로 설정하는 단계는 상기 양자화 파라미터의 값이 제 2 기설정 값과 동일한 경우, 상기 계수 그룹의 크기를 상기 제 2 기설정 값에 대응되는 계수 그룹의 크기로 설정하는 것; 또는 상기 양자화 파라미터의 값이 제 1 기설정 값의 범위 내에 있는 경우, 상기 계수 그룹의 크기를 상기 제 1 기설정 값의 범위에 대응되는 계수 그룹의 크기로 설정하는 것을 포함한다.
선택적으로, 상기 변환 계수의 스캐닝 모드를 확정하는 단계는 기설정된 후보 스캐닝 모드에 따라 상기 변환 계수에 대해 스캐닝 모드를 확정하는 것을 포함하고, 여기서 상기 스캐닝 모드는 상기 변환 계수의 2 차원 행렬 중 요소에 대한 처리 순서이다.
선택적으로, 기설정된 후보 스캐닝 모드에 따라 상기 변환 계수에 대해 스캐닝 모드를 확정하는 단계는 레이트 왜곡 최적화 방법을 사용하여 상기 후보 스캐닝 모드에서 상기 변환 계수의 스캐닝 모드를 확정하는 것을 포함한다.
선택적으로, 상기 후보 스캐닝 모드 중의 스캐닝 모드를 사용할 때의 상기 변환 계수의 인코딩 비트 수를 계산하고, 상기 인코딩 비트 수를 최소화할 수 있는 상기 후보 스캐닝 모드 중의 스캐닝 모드를 선택하여 상기 변환 계수의 스캐닝 모드로 한다.
선택적으로, 기설정된 후보 스캐닝 모드에 따라 상기 변환 계수에 대해 스캐닝 모드를 확정하는 단계는 상기 변환 계수의 분포 상황에 따라 상기 변환 계수의 스캐닝 모드를 확정하는 것을 포함한다.
선택적으로, 상기 변환 계수의 분포 상황은 상기 변환 계수를 스캔한 후 검출된 상기 변환계수에서 0이 아닌 계수의 집중 정도를 의미하며, 여기서 상기 0이 아닌 계수의 집중 정도는 상기 변환 계수의 0이 아닌 계수 사이에서 값이 0인 계수의 개수를 의미하고, 상기 값이 0인 계수의 개수가 적을수록 0이 아닌 계수의 집중 정도가 더 높은 것을 나타내고; 상기 후보 스캐닝 모드에서 상기 집중 정도를 가장 높게 할수 있는 상기 후보 값 중의 스캐닝 모드를 선택하여 상기 변환 계수의 스캐닝 모드로 한다.
선택적으로, 상기 후보 스캐닝 모드는 하나 또는 다수의 고정 스캐닝 모드; 하나 또는 다수의 구성된 스캐닝 모드; 상기 인코딩 블록의 인접한 인코딩된 블록이 사용하는 스캐닝 모드; 중 적어도 하나를 포함한다.
선택적으로, 상기 후보 스캐닝 모드가 상기 하나 또는 다수의 구성된 스캐닝 모드인 경우, 상기 방법은 상기 후보 스캐닝 모드 파라미터를 상기 비트 스트림의 하나 또는 다수의 데이터 유닛에 기록하는 단계를 더 포함하고, 여기서 상기 후보 스캐닝 모드 파라미터는 상기 구성된 상기 후보 스캐닝 모드를 지시하는데 사용되고; 상기 비트 스트림 중의 데이터 유닛은 하나 또는 다수의 파라미터 세트, 슬라이스 헤더, 블록 레이어 데이터 유닛 중 적어도 하나를 포함한다.
선택적으로, 상기 후보 스캐닝 모드 파라미터는 상기 변환 계수의 2 차원 행렬 중 요소의 처리 순서를 더 포함한다.
선택적으로, 상기 후보 스캐닝 모드 파라미터는 상기 스캐닝 모드 파라미터의 디폴트 값을 더 포함한다.
선택적으로, 상기 후보 스캐닝 모드 파라미터는 대응되는 스캐닝 모드가 상기 후보 스캐닝 모드에 포함되는지 여부를 지시하는 하나 또는 다수의 플래그 비트를 포함한다.
선택적으로, 상기 후보 스캐닝 모드 파라미터는 상기 후보 스캐닝 모드 파라미터가 지시하는 기설정된 하나 또는 다수의 예측모드에 대응되는 하나 또는 다수의 스캐닝 모드를 포함한다.
선택적으로, 상기 후보 스캐닝 모드 파라미터는 상기 후보 스캐닝 모드 파라미터가 지시하는 기설정된 한 번 또는 다수 번의 변환에 대응되는 하나 또는 다수의 스캐닝 모드를 포함한다.
선택적으로, 상기 후보 스캐닝 모드 파라미터는 상기 후보 스캐닝 모드 파라미터가 지시하는 기설정된 하나 또는 다수의 변환 유형에 대응되는 하나 또는 다수의 스캐닝 모드를 포함한다.
선택적으로, 상기 후보 스캐닝 모드 파라미터는 상기 후보 스캐닝 모드 파라미터가 지시하는 기설정된 하나 또는 다수의 양자화 파라미터에 대응되는 하나 또는 다수의 스캐닝 모드; 또는 상기 후보 스캐닝 모드 파라미터가 지시하는 기설정된 하나 또는 다수의 양자화 파라미터의 값 범위에 대응되는 하나 또는 다수의 스캐닝 모드를 포함한다.
선택적으로, 상기 후보 스캐닝 모드 파라미터는 상기 후보 스캐닝 모드 파라미터가 지시하는 기설정된 Profile/Tier/Level에 대응되는 하나 또는 다수의 스캐닝 모드를 포함한다.
선택적으로, 상기 변환 계수의 스캐닝 모드를 확정하는 단계는 상기 변환 블록의 제 2 인코딩 파라미터에 따라, 상기 인코딩 블록에서 상기 변환 계수의 스캐닝 모드를 상기 제 2 인코딩 파라미터에 대응되는 계수 그룹의 스캐닝 모드로 설정하는 것을 포함하고, 여기서 상기 제 2 인코딩 파라미터는 상기 인코딩 블록에 포함된 변환 블록의 크기, 상기 인코딩 블록의 예측모드, 상기 인코딩 블록에 포함된 변환 블록이 사용하는 변환 유형, 상기 인코딩 블록의 크기 중 적어도 하나를 포함하고; 상기 스캐닝 모드는 상기 변환 계수의 2 차원 행렬 중 요소에 대한 처리 순서이다.
선택적으로, 상기 변환 블록의 제 2 인코딩 파라미터에 따라, 상기 인코딩 블록에서 상기 변환 계수의 스캐닝 모드를 상기 제 2 인코딩 파라미터에 대응되는 계수 그룹의 스캐닝 모드로 설정하는 단계는 상기 인코딩 블록에 포함된 변환 블록의 크기가 제 3 기설정 값과 동일한 경우, 상기 변환 계수의 스캐닝 모드를 상기 제 3 기설정 값에 대응되는 스캐닝 모드로 설정하는 것을 포함한다.
선택적으로, 상기 변환 블록의 제 2 인코딩 파라미터에 따라, 상기 인코딩 블록에서 상기 변환 계수의 스캐닝 모드를 상기 제 2 인코딩 파라미터에 대응되는 계수 그룹의 스캐닝 모드로 설정하는 단계는 상기 인코딩 블록의 예측모드가 제 2 기설정 모드인 경우, 상기 변환 계수의 스캐닝 모드를 상기 제 2 기설정 모드에 대응되는 스캐닝 모드로 설정하는 것을 포함한다.
선택적으로, 상기 변환 블록의 제 2 인코딩 파라미터에 따라, 상기 인코딩 블록에서 상기 변환 계수의 스캐닝 모드를 상기 제 2 인코딩 파라미터에 대응되는 계수 그룹의 스캐닝 모드로 설정하는 단계는 상기 인코딩 블록에 포함된 변환 블록이 사용하는 변환 유형이 제 2 변환 유형인 경우, 상기 변환 계수의 스캐닝 모드를 상기 제 2 변환 유형에 대응되는 스캐닝 모드로 설정하는 것을 포함한다.
선택적으로, 상기 변환 블록의 제 2 인코딩 파라미터에 따라, 상기 인코딩 블록에서 상기 변환 계수의 스캐닝 모드를 상기 제 2 인코딩 파라미터에 대응되는 계수 그룹의 스캐닝 모드로 설정하는 단계는 상기 인코딩 블록의 크기가 제 4 기설정 값과 동일한 경우, 상기 변환 계수의 스캐닝 모드를 상기 제 4 기설정 값에 대응되는 스캐닝 모드로 설정하는 것을 포함한다.
선택적으로, 상기 변환 계수의 스캐닝 모드와 계수 그룹의 크기를 확정하는 단계는 레이트 왜곡 최적화 방법을 사용하여 상기 변환 계수의 계수 그룹의 크기 및 스캐닝 모드를 공동으로 확정하는 것을 포함한다.
선택적으로, 상기 변환 계수를 하나 또는 다수의 구문 요소로 전환하는 단계는 상기 계수 그룹의 크기와 스캐닝 모드에 따라 상기 변환 계수를 하나 또는 다수의 계수 그룹으로 분할하고 상기 스캐닝 모드에 따라 상기 계수 그룹에 포함된 변환 계수를 스캔하며, 상기 변환 계수를 다음의 구문 요소: 0이 아닌 계수의 시작 위치를 지시하는 구문 요소; 계수 그룹에 포함된 0이 아닌 계수를 지시하는 구문 요소; 계수 그룹에서 0이 아닌 계수의 위치를 지시하는 구문 요소; 계수 그룹에서 0이 아닌 계수의 값을 지시하는 구문 요소; 중 적어도 하나로 표시하는 것을 포함한다.
선택적으로, 상기 계수 그룹의 크기와 상기 구문 요소의 값을 인코딩하고, 인코딩 비트를 비트 스트림에 기록하는 단계는 상기 계수 그룹의 크기를 인코딩하는 방법; 상기 계수 그룹의 크기에 대응되는 인덱스 번호의 값을 인코딩하는 방법; 상기 계수 그룹의 크기에 대응되는 플래그 비트를 설정하고, 상기 플래그 비트의 값을 인코딩하는 방법; 중 하나의 방법을 사용하여 상기 변환 계수가 사용하는 계수 그룹의 크기를 인코딩하는 것을 포함한다.
선택적으로, 상기 계수 그룹의 크기와 상기 구문 요소의 값을 인코딩하고, 인코딩 비트를 비트 스트림에 기록하는 단계는 인코딩 비트를 비트 스트림 중의 데이터 유닛에 기록하는 것을 포함하고, 상기 비트 스트림 중의 데이터 유닛은 하나 또는 다수의 파라미터 세트, 슬라이스 헤더, 블록 레이어 데이터 유닛 중 적어도 하나를 포함한다.
선택적으로, 이미지는 다수의 최대 인코딩 유닛으로 분할될 수 있다. 최대 인코딩 유닛은 정사각형 이미지 영역이다. 이미지는 하나 또는 다수의 슬라이스(Slice)로 분할될 수 있으며, 각 슬라이스는 정수 개의 최대 인코딩 유닛을 포함하거나 정수 개가 아닌 최대 인코딩 유닛을 포함할 수 있다. 선택적으로, 이미지는 또한 하나 또는 다수의 타일(Tile)로 분할될 수 있고, 각 타일은 정수 개의 최대 인코딩 유닛을 포함하거나 정수 개가 아닌 최대 인코딩 유닛을 포함할 수 있다. 분할 유닛(201)은 고정된 방식으로 이미지를 분할하도록 구성될 수 있거나, 이미지의 분할 모드를 동적으로 조정하도록 구성될 수도 있다. 예를 들어, 네트워크의 최대 전송 유닛(Maximum Transmission Unit, MTU)에 적응하기 위해 동적인 슬라이스 분할 방법을 사용하여 각 슬라이스의 인코딩 비트 수가 MTU의 한계를 초과하지 않도록 확보한다.
선택적으로, 최대 인코딩 유닛은 하나 또는 다수의 인코딩 블록으로 분할되고, 분할되어 얻은 인코딩 블록은 더 많은 인코딩 블록으로 추가로 분할될 수 있다. 분할 모드는 쿼드 트리(quad-tree) 분할, 이진 트리(bi-tree) 분할 및 삼항 트리(tri-tree) 분할 중 하나 또는 다수를 사용할 수 있다.
선택적으로, 일반적으로 사용되는 레이트 왜곡 최적화(Rate-Distortion Optimization, RDO) 방법을 사용하여 인코딩 블록의 예측 값을 확정하고, 상기 예측 값이 사용하는 인터 예측 및 인트라 예측과 관련된 출력 파라미터를 얻는다.
선택적으로, 하나 또는 다수의 디코딩된 이미지를 인코딩 블록의 인터 예측 값을 확정하기 위한 참조 이미지로 사용한다. 우선, 상기 참조 이미지를 사용하여 하나 또는 다수의 참조 이미지 리스트(Reference List)를 구성하고, 각 참조 이미지 리스트는 하나 또는 다수의 참조 이미지가 포함하며, 상기 참조 이미지에서 인코딩 블록의 매칭 블록을 확정한다. 상기 매칭 블록을 사용하여 인코딩 블록의 예측값을 구성하고, 인코딩 블록과 상기 예측값 사이의 차이값(즉, 예측 차이)을 계산한다. 참조 이미지 리스트 지시, 참조 이미지 인덱스(Reference Index), 모션 벡터(Motion Vector, MV) 등을 포함하는, 매칭 블록의 위치를 지시하는 파라미터를 출력하고, 여기서, 참조 이미지 리스트는 매칭 블록을 포함하는 참조 이미지가 위치한 참조 이미지 리스트를 지시하는데 사용되고, 참조 이미지 인덱스는 참조 이미지 리스트에서 매칭 블록을 포함하는 참조 이미지를 지시하는데 사용되고, MV는 동일한 이미지 화소점 좌표계에서 인코딩 블록과 매칭 블록 사이의 상대적 위치 오프셋을 지시하는데 사용된다.
선택적으로 상기 인코딩 블록에 인접한 복원된 픽셀을 필터의 입력 값으로 사용하여 인코딩 블록의 예측값을 계산하고, 여기서 상기 필터는 보간 필터 또는 저역 통과 필터(예를 들어 DC 값을 계산하는데 사용되는 필터)일 수 있다. 특히, 상기 인코딩 블록이 위치한 이미지 중 부분적으로 복원된 부분에서 상기 인코딩 블록의 매칭 블록을 검색하고, 매칭 블록을 상기 인코딩 블록의 예측값으로 사용한다. 레이트 왜곡 최적화(RDO) 방법을 사용하여 상기 인코딩 블록의 예측값을 계산하는데 사용되는 방법(즉, 인트라 예측 모드) 및 예측값을 확정한다. 상기 과정에서 출력 파라미터는 인트라 예측 모드를 지시하는 파라미터를 포함한다.
선택적으로, 또한 인코딩 블록의 원래값과 예측값 사이의 예측 차이를 계산하는데 사용된다. 상기 예측 차이는 N x M인 2 차원 행렬로 나타낼 수 있고, 여기서 N과 M은 모두 양의 정수이고 N과 M은 동일하거나 상이할 수 있다.
선택적으로, 신호 처리의 관점에서 하나의 변환 방법은 하나의 변환 행렬로 나타낼 수 있다. 상기 인코딩 블록 크기와 모양이 동일한 직사각형 블록(여기서 정사각형은 직사각형의 특수한 경우임)을 예측 차이에 대한 변환 블록으로 사용하거나, 상기 예측 차이를 다수의 직사각형 블록(높이 또는 너비가 하나의 픽셀인 경우를 포함함)으로 분할하고, 각 직사각형 블록에 대해 차례로 변환 처리를 수행할 수 있다.
선택적으로, 스칼라 양자화기를 사용하여 상기 데이터를 양자화하고, 양자화기의 양자화 파라미터(Quantization Parameter, QP)는 제어 유닛에 의해 확정된다. 예를 들어, 제어 유닛은 기존의 코드 레이트 제어 방법을 사용하여 양자화기의 양자화 스텝 크기를 확정하고, 양자화 스텝 크기와 QP의 대응 관계에 따라 QP를 확정할 수 있다. 양자화 과정를 거쳐 출력되는 것은 계수의 양자화 값(즉 "Level" 값)이고, 일반적으로 2 차원 행렬로 나타낼 수 있다.
선택적으로, 또한 양자화 과정에서와 동일한 QP를 사용하여 상기 계수의 양자화 값에 대해 스케일링(Scaling) 작업을 수행하여 계수의 복원 값을 얻을 수 있다.
선택적으로, 상기 인코딩 블록을 양자화하지 않는 것으로 확정되면(예를 들어, RDO 방법을 사용하여 상기 인코딩 블록을 양자화할지 여부를 확정함), 예측 차이를 변환하여 얻은 데이터를 직접 역변환한다.
선택적으로, 역변환을 통해 상기 계수의 복원 값을 처리하여 예측 차이의 복원 값을 얻는다.
선택적으로 필터링에도 사용된다. 구체적으로, 본 실시예는 캐스케이드 구조를 갖도록 2개의 필터, 즉 디블로킹(Deblocking) 필터 및 적응적 샘플 오프셋(Sample Adaptive Offset, SAO) 필터로 구성된 필터에 의해 수행되는 필터링 방법을 더 포함한다. 상기 필터에는 신경망 필터도 포함될 수 있다. 선택적으로, 이미지 버퍼 영역의 데이터를 필터링하는 작업은 이미지 레이어에서 수행될 수 있고, 즉 상기 이미지 중의 전부의 인코딩 블록의 복원 값이 모두 이미지 버퍼 영역에 기록된 후 이미지 버퍼 영역의 데이터에 대해 필터링 처리를 수행한다. 선택적으로, 상기 이미지 버퍼 영역의 데이터를 필터링하는 작업은 블록 레이어에서 수행될 수 있고, 즉 어느 인코딩 블록의 복원 데이터가 더 이상 후속 인코딩 블록에 대한 참조 데이터로 사용되지 않는 경우, 해당 인코딩 블록의 복원 데이터에 대해 필터링 처리를 수행한다. RDO 방법을 사용하여 필터 파라미터를 확정하고, 이를 필터링 과정의 출력 파라미터로 사용한다. 상기 필터 파라미터에는 사용되는 필터의 지시 정보, 필터 계수 및 필터의 제어 파라미터가 포함된다.
선택적으로, 이미지 인코딩 데이터에 대해 이진화 및 엔트로피 인코딩을 수행하고 파라미터를 표준에 부합되는 하나 또는 다수의 "0" 및 "1" 비트로 구성된 필드로 변환하며, 표준에서의 비트 스트림의 구문 구조(Syntax Structure)에 따라 필드를 비트 스트림으로 구성한다. 상기 인코딩 데이터에는 이미지의 텍스처 데이터와 비 텍스처 데이터가 포함된다. 여기서, 상기 텍스처 데이터는 주로 인코딩 블록의 변환 계수이고, 비 텍스처 데이터는 텍스처 데이터 이외의 기타 전부의 데이터를 포함하며, 즉 상기 각 처리 과정에서의 출력 파라미터, 파라미터 세트, 헤더 정보 및 보조 정보 등 파라미터를 포함한다.
선택적으로, 처리된 텍스처 데이터는 M x N인 2 차원 행렬의 형태로 나타난 변환 계수이며, 여기서 M과 N은 양의 정수이고, M과 N은 동일하거나 상이할 수 있다. 상기 2 차원 행렬은 하나의 변환 블록에 대응될 수 있으며, 이하 설명에서 "변환 블록"은 상기 M x N인 2 차원 행렬 형태로 나타난 변환 계수를 지칭하기 위해 사용된다. 여기서, 상기 인코딩 블록에 대해 양자화를 사용하는 경우, 상기 변환 계수는 양자화 과정에서 출력되는 계수의 양자화 값(즉, "Level" 값)이고, 반대로 상기 인코딩 블록에 대해 양자화를 사용하지 않는 경우, 상기 변환 계수는 변환 과정에서 출력된 상기 예측 차이를 변환하여 얻은 데이터이다.
선택적으로, 계수 그룹의 크기를 확정할 수 있다. 계수 그룹에는 W x H 개의 변환 계수가 포함되고, 여기서 W와 H는 양의 정수이고, W와 H는 동일하거나 상이할 수 있으며, W ≤ M, H ≤ N이다. 변환 블록을 위해, 사용되는 계수 그룹의 크기를 기설정된 후보 값에서 확정한다. 기설정된 후보 값은 고정된 값 또는 구성 가능한 값일 수 있다. 기설정된 후보 값이 구성 가능한 값인 경우, 아래의 하나 또는 다수의 데이터 유닛에서 계수 그룹의 크기와 관련된 식별 정보를 인코딩하여 비트 스트림에 기록할 수 있으며, 상기 식별 정보는 상기 설정된 사용 가능한 계수 그룹의 크기를 지시하기 위해 사용되고, 상기 데이터 유닛은 하나 또는 다수의 파라미터 세트(Parameter Set), 슬라이스 헤더(Slice Header), 인코딩 유닛(Coding Unit)을 포함한다.
선택적으로, 암시적 유도 방식을 사용하여 상기 변환 블록의 계수 그룹의 크기를 확정할 수 있다. 상기 변환 블록이 위치한 인코딩 블록의 인코딩 모드, 변환 블록의 크기, 양자화 파라미터 및 변환 블록이 사용하는 변환 유형 등 하나 또는 다수의 코딩 파라미터에 따라, 기설정된 대응되는 계수 그룹의 크기를 선택할 수 있다. 다음 예에서는 4x4 및 8x8의 두 가지 계수 그룹의 크기를 사용할 수 있도록 설정한다. 본 발명은 더 많은 계수 그룹의 크기를 사용하는 경우로 확장할 수 있다. 다음 예에서 하나의 방법을 사용하거나 여러 방법을 공동으로 사용하여 계수 그룹의 크기를 확정할 수 있다.
예를 들어, 인코딩 블록의 변환 블록의 크기가 16x16보다 큰 경우 계수 그룹의 크기를 8x8로 설정하고, 인코딩 블록의 변환 블록의 크기가 16x16보다 작거나 같은 경우 계수 그룹의 크기를 4x4로 설정하도록 구성한다. 정사각형이 아닌 직사각형 변환 블록의 경우, 변환 블록의 높이와 너비에 따라, 대응되게 사용하는 계수 그룹의 크기를 설정할 수 있고, 예를 들어 변환 블록의 높이와 너비 중 작은 값이 16보다 큰 경우, 높이와 너비 중 작은 값이 8 인 직사각형 계수 그룹을 사용하고, 그렇지 않으면 높이와 너비 중 작은 값이 4 인 직사각형 계수 그룹을 사용한다.
예를 들어, 인터 예측 모드의 인코딩 블록에서 변환 블록에 대응되게 사용하는 계수 그룹의 크기를 8x8(8x8 및 4x4의 변환 블록이 사용하는 계수 그룹의 크기를 4x4로 설정)로 설정하고, 인트라 예측 모드의 인코딩 블록에서 변환 블록이 대응되게 사용하는 계수 그룹의 크기를 8x8(16x16, 8x8, 4x4의 변환 블록이 사용하는 계수 그룹의 크기를 4x4로 설정)로 설정한다.
예를 들어, 일반적인 경우에서 양자화 파라미터가 비교적 크면, 2 차원 행렬에 값이 0인 변환 계수가 더 많이 존재하고, 각 계수 그룹은 모두 대응되는 하나의 플래그 비트를 통해 해당 계수 그룹의 변환 계수가 모두 0인지 여부를 식별(또는 해당 계수 그룹에 0이 아닌 변환 계수가 포함되어 있는지 여부를 식별함)한다. 따라서, 비교적 큰 계수 그룹을 사용하는 경우, 이에 포함된 계수는 모두 값이 0인 계수일 수 있기에, 하나의 상기 플래그 비트를 사용하면 표시될 수 있다. 이에 비해, 비교적 작은 계수 그룹을 사용하는 경우, 양자화 파라미터가 비교적 클 때, 비교적 큰 계수 그룹을 사용하면 상기 플래그 비트의 인코딩 오버헤드를 효과적으로 줄일 수 있다. H.265/HEVC 표준의 양자화 파라미터 설정 방식을 예로 들면, 일 실시형태에서 양자화 파라미터의 값이 37 이상인 경우, 계수 그룹의 크기를 8x8(8x8 및 4x4의 변환 블록이 사용하는 계수 그룹의 크기를 4x4로 설정)로 설정하고; 반대로 계수 그룹의 크기를 4x4로 설정한다.
예를 들어, 이산 코사인 변환(Discrete Cosine Transform, DCT)을 기반으로 설계된 변환을 사용하는 인코딩 블록의 경우, 계수 그룹의 크기를 8x8(8x8 및 4x4의 변환 블록이 사용하는 계수 그룹의 크기를 4x4로 설정)로 설정한다. 이산 사인 변환(Discrete Sine Transform, DST)을 기반으로 설계된 변환을 사용하는 인코딩 블록의 경우, 계수 그룹의 크기를 4x4로 설정한다. 카루넨-뢰브 변환(Karhunen-Loёve Transform, KLT)을 기반으로 설계된 변환을 사용하는 인코딩 블록의 경우, 계수 그룹의 크기를 8x8(8x8 및 4x4의 변환 블록이 사용하는 계수 그룹의 크기를 4x4로 설정)로 설정한다. 두 번 이상의 변환을 사용하는 인코딩 블록의 경우, 계수 그룹의 크기를 8x8(8x8 및 4x4의 변환 블록이 사용하는 계수 그룹의 크기를 4x4로 설정)로 설정한다.
선택적으로, 변환 블록에서 변환 계수의 스캐닝 모드를 확정하는데 사용할 수도 있다. 상기 스캐닝 모드는 변환 계수의 2 차원 행렬 중 요소의 처리 순서를 지시한다. 일반적인 경우, 스캔 모드가 지시하는 순서에 따라 M 행 N 열의 2 차원 행렬 중의 요소를 순차적으로 판독하여, 등가로 1 행 M x N열(또는 M x N 행 1 열)의 1차원 행렬을 얻을 수 있다. 하나 또는 다수의 변환 계수 행렬의 스캐닝 모드를 기설정할 수 있고, 예를 들어 "지그재그"(Zig-zag) 스캐닝 순서, 수평 스캐닝(Horizontal scan) 순서, 수직 스캐닝(Vertical scan), 대각선 스캐닝(Diagonal scan) 순서(예하면 대각선 우측 상단 스캐닝(Diagonal up-right scan) 순서) 등일 수 있다. 변환 블록을 위해, 기설정된 스캐닝 모드에서 스캐닝 모드를 선택한다. 변환 블록의 계수 그룹과 계수 그룹의 변환 계수에 대해 동일한 스캐닝 모드를 사용할 수 있고, 또는 변환 블록의 계수 그룹과 계수 그룹의 변환 계수에 대해 상이한 스캐닝 모드를 사용할 수 있다.
선택적으로, 암시적 유도 방식을 사용하여 상기 변환 블록의 변환 계수 행렬의 스캐닝 모드를 확정할 수 있다. 상기 변환 블록이 위치하는 인코딩 블록의 인코딩 모드, 변환 블록의 크기 등 하나 또는 다수의 코딩 파라미터에 따라, 기설정된 대응되는 스캐닝 모드를 선택할 수 있다. 예를 들어, 인터 예측 모드는 대응되게 대각선 우측 상단 스캐닝 모드를 사용하도록 설정하고, 인코딩 블록의 크기가 8x8보다 클 때, 인트라 예측 모드는 대응되게 대각선 우측 상단 스캐닝 모드를 사용하도록 설정하며, 인코딩 블록의 크기가 8x8 이하일 때, 인트라 예측 모드는 대응되게 인트라 예측 방향이 지시하는 방향의 스캐닝 모드를 사용하도록 설정하고, 직류(DC) 모드 및 평면(Planar) 모드 등 방향성 예측을 사용하지 않는 모드는 대각선 우측 상단 스캐닝 모드를 사용하도록 설정한다. 기설정 스캐닝 모드의 수를 줄이기 위해, 인트라 예측 방향을 분류할 수 있으며, 각 유형은 상이한 스캐닝 모드에 대응된다. 예를 들어, 수직 방향 및 수직방향에서 지정된 각도만큼 좌우로 오프셋되는 인트라 예측 방향은 대응되게 수직 스캐닝 모드를 사용하고, 수평 방향 및 수평방향에서 지정된 각도만큼 상하로 오프셋되는 인트라 예측 방향은 대응되게 수평 스캐닝 모드를 사용하고, 이밖에도, 45 도인 각도 및 각도 방향에서 지정된 각도만큼 상하로 오프셋되는 인트라 예측 방향은 대각선 스캐닝 모드를 사용하는 것을 더 포함할 수 있다. 상기 인코딩 모드 및 인코딩 블록 크기 등 하나 또는 다수의 인코딩 파라미터에 따라 상기 인코딩 블록에 대해 스캐닝 모드를 선택한다.
선택적으로, 변환 블록의 계수 그룹의 크기가 확정된 경우, 변환 블록 중 변환 계수의 분포 상황에 따라 상기 변환 블록의 스캐닝 모드를 확정할 수 있다. 상기 분포 상황은 스캐닝 모드를 사용하여 변환 블록 중의 변환 계수를 스캐닝(또는 역 스캐닝 순서)하고, 검출된 변환 블록에서 0이 아닌 계수의 집중 정도를 의미한다. 일반적으로 스캐닝 순서(또는 역 스캐닝 순서)에 따라 0이 아닌 계수 사이에서 값이 0인 계수가 적을수록 0이 아닌 계수의 집중 정도가 더 높다고 간주한다. 후보 스캐닝 모드에서 0이 아닌 계수의 집중 정도를 가장 높게 할수 있는 스캐닝 모드를 선택하여 상기 변환 블록의 스캐닝 모드로 한다. 또 다른 실시형태로서, 변환 블록에서 계수 그룹의 크기가 확정된 경우, 사용 가능한 후보 스캐닝 모드를 상기 변환 블록의 스캐닝 모드로 차례로 사용하여 변환 블록에서 변환 계수의 인코딩 비트 수를 계산하고, 인코딩 비트 수를 최소화할 수 있는 후보 스캐닝 모드를 선택하여 상기 변환 블록의 스캐닝 모드로 한다. 여기서, 사용 가능한 후보 스캐닝 모드는 기설정된 스캐닝 모드에서 상기 변환 블록을 인코딩하는데 사용될 수 있는 스캐닝 모드를 의미한다. 예를 들어, 특정된 예측 모드의 인코딩 블록에 대해, 하나 또는 다수의 지정된 스캐닝 모드를 사용하지 않도록 구성할 수 있다. 예를 들어 어느 하나 또는 다수의 특정된 인코딩 블록 또는 변환 블록의 크기에 대해, 하나 또는 다수의 지정된 스캐닝 모드를 사용하지 않도록 구성할 수 있다. 이하 하나 또는 다수의 데이터 유닛에서 변환 블록이 사용하는 스캐닝 모드를 지시하는데 사용되는 정보를 인코딩하여 비트 스트림에 기록하고, 상기 데이터 유닛은 하나 또는 다수의 파라미터 세트, 슬라이스 헤더, 인코딩 유닛, 변환 블록의 데이터 유닛을 포함한다.
선택적으로, 변환 블록에 대해 적응형 스캐닝 모드를 확정할 수 있다. 전술한 방법에서 사용된 다양한 스캐닝 모드는 모두 고정된 순서로 변환 블록의 계수 그룹과 계수 그룹의 변환 계수를 처리하는 것이며, 상이한 스캐닝 모드에 대해 상이한 스캐닝 순서를 정의한다. 여기서 상술한 "적응형 스캐닝 모드"는 변환 블록의 계수 그룹에 대해 고정된 처리 순서가 아닌 유연한 처리 순서를 사용하고, 계수 그룹의 변환 계수에 대해 고정된 처리 순서가 아닌 유연한 처리 순서를 사용하는 것을 의미한다. 일 실시 방법은 변환 블록에서 변환 블록의 변환 계수의 분포 상황에 따라, 변환 블록 중 0이 아닌 계수의 집중 정도가 가장 높도록 하는 스캐닝 모드를 구성하는 것이다. 일반적으로 스캐닝 순서(또는 역 스캐닝 순서)에 따라 0이 아닌 계수 사이에서 값이 0인 계수가 적을수록 0이 아닌 계수의 집중 정도가 높다고 간주한다. 다른 실시 방법은 변환 블록에서 계수 그룹의 크기가 확정되었을 때, 변환 블록에서 변환 계수의 인코딩 비트 수와, 해당 스캐닝 모드를 인코딩하는 오버헤드 비트 수의 합을 최소화할 수 있는 스캐닝 모드를 구성하는 것이다. 스캐닝 모드를 확정한 후 스캐닝 모드를 인코딩하여야 하며, 한 가지 방법은 변환 블록 중 변환 계수의 위치와 스캐닝 후의 위치 사이의 대응관계 테이블을 인코딩하는 것이다. 예를 들어, 변환 블록에서 좌표 위치가 (m, n)인 변환 계수(또는 인덱스 번호가 m Х nTbS + n과 같고, 여기서 nTbS는 변환 블록의 너비임)에 대응되는 스캐닝 후의 번호 위치는 k와 같다. 설명해야 할 것은, 비트 스트림에서 상기 대응관계 테이블에 의해 지시되는 등가 정보는 다음과 같다: 비트 스트림을 파싱하여 획득한 위치 번호가 k인 변환 계수는 변환 블록에서의 위치 좌표가 (m, n)(또는 인덱스 번호가 m Х nTbS + n과 같고, 여기서 nTbS는 변환 블록의 너비임)이다. 이하 하나 또는 다수의 데이터 유닛에서 변환 블록이 사용하는 스캐닝 모드의 정보를 인코딩하여 비트 스트림에 기록하고, 상기 데이터 유닛은 하나 또는 다수의 파라미터 세트, 슬라이스 헤더, 인코딩 유닛, 변환 블록의 데이터 유닛을 포함한다.
선택적으로, 계수 그룹의 크기에 따라 변환 블록 중의 변환 계수를 하나 또는 다수의 계수 그룹으로 분할하고, 확정된 스캐닝 모드에 따라 변환 계수 행렬 중의 요소를 처리한다. 스캐닝 모드의 정순 또는 역순을 사용하여 변환 계수 행렬 중의 계수 그룹에 대해 순차적으로 처리한다. 각 계수 그룹에 대해, 스캐닝 모드의 정순 또는 역순을 사용하여 해당 계수 그룹의 변환 계수에 대해 순차적으로 처리한다. 여기서, 계수 그룹의 스캐닝 순서와 계수 그룹 중의 변환 계수의 스캐닝 순서는 동일하거나 상이할 수 있다. 상기 변환 블록을 인코딩하여 생성된 비트를 비트 스트림에 기록하고, 상기 비트는 변환 블록이 사용하는 계수 그룹의 크기, 변환 블록이 사용하는 스캐닝 모드, 변환 블록 중의 변환 계수 중 하나 또는 다수를 나타낸다.
도 3은 본 발명의 실시예에 따른 계수 그룹의 크기를 인코딩하는 데이터 처리 흐름도이며, 상기 처리 흐름의 출력은 계수 그룹의 크기 관련 파라미터를 인코딩한 후의 비트 스트림이다.
단계(S301)에서, 파라미터 세트 데이터 유닛에서 계수 그룹의 크기를 인코딩한다. 파라미터 세트 데이터 유닛에서 계수 그룹의 크기의 설정 파라미터를 인코딩한다.
상기 파라미터 세트 데이터 유닛은 H.265/HEVC 표준에서의 비디오 파라미터 세트(Video Parameter Set, VPS) 및 시퀀스 파라미터 세트(Sequence Parameter Set, SPS)와 같이, 전체 시퀀스에 적용되는 파라미터 데이터를 전달하는데 사용되는 파라미터 세트 데이터 유닛을 나타낸다. 상기 파라미터 세트 데이터 유닛은 적응 파라미터 세트(Adaptive Parameter Set, APS), H.265/HEVC 표준에서의 이미지 파라미터 세트(Picture Parameter Set, PPS)와 같이, 이미지에 적용되는 파라미터 데이터를 전달하는데 사용되는 파라미터 세트 데이터 유닛을 더 포함할 수 있다. 특히 APS 또는 PPS의 파라미터가 전체 시퀀스의 각 이미지에 대해 변하지 않도록 유지되는 경우, 즉 APS 또는 PPS의 파라미터가 전체 시퀀스의 각 이미지에 적용되는 경우, 이 경우에서의 APS 또는 PPS는 전체 시퀀스에 적용되는 파라미터 데이터를 전달하는 파라미터 세트 데이터 유닛에 해당된다. 선택적으로, 특히 설정하거나 디폴트 설정의 방법으로, 이미지에 적용되는 파라미터 세트 데이터 유닛의 데이터를 사용하여 시퀀스에 적용되는 파라미터 세트 데이터 유닛의 대응되는 데이터를 오버라이트할 수 있다.
구성된 파일에 따라 파라미터 세트 데이터 유닛에서 계수 그룹의 크기와 관련된 필드의 값을 설정하고, 상기 필드를 인코딩하며, 인코딩된 비트를 파라미터 세트 데이터 유닛에 대응되는 비트 스트림에 기록한다. 여기서 상기 구성된 파일에 기록된 것은 초기화 과정에서 파라미터를 설정하는데 사용된다.
파라미터 세트 데이터 유닛에 여러 계수 그룹의 크기의 사용이 허용되는지 여부를 지시하는 플래그 비트를 설정한다. 플래그 비트가 "사용이 허용됨"을 지시하는 경우, 인코딩 블록의 인코딩 과정에서, 둘 이상의 후보 계수 그룹의 크기에서 상기 인코딩 블록의 변환 계수를 인코딩하는데 사용되는 계수 그룹의 크기를 선택할 수 있다. 플래그 비트가 "사용이 허용되지 않음"을 지시하는 경우, 디폴트로 설정된 계수 그룹의 크기만 사용하여 변환 계수를 인코딩한다.
파라미터 세트 데이터 유닛에서 계수 그룹의 크기의 디폴트 값을 인코딩할 수 있다. 예를 들어 최소 변환 블록 크기가 8x8로 설정된 경우, 상기 구성된 파일의 파라미터 설정에 따라, 파라미터 세트 데이터 유닛에서 4x4 또는 8x8을 계수 그룹의 크기의 디폴트 값으로 인코딩한다. 선택적으로, 하나의 인코딩 방법은 계수 그룹 크기의 디폴트 값에 대한 인코딩이 어떤 플래그 비트에도 의존하지 않을 수 있는 것이고; 선택적으로 다른 인코딩 방법은 전술한 플래그 비트가 "여러 계수 그룹의 크기의 사용이 허용되지 않음"을 지시하는 경우, 파라미터 세트 데이터 유닛에서 계수 그룹의 크기의 디폴트 값을 인코딩하는 것이다.
전술한 플래그 비트가 "여러 계수 그룹의 크기의 사용이 허용됨"을 지시하는 경우, 사용이 허용되는 계수 그룹의 크기를 인코딩한다.
선택적으로, 하나의 인코딩 방법은 파라미터 세트 데이터 유닛에서 사용이 허용되는 계수 그룹의 최대 및 최소 크기를 인코딩하는 것이며, 사용이 허용되는 계수 그룹의 기타 크기에 대해, 최대에서 최소로의 설정된 유도 방식(예를 들어 쿼드 트리 방식에 따름)에 따라 암시적 유도를 수행할 수 있으며, 예를 들어, 사용이 허용되는 계수 그룹의 최대 및 최소 크기를 각각 32x32 및 4x4로 설정하여 인코딩하면, 상기 쿼드 트리 방식에 따라 파라미터 세트 데이터 유닛의 필드에 의해 지시되는 사용이 허용되는 계수 그룹의 크기는 32x32, 16x16, 8x8 및 4x4를 포함한다. 두 번째 인코딩 방법은 파라미터 세트 데이터 유닛에서 사용이 허용되는 계수 그룹의 최대 크기 및 분할 모드(예를 들어 쿼드 트리 방식)에 따른 최대 분할 계층을 인코딩하는 것이고, 예를 들어, 사용이 허용되는 계수 그룹의 최대 크기를 32x32로 설정하여 인코딩하고, 허용되는 최대 분할 계층을 3 층으로 설정하면, 파라미터 세트 데이터 유닛의 필드에 의해 지시되는 사용이 허용되는 계수 그룹의 크기는 32x32, 16x16, 8x8 및 4x4를 포함하고, 대체 가능하게, 사용이 허용되는 계수 그룹의 최대 및 최소 크기 사이의 차이값으로 최대 분할 계층을 대체할 수 있고, 상기 예에서, 최대 허용값 및 최소 허용값 사이의 차이값을 log232 - log24 = 3으로 표시할 수 있다. 세 번째 인코딩 방법은 파라미터 세트 데이터 유닛에서 사용이 허용되는 계수 그룹의 최소 크기 및 분할 모드(예를 들어 쿼드 트리 방식)에 따른 최대 상향 계층을 인코딩하는 것이고, 예를 들어, 사용이 허용되는 계수 그룹의 최소 크기를 4x4로 설정하여 인코딩하고, 최대 상향 계층을 3층으로 설정하면, 파라미터 세트 데이터 유닛의 필드에 의해 지시되는 사용이 허용되는 계수 그룹의 크기는 32x32, 16x16, 8x8 및 4x4를 포함하고, 대체 가능하게, 사용이 허용되는 계수 그룹의 최대 및 최소 크기 사이의 차이값으로 최대 상향 계층을 대체할 수 있고, 상기 예에서, 상기 최대 허용값 및 최소 허용값 사이의 차이값을 log232 - log24 = 3으로 표시할 수 있다.
선택적으로, 하나의 인코딩 방법은 파라미터 세트 데이터 유닛에서 사용이 허용되는 계수 그룹의 최대 및 최소 변의 길이를 인코딩하는 것이며, 사용이 허용되는 계수 그룹의 기타 크기에 대해, 설정된 변의 길이의 최대에서 최소로의 유도 방식(예를 들어 이진 방식에 따름)에 따라, 암시적 유도를 수행할 수 있으며, 예를 들어, 최대 및 최소 변의 길이를 각각 16 및 4로 설정하여 인코딩하면, 파라미터 세트 데이터 유닛의 필드에 의해 지시되는 사용이 허용되는 계수 그룹의 사용 가능한 변의 길이는16, 8 및 4를 포함하고, 대응되게 지시하는 계수 그룹의 크기("너비 x 높이"의 방식으로 표시)는 16x16, 16x8, 16x4, 8x16, 8x8, 8x4, 4x16, 4x8 및 4x4를 포함한다. 두 번째 인코딩 방법은 파라미터 세트 데이터 유닛에서 사용이 허용되는 계수 그룹의 최대 변의 길이와 분할 모드(예를 들어 이진 방식)에 따른 최대 분할 계층을 인코딩하는 것이고, 예를 들어 사용이 허용되는 계수 그룹의 최대 변의 길이를 16으로, 최대 분할 계층을 2로 설정하고 인코딩하면, 파라미터 세트 데이터 유닛의 필드에 의해 지시되는 사용이 허용되는 계수 그룹의 사용 가능한 변의 길이는16, 8 및 4를 포함하고, 대응되게 지시하는 계수 그룹의 크기는 16x16, 16x8, 16x4, 8x16, 8x8, 8x4, 4x16, 4x8 및 4x4를 포함하고, 대체 가능하게, 사용이 허용되는 계수 그룹의 최대 및 최소 변의 길이 사이의 차이값으로 최대 분할 계층을 대체할 수 있고, 상기 예에서 상기 최대 허용값 및 최소 허용값 사이의 차이값을 log216 - log24 = 2로 표시할 수 있다. 세 번째 인코딩 방법은 파라미터 세트 데이터 유닛에서 사용이 허용되는 계수 그룹의 최소 변의 길이와 분할 모드(예를 들어 이진 방식)에 따른 최대 상향 계층을 인코딩하는 것이고, 예를 들어 사용이 허용되는 계수 그룹의 최소 변의 길이를 4로, 최대 상향 계층을 2로 설정하여 인코딩하면, 파라미터 세트 데이터 유닛의 필드에 의해 지시되는 사용이 허용되는 계수 그룹의 사용 가능한 변의 길이는16, 8 및 4를 포함하고, 대응되게 지시하는 계수 그룹의 크기는 16x16, 16x8, 16x4, 8x16, 8x8, 8x4, 4x16, 4x8 및 4x4를 포함하고, 대체 가능하게, 사용이 허용되는 계수 그룹의 최대 및 최소 변의 길이 사이의 차이값으로 최대 상향 계층을 대체할 수 있고, 상기 예에서 상기 최대 허용값 및 최소 허용값 사이의 차이값을 log216 - log24 = 2로 표시할 수 있다. 네 번째 인코딩 방법은 파라미터 세트 데이터 유닛에서 사용 가능한 변의 길이에 대해 각각 플래그 비트를 설정하는 것이고, 상기 플래그 비트는 대응되는 변의 길이의 사용이 허용되는지 여부를 지시하는데 사용되고, 예를 들어, 사용 가능한 변의 길이가 32, 16, 8 및 4를 포함할 때, 사용이 허용되는 변의 길이가 16, 8 및 4인 경우, 파라미터 세트 데이터 유닛에서 "변의 길이가 32임"에 대응되는 플래그 비트를 "사용이 허용되지 않음"으로 설정하여 인코딩하고, "변의 길이가 16, 8 및 4임"에 대응되는 3개의 플래그 비트를 "사용이 허용됨"으로 설정하여 인코딩하면, 파라미터 세트 데이터 유닛의 필드에 의해 지시되는 사용이 허용되는 계수 그룹의 사용 가능한 변의 길이는16, 8 및 4를 포함하고, 대응되게 지시하는 계수 그룹의 크기는 16x16, 16x8, 16x4, 8x16, 8x8, 8x4, 4x16, 4x8 및 4x4를 포함한다.
선택적으로, 하나의 인코딩 방법은 파라미터 세트 데이터 유닛에서 계수 그룹의 너비 및 높이의 사용이 허용되는 최대값 및 최소값을 인코딩하는 것이고, 사용이 허용되는 계수 그룹의 기타 크기에 대해, 설정된 너비와 높이의 최대에서 최소로의 유도 방식(예를 들어, 이진 방식에 따름)에 따라 암시적 유도를 수행할 수 있고, 예를 들어, 계수 그룹의 너비의 사용이 허용되는 최대값 및 최소값을 각각 16 및 4로 설정하여 인코딩하고, 계수 그룹의 높이의 사용이 허용되는 최대값 및 최소값을 각각 8 및 4로 설정하면, 파라미터 세트 데이터 유닛의 필드에 의해 지시되는 사용이 허용되는 계수 그룹의 너비는 16, 8 및 4를 포함하고, 지시되는 사용이 허용되는 계수 그룹의 높이는 8 및 4를 포함하며, 대응되게 지시하는 계수 그룹의 크기("너비 x 높이"의 방식으로 표시)는 16x8, 16x4, 8x8, 8x4, 4x8, 4x4를 포함한다. 두 번째 인코딩 방법은 파라미터 세트 데이터 유닛에서 사용이 허용되는 계수 그룹의 최대 너비 및 분할 모드(예를 들어 이진 방식)에 따른 최대 분할 계층을 인코딩하고, 사용이 허용되는 계수 그룹의 최대 높이 및 분할 모드(예를 들어 이진 방식)에 따른 최대 분할 계층을 인코딩하는 것이며, 예를 들어, 사용이 허용되는 계수 그룹의 최대 너비를 16으로, 최대 분할 계층을 2로 설정하여 인코딩하고, 사용이 허용되는 계수 그룹의 최대 높이를 8로, 최대 분할 계층을 1로 설정하여 인코딩하면, 파라미터 세트 데이터 유닛의 필드에 의해 지시되는 사용이 허용되는 계수 그룹의 너비는 16, 8 및 4를 포함하고, 지시되는 사용이 허용되는 계수 그룹의 높이는 8과 4를 포함하며, 대응되게 지시하는 계수 그룹의 크기("너비 x 높이"의 방식으로 표시)는 16x8, 16x4, 8x8, 8x4, 4x8 및 4x4를 포함하고, 대체 가능하게 사용이 허용되는 계수 그룹의 최대 및 최소 너비 사이의 차이값으로 최대 분할 계층을 대체할 수 있으며, 상기 예에서 상기 최대 허용값 및 최소 허용값 사이의 차이값을 log216 - log24 = 2로 표시할 수 있으며, 대체 가능하게 사용이 허용되는 계수 그룹의 최대 및 최소 높이 사이의 차이값으로 최대 분할 계층을 대체하고, 상기 예에서 상기 최대 허용값 및 최소 허용값 사이의 차이값을 log28 - log24 = 1로 표시할 수 있다. 세 번째 인코딩 방법은 파라미터 세트 데이터 유닛에서 사용이 허용되는 계수 그룹의 최소 너비 및 분할 모드(예를 들어 이진 방식)에 따른 최대 상향 계층을 인코딩하고, 사용이 허용되는 계수 그룹의 최소 높이 및 분할 모드(예를 들어 이진 방식)에 따른 최대 상향 계층을 인코딩하는 것이며, 예를 들어, 사용이 허용되는 계수 그룹의 최소 너비를 4로, 최대 상향 계층을 2로 설정하여 인코딩하고, 사용이 허용되는 계수 그룹의 최소 높이를 4로, 최대 상향 계층을 1로 설정하여 인코딩하면, 파라미터 세트 데이터 유닛의 필드에 의해 지시되는 사용이 허용되는 계수 그룹의 너비는 16, 8 및 4를 포함하고, 지시하는 사용이 허용되는 계수 그룹의 높이는 8 및 4를 포함하며, 대응되게 지시하는 계수 그룹의 크기("너비 x 높이"의 방식으로 표시)는 16x8, 16x4, 8x8, 8x4, 4x8 및 4x4를 포함하고, 대체 가능하게 사용이 허용되는 계수 그룹의 최대 및 최소 너비 사이의 차이값으로 최대 상향 계층을 대체하고, 상기 예에서 상기 최소 허용값 및 최소 허용값 사이의 차이값을 log216 - log24 = 2로 표시할 수 있고, 대체 가능하게 사용이 허용되는 계수 그룹의 최대 및 최소 높이 사이의 차이값으로 최대 상향 계층을 대체하고, 상기 예에서 상기 최대 허용값 및 최소 허용값 사이의 차이값을 log28 - log24 = 1로 표시할 수 있다. 네 번째 인코딩 방법은 파라미터 세트 데이터 유닛에서 사용 가능한 너비와 높이에 대해 플래그 비트를 각각 설정하는 것이며, 상기 플래그 비트는 대응되는 너비와 높이의 사용이 허용되는지 여부를 지시하는데 사용되고, 예를 들어, 사용 가능한 너비와 높이가 모두 32, 16, 8 및 4를 포함하지만 사용이 허용되는 너비는 16, 8 및 4이고 사용이 허용되는 높이는 8과 4인 경우, 파라미터 세트 데이터 유닛에서 "너비가 32임"에 대응되는 플래그 비트를 "사용이 허용되지 않음"으로 설정하여 인코딩하고, "너비가 16, 8 및 4임"에 대응되는 3 개의 플래그 비트를 "사용이 허용됨"으로 설정하여 인코딩하고, "높이가 32 및 16임"에 대응되는 2 개의 플래그 비트를 "사용이 허용되지 않음"으로 설정하여 인코딩하고, "높이가 8 및 4임"에 대응되는 2 개의 플래그 비트를 "사용이 허용됨"으로 설정하여 인코딩하면, 파라미터 세트 데이터 유닛의 필드에 의해 지시되는 사용이 허용되는 계수 그룹의 너비는 16, 8 및 4를 포함하고, 지시하는 사용이 허용되는 계수 그룹의 높이는 8 및 4를 포함하며, 대응되게 지시하는 계수 그룹의 크기("너비 x 높이"의 방식으로 표시)는 16x8, 16x4, 8x8, 8x4, 4x8 및 4x4를 포함한다.
선택적으로 하나의 인코딩 방법은 파라미터 세트 데이터 유닛에서 사용 가능한 계수 그룹의 크기에 대해 각각 플래그 비트를 설정하는 것이며, 상기 플래그 비트는 대응되는 파라미터 그룹의 크기의 사용이 허용되는지 여부를 지시하는데 사용된다. 예를 들어 사용 가능한 계수 그룹의 크기가 16x16, 16x8, 16x4, 8x16, 8x8, 8x4, 4x16, 4x8 및 4x4를 포함하고, 16x8, 16x4, 8x8, 8x4, 4x8 및 4x4의 사용이 허용되면, 파라미터 세트 데이터 유닛에서 상기 6가지 계수 그룹의 크기에 대응되는 플래그 비트를 "사용이 허용됨"으로 설정하여 인코딩하고, 기타 3가지 계수 그룹, 즉 16x16, 8x16 및 4x16의 계수 그룹의 크기에 대응되는 플래그 비트를 "사용이 허용되지 않음"으로 설정하여 인코딩한다.
선택적으로, 파라미터 세트 데이터 유닛에서, 전술한 방법으로 상이한 인코딩 모드를 사용하는 인코딩 블록에 대해 각각 사용이 허용되는 계수 그룹의 크기를 설정할 수 있다. 예를 들어, 인트라 모드 인코딩 블록에 대해 설정한 사용이 허용되는 계수 그룹의 크기는 8x8 및 4x4이고 인코딩하고, 인터 모드 인코딩 블록에 대해 설정한 사용이 허용되는 계수 그룹의 크기는 16x16, 8x8 및 4x4이고 인코딩하면, 파라미터 세트 데이터 유닛의 필드에 의해 지시되는 인트라 예측 모드 인코딩 블록에서의 변환 블록의 사용이 허용되는 계수 그룹의 크기는 8x8 및 4x4이고, 인터 예측 모드 인코딩 블록의 변환 블록의 사용이 허용되는 계수 그룹의 크기는 16x16, 8x8 및 4x4이다.
선택적으로, 파라미터 세트 데이터 유닛에서, 전술한 방법으로 상이한 변환 횟수를 사용하는 변환 블록에 대해 사용이 허용되는 계수 그룹의 크기를 각각 설정할 수 있다. 예를 들어, 한 번의 변환을 사용하는 변환 블록에 대해 설정한 사용이 허용되는 계수 그룹의 크기는 8x8 및 4x4이고 인코딩하고, 다수 번의 변환을 사용하는 변환 블록에 대해 설정한 사용이 허용되는 계수 그룹의 크기는 16x16, 8x8 및 4x4이고 인코딩하면, 파라미터 세트 데이터 유닛의 필드에 의해 지시되는, 한 번의 변환을 사용하는 변환 블록의 사용이 허용되는 계수 그룹의 크기는 8x8 및 4x4이고 다수 번의 변환을 사용하는 변환 블록에 대해 사용이 허용되는 계수 그룹의 크기는 16x16, 8x8 및 4x4이다.
선택적으로, 파라미터 세트 데이터 유닛에서, 전술한 방법으로 상이한 변환 모드를 사용하는 변환 블록에 대해 사용이 허용되는 계수 그룹의 크기를 각각 설정할 수 있다. 예를 들어 DCT를 기반으로 설계된 변환을 사용하는 변환 블록에 대해 설정한 사용이 허용되는 계수 그룹의 크기는 8x8 및 4x4이고 인코딩하고, DST를 기반으로 설계된 변환을 사용하는 변환 블록에 대해 설정한 사용이 허용되는 계수 그룹의 크기는 16x16, 8x8 및 4x4이고 인코딩하고, KLT 기반으로 설계된 변환을 사용하는 변환 블록에 대해 설정한 사용이 허용되는 계수 그룹의 크기는 32x32, 16x16, 8x8 및 4x4이고 인코딩하면, 파라미터 세트 데이터 유닛의 필드에 의해 지시되는, DCT를 기반으로 설계된 변환을 사용하는 변환 블록에 대해 사용이 허용되는 계수 그룹의 크기는 8x8 및 4x4이고, DST를 기반으로 설계된 변환을 사용하는 변환 블록에 대해 사용이 허용되는 계수 그룹의 크기는 16x16, 8x8 및 4x4이고, KLT 기반으로 설계된 변환을 사용하는 변환 블록에 대해 사용이 허용되는 계수 그룹의 크기는 32x32, 16x16, 8x8 및 4x4이다.
선택적으로, 파라미터 세트 데이터 유닛에서, 사용이 허용되는 계수 그룹의 크기를 전환하기 위한 제어 파라미터를 설정하여 인코딩한다. 예를 들어, 양자화 파라미터를 사용이 허용되는 계수 그룹의 크기를 전환하기 위한 제어 파라미터로 사용하는 경우, 예하면 H.265/HEVC 표준의 양자화 파라미터 정의 방식과 같이, 양자화 파라미터가 37 이상인 경우 사용이 허용되는 계수 그룹의 크기는 16x16, 8x8 및 4x4이고; 양자화 파라미터 값이 37보다 작지만 27보다 크거나 같은 경우 사용이 허용되는 계수 그룹의 크기는 8x8이고; 양자화 파라미터 값이 27보다 작은 경우 사용이 허용되는 계수 그룹의 크기는 4x4이고, 전술한 방법으로 파라미터 세트 데이터 유닛에서 양자화 파라미터의 분할 간격과 각 간격에서 사용이 허용되는 계수 그룹의 크기를 설정하여 인코딩한다.
선택적으로, 사용 가능한 계수 그룹의 크기를 프로파일/티어/레벨(Profile/Tier/Level)에 기설정하고, 상이한 Profile/Tier/Level에 대해, 하나 또는 다수의 값을 가지는 사용 가능한 계수 그룹의 크기를 설정한다. 예를 들어, 비교적 낮은 Level(예하면 해상도가 640x480 이하인 비디오 인코딩에 해당됨)의 경우, 사용하는 디폴트 값은 4x4의 계수 그룹의 크기와 동일하고, 비교적 높은 Level(예하면 720p, 1080p, 2K 등 해상도가 비교적 높은 비디오 인코딩에 해당됨)의 경우, 8x8 및 4x4의 두 가지 계수 그룹의 크기를 사용할 수 있고; 가장 높은 Level(예하면 4K, 8K 등 초고해상도 비디오 인코딩에 해당됨)의 경우, 16x16, 8x8, 4x4의 세 가지 계수 그룹의 크기를 사용할 수 있다. 파라미터 세트 데이터 유닛에서 Profile/Tier/Level의 지시 정보를 인코딩한다.
상기 방법을 사용하는 선택 가능한 비트 스트림 구성 방법은 다음과 같으며, 사용이 허용되는 인코딩 계수 그룹의 크기에 사용된다. 상기 비트 스트림 구성 방법의 필드는 하나 또는 다수의 파라미터 세트 데이터 유닛에 위치한다. 상기 비트 스트림 구성 방법에 의해 생성된 비트 스트림에 포함되는 필드는 다음과 같다:
파라미터 세트 데이터 유닛에서의 비트 스트림 구성
...... Descriptor
log2_min_cg_side_length ue(v)
log2_diff_max_cg_side_length ue(v)
......
}
표 1의 각 구문 요소(Syntax element)의 의미(semantics)는 다음과 같다:log2_min_cg_side_length는 계수 그룹의 최소 변의 길이를 나타낸다. 계수 그룹의 최소 변의 길이는 (1 << log2_min_cg_side_length)와 같다. 여기서 "<<"는 산술 오른쪽 시프트 연산자(arithmetic right shift operator)이다. log2_min_cg_side_length는 ue(v) 방법으로 엔트로피 인코딩을 수행한다.
log2_diff_max_cg_side_length는 계수 그룹의 최대 변의 길이와 최소 변의 길이 사이의 차이값을 나타낸다. 계수 그룹의 최대 변의 길이는 (1 << (log2_min_cg_side_length + log2_diff_max_cg_side_length))와 같다. log2_diff_max_cg_side_length는 ue(v) 방법으로 엔트로피 인코딩을 수행한다.
표 1의 파라미터 설정 방법은 다음 예와 같다. 예를 들어, 구성 파일에서 디폴트 크기가 4x4 인 계수 그룹만 사용하는 경우, log2_min_cg_side_length의 값은 2로 설정하고 log2_diff_max_cg_side_length는 0으로 설정하며 ue(v) 방법을 사용하여 두 개의 필드에 대해 인코딩하고 인코딩 비트를 비트 스트림에 기록한다.
예를 들어, 구성 파일에서 최소 4x4인 계수 그룹과 최대 16x16인 계수 그룹을 사용하는 경우, log2_min_cg_side_length의 값을 2로 설정하고 log2_diff_max_cg_side_length의 값을 2로 설정하며 ue(v) 방법을 사용하여 두 개의 필드에 대해 인코딩하고, 인코딩 비트를 비트 스트림에 기록한다. 전술한 실시 방법에서 설명한 바와 같이, 파라미터 세트 데이터 유닛의 필드에 의해 지시되는 사용이 허용되는 계수 그룹의 사용 가능한 변의 길이는 16, 8, 4를 포함하고, 대응되게 지시하는 계수 그룹의 크기는 16x16, 16x8, 16x4, 8x16, 8x8, 8x4, 4x16, 4x8 및 4x4를 포함한다.
상기 방법을 사용하는 다른 선택 가능한 비트 스트림 구성 방법은 다음과 같으며, 인터 모드와 인트라 모드를 사용하는 인코딩 블록에서 변환 블록의 사용이 허용되는 계수 그룹의 크기를 인코딩하는데 사용된다. 상기 비트 스트림 구성 방법의 필드는 하나 또는 다수의 파라미터 세트 데이터 유닛에 위치한다. 상기 비트 스트림 구성 방법에 의해 생성된 비트 스트림에 포함된 필드는 다음과 같다:
파라미터 세트 데이터 유닛에서의 비트 스트림 구성
...... Descriptor
log2_min_cg_side_length ue(v)
log2_diff_max_inter_cg_side_length ue(v)
log2_diff_max_intra_cg_side_length ue(v)
......
}
표 2의 각 구문 요소(Syntax element)의 의미(semantics)는 다음과 같다: log2_min_cg_side_length는 계수 그룹의 최소 변의 길이를 나타낸다. 계수 그룹의 최소 변의 길이는 (1 << log2_min_cg_side_length)와 같다. 여기서 "<<"는 산술 오른쪽 시프트 연산자이다. log2_min_cg_side_length는 ue(v)의 방법으로 엔트로피 인코딩을 수행한다.
log2_diff_max_inter_cg_side_length는 인터 예측 모드를 사용하는 인코딩 블록에서 변환 블록의 계수 그룹의 최대 변의 길이와 최소 변의 길이 사이의 차이값을 나타낸다. 계수 그룹의 최대 변의 길이는 (1 << (log2_min_cg_side_length + log2_diff_max_cg_side_length))와 같다. log2_diff_max_cg_side_length는 ue(v)의 방법으로 엔트로피 인코딩을 수행한다.
log2_diff_max_intra_cg_side_length는 인트라 예측 모드를 사용하는 인코딩 블록에서 변환 블록의 계수 그룹의 최대 변의 길이와 최소 변의 길이 사이의 차이값을 나타낸다. 계수 그룹의 최대 변의 길이는 (1 << (log2_min_cg_side_length + log2_diff_max_cg_side_length))와 같다. log2_diff_max_cg_side_length는 ue(v)의 방법으로 엔트로피 인코딩을 수행한다.
표 2의 파라미터 설정 방법은 다음 예와 같다. 예를 들어, 구성 파일에서 디폴트 크기가 4x4 인 계수 그룹만 사용하는 경우, log2_min_cg_side_length의 값은 2로 설정하고, log2_diff_max_inter_cg_side_length 및 log2_diff_max_intra_cg_side_length는 0으로 설정하며, ue(v) 방법을 사용하여 두 개의 필드에 대해 인코딩하고 인코딩 비트를 비트 스트림에 기록한다. 이 경우, 인터 예측 모드의 인코딩 블록 및 인트라 예측 모드의 인코딩 블록이 사용하는 계수 그룹의 크기느 모두 4x4이다.
예를 들어, 구성 파일에서 최소 4x4인 계수 그룹과 최대 16x16인 계수 그룹을 사용하는 경우, log2_min_cg_side_length의 값은 2로 설정하고 log2_diff_max_inter_cg_side_length 및 log2_diff_max_intra_cg_side_length의 값은 모두 2로 설정하며 ue(v)의 방법을 사용하여 세 개의 필드를 인코딩하고 인코딩 비트를 비트 스트림에 기록한다. 전술한 실시 방법에서 설명한 바와 같이, 파라미터 세트 데이터 유닛의 필드에 의해 지시되는 사용이 허용되는 계수 그룹의 사용 가능한 변의 길이는 16, 8, 4를 포함하고, 대응되게 지시하는 계수 그룹의 크기는 16x16, 16x8, 16x4, 8x16, 8x8, 8x4, 4x16, 4x8 및 4x4를 포함한다. 이 경우, 인터 예측 모드의 인코딩 블록과 인트라 예측 모드의 인코딩 블록에서의 변환 블록에 대해 동일한 사용이 허용되는 계수 그룹을 사용한다.
예를 들어, 구성 파일에서 최소 4x4인 계수 그룹, 인터 예측 모드의 인코딩 블록에서 사용이 허용되는 최대 16x16인 계수 그룹, 인트라 예측 모드의 인코딩 블록에서 사용이 허용되는 최대 8x8인 계수 그룹을 사용하는 경우, log2_min_cg_side_length의 값은 2로 설정하고 log2_diff_max_inter_cg_side_length의 값은 2로 설정하며 log2_diff_max_intra_cg_side_length의 값은 모두 1로 설정하며, ue(v) 방법을 사용하여 세 개의 필드에 대해 인코딩하고, 인코딩 비트를 비트 스트림에 기록한다. 전술한 실시 방법에서 설명한 바와 같이, 파라미터 세트 데이터 유닛의 필드에 의해 지시되는 인터 모드의 인코딩 블록에서 사용이 허용되는 계수 그룹의 사용 가능한 변의 길이는 16, 8 및 4를 포함하고, 대응되게 지시하는 계수 그룹의 크기는 16x16, 16x8, 16x4, 8x16, 8x8, 8x4, 4x16, 4x8, 4x4를 포함하고, 파라미터 세트 데이터 유닛의 필드에 의해 지시되는 인트라 예측 모드의 인코딩 블록에서 사용이 허용되는 계수 그룹의 사용 가능한 변의 길이는 8 및 4를 포함하고, 대응되게 지시하는 계수 그룹의 크기는 8x8, 8x4, 4x8 및 4x4를 포함한다. 이 경우, 인터 예측 모드의 인코딩 블록과 인트라 예측 모드의 인코딩 블록에서의 변환 블록에 대해 완전히 동일하지 않은 사용이 허용되는 계수 그룹을 사용한다.
단계(S302)에서, 슬라이스 헤더 정보 데이터 유닛에서 계수 그룹의 크기를 인코딩한다. 슬라이스 헤더 정보 데이터 유닛에서 계수 그룹의 크기의 구성 파라미터를 인코딩한다.
슬라이스 헤더 정보 데이터 유닛에서 상기 슬라이스가 인용(refer to)하는 파라미터 세트의 파라미터 세트 인덱스 번호(parameter set identifier)를 인코딩한다. 상기 슬라이스를 인코딩하는 과정에서, 인용된 파라미터 세트 중 설정된 사용 가능한 계수 그룹의 크기를 사용할 수 있다.
선택적으로, 특히 슬라이스 헤더 정보에서 사용 가능한 계수 그룹의 크기의 정보를 인코딩하여 상기 슬라이스가 인용하는 파라미터 세트에서 대응되는 파라미터 설정을 대응되게 오버라이트한다. 사용되는 인코딩 방법은 Profile/Tier/Level을 인코딩하여 계수 그룹의 크기를 지시하는 방법을 제외하고는 단계(S301) 중 파라미터 세트에서 계수 그룹의 크기를 인코딩하는 기타 방법과 동일하지만, 인코딩 비트는 슬라이스 헤더 정보 데이터 유닛의 비트 스트림에 기록된다.
선택적으로, 상기 슬라이스가 인용하는 파라미터 세트에 계수 그룹의 크기와 관련되는 파라미터를 포함하지 않는 경우, 슬라이스 헤더 정보에서 사용 가능한 계수 그룹의 크기를 인코딩할 수 있다. 사용되는 인코딩 방법은 Profile/Tier/Level을 인코딩하여 계수 그룹의 크기를 지시하는 방법을 제외하고는 단계(S301) 중 파라미터 세트에서 계수 그룹의 크기를 인코딩하는 기타 방법과 동일하지만, 인코딩 비트는 슬라이스 헤더 정보 데이터 유닛의 비트 스트림에 기록된다.
단계(S303)에서, 블록 레이어 데이터 유닛에서 계수 그룹의 크기를 인코딩한다. 블록 레이어 데이터 유닛에서 계수 그룹의 크기의 파라미터에 대해 인코딩을 수행한다.
블록 레이어 데이터 유닛에서, 인코딩 블록에서 변환 블록이 사용하는 계수 그룹의 크기를 지시하기 위한 파라미터를 인코딩한다. 예를 들어, 하나의 인코딩 방법은 블록 레이어 데이터 유닛에서 사용되는 계수 그룹의 크기(예를 들어, 계수 그룹의 너비 및 높이)를 인코딩하는 것이다. 예를 들어, 하나의 인코딩 방법은 블록 레이어 데이터 유닛에서 인덱스 값을 인코딩하고, 해당 인코딩 값은 하나의 계수 그룹의 크기에 대응된다. 예를 들어, 하나의 인코딩 방법은 블록 레이어 데이터 유닛에서 하나 또는 다수의 플래그 정보를 인코딩하는 것이며, 여기서 상기 플래그 정보는 상기 인코딩 블록에서 변환 블록이 사용하는 계수 그룹의 크기와 상기 플래그 정보가 지시하는 인코딩된 하나의 변환 블록이 동일한 것을 지시하기 위해 사용되며, 상기 인코딩된 변환 블록은 상기 변환 블록과 동일한 이미지에 위치한 인코딩된 변환 블록(예를 들어 위쪽 인접 블록, 왼쪽 인접 블록 등)이거나, 상기 변환 블록과 동일한 이미지에 위치하지 않은 인코딩된 블록(즉 시간 도메인 인접 블록)일 수 있으며, 예하면 블록 레이어 데이터 유닛에서 "위쪽 인접 변환 블록의 계수 그룹의 크기와 동일"한 플래그 정보를 인코딩한다.
도 4는 본 발명의 실시예에 따른 스캐닝 모드 파라미터를 인코딩하는 데이터 처리 흐름도이다.
선택적으로, 상기 처리 흐름의 출력은 스캐닝 모드와 관련된 파라미터를 인코딩한 후의 비트 스트림이다.
단계(S401)에서, 파라미터 세트 데이터 유닛에서 스캐닝 모드 파라미터를 인코딩한다. 파라미터 세트 데이터 유닛에서 스캐닝 모드 파라미터에 대해 인코딩을 수행한다.
파라미터 세트 데이터 유닛에서 사용이 허용되는 스캐닝 모드의 지시 정보를 인코딩한다. 여기서 스캐닝 모드는 기설정된 고정 경로의 스캐닝 모드 또는 비 고정 경로의 스캐닝 모드일 수 있다. 비 고정 경로의 스캐닝 모드를 사용하는 경우, 선택적으로 파라미터 세트 데이터 유닛에서 스캐닝 전후의 변환 계수의 좌표 대응관계를 인코딩한다. 예를 들어, 변환 블록에서 좌표 위치가 (m, n)인 변환 계수(또는 인덱스 번호가 m Х nTbS + n과 같고, 여기서 nTbS는 변환 블록의 너비임)에 대응되는 스캐닝 후의 번호 위치는 k와 같다.
선택적으로, 사용 가능한 계수 그룹의 크기를 프로파일/티어/레벨(Profile/Tier/Level)에 기설정하고, 상이한 Profile/Tier/Level에 대해, 하나 또는 다수의 사용 가능한 스캐닝 모드를 설정한다. 예를 들어, 비교적 낮은 Level(예하면 해상도가 640x480 이하인 비디오 인코딩에 해당됨)의 경우, 디폴트 대각선 우측 상단, 수평 및 수직 스캐닝 모드를 사용하고; 비교적 높은 Level(예하면 720p, 1080p, 2K 등 해상도가 비교적 높은 비디오 인코딩에 해당됨)의 경우, 전술한 비교적 낮은 Level에 사용되는 세 가지 디폴트 스캐닝 모드 외에도 지그재그(Zig-zag) 스캐닝 모드, 기타 대각선 스캐닝 모드(예하면 대각선 우측 하단, 대각선 좌측 하단 등)를 사용할 수 있고; 가장 높은 Level(예하면 4K, 8K 등 초고해상도 비디오 인코딩에 해당됨)의 경우, 전술한 스캐닝 모드 외에도, 비 고정 스캐닝 경로의 스캐닝 모드를 사용할 수 있다. 파라미터 세트 데이터 유닛에서 Profile/Tier/Level의 지시 정보를 인코딩한다. 비 고정 경로의 스캐닝 모드의 경우, 파라미터 세트 데이터 유닛에서 스캐닝 전후의 변환 계수의 좌표 대응관계를 인코딩한다. 예를 들어, 변환 블록에서 좌표 위치가 (m, n)인 변환 계수(또는 인덱스 번호가 m Х nTbS + n과 같고, 여기서 nTbS는 변환 블록의 너비임)에 대응되는 스캐닝 후의 번호 위치는 k와 같다.
단계(S402)에서, 슬라이스 헤더 정보 데이터 유닛에서 스캐닝 모드 파라미터를 인코딩한다. 슬라이스 헤더 정보 데이터 유닛에서 스캐닝 모드 파라미터에 대해 인코딩을 수행한다.
슬라이스 헤더 정보 데이터 유닛에서 상기 슬라이스가 인용(refer to)하는 파라미터 세트의 파라미터 세트 인덱스 번호(parameter set identifier)를 인코딩한다. 상기 슬라이스를 인코딩하는 과정에서, 인용된 파라미터 세트 중 설정된 사용 가능한 스캐닝 모드를 사용할 수 있다.
선택적으로, 특히 슬라이스 헤더 정보에서 사용 가능한 스캐닝 모드 파라미터를 인코딩하여 상기 슬라이스가 인용하는 파라미터 세트에서 대응되는 파라미터 설정을 대응되게 오버라이트한다. 사용되는 인코딩 방법은 Profile/Tier/Level을 인코딩하여 스캐닝 모드를 지시하는 방법을 제외하고는 단계(S401) 중 파라미터 세트에서 스캐닝 모드 파라미터를 인코딩하는 기타 방법과 동일하지만, 인코딩 비트는 슬라이스 헤더 정보 데이터 유닛의 비트 스트림에 기록된다.
선택적으로, 상기 슬라이스가 인용하는 파라미터 세트에 스캐닝 모드 파라미터가 포함되지 않는 경우, 슬라이스 헤더 정보에서 사용 가능한 스캐닝 모드 파라미터를 인코딩할 수 있다. 사용되는 인코딩 방법은 Profile/Tier/Level을 인코딩하여 스캐닝 모드를 지시하는 방법을 제외하고는 단계(S401) 중 파라미터 세트에서 스캐닝 모드 파라미터를 인코딩하는 기타 방법과 동일하지만, 인코딩 비트는 슬라이스 헤더 정보 데이터 유닛의 비트 스트림에 기록된다.
선택적으로, 슬라이스 헤더 정보 데이터 유닛에서 스캐닝 전후의 변환 계수의 좌표 대응관계를 인코딩한다. 예를 들어, 변환 블록에서 좌표 위치가 (m, n)인 변환 계수(또는 인덱스 번호가 m Х nTbS + n과 같고, 여기서 nTbS는 변환 블록의 너비임)에 대응되는 스캐닝 후의 번호 위치는 k와 같다.
단계(S403)에서, 블록 레이어 데이터 유닛에서 스캐닝 모드 파라미터를 인코딩한다. 블록 레이어 데이터 유닛에서 스캐닝 모드 파라미터에 대해 인코딩을 수행한다.
블록 레이어 데이터 유닛에서, 인코딩 블록에서 변환 블록이 사용하는 스캐닝 모드를 지시하는데 사용되는 파라미터를 인코딩한다. 예를 들어, 하나의 인코딩 방법은 블록 레이어 데이터 유닛에서 인덱스 값을 인코딩하는 것이며, 해당 인덱스 값은 하나의 스캐닝 모드에 대응된다. 예를 들어, 하나의 인코딩 방법은 블록 레이어 데이터 유닛에서 스캐닝 전후의 변환 계수의 좌표 대응관계를 인코딩한다. 예를 들어, 변환 블록에서 좌표 위치가 (m, n)인 변환 계수(또는 인덱스 번호가 m Х nTbS + n과 같고, 여기서 nTbS는 변환 블록의 너비임)에 대응되는 스캐닝 후의 번호 위치는 k와 같다. 예를 들어, 인코딩 방법은 블록 레이어 데이터 유닛에서 하나 또는 다수의 플래그 정보를 인코딩하는 것이며, 상기 플래그 정보는 상기 인코딩 블록에서 변환 블록이 사용하는 스캐닝 모드와 상기 플래그 정보가 지시하는 인코딩된 하나의 변환 블록이 동일한 것을 지시하는데 사용되고, 상기 인코딩된 변환 블록은 상기 변환 블록과 동일한 이미지에 위치한 인코딩된 변환 블록(예를 들어 위쪽 인접 블록, 왼쪽 인접 블록 등)이거나, 상기 변환 블록과 동일한 이미지에 위치하지 않은 인코딩된 블록(즉 시간 도메인 인접 블록)일 수 있으며, 예하면 블록 레이어 데이터 유닛에서 "위쪽 인접 변환 블록의 계수 그룹의 크기와 동일"한 플래그 정보를 인코딩한다.
상기 실시형태에 대한 설명을 통해 본 분야 당업자는 상기 실시예에 따른 방법은 소프트웨어와 필요한 범용 하드웨어 플랫폼을 통해 구현될 수 있음을 명확하게 이해할 수 있으며, 물론 하드웨어로도 구현될 수 있지만 많은 경우에는 전자가 더 나은 실시 형태이다. 이러한 이해를 바탕으로 본 출원의 기술 방안은 소프트웨어 제품의 형태로 구현될 수 있고, 해당 컴퓨터 소프트웨어 제품은 저장 매체(예를 들어 ROM/RAM, 자기 디스크, 광디스크)에 저장되고, 단말 설비(휴대폰, 컴퓨터, 서버 또는 네트워크 설비 등일 수 있음)가 본 출원의 각 실시예에 따른 방법을 실행하기 위한 여러 명령을 포함한다.
실시예 2
본 실시예에서는 상기 이동 단말에서 실행되는 이미지 디코딩 방법을 제공하고, 도 5는 본 발명의 실시예에 따른 이미지 디코딩의 흐름도이고, 도 5에 도시된 바와 같이, 해당 흐름은,
비트 스트림을 파싱하여 디코딩 블록의 예측값을 확정하는 단계(S502);
상기 비트 스트림을 파싱하여 상기 디코딩 블록 중 변환 계수의 스캐닝 모드, 계수 그룹의 크기 및 변환 계수와 관련된 구문 요소의 값을 확정하는 단계(S504);
상기 스캐닝 모드 및 상기 계수 그룹의 크기에 따라 상기 디코딩 블록 중의 계수 그룹을 처리하고, 상기 구문 요소를 상기 계수 그룹 중의 변환 계수로 전환하는 단계(S506);
상기 변환 계수를 처리하여 변환 계수의 복원 값을 얻는 단계(S508);
상기 변환 계수의 복원 값에 대해 한 번 또는 다수 번의 변환을 수행하여 상기 디코딩 블록의 예측 차이값을 얻는 단계(S510);
상기 예측값과 상기 예측 차이를 사용하여 상기 디코딩 블록의 복원 값을 확정하는 단계(S512); 를 포함한다.
선택적으로, 상기 비트 스트림을 파싱하여 상기 디코딩 블록의 예측값을 확정하는 단계는 상기 비트 스트림을 파싱하여 상기 디코딩 블록의 인터 예측 파라미터를 획득하고; 상기 인터 예측 파라미터에 따라 하나 또는 다수의 디코딩된 이미지를 참조 이미지로 사용하여 상기 디코딩 블록의 예측값을 확정하는 방법; 또는, 상기 비트 스트림을 파싱하여 상기 디코딩 블록의 인트라 예측 파라미터를 획득하고; 상기 인트라 예측 파라미터에 따라 상기 디코딩 블록이 위치한 이미지에서 디코딩된 부분을 참조로 하여 상기 디코딩 블록의 예측값을 확정하는 방법; 중 적어도 하나를 포함한다.
선택적으로, 상기 비트 스트림을 파싱하여 상기 디코딩 블록 중 변환 계수의 계수 그룹의 크기를 확정하는 단계는 상기 비트 스트림을 파싱하여 상기 비트 스트림 중의 데이터 유닛으로부터 제 1 계수 그룹 파라미터를 획득하고, 상기 제 1 계수 그룹 파라미터에 따라 상기 계수 그룹의 크기를 확정하는 것을 포함하고; 여기서, 상기 비트 스트림 중의 데이터 유닛은 하나 또는 다수의 파라미터 세트, 슬라이스 헤더, 블록 레이어 데이터 유닛 중 적어도 하나를 포함한다.
선택적으로, 상기 제 1 계수 그룹 파라미터에 따라 상기 계수 그룹의 크기를 확정하는 단계는 상기 제 1 계수 그룹 파라미터를 사용하여 상기 계수 그룹의 크기를 설정하는 것을 포함한다.
선택적으로, 상기 제 1 계수 그룹 파라미터에 따라 상기 계수 그룹의 크기를 확정하는 단계는 상기 제 1 계수 그룹 파라미터가 상기 디코딩 블록의 인접한 디코딩된 블록을 지시하고, 상기 인접한 디코딩된 블록의 계수 그룹의 크기를 사용하여 상기 계수 그룹의 크기를 설정하는 것을 포함한다.
선택적으로, 상기 제 1 계수 그룹 파라미터에 따라 상기 계수 그룹의 크기를 확정하는 단계는 상기 제 1 계수 그룹 파라미터에 따라 계수 그룹의 크기의 후보 값으로부터 상기 디코딩 블록의 변환 계수의 계수 그룹의 크기를 확정하는 것을 포함한다.
선택적으로, 상기 제 1 계수 그룹 파라미터는 인덱스 번호를 포함하고, 상기 후보 값에서 상기 인덱스 번호에 대응되는 계수 그룹의 크기를 사용하여 상기 계수 그룹의 크기를 설정한다.
선택적으로, 상기 제 1 계수 그룹 파라미터는 플래그 비트를 포함하고, 상기 후보 값에서 상기 플래그 비트에 대응되는 계수 그룹의 크기를 사용하여 상기 계수 그룹의 크기를 설정한다.
선택적으로, 상기 계수 그룹의 크기의 후보 값은 하나 또는 다수의 고정값이다.
선택적으로, 상기 제 1 계수 그룹 파라미터는 식별자 파라미터를 포함하고, 상기 식별자 파라미터를 사용하여 상기 계수 그룹의 크기의 후보 값을 구성한다.
선택적으로, 상기 식별자 파라미터는 계수 그룹의 크기, 계수 그룹의 변의 길이, 계수 그룹의 너비 및 높이 중 적어도 하나를 포함한다.
선택적으로, 상기 식별자 파라미터의 최대값과 최소값을 획득하고, 기설정된 분할 모드에 따라 상기 최대값과 상기 최소값 이외의 상기 식별자 파라미터의 값을 확정하며, 상기 식별자 파라미터의 값을 사용하여 상기 후보 값을 설정하는 방법; 상기 식별자 파라미터의 최대값과 상기 계수 그룹의 최대 분할 계층을 획득하고, 상기 기설정된 분할 모드에 따라 최대값 이외의 상기 식별자 파라미터의 값을 확정하며, 상기 식별자 파라미터의 값을 사용하여 상기 후보 값을 설정하는 방법; 상기 식별자 파라미터의 최대값과 상기 계수 그룹의 크기의 최대값과 최소값 사이의 차이값을 획득하고, 상기 기설정된 분할 모드에 따라 최대값 이외의 상기 식별자 파라미터의 값을 확정하며, 상기 식별자 파라미터의 값을 사용하여 상기 후보 값을 설정하는 방법; 상기 식별자 파라미터의 최소값과 상기 계수 그룹의 최대 상향 분할 계층을 획득하고, 상기 기설정된 분할 모드에 따라 최소값 이외의 상기 식별자 파라미터의 값을 확정하며, 상기 식별자 파라미터의 값을 사용하여 상기 후보 값을 설정하는 방법; 상기 식별자 파라미터의 최소값과 상기 계수 그룹의 크기의 최대값과 최소값 사이의 차이값을 획득하고, 상기 기설정된 분할 모드에 따라 최소값 이외의 상기 식별자 파라미터의 값을 확정하며, 상기 식별자 파라미터의 값을 사용하여 상기 후보 값을 설정하는 방법; 중 하나 또는 다수의 방법을 사용하고, 상기 식별자 파라미터를 사용하여 상기 계수 그룹의 크기의 후보 값을 구성한다.
선택적으로, 상기 기설정된 분할 모드는 4진 분할, 3진 분할 및 2진 분할 중 적어도 하나를 포함한다.
선택적으로, 상기 식별자 파라미터를 사용하여 상기 계수 그룹의 크기의 후보 값을 구성하는 단계는 상기 식별자 파라미터의 디폴트 값을 사용하여 상기 후보 값을 설정하는 것을 포함한다.
선택적으로, 상기 식별자 파라미터를 사용하여 상기 계수 그룹의 크기의 후보 값을 구성하는 단계는 상기 식별자 파라미터는 대응되는 계수 그룹의 크기가 상기 후보 값에 포함되는지 여부를 지시하는 하나 또는 다수의 플래그 비트이고, 상기 식별자 파라미터에 따라 상기 후보 값에 포함되는 계수 그룹의 크기를 설정하는 것을 포함한다.
선택적으로, 상기 식별자 파라미터를 사용하여 상기 계수 그룹의 크기의 후보 값을 구성하는 단계는 상기 식별자 파라미터는 기설정된 Profile/Tier/Level에 대응되는 하나 또는 다수의 계수 그룹의 크기를 지시하고, 상기 식별자 파라미터에 따라 상기 후보 값에 포함되는 계수 그룹의 크기를 설정하는 것을 포함한다.
선택적으로, 상기 제 1 계수 그룹 파라미터에 따라 상기 계수 그룹의 크기를 확정하는 단계는 상기 제 1 파리미터 그룹 파라미터에는 상기 디코딩 블록의 제 1 디코딩 파라미터가 포함되고, 상기 디코딩 블록의 제 1 디코딩 파라미터에 따라 상기 계수 그룹의 크기를 상기 제 1 디코딩 파라미터에 대응되는 계수 그룹의 크기로 설정하는 것을 포함하고, 여기서, 상기 제 1 디코딩 파라미터는 상기 디코딩 블록에 포함된 변환 블록의 크기, 상기 디코딩 블록의 예측모드, 상기 디코딩 블록에 포함된 변환 블록이 사용하는 변환 유형, 양자화 파라미터 중 적어도 하나를 포함한다.
선택적으로, 상기 계수 그룹의 크기를 상기 제 1 디코딩 파라미터에 대응되는 계수 그룹의 크기로 설정하는 단계는 상기 디코딩 블록에 포함된 변환 블록의 크기가 제 1 기설정 값과 동일한 경우, 상기 계수 그룹의 크기를 상기 제 1 기설정 값에 대응되는 계수 그룹의 크기로 설정하는 것을 포함한다.
선택적으로, 상기 제 1 파리미터 그룹 파라미터에 따라 상기 제 1 기설정 값에 대응되는 계수 그룹의 크기를 획득한다.
선택적으로, 상기 계수 그룹의 크기를 상기 제 1 디코딩 파라미터에 대응되는 계수 그룹의 크기로 설정하는 단계는 상기 디코딩 블록의 예측모드가 제 1 기설정 모드인 경우, 상기 계수 그룹의 크기를 상기 제 1 기설정 모드에 대응되는 계수 그룹의 크기로 설정하는 것을 포함한다.
선택적으로, 상기 제 1 파리미터 그룹 파라미터에 따라, 상기 제 1 기설정 모드에 대응되는 계수 그룹의 크기를 획득한다.
선택적으로, 상기 계수 그룹의 크기를 상기 제 1 디코딩 파라미터에 대응되는 계수 그룹의 크기로 설정하는 단계는 상기 디코딩 블록에 포함된 변환 블록이 사용하는 변환 유형이 제 1 변환 유형인 경우, 상기 계수 그룹의 크기를 상기 제 1 변환 유형에 대응되는 계수 그룹의 크기로 설정하는 것을 포함한다.
선택적으로, 상기 제 1 파리미터 그룹 파라미터에 따라, 상기 제 1 변환 유형에 대응되는 계수 그룹의 크기를 획득한다.
선택적으로, 상기 계수 그룹의 크기를 상기 제 1 디코딩 파라미터에 대응되는 계수 그룹의 크기로 설정하는 단계는 상기 양자화 파라미터의 값이 제 2 기설정 값과 동일한 경우, 상기 계수 그룹의 크기를 상기 제 2 기설정 값에 대응되는 계수 그룹의 크기로 설정하는 것; 또는, 상기 양자화 파라미터의 값이 제 1 기설정 값의 범위 내에 있는 경우, 상기 계수 그룹의 크기를 상기 제 1 기설정 값의 범위에 대응되는 계수 그룹의 크기로 설정하는 것; 을 포함한다.
선택적으로, 상기 제 1 파리미터 그룹 파라미터에 따라, 상기 제 2 기설정 값에 대응되는 계수 그룹의 크기를 획득한다. 또는, 상기 제 1 파리미터 그룹 파라미터에 따라, 상기 제 1 기설정 값의 범위에 대응되는 계수 그룹의 크기를 획득한다.
선택적으로, 상기 비트 스트림을 파싱하여 상기 변환 계수의 스캐닝 모드를 확정하는 단계는 상기 비트 스트림 중의 데이터 유닛을 파싱하여 제 1 스캐닝 모드 파라미터를 획득하고, 상기 제 1 스캐닝 모드 파라미터에 따라 상기 변환 계수의 스캐닝 모드를 확정하는 것을 포함하고, 여기서, 상기 스캐닝 모드는 상기 변환 계수의 2 차원 행렬 중 요소에 대한 처리 순서이고; 상기 비트 스트림 중의 데이터 유닛은 하나 또는 다수의 파라미터 세트, 슬라이스 헤더, 블록 레이어 데이터 유닛 중 적어도 하나를 포함한다.
선택적으로, 상기 비트 스트림 중의 데이터 유닛을 파싱하여 제 1 스캐닝 모드 파라미터를 획득하고, 상기 제 1 스캐닝 모드 파라미터에 따라 상기 변환 계수의 스캐닝 모드를 확정하는 단계는 상기 제 1 스캐닝 모드 파라미터가 지시하는 스캐닝 모드를 상기 변환 계수의 스캐닝 모드로 사용하는 것을 포함한다.
선택적으로, 상기 제 1 스캐닝 모드 파라미터가 지시하는 스캐닝 모드를 상기 변환 계수의 스캐닝 모드로 사용하는 단계는 상기 제 1 스캐닝 모드 파라미터가 상기 디코딩 블록의 인접한 디코딩된 블록을 지시하고, 상기 인접한 디코딩된 블록의 스캐닝 모드를 사용하여 상기 변환 계수의 스캐닝 모드를 설정하는 것을 포함한다.
선택적으로, 상기 제 1 스캐닝 모드 파라미터가 지시하는 스캐닝 모드를 상기 변환 계수의 스캐닝 모드로 사용하는 단계는 상기 제 1 스캐닝 모드 파라미터에 따라 후보 스캐닝 모드로부터 상기 변환 계수의 스캐닝 모드를 확정하는 것을 더 포함한다.
선택적으로, 상기 제 1 스캐닝 모드 파라미터는 스캐닝 모드 인덱스 번호를 포함하고, 상기 후보 스캐닝 모드에서 상기 스캐닝 모드 인덱스 번호에 대응되는 스캐닝 모드를 사용하여 상기 변환 계수의 스캐닝 모드를 설정한다.
선택적으로, 상기 제 1 스캐닝 모드 파라미터는 스캐닝 모드 지시 플래그 비트를 포함하고, 상기 후보 스캐닝 모드에서 상기 스캐닝 모드 지시 플래그 비트에 대응되는 스캐닝 모드를 사용하여 상기 변환 계수의 스캐닝 모드를 설정하는 단계를 더 포함한다.
선택적으로, 상기 후보 스캐닝 모드는 하나 또는 다수의 고정 스캐닝 모드; 상기 제 1 스캐닝 모드 파라미터를 사용하여 구성된 상기 후보 스캐닝 모드; 중 적어도 하나를 포함한다.
선택적으로, 상기 제 1 스캐닝 모드 파라미터를 사용하여 상기 후보 스캐닝 모드를 구성하는 단계는 상기 제 1 스캐닝 모드 파라미터는 디폴트 스캐닝 모드를 포함하고, 상기 디폴트 스캐닝 모드를 사용하여 상기 후보 스캐닝 모드를 설정하는 것을 포함한다.
선택적으로, 상기 제 1 스캐닝 모드 파라미터를 사용하여 상기 후보 스캐닝 모드를 구성하는 단계는 상기 제 1 후보 스캐닝 모드 파라미터는 하나 또는 다수의 후보 스캐닝 모드 지시 플래그 비트를 포함하고, 상기 후보 스캐닝 모드 지시 플래그 비트에 대응되는 스캐닝 모드를 사용하여 상기 후보 스캐닝 모드를 설정하는 것을 포함한다.
선택적으로, 상기 제 1 스캐닝 모드 파라미터를 사용하여 상기 후보 스캐닝 모드를 구성하는 단계는 상기 제 1 스캐닝 모드 파라미터가 지시하는 기설정된 Profile/Tier/Level에 대응되는 하나 또는 다수의 스캐닝 모드를 사용하여 상기 후보 스캐닝 모드를 설정하는 것을 포함한다.
선택적으로, 상기 제 1 스캐닝 모드 파라미터를 사용하여 상기 후보 스캐닝 모드를 구성하는 단계는 상기 제 1 스캐닝 모드 파라미터가 지시하는 상기 변환 계수의 위치와 스캔 후의 변환 계수의 위치 사이의 대응관계를 사용하여 상기 후보 스캐닝 모드를 설정하는 것을 포함한다.
선택적으로, 상기 비트 스트림 중의 데이터 유닛을 파싱하여 제 1 스캐닝 모드 파라미터를 획득하고, 상기 제 1 스캐닝 모드 파라미터에 따라 상기 변환 계수의 스캐닝 모드를 확정하는 단계는 상기 제 1 스캐닝 모드 파라미터는 상기 디코딩 블록의 제 2 디코딩 파라미터를 포함하는 것; 상기 제 2 디코딩 파라미터에 따라 상기 변환 계수의 스캐닝 모드를 확정하는 것을 포함하며, 여기서 상기 제 2 디코딩 파라미터는 상기 디코딩 블록에 포함된 변환 블록의 크기, 상기 디코딩 블록의 예측모드, 상기 디코딩 블록에 포함된 변환 블록이 사용하는 변환 유형, 상기 디코딩 블록의 크기 중 적어도 하나를 포함한다.
선택적으로, 상기 제 2 디코딩 파라미터에 따라 상기 변환 계수의 스캐닝 모드를 상기 제 2 디코딩 파라미터에 대응되는 스캐닝 모드로 설정하는 단계는 상기 디코딩 블록에 포함된 변환 블록의 크기가 제 3 기설정 값과 동일한 경우, 상기 변환 계수의 스캐닝 모드를 상기 제 3 기설정 값에 대응되는 스캐닝 모드로 설정하는 것을 포함한다.
선택적으로, 상기 제 1 파리미터 그룹 파라미터에 따라 상기 제 3 기설정 값에 대응되는 스캐닝 모드를 획득한다.
선택적으로, 상기 제 2 디코딩 파라미터에 따라 상기 변환 계수의 스캐닝 모드를 상기 제 2 디코딩 파라미터에 대응되는 스캐닝 모드로 설정하는 단계는 상기 디코딩 블록의 예측모드가 제 2 기설정 모드인 경우, 상기 변환 계수의 스캐닝 모드를 상기 제 2 기설정 모드에 대응되는 스캐닝 모드로 설정하는 것을 포함한다.
선택적으로, 상기 제 1 파리미터 그룹 파라미터에 따라 상기 제 2 기설정 모드에 대응되는 스캐닝 모드를 획득한다.
선택적으로, 상기 제 2 디코딩 파라미터에 따라 상기 변환 계수의 스캐닝 모드를 상기 제 2 디코딩 파라미터에 대응되는 스캐닝 모드로 설정하는 단계는 상기 디코딩 블록에 포함된 변환 블록이 사용하는 변환 유형이 제 2 변환 유형인 경우, 상기 변환 계수의 스캐닝 모드를 상기 제 2 변환 유형에 대응되는 스캐닝 모드로 설정하는 것을 포함한다.
선택적으로, 상기 제 1 파리미터 그룹 파라미터에 따라 상기 제 2 변환 유형에 대응되는 스캐닝 모드를 획득한다.
선택적으로, 상기 제 2 디코딩 파라미터에 따라 상기 변환 계수의 스캐닝 모드를 상기 제 2 디코딩 파라미터에 대응되는 스캐닝 모드로 설정하는 단계는 상기 디코딩 블록의 크기가 제 4 기설정 값과 동일한 경우, 상기 변환 계수의 스캐닝 모드를 상기 제 4 기설정 값에 대응되는 스캐닝 모드로 설정하는 것을 포함한다.
선택적으로, 상기 제 1 파리미터 그룹 파라미터에 따라 제 4 기설정 값에 대응되는 스캐닝 모드를 획득한다.
선택적으로, 상기 비트 스트림을 파싱하여 변환 계수와 관련된 구문 요소의 값을 확정하는 단계는 상기 구문 요소가 0이 아닌 계수의 시작 위치를 지시하는 구문 요소; 계수 그룹에 포함된 0이 아닌 계수를 지시하는 구문 요소; 계수 그룹에서 0이 아닌 계수의 위치를 지시하는 구문 요소; 계수 그룹에서 0이 아닌 계수의 값을 지시하는 구문 요소; 중 적어도 하나를 포함하는 것을 포함한다.
선택적으로, 상기 변환 계수를 처리하여 변환 계수의 복원 값을 얻는 단계는 상기 변환 계수에 대해 스케일링(Scaling) 처리를 수행하는 것으로 판단하는 경우, 상기 변환 데이터를 스케일링 처리하여 상기 변환 계수의 복원 값을 획득하는 것; 상기 변환 데이터에 대해 스케일링 처리를 수행하지 않는 것으로 판단하는 경우, 상기 변환 계수를 사용하여 상기 변환 계수의 복원 값을 설정하는 것을 포함한다.
선택적으로, 상기 변환 계수를 처리하기 전에, 상기 방법은 상기 비트 스트림을 파싱하여 상기 디코딩 블록의 예측 차이값의 복원 값을 구성하기 위해 사용되는 제 3 파라미터를 획득하는 단계; 상기 제 3 파라미터에 따라 상기 변환 계수에 대해 스케일링 처리를 수행하는지 여부를 판단하는 단계를 더 포함한다.
선택적으로, 상기 예측값과 상기 예측 차이값을 사용하여 상기 디코딩 블록의 복원 값을 확정하고 해당 방법은 상기 예측값과 상기 예측 차이값의 합에 대해 루프 필터링 처리를 수행하는 단계를 더 포함한다.
선택적으로, 입력 비트 스트림을 파싱(Parsing)하고 표준에 규정된 엔트로피 디코딩 방법 및 이진화 방법을 사용하여 비트 스트림의 각 필드에 대응되는 하나 또는 다수의 "0" 및 "1" 비트 문자열을 대응되는 파라미터의 값으로 전환한다. 상기 파라미터의 값에 따라 기타 파라미터의 값을 유도하여 획득하고, 예를 들어, 비트 스트림의 플래그 비트 값이 디코딩 블록이 이미지에서 첫 번째 디코딩 블록임을 지시하는 경우, 상기 디코딩 블록의 위치한 슬라이스 중 첫 번째 디코딩 블록의 이미지에서의 주소를 지시하기 위한 파라미터를 0으로 설정한다.
선택적으로, 디코딩 블록 예측 차이의 복원 값을 구성하는데 사용되는 파라미터는 M x N인 2 차원 행렬의 형태로 나타난 변환 계수이며, 여기서 M과 N은 양의 정수이고, M과 N은 동일하거나 상이할 수 있다. 상기 2 차원 행렬은 하나의 변환 블록에 대응될 수 있으며, 이하 설명에서 "변환 블록"은 상기 M x N인 2 차원 행렬 형태로 나타난 변환 계수를 지칭하기 위해 사용된다. 여기서, 비트 스트림을 파싱하여 얻은 지시 정보가 상기 변환 블록에 대해 스케일링(Scaling) 처리를 수행하도록 지시하는 경우, 복원된 상기 변환 계수는 실시예 1의 인코더에서 양자화 과정에서 출력되는 양자화 값(즉, "Level" 값)에 대응되고; 반대로 비트 스트림을 파싱하여 얻은 지시 정보가 상기 변환 블록에 대해 스케일링(Scaling) 처리를 수행하지 않도록 지시하는 경우, 복원된 상기 변환 계수는 전술한 인코더가 상기 예측 차이를 변환한 후에 획득한 데이터에 대응된다.
선택적으로, 계수 그룹의 크기를 확정하고, 계수 그룹에는 W x H 개의 변환 계수가 포함되고, 여기서 W와 H는 양의 정수이고, W와 H는 동일하거나 상이할 수 있으며, W ≤ M, H ≤ N이다. 하나 또는 다수의 계수 그룹은 변환 블록을 형성한다.
선택적으로, 사용하는 계수 그룹의 크기는 기설정된 고정 값이거나, 비트 스트림 중 하나 또는 다수의 파라미터 세트(Parameter Set), 슬라이스 헤더(Slice Header), 인코딩 유닛(Coding Unit)을 포함하는 하나 또는 다수의 데이터 유닛을 파싱하여 획득한 사용 가능한 계수 그룹의 크기일 수 있다.
선택적으로, 암시적 유도 방법을 사용하여 계수 그룹의 크기를 확정할 수 있다. 비트 스트림을 파싱하여 획득한 상기 변환 블록이 위치한 디코딩 블록의 인코딩 모드(Coding Mode), 변환 블록의 크기, 양자화 파라미터, 변환 블록이 사용하는 변환 유형 등 하나 또는 다수의 파라미터에 따라, 상기 변환 블록의 계수 그룹의 크기를 확정할 수 있다. 이하의 예에서는 전술한 인코더 실시예에 대응되게, 4x4 및 8x8의 두 가지 계수 그룹의 크기를 사용할 수 있도록 설정한다. 상기 방법은 더 많은 계수 그룹 크기를 사용하는 경우로 확장할 수 있다. 사용 가능한 계수 그룹의 크기는 비트 스트림을 파싱하여 얻은 파라미터거나, 고정된 구성 값일 수 있다. 다음 예에서 하나의 방법을 사용하거나 여러 방법을 공동으로 사용하여 계수 그룹의 크기를 확정할 수 있다.
예를 들어, 디코딩 블록의 변환 블록의 크기가 16x16보다 큰 경우 계수 그룹의 크기를 8x8로 설정하고, 디코딩 블록의 변환 블록의 크기가 16x16보다 작거나 같은 경우 계수 그룹의 크기를 4x4로 설정하도록 구성한다. 정사각형이 아닌 직사각형 변환 블록의 경우, 변환 블록의 높이와 너비에 따라, 대응되게 사용하는 계수 그룹의 크기를 설정할 수 있고, 예를 들어 변환 블록의 높이와 너비 중 작은 값이 16보다 큰 경우, 높이와 너비 중 작은 값이 8 인 직사각형 계수 그룹을 사용하고, 그렇지 않으면 높이와 너비 중 작은 값이 4 인 직사각형 계수 그룹을 사용한다.
예를 들어, 인터 예측 모드의 디코딩 블록에서 변환 블록에 대응되게 사용하는 계수 그룹의 크기를 8x8(8x8 및 4x4의 변환 블록이 사용하는 계수 그룹의 크기를 4x4로 설정)로 설정하고, 인트라 예측 모드의 디코딩 블록에서 변환 블록이 대응되게 사용하는 계수 그룹의 크기를 8x8(16x16, 8x8, 4x4의 변환 블록이 사용하는 계수 그룹의 크기를 4x4로 설정)로 설정한다.
예를 들어, 디코딩 블록의 양자화 파라미터에 따라 이에 포함된 변환 블록이 사용하는 계수 그룹의 크기의 값을 확정한다. H.265/HEVC 표준의 양자화 파라미터 설정 방식을 예로 들면, 일 실시형태에서 양자화 파라미터의 값이 37 이상인 경우, 계수 그룹의 크기를 8x8(8x8 및 4x4의 변환 블록이 사용하는 계수 그룹의 크기를 4x4로 설정)로 설정하고; 반대로 계수 그룹의 크기를 4x4로 설정한다.
예를 들어, 이산 코사인 변환(Discrete Cosine Transform, DCT)을 기반으로 설계된 변환을 사용하는 디코딩 블록의 경우, 계수 그룹의 크기를 8x8(8x8 및 4x4의 변환 블록이 사용하는 계수 그룹의 크기를 4x4로 설정)로 설정한다. 이산 사인 변환(Discrete Sine Transform, DST)을 기반으로 설계된 변환을 사용하는 디코딩 블록의 경우, 계수 그룹의 크기를 4x4로 설정한다. 카루넨-뢰브 변환(Karhunen-Loeve Transform, KLT)을 기반으로 설계된 변환을 사용하는 디코딩 블록의 경우, 계수 그룹의 크기를 8x8(8x8 및 4x4의 변환 블록이 사용하는 계수 그룹의 크기를 4x4로 설정)로 설정한다. 두 번 이상의 변환을 사용하는 디코딩 블록의 경우, 계수 그룹의 크기를 8x8(8x8 및 4x4의 변환 블록이 사용하는 계수 그룹의 크기를 4x4로 설정)로 설정한다.
선택적으로, 상기 비트 스트림에서 하나 또는 다수의 파라미터 세트, 슬라이스 헤더, 인코딩 유닛, 변환 블록의 데이터 유닛을 포함하는 하나 또는 다수의 데이터 유닛을 파싱하여, 상기 변환 블록의 계수 그룹의 크기를 지시하는데 사용되는 식별 정보를 획득한다.
선택적으로, 변환 계수의 스캐닝 모드를 확정할 수 있다. 실시예 1에서 전술한 인코더의 처리 흐름에서, 상기 스캐닝 모드는 변환 계수의 2 차원 행렬 중 요소의 처리 순서를 지시하고, 일반적으로 상기 처리 순서는 전술한 인코더가 변환 계수를 비트 스트림에 기록하는 순서에도 대응된다. 따라서, 대응되게, 처리 흐름에서 기타 관련 파라미터(예를 들어, 0이 아닌 계수의 플래그 비트 등)와 결합하여, 비트 스트림을 파싱하여 얻은 비트 스트림 중 변환 계수의 선후 순서에 따라, 상기 스캐닝 모드는 변환 블록에서의 각 변환 계수의 위치를 지시한다. 예를 들어, 스캐닝 순서에 따라 전술한 인코더는 변환 블록의 좌표 위치가 (m, n)인 변환 계수를 k 번째 순서로 비트 스트림에 기록하고, 비트 스트림으로부터 k 번째 변환 계수를 획득한 후, 해당 변환 계수를 변환 블록에서 좌표 위치가 (m, n)인 요소로 설정한다. 일반적으로 전술한 인코더의 처리 흐름에서, 스캐닝 모드가 지시하는 순서(정순 또는 역순)에 따라 M 행 N 열의 2 차원 행렬 중의 요소를 순차적으로 판독하여, 등가로 1 행 M x N 열(또는 M x N 행 1 열)의 1 차원 행렬을 얻을 수 있다. 대응되게, 스캐닝 모드가 지시하는 순서(정순 또는 역순)에 따라, 비트 스트림을 파싱하여 얻은 상기 1 행 M x N 열(또는 M x N 행 1 열)의 1 차원 행렬을 재 배열하여 인코더의 입력 행렬과 일치한 M행 N열의 2차원 행렬로 형성할 수 있다. 전술한 인코더와 동일하게, 하나 또는 다수의 기설정된 변환 계수 행렬의 스캐닝 모드를 사용할 수 있으며, 예를 들어 "지그재그"(Zig-zag) 스캐닝 순서, 수평 스캐닝(Horizontal scan) 순서, 수직 스캐닝(Vertical scan), 대각선 스캐닝(Diagonal scan) 순서(예하면 대각선 우측 상단 스캔(Diagonal up-right scan) 순서) 등일 수 있다.
선택적으로, 암시적 유도 방법을 사용하여 상기 변환 블록의 변환 계수 행렬의 스캐닝 모드를 확정할 수 있다. 비트 스트림을 파싱하여 획득한 상기 변환 블록이 위치한 디코딩 블록의 인코딩 모드(Coding Mode), 디코딩 블록 크기, 변환 블록 크기 등 하나 또는 다수의 파라미터에 따라, 상기 변환 블록의 스캐닝 모드를 확정할 수 있다.
예를 들어, 인터 예측 모드는 대응되게 대각선 우측 상단 스캐닝 모드를 사용하도록 설정하고, 디코딩 블록의 크기가 8x8보다 클 때, 인트라 예측 모드는 대응되게 대각선 우측 상단 스캐닝 모드를 사용하도록 설정하며, 디코딩 블록의 크기가 8x8 이하일 때, 인트라 예측 모드는 대응되게 인트라 예측 방향이 지시하는 방향의 스캐닝 모드를 사용하도록 설정하고, 직류(DC) 모드 및 평면(Planar) 모드 등 방향성 예측을 사용하지 않는 모드는 대각선 우측 상단 스캐닝 모드를 사용하도록 설정한다. 선택적으로, 인트라 예측 방향을 분류할 수 있으며, 각 유형은 상이한 스캐닝 모드에 대응된다. 예를 들어, 수직 방향 및 수직방향에서 지정된 각도만큼 좌우로 오프셋되는 인트라 예측 방향은 대응되게 수직 스캐닝 모드를 사용하고, 수평 방향 및 수평방향에서 지정된 각도만큼 상하로 오프셋되는 인트라 예측 방향은 대응되게 수평 스캐닝 모드를 사용하고, 이밖에도, 45 도인 각도 및 각도 방향에서 지정된 각도만큼 상하로 오프셋되는 인트라 예측 방향은 대각선 스캐닝 모드를 사용하는 것을 더 포함할 수 있다.
선택적으로, 상기 비트 스트림에서 하나 또는 다수의 파라미터 세트, 슬라이스 헤더, 인코딩 유닛, 변환 블록의 데이터 유닛을 포함하는 하나 또는 다수의 데이터 유닛을 파싱하여, 변환 블록이 사용하는 스캐닝 모드를 지시하는 정보를 획득한다.
선택적으로, 상기 비트 스트림에서 하나 또는 다수의 파라미터 세트, 슬라이스 헤더, 인코딩 유닛, 변환 블록의 데이터 유닛을 포함하는 하나 또는 다수의 데이터 유닛을 파싱하여, 스캐닝 모드의 정보를 획득한다. 상기 스캐닝 모드의 정보에 따라, 상기 변환 블록의 스캐닝 모드를 확정한다. 상기 스캐닝 모드의 정보를 표시하는 하나의 방법은 변환 블록에서 변환 계수의 위치와 스캔 후의 위치 사이의 대응관계 테이블이고, 설명해야 할 것은, 전술한 인코더에서 해당 대응관계 테이블은 변환 블록에서 좌표 위치가 (m, n)인 변환 계수(또는 인덱스 번호가 m Х nTbS + n과 같고, 여기서 nTbS는 변환 블록의 너비임)에 대응되는 스캐닝 후의 번호 위치는 k와 같음을 지시한다. 상응하게, 본 실시예에서, 해당 대응관계 테이블에 의해 지시되는 등가 정보는 비트 스트림을 파싱하여 획득한 위치 번호가 k인 변환 계수는 변환 블록에서의 위치 좌표가 (m, n)(또는 인덱스 번호가 m Х nTbS + n과 같고, 여기서 nTbS는 변환 블록의 너비임)인 것이다. 특히, 상기 방법과 비교되도록, 전술한 방법에서 확정된 다양한 스캐닝 모드는 모두 고정된 순서로 변환 블록의 계수 그룹과 계수 그룹 중 변환 계수를 처리하고, 상이한 스캐닝 모드에 대해 상이한 스캔 순서를 정의한다.
선택적으로, 변환 블록에서 변환 계수를 파싱한다. 변환 블록의 크기와 계수 그룹의 크기에 따라, 변환 블록에 포함된 각 계수 그룹의 위치를 확정한다. 상기 계수 그룹의 위치는 계수 그룹에서 좌측 상단 계수가 변환 블록(또는 디코딩 이미지)에서의 위치 좌표로 나타낼 수 있다. 상기 스캐닝 모드가 지시하는 순서에 따라, 계수 그룹을 순차적으로 처리한다. 하나의 계수 그룹의 경우, 상기 스캐닝 모드가 지시하는 순서에 따라, 계수 그룹 중 대응되는 요소의 값을, 비트 스트림을 파싱하여 획득한 변환 계수의 값으로 설정한다. 특히 비트 스트림을 파싱하여 하나의 계수 그룹에 포함된 변환 계수가 모두 0(또는 계수 그룹에 0이 아닌 변환 계수를 포함하지 않는 것과 같음)임을 지시하는 것을 획득하는 경우, 파싱 유닛은 해당 계수 그룹에 포함된 전부의 계수를 0으로 설정한다. 여기서, 변환 블록의 계수 그룹의 처리 순서와 계수 그룹 중 변환 계수의 처리 순서는 동일하거나 상이할 수 있다.
선택적으로, 또한 디코딩 블록의 예측값을 구성하는데 사용되는 파라미터에 따라 상기 디코딩 블록의 예측값을 구성하는데 사용된다. 현재 디코딩 이미지 중 부분적으로 복원된 일부 디코딩 이미지 버퍼 영역에 저장된 디코딩된 이미지에 따라 상기 디코딩 블록의 예측값을 구성한다.
상기 파라미터가 상기 디코딩 블록이 인터 예측을 사용하도록 지시하는 경우, 하나 또는 다수의 참조 이미지 리스트를 구성하고, 각 참조 이미지 리스트는 하나 또는 다수의 참조 이미지를 포함하며, 참조 이미지에는 참조 이미지 리스트 지시, 참조 이미지 인덱스, 모션 벡터를 포함하고, 참조 이미지에서 상기 디코딩 블록의 하나 또는 다수의 매칭 블록을 확정하고 출력된 인터 예측값을 상기 디코딩 블록의 예측값으로 사용한다.
선택적으로, 디코딩 블록이 위치한 현재 디코딩 이미지를 참조 이미지로 사용하여 상기 디코딩 블록의 인트라 예측값을 획득한다. 여기서 인트라 예측은 디코딩 블록이 위치한 이미지의 데이터만을 참조로 얻은 예측값을 의미한다. 이 경우 현재 디코딩 이미지 중 부분적으로 복원된 부분을 사용한다.
선택적으로, 상기 파라미터가 상기 디코딩 블록이 인트라 예측을 사용하도록 지시하는 경우, 실시예 1과 유사한 방법으로 상기 디코딩 블록의 인접한 복원된 화소점을 확정하여, 인트라 예측을 위한 참조 화소점으로 사용한다. 상기 디코딩 블록의 예측값을 구성하는데 사용되는 파라미터에 따라, 인트라 예측 모드를 확정하고, 실시예 1과 동일한 방법을 사용하여 상기 디코딩 블록의 인트라 예측값을 계산한다. 특히, 상기 디코딩 블록의 예측값을 구성하는데 사용되는 파라미터가 현재 부분적으로 디코딩된 이미지에서 상기 디코딩 블록의 매칭 블록의 위치를 지시하는 경우, 매칭 블록을 상기 디코딩 블록의 인트라 예측값으로 사용한다. 확정된 인트라 예측값을 상기 디코딩 블록의 예측값으로 사용한다.
선택적으로, 상기 디코딩 블록의 예측 차이 복원 값을 구성하는데 사용되는 파라미터 중 QP 및 계수의 양자화 값(즉, "Level" 값)을 스케일링 작업(Scaling)의 입력으로 한다. 양자화 파라미터 QP를 사용하여 상기 계수의 양자화 값에 대해 스케일링 작업을 수행하여 변환 계수의 복원 값을 얻는다. 따라서 역 양자화 유닛은 스케일링 유닛이라고도 할 수 있다.
선택적으로, 획득한 상기 변환 계수의 복원 값, 디코딩 블록의 예측 차이 복원 값을 구성하기 위한 파라미터 중의 변환 파라미터를 사용한다. 설명해야 할 것은, 디코딩 블록의 예측 차이의 복원 값을 구성하기 위한 출력된 파라미터에 따라, 현재 디코딩 블록에 대해 스케일링 작업을 사용하지 않는 것으로 판단되는 경우, 상기 출력된 변환 계수를 역 변환에 사용한다는 것이다.
실시예 1과 유사한 방법에 기초하여, 상기 디코딩 블록의 예측 차이의 복원 값을 획득한다. 설명해야 할 것은, 여기에 언급된 "역 변환"은 인코더의 "변환"에 상대적이라는 것이다. 비디오 인코딩 표준에서는 변환 방법을 지정하며, 즉 변환 계수의 복원 값을 예측 차이의 복원 값으로 전환하기 위해 사용하는 변환 방법이 지정된다.
선택적으로, 상기 디코딩 블록의 복원 값을 계산하고, 상기 디코딩 블록의 복원 값을 이미지 버퍼 영역에 저장한다. 상기 이미지 버퍼 영역은 이미지 디코딩 과정에서 별도로 할당되는 저장 공간의 일부일 수 있다.
필터 파라미터를 획득한다. 상기 필터 파라미터에는 사용되는 필터의 지시 정보, 필터 계수 및 필터의 제어 파라미터가 포함된다. 필터와 상기 필터 파라미터의 결합을 사용하여 상기 이미지 버퍼 영역의 데이터를 필터링 처리하여, 상기 이미지의 디코딩 이미지를 획득한다. 설명해야 할 것은, 본 실시예의 필터는 하나 또는 다수의 필터로 구성된 캐스케이드 구조일 수 있다는 것이다. 예를 들어 H.265/HEVC 표준에서 2개의 필터, 즉 디블로킹(Deblocking) 필터 및 적응적 샘플 오프셋(Sample Adaptive Offset, SAO) 필터로 구성된 캐스케이드 구조일 수 있다. 상기 필터에는 신경망 필터를 포함될 수도 있다. 선택적으로, 상기 이미지 버퍼 영역의 데이터에 대한 필터링 작업은 이미지 레이어에서 수행될 수 있고, 즉 상기 이미지 중의 전부의 디코딩 블록의 복원 값이 모두 이미지 버퍼 영역에 기록된 후 이미지 버퍼 영역의 데이터에 대해 필터링 처리를 수행한다. 선택적으로, 상기 이미지 버퍼 영역의 데이터를 필터링하는 작업은 블록 레이어에서 수행될 수 있고, 즉 어느 디코딩 블록의 복원 데이터가 더 이상 후속 디코딩 블록에 대한 참조 데이터로 사용되지 않는 경우, 해당 디코딩 블록의 복원 데이터에 대해 필터링 처리를 수행한다.
도 6은 본 발명의 실시예에 따른 계수 그룹의 크기를 파싱하는 데이터 처리 흐름도이다. 도 6에 도시된 바와 같이,
단계(S601)에서, 파라미터 세트 데이터 유닛 중의 계수 그룹의 크기를 파싱한다. 데이터 스트림에서 파라미터 세트 데이터 유닛에 대응되는 비트 스트림을 파싱하여 디코딩 과정에서 사용 가능한 계수 그룹의 크기를 획득한다.
선택적으로, 상기 파라미터 세트 데이터 유닛은 H.265/HEVC 표준에서의 비디오 파라미터 세트(Video Parameter Set, VPS) 및 시퀀스 파라미터 세트(Sequence Parameter Set, SPS)와 같이, 전체 시퀀스에 적용되는 파라미터 데이터를 전달하는데 사용되는 파라미터 세트 데이터 유닛을 나타낸다. 상기 파라미터 세트 데이터 유닛은 적응 파라미터 세트(Adaptive Parameter Set, APS), H.265/HEVC 표준에서의 이미지 파라미터 세트(Picture Parameter Set, PPS)와 같이, 이미지에 적용되는 파라미터 데이터를 전달하는데 사용되는 파라미터 세트 데이터 유닛을 더 포함할 수 있다. 특히 APS 또는 PPS의 파라미터가 전체 시퀀스의 각 이미지에 대해 변하지 않도록 유지되는 경우, 즉 APS 또는 PPS의 파라미터가 전체 시퀀스의 각 이미지에 적용되는 경우, 이 경우에서의 APS 또는 PPS는 전체 시퀀스에 적용되는 파라미터 데이터를 전달하는 파라미터 세트 데이터 유닛에 해당된다. 선택적으로, 데이터 스트림에서 비트 스트림을 파싱하여 지시 정보를 획득하거나, 디폴트 설정의 방법으로, 이미지에 적용되는 파라미터 세트 데이터 유닛의 데이터를 사용하여 시퀀스에 적용되는 파라미터 세트 데이터 유닛 중의 대으되는 데이터를 오버라이트할 수 있다.
선택적으로, 데이터 스트림의 파라미터 세트 데이터 유닛의 비트 스트림을 파싱하고, 파라미터 세트 데이터 유닛에 여러 계수 그룹의 크기의 사용이 허용되는지 여부를 지시하는 플래그 비트를 획득한다. 상기 플래그 비트가 "사용이 허용됨"을 지시하는 경우, 디코딩 블록을 디코딩하는 과정에서 둘 이상의 후보 계수 그룹의 크기로부터 상기 디코딩 블록의 변환 계수 디코딩하는데 사용되는 계수 그룹의 크기를 확정할 수 있다. 상기 플래그 비트가 "사용이 허용되지 않음"을 지시하는 경우, 디폴트로 설정된 계수 그룹의 크기만 사용하여 변환 계수를 디코딩한다.
선택적으로, 데이터 스트림에서 파라미터 세트 데이터 유닛의 비트 스트림을 파싱하고, 파라미터 세트 데이터 유닛에서 계수 그룹의 크기의 디폴트 값을 획득할 수 있다. 계수 그룹 크기의 디폴트 값을 지시하는데 사용되는 파라미터를 획득하고, 상기 파라미터는 계수 그룹의 크기를 직접 지시하는 파라미터거나, 대응되는 계수 그룹의 크기가 계수 그룹의 크기의 디폴트 값인지 여부를 지시하는데 사용되는 플래그 비트일 수 있다. 선택적으로, 획득한 플래그 비트가 "여러 계수 그룹의 크기의 사용이 허용되지 않음"을 지시하는 경우, 상기 플래그 비트 이후의 필드를 계속하여 파싱하여 계수 그룹 크기의 디폴트 값을 획득한다.
선택적으로, 전술한 플래그 비트가 "여러 계수 그룹의 크기의 사용이 허용됨"을 지시하는 경우, 사용이 허용되는 계수 그룹의 크기를 파싱한다.
선택적으로, 하나의 파싱 방법은 파라미터 세트 데이터 유닛을 파싱하여 사용이 허용되는 계수 그룹의 최대 및 최소 크기를 획득하는 것이며, 사용이 허용되는 계수 그룹의 기타 크기에 대해, 최대에서 최소로의 설정된 유도 방식(예를 들어 쿼드 트리 방식에 따름)에 따라 암시적 유도를 수행할 수 있으며, 예를 들어, 파싱하여 얻은 사용이 허용되는 계수 그룹의 최대 및 최소 크기가 각각 32x32 및 4x4인 경우, 상기 쿼드 트리 방식에 따라 파라미터 세트 데이터 유닛의 필드에 의해 지시되는 사용이 허용되는 계수 그룹의 크기는 32x32, 16x16, 8x8 및 4x4를 포함한다. 두 번째 파싱 방법은 파라미터 세트 데이터 유닛을 파싱하여 사용이 허용되는 계수 그룹의 최대 크기 및 분할 모드(예를 들어 쿼드 트리 방식)에 따른 최대 분할 계층을 획득하는 것이고, 예를 들어, 파싱하여 얻은 사용이 허용되는 계수 그룹의 최대 크기는 32x32이고, 파싱하여 얻은 허용되는 최대 분할 계층은 3 층인 경우, 파라미터 세트 데이터 유닛의 필드에 의해 지시되는 사용이 허용되는 계수 그룹의 크기는 32x32, 16x16, 8x8 및 4x4를 포함하고, 대체 가능하게, 사용이 허용되는 계수 그룹의 최대 및 최소 크기 사이의 차이값도 최대 분할 계층으로 비트 스트림에 나타낼 수 있고, 상기 예에서, 파싱하여 얻은 상기 최대 허용값 및 최소 허용값 사이의 차이값이 3인 경우, 사용이 허용되는 계수 그룹의 최소 크기를 4x4(즉, 2(log232 - 3) = 4)로 설정한다. 세 번째 파싱 방법은 파라미터 세트 데이터 유닛을 파싱하여 사용이 허용되는 계수 그룹의 최소 크기 및 분할 모드(예를 들어 쿼드 트리 방식)에 따른 최대 상향 계층을 획득하는 것이고, 예를 들어, 파싱하여 얻은 사용이 허용되는 계수 그룹의 최소 크기가 4x4이고, 파싱하여 얻은 최대 상향 계층이 3층인 경우, 파라미터 세트 데이터 유닛의 필드에 의해 지시되는 사용이 허용되는 계수 그룹의 크기는 32x32, 16x16, 8x8 및 4x4를 포함하고, 대체 가능하게, 파싱하여 얻은 사용이 허용되는 계수 그룹의 최대 및 최소 크기 사이의 차이값이 3인 경우, 사용이 허용되는 계수 그룹의 최대 크기를 32x32(즉, 2(log24 + 3) = 32)로 설정한다.
선택적으로, 하나의 파싱 방법은 파라미터 세트 데이터 유닛을 파싱하여 사용이 허용되는 계수 그룹의 최대 및 최소 변의 길이를 획득하는 것이며, 사용이 허용되는 계수 그룹의 기타 크기에 대해, 설정된 변의 길이의 최대에서 최대로의 유도 방식(예를 들어 이진 방식에 따름)에 따라, 암시적 유도를 수행할 수 있으며, 예를 들어, 파싱하여 얻은 최대 및 최소 변의 길이가 각각 16 및 4인 경우, 파라미터 세트 데이터 유닛의 필드에 의해 지시되는 사용이 허용되는 계수 그룹의 사용 가능한 변의 길이는16, 8 및 4를 포함하고, 대응되게 지시하는 계수 그룹의 크기("너비 x 높이"의 방식으로 표시)는 16x16, 16x8, 16x4, 8x16, 8x8, 8x4, 4x16, 4x8 및 4x4를 포함한다. 두 번째 파싱 방법은 파라미터 세트 데이터 유닛을 파싱하여 사용이 허용되는 계수 그룹의 최대 변의 길이와 분할 모드(예를 들어 이진 방식)에 따른 최대 분할 계층을 획득하는 것이고, 예를 들어 파싱하여 얻은 사용이 허용되는 계수 그룹의 최대 변의 길이는 16이고, 최대 분할 계층은 2인 경우, 파라미터 세트 데이터 유닛의 필드에 의해 지시되는 사용이 허용되는 계수 그룹의 사용 가능한 변의 길이는16, 8 및 4를 포함하고, 대응되게 지시하는 계수 그룹의 크기는 16x16, 16x8, 16x4, 8x16, 8x8, 8x4, 4x16, 4x8 및 4x4를 포함하고, 대체 가능하게, 사용이 허용되는 계수 그룹의 최대 및 최소 변의 길이 사이의 차이값도 최대 분할 계층으로 비트 스트림에 나타낼 수 있고, 상기 예에서 파싱하여 얻은 상기 최대 허용값 및 최소 허용값 사이의 차이값이 2 인 경우, 사용이 허용되는 계수 그룹의 최소 크기는 4x4(즉, 2(log216 - 2) = 4)로 설정한다. 세 번째 파싱 방법은 파라미터 세트 데이터 유닛을 파싱하여 사용이 허용되는 계수 그룹의 최소 변의 길이와 분할 모드(예를 들어 이진 방식)에 따른 최대 상향 계층을 획득하는 것이고, 예를 들어 파싱하여 얻은 사용이 허용되는 계수 그룹의 최소 변의 길이는 4이고, 최대 상향 계층은 2인 경우, 파라미터 세트 데이터 유닛의 필드에 의해 지시되는 사용이 허용되는 계수 그룹의 사용 가능한 변의 길이는16, 8 및 4를 포함하고, 대응되게 지시하는 계수 그룹의 크기는 16x16, 16x8, 16x4, 8x16, 8x8, 8x4, 4x16, 4x8 및 4x4를 포함하고, 대체 가능하게, 사용이 허용되는 계수 그룹의 최대 및 최소 변의 길이 사이의 차이값도 최대 상향 계층으로 비트 스트림에 나타낼 수 있고, 상기 예에서 파싱하여 얻은 상기 최대 허용값 및 최소 허용값 사이의 차이값이 2인 경우, 사용이 허용되는 계수 그룹의 최대 크기는 16x16(즉, 2(log24 + 2) = 16)으로 설정한다. 네 번째 파싱 방법은 파라미터 세트 데이터 유닛을 파싱하여 사용 가능한 변의 길이에 대응되는 플래그 비트를 획득하는 것이고, 상기 플래그 비트는 대응되는 변의 길이의 사용이 허용되는지 여부를 지시하는데 사용되고, 예를 들어, 사용 가능한 변의 길이가 32, 16, 8 및 4를 포함할 때, 파라미터 세트 데이터 유닛을 파싱하여 얻은 "변의 길이가 32임"에 대응되는 플래그 비트는 "사용이 허용되지 않음"을 지시하고, "변의 길이가 16, 8 및 4임"에 대응되는 3개의 플래그 비트는 "사용이 허용됨"을 지시하는 경우, 파라미터 세트 데이터 유닛의 필드에 의해 지시되는 사용이 허용되는 계수 그룹의 사용 가능한 변의 길이는 16, 8, 4를 포함하고, 대응되게 지시하는 계수 그룹의 크기는 16x16, 16x8, 16x4, 8x16, 8x8, 8x4, 4x16, 4x8 및 4x4를 포함한다.
선택적으로 하나의 파싱 방법은 파라미터 세트 데이터 유닛을 파싱하여 계수 그룹의 너비 및 높이의 사용이 허용되는 최대값 및 최소값을 획득하는 것이고, 사용이 허용되는 계수 그룹의 기타 크기에 대해, 설정된 너비와 높이의 최대에서 최소로의 유도 방식(예를 들어, 이진 방식에 따라)에 따라 암시적 유도를 수행할 수 있고, 예를 들어, 파싱하여 얻은 계수 그룹의 너비의 사용이 허용되는 최대값 및 최소값이 각각 16 및 4고, 파싱하여 얻은 계수 그룹의 높이의 사용이 허용되는 최대값 및 최소값이 각각 8 및 4인 경우, 파라미터 세트 데이터 유닛의 필드에 의해 지시되는 사용이 허용되는 계수 그룹의 너비는 16, 8 및 4를 포함하고, 지시되는 사용이 허용되는 계수 그룹의 높이는 8 및 4를 포함하며, 대응되는 지시하는 계수 그룹의 크기("너비 x 높이"의 방식으로 표시)는 16x8, 16x4, 8x8, 8x4, 4x8 및 4x4를 포함한다. 두 번째 파싱 방법은 파라미터 세트 데이터 유닛을 파싱하여 사용이 허용되는 계수 그룹의 최대 너비 및 분할 모드(예를 들어 이진 방식)에 따른 최대 분할 계층을 획득하고, 사용이 허용되는 계수 그룹의 최대 높이 및 분할 모드(예를 들어 이진 방식)에 따른 최대 분할 계층을 획득하는 것이고, 예를 들어, 파싱하여 얻은 사용이 허용되는 계수 그룹의 최대 너비가 16이고, 최대 분할 계층이 2이며, 파싱하여 얻은 사용이 허용되는 계수 그룹의 최대 높이가 8이며, 최대 분할 계층이 1인 경우, 파라미터 세트 데이터 유닛의 필드에 의해 지시되는 사용이 허용되는 계수 그룹의 너비는 16, 8 및 4를 포함하고, 지시하는 사용이 허용되는는 계수 그룹의 높이는 8 및 4를 포함하고, 대응되게 지시하는 계수 그룹의 크기("너비 x 높이"의 방식으로 표시)는 16x8, 16x4, 8x8, 8x4, 4x8 및 4x4를 포함하고, 대체 가능하게 사용이 허용되는 계수 그룹의 최대 및 최소 너비 사이의 차이값도 최대 분할 계층으로 비트 스트림에 나타낼 수 있으며, 상기 예에서 파라미터 세트 데이터 유닛을 파싱하여 획득한 상기 최대 허용 너비값 및 최소 허용 너비값 사이의 차이값이 2인 경우, 사용이 허용되는 계수 그룹의 최소 너비를 4(즉, 2(log216 - 2) = 4)로 설정하고, 대체 가능하게, 사용이 허용되는 계수 그룹의 최대 및 최소 높이 사이의 차이값도 최대 분할 계층으로 비트 스트림에 나타낼 수 있으며, 상기 예에서 파라미터 세트 데이터 유닛을 파싱하여 획득한 상기 최대 허용 높이값 및 최소 허용 높이값 사이의 차이값이 1인 경우, 사용이 허용되는 계수 그룹의 최소 너비를 4(즉, 2(log28 - 1) = 4)로 설정한다. 세 번째 파싱 방법은 파라미터 세트 데이터 유닛을 파싱하여 사용이 허용되는 계수 그룹의 최소 너비 및 분할 모드(예를 들어 이진 방식)에 따른 최대 상향 계층을 획득하고, 사용이 허용되는 계수 그룹의 최소 높이 및 분할 모드(예를 들어 이진 방식)에 따른 최대 상향 계층을 획득하는 것이고, 예를 들어, 파싱하여 얻은 사용이 허용되는 계수 그룹의 최소 너비는 4이고, 최대 상향 계층은 2이며, 파싱하여 얻은 사용이 허용되는 계수 그룹의 최소 높이가 4이고, 최대 상향 계층이 1인 경우, 파라미터 세트 데이터 유닛의 필드에 의해 지시되는 사용이 허용되는 계수 그룹의 너비는 16, 8 및 4를 포함하고, 지시하는 사용이 허용되는 계수 그룹의 높이는 8 및 4를 포함하며, 대응되게 지시하는 계수 그룹의 크기("너비 x 높이"의 방식으로 표시)는 16x8, 16x4, 8x8, 8x4, 4x8 및 4x4를 포함하고, 대체 가능하게 사용이 허용되는 계수 그룹의 최대 및 최소 너비 사이의 차이값도 최대 상향 계층으로 비트 스트림에 나타낼 수 있으며, 상기 예에서 파라미터 세트 데이터 유닛을 파싱하여 획득한 상기 최소 허용 너비값 및 최소 허용 너비값 사이의 차이값이 2 인 경우, 사용이 허용되는 계수 그룹의 최대 너비를 16(즉, 2(log24 + 2) = 16)으로 설정하고, 대체 가능하게, 사용이 허용되는 계수 그룹의 최대 및 최소 높이 사이의 차이값도 최대 상향 계층으로 비트 스트림에 나타낼 수 있으며, 상기 예에서 파라미터 세트 데이터 유닛을 파싱하여 획득한 상기 최대 허용 높이값 및 최소 허용 높이값 사이의 차이값이 1인 경우, 허용되는 계수 그룹의 최대 높이를 8(즉, 2(log24 + 1) = 8)로 설정한다. 네 번째 파싱 방법은 파라미터 세트 데이터 유닛을 파싱하여 사용 가능한 너비와 높이에 각각 대응되는 플래그 비트를 획득하는 것이며, 상기 플래그 비트는 디코딩 과정에서 대응되는 너비와 높이의 사용이 허용되는지 여부를 지시하는데 사용되고, 예하면 사용 가능한 너비와 높이가 모두 32, 16, 8, 4를 포함하는 경우, 파라미터 세트 데이터 유닛을 파싱하여 획득한 "너비가 32임"에 대응되는 플래그 비트가 "사용이 허용되지 않음"을 지시하고, "너비가 16, 8 및 4임"에 대응되는 3개의 플래그 비트가 "사용이 허용됨"을 지시하고, "높이가 32 및 16임"에 대응되는 2개의 플래그 비트가 모두 "사용이 허용되지 않음"을 지시하며, "높이가 8 및 4임"에 대응되는 2개의 플래그 비트가 "사용이 허용됨"을 지시하는 경우, 파라미터 세트 데이터 유닛의 필드에 의해 지시되는 사용이 허용되는 계수 그룹의 너비는 16, 8, 4를 포함하고, 지시하는 사용이 허용되는 계수 그룹의 높이는 8 및 4를 포함하며, 대응되게 지시하는 계수 그룹의 크기("너비 x 높이"의 방식으로 표시)는 16x8, 16x4, 8x8, 8x4, 4x8 및 4x4를 포함한다.
선택적으로, 파싱 방법은 파라미터 세트 데이터 유닛을 파싱하여 사용 가능한 계수 그룹의 크기에 대응되는 플래그 비트를 획득하는 것이며, 상기 플래그 비트는 대응되는 파라미터 그룹의 크기의 사용이 혀용되는지 여부를 지시하는데 사용된다. 예를 들어 이에 설정된 사용 가능한 계수 그룹 크기가 16x16, 16x8, 16x4, 8x16, 8x8, 8x4, 4x16, 4x8 및 4x4 를 포함하는 경우, 파라미터 세트 데이터 유닛을 파싱하여 얻은 9개의 플래그 비트는 각각 "16x16의 사용이 허용되지 않음, 16x8의 사용이 허용됨, 16x4의 사용이 허용됨, 8x16의 사용이 허용되지 않음, 8x8의 사용이 허용됨, 8x4의 사용이 허용됨, 4x16의 사용이 허용되지 않음, 4x8의 사용이 허용됨, 4x4의 사용이 허용됨"을 지시하는 경우, 16x8, 16x4, 8x8, 8x4, 4x8 및 4x4 를 디코딩 과정에서 사용이 허용되는 계수 그룹의 크기로 사용한다.
선택적으로, 파라미터 세트 데이터 유닛을 파싱하여, 전술한 방법을 사용하여 상이한 인코딩 모드(Coding mode)를 사용하는 디코딩 블록의 사용이 허용되는 계수 그룹의 크기를 획득할 수 있다. 예를 들어, 파라미터 세트 데이터 유닛을 파싱하여, 인트라 예측 모드의 디코딩 블록 중의 변환 블록에 대해 허용되는 계수 그룹의 크기가 8x8 및 4x4임을 지시하는 정보를 획득하고, 인터 예측 모드의 디코딩 블록 중의 변환 블록에 대해 허용되는 계수 그룹의 크기가 16x16, 8x8 및 4x4임을 지시하는 정보를 획득한다.
선택적으로, 파라미터 세트 데이터 유닛을 파싱하여, 전술한 방법을 사용하여 상이한 변환 횟수를 사용하는 변환 블록의 허용 가능한 계수 그룹의 크기를 획득할 수 있다. 예를 들어, 파라미터 세트 데이터 유닛을 파싱하여,한 번의 변환을 사용하는 변환 블록에 대해 허용되는 계수 그룹의 크기가 8x8 및 4x4이고, 다수 번의 변환을 사용하는 변환 블록에 대해 허용되는 계수 그룹의 크기가 16x16, 8x8 및 4x4임을 지시하는 것을 획득한다.
선택적으로, 파라미터 세트 데이터 유닛을 파싱하여, 전술한 방법을 사용하여 상이한 변환 모드를 사용하는 변환 블록의 사용이 허용되는 계수 그룹의 크기를 획득할 수 있다. 예를 들어, 파라미터 세트 데이터 유닛을 파싱하여, DCT를 기반으로 설계된 변환을 사용하는 변환 블록에 대해 허용되는 계수 그룹의 크기가 8x8 및 4x4이고, DST 를 기반으로 설계된 변환을 사용하는 변환 블록에 대해 허용되는 계수 그룹의 크기가 16x16, 8x8 및 4x4이며 KLT 를 기반으로 설계된 변환을 사용하는 변환 블록에 대해 허용되는 계수 그룹의 크기가 32x32, 16x16, 8x8 및 4x4임을 지시하는 것을 획득한다.
선택적으로, 파라미터 세트 데이터 유닛을 파싱하여 사용이 허용되는 계수 그룹의 크기를 전환하기 위한 제어 파라미터를 획득한다. 예를 들어, 양자화 파라미터를 사용이 허용되는 계수 그룹의 크기를 전환하기 위한 제어 파라미터로 사용하는 경우, 전술한 방법을 사용하여 파라미터 세트 데이터 유닛을 파싱하여 양자화 파라미터의 분할 간격과 각 간격에서 사용이 허용되는 계수 그룹의 크기를 획득하며, 획득한 전환 모드의 일 예로서, 예하면 H.265/HEVC 표준의 양자화 파라미터 정의과 같이, 양자화 파라미터가 37 이상인 경우 사용이 허용되는 계수 그룹의 크기는 16x16, 8x8 및 4x4이고; 양자화 파라미터 값이 37보다 작지만 27보다 크거나 같은 경우 사용이 허용되는 계수 그룹의 크기는 8x8이고; 양자화 파라미터 값이 27보다 작은 경우 사용이 허용되는 계수 그룹의 크기는 4x4이다.
선택적으로, 사용 가능한 계수 그룹의 크기를 프로파일/티어/레벨(Profile/Tier/Level)에 기설정하고, 상이한 Profile/Tier/Level에 대해, 하나 또는 다수의 값을 가지는 사용 가능한 계수 그룹의 크기를 설정한다. 예를 들어, 비교적 낮은 Level(예하면 해상도가 640x480 이하인 비디오 스트림 디코딩에 해당됨)의 경우, 사용하는 디폴트 값은 4x4의 계수 그룹의 크기와 동일하고; 비교적 높은 Level(예하면 720p, 1080p, 2K 등 해상도가 비교적 큰 비디오 스트림 디코딩에 해당됨)의 경우, 8x8 및 4x4의 두 가지 계수 그룹의 크기를 사용할 수 있고; 가장 높은 Level(예하면 4K, 8K 등초고해상도 비디오 스트림 디코딩에 해당됨)의 경우, 16x16, 8x8, 4x4의 세 가지 계수 그룹의 크기를 사용할 수 있다. 파라미터 세트 데이터 유닛을 파싱하여 Profile/Tier/Level의 지시 정보를 획득하고, 사용 가능한 계수 그룹의 크기를 확정한다.
선택 가능한 예로 비트 스트림 구성 방법은 다음과 같으며(해당 비트 스트림 구성 방법은 표 1에 표시된 방법과 같음), 상기 비트 스트림 구성 방법의 필드는 하나 또는 다수의 파라미터 세트 데이터 유닛에 위치한다. 상기 방법을 사용하여 표 3의 비트 스트림 필드를 파싱하여 디코딩 과정에서 사용이 허용되는 계수 그룹의 크기를 획득한다.
파라미터 세트 데이터 유닛에서의 비트 스트림 구성
...... Descriptor
log2_min_cg_side_length ue(v)
log2_diff_max_cg_side_length ue(v)
......
}
표 3의 각 구문 요소(Syntax element)의 의미(semantics)는 다음과 같다: log2_min_cg_side_length는 계수 그룹의 최소 변의 길이를 나타낸다. 계수 그룹의 최소 변의 길이는 (1 << log2_min_cg_side_length)와 같다. 여기서 "<<"는 산술 오른쪽 시프트 연산자이다. 비트 스트림의 파싱 과정에서 log2_min_cg_side_length에 대해 ue(v) 방법을 사용하여 엔트로피 디코딩을 수행한다.
log2_diff_max_cg_side_length는 계수 그룹의 최대 변의 길이와 최소 변의 길이 사이의 차이값을 나타낸다. 계수 그룹의 최대 변의 길이는 (1 << (log2_min_cg_side_length + log2_diff_max_cg_side_length))와 같다. 비트 스트림의 파싱 과정에서, log2_diff_max_cg_side_length에 대해 ue(v) 방법을 사용하여 엔트로피 디코딩을 수행한다.
비트 스트림에서 표 3의 구문 요소에 대응되는 필드를 파싱하여 계수 그룹의 크기를 확정하는 예는 다음과 같다. 예를 들어 ue(v) 방법을 사용하여 log2_min_cg_side_length를 파싱하여 획득한 값은 2이고, ue(v) 방법을 사용하여 log2_diff_max_cg_side_length를 파싱하여 획득한 값은 0이며, 디코딩 과정에서 디폴트 크기가 4x4인 계수 그룹만 사용하는 것을 확정한다.
예를 들어, ue(v) 방법을 사용하여 log2_min_cg_side_length를 파싱하여 획득한 값이 2이고, ue(v) 방법을 사용하여 log2_diff_max_cg_side_length를 파싱하여 획득한 값이 2이며, 디코딩 과정에서 사용이 허용되는 계수 그룹의 사용 가능한 변의 길이는 16, 8 및 4를 포함하고, 대응되게 지시하는 사용 가능한 계수 그룹의 크기는 16x16, 16x8, 16x4, 8x16, 8x8, 8x4, 4x16, 4x8 및 4x4를 포함하는 것을 확정한다.
선택 가능한 예로 비트 스트림 구성 방법은 다음과 같으며(해당 비트 스트림 구성 방법은 표 2에 표시된 방법과 같음), 상기 비트 스트림 구성 방법의 필드는 하나 또는 다수의 파라미터 세트 데이터 유닛에 위치한다. 상기 방법을 사용하여 표 4의 비트 스트림 필드를 파싱하여 디코딩 과정에서 사용이 허용되는 계수 그룹의 크기를 획득한다. 표 4의 비트 스트림 필드는 인터 모드 및 인트라 모드를 사용하는 디코딩 블록 중의 변환 블록의 사용이 허용되는 상이한 계수 그룹의 크기를 지시할 수 있다.
파라미터 세트 데이터 유닛에서의 비트 스트림 구성
...... Descriptor
log2_min_cg_side_length ue(v)
log2_diff_max_inter_cg_side_length ue(v)
log2_diff_max_intra_cg_side_length ue(v)
......
}
표 4의 각 구문 요소(Syntax element)의 의미(semantics)는 다음과 같다: log2_min_cg_side_length는 계수 그룹의 최소 변의 길이를 나타낸다. 계수 그룹의 최소 변의 길이는 (1 << log2_min_cg_side_length)와 같다. 여기서 "<<"는 산술 오른쪽 시프트 연산자이다. 비트 스트림의 파싱 과정에서 log2_min_cg_side_length에 대해 ue(v) 방법을 사용하여 엔트로피 디코딩을 수행한다.
log2_diff_max_inter_cg_side_length는 인터 예측 모드를 사용하여 디코딩 블록에서 변환 블록의 계수 그룹의 최대 변의 길이와 최소 변의 길이 사이의 차이값을 나타낸다. 계수 그룹의 최대 변의 길이는(1 <<(log2_min_cg_side_length + log2_diff_max_cg_side_length))와 같다. 비트 스트림 파싱 과정에서 log2_diff_max_cg_side_length에 대해 ue(v) 방법을 사용하여 엔트로피 디코딩을 수행한다.
log2_diff_max_intra_cg_side_length는 인트라 예측 모드를 사용하여 디코딩 블록에서 변환 블록의 계수 그룹의 최대 변의 길이와 최소 변의 길이 사이의 차이값을 나타낸다. 계수 그룹의 최대 변의 길이는 (1 << (log2_min_cg_side_length + log2_diff_max_cg_side_length))와 같다. 비트 스트림 파싱 과정에서 log2_diff_max_cg_side_length에 대해 ue(v) 방법을 사용하여 엔트로피 디코딩을 수행한다.
비트 스트림에서 표 4의 구문 요소에 대응되는 필드를 파싱하여, 계수 그룹의 크기를 확정하는 예는 다음과 같다. 예를 들어 ue(v) 방법을 사용하여 log2_min_cg_side_length를 파싱하여 획득한 값은 2이고, ue(v) 방법을 사용하여 log2_diff_max_inter_cg_side_length 및 log2_diff_max_intra_cg_side_length를 각각 파싱하여 획득한 값을 모두 0으로 설정하고, 디코딩 과정에서 인터 예측 모드의 디코딩 블록과 인트라 예측 모드의 디코딩 블록이 모두 디폴트 크기가 4x4인 계수 그룹만 사용하는 것을 확정한다.
예를 들어, ue(v) 방법을 사용하여 log2_min_cg_side_length를 파싱하여 획득한 값이 2이고, ue(v) 방법을 사용하여 log2_diff_max_inter_cg_side_length 및 log2_diff_max_intra_cg_side_length를 각각 파싱하여 획득한 값이 모두 2이다. 상기 실시 방법에 따르면, 디코딩 과정에서 사용이 허용되는 계수 그룹의 사용 가능한 변의 길이는 16, 8, 4를 포함하고, 대응되게 지시하는 계수 그룹의 크기는 16x16, 16x8, 16x4, 8x16, 8x8, 8x4, 4x16, 4x8 및 4x4를 포함하는 것을 확정한다. 이 경우, 인터 예측 모드의 디코딩 블록과 인트라 예측 모드의 디코딩 블록의 변환 블록에 대해 동일한 사용이 허용되는 계수 그룹을 사용한다.
예를 들어, ue(v) 방법을 사용하여 log2_min_cg_side_length를 파싱하여 획득한 값을 2로 설정하고, ue(v) 방법을 사용하여 log2_diff_max_inter_cg_side_length를 파싱하여 획득한 값을 2로 설정하고, ue(v) 방법을 사용하여 log2_diff_max_intra_cg_side_length를 파싱하여 획득한 값은 모두 1이다. 상기 실시 방법에 따르면, 디코딩 과정에서 인터 모드의 디코딩 블록에 사용이 허용되는 계수 그룹의 사용 가능한 변의 길이는 16, 8, 4를 포함하고, 대응되게 지시하는 계수 그룹의 크기는 16x16, 16x8, 16x4, 8x16, 8x8, 8x4, 4x16, 4x8, 4x4를 포함하는 것을 확정하고, 디코딩 과정에서 인트라 예측 모드의 디코딩 블록에 사용이 허용되는 계수 그룹의 사용 가능한 변의 길이는 8 및 4를 포함하고, 대응되게 지시하는 계수 그룹의 크기는 8x8, 8x4, 4x8 및 4x4를 포함하는 것을 확정한다. 이 경우, 인터 예측 모드의 디코딩 블록과 인트라 예측 모드의 디코딩 블록 중의 변환 블록은 완전히 동일하지 않은 사용이 허용되는 계수 그룹을 사용한다.
단계(S602)에서, 슬라이스 헤더 정보 데이터 유닛에서 계수 그룹의 크기를 파싱한다. 데이터 스트림에서 슬라이스 헤더 정보 데이터 유닛에 대응되는 비트 스트림을 파싱하여 디코딩 과정에서 사용 가능한 계수 그룹의 크기를 획득한다.
상기 슬라이스가 인용(refer to)하는 파라미터 세트의 파라미터 세트 인덱스 번호(parameter set identifier)를 파싱하여, 인용하는 파라미터 세트를 활성화하고, 파라미터 세트 중 설정된 사용 가능한 계수 그룹의 크기를 획득한다.
선택적으로, 특히, 슬라이스 헤더 정보 데이터 유닛에서 사용 가능한 계수 그룹의 크기와 관련된 구문 유닛에 대응되는 필드를 파싱하여, 상기 슬라이스를 파싱하는 과정에 사용 가능한 계수 그룹의 크기를 획득하고, 상기 슬라이스가 인용한 파라미터 세트에서 획득한 대응되는 파라미터를 대응되게 오버라이트한다. 사용되는 파싱 방법은 Profile/Tier/Level을 파싱하여 계수 그룹의 크기를 획득하는 방법을 제외하고는 단계(S601) 중 파라미터 세트 데이터 유닛을 파싱하여 계수 그룹의 크기를 획득하는 기타 방법과 동일하다.
선택적으로, 상기 슬라이스가 인용하는 파라미터 세트가 계수 그룹의 크기와 관련되는 파라미터를 포함하지 않는 경우, 슬라이스 헤더 정보에서 사용 가능한 계수 그룹의 크기와 관련된 구문 유닛에 대응되는 필드를 파싱하여, 상기 슬라이스를 디코딩하는 과정에 사용 가능한 계수 그룹의 크기를 획득한다. 사용되는 파싱 방법은 Profile/Tier/Level을 파싱하여 계수 그룹의 크기를 획득하는 방법을 제외하고는 단계(S601) 중 파라미터 세트 데이터 유닛을 파싱하여 계수 그룹의 크기를 획득하는 기타 방법과 동일하다.
단계(S603)에서, 블록 레이어 데이터 유닛에서의 계수 그룹의 크기를 파싱한다. 데이터 스트림에서 블록 레이어 데이터 유닛에 대응되는 비트 스트림을 파싱하여 디코딩 과정에서 사용 가능한 계수 그룹의 크기를 획득한다.
블록 레이어 데이터 유닛을 파싱하여, 디코딩 블록에서 변환 블록이 사용하는 계수 그룹의 크기를 지시하기 위한 파라미터를 획득한다. 예를 들어, 하나의 파싱 방법은 블록 레이어 데이터 유닛에서 변환 블록이 사용하는 계수 그룹의 크기를 지시하기 위한 구문 요소의 디코딩을 지시하는 필드(예를 들어, 계수 그룹의 너비 및 높이)를 파싱하는 것이다. 예를 들어, 하나의 파싱 방법은 블록 레이어 데이터 유닛을 파싱하여 하나 또는 다수의 인덱스 값을 획득하는 것이며, 해당 인덱스 값은 하나의 계수 그룹의 크기에 대응된다. 예를 들어, 하나의 파싱 방법은 블록 레이어 데이터 유닛을 파싱하여 하나 또는 다수의 플래그 정보를 획득하는 것이고, 상기 플래그 정보는 상기 디코딩 블록 중의 변환 블록이 사용하는 계수 그룹의 크기와, 상기 플래그 정보가 지시하는 디코딩된 하나의 변환 블록이 동일한 것을 지시하기 위해 사용되며, 상기 디코딩된 변환 블록은 상기 변환 블록과 동일한 이미지에 위치한 디코딩된 변환 블록(예를 들어 위쪽 인접 블록, 왼쪽 인접 블록 등)이거나, 상기 변환 블록과 동일한 이미지에 위치하지 않은 디코딩된 블록(즉 시간 도메인 인접 블록)일 수 있으며, 상기 플래그 정보의 일 예로서 "위쪽 인접 변환 블록의 계수 그룹의 크기와 동일"한 것을 지시하는 플래그 정보일 수 있다.
도 7은 본 발명의 실시예에 따른 스캐닝 모드 파라미터를 파싱하는 데이터 처리 흐름도이다. 상기 처리 흐름의 입력은 데이터 스트림에서 스캐닝 모드와 관련된 비트 스트림이고, 상기 처리 흐름의 출력은 디코딩 과정에서 사용이 허용되는 스캐닝 모드와 디코딩 블록 중 변환 블록에 대해 디코딩을 수행하는 과정에 사용되는 스캐닝 모드이다.
단계(S701)에서, 파라미터 세트 데이터 유닛에서 스캐닝 모드 파라미터를 파싱한다. 데이터 스트림에서 파라미터 세트 데이터 유닛에 대응되는 비트 스트림을 파싱하여 디코딩 과정에서 사용 가능한 스캐닝 모드를 획득한다.
파라미터 세트 데이터 유닛에서 사용이 허용되는 스캐닝 모드의 지시 정보를 파싱한다. 여기서 스캐닝 모드는 기설정된 고정 경로의 스캐닝 모드 또는 비 고정 경로의 스캐닝 모드일 수 있다. 비 고정 경로의 스캐닝 모드의 경우, 선택적으로 파라미터 세트 데이터 유닛을 파싱하여 스캐닝 전후의 변환 계수의 좌표 대응관계를 획득한다. 예를 들어, 변환 블록에서 좌표 위치는 (m, n)인 변환 계수(또는 인덱스 번호가 m Х nTbS + n과 같고, 여기서 nTbS는 변환 블록의 너비임)에 대응되는 스캐닝 후의 번호 위치는 k와 같다.
선택적으로, 사용 가능한 계수 그룹의 크기를 프로파일/티어/레벨(Profile/Tier/Level)에 기설정하고, 상이한 Profile/Tier/Level에 대해, 하나 또는 다수의 사용 가능한 스캐닝 모드를 설정한다. 예를 들어, 비교적 낮은 Level(예하면 해상도가 640x480 이하인 비디오 인코딩에 해당됨)의 경우, 디폴트 대각선 우측 상단, 수평 및 수직 스캐닝 모드를 사용하고; 비교적 높은 Level(예하면 720p, 1080p, 2K 등 해상도가 비교적 높은 비디오 인코딩에 해당됨) 의 경우, 전술한 비교적 낮은 Level에 사용 가능한 세 가지 디폴트 스캐닝 모드 외에도 지그재그(Zig-zag) 스캐닝 모드, 기타 대각선 스캐닝 모드(예하면 대각선 우측 하단, 대각선 좌측 하단 등)를 사용할 수 있고; 가장 높은 Level(예하면 4K, 8K 등 초고해상도 비디오 인코딩에 해당됨)의 경우, 전술한 비교적 높은 Level이 사용 가능한 스캐닝 모드 외에도, 비 고정 스캐닝 경로의 스캐닝 모드를 사용할 수 있다. 파라미터 세트 데이터 유닛을 파싱하여 Profile/Tier/Level의 지시 정보를 획득하고, 디코딩 과정에 사용 가능한 스캐닝 모드를 확정한다. 비 고정 경로의 스캐닝 모드의 경우, 파라미터 세트 데이터 유닛을 파싱하여 스캐닝 전후의 변환 계수의 좌표 대응관계를 획득한다. 예를 들어, 변환 블록의 좌표 위치가 (m, n)인 변환 계수(또는 인덱스 번호가 m Х nTbS + n과 같고, 여기서 nTbS는 변환 블록의 너비임)에 대응되는 스캐닝 후의 번호 위치는 k와 같다.
단계(S702)에서, 슬라이스 헤더 정보 유닛에서 스캐닝 모드 파라미터를 파싱한다. 데이터 스트림에서 슬라이스 헤더 정보 데이터 유닛에 대응되는 비트 스트림을 파싱하여, 디코딩 과정에서 사용 가능한 스캐닝 모드를 획득한다.
슬라이스 헤더 정보 데이터 유닛에서 파라미터 세트 인덱스 번호(parameter set identifier)를 파싱하여, 상기 슬라이스가 인용(refer to)하는 파라미터 세트를 획득한다. 상기 슬라이스에 대해 디코딩하는 과정에서, 인용하는 파라미터 세트 중 설정된 사용 가능한 스캐닝 모드를 사용할 수 있다.
선택적으로, 특히 슬라이스 헤더 정보를 파싱하여 사용 가능한 스캐닝 모드 파라미터를 획득하고, 상기 슬라이스가 인용하는 파라미터 세트에서 획득한 스캐닝 모드 파라미터를 대응되게 오버라이트한다. 선택적으로, 사용되는 파싱 방법은 Profile/Tier/Level을 파싱하여 스캐닝 모드를 획득하는 방법을 제외하고는 단계(S701) 중 파라미터 세트를 파싱하여 스캐닝 모드 파라미터를 획득하는 기타 방법과 동일하다.
선택적으로, 상기 슬라이스가 인용하는 파라미터 세트에 스캐닝 모드 파라미터가 포함되지 않은 경우, 슬라이스 헤더 정보를 파싱하여 상기 슬라이스를 디코딩하는 과정에서 사용 가능한 스캐닝 모드 파라미터를 획득한다. 사용되는 파싱 방법은 Profile/Tier/Level을 파싱하여 스캐닝 모드를 획득하는 방법을 제외하고는 단계(S701) 중 파라미터 세트을 파싱하여 스캐닝 모드 파라미터를 획득하는 기타 방법과 동일하다.
선택적으로, 슬라이스 헤더 정보 데이터 유닛을 파싱하여 스캐닝 전후의 변환 계수의 좌표 대응관계를 획득한다. 예를 들어, 변환 블록에서 좌표 위치가 (m, n)인 변환 계수(또는 인덱스 번호가 m Х nTbS + n과 같고, 여기서 nTbS는 변환 블록의 너비임)에 대응되는 스캐닝 후의 번호 위치는 k와 같다.
단계(S703)에서, 블록 레이어 데이터 유닛에서 스캐닝 모드 파라미터를 파싱한다. 데이터 스트림에서 블록 레이어 데이터 유닛에 대응되는 비트 스트림을 파싱하여 디코딩 블록를 디코딩하는 과정에서 사용하는 스캐닝 모드를 획득한다.
블록 레이어 데이터 유닛을 파싱하여 상기 디코딩 블록에서 변환 블록이 사용하는 스캐닝 모드를 지시하는데 사용되는 파라미터를 획득한다. 예를 들어, 하나의 파싱 방법은 블록 레이어 데이터 유닛에서 하나 또는 다수의 인덱스 값을 파싱하는 것이며, 해당 인덱스 값은 하나의 스캐닝 모드에 대응된다. 예를 들어, 하나의 파싱 방법은 블록 레이어 데이터 유닛에서 스캐닝 전후의 변환 계수의 좌표 대응관계를 파싱하는 것이고, 예하면 변환 블록에서 좌표 위치가 (m, n)인 변환 계수(또는 인덱스 번호가 m Х nTbS + n과 같고, 여기서 nTbS는 변환 블록의 너비임)에 대응되는 스캐닝 후의 번호 위치는 k와 같다. 예를 들어, 하나의 파싱 방법은 블록 레이어 데이터 유닛에서 하나 또는 다수의 플래그 정보를 파싱하는 것이며, 상기 플래그 정보는 상기 디코딩 블록에서 변환 블록이 사용하는 스캐닝 모드와 상기 플래그 정보가 지시하는 디코딩된 하나의 변환 블록이 동일한 것을 지시하는데 사용되고, 상기 디코딩된 변환 블록은 상기 변환 블록과 동일한 이미지에 위치한 디코딩된 변환 블록(예를 들어 위쪽 인접 블록, 왼쪽 인접 블록 등)이거나, 상기 변환 블록과 동일한 이미지에 위치하지 않은 디코딩된 블록(즉 시간 도메인 인접 블록)일 수 있으며, 상기 플래그 정보의 일 예로서 "위쪽 인접 변환 블록의 스캐닝 모드와 동일"한 것을 지시하기 위한 플래그 정보일 수 있다.
상기 실시형태에 대한 설명을 통해 본 분야 당업자는 상기 실시예에 따른 방법은 소프트웨어와 필요한 범용 하드웨어 플랫폼을 통해 구현될 수 있음을 명확하게 이해할 수 있으며, 물론 하드웨어로도 구현될 수 있지만 많은 경우에는 전자가 더 나은 실시 형태이다. 이러한 이해를 바탕으로 본 출원의 기술 방안은 소프트웨어 제품의 형태로 구현될 수 있고, 해당 컴퓨터 소프트웨어 제품은 저장 매체(예를 들어 ROM/RAM, 자기 디스크, 광디스크)에 저장되고, 단말 설비(휴대폰, 컴퓨터, 서버 또는 네트워크 설비 등일 수 있음)가 본 출원의 각 실시예에 따른 방법을 실행하기 위한 여러 명령을 포함한다.
실시예 3
본 실시예에서는 이미지 인코딩 장치를 더 제공하며, 해당 장치는 상기 실시예 및 바람직한 실시형태를 구현하며, 이미 설명된 부분에 대해 더 설명하지 않는다. 아래에서 사용되는 "모듈" 이라는 용어는 소정 기능을 구현할 수 있는 소프트웨어 및/또는 하드웨어의 조합일 수 있다. 아래의 실시예에 의해 설명되는 장치는 바람직하게는 소프트웨어로 구현되지만, 하드웨어 또는 소프트웨어와 하드웨어의 조합으로의 구현도 가능하고 구상될 수 있는 것이다.
도 8은 본 발명의 실시예에 따른 이미지 인코딩 장치의 구조 블록도이고, 도 8에 도시된 바와 같이, 상기 장치는 제 1 확정 모듈(82), 변환 모듈(84), 제2 확정 모듈(86) 및 인코딩 모듈(88)를 포함한다.
제 1 확정 모듈(82)은 인코딩 블록의 예측값을 확정하고, 상기 인코딩 블록과 상기 예측값의 예측 차이값을 계산하는데 사용되고;
변환 모듈(84)은 상기 예측 차이값에 대해 한 번 또는 다수 번의 변환을 수행하여 변환 데이터를 획득하고, 상기 변환 데이터를 사용하여 변환 계수를 확정하는데 사용되고;
제 2 확정 모듈(86)은 상기 변환 계수의 스캐닝 모드와 계수 그룹의 크기를 확정하고, 상기 변환 계수를 하나 또는 다수의 계수 그룹으로 분할하고, 상기 스캐닝 모드에 따라 각각의 상기 계수 그룹에 포함된 변환 계수를 스캔하고, 상기 변환 계수를 하나 또는 다수의 구문 요소로 전환하는데 사용되고;
인코딩 모듈(88)은 상기 계수 그룹의 크기와 상기 구문 요소의 값을 인코딩하고 인코딩 후의 비트를 비트 스트림에 기록하는데 사용된다.
도 9는 본 발명의 실시예에 따른 다른 이미지 인코딩 장치의 구조 블록도이고, 도 9에 도시된 바와 같이, 도 8의 전부의 모듈을 포함할 뿐만 아니라, 제 2 확정 모듈(86)은 CG 크기 확정 유닛(92), 스캐닝 모드 확정 유닛(94) 및 변환 계수 처리 유닛(96)을 더 포함한다. 인코딩 모듈(88)은 비트 스트림 생성 유닛(98)을 더 포함한다.
제 2 확정 모듈(86)은 변환 블록의 계수 그룹의 크기 및 스캐닝 모드를 확정하는데 사용된다. 도 9에 도시된 바와 같이, 제 2 확정 모듈(86)의 입력 데이터는 데이터 스트림(900) 및 데이터 스트림(901)을 포함하고, 출력 데이터는 데이터 스트림(903)이다. 데이터 스트림(900)은 제 1 확정 모듈(82)의 출력 데이터(상기 변환 블록이 위치하는 인코딩 블록의 크기 및 인코딩 모드를 포함함) 및 변환 모듈(84)의 출력 데이터(변환 블록의 크기 및 양자화 파라미터를 포함함)이다. 데이터 스트림(901)은 상기 변환 블록 중의 변환 계수이며, 상기 변환 블록에 대해 양자화를 사용하지 않은 경우, 데이터 스트림(901)의 변환 계수는 전술한 인코더의 변환 모듈(84)의 출력 데이터이고; 상기 변환 블록에 대해 양자화를 사용한 경우, 데이터 스트림(901)의 변환 계수는 변환 모듈(84)의 양자화된 출력 데이터이다. 데이터 스트림(902)은 제 2 확정 모듈(86)의 내부 데이터 스트림이고, CG 크기 확정 유닛(92)과 스캐닝 모드 확정 유닛(94) 사이의 양방향 데이터 스트림이다. CG 크기 확정 유닛(92)는 계수 그룹의 크기를 데이터 스트림(902)을 통해 스캐닝 모드 확정 유닛(94)에 전송하고; 스캐닝 모드 확정 유닛(94)은 스캐닝 모드를 지시하는 파라미터를 데이터 스트림(902)을 통해 CG 크기 확정 유닛(92)에 전송한다. 데이터 스트림(903)은 제 2 확정 모듈(86)의 출력 데이터이며, 상기 변환 블록에 대한 엔트로피 인코딩을 수행하기 위해 사용되는 계수 그룹의 크기 및 스캐닝 모드를 지시하는 파라미터이다. 데이터 스트림(903)은 상기 변환 블록에 의해 사용되는 계수 그룹의 크기, 스캐닝 모드를 지시하는 파라미터를 인코딩하여야 하는지 여부를 지시하는 플래그 정보를 더 포함한다.
제 2 확정 모듈(86)에서, CG 크기 확정 유닛(92)은 실시예 1에 따른 계수 그룹의 크기를 확정하는 방법으로 계수 그룹의 크기를 확정하고, 계수 그룹 크기의 값을 데이터 스트림(903)에 포함시킨다. CG 크기 확정 유닛(92)에 의해 사용되는 파라미터는, 데이터 스트림(900), 데이터 스트림(901)에서 전달되는 파라미터 및 필요할 때 데이터 스트림(902)으로부터 획득한 스캐닝 모드 파라미터로부터 제공된다. 스캐닝 모드 확정 유닛(94)은 실시예 1에 따른 변환 블록에서 변환 계수의 스캐닝 모드를 확정하는 방법으로 스캐닝 모드를 확정하고, 스캐닝 모드를 지시하는 파라미터를 데이터 스트림(903)에 포함시킨다. 스캐닝 모드 확정 유닛(94)에 의해 사용되는 파라미터는, 데이터 스트림(900), 데이터 스트림(901)에서 전달되는 파라미터 및 필요할 때 데이터 스트림(902)으로부터 획득한 계수 그룹의 크기의 값으로부터 제공된다.
선택적으로, 제 2 확정 모듈(86)은 RDO 방법을 사용하여 변환 블록이 사용하는 계수 그룹의 크기 및 변환 블록에서 변환 계수의 스캐닝 모드를 공동으로 확정할 수 있다. 하나의 선택 가능한 실시 방법은, 제 2 확정 모듈(86)이 스캐닝 모드 확정 유닛(94)의 후보 스캐닝 모드를 데이터 스트림(902)을 통해 순차적으로 CG 크기 확정 유닛(92)에 전송하고; CG 크기 확정 유닛(92)이 각 후보 스캐닝 모드에서 상기 변환 블록의 계수 그룹의 크기를 확정하고; 제 2 확정 모듈(86)이 각 후보 스캐닝 모드와 변환 블록의 계수 그룹의 크기를 사용하여 상기 변환 블록을 인코딩하여 생성된 인코딩 비트의 수를 계산하고; 제 2 확정 모듈(86)이 인코딩 비트 수의 최소값에 대응되는 후보 스캐닝 모드와 계수 그룹의 크기를 선택하고, 스캐닝 모드를 지시하는 파라미터와 계수 그룹의 크기의 값을 데이터 스트림(903)에 포함시키는 것이다.
선택적으로, 제 2 확정 모듈(86)은 RDO 방법을 사용하여 변환 블록이 사용하는 계수 그룹의 크기 및 변환 블록에서 변환 계수의 스캐닝 모드를 공동으로 확정할 수 있다. 다른 선택 가능한 실시 방법은, 제 2 확정 모듈(86)이 CG 크기 확정 유닛(92)의 각 후보 계수 그룹의 크기 값을 데이터 스트림(902)을 통해 순차적으로 스캐닝 모드 확정 유닛(94)에 전송하고; 스캐닝 모드 확정 유닛(94)이 각 후보 계수 그룹의 크기에서 상기 변환 블록의 스캐닝 모드를 확정하고; 제 2 확정 모듈(86)이 각 후보 계수 그룹의 크기 및 스캐닝 모드를 사용하여 상기 변환 블록을 인코딩하여 생성된 인코딩 비트의 수를 계산하고; 제 2 확정 모듈(86)이 인코딩 비트 수의 최소값에 대응되는 후보 계수 그룹의 크기 및 스캐닝 모드를 선택하고, 계수 그룹의 크기의 값 및 스캐닝 모드를 지시하는 파라미터를 데이터 스트림(903)에 포함시킨다.
변환 계수 처리 유닛(96)은 변환 블록의 변환 파라미터에 대해 파라미터화 표현(parametric representation)을 수행한다. 변환 계수 처리 유닛(96)의 입력 데이터는 데이터 스트림(901) 및 데이터 스트림(903)이고, 출력은 데이터 스트림(904)이다. 변환 계수 처리 유닛(96)은 데이터 스트림(903)의 계수 그룹의 크기에 따라, 데이터 스트림(901)의 변환 블록의 변환 계수를 하나 또는 다수의 계수 그룹으로 분할하고; 데이터 스트림(903)에서 스캐닝 모드를 지시하는 파라미터에 따라, 변환 블록의 변환 계수를 스캔하고, 변환 계수에 대해 파라미터화 표현을 수행한다. 변환 계수 처리 유닛(96)은 데이터 스트림(903)에서 스캐닝 모드를 지시하는 파라미터가 지시하는 스캐닝 순서를 사용하여, 변환 계수 행렬 중의 계수 그룹을 순차적으로 처리한다. 각 계수 그룹에 대해, 변환 계수 처리 유닛(96)은 데이터 스트림(903)에서 스캐닝 모드를 지시하는 파라미터가 지시하는 스캐닝 순서를 사용하여, 해당 계수 그룹 중의 변환 계수를 순차적으로 처리한다. 여기서 변환 계수 처리 유닛(96)이 계수 그룹에 대한 스캐닝 순서와 계수 그룹의 변환 계수에 대한 스캐닝 순서는 동일하거나 상이할 수 있다. 스캐닝 과정에서, 변환 계수 처리 유닛(96)은 0이 아닌 마지막 변환 계수의 위치를 기록하고, 해당 위치를 지시하는 데이터를 데이터 스트림(904)에 포함시킨다. 변환 계수 처리 유닛(96)은 0이 아닌 마지막 변환 계수를 포함하는 계수 그룹에서 시작하여, 데이터 스트림(903)에서 스캐닝 모드를 지시하는 파라미터에 의해 지시되는 스캐닝 순서에 따라, 각 계수 그룹의 계수가 모두 값이 0인 변환 계수(또는 각 계수 그룹에 0이 아닌 변환 계수가 포함되는지 여부를 표시)인지를 지시하는데 사용되는 플래그 비트를 순차적으로 확정하고, 상기 플래그 비트의 값을 데이터 스트림(904)에 포함시킨다. 대응되는 계수 그룹에서 0이 아닌 변환 계수가 존재하는 계수 그룹을 지시하는 전술한 플래그 비트에 대해, 변환 계수 처리 유닛(96)은 데이터 스트림(903)에서 스캐닝 모드를 지시하는 파라미터에 의해 지시된 스캐닝 순서에 따라, 상기 계수 그룹의 각 변환 계수의 값이 0인지 여부를 지시하는 플래그 비트를 순차적으로 확정하고, 해당 플래그 비트를 데이터 스트림(904)에 포함시킨다. 변환 계수 처리 유닛(96)은 값이 0이 아닌 변환 계수에 대해, 해당 변환 계수의 부호(양의 값 또는 음의 값을 지시하는데 사용됨)를 지시하는데 사용되는 부호 파라미터를 확정하고, 변환 계수의 값을 이의 절대 값으로 전환하고 부호 파라미터 및 변환 계수의 절대 값을 데이터 스트림(904)에 포함시킨다. 또한, 데이터 스트림(903)에서 상기 플래그 정보가 상기 변환 블록이 사용하는 계수 그룹의 크기를 인코딩하여야 함을 지시하는 경우, 변환 계수 처리 유닛(96)은 데이터 스트림(903)에서의 계수 그룹의 크기를 데이터 스트림(904)에 포함시키고; 데이터 스트림(903)의 상기 플래그 정보가 상기 변환 블록이 사용하는 스캐닝 모드를 인코딩하여야 함을 지시하는 경우, 변환 계수 처리 유닛(96)은 데이터 스트림(903)에서 스캐닝 모드를 지시하는 파라미터를 데이터 스트림(904)에 포함시킨다. 데이터 스트림(904)은 변환 계수 처리 유닛(96)의 출력 데이터이다.
비트 스트림 생성 유닛(98)은 변환 블록에서 변환 계수를 지시하는 파라미터를 인코딩하고, 이진 인코딩 비트를 생성하고, 인코딩 비트를 비트 스트림에 기록한다. 비트 스트림 생성 유닛의 입력 데이터는 데이터 스트림(904) 및 데이터 스트림(905)이고, 출력은 데이터 스트림(906)이다. 데이터 스트림(905)은 인코더 구성 파라미터에서 계수 그룹의 크기 및 스캐닝 모드 등 하나 또는 다수의 파라미터로부터 제공되고, 상기 구성 파라미터는 변환 블록이 사용 가능한 계수 그룹의 크기를 지시하는데 사용되고, 상기 구성 파라미터는 또한 변환 블록이 사용 가능한 스캔 모드를 지시하는데 사용된다. 특히, 인코더에서 사용 가능한 계수 그룹의 크기의 개수와 값이 고정되면, 비트 스트림 생성 유닛(98)은 데이터 스트림(905)에에 포한된, 사용 가능한 계수 그룹의 크기와 관련된 파라미터를 인코딩할 필요가 없다. 특히, 인코더에서 사용 가능한 스캐닝 모드가 고정된 경우, 비트 스트림 생성 유닛(98)은 데이터 스트림(905)에 포함된, 사용 가능한 스캐닝 모드와 관련된 파라미터를 인코딩할 필요가 없다. 비트 스트림 생성 유닛(98)은 엔트로피 인코딩 방법을 사용하여 데이터 스트림(904) 및 데이터 스트림(905) 중의 데이터를 인코딩하여 이진 인코딩 비트를 획득하고, 인코딩 비트를 비트 스트림에 기록하여 데이터 스트림(906)을 획득한다. 여기서, 상기 비트 스트림의 각 필드의 구성 방식은 비디오 인코딩 표준에 의해 정의된다. 비트 스트림 생성 유닛(98)이 사용 가능한 엔트로피 인코딩 방법은 동일 길이 인코딩, 이등 길이 인코딩, 산술 인코딩 등을 포함한다.
설명해야 할 것은, 데이터 흐름은 소프트웨어 구현에서 함수의 입력 파라미터 및 리턴 파라미터, 하드웨어 구현에서 버스로 전달되는 데이터, 저장 유닛 사이에서 공유하는 데이터(레지스터 공유 데이터 포함) 등을 의미한다.
설명해야 할 것은, 상기 각 모듈은 소프트웨어 또는 하드웨어로 구현될 수 있고, 후자의 경우, 상기 모듈이 모두 동일한 프로세서에 위치하거나; 상기 각 모듈이 임의로 조합된 형태로 상이한 프로세서에 각각 위치하는 방식을 통해 구현될 수 있지만 이에 한정되지 않는다.
실시예 4
본 실시예에서, 이미지 디코딩 장치를 더 제공하고, 해당 장치는 전술한 실시예 및 바람직한 실시 형태를 구현하기 위해 사용되며,, 이미 설명된 부분에 대해 더 설명하지 않는다. 아래에서 사용되는 "모듈" 이라는 용어는 소정 기능을 구현할 수 있는 소프트웨어 및/또는 하드웨어의 조합일 수 있다. 아래의 실시예에 의해 설명되는 장치는 바람직하게는 소프트웨어로 구현되지만, 하드웨어 또는 소프트웨어와 하드웨어의 조합으로의 구현도 가능하고 구상될 수 있는 것이다.
도 10은 본 발명의 실시예에 따른 이미지 디코딩 장치의 구조 블록도이고, 도 10에 도시된 바와 같이, 상기 장치는 디코딩 모듈(1002), 전환 모듈(1004), 처리 모듈(1006), 변환 모듈(1008) 및 계산 모듈(1010)을 포함한다.
디코딩 모듈(1002)은 비트 스트림을 파싱하여 상기 디코딩 블록의 예측값, 상기 디코딩 블록 중 변환 계수의 스캐닝 모드, 계수 그룹의 크기 및 변환 계수와 관련된 구문 요소의 값을 확정하는데 사용되고;
전환 모듈(1004)은 상기 스캐닝 모드 및 상기 계수 그룹의 크기에 따라 상기 디코딩 블록 중의 계수 그룹을 처리하고, 상기 구문 요소를 상기 계수 그룹 중의 변환 계수로 전환하는데 사용되고;
처리 모듈(1006)은 상기 변환 계수를 처리하여 변환 계수의 복원 값을 얻는데 사용되고;
변환 모듈(1008)은 상기 변환 계수를 처리하고 처리 후의 데이터에 대해 한 번 또는 다수 번의 변환을 수행하여 상기 디코딩 블록의 예측 차이값을 얻는데 사용되며;
계산 모듈(1010)은 상기 예측값 및 상기 예측 차이값을 사용하여 상기 디코딩 블록의 복원 값을 확정하는데 사용된다.
도 11은 본 발명의 실시예에 따른 다른 이미지 디코딩 장치의 구조 블록도이고, 도 11에 도시된 바와 같이, 디코딩 모듈(1002)은 변환 블록의 계수 그룹의 크기 및 스캐닝 모드를 확정한다.
디코딩 모듈(1002)의 입력 데이터는 데이터 스트림(11000)을 포함하고, 출력 데이터는 데이터 스트림(11001)이다. 데이터 스트림(11000)은 비트 스트림이며 디코더의 입력 데이터이다. 디코딩 모듈(1002)은 비디오 인코딩 표준에 정의된 비트 스트림 구성 구조 및 각 필드의 엔트로피 디코딩 방법에 따라, 데이터 스트림(11000)을 파싱하고, 하나 또는 다수의 파라미터 세트 데이터 유닛 및 하나 또는 다수의 슬라이스 데이터 유닛(슬라이스 헤더(Slice header) 데이터 유닛 및 슬라이스 데이터(Slice data) 유닛을 포함함)을 획득한다. 디코딩 모듈(1002)은 슬라이스 세트 데이터 유닛을 파싱하여 하나 또는 다수의 디코딩 블록의 블록 레이어 데이터 유닛을 획득한다. 디코딩 모듈(1002)이 획득한 데이터 유닛에 포함된, 계수 그룹의 크기 및 스캐닝 모드와 관련된 파라미터는, 현재 디코딩 블록에 포함된 변환 블록이 사용하는 계수 그룹의 크기 및 스캐닝 모드 파라미터를 데이터 스트림(11001)에 포함시킨다. 데이터 스트림(11001)은 디코딩 모듈(1002)의 출력 데이터이다. 디코딩 모듈(1002)이 사용 가능한 엔트로피 디코딩 방법은 동일 길이 인코딩을 사용하여 생성된 코드 워드를 엔트로피 디코딩하는 방법, 이등 길이 인코딩을 사용하여 생성된 코드 워드를 엔트로피 디코딩하는 방법 및 산술 인코딩을 사용하여 생성된 코드 워드를 엔트로피 디코딩하는 방법을 포함한다.
디코딩 모듈(1002)은 획득한 데이터 유닛으로부터 관련 파라미터를 판독하고, 변환 블록에서 변환 계수를 디코딩하는데 사용되는 계수 그룹의 크기를 확정한다. 선택적으로, 데이터 스트림(11000)의 각 데이터 유닛에 포함된 필드 데이터에 따라, 디코딩 모듈(1002)은 파라미터 세트 데이터 유닛에서 사용 가능한 계수 그룹의 크기와 관련된 파라미터를 획득하고, 디코딩 과정에서 사용 가능한 후보 계수 그룹의 크기를 확정할 수 있다. 선택적으로, 데이터 스트림(11000)의 각 데이터 유닛에 포함된 필드 데이터에 따라, 디코딩 모듈(1002)은 슬라이스 헤더 정보 데이터 유닛에서 사용 가능한 계수 그룹의 크기와 관련된 파라미터를 획득하고, 디코딩 과정에서 사용 가능한 후보 계수 그룹의 크기를 확정할 수 있다. 특히 디코딩 모듈(1002)이 슬라이스 헤더 정보 데이터 유닛에서 획득할 수 있는 계수 그룹의 크기와 관련된 파라미터는, 파라미터 세트 데이터 유닛에서 획득한 파라미터를 대응되게 오버라이트하여, 상기 슬라이스를 디코딩하는 과정에서 사용 가능한 계수 그룹의 크기의 파라미터로 한다. 디코딩 모듈(1002)은 블록 레이어 데이터 유닛의 파라미터를 사용하여 디코딩 블록에서 변환 블록이 사용하는 계수 그룹의 크기를 확정한다. 디코딩 모듈(1002)은 계수 그룹의 크기를 데이터 스트림(11001)에 포함시킨다.
디코딩 모듈(1002)은 획득한 데이터 유닛으로부터 관련 파라미터를 판독하고, 변환 블록에서 변환 계수를 디코딩하는데 사용되는 스캐닝 모드를 확정한다. 선택적으로, 데이터 스트림(11000)의 각 데이터 유닛에 포함된 필드 데이터에 따라, 디코딩 모듈(1002)은 파라미터 세트 데이터 유닛에서 사용 가능한 스캐닝 모드와 관련된 파라미터를 획득하고 디코딩 프로세스에서 사용 가능한 스캐닝 모드를 확정할 수 있다. 디코딩 모듈(1002)이 파라미터 세트 데이터 유닛에서 획득한, 사용 가능한 스캐닝 모드는 고정 경로의 스캐닝 모드, 즉 디코더에 기설정된 스캐닝 경로의 스캐닝 모드일 수 있다. 특히, 디코딩 모듈(1002)이 파라미터 세트 데이터 유닛에서 획득한 사용 가능한 스캐닝 모드는 비 고정 경로의 스캐닝 모드, 즉 전술한 실시예 3에서 파라미터 세트 데이터 유닛의 비트 스트림에 기록된 스캔 경로일 수 있다. 디코딩 모듈(1002)은 파라미터 세트 데이터 유닛에서 스캐닝 모드와 관련된 파라미터를 획득하고, 선택적으로, 상기 파라미터는 스캐닝 전후의 변환 계수의 좌표 대응관계를 설명하고, 예를 들어, 변환 블록의 좌표 위치가 (m, n)인 변환 계수(또는 인덱스 번호가 m Х nTbS + n과 같고, 여기서 nTbS는 변환 블록의 너비임)에 대응되는 스캐닝 후의 번호 위치는 k와 같다. 선택적으로, 데이터 스트림(11000)의 각 데이터 유닛에 포함된 필드 데이터에 따라, 디코딩 모듈(1002)은 슬라이스 헤더 정보 데이터 유닛에서 사용 가능한 스캐닝 모드와 관련된 파라미터를 획득하고, 디코딩 과정에서 사용 가능한 후보 스캐닝 모드를 확정할 수 있다. 특히, 디코딩 모듈(1002)이 슬라이스 헤더 정보 데이터 유닛에서 획득할 수 있는 스캐닝 모드와 관련된 파라미터는, 파라미터 세트 데이터 유닛에서 획득한 파라미터를 대응되게 오버라이트하여, 상기 슬라이스를 디코딩하는 과정에서 사용 가능한 스캐닝 모드로 한다. 디코딩 모듈(1002)은 블록 레이어 데이터 유닛의 파라미터를 사용하여 디코딩 블록에서 변환 블록이 사용하는 스캐닝 모드를 확정한다. 디코딩 모듈(1002)은 디코딩 과정에서 사용 가능한 스캐닝 모드 파라미터를 데이터 스트림(11001)에 포함시킨다.
특히, 디코더에서 사용 가능한 계수 그룹의 크기의 개수와 값이 고정된 경우, 디코딩 모듈(1002)은 비트 스트림을 파싱할 필요가 없고, 디코더에 미리 저장된 정보를 판독하여 사용 가능한 계수 그룹의 크기의 개수와 값을 획득한다. 특히, 디코더에서 사용 가능한 스캐닝 모드가 고정된 경우, 디코딩 모듈(1002)은 비트 스트림을 파싱할 필요가 없고, 디코더에 미리 저장된 정보를 판독하여 사용 가능한 스캐닝 모드를 획득한다.
디코딩 모듈(1002)은 비트 스트림에서 변환 블록에 대응하는 데이터 유닛을 파싱하여, 계수 그룹의 크기 및 스캐닝 모드 뿐만 아니라 변환 계수와 관련된 파라미터를 획득하고, 여기서, 변환 계수와 관련된 파라미터는 변환 블록에서 0이 아닌 마지막 계수의 위치, 계수 그룹에 포함된 변환 계수가 모두 0인지 여부(또는 계수 그룹에 0이 아닌 변환 계수가 포함되는지 여부와 같음), 변환 계수의 값(또는 변환 계수의 부호, 변환 계수의 절대 값) 중 하나 또는 다수의 정보를 지시하는 파라미터를 포함한다. 디코딩 모듈(1002)도 상기 파라미터를 데이터 스트림(11001)에 포함시킨다.
처리 모듈(1006)은 변환 블록에서 변환 계수의 복원 값을 확정한다. 변환 계수 복원 유닛의 입력 데이터는 데이터 스트림(11001)이고 출력은 데이터 스트림(11002)이다. 데이터 스트림(11002)은 디코딩 블록에서 변환 블록의 변환 계수를 포함한다. 데이터 스트림(11002)에서, 변환 계수는 M x N인 2 차원 행렬의 형태로 나타낼 수 있으며, 여기서 M과 N은 양의 정수이고, M과 N은 동일하거나 상이할 수 있다. 상기 2 차원 행렬은 하나의 변환 블록에 대응될 수 있으며, 이하 설명에서 사용하는 "변환 블록"은 M x N인 2 차원 행렬 형태로 나타나는 변환 계수를 지칭한다. 여기서, 디코딩 모듈(1002)이 비트 스트림을 파싱하여 획득한 지시 정보가 상기 변환 블록에 대해 스케일링(Scaling)(역 양자화라고도 함) 작업을 수행하도록 지시하는 경우, 처리 모듈(1006)에 의해 출력된 데이터 스트림(11002)에 포함된 상기 변환 계수의 복원 값은 전술한 인코더에서 양자화 유닛(209)에 의해 출력된 계수의 양자화 값(즉 "Level"값)에 대응되고, 디코더는 데이터 스트림(11002)을 역 양자화 유닛(305)의 입력 데이터로 사용한다. 반대로 디코딩 모듈(1002)이 비트 스트림을 파싱하여 획득한 지시 정보가 상기 변환 블록에 대해 스케일링 작업을 수행하지 않도록 지시하는 경우, 처리 모듈(1006)에 의해 출력된 데이터 스트림(11002)에 포함된 상기 변환 계수의 복원 값은 전술한 인코더에서 변환 유닛(84)에 의해 출력된 상기 예측 차이를 변환하여 얻은 데이터에 대응되고, 디코더는 데이터 스트림(11002)을 역변환 유닛(306)의 입력 데이터로 사용한다.
처리 모듈(1006)은 변환 블록의 크기 및 계수 그룹의 크기에 따라, 변환 블록에 포함된 각 계수 그룹의 위치를 확정한다. 상기 계수 그룹의 위치는 계수 그룹에서 좌측 상단 코너 계수가 변환 블록(또는 디코딩 이미지)에서의 위치 좌표로 나타낼 수 있다. 처리 모듈(1006)은 데이터 스트림(11001)에서 스캐닝 모드가 지시하는 순서에 따라 계수 그룹을 순차적으로 처리한다. 계수 그룹에 대해, 처리 모듈(1006)은 상기 스캐닝 모드가 지시하는 순서에 따라, 계수 그룹에서 대응되는 요소의 값을, 비트 스트림을 파싱하여 획득한 변환 계수의 값으로 설정한다. 특히, 처리 모듈(1006)이 데이터 스트림(11001)으로부터 계수 그룹에 포함된 변환 계수가 모두 0임(또는 계수 그룹에 0이 아닌 변환 계수를 포함하지 않는 것과 동일함)을 지시하는 것을 획득할 때, 파싱 유닛은 해당 계수 그룹에 포함된 계수를 모두 0으로 설정한다. 특히, 처리 모듈(1006)이 데이터 스트림(11001)으로부터 0이 아닌 마지막 계수의 위치를 획득하는 경우, 처리 모듈(1006)은 스캐닝 순서에 따라 0이 아닌 마지막 계수의 위치 이후의 기타 계수의 값을 0으로 설정한다. 특히, 여기서 처리 모듈(1006)이 변환 블록의 계수 그룹에 대한 처리 순서와 계수 그룹의 변환 계수에 대한 처리 순서는 동일하거나 상이할 수 있다. 처리 모듈(1006)은 복원된 변환 블록(즉, 2 차원 행렬 형태(또는 2 차원 행렬의 기타 데이터 형태와 동등함)로 나타난 변환 계수)을 데이터 스트림(11002)에 포함시킨다.
설명해야 할 것은, 데이터 흐름은 소프트웨어 구현에서 함수의 입력 파라미터 및 리턴 파라미터, 하드웨어 구현에서 버스로 전달되는 데이터, 저장 유닛 사이에서 공유하는 데이터(레지스터 공유 데이터 포함) 등을 의미한다.
설명해야 할 것은, 상기 각 모듈은 소프트웨어 또는 하드웨어로 구현될 수 있고, 후자의 경우, 상기 모듈이 모두 동일한 프로세서에 위치하거나; 상기 각 모듈이 임의로 조합된 형태로 상이한 프로세서에 각각 위치하는 방식을 통해 구현될 수 있지만 이에 한정되지 않는다.
실시예 5
도 12는 상기에 나타난 이미지 인코딩 장치를 포함하는 전자 설비의 도면이다. 도 12에 도시된 바와 같이, 상기 장치는 수집 유닛(1202), 이미지 인코딩 장치(1204) 및 저장 또는 전송 유닛(1206)을 포함한다.
수집 유닛(1202)은 비디오 또는 이미지를 수집한다. 수집 유닛(1202)은 자연 비디오 또는 자연 이미지를 수집하기 위한 적어도 하나의 카메라를 포함할 수 있으며; 선택적으로 수집 유닛(1202)에는 또한 깊이 비디오 또는 깊이 이미지를 수집하기 위한 카메라가 구성될 수 있고; 선택적으로 수집 유닛에는 또한 적외선 카메라가 장착될 수 있고; 선택적으로 수집 유닛에는 원격 감지 카메라가 장착될 수 있다. 수집 유닛(1202)은 방사선 투과 또는 스캐닝을 통해 생성된 비디오 또는 이미지를 포함하는 장치 또는 설비일 수 있다.
선택적으로, 수집 유닛(1202)은 입력 비디오 또는 이미지에 대해 전처리할 수 있으며, 예를 들어 자동 초점, 자동 화이트 밸런스, 자동 노출, 백라이트 보정, 노이즈 감소, 선명화, 스티칭, 이미지 해상도 증가 또는 감소, 비디오 프레임 증가 또는 감소, 가상 뷰 합성 등을 수행할 수 있다.
수집 유닛(1202)은 기타 설비 또는 유닛에서 출력한 비디오 또는 이미지를 수신할 수도 있고, 예를 들어, 수집 유닛(1202)은 트랜스 코더(Transcoder)의 구성 유닛일 수 있으며, Transcoder는 부분적으로 디코딩된 이미지를 수집 유닛(1202)에 입력한다. 예를 들어, 수집 유닛(1202)은 데이터 연결을 통해 기타 설비로부터 전송된 비디오 또는 이미지를 수신한다.
설명해야 할 것은, 비디오 또는 이미지에 외에도, 수집 유닛(1202)은 오디오와 같은 다른 미디어 정보도 수집할 수 있다. 수집 유닛(1202)은 또한 텍스트, 자막, 컴퓨터 생성 사진 또는 비디오 등과 같은 인위적으로 생성된 정보를 수신할 수 있다.
이미지 인코딩 장치(1204)는 도 2에 도시된 인코더이다. 이미지 인코딩 장치(1204)의 입력은 수집 유닛(1202)에 의해 출력된 비디오 또는 이미지이다. 이미지 인코딩 장치(1204)는 비디오 또는 이미지를 인코딩하고 비디오 또는 이미지 비트 스트림을 출력한다.
저장 또는 전송 유닛(1206)은 이미지 인코딩 장치(1204)에 의해 출력된 비디오 또는 이미지 비트 스트림을 수신하고, 이에 대해 시스템 레이어 처리를 수행하며, 예를 들어, 전송 프로토콜 및 미디어 파일 포멧과 같은 표준에 따라 패키징(Encapsulation)을 수행한다. 저장 또는 전송 유닛(1206)은 시스템 레이어 처리 후 획득한 전송 스트림 또는 미디어 파일을 상기 전자 설비의 메모리에 저장하거나 유선 또는 무선 네트워크를 통해 전송한다.
설명해야 할 것은, 이미지 인코딩 장치(1204)에 의해 출력된 비디오 또는 이미지 비트 스트림 외에도, 저장 또는 전송 유닛(1206)의 입력은 또한 오디오 스트림, 텍스트, 자막, 사진 등을 포함할 수 있다. 저장 또는 전송 유닛(1206)은 미디어 파일 포맷 및 전송 프로토콜과 같은 표준에 따라 이러한 이미지 인코딩 장치(1204)에 의해 출력된 비트 스트림과 함께 전송 스트림 또는 미디어 파일에 패키징한다.
본 실시예의 상기 전자 설비는 휴대폰, 컴퓨터, 미디어 서버, 휴대용 이동 단말기, 디지털 비디오 카메라, 디지털 카메라, TV 방송 시스템 설비, 콘텐츠 배포 네트워크 설비, 모니터링 카메라, 화상 회의 시스템 설비 등와 같은 비디오 통신 응용에서 비디오 또는 이미지 비트 스트림을 생성하거나 처리할 수 있는 설비일 수 있다.
실시예 6
도 13은 상기에 나타난 이미지 디코딩 장치를 포함하는 전자 설비의 도면이다. 도 13에 되시된 바와 같이, 수신 유닛(1302), 이미지 디코딩 장치(1304) 및 렌더링(Rendering) 유닛(1306)을 포함하고, 여기서:
수신 유닛(1302)은 비디오 또는 이미지 비트 스트림을 수신한다. 수신 유닛(1302)은 유선 또는 무선 네트워크로부터 비디오 또는 이미지 비트 스트림을 수신하거나 상기 전자 설비의 메모리를 판독하여 비디오 또는 이미지 비트 스트림을 획득하거나 데이터 연결을 통해 기타 설비로부터 전송된 비디오 또는 이미지 비트 스트림을 수신한다.
수신 유닛(1302)의 입력은 또한 비디오 또는 이미지 비트 스트림을 포함하는 전송 스트림 또는 미디어 파일일 수 있다. 수신 유닛(1302)은 전송 프로토콜 및 미디어 파일 포맷과 같은 표준에 따라 수신된 전송 스트림 또는 미디어 파일로부터 비디오 또는 이미지 비트 스트림을 추출한다.
수신 유닛(1302)은 비디오 또는 이미지 비트 스트림을 이미지 디코딩 장치(1304)로 출력한다.
설명해야 할 것은, 비디오 또는 이미지 스트림 외에도, 수신 유닛(1302)의 출력은 또한 오디오 비트 스트림, 텍스트, 자막, 사진 등을 포함할 수 있다. 수신 유닛(1302)은 이러한 출력을 상기 전자 설비의 대응하는 처리 유닛으로 전송한다. 예를 들어, 수신 유닛(1302)은 오디오 비트 스트림을 상기 전자 설비에 포함된 오디오 디코더로 출력한다.
이미지 디코딩 장치(1304)는 도 3에 도시된 디코더이다. 이미지 디코딩 장치(1304)의 입력은 수신 유닛(1302)에 의해 출력된 비디오 또는 이미지 비트 스트림이다. 이미지 디코딩 장치(1304)는 비디오 또는 이미지 스트림을 디코딩하고 디코딩되어 복원된 비디오 또는 이미지를 출력한다.
렌더링(Rendering) 유닛(1306)은 이미지 디코딩 장치(1304)에 의해 출력된 디코딩되어 복원된 비디오 또는 이미지를 수신한다. 렌더링 유닛(1306)은 디코딩되어 복원된 비디오 또는 이미지를 시청자(Viewer)에게 제공한다. 렌더링 유닛(1306)은 디스플레이 스크린과 같은 상기 전자 설비의 구성요소일 수 있으며, 프로젝터, 디스플레이 등과 같은 데이터 연결을 통해 상기 전자 설비에 연결된 단독적인 설비일 수도 있다. 선택적으로, 렌더링 유닛(1306)은 디코딩되어 복원된 비디오 또는 이미지에 대한 후처리를 수행할 수 있으며, 예를 들어, 자동 초점, 자동 화이트 밸런스, 자동 노출 조정, 역광 보정, 노이즈 감소, 선명화, 스티칭, 이미지 해상도 증가 또는 감소, 비디오 프레임 증가 또는 감소, 가상 뷰 합성 등을 수행할 수 있다.
설명해야 할 것은, 상기 디코딩하여 복원된 비디오 또는 이미지 외에도, 렌더링 유닛(1306)의 입력은 또한 오디오, 텍스트, 자막 및 사진과 같은 상기 전자 설비의 기타 유닛으로부터 출력된 미디어 데이터를 포함할 수 있다. 렌더링 유닛(1306)의 입력은 또한 원격 교육 응용에서 지역 강사가 주요 콘텐츠에 대해 그린 선 등 마킹 데이터와 같은 인위적으로 생성된 데이터를 포함한다. 렌더링 유닛(1306)은 입력된 미디어 데이터를 중첩하여 시청자에게 보여준다.
본 실시예의 상기 전자 설비는 휴대폰, 컴퓨터, 셋톱 박스, TV, 플레이어, 미디어 서버, 휴대용 모바일 단말기, 디지털 카메라, TV 방송 시스템 설비, 콘텐츠 유통망 설비, 회의 TV 시스템 설비 등 비디오 통신 응용에서 비디오 또는 이미지 비트 스트림을 디코딩하거나 처리할 수 있는 설비일 수 있다.
실시예 7
도 14는 상기에 나타난 전자 설비를 포함하는 전자 시스템이다. 도 14에 도시된 바와 같이,
소스 설비(1402)는 도 12에 도시된 전자 설비이다.
저장 또는 전송 네트워크(1404)는 설비 또는 전자 시스템의 저장 장치, 데이터 연결을 통해 데이터 판독 작업을 수행하는 외부 저장 장치를 포함할 수 있으며; 유선 네트워크와 무선 네트워크로 구성된 데이터 전송 네트워크를 포함할 수도 있다. 저장 또는 전송 네트워크(1404)는 소스 설비(1402)의 저장 또는 전송 유닛(1206)을 위한 저장 장치 또는 데이터 전송 네트워크를 제공한다.
싱크 설비(1406)는 도 13에 도시된 전자 설비를 포함한다. 싱크 설비(1406)의 수신 유닛(1302)은 저장 또는 전송 네트워크(1404)에 의해 제공되는 비디오 또는 이미지 비트 스트림의 전송 스트림 또는 비디오 또는 이미지 비트 스트림의 미디어 파일을 포함하는 비디오 또는 이미지 비트 스트림을 수신한다.
본 실시예의 상기 전자 시스템은 비디오 통신 응용에서 디코딩 비디오 또는 이미지 비트 스트림을 생성, 저장 및 전송할 수 있는 시스템 또는 설비일 수 있으며 예를 들어, 휴대폰, 컴퓨터, IPTV 시스템, OTT 시스템, 인터넷 멀티미디어 시스템, 디지털 텔레비전 방송 시스템, 모니터링 시스템, 휴대용 모바일 단말기, 디지털 촬영기, 디지털 사진기, 화상 회의 시스템 설비 등일 수 있다.
실시예 8
본 발명의 실시예는 컴퓨터 프로그램이 저장된 저장 매체를 더 제공하며, 해당 컴퓨터 프로그램은 실행시 전술한 방법 실시예 중 어느 하나의 단계를 실행하도록 구성된다.
선택적으로, 본 실시예에서, 상기 저장 매체는 U 디스크, 판독 전용 메모리(Read-Only Memory, ROM), 랜덤 액세스 메모리(Random Access Memory, RAM), 모바일 하드 디스크, 자기 디스크 또는 광 디스크와 같은 컴퓨터 프로그램을 저장할 수 있는 다양한 매체를 포함할 수 있지만, 이에 한정되지 않는다.
물론, 본 분야의 당업자는 상술한 본 출원의 각 모듈 또는 각 단계가 범용 컴퓨팅 장치에 의해 구현될 수 있으며, 이들은 단일 컴퓨팅 장치에 집중되거나 여러 컴퓨팅 장치로 구성된 네트워크에 분산될 수 있음을 이해할 수 있을 것이다. 선택적으로, 이들은 컴퓨팅 장치에 의해 실행 가능한 프로그램 코드로 구현될 수 있어, 컴퓨팅 장치에 의해 실행될 수 있도록 저장 장치에 저장될 수 있다. 경우에 따라, 표시되거나 설명된 단계는 본문에서와 다른 순서로 실행될 수 있고, 또는 이들은 각각의 집적 회로 모듈로 각각 제조되거나, 이들 중 여러 모듈 또는 단계는 단일 집적 회로 모듈로 제조되어 구현된다. 이로써 본 출원은 어느 특정 하드웨어 및 소프트웨어 조합에 한정되지 않는다.
전술한 설명은 단지 본 출원의 바람직한 실시예일 뿐이며, 본 출원에 대한 한정이 되지 않으며, 본 분야의 당업자에게 있어서, 본 출원은 다양한 변경 및 변화가 가능하다. 본 출원의 원칙 내에 있는한, 진행한 임의의 수정, 동등한 대체, 개선 등은 모두 본 발명의 보호 범위에 포함되어야 한다.

Claims (102)

  1. 삭제
  2. 삭제
  3. 삭제
  4. 삭제
  5. 삭제
  6. 삭제
  7. 삭제
  8. 삭제
  9. 삭제
  10. 삭제
  11. 삭제
  12. 삭제
  13. 삭제
  14. 삭제
  15. 삭제
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
  21. 삭제
  22. 삭제
  23. 삭제
  24. 삭제
  25. 삭제
  26. 삭제
  27. 삭제
  28. 삭제
  29. 삭제
  30. 삭제
  31. 삭제
  32. 삭제
  33. 삭제
  34. 삭제
  35. 삭제
  36. 삭제
  37. 삭제
  38. 삭제
  39. 삭제
  40. 삭제
  41. 삭제
  42. 삭제
  43. 삭제
  44. 삭제
  45. 삭제
  46. 삭제
  47. 삭제
  48. 삭제
  49. 비트 스트림을 파싱하여 디코딩 블록의 예측값을 확정하는 단계;
    상기 비트 스트림을 파싱하여 상기 디코딩 블록 중 변환 계수의 스캐닝 모드, 계수 그룹의 크기 및 변환 계수와 관련된 구문 요소의 값을 확정하는 단계;
    상기 스캐닝 모드 및 상기 계수 그룹의 크기에 따라 상기 디코딩 블록 중의 계수 그룹을 처리하고, 상기 구문 요소의 값을 상기 계수 그룹 중의 변환 계수로 전환하는 단계;
    상기 변환 계수를 처리하여 변환 계수의 복원 값을 얻는 단계;
    상기 변환 계수의 복원 값에 대해 적어도 한 번의 변환을 수행하여 상기 디코딩 블록의 예측 차이값을 얻는 단계;
    상기 예측값과 상기 예측 차이값을 사용하여 상기 디코딩 블록의 복원 값을 확정하는 단계; 를 포함하되,
    여기서, 상기 비트 스트림을 파싱하여 상기 디코딩 블록 중 변환 계수의 계수 그룹의 크기를 확정하는 단계는,
    상기 비트 스트림을 파싱하여 상기 비트 스트림 중의 데이터 유닛으로부터 제 1 계수 그룹 파라미터를 획득하고, 상기 제 1 계수 그룹 파라미터에 따라 상기 계수 그룹의 크기를 확정하는 것을 포함하고,
    여기서, 상기 비트 스트림 중의 데이터 유닛은 적어도 하나의 파라미터 세트, 슬라이스 헤더, 블록 레이어 데이터 유닛 중 적어도 하나를 포함하며,
    여기서, 상기 제 1 계수 그룹 파라미터에는 상기 디코딩 블록의 제 1 디코딩 파라미터가 포함되고,
    여기서, 상기 제 1 계수 그룹 파라미터에 따라 상기 계수 그룹의 크기를 확정하는 단계는,
    상기 디코딩 블록의 제 1 디코딩 파라미터에 따라 상기 계수 그룹의 크기를 상기 제 1 디코딩 파라미터에 대응되는 계수 그룹의 크기로 설정하는 것을 포함하고,
    여기서, 상기 제 1 디코딩 파라미터는 상기 디코딩 블록의 예측모드, 상기 디코딩 블록에 포함된 변환 블록이 사용하는 변환 유형, 양자화 파라미터 중 적어도 하나를 포함하고,
    여기서, 상기 양자화 파라미터는 인코딩 블록이 인코딩되어 상기 디코딩 블록을 얻을 때 상기 예측 차이값에 대해 한 번 또는 다수 번의 변환을 수행하여 획득한 변환 데이터를 양자화하기 위한 파라미터인 것을 특징으로 하는 이미지 디코딩 방법.
  50. 제 49 항에 있어서,
    상기 비트 스트림을 파싱하여 상기 디코딩 블록의 예측값을 확정하는 단계는,
    상기 비트 스트림을 파싱하여 상기 디코딩 블록의 인터 예측 파라미터를 획득하고; 상기 인터 예측 파라미터에 따라 적어도 하나의 디코딩된 이미지를 참조 이미지로 사용하여 상기 디코딩 블록의 예측값을 확정하는 방법;
    또는, 상기 비트 스트림을 파싱하여 상기 디코딩 블록의 인트라 예측 파라미터를 획득하고; 상기 인트라 예측 파라미터에 따라 상기 디코딩 블록이 위치한 이미지에서 디코딩된 부분을 참조로 하여 상기 디코딩 블록의 예측값을 확정하는 방법; 중 적어도 하나를 포함하는 것을 특징으로 하는 이미지 디코딩 방법.
  51. 삭제
  52. 삭제
  53. 삭제
  54. 제 49 항에 있어서,
    상기 제 1 계수 그룹 파라미터에 따라 상기 계수 그룹의 크기를 확정하는 단계는,
    상기 제 1 계수 그룹 파라미터에 따라 계수 그룹의 크기의 후보 값으로부터 상기 디코딩 블록의 변환 계수의 계수 그룹의 크기를 확정하는 단계를 포함하는 것을 특징으로 하는 이미지 디코딩 방법.

  55. 삭제
  56. 삭제
  57. 삭제
  58. 제 54 항에 있어서,
    상기 제 1 계수 그룹 파라미터는 식별자 파라미터를 포함하고, 상기 식별자 파라미터를 사용하여 상기 계수 그룹의 크기의 후보 값을 구성하는 단계를 더 포함하는 것을 특징으로 하는 이미지 디코딩 방법.
  59. 삭제
  60. 제 58 항에 있어서,
    상기 식별자 파라미터를 사용하여 상기 계수 그룹의 크기의 후보 값을 구성하는 단계는,
    상기 식별자 파라미터의 최대값과 최소값을 획득하고, 기설정된 분할 모드에 따라 상기 최대값과 상기 최소값 이외의 상기 식별자 파라미터의 값을 확정하며, 상기 식별자 파라미터의 값을 사용하여 상기 후보 값을 설정하는 방식;
    상기 식별자 파라미터의 최대값과 상기 계수 그룹의 최대 분할 계층을 획득하고, 상기 기설정된 분할 모드에 따라 최대값 이외의 상기 식별자 파라미터의 값을 확정하며, 상기 식별자 파라미터의 값을 사용하여 상기 후보 값을 설정하는 방식;
    상기 식별자 파라미터의 최대값과 상기 식별자 파라미터의 최대값과 최소값 사이의 차이값을 획득하고, 상기 기설정된 분할 모드에 따라 최대값 이외의 상기 식별자 파라미터의 값을 확정하며, 상기 식별자 파라미터의 값을 사용하여 상기 후보 값을 설정하는 방식;
    상기 식별자 파라미터의 최소값과 상기 계수 그룹의 최대 상향 분할 계층을 획득하고, 상기 기설정된 분할 모드에 따라 최소값 이외의 상기 식별자 파라미터의 값을 확정하며, 상기 식별자 파라미터의 값을 사용하여 상기 후보 값을 설정하는 방식;
    상기 식별자 파라미터의 최소값과 상기 식별자 파라미터의 최대값과 최소값 사이의 차이값을 획득하고, 상기 기설정된 분할 모드에 따라 최소값 이외의 상기 식별자 파라미터의 값을 확정하며, 상기 식별자 파라미터의 값을 사용하여 상기 후보 값을 설정하는 방식; 중 적어도 하나의 방식을 통해 상기 식별자 파라미터를 사용하여 상기 계수 그룹의 크기의 후보 값을 구성하는 것을 특징으로 하는 이미지 디코딩 방법.
  61. 삭제
  62. 삭제
  63. 삭제
  64. 삭제
  65. 삭제
  66. 삭제
  67. 삭제
  68. 삭제
  69. 삭제
  70. 삭제
  71. 삭제
  72. 제 49 항에 있어서,
    상기 계수 그룹의 크기를 상기 제 1 디코딩 파라미터에 대응되는 계수 그룹의 크기로 설정하는 단계는,
    상기 양자화 파라미터의 값이 제 2 기설정 값과 동일한 경우, 상기 계수 그룹의 크기를 상기 제 2 기설정 값에 대응되는 계수 그룹의 크기로 설정하는 단계;
    또는, 상기 양자화 파라미터의 값이 제 1 기설정 값의 범위 내에 있는 경우, 상기 계수 그룹의 크기를 상기 제 1 기설정 값의 범위에 대응되는 계수 그룹의 크기로 설정하는 단계; 를 포함하는 것을 특징으로 하는 이미지 디코딩 방법.
  73. 삭제
  74. 제 49 항에 있어서,
    상기 비트 스트림을 파싱하여 상기 변환 계수의 스캐닝 모드를 확정하는 단계는,
    상기 비트 스트림 중의 데이터 유닛을 파싱하여 제 1 스캐닝 모드 파라미터를 획득하고, 상기 제 1 스캐닝 모드 파라미터에 따라 상기 변환 계수의 스캐닝 모드를 확정하는 것을 포함하고; 여기서, 상기 스캐닝 모드는 상기 변환 계수의 2 차원 행렬 중 요소에 대한 처리 순서이고; 상기 비트 스트림 중의 데이터 유닛은 적어도 하나의 파라미터 세트, 슬라이스 헤더, 블록 레이어 데이터 유닛 중 적어도 하나를 포함하는 것을 특징으로 하는 이미지 디코딩 방법.
  75. 제 74 항에 있어서,
    상기 제 1 스캐닝 모드 파라미터에 따라 상기 변환 계수의 스캐닝 모드를 확정하는 단계는,
    상기 제 1 스캐닝 모드 파라미터가 지시하는 스캐닝 모드를 상기 변환 계수의 스캐닝 모드로 사용하는 단계를 포함하는 것을 특징으로 하는 이미지 디코딩 방법.
  76. 삭제
  77. 제 75 항에 있어서,
    상기 제 1 스캐닝 모드 파라미터가 지시하는 스캐닝 모드를 상기 변환 계수의 스캐닝 모드로 사용하는 단계는,
    상기 제 1 스캐닝 모드 파라미터에 따라 후보 스캐닝 모드로부터 상기 변환 계수의 스캐닝 모드를 확정하는 것을 포함하는 것을 특징으로 하는 이미지 디코딩 방법.
  78. 삭제
  79. 삭제
  80. 제 77 항에 있어서,
    상기 후보 스캐닝 모드는 적어도 하나의 고정 스캐닝 모드; 상기 제 1 스캐닝 모드 파라미터를 사용하여 구성된 상기 후보 스캐닝 모드; 중 적어도 하나를 포함하는 것을 특징으로 하는 이미지 디코딩 방법.
  81. 삭제
  82. 삭제
  83. 삭제
  84. 삭제
  85. 제 74 항에 있어서,
    상기 제 1 스캐닝 모드 파라미터에 따라 상기 변환 계수의 스캐닝 모드를 확정하는 단계는,
    상기 제 1 스캐닝 모드 파라미터는 상기 디코딩 블록의 제 2 디코딩 파라미터를 포함하는 것;
    상기 제 2 디코딩 파라미터에 따라 상기 변환 계수의 스캐닝 모드를 확정하는 것을 포함하고,
    여기서 상기 제 2 디코딩 파라미터는 상기 디코딩 블록에 포함된 변환 블록의 크기, 상기 디코딩 블록의 예측모드, 상기 디코딩 블록에 포함된 변환 블록이 사용하는 변환 유형, 상기 디코딩 블록의 크기 중 적어도 하나를 포함하는 것을 특징으로 하는 이미지 디코딩 방법.
  86. 삭제
  87. 삭제
  88. 제 85 항에 있어서,
    상기 제 2 디코딩 파라미터에 따라 상기 변환 계수의 스캐닝 모드를 확정하는 단계는,
    상기 디코딩 블록의 예측모드가 제 2 기설정 모드인 경우, 상기 변환 계수의 스캐닝 모드를 상기 제 2 기설정 모드에 대응되는 스캐닝 모드로 설정하는 단계를 포함하는 것을 특징으로 하는 이미지 디코딩 방법.
  89. 삭제
  90. 제 85 항에 있어서,
    상기 제 2 디코딩 파라미터에 따라 상기 변환 계수의 스캐닝 모드를 확정하는 단계는,
    상기 디코딩 블록에 포함된 변환 블록이 사용하는 변환 유형이 제 2 변환 유형인 경우, 상기 변환 계수의 스캐닝 모드를 상기 제 2 변환 유형에 대응되는 스캐닝 모드로 설정하는 단계를 포함하는 것을 특징으로 하는 이미지 디코딩 방법.
  91. 삭제
  92. 제 85 항에 있어서,
    상기 제 2 디코딩 파라미터에 따라 상기 변환 계수의 스캐닝 모드를 확정하는 단계는,
    상기 디코딩 블록의 크기가 제 4 기설정 값과 동일한 경우, 상기 변환 계수의 스캐닝 모드를 상기 제 4 기설정 값에 대응되는 스캐닝 모드로 설정하는 단계를 포함하는 것을 특징으로 하는 이미지 디코딩 방법.
  93. 삭제
  94. 제 49 항에 있어서,
    상기 구문 요소는,
    0이 아닌 계수의 시작 위치를 지시하는 구문 요소;
    계수 그룹에 포함된 0이 아닌 계수를 지시하는 구문 요소;
    계수 그룹에서 0이 아닌 계수의 위치를 지시하는 구문 요소;
    계수 그룹에서 0이 아닌 계수의 값을 지시하는 구문 요소; 중 적어도 하나를 포함하는 것을 특징으로 하는 이미지 디코딩 방법.
  95. 제 49 항에 있어서,
    상기 변환 계수를 처리하여 변환 계수의 복원 값을 얻는 단계는,
    상기 변환 계수에 대해 스케일링(Scaling) 처리를 수행하는 것으로 판단하는 경우, 상기 변환 계수를 스케일링 처리하여 상기 변환 계수의 복원 값을 획득하는 단계;
    상기 변환 계수에 대해 스케일링 처리를 수행하지 않는 것으로 판단하는 경우, 상기 변환 계수를 사용하여 상기 변환 계수의 복원 값을 설정하는 단계를 포함하는 것을 특징으로 하는 이미지 디코딩 방법.
  96. 제 95 항에 있어서,
    상기 변환 계수를 처리하기 전에, 상기 이미지 디코딩 방법은,
    상기 비트 스트림을 파싱하여 상기 디코딩 블록의 예측 차이값의 복원 값을 구성하기 위해 사용되는 제 3 파라미터를 획득하는 단계;
    상기 제 3 파라미터에 따라 상기 변환 계수에 대해 스케일링 처리를 수행하는지 여부를 판단하는 단계를 더 포함하는 것을 특징으로 하는 이미지 디코딩 방법.
  97. 삭제
  98. 삭제
  99. 비트 스트림을 파싱하여 디코딩 블록의 예측값, 상기 디코딩 블록 중 변환 계수의 스캐닝 모드, 계수 그룹의 크기 및 변환 계수와 관련된 구문 요소의 값을 확정하도록 구성된 디코딩 모듈;
    상기 스캐닝 모드 및 상기 계수 그룹의 크기에 따라 상기 디코딩 블록 중의 계수 그룹을 처리하고, 상기 구문 요소를 상기 계수 그룹 중의 변환 계수로 전환하도록 구성된 전환 모듈;
    상기 변환 계수를 처리하여 변환 계수의 복원 값을 얻도록 구성된 처리 모듈;
    상기 변환 계수를 처리하고 처리 후의 데이터에 대해 적어도 한 번의 변환을 수행하여 상기 디코딩 블록의 예측 차이값을 얻도록 구성된 변환 모듈;
    상기 예측값과 상기 예측 차이값을 사용하여 상기 디코딩 블록의 복원 값을 확정하도록 구성된 계산 모듈; 을 포함하되,
    여기서, 상기 디코딩 모듈은 상기 비트 스트림을 파싱하여 상기 비트 스트림 중의 데이터 유닛으로부터 제 1 계수 그룹 파라미터를 획득하고, 상기 제 1 계수 그룹 파라미터에 따라 상기 계수 그룹의 크기를 확정하는 방식을 통해 상기 비트 스트림을 파싱하여 상기 디코딩 블록 중 변환 계수의 계수 그룹의 크기를 확정하며; 여기서, 상기 비트 스트림 중의 데이터 유닛은 적어도 하나의 파라미터 세트, 슬라이스 헤더, 블록 레이어 데이터 유닛 중 적어도 하나를 포함하며,
    여기서, 상기 제 1 계수 그룹 파라미터에는 상기 디코딩 블록의 제 1 디코딩 파라미터가 포함되고,
    여기서, 상기 디코딩 모듈은 상기 디코딩 블록의 제 1 디코딩 파라미터에 따라 상기 계수 그룹의 크기를 상기 제 1 디코딩 파라미터에 대응되는 계수 그룹의 크기로 설정하는 방식을 통해 상기 제 1 계수 그룹 파라미터에 따라 상기 계수 그룹의 크기를 확정하며, 여기서, 상기 제 1 디코딩 파라미터는 상기 디코딩 블록의 예측모드, 상기 디코딩 블록에 포함된 변환 블록이 사용하는 변환 유형, 양자화 파라미터 중 적어도 하나를 포함하고, 여기서, 상기 양자화 파라미터는 인코딩 블록이 인코딩되어 상기 디코딩 블록을 얻을 때 상기 예측 차이값에 대해 한 번 또는 다수 번의 변환을 수행하여 획득한 변환 데이터를 양자화하기 위한 파라미터인 것을 특징으로 하는 이미지 디코딩 장치.
  100. 삭제
  101. 삭제
  102. 삭제
KR1020217002590A 2018-06-27 2019-05-24 이미지 인코딩, 디코딩 방법 및 장치, 전자 설비 및 시스템 KR102569844B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201810681664.7 2018-06-27
CN201810681664.7A CN110650343B (zh) 2018-06-27 2018-06-27 图像的编码、解码方法及装置、电子设备及系统
PCT/CN2019/088325 WO2020001210A1 (zh) 2018-06-27 2019-05-24 图像的编码、解码方法及装置、电子设备及系统

Publications (2)

Publication Number Publication Date
KR20210024619A KR20210024619A (ko) 2021-03-05
KR102569844B1 true KR102569844B1 (ko) 2023-08-28

Family

ID=68985551

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217002590A KR102569844B1 (ko) 2018-06-27 2019-05-24 이미지 인코딩, 디코딩 방법 및 장치, 전자 설비 및 시스템

Country Status (6)

Country Link
US (1) US11647196B2 (ko)
EP (1) EP3817385A4 (ko)
JP (1) JP7271580B2 (ko)
KR (1) KR102569844B1 (ko)
CN (1) CN110650343B (ko)
WO (1) WO2020001210A1 (ko)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112913242B (zh) * 2020-07-24 2023-02-28 深圳市大疆创新科技有限公司 编码方法和编码装置
US11722678B2 (en) * 2020-08-25 2023-08-08 Tencent America LLC Method and apparatus for transform skip coefficients coding
WO2022063040A1 (zh) * 2020-09-27 2022-03-31 腾讯科技(深圳)有限公司 视频编解码方法、装置及设备
US11876990B2 (en) * 2021-07-13 2024-01-16 Mediatek Inc. Video residual decoding apparatus using storage device to store side information and/or state information for syntax element decoding optimization and associated method
US20230099292A1 (en) * 2021-09-29 2023-03-30 Malini MANOCHA Detection and management of dysfunctions in subterranean operations
CN116074499A (zh) * 2021-11-11 2023-05-05 杭州海康威视数字技术股份有限公司 一种视频编解码方法及装置
CN116600130A (zh) * 2022-01-19 2023-08-15 杭州海康威视数字技术股份有限公司 一种系数解码方法、装置、图像解码器及电子设备
CN116095310A (zh) * 2022-03-29 2023-05-09 杭州海康威视数字技术股份有限公司 图像编解码方法、装置、电子设备及存储介质
CN117156069B (zh) * 2023-11-01 2024-01-09 南通环典计算机技术有限公司 一种软件图像数据加密传输方法

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070230564A1 (en) * 2006-03-29 2007-10-04 Qualcomm Incorporated Video processing with scalability
EP2182732A1 (en) * 2008-10-28 2010-05-05 Panasonic Corporation Switching between scans in image coding
US8923390B2 (en) * 2009-06-19 2014-12-30 The Hong Kong University Of Science And Technology Scalar quantization using bit-stealing for video processing
US8929440B2 (en) * 2010-04-09 2015-01-06 Sony Corporation QP adaptive coefficients scanning and application
CN113556556A (zh) * 2010-04-13 2021-10-26 Ge视频压缩有限责任公司 显著性图和变换系数块的编码
US9049444B2 (en) * 2010-12-22 2015-06-02 Qualcomm Incorporated Mode dependent scanning of coefficients of a block of video data
CN102595113B (zh) * 2011-01-13 2014-06-04 华为技术有限公司 一种变换系数块的扫描方法、装置和系统
KR20120100836A (ko) * 2011-03-03 2012-09-12 한국전자통신연구원 변환 계수 스캔 방법 및 그 장치
CN102685503B (zh) * 2011-03-10 2014-06-25 华为技术有限公司 变换系数的编码方法、变换系数的解码方法,和装置
US8964849B2 (en) * 2011-11-01 2015-02-24 Blackberry Limited Multi-level significance maps for encoding and decoding
CA2773990C (en) 2011-11-19 2015-06-30 Research In Motion Limited Multi-level significance map scanning
AU2012200319B2 (en) * 2012-01-19 2015-11-26 Canon Kabushiki Kaisha Method, apparatus and system for encoding and decoding the significance map for residual coefficients of a transform unit
WO2013116874A1 (en) 2012-02-05 2013-08-08 General Instrument Corporation Method of determining binary codewords for transform coefficients
CN104272735B (zh) * 2013-01-16 2018-04-13 黑莓有限公司 针对视频的上下文自适应二进制熵编码的变换系数编码
CN105812804B (zh) * 2014-12-30 2018-09-28 浙江大华技术股份有限公司 一种确定rdoq过程中最优量化值的方法及装置
CN105872539B (zh) * 2015-02-08 2020-01-14 同济大学 图像编码方法和装置及图像解码方法和装置
US10334248B2 (en) 2015-05-29 2019-06-25 Qualcomm Incorporated Coding data using an enhanced context-adaptive binary arithmetic coding (CABAC) design
CN112272298B (zh) 2015-06-23 2023-07-18 联发科技(新加坡)私人有限公司 转换系数编解码的方法及装置
WO2016205999A1 (en) * 2015-06-23 2016-12-29 Mediatek Singapore Pte. Ltd. Adaptive coding group for image/video coding
US10616604B2 (en) * 2015-09-01 2020-04-07 Qualcomm Incorporated Coefficient level coding in video coding
KR102669632B1 (ko) * 2016-03-11 2024-05-28 디지털인사이트 주식회사 가변 크기의 양자화 계수 그룹을 이용한 비디오 코딩 방법 및 장치
CN109155857B (zh) * 2016-03-11 2023-05-30 数字洞察力有限公司 视频编码方法以及装置
US11228770B2 (en) * 2016-05-16 2022-01-18 Qualcomm Incorporated Loop sample processing for high dynamic range and wide color gamut video coding
CN117412044A (zh) * 2016-07-13 2024-01-16 韩国电子通信研究院 图像编码/解码方法和装置
CN110024399B (zh) * 2016-11-28 2024-05-17 韩国电子通信研究院 对图像编码/解码的方法和设备及存储比特流的记录介质

Also Published As

Publication number Publication date
US11647196B2 (en) 2023-05-09
CN110650343A (zh) 2020-01-03
CN110650343B (zh) 2024-06-07
EP3817385A4 (en) 2022-07-27
JP2021532624A (ja) 2021-11-25
WO2020001210A1 (zh) 2020-01-02
JP7271580B2 (ja) 2023-05-11
KR20210024619A (ko) 2021-03-05
US20210168369A1 (en) 2021-06-03
EP3817385A1 (en) 2021-05-05

Similar Documents

Publication Publication Date Title
KR102569844B1 (ko) 이미지 인코딩, 디코딩 방법 및 장치, 전자 설비 및 시스템
KR102610233B1 (ko) 변환 스킵 플래그를 이용한 영상 코딩 방법 및 장치
US9344722B2 (en) Scanning of prediction residuals in high efficiency video coding
US11909963B2 (en) Image encoding method, decoding method, encoder, and decoder
KR102616533B1 (ko) 변환 계수 레벨 코딩 방법 및 그 장치
CN110602509A (zh) 用于最末重要系数位置编码中的上下文减少的设备和方法
WO2012088459A1 (en) Transform coefficient scan
US20220116617A1 (en) Transform coefficient coding method and device therefor
US11245904B2 (en) Method for coding transform coefficient and device therefor
US11350101B2 (en) Image decoding method using residual information in image coding system, and device for same
CN114128274A (zh) 推导译码系统操作配置
CN113455005A (zh) 用于帧内子分区译码工具所产生的子分区边界的去块效应滤波器
CN114830667A (zh) 视频编解码中用于参考图片重采样的参考图片缩放比例
CN114667735A (zh) 基于变换的图像编译方法及其设备
JP2022016726A (ja) 画像処理装置および方法
JP7393366B2 (ja) 画像の符号化方法、復号化方法、エンコーダおよびデコーダ
CN114982240A (zh) 用于视频译码的多重变换集信令
KR20220065880A (ko) 아핀 모션 보상에서 dct 기반 보간 필터 및 향상된 쌍선형 보간 필터의 사용
CN114679583A (zh) 视频编码器、视频解码器及对应方法
WO2023044868A1 (zh) 视频编解码方法、设备、系统、及存储介质
CN113508587A (zh) 在视频编译系统中使用残差信息的视频解码方法及其设备

Legal Events

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