KR102365685B1 - 인코더의 작동 방법과 상기 인코더를 포함하는 장치들 - Google Patents

인코더의 작동 방법과 상기 인코더를 포함하는 장치들 Download PDF

Info

Publication number
KR102365685B1
KR102365685B1 KR1020150000521A KR20150000521A KR102365685B1 KR 102365685 B1 KR102365685 B1 KR 102365685B1 KR 1020150000521 A KR1020150000521 A KR 1020150000521A KR 20150000521 A KR20150000521 A KR 20150000521A KR 102365685 B1 KR102365685 B1 KR 102365685B1
Authority
KR
South Korea
Prior art keywords
domain
spatial
values
block
quantization
Prior art date
Application number
KR1020150000521A
Other languages
English (en)
Other versions
KR20160084072A (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 삼성전자주식회사
Priority to KR1020150000521A priority Critical patent/KR102365685B1/ko
Priority to US14/970,571 priority patent/US10271050B2/en
Priority to TW104144462A priority patent/TWI688260B/zh
Priority to DE102016200001.2A priority patent/DE102016200001B4/de
Priority to CN201610006220.4A priority patent/CN105763879B/zh
Publication of KR20160084072A publication Critical patent/KR20160084072A/ko
Application granted granted Critical
Publication of KR102365685B1 publication Critical patent/KR102365685B1/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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/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/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • 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/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • 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/182Methods 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 pixel
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/196Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters

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 FOR OPERATING OF ENCODER, AND DEVICES HAVING THE ENCODER}
본 발명의 개념에 따른 실시 예는 인코더에 관한 것으로, 특히 변환 스킵 모드에서 테이블에 저장된 양자화 파라미터들 중에서 공간-영역 잔여 블록의 값들의 대표값에 해당하는 최적의 인코딩 양자화 파라미터를 결정할 수 있는 인코더의 작동 방법과 상기 인코더를 포함하는 장치들에 관한 것이다.
인코더는 정보의 형태나 형식을 표준화(standardization), 보안(secrecy), 처리 속도 향상, 저장 공간 절약 등을 위해서 다른 형태나 형식으로 변환하는 처리 혹은 그 처리 방식을 말한다.
양자화 파라미터는 인코더에서 양자화 정도를 조절할 수 있는 수치를 의미한다. 인코더는 양자화 파라미터를 이용하여 입력 데이터를 양자화할 수 있다. 종래의 인코더는 양자화 파라미터들의 범위 내에서 RDO(rate-distortion optimization) 과정을 통해 최적의 인코딩 양자화 파라미터를 결정했다.
그러나, RDO 과정을 수행하는 인코더는 최적의 인코딩 양자화 파라미터를 결정하기 위해 상당히 많은 계산량을 요구할 뿐만 아니라 상기 인코더에 의해 결정된 양자화 파라미터가 상기 최적의 인코딩 양자화 파라미터라는 보장도 없다.
본 발명이 이루고자 하는 기술적인 과제는 변환 스킵 모드에서 적은 계산량으로 테이블에 저장된 양자화 파라미터들 중에서 공간-영역 잔여 블록의 값들의 대표값에 해당하는 최적의 인코딩 양자화 파라미터를 결정할 수 있는 인코더의 작동 방법과 상기 인코더를 포함하는 장치들을 제공하는 것이다.
본 발명의 실시 예에 따른 인코더의 작동 방법은 공간-영역 현재 블록 값들에 대한 공간-영역 예측 블록 값들을 생성하는 단계와, 상기 공간-영역 현재 블록 값들과 상기 공간-영역 예측 블록 값들의 차이들에 기초하여 공간-영역 잔여 블록 값들을 생성하는 단계와, 상기 공간-영역 잔여 블록 값들의 대표값을 계산하는 단계와, 복수의 양자화 파라미터들 중에서 상기 대표값에 해당하는 하나의 양자화 파라미터를 선택하는 단계와, 상기 선택된 양자화 파라미터를 이용하여 상기 공간-영역 잔여 블록 값들을 양자화하는 단계를 포함한다.
실시 예들에 따라, 상기 대표값을 계산하는 단계는 상기 공간-영역 잔여 블록 값들 각각을 복수의 그룹들 중에서 해당하는 그룹으로 그룹핑하는 단계와, 그룹핑된 값들의 최대 공약수를 계산하는 단계와, 상기 최대 공약수를 상기 대표값으로 결정하는 단계를 포함한다.
상기 그룹핑하는 단계는 상기 공간-영역 잔여 블록 값들 중에서 기준 값보다 작은 값들을 그룹핑에서 제외할 수 있다.
실시 예들에 따라, 상기 대표값을 계산하는 단계는 상기 공간-영역 잔여 블록 값들의 표준 편차를 계산하는 단계와, 상기 표준 편차를 상기 대표값으로 결정하는 단계를 포함한다.
실시 예들에 따라, 상기 대표값을 계산하는 단계는 상기 공간-영역 잔여 블록 값들의 절대값 차이들의 평균(mean of absolute differences(MAD))을 계산하는 단계와, 상기 MAD를 상기 대표값으로 결정하는 단계를 포함한다.
상기 복수의 양자화 파라미터들은 테이블에 저장되어 있다.
실시 예들에 따라, 상기 대표값을 계산하는 단계는 상기 공간-영역 현재 블록 값들의 절대값 차이들의 합(SAD)과 상기 공간-영역 현재 블록 값들로부터 파생된 주파수-영역 값들의 절대값 변환 차이들의 합(sum of absolute transformed differences(SATD))을 계산하는 단계와, 상기 SAD가 상기 SATD를 비교하고, 상기 SAD가 상기 SATD와 같거나 작을 때 제어 신호를 생성하는 단계와, 상기 제어 신호에 응답하여 상기 공간-영역 잔여 블록 값들의 상기 대표값을 계산하는 단계를 포함한다.
상기 인코더의 작동 방법은, 상기 제어 신호에 응답하여, 양자화된 블록 값들을 상기 선택된 양자화 파라미터를 이용하여 역-양자화하는 단계를 더 포함한다.
본 발명의 실시 예에 따른 시스템 온 칩은 제1포맷을 갖는 제1데이터를 제2포맷을 갖는 제2데이터로 변환하는 이미지 신호 프로세서와, 상기 제2포맷을 갖는 상기 제2데이터를 인코드하는 인코더를 포함한다.
상기 인코더는 제1상태와 제2상태 중 어느 하나를 갖는 제어 신호를 생성하고, 상기 제2데이터에 상응하는 공간-영역 현재 블록 값들에 대한 공간-영역 예측 블록 값들을 생성하는 모드 결정 블록과, 상기 공간-영역 현재 블록 값들과 상기 공간-영역 예측 블록 값들의 차이들에 기초하여 공간-영역 잔여 블록 값들을 생성하는 감산기와, 상기 제1상태를 갖는 상기 제어 신호에 응답하여, 상기 공간-영역 잔여 블록 값들의 대표값을 계산하고, 복수의 양자화 파라미터들 중에서 상기 대표값에 해당하는 하나의 양자화 파라미터를 선택하고, 상기 선택된 양자화 파라미터를 이용하여 상기 공간-영역 잔여 블록 값들을 양자화하는 변환/양자화 블록을 포함한다.
상기 변환/양자화 블록은 상기 제1상태를 갖는 상기 제어 신호에 응답하여 상기 공간-영역 잔여 블록 값들을 주파수-영역 값들로 변환하는 변환 작동을 스킵 (skip)하고 상기 공간-영역 잔여 블록 값들의 상기 대표값을 계산하고, 상기 제2상태를 갖는 상기 제어 신호에 응답하여 상기 변환 작동을 수행하고, 수행 결과에 따라 생성된 변환 잔여 블록을 RDO(rate-distortion optimization) 또는 주어진 양자화 파라미터로 양자화할 수 있다.
상기 모드 결정 블록은 상기 공간-영역 현재 블록 값들을 이용하여 제1값을 생성하고 상기 공간 영역 현재 블록 값들로부터 파생된 주파수-영역 값들을 이용하여 제2값을 생성하고, 상기 제1값과 상기 제2값을 비교하고, 상기 제1값이 상기 제2값과 같거나 작을 때 상기 제1상태를 갖는 상기 제어 신호를 생성하고, 그외의 경우 상기 제2상태를 갖는 상기 제어 신호를 생성하는 변환 제어신호 생성기를 포함한다.
상기 제1값은 상기 공간-영역 현재 블록 값들의 절대값 차이들의 합(sum of absolute differences(SAD))이고, 상기 제2값은 상기 주파수-영역 값들의 절대값 변환 차이들의 합(sum of absolute transformed differences(SATD))이다.
본 발명의 실시 예에 따른 모바일 컴퓨팅 장치는 카메라와, 상기 카메라로부터 출력된 제1포맷을 갖는 제1데이터를 제2포맷을 갖는 제2데이터로 변환하는 이미지 신호 프로세서와, 상기 제2포맷을 갖는 상기 제2데이터를 인코드하는 인코더를 포함한다.
상기 인코더는 제1상태와 제2상태 중에서 어느 하나를 갖는 제어 신호를 생성하고, 상기 제2데이터에 상응하는 공간-영역 현재 블록 값들의 공간-영역 예측 블록 값들을 생성하는 모드 결정 블록과, 상기 공간-영역 현재 블록 값들과 상기 공간-영역 예측 블록 값들의 차이들에 기초하여 공간-영역 잔여 블록 값들을 생성하는 감산기와, 상기 제1상태를 갖는 상기 제어 신호에 응답하여, 상기 공간-영역 잔여 블록 값들의 대표값을 계산하고, 복수의 양자화 파라미터들 중에서 상기 대표값에 해당하는 하나의 양자화 파라미터를 선택하고, 상기 선택된 양자화 파라미터를 이용하여 상기 공간-영역 잔여 블록 값들을 양자화하는 변환/양자화 블록을 포함한다.
상기 변환/양자화 블록은 상기 제1상태를 갖는 상기 제어 신호에 응답하여 상기 공간-영역 잔여 블록 값들을 주파수-영역 값들로 변환하는 변환 작동을 스킵(skip)하고 상기 공간-영역 잔여 블록 값들의 상기 대표값을 계산하고, 상기 제2상태를 갖는 상기 제어 신호에 응답하여 상기 변환 작동을 수행하고, 수행 결과에 따라 생성된 변환 잔여 블록을 RDO(rate-distortion optimization) 또는 주어진 양자화 파라미터로 양자화한다.
상기 변환/양자화 블록은 상기 공간-영역 잔여 블록 값들 각각을 복수의 그룹들 중에서 해당하는 그룹으로 그룹핑하고, 그룹핑된 값들의 최대 공약수를 계산하고, 상기 최대 공약수를 상기 대표값으로 결정하고, 상기 변환/양자화 블록은 상기 공간-영역 잔여 블록 값들 중에서 기준 값보다 작은 값들을 그룹핑에서 제외한다.
상기 변환/양자화 블록은 상기 공간-영역 잔여 블록 값들의 표준 편차를 계산하고, 상기 표준 편차를 상기 대표값으로 결정한다.
상기 변환/양자화 블록은 상기 공간-영역 잔여 블록 값들의 절대값 차이들의 평균(mean of absolute difference(MAD))을 계산하고, 상기 MAD를 상기 대표값으로 결정한다.
본 발명의 실시 예에 따른 인코더는 변환 스킵 모드에서 RDO(rate-distortion optimization) 과정을 수행하지 않으므로 인코딩 양자화 파라미터를 결정하는데 필요한 계산량을 줄일 수 있고, 테이블에 저장된 양자화 파라미터들 중에서 공간-영역 잔여 블록 값들의 대표값에 해당하는 최적의 인코딩 양자화 파라미터를 결정할 수 있는 효과가 있다.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 상세한 설명이 제공된다.
도 1은 본 발명의 실시 예에 따른 데이터 처리 시스템의 블록도이다.
도 2는 도 1에 도시된 인코더의 블록도이다.
도 3은 도 2에 도시된 모드 결정 블록의 블록도이다.
도 4는 대표 값들에 해당하는 양자화 파라미터들을 포함하는 테이블의 실시 예이다.
도 5는 도 2에 도시된 감산기의 작동을 설명하는 개념도이다.
도 6은 본 발명의 일 실시 예에 따라 계산된 대표값에 상응하는 양자화 파라미터와 양자화 계수를 나타낸다.
도 7은 본 발명의 다른 실시 예에 따라 계산된 대표값에 상응하는 양자화 파라미터와 양자화 계수를 나타낸다.
도 8은 본 발명의 또 다른 실시 예에 따라 계산된 대표값에 상응하는 양자화 파라미터와 양자화 계수를 나타낸다.
도 9는 그룹핑을 이용하여 대표값을 결정하는 방법의 일 실시 예를 설명하는 개념도이다.
도 10은 그룹핑을 이용하여 대표값을 결정하는 방법의 다른 실시 예를 설명하는 개념도이다.
도 11은 그룹핑을 이용하여 대표값을 결정하는 방법의 또 다른 실시 예를 설명하는 개념도이다.
도 12는 변환 작동의 스킵을 제어하는 방법을 설명하는 플로우 차트이다.
도 13은 본 발명의 실시 예에 따른 인코더의 작동을 설명하는 플로우 차트이다.
본 명세서에 개시되어 있는 본 발명의 개념에 따른 실시 예들에 대해서 특정한 구조적 또는 기능적 설명은 단지 본 발명의 개념에 따른 실시 예들을 설명하기 위한 목적으로 예시된 것으로서, 본 발명의 개념에 따른 실시 예들은 다양한 형태들로 실시될 수 있으며 본 명세서에 설명된 실시 예들에 한정되지 않는다.
본 발명의 개념에 따른 실시 예들은 다양한 변경들을 가할 수 있고 여러 가지 형태들을 가질 수 있으므로 실시 예들을 도면에 예시하고 본 명세서에서 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시 예들을 특정한 개시 형태들에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물, 또는 대체물을 포함한다.
제1 또는 제2 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만, 예컨대 본 발명의 개념에 따른 권리 범위로부터 벗어나지 않은 채, 제1구성 요소는 제2구성 요소로 명명될 수 있고 유사하게 제2구성 요소는 제1구성 요소로도 명명될 수 있다.
어떤 구성 요소가 다른 구성 요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성 요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성 요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성 요소가 다른 구성 요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는 중간에 다른 구성 요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성 요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 명세서에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로서, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 본 명세서에 기재된 특징, 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 나타낸다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 본 명세서에 첨부된 도면들을 참조하여 본 발명의 실시 예들을 상세히 설명한다.
도 1은 본 발명의 실시 예에 따른 데이터 처리 시스템의 블록도이다.
도 1을 참조하면, 데이터 처리 시스템(100)은 컨트롤러(200), 카메라(300), 적어도 하나의 메모리(400 및/또는 401), 및 디스플레이(500)를 포함할 수 있다. 실시 예들에 따라, 데이터 처리 시스템(100)은 터치 스크린(501)을 더 포함할 수 있다.
데이터 처리 시스템(100)은 PC(personal computer) 또는 모바일 컴퓨팅 장치로 구현될 수 있다. 상기 모바일 컴퓨팅 장치는 랩탑 컴퓨터(laptop computer), 이동 전화기, 스마트 폰(smart phone), 태블릿(tablet) PC, PDA(personal digital assistant), EDA(enterprise digital assistant), 디지털 스틸 카메라(digital still camera), 디지털 비디오 카메라(digital video camera), PMP(portable multimedia player), PND(personal navigation device 또는 portable navigation device), 휴대용 게임 콘솔(handheld game console), 모바일 인터넷 장치(mobile internet device(MID), 웨어러블 컴퓨터, 사물 인터넷(internet of things(IoT)) 장치, 만물 인터넷(internet of everything(IoE)) 장치, 또는 e-북(e-book)으로 구현될 수 있다.
컨트롤러(200)는 카메라(300), 적어도 하나의 메모리(400 및/또는 401), 및 디스플레이(500)의 작동을 제어할 수 있는 장치를 의미할 수 있다. 실시 예들에 따라, 컨트롤러(200)는 터치 스크린(501)의 작동을 제어할 수 있다.
컨트롤러(200)는 집적 회로, 마더보드, 시스템 온 칩(system on chip(SoC)), 애플리케이션 프로세서(application processor(AP)) 또는 모바일 AP로 구현될 수 있다.
컨트롤러(200)는 버스 구조(201), CPU(210), 이미지 신호 프로세서(image signal processor; 220), 인코더(230), 적어도 하나의 메모리 컨트롤러(260 및/또는 261), 및 디스플레이 컨트롤러(270)를 포함할 수 있다.
버스 구조(201)는 AMBA(advanced microcontroller bus architecture), AHB(advanced high-performance bus), APB(advanced peripheral bus), AXI (advanced eXtensible interface) 또는 ASB(advanced system bus)로 구현될 수 있으나 이에 한정되는 것은 아니다.
CPU(210)는, 버스 구조(201)를 통해, 이미지 신호 프로세서(220), 인코더 (230), 적어도 하나의 메모리 컨트롤러(260 및/또는 261), 및/또는 디스플레이 컨트롤러(270)의 작동을 제어할 수 있다.
이미지 신호 프로세서(220)는 카메라(300)로부터 출력된 이미지 데이터의 포맷 변환, 상기 이미지 데이터에 대한 노이즈 감소(noise reduction), 및 상기 이미지에 대한 이미지 향상(image enhancement) 등을 제어할 수 있다.
즉, 이미지 신호 프로세서(220)는 카메라(300)로부터 출력된 제1포맷을 갖는 제1데이터를 제2포맷을 갖는 제2데이터로 변환할 수 있다. 제1포맷은 베이어(Bayer) 포맷을 의미할 수 있고, 제2포맷은 YUV 포맷, YCbCr 포맷, 또는 RGB 포맷을 의미할 수 있다. 카메라(300)는 CMOS 이미지 센서 칩을 포함할 수 있다.
도 1에서는 이미지 신호 프로세서(220)가 컨트롤러(200) 내부에 구현된 실시 예가 도시되어 있으나, 실시 예들에 따라, 이미지 신호 프로세서(220)는 컨트롤러 (200)와 카메라(300)에 배치되고 독립적인 칩으로 구현될 수 있다. 다른 실시 예들에 따라, 이미지 신호 프로세서(220)는 카메라(300) 내부에 배치되고, CMOS 이미지 센서 칩과 이미지 신호 프로세서(220)는 하나의 패키지로 패키징될 수 있다.
인코더(230)는 공간-영역(spatial-domain) 현재 블록 값들에 대한 공간-영역 예측 블록 값들을 생성하고, 상기 공간-영역 현재 블록 값들과 상기 공간-영역 예측 블록 값들의 차이에 기초하여 공간-영역 잔여(residual) 블록 값들을 생성하고, 상기 공간-영역 잔여 블록 값들의 대표값을 계산하고, 복수의 양자화 파라미터들 중에서 상기 대표값에 해당하는 하나의 양자화 파라미터를 선택하고, 상기 선택된 양자화 파라미터를 이용하여 상기 공간-영역 잔여 블록 값들을 인코딩 또는 양자화할 수 있다.
본 발명의 실시 예에 따른 인코더(230)는 HEVC(High Efficiency Video Coding) 비디오 압축 표준을 지원하는 인코더일 수 있으나 이에 한정되는 것은 아니다. 인코더(230)의 구체적인 구조와 작동을 도 2부터 도 13을 참조하여 상세히 설명될 것이다.
인코더(230)는 이미지 신호 프로세서(220)로부터 출력된 이미지 데이터(예컨대, 비트스트림(bitstream))을 인코딩할 수 있다. 인코드된 이미지 데이터(예컨대, 인코드된 비트스트림)는 적어도 하나의 메모리 컨트롤러(260 및/또는 261)를 통해 적어도 하나의 메모리(400 및/또는 401)에 저장될 수 있다.
적어도 하나의 메모리 컨트롤러(260 및/또는 261)는 적어도 하나의 메모리(400 및/또는 401)로부터 인코드된 이미지 데이터(예컨대, 인코드된 비트스트림)를 리드할 수 있다. 적어도 하나의 메모리 컨트롤러(260 및/또는 261)로부터 전송된 인코드된 이미지 데이터(예컨대, 인코드된 비트스트림)는 디코더(미도시)에 의해 디코드되고, 디코드된 이미지 데이터는 디스플레이 컨트롤러(270)를 통해 디스플레이(500)로 전송될 수 있다.
코덱(codec)은 인코더(230)와 디코더를 포함하나 본 명세서에서는 상기 코덱에 포함된 인코더(230)의 작동을 설명한다. 인코더(230)는 압축기(compressor)의 기능을 수행하고, 디코더는 압축해제기(decompressor)의 기능을 수행할 수 있다.
적어도 하나의 메모리 컨트롤러(260 및/또는 261)는, CPU(260)의 제어에 따라, 적어도 하나의 메모리(400 및/또는 401)에 대한 데이터 액세스 작동을 제어할 수 있다. 상기 데이터 액세스 작동은 해당하는 메모리(400 또는 401)에 데이터를 라이트하는 라이트 작동과 해당하는 메모리(400 또는 401)로부터 데이터를 리드하는 리드 작동을 포함할 수 있다.
적어도 하나의 메모리(400 및/또는 401)는 휘발성 메모리 및/또는 불휘발성 메모를 포함할 수 있다. 휘발성 메모리는 RAM(random access memory), DRAM (dynamic RAM), SRAM(static RAM), 또는 버퍼 메모리를 포함할 수 있다. 불휘발성 메모리는 플래시(flash) 메모리, MRAM(magnetic RAM), 스핀전달토크 MRAM(Spin-Transfer Torque MRAM), FeRAM(ferroelectric RAM), PRAM(phase change RAM), 또는 저항 메모리(resistive RAM(RRAM))로 구현될 수 있다.
플래시(flash) 메모리는 하나 또는 그 이상의 비트들을 저장하는 NAND-타입 플래시 메모리 또는 NOR-타입 플래시 메모리로 구현될 수 있다.
예컨대, 메모리(400)는 DRAM으로 구현될 수 있고, 메모리(401)는 플래시-기반 메모리로 구현될 수 있다. 이때, 메모리 컨트롤러(260)는 DRAM 컨트롤러로 구현되고, 메모리 컨트롤러(261)는 플래시-기반 메모리 컨트롤러로 구현될 수 있다.
플래시-기반 메모리는 SSD(solid-state drive or solid-state disk), 멀티미디어 카드(multimedia card(MMC)), eMMC(embedded MMC), 또는 유니버셜 플래시 스토리지 (universal flash storage(UFS))로 구현될 수 있다.
디스플레이 컨트롤러(270)는, CPU(210)의 제어에 따라, CPU(210), 인코더 (230), 또는 디스플레이 컨트롤러(270)로부터 출력된 데이터를 디스플레이(500)로 전송할수 있다.
카메라(300)는 CMOS 이미지 센서 칩을 포함할 수 있다. 상기 CMOS 이미지 센서 칩은 피사체에 대한 광학 이미지에 상응하는 이미지 데이터를 이미지 신호 프로세서(220)로 출력할 수 있다. 실시 예에 따라, 카메라(300)는 MIPI(R)(Mobile Industry Processor Interface) 카메라 시리얼 인터페이스(camera serial interface(CSI))를 통해 이미지 데이터를 이미지 신호 프로세서(220)로 출력할 수 있다.
디스플레이(500)는 디스플레이 컨트롤러(270)로부터 출력된 데이터를 디스플레이할 수 있다. 터치 스크린(501)은 디스플레이(500)에서 디스플레이되는 그래픽 사용자 인터페이스(graphic user interface(GUI))를 선택하거나 활성화시키는데 사용될 수 있다. 즉, 터치 스크린(501)은 컨트롤러(200)의 작동을 제어할 수 있는 사용자 터치 입력을 생성하고, 상기 사용자 터치 입력은 CPU(210)로 제공될 수 있다.
GUI는, CPU(210)에 의해 실행되는 애플리케이션 프로그램의 제어에 따라, 디스플레이(500)에서 디스플레이될 수 있다.
도 2는 도 1에 도시된 인코더의 블록도이다.
도 2를 참조하면, 인코더(230)는 감산기(231), 모드 결정 블록(233), 변환/ 양자화 블록(235), 역변환/역양자화 블록(237), 가산기(239), 디-블록킹 필터 (241), SAO(sample adaptive offset) 필터(243), 프레임 버퍼(245), 움직임 예측 블록(247), 움직임 보상 블록(249), 인트라 예측 블록(251), 및 엔트로피 코더(253)를 포함할 수 있다.
감산기(231)는 입력 프레임에 포함된 복수의 공간-영역 블록들 중에서 현재 처리 대상이 되는 공간-영역 현재 블록(IFR)의 값들(이하, "공간-영역 현재 블록 값들")과 모드 결정 블록(233)으로부터 출력된 공간-영역 예측 블록(PBL)의 값들(이하, "공간-영역 예측 블록 값들"이라 한다)과의 차이들을 계산하고, 계산 결과에 해당하는 공간-영역 잔여 블록(RESIDUAL)의 값들(이하, 공간-영역 잔여 블록 값들"이라 한다.)을 생성할 수 있다.
실시 예들에 따라, 입력 프레임은 YUV 포맷을 갖는 프레임, YCbCR 포맷을 갖는 프레임, 또는 RGB 포맷을 갖는 프레임일 수 있으나 이에 한정되는 것은 아니다.
블록은 m*n 픽셀들을 포함할 수 있다. 여기서, m과 n 각각은 2 이상의 자연수일 수 있고, m=n 또는 m≠n일 수 있다.
상술한 바와 같이, 픽셀들은 YUV 포맷을 갖는 데이터, YCbCR 포맷을 갖는 데이터, 또는 RGB 포맷을 갖는 데이터일 수 있으나 이에 한정되는 것은 아니다. 예컨대, 블록은 16*16 픽셀들, 32*32 픽셀들, 또는 64*64 픽셀들을 포함할 수 있으나 이에 한정되는 것은 아니다.
감산기(231)는 계산 블록 단위로 차이들을 계산하고, 블록 단위로 출력할 수 있다. 예컨대, 계산 블록의 크기는 블록의 크기보다 작을 수 있다. 예컨대, 계산 블록이 4*4 픽셀들을 포함할 때, 블록은 16*16 픽셀들을 포함할 수 있으나 이에 한정되는 것은 아니다.
모드 결정 블록(233)은 공간-영역 현재 블록(IFR), 제1예측 블록(EBL1), 및 제2예측 블록(EBL2)을 수신할 수 있다.
모드 결정 블록(233)은 제1예측 블록(EBL1)과 제2예측 블록(EBL2) 중에서 어느 하나를 공간-영역 예측 블록(PBL)으로서 출력할 수 있다.
또한, 모드 결정 블록(233)은 공간-영역 잔여 블록(RESIDUAL)에 대해 변환 (transform)을 수행할 때 효율적인지 또는 상기 변환을 수행하지 않을 때 효율적인지를 판단하고, 판단의 결과에 따라 제어 신호(TCS)를 생성할 수 있다. 제어 신호 (TCS)는 변환 수행 여부를 지시하는 지시 신호일 수 있다. 예컨대, 제어 신호(TCS)는 제1상태 또는 제2상태를 갖는 플래그(flag)일 수 있으나 이에 한정되는 것은 아니다.
도 3은 도 2에 도시된 모드 결정 블록의 블록도이다.
도 2와 도 3을 참조하면, 모드 결정 블록(233)은 변환 제어 신호 생성기 (233-1)와 예측 블록 결정 회로(233-2)를 포함할 수 있다.
변환 제어 신호 생성기(233-1)는 공간-영역 현재 블록(IFR)의 공간-영역 현재 블록 값들을 이용하여 제1값을 생성하고, 상기 공간-영역 현재 블록 값들로부터 파생된 주파수-영역 값들을 이용하여 제2값을 생성할 수 있다. 변환 제어 신호 생성기(233-1)는 상기 제1값과 상기 제2값을 비교하고, 상기 제1값이 상기 제2값보다 작을 때 제1상태를 갖는 제어 신호(TCS)를 생성할 수 있고 상기 제1값이 상기 제2값고 같거나 클 때 제2상태를 갖는 제어 신호(TCS)를 생성할 수 있다.
실시 예에 따라, 상기 제1값은 공간-영역 현재 블록 값들의 절대값 차이들의 합(sum of absolute differences(SAD))일 수 있다. 상기 제2값은 상기 공간-영역 현재 블록 값들로부터 파생된(또는 대응되는) 주파수-영역 값들의 절대값 변환 차이들의 합(sum of absolute transformed differences(SATD))일 수 있다.
SAD와 SATD의 실시 예는 도 12를 참조하여 설명될 것이다.
제1상태를 갖는 제어 신호(TCS)에 응답하여, 변환/양자화 블록(235)은 해당 블록에 대한 변환을 스킵(skip)할 수 있다. 또한, 제1상태를 갖는 제어 신호(TCS)에 응답하여, 역변환/역양자화 블록(235)은 해당 블록에 대한 변환을 스킵할 수 있다. 여기서, "/"는 및(and)을 의미하고, 변환은 변환 작동을 의미할 수 있다.
그러나, 제2상태를 갖는 제어 신호(TCS)에 응답하여, 변환/양자화 블록 (235)은 해당 블록에 대한 변환을 수행할 수 있다. 또한, 제2상태를 갖는 제어 신호(TCS)에 응답하여, 역변환/역양자화 블록(235)은 해당 블록에 대한 변환을 수행할 수 있다.
제1상태는 로우 레벨(low level)과 하이 레벨(high level) 중에서 어느 하나이고, 제2상태는 상기 로우 레벨과 상기 하이 레벨 중에서 다른 하나일 수 있다. 로우 레벨은 데이터 "0" 또는 로직(logic) "0"을 의미할 수 있고, 하이 레벨은 데이터 "1" 또는 로직 "1"을 의미할 수 있다.
예측 블록 결정 회로(233-2)는 제1예측 블록(EBL1)과 제2예측 블록(EBL2) 중에서 어느 하나를 공간-영역 예측 블록(PBL)으로 출력할 수 있다. 예컨대, 제1예측 블록(EBL1)을 인코딩했을 때의 인코딩 결과값과 원하는 결과값과의 제1차이가 제2예측 블록(EBL2)을 인코딩했을 때의 인코딩 결과값과 상기 원하는 값과의 제2차이보다 작을 때, 예측 블록 결정 회로(233-2)는 제1예측 블록(EBL1)을 공간-영역 예측 블록(PBL)으로 출력할 수 있다. 그러나, 상기 제1차이가 상기 제2차이와 같거나 클 때, 예측 블록 결정 회로(233-2)는 제2예측 블록(EBL2)을 공간-영역 예측 블록 (PBL)으로 출력할 수 있다.
변환/양자화 블록(235)은, 제어 신호(TCS)의 상태에 따라, 해당 블록에 대한 변환을 스킵하거나 수행할 수 있다.
앞에서 설명한 바와 같이, 제어 신호(TCS)가 제1상태일 때, 변환/양자화 블록(235)은 공간-영역 잔여 블록(RESIDUAL)에 대해 시간 영역-주파수 영역 변환 (time domain-to-frequency domain transformation)을 수행하지 않고, 공간-영역 잔여 블록 값들의 대표값을 계산할 수 있다.
변환/양자화 블록(235)은 복수의 양자화 파라미터들 중에서 계산된 대표값에 해당하는 하나의 양자화 파라미터를 선택하고, 선택된 양자화 파라미터를 이용하여 공간-영역 잔여 블록 값들을 양자화하고, 양자화된 블록(QV)을 생성할 수 있다. 대표값을 계산하는 실시 예들은 도 5부터 도 11을 참조하여 상세히 설명될 것이다. 스킵 모드는 제어 신호(TCS)가 제1상태일 때로 정의될 수 있다.
변환/양자화 블록(235)은 도 4에 도시된 복수의 양자화 파라미터들을 저장하는 테이블(TABLE)을 포함할 수 있다. 도 2에서는 테이블(TABLE)이 변환/양자화 블록(235)에 포함된 실시 예가 도시되어 있으나, 테이블(TABLE)은 변환/양자화 블록 (235)에 의해 액세스될 수 있는 위치에 구현되면 족하다.
변환/양자화 블록(235)에서 수행되는 변환은 시간 영역의 공간 좌표를 주파수 영역(frequency domain)으로 변환하는 것을 의미할 수 있다. 상기 변환은 이산 코사인 변환(Discrete cosine transform(DCT))을 의미할 수 있으나 이에 한정되는 것은 아니다.
제어 신호(TCS)가 제2상태일 때, 변환/양자화 블록(235)은 공간-영역 잔여 블록(RESIDUAL)에 대해 시간 영역-주파수 영역 변환을 수행하고, 주파수-영역으로 변환된 잔여 블록을 RDO(rate-distortion optimization) 또는 주어진 양자화 파라미터를 이용하여 양자화하고, 양자화된 블록(QV)을 생성할 수 있다. 이때, 공간-영역 잔여 블록 값들의 대표 값을 계산하는 과정은 변환/양자화 블록(235)에서 수행되지 않는다.
역변환/역양자화 블록(237)은, 제어 신호(TCS)의 상태에 따라, 해당 블록에 대한 변환을 스킵하거나 수행할 수 있다.
제어 신호(TCS)가 제1상태일 때, 역변환/역양자화 블록(237)은 양자화된 블록(QV)에 대한 역변환(예컨대, 주파수 영역-시간 영역 변환)을 수행하지 않고, 양자화된 블록(QV)을 역양자화 파라미터를 이용하여 역양자화하고, 역양자화된 블록을 생성할 수 있다. 상기 역변환은 역이산 코사인 변환(inverse discrete cosine transform(IDCT))을 의미할 수 있으나 이에 한정되는 것은 아니다.
역양자화 파라미터는 변환/양자화 블록(235)에서 선택된 양자화 파라미터 (QP)와 동일할 수 있다. 실시 예에 따라, 변환/양자화 블록(235)은 선택된 양자화 파라미터(QP)를 역변환/역양자화 블록(237)으로 전송할 수 있다. 다른 실시 예에 따라, 역변환/역양자화 블록(237)은 선택된 양자화 파라미터(QP)를 변환/양자화 블록(235)으로부터 읽어올 수 있다.
가산기(239)는 역변환/역양자화 블록(237)으로부터 출력된 역양자화된 블록(예컨대, 역변환되지 않고 역영자화된 블록)과 모드 결정 블록(233)으로부터 출력된 공간-영역 예측 블록(PBL)을 더하여 재구성된 블록(RBL)을 생성할 수 있다. 재구성된 블록(RBL)은 디-블록킹 필터(241)와 인트라 예측 블록(251)으로 전송될 수 있다.
제어 신호(TCS)가 제2상태일 때, 역변환/역양자화 블록(235)은 양자화된 블록(QV)에 대한 역변환(예컨대, 주파수 영역-시간 영역 변환)을 수행하고, 역변환된 블록을 RDO(rate-distortion optimization) 또는 주어진 역양자화 파라미터를 이용하여 역양자화하고, 역양자화된 블록을 생성할 수 있다.
가산기(239)는 역변환/역양자화 블록(237)으로부터 출력된 역양자화된 블록(즉, 역변환되고 역양자화된 블록)과 모드 결정 블록(233)으로부터 출력된 공간-영역 예측 블록(PBL)을 더하여 재구성된 블록(RBL)을 생성할 수 있다. 재구성된 블록 (RBL)은 디-블록킹 필터(241)와 인트라 예측 블록(251)으로 전송될 수 있다.
디-블록킹 필터(241)는 가산기(239)에 의해 재구성된 블록(RBL)에 대한 디-블록킹 작동을 수행할 수 있다.
SAO(sample adaptive offset) 필터(243)는 디-블록킹 필터(241)에 의해 디-블록된 블록에 대해 SAO 필터링을 수행한다.
프레임 버퍼(245)는 SAO 필터(243)로부터 출력된 SAO 필터된 블록을 수신하여 저장할 수 있다. 프레임 버퍼(245)는 이전 프레임을 기준(reference) 프레임으로서 저장할 수 있다.
움직임 예측 블록(247)은 공간-영역 현재 블록(IFR)을 수신하고, 프레임 버퍼(245)에 저장된 이전 프레임을 참조하여 현재 프레임을 블록 단위로 처리할 수 있다. 예컨대, 움직임 예측 블록(247)은 프레임 버퍼(245)에 저장된 이전 프레임에 포함된 이전 블록들 중에서 공간-영역 현재 블록(IFR)과 가장 잘 매치(match)되는 블록에 대한 위치 정보(PI)를 움직임 보상 블록(249)으로 전송할 수 있다.
움직임 보상 블록(249)은 위치 정보(PI)를 수신하고, 위치 정보(PI)에 해당하는 블록을 프레임 버퍼(245)로부터 리드하고, 리드된 블록을 제2예측 블록(EBL2)으로서 모드 결정 블록(233)으로 전송할 수 있다. 따라서, 제2예측 블록(EBL2)은 이전 프레임을 참조하여 예측된 블록일 수 있다.
인트라 예측 블록(251)은 공간-영역 현재 블록(IFR)과 재구성된 블록(RBL)을 수신하고, 재구성된 블록(RBL)을 이용하여 예측된 블록을 제1예측 블록(EBL1)으로서 모드 결정 블록(233)으로 전송할 수 있다. 따라서, 제1예측 블록(EBL1)은 동일한 프레임 내에서 이미 인코드된 블록을 이용하여 예측된 블록일 수 있다.
엔트로피 코더(253)는 변환/양자화 블록(235)에 의해 양자화된 블록(QV)을 인코드하고 인코드된 비트스트림(BS)을 출력할 수 있다.
도 4는 대표 값들에 해당하는 양자화 파라미터들을 포함하는 테이블의 실시 예이다.
도 1부터 도 4를 참조하면, 대표 값들에 해당하는 양자화 파라미터들(QPs)은 테이블(TABLE)에 저장될 수 있다. 테이블(TABLE)은 적어도 하나의 메모리(400 및/또는 401)에 저장될 수 있다.
실시 예들에 따라, 컨트롤러(200)가 부팅될 때, 적어도 하나의 메모리(400 및/또는 401)에 저장된 테이블(TABLE)은 인코더(230)에 의해 액세스될 수 있는 저장 매체(예컨대, 휘발성 메모리 또는 버퍼 메모리)에 저장될 수 있다.
실시 예들에 따라, 상기 저장 매체는 변환/양자화 블록(235)에 포함될 수 있다. 다른 실시 예들에 따라, 테이블(TABLE)은 인코더(230)에 의해 액세스될 수 있는 저장 매체에 저장될 수 있고, 상기 저장 매체는 불휘발성 메모리로 구현될 수 있다. 실시 예들에 따라, 테이블(TABLE)을 저장하는 저장 매체는 컨트롤러(200)의 어디라도 배치될 수 있다.
테이블(TABLE)을 참조하면, 각 양자화 파라미터(QP)는 각 양자화 스텝 크기 (SQQ)에 대응될 수 있다.
본 명세서에 설명될 대표 값은 공간-영역 잔여 블록 값들에 대한 그룹 대표값, 공간-영역 잔여 블록 값들에 대한 표준 편차(standard deviation) 또는 공간-영역 잔여 블록 값들에 대한에 대한 MAD(mean of absolute differences)일 수 있으나 본 발명의 기술적 사상이 이에 한정되는 것은 아니다. 예컨대, MAD는 SAD를 해당 블록에 포함된 픽셀들의 개수로 나눈 값일 수 있다.
도 5는 도 2에 도시된 감산기의 작동을 설명하는 개념도이다.
도 1부터 도 5를 참조하면, 감산기(231)는 공간 영역 현재 블록(IFR=B10)에 포함된 공간 영역 현재 블록 값들로부터 공간-영역 예측 블록(PBL=B20)에 포함된 공간 영역 예측 블록 값들을 빼서 공간-영역 잔여 블록(RESIDUAL=B30)에 포함된 공간-영역 잔여 블록 값들을 생성할 수 있다. 각 블록(B10, B20, 및 B30)에 포함된 숫자들은 설명의 편의를 위해 예시된 값들이다. 설명의 편의를 위해, 각 블록(B10, B20, 및 B30)은 4*4 픽셀들을 포함한다고 가정한다.
도 6은 본 발명의 일 실시 예에 따라 계산된 대표값에 상응하는 양자화 파라미터와 양자화 계수들을 나타낸다.
도 5와 도 6을 참조하면, 변환/양자화 블록(235)은, 방법1(METHOD1)에 따라, 공간-영역 잔여 블록(RESIDUAL=B30)에 포함된 공간-영역 잔여 블록 값들에 대한 그룹 대표값을 이용하여, 테이블(TABLE)에 저장된 복수의 양자화 파라미터들 중에서 어느 하나를 선택할 수 있다.
도 5를 참조하면, 공간-영역 잔여 블록(RESIDUAL=B30)에 포함된 공간-영역 잔여 블록 값들은 "0"과 "90"이다. 이때, 변환/양자화 블록(235)은 0을 제외하고 90을 대표값으로 계산하고, 테이블(TABLE)에 저장된 복수의 양자화 파라미터들 중에 대표 값(예컨대, 90)에 해당하는 양자화 파라미터(QP=43)를 선택할 수 있다.
양자화 스텝 사이즈(QSS)와 그룹 대표 값(예컨대, 90)이 서로 동일하다고 가정하면, 블록(41-1)에 포함된 양자화 계수들은 도 6에 도시된 바와 같이 "0"과 "1"일 수 있다. 역변환/역양자화 블록(237)은, 양자화 파라미터(QP=43)와 동일한 역양자화 파라미터를 이용하여, 양자화된 블록(QV)을 역양자화할 수 있다. 도 6의 블록(43-1)은 가산기(239)에 의해 재구성된 블록(RBL)을 나타낸다.
도 7은 본 발명의 다른 실시 예에 따라 계산된 대표값에 상응하는 양자화 파라미터와 양자화 계수들을 나타낸다.
도 5와 도 7을 참조하면, 변환/양자화 블록(235)은, 방법2(METHOD2)에 따라, 공간-영역 잔여 블록(RESIDUAL=B30)에 포함된 공간-영역 잔여 블록 값들에 대한 MAD를 계산하고, 계산된 MAD를 이용하여 테이블(TABLE)에 저장된 복수의 양자화 파라미터들 중에서 어느 하나를 선택할 수 있다.
공간-영역 잔여 블록(RESIDUAL=B30)에 포함된 공간-영역 잔여 블록 값들은 "0"과 "90"이다. 이때, 변환/양자화 블록(235)은 공간-영역 잔여 블록 값들에 대한 MAD를 대표값으로서 계산하고, 테이블(TABLE)에 저장된 복수의 양자화 파라미터들 중에 MAD(예컨대, 22.5)에 해당하는 양자화 파라미터(QP=31)를 선택할 수 있다.
양자화 스텝 사이즈(QSS)와 MAD(예컨대, 22.5)이 서로 동일하다고 가정하면, 블록(41-2)에 포함된 양자화 계수들은 도 7에 도시된 바와 같이 "0"과 "4"(=90/22.5)일 수 있다. 역변환/역양자화 블록(237)은, 양자화 파라미터(QP=31)와 동일한 역양자화 파라미터를 이용하여, 양자화된 블록(QV)을 역양자화할 수 있다. 도 7의 블록(43-2)은 가산기(239)에 의해 재구성된 블록(RBL)을 나타낸다.
도 8은 본 발명의 또 다른 실시 예에 따라 계산된 대표값에 상응하는 양자화 파라미터와 양자화 계수들을 나타낸다.
도 5와 도 8을 참조하면, 변환/양자화 블록(235)은, 방법3(METHOD3)에 따라, 공간-영역 잔여 블록(RESIDUAL=B30)에 포함된 공간-영역 잔여 블록 값들에 대한 표준 편차를 계산하고, 계산된 표준 편차를 이용하여 테이블(TABLE)에 저장된 복수의 양자화 파라미터들 중에서 어느 하나를 선택할 수 있다.
공간-영역 잔여 블록(RESIDUAL=B30)에 포함된 공간-영역 잔여 블록 값들은 "0"과 "90"이다. 이때, 변환/양자화 블록(235)은 공간-영역 잔여 블록 값들에 대한 표준 편차를 대표값으로서 계산하고, 테이블(TABLE)에 저장된 복수의 양자화 파라미터들 중에서 표준 편차(예컨대, 10)에 해당하는 양자화 파라미터(QP=24)를 선택할 수 있다.
양자화 스텝 사이즈(QSS)와 표준 편차(예컨대, 10)가 서로 동일하다고 가정하면, 블록(41-3)에 포함된 양자화 계수들은 도 8에 도시된 바와 같이 "0"과 "9"(=90/10)일 수 있다. 역변환/역양자화 블록(237)은, 양자화 파라미터(QP=24)와 동일한 역양자화 파라미터를 이용하여, 양자화된 블록(QV)을 역양자화할 수 있다. 도 8의 블록 (43-3)은 가산기(239)에 의해 재구성된 블록(RBL)을 나타낸다.
도 9는 그룹핑을 이용하여 대표값을 결정하는 방법의 일 실시 예를 설명하는 개념도이다.
도 1, 도 2, 및 도 9를 참조하면, 감산기(231)는 공간 영역 현재 블록 (IFR=10A)에 포함된 공간 영역 현재 블록 값들로부터 공간-영역 예측 블록 (PBL=20A)에 포함된 공간 영역 예측 블록 값들을 빼서 공간-영역 잔여 블록 (RESIDUAL=30A)에 포함된 공간-영역 잔여 블록 값들을 생성할 수 있다. 각 블록 (10A, 20A, 및 30A)에 포함된 숫자들은 설명의 편의를 위해 예시된 값들이다. 설명의 편이를 위해 각 블록(10A, 20A, 및 30A)은 4*4 픽셀들을 포함한다고 가정한다.
변환/양자화 블록(235)은, 방법1(METHOD1)에 따라, 공간-영역 잔여 블록 (RESIDUAL=30A)에 포함된 공간-영역 잔여 블록 값들에 대한 그룹 대표값을 이용하여, 테이블(TABLE)에 저장된 복수의 양자화 파라미터들 중에서 어느 하나를 선택할 수 있다.
도 9를 참조하면, 공간-영역 잔여 블록(RESIDUAL=30A)에 포함된 공간-영역 잔여 블록 값들은 "0", "10", 및 "90"이다. 이때, 변환/양자화 블록(235)은 "0"을 복수의 그룹들 중에서 제1그룹으로 그룹핑할 수 있고, "10"을 상기 복수의 그룹들 중에서 제2그룹으로 그룹핑할 수 있고, "90"을 상기 복수의 그룹들 중에서 제3그룹으로 그룹핑할 수 있다.
변환/양자화 블록(235)은 "0"을 포함하는 제1그룹을 제외하고, 제2그룹으로 그룹핑된 "10"과 제3그룹으로 그룹핑된 "90"의 최대 공약수(예컨대, 10)를 계산하고, 최대 공약수(예컨대, 10)를 대표값으로 결정할 수 있다.
실시 예에 따라, 변환/양자화 블록(235)은 "0" 자체를 그룹핑하지 않을 수도 있다.
변환/양자화 블록(235)은 테이블(TABLE)에 저장된 복수의 양자화 파라미터들 중에 대표 값(예컨대, 10)에 해당하는 양자화 파라미터(QP=24)를 선택할 수 있다.
도 10은 그룹핑을 이용하여 대표값을 결정하는 방법의 다른 실시 예를 설명하는 개념도이다.
도 1, 도 2, 및 도 10을 참조하면, 감산기(231)는 공간 영역 현재 블록 (IFR=10B)에 포함된 공간 영역 현재 블록 값들로부터 공간-영역 예측 블록 (PBL=20B)에 포함된 공간 영역 예측 블록 값들을 빼서 공간-영역 잔여 블록 (RESIDUAL=30B)에 포함된 공간-영역 잔여 블록 값들을 생성할 수 있다. 각 블록 (10B, 20B, 및 30B)에 포함된 숫자들은 설명의 편의를 위해 예시된 값들이다. 설명의 편이를 위해 각 블록(10B, 20B, 및 30B)은 4*4 픽셀들을 포함한다고 가정한다.
변환/양자화 블록(235)은, 방법1(METHOD1)에 따라, 공간-영역 잔여 블록 (RESIDUAL=30B)에 포함된 공간-영역 잔여 블록 값들에 대한 그룹 대표값을 이용하여, 테이블(TABLE)에 저장된 복수의 양자화 파라미터들 중에서 어느 하나를 선택할 수 있다.
도 10을 참조하면, 공간-영역 잔여 블록(RESIDUAL=30B)에 포함된 공간-영역 잔여 블록 값들은 "0", "9", "10", "11" 및 "90"이다. 이때, 변환/양자화 블록 (235)은 "0"을 복수의 그룹들 중에서 제1그룹으로 그룹핑할 수 있고, "9", "10", 및 "11"을 상기 복수의 그룹들 중에서 제2그룹으로 그룹핑할 수 있고, "90"을 상기 복수의 그룹들 중에서 제3그룹으로 그룹핑할 수 있다. 이때, 변환/양자화 블록 (235)은 "9", "10", 및 "11"의 대표값을 "10"으로 결정할 수 있다.
변환/양자화 블록(235)은 "0"을 포함하는 제1그룹을 제외하고, 제2그룹의 대표값 "10"과 제3그룹으로 그룹핑된 "90"의 최대 공약수(예컨대, 10)를 계산하고, 최대 공약수(예컨대, 10)를 대표값으로 결정할 수 있다.
실시 예에 따라, 변환/양자화 블록(235)은 "0" 자체를 그룹핑하지 않을 수도 있다.
변환/양자화 블록(235)은 테이블(TABLE)에 저장된 복수의 양자화 파라미터들 중에 대표 값(예컨대, 10)에 해당하는 양자화 파라미터(QP=24)를 선택할 수 있다.
변환/양자화 블록(235)은 "9", "10", 및 "11"과 같이 유사한 값들을 하나의 그룹으로 그룹핑하고, "9", "10", 및 "11"의 대표값, 예컨대, 평균값을 해당 그룹의 대표값으로 결정할 수 있다. 다른 예로서, 변환/양자화 블록(235)은 "10", "12", 및 "14"과 같이 유사한 값들을 하나의 그룹으로 그룹핑하고, "10", "12", 및 "14"의 대표값, 예컨대, 평균값(예컨대, 12)을 해당 그룹의 대표값으로 결정할 수 있다.
도 11은 그룹핑을 이용하여 대표값을 결정하는 방법의 또 다른 실시 예를 설명하는 개념도이다.
도 1, 도 2, 및 도 11을 참조하면, 감산기(231)는 공간 영역 현재 블록 (IFR=10C)에 포함된 공간 영역 현재 블록 값들로부터 공간-영역 예측 블록 (PBL=20C)에 포함된 공간 영역 예측 블록 값들을 빼서 공간-영역 잔여 블록 (RESIDUAL=30C)에 포함된 공간-영역 잔여 블록 값들을 생성할 수 있다. 각 블록 (10C, 20C, 및 30C)에 포함된 숫자들은 설명의 편의를 위해 예시된 값들이다. 설명의 편이를 위해 각 블록(10C, 20C, 및 30C)은 4*4 픽셀들을 포함한다고 가정한다.
변환/양자화 블록(235)은, 방법1(METHOD1)에 따라, 공간-영역 잔여 블록 (RESIDUAL=30C)에 포함된 공간-영역 잔여 블록 값들에 대한 그룹 대표값을 이용하여, 테이블(TABLE)에 저장된 복수의 양자화 파라미터들 중에서 어느 하나를 선택할 수 있다.
도 11을 참조하면, 공간-영역 잔여 블록(RESIDUAL=30C)에 포함된 공간-영역 잔여 블록 값들은 "0", "1", "2", "3", "10", 및 "90"이다. 이때, 변환/양자화 블록(235)은 "0"부터 "3"을 복수의 그룹들 중에서 제1그룹으로 그룹핑할 수 있고, "10"을 상기 복수의 그룹들 중에서 제2그룹으로 그룹핑할 수 있고, "90"을 상기 복수의 그룹들 중에서 제3그룹으로 그룹핑할 수 있다.
변환/양자화 블록(235)은 "0"부터 "3"을 포함하는 제1그룹을 제외하고, 제2그룹의 대표값 "10"과 제3그룹으로 그룹핑된 "90"의 최대 공약수(예컨대, 10)를 계산하고, 최대 공약수(예컨대, 10)를 대표값으로 결정할 수 있다.
즉, 변환/양자화 블록(235)은 기준 값보다 작은 값들을 포함하는 제1그룹을 제외할 수 있다. 도 11에서 기준 값은 "4"를 예로 들어 설명하나 실시 예들에 따라 다양하게 변경될 수 있다. 실시 예에 따라, 변환/양자화 블록(235)은 "0"부터 "3"을 그룹핑하지 않을 수도 있다.
변환/양자화 블록(235)은 테이블(TABLE)에 저장된 복수의 양자화 파라미터들 중에 대표 값(예컨대, 10)에 해당하는 양자화 파라미터(QP=24)를 선택할 수 있다.
도 12는 변환 작동의 스킵을 제어하는 방법을 설명하는 플로우 차트이다.
도 2와 도 12를 참조하면, 변환 제어 신호 생성기(233-1)는 공간-영역 현재 블록 값들의 절대값 차이의 합(sum of absolute differences(SAD))과 상기 공간-영역 현재 블록 값들로부터 파생된 주파수-영역 값들의 절대값 변환 차이의 합(sum of absolute transformed differences(SATD))을 비교할 수 있다(S110).
SAD가 SATD과 같거나 작을 때(S110의 YES), 변환 제어 신호 생성기(233-1)는 제1상태를 갖는 제어 신호(TCS)를 생성할 수 있다. 제1상태를 갖는 제어 신호(TCS)에 응답하여, 변환/양자화 블록(235)은 시간 영역-주파수 영역 변환을 스킵할 수 있다. 제1상태를 갖는 제어 신호(TCS)에 응답하여, 역변환/역양자화 블록(235)은 주파수 영역-시간 영역 변환을 스킵할 수 있다. 즉, 변환/양자화 블록(235)과 역변환/역양자화 블록(235)은 변화 스킵 모드로 작동할 수 있다(S120).
그러나, SAD가 SATD보다 클 때(S110의 NO), 변환 제어 신호 생성기(233-1)는 제2상태를 갖는 제어 신호(TCS)를 생성할 수 있다. 제2상태를 갖는 제어 신호(TCS)에 응답하여, 변환/양자화 블록(235)은 시간 영역-주파수 영역 변환을 수행할 수 다. 제2상태를 갖는 제어 신호(TCS)에 응답하여, 역변환/역양자화 블록(235)은 주파수 영역-시간 영역 변환을 수행할 수 있다. 즉, 변환/양자화 블록(235)과 역변환/역양자화 블록(235)은 정상 작동 모드로 작동할 수 있다(S130).
예컨대, 시간 영역의 공간 영역에서 4*4 픽셀들에 대한 SAD는 4이고, 상기 공간 영역에 상응하는 주파수 영역에서 4*4 픽셀들의 SATD는 16이다.
도 13은 본 발명의 실시 예에 따른 인코더의 작동을 설명하는 플로우 차트이다. 도 1부터 도 13을 참조하면, 변화 스킵 모드에서, 감산기(231)는 공간-영역에서 공간-영역 잔여 블록(RESIDUAL)의 값들을 생성할 수 있다.
변환/양자화 블록(235)은 공간-영역에서 공간-영역 잔여 블록(RESIDUAL)에 포함된 공간-영역 잔여 블록 값들의 대표값을 계산할 수 있다(S210). 대표값을 계산하는 방법들은 도 5부터 도 11을 참조하여 설명한 바와 같다.
변환/양자화 블록(235)은, 계산된 대표값을 이용하여, 테이블(TABLE)에 포함된 양자화 파라미터들 중에서 최적의 양자화 파라미터를 선택할 수 있다(S220).
변환/양자화 블록(235)은, 선택된 최적의 양자화 파라미터를 이용하여, 공간-영역 잔여 블록을 양자화하고 양자화된 블록(QV)을 출력할 수 있다(S230).
역변환/역양자화 블록(237)은, 변환/양자화 블록(235)에 의해 선택된 최적의 양자화 파라미터를 이용하여, 양자화된 블록(QV)을 역양자화할 수 있다 (S240).
가산기(239)는 역변환/역양자화 블록(237)에 의해 역양자화된 블록과 공간-영역 예측 블록(PBL)을 가산하여 재구성된 블록(RBL)을 생성할 수 있다(S250).
본 발명은 도면에 도시된 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.
100: 데이터 처리 시스템
200: 컨트롤러
210: CPU
220: 이미지 신호 프로세서
230: 인코더
231: 감산기
233: 모드 결정 블록
233-1: 변환 제어신호 생성기
233-2: 예측 블록 결정 회로
235: 변환/양자화 블록
237: 역변환/역양자화 블록

Claims (20)

  1. 공간-영역 현재 블록 값들에 대한 공간-영역 예측 블록 값들을 생성하는 단계;
    상기 공간-영역 현재 블록 값들과 상기 공간-영역 예측 블록 값들의 차이들에 기초하여 공간-영역 잔여 블록 값들을 생성하는 단계;
    상기 공간-영역 잔여 블록 값들의 대표값을 계산하는 단계;
    복수의 양자화 파라미터들 중에서 상기 대표값에 해당하는 하나의 양자화 파라미터를 선택하는 단계; 및
    상기 선택된 양자화 파라미터를 이용하여, 상기 공간-영역 잔여 블록 값들을 양자화하는 단계를 포함하고,
    상기 대표값을 계산하는 단계는 상기 공간-영역 현재 블록 값들을 이용하여 생성된 제1값을 주파수-영역 값들을 이용하여 생성된 제2값과 비교함으로써, 변환을 수행하지 않음을 나타내는 제1상태 및 수행을 나타내는 제2상태 중 어느 하나를 갖는 제어 신호가 제1상태인 경우 수행되는 인코더의 작동 방법.
  2. 제1항에 있어서, 상기 대표값을 계산하는 단계는,
    상기 공간-영역 잔여 블록 값들 각각을 복수의 그룹들 중에서 해당하는 그룹으로 그룹핑하는 단계;
    그룹핑된 값들의 최대 공약수를 계산하는 단계; 및
    상기 최대 공약수를 상기 대표값으로 결정하는 단계를 포함하는 인코더의 작동 방법.
  3. 제2항에 있어서, 상기 그룹핑하는 단계는,
    상기 공간-영역 잔여 블록 값들 중에서 기준 값보다 작은 값들을 그룹핑에서 제외하는 인코더의 작동 방법.
  4. 제1항에 있어서, 상기 대표값을 계산하는 단계는,
    상기 공간-영역 잔여 블록 값들의 표준 편차를 계산하는 단계; 및
    상기 표준 편차를 상기 대표값으로 결정하는 단계를 포함하는 인코더의 작동 방법.
  5. 제1항에 있어서, 상기 대표값을 계산하는 단계는,
    상기 공간-영역 잔여 블록 값들의 절대값 차이들의 평균(mean of absolute differences(MAD))을 계산하는 단계; 및
    상기 MAD를 상기 대표값으로 결정하는 단계를 포함하는 인코더의 작동 방법.
  6. 제1항에 있어서,
    상기 복수의 양자화 파라미터들은 테이블에 저장되어 있는 인코더의 작동 방법.
  7. 제1항에 있어서
    상기 제1값은 상기 공간-영역 현재 블록 값들의 절대값 차이들의 합(sum of absolute differences(SAD))을 포함하고,
    상기 제2값은 상기 공간-영역 현재 블록 값들로부터 파생된 상기 주파수-영역 값들의 절대값 변환 차이들의 합(sum of absolute transformed differences(SATD))을 포함하고,
    상기 제어 신호는 상기 제1값이 상기 제2값과 같거나 상기 제2값보다 작을 때 상기 제1상태를 갖고, 그 외의 경우 상기 제2상태를 갖는 인코더의 작동 방법.
  8. 제1항에 있어서,
    상기 제어 신호에 응답하여, 양자화된 블록 값들을 상기 선택된 양자화 파라미터를 이용하여 역-양자화하는 단계를 더 포함하는 인코더의 작동 방법.
  9. 제1포맷을 갖는 제1데이터를 제2포맷을 갖는 제2데이터로 변환하는 이미지 신호 프로세서; 및
    상기 제2포맷을 갖는 상기 제2데이터를 인코드하는 인코더를 포함하고,
    상기 인코더는,
    현재 공간-영역 픽셀 값을 이용하여 생성된 제1값을 주파수-영역 값을 이용하여 생성 된 제2값과 비교함으로써, 변환을 수행하지 않음을 나타내는 제1상태 및 수행을 나타내는 제2상태 중 어느 하나를 갖는 제어 신호를 생성하고, 상기 제2데이터에 상응하는 공간-영역 현재 블록 값들에 대한 공간-영역 예측 블록 값들을 생성하는 모드 결정 블록;
    상기 공간-영역 현재 블록 값들과 상기 공간-영역 예측 블록 값들의 차이들에 기초하여 공간-영역 잔여 블록 값들을 생성하는 감산기; 및
    상기 제1상태를 갖는 상기 제어 신호에 응답하여, 상기 공간-영역 잔여 블록 값들의 대표값을 계산하고, 복수의 양자화 파라미터들 중에서 상기 대표값에 해당하는 하나의 양자화 파라미터를 선택하고, 상기 선택된 양자화 파라미터를 이용하여 상기 공간-영역 잔여 블록 값들을 양자화하는 변환/양자화 블록을 포함하는 시스템 온 칩.
  10. 제9항에 있어서, 상기 변환/양자화 블록은,
    상기 제1상태를 갖는 상기 제어 신호에 응답하여 상기 공간-영역 잔여 블록 값들을 주파수-영역 값들로 변환하는 변환 작동을 스킵(skip)하고 상기 공간-영역 잔여 블록 값들의 상기 대표값을 계산하고,
    상기 제2상태를 갖는 상기 제어 신호에 응답하여 상기 변환 작동을 수행하고, 수행 결과에 따라 생성된 변환 잔여 블록을 RDO(rate-distortion optimization) 또는 주어진 양자화 파라미터로 양자화하는 시스템 온 칩.
  11. 제9항에 있어서, 상기 모드 결정 블록은,
    상기 공간-영역 현재 블록 값들을 이용하여 제1값을 생성하고 상기 공간 영역 현재 블록 값들로부터 파생된 주파수-영역 값들을 이용하여 제2값을 생성하고, 상기 제1값과 상기 제2값을 비교하고, 상기 제1값이 상기 제2값과 같거나 상기 제2값보다 작을 때 상기 제1상태를 갖는 상기 제어 신호를 생성하고, 그외의 경우 상기 제2상태를 갖는 상기 제어 신호를 생성하는 변환 제어신호 생성기를 포함하는 시스템 온 칩.
  12. 제11항에 있어서,
    상기 제1값은 상기 공간-영역 현재 블록 값들의 절대값 차이들의 합(sum of absolute differences(SAD))이고,
    상기 제2값은 상기 주파수-영역 값들의 절대값 변환 차이들의 합(sum of absolute transformed differences(SATD))인 시스템 온 칩.
  13. 제9항에 있어서, 상기 변환/양자화 블록은,
    상기 공간-영역 잔여 블록 값들 각각을 복수의 그룹들 중에서 해당하는 그룹으로 그룹핑하고, 그룹핑된 값들의 최대 공약수를 계산하고, 상기 최대 공약수를 상기 대표값으로 결정하고,
    상기 변환/양자화 블록은,
    상기 공간-영역 잔여 블록 값들 중에서 기준 값보다 작은 값들을 그룹핑에서 제외하는 시스템 온 칩.
  14. 제9항에 있어서, 상기 변환/양자화 블록은,
    상기 공간-영역 잔여 블록 값들의 표준 편차를 계산하고, 상기 표준 편차를 상기 대표값으로 결정하는 시스템 온 칩.
  15. 제9항에 있어서, 상기 변환/양자화 블록은,
    상기 공간-영역 잔여 블록 값들의 절대값 차이들의 평균(mean of absolute differences(MAD))을 계산하고, 상기 MAD를 상기 대표값으로 결정하는 시스템 온 칩.
  16. 제9항에 있어서,
    상기 시스템 온 칩은 상기 복수의 양자화 파라미터들을 포함하는 테이블을 저장하는 메모리를 더 포함하고,
    상기 변환/양자화 블록은,
    상기 테이블에 포함된 상기 복수의 양자화 파라미터들 중에서 상기 대표값에 해당하는 상기 하나의 양자화 파라미터를 선택하는 시스템 온 칩.
  17. 카메라;
    상기 카메라로부터 출력된 제1포맷을 갖는 제1데이터를 제2포맷을 갖는 제2데이터로 변환하는 이미지 신호 프로세서; 및
    상기 제2포맷을 갖는 상기 제2데이터를 인코드하는 인코더를 포함하고,
    상기 인코더는,
    현재 공간-영역 픽셀 값을 이용하여 생성된 제1값을 주파수-영역 값을 이용하여 생성 된 제2값과 비교함으로써, 변환을 수행하지 않음을 나타내는 제1상태 및 수행을 나타내는 제2상태 중 어느 하나를 갖는 제어 신호를 생성하고, 상기 제2데이터에 상응하는 공간-영역 현재 블록 값들의 공간-영역 예측 블록 값들을 생성하는 모드 결정 블록;
    상기 공간-영역 현재 블록 값들과 상기 공간-영역 예측 블록 값들의 차이들에 기초하여 공간-영역 잔여 블록 값들을 생성하는 감산기; 및
    상기 제1상태를 갖는 상기 제어 신호에 응답하여, 상기 공간-영역 잔여 블록 값들의 대표값을 계산하고, 복수의 양자화 파라미터들 중에서 상기 대표값에 해당하는 하나의 양자화 파라미터를 선택하고, 상기 선택된 양자화 파라미터를 이용하여 상기 공간-영역 잔여 블록 값들을 양자화하는 변환/양자화 블록을 포함하고,
    상기 변환/양자화 블록은,
    상기 제1상태를 갖는 상기 제어 신호에 응답하여 상기 공간-영역 잔여 블록 값들을 주파수-영역 값들로 변환하는 변환 작동을 스킵(skip)하고 상기 공간-영역 잔여 블록 값들의 상기 대표값을 계산하고,
    상기 제2상태를 갖는 상기 제어 신호에 응답하여 상기 변환 작동을 수행하고, 수행 결과에 따라 생성된 변환 잔여 블록을 RDO(rate-distortion optimization) 또는 주어진 양자화 파라미터로 양자화하는 모바일 컴퓨팅 장치.
  18. 제17항에 있어서, 상기 변환/양자화 블록은,
    상기 공간-영역 잔여 블록 값들 각각을 복수의 그룹들 중에서 해당하는 그룹으로 그룹핑하고, 그룹핑된 값들의 최대 공약수를 계산하고, 상기 최대 공약수를 상기 대표값으로 결정하고,
    상기 변환/양자화 블록은,
    상기 공간-영역 잔여 블록 값들 중에서 기준 값보다 작은 값들을 그룹핑에서 제외하는 모바일 컴퓨팅 장치.
  19. 제17항에 있어서, 상기 변환/양자화 블록은,
    상기 공간-영역 잔여 블록 값들의 표준 편차를 계산하고, 상기 표준 편차를 상기 대표값으로 결정하는 모바일 컴퓨팅 장치.
  20. 제17항에 있어서, 상기 변환/양자화 블록은,
    상기 공간-영역 잔여 블록 값들의 절대값 차이들의 평균(mean of absolute difference(MAD))을 계산하고, 상기 MAD를 상기 대표값으로 결정하는 모바일 컴퓨팅 장치.
KR1020150000521A 2015-01-05 2015-01-05 인코더의 작동 방법과 상기 인코더를 포함하는 장치들 KR102365685B1 (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR1020150000521A KR102365685B1 (ko) 2015-01-05 2015-01-05 인코더의 작동 방법과 상기 인코더를 포함하는 장치들
US14/970,571 US10271050B2 (en) 2015-01-05 2015-12-16 Methods, systems and devices including an encoder for image processing
TW104144462A TWI688260B (zh) 2015-01-05 2015-12-30 包括用於影像處理的編碼器之方法、系統及裝置
DE102016200001.2A DE102016200001B4 (de) 2015-01-05 2016-01-04 Verfahren, Systeme und Einrichtungen mit einem Kodierer für Bildverarbeitung
CN201610006220.4A CN105763879B (zh) 2015-01-05 2016-01-05 包括用于图像处理的编码器的方法、***和设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150000521A KR102365685B1 (ko) 2015-01-05 2015-01-05 인코더의 작동 방법과 상기 인코더를 포함하는 장치들

Publications (2)

Publication Number Publication Date
KR20160084072A KR20160084072A (ko) 2016-07-13
KR102365685B1 true KR102365685B1 (ko) 2022-02-21

Family

ID=56133214

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150000521A KR102365685B1 (ko) 2015-01-05 2015-01-05 인코더의 작동 방법과 상기 인코더를 포함하는 장치들

Country Status (5)

Country Link
US (1) US10271050B2 (ko)
KR (1) KR102365685B1 (ko)
CN (1) CN105763879B (ko)
DE (1) DE102016200001B4 (ko)
TW (1) TWI688260B (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR3062011B1 (fr) 2017-01-17 2020-01-10 Stmicroelectronics (Grenoble 2) Sas Procede et dispositif d'encodage dynamique controle d'un signal numerique multidimensionnel, en particulier un signal d'image et procede et dispositif correspondant de decodage
CN108322742B (zh) * 2018-02-11 2019-08-16 北京大学深圳研究生院 一种基于帧内预测的点云属性压缩方法
CN108335335B (zh) * 2018-02-11 2019-06-21 北京大学深圳研究生院 一种基于增强图变换的点云属性压缩方法
KR102666666B1 (ko) 2018-06-01 2024-05-20 삼성전자주식회사 이미지 부호화 장치 및 이미지 복호화 장치
CN114175644A (zh) 2019-06-28 2022-03-11 Lg 电子株式会社 使用色度量化参数表的图像解码方法及其设备
CN114208181A (zh) * 2019-06-28 2022-03-18 Lg 电子株式会社 用于色度量化参数数据的图像解码方法及其装置
US12010311B2 (en) 2019-06-28 2024-06-11 Lg Electronics Inc. Method for decoding image and apparatus therefor

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013109471A1 (en) * 2012-01-19 2013-07-25 Vid Scale, Inc. System and method of video coding quantization and dynamic range control
US20140153640A1 (en) * 2012-12-05 2014-06-05 Xu Gang Zhao Adaptive single-field/dual-field video encoding

Family Cites Families (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0804035B1 (en) 1996-04-25 2002-06-26 Matsushita Electric Industrial Co., Ltd. Moving picture encoding apparatus and method
US6810083B2 (en) * 2001-11-16 2004-10-26 Koninklijke Philips Electronics N.V. Method and system for estimating objective quality of compressed video data
FR2893808A1 (fr) * 2005-11-22 2007-05-25 Thomson Licensing Sas Procede et dispositif de codage d'une image video
KR100781524B1 (ko) 2006-04-04 2007-12-03 삼성전자주식회사 확장 매크로블록 스킵 모드를 이용한 인코딩/디코딩 방법및 장치
US8331438B2 (en) * 2007-06-05 2012-12-11 Microsoft Corporation Adaptive selection of picture-level quantization parameters for predicted video pictures
EP2286595A1 (en) 2008-06-16 2011-02-23 Dolby Laboratories Licensing Corporation Rate control model adaptation based on slice dependencies for video coding
KR101377660B1 (ko) 2008-09-30 2014-03-26 에스케이텔레콤 주식회사 복수 개의 움직임 벡터 추정을 이용한 움직임 벡터 부호화/복호화 방법 및 장치와 그를 이용한 영상 부호화/복호화 방법 및 장치
US8279924B2 (en) 2008-10-03 2012-10-02 Qualcomm Incorporated Quantization parameter selections for encoding of chroma and luma video blocks
EP2249571A1 (en) 2009-05-04 2010-11-10 Thomson Licensing SA Method and device for encoding an image frame comprising macroblocks
WO2011043793A1 (en) * 2009-10-05 2011-04-14 Thomson Licensing Methods and apparatus for embedded quantization parameter adjustment in video encoding and decoding
KR101457894B1 (ko) * 2009-10-28 2014-11-05 삼성전자주식회사 영상 부호화 방법 및 장치, 복호화 방법 및 장치
KR101813189B1 (ko) 2010-04-16 2018-01-31 에스케이 텔레콤주식회사 영상 부호화/복호화 장치 및 방법
KR101249346B1 (ko) 2011-01-31 2013-04-01 국방과학연구소 적응적 양자화 계수 탐색을 이용한 영상 부호화/복호화 방법 및 장치, 상기 방법을 기록한 컴퓨터로 판독 가능한 기록매체
RU2609094C2 (ru) * 2011-02-10 2017-01-30 Сони Корпорейшн Устройство и способ обработки изображений
GB2492333B (en) 2011-06-27 2018-12-12 British Broadcasting Corp Video encoding and decoding using transforms
US8792550B2 (en) * 2011-08-04 2014-07-29 Qualcomm Incorporated Color/gray patch prevention for video coding
LT2773117T (lt) 2011-10-24 2018-12-27 Infobridge Pte. Ltd. Vaizdo dekodavimo aparatas
KR101830352B1 (ko) 2011-11-09 2018-02-21 에스케이 텔레콤주식회사 스킵모드를 이용한 동영상 부호화 및 복호화 방법 및 장치
JP5748225B2 (ja) 2012-01-26 2015-07-15 日本電信電話株式会社 動画像符号化方法,動画像符号化装置および動画像符号化プログラム
WO2013123632A1 (en) * 2012-02-20 2013-08-29 Thomson Licensing Component sorting based encoding for 3d mesh compression
US9131210B2 (en) * 2012-03-16 2015-09-08 Texas Instruments Incorporated Low-complexity two-dimensional (2D) separable transform design with transpose buffer management
US9426466B2 (en) 2012-06-22 2016-08-23 Qualcomm Incorporated Transform skip mode
GB2503875B (en) * 2012-06-29 2015-06-10 Canon Kk Method and device for encoding or decoding an image
US9591329B2 (en) * 2012-09-28 2017-03-07 Sony Corporation Image processing device and method for encoding and decoding image
US20140169452A1 (en) * 2012-12-14 2014-06-19 Electronics And Telecommunications Research Institute Video encoding method and apparatus using the same
WO2014107255A1 (en) * 2013-01-02 2014-07-10 Dolby Laboratories Licensing Corporation Backward-compatible coding for ultra high definition video signals with enhanced dynamic range
JP6246233B2 (ja) * 2013-01-10 2017-12-13 トムソン ライセンシングThomson Licensing 頂点誤差訂正のための方法および装置
KR20150000521A (ko) 2013-06-24 2015-01-05 한송본 인터넷 쇼핑몰을 이용한 상품 제공 및 기부금 적립방법
EP3026906B1 (en) * 2013-07-22 2020-03-25 Renesas Electronics Corporation Moving image encoding apparatus and operation method thereof
US9142016B2 (en) * 2013-09-27 2015-09-22 Varian Medical Systems, Inc. Methods for image processing
KR20150045819A (ko) * 2013-10-21 2015-04-29 삼성전자주식회사 움직임 보상을 수행하는 비디오 부호화 방법 및 그 장치, 비디오 복호화 방법 및 그 장치
US10182241B2 (en) * 2014-03-04 2019-01-15 Microsoft Technology Licensing, Llc Encoding strategies for adaptive switching of color spaces, color sampling rates and/or bit depths
US9807410B2 (en) * 2014-07-02 2017-10-31 Apple Inc. Late-stage mode conversions in pipelined video encoders
EP3198869A1 (en) * 2014-09-23 2017-08-02 Intel Corporation Intra-prediction complexity reduction using a reduced number of angular modes and subsequent refinement
US9386265B2 (en) * 2014-09-30 2016-07-05 Intel Corporation Content adaptive telecine and interlace reverser

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013109471A1 (en) * 2012-01-19 2013-07-25 Vid Scale, Inc. System and method of video coding quantization and dynamic range control
US20140153640A1 (en) * 2012-12-05 2014-06-05 Xu Gang Zhao Adaptive single-field/dual-field video encoding

Also Published As

Publication number Publication date
TWI688260B (zh) 2020-03-11
CN105763879A (zh) 2016-07-13
DE102016200001B4 (de) 2023-02-02
US10271050B2 (en) 2019-04-23
TW201637444A (zh) 2016-10-16
KR20160084072A (ko) 2016-07-13
US20160198156A1 (en) 2016-07-07
DE102016200001A1 (de) 2016-07-07
CN105763879B (zh) 2020-06-02

Similar Documents

Publication Publication Date Title
KR102365685B1 (ko) 인코더의 작동 방법과 상기 인코더를 포함하는 장치들
US9106888B2 (en) Reducing quantization artifacts using neighbor-based weighted dithering
KR102390162B1 (ko) 데이터 인코딩 장치 및 데이터 인코딩 방법
KR102218196B1 (ko) 인코더, 이의 동작 방법과, 상기 인코더를 포함하는 장치들
KR102503900B1 (ko) 양자화 파라미터를 적응적으로 결정하는 인코더 및 이를 포함하는 애플리케이션 프로세서
CN112087628A (zh) 使用两级帧内搜索对视频进行编码
US10863177B2 (en) Video decoding apparatus, computing system including the same, and video decoding method
KR102423880B1 (ko) 인코더의 작동방법과 상기 인코더를 포함하는 시스템 온 칩의 작동 방법
US10841659B2 (en) Video encoding apparatus and video encoding system
CN109672890B (zh) 视频编码器件及编码器
US10412386B2 (en) System on chip and data processing system including the same
US10609388B2 (en) Method and apparatus for encoding and decoding image
US10694178B2 (en) Video processing device for encoding frames constituting hierarchical structure
US10097830B2 (en) Encoding device with flicker reduction
KR102161741B1 (ko) HEVC(high efficiency video coding)에서 코딩 유닛에 대한 양자화 파라미터를 변화시키는 방법과 장치, 및 시스템
KR102257379B1 (ko) 비디오 인코딩 회로 및 그것을 이용하는 비디오 인코딩 방법
TW201918069A (zh) 多重編碼器及多重編碼器編碼系統

Legal Events

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