KR100771640B1 - 고속 모드 결정 기능을 구비한 h.264 인코더 - Google Patents

고속 모드 결정 기능을 구비한 h.264 인코더 Download PDF

Info

Publication number
KR100771640B1
KR100771640B1 KR1020070043673A KR20070043673A KR100771640B1 KR 100771640 B1 KR100771640 B1 KR 100771640B1 KR 1020070043673 A KR1020070043673 A KR 1020070043673A KR 20070043673 A KR20070043673 A KR 20070043673A KR 100771640 B1 KR100771640 B1 KR 100771640B1
Authority
KR
South Korea
Prior art keywords
mode
skip
intra
satisfied
encoder
Prior art date
Application number
KR1020070043673A
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 주식회사세오
Application granted granted Critical
Publication of KR100771640B1 publication Critical patent/KR100771640B1/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/115Selection of the code volume for a coding unit prior to coding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8007Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors single instruction multiple data [SIMD] multiprocessors
    • 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/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • H04N19/122Selection of transform size, e.g. 8x8 or 2x4x8 DCT; Selection of sub-band transforms of varying structure or type
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Discrete Mathematics (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

본원 발명은 H.264 인코딩시의 모드결정 과정을 고속으로 수행하는 것에 의해 H.264 인코딩을 최적화할 수 있도록 하는 고속 모드 결정 기능을 구비한 H.264 인코더를 제공하는 것을 그 목적으로 하며,
외부 영상 신호를 입력 받은 후 프레임별로 매크로 블록을 생성하는 매크로블록생성부와; 상기 매크로블로생성부에서 생성된 매크로블록의 영상데이터에 스킵(SKIP) 모드 조건을 적용하여 스킵(SKIP) 모드를 만족하지 않는 경우 인터모드를 결정하는 인터모드결정과정을 수행하고, 상기 인터모드 결정 과정 이후, 인트라모드 조건을 만족하는지를 판단하여 인트라모드 조건을 만족하는 경우 인트라모드를 결정하는 인트라모드 결정 과정을 수행하는 것에 의해 신호 처리 대상 블록을 결정하는 모드결정부와; 모드결정부에서 결정된 신호 처리 대상 블록의 영상 데이터 신호를 입력 받은 후 H.264 코드로 변환하여 출력하는 H.264 코드생성부를 포함하여 구성되는 것을 특징으로 한다.
H.264, MPEG4, 인코더(Encoder), 인터모드, 인트라모드, 스킵(SKIP) 조건

Description

고속 모드 결정 기능을 구비한 H.264 인코더{H.264 ENCODER HAVING A FAST MODE DETERMINNING FUNCTION}
도 1은 종래기술의 H.264에서 사용되는 인터모드를 나타내는 도면,
도 2는 종래기술의 H.264에서 4*4 인트라모드 예측을 나타내는 도면,
도 3은 종래기술의 H.264 모드 결정 과정을 나타내는 순서도,
도 4는 종래기술의 h.264 인코더(부호기)에서의 주요 모듈별 수행시간 비율을 나타내는 도면,
도 5는 본원 발명의 일 실시 예에 따르는 고속 모드 결정 기능을 구비한 H.264 인코더의 블록 구성도,
도 6은 본원 발명의 고속 모드 결정 기능을 구비한 H.264 인코더의 인코딩 과정 중 고속 모드 결정과정을 나타내는 순서도.
도 7은 현재 제안한 고속 알고리즘을 이용하여 제작한 H.264 인코더 Mainboard를 나타내는 도면,
도 8은 현재 제안한 고속 알고리즘을 이용하여 제작한 H.264 인코더 시스템내 각 블록동작을 나타내는 도면이다.
* 도면의 주요 부호에 대한 설명 *
10: H.264 인코더
11: 매크로블록생성부 12: 모드결정부
13: H.264코드생성부
본원 발명은 H.264 인코딩에 관한 것으로서, 더욱 상세하게는, H.264 인코딩시의 모드결정 과정을 고속으로 수행하는 것에 의해 H.264 인코딩을 최적화할 수 있도록 하는 고속 모드 결정 기능을 구비한 H.264 인코더에 관한 것이다.
일반적으로 H.264 국제 비디오 표준은 차세대 MPEG4 표준기술로서 통상 H.264/AVC(Advanced Video Coding)이라고 하며 MPEG-4 Part 10 또는 MPEG-4 AVC라고도 한다.
상술한 바와 같이 H.264 국제 비디오 표준에서는 움직임 예측 및 모드 결정 방법을 사용하며, 상기 움직임 예측 및 모드 결정 방법은 가변블록을 이용한 움직임 보상 기술을 적용한 것으로서 매크로블록의 크기를 16*16에서 4*4까지 나눈 후 비트율-왜곡 최적화 기법을 사용하기 때문에 영상의 특성을 잘 반영하므로 전체적으로 15%정도 부호화 효율을 증가시킨다.
이러한 비디오 처리를 위하여 H.264에서는 인터모드와 인트라모드를 구별하여 설정한다. 이를 더욱 상세히 설명하면, H.264는 매크로블록 모드를 위해 5개의 인터모드와 3개의 인트라모드를 지원한다. 이중 스킵(SKIP), 16*16, 16*8, 8*16과 P8*8은 인터모드에 해당되며 움직임 예측을 통한 매크로블록 부호화에 이용된다. P8*8 모드는 각각의 8*8 블록 안에서 8*8, 8*4, 4*8, 4*4 중의 하나로 나누어질 수 있다. 도 1은 H.264에서 사용되는 인터모드를 나타낸다.
H.264는 인트라모드 예측을 위해 인트라4*4, 인트라8*8, 인트라16*16을 제공하며, 휘도 블록을 위한 인트라8*8 모드는 FRExt 프로파일에서만 제공된다. 인트라모드에서는 이전에 부호화된 유효한 이웃 매크로블록의 경계 화소를 이용해 현재 매클로블록을 예측한다.
도 2는 H.264 표준에서 제공하는 9가지의 4*4 인트라모드 예측을 나타낸다.
도 2에 도시된 바와 같이 휘도 블록의 인트라4*4와 인트라8*8은 각각 4*4와 8*8 블록 단위로 이미 부호화된 주변의 화소값들을 이용하여 총 9가지 예측 방향을 이용하여 예측을 수행한다. 그리고 도면에는 미 도시되어 있으나 인트라16*16은 16*16 블록 단위로 4가지 예측 방향을 이용해 현재 매크로블록을 예측한다.
이렇게 예측된 인터모드와 인트라모드들 중에서 비트율-왜곡 비용이 가장 작은 모드가 최종 매크로블록 모드로 결정된다. 인터모드에서 색차 신호는 휘도 신호의 움직임 벡터를 이용해 예측되지만, 인트라모드에서 색차 신호는 휘도 신호와 별도로 예측된다. 인트라모드에 대한 색차 신호 예측은 8*8 블록 단위로 이루어지며, 각 8*8 블록당 4가지 예측 방향을 제공한다.
다음으로 종래기술의 H.264에서의 매크로블럭 모드결정 방법을 상세히 설명한다.
매크로블록을 어떤 모드로 부호화할 것인가 결정하는 것은 H.264 부호기(인코더)의 핵심이다. 기존의 비디오 압축 부호화 표준과는 달리 H.264는 여러 개의 모드 중에서 최적의 모드를 결정하기 위해서 왜곡도와 함께 발생비트를 고려한다. 이를 위해 라그랑지안(Lagrangian) 함수에 기반한 비용함수를 사용한다. 각 블록에 대한 움직임 벡터 결정과 매크로블록의 최적모드를 결정하기 위해 사용되는 이 함수는 왜곡도와 발생 비트량을 나타내는 항과 발생 비트량의 가중치 값인 라그랑지안 계수 (Lagrangian multiplier)로 이루어져 있다
비트율-왜곡 최적화 기법에서는 각 매크로블록 모드에 대한 비트율-왜곡 비용을 계산한다. 인터모드에서는 이 값을 계산하기 전에 움직임 벡터와 참조영상을 결정해야 한다. 가변 블록에 대한 움직임 벡터와 참조영상은 수학식 1의 최소값으로 결정된다.
Figure 112007033594522-pat00001
여기서 λmotion은 라그랑지안 계수로, 양자화 계수에 의존하는 값을 갖는다. R(s,r(MV, REF))는 움직임 벡터와 참조영상을 부호화하는데 필요한 비트량으로 표 참조 연산에 의해 얻어진다. SAD(s,r(MV, REF))는 원 영상과 움직임 예측에 의해 복원된 영상과의 차에 대한 절대값의 합이고, 블록에 대하여 다음의 수학식 2로 정의된다.
Figure 112007033594522-pat00002
여기서 s와 r은 각각 원 블록과 복호된 블록의 화소값을 나타낸다. h와 V는 각각 가변 블록의 넓이와 높이이며, mx와 my는 움직임 벡터이다.
P8*8 모드에서 각 8*8 블록에 대한 최적의 하위 매크로블록 모드의 결정, 인트라모드에서 최적의 예측 방향 결정과 매크로블록에 대한 최적모드 결정은 수학식3의 최소값에 의해 결정된다.
Figure 112007033594522-pat00003
여기서 λmode는 λmotion의 제곱값이다. M은 매크로블록 모드, 예측방향 모드 또는 하위 매크로블록 모드이다. R(s,r,M)은 M에 해당하는 모드로 부호화했을 때, 실제로 발생되는 비트량이며, H.264 참조 소프트웨어에서는 이 값을 계산하기 위해 모든 부호화 과정을 수행한다. SSD(s,r,M)는 원 영상과 복호된 영상과의 차이에 대한 제곱의 합이고, 다음의 수학식 4에 의해 계산된다.
Figure 112007033594522-pat00004
P8x8 모드의 하위 모드결정과 인트라모드에서 예측방향 결정의 경우에 수학식 1과 수학식 3은 휘도 성분만을 고려하여 계산하고, 최종 모드결정을 위한 경우는 휘도와 색차 성분 모두에 대해서 계산을 수행한다.
도 3은 종래기술의 H.264 모드 결정 과정을 나타내는 순서도이다.
도 3에서 (A)는 인터모드를 위한 움직임 벡터와 참조영상을 결정하는 과정이다. 16*16과 16*8, 8*16 모드의 각각에 대해 수학식 1의 비용함수가 최소값을 가지는 움직임 벡터와 그때의 참조영상이 저장된다. P8*8 모드의 하위 최적모드를 결정하는 과정은 8*8과 8*4, 4*8, 4*4 모드에 대해 움직임 벡터와 참조영상을 결정하는 과정과 이 값들을 이용하여 수학식 3을 통해 최적모드를 결정하는 두 과정으로 이루어져 있다. 스킵(SKIP) 모드의 움직임 벡터를 계산한 후에 (B) 과정에서는 수학식 3을 이용하여 최적모드를 결정하게 된다. 이 과정에서는 인트라모드들을 포함하게 되며 모든 모드들에 대해서 비용함수 값이 최소가 되는 모드가 최적모드가 된다
그러나 상술한 바와 같이 H.264 국제 비디오 표준에서 지원하는 가변블록을 이용한 움직임 보상 기술은 가변 블록 움직임 보상을 위한 매크로블록의 모드를 결 정하기 위해 많은 계산량을 요구하는 비트율-왜곡 최적화 기법을 사용하기 때문에 그 복잡도가 증가하게 되고, 이로 인해 H.264 인코딩 과정은 움직임 예측과 모드결정 부분에 요구되는 많은 계산적 복잡도로 인해 실시간으로 인코딩을 처리하는 것이 사실상 불가능하게 되는 문제점을 가진다.
따라서 본원 발명은 상술한 종래기술의 문제점을 해결하기 위한 것으로서, H.264 인코딩 과정에서 움직임 예측 및 모드 결정과정을 수행함에 있어, 조기에 스킵(SKIP) 조건을 만족하는 매크로 블록에 한하여 모드결정과정을 종료하도록 하고, 인터 화면에 대해서는 인트라모드 검색을 부분적으로 수행하며, 인터모드들 간의 검색시 각 모드들을 계층적으로 체크하는 것에 의해 모든 모드를 다 체크하지 않고 조기에 주어진 임계값을 만족하면 중간에 모드결정과정을 종료하도록 하여 H.264 인코딩을 위한 모드를 신속하게 결정하고 이에 의해 H.264 인코딩 과정을 고속으로 처리할 수 있도록 하는 고속 모드 결정 기능을 구비한 H.264 인코더를 제공하는 것을 그 목적으로 한다.
상술한 목적을 달성하기 위한 본원 발명의 고속 모드 결정 기능을 구비한 H.264 인코더는, 외부 영상 신호를 입력 받은 후 프레임별로 매크로 블록을 생성하는 매크로블록생성부와; 상기 매크로블로생성부에서 생성된 매크로블록의 영상데이터에 모드 결정 대상 블록의 주변에 이미 모드가 결정된 매크로 블록들(상단과 좌측)이 하나라도 스킵(SKIP)모드로 되어있는 경우 스킵(SKIP)모드에 대한 비트율 왜곡값을 계산하고 주어진 양자화 파라미터값을 고려하여 스킵(SKIP)모드에 대해서 비트율 왜곡값이 주어진 임계값 이하일 경우인 경우 모드 결정 과정을 종료하는 스킵(SKIP) 모드 조건을 적용하여 스킵모드를 결정하는 스킵모드결정과정을 수행하고, 상기 스킵(SKIP) 모드를 만족하지 않는 경우 인터모드를 결정하는 인터모드결정과정을 수행하고, 상기 인터모드 결정 과정 이후, 인트라모드 조건을 만족하는지를 판단하여 인트라모드 조건을 만족하는 경우 인트라모드를 결정하는 인트라모드 결정 과정을 수행하는 것에 의해 신호 처리 대상 블록을 결정하는 모드결정부와; 모드결정부에서 결정된 신호 처리 대상 블록의 영상 데이터 신호를 입력 받은 후 H.264 코드로 변환하여 출력하는 H.264 코드생성부;를 포함하여 구성되는 것을 특징으로 한다.
상술한 구성에서 상기 외부 영상은 카메라 등의 촬상장치 또는 비디오 플레이어, CD·DVD 등의 영상 재생장치에서 입력되는 영상신호를 말한다.
상기 모드결정부의 스킵(SKIP) 모드 결정과정은 상기 스킵(SKIP) 모드 조건(조기 스킵(SKIP)모드 조건)이 만족되지 않으면 16*16모드에 대한 비트 왜곡 값을 계산하여 상기 스킵(SKIP)모드에 대한 비트-왜곡값이 16*16모드에 대한 비트율 왜곡값보다 적을 경우 스킵(SKIP)모드로 결정하고 모드결정과정을 조기에 종료하는 과정인 것을 특징으로 한다.
상기 모드결정부의 인터모드 결정 과정은, 상기 스킵(SKIP)모드에 대한 비트-왜곡값이 16*16모드에 대한 비트율 왜곡값보다 큰 경우 P8*8 모드에 대한 비트율 왜곡값을 구한 후 구해진 P8*8 모드에 대한 비트율 왜곡값이 16*16 + C 값보다 작은 경우 P8*8 모드로 결정한 후 모드 결정과정을 종료하는 P8*8 모드 결정 과정과; 상기 P8*8 모드에 대한 비트율 왜곡값이 16*16 + C 값보다 큰 경우 16*8, 8*16 모드로 모드를 결정한 후 비트왜곡을 계산하는 16*8·8*16 모드 결정과정;의 영상데이터처리를 수행하는 것을 특징으로 한다. 여기서 C 값은 모드결정을 더욱 고속으로 하기위해 사용되는 임계값으로서 C값이 클 수록 조기에 P8*8모드로 최적모드가 결정되어 빠른 고속 모드결정이 가능하며 C값이 적을수록 압축 효율이 높아지게 된다. 따라서 적절한 C 값을 통해 압축효율을 유지하면서 동시에 고속모드결정이 가능하도록 설계할 수 있다.
상기 모드결정부의 인트라모드 결정과정은, 상기 인터모드 결정 과정 이후, 상기 인트라모드 조건을 만족하는 지를 판단하는 인트라모드 결정 판단 과정과; 상기 인트라모드 결정 판단 과정의 판단 결과 인트라모드 조건을 만족하는 경우 인트라모드의 비트 왜곡을 계산하여 인트라모드를 설정하고, 만족하지 않는 경우 인트라모드의 결정을 수행하지 않고 처리과정을 종료하는 상세 인트라모드 결정 과정;의 영상데이터처리를 수행하는 것을 특징으로 한다.
상기 모드결정부는 SIMD(single instruction multiple data) 명령어에 의해 영상데이터처리를 수행하도록 구성되는 것을 특징으로 한다.
이하, 첨부도면을 참조하여 본원 발명을 더욱 상세히 설명한다.
도 4는 종래기술의 H.264 인코더(부호기)에서의 주요 모듈별 수행시간 비율을 나타내는 도면이다.
도 4에 도시된 바와 같이, 비용 생성을 위한 변환과 모드 결정과정이 많은 부분을 차지하는 것을 알 수 있다. 모드 결정과정에서 사용되는 수학식 3의 발생 비트량을 계산하기 위해서는 각 모드에 대해 DCT/Hardamard 변환 및 양자화/역양자화, 역 DCT/Hadamard 변환과정, 그리고 엔트로피 부호화 과정을 거치게 된다. 엔트로피 부호화 과정에서 사용되는 Exp-Golomb VLC와 CAVLC, CABAC은 다소 복잡한 계산 과정을 필요로 하지만, 실제 부호기에서 차지하는 복잡도는 그렇게 크지 않다. 따라서 부호기의 복잡도를 줄이기 위해서는 고속 모드결정 방법의 개발이 필수적이다. 특히, 고속 모드결정 방법의 핵심은 단순히 최적모드 결정과정의 복잡도를 줄이는 것 외에 실제로 가장 큰 부호화 시간을 차지하는 움직임 예측 과정의 복잡도를 줄이는 것이다.
또한, 일반적으로 같은 영상에 대해서도 양자화 계수값이 변하면 모드 분포의 변화가 심하며, 일반적으로 양자화 계수값이 큰 경우에는 스킵(SKIP) 모드와 16*16 모드의 빈도가 양자화 계수값이 작은 경우보다 증가한다. 이는 DCT 연산 후 큰 양자화 계수로 인한 발생 비트량의 변화로 최적모드가 변했기 때문이다. 실제 매크로블록이 복잡한 화면의 부분이라 할지라도, 양자화 계수가 커질수록 DCT한 결과 계수들이 0을 가지는 경우가 많아지며 따라서, 최적모드가 스킵(SKIP)이나 16*16으로 결정되는 빈도수가 증가하게 되는 것이다. 영상에서 매크로블록이 배경이나 움직임이 느린 부분에 속해 있을 경우에는 최적모드가 스킵(SKIP)이나 16*16 모드로 결정되는 경우가 많다. 이는 큰 블록을 사용하여 매크로블록을 부호화해도 왜곡도가 충분히 작기 때문에 작은 블록으로 부호화할 필요가 없기 때문이다. 블록을 작게 나누어 부호화하여 왜곡도가 감소하더라도, 각 블록에 대한 정보를 복호기(디코더:Decoder)에 알려주어야 하기 때문에 비트량이 증가하게 된다
H.264 모드결정에 사용되는 비트율-왜곡 최적화 기법은 각 매크로블록 모드에 대한 비트율-왜곡 비용을 계산한다. 인터모드에서는 이 값을 계산하기 전에 움직임 벡터와 참조영상을 결정해야 한다. 따라서, 비트율-왜곡 자체를 계산하는 것이 많은 계산량을 요구하게 된다.
도 5는 본원 발명의 일 실시 예에 따르는 고속 모드 결정 기능을 구비한 H.264 인코더(이하, '인코더(10)'라 함)의 블록 구성도이다.
본원 발명의 일 실시 예에 따르는 도 5의 인코더(10)는 도 4를 참조한 분석을 바탕으로 모드 결정을 고속화할 수 있도록 하여 H.264 인코딩을 고속으로 처리할 수 있도록 하는 것으로서, 도 5에 도시된 바와 같이, 카메라 등의 촬상 장치의 출력 영산신호 또는 영상 재생장치의 출력 영상신호 등의 외부 영상 신호를 입력 받은 후 프레임별로 매크로 블록을 생성하는 매크로블록생성부(11)와; 상기 매크로 블로생성부(11)에서 생성된 매크로블록의 영상데이터에 스킵(SKIP) 모드 조건을 적용하여 스킵(SKIP) 모드를 만족하지 않는 경우 인터모드를 결정하고, 상기 인터모드 결정 이후, 인트라모드 조건을 만족하는지를 판단하여 인트라모드 조건을 만족하는 경우 인트라모드를 결정하는 인트라모드 결정 과정을 수행하는 것에 의해 신호 처리 대상 블록을 결정하는 모드결정부(12)와; 모드결정부(12)에서 결정된 신호 처리 대상 블록의 영상 데이터 신호를 입력 받은 후 H.264 코드로 변환하여 출력하는 H.264 코드생성부(13)를 포함하여 구성되는 것을 특징으로 한다.
상술한 구성을 가지는 본원발명의 인코더(10)는 모드결정부(12)에서 영상데이터 처리를 위한 모드 결정을 고속으로 수행하는 것에 의해 H.264 인코딩을 고속으로 처리할 수 있도록 한다.
도 6은 본원 발명의 인코더(10)의 인코딩 과정 중 고속 모드 결정과정을 나타내는 순서도이다.
도 6은 도 4를 참조한 분석을 바탕으로서 모드결정을 고속화할 수 있도록 하는 방법을 제공하는 것에 의해 도 5의 고속 모드 결정 기능을 가지는 H.264 인코더 장치가 H.264 코드를 고속으로 인코딩할 수 있도록 한다.
상술한 바와 같은 고려사항 및 도 6를 참조하여 도 5의 모드결정부(12)에서의 고속 모드 결정 기능을 구비한 H.264 인코더(10)에서의 고속 모드 결정 과정을 설명하면, 도 6에 도시된 바와 같이, 인코더(10)는 외부로부터 영상신호가 입력되면, 매크로블록생성부(11)가 외부로부터 입력되는 영상신호들을 프레임별로 매크로 블록으로 변환하여 출력한다. 이 후, 모드결정부(12)는 처음에 조기 스킵(SKIP) 모드 결정 조건을 만족하는지 검사한다. 이 때 조기 스킵(SKIP)모드의 조건은 모드 결정 대상 블록의 주변에 이미 모드가 결정된 매크로 블록들(상단과 좌측)이 하나라도 스킵(SKIP)모드로 되어있는 경우 스킵(SKIP)모드에 대한 비트율 왜곡값을 계산하고 주어진 양자화 파라미터값을 고려하여 스킵(SKIP)모드에 대해서 비트율 왜곡값이 주어진 임계값 이하일 경우인지를 판단하는 것이다. 이를 더욱 상세히 설명하면, 일반적으로 스킵모드는 가장 간단히 부호화 과정을 수행하는 모드이다. 일단 스킵모드라고 가정하여 해당 매크로블록(16x16화소)을 부호화했을 때, 최종적으로 얻어진 매크로 블록과 원래의 영상(매크로블록)과 차이가 생긴다. 만약 스킵모드로 부호화했을 때 원래의 영상과 차이가 크다면, 다른 모드로 검색해야 하며, 그렇지 않은 경우 스킵모드를 최종모드로 결정하고 모드결정과정을 종료한다. 이때, 원래의 영상과 스킵모드로 가정해서 부호화해서 얻어진 영상(매크로블록) 간의 차이를 H.264에서 일반적인 왜곡의 척도로 사용하는 비트율 왜곡 값(수학식 3에 의해 얻어지는 값)을 통해서 수치적으로 계산할 수 있고 이때 얻어진 비트율 왜곡 값이 일정수준(임계값) 이하인 경우 왜곡 정도가 작다고 간주하여 스킵모드를 최종모드로 결정하며 그렇지 않은 경우 다른 모드를 검색하게 된다. 이때 임계값의 결정은 주어진 양자화 파라미터를 기반으로 수학적으로 얻어지는 평균 비트율 왜곡 값을 기준으로 삼는다(S11).
상술한 바와 같은 스킵(SKIP)모드 조건을 만족하는지에 대한 S11 과정의 판단 결과 주어진 조건을 만족하는 경우에는 주어진 모드 결정 과정을 종료하는 것에 의해 처리과정을 종료한다(S12).
이와 달리 S11 과정의 판단 결과 주어진 스킵(SKIP) 모드 조건(조기 스킵(SKIP)모드 조건)이 만족되지 않으면 16*16모드에 대한 비트 왜곡 값을 계산한다(S13).
이 후 스킵(SKIP)모드에 대한 비트-왜곡값과 16*16모드에 대한 비트율 왜곡값을 비교한다(S14).
S14 과정의 비교 결과 스킵(SKIP)모드에 대한 비트-왜곡값이 16*16모드에 대한 비트율 왜곡값보다 적을 경우 최적의 모드가 스킵(SKIP)으로 결정되고 모드결정과정이 조기에 종료된다(S15).
이와 달리 S14 과정의 비교 결과 스킵(SKIP)모드에 대한 비트-왜곡값이 16*16모드에 대한 비트율 왜곡값보다 큰 경우에는, 16*8과 8*16 모드에 대한 비트 왜곡을 계산하지 않고 P8*8 모드에 대한 비트율 왜곡값을 구한다(S16).
이 후 S16 과정에서 구해진 P8*8 모드에 대한 비트율 왜곡값이 16*16 + C 값 비교하여 16*8과 8*16 모드에 대한 비트율 왜곡값을 계산해야하는지 판단한다. 일반적으로, 16x16 모드를 통해서 얻어진 비트율 왜곡값이 P8x8모드를 통해서 얻어진 제이 모드(J mode) 값보다 크면 P8x8모드로 모드를 결정하며 그렇지 않은 경우 16x16, 16x8, 8x16 모드 중에서 다시 최종 모드를 결정해야 한다. 하지만, 본원 발명의 고속 알고리즘 구현에 있어서 상충되는 두 조건은 압축 효율과 계산적인 복잡도이다. 처음 16x16모드와 P8x8모드를 비교하여 두 모드에서 얻어진 비용 값이 큰 차이가 없다면 실제 압축 효율에 있어서도 매우 유사한 성능을 나타낸다. 따라서 16x16모드와 P8x8모드의 두 모드에서 얻어진 비용 값이 큰 차이가 없다면 P8x8모드로 최종모드를 쉽게 결정하기 위하여 사용하는 것이 바로 16x16 모드의 비용 값에 추가적으로 'C'를 더하여 사용한다. 실제 구현에서는 C는 더해지는 상수 값이 아니라, 비례 값으로서 16x16 비용 값 x C(=1.1)로 적용될 수도 있다. 이 경우 16x16(C) > P8x8 의 관계식을 이용하게 된다(S17).
S17 과정의 판단 결과, P8*8 모드에 대한 비트율 왜곡값이 16*16 + C 값보다 작은 경우에는 모드를 P8*8 모드로 결정한 후 모드 결정과정을 종료한다(S18).
이와 달리 S17 과정의 판단 결과, P8*8 모드에 대한 비트율 왜곡값이 16*16 + C 값보다 큰 경우에는 16*8·8*16 모드로 모드를 결정한 후 비트왜곡을 계산한다(S19).
다음으로 인트라모드에 대한 결정을 수행한다. 통계적으로, 인터화면에서 인트라모드가 최종모드로 결정되는 경우는 2%미만이며 실제로, 인트라모드로 부호화가 필요한 경우는 인터화면에서 얻어지는 비용 값이 매우 클 경우이다. 일 예로 위의 인터 모드결정 과정을 통해 얻어진 최종 인터모드로 얻어진 비용 값이 상기 스킵모드 결정을 위한 임계값의 설정을 위해 얻어지는 주어진 양자화 파라미터를 기반으로 얻어지는 평균 비트율 왜곡 값보다 3배 이상인 경우에만 인트라모드를 검색하도록 설정할 수 있다. 즉, 인터 매크로 블록의 경우 인트라모드가 거의 최적의 모드로 발생하지 않기 때문에 인트라모드를 항상 체크하는 것은 많은 계산적 중복성을 초래하게 된다. 이에 제안된 본원 발명의 고속 모드 결정 방법에서는 인터모드들에서 결정된 최적의 모드의 비트왜곡값이 주어진 양자화 계수를 고려해서 결정 된 임계값 이하인 경우에는 인트라모드 검색을 생략한다.
따라서, 상술한 S19 과정의 처리과정 이 후 인트라모드 조건을 만족하는 지를 판단한다. 이때의 인트라모드 조건은 상술한 바와 같이 인터 모드결정 과정을 통해 얻어진 최종 인터모드로 얻어진 비용 값이 상기 스킵모드 결정을 위한 임계값의 설정을 위해 얻어지는 주어진 양자화 파라미터를 기반으로 얻어지는 평균 비트율 왜곡 값보다 3배 이상인 경우 등으로 설정될 수 있다(S20).
S20 과정의 판단 결과 인트라모드 조건을 만족하지 않는 경우에는 모드 결정 과정을 종료한다(S21).
이와 달리 S20 과정의 판단 결과 인트라모드 조건을 만족하는 경우에는 인트라모드 비트 왜곡을 계산한 후 최종 인트라모드를 결정한 후 처리과정을 종료한다(S22, S23)
상술한 바와 같은 모드 결정이 수행된 후에는 인코더 장치의 H.264 코드생성부(13)가 모드 결정된 블록에 대한 H.264 인코딩 신호 처리를 수행하여 H.264 코드를 생성하여 출력하는 것에 의해 영상신호를 H.264 영상신호로 인코딩하게 된다.
상술한 바와 같은 본원 발명의 처리과정을 소프트웨어로 구현하는 경우에 있어서 SIMD 명령어를 이용하여 최적화할 수 있다.
인텔 펜티엄 아키텍처에서부터는 SIMD(Single Instruction Multiple Data), 즉 여러 데이터에 대해 한 명령어로 같은 연산을 동시에 수행하는 명령어가 지원되어 MMX, SSE, SSE2라는 이름으로 제공되고 있다. 이같은 명령어는 data-level parallelism이 크게 존재하는 멀티미디어 응용에서 쓰이기에 효과적이다. 따라서 본원 발명이 적용되는 소프트웨어에서는 SIMD명령어를 적용하는 것이 바람직하다. 이 경우, 본원 발명이 적용되는 소프트웨어는 CPU에 따라 최적의 성능을 갖도록 DCT 변환, 디 블록킹 필터, 움직임 예측 및 보상과정 및 양자화 과정에 대해서 MMX, SSE, SSE2 명령어를 사용하여 반복적인 계산과정을 고속으로 처리할 수 있도록 한다.
상술한 본원 발명의 고속 모드 결정 기능을 가지는 H.264 인코더(10)는 스킵(SKIP) 모드를 조기에 검색할 때 주변에 있는 매크로 블록들의 모드정보를 이용하여 조기에 스킵(SKIP) 조건을 만족하는 매크로 블록에 한하여 모드결정과정을 종료하도록 하였다. 또한 인터 화면인 경우에는 인트라모드가 거의 발생하지 않으며 사실상 압축효율에 크게 영향을 주지 않으므로 인터 화면에 대해서는 인트라모드 검색을 부분적으로 수행하도록 하였다. 인터모드들 간의 검색에서도 스킵(SKIP)모드와 16x16모드, 16x8, 8x16모드, 8x8모드등을 계층적으로 체크하여 모든 모드를 다 체크하지 않고 조기에 주어진 임계값을 만족하면 중간에 모드결정과정을 종료하도록 하였다.
또한 상술한 본원 발명은 H.264 기반의 실시간 인코딩을 신속하게 처리할 수 있도록 단순 반복되는 계산이 요구되는 DCT 변환, 디 블록킹 필터, 움직임 예측 및 보상과정 및 양자화 과정에 대해서 SSE2, SSE3 명령어를 이용한 SIMD 명령어를 사용하여 기존의 H.264 비디오 참조 소프트웨어에 구현된 움직임 예측 및 모드결정과 정 알고리즘을 새롭게 구현하는 것에 의해 H.264 인코딩을 위한 모드 결정을 고속으로 수행할 수 있도록 하였다.
상술한 바와 같은 특징을 가지는 본원 발명을 통해 얻어진 H.264 인코더는 압축성능을 그대로 유지하면서, Pentium-4 3.6GHz PC를 기준으로 VGA급 영상을 초당 65프레임에서 80프레임까지 인코딩할 수 있음을 확인하였다. 또한 동일 PC를 기준으로 Full HD급 영상을 초당 20프레임까지 인 코딩할 수 있음을 확인하였다.
도 7은 현재 제안한 고속 알고리즘을 이용하여 제작한 H.264 인코더 메인보드(Mainboard)를 나타내는 도면이고, 도 8은 현재 제안한 고속 알고리즘을 이용하여 제작한 H.264 인코더 시스템내 각 블록동작을 나타내는 도면이다.
도 7 및 도 8에서 본원 발명의 고속모드 결정을 수행하여 영상신호를 H.264 코드로 압축하는 인코딩과 압축된 신호를 팽창하여 영상신호를 출력하는 디코딩을 하나의 칩에서 수행할 수 있도록 하나의 영상신호처리칩(WWW10000BA or WWW20000BA encoder or WWW20001BA decoder)의 형태로 구현하였으며, 상기 메인보드는 PCI소켓을 구비하여 PC의 메인보드의 PCI 슬롯에 장착되도록 구현하였다. 상기 영상신호처리칩은 본원 발명의 고속 모드 결정에 의한 영상신호의 압축 및 팽창 신호처리를 수행하게 된다.
상기 메인보드에 의한 동작을 구체적으로 설명하면 비디오 아웃풋 모듈(Video Output Mezzanine Module)을 통해 입력되는 영상신호는 스위치(Switch x4)를 통해 영상신호처리칩으로 전송된 후 영상신호처리칩에서 본원 발명의 고속 모드결정방식이 적용된 인코딩방식에 의해 인코딩되어 H.264 코드로 압축되고, 압 축된 H.264 영상신호는 영상신호처리칩에 의해 디코딩되어 팽창된 후 스위치(Switch x4)에 의해 스위칭된 후 비디오 인풋 모듈(Video Input Mezzanine Module)에서 출력된다.
상술한 바와 같은 구성을 가지는 본원 발명의 H.264 인코더는 H.264 모드 선택 과정에서 모드 선택 절차를 최소화하고, H.264 인코딩을 위한 소프트웨어에 SIMD 명령어를 적용하는 것에 의해 H.264의 계산 속도를 현저히 향상시키며, 이에 의해 H.264 인코더의 성능을 현저히 향상시키는 효과를 제공한다.

Claims (5)

  1. 외부 영상 신호를 입력 받은 후 프레임별로 매크로 블록을 생성하는 매크로블록생성부와;
    상기 매크로블로생성부에서 생성된 매크로블록의 영상데이터에 모드 결정 대상 블록의 주변에 이미 모드가 결정된 매크로 블록들(상단과 좌측)이 하나라도 스킵(SKIP)모드로 되어있는 경우 스킵(SKIP)모드에 대한 비트율 왜곡값을 계산하고 주어진 양자화 파라미터값을 고려하여 스킵(SKIP)모드에 대해서 비트율 왜곡값이 주어진 임계값 이하일 경우인 경우 모드 결정 과정을 종료하는 스킵(SKIP) 모드 조건을 적용하여 스킵모드를 결정하는 스킵모드결정과정을 수행하고, 상기 스킵(SKIP) 모드를 만족하지 않는 경우 인터모드를 결정하는 인터모드결정과정을 수행하고, 상기 인터모드 결정 과정 이후, 인트라모드 조건을 만족하는지를 판단하여 인트라모드 조건을 만족하는 경우 인트라모드를 결정하는 인트라모드 결정 과정을 수행하는 것에 의해 신호 처리 대상 블록을 결정하는 모드결정부와;
    모드결정부에서 결정된 신호 처리 대상 블록의 영상 데이터 신호를 입력 받은 후 H.264 코드로 변환하여 출력하는 H.264 코드생성부;를 포함하여 구성되는 것을 특징으로 하는 고속 모드 결정 기능을 가지는 H.264 인코더.
  2. 청구항 1에 있어서, 상기 스킵모드결정과정은 상기 스킵(SKIP) 모드 조건(조기 스킵(SKIP)모드 조건)이 만족되지 않으면 16*16모드에 대한 비트 왜곡 값을 계산하여 상기 스킵(SKIP)모드에 대한 비트-왜곡값이 16*16모드에 대한 비트율 왜곡값보다 적을 경우 스킵(SKIP)로 결정하고 모드결정과정을 조기에 종료하는 과정인 것을 특징으로 하는 고속 모드 결정 기능을 가지는 H.264 인코더.
  3. 청구항 2에 있어서, 상기 모드결정부의 인터모드 결정 과정은,
    상기 스킵(SKIP)모드에 대한 비트-왜곡값이 16*16모드에 대한 비트율 왜곡값보다 큰 경우 P8*8 모드에 대한 비트율 왜곡값을 구한 후 구해진 P8*8 모드에 대한 비트율 왜곡값이 16*16 + C 값보다 작은 경우 P8*8 모드로 결정한 후 모드 결정과정을 종료하는 P8*8 모드 결정 과정과;
    상기 P8*8 모드에 대한 비트율 왜곡값이 16*16 + C 값보다 큰 경우 16*8, 8*16 모드로 모드를 결정한 후 비트왜곡을 계산하는 16*8·8*16 모드 결정과정;의 영상데이터처리를 수행하도록 구성되는 것을 특징으로 하는 고속 모드 결정 기능을 가지는 H.264 인코더.
  4. 청구항 1에 있어서, 상기 모드결정부의 인트라모드 결정과정은,
    상기 인터모드 결정 과정 이후, 상기 인트라모드 조건을 만족하는 지를 판단 하는 인트라모드 결정 판단 과정과;
    상기 인트라모드 결정 판단 과정의 판단 결과 인트라모드 조건을 만족하는 경우 인트라모드의 비트 왜곡을 계산하여 인트라모드를 설정하고, 만족하지 않는 경우 인트라모드의 결정을 수행하지 않고 처리과정을 종료하는 상세 인트라모드 결정 과정;의 영상데이터처리를 수행하도록 구성되는 것을 특징으로 하는 고속 모드 결정 기능을 가지는 H.264 인코더.
  5. 청구항 1 내지 4 중 어느 한 항에 있어서, 상기 모드결정부는 SIMD(single instruction multiple data) 명령어에 의해 영상데이터처리를 수행하도록 구성되는 것을 특징으로 하는 고속 모드 결정 기능을 가지는 H.264 인코더.
KR1020070043673A 2007-04-24 2007-05-04 고속 모드 결정 기능을 구비한 h.264 인코더 KR100771640B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20070039770 2007-04-24
KR1020070039770 2007-04-24

Publications (1)

Publication Number Publication Date
KR100771640B1 true KR100771640B1 (ko) 2007-10-30

Family

ID=38816371

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070043673A KR100771640B1 (ko) 2007-04-24 2007-05-04 고속 모드 결정 기능을 구비한 h.264 인코더

Country Status (1)

Country Link
KR (1) KR100771640B1 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011010900A3 (ko) * 2009-07-24 2011-05-26 삼성전자 주식회사 영상의 부호화 방법 및 장치, 영상 복호화 방법 및 장치
KR101051331B1 (ko) 2009-05-08 2011-07-22 중앙대학교 산학협력단 다이나믹 임계치를 이용한 적응적 고속 모드 결정방법
KR101618766B1 (ko) 2015-01-13 2016-05-11 삼성전자주식회사 영상 복호화 방법 및 장치
US9774871B2 (en) 2014-02-13 2017-09-26 Samsung Electronics Co., Ltd. Method and apparatus for encoding and decoding image

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050053297A (ko) * 2003-12-02 2005-06-08 학교법인 성균관대학 동영상 부호화 방법 및 장치

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050053297A (ko) * 2003-12-02 2005-06-08 학교법인 성균관대학 동영상 부호화 방법 및 장치

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101051331B1 (ko) 2009-05-08 2011-07-22 중앙대학교 산학협력단 다이나믹 임계치를 이용한 적응적 고속 모드 결정방법
WO2011010900A3 (ko) * 2009-07-24 2011-05-26 삼성전자 주식회사 영상의 부호화 방법 및 장치, 영상 복호화 방법 및 장치
US8768081B2 (en) 2009-07-24 2014-07-01 Samsung Electronics Co., Ltd. Method and apparatus for encoding images and method and apparatus for decoding images
US8885958B2 (en) 2009-07-24 2014-11-11 Samsung Electronics Co., Ltd. Method and apparatus for encoding images and method and apparatus for decoding images
US9131231B2 (en) 2009-07-24 2015-09-08 Samsung Electronics Co., Ltd. Method and apparatus for encoding images and method and apparatus for decoding images
US9131232B2 (en) 2009-07-24 2015-09-08 Samsung Electronics Co., Ltd. Method and apparatus for encoding images and method and apparatus for decoding images
US9137534B2 (en) 2009-07-24 2015-09-15 Samsung Electronics Co., Ltd. Method and apparatus for encoding images and method and apparatus for decoding images
US9516317B2 (en) 2009-07-24 2016-12-06 Samsung Electronics Co., Ltd. Method and apparatus for encoding images and method and apparatus for decoding images
US9774871B2 (en) 2014-02-13 2017-09-26 Samsung Electronics Co., Ltd. Method and apparatus for encoding and decoding image
US10609388B2 (en) 2014-02-13 2020-03-31 Samsung Electronics Co., Ltd. Method and apparatus for encoding and decoding image
KR101618766B1 (ko) 2015-01-13 2016-05-11 삼성전자주식회사 영상 복호화 방법 및 장치

Similar Documents

Publication Publication Date Title
RU2700396C1 (ru) Устройство кодирования изображений, устройство декодирования изображений, способ кодирования изображений, способ декодирования изображений и устройство прогнозирования изображений
RU2693910C1 (ru) Устройство кодирования движущихся изображений, устройство декодирования движущихся изображений, способ кодирования движущихся изображений и способ декодирования движущихся изображений
CN101889405B (zh) 用于执行运动估计的方法和装置
KR101246294B1 (ko) 영상의 인트라 예측 부호화, 복호화 방법 및 장치
KR100739714B1 (ko) 인트라 예측 모드 결정 방법 및 장치
JP5100015B2 (ja) 画面間又は画面内符号化モードの動画像符号化方法及び装置
US7711196B2 (en) Apparatus and method for generating coded block pattern for alpha channel image and alpha channel image encoding/decoding apparatus and method using the same
US9516320B2 (en) Method of generating image data
JP2009094828A (ja) 画像符号化装置及び画像符号化方法、画像復号化装置及び画像復号化方法
JP2006140758A (ja) 動画像符号化方法、動画像符号化装置および動画像符号化プログラム
US20090225871A1 (en) Image encoding apparatus
JP2010035137A (ja) 画像処理装置および方法、並びにプログラム
CN104320664A (zh) 图像处理设备和方法
RU2602365C2 (ru) Устройство кодирования изображений, устройство декодирования изображений, способ кодирования изображений и способ декодирования изображений
CN1589576A (zh) 使用较大像素格栅运动补偿的降低复杂性视频解码
JP4142563B2 (ja) 動画像符号化装置、動画像符号化方法、及び動画像符号化プログラム
JP2012034213A (ja) 画像処理装置、画像処理システムおよび画像処理方法
CN102422643A (zh) 图像处理装置、方法和程序
KR20170045013A (ko) 데이터 인코딩 장치 및 데이터 인코딩 방법
US20070133689A1 (en) Low-cost motion estimation apparatus and method thereof
JP2007013298A (ja) 画像符号化装置
KR100771640B1 (ko) 고속 모드 결정 기능을 구비한 h.264 인코더
JPWO2006100946A1 (ja) 画像信号再符号化装置及び画像信号再符号化方法
JP2008271127A (ja) 符号化装置
KR100771641B1 (ko) H.264 고속 모드 결정 방법

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
G170 Publication of correction
FPAY Annual fee payment

Payment date: 20121011

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20131024

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20141024

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20151023

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20161010

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20180928

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20190925

Year of fee payment: 13