KR101546022B1 - 데이터 처리 장치 및 방법 - Google Patents

데이터 처리 장치 및 방법 Download PDF

Info

Publication number
KR101546022B1
KR101546022B1 KR1020080124688A KR20080124688A KR101546022B1 KR 101546022 B1 KR101546022 B1 KR 101546022B1 KR 1020080124688 A KR1020080124688 A KR 1020080124688A KR 20080124688 A KR20080124688 A KR 20080124688A KR 101546022 B1 KR101546022 B1 KR 101546022B1
Authority
KR
South Korea
Prior art keywords
data
tiling
unit
block
host
Prior art date
Application number
KR1020080124688A
Other languages
English (en)
Other versions
KR20100066051A (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 KR1020080124688A priority Critical patent/KR101546022B1/ko
Priority to US12/457,640 priority patent/US20100146223A1/en
Publication of KR20100066051A publication Critical patent/KR20100066051A/ko
Application granted granted Critical
Publication of KR101546022B1 publication Critical patent/KR101546022B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0207Addressing or allocation; Relocation with multidimensional access, e.g. row/column, matrix
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • 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

Abstract

하나 이상의 호스트로부터 입력 파라미터와 순차 주사 방식의 데이터 구조인 제1 데이터를 타일링부로 전송하여 상기 제1 테이터를 기설정된 블록화 인터리빙 방식으로 타일링(tiling) 하여 제2 데이터로 변환하고, 상기 변환된 제2 데이터를 메모리부에 기록할 수 있는 데이터 처리 방법을 개시한다. 또한, 상기 데이터 처리 방법은, 하나 이상의 호스트로부터 입력 파라미터 및 순차 주사 방식의 데이터 구조인 제1 데이터에 대한 요청 신호를 역타일링부로 전송하고, 기설정된 블록화 인터리빙 방식으로 타일링된 하나 이상의 제2 데이터가 저장된 메모리부부터 상기 요청 신호에 대응하는 상기 제2 데이터를 추출하고, 상기 추출된 제2 테이터를 역타일링(Inverse tiling)하여 변환된 상기 제1 데이터를 상기 호스트로 전송할 수도 있다.
호스트, 시스템 버스, 타일링, 역타일링

Description

데이터 처리 장치 및 방법{APPARATUS AND METHOD FOR DATA MANAGEMENT}
본 발명의 실시예들은 데이터 전송 지연 시간을 줄이기 위해 블록 기반 코덱에서 필요한 메모리 억세스의 최적화를 위한 것으로서, 보다 상세하게는 고속 데이터 처리를 위하여 순차 주사 방식의 데이터를 타일링하여 블록화된 데이터를 제공할 수 있는 데이터 처리 방법 및 장치에 관한 것이다.
오늘날에는 멀티미디어 기술의 발달로 인해 대용량의 컨텐츠를 다양한 방식을 통하여 사용자들에게 제공하고 있다.
이러한, 컨텐츠 제공 서비스 중 비디오 데이터 코덱과 관련하여 동영상 처리의 많은 영상 데이터량으로 인해 메모리 억세스량이 과도하여 상기 동영상 처리 기술에 대한 다양한 연구가 진행되고 있다. 다만, 영상의 크기가 작을 경우 실시간 처리는 문제가 없지만 고화질 영상에 대한 수요가 늘어남에 따라 영상 크기 역시 커져 메모리 억세스는 동영상 처리에 있어 가장 큰 이슈가 되고 있다.
특히, 대용량의 영상 데이터를 저장할 수 있는 DRAM은 물리적 특성상 어드레스가 주어지고 데이터가 읽히거나 쓰일 때까지 일정량의 지연(Latency)이 발생할 수 있으며, 상기 지연 시간은 DRAM의 종류 및 회사별, 입력 주파등에 따라 틀리지 만 시스템 측면에서 볼 때 일정 싸이클 이상 소요된다.
상기와 같은 지연 시간은 대용량의 데이터를 억세스할 때 큰 부하로 작용하며, 통상적으로는 버스트 억세스(burst access)를 이용하는 바, 이는 인접한 데이터를 한꺼번에 억세스 하여 초기 지연 시간을 줄일 수 있다.
하지만, 상기와 같은 버스트 억세스를 적용하더도 하나의 버스트 오퍼레이션(burst operation)이 끝났을 경우나 엑세스(access)하는 로우(row)가 바뀌는 경우 등의 새로운 데이터를 억세스 하는 경우 초기 지연 시간이 소요되는 것은 마찬가지이다.
따라서, 비디오 코덱의 블록 단위 억세스에서 블록 단위 억세스의 경우 인접한 데이터의 양이 제한되어 있기 때문에 로우(row)가 바뀔 때마다 지연시간이 발생하게 된다.
본 발명의 일실시예에 따른 데이터 처리 장치는, 입력 파라미터와 제1 데이터를 타일링부로 전송하는 하나 이상의 호스트, 상기 제1 테이터를 기설정된 블록화 인터리빙 방식으로 타일링(tiling) 하여 제2 데이터로 변환하는 타일링부 및 상기 변환된 제2 데이터를 기록하는 메모리부를 포함하며, 상기 제1 데이터는 순차 주사 방식의 데이터 구조일 수 있다.
또한, 본 발명의 일실시예에 따른 데이터 처리 장치는, 상기 호스트와 상기 메모리부 간에 송수신되는 상기 입력 파라미터, 상기 제1 데이터 및 상기 제2 데이터를 전달하는 시스템 버스를 더 포함할 수 있다.
또한, 본 발명의 일실시예에 따른 데이터 처리 장치의 상기 타일링부는, 상기 입력 파라미터에 따라 상기 제1 데이터의 메모리 주소값을 계산하여, 타일링에 의해 생성되는 블록을 생성하고, 상기 블록 단위로 상기 제1 데이터를 억세스하는 메모리 주소 계산부 및 상기 제1 데이터를 상기 블록 단위에 대응되도록 YUV 인터리빙 방식으로 타일링하여 제2 데이터로 변환하는 데이터 재배열부를 포함할 수 있다.
또한, 본 발명의 다른 실시예에 따른 데이터 처리 장치는, 입력 파라미터 및 제1 데이터에 대한 요청 신호를 역타일링부로 전송하는 하나 이상의 호스트, 기설정된 블록화 인터리빙 방식으로 타일링된 하나 이상의 제2 데이터가 저장된 메모리부, 상기 메모리부로부터 상기 요청 신호에 대응하는 상기 제2 데이터를 추출하고, 상기 추출된 제2 테이터를 역타일링(Inverse tiling)하여 변환된 상기 제1 데이터를 상기 호스트로 전송하는 역타일링부를 포함한다.
또한, 본 발명의 다른 실시예에 따른 데이터 처리 장치는, 상기 호스트와 상기 메모리부 간에 송수신되는 상기 입력 파라미터, 상기 요청 신호, 상기 제1 데이터 및 상기 제2 데이터를 전달하는 시스템 버스를 더 포함할 수 있다.
또한, 본 발명의 다른 실시예에 따른 데이터 처리 장치의 상기 역타일링부는, 상기 입력 파라미터에 따라 상기 제1 데이터의 메모리 주소값을 계산하여, 타일링에 의해 생성되는 블록을 생성하고, 상기 블록 단위로 상기 제1 데이터를 억세스하는 메모리 주소 계산부 및 상기 제2 데이터를 상기 메모리부로부터 추출하여 상기 블록 단위에 대응되도록 YUV 인터리빙 방식으로 역타일링하여 제1 데이터로 변환하는 데이터 재배열부를 포함할 수 있다.
또한, 본 발명의 일실시예에 따른 데이터 처리 방법은, 하나 이상의 호스트로부터 입력 파라미터와 순차 주사 방식의 데이터 구조인 제1 데이터를 타일링부로 전송하는 단계, 상기 제1 테이터를 기설정된 블록화 인터리빙 방식으로 타일링(tiling) 하여 제2 데이터로 변환하는 단계 및 상기 변환된 제2 데이터를 메모리부에 기록하는 단계를 포함한다.
또한, 본 발명의 일실시예에 따른 데이터 처리 방법의 상기 제2 데이터로 변환하는 상기 단계는, 상기 입력 파라미터에 따라 상기 제1 데이터의 메모리 주소값을 계산하여, 타일링에 의해 생성되는 블록을 생성하고, 상기 블록 단위로 상기 제1 데이터를 억세스하는 단계 및 상기 제1 데이터를 상기 블록 단위에 대응되도록 YUV 인터리빙 방식으로 타일링하여 제2 데이터로 변환하는 단계를 포함할 수 있다.
또한, 본 발명의 다른 실시예에 따른 데이터 처리 방법은, 하나 이상의 호스트로부터 입력 파라미터 및 순차 주사 방식의 데이터 구조인 제1 데이터에 대한 요청 신호를 역타일링부로 전송하는 단계, 기설정된 블록화 인터리빙 방식으로 타일링된 하나 이상의 제2 데이터가 저장된 메모리부를 유지하는 단계 및 상기 메모리부로부터 상기 요청 신호에 대응하는 상기 제2 데이터를 추출하고, 상기 추출된 제2 테이터를 역타일링(Inverse tiling)하여 변환된 상기 제1 데이터를 상기 호스트로 전송하는 단계를 포함한다.
또한, 본 발명의 다른 실시예에 따른 데이터 처리 방법의 상기 제1 데이터를 상기 호스트로 전송하는 상기 단계는, 상기 입력 파라미터에 따라 상기 제1 데이터의 메모리 주소값을 계산하여, 타일링에 의해 생성되는 블록을 생성하고, 상기 블록 단위로 상기 제1 데이터를 억세스하는 단계 및 상기 제2 데이터를 상기 메모리부로부터 추출하여 상기 블록 단위에 대응되도록 YUV 인터리빙 방식으로 역타일링하여 제1 데이터로 변환하는 단계를 포함할 수 있다.
본 발명의 일실시예에 따른 데이터 처리 장치는, 비디오 코덱 등과 같이 블록 데이터를 자주 억세스 하는 어플리케이션의 메모리 부하를 줄일 수 있다.
또한, 본 발명의 일실시예에 따른 데이터 처리 장치는, 순차 주사 방식의 메모리 구조를 일정한 블록 단위로 타일링(tiling) 및 YUV 인터리빙(interleaving)을 수행하여 로우(row)가 바뀔 때 마다 발생하는 지연시간을 줄일 수 있다.
이하 첨부 도면들 및 첨부 도면들에 기재된 내용들을 참조하여 본 발명의 바람직한 실시예를 상세하게 설명하지만, 본 발명이 실시예에 의해 제한되거나 한정되는 것은 아니다.
한편, 본 발명을 설명함에 있어서, 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는, 그 상세한 설명을 생략할 것이다. 그리고, 본 명세서에서 사용되는 용어(terminology)들은 본 발명의 바람직한 실시예를 적절히 표현하기 위해 사용된 용어들로서, 이는 사용자, 운용자의 의도 또는 본 발명이 속하는 분야의 관례 등에 따라 달라질 수 있다. 따라서, 본 용어들에 대한 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
도 1은 본 발명의 일실시예에 따른 데이터 처리 장치의 구성을 도시한 블록도이고, 도 2는 본 발명의 다른 실시예에 따른 데이터 처리 장치의 구성을 도시한 블록도이다.
본 발명의 실시예들에 따르면, 상기 데이터 처리 장치에 구성된 타일링부(120) 또는 역타일링부(150)에 따라 상이한 동작을 수행할 수 있으나, 상기 타일링부(120) 및 역타일링부(150)는 도 1 및 도 2에 도시된 바와 같이 분리되어 구성 될 수도 있고 하나의 모듈로 구성될 수도 있다.
다만, 본 발명의 설명을 용이하게 하기 위하여 도 1 및 도 2에 도시된 바와 같이, 타일링부(120) 및 역타일링부(150)를 분리하여 구성된 것으로 가정하고, 각 각의 실시예에 대하여 상세히 설명고자 한다.
첫번째로, 본 발명의 일실시예에 따른 타일링부(120)가 구성된 데이터 처리 장치를 도 1 내지 도 5를 참조하여 순차적으로 설명하도록 한다.
먼저, 하나 이상의 호스트(110)는 입력 파라미터와 제1 데이터를 타일링부(150)로 전송한다. 이때, 상기 제1 데이터는 순차 주사 방식의 데이터 구조이다.
다음으로, 타일링부(120)는 상기 제1 테이터를 기설정된 블록화 인터리빙(interleaving) 방식으로 타일링(tiling) 하여 제2 데이터로 변환한다.
상기와 같은 타일링 과정을 통하여 제2 데이터는 전체적으로 4X6 블록 단위 내에서 각각의 정보들이 인접하게 된다. 따라서, 본 발명의 일실시예에 따르면, 블록 단위의 데이터 억세스 시 로우(row)단위로 발생하는 지연(latency)을 줄일 수 있다.
도 3은 본 발명의 일실시예에 따른 타일링된 메모리 구조를 도시한 도면이다.
예를 들어, 본 발명의 일실시예에 따르면, 도 3에 도시된 바와 같이 상기 순차 주사 방식의 데이터인 제1 데이터를 4X4 YUV 인터리빙(interleaving) 방식으로 타일링하여 제2 데이터로 변환한다.
도 4는 본 발명의 일실시예에 따른 타일링부의 구성을 도시한 도면이다.
타일링부(120)는 도 4에 도시된 바와 같이, 크게 메모리 주소 계산부(121) 및 데이터 재배열부(122)로 구성될 수 있다.
메모리 주소 계산부(121)는 상기 입력 파라미터에 따라 상기 제1 데이터의 메모리 주소값을 계산하여 타일링에 의해 생성되는 블록을 생성하고, 상기 블록 단위로 상기 제1 데이터를 억세스한다.
또한, 데이터 재배열부(122)는 상기 제1 데이터를 상기 블록 단위에 대응되도록 YUV 인터리빙 방식으로 타일링하여 제2 데이터로 변환하는 기능을 수행할 수 있다.
최종적으로, 메모리부(130)는 상기 변환된 제2 데이터를 기록할 수 있다.
이때, 상기 Y 성분은 예컨대, 상기 제1 데이터의 휘도 성분일 수 있고, 상기 UV 성분은 상기 제1 데이터의 색도 성분일 수 있다. 상기와 같은 경우, 데이터 재배열부(122)는, 상기 Y 성분을 기준으로 기설정된 타일링 비율에 따라 상기 UV 성분을 타일링하여 제2 데이터로 변환할 수 있다.
도 5는 본 발명의 일실시예에 따른 데이터 처리 장의 입출력 데이터 구조의 예를 도시한 도면이다.
예를 들어, 호스트(110)는 도 5에 도시된 바와 같이, 호스트(110) 측의 상기 Y 성분을 기준으로 했을 때 4X4블록 정열(align)된 상기 제1 데이터를 메모리부(130)에 쓰도록 요청할 수 있다. 이때, 상기 Y 성분은 4:2:0 포맷을 기준으로 UV 성분으로 2X2블록 정열된 데이터를 요청하게 된다. 상기 도 5와 같이 상기 Y 성분이 8X8 크기를 가지는 블록인 경우, 정열된 제1 데이터에 대해 데이터 재배열부(122)에서는 4X6 YUV interleaving 블록으로 타일링된 제2 데이터로 변환하여 메모리부(130)에 쓰게 된다.
이때, 본 발명의 일실시예에 따른 데이터 처리 장치는 시스템 버스(140)을 통하여 호스트(110)와 메모리부(130) 간에 송수신되는 상기 입력 파라미터, 상기 제1 데이터 및 상기 제2 데이터를 전달할 수 있다.
또한, 본 발명의 실시예들에 따른 데이터 처리 장치는 도 1 및 도 2에 도시된 바와 같이, 크게 두 가지 방식으로 구성될 수 있다.
예를 들어, 데이터 처리 장치는, 모든 호스트(110)가 같은 메모리 구조를 사용하는 경우, 즉, 호스트(110)로부터 전송되는 상기 제1 데이터가 동일한 구조인 경우, 도 1에 도시된 바와 같이 타일링부(120)가 시스템 버스(140)와 메모리부(130) 사이에 결합 될 수 있다.
또 다른 예로, 특정 호스트(111) 만이 블록 단위 타일링 구조를 사용하는 경우, 즉, 특정 호스트(111)로부터 전송되는 상기 제1 데이터가 상기 제1 데이터를 전송하는 특정 호스트(111)에 대응하는 데이터 구조인 경우, 타일링부(120)는 상기 하나 이상의 호스트 중 어느 하나(111)와 시스템 버스(140) 사이에 결합될 수도 있다.
두 번째로, 본 발명의 다른 실시예에 따른 역타일링부(150)가 구성된 데이터 처리 장치를 도 1 내지 도 3 및 도 6 내지 도 7을 참조하여 순차적으로 설명하도록 한다.
먼저, 하나 이상의 호스트(110)는 입력 파라미터 및 제1 데이터에 대한 요청 신호를 역타일링부로 전송한다. 이때, 상기 제1 데이터는 순차 주사 방식의 데이터 구조이다.
또한, 메모리부(130)는 기설정된 블록화 인터리빙 방식으로 타일링된 하나 이상의 제2 데이터가 저장되어 있다.
다음으로, 역타일링부(150)는 메모리부(130)로부터 상기 요청 신호에 대응하는 상기 제2 데이터를 추출하고, 상기 추출된 제2 테이터를 역타일링(Inverse tiling)하여 변환된 상기 제1 데이터를 호스트(110)로 전송한다.
이때, 시스템 버스(140)는 호스트(110)와 메모리부(130) 간에 송수신되는 상기 입력 파라미터, 상기 요청 신호, 상기 제1 데이터 및 상기 제2 데이터를 전달한다.
도 6은 본 발명의 다른 실시예에 따른 역타일링부의 구성을 도시한 도면이다.
역타일링부(150)는 도 6에 도시된 바와 같이, 크게 메모리 주소 계산부(151) 및 데이터 재배열부(152)로 구성될 수 있다.
메모리 주소 계산부(151)는 상기 입력 파라미터에 따라 상기 제1 데이터의 메모리 주소값을 계산하여 타일링에 의해 생성되는 블록을 생성하고, 상기 블록 단위로 상기 제1 데이터를 억세스한다.
또한, 데이터 재배열부(152)는 상기 제2 데이터를 메모리부(130)로부터 추출하여 상기 블록 단위에 대응되도록 YUV 인터리빙 방식으로 역타일링하여 제1 데이터로 변환할 수 있다.
이때, 상기 Y 성분은 예컨대, 상기 제1 데이터의 휘도 성분일 수 있고, 상기 UV 성분은 상기 제1 데이터의 색도 성분일 수 있다.
도 7은 본 발명의 다른 실시예에 따른 데이터 처리 장의 입출력 데이터 구조의 예를 도시한 도면이다.
예를 들어, 본 발명의 다른 실시예에 따른 데이터 처리 장치는, 도 7에 도시된 바와 같이, 상기 Y 성분을 기준으로 했을 때 메모리부(130)로부터 임의의 위치에 있는 4X4 블록을 읽어 들일 수 있다.
최초, 호스트(110)는 4X4 블록으로 정열되지 않은 위치에 있는 블록을 읽도록 요청하고 있으며, 상기와 같은 경우, 실제 메모리부(130)에서는 4X6 블록 단위로 서로 인접하게 상기 제2 데이터가 구성되어 있으므로 4X4블록에 겹쳐진 모든 블록을 추출하여야 하나, 본 발명의 다른 실시예에 따르면, 4개의 블록에 대해 겹쳐 있으므로 4개의 4X6블록을 추출한다..
다음으로, 추출하여 정열된 제2 데이터에 대하여 데이터 재배열부(152)는 순차 주사 방식으로 변환하여 호스트(110)에 전달할 수 있다.
이때, 본 발명의 다른 실시예에 따른 데이터 처리 장치는, 불필요한 데이터도 함께 추출할 수 있으므로, 데이터 재배열부(152)를 이용하여 상기 불필요한 데이터를 삭제하는 기능도 수행하는 바, YUV 성분이 서로 인터리빙되어 있으므로 상기 제2 데이터를 상기 Y 성분 및 상기 UV 성분으로 분리하여 호스트(110)로 전송할 수도 있다.
또한, 본 발명의 실시예들에 따른 데이터 처리 장치는 도 1 및 도 2에 도시된 바와 같이, 크게 두 가지 방식으로 구성될 수 있다.
예를 들어, 데이터 처리 장치는, 모든 호스트(110)가 같은 메모리 구조를 사 용하는 경우, 즉, 호스트(110)로부터 전송되는 상기 제1 데이터가 동일한 구조인 경우, 도 1에 도시된 바와 같이 역타일링부(150)가 시스템 버스(140)와 메모리부(130) 사이에 결합 될 수 있다.
또 다른 예로, 특정 호스트(111) 만이 블록 단위 타일링 구조를 사용하는 경우, 즉, 특정 호스트(111)로부터 전송되는 상기 제1 데이터가 상기 제1 데이터를 전송하는 특정 호스트(111)에 대응하는 데이터 구조인 경우, 역타일링부(150)는 상기 하나 이상의 호스트 중 어느 하나(111)와 시스템 버스(140) 사이에 결합될 수도 있다.
아래에서는 도 8 내지 도 9를 참조하여 본 발명의 실시예들에 따른 데이터 처리 방법을 설명하도록 한다.
이때, 상기 방법은 전술한 본 발명의 실시예들에 따른 데이터 처리 장치를 이용하여 수행되는 방법에 준하는 내용이므로, 상기 장치의 기능적 요소를 모두 포함하고 있기 때문에 그에 따른 상세한 설명은 생략하여 간략히 설명하기로 한다.
첫번째로, 본 발명의 일실시예에 따른 타일링부(120)가 구성된 데이터 처리 장치를 이용한 데이터 처리 방법을 도 8을 참조하여 순차적으로 설명하도록 한다.
도 8은 본 발명의 일실시예에 데이터 처리 방법을 도시한 흐름도이다.
먼저, 도 8에 도시된 바와 같이, 호스트(110)는 입력 파라미터와 순차 주사 방식의 데이터 구조인 제1 데이터를 타일링부(120)로 전송한다(S810).
다음으로, 타일링부(120)는 상기 제1 테이터를 기설정된 블록화 인터리빙 방식으로 타일링(tiling) 하여 제2 데이터로 변환한다(S820).
이때, 타일링부(120)의 메모리 주소 계산부(121)는, 상기 입력 파라미터에 따라 상기 제1 데이터의 메모리 주소값을 계산하여, 타일링에 의해 생성되는 블록을 생성하고, 상기 블록 단위로 상기 제1 데이터를 억세스한다.
또한, 타일링부(120)의 데이터 재배열부(122)는 상기 제1 데이터를 상기 블록 단위에 대응되도록 YUV 인터리빙 방식으로 타일링하여 제2 데이터로 변환한다.
최종적으로, 메모리부(130)는 상기 변환된 제2 데이터를 기록한다(S830).
이때, 본 발명의 일실시예에 따른 데이터 처리 장치는, 상기 호스트와 상기 메모리부 간에 송수신되는 상기 입력 파라미터, 상기 제1 데이터 및 상기 제2 데이터를 시스템 버스(140)를 통하여 전달할 수 있다.
두 번째로, 본 발명의 다른 실시예에 따른 역타일링부(150)가 구성된 데이터 처리 장치를 이용한 데이터 처리 방법을 도 9를 참조하여 순차적으로 설명하도록 한다.
도 9는 본 발명의 다른 실시예에 데이터 처리 방법을 도시한 흐름도이다.
먼저, 도 9에 도시된 바와 같이, 호스트(110)는 입력 파라미터 및 순차 주사 방식의 데이터 구조인 제1 데이터에 대한 요청 신호를 역타일링부로 전송한다(S910).
이때, 메모리부(130)는 기설정된 블록화 인터리빙 방식으로 타일링된 하나 이상의 제2 데이터가 저장된 메모리부를 유지하고 있다.
다음으로, 역타일링부(150)는 메모리부(130)로부터 상기 요청 신호에 대응하는 상기 제2 데이터를 추출한다(S920).
다음으로, 역타일링부(150)는 상기 추출된 제2 테이터를 역타일링(Inverse tiling)하여 변환하고(S930), 상기 제1 데이터를 호스트(110)로 전송한다(S940).
예를 들어, 역타일링부(150)의 메모리 주소 계산부(151)는 상기 입력 파라미터에 따라 상기 제1 데이터의 메모리 주소값을 계산하여, 타일링에 의해 생성되는 블록을 생성하고, 상기 블록 단위로 상기 제1 데이터를 억세스한다.
또한, 역타일링부(150)는 상기 제2 데이터를 메모리부(130)로부터 추출하여 상기 블록 단위에 대응되도록 YUV 인터리빙 방식으로 역타일링하여 제1 데이터로 변환한다.
이때, 본 발명의 다른 실시예에 따른 데이터 처리 장치는, 상기 호스트와 상기 메모리부 간에 송수신되는 상기 입력 파라미터, 상기 요청 신호, 상기 제1 데이터 및 상기 제2 데이터를 전달할 수 있다.
본 발명에 따른 데이터 처리 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
도 1은 본 발명의 일실시예에 따른 데이터 처리 장치의 구성을 도시한 블록도이다.
도 2는 본 발명의 다른 실시예에 따른 데이터 처리 장치의 구성을 도시한 블록도이다.
도 3은 본 발명의 일실시예에 따른 타일링된 메모리 구조를 도시한 도면이다.
도 4는 본 발명의 일실시예에 따른 타일링부의 구성을 도시한 도면이다.
도 5는 본 발명의 일실시예에 따른 데이터 처리 장의 입출력 데이터 구조의 예를 도시한 도면이다.
도 6은 본 발명의 다른 실시예에 따른 역타일링부의 구성을 도시한 도면이다.
도 7은 본 발명의 다른 실시예에 따른 데이터 처리 장의 입출력 데이터 구조의 예를 도시한 도면이다.
도 8은 본 발명의 일실시예에 데이터 처리 방법을 도시한 흐름도이다.
도 9는 본 발명의 다른 실시예에 데이터 처리 방법을 도시한 흐름도이다.

Claims (20)

  1. 입력 파라미터와 제1 데이터를 타일링부로 전송하는 하나 이상의 호스트;
    상기 제1 테이터를 기설정된 블록화 인터리빙(interleaving) 방식으로 타일링(tiling) 하여 제2 데이터로 변환하는 타일링부;
    상기 변환된 제2 데이터를 기록하는 메모리부; 및
    상기 호스트와 상기 메모리부 간에 송수신되는 상기 입력 파라미터, 상기 제1 데이터 및 상기 제2 데이터를 전달하는 시스템 버스
    를 포함하고,
    상기 호스트가 둘 이상인 경우,
    상기 둘 이상의 호스트로부터 전송되는 각각의 제1 데이터가 서로 동일한 구조이면,
    상기 타일링부는 상기 시스템 버스와 상기 메모리부 사이에 결합되는 것을 특징으로 하는 데이터 처리 장치.
  2. 제1항에 있어서,
    상기 제1 데이터는 순차 주사 방식의 데이터 구조인 것을 특징으로 하는 데이터 처리 장치.
  3. 삭제
  4. 삭제
  5. 입력 파라미터와 제1 데이터를 타일링부로 전송하는 하나 이상의 호스트;
    상기 제1 테이터를 기설정된 블록화 인터리빙(interleaving) 방식으로 타일링(tiling) 하여 제2 데이터로 변환하는 타일링부;
    상기 변환된 제2 데이터를 기록하는 메모리부; 및
    상기 호스트와 상기 메모리부 간에 송수신되는 상기 입력 파라미터, 상기 제1 데이터 및 상기 제2 데이터를 전달하는 시스템 버스
    를 포함하고,
    상기 호스트가 둘 이상인 경우,
    상기 둘 이상의 호스트로부터 전송되는 각각의 제1 데이터가 서로 상이한 데이터 구조이면,
    상기 타일링부는 상기 하나 이상의 호스트 중 어느 하나와 시스템 버스 사이에 결합되는 것을 특징으로 하는 데이터 처리 장치.
  6. 제2항에 있어서,
    상기 타일링부는,
    상기 입력 파라미터에 따라 상기 제1 데이터의 메모리 주소값을 계산하여, 타일링에 의해 생성되는 블록을 생성하고, 상기 블록 단위로 상기 제1 데이터를 억세스하는 메모리 주소 계산부; 및
    상기 제1 데이터를 상기 블록 단위에 대응되도록 YUV 인터리빙 방식으로 타일링하여 제2 데이터로 변환하는 데이터 재배열부
    를 포함하는 데이터 처리 장치.
  7. 제6항에 있어서,
    상기 Y 성분은 상기 제1 데이터의 휘도 성분이고,
    상기 UV 성분은 상기 제1 데이터의 색도 성분인 것을 특징으로 하는 데이터 처리 장치.
  8. 제7항에 있어서,
    상기 데이터 재배열부는,
    상기 Y 성분을 기준으로 기설정된 타일링 비율에 따라 상기 UV 성분을 타일링하여 제2 데이터로 변환하는 하는 것을 특징으로 데이터 처리 장치.
  9. 입력 파라미터 및 제1 데이터에 대한 요청 신호를 역타일링부로 전송하는 하나 이상의 호스트;
    기설정된 블록화 인터리빙(interleaving) 방식으로 타일링된 하나 이상의 제2 데이터가 저장된 메모리부;
    상기 메모리부로부터 상기 요청 신호에 대응하는 상기 제2 데이터를 추출하고, 상기 추출된 제2 테이터를 역타일링(Inverse tiling)하여 변환된 상기 제1 데이터를 상기 호스트로 전송하는 역타일링부; 및
    상기 호스트와 상기 메모리부 간에 송수신되는 상기 입력 파라미터, 상기 요청 신호, 상기 제1 데이터 및 상기 제2 데이터를 전달하는 시스템 버스
    를 포함하고,
    상기 호스트가 둘 이상인 경우,
    상기 둘 이상의 호스트로부터 전송되는 각각의 제1 데이터가 서로 동일한 구조이면,
    상기 타일링부는 상기 시스템 버스와 상기 메모리부 사이에 결합되는 것을 특징으로 하는 데이터 처리 장치.
  10. 제9항에 있어서,
    상기 제1 데이터는 순차 주사 방식의 데이터 구조인 것을 특징으로 하는 데이터 처리 장치.
  11. 삭제
  12. 제10항에 있어서,
    상기 역타일링부는,
    상기 입력 파라미터에 따라 상기 제1 데이터의 메모리 주소값을 계산하여, 타일링에 의해 생성되는 블록을 생성하고, 상기 블록 단위로 상기 제1 데이터를 억세스하는 메모리 주소 계산부; 및
    상기 제2 데이터를 상기 메모리부로부터 추출하여 상기 블록 단위에 대응되도록 YUV 인터리빙 방식으로 역타일링하여 제1 데이터로 변환하는 데이터 재배열부
    를 포함하는 데이터 처리 장치.
  13. 제12항에 있어서,
    상기 데이터 재배열부는,
    상기 제2 데이터를 상기 Y 성분 및 상기 UV 성분으로 분리하여 상기 호스트로 전송하는 것을 특징으로 하는 데이터 처리 장치.
  14. 하나 이상의 호스트로부터 입력 파라미터와 순차 주사 방식의 데이터 구조인 제1 데이터를 타일링부로 전송하는 단계;
    상기 제1 테이터를 기설정된 블록화 인터리빙(interleaving) 방식으로 타일링(tiling) 하여 제2 데이터로 변환하는 단계;
    상기 호스트와 메모리부 간에 송수신되는 상기 입력 파라미터, 상기 제1 데이터 및 상기 제2 데이터를 시스템 버스를 통하여 전달하는 단계; 및
    상기 변환된 제2 데이터를 메모리부에 기록하는 단계
    를 포함하는 데이터 처리 방법.
  15. 삭제
  16. 제14항에 있어서,
    상기 제2 데이터로 변환하는 상기 단계는,
    상기 입력 파라미터에 따라 상기 제1 데이터의 메모리 주소값을 계산하여, 타일링에 의해 생성되는 블록을 생성하고, 상기 블록 단위로 상기 제1 데이터를 억세스하는 단계; 및
    상기 제1 데이터를 상기 블록 단위에 대응되도록 YUV 인터리빙 방식으로 타일링하여 제2 데이터로 변환하는 단계
    를 포함하는 데이터 처리 방법.
  17. 하나 이상의 호스트로부터 입력 파라미터 및 순차 주사 방식의 데이터 구조인 제1 데이터에 대한 요청 신호를 역타일링부로 전송하는 단계;
    기설정된 블록화 인터리빙(interleaving) 방식으로 타일링된 하나 이상의 제2 데이터가 저장된 메모리부를 유지하는 단계;
    상기 메모리부로부터 상기 요청 신호에 대응하는 상기 제2 데이터를 추출하고, 상기 추출된 제2 테이터를 역타일링(Inverse tiling)하여 변환된 상기 제1 데이터를 상기 호스트로 전송하는 단계; 및
    상기 호스트와 상기 메모리부 간에 송수신되는 상기 입력 파라미터, 상기 요청 신호, 상기 제1 데이터 및 상기 제2 데이터를 전달하는 단계
    를 포함하는 데이터 처리 방법.
  18. 삭제
  19. 제17항에 있어서,
    상기 제1 데이터를 상기 호스트로 전송하는 상기 단계는,
    상기 입력 파라미터에 따라 상기 제1 데이터의 메모리 주소값을 계산하여, 타일링에 의해 생성되는 블록을 생성하고, 상기 블록 단위로 상기 제1 데이터를 억세스하는 단계; 및
    상기 제2 데이터를 상기 메모리부로부터 추출하여 상기 블록 단위에 대응되도록 YUV 인터리빙 방식으로 역타일링하여 제1 데이터로 변환하는 단계
    를 포함하는 데이터 처리 방법.
  20. 제14항, 제16항 내지 제17항, 및 제19항 중 어느 한 항의 방법을 수행하는 프로그램을 기록한 컴퓨터 판독 가능 기록 매체.
KR1020080124688A 2008-12-09 2008-12-09 데이터 처리 장치 및 방법 KR101546022B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020080124688A KR101546022B1 (ko) 2008-12-09 2008-12-09 데이터 처리 장치 및 방법
US12/457,640 US20100146223A1 (en) 2008-12-09 2009-06-17 Apparatus and method for data management

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080124688A KR101546022B1 (ko) 2008-12-09 2008-12-09 데이터 처리 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20100066051A KR20100066051A (ko) 2010-06-17
KR101546022B1 true KR101546022B1 (ko) 2015-08-20

Family

ID=42232365

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080124688A KR101546022B1 (ko) 2008-12-09 2008-12-09 데이터 처리 장치 및 방법

Country Status (2)

Country Link
US (1) US20100146223A1 (ko)
KR (1) KR101546022B1 (ko)

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5666137A (en) * 1993-08-06 1997-09-09 Intel Corporation Packed YUV9 format for interleaved storage and efficient processing of digital video data
US5995080A (en) * 1996-06-21 1999-11-30 Digital Equipment Corporation Method and apparatus for interleaving and de-interleaving YUV pixel data
US6292589B1 (en) * 1996-06-21 2001-09-18 Compaq Computer Corporation Method for choosing rate control parameters in motion-compensated transform-based picture coding scheme using non-parametric technique
US6205181B1 (en) * 1998-03-10 2001-03-20 Chips & Technologies, Llc Interleaved strip data storage system for video processing
ATE267439T1 (de) * 1998-11-09 2004-06-15 Broadcom Corp Anzeigesystem zur mischung von graphischen daten und videodaten
US6674479B2 (en) * 2000-01-07 2004-01-06 Intel Corporation Method and apparatus for implementing 4:2:0 to 4:2:2 and 4:2:2 to 4:2:0 color space conversion
US6961063B1 (en) * 2000-06-30 2005-11-01 Intel Corporation Method and apparatus for improved memory management of video images
US6741263B1 (en) * 2001-09-21 2004-05-25 Lsi Logic Corporation Video sampling structure conversion in BMME
US7239754B2 (en) * 2002-07-16 2007-07-03 Hiroshi Akimoto Method, apparatus and system for compressing still images in multipurpose compression systems
US7277100B2 (en) * 2002-12-06 2007-10-02 Broadcom Advanced Compression Group, Llc Managing multi-component data
US7952643B2 (en) * 2006-03-30 2011-05-31 Intel Corporation Pipelining techniques for deinterlacing video information

Also Published As

Publication number Publication date
KR20100066051A (ko) 2010-06-17
US20100146223A1 (en) 2010-06-10

Similar Documents

Publication Publication Date Title
JP4991816B2 (ja) 画像処理装置
CN100527819C (zh) 记录器及其方法,播放器及其方法
KR101002886B1 (ko) 멀티-미디어 신호들의 인코딩
JP6429588B2 (ja) 画像処理装置及び画像処理方法
CN105573667A (zh) 一种数据读取方法和存储服务器
CN110245304B (zh) 数据分享方法、设备以及计算机可读介质
WO2017129130A1 (zh) 一种音频处理的方法、服务器、用户设备及系统
WO2017080175A1 (zh) 用于多机位的视频播放器、播放系统及播放方法
WO2019149066A1 (zh) 视频播放方法、终端设备及存储介质
CN103686077A (zh) 应用于3g无线网络实时音视频数据传输的双缓冲方法
US20180220120A1 (en) Method and system for constructing view from multiple video streams
CN110225399B (zh) 流媒体处理方法、装置、计算机设备及存储介质
JPWO2011077550A1 (ja) 画面中継装置
KR101615466B1 (ko) 비디오 분석 및 인코딩을 위한 복수의 비디오 채널의 캡쳐
US7924456B1 (en) Data distribution and buffering
US20180246657A1 (en) Data compression with inline compression metadata
CN113438487A (zh) 一种兼容私有视频格式网页播放器方法
KR101546022B1 (ko) 데이터 처리 장치 및 방법
US8548275B2 (en) Image processing device and image processing method
RU2655662C1 (ru) Устройство обработки изображений и способ обработки изображений
US8285932B2 (en) Mass storage system with improved usage of buffer capacity
JP6869135B2 (ja) 再生装置、再生装置の制御方法、及び、プログラム
US20130278775A1 (en) Multiple Stream Processing for Video Analytics and Encoding
US9990900B2 (en) Image processing device and method thereof
KR20040006965A (ko) 재생 영상 선택 장치 및 그 방법

Legal Events

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