KR20090042501A - 에이치 닷 264 표준에 근거한 디코더 설계를 위한 효율적인파이프라인 구조 및 그 방법 - Google Patents

에이치 닷 264 표준에 근거한 디코더 설계를 위한 효율적인파이프라인 구조 및 그 방법 Download PDF

Info

Publication number
KR20090042501A
KR20090042501A KR1020070108289A KR20070108289A KR20090042501A KR 20090042501 A KR20090042501 A KR 20090042501A KR 1020070108289 A KR1020070108289 A KR 1020070108289A KR 20070108289 A KR20070108289 A KR 20070108289A KR 20090042501 A KR20090042501 A KR 20090042501A
Authority
KR
South Korea
Prior art keywords
data
operator
decoder
time
transmission
Prior art date
Application number
KR1020070108289A
Other languages
English (en)
Other versions
KR100932667B1 (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 KR1020070108289A priority Critical patent/KR100932667B1/ko
Publication of KR20090042501A publication Critical patent/KR20090042501A/ko
Application granted granted Critical
Publication of KR100932667B1 publication Critical patent/KR100932667B1/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/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/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/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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors

Landscapes

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

Abstract

본 발명은 ITU의 H.264 표준에 근거한 동영상 디코더를 효율적으로 설계하기 위한 방법에 관한 것이다. 연산기 구조를 파이프라인 단계에 따라 나누고 해당하는 연산기 사이의 데이터의 흐름을 비동기 파이프라인 방식과 핸드셰이킹 방식으로 제어하여 연산기의 통합 설계와 성능 개선, 그리고 저전력 동작을 용이하게 할 수 있는 방법을 기술하였다.
Figure P1020070108289
H.264 디코더, 동영상 압축, 비동기 파이프라인, MPEG4/AVC

Description

에이치 닷 264 표준에 근거한 디코더 설계를 위한 효율적인 파이프라인 구조 및 그 방법 {Efficient Pipeline Architecture and its application for Design and Implementation of Decoders for H.264 Standards}
본 발명이 속하는 기술 분야는 국제 영상 압축 표준 규격에 근거해 반도체로 구현되는 하드웨어를 설계하는 분야이며, 그 중에서도 영상 압축 표준에 따라 압축된 영상을 재생하는 디지털 시스템 설계 분야이다.
영상 압축 표준 중에서 ITU-T와 ISO/IEC가 공동으로 개발한 H.264 (또는 MPEG-4 part-10/AVC)은 높은 압축률과 고화질로 차세대 영상 압축 기술로 각광을 받고 있어 현재 DMB, DVB-H, DTV, Blue ray, HD-DVD 등에서 표준 동영상 압축 코덱으로 채택된 상태이고 앞으로 더욱 활용 범위를 넓혀 갈 것으로 예상된다.
H.264는 높은 압축률과 고화질을 이루기 위해 복잡한 연산 알고리즘을 사용하고 있어 전용 하드웨어를 이용한 디코딩이 일반적으로 이용된다. 이 경우에도 많은 연산량으로 하드웨어는 파이프라인 구조를 가진다. 파이프라인은 대체로 도 1과 같이 입력 데이터 구분을 위한 parser (110) 및 파라미터 추출을 위한 Exp-Golomb (120), 계수 추출을 위한 CAVLD (130)와 움직임 벡터를 예측하여 구하는 MVP (140), 양자화 및 계수 변환을 위한 ITQ (150), 슬라이스간 움직임 보간을 위한 MC (160)와 슬라이스내의 예측을 위한 IP (170), 그리고 블록제거 필터링을 위한 DF (180)의 4 단계로 구성된다. 그런데 각 단계의 연산기 동작은 입력 데이터에 따라 요구하는 사이클 수가 다르다. 기존의 하드웨어 구조는 이러한 파이프라인의 각 단계별로 동작 사이클을 계산하고 가장 많은 사이클을 요구하는 단계와 경우를 기준으로 동작 사이클 수를 고정시킨 뒤 모든 단계가 동일한 사이클 동안 동작할 것을 요구한다. 이 방식은 디코더의 동작 속도를 정확히 예측할 수 있는 장점이 있지만 모든 단계가 항상 일정한 사이클 수를 사용함으로써 최악의 경우에 대해 동작 성능이 맞추어지므로 많은 경우에는 낭비되는 사이클이 많아진다. 또한, 중간에 한번 문제가 발생하면 그 오류가 계속 전파되어 복구가 어렵다. 그리고, 나중에 각 연산기별로 성능 개선이나 구조 변경이 이루어져도 전체 디코더 차원에서 재설계 및 검증이 이루어져야 하므로 설계 변경이 매우 어려운 단점이 있다. H.264 디코더의 경우 각 단계별로 요구되는 사이클 수가 입력 데이터에 따라 변하므로 이러한 사이클 수를 고정적으로 할당하는 것은 사이클 수와 전력 소모에 있어서 낭비를 가져온다.
본 발명은 파이프라인 구성시 각 단계 사이에서 데이터를 정해진 사이클에 맞추어 전달하지 않고 각 단계별 연산기가 이전 데이터 블록에 대해 연산이 끝나면 전달하고 그렇지 않으면 기다리도록 하는 방식으로 연산 사이클을 가변시킬 수 있는 디코더 구조를 가능하게 한다. 따라서 입력 데이터에 따라 연산 사이클이 달라져도 낭비되는 사이클 없이 연산을 진행하여 전체적으로 성능 향상을 이루고 불필요한 동작을 최대한 억제하여 전력 소모를 줄일 수 있다. 또한 파이프라인 단계별로 가변 사이클을 할당하는 비동기 방식이므로 연산기의 구조 변경후에도 데이터 입출력 규격만 맞추면 디코더의 통합 및 검증이 용이하다.
본 발명을 이용하면 H.264 디코더 그리고 이와 유사한 하드웨어 구조에서 연산기의 IDLE 시간을 줄여 처리 속도를 높일 수 있고 불필요한 동작을 막아 전력 소모를 줄일 수 있다. 또한 연산이 적응적으로 진행되므로 연산기의 설계 변경시에도 입출력 규칙만 지키면 전체 디코더의 동작에는 영향을 미치지 않아 디코더의 성능 향상이나 확장이 용이하다.
본 발명은 도 2의 H.264 복호기의 구조도와 같이 연산기를 VLD (가변길이 디코더), ITQ-MCIP (예측 및 역변환기), DF (블록 제거 필터)로 구분하고 FIFO (First-In First-out) 메모리와 핸드셰이크 방식의 프로토콜을 이용하여 데이터를 적응적으로 전송한다. 전송 데이터 포맷은 도 3,4에 나타난 것처럼 데이터의 종류를 나타내는 헤더 (310)와 실제 데이터 (320)로 구성되는데 총 17 비트이고 최상위 비트 값에 따라 파라미터와 계수/residual을 구분한다. 파라미터인 경우에는 다음 4 비트가 파라미터 종류 (420)를 나타내고 뒤의 11 비트가 실제 파라미터 (430) 값이 된다. 계수/residual인 경우는 최상위 비트를 제외한 나머지 16 비트가 데이터가 된다. 이와 함께 FIFO의 상태를 알려주는 READY (540)와 VALID (530)신호가 추가되어 전송 타이밍을 결정한다. 도 5에서와 같이 데이터 (520)를 보낼 때는 VALID 신호를 활성화시켜 FIFO가 데이터의 유효성을 확인하도록 하고 데이터를 받는 연산기는 FIFO가 비어 있으면 READY 신호를 활성화시켜 데이터를 보내는 유닛이 수신 여부를 확인할 수 있도록 한다. 따라서 READY와 VALID가 동시에 활성화되어야 데이터 전송이 이상 없이 이루어진다. ITQ-MCIP에서는 헤더의 값을 해석하여 데이터의 종류에 따라 내부에 있는 ITQ(Inverse Transform and Quantization), MC(Motion Compensation) 그리고 IP(Intra Prediction) 중 하나로 데이터를 보낸다.
H.264 디코더 하드웨어는 그 크기를 줄이기 위해 대부분 파이프라인 방식을 이용한다. 일반적인 파이프라인 방식에서는 일정한 처리속도를 유지하기위해 파이프라인 단계별로 일정한 시간을 할당한다. 기존의 H.264 하드웨어 디코더들도 이러한 방식으로 구성되어 있다. 이 경우 정해진 크기의 데이터 블록이 각 파이프라인 단계를 지나는 시간이 일정하므로 출력 결과가 항상 같은 비율로 생성된다. 즉 처리 속도의 예측이 가능하다. 이를 위해서는 최악의 상황에서도 모든 파이프라인 단이 정해진 시간내에 연산을 마쳐야 하므로 각 단계에 주어지는 시간이 최악의 상황 을 고려하여 길게 주어져야 한다. 따라서 최악의 상황이 아닌 경우에는 모든 연산기가 IDLE 상태를 유지하는 시간이 발생하고 이 시간이 길어지면 전체적으로 연산시간 대비 IDLE 시간의 비율이 높아져 효율성이 감소한다. 또한 전체 시스템 제어기가 각 연산기의 동작을 긴밀하게 제어하므로 연산기의 설계 수정이 매우 어렵다. H.264와 같은 동영상 복호과정은 영상의 종류에 따라 각 연산 과정의 연산 시간이 일정하지 않고 가변적이므로 IDLE 시간에 의한 사이클 낭비가 상당히 존재한다.
반면에 본 발명에서 이용된 비동기 파이프라인 구조는 파이프라인 단계별 연산 시간이 정해져 있지 않고 각 단계별로 연산이 끝나면 다음 단으로 자연스럽게 데이터가 전달된다. 도 6에 본 발명에 적용된 H.264 디코더 파이프라인 단계별 연산이 나타나 있다. 본 발명에서는 비동기 파이프라인이 사용되므로 단계별 구분이 기존과는 차이가 있다. 즉 연산결과가 나오는 대로 다음 단계에 전달되어 연산기가 준비 상태이면 입력되어 다음 연산을 진행하고 그렇지 않으면 기다린다. 따라서 VLD 단계(610)의 Exp-Golomb (612) 연산후 파라미터가 출력되면 바로 다음 단계(620)의 MVP (621)로 입력되어 움직임 벡터 계산을 시작하고 그 동안 CAVLD (613)에서 계수를 추출한여 다시 ITQ (624)로 보낸다. 일반적으로 두 번째 단인 ITQ-MCIP(620)가 가장 연산시간이 긴 단계인데 이 단계에서도 데이터에 따라 연산시간이 달라진다. 연산시간이 긴 데이터가 들어오면 VLD (610)는 자신의 연산이 끝난 뒤 동작을 멈추고 기다리고 마지막 단인 DF (630)도 데이터가 들어오지 않으니 동작을 멈추고 기다린다. 그 후 두 번째 단계의 연산이 끝나면 DF (630)로 데이터가 전달되어 DF (631)가 동작을 시작하고 ITQ-MCIP (620)는 VLD (610)에서 데이터 를 받아 다음 연산을 시작한다. VLD (610)는 데이터를 내보낸 뒤 다음 데이터 블록을 받아 연산을 시작한다. 만일 ITQ-MCIP (620)의 연산 시간이 짧은 경우에는 VLD (610)와 DF (630)의 기다리는 시간도 짧아진다. 또한 모든 연산기가 IDLE 상태인 경우는 발생하지 않는다. 따라서 전체적으로는 각 파이프라인 단계의 연산시간을 최악의 상황이 아닌 평균 연산 시간을 할당할 수 있으므로 데이터 블록에 대해서는 평균값에 맞출 수 있어 각 연산기가 더 느리게 동작해도 프레임 단위로만 요구되는 연산시간을 만족하면 실시간 영상 복원에 지장이 없다. 또는 연산기 속도를 유지하면서 하드웨어 면적을 줄일 수도 있다. 어느 경우나 전력 소모는 줄어든다.
동영상을 디코딩할 때 비트율이 정해지면 평균적인 연산시간은 일정하나 영상의 특성에 따라 순간적으로 연산량이 늘어날 수 있다. 이때 기존 방식에서는 그 최악의 상황을 잘못 예측하면 그 때마다 영상이 손상된다. 그러나 본 발명의 방식에서는 그 순간 필요한 연산을 더 수행하고 나중에 여유가 있는 부분에서 추가 실행된 시간을 보상할 수 있어 영상이 손상되는 현상은 발생하지 않는다.
도1은 H.264 디코더의 일반적인 파이프라인 단계별 연산 동작이다.
도2는 본 발명의 파이프라인 구조와 방법에 따라 구성된 H.264 디코더의 구성도이다.
도3은 H.264 디코더 내부의 연산기들이 파라미터를 전달하기 위해 이용하는 데이터 포맷이다.
도4는 H.264 디코더 내부의 연산기들이 계수와 residual 값을 전달하기 위해 이용하는 데이터 포맷이다.
도5는 H.264 디코더 내부의 연산기들이 데이터를 전달할 때 사용하는 핸드셰이크 방법을 보여주는 타이밍도이다.
도6은 본 발명의 H.264 디코더 파이프라인 단계별 연산 동작이다.

Claims (4)

  1. H.264 디코더의 구조를 VLD(가변길이 디코더), ITQ-MCIP(예측 및 역변환기), DF(블록 제거 필터)의 세 가지 연산기로 나누고 입력된 NAL 데이터가 순서대로 각 연산기를 단방향으로 이동하는 방식
  2. H.264 디코더의 내부 연산기 사이의 데이터 전송시 데이터 블록의 전송 사이클의 수 또는 시간이 정해져 있지 않고 연산기의 연산처리 속도에 따라 적응적으로 데이터를 전송하는 비동기 파이프라인 방식;
    각 단계별 연산 시간을 고정하지 않고 출력 데이터가 만들어지고 다음 단 연산기가 준비되는 즉시 데이터가 전달되어 입력 데이터에 따라 각 연산기의 처리 속도가 달라 경우에 따라 발생하는 IDLE 시간을 없애 전체 시스템의 처리 성능을 증가시킨다. 이를 위해 입력이나 출력단에 FIFO 등의 버퍼 메모리를 이용하여 데이터 전달을 효과적으로 수행한다.
  3. 제 2항에 있어서 이전 연산기로부터 데이터를 전달받지 못하거나 다음 연산기로 데이터를 보내지 못해 연산 동작을 수행하지 못하는 연산기의 동작을 정지시켜 전력 소모를 억제하는 방식;
    정해진 수행 사이클이 없으므로 각 연산기의 연산 결과가 나오고 다음 단으로 전달되지 못하거나 이전 단에서 입력 데이터가 들어오지 않는 경우 자동적으로 현 상태를 유지하면서 모든 동작을 일시적으로 정지하도록 만들어 불필요한 전력 소모를 줄인다.
  4. 제 2항에 있어서 연산기 사이의 데이터 전송에 있어서 신호선의 수를 일정하게 유지하고 계수와 파라미터를 같은 경로로 전달하되 헤더 정보를 이용하여 정보 내용을 구분하고 VALID와 READY의 핸드셰이크 신호에 의해 전송을 하는 프로토콜 전송 방식;
    동기식 시스템의 통합 과정에서 가장 어려운 문제의 하나인 연산기간의 움직임 동기 문제를 비동기 파이프라인을 이용하여 동일한 프로토콜을 이용하여 연산기 사이에서 적응적으로 해결하도록 하여 전체 시스템에서 동기 제어를 할 필요가 없도록 한다. 이에 따라 각 연산기별로 정해진 프로토콜을 준수하여 입출력 규칙을 지키는 범위내에서 연산기의 수정과 교체를 용이하게 하고 자유롭게 각 연산기의 성능을 개선하여 디코더의 설계를 효율적으로 수행한다.
KR1020070108289A 2007-10-26 2007-10-26 적응적 비동기 파이프라인 구조의 h.264 디코더 KR100932667B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020070108289A KR100932667B1 (ko) 2007-10-26 2007-10-26 적응적 비동기 파이프라인 구조의 h.264 디코더

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070108289A KR100932667B1 (ko) 2007-10-26 2007-10-26 적응적 비동기 파이프라인 구조의 h.264 디코더

Publications (2)

Publication Number Publication Date
KR20090042501A true KR20090042501A (ko) 2009-04-30
KR100932667B1 KR100932667B1 (ko) 2009-12-21

Family

ID=40765226

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070108289A KR100932667B1 (ko) 2007-10-26 2007-10-26 적응적 비동기 파이프라인 구조의 h.264 디코더

Country Status (1)

Country Link
KR (1) KR100932667B1 (ko)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100624426B1 (ko) * 2004-07-06 2006-09-19 삼성전자주식회사 파이프 라인 방식의 복호화 장치 및 방법과, 이 장치를제어하는 컴퓨터 프로그램을 저장하는 컴퓨터로 읽을 수있는 기록 매체
KR100710305B1 (ko) * 2005-06-07 2007-04-23 엘지전자 주식회사 비디오 디코딩 장치의 데이터 관리기
JP4934356B2 (ja) * 2006-06-20 2012-05-16 株式会社日立製作所 映像処理エンジンおよびそれを含む映像処理システム

Also Published As

Publication number Publication date
KR100932667B1 (ko) 2009-12-21

Similar Documents

Publication Publication Date Title
CN1934866B (zh) 视频解码设备
CA2682315C (en) Entropy coding for video processing applications
US8416857B2 (en) Parallel or pipelined macroblock processing
US7595743B1 (en) System and method for reducing storage requirements for content adaptive binary arithmetic coding
US8634474B2 (en) CABAC macroblock rewind and end of slice creation to control slice size for video encoders
US20110280314A1 (en) Slice encoding and decoding processors, circuits, devices, systems and processes
US9635374B2 (en) Systems and methods for coding video data using switchable encoders and decoders
US20070153907A1 (en) Programmable element and hardware accelerator combination for video processing
KR101279507B1 (ko) 병렬 처리 기반 파이프라인 복호화 장치 및 방법
US20170142411A1 (en) Intra/inter mode decision for predictive frame encoding
WO2017034725A1 (en) Reliable large group of pictures (gop) file streaming to wireless displays
WO2016129031A1 (ja) 画像圧縮伸長装置
ITVI20100175A1 (it) Sistema per la codifica entropica di video h.264 per applicazioni hdtv in tempo reale
US20110317762A1 (en) Video encoder and packetizer with improved bandwidth utilization
US8503534B2 (en) Multi-bus architecture for a video codec
CN105245896A (zh) Hevc并行运动补偿方法及装置
US20190356911A1 (en) Region-based processing of predicted pixels
CN100417227C (zh) 用于avs视频解码器的高效流水线系统
US7586426B2 (en) Image coding apparatus and method thereof
US6788227B2 (en) Apparatus for integrated cascade encoding
KR100932667B1 (ko) 적응적 비동기 파이프라인 구조의 h.264 디코더
JP2007259323A (ja) 画像復号化装置
JP6206280B2 (ja) 動画像符号化装置及び動画像符号化器
CN102238385A (zh) 编码器和/或解码器中垂直和/或水平高速缓存设备和方法
US10205957B2 (en) Multi-standard video decoder with novel bin decoding

Legal Events

Date Code Title Description
A201 Request for examination
N231 Notification of change of applicant
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
J201 Request for trial against refusal decision
B701 Decision to grant
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20121123

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20131017

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20140930

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee