KR20190062284A - 인지 특성에 기반한 영상 처리 방법 및 장치 - Google Patents

인지 특성에 기반한 영상 처리 방법 및 장치 Download PDF

Info

Publication number
KR20190062284A
KR20190062284A KR1020180148685A KR20180148685A KR20190062284A KR 20190062284 A KR20190062284 A KR 20190062284A KR 1020180148685 A KR1020180148685 A KR 1020180148685A KR 20180148685 A KR20180148685 A KR 20180148685A KR 20190062284 A KR20190062284 A KR 20190062284A
Authority
KR
South Korea
Prior art keywords
image
block
unit
jnd
quantization
Prior art date
Application number
KR1020180148685A
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 KR20190062284A publication Critical patent/KR20190062284A/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • 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/136Incoming video signal characteristics or properties
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/89Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving methods or arrangements for detection of transmission errors at the decoder
    • H04N19/895Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving methods or arrangements for detection of transmission errors at the decoder in combination with error concealment

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Artificial Intelligence (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

영상의 부호화 및 복호화와 같은 영상 처리를 위한 방법 및 장치가 개시된다. 영상 처리 장치는 다중 레벨 JND 임계치들 및 다중 레벨 JND 구간들에 대한 모델링을 수행하고, 입력 영상 및 원본 영상 간의 차이 값을 도출한다. 영상 처리 장치는 도출된 차이 값을 입력 영상이 다중 레벨 JND 구간들 및 다중 레벨 JND 임계치들 중 어느 JND 구간 및 어느 JND 임계치에 해당하는지를 결정하고, 결정된 JND 임계치를 이용하여 입력 영상에 대한 양자화를 수행한다.

Description

인지 특성에 기반한 영상 처리 방법 및 장치{METHOD AND APPARATUS FOR IMAGE PROCESSING BASED ON PERCEPTUAL CHARACTERISTIC}
아래의 실시예들은 영상 처리 방법 및 장치에 관한 것으로서, 인지 특성에 기반한 영상 처리 방법 및 장치에 관한 것이다.
정보 통신 산업의 지속적인 발달을 통해 HD(High Definition) 해상도를 가지는 방송 서비스가 세계적으로 확산되었다. 이러한 확산을 통해, 많은 사용자들이 고해상도이며 고화질인 영상(image) 및/또는 비디오(video)에 익숙해지게 되었다.
높은 화질에 대한 사용자들의 수요를 만족시키기 위하여, 많은 기관들이 차세대 영상 기기에 대한 개발에 박차를 가하고 있다. 에이치디티브이(High Definition TV; HDTV) 및 풀에이치디(Full HD; FHD) TV뿐만 아니라, FHD TV에 비해 4배 이상의 해상도를 갖는 울트라에이치디(Ultra High Definition; UHD) TV에 대한 사용자들의 관심이 증대하였고, 이러한 관심의 증대에 따라, 더 높은 해상도 및 화질을 갖는 영상에 대한 영상 부호화(encoding)/복호화(decoding) 기술이 요구된다.
영상 부호화(encoding)/복호화(decoding) 장치 및 방법은 고해상도 및 고화질의 영상에 대한 부호화/복호화를 수행하기 위해, 인터(inter) 예측(prediction) 기술, 인트라(intra) 예측 기술, 변환(transform) 및 양자화(quantization) 기술 및 엔트로피 부호화 기술 등을 사용할 수 있다. 인터 예측 기술은 시간적으로(temporally) 이전의 픽처 및/또는 시간적으로 이후의 픽처를 이용하여 대상 픽처에 포함된 픽셀의 값을 예측하는 기술일 수 있다. 인트라 예측 기술은 대상 픽처 내의 픽셀의 정보를 이용하여 대상 픽처에 포함된 픽셀의 값을 예측하는 기술일 수 있다. 변환 및 양자화 기술은 잔차 신호의 에너지를 압축하기 위한 기술일 수 있다. 엔트로피 부호화 기술은 출현 빈도가 높은 심볼에는 짧은 코드(code)를 할당하고, 출현 빈도가 낮은 심볼에는 긴 코드를 할당하는 기술일 수 있다.
영상 부호화에 있어서, 최소한의 감지 가능한 차이(Just Noticeable Difference; JND) 또는 최소한의 감지 가능한 임계(Just Noticeable Threshold)의 개념이 사용된다.
JND는 사람이 어떤 변화 또는 자극을 인지하는 시점을 나타낼 수 있다. 일반적으로, JND는 50%의 사람들이 변화를 인지하는 시점을 의미할 수 있다.
영상 부호화에서 사용되는 JND에 있어서, 원본 영상 및 대상 영상 간의 인지(perceptual) 화질 차이 만을 고려하는 제1 JND 포지션만이 모델링되고, 사용된다. 따라서, 영상의 부호화에서 양자화 값이 제1 JND에서 정의한 임계치를 넘어가는 경우, JND를 이용한 영상 압축의 효과가 미미할 수 있다.
일 실시예는 인지 특성에 기반한 영상 처리를 위한 방법 및 장치를 제공할 수 있다.
일 실시예는 다중 레벨 JND 구간들 및 다중 레벨 JND 임계치들을 사용하여 영상의 양자화를 처리하는 방법 및 장치를 제공할 수 있다.
일 측에 있어서, 입력 영상 및 원본 영상 간의 차이 값을 도출하는 단계; 상기 차이 값을 상기 입력 영상이 다중 레벨 JND 구간들 및 다중 레벨 JND 임계치들 중 어느 JND 구간 및 어느 JND 임계치에 해당하는지를 결정하는 단계; 및 상기 결정된 JND 임계치를 이용하여 상기 입력 영상에 대한 양자화를 수행하는 단계를 포함하는, 영상 처리 방법이 제공된다.
이 외에도, 본 발명을 구현하기 위한 다른 방법, 장치, 시스템 및 상기 방법을 실행하기 위한 컴퓨터 프로그램을 기록하기 위한 컴퓨터 판독 가능한 기록 매체가 더 제공된다.
인지 특성에 기반한 영상 처리를 위한 방법 및 장치가 제공된다.
다중 레벨 JND 구간들 및 다중 레벨 JND 임계치들을 사용하여 영상의 양자화를 처리하는 방법 및 장치가 제공된다.
도 1은 본 발명이 적용되는 부호화 장치의 일 실시예에 따른 구성을 나타내는 블록도이다.
도 2는 본 발명이 적용되는 복호화 장치의 일 실시예에 따른 구성을 나타내는 블록도이다.
도 3은 일 실시예에 따른 부호화 장치의 구조도이다.
도 4는 일 실시예에 따른 복호화 장치의 구조도이다.
도 5은 일 예에 따른 JND 포지션 및 JND 구간을 설명한다.
도 6은 일 예에 따른 JND 임계치를 이용한 양자화를 나타낸다.
도 7은 일 예에 따른 주파수 영역에서의 JND 임계치를 나타낸다.
도 8은 일 실시예에 따른 영상 처리 방법의 흐름도이다.
도 9는 일 예에 따른 다중 레벨 JND 포지션들을 나타낸다.
도 10은 일 예에 따른 주파수 계수 위치에 따른 제1 JND 임계치를 나타낸다.
도 11은 일 예에 따른 주파수 계수 위치에 따른 제2 JND 임계치를 나타낸다.
도 12는 일 예에 따른 기계 학습 기반의 네트워크 학습 단계를 나타낸다.
도 13은 일 예에 따른 기계 학습 기반의 네트워크를 이용한 JND 구간의 파악을 나타낸다.
도 14는 일 예에 따른 입력 영상의 8x8 DCT 계수들을 나타낸다.
도 15는 일 예에 따른 입력 영상에 대한 인지 특성 분석을 나타낸다.
도 16은 인지 특성 분석에 따라 결정된 JND 임계치의 일 예를 도시한다.
도 17은 인지 특성 분석에 따른 JND 임계치의 다른 일 예를 도시한다.
도 18은 일 예에 따른 픽처의 블록들의 휘도 및 가중치를 도시한다.
도 19는 일 예에 따른 픽처의 블록들의 블록 타입 및 가중치를 도시한다.
도 20은 일 예에 따른 공간 영역에서의 영상의 계수들의 방향성을 나타낸다.
도 21은 일 예에 따른 공간 영역에서 계수의 수직 성분이 강하게 나타났을 경우, 주파수 영역에서의 계수들을 나타낸다.
도 22는 일 예에 따른 주파수 영역에서의 제1 JND 임계치를 예시한다.
도 23은 일 예에 따른 주파수 영역에서의 제2 JND 임계치를 예시한다.
도 24는 일 예에 JND 임계치를 이용하는 추가 양자화를 나타낸다.
도 25는 일 예에 따른 주파수 계수의 위치에 따른 양자화 값들을 도시한다.
도 26은 일 예에 따른 재구축된 영상의 8x8 DCT 계수들을 도시한다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
후술하는 예시적 실시예들에 대한 상세한 설명은, 특정 실시예를 예시로서 도시하는 첨부 도면을 참조한다. 이들 실시예는 당업자가 실시예를 실시할 수 있기에 충분하도록 상세히 설명된다. 다양한 실시예들은 서로 다르지만 상호 배타적일 필요는 없음이 이해되어야 한다. 예를 들면, 여기에 기재되어 있는 특정 형상, 구조 및 특성은 일 실시예에 관련하여 본 발명의 정신 및 범위를 벗어나지 않으면서 다른 실시예로 구현될 수 있다. 또한, 각각의 개시된 실시예 내의 개별 구성요소의 위치 또는 배치는 실시예의 정신 및 범위를 벗어나지 않으면서 변경될 수 있음이 이해되어야 한다. 따라서, 후술하는 상세한 설명은 한정적인 의미로서 취하려는 것이 아니며, 예시적 실시예들의 범위는, 적절하게 설명된다면, 그 청구항들이 주장하는 것과 균등한 모든 범위와 더불어 첨부된 청구항에 의해서만 한정된다.
도면에서 유사한 참조부호는 여러 측면에 걸쳐서 동일하거나 유사한 기능을 지칭한다. 도면에서의 요소들의 형상 및 크기 등은 보다 명확한 설명을 위해 과장될 수 있다.
본 발명에서 제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들면, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
어떤 구성요소(component)가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 상기의 2개의 구성요소들이 서로 간에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있으나, 상기의 2개의 구성요소들의 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 어떤 구성요소(component)가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 상기의 2개의 구성요소들의 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 발명의 실시예에 나타나는 구성요소들은 서로 다른 특징적인 기능들을 나타내기 위해 독립적으로 도시되는 것으로, 각 구성요소들이 분리된 하드웨어나 하나의 소프트웨어 구성단위로 이루어짐을 의미하지 않는다. 즉, 각 구성요소는 설명의 편의상 각각의 구성요소로 나열하여 포함한 것으로 각 구성요소 중 적어도 두 개의 구성요소가 합쳐져 하나의 구성요소로 이루어지거나, 하나의 구성요소가 복수 개의 구성요소로 나뉘어져 기능을 수행할 수 있고 이러한 각 구성요소의 통합된 실시예 및 분리된 실시예도 본 발명의 본질에서 벗어나지 않는 한 본 발명의 권리범위에 포함된다.
또한, 예시적 실시예들에서 특정 구성을 "포함"한다고 기술하는 내용은 상기의 특정 구성 이외의 구성을 배제하는 것이 아니며, 추가적인 구성이 예시적 실시예들의 실시 또는 예시적 실시예들의 기술적 사상의 범위에 포함될 수 있음을 의미한다.
본 발명에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 발명에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다. 즉, 본 발명에서 특정 구성을 "포함"한다고 기술하는 내용은 해당 구성 이외의 구성을 배제하는 것이 아니며, 추가적인 구성 또한 본 발명의 실시 또는 본 발명의 기술적 사상의 범위에 포함될 수 있음을 의미한다.
이하에서는, 기술분야에서 통상의 지식을 가진 자가 실시예들을 용이하게 실시할 수 있도록 하기 위하여, 첨부된 도면을 참조하여 실시 형태에 대하여 구체적으로 설명한다. 실시예들을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 명세서의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다. 또한, 도면 상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고, 동일한 구성요소에 대한 중복된 설명은 생략한다.
이하에서, 영상은 비디오(video)을 구성하는 하나의 픽처(picture)를 의미할 수 있으며, 비디오 자체를 나타낼 수도 있다. 예를 들면, "영상의 부호화 및/또는 복호화"는 "비디오의 부호화 및/또는 복호화"를 의미할 수 있으며, "비디오를 구성하는 영상들 중 하나의 영상의 부호화 및/또는 복호화"를 의미할 수도 있다.
이하에서, 용어들 "비디오(video)" 및 "동영상(motion picture)"은 동일한 의미로 사용될 수 있으며, 서로 교체되어 사용될 수 있다.
이하에서, 대상 영상은 부호화의 대상인 부호화 대상 영상 및/또는 복호화의 대상인 복호화 대상 영상일 수 있다. 또한, 대상 영상은 부호화 장치로 입력된 입력 영상일 수 있고, 복호화 장치로 입력된 입력 영상일 수 있다.
이하에서, 용어들 "영상", "픽처", "프레임(frame)" 및 "스크린(screen)"은 동일한 의미로 사용될 수 있으며, 서로 교체되어 사용될 수 있다.
이하에서, 대상 블록은 부호화의 대상인 부호화 대상 블록 및/또는 복호화의 대상인 복호화 대상 블록일 수 있다. 또한, 대상 블록은 현재 부호화 및/또는 복호화의 대상인 현재 블록일 수 있다. 예를 들면, 용어들 "대상 블록" 및 "현재 블록"은 동일한 의미로 사용될 수 있으며, 서로 교체되어 사용될 수 있다.
이하에서, 용어들 "블록" 및 "유닛"은 동일한 의미로 사용될 수 있으며, 서로 교체되어 사용될 수 있다. 또는 "블록"은 특정한 유닛을 나타낼 수 있다.
이하에서, 용어들 "영역(region)" 및 "세그먼트(segment)"는 서로 교체되어 사용될 수 있다.
이하에서, 특정한 신호는 특정한 블록을 나타내는 신호일 수 있다. 예를 들면, 원(original) 신호는 대상 블록을 나타내는 신호일 수 있다. 예측(prediction) 신호는 예측 블록을 나타내는 신호일 수 있다. 잔차(residual) 신호는 잔차 블록을 나타내는 신호일 수 있다.
실시예들에서, 특정된 정보, 데이터, 플래그(flag) 및 요소(element), 속성(attribute) 등의 각각은 값을 가질 수 있다. 정보, 데이터, 플래그(flag) 및 요소(element), 속성(attribute) 등의 값 "0"은 논리 거짓(logical false) 또는 제1 기정의된(predefined) 값을 나타낼 수 있다. 말하자면, 값 "0", 거짓, 논리 거짓 및 제1 기정의된 값은 서로 대체되어 사용될 수 있다. 정보, 데이터, 플래그(flag) 및 요소(element), 속성(attribute) 등의 값 "1"은 논리 참(logical true) 또는 제2 기정의된(predefined) 값을 나타낼 수 있다. 말하자면, 값 "1", 참, 논리 참 및 제2 기정의된 값은 서로 대체되어 사용될 수 있다.
행, 열 또는 인덱스(index)를 나타내기 위해 i 또는 j 등의 변수가 사용될 때, i의 값은 0 이상의 정수일 수 있으며, 1 이상의 정수일 수도 있다. 말하자면, 실시예들에서 행, 열 및 인덱스 등은 0에서부터 카운트될 수 있으며, 1에서부터 카운트될 수 있다.
아래에서는, 실시예들에서 사용되는 용어가 설명된다.
부호화기(encoder): 부호화(encoding)를 수행하는 장치를 의미한다.
복호화기(decoder): 복호화(decoding)를 수행하는 장치를 의미한다.
유닛(unit): 유닛은 영상의 부호화 및 복호화의 단위를 나타낼 수 있다. 용어들 "유닛" 및 "블록(block)"은 동일한 의미로 사용될 수 있으며, 서로 교체되어 사용될 수 있다.
- 유닛은 샘플의 MxN 배열일 수 있다. M 및 N은 각각 양의 정수일 수 있다. 유닛은 흔히 2차원의 샘플들의 배열을 의미할 수 있다.
- 영상의 부호화 및 복호화에 있어서, 유닛은 하나의 영상의 분할에 의해 생성된 영역일 수 있다. 말하자면, 유닛은 하나의 영상 내의 특정된 영역일 수 있다. 하나의 영상은 복수의 유닛들로 분할될 수 있다. 또는, 유닛은 하나의 영상을 세분화된 부분들로 분할하고, 분할된 부분에 대한 부호화 또는 복호화가 수행될 때, 상기의 분할된 부분을 의미할 수 있다.
- 영상의 부호화 및 복호화에 있어서, 유닛의 종류에 따라서 유닛에 대한 기정의된 처리가 수행될 수 있다.
- 기능에 따라서, 유닛의 타입은 매크로 유닛(Macro Unit), 코딩 유닛(Coding Unit; CU), 예측 유닛(Prediction Unit; PU), 잔차 유닛(Residual Unit) 및 변환 유닛(Transform Unit; TU) 등으로 분류될 수 있다. 또는, 기능에 따라서, 유닛은 블록, 매크로블록(Macroblock), 코딩 트리 유닛(Coding Tree Unit), 코딩 트리 블록(Coding Tree Block), 코딩 유닛(Coding Unit), 부호화 블록(Coding Block), 예측 유닛(Prediction Unit), 예측 블록(Prediction Block), 잔차 유닛(Residual Unit), 잔차 블록(Residual Block), 변환 유닛(Transform Unit) 및 변환 블록(Transform Block) 등을 의미할 수 있다.
- 유닛은, 블록과 구분하여 지칭하기 위해, 휘도(luma) 성분 블록 및 이에 대응하는 색차(chroma) 성분 블록, 그리고 각 블록에 대한 구문 요소(syntax element)를 포함하는 정보를 의미할 수 있다.
- 유닛의 크기 및 형태는 다양할 수 있다. 또한, 유닛은 다양한 크기 및 다양한 형태를 가질 수 있다. 특히 유닛의 형태는 정사각형뿐만 아니라 직사각형, 사다리꼴, 삼각형 및 오각형 등 2차원으로 표현될 수 있는 기하학적 도형을 포함할 수 있다.
- 또한, 유닛 정보는 유닛의 타입, 유닛의 크기, 유닛의 깊이, 유닛의 부호화 순서 및 유닛의 복호화 순서 등 중 적어도 하나 이상을 포함할 수 있다. 예를 들면, 유닛의 타입은 CU, PU, 잔차 유닛 및 TU 등 중 하나를 가리킬 수 있다.
- 하나의 유닛은 유닛에 비해 더 작은 크기를 갖는 하위 유닛으로 더 분할될 수 있다.
깊이(depth): 깊이는 유닛의 분할된 정도를 의미할 수 있다. 또한, 유닛 깊이는 유닛을 트리 구조로 표현했을 때 유닛이 존재하는 레벨을 나타낼 수 있다.
- 유닛 분할 정보는 유닛의 깊이에 관한 깊이를 포함할 수 있다. 깊이는 유닛이 분할되는 회수 및/또는 정도를 나타낼 수 있다.
- 트리 구조에서, 루트 노드(root node)의 깊이가 가장 얕고, 리프 노드(leaf node)의 깊이가 가장 깊다고 볼 수 있다.
- 하나의 유닛은 트리 구조(tree structure)에 기반하여 깊이 정보(depth)를 가지면서 계층적으로(hierarchically) 복수의 하위 유닛들로 분할될 수 있다. 말하자면, 유닛 및 상기의 유닛의 분할에 의해 생성된 하위 유닛은 노드 및 상기의 노드의 자식 노드에 각각 대응할 수 있다. 각각의 분할된 하위 유닛은 깊이를 가질 수 있다. 깊이는 유닛이 분할된 회수 및/또는 정도를 나타내므로, 하위 유닛의 분할 정보는 하위 유닛의 크기에 관한 정보를 포함할 수도 있다.
- 트리 구조에서, 가장 상위 노드는 분할되지 않은 최초의 유닛에 대응할 수 있다. 가장 상위 노드는 루트 노드로 칭해질 수 있다. 또한, 가장 상위 노드는 최소의 깊이 값을 가질 수 있다. 이 때, 가장 상위 노드는 레벨 0의 깊이를 가질 수 있다.
- 레벨 1의 깊이를 갖는 노드는 최초의 유닛이 한 번 분할됨에 따라 생성된 유닛을 나타낼 수 있다. 레벨 2의 깊이를 갖는 노드는 최초의 유닛이 두 번 분할됨에 따라 생성된 유닛을 나타낼 수 있다.
- 레벨 n의 깊이를 갖는 노드는 최초의 유닛이 n번 분할됨에 따라 생성된 유닛을 나타낼 수 있다.
- 리프 노드는 가장 하위의 노드일 수 있으며, 더 분할될 수 없는 노드일 수 있다. 리프 노드의 깊이는 최대 레벨일 수 있다. 예를 들면, 최대 레벨의 기정의된 값은 3일 수 있다.
- QT 깊이는 쿼드 분할에 대한 깊이를 나타낼 수 있다. BT 깊이는 이진 분할에 대한 깊이를 나타낼 수 있다. TT 깊이는 삼진 분할에 대한 깊이를 나타낼 수 있다.
샘플(sample): 샘플은 블록을 구성하는 기반(base) 단위일 수 있다. 샘플은 비트 깊이(bit depth; Bd)에 따라서 0부터 2Bd-1까지의 값들로서 표현될 수 있다.
- 샘플은 픽셀 또는 픽셀 값일 수 있다.
- 이하에서, 용어들 "픽셀", "화소" 및 "샘플"은 동일한 의미로 사용될 수 있으며, 서로 교체되어 사용될 수 있다.
코딩 트리 유닛(Coding Tree Unit; CTU): CTU는 하나의 휘도 성분(Y) 코딩 트리 블록과, 상기의 휘도 성분 코딩 트리 블록에 관련된 두 색차 성분(Cb, Cr) 코딩 트리 블록들로 구성될 수 있다. 또한, CTU는 상기의 블록들과 상기의 블록들의 각 블록에 대한 구문 요소를 포함한 것을 의미할 수도 있다.
- 각 코딩 트리 유닛은 코딩 유닛, 예측 유닛 및 변환 유닛 등의 하위 유닛을 구성하기 위하여 쿼드 트리(Quad Tree: QT), 이진 트리(Binary Tree; BT) 및 삼진 트리(Ternary Tree; TT) 등과 같은 하나 이상의 분할 방식을 이용하여 분할될 수 있다.
- CTU는 입력 영상의 분할에서와 같이, 영상의 복호화 및 부호화 과정에서의 처리 단위인 픽셀 블록을 지칭하기 위한 용어로서 사용될 수 있다.
코딩 트리 블록(Coding Tree Block; CTB): 코딩 트리 블록은 Y 코딩 트리 블록, Cb 코딩 트리 블록, Cr 코딩 트리 블록 중 어느 하나를 지칭하기 위한 용어로 사용될 수 있다.
주변 블록(neighbor block): 주변 블록은 대상 블록에 인접한 블록을 의미할 수 있다. 주변 블록은 재구축된된 주변 블록을 의미할 수도 있다.
- 이하에서, 용어들 "주변 블록" 및 "인접 블록(adjacent block)"은 동일한 의미로 사용될 수 있으며, 서로 교체되어 사용될 수 있다.
공간적 주변 블록(spatial neighbor block): 공간적 주변 블록은 대상 블록에 공간적으로 인접한 블록일 수 있다. 주변 블록은 공간적 주변 블록을 포함할 수 있다.
- 대상 블록 및 공간적 주변 블록은 대상 픽처 내에 포함될 수 있다.
- 공간적 주변 블록은 대상 블록에 경계가 맞닿은 블록 또는 대상 블록으로부터 소정의 거리 내에 위치한 블록을 의미할 수 있다.
- 공간적 주변 블록은 대상 블록의 꼭지점에 인접한 블록을 의미할 수 있다. 여기에서, 대상 블록의 꼭지점에 인접한 블록이란, 대상 블록에 가로로 인접한 이웃 블록에 세로로 인접한 블록 또는 대상 블록에 세로로 인접한 이웃 블록에 가로로 인접한 블록일 수 있다.
시간적 주변 블록(temporal neighbor block): 시간적 주변 블록은 대상 블록에 시간적으로 인접한 블록일 수 있다. 주변 블록은 시간적 주변 블록을 포함할 수 있다.
- 시간적 주변 블록은 콜 블록(co-located block; col block)을 포함할 수 있다.
- 콜 블록은 이미 재구축된 콜 픽처(co-located picture; col picture) 내의 블록일 수 있다. 콜 블록의 콜 픽처 내에서의 위치는 대상 블록의 대상 픽처 내의 위치에 대응할 수 있다. 또는, 콜 블록의 콜 픽처 내에서의 위치는 대상 블록의 대상 픽처 내의 위치와 동일할 수 있다. 콜 픽처는 참조 픽처 리스트에 포함된 픽처일 수 있다.
- 시간적 주변 블록은 대상 블록의 공간적 주변 블록에 시간적으로 인접한 블록일 수 있다.
예측 유닛(prediction unit): 인터 예측, 인트라 예측, 인터 보상(compensation), 인트라 보상 및 움직임 보상 등의 예측에 대한 기반 단위를 의미할 수 있다.
- 하나의 예측 유닛은 더 작은 크기를 갖는 복수의 파티션(partition)들 또는 하위 예측 유닛들로 분할될 수도 있다. 복수의 파티션들 또한 예측 또는 보상의 수행에 있어서의 기반 단위일 수 있다. 예측 유닛의 분할에 의해 생성된 파티션 또한 예측 유닛일 수 있다.
예측 유닛 파티션(prediction unit partition): 예측 유닛이 분할된 형태를 의미할 수 있다.
재구축된 이웃 유닛(reconstructed neighboring unit): 재구축된 이웃 유닛은 대상 유닛의 주변에 이미 복호화되어 재구축된 유닛일 수 있다.
- 재구축된 이웃 유닛은 대상 유닛에 대한 공간적(spatial) 인접 유닛 또는 시간적(temporal) 인접 유닛일 수 있다.
- 재구축된 공간적 주변 유닛은 대상 픽처 내의 유닛이면서 부호화 및/또는 복호화를 통해 이미 재구축된 유닛일 수 있다.
- 재구축된 시간적 주변 유닛은 참조 영상 내의 유닛이면서 부호화 및/또는 복호화를 통해 이미 재구축된 유닛일 수 있다. 재구축된 시간적 주변 유닛의 참조 영상 내에서의 위치는 대상 유닛의 대상 픽처 내에서의 위치와 같거나, 대상 유닛의 대상 픽처 내에서의 위치에 대응할 수 있다.
파라미터 세트(parameter set): 파라미터 세트는 비트스트림 내의 구조(structure) 중 헤더(header) 정보에 해당할 수 있다. 예를 들면, 파라미터 세트는 비디오 파라미터 세트(video parameter set), 시퀀스 파라미터 세트(sequence parameter set), 픽처 파라미터 세트(picture parameter set) 및 적응 파라미터 세트(adaptation parameter set) 등을 포함할 수 있다.
또한, 파라미터 세트는 슬라이스(slice) 헤더 정보 및 타일 헤더 정보를 포함할 수 있다.
율-왜곡 최적화(rate-distortion optimization): 부호화 장치는 코딩 유닛의 크기, 예측 모드, 예측 유닛의 크기, 움직임 정보 및, 변환 유닛의 크기 등의 조합을 이용해서 높은 부호화 효율을 제공하기 위해 율-왜곡 최적화를 사용할 수 있다.
- 율-왜곡 최적화 방식은 상기의 조합들 중에서 최적의 조합을 선택하기 위해 각 조합의 율-왜곡 비용(rate-distortion cost)을 계산할 수 있다. 율-왜곡 비용은 아래의 수식 1을 이용하여 계산될 수 있다. 일반적으로 상기 율-왜곡 비용이 최소가 되는 조합이 율-왜곡 최적화 방식에 있어서의 최적의 조합으로 선택될 수 있다.
[수식 1]
Figure pat00001
- D는 왜곡을 나타낼 수 있다. D는 변환 유닛 내에서 원래의 변환 계수들 및 재구축된 변환 계수들 간의 차이 값들의 제곱들의 평균(mean square error)일 수 있다.
- R은 율을 나타낼 수 있다. R은 관련된 문맥 정보를 이용한 비트 율을 나타낼 수 있다.
- λ는 라그랑지안 승수(Lagrangian multiplier)를 나타낼 수 있다. R은 예측 모드, 움직임 정보 및 코드된 블록 플래그(coded block flag) 등과 같은 코딩 파라미터 정보뿐만 아니라, 변환 계수의 부호화에 의해 발생하는 비트도 포함할 수 있다.
- 부호화 장치는 정확한 D 및 R을 계산하기 위해 인터 예측 및/또는 인트라 예측, 변환, 양자화, 엔트로피 부호화, 역양자화, 역변환 등의 과정들을 수행할 수 있다. 이러한 과정들은 부호화 장치에서의 복잡도를 크게 증가시킬 수 있다.
비트스트림(bitstream): 비트스트림은 부호화된 영상 정보를 포함하는 비트의 열을 의미할 수 있다.
파라미터 세트(parameter set): 파라미터 세트는 비트스트림 내의 구조(structure) 중 헤더(header) 정보에 해당할 수 있다.
- 파라미터 세트는 비디오 파라미터 세트(video parameter set), 시퀀스 파라미터 세트(sequence parameter set), 픽처 파라미터 세트(picture parameter set) 및 적응 파라미터 세트(adaptation parameter set) 중 적어도 하나를 포함할 수 있다. 또한, 파라미터 세트는 슬라이스(slice) 헤더의 정보 및 타일(tile) 헤더의 정보를 포함할 수도 있다.
파싱(parsing): 파싱은 비트스트림을 엔트로피 복호화하여 구문 요소(syntax element)의 값을 결정하는 것을 의미할 수 있다. 또는, 파싱은 엔트로피 복호화 자체를 의미할 수 있다.
심볼(symbol): 부호화 대상 유닛 및/또는 복호화 대상 유닛의 구문 요소, 코딩 파라미터(coding parameter) 및 변환 계수(transform coefficient) 등 중 적어도 하나를 의미할 수 있다. 또한, 심볼은 엔트로피 부호화의 대상 또는 엔트로피 복호화의 결과를 의미할 수 있다.
참조 픽처(reference picture): 참조 픽처는 인터 예측 또는 움직임 보상을 위하여 유닛이 참조하는 영상을 의미할 수 있다. 또는, 참조 픽처는 인터 예측 또는 움직임 보상을 위해 대상 유닛이 참조하는 참조 유닛을 포함하는 영상일 수 있다.
이하, 용어 "참조 픽처" 및 "참조 영상"은 동일한 의미로 사용될 수 있으며, 서로 교체되어 사용될 수 있다.
참조 픽처 리스트(reference picture list): 참조 픽처 리스트는 인터 예측 또는 움직임 보상에 사용되는 하나 이상의 참조 영상들을 포함하는 리스트일 수 있다.
- 참조 픽처 리스트의 종류는 리스트 조합(List Combined; LC), 리스트 0(List 0; L0), 리스트 1(List 1; L1), 리스트 2(List 2; L2) 및 리스트 3(List 3; L3) 등이 있을 수 있다.
- 인터 예측에는 하나 이상의 참조 픽처 리스트들이 사용될 수 있다.
인터 예측 지시자(inter prediction indicator): 인터 예측 지시자는 대상 유닛에 대한 인터 예측의 방향을 가리킬 수 있다. 인터 예측은 단방향 예측 및 양방향 예측 등 중 하나일 수 있다. 또는, 인터 예측 지시자는 대상 유닛의 예측 유닛을 생성할 때 사용되는 참조 영상의 개수를 나타낼 수 있다. 또는, 인터 예측 지시자는 대상 유닛에 대한 인터 예측 혹은 움직임 보상을 위해 사용되는 예측 블록의 개수를 의미할 수 있다.
참조 픽처 색인(reference picture index): 참조 픽처 색인은 참조 픽처 리스트에서 특정 참조 영상을 지시하는 색인일 수 있다.
움직임 벡터(Motion Vector; MV): 움직임 벡터는 인터 예측 또는 움직임 보상에서 사용되는 2차원의 벡터일 수 있다. 움직임 벡터는 대상 영상 및 참조 영상 간의 오프셋을 의미할 수 있다.
- 예를 들면, MV는 (mvx, mvy)와 같은 형태로 표현될 수 있다. mvx는 수평(horizontal) 성분을 나타낼 수 있고, mvy 는 수직(vertical) 성분을 나타낼 수 있다.
탐색 영역(search range): 탐색 영역은 인터 예측 중 MV에 대한 탐색이 이루어지는 2차원의 영역일 수 있다. 예를 들면, 탐색 영역의 크기는 MxN일 수 있다. M 및 N은 각각 양의 정수일 수 있다.
움직임 벡터 후보(motion vector candidate): 움직임 벡터 후보는 움직임 벡터를 예측할 때 예측 후보인 블록 혹은 예측 후보인 블록의 움직임 벡터를 의미할 수 있다.
- 움직임 벡터 후보는 움직임 벡터 후보 리스트에 포함될 수 있다.
움직임 벡터 후보 리스트(motion vector candidate list): 움직임 벡터 후보 리스트는 하나 이상의 움직임 벡터 후보들을 이용하여 구성된 리스트를 의미할 수 있다.
움직임 벡터 후보 색인(motion vector candidate index): 움직임 벡터 후보 색인은 움직임 벡터 후보 리스트 내의 움직임 벡터 후보를 가리키는 지시자를 의미할 수 있다. 또는, 움직임 벡터 후보 색인은 움직임 벡터 예측기(motion vector predictor)의 색인(index)일 수 있다.
움직임 정보(motion information): 움직임 정보는 움직임 벡터, 참조 픽처 색인 및 인터 예측 지시자(inter prediction indicator) 뿐만 아니라 참조 픽처 리스트 정보, 참조 영상, 움직임 벡터 후보, 움직임 벡터 후보 색인, 머지 후보 및 머지 색인 등 중 적어도 하나를 포함하는 정보를 의미할 수 있다.
변환 유닛(transform unit): 변환 유닛은 변환, 역변환, 양자화, 역양자화, 변환 계수 부호화 및 변환 계수 복호화 등과 같은 잔차 신호(residual signal) 부호화 및/또는 잔차 신호 복호화에 있어서의 기본 유닛일 수 있다. 하나의 변환 유닛은 더 작은 크기의 복수의 변환 유닛들로 분할될 수 있다.
스케일링(scaling): 스케일링은 변환 계수 레벨에 인수를 곱하는 과정을 의미할 수 있다.
- 변환 계수 레벨에 대한 스케일링의 결과로서, 변환 계수가 생성될 수 있다. 스케일링은 역양자화(dequantization)로 칭해질 수도 있다.
양자화 파라미터(Quantization Parameter; QP): 양자화 파라미터는 양자화에서 변환 계수에 대해 변환 계수 레벨(transform coefficient level)을 생성할 때 사용되는 값을 의미할 수 있다. 또는, 양자화 파라미터는 역양자화에서 변환 계수 레벨을 스케일링(scaling)함으로써 변환 계수를 생성할 때 사용되는 값을 의미할 수도 있다. 또는, 양자화 파라미터는 양자화 스탭 크기(step size)에 매핑된 값일 수 있다.
델타 양자화 파라미터(delta quantization parameter): 델타 양자화 파라미터는 예측된 양자화 파라미터 및 대상 유닛의 양자화 파라미터의 차분(differential) 값을 의미한다.
스캔(scan): 스캔은 유닛, 블록 또는 행렬 내의 계수들의 순서를 정렬하는 방법을 의미할 수 있다. 예를 들면, 2차원 배열을 1차원 배열 형태로 정렬하는 것을 스캔이라고 칭할 수 있다. 또는, 1차원 배열을 2차원 배열 형태로 정렬하는 것도 스캔 또는 역 스캔(inverse scan)이라고 칭할 수 있다.
변환 계수(transform coefficient): 변환 계수는 부호화 장치에서 변환을 수행함에 따라 생성된 계수 값일 수 있다. 또는, 변환 계수는 복호화 장치에서 엔트로피 복호화 및 역양자화 중 적어도 하나를 수행함에 따라 생성된 계수 값일 수 있다.
- 변환 계수 또는 잔차 신호에 양자화를 적용함으로써 생성된 양자화된 레벨 또는 양자화된 변환 계수 레벨 또한 변환 계수의 의미에 포함될 수 있다.
양자화된 레벨(quantized level): 양자화된 레벨은 부호화 장치에서 변환 계수 또는 잔차 신호에 양자화를 수행함으로써 생성된 값을 의미할 수 있다. 또는, 양자화된 레벨은 복호화 장치에서 역양자화를 수행함에 있어서 역양자화의 대상이 되는 값을 의미할 수도 있다.
- 변환 및 양자화의 결과인 양자화된 변환 계수 레벨도 양자화된 레벨의 의미에 포함될 수 있다.
넌제로 변환 계수(non-zero transform coefficient): 넌제로 변환 계수는 0이 아닌 값을 갖는 변환 계수 또는 0이 아닌 값을 갖는 변환 계수 레벨을 의미할 수 있다. 또는, 넌제로 변환 계수는 값의 크기가 0이 아난 변환 계수 또는 값의 크기가 0이 아닌 변환 계수 레벨을 의미할 수 있다.
양자화 행렬(quantization matrix): 양자화 행렬은 영상의 주관적 화질 혹은 객관적 화질을 향상시키기 위해서 양자화 과정 또는 역양자화 과정에서 이용되는 행렬을 의미할 수 있다. 양자화 행렬은 스케일링 리스트(scaling list)라고도 칭해질 수 있다.
양자화 행렬 계수(quantization matrix coefficient): 양자화 행렬 계수는 양자화 행렬 내의 각 원소(element)를 의미할 수 있다. 양자화 행렬 계수는 행렬 계수(matrix coefficient)라고도 칭해질 수 있다.
디폴트 행렬(default matrix): 기본 행렬은 부호화 장치 및 복호화 장치에서 기정의된 양자화 행렬일 수 있다.
비 디폴트 행렬(non-default matrix): 비 디폴트 행렬은 부호화 장치 및 복호화 장치에서 기정의되어 있지 않은 양자화 행렬일 수 있다. 비 디폴트 행렬은 부호화 장치로부터 복호화 장치로 시그널링될 수 있다.
시그널링: 시그널링은 정보가 부호화 장치로부터 복호화 장치로 전송되는 것을 나타낼 수 있다. 또는, 시그널링은 정보를 비트스트림 또는 기록 매체 내에 포함시키는 것을 의미할 수 있다. 부호화 장치에 의해 시그널링된 정보는 복호화 장치에 의해 사용될 수 있다.
도 1은 본 발명이 적용되는 부호화 장치의 일 실시예에 따른 구성을 나타내는 블록도이다.
부호화 장치(100)는 인코더, 비디오 부호화 장치 또는 영상 부호화 장치일 수 있다. 비디오는 하나 이상의 영상들을 포함할 수 있다. 부호화 장치(100)는 비디오의 하나 이상의 영상들을 순차적으로 부호화할 수 있다.
도 1을 참조하면, 부호화 장치(100)는 인터 예측부(110), 인트라 예측부(120), 스위치(115), 감산기(125), 변환부(130), 양자화부(140), 엔트로피 부호화부(150), 역양자화부(160), 역변환부(170), 가산기(175), 필터부(180) 및 참조 픽처 버퍼(190)를 포함할 수 있다.
부호화 장치(100)는 인트라 모드 및/또는 인터 모드를 사용하여 대상 영상에 대한 부호화를 수행할 수 있다.
또한, 부호화 장치(100)는 대상 영상에 대한 부호화를 통해 부호화의 정보를 포함하는 비트스트림을 생성할 수 있고, 생성된 비트스트림을 출력할 수 있다. 생성된 비트스트림은 컴퓨터 판독가능한 기록 매체에 저장될 수 있고, 유/무선 전송 매체를 통해 스트리밍될 수 있다.
예측 모드로서, 인트라 모드가 사용되는 경우, 스위치(115)는 인트라로 전환될 수 있다. 예측 모드로서, 인터 모드가 사용되는 경우, 스위치(115)는 인터로 전환될 수 있다.
부호화 장치(100)는 대상 블록에 대한 예측 블록을 생성할 수 있다. 또한, 부호화 장치(100)는 예측 블록이 생성된 후, 대상 블록 및 예측 블록의 차분(residual)을 부호화할 수 있다.
예측 모드가 인트라 모드인 경우, 인트라 예측부(120)는 대상 블록의 주변에 있는, 이미 부호화/복호화된 블록의 픽셀을 참조 샘플로서 이용할 수 있다. 인트라 예측부(120)는 참조 샘플을 이용하여 대상 블록에 대한 공간적 예측을 수행할 수 있고, 공간적 예측을 통해 대상 블록에 대한 예측 샘플들을 생성할 수 있다.
인터 예측부(110)는 움직임 예측부 및 움직임 보상부를 포함할 수 있다.
예측 모드가 인터 모드인 경우, 움직임 예측부는, 움직임 예측 과정에서 참조 영상으로부터 대상 블록과 가장 매치가 잘 되는 영역을 검색할 수 있고, 검색된 영역을 이용하여 대상 블록 및 검색된 영역에 대한 움직임 벡터를 도출할 수 있다.
참조 영상은 참조 픽처 버퍼(190)에 저장될 수 있으며, 참조 영상에 대한 부호화 및/또는 복호화가 처리되었을 때 참조 픽처 버퍼(190)에 저장될 수 있다.
움직임 보상부는 움직임 벡터를 이용하는 움직임 보상을 수행함으로써 대상 블록에 대한 예측 블록을 생성할 수 있다. 여기에서, 움직임 벡터는 인터 예측에 사용되는 2차원 벡터일 수 있다. 또한 움직임 벡터는 대상 영상 및 참조 영상 간의 오프셋(offset)을 나타낼 수 있다.
움직임 예측부 및 움직임 보상부는 움직임 벡터가 정수가 아닌 값을 가진 경우 참조 영상 내의 일부 영역에 대해 보간 필터(interpolation filter)를 적용함으로써 예측 블록을 생성할 수 있다. 인터 예측 또는 움직임 보상을 수행하기 위해, CU를 기준으로 CU에 포함된 PU의 움직임 예측 및 움직임 보상의 방법이 스킵 모드(skip mode), 머지 모드(merge mode), 향상된 움직임 벡터 예측(advanced motion vector prediction; AMVP) 모드 및 현재 픽처 참조 모드 중 어떠한 방법인지 여부가 판단될 수 있고, 각 모드에 따라 인터 예측 또는 움직임 보상이 수행될 수 있다.
감산기(125)는 대상 블록 및 예측 블록의 차분인 잔차 블록(residual block)을 생성할 수 있다. 잔차 블록은 잔차 신호로 칭해질 수도 있다.
잔차 신호는 원 신호 및 예측 신호 간의 차이(difference)를 의미할 수 있다. 또는, 잔차 신호는 원신호 및 예측 신호 간의 차이를 변환(transform)하거나 양자화하거나 또는 변환 및 양자화함으로써 생성된 신호일 수 있다. 잔차 블록은 블록 단위에 대한 잔차 신호일 수 있다.
변환부(130)는 잔차 블록에 대해 변환(transform)을 수행하여 변환 계수를 생성할 수 있고, 생성된 변환 계수(transform coefficient)를 출력할 수 있다. 여기서, 변환 계수는 잔차 블록에 대한 변환을 수행함으로써 생성된 계수 값일 수 있다.
변환부(130)는 변환을 수행함에 있어서 기정의된 복수의 변환 방법들 중 하나를 사용할 수 있다.
기정의된 복수의 변환 방법들은 이산 코사인 변환(Discrete Cosine Transform; DCT), 이산 사인 변환(Discrete Sine Transform; DST) 및 카루넨-루베 변환(Karhunen-Loeve Transform; KLT) 기반 변환 등을 포함할 수 있다.
잔차 블록에 대한 변환을 위해 사용되는 변환 방법은 대상 블록 및/또는 주변 블록에 대한 코딩 파라미터들 중 적어도 하나에 따라 결정될 수 있다. 예를 들면, 변환 방법은 PU에 대한 인터 예측 모드, PU에 대한 인트라 예측 모드, TU의 크기 및 TU의 형태 중 적어도 하나에 기반하여 결정될 수 있다. 또는, 변환 방법을 지시하는 변환 정보가 부호화 장치(100)로부터 복호화 장치(200)로 시그널링될 수도 있다.
변환 스킵(transform skip) 모드가 적용되는 경우, 변환부(130)는 잔차 블록에 대한 변환을 생략할 수도 있다.
변환 계수에 양자화를 적용함으로써 양자화된 변환 계수 레벨(transform coefficient level) 또는 양자화된 레벨이 생성될 수 있다. 이하, 실시예들에서는 양자화된 변환 계수 레벨 및 양자화된 레벨도 변환 계수로 칭해질 수 있다.
양자화부(140)는 변환 계수를 양자화 파라미터에 맞춰 양자화함으로써 양자화된 변환 계수 레벨(quantized transform coefficient level) 또는 양자화된 레벨을 생성할 수 있다. 양자화부(140)는 생성된 양자화된 변환 계수 레벨 또는 생성된 양자화된 레벨을 출력할 수 있다. 이때, 양자화부(140)에서는 양자화 행렬을 사용하여 변환 계수를 양자화할 수 있다.
엔트로피 부호화부(150)는, 양자화부(140)에서 산출된 값들 및/또는 부호화 과정에서 산출된 코딩 파라미터 값들 등에 기초하여 확률 분포에 따른 엔트로피 부호화를 수행함으로써 비트스트림(bitstream)을 생성할 수 있다. 엔트로피 부호화부(150)는 생성된 비트스트림을 출력할 수 있다.
엔트로피 부호화부(150)는 영상의 픽셀에 관한 정보 및 영상의 복호화를 위한 정보에 대한 엔트로피 부호화를 수행할 수 있다. 예를 들면, 영상의 복호화를 위한 정보는 구문 요소(syntax element) 등을 포함할 수 있다.
엔트로피 부호화가 적용되는 경우, 높은 발생 확률을 갖는 심볼에 적은 수의 비트가 할당될 수 있고, 낮은 발생 확률을 갖는 심볼에 많은 수의 비트가 할당될 수 있다. 이러한 할당을 통해 심볼이 표현됨에 따라, 부호화의 대상인 심볼들에 대한 비트열(bitstring)의 크기가 감소될 수 있다. 따라서, 엔트로피 부호화를 통해서 영상 부호화의 압축 성능이 향상될 수 있다.
또한, 엔트로피 부호화부(150)는 엔트로피 부호화를 위해 지수 골롬(exponential golomb), 문맥-적응형 가변 길이 코딩(Context-Adaptive Variable Length Coding; CAVLC) 및 문맥-적응형 이진 산술 코딩(Context-Adaptive Binary Arithmetic Coding; CABAC) 등과 같은 부호화 방법을 사용할 수 있다. 예를 들면, 엔트로피 부호화부(150)는 가변 길이 부호화(Variable Length Coding/Code; VLC) 테이블을 이용하여 엔트로피 부호화를 수행할 수 있다. 예를 들면, 엔트로피 부호화부(150)는 대상 심볼에 대한 이진화(binarization) 방법을 도출할 수 있다. 또한, 엔트로피 부호화부(150)는 대상 심볼/빈(bin)의 확률 모델(probability model)을 도출할 수 있다. 엔트로피 부호화부(150)는 도출된 이진화 방법, 확률 모델 및 문맥 모델(context model)을 사용하여 산술 부호화를 수행할 수도 있다.
엔트로피 부호화부(150)는 양자화된 변환 계수 레벨을 부호화하기 위해 변환 계수 스캐닝(transform coefficient scanning) 방법을 통해 2차원의 블록의 형태(form)의 계수를 1차원의 벡터의 형태로 변경할 수 있다.
코딩 파라미터는 부호화 및/또는 복호화를 위해 요구되는 정보일 수 있다. 코딩 파라미터는 부호화 장치(100)에서 부호화되어 부호화 장치(100)로부터 복호화 장치로 전달되는 정보를 포함할 수 있고, 부호화 혹은 복호화 과정에서 유추될 수 있는 정보를 포함할 수 있다. 예를 들면, 복호화 장치로 전달되는 정보로서, 구문 요소가 있다.
코딩 파라미터(coding parameter)는 구문 요소와 같이 부호화 장치에서 부호화되고, 부호화 장치로부터 복호화 장치로 시그널링되는 정보(또는, 플래그, 인덱스 등)뿐만 아니라, 부호화 과정 또는 복호화 과정에서 유도되는 정보를 포함할 수 있다. 또한, 코딩 파라미터는 영상을 부호화하거나 복호화함에 있어서 요구되는 정보를 포함할 수 있다. 예를 들면, 유닛/블록의 크기, 유닛/블록의 깊이, 유닛/블록의 분할 정보, 유닛/블록의 분할 구조, 유닛/블록이 쿼드 트리 형태로 분할되는지 여부를 나타내는 정보, 유닛/블록이 이진 트리 형태로 분할되는지 여부를 나타내는 정보, 이진 트리 형태의 분할 방향(가로 방향 또는 세로 방향), 이진 트리 형태의 분할 형태(대칭 분할 또는 비대칭 분할), 유닛/블록이 삼진 트리 형태로 분할되는지 여부를 나타내는 정보, 삼진 트리 형태의 분할 방향(가로 방향 또는 세로 방향), 예측 방식(인트라 예측 또는 인터 예측), 인트라 예측 모드/방향, 참조 샘플 필터링 방법, 예측 블록 필터링 방법, 예측 블록 경계 필터링 방법, 필터링의 필터 탭, 필터링의 필터 계수, 인터 예측 모드, 움직임 정보, 움직임 벡터, 참조 픽처 색인, 인터 예측 방향, 인터 예측 지시자, 참조 픽처 리스트, 참조 영상, 움직임 벡터 예측기, 움직임 벡터 예측 후보, 움직임 벡터 후보 리스트, 머지 모드를 사용하는지 여부를 나타내는 정보, 머지 후보, 머지 후보 리스트, 스킵(skip) 모드를 사용하는지 여부를 나타내는 정보, 보간 필터의 종류, 보간 필터의 필터 탭, 보간 필터의 필터 계수, 움직임 벡터 크기, 움직임 벡터 표현 정확도, 변환 종류, 변환 크기, 1차 변환을 사용하는지 여부를 나타내는 정보, 추가(2차) 변환을 사용하는지 여부를 나타내는 정보, 1차 변환 인덱스, 2차 변환 인덱스, 잔차 신호의 유무를 나타내는 정보, 코드된 블록 패턴(coded block pattern), 코드된 블록 플래그(coded block flag), 양자화 파라미터, 양자화 행렬, 인트라-루프 필터에 대한 정보, 인트라-루프 필터를 적용하는지 여부에 대한 정보, 인트라-루프 필터의 계수, 인트라-루프의 필터 탭, 인트라 루프 필터의 모양(shape)/형태(form), 디블록킹 필터를 적용하는지 여부를 나타내는 정보, 디블록킹 필터 계수, 디블록킹 필터 탭, 디블록킹 필터 강도, 디블록킹 필터 모양/형태, 적응적 샘플 오프셋을 적용하는지 여부를 나타내는 정보, 적응적 샘플 오프셋 값, 적응적 샘플 오프셋 카테고리, 적응적 샘플 오프셋 종류, 적응적 루프-내(in-loop) 필터를 적용하는지 여부, 적응적 루프-내 필터 계수, 적응적 루프-내 필터 탭, 적응적 루프-내 필터 모양/형태, 이진화/역이진화 방법, 문맥 모델, 문맥 모델 결정 방법, 문맥 모델 업데이트 방법, 레귤러 모드를 수행하는지 여부, 바이패스 모드를 수행하는지 여부, 문맥 빈, 바이패스 빈, 변환 계수, 변환 계수 레벨, 변환 계수 레벨 스캐닝 방법, 영상의 디스플레이/출력 순서, 슬라이스 식별 정보, 슬라이스 타입, 슬라이스 분할 정보, 타일 식별 정보, 타일 타입, 타일 분할 정보, 픽처 타입, 비트 심도, 휘도 신호에 대한 정보 및 색차 신호에 대한 정보 중 적어도 하나의 값, 조합된 형태 또는 통계가 코딩 파라미터에 포함될 수 있다. 예측 방식은 인트라 예측 모드 및 인터 예측 모드 중 하나의 예측 모드를 나타낼 수 있다.
잔차 신호는 원 신호 및 예측 신호 간의 차분(difference)을 나타낼 수 있다. 또는, 잔차 신호는 원신호 및 예측 신호 간의 차분을 변환(transform)함으로써 생성된 신호일 수 있다. 또는, 잔차 신호는 원 신호 및 예측 신호 간의 차분을 변환 및 양자화함으로써 생성된 신호일 수 있다. 잔차 블록은 블록에 대한 잔차 신호일 수 있다.
여기서, 플래그 또는 인덱스를 시그널링(signaling)한다는 것은 부호화 장치(100)에서는 플래그 또는 인덱스에 대한 엔트로피 부호화(entropy encoding)를 수행함으로써 생성된 엔트로피 부호화된 플래그 또는 엔트로피 부호화된 인덱스를 비트스트림(Bitstream)에 포함시키는 것을 의미할 수 있고, 복호화 장치(200)에서는 비트스트림으로부터 추출된 엔트로피 부호화된 플래그 또는 엔트로피 부호화된 인덱스에 대한 엔트로피 복호화(entropy decoding)를 수행함으로써 플래그 또는 인덱스를 획득하는 것을 의미할 수 있다.
부호화 장치(100)에 의해 인터 예측을 통한 부호화가 수행되기 때문에, 부호화된 대상 영상은 이후에 처리되는 다른 영상(들)에 대하여 참조 영상으로서 사용될 수 있다. 따라서, 부호화 장치(100)는 부호화된 대상 영상을 다시 재구축 또는 복호화할 수 있고, 재구축 또는 복호화된 영상을 참조 영상으로서 참조 픽처 버퍼(190)에 저장할 수 있다. 복호화를 위해 부호화된 대상 영상에 대한 역양자화 및 역변환이 처리될 수 있다.
양자화된 레벨은 역양자화부(160)에서 역양자화될(inversely quantized) 수 있고, 역변환부(170)에서 역변환될(inversely transformed) 수 있다. 역양자화 및/또는 역변환된 계수는 가산기(175)를 통해 예측 블록과 합해질 수 있다, 역양자화 및/또는 역변환된 계수와 예측 블록을 합함으로써 재구축된(reconstructed) 블록이 생성될 수 있다. 여기서, 역양자화 및/또는 역변환된 계수는 역양자화(dequantization) 및 역변환(inverse-transformation) 중 적어도 하나 이상이 수행된 계수를 의미할 수 있고, 재구축된 잔차 블록을 의미할 수 있다.
재구축된 블록은 필터부(180)를 거칠 수 있다. 필터부(180)는 디블록킹 필터(deblocking filter), 샘플 적응적 오프셋(Sample Adaptive Offset; SAO) 및 적응적 루프 필터(Adaptive Loop Filter; ALF) 중 적어도 하나 이상을 재구축된 블록 또는 재구축된 픽처에 적용할 수 있다. 필터부(180)는 루프-내(in-loop) 필터로 칭해질 수도 있다.
디블록킹 필터는 블록들 간의 경계에서 발생한 블록 왜곡을 제거할 수 있다. 디블록킹 필터를 적용할지 여부를 판단하기 위해, 블록에 포함된 몇 개의 열 또는 행에 포함된 픽셀(들)에 기반하여 대상 블록에 디블록킹 필터를 적용할지 여부가 판단될 수 있다.
대상 블록에 디블록킹 필터를 적용하는 경우, 적용되는 필터는 요구되는 디블록킹 필터링의 강도에 따라 다를 수 있다. 말하자면, 서로 다른 필터들 중 디블록킹 필터링의 강도에 따라 결정된 필터가 대상 블록에 적용될 수 있다. 대상 블록에 디블록킹 필터가 적용되는 경우, 요구되는 디블록킹 필터링의 강도에 따라 강한 필터(strong filter) 및 약한 필터(weak filter) 중 하나의 필터가 대상 블록에 적용될 수 있다.
또한, 대상 블록에 수직 방향 필터링 및 수평 방향 필터링이 수행되는 경우, 수평 방향 필터링 및 수직 방향 필터링이 병행으로 처리될 수 있다.
SAO는 코딩 에러에 대한 보상을 위해 픽셀의 픽셀 값에 적정한 오프셋(offset)을 더할 수 있다. SAO는 디블록킹이 적용된 영상에 대해, 픽셀의 단위로 원본 영상 및 디블록킹이 적용된 영상 간의 차이에 대하여 오프셋을 사용하는 보정을 수행할 수 있다. 영상에 대한 오프셋 보정을 수행하기 위해, 영상에 포함된 픽셀들을 일정한 수의 영역들로 구분한 후, 구분된 영역들 중 오프셋이 수행될 영역을 결정하고 결정된 영역에 오프셋을 적용하는 방법이 사용될 수 있고, 영상의 각 픽셀의 에지 정보를 고려하여 오프셋을 적용하는 방법이 사용될 수 있다.
ALF는 재구축된 영상 및 원래의 영상을 비교한 값에 기반하여 필터링을 수행할 수 있다. 영상에 포함된 픽셀들을 소정의 그룹들로 분할한 후, 각 분할된 그룹에 적용될 필터가 결정될 수 있고, 그룹 별로 차별적으로 필터링이 수행될 수 있다. 휘도 신호에 대하여, 적응적 루프 필터를 적용할지 여부에 관련된 정보는 CU 별로 시그널링될 수 있다. 각 블록에 적용될 ALF 의 모양 및 필터 계수는 블록 별로 다를 수 있다. 또는, 블록의 특징과는 무관하게, 고정된 형태의 ALF가 블록에 적용될 수 있다.
필터부(180)를 거친 재구축된 블록 또는 재구축된 영상은 참조 픽처 버퍼(190)에 저장될 수 있다. 필터부(180)를 거친 재구축된 블록은 참조 픽처의 일부일 수 있다. 말하자면, 참조 픽처는 필터부(180)를 거친 재구축된 블록들로 구성된 재구축된 픽처일 수 있다. 저장된 참조 픽처는 이후 인터 예측에 사용될 수 있다.
도 2는 본 발명이 적용되는 복호화 장치의 일 실시예에 따른 구성을 나타내는 블록도이다.
복호화 장치(200)는 디코더, 비디오 복호화 장치 또는 영상 복호화 장치일 수 있다.
도 2를 참조하면, 복호화 장치(200)는 엔트로피 복호화부(210), 역양자화부(220), 역변환부(230), 인트라 예측부(240), 인터 예측부(250), 스위치(245), 가산기(255), 필터부(260) 및 참조 픽처 버퍼(270)를 포함할 수 있다.
복호화 장치(200)는 부호화 장치(100)에서 출력된 비트스트림을 수신할 수 있다. 복호화 장치(200)는 컴퓨터 판독가능한 기록 매체에 저장된 비트스트림을 수신할 수 있고, 유/무선 전송 매체를 통해 스트리밍되는 비트스트림을 수신할 수 있다.
복호화 장치(200)는 비트스트림에 대하여 인트라 모드 및/또는 인터 모드의 복호화를 수행할 수 있다. 또한, 복호화 장치(200)는 복호화를 통해 재구축된 영상 또는 복호화된 영상을 생성할 수 있고, 생성된 재구축된 영상 또는 복호화된 영상을 출력할 수 있다.
예를 들면, 복호화에 사용되는 예측 모드에 따른 인트라 모드 또는 인터 모드로의 전환은 스위치(245)에 의해 이루어질 수 있다. 복호화에 사용되는 예측 모드가 인트라 모드인 경우 스위치(245)가 인트라 모드로 전환될 수 있다. 복호화에 사용되는 예측 모드가 인터 모드인 경우 스위치(245)가 인터 모드로 전환될 수 있다.
복호화 장치(200)는 입력된 비트스트림을 복호화함으로써 재구축된 잔차 블록(reconstructed residual block)을 획득할 수 있고, 예측 블록을 생성할 수 있다. 재구축된 잔차 블록 및 예측 블록이 획득되면, 복호화 장치(200)는 재구축된 잔차 블록 및 예측 블록을 더함으로써 복호화의 대상이 되는 재구축된 블록을 생성할 수 있다.
엔트로피 복호화부(210)는 비트스트림에 대한 확률 분포에 기초하여 비트스트림에 대한 엔트로피 복호화를 수행함으로써 심볼들을 생성할 수 있다. 생성된 심볼들은 양자화된 변환 계수 레벨(quantized transform coefficient level) 형태의 심볼을 포함할 수 있다. 여기에서, 엔트로피 복호화 방법은 상술된 엔트로피 부호화 방법과 유사할 수 있다. 예를 들면, 엔트로피 복호화 방법은 상술된 엔트로피 부호화 방법의 역과정일 수 있다.
엔트로피 복호화부(210)는 양자화된 변환 계수 레벨을 복호화하기 위해 변환 계수 스캐닝 방법을 통해 1차원의 벡터의 형태의 계수를 2차원의 블록의 형태로 변경할 수 있다.
예를 들면, 우상단 대각 스캔을 이용하여 블록의 계수들을 스캔함으로써 계수들이 2차원 블록 형태로 변경될 수 있다. 또는, 블록의 크기 및/또는 인트라 예측 모드에 따라 우상단 대각 스캔, 수직 스캔 및 수평 스캔 중 어떤 스캔이 사용될 것인지가 결정될 수 있다.
양자화된 계수는 역양자화부(220)에서 역양자화될 수 있다. 역양자화부(220)는 양자화된 계수에 대한 역양자화를 수행함으로써 역양자화된 계수를 생성할 수 있다. 또한, 역양자화된 계수는 역변환부(230)에서 역변환될 수 있다. 역변환부(230)는 역양자화된 계수에 대한 역변환을 수행함으로써 재구축된 잔차 블록을 생성할 수 있다. 양자화된 계수에 대한 역양자화 및 역변환이 수행된 결과로서, 재구축된 잔차 블록이 생성될 수 있다. 이때, 역양자화부(220)는 재구축된 잔차 블록을 생성함에 있어서 양자화된 계수에 양자화 행렬을 적용할 수 있다.
인트라 모드가 사용되는 경우, 인트라 예측부(240)는 대상 블록 주변의 이미 복호화된 블록의 픽셀 값을 이용하는 공간적 예측을 수행함으로써 예측 블록을 생성할 수 있다.
인터 예측부(250)는 움직임 보상부를 포함할 수 있다. 또는, 인터 예측부(250)는 움직임 보상부로 명명될 수 있다.
인터 모드가 사용되는 경우, 움직임 보상부는 움직임 벡터 및 참조 픽처 버퍼(270)에 저장된 참조 영상을 이용하는 움직임 보상을 수행함으로써 예측 블록을 생성할 수 있다.
움직임 보상부는 움직임 벡터가 정수가 아닌 값을 가진 경우, 참조 영상 내의 일부 영역에 대해 보간 필터를 적용할 수 있고, 보간 필터가 적용된 참조 영상을 사용하여 예측 블록을 생성할 수 있다. 움직임 보상부는 움직임 보상을 수행하기 위해 CU를 기준으로 CU에 포함된 PU를 위해 사용되는 움직임 보상 방법이 스킵 모드, 머지 모드, AMVP 모드 및 현재 픽처 참조 모드 중 어떤 모드인가를 결정할 수 있고, 결정된 모드에 따라 움직임 보상을 수행할 수 있다.
재구축된 잔차 블록 및 예측 블록은 가산기(255)를 통해 더해질 수 있다. 가산기(255)는 재구축된 잔차 블록 및 예측 블록을 더함으로써 재구축된 블록을 생성할 수 있다.
재구축된 블록은 필터부(260)를 거칠 수 있다. 필터부(260)는 디블록킹 필터, SAO 및 ALF 중 적어도 하나를 재구축된 블록 또는 재구축된 영상에 적용할 수 있다. 재구축된 영상은 재구축된 블록을 포함하는 픽처일 수 있다.
필터부(260)를 거친 재구축된 영상은 부호화 장치(100)에 의해 출력될 수 있으며, 부호화 장치(100)에 의해 사용될 수 있다.
필터부(260)를 거친 재구축된 영상은 참조 픽처 버퍼(270)에 참조 픽처로서 저장될 수 있다. 필터부(260)를 거친 재구축된 블록은 참조 픽처의 일부일 수 있다. 말하자면, 참조 픽처는 필터부(260)를 거친 재구축된 블록들로 구성된 영상일 수 있다. 저장된 참조 픽처는 이후 인터 예측을 위해 사용될 수 있다.
도 3은 일 실시예에 따른 부호화 장치의 구조도이다.
부호화 장치(300)는 전술된 부호화 장치(100)에 대응할 수 있다.
부호화 장치(300)는 버스(390)를 통하여 서로 통신하는 처리부(310), 메모리(330), 사용자 인터페이스(User Interface; UI) 입력 디바이스(350), UI 출력 디바이스(360) 및 저장소(storage)(340)를 포함할 수 있다. 또한, 부호화 장치(300)는 네트워크(399)에 연결되는 통신부(320)를 더 포함할 수 있다.
처리부(310)는 중앙 처리 장치(Central Processing Unit; CPU), 메모리(330) 또는 저장소(340)에 저장된 프로세싱(processing) 명령어(instruction)들을 실행하는 반도체 장치일 수 있다. 처리부(310)는 적어도 하나의 하드웨어 프로세서일 수 있다.
처리부(310)는 부호화 장치(300)로 입력되거나, 부호화 장치(300)에서 출력되거나, 부호화 장치(300)의 내부에서 사용되는 신호, 데이터 또는 정보의 생성 및 처리를 수행할 수 있고, 신호, 데이터 또는 정보에 관련된 검사, 비교 및 판단 등을 수행할 수 있다. 말하자면, 실시예에서 데이터 또는 정보의 생성 및 처리와, 데이터 또는 정보에 관련된 검사, 비교 및 판단은 처리부(310)에 의해 수행될 수 있다.
처리부(310)는 인터 예측부(110), 인트라 예측부(120), 스위치(115), 감산기(125), 변환부(130), 양자화부(140), 엔트로피 부호화부(150), 역양자화부(160), 역변환부(170), 가산기(175), 필터부(180) 및 참조 픽처 버퍼(190)를 포함할 수 있다.
인터 예측부(110), 인트라 예측부(120), 스위치(115), 감산기(125), 변환부(130), 양자화부(140), 엔트로피 부호화부(150), 역양자화부(160), 역변환부(170), 가산기(175), 필터부(180) 및 참조 픽처 버퍼(190) 중 적어도 일부는 프로그램 모듈들일 수 있으며, 외부의 장치 또는 시스템과 통신할 수 있다. 프로그램 모듈들은 운영 체제, 응용 프로그램 모듈 및 기타 프로그램 모듈의 형태로 부호화 장치(300)에 포함될 수 있다.
프로그램 모듈들은 물리적으로는 여러 가지 공지의 기억 장치 상에 저장될 수 있다. 또한, 이러한 프로그램 모듈 중 적어도 일부는 부호화 장치(300)와 통신 가능한 원격 기억 장치에 저장될 수도 있다.
프로그램 모듈들은 일 실시예에 따른 기능 또는 동작을 수행하거나, 일 실시예에 따른 추상 데이터 유형을 구현하는 루틴(routine), 서브루틴(subroutine), 프로그램, 오브젝트(object), 컴포넌트(component) 및 데이터 구조(data structure) 등을 포괄할 수 있지만, 이에 제한되지는 않는다.
프로그램 모듈들은 부호화 장치(300)의 적어도 하나의 프로세서(processor)에 의해 수행되는 명령어(instruction) 또는 코드(code)로 구성될 수 있다.
처리부(310)는 인터 예측부(110), 인트라 예측부(120), 스위치(115), 감산기(125), 변환부(130), 양자화부(140), 엔트로피 부호화부(150), 역양자화부(160), 역변환부(170), 가산기(175), 필터부(180) 및 참조 픽처 버퍼(190)의 명령어 또는 코드를 실행할 수 있다.
저장부는 메모리(330) 및/또는 저장소(340)를 나타낼 수 있다. 메모리(330) 및 저장소(340)는 다양한 형태의 휘발성 또는 비휘발성 저장 매체일 수 있다. 예를 들면, 메모리(330)는 롬(ROM)(331) 및 램(RAM)(332) 중 적어도 하나를 포함할 수 있다.
저장부는 부호화 장치(300)의 동작을 위해 사용되는 데이터 또는 정보를 저장할 수 있다. 실시예에서, 부호화 장치(300)가 갖는 데이터 또는 정보는 저장부 내에 저장될 수 있다.
예를 들면, 저장부는 픽처, 블록, 리스트, 움직임 정보, 인터 예측 정보 및 비트스트림 등을 저장할 수 있다.
부호화 장치(300)는 컴퓨터에 의해 독출(read)될 수 있는 기록 매체를 포함하는 컴퓨터 시스템에서 구현될 수 있다.
기록 매체는 부호화 장치(300)가 동작하기 위해 요구되는 적어도 하나의 모듈을 저장할 수 있다. 메모리(330)는 적어도 하나의 모듈을 저장할 수 있고, 적어도 하나의 모듈이 처리부(310)에 의하여 실행되도록 구성될 수 있다.
부호화 장치(300)의 데이터 또는 정보의 통신과 관련된 기능은 통신부(320)를 통해 수행될 수 있다.
예를 들면, 통신부(320)는 비트스트림을 후술될 복호화 장치(400)로 전송할 수 있다.
도 4은 일 실시예에 따른 복호화 장치의 구조도이다.
복호화 장치(400)는 전술된 복호화 장치(200)에 대응할 수 있다.
복호화 장치(400)는 버스(490)를 통하여 서로 통신하는 처리부(410), 메모리(430), 사용자 인터페이스(User Interface; UI) 입력 디바이스(450), UI 출력 디바이스(460) 및 저장소(storage)(440)를 포함할 수 있다. 또한, 복호화 장치(400)는 네트워크(499)에 연결되는 통신부(420)를 더 포함할 수 있다.
처리부(410)는 중앙 처리 장치(Central Processing Unit; CPU), 메모리(430) 또는 저장소(440)에 저장된 프로세싱(processing) 명령어(instruction)들을 실행하는 반도체 장치일 수 있다. 처리부(410)는 적어도 하나의 하드웨어 프로세서일 수 있다.
처리부(410)는 복호화 장치(400)로 입력되거나, 복호화 장치(400)에서 출력되거나, 복호화 장치(400)의 내부에서 사용되는 신호, 데이터 또는 정보의 생성 및 처리를 수행할 수 있고, 신호, 데이터 또는 정보에 관련된 검사, 비교 및 판단 등을 수행할 수 있다. 말하자면, 실시예에서 데이터 또는 정보의 생성 및 처리와, 데이터 또는 정보에 관련된 검사, 비교 및 판단은 처리부(410)에 의해 수행될 수 있다.
처리부(410)는 엔트로피 복호화부(210), 역양자화부(220), 역변환부(230), 인트라 예측부(240), 인터 예측부(250), 스위치(245), 가산기(255), 필터부(260) 및 참조 픽처 버퍼(270)를 포함할 수 있다.
엔트로피 복호화부(210), 역양자화부(220), 역변환부(230), 인트라 예측부(240), 인터 예측부(250), 스위치(245), 가산기(255), 필터부(260) 및 참조 픽처 버퍼(270) 중 적어도 일부는 프로그램 모듈들일 수 있으며, 외부의 장치 또는 시스템과 통신할 수 있다. 프로그램 모듈들은 운영 체제, 응용 프로그램 모듈 및 기타 프로그램 모듈의 형태로 복호화 장치(400)에 포함될 수 있다.
프로그램 모듈들은 물리적으로는 여러 가지 공지의 기억 장치 상에 저장될 수 있다. 또한, 이러한 프로그램 모듈 중 적어도 일부는 복호화 장치(400)와 통신 가능한 원격 기억 장치에 저장될 수도 있다.
프로그램 모듈들은 일 실시예에 따른 기능 또는 동작을 수행하거나, 일 실시예에 따른 추상 데이터 유형을 구현하는 루틴(routine), 서브루틴(subroutine), 프로그램, 오브젝트(object), 컴포넌트(component) 및 데이터 구조(data structure) 등을 포괄할 수 있지만, 이에 제한되지는 않는다.
프로그램 모듈들은 복호화 장치(400)의 적어도 하나의 프로세서(processor)에 의해 수행되는 명령어(instruction) 또는 코드(code)로 구성될 수 있다.
처리부(410)는 엔트로피 복호화부(210), 역양자화부(220), 역변환부(230), 인트라 예측부(240), 인터 예측부(250), 스위치(245), 가산기(255), 필터부(260) 및 참조 픽처 버퍼(270)의 명령어 또는 코드를 실행할 수 있다.
저장부는 메모리(430) 및/또는 저장소(440)를 나타낼 수 있다. 메모리(430) 및 저장소(440)는 다양한 형태의 휘발성 또는 비휘발성 저장 매체일 수 있다. 예를 들면, 메모리(430)는 롬(ROM)(431) 및 램(RAM)(432) 중 적어도 하나를 포함할 수 있다.
저장부는 복호화 장치(400)의 동작을 위해 사용되는 데이터 또는 정보를 저장할 수 있다. 실시예에서, 복호화 장치(400)가 갖는 데이터 또는 정보는 저장부 내에 저장될 수 있다.
예를 들면, 저장부는 픽처, 블록, 리스트, 움직임 정보, 인터 예측 정보 및 비트스트림 등을 저장할 수 있다.
복호화 장치(400)는 컴퓨터에 의해 독출(read)될 수 있는 기록 매체를 포함하는 컴퓨터 시스템에서 구현될 수 있다.
기록 매체는 복호화 장치(400)가 동작하기 위해 요구되는 적어도 하나의 모듈을 저장할 수 있다. 메모리(430)는 적어도 하나의 모듈을 저장할 수 있고, 적어도 하나의 모듈이 처리부(410)에 의하여 실행되도록 구성될 수 있다.
복호화 장치(400)의 데이터 또는 정보의 통신과 관련된 기능은 통신부(420)를 통해 수행될 수 있다.
예를 들면, 통신부(420)는 부호화 장치(300)로부터 비트스트림을 수신할 수 있다.
인지 특성에 기반한 영상 압축
후술될 실시예에서는 사람의 인지 특성을 이용하여 영상 부호화에 있어서 인지적으로 불필요한 인지 중복성을 감소시키는 방식을 통해 인지 화질의 저하 없이 압축율을 향상시키는 방법이 설명된다.
실시예에서는 원본 영상 및 대상 영상 간의 차이를 정의하는 제1 JND 뿐만 아니라 영상의 압축 과정에서 생성되는 재구축된 영상 및 대상 영상 간의 차이를 정의할 수 있는 다양한 레벨들의 JND들이 정의될 수 있다. 이러한 정의에 따라, 영상의 압축 과정에서 재구축된 영상이 JND 레벨 1에서 정의된 임계치를 넘어서는 경우에도 다른 JND 레벨에서 정의된 JND 임계치를 사용함으로써 압축률이 향상될 수 있다.
또한, 실시예에 따르면 영상의 압축 과정에서 인지 중복성 제거를 통해 인지 화질의 저하 없이 압축률이 향상될 수 있다.
도 5은 일 예에 따른 JND 포지션 및 JND 구간을 설명한다.
일반적으로 영상의 화질의 왜곡에 대한 사람의 인지 시각 특성에 따르면, 도 5에서 도시된 것과 같이 특정한 비트레이트 구간(range) 내에서는 왜곡 값이 변하여도 사람은 동일한 왜곡 또는 동일한 화질의 영상으로 인지한다.
JND 포지션(position)은 일반적으로 사람이 비교 대상과의 차이를 느끼기 시작하는 지점을 나타낸다.
제1 JND 포지션은 사람이 원본 영상에 비해 차이 또는 변화를 느끼기 시작하는 지점을 의미한다.
제2 JND 포지션은 사람이 제1 JND 포지션에서의 영상에 비해 다시 차이 또는 변화를 느끼는 지점을 의미한다.
말하자면, 제1 JND 포지션 및 제2 JND 포지션 등은 사람이 인지 왜곡의 변화를 느끼는 지점을 의미할 수 있다.
JND 구간은 왜곡 값이 변하더라도 사람은 동일한 영상이라고 인식하는 왜곡 값의 구간일 수 있다. 말하자면, 하나의 JND 구간 내에서는 영상의 비트레이트나 왜곡 값이 변하더라도 사람은 동일한 화질의 영상으로 인지한다.
JND 포지션은 영상의 특성에 따라 다르게 나타난다. 제1 JND 포지션에 대한 모델링이 널리 이루어진 바 있다.
도 6은 일 예에 따른 JND 임계치를 이용한 양자화를 나타낸다.
JND 임계치는 원본 영상 또는 비교 대상 영상을 특정 JND 포지션까지 이르게 하는 왜곡 값을 의미할 수 있다.
JND 임계치는 입력 영상의 공간 영역 또는 주파수 영역에서 특정 왜곡 값이 감해지거나 가해졌을 경우, 대부분의 사람들이 인지 화질의 차이를 느끼지 못하는 크기의 왜곡 값일 수 있다.
예를 들어, 도 6에서 도시된 것과 같이, 영상에 제1 JND 임계치에 해당하는 값이 감해지거나 가해졌을 경우, 영상의 왜곡이 제1 JND 포지션에 이를 수 있다. 말하자면, 제1 JND 임계치는 영상으로부터 감해지거나, 영상에 가해졌을 때 영상의 왜곡이 제1 JND 포지션에 도달하게 하는 값일 수 있다.
즉, 도 6에서 도시된 것과 같이, 영상에 제1 JND 임계치보다 더 작은 값이 감해지거나 가해졌을 경우, 영상에 대해 전통 방식으로 측정된 왜곡 값은 변할 수 있지만, 영상의 인지 왜곡 값은 변하지 않을 수 있다.
예를 들면, 전통 방식은 절대 차이 합(Sum of Absolute Difference; SAD) 및 평균 제곱 오차(Mean Squared Error; MSE) 등올 포함할 수 있다.
JND 임계치는 영상에 대한 인지 특성에 따라 변할 수 있다. 압축에 사용되는 JND 임계치 모델은 주로 입력 영상으로부터 특정 왜곡을 빼서 정보(말하자면, 인지 중복성)를 감소시키는 방식으로 만들어지며, 주파수 영역에서 주파수 값의 크기를 JND 임계치만큼 감소시켜 영상의 화질은 유지하면서 부호화된 영상을 위한 부호화 비트를 감소시키는 방법이 사용될 수 있다.
도 7은 일 예에 따른 주파수 영역에서의 JND 임계치를 나타낸다.
도 7는 주파수 영역에서의 JND 임계치들을 예시한다. 영상에서 영상의 주파수 계수에 대응하는 JND 임계치가 감해지더라도 시청자는 입력 영상에서의 인지 화질 변화를 거의 느낄 수 없다.
전술된 것과 같이, 영상 압축에서는 일반적으로 원본 영상 및 압축된 영상 간의 인지 화질 차이를 최소화하는 제1 JND 임계치 만이 사용될 수 있다.
영상 압축 과정에서의 양자화 파라미터(Quantization Parameter; QP)의 값이 제1 JND 임계치를 넘는 경우, 재구축된 영상의 화질 및 원본 영상의 화질 간의 차이가 발생하게 되고, 제1 JND 임계치의 효용이 없어질 수 있다.
이러한 경우에도, 재구축된 영상의 화질이 최종적인 영상 화질의 기준이 된다면, 재구축된 영상의 화질이 속하는 JND 구간이 도출되고, 도출된 JND 구간에 대한 JND 임계치를 사용하는 추가의 양자화가 영상의 압축에 적용될 수 있다. 이러한 압축을 통해 압축율이 향상될 수 있다.
실시예들에서는 사람의 인지 특성을 이용하여 제1 JND 임계치 및 제1 JND 포지션뿐만 아니라 제2 및 제3와 같은 다양한 레벨들의 JND 임계치 및 JND 포지션을 모델링하는 방법과, 입력 영상 및 재구축된 영상의 JND 구간을 결정하는 방법이 제시된다.
도 8은 일 실시예에 따른 영상 처리 방법의 흐름도이다.
실시예의 영상 처리 방법은 인지 특성에 기반한 영상 부호화 방법 또는 인지 특성에 기반한 영상 압축 방법으로 간주될 수 있다.
처리부(310)는 양자화부(140)일 수 있다.
단계(810)에서, 처리부(310)는 다중 레벨 JND 임계치들 및 다중 레벨 JND 구간들에 대한 모델링을 수행할 수 있다.
다중 레벨 JND 구간들은 제1 JND뿐만 아니라 제2 JND 및 제3 JND 등과 같은 복수의 JND들에 대한 복수의 JND 구간들을 의미할 수 있다.
다중 레벨 JND 임계치들은 복수의 JND들에 대한 복수의 구간들 또는 JND 포지션들에 이르게 하는 복수의 임계치들을 의미할 수 있다.
JND 포지션 및 JND 구간은 주관적 화질 평가를 통해 사람들이 화질의 열화를 인지하는 시점을 토대로 결정될 수 있고, JND 임계치는 JND 포지션이나 JND 구간에 속하는 영상 및 원본 영상 간의 차이를 모델링하는 형태로 만들어질 수 있다.
실시예에서, JND 임계치는 영상에 대한 사람의 인지 특성을 고려하여 결정될 수 있고, JND 임계치의 크기는 영상의 특성에 따라서 변할 수 있다.
단계(810)는 단계(811) 및 단계(812)의 적어도 하나를 포함할 수 있다.
단계(811)에서, 처리부(310)는 주관적 화질 평가 및 수학적 모델링을 이용하여 다중 레벨 JND 임계치들 및 다중 레벨 JND 구간들에 대한 모델링을 수행할 수 있다.
단계(812)에서, 처리부(310)는 기계 학습을 이용하여 다중 레벨 JND 임계치들 및 다중 레벨 JND 구간들에 대한 모델링을 수행할 수 있다.
단계들(820 및 830)에서, 처리부(310)는 입력 영상의 인지 특성을 분석할 수 있다.
입력 영상은 재구축된 영상일 수 있다.
단계(820)에서, 처리부(310)는 입력 영상 및 원본 영상 간의 차이 값을 도출할 수 있다.
단계(820)는 단계(821) 및 단계(822)의 적어도 하나를 포함할 수 있다.
단계(821)에서, 처리부(310)는 입력 영상의 픽셀들 및 원본 영상의 픽셀들 간의 차이 값들의 합을 이용하여 입력 영상 및 원본 영상 간의 차이 값을 계산할 수 있다.
단계(822)에서, 처리부(310)는 입력 영상의 픽셀들 및 원본 영상의 픽셀들 간의 차이 값들의 가중치가 부여된 합(weighted-sum)을 이용하여 입력 영상 및 원본 영상 간의 차이 값을 계산할 수 있다.
단계(830)에서, 처리부(310)는 도출된 입력 영상 및 원본 영상 간의 차이 값을 사용하여 입력 영상이 단계(810)에서 모델링된 다중 레벨 JND 구간들 및 다중 레벨 JND 임계치들 중 어느 JND 구간 및 어느 JND 임계치에 해당하는지를 결정할 수 있다.
입력 영상에 대한 JND 구간을 결정함에 있어서, 입력 영상의 인지 특성에 따라서 입력 영상에 해당하는 JND 구간 및 JND 임계치가 달라질 수 있다.
예를 들면, 2 개의 복원 영상들의 원본 영상과의 차이 값들이 동일한 경우에도, 입력 영상들의 인지 특성들에 따라 입력 영상들에 대응하는 JND 구간들 및 JND 임계치들이 서로 다를 수 있음.
단계(830)는 단계(831), 단계(832), 단계(833) 및 단계(834)의 적어도 하나를 포함할 수 있다.
단게(831)에서, 처리부(310)는 입력 영상의 대비 민감도 특성을 사용하여 입력 영상에 대응하는 JND 구간 및 JND 임계치를 결정할 수 있다.
단게(832)에서, 처리부(310)는 입력 영상의 마스킹 특성을 사용하여 입력 영상에 대응하는 JND 구간 및 JND 임계치를 결정할 수 있다.
단게(833)에서, 처리부(310)는 입력 영상의 주의 및 집중 특성을 사용하여 입력 영상에 대응하는 JND 구간 및 JND 임계치를 결정할 수 있다.
단게(834)에서, 처리부(310)는 입력 영상의 경계(edge) 및 텍스처 정보를 사용하여 입력 영상에 대응하는 JND 구간 및 JND 임계치를 결정할 수 있다.
단계(840)는, 처리부(310)는 결정된 JND 임계치를 이용하여 입력 영상에 대한 양자화를 수행할 수 있다.
상기의 양자화는 재구축된 영상인 입력 영상에 대한 추가 양자화일 수 있다.
추가 양자화를 수행함에 따라 입력 영상의 왜곡 값은 입력 영상의 다음의 레벨의 JND 포지션으로 이동할 수 있고, 이러한 이동을 통해 인지 화질은 유지하면서 비트레이트는 감소될 수 있다.
전술된 양자화로 생성된 재구축된 영상에 대한 복호화가 복호화 장치(200)에 의해 수행될 수 있다. 또한, 전술된 양자화에 대응하는 역양자화가 복호화 장치(200)의 역양자화부(220)에 의해 이루어질 수 있다.
도 9는 일 예에 따른 다중 레벨 JND 포지션들을 나타낸다.
도 8을 참조하여 전술된 단계(810)의 다중 레벨 JND 임계치들 및 다중 레벨 JND 구간들에 대한 모델링이 설명된다.
단계(810)에서, 처리부(310)는 JND 구간, JND 포지션 및 JND 임계치의 모델링을 수행할 수 있다. 상기의 모델링은 1) 주관적 화질 평가 및 수학적 모델링을 사용하는 방법 및 2) 기계 학습을 사용하는 방법으로 나뉠 수 있다.
주관적 화질 평가 및 수학적 모델링을 사용하는 방법
처리부(310)는 원본 영상의 열화의 크기를 키워가면서 다양한 영상들을 생성할 수 있다. 처리부(310)는 생성된 영상들에 대한 주관적 화질 평가를 통해 원본 영상에 대응하는 다중 레벨 JND 포지션들의 각 JND 포지션에 해당하는 영상을 도출할 수 있다.
예를 들면, 다중 레벨 JND 포지션들은 제1 JND 포지션, 제2 JND 포지션 및 제3 포지션을 포함할 수 있다.
처리부(310)는 각각의 JND 포지션에 해당하는 영상 및 원본 영상과의 차이의 분석을 통해 실제로 각각의 JND 포지션에 이르는 차이 값을 결정할 수 있다.
예를 들면, JND 포지션에 대한 차이 값은 원본 영상 및 JND 포지션에 해당하는 복원 영상 간의 공간 영역 및 주파수 영역에서의 차이 값들을 단순히 합한 값일 수 있다. 또한, 이러한 차이 값들의 합이 JND 포지션 및 JND 구간에 이르게 하는 JND 임계치로 정의될 수 있다.
영상 A 및 영상 B 간의 공간 영역에서의 차이 값들의 합은 아래의 수식 2와 같이 정의될 수 있다.
[수식 2]
Figure pat00002
영상 A 및 영상 B 간의 주파수 영역에서의 차이 값들의 합은 아래의 수식 3과 같이 정의될 수 있다.
[수식 3]
Figure pat00003
MATD는 절대 변환된 차이의 평균(mean of absoluted transformed differences)를 나타낼 수 있다.
SATD는 절대 변환된 차이의 합(sum of absoluted transformed differences)를 나타낼 수 있다.
SSTE는 변환된 오류들의 제곱의 합(sum of squared transformed errors)를 나타낼 수 있다.
Diff(i,j)는 아래의 수식 4와 같이 정의될 수 있다.
[수식 4]
Figure pat00004
DiffT(i,j)는 아래의 수식 5와 같이 정의될 수 있다.
i 및 j는 공간 영역에서의 영상의 픽셀의 좌표들을 나타낼 수 있다. 영상(i, j)는 영상에서의 좌표들이 (i, j)인 픽셀의 값을 나타낼 수 있다.
[수식 5]
Figure pat00005
i 및 j는 주파수 영역에서의 영상의 픽셀의 좌표들을 나타낼 수 있다.
도 10은 일 예에 따른 주파수 계수 위치에 따른 제1 JND 임계치를 나타낸다.
도 11은 일 예에 따른 주파수 계수 위치에 따른 제2 JND 임계치를 나타낸다.
주파수 도메인에 대해서는, 주파수 계수 별로 변환(transform)된 원본 영상 및 특정 JND에 해당하는 열화된 영상 간의 차이가 모델링될 수 있다. 각 JND 포지션에 대해서 원본 영상의 주파수 계수 및 열화된 영상 간의 주파수 계수 간의 차이 값이 상기의 특정 JND의 JND 포지션 및 JND 구간에 이르게 하는 JND 임계치로 설정될 수 있다.
예를 들면, 원본 영상 및 특정 JND 포지션에 해당하는 영상의 주파수 영역에서의 대응하는 계수들 간의 차이가 단순 평균이나 선형회귀 같은 수학적 모델링을 통해 도 10 및 도 11과 같이 모델링될 수 있다.
도 10은 원본 영상 및 제1 JND 포지션에 해당하는 영상의 대응하는 계수들 간의 차이를 나타낼 수 있다.
도 11은 원본 영상 및 제2 JND 포지션에 해당하는 영상의 대응하는 계수들 간의 차이를 나타낼 수 있다.
이러한 차이가 JND 포지션에 해당되는 JND 임계치라고 볼 수 있다.
만일, 원본 영상 및 열화된 영상(말하자면, 복원된 영상)의 주파수 영역에서의 대응하는 계수들 간의 차이가 앞서 정의된 제1 JND 임계치 보다 더 작다면 열화된 영상의 화질 또는 왜곡은 제1 JND 구간 내에 있다고 볼 수 있다.
기계 학습을 사용하는 방법
도 12는 일 예에 따른 기계 학습 기반의 네트워크 학습 단계를 나타낸다.
처리부(310)는 원본 영상의 열화의 크기를 키워가면서 다양한 영상들을 생성할 수 있다. 처리부(310)는 생성된 영상들에 대한 주관적 화질 평가를 통해 원본 영상에 대응하는 다중 레벨 JND 포지션들의 각 JND 포지션에 해당하는 영상을 도출할 수 있다.
예를 들면, 다중 레벨 JND 포지션들은 제1 JND 포지션, 제2 JND 포지션 및 제3 포지션을 포함할 수 있다.
처리부(310)는 기계 학습 기반 네트워크를 포함할 있고, 또는 기계 학습 기반 네트워크를 운영할 수 있다.
기계 학습 기반 네트워크는 원본 영상 및 다중 레벨 JND 포지션들에 해당하는 영상들을 사용하는 다양한 기계 학습을 수행할 수 있다.
도 13은 일 예에 따른 기계 학습 기반의 네트워크를 이용한 JND 구간의 파악을 나타낸다.
기계 학습 기반 네트워크가 도 12를 참조하여 설명된 것과 같은 학습을 수행하면, 기계 학습 기반 네트워크는 기계 학습 기반 네트워크에 입력된 영상에 대하여 다중 레벨 JND 포지션들 및 다중 레벨 JND 구간들 중 입력된 영상이 해당되는 JND 포지션 및/또는 JND 구간을 분류 및 출력할 수 있다.
입력 영상에 대한 특성 분석을 통한 JND 임계치 및 JND 구간의 결정
도 14는 일 예에 따른 입력 영상의 8x8 DCT 계수들을 나타낸다.
도 15는 일 예에 따른 입력 영상에 대한 인지 특성 분석을 나타낸다.
도 8을 참조하여 전술된 단계(820)에서, 처리부(310)는 입력 영상 및 원본 영상 간의 차이 값을 도출할 수 있다.
처리부(310)는 입력 영상(즉, 재구축된 영상)의 JND 구간을 찾기 위해 차이 값을 계산할 수 있으며 아래와 같은 방식들을 사용할 수 있다.
처리부(310)는 차이 값들의 합을 사용하여 입력 영상의 JND 구간을 찾을 수 있다.
입력 영상이 영상 A이고, 원본 영상이 영상 B일 때, 영상 A 및 영상 B 간의 공간 영역에서의 차이 값들의 합은 아래의 수식 6과 같이 정의될 수 있다.
[수식 6]
Figure pat00006
영상 A 및 영상 B 간의 주파수 영역에서의 차이 값들의 합은 아래의 수식 7와 같이 정의될 수 있다.
[수식 7]
Figure pat00007
MATD는 절대 변환된 차이의 평균(mean of absoluted transformed differences)를 나타낼 수 있다.
SATD는 절대 변환된 차이의 합(sum of absoluted transformed differences)를 나타낼 수 있다.
SSTE는 변환된 오류들의 제곱의 합(sum of squared transformed errors)를 나타낼 수 있다.
Diff(i,j)는 아래의 수식 8과 같이 정의될 수 있다.
[수식 8]
Figure pat00008
DiffT(i,j)는 아래의 수식 9와 같이 정의될 수 있다.
i 및 j는 공간 영역에서의 영상의 픽셀의 좌표들을 나타낼 수 있다. 영상(i, j)는 영상에서의 좌표들이 (i, j)인 픽셀의 값을 나타낼 수 있다.
[수식 9]
Figure pat00009
i 및 j는 주파수 영역에서의 영상의 픽셀의 좌표들을 나타낼 수 있다.
처리부(310)는 차이 값들의 가중치가 부여된 합을 사용하여 입력 영상의 JND 구간을 찾을 수 있다.
처리부(310)는 전술된 수식 5 내지 수식 9의 수식들에 대하여 가중치 항목을 추가할 수 있고, 차이 값들의 가중치가 부여된 합을 정의할 수 있다.
예를 들면, 주파수 영역에서의 차이 값이 사용될 경우, 사람의 인지 특성 상 사람이 고주파 변화에 둔감하다는 점에 근거하여 고주파 영역의 차이 값에 대해서는 저주파 영역의 차이 값에 비해 더 작은 가중치를 부여할 수 있다.
영상 A 및 영상 B 간의 공간 영역에서의 가중치가 부여된 합은 아래의 수식 10과 같이 정의될 수 있다.
[수식 10]
Figure pat00010
Figure pat00011
영상 A 및 영상 B 간의 주파수 영역에서의 가중치가 부여된 합은 아래의 수식 11과 같이 정의될 수 있다.
[수식 11]
Figure pat00012
Figure pat00013
도 16은 인지 특성 분석에 따라 결정된 JND 임계치의 일 예를 도시한다.
도 17은 인지 특성 분석에 따른 JND 임계치의 다른 일 예를 도시한다.
도 8을 참조하여 설명된 단계(830)에서, 처리부(310)는 도출된 입력 영상 및 원본 영상 간의 차이 값의 크기를 사용하여 입력 영상이 단계(810)에 모델링된 다중 레벨 JND 구간들 및 다중 레벨 JND 임계치들 중 어느 JND 구간 및 어느 JND 임계치에 해당하는지를 결정할 수 있다.
처리부(310)는 입력 영상의 인지 특성을 분석하여 JND 임계치를 계산할 수 있고, 계산된 임계치에 따라 입력 영상의 JND 구간을 정할 수 있다. 이러한 방식에 의해 다양한 인지 특성에 따라서 JND 구간 및 JND 임계치가 다르게 결정될 수 있다.
입력 영상의 인지 특성의 분석을 통한 JND 임계치 JNDThreshold는 JNDBasic 및 가중치들의 곱의 형태로 표현될 수 있다.
JNDBasic는 주관적 화질 평가를 통해 도출된 JND 임계치의 기본값일 수 있다.
가중치들은 입력 영상의 대비 민감도, 마스킹 특성 및 주의 및 집중 특성 등과 같은 다양한 인지 특성을 분석함으로써 도출된 값들일 수 있다.
예를 들면, JND 임계치 JNDThreshold는 아래의 수식 12와 같은 형태로 표현될 수 있다.
[수식 12]
Figure pat00014
JNDBasic는 주관적 화질 평가를 통해 획득된 JND 임계치의 기본값으로, 임계치 행렬일 수 있다.
WContrast는 입력 영상의 대비 민감도 특성을 고려하여 획득된 가중치이며, 가중치 행렬일 수 있다.
WMasking은 입력 영상의 마스킹 특성을 고려하여 획득된 가중치이며, 가중치 행렬일 수 있다.
WAttention은 입력 영상의 주의 및 집중 특성을 고려하여 획득된 가중치이며, 가중치 행렬일 수 있다.
예를 들면, 입력 영상의 마스킹 특성이 큰 경우, 마스킹 특성에 대한 가중치 WMasking의 값이 증가할 수 있으며, 이러한 WMasking의 값의 증가에 의해 JND 임계치가 증가한다.
입력 영상의 인지 특성의 분석에 있어서 사용되는 주요한 인지 특성들
입력 영상의 인지 특성의 분석에 있어서 사용되는 주요한 인지 특성들에 대해 아래에서 설명된다.
1) 대비 민감도(contrast sensitivity) 특성: 사람의 눈의 인지 특성에 따르면, 사람의 눈은 일반적으로 공간 주파수가 낮은 영역 대해서는 대비 변화에 대한 높은 민감도를 갖을 수 있고, 공간 주파수가 높은 영역에 대해서는 대비 변화에 대한 낮은 민감도를 갖을 수 있다.
즉, 사람들은 주파수 도메인(frequency domain)에서 고주파 요소의 변화보다는 저주파 요소의 변화를 더 민감하게 느낄 수 있으며, 특정된 주파수 크기의 이상의 주파수에서는 대비 변화를 거의 느끼지 못할 수 있다.
따라서, 이러한 인지 특성을 이용하여 JND 임계치를 계산할 때, 서로 다른 주파수 영역들에 대해서 서로 다른 가중치들을 각각 부여 할 수 있다. 또한, 차이 값에 대한 주파수 영역들의 가중치들의 합의 크기에 따라, JND 임계치에 곱해지는 가중치의 크기가 달라질 수 있다. 말하자면, JND 임계치에 곱해지는 가중치의 크기는 차이 값에 대한 주파수 영역들의 가중치들의 합의 크기에 기반하여 결정될 수 있다.
2) 대비 마스킹(contrast masking) 특성: 대비 마스킹 특성은 영상 특성에 따란 왜곡의 크기 또는 왜곡의 변화에 사람들의 인지 특성이 달라지는 것을 나타내는 용어일 수 있다. 일반적으로 사람의 인지 특성에 따르면 평탄한 영역에서의 왜곡의 변화는 잘 인지될 수 있지만, 반대로 텍스처가 많은 영역에서는 왜곡의 변화가 잘 인지되지 못할 수 있다.
따라서, 이러한 인지 특성에 기초하여 왜곡 값의 계산에 있어서, 블록들의 텍스처(texture) 및/또는 경계(edge) 특성들에 따라서 블록들에 대한 가중치들이 블록 별로 서로 다를 수 있다. 말하자면, 블록에 대한 가중치는 블록의 텍스처 특성 및/또는 경계 특성에 기반하여 결정될 수 있다.
3) 시간 마스킹(temporal masking) 특성: 시간 마스킹 특성이란 사람의 인지 특성에 따라 영상의 시간 주파수가 올라갈수록 움직임이 빠른 객체에 생기는 왜곡에 대한 인지율이 떨어지는 현상을 나타내는 용어일 수 있다. 이러한 인지 특성에 기초하여 시간 주파수 및 영상에서의 움직임의 크기에 따라서 블록들에 대한 가중치들이 블록 별로 서로 다를 수 있다. 말하자면, 블록에 대한 가중치는 시간 주파수 및 영상에서의 움직임의 크기에 기반하여 결정될 수 있다.
4) 주의 및 집중 특성: 주의 및 집중 특성은 사람의 인지 시각 시스템이 특정 환경이나 객체에 집중하거나 무시하는 현상을 의미하는 용어일 수 있다. 주의 및 집중 특성은 주로 주의를 끄는 팩터(factor)에 따라 아래와 같이 크게 2가지로 분류될 수 있다. 실시예에서는, 영상에 주의 및 집중 팩터가 포함되었는지 여부에 따라서 부과되는 가중치가 변할 수 있다. 말하자면, 가중치는 영상에 주의 및 집중 팩터가 포함되었는지 여부에 기반하여 결정될 수 있다.
4-1) 바텀-업 주의(bottom-up attention) (또는, 리플렉시브(reflexive) 주의 또는 외인성(exogenous) 주의)
바텀-업 주의의 팩터는 저-레벨 현저한 특성/그대로의 감각 입력(Low-level salient feature/raw sensory input)이라고 칭할 수 있다.
바텀-업 주의의 팩터는 잠재적으로 중요성을 가진 특성으로의 주의 이동이 급격하거나 무의식적으로 이루어지도록 하는 팩터를 칭할 수 있다.
바텀-업 주의는 특별한 의도를 가지고 생성된 팩터가 아닌, 컬러, 모양, 움직임, 대비 및 크기 등과 같은 팩터들의 급격한 변화나 두각으로 주의를 끌게 하는 것을 의할 수 있다.
4-2) 톱-다운 주의(top-down attention) (또는, 자발적인(voluntary) 주의 또는 내인성(endogenous) 주의)
톱-다운 주의의 팩터는, 표지판 및 수화 등과 같은 목적 지향적인 인지 팩터일 수 있으며, 사전 지식 또는 특정 기대 등에 의해 주의를 끄는 팩터를 의미할 수 있다.
인지 특성들에 따른 가중치의 부여
아래에서는 전술된 인지 특성들을 사용하여 가중치를 부여하는 구체적인 방법들이 설명된다.
1) 대비 민감도 특성을 사용하는 방법
가중치는 주파수 공간에서의 인지 특성을 고려하여 공간 주파수의 크기에 따라서 부여될 수 있다.
인지적으로 민감한 영역은 아래의 수식 13과 같은 대비 민감도 함수(Contrast Sensitive Function; CSF)에 기반하여 판단될 수 있다.
[수식 13]
Figure pat00015
ω i,j는 주파수 도메인 상의 좌표들 (i, j)에서의 공간 주파수 크기를 나타낼 수 있다.
a, b 및 c는 기정의된 상수일 수 있다. 예를 들면, a는 1.33, b는 0.11 및 c는 0.1일 수 있다.
아래의 수식 14의 8x8 행렬 H i,j(ω i,j)은 전술된 수식 13에서 도출된 결과가, 최대값으로 정규화된 것일 수 있다.
[수식 14]
Figure pat00016
8x8 행렬 H i,j(ω i,j)은 수식 13에 기반한 가중치 행렬일 수 있으며, 대비 민감도 가중치 행렬일 수 있다.
행렬 H i,j(ω i,j)에서 나타난 것과 같이, 주파수 크기가 상대적으로 더 작은 위치에 속하는 요소들은 비교적 큰 값을 가질 수 있다.
행렬 H i,j(ω i,j)과 같이 도출된 대비 민감도의 값이 가중치로 사용될 수 있다.
수식 13은 대비 민감도를 구하기 위한 일 예로, 대비 민감도 특성을 반영하는 다른 형태의 식이 대비 민감도를 결정하기 위해 사용될 수 있다.
행렬 H i,j(ω i,j)와 같은 대비 민감도 가중치 행렬은 기본 JND 임계치들의 임계치 행렬에 곱해지는 가중치 행렬일 수 있다.
2) 마스킹 특성을 이용하는 방법
마스킹 효과는 특정한 신호 또는 특정한 자극에 의해 다른 신호 또는 다른 자극에 대한 인지율이 떨어지거나, 다른 신호 또는 다른 자극이 아예 인지되지 못하게 되는 현상을 의미할 수 있다.
공간 도메인에 있어서, 마스킹 효과는 텍스처가 복잡한 영역에서 발생한 에러(말하자면, 신호)는 평탄한 영역(smooth area)에서 발생한 에러보다 인지하기 어려워지는 현상을 의미할 수 있다.
시간 도메인에 있어서, 마스킹 효과는 연속되는 프레임들 간의 휘도 차이가 더 클수록 상기의 프레임들 내에서 발생한 에러에 대한 인지율이 떨어지는 현상을 의미할 수 있다.
실시예에서는 휘도 마스킹, 대비 마스킹 및 시간 마스킹의 특성을 이용하여 가중치가 결정될 수 있다.
도 18은 일 예에 따른 픽처의 블록들의 휘도 및 가중치를 도시한다.
2-1) 휘도 마스킹 특성을 이용하는 가중치의 결정
도 18에서 도시된 것과 같이, 입력 영상은 복수의 블록들로 분할될 수 있다. 실시예에서, 입력 신호는 블록일 수 있다.
각 블록은 평균 휘도 값을 가질 수 있고, 블록의 평균 휘도 값에 따라서 블록에 가중치가 부여될 수 있다.
블록의 휘도 적응 특성을 고려하여 인지적으로 민감한 영역에 대해 높은 가중치가 부여될 수 있다.
아래의 수식 15와 같이, 블록의 평균 휘도 값에 기반하여 인지적으로 민감한 영역이 판단될 수 있다. 또한, 계산된 평균 휘도 값의 범위에 따라서, 블록에 대한 가중치가 결정될 수 있다.
블록에 대한 가중치는 아래의 수식 15와 같이 결정될 수 있다.
[수식 15]
Figure pat00017
Figure pat00018
는 블록의 평균 휘도 값(average intersity value)일 수 있다.
ω는 블록에 대한 가중치일 수 있다. ω i,j는 블록에 대한 가중치 행렬일 수 있다.
왜곡의 계산을 위한 가중치 또는 가중치 행렬을 구성함에 있어서, 블록의 평균 휘도 값이 어두운 영역이나 밝은 영역의 범위에 속할 경우 블록에 대하여 작은 가중치가 할당될 수 있다.
수식 15에서, ω i,j가 가중치 또는 가중치 행렬일 때, 블록의 평균 휘도 값이 중간 영역에 속할 경우(즉, 블록의 평균 휘도 값이 60 보다 더 크고, 170의 이하인 경우) 블록에 대한 가중치는 1일 수 있다. 블록의 평균 휘도 값이 중간 영역에 속하지 않는 경우 수식 15 내의 수식에 의해 가중치가 정의될 수 있다. 예를 들면, 블록의 평균 휘도 값이 중간 영역에 속하지 않는 경우, 블록에 대한 가중치는 1보다 더 작을 수 있다.
수식 15는 블록에 대한 가중치를 결정하는 일 예일 수 있다. 블록에 대한 가중치를 결정하는 방식은 휘도 적응 특성을 반영하는 다른 형태의 수식으로도 정의될 수 있다.
2-2) 대비 마스킹 특성을 이용하는 가중치의 결정
도 19는 일 예에 따른 픽처의 블록들의 블록 타입 및 가중치를 도시한다.
도 19에서 도시된 것과 같이, 입력 영상은 복수의 블록들로 분할될 수 있다. 실시예에서, 입력 신호는 블록일 수 있다.
블록의 대비 마스킹 특성에 따라서 블록에 가중치가 부여될 수 있다. 블록의 대비 마스킹 특성을 고려하여 인지적으로 민감한 영역에 대해 높은 가중치가 부여될 수 있다.
평균의 경계 픽셀(edge pixel) 밀집도의 크기가 정의될 수 있고, 평균의 경계 픽셀 밀집도의 크기에 기반하여 인지적으로 민감한 영역이 판단될 수 있다. 경계 픽셀 밀집도는 블록의 경계 픽셀의 개수를 나타내거나, 경계 픽셀의 개수에 비례할 수 있다. 또한, 경계 픽셀 밀집도는 블록의 크기에 반비례할 수 있다.
블록의 평균의 경계 픽셀 밀집도
Figure pat00019
는 아래의 수식 16과 같이 결정될 수 있다.
[수식 16]
Figure pat00020
경계 픽셀은 소벨(sobel)이나 캐니(canny)와 같은 경계 픽셀 검출 연산자 등을 통해 검출될 수 있다.
블록의 블록 타입(block type)은 블록의 경계 픽셀 밀집도
Figure pat00021
에 기반하여 결정될 수 있다. 계산된 평균의 경계 픽셀 밀집도
Figure pat00022
가 속하는 범위에 따라서, 블록의 블록 타입이 결정될 수 있다. 블록의 블록 타입에 기반하여 블록에 적용되는 가중치 또는 가중치 행렬이 결정될 수 있다.
블록의 블록 타입은 아래의 수식 17과 같이 결정될 수 있다.
[수식 17]
Figure pat00023
αβ는 실수 값들일 수 있다.
블록의 블록 타입은 수식 17에서 예시된 것과 같이, 평균의 경계 픽셀 밀집도
Figure pat00024
및 기정의된 값들 간의 비교의 결과에 의해 플레인(plane), 경계(edge) 및 텍스처(texture) 중 하나로 분류될 수 있다.
즉, 가중치 행렬을 구성함에 있어서, 입력 신호인 블록 내에 텍스처가 많으면, 화질 저하 또는 왜곡에 대한 인지율이 낮아질 수 있다. 이러한 경우, 사람이 블록에서의 화질 저하 또는 왜곡에 대해서 인지적으로 덜 민감하게 반응한다고 판단되어, 블록에 대하여 낮은 가중치가 설정될 수 있다. 반대로, 입력 신호인 블록 내에 텍스처가 적으면, 블록에 대하여 높은 가중치가 설정될 수 있다.
블록에 대한 가중치는 아래의 수식 18과 같이 설정될 수 있다.
[수식 18]
Figure pat00025
수식 18에서, 블록의 크기는 8x8일 수 있다.
ω는 블록에 대한 가중치일 수 있다. i,j는 블록에 대한 가중치 행렬일 수 있다.
수식 18은 경계 픽셀의 밀집도에 따라서 블록의 가중치가 결정되는 일 예일 수 있다.
블록 타입이 텍스처일 때, 블록의 경계 픽셀의 개수가 특정된 개수(예를 들면, 16 개)를 초과하는 경우, 경계가 있는 블록으로 판단될 수 있다. 블록 타입이 텍스처일 때, 블록의 경계 픽셀의 개수가 특정된 개수의 이하인 경우, 경계가 없는 블록으로 판단될 수 있다.
블록 타입이 텍스처일 때, 경계가 있는 블록에 대해서 경계가 없는 블록에 비해 더 높은 가중치가 부여될 수 있다. 말하자면, 블록 타입이 텍스처로 판명된 블록의 경계 픽셀의 개수가 특정된 개수의 이하인 경우에는, 상기의 블록은 상대적으로 낮은 경계 픽셀 밀집도를 갖는 텍스처 블록으로 인식될 수 있고, 상대적으로 낮은 경계 픽셀 밀집도를 갖는 텍스처 블록으로 인식됨에 따라 낮은 가중치가 부여될 수 있다.
수식 17 및 수식 18은 블록에 대한 블록 타입과, 블록 타입에 따른 가중치를 결정하는 일 예일 수 있다. 블록에 대한 블록 타입과, 블록 타입에 따른 가중치를 결정하는 방식은 대비 마스킹 특성을 반영하는 다른 형태의 수식으로도 정의될 수 있다.
2-3) 시간 마스킹 특성을 이용하는 가중치의 결정
입력 영상은 복수의 블록들로 분할될 수 있다. 실시예에서, 입력 신호는 블록일 수 있다.
블록의 시간 마스킹 특성에 따라서 블록에 가중치가 부여될 수 있다. 블록의 시간 마스킹 특성을 고려하여 인지적으로 민감한 영역에 대해 높은 가중치가 부여될 수 있다.
시간 주파수 특성을 나타내는 프레임레이트 및 블록의 움직임 벡터의 상관 관계를 통해 인지적으로 민감한 영역이 판단될 수 있다.
즉, 가중치 행렬을 구성함에 있어서, 입력 영상의 프레임레이트 및 블록의 움직임 벡터의 절대 크기가 클수록 화질 저하 또는 왜곡에 대한 인지율이 낮아질 수 있다. 이러한 경우, 사람이 블록에서의 화질 저하 또는 왜곡에 대해서 인지적으로 덜 민감하게 반응한다고 판단되어, 블록에 대하여 낮은 가중치가 설정될 수 있다. 반대로, 입력 영상의 프레임레이트 및 블록의 움직임 벡터의 절대 크기가 작을수록 블록에 대하여 높은 가중치가 설정될 수 있다.
표 1은 프레임레이트 및 블록의 움직임 벡터의 절대 크기에 따른 가중치의 일 예를 나타낸다.
[표 1]
Figure pat00026
표 1은 프레임레이트 및 블록의 움직임 벡터의 절대 크기에 따라서 결정되는 블록에 대한 가중치를 나타낼 수 있다.
표 1에서 나타난 것과 같이, 프레임레이트가 더 커질수록 왜곡 또는 화면 열화에 대한 인지율이 낮아진다고 판단될 수 있고, 이러한 판단에 따라 블록에 더 작은 가중치가 부여될 수 있다. 또한, 움직임 벡터의 절대 크기가 더 커질수록 왜곡 또는 화면 열화에 대한 인지율이 낮아진다고 판단될 수 있고, 이러한 판단에 따라 블록에 더 작은 가중치가 부여될 수 있다.
표 1은 시간 마스킹 특성을 이용하여 프레임레이트 및 움직임 벡터의 절대 크기에 따라 가중치를 결정하는 일 예일 수 있다. 프레임레이트 및 움직임 벡터의 절대 크기에 따른 가중치를 결정하는 방식은 시간 마스킹 특성을 반영하는 다른 형태의 수식으로 정의되거나, 다른 값으로 표현될 수 있다.
3) 주의 및 집중 특성을 이용하는 가중치의 결정
입력 영상 내에 특별한 의도 하에 생성된 것이 아니라 팩터들의 급격한 변화 또는 두각으로 인해 주의를 끄는 컬러, 모양, 움직임, 대비 및 크기 등과 같은 팩터들의 존재 여부에 따라서 가중치가 다르게 결정될 수 있다.
입력 영상 내에 표지판 및 수화 등과 같이 목적 지향적인 인지 팩터로서, 사전 지식 또는 특정 기대에 의해 주의를 끄는 팩터들의 존재 여부에 따라 가중치가 다르게 결정될 수 있다.
예를 들면, 영상 내에서 이러한 팩터들이 나타났을 경우, 이러한 팩터들이 인지 시각적으로 중요한 팩터라고 간주될 수 있고, 이러한 간주에 따라 영상에 낮은 가중치가 부여될 수 있다. 낮은 가중치가 부여되는 경우, JND 임계치가 낮아질 수 있으며, JND 임계치를 이용한 추가 양자화의 크기도 작아지게 될 수 있다.
4) 경계/텍스처 정보를 이용하는 가중치의 결정
도 20은 일 예에 따른 공간 영역에서의 영상의 계수들의 방향성을 나타낸다.
도 21은 일 예에 따른 공간 영역에서 계수의 수직 성분이 강하게 나타났을 경우, 주파수 영역에서의 계수들을 나타낸다.
주파수 영역에서, 주요 계수의 방향성은 공간 영역(즉, 공간 도메인)에서 수직 형태의 경계 및 텍스처로서 많이 나타날 수 있다. 즉, 공간 영역에서 수직 경계 성분이 많이 나타나면, 주파수 영역에서는 수평 성분에 대하여 큰 계수 값(즉, 강한 계수)이 나타낼 수 있다.
이러한 특성을 이용하여, 공간 영역에서의 경계 및 텍스처의 방향성에 따라서 기본의 JND 임계치에 곱해지는 가중치가 다르게 결정될 수 있다.
예를 들면, 공간 영역에서 수직 성분이 강하게 나타났을 경우, 주파수 영역에서 수평 위치에 해당하는 계수들에게 작은 가중치가 부여될 수 있다. 말하자면, 도 20에서 도시된 것과 같이 공간 영역에서 영상의 계수들의 수직 성분이 강하게 나타나는 경우, JND 임계치 모델은 주파수 영역에서 수평 성분에 대한 임계치를 감소시킬 수 있다.
이러한 처리를 통해, JND 임계치를 이용한 양자화 시, 주파수 영역에서 수평 성분에 해당하는 계수들에 대해서는 더 적게 양자화가 적용되게 할 수 있다. 주파수 영역에서 수평 성분에 해당하는 계수들에 대해서 더 적게 양자화를 적용함으로써 공간 영역에서는 수직 성분에 대하여 더 작게 양자화가 되며, 수직 성분에 대한 화질 저하가 감소될 수 있다.
도 22는 일 예에 따른 주파수 영역에서의 제1 JND 임계치를 예시한다.
도 23은 일 예에 따른 주파수 영역에서의 제2 JND 임계치를 예시한다.
전술된 것과 같은 다양한 기준들 및 원리들을 통해 주파수 영역에서의 제1 JND 임계치 및 제2 JND 임계치들이 도출될 수 있다.
JND 임계치는 추가 양자화를 위한 양자화 값과 동일할 수 있다.
도 22 및 도 23에서 도시된 JND 임계치들은 입력 영상 및 재구축된 영상의 인지 특성들에 따라 가중치가 곱해진 결과로서, JND 임계치들의 크기들은 서로 다를 수 있다.
도 24는 일 예에 JND 임계치를 이용하는 추가 양자화를 나타낸다.
도 24에서 도시된 것과 같이, 부호화된 영상에 대하여 JND 임계치를 이용하는 추가 양자화가 수행될 수 있고, JND 임계치를 이용하는 추가 양자화에 의해 인지 화질이 유지되면서도, 부호화된 영상을 위한 비트레이트가 절감될 수 있다.
도 25는 일 예에 따른 주파수 계수의 위치에 따른 양자화 값들을 도시한다.
도 26은 일 예에 따른 재구축된 영상의 8x8 DCT 계수들을 도시한다.
도 26의 재구축된 영상의 DCT 계수들은 도 14의 입력 영상의 DCT 계수들 및 도 25의 주파수 계수의 위치에 따른 양자화 값들 간의 차일 수 있다.
양성 부호화 과정에서, 처리부(310)는 재구축된 영상의 JND 구간을 결정하기 위해 차이 값을 계산할 수 있고, 계산된 차이 값을 JND 임계치와 비교할 수 있다.
전술된 것과 같이, JND 임계치와의 비교를 위한 차이 값은 계수들의 단순 합 또는 가중치가 부여된 합일 수 있다. JND 임계치들 또한 동일한 방법으로 합해짐에 따라 하나의 값으로 표현될 수 있다.
합해진 차이 값들이 제1 JND 임계치들의 합보다 더 작은 경우, 영상은 제1 JND 구간에 속할 수 있고, 제1 JND 임계치가 영상에 대한 추가 양자화 값으로 사용될 수 있다.
합해진 차이 값들이 제1 JND 임계치들의 합보다 더 크고 제2 JND 임계치들의 합보다 더 작은 경우, 영상은 제2 JND 구간에 속할 수 있고, 제2 JND 임계치가 영상에 대한 추가 양자화 값으로 사용될 수 있다.
상술한 실시예들에서, 방법들은 일련의 단계 또는 유닛으로서 순서도를 기초로 설명되고 있으나, 본 발명은 단계들의 순서에 한정되는 것은 아니며, 어떤 단계는 상술한 바와 다른 단계와 다른 순서로 또는 동시에 발생할 수 있다. 또한, 당해 기술 분야에서 통상의 지식을 가진 자라면 순서도에 나타난 단계들이 배타적이지 않고, 다른 단계가 포함되거나, 순서도의 하나 또는 그 이상의 단계가 본 발명의 범위에 영향을 미치지 않고 삭제될 수 있음을 이해할 수 있을 것이다.
이상 설명된 본 발명에 따른 실시예들은 다양한 컴퓨터 구성요소를 통하여 수행될 수 있는 프로그램 명령어의 형태로 구현되어 컴퓨터 판독 가능한 기록 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능한 기록 매체는 프로그램 명령어, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 컴퓨터 판독 가능한 기록 매체에 기록되는 프로그램 명령어는 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 분야의 당업자에게 공지되어 사용 가능한 것일 수도 있다.
컴퓨터 판독 가능한 기록 매체는 본 발명에 따른 실시예들에서 사용되는 정보를 포함할 수 있다. 예를 들면, 컴퓨터 판독 가능한 기록 매체는 비트스트림을 포함할 수 있고, 비트스트림은 본 발명에 따른 실시예들에서 설명된 정보를 포함할 수 있다.
컴퓨터 판독 가능한 기록 매체는 비-일시적 컴퓨터 판독 가능한 매체(non-transitory computer-readable medium)를 포함할 수 있다.
컴퓨터 판독 가능한 기록 매체의 예에는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 ROM, RAM, 플래시 메모리 등과 같은 프로그램 명령어를 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령어의 예에는, 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드도 포함된다. 상기 하드웨어 장치는 본 발명에 따른 처리를 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상에서 본 발명이 구체적인 구성요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나, 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명이 상기 실시예들에 한정되는 것은 아니며, 본 발명이 속하는 기술분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형을 꾀할 수 있다.
따라서, 본 발명의 사상은 상기 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등하게 또는 등가적으로 변형된 모든 것들은 본 발명의 사상의 범주에 속한다고 할 것이다.

Claims (1)

  1. 입력 영상 및 원본 영상 간의 차이 값을 도출하는 단계;
    상기 차이 값을 상기 입력 영상이 다중 레벨 최소한의 감지 가능한 차이(Just Noticeable Difference; JND) 구간들 및 다중 레벨 JND 임계치들 중 어느 JND 구간 및 어느 JND 임계치에 해당하는지를 결정하는 단계; 및
    상기 결정된 JND 임계치를 이용하여 상기 입력 영상에 대한 양자화를 수행하는 단계
    를 포함하는, 영상 처리 방법.
KR1020180148685A 2017-11-28 2018-11-27 인지 특성에 기반한 영상 처리 방법 및 장치 KR20190062284A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020170160067 2017-11-28
KR20170160067 2017-11-28

Publications (1)

Publication Number Publication Date
KR20190062284A true KR20190062284A (ko) 2019-06-05

Family

ID=66844981

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180148685A KR20190062284A (ko) 2017-11-28 2018-11-27 인지 특성에 기반한 영상 처리 방법 및 장치

Country Status (1)

Country Link
KR (1) KR20190062284A (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220057339A (ko) * 2020-10-29 2022-05-09 숙명여자대학교산학협력단 영상의 양자화 방법 및 장치
CN114519668A (zh) * 2022-01-11 2022-05-20 宁波大学 一种自顶向下的自然图像恰可察觉失真阈值估计方法
CN115967806A (zh) * 2023-03-13 2023-04-14 阿里巴巴(中国)有限公司 一种数据帧编码控制方法、系统及电子设备

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220057339A (ko) * 2020-10-29 2022-05-09 숙명여자대학교산학협력단 영상의 양자화 방법 및 장치
CN114519668A (zh) * 2022-01-11 2022-05-20 宁波大学 一种自顶向下的自然图像恰可察觉失真阈值估计方法
CN115967806A (zh) * 2023-03-13 2023-04-14 阿里巴巴(中国)有限公司 一种数据帧编码控制方法、系统及电子设备

Similar Documents

Publication Publication Date Title
US10827173B2 (en) Method and apparatus for quantization
US11277615B2 (en) Intra-prediction method for reducing intra-prediction errors and device for same
KR20240066144A (ko) 채널들 간의 선택적인 정보 공유를 사용하는 부호화 및 복호화를 위한 방법 및 장치
KR20190043482A (ko) 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
KR20190020625A (ko) 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
US20140321552A1 (en) Optimization of Deblocking Filter Parameters
KR20240088650A (ko) 예측 네트워크를 사용하는 영상의 부호화 및 복호화를 위한 방법 및 장치
US20200404302A1 (en) Method and device for processing video signal
KR101808327B1 (ko) 영상 코덱에서 패딩을 이용한 영상 부/복호화 방법 및 장치
KR102005007B1 (ko) 픽쳐 예측 방법 및 관련 장치
KR20190062273A (ko) 영상 변환 신경망 및 영상 역변환 신경망을 이용한 영상 처리 방법 및 장치
US9838690B1 (en) Selective prediction signal filtering
KR20190096281A (ko) 신경망에 기반하는 비디오 부호화 및 비디오 복호화를 위한 방법 및 장치
KR20180061027A (ko) 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
KR102503760B1 (ko) 영상 분석을 이용한 비디오 부호화/복호화 방법 및 장치
KR101782156B1 (ko) 적응적인 디블록킹 필터링을 이용하는 영상 부호화 방법과 영상 복호화 방법 및 장치
US8849022B2 (en) Methods and apparatuses for encoding and decoding image based on segments
KR20190107581A (ko) 인트라 예측 모드의 유도를 위한 방법 및 장치
KR20190062284A (ko) 인지 특성에 기반한 영상 처리 방법 및 장치
KR20190091217A (ko) 시간적 움직임 정보를 이용하는 영상 부호화 및 영상 복호화를 위한 방법 및 장치
AU2018416684B2 (en) Image processing apparatus and image processing method
KR20230145002A (ko) 화면 간 예측을 이용한 영상 복호화 방법 및 장치
KR102242675B1 (ko) 양자화 방법 및 장치
KR20210070942A (ko) 영역 차등적 영상 부호화/복호화를 위한 방법, 장치 및 기록 매체
KR20210061298A (ko) 인지 특성에 기반한 영상 처리 및 인지 화질 향상 방법 및 장치