KR102480967B1 - 영상 부호화/복호화 방법 및 장치 - Google Patents

영상 부호화/복호화 방법 및 장치 Download PDF

Info

Publication number
KR102480967B1
KR102480967B1 KR1020210003241A KR20210003241A KR102480967B1 KR 102480967 B1 KR102480967 B1 KR 102480967B1 KR 1020210003241 A KR1020210003241 A KR 1020210003241A KR 20210003241 A KR20210003241 A KR 20210003241A KR 102480967 B1 KR102480967 B1 KR 102480967B1
Authority
KR
South Korea
Prior art keywords
current block
block
transform
scale factor
transform skip
Prior art date
Application number
KR1020210003241A
Other languages
English (en)
Other versions
KR20210008886A (ko
Inventor
김휘용
임성창
이진호
최진수
김진웅
박광훈
김경용
Original Assignee
한국전자통신연구원
경희대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국전자통신연구원, 경희대학교 산학협력단 filed Critical 한국전자통신연구원
Publication of KR20210008886A publication Critical patent/KR20210008886A/ko
Priority to KR1020220179644A priority Critical patent/KR20230002236A/ko
Application granted granted Critical
Publication of KR102480967B1 publication Critical patent/KR102480967B1/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/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/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/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/18Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a set of transform coefficients
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Landscapes

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

Abstract

영상 부호화/복호화 방법 및 장치가 개시된다. 상기 영상 복호화 방법은 현재 블록이 변환 스킵 블록인지 여부에 따라 상기 현재 블록에 대한 스케일 팩터를 도출하는 단계 및 상기 스케일 팩터를 기반으로 상기 현재 블록에 대한 스케일링을 수행하는 단계를 포함하며, 상기 현재 블록에 대한 스케일 팩터는 상기 현재 블록 내 변환 계수의 위치를 기반으로 도출되며, 상기 변환 스킵 블록은 상기 현재 블록에 대해 변환을 적용하지 않은 블록이며, 상기 현재 블록에 대해 역변환을 적용할지 여부를 나타내는 정보를 기반으로 특정된다.

Description

영상 부호화/복호화 방법 및 장치{METHOD AND APPARATUS FOR IMAGE ENCODING/DECODING}
본 발명은 영상의 부호화/복호화에 관한 것으로, 보다 상세하게는 변환 계수에 대한 스케일링 방법 및 장치에 관한 것이다.
최근 HD(High Definition) 해상도(1280x1024 혹은 1920x1080)를 가지는 방송 서비스가 국내뿐만 아니라 세계적으로 확대되고 있다. 이에 따라 많은 사용자들이 고해상도, 고화질의 영상에 많이 익숙해지고 있으며 그에 발맞춰서 많은 기관에서는 차세대 영상기기에 대한 개발에 박차를 가하고 있다. 또한 HDTV와 더불어 HDTV의 4배 이상의 해상도를 갖는 UHD(Ultra High Definition)에 대한 관심이 증대되면서 동영상 표준화 단체들은 보다 높은 해상도, 고화질의 영상에 대한 압축기술의 필요성을 인식하게 되었다. 또한 현재 HDTV, 휴대전화, 블루레이 플레이어에 사용되는 H.264/AVC보다 높은 압축 효율을 통해 동일한 화질을 유지하면서도 주파수 대역이나 저장 측면에서 많은 이득을 얻을 수 있는 새로운 표준이 절실한 실정이다.
현재 MPEG(Moving Picture Experts Group)과 VCEG(Video Coding Experts Group)는 공동으로 차세대 비디오 코덱인 HEVC(High Efficiency Video Coding)를 표준화하고 있으며, UHD 영상까지 포함한 영상을 H.264/AVC 대비 2배의 압축효율로 부호화를 하는 것을 목표로 하고 있다. 이는 HD, UHD 영상뿐만 아니라 3D 방송 및 이동통신망에서도 현재보다 낮은 주파수로 고화질의 영상을 제공할 수 있다.
본 발명은 부호화/복호화 효율을 향상시킬 수 있는 영상 부호화/복호화 방법 및 장치를 제공한다.
본 발명은 부호화/복호화 효율을 향상시킬 수 있는 변환 계수(혹은 잔여 신호)의 스케일링 방법 및 장치를 제공한다.
본 발명은 부호화/복호화 효율을 향상시킬 수 있는 변환 스킵 블록에 대한 양자화/역양자화 방법 및 장치를 제공한다.
본 발명의 일 양태에 따르면, 영상 복호화 방법이 제공된다. 상기 영상 복호화 방법은 현재 블록이 변환 스킵 블록인지 여부에 따라 상기 현재 블록에 대한 스케일 팩터를 도출하는 단계 및 상기 스케일 팩터를 기반으로 상기 현재 블록에 대한 스케일링을 수행하는 단계를 포함한다.
상기 현재 블록에 대한 스케일 팩터는, 상기 현재 블록 내 변환 계수의 위치를 기반으로 도출되며, 상기 변환 스킵 블록은, 상기 현재 블록에 대해 변환을 적용하지 않은 블록이며, 상기 현재 블록에 대해 역변환을 적용할지 여부를 나타내는 정보를 기반으로 특정된다.
상기 현재 블록에 대한 스케일 팩터를 도출하는 단계에서는, 상기 현재 블록이 변환 스킵 블록일 경우, 상기 현재 블록 내 변환 계수의 위치에 상관없이 기본 스케일 팩터를 도출할 수 있다.
상기 기본 스케일 팩터는 소정의 스케일 팩터 값을 가지며, 상기 소정의 스케일 팩터 값은 16일 수 있다.
상기 기본 스케일 팩터는 상기 현재 블록이 양자화 행렬을 사용하는지 여부에 따라 다른 스케일 팩터 값을 가질 수 있다.
상기 기본 스케일 팩터는 상기 현재 블록이 휘도 블록인지 색차 블록인지에 따라 다른 스케일 팩터 값을 가질 수 있다.
상기 현재 블록을 포함하는 픽처에 변환 스킵 알고리즘이 사용되는지 여부를 나타내는 플래그가 PPS(Picture Parameter Set)를 통해 시그널링될 수 있다.
상기 기본 스케일 팩터는 휘도 신호와 색차 신호에 대한 스케일 팩터 정보를 포함할 수 있다.
상기 현재 블록에 대한 스케일 팩터를 도출하는 단계에서는, 상기 현재 블록이 변환 스킵 블록이거나 혹은 상기 현재 블록이 양자화 행렬을 사용하지 않을 경우, 상기 현재 블록 내 변환 계수의 위치에 상관없이 기본 스케일 팩터를 도출할 수 있다.
상기 현재 블록에 대한 스케일 팩터를 도출하는 단계에서는, 상기 현재 블록이 변환 스킵 블록이 아닌 경우, 상기 현재 블록 내 변환 계수의 위치를 기반으로 양자화 행렬을 이용하여 상기 현재 블록에 대한 스케일 팩터를 도출할 수 있다.
본 발명의 다른 양태에 따르면, 영상 복호화 장치가 제공된다. 상기 영상 복호화 장치는 현재 블록이 변환 스킵 블록인지 여부에 따라 상기 현재 블록에 대한 스케일 팩터를 도출하고, 상기 스케일 팩터를 기반으로 상기 현재 블록에 대한 스케일링을 수행하는 역양자화부를 포함한다.
상기 현재 블록에 대한 스케일 팩터는, 상기 현재 블록 내 변환 계수의 위치를 기반으로 도출되며, 상기 변환 스킵 블록은, 상기 현재 블록에 대해 변환을 적용하지 않은 블록이며, 상기 현재 블록에 대해 변환을 적용할지 여부를 나타내는 정보를 기반으로 특정될 수 있다.
본 발명의 또 다른 양태에 따르면, 영상 부호화 방법이 제공된다. 상기 영상 부호화 방법은 현재 블록이 변환 스킵 블록인지 여부에 따라 상기 현재 블록에 대한 스케일 팩터를 도출하는 단계 및 상기 스케일 팩터를 기반으로 상기 현재 블록에 대한 스케일링을 수행하는 단계를 포함한다.
상기 현재 블록에 대한 스케일 팩터는, 상기 현재 블록 내 변환 계수의 위치를 기반으로 도출되며, 상기 변환 스킵 블록은, 상기 현재 블록에 대해 변환을 적용하지 않은 블록이며, 상기 현재 블록에 대해 변환을 적용할지 여부를 나타내는 정보를 기반으로 특정될 수 있다.
상기 현재 블록에 대한 스케일 팩터를 도출하는 단계에서는, 상기 현재 블록이 변환 스킵 블록일 경우, 상기 현재 블록 내 변환 계수의 위치에 상관없이 기본 스케일 팩터를 도출할 수 있다.
상기 기본 스케일 팩터는 소정의 스케일 팩터 값을 가지며, 상기 소정의 스케일 팩터 값은 16일 수 있다.
상기 기본 스케일 팩터는 상기 현재 블록이 양자화 행렬을 사용하는지 여부에 따라 다른 스케일 팩터 값을 가질 수 있다.
상기 기본 스케일 팩터는 상기 현재 블록이 휘도 블록인지 색차 블록인지에 따라 다른 스케일 팩터 값을 가질 수 있다.
상기 현재 블록을 포함하는 픽처에 변환 스킵 알고리즘이 사용되는지 여부를 나타내는 플래그가 PPS(Picture Parameter Set)를 통해 시그널링될 수 있다.
상기 기본 스케일 팩터는 휘도 신호와 색차 신호에 대한 스케일 팩터 정보를 포함할 수 있다.
상기 현재 블록에 대한 스케일 팩터를 도출하는 단계에서는, 상기 현재 블록이 변환 스킵 블록이거나 혹은 상기 현재 블록이 양자화 행렬을 사용하지 않을 경우, 상기 현재 블록 내 변환 계수의 위치에 상관없이 기본 스케일 팩터를 도출할 수 있다.
상기 현재 블록에 대한 스케일 팩터를 도출하는 단계에서는, 상기 현재 블록이 변환 스킵 블록이 아닌 경우, 상기 현재 블록 내 변환 계수의 위치를 기반으로 양자화 행렬을 이용하여 상기 현재 블록에 대한 스케일 팩터를 도출할 수 있다.
본 발명의 또 다른 양태에 따르면, 영상 부호화 장치가 제공된다. 상기 영상 부호화 장치는 현재 블록이 변환 스킵 블록인지 여부에 따라 상기 현재 블록에 대한 스케일 팩터를 도출하고, 상기 스케일 팩터를 기반으로 상기 현재 블록에 대한 스케일링을 수행하는 양자화부를 포함한다.
상기 현재 블록에 대한 스케일 팩터는, 상기 현재 블록 내 변환 계수의 위치를 기반으로 도출되며, 상기 변환 스킵 블록은, 상기 현재 블록에 대해 변환을 적용하지 않은 블록이며, 상기 현재 블록에 대해 변환을 적용할지 여부를 나타내는 정보를 기반으로 특정될 수 있다.
변환 스킵 알고리즘이 적용된 블록은 변환/역변환 과정을 수행하지 않으므로, 기존의 변환/역변환 과정을 수행한 블록과는 서로 다른 변환 계수 특성을 지닌다. 즉, 기존의 변환/역변환 과정을 수행한 블록에 적용하였던 스케일링 방법을 그대로 변환 스킵 블록에 적용할 경우 부호화/복호화 효율을 감소시킬 수 있다. 따라서, 변환 스킵 블록에 대해서는 블록 내 변환 계수의 위치에 상관없이 동일하게 스케일 팩터를 적용함으로써, 부호화 및 복호화 효율을 증가시킬 수 있다.
도 1은 본 발명이 적용되는 영상 부호화 장치의 일 실시예에 따른 구성을 나타내는 블록도이다.
도 2는 본 발명이 적용되는 영상 복호화 장치의 일 실시예에 따른 구성을 나타내는 블록도이다.
도 3은 영상을 부호화할 때 영상의 분할 구조를 개략적으로 나타내는 도면이다.
도 4는 코딩 유닛(CU)이 포함할 수 있는 예측 유닛(PU)의 형태를 도시한 도면이다.
도 5는 코딩 유닛(CU)이 포함할 수 있는 변환 유닛(TU)의 형태를 도시한 도면이다.
도 6은 본 발명의 일 실시예에 따른 잔여 신호(혹은 변환 계수)에 대한 스케일링 방법을 나타내는 순서도이다.
도 7은 본 발명의 다른 실시예에 따른 잔여 신호(혹은 변환 계수)에 대한 스케일링 방법을 나타내는 순서도이다.
이하, 도면을 참조하여 본 발명의 실시 형태에 대하여 구체적으로 설명한다. 본 명세서의 실시예를 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 명세서의 요지를 흐릴 수 있다고 판단되는 경우에는 해당 설명을 생략할 수도 있다.
본 명세서에서 어떤 구성 요소가 다른 구성 요소에 연결되어 있다거나 접속되어 있다고 언급된 때에는, 그 다른 구성 요소에 직접적으로 연결되어 있거나 또는 접속되어 있는 것을 의미할 수도 있고, 중간에 다른 구성 요소가 존재하는 것을 의미할 수도 있다. 아울러, 본 명세서에서 특정 구성을 포함한다고 기술하는 내용은 해당 구성 이외의 구성을 배제하는 것이 아니며, 추가적인 구성이 본 발명의 실시 또는 본 발명의 기술적 사상의 범위에 포함될 수 있음을 의미한다.
제1, 제2 등의 용어는 다양한 구성들을 설명하는데 사용될 수 있지만, 상기 구성들은 상기 용어에 의해 한정되지 않는다. 상기 용어들은 하나의 구성을 다른 구성으로부터 구별하는 목적으로 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성은 제2 구성으로 명명될 수 있고, 유사하게 제2 구성도 제1 구성으로 명명될 수 있다.
또한 본 발명의 실시예에 나타나는 구성부들은 서로 다른 특징적인 기능을 나타내기 위해 독립적으로 도시되는 것으로, 각 구성부들이 분리된 하드웨어나 하나의 소프트웨어 구성 단위로 이루어짐을 의미하지 않는다. 즉, 각 구성부는 설명의 편의상 각각의 구성부로 나열하여 포함한 것으로 각 구성부 중 적어도 두 개의 구성부가 하나의 구성부를 이루거나, 하나의 구성부가 복수 개의 구성부로 나뉘어져 기능을 수행할 수 있다. 각 구성부의 통합된 실시예 및 분리된 실시예도 본 발명의 본질에서 벗어나지 않는 한 본 발명의 권리 범위에 포함된다.
또한, 일부의 구성 요소는 본 발명에서 본질적인 기능을 수행하는 필수적인 구성 요소는 아니고 단지 성능을 향상시키기 위한 선택적 구성 요소일 수 있다. 본 발명은 단지 성능 향상을 위해 사용되는 구성 요소를 제외한 본 발명의 본질을 구현하는데 필수적인 구성부만을 포함하여 구현될 수 있고, 단지 성능 향상을 위해 사용되는 선택적 구성 요소를 제외한 필수 구성 요소만을 포함한 구조도 본 발명의 권리범위에 포함된다.
우선, 설명의 편의를 도모하고 발명의 이해를 돕기 위해, 본 명세서에서 사용되는 용어들에 대하여 간략하게 설명한다.
*유닛(unit)은 영상 부호화 및 복호화의 단위를 의미한다. 다시 말하면, 영상 부호화/복호화 시, 부호화 혹은 복호화 단위라 함은 하나의 영상을 세분화된 유닛으로 분할하여 부호화 혹은 복호화 할 때 그 분할된 단위를 말한다. 블록(block), 매크로 블록(Macro Block; MB), 부호화 유닛(Coding Unit; CU), 예측 유닛(Prediction Unit; PU), 변환 유닛(Transform Unit; TU), 부호화 블록(Coding Block; CB), 예측 블록(Prediction Block; PB), 변환 블록(Transform Block; TB) 등으로 부를 수 있다. 하나의 유닛은 크기가 더 작은 하위 유닛으로 분할될 수 있다.
블록(block)은 샘플(sample)의 MxN 배열을 말하며, M과 N은 양의 정수 값을 가진다. 블록은 흔히 2차원 형태의 배열을 의미할 수 있다.
변환 유닛(Transform Unit; TU)은 변환, 역변환, 양자화, 역양자화, 변환 계수 부호화/복호화와 같이 잔여 신호(residual signal)의 부호화/복호화를 수행할 때의 기본 유닛이며, 하나의 변환 유닛은 분할되어 크기가 작은 다수의 변환 유닛으로 분할될 수 있다. 이때, 잔여 신호(residual signal)가 블록 형태로 존재할 경우 잔여 블록(residual block)이라고 할 수 있다.
양자화 행렬(quantization matrix)은 영상의 주관적 화질 혹은 객관적 화질을 향상시키기 위해서 양자화 혹은 역양자화 과정에서 이용하는 행렬을 의미한다. 양자화 행렬은 스케일링 리스트(scaling list)라고도 불린다.
양자화 행렬은 기본 행렬(default matrix), 비기본 행렬(non-default matrix), 평면 행렬(flat matrix)로 나뉠 수 있다. 기본 행렬은 부호화기와 복호화기에서 미리 정의되어 있는 소정의 양자화 행렬을 의미할 수 있다. 비기본 행렬은 부호화기와 복호화기에서 미리 정의되지 않고, 사용자에 의해서 전송/수신되는 양자화 행렬을 의미할 수 있다. 평면 행렬은 행렬 내 모든 원소가 동일한 값을 가지는 행렬을 의미할 수 있다.
스케일링(scaling)은 변환 계수 레벨에 인수를 곱하는 과정을 의미하며, 결과로 변환 계수를 생성한다. 스케일링은 역양자화(dequantization)라고도 한다.
변환 계수(transform coefficient)는 변환을 수행하고 나서 생성된 계수값을 말한다. 본 명세서에서는 변환 계수에 양자화를 적용한 양자화된 변환 계수 레벨(transform coefficient level)도 변환 계수라 통칭하여 사용한다.
양자화 매개변수(quantization parameter)는 양자화 및 역양자화에서 변환 계수 레벨을 스케일링할 때 사용되는 값을 의미한다. 이때, 양자화 매개변수는 양자화 스텝 크기(step size)에 매핑된 값일 수 있다.
파라미터 세트(parameter set)는 비트스트림 내의 구조 중 헤더 정보에 해당하며, 시퀀스 파라미터 세트(sequence parameter set), 픽처 파라미터 세트(picture parameter set), 적응 파라미터 세트(adaptation parameter set) 등을 통칭하는 의미를 가진다.
도 1은 본 발명이 적용되는 영상 부호화 장치의 일 실시예에 따른 구성을 나타내는 블록도이다.
도 1을 참조하면, 영상 부호화 장치(100)는 움직임 예측부(111), 움직임 보상부(112), 인트라 예측부(120), 스위치(115), 감산기(125), 변환부(130), 양자화부(140), 엔트로피 부호화부(150), 역양자화부(160), 역변환부(170), 가산기(175), 필터부(180) 및 참조 영상 버퍼(190)를 포함한다.
영상 부호화 장치(100)는 입력 영상에 대해 인트라(intra) 모드 또는 인터(inter) 모드로 부호화를 수행하고 비트스트림을 출력할 수 있다. 인트라 모드인 경우 스위치(115)가 인트라로 전환되고, 인터 모드인 경우 스위치(115)가 인터로 전환될 수 있다. 인트라 예측은 화면 내 예측, 인터 예측은 화면 간 예측을 의미한다. 영상 부호화 장치(100)는 입력 영상의 입력 블록에 대한 예측 블록을 생성한 후, 입력 블록과 예측 블록의 차분(residual)을 부호화할 수 있다. 이때, 입력 영상은 원 영상(original picture)를 의미할 수 있다.
인트라 모드인 경우, 인트라 예측부(120)는 현재 블록 주변의 이미 부호화/복호화된 블록의 픽셀값을 이용하여 공간적 예측을 수행하여 예측 블록을 생성할 수 있다.
인터 모드인 경우, 움직임 예측부(111)는, 움직임 예측 과정에서 참조 픽처 버퍼(190)에 저장되어 있는 참조 영상에서 입력 블록과 가장 매치가 잘 되는 영역을 찾아 움직임 벡터를 구할 수 있다. 움직임 보상부(112)는 움직임 벡터를 이용하여 움직임 보상을 수행함으로써 예측 블록을 생성할 수 있다. 여기서, 움직임 벡터는 인터 예측에 사용되는 2차원 벡터이며, 현재 부호화/복호화 대상 영상과 참조 영상 사이의 오프셋을 나타낼 수 있다.
감산기(125)는 입력 블록과 생성된 예측 블록의 차분에 의해 잔차 블록(residual block)을 생성할 수 있다.
변환부(130)는 잔차 블록에 대해 변환(transform)을 수행하여 변환 계수(transform coefficient)를 출력할 수 있다. 그리고 양자화부(140)는 입력된 변환 계수를 양자화 파라미터(quantization parameter, 또는 양자화 매개변수)에 따라 양자화하여 양자화된 계수(quantized coefficient)를 출력할 수 있다.
엔트로피 부호화부(150)는, 양자화부(140)에서 산출된 값들 또는 부호화 과정에서 산출된 부호화 파라미터 값 등을 기초로 엔트로피 부호화를 수행하여 비트스트림(bit stream)을 출력할 수 있다. 엔트로피 부호화가 적용되는 경우, 높은 발생 확률을 갖는 심볼(symbol)에 적은 수의 비트가 할당되고 낮은 발생 확률을 갖는 심볼에 많은 수의 비트가 할당되어 심볼이 표현됨으로써, 부호화 대상 심볼들에 대한 비트열의 크기가 감소될 수 있다. 따라서 엔트로피 부호화를 통해서 영상 부호화의 압축 성능이 높아질 수 있다. 엔트로피 부호화부(150)는 엔트로피 부호화를 위해 지수-골롬(Exponential-Golomb), CAVLC(Context-Adaptive Variable Length Coding), CABAC(Context-Adaptive Binary Arithmetic Coding)과 같은 부호화 방법을 사용할 수 있다.
도 1의 실시예에 따른 영상 부호화 장치(100)는 인터 예측 부호화, 즉 화면 간 예측 부호화를 수행하므로, 현재 부호화된 영상은 참조 영상으로 사용되기 위해 복호화되어 저장될 필요가 있다. 따라서 양자화된 계수는 역양자화부(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)에서 역변환되며, 양자화된 계수가 역양자화/역변환 된 결과, 복원된 잔차 블록이 생성될 수 있다.
인트라 모드인 경우, 인트라 예측부(240)는 현재 블록 주변의 이미 복호화된 블록의 픽셀값을 이용하여 공간적 예측을 수행하여 예측 블록을 생성할 수 있다. 인터 모드인 경우, 움직임 보상부(250)는 움직임 벡터 및 참조 픽처 버퍼(270)에 저장되어 있는 참조 영상을 이용하여 움직임 보상을 수행함으로써 예측 블록을 생성할 수 있다.
잔차 블록과 예측 블록은 가산기(255)를 통해 더해지고, 더해진 블록은 필터부(260)를 거칠 수 있다. 필터부(260)는 디블록킹 필터, SAO, ALF 중 적어도 하나 이상을 복원 블록 또는 복원 픽쳐에 적용할 수 있다. 필터부(260)는 재구성된 영상, 즉 복원 영상을 출력할 수 있다. 복원 영상은 참조 픽처 버퍼(270)에 저장되어 인터 예측에 사용될 수 있다.
도 3은 영상을 부호화할 때 영상의 분할 구조를 개략적으로 나타내는 도면이다.
HEVC(High Efficiency Video Coding)에서는 영상을 효율적으로 분할하기 위해 코딩 유닛(Coding Unit; CU)으로 부호화를 수행한다.
도 3을 참조하면, HEVC에서는 영상(300)을 최대 코딩 유닛(Largest Coding Unit; LCU)(이하, LCU라 함) 단위로 순차적으로 분할한 후, LCU 단위로 분할 구조를 결정한다. 분할 구조는 LCU(310) 내에서 영상을 효율적으로 부호화하기 위한 코딩 유닛(이하, CU라 함)의 분포를 의미하며, 이러한 분포는 하나의 CU를 그 가로 크기 및 세로 크기의 절반으로 감소된 4개의 CU로 분할할지 여부에 따라 결정될 수 있다. 분할된 CU는 동일한 방식으로 분할된 CU에 대해서 그 가로 크기 및 세로 크기가 절반씩 감소된 4개의 CU로 재귀적으로 분할될 수 있다.
이때, CU의 분할은 미리 정의된 깊이까지 재귀적으로 분할될 수 있다. 깊이 정보는 CU의 크기를 나타내는 정보로써, 각 CU마다 저장되어 있다. 예컨대, LCU의 깊이는 0이고, SCU(Smallest Coding Unit)의 깊이는 미리 정의된 최대 깊이일 수 있다. 여기서, LCU는 상술한 바와 같이 최대 코딩 유닛 크기를 가지는 코딩 유닛이며, SCU(Smallest Coding Unit)는 최소 코딩 유닛 크기를 가지는 코딩 유닛이다.
LCU(310)로부터 가로 및 세로 크기의 절반으로 분할을 수행할 때마다 CU의 깊이는 1씩 증가한다. 각각의 깊이 별로, 분할을 수행하지 않는 CU의 경우에는 2Nx2N 크기를 가지며, 분할을 수행하는 CU의 경우에는 2Nx2N 크기의 CU에서 NxN 크기를 가지는 4개의 CU로 분할된다. N의 크기는 깊이가 1씩 증가할 때마다 절반으로 감소한다.
도 3을 참조하면, 최소 깊이가 0인 LCU의 크기는 64x64 화소이고, 최대 깊이가 3인 SCU의 크기는 8x8 화소일 수 있다. 이때, 64x64 화소의 CU(LCU)는 깊이 0으로, 32x32 화소의 CU는 깊이 1로, 16x16 화소의 CU는 깊이 2로, 8x8 화소의 CU(SCU)는 깊이 3으로 표현될 수 있다.
또한, 특정 CU를 분할할지에 대한 정보는 CU마다 1비트의 분할 정보를 통해 표현될 수 있다. 이 분할 정보는 SCU를 제외한 모든 CU에 포함될 수 있으며, 예컨대 CU를 분할하지 않을 경우에는 분할 정보에 0을 저장할 수 있고, CU를 분할할 경우에는 분할 정보에 1을 저장할 수 있다.
한편, LCU로부터 분할된 CU는 예측을 위한 기본 단위인 예측 유닛(Prediction Unit; PU 또는 Prediction Block; PB)과 변환을 위한 기본 단위인 변환 유닛(Transform Unit; TU 또는 Transform Block; TB)으로 구성될 수 있다.
도 4는 코딩 유닛(CU)이 포함할 수 있는 예측 유닛(PU)의 형태를 도시한 도면이다.
LCU로부터 분할된 CU 중 더 이상 분할되지 않는 CU는 하나 이상의 예측 유닛으로 분할되며 이 행위 자체 역시 분할(partition)(혹은 파티션)이라고 일컫는다. 예측 유닛(이하, PU라 함)은 예측을 수행하는 기본 단위로써, 스킵(skip) 모드, 인터(inter) 모드, 인트라(intra) 모드 중 어느 하나로 부호화되며, 각 모드에 따라서 다양한 형태로 파티션될 수 있다.
도 4를 참조하면, 스킵 모드의 경우, CU 내에서 파티션 없이, CU와 동일한 크기를 갖는 2Nx2N 모드(410)를 지원할 수 있다.
인터 모드의 경우, CU 내에서 8가지의 파티션된 형태, 예컨대 2Nx2N 모드(410), 2NxN 모드(415), Nx2N 모드(420), NxN 모드(425), 2NxnU 모드(430), 2NxnD 모드(435), nLx2N 모드(440), nRx2N 모드(445)를 지원할 수 있다.
인트라 모드의 경우, CU 내에서 2Nx2N 모드(410), NxN 모드(425)를 지원할 수 있다.
도 5는 코딩 유닛(CU)이 포함할 수 있는 변환 유닛(TU)의 형태를 도시한 도면이다.
변환 유닛(이하, TU라 함)은 CU 내에서 공간 변환과 양자화/역양자화(스케일링) 과정을 위해 사용되는 기본 단위이다. TU는 정사각형 또는 직사각형 형태를 가질 수 있다. LCU로부터 분할된 CU 중 더 이상 분할되지 않는 CU는 하나 혹은 그 이상의 TU로 분할될 수 있다.
이때, TU의 분할 구조는 쿼드트리(quad-tree) 구조일 수 있다. 예컨대, 도 5에 도시된 바와 같이, 하나의 CU(510)가 쿼드트리 구조에 따라서 한번 혹은 그 이상 분할되어 다양한 크기의 TU들로 구성될 수 있다.
한편, HEVC에서는 H.264/AVC와 같이 화면 내 예측(이하, 인트라 예측) 부호화를 수행할 수 있다. 이때 현재 블록의 주변에 위치한 주변 블록으로부터 현재 블록의 인트라 예측 모드(혹은 예측 방향성)를 유도하여 부호화할 수 있다.
상기와 같이, 인트라 예측 모드를 기반으로 예측이 수행됨으로써 취득된 신호에 대한 예측 영상은 원본 영상과의 차이 값을 가질 수 있다. 이러한 예측 영상과 원본 영상 간의 차이 값을 가지는 차분 영상은 주파수 영역 변환과 양자화를 거쳐 엔트로피 부호화될 수 있다. 이때, 주파수 영역 변환의 부호화 효율을 높이고자 정수 변환, 정수 이산 여현 변환(Discrete Cosine Transform; DCT), 정수 이산 정현 변환(Discrete Sine Transform; DST), 또는 인트라 예측 모드 종속적인 DCT/DST 등을 블록 크기에 따라 선택적, 적응적으로 적용할 수 있다.
또한, 문서 영상이나 혹은 파워포인트의 프리젠테이션 영상과 같은 스크린 컨텐츠(screen contents)에서 부호화 효율을 높이기 위해서 변환 스킵(Transform SKIP) 알고리즘을 적용할 수 있다.
변환 스킵 알고리즘을 적용할 경우, 부호화기에서는 원본 영상과 예측 영상 간의 차이 값을 가지는 차분 영상(잔여 블록)을 주파수 변환 과정 없이 바로 양자화하여 잔여 블록에 대해 엔트로피 부호화를 수행한다. 그리고 복호화기에서는 잔여 블록에 대해 엔트로피 복호화하고 역양자화(스케일링)를 수행하여 복원된 잔여 블록을 생성한다. 따라서 이러한 변환 스킵 알고리즘이 적용된 블록은 주파수 변환/역변환 과정을 건너뛰게 된다.
양자화/역양자화 과정에서는 영상의 주관적 화질 향상을 위해 블록 내 변환 계수의 위치에 따라 스케일 팩터(scale factor)를 다르게 적용할 수 있다. 반면, 양자화/역양자화를 수행할 때 블록 내 변환 계수의 위치에 상관없이 스케일 팩터를 동일하게 적용하는 방법이 있다. 이러한 방법의 적용 여부는 비트스트림의 SPS(Sequence Parameter Set) 혹은 PPS(Picture Parameter Set)를 통해 시그널링될 수 있다.
상기 과정의 일 실시예로, 변환 계수의 스케일링 과정(Scaling Process for transform coefficients)은 아래와 같이 수행될 수 있다.
변환 계수의 스케일링 과정
여기서의 입력은 다음과 같다.
- 현재 변환 블록의 너비 Width; nW
- 현재 변환 블록의 높이 Height; nH
- 요소(element) cij를 가진 변환 계수의 배열; (nWxnH) array d
- 현재 블록의 휘도 신호 및 색차 신호에 대한 인덱스; cIdx
만일 cIdx 가 ‘0’ 이면 휘도 신호를 의미하고, cIdx가 ‘1’ 이거나 혹은 cIdx가 ‘2’이면 색차 신호를 의미한다. 또한 cIdx 가 ‘1’이면 색차 신호에서 Cb를 의미하고, cIdx 가 ‘2’이면 색차 신호에서 Cr을 의미한다.
- 양자화 파라미터; qP
여기서의 출력은 다음과 같다.
- 스케일된 변환 계수에 대한 배열; (nWxnH) array dij
변수 log2TrSize 는 log2TrSize = ( Log2( nW ) + Log2( nH ) ) >> 1 를 통해 유도된다. 변수 shift는 cIdx에 따라 다르게 유도된다. cIx가 ‘0’과 같다면(휘도 신호라면), shift = BitDepthY + log2TrSize - 5 로부터 유도되며, 그렇지 않다면(색차 신호), shift = BitDepthC + log2TrSize - 5 로부터 유도된다. 여기서 BitDepthY 와 BitDepthC 는 현재 영상에 대한 샘플의 비트수(예를 들어, 8 비트)를 의미한다.
스케일링 변수들에 대한 배열 levelScale[ ]은 다음 수학식 1과 같다.
[수학식 1]
Figure 112021003212274-pat00001
스케일된 변환 계수는 다음의 과정을 통해 계산된다.
먼저, 스케일 팩터 mij가 다음 과정을 통해 유도된다.
- 만일 scaling_list_enable_flag 가 '0'이라면, mij는 다음 수학식2와 같이 유도된다.
[수학식 2]
Figure 112021003212274-pat00002
- 그렇지 않다면, mij는 다음 수학식 3과 같이 유도된다.
[수학식 3]
Figure 112021003212274-pat00003
여기서, SizeID는 변환 블록의 크기에 따라 아래 표 1을 통해 유도되며, RefMatrixID 그리고 trafoType는 아래 수학식 4와 수학식 5로부터 각각 유도된다. 또한, 수학식 4에서 scaling_list_pred_matrix_id_delta은 비트스트림의 SPS(Sequence Parameter Set) 혹은 PPS(Picture Parameter Set)를 통해 시그널링 된다.
[수학식 4]
Figure 112021003212274-pat00004
[수학식 5]
Figure 112021003212274-pat00005
표 1은 변환 블록의 크기에 따른 SizeID 값을 나타내는 일예이다.
[표 1]
Figure 112021003212274-pat00006
다음으로, 스케일된 변환 계수 dij는 다음 수학식 6으로부터 유도된다.
[수학식 6]
Figure 112021003212274-pat00007
한편, 상술한 바와 같이 변환 스킵 알고리즘이 적용된 블록(이하, 변환 스킵 블록이라 함)은 주파수 변환 과정을 수행하지 않는다. 따라서, 기존의 주파수 변환 과정을 수행한 블록과 변환 스킵 블록은 서로 다른 변환 계수 특성을 가질 수 있다. 즉, 기존의 주파수 변환 과정을 수행한 블록에 적용하였던 스케일링 방법을 그대로 변환 스킵 블록에 적용할 경우 부호화 효율을 감소시킬 수 있다.
따라서, 본 발명에서는 변환 스킵 블록일 경우를 고려하여 스케일링을 수행하는 방법을 제공한다.
부호화기와 복호화기에서 영상의 주관적 화질을 향상시키기 위해서 양자화 행렬(기본 행렬 및 비기본 행렬)을 사용하는 경우, 블록 내 변환 계수(transform coefficient)의 위치에 따라 양자화 행렬로부터 유도된 스케일 팩터(scale factor)가 달리 적용될 수 있다. 이러한 방법은 블록의 변환(transform)시 잔여 블록의 에너지가 블록의 좌측 상단 위치(저주파수 영역)로 압축되는 특성을 이용해서 일반적으로 인간의 눈에 민감한 저주파수 영역보다는 인간의 눈에 덜 민감한 고주파수 영역에 대해서 더 큰 양자화 스텝 크기(step size)로 양자화를 수행한다. 이러한 방법을 통해서 영상 부호화 시 인간의 눈에 민감한 영역에 대해 주관적 화질을 향상시킬 수 있다.
하지만, 변환 스킵이 적용된 경우, 잔여 블록은 주파수 영역 변환/역변환을 수행하지 않으므로 블록 내에서 저주파수 영역 쪽으로 압축되지 않는다. 이러한 경우 기존의 주파수 영역에 사용하는 양자화/역양자화 방법을 적용하게 되면 영상 혹은 블록 내의 왜곡이 심해지는 단점이 있다. 따라서, 영상 내에서 양자화 행렬을 사용할 경우 주파수 영역 변환/역변환을 수행하지 않는 블록(변환 스킵 블록)에 대해서는 영상 혹은 블록 내의 왜곡을 최소화할 수 있는 스케일링(양자화/역양자화) 방법이 필요하다. 예컨대, 변환 스킵 블록에 대해서는 양자화 행렬이 적용되지 않게 하는 방법이 있다. 이러한 방법은 블록 내 변환 계수의 위치에 상관없이 기본 스케일 팩터를 동일하게 적용할 수 있다.
[실시예1] 변환 스킵 블록에 대하여 블록 내 변환 계수의 위치에 상관없이 스케일 팩터를 동일하게 적용하는 방법 및 장치
도 6은 본 발명의 일 실시예에 따른 잔여 신호(혹은 변환 계수)에 대한 스케일링 방법을 나타내는 순서도이다.
도 6의 방법은 상술한 도 1의 부호화 장치 또는 상술한 도 2의 복호화 장치에서 수행될 수 있다. 보다 구체적으로는, 도 1 또는 도 2의 양자화부 혹은 역양자화부에서 수행될 수 있다. 도 6의 실시예에서는 설명의 편의를 위해 도 6의 방법이 부호화 장치에서 수행되는 것으로 설명하나, 이는 복호화 장치에서도 동일하게 적용될 수 있다.
도 6을 참조하면, 현재 블록의 잔여 신호(혹은 변환 계수)에 대한 스케일링(양자화 혹은 역양자화)시 적용되는 스케일 팩터(mij)는 현재 블록이 변환 스킵 블록인지에 따라 유도될 수 있다.
부호화 장치는 현재 블록이 변환 스킵 블록인지 여부를 판단한다(S600).
이때, 현재 블록이 변환 스킵 블록인지 여부는, 변환 스킵 블록인지 여부를 지시하는 정보를 통해 판단될 수 있다. 예를 들어, 변환 스킵 블록인지 여부를 지시하는 정보는 플래그(transSkipFlag)일 수 있다. 이러한 플래그 transSkipFlag 값은 비트스트림 내의 변환 스킵 블록에 관한 정보를 엔트로피 복호화해서 유도될 수 있다. 만일 현재 블록이 변환 스킵 블록이면 transSkipFlag 값이 1이고, 그렇지 않으면 transSkipFlag 값이 0일 수 있다.
만일 현재 블록이 변환 스킵 블록일 경우(예컨대, transSkipFlag 값이 1인 경우), 부호화 장치는 현재 블록 내 잔여 신호(혹은 변환 계수)의 위치에 상관없이 스케일 팩터(mij)를 유도한다(S610).
이때, 도 6에 도시된 바와 같이, 스케일 팩터(mij)는 소정의 기본 스케일 팩터 값(T)으로 설정될 수 있다. 예를 들어, 소정의 기본 스케일 팩터 값(T)은 16일 수 있다.
그렇지 않고 현재 블록이 변환 스킵 블록이 아닌 경우(예컨대, transSkipFlag 값이 0인 경우), 부호화 장치는 현재 블록 내 잔여 신호(혹은 변환 계수)의 위치를 기반으로 스케일 팩터(mij)를 유도한다(S620).
이때, 스케일 팩터(mij)는 양자화 행렬을 이용해서 현재 블록 내 잔여 신호(혹은 변환 계수)의 위치에 따라 다르게 설정될 수 있으며, 도 6에 도시된 바와 같이 다음 수학식 7과 같이 유도될 수 있다.
[수학식 7]
Figure 112021003212274-pat00008
여기서, ScalingFactor는 스케일 팩터를 저장하고 있는 배열이다. SizeID는 현재 블록(변환 블록 혹은 양자화 행렬)의 크기를 나타내기 위한 값일 수 있으며, 상술한 표 1과 같이 현재 블록(변환 블록)의 크기에 따라 SizeID 값이 유도될 수 있다. RefMatrixID와 trafoType는 아래 수학식 8과 수학식 9로부터 각각 유도될 수 있다. nW는 현재 블록의 너비를 의미한다.
[수학식 8]
Figure 112021003212274-pat00009
여기서, MatrixID 값은 예측 모드 및 색 성분(color component)에 따른 양자화 행렬의 종류를 의미할 수 있으며, 일예로 아래 표 2와 같이 MatrixID 값이 유도될 수 있다. scaling_list_pred_matrix_id_delta는 비트스트림의 SPS(Sequence Parameter Set) 혹은 PPS(Picture Parameter Set)를 통해 시그널링 된다.
[수학식 9]
Figure 112021003212274-pat00010
여기서, nW는 현재 블록의 너비를 의미하고, nH는 현재 블록의 높이를 의미한다.
표 2는 예측 모드 및 색 성분에 따른 MatrixID 값을 나타낸다.
[표 2]
Figure 112021003212274-pat00011
도 7은 본 발명의 다른 실시예에 따른 잔여 신호(혹은 변환 계수)에 대한 스케일링 방법을 나타내는 순서도이다.
도 7의 방법은 상술한 도 1의 부호화 장치 또는 상술한 도 2의 복호화 장치에서 수행될 수 있다. 보다 구체적으로는, 도 1 또는 도 2의 양자화부 혹은 역양자화부에서 수행될 수 있다. 도 7의 실시예에서는 설명의 편의를 위해 도 7의 방법이 부호화 장치에서 수행되는 것으로 설명하나, 이는 복호화 장치에서도 동일하게 적용될 수 있다.
도 7을 참조하면, 현재 블록의 잔여 신호(혹은 변환 계수)에 대한 스케일링(양자화 혹은 역양자화)시 적용되는 스케일 팩터(mij)는 현재 블록이 변환 스킵 블록인지 여부와 양자화 행렬의 사용 여부에 따라 유도될 수 있다.
부호화 장치는 현재 블록이 양자화 행렬을 사용하는지 여부와 변환 스킵 블록인지 여부를 판단한다(S700).
이때, 현재 블록이 양자화 행렬을 사용하는지 여부는, 양자화 행렬의 사용 여부를 지시하는 정보를 통해 판단할 수 있다. 예를 들어, 양자화 행렬의 사용 여부를 지시하는 정보는 플래그(scaling_list_enable_flag)일 수 있다. 이러한 플래그 scaling_list_enable_flag 값은 비트스트림 내의 양자화 행렬의 사용에 관한 정보를 엔트로피 복호화해서 유도될 수 있다. 만일 현재 블록이 양자화 행렬을 사용할 경우 scaling_list_enable_flag 값은 1이고, 그렇지 않은 경우 scaling_list_enable_flag 값은 0이다.
또한, 현재 블록이 변환 스킵 블록인지 여부는, 변환 스킵 블록인지 여부를 지시하는 정보를 통해 판단될 수 있다. 예를 들어, 변환 스킵 블록인지 여부를 지시하는 정보는 플래그(transSkipFlag)일 수 있다. 이러한 플래그 transSkipFlag 값은 비트스트림 내의 변환 스킵 블록에 관한 정보를 엔트로피 복호화해서 유도될 수 있다. 만일 현재 블록이 변환 스킵 블록이면 transSkipFlag 값이 1이고, 그렇지 않으면 transSkipFlag 값이 0일 수 있다.
만일 현재 블록이 변환 스킵 블록이거나 혹은 양자화 행렬을 사용하지 않을 경우(예컨대, transSkipFlag == 1 or scaling_list_enable_flag == 0), 부호화 장치는 현재 블록 내 잔여 신호(혹은 변환 계수)의 위치에 상관없이 스케일 팩터(mij)를 유도한다(S710).
이때, 도 7에 도시된 바와 같이, 스케일 팩터(mij)는 소정의 기본 스케일 팩터 값(T)으로 설정될 수 있다. 예를 들어, 소정의 기본 스케일 팩터 값(T)은 16일 수 있다.
그렇지 않다면(현재 블록이 변환 스킵 블록이 아니면서 양자화 행렬을 사용할 경우), 부호화 장치는 현재 블록 내 잔여 신호(혹은 변환 계수)의 위치를 기반으로 스케일 팩터(mij)를 유도한다(S720).
이때, 스케일 팩터(mij)는 양자화 행렬을 이용해서 현재 블록 내 잔여 신호(혹은 변환 계수)의 위치에 따라 다르게 설정될 수 있으며, 도 7의 단계 S720에 도시된 수학식과 같이 유도될 수 있다. 단계 S720에 도시된 수학식을 통해 유도되는 스케일 팩터(mij)는 도 6(단계 S620)에서 설명한 바와 같으므로, 여기서는 설명을 생략한다.
도 6 및 도 7을 통해 상술한 바와 같이, 현재 블록(현재 부호화 혹은 복호화 대상 블록)이 변환 스킵 블록일 경우, 현재 블록 내 계수(혹은 신호)의 위치에 상관없이 현재 블록(변환 스킵 블록)에 대해 소정의 값(T)을 갖는 스케일 팩터를 적용하였다. 이때, 본 발명의 실시예에 따른 스케일 팩터 값은 해당 블록에 적용되는 다양한 부호화 파라미터에 따라 다르게 설정될 수 있다.
일예로, 해당 블록에 적용될 스케일 팩터 값은 양자화 행렬의 사용 여부를 나타내는 파라미터(예를 들어, scaling_list_enable_flag) 값에 따라 아래와 같이 설정될 수 있다.
- 양자화 행렬을 사용하는 경우(예컨대, scaling_list_enable_flag == 1), 기본 스케일 팩터 값은 'T1'으로 설정(mij = T1)
- 양자화 행렬을 사용하지 않는 경우(예컨대, scaling_list_enable_flag == 0), 기본 스케일 팩터 값은 'T2'으로 설정(mij = T2)
여기서, T1 및/또는 T2 값은 부호화기가 결정하여 시그널링할 수도 있고 미리 정해진 값을 사용할 수도 있다. 비트스트림을 통해 시그널링 될 경우, 복호화기는 비트스트림을 파싱하여 T1 및/또는 T2 값을 구할 수 있다.
다른 예로, 해당 블록에 적용될 스케일 팩터 값은 해당 블록의 신호에 대한 색상 특성을 유도할 수 있는 정보(예를 들어, 색상 성분 인덱스 cIdx) 값에 따라 아래와 같이 설정될 수 있다. 색상 성분 인덱스 cIdx는 그 값에 따라 휘도 신호(Y 신호) 혹은 색차 신호(Cb 신호 혹은 Cr 신호)를 나타낸다.
- 예1 : 해당 블록의 신호가 밝기 신호(휘도 신호)인지 아닌지에 따라 기본 스케일 팩터 값을 ‘Ty’ 혹은 ‘Tc’로 설정. 예를 들어, 밝기 신호이면 기본 스케일 팩터 값을 ‘Ty’로 설정하고, 밝기 신호가 아니면(색차 신호이면) 기본 스케일 팩터 값을 ‘Tc’로 설정함.
- 예2 : 해당 블록의 색상 성분 별로 기본 스케일 팩터 값을 설정. 예를 들어, 휘도 신호(Y 신호)의 경우 기본 스케일 팩터 값을 ‘Ty’로 설정하고, 색차 신호가 Cb 신호일 경우 기본 스케일 팩터 값을 ‘Tcb’로 설정하고, 색차 신호가 Cr 신호일 경우 기본 스케일 팩터 값을 ‘Tcr’로 설정함.
여기서, Ty, Tc, Tcb 및/또는 Tcr 값은 부호화기가 결정하여 시그널링할 수도 있고 미리 정해진 값을 사용할 수도 있다. 비트스트림을 통해 시그널링 될 경우, 복호화기는 비트스트림을 파싱하여 Ty, Tc, Tcb 및/또는 Tcr 값을 구할 수 있다.
상술한 본 발명의 실시예에 따른 부호화 파라미터에 따라 기본 스케일 팩터를 결정하는 방법들은 독립적으로 적용될 수도 있고 조합되어 적용될 수도 있으나, 동일한 변환 스킵 블록에 대하여는 블록(부호화 또는 복호화 대상 블록) 내 계수(혹은 신호)의 위치에 상관없이 항상 동일한 스케일 팩터 값이 적용되어야 한다.
상술한 본 발명의 실시예들을 반영한 변환 계수의 스케일링 과정(Scaling Process for transform coefficients)은 아래와 같이 수행될 수 있다.
변환 계수의 스케일링 과정
여기서의 입력은 다음과 같다.
- 현재 변환 블록의 너비 Width; nW
- 현재 변환 블록의 높이 Height; nH
- 요소(element) cij를 가진 변환 계수의 배열; (nWxnH) array d
- 현재 변환 블록의 변환 스킵 적용 여부 정보
- 현재 블록의 휘도 신호 및 색차 신호에 대한 인덱스; cIdx
만일 cIdx 가 ‘0’ 이면 휘도 신호를 의미하고, cIdx가 ‘1’ 이거나 혹은 cIdx가 ‘2’이면 색차 신호를 의미한다. 또한 cIdx 가 ‘1’이면 색차 신호에서 Cb를 의미하고, cIdx 가 ‘2’이면 색차 신호에서 Cr을 의미한다.
- 양자화 파라미터; qP
여기서의 출력은 다음과 같다.
- 스케일된 변환 계수에 대한 배열; (nWxnH) array dij
변수 log2TrSize 는 log2TrSize = ( Log2( nW ) + Log2( nH ) ) >> 1 를 통해 유도된다. 변수 shift는 cIdx에 따라 다르게 유도된다. cIx가 ‘0’과 같다면(휘도 신호라면), shift = BitDepthY + log2TrSize - 5 로부터 유도되며, 그렇지 않다면(색차 신호), shift = BitDepthC + log2TrSize - 5 로부터 유도된다. 여기서 BitDepthY 와 BitDepthC 는 현재 영상에 대한 샘플의 비트수(예를 들어, 8 비트)를 의미한다.
스케일링 변수들의 배열 levelScale[]은 다음 수학식 10과 같다.
[수학식 10]
Figure 112021003212274-pat00012
스케일된 변환 계수는 다음의 과정을 통해 계산된다.
먼저, 스케일 팩터 mij가 다음 과정을 통해 유도된다.
- 만일 scaling_list_enable_flag 가 '0'이거나 현재 변환 블록이 변환 스킵 블록이라면, mij는 다음 수학식 11과 같이 유도된다.
[수학식 11]
Figure 112021003212274-pat00013
- 그렇지 않다면, mij는 다음 수학식 12와 같이 유도된다.
[수학식 12]
Figure 112021003212274-pat00014
여기서, SizeID는 블록의 크기에 따라 상술한 표 1을 통해 유도되며, RefMatrixID 그리고 trafoType는 아래 수학식 13과 수학식 14로부터 각각 유도된다. 또한, 수학식 13에서 scaling_list_pred_matrix_id_delta은 비트스트림의 SPS(Sequence Parameter Set)를 통해 시그널링 된다.
[수학식 13]
Figure 112021003212274-pat00015
[수학식 14]
Figure 112021003212274-pat00016
다음으로 스케일된 변환 계수 dij는 다음 수학식 15로부터 유도된다.
[수학식 15]
Figure 112021003212274-pat00017
한편, 상기와 같이 스케일링 과정을 통해 스케일된 변환 계수는 역변환 과정을 수행한다. 이때, 변환 스킵이 적용된 현재 변환 블록은 역변환 과정을 수행하지 않고 아래와 같은 ‘shift’ 연산 과정만 수행한다.
1. 만일 현재 블록의 cIdx가 ‘0’이라면(휘도 신호라면) shift = 13 - BitDepthY 이고, 그렇지 않다면(색차 신호라면) shift = 13 - BitDepthC 이다.
2. 잔여 블록에 대한 배열 rij (i=0..(nW)-1, j=0..(nH)-1)는 다음과 같이 설정한다.
만일 shift가 ‘0’보다 크다면, rij = ( dij + (1 << ( shift - 1) ) ) >> shift 이고, 그렇지 않다면 rij = ( dij << ( -shift ) 이다.
여기서, dij 는 스케일된 변환 계수에 대한 배열이며, rij 는 스케일된 변환 계수를 역변환하여 구해진 잔여 블록에 대한 배열을 의미한다.
상술한 스케일된 변환 계수의 역변환 과정을 반영한 실시예로, 스케일된 변환 계수를 위한 변환 과정(Transformation process for scaled transform coefficients) 부분은 아래와 같이 수행될 수 있다.
스케일된 변환 계수를 위한 변환 과정
여기서의 입력은 다음과 같다.
- 현재 변환 블록의 너비 Width; nW
- 현재 변환 블록의 높이 Height; nH
- 요소(element) dij를 가진 스케일된 변환 계수의 배열; (nWxnH) array d
- 현재 블록에 대한 변환 스킵 적용 여부 정보
- 현재 블록의 휘도 신호 및 색차 신호에 대한 인덱스; cIdx
만일 cIdx 가 ‘0’ 이면 휘도 신호를 의미하고, cIdx가 ‘1’ 이거나 혹은 cIdx가 ‘2’이면 색차 신호를 의미한다. 또한 cIdx 가 ‘1’이면 색차 신호에서 Cb를 의미하고, cIdx 가 ‘2’이면 색차 신호에서 Cr을 의미한다.
여기서의 출력은 다음과 같다.
- 스케일된 변환 계수를 역변환하여 구해진 잔여 블록에 대한 배열; (nWxnH) array r
현재 블록에 대한 부호화 모드(PredMode)가 화면 내 예측 모드(Intra)이고, Log2(nW*nH) 값이 ‘4’와 같고 cIdx 값이 ‘0’이면, 휘도 신호의 화면 내 예측 방향 모드(인트라 예측 모드)에 따라 변수 horizTrType과 vertTrType은 아래 표 3를 통해 구해진다. 만일 그렇지 않다면, 변수 horizTrType과 vertTrType은 ‘0’으로 설정한다.
표 3은 인트라 예측 모드에 따른 horizTrType과 vertTrType 값의 일예를 나타낸다.
[표 3]
Figure 112021003212274-pat00018
현재 블록에 대한 잔여 신호는 아래와 같은 순서로 구한다.
먼저, 만일 현재 블록에 대한 변환 스킵이 적용되었을 경우에는 다음을 적용한다.
1. 만일 cIdx가 '0'이라면 shift = 13 - BitDepthY 이고, 그렇지 않다면 shift = 13 - BitDepthC 이다.
2. 잔여 블록에 대한 배열 rij (i=0..(nW)-1, j=0..(nH)-1)는 다음과 같이 설정한다.
- 만일 shift가 '0'보다 크다면, rij = ( dij + (1 << ( shift - 1) ) ) >> shift 이고, 그렇지 않다면, rij = ( dij << ( -shift ) 이다.
만일, 현재 블록에 대한 변환 스킵이 적용되지 않았을 경우에는 다음을 적용한다.
1. 변수 horizTrType과 vertTrType 값을 가지고 스케일된 변환 계수에 대한 역변환 과정을 수행한다. 먼저 현재블록의 크기(nW, nH)와 스케일된 변환 계수 배열(nWxnH array d), 변수 horizTrType 을 입력 받아 수평방향으로 1차원 역변환을 수행하여 배열(nWxnH array e)를 출력한다.
2. 다음으로 배열(nWxnH array e)을 입력 받아 배열(nWxnH array g)를 다음수학식 16과 같이 유도한다.
[수학식 16]
Figure 112021003212274-pat00019
3. 다음으로 현재 블록의 크기(nW, nH)와 배열(nWxnH array g), 변수 vertTrType을 입력 받아 수직방향으로 1차원 역변환을 수행한다.
4. 다음으로 cIdx에 따라 잔여 블록에 대한 배열 (nWxnH) array r을 다음 수학식 17과 같이 설정한다.
[수학식 17]
Figure 112021003212274-pat00020
여기서, shift는 cIdx가 '0'일 때는 shift = 20 - BitDepthY 이고, 그렇지 않으면 shift = 20 - BitDepthC 값을 가진다. BitDepth는 현재 영상에 대한 샘플의 비트수(예를 들어, 8 비트)를 의미한다.
상술한 바와 같은 변환 계수의 스케일링 과정과 스케일된 변환 계수를 위한 변환 과정을 수행함으로써 복원된 잔여 블록을 생성할 수 있다. 그리고 복원된 잔여 블록에, 인트라 예측 혹은 인터 예측을 통해 생성된 예측 블록을 가산함으로써 복원 블록을 생성할 수 있다. 이때, 복원 블록은 루프 필터가 적용된 블록일 수도 있고, 루프 필터가 적용되지 않은 블록일 수도 있다.
이하, 본 발명에서는 변환 스킵 블록인지 여부에 따라 유도되는 기본 스케일 팩터를 시그널링하는 방법을 제공한다.
본 발명의 일 실시예에 따르면, 변환 스킵 블록인지 여부에 따라 유도되는 기본 스케일 팩터는 SPS(Sequence Parameter Set)를 통해 시그널링될 수 있다.
표 4는 본 발명의 일 실시예에 따른 기본 스케일 팩터 정보를 시그널링하기 위한 SPS 신택스의 일예를 나타낸다.
[표 4]
Figure 112021003212274-pat00021
표 4를 참조하면, transform_skip_enabled_flag는 현재 시퀀스에 변환 스킵 알고리즘을 사용할지 여부를 나타낸다.
만일 변환 스킵 알고리즘이 사용될 경우, flat_scale_factor_y_minus16, flat_scale_factor_cb_minus16, flat_scale_factor_cr_minus16이 시그널링된다. 여기서 이 값들은 양수 혹은 음수 부호를 가지는 형태로 부호화(se(v))될 수 있다. 혹은 이 값들은 0과 양수 부호를 가지는 형태로 부호화(ue(v))될 수 있다.
flat_scale_factor_y_minus16은 휘도 신호에 대한 스케일 팩터를 의미한다. 예를 들어, flat_scale_factor_y_minus16 값이 ‘0’이면 휘도 신호에 대한 스케일 팩터는 상기 ‘0’ 에 ‘16’이 더해져서 ‘16’ 값을 가진다.
flat_scale_factor_cb_minus16은 색차 신호 Cb에 대한 스케일 팩터를 의미하고, flat_scale_factor_cr_minus16은 색차 신호 Cr에 대한 스케일 팩터를 의미한다.
이와 관련하여, 휘도 신호 혹은 색차 신호에 대한 스케일 팩터는 다음 수학식 18 내지 20과 같이 유도될 수 있다.
여기서, 기본 스케일 팩터 FlatScalingFactor[cIdx]는 휘도 신호와 색차 신호에 대한 스케일 팩터를 저장하고 있다. 예를 들어, 색상 성분 인덱스 cIdx가 0이면 휘도(Y) 신호, 1이면 Cb 색차 신호, 2이면 Cr 색차 신호를 지시할 수 있다. 또한 FlatScalingFactor[cIdx] 값은 임의의 값의 범위를 가질 수 있으며, 일예로 8비트 신호의 경우 ‘-15’부터 ‘255-16’의 값을 가질 수 있다.
휘도 신호에 대한 기본 스케일 팩터는 수학식 18과 같이 유도될 수 있다.
[수학식 18]
Figure 112021003212274-pat00022
Cb 색차 신호에 대한 기본 스케일 팩터는 수학식 19와 같이 유도될 수 있다.
[수학식 19]
Figure 112021003212274-pat00023
Cr 색차 신호에 대한 기본 스케일 팩터는 수학식 20과 같이 유도될 수 있다.
[수학식 20]
Figure 112021003212274-pat00024
상술한 본 발명의 일 실시예에 따른 변환 스킵 블록인지 여부에 따라 유도되는 기본 스케일 팩터를 시그널링하는 방법을 반영하여, 변환 계수의 스케일링 과정(Scaling Process for transform coefficients)을 아래와 같이 수행할 수 있다.
변환 계수의 스케일링 과정
여기서의 입력은 다음과 같다.
- 현재 변환 블록의 너비 Width; nW
- 현재 변환 블록의 높이 Height; nH
- 요소(element) cij를 가진 변환 계수의 배열; (nWxnH) array d
- 현재 변환 블록의 변환 스킵 적용 여부 정보; transSkipFlag
transSkipFlag 값이 1이면 현재 블록에 변환 스킵이 적용되었음을 나타내고, transSkipFlag 값이 0이면 현재 블록에 변환 스킵이 적용되지 않았음을 나타낸다.
- 현재 블록의 휘도 신호 및 색차 신호에 대한 인덱스; cIdx
만일 cIdx가 ‘0’이면 휘도 신호를 의미하고, cIdx가 ‘1’이거나 혹은 cIdx가 ‘2’이면 색차 신호를 의미한다. 또한 cIdx가 ‘1’이면 색차 신호에서 Cb를 의미하고, cIdx가 ‘2’이면 색차 신호에서 Cr을 의미한다.
- 양자화 파라미터; qP
여기서의 출력은 다음과 같다.
- 스케일된 변환 계수에 대한 배열; (nWxnH) array dij
변수 log2TrSize 는 log2TrSize = ( Log2( nW ) + Log2( nH ) ) >> 1 를 통해 유도된다. 변수 shift는 cIdx에 따라 다르게 유도된다. cIx가 ‘0’과 같다면(휘도 신호라면), shift = BitDepthY + log2TrSize - 5 로부터 유도되며, 그렇지 않다면(색차 신호), shift = BitDepthC + log2TrSize - 5 로부터 유도된다. 여기서 BitDepthY 와 BitDepthC 는 현재 영상에 대한 샘플의 비트수(예를 들어, 8 비트)를 의미한다.
스케일링 변수들의 배열 levelScale[]은 다음 수학식 21과 같다.
[수학식 21]
Figure 112021003212274-pat00025
스케일된 변환 계수는 다음의 과정을 통해 계산된다.
먼저, 스케일 팩터 mij가 다음 과정을 통해 유도된다.
- 만일 scaling_list_enable_flag 가 '0'이라면, mij는 다음 수학식 22와 같이 유도된다.
[수학식 22]
Figure 112021003212274-pat00026
- 그렇지 않다면(즉, scaling_list_enable_flag 가 '1'이라면, mij는 다음 수학식 23과 같이 유도된다.
[수학식 23]
Figure 112021003212274-pat00027
여기서, SizeID는 블록의 크기에 따라 상술한 표 1을 통해 유도되며, RefMatrixID 그리고 trafoType는 아래 수학식 24와 수학식 25로부터 각각 유도된다. 수학식 24에서 scaling_list_pred_matrix_id_delta은 비트스트림의 SPS(Sequence Parameter Set)를 통해 시그널링 된다.
[수학식 24]
Figure 112021003212274-pat00028
[수학식 25]
Figure 112021003212274-pat00029
다음으로 스케일된 변환 계수 dij는 다음 수학식 26으로부터 유도된다.
[수학식 26]
Figure 112021003212274-pat00030
한편, 본 발명의 실시예에 따른 변환 스킵 블록인지 여부에 따라 유도되는 기본 스케일 팩터는 상술한 SPS뿐만 아니라 PPS(Picture Parameter Set) 혹은 슬라이스 헤더(SliceHeader)를 통해 시그널링될 수 있다. 또한 CU 단위 혹은 TU 단위로 시그널링될 수도 있다.
상술한 SPS에서 시그널링되는 flat_scale_factor_y_minus16, flat_scale_factor_cb_minus16, flat_scale_factor_cr_minus16 값은 PPS(혹은 SliceHeader, CU, TU)에서 갱신하여 사용할 수 있다.
표 5는 본 발명의 다른 실시예에 따른 기본 스케일 팩터 정보를 시그널링하기 위한 PPS 신택스의 일예를 나타낸다.
[표 5]
Figure 112021003212274-pat00031
표 5를 참조하면, transform_skip_enabled_flag는 현재 픽처에 변환 스킵 알고리즘을 사용할지 여부를 나타낸다. 만일 변환 스킵 알고리즘이 사용될 경우, pps_flat_scaling_factor_present_flag 값이 시그널링된다.
예를 들어, 만일 pps_flat_scaling_factor_present_flag 값이 ‘0’일 경우, 상술한 SPS에서 적용하였던 flat_scale_factor_y_minus16, flat_scale_factor_cb_minus16, flat_scale_factor_cr_minus16을 변환 스킵 블록을 위한 스케일 팩터로 사용한다. 그렇지 않고 만일 pps_flat_scaling_factor_present_flag 값이 ‘1’일 경우, 상술한 SPS에서 적용하였던 flat_scale_factor_y_minus16, flat_scale_factor_cb_minus16, flat_scale_factor_cr_minus16 값을 갱신하기 위하여 해당 값들이 시그널링 된다.
시그널링된 flat_scale_factor_y_minus16, flat_scale_factor_cb_minus16, flat_scale_factor_cr_minus16 값들은 현재 픽처의 변환 스킵 블록에 대한 스케일 팩터로 사용된다. 이때, 이 값들은 다시 변경되지 않을 때까지 계속 사용될 수 있다. 혹은 이 값들은 현재 픽처에만 적용하여 사용하고 다음 픽처에서는 SPS에서 사용하였던 스케일 팩터 값들을 적용할 수 있다.
여기서, flat_scale_factor_y_minus16, flat_scale_factor_cb_minus16, flat_scale_factor_cr_minus16은 양수 혹은 음수 부호를 가지는 형태로 부호화(se(v))될 수 있다. 혹은 이 값들은 0과 양수 부호를 가지는 형태로 부호화(ue(v))될 수 있다.
flat_scale_factor_y_minus16, flat_scale_factor_cb_minus16, flat_scale_factor_cr_minus16 값들은 휘도 신호 및 색차 신호마다 각각 다른 값을 가지고 각각 시그널링될 수 있다. 예컨대, flat_scale_factor_y_minus16 값은 휘도 신호에 대한 스케일 팩터, flat_scale_factor_cb_minus16 값은 Cb 색차 신호에 대한 스케일 팩터, flat_scale_factor_cr_minus16 값은 Cr 색차 신호에 대한 스케일 팩터를 시그널링하는데 사용될 수 있다. 혹은, 휘도 신호에 대한 스케일 팩터로 flat_scale_factor_y_minus16, 색차 신호에 대한 스케일 팩터로 flat_scale_factor_cb_cr_minus16을 이용하여 시그널링할 수도 있다. 혹은, 휘도 신호 및 색차 신호에 대한 스케일 팩터로 하나의 값 flat_scale_factor_y_cb_cr_minus16을 이용하여 시그널링할 수도 있다.
상술한 바와 같이, SPS 혹은 PPS에서 시그널링되는 flat_scale_factor_y_minus16, flat_scale_factor_cb_minus16, flat_scale_factor_cr_minus16 값은 SliceHeader(혹은 CU, TU)에서 갱신하여 사용할 수 있다.
표 6은 본 발명의 또 다른 실시예에 따른 기본 스케일 팩터 정보를 시그널링하기 위한 슬라이스 헤더(SliceHeader) 신택스의 일예를 나타낸다.
[표 6]
Figure 112021003212274-pat00032
표 6을 참조하면, transform_skip_enabled_flag는 현재 슬라이스에 변환 스킵 알고리즘을 사용할지 여부를 나타낸다. 만일 변환 스킵 알고리즘이 사용될 경우, flat_scaling_factor_override_flag 값이 시그널링된다.
예를 들어, 만일 flat_scaling_factor_override_flag 값이 ‘0’일 경우, 상술한 SPS 혹은 PPS에서 적용하였던 flat_scale_factor_y_minus16, flat_scale_factor_cb_minus16, flat_scale_factor_cr_minus16을 변환 스킵 블록을 위한 스케일 팩터로 사용한다. 그렇지 않고 만일 flat_scaling_factor_override_flag 값이 ‘1’일 경우, 상술한 SPS 혹은 PPS에서 적용하였던 flat_scale_factor_y_minus16, flat_scale_factor_cb_minus16, flat_scale_factor_cr_minus16 값을 갱신하기 위하여 해당 값들이 시그널링된다.
flat_scale_factor_y_delta, flat_scale_factor_cb_delta, flat_scale_factor_cr_delta 값들은 현재 슬라이스의 변환 스킵 블록에 대한 스케일 팩터로 사용된다.
여기서, flat_scale_factor_y_delta, flat_scale_factor_cb_delta, flat_scale_factor_cr_delta 값들은 양수 혹은 음수 부호를 가지는 형태로 부호화(se(v))될 수 있다. 혹은 이 값들은 0과 양수 부호를 가지는 형태로 부호화(ue(v))될 수 있다.
flat_scale_factor_y_delta, flat_scale_factor_cb_delta, flat_scale_factor_cr_delta 값들은 휘도 신호 및 색차 신호마다 각각 다른 값을 가지고 각각 시그널링될 수 있다. 예컨대, flat_scale_factor_y_delta 값은 휘도 신호에 대한 스케일 팩터, flat_scale_factor_cb_delta 값은 Cb 색차 신호에 대한 스케일 팩터, flat_scale_factor_cr_delta 값은 Cr 색차 신호에 대한 스케일 팩터를 시그널링하는데 사용될 수 있다. 혹은, 휘도 신호에 대한 스케일 팩터로 flat_scale_factor_y_delta, 색차 신호에 대한 스케일 팩터로 flat_scale_factor_cb_cr_delta를 이용하여 시그널링할 수도 있다. 혹은, 휘도 신호 및 색차 신호에 대한 스케일 팩터로 하나의 값 flat_scale_factor_y_cb_cr_delta을 이용하여 시그널링할 수도 있다.
상기와 같이 시그널링된 flat_scale_factor_y_delta, flat_scale_factor_cb_delta, flat_scale_factor_cr_delta 값들을 이용하여 아래 수학식 27 내지 29와 같이 기본 스케일 팩터를 유도할 수 있다.
여기서, 기본 스케일 팩터 FlatScalingFactor[cIdx]는 휘도 신호와 색차 신호에 대한 스케일 팩터를 저장하고 있다. 예를 들어, 색상 성분 인덱스 cIdx가 0이면 휘도(Y) 신호, 1이면 Cb 색차 신호, 2이면 Cr 색차 신호를 지시할 수 있다. 또한 FlatScalingFactor[cIdx] 값은 임의의 값의 범위를 가질 수 있으며, 일예로 8비트 신호의 경우 ‘-15’부터 ‘255-16’의 값을 가질 수 있다.
휘도 신호에 대한 기본 스케일 팩터는 flat_scale_factor_y_delta를 이용하여 수학식 27과 같이 유도될 수 있다.
[수학식 27]
Figure 112021003212274-pat00033
Cb 색차 신호에 대한 기본 스케일 팩터는 flat_scale_factor_cb_delta를 이용하여 수학식 28과 같이 유도될 수 있다.
[수학식 28]
Figure 112021003212274-pat00034
Cr 색차 신호에 대한 기본 스케일 팩터는 flat_scale_factor_cr_delta를 이용하여 수학식 29와 같이 유도될 수 있다.
[수학식 29]
Figure 112021003212274-pat00035
한편, 상술한 실시예들은 블록 크기 혹은 CU 깊이 혹은 TU 깊이 등에 따라 적용 범위를 달리할 수 있다. 이렇게 적용 범위를 결정하는 변수(예컨대, 블록의 크기 혹은 깊이 정보)는, 부호화기 및 복호화기가 미리 정해진 값을 사용하도록 설정할 수도 있고, 프로파일 또는 레벨에 따라 정해진 값을 사용하도록 할 수도 있고, 부호화기가 변수 값을 비트스트림에 기재하면 복호화기가 비트스트림으로부터 이 값을 구하여 사용할 수도 있다.
CU 깊이에 따라 적용 범위를 달리할 때는 표 7에 예시한 바와 같이, 다음 세가지 방법이 적용될 수 있다. 방법 A는 주어진 깊이 이상의 깊이에만 적용하는 방식, 방법 B는 주어진 깊이 이하에만 적용하는 방식, 방법 C는 주어진 깊이에만 적용하는 방식이다.
표 7은 CU(혹은 TU) 깊이에 따라 본 발명의 방법들을 적용하는 범위를 결정하는 방법의 일예를 나타낸 것이다. 표 7에서 ‘O’ 표기는 CU(혹은 TU)의 해당 깊이에 해당 방법을 적용하는 것을 의미하며, ‘X’ 표기는 CU(혹은 TU)의 해당 깊이에 해당 방법을 적용하지 않는 것을 의미한다.
[표 7]
Figure 112021003212274-pat00036
표 7을 참조하면, CU(혹은 TU) 깊이가 2인 경우, 본 발명의 실시예들에 대해 방법 A, 방법 B, 방법 C를 모두 적용할 수 있다.
CU(혹은 TU)의 모든 깊이에 대하여 본 발명의 실시예들을 적용하지 않는 경우, 임의의 지시자(예를 들어, flag)를 사용하여 나타낼 수도 있고, CU 깊이의 최대값보다 하나 더 큰 값을 적용 범위를 나타내는 CU 깊이 값으로 시그널링 함으로써 표현할 수도 있다.
또한, 상술한 CU(혹은 TU) 깊이에 따라 본 발명의 방법들을 적용하는 범위를 결정하는 방법은, 휘도 블록과 색차 블록의 크기에 따라 다르게 적용할 수 있으며, 또한 휘도 영상 및 색차 영상에 다르게 적용할 수 있다.
표 8은 휘도 블록 및 색차 블록의 크기에 따라 적용 범위를 결정하는 방법들의 조합을 개략적으로 나타낸 일예이다.
[표 8]
Figure 112021003212274-pat00037
표 8의 방법들 중 방법 “사 1”을 살펴보면, 휘도 블록의 크기가 8(8x8, 8x4, 2x8 등)인 경우이고 그리고 색차 블록의 크기가 4(4x4, 4x2, 2x4)인 경우, 본 발명의 실시예1(사 1 - 실시예1)을 휘도 신호 및 색차 신호 및 수평 신호 및 수직 신호에 적용할 수 있다.
상술한 실시예들에서, 방법들은 일련의 단계 또는 블록으로서 순서도를 기초로 설명되고 있으나, 본 발명은 단계들의 순서에 한정되는 것은 아니며, 어떤 단계는 상술한 바와 다른 단계와 다른 순서로 또는 동시에 발생할 수 있다. 또한, 당해 기술 분야에서 통상의 지식을 가진 자라면 순서도에 나타난 단계들이 배타적이지 않고, 다른 단계가 포함되거나, 순서도의 하나 또는 그 이상의 단계가 본 발명의 범위에 영향을 미치지 않고 삭제될 수 있음을 이해할 수 있을 것이다.
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시 예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시 예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호범위는 특허청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.

Claims (15)

  1. 영상 복호화 벙법에 있어서,
    현재 픽처에 대한 변환 스킵 적용이 가능한지 또는 가능하지 않은지를 지시하는 제 1 플래그를 획득하는 단계;
    상기 현재 픽처에 포함되는 현재 블록에 대한 변환 스킵이 적용되었는지 또는 적용되지 않았는지를 지시하는 제 2 플래그를 획득하는 단계;
    상기 제 1 플래그의 값 및 상기 제 2 플래그의 값에 기반하여, 상기 현재 블록에 대한 스케일 팩터를 도출하는 단계; 및
    상기 스케일 팩터를 기반으로 상기 현재 블록의 변환 계수에 대한 스케일링을 수행하는 단계를 포함하며,
    상기 현재 블록에 대한 스케일 팩터는,
    상기 제 1 플래그가 상기 현재 픽처에 대한 변환 스킵의 적용이 가능함을 지시하는 제 1 값을 지시하고, 상기 제 2 플래그가 상기 현재 블록에 대한 변환 스킵이 적용되지 않음을 지시하는 제 2 값을 지시하는 경우, 미리 정의된 양자화 행렬과 상기 현재 블록 내 변환 계수의 위치를 기반으로 도출되고,
    상기 제 1 플래그가 상기 현재 픽처에 대한 변환 스킵의 적용이 가능함을 지시하는 상기 제 1 값을 지시하고, 상기 제 2 플래그가, 상기 현재 블록에 대한 변환 스킵이 적용됨을 지시하는 상기 제 1 값을 지시하는 경우, 상기 현재 블록 내 변환 계수의 위치에 상관없이 고정된 상수값으로 도출되는 것을 특징으로 하는 영상 복호화 방법.
  2. 제1항에 있어서,
    상기 현재 블록에 대한 스케일 팩터는, 상기 현재 블록의 크기를 추가로 고려하여 도출되되,
    상기 현재 블록의 크기가 4x4보다 작거나 같은 경우, 상기 미리 정의된 양자화 행렬과 상기 현재 블록 내 변환 계수의 위치를 기반으로 상기 도출되고,
    상기 현재 블록의 크기가, 4x4보다 큰 경우, 상기 현재 블록 내 변환 계수의 위치에 상관없이 고정된 상수값으로 도출되는 것을 특징으로 하는 영상 복호화 방법,
  3. 제1항에 있어서,
    상기 고정된 상수값은 16인 것을 특징으로 하는 영상 복호화 방법.
  4. 제1항에 있어서,
    상기 스케일 팩터를 도출하는 단계는,
    상기 현재 블록이 휘도 블록인지 색차 블록인지에 종속적인 것을 특징으로 하는 영상 복호화 방법.
  5. 제1항에 있어서,
    상기 제 1 플래그는 PPS(Picture Parameter Set)를 통해 시그널링되는 것을 특징으로 하는, 영상 복호화 방법.
  6. 현재 픽처에 대한 변환 스킵의 적용이 가능한지 여부를 판단하는 단계;
    상기 현재 픽처에 포함되는 현재 블록에 대한 변환 스킵의 적용 여부를 판단하는 단계;
    현재 픽처에 대한 변환 스킵의 적용이 가능한지 여부 및 상기 현재 블록에 대한 변환 스킵의 적용 여부에 따라 상기 현재 블록에 대한 스케일 팩터를 결정하는 단계;
    상기 스케일 팩터를 기반으로 상기 현재 블록의 변환 계수에 대한 양자화를 수행하는 단계를 포함하며,
    상기 현재 블록에 대한 스케일 팩터는,
    상기 현재 픽처에 대한 변환 스킵의 적용이 가능하고, 상기 현재 블록에 대해 변환 스킵이 적용되지 않는 경우, 미리 정의된 양자화 행렬과 상기 현재 블록 내 변환 계수의 위치를 기반으로 결정되고,
    상기 현재 픽처에 대한 변환 스킵의 적용이 가능하고, 상기 현재 블록에 대해 변환 스킵이 적용되는 경우, 상기 현재 블록 내 변환 계수의 위치에 상관없이 고정된 상수값으로 결정되는 것을 특징으로 하는 것을 특징으로 하는 영상 부호화 방법.
  7. 제6항에 있어서,
    상기 현재 블록에 대한 스케일 팩터는, 상기 현재 블록의 크기를 추가로 고려하여 결정되되,
    상기 현재 블록의 크기가 4x4보다 작거나 같은 경우, 상기 미리 정의된 양자화 행렬과 상기 현재 블록 내 변환 계수의 위치를 기반으로 상기 결정되고,
    상기 현재 블록의 크기가, 4x4보다 큰 경우, 상기 현재 블록 내 변환 계수의 위치에 상관없이 고정된 상수값으로 결정되는 것을 특징으로 하는 영상 부호화 방법.
  8. 제6항에 있어서,
    상기 고정된 상수값은 16인 것을 특징으로 하는 영상 부호화 방법.
  9. 제6항에 있어서,
    상기 스케일 팩터를 도출하는 단계는,
    상기 현재 블록이 휘도 블록인지 색차 블록인지에 종속적인 것을 특징으로 하는 영상 부호화 방법.
  10. 제6항에 있어서,
    상기 현재 픽처에 대한 변환 스킵의 적용이 가능한지 또는 가능하지 않은지를 지시하는 제 1 플래그 및 상기 현재 블록에 대한 변환 스킵이 적용되었는지 또는 적용되지 않았는지를 지시하는 제 2 플래그 중 적어도 하나를 부호화하는 단계를 더 포함하되,
    상기 제 1 플래그는 PPS(Picture Parameter Set)에 부호화되는 것을 특징으로 하는 영상 부호화 방법.
  11. 영상 부호화 방법을 이용하여 생성된 비트스트림을 전송하는 방법에 있어서,
    상기 영상 부호화 방법은,
    현재 픽처에 대한 변환 스킵의 적용이 가능한지 여부를 판단하는 단계;
    상기 현재 픽처에 포함되는 현재 블록에 대한 변환 스킵의 적용 여부를 판단하는 단계;
    현재 픽처에 대한 변환 스킵의 적용이 가능한지 또는 가능하지 않은지 및 상기 현재 블록에 대한 변환 스킵이 적용되었는지 또는 적용되지 않았는지에 따라 상기 현재 블록에 대한 스케일 팩터를 결정하는 단계;
    상기 스케일 팩터를 기반으로 상기 현재 블록의 변환 계수에 대한 양자화를 수행하는 단계를 포함하며,
    상기 현재 블록에 대한 스케일 팩터는,
    상기 현재 픽처에 대한 변환 스킵의 적용이 가능하고, 상기 현재 블록에 대해 변환 스킵이 적용되지 않는 경우, 미리 정의된 양자화 행렬과 상기 현재 블록 내 변환 계수의 위치를 기반으로 결정되고,
    상기 현재 픽처에 대한 변환 스킵의 적용이 가능하고, 상기 현재 블록에 대해 변환 스킵이 적용되는 경우, 상기 현재 블록 내 변환 계수의 위치에 상관없이 고정된 상수값으로 결정되는 것을 특징으로 하는 비트스트림 전송 방법.
  12. 제11항에 있어서,
    상기 현재 블록에 대한 스케일 팩터는, 상기 현재 블록의 크기를 추가로 고려하여 결정되되,
    상기 현재 블록의 크기가 4x4보다 작거나 같은 경우, 상기 미리 정의된 양자화 행렬과 상기 현재 블록 내 변환 계수의 위치를 기반으로 상기 결정되고,
    상기 현재 블록의 크기가, 4x4보다 큰 경우, 상기 현재 블록 내 변환 계수의 위치에 상관없이 고정된 상수값으로 결정되는 것을 특징으로 하는 비트스트림 전송 방법.
  13. 제11항에 있어서,
    상기 고정된 상수값은 16인 것을 특징으로 하는 비트스트림 전송 방법.
  14. 제11항에 있어서,
    상기 스케일 팩터를 도출하는 단계는,
    상기 현재 블록이 휘도 블록인지 색차 블록인지에 종속적인 것을 특징으로 하는 비트스트림 전송 방법.
  15. 제11항에 있어서,
    상기 현재 픽처에 대한 변환 스킵의 적용이 가능한지 또는 가능하지 않은지를 지시하는 제 1 플래그 및 상기 현재 블록에 대한 변환 스킵이 적용되었는지 또는 적용되지 않았는지를 지시하는 제 2 플래그 중 적어도 하나를 부호화하는 단계를 더 포함하되,
    상기 제 1 플래그는 PPS(Picture Parameter Set)에 부호화되는 것을 특징으로 하는 비트스트림 전송 방법.
KR1020210003241A 2012-07-02 2021-01-11 영상 부호화/복호화 방법 및 장치 KR102480967B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020220179644A KR20230002236A (ko) 2012-07-02 2022-12-20 영상 부호화/복호화 방법 및 장치

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
KR1020120071938 2012-07-02
KR20120071938 2012-07-02
KR1020120073847 2012-07-06
KR20120073847 2012-07-06
KR1020120074814 2012-07-10
KR20120074814 2012-07-10
KR1020130077047A KR102399795B1 (ko) 2012-07-02 2013-07-02 영상 부호화/복호화 방법 및 장치

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020130077047A Division KR102399795B1 (ko) 2012-07-02 2013-07-02 영상 부호화/복호화 방법 및 장치

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020220179644A Division KR20230002236A (ko) 2012-07-02 2022-12-20 영상 부호화/복호화 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20210008886A KR20210008886A (ko) 2021-01-25
KR102480967B1 true KR102480967B1 (ko) 2022-12-23

Family

ID=50140791

Family Applications (5)

Application Number Title Priority Date Filing Date
KR1020130077047A KR102399795B1 (ko) 2012-07-02 2013-07-02 영상 부호화/복호화 방법 및 장치
KR1020210003241A KR102480967B1 (ko) 2012-07-02 2021-01-11 영상 부호화/복호화 방법 및 장치
KR1020220059344A KR102577480B1 (ko) 2012-07-02 2022-05-16 영상 부호화/복호화 방법 및 장치
KR1020220179644A KR20230002236A (ko) 2012-07-02 2022-12-20 영상 부호화/복호화 방법 및 장치
KR1020230118776A KR20230134107A (ko) 2012-07-02 2023-09-07 영상 부호화/복호화 방법 및 장치

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020130077047A KR102399795B1 (ko) 2012-07-02 2013-07-02 영상 부호화/복호화 방법 및 장치

Family Applications After (3)

Application Number Title Priority Date Filing Date
KR1020220059344A KR102577480B1 (ko) 2012-07-02 2022-05-16 영상 부호화/복호화 방법 및 장치
KR1020220179644A KR20230002236A (ko) 2012-07-02 2022-12-20 영상 부호화/복호화 방법 및 장치
KR1020230118776A KR20230134107A (ko) 2012-07-02 2023-09-07 영상 부호화/복호화 방법 및 장치

Country Status (1)

Country Link
KR (5) KR102399795B1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101642092B1 (ko) * 2014-10-06 2016-07-22 성균관대학교산학협력단 영상의 부호화/복호화 방법 및 이를 이용하는 장치
KR102138197B1 (ko) * 2014-12-08 2020-07-27 성균관대학교산학협력단 영상 압축을 위한 변환생략 여부를 지시하는 방법 및 장치
KR101707164B1 (ko) * 2016-03-11 2017-02-15 성균관대학교산학협력단 영상의 부호화/복호화 방법 및 이를 이용하는 장치

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
"Intra transform skipping"(Cuiling Lan, JCTCV-I0408, 2012.4.27.공개).*
B. Bross, "High efficiency video coding (HEVC) text specification draft 7", JCTVC-I1003, version 6, 2012.6.29.*

Also Published As

Publication number Publication date
KR20230002236A (ko) 2023-01-05
KR20220066242A (ko) 2022-05-24
KR20230134107A (ko) 2023-09-20
KR20140005098A (ko) 2014-01-14
KR102399795B1 (ko) 2022-05-23
KR102577480B1 (ko) 2023-09-12
KR20210008886A (ko) 2021-01-25

Similar Documents

Publication Publication Date Title
JP7266515B2 (ja) 映像符号化方法及び装置、並びに映像復号化方法及び装置
KR102292788B1 (ko) 비디오 코딩을 위한 다중-유형-트리 프레임워크
CN109547790B (zh) 用于在高效率视频编解码中处理分区模式的设备和方法
EP3568986A1 (en) Intra prediction techniques for video coding
EP2920971B1 (en) Devices and methods for processing of non-idr related syntax for high efficiency video coding (hevc)
KR102480967B1 (ko) 영상 부호화/복호화 방법 및 장치
KR20150048637A (ko) 색 성분 간 예측 방법 및 장치
KR20150093969A (ko) 영상의 고속 부호화를 위한 방법 및 이를 이용한 장치
KR20210113373A (ko) 비디오 코딩에서 비디오 블록들에 대한 양자화 파라미터들을 도출하기 위한 시스템들 및 방법들
KR20140120396A (ko) 영상의 고속 부호화를 위한 방법

Legal Events

Date Code Title Description
A107 Divisional application of patent
E902 Notification of reason for refusal
E601 Decision to refuse application
E601 Decision to refuse application
E801 Decision on dismissal of amendment
J201 Request for trial against refusal decision
J301 Trial decision

Free format text: TRIAL NUMBER: 2022101000325; TRIAL DECISION FOR APPEAL AGAINST DECISION TO DECLINE REFUSAL REQUESTED 20220216

Effective date: 20220929

GRNO Decision to grant (after opposition)
GRNT Written decision to grant