KR20210124171A - 양자화 행렬의 부호화 방법 및 복호화 방법과 이를 이용하는 장치 - Google Patents

양자화 행렬의 부호화 방법 및 복호화 방법과 이를 이용하는 장치 Download PDF

Info

Publication number
KR20210124171A
KR20210124171A KR1020210133691A KR20210133691A KR20210124171A KR 20210124171 A KR20210124171 A KR 20210124171A KR 1020210133691 A KR1020210133691 A KR 1020210133691A KR 20210133691 A KR20210133691 A KR 20210133691A KR 20210124171 A KR20210124171 A KR 20210124171A
Authority
KR
South Korea
Prior art keywords
quantization matrix
matrix
quantization
value
scaling
Prior art date
Application number
KR1020210133691A
Other languages
English (en)
Inventor
임성창
김휘용
이진호
최진수
김진웅
Original Assignee
한국전자통신연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국전자통신연구원 filed Critical 한국전자통신연구원
Publication of KR20210124171A publication Critical patent/KR20210124171A/ko
Priority to KR1020240024907A priority Critical patent/KR20240027661A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • H04N19/126Details of normalisation or weighting functions, e.g. normalisation matrices or variable uniform quantisers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • 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/103Selection of coding mode or of prediction mode
    • 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/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • 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/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/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/196Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
    • 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/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/196Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
    • H04N19/198Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters including smoothing of a sequence of encoding parameters, e.g. by averaging, by choice of the maximum, minimum or median value
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • H04N19/463Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

본 발명은 영상 부호화 방법에 관한 것으로서, 본 발명에 따른 영상 부호화 방법은 양자화에 사용되는 양자화 행렬을 결정하고 양자화하는 단계, 상기 양자화 행렬의 예측 방식을 결정하는 단계 및 상기 양자화 행렬의 예측 방식에 따라서 상기 양자화 행렬에 대한 정보를 부호화하는 단계를 포함하며, 상기 양자화 행렬의 예측 방식은 양자화 행렬 내의 계수 간 예측 방식과 양자화 행렬 복사 방식 중 어느 하나일 수 있다.

Description

양자화 행렬의 부호화 방법 및 복호화 방법과 이를 이용하는 장치{Methods And Apparatuses For Encoding and Decoding Quantization marix}
본 발명은 영상 부호화 및 복호화 기술에 관한 것으로서, 더 구체적으로는 양자화 행렬을 부호화/복호화하는 방법 및 장치에 관한 것이다.
최근 HD(High Definition) 해상도를 가지는 방송 서비스가 국내뿐만 아니라 세계적으로 확대되고 있다. 이에 따라서, 많은 사용자들이 고해상도, 고화질의 영상에 익숙해지고 있으며, 많은 기관들이 차세대 영상기기에 대한 개발에 박차를 가하고 있다.
HDTV와 더불어 HDTV의 4배 이상의 해상도를 갖는 UHD(Ultra High Definition)에 대한 관심이 증대되면서 보다 높은 해상도, 고화질의 영상에 대한 압축기술이 요구되고 있다.
영상 압축을 위해, 현재 픽처의 픽셀 정보를 예측에 의해 부호화할 수 있다. 예컨대, 시간적으로 이전 및/또는 이후의 픽처로부터 현재 픽처에 포함된 픽셀값을 예측하는 인터(inter) 예측 기술, 현재 픽처 내의 픽셀 정보를 이용하여 현재 픽처에 포함된 픽셀값을 예측하는 인트라(intra) 예측 기술이 적용될 수 있다.
또한, 출현 빈도가 높은 심볼(symbol)에 짧은 부호를 할당하고 출현 빈도가 낮은 심볼에 긴 부호를 할당하는 엔트로피 부호화 기술을 적용하여, 부호화 효율을 높이고 전송되는 정보량을 줄일 수 있다.
이때, 예측에 의해 생성된 잔차 블록에 대한 변환 계수의 양자화를 더 효과적으로 수행할 방법이 문제된다.
본 발명은 사용 가능한 변환 블록의 크기를 기반으로 양자화 행렬 부호화/복호화를 제한하는 방법 및 장치를 제공하는 것을 목적으로 한다.
본 발명은 또한, 시퀀스 혹은 픽처 혹은 슬라이스 내에서 변환 블록의 크기 혹은 양자화 행렬의 종류 별로 기본 양자화 행렬과 비-기본 양자화 행렬을 혼용해서 사용할 수 있는 부호화/복호화 방법 및 장치를 제공하는 것을 목적으로 한다.
본 발명은 또한, 참조 양자화 행렬 식별자에 기반하여 기본 양자화 행렬을 사용하는 부호화/복호화 방법 및 장치를 제공하는 것을 목적으로 한다.
또한, 본 발명은 참조 양자화 행렬이 존재할 경우에만 양자화 행렬 예측을 수행함으로써 부호화 효율을 높이는 부호화/복호화 방법 및 장치를 제공하는 것을 목적으로 한다.
또한, 본 발명은 DC 행렬 계수를 효과적으로 예측 부호화/복호화하는 방법 및 장치를 제공하는 것을 목적으로 한다.
또한, 본 발명은 부호화/복호화 시의 양자화 행렬 크기와 동일한 양자화 행렬로부터 양자화 행렬 예측을 수행하는 부호화/복호화 방법 및 장치를 제공하는 것을 목적으로 한다.
아울러, 본 발명은 양자화 행렬 내 첫 번째 계수를 기반으로 예측 부호화/복호화를 수행하는 방법 및 장치를 제공하는 것을 목적으로 한다.
본 발명의 일 실시형태는 영상 부호화 방법으로서, 양자화에 사용되는 양자화 행렬을 결정하고 양자화하는 단계, 상기 양자화 행렬의 예측 방식을 결정하는 단계 및 상기 양자화 행렬의 예측 방식에 따라서 상기 양자화 행렬에 대한 정보를 부호화하는 단계를 포함하며, 상기 양자화 행렬의 예측 방식은 양자화 행렬 내의 계수 간 예측 방식과 양자화 행렬 복사 방식 중 어느 하나일 수 있다.
본 발명에 의하면, 사용 가능한 변환 블록의 크기에 의해 양자화 행렬 부호화를 제한함으로써 부호화 효율을 향상시키고, 계산의 복잡도를 감소시킬 수 있다.
본 발명에 의하면, 시퀀스 혹은 픽처 혹은 슬라이스 내에서 변환 블록의 크기 혹은 양자화 행렬의 종류 별로 기본 양자화 행렬과 비-기본 양자화 행렬을 혼용해서 사용함으로써, 부호화 효율을 향상시키고, 부호화기에서 양자화 행렬 선택의 자유도를 증가시킬 수 있다.
본 발명에 의하면, 참조 양자화 행렬 식별자를 이용하여 기본 양자화 행렬 사용 여부를 부호화/복호화 하거나, 참조 양자화 행렬이 존재할 경우에만 양자화 행렬 예측을 수행함으로써, 부호화 효율을 향상시키고, 계산의 복잡도를 감소시키며, 부호화기에서 양자화 행렬 선택의 자유도를 증가시킬 수 있다.
본 발명에 의하면, DC 행렬 계수를 예측 부호화/복호화하거나, 부호화/복호화 시의 양자화 행렬 크기와 동일한 양자화 행렬로부터 양자화 행렬 예측을 수행함으로써 부호화 효율을 향상시키고, 계산의 복잡도를 감소시키며, 부호화기의 양자화 행렬 선택의 자유도를 증가시킬 수 있다.
또한, 본 발명에 의하면, 자주 발생하는 계수 값을 이용하여 양자화 행렬 내 첫 번째 계수의 부호화/복호화를 수행함으로써 부호화 효율을 향상시키고, 계산의 복잡도를 감소시킬 수 있다.
도 1은 본 발명이 적용되는 영상 부호화 장치의 일 실시예에 따른 구성을 나타내는 블록도이다.
도 2는 본 발명이 적용되는 영상 복호화 장치의 일 실시예에 따른 구성을 나타내는 블록도이다.
도 3은 하나의 유닛이 복수의 하위 유닛으로 분할되는 실시예를 개략적으로 나타내는 개념도이다.
도 4는 본 발명에 따른 영상 부호화 방법을 개략적으로 설명하는 순서도이다.
도 5는 양자화 행렬에 대한 정보를 복호화하고 이를 이용하여 복호화를 수행하는 복호화기 동작의 일 예를 개략적으로 설명하는 순서도이다.
도 6은 본 발명에 따라서 역양자화를 수행하는 방법의 일 예를 개략적으로 설명하는 순서도이다.
도 7은 파라미터 세트에 양자화 행렬이 존재하는 경우 양자화 행렬의 정보를 획득하여 역양자화를 수행하는 방법의 일 예를 개략적으로 설명하는 도면이다.
도 8은 파라미터 세트에 양자화 행렬이 존재하는 경우 양자화 행렬의 정보를 획득하여 역양자화를 수행하는 방법의 다른 예를 개략적으로 설명하는 도면이다.
이하, 도면을 참조하여 본 발명의 실시예에 대하여 구체적으로 설명한다. 본 명세서의 실시예를 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 명세서의 요지를 흐릴 수 있다고 판단되는 경우에는 해당 설명을 생략할 수도 있다.
본 명세서에서 어떤 구성 요소가 다른 구성 요소에 “연결되어” 있다거나 “접속되어” 있다고 언급된 때에는, 그 다른 구성 요소에 직접적으로 연결되어 있거나 또는 접속되어 있는 것을 의미할 수도 있고, 중간에 다른 구성 요소가 존재하는 것을 의미할 수도 있다. 아울러, 본 명세서에서 특정 구성을 “포함”한다고 기술하는 내용은 해당 구성 이외의 구성을 배제하는 것이 아니며, 추가적인 구성이 본 발명의 실시 또는 본 발명의 기술적 사상의 범위에 포함될 수 있음을 의미한다.
제1, 제2 등의 용어는 다양한 구성들을 설명하는데 사용될 수 있지만, 상기 구성들은 상기 용어에 의해 한정되지 않는다. 상기 용어들은 하나의 구성을 다른 구성으로부터 구별하는 목적으로 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성은 제2 구성으로 명명될 수 있고, 유사하게 제2 구성도 제1 구성으로 명명될 수 있다.
또한 본 발명의 실시예에 나타나는 구성부들은 서로 다른 특징적인 기능을 나타내기 위해 독립적으로 도시되는 것으로, 각 구성부들이 분리된 하드웨어나 하나의 소프트웨어 구성 단위로 이루어짐을 의미하지 않는다. 즉, 각 구성부는 설명의 편의상 각각의 구성부로 나열하여 포함한 것으로 각 구성부 중 적어도 두 개의 구성부가 하나의 구성부를 이루거나, 하나의 구성부가 복수 개의 구성부로 나뉘어져 기능을 수행할 수 있다. 각 구성부의 통합된 실시예 및 분리된 실시예도 본 발명의 본질에서 벗어나지 않는 한 본 발명의 권리 범위에 포함된다.
또한, 일부의 구성 요소는 본 발명에서 본질적인 기능을 수행하는 필수적인 구성 요소는 아니고 단지 성능을 향상시키기 위한 선택적 구성 요소일 수 있다. 본 발명은 단지 성능 향상을 위해 사용되는 구성 요소를 제외한 본 발명의 본질을 구현하는데 필수적인 구성부만을 포함하여 구현될 수 있고, 단지 성능 향상을 위해 사용되는 선택적 구성 요소를 제외한 필수 구성 요소만을 포함한 구조도 본 발명의 권리범위에 포함된다.
우선, 설명의 편의를 도모하고 발명을 이해를 돕기 위해, 본 명세서에서 사용되는 용어들에 대하여 간략하게 설명한다.
유닛(unit)은 영상 부호화 및 복호화의 단위를 의미한다. 다시 말하면, 영상 부호화/복호화에 있어서 부호화 단위 혹은 복호화 단위라 함은, 하나의 영상을 세분화된 유닛으로 분할하여 부호화 혹은 복호화 할 때 그 분할된 단위를 말한다. 블록(block), 매크로 블록, 부호화 유닛(coding unit) 또는 예측 유닛(prediction unit) 또는 변환 유닛(transform unit) 또는 부호화 블록(coding block) 또는 예측 블록(prediction block) 또는 변환 블록(transform block) 등으로 부를 수 있다. 하나의 유닛은 크기가 더 작은 하위 유닛으로 분할될 수 있다.
변환 유닛(transform unit)은 변환, 역변환, 양자화, 역양자화, 변환 계수 부호화/복호화와 같이 잔차 블록(residual block)의 부호화/복호화를 수행함에 있어 기본 유닛 혹은 단위 유닛이며, 하나의 변환 유닛은 분할되어 크기가 다수의 작은 변환 유닛으로 분할될 수 있다. 또한, 변환 블록과 동일한 의미로 사용될 수 있으며, 휘도와 색차 신호에 대한 변환 블록에 관련된 구문 요소(syntax element)가 포함된 형태를 변환 유닛이라 지칭할 수도 있다.
양자화 행렬(quantization matrix)은 영상의 주관적 화질 혹은 객관적 화질을 향상시키기 위해서 양자화 혹은 역양자화 과정에서 이용되는 행렬을 의미한다. 양자화 행렬은 스케일링 리스트(scaling list)라고도 불린다.
양자화/역양자화에 사용되는 양자화 행렬은 비트스트림(bitstream)으로 전송될 수도 있고, 부호화기 및/혹은 복호화기가 이미 보유한 기본 행렬(default matrix)이 사용될 수도 있다. 전송되는 양자화 행렬의 정보는 시퀀스 파라미터 세트(SPS: sequence parameter set) 또는 픽처 파라미터 세트(PPS: picture parameter set)을 통해 양자화 행렬의 크기 혹은 양자화 행렬이 적용되는 변환 블록 크기 별로 일괄 전송될 수 있다. 예컨대, 예컨대, 4x4 변환 블록을 위한 4x4 양자화 행렬들이 전송되고, 8x8 변환 블록을 위한 8x8 행렬들이 전송되고, 16x16 변환 블록을 위한 16x16 행렬들이 전송되고, 32x32 변환 블록을 위한 32x32 행렬들이 전송될 수 있다.
현재 블록에 적용되는 양자화 행렬은 (1) 동일한 크기의 양자화 행렬을 복사하여 획득될 수도 있고, (2) 양자화 행렬 내 이전 행렬 계수(matrix coefficient)로부터 예측에 의해 생성될 수도 있다. 동일한 크기의 행렬은 이전에 부호화 혹은 복호화 혹은 사용된 양자화 행렬일 수도 있고, 참조 양자화 행렬일 수도 있으며 기본 양자화 행렬일 수도 있다. 혹은 이전에 부호화 혹은 복호화 혹은 사용된 양자화 행렬, 참조 양자화 행렬, 기본 양자화 행렬 중 적어도 둘을 포함하는 조합으로부터 선택적으로 결정될 수도 있다.
파라미터 세트(parameter set)는 비트스트림 내의 구조 중 헤더 정보에 해당하며, 시퀀스 파라미터 세트, 픽처 파라미터 세트, 적응 파라미터 세트(adaptation parameter set) 등을 통칭하는 의미를 가진다.
양자화 매개변수(quantization parameter)는 양자화 및 역양자화에서 사용되는 값으로서, 양자화 매개변수는 양자화 스텝 크기(step size)에 매핑된 값일 수 있다.
기본 행렬은 부호화기 및/혹은 복호화기에서 미리 정의되어 있는 소정의 양자화 행렬을 의미할 수 있으며, 본 명세서에서 후술될 기본 양자화 행렬은 기본 행렬과 동일한 의미로 사용될 수 있다. 비-기본 행렬(non-default matrix)은 부호화기 및/혹은 복호화기에서 미리 정의되지 않고, 부호화기에서 복호화기로 전송되는 즉, 사용자에 의해서 전송/수신되는 양자화 행렬을 의미할 수 있으며, 본 명세서에서 후술될 비-기본 양자화 행렬은 비-기본 행렬과 동일한 의미로 사용될 수 있다.
도 1은 본 발명이 적용되는 영상 부호화 장치의 일 실시예에 따른 구성을 나타내는 블록도이다.
도 1을 참조하면, 상기 영상 부호화 장치(100)는 움직임 예측부(111), 움직임 보상부(112), 인트라 예측부(120), 스위치(115), 감산기(125), 변환부(130), 양자화부(140), 엔트로피 부호화부(150), 역양자화부(160), 역변환부(170), 가산기(175), 필터부(180) 및 참조 영상 버퍼(190)를 포함한다.
영상 부호화 장치(100)는 입력 영상에 대해 인트라(intra) 모드 또는 인터(inter) 모드로 부호화를 수행하고 비트스트림을 출력할 수 있다. 인트라 예측은 화면 내 예측, 인터 예측은 화면 간 예측을 의미한다. 인트라 모드인 경우 스위치(115)가 인트라로 전환되고, 인터 모드인 경우 스위치(115)가 인터로 전환될 수 있다. 영상 부호화 장치(100)는 입력 영상의 입력 블록에 대한 예측 블록을 생성한 후, 입력 블록과 예측 블록의 차분을 부호화할 수 있다. 이때, 입력 영상은 원 영상(original picture)를 의미할 수 있다.
인트라 모드인 경우, 인트라 예측부(120)는 현재 블록 주변의 이미 부호화된 블록의 픽셀값을 이용하여 공간적 예측을 수행하여 예측 블록을 생성할 수 있다.
인터 모드인 경우, 움직임 예측부(111)는, 움직임 예측 과정에서 참조 영상 버퍼(190)에 저장되어 있는 참조 영상에서 입력 블록과 가장 매치가 잘 되는 영역을 찾아 움직임 벡터를 구할 수 있다. 움직임 보상부(112)는 움직임 벡터를 이용하여 움직임 보상을 수행함으로써 예측 블록을 생성할 수 있다. 여기서, 움직임 벡터는 인터 예측에 사용되는 2차원 벡터이며, 현재 블록과 참조 영상 내 블록 사이의 오프셋을 나타낼 수 있다.
감산기(125)는 입력 블록과 생성된 예측 블록의 차분에 의해 잔차 블록을 생성할 수 있다. 변환부(130)는 잔차 블록에 대해 변환(transform)을 수행하여 변환 계수(transform coefficient)를 출력할 수 있다. 그리고 양자화부(140)는 입력된 변환 계수를 양자화 매개변수와 양자화 행렬 중 적어도 하나를 이용하여 양자화하여 양자화된 계수(quantized coefficient)를 출력할 수 있다. 이때, 양자화 행렬은 부호화기에 입력되어질 수 있으며, 입력되어진 양자화 행렬이 부호화기에서 사용되기로 결정될 수 있다.
엔트로피 부호화부(150)는, 양자화부(140)에서 산출된 값들 또는 부호화 과정에서 산출된 부호화 파라미터 값 등을 기초로 엔트로피 부호화를 수행하여 비트스트림(bit stream)을 출력할 수 있다. 엔트로피 부호화가 적용되는 경우, 높은 발생 확률을 갖는 심볼(symbol)에 적은 수의 비트가 할당되고 낮은 발생 확률을 갖는 심볼에 많은 수의 비트가 할당되어 심볼이 표현됨으로써, 부호화 대상 심볼들에 대한 비트열의 크기가 감소될 수 있다. 따라서 엔트로피 부호화를 통해서 영상 부호화의 압축 성능이 높아질 수 있다. 엔트로피 부호화부(150)는 엔트로피 부호화를 위해 지수-골롬 코드(Exponential-Golomb Code), CAVLC(Context-Adaptive Variable Length Coding), CABAC(Context-Adaptive Binary Arithmetic Coding)과 같은 부호화 방법을 사용할 수 있다.
도 1의 실시예에 따른 영상 부호화 장치는 인터 예측 부호화, 즉 화면 간 예측 부호화를 수행하므로, 현재 부호화된 영상은 참조 영상으로 사용되기 위해 복호화되어 저장될 필요가 있다. 따라서 양자화된 계수는 역양자화부(160)에서 역양자화되고 역변환부(170)에서 역변환된다. 역양자화 및 역변환된 계수는 복원된 잔차 블록이 되어 가산기(175)를 통해 예측 블록과 더해지고 복원 블록이 생성된다.
복원 블록은 필터부(180)를 거치고, 필터부(180)는 디블록킹 필터(deblocking filter), SAO(Sample Adaptive Offset), ALF(Adaptive Loop Filter) 중 적어도 하나 이상을 복원 블록 또는 복원 픽처에 적용할 수 있다. 필터부(180)는 인루프(in-loop) 필터로 불릴 수도 있다. 디블록킹 필터는 블록 간의 경계에 생긴 블록 왜곡을 제거할 수 있다. SAO는 코딩 에러를 보상하기 위해 픽셀값에 적정 오프셋(offset) 값을 더해줄 수 있다. ALF는 복원된 영상과 원래의 영상을 비교한 값을 기초로 필터링을 수행할 수 있다. 필터부(180)를 거친 복원 블록은 참조 영상 버퍼(190)에 저장될 수 있다.
도 2는 본 발명이 적용되는 영상 복호화 장치의 일 실시예에 따른 구성을 나타내는 블록도이다.
도 2를 참조하면, 상기 영상 복호화 장치(200)는 엔트로피 복호화부(210), 역양자화부(220), 역변환부(230), 인트라 예측부(240), 움직임 보상부(250), 가산기(255), 필터부(260) 및 참조 영상 버퍼(270)를 포함한다.
영상 복호화 장치(200)는 부호화기에서 출력된 비트스트림을 입력 받아 인트라 모드 또는 인터 모드로 복호화를 수행하고 재구성된 영상, 즉 복원 영상을 출력할 수 있다. 인트라 모드인 경우 스위치가 인트라로 전환되고, 인터 모드인 경우 스위치가 인터로 전환될 수 있다. 영상 복호화 장치(200)는 입력 받은 비트스트림으로부터 복원된 잔차 블록(reconstructed residual block)을 얻고 예측 블록을 생성한 후 복원된 잔차 블록과 예측 블록을 더하여 재구성된 블록, 즉 복원 블록을 생성할 수 있다.
엔트로피 복호화부(210)는, 입력된 비트스트림을 확률 분포에 따라 엔트로피 복호화하여, 양자화된 계수(quantized coefficient) 형태의 심볼을 포함한 심볼들을 생성할 수 있다. 엔트로피 복호화 방법은 상술한 엔트로피 부호화 방법과 유사하다.
엔트로피 복호화 방법이 적용되는 경우, 높은 발생 확률을 갖는 심볼에 적은 수의 비트가 할당되고 낮은 발생 확률을 갖는 심볼에 많은 수의 비트가 할당되어 심볼이 표현됨으로써, 각 심볼들에 대한 비트열의 크기가 감소될 수 있다.
양자화된 계수는 역양자화부(220)에서 양자화 매개변수를 이용해서 역양자화되고 역변환부(230)에서 역변환되며, 양자화된 계수가 역양자화/역변환된 결과, 복원된 잔차 블록이 생성될 수 있다.
역양자화에 사용되는 양자화 행렬은 스케일링 리스트라고도 불린다. 역양자화부(220)는 양자화된 계수에 양자화 행렬을 적용하여 역양자화된 계수를 생성할 수 있다.
이때 역양자화부(220)는 부호화기에서 적용된 양자화에 대응하여 역양자화를 수행할 수 있다. 예컨대, 역양자화부(220)는 부호화기에서 적용된 양자화 행렬을 양자화된 계수에 역으로 적용하여 역양자화를 수행할 수 있다.
영상 복호화 장치(200)에서 역양자화에 사용되는 양자화 행렬은 비트스트림으로부터 수신될 수도 있고, 부호화기 및/혹은 복호화기가 이미 보유한 기본 행렬이 사용될 수도 있다. 전송되는 양자화 행렬의 정보는 시퀀스 파라미터 세트 또는 픽처 파라미터 세트를 통해 양자화 행렬 크기 혹은 양자화 행렬이 적용되는 변환 블록 크기 별로 일괄 수신될 수 있다. 예컨대, 4x4 변환 블록을 위한 4x4 양자화 행렬들이 수신되고, 8x8 변환 블록을 위한 8x8 행렬들이 수신되고, 16x16 변환 블록을 위한 16x16 행렬들이 수신되고, 32x32 변환 블록을 위한 32x32 행렬들이 수신될 수 있다.
인트라 모드인 경우, 인트라 예측부(240)는 현재 블록 주변의 이미 복호화된 블록의 픽셀값을 이용하여 공간적 예측을 수행하여 예측 블록을 생성할 수 있다. 인터 모드인 경우, 움직임 보상부(250)는 움직임 벡터 및 참조 영상 버퍼(270)에 저장되어 있는 참조 영상을 이용하여 움직임 보상을 수행함으로써 예측 블록을 생성할 수 있다.
복원된 잔차 블록과 예측 블록은 가산기(255)를 통해 더해지고, 더해진 블록은 필터부(260)를 거칠 수 있다. 필터부(260)는 디블록킹 필터, SAO, ALF 중 적어도 하나 이상을 복원 블록 또는 복원 픽처에 적용할 수 있다. 필터부(260)는 재구성된 영상, 즉 복원 영상을 출력할 수 있다. 복원 영상은 참조 영상 버퍼(270)에 저장되어 인터 예측에 사용될 수 있다.
한편, 블록 분할 정보에는 유닛의 깊이(depth)에 관한 정보가 포함될 수 있다. 깊이 정보는 유닛이 분할되는 회수 및/또는 정도를 나타낼 수 있다.
도 3은 하나의 유닛이 복수의 하위 유닛으로 분할되는 실시예를 개략적으로 나타내는 개념도이다.
하나의 유닛 혹은 블록은 트리 구조(tree structure)를 기초로 깊이 정보를 가지고 계층적으로 분할될 수 있다. 각각의 분할된 하위 유닛은 깊이 정보를 가질 수 있다. 상기 깊이 정보는 유닛이 분할된 회수 및/또는 정도를 나타내므로, 상기 하위 유닛의 크기에 관한 정보를 포함할 수도 있다.
도 3의 310을 참조하면, 가장 상위 노드는 루트 노드(root node)로 불릴 수 있고, 가장 작은 깊이 값을 가질 수 있다. 이 때, 가장 상위 노드는 레벨 0의 깊이를 가질 수 있으며, 분할되지 않은 최초의 유닛을 나타낼 수 있다.
레벨 1의 깊이를 갖는 하위 노드는 최초 유닛이 한 번 분할된 유닛을 나타낼 수 있으며, 레벨 2의 깊이를 갖는 하위 노드는 최초의 유닛이 두 번 분할된 유닛을 나타낼 수 있다. 예를 들어, 도 3의 320에서 노드 a에 대응하는 유닛 a는 최초 유닛에서 한 번 분할된 유닛이고, 레벨 1의 깊이를 가질 수 있다.
레벨 3의 리프 노드(leaf node)는 최초 유닛이 3번 분할된 유닛을 나타낼 수 있다. 예를 들어, 도3의 320에서 노드 d에 대응하는 유닛 d는 최초 유닛에서 세 번 분할된 유닛이고, 레벨 3의 깊이를 가질 수 있다. 따라서, 가장 하위 노드인 레벨 3의 리프 노드는 가장 깊은 깊이를 가질 수 있다.
지금까지 개략적인 부호화/복호화 방법을 설명하였다. 부호화/복호화 과정의 양자화 및 역양자화 과정에서 이용되는 양자화 행렬 부호화/복호화 방법은, 부호화/복호화의 다른 과정과 마찬가지로 부호화 효율에 큰 영향을 미친다. 따라서, 부호화 효율을 고려하여 양자화/역양자화의 개선을 도모할 필요가 있다.
구체적으로, 종래에는 사용 가능한 변환의 최소 크기와 최대 크기를 고려하지 않고, 모든 변환에 대한 양자화 행렬을 부호화/복호화했다. 또한, 종래에는 시퀀스 혹은 픽처 혹은 슬라이스 내에서 변환 크기 혹은 양자화 행렬 종류 별로 기본 행렬과 비 기본 행렬을 혼용해서 사용하지 않고 일률적으로 양자화 행렬을 적용하기 때문에 부호화기에서 양자화 행렬 선택의 자유도가 낮은 단점이 있고, 부호화/복호화하지 않아도 되는 기본 행렬을 부호화해서 보내야 하기 때문에 부호화 효율이 저하되는 단점이 있다.
이처럼 종래의 방법에 의하면, 양자화 행렬의 적용에 있어서 자유도가 낮고 부호화 효율도 높지 않았을 뿐만 아니라 복잡도도 높았다.
따라서, 양자화/역양자화에 있어서 부호화 효율을 높이고 복잡도를 줄이기 위해 양자화 행렬을 효과적으로 사용하는 방법을 고려할 필요가 있다.
도 4는 본 발명에 따른 영상 부호화 방법을 개략적으로 설명하는 순서도이다.
도 4를 참조하면, 부호화기는 현재 시퀀스 혹은 픽처의 변환 유닛 크기에 관한 정보를 결정하고 부호화한다(S410).
변환 유닛의 크기 정보는 변환 유닛의 최소 크기와 최대 크기 중 적어도 하나 이상을 의미한다. 부호화기는 영상 부호화시 변환 유닛의 최소 크기와 최대 크기를 결정할 수 있다.
예컨대, 부호화기는 정방형(square) 변환 유닛의 최소 크기를 4x4 블록으로 결정하거나, 최대 크기를 32x32 블록으로 결정할 수 있다. 또한, 부호화기는 정방형 변환 유닛의 최소 크기와 최대 크기를 각각 4x4 블록과 32x32 블록으로 결정할 수도 있다. 정방형 변환 유닛의 최소 크기 및 최대 크기에 따라서 부호화를 수행할 수 있다.
부호화기는 결정된 변환 유닛 크기 정보를 비트스트림에 엔트로피 부호화할 수 있다. 예컨대, 부호화기는 결정된 변환 유닛 크기 정보를 비트스트림 내의 파라미터 세트에 부호화할 수 있다.
상술한 바와 같이 변환 유닛 크기 정보는 변환 유닛의 최소 크기와 최대 크기 중 적어도 하나 이상에 관한 정보를 의미한다. 따라서, 부호화기는 변환 유닛 크기 정보로서 변환 유닛의 최소 크기와 최대 크기에 관한 정보를 비트스트림에 부호화할 수 있다. 이때, 변환 유닛의 최대 크기는 변환 유닛의 최소 크기와의 차이값을 이용하여 특정될 수 있다.
표 1은 비트스트림의 시퀀스 파라미터 세트에 엔트로피 부호화된 변환 유닛 크기 정보의 예를 개략적으로 나타낸 것이다.
<표 1>
Figure pat00001
표 1에서 예시한 구문 요소와 같이, 정방형 변환 유닛의 최소 가로 혹은 세로 크기에 대해 Log2 함수를 적용하여 Log2MinTrafoSize을 계산한 후, Log2MinTrafoSize에 2를 감산한 값을 log2_min_transform_block_size_minus2을 이용하여 특정할 수 있다. 또한, 정방형 변환 유닛의 최대 가로 혹은 세로 크기에 Log2 함수를 적용하여 Log2MaxTrafoSize을 계산한 후, Log2MaxTrafoSize와 Log2MinTrafoSize의 차이 값을 log2_diff_max_min_transform_block_size를 이용하여 특정할 수 있다. 부호화기는 구문 요소인 log2_min_transform_block_size_minus2와 log2_diff_max_min_transform_block_size 를 비트스트림에 부호화하여 복호화기로 전송할 수 있다. 다시 말하면, 부호화기는 log2_min_transform_block_size_minus2와 log2_diff_max_min_transform_block_size 가 지시하는 값을 부호화하여 비트스트림으로 전송할 수 있다.
부호화기는 양자화 행렬 정보를 부호화할 수 있다(S420). 부호화기는 (1) 양자화 행렬의 사용 여부 정보, (2) 양자화 행렬의 존재(present) 유무 정보, (3) 양자화 행렬의 부호화 여부 및 기본 행렬 사용 여부, (4) 양자화 행렬 예측 부호화 방법과 종류, (5) 참조 양자화 행렬 식별자, 혹은 (6) 양자화 행렬 내에서 이전에 부호화된 양자화 행렬 계수 값과 부호화 대상 양자화 행렬 계수 값의 차이 값 중 적어도 하나 이상을 포함하는 양자화 행렬 정보를 부호화한다.
이때, 부호화기는 변환 유닛의 크기에 관한 정보를 기반으로 양자화 행렬 정보를 부호화할 수도 있다.
이하, 도면과 표를 참조하여 양자화 행렬 정보의 부호화 방법에 관하여 구체적으로 설명한다.
양자화 행렬 정보는 부호화기에서 결정된 혹은 사용된 방법을 지시하게 된다. 예컨대, 부호화기는 양자화 행렬의 사용 여부에 대해 결정한 후, 양자화 행렬 사용 여부 정보를 파라미터 세트에 부호화할 수 있다. 따라서, 부호화된 양자화 행렬 사용 여부 정보는 부호화기가 결정한 양자화 행렬 사용 여부를 지시하게 된다.
표 2는 양자화 행렬의 사용 여부 정보를 시퀀스 파라미터에 부호화한 예를 나타낸 것이다.
<표 2>
Figure pat00002
표 2의 신택스 예와 같이, 부호화기는 양자화 행렬 사용 여부 정보인 scaling_list_enabled_flag를 시퀀스 파라미터 세트에 부호화하여 복호화기로 전송할 수 있다. 이때, scaling_list_enabled_flag의 값이 1이면 시퀀스 전체에 대한 변환 계수의 역양자화(dequantization)/스케일링(scaling)에서 양자화 행렬을 사용한다는 것을 지시하며, scaling_list_enabled_flag의 값이 0이면 변환 계수의 역양자화/스케일링에서 양자화 행렬을 사용하지 않는다는 것을 지시할 수 있다. 여기서, 신택스는 구문 요소를 의미할 수 있다.
부호화기는 양자화 행렬의 존재 유무에 대해 결정한 후, 양자화 행렬의 존재 유무 정보를 파라미터 세트에 부호화할 수 있다.
표 3은 양자화 행렬의 존재 유무 정보를 파라미터 세트에 부호화하는 예를 나타낸 것이다.
<표 3>
Figure pat00003
표 3의 신택스 예와 같이, 부호화기는 양자화 행렬의 존재 유무 정보인 aps_scaling_list_data_present_flag를 파라미터 세트에 부호화할 수 있다. 표 3에서는 양자화 행렬의 존재 유무 정보를 적응 파라미터 세트에 부호화하는 경우를 예시하였으나, 본 발명은 이에 한정하지 않으며, 부호화기는 다른 파라미터 세트에 양자화 행렬의 존재 유무 정보를 부호화할 수도 있다.
표 3에서, aps_scaling_list_data_present_flag의 값이 1이면 적응 파라미터 세트에 양자화 행렬이 존재하는 것을 지시하며, aps_scaling_list_data_present_flag의 값이 0이면 적응 파라미터 세트에 양자화 행렬이 존재하지 않는 것을 지시한다. 만약, scaling_list_enabled_flag가 1이고 aps_scaling_list_data_present_flag가 0이면 기본 행렬이 역양자화 시에 사용되는 것을 의미할 수 있다. 또한, 양자화 행렬의 존재 유무 정보는 서로 다른 파라미터 세트에 존재할 수 있고, 예를 들어 시퀀스에서 양자화 행렬의 존재 유무를 나타내는 sps_scaling_list_data_present_flag와 픽처에서 양자화 행렬의 존재 유무를 나타내는 pps_scaling_list_data_present_flag가 사용되는 경우, sps_scaling_list_data_present_flag가 1이고 pps_scaling_list_data_present_flag가 0이면 시퀀스에 해당하는 양자화 행렬이 양자화/역양자화 시에 사용될 수 있다. 즉, 여러 파라미터 세트에서 양자화 행렬이 전송되고 일부 파라미터 세트에 양자화 행려이 존재하지 않는 경우, 존재하거나 활성화(active)된 파라미터 세트에 존재하는 양자화 행렬을 양자화/역양자화 시에 사용될 수 있다. 상기 내용은 후술될 실시예 중 양자화 행렬의 존재 유무 정보를 부호화/복호화하는 내용에도 적용될 수 있다.
부호화기는 양자화 행렬의 부호화 여부 및 기본 행렬의 사용 여부를 결정한 후, 양자화 행렬의 부호화 여부 및 기본 행렬 사용 여부에 관한 정보를 파라미터 세트에 부호화할 수 있다.
표 4는 양자화 행렬의 부호화 여부 및 기본 행렬 사용 여부에 관한 정보를 파라미터 세트에 부호화하는 일 예를 나타낸 것이다.
<표 4>
Figure pat00004
부호화기는 표 4의 예와 같이, 양자화 행렬의 부호화 여부 및 기본 행렬 사용 여부 정보인 use_default_scaling_list_flag를 적응 파라미터 세트에 부호화할 수 있다. use_default_scaling_list_flag의 값이 1이면 양자화 행렬이 부호화되지 않고, 모든 양자화 행렬 계수 값은 부호화기 및/혹은 복호화기에서 미리 정해진 기본 행렬 계수 값과 동일하게 결정한다. use_default_scaling_list_flag의 값이 0이면 양자화 행렬이 부호화되고, 부호화기 및/혹은 복호화기에서 미리 정해진 기본 행렬을 사용하지 않는다.
표 4에서는 use_default_scaling_list_flag를 적응 파라미터 세트에 부호화하는 경우를 설명하였으나, 이는 설명의 편의를 위한 일 예로서, use_default_scaling_list_flag는 그 외의 파라미터 세트에 부호화 될 수도 있다.
양자화 행렬의 정보는 변환 유닛의 크기 혹은 변환 블록의 크기 및 부호화 모드 및 색 성분을 고려하여 결정될 수 있다. 또한, 양자화 행렬의 정보는 해당 정보가 휘도 성분(Y, luma)에 대한 것인지 색차 성분(Cb, Cr, chroma)에 대한 것인지도 지시할 수 있다.
예컨대, 부호화기는 양자화 행렬의 크기에 대응하는 정보인 SizeID와 각 양자화 행렬 종류에 대응하는 정보인 MatrixID을 이용하여 양자화 행렬의 부호화, 기본 행렬 사용 여부, 예측 부호화 방법 중 적어도 하나 이상을 결정한다. 이때, SizeID는 변환 유닛의 크기에 대응하는 양자화 행렬의 정보 혹은 변환 블록의 크기에 대응하는 양자화 행렬의 정보로 해석될 수도 있다. 그리고, 본 명세서에서 사용되는 SizeID는 sizeID, sizeId와 동일하며, MatrixID는 matrixID, matrixId와 동일하다.
이때, 부호화기는 부호화기 및/혹은 복호화기에 저장된 테이블을 이용할 수도 있다.
표 5는 변환 블록의 크기 혹은 변환 블록에 대응하는 양자화 행렬의 크기를 지시하는데 이용되는 테이블의 일 예를 나타낸 것이다.
<표 5>
Figure pat00005
표 5의 예에서, SizeID 값은 변환 유닛의 크기, 변환 블록의 크기 혹은 양자화 행렬의 크기를 특정한다.
표 6은 양자화 행렬이 사용되는 블록의 부호화 모드 및 색 성분에 매핑하는 양자화 행렬 종류에 대한 테이블의 일 예를 나타낸 것이다.
<표 6>
Figure pat00006
표 6의 예에서 MatrixID 값은 양자화 행렬이 사용되는 부호화 모드(coding mode) 및 색 성분(color component)를 특정하는 양자화 행렬의 종류를 나타내는 것일 수 있다. 이때, 부호화 모드는 예측 모드(prediction mode)를 의미할 수 있다.
표 7과 표 8은 표 5 및 표 6에서 결정되는 SizeID와 MatrixID를 기반으로 기본 양자화 행렬을 특정하는데 이용되는 기본 양자화 행렬 테이블의 일 예이다. 여기서, 테이블 내의 각 값은 ScalingList[SizeID][MatrixID][i]에 의해 특정되어지는 값을 의미한다.
<표 7>
Figure pat00007
<표 8>
Figure pat00008
표 7은 SizeID의 값이 0(4x4 블록)인 기본 양자화 행렬에 대한 것이며, 표 8은 SizeID의 값이 1(8x8 블록), 2(16x16 블록), 3(32x32 블록)인 기본 양자화 행렬에 대한 것이다. 표 7과 표 8에서 SizeID와 MatrixID의 값은 표 5 및 표 6에 의해 특정되는 바와 같다.
표 7과 표 8에서 i는 양자화 행렬 내 각 계수 위치를 특정한다. 양자화 행렬의 경우, 16x16 블록 또는 32x32 블록에 대한 양자화 행렬의 경우에 16x16 블록 및 32x32 블록 전체에 대해 양자화 행렬 값을 특정하지 않고 8x8 블록에 대해서만 양자화 행렬 계수를 특정한 후 특정되지 않은 계수는 8x8 블록 값에 기반하여 유도하여 사용할 수도 있다. 표 8의 예도 8x8 블록 단위로 기본 양자화 행렬을 특정하는 예를 나타내고 있다. 16x16 블록 또는 32x32 블록에 대한 양자화 행렬의 계수(quantization matrix coefficient)는 8x8 블록 단위로 저장된 양자화 행렬로부터 보간되어 유도되거나 소정의 방식으로 유도될 수 있다. 8x8 양자화 행렬로부터 16x16 또는 32x32 양자화 행렬을 보간을 통해 유도하는 경우, DC 위치의 양자화 행렬 계수는 보간된 값을 사용하지 않고 별도의 값을 사용할 수 있다.
한편, 사용 가능한 변환 유닛의 최소 크기와 최대 크기를 고려하여 양자화 행렬을사용하지 않으면, 모든 크기의 변환 유닛에 대한 양자화 행렬을 부호화해야 한다. 따라서, 부호화 효율이 저하되며, 계산 복잡도가 증가할 수 있다.
따라서, 부호화기는 변환 유닛의 크기를 고려하여 양자화 행렬에 대한 정보를 부호화할 수 있다. 예컨대, 부호화기는 SizeID를 변환 유닛 크기 정보 중 최소 크기와 최대 크기에 따라 제약할 수 있다.
부호화기는 제약된 SizeID를 이용하여 양자화 행렬의 부호화, 기본 행렬 사용 여부를 지시하는 정보의 부호화, 예측 부호화 방법의 종류를 지시하는 정보의 부호화 중 적어도 하나 이상을 수행할 수 있다.
표 9은 SizeID를 제약하여 양자화 행렬의 부호화를 수행하는 경우에 이용되는 신택스 구조의 일 예를 나타낸 것이다.
<표 9>
Figure pat00009
표 9의 예와 같이, 부호화기는 SizeID를 변환 유닛 크기 정보 중 최소 크기와 최대 크기에 따라 제약하여, 특정한 변환 유닛 크기들에 대해서만 양자화 행렬, 기본 행렬 사용 여부, 예측 부호화 방법의 종류 중 적어도 하나 이상에 대한 정보의 부호화를 수행할 수 있다.
예컨대, Log2MinTrafoSize의 값이 3이고 Log2MaxTrafoSize의 값이 4이면, 8x8 변환 유닛부터 16x16 변환 유닛에 해당하는 양자화 행렬의 부호화, 기본 행렬의 사용 여부 정보의 부호화, 예측 부호화 방법 종류에 관한 정보의 부호화 중 적어도 하나 이상을 수행할 수 있다.
한편, 표 9의 예에서, use_default_scaling_list_flag는 부호화되지 않을 수 있다.
또한, SizeID를 변환 유닛 크기 정보 중 최대 크기와 최소 크기의 차이 값에 따라 제약하여 양자화 행렬, 기본 행렬 사용 여부, 예측 부호화 방법의 종류 중 적어도 하나 이상의 정보에 대한 부호화를 수행할 수 있다.
표 10은 SizeID를 변환 유닛 크기 정보 중 최대 크기와 최소 크기의 차이 값에 따라 제약하여 양자화 행렬에 관한 정보들을 부호화하는 경우에 이용되는 신택스 구조의 일 예를 개략적으로 나타낸 것이다.
<표 10>
Figure pat00010
표 10의 신택스 예에서는 변환 유닛 크기 정보 중 최대 크기와 최소 크기의 차이 값에 따라 SizeID를 제약한다. 부호화기는 변환 유닛 크기 정보 중 최대 크기와 최소 크기의 차이 값에 따라 SizeID를 제약하여 특정 변환 유닛 크기 범위에 대해서만 양자화 행렬, 기본 행렬의 사용 여부, 예측 부호화 방법의 종류 중 적어도 하나 이상의 정보를 부호화할 수 있다.
표 10의 예에서, Log2MinTrafoSize의 값이 3이고 Log2MaxTrafoSize의 값이 4이면, 8x8 변환 유닛부터 16x16 변환 유닛에 해당하는 양자화 행렬의 부호화, 기본 행렬의 사용 여부에 대한 부호화, 예측 부호화 방법의 종류에 대한 부호화 중 적어도 하나 이상이 수행될 수 있다.
이때, Log2MaxTrafoSize와 Log2MinTrafoSize의 차이 값은 변환 유닛의 최대 크기와 최소 크기의 차이 값으로, log2_diff_max_min_transform_block_size와 동일할 수 있다. 그리고, Log2MinTrafoSize-2는 log2_min_transform_block_size_minus2와 동일할 수 있다.
표 10의 예에서, use_default_scaling_list_flag는 부호화되지 않을 수 있다.
한편, 시퀀스 혹은 픽처 혹은 슬라이스 내에서 변환 블록(유닛)의 크기 혹은 양자화 행렬 종류 별로 기본 행렬과 비-기본 행렬을 혼용해서 사용하지 못하면, 부호화기에서 양자화 행렬 선택의 자유도가 낮아지게 된다. 예를 들어, 슬라이스 내 특정 크기의 변환 블록에 대해서 기본 행렬을 사용하고, 다른 특정 크기의 변환 블록에 대해서 비-기본 행렬을 사용하기 위해서는, 기본 행렬을 부호화해서 복호화기에도 전송해야 하기 때문에 부호화 효율이 저하된다.
시퀀스 혹은 픽처 혹은 슬라이스 내에서 변환 크기 혹은 양자화 행렬 종류 별로 기본 행렬과 비-기본 행렬을 혼용해서 사용하기 위해서, 부호화기는 SizeID에 따라 양자화 행렬의 부호화 여부 및 기본 행렬 사용 여부를 파라미터 세트에 부호화할 수 있다.
표 11은 SizeID에 따라서 양자화 행렬 정보를 부호화하는 경우에 적용될 수 있는 신택스 구조의 일 예를 나타낸 것이다.
<표 11>
Figure pat00011
표 11의 예와 같이, 부호화기는 SizeID에 따른 양자화 행렬의 부호화 여부 및 기본 행렬의 사용 여부를 특정하는 정보인 sid_use_default_scaling_list_flag[SizeID][MatrixID]를 적응 파라미터 세트에 부호화할 수 있다. MatrixID는 표 6에서와 같이 특정 양자화 행렬 종류를 지시한다.
이때, sid_use_default_scaling_list_flag[SizeID][MatrixID]의 값이 1이면 SizeID에 해당하는 양자화 행렬이 부호화되지 않고, SizeID에 해당하는 양자화 행렬 계수 값은 부호화기 및/혹은 복호화기에서 미리 정해진 기본 행렬 계수 값과 동일하게 결정될 수 있다. sid_use_default_scaling_list_flag[SizeID][MatrixID]의 값이 0이면 SizeID에 해당하는 양자화 행렬이 부호화되고, 부호화기 및/혹은 복호화기에서 미리 정해진 기본 행렬을 SizeID에 해당하는 양자화 행렬에서 사용하지 않을 수 있다.
표 11의 예에서, use_default_scaling_list_flag는 부호화되지 않을 수 있다.
또한, 부호화기는 MatrixID에 따라 양자화 행렬의 부호화 여부 및 기본 행렬의 사용 여부를 파라미터 세트에 부호화할 수 있다.
표 12는 MatrixID를 이용하여 양자화 행렬 정보를 부호화하는 경우에 적용될 수 있는 신택스의 예를 개략적으로 나타낸 것이다.
<표 12>
Figure pat00012
표 12의 예와 같이, 부호화기는 MatrixID에 따른 양자화 행렬의 부호화 여부 및 기본 행렬의 사용 여부 정보인 mid_use_default_scaling_list_flag[SizeID][MatrixID]를 적응 파라미터 세트에 부호화할 수 있다.
이때, mid_use_default_scaling_list_flag[SizeID][MatrixID]의 값이 1이면 MatrixID에 해당하는 양자화 행렬이 부호화되지 않고, MatrixID에 해당하는 양자화 행렬 계수 값은 부호화기 및/혹은 복호화기에서 미리 정해진 기본 행렬 계수 값과 동일하게 결정될 수 있다. mid_use_default_scaling_list_flag[SizeID][MatrixID]의 값이 0이면 MatrixID에 해당하는 양자화 행렬이 부호화되고, 부호화기 및/혹은 복호화기에서 미리 정해진 기본 행렬을 MatrixID에 해당하는 양자화 행렬로서 사용하지 않는다.
표 12의 예에서, use_default_scaling_list_flag는 부호화되지 않을 수 있다.
또한, SizeID와 MatrixID에 따라, 부호화기는 양자화 행렬의 부호화 여부 및 기본 행렬의 사용 여부를 파라미터 세트에 부호화할 수 있다.
표 13은 SizeID와 MatrixID를 이용하여 양자화 행렬 정보를 부호화하는 경우에 적용될 수 있는 신택스의 예를 개략적으로 나타낸 것이다.
<표 13>
Figure pat00013
표 13의 예와 같이, SizeID와 MatrixID에 따라서, 부호화기는 양자화 행렬의 부호화 여부 및 기본 행렬 사용 여부에 관한 정보인 sid_mid_use_default_scaling_list_flag[SizeID][MatrixID]를 적응 파라미터 세트에 부호화할 수 있다.
이때, sid_mid_use_default_scaling_list_flag[SizeID][MatrixID]의 값이 1이면 SizeID와 MatrixID에 해당하는 양자화 행렬이 부호화되지 않고, SizeID와 MatrixID에 해당하는 양자화 행렬의 계수 값은 부호화기 및/혹은 복호화기에서 미리 정해진 기본 행렬의 계수 값과 동일하게 결정될 수 있다.
sid_mid_use_default_scaling_list_flag[SizeID][MatrixID]의 값이 0이면 SizeID와 MatrixID에 해당하는 양자화 행렬이 부호화되고, 부호화기 및/혹은 복호화기에서 미리 정해진 기본 행렬을 SizeID와 MatrixID에 해당하는 양자화 행렬로서 사용하지 않는다.
*표 13의 예에서, use_default_scaling_list_flag는 부호화되지 않을 수 있다.
한편, 부호화기가 SizeID와 MatrixID에 따라서, 표 13의 예와는 다른 방법으로 양자화 행렬의 부호화 여부 및 기본 행렬 사용 여부를 파라미터 세트에 부호화할 수도 있다. SizeID를 변환 유닛 크기 정보 중 최소 크기와 최대 크기에 따라 제약하여 양자화 행렬 부호화 혹은 기본 행렬 사용 여부 부호화 혹은 예측 부호화 방법 종류 부호화 중 적어도 하나 이상을 수행할 수 있다.
표 14는 SizeID와 MatrixID를 이용하여 양자화 행렬 정보를 부호화하는 경우에 적용될 수 있는 신택스의 다른 예를 개략적으로 나타낸 것이다.
<표 14>
Figure pat00014
표 14의 예에서, use_default_scaling_list_flag는 부호화되지 않을 수 있다.
또한, 부호화기는 SizeID를 변환 유닛의 크기 정보 중 최대 크기와 최소 크기의 차이 값에 따라 제약하여 양자화 행렬, 기본 행렬의 사용 여부, 예측 부호화 방법의 종류 중 적어도 하나 이상의 정보에 대한 부호화를 수행할 수도 있다.
표 15는 SizeID와 MatrixID를 이용하여 양자화 행렬 정보를 부호화하는 경우에 적용될 수 있는 신택스의 또 다른 예를 개략적으로 나타낸 것이다.
<표 15>
Figure pat00015
표 15의 예에서, 변환 유닛의 최대 크기를 특정하는 Log2MaxTrafoSize와 변환 유닛의 최소 크기를 특정하는 Log2MinTrafoSize 사이의 차이 값은 변환 유닛의 최대 크기와 최소 크기의 차이 값으로 log2_diff_max_min_transform_block_size와 동일하다. Log2MinTrafoSize-2는 log2_min_transform_block_size_minus2와 동일하다.
표 15의 예에서, 부호화기는 Log2MaxTrafoSize-Log2MinTrafoSize+1에 의해 제약되는 SizeID와 MatrixID를 기반으로 양자화 행렬의 부호화 여부 및 기본 행렬의 사용 여부를 파라미터 세트에 부호화할 수 있다.
표 15의 예에서, use_default_scaling_list_flag는 부호화되지 않을 수 있다.
한편, 양자화 행렬 정보가 부호화 대상 파라미터 세트에 존재하는지 혹은 업데이트할지에 관한 정보를 파라미터 세트에 부호화하여 부호화/복호화에 이용할 수도 있다.
표 16은 양자화 행렬 정보에 존부(present) 등에 관한 정보를 부호화하는 경우에 이용할 수 있는 신택스의 일 예를 개략적으로 나타낸 것이다.
<표 16>
Figure pat00016
표 16에서 부호화기는 신택스 요소 scaling_list_update_flag[SizeID][MatrixID]를 이용하여 부호화 대상 파라미터에 양자화 행렬 정보가 존재하는지를 특정할 수 있다.
예컨대, scaling_list_update_flag[SizeID][MatrixID]의 값이 1이면, SizeID와 MatrixID에 해당하는 양자화 행렬 정보가 존재한다는 것을 지시할 수 있다. 혹은 scaling_list_update_flag[SizeID][MatrixID]의 값이 1이면 SizeID와 MatrixID에 해당하고 이전에 부호화된 양자화 행렬 정보를 부호화 대상 파라미터 세트 내의 SizeID와 MatrixID에 해당하는 양자화 행렬 정보로 업데이트(update)하는 것을 지시할 수도 있다. 이때, 업데이트한다는 것은 이전에 부호화된 양자화 행렬 정보를 부호화 대상 파라미터 세트 내의 양자화 행렬 정보로 대체한다는 것을 의미할 수 있다.
scaling_list_update_flag[SizeID][MatrixID]의 값이 0이면, SizeID와 MatrixID에 해당하는 양자화 행렬 정보가 존재하지 않는다는 것을 지시할 수 있다. 혹은 scaling_list_update_flag[SizeID][MatrixID]의 값이 0이면, 부호화 행렬 정보를 업데이트하지 않는 것을 지시할 수도 있다.
scaling_list_update_flag[SizeID][MatrixID]의 값이 0이면, 파라미터 세트에 SizeID와 MatrixID에 해당하는 양자화 행렬 정보가 존재하지 않고 양자화 행렬 정보가 부호화되지 않았으므로, 복호화기에서는 SizeID와 MatrixID에 해당하는 양자화된 변환계수(transform coefficient)에 대해 어떤 양자화 행렬 정보를 사용해서 역양자화를 수행해야 하는지 알 수 없다. 따라서, scaling_list_update_flag[SizeID][MatrixID]가 0이면, SizeID와 MatrixID에 해당하는 양자화 행렬 정보가 존재하지 않으므로, SizeID와 MatrixID에 해당하는 양자화 행렬은 기본 행렬을 사용하는 것을 의미하거나, 혹은 양자화 행렬을 사용하지 않는 것을 의미할 수 있다.
표 16의 예에서, scaling_list_update_flag[SizeID][MatrixID]는 SizeID와 MatrixID에 따라 부호화되기 때문에, scaling_list_update_flag[SizeID][MatrixID]의 값이 1인 경우에 부호화기는 양자화 행렬, 기본 행렬의 사용 여부, 예측 부호화 방법의 종류 중 적어도 하나 이상의 정보를 부호화할 수 있다.
scaling_list_update_flag[SizeID][MatrixID]의 값이 0인 경우에는 양자화 행렬, 기본 행렬의 사용 여부, 예측 부호화 방법의 종류 중 적어도 하나 이상의 정보를 부호화하지 않는다. 즉, scaling_list_update_flag[SizeID][MatrixID]를 이용하여, 불필요한 양자화 행렬을 부호화하지 않을 수 있다.
scaling_list_update_flag[SizeID][MatrixID]만을 이용해서는 시퀀스 혹은 픽처 혹은 슬라이스 내에서 변환 크기 혹은 양자화 행렬 종류 별로 기본 행렬과 비-기본 행렬을 혼용해서 사용하지 못 하기 때문에 부호화기에서 양자화 행렬 선택의 자유도가 낮은 단점이 있다.
따라서, 부호화기는 SizeID와 MatrixID에 따른 양자화 행렬의 부호화 여부 및 기본 행렬의 사용 여부를 특정하는 정보인 sid_mid_use_default_scaling_list_flag[SizeID][MatrixID]를 파라미터 세트에 부호화할 수 있다.
예컨대, 표 16의 예에서 sid_mid_use_default_scaling_list_flag[SizeID][MatrixID]의 값이 1이면 SizeID와 MatrixID에 해당하는 양자화 행렬이 부호화되지 않고, SizeID와 MatrixID에 해당하는 양자화 행렬 계수 값은 부호화기 및/혹은 복호화기에서 미리 정해진 기본 행렬 계수 값과 동일하게 결정될 수 있다. sid_mid_use_default_scaling_list_flag[SizeID][MatrixID]의 값이 0이면 SizeID와 MatrixID에 해당하는 양자화 행렬이 부호화되고, 부호화기 및/혹은 복호화기에서 미리 정해진 기본 행렬을 SizeID와 MatrixID에 해당하는 양자화 행렬에서 사용하지 않게 된다.
표 16의 예에서, use_default_scaling_list_flag는 부호화되지 않을 수 있다.
또한, 부호화기는 SizeID와 MatrixID에 따라 양자화 행렬의 부호화 여부 및 기본 행렬의 사용 여부를 파라미터 세트에 부호화할 수 있다. 이와 함께, 부호화기는 양자화 행렬 정보를 SizeID와 MatrixID에 대응하는 양자화 행렬 정보로 업데이트 할지를 지시하기 위한 정보로서 scaling_list_update_flag[SizeID][MatrixID]를 부호화 대상 파라미터 내에서 이용할 수도 있다.
표 17은 상술한 바와 같이 SizeID와 MatrixID에 따라 양자화 행렬 정보를 부호화하는 경우에 이용될 수 있는 신택스 구조의 예를 개략적으로 나타낸 것이다.
<표 17>
Figure pat00017
표 17의 예에서, sid_mid_use_default_scaling_list_flag[SizeID][MatrixID]의 값이 0이고, scaling_list_update_flag[SizeID][MatrixID]의 값이 0이면 SizeID와 MatrixID에 해당하는 양자화 행렬은 부호화 된다. 이전에 부호화된 SizeID와 MatrixID에 해당하는 양자화 행렬은 부호화 대상 파라미터 내의 SizeID와 MatrixID에 해당하는 양자화 행렬로 업데이트 되지 않으며, 이전에 부호화된 SizeID와 MatrixID에 해당하는 양자화 행렬을 그대로 이용한다.
또한, sid_mid_use_default_scaling_list_flag[SizeID][MatrixID]의 값이 0이고, scaling_list_update_flag[SizeID][MatrixID]의 값이 1이면 SizeID와 MatrixID에 해당하는 양자화 행렬은 부호화되고, 이전에 부호화된 SizeID와 MatrixID에 해당하는 양자화 행렬은 부호화 대상 파라미터 내의 SizeID와 MatrixID에 해당하는 양자화 행렬로 업데이트된다.
또한, sid_mid_use_default_scaling_list_flag[SizeID][MatrixID]의 값이 1이고, scaling_list_update_flag[SizeID][MatrixID]의 값이 0이면 SizeID와 MatrixID에 해당하는 양자화 행렬은 부호화되지 않고, 양자화 행렬 계수 값은 부호화기 및/혹은 복호화기에서 미리 정해진 기본 행렬 계수 값과 동일하게 결정된다. 이전에 부호화된 SizeID와 MatrixID에 해당하는 양자화 행렬은 부호화 대상 파라미터 내의 SizeID와 MatrixID에 해당하는 양자화 행렬로 업데이트되지 않으며, 부호화기와 복호화기는 이전에 부호화된 SizeID와 MatrixID에 해당하는 양자화 행렬을 이용하게 된다.
또한, sid_mid_use_default_scaling_list_flag[SizeID][MatrixID]의 값이 1이고, scaling_list_update_flag[SizeID][MatrixID]의 값도 1이면 SizeID와 MatrixID에 해당하는 양자화 행렬은 부호화되지 않고, 양자화 행렬 계수 값은 부호화기 및/혹은 복호화기에서 미리 정해진 기본 행렬 계수 값과 동일하게 결정된다. 이전에 부호화된 SizeID와 MatrixID에 해당하는 양자화 행렬은 부호화 대상 파라미터 내의 SizeID와 MatrixID에 해당하는 양자화 행렬로 업데이트된다.
표 17의 예에서, use_default_scaling_list_flag는 부호화되지 않을 수 있다.
부호화기는 또한, 양자화 행렬을 예측 부호화하는 방법의 종류를 결정한 후, 양자화 행렬의 예측 부호화 방법에 관한 정보를 파라미터 세트에 부호화할 수 있다.
표 18과 표 19는 양자화 행렬을 예측 부호화하는 방법을 파라미터 세트에 부호화하는 경우에 적용될 수 있는 신택스 예를 개략적으로 나타낸 것이다.
<표 18>
Figure pat00018
<표 19>
Figure pat00019
표 18의 예와 같이, 부호화기는 양자화 행렬을 예측 부호화하는 방법을 특정하는 정보인 pred_mode_flag를 적응 파라미터 세트에 부호화할 수 있다. 본 명세서에서 후술될 scaling_list_pred_mode_flag는 pred_mode_flag와 동일한 의미로 해석될 수 있다.
예컨대, 표 18의 예에서, pred_mode_flag의 값이 1이면 부호화기는 양자화 행렬을 DPCM(Differential Pulse Code Modulation)과 지수-골롬 코드로 부호화할 수 있다. pred_mode_flag의 값이 0이면 부호화기는 양자화 행렬의 계수 값들이 이전에 부호화된 양자화 행렬 계수 값들과 동일한 값을 가지도록 결정할 수 있다. 이때, 양자화 행렬의 계수 값들과 이전에 부호화된 양자화 행렬 계수 값들은 서로 다른 양자화 행렬 내의 값일 수 있다.
양자화 행렬의 예측 부호화 방법이 부호화 대상 양자화 행렬을 이전에 부호화된 양자화 행렬과 동일하게 결정하는 방법이면, 부호화기는 부호화 대상 양자화 행렬의 참조 양자화 행렬 식별자를 파라미터 세트에 부호화할 수 있다.
따라서, 표 18의 예와 같이, 부호화기는 부호화 대상 양자화 행렬의 참조 양자화 행렬 식별자인 pred_matrix_id_delta를 적응 파라미터 세트에 부호화할 수 있다.
본 명세서에서 후술될 scaling_list_pred_matrix_id_delta는 pred_matrix_id_delta와 동일한 의미로 해석될 수 있다. 이때, 부호화기와 복호화기는 pred_matrix_id_delta와 수식 1을 이용해서 부호화 대상 양자화 행렬의 참조 양자화 행렬을 지시하는 RefMatrixID의 값을 결정할 수 있다.
<수식 1>
RefMatrixID = MatrixID - ( 1 + pred_matrix_id_delta )
양자화 행렬의 예측 부호화 방법이 DPCM과 지수-골롬 코드로 부호화하는 방법이면, 부호화기는 이전에 부호화된 양자화 행렬의 계수 값과 부호화 대상 양자화 행렬의 계수 값 사이의 차이 값을 파라미터 세트에 부호화할 수 있다. 이때, 이전에 부호화된 양자화 행렬 계수 값은 부호화 대상 양자화 행렬 내의 계수 값일 수 있다. 즉, 이전에 부호화된 양자화 행렬 계수 값과 부호화 대상 양자화 행렬의 계수 값은 동일한 양자화 행렬 내의 값들일 수 있다.
따라서, 표 19의 예와 같이, 부호화기는 이전에 부호화된 양자화 행렬의 계수 값과 부호화 대상 양자화 행렬의 계수 값 사이의 차이 값인 delta_coef를 적응 파라미터 세트에 부호화할 수 있다. 본 명세서에서 후술될 delta_coef는 scaling_list_delta_coef와 동일한 의미로 해석될 수 있다.
부호화기는 아래의 방법을 이용해서 시퀀스 혹은 픽처 혹은 슬라이스 내에서 기본 양자화 행렬 및 비-기본 양자화 행렬을 혼용해서 사용할 수 있으며, 불필요한 양자화 행렬 전송을 방지할 수 있다.
양자화 행렬의 예측 부호화 방법이 부호화기가 이미 가지고 있는 이전에 부호화된 양자화 행렬과 동일하게 결정하는 방법(pred_mode_flag=0)이면, 부호화기는 부호화 대상 양자화 행렬의 참조 양자화 행렬 식별자를 이용하여 기본 행렬의 사용 여부를 파라미터 세트에 부호화할 수 있다.
예컨대, 표 18의 예와 같이, 부호화기는 부호화 대상 양자화 행렬의 참조 양자화 행렬 식별자인 pred_matrix_id_delta를 파라미터 세트에 부호화할 수 있다. 이때, 부호화기와 복호화기는 pred_matrix_id_delta와 수식 2를 이용해서 부호화 대상 양자화 행렬의 참조 양자화 행렬 혹은 기본 행렬을 지시하는 RefMatrixID을 결정하고 기본 행렬의 사용 여부를 결정할 수 있다.
<수식 2>
RefMatrixID = MatrixID - pred_matrix_id_delta
수식 2에서, RefMatrixID 값이 MatrixID 값과 동일하면, SizeID와 RefMatrixID에 해당하는 양자화 행렬 계수 값은 부호화기 및/혹은 복호화기에서 미리 정해진 기본 행렬의 계수 값과 동일하게 결정된다. 이때, 기본 행렬은 SizeID 및 RefMatrixID에 의해 특정되는 기본 행렬을 의미한다.
또한, pred_matrix_id_delta 값이 0이면, RefMatrixID 값과 MatrixID 값은 동일하게 된다. RefMatrixID 값이 MatrixID 값과 동일하지 않으면, 부호화기는 RefMatrixID에 해당하는 양자화 행렬을 부호화 대상 양자화 행렬의 참조 양자화 행렬로 결정할 수 있다. 이 경우, 부호화기는 부호화 대상 양자화 행렬의 계수 값을 참조 양자화 행렬의 계수 값과 동일하게 결정할 수 있다.
SizeID에 해당하는 양자화 행렬의 크기가 복호화기에서 사용 가능한 변환 유닛의 최소 크기와 최대 크기에 포함되면, 상기 방법을 이용하여 부호화 대상 양자화 행렬의 참조 양자화 행렬 및 기본 행렬 사용 여부를 결정할 수 있다. SizeID에 해당하는 양자화 행렬의 크기가 복호화기에서 사용 가능한 변환 유닛의 최소 크기와 최대 크기의 범위에 포함되지 않으면, SizeID에 해당하는 양자화 행렬에 대한 부호화 방법을 기본 행렬과 동일하게 결정하지 않을 수 있다. SizeID와 변환 유닛의 최대 크기와 변환 유닛의 최소 크기 사이의 차이 값에 따라 양자화 행렬, 기본 행렬의 사용 여부, 예측 부호화 방법의 종류 중 적어도 하나 이상에 대한 정보를 부호화할 때 상기 결정하는 과정이 수행될 수 있다.
부호화기는 양자화 행렬의 사용 여부를 결정한 후, 양자화 행렬의 사용 여부에 관한 정보를 파라미터 세트에 부호화할 수 있다.
표 20은 양자화 행렬의 사용 여부에 관한 정보를 파라미터 세트에 부호화하는 일 예를 개략적으로 나타낸 것이다.
<표 20>
Figure pat00020
표 20의 예와 같이, 부호화기는 양자화 행렬의 사용 여부에 관한 정보인 scaling_list_enable_flag를 파라미터 세트에 부호화할 수 있다.
표 20의 예에서, scaling_list_enable_flag의 값이 1이면 양자화/역양자화에서 기본 행렬 혹은 비-기본 행렬 등의 양자화 행렬이 사용될 수 있으며, 반대로 scaling_list_enable_flag의 값이 0이면 양자화/역양자화에서 양자화 행렬이 사용되지 않거나 혹은 모든 계수 값이 동일한 양자화 행렬이 사용될 수 있다. 이때, 모든 계수 값은 16일 수 있다.
또한, 양자화 행렬의 예측 부호화 방법이 DPCM과 지수-골롬 코드로 부호화하는 방법이면, 부호화기는 이전에 부호화된 양자화 행렬의 계수 값과 부호화 대상 양자화 행렬의 계수 값 사이의 차이를 파라미터 세트에 부호화할 수 있다. 이때, 이전에 부호화된 양자화 행렬의 계수 값은 부호화 대상 양자화 행렬 내의 계수 값일 수 있다. 즉, 이전에 부호화된 양자화 행렬 계수 값과 부호화 대상 양자화 행렬의 계수 값은 동일한 양자화 행렬 내의 값들일 수 있다.
표 21은 이전에 부호화된 양자화 행렬의 계수 값과 부호화 대상 양자화 행렬의 계수 값 사이의 차이를 이용하여 양자화 행렬 정보를 부호화하는 경우에 이용할 수 있는 신택스 구조의 일 예를 개략적으로 나타낸 것이다.
<표 21>
Figure pat00021
표 21의 예에서는 이전에 부호화된 양자화 행렬 계수 값과 부호화 대상 양자화 행렬 계수 값의 차이 값인 delta_coef가 파라미터 세트에 부호화된다.
표 21의 예에서는, 수식 3을 이용하여 양자화 행렬의 계수를 산출할 수 있다.
<수식 3>
Nextcoef = (nextcoef+delta_coef+256)%256
수식 3을 이용해 계산된 양자화 행렬 계수 값 nextcoef가 (1) 특정 값과 같고 (2) 양자화 행렬의 첫 번째 값이라면, 해당 양자화 행렬의 계수 값은 부호화기 및/혹은 복호화기에서 미리 정해진 기본 행렬의 계수 값과 동일하게 결정될 수 있다.
즉, nextcoef의 값이 (1) 특정 값과 같고 (2) 양자화 행렬의 첫 번째 값이라면 해당 양자화 행렬이 기본 행렬로 사용될 수 있다.
이때, 특정 값은 0일 수 있다. 그리고, 기본 행렬은 SizeID와 MatrixID에 해당하는 기본 행렬일 수 있다. 따라서, 양자화 행렬의 계수 값 nextcoef이 0와 같고 양자화 행렬의 첫 번째 값에 해당한다면 해당 양자화 행렬에 대한 양자화 행렬 차이 값의 부호화를 중지할 수 있다.
양자화 행렬의 예측 부호화 방법이 DPCM과 지수-골롬 코드로 부호화하는 방법이면, 부호화기는 이전에 부호화된 양자화 행렬의 계수 값과 부호화 대상 양자화 행렬의 계수 값 사이의 차이를 파라미터 세트에 부호화할 수 있다. 이때, 이전에 부호화된 양자화 행렬의 계수 값은 부호화 대상 양자화 행렬 내의 계수 값일 수 있다. 즉, 이전에 부호화된 양자화 행렬 계수 값과 부호화 대상 양자화 행렬의 계수 값은 동일한 양자화 행렬 내의 값들일 수 있다.
표 22는 이전에 부호화된 양자화 행렬의 계수 값과 부호화 대상인 양자화 행렬의 계수 값 사이의 차이를 이용하는 경우에 대한 신택스 구조의 일 예를 간단히 나타낸 것이다.
<표 22>
Figure pat00022
표 22의 예에서는, 이전에 부호화된 양자화 행렬의 계수 값과 부호화 대상 양자화 행렬의 계수 값 사이의 차이 값인 delta_coef를 파라미터 세트에 부호화한다. 표 22의 예에서, 수식 3을 이용해 계산된 양자화 행렬 계수 값 nextcoef가 특정 값과 같고 양자화 행렬의 첫 번째 값이라면 해당 양자화 행렬의 계수 값은 부호화기 및/혹은 복호화기에서 미리 정해진 기본 행렬의 계수 값과 동일하게 결정될 수 있다.
즉, nextcoef가 (1) 특정 값과 같고 (2) 양자화 행렬의 첫 번째 값이라면 해당 양자화 행렬을 기본 행렬로 사용할 수 있다. 이때, 특정 값은 0일 수 있으며, 수식 3에 따라서 계산된 양자화 행렬 계수 값은 4x4와 8x8 의 양자화 행렬 크기 혹은 변환 크기의 양자화 행렬 계수 값일 수 있다.
또한, 양자화 행렬의 첫 번째 값은 scaling_list_dc_coef_minus8 을 이용하는 값일 수 있으며, 특정 값은 scaling_list_dc_coef_minus8 + 8에 해당하는 값일 수도 있다.
이때, scaling_list_dc_coef_minus8 은 16x16 크기를 갖는 양자화 행렬 또는 32x32 크기를 갖는 양자화 행렬의 첫 번째 값을 의미할 수 있다. 즉, scaling_list_dc_coef_minus8는 DC 행렬 계수에 대한 양자화 행렬의 계수 값을 의미할 수 있으며, DC 행렬 계수를 의미할 수 있다. 본 명세서에서 DC 행렬 계수는 역양자화 시 사용하는 양자화 행렬 내에 존재하며, 변환 블록 내 DC 변환 계수에 대한 양자화 행렬 계수를 의미할 수 있다.
예컨대, scaling_list_dc_coef_minus8[sizeID - 2][matrixID]은 sizeID가 2일 때는, 16x16 크기의 양자화 행렬 혹은 변환에서 DC 계수에 대한 양자화 행렬의 계수 값을 의미할 수 있다. scaling_list_dc_coef_minus8[sizeID - 2][matrixID]은 sizeID가 3일 때, 32x32 크기의 양자화 행렬 혹은 변환에서 DC 계수에 대한 양자화 행렬의 계수 값을 의미할 수 있다.
또한, 앞서 설명한 기본 행렬은 SizeID와 MatrixID에 해당하는 기본 행렬을 의미할 수 있다. 상술한 바와 같이, 양자화 행렬의 계수 값 nextcoef이 0와 같고 양자화 행렬의 첫 번째 값이라면 해당 양자화 행렬에 대한 양자화 행렬 차이 값의 부호화를 중지할 수 있다.
이 방법을 이용하면 양자화 행렬의 크기 혹은 변환 크기에 따라, DC 행렬 계수에 대한 양자화 행렬의 계수 값인 scaling_list_dc_coef_minus8에 대한 부호화 여부 및 기본 행렬의 사용 여부에 대한 부호화를 다르게 할 수 있다.
한편, 양자화 행렬의 계수 값을 이용해 기본 행렬 사용 유무를 결정하는 양자화 행렬의 부호화/복호화 방법은 양자화 행렬의 계수 값에 대한 부호화/복호화 과정의 복잡도가 증가하는 단점이 있다.
아래는 영상 부호화/복호화에 있어서 참조 양자화 행렬에 대한 식별자(참조 양자화 행렬 식별자)를 이용하여 기본 행렬(dafault matrix)의 사용 여부를 결정하는 방법을 제공한다. 따라서, 아래의 방법을 이용하면 양자화 행렬의 부호화/복호화 시 계산의 복잡도를 감소시킬 수 있다.
표 23과 표 24는 참조 양자화 행렬에 대한 식별자를 이용하는 경우에 적용할 수 있는 신택스 구조의 일 예를 간단히 나타낸 것이다.
<표 23>
Figure pat00023
<표 24>
Figure pat00024
일단, 부호화기는 양자화 행렬의 존재 유무를 나타내는 정보를 파라미터 세트에 부호화할 수 있다.
표 23의 예와 같이, 부호화기는 양자화 행렬의 비트스트림 내 존재 유무를 나타내는 정보인 scaling_list_present_flag를 파라미터 세트에 부호화할 수 있다. 예컨대, 양자화 행렬이 존재하지 않고 양자화 행렬들을 기본 양자화 행렬로 결정하면 scaling_list_present_flag의 값을 0으로 부호화할 수 있고, 부호화된 양자화 행렬이 존재하면 scaling_list_present_flag의 값을 1로 부호화할 수 있다.
부호화기는 양자화 행렬에 대한 예측 부호화 방법의 종류를 결정하고, 결정된 양자화 행렬의 예측 부호화 방법에 관한 정보를 파라미터 세트에 부호화할 수 있다. 이때, 양자화 행렬의 예측 부호화 방법에 관한 정보가 부호화되는 파라미터 세트는 적응 파라미터 세트일 수 있다.
표 23의 예와 같이, 부호화기는 양자화 행렬의 예측 부호화 방법을 특정하는 정보인 scaling_list_pred_mode_flag 를 파라미터 세트에 부호화할 수 있다. 예컨대, 양자화 행렬의 계수를 예측 부호화하기 위해 양자화 행렬을 스캔하여 DPCM과 지수-골롬 코드로 부호화하는 경우, 부호화기는 scaling_list_pred_mode_flag의 값을 1로 부호화한다. 또한, 양자화 행렬 간 예측을 위해 참조 양자화 행렬과 부호화 대상 양자화 행렬이 동일한 값을 가지도록 결정하는 경우 혹은 부호화 대상 양자화 행렬의 계수 값을 기본 행렬 계수 값과 동일하게 결정하는 경우, 부호화기는 scaling_list_pred_mode_flag의 값을 0으로 부호화할 수 있다.
이때, 동일한 값을 가지도록 결정한다는 것은 특정 양자화 행렬의 계수 값을 부호화 대상 양자화 행렬의 계수 값으로 복사하는 양자화 행렬의 예측 방법을 사용한다는 것을 의미할 수 있다.
양자화 행렬의 예측 부호화 방법이 양자화 행렬 간 예측에 있어서 양자화 행렬을 참조 양자화 행렬 혹은 기본 행렬과 동일하게 결정하는 방법인 경우에, 부호화기는 부호화 대상 양자화 행렬의 참조 양자화 행렬 식별자와 기본 행렬의 사용 여부를 파라미터 세트에 부호화할 수 있다. 이때, 파라미터 세트는 적응 파라미터 세트일 수 있다.
표 23의 예와 같이, 부호화 대상 양자화 행렬의 계수 값을 참조 양자화 행렬의 계수 값과 동일하게 결정한 경우 혹은 부호화 대상 양자화 행렬 계수 값을 기본 행렬 계수 값과 동일하게 결정한 경우, 부호화기는 부호화 대상 양자화 행렬의 참조 양자화 행렬 식별자인 scaling_list_pred_matrix_id_delta 를 파라미터 세트에 부호화할 수 있다.
이때, 부호화기는 부호화 대상 양자화 행렬을 지시하는 matrixID와 참조 양자화 행렬 혹은 기본 행렬을 지시하는 RefMatrixID 그리고 수식 4를 이용해서 양자화 행렬 식별자인 scaling_list_pred_matrix_id_delta의 값을 결정할 수 있다.
<수식 4>
scaling_list_pred_matrix_id_delta = matrixID - RefMatrixID
부호화 대상 양자화 행렬의 계수 값이 부호화기 및/혹은 복호화기에서 미리 정해진 기본 행렬의 계수 값과 동일하게 결정된 경우, 부호화기는 scaling_list_pred_matrix_id_delta의 값을 0으로 부호화하여, RefMatrixID 값과 matrixID 값이 동일하게 한다. 이때, 기본 행렬은 sizeID와 matrixID에 해당하는 기본 행렬을 의미할 수 있다.
부호화 대상 양자화 행렬 계수 값을 참조 양자화 행렬 계수 값과 동일하게 결정한 경우(즉 이전에 부호화된 양자화 행렬 계수 값과 동일하게 결정하는 경우), 부호화기는 scaling_list_pred_matrix_id_delta 값을 0이 아닌 값으로 부호화하여, RefMatrixID 값과 matrixID 값이 동일하지 않도록 할 수 있다. 이때, scaling_list_pred_matrix_id_delta 값은 양의 정수 값일 수 있다.
양자화 행렬의 예측 부호화 방법이 양자화 행렬 내 계수를 예측 부호화하기 위해 스캔을 통해 DPCM과 지수-골롬 코드로 부호화하는 방법이면, 부호화기는 양자화 행렬 내에서 이전에 부호화된 양자화 행렬의 계수 값과 부호화 대상 양자화 행렬의 계수 값 사이의 차이 값을 파라미터 세트에 부호화할 수 있다. 이때, 차이 값이 부호화되는 파라미터 세트는 적응 파라미터 세트일 수 있다.
표 24의 예와 같이, 부호화 대상 양자화 행렬의 크기가 16x16 (sizeID=2) 혹은 32x32 (sizeID=3)일 경우, 부호화기는 DC 행렬 계수인 scaling_list_dc_coef_minus8를 파라미터 세트에 부호화할 수 있다.
표 24의 예와 같이, 부호화기는 양자화 행렬 내에서 이전에 부호화된 양자화 행렬의 계수 값과 부호화 대상 양자화 행렬의 계수 값 사이의 차이 값인 scaling_list_delta_coef를 파라미터 세트에 부호화할 수 있다. 표 23과 24에서에서는 양자화 행렬 정보를 적응 파라미터 세트에 부호화하는 경우를 예시하였으나, 본 발명은 이에 한정하지 않으며, 부호화기는 다른 파라미터 세트(시퀀스 파라미터 세트, 픽처 파라미터 세트 중 적어도 하나를 포함하는 파라미터 세트)에 양자화 행렬 정보를 부호화할 수도 있다.
상술한 바와 같이, 종래의 양자화 행렬 부호화/복호화에서는 양자화 행렬의 예측 시 불필요한 정보를 부호화/복호화하기 때문에 부호화 효율이 저하되는 단점이 있다.
본 발명에서는 참조 양자화 행렬의 존재 유무에 따라 양자화 행렬 부호화/복호화를 달리 수행하여 양자화 행렬 부호화/복호화 시 부호화 효율을 향상시킬 수 있다.
표 25 및 표 26은 참조 양자화 행렬의 존재 유무에 따라 양자화 행렬 부호화/복호화를 달리하는 경우에 적용할 수 있는 신택스 구조의 일 예를 간단히 나타낸 것이다.
<표 25>
Figure pat00025
<표 26>
Figure pat00026
우선, 부호화기는 양자화 행렬 존재 유무를 나타내는 정보를 파라미터 세트에 부호화할 수 있다.
표 25의 예와 같이, 부호화기는 양자화 행렬의 비트스트림 내 존재 유무를 지시하는 정보인 scaling_list_present_flag를 파라미터 세트에 부호화할 수 있다. 예컨대, 양자화 행렬이 존재하지 않고 모든 양자화 행렬을 기본 양자화 행렬로 결정하는 경우에는 scaling_list_present_flag의 값을 0으로 부호화할 수 있고, 부호화된 양자화 행렬이 존재하는 경우에는 scaling_list_present_flag의 값을 1로 부호화할 수 있다.
부호화기는 양자화 행렬의 예측 부호화 방법 종류에 대해 결정한 후, matrixID가 0보다 클 경우에 양자화 행렬의 예측 부호화 방법 정보를 파라미터 세트에 부호화할 수 있다. 이때, 양자화 행렬의 예측 부호화 방법 정보가 부호화되는 파라미터 세트는 적응 파라미터 세트일 수 있다.
표 25의 예와 같이, 부호화기는 양자화 행렬의 예측 부호화 방법을 특정하는 정보인 scaling_list_pred_mode_flag 를 matrixID가 0보다 클 경우에만 파라미터 세트에 부호화할 수 있다. 양자화 행렬 내 계수를 예측 부호화하기 위해 양자화 행렬을 스캔하여 DPCM과 지수-골롬 코드로 부호화하는 경우, 부호화기는 scaling_list_pred_mode_flag의 값을 1로 부호화한다. 또한, 양자화 행렬 간 예측을 위해 참조 양자화 행렬과 부호화 대상 양자화 행렬이 동일한 값을 가지도록 결정하는 경우, 부호화기는 scaling_list_pred_mode_flag의 값을 0으로 부호화한다. 이때, 동일한 값을 가지도록 결정한다는 것은 참조 양자화 행렬 계수 값을 부호화 대상 양자화 행렬 계수 값으로 복사하는 양자화 행렬 예측 방법을 사용한다는 것을 의미할 수 있다.
matrixID가 0인 경우에는 표 23의 예와 같이, scaling_list_pred_mode_flag의 값이 참(TRUE)이 되어 부호화기는 scaling_list_pred_mode_flag를 부호화하지 않고, 양자화 행렬을 스캔하여 DPCM과 지수-골롬 코드로 부호화할 수 있다.
양자화 행렬의 예측 부호화 방법이 양자화 행렬 간 예측을 위해 참조 양자화 행렬과 동일하게 결정하는 방법이며 matrixID가 0보다 클 경우, 부호화기는 부호화 대상 양자화 행렬의 참조 양자화 행렬 식별자를 파라미터 세트에 부호화할 수 있다. 이때, 참조 양자화 행렬 식별자가 부호화되는 파라미터 세트는 적응 파라미터 세트일 수 있다.
표 25의 예와 같이, 부호화 대상 양자화 행렬의 계수 값을 참조 양자화 행렬의 계수 값과 동일하게 결정한 경우, 부호화기는 부호화 대상 양자화 행렬의 참조 양자화 행렬 식별자인 scaling_list_pred_matrix_id_delta를 matrixID가 0보다 클 경우에만 파라미터 세트에 부호화할 수 있다. 이때, 부호화기와 복호화기는 부호화 대상 양자화 행렬을 지시하는 matrixID와 참조 양자화 행렬을 지시하는 RefMatrixID 그리고 수식 5를 이용해서 양자화 행렬 식별자인 scaling_list_pred_matrix_id_delta의 값을 결정할 수 있다.
<수식 5>
scaling_list_pred_matrix_id_delta = matrixID - (RefMatrixID + 1)
matrixID의 값이 0인 경우는 각 sizeID 별로 첫 번째 양자화 행렬을 지시한다. 양자화 행렬의 예측이 동일한 sizeID를 가지는 이전에 부호화된 양자화 행렬로부터만 가능하므로, sizeID 별 첫 번째 양자화 행렬에 대해서는 동일한 sizeID 값을 가지는 참조 양자화 행렬이 존재하지 않는다. 따라서, 행렬 복사에 의한 양자화 행렬의 예측을 수행할 수 없다. 결국, matrixID가 0보다 큰 경우에만 부호화기는 참조 양자화 행렬 식별자인 scaling_list_pred_matrix_id_delta를 부호화하여 RefMatrixID을 결정하고, 부호화 대상 양자화 행렬 계수 값을 참조 양자화 행렬 계수 값과 동일하게 결정할 수 있다.
부호화 대상 양자화 행렬의 계수 값을 참조 양자화 행렬의 계수 값과 동일하게 결정하는 것은 RefMatrixID에 대응하는 참조 양자화 행렬을 부호화 대상 양자화 행렬의 참조 양자화 행렬로 결정하고, 참조 양자화 행렬의 계수 값을 부호화 대상 양자화 행렬의 계수 값으로 복사하는 양자화 행렬의 예측 방법을 의미할 수 있다.
양자화 행렬의 예측 부호화 방법이 양자화 행렬 내 계수를 예측 부호화하기 위해 스캔을 통해 DPCM과 지수-골롬 코드로 부호화하는 방법이면, 부호화기는 양자화 행렬 내에서 이전에 부호화된 양자화 행렬의 계수 값과 부호화 대상 양자화 행렬의 계수 값 사이의 차이 값을 파라미터 세트에 부호화할 수 있다. 이때, 차이값이 부호화되는 파라미터 세트는 적응 파라미터 세트일 수 있다.
표 26의 예와 같이, 부호화 대상 양자화 행렬의 크기가 16x16 (sizeID = 2) 혹은 32x32 (sizeID = 3)일 경우, 부호화기는 DC 행렬 계수인 scaling_list_dc_coef_minus8를 파라미터 세트에 부호화할 수 있다.
표 26의 예와 같이, 부호화기는 양자화 행렬 내에서 이전에 부호화된 양자화 행렬의 계수 값과 부호화 대상 양자화 행렬의 계수 값 사이의 차이 값인 scaling_list_delta_coef를 파라미터 세트에 부호화할 수 있다.
또한 부호화기는 scaling_list_dc_coef_minus8 혹은 nextCoef를 계산하는데 사용되는 scaling_list_delta_coef를 이용하여 기본 행렬의 사용 여부를 부호화할 수 있다. 즉, 부호화기는 scaling_list_dc_coef_minus8의 값을 -8로 부호화하여 기본 행렬의 사용을 복호화기에 지시할 수 있으며, 첫 번째 nextCoef 값이 0이 되게 scaling_list_delta_coef를 부호화하여 기본 행렬의 사용을 복호화기에 지시할 수 있다.
한편, 양자화 행렬의 계수 값을 이용해 기본 행렬 사용 유무를 결정하는 양자화 행렬의 부호화/복호화 방법은 양자화 행렬의 계수 값에 대한 부호화/복호화 과정의 복잡도를 증가시키는 단점이 있다. 또한, 양자화 행렬 예측 시 불필요한 정보를 부호화/복호화 하기 때문에 부호화 효율이 저하되는 단점이 있다.
본 발명에서는 영상 부호화/복호화에서 참조 양자화 행렬의 식별자를 이용하여 기본 행렬의 사용 여부를 결정하기 때문에 양자화 행렬의 부호화/복호화 시 계산 복잡도를 감소시킬 수 있다. 또한, 본 발명에서는 참조 양자화 행렬의 존재 유무에 따라 양자화 행렬의 부호화/복호화를 달리 수행하여 양자화 행렬의 부호화/복호화 시 부호화 효율을 향상시킬 수 있다.
표 27과 표 28은 참조 양자화 행렬의 식별자를 이용하는 경우에 적용 가능한 신택스 구조의 일 예를 간단히 나타낸 것이다.
<표 27>
Figure pat00027
<표 28>
Figure pat00028
부호화기는 우선 양자화 행렬 존재 유무를 나타내는 정보를 파라미터 세트에 부호화할 수 있다.
표 27의 예와 같이, 부호화기는 양자화 행렬의 비트스트림 내 존재 유무를 특정하는 정보인 scaling_list_present_flag를 파라미터 세트에 부호화할 수 있다. 예컨대, 양자화 행렬이 존재하지 않고 모든 양자화 행렬을 기본 양자화 행렬로 결정하는 경우에 부호화기는 scaling_list_present_flag의 값을 0으로 부호화할 수 있고, 부호화된 양자화 행렬이 존재하는 경우에 부호화기는 scaling_list_present_flag의 값을 1로 부호화할 수 있다.
부호화기는 양자화 행렬에 대한 예측 부호화 방법의 종류를 결정한 후, 양자화 행렬의 예측 부호화 방법에 대한 정보를 파라미터 세트에 부호화할 수 있다. 이때, 예측 부호화 방법에 대한 정보가 부호화되는 파라미터 세트는 적응 파라미터 세트일 수 있다.
표 27의 예와 같이, 부호화기는 양자화 행렬의 예측 부호화 방법에 대한 정보인 scaling_list_pred_mode_flag 를 파라미터 세트에 부호화할 수 있다. 예컨대, 양자화 행렬 내 계수를 예측 부호화하기 위해 양자화 행렬을 스캔하여 DPCM과 지수-골롬 코드로 부호화하는 경우, 부호화기는 scaling_list_pred_mode_flag의 값을 1로 부호화할 수 있다. 양자화 행렬 간 예측을 위해 참조 양자화 행렬과 부호화 대상 양자화 행렬이 동일한 값을 가지도록 결정하는 경우 혹은 부호화 대상 양자화 행렬 계수 값을 기본 행렬 계수 값과 동일하게 결정한 경우, 부호화기는 scaling_list_pred_mode_flag의 값을 0으로 부호화 할 수 있다. 이때, 동일한 값을 가지도록 결정한다는 것은 특정 양자화 행렬의 계수 값을 부호화 대상 양자화 행렬 계수 값으로 복사하는 양자화 행렬 예측 방법을 사용한다는 것을 의미할 수 있다.
양자화 행렬의 예측 부호화 방법이 양자화 행렬 간 예측을 위해 양자화 행렬을 참조 양자화 행렬 혹은 기본 행렬과 동일하게 결정하는 방법이며 matrixID가 0보다 클 경우, 부호화기는 부호화 대상 양자화 행렬의 참조 양자화 행렬 식별자와 기본 행렬 사용 여부를 파라미터 세트에 부호화할 수 있다. 이때, 참조 양자화 행렬 식별자와 기본 행렬 사용 여부를 부호화하는 파라미터 세트는 적응 파라미터 세트일 수 있다.
표 27의 예와 같이, 부호화 대상 양자화 행렬의 계수 값을 참조 양자화 행렬의 계수 값과 동일하게 결정한 경우 혹은 부호화 대상 양자화 행렬의 계수 값을 기본 행렬의 계수 값과 동일하게 결정한 경우, 부호화기는 matrixID가 0보다 클 경우에만 부호화 대상 양자화 행렬에 대한 참조 양자화 행렬 식별자인 scaling_list_pred_matrix_id_delta 를 파라미터 세트에 부호화할 수 있다.
이때, 부호화기는 부호화 대상 양자화 행렬을 지시하는 matrixID와 참조 양자화 행렬 혹은 기본 행렬을 지시하는 RefMatrixID 그리고 수식 6을 이용해서 양자화 행렬 식별자인 scaling_list_pred_matrix_id_delta를 결정할 수 있다.
<수식 6>
scaling_list_pred_matrix_id_delta = matrixID - RefMatrixID
부호화 대상 양자화 행렬의 계수 값이 부호화기 및/혹은 복호화기에 미리 정해져 있는 기본 행렬의 계수 값과 동일하게 결정된 경우, 부호화기는 scaling_list_pred_matrix_id_delta의 값을 0으로 부호화하여, RefMatrixID 값과 matrixID 값이 동일하게 할 수 있다. 이때, 기본 행렬은 sizeID와 matrixID에 해당하는 기본 행렬을 의미한다.
부호화 대상 양자화 행렬의 계수 값이 참조 양자화 행렬 계수 값과 동일하게 결정된 경우, 부호화기는 scaling_list_pred_matrix_id_delta 값을 0이 아닌 값으로 부호화하여, RefMatrixID 값과 matrixID 값이 동일하지 않게 할 수 있다.
또한, scaling_list_pred_mode_flag의 값이 0이면 양자화 행렬의 예측 부호화 방법이 양자화 행렬을 참조 양자화 행렬 혹은 기본 행렬과 동일하게 결정하는 방법을 나타낸다. 이 경우 양자화 행렬 예측은 동일한 sizeID를 가지는 이전에 부호화된 양자화 행렬 혹은 기본 행렬로부터 가능하다.
matrixID가 0이면 각 sizeID 별로 첫 번째 양자화 행렬을 의미하므로, scaling_list_pred_mode_flag의 값이 0이고 matrixID가 0이면, sizeID 별 첫 번째 양자화 행렬에 대해서는 동일한 sizeID 값을 가지는 참조 양자화 행렬이 존재하지 않는다. 따라서, sizeID 별 첫 번째 양자화 행렬에 대해서는 행렬 복사와 같은 방법의 양자화 행렬 예측을 수행할 수 없다.
이런 경우에 부호화기는 scaling_list_pred_matrix_id_delta를 부호화하지 않고 scaling_list_pred_matrix_id_delta 값을 0으로 유추할 수 있다. scaling_list_pred_matrix_id_delta의 값이 0이면 RefMatrixID 값이 matrixID 값과 동일하기 때문에, sizeID와 matrixID에 해당하는 부호화 대상 양자화 행렬의 계수 값은 부호화기 및/혹은 복호화기에서 미리 정해진 기본 행렬 계수 값과 동일하게 결정될 수 있다. 여기서, 기본 행렬은 sizeID와 matrixID에 해당하는 기본 행렬을 의미할 수 있다.
양자화 행렬의 예측 부호화 방법이 양자화 행렬 내 계수를 예측 부호화하기 위해 스캔을 통해 DPCM과 지수-골롬 코드로 부호화하는 방법이면, 부호화기는 양자화 행렬 내에서 이전에 부호화된 양자화 행렬의 계수 값과 부호화 대상 양자화 행렬의 계수 값 사이의 차이 값을 파라미터 세트에 부호화할 수 있다. 이때, 차이 값이 부호화되는 파라미터 세트는 적응 파라미터 세트일 수 있다.
표 28의 예와 같이, 부호화 대상 양자화 행렬의 크기가 16x16 (sizeID = 2) 혹은 32x32 (sizeID = 3)일 경우, 부호화기는 DC 행렬 계수인 scaling_list_dc_coef_minus8를 파라미터 세트에 부호화할 수 있다.
양자화 행렬 내에서 이전에 부호화된 양자화 행렬의 계수 값과 부호화 대상 양자화 행렬의 계수 값 사이의 차이 값인 scaling_list_delta_coef는 표 28의 예와 같이, 파라미터 세트에 부호화될 수 있다.
종래의 양자화 행렬 부호화/복호화는 양자화 행렬 전송 시 행렬 내의 전체 계수들과 DC 행렬 계수를 부호화/복호화하는데, 이때 DC 행렬 계수에 대해 예측 부호화/복호화를 하지 않기 때문에 부호화 효율의 향상에 한계가 있다.
이와 달리 양자화 행렬 내 DC 행렬 계수의 예측 부호화/복호화를 수행하면, 부호화 효율을 향상시킬 수 있다.
여기서 본 발명은 DC 행렬 계수를 상수 8로부터 예측하지 않고, 주변 계수 간의 높은 상관도를 이용하여 주변 AC 계수들로부터 예측하는 방법을 제공한다. 이를 통해서 본 발명에 의하면 부호화 효율을 향상시킬 수 있다.
표 29와 표 30은 DC 행렬 계수를 주변 계수 간의 상관도를 이용하여 예측하는 경우에 적용되는 신택스 구조의 일 예를 간단히 나타낸 것이다.
<표 29>
Figure pat00029
<표 30>
Figure pat00030
표 29 및 표 30에 따른 실시예에서는 양자화 행렬의 부호화/복호화 순서와 양자화 행렬의 복원 순서를 일치시킨다. 따라서, DC 행렬 계수를 저장해야 할 메모리 공간을 절약할 수 있다. 또한, 표 29 및 표 30에 따른 실시예에서는 기본 행렬의 사용 여부를 지시할 때, 여러 신택스 요소를 이용하지 않고 신택스 요소 scaling_list_delta_coef만을 이용할 수 있다.
부호화기는 우선 양자화 행렬의 존재 유무를 나타내는 정보를 파라미터 세트에 부호화할 수 있다.
표 28의 예와 같이, 부호화기는 비트스트림 내 양자화 행렬의 존재 유무를 나타내는 정보인 scaling_list_present_flag를 파라미터 세트에 부호화할 수 있다. 예컨대, 양자화 행렬이 존재하지 않고 모든 양자화 행렬이 기본 양자화 행렬로 결정되는 경우에, 부호화기는 scaling_list_present_flag의 값을 0으로 부호화하고, 부호화된 양자화 행렬이 존재하는 경우에, 부호화기는 scaling_list_present_flag의 값을 1로 부호화할 수 있다.
양자화 행렬의 예측 부호화 방법 종류에 대해 결정한 후, 부호화기는 양자화 행렬의 예측 부호화 방법에 관한 정보를 파라미터 세트에 부호화할 수 있다. 이때, 예측 부호화 방법이 부호화되는 파라미터 세트는 적응 파라미터 세트일 수 있다.
표 29의 예와 같이, 양자화 행렬의 예측 부호화 방법 정보인 scaling_list_pred_mode_flag 를 파라미터 세트에 부호화할 수 있다. 예컨대, 양자화 행렬 내 계수를 예측 부호화하기 위해 양자화 행렬을 스캔하여 DPCM과 지수-골롬 코드로 부호화하는 경우, 부호화기는 scaling_list_pred_mode_flag의 값을 1로 부호화할 수 있다. 양자화 행렬 간 예측을 위해 참조 양자화 행렬과 부호화 대상 양자화 행렬이 동일한 값을 가지도록 결정되는 경우, 부호화기는 scaling_list_pred_mode_flag의 값을 0으로 부호화할 수 있다. 이때, 동일한 값을 가지도록 결정한다는 것은 참조 양자화 행렬의 계수 값을 부호화 대상 양자화 행렬의 계수 값으로 복사하는 양자화 행렬 예측 방법을 사용한다는 것을 의미할 수 있다.
양자화 행렬의 예측 부호화 방법이 양자화 행렬 간 예측을 위해 참조 양자화 행렬과 동일하게 양자화 행렬을 결정하는 방법이면, 부호화기는 부호화 대상 양자화 행렬의 참조 양자화 행렬 식별자를 파라미터 세트에 부호화할 수 있다. 이때, 참조 양자화 행렬 식별자를 부호화하는 파라미터 세트는 적응 파라미터 세트일 수 있다.
표 29의 예와 같이, 부호화 대상 양자화 행렬의 계수 값이 참조 양자화 행렬의 계수 값과 동일하게 결정된 경우, 부호화기는 부호화 대상 양자화 행렬의 참조 양자화 행렬 식별자인 scaling_list_pred_matrix_id_delta를 파라미터 세트에 부호화할 수 있다. 이때, 부호화 대상 양자화 행렬을 의미하는 matrixID와 참조 양자화 행렬을 지시하는 RefMatrixID 그리고, 아래의 수식 7을 이용해서 부호화기는 양자화 행렬 식별자인 scaling_list_pred_matrix_id_delta를 결정할 수 있다.
<수식 7>
scaling_list_pred_matrix_id_delta = matrixID - (RefMatrixID + 1)
부호화 대상 양자화 행렬의 계수 값을 참조 양자화 행렬의 계수 값과 동일하게 결정한다는 것은 RefMatrixID에 해당하는 참조 양자화 행렬을 부호화 대상 양자화 행렬의 참조 양자화 행렬로 결정하고, 참조 양자화 행렬의 계수 값을 부호화 대상 양자화 행렬의 계수 값으로 복사하는 양자화 행렬 예측 방법을 사용한다는 것을 의미할 수 있다.
양자화 행렬의 예측 부호화 방법이 양자화 행렬 내 계수를 예측 부호화하기 위해 스캔을 통해 DPCM과 지수-골롬 코드로 부호화하는 방법인 경우에, 부호화기는 양자화 행렬 내에서 이전에 부호화된 양자화 행렬의 계수 값과 부호화 대상 양자화 행렬의 계수 값 사이의 차이 값을 파라미터 세트에 부호화할 수 있다. 이때, 차이값을 부호화하는 파라미터 세트는 적응 파라미터 세트일 수 있다.
표 30의 예와 같이, 부호화기는 양자화 행렬 내에서 이전에 부호화된 양자화 행렬 계수 값과 부호화 대상 양자화 행렬 계수 값의 차이 값인 scaling_list_delta_coef를 파라미터 세트에 부호화할 수 있다.
이때, 부호화기는 nextCoef를 계산하는데 사용되는 scaling_list_delta_coef를 이용하여 기본 행렬의 사용 여부를 부호화할 수 있다. 예컨대, 부호화기는 첫 번째 nextCoef의 값이 0이 되게 scaling_list_delta_coef를 부호화하여 기본 행렬의 사용을 복호화기에 지시할 수 있다.
부호화기는 표 30의 예와 같이, DC 행렬 계수에 해당하는 양자화 행렬 계수 값의 차이 값인 scaling_list_dc_coef_res를 파라미터 세트에 부호화할 수 있다. 이때, scaling_list_dc_coef_res는 부호화 대상 양자화 행렬의 크기가 16x16 (sizeID = 2) 혹은 32x32 (sizeID = 3) 양자화 행렬이고 기본 행렬을 사용하지 않을 경우 (useDefaultScalingMatrixFlag =0)에 부호화될 수 있다.
표 30의 예에서 DC 행렬의 계수를 별도로 부호화하는 16x16 혹은 32x32 양자화 행렬에 대한 scaling_list_dc_coef_res의 값은 DC 행렬 계수 값과 DC 위치에 존재하는 행렬 계수와의 차이를 이용해서 계산될 수 있다.
한편, 양자화 행렬의 계수 값을 이용해 기본 행렬 사용 유무를 결정하는 양자화 행렬의 부호화/복호화 방법은 양자화 행렬의 계수 값에 대한 부호화/복호화 과정의 복잡도를 증가시키는 단점이 있다. 또한, 종래에는 양자화 행렬의 전송 시에 행렬 내의 전체 계수들과 DC 행렬 계수를 부호화/복호화하는데, 이때 DC 행렬 계수에 대해서는 예측 부호화/복호화하지 않기 때문에 부호화 효율의 향상에 한계가 있다.
본 발명에서는 영상 부호화/복호화에서 참조 양자화 행렬의 식별자를 이용하여 기본 행렬 사용 여부를 결정한다. 따라서, 양자화 행렬의 부호화/복호화 시 계산 복잡도를 감소시킬 수 있다. 또한, 본 발명에서는 양자화 행렬 내 DC 행렬 계수에 대한 예측 부호화/복호화를 수행하기 때문에 부호화 효율을 향상시킬 수 있다. 뿐만 아니라, DC 행렬의 계수를 상수 8로부터 예측하지 않고, 주변 계수 간의 높은 상관도를 이용하여 주변 AC 계수들로부터 예측하기 때문에 부호화 효율을 향상시킬 수 있다.
표 31 및 표 32는 상술한 특징들을 모두 적용하는 경우에 이용될 수 있는 신택스 구조의 일 예를 개략적으로 나타낸 것이다.
<표 31>
Figure pat00031
<표 32>
Figure pat00032
표 31 및 표 32의 실시예에서는 양자화 행렬의 부호화/복호화 순서와 양자화 행렬의 복원 순서를 일치시킨다. 따라서, DC 행렬 계수를 저장해야 할 메모리 공간을 절약할 수 있다. 또한 표 31 및 표 32의 실시예에서는 기본 행렬의 사용 여부를 지시할 때, 여러 신택스 요소를 이용하지 않고 신택스 요소 scaling_list_delta_coef만을 이용할 수 있다.
우선 부호화기는 양자화 행렬 존재 유무를 나타내는 정보를 파라미터 세트에 부호화할 수 있다.
표 31의 예와 같이, 부호화기는 비트스트림 내 양자화 행렬의 존재 유무를 나타내는 정보인 scaling_list_present_flag를 파라미터 세트에 부호화할 수 있다. 예컨대, 양자화 행렬이 존재하지 않고 모든 양자화 행렬을 기본 양자화 행렬로 결정하는 경우에, 부호화기는 scaling_list_present_flag의 값을 0으로 부호화할 수 있고, 부호화된 양자화 행렬이 존재하는 경우에, 부호화기는 scaling_list_present_flag의 값을 1로 부호화할 수 있다.
양자화 행렬에 대한 예측 부호화 방법의 종류를 결정한 후, 부호화기는 양자화 행렬의 예측 부호화 방법에 관한 정보를 파라미터 세트에 부호화할 수 있다. 이때, 예측 부호화 방법을 부호화하는 파라미터 세트는 적응 파라미터 세트일 수 있다.
표 31의 예와 같이, 부호화기는 양자화 행렬의 예측 부호화 방법을 특정하는 정보인 scaling_list_pred_mode_flag 를 파라미터 세트에 부호화할 수 있다. 예컨대, 양자화 행렬 내 계수를 예측 부호화하기 위해 양자화 행렬을 스캔하여 DPCM과 지수-골롬 코드로 부호화하는 경우, 부호화기는 scaling_list_pred_mode_flag의 값을 1로 부호화한다. 또한, 양자화 행렬 간 예측을 위해 참조 양자화 행렬과 부호화 대상 양자화 행렬이 동일한 값을 가지도록 결정하는 경우 혹은 부호화 대상 양자화 행렬 계수 값을 기본 행렬 계수 값과 동일하게 결정한 경우, 부호화기는 scaling_list_pred_mode_flag의 값을 0으로 부호화한다. 이때, 동일한 값을 가지도록 결정한다는 것은 특정 양자화 행렬의 계수 값을 부호화 대상 양자화 행렬의 계수 값으로 복사하는 양자화 행렬 예측 방법을 적용한다는 것을 의미할 수 있다.
양자화 행렬의 예측 부호화 방법이 양자화 행렬 간 예측을 위해 양자화 행렬을 참조 양자화 행렬 혹은 기본 행렬과 동일하게 결정하는 방법이면, 부호화기는 부호화 대상 양자화 행렬의 참조 양자화 행렬 식별자와 기본 행렬 사용 여부를 파라미터 세트에 부호화할 수 있다. 이때, 부호화가 수행되는 파라미터 세트는 적응 파라미터 세트일 수 있다.
표 31의 예와 같이, 부호화 대상 양자화 행렬 계수 값을 참조 양자화 행렬 계수 값과 동일하게 결정한 경우 혹은 부호화 대상 양자화 행렬 계수 값을 기본 행렬 계수 값과 동일하게 결정한 경우, 부호화기는 부호화 대상 양자화 행렬의 참조 양자화 행렬 식별자인 scaling_list_pred_matrix_id_delta 를 파라미터 세트에 부호화할 수 있다.
이때, 부호화 대상 양자화 행렬을 의미하는 matrixID와 참조 양자화 행렬 혹은 기본 행렬을 지시하는 RefMatrixID와 그리고 수식 8을 이용해서 부호화기 및 복호화기는 양자화 행렬 식별자인 scaling_list_pred_matrix_id_delta의 값을 결정할 수 있다.
<수식 8>
scaling_list_pred_matrix_id_delta = matrixID - RefMatrixID
부호화 대상 양자화 행렬 계수 값이 부호화기 및/혹은 복호화기에서 미리 정해진 기본 행렬 계수 값과 동일하게 결정된 경우, 부호화기는 scaling_list_pred_matrix_id_delta의 값을 0으로 부호화하여, RefMatrixID 값과 matrixID 값이 동일하게 할 수 있다. 이때, 기본 행렬은 sizeID와 matrixID에 해당하는 기본 행렬을 의미한다.
부호화 대상 양자화 행렬의 계수 값이 참조 양자화 행렬 계수 값과 동일하게 결정된 경우, 부호화기는 scaling_list_pred_matrix_id_delta의 값을 0이 아닌 값으로 부호화하여, RefMatrixID 값과 matrixID 값이 동일하지 않게 할 수 있다.
양자화 행렬의 예측 부호화 방법이 양자화 행렬 내 계수를 예측 부호화하기 위해 스캔을 통해 DPCM과 지수-골롬 코드로 부호화하는 방법이면, 부호화기는 양자화 행렬 내에서 이전에 부호화된 양자화 행렬의 계수 값과 부호화 대상 양자화 행렬의 계수 값 사이의 차이 값을 파라미터 세트에 부호화할 수 있다. 이때, 차이 값이 부호화되는 파라미터 세트는 적응 파라미터 세트일 수 있다.
표 32의 예와 같이, 양자화 행렬 내에서 이전에 부호화된 양자화 행렬 계수 값과 부호화 대상 양자화 행렬 계수 값의 차이 값인 scaling_list_delta_coef를 파라미터 세트에 부호화할 수 있다.
부호화기는 표 32의 예와 같이, DC 행렬의 계수에 해당하는 양자화 행렬의 계수 값의 차이 값인 scaling_list_dc_coef_res를 파라미터 세트에 부호화할 수 있다. 이때, scaling_list_dc_coef_res는 부호화 대상 양자화 행렬의 크기가 16x16 (sizeID=2) 혹은 32x32 (sizeID=3)이고, 기본 행렬을 사용하지 않을 경우 (useDefaultScalingMatrixFlag = 0)에 부호화될 수 있다.
DC 행렬 계수를 별도로 부호화하는 16x16 양자화 행렬 혹은 32x32 양자화 행렬에 대한 scaling_list_dc_coef_res 값은 DC 행렬 계수 값과 DC 위치에 존재하는 행렬의 계수와의 차이를 이용해서 계산될 수 있다.
한편, 종래의 양자화 행렬 부호화/복호화에서는 부호화/복호화를 할 때의 양자화 행렬의 크기가 아니라 양자화와 역양자화를 할 때의 양자화 행렬의 크기를 이용하여 양자화 행렬의 복사를 수행하기 때문에, 제한된 개수의 양자화 행렬들로부터 양자화 행렬을 복사하게 된다. 따라서, 양자화 행렬 부호화/복호화 시 부호화 효율의 향상에 한계가 있다.
본 발명에서는 부호화/복호화를 할 때의 양자화 행렬의 크기와 동일한 양자화 행렬로부터 양자화 행렬의 예측을 수행하기 때문에 부호화 효율의 향상 및 양자화 행렬 예측의 자유도를 증가시킬 수 있다.
표 33과 표 34는 부호화/복호화를 할 때의 양자화 행렬의 크기와 동일한 양자화 행렬로부터 양자화 행렬의 예측을 수행하는 경우에 이용할 수 있는 신택스 구조의 일 예들을 개략적으로 나타낸 것이다.
<표 33>
Figure pat00033
<표 34>
Figure pat00034
부호화기는 우선 양자화 행렬의 존재 유무를 나타내는 정보를 파라미터 세트에 부호화할 수 있다.
표 33 또는 표 34의 예와 같이, 부호화기는 비트스트림 내 양자화 행렬의 존재 유무를 나타내는 정보인 scaling_list_present_flag를 파라미터 세트에 부호화할 수 있다. 예컨대, 양자화 행렬이 존재하지 않고 모든 양자화 행렬을 기본 양자화 행렬로 결정하는 경우, 부호화기는 scaling_list_present_flag의 값을 0으로 부호화 할 수 있고, 부호화된 양자화 행렬이 존재하는 경우, 부호화기는 scaling_list_present_flag의 값을 1로 부호화 할 수 있다.
양자화 행렬에 대한 예측 부호화 방법의 종류를 결정한 후, 부호화기는 양자화 행렬의 예측 부호화 방법에 관한 정보를 파라미터 세트에 부호화할 수 있다. 이때, 예측 부호화 방법이 부호화되는 파라미터 세트는 적응 파라미터 세트일 수 있다. 예를 들어, 부호화기는 표 33 혹은 표 34의 예와 같이, 양자화 행렬의 예측 부호화 방법에 관한 정보인 scaling_list_pred_mode_flag를 파라미터 세트에 부호화할 수 있다. 구체적인 예로서, 양자화 행렬 내 계수를 예측 부호화하기 위해 양자화 행렬을 스캔하여 DPCM과 지수-골롬 코드로 부호화하는 경우, 부호화기는 scaling_list_pred_mode_flag의 값을 1로 부호화할 수 있으며, 양자화 행렬 간 예측을 위해 참조 양자화 행렬과 부호화 대상 양자화 행렬이 동일한 값을 가지도록 결정하는 경우, 부호화기는 scaling_list_pred_mode_flag의 값을 0으로 부호화 할 수 있다. 이때, 동일한 값을 가지도록 결정한다는 것은 참조 양자화 행렬의 계수 값을 부호화 대상 양자화 행렬의 계수 값으로 복사하는 양자화 행렬 예측 방법을 사용한다는 것을 의미할 수 있다.
또한, 양자화 행렬의 예측 부호화 방법이 양자화 행렬 간 예측을 위해 참조 양자화 행렬과 양자화 행렬을 동일하게 결정하는 방법이면, 부호화기는 부호화 대상 양자화 행렬의 참조 양자화 행렬 식별자를 파라미터 세트에 부호화할 수 있다. 이때, 참조 양자화 행렬의 식별 정보(식별자)로서 부호화 대상 양자화 행렬의 참조 양자화 행렬의 크기를 특정하는 정보와 참조 양자화 행렬을 특정하는 정보 중 적어도 하나가 파라미터 세트에 부호화되도록 할 수도 있다. 식별자 혹은 식별 정보가 부호화되는 파라미터 세트는 적응 파라미터 세트일 수 있다.
예컨대, 표 33의 예와 같이, 부호화 대상 양자화 행렬의 계수 값을 참조 양자화 행렬의 계수 값과 동일하게 결정한 경우, 부호화기는 부호화 대상 양자화 행렬의 참조 양자화 행렬에 관한 식별 정보인 scaling_list_pred_size_matrix_id_delta 를 파라미터 세트에 부호화할 수 있다. 이때, 부호화 대상 양자화 행렬의 참조 양자화 행렬의 크기인 RefSizeID와 참조 양자화 행렬을 지시하는 RefMatrixID 그리고 수식 9를 이용해서 양자화 행렬의 식별 정보인 scaling_list_pred_size_matrix_id_delta의 값이 결정될 수 있다.
<수식 9>
scaling_list_pred_size_matrix_id_delta = 6 * (RefSizeID - sizeID ) + (RefMatrixID % 6)
또 다른 예로 표 34의 예와 같이, 부호화 대상 양자화 행렬의 계수 값을 참조 양자화 행렬의 계수 값과 동일하게 결정한 경우, 부호화기는 부호화 대상 양자화 행렬의 참조 양자화 행렬에 관한 식별 정보인 scaling_list_pred_size_id_delta와 scaling_list_pred_size_matrix_id_delta를 파라미터 세트에 부호화할 수 있다. 이때, RefSizeID와 수식 10을 이용해서 scaling_list_pred_size_id_delta의 값이 결정될 수 있고, 부호화 대상 양자화 행렬의 참조 양자화 행렬을 지시하는 RefMatrixID와 수식 11을 이용해서 scaling_list_pred_matrix_id_delta의 값이 결정될 수 있다.
<수식 10>
scaling_list_pred_size_id_delta = sizeID - RefSizeID
<수식 11>
scaling_list_pred_matrix_id_delta = matrixID - RefMatrixID
부호화 대상 양자화 행렬의 계수 값을 참조 양자화 행렬의 계수 값과 동일하게 결정한다는 것은 RefSizeID와 RefMatrixID에 해당하는 참조 양자화 행렬을 부호화 대상 양자화 행렬의 참조 양자화 행렬로 결정하고, 참조 양자화 행렬의 계수 값을 부호화 대상 양자화 행렬의 계수 값으로 복사하는 양자화 행렬 예측 방법을 사용한다는 것을 의미할 수 있다.
따라서, 표 33 또는 표 34의 예를 통해 동일한 sizeID를 가지는 양자화 행렬로부터의 양자화 행렬 예측만 허용하지 않고, 부호화/복호화 시의 행렬 크기는 동일하지만 다른 sizeID를 가지는 양자화 행렬로부터 양자화 행렬을 예측할 수 있게 된다.
또한, 표 33의 예 또는 표 34의 예에서, 신택스 요소들의 값의 범위가 특정한 값으로 제한될 수도 있다. 예를 들어, 표 33 또는 표 34의 예에서 scaling_list_pred_size_matrix_id_delta는 0부터 17 사이의 값을 가질 수 있고, scaling_list_pred_size_id_delta는 0부터 2 사이의 값을 가질 수 있으며, scaling_list_pred_matrix_id_delta 는 0부터 5 사이의 값을 가질 수 있도록 제한할 수 있다.
또한, 표 33 또는 표 34의 실시예에서 부호화기는 부호화 대상 양자화 행렬보다 더 큰 크기를 가지는 양자화 행렬로부터는 양자화 행렬의 예측을 수행하지 않을 수 있다.
더 나아가, 양자화 행렬의 크기별로 DC 행렬 계수와 AC 행렬 계수를 나누어 예측하도록 할 수도 있다. 예컨대, 8x8 크기를 가지는 양자화 행렬에 대해서는 DC 행렬 계수와 AC 행렬 계수를 나누어 예측하고 나머지 크기의 양자화 행렬에 대해서는 DC 행렬 계수와 AC 행렬 계수를 함께 예측할 수 있다. 다시 말하면, 8x8의 크기를 가지는 양자화 행렬부터 예측을 수행하는 경우, 부호화기는 8x8의 크기를 가지는 양자화 행렬 내 DC 행렬 계수 위치에 해당하는 값을 부호화 대상 행렬의 DC 행렬 계수로 판단하여, 해당 위치의 값을 예측할 수 있다. 16x16 혹은 32x32의 크기를 가지는 양자화 행렬로부터 예측을 수행하는 경우, 부호화기는 양자화 행렬의 DC 행렬 계수도 함께 예측할 수 있다.
한편, 양자화 행렬의 예측 부호화 방법이 양자화 행렬 내 계수를 예측 부호화하기 위해 스캔을 통해 DPCM과 지수-골롬 코드로 부호화하는 방법이면, 양자화 행렬 내에서 이전에 부호화된 양자화 행렬 계수 값과 부호화 대상 양자화 행렬 계수 값의 차이 값을 파라미터 세트에 부호화할 수 있다. 이때, 파라미터 세트는 적응 파라미터 세트일 수 있다.
표 35는 양자화 행렬 내에서 이전에 부호화된 양자화 행렬 계수 값을 이용하여 양자화 행렬 내 계수를 예측하는 경우에 적용될 수 있는 신택스 구조의 일 예를 나타낸 것이다.
<표 35>
Figure pat00035
표 35의 예와 같이, 부호화 대상 양자화 행렬의 크기가 16x16 (sizeID=2) 혹은 32x32 (sizeID=3)일 경우, 부호화기는 DC 행렬의 계수 정보인 scaling_list_dc_coef_minus8를 파라미터 세트에 부호화할 수 있다.
표 35의 예와 같이, 부호화기는 양자화 행렬 내에서 이전에 부호화된 양자화 행렬의 계수 값과 부호화 대상 양자화 행렬의 계수 값 사이의 차이 값인 scaling_list_delta_coef를 파라미터 세트에 부호화할 수 있다.
또한, 부호화기는 scaling_list_dc_coef_minus8 혹은 nextCoef의 값을 유도하는데 사용되는 scaling_list_delta_coef를 이용하여 기본 행렬의 사용 여부를 지시하는 정보를 부호화할 수 있다. 예컨대, 부호화기는 scaling_list_dc_coef_minus8의 값을 -8로 부호화하여 기본 행렬 사용을 복호화기에 지시할 수 있으며, 첫 번째 nextCoef 값이 0이 되게 scaling_list_delta_coef를 부호화하여 기본 행렬의 사용을 복호화기에 지시할 수 있다.
다시 말하지만, 양자화 행렬의 계수 값을 이용해 기본 행렬 사용 유무를 결정하는 양자화 행렬의 부호화/복호화 방법은 양자화 행렬의 계수 값에 대한 부호화/복호화 과정의 복잡도를 증가시키는 단점이 있다. 또한, 양자화 행렬 예측 시 불필요한 정보를 부호화/복호화 하기 때문에 부호화 효율이 저하되는 단점이 있다. 또한, 부호화/복호화 시의 양자화 행렬의 크기가 아닌 양자화와 역양자화 시의 양자화 행렬의 크기를 이용하여 양자화 행렬의 복사를 수행한다. 제한된 개수의 양자화 행렬들로부터 양자화 행렬을 복사하므로 양자화 행렬 부호화/복호화 시 부호화 효율의 향상에 한계가 있다.
본 발명에서는 영상 부호화/복호화에서 참조 양자화 행렬의 식별자를 이용하여 기본 행렬의 사용 여부를 결정할 수 있다. 따라서, 양자화 행렬 부호화/복호화 시 계산 복잡도를 감소시킬 수 있다. 또한, 부호화/복호화 시의 양자화 행렬의 크기와 동일한 양자화 행렬로부터 양자화 행렬의 예측을 수행하기 때문에 부호화 효율을 향상시키고 양자화 행렬의 예측에 있어 자유도를 증가시킬 수 있다.
표 36 및 표 37은 참조 양자화 행렬의 식별자를 이용하고 부호화/복호화 시의 동일한 크기의 양자화 행렬을 이용하여 예측을 수행하는 경우에 적용될 수 있는 신택스 구조의 일 예들을 간단히 나타낸 것이다.
<표 36>
Figure pat00036
<표 37>
Figure pat00037
부호화기는 우선 양자화 행렬의 존재 유무를 나타내는 정보를 파라미터 세트에 부호화할 수 있다.
표 36 혹은 표 37의 예와 같이, 부호화기는 양자화 행렬의 비트스트림 내 존재 유무를 나타내는 정보인 scaling_list_present_flag를 파라미터 세트에 부호화할 수 있다. 예컨대, 양자화 행렬이 존재하지 않고 모든 양자화 행렬을 기본 양자화 행렬로 결정하는 경우, 부호화기는 scaling_list_present_flag의 값을 0으로 부호화하고, 부호화된 양자화 행렬이 존재하는 경우, 부호화기는 scaling_list_present_flag의 값을 1로 부호화한다.
양자화 행렬에 대한 예측 부호화 방법의 종류를 결정한 후, 부호화기는 양자화 행렬의 예측 부호화 방법에 관한 정보를 파라미터 세트에 부호화할 수 있다. 이때, 예측 부호화 방밥에 관한 정보가 부호화되는 파라미터 세트는 적응 파라미터 세트일 수 있다.
표 36 또는 표 37의 예와 같이, 부호화기는 양자화 행렬의 예측 부호화 방법을 특정하는 정보인 scaling_list_pred_mode_flag를 파라미터 세트에 부호화할 수 있다. 예컨대, 양자화 행렬 내 계수를 예측 부호화하기 위해 양자화 행렬을 스캔하여 DPCM과 지수-골롬 코드로 부호화하는 경우, 부호화기는 scaling_list_pred_mode_flag의 값을 1로 부호화할 수 있다. 또한, 양자화 행렬 간의 예측을 위해 참조 양자화 행렬과 부호화 대상 양자화 행렬이 동일한 값을 가지도록 결정하는 경우 혹은 부호화 대상 양자화 행렬의 계수 값을 기본 행렬의 계수 값과 동일하게 결정한 경우, 부호화기는 scaling_list_pred_mode_flag의 값을 0으로 부호화할 수 있다. 동일한 값을 가지도록 결정한다는 것은 특정 양자화 행렬의 계수 값을 부호화 대상 양자화 행렬의 계수 값으로 복사하는 양자화 행렬 예측 방법을 사용한다는 것을 의미할 수 있다.
양자화 행렬의 예측 부호화 방법이 양자화 행렬 간 예측을 위해 양자화 행렬을 참조 양자화 행렬 혹은 기본 행렬과 동일하게 결정하는 방법이면, 부호화기는 부호화 대상 양자화 행렬의 참조 양자화 행렬 식별자를 파라미터 세트에 부호화할 수 있다. 이때, 참조 양자화 행렬의 식별 정보(식별자)로서 부호화 대상 양자화 행렬의 참조 양자화 행렬의 크기를 특정하는 정보와 참조 양자화 행렬을 특정하는 정보 중 적어도 하나가 파라미터 세트에 부호화되도록 할 수도 있다. 그리고, 식별자 또는 식별 정보가 부호화되는 파라미터 세트는 적응 파라미터 세트일 수 있다.
예컨대, 표 36의 예와 같이, 부호화 대상 양자화 행렬의 계수 값을 참조 양자화 행렬의 계수 값과 동일하게 결정한 경우 혹은 부호화 대상 양자화 행렬의 계수 값을 기본 행렬의 계수 값과 동일하게 결정한 경우, 부호화기는 부호화 대상 양자화 행렬의 참조 양자화 행렬을 식별하는 정보인 scaling_list_pred_size_matrix_id_delta를 파라미터 세트에 부호화할 수 있다. 이때, 부호화기는 RefSizeID와 참조 양자화 행렬 혹은 기본 행렬을 지시하는 RefMatrixID 그리고 수식 12를 이용해서 양자화 행렬의 식별 정보인 scaling_list_pred_size_matrix_id_delta를 결정할 수 있다.
<수식 12>
scaling_list_pred_size_matrix_id_delta = 6 * (RefSizeID - sizeID ) + (RefMatrixID % 6)
다른 예로 표 37과 같이, 부호화 대상 양자화 행렬의 계수 값을 참조 양자화 행렬의 계수 값과 동일하게 결정한 경우 혹은 부호화 대상 양자화 행렬의 계수 값을 기본 행렬의 계수 값과 동일하게 결정한 경우, 부호화기는 부호화 대상 양자화 행렬의 참조 양자화 행렬에 대한 식별 정보인 scaling_list_pred_size_id_delta와 scaling_list_pred_size_matrix_id_delta를 파라미터 세트에 부호화할 수 있다. 이때, 부호화기는 RefSizeID와 수식 13을 이용해서 scaling_list_pred_size_id_delta의 값을 유도할 수 있고, 부호화 대상 양자화 행렬의 참조 양자화 행렬 혹은 기본 행렬을 지시하는 RefMatrixID와 수식 14를 이용해서 scaling_list_pred_matrix_id_delta의 값을 유도할 수 있다.
<수식 13>
scaling_list_pred_size_id_delta = sizeID - RefSizeID
<수식 14>
scaling_list_pred_matrix_id_delta = matrixID - RefMatrixID
부호화 대상 양자화 행렬의 계수 값을 부호화기 및/혹은 복호화기에서 미리 정해진 기본 행렬 계수 값과 동일하게 결정한 경우, 부호화기는 scaling_list_pred_matrix_id_delta의 값을 0으로 부호화하여, RefMatrixID 값과 matrixID 값이 동일하도록 할 수 있다. 이때, 기본 행렬은 sizeID와 matrixID에 해당하는 기본 행렬을 의미한다.
부호화 대상 양자화 행렬의 계수 값을 참조 양자화 행렬의 계수 값과 동일하게 결정한 경우, 부호화기는 scaling_list_pred_matrix_id_delta의 값을 0이 아닌 값으로 부호화하여, RefMatrixID 값과 matrixID 값이 동일하지 않게 할 수 있다.
따라서, 표 36 또는 표 37의 예를 통해, 동일한 sizeID를 가지는 양자화 행렬로부터의 양자화 행렬 예측뿐만 아니라, 부호화/복호화 시의 행렬 크기는 동일하지만 다른 sizeID를 가지는 양자화 행렬로부터 양자화 행렬을 예측할 수 있게 된다.
또한, 표 36 또는 표 37의 예에서, scaling_list_pred_size_matrix_id_delta, scaling_list_pred_size_id_delta, scaling_list_pred_matrix_id_delta 값의 범위를 제한할 수도 있다. 예를 들어, scaling_list_pred_size_matrix_id_delta는 0부터 17 사이의 값을 가질 수 있고, scaling_list_pred_size_id_delta는 0부터 2 사이의 값을 가질 수 있고, scaling_list_pred_matrix_id_delta 는 0부터 5 사이의 값을 가질 수 있도록 제한할 수도 있다.
더 나아가, 부호화 대상 양자화 행렬보다 더 큰 크기를 가지는 양자화 행렬로부터는 양자화 행렬의 예측을 수행하지 않도록 할 수도 있다.
양자화 행렬의 예측에 있어서, 행렬의 크기를 고려하여 예측의 방법을 달리할 수도 있다. 예컨대, 8x8의 크기를 가지는 양자화 행렬로부터 예측하는 경우에, 부호화기는 8x8의 크기를 가지는 양자화 행렬 내 DC 계수 위치에 해당하는 값을 DC 행렬 계수로 판단하여, 해당 위치의 값을 예측하고, 16x16 혹은 32x32의 크기를 가지는 양자화 행렬로부터 예측하는 경우에, 부호화기는 DC 행렬 계수도 함께 예측할 수 있다.
한편, 양자화 행렬의 예측 부호화 방법이 양자화 행렬 내 계수를 예측 부호화하기 위해 스캔을 통해 DPCM과 지수-골롬 코드로 부호화하는 방법인 경우, 부호화기는 양자화 행렬 내에서 이전에 부호화된 양자화 행렬의 계수 값과 부호화 대상 양자화 행렬의 계수 값 사이의 차이 값을 파라미터 세트에 부호화할 수 있다. 이때, 차이 값이 부호화되는 파라미터 세트는 적응 파라미터 세트일 수 있다.
표 38는 양자화 행렬 내에서 이전에 부호화된 양자화 행렬 계수 값을 이용하여 양자화 행렬 내 계수를 예측하는 경우에 적용될 수 있는 신택스 구조의 일 예를 나타낸 것이다.
<표 38>
Figure pat00038
표 38의 예와 같이, 부호화 대상 양자화 행렬의 크기가 16x16 (sizeID=2) 혹은 32x32 (sizeID=3)일 경우, 부호화기는 DC 행렬의 계수를 특정하는 정보인 scaling_list_dc_coef_minus8를 파라미터 세트에 부호화할 수 있다.
부호화기는 표 38의 예와 같이, 양자화 행렬 내에서 이전에 부호화된 양자화 행렬의 계수 값과 부호화 대상 양자화 행렬의 계수 값 사이의 차이 값인 scaling_list_delta_coef를 파라미터 세트에 부호화할 수도 있다.
종래의 양자화 행렬 부호화/복호화에서는 양자화 행렬 내 첫 번째 계수의 부호화/복호화 시 자주 발생하는 계수 값을 고려하지 않고, 양자화 행렬 계수를 부호화하였다. 따라서, 종래의 양자화 행렬 부호화/복호화의 경우, 부호화 효율의 향상에는 한계가 있다.
본 발명에서는 자주 발생하는 계수 값을 이용하여 양자화 행렬 내 첫 번째 계수의 예측 부호화/복호화를 수행할 수 있다. 또한, 본 발명에서는 기본 행렬의 첫 번째 계수 값 혹은 DC 행렬 계수 값은 16으로 정의되어 있거나 비-기본 행렬의 첫 번째 계수 값 혹은 DC 행렬 계수 값이 16을 기준으로 분포가 되어 있는 경우, 부호화/복호화 대상 양자화 행렬 내의 첫 번째 계수 값 혹은 DC 행렬 계수 값도 상수 16으로부터 예측하여 부호화/복호화 할 수 있다. 따라서, 본 발명에 따르면 부호화 효율을 향상시킬 수 있다.
표 39 및 표 40은 양자화 행렬 내 첫 번째 계수를 고려하는 경우에 적용할 수 있는 신택스 구조의 일 예를 개략적으로 나타낸 것이다.
<표 39>
Figure pat00039
<표 40>
Figure pat00040
부호화기는 우선 양자화 행렬의 존재 유무를 나타내는 정보를 파라미터 세트에 부호화할 수 있다.
표 39의 예와 같이, 부호화기는 비트스트림 내 양자화 행렬의 존재 유무를 나타내는 정보인 scaling_list_present_flag를 파라미터 세트에 부호화할 수 있다. 예컨대, 양자화 행렬이 존재하지 않고 모든 양자화 행렬을 기본 양자화 행렬로 결정하는 경우, 부호화기는 scaling_list_present_flag의 값을 0으로 부호화할 수 있고, 부호화된 양자화 행렬이 존재하는 경우, 부호화기는 scaling_list_present_flag의 값을 1로 부호화할 수 있다.
양자화 행렬에 대한 예측 부호화 방법의 종류를 결정한 후, 부호화기는 양자화 행렬의 예측 부호화 방법에 관한 정보를 파라미터 세트에 부호화할 수 있다. 이때, 예측 부호화 방법에 관한 정보가 부보화되는 파라미터 세트는 적응 파라미터 세트일 수 있다.
표 39의 예와 같이, 양자화 행렬의 예측 부호화 방법에 관한 정보인 scaling_list_pred_mode_flag를 파라미터 세트에 부호화할 수 있다. 예컨대, 양자화 행렬 내 계수를 예측 부호화하기 위해 양자화 행렬을 스캔하여 DPCM과 지수-골롬 코드로 부호화하는 경우, 부호화기는 scaling_list_pred_mode_flag의 값을 1로 부호화할 수 있다. 또한, 양자화 행렬 간 예측을 위해 참조 양자화 행렬과 부호화 대상 양자화 행렬이 동일한 값을 가지도록 결정하는 경우, 부호화기는 scaling_list_pred_mode_flag의 값을 0으로 부호화할 수 있다. 동일한 값을 가지도록 결정한다는 것은 참조 양자화 행렬의 계수 값을 부호화 대상 양자화 행렬의 계수 값으로 복사하는 양자화 행렬 예측 방법을 사용한다는 것을 의미할 수 있다.
양자화 행렬의 예측 부호화 방법이 양자화 행렬 간 예측을 위해 양자화 행렬을 참조 양자화 행렬과 동일하게 결정하는 방법이면, 부호화기는 부호화 대상 양자화 행렬의 참조 양자화 행렬 식별자를 파라미터 세트에 부호화할 수 있다. 이때, 참조 양자화 행렬 식별자를 부호화하는 파라미터 세트는 적응 파라미터 세트일 수 있다.
표 39의 예와 같이, 부호화 대상 양자화 행렬의 계수 값을 참조 양자화 행렬의 계수 값과 동일하게 결정한 경우, 부호화기는 부호화 대상 양자화 행렬의 참조 양자화 행렬 식별자인 scaling_list_pred_matrix_id_delta 를 파라미터 세트에 부호화할 수 있다. 이때, 부호화기는 부호화 대상 양자화 행렬을 의미하는 matrixID와 참조 양자화 행렬을 지시하는 RefMatrixID와 수식 15를 이용하여 양자화 행렬 식별자인 scaling_list_pred_matrix_id_delta를 결정할 수 있다.
<수식 15>
scaling_list_pred_matrix_id_delta = matrixID - (RefMatrixID + 1)
부호화 대상 양자화 행렬 계수 값을 참조 양자화 행렬 계수 값과 동일하게 결정한다는 것은 RefMatrixID에 해당하는 참조 양자화 행렬을 부호화 대상 양자화 행렬의 참조 양자화 행렬로 결정하고, 참조 양자화 행렬의 계수 값을 부호화 대상 양자화 행렬의 계수 값으로 복사하는 양자화 행렬 예측 방법을 적용한다는 것을 의미할 수 있다.
양자화 행렬의 예측 부호화 방법이 양자화 행렬 내 계수를 예측 부호화하기 위해 스캔을 통해 DPCM과 지수-골롬 코드로 부호화하는 방법이면, 부호화기는 양자화 행렬 내에서 이전에 부호화된 양자화 행렬의 계수 값과 부호화 대상 양자화 행렬의 계수 값 사이의 차이 값을 파라미터 세트에 부호화할 수 있다. 이때, 차이 값이 부호화되는 파라미터 세트는 적응 파라미터 세트일 수 있다.
표 40의 예와 같이, 부호화 대상 양자화 행렬의 크기가 16x16 (sizeID=2) 혹은 32x32 (sizeID=3)일 경우, 부호화기는 DC 행렬의 계수에 해당하는 양자화 행렬의 계수 값인 scaling_list_dc_coef_minus16를 파라미터 세트에 부호화할 수 있다. 이때, scaling_list_dc_coef_minus16의 값은 예측 값을 16으로 하여 계산된 DC 행렬의 계수를 나타낸다.
표 40의 예와 같이, 부호화기는 양자화 행렬 내에서 이전에 부호화된 양자화 행렬의 계수 값과 부호화 대상 양자화 행렬의 계수 값 사이의 차이 값인 scaling_list_delta_coef를 파라미터 세트에 부호화할 수 있다. 부호화기는 표 40의 예와 같이 ‘nextCoef = 16’ 즉, 첫 번째 계수 값에 대한 예측 값을 16으로 설정할 수 있다.
또한, 부호화기는 scaling_list_dc_coef_minus16 혹은 nextCoef를 계산하는데 사용되는 scaling_list_delta_coef를 이용하여 기본 행렬의 사용 여부를 결정할 수 있다. 즉, scaling_list_dc_coef_minus16의 값을 -16으로 부호화하여 기본 행렬의 사용을 복호화기에 지시할 수 있으며, 첫 번째 nextCoef 값이 0이 되게 scaling_list_delta_coef를 부호화하여 기본 행렬의 사용을 복호화기에 지시할 수도 있다.
표 39 및 표 40의 예뿐만 아니라 상기 표들 그리고 이후 표들의 실시예에서, 부호화기는 nextCoef는 16으로 설정할 수 있고, scaling_list_dc_coef_minus16의 값은 예측 값을 16으로 하여 계산된 DC 행렬의 계수를 의미할 수 있다. 또한, 상기 표들 그리고 이후 표들의 실시예에서 부호화기는 scaling_list_dc_coef_minus16의 값을 -16으로 부호화하여 기본 행렬의 사용을 복호화기에 지시할 수도 있다.
지금까지는 양자화 행렬 정보를 부호화하여 시그널링하는 부호화기의 동작에 관한 예들을 설명하였다. 이하, 상술한 표의 예들을 이용하여 복호화기에서 양자화 행렬 정보를 복호화하고 양자화 행렬을 획득하는 예들에 대하여 설명한다.
도 5는 양자화 행렬에 대한 정보를 복호화하고 이를 이용하여 복호화를 수행하는 복호화기 동작의 일 예를 개략적으로 설명하는 순서도이다.
도 5를 참조하면, 복호화기는 변환 유닛의 크기 정보를 복호화하고 복호화한 정보를 기반으로 변환 유닛의 크기를 결정한다(S510).
복호화기는 수신한 비트스트림으로부터 변환 유닛의 크기에 관한 정보를 엔트로피 복호화(entropy decoding)한다. 복호화기는 비트스트림 내의 파라미터 세트로부터 변환 유닛의 크기에 관한 정보를 복호화할 수 있다.
예컨대, 복호화기는 비트스트림으로부터 변환 유닛의 최소 크기와 최대 크기에 관한 정보를 복호화할 수 있다.
표 1의 예와 같이, 복호화기는 비트스트림 내의 log2_min_transform_block_size_minus2의 신택스 요소를 이용하여 Log2 함수가 적용된 정방형 변환 유닛의 가로 혹은 세로 방향 최소 크기를 복호화할 수 있다, 또한, 복호화기는 비트스트림 내의 log2_diff_max_min_transform_block_size의 신택스 요소를 이용하여 Log2 함수가 적용된 정방형 변환 유닛의 가로 혹은 세로 방향 최대 크기와 가로 혹은 세로 방향 최소 크기의 차이 값을 복호화할 수도 있다.
복호화기는 상기 복호화된 변환 유닛의 최소 크기와 최대 크기를 결정할 수 있다. 이때, 변환 유닛의 최대 크기는 복호화된 최대 크기와 최소 크기의 차이 값과 복호화된 최소 크기를 이용하여 결정할 수도 있다.
예를 들어, 복호화기는 복호화된 log2_min_transform_block_size_minus2에 2를 가산하여 Log2MinTrafoSize을 계산한 후, 1 << Log2MinTrafoSize를 이용해서 계산된 값을 정방형 변환 유닛의 가로 혹은 세로 방향 최소 크기로 결정할 수 있다. 복호화기는 복호화된 log2_diff_max_min_transform_block_size의 값 그리고 복호화된 log2_min_transform_block_size_minus2에 2를 가산한 값으로 Log2MaxTrafoSize를 계산한 후, 1 << Log2MaxTrafoSize를 이용해서 계산된 값을 정방형 변환 유닛의 가로 혹은 세로 방향 최대 크기로 결정할 수 있다.
여기서, 변환 유닛의 최소 크기는 Log2MinTrafoSize 혹은 1 << Log2MinTrafoSize을 이용해서 계산된 값을 의미할 수 있고, 변환 유닛의 최대 크기는 Log2MaxTrafoSize 혹은 1 << Log2MaxTrafoSize을 이용해서 계산된 값을 의미할 수 있다.
복호화기는 양자화 행렬 정보를 복호화한다(S520). 복호화기는 (1) 양자화 행렬의 사용 여부, (2) 양자화 행렬의 존재(present) 유무, (3) 양자화 행렬의 복호화 여부 및 기본 행렬 사용 여부, (4) 양자화 행렬 예측 복호화 방법의 종류, (5) 참조 양자화 행렬 식별자, 혹은 (6) 양자화 행렬 내에서 이전에 복호화된 양자화 행렬의 계수 값과 복호화 대상 양자화 행렬의 계수 값의 차이 값 중 적어도 하나 이상에 관한 정보를 포함하는 양자화 행렬 정보를 복호화할 수 있다. 이때, 양자화 행렬 정보는 변환 유닛의 크기에 의존적일 수 있다.
복호화기는 우선 양자화 행렬의 사용 여부에 관한 정보를 파라미터 세트에서 복호화하여 양자화 행렬의 사용 여부에 대해 결정할 수 있다. 표 2의 예와 같이, 복호화기는 양자화 행렬의 사용 여부에 관한 정보인 scaling_list_enabled_flag를 시퀀스 파라미터 세트에서 복호화할 수 있다. 이때, scaling_list_enabled_flag의 값이 1이면 복호화기는 시퀀스 전체에 대한 변환 계수의 역양자화(dequantization)/스케일링(scaling)에서 양자화 행렬을 사용할 수 있으며, scaling_list_enabled_flag의 값이 0이면 복호화기는 변환 계수의 역양자화/스케일링에서 양자화 행렬을 사용하지 않을 수 있다.
복호화기는 양자화 행렬의 존재 유무에 관한 정보를 파라미터 세트에서 복호화하여 양자화 행렬의 존재 유무에 대해 결정할 수 있다. 표 3의 예와 같이, 복호화기는 양자화 행렬의 존재 유무에 관한 정보인 aps_scaling_list_data_present_flag를 적응 파라미터 세트에서 복호화할 수 있다. 예를 들어, aps_scaling_list_data_present_flag의 값이 1이면 적응 파라미터 세트에 양자화 행렬이 존재하는 것을 의미하며, aps_scaling_list_data_present_flag의 값이 0이면 적응 파라미터 세트에 양자화 행렬이 존재하지 않는 것을 의미한다. 만약, scaling_list_enabled_flag가 1이고 aps_scaling_list_data_present_flag가 0이면 기본 행렬이 역양자화 시에 사용되는 것을 의미할 수 있다. 또한, 양자화 행렬의 존재 유무 정보를 적응 파라미터 세트에 복호화하는 경우를 예시하였으나, 본 발명은 이에 한정하지 않으며, 복호화기는 다른 파라미터 세트에 양자화 행렬의 존재 유무 정보를 복호화할 수도 있다.
복호화기는 양자화 행렬의 복호화 여부 및 기본 행렬의 사용 여부에 관한 정보를 파라미터 세트에서 복호화하여 양자화 행렬의 복호화 여부 및 기본 행렬 사용 여부에 대해 결정할 수 있다. 표 4의 예와 같이, 복호화기는 양자화 행렬의 복호화 여부 및 기본 행렬의 사용 여부에 관한 정보인 use_default_scaling_list_flag를 적응 파라미터 세트에서 복호화할 수 있다. 예를 들어, use_default_scaling_list_flag의 값이 1이면 양자화 행렬이 복호화되지 않고, 모든 양자화 행렬의 계수 값은 부호화기 및/혹은 복호화기에 미리 정해져 있는 기본 양자화 행렬의 계수 값과 동일하게 결정될 수 있다. use_default_scaling_list_flag의 값이 0이면 양자화 행렬이 복호화되고, 부호화기 및/혹은 복호화기에 미리 정해져 있는 기본 행렬은 사용되지 않을 수 있다.
복호화기는 SizeID와 MatrixID을 이용하여 양자화 행렬의 복호화를 할 것인지, 기본 행렬을 사용할 것인지, 예측 복호화를 수행할 것인지 중에서 적어도 하나 이상을 결정할 수 있다.
표 5 및 표 6의 예와 같이, SizeID 값은 테이블을 이용하여 변환 유닛의 크기 혹은 양자화 행렬의 크기에 따른 양자화 행렬을 특정하고, MatrixID 값은 양자화 행렬이 사용되는 부호화 모드 및 색 성분에 대응하는 양자화 행렬의 종류를 특정할 수 있다.
한편, 기본 양자화 행렬은 표 7 및 표 8을 이용하여 지시될 수 있다.
사용 가능한 변환 유닛의 최소 크기와 최대 크기를 고려하지 않으면, 모든 크기의 변환 유닛에 대한 양자화 행렬을 복호화 해야 하기 때문에 부호화 효율이 저하되며, 계산 복잡도가 증가하게 된다.
본 발명에 의하면 변환 유닛의 크기를 고려하여 양자화 행렬의 정보를 복호화할 수 있다.
표 9는 일례로, 상기 각 변환 유닛 크기에 해당하는 SizeID를 변환 유닛 크기 정보 중 최소 크기와 최대 크기에 따라 제약하여 양자화 행렬 복호화 혹은 기본 행렬 사용 여부 복호화 혹은 예측 복호화 방법 종류 복호화 중 적어도 하나 이상을 수행한다.
표 9의 예와 같이, SizeID를 변환 유닛의 크기 정보 중 최소 크기와 최대 크기에 따라 제약하여, 특정 크기의 변환 유닛들에 대해서만 양자화 행렬 혹은 기본 행렬 사용 여부 혹은 예측 복호화 방법의 종류 중 적어도 하나 이상의 정보에 대한 복호화를 수행할 수 있다.
예컨대, 변환 유닛의 최소 크기를 특정하는 Log2MinTrafoSize의 값이 3이고 변환 유닛의 최대 크기를 특정하는 Log2MaxTrafoSize의 값이 4이면, 복호화기는 8x8 크기부터 16x16 크기까지의 변환 유닛들에 대응하는 양자화 행렬의 복호화 혹은 기본 행렬 사용 여부의 복호화, 예측 복호화 방법의 종류에 대한 복호화 중 적어도 하나 이상을 수행할 수 있다.
한편, 표 9의 예에서, use_default_scaling_list_flag는 복호화되지 않을 수 있다.
또한, 위와 달리 복호화기는 SizeID를 변환 유닛의 최대 크기와 최소 크기의 차이 값에 따라 제약하여 양자화 행렬의 복호화, 기본 행렬의 사용 여부에 관한 정보의 복호화, 예측 복호화 방법의 종류에 대한 정보의 복호화 중 적어도 하나 이상을 수행할 수도 있다.
복호화기는 표 10의 예와 같이, SizeID를 변환 유닛의 최대 크기와 최소 크기의 차이 값에 따라 제약하여, 특정 크기의 변환 유닛들에 대해서만(즉, 변환 유닛의 특정 크기들에 대해서만) 양자화 행렬의 복호화, 기본 행렬의 사용 여부에 관한 정보의 복호화, 예측 복호화 방법의 종류에 관한 정보의 복호화 중 적어도 하나 이상을 수행할 수 있다.
예컨대, 변환 유닛의 최소 크기를 특정하는 Log2MinTrafoSize의 값이 3이고 변환 유닛의 최대 크기를 특정하는 Log2MaxTrafoSize가 4이면, 8x8 크기부터 16x16 크기까지의 변환 유닛들에 해당하는 양자화 행렬의 복호화, 기본 행렬의 사용 여부에 관한 정보의 복호화, 예측 복호화 방법의 종류에 관한 정보의 복호화 중 적어도 하나 이상을 수행할 수 있다.
이때, Log2MaxTrafoSize와 Log2MinTrafoSize의 차이 값은 변환 유닛의 최대 크기와 최소 크기의 차이 값으로서 log2_diff_max_min_transform_block_size에 의해 특정될 수 있다. 그리고, Log2MinTrafoSize-2는 log2_min_transform_block_size_minus2와 동일하다.
표 10의 예에서, use_default_scaling_list_flag는 복호화되지 않을 수 있다.
한편, 시퀀스 혹은 픽처 혹은 슬라이스 내에서 변환 블록의 크기 별로 혹은 양자화 행렬의 종류 별로 기본 행렬과 비-기본 행렬을 혼용해서 사용하지 못 하면, 부호화기에서 양자화 행렬을 선택함에 있어서 자유도가 낮아지게 된다. 예를 들어, 슬라이스 내 특정 변환 크기에 대해서는 기본 행렬을 사용하고, 다른 특정 변환 크기에 대해서는 비-기본 행렬을 사용하기 위해서는 기본 행렬을 부호화해서 보내야 하기 때문에 부호화 효율이 저하될 수 있다.
본 발명에서는 시퀀스 혹은 픽처 혹은 슬라이스 내에서 변환 블록의 크기별로 혹은 양자화 행렬의 종류별로 기본 행렬과 비-기본 행렬을 혼용해서 사용할 수 있다.
예컨대, 복호화기는 SizeID에 따라 양자화 행렬의 복호화 여부 및 기본 행렬 사용 여부를 파라미터 세트에서 복호화할 수 있다. 표 11의 예와 같이, 복호화기는 SizeID에 따라서 양자화 행렬의 복호화 여부와 기본 행렬의 사용 여부를 특정하는 정보인 sid_use_default_scaling_list_flag[SizeID][MatrixID]를 적응 파라미터 세트(adaptation parameter set)로부터 복호화할 수 있다. 예를 들어, sid_use_default_scaling_list_flag[SizeID][MatrixID]의 값이 1이면, 복호화기는 SizeID에 대응하는 양자화 행렬을 복호화하지 않으며, SizeID에 해당하는 양자화 행렬의 계수 값은 부호화기 및/혹은 복호화기에 미리 정해져 있는 기본 행렬의 계수 값과 동일하게 결정될 수 있다. sid_use_default_scaling_list_flag[SizeID][MatrixID]의 값이 0이면, 복호화기는 SizeID에 대응하는 양자화 행렬을 복호화하고, 부호화기 및/혹은 복호화기에 미리 정해져 있는 기본 행렬을 SizeID에 해당하는 양자화 행렬로서 사용하지 않는다.
한편, 표 11의 예에서 use_default_scaling_list_flag는 복호화되지 않을 수 있다.
또한, 복호화기는 SizeID 대신, MatrixID에 따라 양자화 행렬의 복호화 여부 및 기본 행렬의 사용 여부를 파라미터 세트에서 복호화할 수도 있다.
표 12의 예와 같이, 복호화기는 MatrixID에 따라서 양자화 행렬의 복호화 여부 및 기본 행렬의 사용 여부를 특정하는 정보인 mid_use_default_scaling_list_flag[SizeID][MatrixID]를 적응 파라미터 세트로부터 복호화 할 수 있다. 예를 들어, mid_use_default_scaling_list_flag[SizeID][MatrixID]의 값이 1이면 복호화기는 MatrixID에 대응하는 양자화 행렬을 복호화 하지 않으며, MatrixID에 해당하는 양자화 행렬의 계수 값은 부호화기 및/혹은 복호화기에 미리 정해져 있는 기본 행렬의 계수 값과 동일하게 결정될 수 있다. mid_use_default_scaling_list_flag[SizeID][MatrixID]의 값이 0이면 복호화기는 MatrixID에 해당하는 양자화 행렬을 복호화하고, 부호화기 및/혹은 복호화기에 미리 정해져 있는 기본 행렬을 MatrixID에 해당하는 양자화 행렬로서 사용하지 않는다.
표 12의 예에서, use_default_scaling_list_flag는 복호화되지 않을 수 있다.
또한, 복호화기는 SizeID 만을 고려하거나 또는 MatrixID 만을 고려하는 대신, SizeID와 MatrixID를 모두 고려하여, SizeID 및 MatrixID에 따라서 양자화 행렬의 복호화 여부 및 기본 행렬의 사용 여부에 관한 정보를 파라미터 세트로부터 복호화할 수도 있다.
표 13의 예와 같이, 복호화기는 SizeID와 MatrixID에 따라 양자화 행렬의 복호화 여부 및 기본 행렬의 사용 여부를 특정하는 정보인 sid_mid_use_default_scaling_list_flag[SizeID][MatrixID]를 적응 파라미터 세트로부터 복호화 할 수 있다. 예를 들어, sid_mid_use_default_scaling_list_flag[SizeID][MatrixID]의 값이 1이면, 복호화기는 SizeID와 MatrixID에 해당하는 양자화 행렬을 복호화 하지 않고, SizeID와 MatrixID에 해당하는 양자화 행렬의 계수 값은 부호화기 및/혹은 복호화기에 미리 정해져 있는 기본 행렬의 계수 값과 동일하게 결정될 수 있다. sid_mid_use_default_scaling_list_flag[SizeID][MatrixID]의 값이 0이면 복호화기는 SizeID와 MatrixID에 해당하는 양자화 행렬을 복호화 하고, 부호화기 및/혹은 복호화기에 미리 정해져 있는 기본 행렬을 SizeID와 MatrixID에 해당하는 양자화 행렬로서 사용하지 않는다.
표 13의 예에서, use_default_scaling_list_flag는 복호화 되지 않을 수 있다.
한편, 표 14의 예와 같이, 복호화기는 SizeID를 변환 유닛의 최소 크기와 최대 크기에 따라 제약하여 양자화 행렬의 복호화, 기본 행렬의 사용 여부에 관한 정보의 복호화, 예측 복호화 방법의 종류에 관한 정보의 복호화 중 적어도 하나 이상을 수행한다. 또한, 복호화기는 SizeID와 MatrixID에 따라서 양자화 행렬의 복호화 여부에 관한 정보 및 기본 행렬의 사용 여부에 관한 정보를 파라미터 세트로부터 복호화할 수 있다.
표 14의 예에서, use_default_scaling_list_flag는 복호화되지 않을 수 있다.
표 15의 예와 같이, 복호화기는 SizeID를 변환 유닛의 크기 정보 중 최대 크기와 최소 크기의 차이 값에 따라 제약하여 양자화 행렬의 복호화, 기본 행렬의 사용 여부에 관한 정보의 복호화, 예측 복호화 방법의 종류에 관한 정보의 복호화 중 적어도 하나 이상을 수행할 수 있다. 예를 들어, Log2MaxTrafoSize와 Log2MinTrafoSize의 차이 값은 변환 유닛의 최대 크기와 최소 크기의 차이 값을 특정함으로 log2_diff_max_min_transform_block_size와 동일하고, Log2MinTrafoSize-2는 log2_min_transform_block_size_minus2와 동일하다. 또한, 복호화기는 SizeID와 MatrixID에 따라 양자화 행렬의 복호화 여부 및 기본 행렬 사용 여부에 관한 정보를 파라미터 세트로부터 복호화할 수 있다.
표 15의 예에서, use_default_scaling_list_flag는 복호화되지 않을 수 있다.
또한, 표 16의 예와 같이, 복호화기는 양자화 행렬 정보가 복호화 대상 파라미터 세트에 존재하는지 혹은 양자화 행렬을 업데이트할지를 파라미터 세트 내scaling_list_update_flag[SizeID][MatrixID]를 기반으로 결정할 수 있다. 예컨대, 1의 값을 가지는 scaling_list_update_flag[SizeID][MatrixID]는 SizeID 및 MatrixID에 의해 특정되는 양자화 행렬 정보가 복호화 대상 파라미터 세트에 존재하는 것을 지시거나, SizeID 및 MatrixID에 대응하고 이전에 복호화된 양자화 행렬의 정보를 복호화 대상 파라미터 세트 내의 SizeID 및 MatrixID에 대응하는 양자화 행렬 정보로 업데이트(update)할 것을 지시한다. 이때, 양자화 행렬의 정보를 업데이트 한다는 것은 이전에 복호화된 양자화 행렬의 정보를 복호화 대상 파라미터 세트 내의 양자화 행렬 정보로 대체한다는 것을 의미할 수 있다. 또한, 0의 값을 가지는 scaling_list_update_flag[SizeID][MatrixID]는 SizeID 및 MatrixID에 대응하는 양자화 행렬 정보가 복호화 대상 파라미터 세트 내에 존재하지 않거나 혹은 이전에 복호화된 양자화 행렬의 정보를 업데이트하지 않는 것을 지시한다. 예를 들어, scaling_list_update_flag[SizeID][MatrixID]의 값이 0이면, 파라미터 세트에 SizeID 및 MatrixID에 대응하는 양자화 행렬 정보가 존재하지 않고 양자화 행렬 정보도 복호화 되지 않았으므로, 복호화기는 SizeID 및 MatrixID에 의해 특정되는 양자화 행렬의 계수의 역양자화에 어떤 양자화 행렬 정보를 사용해야 하는지 알 수 없게 된다. 따라서, scaling_list_update_flag[SizeID][MatrixID]의 값이 0이면, SizeID 및 MatrixID에 해당하는 양자화 행렬 정보가 복호화 대상 파라미터 세트에 존재하지 않으므로, SizeID 및 MatrixID에 대응하는 양자화 행렬로서 기본 행렬을 사용하거나 양자화 행렬을 사용하지 않는 것이 지시될 수 있다.
이때, scaling_list_update_flag[SizeID][MatrixID]는 각 변환 유닛 크기에 해당하는 SizeID와 MatrixID에 따라 복호화되기 때문에, scaling_list_update_flag[SizeID][MatrixID]의 값이 1인 경우에 복호화기는 양자화 행렬의 복호화, 기본 행렬의 사용 여부에 관한 정보의 복호화, 예측 복호화 방법의 종류에 관한 정보의 복호화 중 적어도 하나 이상을 수행할 수 있다. scaling_list_update_flag[SizeID][MatrixID]의 값이 0인 경우에 복호화기는 양자화 행렬의 복호화, 기본 행렬의 사용 여부에 관한 정보의 복호화, 예측 복호화 방법의 종류에 관한 정보의 복호화 중 적어도 하나 이상을 수행하지 않는다. 즉, 복호화기는 scaling_list_update_flag[SizeID][MatrixID]이 지시하는 바에 따라서, 불필요한 양자화 행렬을 복호화하지 않을 수 있다.
한편, scaling_list_update_flag[SizeID][MatrixID]만을 이용해서는 시퀀스 혹은 픽처 혹은 슬라이스 내 변환 블록의 크기별로 혹은 양자화 행렬의 종류별로 기본 행렬과 비-기본 행렬을 혼용해서 사용하지 못 하기 때문에 양자화 행렬을 선택하는 자유도가 낮은 단점이 있다. 따라서, SizeID와 MatrixID에 기반하여, 복호화기는 양자화 행렬의 복호화 여부 및 기본 행렬의 사용 여부에 관한 정보인 sid_mid_use_default_scaling_list_flag[SizeID][MatrixID]를 파라미터 세트에서 복호화 할 수 있다. 예를 들어, sid_mid_use_default_scaling_list_flag[SizeID][MatrixID]의 값이 1이면 복호화기는 SizeID 및 MatrixID에 의해 특정되는 양자화 행렬을 복호화 하지 않고, SizeID 및 MatrixID에 대응하는 양자화 행렬의 계수 값은 부호화기 및/혹은 복호화기에 미리 정해져 있는 기본 행렬의 계수 값과 동일하게 결정된다. sid_mid_use_default_scaling_list_flag[SizeID][MatrixID]의 값이 0이면 복호화기는 SizeID와 MatrixID에 의해 특정되는 양자화 행렬을 복호화 하고, 부호화기 및/혹은 복호화기에 미리 정해져 있는 기본 행렬을 SizeID와 MatrixID에 해당하는 양자화 행렬로서 사용하지 않는다.
표 16의 예에서, use_default_scaling_list_flag는 복호화 되지 않을 수 있다.
또한, 복호화기는 표 17의 예와 같이, SizeID와 MatrixID에 따라 양자화 행렬의 복호화 여부, 기본 행렬의 사용 여부를 파라미터 세트에서 복호화할 수 있다. 또한, SizeID와 MatrixID에 해당하는 양자화 행렬 정보로 업데이트할지에 대한 scaling_list_update_flag[SizeID][MatrixID]가 복호화 대상 파라미터 내에서 이용될 수 있다.
예컨대, sid_mid_use_default_scaling_list_flag[SizeID][MatrixID]의 값이 0이고 scaling_list_update_flag[SizeID][MatrixID]의 값이 0인 경우에, 복호화기는 SizeID와 MatrixID에 대응하는 양자화 행렬을 복호화 하며, 이전에 복호화된 SizeID와 MatrixID에 해당하는 양자화 행렬을 복호화 대상 파라미터 내의 SizeID와 MatrixID에 해당하는 양자화 행렬로 업데이트하지 않고 이전에 복호화된 SizeID와 MatrixID에 해당하는 양자화 행렬을 이용한다.
또한, sid_mid_use_default_scaling_list_flag[SizeID][MatrixID]의 값이 0이고 scaling_list_update_flag[SizeID][MatrixID]의 값이 1인 경우에, 복호화기는 SizeID와 MatrixID에 해당하는 양자화 행렬을 복호화하고, 이전에 복호화된 SizeID와 MatrixID에 해당하는 양자화 행렬을 복호화 대상 파라미터 내의 SizeID와 MatrixID에 해당하는 양자화 행렬로 업데이트한다.
또한, sid_mid_use_default_scaling_list_flag[SizeID][MatrixID]의 값이 1이고 scaling_list_update_flag[SizeID][MatrixID]의 값이 0인 경우에, 복호화기는 SizeID와 MatrixID에 해당하는 양자화 행렬을 복호화 하지 않고, 양자화 행렬의 계수 값을 부호화기 및/혹은 복호화기에 미리 정해져 있는 기본 행렬의 계수 값과 동일하게 결정하며, 이전에 복호화된 SizeID와 MatrixID에 해당하는 양자화 행렬을 복호화 대상 파라미터 내의 SizeID와 MatrixID에 해당하는 양자화 행렬로 업데이트하지 않고 이전에 복호화된 SizeID와 MatrixID에 해당하는 양자화 행렬을 이용한다.
또한, sid_mid_use_default_scaling_list_flag[SizeID][MatrixID]의 값이 1이고, scaling_list_update_flag[SizeID][MatrixID]의 값이 1인 경우에, 복호화기는 SizeID와 MatrixID에 해당하는 양자화 행렬을 복호화 하지 않고, 양자화 행렬의 계수 값은 부호화기 및/혹은 복호화기에 미리 정해져 있는 기본 행렬의 계수 값과 동일하게 결정하며, 이전에 복호화된 SizeID와 MatrixID에 해당하는 양자화 행렬을 복호화 대상 파라미터 내의 SizeID와 MatrixID에 해당하는 양자화 행렬로 업데이트한다.
표 17의 예에서, use_default_scaling_list_flag는 복호화되지 않을 수 있다.
또한, 복호화기는 양자화 행렬의 예측 복호화 방법에 관한 정보를 파라미터 세트에서 복호화하여 양자화 행렬에 대한 예측 복호화 방법의 종류에 대해 결정할 수 있다. 표 18의 예에서와 같이, 복호화기는 양자화 행렬의 예측 복호화 방법에 관한 정보인 pred_mode_flag를 적응 파라미터 세트로부터 복호화할 수 있다. 예를 들어, pred_mode_flag의 값이 1이면 복호화기는 양자화 행렬을 지수-골롬 코드와 역 DPCM(Inverse Differential Pulse Code Modulation)으로 복호화 할 수 있으며, pred_mode_flag의 값이 0이면 복호화기는 양자화 행렬의 계수를 이전에 복호화된 양자화 행렬의 계수 값과 동일한 값으로 결정한다. 이때, 양자화 행렬의 계수와 이전에 복호화된 양자화 행렬 계수 값들은 서로 다른 양자화 행렬 내의 값일 수 있으며, 이전에 복호화된 양자화 행렬은 참조 양자화 행렬을 의미할 수 있다.
양자화 행렬의 예측 복호화 방법이 양자화 행렬을 이전에 복호화된 양자화 행렬과 동일하게 결정하는 방법인 경우에, 복호화기는 복호화 대상 양자화 행렬의 참조 양자화 행렬 식별자를 파라미터 세트로부터 복호화할 수 있다. 표 18의 예와 같이, 복호화기는 복호화 대상 양자화 행렬의 참조 양자화 행렬 식별자인 pred_matrix_id_delta를 적응 파라미터 세트에서 복호화할 수 있다. 이때, 복호화기는 pred_matrix_id_delta와 수식 16을 이용해서 복호화 대상 양자화 행렬의 참조 양자화 행렬을 지시하는 RefMatrixID을 결정할 수 있다.
<수식 16>
RefMatrixID = MatrixID - ( 1 + pred_matrix_id_delta )
양자화 행렬의 예측 복호화 방법이 지수-골롬 코드와 역 DPCM으로 복호화하는 방법인 경우에, 복호화기는 이전에 복호화된 양자화 행렬의 계수 값과 복호화 대상 양자화 행렬의 계수 값 사이의 차이 값을 파라미터 세트로부터 복호화할 수 있다. 이때, 이전에 복호화된 양자화 행렬의 계수 값은 복호화 대상 양자화 행렬 내의 계수 값일 수 있다. 표 19의 예와 같이, 이전에 복호화된 양자화 행렬의 계수 값과 복호화 대상 양자화 행렬의 계수 값의 차이 값인 delta_coef는 적응 파라미터 세트로부터 복호화될 수 있다.
한편, 아래의 방법을 이용해서 시퀀스 혹은 픽처 혹은 슬라이스 내에서 기본 양자화 행렬 및 비-기본 양자화 행렬을 혼용해서 사용할 수 있으며, 불필요한 양자화 행렬을 수신하는 것을 방지할 수 있다.
예컨대, 양자화 행렬의 예측 복호화 방법이 복호화기가 이미 가지고 있는 이전에 복호화된 양자화 행렬과 동일하게 양자화 행렬을 결정하는 방법(pred_mode_flag=0)이면, 복호화기는 파라미터 세트로부터 복호화 대상 양자화 행렬의 참조 양자화 행렬 식별자를 이용하여 기본 행렬의 사용 여부를 복호화할 수 있다.
표 18의 예와 같이, 복호화기는 복호화 대상 양자화 행렬의 참조 양자화 행렬 식별자인 pred_matrix_id_delta를 파라미터 세트로부터 복호화할 수 있다. 이때, 복호화기는 pred_matrix_id_delta와 수식 17을 이용해서, 복호화 대상 양자화 행렬의 참조 양자화 행렬 혹은 기본 행렬을 특정하는 정보 RefMatrixID의 결정 및 기본 행렬 사용 여부의 결정을 수행할 수 있다.
<수식 17>
RefMatrixID = MatrixID - pred_matrix_id_delta
예컨대, RefMatrixID 값이 MatrixID 값과 동일하면, SizeID와 RefMatrixID에 해당하는 양자화 행렬의 계수 값은 부호화기 및/혹은 복호화기에 미리 정해져 있는 기본 행렬의 계수 값과 동일하게 결정된다. 이때, 기본 행렬은 SizeID와 RefMatrixID에 해당하는 기본 행렬을 의미한다. 그리고, pred_matrix_id_delta 값이 0이면, RefMatrixID 값과 MatrixID 값이 동일하게 된다. RefMatrixID 값이 MatrixID 값과 동일하지 않으면, RefMatrixID에 해당하는 양자화 행렬이 복호화 대상 양자화 행렬의 참조 양자화 행렬로 결정되고, 복호화 대상 양자화 행렬의 계수 값이 참조 양자화 행렬의 계수 값과 동일하게 결정된다.
SizeID에 해당하는 양자화 행렬의 크기가 복호화기에서 사용 가능한 변환 유닛의 최소 크기와 최대 크기에 포함되면, 상기 방법을 이용하여 복호화 대상 양자화 행렬의 참조 양자화 행렬 및 기본 행렬 사용 여부를 결정할 수 있다. SizeID에 해당하는 양자화 행렬의 크기가 복호화기에서 사용 가능한 변환 유닛의 최소 크기와 최대 크기에 포함되지 않으면, SizeID에 해당하는 양자화 행렬에 대해 기본 행렬과 동일하게 결정하지 않을 수 있다. SizeID를 변환 유닛 크기 정보 중 최대 크기와 최소 크기의 차이 값에 따라 양자화 행렬 복호화 혹은 기본 행렬 사용 여부 복호화 혹은 예측 복호화 방법 종류 복호화 중 적어도 하나 이상을 수행하는 경우에 상기 결정하는 과정이 수행될 수 있다.
복호화기는 또한, 양자화 행렬의 사용 여부를 결정한 후, 양자화 행렬의 사용 여부에 관한 정보를 파라미터 세트로부터 복호화할 수 있다.
표 20의 예와 같이, 복호화기는 양자화 행렬의 사용 여부 정보인 scaling_list_enable_flag를 파라미터 세트에서 복호화할 수 있다. 이때, scaling_list_enable_flag의 값이 1이면 복호화기는 역양자화에서 기본 행렬 혹은 비-기본 행렬 등의 양자화 행렬을 사용할 수 있으며, scaling_list_enable_flag의 값이 0이면 복호화기는 역양자화에서 양자화 행렬을 사용하지 않거나 혹은 모든 계수 값이 동일한 양자화 행렬을 사용할 수 있다. 이때, 모든 계수 값은 16일 수 있다.
또한, 양자화 행렬의 예측 복호화 방법이 역 DPCM과 지수-골롬 코드로 복호화하는 방법이면, 복호화기는 이전에 복호화된 양자화 행렬의 계수 값과 복호화 대상 양자화 행렬의 계수 값 사이의 차이 값을 파라미터 세트로부터 복호화할 수 있다. 이전에 복호화된 양자화 행렬의 계수 값은 복호화 대상 양자화 행렬 내 계수 값일 수 있다. 즉, 이전에 복호화된 양자화 행렬 계수 값과 복호화 대상 양자화 행렬의 계수 값은 동일한 양자화 행렬 내의 값들일 수 있다.
표 21의 예와 같이, 복호화기는 이전에 복호화된 양자화 행렬의 계수 값과 복호화 대상 양자화 행렬의 계수 값 사이의 차이 값인 delta_coef를 파라미터 세트에서 복호화할 수 있다. 만약, 표 21의 예와 같이, 수식 18를 이용해 양자화 행렬의 계수 값 nextcoef가 (1) 특정 값과 같고 (2) 양자화 행렬의 첫 번째 값이라면, 해당 양자화 행렬의 계수 값은 부호화기 및/혹은 복호화기에 미리 정해져 있는 기본 행렬의 계수 값과 동일하게 결정될 수 있다.
<수식 18>
nextcoef = ( nextcoef + delta_coef + 256 ) % 256
즉, 양자화 행렬의 계수 nextcoef가 (1) 특정 값과 같고 (2) 양자화 행렬의 첫 번째 값이라면, 복호화기는 해당 양자화 행렬을 기본 행렬로 사용할 수 있다. 이때, 특정 값은 0일 수 있다. 여기서, 기본 행렬은 SizeID와 MatrixID에 의해 특정되는 기본 행렬을 의미할 수 있다. 따라서, 양자화 행렬 계수 값 nextcoef이 0와 같고 양자화 행렬의 첫 번째 값이라면, 복호화기는 해당 양자화 행렬에 대한 양자화 행렬 차이 값의 복호화를 중지할 수 있다.
한편, 양자화 행렬의 예측 복호화 방법이 역 DPCM과 지수-골롬 코드로 복호화하는 방법인 경우, 복호화기는 이전에 복호화된 양자화 행렬 계수 값과 복호화 대상 양자화 행렬 계수 값의 차이 값을 파라미터 세트에서 복호화할 수 있다. 이전에 복호화된 양자화 행렬의 계수 값은 복호화 대상 양자화 행렬 내 계수 값일 수 있다. 즉, 이전에 복호화된 양자화 행렬 계수 값과 복호화 대상 양자화 행렬의 계수 값은 동일한 양자화 행렬 내의 값들일 수 있다.
표 22의 예와 같이, 복호화기는 이전에 복호화된 양자화 행렬의 계수 값과 복호화 대상 양자화 행렬의 계수 값 사이의 차이 값인 delta_coef를 파라미터 세트에서 복호화할 수 있다. 예컨대, 표 22의 예와 같이, 수식 18 즉, ( nextcoef + delta_coef + 256 ) % 256을 이용해 계산된 양자화 행렬 계수 값 nextcoef가 특정 값과 같고 양자화 행렬의 첫 번째 값이라면, 복호화기는 해당 양자화 행렬의 계수 값을 부호화기 및/혹은 복호화기에 미리 정해져 있는 기본 행렬의 계수 값과 동일하게 결정할 수 있다. 즉, nextcoef가 (1) 특정 값과 같고 (2) 양자화 행렬의 첫 번째 값이라면 복호화기는 해당 양자화 행렬을 기본 행렬로 사용할 수 있다. 이때, 특정 값은 0일 수 있으며, ( nextcoef + delta_coef + 256 ) % 256 로 계산된 양자화 행렬의 계수 값은 4x4 또는 8x8의 크기를 갖는 양자화 행렬의 계수 값일 수 있다.
또한, 양자화 행렬의 첫 번째 값은 scaling_list_dc_coef_minus8 을 이용하는 값일 수 있으며, 특정 값은 scaling_list_dc_coef_minus8 + 8에 해당하는 값일 수 있다.
scaling_list_dc_coef_minus8은 16x16 또는 32x32 크기를 갖는 양자화 행렬의 첫 번째 값을 의미할 수 있는데, 이는 DC 행렬 계수 값을 의미할 수 있다.
sizeID가 2인 경우에 scaling_list_dc_coef_minus8[ sizeID - 2 ][ matrixID ]은 16x16 크기의 DC 행렬 계수 값에 해당할 수 있다. 이때, 16x16은 양자화 행렬에 대응하는 변환 블록의 크기일 수 있다. SizeID가 3인 경우에 scaling_list_dc_coef_minus8[ sizeID - 2 ][ matrixID ]은 32x32 크기의 양자화 행렬에서 DC 행렬 계수 값에 해당할 수 있다. 이때, 32x32는 양자화 행렬에 대응하는 변환 블록의 크기일 수도 있다. 각 경우에, 기본 행렬은 SizeID와 MatrixID에 해당되는 기본 행렬을 의미할 수 있다. 따라서, 양자화 행렬의 계수 값 nextcoef이 0와 같고 양자화 행렬의 첫 번째 값이라면, 복호화기는 해당 양자화 행렬에 대한 양자화 행렬의 차이 값(계수 값의 차이)에 대한 복호화를 중지할 수 있다.
복호화기는 이 방법을 이용하여 양자화 행렬의 크기 혹은 변환 크기에 따라, DC 행렬 계수 값인 scaling_list_dc_coef_minus8의 복호화 여부 및 기본 행렬의 사용 여부에 대한 복호화를 다르게 수행 할 수 있다.
한편, 양자화 행렬의 계수 값을 이용해 기본 행렬의 사용 유무를 결정하는 양자화 행렬의 부호화/복호화 방법은 양자화 행렬 계수 값에 대한 부호화/복호화 과정의 복잡도가 증가하는 단점이 있다. 이에 비해, 본 발명은 영상 부호화/복호화에서 참조 양자화 행렬 식별자를 이용하여 기본 행렬의 사용 여부를 결정할 수 있다. 따라서, 양자화 행렬의 부호화/복호화 과정에서 계산의 복잡도를 감소시킬 수 있다.
우선 복호화기는 양자화 행렬 존재 유무를 나타내는 정보를 파라미터 세트에서 복호화할 수 있다. 표 23의 예와 같이, 복호화기는 비트스트림 내 양자화 행렬의 존재 유무를 나타내는 정보인 scaling_list_present_flag를 파라미터 세트로부터 복호화할 수 있다. 예컨대, scaling_list_present_flag의 값이 0이면 양자화 행렬이 존재하지 않는다는 것을 의미하며 양자화 행렬이 기본 양자화 행렬로 결정되며, scaling_list_present_flag 값이 1이면 부호화된 양자화 행렬이 존재한다는 것을 의미한다.
복호화기는 양자화 행렬의 예측 복호화 방법에 관한 정보를 파라미터 세트로부터 복호화하여 양자화 행렬의 예측 복호화 방법의 종류에 대해 결정할 수 있다. 이때, 예측 복호화 방법에 관한 정보를 복호화하는 파라미터 세트는 적응 파라미터 세트일 수 있다. 표 23의 예와 같이, 복호화기는 양자화 행렬의 예측 복호화 방법에 관한 정보인 scaling_list_pred_mode_flag를 파라미터 세트로부터 복호화할 수 있다. 예컨대, scaling_list_pred_mode_flag의 값이 1이면 복호화기는 양자화 행렬을 지수-골롬 코드와 역 DPCM과 스캔을 이용하여 복호화하여 양자화 행렬 내 계수를 예측 복호화하며, scaling_list_pred_mode_flag의 값이 0이면 복호화 대상 양자화 행렬의 계수 값을 참조 양자화 행렬의 계수 값과 동일한 값을 가지도록 결정하거나 혹은 복호화 대상 양자화 행렬의 계수 값을 기본 행렬의 계수 값과 동일하게 결정하여 양자화 행렬 간 예측을 수행한다. 여기서, 동일한 값을 가지도록 결정한다는 것은 특정 양자화 행렬의 계수 값을 복호화 대상 양자화 행렬의 계수 값으로 복사하는 양자화 행렬의 예측 방법을 적용한다는 것을 의미할 수 있다.
양자화 행렬의 예측 복호화 방법이 양자화 행렬을 참조 양자화 행렬 혹은 기본 행렬과 동일하게 결정하여 양자화 행렬 간 예측을 수행하는 방법이면, 복호화기는 복호화 대상 양자화 행렬의 참조 양자화 행렬 식별자와 기본 행렬의 사용 여부를 파라미터 세트로부터 복호화할 수 있다. 이때, 정보를 복호화하는 파라미터 세트는 적응 파라미터 세트일 수 있다.
즉, 복호화기는 표 23의 예와 같이, 복호화 대상 양자화 행렬의 참조 양자화 행렬 식별자와 기본 행렬의 사용 여부를 특정하는 정보인 scaling_list_pred_matrix_id_delta를 파라미터 세트로부터 복호화 할 수 있다. 이때, 복호화기는 scaling_list_pred_matrix_id_delta와 수식 19를 이용하여 복호화 대상 양자화 행렬의 참조 양자화 행렬 혹은 기본 행렬을 지시하는 RefMatrixID을 결정할 수 있다.
<수식 19>
RefMatrixID = matrixID - scaling_list_pred_matrix_id_delta
RefMatrixID 값이 matrixID 값과 동일하면, sizeID와 matrixID에 해당하는 복호화 대상 양자화 행렬의 계수 값이 부호화기 및/혹은 복호화기에 미리 정해져 있는 기본 행렬의 계수 값과 동일하게 결정될 수 있다. 여기서, 기본 행렬은 sizeID와 matrixID에 해당하는 기본 행렬일 수 있다. 수식 19를 참조하면, scaling_list_pred_matrix_id_delta 값이 0이면, RefMatrixID 값과 matrixID 값이 동일하다는 것을 의미한다.
RefMatrixID 값이 matrixID 값과 동일하지 않으면, 복호화기는 RefMatrixID에 해당하는 양자화 행렬을 복호화 대상 양자화 행렬의 참조 양자화 행렬로 결정하고, 복호화 대상 양자화 행렬의 계수 값을 참조 양자화 행렬의 계수 값과 동일하게 결정할 수 있다. 복호화 대상 양자화 행렬의 계수 값을 참조 양자화 행렬의 계수 값과 동일하게 결정한다는 것은 RefMatrixID에 해당하는 참조 양자화 행렬을 복호화 대상 양자화 행렬의 참조 양자화 행렬로 결정하고, 참조 양자화 행렬의 계수 값을 복호화 대상 양자화 행렬의 계수 값으로 복사하는 양자화 행렬의 예측 방법을 적용한다는 것을 의미할 수 있다. 이때, scaling_list_pred_matrix_id_delta 값은 양의 정수 값일 수 있다.
양자화 행렬의 예측 복호화 방법이 지수-골롬 코드와 역 DPCM과 스캔을 이용하여 양자화 행렬 내 계수를 예측 복호화하는 방법이면, 복호화기는 양자화 행렬 내에서 이전에 복호화된 양자화 행렬의 계수 값과 복호화 대상 양자화 행렬의 계수 값 사이의 차이 값을 파라미터 세트로부터 복호화할 수 있다. 이때, 복호화기가 차이값을 복호화하는 파라미터 세트는 적응 파라미터 세트일 수 있다.
표 24의 예와 같이, 복호화 대상 양자화 행렬의 크기가 16x16 (sizeID = 2) 혹은 32x32 (sizeID = 3)일 경우, 복호화기는 DC 행렬 계수인 scaling_list_dc_coef_minus8를 파라미터 세트로부터 복호화할 수 있다. 또한, 복호화기는 표 24의 예와 같이, 양자화 행렬 내에서 이전에 복호화된 양자화 행렬의 계수 값과 복호화 대상 양자화 행렬의 계수 값 사이의 차이 값인 scaling_list_delta_coef를 파라미터 세트로부터 복호화할 수 있다. 표 23과 24에서에서는 양자화 행렬 정보를 적응 파라미터 세트에서 복호화하는 경우를 예시하였으나, 본 발명은 이에 한정하지 않으며, 복호화기는 다른 파라미터 세트(시퀀스 파라미터 세트, 픽처 파라미터 세트 중 적어도 하나를 포함하는 파라미터 세트)에서 양자화 행렬 정보를 복호화할 수도 있다.
부호화기의 예에서 설명한 바와 같이, 종래의 양자화 행렬 부호화/복호화에서는 양자화 행렬의 예측 시 불필요한 정보를 부호화/복호화 하기 때문에 부호화 효율이 저하될 수 있다. 본 발명에서는 참조 양자화 행렬의 존재 유무에 따라 양자화 행렬 부호화/복호화를 달리 수행할 수 있으므로 양자화 행렬의 부호화/복호화 시 부호화 효율을 향상시킬 수 있다.
구체적으로 복호화기는 양자화 행렬의 존재 유무를 나타내는 정보를 파라미터 세트로부터 복호화할 수 있다. 복호화기는 표 25의 예와 같이, 양자화 행렬의 비트스트림 내 존재 유무를 나타내는 정보인 scaling_list_present_flag를 파라미터 세트로부터 복호화할 수 있다. 예를 들어, scaling_list_present_flag의 값이 0이면 양자화 행렬이 존재하지 않으며 모든 양자화 행렬이 기본 양자화 행렬로 결정되는 것을 의미하며, scaling_list_present_flag의 값이 1이면 부호화된 양자화 행렬이 존재하는 것을 의미한다.
또한, 복호화기는 matrixID가 0보다 클 경우에 양자화 행렬의 예측 복호화 방법에 관한 정보를 파라미터 세트로부터 복호화하여 양자화 행렬의 예측 복호화 방법의 종류에 대해 결정할 수 있다. 이때, 예측 복호화 방법에 관한 정보를 복호화하는 파라미터 세트는 적응 파라미터 세트일 수 있다.
예를 들어, 복호화기는 표 25의 예와 같이, matrixID가 0보다 클 경우에 양자화 행렬의 예측 복호화 방법에 관한 정보인 scaling_list_pred_mode_flag를 파라미터 세트로부터 복호화할 수 있다. 표 25의 예에서는, scaling_list_pred_mode_flag의 값이 1인 경우, 복호화기는 양자화 행렬을 지수-골롬 코드, 역 DPCM 그리고 스캔을 이용하여 복호화함으로써 양자화 행렬 내 계수를 예측 복호화 할 수 있으며, scaling_list_pred_mode_flag의 값이 0인 경우, 복호화기는 복호화 대상 양자화 행렬의 계수 값을 참조 양자화 행렬의 계수 값과 동일한 값을 가지도록 결정하여 양자화 행렬 간 예측을 수행할 수 있다. 여기서, 동일한 값을 가지도록 결정한다는 것은 참조 양자화 행렬의 계수 값을 복호화 대상 양자화 행렬의 계수 값으로 복사하는 양자화 행렬의 예측 방법을 적용한다는 것을 의미할 수 있다.
또한, 표 25의 예에서 matrixID가 0인 경우에는, scaling_list_pred_mode_flag의 값이 참(TRUE)이 되므로, 복호화기는 scaling_list_pred_mode_flag를 복호화하지 않고, 양자화 행렬을 역 DPCM과 지수-골롬 코드를 이용해서 스캔함으로써 복호화 할 수 있다.
복호화된 양자화 행렬의 예측 복호화 방법이 양자화 행렬을 참조 양자화 행렬과 동일하게 결정하여 양자화 행렬 간 예측을 수행하는 방법이며 matrixID가 0보다 클 경우, 복호화기는 복호화 대상 양자화 행렬의 참조 양자화 행렬 식별자를 파라미터 세트로부터 복호화할 수 있다. 이때, 참조 양자화 행렬 식별자를 복호화하는 파라미터 세트는 적응 파라미터 세트일 수 있다.
예컨대, 복호화기는 표 25와 같이, matrixID가 0보다 큰 경우에 복호화 대상 양자화 행렬의 참조 양자화 행렬 식별자인 scaling_list_pred_matrix_id_delta를 파라미터 세트에서 복호화할 수 있다. 이때, scaling_list_pred_matrix_id_delta와 수식 20을 이용해서 복호화 대상 양자화 행렬의 참조 양자화 행렬을 지시하는 RefMatrixID이 결정될 수 있다.
<수식 20>
RefMatrixID = matrixID - ( 1 + scaling_list_pred_matrix_id_delta)
표 25의 예에서, 0의 값을 갖는 matrixID는 각 sizeID 별로 첫 번째 양자화 행렬을 지시한다. 양자화 행렬의 예측은 동일한 sizeID를 가지는 이전에 복호화된 양자화 행렬로부터만 가능하고, sizeID 별로 첫 번째 양자화 행렬은 동일한 sizeID 값을 가지는 참조 양자화 행렬이 존재하지 않기 때문에 행렬 복사와 같은 방법의 양자화 행렬 예측을 수행할 수 없다. 따라서, matrixID가 0보다 큰 경우에 복호화기는 참조 양자화 행렬 식별자인 scaling_list_pred_matrix_id_delta를 복호화하여 RefMatrixID에 해당하는 양자화 행렬을 복호화 대상 양자화 행렬의 참조 양자화 행렬로 결정하고, 복호화 대상 양자화 행렬의 계수 값을 참조 양자화 행렬의 계수 값과 동일하게 결정할 수 있다. 복호화 대상 양자화 행렬의 계수 값을 참조 양자화 행렬의 계수 값과 동일하게 결정한다는 것은 RefMatrixID에 해당하는 참조 양자화 행렬을 복호화 대상 양자화 행렬의 참조 양자화 행렬로 결정하고, 참조 양자화 행렬의 계수 값을 복호화 대상 양자화 행렬의 계수 값으로 복사하는 양자화 행렬의 예측 방법을 적용한다는 것을 의미할 수 있다.
복호화된 양자화 행렬의 예측 복호화 방법이 지수-골롬 코드, 역 DPCM, 스캔을 이용하여 양자화 행렬 내 계수를 예측 복호화하는 방법이면, 복호화기는 양자화 행렬 내에서 이전에 복호화된 양자화 행렬의 계수 값과 복호화 대상 양자화 행렬의 계수 값 사이의 차이 값을 파라미터 세트로부터 복호화할 수 있다. 이때, 차이값을 복호화하는 파라미터 세트는 적응 파라미터 세트일 수 있다.
예컨대 표 26의 예와 같이, 복호화 대상 양자화 행렬의 크기가 16x16 (sizeID = 2) 혹은 32x32 (sizeID = 3)일 경우, 복호화기는 DC 행렬 계수인 scaling_list_dc_coef_minus8를 파라미터 세트로부터 복호화할 수 있다. 또한, 복호화기는 표 26의 예와 같이, 양자화 행렬 내에서 이전에 복호화된 양자화 행렬의 계수 값과 복호화 대상 양자화 행렬의 계수 값 사이의 차이 값인 scaling_list_delta_coef를 파라미터 세트로부터 복호화할 수 있다.
또한 복호화기는 scaling_list_dc_coef_minus8 혹은 nextCoef를 계산하는데 사용되는 scaling_list_delta_coef를 이용하여 기본 행렬의 사용 여부를 결정할 수 있다. 예를 들어, scaling_list_dc_coef_minus8의 값이 -8로 복호화되면 복호화기는 해당 양자화 행렬을 기본 행렬로 결정할 수 있으며, scaling_list_delta_coef를 복호화하여 계산된 첫 번째 nextCoef 값이 0면 복호화기는 해당 양자화 행렬을 기본 행렬로 결정할 수 있다.
부호화기의 예에서 설명한 바와 같이, 양자화 행렬의 계수 값을 이용해 기본 행렬의 사용 유무를 결정하는 양자화 행렬의 부호화/복호화 방법은 양자화 행렬의 계수 값에 대한 부호화/복호화 과정의 복잡도를 증가시키는 단점이 있다. 또한, 양자화 행렬 예측 시 불필요한 정보를 부호화/복호화 하기 때문에 부호화 효율이 저하된다. 본 발명에서는 영상 부호화/복호화에서 참조 양자화 행렬 식별자를 이용하여 기본 행렬의 사용 여부를 결정할 수 있으므로 양자화 행렬 부호화/복호화 시 계산 복잡도를 감소시킬 수 있고, 참조 양자화 행렬의 존재 유무에 따라 양자화 행렬의 부호화/복호화를 달리 수행할 수 있으므로 양자화 행렬의 부호화/복호화 시 부호화 효율을 향상시킬 수 있다.
구체적으로 복호화기는 우선 양자화 행렬의 존재 유무를 나타내는 정보를 파라미터 세트로부터 복호화할 수 있다. 복호화기는 표 27의 예와 같이, 비트스트림 내 양자화 행렬의 존재 유무를 나타내는 정보인 scaling_list_present_flag를 파라미터 세트로부터 복호화할 수 있다. 예컨대, scaling_list_present_flag의 값이 0이면 양자화 행렬이 존재하지 않고 모든 양자화 행렬이 기본 양자화 행렬로 결정되며, scaling_list_present_flag의 값이 1이면 부호화된 양자화 행렬이 존재한다고 결정된다.
또한, 복호화기는 양자화 행렬의 예측 복호화 방법에 관한 정보를 파라미터 세트로부터 복호화하여 양자화 행렬의 예측 복호화 방법의 종류에 대해 결정할 수 있다. 이때, 예측 복호화 방법에 대한 정보가 복호화되는 파라미터 세트는 적응 파라미터 세트일 수 있다.
구체적으로, 복호화기는 표 27의 예와 같이, 양자화 행렬의 예측 복호화 방법에 관한 정보인 scaling_list_pred_mode_flag를 파라미터 세트로부터 복호화할 수 있다. 예컨대, scaling_list_pred_mode_flag의 값이 1이면 복호화기는 양자화 행렬을 지수-골롬 코드, 역 DPCM 그리고 스캔을 이용하여 복호화함으로써 양자화 행렬 내 계수를 예측 복호화하며, scaling_list_pred_mode_flag의 값이 0이면 복호화 대상 양자화 행렬의 계수 값을 참조 양자화 행렬의 계수 값과 동일한 값을 가지도록 결정하거나 혹은 복호화 대상 양자화 행렬의 계수 값을 기본 행렬의 계수 값과 동일하게 결정하여 양자화 행렬 간 예측을 수행할 수 있다. 여기서, 동일한 값을 가지도록 결정한다는 것은 특정 양자화 행렬의 계수 값을 복호화 대상 양자화 행렬의 계수 값으로 복사하는 양자화 행렬 예측 방법을 적용한다는 것을 의미할 수 있다.
복호화된 양자화 행렬의 예측 복호화 방법이 양자화 행렬 간 예측을 위해 참조 양자화 행렬 혹은 기본 행렬과 동일하게 결정하는 방법이며 matrixID가 0보다 큰 경우, 복호화기는 복호화 대상 양자화 행렬의 참조 양자화 행렬 식별자와 기본 행렬의 사용 여부를 파라미터 세트로부터 복호화할 수 있다. 이때, 참조 양자화 행렬 식별자와 기본 행렬의 사용 여부가 복호화되는 파라미터 세트는 적응 파라미터 세트일 수 있다.
이 경우, 표 27의 예와 같이, 복호화부는 matrixID가 0보다 큰 경우에 복호화 대상 양자화 행렬의 참조 양자화 행렬 식별자와 기본 행렬의 사용 여부에 관한 정보인 scaling_list_pred_matrix_id_delta를 파라미터 세트로부터 복호화할 수 있다. 이때, scaling_list_pred_matrix_id_delta와 수식 21을 이용하여 복호화 대상 양자화 행렬의 참조 양자화 행렬 혹은 기본 행렬을 지시하는 RefMatrixID이 결정될 수 있다.
<수식 21>
RefMatrixID = matrixID - scaling_list_pred_matrix_id_delta
RefMatrixID 값이 matrixID 값과 동일하면, sizeID와 matrixID에 해당하는 복호화 대상 양자화 행렬의 계수 값은 부호화기 및/혹은 복호화기에 미리 정해져 있는 기본 행렬의 계수 값과 동일하게 결정된다. 여기서, 기본 행렬은 sizeID와 matrixID에 해당하는 기본 행렬을 의미한다. 수식 21에 의하면, scaling_list_pred_matrix_id_delta 값이 0인 경우는, RefMatrixID 값과 matrixID 값이 동일한 것을 의미한다.
RefMatrixID 값이 matrixID 값과 동일하지 않으면, RefMatrixID에 해당하는 양자화 행렬이 복호화 대상 양자화 행렬의 참조 양자화 행렬로 결정되고, 복호화 대상 양자화 행렬의 계수 값이 참조 양자화 행렬 계수 값과 동일한 것으로 결정된다. 복호화 대상 양자화 행렬의 계수 값을 참조 양자화 행렬의 계수 값과 동일하게 결정한다는 것은 RefMatrixID에 해당하는 참조 양자화 행렬을 복호화 대상 양자화 행렬의 참조 양자화 행렬로 결정하고, 참조 양자화 행렬의 계수 값을 복호화 대상 양자화 행렬의 계수 값으로 복사하는 양자화 행렬 예측 방법을 적용한다는 것을 의미할 수 있다.
이때, scaling_list_pred_mode_flag의 값이 0이면 양자화 행렬의 예측 복호화 방법이 양자화 행렬을 이전에 복호화된 양자화 행렬과 동일하게 결정하는 방법이라는 것을 나타내며, 양자화 행렬의 예측은 동일한 sizeID를 가지는 이전에 복호화된 양자화 행렬로부터 가능하게 된다.
한편, matrixID의 값이 0이면 각 sizeID 별로 첫 번째 양자화 행렬을 지시하는데, scaling_list_pred_mode_flag 값이 0이고 matrixID의 값이 0이면, sizeID 별로 첫 번째 양자화 행렬은 동일한 sizeID 값을 가지는 참조 양자화 행렬이 존재하지 않기 때문에 행렬 복사와 같은 방법의 양자화 행렬 예측이 수행될 수 없다. 따라서, 이런 경우에 복호화기는 scaling_list_pred_matrix_id_delta를 복호화하지 않고 scaling_list_pred_matrix_id_delta의 값을 0으로 유추한다. scaling_list_pred_matrix_id_delta의 값이 0이면 RefMatrixID 값이 matrixID 값과 동일하기 때문에, sizeID와 matrixID에 해당하는 복호화 대상 양자화 행렬의 계수 값은 부호화기 및/혹은 복호화기에 미리 정해져 있는 기본 행렬의 계수 값과 동일하게 결정된다. 여기서, 기본 행렬은 sizeID와 matrixID에 해당하는 기본 행렬을 의미한다.
복호화된 양자화 행렬의 예측 복호화 방법이 지수-골롬 코드, 역 DPCM 그리고 스캔을 이용하여 양자화 행렬 내 계수를 예측 복호화하는 방법이면, 복호화기는 양자화 행렬 내에서 이전에 복호화된 양자화 행렬의 계수 값과 복호화 대상 양자화 행렬의 계수 값 사이의 차이 값을 파라미터 세트로부터 복호화할 수 있다. 이때, 차이 값을 복호화하는 파라미터 세트는 적응 파라미터 세트일 수 있다.
예컨대, 표 28의 예와 같이, 복호화 대상 양자화 행렬의 크기가 16x16 (sizeID = 2) 혹은 32x32 (sizeID = 3)일 경우, 복호화기는 DC 행렬 계수인 scaling_list_dc_coef_minus8를 파라미터 세트로부터 복호화 할 수 있다. 표 28의 예와 같이, 복호화기는 양자화 행렬 내에서 이전에 복호화된 양자화 행렬의 계수 값과 복호화 대상 양자화 행렬의 계수 값 사이의 차이 값인 scaling_list_delta_coef를 파라미터 세트로부터 복호화할 수 있다.
부호화기의 예에서 설명한 바와 같이, 종래의 양자화 행렬 부호화/복호화는 양자화 행렬의 전송 시 행렬 내의 전체 계수들과 DC 행렬 계수를 부호화/복호화하는데, 이때 DC 행렬 계수에 대해 예측 부호화/복호화하지 않기 때문에 부호화 효율 향상에 한계가 있다. 본 발명에서는 양자화 행렬 내 DC 행렬 계수의 예측 부호화/복호화를 수행할 수 있으며, 이를 통해 부호화 효율을 향상시킬 수 있다. 예컨대, 표 29 및 표 30의 실시예는 DC 행렬 계수를 상수 8로부터 예측하지 않고, 주변 계수 간의 높은 상관도를 이용하여 주변 AC 계수들로부터 예측함으로써 부호화 효율을 향상시킬 수 있다. 또한, 표 29 및 표 30의 실시예는 양자화 행렬의 부호화/복호화 순서와 양자화 행렬의 복원 순서를 일치시킴으로써, DC 행렬 계수를 저장해야 할 메모리 공간을 절약할 수 있다. 또한, 표 29 및 표 30의 실시예는 기본 행렬의 사용 여부를 지시할 때, 여러 신택스 요소를 이용하지 않고 scaling_list_delta_coef의 신택스 요소를 이용할 수 있다.
구체적으로 복호화기는 양자화 행렬의 존재 유무를 나타내는 정보를 파라미터 세트에서 복호화할 수 있다. 예컨대, 표 29의 예와 같이, 복호화기는 비트스트림 내 양자화 행렬의 존재 유무를 나타내는 정보인 scaling_list_present_flag를 파라미터 세트로부터 복호화할 수 있다. 이때, scaling_list_present_flag의 값이 0이면 양자화 행렬이 존재하지 않고 모든 양자화 행렬을 기본 양자화 행렬로 결정하며, scaling_list_present_flag의 값이 1이면 부호화된 양자화 행렬이 존재하는 것으로 결정된다.
복호화기는 양자화 행렬의 예측 복호화 방법에 관한 정보를 파라미터 세트로부터 복호화하여 양자화 행렬의 예측 복호화 방법의 종류에 대해 결정할 수 있다. 이때, 복호화 예측 방법에 관한 정보를 복호화하는 파라미터 세트는 적응 파라미터 세트일 수 있다.
구체적으로, 복호화기는 표 29의 예와 같이, 양자화 행렬의 예측 복호화 방법에 관한 정보인 scaling_list_pred_mode_flag를 파라미터 세트로부터 복호화할 수 있다. 예컨대, scaling_list_pred_mode_flag의 값이 1이면 복호화기는 지수-골롬 코드, 역 DPCM 그리고 스캔을 이용하여 양자화 행렬 내 계수를 예측 복호화할 수 있으며, scaling_list_pred_mode_flag의 값이 0이면 복호화기는 복호화 대상 양자화 행렬의 계수 값을 참조 양자화 행렬의 계수 값과 동일한 값을 가지도록 결정하여 양자화 행렬 간 예측을 수행할 수 있다. 여기서, 동일한 값을 가지도록 결정한다는 것은 참조 양자화 행렬의 계수 값을 복호화 대상 양자화 행렬의 계수 값으로 복사하는 양자화 행렬의 예측 방법을 적용한다는 것을 의미할 수 있다.
복호화된 양자화 행렬의 예측 복호화 방법이 양자화 행렬 간 예측을 위해 양자화 행렬을 참조 양자화 행렬과 동일하게 결정하는 방법이면, 복호화기는 복호화 대상 양자화 행렬의 참조 양자화 행렬 식별자를 파라미터 세트에서 복호화할 수 있다. 이때, 참조 양자화 행렬 식별자를 복호화하는 파라미터 세트는 적응 파라미터 세트일 수 있다.
구체적으로 복호화기는 표 29의 예와 같이, 복호화 대상 양자화 행렬의 참조 양자화 행렬 식별자인 scaling_list_pred_matrix_id_delta를 파라미터 세트로부터 복호화할 수 있다. 이때, scaling_list_pred_matrix_id_delta와 수식 22를 이용해서 복호화 대상 양자화 행렬의 참조 양자화 행렬을 지시하는 RefMatrixID이 결정될 수 있다.
<수식 22>
RefMatrixID = matrixID - ( 1 + scaling_list_pred_matrix_id_delta)
복호화기는 RefMatrixID에 해당하는 양자화 행렬을 복호화 대상 양자화 행렬의 참조 양자화 행렬로 결정하고, 복호화 대상 양자화 행렬의 계수 값을 참조 양자화 행렬의 계수 값과 동일하게 결정할 수 있다. 복호화 대상 양자화 행렬의 계수 값을 참조 양자화 행렬 계수 값과 동일하게 결정하는 것은 RefMatrixID에 해당하는 참조 양자화 행렬을 복호화 대상 양자화 행렬의 참조 양자화 행렬로 결정하고, 참조 양자화 행렬의 계수 값을 복호화 대상 양자화 행렬의 계수 값으로 복사하는 양자화 행렬 예측 방법을 적용한다는 것을 의미할 수 있다.
복호화된 양자화 행렬의 예측 복호화 방법이 지수-골롬 코드, 역 DPCM 그리고 스캔을 이용하여 양자화 행렬 내 계수를 예측 복호화는 방법이면, 복호화기는 양자화 행렬 내에서 이전에 복호화된 양자화 행렬의 계수 값과 복호화 대상 양자화 행렬의 계수 값 사이의 차이 값을 파라미터 세트로부터 복호화할 수 있다. 이때, 차이값이 복호화되는 파라미터 세트는 적응 파라미터 세트일 수 있다.
예컨대, 복호화기는 표 30과 같이, 양자화 행렬 내에서 이전에 복호화된 양자화 행렬의 계수 값과 복호화 대상 양자화 행렬의 계수 값 사이의 차이 값인 scaling_list_delta_coef를 파라미터 세트로부터 복호화할 수 있다. 이때, 복호화기는 nextCoef를 계산하는데 사용되는 scaling_list_delta_coef를 이용하여 기본 행렬의 사용 여부를 결정할 수 있다. 즉, scaling_list_delta_coef를 복호화하여 계산된 첫 번째 nextCoef 값이 0인 경우, 복호화기는 해당 양자화 행렬을 기본 행렬로 결정할 수 있다.
또한 복호화기는 표 30의 예와 같이, DC 행렬 계수에 해당하는 양자화 행렬의 계수 값 사이의 차이 값인 scaling_list_dc_coef_res를 파라미터 세트로부터 복호화할 수 있다. 이때, scaling_list_dc_coef_res는 복호화 대상 양자화 행렬의 크기가 16x16 (sizeID = 2) 혹은 32x32 (sizeID = 3)이고 기본 행렬을 사용하지 않을 경우 (useDefaultScalingMatrixFlag =0)에 복호화될 수 있다.
DC 행렬 계수를 별도로 복호화하는 16x16 혹은 32x32 크기의 양자화 행렬에 대하여, DC 행렬 계수는 수식 23과 같이 scaling_list_dc_coef_res 값과 DC 위치에 존재하는 행렬 계수와의 합을 이용해서 계산될 수 있다.
<수식 23>
ScalingFactor[ 2 ][ matrixID ][ 0 ][ 0 ] = scaling_list_dc_coef_res[ 0 ][ matrixID ] + ScalingFactor[ 2 ][ matrixID ][ 0 ][ 0 ] with matrixID=0..5
ScalingFactor[ 3 ][ matrixID ][ 0 ][ 0 ] = scaling_list_dc_coef_res[ 1 ][ matrixID ] + ScalingFactor[ 3 ][ matrixID ][ 0 ][ 0 ] with matrixID=0..1
수식 23에서 ScalingFactor[2]는 16x16 크기의 양자화 행렬, ScalingFactor[3]은 32x32 크기의 양자화 행렬을 의미한다. 또한, ScalingFactor[2][matrixID][0][0]는 matrixID에 대응하는 16x16 크기의 양자화 행렬 내 DC 행렬 계수를 의미하고, ScalingFactor[3][matrixID][0][0]는 matrixID에 대응하는 32x32 양자화 행렬 내 DC 행렬 계수를 의미한다.
한편, 양자화 행렬의 계수 값을 이용해 기본 행렬 사용 유무를 결정하는 양자화 행렬의 부호화/복호화 방법은 양자화 행렬의 계수 값에 대한 부호화/복호화 과정의 복잡도를 증가시키는 단점이 있다. 또한, 양자화 행렬의 전송 시 행렬 내의 전체 계수들과 DC 행렬 계수를 부호화/복호화 하는데, 이때 DC 행렬 계수에 대해 예측 부호화/복호화하지 않기 때문에 부호화 효율 향상에 한계가 있다.
본 발명에서는 영상 부호화/복호화에서 참조 양자화 행렬 식별자를 이용하여 기본 행렬의 사용 여부를 결정하기 때문에 양자화 행렬의 부호화/복호화 시 복잡도를 감소시킬 수 있고, 양자화 행렬 내 DC 행렬 계수에 대한 예측 부호화/복호화를 수행하기 때문에 부호화 효율을 향상시킬 수 있다. 예를 들어, 표 31 및 표 32의 예에서는 행렬의 DC 행렬 계수를 상수 8로부터 예측하지 않고, 주변 계수 간의 높은 상관도를 이용하여 주변 AC 계수들로부터 예측할 수 있으므로 부호화 효율을 향상시킬 수 있다. 또한, 표 31 및 표 32의 예에서는 양자화 행렬의 부호화/복호화 순서와 양자화 행렬의 복원 순서를 일치시킬 수 있으므로, DC 행렬 계수를 저장하는 메모리 공간을 절약할 수 있다. 또한, 표 31 및 표 32의 예에서는 기본 행렬의 사용 여부를 지시할 때, 여러 신택스 요소를 이용하지 않고 scaling_list_delta_coef의 신택스 요소를 이용할 수 있다.
구체적으로 복호화기는 양자화 행렬의 존재 유무를 나타내는 정보를 파라미터 세트로부터 복호화할 수 있다. 표 31의 예와 같이, 복호화기는 비트스트림 내 양자화 행렬의 존재 유무를 나타내는 정보인 scaling_list_present_flag를 파라미터 세트로부터 복호화할 수 있다. 이때, scaling_list_present_flag의 값이 0이면 양자화 행렬이 존재하지 않고 모든 양자화 행렬이 기본 양자화 행렬로 결정되며, scaling_list_present_flag의 값이 1이면 부호화된 양자화 행렬이 존재하는 것으로 결정된다.
복호화기는 양자화 행렬의 예측 복호화 방법에 관한 정보를 파라미터 세트로부터 복호화하여 양자화 행렬에 대한 예측 복호화 방법의 종류를 결정할 수 있다. 이때, 예측 복호화 방법에 관한 정보를 복호화하는 파라미터 세트는 적응 파라미터 세트일 수 있다.
예들 들어 복호화기는 표 31의 예와 같이, 양자화 행렬의 예측 복호화 방법에 관한 정보인 scaling_list_pred_mode_flag를 파라미터 세트에서 복호화할 수 있다. 표 31의 예에서, scaling_list_pred_mode_flag의 값이 1이면 양자화 행렬 내 계수를 예측 복호화하기 위해 양자화 행렬이 지수-골롬 코드와 역 DPCM과 스캔을 이용하여 복호화될 수 있으며, scaling_list_pred_mode_flag의 값이 0이면 양자화 행렬 간 예측을 위해 복호화 대상 양자화 행렬의 계수 값이 참조 양자화 행렬의 계수 값과 동일한 값을 가지도록 결정되거나 혹은 복호화 대상 양자화 행렬의 계수 값이 기본 행렬의 계수 값과 동일하게 결정될 수 있다. 이때, 동일한 값을 가지도록 결정된다는 것은 특정 양자화 행렬 계수 값을 복호화 대상 양자화 행렬 계수 값으로 복사하는 양자화 행렬 예측 방법을 적용한다는 것을 의미할 수 있다.
복호화된 양자화 행렬의 예측 복호화 방법이 양자화 행렬을 참조 양자화 행렬 혹은 기본 행렬과 동일하게 결정하는 양자화 행렬 간 예측 방법이면, 복호화기는 복호화 대상 양자화 행렬의 참조 양자화 행렬 식별자와 기본 행렬의 사용 여부를 파라미터 세트로부터 복호화할 수 있다. 이때, 복호화되는 파라미터 세트는 적응 파라미터 세트일 수 있다.
구체적으로, 복호화기는 표 31의 예와 같이, 복호화 대상 양자화 행렬의 참조 양자화 행렬 식별자와 기본 행렬의 사용 여부에 관한 정보인 scaling_list_pred_matrix_id_delta를 파라미터 세트로부터 복호화할 수 있다. 이때, scaling_list_pred_matrix_id_delta와 수식 24를 이용하여 복호화 대상 양자화 행렬의 참조 양자화 행렬 혹은 기본 행렬을 지시하는 RefMatrixID을 결정한다.
<수식 24>
RefMatrixID = matrixID - scaling_list_pred_matrix_id_delta
RefMatrixID 값이 matrixID 값과 동일하면, sizeID와 matrixID에 해당하는 복호화 대상 양자화 행렬의 계수 값은 부호화기 및/혹은 복호화기에 미리 정해져 있는 기본 행렬의 계수 값과 동일하게 결정될 수 있다. 이때, 기본 행렬은 sizeID와 matrixID에 해당하는 기본 행렬을 의미한다. 그리고, 수식 24에서 scaling_list_pred_matrix_id_delta 값이 0이면, RefMatrixID 값과 matrixID 값은 동일한 것을 의미한다. RefMatrixID 값이 matrixID 값과 동일하지 않으면, RefMatrixID에 해당하는 양자화 행렬이 복호화 대상 양자화 행렬의 참조 양자화 행렬로 결정되고, 복호화 대상 양자화 행렬의 계수 값이 참조 양자화 행렬의 계수 값과 동일하게 결정될 수 있다. 복호화 대상 양자화 행렬의 계수 값을 참조 양자화 행렬의 계수 값과 동일하게 결정한다는 것은 RefMatrixID에 해당하는 참조 양자화 행렬을 복호화 대상 양자화 행렬의 참조 양자화 행렬로 결정하고, 참조 양자화 행렬의 계수 값을 복호화 대상 양자화 행렬의 계수 값으로 복사하는 양자화 행렬 예측 방법을 적용한다는 것을 의미할 수 있다.
복호화된 양자화 행렬의 예측 복호화 방법이 양자화 행렬 내 계수를 예측 복호화하기 위해 지수-골롬 코드, 역 DPCM 그리고 스캔을 이용하여 복호화하는 방법이면, 복호화기는 양자화 행렬 내에서 이전에 복호화된 양자화 행렬의 계수 값과 복호화 대상 양자화 행렬의 계수 값 사이의 차이 값을 파라미터 세트에서 복호화할 수 있다. 이때, 차이 값을 복호화 하는 파라미터 세트는 적응 파라미터 세트일 수 있다.
또한, 복호화기는 표 32의 예와 같이, 양자화 행렬 내에서 이전에 복호화된 양자화 행렬의 계수 값과 복호화 대상 양자화 행렬의 계수 값 사이의 차이 값인 scaling_list_delta_coef를 파라미터 세트에서 복호화할 수 있다. 표 32의 예와 같이 복호화기는, DC 행렬 계수에 해당하는 양자화 행렬의 계수 값의 차이 값인 scaling_list_dc_coef_res를 파라미터 세트에 복호화할 수 있다. 이때, scaling_list_dc_coef_res는 복호화 대상 양자화 행렬의 크기가 16x16 (sizeID = 2) 혹은 32x32 (sizeID = 3) 양자화 행렬이고 기본 행렬을 사용하지 않을 경우 (useDefaultScalingMatrixFlag =0)에 복호화될 수 있다.
DC 행렬 계수를 별도로 복호화하는 16x16 크기의 양자화 행렬 혹은 32x32 크기의 양자화 행렬에 대하여, DC 행렬 계수는 수식 25와 같이 scaling_list_dc_coef_res 값과 DC 위치에 존재하는 행렬의 계수와의 합을 이용해서 계산될 수 있다.
<수식 25>
ScalingFactor[ 2 ][ matrixID ][ 0 ][ 0 ] = scaling_list_dc_coef_res[ 0 ][ matrixID ] + ScalingFactor[ 2 ][ matrixID ][ 0 ][ 0 ] with matrixID=0..5
ScalingFactor[ 3 ][ matrixID ][ 0 ][ 0 ] = scaling_list_dc_coef_res[ 1 ][ matrixID ] + ScalingFactor[ 3 ][ matrixID ][ 0 ][ 0 ] with matrixID=0..1
수식 25에서 ScalingFactor[ 2 ]는 16x16 양자화 행렬, ScalingFactor[ 3 ]은 32x32 양자화 행렬을 의미한다. 또한, ScalingFactor[ 2 ][ matrixID ][ 0 ][ 0 ]는 해당 matrixID에 대응하는 16x16 양자화 행렬 내 DC 행렬 계수를 의미하고, ScalingFactor[ 3 ][ matrixID ][ 0 ][ 0 ]는 해당 matrixID에 대응하는 32x32 양자화 행렬 내 DC 행렬 계수를 의미한다.
부호화기에 대한 예에서 설명한 바와 같이, 종래의 양자화 행렬 부호화/복호화에서는 부호화/복호화 시 양자화 행렬의 크기가 아니라 양자화와 역양자화 시 양자화 행렬의 크기를 이용하여 양자화 행렬 복사를 수행한다. 따라서, 제한된 개수의 양자화 행렬들로부터 양자화 행렬을 복사할 수 밖에 없으므로 양자화 행렬의 부호화부호화 효율에 한계가 있다. 본 발명에서는 부호화/복호화 시 양자화 행렬의 크기와 동일한 양자화 행렬로부터 양자화 행렬의 예측을 수행할 수 있으므로 부호화 효율의 향상 및 양자화 행렬의 예측 자유도를 증가시킬 수 있다.
구체적으로 복호화기는 양자화 행렬의 존재 유무를 나타내는 정보를 파라미터 세트로부터 복호화할 수 있다. 표 33 및 표 34의 예와 같이, 복호화기는 비트스트림 내 양자화 행렬의 존재 유무를 나타내는 정보인 scaling_list_present_flag를 파라미터 세트로부터 복호화할 수 있다. 예컨대, scaling_list_present_flag의 값이 0이면 양자화 행렬이 존재하지 않고 모든 양자화 행렬이 기본 양자화 행렬로 결정되며, scaling_list_present_flag의 값이 1이면 부호화된 양자화 행렬이 존재하는 것으로 결정된다.
또한, 복호화기는 양자화 행렬의 예측 복호화 방법에 관한 정보를 파라미터 세트에서 복호화하여 양자화 행렬의 예측 복호화 방법의 종류를 결정할 수 있다. 이때, 예측 복호화 방법에 관한 정보를 복호화하는 파라미터 세트는 적응 파라미터 세트일 수 있다.
구체적으로 표 33 및 표 34의 예와 같이, 복호화기는 양자화 행렬의 예측 복호화 방법에 관한 정보인 scaling_list_pred_mode_flag를 파라미터 세트로부터 복호화할 수 있다. 예를 들어, scaling_list_pred_mode_flag의 값이 1이면 양자화 행렬 내 계수를 예측 복호화하기 위해 양자화 행렬이 지수-골롬 코드, 역 DPCM 그리고 스캔을 이용하여 복호화되며, scaling_list_pred_mode_flag의 값이 0이면 양자화 행렬 간 예측을 위해 복호화 대상 양자화 행렬 계수 값이 참조 양자화 행렬 계수 값과 동일한 값을 가지도록 결정된다. 이때, 동일한 값을 가지도록 결정한다는 것은 참조 양자화 행렬 계수 값을 복호화 대상 양자화 행렬 계수 값으로 복사하는 양자화 행렬 예측 방법을 적용한다는 것을 의미할 수 있다.
복호화된 양자화 행렬의 예측 복호화 방법이 양자화 행렬 간 예측을 위해 양자화 행렬을 참조 양자화 행렬과 동일하게 결정하는 방법이면, 복호화기는 복호화 대상 양자화 행렬의 참조 양자화 행렬 식별자를 파라미터 세트로부터 복호화할 수 있다. 이때, 참조 양자화 행렬 식별 정보(식별자)는 복호화 대상 양자화 행렬의 참조 양자화 행렬의 크기와 참조 양자화 행렬 중 최소 하나 이상을 포함할 수 있다. 그리고, 참조 양자화 행렬 식별자를 복호화하는 파라미터 세트는 적응 파라미터 세트일 수 있다.
예를 들어, 표 33의 예와 같이, 복호화기는 복호화 대상 양자화 행렬의 참조 양자화 행렬 식별 정보인 scaling_list_pred_size_matrix_id_delta를 파라미터 세트로부터 복호화할 수 있다. 이때 scaling_list_pred_size_matrix_id_delta와 수식 26을 이용해서 복호화 대상 양자화 행렬의 참조 양자화 행렬의 크기인 RefSizeID와 참조 양자화 행렬을 지시하는 RefMatrixID가 결정될 수 있다.
<수식 26>
RefSizeID = sizeID - (scaling_list_pred_size_matrix_id_delta / 6)
RefMatrixID = scaling_list_pred_size_matrix_id_delta % 6
또한, 표 34의 예와 같이, 복호화기는 복호화 대상 양자화 행렬의 참조 양자화 행렬에 대한 식별 정보인 scaling_list_pred_size_id_delta와 scaling_list_pred_size_matrix_id_delta 를 파라미터 세트로부터 복호화 할 수 있다. 이때 scaling_list_pred_size_id_delta의 값과 수식 27을 이용하여 RefSizeID가 결정될 수 있으며, scaling_list_pred_matrix_id_delta와 수식 28를 이용해서 복호화 대상 양자화 행렬의 참조 양자화 행렬을 지시하는 RefMatrixID가 결정될 수 있다.
<수식 27>
RefSizeID = sizeID - scaling_list_pred_size_id_delta
<수식 28>
RefMatrixID = matrixID - scaling_list_pred_matrix_id_delta
복호화 대상 양자화 행렬의 계수 값은 sizeID가 RefSizeID와 같고 matrixID가 RefMatrixID와 같은 참조 양자화 행렬의 계수 값으로부터 동일하게 결정될 수 있다. 즉, 복호화기는 참조 양자화 행렬을 복호화 대상 양자화 행렬로 복사할 수 있다. 복호화 대상 양자화 행렬의 계수 값을 참조 양자화 행렬 계수 값과 동일하게 결정한다는 것은 RefSizeID와 RefMatrixID에 해당하는 참조 양자화 행렬을 복호화 대상 양자화 행렬의 참조 양자화 행렬로 결정하고, 참조 양자화 행렬의 계수 값을 복호화 대상 양자화 행렬의 계수 값으로 복사하는 양자화 행렬의 예측 방법을 적용한다는 것을 의미할 수 있다.
표 33 및 표 34의 예를 통해, 동일한 sizeID를 가지는 양자화 행렬로부터 양자화 행렬을 예측하는 것뿐만 아니라, 부호화/복호화 시 행렬의 크기는 동일하지만 다른 sizeID를 가지는 양자화 행렬로부터도 양자화 행렬을 예측하는 것이 가능하게 된다.
또한, 표 33 및 표 34의 예에서, scaling_list_pred_size_matrix_id_delta 값, scaling_list_pred_size_id_delta 값, scaling_list_pred_matrix_id_delta 값이 특정 범위 내의 값으로 제약될 수도 있다. 예를 들어, scaling_list_pred_size_matrix_id_delta는 0부터 17 사이의 값을 가지고, scaling_list_pred_size_id_delta는 0부터 2 사이의 값을 가지고, scaling_list_pred_matrix_id_delta 는 0부터 5 사이의 값을 가지도록 할 수도 있다.
또한, 표 33 및 표 34의 예에서 복호화기는 복호화 대상 양자화 행렬보다 더 큰 크기의 양자화 행렬로부터는 복호화 대상 양자화 행렬을 예측하지 않을 수 있다.
또한, 표 33 및 표 34의 예에서 복호화 대상 양자화 행렬을 8x8 크기 양자화 행렬부터 예측할 때, 복호화기는 8x8의 크기를 가지는 양자화 행렬 내 DC 행렬 계수 위치에 해당하는 값을 DC 행렬 계수로 판단하여, 해당 위치의 값을 예측할 수 있다. 그리고, 16x16 혹은 32x32의 크기를 가지는 양자화 행렬로부터 복호화 대상 양자화 행렬을 예측할 때, 복호화기는 DC 행렬 계수도 함께 예측할 수 있다.
한편, 양자화 행렬의 예측 복호화 방법이 양자화 행렬 내 계수를 예측 복호화하기 위해 지수-골롬 코드, 역 DPCM 그리고 스캔을 이용하여 복호화하는 방법이면, 복호화기는 양자화 행렬 내에서 이전에 복호화된 양자화 행렬의 계수 값과 복호화 대상 양자화 행렬의 계수 값 사이의 차이 값을 파라미터 세트로부터 복호화할 수 있다. 이때, 차이값을 복호화하는 파라미터 세트는 적응 파라미터 세트일 수 있다.
구체적으로 표 35의 예와 같이, 복호화 대상 양자화 행렬의 크기가 16x16 (sizeID = 2) 혹은 32x32 (sizeID = 3)일 경우, 복호화기는 DC 행렬 계수인 scaling_list_dc_coef_minus8를 파라미터 세트에서 복호화할 수 있다.
또한, 복호화기는 표 35의 예와 같이, 양자화 행렬 내에서 이전에 복호화된 양자화 행렬의 계수 값과 복호화 대상 양자화 행렬의 계수 값 사이의 차이 값인 scaling_list_delta_coef를 파라미터 세트로부터 복호화할 수 있다.
또한, 복호화기는 scaling_list_dc_coef_minus8 혹은 nextCoef를 계산하는데 사용되는 scaling_list_delta_coef를 이용하여 기본 행렬의 사용 여부를 결정할 수 있다. 즉, scaling_list_dc_coef_minus8의 값이 -8로 복호화되면 해당 양자화 행렬이 기본 행렬로 결정될 수 있으며, scaling_list_delta_coef를 복호화하여 계산된 첫 번째 nextCoef 값이 0면 해당 양자화 행렬이 기본 행렬로 결정될 수 있다.
부호화기의 예에서 설명한 바와 같이, 종래의 양자화 행렬 부호화/복호화에서는 양자화 행렬의 계수 값을 이용해 기본 행렬의 사용 유무를 결정하기 때문에 행렬의 계수 값을 부호화/복호화하는 과정의 복잡도가 증가하며, 부호화/복호화 시 양자화 행렬의 크기가 아닌 양자화와 역양자화 시 양자화 행렬의 크기를 이용하여 양자화 행렬 복사를 수행하기 때문에, 제한된 개수의 양자화 행렬들로부터 양자화 행렬을 복사하게 된다. 본 발명에서는 참조 양자화 행렬 식별자를 이용하여 기본 행렬의 사용 여부를 결정할 수 있으므로 양자화 행렬 부호화/복호화 시 계산 복잡도를 감소시킬 수 있다. 또한, 본 발명에서는 부호화/복호화 시 양자화 행렬의 크기와 동일한 양자화 행렬로부터 양자화 행렬의 예측을 수행할 수 있으므로 부호화 효율의 향상 및 양자화 행렬 예측의 자유도를 증가시킬 수 있다.
구체적으로 복호화기는 양자화 행렬의 존재 유무를 나타내는 정보를 파라미터 세트에서 복호화할 수 있다. 복호화기는 표 36 및 표 37의 예와 같이, 비트스트림 내 양자화 행렬의 존재 유무를 나타내는 정보인 scaling_list_present_flag를 파라미터 세트로부터 복호화할 수 있다. 예컨대, scaling_list_present_flag의 값이 0이면 양자화 행렬이 존재하지 않고 모든 양자화 행렬이 기본 양자화 행렬로 결정될 수 있으며, scaling_list_present_flag의 값이 1이면 부호화된 양자화 행렬이 존재하는 것으로 결정될 수 있다.
양자화 행렬의 예측 복호화 방법 정보를 파라미터 세트에서 복호화하여 양자화 행렬의 예측 복호화 방법 종류에 대해 결정할 수 있다. 이때, 파라미터 세트는 적응 파라미터 세트일 수 있다.
표 36 및 표 37의 예와 같이, 복호화기는 양자화 행렬의 예측 복호화 방법에 관한 정보인 scaling_list_pred_mode_flag를 파라미터 세트에서 복호화할 수 있다. 이때, scaling_list_pred_mode_flag의 값이 1이면 복호화기는 양자화 행렬 내 계수를 예측 복호화하기 위해 양자화 행렬을 지수-골롬 코드, 역 DPCM 그리고 스캔을 이용하여 복호화할 수 있으며, scaling_list_pred_mode_flag의 값이 0이면 복호화기는 양자화 행렬 간 예측을 위해 복호화 대상 양자화 행렬 계수 값을 참조 양자화 행렬 계수 값과 동일한 값을 가지도록 결정하거나 혹은 복호화 대상 양자화 행렬 계수 값을 기본 행렬 계수 값과 동일하게 결정할 수 있다. 이때, 동일한 값을 가지도록 결정한다는 것은 특정 양자화 행렬 계수 값을 복호화 대상 양자화 행렬 계수 값으로 복사하는 양자화 행렬 예측 방법을 적용한다는 것을 의미할 수 있다.
복호화된 양자화 행렬의 예측 복호화 방법이 양자화 행렬 간 예측을 위해 양자화 행렬을 참조 양자화 행렬 혹은 기본 행렬과 동일하게 결정하는 방법이면, 복호화기는 복호화 대상 양자화 행렬의 참조 양자화 행렬 식별자와 기본 행렬의 사용 여부를 파라미터 세트에서 복호화할 수 있다. 이때, 참조 양자화 행렬 식별 정보(식별자)는 복호화 대상 양자화 행렬의 참조 양자화 행렬 크기와 참조 양자화 행렬 중 최소 하나 이상을 포함할 수 있다. 그리고, 복화화되는 파라미터 세트는 적응 파라미터 세트일 수 있다.
예컨대, 표 36의 예와 같이, 복호화기는 복호화 대상 양자화 행렬의 참조 양자화 행렬 식별자와 기본 행렬의 사용 여부에 관한 정보인 scaling_list_pred_size_matrix_id_delta 를 파라미터 세트로부터 복호화할 수 있다. 이때 scaling_list_pred_size_matrix_id_delta와 수식 29를 이용하여 RefSizeID와 참조 양자화 행렬을 지시하는 RefMatrixID이 결정될 수 있다.
<수식 29>
RefSizeID = sizeID - (scaling_list_pred_size_matrix_id_delta / 6)
RefMatrixID = scaling_list_pred_size_matrix_id_delta % 6
또한 표 37의 예와 같이, 복호화기는 복호화 대상 양자화 행렬의 참조 양자화 행렬 식별자와 기본 행렬의 사용 여부에 관한 정보인 scaling_list_pred_size_id_delta와 scaling_list_pred_size_matrix_id_delta 를 파라미터 세트로부터 복호화할 수도 있다. 이때 scaling_list_pred_size_id_delta 값과 수식 30을 이용하여 RefSizeID를 결정하고, scaling_list_pred_matrix_id_delta와 수식 31를 이용하여 복호화 대상 양자화 행렬의 참조 양자화 행렬 혹은 기본 행렬을 지시하는 RefMatrixID을 결정할 수 있다.
<수식 30>
RefSizeID = sizeID - scaling_list_pred_size_id_delta
<수식 31>
RefMatrixID = matrixID - scaling_list_pred_matrix_id_delta
RefMatrixID 값이 matrixID 값과 동일하면, sizeID와 matrixID에 해당하는 복호화 대상 양자화 행렬의 계수 값은 부호화기 및/혹은 복호화기에 미리 정해져 있는 기본 행렬의 계수 값과 동일하게 결정될 수 있다. 이때, 기본 행렬은 sizeID와 matrixID에 해당하는 기본 행렬을 의미한다. 그리고, 수식 31에서 scaling_list_pred_matrix_id_delta 값이 0이면, RefMatrixID 값과 matrixID 값은 동일한 것을 의미한다.
RefMatrixID 값이 matrixID 값과 동일하지 않으면, RefSizeID와 RefMatrixID에 해당하는 양자화 행렬이 복호화 대상 양자화 행렬의 참조 양자화 행렬로 결정되고, 복호화 대상 양자화 행렬 계수 값이 참조 양자화 행렬 계수 값과 동일하게 결정될 수 있다. 복호화 대상 양자화 행렬 계수 값을 참조 양자화 행렬 계수 값과 동일하게 결정한다는 것은 RefSizeID와 RefMatrixID에 해당하는 참조 양자화 행렬을 복호화 대상 양자화 행렬의 참조 양자화 행렬로 결정하고, 참조 양자화 행렬의 계수 값을 복호화 대상 양자화 행렬의 계수 값으로 복사하는 양자화 행렬 예측 방법을 적용한다는 것을 의미할 수 있다.
따라서, 표 36 또는 표 37의 예를 통해 동일한 sizeID를 가지는 양자화 행렬로부터의 양자화 행렬 예측뿐만 아니라, 부호화/복호화 시 행렬의 크기는 동일하지만 다른 sizeID를 가지는 양자화 행렬로부터 양자화 행렬의 예측을 수행하는 것이 허용된다.
또한, 표 36 또는 표 37의 예에서 scaling_list_pred_size_matrix_id_delta 값, scaling_list_pred_size_id_delta 값, scaling_list_pred_matrix_id_delta 값은 측정한 범위로 제한될 수 있다. 예를 들어, scaling_list_pred_size_matrix_id_delta는 0부터 17 사이의 값을 가지고, scaling_list_pred_size_id_delta는 0부터 2 사이의 값을 가지고, scaling_list_pred_matrix_id_delta 는 0부터 5 사이의 값을 가지도록 할 수 있다.
또한, 표 36 또는 표 37의 예에서 복호화기는 복호화 대상 양자화 행렬보다 더 큰 크기를 가지는 양자화 행렬로부터는 예측하지 않을 수 있다.
또한, 8x8 크기 양자화 행렬부터 예측할 때, 복호화기는 8x8 크기를 가지는 양자화 행렬 내 DC 행렬 계수 위치에 해당하는 값을 DC 행렬 계수로 판단하여, 해당 위치의 값을 예측할 수 있다. 그리고, 16x16 크기의 양자화 행렬 혹은 32x32 크기의 양자화 행렬로부터 예측할 때는 복호화기는 DC 행렬 계수도 함께 예측할 수 있다.
한편, 양자화 행렬의 예측 복호화 방법이 양자화 행렬 내 계수를 예측 복호화하기 위해 지수-골롬 코드, 역 DPCM 그리고 스캔을 이용하여 복호화하는 방법이면, 복호화기는 양자화 행렬 내에서 이전에 복호화된 양자화 행렬의 계수 값과 복호화 대상 양자화 행렬의 계수 값 사이의 차이 값을 파라미터 세트에서 복호화할 수 있다. 이때, 차이 값을 복호화하는 파라미터 세트는 적응 파라미터 세트일 수 있다.
표 38의 예와 같이, 복호화 대상 양자화 행렬의 크기가 16x16 (sizeID = 2) 혹은 32x32 (sizeID = 3)일 경우, 복호화기는 DC 행렬 계수인 scaling_list_dc_coef_minus8를 파라미터 세트로부터 복호화할 수 있다.
표 38의 예와 같이, 복호화기는 양자화 행렬 내에서 이전에 복호화된 양자화 행렬의 계수 값과 복호화 대상 양자화 행렬의 계수 값 사이의 차이 값인 scaling_list_delta_coef를 파라미터 세트에서 복호화할 수 있다.
부호화기에 관한 예에서 설명한 바와 같이, 종래의 양자화 행렬 부호화/복호화에서는 양자화 행렬 내 첫 번째 계수의 부호화/복호화 시 자주 발생하는 계수 값을 고려하지 않고, 양자화 행렬의 계수를 부호화하기 때문에 부호화 효율 향상에 한계가 있다. 본 발명에서는 자주 발생하는 계수 값을 이용하여 양자화 행렬 내 첫 번째 계수의 예측 부호화/복호화를 수행할 수 있으므로 부호화 효율을 향상시킬 수 있다. 기본 행렬의 첫 번째 계수 값 혹은 DC 행렬 계수 값은 16으로 정의되어 있거나 비-기본 행렬의 첫 번째 계수 값 혹은 DC 행렬 계수 값이 16을 기준으로 분포가 되어 있다면, 부호화/복호화 대상 양자화 행렬 내의 첫 번째 계수 값 혹은 DC 행렬 계수 값도 상수 16으로부터 예측하여 부호화/복호화하는 것이 부호화 효율 향상에 도움될 수 있다.
구체적으로 복호화기는 양자화 행렬의 존재 유무를 나타내는 정보를 파라미터 세트로부터 복호화할 수 있다. 표 39의 예와 같이, 복호화기는 비트스트림 내 양자화 행렬의 존재 유무를 나타내는 정보인 scaling_list_present_flag를 파라미터 세트로부터 복호화할 수 있다. 예컨대, scaling_list_present_flag의 값이 0이면 양자화 행렬이 존재하지 않고 모든 양자화 행렬이 기본 양자화 행렬로 결정될 수 있으며, scaling_list_present_flag의 값이 1이면 부호화된 양자화 행렬이 존재하는 것으로 결정될 수 있다.
또한, 복호화기는 양자화 행렬의 예측 복호화 방법에 관한 정보를 파라미터 세트로부터 복호화하여 양자화 행렬에 관한 예측 복호화 방법의 종류를 결정할 수 있다. 이때, 예측 부호화 방법에 관한 정보를 복호화하는 파라미터 세트는 적응 파라미터 세트일 수 있다.
표 39의 예와 같이, 복호화기는 양자화 행렬의 예측 복호화 방법에 관한 정보인 scaling_list_pred_mode_flag를 파라미터 세트로부터 복호화할 수 있다. 이때, scaling_list_pred_mode_flag의 값이 1이면 복호화기는 양자화 행렬 내 계수를 예측 복호화하기 위해 양자화 행렬을 지수-골롬 코드, 역 DPCM 그리고 스캔을 이용하여 복호화하며, scaling_list_pred_mode_flag의 값이 0이면 복호화기는 양자화 행렬 간 예측을 위해 복호화 대상 양자화 행렬의 계수 값을 참조 양자화 행렬의 계수 값과 동일한 값을 가지도록 결정할 수 있다. 이때, 동일한 값을 가지도록 결정한다는 것은 참조 양자화 행렬의 계수 값을 복호화 대상 양자화 행렬의 계수 값으로 복사하는 양자화 행렬 예측 방법을 적용한다는 것을 의미할 수 있다.
양자화 행렬의 예측 복호화 방법이 양자화 행렬 간 예측을 위해 양자화 행렬을 참조 양자화 행렬과 동일하게 결정하는 방법이면, 복호화기는 복호화 대상 양자화 행렬의 참조 양자화 행렬 식별자를 파라미터 세트로부터 복호화할 수 있다. 이때, 참조 양자화 행렬 식별자를 복호화하는 파라미터 세트는 적응 파라미터 세트일 수 있다.
또한, 표 39의 예와 같이, 복호화기는 복호화 대상 양자화 행렬의 참조 양자화 행렬 식별자인 scaling_list_pred_matrix_id_delta를 파라미터 세트에서 복호화할 수도 있다. 이때, scaling_list_pred_matrix_id_delta와 수식 32을 이용해서 복호화 대상 양자화 행렬의 참조 양자화 행렬을 지시하는 RefMatrixID가 결정될 수 있다.
<수식 32>
RefMatrixID = matrixID - ( 1 + scaling_list_pred_matrix_id_delta)
복호화기는 RefMatrixID에 해당하는 양자화 행렬을 복호화 대상 양자화 행렬의 참조 양자화 행렬로 결정하고, 복호화 대상 양자화 행렬의 계수 값을 참조 양자화 행렬의 계수 값과 동일하게 결정할 수 있다. 복호화 대상 양자화 행렬 계수 값을 참조 양자화 행렬 계수 값과 동일하게 결정한다는 것은 RefMatrixID에 해당하는 참조 양자화 행렬을 복호화 대상 양자화 행렬의 참조 양자화 행렬로 결정하고, 참조 양자화 행렬의 계수 값을 복호화 대상 양자화 행렬의 계수 값으로 복사하는 양자화 행렬 예측 방법을 적용한다는 것을 의미할 수 있다.
복호화된 양자화 행렬의 예측 복호화 방법이 양자화 행렬 내 계수를 예측 복호화하기 위해 지수-골롬 코드, 역 DPCM 그리고 스캔을 이용하여 복호화하는 방법이면, 복호화기는 양자화 행렬 내에서 이전에 복호화된 양자화 행렬의 계수 값과 복호화 대상 양자화 행렬의 계수 값 사이의 차이 값을 파라미터 세트로부터 복호화할 수 있다. 이때, 차이값이 복호화되는 파라미터 세트는 적응 파라미터 세트일 수 있다.
표 40의 예와 같이, 복호화기는 양자화 행렬 내에서 이전에 복호화된 양자화 행렬 계수 값과 복호화 대상 양자화 행렬 계수 값의 차이 값인 scaling_list_delta_coef를 파라미터 세트로부터 복호화할 수 있다. 이때, 복호화기는 nextCoef = 16와 같이 첫 번째 계수 값에 대한 예측 값을 16으로 설정할 수도 있다.
또한 표 40과 같이, 복호화기는, 복호화 대상 양자화 행렬의 크기가 16x16 (sizeID = 2) 혹은 32x32 (sizeID = 3)일 경우, DC 행렬 계수에 해당하는 양자화 행렬의 계수 값인 scaling_list_dc_coef_minus16를 파라미터 세트로부터 복호화할 수 있다. scaling_list_dc_coef_minus16의 값은 예측 값을 16으로 하여 계산된 DC 행렬 계수를 의미한다.
또한 scaling_list_dc_coef_minus16 혹은 nextCoef를 계산하는데 사용되는 scaling_list_delta_coef를 이용하여 복호화기는 기본 행렬 사용 여부를 결정할 수 있다. 예컨대, scaling_list_dc_coef_minus16의 값이 -16로 복호화되면 해당 양자화 행렬이 기본 행렬로 결정될 수 있으며, scaling_list_delta_coef를 복호화하여 계산된 첫 번째 nextCoef 값이 0면 해당 양자화 행렬이 기본 행렬로 결정될 수 있다.
표 39 및 표 40의 예뿐만 아니라 상기 표들의 예들에서도, nextCoef는 16으로 설정될 수 있고, scaling_list_dc_coef_minus16의 값은 예측 값을 16으로 하여 계산된 DC 행렬 계수를 의미할 수 있으며, scaling_list_dc_coef_minus16의 값이 -16로 복호화되면 복호화기는 해당 양자화 행렬을 기본 행렬로 결정할 수 있다.
지금까지 표와 도면을 이용하여, 본 발명에 따른 양자화 행렬 정보의 부호화/복호화 및 전송/수신에 관한 실시예들을 설명하였다.
앞서 표 18과 표 19의 예, 표 20과 표 21의 예, 표 23과 표 24의 예, 표 25와 표 26의 예, 표 27과 표 28의 예, 표 29와 표 30의 예, 표 31과 표 32의 예, 표 33과 표 34의 예, 표 36과 표 38의 예, 표 37과 표 38의 예, 표 39와 표 40의 예 등에서 두 개의 표로 나누어 본 발명에 따른 신택스 구조의 예들을 설명하기도 하였으나, 이는 설명의 편의를 위한 것으로서, 본 발명은 이에 한정되지 않는다.
예컨대, 상기 신택스 구조의 예들에서 scaling_list_pred_mode_flag는 양자화 행렬의 예측 방식을 지시하는데, scaling_list_pred_mode_flag의 값이 0이면 행렬의 복사에 의해 양자화 행렬을 획득하고, scaling_list_pred_mode_flag의 값이 1이면 행렬 계수를 양자화 행렬 내에서 이전 행렬 계수로부터 예측하여 양자화 행렬을 획득한다.
표 23 및 표 24의 경우를 예로서 설명하면, scaling_list_pred_mode_flag 의 값이 1인 경우에 양자화 행렬 신택스 즉, 스케일링 리스트(scaling_list)의 신택스를 호출하여 양자화 행렬을 획득하지만, 이를 하나의 신택스에서 해결할 수 있다. 두 개 이상의 신택스 구조를 동일한 의미의 한 개의 신택스 구조로 구성하는 것은 발명의 내용을 변경하는 것이 아니며, 본 발명의 기술적 사상의 범위 내에 있음에 유의하여야 한다.
표 41은 표 23 및 표 24의 예를 하나의 신택스 구조로 구성한 것이다. 표 23 및 표 24와 마찬가지로 표 41의 양자화 행렬 정보는 부호화기에서 시퀀스 파라미터 세트, 픽처 파라미터 세트 중 적어도 하나를 포함하는 파라미터 세트에 양자화 행렬 정보를 부호화할 수 있고, 복호화기에서 시퀀스 파라미터 세트, 픽처 파라미터 세트 중 적어도 하나를 포함하는 파라미터 세트에서 양자화 행렬 정보를 복호화할 수 있다.
<표 41>
Figure pat00041
언급한 바와 같이, 표 23 및 표 24의 예와 표 41의 예는 신택스 구조가 2개이냐 1개이냐라는 형식적인 면 외에는 동일하다.
부호화기는 표 41과 같이, scaling_list_pred_mode_flag를 통해 행렬의 예측 모드를 지시할 수 있다. 예를 들어, 양자화 행렬 간 복사가 수행되면 scaling_list_pred_mode_flag의 값은 0으로 결정되어 부호화되고, 양자화 행렬 내에서 행렬의 계수 예측 부호화가 수행되면 scaling_list_pred_mode_flag의 값은 1로 결정되어 부호화된다. 양자화 행렬의 복사는 상술한 바와 같이 기본 양자화 행렬을 부호화 대상 양자화 행렬로 하거나 참조 양자화 행렬을 부호화 대상 양자화 행렬로 하는 것을 의미한다. 행렬의 계수를 예측하는 방법은 상술한 바와 같이, 양자화 행렬 내 계수를 예측 부호화하는 방법을 의미한다.
양자화 행렬의 복사가 수행되는 경우(scaling_list_pred_mode_flag == 0), scaling_list_pred_matrix_id_delta가 전송된다. 앞서 설명한 바와 같이, scaling_list_pred_matrix_id_delta는 현재 부호화 대상 양자화 행렬을 유도하는데 이용되는 참조 양자화 행렬 혹은 기본 양자화 행렬을 특정한다.
예컨대, 부호화 대상 양자화 행렬이 기본 양자화 행렬로 결정된 경우, scaling_list_pred_matrix_id_delta의 값은 0으로 결정되어 부호화될 수 있다. 즉, 현재 부호화 대상 양자화 행렬이 기본 양자화 행렬들 중에서 추정(infer)된 경우이다. 기본 양자화 행렬은 표 7 및 표 8에 의해 특정될 수 있다.
현재 부호화 대상 양자화 행렬은 참조 양자화 행렬로부터 결정된 경우, scaling_list_pred_matrix_id_delta의 값은 0이 아닌 값으로 결정되어 부호화될 수 있다. 즉, 현재 부호화 대상 양자화 행렬(ScalingList)이 수식 33과 같이 참조 양자화 행렬로부터 결정된 경우이다.
<수식 33>
RefMatrixID = matrixID - scaling_list_pred_matrix_id_delta[ sizeID ][ matrixID ]
ScalingList[ sizeID ][ matrixID ][ i ] = ScalingList[ sizeID ][ RefMatrixId ][ i ]
수식 33에서, scaling_list_pred_matrix_id_delta 값은 sizeID와 matrixID에 의해 특정되며, 인덱스 i는 양자화 행렬 내 계수의 위치를 특정한다.
양자화 행렬 내 예측 부호화가 수행되는 경우(scaling_list_pred_mode_flag == 1)에는 4x4 크기의 양자화 행렬에 대한 행렬 계수들, 8x8 크기의 양자화 행렬에 대한 행렬 계수들, DC 행렬 계수를 포함한 16x16 크기의 양자화 행렬에 대한 행렬 계수들, DC 행렬 계수를 포함한 32x32 크기의 양자화 행렬에 대한 행렬 계수들이 부호화될 수 있다. 이때, 부호화되는 전체 행렬 계수의 개수는 coefNum = Min(64, (1 << (4 + (sizeId << 1))))를 이용하여 계산될 수 있다. 이때, 16x16 크기의 양자화 행렬과 32x32 크기의 양자화 행렬은 부호화될 때 8x8 크기의 양자화 행렬로 다운샘플링(downsampling)되어 부호화될 수 있다.
복호화기의 경우, 표 41의 신택스 요소들을 비트스트림으로부터 복호화하여 역양자화를 수행하고 이를 통해 영상을 복원할 수 있다.
복호화기는 표 41과 같이, 수신된 scaling_list_pred_mode_flag가 지시하는 바에 따라서 행렬의 예측 모드를 결정할 수 있다. 예컨대, scaling_list_pred_mode_flag의 값이 0이면 양자화 행렬 간 복사를 수행하고, scaling_list_pred_mode_flag의 값이 1이면 양자화 행렬 내에서 행렬 계수를 예측할 수 있다. 복호화기는 이를 통해 역양자화에 사용할 (역)양자화 행렬을 획득할 수 있다. 본 명세서에서는 양자화의 경우에 적용되는 부호화 대상 양자화 행렬과 역양자화에 적용되는 복호화 대상 양자화 행렬을 모두 양자화 행렬이라고 칭하기도 하고 있으나, 이는 설명의 편의를 위한 것임에 유의한다. 양자화에 적용되는 행렬과 역영자화에 적용되는 행렬 사이에는 역의 관계가 성립할 수 있으며, 역양자화에 사용되는 양자화 행렬을 스케일링 리스트라고 칭할 수도 있다.
양자화 행렬의 복사는 상술한 바와 같이 기본 양자화 행렬을 복호화 대상 양자화 행렬로 결정하거나 참조 양자화 행렬을 복호화 대상 양자화 행렬로 결정하는 것을 의미한다. 행렬의 계수를 예측하는 방법은 상술한 바와 같이, 양자화 행렬 내 계수를 예측 복호화하는 방법을 의미한다.
양자화 행렬의 복사가 수행되는 경우(scaling_list_pred_mode_flag == 0), 복호화기는 현재 복호화 대상 양자화 행렬을 유도하는데 이용되는 참조 양자화 행렬 혹은 기본 양자화 행렬을 특정한다.
예컨대, scaling_list_pred_matrix_id_delta의 값이 0이면, 복호화기는 복호화 대상 양자화 행렬을 기본 양자화 행렬로 결정될 수 있다. 즉, 현재 복호화 대상 양자화 행렬은 기본 양자화 행렬들 중에서 추정(infer)될 수 있다. 기본 양자화 행렬은 표 7 및 표 8에 의해 특정될 수 있다.
scaling_list_pred_matrix_id_delta의 값이 0이 아니면, 복호화기는 현재 복호화 대상 양자화 행렬을 참조 양자화 행렬로부터 결정할 수 있다. 즉, 현재 복호화 대상 양자화 행렬(ScalingList)은 수식 34와 같이 참조 양자화 행렬로부터 결정될 수 있다.
<수식 34>
RefMatrixID = matrixID - scaling_list_pred_matrix_id_delta[ sizeID ][ matrixID ]
ScalingList[ sizeID ][ matrixID ][ i ] = ScalingList[ sizeID ][ RefMatrixId ][ i ]
수식 34에서, scaling_list_pred_matrix_id_delta 값은 sizeID와 matrixID에 의해 특정되며, 인덱스 i는 양자화 행렬 내 계수의 위치를 특정한다.
양자화 행렬 내 예측 복호화가 수행되는 경우(scaling_list_pred_mode_flag == 1)에, 복호화기는 4x4 크기의 양자화 행렬에 대한 행렬 계수들, 8x8 크기의 양자화 행렬에 대한 행렬 계수들, DC 행렬 계수를 포함한 16x16 크기의 양자화 행렬에 대한 행렬 계수들, DC 행렬 계수를 포함한 32x32 크기의 양자화 행렬에 대한 행렬 계수들을 복호화할 수 있다. 이때, 복호화되는 전체 행렬 계수의 개수는 coefNum = Min(64, (1 << (4 + (sizeId << 1))))를 이용하여 계산될 수 있다. 이때, 16x16 크기의 양자화 행렬과 32x32 크기의 양자화 행렬은 부호화될 때 8x8 크기의 양자화 행렬로 다운샘플링되었기 때문에, 8x8 크기의 양자화 행렬을 업샘플링(upsampling) 혹은 보간(interpolation)하여 16x16 크기의 양자화 행렬과 32x32 크기의 양자화 행렬로 복원할 수 있다. 또한 업샘플링 혹은 보간을 적용하는 경우에도 DC 행렬 계수는 보간된 값을 사용하지 않고 scaling_list_dc_coef_minus8와 같이 별도로 시그널링 된 값으로부터 유도된 값으로 대체하여 사용할 수 있다.
지금까지 표들을 이용하여 신택스 구조의 예와 이를 이용하는 부호화 및 복호화의예들을 설명하였다. 상술한 예들에서는 동일한 신택스 구조를 이용하여 부호화의 예와 복호화의 예를 설명하였으나, 본 발명은 이에 한정되지 않는다. 예컨대 상술한 신택스 구조의 표들은 부호화에만 이용될 수도 있고, 복호화에만 이용될 수도 있다.
도 6은 본 발명에 따라서 역양자화를 수행하는 방법의 일 예를 개략적으로 설명하는 순서도이다.
도 6을 참조하면, 복호화기는 파라미터 세트에 양자화 행렬이 존재하는지를 지시하는 식별자를 획득할 수 있다(S610). 양자화 행렬이 파라미터 세트 내에 존재하는지를 지시하는 정보는 상술한 표들의 예들에서 scaling_list_present_flag일 수 있다.
이때, 파라미터 세트에 양자화 행렬이 존재한다는 것은 파라미터 세트에 양자화 행렬에 대한 정보(예컨대, scaling_list_pred_mode_flag, scaling_list_pred_matrix_id_delta, scaling_list_dc_coef_minus8, scaling_list_delta_coef 등)가 존재하는 것을 포함한다. 이때, 양자화 행렬이 존재하는지를 지시하는 식별자를 획득하기 앞서 양자화 행렬을 사용하는지를 지시하는 식별자인 scaling_list_enable_flag를 획득할 수 있다. scaling_list_enable_flag를 획득해서 양자화 행렬을 사용하는 경우, 양자화 행렬이 존재하는지를 지시하는 식별자를 획득할 수 있다.
이때, 파라미터 세트는 양자화 행렬의 정보를 전송하는 시퀀스 파라미터 세트 혹은 픽처 파라미터 세트일 수 있다.
복호화기는 상기 식별자를 기반으로 파라미터 세트에 양자화 행렬이 존재하는지를 판단할 수 있다(S620). 예컨대, scaling_list_present_flag의 값이 1이면, 복호화기는 파라미터 세트에 양자화 행렬이 존재한다고 판단하고, scaling_list_present_flag의 값이 0이면, 복호화기는 파라미터 세트에 양자화 행렬이 존재하지 않는다고 판단할 수 있다.
파라미터 세트에 양자화 행렬이 존재하지 않는 경우(파라미터 세트에 양자화 행렬이 존재하지 않는다고 판단한 경우), 복호화기는 역양자화에서 양자화 행렬을 사용하지 않거나, 역양자화에서 행렬 계수들의 값이 모두 16으로 동일한 양자화 행렬(flat matrix)을 사용하거나, 역영자화에서 모든 양자화 행렬을 기본 양자화 행렬로 하도록 결정할 수 있다(S630).
파라미터 세트에 양자화 행렬이 존재하는 경우(파라미터 세트에 양자화 행렬이 존재한다고 판단한 경우), 복호화기는 양자화 행렬의 크기 또는 종류별로 양자화 행렬의 정보를 획득할 수 있다(S640). 이때, 양자화 행렬의 종류로서는 화면 내 잔차 블록에 대한 변환 계수의 역양자화용 양자화 행렬, 화면 간 잔차 블록에 대한 변환 계수의 역양자화용 양자화 행렬, 휘도 성분(luma) 블록에 대한 변환 계수의 역양자화용 양자화 행렬, 색차 성분(chroma) 블록에 대한 변환 계수의 역양자화용 양자화 행렬 등 중 적어도 하나 이상이거나 하나 이상의 조합일 수 있다.
복호화기는 획득한 양자화 행렬을 이용하여 역양자화를 수행할 수 있다(S650). 복호화기는 파라미터 세트에 양자화 행렬이 존재하지 않는 경우에는 S630 단계에서 결정한 바에 따라 복호화기는 양자화 행렬을 사용하지 않고 역양자화를 수행하거나, 역양자화에서 행렬 계수들의 값이 모두 16으로 동일한 양자화 행렬(flat matrix)을 사용하거나, 역영자화에서 모든 양자화 행렬을 기본 양자화 행렬로 사용하도록 역양자화할 수 있다. 양자화 행렬의 계수를 예측하거나 기본 양자화 행렬을 사용하는 것에 대해서는 앞서 실시예들에서 설명한 바와 같다. 파라미터 세트에 양자화 행렬이 존재하는 경우에, 복호화기는 해당 양자화 행렬을 획득하여 역양자화에 이용할 수 있다. 복호화기는 도 2에서 설명한 바와 같이 역양자화된 신호를 기반으로 영상을 복원할 수 있다.
한편, 도 6에서는 양자화 행렬의 존부를 지시하는 식별자가 부호화기로부터 전송되는 것으로 설명하였으나, 이는 발명의 일 예일뿐이다. 앞서 설명한 바와 같이, 양자화 행렬에 관한 정보를 전송하는 경우에는 양자화 행렬의 존부에 관한 정보를 별도로 전송하지 않을 수 있다.
도 7은 파라미터 세트에 양자화 행렬이 존재하는 경우 양자화 행렬의 정보를 획득하여 역양자화를 수행하는 방법의 일 예를 개략적으로 설명하는 도면이다. 도 7은 (1) 도 6의 S640 및 S650에 대응하는 단계들일 수도 있고, (2) 양자화 행렬의 존부를 지시하는 별도의 식별자가 전송되지는 않지만, 양자화 행렬이 파라미터 세트에 존재하고 양자화 행렬에 대한 정보가 부호화기로부터 전송되는 경우에 양자화 행렬을 획득하여 역양자화를 수행하는 경우의 방법일 수도 있다. 다만, 양자화 행렬의 존부가 별도의 식별자로 전송되는지 안 되는지에 관한 차이를 제외하면, (1)과 (2)의 방법은 동일하다. 도 7에서 양자화 행렬 정보는 복호화기에서 시퀀스 파라미터 세트, 픽처 파라미터 세트 중 적어도 하나를 포함하는 파라미터 세트에서 양자화 행렬 정보를 복호화할 수 있다.
도 7의 예에서는, 양자화 행렬의 부호화/복호화 시 복잡도를 감소시키기 위하여, 복호화 대상 양자화 행렬의 예측을 위한 참조 양자화 행렬 식별자 값이 복호화 대상 양자화 행렬의 식별자 값과 동일한 경우, 복호화기는 복호화 대상 양자화 행렬을 복호화하지 않고 역양자화시 복호화기가 이미 가지고 있는 양자화 행렬을 사용할 수 있다. 이때 복호화기가 이미 가지고 있는 양자화 행렬은 기본 양자화 행렬일 수 있다.
구체적으로 도 7을 참조하면, 파라미터 세트 내에 양자화 행렬이 존재하는 경우에 복호화기는 양자화 행렬의 예측 방식을 결정할 수 있다(S710). 파라미터 세트에 양자화 행렬이 존재한다는 것은 파라미터 세트에 양자화 행렬에 대한 정보(예컨대, scaling_list_pred_mode_flag, scaling_list_pred_matrix_id_delta, scaling_list_dc_coef_minus8, scaling_list_delta_coef 등)가 존재하는 것을 포함한다.
상술한 예들을 참조하면, 부호화기로부터 전송된 신택스 요소 pred_mode_flag의 값에 따라서 양자화 행렬의 예측 방식이 결정될 수 있다. 양자화 행렬에 대한 예측 방식임을 명확하게 하기 위해 pred_mode_flag는 앞선 예들과 마찬가지로, scaling_list_pred_mode_flag으로 표시될 수도 있다. pred_mode_flag가 지시하는 양자화 행렬의 예측 방식은 (1) 복호화기가 이미 가지고 있는 양자화 행렬을 그대로 사용하는 방식과 (2) 양자화 행렬의 값을 전송하여 양자화 행렬 내 양자화 행렬 계수 값 간의 역 DPCM하는 방식 중 어느 하나일 수 있다.
예컨대, pred_mode_flag의 값이 0이면 복호화기는 이미 가지고 있는 양자화 행렬(이미 복호화된 양자화 행렬(참조 행렬) 또는 기본 행렬)을 이용하고, pred_mode_flag의 값이 1이면 복호화기는 전송된 정보를 기반으로 양자화 행렬 내의 계수를 예측 복호화할 수 있다.
양자화 행렬 예측 방식이 복호화기가 이미 가지고 있는 양자화 행렬을 그대로 사용하는 방식인 경우, 복호화기는 양자화 행렬의 식별 정보를 획득할 수 있다(S720). 양자화 행렬의 식별 정보는 복호화기가 이미 가지고 있는 양자화 행렬을 식별할 수 있는 정보로서, 앞서 설명한 예들의 scaling_list_pred_matrix_id_delta, pred_matrix_id_delta 등에 해당할 수 있다.
복호화기는 식별 정보에 의해 특정되는 양자화 행렬이 현재 복호화 대상 양자화 행렬과 동일한지를 판단할 수 있다(S730). pred_matrix_id_delta는 양자화 행렬을 유도하는데 이용되는 참조 양자화 행렬을 특정한다. 양자화 행렬에 대한 것임을 명확하게 하기 위해 pred_matrix_id_delta는 앞선 예들에서와 마찬가지로 scaling_list_pred_matrix_id_delta로 표시될 수도 있다.
scaling_list_pred_matrix_id_delta 값이 0이면 복호화 대상 양자화 행렬로서 양자화 행렬 정보(SizeID, MatrixID)가 특정하는 기본 양자화 행렬을 사용할 수 있다.
scaling_list_pred_matrix_id_delta의 값이 0이 아닌 경우에, 앞선 예들을 참조하면, 복호화 대상 양자화 행렬(의 종류)를 특정하는 matrixID와 참조 양자화 행렬을 특정하는 RefMatrixID 사이에는 scaling_list_pred_matrix_id_delta = matrixID - RefMatrixID의 관계가 성립하므로, 복호화 대상 양자화 행렬을 이미 복호화된 참조 양자화 행렬로부터 유도할 수 있다.
양자화 행렬 식별 정보가 특정하는 양자화 행렬이 복호화 대상 양자화 행렬과 동일하지 않은 경우(!scaling_list_pred_matrix_id_delta==0 혹은 matrixID != RefMatrixID), 복호화기는 양자화 행렬 식별 정보를 이용하여 역양자화시에 사용할 양자화 행렬을 결정할 수 있다(S740). 이 경우, 복호화기는 양자화 행렬을 양자화 행렬 식별 정보 scaling_list_pred_matrix_id_delta를 기반으로 앞서 설명한 표들의 예들과 같이 역양자화시에 사용할 양자화 행렬을 결정할 수 있다.
양자화 행렬 식별 정보가 특정하는 양자화 행렬이 복호화 대상 양자화 행렬과 동일한 경우(scaling_list_pred_matrix_id_delta==0 혹은 matrixID == RefMatrixID), 복호화기는 이미 가지고 있는 기본 양자화 행렬을 이용할 수 있다. 이때, 기본 양자화 행렬은 표 7과 표 8을 이용하여 결정될 수 있다.
S710에서 양자화 행렬 계수 값 간의 역 DPCM 방식을 사용하는 것으로 결정한 경우에, 복호화기는 양자화 행렬의 계수 값을 초기화 할 수 있다(S760). 예컨대, 복호화기는 양자화 행렬의 계수(nextcoef)를 상수 값으로 설정함으로써 초기화를 할 수 있다. 초기화 시에 설정되는 상수는 앞서 설명한 표들의 예들에서와 같이 8 또는 16 중 어느 하나일 수 있다.
복호화기는 부호화기로부터 전송된 양자화 행렬 내의 계수 간 차이값을 복호화할 수 있다(S770). 양자화 행렬 내의 계수 간 차이 값은, 예컨대 delta_coef와 같은 신택스 요소에 의해 특정될 수 있으며, 양자화 행렬에 대한 것임을 명확하게 하기 위해 delta_coef는 앞서 설명한 표들의 예들과 같이 scaling_list_delta_coef라고 할 수도 있다.
복호화기는 양자화 행렬의 계수값을 유도할 수 있다(S780). 복호화기는 양자화 행렬 내의 계수 간 차이값을 이전에 복호화된 양자화 행렬의 계수에 더하여 복호화 대상 양자화 행렬(현재 양자화 행렬)의 계수값을 유도할 수 있다. 예컨대, 복호화기는 상술한 수식들과 같이 nextcoef = (nextcoef = delta_coef + 256) % 256의 관계를 이용하여 현재 양자화 행렬의 계수 값을 유도할 수 있다.
복호화기는 양자화 행렬을 유도하였는지를 판단한다(S790). 양자화 행렬의 계수들이 모두 복호화되지는 않은 경우, 복호화기는 S770 단계로 돌아가 이후의 단계를 진행한다.
복호화기는 획득한 양자화 행렬을 이용하여 역양자화를 수행할 수 있다(S650).
한편, 양자화 행렬의 계수 값을 유도할 때, 도 7의 예에서는 구별하지 않았으나, 앞서 설명한 실시예들에서와 같이, 소정 크기의 양자화 행렬에 대해서는 DC 행렬 계수들을 먼저 유도할 수도 있다.
도 8은 파라미터 세트에 양자화 행렬이 존재하는 경우 양자화 행렬의 정보를 획득하여 역양자화를 수행하는 방법의 다른 예를 개략적으로 설명하는 도면이다. 도 8은 (1) 도 6의 S640 및 S650에 대응하는 단계들일 수도 있고, (2) 양자화 행렬의 존부를 지시하는 별도의 식별자가 전송되지는 않지만, 양자화 행렬이 파라미터 세트에 존재하고 양자화 행렬에 대한 정보가 부호화기로부터 전송되는 경우에 양자화 행렬을 획득하여 역양자화를 수행하는 경우의 방법일 수도 있다. 다만, 양자화 행렬의 존부가 별도의 식별자로 전송되는지 안 되는지에 관한 차이를 제외하면, (1)과 (2)의 방법은 동일하다.
도 8의 예에서는 불필요한 양자화 행렬 전송을 방지하기 위하여, 복호화 대상 양자화 행렬의 첫 번째 값이 특정한 값인 경우, 복호화기는 복호화 대상 양자화 행렬을 복호화하지 않고 역양자화시 복호화기가 이미 가지고 있는 기본(default) 양자화 행렬을 사용할 수 있다.
구체적으로 도 8을 참조하면, 파라미터 세트 내에 양자화 행렬이 존재하는 경우에 복호화기는 양자화 행렬의 예측 방식을 결정할 수 있다(S810). 파라미터 세트에 양자화 행렬이 존재한다는 것은 파라미터 세트에 양자화 행렬에 대한 정보가 존재하는 것을 포함한다.
양자화 행렬 예측 방식이 복호화기가 이미 가지고 있는 양자화 행렬을 그대로 사용하는 방식인 경우, 복호화기는 양자화 행렬의 식별 정보를 획득할 수 있다(S820).
양자화 행렬의 식별 정보는 복호화기가 이미 가지고 있는 양자화 행렬을 식별할 수 있는 정보로서, 앞서 설명한 예들의 scaling_list_pred_matrix_id_delta, pred_matrix_id_delta 등에 해당할 수 있다.
복호화기는 양자화 행렬 식별 정보를 이용하여 역양자화시에 사용할 양자화 행렬을 결정할 수 있다(S830). 복호화기는 scaling_list_pred_matrix_id_delta, pred_matrix_id_delta 등의 식별정보가 지시하는 바에 따라서 양자화 행렬을 결정할 수 있다.
S810에서 양자화 행렬 계수 값 간의 역 DPCM 방식을 사용하는 것으로 결정한 경우에, 복호화기는 양자화 행렬의 계수 값을 초기화 할 수 있다(S840). 예컨대, 복호화기는 양자화 행렬의 계수(nextcoef)를 상수 값으로 설정함으로써 초기화를 할 수 있다. 초기화 시에 설정되는 상수는 앞서 설명한 표들의 예들에서와 같이 8 또는 16 중 어느 하나일 수 있다.
복호화기는 부호화기로부터 전송된 양자화 행렬 내의 계수 간 차이값을 복호화할 수 있다(S850). 양자화 행렬 내의 계수 간 차이 값은, 예컨대 delta_coef와 같은 신택스 요소에 의해 특정될 수 있다.
복호화기는 양자화 행렬의 계수값을 유도할 수 있다(S860). 복호화기는 양자화 행렬 내의 계수 간 차이값을 이전에 복호화된 양자화 행렬의 계수에 더하여 복호화 대상 양자화 행렬(현재 양자화 행렬)의 계수값을 유도할 수 있다. 예컨대, 복호화기는 상술한 수식들과 같이 nextcoef = (nextcoef = delta_coef + 256) % 256의 관계를 이용하여 현재 양자화 행렬의 계수 값을 유도할 수 있다.
복호화기는 유도한 계수가 양자화 행렬의 첫 번째 계수 값이며 특정 값과 동일한지를 판단할 수 있다(S870). 이때, 특정 값은 0일 수 있다.
복호화기는 유도한 계수가 양자화 행렬의 첫 번째 계수 값이며 특정 값과 동일한 경우, 복호화기가 이미 가지고 있는 기본 양자화 행렬을 역양자화에 이용하도록 결정할 수 있다(S880).
복호화기는 유도한 계수가 양자화 행렬의 첫 번째 계수 값이며 특정 값과 동일한 경우가 아니면, 양자화 행렬 계수에 대한 차이값이 모두 복호화 되었는지 확인한다(S890). 모두 복호화되지 않은 경우에, 복호화기는 S850 단계부터 이하의 단계를 진행할 수 있다.
복호화기는 획득한 양자화 행렬을 이용하여 역양자화를 수행할 수 있다(S650).
상술한 실시예에서, 양자화 행렬 정보란 양자화 행렬 혹은 양자화 행렬을 유도할 수 있는 정보를 의미한다. 이때, 양자화 행렬을 유도할 수 있는 정보는 기본 행렬 사용 여부 혹은 예측 부호화/복호화 방법 종류 혹은 참조 양자화 행렬 식별자 혹은 참조 양자화 행렬 등을 의미할 수 있다.
상술한 예시적인 시스템에서, 방법들은 일련의 단계 또는 블록으로써 순서도를 기초로 설명되고 있지만, 본 발명은 단계들의 순서에 한정되는 것은 아니며, 어떤 단계는 상술한 바와 다른 단계와 다른 순서로 또는 동시에 발생할 수 있다. 또한, 상술한 실시예들은 다양한 양태의 예시들을 포함한다. 예컨대, 각 실시예의 조합 역시 본 발명의 일 실시예로서 이해되어야 할 것이다.

Claims (5)

  1. 역양자화에 사용되는 양자화 행렬의 예측 방식을 결정하는 단계;
    상기 양자화 행렬의 예측 방식에 따라서 역양자화에 사용되는 양자화 행렬을 복호화 하는 단계: 및
    상기 양자화 행렬을 이용하여 역양자화를 수행하는 단계;를 포함하며,
    상기 양자화 행렬의 예측 방식은 예측 모드 정보에 근거하여, 제1 예측 모드 및 제2 예측 모드 중 어느 하나로 결정되고,
    상기 제1 예측모드는 양자화 행렬 내의 계수 간 차이에 대한 정보를 이용하여 양자화 ??렬을 유도하는 방식이고, 상기 제2 예측모드는 양자화 행렬 복사 방식이되,
    상기 제1 예측모드에 따라 양자화 행렬을 복호화 하는 단계는, 상기 양자화 행렬의 크기가 16x16 이상인 경우, 상기 양자화 행렬의 DC 행렬 계수를 유도하고, 상기 유도된 DC행렬 계수와 상기 양자화 행렬 내의 계수 간 차이에 대한 정보에 근거하여 상기 양자화 행렬내 계수를 유도하고,
    상기 제2 예측모드에 따라 양자화 행렬을 복호화 하는 단계는, 참조 양자화 행렬을 이용하는 지 또는 기본 양자화 행렬을 이용하는 지 여부를 지시하는 식별 정보에 근거하여 수행되는, 영상 복호화 방법.
  2. 제 1항에 있어서,
    상기 식별정보가 0이 아닌 경우, 복호화 대상 양자화 행렬을 특정하는 값과 상기 참조 양자화 행렬을 특정하는 값 사이의 차이 값을 지시하고,
    상기 식별정보가 0인 경우, 상기 양자화 행렬을 기본 양자화 행렬로부터 유도하도록 지시하는, 영상 복호화 방법.
  3. 양자화 행렬의 예측 방식을 결정하는 단계;
    상기 양자화 행렬의 예측 방식에 따라서 양자화행렬 관련 정보를 부호화 하는 단계: 및
    상기 양자화 행렬 관련 정보를 포함하는 부호화된 비트스트림을 생성하는 단계;를 포함하되,
    상기 양자화 행렬 관련 정보는 상기 양자화 행렬의 예측 방식에 따라 부호화 되고, 상기 양자화 행렬의 예측 방식은 제1 예측 모드 및 제2 예측 모드 중 어느 하나로 결정되고,
    상기 양자화 행렬 관련 정보는, 상기 제1 예측 모드 및 제2 예측 모드 중 어느 하나를 지시하는 예측 모드 정보를 포함하고,
    상기 제1 예측모드는 양자화 행렬 내의 계수 간 차이에 대한 정보를 이용하여 양자화 ??렬을 유도하는 방식이고, 상기 제2 예측모드는 양자화 행렬 복사 방식이며,
    상기 제1 예측모드에 따라 양자화 행렬 관련 정보를 부호화 하는 단계는, 상기 양자화 행렬 관련 정보가 양자화 행렬내 계수 간 차이에 대한 정보를 포함하도록 부호화 하되, 상기 양자화 행렬의 크기가 16x16 이상인 경우, 상기 양자화 행렬의 DC 행렬 계수를 나타내는 정보를 부호화하고,
    상기 제2 예측모드에 따라 양자화 행렬을 부호화 하는 단계는, 참조 양자화 행렬을 이용하는 지 또는 기본 양자화 행렬을 이용하는 지 여부를 지시하는 식별 정보를 부호화하는, 영상 부호화 방법.
  4. 제 3항에 있어서,
    상기 복호화 대상 양자화 행렬을 특정하는 값과 상기 참조 양자화 행렬을 특정하는 값 사이의 차이 값을 지시하고자 하는 경우, 상기 식별정보는 0이 아닌 값으로 부호화 하고,
    상기 양자화 행렬을 기본 양자화 행렬로부터 유도하도록 지시하고자 하는 경우, 상기 식별정보는 0으로 부호화 하는, 영상 부호화 방법.
  5. 비트스트림을 저장하는 컴퓨터 판독가능한 기록매체에 있어서, 상기 비트스트림은,
    양자화 행렬의 예측 방식을 결정하는 단계;
    상기 양자화 행렬의 예측 방식에 따라서 양자화행렬 관련 정보를 부호화 하는 단계: 및
    상기 양자화 행렬 관련 정보를 포함하는 부호화된 비트스트림을 생성하는 단계;를 의해 생성되되,
    상기 비트스트림에 포함된 상기 양자화 행렬 관련 정보는 상기 양자화 행렬의 예측 방식에 따라 부호화 되고, 상기 양자화 행렬의 예측 방식은 제1 예측 모드 및 제2 예측 모드 중 어느 하나로 결정되고, 상기 양자화 행렬 관련 정보는, 상기 제1 예측 모드 및 제2 예측 모드 중 어느 하나를 지시하는 예측 모드 정보를 포함하고, 상기 제1 예측모드는 양자화 행렬 내의 계수 간 차이에 대한 정보를 이용하여 양자화 ??렬을 유도하는 방식이고, 상기 제2 예측모드는 양자화 행렬 복사 방식이며,
    상기 제1 예측모드에 따라 양자화 행렬 관련 정보를 부호화 하는 단계는, 상기 양자화 행렬 관련 정보가 양자화 행렬내 계수 간 차이에 대한 정보를 포함하도록 부호화 하되, 상기 양자화 행렬의 크기가 16x16 이상인 경우, 상기 양자화 행렬의 DC 행렬 계수를 나타내는 정보를 부호화하여 상기 비트스트림에 포함하고,
    상기 제2 예측모드에 따라 양자화 행렬을 부호화 하는 단계는, 참조 양자화 행렬을 이용하는 지 또는 기본 양자화 행렬을 이용하는 지 여부를 지시하는 식별 정보를 부호화하여 상기 비트스트림에 포함하는 것을 특징으로 하는,
    상기 비트스트림을 저장하는 컴퓨터 판독가능한 기록매체.
KR1020210133691A 2012-01-20 2021-10-08 양자화 행렬의 부호화 방법 및 복호화 방법과 이를 이용하는 장치 KR20210124171A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020240024907A KR20240027661A (ko) 2012-01-20 2024-02-21 양자화 행렬의 부호화 방법 및 복호화 방법과 이를 이용하는 장치

Applications Claiming Priority (11)

Application Number Priority Date Filing Date Title
KR20120006564 2012-01-20
KR1020120006564 2012-01-20
KR20120011672 2012-02-06
KR1020120011672 2012-02-06
KR1020120013462 2012-02-09
KR20120013462 2012-02-09
KR20120013996 2012-02-10
KR1020120013996 2012-02-10
KR20120038971 2012-04-16
KR1020120038971 2012-04-16
KR1020200060197A KR102313195B1 (ko) 2012-01-20 2020-05-20 양자화 행렬의 부호화 방법 및 복호화 방법과 이를 이용하는 장치

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020200060197A Division KR102313195B1 (ko) 2012-01-20 2020-05-20 양자화 행렬의 부호화 방법 및 복호화 방법과 이를 이용하는 장치

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020240024907A Division KR20240027661A (ko) 2012-01-20 2024-02-21 양자화 행렬의 부호화 방법 및 복호화 방법과 이를 이용하는 장치

Publications (1)

Publication Number Publication Date
KR20210124171A true KR20210124171A (ko) 2021-10-14

Family

ID=48995992

Family Applications (10)

Application Number Title Priority Date Filing Date
KR1020130006736A KR101627085B1 (ko) 2012-01-20 2013-01-21 양자화 행렬의 부호화 방법 및 복호화 방법과 이를 이용하는 장치
KR1020140087725A KR102115318B1 (ko) 2012-01-20 2014-07-11 양자화 행렬의 부호화 방법 및 복호화 방법과 이를 이용하는 장치
KR1020140087706A KR101527442B1 (ko) 2012-01-20 2014-07-11 양자화 행렬의 부호화 방법 및 복호화 방법과 이를 이용하는 장치
KR1020140087714A KR101875206B1 (ko) 2012-01-20 2014-07-11 양자화 행렬의 부호화 방법 및 복호화 방법과 이를 이용하는 장치
KR1020180076063A KR101998390B1 (ko) 2012-01-20 2018-06-29 양자화 행렬의 부호화 방법 및 복호화 방법과 이를 이용하는 장치
KR1020180076058A KR101971077B1 (ko) 2012-01-20 2018-06-29 양자화 행렬의 부호화 방법 및 복호화 방법과 이를 이용하는 장치
KR1020180076051A KR102020838B1 (ko) 2012-01-20 2018-06-29 양자화 행렬의 부호화 방법 및 복호화 방법과 이를 이용하는 장치
KR1020200060197A KR102313195B1 (ko) 2012-01-20 2020-05-20 양자화 행렬의 부호화 방법 및 복호화 방법과 이를 이용하는 장치
KR1020210133691A KR20210124171A (ko) 2012-01-20 2021-10-08 양자화 행렬의 부호화 방법 및 복호화 방법과 이를 이용하는 장치
KR1020240024907A KR20240027661A (ko) 2012-01-20 2024-02-21 양자화 행렬의 부호화 방법 및 복호화 방법과 이를 이용하는 장치

Family Applications Before (8)

Application Number Title Priority Date Filing Date
KR1020130006736A KR101627085B1 (ko) 2012-01-20 2013-01-21 양자화 행렬의 부호화 방법 및 복호화 방법과 이를 이용하는 장치
KR1020140087725A KR102115318B1 (ko) 2012-01-20 2014-07-11 양자화 행렬의 부호화 방법 및 복호화 방법과 이를 이용하는 장치
KR1020140087706A KR101527442B1 (ko) 2012-01-20 2014-07-11 양자화 행렬의 부호화 방법 및 복호화 방법과 이를 이용하는 장치
KR1020140087714A KR101875206B1 (ko) 2012-01-20 2014-07-11 양자화 행렬의 부호화 방법 및 복호화 방법과 이를 이용하는 장치
KR1020180076063A KR101998390B1 (ko) 2012-01-20 2018-06-29 양자화 행렬의 부호화 방법 및 복호화 방법과 이를 이용하는 장치
KR1020180076058A KR101971077B1 (ko) 2012-01-20 2018-06-29 양자화 행렬의 부호화 방법 및 복호화 방법과 이를 이용하는 장치
KR1020180076051A KR102020838B1 (ko) 2012-01-20 2018-06-29 양자화 행렬의 부호화 방법 및 복호화 방법과 이를 이용하는 장치
KR1020200060197A KR102313195B1 (ko) 2012-01-20 2020-05-20 양자화 행렬의 부호화 방법 및 복호화 방법과 이를 이용하는 장치

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020240024907A KR20240027661A (ko) 2012-01-20 2024-02-21 양자화 행렬의 부호화 방법 및 복호화 방법과 이를 이용하는 장치

Country Status (7)

Country Link
US (7) US9866839B2 (ko)
EP (2) EP2806640A4 (ko)
JP (11) JP5886446B2 (ko)
KR (10) KR101627085B1 (ko)
CN (7) CN109194958B (ko)
BR (3) BR112014017500B1 (ko)
WO (1) WO2013109127A1 (ko)

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ES2392437T3 (es) 2004-01-30 2012-12-10 Panasonic Corporation Procedimiento de decodificación de vídeos que utiliza matrices de cuantificación adaptativas
JP5886446B2 (ja) 2012-01-20 2016-03-16 エレクトロニクス アンド テレコミュニケーションズ リサーチ インスチチュートElectronics And Telecommunications Research Institute 量子化行列の符号化方法及び復号化方法、並びにそれを利用する装置
AU2015258162B2 (en) * 2012-02-29 2017-01-12 Sony Corporation Image Processing Device and Method
KR102154965B1 (ko) 2012-02-29 2020-09-10 소니 주식회사 화상 처리 장치 및 방법, 및 기록 매체
US9510019B2 (en) 2012-08-09 2016-11-29 Google Inc. Two-step quantization and coding method and apparatus
WO2014051962A1 (en) * 2012-09-25 2014-04-03 Motorola Mobility Llc Signaling of scaling list
US9253483B2 (en) 2012-09-25 2016-02-02 Google Technology Holdings LLC Signaling of scaling list
US11012693B2 (en) * 2014-12-26 2021-05-18 Panasonic Intellectual Property Management Co., Ltd. Encoding method, decoding method, encoding apparatus, and decoding apparatus
TWI561060B (en) * 2015-01-15 2016-12-01 Mstar Semiconductor Inc Signal processing apparatus and signal processing method including quantization or inverse-quantization process
FR3047379A1 (fr) * 2016-01-29 2017-08-04 Orange Procede de codage et decodage de donnees, dispositif de codage et decodage de donnees et programmes d'ordinateur correspondants
JP6962325B2 (ja) * 2016-08-24 2021-11-05 ソニーグループ株式会社 画像処理装置、画像処理方法、及びプログラム
US10827173B2 (en) 2017-11-13 2020-11-03 Electronics And Telecommunications Research Institute Method and apparatus for quantization
CN116647705A (zh) * 2018-03-28 2023-08-25 索尼公司 图像处理装置和图像处理方法
US11509889B2 (en) 2018-06-27 2022-11-22 Kt Corporation Method and apparatus for processing video signal
GB2595015B (en) 2018-06-27 2022-07-13 Kt Corp Bi-directional intra-prediction involving weighted sum of two reference samples
KR102462910B1 (ko) 2018-11-12 2022-11-04 한국전자통신연구원 배치 정규화 레이어의 웨이트들에 대한 양자화 방법 및 그 장치
JP2020098986A (ja) * 2018-12-17 2020-06-25 キヤノン株式会社 画像符号化装置及び画像復号装置及びそれらの制御方法及びプログラム
WO2020138933A1 (ko) * 2018-12-26 2020-07-02 한국전자통신연구원 양자화 행렬 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
BR122021012448B1 (pt) 2019-01-15 2022-03-22 Lg Electronics Inc Método de decodificação de uma imagem realizado por um aparelho de decodificação, método de codificação de uma imagem realizado por um aparelho de codificação, aparelho de decodificação para decodificação de imagem, aparelho de codificação para codificação de imagem e mídia de armazenamento digital legível por computador não transitória
JP2020150338A (ja) 2019-03-11 2020-09-17 キヤノン株式会社 画像復号装置、画像復号方法、及びプログラム
CN116886931A (zh) * 2019-03-25 2023-10-13 寰发股份有限公司 用于视频编解码的量化矩阵计算和表示的方法和装置
US20220159279A1 (en) * 2019-04-15 2022-05-19 Lg Electronics Inc. Video or image coding based on signaling of scaling list data
WO2020213866A1 (ko) * 2019-04-15 2020-10-22 엘지전자 주식회사 스케일링 리스트 파라미터 기반 비디오 또는 영상 코딩
CN113785581A (zh) * 2019-04-15 2021-12-10 Lg 电子株式会社 基于缩放列表的视频或图像编译
CN113841403A (zh) * 2019-05-15 2021-12-24 现代自动车株式会社 影像解码装置中使用的逆量化装置和方法
US20220321885A1 (en) * 2019-06-14 2022-10-06 Electronics And Telecommunications Research Institute Quantization matrix encoding/decoding method and device, and recording medium storing bitstream
TW202106017A (zh) * 2019-06-21 2021-02-01 法商內數位Vc控股法國公司 用於視訊編碼及解碼的單一索引量化矩陣設計
WO2021004434A1 (en) 2019-07-06 2021-01-14 Mediatek Inc. Signaling of quantization matrices
KR20220017439A (ko) 2019-07-08 2022-02-11 엘지전자 주식회사 스케일링 리스트 파라미터 기반 비디오 또는 영상 코딩
JP2022544950A (ja) * 2019-08-14 2022-10-24 インターデジタル ヴイシー ホールディングス フランス,エスエーエス ビデオエンコードおよびデコードに対する量子化マトリックス予測
EP4024857A4 (en) 2019-08-29 2023-06-28 LG Electronics Inc. Apparatus and method for coding image
JP2021048532A (ja) * 2019-09-19 2021-03-25 キヤノン株式会社 画像符号化装置、画像復号装置及びそれらの制御方法及びプログラム
CN114731405A (zh) * 2019-09-23 2022-07-08 Lg电子株式会社 使用量化矩阵的图像编码/解码方法和设备以及发送比特流的方法
CN111050171B (zh) * 2019-12-18 2022-10-11 腾讯科技(深圳)有限公司 视频解码方法、装置、设备及存储介质
CN111147858B (zh) * 2019-12-31 2024-02-27 腾讯科技(深圳)有限公司 视频解码方法、装置、设备及存储介质
US11451779B2 (en) * 2020-03-05 2022-09-20 Qualcomm Incorporated Scaling list signalling for video coding
US11316541B2 (en) 2020-09-25 2022-04-26 Samsung Electronics Co., Ltd. Low-density parity-check (LDCP) decoder of reconstruction-computation-quantization (RCQ) approach for a storage device

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4973961A (en) 1990-02-12 1990-11-27 At&T Bell Laboratories Method and apparatus for carry-over control in arithmetic entropy coding
KR0132895B1 (ko) 1992-07-24 1998-10-01 강진구 적응 양자화 기능을 갖는 영상압축 및 신장방법과 그 장치
FI973873A (fi) * 1997-10-02 1999-04-03 Nokia Mobile Phones Ltd Puhekoodaus
KR100584552B1 (ko) * 2003-01-14 2006-05-30 삼성전자주식회사 동영상 부호화 및 복호화 방법과 그 장치
ES2392437T3 (es) * 2004-01-30 2012-12-10 Panasonic Corporation Procedimiento de decodificación de vídeos que utiliza matrices de cuantificación adaptativas
US7373009B2 (en) * 2005-02-09 2008-05-13 Lsi Corporation Method and apparatus for efficient transmission and decoding of quantization matrices
US7991236B2 (en) * 2006-10-16 2011-08-02 Nokia Corporation Discardable lower layer adaptations in scalable video coding
CA2680140A1 (en) * 2007-04-16 2008-11-06 Kabushiki Kaisha Toshiba Image encoding and decoding method and apparatus
JP2010288166A (ja) 2009-06-15 2010-12-24 Panasonic Corp 動画像符号化装置、放送波記録装置及び、プログラム
KR101669873B1 (ko) 2009-10-16 2016-10-27 삼성전자주식회사 삼차원 메쉬 압축장치 및 방법
JP5328629B2 (ja) * 2009-12-17 2013-10-30 株式会社メガチップス エンコーダおよび画像変換装置
US9167252B2 (en) * 2010-12-01 2015-10-20 Texas Instruments Incorporated Quantization matrix compression in video coding
EP2675161B1 (en) 2011-02-10 2018-11-14 Velos Media International Limited Image processing device and image processing method
US10277915B2 (en) * 2011-11-07 2019-04-30 Qualcomm Incorporated Signaling quantization matrices for video coding
JP5886446B2 (ja) * 2012-01-20 2016-03-16 エレクトロニクス アンド テレコミュニケーションズ リサーチ インスチチュートElectronics And Telecommunications Research Institute 量子化行列の符号化方法及び復号化方法、並びにそれを利用する装置
KR102154965B1 (ko) 2012-02-29 2020-09-10 소니 주식회사 화상 처리 장치 및 방법, 및 기록 매체

Also Published As

Publication number Publication date
CN104170382B (zh) 2018-08-03
CN108683916B (zh) 2021-09-07
JP2019054541A (ja) 2019-04-04
JP6163575B2 (ja) 2017-07-12
US20230396769A1 (en) 2023-12-07
KR102313195B1 (ko) 2021-10-15
US9866839B2 (en) 2018-01-09
CN108924571B (zh) 2021-09-07
JP2019054540A (ja) 2019-04-04
US20190238850A1 (en) 2019-08-01
KR101627085B1 (ko) 2016-06-03
KR101875206B1 (ko) 2018-08-02
US11736696B2 (en) 2023-08-22
KR101998390B1 (ko) 2019-07-09
KR20180078213A (ko) 2018-07-09
BR112014017500A8 (pt) 2017-07-04
JP2020182234A (ja) 2020-11-05
KR20180078212A (ko) 2018-07-09
US10306228B2 (en) 2019-05-28
CN108683916A (zh) 2018-10-19
BR122020017523B1 (pt) 2022-11-22
CN109194958A (zh) 2019-01-11
KR101971077B1 (ko) 2019-04-22
KR101527442B1 (ko) 2015-06-11
CN107580230B (zh) 2021-08-20
US20200296376A1 (en) 2020-09-17
CN109194967B (zh) 2021-09-07
KR20140092288A (ko) 2014-07-23
JP6445623B2 (ja) 2018-12-26
JP2016129356A (ja) 2016-07-14
CN109194958B (zh) 2021-08-20
WO2013109127A1 (ko) 2013-07-25
CN108924571A (zh) 2018-11-30
JP2017200216A (ja) 2017-11-02
KR20180079274A (ko) 2018-07-10
KR20140092287A (ko) 2014-07-23
JP2016129355A (ja) 2016-07-14
JP5886446B2 (ja) 2016-03-16
JP6163574B2 (ja) 2017-07-12
JP2016136732A (ja) 2016-07-28
JP2015504289A (ja) 2015-02-05
KR20200057693A (ko) 2020-05-26
CN108924570B (zh) 2021-08-24
EP2806640A1 (en) 2014-11-26
BR112014017500A2 (pt) 2017-06-13
US20150334396A1 (en) 2015-11-19
US11252411B2 (en) 2022-02-15
US20180048905A1 (en) 2018-02-15
JP7003191B2 (ja) 2022-01-20
CN109194967A (zh) 2019-01-11
CN104170382A (zh) 2014-11-26
JP6163576B2 (ja) 2017-07-12
JP6736642B2 (ja) 2020-08-05
JP2022061985A (ja) 2022-04-19
KR20130086012A (ko) 2013-07-30
KR102115318B1 (ko) 2020-05-26
JP2019062551A (ja) 2019-04-18
KR20140092286A (ko) 2014-07-23
JP6738882B2 (ja) 2020-08-12
KR20240027661A (ko) 2024-03-04
CN108924570A (zh) 2018-11-30
US20220132126A1 (en) 2022-04-28
EP3855744A1 (en) 2021-07-28
EP2806640A4 (en) 2016-04-27
CN107580230A (zh) 2018-01-12
US11778189B2 (en) 2023-10-03
BR112014017500B1 (pt) 2022-11-16
US20220124333A1 (en) 2022-04-21
JP2023139264A (ja) 2023-10-03
KR102020838B1 (ko) 2019-09-11
BR122020017515B1 (pt) 2022-11-22
US10708595B2 (en) 2020-07-07
JP6720278B2 (ja) 2020-07-08

Similar Documents

Publication Publication Date Title
KR102313195B1 (ko) 양자화 행렬의 부호화 방법 및 복호화 방법과 이를 이용하는 장치
KR20230035009A (ko) 양자화 행렬의 부호화 방법 및 복호화 방법과 이를 이용하는 장치
KR102110228B1 (ko) 비디오 인코딩 및 디코딩 방법과 이를 이용한 장치

Legal Events

Date Code Title Description
A107 Divisional application of patent
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
X601 Decision of rejection after re-examination
A107 Divisional application of patent