KR20060127456A - 비디오 디코딩 장치의 데이터 관리기 - Google Patents

비디오 디코딩 장치의 데이터 관리기 Download PDF

Info

Publication number
KR20060127456A
KR20060127456A KR1020050048456A KR20050048456A KR20060127456A KR 20060127456 A KR20060127456 A KR 20060127456A KR 1020050048456 A KR1020050048456 A KR 1020050048456A KR 20050048456 A KR20050048456 A KR 20050048456A KR 20060127456 A KR20060127456 A KR 20060127456A
Authority
KR
South Korea
Prior art keywords
data
buffer memory
reference data
memory unit
address
Prior art date
Application number
KR1020050048456A
Other languages
English (en)
Other versions
KR100710305B1 (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 KR1020050048456A priority Critical patent/KR100710305B1/ko
Publication of KR20060127456A publication Critical patent/KR20060127456A/ko
Application granted granted Critical
Publication of KR100710305B1 publication Critical patent/KR100710305B1/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/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/423Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
    • 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/103Selection of coding mode or of prediction mode
    • H04N19/107Selection of coding mode or of prediction mode between spatial and temporal predictive coding, e.g. picture refresh
    • 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)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

본 발명은 비디오 압축 데이터의 디코딩 과정을 효율적으로 처리하는 데이터 관리기를 포함하는 비디오 디코딩 장치에 관한 것이다. 본 발명은 비디오 압축 파일에 대해 인트라 프레딕션 과정이 수행된 매크로 블럭의 레퍼런스 데이터를 임시 저장하는 완충기억부; 및 상기 레퍼런스 데이터가 완충기억부에 입출력되도록 상기 완충기억부의 기억공간의 어드레스를 발생시키는 어드레스 발생기를 포함하는 것을 특징으로 하는 데이터 관리기를 제공한다. 본 발명에 따른 데이터 관리기에 의하면 인트라 프레딕션 과정을 소프트웨어로 구동할 때보다 클럭 스피드를 줄이고 메모리의 억세스를 줄일 수 있어 효율적으로 비디오 디코딩 장치를 사용할 수 있다.
H.264, 인트라 프레딕션, 디코딩

Description

비디오 디코딩 장치의 데이터 관리기{data manager of video decording apparatus}
도 1은 본 발명에 따른 데이터 관리기를 포함하는 비디오 디코딩 장치의 구조의 일 실시예를 나타낸 구조도
도 2는 본 발명에 데이터 관리기의 내부 구조의 일 실시예를 나타낸 구조도
도 3a와 도 3b는 Luma 데이터에 대한 인트라 프레딕션 과정의 레퍼런스 데이터와 이를 저장한 메모리 맵의 예를 나타낸 도면
도 4는 인트라 프레딕션 과정의 레퍼런스 데이터와 이를 저장한 메모리 맵의 예를 나타낸 도면
도 5는 매크로 블럭의 어드레스 맵의 일 예를 나타낸 도면
도 6은 인트라 프레딕션 과정의 레퍼런스 데이터를 매크로 블럭 단위로 나타낸 도면
도 7은 상태 판단 장치가 구동하는 흐름도
< 도면의 주요부호에 대한 부호의 설명>
20,30,40,50,60 : 매크로 블럭
21, 21a, 22 : 20 매크로 블럭의 레퍼런스 데이터
31, 32 : 30 매크로 블럭의 레퍼런스 데이터
41, 42 : 40 매크로 블럭의 레퍼런스 데이터
51, 51a, 52 : 50 매크로 블럭의 레퍼런스 데이터
61, 61a, 62 : 60 매크로 블럭의 레퍼런스 데이터
100 : 레지듀얼 디코딩 블럭(Residual decording block)
200 : 인트라 프레딕션 블럭(Intra prediction block)
300 : 인터 프레딕션 블럭(Inter prediction block)
400 : 데이터 관리기
420 : 제 1어드레스 발생기 430 : 제 2어드레스 발생기
440 : 다중화기(MUX) 450 : 상태 판단 장치
460 ,700, : 완충기억부
210,310,610 : 데이터의 어드레스 정보의 입력
500 : 디블럭킹 필터(deblocking filter)
710 : 매크로 블럭에 대한 Luma 레퍼런스 데이터
720 : 매크로 블럭에 대한 Chroma 레퍼런스 데이터
본 발명은 비디오 디코딩 장치에 관한 것으로서, 보다 상세하게는 비디오 압축 데이터의 디코딩 과정을 효율적으로 처리하는 데이터 관리기를 포함하는 비디오 디코딩 장치에 관한 것이다.
디지털 신호의 처리 및 저장매체 등의 발전은 멀티미디어와 관련 산업을 발달시켰다. 많은 양의 데이터를 저장하고 전송하는 기술은 1980년대 후반 디지털 동영상 정보의 부호화 및 저장기술 표준규격이 제정되면서 더욱 빨리 발전되어 왔다. 최근에 우리나라의 지상파 또는 위성 DMB(Digital Multimedia Broadcasting) 방송의 비디오 디코딩 표준으로 H.264(MPEG-4 part 10 AVC(Advanced Video Coding)/H.264 ; 이하 H.264) 표준이 채택되었다. 비디오 디코더에서 H.264 방식으로 압축된 파일을 디코딩 소프트웨어(Software ; SW)를 구동하여 처리할 경우 비디오 디코더는 상기 디코더의 구조상 디코딩 작업을 수행하는 동안 외부 메모리(External Memory)에 접근하는 과정이 자주 반복된다. 따라서, 상기 디코딩 과정은 높은 클럭 주파수(clock frequency)를 필요로 하고, 이로 인해 전력의 소모가 많다. 따라서, 현재 디코더의 구조에서 디코딩 소프트웨어로 디코딩 작업을 수행하면 디코더의 성능은 떨어진다.
특히 이동 통신(mobile communication)환경에서는 배터리(battery)가 단말기의 전원으로 사용된다. 따라서, 현재 단말기의 비디오 디코더의 구조하에서 디코딩 소프트웨어를 사용하여 H.264 압축 파일을 디코딩하면 전원의 소모가 많기 때문에 비디오 시청을 오래동안 할 수 없는 문제점이 있다.
특히 H.264을 디코딩하는 알고리즘 중 레지듀얼 디코딩(Residual Decoding) 과정, 인트라 프레딕션(Intra Prediction) 과정, 인터 프레딕션(Inter Prediction)과정, 디블럭킹 필터(Deblocking Filter) 과정 등을 수행하는 함수는 데이터의 연산량이 많고, 디코더가 외부 메모리를 접근해야 하는 횟수도 많아 종래의 비디오 디코더 구조로 디코딩 하는 과정이 비효율적이다.
상기 과정 중 인터 프레딕션(Intra Prediction) 과정에 사용되는 데이터는 (이하, 레퍼런스 데이터(reference data))는 디블럭킹 필터(Deblocking Filter) 과정에 입력되기 전의 데이터로서 3가지의 입력 소스(source)로부터 출력된다. 즉, 상기 레퍼런스 데이터는 인트라 프레딕션(Intra Prediction) 과정이 수행된 데이터이거나 인터 프레딕션(Inter Prediction) 과정이 수행된 데이터이거나 디코딩 소프트웨어 인터페이스(interface) 중 I_PCM Mode 과정이 수행된 데이터이다.
상기 과정 중 비디오 압축 파일의 인터 프레딕션 과정과 인트라 프레딕션 과정을 설명하면 다음과 같다. 비디오 스트림은 H.264로 코딩되어 있다고 가정한다. 비디오 영상은 매크로 블록이라는 작은 블록으로 분할될 수 있고 상기 매크로 블록은 비디오 스트림 디코딩의 단위가 될 수 있다. 비디오 디코딩은 모션 보상으로 인한 시간 예측(temporal prediction with motion compensation; MC)에 기반한다. 상기 모션 보상으로 인한 시간 예측은 서로 다른 시간내의 영상 중 하나의 기준 영상을 이용해 디코딩하는 것으로서 인터 프레딕션(Inter Prediction) 과정에 이용된다. 인터 프레딕션 과정을 통한 상기 모션 보상으로 인한 시간 예측은 기준 영상(reference picture)을 기준으로 특정 영상을 디코딩하며, 따라서 특정 영상은 기준 영상과의 관계에서 순방향 관계이거나 역방향 관계일 수 있다. 상기 인터 프레딕션 과정에 의해 디코딩 과정의 시간적 리던던시(redundancy)를 제거할 수 있다.
반면, 비디오 영상의 디코딩 과정 중 공간적 리던던시를 제거하기 위해서는 동일 시간의 기준 영상내에서 매크로 블록을 기준으로 다른 매크로 블록을 디코딩 하는 인트라 프레딕션(Intra Prediction) 과정이 사용된다.
상기 인터 프레딕션과 비디오 영상을 디코딩하는 과정 중 인트라 프레딕션 과정은 매크로 블록 단위로 이루어지고, 비디오 영상의 화면상 표출되었을때 보이는 방향에서 수평방향은 좌측에서 우측으로 디코딩되고, 수직방향은 상부에서 하부 방향으로 디코딩된다. 인트라 프레딕션 과정이 수행되는 매크로 블록은 기준이 되는 매크로 블록의 일부 데이터를 레퍼런스 데이터(reference data)로 이용한다.
따라서, 종래의 비디오 디코더가 인트라 프레딕션(Intra Prediction) 과정을 수행하기 위해서는 레퍼런스 데이터(reference data)를 미리 외부 메모리에 저장하고 상기 레퍼런스 데이터를 상기 메모리로부터 제공받아야 한다. 그런데, 종래의 비디오 디코더 구조에서 상기 레퍼런스 데이터를 제공받는 과정을 소프트웨어를 구동하여 처리한다면 상기 과정에서 많은 클럭 사이클(clock cycle)이 소모되어야 하고 클럭 스피드(Clock Speed)도 증가되는 문제점이 있다. 그리고, 상기 비디오 디코더가 외부 메모리에 접근하는 횟수가 증가하기 때문에 비디오 디코더로 인해 소모되는 파워가 증가하여 디코딩 과정이 비효율적인 문제점이 있다.
본 발명은 상기와 같은 문제점을 해결하기 위한 것으로서, 본 발명의 목적은 H.264의 디코딩 과정 중 데이터의 연산량이 많은 과정을 소프트웨어로 처리하는 것이 아니라 디코더의 하드웨어로 자동처리하게 함으로써 비디오 디코딩 과정, 특히 인트라 프레딕션 과정의 레퍼런스 데이터를 효율적으로 처리할 수 있는 비디오 디코더를 제공하는 것이다.
상기의 목적을 달성하기 위하여 본 발명은 비디오 압축 파일에 대해 인트라 프레딕션 과정이 수행된 매크로 블럭의 레퍼런스 데이터를 임시 저장하는 완충기억부; 및 상기 레퍼런스 데이터가 완충기억부에 입출력되도록 상기 완충기억부의 기억공간의 어드레스를 발생시키는 어드레스 발생기를 포함하는 것을 특징으로 하는 데이터 관리기를 제공한다.
본 발명에 따른 비디오 디코딩 장치의 데이터 관리기의 바람직한 일 실시예에서 상기 어드레스 발생기는 인트라 프레딕션 과정이 수행된 레퍼런스 데이터가 저장될 상기 완충기억부내 기억공간의 어드레스와 상기 완충기억부로부터 출력할 레퍼런스 데이터가 저장된 기억공간의 어드레스를 발생시킬 수 있다.
또한, 인터 프레딕션 과정이 수행된 레퍼런스 데이터가 저장될 상기 완충기억부내의 기억공간의 어드레스를 발생시킬 수 있다. 또한, 상기 두 개의 어드레스 발생기를 모두 포함하여 상기 기능을 각각 수행하게 할 수도 있으며, 바람직하게는 두 개의 어드레스 발생기(이하, 전자를 제 1어드레스 발생기, 후자를 제 2어드레스 발생기로 구분한다)를 모두 포함한다.
본 발명에 따른 비디오 디코딩 장치의 데이터 관리기의 바람직한 다른 일 실시예는 상기 제 1 어드레스 발생기에서 출력된 어드레스에 의해 인트라 프레딕션 과정에서 출력된 레퍼런스 데이터를 상기 완충기억부로 입출력하거나, 상기 제 2 어드레스 발생기기에서 출력된 어드레스에 의해 인터 프레딕션 과정에서 출력된 레퍼런스 데이터를 상기 완충기억부에 입력하거나, 소프트웨어의 인터페이스에 사용 되는 레퍼런스 데이터를 상기 완충기억부에 입출력할 경우 중 어느 하나이상의 경우에 있어서, 상기 입력 또는 출력이 독립적으로 이루어지도록 칩 인에이블 신호에 의해 입출력과정을 분할하는 다중화기(MUX)를 더 포함할 수 있다.
상기 다중화기는 완충기억부에 레퍼런스 데이터를 접근(access)하려고 하는 다수의 입력 또는 출력의 요구(requset)에 대해 상기 입출력하는 과정을 분할할 수 있다.
인트라 프렉디션에 사용되는 레퍼런스 데이터는 매크로 블럭상에서 특정의 위치를 차지하고 있으므로, 상기 완충기억부에 입력되는 레퍼런스 데이터가 매크로 블럭의 특정 위치의 데이터인지 여부를 판단하고, 상기 판단 결과 특정 위치의 레퍼런스 데이터인 경우에만 상기 완충기억부에 상기 데이터를 저장하도록 하는 상태 판단 장치(state machine)를 포함할 수도 있다. 이에 대해서는 도 7에서 상세히 설명한다.
압축 파일을 디코딩하는 경우 매크로 블럭 단위로 인트라 프레딕션 과정을 수행할 수 있는 압축 파일의 형식이 바람직하며, 더욱 바람직한 압축 파일 형식은 DMB 전송 방식인 H.264 압축 파일의 형식이다. 따라서, 본 발명은 H.264과 같은 압축 형식의 데이터를 인트라 프레딕션 하는 과정할 경우 매크로 블럭 단위로 파이프라인하여 데이터를 처리할 수 있는 데이터 관리기를 제공한다.
이하 상기 목적을 구체적으로 실현할 수 있는 본 발명의 바람직한 실시예를 첨부한 도면을 참조하여 설명한다.
도 1을 참조하여 본 발명에 따른 데이터 관리기를 포함하는 비디오 디코더의 일 실시예를 설명하면 다음과 같다. 도 1의 일 실시예에서 상기 장치는 레지듀얼 디코딩(Residual Decoding) 블럭(100), 인트라 프레딕션(Intra Prediction) 블럭 (200), 인터 프레딕션(Inter Prediction)(300) 블럭, 디블럭킹 필터(Deblocking Filter)(500) 블럭과 인트라 프레딕션의 레퍼런스 데이터를 관리하는 데이터 관리기(400)를 포함한다.
비디오 디코딩 과정 중 인트라 프레딕션(Intra Prediction) 블럭 (200)은 매크로 블럭 단위로 인트라 프레딕션 과정을 수행하고, 인터 프레딕션(Inter Prediction) 블럭(300)은 인터 프레딕션 과정을 각각 수행하며, 또는 상기 두 블럭(200,300)은 인터/인트라 프레딕션 과정을 동시에 각각 수행하고 상기 결과를 출력한다. 상기 인트라 프레딕션의 레퍼런스 데이터 관리기(400)에는 인트라 프레딕션(Intra Prediction) 블럭 (200)의 결과 값이 입출력되거나(210) 인터 프레딕션(Inter Prediction) 블럭(300)의 결과 값이 입력된다(310). 또는 비디오 디코딩 과정에 사용되는 소프트웨어의 인터페이스(interface)으로서, 예를 들면 I_PCM Mode 과정이 수행된 데이터가 입출력된다(610). 상기 각 경로(210,310,610)으로 입력된 데이터는 상기 데이터 관리기(400)에 임시 저장되고, 상기 저장된 데이터는 디블럭킹 필터(Deblocking Filter)(500) 블럭에서 매크로 블럭간의 디코딩 화면의 차이를 보상하기 위해 상기 데이터 관리기에서 출력된다.
다음으로 본 발명에 의한 데이터 관리기를 구체적으로 설명한다. 도 2를 참조하여 본 발명에 따른 비디오 디코딩 장치에 포함된 데이터 관리기의 구성의 바람직한 일 실시예를 설명하면 다음과 같다. 상기 데이터 관리기(400)는 인트라 메모 리 어드레스 발생기(420), 인터 메모리 어드레스 발생기(430), 다중화기(440), 상태 판단 장치(state-machine)(450), 완충 기억부(460)을 포함한다. 상기 데이터 관리기(400)는 인트라 프레딕션의 과정을 거친 데이터가 입출력되거나, 인트라 프레딕션 과정에 필요한 데이터의 출력한다. 상기 데이터의 입력이나 출력시 정확한 데이터를 입출력하기 위해 인트라 메모리 어드레스 발생기(420)는 인트라 프레딕션 블럭으로부터 디코딩하는 매크로 블럭의 인덱스를 입력받는다. 그리고, 상기 매크로 블럭의 레퍼런스 데이터를 완충기억부(460)에 저장하기 위해 완충기억부내의 어드레스를 출력하거나, 상기 완충기억부(460)부터 출력되어야 할 레퍼런스 데이터가 저장된 기억공간의 어드레스를 출력한다.
또한 인터 프레딕션 과정을 거친 데이터가 인트라 프레딕션에 과정에서 사용될 수 있으므로 인터 메모리 어드레스 발생기(430)은 인터 프레딕션 블럭으로부터 매크로 블럭의 인덱스를 입력받고, 상기 매크로 블럭의 레퍼런스 데이터를 저장할 완충기억부내 기억공간의 어드레스를 출력한다.
상기 인트라 메모리 어드레스 발생기(420)와 상기 인터 메모리 어드레스 발생기(430)는 각각 그것에 관련된 블럭이 완충기억부(460)에 레퍼런스 데이터를 접근하는 데 있어서 싱글 포드(single port)로 접근하는 것을 가능하게 한다. 이로 인해 데이터 관리기의 면적이나 파워 소모를 줄일 수 있다.
상기 다중화기(440)는 상기의 어드레스 정보와 소프트웨어의 인터페이스(예로 I_PCM Mode의 과정)의 결과 데이터에 대한 입출력 정보를 입력받는다. 그리고, 상기 다중화기는 입력된 칩 인에이블(chip enable) 신호에 의해 상기 완충기억부 (460)에 요구된 데이터 입출력 정보를 분할하여 다수의 개별적 입출력이 가능하도록 한다. 그리고, 상기한 것과 같이 메모리 어드레스 발생기(420, 430)는 매크로 블럭의 인덱스에 의해, 다중화기(440)은 칩 인에이블 신호에 의해 제어되기 때문에 상기 완충기억부(460)의 접근 권한은 매크로 블럭의 인덱스와 칩 인에이블 신호를 발생시키는 하드웨어에 의해 부여된다. 인트라 프레딕션 과정의 특성상 특정 데이터를 완충기억부에 입력하는 경우 소정의 문제가 생길 수 있다. 따라서, 본 발명에 의한 데이터 관리기를 포함하는 비디오 디코딩 장치는 상기 데이터 관리기에 상태 판단 장치(state-machine)(450)가 포함하는 것이 바람직하다. 이에 대해서는 도 7에서 상술한다.
도 3a 및 도 3b를 참조하여 인트라 프레딕션 과정에 필요한 레퍼런스 데이터와 상기 데이터를 완충기억부에 저장하는 방법을 설명한다. 우선, 매크로 블럭의 크기를 16×16의 픽셀로 가정하고, 특정 매크로 블럭(macro block; MB)의 Luma 데이터에 대해 인트라 프레딕션의 과정이 수행된다면, 이에 필요한 레퍼런스 Luma 데이터의 위치는 도 3a에서 나타낸 것과 같다. 도 3a는 인트라 프레딕션에 필요한 레퍼런스 데이터의 위치에 해당하는 데이터와 상기 데이터가 완충기억부에 저장되는 일 형태를 나타낸 도면이고, 도 3b는 도 3a과 같은 내용이나 레퍼런스 데이터를 구체적으로 설명하기 위해 매크로 블럭내의 레퍼런스 데이터에 인덱싱을 하였다.
도 3b에서 60 매크로 블럭에 대해 인트라 프레딕션 과정을 수행하기 위해 필요한 레퍼런스 데이터는 상기 매크로 블럭(60)의 상위 매크로 블럭(30)의 16개(31)와 상기 상위 매크로 블럭의 오른쪽 매크로 블럭(40)의 4개의 데이터(41), 상기 상 위 매크로 블럭의 왼쪽 매크로 블럭(20)의 1개 데이터(21), 상기 매크로 블럭의 왼쪽 매크로 블럭(50)의 16개 데이터(52)이다.
상기 위치에 따른 레퍼런스 데이터의 명명을 용이하게 하기 위해 각 매크로 블럭의 31에 해당하는 데이터를 최하측 수평라인 데이터, 각 블럭의 52에 해당하는 데이터를 최우측 수직라인 데이터라고 명명하고, 21 위치의 데이터는 상기 데이터를 포함하는 매크로 블럭의 상기 최하측 수평라인 데이터와 최우측 수직라인 데이터에 동시에 포함된 데이터로 명명한다.
따라서, 도 3b에서 상기 레퍼런스 데이터 중 21, 31, 41에 위치한 데이터는 각각 디코딩하는 매크로 블럭(60)의 상위에 위치한 매크로 블럭(20,30,40)내의 최하측 수평라인 데이터이거나 그 일부가 된다. 그리고, 상기 레퍼런스 데이터 중 52는 디코딩하는 매크로 블럭(60)의 왼쪽 매크로 블록(50)의 최우측 수직라인 데이터(52)가 된다. 매크로 블럭 (60)의 인트라 프레딕션 과정을 수행하기 위해서는 인트라 프레딕션 과정이 수행된 상위 매크로 블럭(20,30,40)의 최하측 수평라인 데이터 31의 전부와 21, 41 데이터의 일부가 필요하다. 또한 상기 매크로 블럭(60)의 인트라 프레딕션 과정 직전에 인트라 프레딕션 과정이 수행된 매크로 블럭(50)의 최우측 수직라인 데이터(52)가 필요하다.
매크로 블럭상에서 좌측에서 우측으로 진행하는 방향을 X방향이라고 하고, 임의의 X 방향에 위치한 매크로 블럭(이하, MBX)의 개수가 M+1(0~M)개라면, 상기 M+1개의 매크로 블럭을 인트라 프레딕션하기 위해서 저장되어야 할 레퍼런스 데이터 중 각 매크로 블럭의 상위쪽에 위치한 매크로 블럭의 최하측 수평라인 레퍼런스 데이터는 완충기억부내 MBX : N(N = 0,1,..., M)의 위치에 각각 저장할 수 있다. 그리고, 임의의 매크로 블럭의 왼쪽 매크로 블럭의 최우측 수직라인 데이터는 완충기억부(112~127)(도 3b에서는 빗금으로 표시)에 저장할 수 있다. 그리고, 본 발명에 의한 데이터 관리기에서는 매크로 블럭의 왼쪽 상위 블럭의 최하측 수평라인 및 최우측 수직라인에 동시에 포함된 데이터를 완충기억부의 기억공간(도 3a에서 체크 무늬 부분)에 추가적으로 저장하는 것이 바람직하다. 상기 데이터를 특별히 별도의 공간에 저장하는 이유는 도 7에서 설명한다.
매크로 블럭(60)의 상위 레퍼런스 데이터(21 데이터의 일부, 31 데이터의 전부, 41 데이터의 일부)는 화면상에서 동일한 라인에 위치한 모든 매크로 블럭에 대해 저장하고, 이를 그 하위 라인에 위치한 매크로 블럭의 인트라 프레딕션 과정에 사용된다. 따라서, 인트라 프레딕션 과정을 거친 매크로 블럭의 최하측 수평라인 레퍼런스 데이터는 상기 완충기억부내의 기억공간에서 갱신된다. 즉, 도 3b에서 완충기억부에 이미 기억된 31의 데이터가 상기 데이터가 포함된 매크로 블록의 하위의 매크로 블럭 60 내부의 61 위치의 데이터로 갱신된다.
그리고 매크로 블럭(60)의 오른쪽 레퍼런스 데이터(52를 포함하는 매크로 블럭의 최우측 수직라인 데이터)는 현재 인트라 프레딕션 과정이 수행되는 매크로 블럭의 직전 매크로 블럭에 대해서만 완충기억부에 저장된다. 상기와 같이 레퍼런스 데이터가 완충기억부에 매핑(mapping)된 것과 각각의 어드레스는 도 3의 오른쪽에 나타냈다.
도 4를 참조하여 본 발명에 따른 데이터 관리기에 포함된 완충 기억부에 매 크로 블럭의 레퍼런스 데이터가 매핑(mapping)된 일 예를 설명하면 다음과 같다. 도 4에서 보인 예는 완충기억부에 레퍼런스 데이터가 저장된 일 예로서 16×16의 픽셀의 크기를 가진 매크로 블럭의 레퍼런스 데이터가 완충기억부에서 모두 저장되는 위치(700)와 상기 위치에 저장되는 임의의 매크로 블록(710,720)의 레퍼런스 데이터의 위치를 나타낸다. 저장되는 데이터는 인트라 프레딕션 과정에서 사용되는 Luma 데이터와 Chroma 데이터이다. Luma 레퍼런스 데이터는 완충기억부내의 어드레스를 부여받아 저장되고, Chroma 레퍼런스 데이터는 Luma 데이터가 저장된 이후의 어드레스를 부여받아 완충기억부에 저장될 수 있다. 완충기억부의 저장되는 데이터를 상기 완충 기억부내 기억공간의 어드레스의 올림차순에 따라 열거하면 다음과 같다. 먼저, 각 매크로 블록에 대해서 각각의 매크로 블럭의 상위 레퍼런스 데이터들이 저장된다(어드레스 0~110). 그리고, 인트라 프레딕션에 필요한 각 매크로 블럭의 오른쪽 상위의 레퍼런스 데이터가 어드레스 111에 저장된다. 그리고, 어드레스 112~127까지의 저장부에 인트라 프레딕션 과정이 수행되는 매크로 블럭의 오른쪽 매크로 블럭의 레퍼런스 데이터가 저장된다. Chroma 데이터에 대해서도 마찬가지로 Luma데이터가 저장된 기억공간의 어드레스의 이후 어드레스를 부여받아서 순서대로 저장된다. 도 4에 설명한 것은 하나의 예시이며, 상기 기억공간내의 레퍼런스 데이터가 저장되는 어드레스가 고정되어야 하는 것은 아니며, 이에 대한 변형은 당업자에게 자명하다.
본 발명에 따른 데이터 관리기에서 상기 레퍼런스 데이터를 저장하기 위한 완충기억부의 억세스 단위는 매크로 블록의 크기에 따라 레퍼런스 데이터를 효율적 으로 입출력시키기 위해 조절할 수 있다. 이하의 예에서 매크로 블록의 크기를 16×16의 픽셀로 가정하고 완충기억부에 대한 억세스 단위는 32비트(bit) 단위로 억세스(access)하는 것을 가정하여 설명한다. 32비트 단위로 완충기억부를 억세스할 경우, 매크로 블럭내의 각 픽셀의 Luma 데이터가 각각 8비트(bit)이면 상기 31의 레퍼런스 데이터의 양은 16 × 8bit이고, 이를 저장하기 위해서는 4개의 32bit(4 × 32 bit)의 저장공간을 필요로 한다.
도 5를 참조하여, 본 발명에 따른 데이터 관리기에서 인터 프레딕션 과정이나 인트라 프레딕션 과정에서 출력된 레퍼런스 데이터가 완충기억부에 저장될 경우 각 레퍼런스 데이터가 저장되거나 출력될 어드레스를 발생시키는 방법을 설명하면 다음과 같다. 도 5는 일 예로서 16×16의 픽셀의 크기를 가진 매크로 블럭에서 인터 프레딕션 과정이나 인트라 프레딕션 과정을 거친 데이터의 어드레스 맵(address map)을 나타낸다. 각 매크로 블럭의 데이터에 대해 인터 프레딕션 과정이나 인트라 프레딕션 과정이 수행되었다고 하면, 상기 매크로 블럭의 데이터 중 다른 매크로 블럭의 인트라 프레딕션 과정에 사용되기 위한 레퍼런스 데이터는 어드레스 60,61,62,63의 데이터와 어드레스 4n-1(n=1,2,...,16)의 데이터이다. 상기 어드레스에 해당하는 데이터 중 어드레스 60,61,62,63에 저장된 데이터는 각 매크로 블럭의 인덱스 X에 따라 완충기억부의 MBX : N (N=0,1,...,M)에 저장된다. 그리고, 어드레스 4n-1(n=1,2,...,16)의 데이터는 완충기억부의 112~127에 저장된다. 따라서, 본 발명에 따른 비디오 디코딩 장치의 데이터 관리기는 인터 프레딕션 과정이나 인트라 프레딕션 과정의 결과로 출력되는 데이터에 대해 도 5와 같은 어드레스 맵의 어드레스 정보를 이용하여 각 어드레스 정보에 따라 상기 출력 데이터를 완충기억부내의 특정의 기억공간에 저장할 수 있다. 각 어드레스 정보를 입력받는 패스는 도 1의 210, 310, 610로 표시하였다.
도 6은 본 발명에 따른 데이터 관리기의 완충기억부내에 레퍼런스 데이터를 저장하는 과정을 나타낸다. 도 6의 매크로 블럭 20 및 상기 20 매크로 블럭의 동일 라인에 위치한 매크로 블록에 대해서는 이미 인트라 프레딕션 과정을 수행되었고, 상기 수행 결과 중 레퍼런스 데이터는 이미 완충기억부에 저장되었다고 가정한다. 그리고, 매크로 블럭 중 블럭 50에 대해서 인트라 프레딕션 과정을 수행하고, 이제 블럭 60에 대해 인트라 프레딕션 과정을 수행한다고 가정한다. 블럭 50에 대한 결과 중 데이터 51과 데이터 52는 인트라 프레딕션의 결과로서 본 발명에 따른 디코딩 장치 중 데이터 관리기내의 완충기억부에 입력된다. 그리고 매크로 블럭 60에 대해 인트라 프레딕션 과정이 수행된 후에는 상기의 방법과 마찬가지로 데이터 61은 완충기억부내의 데이터 21가 저장된 위치에 오버라이트(overwrite)하고, 데이터 62는 완충기억부내의 22가 저장된 위치에 오버라이트하게 된다. 따라서, 데이터 21a가 오버라이트 되기전에 한번 더 임시 저장하지 않으면 매크로 블럭 60의 오른쪽 매크로 블럭에 대해 정확한 인트라 프레딕션 과정을 수행할 수 없다. 따라서, 데이터 21a를 오버라이트하기 전에 피신시키는 과정이 필요하다. 이를 위해 도 4와 도 5에서 설명한 것처럼 상기 데이터 21a를 저장하는 완충기억부내의 기억공간을 별도로 구성하도록 한다. 그리고, 상기 21a 위치의 레퍼런스 데이터 대한 어드레스 정보는 상기 어드레스 맵을 통해 데이터 관리기에 입력되어 별도의 처리를 거칠 수 있다. 상기 어드레스 정보(도 5의 예에서는 어드레스 63)가 데이터 관리기로 입력되는 경우에 오버라이트를 방지하기 위해 상태 판단 장치가 구동할 수 있다.
도 7을 참고하여, 상기 상태 판단 장치가 매크로 블럭의 최하측 수평라인 데이터와 최우측 수직라인 데이터에 공유된 데이터를 저장하는 방법을 설명하면 다음과 같다. 도 7는 본 발명에 따른 데이터 관리기내의 상태 판단 장치가 입력되는 어드레스 정보에 의해 특정 레퍼런스 데이터를 처리하는 흐름을 나타낸다. 설명의 편의상 상태 판단 장치의 구동 과정은 도 6의 상황에 따른다. 레퍼런스 데이터가 유실되지 않도록 특별한 기억공간을 별도로 마련해야 할 데이터는 어드레스가 63인 데이터이다. 그리고, 상기 어드레스 정보를 가진 데이터가 오버라이트되지 않도록 하기 위해서는 데이터 관리기에 요구되는 정보는 WRITE 정보(도 7에서 WR로 표시)이어야 한다. 따라서, 데이터 관리기에 입력되는 어드레스가 63이 아니거나(Address !=63), 어드레스 63에 대한 것이라도 WRITE과정이 아니면(WR != '1'), 상기 상태 판단 장치(state-machine)은 아이들(IDLE)한 상태에 있다(750). 즉, 매크로 블럭의 레퍼런스 데이터의 어드레스가 63이고 WRITE과정이라고 하여도 매크로 블럭의 4n-1(n=1,2,...16)에 해당되는 레퍼런스 데이터라면 역시 바이패스된다(bypass). 즉, 그 밖의 정보를 가진 데이터에 대해서는 도 4 및 도 5에서 설명한 것처럼 본 발명에 따른 완충기억부에 READ되거나, WRITE된다. 그러나, 만약 데이터 관리기에 입력되는 정보가 어드레스 60,61,62,63의 데이터를 갱신하는 과정 중 어드레스 63에 대한 것이고(Address == 63), WRITE 과정이면(WR == '1') 상기 어드레스에 해당하는 데이터가 저장될 완충기억부에 이미 저장된 데이터를 임시 레지스 터 파일에 저장하여 피신시킨다(760). 그리고, 상기 어드레스에 해당하는 데이터를 포함하는 최하측 수평라인 데이터를 완충기억부내의 기억공간에 저장한다(770). 그리고, 상기 임시 저장하여 피신한 어드레스 63에 해당하는 데이터를 완충기억부내에서 해당 기억공간에 저장한다(780)(도 4에서는 Luma 데이터에 대해서 111, Chroma 데이터에 대해 239).
동일한 기술분야의 당업자는 본 특허명세서로부터 본 발명을 변경하거나 변형하는 것은 용이하다. 그래서, 본 발명의 일 실시예가 상기 명확하게 기재되었더라도, 그것을 여러가지로 변경하는 것은 본 발명의 사상과 관점으로부터 이탈하는 것이 아니며 그 사상과 관점내에 있다고 해야 할 것이다.
상기에서 설명한 본 발명에 따른 데이터 관리기를 포함하는 비디오 디코딩 장치의 효과를 설명하면 다음과 같다.
첫째, 본 발명에 의한 데이터 관리기에 의하면 레퍼런스 데이터를 하드웨어로 자동 저장하여 인트라 프레딕션 과정을 소프트웨어로 구동할 때보다 클럭 스피드를 줄이고 메모리의 억세스를 줄일 수 있어 효율적으로 비디오 디코딩 장치를 사용할 수 있다.
둘째, 본 발명에 의한 데이터 관리기에 의하면 디코딩 장치의 파워 소모를 줄일 수 있다. 또한, 레퍼런스 데이터를 완충기억부에 싱글 포트로 접근하게 하여 하드웨어 구성 면적을 줄일 수 있다는 추가적인 효과가 있다.
셋째, 본 발명에 의한 데이터 관리기에 의하면, 인트라 프레딕션 과정을 포 함하는 비디오 디코딩 과정을 매크로 블럭 단위로 파이프 라인하여 처리할 수 있어 비디오 디코딩 과정이 효율적이다.

Claims (11)

  1. 비디오 압축 파일에 대해 인트라 프레딕션 과정이 수행된 매크로 블럭의 레퍼런스 데이터를 임시 저장하는 완충기억부; 및
    상기 레퍼런스 데이터가 완충기억부에 입출력되도록 상기 완충기억부의 기억공간의 어드레스를 발생시키는 어드레스 발생기를 포함하는 것을 특징으로 하는 데이터 관리기.
  2. 제 1항에 있어서,
    상기 비디오 압축 파일은 H.264 형식의 비디오 압축 파일인 것을 특징으로 하는 데이터 관리기.
  3. 비디오 압축 파일에 대해 인트라 프레딕션 과정이 수행된 매크로 블럭의 레퍼런스 데이터를 임시 저장하는 완충기억부;
    인트라 프레딕션 과정이 수행된 레퍼런스 데이터가 상기 완충기억부에 입출력되도록 상기 완충기억부의 어드레스를 발생시키는 제 1 어드레스 발생기; 및
    인터 프레딕션 과정이 수행된 레퍼런스 데이터가 상기 완충기억부에 입출력되도록 상기 완충기억부의 어드레스를 발생시키는 제 2 어드레스 발생기를 포함하는 것을 특징으로 하는 데이터 관리기.
  4. 제 3항에 있어서,
    상기 데이터 관리기는 상기 제 1 어드레스 발생기에서 출력된 어드레스에 의해 인트라 프레딕션 과정에서 출력된 레퍼런스 데이터를 상기 완충기억부로 입출력하거나, 상기 제 2 어드레스 발생기기에서 출력된 어드레스에 의해 인터 프레딕션 과정에서 출력된 레퍼런스 데이터를 상기 완충기억부에 입력하거나, 소프트웨어의 인터페이스에 사용되는 레퍼런스 데이터를 상기 완충기억부에 입출력할 경우 중 어느 하나이상의 경우에 있어서, 상기 입력 또는 출력이 독립적으로 이루어지도록 칩 인에이블 신호에 의해 입출력과정을 분할하는 다중화기(MUX)를 더 포함하는 것을 특징으로 하는 데이터 관리기.
  5. 제 3항에 있어서,
    상기 완충기억부에 저장되는 레퍼런스 데이터는 모든 매크로 블럭의 최하측 수평라인 레퍼런스 데이터와, 하나의 매크로 블럭의 최우측 수직 라인 레퍼런스 데이터를 포함하는 것을 특징으로 하는 데이터 관리기.
  6. 제 5항에 있어서,
    상기 완충기억부에 저장되는 레퍼런스 데이터는 매크로 블럭의 최하측 수평라인 레퍼런스 데이터와, 매크로 블럭의 최우측 수직 라인 레퍼런스 데이터에 동시에 포함되는 레퍼런스 데이터를 더 포함하는 것을 특징으로 하는 데이터 관리기.
  7. 제 4항에 있어서,
    상기 완충기억부에 입력되는 레퍼런스 데이터가 매크로 블럭의 최하측 수평라인 레퍼런스 데이터 및 매크로 블럭의 최우측 수직 라인 레퍼런스 데이터에 동시에 포함되는 데이터일 경우에만 상기 데이터를 상기 완충기억부에 저장하도록 하는 상태 판단 장치(state machine)를 더 포함하는 것을 특징으로 하는 데이터 관리기.
  8. 제 3항에 있어서,
    상기 완충기억부의 접근(access) 단위는 32 비트인 것을 특징으로 하는 데이터 관리기.
  9. 제 3항에 있어서,
    상기 비디오 압축 파일은 H.264 형식의 비디오 압축 파일인 것을 특징으로 하는 데이터 관리기.
  10. H.264 형식의 비디오 압축 파일에 대해 인트라 프레딕션 과정이 수행된 매크로 블럭의 레퍼런스 데이터를 임시 저장하는 완충기억부;
    인트라 프레딕션 과정이 수행된 레퍼런스 데이터가 상기 완충기억부에 입출력되도록 상기 완충기억부의 어드레스를 발생시키는 제 1 어드레스 발생기;
    인터 프레딕션 과정이 수행된 레퍼런스 데이터가 상기 완충기억부에 입력되도록 상기 완충기억부의 어드레스를 발생시키는 제 2 어드레스 발생기;
    레퍼런스 데이터를 상기 완충기억부에 입출력하는 과정을 분할하는 다중화기(MUX); 및
    상기 완충기억부에 입력되는 레퍼런스 데이터가 매크로 블럭의 특정 위치의 데이터일 경우에만 상기 데이터를 상기 완충기억부에 저장하도록 하는 상태 판단 장치(state machine)를 포함하는 것을 특징으로 하는 데이터 관리기.
  11. 제 10항에 있어서,
    상기 상태 판단 장치가 상기 완충기억부에 별도로 저장해야 하는 지 여부를의 판단하는 데이터는 매크로 블럭상 최하측 수평라인 데이터와 최우측 수직라인 데이터에 동시에 포함되는 데이터를 포함하는 데이터인 것을 특징으로 하는 데이터 관리기.
KR1020050048456A 2005-06-07 2005-06-07 비디오 디코딩 장치의 데이터 관리기 KR100710305B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020050048456A KR100710305B1 (ko) 2005-06-07 2005-06-07 비디오 디코딩 장치의 데이터 관리기

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020050048456A KR100710305B1 (ko) 2005-06-07 2005-06-07 비디오 디코딩 장치의 데이터 관리기

Publications (2)

Publication Number Publication Date
KR20060127456A true KR20060127456A (ko) 2006-12-13
KR100710305B1 KR100710305B1 (ko) 2007-04-23

Family

ID=37730517

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050048456A KR100710305B1 (ko) 2005-06-07 2005-06-07 비디오 디코딩 장치의 데이터 관리기

Country Status (1)

Country Link
KR (1) KR100710305B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100932667B1 (ko) * 2007-10-26 2009-12-21 숭실대학교산학협력단 적응적 비동기 파이프라인 구조의 h.264 디코더

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1199471C (zh) * 1997-11-28 2005-04-27 松下电器产业株式会社 提高了处理效率的图象声音处理装置
US6748020B1 (en) * 2000-10-25 2004-06-08 General Instrument Corporation Transcoder-multiplexer (transmux) software architecture

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100932667B1 (ko) * 2007-10-26 2009-12-21 숭실대학교산학협력단 적응적 비동기 파이프라인 구조의 h.264 디코더

Also Published As

Publication number Publication date
KR100710305B1 (ko) 2007-04-23

Similar Documents

Publication Publication Date Title
US8442107B2 (en) Memory mapping apparatus and method for video decoder/encoder
US20060050976A1 (en) Caching method and apparatus for video motion compensation
US20050190976A1 (en) Moving image encoding apparatus and moving image processing apparatus
US9509992B2 (en) Video image compression/decompression device
US9749636B2 (en) Dynamic on screen display using a compressed video stream
US20140086309A1 (en) Method and device for encoding and decoding an image
JP2009272724A (ja) ビデオ符号化・復号化装置
KR20160023150A (ko) 이미지 처리 장치, 이미지 처리 시스템, 이미지 처리 시스템의 동작방법 및 이미지 처리 시스템을 포함하는 시스템 온 칩
US20120201308A1 (en) Method for Low Memory Footprint Compressed Video Decoding
CN111669597B (zh) 调色板解码装置和方法
KR20200084775A (ko) 다중 재구성 포인트 기반의 양자화를 위한 임베디드 코덱 회로
US8443413B2 (en) Low-latency multichannel video port aggregator
EP1992162B1 (en) Memory organizational scheme and controller architecture for image and video processing
US20080056381A1 (en) Image compression and decompression with fast storage device accessing
US11044474B2 (en) Image compression method and image processing system
KR100710305B1 (ko) 비디오 디코딩 장치의 데이터 관리기
US20070046792A1 (en) Image compositing
TWI418219B (zh) 用於動態補償系統之資料映像方法及快取記憶體系統
KR20100046284A (ko) 하드웨어 다중 표준 비디오 디코더 장치
CN110087072A (zh) 图像处理装置
US20050068336A1 (en) Image overlay apparatus and method for operating the same
US20030123555A1 (en) Video decoding system and memory interface apparatus
CN115176461A (zh) 视频编解码的方法和装置
US10026149B2 (en) Image processing system and image processing method
KR20200079408A (ko) 영상 복호화 장치 및 방법

Legal Events

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

Payment date: 20140414

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20160324

Year of fee payment: 10

LAPS Lapse due to unpaid annual fee